cognitive-core 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +233 -0
- package/README.md +370 -54
- package/dist/atlas.d.ts +10 -10
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +79 -48
- package/dist/atlas.js.map +1 -1
- package/dist/bin/cli-utils.d.ts +37 -0
- package/dist/bin/cli-utils.d.ts.map +1 -0
- package/dist/bin/cli-utils.js +176 -0
- package/dist/bin/cli-utils.js.map +1 -0
- package/dist/bin/cognitive-core.d.ts +2 -12
- package/dist/bin/cognitive-core.d.ts.map +1 -1
- package/dist/bin/cognitive-core.js +76 -351
- package/dist/bin/cognitive-core.js.map +1 -1
- package/dist/bin/commands/kb.d.ts +6 -0
- package/dist/bin/commands/kb.d.ts.map +1 -0
- package/dist/bin/commands/kb.js +240 -0
- package/dist/bin/commands/kb.js.map +1 -0
- package/dist/bin/commands/learn.d.ts +6 -0
- package/dist/bin/commands/learn.d.ts.map +1 -0
- package/dist/bin/commands/learn.js +91 -0
- package/dist/bin/commands/learn.js.map +1 -0
- package/dist/bin/commands/legacy.d.ts +12 -0
- package/dist/bin/commands/legacy.d.ts.map +1 -0
- package/dist/bin/commands/legacy.js +142 -0
- package/dist/bin/commands/legacy.js.map +1 -0
- package/dist/bin/commands/run.d.ts +3 -0
- package/dist/bin/commands/run.d.ts.map +1 -0
- package/dist/bin/commands/run.js +99 -0
- package/dist/bin/commands/run.js.map +1 -0
- package/dist/bin/commands/sessions.d.ts +9 -0
- package/dist/bin/commands/sessions.d.ts.map +1 -0
- package/dist/bin/commands/sessions.js +183 -0
- package/dist/bin/commands/sessions.js.map +1 -0
- package/dist/bin/commands/skills.d.ts +6 -0
- package/dist/bin/commands/skills.d.ts.map +1 -0
- package/dist/bin/commands/skills.js +135 -0
- package/dist/bin/commands/skills.js.map +1 -0
- package/dist/embeddings/index.d.ts +1 -0
- package/dist/embeddings/index.d.ts.map +1 -1
- package/dist/embeddings/index.js +2 -0
- package/dist/embeddings/index.js.map +1 -1
- package/dist/embeddings/inverted-index.d.ts +47 -0
- package/dist/embeddings/inverted-index.d.ts.map +1 -0
- package/dist/embeddings/inverted-index.js +122 -0
- package/dist/embeddings/inverted-index.js.map +1 -0
- package/dist/embeddings/manager.d.ts +3 -1
- package/dist/embeddings/manager.d.ts.map +1 -1
- package/dist/embeddings/manager.js +12 -7
- package/dist/embeddings/manager.js.map +1 -1
- package/dist/embeddings/vector-store.d.ts +7 -3
- package/dist/embeddings/vector-store.d.ts.map +1 -1
- package/dist/embeddings/vector-store.js +22 -6
- package/dist/embeddings/vector-store.js.map +1 -1
- package/dist/factory.d.ts +11 -12
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +20 -7
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -5
- package/dist/index.js.map +1 -1
- package/dist/learning/analyzer.d.ts.map +1 -1
- package/dist/learning/analyzer.js +17 -35
- package/dist/learning/analyzer.js.map +1 -1
- package/dist/learning/energy-evaluator.d.ts +128 -0
- package/dist/learning/energy-evaluator.d.ts.map +1 -0
- package/dist/learning/energy-evaluator.js +175 -0
- package/dist/learning/energy-evaluator.js.map +1 -0
- package/dist/learning/healing-orchestrator.d.ts +182 -0
- package/dist/learning/healing-orchestrator.d.ts.map +1 -0
- package/dist/learning/healing-orchestrator.js +250 -0
- package/dist/learning/healing-orchestrator.js.map +1 -0
- package/dist/learning/index.d.ts +7 -2
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +13 -2
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/instant-loop.d.ts +87 -0
- package/dist/learning/instant-loop.d.ts.map +1 -0
- package/dist/learning/instant-loop.js +264 -0
- package/dist/learning/instant-loop.js.map +1 -0
- package/dist/learning/loop-coordinator.d.ts +61 -0
- package/dist/learning/loop-coordinator.d.ts.map +1 -0
- package/dist/learning/loop-coordinator.js +96 -0
- package/dist/learning/loop-coordinator.js.map +1 -0
- package/dist/learning/maintenance-scheduler.d.ts +141 -0
- package/dist/learning/maintenance-scheduler.d.ts.map +1 -0
- package/dist/learning/maintenance-scheduler.js +186 -0
- package/dist/learning/maintenance-scheduler.js.map +1 -0
- package/dist/learning/meta-learner.d.ts.map +1 -1
- package/dist/learning/meta-learner.js +4 -21
- package/dist/learning/meta-learner.js.map +1 -1
- package/dist/learning/pipeline.d.ts +31 -4
- package/dist/learning/pipeline.d.ts.map +1 -1
- package/dist/learning/pipeline.js +64 -12
- package/dist/learning/pipeline.js.map +1 -1
- package/dist/learning/reflexion-generator.d.ts +64 -0
- package/dist/learning/reflexion-generator.d.ts.map +1 -0
- package/dist/learning/reflexion-generator.js +194 -0
- package/dist/learning/reflexion-generator.js.map +1 -0
- package/dist/learning/trajectory-sources/entire.d.ts +8 -5
- package/dist/learning/trajectory-sources/entire.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/entire.js +13 -6
- package/dist/learning/trajectory-sources/entire.js.map +1 -1
- package/dist/learning/trajectory-sources/index.d.ts +1 -1
- package/dist/learning/trajectory-sources/index.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/index.js +1 -1
- package/dist/learning/trajectory-sources/index.js.map +1 -1
- package/dist/learning/trajectory-sources/pipeline.d.ts +4 -4
- package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -1
- package/dist/learning/trajectory-sources/pipeline.js +2 -2
- package/dist/learning/trajectory-sources/pipeline.js.map +1 -1
- package/dist/learning/unified-pipeline.d.ts +281 -0
- package/dist/learning/unified-pipeline.d.ts.map +1 -0
- package/dist/learning/unified-pipeline.js +637 -0
- package/dist/learning/unified-pipeline.js.map +1 -0
- package/dist/memory/candidate-retrieval.d.ts +43 -0
- package/dist/memory/candidate-retrieval.d.ts.map +1 -0
- package/dist/memory/candidate-retrieval.js +41 -0
- package/dist/memory/candidate-retrieval.js.map +1 -0
- package/dist/memory/causal-store.d.ts +97 -0
- package/dist/memory/causal-store.d.ts.map +1 -0
- package/dist/memory/causal-store.js +209 -0
- package/dist/memory/causal-store.js.map +1 -0
- package/dist/memory/coherence.d.ts +71 -0
- package/dist/memory/coherence.d.ts.map +1 -0
- package/dist/memory/coherence.js +176 -0
- package/dist/memory/coherence.js.map +1 -0
- package/dist/memory/experience.d.ts +39 -6
- package/dist/memory/experience.d.ts.map +1 -1
- package/dist/memory/experience.js +193 -49
- package/dist/memory/experience.js.map +1 -1
- package/dist/memory/index.d.ts +7 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +12 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/knowledge-bank.d.ts +14 -0
- package/dist/memory/knowledge-bank.d.ts.map +1 -1
- package/dist/memory/knowledge-bank.js +45 -0
- package/dist/memory/knowledge-bank.js.map +1 -1
- package/dist/memory/meta.d.ts +7 -8
- package/dist/memory/meta.d.ts.map +1 -1
- package/dist/memory/meta.js +73 -79
- package/dist/memory/meta.js.map +1 -1
- package/dist/memory/playbook.d.ts +26 -9
- package/dist/memory/playbook.d.ts.map +1 -1
- package/dist/memory/playbook.js +198 -74
- package/dist/memory/playbook.js.map +1 -1
- package/dist/memory/reasoning-bank.d.ts +130 -0
- package/dist/memory/reasoning-bank.d.ts.map +1 -0
- package/dist/memory/reasoning-bank.js +342 -0
- package/dist/memory/reasoning-bank.js.map +1 -0
- package/dist/memory/reflexion.d.ts +59 -0
- package/dist/memory/reflexion.d.ts.map +1 -0
- package/dist/memory/reflexion.js +96 -0
- package/dist/memory/reflexion.js.map +1 -0
- package/dist/memory/system.d.ts +7 -2
- package/dist/memory/system.d.ts.map +1 -1
- package/dist/memory/system.js +19 -7
- package/dist/memory/system.js.map +1 -1
- package/dist/memory/temporal-compressor.d.ts +126 -0
- package/dist/memory/temporal-compressor.d.ts.map +1 -0
- package/dist/memory/temporal-compressor.js +335 -0
- package/dist/memory/temporal-compressor.js.map +1 -0
- package/dist/persistence/index.d.ts +11 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +11 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/migrator.d.ts +40 -0
- package/dist/persistence/migrator.d.ts.map +1 -0
- package/dist/persistence/migrator.js +238 -0
- package/dist/persistence/migrator.js.map +1 -0
- package/dist/persistence/serializers.d.ts +45 -0
- package/dist/persistence/serializers.d.ts.map +1 -0
- package/dist/persistence/serializers.js +80 -0
- package/dist/persistence/serializers.js.map +1 -0
- package/dist/persistence/sqlite-persistence.d.ts +228 -0
- package/dist/persistence/sqlite-persistence.d.ts.map +1 -0
- package/dist/persistence/sqlite-persistence.js +588 -0
- package/dist/persistence/sqlite-persistence.js.map +1 -0
- package/dist/runtime/flows/learning.d.ts +10 -12
- package/dist/runtime/flows/learning.d.ts.map +1 -1
- package/dist/runtime/flows/learning.js +10 -23
- package/dist/runtime/flows/learning.js.map +1 -1
- package/dist/search/index.d.ts +1 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +2 -0
- package/dist/search/index.js.map +1 -1
- package/dist/search/moe-gate.d.ts +124 -0
- package/dist/search/moe-gate.d.ts.map +1 -0
- package/dist/search/moe-gate.js +234 -0
- package/dist/search/moe-gate.js.map +1 -0
- package/dist/search/router.d.ts +32 -2
- package/dist/search/router.d.ts.map +1 -1
- package/dist/search/router.js +87 -4
- package/dist/search/router.js.map +1 -1
- package/dist/session-bank/git-reader.d.ts +9 -4
- package/dist/session-bank/git-reader.d.ts.map +1 -1
- package/dist/session-bank/git-reader.js +22 -15
- package/dist/session-bank/git-reader.js.map +1 -1
- package/dist/session-bank/index.d.ts +2 -2
- package/dist/session-bank/index.d.ts.map +1 -1
- package/dist/session-bank/index.js +2 -2
- package/dist/session-bank/index.js.map +1 -1
- package/dist/session-bank/parser.d.ts +16 -5
- package/dist/session-bank/parser.d.ts.map +1 -1
- package/dist/session-bank/parser.js +187 -80
- package/dist/session-bank/parser.js.map +1 -1
- package/dist/session-bank/session-bank.d.ts +5 -0
- package/dist/session-bank/session-bank.d.ts.map +1 -1
- package/dist/session-bank/session-bank.js +30 -9
- package/dist/session-bank/session-bank.js.map +1 -1
- package/dist/session-bank/types.d.ts +4 -1
- package/dist/session-bank/types.d.ts.map +1 -1
- package/dist/session-bank/types.js +3 -3
- package/dist/session-bank/types.js.map +1 -1
- package/dist/surfacing/skill-publisher.d.ts.map +1 -1
- package/dist/surfacing/skill-publisher.js +15 -43
- package/dist/surfacing/skill-publisher.js.map +1 -1
- package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
- package/dist/surfacing/sqlite-storage-adapter.js +13 -21
- package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
- package/dist/types/config.d.ts +100 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +27 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/memory.d.ts +52 -0
- package/dist/types/memory.d.ts.map +1 -1
- package/dist/types/memory.js +13 -0
- package/dist/types/memory.js.map +1 -1
- package/dist/types/playbook.d.ts +4 -0
- package/dist/types/playbook.d.ts.map +1 -1
- package/dist/types/playbook.js.map +1 -1
- package/dist/utils/error-classifier.d.ts +30 -0
- package/dist/utils/error-classifier.d.ts.map +1 -0
- package/dist/utils/error-classifier.js +85 -0
- package/dist/utils/error-classifier.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/partitioned-store.d.ts +93 -0
- package/dist/utils/partitioned-store.d.ts.map +1 -0
- package/dist/utils/partitioned-store.js +251 -0
- package/dist/utils/partitioned-store.js.map +1 -0
- package/dist/utils/trajectory-helpers.d.ts +39 -0
- package/dist/utils/trajectory-helpers.d.ts.map +1 -0
- package/dist/utils/trajectory-helpers.js +57 -0
- package/dist/utils/trajectory-helpers.js.map +1 -0
- package/dist/workspace/runner.d.ts +3 -4
- package/dist/workspace/runner.d.ts.map +1 -1
- package/dist/workspace/runner.js.map +1 -1
- package/dist/workspace/types.d.ts +9 -2
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/types.js.map +1 -1
- package/package.json +6 -4
- package/references/sessionlog/.husky/pre-commit +1 -0
- package/references/sessionlog/.lintstagedrc.json +4 -0
- package/references/sessionlog/.prettierignore +4 -0
- package/references/sessionlog/.prettierrc.json +11 -0
- package/references/sessionlog/LICENSE +21 -0
- package/references/sessionlog/README.md +453 -0
- package/references/sessionlog/eslint.config.js +58 -0
- package/references/sessionlog/package-lock.json +3672 -0
- package/references/sessionlog/package.json +65 -0
- package/references/sessionlog/src/__tests__/agent-hooks.test.ts +570 -0
- package/references/sessionlog/src/__tests__/agent-registry.test.ts +127 -0
- package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +225 -0
- package/references/sessionlog/src/__tests__/claude-generator.test.ts +46 -0
- package/references/sessionlog/src/__tests__/commit-msg.test.ts +86 -0
- package/references/sessionlog/src/__tests__/cursor-agent.test.ts +224 -0
- package/references/sessionlog/src/__tests__/e2e-live.test.ts +890 -0
- package/references/sessionlog/src/__tests__/event-log.test.ts +183 -0
- package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +105 -0
- package/references/sessionlog/src/__tests__/gemini-agent.test.ts +375 -0
- package/references/sessionlog/src/__tests__/git-hooks.test.ts +78 -0
- package/references/sessionlog/src/__tests__/hook-managers.test.ts +121 -0
- package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +759 -0
- package/references/sessionlog/src/__tests__/opencode-agent.test.ts +338 -0
- package/references/sessionlog/src/__tests__/redaction.test.ts +136 -0
- package/references/sessionlog/src/__tests__/session-repo.test.ts +353 -0
- package/references/sessionlog/src/__tests__/session-store.test.ts +166 -0
- package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +466 -0
- package/references/sessionlog/src/__tests__/skill-live.test.ts +461 -0
- package/references/sessionlog/src/__tests__/summarize.test.ts +348 -0
- package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +610 -0
- package/references/sessionlog/src/__tests__/task-plan-live.test.ts +632 -0
- package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +121 -0
- package/references/sessionlog/src/__tests__/types.test.ts +166 -0
- package/references/sessionlog/src/__tests__/utils.test.ts +333 -0
- package/references/sessionlog/src/__tests__/validation.test.ts +103 -0
- package/references/sessionlog/src/__tests__/worktree.test.ts +57 -0
- package/references/sessionlog/src/agent/agents/claude-code.ts +1089 -0
- package/references/sessionlog/src/agent/agents/cursor.ts +361 -0
- package/references/sessionlog/src/agent/agents/gemini-cli.ts +632 -0
- package/references/sessionlog/src/agent/agents/opencode.ts +540 -0
- package/references/sessionlog/src/agent/registry.ts +143 -0
- package/references/sessionlog/src/agent/session-types.ts +113 -0
- package/references/sessionlog/src/agent/types.ts +220 -0
- package/references/sessionlog/src/cli.ts +597 -0
- package/references/sessionlog/src/commands/clean.ts +133 -0
- package/references/sessionlog/src/commands/disable.ts +84 -0
- package/references/sessionlog/src/commands/doctor.ts +145 -0
- package/references/sessionlog/src/commands/enable.ts +202 -0
- package/references/sessionlog/src/commands/explain.ts +261 -0
- package/references/sessionlog/src/commands/reset.ts +105 -0
- package/references/sessionlog/src/commands/resume.ts +180 -0
- package/references/sessionlog/src/commands/rewind.ts +195 -0
- package/references/sessionlog/src/commands/setup-ccweb.ts +275 -0
- package/references/sessionlog/src/commands/status.ts +172 -0
- package/references/sessionlog/src/config.ts +165 -0
- package/references/sessionlog/src/events/event-log.ts +126 -0
- package/references/sessionlog/src/git-operations.ts +558 -0
- package/references/sessionlog/src/hooks/git-hooks.ts +165 -0
- package/references/sessionlog/src/hooks/lifecycle.ts +391 -0
- package/references/sessionlog/src/index.ts +650 -0
- package/references/sessionlog/src/security/redaction.ts +283 -0
- package/references/sessionlog/src/session/state-machine.ts +452 -0
- package/references/sessionlog/src/store/checkpoint-store.ts +509 -0
- package/references/sessionlog/src/store/native-store.ts +173 -0
- package/references/sessionlog/src/store/provider-types.ts +99 -0
- package/references/sessionlog/src/store/session-store.ts +266 -0
- package/references/sessionlog/src/strategy/attribution.ts +296 -0
- package/references/sessionlog/src/strategy/common.ts +207 -0
- package/references/sessionlog/src/strategy/content-overlap.ts +228 -0
- package/references/sessionlog/src/strategy/manual-commit.ts +988 -0
- package/references/sessionlog/src/strategy/types.ts +279 -0
- package/references/sessionlog/src/summarize/claude-generator.ts +115 -0
- package/references/sessionlog/src/summarize/summarize.ts +432 -0
- package/references/sessionlog/src/types.ts +508 -0
- package/references/sessionlog/src/utils/chunk-files.ts +49 -0
- package/references/sessionlog/src/utils/commit-message.ts +65 -0
- package/references/sessionlog/src/utils/detect-agent.ts +36 -0
- package/references/sessionlog/src/utils/hook-managers.ts +125 -0
- package/references/sessionlog/src/utils/ide-tags.ts +32 -0
- package/references/sessionlog/src/utils/paths.ts +79 -0
- package/references/sessionlog/src/utils/preview-rewind.ts +80 -0
- package/references/sessionlog/src/utils/rewind-conflict.ts +121 -0
- package/references/sessionlog/src/utils/shadow-branch.ts +109 -0
- package/references/sessionlog/src/utils/string-utils.ts +46 -0
- package/references/sessionlog/src/utils/todo-extract.ts +188 -0
- package/references/sessionlog/src/utils/trailers.ts +187 -0
- package/references/sessionlog/src/utils/transcript-parse.ts +177 -0
- package/references/sessionlog/src/utils/transcript-timestamp.ts +59 -0
- package/references/sessionlog/src/utils/tree-ops.ts +219 -0
- package/references/sessionlog/src/utils/tty.ts +72 -0
- package/references/sessionlog/src/utils/validation.ts +65 -0
- package/references/sessionlog/src/utils/worktree.ts +58 -0
- package/references/sessionlog/src/wire-types.ts +59 -0
- package/references/sessionlog/templates/setup-env.sh +153 -0
- package/references/sessionlog/tsconfig.json +18 -0
- package/references/sessionlog/vitest.config.ts +12 -0
- package/references/skill-tree/.sudocode/issues.jsonl +8 -0
- package/references/skill-tree/.sudocode/specs.jsonl +2 -0
- package/references/skill-tree/CLAUDE.md +56 -80
- package/references/skill-tree/README.md +188 -140
- package/references/skill-tree/examples/basic-usage.ts +95 -121
- package/references/skill-tree/package-lock.json +369 -26
- package/references/skill-tree/package.json +1 -1
- package/src/atlas.ts +97 -67
- package/src/bin/cli-utils.ts +220 -0
- package/src/bin/cognitive-core.ts +84 -392
- package/src/bin/commands/kb.ts +266 -0
- package/src/bin/commands/learn.ts +100 -0
- package/src/bin/commands/legacy.ts +182 -0
- package/src/bin/commands/run.ts +113 -0
- package/src/bin/commands/sessions.ts +221 -0
- package/src/bin/commands/skills.ts +146 -0
- package/src/embeddings/index.ts +3 -0
- package/src/embeddings/inverted-index.ts +134 -0
- package/src/embeddings/manager.ts +13 -8
- package/src/embeddings/vector-store.ts +21 -9
- package/src/factory.ts +33 -16
- package/src/index.ts +109 -9
- package/src/learning/analyzer.ts +21 -37
- package/src/learning/energy-evaluator.ts +282 -0
- package/src/learning/healing-orchestrator.ts +383 -0
- package/src/learning/index.ts +65 -9
- package/src/learning/instant-loop.ts +357 -0
- package/src/learning/maintenance-scheduler.ts +271 -0
- package/src/learning/meta-learner.ts +5 -23
- package/src/learning/reflexion-generator.ts +273 -0
- package/src/learning/trajectory-sources/entire.ts +24 -13
- package/src/learning/trajectory-sources/index.ts +2 -2
- package/src/learning/trajectory-sources/pipeline.ts +5 -5
- package/src/learning/unified-pipeline.ts +921 -0
- package/src/memory/candidate-retrieval.ts +71 -0
- package/src/memory/causal-store.ts +273 -0
- package/src/memory/coherence.ts +252 -0
- package/src/memory/experience.ts +217 -50
- package/src/memory/index.ts +43 -0
- package/src/memory/knowledge-bank.ts +57 -0
- package/src/memory/meta.ts +78 -96
- package/src/memory/playbook.ts +239 -75
- package/src/memory/reasoning-bank.ts +458 -0
- package/src/memory/reflexion.ts +122 -0
- package/src/memory/system.ts +21 -5
- package/src/memory/temporal-compressor.ts +409 -0
- package/src/persistence/index.ts +37 -0
- package/src/persistence/migrator.ts +298 -0
- package/src/persistence/serializers.ts +79 -0
- package/src/persistence/sqlite-persistence.ts +925 -0
- package/src/runtime/flows/learning.ts +25 -42
- package/src/search/index.ts +10 -0
- package/src/search/moe-gate.ts +304 -0
- package/src/search/router.ts +111 -4
- package/src/session-bank/git-reader.ts +29 -19
- package/src/session-bank/index.ts +4 -2
- package/src/session-bank/parser.ts +280 -98
- package/src/session-bank/session-bank.ts +33 -12
- package/src/session-bank/types.ts +8 -5
- package/src/surfacing/skill-publisher.ts +17 -49
- package/src/surfacing/sqlite-storage-adapter.ts +16 -32
- package/src/types/config.ts +30 -0
- package/src/types/index.ts +3 -0
- package/src/types/memory.ts +30 -0
- package/src/types/playbook.ts +4 -0
- package/src/utils/error-classifier.ts +113 -0
- package/src/utils/index.ts +18 -0
- package/src/utils/partitioned-store.ts +299 -0
- package/src/utils/trajectory-helpers.ts +79 -0
- package/src/workspace/runner.ts +3 -3
- package/src/workspace/types.ts +10 -2
- package/tests/embeddings/inverted-index.test.ts +138 -0
- package/tests/feature-toggles.test.ts +275 -0
- package/tests/gap-fixes.test.ts +17 -4
- package/tests/integration/cli-e2e.test.ts +621 -0
- package/tests/integration/e2e.test.ts +6 -5
- package/tests/integration/entire-e2e.test.ts +314 -125
- package/tests/integration/persistence-e2e.test.ts +741 -0
- package/tests/integration/phase-e2e.test.ts +1143 -0
- package/tests/integration/session-bank.test.ts +20 -14
- package/tests/integration/sessionlog-e2e.test.ts +329 -0
- package/tests/integration/unified-pipeline-e2e.test.ts +634 -0
- package/tests/learning/analyzer.test.ts +1 -1
- package/tests/learning/energy-evaluator.test.ts +180 -0
- package/tests/learning/entire-trajectory-source.test.ts +25 -25
- package/tests/learning/healing-orchestrator.test.ts +269 -0
- package/tests/learning/instant-loop.test.ts +243 -0
- package/tests/learning/maintenance-scheduler.test.ts +191 -0
- package/tests/learning/reflexion-generator.test.ts +411 -0
- package/tests/learning/trajectory-sources.test.ts +12 -4
- package/tests/learning/unified-pipeline.test.ts +322 -0
- package/tests/mcp/playbook-server.test.ts +6 -1
- package/tests/memory/causal-store.test.ts +276 -0
- package/tests/memory/coherence.test.ts +232 -0
- package/tests/memory/experience.test.ts +8 -3
- package/tests/memory/playbook.test.ts +307 -1
- package/tests/memory/provenance.test.ts +11 -2
- package/tests/memory/reasoning-bank.test.ts +239 -0
- package/tests/memory/reflexion.test.ts +166 -0
- package/tests/memory/skill-exporter.test.ts +6 -1
- package/tests/memory/system.test.ts +6 -1
- package/tests/memory/temporal-compressor.test.ts +318 -0
- package/tests/persistence/migrator.test.ts +1009 -0
- package/tests/persistence/sqlite-persistence.test.ts +635 -0
- package/tests/runtime/agent-manager.test.ts +6 -1
- package/tests/runtime/delegate.test.ts +6 -1
- package/tests/search/moe-gate.test.ts +250 -0
- package/tests/search/refinement-loop.test.ts +11 -2
- package/tests/search/router.test.ts +81 -2
- package/tests/session-bank/fixtures/sessionlog-root-metadata.json +16 -0
- package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +6 -0
- package/tests/session-bank/fixtures/sessionlog-session/metadata.json +55 -0
- package/tests/session-bank/git-reader.test.ts +13 -13
- package/tests/session-bank/parser.test.ts +135 -3
- package/tests/session-bank/session-bank.test.ts +1 -1
- package/tests/surfacing/skill-library.test.ts +6 -1
- package/tests/surfacing/skill-publisher.test.ts +24 -58
- package/tests/surfacing/sqlite-storage-adapter.test.ts +11 -23
- package/tests/utils/partitioned-store.test.ts +230 -0
- package/tests/workspace/full-flow.test.ts +10 -4
- package/tests/workspace/runner.test.ts +10 -4
- package/docs/DESIGN-workspace-migration.md +0 -1079
- package/docs/PLAN-agentic-workspace-implementation.md +0 -717
- package/docs/PLAN-graph-migration.md +0 -299
- package/docs/PLAN-session-bank-implementation.md +0 -474
- package/src/learning/pipeline.ts +0 -323
- package/tests/learning/pipeline.test.ts +0 -176
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# skill-tree
|
|
2
2
|
|
|
3
|
-
A TypeScript library for managing agent skill versions and evolution.
|
|
3
|
+
A TypeScript library for managing agent skill versions and evolution. Store, version, serve, sync, and federate reusable skills for AI agents.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
7
|
skill-tree helps you build and maintain a library of reusable skills for AI agents by:
|
|
8
8
|
|
|
9
|
-
- **Extracting skills** from agent sessions/trajectories (manual or automatic)
|
|
10
9
|
- **Storing skills** in a versioned, searchable format (OpenSkills-compatible)
|
|
11
10
|
- **Evolving skills** through versioning, forking, and merging
|
|
12
|
-
- **
|
|
11
|
+
- **Serving skills** via dynamic loadouts with expand/collapse, profiles, and token budgeting
|
|
12
|
+
- **Syncing skills** across agents with git-based multi-agent collaboration
|
|
13
|
+
- **Federating skills** across repositories for cross-organization sharing
|
|
13
14
|
|
|
14
15
|
Inspired by research on skill libraries ([arXiv:2512.17102](https://arxiv.org/abs/2512.17102)), [Claudeception](https://github.com/blader/Claudeception), and [OpenSkills](https://github.com/numman-ali/openskills).
|
|
15
16
|
|
|
@@ -22,139 +23,81 @@ npm install skill-tree
|
|
|
22
23
|
## Quick Start
|
|
23
24
|
|
|
24
25
|
```typescript
|
|
25
|
-
import { createSkillBank } from 'skill-tree';
|
|
26
|
+
import { createSkillBank, type Skill } from 'skill-tree';
|
|
26
27
|
|
|
27
28
|
// Create a skill bank with filesystem storage
|
|
28
|
-
const
|
|
29
|
-
storage: {
|
|
30
|
-
type: 'filesystem',
|
|
31
|
-
basePath: './skills',
|
|
32
|
-
openSkillsCompatible: true,
|
|
33
|
-
},
|
|
29
|
+
const bank = createSkillBank({
|
|
30
|
+
storage: { basePath: './skills' },
|
|
34
31
|
});
|
|
35
32
|
|
|
36
|
-
await
|
|
37
|
-
|
|
38
|
-
// Parse a Claude Code session
|
|
39
|
-
const trajectory = await skillBank.parseSession(sessionContent);
|
|
33
|
+
await bank.initialize();
|
|
40
34
|
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
// Save a skill
|
|
36
|
+
await bank.saveSkill({
|
|
37
|
+
id: 'typescript-esm-import-fix',
|
|
38
|
+
name: 'TypeScript ESM Import Fix',
|
|
39
|
+
version: '1.0.0',
|
|
44
40
|
description: 'Fix TypeScript ES module import errors',
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
problem: 'TypeScript with ES modules requires explicit .js extensions',
|
|
42
|
+
triggerConditions: [{ type: 'error', value: "Cannot find module './utils'" }],
|
|
43
|
+
solution: 'Add .js extension to all relative imports.',
|
|
44
|
+
verification: 'Run tsc --noEmit to verify no import errors',
|
|
45
|
+
examples: [],
|
|
46
|
+
author: 'me',
|
|
47
|
+
tags: ['typescript', 'esm'],
|
|
48
|
+
createdAt: new Date(),
|
|
49
|
+
updatedAt: new Date(),
|
|
50
|
+
status: 'active',
|
|
51
|
+
metrics: { usageCount: 0, successRate: 0, feedbackScores: [] },
|
|
52
|
+
} as Skill);
|
|
51
53
|
|
|
52
54
|
// Search for skills
|
|
53
|
-
const skills = await
|
|
55
|
+
const skills = await bank.searchSkills('typescript');
|
|
54
56
|
|
|
55
57
|
// Create a new version
|
|
56
|
-
const updated = await
|
|
57
|
-
solution: '
|
|
58
|
+
const updated = await bank.createVersion('typescript-esm-import-fix', {
|
|
59
|
+
solution: 'Add .js extension, or use "moduleResolution": "bundler".',
|
|
58
60
|
}, { bumpType: 'minor' });
|
|
61
|
+
|
|
62
|
+
await bank.shutdown();
|
|
59
63
|
```
|
|
60
64
|
|
|
61
65
|
## Core Concepts
|
|
62
66
|
|
|
63
67
|
### Skills
|
|
64
68
|
|
|
65
|
-
A skill represents a reusable piece of knowledge
|
|
69
|
+
A skill represents a reusable piece of knowledge:
|
|
66
70
|
|
|
67
71
|
```typescript
|
|
68
72
|
interface Skill {
|
|
69
73
|
id: string; // Unique identifier
|
|
70
74
|
name: string; // Human-readable name
|
|
71
75
|
version: string; // Semantic version
|
|
72
|
-
description: string; // For
|
|
76
|
+
description: string; // For search and matching
|
|
73
77
|
problem: string; // What problem this solves
|
|
74
78
|
triggerConditions: TriggerCondition[]; // When to apply
|
|
75
79
|
solution: string; // Step-by-step solution
|
|
76
80
|
verification: string; // How to verify it worked
|
|
77
81
|
examples: SkillExample[]; // Usage examples
|
|
78
|
-
//
|
|
82
|
+
tags: string[]; // Categorization
|
|
83
|
+
status: SkillStatus; // 'draft' | 'active' | 'deprecated' | 'experimental'
|
|
84
|
+
metrics: SkillMetrics; // Usage tracking
|
|
85
|
+
// ... namespace, taxonomy, lineage
|
|
79
86
|
}
|
|
80
87
|
```
|
|
81
88
|
|
|
82
|
-
### Trajectories
|
|
83
|
-
|
|
84
|
-
Agent sessions are parsed into trajectories:
|
|
85
|
-
|
|
86
|
-
```typescript
|
|
87
|
-
interface Trajectory {
|
|
88
|
-
sessionId: string;
|
|
89
|
-
turns: Turn[]; // User/assistant/tool interactions
|
|
90
|
-
metadata: TrajectoryMetadata;
|
|
91
|
-
outcome?: TrajectoryOutcome;
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Quality Gates
|
|
96
|
-
|
|
97
|
-
Extraction includes quality gates (inspired by Claudeception) to ensure skills are:
|
|
98
|
-
|
|
99
|
-
- **Reusable**: Applicable across multiple future tasks
|
|
100
|
-
- **Non-trivial**: Involves discovery beyond documentation lookup
|
|
101
|
-
- **Specific**: Has clear trigger conditions
|
|
102
|
-
- **Verified**: Solution demonstrably works
|
|
103
|
-
|
|
104
|
-
## Features
|
|
105
|
-
|
|
106
|
-
### Session Adapters
|
|
107
|
-
|
|
108
|
-
Parse different agent session formats:
|
|
109
|
-
|
|
110
|
-
```typescript
|
|
111
|
-
// Built-in: Claude Code JSONL
|
|
112
|
-
const trajectory = await skillBank.parseSession(jsonlContent);
|
|
113
|
-
|
|
114
|
-
// Register custom adapters
|
|
115
|
-
skillBank.registerAdapter(myCustomAdapter);
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Extraction Modes
|
|
119
|
-
|
|
120
|
-
**Manual extraction** with user guidance:
|
|
121
|
-
|
|
122
|
-
```typescript
|
|
123
|
-
const result = await skillBank.extractManual(trajectory, {
|
|
124
|
-
turnRange: [5, 15], // Extract specific turns
|
|
125
|
-
suggestedName: 'my-skill',
|
|
126
|
-
tags: ['debugging'],
|
|
127
|
-
});
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
**Automatic extraction** using LLM:
|
|
131
|
-
|
|
132
|
-
```typescript
|
|
133
|
-
skillBank.setLLMProvider(myLLMProvider);
|
|
134
|
-
|
|
135
|
-
const results = await skillBank.extractAutomatic(trajectory, {
|
|
136
|
-
minConfidence: 0.7,
|
|
137
|
-
});
|
|
138
|
-
```
|
|
139
|
-
|
|
140
89
|
### Storage
|
|
141
90
|
|
|
142
|
-
|
|
91
|
+
Two backends:
|
|
143
92
|
|
|
144
93
|
```typescript
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
basePath: '~/.skills',
|
|
149
|
-
openSkillsCompatible: true, // YAML frontmatter + Markdown
|
|
150
|
-
},
|
|
94
|
+
// Filesystem (JSON source of truth + SQLite cache)
|
|
95
|
+
const bank = createSkillBank({
|
|
96
|
+
storage: { basePath: './skills' },
|
|
151
97
|
});
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**Memory storage** (for testing):
|
|
155
98
|
|
|
156
|
-
|
|
157
|
-
const
|
|
99
|
+
// Memory (for testing)
|
|
100
|
+
const bank = createSkillBank({
|
|
158
101
|
storage: { type: 'memory' },
|
|
159
102
|
});
|
|
160
103
|
```
|
|
@@ -172,45 +115,111 @@ skills/
|
|
|
172
115
|
└── 1.1.0.json
|
|
173
116
|
```
|
|
174
117
|
|
|
118
|
+
## Features
|
|
119
|
+
|
|
175
120
|
### Versioning
|
|
176
121
|
|
|
177
122
|
Semantic versioning with full lineage tracking:
|
|
178
123
|
|
|
179
124
|
```typescript
|
|
180
125
|
// Create new version
|
|
181
|
-
const v2 = await
|
|
126
|
+
const v2 = await bank.createVersion('my-skill', updates, {
|
|
182
127
|
bumpType: 'minor',
|
|
183
128
|
changelog: 'Added alternative solution',
|
|
184
129
|
});
|
|
185
130
|
|
|
186
131
|
// Get version history
|
|
187
|
-
const history = await
|
|
132
|
+
const history = await bank.getVersionHistory('my-skill');
|
|
188
133
|
|
|
189
134
|
// Rollback to previous version
|
|
190
|
-
const restored = await
|
|
135
|
+
const restored = await bank.rollbackSkill('my-skill', '1.0.0');
|
|
191
136
|
|
|
192
137
|
// Compare versions
|
|
193
|
-
const diff = await
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Skill Evolution
|
|
197
|
-
|
|
198
|
-
Fork and merge skills:
|
|
138
|
+
const diff = await bank.compareVersions('my-skill', '1.0.0', '2.0.0');
|
|
199
139
|
|
|
200
|
-
```typescript
|
|
201
140
|
// Fork for a specialized use case
|
|
202
|
-
const forked = await
|
|
141
|
+
const forked = await bank.forkSkill('my-skill', {
|
|
203
142
|
newId: 'my-skill-react',
|
|
204
143
|
newName: 'My Skill (React variant)',
|
|
205
144
|
reason: 'Specialized for React projects',
|
|
206
145
|
});
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Serving Layer
|
|
149
|
+
|
|
150
|
+
Dynamic skill loadouts for agent context windows:
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
const { server } = await bank.createServingLayer({
|
|
154
|
+
maxExpanded: 5,
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// Orchestrator sets loadout based on task
|
|
158
|
+
await server.setLoadoutForTask('Fix authentication bug');
|
|
159
|
+
|
|
160
|
+
// Or use a built-in profile
|
|
161
|
+
await server.setLoadoutFromProfile('debugging');
|
|
162
|
+
|
|
163
|
+
// Render skills into system prompt
|
|
164
|
+
const prompt = server.renderSystemPrompt();
|
|
207
165
|
|
|
208
|
-
//
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
166
|
+
// Agent-side API
|
|
167
|
+
const view = server.agentListLoadout();
|
|
168
|
+
const skill = server.agentExpandSkill('some-skill-id');
|
|
169
|
+
server.agentCollapseSkill('some-skill-id');
|
|
170
|
+
await server.agentRequestSkills(['another-skill']);
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Multi-Agent Sync
|
|
174
|
+
|
|
175
|
+
Git-based skill synchronization:
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
import { createDefaultSyncConfig } from 'skill-tree';
|
|
179
|
+
|
|
180
|
+
const bank = createSkillBank({
|
|
181
|
+
storage: { basePath: './skills' },
|
|
182
|
+
sync: {
|
|
183
|
+
config: createDefaultSyncConfig({
|
|
184
|
+
repoUrl: 'git@github.com:org/skills.git',
|
|
185
|
+
agentId: 'agent-1',
|
|
186
|
+
}),
|
|
187
|
+
pullOnInit: true,
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
await bank.initialize(); // auto-pulls remote changes
|
|
192
|
+
|
|
193
|
+
// Manual sync
|
|
194
|
+
await bank.sync.push();
|
|
195
|
+
await bank.sync.pull();
|
|
196
|
+
const status = await bank.sync.status();
|
|
197
|
+
|
|
198
|
+
await bank.shutdown(); // flushes pending sync
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Federation
|
|
202
|
+
|
|
203
|
+
Connect independent skill repositories:
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
// Add a remote
|
|
207
|
+
await bank.federation.addRemote('team', {
|
|
208
|
+
url: 'git@github.com:org/team-skills.git',
|
|
209
|
+
access: 'read-write',
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
// Browse remote skills
|
|
213
|
+
const remoteSkills = await bank.federation.browse('team');
|
|
214
|
+
|
|
215
|
+
// Import a skill
|
|
216
|
+
const result = await bank.federation.import('team', 'useful-pattern');
|
|
217
|
+
|
|
218
|
+
// Share a skill
|
|
219
|
+
await bank.federation.share('my-skill', 'team');
|
|
220
|
+
|
|
221
|
+
// Check for upstream updates
|
|
222
|
+
const updates = await bank.federation.checkUpstream();
|
|
214
223
|
```
|
|
215
224
|
|
|
216
225
|
### Events
|
|
@@ -218,40 +227,93 @@ const merged = await skillBank.lineageTracker.mergeSkill(
|
|
|
218
227
|
Subscribe to skill bank events:
|
|
219
228
|
|
|
220
229
|
```typescript
|
|
221
|
-
|
|
230
|
+
// Simple synchronous listeners
|
|
231
|
+
const unsubscribe = bank.on((event) => {
|
|
222
232
|
switch (event.type) {
|
|
223
233
|
case 'skill:created':
|
|
224
234
|
console.log('New skill:', event.skill.name);
|
|
225
235
|
break;
|
|
226
|
-
case '
|
|
227
|
-
console.log('
|
|
236
|
+
case 'skill:updated':
|
|
237
|
+
console.log('Updated:', event.skill.name, 'from', event.previousVersion);
|
|
228
238
|
break;
|
|
229
239
|
}
|
|
230
240
|
});
|
|
241
|
+
|
|
242
|
+
// Advanced: async hooks with priority and filtering
|
|
243
|
+
bank.getHookRegistry().register({
|
|
244
|
+
event: 'storage:after-save',
|
|
245
|
+
handler: async (context) => {
|
|
246
|
+
console.log('Skill saved to storage');
|
|
247
|
+
},
|
|
248
|
+
priority: 'normal',
|
|
249
|
+
});
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### AGENTS.md Integration
|
|
253
|
+
|
|
254
|
+
Bidirectional sync between skill bank and AGENTS.md files:
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
import { createAgentsSync } from 'skill-tree';
|
|
258
|
+
|
|
259
|
+
const sync = createAgentsSync(bank.getStorage());
|
|
260
|
+
const result = await sync.sync('./AGENTS.md', {
|
|
261
|
+
direction: 'bidirectional',
|
|
262
|
+
});
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Namespace Support
|
|
266
|
+
|
|
267
|
+
Multi-tier skill trees for team environments:
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
const bank = createSkillBank({
|
|
271
|
+
storage: { basePath: './skills' },
|
|
272
|
+
namespace: {
|
|
273
|
+
agentId: 'agent-1',
|
|
274
|
+
team: 'frontend',
|
|
275
|
+
defaultScope: 'personal',
|
|
276
|
+
defaultVisibility: 'private',
|
|
277
|
+
},
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
// List skills by scope
|
|
281
|
+
const personal = await bank.listSkills({ scope: 'personal', owner: 'agent-1' });
|
|
282
|
+
const teamSkills = await bank.listSkills({ scope: 'team', team: 'frontend' });
|
|
231
283
|
```
|
|
232
284
|
|
|
233
285
|
## API Reference
|
|
234
286
|
|
|
235
287
|
### SkillBank
|
|
236
288
|
|
|
237
|
-
Main orchestrator class
|
|
289
|
+
Main orchestrator class, created via `createSkillBank(config)`.
|
|
238
290
|
|
|
239
291
|
| Method | Description |
|
|
240
292
|
|--------|-------------|
|
|
241
|
-
| `initialize()` | Initialize storage
|
|
242
|
-
| `
|
|
243
|
-
| `extractManual(trajectory, options?)` | Extract skill with guidance |
|
|
244
|
-
| `extractAutomatic(trajectory, options?)` | Extract skills using LLM |
|
|
293
|
+
| `initialize()` | Initialize storage, federation, and sync |
|
|
294
|
+
| `shutdown()` | Clean shutdown (flushes sync) |
|
|
245
295
|
| `getSkill(id, version?)` | Get skill by ID |
|
|
246
296
|
| `listSkills(filter?)` | List skills with optional filter |
|
|
247
|
-
| `searchSkills(query)` |
|
|
297
|
+
| `searchSkills(query)` | Full-text search |
|
|
248
298
|
| `saveSkill(skill)` | Save or update a skill |
|
|
249
299
|
| `deleteSkill(id, version?)` | Delete a skill |
|
|
300
|
+
| `deprecateSkill(id)` | Mark skill as deprecated |
|
|
250
301
|
| `createVersion(id, updates, options?)` | Create new version |
|
|
251
302
|
| `forkSkill(id, options)` | Fork a skill |
|
|
252
303
|
| `getVersionHistory(id)` | Get version history |
|
|
304
|
+
| `getLineage(id)` | Get full lineage |
|
|
253
305
|
| `rollbackSkill(id, version)` | Rollback to version |
|
|
254
|
-
| `
|
|
306
|
+
| `compareVersions(id, vA, vB)` | Diff two versions |
|
|
307
|
+
| `on(handler)` | Subscribe to events (returns unsubscribe fn) |
|
|
308
|
+
| `off(handler)` | Unsubscribe from events |
|
|
309
|
+
| `getStats()` | Get skill bank statistics |
|
|
310
|
+
| `exportAll()` | Export all skills |
|
|
311
|
+
| `importSkills(skills)` | Bulk import skills |
|
|
312
|
+
| `createServingLayer(config?)` | Create a SkillGraphServer |
|
|
313
|
+
| `getStorage()` | Access underlying storage adapter |
|
|
314
|
+
| `getHookRegistry()` | Access hook registry |
|
|
315
|
+
| `sync` | SyncManager accessor (throws if not configured) |
|
|
316
|
+
| `federation` | FederationManager accessor (requires basePath) |
|
|
255
317
|
|
|
256
318
|
### Versioning Utilities
|
|
257
319
|
|
|
@@ -303,20 +365,6 @@ TypeScript with ES modules requires explicit .js extensions in imports.
|
|
|
303
365
|
## Verification
|
|
304
366
|
|
|
305
367
|
Run `tsc` and verify no module resolution errors.
|
|
306
|
-
|
|
307
|
-
## Examples
|
|
308
|
-
|
|
309
|
-
### Basic import fix
|
|
310
|
-
|
|
311
|
-
**Before:**
|
|
312
|
-
```typescript
|
|
313
|
-
import { helper } from './utils'
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
**After:**
|
|
317
|
-
```typescript
|
|
318
|
-
import { helper } from './utils.js'
|
|
319
|
-
```
|
|
320
368
|
```
|
|
321
369
|
|
|
322
370
|
## License
|