@isaacriehm/cairn-core 0.22.6 → 0.23.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/cites/expand.d.ts +75 -0
- package/dist/cites/expand.js +197 -0
- package/dist/cites/expand.js.map +1 -0
- package/dist/doctor/index.d.ts +10 -4
- package/dist/doctor/index.js +24 -11
- package/dist/doctor/index.js.map +1 -1
- package/dist/gc/completion-integrity.d.ts +0 -1
- package/dist/gc/completion-integrity.js +0 -6
- package/dist/gc/completion-integrity.js.map +1 -1
- package/dist/hooks/post-tool-use/index.d.ts +1 -1
- package/dist/hooks/post-tool-use/index.js +1 -1
- package/dist/hooks/post-tool-use/index.js.map +1 -1
- package/dist/hooks/post-tool-use/sot-align.js +52 -21
- package/dist/hooks/post-tool-use/sot-align.js.map +1 -1
- package/dist/hooks/sot-align-common.d.ts +13 -0
- package/dist/hooks/sot-align-common.js +69 -0
- package/dist/hooks/sot-align-common.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/init/claude-rule.d.ts +1 -0
- package/dist/init/claude-rule.js +1 -1
- package/dist/init/claude-rule.js.map +1 -1
- package/dist/init/source-comments/ingest.js +11 -8
- package/dist/init/source-comments/ingest.js.map +1 -1
- package/dist/invariants/prune.d.ts +50 -0
- package/dist/invariants/prune.js +113 -0
- package/dist/invariants/prune.js.map +1 -0
- package/dist/uninstall/index.d.ts +44 -0
- package/dist/uninstall/index.js +185 -0
- package/dist/uninstall/index.js.map +1 -0
- package/package.json +2 -2
- package/templates/.cairn/config/sensors.yaml +10 -3
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline cite expander — the inverse of sot-align's strip-replace.
|
|
3
|
+
*
|
|
4
|
+
* sot-align replaces a prose block with a bare `// §DEC-<hash>` /
|
|
5
|
+
* `// §INV-<hash>` citation. This expands such a citation back into the
|
|
6
|
+
* entity's body, rendered as a plain comment in the file's own comment
|
|
7
|
+
* style. Two uses:
|
|
8
|
+
*
|
|
9
|
+
* 1. Uninstall — un-cite a repo so removing `.cairn/` leaves the source
|
|
10
|
+
* self-documenting, with no dangling `§DEC-/§INV-` references.
|
|
11
|
+
* 2. General "expand cites" tooling.
|
|
12
|
+
*
|
|
13
|
+
* Only a PURE cite line — one whose entire content (after the comment
|
|
14
|
+
* leader) is citation tokens — is expanded. A citation that shares a line
|
|
15
|
+
* with code is left untouched (counted as `inlineSkipped`); a citation
|
|
16
|
+
* whose entity is missing on disk is left as-is (`danglingSkipped`).
|
|
17
|
+
*/
|
|
18
|
+
export interface ExpandResult {
|
|
19
|
+
text: string;
|
|
20
|
+
/** Citations replaced with their entity body. */
|
|
21
|
+
expanded: number;
|
|
22
|
+
/** Citation ids with no entity on disk — left in place. */
|
|
23
|
+
danglingSkipped: number;
|
|
24
|
+
/** Citations sharing a line with code — left in place. */
|
|
25
|
+
inlineSkipped: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Pure transform: expand every pure-cite line in `text`. `resolve` returns
|
|
29
|
+
* an entity body (post-frontmatter) by id, or null when it doesn't exist.
|
|
30
|
+
*/
|
|
31
|
+
export declare function expandCitesInText(text: string, resolve: (id: string) => string | null): ExpandResult;
|
|
32
|
+
export interface ExpandCitesFileOptions {
|
|
33
|
+
repoRoot: string;
|
|
34
|
+
/** Repo-relative path. */
|
|
35
|
+
filePath: string;
|
|
36
|
+
/** When true, compute the result but don't write. */
|
|
37
|
+
dryRun?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface ExpandCitesFileResult extends ExpandResult {
|
|
40
|
+
filePath: string;
|
|
41
|
+
changed: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Expand every pure-cite line in one source file, resolving ids against the
|
|
45
|
+
* live `.cairn/ground/{decisions,invariants}/` store. Writes in place unless
|
|
46
|
+
* `dryRun`.
|
|
47
|
+
*/
|
|
48
|
+
export declare function expandCitesInFile(opts: ExpandCitesFileOptions): ExpandCitesFileResult;
|
|
49
|
+
/**
|
|
50
|
+
* Walk the working tree for files that contain a `§DEC-/§INV-` token. The
|
|
51
|
+
* source of truth for un-citing is the source itself, NOT the scope-index —
|
|
52
|
+
* a stale/missing scope-index would silently leave dangling cites behind.
|
|
53
|
+
*/
|
|
54
|
+
export declare function findCitedFiles(repoRoot: string): string[];
|
|
55
|
+
export interface ExpandCitesRepoOptions {
|
|
56
|
+
repoRoot: string;
|
|
57
|
+
/**
|
|
58
|
+
* Explicit repo-relative files to expand. When omitted, the working tree
|
|
59
|
+
* is scanned for every file carrying a `§DEC-/§INV-` token.
|
|
60
|
+
*/
|
|
61
|
+
files?: string[];
|
|
62
|
+
dryRun?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface ExpandCitesRepoResult {
|
|
65
|
+
files: ExpandCitesFileResult[];
|
|
66
|
+
filesChanged: number;
|
|
67
|
+
expanded: number;
|
|
68
|
+
danglingSkipped: number;
|
|
69
|
+
inlineSkipped: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Expand cites across many files. Defaults to the scope-index's cited-file
|
|
73
|
+
* set; pass `files` to target a subset (or when the scope-index is absent).
|
|
74
|
+
*/
|
|
75
|
+
export declare function expandCitesInRepo(opts: ExpandCitesRepoOptions): ExpandCitesRepoResult;
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline cite expander — the inverse of sot-align's strip-replace.
|
|
3
|
+
*
|
|
4
|
+
* sot-align replaces a prose block with a bare `// §DEC-<hash>` /
|
|
5
|
+
* `// §INV-<hash>` citation. This expands such a citation back into the
|
|
6
|
+
* entity's body, rendered as a plain comment in the file's own comment
|
|
7
|
+
* style. Two uses:
|
|
8
|
+
*
|
|
9
|
+
* 1. Uninstall — un-cite a repo so removing `.cairn/` leaves the source
|
|
10
|
+
* self-documenting, with no dangling `§DEC-/§INV-` references.
|
|
11
|
+
* 2. General "expand cites" tooling.
|
|
12
|
+
*
|
|
13
|
+
* Only a PURE cite line — one whose entire content (after the comment
|
|
14
|
+
* leader) is citation tokens — is expanded. A citation that shares a line
|
|
15
|
+
* with code is left untouched (counted as `inlineSkipped`); a citation
|
|
16
|
+
* whose entity is missing on disk is left as-is (`danglingSkipped`).
|
|
17
|
+
*/
|
|
18
|
+
import { existsSync, readFileSync, readdirSync, statSync, writeFileSync } from "node:fs";
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
import { readEntityBody } from "../hooks/sot-align-common.js";
|
|
21
|
+
const CITE_RE = /§(DEC|INV)-([0-9a-f]{7,})/g;
|
|
22
|
+
/** A line that, with all cite tokens removed, is only indent + comment leader. */
|
|
23
|
+
const PURE_CITE_LEADER_RE = /^(\s*)(\/\/+|#+|;+|--+|\*)?\s*$/;
|
|
24
|
+
/**
|
|
25
|
+
* Pure transform: expand every pure-cite line in `text`. `resolve` returns
|
|
26
|
+
* an entity body (post-frontmatter) by id, or null when it doesn't exist.
|
|
27
|
+
*/
|
|
28
|
+
export function expandCitesInText(text, resolve) {
|
|
29
|
+
let expanded = 0;
|
|
30
|
+
let danglingSkipped = 0;
|
|
31
|
+
let inlineSkipped = 0;
|
|
32
|
+
const eol = text.includes("\r\n") ? "\r\n" : "\n";
|
|
33
|
+
const lines = text.split(/\r?\n/);
|
|
34
|
+
const out = [];
|
|
35
|
+
for (const line of lines) {
|
|
36
|
+
const cites = [...line.matchAll(CITE_RE)];
|
|
37
|
+
if (cites.length === 0) {
|
|
38
|
+
out.push(line);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const stripped = line.replace(CITE_RE, "").replace(/\s+$/, "");
|
|
42
|
+
const leaderMatch = stripped.match(PURE_CITE_LEADER_RE);
|
|
43
|
+
if (leaderMatch === null) {
|
|
44
|
+
// Citation shares the line with code — don't touch it.
|
|
45
|
+
inlineSkipped += cites.length;
|
|
46
|
+
out.push(line);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const indent = leaderMatch[1] ?? "";
|
|
50
|
+
const leader = leaderMatch[2] ?? "//";
|
|
51
|
+
const replacement = [];
|
|
52
|
+
let expandedAny = false;
|
|
53
|
+
cites.forEach((m, idx) => {
|
|
54
|
+
const id = `${m[1]}-${m[2]}`;
|
|
55
|
+
const body = resolve(id);
|
|
56
|
+
if (body === null) {
|
|
57
|
+
danglingSkipped += 1;
|
|
58
|
+
replacement.push(`${indent}${leader} §${id}`); // keep dangling cite verbatim
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (expandedAny)
|
|
62
|
+
replacement.push(`${indent}${leader}`); // separator between bodies
|
|
63
|
+
for (const bl of body.split(/\r?\n/)) {
|
|
64
|
+
replacement.push(bl.length > 0 ? `${indent}${leader} ${bl}` : `${indent}${leader}`);
|
|
65
|
+
}
|
|
66
|
+
expanded += 1;
|
|
67
|
+
expandedAny = true;
|
|
68
|
+
void idx;
|
|
69
|
+
});
|
|
70
|
+
out.push(...replacement);
|
|
71
|
+
}
|
|
72
|
+
return { text: out.join(eol), expanded, danglingSkipped, inlineSkipped };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Expand every pure-cite line in one source file, resolving ids against the
|
|
76
|
+
* live `.cairn/ground/{decisions,invariants}/` store. Writes in place unless
|
|
77
|
+
* `dryRun`.
|
|
78
|
+
*/
|
|
79
|
+
export function expandCitesInFile(opts) {
|
|
80
|
+
const abs = join(opts.repoRoot, opts.filePath);
|
|
81
|
+
const empty = {
|
|
82
|
+
filePath: opts.filePath,
|
|
83
|
+
text: "",
|
|
84
|
+
expanded: 0,
|
|
85
|
+
danglingSkipped: 0,
|
|
86
|
+
inlineSkipped: 0,
|
|
87
|
+
changed: false,
|
|
88
|
+
};
|
|
89
|
+
if (!existsSync(abs))
|
|
90
|
+
return empty;
|
|
91
|
+
let source;
|
|
92
|
+
try {
|
|
93
|
+
source = readFileSync(abs, "utf8");
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return empty;
|
|
97
|
+
}
|
|
98
|
+
const result = expandCitesInText(source, (id) => readEntityBody(opts.repoRoot, id));
|
|
99
|
+
const changed = result.text !== source;
|
|
100
|
+
if (changed && opts.dryRun !== true) {
|
|
101
|
+
writeFileSync(abs, result.text, "utf8");
|
|
102
|
+
}
|
|
103
|
+
return { ...result, filePath: opts.filePath, changed };
|
|
104
|
+
}
|
|
105
|
+
/** Dirs the cited-file scan never descends into. */
|
|
106
|
+
const SCAN_SKIP_DIRS = new Set([
|
|
107
|
+
".git",
|
|
108
|
+
".cairn",
|
|
109
|
+
"node_modules",
|
|
110
|
+
"dist",
|
|
111
|
+
"build",
|
|
112
|
+
"out",
|
|
113
|
+
"coverage",
|
|
114
|
+
".next",
|
|
115
|
+
".turbo",
|
|
116
|
+
".vercel",
|
|
117
|
+
]);
|
|
118
|
+
const CITE_SCAN_RE = /§(?:DEC|INV)-[0-9a-f]{7,}/;
|
|
119
|
+
const SCAN_SKIP_EXT = new Set([
|
|
120
|
+
".png", ".jpg", ".jpeg", ".gif", ".webp", ".ico", ".pdf", ".zip", ".gz",
|
|
121
|
+
".woff", ".woff2", ".ttf", ".eot", ".mp4", ".mov", ".wasm", ".lock", ".map",
|
|
122
|
+
]);
|
|
123
|
+
const SCAN_MAX_BYTES = 2_000_000;
|
|
124
|
+
/**
|
|
125
|
+
* Walk the working tree for files that contain a `§DEC-/§INV-` token. The
|
|
126
|
+
* source of truth for un-citing is the source itself, NOT the scope-index —
|
|
127
|
+
* a stale/missing scope-index would silently leave dangling cites behind.
|
|
128
|
+
*/
|
|
129
|
+
export function findCitedFiles(repoRoot) {
|
|
130
|
+
const out = [];
|
|
131
|
+
const walk = (absDir, relDir) => {
|
|
132
|
+
let entries;
|
|
133
|
+
try {
|
|
134
|
+
entries = readdirSync(absDir, { withFileTypes: true });
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
for (const e of entries) {
|
|
140
|
+
const rel = relDir.length > 0 ? `${relDir}/${e.name}` : e.name;
|
|
141
|
+
if (e.isDirectory()) {
|
|
142
|
+
if (SCAN_SKIP_DIRS.has(e.name))
|
|
143
|
+
continue;
|
|
144
|
+
walk(join(absDir, e.name), rel);
|
|
145
|
+
}
|
|
146
|
+
else if (e.isFile()) {
|
|
147
|
+
const dot = e.name.lastIndexOf(".");
|
|
148
|
+
if (dot !== -1 && SCAN_SKIP_EXT.has(e.name.slice(dot).toLowerCase()))
|
|
149
|
+
continue;
|
|
150
|
+
const abs = join(absDir, e.name);
|
|
151
|
+
try {
|
|
152
|
+
if (statSync(abs).size > SCAN_MAX_BYTES)
|
|
153
|
+
continue;
|
|
154
|
+
if (CITE_SCAN_RE.test(readFileSync(abs, "utf8")))
|
|
155
|
+
out.push(rel);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
/* unreadable — skip */
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
walk(repoRoot, "");
|
|
164
|
+
return out;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Expand cites across many files. Defaults to the scope-index's cited-file
|
|
168
|
+
* set; pass `files` to target a subset (or when the scope-index is absent).
|
|
169
|
+
*/
|
|
170
|
+
export function expandCitesInRepo(opts) {
|
|
171
|
+
const targets = opts.files ?? findCitedFiles(opts.repoRoot);
|
|
172
|
+
const out = {
|
|
173
|
+
files: [],
|
|
174
|
+
filesChanged: 0,
|
|
175
|
+
expanded: 0,
|
|
176
|
+
danglingSkipped: 0,
|
|
177
|
+
inlineSkipped: 0,
|
|
178
|
+
};
|
|
179
|
+
for (const filePath of targets) {
|
|
180
|
+
const r = expandCitesInFile({
|
|
181
|
+
repoRoot: opts.repoRoot,
|
|
182
|
+
filePath,
|
|
183
|
+
...(opts.dryRun !== undefined ? { dryRun: opts.dryRun } : {}),
|
|
184
|
+
});
|
|
185
|
+
if (r.expanded === 0 && r.danglingSkipped === 0 && r.inlineSkipped === 0) {
|
|
186
|
+
continue; // no cites in this file
|
|
187
|
+
}
|
|
188
|
+
out.files.push(r);
|
|
189
|
+
if (r.changed)
|
|
190
|
+
out.filesChanged += 1;
|
|
191
|
+
out.expanded += r.expanded;
|
|
192
|
+
out.danglingSkipped += r.danglingSkipped;
|
|
193
|
+
out.inlineSkipped += r.inlineSkipped;
|
|
194
|
+
}
|
|
195
|
+
return out;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=expand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/cites/expand.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor/index.d.ts
CHANGED
|
@@ -2,10 +2,16 @@
|
|
|
2
2
|
* `cairn doctor` — verify the adoption is healthy.
|
|
3
3
|
*
|
|
4
4
|
* Pure filesystem reads + a status.json check. No LLM. No subprocess fan-out.
|
|
5
|
-
* Returns a structured `DoctorReport` the CLI renders.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Returns a structured `DoctorReport` the CLI renders.
|
|
6
|
+
*
|
|
7
|
+
* Status semantics:
|
|
8
|
+
* error — broken adoption; the CLI exits 1.
|
|
9
|
+
* warn — advisory; the CLI prints it but exits 0 (use `--strict` to fail).
|
|
10
|
+
* info — expected/benign state, never counted toward warnings. Used for an
|
|
11
|
+
* ABSENT rebuildable cache (scope-index, *.ledger): those are
|
|
12
|
+
* gitignored by design, so a clean checkout legitimately lacks them.
|
|
13
|
+
* Reserve `warn` for a cache that is present-but-broken (empty /
|
|
14
|
+
* unreadable), which is a real problem.
|
|
9
15
|
*/
|
|
10
16
|
export type DoctorStatus = "ok" | "warn" | "error" | "info";
|
|
11
17
|
export interface DoctorCheck {
|
package/dist/doctor/index.js
CHANGED
|
@@ -2,10 +2,16 @@
|
|
|
2
2
|
* `cairn doctor` — verify the adoption is healthy.
|
|
3
3
|
*
|
|
4
4
|
* Pure filesystem reads + a status.json check. No LLM. No subprocess fan-out.
|
|
5
|
-
* Returns a structured `DoctorReport` the CLI renders.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Returns a structured `DoctorReport` the CLI renders.
|
|
6
|
+
*
|
|
7
|
+
* Status semantics:
|
|
8
|
+
* error — broken adoption; the CLI exits 1.
|
|
9
|
+
* warn — advisory; the CLI prints it but exits 0 (use `--strict` to fail).
|
|
10
|
+
* info — expected/benign state, never counted toward warnings. Used for an
|
|
11
|
+
* ABSENT rebuildable cache (scope-index, *.ledger): those are
|
|
12
|
+
* gitignored by design, so a clean checkout legitimately lacks them.
|
|
13
|
+
* Reserve `warn` for a cache that is present-but-broken (empty /
|
|
14
|
+
* unreadable), which is a real problem.
|
|
9
15
|
*/
|
|
10
16
|
import { existsSync, readFileSync } from "node:fs";
|
|
11
17
|
import { join } from "node:path";
|
|
@@ -153,11 +159,12 @@ function checkWorkflowMd(repoRoot) {
|
|
|
153
159
|
function checkScopeIndex(repoRoot) {
|
|
154
160
|
const path = cairnDir(repoRoot, "ground", "scope-index.yaml");
|
|
155
161
|
if (!existsSync(path)) {
|
|
162
|
+
// Rebuildable, gitignored cache — absent on a clean checkout is benign.
|
|
156
163
|
return {
|
|
157
164
|
group: "ground",
|
|
158
165
|
label: "scope-index",
|
|
159
|
-
status: "
|
|
160
|
-
detail: "
|
|
166
|
+
status: "info",
|
|
167
|
+
detail: "absent (rebuildable) — run cairn scope rebuild to populate",
|
|
161
168
|
fixCommand: "cairn scope rebuild",
|
|
162
169
|
};
|
|
163
170
|
}
|
|
@@ -202,11 +209,12 @@ function checkScopeIndex(repoRoot) {
|
|
|
202
209
|
function checkLedger(repoRoot, kind) {
|
|
203
210
|
const path = cairnDir(repoRoot, "ground", kind, `${kind}.ledger.yaml`);
|
|
204
211
|
if (!existsSync(path)) {
|
|
212
|
+
// Rebuildable, gitignored cache — absent on a clean checkout is benign.
|
|
205
213
|
return {
|
|
206
214
|
group: "ground",
|
|
207
215
|
label: `${kind}.ledger`,
|
|
208
|
-
status: "
|
|
209
|
-
detail: "
|
|
216
|
+
status: "info",
|
|
217
|
+
detail: "absent (rebuildable) — run cairn fix to populate",
|
|
210
218
|
fixCommand: "cairn fix",
|
|
211
219
|
};
|
|
212
220
|
}
|
|
@@ -389,9 +397,12 @@ export async function runFix(opts) {
|
|
|
389
397
|
const applied = [];
|
|
390
398
|
const manual = [];
|
|
391
399
|
for (const c of report.checks) {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
400
|
+
// Scope-index is a rebuildable cache: rebuild whenever it is not OK,
|
|
401
|
+
// including the `info` (absent-on-clean-tree) state — `cairn fix` is the
|
|
402
|
+
// one path that should still materialize it.
|
|
403
|
+
if (c.label === "scope-index" &&
|
|
404
|
+
c.status !== "ok" &&
|
|
405
|
+
opts.rebuildScopeIndexFn !== undefined) {
|
|
395
406
|
try {
|
|
396
407
|
const r = await opts.rebuildScopeIndexFn(opts.repoRoot);
|
|
397
408
|
applied.push(`scope-index → ${r.filesClassified} file${r.filesClassified === 1 ? "" : "s"} classified`);
|
|
@@ -405,6 +416,8 @@ export async function runFix(opts) {
|
|
|
405
416
|
}
|
|
406
417
|
continue;
|
|
407
418
|
}
|
|
419
|
+
if (c.status !== "warn" && c.status !== "error")
|
|
420
|
+
continue;
|
|
408
421
|
manual.push({
|
|
409
422
|
check: c.label,
|
|
410
423
|
command: c.fixCommand ?? null,
|
package/dist/doctor/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,QAAQ,EACf,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACzC,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC,WAAW,EAAE,CAAC;AAsBjB,MAAM,UAAU,SAAS,CAAC,IAA0B;IAClD,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9C,kBAAkB;IAClB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAEtD,aAAa;IACb,MAAM,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvD,wEAAwE;IACxE,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAElE,OAAO;QACL,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7C,MAAM;QACN,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,wEAAwE;AAExE,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,8CAA8C;YACtD,UAAU,EAAE,YAAY;SACzB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,wDAAwD;YAChE,UAAU,EAAE,oBAAoB;SACjC,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,eAAe,IAAI,MAAM,EACzB,CAAC;YACD,MAAM,CAAC,GAAI,MAAkC,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,cAAc,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,2DAA2D;SACpE,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,4DAA4D;YACpE,UAAU,EAAE,oBAAoB;SACjC,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,yEAAyE;QACzE,qEAAqE;QACrE,2EAA2E;QAC3E,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzD,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,SAAS;gBACf,CAAC,CAAC,qBAAqB,cAAc,mBAAmB,OAAO,sDAAsD;gBACrH,CAAC,CAAC,qBAAqB,cAAc,wBAAwB,OAAO,qBAAqB;YAC3F,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,yCAAyC;SACpF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG,OAAO,sBAAsB;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,6BAA6B;YACrC,UAAU,EAAE,oBAAoB;SACjC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,mCAAmC;YAC3C,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAY,SAAS,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,yCAAyC;YACjD,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,iCAAiC;YACzC,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa;KAC5D,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,SAAS,WAAW,CAClB,QAAgB,EAChB,IAAgC;IAEhC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,GAAG,IAAI,SAAS;YACvB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,yBAAyB;YACjC,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,KAAK,GAAG,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,GAAG,IAAI,SAAS;YACvB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,eAAe,OAAO,EAAE;YAChC,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,GAAG,IAAI,SAAS;QACvB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG,KAAK,mBAAmB;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,6BAA6B;gBACrC,UAAU,EAAE,oBAAoB;aACjC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,YAAY;aACrB;SACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;QACxB,IAAI,EAAE,KAAK,IAAI;YAAE,SAAS;QAC1B,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,sBAAsB;aAC/B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;QAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;oBAClD,MAAM,EAAE,GAAG,OAAO,mDAAmD;iBACtE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB;SAC1E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;aACpC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO;YACL;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,qBAAqB,MAAM,GAAG,IAAI,EAAE;gBAClE,UAAU,EAAE,wBAAwB;aACrC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,kBAAkB,MAAM,CAAC,YAAY,aAAa;gBACzE,UAAU,EAAE,wBAAwB;aACrC;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL;YACE,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,wBAAwB,MAAM,CAAC,UAAU,eAAe;SAChF;KACF,CAAC;AACJ,CAAC;AAED,wEAAwE;AAExE,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAsB,CAAC;YACxE,IAAI,GAAG,CAAC,IAAI;gBAAE,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAC,CAAC;AAC3E,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAmB;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAgD,EAAE,CAAC;IAE/D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,SAAS;QAE1D,IAAI,CAAC,CAAC,KAAK,KAAK,aAAa,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CACV,iBAAiB,CAAC,CAAC,eAAe,QAAQ,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,CAC1F,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,OAAO,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;iBAC9B,CAAC,CAAC;gBACH,KAAK,GAAG,CAAC;YACX,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACxD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* - the run directory exists in runs/terminal/ (or fallback runs/active/)
|
|
8
8
|
* - the run's meta.json contains a sha_pin
|
|
9
9
|
* - the sha_pin is reachable in the current git history
|
|
10
|
-
* - attestation.yaml is present in the run dir
|
|
11
10
|
* - sensor-results.yaml (if present) indicates all sensors passed
|
|
12
11
|
*/
|
|
13
12
|
import type { GcFinding } from "./types.js";
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* - the run directory exists in runs/terminal/ (or fallback runs/active/)
|
|
8
8
|
* - the run's meta.json contains a sha_pin
|
|
9
9
|
* - the sha_pin is reachable in the current git history
|
|
10
|
-
* - attestation.yaml is present in the run dir
|
|
11
10
|
* - sensor-results.yaml (if present) indicates all sensors passed
|
|
12
11
|
*/
|
|
13
12
|
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
@@ -105,11 +104,6 @@ export async function runCompletionIntegrity(opts) {
|
|
|
105
104
|
findings.push(makeFinding(taskId, `meta.json unparseable in ${relPathOf(opts.repoRoot, runDir)}: ${stringifyErr(err)}`));
|
|
106
105
|
continue;
|
|
107
106
|
}
|
|
108
|
-
const attestationPath = join(runDir, "attestation.yaml");
|
|
109
|
-
if (!existsSync(attestationPath)) {
|
|
110
|
-
findings.push(makeFinding(taskId, `attestation.yaml missing in ${relPathOf(opts.repoRoot, runDir)}`));
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
107
|
const sensorResultsPath = join(runDir, "sensor-results.yaml");
|
|
114
108
|
if (existsSync(sensorResultsPath)) {
|
|
115
109
|
let sensorParsed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-integrity.js","sourceRoot":"","sources":["../../src/gc/completion-integrity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"completion-integrity.js","sourceRoot":"","sources":["../../src/gc/completion-integrity.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,4 +19,4 @@ export { alignFile, runSotAlign, executeSotAlign } from "./sot-align.js";
|
|
|
19
19
|
export type { AlignFileArgs, AlignFileResult, CreationVerdict, DedupVerdict, } from "./sot-align.js";
|
|
20
20
|
export { runPostWriteHook } from "./post-write.js";
|
|
21
21
|
export { runAskUserBlockedHook } from "./ask-user-blocked.js";
|
|
22
|
-
export { containsEssayClassShape, isMarkdownPath } from "../sot-align-common.js";
|
|
22
|
+
export { containsEssayClassShape, isMarkdownPath, isSeparatorBlock, hasConstraintShape, hasDecisionShape, isLedgerWorthyBlock, } from "../sot-align-common.js";
|
|
@@ -14,5 +14,5 @@ export { readCopySafetyConfig } from "./allowlist-reader.js";
|
|
|
14
14
|
export { alignFile, runSotAlign, executeSotAlign } from "./sot-align.js";
|
|
15
15
|
export { runPostWriteHook } from "./post-write.js";
|
|
16
16
|
export { runAskUserBlockedHook } from "./ask-user-blocked.js";
|
|
17
|
-
export { containsEssayClassShape, isMarkdownPath } from "../sot-align-common.js";
|
|
17
|
+
export { containsEssayClassShape, isMarkdownPath, isSeparatorBlock, hasConstraintShape, hasDecisionShape, isLedgerWorthyBlock, } from "../sot-align-common.js";
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/post-tool-use/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/post-tool-use/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC"}
|
|
@@ -62,7 +62,7 @@ import { logger } from "../../logger.js";
|
|
|
62
62
|
import { tokenize } from "../../text/jaccard.js";
|
|
63
63
|
import { withWriteLock } from "../../lock.js";
|
|
64
64
|
import { pushEvent } from "../../status-line/event-queue.js";
|
|
65
|
-
import { TIER2_JACCARD_FLOOR, TOP_K_CANDIDATES, containsEssayClassShape, extractBlocks, isMarkdownPath, readEntityBody, tier1PickWithBody, topKCandidates, } from "../sot-align-common.js";
|
|
65
|
+
import { TIER2_JACCARD_FLOOR, TOP_K_CANDIDATES, containsEssayClassShape, extractBlocks, isLedgerWorthyBlock, isMarkdownPath, readEntityBody, tier1PickWithBody, topKCandidates, } from "../sot-align-common.js";
|
|
66
66
|
const log = logger("hooks.post-tool-use.sot-align");
|
|
67
67
|
const VerdictCacheSchema = z.object({
|
|
68
68
|
verdict: z.string(),
|
|
@@ -389,6 +389,18 @@ export async function alignFile(args) {
|
|
|
389
389
|
result.descriptive += 1;
|
|
390
390
|
continue;
|
|
391
391
|
}
|
|
392
|
+
// Structural pre-filter — only a block with a real constraint or
|
|
393
|
+
// decision shape is ledger-worthy. Section banners, separator/box-
|
|
394
|
+
// drawing lines, file/class/endpoint descriptions, behavior notes,
|
|
395
|
+
// test-fixture comments and re-export banners are gated to
|
|
396
|
+
// `descriptive` here and NEVER reach the Haiku creation judge.
|
|
397
|
+
// Without this, the judge ran on every prose block and over-labeled
|
|
398
|
+
// descriptions as `constraint`, producing a ~97%-junk invariant
|
|
399
|
+
// store. Mirrors init's Phase-7b gate (shared in `sot-align-common`).
|
|
400
|
+
if (!isLedgerWorthyBlock(block.prose, block.raw)) {
|
|
401
|
+
result.descriptive += 1;
|
|
402
|
+
continue;
|
|
403
|
+
}
|
|
392
404
|
const cachedT3P1 = readVerdictCache(repoRoot, "create-p1", block.prose, "creation");
|
|
393
405
|
let creationP1;
|
|
394
406
|
if (cachedT3P1 === "decision" ||
|
|
@@ -801,18 +813,31 @@ const CREATION_P1_SCHEMA = {
|
|
|
801
813
|
},
|
|
802
814
|
},
|
|
803
815
|
};
|
|
804
|
-
const CREATION_P1_SYSTEM = `You classify
|
|
816
|
+
const CREATION_P1_SYSTEM = `You classify ONE prose block from a source comment. Output exactly one verdict.
|
|
817
|
+
|
|
818
|
+
VERDICTS
|
|
819
|
+
- "constraint" states an ENFORCEABLE RULE: a modal obligation (must / must
|
|
820
|
+
not / never / always / required / forbidden / cannot) bound
|
|
821
|
+
to a specific condition the code must obey.
|
|
822
|
+
- "decision" records a CHOSEN TRADEOFF: an explicit decision verb (chose /
|
|
823
|
+
selected / picked / decided / adopted) AND a rationale or
|
|
824
|
+
rejected-alternative clause (over X, because Y, instead of Z).
|
|
825
|
+
- "descriptive" everything below.
|
|
826
|
+
- "ambiguous" a real rule or decision may be present but the wording is
|
|
827
|
+
too unclear to tell which.
|
|
805
828
|
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
-
|
|
809
|
-
|
|
810
|
-
- "
|
|
811
|
-
|
|
812
|
-
-
|
|
829
|
+
ALWAYS "descriptive" — these are NOT rules or decisions:
|
|
830
|
+
- section banners, separator / box-drawing lines (────, ====, ## ---)
|
|
831
|
+
- file / module / class / function / endpoint descriptions
|
|
832
|
+
("Foo — adapter that dispatches…", "Handler for POST /bar")
|
|
833
|
+
- "what this code does" / behavior / intent narration
|
|
834
|
+
- test-fixture notes ("inserts a valid row", "seeds the table")
|
|
835
|
+
- re-export / barrel / import comments
|
|
813
836
|
|
|
814
|
-
|
|
815
|
-
|
|
837
|
+
BIAS HARD to "descriptive". A false "constraint" mints a junk invariant that
|
|
838
|
+
becomes a false gate forever; a missed rule is recoverable. Require an actual
|
|
839
|
+
modal+condition for "constraint" and an actual choice+rationale for "decision".
|
|
840
|
+
A stray "only" or "always" inside descriptive prose is NOT a rule.
|
|
816
841
|
|
|
817
842
|
Reply ONLY: { "verdict": "decision" | "constraint" | "descriptive" | "ambiguous" }`;
|
|
818
843
|
async function runCreationJudgePass1(args) {
|
|
@@ -851,14 +876,19 @@ async function runCreationJudgePass1(args) {
|
|
|
851
876
|
/* Haiku creation judge — Pass 2 (CoT) */
|
|
852
877
|
/* -------------------------------------------------------------------------- */
|
|
853
878
|
const CREATION_P2_SCHEMA = CREATION_P1_SCHEMA;
|
|
854
|
-
const CREATION_P2_SYSTEM = `You classify
|
|
879
|
+
const CREATION_P2_SYSTEM = `You classify ONE prose block as decision | constraint | descriptive |
|
|
880
|
+
ambiguous, reasoning step by step before the verdict.
|
|
855
881
|
|
|
856
|
-
Step 1
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
882
|
+
Step 1 — Is the block a section banner, a separator / box-drawing line, a
|
|
883
|
+
file/class/endpoint description, a behavior note, a test-fixture
|
|
884
|
+
note, or a re-export comment? If yes → "descriptive". Stop.
|
|
885
|
+
Step 2 — Does it state an ENFORCEABLE RULE (a modal must / never / required
|
|
886
|
+
+ a specific condition the code must obey)? If yes → "constraint".
|
|
887
|
+
Step 3 — Does it record a CHOSEN TRADEOFF (a decision verb + a rationale or
|
|
888
|
+
rejected alternative)? If yes → "decision".
|
|
889
|
+
Step 4 — Otherwise → "descriptive". Default HARD to descriptive: a false
|
|
890
|
+
constraint mints a permanent junk invariant; a missed rule is
|
|
891
|
+
recoverable. A stray "only"/"always" in descriptive prose is no rule.
|
|
862
892
|
|
|
863
893
|
Final verdict JSON: { "verdict": "decision" | "constraint" | "descriptive" | "ambiguous" }.`;
|
|
864
894
|
async function runCreationJudgePass2(args) {
|
|
@@ -879,9 +909,10 @@ async function runCreationJudgePass2(args) {
|
|
|
879
909
|
"---surrounding source context---",
|
|
880
910
|
ctx.length > 0 ? ctx : "(no surrounding context available)",
|
|
881
911
|
"",
|
|
882
|
-
"Step 1:
|
|
883
|
-
"Step 2:
|
|
884
|
-
"Step 3:
|
|
912
|
+
"Step 1: banner / separator / description / fixture / re-export? → descriptive.",
|
|
913
|
+
"Step 2: enforceable rule (modal + condition)? → constraint.",
|
|
914
|
+
"Step 3: chosen tradeoff (decision verb + rationale)? → decision.",
|
|
915
|
+
"Step 4: otherwise → descriptive (default hard).",
|
|
885
916
|
"",
|
|
886
917
|
"Final verdict: decision | constraint | descriptive | ambiguous.",
|
|
887
918
|
].join("\n");
|