cognitive-core 0.1.0 → 0.1.2
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/README.md +524 -254
- package/dist/atlas.d.ts +144 -6
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +339 -10
- package/dist/atlas.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/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -6
- package/dist/index.js.map +1 -1
- package/dist/learning/index.d.ts +5 -1
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +8 -2
- package/dist/learning/index.js.map +1 -1
- 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/meta-learner.d.ts +7 -0
- package/dist/learning/meta-learner.d.ts.map +1 -1
- package/dist/learning/meta-learner.js +43 -0
- package/dist/learning/meta-learner.js.map +1 -1
- package/dist/learning/pipeline.d.ts +24 -0
- package/dist/learning/pipeline.d.ts.map +1 -1
- package/dist/learning/pipeline.js +70 -4
- package/dist/learning/pipeline.js.map +1 -1
- 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 +28 -0
- package/dist/learning/trajectory-sources/entire.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/entire.js +182 -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/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 +8 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +10 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/knowledge-bank.d.ts +220 -0
- package/dist/memory/knowledge-bank.d.ts.map +1 -0
- package/dist/memory/knowledge-bank.js +1003 -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/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 +15 -3
- package/dist/memory/system.d.ts.map +1 -1
- package/dist/memory/system.js +46 -8
- 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/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/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 +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/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/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 +39 -0
- package/dist/session-bank/git-reader.d.ts.map +1 -0
- package/dist/session-bank/git-reader.js +165 -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 +39 -0
- package/dist/session-bank/parser.d.ts.map +1 -0
- package/dist/session-bank/parser.js +231 -0
- package/dist/session-bank/parser.js.map +1 -0
- package/dist/session-bank/session-bank.d.ts +35 -0
- package/dist/session-bank/session-bank.d.ts.map +1 -0
- package/dist/session-bank/session-bank.js +326 -0
- package/dist/session-bank/session-bank.js.map +1 -0
- package/dist/session-bank/types.d.ts +129 -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 +197 -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 +207 -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 +1218 -44
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +216 -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 +8 -1
- 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/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/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 +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- 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 +50 -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 +145 -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/DESIGN-workspace-migration.md +1079 -0
- package/docs/PLAN-agentic-workspace-implementation.md +717 -0
- package/docs/PLAN-graph-migration.md +299 -0
- package/docs/PLAN-session-bank-implementation.md +474 -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 +24 -6
- 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/skill-tree/.claude/settings.json +6 -0
- package/references/skill-tree/.sudocode/issues.jsonl +11 -0
- package/references/skill-tree/.sudocode/specs.jsonl +1 -0
- package/references/skill-tree/CLAUDE.md +150 -0
- package/references/skill-tree/README.md +324 -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 +190 -0
- package/references/skill-tree/package-lock.json +1509 -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 +525 -13
- package/src/embeddings/provider.ts +10 -3
- package/src/index.ts +127 -5
- package/src/learning/index.ts +41 -6
- package/src/learning/knowledge-extractor.ts +470 -0
- package/src/learning/meta-learner.ts +54 -0
- package/src/learning/pipeline.ts +87 -8
- 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 +240 -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/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 +45 -0
- package/src/memory/knowledge-bank.ts +1260 -0
- package/src/memory/knowledge-defrag.ts +329 -0
- package/src/memory/knowledge-graph.ts +361 -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 +61 -8
- package/src/memory/team-experience.ts +604 -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/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 +9 -0
- package/src/search/refinement-loop.ts +106 -12
- package/src/search/team-router.ts +459 -0
- package/src/session-bank/git-reader.ts +190 -0
- package/src/session-bank/index.ts +24 -0
- package/src/session-bank/parser.ts +366 -0
- package/src/session-bank/session-bank.ts +464 -0
- package/src/session-bank/types.ts +173 -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 +223 -0
- package/src/surfacing/sqlite-storage-adapter.ts +301 -0
- package/src/surfacing/team-skill-library.ts +610 -0
- package/src/types/config.ts +252 -0
- package/src/types/dataclaw.ts +99 -0
- package/src/types/huggingface-transformers.d.ts +12 -0
- package/src/types/index.ts +156 -0
- package/src/types/knowledge-graph.ts +246 -0
- package/src/types/knowledge.ts +388 -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/frontmatter.ts +118 -0
- package/src/utils/index.ts +7 -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 +233 -0
- package/tests/atlas-knowledge.test.ts +165 -0
- package/tests/gap-fixes.test.ts +1103 -0
- package/tests/integration/dataclaw-e2e.test.ts +559 -0
- package/tests/integration/e2e.test.ts +407 -0
- package/tests/integration/entire-e2e.test.ts +187 -0
- package/tests/integration/huggingface-e2e.test.ts +627 -0
- package/tests/integration/session-bank.test.ts +225 -0
- package/tests/integration/skill-tree-wiring.test.ts +152 -0
- package/tests/learning/dataclaw-trajectory-source.test.ts +642 -0
- package/tests/learning/entire-trajectory-source.test.ts +380 -0
- package/tests/learning/huggingface-trajectory-source.test.ts +817 -0
- package/tests/learning/knowledge-extractor.test.ts +491 -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 +312 -0
- 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/skill-exporter.test.ts +470 -0
- package/tests/memory/team-experience.test.ts +411 -0
- package/tests/runtime/agent-manager.test.ts +1 -1
- package/tests/runtime/compute-provider.test.ts +288 -0
- package/tests/runtime/delegate.test.ts +349 -0
- package/tests/runtime/macro-agent-backend.test.ts +266 -0
- 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/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 +321 -0
- package/tests/session-bank/session-bank.test.ts +546 -0
- package/tests/surfacing/skill-publisher.test.ts +398 -0
- package/tests/surfacing/sqlite-storage-adapter.test.ts +218 -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/workspace/full-flow.test.ts +839 -0
- package/tests/workspace/manager.test.ts +215 -0
- package/tests/workspace/runner.test.ts +330 -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
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trajectory Analysis Template
|
|
3
|
+
*
|
|
4
|
+
* Replaces the heuristic TrajectoryAnalyzer with workspace-based agentic analysis.
|
|
5
|
+
* Consolidates credit assignment, key step identification, error pattern detection,
|
|
6
|
+
* and abstractability assessment into a single template.
|
|
7
|
+
*
|
|
8
|
+
* - Simple, short successful trajectories → heuristic fallback (zero cost)
|
|
9
|
+
* - Failed or complex trajectories → agent analyzes semantically
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import type { WorkspaceHandle } from 'agent-workspace';
|
|
13
|
+
import type { Trajectory, CreditStrategy } from '../../types/index.js';
|
|
14
|
+
import type { AnalysisResult, ErrorPattern, TrainingExample } from '../../learning/analyzer.js';
|
|
15
|
+
import { createAnalyzer } from '../../learning/analyzer.js';
|
|
16
|
+
import type {
|
|
17
|
+
AgenticTaskTemplate,
|
|
18
|
+
AnalysisComplexity,
|
|
19
|
+
ProcessingContext,
|
|
20
|
+
} from '../types.js';
|
|
21
|
+
import type { ComputeRequirements } from '../../runtime/compute-provider.js';
|
|
22
|
+
|
|
23
|
+
// ============================================================
|
|
24
|
+
// Input / Output Types
|
|
25
|
+
// ============================================================
|
|
26
|
+
|
|
27
|
+
export interface TrajectoryAnalysisInput {
|
|
28
|
+
trajectory: Trajectory;
|
|
29
|
+
creditStrategy: CreditStrategy;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Output is AnalysisResult (reused from learning/analyzer.ts)
|
|
33
|
+
// No new types needed.
|
|
34
|
+
|
|
35
|
+
// ============================================================
|
|
36
|
+
// Template Implementation
|
|
37
|
+
// ============================================================
|
|
38
|
+
|
|
39
|
+
export const trajectoryAnalysisTemplate: AgenticTaskTemplate<
|
|
40
|
+
TrajectoryAnalysisInput,
|
|
41
|
+
AnalysisResult
|
|
42
|
+
> = {
|
|
43
|
+
taskType: 'trajectory-analysis',
|
|
44
|
+
domain: 'trajectory-analysis',
|
|
45
|
+
description: 'Analyze agent trajectory for credit assignment, key steps, error patterns, and abstractability',
|
|
46
|
+
|
|
47
|
+
// === COMPLEXITY ASSESSMENT ===
|
|
48
|
+
|
|
49
|
+
assessComplexity(input: TrajectoryAnalysisInput): AnalysisComplexity {
|
|
50
|
+
const { trajectory } = input;
|
|
51
|
+
|
|
52
|
+
// Short successful trajectories → heuristic (existing analyzer is fine)
|
|
53
|
+
if (trajectory.steps.length <= 5 && trajectory.outcome.success) {
|
|
54
|
+
return 'heuristic';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Very short trajectories (even if failed) → lightweight
|
|
58
|
+
if (trajectory.steps.length <= 3) {
|
|
59
|
+
return 'lightweight';
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Failed trajectories benefit most from semantic analysis
|
|
63
|
+
if (!trajectory.outcome.success) {
|
|
64
|
+
return 'standard';
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Long trajectories need agent to identify what actually mattered
|
|
68
|
+
if (trajectory.steps.length > 20) {
|
|
69
|
+
return 'standard';
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return 'lightweight';
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
// === HEURISTIC FALLBACK ===
|
|
76
|
+
|
|
77
|
+
async heuristicFallback(input: TrajectoryAnalysisInput): Promise<AnalysisResult> {
|
|
78
|
+
const analyzer = createAnalyzer(input.creditStrategy);
|
|
79
|
+
return analyzer.analyze(input.trajectory);
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
// === WORKSPACE SETUP ===
|
|
83
|
+
|
|
84
|
+
async prepareWorkspace(
|
|
85
|
+
input: TrajectoryAnalysisInput,
|
|
86
|
+
handle: WorkspaceHandle
|
|
87
|
+
): Promise<void> {
|
|
88
|
+
// Write trajectory context
|
|
89
|
+
const { trajectory } = input;
|
|
90
|
+
await handle.writeJson('input', 'context.json', {
|
|
91
|
+
taskId: trajectory.task.id,
|
|
92
|
+
taskDomain: trajectory.task.domain,
|
|
93
|
+
taskDescription: trajectory.task.description,
|
|
94
|
+
outcome: {
|
|
95
|
+
success: trajectory.outcome.success,
|
|
96
|
+
partialScore: trajectory.outcome.partialScore,
|
|
97
|
+
errorInfo: trajectory.outcome.errorInfo,
|
|
98
|
+
},
|
|
99
|
+
stepCount: trajectory.steps.length,
|
|
100
|
+
wallTimeSeconds: trajectory.wallTimeSeconds,
|
|
101
|
+
llmCalls: trajectory.llmCalls,
|
|
102
|
+
totalTokens: trajectory.totalTokens,
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// Write steps as JSONL for efficient processing
|
|
106
|
+
await handle.writeJsonl('input', 'steps.jsonl',
|
|
107
|
+
trajectory.steps.map((step, i) => ({
|
|
108
|
+
index: i,
|
|
109
|
+
thought: step.thought,
|
|
110
|
+
action: step.action,
|
|
111
|
+
observation: step.observation,
|
|
112
|
+
metadata: step.metadata,
|
|
113
|
+
}))
|
|
114
|
+
);
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
// === PROMPT ===
|
|
118
|
+
|
|
119
|
+
buildTaskPrompt(input: TrajectoryAnalysisInput): string {
|
|
120
|
+
const { trajectory } = input;
|
|
121
|
+
const outcomeStr = trajectory.outcome.success ? 'SUCCESSFUL' : 'FAILED';
|
|
122
|
+
|
|
123
|
+
return [
|
|
124
|
+
`Analyze this ${outcomeStr} agent trajectory (${trajectory.steps.length} steps, ${trajectory.wallTimeSeconds}s wall time).`,
|
|
125
|
+
'',
|
|
126
|
+
'Read the trajectory from input/context.json and input/steps.jsonl.',
|
|
127
|
+
'',
|
|
128
|
+
'Perform the following analyses:',
|
|
129
|
+
'',
|
|
130
|
+
'1. **Credit Assignment**: For each step, assign an attribution score (0.0 to 1.0)',
|
|
131
|
+
' indicating how much that step contributed to the final outcome.',
|
|
132
|
+
' Consider causal impact, not just proximity to the end.',
|
|
133
|
+
'',
|
|
134
|
+
'2. **Key Steps**: Identify the indices of pivotal steps (attribution >= 0.15).',
|
|
135
|
+
'',
|
|
136
|
+
'3. **Error Patterns**: Detect any error patterns (type, signature, description, optional fix).',
|
|
137
|
+
' Look for: timeouts, missing resources, syntax errors, type errors, repeated actions, loops.',
|
|
138
|
+
'',
|
|
139
|
+
'4. **Abstractability**: Is this trajectory worth extracting patterns from?',
|
|
140
|
+
' Criteria: successful with >= 2 key steps, OR failed with clear error pattern and partial progress.',
|
|
141
|
+
'',
|
|
142
|
+
'5. **Training Examples**: Extract thought→action pairs from key steps.',
|
|
143
|
+
'',
|
|
144
|
+
'Write your analysis to output/analysis.json with this exact schema:',
|
|
145
|
+
'```json',
|
|
146
|
+
'{',
|
|
147
|
+
' "success": boolean,',
|
|
148
|
+
' "keySteps": number[],',
|
|
149
|
+
' "stepAttribution": number[],',
|
|
150
|
+
' "errorPatterns": [{ "type": string, "signature": string, "description": string, "suggestedFix"?: string }],',
|
|
151
|
+
' "abstractable": boolean,',
|
|
152
|
+
' "trainingExamples": [{ "input": string, "output": string, "stepIndex": number }]',
|
|
153
|
+
'}',
|
|
154
|
+
'```',
|
|
155
|
+
].join('\n');
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
// === SKILLS & RESOURCES ===
|
|
159
|
+
|
|
160
|
+
getSkills() {
|
|
161
|
+
return [];
|
|
162
|
+
},
|
|
163
|
+
|
|
164
|
+
getResources() {
|
|
165
|
+
return [];
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
// === OUTPUT ===
|
|
169
|
+
|
|
170
|
+
outputConfig: {
|
|
171
|
+
files: [
|
|
172
|
+
{
|
|
173
|
+
path: 'analysis.json',
|
|
174
|
+
format: 'json' as const,
|
|
175
|
+
required: true,
|
|
176
|
+
description: 'Trajectory analysis result with credit assignment, key steps, error patterns',
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
async collectOutput(handle: WorkspaceHandle): Promise<AnalysisResult> {
|
|
182
|
+
const raw = await handle.readJson('output', 'analysis.json');
|
|
183
|
+
const data = raw as Record<string, unknown>;
|
|
184
|
+
|
|
185
|
+
// Validate and coerce the output into AnalysisResult
|
|
186
|
+
return {
|
|
187
|
+
success: Boolean(data.success),
|
|
188
|
+
keySteps: Array.isArray(data.keySteps) ? data.keySteps.map(Number) : [],
|
|
189
|
+
stepAttribution: Array.isArray(data.stepAttribution)
|
|
190
|
+
? data.stepAttribution.map(Number)
|
|
191
|
+
: [],
|
|
192
|
+
errorPatterns: Array.isArray(data.errorPatterns)
|
|
193
|
+
? (data.errorPatterns as ErrorPattern[])
|
|
194
|
+
: [],
|
|
195
|
+
abstractable: Boolean(data.abstractable),
|
|
196
|
+
trainingExamples: Array.isArray(data.trainingExamples)
|
|
197
|
+
? (data.trainingExamples as TrainingExample[])
|
|
198
|
+
: [],
|
|
199
|
+
};
|
|
200
|
+
},
|
|
201
|
+
|
|
202
|
+
async processOutput(
|
|
203
|
+
_output: AnalysisResult,
|
|
204
|
+
_input: TrajectoryAnalysisInput,
|
|
205
|
+
_context: ProcessingContext
|
|
206
|
+
): Promise<void> {
|
|
207
|
+
// No side effects during analysis — the pipeline handles storage
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
// === COMPUTE ===
|
|
211
|
+
|
|
212
|
+
computeRequirements: {
|
|
213
|
+
mode: 'local',
|
|
214
|
+
complexity: 'lightweight',
|
|
215
|
+
},
|
|
216
|
+
|
|
217
|
+
getComputeRequirements(
|
|
218
|
+
_input: TrajectoryAnalysisInput,
|
|
219
|
+
complexity: AnalysisComplexity
|
|
220
|
+
): ComputeRequirements {
|
|
221
|
+
return {
|
|
222
|
+
mode: 'local',
|
|
223
|
+
complexity,
|
|
224
|
+
// Standard analysis can take a bit longer
|
|
225
|
+
timeout: complexity === 'standard' ? 180_000 : 120_000,
|
|
226
|
+
};
|
|
227
|
+
},
|
|
228
|
+
|
|
229
|
+
// === CONFIG ===
|
|
230
|
+
|
|
231
|
+
agentType: 'claude-code',
|
|
232
|
+
timeout: 120_000,
|
|
233
|
+
captureToolCalls: true,
|
|
234
|
+
};
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Usage Inference Template
|
|
3
|
+
*
|
|
4
|
+
* Replaces the heuristic PlaybookUsageInference with workspace-based
|
|
5
|
+
* semantic matching that determines which injected playbooks were
|
|
6
|
+
* actually followed by the agent.
|
|
7
|
+
*
|
|
8
|
+
* - No playbooks or very few steps → heuristic fallback
|
|
9
|
+
* - Otherwise → agent reads trajectory and judges playbook adherence
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import type { WorkspaceHandle } from 'agent-workspace';
|
|
13
|
+
import type { Trajectory, Playbook } from '../../types/index.js';
|
|
14
|
+
import type { PlaybookUsageResult } from '../../learning/usage-inference.js';
|
|
15
|
+
import { createUsageInference } from '../../learning/usage-inference.js';
|
|
16
|
+
import type {
|
|
17
|
+
AgenticTaskTemplate,
|
|
18
|
+
AnalysisComplexity,
|
|
19
|
+
} from '../types.js';
|
|
20
|
+
|
|
21
|
+
// ============================================================
|
|
22
|
+
// Input / Output Types
|
|
23
|
+
// ============================================================
|
|
24
|
+
|
|
25
|
+
export interface UsageInferenceInput {
|
|
26
|
+
trajectory: Trajectory;
|
|
27
|
+
injectedPlaybooks: Playbook[];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Output: PlaybookUsageResult[] (reused from learning/usage-inference.ts)
|
|
31
|
+
|
|
32
|
+
// ============================================================
|
|
33
|
+
// Template Implementation
|
|
34
|
+
// ============================================================
|
|
35
|
+
|
|
36
|
+
export const usageInferenceTemplate: AgenticTaskTemplate<
|
|
37
|
+
UsageInferenceInput,
|
|
38
|
+
PlaybookUsageResult[]
|
|
39
|
+
> = {
|
|
40
|
+
taskType: 'usage-inference',
|
|
41
|
+
domain: 'usage-inference',
|
|
42
|
+
description: 'Determine which injected playbooks were actually followed',
|
|
43
|
+
|
|
44
|
+
assessComplexity(input: UsageInferenceInput): AnalysisComplexity {
|
|
45
|
+
if (input.injectedPlaybooks.length === 0) return 'heuristic';
|
|
46
|
+
if (input.injectedPlaybooks.length <= 2 && input.trajectory.steps.length <= 10) {
|
|
47
|
+
return 'heuristic';
|
|
48
|
+
}
|
|
49
|
+
return 'lightweight';
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
async heuristicFallback(input: UsageInferenceInput): Promise<PlaybookUsageResult[]> {
|
|
53
|
+
const inference = createUsageInference();
|
|
54
|
+
return inference.inferUsage(input.trajectory, input.injectedPlaybooks);
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
async prepareWorkspace(
|
|
58
|
+
input: UsageInferenceInput,
|
|
59
|
+
handle: WorkspaceHandle
|
|
60
|
+
): Promise<void> {
|
|
61
|
+
const { trajectory, injectedPlaybooks } = input;
|
|
62
|
+
|
|
63
|
+
// Write trajectory summary + steps
|
|
64
|
+
await handle.writeJson('input', 'trajectory.json', {
|
|
65
|
+
taskDescription: trajectory.task.description,
|
|
66
|
+
domain: trajectory.task.domain,
|
|
67
|
+
success: trajectory.outcome.success,
|
|
68
|
+
stepCount: trajectory.steps.length,
|
|
69
|
+
steps: trajectory.steps.map((step, i) => ({
|
|
70
|
+
index: i,
|
|
71
|
+
thought: step.thought,
|
|
72
|
+
action: step.action,
|
|
73
|
+
observation: step.observation?.slice(0, 300),
|
|
74
|
+
})),
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// Write injected playbooks
|
|
78
|
+
await handle.writeJson('input', 'playbooks.json',
|
|
79
|
+
injectedPlaybooks.map(pb => ({
|
|
80
|
+
id: pb.id,
|
|
81
|
+
name: pb.name,
|
|
82
|
+
strategy: pb.guidance.strategy,
|
|
83
|
+
tactics: pb.guidance.tactics,
|
|
84
|
+
steps: pb.guidance.steps,
|
|
85
|
+
successIndicators: pb.verification.successIndicators,
|
|
86
|
+
}))
|
|
87
|
+
);
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
buildTaskPrompt(input: UsageInferenceInput): string {
|
|
91
|
+
return [
|
|
92
|
+
`Analyze whether the agent followed ${input.injectedPlaybooks.length} injected playbooks.`,
|
|
93
|
+
'',
|
|
94
|
+
'Read input/trajectory.json for the agent execution trace.',
|
|
95
|
+
'Read input/playbooks.json for the playbooks that were injected.',
|
|
96
|
+
'',
|
|
97
|
+
'For each playbook, determine:',
|
|
98
|
+
'1. Was the playbook guidance followed? Look for tactical alignment, not literal matches.',
|
|
99
|
+
'2. How confident are you? (0.0-1.0)',
|
|
100
|
+
'3. Was the outcome successful when following this guidance?',
|
|
101
|
+
'4. Which trajectory steps aligned with the playbook?',
|
|
102
|
+
'',
|
|
103
|
+
'Write results to output/usage.json:',
|
|
104
|
+
'```json',
|
|
105
|
+
'[',
|
|
106
|
+
' {',
|
|
107
|
+
' "playbookId": "id",',
|
|
108
|
+
' "playbookName": "name",',
|
|
109
|
+
' "wasUsed": boolean,',
|
|
110
|
+
' "usageConfidence": 0.0-1.0,',
|
|
111
|
+
' "wasSuccessful": boolean,',
|
|
112
|
+
' "matchedSteps": [step indices],',
|
|
113
|
+
' "context": "brief explanation of usage or non-usage"',
|
|
114
|
+
' }',
|
|
115
|
+
']',
|
|
116
|
+
'```',
|
|
117
|
+
].join('\n');
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
getSkills() { return []; },
|
|
121
|
+
getResources() { return []; },
|
|
122
|
+
|
|
123
|
+
outputConfig: {
|
|
124
|
+
files: [
|
|
125
|
+
{
|
|
126
|
+
path: 'usage.json',
|
|
127
|
+
format: 'json' as const,
|
|
128
|
+
required: true,
|
|
129
|
+
description: 'Playbook usage inference results',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
async collectOutput(handle: WorkspaceHandle): Promise<PlaybookUsageResult[]> {
|
|
135
|
+
const raw = await handle.readJson('output', 'usage.json');
|
|
136
|
+
if (!Array.isArray(raw)) return [];
|
|
137
|
+
|
|
138
|
+
return (raw as Record<string, unknown>[]).map(item => ({
|
|
139
|
+
playbookId: String(item.playbookId ?? ''),
|
|
140
|
+
playbookName: String(item.playbookName ?? ''),
|
|
141
|
+
wasUsed: Boolean(item.wasUsed),
|
|
142
|
+
usageConfidence: typeof item.usageConfidence === 'number' ? item.usageConfidence : 0,
|
|
143
|
+
wasSuccessful: Boolean(item.wasSuccessful),
|
|
144
|
+
matchedSteps: Array.isArray(item.matchedSteps)
|
|
145
|
+
? item.matchedSteps.map(Number)
|
|
146
|
+
: [],
|
|
147
|
+
context: item.context ? String(item.context) : undefined,
|
|
148
|
+
}));
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
async processOutput(): Promise<void> {
|
|
152
|
+
// Atlas handles storage and skill library recording
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
computeRequirements: {
|
|
156
|
+
mode: 'local',
|
|
157
|
+
complexity: 'lightweight',
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
agentType: 'claude-code',
|
|
161
|
+
timeout: 120_000,
|
|
162
|
+
captureToolCalls: true,
|
|
163
|
+
};
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { WorkspaceHandle, OutputSpec } from 'agent-workspace';
|
|
2
|
+
import type { MemorySystem, MemoryQueryResultV2 } from '../memory/system.js';
|
|
3
|
+
import type { LearningPipeline } from '../learning/pipeline.js';
|
|
4
|
+
import type { ComputeRequirements } from '../runtime/compute-provider.js';
|
|
5
|
+
|
|
6
|
+
// Re-export agent-workspace types used by consumers
|
|
7
|
+
export type { WorkspaceHandle, OutputSpec, OutputFileSpec, ValidationResult } from 'agent-workspace';
|
|
8
|
+
|
|
9
|
+
// ============================================================
|
|
10
|
+
// Agent Skills
|
|
11
|
+
// ============================================================
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Skill to load into workspace skills/ directory.
|
|
15
|
+
* Agent Skills open standard format (SKILL.md).
|
|
16
|
+
*/
|
|
17
|
+
export interface AgentSkillSpec {
|
|
18
|
+
/** Skill directory name */
|
|
19
|
+
name: string;
|
|
20
|
+
/** SKILL.md content */
|
|
21
|
+
content: string;
|
|
22
|
+
/** Source of this skill */
|
|
23
|
+
source: 'playbook-conversion' | 'curated' | 'extracted';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// ============================================================
|
|
27
|
+
// Resources
|
|
28
|
+
// ============================================================
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Supplementary resource to load into workspace resources/ directory.
|
|
32
|
+
*/
|
|
33
|
+
export interface ResourceSpec {
|
|
34
|
+
/** Path relative to resources/ directory */
|
|
35
|
+
path: string;
|
|
36
|
+
/** How to populate this resource */
|
|
37
|
+
type: 'directory' | 'file' | 'symlink';
|
|
38
|
+
/** Source path (for symlink/copy) or content (for file) */
|
|
39
|
+
source: string;
|
|
40
|
+
/** Description for the agent */
|
|
41
|
+
description?: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// ============================================================
|
|
45
|
+
// Complexity Assessment
|
|
46
|
+
// ============================================================
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Complexity level determines whether to use heuristic or agentic analysis.
|
|
50
|
+
*/
|
|
51
|
+
export type AnalysisComplexity =
|
|
52
|
+
| 'heuristic' // Use heuristicFallback(), no agent needed
|
|
53
|
+
| 'lightweight' // Agent with small budget, simple workspace
|
|
54
|
+
| 'standard' // Agent with moderate budget, full workspace
|
|
55
|
+
| 'thorough'; // Agent with large budget, full workspace, more time
|
|
56
|
+
|
|
57
|
+
// ============================================================
|
|
58
|
+
// Processing Context
|
|
59
|
+
// ============================================================
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Context passed to processOutput for storing/accumulating results.
|
|
63
|
+
*/
|
|
64
|
+
export interface ProcessingContext {
|
|
65
|
+
memory: MemorySystem;
|
|
66
|
+
learningPipeline: LearningPipeline;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// ============================================================
|
|
70
|
+
// AgenticTaskTemplate
|
|
71
|
+
// ============================================================
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Declarative recipe for an agentic analysis task.
|
|
75
|
+
*
|
|
76
|
+
* TInput: the typed input data for this analysis
|
|
77
|
+
* TOutput: the typed output the agent produces
|
|
78
|
+
*/
|
|
79
|
+
export interface AgenticTaskTemplate<TInput, TOutput> {
|
|
80
|
+
/** Unique identifier for this task type */
|
|
81
|
+
taskType: string;
|
|
82
|
+
|
|
83
|
+
/** Domain for knowledge injection and meta-learning */
|
|
84
|
+
domain: string;
|
|
85
|
+
|
|
86
|
+
/** Human-readable description */
|
|
87
|
+
description: string;
|
|
88
|
+
|
|
89
|
+
// === WORKSPACE SETUP ===
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Prepare the workspace filesystem from typed input.
|
|
93
|
+
* Uses the WorkspaceHandle to write input files via typed I/O methods.
|
|
94
|
+
*/
|
|
95
|
+
prepareWorkspace(input: TInput, handle: WorkspaceHandle): Promise<void>;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Build the task description for the agent.
|
|
99
|
+
* Natural language prompt explaining what to do and what output to produce.
|
|
100
|
+
*/
|
|
101
|
+
buildTaskPrompt(input: TInput): string;
|
|
102
|
+
|
|
103
|
+
// === SKILLS ===
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Skills to load into the workspace skills/ directory.
|
|
107
|
+
* Playbooks from memory are converted to skills via the converter.
|
|
108
|
+
*/
|
|
109
|
+
getSkills(input: TInput): AgentSkillSpec[];
|
|
110
|
+
|
|
111
|
+
// === RESOURCES ===
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Supplementary resources for the workspace resources/ directory.
|
|
115
|
+
*/
|
|
116
|
+
getResources(input: TInput): ResourceSpec[];
|
|
117
|
+
|
|
118
|
+
// === KNOWLEDGE ===
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Additional memory queries beyond the automatic domain-scoped query.
|
|
122
|
+
*/
|
|
123
|
+
getAdditionalKnowledge?(
|
|
124
|
+
input: TInput,
|
|
125
|
+
memory: MemorySystem
|
|
126
|
+
): Promise<MemoryQueryResultV2>;
|
|
127
|
+
|
|
128
|
+
// === OUTPUT ===
|
|
129
|
+
|
|
130
|
+
/** Configuration defining the expected output shape */
|
|
131
|
+
outputConfig: OutputSpec;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Read and validate agent output from workspace.
|
|
135
|
+
* Uses the WorkspaceHandle to read output via typed I/O methods.
|
|
136
|
+
* Returns typed output or throws if validation fails.
|
|
137
|
+
*/
|
|
138
|
+
collectOutput(handle: WorkspaceHandle): Promise<TOutput>;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Process the validated output — store results, accumulate for batch learning, etc.
|
|
142
|
+
*/
|
|
143
|
+
processOutput(
|
|
144
|
+
output: TOutput,
|
|
145
|
+
input: TInput,
|
|
146
|
+
context: ProcessingContext
|
|
147
|
+
): Promise<void>;
|
|
148
|
+
|
|
149
|
+
// === COMPLEXITY ASSESSMENT ===
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Assess whether this input needs agentic analysis or heuristic fallback.
|
|
153
|
+
*/
|
|
154
|
+
assessComplexity(input: TInput): AnalysisComplexity;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Heuristic fallback for simple cases.
|
|
158
|
+
* Called when assessComplexity returns 'heuristic'.
|
|
159
|
+
*/
|
|
160
|
+
heuristicFallback?(input: TInput): Promise<TOutput>;
|
|
161
|
+
|
|
162
|
+
// === CONFIGURATION ===
|
|
163
|
+
|
|
164
|
+
/** Agent type to spawn (default: 'claude-code') */
|
|
165
|
+
agentType?: string;
|
|
166
|
+
|
|
167
|
+
/** Timeout for the analysis agent (default: 120_000ms) */
|
|
168
|
+
timeout?: number;
|
|
169
|
+
|
|
170
|
+
/** Whether to capture detailed tool calls (default: true) */
|
|
171
|
+
captureToolCalls?: boolean;
|
|
172
|
+
|
|
173
|
+
// === COMPUTE ===
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Static compute requirements for this template.
|
|
177
|
+
* Used by ComputeProvider to select appropriate backend.
|
|
178
|
+
*/
|
|
179
|
+
computeRequirements?: ComputeRequirements;
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Dynamic compute requirements based on input and assessed complexity.
|
|
183
|
+
* Overrides static computeRequirements when provided.
|
|
184
|
+
*/
|
|
185
|
+
getComputeRequirements?(
|
|
186
|
+
input: TInput,
|
|
187
|
+
complexity: AnalysisComplexity
|
|
188
|
+
): ComputeRequirements;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// ============================================================
|
|
192
|
+
// Task Result
|
|
193
|
+
// ============================================================
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Result from running an agentic task.
|
|
197
|
+
*/
|
|
198
|
+
export interface AgenticTaskResult<TOutput> {
|
|
199
|
+
/** The validated output */
|
|
200
|
+
output: TOutput;
|
|
201
|
+
/** Whether heuristic or agentic path was used */
|
|
202
|
+
method: 'heuristic' | 'agentic';
|
|
203
|
+
/** Trajectory ID of the analysis agent (if agentic) */
|
|
204
|
+
agentTrajectoryId?: string;
|
|
205
|
+
/** Execution metrics */
|
|
206
|
+
metrics: AgenticTaskMetrics;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Metrics from an agentic task execution.
|
|
211
|
+
*/
|
|
212
|
+
export interface AgenticTaskMetrics {
|
|
213
|
+
totalTimeMs: number;
|
|
214
|
+
tokensUsed: number;
|
|
215
|
+
toolCalls: number;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// ============================================================
|
|
219
|
+
// Errors
|
|
220
|
+
// ============================================================
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Error thrown when agent output validation fails.
|
|
224
|
+
*/
|
|
225
|
+
export class AgenticTaskOutputError extends Error {
|
|
226
|
+
constructor(
|
|
227
|
+
public readonly taskType: string,
|
|
228
|
+
public readonly cause: Error
|
|
229
|
+
) {
|
|
230
|
+
super(`Agentic task '${taskType}' output validation failed: ${cause.message}`);
|
|
231
|
+
this.name = 'AgenticTaskOutputError';
|
|
232
|
+
}
|
|
233
|
+
}
|