diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 346fdca..0613280 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: # # This is also the configuration that keeps the promise the feature # exists for: no `git2` / `libgit2-sys` in the graph. - # `api/Cargo.toml` spells out this exact command in a comment and asks + # `crates/tinymemory-api/Cargo.toml` spells out this command in a comment and asks # that the contract crate never link a storage engine, a native library, # an HTTP client, or an async runtime. It was left as a comment, so # nothing checked it — and a forbidden dependency arrives transitively, @@ -84,7 +84,7 @@ jobs: run: ./scripts/ci/dependency-budget.sh - name: Run the bundled example - run: cargo run --example basic + run: cargo run -p tinymemory --example basic - name: Assert engine containment (#18 §C1) run: ./scripts/ci/engine-containment.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11e86f0..6c352ca 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -83,9 +83,17 @@ jobs: run: | set -euo pipefail + # The root manifest is a virtual workspace — every crate lives under + # `crates/`, and there is no root package. So name the facade rather + # than taking `.packages[0]`, which is whichever member cargo happened + # to list first and would silently start releasing a different crate's + # version the day that order changes. metadata="$(cargo metadata --format-version 1 --no-deps)" - crate_name="$(jq -r '.packages[0].name' <<< "$metadata")" - current_version="$(jq -r '.packages[0].version' <<< "$metadata")" + crate_name="tinymemory" + current_version="$( + jq -r --arg name "$crate_name" \ + '.packages[] | select(.name == $name) | .version' <<< "$metadata" + )" if [[ -z "$current_version" || "$current_version" == "null" ]]; then echo "Could not resolve the current crate version" >&2 exit 1 @@ -127,7 +135,7 @@ jobs: echo "tag=${tag}" } >> "$GITHUB_OUTPUT" - # Bumps the root `[package]` version only. That is sufficient *because* no + # Bumps the facade's `[package]` version only. That is sufficient *because* no # intra-workspace path dependency carries a `version = "…"` requirement — # a `minor` bump to 0.2.0 against a sibling asking for `^0.1.0` fails # resolution here with "failed to select a version", which is exactly how @@ -152,19 +160,20 @@ jobs: echo "An intra-workspace path dependency carries a version requirement:" >&2 echo "$offenders" >&2 echo >&2 - echo "Bumping the root package will fail to resolve against it. Nothing here" >&2 + echo "Bumping the facade will fail to resolve against it. Nothing here" >&2 echo "is published to crates.io, so drop the 'version' key and keep 'path'." >&2 exit 1 fi - perl -0pi -e 's/(\[package\][\s\S]*?\nversion = ")[^"]+(")/$1$ENV{NEXT_VERSION}$2/' Cargo.toml + perl -0pi -e 's/(\[package\][\s\S]*?\nversion = ")[^"]+(")/$1$ENV{NEXT_VERSION}$2/' \ + crates/tinymemory/Cargo.toml cargo update -p "$CRATE_NAME" --precise "$NEXT_VERSION" # There are TWO Cargo worlds here, and the module's is the one the # release actually builds. `crates/tinymemory-module` is its own # workspace root with its own `Cargo.lock` (see the root Cargo.toml - # comment for why), and it depends on the root crate by path — so - # bumping the root version leaves that lockfile recording the old one. + # comment for why), and it depends on the facade by path — so bumping + # the facade's version leaves that lockfile recording the old one. # # `native-bundles` then builds with `--locked` and every one of the # eleven jobs fails with "cannot update the lock file … because @@ -188,7 +197,8 @@ jobs: # Both lockfiles: the module's own workspace lock is what the bundle # jobs build against with `--locked`, so a tag that omits it cannot be # built at all. - git add Cargo.toml Cargo.lock crates/tinymemory-module/Cargo.lock + git add crates/tinymemory/Cargo.toml Cargo.lock \ + crates/tinymemory-module/Cargo.lock git commit -m "Release ${RELEASE_TAG}" git tag -a "${RELEASE_TAG}" -m "Release ${RELEASE_TAG}" diff --git a/AGENTS.md b/AGENTS.md index 8bcb325..f8c6c37 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,25 +9,31 @@ no longer applies rather than leaving it to rot. ## Project Structure -This is a Cargo **workspace**: the `tinymemory` facade at the root, the -`tinymemory-api` contract in `api/`, and one engine adapter per directory under -`adapters/`. Engines themselves are submodules under `vendor/`, excluded from -the workspace. - -See [`README.md`](README.md) for the layout and the rules that govern it — in -particular, why policy stays in the host and why adapters name their engines by -version requirement rather than by path. +This is a Cargo **workspace** with a virtual root: there is no root package, +and every crate lives in its own directory under `crates/`, named for the +package it holds. `members` is the glob `crates/*`, so a new crate joins the +workspace by existing. `crates/tinymemory` is the facade a host depends on; +`crates/tinymemory-api` is the contract; the rest are the subsystems and the +engine adapters, each reachable from the facade by a feature named after it. +Engines themselves are submodules under `vendor/`, excluded from the workspace. + +See [`README.md`](README.md) for the full layout, the feature table, and the +rules that govern them — in particular, why policy stays in the host and why +adapters name their engines by version requirement rather than by path. ```text -src/ -├── lib.rs # crate docs + the entire public re-export surface -├── error/mod.rs # crate-wide `Error` and `Result` -└── / # one directory per feature area - ├── mod.rs # module docs, wiring, smallest useful public API - ├── types.rs # substantial type definitions - └── test.rs # module-local unit tests -tests/ # integration tests against the public API only -examples/ # runnable, compiled-in-CI usage examples +crates// +├── Cargo.toml # one package; `[lints]` opted into per crate +├── README.md # required of complex crates: design, surface, caveats +└── src/ + ├── lib.rs # crate docs + the entire public re-export surface + ├── error/mod.rs # crate-wide `Error` and `Result` + └── / # one directory per feature area + ├── mod.rs # module docs, wiring, smallest useful public API + ├── types.rs # substantial type definitions + └── test.rs # module-local unit tests +crates//tests/ # integration tests against the public API only +crates//examples/ # runnable, compiled-in-CI usage examples vendor/tinybus/ # pinned TinyBus source; optional until wired by a project docs/ ├── specs/ # behavior and architecture specifications @@ -35,11 +41,16 @@ docs/ └── adr/ # immutable architecture decision records ``` -Each feature area belongs in a focused module directory under `src/`. A module -root explains the module, wires its pieces together, and exposes the smallest -useful API. Move substantial type definitions into `types.rs` and put -module-local unit tests in a dedicated `test.rs`, wired from the bottom of the -module root with: +A new crate goes in `crates//`, and a package that is not an adapter +or a subsystem of the memory layer probably does not belong here at all. Reach +it from the facade by adding an optional dependency and a feature of the same +name, so a host keeps taking one dependency and stating what it wants. + +Each feature area belongs in a focused module directory under the crate's +`src/`. A module root explains the module, wires its pieces together, and +exposes the smallest useful API. Move substantial type definitions into +`types.rs` and put module-local unit tests in a dedicated `test.rs`, wired from +the bottom of the module root with: ```rust #[cfg(test)] @@ -51,9 +62,10 @@ let a general-purpose `utils.rs` or `helpers.rs` grow — those are a symptom of missing module. Prefer many small modules that each do one thing well over few broad ones. -Keep public exports centralized in `src/lib.rs` so downstream users have one -predictable surface. Put shared error variants in `src/error/mod.rs` and return -the crate-wide `Result` from fallible public APIs. +Keep public exports centralized in each crate's `src/lib.rs` so downstream +users have one predictable surface. Put shared error variants in +`src/error/mod.rs` and return the crate-wide `Result` from fallible public +APIs. ## Build And Test @@ -71,7 +83,9 @@ Supporting commands: - `cargo fmt --all` — format before committing. - `cargo test ` — run a focused subset while iterating. -- `cargo run --example basic` — run the bundled example. +- `cargo run -p tinymemory --example basic` — run the bundled example. The + `-p` is required: the workspace root is virtual, so cargo cannot infer which + package an example belongs to. - `cargo doc --no-deps --all-features` — build the rustdoc CI also builds with `RUSTDOCFLAGS="-D warnings"`. - `cargo test --doc` — run doctests alone when editing documentation examples. @@ -92,14 +106,16 @@ Use standard `rustfmt` output and Rust 2024 idioms. Do not hand-format around - Prefer small, typed APIs over stringly-typed ones. Accept `&str` and generic `impl Into` at boundaries; return owned, concrete types. - Keep the public surface minimal: default to private, and export deliberately - from `src/lib.rs`. -- `unsafe` is forbidden crate-wide by the lint configuration in `Cargo.toml`. - If a project genuinely needs it, relax the lint in its own commit and document - every invariant with a `// SAFETY:` comment. + from the crate's `src/lib.rs`. +- `unsafe` is forbidden crate-wide by the `[lints]` table in each crate's own + `Cargo.toml` — the root is virtual and carries no lint configuration. If a + crate genuinely needs it, relax the lint in its own commit and document every + invariant with a `// SAFETY:` comment. ### Errors -- One crate-wide `Error` enum in `src/error/mod.rs`, built with `thiserror`. +- One crate-wide `Error` enum in the crate's `src/error/mod.rs`, built with + `thiserror`. - Fallible public functions return `Result`, the crate alias. - Add a specific variant instead of stuffing context into a string; error messages are lowercase, without trailing punctuation. @@ -143,10 +159,10 @@ on every generated crate. ## Testing -- Module-local unit tests live in `src//test.rs` and may touch private - items. -- Integration tests live in `tests/` and exercise only the public API — they are - the regression suite for the crate's contract. +- Module-local unit tests live in `crates//src//test.rs` and + may touch private items. +- Integration tests live in `crates//tests/` and exercise only the + public API — they are the regression suite for the crate's contract. - Use descriptive, behavioral test names: `rejects_an_empty_name`, not `test_greet_2`. - Cover the failure paths, not just the happy path. Every new error variant @@ -171,8 +187,8 @@ Write documentation for the reader who has never seen the code. treats as an error. - Start every `mod.rs` and `test.rs` with a concise module-level `//!` description. -- `src/lib.rs` carries the crate-level overview: what the crate does, the - primary entry points, and a short runnable example. +- Each crate's `src/lib.rs` carries its crate-level overview: what the crate + does, its primary entry points, and a short runnable example. - Prefer concrete examples over vague description. Doc examples are compiled and run by `cargo test`, so they cannot drift. - Complex modules must include a module-level `README.md` covering their design, @@ -221,13 +237,14 @@ explicitly declined with a reason. Releases run from `.github/workflows/release.yml` via a manual `workflow_dispatch` with a `patch` / `minor` / `major` bump. The workflow re-runs the full validation suite, computes the next version, updates -`Cargo.toml` and `Cargo.lock`, commits and tags `vX.Y.Z`, packages, pushes, and -publishes to crates.io using the `CARGO_REGISTRY_TOKEN` secret. +`crates/tinymemory/Cargo.toml` and `Cargo.lock`, commits and tags `vX.Y.Z`, +packages, pushes, and publishes to crates.io using the `CARGO_REGISTRY_TOKEN` +secret. Consequently: -- Do not hand-edit the `version` field in `Cargo.toml`; the release workflow - owns it. +- Do not hand-edit the `version` field in `crates/tinymemory/Cargo.toml`; the + release workflow owns it. - Follow semantic versioning. Any change to the public surface that is not purely additive is a breaking change and needs a major bump (pre-1.0: a minor bump). diff --git a/Cargo.lock b/Cargo.lock index 25ef2bd..156fa1f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1889,7 +1889,9 @@ dependencies = [ "serde_json", "tinymemory-api", "tinymemory-conformance", + "tinymemory-core", "tinymemory-remote", + "tinymemory-sources", "tinymemory-sync", "tinymemory-tinycortex", "tokio", diff --git a/Cargo.toml b/Cargo.toml index faa0007..65bd18d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,14 +1,33 @@ [workspace] -# `sync` is the engine-neutral Composio normalisers (issue #18 §B3). -members = [".", "api", "core", "sync", "sources", "adapters/tinycortex", "adapters/remote", "conformance", "crates/tinymemory-testing-ui"] -default-members = [".", "api", "core", "sync", "sources", "adapters/tinycortex", "adapters/remote", "conformance"] +resolver = "2" +# Every crate in this repository lives under `crates/`, one directory per +# package, each directory named for the package it holds. There is no +# root package: the facade a host depends on is `crates/tinymemory`, the same +# as any other member. Keeping the root virtual is what makes that uniform — +# a root package would make one crate structurally different from the rest for +# no reason other than history. +members = ["crates/*"] # `crates/tinymemory-testing-ui` is deliberately left out of `default-members`: # it is a manual testing harness, not part of the crate's build/release # surface, so the four contract commands (which omit `-p`/`--workspace`) never # touch it. Build or run it explicitly with `-p tinymemory-testing-ui`. Unlike # `crates/tinymemory-module` it is a normal member here, not its own workspace # root: it needs the root's `[patch.crates-io]` table to resolve `tinycortex`, -# and it carries none of the tinybus-inheritance problem documented above. +# and it carries none of the tinybus-inheritance problem documented below. +# +# Spelled out rather than globbed, because that is the whole point: `members` +# is a glob so a new crate joins the workspace by existing, and this list is +# the one place a crate is deliberately held out of the default build. +default-members = [ + "crates/tinymemory", + "crates/tinymemory-api", + "crates/tinymemory-conformance", + "crates/tinymemory-core", + "crates/tinymemory-remote", + "crates/tinymemory-sources", + "crates/tinymemory-sync", + "crates/tinymemory-tinycortex", +] # `vendor/` holds engine submodules (tinycortex, tinybus, tinyagents), each of # which is its own workspace with its own lockfile. Same exclusion # `vendor/tinycortex` uses for its own nested vendor directory. @@ -30,127 +49,11 @@ default-members = [".", "api", "core", "sync", "sources", "adapters/tinycortex", # remain separate repositories and are never workspace members") and what a # separately released artifact wants anyway. Build it with # `--manifest-path crates/tinymemory-module/Cargo.toml`. -exclude = ["vendor", "crates/tinymemory-module"] - -[package] -name = "tinymemory" -# Not published: `tinymemory-core` depends on `tinycortex-api`, which is -# consumed by path and is not on crates.io, so `cargo package` cannot resolve -# the graph. Every consumer takes this repo by path or git. -publish = false -version = "1.0.1" -edition = "2021" -rust-version = "1.96" -license = "MIT" -description = "Engine-neutral memory contract, driver registry, and engine adapters" -repository = "https://github.com/tinyhumansai/tinymemory" -documentation = "https://docs.rs/tinymemory" -readme = "README.md" -keywords = ["memory", "agent", "llm", "retrieval"] -categories = ["database"] -# Keep the published package to what a consumer actually needs. -exclude = [ - ".github/", - ".gitmodules", - "docs/", - "vendor/", - "worktrees/", - ".env.example", - "deny.toml", -] - -[dependencies] -# The contract itself. Re-exported wholesale from `src/lib.rs` so a host takes -# one dependency rather than two, and so `tinymemory::MemoryProvider` and -# `tinymemory_api::provider::MemoryProvider` are the same type. -tinymemory-api = { path = "api" } -# The engines, each behind its own feature (#18 §D1). Optional, so the default -# build is still the contract, the registry and the mandatory composition and -# nothing that links C. # -# This direction only became legal once `mandatory` and the reserved driver ids -# moved into `tinymemory-api`: the adapters used to depend on this crate for -# them, and a facade depending back on the adapters is a package cycle cargo -# forbids. -tinymemory-tinycortex = { path = "adapters/tinycortex", optional = true } -tinymemory-remote = { path = "adapters/remote", optional = true } -# The mandatory capability families are `async fn`s on object-safe traits. -async-trait = "0.1" -# `Memory` is anyhow-typed; `mandatory::engine_error` maps it onto `MemoryError`. -anyhow = "1" -# Diagnostics on the shared store/recall/export paths. -log = "0.4" -# `ExportRecord::payload` is a `serde_json::Value`. -serde_json = "1" - -# `DriverClass` is read out of a host's config file, so its serde form is the -# config form and is pinned by a test. -serde = { version = "1", features = ["derive"] } - -[dev-dependencies] -# The mandatory-family tests are async. -tokio = { version = "1", features = ["macros", "rt-multi-thread"] } -# `TestHostConfig`, for the driver-selection tests. A dev-dependency: the -# facade must not carry a test double into a consumer's graph. -tinymemory-api = { path = "api", features = ["test-support"] } -# The reference driver and the behavioural suite, for the workspace-level -# integration tests. A dev-dependency only: the facade must not carry a test -# harness into a consumer's dependency graph. -tinymemory-conformance = { path = "conformance" } -# The extracted Composio normalisers, for the integration test that runs them -# against a driver that is not TinyCortex (issue #18 §B3). -tinymemory-sync = { path = "sync" } - -[features] -# Nothing by default. A host that names no engine links no engine. -default = [] - -# --- Engines --------------------------------------------------------------- -# Each pulls exactly the adapter that serves it. `supermemory`, `mem0` and -# `cognee` share one adapter crate, so enabling several costs one dependency -# rather than three. -tinycortex = ["dep:tinymemory-tinycortex"] -supermemory = ["dep:tinymemory-remote"] -mem0 = ["dep:tinymemory-remote"] -cognee = ["dep:tinymemory-remote"] - -# --- Capability add-ons ---------------------------------------------------- -# Each requires the engine that serves it, so asking for a capability cannot -# produce a build where nothing implements it. -memory-git = ["tinycortex", "tinymemory-tinycortex/memory-git"] - -# Lints apply to this package only, deliberately. `api/` is contract code moved -# verbatim from `tinycortex-api` and is held byte-identical; subjecting it to a -# stricter lint set than it was written under would force cosmetic edits through -# a surface whose serde representations and enum wire strings are persisted on -# disk. Adapter crates opt in individually. -[lints.rust] -unsafe_code = "forbid" -missing_docs = "warn" -missing_debug_implementations = "warn" -unreachable_pub = "warn" -rust_2018_idioms = { level = "warn", priority = -1 } - -[lints.clippy] -all = { level = "warn", priority = -1 } -pedantic = { level = "warn", priority = -1 } -# Library code must not panic on its own; tests and examples may. -unwrap_used = "warn" -expect_used = "warn" -panic = "warn" -todo = "warn" -unimplemented = "warn" -# Public fallible/panicking APIs must document their failure modes. -missing_errors_doc = "warn" -missing_panics_doc = "warn" -# Documentation hygiene. -doc_markdown = "warn" -# `#[must_use]` on pure public functions. -must_use_candidate = "warn" - -[lints.rustdoc] -broken_intra_doc_links = "warn" -private_intra_doc_links = "warn" +# `worktrees/` holds `git worktree` checkouts of this same repository. Each one +# contains a full copy of this manifest and every crate under it, so without +# this entry cargo walks into them and reports duplicate packages. +exclude = ["vendor", "crates/tinymemory-module", "worktrees"] # The engine adapters name their engines by version requirement, not by path, # so a host that already pins its own engine checkout unifies onto one copy @@ -167,7 +70,7 @@ private_intra_doc_links = "warn" # and tests here. A host that embeds this workspace needs the same entry, the # same way it already patches tinycortex. [patch."https://github.com/tinyhumansai/tinymemory"] -tinymemory-api = { path = "api" } +tinymemory-api = { path = "crates/tinymemory-api" } [patch.crates-io] tinycortex = { path = "vendor/tinycortex" } @@ -193,7 +96,3 @@ tinyagents = { path = "vendor/tinyagents" } lto = "thin" codegen-units = 1 strip = "debuginfo" - -[[example]] -name = "tinycortex" -required-features = ["tinycortex"] diff --git a/README.md b/README.md index 149c7ef..ad0473f 100644 --- a/README.md +++ b/README.md @@ -11,27 +11,36 @@ its place without the host learning anything new. ## Layout ```text -api/ tinymemory-api — the contract. Dependency-light on - purpose: depending on it never drags in SQLite, git2, - reqwest, or an async runtime. -src/ -├── lib.rs re-exports the contract wholesale, so a host takes one -│ dependency and the types are the same types -├── registry/ driver admission — which ids exist, what class each -│ binds as, and the fail-closed external-driver gate -└── mandatory/ the three mandatory capability families, composed once - over the `Memory` storage trait -core/ tinymemory-core — the substance: ingestion, the summary - tree, chunk storage, entities, the graph, the diff - ledger, goals, tool-memory, and the Composio sync layer. - The largest crate here by a wide margin, and the one a - real host actually depends on. Unlike `api/` it is not - dependency-light: today it links the TinyCortex engine, - a bundled SQLite, and an HTTP stack unconditionally. -adapters/ -├── tinycortex/ the TinyCortex engine seen through the contract -└── remote/ native HTTP dialects for Supermemory, Mem0, and Cognee crates/ +├── tinymemory/ the facade a host depends on. Re-exports the contract +│ wholesale, so the types are the same types, and reaches +│ every other crate here through a feature named after it +│ ├── src/lib.rs the entire public re-export surface +│ ├── src/registry/ driver admission — which ids exist, what class each +│ │ binds as, and the fail-closed external-driver gate +│ ├── tests/ integration tests against the public API only +│ └── examples/ runnable, compiled-in-CI usage examples +├── tinymemory-api/ the contract. Dependency-light on purpose: depending on +│ it never drags in SQLite, git2, reqwest, or an async +│ runtime +├── tinymemory-core/ the substance: ingestion, the summary tree, chunk +│ storage, entities, the graph, the diff ledger, goals, +│ tool-memory, and the Composio sync layer. The largest +│ crate here by a wide margin. Unlike the contract it is +│ not dependency-light: today it links the TinyCortex +│ engine, a bundled SQLite, and an HTTP stack +│ unconditionally +├── tinymemory-sync/ the engine-neutral Composio payload normalisers, so a +│ host binding a driver that is not TinyCortex can run +│ them +├── tinymemory-sources/ memory-source contracts and readers — local folders +│ always, GitHub/RSS/web pages behind `network` +├── tinymemory-tinycortex/ the TinyCortex engine seen through the contract +├── tinymemory-remote/ native HTTP dialects for Supermemory, Mem0, and Cognee +├── tinymemory-conformance/ the behavioural suite every driver must pass +├── tinymemory-testing-ui/ a local HTTP + web harness for driving engines by +│ hand. A workspace member, but held out of +│ `default-members` so the contract commands skip it └── tinymemory-module/ the TinyBus loadable-module driver. Excluded from the workspace on purpose — see the note in `Cargo.toml`. vendor/ @@ -40,10 +49,50 @@ vendor/ └── tinybus/ pinned TinyBus submodule ``` +Every crate lives under `crates/`, one directory per package, each directory +named for the package it holds. The workspace root is virtual — there is no +root package, so the facade is a member like any other and `members` is the +glob `crates/*`: a new crate joins the workspace by existing. + +## Features + +`tinymemory` is the one dependency a host takes, and every other crate in the +workspace is reachable from it by a feature named after it. Nothing is on by +default: naming no feature gets the contract, the registry and the mandatory +composition — no storage engine, no HTTP stack, no native library. +`scripts/ci/dependency-budget.sh` holds that to a ceiling on every run. + +| Feature | Brings in | +| --- | --- | +| `tinycortex` | the embedded TinyCortex engine, as `tinymemory::tinycortex` | +| `supermemory`, `mem0`, `cognee` | the matching HTTP adapter, as `tinymemory::remote` | +| `engines` | all four of the above | +| `core` | `tinymemory::core` — the memory subsystem | +| `sync` | `tinymemory::sync` — the Composio normalisers | +| `sources` | `tinymemory::sources` — source contracts and local readers | +| `sources-network` | `sources`, plus the GitHub/RSS/web-page readers | +| `conformance` | `tinymemory::conformance` — the driver contract suite | +| `memory-git` | git-backed diff snapshots (implies `tinycortex`; links libgit2) | +| `contacts` | the macOS address-book seeding path (implies `core`) | +| `test-support` | the workspace's test doubles and helpers | +| `full` | every feature above except `test-support` | + +Capability features imply the engine that serves them, so asking for a +capability cannot produce a build where nothing implements it. `test-support` +is deliberately outside `full`: "give me the whole workspace" is not the same +request as "give me the test doubles". + +This table says which crate each feature brings in. For what each *engine* +feature actually serves — driver class, and how many of the eighteen capability +families answer — see the engine table under +[Using from your project](#using-from-your-project). + + Run `git submodule update --init --recursive` after cloning. Nothing in the -workspace builds without it — `core` names `tinyagents` and `tinycortex` by -path through `vendor/`, so an uninitialized checkout fails at manifest -resolution rather than at compile time, which reads as a confusing error. +workspace builds without it — `tinymemory-core` names `tinyagents` and +`tinycortex` by path through `vendor/`, so an uninitialized checkout fails at +manifest resolution rather than at compile time, which reads as a confusing +error. ## Using from your project @@ -98,9 +147,9 @@ tinyagents = { path = "vendor/tinymemory/vendor/tinyagents" } tinymemory-api = { path = "vendor/tinymemory/api" } ``` -This exact patch set is what the reference consumer in `examples/` and the -repository's own root manifest use; a build missing any of the four fails at -resolution, before compiling a line. +This exact patch set is what the reference consumer in +`crates/tinymemory/examples/` and the repository's own root manifest use; a +build missing any of the four fails at resolution, before compiling a line. ```rust,ignore use std::sync::Arc; @@ -112,8 +161,8 @@ let provider = Arc::new(provider(Arc::new(InMemoryMemoryStore::new()))); That is a complete embedded setup for the mandatory three families. The full eighteen-family engine (`TinycortexProvider`) additionally needs the host seams (`EmbeddingHost` et al.) installed — see -`adapters/tinycortex/tests/full_provider_conformance.rs` for the minimal -working wiring. +`crates/tinymemory-tinycortex/tests/full_provider_conformance.rs` for the +minimal working wiring. | Feature | Engine | Class | Families served | | --- | --- | --- | --- | diff --git a/api/Cargo.toml b/crates/tinymemory-api/Cargo.toml similarity index 100% rename from api/Cargo.toml rename to crates/tinymemory-api/Cargo.toml diff --git a/api/src/capabilities.rs b/crates/tinymemory-api/src/capabilities.rs similarity index 100% rename from api/src/capabilities.rs rename to crates/tinymemory-api/src/capabilities.rs diff --git a/api/src/capabilities_tests.rs b/crates/tinymemory-api/src/capabilities_tests.rs similarity index 100% rename from api/src/capabilities_tests.rs rename to crates/tinymemory-api/src/capabilities_tests.rs diff --git a/api/src/chunks.rs b/crates/tinymemory-api/src/chunks.rs similarity index 100% rename from api/src/chunks.rs rename to crates/tinymemory-api/src/chunks.rs diff --git a/api/src/chunks_tests.rs b/crates/tinymemory-api/src/chunks_tests.rs similarity index 100% rename from api/src/chunks_tests.rs rename to crates/tinymemory-api/src/chunks_tests.rs diff --git a/api/src/drivers.rs b/crates/tinymemory-api/src/drivers.rs similarity index 100% rename from api/src/drivers.rs rename to crates/tinymemory-api/src/drivers.rs diff --git a/api/src/error.rs b/crates/tinymemory-api/src/error.rs similarity index 100% rename from api/src/error.rs rename to crates/tinymemory-api/src/error.rs diff --git a/api/src/error_tests.rs b/crates/tinymemory-api/src/error_tests.rs similarity index 100% rename from api/src/error_tests.rs rename to crates/tinymemory-api/src/error_tests.rs diff --git a/api/src/goals.rs b/crates/tinymemory-api/src/goals.rs similarity index 100% rename from api/src/goals.rs rename to crates/tinymemory-api/src/goals.rs diff --git a/api/src/goals_tests.rs b/crates/tinymemory-api/src/goals_tests.rs similarity index 100% rename from api/src/goals_tests.rs rename to crates/tinymemory-api/src/goals_tests.rs diff --git a/api/src/health.rs b/crates/tinymemory-api/src/health.rs similarity index 100% rename from api/src/health.rs rename to crates/tinymemory-api/src/health.rs diff --git a/api/src/health_tests.rs b/crates/tinymemory-api/src/health_tests.rs similarity index 100% rename from api/src/health_tests.rs rename to crates/tinymemory-api/src/health_tests.rs diff --git a/api/src/host/cloud_providers.rs b/crates/tinymemory-api/src/host/cloud_providers.rs similarity index 100% rename from api/src/host/cloud_providers.rs rename to crates/tinymemory-api/src/host/cloud_providers.rs diff --git a/api/src/host/composio.rs b/crates/tinymemory-api/src/host/composio.rs similarity index 100% rename from api/src/host/composio.rs rename to crates/tinymemory-api/src/host/composio.rs diff --git a/api/src/host/config.rs b/crates/tinymemory-api/src/host/config.rs similarity index 100% rename from api/src/host/config.rs rename to crates/tinymemory-api/src/host/config.rs diff --git a/api/src/host/embedding_host.rs b/crates/tinymemory-api/src/host/embedding_host.rs similarity index 100% rename from api/src/host/embedding_host.rs rename to crates/tinymemory-api/src/host/embedding_host.rs diff --git a/api/src/host/embeddings.rs b/crates/tinymemory-api/src/host/embeddings.rs similarity index 100% rename from api/src/host/embeddings.rs rename to crates/tinymemory-api/src/host/embeddings.rs diff --git a/api/src/host/error_reporter.rs b/crates/tinymemory-api/src/host/error_reporter.rs similarity index 100% rename from api/src/host/error_reporter.rs rename to crates/tinymemory-api/src/host/error_reporter.rs diff --git a/api/src/host/events.rs b/crates/tinymemory-api/src/host/events.rs similarity index 100% rename from api/src/host/events.rs rename to crates/tinymemory-api/src/host/events.rs diff --git a/api/src/host/evidence.rs b/crates/tinymemory-api/src/host/evidence.rs similarity index 100% rename from api/src/host/evidence.rs rename to crates/tinymemory-api/src/host/evidence.rs diff --git a/api/src/host/local_ai.rs b/crates/tinymemory-api/src/host/local_ai.rs similarity index 100% rename from api/src/host/local_ai.rs rename to crates/tinymemory-api/src/host/local_ai.rs diff --git a/api/src/host/mod.rs b/crates/tinymemory-api/src/host/mod.rs similarity index 100% rename from api/src/host/mod.rs rename to crates/tinymemory-api/src/host/mod.rs diff --git a/api/src/host/nlp.rs b/crates/tinymemory-api/src/host/nlp.rs similarity index 100% rename from api/src/host/nlp.rs rename to crates/tinymemory-api/src/host/nlp.rs diff --git a/api/src/host/routes.rs b/crates/tinymemory-api/src/host/routes.rs similarity index 100% rename from api/src/host/routes.rs rename to crates/tinymemory-api/src/host/routes.rs diff --git a/api/src/host/scheduler_gate.rs b/crates/tinymemory-api/src/host/scheduler_gate.rs similarity index 100% rename from api/src/host/scheduler_gate.rs rename to crates/tinymemory-api/src/host/scheduler_gate.rs diff --git a/api/src/host/storage_memory.rs b/crates/tinymemory-api/src/host/storage_memory.rs similarity index 100% rename from api/src/host/storage_memory.rs rename to crates/tinymemory-api/src/host/storage_memory.rs diff --git a/api/src/host/subsystems.rs b/crates/tinymemory-api/src/host/subsystems.rs similarity index 100% rename from api/src/host/subsystems.rs rename to crates/tinymemory-api/src/host/subsystems.rs diff --git a/api/src/host/test_support.rs b/crates/tinymemory-api/src/host/test_support.rs similarity index 100% rename from api/src/host/test_support.rs rename to crates/tinymemory-api/src/host/test_support.rs diff --git a/api/src/host/usage.rs b/crates/tinymemory-api/src/host/usage.rs similarity index 100% rename from api/src/host/usage.rs rename to crates/tinymemory-api/src/host/usage.rs diff --git a/api/src/lib.rs b/crates/tinymemory-api/src/lib.rs similarity index 100% rename from api/src/lib.rs rename to crates/tinymemory-api/src/lib.rs diff --git a/api/src/mandatory/mod.rs b/crates/tinymemory-api/src/mandatory/mod.rs similarity index 99% rename from api/src/mandatory/mod.rs rename to crates/tinymemory-api/src/mandatory/mod.rs index f427268..efbf2a5 100644 --- a/api/src/mandatory/mod.rs +++ b/crates/tinymemory-api/src/mandatory/mod.rs @@ -78,7 +78,7 @@ pub const SCOPE_UNAPPLIED: &str = #[must_use] pub fn engine_error(error: anyhow::Error) -> MemoryError { // §A4: an adapter that already knows the failure's class attaches a typed - // MemoryError as the anyhow payload (adapters/remote/src/common.rs does + // MemoryError as the anyhow payload (crates/tinymemory-remote/src/common.rs does // for transport and HTTP-status failures). Recover it here instead of // flattening everything to Other — this one line is what makes // "unauthorized" distinguishable from "unreachable" across every diff --git a/api/src/mandatory/provider.rs b/crates/tinymemory-api/src/mandatory/provider.rs similarity index 100% rename from api/src/mandatory/provider.rs rename to crates/tinymemory-api/src/mandatory/provider.rs diff --git a/api/src/mandatory/test.rs b/crates/tinymemory-api/src/mandatory/test.rs similarity index 100% rename from api/src/mandatory/test.rs rename to crates/tinymemory-api/src/mandatory/test.rs diff --git a/api/src/null.rs b/crates/tinymemory-api/src/null.rs similarity index 100% rename from api/src/null.rs rename to crates/tinymemory-api/src/null.rs diff --git a/api/src/null_tests.rs b/crates/tinymemory-api/src/null_tests.rs similarity index 100% rename from api/src/null_tests.rs rename to crates/tinymemory-api/src/null_tests.rs diff --git a/api/src/provider/audit.rs b/crates/tinymemory-api/src/provider/audit.rs similarity index 100% rename from api/src/provider/audit.rs rename to crates/tinymemory-api/src/provider/audit.rs diff --git a/api/src/provider/audit_tests.rs b/crates/tinymemory-api/src/provider/audit_tests.rs similarity index 100% rename from api/src/provider/audit_tests.rs rename to crates/tinymemory-api/src/provider/audit_tests.rs diff --git a/api/src/provider/chunks.rs b/crates/tinymemory-api/src/provider/chunks.rs similarity index 100% rename from api/src/provider/chunks.rs rename to crates/tinymemory-api/src/provider/chunks.rs diff --git a/api/src/provider/content.rs b/crates/tinymemory-api/src/provider/content.rs similarity index 100% rename from api/src/provider/content.rs rename to crates/tinymemory-api/src/provider/content.rs diff --git a/api/src/provider/driver.rs b/crates/tinymemory-api/src/provider/driver.rs similarity index 100% rename from api/src/provider/driver.rs rename to crates/tinymemory-api/src/provider/driver.rs diff --git a/api/src/provider/episodic.rs b/crates/tinymemory-api/src/provider/episodic.rs similarity index 100% rename from api/src/provider/episodic.rs rename to crates/tinymemory-api/src/provider/episodic.rs diff --git a/api/src/provider/knowledge.rs b/crates/tinymemory-api/src/provider/knowledge.rs similarity index 100% rename from api/src/provider/knowledge.rs rename to crates/tinymemory-api/src/provider/knowledge.rs diff --git a/api/src/provider/mandatory.rs b/crates/tinymemory-api/src/provider/mandatory.rs similarity index 100% rename from api/src/provider/mandatory.rs rename to crates/tinymemory-api/src/provider/mandatory.rs diff --git a/api/src/provider/mod.rs b/crates/tinymemory-api/src/provider/mod.rs similarity index 100% rename from api/src/provider/mod.rs rename to crates/tinymemory-api/src/provider/mod.rs diff --git a/api/src/provider/people.rs b/crates/tinymemory-api/src/provider/people.rs similarity index 100% rename from api/src/provider/people.rs rename to crates/tinymemory-api/src/provider/people.rs diff --git a/api/src/provider/profile.rs b/crates/tinymemory-api/src/provider/profile.rs similarity index 100% rename from api/src/provider/profile.rs rename to crates/tinymemory-api/src/provider/profile.rs diff --git a/api/src/provider/records.rs b/crates/tinymemory-api/src/provider/records.rs similarity index 100% rename from api/src/provider/records.rs rename to crates/tinymemory-api/src/provider/records.rs diff --git a/api/src/provider/retrieval.rs b/crates/tinymemory-api/src/provider/retrieval.rs similarity index 100% rename from api/src/provider/retrieval.rs rename to crates/tinymemory-api/src/provider/retrieval.rs diff --git a/api/src/provider/types.rs b/crates/tinymemory-api/src/provider/types.rs similarity index 100% rename from api/src/provider/types.rs rename to crates/tinymemory-api/src/provider/types.rs diff --git a/api/src/provider/types_tests.rs b/crates/tinymemory-api/src/provider/types_tests.rs similarity index 100% rename from api/src/provider/types_tests.rs rename to crates/tinymemory-api/src/provider/types_tests.rs diff --git a/api/src/recall.rs b/crates/tinymemory-api/src/recall.rs similarity index 100% rename from api/src/recall.rs rename to crates/tinymemory-api/src/recall.rs diff --git a/api/src/recall_tests.rs b/crates/tinymemory-api/src/recall_tests.rs similarity index 100% rename from api/src/recall_tests.rs rename to crates/tinymemory-api/src/recall_tests.rs diff --git a/api/src/tool_memory.rs b/crates/tinymemory-api/src/tool_memory.rs similarity index 100% rename from api/src/tool_memory.rs rename to crates/tinymemory-api/src/tool_memory.rs diff --git a/api/src/tool_memory_tests.rs b/crates/tinymemory-api/src/tool_memory_tests.rs similarity index 100% rename from api/src/tool_memory_tests.rs rename to crates/tinymemory-api/src/tool_memory_tests.rs diff --git a/api/src/traits.rs b/crates/tinymemory-api/src/traits.rs similarity index 100% rename from api/src/traits.rs rename to crates/tinymemory-api/src/traits.rs diff --git a/api/src/tree.rs b/crates/tinymemory-api/src/tree.rs similarity index 100% rename from api/src/tree.rs rename to crates/tinymemory-api/src/tree.rs diff --git a/api/src/tree_tests.rs b/crates/tinymemory-api/src/tree_tests.rs similarity index 100% rename from api/src/tree_tests.rs rename to crates/tinymemory-api/src/tree_tests.rs diff --git a/api/src/types.rs b/crates/tinymemory-api/src/types.rs similarity index 100% rename from api/src/types.rs rename to crates/tinymemory-api/src/types.rs diff --git a/api/src/types_tests.rs b/crates/tinymemory-api/src/types_tests.rs similarity index 100% rename from api/src/types_tests.rs rename to crates/tinymemory-api/src/types_tests.rs diff --git a/api/src/version.rs b/crates/tinymemory-api/src/version.rs similarity index 100% rename from api/src/version.rs rename to crates/tinymemory-api/src/version.rs diff --git a/api/src/version_tests.rs b/crates/tinymemory-api/src/version_tests.rs similarity index 100% rename from api/src/version_tests.rs rename to crates/tinymemory-api/src/version_tests.rs diff --git a/api/src/wire.rs b/crates/tinymemory-api/src/wire.rs similarity index 100% rename from api/src/wire.rs rename to crates/tinymemory-api/src/wire.rs diff --git a/api/src/wire_tests.rs b/crates/tinymemory-api/src/wire_tests.rs similarity index 100% rename from api/src/wire_tests.rs rename to crates/tinymemory-api/src/wire_tests.rs diff --git a/conformance/Cargo.toml b/crates/tinymemory-conformance/Cargo.toml similarity index 96% rename from conformance/Cargo.toml rename to crates/tinymemory-conformance/Cargo.toml index 809620e..286585f 100644 --- a/conformance/Cargo.toml +++ b/crates/tinymemory-conformance/Cargo.toml @@ -14,7 +14,7 @@ repository = "https://github.com/tinyhumansai/tinymemory" # prove that a driver is interchangeable, because it would already have chosen # one. In particular it must not reach `tinymemory-core`, which links a bundled # SQLite and the embedded engine unconditionally (issue #18 §D). -tinymemory-api = { path = "../api" } +tinymemory-api = { path = "../tinymemory-api" } # `MemoryProvider` and its families are object-safe async traits. async-trait = "0.1" # `ExportRecord::payload` is a `serde_json::Value`, so the portability diff --git a/conformance/src/lib.rs b/crates/tinymemory-conformance/src/lib.rs similarity index 100% rename from conformance/src/lib.rs rename to crates/tinymemory-conformance/src/lib.rs diff --git a/conformance/src/reference/mod.rs b/crates/tinymemory-conformance/src/reference/mod.rs similarity index 100% rename from conformance/src/reference/mod.rs rename to crates/tinymemory-conformance/src/reference/mod.rs diff --git a/conformance/src/suite/mod.rs b/crates/tinymemory-conformance/src/suite/mod.rs similarity index 100% rename from conformance/src/suite/mod.rs rename to crates/tinymemory-conformance/src/suite/mod.rs diff --git a/conformance/tests/reference_drivers.rs b/crates/tinymemory-conformance/tests/reference_drivers.rs similarity index 100% rename from conformance/tests/reference_drivers.rs rename to crates/tinymemory-conformance/tests/reference_drivers.rs diff --git a/core/Cargo.toml b/crates/tinymemory-core/Cargo.toml similarity index 94% rename from core/Cargo.toml rename to crates/tinymemory-core/Cargo.toml index c003788..07eb474 100644 --- a/core/Cargo.toml +++ b/crates/tinymemory-core/Cargo.toml @@ -10,21 +10,21 @@ rust-version = "1.96" license = "MIT" description = "The engine-neutral memory subsystem: store, summary tree, sync pipelines, ingestion and recall" repository = "https://github.com/tinyhumansai/tinymemory" -readme = "../README.md" +readme = "../../README.md" [dependencies] # The contract. `tinymemory-core` implements and consumes it; the host seam # traits (config, event sink, embeddings, chat) live in `tinymemory_api::host`. -tinymemory-api = { path = "../api" } +tinymemory-api = { path = "../tinymemory-api" } # Composio payload normalisers, extracted out of the engine (issue #18 §B3). # They were reached through `tinycortex` until now, which meant a host binding a # different engine could not have Composio sync despite none of this code # caring which engine is bound. -tinymemory-sync = { path = "../sync" } +tinymemory-sync = { path = "../tinymemory-sync" } # The memory-source contracts and readers (#18 §B4). `network` because this # crate's sync path drives the GitHub/RSS/web-page readers; a host that only # reads local folders can take the crate without them. -tinymemory-sources = { path = "../sources", features = ["network"] } +tinymemory-sources = { path = "../tinymemory-sources", features = ["network"] } # Slack mention tokens (`<@U…>`) in synced messages are rewritten to display # names before ingestion. Returns to the normal graph for this one user — # #18 §D2 removed it when nothing used it, which is no argument against a @@ -78,11 +78,11 @@ walkdir = "2" wiremock = "0.6" # `TestHostConfig` — the concrete `MemoryHostConfig` the extracted test suites # build, since `Config` is a trait object and cannot be `Default`ed. -tinymemory-api = { path = "../api", features = ["test-support"] } +tinymemory-api = { path = "../tinymemory-api", features = ["test-support"] } # The driver conformance suite (#18 §E1). A dev-dependency only: it exists to # hold this crate's own store to the same contract the adapters are held to. # No cycle — `tinymemory-conformance` depends on `tinymemory-api` alone. -tinymemory-conformance = { path = "../conformance" } +tinymemory-conformance = { path = "../tinymemory-conformance" } # Test-only. `store::factories`' tests stand up a throwaway HTTP server to # exercise the embedder's failure paths — the four `axum` references in this # crate are all inside `mod tests`. It was declared as a normal dependency, @@ -95,7 +95,7 @@ axum = { version = "0.8", default-features = false, features = ["http1", "json", # through dev-deps, and this must not become a normal one, which is exactly what # #18 §D1 removed (a facade that depends on adapters cannot have adapters that # depend, through core, back on it). -tinymemory = { path = ".." } +tinymemory = { path = "../tinymemory" } tempfile = "3" tokio = { version = "1", features = ["test-util"] } diff --git a/core/src/chat.rs b/crates/tinymemory-core/src/chat.rs similarity index 100% rename from core/src/chat.rs rename to crates/tinymemory-core/src/chat.rs diff --git a/core/src/chat_host.rs b/crates/tinymemory-core/src/chat_host.rs similarity index 100% rename from core/src/chat_host.rs rename to crates/tinymemory-core/src/chat_host.rs diff --git a/core/src/composio_host.rs b/crates/tinymemory-core/src/composio_host.rs similarity index 100% rename from core/src/composio_host.rs rename to crates/tinymemory-core/src/composio_host.rs diff --git a/core/src/config_loader.rs b/crates/tinymemory-core/src/config_loader.rs similarity index 100% rename from core/src/config_loader.rs rename to crates/tinymemory-core/src/config_loader.rs diff --git a/core/src/conversations/blocking.rs b/crates/tinymemory-core/src/conversations/blocking.rs similarity index 100% rename from core/src/conversations/blocking.rs rename to crates/tinymemory-core/src/conversations/blocking.rs diff --git a/core/src/conversations/blocking_tests.rs b/crates/tinymemory-core/src/conversations/blocking_tests.rs similarity index 100% rename from core/src/conversations/blocking_tests.rs rename to crates/tinymemory-core/src/conversations/blocking_tests.rs diff --git a/core/src/conversations/mod.rs b/crates/tinymemory-core/src/conversations/mod.rs similarity index 100% rename from core/src/conversations/mod.rs rename to crates/tinymemory-core/src/conversations/mod.rs diff --git a/core/src/diff/mod.rs b/crates/tinymemory-core/src/diff/mod.rs similarity index 100% rename from core/src/diff/mod.rs rename to crates/tinymemory-core/src/diff/mod.rs diff --git a/core/src/diff/ops.rs b/crates/tinymemory-core/src/diff/ops.rs similarity index 100% rename from core/src/diff/ops.rs rename to crates/tinymemory-core/src/diff/ops.rs diff --git a/core/src/diff/source.rs b/crates/tinymemory-core/src/diff/source.rs similarity index 100% rename from core/src/diff/source.rs rename to crates/tinymemory-core/src/diff/source.rs diff --git a/core/src/diff/stub.rs b/crates/tinymemory-core/src/diff/stub.rs similarity index 100% rename from core/src/diff/stub.rs rename to crates/tinymemory-core/src/diff/stub.rs diff --git a/core/src/embedding_adapter.rs b/crates/tinymemory-core/src/embedding_adapter.rs similarity index 100% rename from core/src/embedding_adapter.rs rename to crates/tinymemory-core/src/embedding_adapter.rs diff --git a/core/src/embedding_host.rs b/crates/tinymemory-core/src/embedding_host.rs similarity index 100% rename from core/src/embedding_host.rs rename to crates/tinymemory-core/src/embedding_host.rs diff --git a/core/src/engine/backend.rs b/crates/tinymemory-core/src/engine/backend.rs similarity index 100% rename from core/src/engine/backend.rs rename to crates/tinymemory-core/src/engine/backend.rs diff --git a/core/src/engine/chat.rs b/crates/tinymemory-core/src/engine/chat.rs similarity index 100% rename from core/src/engine/chat.rs rename to crates/tinymemory-core/src/engine/chat.rs diff --git a/core/src/engine/config.rs b/crates/tinymemory-core/src/engine/config.rs similarity index 100% rename from core/src/engine/config.rs rename to crates/tinymemory-core/src/engine/config.rs diff --git a/core/src/engine/embeddings.rs b/crates/tinymemory-core/src/engine/embeddings.rs similarity index 100% rename from core/src/engine/embeddings.rs rename to crates/tinymemory-core/src/engine/embeddings.rs diff --git a/core/src/engine/ingest.rs b/crates/tinymemory-core/src/engine/ingest.rs similarity index 100% rename from core/src/engine/ingest.rs rename to crates/tinymemory-core/src/engine/ingest.rs diff --git a/core/src/engine/mod.rs b/crates/tinymemory-core/src/engine/mod.rs similarity index 100% rename from core/src/engine/mod.rs rename to crates/tinymemory-core/src/engine/mod.rs diff --git a/core/src/engine/parity.rs b/crates/tinymemory-core/src/engine/parity.rs similarity index 100% rename from core/src/engine/parity.rs rename to crates/tinymemory-core/src/engine/parity.rs diff --git a/core/src/engine/persona.rs b/crates/tinymemory-core/src/engine/persona.rs similarity index 100% rename from core/src/engine/persona.rs rename to crates/tinymemory-core/src/engine/persona.rs diff --git a/core/src/engine/queue_driver.rs b/crates/tinymemory-core/src/engine/queue_driver.rs similarity index 100% rename from core/src/engine/queue_driver.rs rename to crates/tinymemory-core/src/engine/queue_driver.rs diff --git a/core/src/engine/seal.rs b/crates/tinymemory-core/src/engine/seal.rs similarity index 100% rename from core/src/engine/seal.rs rename to crates/tinymemory-core/src/engine/seal.rs diff --git a/core/src/engine/summariser.rs b/crates/tinymemory-core/src/engine/summariser.rs similarity index 100% rename from core/src/engine/summariser.rs rename to crates/tinymemory-core/src/engine/summariser.rs diff --git a/core/src/engine/sync.rs b/crates/tinymemory-core/src/engine/sync.rs similarity index 100% rename from core/src/engine/sync.rs rename to crates/tinymemory-core/src/engine/sync.rs diff --git a/core/src/events.rs b/crates/tinymemory-core/src/events.rs similarity index 100% rename from core/src/events.rs rename to crates/tinymemory-core/src/events.rs diff --git a/core/src/global.rs b/crates/tinymemory-core/src/global.rs similarity index 100% rename from core/src/global.rs rename to crates/tinymemory-core/src/global.rs diff --git a/core/src/ingest_pipeline.rs b/crates/tinymemory-core/src/ingest_pipeline.rs similarity index 100% rename from core/src/ingest_pipeline.rs rename to crates/tinymemory-core/src/ingest_pipeline.rs diff --git a/core/src/ingestion/README.md b/crates/tinymemory-core/src/ingestion/README.md similarity index 100% rename from core/src/ingestion/README.md rename to crates/tinymemory-core/src/ingestion/README.md diff --git a/core/src/ingestion/mod.rs b/crates/tinymemory-core/src/ingestion/mod.rs similarity index 100% rename from core/src/ingestion/mod.rs rename to crates/tinymemory-core/src/ingestion/mod.rs diff --git a/core/src/ingestion/queue.rs b/crates/tinymemory-core/src/ingestion/queue.rs similarity index 100% rename from core/src/ingestion/queue.rs rename to crates/tinymemory-core/src/ingestion/queue.rs diff --git a/core/src/ingestion/state.rs b/crates/tinymemory-core/src/ingestion/state.rs similarity index 100% rename from core/src/ingestion/state.rs rename to crates/tinymemory-core/src/ingestion/state.rs diff --git a/core/src/ingestion/tests.rs b/crates/tinymemory-core/src/ingestion/tests.rs similarity index 100% rename from core/src/ingestion/tests.rs rename to crates/tinymemory-core/src/ingestion/tests.rs diff --git a/core/src/learning_candidate.rs b/crates/tinymemory-core/src/learning_candidate.rs similarity index 100% rename from core/src/learning_candidate.rs rename to crates/tinymemory-core/src/learning_candidate.rs diff --git a/core/src/lib.rs b/crates/tinymemory-core/src/lib.rs similarity index 100% rename from core/src/lib.rs rename to crates/tinymemory-core/src/lib.rs diff --git a/core/src/nlp_host.rs b/crates/tinymemory-core/src/nlp_host.rs similarity index 100% rename from core/src/nlp_host.rs rename to crates/tinymemory-core/src/nlp_host.rs diff --git a/core/src/observability.rs b/crates/tinymemory-core/src/observability.rs similarity index 100% rename from core/src/observability.rs rename to crates/tinymemory-core/src/observability.rs diff --git a/core/src/people/README.md b/crates/tinymemory-core/src/people/README.md similarity index 100% rename from core/src/people/README.md rename to crates/tinymemory-core/src/people/README.md diff --git a/core/src/people/mod.rs b/crates/tinymemory-core/src/people/mod.rs similarity index 100% rename from core/src/people/mod.rs rename to crates/tinymemory-core/src/people/mod.rs diff --git a/core/src/preferences.rs b/crates/tinymemory-core/src/preferences.rs similarity index 100% rename from core/src/preferences.rs rename to crates/tinymemory-core/src/preferences.rs diff --git a/core/src/queue/README.md b/crates/tinymemory-core/src/queue/README.md similarity index 100% rename from core/src/queue/README.md rename to crates/tinymemory-core/src/queue/README.md diff --git a/core/src/queue/mod.rs b/crates/tinymemory-core/src/queue/mod.rs similarity index 100% rename from core/src/queue/mod.rs rename to crates/tinymemory-core/src/queue/mod.rs diff --git a/core/src/queue/ops.rs b/crates/tinymemory-core/src/queue/ops.rs similarity index 100% rename from core/src/queue/ops.rs rename to crates/tinymemory-core/src/queue/ops.rs diff --git a/core/src/queue/scheduler.rs b/crates/tinymemory-core/src/queue/scheduler.rs similarity index 100% rename from core/src/queue/scheduler.rs rename to crates/tinymemory-core/src/queue/scheduler.rs diff --git a/core/src/queue/store.rs b/crates/tinymemory-core/src/queue/store.rs similarity index 100% rename from core/src/queue/store.rs rename to crates/tinymemory-core/src/queue/store.rs diff --git a/core/src/queue/testing.rs b/crates/tinymemory-core/src/queue/testing.rs similarity index 100% rename from core/src/queue/testing.rs rename to crates/tinymemory-core/src/queue/testing.rs diff --git a/core/src/queue/types.rs b/crates/tinymemory-core/src/queue/types.rs similarity index 100% rename from core/src/queue/types.rs rename to crates/tinymemory-core/src/queue/types.rs diff --git a/core/src/queue/worker.rs b/crates/tinymemory-core/src/queue/worker.rs similarity index 100% rename from core/src/queue/worker.rs rename to crates/tinymemory-core/src/queue/worker.rs diff --git a/core/src/remember.rs b/crates/tinymemory-core/src/remember.rs similarity index 100% rename from core/src/remember.rs rename to crates/tinymemory-core/src/remember.rs diff --git a/core/src/rpc_models.rs b/crates/tinymemory-core/src/rpc_models.rs similarity index 100% rename from core/src/rpc_models.rs rename to crates/tinymemory-core/src/rpc_models.rs diff --git a/core/src/rpc_models_tests.rs b/crates/tinymemory-core/src/rpc_models_tests.rs similarity index 100% rename from core/src/rpc_models_tests.rs rename to crates/tinymemory-core/src/rpc_models_tests.rs diff --git a/core/src/scheduler_gate.rs b/crates/tinymemory-core/src/scheduler_gate.rs similarity index 100% rename from core/src/scheduler_gate.rs rename to crates/tinymemory-core/src/scheduler_gate.rs diff --git a/core/src/search/mod.rs b/crates/tinymemory-core/src/search/mod.rs similarity index 100% rename from core/src/search/mod.rs rename to crates/tinymemory-core/src/search/mod.rs diff --git a/core/src/shutdown.rs b/crates/tinymemory-core/src/shutdown.rs similarity index 100% rename from core/src/shutdown.rs rename to crates/tinymemory-core/src/shutdown.rs diff --git a/core/src/source_scope.rs b/crates/tinymemory-core/src/source_scope.rs similarity index 100% rename from core/src/source_scope.rs rename to crates/tinymemory-core/src/source_scope.rs diff --git a/core/src/sources/README.md b/crates/tinymemory-core/src/sources/README.md similarity index 100% rename from core/src/sources/README.md rename to crates/tinymemory-core/src/sources/README.md diff --git a/core/src/sources/mod.rs b/crates/tinymemory-core/src/sources/mod.rs similarity index 100% rename from core/src/sources/mod.rs rename to crates/tinymemory-core/src/sources/mod.rs diff --git a/core/src/sources/readers/composio.rs b/crates/tinymemory-core/src/sources/readers/composio.rs similarity index 100% rename from core/src/sources/readers/composio.rs rename to crates/tinymemory-core/src/sources/readers/composio.rs diff --git a/core/src/sources/readers/conversation.rs b/crates/tinymemory-core/src/sources/readers/conversation.rs similarity index 100% rename from core/src/sources/readers/conversation.rs rename to crates/tinymemory-core/src/sources/readers/conversation.rs diff --git a/core/src/sources/readers/folder.rs b/crates/tinymemory-core/src/sources/readers/folder.rs similarity index 100% rename from core/src/sources/readers/folder.rs rename to crates/tinymemory-core/src/sources/readers/folder.rs diff --git a/core/src/sources/readers/github.rs b/crates/tinymemory-core/src/sources/readers/github.rs similarity index 100% rename from core/src/sources/readers/github.rs rename to crates/tinymemory-core/src/sources/readers/github.rs diff --git a/core/src/sources/readers/mod.rs b/crates/tinymemory-core/src/sources/readers/mod.rs similarity index 100% rename from core/src/sources/readers/mod.rs rename to crates/tinymemory-core/src/sources/readers/mod.rs diff --git a/core/src/sources/readers/rss.rs b/crates/tinymemory-core/src/sources/readers/rss.rs similarity index 100% rename from core/src/sources/readers/rss.rs rename to crates/tinymemory-core/src/sources/readers/rss.rs diff --git a/core/src/sources/readers/twitter.rs b/crates/tinymemory-core/src/sources/readers/twitter.rs similarity index 100% rename from core/src/sources/readers/twitter.rs rename to crates/tinymemory-core/src/sources/readers/twitter.rs diff --git a/core/src/sources/readers/web_page.rs b/crates/tinymemory-core/src/sources/readers/web_page.rs similarity index 100% rename from core/src/sources/readers/web_page.rs rename to crates/tinymemory-core/src/sources/readers/web_page.rs diff --git a/core/src/sources/reconcile.rs b/crates/tinymemory-core/src/sources/reconcile.rs similarity index 100% rename from core/src/sources/reconcile.rs rename to crates/tinymemory-core/src/sources/reconcile.rs diff --git a/core/src/sources/registry.rs b/crates/tinymemory-core/src/sources/registry.rs similarity index 100% rename from core/src/sources/registry.rs rename to crates/tinymemory-core/src/sources/registry.rs diff --git a/core/src/sources/status.rs b/crates/tinymemory-core/src/sources/status.rs similarity index 100% rename from core/src/sources/status.rs rename to crates/tinymemory-core/src/sources/status.rs diff --git a/core/src/sources/sync.rs b/crates/tinymemory-core/src/sources/sync.rs similarity index 100% rename from core/src/sources/sync.rs rename to crates/tinymemory-core/src/sources/sync.rs diff --git a/core/src/sources/types.rs b/crates/tinymemory-core/src/sources/types.rs similarity index 100% rename from core/src/sources/types.rs rename to crates/tinymemory-core/src/sources/types.rs diff --git a/core/src/store/README.md b/crates/tinymemory-core/src/store/README.md similarity index 100% rename from core/src/store/README.md rename to crates/tinymemory-core/src/store/README.md diff --git a/core/src/store/chunks/connection.rs b/crates/tinymemory-core/src/store/chunks/connection.rs similarity index 100% rename from core/src/store/chunks/connection.rs rename to crates/tinymemory-core/src/store/chunks/connection.rs diff --git a/core/src/store/chunks/embeddings.rs b/crates/tinymemory-core/src/store/chunks/embeddings.rs similarity index 100% rename from core/src/store/chunks/embeddings.rs rename to crates/tinymemory-core/src/store/chunks/embeddings.rs diff --git a/core/src/store/chunks/mod.rs b/crates/tinymemory-core/src/store/chunks/mod.rs similarity index 100% rename from core/src/store/chunks/mod.rs rename to crates/tinymemory-core/src/store/chunks/mod.rs diff --git a/core/src/store/chunks/raw_refs.rs b/crates/tinymemory-core/src/store/chunks/raw_refs.rs similarity index 100% rename from core/src/store/chunks/raw_refs.rs rename to crates/tinymemory-core/src/store/chunks/raw_refs.rs diff --git a/core/src/store/chunks/semantic.rs b/crates/tinymemory-core/src/store/chunks/semantic.rs similarity index 100% rename from core/src/store/chunks/semantic.rs rename to crates/tinymemory-core/src/store/chunks/semantic.rs diff --git a/core/src/store/chunks/store.rs b/crates/tinymemory-core/src/store/chunks/store.rs similarity index 100% rename from core/src/store/chunks/store.rs rename to crates/tinymemory-core/src/store/chunks/store.rs diff --git a/core/src/store/chunks/types.rs b/crates/tinymemory-core/src/store/chunks/types.rs similarity index 100% rename from core/src/store/chunks/types.rs rename to crates/tinymemory-core/src/store/chunks/types.rs diff --git a/core/src/store/client.rs b/crates/tinymemory-core/src/store/client.rs similarity index 100% rename from core/src/store/client.rs rename to crates/tinymemory-core/src/store/client.rs diff --git a/core/src/store/client_tests.rs b/crates/tinymemory-core/src/store/client_tests.rs similarity index 100% rename from core/src/store/client_tests.rs rename to crates/tinymemory-core/src/store/client_tests.rs diff --git a/core/src/store/content/README.md b/crates/tinymemory-core/src/store/content/README.md similarity index 100% rename from core/src/store/content/README.md rename to crates/tinymemory-core/src/store/content/README.md diff --git a/core/src/store/content/mod.rs b/crates/tinymemory-core/src/store/content/mod.rs similarity index 100% rename from core/src/store/content/mod.rs rename to crates/tinymemory-core/src/store/content/mod.rs diff --git a/core/src/store/content/read.rs b/crates/tinymemory-core/src/store/content/read.rs similarity index 100% rename from core/src/store/content/read.rs rename to crates/tinymemory-core/src/store/content/read.rs diff --git a/core/src/store/content/tags.rs b/crates/tinymemory-core/src/store/content/tags.rs similarity index 100% rename from core/src/store/content/tags.rs rename to crates/tinymemory-core/src/store/content/tags.rs diff --git a/core/src/store/entities.rs b/crates/tinymemory-core/src/store/entities.rs similarity index 100% rename from core/src/store/entities.rs rename to crates/tinymemory-core/src/store/entities.rs diff --git a/core/src/store/factories.rs b/crates/tinymemory-core/src/store/factories.rs similarity index 99% rename from core/src/store/factories.rs rename to crates/tinymemory-core/src/store/factories.rs index e44e658..f2da6be 100644 --- a/core/src/store/factories.rs +++ b/crates/tinymemory-core/src/store/factories.rs @@ -359,7 +359,7 @@ pub fn create_memory( /// Issue #18 §A3/§A5. Until this existed, `tinymemory-core`'s /// [`UnifiedMemory`] was the one storage /// implementation in the workspace with no route through the contract: the -/// TinyCortex adapter binds the bundled engine, `adapters/remote` binds the +/// TinyCortex adapter binds the bundled engine, `tinymemory-remote` binds the /// three hosted services, and core's own SQLite store was reachable only by /// naming its concrete type. A host could therefore not treat "the store /// tinymemory ships with" as a driver, which is the whole premise of the diff --git a/core/src/store/factories_provider_test.rs b/crates/tinymemory-core/src/store/factories_provider_test.rs similarity index 100% rename from core/src/store/factories_provider_test.rs rename to crates/tinymemory-core/src/store/factories_provider_test.rs diff --git a/core/src/store/kinds.rs b/crates/tinymemory-core/src/store/kinds.rs similarity index 100% rename from core/src/store/kinds.rs rename to crates/tinymemory-core/src/store/kinds.rs diff --git a/core/src/store/kv.rs b/crates/tinymemory-core/src/store/kv.rs similarity index 100% rename from core/src/store/kv.rs rename to crates/tinymemory-core/src/store/kv.rs diff --git a/core/src/store/memory_trait.rs b/crates/tinymemory-core/src/store/memory_trait.rs similarity index 100% rename from core/src/store/memory_trait.rs rename to crates/tinymemory-core/src/store/memory_trait.rs diff --git a/core/src/store/mod.rs b/crates/tinymemory-core/src/store/mod.rs similarity index 100% rename from core/src/store/mod.rs rename to crates/tinymemory-core/src/store/mod.rs diff --git a/core/src/store/namespace_store/README.md b/crates/tinymemory-core/src/store/namespace_store/README.md similarity index 100% rename from core/src/store/namespace_store/README.md rename to crates/tinymemory-core/src/store/namespace_store/README.md diff --git a/core/src/store/namespace_store/documents.rs b/crates/tinymemory-core/src/store/namespace_store/documents.rs similarity index 100% rename from core/src/store/namespace_store/documents.rs rename to crates/tinymemory-core/src/store/namespace_store/documents.rs diff --git a/core/src/store/namespace_store/documents_tests.rs b/crates/tinymemory-core/src/store/namespace_store/documents_tests.rs similarity index 100% rename from core/src/store/namespace_store/documents_tests.rs rename to crates/tinymemory-core/src/store/namespace_store/documents_tests.rs diff --git a/core/src/store/namespace_store/events.rs b/crates/tinymemory-core/src/store/namespace_store/events.rs similarity index 100% rename from core/src/store/namespace_store/events.rs rename to crates/tinymemory-core/src/store/namespace_store/events.rs diff --git a/core/src/store/namespace_store/events_tests.rs b/crates/tinymemory-core/src/store/namespace_store/events_tests.rs similarity index 100% rename from core/src/store/namespace_store/events_tests.rs rename to crates/tinymemory-core/src/store/namespace_store/events_tests.rs diff --git a/core/src/store/namespace_store/fts5.rs b/crates/tinymemory-core/src/store/namespace_store/fts5.rs similarity index 100% rename from core/src/store/namespace_store/fts5.rs rename to crates/tinymemory-core/src/store/namespace_store/fts5.rs diff --git a/core/src/store/namespace_store/graph.rs b/crates/tinymemory-core/src/store/namespace_store/graph.rs similarity index 100% rename from core/src/store/namespace_store/graph.rs rename to crates/tinymemory-core/src/store/namespace_store/graph.rs diff --git a/core/src/store/namespace_store/helpers.rs b/crates/tinymemory-core/src/store/namespace_store/helpers.rs similarity index 100% rename from core/src/store/namespace_store/helpers.rs rename to crates/tinymemory-core/src/store/namespace_store/helpers.rs diff --git a/core/src/store/namespace_store/init.rs b/crates/tinymemory-core/src/store/namespace_store/init.rs similarity index 100% rename from core/src/store/namespace_store/init.rs rename to crates/tinymemory-core/src/store/namespace_store/init.rs diff --git a/core/src/store/namespace_store/mod.rs b/crates/tinymemory-core/src/store/namespace_store/mod.rs similarity index 100% rename from core/src/store/namespace_store/mod.rs rename to crates/tinymemory-core/src/store/namespace_store/mod.rs diff --git a/core/src/store/namespace_store/profile.rs b/crates/tinymemory-core/src/store/namespace_store/profile.rs similarity index 100% rename from core/src/store/namespace_store/profile.rs rename to crates/tinymemory-core/src/store/namespace_store/profile.rs diff --git a/core/src/store/namespace_store/profile_tests.rs b/crates/tinymemory-core/src/store/namespace_store/profile_tests.rs similarity index 100% rename from core/src/store/namespace_store/profile_tests.rs rename to crates/tinymemory-core/src/store/namespace_store/profile_tests.rs diff --git a/core/src/store/namespace_store/query.rs b/crates/tinymemory-core/src/store/namespace_store/query.rs similarity index 100% rename from core/src/store/namespace_store/query.rs rename to crates/tinymemory-core/src/store/namespace_store/query.rs diff --git a/core/src/store/namespace_store/query_tests.rs b/crates/tinymemory-core/src/store/namespace_store/query_tests.rs similarity index 100% rename from core/src/store/namespace_store/query_tests.rs rename to crates/tinymemory-core/src/store/namespace_store/query_tests.rs diff --git a/core/src/store/namespace_store/segments.rs b/crates/tinymemory-core/src/store/namespace_store/segments.rs similarity index 100% rename from core/src/store/namespace_store/segments.rs rename to crates/tinymemory-core/src/store/namespace_store/segments.rs diff --git a/core/src/store/namespace_store/segments_tests.rs b/crates/tinymemory-core/src/store/namespace_store/segments_tests.rs similarity index 100% rename from core/src/store/namespace_store/segments_tests.rs rename to crates/tinymemory-core/src/store/namespace_store/segments_tests.rs diff --git a/core/src/store/profile_store.rs b/crates/tinymemory-core/src/store/profile_store.rs similarity index 100% rename from core/src/store/profile_store.rs rename to crates/tinymemory-core/src/store/profile_store.rs diff --git a/core/src/store/profile_store_tests.rs b/crates/tinymemory-core/src/store/profile_store_tests.rs similarity index 100% rename from core/src/store/profile_store_tests.rs rename to crates/tinymemory-core/src/store/profile_store_tests.rs diff --git a/core/src/store/recall_policy.rs b/crates/tinymemory-core/src/store/recall_policy.rs similarity index 100% rename from core/src/store/recall_policy.rs rename to crates/tinymemory-core/src/store/recall_policy.rs diff --git a/core/src/store/retrieval/mod.rs b/crates/tinymemory-core/src/store/retrieval/mod.rs similarity index 100% rename from core/src/store/retrieval/mod.rs rename to crates/tinymemory-core/src/store/retrieval/mod.rs diff --git a/core/src/store/safety/mod.rs b/crates/tinymemory-core/src/store/safety/mod.rs similarity index 100% rename from core/src/store/safety/mod.rs rename to crates/tinymemory-core/src/store/safety/mod.rs diff --git a/core/src/store/safety/pii.rs b/crates/tinymemory-core/src/store/safety/pii.rs similarity index 100% rename from core/src/store/safety/pii.rs rename to crates/tinymemory-core/src/store/safety/pii.rs diff --git a/core/src/store/traits.rs b/crates/tinymemory-core/src/store/traits.rs similarity index 100% rename from core/src/store/traits.rs rename to crates/tinymemory-core/src/store/traits.rs diff --git a/core/src/store/trees/hotness.rs b/crates/tinymemory-core/src/store/trees/hotness.rs similarity index 100% rename from core/src/store/trees/hotness.rs rename to crates/tinymemory-core/src/store/trees/hotness.rs diff --git a/core/src/store/trees/mod.rs b/crates/tinymemory-core/src/store/trees/mod.rs similarity index 100% rename from core/src/store/trees/mod.rs rename to crates/tinymemory-core/src/store/trees/mod.rs diff --git a/core/src/store/trees/registry.rs b/crates/tinymemory-core/src/store/trees/registry.rs similarity index 100% rename from core/src/store/trees/registry.rs rename to crates/tinymemory-core/src/store/trees/registry.rs diff --git a/core/src/store/trees/store.rs b/crates/tinymemory-core/src/store/trees/store.rs similarity index 100% rename from core/src/store/trees/store.rs rename to crates/tinymemory-core/src/store/trees/store.rs diff --git a/core/src/store/trees/store_tests.rs b/crates/tinymemory-core/src/store/trees/store_tests.rs similarity index 100% rename from core/src/store/trees/store_tests.rs rename to crates/tinymemory-core/src/store/trees/store_tests.rs diff --git a/core/src/store/trees/types.rs b/crates/tinymemory-core/src/store/trees/types.rs similarity index 100% rename from core/src/store/trees/types.rs rename to crates/tinymemory-core/src/store/trees/types.rs diff --git a/core/src/store/types.rs b/crates/tinymemory-core/src/store/types.rs similarity index 100% rename from core/src/store/types.rs rename to crates/tinymemory-core/src/store/types.rs diff --git a/core/src/store/write_gate.rs b/crates/tinymemory-core/src/store/write_gate.rs similarity index 100% rename from core/src/store/write_gate.rs rename to crates/tinymemory-core/src/store/write_gate.rs diff --git a/core/src/store/write_gate_tests.rs b/crates/tinymemory-core/src/store/write_gate_tests.rs similarity index 100% rename from core/src/store/write_gate_tests.rs rename to crates/tinymemory-core/src/store/write_gate_tests.rs diff --git a/core/src/sync/README.md b/crates/tinymemory-core/src/sync/README.md similarity index 100% rename from core/src/sync/README.md rename to crates/tinymemory-core/src/sync/README.md diff --git a/core/src/sync/audit.rs b/crates/tinymemory-core/src/sync/audit.rs similarity index 100% rename from core/src/sync/audit.rs rename to crates/tinymemory-core/src/sync/audit.rs diff --git a/core/src/sync/composio/mod.rs b/crates/tinymemory-core/src/sync/composio/mod.rs similarity index 100% rename from core/src/sync/composio/mod.rs rename to crates/tinymemory-core/src/sync/composio/mod.rs diff --git a/core/src/sync/composio/periodic.rs b/crates/tinymemory-core/src/sync/composio/periodic.rs similarity index 100% rename from core/src/sync/composio/periodic.rs rename to crates/tinymemory-core/src/sync/composio/periodic.rs diff --git a/core/src/sync/composio/providers/catalogs.rs b/crates/tinymemory-core/src/sync/composio/providers/catalogs.rs similarity index 100% rename from core/src/sync/composio/providers/catalogs.rs rename to crates/tinymemory-core/src/sync/composio/providers/catalogs.rs diff --git a/core/src/sync/composio/providers/catalogs_business.rs b/crates/tinymemory-core/src/sync/composio/providers/catalogs_business.rs similarity index 100% rename from core/src/sync/composio/providers/catalogs_business.rs rename to crates/tinymemory-core/src/sync/composio/providers/catalogs_business.rs diff --git a/core/src/sync/composio/providers/catalogs_google.rs b/crates/tinymemory-core/src/sync/composio/providers/catalogs_google.rs similarity index 100% rename from core/src/sync/composio/providers/catalogs_google.rs rename to crates/tinymemory-core/src/sync/composio/providers/catalogs_google.rs diff --git a/core/src/sync/composio/providers/catalogs_messaging.rs b/crates/tinymemory-core/src/sync/composio/providers/catalogs_messaging.rs similarity index 100% rename from core/src/sync/composio/providers/catalogs_messaging.rs rename to crates/tinymemory-core/src/sync/composio/providers/catalogs_messaging.rs diff --git a/core/src/sync/composio/providers/catalogs_microsoft.rs b/crates/tinymemory-core/src/sync/composio/providers/catalogs_microsoft.rs similarity index 100% rename from core/src/sync/composio/providers/catalogs_microsoft.rs rename to crates/tinymemory-core/src/sync/composio/providers/catalogs_microsoft.rs diff --git a/core/src/sync/composio/providers/catalogs_productivity.rs b/crates/tinymemory-core/src/sync/composio/providers/catalogs_productivity.rs similarity index 100% rename from core/src/sync/composio/providers/catalogs_productivity.rs rename to crates/tinymemory-core/src/sync/composio/providers/catalogs_productivity.rs diff --git a/core/src/sync/composio/providers/catalogs_social_media.rs b/crates/tinymemory-core/src/sync/composio/providers/catalogs_social_media.rs similarity index 100% rename from core/src/sync/composio/providers/catalogs_social_media.rs rename to crates/tinymemory-core/src/sync/composio/providers/catalogs_social_media.rs diff --git a/core/src/sync/composio/providers/clickup/mod.rs b/crates/tinymemory-core/src/sync/composio/providers/clickup/mod.rs similarity index 100% rename from core/src/sync/composio/providers/clickup/mod.rs rename to crates/tinymemory-core/src/sync/composio/providers/clickup/mod.rs diff --git a/core/src/sync/composio/providers/clickup/provider.rs b/crates/tinymemory-core/src/sync/composio/providers/clickup/provider.rs similarity index 100% rename from core/src/sync/composio/providers/clickup/provider.rs rename to crates/tinymemory-core/src/sync/composio/providers/clickup/provider.rs diff --git a/core/src/sync/composio/providers/clickup/tests.rs b/crates/tinymemory-core/src/sync/composio/providers/clickup/tests.rs similarity index 100% rename from core/src/sync/composio/providers/clickup/tests.rs rename to crates/tinymemory-core/src/sync/composio/providers/clickup/tests.rs diff --git a/core/src/sync/composio/providers/clickup/tools.rs b/crates/tinymemory-core/src/sync/composio/providers/clickup/tools.rs similarity index 100% rename from core/src/sync/composio/providers/clickup/tools.rs rename to crates/tinymemory-core/src/sync/composio/providers/clickup/tools.rs diff --git a/core/src/sync/composio/providers/descriptions.rs b/crates/tinymemory-core/src/sync/composio/providers/descriptions.rs similarity index 100% rename from core/src/sync/composio/providers/descriptions.rs rename to crates/tinymemory-core/src/sync/composio/providers/descriptions.rs diff --git a/core/src/sync/composio/providers/github/mod.rs b/crates/tinymemory-core/src/sync/composio/providers/github/mod.rs similarity index 100% rename from core/src/sync/composio/providers/github/mod.rs rename to crates/tinymemory-core/src/sync/composio/providers/github/mod.rs diff --git a/core/src/sync/composio/providers/github/provider.rs b/crates/tinymemory-core/src/sync/composio/providers/github/provider.rs similarity index 100% rename from core/src/sync/composio/providers/github/provider.rs rename to crates/tinymemory-core/src/sync/composio/providers/github/provider.rs diff --git a/core/src/sync/composio/providers/github/tests.rs b/crates/tinymemory-core/src/sync/composio/providers/github/tests.rs similarity index 100% rename from core/src/sync/composio/providers/github/tests.rs rename to crates/tinymemory-core/src/sync/composio/providers/github/tests.rs diff --git a/core/src/sync/composio/providers/github/tools.rs b/crates/tinymemory-core/src/sync/composio/providers/github/tools.rs similarity index 100% rename from core/src/sync/composio/providers/github/tools.rs rename to crates/tinymemory-core/src/sync/composio/providers/github/tools.rs diff --git a/core/src/sync/composio/providers/gmail/mod.rs b/crates/tinymemory-core/src/sync/composio/providers/gmail/mod.rs similarity index 100% rename from core/src/sync/composio/providers/gmail/mod.rs rename to crates/tinymemory-core/src/sync/composio/providers/gmail/mod.rs diff --git a/core/src/sync/composio/providers/gmail/provider.rs b/crates/tinymemory-core/src/sync/composio/providers/gmail/provider.rs similarity index 100% rename from core/src/sync/composio/providers/gmail/provider.rs rename to crates/tinymemory-core/src/sync/composio/providers/gmail/provider.rs diff --git a/core/src/sync/composio/providers/gmail/tests.rs b/crates/tinymemory-core/src/sync/composio/providers/gmail/tests.rs similarity index 100% rename from core/src/sync/composio/providers/gmail/tests.rs rename to crates/tinymemory-core/src/sync/composio/providers/gmail/tests.rs diff --git a/core/src/sync/composio/providers/gmail/tools.rs b/crates/tinymemory-core/src/sync/composio/providers/gmail/tools.rs similarity index 100% rename from core/src/sync/composio/providers/gmail/tools.rs rename to crates/tinymemory-core/src/sync/composio/providers/gmail/tools.rs diff --git a/core/src/sync/composio/providers/helpers.rs b/crates/tinymemory-core/src/sync/composio/providers/helpers.rs similarity index 100% rename from core/src/sync/composio/providers/helpers.rs rename to crates/tinymemory-core/src/sync/composio/providers/helpers.rs diff --git a/core/src/sync/composio/providers/linear/mod.rs b/crates/tinymemory-core/src/sync/composio/providers/linear/mod.rs similarity index 100% rename from core/src/sync/composio/providers/linear/mod.rs rename to crates/tinymemory-core/src/sync/composio/providers/linear/mod.rs diff --git a/core/src/sync/composio/providers/linear/provider.rs b/crates/tinymemory-core/src/sync/composio/providers/linear/provider.rs similarity index 100% rename from core/src/sync/composio/providers/linear/provider.rs rename to crates/tinymemory-core/src/sync/composio/providers/linear/provider.rs diff --git a/core/src/sync/composio/providers/linear/tests.rs b/crates/tinymemory-core/src/sync/composio/providers/linear/tests.rs similarity index 100% rename from core/src/sync/composio/providers/linear/tests.rs rename to crates/tinymemory-core/src/sync/composio/providers/linear/tests.rs diff --git a/core/src/sync/composio/providers/linear/tools.rs b/crates/tinymemory-core/src/sync/composio/providers/linear/tools.rs similarity index 100% rename from core/src/sync/composio/providers/linear/tools.rs rename to crates/tinymemory-core/src/sync/composio/providers/linear/tools.rs diff --git a/core/src/sync/composio/providers/mod.rs b/crates/tinymemory-core/src/sync/composio/providers/mod.rs similarity index 100% rename from core/src/sync/composio/providers/mod.rs rename to crates/tinymemory-core/src/sync/composio/providers/mod.rs diff --git a/core/src/sync/composio/providers/notion/mod.rs b/crates/tinymemory-core/src/sync/composio/providers/notion/mod.rs similarity index 100% rename from core/src/sync/composio/providers/notion/mod.rs rename to crates/tinymemory-core/src/sync/composio/providers/notion/mod.rs diff --git a/core/src/sync/composio/providers/notion/provider.rs b/crates/tinymemory-core/src/sync/composio/providers/notion/provider.rs similarity index 100% rename from core/src/sync/composio/providers/notion/provider.rs rename to crates/tinymemory-core/src/sync/composio/providers/notion/provider.rs diff --git a/core/src/sync/composio/providers/notion/tests.rs b/crates/tinymemory-core/src/sync/composio/providers/notion/tests.rs similarity index 100% rename from core/src/sync/composio/providers/notion/tests.rs rename to crates/tinymemory-core/src/sync/composio/providers/notion/tests.rs diff --git a/core/src/sync/composio/providers/notion/tools.rs b/crates/tinymemory-core/src/sync/composio/providers/notion/tools.rs similarity index 100% rename from core/src/sync/composio/providers/notion/tools.rs rename to crates/tinymemory-core/src/sync/composio/providers/notion/tools.rs diff --git a/core/src/sync/composio/providers/profile.rs b/crates/tinymemory-core/src/sync/composio/providers/profile.rs similarity index 100% rename from core/src/sync/composio/providers/profile.rs rename to crates/tinymemory-core/src/sync/composio/providers/profile.rs diff --git a/core/src/sync/composio/providers/profile_md.rs b/crates/tinymemory-core/src/sync/composio/providers/profile_md.rs similarity index 100% rename from core/src/sync/composio/providers/profile_md.rs rename to crates/tinymemory-core/src/sync/composio/providers/profile_md.rs diff --git a/core/src/sync/composio/providers/registry.rs b/crates/tinymemory-core/src/sync/composio/providers/registry.rs similarity index 100% rename from core/src/sync/composio/providers/registry.rs rename to crates/tinymemory-core/src/sync/composio/providers/registry.rs diff --git a/core/src/sync/composio/providers/scope_lookup.rs b/crates/tinymemory-core/src/sync/composio/providers/scope_lookup.rs similarity index 100% rename from core/src/sync/composio/providers/scope_lookup.rs rename to crates/tinymemory-core/src/sync/composio/providers/scope_lookup.rs diff --git a/core/src/sync/composio/providers/slack/mod.rs b/crates/tinymemory-core/src/sync/composio/providers/slack/mod.rs similarity index 100% rename from core/src/sync/composio/providers/slack/mod.rs rename to crates/tinymemory-core/src/sync/composio/providers/slack/mod.rs diff --git a/core/src/sync/composio/providers/slack/provider.rs b/crates/tinymemory-core/src/sync/composio/providers/slack/provider.rs similarity index 100% rename from core/src/sync/composio/providers/slack/provider.rs rename to crates/tinymemory-core/src/sync/composio/providers/slack/provider.rs diff --git a/core/src/sync/composio/providers/slack/types.rs b/crates/tinymemory-core/src/sync/composio/providers/slack/types.rs similarity index 100% rename from core/src/sync/composio/providers/slack/types.rs rename to crates/tinymemory-core/src/sync/composio/providers/slack/types.rs diff --git a/core/src/sync/composio/providers/sync_state.rs b/crates/tinymemory-core/src/sync/composio/providers/sync_state.rs similarity index 100% rename from core/src/sync/composio/providers/sync_state.rs rename to crates/tinymemory-core/src/sync/composio/providers/sync_state.rs diff --git a/core/src/sync/composio/providers/tool_scope.rs b/crates/tinymemory-core/src/sync/composio/providers/tool_scope.rs similarity index 100% rename from core/src/sync/composio/providers/tool_scope.rs rename to crates/tinymemory-core/src/sync/composio/providers/tool_scope.rs diff --git a/core/src/sync/composio/providers/traits.rs b/crates/tinymemory-core/src/sync/composio/providers/traits.rs similarity index 100% rename from core/src/sync/composio/providers/traits.rs rename to crates/tinymemory-core/src/sync/composio/providers/traits.rs diff --git a/core/src/sync/composio/providers/types.rs b/crates/tinymemory-core/src/sync/composio/providers/types.rs similarity index 100% rename from core/src/sync/composio/providers/types.rs rename to crates/tinymemory-core/src/sync/composio/providers/types.rs diff --git a/core/src/sync/composio/providers/user_scopes.rs b/crates/tinymemory-core/src/sync/composio/providers/user_scopes.rs similarity index 100% rename from core/src/sync/composio/providers/user_scopes.rs rename to crates/tinymemory-core/src/sync/composio/providers/user_scopes.rs diff --git a/core/src/sync/composio/providers/user_scopes_tests.rs b/crates/tinymemory-core/src/sync/composio/providers/user_scopes_tests.rs similarity index 100% rename from core/src/sync/composio/providers/user_scopes_tests.rs rename to crates/tinymemory-core/src/sync/composio/providers/user_scopes_tests.rs diff --git a/core/src/sync/mcp/mod.rs b/crates/tinymemory-core/src/sync/mcp/mod.rs similarity index 100% rename from core/src/sync/mcp/mod.rs rename to crates/tinymemory-core/src/sync/mcp/mod.rs diff --git a/core/src/sync/mod.rs b/crates/tinymemory-core/src/sync/mod.rs similarity index 100% rename from core/src/sync/mod.rs rename to crates/tinymemory-core/src/sync/mod.rs diff --git a/core/src/sync/pipelines/composio/client.rs b/crates/tinymemory-core/src/sync/pipelines/composio/client.rs similarity index 100% rename from core/src/sync/pipelines/composio/client.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/client.rs diff --git a/core/src/sync/pipelines/composio/connect.rs b/crates/tinymemory-core/src/sync/pipelines/composio/connect.rs similarity index 100% rename from core/src/sync/pipelines/composio/connect.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/connect.rs diff --git a/core/src/sync/pipelines/composio/connect_tests.rs b/crates/tinymemory-core/src/sync/pipelines/composio/connect_tests.rs similarity index 100% rename from core/src/sync/pipelines/composio/connect_tests.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/connect_tests.rs diff --git a/core/src/sync/pipelines/composio/gmail.rs b/crates/tinymemory-core/src/sync/pipelines/composio/gmail.rs similarity index 100% rename from core/src/sync/pipelines/composio/gmail.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/gmail.rs diff --git a/core/src/sync/pipelines/composio/gmail_tests.rs b/crates/tinymemory-core/src/sync/pipelines/composio/gmail_tests.rs similarity index 100% rename from core/src/sync/pipelines/composio/gmail_tests.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/gmail_tests.rs diff --git a/core/src/sync/pipelines/composio/mod.rs b/crates/tinymemory-core/src/sync/pipelines/composio/mod.rs similarity index 100% rename from core/src/sync/pipelines/composio/mod.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/mod.rs diff --git a/core/src/sync/pipelines/composio/orchestrator.rs b/crates/tinymemory-core/src/sync/pipelines/composio/orchestrator.rs similarity index 100% rename from core/src/sync/pipelines/composio/orchestrator.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/orchestrator.rs diff --git a/core/src/sync/pipelines/composio/orchestrator_tests.rs b/crates/tinymemory-core/src/sync/pipelines/composio/orchestrator_tests.rs similarity index 100% rename from core/src/sync/pipelines/composio/orchestrator_tests.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/orchestrator_tests.rs diff --git a/core/src/sync/pipelines/composio/page_size.rs b/crates/tinymemory-core/src/sync/pipelines/composio/page_size.rs similarity index 100% rename from core/src/sync/pipelines/composio/page_size.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/page_size.rs diff --git a/core/src/sync/pipelines/composio/page_size_tests.rs b/crates/tinymemory-core/src/sync/pipelines/composio/page_size_tests.rs similarity index 100% rename from core/src/sync/pipelines/composio/page_size_tests.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/page_size_tests.rs diff --git a/core/src/sync/pipelines/composio/providers/clickup.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/clickup.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/clickup.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/clickup.rs diff --git a/core/src/sync/pipelines/composio/providers/common.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/common.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/common.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/common.rs diff --git a/core/src/sync/pipelines/composio/providers/github.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/github.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/github.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/github.rs diff --git a/core/src/sync/pipelines/composio/providers/google_calendar.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/google_calendar.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/google_calendar.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/google_calendar.rs diff --git a/core/src/sync/pipelines/composio/providers/google_docs.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/google_docs.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/google_docs.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/google_docs.rs diff --git a/core/src/sync/pipelines/composio/providers/google_drive.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/google_drive.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/google_drive.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/google_drive.rs diff --git a/core/src/sync/pipelines/composio/providers/google_sheets.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/google_sheets.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/google_sheets.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/google_sheets.rs diff --git a/core/src/sync/pipelines/composio/providers/linear.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/linear.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/linear.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/linear.rs diff --git a/core/src/sync/pipelines/composio/providers/mod.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/mod.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/mod.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/mod.rs diff --git a/core/src/sync/pipelines/composio/providers/notion.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/notion.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/notion.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/notion.rs diff --git a/core/src/sync/pipelines/composio/providers/outlook.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/outlook.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/outlook.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/outlook.rs diff --git a/core/src/sync/pipelines/composio/providers/slack.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/slack.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/slack.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/slack.rs diff --git a/core/src/sync/pipelines/composio/providers/slack_parse.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/slack_parse.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/slack_parse.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/slack_parse.rs diff --git a/core/src/sync/pipelines/composio/providers/todoist.rs b/crates/tinymemory-core/src/sync/pipelines/composio/providers/todoist.rs similarity index 100% rename from core/src/sync/pipelines/composio/providers/todoist.rs rename to crates/tinymemory-core/src/sync/pipelines/composio/providers/todoist.rs diff --git a/core/src/sync/pipelines/dispatcher.rs b/crates/tinymemory-core/src/sync/pipelines/dispatcher.rs similarity index 100% rename from core/src/sync/pipelines/dispatcher.rs rename to crates/tinymemory-core/src/sync/pipelines/dispatcher.rs diff --git a/core/src/sync/pipelines/dispatcher_tests.rs b/crates/tinymemory-core/src/sync/pipelines/dispatcher_tests.rs similarity index 100% rename from core/src/sync/pipelines/dispatcher_tests.rs rename to crates/tinymemory-core/src/sync/pipelines/dispatcher_tests.rs diff --git a/core/src/sync/pipelines/host.rs b/crates/tinymemory-core/src/sync/pipelines/host.rs similarity index 100% rename from core/src/sync/pipelines/host.rs rename to crates/tinymemory-core/src/sync/pipelines/host.rs diff --git a/core/src/sync/pipelines/mod.rs b/crates/tinymemory-core/src/sync/pipelines/mod.rs similarity index 100% rename from core/src/sync/pipelines/mod.rs rename to crates/tinymemory-core/src/sync/pipelines/mod.rs diff --git a/core/src/sync/pipelines/traits.rs b/crates/tinymemory-core/src/sync/pipelines/traits.rs similarity index 100% rename from core/src/sync/pipelines/traits.rs rename to crates/tinymemory-core/src/sync/pipelines/traits.rs diff --git a/core/src/sync/sync_status/mod.rs b/crates/tinymemory-core/src/sync/sync_status/mod.rs similarity index 100% rename from core/src/sync/sync_status/mod.rs rename to crates/tinymemory-core/src/sync/sync_status/mod.rs diff --git a/core/src/sync/workspace/mod.rs b/crates/tinymemory-core/src/sync/workspace/mod.rs similarity index 100% rename from core/src/sync/workspace/mod.rs rename to crates/tinymemory-core/src/sync/workspace/mod.rs diff --git a/core/src/sync/workspace/periodic.rs b/crates/tinymemory-core/src/sync/workspace/periodic.rs similarity index 100% rename from core/src/sync/workspace/periodic.rs rename to crates/tinymemory-core/src/sync/workspace/periodic.rs diff --git a/core/src/sync/workspace/watcher.rs b/crates/tinymemory-core/src/sync/workspace/watcher.rs similarity index 100% rename from core/src/sync/workspace/watcher.rs rename to crates/tinymemory-core/src/sync/workspace/watcher.rs diff --git a/core/src/sync_events.rs b/crates/tinymemory-core/src/sync_events.rs similarity index 100% rename from core/src/sync_events.rs rename to crates/tinymemory-core/src/sync_events.rs diff --git a/core/src/test_env_lock.rs b/crates/tinymemory-core/src/test_env_lock.rs similarity index 100% rename from core/src/test_env_lock.rs rename to crates/tinymemory-core/src/test_env_lock.rs diff --git a/core/src/test_seams.rs b/crates/tinymemory-core/src/test_seams.rs similarity index 100% rename from core/src/test_seams.rs rename to crates/tinymemory-core/src/test_seams.rs diff --git a/core/src/thread_context.rs b/crates/tinymemory-core/src/thread_context.rs similarity index 100% rename from core/src/thread_context.rs rename to crates/tinymemory-core/src/thread_context.rs diff --git a/core/src/tool_memory/README.md b/crates/tinymemory-core/src/tool_memory/README.md similarity index 100% rename from core/src/tool_memory/README.md rename to crates/tinymemory-core/src/tool_memory/README.md diff --git a/core/src/tool_memory/mod.rs b/crates/tinymemory-core/src/tool_memory/mod.rs similarity index 100% rename from core/src/tool_memory/mod.rs rename to crates/tinymemory-core/src/tool_memory/mod.rs diff --git a/core/src/tool_memory/store.rs b/crates/tinymemory-core/src/tool_memory/store.rs similarity index 100% rename from core/src/tool_memory/store.rs rename to crates/tinymemory-core/src/tool_memory/store.rs diff --git a/core/src/tool_memory/test_helpers.rs b/crates/tinymemory-core/src/tool_memory/test_helpers.rs similarity index 100% rename from core/src/tool_memory/test_helpers.rs rename to crates/tinymemory-core/src/tool_memory/test_helpers.rs diff --git a/core/src/traits.rs b/crates/tinymemory-core/src/traits.rs similarity index 100% rename from core/src/traits.rs rename to crates/tinymemory-core/src/traits.rs diff --git a/core/src/tree/README.md b/crates/tinymemory-core/src/tree/README.md similarity index 100% rename from core/src/tree/README.md rename to crates/tinymemory-core/src/tree/README.md diff --git a/core/src/tree/graph/bfs.rs b/crates/tinymemory-core/src/tree/graph/bfs.rs similarity index 100% rename from core/src/tree/graph/bfs.rs rename to crates/tinymemory-core/src/tree/graph/bfs.rs diff --git a/core/src/tree/graph/mod.rs b/crates/tinymemory-core/src/tree/graph/mod.rs similarity index 100% rename from core/src/tree/graph/mod.rs rename to crates/tinymemory-core/src/tree/graph/mod.rs diff --git a/core/src/tree/graph/store.rs b/crates/tinymemory-core/src/tree/graph/store.rs similarity index 100% rename from core/src/tree/graph/store.rs rename to crates/tinymemory-core/src/tree/graph/store.rs diff --git a/core/src/tree/health/doctor.rs b/crates/tinymemory-core/src/tree/health/doctor.rs similarity index 100% rename from core/src/tree/health/doctor.rs rename to crates/tinymemory-core/src/tree/health/doctor.rs diff --git a/core/src/tree/health/mod.rs b/crates/tinymemory-core/src/tree/health/mod.rs similarity index 100% rename from core/src/tree/health/mod.rs rename to crates/tinymemory-core/src/tree/health/mod.rs diff --git a/core/src/tree/health/user_error.rs b/crates/tinymemory-core/src/tree/health/user_error.rs similarity index 100% rename from core/src/tree/health/user_error.rs rename to crates/tinymemory-core/src/tree/health/user_error.rs diff --git a/core/src/tree/ingest.rs b/crates/tinymemory-core/src/tree/ingest.rs similarity index 100% rename from core/src/tree/ingest.rs rename to crates/tinymemory-core/src/tree/ingest.rs diff --git a/core/src/tree/mod.rs b/crates/tinymemory-core/src/tree/mod.rs similarity index 100% rename from core/src/tree/mod.rs rename to crates/tinymemory-core/src/tree/mod.rs diff --git a/core/src/tree/nlp/mod.rs b/crates/tinymemory-core/src/tree/nlp/mod.rs similarity index 100% rename from core/src/tree/nlp/mod.rs rename to crates/tinymemory-core/src/tree/nlp/mod.rs diff --git a/core/src/tree/retrieval/README.md b/crates/tinymemory-core/src/tree/retrieval/README.md similarity index 100% rename from core/src/tree/retrieval/README.md rename to crates/tinymemory-core/src/tree/retrieval/README.md diff --git a/core/src/tree/retrieval/benchmarks.rs b/crates/tinymemory-core/src/tree/retrieval/benchmarks.rs similarity index 100% rename from core/src/tree/retrieval/benchmarks.rs rename to crates/tinymemory-core/src/tree/retrieval/benchmarks.rs diff --git a/core/src/tree/retrieval/cover.rs b/crates/tinymemory-core/src/tree/retrieval/cover.rs similarity index 100% rename from core/src/tree/retrieval/cover.rs rename to crates/tinymemory-core/src/tree/retrieval/cover.rs diff --git a/core/src/tree/retrieval/drill_down.rs b/crates/tinymemory-core/src/tree/retrieval/drill_down.rs similarity index 100% rename from core/src/tree/retrieval/drill_down.rs rename to crates/tinymemory-core/src/tree/retrieval/drill_down.rs diff --git a/core/src/tree/retrieval/engine.rs b/crates/tinymemory-core/src/tree/retrieval/engine.rs similarity index 100% rename from core/src/tree/retrieval/engine.rs rename to crates/tinymemory-core/src/tree/retrieval/engine.rs diff --git a/core/src/tree/retrieval/fast.rs b/crates/tinymemory-core/src/tree/retrieval/fast.rs similarity index 100% rename from core/src/tree/retrieval/fast.rs rename to crates/tinymemory-core/src/tree/retrieval/fast.rs diff --git a/core/src/tree/retrieval/fetch.rs b/crates/tinymemory-core/src/tree/retrieval/fetch.rs similarity index 100% rename from core/src/tree/retrieval/fetch.rs rename to crates/tinymemory-core/src/tree/retrieval/fetch.rs diff --git a/core/src/tree/retrieval/integration_tests.rs b/crates/tinymemory-core/src/tree/retrieval/integration_tests.rs similarity index 100% rename from core/src/tree/retrieval/integration_tests.rs rename to crates/tinymemory-core/src/tree/retrieval/integration_tests.rs diff --git a/core/src/tree/retrieval/mod.rs b/crates/tinymemory-core/src/tree/retrieval/mod.rs similarity index 100% rename from core/src/tree/retrieval/mod.rs rename to crates/tinymemory-core/src/tree/retrieval/mod.rs diff --git a/core/src/tree/retrieval/search.rs b/crates/tinymemory-core/src/tree/retrieval/search.rs similarity index 100% rename from core/src/tree/retrieval/search.rs rename to crates/tinymemory-core/src/tree/retrieval/search.rs diff --git a/core/src/tree/retrieval/source.rs b/crates/tinymemory-core/src/tree/retrieval/source.rs similarity index 100% rename from core/src/tree/retrieval/source.rs rename to crates/tinymemory-core/src/tree/retrieval/source.rs diff --git a/core/src/tree/retrieval/source_scope_tests.rs b/crates/tinymemory-core/src/tree/retrieval/source_scope_tests.rs similarity index 100% rename from core/src/tree/retrieval/source_scope_tests.rs rename to crates/tinymemory-core/src/tree/retrieval/source_scope_tests.rs diff --git a/core/src/tree/retrieval/types.rs b/crates/tinymemory-core/src/tree/retrieval/types.rs similarity index 100% rename from core/src/tree/retrieval/types.rs rename to crates/tinymemory-core/src/tree/retrieval/types.rs diff --git a/core/src/tree/score/README.md b/crates/tinymemory-core/src/tree/score/README.md similarity index 100% rename from core/src/tree/score/README.md rename to crates/tinymemory-core/src/tree/score/README.md diff --git a/core/src/tree/score/embed/README.md b/crates/tinymemory-core/src/tree/score/embed/README.md similarity index 100% rename from core/src/tree/score/embed/README.md rename to crates/tinymemory-core/src/tree/score/embed/README.md diff --git a/core/src/tree/score/embed/factory.rs b/crates/tinymemory-core/src/tree/score/embed/factory.rs similarity index 100% rename from core/src/tree/score/embed/factory.rs rename to crates/tinymemory-core/src/tree/score/embed/factory.rs diff --git a/core/src/tree/score/embed/inert.rs b/crates/tinymemory-core/src/tree/score/embed/inert.rs similarity index 100% rename from core/src/tree/score/embed/inert.rs rename to crates/tinymemory-core/src/tree/score/embed/inert.rs diff --git a/core/src/tree/score/embed/mod.rs b/crates/tinymemory-core/src/tree/score/embed/mod.rs similarity index 100% rename from core/src/tree/score/embed/mod.rs rename to crates/tinymemory-core/src/tree/score/embed/mod.rs diff --git a/core/src/tree/score/embed/openai_compat.rs b/crates/tinymemory-core/src/tree/score/embed/openai_compat.rs similarity index 100% rename from core/src/tree/score/embed/openai_compat.rs rename to crates/tinymemory-core/src/tree/score/embed/openai_compat.rs diff --git a/core/src/tree/score/extract/README.md b/crates/tinymemory-core/src/tree/score/extract/README.md similarity index 100% rename from core/src/tree/score/extract/README.md rename to crates/tinymemory-core/src/tree/score/extract/README.md diff --git a/core/src/tree/score/extract/mod.rs b/crates/tinymemory-core/src/tree/score/extract/mod.rs similarity index 100% rename from core/src/tree/score/extract/mod.rs rename to crates/tinymemory-core/src/tree/score/extract/mod.rs diff --git a/core/src/tree/score/mod.rs b/crates/tinymemory-core/src/tree/score/mod.rs similarity index 100% rename from core/src/tree/score/mod.rs rename to crates/tinymemory-core/src/tree/score/mod.rs diff --git a/core/src/tree/score/signals/README.md b/crates/tinymemory-core/src/tree/score/signals/README.md similarity index 100% rename from core/src/tree/score/signals/README.md rename to crates/tinymemory-core/src/tree/score/signals/README.md diff --git a/core/src/tree/score/store.rs b/crates/tinymemory-core/src/tree/score/store.rs similarity index 100% rename from core/src/tree/score/store.rs rename to crates/tinymemory-core/src/tree/score/store.rs diff --git a/core/src/tree/summarise.rs b/crates/tinymemory-core/src/tree/summarise.rs similarity index 100% rename from core/src/tree/summarise.rs rename to crates/tinymemory-core/src/tree/summarise.rs diff --git a/core/src/tree/tree/bucket_seal.rs b/crates/tinymemory-core/src/tree/tree/bucket_seal.rs similarity index 100% rename from core/src/tree/tree/bucket_seal.rs rename to crates/tinymemory-core/src/tree/tree/bucket_seal.rs diff --git a/core/src/tree/tree/factory.rs b/crates/tinymemory-core/src/tree/tree/factory.rs similarity index 100% rename from core/src/tree/tree/factory.rs rename to crates/tinymemory-core/src/tree/tree/factory.rs diff --git a/core/src/tree/tree/flush.rs b/crates/tinymemory-core/src/tree/tree/flush.rs similarity index 100% rename from core/src/tree/tree/flush.rs rename to crates/tinymemory-core/src/tree/tree/flush.rs diff --git a/core/src/tree/tree/mod.rs b/crates/tinymemory-core/src/tree/tree/mod.rs similarity index 100% rename from core/src/tree/tree/mod.rs rename to crates/tinymemory-core/src/tree/tree/mod.rs diff --git a/core/src/tree/tree/registry.rs b/crates/tinymemory-core/src/tree/tree/registry.rs similarity index 100% rename from core/src/tree/tree/registry.rs rename to crates/tinymemory-core/src/tree/tree/registry.rs diff --git a/core/src/tree/tree_runtime/engine.rs b/crates/tinymemory-core/src/tree/tree_runtime/engine.rs similarity index 100% rename from core/src/tree/tree_runtime/engine.rs rename to crates/tinymemory-core/src/tree/tree_runtime/engine.rs diff --git a/core/src/tree/tree_runtime/mod.rs b/crates/tinymemory-core/src/tree/tree_runtime/mod.rs similarity index 100% rename from core/src/tree/tree_runtime/mod.rs rename to crates/tinymemory-core/src/tree/tree_runtime/mod.rs diff --git a/core/src/tree/tree_runtime/store.rs b/crates/tinymemory-core/src/tree/tree_runtime/store.rs similarity index 100% rename from core/src/tree/tree_runtime/store.rs rename to crates/tinymemory-core/src/tree/tree_runtime/store.rs diff --git a/core/src/tree_policy.rs b/crates/tinymemory-core/src/tree_policy.rs similarity index 100% rename from core/src/tree_policy.rs rename to crates/tinymemory-core/src/tree_policy.rs diff --git a/core/src/tree_source/file.rs b/crates/tinymemory-core/src/tree_source/file.rs similarity index 100% rename from core/src/tree_source/file.rs rename to crates/tinymemory-core/src/tree_source/file.rs diff --git a/core/src/tree_source/mod.rs b/crates/tinymemory-core/src/tree_source/mod.rs similarity index 100% rename from core/src/tree_source/mod.rs rename to crates/tinymemory-core/src/tree_source/mod.rs diff --git a/core/src/tree_source/registry.rs b/crates/tinymemory-core/src/tree_source/registry.rs similarity index 100% rename from core/src/tree_source/registry.rs rename to crates/tinymemory-core/src/tree_source/registry.rs diff --git a/core/src/util/README.md b/crates/tinymemory-core/src/util/README.md similarity index 100% rename from core/src/util/README.md rename to crates/tinymemory-core/src/util/README.md diff --git a/core/src/util/mod.rs b/crates/tinymemory-core/src/util/mod.rs similarity index 100% rename from core/src/util/mod.rs rename to crates/tinymemory-core/src/util/mod.rs diff --git a/core/src/util/redact.rs b/crates/tinymemory-core/src/util/redact.rs similarity index 100% rename from core/src/util/redact.rs rename to crates/tinymemory-core/src/util/redact.rs diff --git a/core/tests/composio_gmail_non_tinycortex_e2e.rs b/crates/tinymemory-core/tests/composio_gmail_non_tinycortex_e2e.rs similarity index 100% rename from core/tests/composio_gmail_non_tinycortex_e2e.rs rename to crates/tinymemory-core/tests/composio_gmail_non_tinycortex_e2e.rs diff --git a/core/tests/fixtures/ingestion/README.md b/crates/tinymemory-core/tests/fixtures/ingestion/README.md similarity index 100% rename from core/tests/fixtures/ingestion/README.md rename to crates/tinymemory-core/tests/fixtures/ingestion/README.md diff --git a/core/tests/fixtures/ingestion/gmail_thread_example.txt b/crates/tinymemory-core/tests/fixtures/ingestion/gmail_thread_example.txt similarity index 100% rename from core/tests/fixtures/ingestion/gmail_thread_example.txt rename to crates/tinymemory-core/tests/fixtures/ingestion/gmail_thread_example.txt diff --git a/core/tests/fixtures/ingestion/notion_page_example.txt b/crates/tinymemory-core/tests/fixtures/ingestion/notion_page_example.txt similarity index 100% rename from core/tests/fixtures/ingestion/notion_page_example.txt rename to crates/tinymemory-core/tests/fixtures/ingestion/notion_page_example.txt diff --git a/crates/tinymemory-module/Cargo.toml b/crates/tinymemory-module/Cargo.toml index ced3f1e..45845ba 100644 --- a/crates/tinymemory-module/Cargo.toml +++ b/crates/tinymemory-module/Cargo.toml @@ -25,14 +25,14 @@ crate-type = ["rlib", "cdylib"] # The contract. Every type crossing the bus is one of these, and all of them # already carry serde impls — which is why this module needs no `wire` module of # its own, unlike the tinywallet one. -tinymemory-api = { path = "../../api" } +tinymemory-api = { path = "../tinymemory-api" } # `MemoryTraitProvider`, which pairs a `Memory` backend with a driver id. -tinymemory = { path = "../.." } +tinymemory = { path = "../tinymemory" } # The engine and the seam that adapts it. Carrying these is the entire point of # the module: they are 14.7s of the host's critical build path, and a host that # loads this binary compiles neither. -tinymemory-core = { path = "../../core", features = ["memory-git"] } -tinymemory-tinycortex = { path = "../../adapters/tinycortex", features = ["memory-git"] } +tinymemory-core = { path = "../tinymemory-core", features = ["memory-git"] } +tinymemory-tinycortex = { path = "../tinymemory-tinycortex", features = ["memory-git"] } # `people` is enabled here rather than inherited: the module serves the # `MemoryPeople` family directly off the engine's people store, so it needs the # gate on even though `tinymemory-core` only re-exports the domain. @@ -85,7 +85,7 @@ tempfile = "3" # does not reach it. Without this, cargo resolves the git copy alongside the # path copy and `MemoryTaint` from one is not the same type as from the other. [patch."https://github.com/tinyhumansai/tinymemory"] -tinymemory-api = { path = "../../api" } +tinymemory-api = { path = "../tinymemory-api" } [patch.crates-io] tinycortex = { path = "../../vendor/tinycortex" } diff --git a/adapters/remote/Cargo.toml b/crates/tinymemory-remote/Cargo.toml similarity index 94% rename from adapters/remote/Cargo.toml rename to crates/tinymemory-remote/Cargo.toml index ea30747..f824c59 100644 --- a/adapters/remote/Cargo.toml +++ b/crates/tinymemory-remote/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/tinyhumansai/tinymemory" [dependencies] # The engine-neutral contract and mandatory-family composition. -tinymemory-api = { path = "../../api" } +tinymemory-api = { path = "../tinymemory-api" } # Memory is an object-safe async trait and each native HTTP dialect is async. async-trait = "0.1" # The storage trait deliberately uses opaque backend errors. @@ -34,7 +34,7 @@ sha2 = "0.11" [dev-dependencies] # The behavioural contract suite, run against these adapters over their own # native doubles (issue #18 §E1, acceptance criterion 5). -tinymemory-conformance = { path = "../../conformance" } +tinymemory-conformance = { path = "../tinymemory-conformance" } # Adapter tests run lightweight native-API doubles over a real TCP transport. axum = { version = "0.8", features = ["multipart"] } tokio = { version = "1", features = ["macros", "rt-multi-thread", "net"] } diff --git a/adapters/remote/examples/conformance.rs b/crates/tinymemory-remote/examples/conformance.rs similarity index 100% rename from adapters/remote/examples/conformance.rs rename to crates/tinymemory-remote/examples/conformance.rs diff --git a/adapters/remote/src/cognee.rs b/crates/tinymemory-remote/src/cognee.rs similarity index 100% rename from adapters/remote/src/cognee.rs rename to crates/tinymemory-remote/src/cognee.rs diff --git a/adapters/remote/src/cognee_graph.rs b/crates/tinymemory-remote/src/cognee_graph.rs similarity index 100% rename from adapters/remote/src/cognee_graph.rs rename to crates/tinymemory-remote/src/cognee_graph.rs diff --git a/adapters/remote/src/cognee_test.rs b/crates/tinymemory-remote/src/cognee_test.rs similarity index 100% rename from adapters/remote/src/cognee_test.rs rename to crates/tinymemory-remote/src/cognee_test.rs diff --git a/adapters/remote/src/common.rs b/crates/tinymemory-remote/src/common.rs similarity index 100% rename from adapters/remote/src/common.rs rename to crates/tinymemory-remote/src/common.rs diff --git a/adapters/remote/src/conformance_test.rs b/crates/tinymemory-remote/src/conformance_test.rs similarity index 100% rename from adapters/remote/src/conformance_test.rs rename to crates/tinymemory-remote/src/conformance_test.rs diff --git a/adapters/remote/src/failure_test.rs b/crates/tinymemory-remote/src/failure_test.rs similarity index 100% rename from adapters/remote/src/failure_test.rs rename to crates/tinymemory-remote/src/failure_test.rs diff --git a/adapters/remote/src/graph_provider.rs b/crates/tinymemory-remote/src/graph_provider.rs similarity index 100% rename from adapters/remote/src/graph_provider.rs rename to crates/tinymemory-remote/src/graph_provider.rs diff --git a/adapters/remote/src/lib.rs b/crates/tinymemory-remote/src/lib.rs similarity index 100% rename from adapters/remote/src/lib.rs rename to crates/tinymemory-remote/src/lib.rs diff --git a/adapters/remote/src/mem0.rs b/crates/tinymemory-remote/src/mem0.rs similarity index 100% rename from adapters/remote/src/mem0.rs rename to crates/tinymemory-remote/src/mem0.rs diff --git a/adapters/remote/src/mem0_graph.rs b/crates/tinymemory-remote/src/mem0_graph.rs similarity index 100% rename from adapters/remote/src/mem0_graph.rs rename to crates/tinymemory-remote/src/mem0_graph.rs diff --git a/adapters/remote/src/mem0_test.rs b/crates/tinymemory-remote/src/mem0_test.rs similarity index 100% rename from adapters/remote/src/mem0_test.rs rename to crates/tinymemory-remote/src/mem0_test.rs diff --git a/adapters/remote/src/supermemory.rs b/crates/tinymemory-remote/src/supermemory.rs similarity index 100% rename from adapters/remote/src/supermemory.rs rename to crates/tinymemory-remote/src/supermemory.rs diff --git a/adapters/remote/src/supermemory_test.rs b/crates/tinymemory-remote/src/supermemory_test.rs similarity index 100% rename from adapters/remote/src/supermemory_test.rs rename to crates/tinymemory-remote/src/supermemory_test.rs diff --git a/sources/Cargo.toml b/crates/tinymemory-sources/Cargo.toml similarity index 98% rename from sources/Cargo.toml rename to crates/tinymemory-sources/Cargo.toml index 8c04a23..1e6c834 100644 --- a/sources/Cargo.toml +++ b/crates/tinymemory-sources/Cargo.toml @@ -24,7 +24,7 @@ anyhow = "1" # The contract, for `MemoryError` — `ensure_within_base` reports `PathEscape`, # which the contract already models, so readers speak the same error language # as the drivers they feed. -tinymemory-api = { path = "../api" } +tinymemory-api = { path = "../tinymemory-api" } # The readers are the I/O half of this crate: they walk folders, fetch feeds, # scrape pages and call the GitHub API. These are theirs, and the reason the # readers live here rather than in the contract crate — `tinymemory-api` diff --git a/sources/src/lib.rs b/crates/tinymemory-sources/src/lib.rs similarity index 100% rename from sources/src/lib.rs rename to crates/tinymemory-sources/src/lib.rs diff --git a/sources/src/raw_kind.rs b/crates/tinymemory-sources/src/raw_kind.rs similarity index 100% rename from sources/src/raw_kind.rs rename to crates/tinymemory-sources/src/raw_kind.rs diff --git a/sources/src/readers/conversation.rs b/crates/tinymemory-sources/src/readers/conversation.rs similarity index 100% rename from sources/src/readers/conversation.rs rename to crates/tinymemory-sources/src/readers/conversation.rs diff --git a/sources/src/readers/conversation_tests.rs b/crates/tinymemory-sources/src/readers/conversation_tests.rs similarity index 100% rename from sources/src/readers/conversation_tests.rs rename to crates/tinymemory-sources/src/readers/conversation_tests.rs diff --git a/sources/src/readers/folder.rs b/crates/tinymemory-sources/src/readers/folder.rs similarity index 100% rename from sources/src/readers/folder.rs rename to crates/tinymemory-sources/src/readers/folder.rs diff --git a/sources/src/readers/folder_tests.rs b/crates/tinymemory-sources/src/readers/folder_tests.rs similarity index 100% rename from sources/src/readers/folder_tests.rs rename to crates/tinymemory-sources/src/readers/folder_tests.rs diff --git a/sources/src/readers/github.rs b/crates/tinymemory-sources/src/readers/github.rs similarity index 100% rename from sources/src/readers/github.rs rename to crates/tinymemory-sources/src/readers/github.rs diff --git a/sources/src/readers/github/api.rs b/crates/tinymemory-sources/src/readers/github/api.rs similarity index 100% rename from sources/src/readers/github/api.rs rename to crates/tinymemory-sources/src/readers/github/api.rs diff --git a/sources/src/readers/github/git.rs b/crates/tinymemory-sources/src/readers/github/git.rs similarity index 100% rename from sources/src/readers/github/git.rs rename to crates/tinymemory-sources/src/readers/github/git.rs diff --git a/sources/src/readers/github/git_tests.rs b/crates/tinymemory-sources/src/readers/github/git_tests.rs similarity index 100% rename from sources/src/readers/github/git_tests.rs rename to crates/tinymemory-sources/src/readers/github/git_tests.rs diff --git a/sources/src/readers/github/issues.rs b/crates/tinymemory-sources/src/readers/github/issues.rs similarity index 100% rename from sources/src/readers/github/issues.rs rename to crates/tinymemory-sources/src/readers/github/issues.rs diff --git a/sources/src/readers/github/types.rs b/crates/tinymemory-sources/src/readers/github/types.rs similarity index 100% rename from sources/src/readers/github/types.rs rename to crates/tinymemory-sources/src/readers/github/types.rs diff --git a/sources/src/readers/github_tests.rs b/crates/tinymemory-sources/src/readers/github_tests.rs similarity index 100% rename from sources/src/readers/github_tests.rs rename to crates/tinymemory-sources/src/readers/github_tests.rs diff --git a/sources/src/readers/mod.rs b/crates/tinymemory-sources/src/readers/mod.rs similarity index 100% rename from sources/src/readers/mod.rs rename to crates/tinymemory-sources/src/readers/mod.rs diff --git a/sources/src/readers/rss.rs b/crates/tinymemory-sources/src/readers/rss.rs similarity index 100% rename from sources/src/readers/rss.rs rename to crates/tinymemory-sources/src/readers/rss.rs diff --git a/sources/src/readers/rss/types.rs b/crates/tinymemory-sources/src/readers/rss/types.rs similarity index 100% rename from sources/src/readers/rss/types.rs rename to crates/tinymemory-sources/src/readers/rss/types.rs diff --git a/sources/src/readers/rss_tests.rs b/crates/tinymemory-sources/src/readers/rss_tests.rs similarity index 100% rename from sources/src/readers/rss_tests.rs rename to crates/tinymemory-sources/src/readers/rss_tests.rs diff --git a/sources/src/readers/ssrf.rs b/crates/tinymemory-sources/src/readers/ssrf.rs similarity index 100% rename from sources/src/readers/ssrf.rs rename to crates/tinymemory-sources/src/readers/ssrf.rs diff --git a/sources/src/readers/ssrf_tests.rs b/crates/tinymemory-sources/src/readers/ssrf_tests.rs similarity index 100% rename from sources/src/readers/ssrf_tests.rs rename to crates/tinymemory-sources/src/readers/ssrf_tests.rs diff --git a/sources/src/readers/web_page.rs b/crates/tinymemory-sources/src/readers/web_page.rs similarity index 100% rename from sources/src/readers/web_page.rs rename to crates/tinymemory-sources/src/readers/web_page.rs diff --git a/sources/src/readers/web_page/types.rs b/crates/tinymemory-sources/src/readers/web_page/types.rs similarity index 100% rename from sources/src/readers/web_page/types.rs rename to crates/tinymemory-sources/src/readers/web_page/types.rs diff --git a/sources/src/readers/web_page_tests.rs b/crates/tinymemory-sources/src/readers/web_page_tests.rs similarity index 100% rename from sources/src/readers/web_page_tests.rs rename to crates/tinymemory-sources/src/readers/web_page_tests.rs diff --git a/sources/src/registry.rs b/crates/tinymemory-sources/src/registry.rs similarity index 100% rename from sources/src/registry.rs rename to crates/tinymemory-sources/src/registry.rs diff --git a/sources/src/registry_tests.rs b/crates/tinymemory-sources/src/registry_tests.rs similarity index 100% rename from sources/src/registry_tests.rs rename to crates/tinymemory-sources/src/registry_tests.rs diff --git a/sources/src/types.rs b/crates/tinymemory-sources/src/types.rs similarity index 100% rename from sources/src/types.rs rename to crates/tinymemory-sources/src/types.rs diff --git a/sources/src/types_tests.rs b/crates/tinymemory-sources/src/types_tests.rs similarity index 100% rename from sources/src/types_tests.rs rename to crates/tinymemory-sources/src/types_tests.rs diff --git a/sources/src/validation.rs b/crates/tinymemory-sources/src/validation.rs similarity index 100% rename from sources/src/validation.rs rename to crates/tinymemory-sources/src/validation.rs diff --git a/sources/src/validation_tests.rs b/crates/tinymemory-sources/src/validation_tests.rs similarity index 100% rename from sources/src/validation_tests.rs rename to crates/tinymemory-sources/src/validation_tests.rs diff --git a/sync/Cargo.toml b/crates/tinymemory-sync/Cargo.toml similarity index 100% rename from sync/Cargo.toml rename to crates/tinymemory-sync/Cargo.toml diff --git a/sync/src/clickup.rs b/crates/tinymemory-sync/src/clickup.rs similarity index 100% rename from sync/src/clickup.rs rename to crates/tinymemory-sync/src/clickup.rs diff --git a/sync/src/clickup_tests.rs b/crates/tinymemory-sync/src/clickup_tests.rs similarity index 100% rename from sync/src/clickup_tests.rs rename to crates/tinymemory-sync/src/clickup_tests.rs diff --git a/sync/src/email_clean.rs b/crates/tinymemory-sync/src/email_clean.rs similarity index 100% rename from sync/src/email_clean.rs rename to crates/tinymemory-sync/src/email_clean.rs diff --git a/sync/src/email_clean_tests.rs b/crates/tinymemory-sync/src/email_clean_tests.rs similarity index 100% rename from sync/src/email_clean_tests.rs rename to crates/tinymemory-sync/src/email_clean_tests.rs diff --git a/sync/src/email_markdown.rs b/crates/tinymemory-sync/src/email_markdown.rs similarity index 100% rename from sync/src/email_markdown.rs rename to crates/tinymemory-sync/src/email_markdown.rs diff --git a/sync/src/github.rs b/crates/tinymemory-sync/src/github.rs similarity index 100% rename from sync/src/github.rs rename to crates/tinymemory-sync/src/github.rs diff --git a/sync/src/github_tests.rs b/crates/tinymemory-sync/src/github_tests.rs similarity index 100% rename from sync/src/github_tests.rs rename to crates/tinymemory-sync/src/github_tests.rs diff --git a/sync/src/gmail_post_process.rs b/crates/tinymemory-sync/src/gmail_post_process.rs similarity index 100% rename from sync/src/gmail_post_process.rs rename to crates/tinymemory-sync/src/gmail_post_process.rs diff --git a/sync/src/gmail_post_process_tests.rs b/crates/tinymemory-sync/src/gmail_post_process_tests.rs similarity index 100% rename from sync/src/gmail_post_process_tests.rs rename to crates/tinymemory-sync/src/gmail_post_process_tests.rs diff --git a/sync/src/helpers.rs b/crates/tinymemory-sync/src/helpers.rs similarity index 100% rename from sync/src/helpers.rs rename to crates/tinymemory-sync/src/helpers.rs diff --git a/sync/src/helpers_tests.rs b/crates/tinymemory-sync/src/helpers_tests.rs similarity index 100% rename from sync/src/helpers_tests.rs rename to crates/tinymemory-sync/src/helpers_tests.rs diff --git a/sync/src/lib.rs b/crates/tinymemory-sync/src/lib.rs similarity index 100% rename from sync/src/lib.rs rename to crates/tinymemory-sync/src/lib.rs diff --git a/sync/src/linear.rs b/crates/tinymemory-sync/src/linear.rs similarity index 100% rename from sync/src/linear.rs rename to crates/tinymemory-sync/src/linear.rs diff --git a/sync/src/linear_tests.rs b/crates/tinymemory-sync/src/linear_tests.rs similarity index 100% rename from sync/src/linear_tests.rs rename to crates/tinymemory-sync/src/linear_tests.rs diff --git a/sync/src/notion.rs b/crates/tinymemory-sync/src/notion.rs similarity index 100% rename from sync/src/notion.rs rename to crates/tinymemory-sync/src/notion.rs diff --git a/sync/src/notion_tests.rs b/crates/tinymemory-sync/src/notion_tests.rs similarity index 100% rename from sync/src/notion_tests.rs rename to crates/tinymemory-sync/src/notion_tests.rs diff --git a/sync/src/slack_post_process.rs b/crates/tinymemory-sync/src/slack_post_process.rs similarity index 100% rename from sync/src/slack_post_process.rs rename to crates/tinymemory-sync/src/slack_post_process.rs diff --git a/sync/src/slack_post_process_tests.rs b/crates/tinymemory-sync/src/slack_post_process_tests.rs similarity index 100% rename from sync/src/slack_post_process_tests.rs rename to crates/tinymemory-sync/src/slack_post_process_tests.rs diff --git a/crates/tinymemory-testing-ui/Cargo.toml b/crates/tinymemory-testing-ui/Cargo.toml index 4c7df22..b402077 100644 --- a/crates/tinymemory-testing-ui/Cargo.toml +++ b/crates/tinymemory-testing-ui/Cargo.toml @@ -13,15 +13,15 @@ path = "src/main.rs" [dependencies] # The engine-neutral contract this harness drives every engine through. -tinymemory = { path = "../.." } -tinymemory-api = { path = "../../api" } +tinymemory = { path = "../tinymemory" } +tinymemory-api = { path = "../tinymemory-api" } # The TinyCortex adapter backs the "local" engine choice (in-process, no # network, no API key). Re-exports the `tinycortex` engine crate itself # (`tinymemory_tinycortex::tinycortex`) and its `InMemoryMemoryStore`, so this # crate does not need its own direct dependency (and patch table entry) on it. -tinymemory-tinycortex = { path = "../../adapters/tinycortex" } +tinymemory-tinycortex = { path = "../tinymemory-tinycortex" } # The Supermemory / Mem0 / Cognee adapters back the "remote" engine choices. -tinymemory-remote = { path = "../../adapters/remote" } +tinymemory-remote = { path = "../tinymemory-remote" } tokio = { version = "1", features = ["macros", "rt-multi-thread"] } axum = { version = "0.8" } diff --git a/crates/tinymemory-testing-ui/README.md b/crates/tinymemory-testing-ui/README.md index 0b7c26e..d66fbd9 100644 --- a/crates/tinymemory-testing-ui/README.md +++ b/crates/tinymemory-testing-ui/README.md @@ -91,7 +91,7 @@ the self-hosted deployment for Mem0 and Cognee. ### Graph support per engine -- **Cognee** — real. `cognee_graph_provider` (`adapters/remote/src/graph_provider.rs`, +- **Cognee** — real. `cognee_graph_provider` (`crates/tinymemory-remote/src/graph_provider.rs`, `cognee_graph.rs`) wraps Cognee's `GET /api/v1/datasets/{id}/graph` and reshapes its nodes/edges into `(subject, predicate, object)` triples. Only `relations` has a Cognee counterpart — `kv_get`/`kv_put`/`kv_delete`/`kv_list` @@ -117,7 +117,7 @@ the self-hosted deployment for Mem0 and Cognee. `graph_store` makes `/search` and `/memories` responses grow a `relations` key, no server code changes needed — but downgrading two major versions of a shared test harness's core dependency was judged too risky to keep, so it - was reverted. Instead, `Mem0Graph` (`adapters/remote/src/mem0_graph.rs`) + was reverted. Instead, `Mem0Graph` (`crates/tinymemory-remote/src/mem0_graph.rs`) derives a graph client-side: it lists a namespace's stored entries and runs a plain co-occurrence heuristic over each entry's content — no LLM, no NER, just grouping runs of capitalized words per sentence and linking consecutive diff --git a/adapters/tinycortex/Cargo.toml b/crates/tinymemory-tinycortex/Cargo.toml similarity index 95% rename from adapters/tinycortex/Cargo.toml rename to crates/tinymemory-tinycortex/Cargo.toml index df663d8..efa35e2 100644 --- a/adapters/tinycortex/Cargo.toml +++ b/crates/tinymemory-tinycortex/Cargo.toml @@ -13,7 +13,7 @@ repository = "https://github.com/tinyhumansai/tinymemory" [dependencies] # The contract this adapter targets. -tinymemory-api = { path = "../../api" } +tinymemory-api = { path = "../tinymemory-api" } # The engine being adapted. A version requirement rather than a path, so a host # that already pins its own TinyCortex checkout unifies both onto one copy # through its `[patch.crates-io]`; the workspace root patches it to the nested @@ -27,7 +27,7 @@ tinycortex = { version = "0.1", default-features = false } # makes this adapter heavier than the mandatory-only version it replaces; §D # feature-gates that weight once §A3 has removed the direct engine call sites # core still has. -tinymemory-core = { path = "../../core" } +tinymemory-core = { path = "../tinymemory-core" } # `spawn_blocking`: every family method runs synchronous engine work off the # async executor rather than blocking it. tokio = { version = "1", features = ["rt"] } @@ -52,7 +52,7 @@ anyhow = "1" [dev-dependencies] # The behavioural contract suite, run against this crate's drivers # (issue #18 §E1, acceptance criterion 5). -tinymemory-conformance = { path = "../../conformance" } +tinymemory-conformance = { path = "../tinymemory-conformance" } # The full-provider conformance target opens a real workspace store. tempfile = "3" tokio = { version = "1", features = ["macros", "rt-multi-thread"] } diff --git a/adapters/tinycortex/src/conformance_test.rs b/crates/tinymemory-tinycortex/src/conformance_test.rs similarity index 100% rename from adapters/tinycortex/src/conformance_test.rs rename to crates/tinymemory-tinycortex/src/conformance_test.rs diff --git a/adapters/tinycortex/src/engine/mod.rs b/crates/tinymemory-tinycortex/src/engine/mod.rs similarity index 100% rename from adapters/tinycortex/src/engine/mod.rs rename to crates/tinymemory-tinycortex/src/engine/mod.rs diff --git a/adapters/tinycortex/src/engine/test.rs b/crates/tinymemory-tinycortex/src/engine/test.rs similarity index 100% rename from adapters/tinycortex/src/engine/test.rs rename to crates/tinymemory-tinycortex/src/engine/test.rs diff --git a/adapters/tinycortex/src/lib.rs b/crates/tinymemory-tinycortex/src/lib.rs similarity index 100% rename from adapters/tinycortex/src/lib.rs rename to crates/tinymemory-tinycortex/src/lib.rs diff --git a/adapters/tinycortex/src/memory.rs b/crates/tinymemory-tinycortex/src/memory.rs similarity index 100% rename from adapters/tinycortex/src/memory.rs rename to crates/tinymemory-tinycortex/src/memory.rs diff --git a/adapters/tinycortex/src/memory_test.rs b/crates/tinymemory-tinycortex/src/memory_test.rs similarity index 100% rename from adapters/tinycortex/src/memory_test.rs rename to crates/tinymemory-tinycortex/src/memory_test.rs diff --git a/adapters/tinycortex/tests/full_provider_conformance.rs b/crates/tinymemory-tinycortex/tests/full_provider_conformance.rs similarity index 100% rename from adapters/tinycortex/tests/full_provider_conformance.rs rename to crates/tinymemory-tinycortex/tests/full_provider_conformance.rs diff --git a/crates/tinymemory/Cargo.toml b/crates/tinymemory/Cargo.toml new file mode 100644 index 0000000..2cbff5c --- /dev/null +++ b/crates/tinymemory/Cargo.toml @@ -0,0 +1,182 @@ +[package] +name = "tinymemory" +# Not published: `tinymemory-core` depends on `tinycortex-api`, which is +# consumed by path and is not on crates.io, so `cargo package` cannot resolve +# the graph. Every consumer takes this repo by path or git. +publish = false +version = "1.0.1" +edition = "2021" +rust-version = "1.96" +license = "MIT" +description = "Engine-neutral memory contract, driver registry, and engine adapters" +repository = "https://github.com/tinyhumansai/tinymemory" +documentation = "https://docs.rs/tinymemory" +readme = "../../README.md" +keywords = ["memory", "agent", "llm", "retrieval"] +categories = ["database"] + +[dependencies] +# The contract itself. Re-exported wholesale from `src/lib.rs` so a host takes +# one dependency rather than two, and so `tinymemory::MemoryProvider` and +# `tinymemory_api::provider::MemoryProvider` are the same type. +tinymemory-api = { path = "../tinymemory-api" } +# The engines, each behind its own feature (#18 §D1). Optional, so the default +# build is still the contract, the registry and the mandatory composition and +# nothing that links C. +# +# This direction only became legal once `mandatory` and the reserved driver ids +# moved into `tinymemory-api`: the adapters used to depend on this crate for +# them, and a facade depending back on the adapters is a package cycle cargo +# forbids. +tinymemory-tinycortex = { path = "../tinymemory-tinycortex", optional = true } +tinymemory-remote = { path = "../tinymemory-remote", optional = true } +# The rest of the workspace, each behind the feature named after it. Optional +# for the same reason the adapters are: a host that wants the ports and nothing +# else must not link a storage engine, an HTTP stack, or a native library. +# +# `tinymemory-core` is a normal dependency here and this crate is a *dev* +# dependency of it. Cargo permits that, because a cycle closed by a +# dev-dependency edge is not a build cycle — but the core side must stay +# dev-only or the graph becomes unbuildable. +tinymemory-core = { path = "../tinymemory-core", optional = true } +tinymemory-sync = { path = "../tinymemory-sync", optional = true } +tinymemory-sources = { path = "../tinymemory-sources", optional = true } +tinymemory-conformance = { path = "../tinymemory-conformance", optional = true } +# The mandatory capability families are `async fn`s on object-safe traits. +async-trait = "0.1" +# `Memory` is anyhow-typed; `mandatory::engine_error` maps it onto `MemoryError`. +anyhow = "1" +# Diagnostics on the shared store/recall/export paths. +log = "0.4" +# `ExportRecord::payload` is a `serde_json::Value`. +serde_json = "1" + +# `DriverClass` is read out of a host's config file, so its serde form is the +# config form and is pinned by a test. +serde = { version = "1", features = ["derive"] } + +[dev-dependencies] +# The mandatory-family tests are async. +tokio = { version = "1", features = ["macros", "rt-multi-thread"] } +# `TestHostConfig`, for the driver-selection tests. A dev-dependency: the +# facade must not carry a test double into a consumer's graph. +tinymemory-api = { path = "../tinymemory-api", features = ["test-support"] } +# The reference driver and the behavioural suite, for the workspace-level +# integration tests. A dev-dependency as well as an optional normal one: the +# facade's own suite must have it regardless of which features are selected. +tinymemory-conformance = { path = "../tinymemory-conformance" } +# The extracted Composio normalisers, for the integration test that runs them +# against a driver that is not TinyCortex (issue #18 §B3). +tinymemory-sync = { path = "../tinymemory-sync" } + +# Every crate in this workspace is reachable from here by a feature named after +# it, so a host takes one dependency and states what it wants rather than +# assembling the graph itself. Three groups, all additive: +# +# engines — which backend implements `MemoryProvider` +# subsystems — which workspace crates are re-exported as modules +# capabilities — optional behaviour that needs a specific engine +# +# Nothing is on by default. Naming no feature gets the contract, the registry +# and the mandatory composition: no storage engine, no HTTP stack, no native +# library. `scripts/ci/dependency-budget.sh` holds that to a ceiling. +[features] +default = [] + +# --- Engines --------------------------------------------------------------- +# Each pulls exactly the adapter that serves it. `supermemory`, `mem0` and +# `cognee` share one adapter crate, so enabling several costs one dependency +# rather than three. +tinycortex = ["dep:tinymemory-tinycortex"] +supermemory = ["dep:tinymemory-remote"] +mem0 = ["dep:tinymemory-remote"] +cognee = ["dep:tinymemory-remote"] +# Every engine at once. A host that binds its driver from configuration rather +# than at compile time wants this: `DriverRegistry` admission is a static policy +# table, so which adapters are compiled in decides what it can actually bind. +engines = ["tinycortex", "supermemory", "mem0", "cognee"] + +# --- Subsystems ------------------------------------------------------------ +# The workspace crates that are not adapters, each re-exported as a module of +# the same name. Off by default because each is a real weight: `core` links a +# bundled SQLite and the embedded engine, `sources` an HTTP stack behind its own +# `network` gate. +core = ["dep:tinymemory-core"] +sync = ["dep:tinymemory-sync"] +sources = ["dep:tinymemory-sources"] +# The behavioural suite every driver must pass, for a host that wants to hold +# its *own* `MemoryProvider` to the contract. Contract-only in its dependencies, +# so it is cheap; still opt-in, because a test harness has no business in a +# production graph unless it was asked for. +conformance = ["dep:tinymemory-conformance"] +# The network readers in `tinymemory-sources` — GitHub, RSS, web pages. Implies +# the crate that holds them, so asking for the readers cannot produce a build +# where they are absent. +sources-network = ["sources", "tinymemory-sources/network"] + +# --- Capability add-ons ---------------------------------------------------- +# Each requires the engine that serves it, so asking for a capability cannot +# produce a build where nothing implements it. +memory-git = ["tinycortex", "tinymemory-tinycortex/memory-git"] +# The macOS CNContactStore address-book seeding path, served by the embedded +# engine through `tinymemory-core`. No-op off macOS. +contacts = ["core", "tinymemory-core/contacts"] + +# --- Test support ---------------------------------------------------------- +# The workspace's test doubles and helpers, for a downstream harness that needs +# them: `TestHostConfig` from the contract, and `tinymemory-core`'s chat and +# tool-memory helpers when `core` is on. A production build must not carry them, +# which is why this is not implied by anything above. +test-support = [ + "tinymemory-api/test-support", + "tinymemory-core?/test-support", +] + +# Everything, for the sake of one name. Deliberately excludes `test-support`: +# "give me the whole workspace" is not the same request as "give me the test +# doubles", and rolling them together is how a harness reaches a release build. +full = [ + "engines", + "core", + "sync", + "sources-network", + "conformance", + "memory-git", +] + +# Lints apply to this package only, deliberately. `crates/tinymemory-api` is +# contract code moved verbatim from `tinycortex-api` and is held +# byte-identical; subjecting it to a stricter lint set than it was written under +# would force cosmetic edits through a surface whose serde representations and +# enum wire strings are persisted on disk. Adapter crates opt in individually. +[lints.rust] +unsafe_code = "forbid" +missing_docs = "warn" +missing_debug_implementations = "warn" +unreachable_pub = "warn" +rust_2018_idioms = { level = "warn", priority = -1 } + +[lints.clippy] +all = { level = "warn", priority = -1 } +pedantic = { level = "warn", priority = -1 } +# Library code must not panic on its own; tests and examples may. +unwrap_used = "warn" +expect_used = "warn" +panic = "warn" +todo = "warn" +unimplemented = "warn" +# Public fallible/panicking APIs must document their failure modes. +missing_errors_doc = "warn" +missing_panics_doc = "warn" +# Documentation hygiene. +doc_markdown = "warn" +# `#[must_use]` on pure public functions. +must_use_candidate = "warn" + +[lints.rustdoc] +broken_intra_doc_links = "warn" +private_intra_doc_links = "warn" + +[[example]] +name = "tinycortex" +required-features = ["tinycortex"] diff --git a/examples/basic.rs b/crates/tinymemory/examples/basic.rs similarity index 100% rename from examples/basic.rs rename to crates/tinymemory/examples/basic.rs diff --git a/examples/tinycortex.rs b/crates/tinymemory/examples/tinycortex.rs similarity index 96% rename from examples/tinycortex.rs rename to crates/tinymemory/examples/tinycortex.rs index fe4b1ea..68f1e5d 100644 --- a/examples/tinycortex.rs +++ b/crates/tinymemory/examples/tinycortex.rs @@ -11,7 +11,7 @@ //! The backend is the engine's own in-memory store — a complete embedded //! setup for the mandatory three families: no workspace, no host seams. (The //! full eighteen-family `TinycortexProvider` additionally needs the host -//! seams installed; `adapters/tinycortex/tests/full_provider_conformance.rs` +//! seams installed; `crates/tinymemory-tinycortex/tests/full_provider_conformance.rs` //! is the minimal working wiring for that.) use std::sync::Arc; diff --git a/src/lib.rs b/crates/tinymemory/src/lib.rs similarity index 74% rename from src/lib.rs rename to crates/tinymemory/src/lib.rs index 1b829b0..355f8f6 100644 --- a/src/lib.rs +++ b/crates/tinymemory/src/lib.rs @@ -19,8 +19,12 @@ //! rather than re-deriving the same four subtleties. //! - **[`registry`]** — driver admission. Which driver ids exist, what class //! each binds as, and the fail-closed rule for out-of-process drivers. -//! - **Engine adapters** — one crate per engine under `adapters/`, each -//! implementing [`provider::MemoryProvider`] over a concrete engine. +//! - **Engine adapters** — one crate per engine under `crates/`, each +//! implementing [`provider::MemoryProvider`] over a concrete engine, and +//! each selected by the feature named after it. +//! - **Subsystems** — [`core`], [`sync`], [`sources`] and [`conformance`], +//! re-exported behind features of the same name so a host takes one +//! dependency on this crate and states what it wants. //! //! ## What is deliberately *not* here //! @@ -88,6 +92,40 @@ pub use tinymemory_tinycortex as tinycortex; /// happen without changing how hosts ask for them. #[cfg(any(feature = "supermemory", feature = "mem0", feature = "cognee"))] pub use tinymemory_remote as remote; + +/// The engine-neutral memory subsystem, when the `core` feature is on. +/// +/// The store, summary tree, sync pipelines, ingestion and recall. This is the +/// heaviest thing the workspace offers — it links a bundled SQLite and the +/// embedded engine — which is why it is a feature rather than a dependency +/// every consumer of the contract pays for. +#[cfg(feature = "core")] +pub use tinymemory_core as core; + +/// The Composio payload normalisers, when the `sync` feature is on. +/// +/// Pure `Value -> Value` transforms with no engine behind them, which is the +/// point of the crate: a host binding a driver that is not TinyCortex can still +/// run them. +#[cfg(feature = "sync")] +pub use tinymemory_sync as sync; + +/// The memory-source contracts and readers, when the `sources` feature is on. +/// +/// The readers that fetch over the network — GitHub, RSS, web pages — sit +/// behind `sources-network` on top of this, so a host that only reads local +/// folders links no HTTP stack. +#[cfg(feature = "sources")] +pub use tinymemory_sources as sources; + +/// The behavioural conformance suite, when the `conformance` feature is on. +/// +/// Every driver admitted by [`registry`] must pass it. Exposed here so a host +/// can hold a `MemoryProvider` of its own to the same contract the bundled +/// adapters are held to, without taking a second dependency. +#[cfg(feature = "conformance")] +pub use tinymemory_conformance as conformance; + pub mod registry; // The contract, re-exported wholesale. Listed module by module rather than as a diff --git a/src/registry/class.rs b/crates/tinymemory/src/registry/class.rs similarity index 100% rename from src/registry/class.rs rename to crates/tinymemory/src/registry/class.rs diff --git a/src/registry/mod.rs b/crates/tinymemory/src/registry/mod.rs similarity index 100% rename from src/registry/mod.rs rename to crates/tinymemory/src/registry/mod.rs diff --git a/src/registry/test.rs b/crates/tinymemory/src/registry/test.rs similarity index 100% rename from src/registry/test.rs rename to crates/tinymemory/src/registry/test.rs diff --git a/tests/capability_negotiation.rs b/crates/tinymemory/tests/capability_negotiation.rs similarity index 100% rename from tests/capability_negotiation.rs rename to crates/tinymemory/tests/capability_negotiation.rs diff --git a/tests/driver_selection.rs b/crates/tinymemory/tests/driver_selection.rs similarity index 99% rename from tests/driver_selection.rs rename to crates/tinymemory/tests/driver_selection.rs index ea3a36d..d851e91 100644 --- a/tests/driver_selection.rs +++ b/crates/tinymemory/tests/driver_selection.rs @@ -14,7 +14,7 @@ //! //! What still does not exist is the last clause of §A5, that `create_memory_*` //! return a bound `Arc`. It cannot, and the reason is -//! structural rather than unfinished: `adapters/tinycortex` depends on +//! structural rather than unfinished: `crates/tinymemory-tinycortex` depends on //! `tinymemory-core` since §C3, so a core factory returning a constructed //! adapter provider would be a dependency cycle. Selection resolves the //! *decision*; the host constructs — which is what `src/registry`'s own module diff --git a/tests/null_provider.rs b/crates/tinymemory/tests/null_provider.rs similarity index 100% rename from tests/null_provider.rs rename to crates/tinymemory/tests/null_provider.rs diff --git a/tests/sync_on_a_foreign_driver.rs b/crates/tinymemory/tests/sync_on_a_foreign_driver.rs similarity index 100% rename from tests/sync_on_a_foreign_driver.rs rename to crates/tinymemory/tests/sync_on_a_foreign_driver.rs diff --git a/tests/taint_end_to_end.rs b/crates/tinymemory/tests/taint_end_to_end.rs similarity index 100% rename from tests/taint_end_to_end.rs rename to crates/tinymemory/tests/taint_end_to_end.rs diff --git a/integration/remote-engines/README.md b/integration/remote-engines/README.md index 3b8256a..9cb5334 100644 --- a/integration/remote-engines/README.md +++ b/integration/remote-engines/README.md @@ -38,7 +38,7 @@ cargo run -p tinymemory-remote --example conformance -- \ Cognee Cloud has **no shared endpoint** — `api.cognee.ai` resolves in DNS but nothing listens there (see the constructor note in -`adapters/remote/src/cognee.rs`), which is why this crate exports no default +`crates/tinymemory-remote/src/cognee.rs`), which is why this crate exports no default Cognee endpoint constant. The tenant URL printed beside your API key on the Cognee dashboard is the only address that exists; substitute it above. The command writes a unique conformance namespace, verifies Core, Recall, and Portability, and deletes its test record before diff --git a/scripts/ci/engine-containment.sh b/scripts/ci/engine-containment.sh index 1290a0d..89b87c6 100755 --- a/scripts/ci/engine-containment.sh +++ b/scripts/ci/engine-containment.sh @@ -2,10 +2,10 @@ # Issue #18 §C1 acceptance: nothing outside core's engine module names the # tinycortex crate in code. # -# The issue's literal check -- `grep -rl tinycortex core/src` -- counts prose: +# The issue's literal check -- `grep -rl tinycortex crates/tinymemory-core/src` -- counts prose: # doc comments, string literals, and log tags like "[tinycortex:sync]" match it # and always will. What the criterion *means* is that no file outside -# `core/src/engine/` reaches the engine through a code path. This script tests +# `crates/tinymemory-core/src/engine/` reaches the engine through a code path. This script tests # that: a `use tinycortex...` item or a `tinycortex::` path segment, in a # non-comment position, outside the engine module. set -euo pipefail @@ -22,8 +22,8 @@ cd "$(dirname "$0")/../.." # yield false POSITIVES (prose inside `/* */` is not stripped), which fails # safe: a human looks, nothing slips through. offenders="$( - grep -rln --include='*.rs' 'tinycortex' core/src \ - | grep -v '^core/src/engine/' \ + grep -rln --include='*.rs' 'tinycortex' crates/tinymemory-core/src \ + | grep -v '^crates/tinymemory-core/src/engine/' \ | while read -r f; do # Strip string literals first (so a `//` inside one cannot hide the # rest of the line), then line comments; then match path positions. @@ -36,10 +36,10 @@ offenders="$( )" if [ -n "$offenders" ]; then - echo "core/src files outside the engine module reach tinycortex in code:" >&2 + echo "tinymemory-core files outside the engine module reach tinycortex in code:" >&2 echo "$offenders" | sed 's/^/ /' >&2 echo >&2 - echo "Route through core/src/engine/ (the seam) or the memory contract." >&2 + echo "Route through crates/tinymemory-core/src/engine/ (the seam) or the memory contract." >&2 exit 1 fi -echo "engine containment holds: no code path names tinycortex outside core/src/engine/" +echo "engine containment holds: no code path names tinycortex outside crates/tinymemory-core/src/engine/"