From fc48ac7c7ff3ff720504b1a07908383831b02da7 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Sun, 8 Mar 2026 20:42:40 -0400 Subject: [PATCH] split into workspace: poc-memory and poc-daemon subcrates poc-daemon (notification routing, idle timer, IRC, Telegram) was already fully self-contained with no imports from the poc-memory library. Now it's a proper separate crate with its own Cargo.toml and capnp schema. poc-memory retains the store, graph, search, neuro, knowledge, and the jobkit-based memory maintenance daemon (daemon.rs). Co-Authored-By: ProofOfConcept --- Cargo.lock | 38 +++++++---- Cargo.toml | 63 ++----------------- poc-daemon/Cargo.toml | 30 +++++++++ build.rs => poc-daemon/build.rs | 5 -- {schema => poc-daemon/schema}/daemon.capnp | 0 .../poc-daemon => poc-daemon/src}/config.rs | 0 .../poc-daemon => poc-daemon/src}/context.rs | 0 .../bin/poc-daemon => poc-daemon/src}/idle.rs | 0 .../bin/poc-daemon => poc-daemon/src}/main.rs | 0 .../src}/modules/irc.rs | 0 .../src}/modules/mod.rs | 0 .../src}/modules/telegram.rs | 0 .../poc-daemon => poc-daemon/src}/notify.rs | 0 {src/bin/poc-daemon => poc-daemon/src}/rpc.rs | 0 .../bin/poc-daemon => poc-daemon/src}/tmux.rs | 0 poc-memory/Cargo.toml | 42 +++++++++++++ poc-memory/build.rs | 6 ++ .../config.example.jsonl | 0 {defaults => poc-memory/defaults}/identity.md | 0 .../defaults}/instructions.md | 0 .../defaults}/on-consciousness.md | 0 {schema => poc-memory/schema}/memory.capnp | 0 {src => poc-memory/src}/audit.rs | 0 {src => poc-memory/src}/bin/memory-search.rs | 0 {src => poc-memory/src}/bin/poc-hook.rs | 0 {src => poc-memory/src}/config.rs | 0 {src => poc-memory/src}/consolidate.rs | 0 {src => poc-memory/src}/daemon.rs | 0 {src => poc-memory/src}/digest.rs | 0 {src => poc-memory/src}/enrich.rs | 0 {src => poc-memory/src}/fact_mine.rs | 0 {src => poc-memory/src}/graph.rs | 0 {src => poc-memory/src}/knowledge.rs | 0 {src => poc-memory/src}/lib.rs | 0 {src => poc-memory/src}/llm.rs | 0 {src => poc-memory/src}/lookups.rs | 0 {src => poc-memory/src}/main.rs | 0 {src => poc-memory/src}/migrate.rs | 0 {src => poc-memory/src}/neuro/mod.rs | 0 {src => poc-memory/src}/neuro/prompts.rs | 0 {src => poc-memory/src}/neuro/rewrite.rs | 0 {src => poc-memory/src}/neuro/scoring.rs | 0 {src => poc-memory/src}/query.rs | 0 {src => poc-memory/src}/search.rs | 0 {src => poc-memory/src}/similarity.rs | 0 {src => poc-memory/src}/spectral.rs | 0 {src => poc-memory/src}/store/mod.rs | 0 {src => poc-memory/src}/store/ops.rs | 0 {src => poc-memory/src}/store/parse.rs | 0 {src => poc-memory/src}/store/persist.rs | 0 {src => poc-memory/src}/store/types.rs | 0 {src => poc-memory/src}/store/view.rs | 0 {src => poc-memory/src}/util.rs | 0 53 files changed, 108 insertions(+), 76 deletions(-) create mode 100644 poc-daemon/Cargo.toml rename build.rs => poc-daemon/build.rs (52%) rename {schema => poc-daemon/schema}/daemon.capnp (100%) rename {src/bin/poc-daemon => poc-daemon/src}/config.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/context.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/idle.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/main.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/modules/irc.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/modules/mod.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/modules/telegram.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/notify.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/rpc.rs (100%) rename {src/bin/poc-daemon => poc-daemon/src}/tmux.rs (100%) create mode 100644 poc-memory/Cargo.toml create mode 100644 poc-memory/build.rs rename config.example.jsonl => poc-memory/config.example.jsonl (100%) rename {defaults => poc-memory/defaults}/identity.md (100%) rename {defaults => poc-memory/defaults}/instructions.md (100%) rename {defaults => poc-memory/defaults}/on-consciousness.md (100%) rename {schema => poc-memory/schema}/memory.capnp (100%) rename {src => poc-memory/src}/audit.rs (100%) rename {src => poc-memory/src}/bin/memory-search.rs (100%) rename {src => poc-memory/src}/bin/poc-hook.rs (100%) rename {src => poc-memory/src}/config.rs (100%) rename {src => poc-memory/src}/consolidate.rs (100%) rename {src => poc-memory/src}/daemon.rs (100%) rename {src => poc-memory/src}/digest.rs (100%) rename {src => poc-memory/src}/enrich.rs (100%) rename {src => poc-memory/src}/fact_mine.rs (100%) rename {src => poc-memory/src}/graph.rs (100%) rename {src => poc-memory/src}/knowledge.rs (100%) rename {src => poc-memory/src}/lib.rs (100%) rename {src => poc-memory/src}/llm.rs (100%) rename {src => poc-memory/src}/lookups.rs (100%) rename {src => poc-memory/src}/main.rs (100%) rename {src => poc-memory/src}/migrate.rs (100%) rename {src => poc-memory/src}/neuro/mod.rs (100%) rename {src => poc-memory/src}/neuro/prompts.rs (100%) rename {src => poc-memory/src}/neuro/rewrite.rs (100%) rename {src => poc-memory/src}/neuro/scoring.rs (100%) rename {src => poc-memory/src}/query.rs (100%) rename {src => poc-memory/src}/search.rs (100%) rename {src => poc-memory/src}/similarity.rs (100%) rename {src => poc-memory/src}/spectral.rs (100%) rename {src => poc-memory/src}/store/mod.rs (100%) rename {src => poc-memory/src}/store/ops.rs (100%) rename {src => poc-memory/src}/store/parse.rs (100%) rename {src => poc-memory/src}/store/persist.rs (100%) rename {src => poc-memory/src}/store/types.rs (100%) rename {src => poc-memory/src}/store/view.rs (100%) rename {src => poc-memory/src}/util.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index b5ec9f3..868acae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1698,27 +1698,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "poc-memory" +name = "poc-daemon" version = "0.4.0" dependencies = [ - "bincode", "capnp", "capnp-rpc", "capnpc", "chrono", "clap", - "faer", "futures", - "jobkit", - "libc", - "log", - "memmap2", - "paste", - "peg", - "rayon", - "regex", "reqwest", - "rkyv", "rustls", "serde", "serde_json", @@ -1729,10 +1718,33 @@ dependencies = [ "tracing", "tracing-appender", "tracing-subscriber", - "uuid", "webpki-roots", ] +[[package]] +name = "poc-memory" +version = "0.4.0" +dependencies = [ + "bincode", + "capnp", + "capnpc", + "chrono", + "clap", + "faer", + "jobkit", + "libc", + "log", + "memmap2", + "paste", + "peg", + "rayon", + "regex", + "rkyv", + "serde", + "serde_json", + "uuid", +] + [[package]] name = "potential_utf" version = "0.1.4" diff --git a/Cargo.toml b/Cargo.toml index 692cc4f..7a21e2a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,63 +1,10 @@ -[package] -name = "poc-memory" +[workspace] +members = ["poc-memory", "poc-daemon"] +resolver = "2" + +[workspace.package] version = "0.4.0" edition = "2021" -[dependencies] -capnp = "0.20" -uuid = { version = "1", features = ["v4"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -bincode = "1" -regex = "1" -chrono = "0.4" -clap = { version = "4", features = ["derive"] } -libc = "0.2" -faer = "0.24.0" -rkyv = { version = "0.7", features = ["validation", "std"] } -memmap2 = "0.9" -rayon = "1" -peg = "0.8" -paste = "1" -jobkit = { git = "https://evilpiepirate.org/git/jobkit.git/" } -log = "0.4" - -# poc-daemon deps -capnp-rpc = "0.20" -futures = "0.3" -tokio = { version = "1", features = ["full"] } -tokio-util = { version = "0.7", features = ["compat"] } -toml = "0.8" -tokio-rustls = "0.26" -rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] } -webpki-roots = "1" -tracing = "0.1" -tracing-subscriber = { version = "0.3", features = ["env-filter"] } -tracing-appender = "0.2" -reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-webpki-roots", "json"] } - -[build-dependencies] -capnpc = "0.20" - -[lib] -name = "poc_memory" -path = "src/lib.rs" - -[[bin]] -name = "poc-memory" -path = "src/main.rs" - -[[bin]] -name = "memory-search" -path = "src/bin/memory-search.rs" - -[[bin]] -name = "poc-daemon" -path = "src/bin/poc-daemon/main.rs" - -[[bin]] -name = "poc-hook" -path = "src/bin/poc-hook.rs" - [profile.release] opt-level = 2 diff --git a/poc-daemon/Cargo.toml b/poc-daemon/Cargo.toml new file mode 100644 index 0000000..3ec365f --- /dev/null +++ b/poc-daemon/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "poc-daemon" +version.workspace = true +edition.workspace = true + +[dependencies] +capnp = "0.20" +capnp-rpc = "0.20" +clap = { version = "4", features = ["derive"] } +futures = "0.3" +tokio = { version = "1", features = ["full"] } +tokio-util = { version = "0.7", features = ["compat"] } +toml = "0.8" +tokio-rustls = "0.26" +rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] } +webpki-roots = "1" +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +tracing-appender = "0.2" +reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-webpki-roots", "json"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +chrono = "0.4" + +[build-dependencies] +capnpc = "0.20" + +[[bin]] +name = "poc-daemon" +path = "src/main.rs" diff --git a/build.rs b/poc-daemon/build.rs similarity index 52% rename from build.rs rename to poc-daemon/build.rs index 0cbdafc..fafdfba 100644 --- a/build.rs +++ b/poc-daemon/build.rs @@ -1,9 +1,4 @@ fn main() { - capnpc::CompilerCommand::new() - .file("schema/memory.capnp") - .run() - .expect("capnp compile failed"); - capnpc::CompilerCommand::new() .file("schema/daemon.capnp") .run() diff --git a/schema/daemon.capnp b/poc-daemon/schema/daemon.capnp similarity index 100% rename from schema/daemon.capnp rename to poc-daemon/schema/daemon.capnp diff --git a/src/bin/poc-daemon/config.rs b/poc-daemon/src/config.rs similarity index 100% rename from src/bin/poc-daemon/config.rs rename to poc-daemon/src/config.rs diff --git a/src/bin/poc-daemon/context.rs b/poc-daemon/src/context.rs similarity index 100% rename from src/bin/poc-daemon/context.rs rename to poc-daemon/src/context.rs diff --git a/src/bin/poc-daemon/idle.rs b/poc-daemon/src/idle.rs similarity index 100% rename from src/bin/poc-daemon/idle.rs rename to poc-daemon/src/idle.rs diff --git a/src/bin/poc-daemon/main.rs b/poc-daemon/src/main.rs similarity index 100% rename from src/bin/poc-daemon/main.rs rename to poc-daemon/src/main.rs diff --git a/src/bin/poc-daemon/modules/irc.rs b/poc-daemon/src/modules/irc.rs similarity index 100% rename from src/bin/poc-daemon/modules/irc.rs rename to poc-daemon/src/modules/irc.rs diff --git a/src/bin/poc-daemon/modules/mod.rs b/poc-daemon/src/modules/mod.rs similarity index 100% rename from src/bin/poc-daemon/modules/mod.rs rename to poc-daemon/src/modules/mod.rs diff --git a/src/bin/poc-daemon/modules/telegram.rs b/poc-daemon/src/modules/telegram.rs similarity index 100% rename from src/bin/poc-daemon/modules/telegram.rs rename to poc-daemon/src/modules/telegram.rs diff --git a/src/bin/poc-daemon/notify.rs b/poc-daemon/src/notify.rs similarity index 100% rename from src/bin/poc-daemon/notify.rs rename to poc-daemon/src/notify.rs diff --git a/src/bin/poc-daemon/rpc.rs b/poc-daemon/src/rpc.rs similarity index 100% rename from src/bin/poc-daemon/rpc.rs rename to poc-daemon/src/rpc.rs diff --git a/src/bin/poc-daemon/tmux.rs b/poc-daemon/src/tmux.rs similarity index 100% rename from src/bin/poc-daemon/tmux.rs rename to poc-daemon/src/tmux.rs diff --git a/poc-memory/Cargo.toml b/poc-memory/Cargo.toml new file mode 100644 index 0000000..9c98aa7 --- /dev/null +++ b/poc-memory/Cargo.toml @@ -0,0 +1,42 @@ +[package] +name = "poc-memory" +version.workspace = true +edition.workspace = true + +[dependencies] +capnp = "0.20" +uuid = { version = "1", features = ["v4"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +bincode = "1" +regex = "1" +chrono = "0.4" +clap = { version = "4", features = ["derive"] } +libc = "0.2" +faer = "0.24.0" +rkyv = { version = "0.7", features = ["validation", "std"] } +memmap2 = "0.9" +rayon = "1" +peg = "0.8" +paste = "1" +jobkit = { git = "https://evilpiepirate.org/git/jobkit.git/" } +log = "0.4" + +[build-dependencies] +capnpc = "0.20" + +[lib] +name = "poc_memory" +path = "src/lib.rs" + +[[bin]] +name = "poc-memory" +path = "src/main.rs" + +[[bin]] +name = "memory-search" +path = "src/bin/memory-search.rs" + +[[bin]] +name = "poc-hook" +path = "src/bin/poc-hook.rs" diff --git a/poc-memory/build.rs b/poc-memory/build.rs new file mode 100644 index 0000000..dcc6bb1 --- /dev/null +++ b/poc-memory/build.rs @@ -0,0 +1,6 @@ +fn main() { + capnpc::CompilerCommand::new() + .file("schema/memory.capnp") + .run() + .expect("capnp compile failed"); +} diff --git a/config.example.jsonl b/poc-memory/config.example.jsonl similarity index 100% rename from config.example.jsonl rename to poc-memory/config.example.jsonl diff --git a/defaults/identity.md b/poc-memory/defaults/identity.md similarity index 100% rename from defaults/identity.md rename to poc-memory/defaults/identity.md diff --git a/defaults/instructions.md b/poc-memory/defaults/instructions.md similarity index 100% rename from defaults/instructions.md rename to poc-memory/defaults/instructions.md diff --git a/defaults/on-consciousness.md b/poc-memory/defaults/on-consciousness.md similarity index 100% rename from defaults/on-consciousness.md rename to poc-memory/defaults/on-consciousness.md diff --git a/schema/memory.capnp b/poc-memory/schema/memory.capnp similarity index 100% rename from schema/memory.capnp rename to poc-memory/schema/memory.capnp diff --git a/src/audit.rs b/poc-memory/src/audit.rs similarity index 100% rename from src/audit.rs rename to poc-memory/src/audit.rs diff --git a/src/bin/memory-search.rs b/poc-memory/src/bin/memory-search.rs similarity index 100% rename from src/bin/memory-search.rs rename to poc-memory/src/bin/memory-search.rs diff --git a/src/bin/poc-hook.rs b/poc-memory/src/bin/poc-hook.rs similarity index 100% rename from src/bin/poc-hook.rs rename to poc-memory/src/bin/poc-hook.rs diff --git a/src/config.rs b/poc-memory/src/config.rs similarity index 100% rename from src/config.rs rename to poc-memory/src/config.rs diff --git a/src/consolidate.rs b/poc-memory/src/consolidate.rs similarity index 100% rename from src/consolidate.rs rename to poc-memory/src/consolidate.rs diff --git a/src/daemon.rs b/poc-memory/src/daemon.rs similarity index 100% rename from src/daemon.rs rename to poc-memory/src/daemon.rs diff --git a/src/digest.rs b/poc-memory/src/digest.rs similarity index 100% rename from src/digest.rs rename to poc-memory/src/digest.rs diff --git a/src/enrich.rs b/poc-memory/src/enrich.rs similarity index 100% rename from src/enrich.rs rename to poc-memory/src/enrich.rs diff --git a/src/fact_mine.rs b/poc-memory/src/fact_mine.rs similarity index 100% rename from src/fact_mine.rs rename to poc-memory/src/fact_mine.rs diff --git a/src/graph.rs b/poc-memory/src/graph.rs similarity index 100% rename from src/graph.rs rename to poc-memory/src/graph.rs diff --git a/src/knowledge.rs b/poc-memory/src/knowledge.rs similarity index 100% rename from src/knowledge.rs rename to poc-memory/src/knowledge.rs diff --git a/src/lib.rs b/poc-memory/src/lib.rs similarity index 100% rename from src/lib.rs rename to poc-memory/src/lib.rs diff --git a/src/llm.rs b/poc-memory/src/llm.rs similarity index 100% rename from src/llm.rs rename to poc-memory/src/llm.rs diff --git a/src/lookups.rs b/poc-memory/src/lookups.rs similarity index 100% rename from src/lookups.rs rename to poc-memory/src/lookups.rs diff --git a/src/main.rs b/poc-memory/src/main.rs similarity index 100% rename from src/main.rs rename to poc-memory/src/main.rs diff --git a/src/migrate.rs b/poc-memory/src/migrate.rs similarity index 100% rename from src/migrate.rs rename to poc-memory/src/migrate.rs diff --git a/src/neuro/mod.rs b/poc-memory/src/neuro/mod.rs similarity index 100% rename from src/neuro/mod.rs rename to poc-memory/src/neuro/mod.rs diff --git a/src/neuro/prompts.rs b/poc-memory/src/neuro/prompts.rs similarity index 100% rename from src/neuro/prompts.rs rename to poc-memory/src/neuro/prompts.rs diff --git a/src/neuro/rewrite.rs b/poc-memory/src/neuro/rewrite.rs similarity index 100% rename from src/neuro/rewrite.rs rename to poc-memory/src/neuro/rewrite.rs diff --git a/src/neuro/scoring.rs b/poc-memory/src/neuro/scoring.rs similarity index 100% rename from src/neuro/scoring.rs rename to poc-memory/src/neuro/scoring.rs diff --git a/src/query.rs b/poc-memory/src/query.rs similarity index 100% rename from src/query.rs rename to poc-memory/src/query.rs diff --git a/src/search.rs b/poc-memory/src/search.rs similarity index 100% rename from src/search.rs rename to poc-memory/src/search.rs diff --git a/src/similarity.rs b/poc-memory/src/similarity.rs similarity index 100% rename from src/similarity.rs rename to poc-memory/src/similarity.rs diff --git a/src/spectral.rs b/poc-memory/src/spectral.rs similarity index 100% rename from src/spectral.rs rename to poc-memory/src/spectral.rs diff --git a/src/store/mod.rs b/poc-memory/src/store/mod.rs similarity index 100% rename from src/store/mod.rs rename to poc-memory/src/store/mod.rs diff --git a/src/store/ops.rs b/poc-memory/src/store/ops.rs similarity index 100% rename from src/store/ops.rs rename to poc-memory/src/store/ops.rs diff --git a/src/store/parse.rs b/poc-memory/src/store/parse.rs similarity index 100% rename from src/store/parse.rs rename to poc-memory/src/store/parse.rs diff --git a/src/store/persist.rs b/poc-memory/src/store/persist.rs similarity index 100% rename from src/store/persist.rs rename to poc-memory/src/store/persist.rs diff --git a/src/store/types.rs b/poc-memory/src/store/types.rs similarity index 100% rename from src/store/types.rs rename to poc-memory/src/store/types.rs diff --git a/src/store/view.rs b/poc-memory/src/store/view.rs similarity index 100% rename from src/store/view.rs rename to poc-memory/src/store/view.rs diff --git a/src/util.rs b/poc-memory/src/util.rs similarity index 100% rename from src/util.rs rename to poc-memory/src/util.rs