cognitive-core 0.1.2 → 0.2.1
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 +111 -2
- package/.sessionlog/settings.json +4 -0
- 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 +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -6
- 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 +311 -0
- package/dist/learning/unified-pipeline.d.ts.map +1 -0
- package/dist/learning/unified-pipeline.js +844 -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 +43 -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/efficacy-toolkit.d.ts +164 -0
- package/dist/workspace/efficacy-toolkit.d.ts.map +1 -0
- package/dist/workspace/efficacy-toolkit.js +281 -0
- package/dist/workspace/efficacy-toolkit.js.map +1 -0
- package/dist/workspace/index.d.ts +2 -1
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +3 -1
- package/dist/workspace/index.js.map +1 -1
- 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/templates/index.d.ts +3 -0
- package/dist/workspace/templates/index.d.ts.map +1 -1
- package/dist/workspace/templates/index.js +6 -0
- package/dist/workspace/templates/index.js.map +1 -1
- package/dist/workspace/templates/playbook-decay-detection.d.ts +46 -0
- package/dist/workspace/templates/playbook-decay-detection.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-decay-detection.js +197 -0
- package/dist/workspace/templates/playbook-decay-detection.js.map +1 -0
- package/dist/workspace/templates/playbook-efficacy-audit.d.ts +46 -0
- package/dist/workspace/templates/playbook-efficacy-audit.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-efficacy-audit.js +160 -0
- package/dist/workspace/templates/playbook-efficacy-audit.js.map +1 -0
- package/dist/workspace/templates/playbook-lifecycle-review.d.ts +51 -0
- package/dist/workspace/templates/playbook-lifecycle-review.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-lifecycle-review.js +187 -0
- package/dist/workspace/templates/playbook-lifecycle-review.js.map +1 -0
- 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 +12 -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 +136 -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 +66 -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 +1191 -0
- package/src/memory/candidate-retrieval.ts +72 -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/efficacy-toolkit.ts +496 -0
- package/src/workspace/index.ts +29 -0
- package/src/workspace/runner.ts +3 -3
- package/src/workspace/templates/index.ts +24 -0
- package/src/workspace/templates/playbook-decay-detection.ts +272 -0
- package/src/workspace/templates/playbook-efficacy-audit.ts +246 -0
- package/src/workspace/templates/playbook-lifecycle-review.ts +274 -0
- 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/fixtures/behavioral-trajectories.ts +210 -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/pipeline-data-correctness.test.ts +794 -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/meta-learner.test.ts +418 -0
- package/tests/learning/pipeline-memory-updates.test.ts +721 -0
- package/tests/learning/reflexion-generator.test.ts +411 -0
- package/tests/learning/trajectory-sources.test.ts +12 -4
- package/tests/learning/unified-pipeline-efficacy.test.ts +232 -0
- package/tests/learning/unified-pipeline.test.ts +322 -0
- package/tests/mcp/playbook-server.test.ts +6 -1
- package/tests/memory/candidate-retrieval.test.ts +167 -0
- 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/meta.test.ts +399 -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 +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/evaluator.test.ts +257 -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/verification-runner.test.ts +357 -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/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/error-classifier.test.ts +149 -0
- package/tests/utils/partitioned-store.test.ts +230 -0
- package/tests/utils/trajectory-helpers.test.ts +163 -0
- package/tests/workspace/efficacy-toolkit.test.ts +404 -0
- package/tests/workspace/full-flow.test.ts +10 -4
- package/tests/workspace/runner.test.ts +10 -4
- package/tests/workspace/templates/playbook-efficacy.test.ts +377 -0
- 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
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReflexionGenerator — Generates structured self-reflection from completed trajectories.
|
|
3
|
+
*
|
|
4
|
+
* Two modes:
|
|
5
|
+
* - **heuristic** (default, no LLM): Extracts patterns, tool names, file paths,
|
|
6
|
+
* error messages, and strategy assessments from trajectory data.
|
|
7
|
+
* - **agentic** (optional): Uses LLM via ComputeProvider for deeper analysis.
|
|
8
|
+
* Falls back to heuristic if LLM is unavailable.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type { Trajectory, ReflexionEpisode } from '../types/index.js';
|
|
12
|
+
import type { PlaybookMatch } from '../memory/playbook.js';
|
|
13
|
+
import { classifyErrorType } from '../utils/error-classifier.js';
|
|
14
|
+
import { detectRepeatedActions, extractToolNames } from '../utils/trajectory-helpers.js';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for ReflexionGenerator
|
|
18
|
+
*/
|
|
19
|
+
export interface ReflexionGeneratorConfig {
|
|
20
|
+
/** Generation mode: 'heuristic' (default) or 'agentic' */
|
|
21
|
+
mode?: 'heuristic' | 'agentic';
|
|
22
|
+
/** Max length for taskSummary (default: 200) */
|
|
23
|
+
maxSummaryLength?: number;
|
|
24
|
+
/** Max number of key insights to extract (default: 5) */
|
|
25
|
+
maxInsights?: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* ReflexionGenerator — creates ReflexionEpisode from trajectory + matched playbooks
|
|
30
|
+
*/
|
|
31
|
+
export class ReflexionGenerator {
|
|
32
|
+
private config: Required<ReflexionGeneratorConfig>;
|
|
33
|
+
|
|
34
|
+
constructor(config?: ReflexionGeneratorConfig) {
|
|
35
|
+
this.config = {
|
|
36
|
+
mode: config?.mode ?? 'heuristic',
|
|
37
|
+
maxSummaryLength: config?.maxSummaryLength ?? 200,
|
|
38
|
+
maxInsights: config?.maxInsights ?? 5,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Generate a reflexion episode from a completed trajectory.
|
|
44
|
+
*/
|
|
45
|
+
async generate(
|
|
46
|
+
trajectory: Trajectory,
|
|
47
|
+
matchedPlaybooks?: PlaybookMatch[]
|
|
48
|
+
): Promise<ReflexionEpisode> {
|
|
49
|
+
// Currently only heuristic mode is implemented
|
|
50
|
+
return this.generateHeuristic(trajectory, matchedPlaybooks ?? []);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Heuristic mode — no LLM calls, pure pattern extraction.
|
|
55
|
+
*/
|
|
56
|
+
private generateHeuristic(
|
|
57
|
+
trajectory: Trajectory,
|
|
58
|
+
matchedPlaybooks: PlaybookMatch[]
|
|
59
|
+
): ReflexionEpisode {
|
|
60
|
+
const outcome = this.mapOutcome(trajectory);
|
|
61
|
+
const taskSummary = trajectory.task.description.slice(0, this.config.maxSummaryLength);
|
|
62
|
+
const selfCritique = this.extractSelfCritique(trajectory);
|
|
63
|
+
const keyInsights = this.extractKeyInsights(trajectory);
|
|
64
|
+
const strategyAssessment = this.assessStrategy(trajectory, matchedPlaybooks);
|
|
65
|
+
const suggestedPlaybookUpdates = this.suggestPlaybookUpdates(
|
|
66
|
+
trajectory,
|
|
67
|
+
matchedPlaybooks
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
return {
|
|
71
|
+
id: crypto.randomUUID(),
|
|
72
|
+
trajectoryId: trajectory.id,
|
|
73
|
+
taskSummary,
|
|
74
|
+
outcome,
|
|
75
|
+
selfCritique,
|
|
76
|
+
keyInsights,
|
|
77
|
+
strategyAssessment,
|
|
78
|
+
suggestedPlaybookUpdates,
|
|
79
|
+
domain: trajectory.task.domain ?? 'general',
|
|
80
|
+
createdAt: new Date(),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Map trajectory outcome to reflexion outcome label.
|
|
86
|
+
*/
|
|
87
|
+
private mapOutcome(trajectory: Trajectory): 'success' | 'partial' | 'failure' {
|
|
88
|
+
if (trajectory.outcome.success) return 'success';
|
|
89
|
+
if (
|
|
90
|
+
trajectory.outcome.partialScore !== undefined &&
|
|
91
|
+
trajectory.outcome.partialScore > 0
|
|
92
|
+
) {
|
|
93
|
+
return 'partial';
|
|
94
|
+
}
|
|
95
|
+
return 'failure';
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Extract self-critique from the trajectory.
|
|
100
|
+
* Looks at failed steps, error messages, and wasted actions.
|
|
101
|
+
*/
|
|
102
|
+
private extractSelfCritique(trajectory: Trajectory): string {
|
|
103
|
+
const parts: string[] = [];
|
|
104
|
+
|
|
105
|
+
if (!trajectory.outcome.success) {
|
|
106
|
+
// Summarize what went wrong
|
|
107
|
+
if (trajectory.outcome.errorInfo) {
|
|
108
|
+
parts.push(`Failed with: ${trajectory.outcome.errorInfo.slice(0, 150)}`);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Count steps with low attribution scores (wasted effort)
|
|
112
|
+
const lowAttributionSteps = trajectory.steps.filter(
|
|
113
|
+
(s) => s.attributionScore !== undefined && s.attributionScore < 0.2
|
|
114
|
+
);
|
|
115
|
+
if (lowAttributionSteps.length > 0) {
|
|
116
|
+
parts.push(
|
|
117
|
+
`${lowAttributionSteps.length} of ${trajectory.steps.length} steps had low attribution (wasted effort)`
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
} else {
|
|
121
|
+
// Successful — note efficiency
|
|
122
|
+
const stepCount = trajectory.steps.length;
|
|
123
|
+
if (stepCount > 10) {
|
|
124
|
+
parts.push(`Succeeded but took ${stepCount} steps — may be overcomplicating`);
|
|
125
|
+
} else {
|
|
126
|
+
parts.push(`Completed efficiently in ${stepCount} steps`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Look for repeated actions (potential thrashing)
|
|
131
|
+
const repeated = detectRepeatedActions(trajectory.steps, 3);
|
|
132
|
+
if (repeated.length > 0) {
|
|
133
|
+
parts.push(
|
|
134
|
+
`Repeated actions detected: ${repeated.map(({ action, count }) => `"${action.slice(0, 30)}..." (${count}x)`).join(', ')}`
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return parts.join('. ') || 'No specific critique identified';
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Extract key insights from the trajectory.
|
|
143
|
+
* Pulls tool names, file paths, and notable observations.
|
|
144
|
+
*/
|
|
145
|
+
private extractKeyInsights(trajectory: Trajectory): string[] {
|
|
146
|
+
const insights: string[] = [];
|
|
147
|
+
|
|
148
|
+
// Extract tool names from steps
|
|
149
|
+
const toolNames = extractToolNames(trajectory.steps);
|
|
150
|
+
if (toolNames.size > 0) {
|
|
151
|
+
insights.push(`Tools used: ${[...toolNames].join(', ')}`);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Extract file paths from observations
|
|
155
|
+
const filePaths = new Set<string>();
|
|
156
|
+
for (const step of trajectory.steps) {
|
|
157
|
+
const pathMatches = step.observation?.match(
|
|
158
|
+
/(?:\/[\w.-]+)+(?:\.[\w]+)/g
|
|
159
|
+
);
|
|
160
|
+
if (pathMatches) {
|
|
161
|
+
for (const p of pathMatches.slice(0, 5)) {
|
|
162
|
+
filePaths.add(p);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (filePaths.size > 0) {
|
|
167
|
+
insights.push(`Key files: ${[...filePaths].slice(0, 5).join(', ')}`);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Note error patterns for failed trajectories
|
|
171
|
+
if (!trajectory.outcome.success && trajectory.outcome.errorInfo) {
|
|
172
|
+
const errorType = classifyErrorType(trajectory.outcome.errorInfo);
|
|
173
|
+
if (errorType) {
|
|
174
|
+
insights.push(`Error pattern: ${errorType}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Note step count and efficiency
|
|
179
|
+
const highAttributionSteps = trajectory.steps.filter(
|
|
180
|
+
(s) => s.attributionScore !== undefined && s.attributionScore > 0.7
|
|
181
|
+
);
|
|
182
|
+
if (highAttributionSteps.length > 0) {
|
|
183
|
+
insights.push(
|
|
184
|
+
`${highAttributionSteps.length} high-impact steps identified`
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return insights.slice(0, this.config.maxInsights);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Assess the strategy by comparing matched playbooks against the outcome.
|
|
194
|
+
*/
|
|
195
|
+
private assessStrategy(
|
|
196
|
+
trajectory: Trajectory,
|
|
197
|
+
matchedPlaybooks: PlaybookMatch[]
|
|
198
|
+
): string {
|
|
199
|
+
if (matchedPlaybooks.length === 0) {
|
|
200
|
+
if (trajectory.outcome.success) {
|
|
201
|
+
return 'Succeeded without playbook guidance — potential new playbook candidate';
|
|
202
|
+
}
|
|
203
|
+
return 'Failed without playbook guidance — no applicable playbooks found';
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
const topMatch = matchedPlaybooks[0];
|
|
207
|
+
const matchScore = Math.round(topMatch.score * 100);
|
|
208
|
+
|
|
209
|
+
if (trajectory.outcome.success) {
|
|
210
|
+
return `Succeeded with playbook "${topMatch.playbook.name}" (${matchScore}% match). Strategy confirmed.`;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Failure with a matched playbook
|
|
214
|
+
return `Failed despite playbook "${topMatch.playbook.name}" (${matchScore}% match). Playbook may need refinement for this context.`;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Suggest playbook updates based on the trajectory outcome.
|
|
219
|
+
*/
|
|
220
|
+
private suggestPlaybookUpdates(
|
|
221
|
+
trajectory: Trajectory,
|
|
222
|
+
matchedPlaybooks: PlaybookMatch[]
|
|
223
|
+
): string[] {
|
|
224
|
+
const suggestions: string[] = [];
|
|
225
|
+
|
|
226
|
+
if (trajectory.outcome.success && matchedPlaybooks.length === 0) {
|
|
227
|
+
// Successful without playbooks — suggest creating one
|
|
228
|
+
suggestions.push(
|
|
229
|
+
`Create new playbook for: ${trajectory.task.description.slice(0, 100)}`
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
if (!trajectory.outcome.success) {
|
|
234
|
+
// Failed — suggest updates to matched playbooks
|
|
235
|
+
for (const match of matchedPlaybooks) {
|
|
236
|
+
if (trajectory.outcome.errorInfo) {
|
|
237
|
+
suggestions.push(
|
|
238
|
+
`Add anti-pattern to "${match.playbook.name}": ${trajectory.outcome.errorInfo.slice(0, 80)}`
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// Suggest refinement based on error context
|
|
243
|
+
const domain = trajectory.task.domain;
|
|
244
|
+
if (domain) {
|
|
245
|
+
suggestions.push(
|
|
246
|
+
`Add refinement to "${match.playbook.name}" for domain "${domain}"`
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// If no playbooks matched a failure, suggest broader coverage
|
|
252
|
+
if (matchedPlaybooks.length === 0 && trajectory.outcome.errorInfo) {
|
|
253
|
+
const errorType = classifyErrorType(trajectory.outcome.errorInfo);
|
|
254
|
+
if (errorType) {
|
|
255
|
+
suggestions.push(
|
|
256
|
+
`Create error-handling playbook for pattern: ${errorType}`
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return suggestions;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Create a ReflexionGenerator instance
|
|
268
|
+
*/
|
|
269
|
+
export function createReflexionGenerator(
|
|
270
|
+
config?: ReflexionGeneratorConfig
|
|
271
|
+
): ReflexionGenerator {
|
|
272
|
+
return new ReflexionGenerator(config);
|
|
273
|
+
}
|
|
@@ -9,31 +9,36 @@ import type { Task } from '../../types/task.js';
|
|
|
9
9
|
import type { Outcome } from '../../types/outcome.js';
|
|
10
10
|
import type { Step } from '../../types/step.js';
|
|
11
11
|
|
|
12
|
-
// ───
|
|
13
|
-
// Bridges session-bank
|
|
14
|
-
// learning pipeline
|
|
12
|
+
// ─── SessionTrajectorySource ────────────────────────────────────────
|
|
13
|
+
// Bridges session-bank checkpoint data (SessionLog) into
|
|
14
|
+
// cognitive-core's learning pipeline via the TrajectorySource
|
|
15
|
+
// interface.
|
|
15
16
|
//
|
|
16
17
|
// Synthesis converts SessionRecord → Trajectory:
|
|
17
18
|
// - Task description from summary.intent or first user message
|
|
18
19
|
// - Steps from assistant tool_use blocks (ReAct pattern)
|
|
19
20
|
// - Outcome inferred from summary.outcome keywords or heuristic
|
|
20
|
-
// - Token counts direct from
|
|
21
|
+
// - Token counts direct from checkpoint metadata
|
|
21
22
|
// ─────────────────────────────────────────────────────────────────────
|
|
22
23
|
|
|
23
|
-
export interface
|
|
24
|
+
export interface SessionSynthesisOptions {
|
|
24
25
|
/** Domain to assign (default: inferred from files) */
|
|
25
26
|
domain?: string;
|
|
26
27
|
/** How to determine success/failure (default: 'summary') */
|
|
27
28
|
outcomeStrategy?: 'summary' | 'heuristic';
|
|
29
|
+
/** Source name for trajectory IDs and metadata (default: auto-detected from branch) */
|
|
30
|
+
sourceName?: string;
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
export class
|
|
31
|
-
readonly name
|
|
33
|
+
export class SessionTrajectorySource implements TrajectorySource {
|
|
34
|
+
readonly name: string;
|
|
32
35
|
|
|
33
36
|
constructor(
|
|
34
37
|
private sessionBank: SessionBank,
|
|
35
|
-
private options?:
|
|
36
|
-
) {
|
|
38
|
+
private options?: SessionSynthesisOptions,
|
|
39
|
+
) {
|
|
40
|
+
this.name = options?.sourceName ?? 'session';
|
|
41
|
+
}
|
|
37
42
|
|
|
38
43
|
async load(
|
|
39
44
|
options?: TrajectoryLoadOptions,
|
|
@@ -66,11 +71,12 @@ export class EntireTrajectorySource implements TrajectorySource {
|
|
|
66
71
|
}
|
|
67
72
|
|
|
68
73
|
/**
|
|
69
|
-
* Convert
|
|
74
|
+
* Convert a SessionRecord into a cognitive-core Trajectory.
|
|
70
75
|
*/
|
|
71
76
|
synthesize(session: SessionRecord): Trajectory {
|
|
77
|
+
const sourceName = this.resolveSourceName(session);
|
|
72
78
|
return {
|
|
73
|
-
id:
|
|
79
|
+
id: `${sourceName}-${session.checkpointId}-${session.sessionId}`,
|
|
74
80
|
task: this.extractTask(session),
|
|
75
81
|
steps: this.extractSteps(session),
|
|
76
82
|
outcome: this.inferOutcome(session),
|
|
@@ -80,7 +86,7 @@ export class EntireTrajectorySource implements TrajectorySource {
|
|
|
80
86
|
totalTokens: session.tokenUsage.total,
|
|
81
87
|
wallTimeSeconds: 0,
|
|
82
88
|
metadata: {
|
|
83
|
-
source:
|
|
89
|
+
source: sourceName,
|
|
84
90
|
checkpointId: session.checkpointId,
|
|
85
91
|
sessionId: session.sessionId,
|
|
86
92
|
branch: session.metadata.branch,
|
|
@@ -93,6 +99,11 @@ export class EntireTrajectorySource implements TrajectorySource {
|
|
|
93
99
|
|
|
94
100
|
// ── Private helpers ──────────────────────────────────────────
|
|
95
101
|
|
|
102
|
+
private resolveSourceName(_session: SessionRecord): string {
|
|
103
|
+
if (this.options?.sourceName) return this.options.sourceName;
|
|
104
|
+
return 'sessionlog';
|
|
105
|
+
}
|
|
106
|
+
|
|
96
107
|
private extractTask(session: SessionRecord): Task {
|
|
97
108
|
const description =
|
|
98
109
|
session.summary?.intent ??
|
|
@@ -182,7 +193,7 @@ export class EntireTrajectorySource implements TrajectorySource {
|
|
|
182
193
|
success,
|
|
183
194
|
partialScore: success ? 1.0 : 0.0,
|
|
184
195
|
verificationDetails: {
|
|
185
|
-
|
|
196
|
+
sessionOutcome: session.summary.outcome,
|
|
186
197
|
frictionPoints: session.summary.frictionPoints,
|
|
187
198
|
openItems: session.summary.openItems,
|
|
188
199
|
},
|
|
@@ -2,8 +2,8 @@ export { InMemoryTrajectorySource } from './in-memory.js';
|
|
|
2
2
|
export { FileTrajectorySource } from './file.js';
|
|
3
3
|
export { PipelineTrajectorySource } from './pipeline.js';
|
|
4
4
|
export {
|
|
5
|
-
|
|
6
|
-
type
|
|
5
|
+
SessionTrajectorySource,
|
|
6
|
+
type SessionSynthesisOptions,
|
|
7
7
|
} from './entire.js';
|
|
8
8
|
export {
|
|
9
9
|
DataclawTrajectorySource,
|
|
@@ -3,13 +3,13 @@ import type {
|
|
|
3
3
|
TrajectoryWithAnalysis,
|
|
4
4
|
TrajectoryLoadOptions,
|
|
5
5
|
} from '../../types/trajectory-source.js';
|
|
6
|
-
import type {
|
|
6
|
+
import type { UnifiedLearningPipeline } from '../unified-pipeline.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* PipelineTrajectorySource — reads from
|
|
9
|
+
* PipelineTrajectorySource — reads from UnifiedLearningPipeline's accumulated trajectories.
|
|
10
10
|
*
|
|
11
11
|
* Read-only view: does not clear the pipeline's accumulator.
|
|
12
|
-
* The pipeline's `
|
|
12
|
+
* The pipeline's `runBatch()` controls clearing.
|
|
13
13
|
*
|
|
14
14
|
* @example
|
|
15
15
|
* ```typescript
|
|
@@ -20,9 +20,9 @@ import type { LearningPipeline } from '../pipeline.js';
|
|
|
20
20
|
*/
|
|
21
21
|
export class PipelineTrajectorySource implements TrajectorySource {
|
|
22
22
|
readonly name = 'pipeline';
|
|
23
|
-
private pipeline:
|
|
23
|
+
private pipeline: UnifiedLearningPipeline;
|
|
24
24
|
|
|
25
|
-
constructor(pipeline:
|
|
25
|
+
constructor(pipeline: UnifiedLearningPipeline) {
|
|
26
26
|
this.pipeline = pipeline;
|
|
27
27
|
}
|
|
28
28
|
|