@isaacriehm/cairn-core 0.7.0 → 0.7.1
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/dist/.tsbuildinfo +1 -1
- package/dist/align-undo/undo.js +2 -2
- package/dist/align-undo/undo.js.map +1 -1
- package/dist/attention/bulk-accept.js +48 -40
- package/dist/attention/bulk-accept.js.map +1 -1
- package/dist/attention/dedup.js +23 -10
- package/dist/attention/dedup.js.map +1 -1
- package/dist/attention/restore.js +2 -2
- package/dist/attention/restore.js.map +1 -1
- package/dist/attention/scoring.js +1 -1
- package/dist/attention/scoring.js.map +1 -1
- package/dist/attention/serve/api.d.ts +1 -0
- package/dist/attention/serve/api.js +127 -80
- package/dist/attention/serve/api.js.map +1 -1
- package/dist/attention/serve/index.d.ts +1 -0
- package/dist/attention/serve/index.js +21 -7
- package/dist/attention/serve/index.js.map +1 -1
- package/dist/attention/source-strip.js +41 -46
- package/dist/attention/source-strip.js.map +1 -1
- package/dist/claude/cache.d.ts +10 -19
- package/dist/claude/cache.js +0 -0
- package/dist/claude/cache.js.map +1 -1
- package/dist/claude/runner.d.ts +4 -6
- package/dist/claude/runner.js +242 -203
- package/dist/claude/runner.js.map +1 -1
- package/dist/claude/types.d.ts +5 -5
- package/dist/context/handoff-builder.d.ts +28 -4
- package/dist/context/handoff-builder.js +75 -157
- package/dist/context/handoff-builder.js.map +1 -1
- package/dist/context/spec-delta.js +61 -9
- package/dist/context/spec-delta.js.map +1 -1
- package/dist/context/task-summary.js +5 -1
- package/dist/context/task-summary.js.map +1 -1
- package/dist/decision-capture/id.js +1 -1
- package/dist/decision-capture/id.js.map +1 -1
- package/dist/doctor/index.d.ts +9 -11
- package/dist/doctor/index.js +118 -175
- package/dist/doctor/index.js.map +1 -1
- package/dist/drain/drain.d.ts +1 -1
- package/dist/drain/drain.js +16 -16
- package/dist/drain/drain.js.map +1 -1
- package/dist/drain/index.d.ts +1 -1
- package/dist/drain/index.js +1 -1
- package/dist/events/reader.d.ts +9 -10
- package/dist/events/reader.js +46 -57
- package/dist/events/reader.js.map +1 -1
- package/dist/events/writer.js +1 -1
- package/dist/events/writer.js.map +1 -1
- package/dist/fix-align/index.d.ts +1 -1
- package/dist/fix-align/index.js +1 -1
- package/dist/fix-align/run.d.ts +1 -1
- package/dist/fix-align/run.js +4 -3
- package/dist/fix-align/run.js.map +1 -1
- package/dist/fix-align/sentinel.d.ts +1 -2
- package/dist/fix-align/sentinel.js +3 -4
- package/dist/fix-align/sentinel.js.map +1 -1
- package/dist/gc/apply.js +1 -1
- package/dist/gc/apply.js.map +1 -1
- package/dist/gc/attested-commits.d.ts +19 -0
- package/dist/gc/attested-commits.js +48 -0
- package/dist/gc/attested-commits.js.map +1 -0
- package/dist/gc/canary.d.ts +11 -21
- package/dist/gc/canary.js +18 -24
- package/dist/gc/canary.js.map +1 -1
- package/dist/gc/citation-integrity.d.ts +11 -14
- package/dist/gc/citation-integrity.js +124 -125
- package/dist/gc/citation-integrity.js.map +1 -1
- package/dist/gc/classify.d.ts +1 -1
- package/dist/gc/classify.js +2 -2
- package/dist/gc/classify.js.map +1 -1
- package/dist/gc/completion-integrity.d.ts +6 -7
- package/dist/gc/completion-integrity.js +45 -53
- package/dist/gc/completion-integrity.js.map +1 -1
- package/dist/gc/doc-gardening.js +1 -9
- package/dist/gc/doc-gardening.js.map +1 -1
- package/dist/gc/frontmatter.js +2 -2
- package/dist/gc/frontmatter.js.map +1 -1
- package/dist/gc/index.d.ts +7 -6
- package/dist/gc/index.js +3 -2
- package/dist/gc/index.js.map +1 -1
- package/dist/gc/quality-update.d.ts +6 -10
- package/dist/gc/quality-update.js +12 -15
- package/dist/gc/quality-update.js.map +1 -1
- package/dist/gc/scope-coverage.js +1 -1
- package/dist/gc/scope-coverage.js.map +1 -1
- package/dist/gc/stub-hits.d.ts +7 -25
- package/dist/gc/stub-hits.js +14 -40
- package/dist/gc/stub-hits.js.map +1 -1
- package/dist/gc/sweep.js +15 -6
- package/dist/gc/sweep.js.map +1 -1
- package/dist/gc/types.d.ts +5 -5
- package/dist/gc/types.js +2 -2
- package/dist/gc/walk-source.js +8 -28
- package/dist/gc/walk-source.js.map +1 -1
- package/dist/hooks/defer.d.ts +9 -20
- package/dist/hooks/defer.js +10 -27
- package/dist/hooks/defer.js.map +1 -1
- package/dist/hooks/post-tool-use/allowlist-reader.d.ts +2 -1
- package/dist/hooks/post-tool-use/allowlist-reader.js +49 -34
- package/dist/hooks/post-tool-use/allowlist-reader.js.map +1 -1
- package/dist/hooks/post-tool-use/index.d.ts +3 -4
- package/dist/hooks/post-tool-use/index.js +3 -3
- package/dist/hooks/post-tool-use/index.js.map +1 -1
- package/dist/hooks/post-tool-use/legend-builder.d.ts +2 -2
- package/dist/hooks/post-tool-use/legend-builder.js +2 -2
- package/dist/hooks/post-tool-use/legend-builder.js.map +1 -1
- package/dist/hooks/post-tool-use/post-write.d.ts +8 -0
- package/dist/hooks/post-tool-use/post-write.js +112 -0
- package/dist/hooks/post-tool-use/post-write.js.map +1 -0
- package/dist/hooks/post-tool-use/read-enricher.d.ts +10 -5
- package/dist/hooks/post-tool-use/read-enricher.js +114 -155
- package/dist/hooks/post-tool-use/read-enricher.js.map +1 -1
- package/dist/hooks/post-tool-use/sot-align.d.ts +12 -0
- package/dist/hooks/post-tool-use/sot-align.js +73 -49
- package/dist/hooks/post-tool-use/sot-align.js.map +1 -1
- package/dist/hooks/post-tool-use/write-guardian.d.ts +40 -8
- package/dist/hooks/post-tool-use/write-guardian.js +202 -254
- package/dist/hooks/post-tool-use/write-guardian.js.map +1 -1
- package/dist/hooks/pre-commit/sot-align-precommit.js +2 -2
- package/dist/hooks/pre-commit/sot-align-precommit.js.map +1 -1
- package/dist/hooks/runners/index.d.ts +2 -2
- package/dist/hooks/runners/index.js +1 -1
- package/dist/hooks/runners/index.js.map +1 -1
- package/dist/hooks/runners/payload.d.ts +34 -19
- package/dist/hooks/runners/payload.js +47 -44
- package/dist/hooks/runners/payload.js.map +1 -1
- package/dist/hooks/runners/session-end.js +12 -11
- package/dist/hooks/runners/session-end.js.map +1 -1
- package/dist/hooks/runners/session-start.d.ts +4 -2
- package/dist/hooks/runners/session-start.js +88 -261
- package/dist/hooks/runners/session-start.js.map +1 -1
- package/dist/hooks/runners/stop.js +27 -8
- package/dist/hooks/runners/stop.js.map +1 -1
- package/dist/hooks/runners/user-prompt-submit.js +7 -1
- package/dist/hooks/runners/user-prompt-submit.js.map +1 -1
- package/dist/hooks/sot-align-common.d.ts +1 -2
- package/dist/hooks/sot-align-common.js +2 -2
- package/dist/hooks/sot-align-common.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/init/baseline-audit.d.ts +14 -58
- package/dist/init/baseline-audit.js +92 -320
- package/dist/init/baseline-audit.js.map +1 -1
- package/dist/init/brand-derive.d.ts +11 -15
- package/dist/init/brand-derive.js +21 -46
- package/dist/init/brand-derive.js.map +1 -1
- package/dist/init/brand-setup.d.ts +1 -1
- package/dist/init/brand-setup.js +1 -1
- package/dist/init/detect.d.ts +25 -6
- package/dist/init/detect.js +107 -136
- package/dist/init/detect.js.map +1 -1
- package/dist/init/index.d.ts +2 -2
- package/dist/init/index.js +1 -1
- package/dist/init/index.js.map +1 -1
- package/dist/init/ingest-docs.d.ts +2 -2
- package/dist/init/ingest-docs.js +31 -43
- package/dist/init/ingest-docs.js.map +1 -1
- package/dist/init/init.d.ts +21 -21
- package/dist/init/init.js +41 -61
- package/dist/init/init.js.map +1 -1
- package/dist/init/mapper-merge.js +1 -1
- package/dist/init/mapper-merge.js.map +1 -1
- package/dist/init/mapper-parallel.d.ts +1 -1
- package/dist/init/mapper-parallel.js +2 -1
- package/dist/init/mapper-parallel.js.map +1 -1
- package/dist/init/mapper.js +1 -1
- package/dist/init/mapper.js.map +1 -1
- package/dist/init/multi-dev/install.d.ts +5 -5
- package/dist/init/multi-dev/install.js +4 -4
- package/dist/init/overlay.js +1 -0
- package/dist/init/overlay.js.map +1 -1
- package/dist/init/phases/1-detect.js +1 -1
- package/dist/init/phases/1-detect.js.map +1 -1
- package/dist/init/phases/{7c-rules-merge.d.ts → 10-rules-merge.d.ts} +2 -2
- package/dist/init/phases/{7c-rules-merge.js → 10-rules-merge.js} +6 -12
- package/dist/init/phases/10-rules-merge.js.map +1 -0
- package/dist/init/phases/11-baseline.d.ts +7 -0
- package/dist/init/phases/{8-baseline.js → 11-baseline.js} +5 -9
- package/dist/init/phases/11-baseline.js.map +1 -0
- package/dist/init/phases/12-strip.d.ts +10 -0
- package/dist/init/phases/{10-strip.js → 12-strip.js} +10 -14
- package/dist/init/phases/12-strip.js.map +1 -0
- package/dist/init/phases/{12-multidev.d.ts → 13-multidev.d.ts} +2 -2
- package/dist/init/phases/{12-multidev.js → 13-multidev.js} +4 -4
- package/dist/init/phases/{12-multidev.js.map → 13-multidev.js.map} +1 -1
- package/dist/init/phases/3-mapper.d.ts +1 -1
- package/dist/init/phases/3-mapper.js +2 -2
- package/dist/init/phases/3-mapper.js.map +1 -1
- package/dist/init/phases/{3b-seed.d.ts → 4-seed.d.ts} +2 -2
- package/dist/init/phases/{3b-seed.js → 4-seed.js} +7 -7
- package/dist/init/phases/4-seed.js.map +1 -0
- package/dist/init/phases/{4-pilot.d.ts → 5-pilot.d.ts} +2 -2
- package/dist/init/phases/{4-pilot.js → 5-pilot.js} +9 -9
- package/dist/init/phases/{4-pilot.js.map → 5-pilot.js.map} +1 -1
- package/dist/init/phases/{5-brand.d.ts → 6-brand.d.ts} +2 -7
- package/dist/init/phases/{5-brand.js → 6-brand.js} +6 -14
- package/dist/init/phases/6-brand.js.map +1 -0
- package/dist/init/phases/{5b-topic-index.d.ts → 7-topic-index.d.ts} +2 -11
- package/dist/init/phases/{5b-topic-index.js → 7-topic-index.js} +9 -18
- package/dist/init/phases/7-topic-index.js.map +1 -0
- package/dist/init/phases/8-docs-ingest.d.ts +10 -0
- package/dist/init/phases/{6-docs-ingest.js → 8-docs-ingest.js} +6 -11
- package/dist/init/phases/8-docs-ingest.js.map +1 -0
- package/dist/init/phases/9-source-comments.d.ts +6 -0
- package/dist/init/phases/{7b-source-comments.js → 9-source-comments.js} +7 -26
- package/dist/init/phases/9-source-comments.js.map +1 -0
- package/dist/init/phases/index.d.ts +12 -12
- package/dist/init/phases/index.js +11 -11
- package/dist/init/phases/index.js.map +1 -1
- package/dist/init/phases/{parallel-678.d.ts → parallel-8910.d.ts} +7 -8
- package/dist/init/phases/{parallel-678.js → parallel-8910.js} +26 -44
- package/dist/init/phases/parallel-8910.js.map +1 -0
- package/dist/init/phases/source-comments-output-io.d.ts +3 -3
- package/dist/init/phases/source-comments-output-io.js +3 -3
- package/dist/init/phases/types.d.ts +1 -1
- package/dist/init/phases/types.js +10 -10
- package/dist/init/phases/types.js.map +1 -1
- package/dist/init/rules-merge/discover.d.ts +2 -2
- package/dist/init/rules-merge/discover.js +28 -43
- package/dist/init/rules-merge/discover.js.map +1 -1
- package/dist/init/rules-merge/ingest.d.ts +6 -6
- package/dist/init/rules-merge/ingest.js +9 -10
- package/dist/init/rules-merge/ingest.js.map +1 -1
- package/dist/init/rules-merge/keep-markers.d.ts +1 -1
- package/dist/init/rules-merge/keep-markers.js +1 -1
- package/dist/init/rules-merge/regenerate.d.ts +3 -3
- package/dist/init/rules-merge/regenerate.js +3 -3
- package/dist/init/seed.js +17 -24
- package/dist/init/seed.js.map +1 -1
- package/dist/init/sot-emit.d.ts +27 -9
- package/dist/init/sot-emit.js +39 -7
- package/dist/init/sot-emit.js.map +1 -1
- package/dist/init/source-comments/classify.d.ts +2 -2
- package/dist/init/source-comments/classify.js +9 -1
- package/dist/init/source-comments/classify.js.map +1 -1
- package/dist/init/source-comments/index.d.ts +1 -1
- package/dist/init/source-comments/index.js.map +1 -1
- package/dist/init/source-comments/ingest.d.ts +2 -2
- package/dist/init/source-comments/ingest.js +6 -8
- package/dist/init/source-comments/ingest.js.map +1 -1
- package/dist/init/source-comments/strip-replace.js +3 -2
- package/dist/init/source-comments/strip-replace.js.map +1 -1
- package/dist/init/source-comments/walker.d.ts +3 -26
- package/dist/init/source-comments/walker.js +18 -30
- package/dist/init/source-comments/walker.js.map +1 -1
- package/dist/init/topic-index/index.d.ts +1 -1
- package/dist/init/topic-index/index.js +3 -3
- package/dist/init/topic-index/index.js.map +1 -1
- package/dist/init/topic-index/judge.d.ts +5 -9
- package/dist/init/topic-index/judge.js +17 -22
- package/dist/init/topic-index/judge.js.map +1 -1
- package/dist/init/topic-index/resolve.d.ts +5 -4
- package/dist/init/topic-index/resolve.js +6 -6
- package/dist/init/topic-index/resolve.js.map +1 -1
- package/dist/init/topic-index/walk.d.ts +6 -6
- package/dist/init/topic-index/walk.js +9 -9
- package/dist/init/topic-index/walk.js.map +1 -1
- package/dist/lock.js +4 -1
- package/dist/lock.js.map +1 -1
- package/dist/logger.js +3 -0
- package/dist/logger.js.map +1 -1
- package/dist/mcp/history/summarizer.js +1 -1
- package/dist/mcp/history/summarizer.js.map +1 -1
- package/dist/mcp/history/walker.js +1 -1
- package/dist/mcp/history/walker.js.map +1 -1
- package/dist/mcp/path-allowlist.js +1 -1
- package/dist/mcp/path-allowlist.js.map +1 -1
- package/dist/mcp/schemas.d.ts +16 -38
- package/dist/mcp/schemas.js +8 -22
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/server.js +10 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/archive.js +1 -1
- package/dist/mcp/tools/archive.js.map +1 -1
- package/dist/mcp/tools/attention-wait.js +12 -2
- package/dist/mcp/tools/attention-wait.js.map +1 -1
- package/dist/mcp/tools/bulk-accept-attention.js +29 -30
- package/dist/mcp/tools/bulk-accept-attention.js.map +1 -1
- package/dist/mcp/tools/canonical-for-topic.js +37 -15
- package/dist/mcp/tools/canonical-for-topic.js.map +1 -1
- package/dist/mcp/tools/decision-get.js +2 -2
- package/dist/mcp/tools/decision-get.js.map +1 -1
- package/dist/mcp/tools/decisions-for-symbol.js +2 -2
- package/dist/mcp/tools/decisions-for-symbol.js.map +1 -1
- package/dist/mcp/tools/get-full.js +1 -1
- package/dist/mcp/tools/get-full.js.map +1 -1
- package/dist/mcp/tools/ground-get.js +1 -1
- package/dist/mcp/tools/ground-get.js.map +1 -1
- package/dist/mcp/tools/in-scope.d.ts +8 -0
- package/dist/mcp/tools/in-scope.js +125 -0
- package/dist/mcp/tools/in-scope.js.map +1 -0
- package/dist/mcp/tools/index.js +7 -10
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/init-phases.d.ts +3 -2
- package/dist/mcp/tools/init-phases.js +125 -124
- package/dist/mcp/tools/init-phases.js.map +1 -1
- package/dist/mcp/tools/invariant-get.js +2 -2
- package/dist/mcp/tools/invariant-get.js.map +1 -1
- package/dist/mcp/tools/record-decision.d.ts +4 -3
- package/dist/mcp/tools/record-decision.js +111 -36
- package/dist/mcp/tools/record-decision.js.map +1 -1
- package/dist/mcp/tools/reject-candidate.d.ts +1 -1
- package/dist/mcp/tools/reject-candidate.js +3 -3
- package/dist/mcp/tools/reject-candidate.js.map +1 -1
- package/dist/mcp/tools/resolve-attention.d.ts +5 -18
- package/dist/mcp/tools/resolve-attention.js +58 -158
- package/dist/mcp/tools/resolve-attention.js.map +1 -1
- package/dist/mcp/tools/search-candidates.d.ts +1 -1
- package/dist/mcp/tools/search-candidates.js +4 -4
- package/dist/mcp/tools/search-candidates.js.map +1 -1
- package/dist/mcp/tools/search.js +5 -4
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/supersedes-chain.js +2 -2
- package/dist/mcp/tools/supersedes-chain.js.map +1 -1
- package/dist/mcp/tools/task-create.d.ts +1 -0
- package/dist/mcp/tools/task-create.js +2 -0
- package/dist/mcp/tools/task-create.js.map +1 -1
- package/dist/mcp/tools/timeline.js +1 -1
- package/dist/mcp/tools/timeline.js.map +1 -1
- package/dist/mcp/tools/types.d.ts +1 -0
- package/dist/mcp/tools/types.js +9 -1
- package/dist/mcp/tools/types.js.map +1 -1
- package/dist/sensors/attestation.d.ts +1 -1
- package/dist/sensors/attestation.js +2 -2
- package/dist/sensors/attestation.js.map +1 -1
- package/dist/sensors/catalog.d.ts +26 -28
- package/dist/sensors/catalog.js +79 -81
- package/dist/sensors/catalog.js.map +1 -1
- package/dist/sensors/decisions.d.ts +1 -1
- package/dist/sensors/decisions.js +15 -14
- package/dist/sensors/decisions.js.map +1 -1
- package/dist/sensors/diff.js +46 -22
- package/dist/sensors/diff.js.map +1 -1
- package/dist/sensors/runner.d.ts +2 -2
- package/dist/sensors/runner.js +3 -3
- package/dist/sensors/shell.d.ts +4 -0
- package/dist/sensors/shell.js +16 -0
- package/dist/sensors/shell.js.map +1 -0
- package/dist/sensors/structural.d.ts +3 -2
- package/dist/sensors/structural.js +3 -11
- package/dist/sensors/structural.js.map +1 -1
- package/dist/sensors/stub-catalog.d.ts +2 -1
- package/dist/sensors/stub-catalog.js +2 -9
- package/dist/sensors/stub-catalog.js.map +1 -1
- package/dist/sensors/types.d.ts +3 -4
- package/dist/sensors/types.js +1 -2
- package/dist/sensors/types.js.map +1 -1
- package/dist/session-start/build.js +1 -1
- package/dist/session-start/build.js.map +1 -1
- package/dist/status-line/event-queue.js +1 -1
- package/dist/status-line/index.d.ts +1 -1
- package/package.json +3 -2
- package/templates/.cairn/config/sensors.yaml +8 -8
- package/templates/attention-ui/app.js +61 -36
- package/dist/fs.d.ts +0 -5
- package/dist/fs.js +0 -11
- package/dist/fs.js.map +0 -1
- package/dist/ground/alignment-pending.d.ts +0 -28
- package/dist/ground/alignment-pending.js +0 -83
- package/dist/ground/alignment-pending.js.map +0 -1
- package/dist/ground/anchor-map.d.ts +0 -14
- package/dist/ground/anchor-map.js +0 -56
- package/dist/ground/anchor-map.js.map +0 -1
- package/dist/ground/drift.d.ts +0 -8
- package/dist/ground/drift.js +0 -23
- package/dist/ground/drift.js.map +0 -1
- package/dist/ground/file-candidates-map.d.ts +0 -23
- package/dist/ground/file-candidates-map.js +0 -76
- package/dist/ground/file-candidates-map.js.map +0 -1
- package/dist/ground/frontmatter.d.ts +0 -32
- package/dist/ground/frontmatter.js +0 -77
- package/dist/ground/frontmatter.js.map +0 -1
- package/dist/ground/glob.d.ts +0 -10
- package/dist/ground/glob.js +0 -46
- package/dist/ground/glob.js.map +0 -1
- package/dist/ground/index.d.ts +0 -25
- package/dist/ground/index.js +0 -19
- package/dist/ground/index.js.map +0 -1
- package/dist/ground/ledgers.d.ts +0 -14
- package/dist/ground/ledgers.js +0 -105
- package/dist/ground/ledgers.js.map +0 -1
- package/dist/ground/manifest.d.ts +0 -10
- package/dist/ground/manifest.js +0 -84
- package/dist/ground/manifest.js.map +0 -1
- package/dist/ground/paths.d.ts +0 -43
- package/dist/ground/paths.js +0 -109
- package/dist/ground/paths.js.map +0 -1
- package/dist/ground/quality-grades.d.ts +0 -11
- package/dist/ground/quality-grades.js +0 -100
- package/dist/ground/quality-grades.js.map +0 -1
- package/dist/ground/rejected.d.ts +0 -42
- package/dist/ground/rejected.js +0 -100
- package/dist/ground/rejected.js.map +0 -1
- package/dist/ground/schemas.d.ts +0 -582
- package/dist/ground/schemas.js +0 -372
- package/dist/ground/schemas.js.map +0 -1
- package/dist/ground/scope-index.d.ts +0 -96
- package/dist/ground/scope-index.js +0 -290
- package/dist/ground/scope-index.js.map +0 -1
- package/dist/ground/slug.d.ts +0 -60
- package/dist/ground/slug.js +0 -103
- package/dist/ground/slug.js.map +0 -1
- package/dist/ground/sot-bindings.d.ts +0 -14
- package/dist/ground/sot-bindings.js +0 -79
- package/dist/ground/sot-bindings.js.map +0 -1
- package/dist/ground/sot-cache.d.ts +0 -18
- package/dist/ground/sot-cache.js +0 -62
- package/dist/ground/sot-cache.js.map +0 -1
- package/dist/ground/topic-index.d.ts +0 -27
- package/dist/ground/topic-index.js +0 -82
- package/dist/ground/topic-index.js.map +0 -1
- package/dist/ground/walk.d.ts +0 -7
- package/dist/ground/walk.js +0 -53
- package/dist/ground/walk.js.map +0 -1
- package/dist/hooks/post-tool-use/ledger-cache.d.ts +0 -53
- package/dist/hooks/post-tool-use/ledger-cache.js +0 -338
- package/dist/hooks/post-tool-use/ledger-cache.js.map +0 -1
- package/dist/init/phases/10-strip.d.ts +0 -11
- package/dist/init/phases/10-strip.js.map +0 -1
- package/dist/init/phases/3b-seed.js.map +0 -1
- package/dist/init/phases/5-brand.js.map +0 -1
- package/dist/init/phases/5b-topic-index.js.map +0 -1
- package/dist/init/phases/6-docs-ingest.d.ts +0 -15
- package/dist/init/phases/6-docs-ingest.js.map +0 -1
- package/dist/init/phases/7b-source-comments.d.ts +0 -15
- package/dist/init/phases/7b-source-comments.js.map +0 -1
- package/dist/init/phases/7c-rules-merge.js.map +0 -1
- package/dist/init/phases/8-baseline.d.ts +0 -10
- package/dist/init/phases/8-baseline.js.map +0 -1
- package/dist/init/phases/parallel-678.js.map +0 -1
- package/dist/mcp/tools/decisions-in-scope.d.ts +0 -7
- package/dist/mcp/tools/decisions-in-scope.js +0 -66
- package/dist/mcp/tools/decisions-in-scope.js.map +0 -1
- package/dist/mcp/tools/invariants-in-scope.d.ts +0 -7
- package/dist/mcp/tools/invariants-in-scope.js +0 -81
- package/dist/mcp/tools/invariants-in-scope.js.map +0 -1
- package/dist/mcp/tools/propose-decision.d.ts +0 -34
- package/dist/mcp/tools/propose-decision.js +0 -200
- package/dist/mcp/tools/propose-decision.js.map +0 -1
package/dist/mcp/tools/index.js
CHANGED
|
@@ -8,13 +8,11 @@ import { bulkAcceptAttentionTool } from "./bulk-accept-attention.js";
|
|
|
8
8
|
import { canonicalForTopicTool } from "./canonical-for-topic.js";
|
|
9
9
|
import { decisionGetTool } from "./decision-get.js";
|
|
10
10
|
import { decisionsForSymbolTool } from "./decisions-for-symbol.js";
|
|
11
|
-
import { decisionsInScopeTool } from "./decisions-in-scope.js";
|
|
12
11
|
import { getFullTool } from "./get-full.js";
|
|
13
12
|
import { groundGetTool } from "./ground-get.js";
|
|
14
|
-
import {
|
|
13
|
+
import { inScopeTool } from "./in-scope.js";
|
|
14
|
+
import { initParallel8910Tool, initPhaseTools, initResumeTool, initRunTool, } from "./init-phases.js";
|
|
15
15
|
import { invariantGetTool } from "./invariant-get.js";
|
|
16
|
-
import { invariantsInScopeTool } from "./invariants-in-scope.js";
|
|
17
|
-
import { proposeDecisionTool } from "./propose-decision.js";
|
|
18
16
|
import { queryHistoryTool } from "./query-history.js";
|
|
19
17
|
import { recordDecisionTool } from "./record-decision.js";
|
|
20
18
|
import { rejectCandidateTool } from "./reject-candidate.js";
|
|
@@ -27,27 +25,25 @@ import { timelineTool } from "./timeline.js";
|
|
|
27
25
|
export const allTools = [
|
|
28
26
|
// Read — graph traversal
|
|
29
27
|
decisionGetTool,
|
|
30
|
-
decisionsInScopeTool,
|
|
31
28
|
decisionsForSymbolTool,
|
|
32
29
|
canonicalForTopicTool,
|
|
33
30
|
groundGetTool,
|
|
34
31
|
supersedesChainTool,
|
|
35
32
|
invariantGetTool,
|
|
36
|
-
|
|
33
|
+
inScopeTool,
|
|
37
34
|
// Read — 3-layer progressive
|
|
38
35
|
searchTool,
|
|
39
36
|
timelineTool,
|
|
40
37
|
getFullTool,
|
|
41
38
|
// Read — historical (gated)
|
|
42
39
|
queryHistoryTool,
|
|
43
|
-
// Read — phase 6 candidate surface
|
|
40
|
+
// Read — phase 6 candidate surface
|
|
44
41
|
searchCandidatesTool,
|
|
45
42
|
// Write
|
|
46
43
|
recordDecisionTool,
|
|
47
44
|
taskCreateTool,
|
|
48
45
|
archiveTool,
|
|
49
|
-
// Write — phase 6 candidate surface
|
|
50
|
-
proposeDecisionTool,
|
|
46
|
+
// Write — phase 6 candidate surface
|
|
51
47
|
rejectCandidateTool,
|
|
52
48
|
// Write — plugin-era
|
|
53
49
|
resolveAttentionTool,
|
|
@@ -60,7 +56,8 @@ export const allTools = [
|
|
|
60
56
|
alignDrainTool,
|
|
61
57
|
// Write — init pipeline (v0.2.0 MCP-native init)
|
|
62
58
|
initResumeTool,
|
|
63
|
-
|
|
59
|
+
initRunTool,
|
|
60
|
+
initParallel8910Tool,
|
|
64
61
|
...initPhaseTools,
|
|
65
62
|
];
|
|
66
63
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,yBAAyB;IACzB,eAAe;IACf,sBAAsB;IACtB,qBAAqB;IACrB,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;IACX,6BAA6B;IAC7B,UAAU;IACV,YAAY;IACZ,WAAW;IACX,4BAA4B;IAC5B,gBAAgB;IAChB,mCAAmC;IACnC,oBAAoB;IACpB,QAAQ;IACR,kBAAkB;IAClB,cAAc;IACd,WAAW;IACX,oCAAoC;IACpC,mBAAmB;IACnB,qBAAqB;IACrB,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,qCAAqC;IACrC,cAAc;IACd,iDAAiD;IACjD,cAAc;IACd,WAAW;IACX,oBAAoB;IACpB,GAAG,cAAc;CAClB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP tools for the v0.3.5 init pipeline.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Thirteen `cairn_init_phase_<id>` tools — one per PHASE_IDS entry —
|
|
5
5
|
* plus `cairn_init_resume`. The cairn-adopt skill drives the
|
|
6
6
|
* pipeline by:
|
|
7
7
|
* 1. cairn_init_resume → { status, nextPhase, repoRoot }
|
|
@@ -34,6 +34,7 @@ interface PhaseToolInput {
|
|
|
34
34
|
interface ResumeToolInput {
|
|
35
35
|
}
|
|
36
36
|
export declare const initPhaseTools: ToolDef<PhaseToolInput>[];
|
|
37
|
-
export declare const
|
|
37
|
+
export declare const initRunTool: ToolDef<unknown>;
|
|
38
|
+
export declare const initParallel8910Tool: ToolDef<PhaseToolInput>;
|
|
38
39
|
export declare const initResumeTool: ToolDef<ResumeToolInput>;
|
|
39
40
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP tools for the v0.3.5 init pipeline.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Thirteen `cairn_init_phase_<id>` tools — one per PHASE_IDS entry —
|
|
5
5
|
* plus `cairn_init_resume`. The cairn-adopt skill drives the
|
|
6
6
|
* pipeline by:
|
|
7
7
|
* 1. cairn_init_resume → { status, nextPhase, repoRoot }
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* phase outputs — a single bad call could nuke a 90KB mapper run.
|
|
27
27
|
*/
|
|
28
28
|
import { z } from "zod";
|
|
29
|
-
import { PHASE_IDS, clearProgress, freshPhaseState, readPhaseState, resumePhases,
|
|
29
|
+
import { PHASE_IDS, clearProgress, freshPhaseState, readPhaseState, resumePhases, runPhase1Detect, runPhase2Walker, runPhase3Mapper, runPhase4Seed, runPhase5Pilot, runPhase6Brand, runPhase7TopicIndex, runPhase8DocsIngest, runPhase9SourceComments, runPhase10RulesMerge, runPhase11Baseline, runPhase12Strip, runPhase13Multidev, runPhases8910Parallel, writePhaseState, writeProgress, } from "../../init/index.js";
|
|
30
30
|
import { mcpError } from "../errors.js";
|
|
31
31
|
const phaseIdEnum = z.enum(PHASE_IDS);
|
|
32
32
|
const phaseStateSchema = z.object({
|
|
@@ -37,7 +37,8 @@ const phaseStateSchema = z.object({
|
|
|
37
37
|
startedAt: z.string().min(1),
|
|
38
38
|
schemaVersion: z.literal(1),
|
|
39
39
|
});
|
|
40
|
-
const
|
|
40
|
+
const phaseRunInput = {
|
|
41
|
+
phase: phaseIdEnum,
|
|
41
42
|
// State is optional — phase tools read .cairn/init-state.json by
|
|
42
43
|
// default. Callers can still pass an explicit state object (e.g.
|
|
43
44
|
// smoke tests) but the cairn-adopt skill should pass nothing here.
|
|
@@ -46,21 +47,25 @@ const initPhaseInput = {
|
|
|
46
47
|
// into state.answer before invoking the phase runner.
|
|
47
48
|
answer: z.string().optional(),
|
|
48
49
|
};
|
|
50
|
+
const initPhaseInput = {
|
|
51
|
+
state: phaseStateSchema.optional(),
|
|
52
|
+
answer: z.string().optional(),
|
|
53
|
+
};
|
|
49
54
|
const initResumeInput = {};
|
|
50
55
|
const RUNNERS = {
|
|
51
56
|
"1-detect": runPhase1Detect,
|
|
52
57
|
"2-walker": runPhase2Walker,
|
|
53
58
|
"3-mapper": runPhase3Mapper,
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
59
|
+
"4-seed": runPhase4Seed,
|
|
60
|
+
"5-pilot": runPhase5Pilot,
|
|
61
|
+
"6-brand": runPhase6Brand,
|
|
62
|
+
"7-topic-index": runPhase7TopicIndex,
|
|
63
|
+
"8-docs-ingest": runPhase8DocsIngest,
|
|
64
|
+
"9-source-comments": runPhase9SourceComments,
|
|
65
|
+
"10-rules-merge": runPhase10RulesMerge,
|
|
66
|
+
"11-baseline": runPhase11Baseline,
|
|
67
|
+
"12-strip": runPhase12Strip,
|
|
68
|
+
"13-multidev": runPhase13Multidev,
|
|
64
69
|
};
|
|
65
70
|
function toSlim(result) {
|
|
66
71
|
if (result.status === "complete") {
|
|
@@ -71,92 +76,86 @@ function toSlim(result) {
|
|
|
71
76
|
}
|
|
72
77
|
return { status: "error", error: result.error };
|
|
73
78
|
}
|
|
79
|
+
async function handlePhaseRun(ctx, id, input) {
|
|
80
|
+
// Resolve state: prefer the explicit arg (smoke tests, debug
|
|
81
|
+
// tooling), fall back to disk (cairn-adopt skill default).
|
|
82
|
+
let state = input.state ?? null;
|
|
83
|
+
if (state === null) {
|
|
84
|
+
state = readPhaseState(ctx.repoRoot);
|
|
85
|
+
}
|
|
86
|
+
if (state === null) {
|
|
87
|
+
return mcpError("VALIDATION_FAILED", `cairn_init_run for phase ${id} found no init state at .cairn/init-state.json. Call cairn_init_resume to start a fresh pipeline.`);
|
|
88
|
+
}
|
|
89
|
+
// Sanity: the tool's id must match the phase id baked into state.
|
|
90
|
+
if (state.currentPhase !== id) {
|
|
91
|
+
return mcpError("VALIDATION_FAILED", `cairn_init_run for phase ${id} requires state.currentPhase=${id}, got ${state.currentPhase}`);
|
|
92
|
+
}
|
|
93
|
+
// The state's repoRoot drives the phase, but we sanity-check it
|
|
94
|
+
// against the MCP context's repoRoot so a misaddressed call
|
|
95
|
+
// (e.g. an old state file from a different repo) gets caught.
|
|
96
|
+
if (state.repoRoot !== ctx.repoRoot) {
|
|
97
|
+
return mcpError("VALIDATION_FAILED", `state.repoRoot ${state.repoRoot} does not match MCP context ${ctx.repoRoot}`);
|
|
98
|
+
}
|
|
99
|
+
// Splice the operator's answer into state for needs_input phases.
|
|
100
|
+
const stateForRun = input.answer !== undefined && input.answer.length > 0
|
|
101
|
+
? { ...state, answer: input.answer }
|
|
102
|
+
: state;
|
|
103
|
+
const runner = RUNNERS[id];
|
|
104
|
+
// Coarse-grained statusline coverage
|
|
105
|
+
const isLongPhase = id === "3-mapper" ||
|
|
106
|
+
id === "8-docs-ingest" ||
|
|
107
|
+
id === "9-source-comments" ||
|
|
108
|
+
id === "10-rules-merge";
|
|
109
|
+
if (!isLongPhase) {
|
|
110
|
+
writeProgress(state.repoRoot, {
|
|
111
|
+
phase: id,
|
|
112
|
+
batch: 1,
|
|
113
|
+
total: 1,
|
|
114
|
+
startedAt: Date.now(),
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const t0 = performance.now();
|
|
118
|
+
const result = await runner(stateForRun);
|
|
119
|
+
const durationMs = Math.round(performance.now() - t0);
|
|
120
|
+
clearProgress(state.repoRoot);
|
|
121
|
+
// Stamp `duration_ms` on the phase's output entry
|
|
122
|
+
if (result.status !== "error") {
|
|
123
|
+
const phaseOut = result.state.outputs[id];
|
|
124
|
+
if (typeof phaseOut === "object" && phaseOut !== null) {
|
|
125
|
+
const obj = phaseOut;
|
|
126
|
+
if (obj.duration_ms === undefined) {
|
|
127
|
+
obj.duration_ms = durationMs;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Persist state ONLY on non-error results.
|
|
132
|
+
if (result.status !== "error") {
|
|
133
|
+
try {
|
|
134
|
+
writePhaseState(result.state);
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
return mcpError("INTERNAL_ERROR", `failed to persist init state: ${err instanceof Error ? err.message : String(err)}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return toSlim(result);
|
|
141
|
+
}
|
|
142
|
+
function makePhaseRunTool() {
|
|
143
|
+
return {
|
|
144
|
+
name: "cairn_init_run",
|
|
145
|
+
description: "Run a specific initialization phase. Call cairn_init_resume to find the next phase, then invoke this tool with that phase ID. Supports sequential execution of the 13-phase adoption pipeline.",
|
|
146
|
+
inputSchema: phaseRunInput,
|
|
147
|
+
handler: async (ctx, input) => {
|
|
148
|
+
return handlePhaseRun(ctx, input.phase, input);
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
74
152
|
function makePhaseTool(id) {
|
|
75
153
|
return {
|
|
76
154
|
name: `cairn_init_phase_${normalizeId(id)}`,
|
|
77
155
|
description: phaseDescription(id),
|
|
78
156
|
inputSchema: initPhaseInput,
|
|
79
157
|
handler: async (ctx, input) => {
|
|
80
|
-
|
|
81
|
-
// tooling), fall back to disk (cairn-adopt skill default).
|
|
82
|
-
let state = input.state ?? null;
|
|
83
|
-
if (state === null) {
|
|
84
|
-
state = readPhaseState(ctx.repoRoot);
|
|
85
|
-
}
|
|
86
|
-
if (state === null) {
|
|
87
|
-
return mcpError("VALIDATION_FAILED", `cairn_init_phase_${normalizeId(id)} found no init state at .cairn/init-state.json. Call cairn_init_resume to start a fresh pipeline.`);
|
|
88
|
-
}
|
|
89
|
-
// Sanity: the tool's id must match the phase id baked into state.
|
|
90
|
-
if (state.currentPhase !== id) {
|
|
91
|
-
return mcpError("VALIDATION_FAILED", `cairn_init_phase_${normalizeId(id)} requires state.currentPhase=${id}, got ${state.currentPhase}`);
|
|
92
|
-
}
|
|
93
|
-
// The state's repoRoot drives the phase, but we sanity-check it
|
|
94
|
-
// against the MCP context's repoRoot so a misaddressed call
|
|
95
|
-
// (e.g. an old state file from a different repo) gets caught.
|
|
96
|
-
if (state.repoRoot !== ctx.repoRoot) {
|
|
97
|
-
return mcpError("VALIDATION_FAILED", `state.repoRoot ${state.repoRoot} does not match MCP context ${ctx.repoRoot}`);
|
|
98
|
-
}
|
|
99
|
-
// Splice the operator's answer into state for needs_input phases.
|
|
100
|
-
// The runner clears `state.answer` once it has consumed it (via
|
|
101
|
-
// `advancePhase`), so passing an answer to a phase that doesn't
|
|
102
|
-
// expect one is a no-op rather than a hazard.
|
|
103
|
-
const stateForRun = input.answer !== undefined && input.answer.length > 0
|
|
104
|
-
? { ...state, answer: input.answer }
|
|
105
|
-
: state;
|
|
106
|
-
const runner = RUNNERS[id];
|
|
107
|
-
// Coarse-grained statusline coverage: every phase gets at least
|
|
108
|
-
// one heartbeat write (batch=1, total=1) at entry so the operator
|
|
109
|
-
// sees the current phase id mid-init even for fast phases. The
|
|
110
|
-
// long phases (3-mapper, 6-docs-ingest, 7b-source-comments,
|
|
111
|
-
// 7c-rules-merge) overwrite with finer-grained per-batch progress
|
|
112
|
-
// from inside the runner. clearProgress at the end of every
|
|
113
|
-
// phase ensures stale heartbeats don't survive into the next.
|
|
114
|
-
const isLongPhase = id === "3-mapper" ||
|
|
115
|
-
id === "6-docs-ingest" ||
|
|
116
|
-
id === "7b-source-comments" ||
|
|
117
|
-
id === "7c-rules-merge";
|
|
118
|
-
if (!isLongPhase) {
|
|
119
|
-
writeProgress(state.repoRoot, {
|
|
120
|
-
phase: id,
|
|
121
|
-
batch: 1,
|
|
122
|
-
total: 1,
|
|
123
|
-
startedAt: Date.now(),
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
const t0 = performance.now();
|
|
127
|
-
const result = await runner(stateForRun);
|
|
128
|
-
const durationMs = Math.round(performance.now() - t0);
|
|
129
|
-
clearProgress(state.repoRoot);
|
|
130
|
-
// Stamp `duration_ms` on the phase's output entry so init-state.json
|
|
131
|
-
// carries an ETA-auditable record for every phase, not just the ones
|
|
132
|
-
// that bother to track time internally (3-mapper). The result.state
|
|
133
|
-
// returned by the runner is freshly constructed; mutating its
|
|
134
|
-
// current-phase entry is safe and doesn't ripple to prior phases.
|
|
135
|
-
if (result.status !== "error") {
|
|
136
|
-
const phaseOut = result.state.outputs[id];
|
|
137
|
-
if (typeof phaseOut === "object" && phaseOut !== null) {
|
|
138
|
-
const obj = phaseOut;
|
|
139
|
-
if (obj["duration_ms"] === undefined) {
|
|
140
|
-
obj["duration_ms"] = durationMs;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
// Persist state ONLY on non-error results. An error path returns
|
|
145
|
-
// the input state echo unchanged; persisting it would clobber
|
|
146
|
-
// the on-disk state file with whatever shape the caller sent in
|
|
147
|
-
// (in v0.3.4 a malformed state nuked a 90KB mapper run this way).
|
|
148
|
-
if (result.status !== "error") {
|
|
149
|
-
try {
|
|
150
|
-
writePhaseState(result.state);
|
|
151
|
-
}
|
|
152
|
-
catch (err) {
|
|
153
|
-
return mcpError("INTERNAL_ERROR", `failed to persist init state: ${err instanceof Error ? err.message : String(err)}`);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// The state file lingers after terminal phase 12-multidev so the
|
|
157
|
-
// cairn-adopt skill can read outputs for its final summary
|
|
158
|
-
// banner. Cleanup is a manual concern (cairn doctor / re-init).
|
|
159
|
-
return toSlim(result);
|
|
158
|
+
return handlePhaseRun(ctx, id, input);
|
|
160
159
|
},
|
|
161
160
|
};
|
|
162
161
|
}
|
|
@@ -194,39 +193,39 @@ function phaseDescription(id) {
|
|
|
194
193
|
return "Phase 2-walker — build the repo summary (manifest previews, by-extension counts, framework signals). Always advances.";
|
|
195
194
|
case "3-mapper":
|
|
196
195
|
return "Phase 3-mapper — Sonnet-driven domain map (chunked across module slices). Long-running; no operator input.";
|
|
197
|
-
case "
|
|
198
|
-
return "Phase
|
|
199
|
-
case "
|
|
200
|
-
return "Phase
|
|
201
|
-
case "
|
|
202
|
-
return "Phase
|
|
203
|
-
case "
|
|
204
|
-
return "Phase
|
|
205
|
-
case "
|
|
206
|
-
return "Phase
|
|
207
|
-
case "
|
|
208
|
-
return "Phase
|
|
209
|
-
case "
|
|
210
|
-
return "Phase
|
|
211
|
-
case "
|
|
212
|
-
return "Phase
|
|
213
|
-
case "
|
|
214
|
-
return "Phase
|
|
215
|
-
case "
|
|
216
|
-
return "Phase
|
|
196
|
+
case "4-seed":
|
|
197
|
+
return "Phase 4-seed — write .cairn/ skeleton + config.yaml + scope-index from templates and mapper output. Always advances; no operator input.";
|
|
198
|
+
case "5-pilot":
|
|
199
|
+
return "Phase 5-pilot — operator picks the seed module from mapper's top candidates (1 question).";
|
|
200
|
+
case "6-brand":
|
|
201
|
+
return "Phase 6-brand — operator picks how to populate the brand DEC drafts: skip / auto-fill / manual (1 question).";
|
|
202
|
+
case "7-topic-index":
|
|
203
|
+
return "Phase 7-topic-index — cross-source dedup pre-pass. Walks docs/*.md + CLAUDE.md + AGENTS.md + .claude/rules/* and emits topic-index.yaml + anchor-map.yaml so phases 8/9/10 can dedup-by-topic instead of one DEC per source.";
|
|
204
|
+
case "8-docs-ingest":
|
|
205
|
+
return "Phase 8-docs-ingest — Haiku batch over README + docs/ → DEC drafts + canonical-map topics. No operator input.";
|
|
206
|
+
case "9-source-comments":
|
|
207
|
+
return "Phase 9-source-comments — Haiku batch over docblock-class source comments → DEC drafts + invariant proposals.";
|
|
208
|
+
case "10-rules-merge":
|
|
209
|
+
return "Phase 10-rules-merge — Haiku batch over CLAUDE.md / AGENTS.md / .claude/rules/* → propose net-new rules + flag conflicts.";
|
|
210
|
+
case "11-baseline":
|
|
211
|
+
return "Phase 11-baseline — first sensor sweep against synthetic full-tree diff. No operator input.";
|
|
212
|
+
case "12-strip":
|
|
213
|
+
return "Phase 12-strip — per-module strip-replace consent for source-comment essays. Operator picks strip / keep / skip per flagged module.";
|
|
214
|
+
case "13-multidev":
|
|
215
|
+
return "Phase 13-multidev — detect per-host package manager(s) and emit JOIN.md hints for new contributors. No filesystem mutations. Idempotent.";
|
|
217
216
|
}
|
|
218
217
|
}
|
|
219
218
|
/**
|
|
220
219
|
* Combined parallel runner for the post-pilot ingestion window. Runs
|
|
221
|
-
* phases
|
|
220
|
+
* phases 8-docs-ingest, 9-source-comments, and 10-rules-merge in
|
|
222
221
|
* parallel inside a single MCP call. The cairn-adopt skill prefers
|
|
223
|
-
* this tool when state.currentPhase=
|
|
222
|
+
* this tool when state.currentPhase=8-docs-ingest; the per-phase
|
|
224
223
|
* sequential tools remain registered for fallback / debug paths.
|
|
225
224
|
*/
|
|
226
|
-
function
|
|
225
|
+
function makeParallel8910Tool() {
|
|
227
226
|
return {
|
|
228
|
-
name: "
|
|
229
|
-
description: "Run phases
|
|
227
|
+
name: "cairn_init_phases_8_9_10_parallel",
|
|
228
|
+
description: "Run phases 8-docs-ingest, 9-source-comments, and 10-rules-merge concurrently. Pre-scans existing DEC + INV ids and threads shared Sets through all three so id allocations don't collide. Returns the combined slim response with nextPhase=11-baseline. Skill prefers this when state.currentPhase=8-docs-ingest; the per-phase sequential tools stay available for fallback. Wall-clock saves the smaller-two phases' time on real-world adoptions.",
|
|
230
229
|
inputSchema: initPhaseInput,
|
|
231
230
|
handler: async (ctx, input) => {
|
|
232
231
|
let state = input.state ?? null;
|
|
@@ -234,19 +233,19 @@ function makeParallel678Tool() {
|
|
|
234
233
|
state = readPhaseState(ctx.repoRoot);
|
|
235
234
|
}
|
|
236
235
|
if (state === null) {
|
|
237
|
-
return mcpError("VALIDATION_FAILED", "
|
|
236
|
+
return mcpError("VALIDATION_FAILED", "cairn_init_phases_8_9_10_parallel found no init state at .cairn/init-state.json. Call cairn_init_resume to start a fresh pipeline.");
|
|
238
237
|
}
|
|
239
|
-
if (state.currentPhase !== "
|
|
240
|
-
return mcpError("VALIDATION_FAILED", `
|
|
238
|
+
if (state.currentPhase !== "8-docs-ingest") {
|
|
239
|
+
return mcpError("VALIDATION_FAILED", `cairn_init_phases_8_9_10_parallel requires state.currentPhase=8-docs-ingest, got ${state.currentPhase}`);
|
|
241
240
|
}
|
|
242
241
|
if (state.repoRoot !== ctx.repoRoot) {
|
|
243
242
|
return mcpError("VALIDATION_FAILED", `state.repoRoot ${state.repoRoot} does not match MCP context ${ctx.repoRoot}`);
|
|
244
243
|
}
|
|
245
244
|
const t0 = performance.now();
|
|
246
|
-
const result = await
|
|
245
|
+
const result = await runPhases8910Parallel(state);
|
|
247
246
|
const durationMs = Math.round(performance.now() - t0);
|
|
248
247
|
if (result.status !== "error") {
|
|
249
|
-
for (const id of ["
|
|
248
|
+
for (const id of ["8-docs-ingest", "9-source-comments", "10-rules-merge"]) {
|
|
250
249
|
const phaseOut = result.state.outputs[id];
|
|
251
250
|
if (typeof phaseOut === "object" && phaseOut !== null) {
|
|
252
251
|
const obj = phaseOut;
|
|
@@ -267,6 +266,8 @@ function makeParallel678Tool() {
|
|
|
267
266
|
};
|
|
268
267
|
}
|
|
269
268
|
export const initPhaseTools = PHASE_IDS.map((id) => makePhaseTool(id));
|
|
270
|
-
export const
|
|
269
|
+
export const initRunTool = makePhaseRunTool();
|
|
270
|
+
export const initParallel8910Tool = makeParallel8910Tool();
|
|
271
271
|
export const initResumeTool = makeResumeTool();
|
|
272
|
+
;
|
|
272
273
|
//# sourceMappingURL=init-phases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-phases.js","sourceRoot":"","sources":["../../../src/mcp/tools/init-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"init-phases.js","sourceRoot":"","sources":["../../../src/mcp/tools/init-phases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { invariantsDir, parseFrontmatter } from "
|
|
4
|
-
import { InvariantFrontmatter } from "
|
|
3
|
+
import { invariantsDir, parseFrontmatter } from "@isaacriehm/cairn-state";
|
|
4
|
+
import { InvariantFrontmatter } from "@isaacriehm/cairn-state";
|
|
5
5
|
import { mcpError } from "../errors.js";
|
|
6
6
|
import { invariantGetInput } from "../schemas.js";
|
|
7
7
|
async function handler(ctx, input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invariant-get.js","sourceRoot":"","sources":["../../../src/mcp/tools/invariant-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"invariant-get.js","sourceRoot":"","sources":["../../../src/mcp/tools/invariant-get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { ToolDef } from "./types.js";
|
|
2
2
|
interface Input {
|
|
3
3
|
id?: string;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
slug?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
summary?: string;
|
|
7
|
+
scope_globs?: string[];
|
|
7
8
|
supersedes?: string;
|
|
8
9
|
assertions?: unknown[];
|
|
9
10
|
human_review_hint?: string;
|