@isaacriehm/cairn-core 0.7.0 → 0.7.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/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/join/index.js +5 -1
- package/dist/join/index.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 -12
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/init-phases.d.ts +18 -10
- package/dist/mcp/tools/init-phases.js +139 -192
- 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
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Phase
|
|
2
|
+
* Phase 9-source-comments — walk every source file's docblock-class
|
|
3
3
|
* comment, classify via Haiku, write DEC drafts / invariant proposals.
|
|
4
|
-
*
|
|
5
|
-
* Heavy walk + per-block classifications spill to
|
|
6
|
-
* `.cairn/init/source-comments-walk.json`; only the lightweight projection
|
|
7
|
-
* (counts, ledger paths, kindCounts) lives on the persisted phase output.
|
|
8
|
-
*
|
|
9
|
-
* Project globs from the mapper + the 4-pilot picked module flow into
|
|
10
|
-
* scoring so every DEC draft + invariant gets `capture_confidence`
|
|
11
|
-
* stamped at write time — `cairn attention bulk-accept` becomes an
|
|
12
|
-
* O(1) file move instead of a re-score sweep.
|
|
13
4
|
*/
|
|
14
5
|
import { runSourceCommentsIngestion, } from "../source-comments/index.js";
|
|
15
|
-
import { clearProgress
|
|
6
|
+
import { clearProgress } from "../progress.js";
|
|
16
7
|
import { advancePhase } from "./orchestrator.js";
|
|
17
8
|
import { to7bResultPersisted, writeSourceCommentsWalkFile, } from "./source-comments-output-io.js";
|
|
18
|
-
export async function
|
|
9
|
+
export async function runPhase9SourceComments(state) {
|
|
19
10
|
const mapper = state.outputs["3-mapper"];
|
|
20
11
|
const globs = mapper
|
|
21
12
|
? {
|
|
@@ -26,7 +17,7 @@ export async function runPhase7bSourceComments(state) {
|
|
|
26
17
|
off_limits: mapper.output.off_limits_globs,
|
|
27
18
|
}
|
|
28
19
|
: {};
|
|
29
|
-
const pilotOut = state.outputs["
|
|
20
|
+
const pilotOut = state.outputs["5-pilot"];
|
|
30
21
|
const pilotModule = typeof pilotOut?.picked === "string" && pilotOut.picked.length > 0
|
|
31
22
|
? pilotOut.picked
|
|
32
23
|
: undefined;
|
|
@@ -34,27 +25,17 @@ export async function runPhase7bSourceComments(state) {
|
|
|
34
25
|
try {
|
|
35
26
|
const result = await runSourceCommentsIngestion({
|
|
36
27
|
repoRoot: state.repoRoot,
|
|
37
|
-
globs,
|
|
38
|
-
...(pilotModule !== undefined ? { pilotModule } : {}),
|
|
39
|
-
onBatchProgress: (row) => writeProgress(state.repoRoot, {
|
|
40
|
-
phase: "7b-source-comments",
|
|
41
|
-
batch: row.index + 1,
|
|
42
|
-
total: row.total,
|
|
43
|
-
classified: row.classified,
|
|
44
|
-
failed: row.failed,
|
|
45
|
-
startedAt,
|
|
46
|
-
}),
|
|
47
28
|
});
|
|
48
29
|
writeSourceCommentsWalkFile(state.repoRoot, result);
|
|
49
30
|
const persisted = to7bResultPersisted(result);
|
|
50
31
|
clearProgress(state.repoRoot);
|
|
51
32
|
const next = {
|
|
52
33
|
...state,
|
|
53
|
-
outputs: { ...state.outputs, "
|
|
34
|
+
outputs: { ...state.outputs, "9-source-comments": persisted },
|
|
54
35
|
};
|
|
55
36
|
return {
|
|
56
37
|
status: "complete",
|
|
57
|
-
nextPhase: "
|
|
38
|
+
nextPhase: "10-rules-merge",
|
|
58
39
|
state: advancePhase(next),
|
|
59
40
|
};
|
|
60
41
|
}
|
|
@@ -71,4 +52,4 @@ export async function runPhase7bSourceComments(state) {
|
|
|
71
52
|
};
|
|
72
53
|
}
|
|
73
54
|
}
|
|
74
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=9-source-comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"9-source-comments.js","sourceRoot":"","sources":["../../../src/init/phases/9-source-comments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,GAE3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AAGxC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAiB;IAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAsC,CAAC;IAC9E,MAAM,KAAK,GAAiB,MAAM;QAChC,CAAC,CAAC;YACE,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB;YACtD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB;YAC5D,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;YAClD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB;SAC3C;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAoC,CAAC;IAC7E,MAAM,WAAW,GACf,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAChE,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjB,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAA+B,MAAM,0BAA0B,CAAC;YAC1E,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,2BAA2B,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9C,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE;SAC9D,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,iCAAiC;gBAC1C,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -5,16 +5,16 @@ export { freshPhaseState, resumePhases, nextPhaseAfter, advancePhase, } from "./
|
|
|
5
5
|
export { runPhase1Detect } from "./1-detect.js";
|
|
6
6
|
export { runPhase2Walker } from "./2-walker.js";
|
|
7
7
|
export { runPhase3Mapper } from "./3-mapper.js";
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export type { TopicIndexPhaseOutput } from "./
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
8
|
+
export { runPhase4Seed } from "./4-seed.js";
|
|
9
|
+
export { runPhase5Pilot } from "./5-pilot.js";
|
|
10
|
+
export { runPhase6Brand } from "./6-brand.js";
|
|
11
|
+
export { runPhase7TopicIndex } from "./7-topic-index.js";
|
|
12
|
+
export type { TopicIndexPhaseOutput } from "./7-topic-index.js";
|
|
13
|
+
export { runPhase8DocsIngest } from "./8-docs-ingest.js";
|
|
14
|
+
export { runPhase9SourceComments } from "./9-source-comments.js";
|
|
15
|
+
export { runPhase10RulesMerge } from "./10-rules-merge.js";
|
|
16
|
+
export { runPhase11Baseline } from "./11-baseline.js";
|
|
17
|
+
export { runPhase12Strip } from "./12-strip.js";
|
|
18
|
+
export { runPhase13Multidev } from "./13-multidev.js";
|
|
19
|
+
export { runPhases8910Parallel } from "./parallel-8910.js";
|
|
20
20
|
export { SOURCE_COMMENTS_WALK_PATH, sourceCommentsWalkAbsPath, readSourceCommentsWalkFile, writeSourceCommentsWalkFile, to7bResultPersisted, type IngestSourceCommentsResultPersisted, } from "./source-comments-output-io.js";
|
|
@@ -5,16 +5,16 @@ export { freshPhaseState, resumePhases, nextPhaseAfter, advancePhase, } from "./
|
|
|
5
5
|
export { runPhase1Detect } from "./1-detect.js";
|
|
6
6
|
export { runPhase2Walker } from "./2-walker.js";
|
|
7
7
|
export { runPhase3Mapper } from "./3-mapper.js";
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
8
|
+
export { runPhase4Seed } from "./4-seed.js";
|
|
9
|
+
export { runPhase5Pilot } from "./5-pilot.js";
|
|
10
|
+
export { runPhase6Brand } from "./6-brand.js";
|
|
11
|
+
export { runPhase7TopicIndex } from "./7-topic-index.js";
|
|
12
|
+
export { runPhase8DocsIngest } from "./8-docs-ingest.js";
|
|
13
|
+
export { runPhase9SourceComments } from "./9-source-comments.js";
|
|
14
|
+
export { runPhase10RulesMerge } from "./10-rules-merge.js";
|
|
15
|
+
export { runPhase11Baseline } from "./11-baseline.js";
|
|
16
|
+
export { runPhase12Strip } from "./12-strip.js";
|
|
17
|
+
export { runPhase13Multidev } from "./13-multidev.js";
|
|
18
|
+
export { runPhases8910Parallel } from "./parallel-8910.js";
|
|
19
19
|
export { SOURCE_COMMENTS_WALK_PATH, sourceCommentsWalkAbsPath, readSourceCommentsWalkFile, writeSourceCommentsWalkFile, to7bResultPersisted, } from "./source-comments-output-io.js";
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/init/phases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,GASV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/init/phases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,GASV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Phases
|
|
2
|
+
* Phases 8 / 9 / 10 sequential orchestrator.
|
|
3
3
|
*
|
|
4
4
|
* The three post-pilot ingestion phases (docs-ingest, source-comments,
|
|
5
5
|
* rules-merge) all read + write the same v0.5.0 ground-state files —
|
|
6
6
|
* `topic-index.yaml`, `anchor-map.yaml`, `sot-bindings.yaml`,
|
|
7
7
|
* `sot-cache.yaml`. Concurrent execution races on those writes: each
|
|
8
8
|
* phase reads at start, mutates in memory, writes at end → last writer
|
|
9
|
-
* wipes the others.
|
|
10
|
-
* only DEC/INV files (uniquely named per id) were on the write path.
|
|
9
|
+
* wipes the others.
|
|
11
10
|
*
|
|
12
11
|
* v0.5.0 fix: run the phases sequentially in canonical order
|
|
13
|
-
* (
|
|
12
|
+
* (8 → 9 → 10). Each phase still uses Haiku internally (with its own
|
|
14
13
|
* concurrency for batching + per-section workers), so the wall-clock
|
|
15
14
|
* cost vs. the v0.4.x parallel pipeline is bounded by the longest
|
|
16
15
|
* phase plus the smaller two — historically <5s combined for the
|
|
@@ -18,11 +17,11 @@
|
|
|
18
17
|
* motion across all three.
|
|
19
18
|
*
|
|
20
19
|
* State machine:
|
|
21
|
-
* - The runner enters expecting `currentPhase === "
|
|
22
|
-
* exits with `currentPhase === "
|
|
23
|
-
* individual
|
|
20
|
+
* - The runner enters expecting `currentPhase === "8-docs-ingest"` and
|
|
21
|
+
* exits with `currentPhase === "11-baseline"`, jumping past the
|
|
22
|
+
* individual 9 / 10 slots in PHASE_IDS. The sequential per-phase
|
|
24
23
|
* MCP tools remain available; this runner is the optimized path the
|
|
25
24
|
* adopt skill prefers.
|
|
26
25
|
*/
|
|
27
26
|
import type { PhaseResult, PhaseState } from "./types.js";
|
|
28
|
-
export declare function
|
|
27
|
+
export declare function runPhases8910Parallel(state: PhaseState): Promise<PhaseResult>;
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Phases
|
|
2
|
+
* Phases 8 / 9 / 10 sequential orchestrator.
|
|
3
3
|
*
|
|
4
4
|
* The three post-pilot ingestion phases (docs-ingest, source-comments,
|
|
5
5
|
* rules-merge) all read + write the same v0.5.0 ground-state files —
|
|
6
6
|
* `topic-index.yaml`, `anchor-map.yaml`, `sot-bindings.yaml`,
|
|
7
7
|
* `sot-cache.yaml`. Concurrent execution races on those writes: each
|
|
8
8
|
* phase reads at start, mutates in memory, writes at end → last writer
|
|
9
|
-
* wipes the others.
|
|
10
|
-
* only DEC/INV files (uniquely named per id) were on the write path.
|
|
9
|
+
* wipes the others.
|
|
11
10
|
*
|
|
12
11
|
* v0.5.0 fix: run the phases sequentially in canonical order
|
|
13
|
-
* (
|
|
12
|
+
* (8 → 9 → 10). Each phase still uses Haiku internally (with its own
|
|
14
13
|
* concurrency for batching + per-section workers), so the wall-clock
|
|
15
14
|
* cost vs. the v0.4.x parallel pipeline is bounded by the longest
|
|
16
15
|
* phase plus the smaller two — historically <5s combined for the
|
|
@@ -18,9 +17,9 @@
|
|
|
18
17
|
* motion across all three.
|
|
19
18
|
*
|
|
20
19
|
* State machine:
|
|
21
|
-
* - The runner enters expecting `currentPhase === "
|
|
22
|
-
* exits with `currentPhase === "
|
|
23
|
-
* individual
|
|
20
|
+
* - The runner enters expecting `currentPhase === "8-docs-ingest"` and
|
|
21
|
+
* exits with `currentPhase === "11-baseline"`, jumping past the
|
|
22
|
+
* individual 9 / 10 slots in PHASE_IDS. The sequential per-phase
|
|
24
23
|
* MCP tools remain available; this runner is the optimized path the
|
|
25
24
|
* adopt skill prefers.
|
|
26
25
|
*/
|
|
@@ -32,17 +31,17 @@ import { runRulesMerge } from "../rules-merge/index.js";
|
|
|
32
31
|
import { runSourceCommentsIngestion } from "../source-comments/index.js";
|
|
33
32
|
import { to7bResultPersisted, writeSourceCommentsWalkFile, } from "./source-comments-output-io.js";
|
|
34
33
|
import { advancePhase } from "./orchestrator.js";
|
|
35
|
-
const log = logger("init.phases.parallel-
|
|
36
|
-
export async function
|
|
37
|
-
// Sanity: this runner only enters at the start of the
|
|
34
|
+
const log = logger("init.phases.parallel-8910");
|
|
35
|
+
export async function runPhases8910Parallel(state) {
|
|
36
|
+
// Sanity: this runner only enters at the start of the 8 / 9 / 10
|
|
38
37
|
// window. If currentPhase is anywhere else, the caller invoked the
|
|
39
38
|
// wrong tool — surface as error so we don't mid-pipeline jump.
|
|
40
|
-
if (state.currentPhase !== "
|
|
39
|
+
if (state.currentPhase !== "8-docs-ingest") {
|
|
41
40
|
return {
|
|
42
41
|
status: "error",
|
|
43
42
|
error: {
|
|
44
43
|
code: "wrong-phase",
|
|
45
|
-
message: `
|
|
44
|
+
message: `runPhases8910Parallel requires currentPhase=8-docs-ingest, got ${state.currentPhase}`,
|
|
46
45
|
},
|
|
47
46
|
state,
|
|
48
47
|
};
|
|
@@ -57,7 +56,7 @@ export async function runPhases678Parallel(state) {
|
|
|
57
56
|
off_limits: mapper.output.off_limits_globs,
|
|
58
57
|
}
|
|
59
58
|
: {};
|
|
60
|
-
const pilotOut = state.outputs["
|
|
59
|
+
const pilotOut = state.outputs["5-pilot"];
|
|
61
60
|
const pilotModule = typeof pilotOut?.picked === "string" && pilotOut.picked.length > 0
|
|
62
61
|
? pilotOut.picked
|
|
63
62
|
: undefined;
|
|
@@ -66,14 +65,14 @@ export async function runPhases678Parallel(state) {
|
|
|
66
65
|
log.info({
|
|
67
66
|
preScannedDecIds: sharedDecIds.size,
|
|
68
67
|
preScannedInvIds: sharedInvIds.size,
|
|
69
|
-
}, "parallel-
|
|
68
|
+
}, "parallel-8910 starting");
|
|
70
69
|
// Run the three phases sequentially. v0.5.0 ground-state files
|
|
71
70
|
// (topic-index, anchor-map, sot-bindings, sot-cache) are the shared
|
|
72
|
-
// mutable surface; serializing
|
|
71
|
+
// mutable surface; serializing 8 → 9 → 10 removes the last-writer-
|
|
73
72
|
// wins race that Promise.allSettled had under v0.4.x.
|
|
74
73
|
const t0 = performance.now();
|
|
75
74
|
const startedAt = Date.now();
|
|
76
|
-
// Phase
|
|
75
|
+
// Phase 8 now runs the staged ingest pipeline:
|
|
77
76
|
// Stage 3 marker scan (0 Haiku) → Stage 1 file-purpose binary filter
|
|
78
77
|
// (batch=30, concurrency=5) → Stage 2 section-level batch classifier
|
|
79
78
|
// (batch=30, concurrency=5) → Stage 4 emit drafts to `_inbox/`. Each
|
|
@@ -83,7 +82,7 @@ export async function runPhases678Parallel(state) {
|
|
|
83
82
|
repoRoot: state.repoRoot,
|
|
84
83
|
existingDecIds: sharedDecIds,
|
|
85
84
|
onChunkProgress: (row) => writeProgress(state.repoRoot, {
|
|
86
|
-
phase: `
|
|
85
|
+
phase: `8-docs-ingest:${row.stage}`,
|
|
87
86
|
batch: row.entriesDone,
|
|
88
87
|
total: row.totalEntries,
|
|
89
88
|
startedAt,
|
|
@@ -95,18 +94,8 @@ export async function runPhases678Parallel(state) {
|
|
|
95
94
|
}
|
|
96
95
|
const srcRes = await runPhaseSafely("source-comments-failed", async () => runSourceCommentsIngestion({
|
|
97
96
|
repoRoot: state.repoRoot,
|
|
98
|
-
globs,
|
|
99
97
|
...(pilotModule !== undefined ? { pilotModule } : {}),
|
|
100
|
-
|
|
101
|
-
existingInvIds: sharedInvIds,
|
|
102
|
-
onBatchProgress: (row) => writeProgress(state.repoRoot, {
|
|
103
|
-
phase: "7b-source-comments",
|
|
104
|
-
batch: row.index + 1,
|
|
105
|
-
total: row.total,
|
|
106
|
-
classified: row.classified,
|
|
107
|
-
failed: row.failed,
|
|
108
|
-
startedAt,
|
|
109
|
-
}),
|
|
98
|
+
dryRun: false,
|
|
110
99
|
}));
|
|
111
100
|
if ("error" in srcRes) {
|
|
112
101
|
clearProgress(state.repoRoot);
|
|
@@ -114,14 +103,7 @@ export async function runPhases678Parallel(state) {
|
|
|
114
103
|
}
|
|
115
104
|
const rulesRes = await runPhaseSafely("rules-merge-failed", async () => runRulesMerge({
|
|
116
105
|
repoRoot: state.repoRoot,
|
|
117
|
-
|
|
118
|
-
existingInvIds: sharedInvIds,
|
|
119
|
-
onSectionProgress: (row) => writeProgress(state.repoRoot, {
|
|
120
|
-
phase: "7c-rules-merge",
|
|
121
|
-
batch: row.index,
|
|
122
|
-
total: row.total,
|
|
123
|
-
startedAt,
|
|
124
|
-
}),
|
|
106
|
+
dryRun: false,
|
|
125
107
|
}));
|
|
126
108
|
if ("error" in rulesRes) {
|
|
127
109
|
clearProgress(state.repoRoot);
|
|
@@ -132,12 +114,12 @@ export async function runPhases678Parallel(state) {
|
|
|
132
114
|
writeSourceCommentsWalkFile(state.repoRoot, srcRes.value);
|
|
133
115
|
const persistedSrc = to7bResultPersisted(srcRes.value);
|
|
134
116
|
const outputs = {
|
|
135
|
-
"
|
|
136
|
-
"
|
|
137
|
-
"
|
|
117
|
+
"8-docs-ingest": docsRes.value,
|
|
118
|
+
"9-source-comments": persistedSrc,
|
|
119
|
+
"10-rules-merge": rulesRes.value,
|
|
138
120
|
};
|
|
139
|
-
// Advance the state machine all the way past
|
|
140
|
-
// tool the skill calls is
|
|
121
|
+
// Advance the state machine all the way past 10 so the next phase
|
|
122
|
+
// tool the skill calls is 11-baseline.
|
|
141
123
|
let next = {
|
|
142
124
|
...state,
|
|
143
125
|
outputs: {
|
|
@@ -145,7 +127,7 @@ export async function runPhases678Parallel(state) {
|
|
|
145
127
|
...outputs,
|
|
146
128
|
},
|
|
147
129
|
};
|
|
148
|
-
const skipTargets = ["
|
|
130
|
+
const skipTargets = ["8-docs-ingest", "9-source-comments", "10-rules-merge"];
|
|
149
131
|
for (const _ of skipTargets) {
|
|
150
132
|
next = advancePhase(next);
|
|
151
133
|
}
|
|
@@ -166,7 +148,7 @@ export async function runPhases678Parallel(state) {
|
|
|
166
148
|
durationMs,
|
|
167
149
|
decsAfter: sharedDecIds.size,
|
|
168
150
|
invsAfter: sharedInvIds.size,
|
|
169
|
-
}, "parallel-
|
|
151
|
+
}, "parallel-8910 complete");
|
|
170
152
|
return {
|
|
171
153
|
status: "complete",
|
|
172
154
|
nextPhase: next.currentPhase,
|
|
@@ -187,4 +169,4 @@ async function runPhaseSafely(code, fn) {
|
|
|
187
169
|
return { error: { code, message, detail } };
|
|
188
170
|
}
|
|
189
171
|
}
|
|
190
|
-
//# sourceMappingURL=parallel-
|
|
172
|
+
//# sourceMappingURL=parallel-8910.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parallel-8910.js","sourceRoot":"","sources":["../../../src/init/phases/parallel-8910.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Side-file persistence for the heavy Phase
|
|
2
|
+
* Side-file persistence for the heavy Phase 9 output.
|
|
3
3
|
*
|
|
4
4
|
* `IngestSourceCommentsResult` carries the full walk (every comment block's
|
|
5
5
|
* raw text + prose) and the matching classifications. On a busy monorepo
|
|
@@ -20,12 +20,12 @@ import type { CommentClassKind } from "../source-comments/classify.js";
|
|
|
20
20
|
export declare const SOURCE_COMMENTS_WALK_PATH: string;
|
|
21
21
|
export declare function sourceCommentsWalkAbsPath(repoRoot: string): string;
|
|
22
22
|
/**
|
|
23
|
-
* Atomically write the full Phase
|
|
23
|
+
* Atomically write the full Phase 9 result. Creates `.cairn/init/`
|
|
24
24
|
* if needed.
|
|
25
25
|
*/
|
|
26
26
|
export declare function writeSourceCommentsWalkFile(repoRoot: string, full: IngestSourceCommentsResult): string;
|
|
27
27
|
/**
|
|
28
|
-
* Read the full Phase
|
|
28
|
+
* Read the full Phase 9 result from `.cairn/init/source-comments-walk.json`.
|
|
29
29
|
* Returns null if missing or unreadable. Available for debug tooling and
|
|
30
30
|
* post-hoc inspection — phase consumers prefer the lightweight projection
|
|
31
31
|
* stored on state.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Side-file persistence for the heavy Phase
|
|
2
|
+
* Side-file persistence for the heavy Phase 9 output.
|
|
3
3
|
*
|
|
4
4
|
* `IngestSourceCommentsResult` carries the full walk (every comment block's
|
|
5
5
|
* raw text + prose) and the matching classifications. On a busy monorepo
|
|
@@ -22,7 +22,7 @@ export function sourceCommentsWalkAbsPath(repoRoot) {
|
|
|
22
22
|
return join(repoRoot, SOURCE_COMMENTS_WALK_PATH);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Atomically write the full Phase
|
|
25
|
+
* Atomically write the full Phase 9 result. Creates `.cairn/init/`
|
|
26
26
|
* if needed.
|
|
27
27
|
*/
|
|
28
28
|
export function writeSourceCommentsWalkFile(repoRoot, full) {
|
|
@@ -34,7 +34,7 @@ export function writeSourceCommentsWalkFile(repoRoot, full) {
|
|
|
34
34
|
return abs;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
-
* Read the full Phase
|
|
37
|
+
* Read the full Phase 9 result from `.cairn/init/source-comments-walk.json`.
|
|
38
38
|
* Returns null if missing or unreadable. Available for debug tooling and
|
|
39
39
|
* post-hoc inspection — phase consumers prefer the lightweight projection
|
|
40
40
|
* stored on state.
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* and pick up at the same phase on the next session.
|
|
14
14
|
*/
|
|
15
15
|
/** Phase ids in execution order. */
|
|
16
|
-
export declare const PHASE_IDS: readonly ["1-detect", "2-walker", "3-mapper", "
|
|
16
|
+
export declare const PHASE_IDS: readonly ["1-detect", "2-walker", "3-mapper", "4-seed", "5-pilot", "6-brand", "7-topic-index", "8-docs-ingest", "9-source-comments", "10-rules-merge", "11-baseline", "12-strip", "13-multidev"];
|
|
17
17
|
export type PhaseId = (typeof PHASE_IDS)[number];
|
|
18
18
|
/** Inline A/B/C question rendered via AskUserQuestion in the skill. */
|
|
19
19
|
export interface PhaseQuestion {
|
|
@@ -17,15 +17,15 @@ export const PHASE_IDS = [
|
|
|
17
17
|
"1-detect",
|
|
18
18
|
"2-walker",
|
|
19
19
|
"3-mapper",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
20
|
+
"4-seed",
|
|
21
|
+
"5-pilot",
|
|
22
|
+
"6-brand",
|
|
23
|
+
"7-topic-index",
|
|
24
|
+
"8-docs-ingest",
|
|
25
|
+
"9-source-comments",
|
|
26
|
+
"10-rules-merge",
|
|
27
|
+
"11-baseline",
|
|
28
|
+
"12-strip",
|
|
29
|
+
"13-multidev",
|
|
30
30
|
];
|
|
31
31
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/init/phases/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,oCAAoC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,UAAU;IACV,UAAU;IACV,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/init/phases/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,oCAAoC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,UAAU;IACV,UAAU;IACV,QAAQ;IACR,SAAS;IACT,SAAS;IACT,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,gBAAgB;IAChB,aAAa;IACb,UAAU;IACV,aAAa;CACL,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Phase
|
|
2
|
+
* Phase 10 discovery — find existing project-rules sources.
|
|
3
3
|
*
|
|
4
4
|
* Plan §5.4 ownership set (v0.5.0):
|
|
5
5
|
* - <repoRoot>/CLAUDE.md
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - <repoRoot>/.claude/rules/**.md
|
|
8
8
|
*
|
|
9
9
|
* `.claude/CLAUDE.md` was previously discovered here too (kind
|
|
10
|
-
* `claude-md-claude-dir`). The phase
|
|
10
|
+
* `claude-md-claude-dir`). The phase 7 walker treats every reachable
|
|
11
11
|
* `.md` outside the rule-owned set as `kind="doc"` — so phase 6 already
|
|
12
12
|
* owns `.claude/CLAUDE.md`. Re-discovering it here would race with phase
|
|
13
13
|
* 6's emit and double-bind the slug.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Phase
|
|
2
|
+
* Phase 10 discovery — find existing project-rules sources.
|
|
3
3
|
*
|
|
4
4
|
* Plan §5.4 ownership set (v0.5.0):
|
|
5
5
|
* - <repoRoot>/CLAUDE.md
|
|
@@ -7,15 +7,16 @@
|
|
|
7
7
|
* - <repoRoot>/.claude/rules/**.md
|
|
8
8
|
*
|
|
9
9
|
* `.claude/CLAUDE.md` was previously discovered here too (kind
|
|
10
|
-
* `claude-md-claude-dir`). The phase
|
|
10
|
+
* `claude-md-claude-dir`). The phase 7 walker treats every reachable
|
|
11
11
|
* `.md` outside the rule-owned set as `kind="doc"` — so phase 6 already
|
|
12
12
|
* owns `.claude/CLAUDE.md`. Re-discovering it here would race with phase
|
|
13
13
|
* 6's emit and double-bind the slug.
|
|
14
14
|
*
|
|
15
15
|
* Returns absolute + repo-relative paths that exist. Caller drives the rest.
|
|
16
16
|
*/
|
|
17
|
-
import { existsSync,
|
|
18
|
-
import { join
|
|
17
|
+
import { existsSync, statSync } from "node:fs";
|
|
18
|
+
import { join } from "node:path";
|
|
19
|
+
import { toPosix, walkFs } from "@isaacriehm/cairn-state";
|
|
19
20
|
export function discoverRuleSources(repoRoot) {
|
|
20
21
|
const out = [];
|
|
21
22
|
const tryFile = (rel, kind) => {
|
|
@@ -37,46 +38,30 @@ export function discoverRuleSources(repoRoot) {
|
|
|
37
38
|
tryFile("AGENTS.md", "agents-md-root");
|
|
38
39
|
const rulesDir = join(repoRoot, ".claude", "rules");
|
|
39
40
|
if (existsSync(rulesDir)) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (!e.name.toLowerCase().endsWith(".md"))
|
|
63
|
-
continue;
|
|
64
|
-
let st;
|
|
65
|
-
try {
|
|
66
|
-
st = statSync(abs);
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
out.push({
|
|
72
|
-
path: toPosix(relative(repoRoot, abs)),
|
|
73
|
-
absPath: abs,
|
|
74
|
-
kind: "rule",
|
|
75
|
-
size: st.size,
|
|
41
|
+
walkFs({
|
|
42
|
+
dir: rulesDir,
|
|
43
|
+
repoRoot,
|
|
44
|
+
onFile: (rel, abs, e) => {
|
|
45
|
+
if (e.name.startsWith("."))
|
|
46
|
+
return;
|
|
47
|
+
if (!e.name.toLowerCase().endsWith(".md"))
|
|
48
|
+
return;
|
|
49
|
+
let st;
|
|
50
|
+
try {
|
|
51
|
+
st = statSync(abs);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
out.push({
|
|
57
|
+
path: rel,
|
|
58
|
+
absPath: abs,
|
|
59
|
+
kind: "rule",
|
|
60
|
+
size: st.size,
|
|
61
|
+
});
|
|
62
|
+
},
|
|
76
63
|
});
|
|
77
64
|
}
|
|
78
|
-
|
|
79
|
-
function toPosix(p) {
|
|
80
|
-
return p.replace(/\\/g, "/");
|
|
65
|
+
return out;
|
|
81
66
|
}
|
|
82
67
|
//# sourceMappingURL=discover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/init/rules-merge/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/init/rules-merge/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAY1D,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,IAA4B,EAAQ,EAAE;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAC7B,IAAI,EAAE,CAAC;QACP,IAAI,CAAC;YACH,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;YAAE,OAAO;QACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC;IACF,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACvC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC;YACL,GAAG,EAAE,QAAQ;YACb,QAAQ;YACR,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;gBACtB,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,OAAO;gBACnC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,OAAO;gBAClD,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC;oBACH,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;gBACT,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,GAAG;oBACT,OAAO,EAAE,GAAG;oBACZ,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,EAAE,CAAC,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Phase
|
|
2
|
+
* Phase 10 orchestrator (v0.5.0 SoT model).
|
|
3
3
|
*
|
|
4
4
|
* Plan §5.4 algorithm:
|
|
5
5
|
* 1. Discover sections in `CLAUDE.md`, `AGENTS.md`, `.claude/rules/*.md`.
|
|
6
|
-
* 2. Topic-index lookup (built by phase
|
|
6
|
+
* 2. Topic-index lookup (built by phase 7) before classification:
|
|
7
7
|
* - **Match** — slug already owns a docs/CLAUDE.md/AGENTS.md/rule
|
|
8
|
-
* SoT and was emitted by an earlier phase. Phase
|
|
8
|
+
* SoT and was emitted by an earlier phase. Phase 10 records the
|
|
9
9
|
* cite (no source rewrite — operator's narrative stays intact)
|
|
10
10
|
* and skips emit.
|
|
11
11
|
* - **Net-new** — slug is in topic-index but not yet emitted.
|
|
12
|
-
* Phase
|
|
12
|
+
* Phase 10 classifies the section via Haiku (kind only:
|
|
13
13
|
* decision / domain-rule / constraint / informational), emits
|
|
14
14
|
* a verbatim DEC/INV via `sot-emit` with `sot_kind: "path"` +
|
|
15
15
|
* `sot_path: <file>#<anchor>`, auto-promotes (`status: accepted`).
|
|
@@ -90,7 +90,7 @@ interface RuleEmittedRecord {
|
|
|
90
90
|
status: "accepted";
|
|
91
91
|
}
|
|
92
92
|
interface RuleCiteRecord {
|
|
93
|
-
/** DEC/INV id the section was bound to (already emitted by phase
|
|
93
|
+
/** DEC/INV id the section was bound to (already emitted by phase 8 / 7b). */
|
|
94
94
|
id: string;
|
|
95
95
|
/** Section's source file. */
|
|
96
96
|
sourceFile: string;
|
|
@@ -98,7 +98,7 @@ interface RuleCiteRecord {
|
|
|
98
98
|
slug: string;
|
|
99
99
|
}
|
|
100
100
|
interface RuleConflictRecord {
|
|
101
|
-
/** Newly emitted entity id (DEC or INV from this phase
|
|
101
|
+
/** Newly emitted entity id (DEC or INV from this phase 10 run). */
|
|
102
102
|
newId: string;
|
|
103
103
|
/** Pre-existing accepted entity id the new prose contradicts. */
|
|
104
104
|
otherId: string;
|