@isaacriehm/cairn-core 0.21.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/align-undo/log.js +3 -2
- package/dist/align-undo/log.js.map +1 -1
- package/dist/attention/source-strip.js +2 -1
- package/dist/attention/source-strip.js.map +1 -1
- package/dist/components/emit.js +33 -6
- package/dist/components/emit.js.map +1 -1
- package/dist/components/freshness.d.ts +51 -0
- package/dist/components/freshness.js +121 -0
- package/dist/components/freshness.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/reconfirm.d.ts +64 -0
- package/dist/components/reconfirm.js +204 -0
- package/dist/components/reconfirm.js.map +1 -0
- package/dist/context/handoff-builder.js +3 -3
- package/dist/context/handoff-builder.js.map +1 -1
- package/dist/context/task-summary.js +2 -2
- package/dist/context/task-summary.js.map +1 -1
- package/dist/doctor/index.js +7 -7
- package/dist/doctor/index.js.map +1 -1
- package/dist/events/paths.js +2 -2
- package/dist/events/paths.js.map +1 -1
- package/dist/fix-align/sentinel.js +2 -3
- package/dist/fix-align/sentinel.js.map +1 -1
- package/dist/gc/attested-commits.js +2 -2
- package/dist/gc/attested-commits.js.map +1 -1
- package/dist/gc/canary.js +2 -3
- package/dist/gc/canary.js.map +1 -1
- package/dist/gc/citation-integrity.d.ts +2 -3
- package/dist/gc/citation-integrity.js +2 -26
- package/dist/gc/citation-integrity.js.map +1 -1
- package/dist/gc/completion-integrity.js +4 -3
- package/dist/gc/completion-integrity.js.map +1 -1
- package/dist/gc/entity-orphan.js +60 -8
- package/dist/gc/entity-orphan.js.map +1 -1
- package/dist/gc/ghost-anchor.d.ts +57 -0
- package/dist/gc/ghost-anchor.js +171 -0
- package/dist/gc/ghost-anchor.js.map +1 -0
- package/dist/gc/index.d.ts +2 -0
- package/dist/gc/index.js +1 -0
- package/dist/gc/index.js.map +1 -1
- package/dist/gc/runtime-prune.d.ts +59 -0
- package/dist/gc/runtime-prune.js +232 -0
- package/dist/gc/runtime-prune.js.map +1 -0
- package/dist/gc/sweep.js +18 -0
- package/dist/gc/sweep.js.map +1 -1
- package/dist/gc/types.d.ts +1 -1
- package/dist/hooks/bypass-detection.js +3 -2
- package/dist/hooks/bypass-detection.js.map +1 -1
- package/dist/hooks/defer.js +3 -2
- package/dist/hooks/defer.js.map +1 -1
- package/dist/hooks/ghost-backup.d.ts +37 -0
- package/dist/hooks/ghost-backup.js +82 -0
- package/dist/hooks/ghost-backup.js.map +1 -0
- package/dist/hooks/post-tool-use/allowlist-reader.js +2 -2
- package/dist/hooks/post-tool-use/allowlist-reader.js.map +1 -1
- package/dist/hooks/post-tool-use/ask-user-blocked.js +2 -2
- package/dist/hooks/post-tool-use/ask-user-blocked.js.map +1 -1
- package/dist/hooks/post-tool-use/citation-scanner.d.ts +8 -6
- package/dist/hooks/post-tool-use/citation-scanner.js +9 -14
- package/dist/hooks/post-tool-use/citation-scanner.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 +1 -19
- package/dist/hooks/post-tool-use/legend-builder.js.map +1 -1
- package/dist/hooks/post-tool-use/post-write.js +18 -1
- package/dist/hooks/post-tool-use/post-write.js.map +1 -1
- package/dist/hooks/post-tool-use/read-enricher.d.ts +2 -2
- package/dist/hooks/post-tool-use/read-enricher.js +4 -6
- package/dist/hooks/post-tool-use/read-enricher.js.map +1 -1
- package/dist/hooks/post-tool-use/sot-align.js +29 -3
- package/dist/hooks/post-tool-use/sot-align.js.map +1 -1
- package/dist/hooks/post-tool-use/write-guardian.js +4 -4
- package/dist/hooks/post-tool-use/write-guardian.js.map +1 -1
- package/dist/hooks/runners/context-threshold.js +3 -3
- package/dist/hooks/runners/context-threshold.js.map +1 -1
- package/dist/hooks/runners/payload.js +2 -1
- package/dist/hooks/runners/payload.js.map +1 -1
- package/dist/hooks/runners/phase-ready-surface.js +3 -2
- package/dist/hooks/runners/phase-ready-surface.js.map +1 -1
- package/dist/hooks/runners/session-start.js +124 -5
- package/dist/hooks/runners/session-start.js.map +1 -1
- package/dist/hooks/runners/stop.js +26 -12
- package/dist/hooks/runners/stop.js.map +1 -1
- package/dist/hooks/runners/user-prompt-submit.d.ts +2 -2
- package/dist/hooks/runners/user-prompt-submit.js +4 -9
- package/dist/hooks/runners/user-prompt-submit.js.map +1 -1
- package/dist/hooks/seed-attested.js +3 -2
- package/dist/hooks/seed-attested.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/init/baseline-audit.js +3 -3
- package/dist/init/baseline-audit.js.map +1 -1
- package/dist/init/claude-rule.js +13 -1
- package/dist/init/claude-rule.js.map +1 -1
- package/dist/init/curator/corpus.d.ts +1 -0
- package/dist/init/curator/corpus.js +6 -2
- package/dist/init/curator/corpus.js.map +1 -1
- package/dist/init/curator/emit.js +2 -3
- package/dist/init/curator/emit.js.map +1 -1
- package/dist/init/detect-components.js +2 -2
- package/dist/init/detect-components.js.map +1 -1
- package/dist/init/eta-calibration.js +2 -2
- package/dist/init/eta-calibration.js.map +1 -1
- package/dist/init/index.d.ts +1 -1
- package/dist/init/index.js +1 -1
- package/dist/init/index.js.map +1 -1
- package/dist/init/init.d.ts +8 -0
- package/dist/init/init.js +16 -6
- package/dist/init/init.js.map +1 -1
- package/dist/init/mapper.js +2 -2
- package/dist/init/mapper.js.map +1 -1
- package/dist/init/multi-dev/install.js +24 -0
- package/dist/init/multi-dev/install.js.map +1 -1
- package/dist/init/phases/11-baseline.js +1 -1
- package/dist/init/phases/11-baseline.js.map +1 -1
- package/dist/init/phases/4-seed.js +7 -5
- package/dist/init/phases/4-seed.js.map +1 -1
- package/dist/init/phases/9a-walker.js +4 -0
- package/dist/init/phases/9a-walker.js.map +1 -1
- package/dist/init/phases/9b-curate.d.ts +1 -0
- package/dist/init/phases/9b-curate.js +6 -2
- package/dist/init/phases/9b-curate.js.map +1 -1
- package/dist/init/phases/9d-comp-walk.js +2 -2
- package/dist/init/phases/9d-comp-walk.js.map +1 -1
- package/dist/init/phases/9e-comp-annotate.js +63 -3
- package/dist/init/phases/9e-comp-annotate.js.map +1 -1
- package/dist/init/phases/index.d.ts +0 -1
- package/dist/init/phases/index.js +0 -1
- package/dist/init/phases/index.js.map +1 -1
- package/dist/init/phases/mapper-output-io.d.ts +1 -1
- package/dist/init/phases/mapper-output-io.js +3 -2
- package/dist/init/phases/mapper-output-io.js.map +1 -1
- package/dist/init/phases/state-io.d.ts +1 -1
- package/dist/init/phases/state-io.js +3 -2
- package/dist/init/phases/state-io.js.map +1 -1
- package/dist/init/phases/types.d.ts +20 -8
- package/dist/init/phases/types.js +0 -1
- package/dist/init/phases/types.js.map +1 -1
- package/dist/init/progress.d.ts +1 -0
- package/dist/init/progress.js +3 -1
- package/dist/init/progress.js.map +1 -1
- package/dist/init/rules-merge/ingest.js +3 -3
- package/dist/init/rules-merge/ingest.js.map +1 -1
- package/dist/init/seed.js +54 -5
- package/dist/init/seed.js.map +1 -1
- package/dist/init/source-comments/strip-replace.d.ts +0 -1
- package/dist/init/source-comments/strip-replace.js +17 -1
- package/dist/init/source-comments/strip-replace.js.map +1 -1
- package/dist/join/index.d.ts +9 -0
- package/dist/join/index.js +82 -25
- package/dist/join/index.js.map +1 -1
- package/dist/lock.js +4 -3
- package/dist/lock.js.map +1 -1
- package/dist/mcp/bootstrap-guard.js +10 -1
- package/dist/mcp/bootstrap-guard.js.map +1 -1
- package/dist/mcp/schemas.d.ts +26 -0
- package/dist/mcp/schemas.js +26 -0
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/server.js +3 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/telemetry.js +4 -3
- package/dist/mcp/telemetry.js.map +1 -1
- package/dist/mcp/tools/component-reconfirm.d.ts +7 -0
- package/dist/mcp/tools/component-reconfirm.js +39 -0
- package/dist/mcp/tools/component-reconfirm.js.map +1 -0
- package/dist/mcp/tools/component-register.d.ts +15 -0
- package/dist/mcp/tools/component-register.js +65 -0
- package/dist/mcp/tools/component-register.js.map +1 -0
- package/dist/mcp/tools/index.js +8 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/init-phases.d.ts +2 -0
- package/dist/mcp/tools/init-phases.js +21 -5
- package/dist/mcp/tools/init-phases.js.map +1 -1
- package/dist/mcp/tools/migrate.d.ts +21 -0
- package/dist/mcp/tools/migrate.js +49 -0
- package/dist/mcp/tools/migrate.js.map +1 -0
- package/dist/mcp/tools/mission-advance.js +5 -5
- package/dist/mcp/tools/mission-advance.js.map +1 -1
- package/dist/mcp/tools/mission-resume.js +3 -3
- package/dist/mcp/tools/mission-resume.js.map +1 -1
- package/dist/mcp/tools/record-decision.js +11 -4
- package/dist/mcp/tools/record-decision.js.map +1 -1
- package/dist/mcp/tools/resolve-attention.js +20 -4
- package/dist/mcp/tools/resolve-attention.js.map +1 -1
- package/dist/mcp/tools/resume.js +3 -2
- package/dist/mcp/tools/resume.js.map +1 -1
- package/dist/mcp/tools/search.js +2 -2
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/task-complete.js +2 -3
- package/dist/mcp/tools/task-complete.js.map +1 -1
- package/dist/mcp/tools/task-create.js +2 -2
- package/dist/mcp/tools/task-create.js.map +1 -1
- package/dist/migrate/config-io.d.ts +10 -2
- package/dist/migrate/config-io.js +21 -19
- package/dist/migrate/config-io.js.map +1 -1
- package/dist/migrate/gitignore.d.ts +28 -0
- package/dist/migrate/gitignore.js +82 -0
- package/dist/migrate/gitignore.js.map +1 -0
- package/dist/migrate/index.d.ts +1 -0
- package/dist/migrate/index.js +1 -0
- package/dist/migrate/index.js.map +1 -1
- package/dist/migrate/migrations/0001-drop-dead-config-fields.js +2 -2
- package/dist/migrate/migrations/0001-drop-dead-config-fields.js.map +1 -1
- package/dist/migrate/migrations/0002-backfill-gitignore.d.ts +14 -0
- package/dist/migrate/migrations/0002-backfill-gitignore.js +40 -0
- package/dist/migrate/migrations/0002-backfill-gitignore.js.map +1 -0
- package/dist/migrate/migrations/0003-prune-scaffolding.d.ts +19 -0
- package/dist/migrate/migrations/0003-prune-scaffolding.js +54 -0
- package/dist/migrate/migrations/0003-prune-scaffolding.js.map +1 -0
- package/dist/migrate/registry.js +7 -1
- package/dist/migrate/registry.js.map +1 -1
- package/dist/migrate/runner.js +17 -10
- package/dist/migrate/runner.js.map +1 -1
- package/dist/migrate/types.d.ts +10 -2
- package/dist/missions/task-link.js +4 -5
- package/dist/missions/task-link.js.map +1 -1
- package/dist/paths/index.d.ts +12 -1
- package/dist/paths/index.js +17 -3
- package/dist/paths/index.js.map +1 -1
- package/dist/sensors/catalog.js +3 -3
- package/dist/sensors/catalog.js.map +1 -1
- package/dist/session-start/build.js +31 -16
- package/dist/session-start/build.js.map +1 -1
- package/dist/status-line/event-queue.js +2 -1
- package/dist/status-line/event-queue.js.map +1 -1
- package/dist/status-line/reader.js +5 -5
- package/dist/status-line/reader.js.map +1 -1
- package/dist/status-line/writer.js +2 -1
- package/dist/status-line/writer.js.map +1 -1
- package/dist/tasks/lifecycle.js +10 -9
- package/dist/tasks/lifecycle.js.map +1 -1
- package/dist/trace/index.js +2 -2
- package/dist/trace/index.js.map +1 -1
- package/dist/update-check.d.ts +28 -0
- package/dist/update-check.js +137 -0
- package/dist/update-check.js.map +1 -0
- package/package.json +2 -2
- package/templates/.cairn/git-hooks/commit-msg +33 -5
- package/templates/.cairn/git-hooks/post-commit +13 -3
- package/templates/.cairn/git-hooks/pre-commit +48 -25
- package/dist/hooks/read-enrich.d.ts +0 -6
- package/dist/hooks/read-enrich.js +0 -11
- package/dist/hooks/read-enrich.js.map +0 -1
- package/dist/hooks/write-guard.d.ts +0 -6
- package/dist/hooks/write-guard.js +0 -11
- package/dist/hooks/write-guard.js.map +0 -1
- package/dist/init/phases/12-strip.d.ts +0 -10
- package/dist/init/phases/12-strip.js +0 -88
- package/dist/init/phases/12-strip.js.map +0 -1
package/dist/init/seed.js
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
* substitution are passed through `applyPlaceholders`. Existing files
|
|
7
7
|
* collide-fail unless `force: true`.
|
|
8
8
|
*/
|
|
9
|
-
import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
9
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync, } from "node:fs";
|
|
10
10
|
import { dirname, join } from "node:path";
|
|
11
11
|
import { fileURLToPath } from "node:url";
|
|
12
|
-
import { walkFs } from "@isaacriehm/cairn-state";
|
|
12
|
+
import { cairnDir, isGhost, walkFs } from "@isaacriehm/cairn-state";
|
|
13
13
|
const HERE = dirname(fileURLToPath(import.meta.url));
|
|
14
14
|
/**
|
|
15
15
|
* dist/init/seed.js → walk up to package root, then into templates/.
|
|
@@ -41,22 +41,69 @@ const SEED_TOP_LEVEL_ALLOWLIST = new Set([
|
|
|
41
41
|
".claude",
|
|
42
42
|
".github",
|
|
43
43
|
]);
|
|
44
|
+
/**
|
|
45
|
+
* Ghost mode seeds ONLY `.cairn/*` (redirected out-of-repo via `cairnDir`).
|
|
46
|
+
* The `.claude/` rule + `.github/` CI workflow templates are client-tree
|
|
47
|
+
* artifacts — never written in ghost (constraint 1: nothing Cairn-shaped in
|
|
48
|
+
* the client repo). See ghost-mode design.
|
|
49
|
+
*/
|
|
50
|
+
const GHOST_SEED_ALLOWLIST = new Set([".cairn"]);
|
|
51
|
+
/**
|
|
52
|
+
* Resolve a template's repo-relative path to its on-disk destination.
|
|
53
|
+
* `.cairn/<rest>` routes through `cairnHome` — out-of-repo in ghost,
|
|
54
|
+
* `<repoRoot>/.cairn/<rest>` in committed (byte-identical to the old
|
|
55
|
+
* `join(repoRoot, rel)`). `.claude/`/`.github/` stay in the client tree
|
|
56
|
+
* (committed only — gated out of the ghost allowlist).
|
|
57
|
+
*/
|
|
58
|
+
function seedDstPath(repoRoot, rel) {
|
|
59
|
+
const parts = rel.split("/");
|
|
60
|
+
if (parts[0] === ".cairn") {
|
|
61
|
+
return cairnDir(repoRoot, ...parts.slice(1));
|
|
62
|
+
}
|
|
63
|
+
return join(repoRoot, rel);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Belt-and-suspenders for ghost: add `/.cairn/` to `.git/info/exclude` (local,
|
|
67
|
+
* untracked — never committed). Ghost writes nothing under the client tree, but
|
|
68
|
+
* a missed code path that emitted a stray `.cairn/` would still be git-invisible.
|
|
69
|
+
* Never touches the tracked `.gitignore`. Best-effort.
|
|
70
|
+
*/
|
|
71
|
+
function addGitInfoExclude(repoRoot) {
|
|
72
|
+
try {
|
|
73
|
+
const gitDir = join(repoRoot, ".git");
|
|
74
|
+
if (!existsSync(gitDir) || !statSync(gitDir).isDirectory())
|
|
75
|
+
return;
|
|
76
|
+
const infoDir = join(gitDir, "info");
|
|
77
|
+
mkdirSync(infoDir, { recursive: true });
|
|
78
|
+
const excludePath = join(infoDir, "exclude");
|
|
79
|
+
const existing = existsSync(excludePath) ? readFileSync(excludePath, "utf8") : "";
|
|
80
|
+
if (/^\s*\/?\.cairn\/?\s*$/m.test(existing))
|
|
81
|
+
return; // already excluded
|
|
82
|
+
const sep = existing.length > 0 && !existing.endsWith("\n") ? "\n" : "";
|
|
83
|
+
writeFileSync(excludePath, `${existing}${sep}/.cairn/\n`, "utf8");
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// best-effort; a missing/locked .git/info never blocks adoption
|
|
87
|
+
}
|
|
88
|
+
}
|
|
44
89
|
export function seedCairnLayout(opts) {
|
|
45
90
|
const written = [];
|
|
46
91
|
const collisions = [];
|
|
92
|
+
const ghost = isGhost(opts.repoRoot);
|
|
93
|
+
const allowlist = ghost ? GHOST_SEED_ALLOWLIST : SEED_TOP_LEVEL_ALLOWLIST;
|
|
47
94
|
walkFs({
|
|
48
95
|
dir: TEMPLATES_ROOT,
|
|
49
96
|
onDir: (rel) => {
|
|
50
97
|
if (rel === ".")
|
|
51
98
|
return true;
|
|
52
99
|
const top = rel.split("/")[0];
|
|
53
|
-
return
|
|
100
|
+
return allowlist.has(top);
|
|
54
101
|
},
|
|
55
102
|
onFile: (rel, absSrc) => {
|
|
56
103
|
const top = rel.split("/")[0];
|
|
57
|
-
if (!
|
|
104
|
+
if (!allowlist.has(top))
|
|
58
105
|
return;
|
|
59
|
-
const absDst =
|
|
106
|
+
const absDst = seedDstPath(opts.repoRoot, rel);
|
|
60
107
|
if (existsSync(absDst) && opts.force !== true) {
|
|
61
108
|
collisions.push(rel);
|
|
62
109
|
return;
|
|
@@ -78,6 +125,8 @@ export function seedCairnLayout(opts) {
|
|
|
78
125
|
written.push(rel);
|
|
79
126
|
},
|
|
80
127
|
});
|
|
128
|
+
if (ghost)
|
|
129
|
+
addGitInfoExclude(opts.repoRoot);
|
|
81
130
|
return { written_files: written, collisions };
|
|
82
131
|
}
|
|
83
132
|
/**
|
package/dist/init/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/init/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/init/seed.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,6 @@ export interface ReplaceItem {
|
|
|
28
28
|
/**
|
|
29
29
|
* Replacement comment text. Caller composes per spec §15:
|
|
30
30
|
* - "// §INV-<hash>" for invariant cites
|
|
31
|
-
* - "// TODO(TSK-<id>)" for active-task links
|
|
32
31
|
* - leave undefined (item omitted entirely) to skip stripping a block
|
|
33
32
|
*
|
|
34
33
|
* The replacer prepends the same leading indentation the original block had.
|
|
@@ -19,12 +19,28 @@
|
|
|
19
19
|
import { execFileSync } from "node:child_process";
|
|
20
20
|
import { copyFileSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
21
21
|
import { dirname, join } from "node:path";
|
|
22
|
+
import { cairnDir, isGhost } from "@isaacriehm/cairn-state";
|
|
22
23
|
import { logger } from "../../logger.js";
|
|
23
24
|
const log = logger("init.source-comments.strip-replace");
|
|
24
25
|
/* -------------------------------------------------------------------------- */
|
|
25
26
|
/* Public */
|
|
26
27
|
/* -------------------------------------------------------------------------- */
|
|
27
28
|
export function applyStripReplace(args) {
|
|
29
|
+
// Ghost mode: never write `§DEC`/`§INV` cites (or any marker) into client
|
|
30
|
+
// source. Every cite path — Layer A align, Layer C drain, Layer D fix-align,
|
|
31
|
+
// attention-resolve, and the init source-comments pass — funnels through this
|
|
32
|
+
// one function, so a single no-op guard kills them all. Ledger emit is
|
|
33
|
+
// upstream and still runs: the DEC/INV graduates to ground with no source cite.
|
|
34
|
+
if (isGhost(args.repoRoot)) {
|
|
35
|
+
return {
|
|
36
|
+
files: [],
|
|
37
|
+
filesModified: 0,
|
|
38
|
+
filesSkipped: 0,
|
|
39
|
+
backupsWritten: [],
|
|
40
|
+
itemsApplied: 0,
|
|
41
|
+
itemsSkipped: args.items.length,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
28
44
|
const byFile = groupItemsByFile(args.items);
|
|
29
45
|
const dirtyMap = computeDirtyMap(args.repoRoot, [...byFile.keys()]);
|
|
30
46
|
const outcomes = [];
|
|
@@ -249,7 +265,7 @@ function leadingIndent(body, offset) {
|
|
|
249
265
|
}
|
|
250
266
|
function backupOriginal(repoRoot, relFile) {
|
|
251
267
|
const backupRel = join(".cairn", "backups", "source", `${relFile}.original`);
|
|
252
|
-
const abs =
|
|
268
|
+
const abs = cairnDir(repoRoot, "backups", "source", `${relFile}.original`);
|
|
253
269
|
if (existsSync(abs)) {
|
|
254
270
|
log.debug({ file: relFile, backup: backupRel }, "backup exists — skipping copy");
|
|
255
271
|
return abs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip-replace.js","sourceRoot":"","sources":["../../../src/init/source-comments/strip-replace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"strip-replace.js","sourceRoot":"","sources":["../../../src/init/source-comments/strip-replace.ts"],"names":[],"mappings":"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"}
|
package/dist/join/index.d.ts
CHANGED
|
@@ -54,12 +54,21 @@ export interface RunJoinArgs {
|
|
|
54
54
|
strict?: boolean;
|
|
55
55
|
}
|
|
56
56
|
export declare function runJoin(args?: RunJoinArgs): JoinResult;
|
|
57
|
+
export declare function writeCliPathFile(repoRoot: string): JoinStep;
|
|
57
58
|
export interface InspectJoinStateArgs {
|
|
58
59
|
repoRoot: string;
|
|
59
60
|
}
|
|
60
61
|
export interface JoinState {
|
|
61
62
|
/** True when `git config core.hooksPath` reports `.cairn/git-hooks`. */
|
|
62
63
|
hooksPathSet: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* True when `core.hooksPath` is set to a NON-Cairn value (husky / lefthook /
|
|
66
|
+
* custom). A terminal state, not a not-yet-bootstrapped one: Cairn refuses to
|
|
67
|
+
* clobber it (§3.3 seam 5), so re-running join can never flip `hooksPathSet`.
|
|
68
|
+
* Callers use this to stop retrying the bootstrap and to surface the conflict
|
|
69
|
+
* instead of a false "hooks wired" banner.
|
|
70
|
+
*/
|
|
71
|
+
hooksPathConflict: boolean;
|
|
63
72
|
/** Raw value reported by git, or null when git failed / unset. */
|
|
64
73
|
hooksPathValue: string | null;
|
|
65
74
|
/** From `.cairn/config.yaml` — null if absent / unreadable. */
|
package/dist/join/index.js
CHANGED
|
@@ -21,12 +21,11 @@
|
|
|
21
21
|
import { execFileSync } from "node:child_process";
|
|
22
22
|
import { chmodSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync, } from "node:fs";
|
|
23
23
|
import { dirname, join, resolve } from "node:path";
|
|
24
|
-
import { parse as parseYaml } from "yaml";
|
|
25
24
|
import { seedAttestedCommits } from "../hooks/seed-attested.js";
|
|
26
25
|
import { VERSION } from "../index.js";
|
|
27
|
-
import { logger } from "../logger.js";
|
|
28
26
|
import { rebuildDerived } from "../state/rebuild-derived.js";
|
|
29
|
-
|
|
27
|
+
import { readConfigPin } from "../migrate/config-io.js";
|
|
28
|
+
import { cairnDir, cairnHooksPathForConfig, COMMITTED_HOOKS_PATH, } from "@isaacriehm/cairn-state";
|
|
30
29
|
const HOOK_FILES = ["pre-commit", "post-commit", "commit-msg"];
|
|
31
30
|
export function runJoin(args = {}) {
|
|
32
31
|
const cwd = args.cwd ?? process.cwd();
|
|
@@ -87,7 +86,7 @@ export function runJoin(args = {}) {
|
|
|
87
86
|
cliVersion: VERSION,
|
|
88
87
|
};
|
|
89
88
|
}
|
|
90
|
-
const hooksDir =
|
|
89
|
+
const hooksDir = cairnDir(repoRoot, "git-hooks");
|
|
91
90
|
if (!existsSync(hooksDir)) {
|
|
92
91
|
steps.push({
|
|
93
92
|
step: "set-hooks-path",
|
|
@@ -160,6 +159,8 @@ export function runJoin(args = {}) {
|
|
|
160
159
|
function findCairnRoot(start) {
|
|
161
160
|
let cur = resolve(start);
|
|
162
161
|
for (let i = 0; i < 80; i++) {
|
|
162
|
+
// Repo-root discovery probe: physical in-repo `.cairn/` (committed mode).
|
|
163
|
+
// Literal join is intentional — ghost resolves via the global registry.
|
|
163
164
|
if (existsSync(join(cur, ".cairn")))
|
|
164
165
|
return cur;
|
|
165
166
|
const parent = dirname(cur);
|
|
@@ -169,19 +170,9 @@ function findCairnRoot(start) {
|
|
|
169
170
|
}
|
|
170
171
|
return null;
|
|
171
172
|
}
|
|
173
|
+
// Single `cairn_version` pin reader, shared with the migration runner + doctor.
|
|
172
174
|
function readProjectVersion(repoRoot) {
|
|
173
|
-
|
|
174
|
-
if (!existsSync(path))
|
|
175
|
-
return null;
|
|
176
|
-
try {
|
|
177
|
-
const parsed = parseYaml(readFileSync(path, "utf8"));
|
|
178
|
-
const v = parsed?.["cairn_version"];
|
|
179
|
-
return typeof v === "string" ? v : null;
|
|
180
|
-
}
|
|
181
|
-
catch (err) {
|
|
182
|
-
log.warn({ err: err instanceof Error ? err.message : String(err) }, "config.yaml unreadable");
|
|
183
|
-
return null;
|
|
184
|
-
}
|
|
175
|
+
return readConfigPin(repoRoot);
|
|
185
176
|
}
|
|
186
177
|
function setGitHooksPath(repoRoot) {
|
|
187
178
|
if (!existsSync(join(repoRoot, ".git"))) {
|
|
@@ -191,16 +182,54 @@ function setGitHooksPath(repoRoot) {
|
|
|
191
182
|
detail: "no .git/ at repoRoot — skipping git config (initialize git first?)",
|
|
192
183
|
};
|
|
193
184
|
}
|
|
185
|
+
// Committed: relative `.cairn/git-hooks` (tracked, portable per-clone).
|
|
186
|
+
// Ghost: the ABSOLUTE out-of-repo `<cairnHome>/git-hooks` — the hooks live
|
|
187
|
+
// outside the repo tree, so a relative path would not resolve. Local git
|
|
188
|
+
// config either way (never committed).
|
|
189
|
+
const hooksPathValue = cairnHooksPathForConfig(repoRoot);
|
|
190
|
+
// ── Clobber guard ──────────────────────────────────────────────────────
|
|
191
|
+
// git allows exactly ONE core.hooksPath. If the client repo already points
|
|
192
|
+
// it somewhere that isn't Cairn's (husky, lefthook, a custom dir), blindly
|
|
193
|
+
// overwriting it silently disables the client's hooks for this operator.
|
|
194
|
+
// That's worst in ghost — the whole premise is leaving the client's setup
|
|
195
|
+
// untouched — but it's a latent hazard in committed mode too. Refuse +
|
|
196
|
+
// warn; never override. (Chaining the prior hook is a future enhancement;
|
|
197
|
+
// v1 hands the operator a clear remediation. ghost-mode design.)
|
|
198
|
+
const existing = readGitConfigValue(repoRoot, "core.hooksPath");
|
|
199
|
+
if (existing !== null &&
|
|
200
|
+
existing.length > 0 &&
|
|
201
|
+
!isCairnHooksPath(existing, repoRoot)) {
|
|
202
|
+
return {
|
|
203
|
+
step: "set-hooks-path",
|
|
204
|
+
status: "warn",
|
|
205
|
+
detail: `core.hooksPath already set to '${existing}' (husky/lefthook/custom hooks?) — ` +
|
|
206
|
+
`Cairn will NOT override it, so Cairn's git-hook sensor sweep is inactive ` +
|
|
207
|
+
`for this clone. To run both, chain '${existing}' into Cairn's hooks, or ` +
|
|
208
|
+
`clear core.hooksPath and re-run join.`,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
194
211
|
try {
|
|
195
|
-
execFileSync("git", ["config", "core.hooksPath",
|
|
212
|
+
execFileSync("git", ["config", "core.hooksPath", hooksPathValue], {
|
|
196
213
|
cwd: repoRoot,
|
|
197
214
|
encoding: "utf8",
|
|
198
215
|
stdio: ["ignore", "pipe", "pipe"],
|
|
199
216
|
});
|
|
217
|
+
// Soft conflict: husky is configured (`.husky/` present) but core.hooksPath
|
|
218
|
+
// was unset — a later `husky`/`npm install` resets it and clobbers Cairn's
|
|
219
|
+
// path. Cairn is wired now; warn so the operator chains proactively.
|
|
220
|
+
if (existsSync(join(repoRoot, ".husky"))) {
|
|
221
|
+
return {
|
|
222
|
+
step: "set-hooks-path",
|
|
223
|
+
status: "warn",
|
|
224
|
+
detail: `core.hooksPath = ${hooksPathValue} (set), but a .husky/ directory exists — ` +
|
|
225
|
+
`a future husky install resets core.hooksPath and disables Cairn's hooks. ` +
|
|
226
|
+
`Chain them to keep both active.`,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
200
229
|
return {
|
|
201
230
|
step: "set-hooks-path",
|
|
202
231
|
status: "ok",
|
|
203
|
-
detail:
|
|
232
|
+
detail: `core.hooksPath = ${hooksPathValue}`,
|
|
204
233
|
};
|
|
205
234
|
}
|
|
206
235
|
catch (err) {
|
|
@@ -211,6 +240,17 @@ function setGitHooksPath(repoRoot) {
|
|
|
211
240
|
};
|
|
212
241
|
}
|
|
213
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* True when a `core.hooksPath` value is already Cairn's own. Committed stores
|
|
245
|
+
* the relative `.cairn/git-hooks`; ghost the absolute out-of-repo path
|
|
246
|
+
* (`cairnDir` yields exactly that, and `<repoRoot>/.cairn/git-hooks` in
|
|
247
|
+
* committed). Anything else is a foreign hooks path we must not clobber.
|
|
248
|
+
*/
|
|
249
|
+
function isCairnHooksPath(value, repoRoot) {
|
|
250
|
+
// Accept BOTH forms regardless of current mode — this is the clobber guard
|
|
251
|
+
// asking "is this value one of ours?", not "is it wired for this mode?"
|
|
252
|
+
return value === COMMITTED_HOOKS_PATH || value === cairnDir(repoRoot, "git-hooks");
|
|
253
|
+
}
|
|
214
254
|
function chmodHooks(hooksDir) {
|
|
215
255
|
let okCount = 0;
|
|
216
256
|
const failed = [];
|
|
@@ -239,7 +279,7 @@ function chmodHooks(hooksDir) {
|
|
|
239
279
|
detail: `${okCount} hook${okCount === 1 ? "" : "s"} marked executable`,
|
|
240
280
|
};
|
|
241
281
|
}
|
|
242
|
-
function writeCliPathFile(repoRoot) {
|
|
282
|
+
export function writeCliPathFile(repoRoot) {
|
|
243
283
|
const cliArgv = process.argv[1];
|
|
244
284
|
if (typeof cliArgv !== "string" || cliArgv.length === 0) {
|
|
245
285
|
return {
|
|
@@ -254,10 +294,20 @@ function writeCliPathFile(repoRoot) {
|
|
|
254
294
|
// spaces anywhere in their home, or local-marketplace plugin caches
|
|
255
295
|
// resolved through symlinked dev paths).
|
|
256
296
|
const invocation = isModule ? `node "${cliArgv}"` : `"${cliArgv}"`;
|
|
257
|
-
const path =
|
|
297
|
+
const path = cairnDir(repoRoot, ".cli-path");
|
|
298
|
+
const desired = `${invocation}\n`;
|
|
299
|
+
// SessionStart calls this every session, but the CLI invocation rarely
|
|
300
|
+
// changes — skip the mkdir + write when the file already matches (hot path).
|
|
258
301
|
try {
|
|
259
|
-
|
|
260
|
-
|
|
302
|
+
if (existsSync(path) && readFileSync(path, "utf8") === desired) {
|
|
303
|
+
return {
|
|
304
|
+
step: "write-cli-path",
|
|
305
|
+
status: "skipped",
|
|
306
|
+
detail: `cli invocation unchanged: ${invocation}`,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
mkdirSync(cairnDir(repoRoot), { recursive: true });
|
|
310
|
+
writeFileSync(path, desired, "utf8");
|
|
261
311
|
}
|
|
262
312
|
catch (err) {
|
|
263
313
|
return {
|
|
@@ -273,7 +323,7 @@ function writeCliPathFile(repoRoot) {
|
|
|
273
323
|
};
|
|
274
324
|
}
|
|
275
325
|
function ensureSessionDir(repoRoot) {
|
|
276
|
-
const dir =
|
|
326
|
+
const dir = cairnDir(repoRoot, "sessions");
|
|
277
327
|
try {
|
|
278
328
|
if (!existsSync(dir)) {
|
|
279
329
|
mkdirSync(dir, { recursive: true });
|
|
@@ -301,12 +351,19 @@ export function inspectJoinState(args) {
|
|
|
301
351
|
const repoRoot = args.repoRoot;
|
|
302
352
|
const hooksPathValue = readGitConfigValue(repoRoot, "core.hooksPath");
|
|
303
353
|
const projectCairnVersion = readProjectVersion(repoRoot);
|
|
354
|
+
// The value join would write for THIS repo's mode. `hooksPathSet` is the
|
|
355
|
+
// mode-exact check (is it wired for this mode?); `isCairnHooksPath` below is
|
|
356
|
+
// the mode-agnostic clobber guard (is it ours at all?) — kept distinct.
|
|
357
|
+
const expectedHooksPath = cairnHooksPathForConfig(repoRoot);
|
|
304
358
|
return {
|
|
305
|
-
hooksPathSet: hooksPathValue ===
|
|
359
|
+
hooksPathSet: hooksPathValue === expectedHooksPath,
|
|
360
|
+
hooksPathConflict: hooksPathValue !== null &&
|
|
361
|
+
hooksPathValue.length > 0 &&
|
|
362
|
+
!isCairnHooksPath(hooksPathValue, repoRoot),
|
|
306
363
|
hooksPathValue,
|
|
307
364
|
projectCairnVersion,
|
|
308
365
|
versionMatches: projectCairnVersion === VERSION,
|
|
309
|
-
sessionsDirReady: existsSync(
|
|
366
|
+
sessionsDirReady: existsSync(cairnDir(repoRoot, "sessions")),
|
|
310
367
|
};
|
|
311
368
|
}
|
|
312
369
|
function readGitConfigValue(repoRoot, key) {
|
package/dist/join/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/join/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/join/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lock.js
CHANGED
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
* deadlock and surface as timeout errors.
|
|
16
16
|
*/
|
|
17
17
|
import { mkdir, open, readFile, unlink } from "node:fs/promises";
|
|
18
|
-
import { dirname
|
|
18
|
+
import { dirname } from "node:path";
|
|
19
|
+
import { cairnDir } from "@isaacriehm/cairn-state";
|
|
19
20
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
20
21
|
const DEFAULT_POLL_MS = 50;
|
|
21
22
|
/**
|
|
@@ -23,7 +24,7 @@ const DEFAULT_POLL_MS = 50;
|
|
|
23
24
|
* success or error. Stale locks (holder PID is dead) are reclaimed.
|
|
24
25
|
*/
|
|
25
26
|
export async function withWriteLock(repoRoot, fn, opts = {}) {
|
|
26
|
-
return withLockAtPath(
|
|
27
|
+
return withLockAtPath(cairnDir(repoRoot, ".write-lock"), fn, opts);
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
30
|
* Acquire a named operation lock (e.g. `.gc-lock`, `.audit-lock`) for the
|
|
@@ -32,7 +33,7 @@ export async function withWriteLock(repoRoot, fn, opts = {}) {
|
|
|
32
33
|
* operation in progress".
|
|
33
34
|
*/
|
|
34
35
|
export async function acquireOperationLock(repoRoot, lockName, fn) {
|
|
35
|
-
const lockPath =
|
|
36
|
+
const lockPath = cairnDir(repoRoot, lockName);
|
|
36
37
|
await mkdir(dirname(lockPath), { recursive: true });
|
|
37
38
|
const acquired = await tryAcquire(lockPath);
|
|
38
39
|
if (!acquired) {
|
package/dist/lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ import { join } from "node:path";
|
|
|
26
26
|
import { inspectJoinState, runJoin } from "../join/index.js";
|
|
27
27
|
import { logger } from "../logger.js";
|
|
28
28
|
import { mcpError } from "./errors.js";
|
|
29
|
+
import { cairnDir } from "@isaacriehm/cairn-state";
|
|
29
30
|
const log = logger("mcp.bootstrap-guard");
|
|
30
31
|
/**
|
|
31
32
|
* The guard only blocks when *all three* are true:
|
|
@@ -45,11 +46,19 @@ const log = logger("mcp.bootstrap-guard");
|
|
|
45
46
|
export function requireBootstrap(repoRoot) {
|
|
46
47
|
if (!existsSync(join(repoRoot, ".git")))
|
|
47
48
|
return null;
|
|
48
|
-
if (!existsSync(
|
|
49
|
+
if (!existsSync(cairnDir(repoRoot, "config.yaml")))
|
|
49
50
|
return null;
|
|
50
51
|
const state = inspectJoinState({ repoRoot });
|
|
51
52
|
if (state.hooksPathSet)
|
|
52
53
|
return null;
|
|
54
|
+
// A foreign `core.hooksPath` (husky / lefthook / custom) is a terminal
|
|
55
|
+
// state — Cairn refuses to clobber it (§3.3 seam 5), so re-running join can
|
|
56
|
+
// never wire the hooks. Don't block MCP writes (decision capture, etc.) or
|
|
57
|
+
// thrash a full join on every write; Cairn runs in advisory mode, only the
|
|
58
|
+
// local git-hook sensor sweep is inactive. The SessionStart banner surfaces
|
|
59
|
+
// the conflict + remediation.
|
|
60
|
+
if (state.hooksPathConflict)
|
|
61
|
+
return null;
|
|
53
62
|
// Lazy bootstrap: SessionStart's auto-join didn't run for this session
|
|
54
63
|
// (most commonly: teammate installed the plugin mid-session via
|
|
55
64
|
// `/plugin install`, so the plugin SessionStart hook never fired).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-guard.js","sourceRoot":"","sources":["../../src/mcp/bootstrap-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAwB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap-guard.js","sourceRoot":"","sources":["../../src/mcp/bootstrap-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAwB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAEpC,uEAAuE;IACvE,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,8BAA8B;IAC9B,IAAI,KAAK,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAEzC,uEAAuE;IACvE,gEAAgE;IAChE,mEAAmE;IACnE,oEAAoE;IACpE,8CAA8C;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CACN,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAC1C,+CAA+C,CAChD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,mEAAmE;IACnE,qEAAqE;IACrE,+CAA+C;IAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;SACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,OAAO,QAAQ,CACb,oBAAoB,EACpB,gHAAgH,EAChH;QACE,qBAAqB,EAAE,KAAK,CAAC,mBAAmB;QAChD,gBAAgB,EAAE,KAAK,CAAC,cAAc;QACtC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB;QAC1C,YAAY,EAAE,WAAW;QACzB,WAAW,EACT,+HAA+H;KAClI,CACF,CAAC;AACJ,CAAC"}
|
package/dist/mcp/schemas.d.ts
CHANGED
|
@@ -24,6 +24,28 @@ export declare const componentGetInput: {
|
|
|
24
24
|
/** Optional workspace filter (monorepo). Omit for single-app. */
|
|
25
25
|
workspace: z.ZodOptional<z.ZodString>;
|
|
26
26
|
};
|
|
27
|
+
export declare const componentRegisterInput: {
|
|
28
|
+
/** Repo-relative POSIX path of the component file. */
|
|
29
|
+
file: z.ZodString;
|
|
30
|
+
/** The export symbol being registered — the natural key + identity. */
|
|
31
|
+
export_name: z.ZodString;
|
|
32
|
+
/** The `@cairn <Name>` value (usually === export_name). */
|
|
33
|
+
name: z.ZodString;
|
|
34
|
+
category: z.ZodString;
|
|
35
|
+
purpose: z.ZodString;
|
|
36
|
+
aliases: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
37
|
+
/** Owning workspace; omit / "" for single-app. */
|
|
38
|
+
workspace: z.ZodOptional<z.ZodString>;
|
|
39
|
+
singleton: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
status: z.ZodOptional<z.ZodString>;
|
|
41
|
+
uses: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
42
|
+
};
|
|
43
|
+
export declare const componentReconfirmInput: {
|
|
44
|
+
/** Reconfirm a single file's component; omit to sweep every flagged unit. */
|
|
45
|
+
file: z.ZodOptional<z.ZodString>;
|
|
46
|
+
/** Hard cap on fresh Haiku calls this run; the rest stay flagged (deferred). */
|
|
47
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
};
|
|
27
49
|
export declare const searchInput: {
|
|
28
50
|
query: z.ZodString;
|
|
29
51
|
scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -125,6 +147,10 @@ export declare const retireInvariantInput: {
|
|
|
125
147
|
id: z.ZodString;
|
|
126
148
|
reason: z.ZodOptional<z.ZodString>;
|
|
127
149
|
};
|
|
150
|
+
export declare const migrateInput: {
|
|
151
|
+
/** Preview the pending review migrations without writing anything. */
|
|
152
|
+
dry_run: z.ZodOptional<z.ZodBoolean>;
|
|
153
|
+
};
|
|
128
154
|
export declare const resolveAttentionInput: {
|
|
129
155
|
/**
|
|
130
156
|
* Item id from the attention skill — DEC-<hash> for a draft, the
|