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
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Registry validation
|
|
3
|
-
*
|
|
4
|
-
* Validates registry for path collisions, stale mappings, and missing directories.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import fs from "node:fs/promises";
|
|
8
|
-
import path from "node:path";
|
|
9
|
-
|
|
10
|
-
import { readRegistry, type Registry, type RegistryMapping } from "./registry.js";
|
|
11
|
-
import { getCentralRepoPath } from "./central.js";
|
|
12
|
-
import { loadXdgConfig } from "../config.js";
|
|
13
|
-
|
|
14
|
-
export type ValidationIssue = {
|
|
15
|
-
type: "collision" | "stale" | "missing" | "orphan";
|
|
16
|
-
severity: "warning" | "error";
|
|
17
|
-
message: string;
|
|
18
|
-
path?: string;
|
|
19
|
-
machineId?: string;
|
|
20
|
-
details?: Record<string, unknown>;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export type ValidationResult = {
|
|
24
|
-
valid: boolean;
|
|
25
|
-
issues: ValidationIssue[];
|
|
26
|
-
stats: {
|
|
27
|
-
totalMappings: number;
|
|
28
|
-
activeMappings: number;
|
|
29
|
-
staleMappings: number;
|
|
30
|
-
collisions: number;
|
|
31
|
-
missingDirs: number;
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const STALE_THRESHOLD_DAYS = 30;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Validate the registry
|
|
39
|
-
*/
|
|
40
|
-
export async function validateRegistry(): Promise<ValidationResult> {
|
|
41
|
-
const result: ValidationResult = {
|
|
42
|
-
valid: true,
|
|
43
|
-
issues: [],
|
|
44
|
-
stats: {
|
|
45
|
-
totalMappings: 0,
|
|
46
|
-
activeMappings: 0,
|
|
47
|
-
staleMappings: 0,
|
|
48
|
-
collisions: 0,
|
|
49
|
-
missingDirs: 0,
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
const centralRepo = await getCentralRepoPath();
|
|
54
|
-
if (!centralRepo) {
|
|
55
|
-
result.issues.push({
|
|
56
|
-
type: "missing",
|
|
57
|
-
severity: "warning",
|
|
58
|
-
message: "No central repository configured",
|
|
59
|
-
});
|
|
60
|
-
return result;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
let registry: Registry;
|
|
64
|
-
try {
|
|
65
|
-
registry = await readRegistry(centralRepo);
|
|
66
|
-
} catch (error) {
|
|
67
|
-
result.issues.push({
|
|
68
|
-
type: "missing",
|
|
69
|
-
severity: "error",
|
|
70
|
-
message: `Failed to read registry: ${error}`,
|
|
71
|
-
});
|
|
72
|
-
result.valid = false;
|
|
73
|
-
return result;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const xdgConfig = await loadXdgConfig();
|
|
77
|
-
const currentMachineId = xdgConfig.machineId;
|
|
78
|
-
const now = new Date();
|
|
79
|
-
const staleThreshold = new Date(now.getTime() - STALE_THRESHOLD_DAYS * 24 * 60 * 60 * 1000);
|
|
80
|
-
|
|
81
|
-
result.stats.totalMappings = registry.mappings.length;
|
|
82
|
-
|
|
83
|
-
// Group mappings by central path to detect collisions
|
|
84
|
-
const pathToMappings = new Map<string, RegistryMapping[]>();
|
|
85
|
-
|
|
86
|
-
for (const mapping of registry.mappings) {
|
|
87
|
-
const existing = pathToMappings.get(mapping.path) || [];
|
|
88
|
-
existing.push(mapping);
|
|
89
|
-
pathToMappings.set(mapping.path, existing);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Check for collisions
|
|
93
|
-
for (const [centralPath, mappings] of pathToMappings) {
|
|
94
|
-
if (mappings.length > 1) {
|
|
95
|
-
// Multiple machines mapping to same path
|
|
96
|
-
const machineIds = mappings.map((m) => m.machineId);
|
|
97
|
-
const uniqueMachines = new Set(machineIds);
|
|
98
|
-
|
|
99
|
-
if (uniqueMachines.size > 1) {
|
|
100
|
-
result.issues.push({
|
|
101
|
-
type: "collision",
|
|
102
|
-
severity: "error",
|
|
103
|
-
message: `Path '${centralPath}' is mapped by multiple machines: ${Array.from(uniqueMachines).join(", ")}`,
|
|
104
|
-
path: centralPath,
|
|
105
|
-
details: { machines: Array.from(uniqueMachines) },
|
|
106
|
-
});
|
|
107
|
-
result.stats.collisions++;
|
|
108
|
-
result.valid = false;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Check each mapping
|
|
114
|
-
for (const mapping of registry.mappings) {
|
|
115
|
-
// Check for stale mappings
|
|
116
|
-
const lastSyncDate = new Date(mapping.lastSync);
|
|
117
|
-
if (lastSyncDate < staleThreshold) {
|
|
118
|
-
const daysSinceSync = Math.floor(
|
|
119
|
-
(now.getTime() - lastSyncDate.getTime()) / (24 * 60 * 60 * 1000)
|
|
120
|
-
);
|
|
121
|
-
|
|
122
|
-
result.issues.push({
|
|
123
|
-
type: "stale",
|
|
124
|
-
severity: "warning",
|
|
125
|
-
message: `Mapping '${mapping.path}' by '${mapping.machineId}' is stale (last sync: ${daysSinceSync} days ago)`,
|
|
126
|
-
path: mapping.path,
|
|
127
|
-
machineId: mapping.machineId,
|
|
128
|
-
details: { lastSync: mapping.lastSync, daysSinceSync },
|
|
129
|
-
});
|
|
130
|
-
result.stats.staleMappings++;
|
|
131
|
-
} else {
|
|
132
|
-
result.stats.activeMappings++;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// Check if local directory exists (only for current machine)
|
|
136
|
-
if (mapping.machineId === currentMachineId) {
|
|
137
|
-
const localPath = expandPath(mapping.localPath);
|
|
138
|
-
try {
|
|
139
|
-
await fs.access(localPath);
|
|
140
|
-
} catch {
|
|
141
|
-
result.issues.push({
|
|
142
|
-
type: "missing",
|
|
143
|
-
severity: "warning",
|
|
144
|
-
message: `Local directory no longer exists: ${mapping.localPath}`,
|
|
145
|
-
path: mapping.path,
|
|
146
|
-
machineId: mapping.machineId,
|
|
147
|
-
details: { localPath: mapping.localPath },
|
|
148
|
-
});
|
|
149
|
-
result.stats.missingDirs++;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return result;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Expand path (handle ~ for home directory)
|
|
159
|
-
*/
|
|
160
|
-
function expandPath(p: string): string {
|
|
161
|
-
if (p.startsWith("~/")) {
|
|
162
|
-
return path.join(process.env.HOME || "", p.slice(2));
|
|
163
|
-
}
|
|
164
|
-
return p;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Format validation result for display
|
|
169
|
-
*/
|
|
170
|
-
export function formatValidationResult(result: ValidationResult): string {
|
|
171
|
-
const lines: string[] = [];
|
|
172
|
-
|
|
173
|
-
lines.push("Registry Validation Results");
|
|
174
|
-
lines.push("-".repeat(40));
|
|
175
|
-
|
|
176
|
-
lines.push(`Total mappings: ${result.stats.totalMappings}`);
|
|
177
|
-
lines.push(`Active mappings: ${result.stats.activeMappings}`);
|
|
178
|
-
|
|
179
|
-
if (result.stats.staleMappings > 0) {
|
|
180
|
-
lines.push(`Stale mappings: ${result.stats.staleMappings}`);
|
|
181
|
-
}
|
|
182
|
-
if (result.stats.collisions > 0) {
|
|
183
|
-
lines.push(`Collisions: ${result.stats.collisions}`);
|
|
184
|
-
}
|
|
185
|
-
if (result.stats.missingDirs > 0) {
|
|
186
|
-
lines.push(`Missing directories: ${result.stats.missingDirs}`);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
if (result.issues.length > 0) {
|
|
190
|
-
lines.push("");
|
|
191
|
-
lines.push("Issues:");
|
|
192
|
-
|
|
193
|
-
for (const issue of result.issues) {
|
|
194
|
-
const prefix = issue.severity === "error" ? "ERROR" : "WARN";
|
|
195
|
-
lines.push(` [${prefix}] ${issue.message}`);
|
|
196
|
-
}
|
|
197
|
-
} else {
|
|
198
|
-
lines.push("");
|
|
199
|
-
lines.push("No issues found.");
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
lines.push("");
|
|
203
|
-
lines.push(result.valid ? "Registry is valid." : "Registry has errors that need attention.");
|
|
204
|
-
|
|
205
|
-
return lines.join("\n");
|
|
206
|
-
}
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File watcher with debouncing for memory directories
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import chokidar, { type FSWatcher } from "chokidar";
|
|
6
|
-
import path from "node:path";
|
|
7
|
-
import { EventEmitter } from "node:events";
|
|
8
|
-
|
|
9
|
-
import { listSyncableFiles } from "./state.js";
|
|
10
|
-
|
|
11
|
-
export type WatcherEvent = "add" | "change" | "unlink";
|
|
12
|
-
|
|
13
|
-
export type FileChange = {
|
|
14
|
-
event: WatcherEvent;
|
|
15
|
-
file: string; // Relative path
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export type WatcherOptions = {
|
|
19
|
-
/** Debounce interval in milliseconds (default: 2000) */
|
|
20
|
-
debounceMs?: number;
|
|
21
|
-
/** Patterns to include (default: MEMORY.md, memory/*.md) */
|
|
22
|
-
include?: string[];
|
|
23
|
-
/** Patterns to exclude */
|
|
24
|
-
exclude?: string[];
|
|
25
|
-
/** Use polling instead of native events (for network drives) */
|
|
26
|
-
usePolling?: boolean;
|
|
27
|
-
/** Polling interval in milliseconds (default: 1000) */
|
|
28
|
-
pollInterval?: number;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export type WatcherInstance = {
|
|
32
|
-
/** Stop watching and clean up */
|
|
33
|
-
close: () => Promise<void>;
|
|
34
|
-
/** Add event listener */
|
|
35
|
-
on: (event: "changes", listener: (changes: FileChange[]) => void) => void;
|
|
36
|
-
/** Remove event listener */
|
|
37
|
-
off: (event: "changes", listener: (changes: FileChange[]) => void) => void;
|
|
38
|
-
/** Whether the watcher is ready */
|
|
39
|
-
ready: boolean;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const DEFAULT_DEBOUNCE_MS = 2000;
|
|
43
|
-
const DEFAULT_POLL_INTERVAL = 1000;
|
|
44
|
-
|
|
45
|
-
const DEFAULT_INCLUDE = ["MEMORY.md", "memory/**/*.md"];
|
|
46
|
-
const DEFAULT_EXCLUDE = [".minimem/**", "node_modules/**", ".git/**"];
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Create a file watcher for a memory directory
|
|
50
|
-
*/
|
|
51
|
-
export function createFileWatcher(
|
|
52
|
-
memoryDir: string,
|
|
53
|
-
options: WatcherOptions = {}
|
|
54
|
-
): WatcherInstance {
|
|
55
|
-
const debounceMs = options.debounceMs ?? DEFAULT_DEBOUNCE_MS;
|
|
56
|
-
const include = options.include ?? DEFAULT_INCLUDE;
|
|
57
|
-
const exclude = options.exclude ?? DEFAULT_EXCLUDE;
|
|
58
|
-
|
|
59
|
-
const emitter = new EventEmitter();
|
|
60
|
-
let watcher: FSWatcher | null = null;
|
|
61
|
-
let ready = false;
|
|
62
|
-
|
|
63
|
-
// Pending changes for debouncing
|
|
64
|
-
let pendingChanges: Map<string, FileChange> = new Map();
|
|
65
|
-
let debounceTimer: NodeJS.Timeout | null = null;
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Flush pending changes
|
|
69
|
-
*/
|
|
70
|
-
const flushChanges = () => {
|
|
71
|
-
if (pendingChanges.size > 0) {
|
|
72
|
-
const changes = Array.from(pendingChanges.values());
|
|
73
|
-
pendingChanges = new Map();
|
|
74
|
-
emitter.emit("changes", changes);
|
|
75
|
-
}
|
|
76
|
-
debounceTimer = null;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Schedule a debounced flush
|
|
81
|
-
*/
|
|
82
|
-
const scheduleFlush = () => {
|
|
83
|
-
if (debounceTimer) {
|
|
84
|
-
clearTimeout(debounceTimer);
|
|
85
|
-
}
|
|
86
|
-
debounceTimer = setTimeout(flushChanges, debounceMs);
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Handle a file event
|
|
91
|
-
*/
|
|
92
|
-
const handleEvent = (event: WatcherEvent, filePath: string) => {
|
|
93
|
-
// Get relative path
|
|
94
|
-
const relativePath = path.relative(memoryDir, filePath);
|
|
95
|
-
|
|
96
|
-
// Skip files in .minimem
|
|
97
|
-
if (relativePath.startsWith(".minimem")) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Check if file matches include patterns
|
|
102
|
-
const isIncluded = include.some((pattern) => {
|
|
103
|
-
if (pattern.includes("*")) {
|
|
104
|
-
// Simple glob matching
|
|
105
|
-
const regex = new RegExp(
|
|
106
|
-
"^" + pattern.replace(/\*\*/g, ".*").replace(/\*/g, "[^/]*") + "$"
|
|
107
|
-
);
|
|
108
|
-
return regex.test(relativePath);
|
|
109
|
-
}
|
|
110
|
-
return relativePath === pattern || relativePath.startsWith(pattern + "/");
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
if (!isIncluded) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Check if file matches exclude patterns
|
|
118
|
-
const isExcluded = exclude.some((pattern) => {
|
|
119
|
-
if (pattern.includes("*")) {
|
|
120
|
-
const regex = new RegExp(
|
|
121
|
-
"^" + pattern.replace(/\*\*/g, ".*").replace(/\*/g, "[^/]*") + "$"
|
|
122
|
-
);
|
|
123
|
-
return regex.test(relativePath);
|
|
124
|
-
}
|
|
125
|
-
return relativePath === pattern || relativePath.startsWith(pattern);
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
if (isExcluded) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// Add to pending changes (later events override earlier for same file)
|
|
133
|
-
pendingChanges.set(relativePath, { event, file: relativePath });
|
|
134
|
-
scheduleFlush();
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
// Create watcher
|
|
138
|
-
const watchPaths = include.map((pattern) => path.join(memoryDir, pattern));
|
|
139
|
-
|
|
140
|
-
watcher = chokidar.watch(watchPaths, {
|
|
141
|
-
ignored: exclude.map((pattern) => path.join(memoryDir, pattern)),
|
|
142
|
-
persistent: true,
|
|
143
|
-
ignoreInitial: true,
|
|
144
|
-
usePolling: options.usePolling ?? false,
|
|
145
|
-
interval: options.pollInterval ?? DEFAULT_POLL_INTERVAL,
|
|
146
|
-
awaitWriteFinish: {
|
|
147
|
-
stabilityThreshold: 500,
|
|
148
|
-
pollInterval: 100,
|
|
149
|
-
},
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
watcher
|
|
153
|
-
.on("add", (filePath) => handleEvent("add", filePath))
|
|
154
|
-
.on("change", (filePath) => handleEvent("change", filePath))
|
|
155
|
-
.on("unlink", (filePath) => handleEvent("unlink", filePath))
|
|
156
|
-
.on("ready", () => {
|
|
157
|
-
ready = true;
|
|
158
|
-
})
|
|
159
|
-
.on("error", (error) => {
|
|
160
|
-
console.error(`Watcher error: ${error}`);
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
return {
|
|
164
|
-
close: async () => {
|
|
165
|
-
if (debounceTimer) {
|
|
166
|
-
clearTimeout(debounceTimer);
|
|
167
|
-
debounceTimer = null;
|
|
168
|
-
}
|
|
169
|
-
if (watcher) {
|
|
170
|
-
await watcher.close();
|
|
171
|
-
watcher = null;
|
|
172
|
-
}
|
|
173
|
-
emitter.removeAllListeners();
|
|
174
|
-
},
|
|
175
|
-
|
|
176
|
-
on: (event: "changes", listener: (changes: FileChange[]) => void) => {
|
|
177
|
-
emitter.on(event, listener);
|
|
178
|
-
},
|
|
179
|
-
|
|
180
|
-
off: (event: "changes", listener: (changes: FileChange[]) => void) => {
|
|
181
|
-
emitter.off(event, listener);
|
|
182
|
-
},
|
|
183
|
-
|
|
184
|
-
get ready() {
|
|
185
|
-
return ready;
|
|
186
|
-
},
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Watch multiple directories
|
|
192
|
-
*/
|
|
193
|
-
export function createMultiDirWatcher(
|
|
194
|
-
memoryDirs: string[],
|
|
195
|
-
options: WatcherOptions = {}
|
|
196
|
-
): WatcherInstance {
|
|
197
|
-
const watchers = memoryDirs.map((dir) => ({
|
|
198
|
-
dir,
|
|
199
|
-
watcher: createFileWatcher(dir, options),
|
|
200
|
-
}));
|
|
201
|
-
|
|
202
|
-
const emitter = new EventEmitter();
|
|
203
|
-
|
|
204
|
-
// Forward events from all watchers
|
|
205
|
-
for (const { dir, watcher } of watchers) {
|
|
206
|
-
watcher.on("changes", (changes) => {
|
|
207
|
-
// Add directory info to changes
|
|
208
|
-
const changesWithDir = changes.map((c) => ({
|
|
209
|
-
...c,
|
|
210
|
-
file: path.join(dir, c.file),
|
|
211
|
-
}));
|
|
212
|
-
emitter.emit("changes", changesWithDir);
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
return {
|
|
217
|
-
close: async () => {
|
|
218
|
-
await Promise.all(watchers.map(({ watcher }) => watcher.close()));
|
|
219
|
-
emitter.removeAllListeners();
|
|
220
|
-
},
|
|
221
|
-
|
|
222
|
-
on: (event: "changes", listener: (changes: FileChange[]) => void) => {
|
|
223
|
-
emitter.on(event, listener);
|
|
224
|
-
},
|
|
225
|
-
|
|
226
|
-
off: (event: "changes", listener: (changes: FileChange[]) => void) => {
|
|
227
|
-
emitter.off(event, listener);
|
|
228
|
-
},
|
|
229
|
-
|
|
230
|
-
get ready() {
|
|
231
|
-
return watchers.every(({ watcher }) => watcher.ready);
|
|
232
|
-
},
|
|
233
|
-
};
|
|
234
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Version management for the CLI
|
|
3
|
-
*
|
|
4
|
-
* Reads the version from package.json at runtime for consistency.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { readFileSync } from "node:fs";
|
|
8
|
-
import { dirname, join } from "node:path";
|
|
9
|
-
import { fileURLToPath } from "node:url";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Get the package version from package.json
|
|
13
|
-
*
|
|
14
|
-
* This reads from the package.json at runtime to ensure the CLI
|
|
15
|
-
* version always matches the published package version.
|
|
16
|
-
*/
|
|
17
|
-
function getPackageVersion(): string {
|
|
18
|
-
try {
|
|
19
|
-
// In ESM, we need to get __dirname equivalent
|
|
20
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
21
|
-
const __dirname = dirname(__filename);
|
|
22
|
-
|
|
23
|
-
// Navigate from src/cli/ to package root
|
|
24
|
-
const packagePath = join(__dirname, "../../package.json");
|
|
25
|
-
const packageJson = JSON.parse(readFileSync(packagePath, "utf-8"));
|
|
26
|
-
return packageJson.version || "0.0.0";
|
|
27
|
-
} catch {
|
|
28
|
-
// Fallback if we can't read package.json
|
|
29
|
-
// This might happen in bundled builds where path resolution differs
|
|
30
|
-
return "0.0.0";
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export const VERSION = getPackageVersion();
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core module - Indexer and Searcher components
|
|
3
|
-
*
|
|
4
|
-
* These classes extract indexing and search concerns from the Minimem class
|
|
5
|
-
* to improve separation of concerns and testability.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export { MemoryIndexer, type IndexerConfig, type MemoryIndexMeta, type IndexStats } from "./indexer.js";
|
|
9
|
-
export { MemorySearcher, type SearchConfig, type SearchResult } from "./searcher.js";
|