cognitive-core 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.json +88 -0
- package/.claude/settings.local.json +11 -0
- package/.entire/settings.json +4 -0
- package/CLAUDE.md +233 -0
- package/README.md +841 -255
- package/dist/atlas.d.ts +150 -12
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +391 -31
- package/dist/atlas.js.map +1 -1
- package/dist/bin/cli-utils.d.ts +37 -0
- package/dist/bin/cli-utils.d.ts.map +1 -0
- package/dist/bin/cli-utils.js +176 -0
- package/dist/bin/cli-utils.js.map +1 -0
- package/dist/bin/cognitive-core.d.ts +2 -12
- package/dist/bin/cognitive-core.d.ts.map +1 -1
- package/dist/bin/cognitive-core.js +76 -351
- package/dist/bin/cognitive-core.js.map +1 -1
- package/dist/bin/commands/kb.d.ts +6 -0
- package/dist/bin/commands/kb.d.ts.map +1 -0
- package/dist/bin/commands/kb.js +240 -0
- package/dist/bin/commands/kb.js.map +1 -0
- package/dist/bin/commands/learn.d.ts +6 -0
- package/dist/bin/commands/learn.d.ts.map +1 -0
- package/dist/bin/commands/learn.js +91 -0
- package/dist/bin/commands/learn.js.map +1 -0
- package/dist/bin/commands/legacy.d.ts +12 -0
- package/dist/bin/commands/legacy.d.ts.map +1 -0
- package/dist/bin/commands/legacy.js +142 -0
- package/dist/bin/commands/legacy.js.map +1 -0
- package/dist/bin/commands/run.d.ts +3 -0
- package/dist/bin/commands/run.d.ts.map +1 -0
- package/dist/bin/commands/run.js +99 -0
- package/dist/bin/commands/run.js.map +1 -0
- package/dist/bin/commands/sessions.d.ts +9 -0
- package/dist/bin/commands/sessions.d.ts.map +1 -0
- package/dist/bin/commands/sessions.js +183 -0
- package/dist/bin/commands/sessions.js.map +1 -0
- package/dist/bin/commands/skills.d.ts +6 -0
- package/dist/bin/commands/skills.d.ts.map +1 -0
- package/dist/bin/commands/skills.js +135 -0
- package/dist/bin/commands/skills.js.map +1 -0
- package/dist/embeddings/index.d.ts +1 -0
- package/dist/embeddings/index.d.ts.map +1 -1
- package/dist/embeddings/index.js +2 -0
- package/dist/embeddings/index.js.map +1 -1
- package/dist/embeddings/inverted-index.d.ts +47 -0
- package/dist/embeddings/inverted-index.d.ts.map +1 -0
- package/dist/embeddings/inverted-index.js +122 -0
- package/dist/embeddings/inverted-index.js.map +1 -0
- package/dist/embeddings/manager.d.ts +3 -1
- package/dist/embeddings/manager.d.ts.map +1 -1
- package/dist/embeddings/manager.js +12 -7
- package/dist/embeddings/manager.js.map +1 -1
- package/dist/embeddings/provider.d.ts.map +1 -1
- package/dist/embeddings/provider.js +6 -3
- package/dist/embeddings/provider.js.map +1 -1
- package/dist/embeddings/vector-store.d.ts +7 -3
- package/dist/embeddings/vector-store.d.ts.map +1 -1
- package/dist/embeddings/vector-store.js +22 -6
- package/dist/embeddings/vector-store.js.map +1 -1
- package/dist/factory.d.ts +11 -12
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +20 -7
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +11 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -8
- package/dist/index.js.map +1 -1
- package/dist/learning/analyzer.d.ts.map +1 -1
- package/dist/learning/analyzer.js +17 -35
- package/dist/learning/analyzer.js.map +1 -1
- package/dist/learning/energy-evaluator.d.ts +128 -0
- package/dist/learning/energy-evaluator.d.ts.map +1 -0
- package/dist/learning/energy-evaluator.js +175 -0
- package/dist/learning/energy-evaluator.js.map +1 -0
- package/dist/learning/healing-orchestrator.d.ts +182 -0
- package/dist/learning/healing-orchestrator.d.ts.map +1 -0
- package/dist/learning/healing-orchestrator.js +250 -0
- package/dist/learning/healing-orchestrator.js.map +1 -0
- package/dist/learning/index.d.ts +11 -2
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +20 -3
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/instant-loop.d.ts +87 -0
- package/dist/learning/instant-loop.d.ts.map +1 -0
- package/dist/learning/instant-loop.js +264 -0
- package/dist/learning/instant-loop.js.map +1 -0
- package/dist/learning/knowledge-extractor.d.ts +56 -0
- package/dist/learning/knowledge-extractor.d.ts.map +1 -0
- package/dist/learning/knowledge-extractor.js +336 -0
- package/dist/learning/knowledge-extractor.js.map +1 -0
- package/dist/learning/loop-coordinator.d.ts +61 -0
- package/dist/learning/loop-coordinator.d.ts.map +1 -0
- package/dist/learning/loop-coordinator.js +96 -0
- package/dist/learning/loop-coordinator.js.map +1 -0
- package/dist/learning/maintenance-scheduler.d.ts +141 -0
- package/dist/learning/maintenance-scheduler.d.ts.map +1 -0
- package/dist/learning/maintenance-scheduler.js +186 -0
- package/dist/learning/maintenance-scheduler.js.map +1 -0
- package/dist/learning/meta-learner.d.ts +7 -0
- package/dist/learning/meta-learner.d.ts.map +1 -1
- package/dist/learning/meta-learner.js +47 -21
- package/dist/learning/meta-learner.js.map +1 -1
- package/dist/learning/pipeline.d.ts +55 -4
- package/dist/learning/pipeline.d.ts.map +1 -1
- package/dist/learning/pipeline.js +134 -16
- package/dist/learning/pipeline.js.map +1 -1
- package/dist/learning/reflexion-generator.d.ts +64 -0
- package/dist/learning/reflexion-generator.d.ts.map +1 -0
- package/dist/learning/reflexion-generator.js +194 -0
- package/dist/learning/reflexion-generator.js.map +1 -0
- package/dist/learning/team-ingester.d.ts +152 -0
- package/dist/learning/team-ingester.d.ts.map +1 -0
- package/dist/learning/team-ingester.js +333 -0
- package/dist/learning/team-ingester.js.map +1 -0
- package/dist/learning/team-meta-learner.d.ts +50 -0
- package/dist/learning/team-meta-learner.d.ts.map +1 -0
- package/dist/learning/team-meta-learner.js +417 -0
- package/dist/learning/team-meta-learner.js.map +1 -0
- package/dist/learning/team-pipeline.d.ts +76 -0
- package/dist/learning/team-pipeline.d.ts.map +1 -0
- package/dist/learning/team-pipeline.js +266 -0
- package/dist/learning/team-pipeline.js.map +1 -0
- package/dist/learning/trajectory-sources/dataclaw.d.ts +41 -0
- package/dist/learning/trajectory-sources/dataclaw.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/dataclaw.js +330 -0
- package/dist/learning/trajectory-sources/dataclaw.js.map +1 -0
- package/dist/learning/trajectory-sources/entire.d.ts +31 -0
- package/dist/learning/trajectory-sources/entire.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/entire.js +189 -0
- package/dist/learning/trajectory-sources/entire.js.map +1 -0
- package/dist/learning/trajectory-sources/file.d.ts +23 -0
- package/dist/learning/trajectory-sources/file.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/file.js +101 -0
- package/dist/learning/trajectory-sources/file.js.map +1 -0
- package/dist/learning/trajectory-sources/huggingface.d.ts +36 -0
- package/dist/learning/trajectory-sources/huggingface.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/huggingface.js +157 -0
- package/dist/learning/trajectory-sources/huggingface.js.map +1 -0
- package/dist/learning/trajectory-sources/in-memory.d.ts +21 -0
- package/dist/learning/trajectory-sources/in-memory.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/in-memory.js +43 -0
- package/dist/learning/trajectory-sources/in-memory.js.map +1 -0
- package/dist/learning/trajectory-sources/index.d.ts +7 -0
- package/dist/learning/trajectory-sources/index.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/index.js +7 -0
- package/dist/learning/trajectory-sources/index.js.map +1 -0
- package/dist/learning/trajectory-sources/pipeline.d.ts +24 -0
- package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -0
- package/dist/learning/trajectory-sources/pipeline.js +47 -0
- package/dist/learning/trajectory-sources/pipeline.js.map +1 -0
- package/dist/learning/unified-pipeline.d.ts +281 -0
- package/dist/learning/unified-pipeline.d.ts.map +1 -0
- package/dist/learning/unified-pipeline.js +637 -0
- package/dist/learning/unified-pipeline.js.map +1 -0
- package/dist/memory/candidate-retrieval.d.ts +43 -0
- package/dist/memory/candidate-retrieval.d.ts.map +1 -0
- package/dist/memory/candidate-retrieval.js +41 -0
- package/dist/memory/candidate-retrieval.js.map +1 -0
- package/dist/memory/causal-store.d.ts +97 -0
- package/dist/memory/causal-store.d.ts.map +1 -0
- package/dist/memory/causal-store.js +209 -0
- package/dist/memory/causal-store.js.map +1 -0
- package/dist/memory/coherence.d.ts +71 -0
- package/dist/memory/coherence.d.ts.map +1 -0
- package/dist/memory/coherence.js +176 -0
- package/dist/memory/coherence.js.map +1 -0
- package/dist/memory/experience.d.ts +39 -6
- package/dist/memory/experience.d.ts.map +1 -1
- package/dist/memory/experience.js +193 -49
- package/dist/memory/experience.js.map +1 -1
- package/dist/memory/graph-layers/base.d.ts +29 -0
- package/dist/memory/graph-layers/base.d.ts.map +1 -0
- package/dist/memory/graph-layers/base.js +143 -0
- package/dist/memory/graph-layers/base.js.map +1 -0
- package/dist/memory/graph-layers/causal.d.ts +14 -0
- package/dist/memory/graph-layers/causal.d.ts.map +1 -0
- package/dist/memory/graph-layers/causal.js +14 -0
- package/dist/memory/graph-layers/causal.js.map +1 -0
- package/dist/memory/graph-layers/entity.d.ts +14 -0
- package/dist/memory/graph-layers/entity.d.ts.map +1 -0
- package/dist/memory/graph-layers/entity.js +14 -0
- package/dist/memory/graph-layers/entity.js.map +1 -0
- package/dist/memory/graph-layers/index.d.ts +6 -0
- package/dist/memory/graph-layers/index.d.ts.map +1 -0
- package/dist/memory/graph-layers/index.js +6 -0
- package/dist/memory/graph-layers/index.js.map +1 -0
- package/dist/memory/graph-layers/semantic.d.ts +14 -0
- package/dist/memory/graph-layers/semantic.d.ts.map +1 -0
- package/dist/memory/graph-layers/semantic.js +14 -0
- package/dist/memory/graph-layers/semantic.js.map +1 -0
- package/dist/memory/graph-layers/temporal.d.ts +14 -0
- package/dist/memory/graph-layers/temporal.d.ts.map +1 -0
- package/dist/memory/graph-layers/temporal.js +14 -0
- package/dist/memory/graph-layers/temporal.js.map +1 -0
- package/dist/memory/index.d.ts +15 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +22 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/knowledge-bank.d.ts +234 -0
- package/dist/memory/knowledge-bank.d.ts.map +1 -0
- package/dist/memory/knowledge-bank.js +1048 -0
- package/dist/memory/knowledge-bank.js.map +1 -0
- package/dist/memory/knowledge-defrag.d.ts +49 -0
- package/dist/memory/knowledge-defrag.d.ts.map +1 -0
- package/dist/memory/knowledge-defrag.js +257 -0
- package/dist/memory/knowledge-defrag.js.map +1 -0
- package/dist/memory/knowledge-graph.d.ts +41 -0
- package/dist/memory/knowledge-graph.d.ts.map +1 -0
- package/dist/memory/knowledge-graph.js +273 -0
- package/dist/memory/knowledge-graph.js.map +1 -0
- package/dist/memory/meta.d.ts +7 -8
- package/dist/memory/meta.d.ts.map +1 -1
- package/dist/memory/meta.js +73 -79
- package/dist/memory/meta.js.map +1 -1
- package/dist/memory/playbook.d.ts +26 -9
- package/dist/memory/playbook.d.ts.map +1 -1
- package/dist/memory/playbook.js +198 -74
- package/dist/memory/playbook.js.map +1 -1
- package/dist/memory/reasoning-bank.d.ts +130 -0
- package/dist/memory/reasoning-bank.d.ts.map +1 -0
- package/dist/memory/reasoning-bank.js +342 -0
- package/dist/memory/reasoning-bank.js.map +1 -0
- package/dist/memory/reflexion.d.ts +59 -0
- package/dist/memory/reflexion.d.ts.map +1 -0
- package/dist/memory/reflexion.js +96 -0
- package/dist/memory/reflexion.js.map +1 -0
- package/dist/memory/search-provider.d.ts +31 -0
- package/dist/memory/search-provider.d.ts.map +1 -0
- package/dist/memory/search-provider.js +2 -0
- package/dist/memory/search-provider.js.map +1 -0
- package/dist/memory/search-providers/index.d.ts +3 -0
- package/dist/memory/search-providers/index.d.ts.map +1 -0
- package/dist/memory/search-providers/index.js +3 -0
- package/dist/memory/search-providers/index.js.map +1 -0
- package/dist/memory/search-providers/minimem.d.ts +43 -0
- package/dist/memory/search-providers/minimem.d.ts.map +1 -0
- package/dist/memory/search-providers/minimem.js +56 -0
- package/dist/memory/search-providers/minimem.js.map +1 -0
- package/dist/memory/search-providers/text-similarity.d.ts +15 -0
- package/dist/memory/search-providers/text-similarity.d.ts.map +1 -0
- package/dist/memory/search-providers/text-similarity.js +21 -0
- package/dist/memory/search-providers/text-similarity.js.map +1 -0
- package/dist/memory/skill-exporter.d.ts +75 -0
- package/dist/memory/skill-exporter.d.ts.map +1 -0
- package/dist/memory/skill-exporter.js +248 -0
- package/dist/memory/skill-exporter.js.map +1 -0
- package/dist/memory/system.d.ts +20 -3
- package/dist/memory/system.d.ts.map +1 -1
- package/dist/memory/system.js +61 -11
- package/dist/memory/system.js.map +1 -1
- package/dist/memory/team-experience.d.ts +298 -0
- package/dist/memory/team-experience.d.ts.map +1 -0
- package/dist/memory/team-experience.js +355 -0
- package/dist/memory/team-experience.js.map +1 -0
- package/dist/memory/temporal-compressor.d.ts +126 -0
- package/dist/memory/temporal-compressor.d.ts.map +1 -0
- package/dist/memory/temporal-compressor.js +335 -0
- package/dist/memory/temporal-compressor.js.map +1 -0
- package/dist/persistence/index.d.ts +11 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +11 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/migrator.d.ts +40 -0
- package/dist/persistence/migrator.d.ts.map +1 -0
- package/dist/persistence/migrator.js +238 -0
- package/dist/persistence/migrator.js.map +1 -0
- package/dist/persistence/serializers.d.ts +45 -0
- package/dist/persistence/serializers.d.ts.map +1 -0
- package/dist/persistence/serializers.js +80 -0
- package/dist/persistence/serializers.js.map +1 -0
- package/dist/persistence/sqlite-persistence.d.ts +228 -0
- package/dist/persistence/sqlite-persistence.d.ts.map +1 -0
- package/dist/persistence/sqlite-persistence.js +588 -0
- package/dist/persistence/sqlite-persistence.js.map +1 -0
- package/dist/runtime/backends/acp-protocol.d.ts +49 -0
- package/dist/runtime/backends/acp-protocol.d.ts.map +1 -0
- package/dist/runtime/backends/acp-protocol.js +166 -0
- package/dist/runtime/backends/acp-protocol.js.map +1 -0
- package/dist/runtime/backends/acp.d.ts +26 -26
- package/dist/runtime/backends/acp.d.ts.map +1 -1
- package/dist/runtime/backends/acp.js +32 -156
- package/dist/runtime/backends/acp.js.map +1 -1
- package/dist/runtime/backends/index.d.ts +3 -1
- package/dist/runtime/backends/index.d.ts.map +1 -1
- package/dist/runtime/backends/index.js +3 -1
- package/dist/runtime/backends/index.js.map +1 -1
- package/dist/runtime/backends/macro-agent.d.ts +104 -0
- package/dist/runtime/backends/macro-agent.d.ts.map +1 -0
- package/dist/runtime/backends/macro-agent.js +107 -0
- package/dist/runtime/backends/macro-agent.js.map +1 -0
- package/dist/runtime/compute-provider.d.ts +87 -0
- package/dist/runtime/compute-provider.d.ts.map +1 -0
- package/dist/runtime/compute-provider.js +87 -0
- package/dist/runtime/compute-provider.js.map +1 -0
- package/dist/runtime/flows/learning.d.ts +10 -12
- package/dist/runtime/flows/learning.d.ts.map +1 -1
- package/dist/runtime/flows/learning.js +10 -23
- package/dist/runtime/flows/learning.js.map +1 -1
- package/dist/runtime/index.d.ts +3 -2
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/manager.d.ts +37 -4
- package/dist/runtime/manager.d.ts.map +1 -1
- package/dist/runtime/manager.js +139 -20
- package/dist/runtime/manager.js.map +1 -1
- package/dist/runtime/types.d.ts +38 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/search/evaluator.d.ts +7 -0
- package/dist/search/evaluator.d.ts.map +1 -1
- package/dist/search/evaluator.js +24 -4
- package/dist/search/evaluator.js.map +1 -1
- package/dist/search/index.d.ts +2 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +4 -0
- package/dist/search/index.js.map +1 -1
- package/dist/search/moe-gate.d.ts +124 -0
- package/dist/search/moe-gate.d.ts.map +1 -0
- package/dist/search/moe-gate.js +234 -0
- package/dist/search/moe-gate.js.map +1 -0
- package/dist/search/refinement-loop.d.ts +17 -0
- package/dist/search/refinement-loop.d.ts.map +1 -1
- package/dist/search/refinement-loop.js +77 -6
- package/dist/search/refinement-loop.js.map +1 -1
- package/dist/search/refinement-types.d.ts +2 -2
- package/dist/search/router.d.ts +32 -2
- package/dist/search/router.d.ts.map +1 -1
- package/dist/search/router.js +87 -4
- package/dist/search/router.js.map +1 -1
- package/dist/search/team-router.d.ts +91 -0
- package/dist/search/team-router.d.ts.map +1 -0
- package/dist/search/team-router.js +315 -0
- package/dist/search/team-router.js.map +1 -0
- package/dist/session-bank/git-reader.d.ts +44 -0
- package/dist/session-bank/git-reader.d.ts.map +1 -0
- package/dist/session-bank/git-reader.js +172 -0
- package/dist/session-bank/git-reader.js.map +1 -0
- package/dist/session-bank/index.d.ts +5 -0
- package/dist/session-bank/index.d.ts.map +1 -0
- package/dist/session-bank/index.js +4 -0
- package/dist/session-bank/index.js.map +1 -0
- package/dist/session-bank/parser.d.ts +50 -0
- package/dist/session-bank/parser.d.ts.map +1 -0
- package/dist/session-bank/parser.js +338 -0
- package/dist/session-bank/parser.js.map +1 -0
- package/dist/session-bank/session-bank.d.ts +40 -0
- package/dist/session-bank/session-bank.d.ts.map +1 -0
- package/dist/session-bank/session-bank.js +347 -0
- package/dist/session-bank/session-bank.js.map +1 -0
- package/dist/session-bank/types.d.ts +132 -0
- package/dist/session-bank/types.d.ts.map +1 -0
- package/dist/session-bank/types.js +7 -0
- package/dist/session-bank/types.js.map +1 -0
- package/dist/surfacing/index.d.ts +4 -0
- package/dist/surfacing/index.d.ts.map +1 -1
- package/dist/surfacing/index.js +3 -0
- package/dist/surfacing/index.js.map +1 -1
- package/dist/surfacing/publisher.d.ts +22 -0
- package/dist/surfacing/publisher.d.ts.map +1 -0
- package/dist/surfacing/publisher.js +9 -0
- package/dist/surfacing/publisher.js.map +1 -0
- package/dist/surfacing/skill-library.d.ts +12 -0
- package/dist/surfacing/skill-library.d.ts.map +1 -1
- package/dist/surfacing/skill-library.js +26 -0
- package/dist/surfacing/skill-library.js.map +1 -1
- package/dist/surfacing/skill-publisher.d.ts +43 -0
- package/dist/surfacing/skill-publisher.d.ts.map +1 -0
- package/dist/surfacing/skill-publisher.js +169 -0
- package/dist/surfacing/skill-publisher.js.map +1 -0
- package/dist/surfacing/sqlite-storage-adapter.d.ts +42 -0
- package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -0
- package/dist/surfacing/sqlite-storage-adapter.js +199 -0
- package/dist/surfacing/sqlite-storage-adapter.js.map +1 -0
- package/dist/surfacing/team-skill-library.d.ts +180 -0
- package/dist/surfacing/team-skill-library.d.ts.map +1 -0
- package/dist/surfacing/team-skill-library.js +384 -0
- package/dist/surfacing/team-skill-library.js.map +1 -0
- package/dist/types/config.d.ts +1318 -44
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +243 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/dataclaw.d.ts +286 -0
- package/dist/types/dataclaw.d.ts.map +1 -0
- package/dist/types/dataclaw.js +84 -0
- package/dist/types/dataclaw.js.map +1 -0
- package/dist/types/index.d.ts +9 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +13 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/knowledge-graph.d.ts +148 -0
- package/dist/types/knowledge-graph.d.ts.map +1 -0
- package/dist/types/knowledge-graph.js +40 -0
- package/dist/types/knowledge-graph.js.map +1 -0
- package/dist/types/knowledge.d.ts +280 -0
- package/dist/types/knowledge.d.ts.map +1 -0
- package/dist/types/knowledge.js +191 -0
- package/dist/types/knowledge.js.map +1 -0
- package/dist/types/memory.d.ts +52 -0
- package/dist/types/memory.d.ts.map +1 -1
- package/dist/types/memory.js +13 -0
- package/dist/types/memory.js.map +1 -1
- package/dist/types/playbook.d.ts +4 -0
- package/dist/types/playbook.d.ts.map +1 -1
- package/dist/types/playbook.js.map +1 -1
- package/dist/types/team-meta.d.ts +160 -0
- package/dist/types/team-meta.d.ts.map +1 -0
- package/dist/types/team-meta.js +42 -0
- package/dist/types/team-meta.js.map +1 -0
- package/dist/types/team-playbook.d.ts +276 -0
- package/dist/types/team-playbook.d.ts.map +1 -0
- package/dist/types/team-playbook.js +85 -0
- package/dist/types/team-playbook.js.map +1 -0
- package/dist/types/team-trajectory.d.ts +305 -0
- package/dist/types/team-trajectory.d.ts.map +1 -0
- package/dist/types/team-trajectory.js +304 -0
- package/dist/types/team-trajectory.js.map +1 -0
- package/dist/types/trajectory-source.d.ts +39 -0
- package/dist/types/trajectory-source.d.ts.map +1 -0
- package/dist/types/trajectory-source.js +2 -0
- package/dist/types/trajectory-source.js.map +1 -0
- package/dist/utils/error-classifier.d.ts +30 -0
- package/dist/utils/error-classifier.d.ts.map +1 -0
- package/dist/utils/error-classifier.js +85 -0
- package/dist/utils/error-classifier.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +34 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +93 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/partitioned-store.d.ts +93 -0
- package/dist/utils/partitioned-store.d.ts.map +1 -0
- package/dist/utils/partitioned-store.js +251 -0
- package/dist/utils/partitioned-store.js.map +1 -0
- package/dist/utils/trajectory-helpers.d.ts +39 -0
- package/dist/utils/trajectory-helpers.d.ts.map +1 -0
- package/dist/utils/trajectory-helpers.js +57 -0
- package/dist/utils/trajectory-helpers.js.map +1 -0
- package/dist/workspace/index.d.ts +6 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +11 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/runner.d.ts +49 -0
- package/dist/workspace/runner.d.ts.map +1 -0
- package/dist/workspace/runner.js +219 -0
- package/dist/workspace/runner.js.map +1 -0
- package/dist/workspace/skill-converter.d.ts +18 -0
- package/dist/workspace/skill-converter.d.ts.map +1 -0
- package/dist/workspace/skill-converter.js +257 -0
- package/dist/workspace/skill-converter.js.map +1 -0
- package/dist/workspace/templates/index.d.ts +11 -0
- package/dist/workspace/templates/index.d.ts.map +1 -0
- package/dist/workspace/templates/index.js +21 -0
- package/dist/workspace/templates/index.js.map +1 -0
- package/dist/workspace/templates/knowledge-defrag.d.ts +25 -0
- package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -0
- package/dist/workspace/templates/knowledge-defrag.js +154 -0
- package/dist/workspace/templates/knowledge-defrag.js.map +1 -0
- package/dist/workspace/templates/knowledge-extraction.d.ts +25 -0
- package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -0
- package/dist/workspace/templates/knowledge-extraction.js +246 -0
- package/dist/workspace/templates/knowledge-extraction.js.map +1 -0
- package/dist/workspace/templates/meta-reflection.d.ts +47 -0
- package/dist/workspace/templates/meta-reflection.d.ts.map +1 -0
- package/dist/workspace/templates/meta-reflection.js +135 -0
- package/dist/workspace/templates/meta-reflection.js.map +1 -0
- package/dist/workspace/templates/playbook-extraction.d.ts +20 -0
- package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-extraction.js +189 -0
- package/dist/workspace/templates/playbook-extraction.js.map +1 -0
- package/dist/workspace/templates/refinement-analysis.d.ts +31 -0
- package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -0
- package/dist/workspace/templates/refinement-analysis.js +107 -0
- package/dist/workspace/templates/refinement-analysis.js.map +1 -0
- package/dist/workspace/templates/solution-evaluation.d.ts +21 -0
- package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -0
- package/dist/workspace/templates/solution-evaluation.js +131 -0
- package/dist/workspace/templates/solution-evaluation.js.map +1 -0
- package/dist/workspace/templates/team-playbook-extraction.d.ts +44 -0
- package/dist/workspace/templates/team-playbook-extraction.d.ts.map +1 -0
- package/dist/workspace/templates/team-playbook-extraction.js +497 -0
- package/dist/workspace/templates/team-playbook-extraction.js.map +1 -0
- package/dist/workspace/templates/team-trajectory-analysis.d.ts +19 -0
- package/dist/workspace/templates/team-trajectory-analysis.d.ts.map +1 -0
- package/dist/workspace/templates/team-trajectory-analysis.js +442 -0
- package/dist/workspace/templates/team-trajectory-analysis.js.map +1 -0
- package/dist/workspace/templates/trajectory-analysis.d.ts +19 -0
- package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -0
- package/dist/workspace/templates/trajectory-analysis.js +170 -0
- package/dist/workspace/templates/trajectory-analysis.js.map +1 -0
- package/dist/workspace/templates/usage-inference.d.ts +19 -0
- package/dist/workspace/templates/usage-inference.d.ts.map +1 -0
- package/dist/workspace/templates/usage-inference.js +125 -0
- package/dist/workspace/templates/usage-inference.js.map +1 -0
- package/dist/workspace/types.d.ts +152 -0
- package/dist/workspace/types.d.ts.map +1 -0
- package/dist/workspace/types.js +17 -0
- package/dist/workspace/types.js.map +1 -0
- package/docs/DESIGN-agentic-workspace.md +2057 -0
- package/docs/DESIGN-semantic-memory-knowledge-bank.md +1789 -0
- package/docs/DESIGN-session-bank.md +1134 -0
- package/docs/DESIGN-team-extraction-pipeline.md +1369 -0
- package/docs/PROPOSAL-team-aware-learning.md +1080 -0
- package/docs/RESEARCH-semantic-memory-knowledge-structures.md +517 -0
- package/docs/RESEARCH-team-trajectory-learning.md +553 -0
- package/gaps.md +204 -0
- package/package.json +27 -7
- package/references/agent-workspace/CLAUDE.md +74 -0
- package/references/agent-workspace/README.md +587 -0
- package/references/agent-workspace/media/banner.png +0 -0
- package/references/agent-workspace/package-lock.json +2061 -0
- package/references/agent-workspace/package.json +54 -0
- package/references/agent-workspace/src/handle.ts +122 -0
- package/references/agent-workspace/src/index.ts +32 -0
- package/references/agent-workspace/src/manager.ts +102 -0
- package/references/agent-workspace/src/readers/json.ts +71 -0
- package/references/agent-workspace/src/readers/markdown.ts +37 -0
- package/references/agent-workspace/src/readers/raw.ts +27 -0
- package/references/agent-workspace/src/types.ts +68 -0
- package/references/agent-workspace/src/validation.ts +93 -0
- package/references/agent-workspace/src/writers/json.ts +17 -0
- package/references/agent-workspace/src/writers/markdown.ts +27 -0
- package/references/agent-workspace/src/writers/raw.ts +22 -0
- package/references/agent-workspace/tests/errors.test.ts +652 -0
- package/references/agent-workspace/tests/handle.test.ts +144 -0
- package/references/agent-workspace/tests/manager.test.ts +124 -0
- package/references/agent-workspace/tests/readers.test.ts +205 -0
- package/references/agent-workspace/tests/validation.test.ts +196 -0
- package/references/agent-workspace/tests/writers.test.ts +108 -0
- package/references/agent-workspace/tsconfig.json +20 -0
- package/references/agent-workspace/tsup.config.ts +9 -0
- package/references/minimem/.claude/settings.json +7 -0
- package/references/minimem/.sudocode/issues.jsonl +18 -0
- package/references/minimem/.sudocode/specs.jsonl +1 -0
- package/references/minimem/CLAUDE.md +310 -0
- package/references/minimem/README.md +556 -0
- package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
- package/references/minimem/claude-plugin/.mcp.json +7 -0
- package/references/minimem/claude-plugin/README.md +158 -0
- package/references/minimem/claude-plugin/commands/recall.md +47 -0
- package/references/minimem/claude-plugin/commands/remember.md +41 -0
- package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
- package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
- package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
- package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
- package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
- package/references/minimem/package-lock.json +5373 -0
- package/references/minimem/package.json +60 -0
- package/references/minimem/scripts/postbuild.js +35 -0
- package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
- package/references/minimem/src/__tests__/errors.test.ts +265 -0
- package/references/minimem/src/__tests__/helpers.ts +199 -0
- package/references/minimem/src/__tests__/internal.test.ts +407 -0
- package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
- package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
- package/references/minimem/src/__tests__/session.test.ts +190 -0
- package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
- package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
- package/references/minimem/src/cli/commands/append.ts +76 -0
- package/references/minimem/src/cli/commands/config.ts +262 -0
- package/references/minimem/src/cli/commands/conflicts.ts +413 -0
- package/references/minimem/src/cli/commands/daemon.ts +169 -0
- package/references/minimem/src/cli/commands/index.ts +12 -0
- package/references/minimem/src/cli/commands/init.ts +88 -0
- package/references/minimem/src/cli/commands/mcp.ts +177 -0
- package/references/minimem/src/cli/commands/push-pull.ts +213 -0
- package/references/minimem/src/cli/commands/search.ts +158 -0
- package/references/minimem/src/cli/commands/status.ts +84 -0
- package/references/minimem/src/cli/commands/sync-init.ts +290 -0
- package/references/minimem/src/cli/commands/sync.ts +70 -0
- package/references/minimem/src/cli/commands/upsert.ts +197 -0
- package/references/minimem/src/cli/config.ts +584 -0
- package/references/minimem/src/cli/index.ts +264 -0
- package/references/minimem/src/cli/shared.ts +161 -0
- package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
- package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
- package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
- package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
- package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
- package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
- package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
- package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
- package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
- package/references/minimem/src/cli/sync/central.ts +292 -0
- package/references/minimem/src/cli/sync/conflicts.ts +204 -0
- package/references/minimem/src/cli/sync/daemon.ts +407 -0
- package/references/minimem/src/cli/sync/detection.ts +138 -0
- package/references/minimem/src/cli/sync/index.ts +107 -0
- package/references/minimem/src/cli/sync/operations.ts +373 -0
- package/references/minimem/src/cli/sync/registry.ts +279 -0
- package/references/minimem/src/cli/sync/state.ts +355 -0
- package/references/minimem/src/cli/sync/validation.ts +206 -0
- package/references/minimem/src/cli/sync/watcher.ts +234 -0
- package/references/minimem/src/cli/version.ts +34 -0
- package/references/minimem/src/core/index.ts +9 -0
- package/references/minimem/src/core/indexer.ts +628 -0
- package/references/minimem/src/core/searcher.ts +221 -0
- package/references/minimem/src/db/schema.ts +183 -0
- package/references/minimem/src/db/sqlite-vec.ts +24 -0
- package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
- package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
- package/references/minimem/src/embeddings/batch-openai.ts +409 -0
- package/references/minimem/src/embeddings/embeddings.ts +434 -0
- package/references/minimem/src/index.ts +109 -0
- package/references/minimem/src/internal.ts +299 -0
- package/references/minimem/src/minimem.ts +1276 -0
- package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
- package/references/minimem/src/search/graph.ts +234 -0
- package/references/minimem/src/search/hybrid.ts +151 -0
- package/references/minimem/src/search/search.ts +256 -0
- package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
- package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
- package/references/minimem/src/server/mcp.ts +326 -0
- package/references/minimem/src/server/tools.ts +720 -0
- package/references/minimem/src/session.ts +460 -0
- package/references/minimem/tsconfig.json +19 -0
- package/references/minimem/tsup.config.ts +26 -0
- package/references/minimem/vitest.config.ts +24 -0
- package/references/sessionlog/.husky/pre-commit +1 -0
- package/references/sessionlog/.lintstagedrc.json +4 -0
- package/references/sessionlog/.prettierignore +4 -0
- package/references/sessionlog/.prettierrc.json +11 -0
- package/references/sessionlog/LICENSE +21 -0
- package/references/sessionlog/README.md +453 -0
- package/references/sessionlog/eslint.config.js +58 -0
- package/references/sessionlog/package-lock.json +3672 -0
- package/references/sessionlog/package.json +65 -0
- package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
- package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
- package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
- package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
- package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
- package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
- package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
- package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
- package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
- package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
- package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
- package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
- package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
- package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
- package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
- package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
- package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
- package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
- package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
- package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
- package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
- package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
- package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
- package/references/sessionlog/src/__tests__/types.test.ts +166 -0
- package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
- package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
- package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
- package/references/sessionlog/src/agent/agents/claude-code.ts +1089 -0
- package/references/sessionlog/src/agent/agents/cursor.ts +361 -0
- package/references/sessionlog/src/agent/agents/gemini-cli.ts +632 -0
- package/references/sessionlog/src/agent/agents/opencode.ts +540 -0
- package/references/sessionlog/src/agent/registry.ts +143 -0
- package/references/sessionlog/src/agent/session-types.ts +113 -0
- package/references/sessionlog/src/agent/types.ts +220 -0
- package/references/sessionlog/src/cli.ts +597 -0
- package/references/sessionlog/src/commands/clean.ts +133 -0
- package/references/sessionlog/src/commands/disable.ts +84 -0
- package/references/sessionlog/src/commands/doctor.ts +145 -0
- package/references/sessionlog/src/commands/enable.ts +202 -0
- package/references/sessionlog/src/commands/explain.ts +261 -0
- package/references/sessionlog/src/commands/reset.ts +105 -0
- package/references/sessionlog/src/commands/resume.ts +180 -0
- package/references/sessionlog/src/commands/rewind.ts +195 -0
- package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
- package/references/sessionlog/src/commands/status.ts +172 -0
- package/references/sessionlog/src/config.ts +165 -0
- package/references/sessionlog/src/events/event-log.ts +126 -0
- package/references/sessionlog/src/git-operations.ts +558 -0
- package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
- package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
- package/references/sessionlog/src/index.ts +650 -0
- package/references/sessionlog/src/security/redaction.ts +283 -0
- package/references/sessionlog/src/session/state-machine.ts +452 -0
- package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
- package/references/sessionlog/src/store/native-store.ts +173 -0
- package/references/sessionlog/src/store/provider-types.ts +99 -0
- package/references/sessionlog/src/store/session-store.ts +266 -0
- package/references/sessionlog/src/strategy/attribution.ts +296 -0
- package/references/sessionlog/src/strategy/common.ts +207 -0
- package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
- package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
- package/references/sessionlog/src/strategy/types.ts +279 -0
- package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
- package/references/sessionlog/src/summarize/summarize.ts +432 -0
- package/references/sessionlog/src/types.ts +508 -0
- package/references/sessionlog/src/utils/chunk-files.ts +49 -0
- package/references/sessionlog/src/utils/commit-message.ts +65 -0
- package/references/sessionlog/src/utils/detect-agent.ts +36 -0
- package/references/sessionlog/src/utils/hook-managers.ts +125 -0
- package/references/sessionlog/src/utils/ide-tags.ts +32 -0
- package/references/sessionlog/src/utils/paths.ts +79 -0
- package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
- package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
- package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
- package/references/sessionlog/src/utils/string-utils.ts +46 -0
- package/references/sessionlog/src/utils/todo-extract.ts +188 -0
- package/references/sessionlog/src/utils/trailers.ts +187 -0
- package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
- package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
- package/references/sessionlog/src/utils/tree-ops.ts +219 -0
- package/references/sessionlog/src/utils/tty.ts +72 -0
- package/references/sessionlog/src/utils/validation.ts +65 -0
- package/references/sessionlog/src/utils/worktree.ts +58 -0
- package/references/sessionlog/src/wire-types.ts +59 -0
- package/references/sessionlog/templates/setup-env.sh +153 -0
- package/references/sessionlog/tsconfig.json +18 -0
- package/references/sessionlog/vitest.config.ts +12 -0
- package/references/skill-tree/.claude/settings.json +6 -0
- package/references/skill-tree/.sudocode/issues.jsonl +19 -0
- package/references/skill-tree/.sudocode/specs.jsonl +3 -0
- package/references/skill-tree/CLAUDE.md +126 -0
- package/references/skill-tree/README.md +372 -0
- package/references/skill-tree/docs/GAPS_v1.md +221 -0
- package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
- package/references/skill-tree/docs/TODOS.md +91 -0
- package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
- package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
- package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
- package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
- package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
- package/references/skill-tree/docs/scraper/README.md +170 -0
- package/references/skill-tree/examples/basic-usage.ts +164 -0
- package/references/skill-tree/package-lock.json +1852 -0
- package/references/skill-tree/package.json +66 -0
- package/references/skill-tree/scraper/README.md +123 -0
- package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
- package/references/skill-tree/scraper/docs/PLAN.md +336 -0
- package/references/skill-tree/scraper/drizzle.config.ts +10 -0
- package/references/skill-tree/scraper/package-lock.json +6329 -0
- package/references/skill-tree/scraper/package.json +68 -0
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
- package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
- package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
- package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
- package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
- package/references/skill-tree/scraper/tsup.config.ts +14 -0
- package/references/skill-tree/scraper/vitest.config.ts +17 -0
- package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
- package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
- package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
- package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
- package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
- package/references/skill-tree/test/run-all.ts +106 -0
- package/references/skill-tree/test/utils.ts +128 -0
- package/references/skill-tree/vitest.config.ts +16 -0
- package/src/atlas.ts +583 -41
- package/src/bin/cli-utils.ts +220 -0
- package/src/bin/cognitive-core.ts +84 -392
- package/src/bin/commands/kb.ts +266 -0
- package/src/bin/commands/learn.ts +100 -0
- package/src/bin/commands/legacy.ts +182 -0
- package/src/bin/commands/run.ts +113 -0
- package/src/bin/commands/sessions.ts +221 -0
- package/src/bin/commands/skills.ts +146 -0
- package/src/embeddings/index.ts +3 -0
- package/src/embeddings/inverted-index.ts +134 -0
- package/src/embeddings/manager.ts +13 -8
- package/src/embeddings/provider.ts +10 -3
- package/src/embeddings/vector-store.ts +21 -9
- package/src/factory.ts +33 -16
- package/src/index.ts +231 -9
- package/src/learning/analyzer.ts +21 -37
- package/src/learning/energy-evaluator.ts +282 -0
- package/src/learning/healing-orchestrator.ts +383 -0
- package/src/learning/index.ts +104 -13
- package/src/learning/instant-loop.ts +357 -0
- package/src/learning/knowledge-extractor.ts +470 -0
- package/src/learning/maintenance-scheduler.ts +271 -0
- package/src/learning/meta-learner.ts +59 -23
- package/src/learning/reflexion-generator.ts +273 -0
- package/src/learning/team-ingester.ts +499 -0
- package/src/learning/team-meta-learner.ts +558 -0
- package/src/learning/team-pipeline.ts +364 -0
- package/src/learning/trajectory-sources/dataclaw.ts +403 -0
- package/src/learning/trajectory-sources/entire.ts +251 -0
- package/src/learning/trajectory-sources/file.ts +136 -0
- package/src/learning/trajectory-sources/huggingface.ts +248 -0
- package/src/learning/trajectory-sources/in-memory.ts +61 -0
- package/src/learning/trajectory-sources/index.ts +15 -0
- package/src/learning/trajectory-sources/pipeline.ts +69 -0
- package/src/learning/unified-pipeline.ts +921 -0
- package/src/memory/candidate-retrieval.ts +71 -0
- package/src/memory/causal-store.ts +273 -0
- package/src/memory/coherence.ts +252 -0
- package/src/memory/experience.ts +217 -50
- package/src/memory/graph-layers/base.ts +184 -0
- package/src/memory/graph-layers/causal.ts +16 -0
- package/src/memory/graph-layers/entity.ts +16 -0
- package/src/memory/graph-layers/index.ts +5 -0
- package/src/memory/graph-layers/semantic.ts +16 -0
- package/src/memory/graph-layers/temporal.ts +16 -0
- package/src/memory/index.ts +88 -0
- package/src/memory/knowledge-bank.ts +1317 -0
- package/src/memory/knowledge-defrag.ts +329 -0
- package/src/memory/knowledge-graph.ts +361 -0
- package/src/memory/meta.ts +78 -96
- package/src/memory/playbook.ts +239 -75
- package/src/memory/reasoning-bank.ts +458 -0
- package/src/memory/reflexion.ts +122 -0
- package/src/memory/search-provider.ts +35 -0
- package/src/memory/search-providers/index.ts +3 -0
- package/src/memory/search-providers/minimem.ts +84 -0
- package/src/memory/search-providers/text-similarity.ts +35 -0
- package/src/memory/skill-exporter.ts +357 -0
- package/src/memory/system.ts +80 -11
- package/src/memory/team-experience.ts +604 -0
- package/src/memory/temporal-compressor.ts +409 -0
- package/src/persistence/index.ts +37 -0
- package/src/persistence/migrator.ts +298 -0
- package/src/persistence/serializers.ts +79 -0
- package/src/persistence/sqlite-persistence.ts +925 -0
- package/src/runtime/backends/acp-protocol.ts +231 -0
- package/src/runtime/backends/acp.ts +57 -196
- package/src/runtime/backends/index.ts +14 -0
- package/src/runtime/backends/macro-agent.ts +177 -0
- package/src/runtime/compute-provider.ts +206 -0
- package/src/runtime/flows/learning.ts +25 -42
- package/src/runtime/index.ts +22 -0
- package/src/runtime/manager.ts +167 -23
- package/src/runtime/types.ts +41 -0
- package/src/search/evaluator.ts +29 -4
- package/src/search/index.ts +19 -0
- package/src/search/moe-gate.ts +304 -0
- package/src/search/refinement-loop.ts +106 -12
- package/src/search/router.ts +111 -4
- package/src/search/team-router.ts +459 -0
- package/src/session-bank/git-reader.ts +200 -0
- package/src/session-bank/index.ts +26 -0
- package/src/session-bank/parser.ts +548 -0
- package/src/session-bank/session-bank.ts +485 -0
- package/src/session-bank/types.ts +176 -0
- package/src/surfacing/index.ts +23 -0
- package/src/surfacing/publisher.ts +23 -0
- package/src/surfacing/skill-library.ts +31 -0
- package/src/surfacing/skill-publisher.ts +191 -0
- package/src/surfacing/sqlite-storage-adapter.ts +285 -0
- package/src/surfacing/team-skill-library.ts +610 -0
- package/src/types/config.ts +282 -0
- package/src/types/dataclaw.ts +99 -0
- package/src/types/huggingface-transformers.d.ts +12 -0
- package/src/types/index.ts +159 -0
- package/src/types/knowledge-graph.ts +246 -0
- package/src/types/knowledge.ts +388 -0
- package/src/types/memory.ts +30 -0
- package/src/types/playbook.ts +4 -0
- package/src/types/team-meta.ts +212 -0
- package/src/types/team-playbook.ts +384 -0
- package/src/types/team-trajectory.ts +673 -0
- package/src/types/trajectory-source.ts +47 -0
- package/src/utils/error-classifier.ts +113 -0
- package/src/utils/frontmatter.ts +118 -0
- package/src/utils/index.ts +25 -0
- package/src/utils/partitioned-store.ts +299 -0
- package/src/utils/trajectory-helpers.ts +79 -0
- package/src/workspace/index.ts +48 -0
- package/src/workspace/runner.ts +281 -0
- package/src/workspace/skill-converter.ts +288 -0
- package/src/workspace/templates/index.ts +64 -0
- package/src/workspace/templates/knowledge-defrag.ts +223 -0
- package/src/workspace/templates/knowledge-extraction.ts +337 -0
- package/src/workspace/templates/meta-reflection.ts +208 -0
- package/src/workspace/templates/playbook-extraction.ts +240 -0
- package/src/workspace/templates/refinement-analysis.ts +162 -0
- package/src/workspace/templates/solution-evaluation.ts +199 -0
- package/src/workspace/templates/team-playbook-extraction.ts +631 -0
- package/src/workspace/templates/team-trajectory-analysis.ts +564 -0
- package/src/workspace/templates/trajectory-analysis.ts +234 -0
- package/src/workspace/templates/usage-inference.ts +163 -0
- package/src/workspace/types.ts +241 -0
- package/tests/atlas-knowledge.test.ts +165 -0
- package/tests/embeddings/inverted-index.test.ts +138 -0
- package/tests/feature-toggles.test.ts +275 -0
- package/tests/gap-fixes.test.ts +1116 -0
- package/tests/integration/cli-e2e.test.ts +621 -0
- package/tests/integration/dataclaw-e2e.test.ts +559 -0
- package/tests/integration/e2e.test.ts +412 -4
- package/tests/integration/entire-e2e.test.ts +376 -0
- package/tests/integration/huggingface-e2e.test.ts +627 -0
- package/tests/integration/persistence-e2e.test.ts +741 -0
- package/tests/integration/phase-e2e.test.ts +1143 -0
- package/tests/integration/session-bank.test.ts +231 -0
- package/tests/integration/sessionlog-e2e.test.ts +329 -0
- package/tests/integration/skill-tree-wiring.test.ts +152 -0
- package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
- package/tests/learning/analyzer.test.ts +1 -1
- package/tests/learning/dataclaw-trajectory-source.test.ts +642 -0
- package/tests/learning/energy-evaluator.test.ts +180 -0
- package/tests/learning/entire-trajectory-source.test.ts +380 -0
- package/tests/learning/healing-orchestrator.test.ts +269 -0
- package/tests/learning/huggingface-trajectory-source.test.ts +817 -0
- package/tests/learning/instant-loop.test.ts +243 -0
- package/tests/learning/knowledge-extractor.test.ts +491 -0
- package/tests/learning/maintenance-scheduler.test.ts +191 -0
- package/tests/learning/reflexion-generator.test.ts +411 -0
- package/tests/learning/team-ingester.test.ts +349 -0
- package/tests/learning/team-meta-learner.test.ts +618 -0
- package/tests/learning/team-pipeline.test.ts +334 -0
- package/tests/learning/trajectory-sources.test.ts +320 -0
- package/tests/learning/unified-pipeline.test.ts +322 -0
- package/tests/mcp/playbook-server.test.ts +6 -1
- package/tests/memory/causal-store.test.ts +276 -0
- package/tests/memory/coherence.test.ts +232 -0
- package/tests/memory/experience.test.ts +8 -3
- package/tests/memory/graph-layers/semantic.test.ts +219 -0
- package/tests/memory/knowledge-bank-extraction.test.ts +558 -0
- package/tests/memory/knowledge-bank.test.ts +705 -0
- package/tests/memory/knowledge-defrag.test.ts +366 -0
- package/tests/memory/knowledge-evolution.test.ts +563 -0
- package/tests/memory/knowledge-graph.test.ts +492 -0
- package/tests/memory/knowledge-inbox.test.ts +258 -0
- package/tests/memory/knowledge-minimem.test.ts +251 -0
- package/tests/memory/playbook.test.ts +307 -1
- package/tests/memory/provenance.test.ts +11 -2
- package/tests/memory/reasoning-bank.test.ts +239 -0
- package/tests/memory/reflexion.test.ts +166 -0
- package/tests/memory/skill-exporter.test.ts +475 -0
- package/tests/memory/system.test.ts +6 -1
- package/tests/memory/team-experience.test.ts +411 -0
- package/tests/memory/temporal-compressor.test.ts +318 -0
- package/tests/persistence/migrator.test.ts +1009 -0
- package/tests/persistence/sqlite-persistence.test.ts +635 -0
- package/tests/runtime/agent-manager.test.ts +7 -2
- package/tests/runtime/compute-provider.test.ts +288 -0
- package/tests/runtime/delegate.test.ts +354 -0
- package/tests/runtime/macro-agent-backend.test.ts +266 -0
- package/tests/search/moe-gate.test.ts +250 -0
- package/tests/search/refinement-loop.test.ts +11 -2
- package/tests/search/router.test.ts +81 -2
- package/tests/search/team-router.test.ts +376 -0
- package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +12 -0
- package/tests/session-bank/fixtures/multi-tool-session/metadata.json +28 -0
- package/tests/session-bank/fixtures/root-metadata.json +18 -0
- package/tests/session-bank/fixtures/sessionlog-root-metadata.json +16 -0
- package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +6 -0
- package/tests/session-bank/fixtures/sessionlog-session/metadata.json +55 -0
- package/tests/session-bank/fixtures/simple-session/full.jsonl +6 -0
- package/tests/session-bank/fixtures/simple-session/metadata.json +38 -0
- package/tests/session-bank/git-reader.test.ts +232 -0
- package/tests/session-bank/parser.test.ts +453 -0
- package/tests/session-bank/session-bank.test.ts +546 -0
- package/tests/surfacing/skill-library.test.ts +6 -1
- package/tests/surfacing/skill-publisher.test.ts +364 -0
- package/tests/surfacing/sqlite-storage-adapter.test.ts +206 -0
- package/tests/surfacing/team-skill-library.test.ts +444 -0
- package/tests/types/team-meta.test.ts +147 -0
- package/tests/types/team-playbook.test.ts +246 -0
- package/tests/types/team-trajectory.test.ts +557 -0
- package/tests/utils/frontmatter.test.ts +208 -0
- package/tests/utils/partitioned-store.test.ts +230 -0
- package/tests/workspace/full-flow.test.ts +845 -0
- package/tests/workspace/manager.test.ts +215 -0
- package/tests/workspace/runner.test.ts +336 -0
- package/tests/workspace/skill-converter.test.ts +205 -0
- package/tests/workspace/templates/knowledge-extraction.test.ts +235 -0
- package/tests/workspace/templates/team-playbook-extraction.test.ts +341 -0
- package/tests/workspace/templates/team-trajectory-analysis.test.ts +417 -0
- package/src/learning/llm-extractor.ts +0 -542
- package/src/learning/pipeline.ts +0 -244
- package/tests/learning/pipeline.test.ts +0 -176
|
@@ -0,0 +1,1080 @@
|
|
|
1
|
+
# Team-Aware Learning for OpenTeams + cognitive-core
|
|
2
|
+
|
|
3
|
+
## Problem Statement
|
|
4
|
+
|
|
5
|
+
**cognitive-core** learns how individual agents solve problems (trajectories, playbooks, meta-strategies). **OpenTeams** defines how agents are organized into teams (topology, roles, communication channels). Neither system currently learns about *teamwork itself*:
|
|
6
|
+
|
|
7
|
+
- Which team compositions work for which types of tasks?
|
|
8
|
+
- Which communication topologies minimize overhead and maximize throughput?
|
|
9
|
+
- Which role assignments produce the best collective outcomes?
|
|
10
|
+
- What coordination patterns should be reused, and which are anti-patterns?
|
|
11
|
+
|
|
12
|
+
This proposal introduces **team-aware learning** — extending both systems so that teams learn how to work together, not just how individuals solve problems.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Architecture Overview
|
|
17
|
+
|
|
18
|
+
Three new learning layers, mirroring cognitive-core's existing individual learning:
|
|
19
|
+
|
|
20
|
+
| Individual (existing) | Team (proposed) |
|
|
21
|
+
| ------------------------- | --------------------------------------- |
|
|
22
|
+
| Trajectory (agent steps) | **TeamTrajectory** (team events) |
|
|
23
|
+
| Playbook (task patterns) | **TeamPlaybook** (coordination patterns)|
|
|
24
|
+
| MetaObservation (routing) | **TeamMetaObservation** (composition) |
|
|
25
|
+
|
|
26
|
+
The design principle: **team learning is structurally parallel to individual learning**, using the same extract → store → match → evolve cycle, but operating on team-level signals instead of agent-level ReAct steps.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Layer 1: Team Trajectories
|
|
31
|
+
|
|
32
|
+
### What It Records
|
|
33
|
+
|
|
34
|
+
A `TeamTrajectory` captures the full lifecycle of a team executing a collective task. Where an individual trajectory records `thought → action → observation`, a team trajectory records **events** across all members.
|
|
35
|
+
|
|
36
|
+
### Type Definitions
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// src/types/team-trajectory.ts
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* A single event in a team's execution history.
|
|
43
|
+
* These are the "steps" of team-level learning.
|
|
44
|
+
*/
|
|
45
|
+
export interface TeamEvent {
|
|
46
|
+
/** When this event occurred */
|
|
47
|
+
timestamp: Date;
|
|
48
|
+
/** Which event type */
|
|
49
|
+
type: TeamEventType;
|
|
50
|
+
/** Which agent produced this event */
|
|
51
|
+
agentId: string;
|
|
52
|
+
/** Role of the agent at event time */
|
|
53
|
+
role: string;
|
|
54
|
+
/** Event-specific payload */
|
|
55
|
+
payload: Record<string, unknown>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type TeamEventType =
|
|
59
|
+
| 'agent_spawned' // New member joined
|
|
60
|
+
| 'agent_shutdown' // Member left
|
|
61
|
+
| 'task_delegated' // Work assigned to a member
|
|
62
|
+
| 'task_completed' // Member finished assigned work
|
|
63
|
+
| 'task_failed' // Member failed assigned work
|
|
64
|
+
| 'signal_emitted' // Signal sent on a channel
|
|
65
|
+
| 'message_sent' // Direct message between members
|
|
66
|
+
| 'message_broadcast' // Broadcast to entire team
|
|
67
|
+
| 'plan_proposed' // A plan was proposed for approval
|
|
68
|
+
| 'plan_approved' // A plan was approved
|
|
69
|
+
| 'plan_rejected' // A plan was rejected
|
|
70
|
+
| 'checkpoint_reached' // Execution checkpoint (GSD-style)
|
|
71
|
+
| 'role_changed' // Agent's role was modified
|
|
72
|
+
| 'escalation'; // Work escalated to different role
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Interaction edge in the team communication graph.
|
|
76
|
+
* Built from events during analysis.
|
|
77
|
+
*/
|
|
78
|
+
export interface InteractionEdge {
|
|
79
|
+
/** Sender role */
|
|
80
|
+
from: string;
|
|
81
|
+
/** Receiver role */
|
|
82
|
+
to: string;
|
|
83
|
+
/** Number of interactions */
|
|
84
|
+
count: number;
|
|
85
|
+
/** Types of interactions */
|
|
86
|
+
types: TeamEventType[];
|
|
87
|
+
/** Average latency between send and response (ms) */
|
|
88
|
+
avgResponseLatencyMs?: number;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Coordination metrics computed from team events.
|
|
93
|
+
*/
|
|
94
|
+
export interface CoordinationMetrics {
|
|
95
|
+
/** Total wall time for the team execution */
|
|
96
|
+
totalWallTimeSeconds: number;
|
|
97
|
+
/** Time from team creation to first task completion */
|
|
98
|
+
timeToFirstOutputSeconds: number;
|
|
99
|
+
/** Fraction of total tokens spent on coordination vs. production */
|
|
100
|
+
coordinationOverheadRatio: number;
|
|
101
|
+
/** Agent with most inbound messages (potential bottleneck) */
|
|
102
|
+
bottleneckAgent?: string;
|
|
103
|
+
/** Number of communication cycles (back-and-forth exchanges) */
|
|
104
|
+
communicationCycles: number;
|
|
105
|
+
/** Maximum task dependency chain length executed */
|
|
106
|
+
maxDependencyDepth: number;
|
|
107
|
+
/** Number of tasks that were re-delegated after failure */
|
|
108
|
+
reDelegationCount: number;
|
|
109
|
+
/** Parallelism efficiency: tasks completed concurrently / total tasks */
|
|
110
|
+
parallelismRatio: number;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Per-member outcome within the team trajectory.
|
|
115
|
+
*/
|
|
116
|
+
export interface MemberOutcome {
|
|
117
|
+
agentId: string;
|
|
118
|
+
role: string;
|
|
119
|
+
tasksAssigned: number;
|
|
120
|
+
tasksCompleted: number;
|
|
121
|
+
tasksFailed: number;
|
|
122
|
+
llmCalls: number;
|
|
123
|
+
totalTokens: number;
|
|
124
|
+
/** Link to individual trajectory if available */
|
|
125
|
+
trajectoryId?: string;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* TeamTrajectory - Complete record of a team's collective execution.
|
|
130
|
+
* The team-level analog of Trajectory.
|
|
131
|
+
*/
|
|
132
|
+
export interface TeamTrajectory {
|
|
133
|
+
id: string;
|
|
134
|
+
|
|
135
|
+
// === TEAM IDENTITY ===
|
|
136
|
+
/** Team name (from OpenTeams) */
|
|
137
|
+
teamName: string;
|
|
138
|
+
/** Template that defined this team */
|
|
139
|
+
templateName: string;
|
|
140
|
+
|
|
141
|
+
// === TEAM STRUCTURE (snapshot at execution time) ===
|
|
142
|
+
/** Topology type used */
|
|
143
|
+
topologyType: 'hierarchical' | 'flat' | 'wave' | 'custom';
|
|
144
|
+
/** Roles that participated */
|
|
145
|
+
roles: string[];
|
|
146
|
+
/** Number of agents */
|
|
147
|
+
teamSize: number;
|
|
148
|
+
/** Communication enforcement mode */
|
|
149
|
+
enforcement: 'strict' | 'permissive' | 'audit';
|
|
150
|
+
|
|
151
|
+
// === TASK ===
|
|
152
|
+
/** High-level description of what the team was trying to accomplish */
|
|
153
|
+
objective: string;
|
|
154
|
+
/** Domain of the work */
|
|
155
|
+
domain: string;
|
|
156
|
+
/** Task complexity estimate */
|
|
157
|
+
complexity: 'simple' | 'moderate' | 'complex' | 'epic';
|
|
158
|
+
|
|
159
|
+
// === EVENTS (the "steps") ===
|
|
160
|
+
events: TeamEvent[];
|
|
161
|
+
|
|
162
|
+
// === DERIVED STRUCTURE ===
|
|
163
|
+
/** Communication graph (built from events) */
|
|
164
|
+
interactionGraph: InteractionEdge[];
|
|
165
|
+
/** Coordination metrics (computed from events) */
|
|
166
|
+
metrics: CoordinationMetrics;
|
|
167
|
+
|
|
168
|
+
// === OUTCOMES ===
|
|
169
|
+
/** Per-member outcomes */
|
|
170
|
+
memberOutcomes: MemberOutcome[];
|
|
171
|
+
/** Collective outcome */
|
|
172
|
+
outcome: TeamOutcome;
|
|
173
|
+
|
|
174
|
+
/** When the trajectory was recorded */
|
|
175
|
+
timestamp: Date;
|
|
176
|
+
/** Additional metadata */
|
|
177
|
+
metadata: Record<string, unknown>;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Collective team outcome.
|
|
182
|
+
*/
|
|
183
|
+
export interface TeamOutcome {
|
|
184
|
+
success: boolean;
|
|
185
|
+
/** 0-1 score for partial success */
|
|
186
|
+
partialScore: number;
|
|
187
|
+
/** Quality assessment */
|
|
188
|
+
quality: 'excellent' | 'good' | 'acceptable' | 'poor';
|
|
189
|
+
/** Total LLM calls across all members */
|
|
190
|
+
totalLlmCalls: number;
|
|
191
|
+
/** Total tokens across all members */
|
|
192
|
+
totalTokens: number;
|
|
193
|
+
/** Total wall time */
|
|
194
|
+
totalWallTimeSeconds: number;
|
|
195
|
+
/** Optional error information */
|
|
196
|
+
errorInfo?: string;
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### How It Integrates
|
|
201
|
+
|
|
202
|
+
**Recording** happens in OpenTeams. The signal event log already captures emissions; we extend it to produce `TeamTrajectory` objects:
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
┌─────────────────────────────────────────────────┐
|
|
206
|
+
│ OpenTeams (runtime) │
|
|
207
|
+
│ │
|
|
208
|
+
│ signal_events table ──► TeamTrajectoryBuilder │
|
|
209
|
+
│ messages table ──► (new component) │
|
|
210
|
+
│ tasks table ──► │
|
|
211
|
+
│ members table ──► │ │
|
|
212
|
+
│ ▼ │
|
|
213
|
+
│ TeamTrajectory │
|
|
214
|
+
│ │ │
|
|
215
|
+
└───────────────────────────────┼─────────────────┘
|
|
216
|
+
│
|
|
217
|
+
export via CLI or API
|
|
218
|
+
│
|
|
219
|
+
▼
|
|
220
|
+
┌─────────────────────────────────────────────────┐
|
|
221
|
+
│ cognitive-core │
|
|
222
|
+
│ │
|
|
223
|
+
│ TeamLearningPipeline.processTeamTrajectory() │
|
|
224
|
+
│ │ │
|
|
225
|
+
│ ├── store in TeamExperienceMemory │
|
|
226
|
+
│ ├── analyze with TeamTrajectoryAnalyzer │
|
|
227
|
+
│ └── accumulate for batch learning │
|
|
228
|
+
│ │
|
|
229
|
+
└─────────────────────────────────────────────────┘
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**OpenTeams additions:**
|
|
233
|
+
- New `TeamTrajectoryBuilder` service that aggregates existing tables into `TeamTrajectory`
|
|
234
|
+
- New CLI command: `openteams team export-trajectory <team-name>` to export team trajectory as JSON
|
|
235
|
+
- Hook into team lifecycle: automatically build trajectory when team shuts down
|
|
236
|
+
|
|
237
|
+
**cognitive-core additions:**
|
|
238
|
+
- New `TeamExperienceMemory` store (parallel to `ExperienceMemory`)
|
|
239
|
+
- New `TeamTrajectoryAnalyzer` (parallel to `TrajectoryAnalyzer`)
|
|
240
|
+
- Extend `MemorySystem` with `teamExperiences` field
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Layer 2: Team Playbooks
|
|
245
|
+
|
|
246
|
+
### What They Capture
|
|
247
|
+
|
|
248
|
+
Team Playbooks are coordination patterns extracted from successful team trajectories. They answer: *"Given this type of task, how should a team be organized and coordinated?"*
|
|
249
|
+
|
|
250
|
+
### Type Definitions
|
|
251
|
+
|
|
252
|
+
```typescript
|
|
253
|
+
// src/types/team-playbook.ts
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* TeamPlaybook - Learned coordination pattern.
|
|
257
|
+
* The team-level analog of Playbook.
|
|
258
|
+
*/
|
|
259
|
+
export interface TeamPlaybook {
|
|
260
|
+
id: string;
|
|
261
|
+
name: string; // kebab-case, e.g. "wave-parallel-refactoring"
|
|
262
|
+
|
|
263
|
+
// === APPLICABILITY (when to use this team pattern) ===
|
|
264
|
+
applicability: TeamPlaybookApplicability;
|
|
265
|
+
|
|
266
|
+
// === COMPOSITION (what team to build) ===
|
|
267
|
+
composition: TeamCompositionGuidance;
|
|
268
|
+
|
|
269
|
+
// === COORDINATION (how the team should work together) ===
|
|
270
|
+
coordination: TeamCoordinationGuidance;
|
|
271
|
+
|
|
272
|
+
// === VERIFICATION ===
|
|
273
|
+
verification: TeamPlaybookVerification;
|
|
274
|
+
|
|
275
|
+
// === EVOLUTION ===
|
|
276
|
+
evolution: TeamPlaybookEvolution;
|
|
277
|
+
|
|
278
|
+
// === METADATA ===
|
|
279
|
+
confidence: number; // 0-1
|
|
280
|
+
complexity: 'simple' | 'moderate' | 'complex';
|
|
281
|
+
createdAt: Date;
|
|
282
|
+
updatedAt: Date;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* When to use this team pattern.
|
|
287
|
+
*/
|
|
288
|
+
export interface TeamPlaybookApplicability {
|
|
289
|
+
/** Task types this pattern works for */
|
|
290
|
+
taskTypes: string[];
|
|
291
|
+
// e.g. "full-stack feature", "large refactoring", "bug triage"
|
|
292
|
+
|
|
293
|
+
/** Scale indicators */
|
|
294
|
+
teamSizeRange: { min: number; max: number };
|
|
295
|
+
|
|
296
|
+
/** Complexity levels this pattern handles */
|
|
297
|
+
complexityLevels: Array<'simple' | 'moderate' | 'complex' | 'epic'>;
|
|
298
|
+
|
|
299
|
+
/** Domains where this pattern has been proven */
|
|
300
|
+
domains: string[];
|
|
301
|
+
|
|
302
|
+
/** When NOT to use this pattern */
|
|
303
|
+
antiPatterns: string[];
|
|
304
|
+
// e.g. "single-file changes", "time-critical hotfixes"
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* How to compose the team.
|
|
309
|
+
*/
|
|
310
|
+
export interface TeamCompositionGuidance {
|
|
311
|
+
/** Recommended topology */
|
|
312
|
+
topology: 'hierarchical' | 'flat' | 'wave' | 'custom';
|
|
313
|
+
|
|
314
|
+
/** Role specifications */
|
|
315
|
+
roles: TeamRoleSpec[];
|
|
316
|
+
|
|
317
|
+
/** Spawn rules: which roles can spawn which */
|
|
318
|
+
spawnRules: Record<string, string[]>;
|
|
319
|
+
|
|
320
|
+
/** Recommended enforcement mode */
|
|
321
|
+
enforcement: 'strict' | 'permissive' | 'audit';
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Specification for a role within the team pattern.
|
|
326
|
+
*/
|
|
327
|
+
export interface TeamRoleSpec {
|
|
328
|
+
/** Role name */
|
|
329
|
+
role: string;
|
|
330
|
+
/** Why this role is needed */
|
|
331
|
+
rationale: string;
|
|
332
|
+
/** Required capabilities */
|
|
333
|
+
capabilities: string[];
|
|
334
|
+
/** Whether this role is essential or optional */
|
|
335
|
+
optional: boolean;
|
|
336
|
+
/** Recommended model tier */
|
|
337
|
+
modelTier?: 'fast' | 'balanced' | 'capable';
|
|
338
|
+
/** Recommended spawn position */
|
|
339
|
+
spawnAs: 'root' | 'companion' | 'on-demand';
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* How team members should coordinate.
|
|
344
|
+
*/
|
|
345
|
+
export interface TeamCoordinationGuidance {
|
|
346
|
+
/** Execution model */
|
|
347
|
+
executionModel: 'sequential' | 'wave-parallel' | 'fully-parallel' | 'pipeline';
|
|
348
|
+
|
|
349
|
+
/** Communication channels to establish */
|
|
350
|
+
channels: TeamChannelSpec[];
|
|
351
|
+
|
|
352
|
+
/** Key interaction patterns */
|
|
353
|
+
interactionPatterns: InteractionPattern[];
|
|
354
|
+
|
|
355
|
+
/** Task delegation strategy */
|
|
356
|
+
delegationStrategy: string;
|
|
357
|
+
// e.g. "vertical-slice decomposition", "layer-based splitting"
|
|
358
|
+
|
|
359
|
+
/** Checkpoint protocol */
|
|
360
|
+
checkpoints?: string[];
|
|
361
|
+
// e.g. "verify after planning", "human-review before merge"
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Specification for a communication channel.
|
|
366
|
+
*/
|
|
367
|
+
export interface TeamChannelSpec {
|
|
368
|
+
name: string;
|
|
369
|
+
signals: string[];
|
|
370
|
+
subscribers: string[]; // roles
|
|
371
|
+
emitters: string[]; // roles
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* A learned interaction pattern between roles.
|
|
376
|
+
*/
|
|
377
|
+
export interface InteractionPattern {
|
|
378
|
+
/** Short name */
|
|
379
|
+
name: string;
|
|
380
|
+
/** Description of when/how this pattern occurs */
|
|
381
|
+
description: string;
|
|
382
|
+
/** Roles involved */
|
|
383
|
+
roles: string[];
|
|
384
|
+
/** Frequency: how often this pattern should occur */
|
|
385
|
+
frequency: 'once' | 'per-task' | 'continuous';
|
|
386
|
+
/** Whether this pattern was correlated with success */
|
|
387
|
+
correlatedWithSuccess: boolean;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* How to verify the team pattern worked.
|
|
392
|
+
*/
|
|
393
|
+
export interface TeamPlaybookVerification {
|
|
394
|
+
/** Metrics that indicate success */
|
|
395
|
+
successIndicators: string[];
|
|
396
|
+
// e.g. "coordination overhead < 30%", "all tasks completed", "no re-delegations"
|
|
397
|
+
|
|
398
|
+
/** Metrics that indicate failure */
|
|
399
|
+
failureIndicators: string[];
|
|
400
|
+
// e.g. "bottleneck agent with >50% messages", "parallelism ratio < 0.3"
|
|
401
|
+
|
|
402
|
+
/** How to restructure if the pattern isn't working */
|
|
403
|
+
restructuringStrategy?: string;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Evolution tracking for team playbooks.
|
|
408
|
+
*/
|
|
409
|
+
export interface TeamPlaybookEvolution {
|
|
410
|
+
version: string;
|
|
411
|
+
/** Source team trajectory IDs */
|
|
412
|
+
createdFrom: string[];
|
|
413
|
+
/** Refinements from experience */
|
|
414
|
+
refinements: TeamRefinement[];
|
|
415
|
+
successCount: number;
|
|
416
|
+
failureCount: number;
|
|
417
|
+
lastUsed?: Date;
|
|
418
|
+
/** Average metrics across successful uses */
|
|
419
|
+
avgMetrics?: {
|
|
420
|
+
coordinationOverhead: number;
|
|
421
|
+
parallelismRatio: number;
|
|
422
|
+
timeToFirstOutput: number;
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Context-specific refinement to team coordination.
|
|
428
|
+
*/
|
|
429
|
+
export interface TeamRefinement {
|
|
430
|
+
context: string;
|
|
431
|
+
// e.g. "monorepo with >10 packages", "greenfield project"
|
|
432
|
+
adjustment: string;
|
|
433
|
+
// e.g. "add a dedicated package-coordinator role"
|
|
434
|
+
source: 'failure' | 'success' | 'manual';
|
|
435
|
+
addedAt: Date;
|
|
436
|
+
}
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### Extraction Pipeline
|
|
440
|
+
|
|
441
|
+
Team playbooks are extracted from batches of successful team trajectories, following the same pattern as individual playbook extraction:
|
|
442
|
+
|
|
443
|
+
```
|
|
444
|
+
TeamTrajectories (batch of 5+)
|
|
445
|
+
│
|
|
446
|
+
▼
|
|
447
|
+
TeamPlaybookExtractor
|
|
448
|
+
│
|
|
449
|
+
├── Group by task type + domain
|
|
450
|
+
│
|
|
451
|
+
├── For each group:
|
|
452
|
+
│ ├── Identify common topology patterns
|
|
453
|
+
│ ├── Extract successful role compositions
|
|
454
|
+
│ ├── Detect effective communication patterns
|
|
455
|
+
│ ├── Compute average coordination metrics
|
|
456
|
+
│ └── Identify anti-patterns from failures
|
|
457
|
+
│
|
|
458
|
+
├── Deduplicate against existing team playbooks
|
|
459
|
+
│
|
|
460
|
+
└── Output: new TeamPlaybooks + updates to existing ones
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
### Team Playbook Examples
|
|
464
|
+
|
|
465
|
+
**Example 1: Wave-Parallel Feature Development**
|
|
466
|
+
```yaml
|
|
467
|
+
name: wave-parallel-feature-development
|
|
468
|
+
applicability:
|
|
469
|
+
taskTypes: ["full-stack feature", "multi-component feature"]
|
|
470
|
+
teamSizeRange: { min: 3, max: 6 }
|
|
471
|
+
complexityLevels: [moderate, complex]
|
|
472
|
+
domains: [web, fullstack]
|
|
473
|
+
antiPatterns: ["single-file change", "documentation-only"]
|
|
474
|
+
|
|
475
|
+
composition:
|
|
476
|
+
topology: wave
|
|
477
|
+
roles:
|
|
478
|
+
- role: planner
|
|
479
|
+
rationale: "Decomposes feature into vertical slices"
|
|
480
|
+
capabilities: [planning, decomposition, architecture]
|
|
481
|
+
optional: false
|
|
482
|
+
modelTier: capable
|
|
483
|
+
spawnAs: root
|
|
484
|
+
- role: executor
|
|
485
|
+
rationale: "Implements individual slices"
|
|
486
|
+
capabilities: [code.write, code.test, file.read]
|
|
487
|
+
optional: false
|
|
488
|
+
modelTier: balanced
|
|
489
|
+
spawnAs: on-demand
|
|
490
|
+
- role: verifier
|
|
491
|
+
rationale: "Validates integration and quality"
|
|
492
|
+
capabilities: [code.review, exec.test, quality.check]
|
|
493
|
+
optional: false
|
|
494
|
+
modelTier: capable
|
|
495
|
+
spawnAs: companion
|
|
496
|
+
enforcement: permissive
|
|
497
|
+
|
|
498
|
+
coordination:
|
|
499
|
+
executionModel: wave-parallel
|
|
500
|
+
delegationStrategy: "vertical-slice decomposition"
|
|
501
|
+
channels:
|
|
502
|
+
- name: planning_events
|
|
503
|
+
signals: [PLAN_READY, WAVE_COMPLETE]
|
|
504
|
+
subscribers: [executor, verifier]
|
|
505
|
+
emitters: [planner]
|
|
506
|
+
- name: execution_events
|
|
507
|
+
signals: [TASK_DONE, TASK_FAILED, NEED_HELP]
|
|
508
|
+
subscribers: [planner, verifier]
|
|
509
|
+
emitters: [executor]
|
|
510
|
+
interactionPatterns:
|
|
511
|
+
- name: plan-then-execute
|
|
512
|
+
description: "Planner creates all tasks before any executor starts"
|
|
513
|
+
roles: [planner, executor]
|
|
514
|
+
frequency: once
|
|
515
|
+
correlatedWithSuccess: true
|
|
516
|
+
- name: direct-verifier-subscription
|
|
517
|
+
description: "Verifier subscribes directly to executor output, not via planner"
|
|
518
|
+
roles: [executor, verifier]
|
|
519
|
+
frequency: continuous
|
|
520
|
+
correlatedWithSuccess: true
|
|
521
|
+
|
|
522
|
+
verification:
|
|
523
|
+
successIndicators:
|
|
524
|
+
- "coordination overhead < 25%"
|
|
525
|
+
- "all wave tasks complete before next wave"
|
|
526
|
+
- "verifier catches issues before integration"
|
|
527
|
+
failureIndicators:
|
|
528
|
+
- "executors blocked waiting for planner"
|
|
529
|
+
- "verifier not triggered until all work done"
|
|
530
|
+
|
|
531
|
+
evolution:
|
|
532
|
+
version: "1.0.0"
|
|
533
|
+
createdFrom: ["team-traj-001", "team-traj-002", "team-traj-005"]
|
|
534
|
+
refinements: []
|
|
535
|
+
successCount: 5
|
|
536
|
+
failureCount: 1
|
|
537
|
+
avgMetrics:
|
|
538
|
+
coordinationOverhead: 0.22
|
|
539
|
+
parallelismRatio: 0.65
|
|
540
|
+
timeToFirstOutput: 45
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
**Example 2: Bottleneck Anti-Pattern**
|
|
544
|
+
```yaml
|
|
545
|
+
name: avoid-orchestrator-bottleneck
|
|
546
|
+
applicability:
|
|
547
|
+
taskTypes: ["any"]
|
|
548
|
+
teamSizeRange: { min: 4, max: 999 }
|
|
549
|
+
complexityLevels: [moderate, complex, epic]
|
|
550
|
+
antiPatterns: ["teams with < 4 members"]
|
|
551
|
+
|
|
552
|
+
composition:
|
|
553
|
+
# This is an anti-pattern playbook — it describes what NOT to do
|
|
554
|
+
topology: hierarchical # the problematic topology
|
|
555
|
+
|
|
556
|
+
coordination:
|
|
557
|
+
interactionPatterns:
|
|
558
|
+
- name: orchestrator-relay
|
|
559
|
+
description: "All communication routed through orchestrator creates bottleneck"
|
|
560
|
+
roles: [orchestrator]
|
|
561
|
+
frequency: continuous
|
|
562
|
+
correlatedWithSuccess: false # anti-pattern!
|
|
563
|
+
|
|
564
|
+
verification:
|
|
565
|
+
failureIndicators:
|
|
566
|
+
- "orchestrator receives >50% of all messages"
|
|
567
|
+
- "response latency increases with team size"
|
|
568
|
+
- "executors idle waiting for orchestrator response"
|
|
569
|
+
restructuringStrategy: >
|
|
570
|
+
Replace hub-and-spoke with direct peer routes for operational signals.
|
|
571
|
+
Keep orchestrator for lifecycle events only (spawn, shutdown, phase transitions).
|
|
572
|
+
Establish topic-based channels for work coordination.
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
|
|
577
|
+
## Layer 3: Team Meta-Learning
|
|
578
|
+
|
|
579
|
+
### What It Observes
|
|
580
|
+
|
|
581
|
+
Team meta-learning observes patterns about team *formation and composition* decisions — learning which team configurations work for which contexts.
|
|
582
|
+
|
|
583
|
+
### Type Definitions
|
|
584
|
+
|
|
585
|
+
```typescript
|
|
586
|
+
// src/types/team-meta.ts
|
|
587
|
+
|
|
588
|
+
/**
|
|
589
|
+
* TeamMetaObservation - Records team formation decisions and outcomes.
|
|
590
|
+
* The team-level analog of MetaObservation.
|
|
591
|
+
*/
|
|
592
|
+
export interface TeamMetaObservation {
|
|
593
|
+
id: string;
|
|
594
|
+
/** Source team trajectory */
|
|
595
|
+
teamTrajectoryId: string;
|
|
596
|
+
|
|
597
|
+
// === FORMATION DECISION ===
|
|
598
|
+
formation: FormationObservation;
|
|
599
|
+
|
|
600
|
+
// === COMPOSITION EFFECTIVENESS ===
|
|
601
|
+
compositionEffectiveness: CompositionObservation;
|
|
602
|
+
|
|
603
|
+
// === COORDINATION EFFECTIVENESS ===
|
|
604
|
+
coordinationEffectiveness: CoordinationObservation;
|
|
605
|
+
|
|
606
|
+
// === OUTCOME ===
|
|
607
|
+
outcome: TeamOutcomeObservation;
|
|
608
|
+
|
|
609
|
+
// === LESSONS ===
|
|
610
|
+
lessons: TeamLessonsLearned;
|
|
611
|
+
|
|
612
|
+
timestamp: Date;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* How the team was formed and why.
|
|
617
|
+
*/
|
|
618
|
+
export interface FormationObservation {
|
|
619
|
+
/** Was a team playbook used to form this team? */
|
|
620
|
+
playbookUsed?: string;
|
|
621
|
+
/** Was the team formed from a template or ad-hoc? */
|
|
622
|
+
formationMethod: 'template' | 'playbook' | 'manual' | 'adaptive';
|
|
623
|
+
/** Confidence in the formation decision */
|
|
624
|
+
confidence: number;
|
|
625
|
+
/** Reasoning for formation choice */
|
|
626
|
+
reasoning: string;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* How effective was the team composition?
|
|
631
|
+
*/
|
|
632
|
+
export interface CompositionObservation {
|
|
633
|
+
/** Were all roles utilized? */
|
|
634
|
+
roleUtilization: Record<string, number>; // role → 0-1 utilization
|
|
635
|
+
/** Were any roles missing that would have helped? */
|
|
636
|
+
missingRoles: string[];
|
|
637
|
+
/** Were any roles redundant? */
|
|
638
|
+
redundantRoles: string[];
|
|
639
|
+
/** Was team size appropriate? */
|
|
640
|
+
teamSizeAssessment: 'too-small' | 'right-sized' | 'too-large';
|
|
641
|
+
/** Was the topology appropriate? */
|
|
642
|
+
topologyAssessment: 'effective' | 'neutral' | 'hindering';
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
/**
|
|
646
|
+
* How effective was the coordination?
|
|
647
|
+
*/
|
|
648
|
+
export interface CoordinationObservation {
|
|
649
|
+
/** Was enforcement mode appropriate? */
|
|
650
|
+
enforcementAssessment: 'too-strict' | 'appropriate' | 'too-loose';
|
|
651
|
+
/** Were communication channels well-defined? */
|
|
652
|
+
channelEffectiveness: 'helpful' | 'neutral' | 'noisy';
|
|
653
|
+
/** Were there coordination bottlenecks? */
|
|
654
|
+
bottlenecks: string[];
|
|
655
|
+
/** Actual coordination overhead ratio */
|
|
656
|
+
coordinationOverhead: number;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* Team outcome assessment.
|
|
661
|
+
*/
|
|
662
|
+
export interface TeamOutcomeObservation {
|
|
663
|
+
success: boolean;
|
|
664
|
+
quality: 'excellent' | 'good' | 'acceptable' | 'poor';
|
|
665
|
+
/** Was this faster than a single agent would have been? (estimated) */
|
|
666
|
+
speedupEstimate: number; // >1 means team was faster
|
|
667
|
+
/** Cost efficiency: quality / tokens */
|
|
668
|
+
costEfficiency: number;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
/**
|
|
672
|
+
* Lessons about team formation and coordination.
|
|
673
|
+
*/
|
|
674
|
+
export interface TeamLessonsLearned {
|
|
675
|
+
/** What team patterns worked */
|
|
676
|
+
whatWorked: string[];
|
|
677
|
+
/** What team patterns didn't work */
|
|
678
|
+
whatFailed: string[];
|
|
679
|
+
/** Suggestions for future team formation */
|
|
680
|
+
formationSuggestions: string[];
|
|
681
|
+
/** Suggestions for future coordination */
|
|
682
|
+
coordinationSuggestions: string[];
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/**
|
|
686
|
+
* TeamMetaStrategy - Learned patterns about team formation.
|
|
687
|
+
* The team-level analog of MetaStrategy.
|
|
688
|
+
*/
|
|
689
|
+
export interface TeamMetaStrategy {
|
|
690
|
+
id: string;
|
|
691
|
+
name: string;
|
|
692
|
+
|
|
693
|
+
// When to apply this team meta-strategy
|
|
694
|
+
condition: TeamMetaCondition;
|
|
695
|
+
|
|
696
|
+
// What formation/coordination adjustments to make
|
|
697
|
+
adjustment: TeamMetaAdjustment;
|
|
698
|
+
|
|
699
|
+
// Track effectiveness
|
|
700
|
+
applicationCount: number;
|
|
701
|
+
successRate: number;
|
|
702
|
+
|
|
703
|
+
createdAt: Date;
|
|
704
|
+
updatedAt: Date;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* Conditions for applying a team meta-strategy.
|
|
709
|
+
*/
|
|
710
|
+
export interface TeamMetaCondition {
|
|
711
|
+
/** Task characteristics that trigger this strategy */
|
|
712
|
+
taskCharacteristics: string[];
|
|
713
|
+
// e.g. "cross-cutting concern", "large codebase", "tight deadline"
|
|
714
|
+
|
|
715
|
+
/** Available resources */
|
|
716
|
+
resourceConstraints: string[];
|
|
717
|
+
// e.g. "limited token budget", "max 3 agents"
|
|
718
|
+
|
|
719
|
+
/** Domain context */
|
|
720
|
+
domains: string[];
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
/**
|
|
724
|
+
* Adjustments to team formation and coordination.
|
|
725
|
+
*/
|
|
726
|
+
export interface TeamMetaAdjustment {
|
|
727
|
+
/** Topology recommendation */
|
|
728
|
+
topologyBias?: Record<string, number>;
|
|
729
|
+
// e.g. { "wave": 0.8, "hierarchical": -0.3 }
|
|
730
|
+
|
|
731
|
+
/** Team size adjustment */
|
|
732
|
+
teamSizeAdjustment: 'increase' | 'decrease' | 'maintain';
|
|
733
|
+
|
|
734
|
+
/** Role adjustments */
|
|
735
|
+
roleAdjustments: string[];
|
|
736
|
+
// e.g. "add dedicated verifier for complex tasks"
|
|
737
|
+
|
|
738
|
+
/** Coordination hints */
|
|
739
|
+
coordinationHints: string[];
|
|
740
|
+
// e.g. "use direct peer routes instead of hub-and-spoke"
|
|
741
|
+
|
|
742
|
+
/** Enforcement mode recommendation */
|
|
743
|
+
enforcementBias?: 'strict' | 'permissive' | 'audit';
|
|
744
|
+
}
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
---
|
|
748
|
+
|
|
749
|
+
## Integration Architecture
|
|
750
|
+
|
|
751
|
+
### Where Code Lives
|
|
752
|
+
|
|
753
|
+
```
|
|
754
|
+
cognitive-core/
|
|
755
|
+
src/
|
|
756
|
+
types/
|
|
757
|
+
team-trajectory.ts ← NEW: TeamTrajectory, TeamEvent, etc.
|
|
758
|
+
team-playbook.ts ← NEW: TeamPlaybook, composition/coordination guidance
|
|
759
|
+
team-meta.ts ← NEW: TeamMetaObservation, TeamMetaStrategy
|
|
760
|
+
index.ts ← MODIFIED: export new team types
|
|
761
|
+
config.ts ← MODIFIED: add TeamLearningConfig
|
|
762
|
+
|
|
763
|
+
memory/
|
|
764
|
+
team-experience.ts ← NEW: TeamExperienceMemory (stores team trajectories)
|
|
765
|
+
team-playbook.ts ← NEW: TeamPlaybookLibrary
|
|
766
|
+
team-meta.ts ← NEW: TeamMetaMemory
|
|
767
|
+
system.ts ← MODIFIED: add team memory fields
|
|
768
|
+
|
|
769
|
+
learning/
|
|
770
|
+
team-pipeline.ts ← NEW: TeamLearningPipeline
|
|
771
|
+
team-analyzer.ts ← NEW: TeamTrajectoryAnalyzer (credit assignment for roles)
|
|
772
|
+
team-playbook-extractor.ts ← NEW: Extract team playbooks from trajectories
|
|
773
|
+
team-meta-learner.ts ← NEW: Learn about team formation
|
|
774
|
+
|
|
775
|
+
search/
|
|
776
|
+
team-router.ts ← NEW: Recommend team composition for a task
|
|
777
|
+
|
|
778
|
+
surfacing/
|
|
779
|
+
team-skill-library.ts ← NEW: Surface team playbooks for team formation
|
|
780
|
+
|
|
781
|
+
atlas.ts ← MODIFIED: add team-aware methods
|
|
782
|
+
|
|
783
|
+
openteams/
|
|
784
|
+
src/
|
|
785
|
+
services/
|
|
786
|
+
trajectory-service.ts ← NEW: Build TeamTrajectory from DB state
|
|
787
|
+
cli/
|
|
788
|
+
trajectory.ts ← NEW: CLI commands for trajectory export
|
|
789
|
+
```
|
|
790
|
+
|
|
791
|
+
### Data Flow
|
|
792
|
+
|
|
793
|
+
```
|
|
794
|
+
┌───────────────────────────────┐
|
|
795
|
+
│ OPENTEAMS (team runtime) │
|
|
796
|
+
│ │
|
|
797
|
+
│ Team executes tasks... │
|
|
798
|
+
│ signals emitted │
|
|
799
|
+
│ tasks delegated/completed │
|
|
800
|
+
│ messages exchanged │
|
|
801
|
+
│ │
|
|
802
|
+
│ On team shutdown: │
|
|
803
|
+
│ TrajectoryService.build() │
|
|
804
|
+
│ → TeamTrajectory JSON │
|
|
805
|
+
└──────────────┬────────────────┘
|
|
806
|
+
│
|
|
807
|
+
┌──────────────▼────────────────┐
|
|
808
|
+
│ COGNITIVE-CORE │
|
|
809
|
+
│ │
|
|
810
|
+
│ atlas.processTeamTrajectory() │
|
|
811
|
+
│ │ │
|
|
812
|
+
│ ├─► TeamExperienceMemory │
|
|
813
|
+
│ ├─► TeamAnalyzer │
|
|
814
|
+
│ └─► accumulate │
|
|
815
|
+
│ │
|
|
816
|
+
│ When batch ready: │
|
|
817
|
+
│ TeamPlaybookExtractor │
|
|
818
|
+
│ TeamMetaLearner │
|
|
819
|
+
│ │ │
|
|
820
|
+
│ ▼ │
|
|
821
|
+
│ TeamPlaybook stored │
|
|
822
|
+
│ TeamMetaStrategy stored │
|
|
823
|
+
│ │
|
|
824
|
+
└──────────────┬────────────────┘
|
|
825
|
+
│
|
|
826
|
+
┌──────────────▼────────────────┐
|
|
827
|
+
│ NEXT TEAM FORMATION │
|
|
828
|
+
│ │
|
|
829
|
+
│ atlas.recommendTeam(task) │
|
|
830
|
+
│ │ │
|
|
831
|
+
│ ├─► match TeamPlaybooks │
|
|
832
|
+
│ ├─► apply TeamMetaStrats │
|
|
833
|
+
│ └─► return TeamPlan │
|
|
834
|
+
│ │
|
|
835
|
+
│ TeamPlan → openteams template │
|
|
836
|
+
│ openteams team create ... │
|
|
837
|
+
└───────────────────────────────┘
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
### OpenTeams Schema Extensions
|
|
841
|
+
|
|
842
|
+
The OpenTeams `team.yaml` schema gains optional fields to support learning feedback:
|
|
843
|
+
|
|
844
|
+
```yaml
|
|
845
|
+
# team.yaml additions (all optional, backwards-compatible)
|
|
846
|
+
learning:
|
|
847
|
+
# Enable trajectory recording for this team
|
|
848
|
+
record_trajectory: true
|
|
849
|
+
|
|
850
|
+
# Link to cognitive-core instance for team learning
|
|
851
|
+
cognitive_core_endpoint: "http://localhost:3100"
|
|
852
|
+
|
|
853
|
+
# Team playbook this team was formed from (provenance)
|
|
854
|
+
source_playbook: "wave-parallel-feature-development"
|
|
855
|
+
|
|
856
|
+
# Objective description for trajectory recording
|
|
857
|
+
objective: "Implement user authentication with OAuth2"
|
|
858
|
+
```
|
|
859
|
+
|
|
860
|
+
**JSON Schema addition** (`schema/team.schema.json`):
|
|
861
|
+
```json
|
|
862
|
+
{
|
|
863
|
+
"learning": {
|
|
864
|
+
"type": "object",
|
|
865
|
+
"properties": {
|
|
866
|
+
"record_trajectory": { "type": "boolean", "default": false },
|
|
867
|
+
"cognitive_core_endpoint": { "type": "string", "format": "uri" },
|
|
868
|
+
"source_playbook": { "type": "string" },
|
|
869
|
+
"objective": { "type": "string" }
|
|
870
|
+
},
|
|
871
|
+
"additionalProperties": false
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
```
|
|
875
|
+
|
|
876
|
+
---
|
|
877
|
+
|
|
878
|
+
## Key APIs
|
|
879
|
+
|
|
880
|
+
### cognitive-core Atlas Extensions
|
|
881
|
+
|
|
882
|
+
```typescript
|
|
883
|
+
// New methods on Atlas class
|
|
884
|
+
|
|
885
|
+
class Atlas {
|
|
886
|
+
// ... existing methods ...
|
|
887
|
+
|
|
888
|
+
/**
|
|
889
|
+
* Process a team trajectory for learning.
|
|
890
|
+
* Team-level analog of processTrajectory().
|
|
891
|
+
*/
|
|
892
|
+
async processTeamTrajectory(trajectory: TeamTrajectory): Promise<TeamProcessResult>;
|
|
893
|
+
|
|
894
|
+
/**
|
|
895
|
+
* Recommend a team composition for a given task.
|
|
896
|
+
* Uses team playbooks and meta-strategies.
|
|
897
|
+
*/
|
|
898
|
+
async recommendTeam(task: {
|
|
899
|
+
description: string;
|
|
900
|
+
domain: string;
|
|
901
|
+
complexity: 'simple' | 'moderate' | 'complex' | 'epic';
|
|
902
|
+
constraints?: {
|
|
903
|
+
maxAgents?: number;
|
|
904
|
+
maxTokenBudget?: number;
|
|
905
|
+
preferredTopology?: string;
|
|
906
|
+
};
|
|
907
|
+
}): Promise<TeamRecommendation>;
|
|
908
|
+
|
|
909
|
+
/**
|
|
910
|
+
* Query team memory for coordination patterns.
|
|
911
|
+
*/
|
|
912
|
+
async queryTeamMemory(
|
|
913
|
+
query: string,
|
|
914
|
+
options?: {
|
|
915
|
+
domains?: string[];
|
|
916
|
+
includeExperiences?: boolean;
|
|
917
|
+
includePlaybooks?: boolean;
|
|
918
|
+
}
|
|
919
|
+
): Promise<TeamMemoryQueryResult>;
|
|
920
|
+
|
|
921
|
+
/**
|
|
922
|
+
* Run batch learning on accumulated team trajectories.
|
|
923
|
+
*/
|
|
924
|
+
async runTeamBatchLearning(): Promise<TeamBatchResult>;
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
/**
|
|
928
|
+
* Recommendation for team composition.
|
|
929
|
+
*/
|
|
930
|
+
interface TeamRecommendation {
|
|
931
|
+
/** Matched team playbook (if any) */
|
|
932
|
+
playbook?: TeamPlaybook;
|
|
933
|
+
/** Recommended composition */
|
|
934
|
+
composition: TeamCompositionGuidance;
|
|
935
|
+
/** Recommended coordination */
|
|
936
|
+
coordination: TeamCoordinationGuidance;
|
|
937
|
+
/** Confidence in this recommendation */
|
|
938
|
+
confidence: number;
|
|
939
|
+
/** Reasoning */
|
|
940
|
+
reasoning: string;
|
|
941
|
+
/** Applied meta-strategies */
|
|
942
|
+
appliedMetaStrategies: string[];
|
|
943
|
+
/** Exportable as OpenTeams team.yaml */
|
|
944
|
+
asTeamYaml(): string;
|
|
945
|
+
}
|
|
946
|
+
```
|
|
947
|
+
|
|
948
|
+
### OpenTeams CLI Extensions
|
|
949
|
+
|
|
950
|
+
```bash
|
|
951
|
+
# Export team trajectory after execution
|
|
952
|
+
openteams trajectory export <team-name> --format json --output trajectory.json
|
|
953
|
+
|
|
954
|
+
# View team coordination metrics
|
|
955
|
+
openteams trajectory metrics <team-name>
|
|
956
|
+
|
|
957
|
+
# Create team from cognitive-core recommendation
|
|
958
|
+
openteams team create-from-recommendation --endpoint http://localhost:3100 \
|
|
959
|
+
--task "implement OAuth2 authentication" \
|
|
960
|
+
--domain "web" \
|
|
961
|
+
--complexity "complex"
|
|
962
|
+
|
|
963
|
+
# Record team outcome for learning feedback
|
|
964
|
+
openteams trajectory record-outcome <team-name> \
|
|
965
|
+
--success true \
|
|
966
|
+
--quality good \
|
|
967
|
+
--notes "completed with minimal coordination overhead"
|
|
968
|
+
```
|
|
969
|
+
|
|
970
|
+
---
|
|
971
|
+
|
|
972
|
+
## Configuration
|
|
973
|
+
|
|
974
|
+
New section in `AtlasConfig`:
|
|
975
|
+
|
|
976
|
+
```typescript
|
|
977
|
+
export const TeamLearningConfigSchema = z.object({
|
|
978
|
+
/** Enable team-aware learning */
|
|
979
|
+
enabled: z.boolean().default(false),
|
|
980
|
+
|
|
981
|
+
/** Minimum team trajectories before batch learning */
|
|
982
|
+
minTrajectories: z.number().default(5),
|
|
983
|
+
|
|
984
|
+
/** Similarity threshold for team playbook deduplication */
|
|
985
|
+
deduplicationThreshold: z.number().min(0).max(1).default(0.85),
|
|
986
|
+
|
|
987
|
+
/** Weight given to coordination metrics vs. outcome in evaluation */
|
|
988
|
+
metricsWeight: z.number().min(0).max(1).default(0.3),
|
|
989
|
+
|
|
990
|
+
/** Maximum team experiences to store */
|
|
991
|
+
maxExperiences: z.number().default(200),
|
|
992
|
+
|
|
993
|
+
/** Maximum team playbooks to store */
|
|
994
|
+
maxPlaybooks: z.number().default(50),
|
|
995
|
+
});
|
|
996
|
+
|
|
997
|
+
// Added to AtlasConfigSchema:
|
|
998
|
+
// teamLearning: TeamLearningConfigSchema.default({})
|
|
999
|
+
```
|
|
1000
|
+
|
|
1001
|
+
---
|
|
1002
|
+
|
|
1003
|
+
## Storage Layout
|
|
1004
|
+
|
|
1005
|
+
```
|
|
1006
|
+
.atlas/
|
|
1007
|
+
├── experiences/ # Individual agent experiences (existing)
|
|
1008
|
+
├── playbooks/ # Individual playbooks (existing)
|
|
1009
|
+
├── meta-observations/ # Individual meta-observations (existing)
|
|
1010
|
+
├── meta-strategies/ # Individual meta-strategies (existing)
|
|
1011
|
+
│
|
|
1012
|
+
├── team-experiences/ # NEW: Team trajectory experiences
|
|
1013
|
+
├── team-playbooks/ # NEW: Team coordination playbooks
|
|
1014
|
+
├── team-meta-observations/ # NEW: Team formation observations
|
|
1015
|
+
├── team-meta-strategies/ # NEW: Team formation meta-strategies
|
|
1016
|
+
│
|
|
1017
|
+
└── vectors.db # Vector store (extended with team embeddings)
|
|
1018
|
+
```
|
|
1019
|
+
|
|
1020
|
+
---
|
|
1021
|
+
|
|
1022
|
+
## Implementation Phases
|
|
1023
|
+
|
|
1024
|
+
### Phase 1: Types + Recording (Foundation)
|
|
1025
|
+
- Define all team types (`team-trajectory.ts`, `team-playbook.ts`, `team-meta.ts`)
|
|
1026
|
+
- Implement `TeamTrajectoryBuilder` in OpenTeams
|
|
1027
|
+
- Implement `TeamExperienceMemory` in cognitive-core
|
|
1028
|
+
- Add `processTeamTrajectory()` to Atlas
|
|
1029
|
+
- CLI: `openteams trajectory export`
|
|
1030
|
+
|
|
1031
|
+
### Phase 2: Extraction + Storage (Learning)
|
|
1032
|
+
- Implement `TeamTrajectoryAnalyzer` (coordination metrics computation, role credit assignment)
|
|
1033
|
+
- Implement `TeamPlaybookExtractor` (pattern extraction from team trajectory batches)
|
|
1034
|
+
- Implement `TeamPlaybookLibrary` (storage + matching)
|
|
1035
|
+
- Implement `TeamLearningPipeline` (orchestration)
|
|
1036
|
+
- CLI: `openteams trajectory metrics`
|
|
1037
|
+
|
|
1038
|
+
### Phase 3: Recommendation + Meta-Learning (Application)
|
|
1039
|
+
- Implement `TeamRouter` (recommend team composition for a task)
|
|
1040
|
+
- Implement `TeamMetaLearner` (learn about formation decisions)
|
|
1041
|
+
- Implement `recommendTeam()` on Atlas
|
|
1042
|
+
- Implement `asTeamYaml()` export for seamless OpenTeams integration
|
|
1043
|
+
- CLI: `openteams team create-from-recommendation`
|
|
1044
|
+
|
|
1045
|
+
### Phase 4: Surfacing + Feedback Loop (Maturity)
|
|
1046
|
+
- Implement `TeamSkillLibrary` (tiered team playbook surfacing)
|
|
1047
|
+
- Implement outcome recording feedback loop
|
|
1048
|
+
- Implement team playbook evolution (version bumps, refinements)
|
|
1049
|
+
- Cross-pollination: individual playbooks reference team context, team playbooks reference individual capabilities
|
|
1050
|
+
|
|
1051
|
+
---
|
|
1052
|
+
|
|
1053
|
+
## Design Decisions + Rationale
|
|
1054
|
+
|
|
1055
|
+
**1. Structural parallelism with individual learning**
|
|
1056
|
+
Every team construct mirrors an individual one (TeamTrajectory ↔ Trajectory, TeamPlaybook ↔ Playbook, TeamMetaObservation ↔ MetaObservation). This means the same learning patterns (extract → store → match → evolve) work at both levels, and developers familiar with one level immediately understand the other.
|
|
1057
|
+
|
|
1058
|
+
**2. Loose coupling between OpenTeams and cognitive-core**
|
|
1059
|
+
The integration point is the `TeamTrajectory` JSON format. OpenTeams exports it; cognitive-core imports it. Neither depends on the other at the code level. This preserves OpenTeams as a standalone standard while cognitive-core as a standalone learning system.
|
|
1060
|
+
|
|
1061
|
+
**3. Team playbooks output OpenTeams-compatible YAML**
|
|
1062
|
+
The `asTeamYaml()` method on `TeamRecommendation` generates valid OpenTeams `team.yaml` manifests. This closes the loop: learn from teams → recommend teams → create teams using the same standard.
|
|
1063
|
+
|
|
1064
|
+
**4. Coordination metrics over raw events**
|
|
1065
|
+
Rather than pattern-matching on raw event sequences (brittle), we compute derived metrics (coordination overhead, parallelism ratio, bottleneck detection) and learn patterns from those. This is more robust to variations in team execution order.
|
|
1066
|
+
|
|
1067
|
+
**5. Backwards-compatible schema extensions**
|
|
1068
|
+
All OpenTeams schema additions are optional. Existing team manifests continue to work without modification. The `learning` field is purely additive.
|
|
1069
|
+
|
|
1070
|
+
---
|
|
1071
|
+
|
|
1072
|
+
## Open Questions
|
|
1073
|
+
|
|
1074
|
+
1. **Cross-team learning**: Should team playbooks be shared across organizations/projects, or scoped to a single deployment? (Likely configurable via storage namespacing.)
|
|
1075
|
+
|
|
1076
|
+
2. **Real-time adaptation**: Should a running team be able to query cognitive-core mid-execution to adapt its coordination? (Phase 4+ consideration — start with post-hoc learning.)
|
|
1077
|
+
|
|
1078
|
+
3. **Individual ↔ Team interaction**: When a team playbook recommends a "verifier" role, should it reference individual playbooks that work well for verification tasks? (Yes, but as a Phase 4 cross-reference, not a hard dependency.)
|
|
1079
|
+
|
|
1080
|
+
4. **Evaluation methodology**: How do we assess team playbook quality? Individual playbook confidence is based on success/failure counts. For teams, should we also weight coordination efficiency, token cost, and speedup over single-agent execution?
|