@isaacriehm/cairn-core 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/align-undo/index.d.ts +6 -0
- package/dist/align-undo/index.js +6 -0
- package/dist/align-undo/index.js.map +1 -0
- package/dist/align-undo/log.d.ts +53 -0
- package/dist/align-undo/log.js +99 -0
- package/dist/align-undo/log.js.map +1 -0
- package/dist/align-undo/undo.d.ts +66 -0
- package/dist/align-undo/undo.js +187 -0
- package/dist/align-undo/undo.js.map +1 -0
- package/dist/attention/bulk-accept.js +1 -1
- package/dist/attention/bulk-accept.js.map +1 -1
- package/dist/attention/dedup.d.ts +2 -2
- package/dist/attention/dedup.js +16 -51
- package/dist/attention/dedup.js.map +1 -1
- package/dist/attention/index.d.ts +1 -0
- package/dist/attention/index.js +1 -0
- package/dist/attention/index.js.map +1 -1
- package/dist/attention/restore.js +1 -1
- package/dist/attention/restore.js.map +1 -1
- package/dist/attention/serve/api.d.ts +23 -0
- package/dist/attention/serve/api.js +344 -0
- package/dist/attention/serve/api.js.map +1 -0
- package/dist/attention/serve/index.d.ts +62 -0
- package/dist/attention/serve/index.js +205 -0
- package/dist/attention/serve/index.js.map +1 -0
- package/dist/decision-capture/id.d.ts +62 -25
- package/dist/decision-capture/id.js +78 -57
- package/dist/decision-capture/id.js.map +1 -1
- package/dist/decision-capture/index.d.ts +3 -3
- package/dist/decision-capture/index.js +3 -3
- package/dist/decision-capture/index.js.map +1 -1
- package/dist/drain/drain.d.ts +77 -0
- package/dist/drain/drain.js +464 -0
- package/dist/drain/drain.js.map +1 -0
- package/dist/drain/index.d.ts +5 -0
- package/dist/drain/index.js +5 -0
- package/dist/drain/index.js.map +1 -0
- package/dist/fix-align/index.d.ts +5 -0
- package/dist/fix-align/index.js +5 -0
- package/dist/fix-align/index.js.map +1 -0
- package/dist/fix-align/run.d.ts +99 -0
- package/dist/fix-align/run.js +258 -0
- package/dist/fix-align/run.js.map +1 -0
- package/dist/ground/alignment-pending.d.ts +28 -0
- package/dist/ground/alignment-pending.js +83 -0
- package/dist/ground/alignment-pending.js.map +1 -0
- package/dist/ground/anchor-map.d.ts +14 -0
- package/dist/ground/anchor-map.js +57 -0
- package/dist/ground/anchor-map.js.map +1 -0
- package/dist/ground/index.d.ts +9 -2
- package/dist/ground/index.js +8 -2
- package/dist/ground/index.js.map +1 -1
- package/dist/ground/paths.d.ts +21 -0
- package/dist/ground/paths.js +43 -0
- package/dist/ground/paths.js.map +1 -1
- package/dist/ground/schemas.d.ts +201 -0
- package/dist/ground/schemas.js +128 -3
- package/dist/ground/schemas.js.map +1 -1
- package/dist/ground/scope-index.js +2 -2
- package/dist/ground/scope-index.js.map +1 -1
- package/dist/ground/slug.d.ts +60 -0
- package/dist/ground/slug.js +103 -0
- package/dist/ground/slug.js.map +1 -0
- package/dist/ground/sot-bindings.d.ts +14 -0
- package/dist/ground/sot-bindings.js +80 -0
- package/dist/ground/sot-bindings.js.map +1 -0
- package/dist/ground/sot-cache.d.ts +18 -0
- package/dist/ground/sot-cache.js +63 -0
- package/dist/ground/sot-cache.js.map +1 -0
- package/dist/ground/topic-index.d.ts +20 -0
- package/dist/ground/topic-index.js +60 -0
- package/dist/ground/topic-index.js.map +1 -0
- package/dist/hooks/post-tool-use/citation-scanner.d.ts +1 -1
- package/dist/hooks/post-tool-use/citation-scanner.js +3 -3
- package/dist/hooks/post-tool-use/citation-scanner.js.map +1 -1
- package/dist/hooks/post-tool-use/copy-scanner.js +1 -1
- package/dist/hooks/post-tool-use/copy-scanner.js.map +1 -1
- package/dist/hooks/post-tool-use/index.d.ts +2 -0
- package/dist/hooks/post-tool-use/index.js +1 -0
- package/dist/hooks/post-tool-use/index.js.map +1 -1
- package/dist/hooks/post-tool-use/legend-builder.d.ts +1 -1
- 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/sot-align.d.ts +166 -0
- package/dist/hooks/post-tool-use/sot-align.js +1311 -0
- package/dist/hooks/post-tool-use/sot-align.js.map +1 -0
- package/dist/hooks/pre-commit/index.d.ts +8 -0
- package/dist/hooks/pre-commit/index.js +8 -0
- package/dist/hooks/pre-commit/index.js.map +1 -0
- package/dist/hooks/pre-commit/sot-align-precommit.d.ts +60 -0
- package/dist/hooks/pre-commit/sot-align-precommit.js +221 -0
- package/dist/hooks/pre-commit/sot-align-precommit.js.map +1 -0
- package/dist/hooks/runners/session-start.js +41 -0
- package/dist/hooks/runners/session-start.js.map +1 -1
- package/dist/hooks/sot-align-common.d.ts +39 -0
- package/dist/hooks/sot-align-common.js +152 -0
- package/dist/hooks/sot-align-common.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/init/index.d.ts +4 -2
- package/dist/init/index.js +2 -1
- package/dist/init/index.js.map +1 -1
- package/dist/init/ingest-docs.d.ts +30 -47
- package/dist/init/ingest-docs.js +113 -406
- package/dist/init/ingest-docs.js.map +1 -1
- package/dist/init/init.d.ts +8 -0
- package/dist/init/init.js +58 -29
- package/dist/init/init.js.map +1 -1
- package/dist/init/mapper-parallel.js +1 -1
- package/dist/init/mapper-parallel.js.map +1 -1
- package/dist/init/phases/5-brand.js +1 -1
- package/dist/init/phases/5-brand.js.map +1 -1
- package/dist/init/phases/5b-topic-index.d.ts +30 -0
- package/dist/init/phases/5b-topic-index.js +62 -0
- package/dist/init/phases/5b-topic-index.js.map +1 -0
- package/dist/init/phases/6-docs-ingest.d.ts +4 -5
- package/dist/init/phases/6-docs-ingest.js +5 -6
- package/dist/init/phases/6-docs-ingest.js.map +1 -1
- package/dist/init/phases/index.d.ts +2 -0
- package/dist/init/phases/index.js +1 -0
- package/dist/init/phases/index.js.map +1 -1
- package/dist/init/phases/parallel-678.d.ts +14 -17
- package/dist/init/phases/parallel-678.js +77 -98
- package/dist/init/phases/parallel-678.js.map +1 -1
- package/dist/init/phases/source-comments-output-io.d.ts +16 -10
- package/dist/init/phases/source-comments-output-io.js +7 -10
- package/dist/init/phases/source-comments-output-io.js.map +1 -1
- package/dist/init/phases/types.d.ts +1 -1
- package/dist/init/phases/types.js +1 -0
- package/dist/init/phases/types.js.map +1 -1
- package/dist/init/rules-merge/discover.d.ts +8 -3
- package/dist/init/rules-merge/discover.js +7 -3
- package/dist/init/rules-merge/discover.js.map +1 -1
- package/dist/init/rules-merge/ingest.d.ts +81 -28
- package/dist/init/rules-merge/ingest.js +456 -155
- package/dist/init/rules-merge/ingest.js.map +1 -1
- package/dist/init/sot-emit.d.ts +84 -0
- package/dist/init/sot-emit.js +218 -0
- package/dist/init/sot-emit.js.map +1 -0
- package/dist/init/source-comments/classify.d.ts +12 -10
- package/dist/init/source-comments/classify.js +13 -25
- 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 +1 -1
- package/dist/init/source-comments/index.js.map +1 -1
- package/dist/init/source-comments/ingest.d.ts +91 -67
- package/dist/init/source-comments/ingest.js +392 -349
- package/dist/init/source-comments/ingest.js.map +1 -1
- package/dist/init/topic-index/index.d.ts +36 -0
- package/dist/init/topic-index/index.js +46 -0
- package/dist/init/topic-index/index.js.map +1 -0
- package/dist/init/topic-index/judge.d.ts +20 -0
- package/dist/init/topic-index/judge.js +65 -0
- package/dist/init/topic-index/judge.js.map +1 -0
- package/dist/init/topic-index/resolve.d.ts +50 -0
- package/dist/init/topic-index/resolve.js +196 -0
- package/dist/init/topic-index/resolve.js.map +1 -0
- package/dist/init/topic-index/walk.d.ts +43 -0
- package/dist/init/topic-index/walk.js +293 -0
- package/dist/init/topic-index/walk.js.map +1 -0
- package/dist/mcp/history/summarizer.js +1 -1
- package/dist/mcp/history/summarizer.js.map +1 -1
- package/dist/mcp/schemas.d.ts +46 -9
- package/dist/mcp/schemas.js +48 -12
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/tools/align-drain.d.ts +7 -0
- package/dist/mcp/tools/align-drain.js +26 -0
- package/dist/mcp/tools/align-drain.js.map +1 -0
- package/dist/mcp/tools/archive.js +1 -1
- package/dist/mcp/tools/archive.js.map +1 -1
- package/dist/mcp/tools/attention-restore.js +1 -1
- package/dist/mcp/tools/attention-restore.js.map +1 -1
- package/dist/mcp/tools/attention-serve.d.ts +23 -0
- package/dist/mcp/tools/attention-serve.js +78 -0
- package/dist/mcp/tools/attention-serve.js.map +1 -0
- package/dist/mcp/tools/attention-wait.d.ts +18 -0
- package/dist/mcp/tools/attention-wait.js +74 -0
- package/dist/mcp/tools/attention-wait.js.map +1 -0
- package/dist/mcp/tools/index.js +7 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/init-phases.js +4 -1
- package/dist/mcp/tools/init-phases.js.map +1 -1
- package/dist/mcp/tools/record-decision.js +14 -2
- package/dist/mcp/tools/record-decision.js.map +1 -1
- package/dist/mcp/tools/resolve-attention.d.ts +2 -2
- package/dist/mcp/tools/resolve-attention.js +830 -7
- package/dist/mcp/tools/resolve-attention.js.map +1 -1
- package/dist/status-line/event-queue.d.ts +40 -0
- package/dist/status-line/event-queue.js +195 -0
- package/dist/status-line/event-queue.js.map +1 -0
- package/dist/status-line/format.d.ts +1 -1
- package/dist/status-line/format.js +49 -6
- package/dist/status-line/format.js.map +1 -1
- package/dist/status-line/index.d.ts +41 -0
- package/dist/status-line/index.js +14 -0
- package/dist/status-line/index.js.map +1 -1
- package/dist/status-line/reader.js +23 -18
- package/dist/status-line/reader.js.map +1 -1
- package/dist/status-line/writer.d.ts +1 -1
- package/dist/status-line/writer.js +5 -0
- package/dist/status-line/writer.js.map +1 -1
- package/dist/text/jaccard.d.ts +19 -0
- package/dist/text/jaccard.js +68 -0
- package/dist/text/jaccard.js.map +1 -0
- package/package.json +1 -1
- package/templates/.cairn/git-hooks/pre-commit +16 -3
- package/templates/attention-ui/app.css +406 -0
- package/templates/attention-ui/app.js +384 -0
- package/templates/attention-ui/index.html +56 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 5b — cross-source prose-block walker.
|
|
3
|
+
*
|
|
4
|
+
* Discovers every prose block across the narrative-bearing source kinds
|
|
5
|
+
* the SoT model recognizes. Doc discovery is layout-agnostic: any
|
|
6
|
+
* `.md` file outside the rule-owned set + skip dirs counts as a doc.
|
|
7
|
+
* That covers `docs/`, `documentation/`, `official_docs/`,
|
|
8
|
+
* `architecture/`, `notes/`, root-level READMEs, custom-named folders
|
|
9
|
+
* — anything an operator might use without cairn dictating naming.
|
|
10
|
+
*
|
|
11
|
+
* - any reachable `.md` (excluding rule paths + skip dirs)
|
|
12
|
+
* kind = "doc", paragraph-granularity
|
|
13
|
+
* - CLAUDE.md kind = "claudemd", H2/H3-section-granularity
|
|
14
|
+
* - AGENTS.md kind = "agentsmd", H2/H3-section-granularity
|
|
15
|
+
* - .claude/rules/*.md kind = "rule", H2/H3-section-granularity
|
|
16
|
+
*
|
|
17
|
+
* Source comments (kind = "source-comment") are reached through the
|
|
18
|
+
* existing phase 7b walker and folded into the topic-index lazily by
|
|
19
|
+
* phase 7b itself; phase 5b builds the doc / rules slice up front.
|
|
20
|
+
*
|
|
21
|
+
* The Haiku classifier in phase 6 filters non-binding doc paragraphs
|
|
22
|
+
* (release notes, tutorials, raw API references) by returning
|
|
23
|
+
* kind=other, so being permissive here doesn't pollute the ledger.
|
|
24
|
+
*/
|
|
25
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
26
|
+
import { join, relative } from "node:path";
|
|
27
|
+
import { bodyContentHash, normalizeBlock, topicSlug } from "../../ground/slug.js";
|
|
28
|
+
const MIN_BLOCK_CHARS = 80;
|
|
29
|
+
const MIN_UNIQUE_TOKENS = 10;
|
|
30
|
+
const SKIP_DIRS = new Set([
|
|
31
|
+
"node_modules",
|
|
32
|
+
".git",
|
|
33
|
+
".cairn",
|
|
34
|
+
"dist",
|
|
35
|
+
"build",
|
|
36
|
+
"out",
|
|
37
|
+
".next",
|
|
38
|
+
".turbo",
|
|
39
|
+
".cache",
|
|
40
|
+
"coverage",
|
|
41
|
+
".archive",
|
|
42
|
+
".pnpm-store",
|
|
43
|
+
".yarn",
|
|
44
|
+
"vendor",
|
|
45
|
+
"target",
|
|
46
|
+
".gradle",
|
|
47
|
+
".idea",
|
|
48
|
+
".vscode",
|
|
49
|
+
]);
|
|
50
|
+
/** Files owned by phase 7c (rules merge); excluded from the doc walk. */
|
|
51
|
+
const RULE_OWNED_FILES = new Set(["CLAUDE.md", "AGENTS.md"]);
|
|
52
|
+
/** Directory paths owned by phase 7c (relative to repo root). */
|
|
53
|
+
const RULE_OWNED_DIRS = [".claude/rules"];
|
|
54
|
+
/* -------------------------------------------------------------------------- */
|
|
55
|
+
/* Public entry point */
|
|
56
|
+
/* -------------------------------------------------------------------------- */
|
|
57
|
+
export function walkProseBlocks(repoRoot) {
|
|
58
|
+
const blocks = [];
|
|
59
|
+
blocks.push(...walkDocs(repoRoot));
|
|
60
|
+
blocks.push(...walkRoot(repoRoot, "CLAUDE.md", "claudemd"));
|
|
61
|
+
blocks.push(...walkRoot(repoRoot, "AGENTS.md", "agentsmd"));
|
|
62
|
+
blocks.push(...walkRulesDir(repoRoot));
|
|
63
|
+
return blocks;
|
|
64
|
+
}
|
|
65
|
+
/* -------------------------------------------------------------------------- */
|
|
66
|
+
/* Any reachable *.md (excluding rule-owned paths) → kind="doc" */
|
|
67
|
+
/* */
|
|
68
|
+
/* Layout-agnostic: walks the repo root and yields every markdown file */
|
|
69
|
+
/* that isn't claimed by phase 7c (CLAUDE.md / AGENTS.md / .claude/rules/*) */
|
|
70
|
+
/* and isn't inside a skip dir. Operator's chosen layout — `docs/`, */
|
|
71
|
+
/* `documentation/`, `notes/`, custom-named folder, root-level READMEs — */
|
|
72
|
+
/* all flow through this single discovery without configuration. */
|
|
73
|
+
/* -------------------------------------------------------------------------- */
|
|
74
|
+
function walkDocs(repoRoot) {
|
|
75
|
+
const out = [];
|
|
76
|
+
const ruleOwnedAbs = new Set(RULE_OWNED_DIRS.map((d) => join(repoRoot, d)));
|
|
77
|
+
const stack = [repoRoot];
|
|
78
|
+
while (stack.length > 0) {
|
|
79
|
+
const dir = stack.pop();
|
|
80
|
+
if (dir === undefined)
|
|
81
|
+
break;
|
|
82
|
+
if (ruleOwnedAbs.has(dir))
|
|
83
|
+
continue;
|
|
84
|
+
let entries;
|
|
85
|
+
try {
|
|
86
|
+
entries = readdirSync(dir, { withFileTypes: true, encoding: "utf8" });
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
for (const ent of entries) {
|
|
92
|
+
if (SKIP_DIRS.has(ent.name))
|
|
93
|
+
continue;
|
|
94
|
+
const abs = join(dir, ent.name);
|
|
95
|
+
if (ent.isDirectory()) {
|
|
96
|
+
if (ruleOwnedAbs.has(abs))
|
|
97
|
+
continue;
|
|
98
|
+
stack.push(abs);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (!ent.isFile() || !ent.name.endsWith(".md"))
|
|
102
|
+
continue;
|
|
103
|
+
const rel = relative(repoRoot, abs);
|
|
104
|
+
if (RULE_OWNED_FILES.has(rel))
|
|
105
|
+
continue;
|
|
106
|
+
out.push(...extractParagraphs(rel, abs, "doc"));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return out;
|
|
110
|
+
}
|
|
111
|
+
/* -------------------------------------------------------------------------- */
|
|
112
|
+
/* CLAUDE.md / AGENTS.md / rule files — H2/H3-section granularity */
|
|
113
|
+
/* -------------------------------------------------------------------------- */
|
|
114
|
+
function walkRoot(repoRoot, name, kind) {
|
|
115
|
+
const file = join(repoRoot, name);
|
|
116
|
+
if (!existsSync(file) || !statSync(file).isFile())
|
|
117
|
+
return [];
|
|
118
|
+
return extractSections(name, file, kind);
|
|
119
|
+
}
|
|
120
|
+
function walkRulesDir(repoRoot) {
|
|
121
|
+
const dir = join(repoRoot, ".claude", "rules");
|
|
122
|
+
if (!existsSync(dir))
|
|
123
|
+
return [];
|
|
124
|
+
const out = [];
|
|
125
|
+
for (const file of listMarkdown(dir)) {
|
|
126
|
+
const rel = relative(repoRoot, file);
|
|
127
|
+
out.push(...extractSections(rel, file, "rule"));
|
|
128
|
+
}
|
|
129
|
+
return out;
|
|
130
|
+
}
|
|
131
|
+
/* -------------------------------------------------------------------------- */
|
|
132
|
+
/* Markdown extraction */
|
|
133
|
+
/* -------------------------------------------------------------------------- */
|
|
134
|
+
function listMarkdown(dir) {
|
|
135
|
+
const out = [];
|
|
136
|
+
let entries;
|
|
137
|
+
try {
|
|
138
|
+
entries = readdirSync(dir, { withFileTypes: true, encoding: "utf8" });
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return [];
|
|
142
|
+
}
|
|
143
|
+
for (const ent of entries) {
|
|
144
|
+
if (SKIP_DIRS.has(ent.name))
|
|
145
|
+
continue;
|
|
146
|
+
const full = join(dir, ent.name);
|
|
147
|
+
if (ent.isDirectory()) {
|
|
148
|
+
out.push(...listMarkdown(full));
|
|
149
|
+
}
|
|
150
|
+
else if (ent.isFile() && ent.name.endsWith(".md")) {
|
|
151
|
+
out.push(full);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return out;
|
|
155
|
+
}
|
|
156
|
+
function readBodyAndFrontmatter(file) {
|
|
157
|
+
const raw = readFileSync(file, "utf8");
|
|
158
|
+
const m = raw.match(/^---\n([\s\S]*?)\n---\n?/);
|
|
159
|
+
if (m === null)
|
|
160
|
+
return { body: raw, offsetLines: 0 };
|
|
161
|
+
const offset = (m[0].match(/\n/g) ?? []).length;
|
|
162
|
+
return { body: raw.slice(m[0].length), offsetLines: offset };
|
|
163
|
+
}
|
|
164
|
+
function extractParagraphs(rel, file, kind) {
|
|
165
|
+
const { body, offsetLines } = readBodyAndFrontmatter(file);
|
|
166
|
+
const lines = body.split("\n");
|
|
167
|
+
const out = [];
|
|
168
|
+
let bufStart = null;
|
|
169
|
+
let buf = [];
|
|
170
|
+
const flush = (endLineZero) => {
|
|
171
|
+
if (bufStart === null || buf.length === 0)
|
|
172
|
+
return;
|
|
173
|
+
const startLine = bufStart + offsetLines + 1;
|
|
174
|
+
const endLine = endLineZero + offsetLines + 1;
|
|
175
|
+
const text = buf.join("\n").trim();
|
|
176
|
+
bufStart = null;
|
|
177
|
+
buf = [];
|
|
178
|
+
if (text.length === 0)
|
|
179
|
+
return;
|
|
180
|
+
if (!isMeaningfulBlock(text))
|
|
181
|
+
return;
|
|
182
|
+
const titleSource = text.split("\n")[0] ?? text;
|
|
183
|
+
const title = titleSource.replace(/^#+\s*/, "").trim().slice(0, 120) || "(untitled)";
|
|
184
|
+
const slug = topicSlug(text);
|
|
185
|
+
const block = {
|
|
186
|
+
file: rel,
|
|
187
|
+
kind,
|
|
188
|
+
title,
|
|
189
|
+
line_range: [startLine, endLine],
|
|
190
|
+
body: text,
|
|
191
|
+
content_hash: bodyContentHash(text),
|
|
192
|
+
slug,
|
|
193
|
+
};
|
|
194
|
+
const anchor = headingToAnchor(titleSource);
|
|
195
|
+
if (anchor !== null)
|
|
196
|
+
block.anchor = anchor;
|
|
197
|
+
out.push(block);
|
|
198
|
+
};
|
|
199
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
200
|
+
const line = lines[i] ?? "";
|
|
201
|
+
if (line.trim().length === 0) {
|
|
202
|
+
flush(i - 1);
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
if (bufStart === null)
|
|
206
|
+
bufStart = i;
|
|
207
|
+
buf.push(line);
|
|
208
|
+
}
|
|
209
|
+
flush(lines.length - 1);
|
|
210
|
+
return out;
|
|
211
|
+
}
|
|
212
|
+
function extractSections(rel, file, kind) {
|
|
213
|
+
const { body, offsetLines } = readBodyAndFrontmatter(file);
|
|
214
|
+
const lines = body.split("\n");
|
|
215
|
+
const out = [];
|
|
216
|
+
let sectionStart = null;
|
|
217
|
+
let sectionTitle = "";
|
|
218
|
+
let sectionAnchor;
|
|
219
|
+
let sectionBuf = [];
|
|
220
|
+
const flush = (endLineZero) => {
|
|
221
|
+
if (sectionStart === null)
|
|
222
|
+
return;
|
|
223
|
+
const startLine = sectionStart + offsetLines + 1;
|
|
224
|
+
const endLine = endLineZero + offsetLines + 1;
|
|
225
|
+
const bodyText = sectionBuf.join("\n").trim();
|
|
226
|
+
const titleSnap = sectionTitle;
|
|
227
|
+
const anchorSnap = sectionAnchor;
|
|
228
|
+
sectionStart = null;
|
|
229
|
+
sectionTitle = "";
|
|
230
|
+
sectionAnchor = undefined;
|
|
231
|
+
sectionBuf = [];
|
|
232
|
+
if (bodyText.length === 0)
|
|
233
|
+
return;
|
|
234
|
+
if (!isMeaningfulBlock(bodyText))
|
|
235
|
+
return;
|
|
236
|
+
const slug = topicSlug(bodyText);
|
|
237
|
+
const block = {
|
|
238
|
+
file: rel,
|
|
239
|
+
kind,
|
|
240
|
+
title: titleSnap || "(untitled section)",
|
|
241
|
+
line_range: [startLine, endLine],
|
|
242
|
+
body: bodyText,
|
|
243
|
+
content_hash: bodyContentHash(bodyText),
|
|
244
|
+
slug,
|
|
245
|
+
};
|
|
246
|
+
if (anchorSnap !== undefined)
|
|
247
|
+
block.anchor = anchorSnap;
|
|
248
|
+
out.push(block);
|
|
249
|
+
};
|
|
250
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
251
|
+
const line = lines[i] ?? "";
|
|
252
|
+
const headingMatch = line.match(/^(#{2,3})\s+(.+?)\s*$/);
|
|
253
|
+
if (headingMatch !== null) {
|
|
254
|
+
flush(i - 1);
|
|
255
|
+
const titleText = headingMatch[2] ?? "";
|
|
256
|
+
sectionStart = i;
|
|
257
|
+
sectionTitle = titleText;
|
|
258
|
+
const anchorComputed = headingToAnchor(line);
|
|
259
|
+
if (anchorComputed !== null)
|
|
260
|
+
sectionAnchor = anchorComputed;
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
if (sectionStart !== null)
|
|
264
|
+
sectionBuf.push(line);
|
|
265
|
+
}
|
|
266
|
+
flush(lines.length - 1);
|
|
267
|
+
return out;
|
|
268
|
+
}
|
|
269
|
+
/* -------------------------------------------------------------------------- */
|
|
270
|
+
/* Helpers */
|
|
271
|
+
/* -------------------------------------------------------------------------- */
|
|
272
|
+
function isMeaningfulBlock(text) {
|
|
273
|
+
if (text.length < MIN_BLOCK_CHARS)
|
|
274
|
+
return false;
|
|
275
|
+
const normalized = normalizeBlock(text);
|
|
276
|
+
const tokens = new Set(normalized
|
|
277
|
+
.replace(/[^a-z0-9\s]/g, " ")
|
|
278
|
+
.split(/\s+/)
|
|
279
|
+
.filter((w) => w.length >= 3));
|
|
280
|
+
return tokens.size >= MIN_UNIQUE_TOKENS;
|
|
281
|
+
}
|
|
282
|
+
function headingToAnchor(line) {
|
|
283
|
+
const m = line.match(/^#+\s+(.+?)\s*$/);
|
|
284
|
+
if (m === null || m[1] === undefined)
|
|
285
|
+
return null;
|
|
286
|
+
const slug = m[1]
|
|
287
|
+
.toLowerCase()
|
|
288
|
+
.replace(/[^a-z0-9\s-]/g, "")
|
|
289
|
+
.trim()
|
|
290
|
+
.replace(/\s+/g, "-");
|
|
291
|
+
return slug.length === 0 ? null : slug;
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=walk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walk.js","sourceRoot":"","sources":["../../../src/init/topic-index/walk.ts"],"names":[],"mappings":"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"}
|
|
@@ -183,7 +183,7 @@ function isSummarizerOutput(v) {
|
|
|
183
183
|
function resolveSupersededBy(proposed, acceptedById) {
|
|
184
184
|
if (proposed === undefined || proposed === null)
|
|
185
185
|
return null;
|
|
186
|
-
if (!/^DEC
|
|
186
|
+
if (!/^DEC-[0-9a-f]{7,}$/.test(proposed))
|
|
187
187
|
return null;
|
|
188
188
|
return acceptedById.has(proposed) ? proposed : null;
|
|
189
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizer.js","sourceRoot":"","sources":["../../../src/mcp/history/summarizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AAE5D,MAAM,GAAG,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAE7C,MAAM,kBAAkB,GACtB,+EAA+E,CAAC;AAwDlF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,IAAI,oBAAoB,CAAC;IAElE,MAAM,QAAQ,GAKV,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1D,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;gBAC9C,CAAC,CAAC,iDAAiD;gBACnD,CAAC,CAAC,sEAAsE,IAAI,CAAC,cAAc,CAAC,MAAM,kBAAkB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YACpK,gBAAgB,EAAE,wBAAwB;YAC1C,oBAAoB,EAAE,iCAAiC;YACvD,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,MAAM;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/D,MAAM,KAAK,GAA0D;YACnE,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC;QACF,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CACN;QACE,IAAI,EAAE,IAAI,CAAC,QAAQ;QACnB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QACxB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;QACnC,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,IAAI;KACL,EACD,6BAA6B,CAC9B,CAAC;IAEF,MAAM,eAAe,GAAuB;QAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,iBAAiB,EAAE,SAAS;QAC5B,IAAI;QACJ,SAAS;KACV,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1E,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACjE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;IAEjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAExD,MAAM,MAAM,GAAsB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACzD,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,YAAY;YAC1B,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;YAClD,CAAC,CAAC,IAAI,CAAC;QACT,OAAO;YACL,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,aAAa,EAAE,YAAY;YAC3B,2BAA2B,EAAE,OAAO;YACpC,OAAO,EAAE,kBAAkB;SAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7F,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,CACb,gHAAgH,CACjH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,UAAU,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,UAAU,CAAC,IAAI,CACb,mMAAmM,CACpM,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,IAAI;QACrB,MAAM;QACN,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QACpC,gBAAgB,EAAE,OAAO,CAAC,KAAK;QAC/B,oBAAoB,EAAE,iCAAiC;QACvD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,cAAc,EAAE,IAAI,CAAC,MAAM;KAC5B,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAyB;IAEzB,MAAM,UAAU,GAAG,gCAAgC,CAAC;QAClD,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,gCAAgC;QACxC,UAAU,EAAE,gCAA0C;QACtD,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;IACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,0DAA0D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI;SACvC,CAAC,CAAC;QACH,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QAClD,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,KAAK,IAAI;QAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC;AAgBD,SAAS,kBAAkB,CAAC,CAAU;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAc,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,EAAE,GAAG,CAA4B,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC,aAAa,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,OAAO,EAAE,CAAC,cAAc,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACzD,IACE,EAAE,CAAC,eAAe,CAAC,KAAK,SAAS;YACjC,EAAE,CAAC,eAAe,CAAC,KAAK,IAAI;YAC5B,OAAO,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ,EACvC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAmC,EACnC,YAA+B;IAE/B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"summarizer.js","sourceRoot":"","sources":["../../../src/mcp/history/summarizer.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/schemas.d.ts
CHANGED
|
@@ -20,9 +20,9 @@ export declare const canonicalForTopicInput: {
|
|
|
20
20
|
};
|
|
21
21
|
export declare const groundGetInput: {
|
|
22
22
|
category: z.ZodEnum<{
|
|
23
|
+
events: "events";
|
|
23
24
|
routes: "routes";
|
|
24
25
|
schema: "schema";
|
|
25
|
-
events: "events";
|
|
26
26
|
quality_grades: "quality_grades";
|
|
27
27
|
glossary: "glossary";
|
|
28
28
|
manifest: "manifest";
|
|
@@ -47,9 +47,9 @@ export declare const searchInput: {
|
|
|
47
47
|
scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
48
48
|
kinds: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
49
49
|
invariant: "invariant";
|
|
50
|
+
doc: "doc";
|
|
50
51
|
decision: "decision";
|
|
51
52
|
task: "task";
|
|
52
|
-
doc: "doc";
|
|
53
53
|
run: "run";
|
|
54
54
|
manifest: "manifest";
|
|
55
55
|
}>>>;
|
|
@@ -115,23 +115,45 @@ export declare const resolveAttentionInput: {
|
|
|
115
115
|
*
|
|
116
116
|
* For kind=bypass, item_id is the full SHA of the FIRST flagged commit
|
|
117
117
|
* (the rest go in flagged_items). For kind=review, item_id is the
|
|
118
|
-
* task_id of the FIRST pending review.
|
|
118
|
+
* task_id of the FIRST pending review. For kind=conflict, item_id is
|
|
119
|
+
* the conflict filename slug `<a-id>__<b-id>` (without `.md`).
|
|
119
120
|
*/
|
|
120
121
|
item_id: z.ZodString;
|
|
121
|
-
/**
|
|
122
|
+
/**
|
|
123
|
+
* Operator's pick from the inline A/B/C/D. The fourth slot is only
|
|
124
|
+
* meaningful for `conflict` kind (archive-both per plan §5.4.1); other
|
|
125
|
+
* kinds reject `d`.
|
|
126
|
+
*/
|
|
122
127
|
choice: z.ZodEnum<{
|
|
123
128
|
a: "a";
|
|
124
|
-
|
|
129
|
+
d: "d";
|
|
125
130
|
c: "c";
|
|
131
|
+
b: "b";
|
|
126
132
|
}>;
|
|
127
133
|
/**
|
|
128
134
|
* Item kind — narrows the resolution path. The skill knows the kind
|
|
129
135
|
* from the item it surfaced.
|
|
130
136
|
*
|
|
131
|
-
* `bypass`
|
|
132
|
-
*
|
|
133
|
-
* `review`
|
|
134
|
-
*
|
|
137
|
+
* `bypass` — Stop hook surfaced N commits not in `.attested-commits`.
|
|
138
|
+
* choice=a record-bypass (DEC), b accept-as-noted, c defer.
|
|
139
|
+
* `review` — Stop hook surfaced N pending reviewer attestations.
|
|
140
|
+
* choice=a spawn-now, b skip, c defer.
|
|
141
|
+
* `conflict` — Phase 7c contradiction judge wrote a conflict file.
|
|
142
|
+
* choice=a keep A (supersede B), b keep B (supersede A),
|
|
143
|
+
* c merge into a fresh DEC (both old superseded),
|
|
144
|
+
* d archive both (move conflict file to _archived/).
|
|
145
|
+
* Plan §5.4.1 — never rewrites source files.
|
|
146
|
+
* `alignment_pending` — Layer A's Pass-2 dedup or creation judge stayed
|
|
147
|
+
* ambiguous and wrote `.cairn/ground/alignment-pending/<slug>.md`
|
|
148
|
+
* for operator triage (plan §4.1.A / §4.1.B).
|
|
149
|
+
* For tier2-ambiguous (paired with an existing entity):
|
|
150
|
+
* a=same (cite existing + strip), b=augments (sibling DEC
|
|
151
|
+
* linked via `related` + double-cite), c=new (fresh DEC),
|
|
152
|
+
* d=replace (new supersedes existing).
|
|
153
|
+
* For tier3-ambiguous (no candidate):
|
|
154
|
+
* a=decision (fresh DEC + cite), b=constraint (fresh INV
|
|
155
|
+
* + cite), c=descriptive (drop pending, leave source),
|
|
156
|
+
* d=none-of-these (drop pending, leave source untouched).
|
|
135
157
|
*/
|
|
136
158
|
kind: z.ZodEnum<{
|
|
137
159
|
drift: "drift";
|
|
@@ -140,6 +162,8 @@ export declare const resolveAttentionInput: {
|
|
|
140
162
|
decision_draft: "decision_draft";
|
|
141
163
|
baseline_finding: "baseline_finding";
|
|
142
164
|
invalidation_event: "invalidation_event";
|
|
165
|
+
conflict: "conflict";
|
|
166
|
+
alignment_pending: "alignment_pending";
|
|
143
167
|
}>;
|
|
144
168
|
/**
|
|
145
169
|
* Full SHA / task_id list for the bypass / review snapshot. Used
|
|
@@ -152,3 +176,16 @@ export declare const resolveAttentionInput: {
|
|
|
152
176
|
/** Optional free-text — when choice=c the operator may type a rationale. */
|
|
153
177
|
rationale: z.ZodOptional<z.ZodString>;
|
|
154
178
|
};
|
|
179
|
+
export declare const alignDrainInput: {
|
|
180
|
+
/**
|
|
181
|
+
* Hard cap on Haiku judge calls. Excess entries stay in the deferred
|
|
182
|
+
* logs for a future drain. Default 30 (plan §4.3 budget).
|
|
183
|
+
*/
|
|
184
|
+
max_haiku_calls: z.ZodOptional<z.ZodNumber>;
|
|
185
|
+
/**
|
|
186
|
+
* Dry-run: classify every entry and report what would happen but do
|
|
187
|
+
* not strip-replace source files, write alignment-pending records,
|
|
188
|
+
* or truncate the deferred logs.
|
|
189
|
+
*/
|
|
190
|
+
dry_run: z.ZodOptional<z.ZodBoolean>;
|
|
191
|
+
};
|
package/dist/mcp/schemas.js
CHANGED
|
@@ -4,7 +4,7 @@ import { z } from "zod";
|
|
|
4
4
|
// pre-built objects) lets the SDK convert to JSON Schema for tool listings.
|
|
5
5
|
// ── Read tools — graph traversal ───────────────────────────────────────────
|
|
6
6
|
export const decisionGetInput = {
|
|
7
|
-
id: z.string().regex(/^DEC
|
|
7
|
+
id: z.string().regex(/^DEC-[0-9a-f]{7,}$/, "decision id must match DEC-<hash7>"),
|
|
8
8
|
};
|
|
9
9
|
export const decisionsInScopeInput = {
|
|
10
10
|
path_globs: z.array(z.string()).min(1),
|
|
@@ -32,7 +32,7 @@ export const supersedesChainInput = {
|
|
|
32
32
|
decision_id: z.string().min(1),
|
|
33
33
|
};
|
|
34
34
|
export const invariantGetInput = {
|
|
35
|
-
id: z.string().regex(/^INV
|
|
35
|
+
id: z.string().regex(/^INV-[0-9a-f]{7,}$/, "invariant id must match INV-<hash7>"),
|
|
36
36
|
};
|
|
37
37
|
export const invariantsInScopeInput = {
|
|
38
38
|
path_globs: z.array(z.string()).min(1),
|
|
@@ -74,10 +74,10 @@ export const taskCreateInput = {
|
|
|
74
74
|
goal: z.string().min(1),
|
|
75
75
|
target_path_globs: z.array(z.string().min(1)).min(1),
|
|
76
76
|
in_scope_decisions: z
|
|
77
|
-
.array(z.string().regex(/^DEC
|
|
77
|
+
.array(z.string().regex(/^DEC-[0-9a-f]{7,}$/, "decision id must match DEC-<hash7>"))
|
|
78
78
|
.optional(),
|
|
79
79
|
in_scope_invariants: z
|
|
80
|
-
.array(z.string().regex(/^INV
|
|
80
|
+
.array(z.string().regex(/^INV-[0-9a-f]{7,}$/, "invariant id must match INV-<hash7>"))
|
|
81
81
|
.optional(),
|
|
82
82
|
constraints: z.array(z.string().min(1)).optional(),
|
|
83
83
|
out_of_scope: z.array(z.string().min(1)).optional(),
|
|
@@ -85,7 +85,7 @@ export const taskCreateInput = {
|
|
|
85
85
|
module: z.string().optional(),
|
|
86
86
|
};
|
|
87
87
|
export const recordDecisionInput = {
|
|
88
|
-
id: z.string().regex(/^DEC
|
|
88
|
+
id: z.string().regex(/^DEC-[0-9a-f]{7,}$/).optional(),
|
|
89
89
|
title: z.string().min(1),
|
|
90
90
|
summary: z.string().min(1),
|
|
91
91
|
scope_globs: z.array(z.string()).min(1),
|
|
@@ -108,19 +108,40 @@ export const resolveAttentionInput = {
|
|
|
108
108
|
*
|
|
109
109
|
* For kind=bypass, item_id is the full SHA of the FIRST flagged commit
|
|
110
110
|
* (the rest go in flagged_items). For kind=review, item_id is the
|
|
111
|
-
* task_id of the FIRST pending review.
|
|
111
|
+
* task_id of the FIRST pending review. For kind=conflict, item_id is
|
|
112
|
+
* the conflict filename slug `<a-id>__<b-id>` (without `.md`).
|
|
112
113
|
*/
|
|
113
114
|
item_id: z.string().min(1),
|
|
114
|
-
/**
|
|
115
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Operator's pick from the inline A/B/C/D. The fourth slot is only
|
|
117
|
+
* meaningful for `conflict` kind (archive-both per plan §5.4.1); other
|
|
118
|
+
* kinds reject `d`.
|
|
119
|
+
*/
|
|
120
|
+
choice: z.enum(["a", "b", "c", "d"]),
|
|
116
121
|
/**
|
|
117
122
|
* Item kind — narrows the resolution path. The skill knows the kind
|
|
118
123
|
* from the item it surfaced.
|
|
119
124
|
*
|
|
120
|
-
* `bypass`
|
|
121
|
-
*
|
|
122
|
-
* `review`
|
|
123
|
-
*
|
|
125
|
+
* `bypass` — Stop hook surfaced N commits not in `.attested-commits`.
|
|
126
|
+
* choice=a record-bypass (DEC), b accept-as-noted, c defer.
|
|
127
|
+
* `review` — Stop hook surfaced N pending reviewer attestations.
|
|
128
|
+
* choice=a spawn-now, b skip, c defer.
|
|
129
|
+
* `conflict` — Phase 7c contradiction judge wrote a conflict file.
|
|
130
|
+
* choice=a keep A (supersede B), b keep B (supersede A),
|
|
131
|
+
* c merge into a fresh DEC (both old superseded),
|
|
132
|
+
* d archive both (move conflict file to _archived/).
|
|
133
|
+
* Plan §5.4.1 — never rewrites source files.
|
|
134
|
+
* `alignment_pending` — Layer A's Pass-2 dedup or creation judge stayed
|
|
135
|
+
* ambiguous and wrote `.cairn/ground/alignment-pending/<slug>.md`
|
|
136
|
+
* for operator triage (plan §4.1.A / §4.1.B).
|
|
137
|
+
* For tier2-ambiguous (paired with an existing entity):
|
|
138
|
+
* a=same (cite existing + strip), b=augments (sibling DEC
|
|
139
|
+
* linked via `related` + double-cite), c=new (fresh DEC),
|
|
140
|
+
* d=replace (new supersedes existing).
|
|
141
|
+
* For tier3-ambiguous (no candidate):
|
|
142
|
+
* a=decision (fresh DEC + cite), b=constraint (fresh INV
|
|
143
|
+
* + cite), c=descriptive (drop pending, leave source),
|
|
144
|
+
* d=none-of-these (drop pending, leave source untouched).
|
|
124
145
|
*/
|
|
125
146
|
kind: z.enum([
|
|
126
147
|
"decision_draft",
|
|
@@ -129,6 +150,8 @@ export const resolveAttentionInput = {
|
|
|
129
150
|
"drift",
|
|
130
151
|
"bypass",
|
|
131
152
|
"review",
|
|
153
|
+
"conflict",
|
|
154
|
+
"alignment_pending",
|
|
132
155
|
]),
|
|
133
156
|
/**
|
|
134
157
|
* Full SHA / task_id list for the bypass / review snapshot. Used
|
|
@@ -141,4 +164,17 @@ export const resolveAttentionInput = {
|
|
|
141
164
|
/** Optional free-text — when choice=c the operator may type a rationale. */
|
|
142
165
|
rationale: z.string().optional(),
|
|
143
166
|
};
|
|
167
|
+
export const alignDrainInput = {
|
|
168
|
+
/**
|
|
169
|
+
* Hard cap on Haiku judge calls. Excess entries stay in the deferred
|
|
170
|
+
* logs for a future drain. Default 30 (plan §4.3 budget).
|
|
171
|
+
*/
|
|
172
|
+
max_haiku_calls: z.number().int().min(0).max(200).optional(),
|
|
173
|
+
/**
|
|
174
|
+
* Dry-run: classify every entry and report what would happen but do
|
|
175
|
+
* not strip-replace source files, write alignment-pending records,
|
|
176
|
+
* or truncate the deferred logs.
|
|
177
|
+
*/
|
|
178
|
+
dry_run: z.boolean().optional(),
|
|
179
|
+
};
|
|
144
180
|
//# sourceMappingURL=schemas.js.map
|
package/dist/mcp/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAE5E,8EAA8E;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { runDrain } from "../../drain/index.js";
|
|
2
|
+
import { alignDrainInput } from "../schemas.js";
|
|
3
|
+
async function handler(ctx, input) {
|
|
4
|
+
const args = {
|
|
5
|
+
repoRoot: ctx.repoRoot,
|
|
6
|
+
sessionId: ctx.sessionId ?? null,
|
|
7
|
+
};
|
|
8
|
+
if (input.max_haiku_calls !== undefined)
|
|
9
|
+
args.maxHaikuCalls = input.max_haiku_calls;
|
|
10
|
+
if (input.dry_run !== undefined)
|
|
11
|
+
args.dryRun = input.dry_run;
|
|
12
|
+
const result = await runDrain(args);
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
export const alignDrainTool = {
|
|
16
|
+
name: "cairn_align_drain",
|
|
17
|
+
description: "Layer C SessionStart drain (plan §4.3). Reads .cairn/staleness/layer-a-deferred.jsonl + " +
|
|
18
|
+
"pre-commit-deferred.jsonl, re-checks each block against the current source, applies " +
|
|
19
|
+
"verdict (cite / drop / alignment-pending) using the Haiku dedup judge for ambiguous " +
|
|
20
|
+
"candidates, and truncates the deferred logs. Capped at max_haiku_calls (default 30). " +
|
|
21
|
+
"Returns counts: cited, pending, dropped, deferred, haiku calls. Idempotent. dry_run " +
|
|
22
|
+
"classifies without applying side effects.",
|
|
23
|
+
inputSchema: alignDrainInput,
|
|
24
|
+
handler,
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=align-drain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"align-drain.js","sourceRoot":"","sources":["../../../src/mcp/tools/align-drain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQhD,KAAK,UAAU,OAAO,CAAC,GAAe,EAAE,KAAY;IAClD,MAAM,IAAI,GAAmC;QAC3C,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;KACjC,CAAC;IACF,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC;IACpF,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,mBAAmB;IACzB,WAAW,EACT,0FAA0F;QAC1F,sFAAsF;QACtF,sFAAsF;QACtF,uFAAuF;QACvF,sFAAsF;QACtF,2CAA2C;IAC7C,WAAW,EAAE,eAAe;IAC5B,OAAO;CACR,CAAC"}
|
|
@@ -42,7 +42,7 @@ async function handler(ctx, input) {
|
|
|
42
42
|
});
|
|
43
43
|
try {
|
|
44
44
|
const refs = [{ kind: "path", id: rel }];
|
|
45
|
-
const decMatch = rel.match(/^\.cairn\/ground\/decisions\/(?:_inbox\/)?(DEC
|
|
45
|
+
const decMatch = rel.match(/^\.cairn\/ground\/decisions\/(?:_inbox\/)?(DEC-[0-9a-f]{7,})/);
|
|
46
46
|
if (decMatch)
|
|
47
47
|
refs.unshift({ kind: "decision", id: decMatch[1] });
|
|
48
48
|
writeInvalidationEvent(ctx.repoRoot, {
|