cognitive-core 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.json +111 -2
- package/.sessionlog/settings.json +4 -0
- package/dist/atlas.d.ts +10 -0
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +65 -0
- package/dist/atlas.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/learning/index.d.ts +1 -1
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/pipeline.d.ts +4 -31
- package/dist/learning/pipeline.d.ts.map +1 -1
- package/dist/learning/pipeline.js +12 -64
- package/dist/learning/pipeline.js.map +1 -1
- package/dist/learning/unified-pipeline.d.ts +30 -0
- package/dist/learning/unified-pipeline.d.ts.map +1 -1
- package/dist/learning/unified-pipeline.js +207 -0
- package/dist/learning/unified-pipeline.js.map +1 -1
- package/dist/memory/candidate-retrieval.d.ts.map +1 -1
- package/dist/memory/candidate-retrieval.js +3 -1
- package/dist/memory/candidate-retrieval.js.map +1 -1
- package/dist/memory/curated-loader.d.ts +21 -4
- package/dist/memory/curated-loader.d.ts.map +1 -1
- package/dist/memory/curated-loader.js +53 -16
- package/dist/memory/curated-loader.js.map +1 -1
- package/dist/memory/index.d.ts +2 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/playbook.d.ts +6 -0
- package/dist/memory/playbook.d.ts.map +1 -1
- package/dist/memory/playbook.js +15 -0
- package/dist/memory/playbook.js.map +1 -1
- package/dist/memory/source-resolver.d.ts +120 -0
- package/dist/memory/source-resolver.d.ts.map +1 -0
- package/dist/memory/source-resolver.js +300 -0
- package/dist/memory/source-resolver.js.map +1 -0
- package/dist/types/config.d.ts +141 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +40 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- 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/utils/error-classifier.js +8 -8
- package/dist/utils/error-classifier.js.map +1 -1
- package/dist/workspace/efficacy-toolkit.d.ts +164 -0
- package/dist/workspace/efficacy-toolkit.d.ts.map +1 -0
- package/dist/workspace/efficacy-toolkit.js +281 -0
- package/dist/workspace/efficacy-toolkit.js.map +1 -0
- package/dist/workspace/index.d.ts +2 -1
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +3 -1
- package/dist/workspace/index.js.map +1 -1
- package/dist/workspace/templates/index.d.ts +3 -0
- package/dist/workspace/templates/index.d.ts.map +1 -1
- package/dist/workspace/templates/index.js +6 -0
- package/dist/workspace/templates/index.js.map +1 -1
- package/dist/workspace/templates/playbook-decay-detection.d.ts +46 -0
- package/dist/workspace/templates/playbook-decay-detection.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-decay-detection.js +197 -0
- package/dist/workspace/templates/playbook-decay-detection.js.map +1 -0
- package/dist/workspace/templates/playbook-efficacy-audit.d.ts +46 -0
- package/dist/workspace/templates/playbook-efficacy-audit.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-efficacy-audit.js +160 -0
- package/dist/workspace/templates/playbook-efficacy-audit.js.map +1 -0
- package/dist/workspace/templates/playbook-lifecycle-review.d.ts +51 -0
- package/dist/workspace/templates/playbook-lifecycle-review.d.ts.map +1 -0
- package/dist/workspace/templates/playbook-lifecycle-review.js +187 -0
- package/dist/workspace/templates/playbook-lifecycle-review.js.map +1 -0
- package/dist/workspace/types.d.ts +12 -54
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/types.js.map +1 -1
- package/package.json +8 -2
- package/playbooks/compound-engineering/adversarial-review.json +51 -0
- package/playbooks/compound-engineering/agent-native-architecture.json +59 -0
- package/playbooks/compound-engineering/agent-native-review.json +54 -0
- package/playbooks/compound-engineering/api-contract-review.json +52 -0
- package/playbooks/compound-engineering/brainstorm-requirements.json +55 -0
- package/playbooks/compound-engineering/bug-reproduction.json +62 -0
- package/playbooks/compound-engineering/confidence-calibration.json +49 -0
- package/playbooks/compound-engineering/correctness-review.json +49 -0
- package/playbooks/compound-engineering/data-migration-safety.json +59 -0
- package/playbooks/compound-engineering/deployment-verification.json +63 -0
- package/playbooks/compound-engineering/error-recovery-patterns.json +53 -0
- package/playbooks/compound-engineering/implementation-planning.json +64 -0
- package/playbooks/compound-engineering/issue-pattern-analysis.json +53 -0
- package/playbooks/compound-engineering/knowledge-compounding.json +63 -0
- package/playbooks/compound-engineering/learnings-research.json +54 -0
- package/playbooks/compound-engineering/maintainability-review.json +49 -0
- package/playbooks/compound-engineering/performance-review.json +54 -0
- package/playbooks/compound-engineering/plan-adversarial-review.json +56 -0
- package/playbooks/compound-engineering/plan-feasibility-review.json +56 -0
- package/playbooks/compound-engineering/project-standards-review.json +52 -0
- package/playbooks/compound-engineering/reliability-review.json +53 -0
- package/playbooks/compound-engineering/review-orchestration.json +64 -0
- package/playbooks/compound-engineering/security-review.json +54 -0
- package/playbooks/compound-engineering/systematic-execution.json +64 -0
- package/playbooks/compound-engineering/testing-review.json +50 -0
- package/src/atlas.ts +96 -0
- package/src/index.ts +27 -0
- package/src/learning/index.ts +1 -0
- package/src/learning/unified-pipeline.ts +271 -1
- package/src/memory/candidate-retrieval.ts +2 -1
- package/src/memory/curated-loader.ts +69 -16
- package/src/memory/index.ts +16 -0
- package/src/memory/playbook.ts +19 -0
- package/src/memory/source-resolver.ts +422 -0
- package/src/types/config.ts +46 -0
- package/src/types/index.ts +4 -0
- package/src/utils/error-classifier.ts +8 -8
- package/src/workspace/efficacy-toolkit.ts +496 -0
- package/src/workspace/index.ts +29 -0
- package/src/workspace/templates/index.ts +24 -0
- package/src/workspace/templates/playbook-decay-detection.ts +272 -0
- package/src/workspace/templates/playbook-efficacy-audit.ts +246 -0
- package/src/workspace/templates/playbook-lifecycle-review.ts +274 -0
- package/src/workspace/types.ts +22 -78
- package/tests/fixtures/behavioral-trajectories.ts +210 -0
- package/tests/integration/curated-sources-e2e.test.ts +502 -0
- package/tests/integration/pipeline-data-correctness.test.ts +794 -0
- package/tests/learning/meta-learner.test.ts +418 -0
- package/tests/learning/pipeline-memory-updates.test.ts +721 -0
- package/tests/learning/unified-pipeline-efficacy.test.ts +232 -0
- package/tests/memory/candidate-retrieval.test.ts +167 -0
- package/tests/memory/compound-engineering-seed.test.ts +338 -0
- package/tests/memory/curated-loader-extended.test.ts +225 -0
- package/tests/memory/meta.test.ts +399 -0
- package/tests/memory/playbook-quality-validation.test.ts +430 -0
- package/tests/memory/source-resolver.test.ts +700 -0
- package/tests/search/evaluator.test.ts +257 -0
- package/tests/search/verification-runner.test.ts +357 -0
- package/tests/utils/error-classifier.test.ts +149 -0
- package/tests/utils/trajectory-helpers.test.ts +163 -0
- package/tests/workspace/efficacy-toolkit.test.ts +404 -0
- package/tests/workspace/templates/playbook-efficacy.test.ts +377 -0
- package/.claude/settings.local.json +0 -11
- package/dist/learning/llm-extractor.d.ts +0 -88
- package/dist/learning/llm-extractor.d.ts.map +0 -1
- package/dist/learning/llm-extractor.js +0 -372
- package/dist/learning/llm-extractor.js.map +0 -1
- package/dist/learning/loop-coordinator.d.ts +0 -61
- package/dist/learning/loop-coordinator.d.ts.map +0 -1
- package/dist/learning/loop-coordinator.js +0 -96
- package/dist/learning/loop-coordinator.js.map +0 -1
- package/references/agent-workspace/CLAUDE.md +0 -74
- package/references/agent-workspace/README.md +0 -587
- package/references/agent-workspace/media/banner.png +0 -0
- package/references/agent-workspace/package-lock.json +0 -2061
- package/references/agent-workspace/package.json +0 -54
- package/references/agent-workspace/src/handle.ts +0 -122
- package/references/agent-workspace/src/index.ts +0 -32
- package/references/agent-workspace/src/manager.ts +0 -102
- package/references/agent-workspace/src/readers/json.ts +0 -71
- package/references/agent-workspace/src/readers/markdown.ts +0 -37
- package/references/agent-workspace/src/readers/raw.ts +0 -27
- package/references/agent-workspace/src/types.ts +0 -68
- package/references/agent-workspace/src/validation.ts +0 -93
- package/references/agent-workspace/src/writers/json.ts +0 -17
- package/references/agent-workspace/src/writers/markdown.ts +0 -27
- package/references/agent-workspace/src/writers/raw.ts +0 -22
- package/references/agent-workspace/tests/errors.test.ts +0 -652
- package/references/agent-workspace/tests/handle.test.ts +0 -144
- package/references/agent-workspace/tests/manager.test.ts +0 -124
- package/references/agent-workspace/tests/readers.test.ts +0 -205
- package/references/agent-workspace/tests/validation.test.ts +0 -196
- package/references/agent-workspace/tests/writers.test.ts +0 -108
- package/references/agent-workspace/tsconfig.json +0 -20
- package/references/agent-workspace/tsup.config.ts +0 -9
- package/references/minimem/.claude/settings.json +0 -7
- package/references/minimem/.sudocode/issues.jsonl +0 -18
- package/references/minimem/.sudocode/specs.jsonl +0 -1
- package/references/minimem/CLAUDE.md +0 -310
- package/references/minimem/README.md +0 -556
- package/references/minimem/claude-plugin/.claude-plugin/plugin.json +0 -10
- package/references/minimem/claude-plugin/.mcp.json +0 -7
- package/references/minimem/claude-plugin/README.md +0 -158
- package/references/minimem/claude-plugin/commands/recall.md +0 -47
- package/references/minimem/claude-plugin/commands/remember.md +0 -41
- package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +0 -272
- package/references/minimem/claude-plugin/hooks/hooks.json +0 -27
- package/references/minimem/claude-plugin/hooks/session-end.sh +0 -86
- package/references/minimem/claude-plugin/hooks/session-start.sh +0 -85
- package/references/minimem/claude-plugin/skills/memory/SKILL.md +0 -108
- package/references/minimem/package-lock.json +0 -5373
- package/references/minimem/package.json +0 -60
- package/references/minimem/scripts/postbuild.js +0 -35
- package/references/minimem/src/__tests__/edge-cases.test.ts +0 -371
- package/references/minimem/src/__tests__/errors.test.ts +0 -265
- package/references/minimem/src/__tests__/helpers.ts +0 -199
- package/references/minimem/src/__tests__/internal.test.ts +0 -407
- package/references/minimem/src/__tests__/knowledge.test.ts +0 -287
- package/references/minimem/src/__tests__/minimem.integration.test.ts +0 -1127
- package/references/minimem/src/__tests__/session.test.ts +0 -190
- package/references/minimem/src/cli/__tests__/commands.test.ts +0 -759
- package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +0 -141
- package/references/minimem/src/cli/commands/append.ts +0 -76
- package/references/minimem/src/cli/commands/config.ts +0 -262
- package/references/minimem/src/cli/commands/conflicts.ts +0 -413
- package/references/minimem/src/cli/commands/daemon.ts +0 -169
- package/references/minimem/src/cli/commands/index.ts +0 -12
- package/references/minimem/src/cli/commands/init.ts +0 -88
- package/references/minimem/src/cli/commands/mcp.ts +0 -177
- package/references/minimem/src/cli/commands/push-pull.ts +0 -213
- package/references/minimem/src/cli/commands/search.ts +0 -158
- package/references/minimem/src/cli/commands/status.ts +0 -84
- package/references/minimem/src/cli/commands/sync-init.ts +0 -290
- package/references/minimem/src/cli/commands/sync.ts +0 -70
- package/references/minimem/src/cli/commands/upsert.ts +0 -197
- package/references/minimem/src/cli/config.ts +0 -584
- package/references/minimem/src/cli/index.ts +0 -264
- package/references/minimem/src/cli/shared.ts +0 -161
- package/references/minimem/src/cli/sync/__tests__/central.test.ts +0 -152
- package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +0 -209
- package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +0 -118
- package/references/minimem/src/cli/sync/__tests__/detection.test.ts +0 -207
- package/references/minimem/src/cli/sync/__tests__/integration.test.ts +0 -476
- package/references/minimem/src/cli/sync/__tests__/registry.test.ts +0 -363
- package/references/minimem/src/cli/sync/__tests__/state.test.ts +0 -255
- package/references/minimem/src/cli/sync/__tests__/validation.test.ts +0 -193
- package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +0 -178
- package/references/minimem/src/cli/sync/central.ts +0 -292
- package/references/minimem/src/cli/sync/conflicts.ts +0 -204
- package/references/minimem/src/cli/sync/daemon.ts +0 -407
- package/references/minimem/src/cli/sync/detection.ts +0 -138
- package/references/minimem/src/cli/sync/index.ts +0 -107
- package/references/minimem/src/cli/sync/operations.ts +0 -373
- package/references/minimem/src/cli/sync/registry.ts +0 -279
- package/references/minimem/src/cli/sync/state.ts +0 -355
- package/references/minimem/src/cli/sync/validation.ts +0 -206
- package/references/minimem/src/cli/sync/watcher.ts +0 -234
- package/references/minimem/src/cli/version.ts +0 -34
- package/references/minimem/src/core/index.ts +0 -9
- package/references/minimem/src/core/indexer.ts +0 -628
- package/references/minimem/src/core/searcher.ts +0 -221
- package/references/minimem/src/db/schema.ts +0 -183
- package/references/minimem/src/db/sqlite-vec.ts +0 -24
- package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +0 -431
- package/references/minimem/src/embeddings/batch-gemini.ts +0 -392
- package/references/minimem/src/embeddings/batch-openai.ts +0 -409
- package/references/minimem/src/embeddings/embeddings.ts +0 -434
- package/references/minimem/src/index.ts +0 -109
- package/references/minimem/src/internal.ts +0 -299
- package/references/minimem/src/minimem.ts +0 -1276
- package/references/minimem/src/search/__tests__/hybrid.test.ts +0 -247
- package/references/minimem/src/search/graph.ts +0 -234
- package/references/minimem/src/search/hybrid.ts +0 -151
- package/references/minimem/src/search/search.ts +0 -256
- package/references/minimem/src/server/__tests__/mcp.test.ts +0 -341
- package/references/minimem/src/server/__tests__/tools.test.ts +0 -364
- package/references/minimem/src/server/mcp.ts +0 -326
- package/references/minimem/src/server/tools.ts +0 -720
- package/references/minimem/src/session.ts +0 -460
- package/references/minimem/tsconfig.json +0 -19
- package/references/minimem/tsup.config.ts +0 -26
- package/references/minimem/vitest.config.ts +0 -24
- package/references/sessionlog/.husky/pre-commit +0 -1
- package/references/sessionlog/.lintstagedrc.json +0 -4
- package/references/sessionlog/.prettierignore +0 -4
- package/references/sessionlog/.prettierrc.json +0 -11
- package/references/sessionlog/LICENSE +0 -21
- package/references/sessionlog/README.md +0 -453
- package/references/sessionlog/eslint.config.js +0 -58
- package/references/sessionlog/package-lock.json +0 -3672
- package/references/sessionlog/package.json +0 -65
- package/references/sessionlog/src/__tests__/agent-hooks.test.ts +0 -570
- package/references/sessionlog/src/__tests__/agent-registry.test.ts +0 -127
- package/references/sessionlog/src/__tests__/claude-code-hooks.test.ts +0 -225
- package/references/sessionlog/src/__tests__/claude-generator.test.ts +0 -46
- package/references/sessionlog/src/__tests__/commit-msg.test.ts +0 -86
- package/references/sessionlog/src/__tests__/cursor-agent.test.ts +0 -224
- package/references/sessionlog/src/__tests__/e2e-live.test.ts +0 -890
- package/references/sessionlog/src/__tests__/event-log.test.ts +0 -183
- package/references/sessionlog/src/__tests__/flush-sentinel.test.ts +0 -105
- package/references/sessionlog/src/__tests__/gemini-agent.test.ts +0 -375
- package/references/sessionlog/src/__tests__/git-hooks.test.ts +0 -78
- package/references/sessionlog/src/__tests__/hook-managers.test.ts +0 -121
- package/references/sessionlog/src/__tests__/lifecycle-tasks.test.ts +0 -759
- package/references/sessionlog/src/__tests__/opencode-agent.test.ts +0 -338
- package/references/sessionlog/src/__tests__/redaction.test.ts +0 -136
- package/references/sessionlog/src/__tests__/session-repo.test.ts +0 -353
- package/references/sessionlog/src/__tests__/session-store.test.ts +0 -166
- package/references/sessionlog/src/__tests__/setup-ccweb.test.ts +0 -466
- package/references/sessionlog/src/__tests__/skill-live.test.ts +0 -461
- package/references/sessionlog/src/__tests__/summarize.test.ts +0 -348
- package/references/sessionlog/src/__tests__/task-plan-e2e.test.ts +0 -610
- package/references/sessionlog/src/__tests__/task-plan-live.test.ts +0 -632
- package/references/sessionlog/src/__tests__/transcript-timestamp.test.ts +0 -121
- package/references/sessionlog/src/__tests__/types.test.ts +0 -166
- package/references/sessionlog/src/__tests__/utils.test.ts +0 -333
- package/references/sessionlog/src/__tests__/validation.test.ts +0 -103
- package/references/sessionlog/src/__tests__/worktree.test.ts +0 -57
- package/references/sessionlog/src/agent/agents/claude-code.ts +0 -1089
- package/references/sessionlog/src/agent/agents/cursor.ts +0 -361
- package/references/sessionlog/src/agent/agents/gemini-cli.ts +0 -632
- package/references/sessionlog/src/agent/agents/opencode.ts +0 -540
- package/references/sessionlog/src/agent/registry.ts +0 -143
- package/references/sessionlog/src/agent/session-types.ts +0 -113
- package/references/sessionlog/src/agent/types.ts +0 -220
- package/references/sessionlog/src/cli.ts +0 -597
- package/references/sessionlog/src/commands/clean.ts +0 -133
- package/references/sessionlog/src/commands/disable.ts +0 -84
- package/references/sessionlog/src/commands/doctor.ts +0 -145
- package/references/sessionlog/src/commands/enable.ts +0 -202
- package/references/sessionlog/src/commands/explain.ts +0 -261
- package/references/sessionlog/src/commands/reset.ts +0 -105
- package/references/sessionlog/src/commands/resume.ts +0 -180
- package/references/sessionlog/src/commands/rewind.ts +0 -195
- package/references/sessionlog/src/commands/setup-ccweb.ts +0 -275
- package/references/sessionlog/src/commands/status.ts +0 -172
- package/references/sessionlog/src/config.ts +0 -165
- package/references/sessionlog/src/events/event-log.ts +0 -126
- package/references/sessionlog/src/git-operations.ts +0 -558
- package/references/sessionlog/src/hooks/git-hooks.ts +0 -165
- package/references/sessionlog/src/hooks/lifecycle.ts +0 -391
- package/references/sessionlog/src/index.ts +0 -650
- package/references/sessionlog/src/security/redaction.ts +0 -283
- package/references/sessionlog/src/session/state-machine.ts +0 -452
- package/references/sessionlog/src/store/checkpoint-store.ts +0 -509
- package/references/sessionlog/src/store/native-store.ts +0 -173
- package/references/sessionlog/src/store/provider-types.ts +0 -99
- package/references/sessionlog/src/store/session-store.ts +0 -266
- package/references/sessionlog/src/strategy/attribution.ts +0 -296
- package/references/sessionlog/src/strategy/common.ts +0 -207
- package/references/sessionlog/src/strategy/content-overlap.ts +0 -228
- package/references/sessionlog/src/strategy/manual-commit.ts +0 -988
- package/references/sessionlog/src/strategy/types.ts +0 -279
- package/references/sessionlog/src/summarize/claude-generator.ts +0 -115
- package/references/sessionlog/src/summarize/summarize.ts +0 -432
- package/references/sessionlog/src/types.ts +0 -508
- package/references/sessionlog/src/utils/chunk-files.ts +0 -49
- package/references/sessionlog/src/utils/commit-message.ts +0 -65
- package/references/sessionlog/src/utils/detect-agent.ts +0 -36
- package/references/sessionlog/src/utils/hook-managers.ts +0 -125
- package/references/sessionlog/src/utils/ide-tags.ts +0 -32
- package/references/sessionlog/src/utils/paths.ts +0 -79
- package/references/sessionlog/src/utils/preview-rewind.ts +0 -80
- package/references/sessionlog/src/utils/rewind-conflict.ts +0 -121
- package/references/sessionlog/src/utils/shadow-branch.ts +0 -109
- package/references/sessionlog/src/utils/string-utils.ts +0 -46
- package/references/sessionlog/src/utils/todo-extract.ts +0 -188
- package/references/sessionlog/src/utils/trailers.ts +0 -187
- package/references/sessionlog/src/utils/transcript-parse.ts +0 -177
- package/references/sessionlog/src/utils/transcript-timestamp.ts +0 -59
- package/references/sessionlog/src/utils/tree-ops.ts +0 -219
- package/references/sessionlog/src/utils/tty.ts +0 -72
- package/references/sessionlog/src/utils/validation.ts +0 -65
- package/references/sessionlog/src/utils/worktree.ts +0 -58
- package/references/sessionlog/src/wire-types.ts +0 -59
- package/references/sessionlog/templates/setup-env.sh +0 -153
- package/references/sessionlog/tsconfig.json +0 -18
- package/references/sessionlog/vitest.config.ts +0 -12
- package/references/skill-tree/.claude/settings.json +0 -6
- package/references/skill-tree/.sudocode/issues.jsonl +0 -19
- package/references/skill-tree/.sudocode/specs.jsonl +0 -3
- package/references/skill-tree/CLAUDE.md +0 -126
- package/references/skill-tree/README.md +0 -372
- package/references/skill-tree/docs/GAPS_v1.md +0 -221
- package/references/skill-tree/docs/INTEGRATION_PLAN.md +0 -467
- package/references/skill-tree/docs/TODOS.md +0 -91
- package/references/skill-tree/docs/anthropic_skill_guide.md +0 -1364
- package/references/skill-tree/docs/design/federated-skill-trees.md +0 -524
- package/references/skill-tree/docs/design/multi-agent-sync.md +0 -759
- package/references/skill-tree/docs/scraper/BRAINSTORM.md +0 -583
- package/references/skill-tree/docs/scraper/POC_PLAN.md +0 -420
- package/references/skill-tree/docs/scraper/README.md +0 -170
- package/references/skill-tree/examples/basic-usage.ts +0 -164
- package/references/skill-tree/package-lock.json +0 -1852
- package/references/skill-tree/package.json +0 -66
- package/references/skill-tree/scraper/README.md +0 -123
- package/references/skill-tree/scraper/docs/DESIGN.md +0 -683
- package/references/skill-tree/scraper/docs/PLAN.md +0 -336
- package/references/skill-tree/scraper/drizzle.config.ts +0 -10
- package/references/skill-tree/scraper/package-lock.json +0 -6329
- package/references/skill-tree/scraper/package.json +0 -68
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +0 -7
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +0 -7
- package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +0 -27
- package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +0 -21
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +0 -54
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +0 -24
- package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +0 -93
- package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +0 -22
- package/references/skill-tree/scraper/tsup.config.ts +0 -14
- package/references/skill-tree/scraper/vitest.config.ts +0 -17
- package/references/skill-tree/scripts/convert-to-vitest.ts +0 -166
- package/references/skill-tree/skills/skill-writer/SKILL.md +0 -339
- package/references/skill-tree/skills/skill-writer/references/examples.md +0 -326
- package/references/skill-tree/skills/skill-writer/references/patterns.md +0 -210
- package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +0 -123
- package/references/skill-tree/test/run-all.ts +0 -106
- package/references/skill-tree/test/utils.ts +0 -128
- package/references/skill-tree/vitest.config.ts +0 -16
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import {
|
|
3
|
+
classifyError,
|
|
4
|
+
classifyErrorType,
|
|
5
|
+
type ErrorType,
|
|
6
|
+
} from '../../src/utils/error-classifier.js';
|
|
7
|
+
|
|
8
|
+
describe('classifyError', () => {
|
|
9
|
+
it('should return null for empty string', () => {
|
|
10
|
+
expect(classifyError('')).toBeNull();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return null for undefined-ish input', () => {
|
|
14
|
+
expect(classifyError(null as unknown as string)).toBeNull();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('should classify type errors', () => {
|
|
18
|
+
expect(classifyError('TypeError: Cannot read properties of undefined')?.type).toBe('type-error');
|
|
19
|
+
expect(classifyError('type error occurred')?.type).toBe('type-error');
|
|
20
|
+
expect(classifyError('some type and some error')?.type).toBe('type-error');
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('should classify import/module errors', () => {
|
|
24
|
+
expect(classifyError('Cannot find module "foo"')?.type).toBe('import-error');
|
|
25
|
+
expect(classifyError('Module not found: bar')?.type).toBe('import-error');
|
|
26
|
+
expect(classifyError('import failed for xyz')?.type).toBe('import-error');
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('should classify syntax errors', () => {
|
|
30
|
+
expect(classifyError('SyntaxError: Unexpected token')?.type).toBe('syntax-error');
|
|
31
|
+
expect(classifyError('syntax error near "("')?.type).toBe('syntax-error');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('should classify timeouts', () => {
|
|
35
|
+
expect(classifyError('Timeout: operation exceeded 30s')?.type).toBe('timeout');
|
|
36
|
+
expect(classifyError('Request timed out')?.type).toBe('timeout');
|
|
37
|
+
expect(classifyError('Connection time out')?.type).toBe('timeout');
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('should classify permission errors', () => {
|
|
41
|
+
expect(classifyError('Permission denied')?.type).toBe('permission-error');
|
|
42
|
+
expect(classifyError('403 Forbidden')?.type).toBe('permission-error');
|
|
43
|
+
expect(classifyError('Unauthorized access')?.type).toBe('permission-error');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('should classify not-found errors', () => {
|
|
47
|
+
expect(classifyError('File not found')?.type).toBe('not-found');
|
|
48
|
+
expect(classifyError('No such file or directory')?.type).toBe('not-found');
|
|
49
|
+
expect(classifyError('Missing dependency')?.type).toBe('not-found');
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('should classify network errors', () => {
|
|
53
|
+
expect(classifyError('ECONNREFUSED 127.0.0.1:3000')?.type).toBe('network-error');
|
|
54
|
+
expect(classifyError('ENOTFOUND api.example.com')?.type).toBe('network-error');
|
|
55
|
+
expect(classifyError('Network unreachable')?.type).toBe('network-error');
|
|
56
|
+
expect(classifyError('connection refused')?.type).toBe('network-error');
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('should classify test failures', () => {
|
|
60
|
+
expect(classifyError('test failed: should return 42')?.type).toBe('test-failure');
|
|
61
|
+
expect(classifyError('FAIL tests/foo.test.ts')?.type).toBe('test-failure');
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('should classify assertion errors', () => {
|
|
65
|
+
expect(classifyError('assertion: expected 1 to equal 2')?.type).toBe('assertion-error');
|
|
66
|
+
expect(classifyError('AssertionError: values differ')?.type).toBe('assertion-error');
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('should classify general errors as fallback', () => {
|
|
70
|
+
expect(classifyError('An unknown exception occurred')?.type).toBe('general-error');
|
|
71
|
+
expect(classifyError('Error: something went wrong')?.type).toBe('general-error');
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('should return null when no pattern matches', () => {
|
|
75
|
+
expect(classifyError('everything is fine')).toBeNull();
|
|
76
|
+
expect(classifyError('success')).toBeNull();
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('should include a description with each classification', () => {
|
|
80
|
+
const result = classifyError('TypeError: bad input');
|
|
81
|
+
expect(result).not.toBeNull();
|
|
82
|
+
expect(result!.description).toBeTruthy();
|
|
83
|
+
expect(typeof result!.description).toBe('string');
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// BUG: Rule ordering means "type-error" takes priority over more specific patterns
|
|
87
|
+
// when both keywords appear. This documents the current behavior.
|
|
88
|
+
describe('rule priority (first-match-wins)', () => {
|
|
89
|
+
it('should match type-error before import-error when both keywords present', () => {
|
|
90
|
+
// "type" + "error" triggers type-error rule even if "import" is also present
|
|
91
|
+
const result = classifyError('type error during import');
|
|
92
|
+
expect(result?.type).toBe('type-error');
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it('should match import-error before not-found for module not found', () => {
|
|
96
|
+
// "Cannot find module" matches import-error before not-found
|
|
97
|
+
const result = classifyError('Cannot find module "foo"');
|
|
98
|
+
expect(result?.type).toBe('import-error');
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('should match assertion-error before test-failure for assertion strings', () => {
|
|
102
|
+
// "assertion" matches assertion-error before test-failure
|
|
103
|
+
const result = classifyError('test assertion failed');
|
|
104
|
+
expect(result?.type).toBe('assertion-error');
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it('should match network-error before not-found for ENOTFOUND', () => {
|
|
108
|
+
const result = classifyError('ENOTFOUND api.example.com');
|
|
109
|
+
expect(result?.type).toBe('network-error');
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
describe('classifyErrorType', () => {
|
|
115
|
+
it('should return just the type string', () => {
|
|
116
|
+
expect(classifyErrorType('TypeError: bad')).toBe('type-error');
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
it('should return null for empty input', () => {
|
|
120
|
+
expect(classifyErrorType('')).toBeNull();
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('should return null for no match', () => {
|
|
124
|
+
expect(classifyErrorType('all good')).toBeNull();
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it('should agree with classifyError', () => {
|
|
128
|
+
const inputs = [
|
|
129
|
+
'TypeError: x',
|
|
130
|
+
'Cannot find module "y"',
|
|
131
|
+
'SyntaxError: z',
|
|
132
|
+
'Timeout exceeded',
|
|
133
|
+
'Permission denied',
|
|
134
|
+
'File not found',
|
|
135
|
+
'ECONNREFUSED',
|
|
136
|
+
'test failed',
|
|
137
|
+
'assertion error',
|
|
138
|
+
'general exception',
|
|
139
|
+
'',
|
|
140
|
+
'no match here',
|
|
141
|
+
];
|
|
142
|
+
|
|
143
|
+
for (const input of inputs) {
|
|
144
|
+
const full = classifyError(input);
|
|
145
|
+
const typeOnly = classifyErrorType(input);
|
|
146
|
+
expect(typeOnly).toBe(full?.type ?? null);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import {
|
|
3
|
+
detectRepeatedActions,
|
|
4
|
+
extractToolNames,
|
|
5
|
+
type RepeatedAction,
|
|
6
|
+
} from '../../src/utils/trajectory-helpers.js';
|
|
7
|
+
|
|
8
|
+
describe('detectRepeatedActions', () => {
|
|
9
|
+
it('should return empty array for empty steps', () => {
|
|
10
|
+
expect(detectRepeatedActions([])).toEqual([]);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return empty array when no actions reach threshold', () => {
|
|
14
|
+
const steps = [
|
|
15
|
+
{ action: 'read file.ts' },
|
|
16
|
+
{ action: 'edit file.ts' },
|
|
17
|
+
{ action: 'run tests' },
|
|
18
|
+
];
|
|
19
|
+
expect(detectRepeatedActions(steps)).toEqual([]);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('should detect repeated actions at default threshold (3)', () => {
|
|
23
|
+
const steps = [
|
|
24
|
+
{ action: 'read file.ts' },
|
|
25
|
+
{ action: 'read file.ts' },
|
|
26
|
+
{ action: 'read file.ts' },
|
|
27
|
+
{ action: 'edit file.ts' },
|
|
28
|
+
];
|
|
29
|
+
const repeated = detectRepeatedActions(steps);
|
|
30
|
+
expect(repeated).toHaveLength(1);
|
|
31
|
+
expect(repeated[0].action).toBe('read file.ts');
|
|
32
|
+
expect(repeated[0].count).toBe(3);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should support custom threshold', () => {
|
|
36
|
+
const steps = [
|
|
37
|
+
{ action: 'read file.ts' },
|
|
38
|
+
{ action: 'read file.ts' },
|
|
39
|
+
{ action: 'edit file.ts' },
|
|
40
|
+
];
|
|
41
|
+
// threshold=2 should flag "read file.ts"
|
|
42
|
+
const repeated = detectRepeatedActions(steps, 2);
|
|
43
|
+
expect(repeated).toHaveLength(1);
|
|
44
|
+
expect(repeated[0].count).toBe(2);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('should normalize actions to lowercase and truncate to 50 chars by default', () => {
|
|
48
|
+
const longAction = 'A'.repeat(100);
|
|
49
|
+
const steps = [
|
|
50
|
+
{ action: longAction },
|
|
51
|
+
{ action: longAction },
|
|
52
|
+
{ action: longAction },
|
|
53
|
+
];
|
|
54
|
+
const repeated = detectRepeatedActions(steps);
|
|
55
|
+
expect(repeated).toHaveLength(1);
|
|
56
|
+
// Normalized: lowercased + truncated to 50 chars
|
|
57
|
+
expect(repeated[0].action).toBe('a'.repeat(50));
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('should use custom normalize function', () => {
|
|
61
|
+
const steps = [
|
|
62
|
+
{ action: 'Read file.ts' },
|
|
63
|
+
{ action: 'read FILE.ts' },
|
|
64
|
+
{ action: 'READ file.TS' },
|
|
65
|
+
];
|
|
66
|
+
// Without custom normalize, default lowercasing groups these
|
|
67
|
+
const repeated = detectRepeatedActions(steps, 3);
|
|
68
|
+
expect(repeated).toHaveLength(1);
|
|
69
|
+
|
|
70
|
+
// With custom normalize that preserves case, they'd be different
|
|
71
|
+
const repeatedStrict = detectRepeatedActions(steps, 3, (a) => a);
|
|
72
|
+
expect(repeatedStrict).toHaveLength(0);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it('should skip steps with falsy action', () => {
|
|
76
|
+
const steps = [
|
|
77
|
+
{ action: 'read' },
|
|
78
|
+
{ action: '' },
|
|
79
|
+
{ action: 'read' },
|
|
80
|
+
{ action: 'read' },
|
|
81
|
+
];
|
|
82
|
+
const repeated = detectRepeatedActions(steps);
|
|
83
|
+
expect(repeated).toHaveLength(1);
|
|
84
|
+
expect(repeated[0].count).toBe(3);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it('should detect multiple repeated actions', () => {
|
|
88
|
+
const steps = [
|
|
89
|
+
{ action: 'read file.ts' },
|
|
90
|
+
{ action: 'edit file.ts' },
|
|
91
|
+
{ action: 'read file.ts' },
|
|
92
|
+
{ action: 'edit file.ts' },
|
|
93
|
+
{ action: 'read file.ts' },
|
|
94
|
+
{ action: 'edit file.ts' },
|
|
95
|
+
];
|
|
96
|
+
const repeated = detectRepeatedActions(steps);
|
|
97
|
+
expect(repeated).toHaveLength(2);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
describe('extractToolNames', () => {
|
|
102
|
+
it('should return empty set for empty steps', () => {
|
|
103
|
+
expect(extractToolNames([])).toEqual(new Set());
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it('should extract simple tool names', () => {
|
|
107
|
+
const steps = [
|
|
108
|
+
{ action: 'Read src/index.ts' },
|
|
109
|
+
{ action: 'Edit src/index.ts line 5' },
|
|
110
|
+
];
|
|
111
|
+
const tools = extractToolNames(steps);
|
|
112
|
+
expect(tools.has('Read')).toBe(true);
|
|
113
|
+
expect(tools.has('Edit')).toBe(true);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it('should extract tool names with tool_use: prefix', () => {
|
|
117
|
+
const steps = [
|
|
118
|
+
{ action: 'tool_use: Read src/index.ts' },
|
|
119
|
+
{ action: 'tool_use: Write /tmp/out.txt' },
|
|
120
|
+
];
|
|
121
|
+
const tools = extractToolNames(steps);
|
|
122
|
+
expect(tools.has('Read')).toBe(true);
|
|
123
|
+
expect(tools.has('Write')).toBe(true);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
it('should handle mixed formats', () => {
|
|
127
|
+
const steps = [
|
|
128
|
+
{ action: 'Read foo.ts' },
|
|
129
|
+
{ action: 'tool_use: Bash echo hello' },
|
|
130
|
+
];
|
|
131
|
+
const tools = extractToolNames(steps);
|
|
132
|
+
expect(tools.has('Read')).toBe(true);
|
|
133
|
+
expect(tools.has('Bash')).toBe(true);
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
it('should skip steps with falsy action', () => {
|
|
137
|
+
const steps = [
|
|
138
|
+
{ action: '' },
|
|
139
|
+
{ action: 'Read foo.ts' },
|
|
140
|
+
];
|
|
141
|
+
const tools = extractToolNames(steps);
|
|
142
|
+
expect(tools.size).toBe(1);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it('should deduplicate tool names', () => {
|
|
146
|
+
const steps = [
|
|
147
|
+
{ action: 'Read a.ts' },
|
|
148
|
+
{ action: 'Read b.ts' },
|
|
149
|
+
{ action: 'Read c.ts' },
|
|
150
|
+
];
|
|
151
|
+
const tools = extractToolNames(steps);
|
|
152
|
+
expect(tools.size).toBe(1);
|
|
153
|
+
expect(tools.has('Read')).toBe(true);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
it('should handle camelCase tool names', () => {
|
|
157
|
+
const steps = [
|
|
158
|
+
{ action: 'searchAndReplace foo bar' },
|
|
159
|
+
];
|
|
160
|
+
const tools = extractToolNames(steps);
|
|
161
|
+
expect(tools.has('searchAndReplace')).toBe(true);
|
|
162
|
+
});
|
|
163
|
+
});
|