cognitive-core 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.json +88 -0
- package/.claude/settings.local.json +11 -0
- package/.entire/settings.json +4 -0
- package/CLAUDE.md +233 -0
- package/README.md +841 -255
- package/dist/atlas.d.ts +150 -12
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +391 -31
- package/dist/atlas.js.map +1 -1
- package/dist/bin/cli-utils.d.ts +37 -0
- package/dist/bin/cli-utils.d.ts.map +1 -0
- package/dist/bin/cli-utils.js +176 -0
- package/dist/bin/cli-utils.js.map +1 -0
- package/dist/bin/cognitive-core.d.ts +2 -12
- package/dist/bin/cognitive-core.d.ts.map +1 -1
- package/dist/bin/cognitive-core.js +76 -351
- package/dist/bin/cognitive-core.js.map +1 -1
- package/dist/bin/commands/kb.d.ts +6 -0
- package/dist/bin/commands/kb.d.ts.map +1 -0
- package/dist/bin/commands/kb.js +240 -0
- package/dist/bin/commands/kb.js.map +1 -0
- package/dist/bin/commands/learn.d.ts +6 -0
- package/dist/bin/commands/learn.d.ts.map +1 -0
- package/dist/bin/commands/learn.js +91 -0
- package/dist/bin/commands/learn.js.map +1 -0
- package/dist/bin/commands/legacy.d.ts +12 -0
- package/dist/bin/commands/legacy.d.ts.map +1 -0
- package/dist/bin/commands/legacy.js +142 -0
- package/dist/bin/commands/legacy.js.map +1 -0
- package/dist/bin/commands/run.d.ts +3 -0
- package/dist/bin/commands/run.d.ts.map +1 -0
- package/dist/bin/commands/run.js +99 -0
- package/dist/bin/commands/run.js.map +1 -0
- package/dist/bin/commands/sessions.d.ts +9 -0
- package/dist/bin/commands/sessions.d.ts.map +1 -0
- package/dist/bin/commands/sessions.js +183 -0
- package/dist/bin/commands/sessions.js.map +1 -0
- package/dist/bin/commands/skills.d.ts +6 -0
- package/dist/bin/commands/skills.d.ts.map +1 -0
- package/dist/bin/commands/skills.js +135 -0
- package/dist/bin/commands/skills.js.map +1 -0
- package/dist/embeddings/index.d.ts +1 -0
- package/dist/embeddings/index.d.ts.map +1 -1
- package/dist/embeddings/index.js +2 -0
- package/dist/embeddings/index.js.map +1 -1
- package/dist/embeddings/inverted-index.d.ts +47 -0
- package/dist/embeddings/inverted-index.d.ts.map +1 -0
- package/dist/embeddings/inverted-index.js +122 -0
- package/dist/embeddings/inverted-index.js.map +1 -0
- package/dist/embeddings/manager.d.ts +3 -1
- package/dist/embeddings/manager.d.ts.map +1 -1
- package/dist/embeddings/manager.js +12 -7
- package/dist/embeddings/manager.js.map +1 -1
- package/dist/embeddings/provider.d.ts.map +1 -1
- package/dist/embeddings/provider.js +6 -3
- package/dist/embeddings/provider.js.map +1 -1
- package/dist/embeddings/vector-store.d.ts +7 -3
- package/dist/embeddings/vector-store.d.ts.map +1 -1
- package/dist/embeddings/vector-store.js +22 -6
- package/dist/embeddings/vector-store.js.map +1 -1
- package/dist/factory.d.ts +11 -12
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +20 -7
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +11 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -8
- package/dist/index.js.map +1 -1
- package/dist/learning/analyzer.d.ts.map +1 -1
- package/dist/learning/analyzer.js +17 -35
- package/dist/learning/analyzer.js.map +1 -1
- package/dist/learning/energy-evaluator.d.ts +128 -0
- package/dist/learning/energy-evaluator.d.ts.map +1 -0
- package/dist/learning/energy-evaluator.js +175 -0
- package/dist/learning/energy-evaluator.js.map +1 -0
- package/dist/learning/healing-orchestrator.d.ts +182 -0
- package/dist/learning/healing-orchestrator.d.ts.map +1 -0
- package/dist/learning/healing-orchestrator.js +250 -0
- package/dist/learning/healing-orchestrator.js.map +1 -0
- package/dist/learning/index.d.ts +11 -2
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +20 -3
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/instant-loop.d.ts +87 -0
- package/dist/learning/instant-loop.d.ts.map +1 -0
- package/dist/learning/instant-loop.js +264 -0
- package/dist/learning/instant-loop.js.map +1 -0
- package/dist/learning/knowledge-extractor.d.ts +56 -0
- package/dist/learning/knowledge-extractor.d.ts.map +1 -0
- package/dist/learning/knowledge-extractor.js +336 -0
- package/dist/learning/knowledge-extractor.js.map +1 -0
- package/dist/learning/loop-coordinator.d.ts +61 -0
- package/dist/learning/loop-coordinator.d.ts.map +1 -0
- package/dist/learning/loop-coordinator.js +96 -0
- package/dist/learning/loop-coordinator.js.map +1 -0
- package/dist/learning/maintenance-scheduler.d.ts +141 -0
- package/dist/learning/maintenance-scheduler.d.ts.map +1 -0
- package/dist/learning/maintenance-scheduler.js +186 -0
- package/dist/learning/maintenance-scheduler.js.map +1 -0
- package/dist/learning/meta-learner.d.ts +7 -0
- package/dist/learning/meta-learner.d.ts.map +1 -1
- package/dist/learning/meta-learner.js +47 -21
- package/dist/learning/meta-learner.js.map +1 -1
- package/dist/learning/pipeline.d.ts +55 -4
- package/dist/learning/pipeline.d.ts.map +1 -1
- package/dist/learning/pipeline.js +134 -16
- package/dist/learning/pipeline.js.map +1 -1
- package/dist/learning/reflexion-generator.d.ts +64 -0
- package/dist/learning/reflexion-generator.d.ts.map +1 -0
- package/dist/learning/reflexion-generator.js +194 -0
- package/dist/learning/reflexion-generator.js.map +1 -0
- package/dist/learning/team-ingester.d.ts +152 -0
- package/dist/learning/team-ingester.d.ts.map +1 -0
- package/dist/learning/team-ingester.js +333 -0
- package/dist/learning/team-ingester.js.map +1 -0
- package/dist/learning/team-meta-learner.d.ts +50 -0
- package/dist/learning/team-meta-learner.d.ts.map +1 -0
- package/dist/learning/team-meta-learner.js +417 -0
- package/dist/learning/team-meta-learner.js.map +1 -0
- package/dist/learning/team-pipeline.d.ts +76 -0
- package/dist/learning/team-pipeline.d.ts.map +1 -0
- package/dist/learning/team-pipeline.js +266 -0
- package/dist/learning/team-pipeline.js.map +1 -0
- package/dist/learning/trajectory-sources/dataclaw.d.ts +41 -0
- package/dist/learning/trajectory-sources/dataclaw.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/dataclaw.js +330 -0
- package/dist/learning/trajectory-sources/dataclaw.js.map +1 -0
- package/dist/learning/trajectory-sources/entire.d.ts +31 -0
- package/dist/learning/trajectory-sources/entire.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/entire.js +189 -0
- package/dist/learning/trajectory-sources/entire.js.map +1 -0
- package/dist/learning/trajectory-sources/file.d.ts +23 -0
- package/dist/learning/trajectory-sources/file.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/file.js +101 -0
- package/dist/learning/trajectory-sources/file.js.map +1 -0
- package/dist/learning/trajectory-sources/huggingface.d.ts +36 -0
- package/dist/learning/trajectory-sources/huggingface.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/huggingface.js +157 -0
- package/dist/learning/trajectory-sources/huggingface.js.map +1 -0
- package/dist/learning/trajectory-sources/in-memory.d.ts +21 -0
- package/dist/learning/trajectory-sources/in-memory.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/in-memory.js +43 -0
- package/dist/learning/trajectory-sources/in-memory.js.map +1 -0
- package/dist/learning/trajectory-sources/index.d.ts +7 -0
- package/dist/learning/trajectory-sources/index.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/index.js +7 -0
- package/dist/learning/trajectory-sources/index.js.map +1 -0
- package/dist/learning/trajectory-sources/pipeline.d.ts +24 -0
- package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/pipeline.js +47 -0
- package/dist/learning/trajectory-sources/pipeline.js.map +1 -0
- package/dist/learning/unified-pipeline.d.ts +281 -0
- package/dist/learning/unified-pipeline.d.ts.map +1 -0
- package/dist/learning/unified-pipeline.js +637 -0
- package/dist/learning/unified-pipeline.js.map +1 -0
- package/dist/memory/candidate-retrieval.d.ts +43 -0
- package/dist/memory/candidate-retrieval.d.ts.map +1 -0
- package/dist/memory/candidate-retrieval.js +41 -0
- package/dist/memory/candidate-retrieval.js.map +1 -0
- package/dist/memory/causal-store.d.ts +97 -0
- package/dist/memory/causal-store.d.ts.map +1 -0
- package/dist/memory/causal-store.js +209 -0
- package/dist/memory/causal-store.js.map +1 -0
- package/dist/memory/coherence.d.ts +71 -0
- package/dist/memory/coherence.d.ts.map +1 -0
- package/dist/memory/coherence.js +176 -0
- package/dist/memory/coherence.js.map +1 -0
- package/dist/memory/experience.d.ts +39 -6
- package/dist/memory/experience.d.ts.map +1 -1
- package/dist/memory/experience.js +193 -49
- package/dist/memory/experience.js.map +1 -1
- package/dist/memory/graph-layers/base.d.ts +29 -0
- package/dist/memory/graph-layers/base.d.ts.map +1 -0
- package/dist/memory/graph-layers/base.js +143 -0
- package/dist/memory/graph-layers/base.js.map +1 -0
- package/dist/memory/graph-layers/causal.d.ts +14 -0
- package/dist/memory/graph-layers/causal.d.ts.map +1 -0
- package/dist/memory/graph-layers/causal.js +14 -0
- package/dist/memory/graph-layers/causal.js.map +1 -0
- package/dist/memory/graph-layers/entity.d.ts +14 -0
- package/dist/memory/graph-layers/entity.d.ts.map +1 -0
- package/dist/memory/graph-layers/entity.js +14 -0
- package/dist/memory/graph-layers/entity.js.map +1 -0
- package/dist/memory/graph-layers/index.d.ts +6 -0
- package/dist/memory/graph-layers/index.d.ts.map +1 -0
- package/dist/memory/graph-layers/index.js +6 -0
- package/dist/memory/graph-layers/index.js.map +1 -0
- package/dist/memory/graph-layers/semantic.d.ts +14 -0
- package/dist/memory/graph-layers/semantic.d.ts.map +1 -0
- package/dist/memory/graph-layers/semantic.js +14 -0
- package/dist/memory/graph-layers/semantic.js.map +1 -0
- package/dist/memory/graph-layers/temporal.d.ts +14 -0
- package/dist/memory/graph-layers/temporal.d.ts.map +1 -0
- package/dist/memory/graph-layers/temporal.js +14 -0
- package/dist/memory/graph-layers/temporal.js.map +1 -0
- package/dist/memory/index.d.ts +15 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +22 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/knowledge-bank.d.ts +234 -0
- package/dist/memory/knowledge-bank.d.ts.map +1 -0
- package/dist/memory/knowledge-bank.js +1048 -0
- package/dist/memory/knowledge-bank.js.map +1 -0
- package/dist/memory/knowledge-defrag.d.ts +49 -0
- package/dist/memory/knowledge-defrag.d.ts.map +1 -0
- package/dist/memory/knowledge-defrag.js +257 -0
- package/dist/memory/knowledge-defrag.js.map +1 -0
- package/dist/memory/knowledge-graph.d.ts +41 -0
- package/dist/memory/knowledge-graph.d.ts.map +1 -0
- package/dist/memory/knowledge-graph.js +273 -0
- package/dist/memory/knowledge-graph.js.map +1 -0
- package/dist/memory/meta.d.ts +7 -8
- package/dist/memory/meta.d.ts.map +1 -1
- package/dist/memory/meta.js +73 -79
- package/dist/memory/meta.js.map +1 -1
- package/dist/memory/playbook.d.ts +26 -9
- package/dist/memory/playbook.d.ts.map +1 -1
- package/dist/memory/playbook.js +198 -74
- package/dist/memory/playbook.js.map +1 -1
- package/dist/memory/reasoning-bank.d.ts +130 -0
- package/dist/memory/reasoning-bank.d.ts.map +1 -0
- package/dist/memory/reasoning-bank.js +342 -0
- package/dist/memory/reasoning-bank.js.map +1 -0
- package/dist/memory/reflexion.d.ts +59 -0
- package/dist/memory/reflexion.d.ts.map +1 -0
- package/dist/memory/reflexion.js +96 -0
- package/dist/memory/reflexion.js.map +1 -0
- package/dist/memory/search-provider.d.ts +31 -0
- package/dist/memory/search-provider.d.ts.map +1 -0
- package/dist/memory/search-provider.js +2 -0
- package/dist/memory/search-provider.js.map +1 -0
- package/dist/memory/search-providers/index.d.ts +3 -0
- package/dist/memory/search-providers/index.d.ts.map +1 -0
- package/dist/memory/search-providers/index.js +3 -0
- package/dist/memory/search-providers/index.js.map +1 -0
- package/dist/memory/search-providers/minimem.d.ts +43 -0
- package/dist/memory/search-providers/minimem.d.ts.map +1 -0
- package/dist/memory/search-providers/minimem.js +56 -0
- package/dist/memory/search-providers/minimem.js.map +1 -0
- package/dist/memory/search-providers/text-similarity.d.ts +15 -0
- package/dist/memory/search-providers/text-similarity.d.ts.map +1 -0
- package/dist/memory/search-providers/text-similarity.js +21 -0
- package/dist/memory/search-providers/text-similarity.js.map +1 -0
- package/dist/memory/skill-exporter.d.ts +75 -0
- package/dist/memory/skill-exporter.d.ts.map +1 -0
- package/dist/memory/skill-exporter.js +248 -0
- package/dist/memory/skill-exporter.js.map +1 -0
- package/dist/memory/system.d.ts +20 -3
- package/dist/memory/system.d.ts.map +1 -1
- package/dist/memory/system.js +61 -11
- package/dist/memory/system.js.map +1 -1
- package/dist/memory/team-experience.d.ts +298 -0
- package/dist/memory/team-experience.d.ts.map +1 -0
- package/dist/memory/team-experience.js +355 -0
- package/dist/memory/team-experience.js.map +1 -0
- package/dist/memory/temporal-compressor.d.ts +126 -0
- package/dist/memory/temporal-compressor.d.ts.map +1 -0
- package/dist/memory/temporal-compressor.js +335 -0
- package/dist/memory/temporal-compressor.js.map +1 -0
- package/dist/persistence/index.d.ts +11 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +11 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/migrator.d.ts +40 -0
- package/dist/persistence/migrator.d.ts.map +1 -0
- package/dist/persistence/migrator.js +238 -0
- package/dist/persistence/migrator.js.map +1 -0
- package/dist/persistence/serializers.d.ts +45 -0
- package/dist/persistence/serializers.d.ts.map +1 -0
- package/dist/persistence/serializers.js +80 -0
- package/dist/persistence/serializers.js.map +1 -0
- package/dist/persistence/sqlite-persistence.d.ts +228 -0
- package/dist/persistence/sqlite-persistence.d.ts.map +1 -0
- package/dist/persistence/sqlite-persistence.js +588 -0
- package/dist/persistence/sqlite-persistence.js.map +1 -0
- package/dist/runtime/backends/acp-protocol.d.ts +49 -0
- package/dist/runtime/backends/acp-protocol.d.ts.map +1 -0
- package/dist/runtime/backends/acp-protocol.js +166 -0
- package/dist/runtime/backends/acp-protocol.js.map +1 -0
- package/dist/runtime/backends/acp.d.ts +26 -26
- package/dist/runtime/backends/acp.d.ts.map +1 -1
- package/dist/runtime/backends/acp.js +32 -156
- package/dist/runtime/backends/acp.js.map +1 -1
- package/dist/runtime/backends/index.d.ts +3 -1
- package/dist/runtime/backends/index.d.ts.map +1 -1
- package/dist/runtime/backends/index.js +3 -1
- package/dist/runtime/backends/index.js.map +1 -1
- package/dist/runtime/backends/macro-agent.d.ts +104 -0
- package/dist/runtime/backends/macro-agent.d.ts.map +1 -0
- package/dist/runtime/backends/macro-agent.js +107 -0
- package/dist/runtime/backends/macro-agent.js.map +1 -0
- package/dist/runtime/compute-provider.d.ts +87 -0
- package/dist/runtime/compute-provider.d.ts.map +1 -0
- package/dist/runtime/compute-provider.js +87 -0
- package/dist/runtime/compute-provider.js.map +1 -0
- package/dist/runtime/flows/learning.d.ts +10 -12
- package/dist/runtime/flows/learning.d.ts.map +1 -1
- package/dist/runtime/flows/learning.js +10 -23
- package/dist/runtime/flows/learning.js.map +1 -1
- package/dist/runtime/index.d.ts +3 -2
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/manager.d.ts +37 -4
- package/dist/runtime/manager.d.ts.map +1 -1
- package/dist/runtime/manager.js +139 -20
- package/dist/runtime/manager.js.map +1 -1
- package/dist/runtime/types.d.ts +38 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/search/evaluator.d.ts +7 -0
- package/dist/search/evaluator.d.ts.map +1 -1
- package/dist/search/evaluator.js +24 -4
- package/dist/search/evaluator.js.map +1 -1
- package/dist/search/index.d.ts +2 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +4 -0
- package/dist/search/index.js.map +1 -1
- package/dist/search/moe-gate.d.ts +124 -0
- package/dist/search/moe-gate.d.ts.map +1 -0
- package/dist/search/moe-gate.js +234 -0
- package/dist/search/moe-gate.js.map +1 -0
- package/dist/search/refinement-loop.d.ts +17 -0
- package/dist/search/refinement-loop.d.ts.map +1 -1
- package/dist/search/refinement-loop.js +77 -6
- package/dist/search/refinement-loop.js.map +1 -1
- package/dist/search/refinement-types.d.ts +2 -2
- package/dist/search/router.d.ts +32 -2
- package/dist/search/router.d.ts.map +1 -1
- package/dist/search/router.js +87 -4
- package/dist/search/router.js.map +1 -1
- package/dist/search/team-router.d.ts +91 -0
- package/dist/search/team-router.d.ts.map +1 -0
- package/dist/search/team-router.js +315 -0
- package/dist/search/team-router.js.map +1 -0
- package/dist/session-bank/git-reader.d.ts +44 -0
- package/dist/session-bank/git-reader.d.ts.map +1 -0
- package/dist/session-bank/git-reader.js +172 -0
- package/dist/session-bank/git-reader.js.map +1 -0
- package/dist/session-bank/index.d.ts +5 -0
- package/dist/session-bank/index.d.ts.map +1 -0
- package/dist/session-bank/index.js +4 -0
- package/dist/session-bank/index.js.map +1 -0
- package/dist/session-bank/parser.d.ts +50 -0
- package/dist/session-bank/parser.d.ts.map +1 -0
- package/dist/session-bank/parser.js +338 -0
- package/dist/session-bank/parser.js.map +1 -0
- package/dist/session-bank/session-bank.d.ts +40 -0
- package/dist/session-bank/session-bank.d.ts.map +1 -0
- package/dist/session-bank/session-bank.js +347 -0
- package/dist/session-bank/session-bank.js.map +1 -0
- package/dist/session-bank/types.d.ts +132 -0
- package/dist/session-bank/types.d.ts.map +1 -0
- package/dist/session-bank/types.js +7 -0
- package/dist/session-bank/types.js.map +1 -0
- package/dist/surfacing/index.d.ts +4 -0
- package/dist/surfacing/index.d.ts.map +1 -1
- package/dist/surfacing/index.js +3 -0
- package/dist/surfacing/index.js.map +1 -1
- package/dist/surfacing/publisher.d.ts +22 -0
- package/dist/surfacing/publisher.d.ts.map +1 -0
- package/dist/surfacing/publisher.js +9 -0
- package/dist/surfacing/publisher.js.map +1 -0
- package/dist/surfacing/skill-library.d.ts +12 -0
- package/dist/surfacing/skill-library.d.ts.map +1 -1
- package/dist/surfacing/skill-library.js +26 -0
- package/dist/surfacing/skill-library.js.map +1 -1
- package/dist/surfacing/skill-publisher.d.ts +43 -0
- package/dist/surfacing/skill-publisher.d.ts.map +1 -0
- package/dist/surfacing/skill-publisher.js +169 -0
- package/dist/surfacing/skill-publisher.js.map +1 -0
- package/dist/surfacing/sqlite-storage-adapter.d.ts +42 -0
- package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -0
- package/dist/surfacing/sqlite-storage-adapter.js +199 -0
- package/dist/surfacing/sqlite-storage-adapter.js.map +1 -0
- package/dist/surfacing/team-skill-library.d.ts +180 -0
- package/dist/surfacing/team-skill-library.d.ts.map +1 -0
- package/dist/surfacing/team-skill-library.js +384 -0
- package/dist/surfacing/team-skill-library.js.map +1 -0
- package/dist/types/config.d.ts +1318 -44
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +243 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/dataclaw.d.ts +286 -0
- package/dist/types/dataclaw.d.ts.map +1 -0
- package/dist/types/dataclaw.js +84 -0
- package/dist/types/dataclaw.js.map +1 -0
- package/dist/types/index.d.ts +9 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +13 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/knowledge-graph.d.ts +148 -0
- package/dist/types/knowledge-graph.d.ts.map +1 -0
- package/dist/types/knowledge-graph.js +40 -0
- package/dist/types/knowledge-graph.js.map +1 -0
- package/dist/types/knowledge.d.ts +280 -0
- package/dist/types/knowledge.d.ts.map +1 -0
- package/dist/types/knowledge.js +191 -0
- package/dist/types/knowledge.js.map +1 -0
- package/dist/types/memory.d.ts +52 -0
- package/dist/types/memory.d.ts.map +1 -1
- package/dist/types/memory.js +13 -0
- package/dist/types/memory.js.map +1 -1
- package/dist/types/playbook.d.ts +4 -0
- package/dist/types/playbook.d.ts.map +1 -1
- package/dist/types/playbook.js.map +1 -1
- package/dist/types/team-meta.d.ts +160 -0
- package/dist/types/team-meta.d.ts.map +1 -0
- package/dist/types/team-meta.js +42 -0
- package/dist/types/team-meta.js.map +1 -0
- package/dist/types/team-playbook.d.ts +276 -0
- package/dist/types/team-playbook.d.ts.map +1 -0
- package/dist/types/team-playbook.js +85 -0
- package/dist/types/team-playbook.js.map +1 -0
- package/dist/types/team-trajectory.d.ts +305 -0
- package/dist/types/team-trajectory.d.ts.map +1 -0
- package/dist/types/team-trajectory.js +304 -0
- package/dist/types/team-trajectory.js.map +1 -0
- package/dist/types/trajectory-source.d.ts +39 -0
- package/dist/types/trajectory-source.d.ts.map +1 -0
- package/dist/types/trajectory-source.js +2 -0
- package/dist/types/trajectory-source.js.map +1 -0
- package/dist/utils/error-classifier.d.ts +30 -0
- package/dist/utils/error-classifier.d.ts.map +1 -0
- package/dist/utils/error-classifier.js +85 -0
- package/dist/utils/error-classifier.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +34 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +93 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/partitioned-store.d.ts +93 -0
- package/dist/utils/partitioned-store.d.ts.map +1 -0
- package/dist/utils/partitioned-store.js +251 -0
- package/dist/utils/partitioned-store.js.map +1 -0
- package/dist/utils/trajectory-helpers.d.ts +39 -0
- package/dist/utils/trajectory-helpers.d.ts.map +1 -0
- package/dist/utils/trajectory-helpers.js +57 -0
- package/dist/utils/trajectory-helpers.js.map +1 -0
- package/dist/workspace/index.d.ts +6 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +11 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/runner.d.ts +49 -0
- package/dist/workspace/runner.d.ts.map +1 -0
- package/dist/workspace/runner.js +219 -0
- package/dist/workspace/runner.js.map +1 -0
- package/dist/workspace/skill-converter.d.ts +18 -0
- package/dist/workspace/skill-converter.d.ts.map +1 -0
- package/dist/workspace/skill-converter.js +257 -0
- package/dist/workspace/skill-converter.js.map +1 -0
- package/dist/workspace/templates/index.d.ts +11 -0
- package/dist/workspace/templates/index.d.ts.map +1 -0
- package/dist/workspace/templates/index.js +21 -0
- package/dist/workspace/templates/index.js.map +1 -0
- package/dist/workspace/templates/knowledge-defrag.d.ts +25 -0
- package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -0
- package/dist/workspace/templates/knowledge-defrag.js +154 -0
- package/dist/workspace/templates/knowledge-defrag.js.map +1 -0
- package/dist/workspace/templates/knowledge-extraction.d.ts +25 -0
- package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -0
- package/dist/workspace/templates/knowledge-extraction.js +246 -0
- package/dist/workspace/templates/knowledge-extraction.js.map +1 -0
- package/dist/workspace/templates/meta-reflection.d.ts +47 -0
- package/dist/workspace/templates/meta-reflection.d.ts.map +1 -0
- package/dist/workspace/templates/meta-reflection.js +135 -0
- package/dist/workspace/templates/meta-reflection.js.map +1 -0
- package/dist/workspace/templates/playbook-extraction.d.ts +20 -0
- package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-extraction.js +189 -0
- package/dist/workspace/templates/playbook-extraction.js.map +1 -0
- package/dist/workspace/templates/refinement-analysis.d.ts +31 -0
- package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -0
- package/dist/workspace/templates/refinement-analysis.js +107 -0
- package/dist/workspace/templates/refinement-analysis.js.map +1 -0
- package/dist/workspace/templates/solution-evaluation.d.ts +21 -0
- package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -0
- package/dist/workspace/templates/solution-evaluation.js +131 -0
- package/dist/workspace/templates/solution-evaluation.js.map +1 -0
- package/dist/workspace/templates/team-playbook-extraction.d.ts +44 -0
- package/dist/workspace/templates/team-playbook-extraction.d.ts.map +1 -0
- package/dist/workspace/templates/team-playbook-extraction.js +497 -0
- package/dist/workspace/templates/team-playbook-extraction.js.map +1 -0
- package/dist/workspace/templates/team-trajectory-analysis.d.ts +19 -0
- package/dist/workspace/templates/team-trajectory-analysis.d.ts.map +1 -0
- package/dist/workspace/templates/team-trajectory-analysis.js +442 -0
- package/dist/workspace/templates/team-trajectory-analysis.js.map +1 -0
- package/dist/workspace/templates/trajectory-analysis.d.ts +19 -0
- package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -0
- package/dist/workspace/templates/trajectory-analysis.js +170 -0
- package/dist/workspace/templates/trajectory-analysis.js.map +1 -0
- package/dist/workspace/templates/usage-inference.d.ts +19 -0
- package/dist/workspace/templates/usage-inference.d.ts.map +1 -0
- package/dist/workspace/templates/usage-inference.js +125 -0
- package/dist/workspace/templates/usage-inference.js.map +1 -0
- package/dist/workspace/types.d.ts +152 -0
- package/dist/workspace/types.d.ts.map +1 -0
- package/dist/workspace/types.js +17 -0
- package/dist/workspace/types.js.map +1 -0
- package/docs/DESIGN-agentic-workspace.md +2057 -0
- package/docs/DESIGN-semantic-memory-knowledge-bank.md +1789 -0
- package/docs/DESIGN-session-bank.md +1134 -0
- package/docs/DESIGN-team-extraction-pipeline.md +1369 -0
- package/docs/PROPOSAL-team-aware-learning.md +1080 -0
- package/docs/RESEARCH-semantic-memory-knowledge-structures.md +517 -0
- package/docs/RESEARCH-team-trajectory-learning.md +553 -0
- package/gaps.md +204 -0
- package/package.json +27 -7
- package/references/agent-workspace/CLAUDE.md +74 -0
- package/references/agent-workspace/README.md +587 -0
- package/references/agent-workspace/media/banner.png +0 -0
- package/references/agent-workspace/package-lock.json +2061 -0
- package/references/agent-workspace/package.json +54 -0
- package/references/agent-workspace/src/handle.ts +122 -0
- package/references/agent-workspace/src/index.ts +32 -0
- package/references/agent-workspace/src/manager.ts +102 -0
- package/references/agent-workspace/src/readers/json.ts +71 -0
- package/references/agent-workspace/src/readers/markdown.ts +37 -0
- package/references/agent-workspace/src/readers/raw.ts +27 -0
- package/references/agent-workspace/src/types.ts +68 -0
- package/references/agent-workspace/src/validation.ts +93 -0
- package/references/agent-workspace/src/writers/json.ts +17 -0
- package/references/agent-workspace/src/writers/markdown.ts +27 -0
- package/references/agent-workspace/src/writers/raw.ts +22 -0
- package/references/agent-workspace/tests/errors.test.ts +652 -0
- package/references/agent-workspace/tests/handle.test.ts +144 -0
- package/references/agent-workspace/tests/manager.test.ts +124 -0
- package/references/agent-workspace/tests/readers.test.ts +205 -0
- package/references/agent-workspace/tests/validation.test.ts +196 -0
- package/references/agent-workspace/tests/writers.test.ts +108 -0
- package/references/agent-workspace/tsconfig.json +20 -0
- package/references/agent-workspace/tsup.config.ts +9 -0
- package/references/minimem/.claude/settings.json +7 -0
- package/references/minimem/.sudocode/issues.jsonl +18 -0
- package/references/minimem/.sudocode/specs.jsonl +1 -0
- package/references/minimem/CLAUDE.md +310 -0
- package/references/minimem/README.md +556 -0
- package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
- package/references/minimem/claude-plugin/.mcp.json +7 -0
- package/references/minimem/claude-plugin/README.md +158 -0
- package/references/minimem/claude-plugin/commands/recall.md +47 -0
- package/references/minimem/claude-plugin/commands/remember.md +41 -0
- package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
- package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
- package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
- package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
- package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
- package/references/minimem/package-lock.json +5373 -0
- package/references/minimem/package.json +60 -0
- package/references/minimem/scripts/postbuild.js +35 -0
- package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
- package/references/minimem/src/__tests__/errors.test.ts +265 -0
- package/references/minimem/src/__tests__/helpers.ts +199 -0
- package/references/minimem/src/__tests__/internal.test.ts +407 -0
- package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
- package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
- package/references/minimem/src/__tests__/session.test.ts +190 -0
- package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
- package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
- package/references/minimem/src/cli/commands/append.ts +76 -0
- package/references/minimem/src/cli/commands/config.ts +262 -0
- package/references/minimem/src/cli/commands/conflicts.ts +413 -0
- package/references/minimem/src/cli/commands/daemon.ts +169 -0
- package/references/minimem/src/cli/commands/index.ts +12 -0
- package/references/minimem/src/cli/commands/init.ts +88 -0
- package/references/minimem/src/cli/commands/mcp.ts +177 -0
- package/references/minimem/src/cli/commands/push-pull.ts +213 -0
- package/references/minimem/src/cli/commands/search.ts +158 -0
- package/references/minimem/src/cli/commands/status.ts +84 -0
- package/references/minimem/src/cli/commands/sync-init.ts +290 -0
- package/references/minimem/src/cli/commands/sync.ts +70 -0
- package/references/minimem/src/cli/commands/upsert.ts +197 -0
- package/references/minimem/src/cli/config.ts +584 -0
- package/references/minimem/src/cli/index.ts +264 -0
- package/references/minimem/src/cli/shared.ts +161 -0
- package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
- package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
- package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
- package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
- package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
- package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
- package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
- package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
- package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
- package/references/minimem/src/cli/sync/central.ts +292 -0
- package/references/minimem/src/cli/sync/conflicts.ts +204 -0
- package/references/minimem/src/cli/sync/daemon.ts +407 -0
- package/references/minimem/src/cli/sync/detection.ts +138 -0
- package/references/minimem/src/cli/sync/index.ts +107 -0
- package/references/minimem/src/cli/sync/operations.ts +373 -0
- package/references/minimem/src/cli/sync/registry.ts +279 -0
- package/references/minimem/src/cli/sync/state.ts +355 -0
- package/references/minimem/src/cli/sync/validation.ts +206 -0
- package/references/minimem/src/cli/sync/watcher.ts +234 -0
- package/references/minimem/src/cli/version.ts +34 -0
- package/references/minimem/src/core/index.ts +9 -0
- package/references/minimem/src/core/indexer.ts +628 -0
- package/references/minimem/src/core/searcher.ts +221 -0
- package/references/minimem/src/db/schema.ts +183 -0
- package/references/minimem/src/db/sqlite-vec.ts +24 -0
- package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
- package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
- package/references/minimem/src/embeddings/batch-openai.ts +409 -0
- package/references/minimem/src/embeddings/embeddings.ts +434 -0
- package/references/minimem/src/index.ts +109 -0
- package/references/minimem/src/internal.ts +299 -0
- package/references/minimem/src/minimem.ts +1276 -0
- package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
- package/references/minimem/src/search/graph.ts +234 -0
- package/references/minimem/src/search/hybrid.ts +151 -0
- package/references/minimem/src/search/search.ts +256 -0
- package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
- package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
- package/references/minimem/src/server/mcp.ts +326 -0
- package/references/minimem/src/server/tools.ts +720 -0
- package/references/minimem/src/session.ts +460 -0
- package/references/minimem/tsconfig.json +19 -0
- package/references/minimem/tsup.config.ts +26 -0
- package/references/minimem/vitest.config.ts +24 -0
- package/references/sessionlog/.husky/pre-commit +1 -0
- package/references/sessionlog/.lintstagedrc.json +4 -0
- package/references/sessionlog/.prettierignore +4 -0
- package/references/sessionlog/.prettierrc.json +11 -0
- package/references/sessionlog/LICENSE +21 -0
- package/references/sessionlog/README.md +453 -0
- package/references/sessionlog/eslint.config.js +58 -0
- package/references/sessionlog/package-lock.json +3672 -0
- package/references/sessionlog/package.json +65 -0
- package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
- package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
- package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
- package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
- package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
- package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
- package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
- package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
- package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
- package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
- package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
- package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
- package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
- package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
- package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
- package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
- package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
- package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
- package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
- package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
- package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
- package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
- package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
- package/references/sessionlog/src/__tests__/types.test.ts +166 -0
- package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
- package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
- package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
- package/references/sessionlog/src/agent/agents/claude-code.ts +1089 -0
- package/references/sessionlog/src/agent/agents/cursor.ts +361 -0
- package/references/sessionlog/src/agent/agents/gemini-cli.ts +632 -0
- package/references/sessionlog/src/agent/agents/opencode.ts +540 -0
- package/references/sessionlog/src/agent/registry.ts +143 -0
- package/references/sessionlog/src/agent/session-types.ts +113 -0
- package/references/sessionlog/src/agent/types.ts +220 -0
- package/references/sessionlog/src/cli.ts +597 -0
- package/references/sessionlog/src/commands/clean.ts +133 -0
- package/references/sessionlog/src/commands/disable.ts +84 -0
- package/references/sessionlog/src/commands/doctor.ts +145 -0
- package/references/sessionlog/src/commands/enable.ts +202 -0
- package/references/sessionlog/src/commands/explain.ts +261 -0
- package/references/sessionlog/src/commands/reset.ts +105 -0
- package/references/sessionlog/src/commands/resume.ts +180 -0
- package/references/sessionlog/src/commands/rewind.ts +195 -0
- package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
- package/references/sessionlog/src/commands/status.ts +172 -0
- package/references/sessionlog/src/config.ts +165 -0
- package/references/sessionlog/src/events/event-log.ts +126 -0
- package/references/sessionlog/src/git-operations.ts +558 -0
- package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
- package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
- package/references/sessionlog/src/index.ts +650 -0
- package/references/sessionlog/src/security/redaction.ts +283 -0
- package/references/sessionlog/src/session/state-machine.ts +452 -0
- package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
- package/references/sessionlog/src/store/native-store.ts +173 -0
- package/references/sessionlog/src/store/provider-types.ts +99 -0
- package/references/sessionlog/src/store/session-store.ts +266 -0
- package/references/sessionlog/src/strategy/attribution.ts +296 -0
- package/references/sessionlog/src/strategy/common.ts +207 -0
- package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
- package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
- package/references/sessionlog/src/strategy/types.ts +279 -0
- package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
- package/references/sessionlog/src/summarize/summarize.ts +432 -0
- package/references/sessionlog/src/types.ts +508 -0
- package/references/sessionlog/src/utils/chunk-files.ts +49 -0
- package/references/sessionlog/src/utils/commit-message.ts +65 -0
- package/references/sessionlog/src/utils/detect-agent.ts +36 -0
- package/references/sessionlog/src/utils/hook-managers.ts +125 -0
- package/references/sessionlog/src/utils/ide-tags.ts +32 -0
- package/references/sessionlog/src/utils/paths.ts +79 -0
- package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
- package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
- package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
- package/references/sessionlog/src/utils/string-utils.ts +46 -0
- package/references/sessionlog/src/utils/todo-extract.ts +188 -0
- package/references/sessionlog/src/utils/trailers.ts +187 -0
- package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
- package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
- package/references/sessionlog/src/utils/tree-ops.ts +219 -0
- package/references/sessionlog/src/utils/tty.ts +72 -0
- package/references/sessionlog/src/utils/validation.ts +65 -0
- package/references/sessionlog/src/utils/worktree.ts +58 -0
- package/references/sessionlog/src/wire-types.ts +59 -0
- package/references/sessionlog/templates/setup-env.sh +153 -0
- package/references/sessionlog/tsconfig.json +18 -0
- package/references/sessionlog/vitest.config.ts +12 -0
- package/references/skill-tree/.claude/settings.json +6 -0
- package/references/skill-tree/.sudocode/issues.jsonl +19 -0
- package/references/skill-tree/.sudocode/specs.jsonl +3 -0
- package/references/skill-tree/CLAUDE.md +126 -0
- package/references/skill-tree/README.md +372 -0
- package/references/skill-tree/docs/GAPS_v1.md +221 -0
- package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
- package/references/skill-tree/docs/TODOS.md +91 -0
- package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
- package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
- package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
- package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
- package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
- package/references/skill-tree/docs/scraper/README.md +170 -0
- package/references/skill-tree/examples/basic-usage.ts +164 -0
- package/references/skill-tree/package-lock.json +1852 -0
- package/references/skill-tree/package.json +66 -0
- package/references/skill-tree/scraper/README.md +123 -0
- package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
- package/references/skill-tree/scraper/docs/PLAN.md +336 -0
- package/references/skill-tree/scraper/drizzle.config.ts +10 -0
- package/references/skill-tree/scraper/package-lock.json +6329 -0
- package/references/skill-tree/scraper/package.json +68 -0
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
- package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
- package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
- package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
- package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
- package/references/skill-tree/scraper/tsup.config.ts +14 -0
- package/references/skill-tree/scraper/vitest.config.ts +17 -0
- package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
- package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
- package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
- package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
- package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
- package/references/skill-tree/test/run-all.ts +106 -0
- package/references/skill-tree/test/utils.ts +128 -0
- package/references/skill-tree/vitest.config.ts +16 -0
- package/src/atlas.ts +583 -41
- package/src/bin/cli-utils.ts +220 -0
- package/src/bin/cognitive-core.ts +84 -392
- package/src/bin/commands/kb.ts +266 -0
- package/src/bin/commands/learn.ts +100 -0
- package/src/bin/commands/legacy.ts +182 -0
- package/src/bin/commands/run.ts +113 -0
- package/src/bin/commands/sessions.ts +221 -0
- package/src/bin/commands/skills.ts +146 -0
- package/src/embeddings/index.ts +3 -0
- package/src/embeddings/inverted-index.ts +134 -0
- package/src/embeddings/manager.ts +13 -8
- package/src/embeddings/provider.ts +10 -3
- package/src/embeddings/vector-store.ts +21 -9
- package/src/factory.ts +33 -16
- package/src/index.ts +231 -9
- package/src/learning/analyzer.ts +21 -37
- package/src/learning/energy-evaluator.ts +282 -0
- package/src/learning/healing-orchestrator.ts +383 -0
- package/src/learning/index.ts +104 -13
- package/src/learning/instant-loop.ts +357 -0
- package/src/learning/knowledge-extractor.ts +470 -0
- package/src/learning/maintenance-scheduler.ts +271 -0
- package/src/learning/meta-learner.ts +59 -23
- package/src/learning/reflexion-generator.ts +273 -0
- package/src/learning/team-ingester.ts +499 -0
- package/src/learning/team-meta-learner.ts +558 -0
- package/src/learning/team-pipeline.ts +364 -0
- package/src/learning/trajectory-sources/dataclaw.ts +403 -0
- package/src/learning/trajectory-sources/entire.ts +251 -0
- package/src/learning/trajectory-sources/file.ts +136 -0
- package/src/learning/trajectory-sources/huggingface.ts +248 -0
- package/src/learning/trajectory-sources/in-memory.ts +61 -0
- package/src/learning/trajectory-sources/index.ts +15 -0
- package/src/learning/trajectory-sources/pipeline.ts +69 -0
- package/src/learning/unified-pipeline.ts +921 -0
- package/src/memory/candidate-retrieval.ts +71 -0
- package/src/memory/causal-store.ts +273 -0
- package/src/memory/coherence.ts +252 -0
- package/src/memory/experience.ts +217 -50
- package/src/memory/graph-layers/base.ts +184 -0
- package/src/memory/graph-layers/causal.ts +16 -0
- package/src/memory/graph-layers/entity.ts +16 -0
- package/src/memory/graph-layers/index.ts +5 -0
- package/src/memory/graph-layers/semantic.ts +16 -0
- package/src/memory/graph-layers/temporal.ts +16 -0
- package/src/memory/index.ts +88 -0
- package/src/memory/knowledge-bank.ts +1317 -0
- package/src/memory/knowledge-defrag.ts +329 -0
- package/src/memory/knowledge-graph.ts +361 -0
- package/src/memory/meta.ts +78 -96
- package/src/memory/playbook.ts +239 -75
- package/src/memory/reasoning-bank.ts +458 -0
- package/src/memory/reflexion.ts +122 -0
- package/src/memory/search-provider.ts +35 -0
- package/src/memory/search-providers/index.ts +3 -0
- package/src/memory/search-providers/minimem.ts +84 -0
- package/src/memory/search-providers/text-similarity.ts +35 -0
- package/src/memory/skill-exporter.ts +357 -0
- package/src/memory/system.ts +80 -11
- package/src/memory/team-experience.ts +604 -0
- package/src/memory/temporal-compressor.ts +409 -0
- package/src/persistence/index.ts +37 -0
- package/src/persistence/migrator.ts +298 -0
- package/src/persistence/serializers.ts +79 -0
- package/src/persistence/sqlite-persistence.ts +925 -0
- package/src/runtime/backends/acp-protocol.ts +231 -0
- package/src/runtime/backends/acp.ts +57 -196
- package/src/runtime/backends/index.ts +14 -0
- package/src/runtime/backends/macro-agent.ts +177 -0
- package/src/runtime/compute-provider.ts +206 -0
- package/src/runtime/flows/learning.ts +25 -42
- package/src/runtime/index.ts +22 -0
- package/src/runtime/manager.ts +167 -23
- package/src/runtime/types.ts +41 -0
- package/src/search/evaluator.ts +29 -4
- package/src/search/index.ts +19 -0
- package/src/search/moe-gate.ts +304 -0
- package/src/search/refinement-loop.ts +106 -12
- package/src/search/router.ts +111 -4
- package/src/search/team-router.ts +459 -0
- package/src/session-bank/git-reader.ts +200 -0
- package/src/session-bank/index.ts +26 -0
- package/src/session-bank/parser.ts +548 -0
- package/src/session-bank/session-bank.ts +485 -0
- package/src/session-bank/types.ts +176 -0
- package/src/surfacing/index.ts +23 -0
- package/src/surfacing/publisher.ts +23 -0
- package/src/surfacing/skill-library.ts +31 -0
- package/src/surfacing/skill-publisher.ts +191 -0
- package/src/surfacing/sqlite-storage-adapter.ts +285 -0
- package/src/surfacing/team-skill-library.ts +610 -0
- package/src/types/config.ts +282 -0
- package/src/types/dataclaw.ts +99 -0
- package/src/types/huggingface-transformers.d.ts +12 -0
- package/src/types/index.ts +159 -0
- package/src/types/knowledge-graph.ts +246 -0
- package/src/types/knowledge.ts +388 -0
- package/src/types/memory.ts +30 -0
- package/src/types/playbook.ts +4 -0
- package/src/types/team-meta.ts +212 -0
- package/src/types/team-playbook.ts +384 -0
- package/src/types/team-trajectory.ts +673 -0
- package/src/types/trajectory-source.ts +47 -0
- package/src/utils/error-classifier.ts +113 -0
- package/src/utils/frontmatter.ts +118 -0
- package/src/utils/index.ts +25 -0
- package/src/utils/partitioned-store.ts +299 -0
- package/src/utils/trajectory-helpers.ts +79 -0
- package/src/workspace/index.ts +48 -0
- package/src/workspace/runner.ts +281 -0
- package/src/workspace/skill-converter.ts +288 -0
- package/src/workspace/templates/index.ts +64 -0
- package/src/workspace/templates/knowledge-defrag.ts +223 -0
- package/src/workspace/templates/knowledge-extraction.ts +337 -0
- package/src/workspace/templates/meta-reflection.ts +208 -0
- package/src/workspace/templates/playbook-extraction.ts +240 -0
- package/src/workspace/templates/refinement-analysis.ts +162 -0
- package/src/workspace/templates/solution-evaluation.ts +199 -0
- package/src/workspace/templates/team-playbook-extraction.ts +631 -0
- package/src/workspace/templates/team-trajectory-analysis.ts +564 -0
- package/src/workspace/templates/trajectory-analysis.ts +234 -0
- package/src/workspace/templates/usage-inference.ts +163 -0
- package/src/workspace/types.ts +241 -0
- package/tests/atlas-knowledge.test.ts +165 -0
- package/tests/embeddings/inverted-index.test.ts +138 -0
- package/tests/feature-toggles.test.ts +275 -0
- package/tests/gap-fixes.test.ts +1116 -0
- package/tests/integration/cli-e2e.test.ts +621 -0
- package/tests/integration/dataclaw-e2e.test.ts +559 -0
- package/tests/integration/e2e.test.ts +412 -4
- package/tests/integration/entire-e2e.test.ts +376 -0
- package/tests/integration/huggingface-e2e.test.ts +627 -0
- package/tests/integration/persistence-e2e.test.ts +741 -0
- package/tests/integration/phase-e2e.test.ts +1143 -0
- package/tests/integration/session-bank.test.ts +231 -0
- package/tests/integration/sessionlog-e2e.test.ts +329 -0
- package/tests/integration/skill-tree-wiring.test.ts +152 -0
- package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
- package/tests/learning/analyzer.test.ts +1 -1
- package/tests/learning/dataclaw-trajectory-source.test.ts +642 -0
- package/tests/learning/energy-evaluator.test.ts +180 -0
- package/tests/learning/entire-trajectory-source.test.ts +380 -0
- package/tests/learning/healing-orchestrator.test.ts +269 -0
- package/tests/learning/huggingface-trajectory-source.test.ts +817 -0
- package/tests/learning/instant-loop.test.ts +243 -0
- package/tests/learning/knowledge-extractor.test.ts +491 -0
- package/tests/learning/maintenance-scheduler.test.ts +191 -0
- package/tests/learning/reflexion-generator.test.ts +411 -0
- package/tests/learning/team-ingester.test.ts +349 -0
- package/tests/learning/team-meta-learner.test.ts +618 -0
- package/tests/learning/team-pipeline.test.ts +334 -0
- package/tests/learning/trajectory-sources.test.ts +320 -0
- package/tests/learning/unified-pipeline.test.ts +322 -0
- package/tests/mcp/playbook-server.test.ts +6 -1
- package/tests/memory/causal-store.test.ts +276 -0
- package/tests/memory/coherence.test.ts +232 -0
- package/tests/memory/experience.test.ts +8 -3
- package/tests/memory/graph-layers/semantic.test.ts +219 -0
- package/tests/memory/knowledge-bank-extraction.test.ts +558 -0
- package/tests/memory/knowledge-bank.test.ts +705 -0
- package/tests/memory/knowledge-defrag.test.ts +366 -0
- package/tests/memory/knowledge-evolution.test.ts +563 -0
- package/tests/memory/knowledge-graph.test.ts +492 -0
- package/tests/memory/knowledge-inbox.test.ts +258 -0
- package/tests/memory/knowledge-minimem.test.ts +251 -0
- package/tests/memory/playbook.test.ts +307 -1
- package/tests/memory/provenance.test.ts +11 -2
- package/tests/memory/reasoning-bank.test.ts +239 -0
- package/tests/memory/reflexion.test.ts +166 -0
- package/tests/memory/skill-exporter.test.ts +475 -0
- package/tests/memory/system.test.ts +6 -1
- package/tests/memory/team-experience.test.ts +411 -0
- package/tests/memory/temporal-compressor.test.ts +318 -0
- package/tests/persistence/migrator.test.ts +1009 -0
- package/tests/persistence/sqlite-persistence.test.ts +635 -0
- package/tests/runtime/agent-manager.test.ts +7 -2
- package/tests/runtime/compute-provider.test.ts +288 -0
- package/tests/runtime/delegate.test.ts +354 -0
- package/tests/runtime/macro-agent-backend.test.ts +266 -0
- package/tests/search/moe-gate.test.ts +250 -0
- package/tests/search/refinement-loop.test.ts +11 -2
- package/tests/search/router.test.ts +81 -2
- package/tests/search/team-router.test.ts +376 -0
- package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +12 -0
- package/tests/session-bank/fixtures/multi-tool-session/metadata.json +28 -0
- package/tests/session-bank/fixtures/root-metadata.json +18 -0
- package/tests/session-bank/fixtures/sessionlog-root-metadata.json +16 -0
- package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +6 -0
- package/tests/session-bank/fixtures/sessionlog-session/metadata.json +55 -0
- package/tests/session-bank/fixtures/simple-session/full.jsonl +6 -0
- package/tests/session-bank/fixtures/simple-session/metadata.json +38 -0
- package/tests/session-bank/git-reader.test.ts +232 -0
- package/tests/session-bank/parser.test.ts +453 -0
- package/tests/session-bank/session-bank.test.ts +546 -0
- package/tests/surfacing/skill-library.test.ts +6 -1
- package/tests/surfacing/skill-publisher.test.ts +364 -0
- package/tests/surfacing/sqlite-storage-adapter.test.ts +206 -0
- package/tests/surfacing/team-skill-library.test.ts +444 -0
- package/tests/types/team-meta.test.ts +147 -0
- package/tests/types/team-playbook.test.ts +246 -0
- package/tests/types/team-trajectory.test.ts +557 -0
- package/tests/utils/frontmatter.test.ts +208 -0
- package/tests/utils/partitioned-store.test.ts +230 -0
- package/tests/workspace/full-flow.test.ts +845 -0
- package/tests/workspace/manager.test.ts +215 -0
- package/tests/workspace/runner.test.ts +336 -0
- package/tests/workspace/skill-converter.test.ts +205 -0
- package/tests/workspace/templates/knowledge-extraction.test.ts +235 -0
- package/tests/workspace/templates/team-playbook-extraction.test.ts +341 -0
- package/tests/workspace/templates/team-trajectory-analysis.test.ts +417 -0
- package/src/learning/llm-extractor.ts +0 -542
- package/src/learning/pipeline.ts +0 -244
- package/tests/learning/pipeline.test.ts +0 -176
package/README.md
CHANGED
|
@@ -1,29 +1,43 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
# cognitive-core
|
|
2
|
+
|
|
3
|
+
A TypeScript learning system for AI agents. Records how agents solve problems, extracts reusable playbooks and factual knowledge from trajectories, and injects relevant guidance into future tasks.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Motivation](#motivation)
|
|
8
|
+
- [Installation](#installation)
|
|
9
|
+
- [Quick Start](#quick-start)
|
|
10
|
+
- [How It Works](#how-it-works)
|
|
11
|
+
- [Knowledge Bank](#knowledge-bank)
|
|
12
|
+
- [Learning Pipeline](#learning-pipeline)
|
|
13
|
+
- [Three-Speed Pipeline Detail](#three-speed-learning-pipeline)
|
|
14
|
+
- [CLI](#cli)
|
|
15
|
+
- [Agent Backends](#agent-backends)
|
|
16
|
+
- [Skill Library](#skill-library)
|
|
17
|
+
- [Session Bank](#session-bank)
|
|
18
|
+
- [Workspace Templates](#workspace-templates)
|
|
19
|
+
- [Configuration](#configuration)
|
|
20
|
+
- [Core Types](#core-types)
|
|
21
|
+
- [Research References](#research-references)
|
|
22
|
+
- [Limitations](#limitations)
|
|
23
|
+
- [Contributing](#contributing)
|
|
24
|
+
- [License](#license)
|
|
25
|
+
|
|
26
|
+
## Motivation
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
cognitive-core gives agents persistent, structured memory:
|
|
30
|
+
|
|
31
|
+
1. **Trajectories** record what the agent did (ReAct-style thought/action/observation steps)
|
|
32
|
+
2. **Playbooks** distill trajectories into reusable guidance (strategy, tactics, verification criteria)
|
|
33
|
+
3. **Knowledge Bank** extracts and organizes factual knowledge — what agents learn about tools, libraries, and patterns
|
|
34
|
+
4. **Routing** matches incoming tasks to relevant playbooks before the agent starts working, using a learned MoE gating function
|
|
35
|
+
5. **Meta-learning** tracks which playbooks helped and adjusts routing over time
|
|
36
|
+
6. **Three-speed learning** — immediate per-trajectory updates (<200ms), energy-triggered batch extraction, and circadian-gated maintenance — all managed by a single `UnifiedLearningPipeline`
|
|
37
|
+
7. **Temporal compression** — experiences flow through Hot/Warm/Cold/Evicted tiers based on access frequency, keeping memory bounded
|
|
38
|
+
8. **Unified persistence** — all system state lives in a single SQLite database with WAL mode, including learned MoE routing weights, experience clusters, and playbook version history that survive restarts
|
|
39
|
+
|
|
40
|
+
The result: agents that get measurably better at recurring problem types without fine-tuning or prompt engineering.
|
|
27
41
|
|
|
28
42
|
## Installation
|
|
29
43
|
|
|
@@ -31,333 +45,905 @@ A TypeScript-native cognitive core for building AI agents that learn from experi
|
|
|
31
45
|
npm install cognitive-core
|
|
32
46
|
```
|
|
33
47
|
|
|
48
|
+
Requires Node.js 22+.
|
|
49
|
+
|
|
34
50
|
## Quick Start
|
|
35
51
|
|
|
36
|
-
###
|
|
52
|
+
### Solve a task with memory-augmented agents
|
|
37
53
|
|
|
38
54
|
```typescript
|
|
39
55
|
import { createAtlasWithAgents, createTask, createMockBackend } from 'cognitive-core';
|
|
40
56
|
|
|
41
|
-
// Create Atlas with agent backends
|
|
42
57
|
const atlas = createAtlasWithAgents(
|
|
43
|
-
[createMockBackend()],
|
|
44
|
-
{ storage: { baseDir: '.
|
|
58
|
+
[createMockBackend()],
|
|
59
|
+
{ storage: { baseDir: '.cognitive-core' } }
|
|
45
60
|
);
|
|
46
61
|
|
|
47
|
-
// Initialize (loads persisted data)
|
|
48
62
|
await atlas.init();
|
|
49
63
|
|
|
50
|
-
|
|
51
|
-
const task = createTask({
|
|
64
|
+
const result = await atlas.solve(createTask({
|
|
52
65
|
domain: 'code',
|
|
53
|
-
description: '
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
const result = await atlas.solve(task);
|
|
57
|
-
console.log('Success:', result.trajectory.outcome.success);
|
|
58
|
-
console.log('Routing strategy:', result.routing?.strategy);
|
|
59
|
-
console.log('Used refinement:', !!result.refinement);
|
|
66
|
+
description: 'Fix the TypeScript compilation error in auth.ts',
|
|
67
|
+
}));
|
|
60
68
|
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
console.log(
|
|
64
|
-
console.log('Backends:', stats.execution?.backends);
|
|
69
|
+
console.log(result.trajectory.outcome.success); // true
|
|
70
|
+
console.log(result.routing?.strategy); // 'direct' | 'adapt' | 'explore' | 'fallback'
|
|
71
|
+
console.log(result.injectedPlaybooks?.length); // number of playbooks injected
|
|
65
72
|
|
|
66
|
-
// Close (persists data)
|
|
67
73
|
await atlas.close();
|
|
68
74
|
```
|
|
69
75
|
|
|
70
|
-
###
|
|
76
|
+
### Feed trajectories from external agents
|
|
77
|
+
|
|
78
|
+
cognitive-core can learn from trajectories produced by external agents. Record what happened elsewhere and feed it in.
|
|
71
79
|
|
|
72
80
|
```typescript
|
|
73
|
-
import {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
import { createAtlas, createTrajectory, createTask, createStep, successOutcome } from 'cognitive-core';
|
|
82
|
+
|
|
83
|
+
const atlas = createAtlas({ storage: { baseDir: '.cognitive-core' } });
|
|
84
|
+
await atlas.init();
|
|
85
|
+
|
|
86
|
+
const trajectory = createTrajectory({
|
|
87
|
+
task: createTask({
|
|
88
|
+
domain: 'code',
|
|
89
|
+
description: 'Fix the null pointer exception in user service',
|
|
90
|
+
}),
|
|
91
|
+
steps: [
|
|
92
|
+
createStep({
|
|
93
|
+
thought: 'Check where the null value originates',
|
|
94
|
+
action: 'Read src/services/user.ts',
|
|
95
|
+
observation: 'getUserById returns undefined when user not found',
|
|
96
|
+
}),
|
|
97
|
+
createStep({
|
|
98
|
+
thought: 'Add a guard clause before accessing user properties',
|
|
99
|
+
action: 'Edit src/services/user.ts to add null check',
|
|
100
|
+
observation: 'Added: if (!user) return null',
|
|
101
|
+
}),
|
|
102
|
+
],
|
|
103
|
+
outcome: successOutcome('Fixed by adding null check in getUserById'),
|
|
104
|
+
agentId: 'claude-code',
|
|
85
105
|
});
|
|
86
106
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
107
|
+
const result = await atlas.processTrajectory(trajectory);
|
|
108
|
+
// result.instantLoop.experienceId — stored experience
|
|
109
|
+
// result.batchTriggered — whether batch learning was auto-triggered
|
|
110
|
+
// result.maintenanceTriggered — whether maintenance cycle ran
|
|
111
|
+
|
|
112
|
+
await atlas.close();
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Query memory directly
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
const context = await atlas.queryMemory('typescript import resolution error', {
|
|
119
|
+
domains: ['code'],
|
|
120
|
+
includePlaybooks: true,
|
|
99
121
|
});
|
|
100
122
|
|
|
101
|
-
|
|
123
|
+
for (const { playbook, score } of context.playbooks) {
|
|
124
|
+
console.log(`${playbook.name} (${Math.round(score * 100)}% match)`);
|
|
125
|
+
console.log(` Strategy: ${playbook.guidance.strategy}`);
|
|
126
|
+
console.log(` Tactics: ${playbook.guidance.tactics.join(', ')}`);
|
|
127
|
+
}
|
|
128
|
+
```
|
|
102
129
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
130
|
+
## How It Works
|
|
131
|
+
|
|
132
|
+
### Solve flow
|
|
133
|
+
|
|
134
|
+
Every call to `atlas.solve(task)` runs through this pipeline:
|
|
135
|
+
|
|
136
|
+
```mermaid
|
|
137
|
+
flowchart TD
|
|
138
|
+
Task[Task arrives] --> Router[TaskRouter + MoEGate]
|
|
139
|
+
|
|
140
|
+
Router -->|queries| Memory[MemorySystem]
|
|
141
|
+
Memory --> Exp[ExperienceMemory]
|
|
142
|
+
Memory --> PB[PlaybookLibrary]
|
|
143
|
+
Memory --> KB[KnowledgeBank]
|
|
144
|
+
Memory --> Meta[MetaMemory]
|
|
145
|
+
Memory --> RB[ReasoningBank]
|
|
146
|
+
Memory --> CS[CausalStore]
|
|
147
|
+
|
|
148
|
+
Router --> Decision{RoutingDecision}
|
|
149
|
+
|
|
150
|
+
Decision --> Skills[SkillLibrary + KnowledgeBank surfacing]
|
|
151
|
+
Skills -->|injects playbooks + knowledge| Agent[AgentManager]
|
|
152
|
+
Agent --> Backend[Backend]
|
|
153
|
+
Backend -->|returns trajectory| Session[AgentSession]
|
|
154
|
+
|
|
155
|
+
Session --> Check{Succeeded?}
|
|
156
|
+
Check -->|Yes| PostExec[Post-execution]
|
|
157
|
+
Check -->|No| Refine{Retry?}
|
|
158
|
+
Refine -->|Yes, max 3x| Agent
|
|
159
|
+
Refine -->|No| PostExec
|
|
160
|
+
|
|
161
|
+
PostExec --> Usage[PlaybookUsageInference]
|
|
162
|
+
PostExec --> MetaReflect[MetaLearner reflection]
|
|
163
|
+
PostExec --> Effective[EffectivenessTracker annotate]
|
|
164
|
+
|
|
165
|
+
PostExec --> Pipeline[UnifiedLearningPipeline]
|
|
166
|
+
|
|
167
|
+
Pipeline --> Immediate[Speed 1: Immediate]
|
|
168
|
+
Immediate --> Store[Store experience]
|
|
169
|
+
Immediate --> Bump[Bump playbook confidence]
|
|
170
|
+
Immediate --> QuickK[Extract knowledge notes]
|
|
171
|
+
Immediate --> Causal[Extract causal edges]
|
|
172
|
+
Immediate --> Reflexion[Generate reflexion episode]
|
|
173
|
+
|
|
174
|
+
Pipeline --> Energy{EnergyEvaluator}
|
|
175
|
+
Energy -->|threshold reached| Batch[Speed 2: Batch]
|
|
176
|
+
Energy -->|below threshold| Done[Done]
|
|
177
|
+
Batch --> Extract[PlaybookExtractor]
|
|
178
|
+
Batch --> DeepK[Batch knowledge extraction]
|
|
179
|
+
Batch --> Compress[TemporalCompressor]
|
|
180
|
+
Batch --> Cluster[ReasoningBank re-cluster]
|
|
181
|
+
Batch --> Prune[ExperienceMemory prune]
|
|
182
|
+
|
|
183
|
+
Batch --> MaintCheck{Maintenance due?}
|
|
184
|
+
MaintCheck -->|Yes| Maint[Speed 3: Maintenance]
|
|
185
|
+
MaintCheck -->|No| Done
|
|
186
|
+
Maint --> Heal[HealingOrchestrator]
|
|
187
|
+
Maint --> Defrag[Knowledge defrag]
|
|
188
|
+
Maint --> MetaStrat[Meta-strategy generation]
|
|
189
|
+
Maint --> Done
|
|
190
|
+
|
|
191
|
+
Done -.->|next task| Router
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Post-execution subsystems
|
|
195
|
+
|
|
196
|
+
After every `solve()` call, three subsystems run synchronously on the trajectory before it enters the learning pipeline. These require the `RoutingDecision` and injected playbook context, so they **only run via `solve()`** — not via `processTrajectory()`.
|
|
197
|
+
|
|
198
|
+
| Subsystem | What it does |
|
|
199
|
+
|-----------|--------------|
|
|
200
|
+
| **PlaybookUsageInference** | Infers which injected playbooks were actually used by the agent. Records outcomes to SkillLibrary for tier management. |
|
|
201
|
+
| **MetaLearner** | Generates a meta-reflection on routing/retrieval effectiveness. Stores observations and periodically generates meta-strategies. |
|
|
202
|
+
| **EffectivenessTracker** | Annotates the trajectory with which playbooks were surfaced vs. applied and which experiences were retrieved. |
|
|
203
|
+
|
|
204
|
+
All three use workspace templates (LLM-assisted) when an `AgenticTaskRunner` is set, with heuristic fallback otherwise.
|
|
205
|
+
|
|
206
|
+
### Three-speed learning pipeline
|
|
207
|
+
|
|
208
|
+
All learning is managed by the `UnifiedLearningPipeline`, which consolidates InstantLoop, batch extraction, energy-based triggering, maintenance scheduling, and healing into a single orchestrator.
|
|
209
|
+
|
|
210
|
+
#### Speed 1: Immediate (<200ms, no LLM)
|
|
211
|
+
|
|
212
|
+
Fires on **every trajectory**. The InstantLoop performs lightweight, synchronous updates:
|
|
213
|
+
|
|
214
|
+
| Operation | Target |
|
|
215
|
+
|-----------|--------|
|
|
216
|
+
| Store experience | ExperienceMemory |
|
|
217
|
+
| Bump matched playbook confidence | PlaybookLibrary |
|
|
218
|
+
| Extract lightweight knowledge notes | KnowledgeBank |
|
|
219
|
+
| Extract causal edges | CausalStore |
|
|
220
|
+
| Generate reflexion episode | ReflexionMemory |
|
|
221
|
+
|
|
222
|
+
After the instant loop, the trajectory is analyzed (heuristic or workspace template) and accumulated for batch.
|
|
223
|
+
|
|
224
|
+
#### Speed 2: Batch (energy-triggered)
|
|
225
|
+
|
|
226
|
+
Triggered by the `EnergyEvaluator` — not just a count threshold. The evaluator computes an energy score from signals:
|
|
227
|
+
|
|
228
|
+
| Signal | Weight | Trigger condition |
|
|
229
|
+
|--------|--------|-------------------|
|
|
230
|
+
| Count threshold | — | `pendingCount >= countThreshold` (default: `minTrajectories`) |
|
|
231
|
+
| Contradiction detected | 0.4 | Coherence checker flagged a conflict |
|
|
232
|
+
| Novel domain | 0.3 | First trajectory in an unseen domain |
|
|
233
|
+
| High error rate | 0.2 | Recent failure rate exceeds 60% |
|
|
234
|
+
| Pattern shift | 0.1 | External signal (e.g., from caller) |
|
|
235
|
+
|
|
236
|
+
Batch triggers when `pendingCount >= countThreshold` **or** `energy >= energyThreshold (0.7)`, subject to a debounce interval (`minIntervalMs`, default: 30s).
|
|
237
|
+
|
|
238
|
+
When batch runs:
|
|
239
|
+
|
|
240
|
+
1. **Playbook extraction** — extract new playbooks from trajectory clusters, refine existing ones
|
|
241
|
+
2. **Batch knowledge extraction** — richer than instant-loop extraction, covers all accumulated trajectories
|
|
242
|
+
3. **Temporal compression** — promote/demote/evict experiences across Hot/Warm/Cold/Evicted tiers
|
|
243
|
+
4. **Re-clustering** — ReasoningBank rebuilds K-means++ clusters from current experiences
|
|
244
|
+
5. **Pruning** — ExperienceMemory prunes beyond `maxExperiences`
|
|
245
|
+
6. **Meta-learning** — MetaLearner generates routing strategies
|
|
246
|
+
|
|
247
|
+
After batch completes, accumulated trajectories are cleared and the energy evaluator resets.
|
|
248
|
+
|
|
249
|
+
#### Speed 3: Maintenance (circadian-gated)
|
|
250
|
+
|
|
251
|
+
Runs after batch when the `MaintenanceScheduler` signals readiness. Three scheduling modes:
|
|
252
|
+
|
|
253
|
+
| Mode | When maintenance runs |
|
|
254
|
+
|------|----------------------|
|
|
255
|
+
| `manual` | Only via explicit `runMaintenance({ force: true })` |
|
|
256
|
+
| `afterNBatches` | After every N batch cycles (e.g., `batchInterval: 2`) |
|
|
257
|
+
| `periodic` | After a time interval since last maintenance |
|
|
258
|
+
|
|
259
|
+
Built-in maintenance tasks:
|
|
260
|
+
|
|
261
|
+
| Task | What it does |
|
|
262
|
+
|------|--------------|
|
|
263
|
+
| **healing-cycle** | `HealingOrchestrator` runs anomaly detectors (PlaybookDriftDetector, MemoryBloatDetector) and applies repair strategies |
|
|
264
|
+
| **knowledge-defrag** | KnowledgeBank merges duplicate/overlapping notes |
|
|
265
|
+
| **meta-strategy-generation** | MetaLearner generates new routing strategies from accumulated observations |
|
|
266
|
+
|
|
267
|
+
Custom maintenance tasks and anomaly detectors can be registered via `registerMaintenanceTask()` and `addAnomalyDetector()`.
|
|
268
|
+
|
|
269
|
+
#### `solve()` vs `processTrajectory()`
|
|
270
|
+
|
|
271
|
+
| | `atlas.solve(task)` | `atlas.processTrajectory(trajectory)` |
|
|
272
|
+
|---|---|---|
|
|
273
|
+
| **Routing** | Yes — TaskRouter + MoEGate | No |
|
|
274
|
+
| **Agent execution** | Yes — AgentManager + refinement | No (trajectory provided externally) |
|
|
275
|
+
| **Post-execution** | Yes — UsageInference, MetaLearner, EffectivenessTracker | No (requires routing context) |
|
|
276
|
+
| **Three-speed pipeline** | Yes | Yes |
|
|
277
|
+
| **Returns** | `SolveResult` (trajectory, routing, playbook usage) | `ImmediateResult` (instant loop, energy eval, batch/maintenance results) |
|
|
278
|
+
|
|
279
|
+
Use `solve()` when Atlas owns execution. Use `processTrajectory()` to feed in external trajectories — the full three-speed pipeline still runs, but post-execution subsystems that require routing context are skipped.
|
|
280
|
+
|
|
281
|
+
### Playbook lifecycle
|
|
282
|
+
|
|
283
|
+
A playbook starts with low confidence (0.3) after extraction from a cluster of similar trajectories. Each time it's injected into an agent and the task succeeds, confidence grows. After enough successful uses (default: 5 successes, 80%+ success rate), it gets promoted to a **core skill** that's always in the system prompt. If it starts failing in specific contexts, the system records refinements rather than discarding the playbook entirely.
|
|
284
|
+
|
|
285
|
+
```mermaid
|
|
286
|
+
stateDiagram-v2
|
|
287
|
+
[*] --> Extracted : pattern found across trajectories
|
|
288
|
+
|
|
289
|
+
Extracted --> Contextual : confidence above 0.3
|
|
290
|
+
Contextual --> Domain : tagged to domain
|
|
291
|
+
|
|
292
|
+
Contextual --> Contextual : success
|
|
293
|
+
Domain --> Domain : success
|
|
294
|
+
|
|
295
|
+
Domain --> Core : 0.85+ confidence, 5+ successes, 80%+ rate
|
|
296
|
+
Core --> Core : success
|
|
297
|
+
|
|
298
|
+
Core --> Domain : 3 consecutive failures
|
|
299
|
+
Domain --> Contextual : confidence drops
|
|
300
|
+
|
|
301
|
+
Contextual --> Refined : failure in specific context
|
|
302
|
+
Refined --> Contextual : refinement recorded
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### Memory architecture
|
|
306
|
+
|
|
307
|
+
Seven memory stores serve different retrieval patterns:
|
|
308
|
+
|
|
309
|
+
```mermaid
|
|
310
|
+
graph LR
|
|
311
|
+
subgraph MemorySystem
|
|
312
|
+
E[ExperienceMemory]
|
|
313
|
+
P[PlaybookLibrary]
|
|
314
|
+
K[KnowledgeBank]
|
|
315
|
+
M[MetaMemory]
|
|
316
|
+
RB[ReasoningBank]
|
|
317
|
+
CS[CausalStore]
|
|
318
|
+
RF[ReflexionMemory]
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
subgraph Search
|
|
322
|
+
II[InvertedIndex]
|
|
323
|
+
BM[BM25 Index]
|
|
324
|
+
VS[sqlite-vec]
|
|
325
|
+
TS[Text Similarity]
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
subgraph Providers
|
|
329
|
+
OAI[OpenAI]
|
|
330
|
+
VOY[Voyage]
|
|
331
|
+
HF[HuggingFace local]
|
|
332
|
+
MM[minimem optional]
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
E --> II
|
|
336
|
+
E --> BM
|
|
337
|
+
E --> VS
|
|
338
|
+
P --> II
|
|
339
|
+
P --> BM
|
|
340
|
+
P --> VS
|
|
341
|
+
K --> TS
|
|
342
|
+
K -.-> MM
|
|
343
|
+
CS --> II
|
|
344
|
+
CS --> TS
|
|
345
|
+
RB --> TS
|
|
346
|
+
VS -.-> OAI
|
|
347
|
+
VS -.-> VOY
|
|
348
|
+
VS -.-> HF
|
|
349
|
+
|
|
350
|
+
subgraph Storage
|
|
351
|
+
SQL[SQLite — cognitive-core.db]
|
|
352
|
+
MD[Markdown + YAML]
|
|
353
|
+
SKILL[SQLite — skills.db]
|
|
354
|
+
end
|
|
355
|
+
|
|
356
|
+
E --> SQL
|
|
357
|
+
P --> SQL
|
|
358
|
+
M --> SQL
|
|
359
|
+
CS --> SQL
|
|
360
|
+
RF --> SQL
|
|
361
|
+
RB -.->|system_state| SQL
|
|
362
|
+
VS --> SQL
|
|
363
|
+
K --> MD
|
|
108
364
|
```
|
|
109
365
|
|
|
110
|
-
|
|
366
|
+
| Store | Purpose | Format |
|
|
367
|
+
|-------|---------|--------|
|
|
368
|
+
| **ExperienceMemory** | Episodic — *what happened* | SQLite |
|
|
369
|
+
| **PlaybookLibrary** | Procedural — *how to do things* | SQLite (with version history) |
|
|
370
|
+
| **KnowledgeBank** | Semantic — *facts, concepts, relationships* | Markdown + YAML frontmatter |
|
|
371
|
+
| **MetaMemory** | Meta-learning — *what worked* | SQLite |
|
|
372
|
+
| **ReasoningBank** | Clustered experience retrieval (K-means++) | SQLite (system_state) |
|
|
373
|
+
| **CausalStore** | Cause-effect relationships | SQLite |
|
|
374
|
+
| **ReflexionMemory** | Structured self-reflections | SQLite |
|
|
375
|
+
|
|
376
|
+
### Candidate retrieval
|
|
377
|
+
|
|
378
|
+
All memory stores use a shared two-phase retrieval pattern:
|
|
379
|
+
|
|
380
|
+
1. **InvertedIndex narrowing** — tokenize the query, find candidate IDs via posting lists (fast, O(query tokens))
|
|
381
|
+
2. **Fallback to full scan** — if the index returns fewer candidates than needed, fall back to the full store or domain partition
|
|
382
|
+
|
|
383
|
+
This is implemented once in `memory/candidate-retrieval.ts` and shared by ExperienceMemory, PlaybookLibrary, and CausalStore.
|
|
384
|
+
|
|
385
|
+
### Search and matching
|
|
386
|
+
|
|
387
|
+
Memory search uses BM25 text matching by default. For higher-quality retrieval, plug in an embedding provider (OpenAI, Voyage, or local via `@huggingface/transformers`) and cognitive-core switches to hybrid BM25 + vector search backed by `sqlite-vec`.
|
|
388
|
+
|
|
389
|
+
Knowledge bank search uses text similarity by default, with optional delegation to [minimem](https://github.com/alexngai/minimem) for hybrid vector + BM25 search when available.
|
|
390
|
+
|
|
391
|
+
### MoE routing gate
|
|
392
|
+
|
|
393
|
+
The TaskRouter uses a **Mixture-of-Experts inspired gating function** to select routing strategies. Instead of fixed threshold rules, a learned linear gate computes `softmax(W · features)` over the four strategies (direct, adapt, explore, fallback). Weights are updated online from outcome feedback, with per-domain specialization. Cold start falls back to uniform weights (equivalent to the original threshold logic).
|
|
394
|
+
|
|
395
|
+
### Temporal compression
|
|
396
|
+
|
|
397
|
+
Experiences flow through four tiers based on their access frequency:
|
|
398
|
+
|
|
399
|
+
| Tier | Fidelity | Threshold |
|
|
400
|
+
|------|----------|-----------|
|
|
401
|
+
| **Hot** | Full data preserved | accessScore > 0.5 |
|
|
402
|
+
| **Warm** | Key steps only (solutionOutput stripped) | accessScore > 0.2 |
|
|
403
|
+
| **Cold** | Single-paragraph summary | accessScore > 0.05 |
|
|
404
|
+
| **Evicted** | Removed (pattern captured in ReasoningBank) | accessScore < 0.05 |
|
|
405
|
+
|
|
406
|
+
Hysteresis prevents oscillation: an experience must stay below a threshold for 2 consecutive compression passes before demotion.
|
|
407
|
+
|
|
408
|
+
### Coherence checking
|
|
409
|
+
|
|
410
|
+
Before inserting new knowledge notes, the `CoherenceChecker` detects contradictions using a simplified sheaf-inspired approach:
|
|
411
|
+
|
|
412
|
+
1. Filter existing notes to the same entity/domain
|
|
413
|
+
2. Compute text similarity between new and candidate notes
|
|
414
|
+
3. Detect sentiment conflicts via negation heuristics (e.g., "always" vs "never", "use" vs "avoid")
|
|
415
|
+
4. Flag contradictions where `residualEnergy = similarity × sentimentConflict` exceeds threshold
|
|
416
|
+
|
|
417
|
+
## Knowledge Bank
|
|
418
|
+
|
|
419
|
+
The knowledge bank is a **semantic memory** store for facts, concepts, and relationships that agents learn from experience. While playbooks capture *how* to do things, the knowledge bank captures *what agents know* — facts about tools, libraries, version-specific behavior, and causal relationships.
|
|
420
|
+
|
|
421
|
+
### Knowledge note types
|
|
422
|
+
|
|
423
|
+
| Type | Purpose | Example |
|
|
424
|
+
|------|---------|---------|
|
|
425
|
+
| **Observation** | Atomic fact learned from experience | "Prisma requires `db push` before `migrate dev` when schema has drifted" |
|
|
426
|
+
| **Entity** | Living document about a tool/library/pattern | "Everything I know about Prisma" |
|
|
427
|
+
| **Domain summary** | High-level overview of a knowledge domain | "Database knowledge overview" |
|
|
428
|
+
|
|
429
|
+
### How knowledge is stored
|
|
430
|
+
|
|
431
|
+
Knowledge notes are plain Markdown files with structured YAML frontmatter, organized on the filesystem:
|
|
111
432
|
|
|
112
433
|
```
|
|
113
|
-
|
|
114
|
-
├──
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
│ └── MetaMemory # Meta-learning observations
|
|
118
|
-
│
|
|
119
|
-
├── Learning Engine
|
|
120
|
-
│ ├── TrajectoryAnalyzer # Credit assignment
|
|
121
|
-
│ ├── PlaybookExtractor # Pattern discovery & playbook creation
|
|
122
|
-
│ ├── MetaLearner # Adaptive routing improvements
|
|
123
|
-
│ ├── UsageInference # Track playbook effectiveness
|
|
124
|
-
│ └── LearningPipeline # Batch learning orchestration
|
|
125
|
-
│
|
|
126
|
-
├── Surfacing
|
|
127
|
-
│ ├── SkillLibrary # Tiered skill management (core/domain/contextual)
|
|
128
|
-
│ └── PlaybookMCPServer # MCP protocol for on-demand access
|
|
129
|
-
│
|
|
130
|
-
├── Runtime
|
|
131
|
-
│ ├── AgentManager # Spawn and observe agents
|
|
132
|
-
│ ├── Backends # Mock, Subprocess, ACP backends
|
|
133
|
-
│ └── KnowledgeInjector # Format memory for agent context
|
|
134
|
-
│
|
|
135
|
-
├── Search/Routing
|
|
136
|
-
│ ├── TaskRouter # Smart routing with meta-learning
|
|
137
|
-
│ ├── RefinementLoop # Iterative solution improvement
|
|
138
|
-
│ └── SolutionEvaluator # Quality assessment
|
|
139
|
-
│
|
|
140
|
-
└── Integration
|
|
141
|
-
└── skill-tree # Federated skill library management
|
|
434
|
+
knowledge/
|
|
435
|
+
├── observations/ # Atomic facts (k-*.md)
|
|
436
|
+
├── entities/ # Living entity docs (prisma.md, vitest.md)
|
|
437
|
+
└── domains/ # Domain summaries (database.md, testing.md)
|
|
142
438
|
```
|
|
143
439
|
|
|
144
|
-
|
|
440
|
+
Any agent with filesystem access can browse, grep, and read knowledge directly — no special API required.
|
|
145
441
|
|
|
146
|
-
###
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
442
|
+
### Multi-layer knowledge graph
|
|
443
|
+
|
|
444
|
+
Relationships between knowledge notes are tracked in a multi-layer graph overlay (inspired by [MAGMA](https://arxiv.org/abs/2601.03236)):
|
|
445
|
+
|
|
446
|
+
| Layer | Captures | Example |
|
|
447
|
+
|-------|----------|---------|
|
|
448
|
+
| **Semantic** | Conceptual relationships | "Prisma *depends-on* PostgreSQL" |
|
|
449
|
+
| **Temporal** | When knowledge was learned | "Observation A *supersedes* B" |
|
|
450
|
+
| **Causal** | Cause-effect chains | "Upgrading TS 5.4 *broke* enum const exports" |
|
|
451
|
+
| **Entity** | Tool/component interactions | "Next.js *uses* React" |
|
|
452
|
+
|
|
453
|
+
### Knowledge lifecycle
|
|
454
|
+
|
|
455
|
+
```
|
|
456
|
+
Trajectory → KnowledgeExtractor → Observations (confidence: 0.3)
|
|
457
|
+
│
|
|
458
|
+
reinforced by more trajectories
|
|
459
|
+
│
|
|
460
|
+
Observations (confidence: 0.5-0.8)
|
|
461
|
+
│
|
|
462
|
+
consolidated into entity notes
|
|
463
|
+
│
|
|
464
|
+
Entity Notes (living docs)
|
|
465
|
+
│
|
|
466
|
+
domain summaries regenerated
|
|
467
|
+
│
|
|
468
|
+
Domain Summaries
|
|
155
469
|
```
|
|
156
470
|
|
|
157
|
-
|
|
471
|
+
Knowledge evolves through:
|
|
472
|
+
- **Reinforcement** — same fact observed again increases confidence
|
|
473
|
+
- **Contradiction detection** — conflicting facts are flagged by the CoherenceChecker and resolved
|
|
474
|
+
- **Consolidation** — observations about the same entity merge into entity notes
|
|
475
|
+
- **Decay** — unvalidated knowledge gradually loses confidence
|
|
476
|
+
- **Defragmentation** — the KnowledgeDefragmenter merges duplicate/overlapping notes
|
|
477
|
+
|
|
478
|
+
### Knowledge surfacing
|
|
479
|
+
|
|
480
|
+
During `atlas.solve()`, relevant knowledge is surfaced alongside playbooks as an independent context section:
|
|
481
|
+
|
|
158
482
|
```typescript
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
task: Task;
|
|
162
|
-
steps: Step[]; // ReAct-style steps
|
|
163
|
-
outcome: Outcome;
|
|
164
|
-
agentId: string;
|
|
165
|
-
llmCalls: number;
|
|
166
|
-
totalTokens: number;
|
|
167
|
-
wallTimeSeconds: number;
|
|
168
|
-
}
|
|
483
|
+
const result = await atlas.solve(task);
|
|
484
|
+
console.log(result.surfacedKnowledge?.length); // knowledge notes injected
|
|
169
485
|
```
|
|
170
486
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
487
|
+
Three-tier retrieval:
|
|
488
|
+
1. **Domain match** — if the task domain matches a knowledge domain, include the domain summary
|
|
489
|
+
2. **Entity match** — if the task mentions known entities, include their notes
|
|
490
|
+
3. **Semantic match** — text similarity search for contextually relevant observations
|
|
491
|
+
|
|
492
|
+
### minimem integration
|
|
493
|
+
|
|
494
|
+
When [minimem](https://github.com/alexngai/minimem) is available, the knowledge bank can delegate search to minimem's hybrid search (vector + BM25) for higher-quality retrieval. Set `minimemAware: true` in config to enable. The two systems communicate via file conventions only — no cross-package imports.
|
|
495
|
+
|
|
496
|
+
See [Design Doc](docs/DESIGN-semantic-memory-knowledge-bank.md) for the full architecture.
|
|
497
|
+
|
|
498
|
+
## Learning Pipeline
|
|
499
|
+
|
|
500
|
+
### Knowledge extraction
|
|
501
|
+
|
|
502
|
+
The `KnowledgeExtractor` runs four heuristic strategies per trajectory:
|
|
503
|
+
|
|
504
|
+
1. **Error patterns** — extracts observations from error signatures and suggested fixes
|
|
505
|
+
2. **Config facts** — detects reads/writes of config files (package.json, tsconfig, etc.) and captures versions
|
|
506
|
+
3. **Causal chains** — identifies failure→recovery step sequences and creates causal links
|
|
507
|
+
4. **Entity identification** — matches known entities in observations and produces entity updates
|
|
508
|
+
|
|
509
|
+
### Reflexion generation
|
|
510
|
+
|
|
511
|
+
The `ReflexionGenerator` creates structured self-reflection episodes from completed trajectories. Each episode includes:
|
|
512
|
+
- Outcome classification (success/partial/failure)
|
|
513
|
+
- Self-critique (wasted effort, thrashing detection)
|
|
514
|
+
- Key insights (tools used, file paths, error patterns)
|
|
515
|
+
- Strategy assessment against matched playbooks
|
|
516
|
+
- Suggested playbook updates
|
|
517
|
+
|
|
518
|
+
### Shared utilities
|
|
519
|
+
|
|
520
|
+
Common analysis patterns are consolidated into shared utilities to avoid duplication:
|
|
521
|
+
|
|
522
|
+
| Utility | Used by |
|
|
523
|
+
|---------|---------|
|
|
524
|
+
| `classifyError()` / `classifyErrorType()` | TrajectoryAnalyzer, ReflexionGenerator |
|
|
525
|
+
| `detectRepeatedActions()` | TrajectoryAnalyzer, ReflexionGenerator, MetaLearner |
|
|
526
|
+
| `extractToolNames()` | ReflexionGenerator, MetaLearner |
|
|
527
|
+
| `getCandidates()` | ExperienceMemory, PlaybookLibrary, CausalStore |
|
|
528
|
+
|
|
529
|
+
## CLI
|
|
530
|
+
|
|
531
|
+
cognitive-core ships a CLI for operating the learning system — ingesting trajectories, querying memory, and running maintenance. Available as both `cogcore` (short) and `cognitive-core`.
|
|
532
|
+
|
|
533
|
+
```bash
|
|
534
|
+
npm install -g cognitive-core
|
|
535
|
+
cogcore help
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
### Daemon mode
|
|
539
|
+
|
|
540
|
+
The primary operational command. Polls SessionLog for new coding sessions and feeds them through the learning pipeline automatically.
|
|
541
|
+
|
|
542
|
+
```bash
|
|
543
|
+
# Continuous mode — watch for new sessions and process them
|
|
544
|
+
cogcore run --repo /path/to/repo --interval 30
|
|
545
|
+
|
|
546
|
+
# One-shot mode — process all unprocessed sessions and exit
|
|
547
|
+
cogcore run --once --repo /path/to/repo
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
The flow: `SessionBank.discover()` → filter unprocessed → `SessionTrajectorySource.synthesize()` → `atlas.processTrajectory()` → `bank.markProcessed()`. Supports graceful shutdown via SIGINT/SIGTERM.
|
|
551
|
+
|
|
552
|
+
### Playbook commands
|
|
553
|
+
|
|
554
|
+
```bash
|
|
555
|
+
# Initialize storage
|
|
556
|
+
cogcore init
|
|
557
|
+
|
|
558
|
+
# Store a trajectory from a JSON file
|
|
559
|
+
cogcore store ./trajectory.json
|
|
560
|
+
|
|
561
|
+
# Search for relevant playbooks
|
|
562
|
+
cogcore search "fix typescript import errors" --domain code
|
|
563
|
+
# Found 2 playbook(s) matching "fix typescript import errors":
|
|
564
|
+
#
|
|
565
|
+
# Match: 92% (trigger)
|
|
566
|
+
# ## typescript-import-resolution
|
|
567
|
+
# Confidence: 85%
|
|
568
|
+
# Strategy: Check tsconfig.json paths configuration
|
|
569
|
+
|
|
570
|
+
# Get full playbook details
|
|
571
|
+
cogcore get playbook-abc123
|
|
572
|
+
|
|
573
|
+
# List domains with playbook counts
|
|
574
|
+
cogcore domains
|
|
575
|
+
|
|
576
|
+
# View system statistics
|
|
577
|
+
cogcore stats
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
### Knowledge bank
|
|
581
|
+
|
|
582
|
+
Query and manage the semantic memory store (observations, entities, domain summaries).
|
|
583
|
+
|
|
584
|
+
```bash
|
|
585
|
+
cogcore kb search "prisma migration"
|
|
586
|
+
cogcore kb list # all notes
|
|
587
|
+
cogcore kb list --type entities # entity notes only
|
|
588
|
+
cogcore kb list --type domains # domain summaries only
|
|
589
|
+
cogcore kb get prisma # by ID, entity name, or domain name
|
|
590
|
+
cogcore kb stats # observation/entity/domain counts, graph stats
|
|
591
|
+
cogcore kb defrag # deduplicate, process inbox, run decay
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
### Sessions
|
|
595
|
+
|
|
596
|
+
Inspect SessionLog checkpoint data from git orphan branches. SessionBank is standalone — it reads directly from the git repo without Atlas.
|
|
597
|
+
|
|
598
|
+
```bash
|
|
599
|
+
cogcore sessions list --repo .
|
|
600
|
+
cogcore sessions get 2026-02-15-aabbccdd-1122-3344-5566-778899aabbcc
|
|
601
|
+
cogcore sessions query --agent "Claude Code" --since 2026-01-01 --limit 10
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
### Learning pipeline
|
|
605
|
+
|
|
606
|
+
Operator controls for the three-speed learning pipeline.
|
|
607
|
+
|
|
608
|
+
```bash
|
|
609
|
+
cogcore learn stats # processed count, pending, batch/maintenance cycles
|
|
610
|
+
cogcore learn batch # force batch learning on accumulated trajectories
|
|
611
|
+
cogcore learn maintenance # force maintenance cycle (defrag, healing, meta-strategies)
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
### Skill library
|
|
615
|
+
|
|
616
|
+
Inspect and manage the tiered skill system.
|
|
617
|
+
|
|
618
|
+
```bash
|
|
619
|
+
cogcore skills list # all skills with tier, confidence, success rate
|
|
620
|
+
cogcore skills list --tier core # core skills only (always in system prompt)
|
|
621
|
+
cogcore skills list --tier domain # domain skills only
|
|
622
|
+
cogcore skills stats # core/domain counts, last refresh
|
|
623
|
+
cogcore skills refresh # trigger tier re-evaluation (promotions/demotions)
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
### Global options
|
|
627
|
+
|
|
628
|
+
All commands support these flags:
|
|
629
|
+
|
|
630
|
+
| Flag | Description |
|
|
631
|
+
|------|-------------|
|
|
632
|
+
| `--dir <path>` | Storage directory (default: `.cognitive-core`) |
|
|
633
|
+
| `--json` | Machine-readable JSON output |
|
|
634
|
+
| `--limit <n>` | Maximum results |
|
|
635
|
+
| `--domain <d>` | Filter by domain |
|
|
636
|
+
| `--repo <path>` | Git repository path (for sessions/run) |
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
# Pipe JSON output to jq
|
|
640
|
+
cogcore search "debug async errors" --json | jq '.[0].strategy'
|
|
641
|
+
cogcore kb stats --json | jq '.observationCount'
|
|
180
642
|
```
|
|
181
643
|
|
|
182
|
-
|
|
644
|
+
## Agent Backends
|
|
645
|
+
|
|
646
|
+
cognitive-core delegates execution to backends that handle spawning, message passing, and trajectory extraction.
|
|
647
|
+
|
|
648
|
+
### Subprocess backend
|
|
649
|
+
|
|
650
|
+
Spawns agents as child processes. Works with any CLI agent.
|
|
651
|
+
|
|
183
652
|
```typescript
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
653
|
+
import { createAtlasWithAgents, createSubprocessBackend, claudeCodeConfig } from 'cognitive-core';
|
|
654
|
+
|
|
655
|
+
const backend = createSubprocessBackend({
|
|
656
|
+
'claude-code': claudeCodeConfig, // Pre-configured for Claude Code CLI
|
|
657
|
+
});
|
|
658
|
+
|
|
659
|
+
const atlas = createAtlasWithAgents([backend], {
|
|
660
|
+
execution: {
|
|
661
|
+
defaultAgentType: 'claude-code',
|
|
662
|
+
maxExecutionTime: 300,
|
|
663
|
+
captureToolCalls: true,
|
|
664
|
+
},
|
|
665
|
+
});
|
|
192
666
|
```
|
|
193
667
|
|
|
194
|
-
|
|
668
|
+
### ACP backend
|
|
195
669
|
|
|
196
|
-
|
|
670
|
+
Uses the [Agent Communication Protocol](https://www.npmjs.com/package/acp-factory) for richer interaction with ACP-compatible agents.
|
|
197
671
|
|
|
198
|
-
|
|
672
|
+
```typescript
|
|
673
|
+
import { createACPBackend, claudeCodeACPConfig } from 'cognitive-core';
|
|
674
|
+
|
|
675
|
+
const backend = createACPBackend({
|
|
676
|
+
'claude-code': claudeCodeACPConfig, // Uses npx claude-code-acp
|
|
677
|
+
});
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
### Custom backends
|
|
199
681
|
|
|
200
682
|
Implement the `AgentBackend` interface:
|
|
201
683
|
|
|
202
684
|
```typescript
|
|
203
685
|
import type { AgentBackend, AgentSpawnConfig, AgentSession } from 'cognitive-core';
|
|
204
686
|
|
|
205
|
-
class
|
|
687
|
+
class MyBackend implements AgentBackend {
|
|
206
688
|
readonly name = 'my-agent';
|
|
207
|
-
readonly supportedTypes = ['my-agent'
|
|
689
|
+
readonly supportedTypes = ['my-agent'];
|
|
208
690
|
|
|
209
|
-
async isAvailable(): Promise<boolean> {
|
|
210
|
-
// Check if agent is available
|
|
211
|
-
return true;
|
|
212
|
-
}
|
|
691
|
+
async isAvailable(): Promise<boolean> { return true; }
|
|
213
692
|
|
|
214
693
|
async spawn(config: AgentSpawnConfig): Promise<AgentSession> {
|
|
215
|
-
//
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
timeout: config.timeout,
|
|
220
|
-
});
|
|
694
|
+
// config.task - the task to solve
|
|
695
|
+
// config.systemPromptAdditions - playbook context to inject
|
|
696
|
+
// config.timeout - max execution time
|
|
697
|
+
const session = await launchMyAgent(config);
|
|
221
698
|
return session;
|
|
222
699
|
}
|
|
223
700
|
|
|
224
|
-
async getSession(
|
|
225
|
-
|
|
226
|
-
return this.sessions.get(sessionId);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
async terminate(sessionId: string): Promise<void> {
|
|
230
|
-
// Terminate a running session
|
|
231
|
-
await this.sessions.get(sessionId)?.kill();
|
|
232
|
-
}
|
|
701
|
+
async getSession(id: string): Promise<AgentSession | undefined> { /* ... */ }
|
|
702
|
+
async terminate(id: string): Promise<void> { /* ... */ }
|
|
233
703
|
}
|
|
234
|
-
|
|
235
|
-
// Register with Atlas
|
|
236
|
-
const atlas = createAtlasWithAgents([new MyAgentBackend()]);
|
|
237
704
|
```
|
|
238
705
|
|
|
239
|
-
###
|
|
706
|
+
### Observing agent execution
|
|
240
707
|
|
|
241
708
|
```typescript
|
|
242
709
|
const manager = atlas.getAgentManager();
|
|
243
710
|
|
|
244
|
-
// Add observers for monitoring
|
|
245
711
|
manager.addObserver({
|
|
246
712
|
onSessionStart: (session) => console.log('Started:', session.id),
|
|
247
713
|
onToolCall: (session, toolCall) => console.log('Tool:', toolCall.name),
|
|
248
|
-
onSessionEnd: (session, trajectory) =>
|
|
714
|
+
onSessionEnd: (session, trajectory) => {
|
|
715
|
+
console.log('Done:', trajectory.outcome.success);
|
|
716
|
+
console.log('Steps:', trajectory.steps.length);
|
|
717
|
+
},
|
|
249
718
|
});
|
|
719
|
+
```
|
|
250
720
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
721
|
+
## Skill Library
|
|
722
|
+
|
|
723
|
+
The skill library manages how playbooks are surfaced to agents across four tiers:
|
|
724
|
+
|
|
725
|
+
| Tier | When loaded | Criteria |
|
|
726
|
+
|------|-------------|----------|
|
|
727
|
+
| **Core** | Always in system prompt | 85%+ confidence, 5+ successes, 80%+ success rate |
|
|
728
|
+
| **Domain** | When task domain matches | Domain-tagged playbooks |
|
|
729
|
+
| **Contextual** | When task query matches | Semantic/trigger match |
|
|
730
|
+
| **On-demand** | Agent explicitly requests | Available via CLI |
|
|
731
|
+
|
|
732
|
+
Playbooks are automatically promoted and demoted based on usage outcomes. Three consecutive failures trigger demotion review.
|
|
256
733
|
|
|
257
|
-
|
|
258
|
-
|
|
734
|
+
```typescript
|
|
735
|
+
const skills = await atlas.getSkillLibrary()?.getSkillsForAgent(task);
|
|
736
|
+
// skills.core - always-on playbooks
|
|
737
|
+
// skills.domain - relevant to task domain
|
|
738
|
+
// skills.contextual - matched to this specific task
|
|
259
739
|
```
|
|
260
740
|
|
|
261
|
-
###
|
|
741
|
+
### skill-tree integration
|
|
262
742
|
|
|
263
|
-
|
|
743
|
+
When `skillTree.enabled` is true (default), playbooks are published to a `skill-tree` SQLite database via `SqliteStorageAdapter`, making them available to external consumers.
|
|
264
744
|
|
|
265
|
-
|
|
745
|
+
### Team skill library
|
|
266
746
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
class MyProvider implements LLMProvider {
|
|
271
|
-
readonly name = 'my-provider';
|
|
272
|
-
|
|
273
|
-
async complete(
|
|
274
|
-
messages: Message[],
|
|
275
|
-
options?: CompletionOptions
|
|
276
|
-
): Promise<string> {
|
|
277
|
-
const response = await myLLMAPI.chat({
|
|
278
|
-
messages,
|
|
279
|
-
temperature: options?.temperature,
|
|
280
|
-
max_tokens: options?.maxTokens,
|
|
281
|
-
});
|
|
282
|
-
return response.content;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
747
|
+
For multi-agent systems, the `TeamSkillLibrary` surfaces team-level and role-specific playbooks with ELO-based ranking from team outcome feedback.
|
|
748
|
+
|
|
749
|
+
## Session Bank
|
|
285
750
|
|
|
286
|
-
|
|
287
|
-
|
|
751
|
+
The session bank provides integration with the Claude Code CLI, enabling cognitive-core to learn from real coding sessions.
|
|
752
|
+
|
|
753
|
+
```typescript
|
|
754
|
+
import { SessionBank, EntireGitReader, EntireTranscriptParser } from 'cognitive-core';
|
|
288
755
|
```
|
|
289
756
|
|
|
290
|
-
|
|
757
|
+
Components:
|
|
758
|
+
- **EntireGitReader** — reads session transcripts from Claude Code's git-based storage
|
|
759
|
+
- **EntireTranscriptParser** — parses raw transcripts into structured `SessionRecord` objects
|
|
760
|
+
- **SessionBank** — manages session records with querying by date range, domain, and outcome
|
|
291
761
|
|
|
292
|
-
|
|
762
|
+
The `EntireTrajectorySource` bridges session bank records into trajectories for the learning pipeline.
|
|
293
763
|
|
|
294
|
-
|
|
295
|
-
import { createTrajectory, createTask, createStep, successOutcome } from 'cognitive-core';
|
|
764
|
+
## Workspace Templates
|
|
296
765
|
|
|
297
|
-
|
|
298
|
-
task: createTask({
|
|
299
|
-
domain: 'code',
|
|
300
|
-
description: 'Fix the authentication bug',
|
|
301
|
-
}),
|
|
302
|
-
steps: [
|
|
303
|
-
createStep({
|
|
304
|
-
thought: 'Need to check the token validation',
|
|
305
|
-
action: 'Read auth.ts',
|
|
306
|
-
observation: 'Found expired token check missing',
|
|
307
|
-
}),
|
|
308
|
-
createStep({
|
|
309
|
-
thought: 'Adding expiry validation',
|
|
310
|
-
action: 'Edit auth.ts to add token.exp check',
|
|
311
|
-
observation: 'Token validation added',
|
|
312
|
-
}),
|
|
313
|
-
],
|
|
314
|
-
outcome: successOutcome('Fixed by adding token expiry check'),
|
|
315
|
-
agentId: 'external-agent',
|
|
316
|
-
});
|
|
766
|
+
The workspace system provides LLM-assisted analysis via structured templates. Each template defines inputs, outputs, and a processing prompt. The `AgenticTaskRunner` executes templates against a workspace.
|
|
317
767
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
768
|
+
Available templates:
|
|
769
|
+
|
|
770
|
+
| Template | Purpose |
|
|
771
|
+
|----------|---------|
|
|
772
|
+
| `trajectory-analysis` | Deep trajectory analysis with LLM |
|
|
773
|
+
| `playbook-extraction` | Extract playbooks from trajectory clusters |
|
|
774
|
+
| `knowledge-extraction` | LLM-assisted knowledge extraction |
|
|
775
|
+
| `usage-inference` | Infer which playbooks were actually used |
|
|
776
|
+
| `meta-reflection` | Generate meta-learning observations |
|
|
777
|
+
| `solution-evaluation` | Evaluate solution quality |
|
|
778
|
+
| `refinement-analysis` | Analyze refinement opportunities |
|
|
779
|
+
| `knowledge-defrag` | Merge overlapping knowledge notes |
|
|
780
|
+
| `team-playbook-extraction` | Extract team-level playbooks |
|
|
781
|
+
| `team-trajectory-analysis` | Analyze multi-agent trajectories |
|
|
782
|
+
|
|
783
|
+
Templates can run in heuristic mode (no LLM, pattern matching only) or agentic mode (LLM-assisted, higher quality).
|
|
323
784
|
|
|
324
785
|
## Configuration
|
|
325
786
|
|
|
326
787
|
```typescript
|
|
327
|
-
const atlas =
|
|
788
|
+
const atlas = createAtlasWithAgents([backend], {
|
|
789
|
+
storage: {
|
|
790
|
+
baseDir: '.cognitive-core',
|
|
791
|
+
dbName: 'cognitive-core.db', // SQLite database filename
|
|
792
|
+
persistenceEnabled: true,
|
|
793
|
+
},
|
|
328
794
|
learning: {
|
|
329
|
-
creditStrategy: 'simple',
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
deduplicationThreshold: 0.9,
|
|
795
|
+
creditStrategy: 'simple', // 'simple' | 'contribution'
|
|
796
|
+
minTrajectories: 10, // batch learning threshold
|
|
797
|
+
deduplicationThreshold: 0.9, // prevent duplicate playbooks
|
|
333
798
|
},
|
|
334
799
|
router: {
|
|
335
|
-
similarityThreshold: 0.85,
|
|
800
|
+
similarityThreshold: 0.85, // match confidence threshold
|
|
336
801
|
useDomainRouting: true,
|
|
337
802
|
},
|
|
338
803
|
memory: {
|
|
339
|
-
maxExperiences: 4,
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
804
|
+
maxExperiences: 4, // k for experience retrieval
|
|
805
|
+
maxContextTokens: 4000,
|
|
806
|
+
capacity: {
|
|
807
|
+
maxExperiences: 1000, // total stored experiences
|
|
808
|
+
maxPlaybooks: 200,
|
|
809
|
+
autoPrune: true,
|
|
810
|
+
preserveDomainCoverage: true,
|
|
811
|
+
},
|
|
343
812
|
},
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
813
|
+
knowledgeBank: {
|
|
814
|
+
enabled: true, // enable semantic memory (default: false)
|
|
815
|
+
memoryDir: 'memory',
|
|
816
|
+
extraction: {
|
|
817
|
+
enabled: true, // auto-extract from trajectories
|
|
818
|
+
useLlmExtraction: false, // use heuristic extraction
|
|
819
|
+
},
|
|
820
|
+
graph: {
|
|
821
|
+
enabledLayers: ['semantic'], // semantic | temporal | causal | entity
|
|
822
|
+
},
|
|
823
|
+
surfacing: {
|
|
824
|
+
maxNotesPerTask: 5,
|
|
825
|
+
maxTokensForKnowledge: 2000,
|
|
826
|
+
},
|
|
827
|
+
minimemAware: false, // set true if using minimem
|
|
828
|
+
},
|
|
829
|
+
execution: {
|
|
830
|
+
defaultAgentType: 'claude-code',
|
|
831
|
+
maxExecutionTime: 300,
|
|
832
|
+
captureToolCalls: true,
|
|
833
|
+
},
|
|
834
|
+
refinement: {
|
|
835
|
+
useAgentEvaluation: true,
|
|
836
|
+
maxIterations: 3,
|
|
837
|
+
acceptableScore: 0.7,
|
|
347
838
|
},
|
|
348
839
|
});
|
|
349
840
|
```
|
|
350
841
|
|
|
351
|
-
##
|
|
842
|
+
## Core Types
|
|
843
|
+
|
|
844
|
+
### Playbook
|
|
845
|
+
|
|
846
|
+
The central learning unit. Combines when to apply, what to do, and how to verify results.
|
|
847
|
+
|
|
848
|
+
```typescript
|
|
849
|
+
interface Playbook {
|
|
850
|
+
id: string;
|
|
851
|
+
name: string;
|
|
852
|
+
applicability: {
|
|
853
|
+
situations: string[]; // "debugging async code"
|
|
854
|
+
triggers: string[]; // "Promise rejection", "TS2307"
|
|
855
|
+
antiPatterns: string[]; // when NOT to use
|
|
856
|
+
domains: string[]; // "typescript", "react", "testing"
|
|
857
|
+
};
|
|
858
|
+
guidance: {
|
|
859
|
+
strategy: string; // high-level approach
|
|
860
|
+
tactics: string[]; // mid-level steps
|
|
861
|
+
steps?: string[]; // concrete commands
|
|
862
|
+
codeExample?: string;
|
|
863
|
+
};
|
|
864
|
+
verification: {
|
|
865
|
+
successIndicators: string[]; // "Tests pass", "No errors"
|
|
866
|
+
failureIndicators: string[]; // "Same error persists"
|
|
867
|
+
rollbackStrategy?: string;
|
|
868
|
+
};
|
|
869
|
+
evolution: {
|
|
870
|
+
version: string;
|
|
871
|
+
successCount: number;
|
|
872
|
+
failureCount: number;
|
|
873
|
+
refinements: Refinement[]; // context-specific adaptations
|
|
874
|
+
failures: FailureRecord[];
|
|
875
|
+
};
|
|
876
|
+
confidence: number; // 0-1, grows with successful use
|
|
877
|
+
complexity: 'simple' | 'moderate' | 'complex';
|
|
878
|
+
}
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
### Trajectory
|
|
352
882
|
|
|
353
|
-
|
|
883
|
+
A recorded problem-solving session in ReAct format.
|
|
354
884
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
885
|
+
```typescript
|
|
886
|
+
interface Trajectory {
|
|
887
|
+
id: string;
|
|
888
|
+
task: Task;
|
|
889
|
+
steps: Step[]; // thought -> action -> observation
|
|
890
|
+
outcome: Outcome; // success/failure + solution
|
|
891
|
+
agentId: string;
|
|
892
|
+
llmCalls: number;
|
|
893
|
+
totalTokens: number;
|
|
894
|
+
wallTimeSeconds: number;
|
|
895
|
+
}
|
|
896
|
+
```
|
|
897
|
+
|
|
898
|
+
### RoutingDecision
|
|
899
|
+
|
|
900
|
+
How the system decides to approach a task.
|
|
901
|
+
|
|
902
|
+
```typescript
|
|
903
|
+
interface RoutingDecision {
|
|
904
|
+
strategy: 'direct' | 'adapt' | 'explore' | 'fallback';
|
|
905
|
+
confidence: number;
|
|
906
|
+
memoryContext: MemoryQueryResultV2;
|
|
907
|
+
estimatedBudget: number;
|
|
908
|
+
reasoning: string;
|
|
909
|
+
}
|
|
910
|
+
```
|
|
911
|
+
|
|
912
|
+
## Research References
|
|
913
|
+
|
|
914
|
+
cognitive-core draws from several lines of research on agent memory and learning:
|
|
915
|
+
|
|
916
|
+
- **ArcMemo** - Concept-level memory outperforms instance-level at all compute scales
|
|
917
|
+
- **ReMem** - Experience retrieval with k=4, iterative refinement loops
|
|
918
|
+
- **Stitch** - Library learning through compression
|
|
919
|
+
- **LILO** - AutoDoc for concept naming
|
|
920
|
+
- **Voyager** - Ever-growing skill libraries with verification
|
|
921
|
+
- **Claudeception** - Lightweight skill persistence for code agents
|
|
922
|
+
- **[A-MEM](https://arxiv.org/abs/2502.12110)** - Zettelkasten-inspired structured notes with dynamic linking (knowledge note format)
|
|
923
|
+
- **[MAGMA](https://arxiv.org/abs/2601.03236)** - Multi-graph decomposition into semantic, temporal, causal, entity layers (graph overlay design)
|
|
924
|
+
- **[Zep](https://arxiv.org/pdf/2501.13956)** - Entity extraction, community detection, temporal tracking
|
|
925
|
+
- **[Memory Survey](https://arxiv.org/abs/2512.13564)** - Comprehensive survey and taxonomy of factual/experiential/procedural memory
|
|
926
|
+
- **ruvector** - Inspiration for infrastructure improvements: ReasoningBank (K-means++ clustering), MoE routing gate, CoherenceChecker (sheaf-inspired), TemporalCompressor (tiered memory), InstantLoop (hot-path learning)
|
|
927
|
+
|
|
928
|
+
## Limitations
|
|
929
|
+
|
|
930
|
+
- **No cross-domain transfer**. A playbook learned in the `code` domain won't surface for `testing` tasks even if the underlying pattern is the same. Domain tags are string-matched, not semantically compared.
|
|
931
|
+
- **Cold start**. The system needs ~10 trajectories before batch learning kicks in and playbooks start appearing. The instant loop provides per-trajectory updates immediately, and knowledge extraction works per-trajectory, so some learning is available sooner.
|
|
932
|
+
- **Text-based matching by default**. BM25 and inverted index candidate narrowing work but miss semantic similarity. Vector search requires configuring an embedding provider and adds latency. Knowledge bank search uses text similarity unless minimem is available.
|
|
933
|
+
- **No trajectory quality filtering**. The system stores all trajectories, including ones from poorly-performing agents. Low-quality trajectories can produce low-quality playbooks and knowledge. The deduplication threshold, confidence model, and temporal compression help, but don't solve the garbage-in problem.
|
|
934
|
+
- **Single-machine storage**. All system-internal data lives in a single SQLite database (`cognitive-core.db` with WAL mode), knowledge notes are Markdown files, and skills use a separate `skills.db`. There's no built-in replication, multi-agent concurrency, or cloud storage.
|
|
935
|
+
- **Extraction is heuristic by default**. Without an LLM extractor configured, both playbook and knowledge extraction use text pattern matching, which produces lower-quality results. LLM-assisted extraction is available via workspace templates.
|
|
936
|
+
|
|
937
|
+
## Contributing
|
|
938
|
+
|
|
939
|
+
Contributions welcome. The test suite uses Vitest:
|
|
940
|
+
|
|
941
|
+
```bash
|
|
942
|
+
npm install
|
|
943
|
+
npm run test:run # run tests once
|
|
944
|
+
npm run test # watch mode
|
|
945
|
+
npm run typecheck # type checking without emit
|
|
946
|
+
```
|
|
361
947
|
|
|
362
948
|
## License
|
|
363
949
|
|