cognitive-core 0.1.2 → 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.md +233 -0
- package/README.md +370 -54
- package/dist/atlas.d.ts +10 -10
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +79 -48
- 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/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 +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -5
- 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 +7 -2
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +13 -2
- 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/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.map +1 -1
- package/dist/learning/meta-learner.js +4 -21
- package/dist/learning/meta-learner.js.map +1 -1
- package/dist/learning/pipeline.d.ts +31 -4
- package/dist/learning/pipeline.d.ts.map +1 -1
- package/dist/learning/pipeline.js +64 -12
- 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/trajectory-sources/entire.d.ts +8 -5
- package/dist/learning/trajectory-sources/entire.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/entire.js +13 -6
- package/dist/learning/trajectory-sources/entire.js.map +1 -1
- package/dist/learning/trajectory-sources/index.d.ts +1 -1
- package/dist/learning/trajectory-sources/index.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/index.js +1 -1
- package/dist/learning/trajectory-sources/index.js.map +1 -1
- package/dist/learning/trajectory-sources/pipeline.d.ts +4 -4
- package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/pipeline.js +2 -2
- package/dist/learning/trajectory-sources/pipeline.js.map +1 -1
- 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/index.d.ts +7 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +12 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/knowledge-bank.d.ts +14 -0
- package/dist/memory/knowledge-bank.d.ts.map +1 -1
- package/dist/memory/knowledge-bank.js +45 -0
- package/dist/memory/knowledge-bank.js.map +1 -1
- 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/system.d.ts +7 -2
- package/dist/memory/system.d.ts.map +1 -1
- package/dist/memory/system.js +19 -7
- package/dist/memory/system.js.map +1 -1
- 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/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/search/index.d.ts +1 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +2 -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/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/session-bank/git-reader.d.ts +9 -4
- package/dist/session-bank/git-reader.d.ts.map +1 -1
- package/dist/session-bank/git-reader.js +22 -15
- package/dist/session-bank/git-reader.js.map +1 -1
- package/dist/session-bank/index.d.ts +2 -2
- package/dist/session-bank/index.d.ts.map +1 -1
- package/dist/session-bank/index.js +2 -2
- package/dist/session-bank/index.js.map +1 -1
- package/dist/session-bank/parser.d.ts +16 -5
- package/dist/session-bank/parser.d.ts.map +1 -1
- package/dist/session-bank/parser.js +187 -80
- package/dist/session-bank/parser.js.map +1 -1
- package/dist/session-bank/session-bank.d.ts +5 -0
- package/dist/session-bank/session-bank.d.ts.map +1 -1
- package/dist/session-bank/session-bank.js +30 -9
- package/dist/session-bank/session-bank.js.map +1 -1
- package/dist/session-bank/types.d.ts +4 -1
- package/dist/session-bank/types.d.ts.map +1 -1
- package/dist/session-bank/types.js +3 -3
- package/dist/session-bank/types.js.map +1 -1
- package/dist/surfacing/skill-publisher.d.ts.map +1 -1
- package/dist/surfacing/skill-publisher.js +15 -43
- package/dist/surfacing/skill-publisher.js.map +1 -1
- package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
- package/dist/surfacing/sqlite-storage-adapter.js +13 -21
- package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
- package/dist/types/config.d.ts +100 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +27 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- 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/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/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -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/runner.d.ts +3 -4
- package/dist/workspace/runner.d.ts.map +1 -1
- package/dist/workspace/runner.js.map +1 -1
- package/dist/workspace/types.d.ts +9 -2
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/types.js.map +1 -1
- package/package.json +6 -4
- 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/.sudocode/issues.jsonl +8 -0
- package/references/skill-tree/.sudocode/specs.jsonl +2 -0
- package/references/skill-tree/CLAUDE.md +56 -80
- package/references/skill-tree/README.md +188 -140
- package/references/skill-tree/examples/basic-usage.ts +95 -121
- package/references/skill-tree/package-lock.json +369 -26
- package/references/skill-tree/package.json +1 -1
- package/src/atlas.ts +97 -67
- 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/vector-store.ts +21 -9
- package/src/factory.ts +33 -16
- package/src/index.ts +109 -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 +65 -9
- package/src/learning/instant-loop.ts +357 -0
- package/src/learning/maintenance-scheduler.ts +271 -0
- package/src/learning/meta-learner.ts +5 -23
- package/src/learning/reflexion-generator.ts +273 -0
- package/src/learning/trajectory-sources/entire.ts +24 -13
- package/src/learning/trajectory-sources/index.ts +2 -2
- package/src/learning/trajectory-sources/pipeline.ts +5 -5
- 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/index.ts +43 -0
- package/src/memory/knowledge-bank.ts +57 -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/system.ts +21 -5
- 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/flows/learning.ts +25 -42
- package/src/search/index.ts +10 -0
- package/src/search/moe-gate.ts +304 -0
- package/src/search/router.ts +111 -4
- package/src/session-bank/git-reader.ts +29 -19
- package/src/session-bank/index.ts +4 -2
- package/src/session-bank/parser.ts +280 -98
- package/src/session-bank/session-bank.ts +33 -12
- package/src/session-bank/types.ts +8 -5
- package/src/surfacing/skill-publisher.ts +17 -49
- package/src/surfacing/sqlite-storage-adapter.ts +16 -32
- package/src/types/config.ts +30 -0
- package/src/types/index.ts +3 -0
- package/src/types/memory.ts +30 -0
- package/src/types/playbook.ts +4 -0
- package/src/utils/error-classifier.ts +113 -0
- package/src/utils/index.ts +18 -0
- package/src/utils/partitioned-store.ts +299 -0
- package/src/utils/trajectory-helpers.ts +79 -0
- package/src/workspace/runner.ts +3 -3
- package/src/workspace/types.ts +10 -2
- package/tests/embeddings/inverted-index.test.ts +138 -0
- package/tests/feature-toggles.test.ts +275 -0
- package/tests/gap-fixes.test.ts +17 -4
- package/tests/integration/cli-e2e.test.ts +621 -0
- package/tests/integration/e2e.test.ts +6 -5
- package/tests/integration/entire-e2e.test.ts +314 -125
- 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 +20 -14
- package/tests/integration/sessionlog-e2e.test.ts +329 -0
- package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
- package/tests/learning/analyzer.test.ts +1 -1
- package/tests/learning/energy-evaluator.test.ts +180 -0
- package/tests/learning/entire-trajectory-source.test.ts +25 -25
- package/tests/learning/healing-orchestrator.test.ts +269 -0
- package/tests/learning/instant-loop.test.ts +243 -0
- package/tests/learning/maintenance-scheduler.test.ts +191 -0
- package/tests/learning/reflexion-generator.test.ts +411 -0
- package/tests/learning/trajectory-sources.test.ts +12 -4
- 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/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 +6 -1
- package/tests/memory/system.test.ts +6 -1
- 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 +6 -1
- package/tests/runtime/delegate.test.ts +6 -1
- 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/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/git-reader.test.ts +13 -13
- package/tests/session-bank/parser.test.ts +135 -3
- package/tests/session-bank/session-bank.test.ts +1 -1
- package/tests/surfacing/skill-library.test.ts +6 -1
- package/tests/surfacing/skill-publisher.test.ts +24 -58
- package/tests/surfacing/sqlite-storage-adapter.test.ts +11 -23
- package/tests/utils/partitioned-store.test.ts +230 -0
- package/tests/workspace/full-flow.test.ts +10 -4
- package/tests/workspace/runner.test.ts +10 -4
- package/docs/DESIGN-workspace-migration.md +0 -1079
- package/docs/PLAN-agentic-workspace-implementation.md +0 -717
- package/docs/PLAN-graph-migration.md +0 -299
- package/docs/PLAN-session-bank-implementation.md +0 -474
- package/src/learning/pipeline.ts +0 -323
- package/tests/learning/pipeline.test.ts +0 -176
|
@@ -1,412 +1,110 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Cognitive Core CLI
|
|
3
|
+
* Cognitive Core CLI — learning system for AI agents.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* This replaces the MCP server approach, providing a simpler interface for agents
|
|
7
|
-
* to query playbooks and store trajectories.
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* cognitive-core search <query> [--domain <domain>] [--limit <n>]
|
|
11
|
-
* cognitive-core get <playbook-id>
|
|
12
|
-
* cognitive-core domains
|
|
13
|
-
* cognitive-core stats
|
|
14
|
-
* cognitive-core store <trajectory-file>
|
|
15
|
-
* cognitive-core init [--dir <directory>]
|
|
5
|
+
* Entry point: parses args, routes to command groups.
|
|
16
6
|
*/
|
|
17
7
|
|
|
18
|
-
import
|
|
19
|
-
import * as path from 'node:path';
|
|
8
|
+
import { parseArgs, outputError } from './cli-utils.js';
|
|
20
9
|
import {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
domain?: string;
|
|
34
|
-
limit?: number;
|
|
35
|
-
format?: 'json' | 'text';
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Parse command line arguments
|
|
40
|
-
*/
|
|
41
|
-
function parseArgs(args: string[]): { command: string; positional: string[]; options: CLIOptions } {
|
|
42
|
-
const options: CLIOptions = {};
|
|
43
|
-
const positional: string[] = [];
|
|
44
|
-
let command = '';
|
|
45
|
-
|
|
46
|
-
for (let i = 0; i < args.length; i++) {
|
|
47
|
-
const arg = args[i];
|
|
48
|
-
|
|
49
|
-
if (arg === '--dir' && args[i + 1]) {
|
|
50
|
-
options.dir = args[++i];
|
|
51
|
-
} else if (arg === '--domain' && args[i + 1]) {
|
|
52
|
-
options.domain = args[++i];
|
|
53
|
-
} else if (arg === '--limit' && args[i + 1]) {
|
|
54
|
-
options.limit = parseInt(args[++i], 10);
|
|
55
|
-
} else if (arg === '--format' && args[i + 1]) {
|
|
56
|
-
options.format = args[++i] as 'json' | 'text';
|
|
57
|
-
} else if (arg === '--json') {
|
|
58
|
-
options.format = 'json';
|
|
59
|
-
} else if (!arg.startsWith('-')) {
|
|
60
|
-
if (!command) {
|
|
61
|
-
command = arg;
|
|
62
|
-
} else {
|
|
63
|
-
positional.push(arg);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return { command, positional, options };
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Initialize and get memory system
|
|
73
|
-
*/
|
|
74
|
-
async function getMemorySystem(options: CLIOptions): Promise<MemorySystem> {
|
|
75
|
-
const dir = options.dir || DEFAULT_STORAGE_DIR;
|
|
76
|
-
const memory = createMemorySystem(dir);
|
|
77
|
-
await memory.init();
|
|
78
|
-
return memory;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Format playbook for display
|
|
83
|
-
*/
|
|
84
|
-
function formatPlaybook(playbook: Playbook, verbose = false): string {
|
|
85
|
-
const lines: string[] = [];
|
|
86
|
-
const { successCount, failureCount } = playbook.evolution;
|
|
87
|
-
const totalUses = successCount + failureCount;
|
|
88
|
-
const successRate = totalUses > 0 ? Math.round((successCount / totalUses) * 100) : 0;
|
|
89
|
-
|
|
90
|
-
lines.push(`## ${playbook.name}`);
|
|
91
|
-
lines.push(`ID: ${playbook.id}`);
|
|
92
|
-
lines.push(`Confidence: ${Math.round(playbook.confidence * 100)}%`);
|
|
93
|
-
lines.push(`Success Rate: ${successRate}% (${totalUses} uses)`);
|
|
94
|
-
lines.push(`Domains: ${playbook.applicability.domains.join(', ')}`);
|
|
95
|
-
lines.push('');
|
|
96
|
-
lines.push(`**Strategy**: ${playbook.guidance.strategy}`);
|
|
10
|
+
initCommand,
|
|
11
|
+
searchCommand,
|
|
12
|
+
getCommand,
|
|
13
|
+
domainsCommand,
|
|
14
|
+
statsCommand,
|
|
15
|
+
storeCommand,
|
|
16
|
+
} from './commands/legacy.js';
|
|
17
|
+
import { kbCommand } from './commands/kb.js';
|
|
18
|
+
import { sessionsCommand } from './commands/sessions.js';
|
|
19
|
+
import { learnCommand } from './commands/learn.js';
|
|
20
|
+
import { skillsCommand } from './commands/skills.js';
|
|
21
|
+
import { runCommand } from './commands/run.js';
|
|
97
22
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
lines.push(` - ${tactic}`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
if (verbose) {
|
|
106
|
-
if (playbook.guidance.steps && playbook.guidance.steps.length > 0) {
|
|
107
|
-
lines.push('**Steps**:');
|
|
108
|
-
for (let i = 0; i < playbook.guidance.steps.length; i++) {
|
|
109
|
-
lines.push(` ${i + 1}. ${playbook.guidance.steps[i]}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (playbook.applicability.situations.length > 0) {
|
|
114
|
-
lines.push('**When to use**:');
|
|
115
|
-
for (const sit of playbook.applicability.situations) {
|
|
116
|
-
lines.push(` - ${sit}`);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
23
|
+
function showHelp(): void {
|
|
24
|
+
console.log(`
|
|
25
|
+
Cognitive Core CLI - Learning system for AI agents
|
|
119
26
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
for (const anti of playbook.applicability.antiPatterns) {
|
|
123
|
-
lines.push(` - ${anti}`);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
27
|
+
Usage:
|
|
28
|
+
cogcore <command> [options]
|
|
126
29
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
}
|
|
30
|
+
Daemon:
|
|
31
|
+
run Continuously process sessions from SessionLog
|
|
32
|
+
--interval <seconds> Poll interval (default: 30)
|
|
33
|
+
--repo <path> Git repository path (default: cwd)
|
|
34
|
+
--once Process all unprocessed sessions and exit
|
|
134
35
|
|
|
135
|
-
|
|
36
|
+
Commands:
|
|
37
|
+
search <query> Search for playbooks
|
|
38
|
+
get <playbook-id> Get playbook details
|
|
39
|
+
domains List domains
|
|
40
|
+
stats Show system statistics
|
|
41
|
+
store <file> Store a trajectory from JSON file
|
|
42
|
+
init Initialize storage directory
|
|
43
|
+
|
|
44
|
+
Knowledge Bank:
|
|
45
|
+
kb search <query> Search knowledge notes
|
|
46
|
+
kb list [--type <t>] List notes (entities|domains|all)
|
|
47
|
+
kb get <id> Get a knowledge note
|
|
48
|
+
kb stats Knowledge bank statistics
|
|
49
|
+
kb defrag Run knowledge defragmentation
|
|
50
|
+
|
|
51
|
+
Sessions:
|
|
52
|
+
sessions list List discovered sessions
|
|
53
|
+
sessions get <id> Get session details
|
|
54
|
+
sessions query Query sessions with filters
|
|
55
|
+
|
|
56
|
+
Learning Pipeline:
|
|
57
|
+
learn batch Force batch learning
|
|
58
|
+
learn maintenance Force maintenance cycle
|
|
59
|
+
learn stats Pipeline statistics
|
|
60
|
+
|
|
61
|
+
Skills:
|
|
62
|
+
skills list [--tier <t>] List skills (core|domain)
|
|
63
|
+
skills stats Skill library statistics
|
|
64
|
+
skills refresh Refresh skill tiers
|
|
65
|
+
|
|
66
|
+
Global Options:
|
|
67
|
+
--dir <directory> Storage directory (default: .cognitive-core)
|
|
68
|
+
--json Output in JSON format
|
|
69
|
+
--limit <n> Maximum results
|
|
70
|
+
--domain <domain> Filter by domain
|
|
71
|
+
`);
|
|
136
72
|
}
|
|
137
73
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
query: string,
|
|
143
|
-
options: CLIOptions
|
|
144
|
-
): Promise<void> {
|
|
145
|
-
const memory = await getMemorySystem(options);
|
|
74
|
+
async function main(): Promise<void> {
|
|
75
|
+
const args = process.argv.slice(2);
|
|
76
|
+
const parsed = parseArgs(args);
|
|
77
|
+
const { group, command, positional, options } = parsed;
|
|
146
78
|
|
|
147
79
|
try {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
minConfidence: 0.3,
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
if (matches.length === 0) {
|
|
155
|
-
if (options.format === 'json') {
|
|
156
|
-
console.log(JSON.stringify({ results: [], message: 'No playbooks found' }));
|
|
157
|
-
} else {
|
|
158
|
-
console.log('No playbooks found matching your query.');
|
|
159
|
-
console.log('Try different search terms or check available domains with: cognitive-core domains');
|
|
160
|
-
}
|
|
80
|
+
// Command groups
|
|
81
|
+
if (group === 'kb') {
|
|
82
|
+
await kbCommand(command, positional, options);
|
|
161
83
|
return;
|
|
162
84
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const results = matches.map((m) => ({
|
|
166
|
-
id: m.playbook.id,
|
|
167
|
-
name: m.playbook.name,
|
|
168
|
-
score: m.score,
|
|
169
|
-
matchType: m.matchType,
|
|
170
|
-
confidence: m.playbook.confidence,
|
|
171
|
-
strategy: m.playbook.guidance.strategy,
|
|
172
|
-
tactics: m.playbook.guidance.tactics,
|
|
173
|
-
domains: m.playbook.applicability.domains,
|
|
174
|
-
}));
|
|
175
|
-
console.log(JSON.stringify({ results }, null, 2));
|
|
176
|
-
} else {
|
|
177
|
-
console.log(`Found ${matches.length} playbook(s) matching "${query}":\n`);
|
|
178
|
-
for (const match of matches) {
|
|
179
|
-
console.log(`Match: ${Math.round(match.score * 100)}% (${match.matchType})`);
|
|
180
|
-
console.log(formatPlaybook(match.playbook));
|
|
181
|
-
console.log('\n---\n');
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
} finally {
|
|
185
|
-
await memory.close();
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Get playbook details command
|
|
191
|
-
*/
|
|
192
|
-
async function getCommand(
|
|
193
|
-
playbookId: string,
|
|
194
|
-
options: CLIOptions
|
|
195
|
-
): Promise<void> {
|
|
196
|
-
const memory = await getMemorySystem(options);
|
|
197
|
-
|
|
198
|
-
try {
|
|
199
|
-
const playbook = await memory.playbooks.get(playbookId);
|
|
200
|
-
|
|
201
|
-
if (!playbook) {
|
|
202
|
-
if (options.format === 'json') {
|
|
203
|
-
console.log(JSON.stringify({ error: `Playbook not found: ${playbookId}` }));
|
|
204
|
-
} else {
|
|
205
|
-
console.error(`Playbook not found: ${playbookId}`);
|
|
206
|
-
}
|
|
207
|
-
process.exit(1);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
if (options.format === 'json') {
|
|
211
|
-
console.log(JSON.stringify(playbook, null, 2));
|
|
212
|
-
} else {
|
|
213
|
-
console.log(formatPlaybook(playbook, true));
|
|
214
|
-
}
|
|
215
|
-
} finally {
|
|
216
|
-
await memory.close();
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* List domains command
|
|
222
|
-
*/
|
|
223
|
-
async function domainsCommand(options: CLIOptions): Promise<void> {
|
|
224
|
-
const memory = await getMemorySystem(options);
|
|
225
|
-
|
|
226
|
-
try {
|
|
227
|
-
const allPlaybooks = await memory.playbooks.getAll();
|
|
228
|
-
const domains = new Map<string, number>();
|
|
229
|
-
|
|
230
|
-
for (const playbook of allPlaybooks) {
|
|
231
|
-
for (const domain of playbook.applicability.domains) {
|
|
232
|
-
domains.set(domain, (domains.get(domain) || 0) + 1);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
const sortedDomains = Array.from(domains.entries())
|
|
237
|
-
.sort((a, b) => b[1] - a[1]);
|
|
238
|
-
|
|
239
|
-
if (sortedDomains.length === 0) {
|
|
240
|
-
if (options.format === 'json') {
|
|
241
|
-
console.log(JSON.stringify({ domains: [] }));
|
|
242
|
-
} else {
|
|
243
|
-
console.log('No domains found. Add playbooks first.');
|
|
244
|
-
}
|
|
85
|
+
if (group === 'sessions') {
|
|
86
|
+
await sessionsCommand(command, positional, options);
|
|
245
87
|
return;
|
|
246
88
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
domains: sortedDomains.map(([name, count]) => ({ name, playbookCount: count })),
|
|
251
|
-
}, null, 2));
|
|
252
|
-
} else {
|
|
253
|
-
console.log('Available domains:\n');
|
|
254
|
-
for (const [domain, count] of sortedDomains) {
|
|
255
|
-
console.log(` ${domain}: ${count} playbook(s)`);
|
|
256
|
-
}
|
|
89
|
+
if (group === 'learn') {
|
|
90
|
+
await learnCommand(command, positional, options);
|
|
91
|
+
return;
|
|
257
92
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Show stats command
|
|
265
|
-
*/
|
|
266
|
-
async function statsCommand(options: CLIOptions): Promise<void> {
|
|
267
|
-
const memory = await getMemorySystem(options);
|
|
268
|
-
|
|
269
|
-
try {
|
|
270
|
-
const stats = await memory.getStats();
|
|
271
|
-
const capacity = await memory.getCapacityStatus();
|
|
272
|
-
|
|
273
|
-
if (options.format === 'json') {
|
|
274
|
-
console.log(JSON.stringify({ stats, capacity }, null, 2));
|
|
275
|
-
} else {
|
|
276
|
-
console.log('Cognitive Core Statistics\n');
|
|
277
|
-
console.log(`Experiences: ${stats.experienceCount}`);
|
|
278
|
-
console.log(`Playbooks: ${stats.playbookCount}`);
|
|
279
|
-
console.log(`Meta-observations: ${stats.metaObservationCount}`);
|
|
280
|
-
console.log('');
|
|
281
|
-
console.log('Capacity:');
|
|
282
|
-
console.log(` Experiences: ${capacity.experiences.current}/${capacity.experiences.limit}`);
|
|
283
|
-
console.log(` Playbooks: ${capacity.playbooks.current}/${capacity.playbooks.limit}`);
|
|
284
|
-
console.log(` Pruning enabled: ${capacity.pruningEnabled}`);
|
|
93
|
+
if (group === 'skills') {
|
|
94
|
+
await skillsCommand(command, positional, options);
|
|
95
|
+
return;
|
|
285
96
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
/**
|
|
292
|
-
* Store trajectory command
|
|
293
|
-
*/
|
|
294
|
-
async function storeCommand(
|
|
295
|
-
trajectoryFile: string,
|
|
296
|
-
options: CLIOptions
|
|
297
|
-
): Promise<void> {
|
|
298
|
-
const memory = await getMemorySystem(options);
|
|
299
|
-
const pipeline = createLearningPipeline(memory);
|
|
300
|
-
|
|
301
|
-
try {
|
|
302
|
-
// Read and parse trajectory file
|
|
303
|
-
const content = await fs.readFile(trajectoryFile, 'utf-8');
|
|
304
|
-
const trajectory: Trajectory = JSON.parse(content);
|
|
305
|
-
|
|
306
|
-
// Process the trajectory
|
|
307
|
-
const result = await pipeline.processTrajectory(trajectory);
|
|
308
|
-
|
|
309
|
-
if (options.format === 'json') {
|
|
310
|
-
console.log(JSON.stringify({
|
|
311
|
-
stored: result.stored,
|
|
312
|
-
trajectoryId: result.trajectoryId,
|
|
313
|
-
analysis: {
|
|
314
|
-
success: result.analysis.success,
|
|
315
|
-
keySteps: result.analysis.keySteps.length,
|
|
316
|
-
errorPatterns: result.analysis.errorPatterns.length,
|
|
317
|
-
abstractable: result.analysis.abstractable,
|
|
318
|
-
},
|
|
319
|
-
}, null, 2));
|
|
320
|
-
} else {
|
|
321
|
-
console.log(`Trajectory stored: ${result.trajectoryId}`);
|
|
322
|
-
console.log(`Success: ${result.analysis.success}`);
|
|
323
|
-
console.log(`Key steps: ${result.analysis.keySteps.length}`);
|
|
324
|
-
console.log(`Abstractable: ${result.analysis.abstractable}`);
|
|
325
|
-
|
|
326
|
-
if (result.analysis.errorPatterns.length > 0) {
|
|
327
|
-
console.log(`Error patterns detected: ${result.analysis.errorPatterns.map((p) => p.type).join(', ')}`);
|
|
328
|
-
}
|
|
97
|
+
if (group === 'run') {
|
|
98
|
+
await runCommand(options);
|
|
99
|
+
return;
|
|
329
100
|
}
|
|
330
|
-
} finally {
|
|
331
|
-
await memory.close();
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
101
|
|
|
335
|
-
|
|
336
|
-
* Initialize command
|
|
337
|
-
*/
|
|
338
|
-
async function initCommand(options: CLIOptions): Promise<void> {
|
|
339
|
-
const dir = options.dir || DEFAULT_STORAGE_DIR;
|
|
340
|
-
|
|
341
|
-
// Create directory if it doesn't exist
|
|
342
|
-
await fs.mkdir(dir, { recursive: true });
|
|
343
|
-
|
|
344
|
-
// Initialize memory system
|
|
345
|
-
const memory = createMemorySystem(dir);
|
|
346
|
-
await memory.init();
|
|
347
|
-
await memory.close();
|
|
348
|
-
|
|
349
|
-
if (options.format === 'json') {
|
|
350
|
-
console.log(JSON.stringify({ initialized: true, directory: dir }));
|
|
351
|
-
} else {
|
|
352
|
-
console.log(`Cognitive Core initialized at: ${dir}`);
|
|
353
|
-
console.log('');
|
|
354
|
-
console.log('Next steps:');
|
|
355
|
-
console.log(' 1. Store trajectories: cognitive-core store <trajectory.json>');
|
|
356
|
-
console.log(' 2. Search playbooks: cognitive-core search "your query"');
|
|
357
|
-
console.log(' 3. View stats: cognitive-core stats');
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Show help
|
|
363
|
-
*/
|
|
364
|
-
function showHelp(): void {
|
|
365
|
-
console.log(`
|
|
366
|
-
Cognitive Core CLI - Learning system for AI agents
|
|
367
|
-
|
|
368
|
-
Usage:
|
|
369
|
-
cognitive-core <command> [options]
|
|
370
|
-
|
|
371
|
-
Commands:
|
|
372
|
-
search <query> Search for playbooks matching a query
|
|
373
|
-
get <playbook-id> Get detailed information about a specific playbook
|
|
374
|
-
domains List all available domains
|
|
375
|
-
stats Show memory statistics
|
|
376
|
-
store <file> Store a trajectory from a JSON file
|
|
377
|
-
init Initialize the storage directory
|
|
378
|
-
|
|
379
|
-
Options:
|
|
380
|
-
--dir <directory> Storage directory (default: .cognitive-core)
|
|
381
|
-
--domain <domain> Filter search by domain
|
|
382
|
-
--limit <n> Maximum results for search (default: 5)
|
|
383
|
-
--format json Output in JSON format
|
|
384
|
-
--json Shorthand for --format json
|
|
385
|
-
|
|
386
|
-
Examples:
|
|
387
|
-
cognitive-core search "fix typescript errors"
|
|
388
|
-
cognitive-core search "write tests" --domain testing --limit 3
|
|
389
|
-
cognitive-core get playbook-abc123
|
|
390
|
-
cognitive-core domains
|
|
391
|
-
cognitive-core stats --json
|
|
392
|
-
cognitive-core store ./trajectory.json
|
|
393
|
-
cognitive-core init --dir ./my-memory
|
|
394
|
-
`);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* Main entry point
|
|
399
|
-
*/
|
|
400
|
-
async function main(): Promise<void> {
|
|
401
|
-
const args = process.argv.slice(2);
|
|
402
|
-
const { command, positional, options } = parseArgs(args);
|
|
403
|
-
|
|
404
|
-
try {
|
|
102
|
+
// Legacy commands (group is empty)
|
|
405
103
|
switch (command) {
|
|
406
104
|
case 'search':
|
|
407
105
|
if (!positional[0]) {
|
|
408
106
|
console.error('Error: search requires a query');
|
|
409
|
-
console.error('Usage:
|
|
107
|
+
console.error('Usage: cogcore search <query>');
|
|
410
108
|
process.exit(1);
|
|
411
109
|
}
|
|
412
110
|
await searchCommand(positional[0], options);
|
|
@@ -415,7 +113,7 @@ async function main(): Promise<void> {
|
|
|
415
113
|
case 'get':
|
|
416
114
|
if (!positional[0]) {
|
|
417
115
|
console.error('Error: get requires a playbook ID');
|
|
418
|
-
console.error('Usage:
|
|
116
|
+
console.error('Usage: cogcore get <playbook-id>');
|
|
419
117
|
process.exit(1);
|
|
420
118
|
}
|
|
421
119
|
await getCommand(positional[0], options);
|
|
@@ -432,7 +130,7 @@ async function main(): Promise<void> {
|
|
|
432
130
|
case 'store':
|
|
433
131
|
if (!positional[0]) {
|
|
434
132
|
console.error('Error: store requires a trajectory file');
|
|
435
|
-
console.error('Usage:
|
|
133
|
+
console.error('Usage: cogcore store <trajectory.json>');
|
|
436
134
|
process.exit(1);
|
|
437
135
|
}
|
|
438
136
|
await storeCommand(positional[0], options);
|
|
@@ -456,13 +154,7 @@ async function main(): Promise<void> {
|
|
|
456
154
|
process.exit(command ? 1 : 0);
|
|
457
155
|
}
|
|
458
156
|
} catch (error) {
|
|
459
|
-
|
|
460
|
-
console.log(JSON.stringify({
|
|
461
|
-
error: error instanceof Error ? error.message : String(error),
|
|
462
|
-
}));
|
|
463
|
-
} else {
|
|
464
|
-
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
465
|
-
}
|
|
157
|
+
outputError(error, options);
|
|
466
158
|
process.exit(1);
|
|
467
159
|
}
|
|
468
160
|
}
|