@milehimikey/em 1.13.0 → 1.14.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/.claude/agents/em-critic.md +26 -0
- package/.claude/agents/em-implementer.md +34 -0
- package/.claude/agents/em-reviewer.md +31 -0
- package/.claude/agents/em-validator.md +27 -0
- package/.claude/skills/event-modeling/SKILL.md +52 -12
- package/.claude/skills/event-modeling-conform/SKILL.md +1 -1
- package/.claude/skills/event-modeling-conform/reference/conform.md +1 -1
- package/.claude/skills/event-modeling-design/SKILL.md +140 -18
- package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
- package/.claude/skills/event-modeling-engagement/SKILL.md +192 -0
- package/.claude/skills/event-modeling-engagement/reference/engagement.md +143 -0
- package/.claude/skills/event-modeling-implement/SKILL.md +7 -4
- package/.claude/skills/event-modeling-implement/reference/implement.md +51 -12
- package/.claude/skills/event-modeling-review/SKILL.md +1 -1
- package/.claude/skills/event-modeling-shared/reference/em-dsl.md +274 -188
- package/.claude/skills/event-modeling-shared/reference/operating-principles.md +61 -0
- package/.claude/skills/event-modeling-shared/reference/slice-doc-schema.md +116 -4
- package/.claude/skills/event-modeling-shared/templates/constitution.md +18 -1
- package/.claude/skills/event-modeling-shared/templates/slice.md +64 -39
- package/.claude/skills/event-modeling-shared/templates/state.md +5 -1
- package/.claude-plugin/marketplace.json +14 -0
- package/README.md +25 -11
- package/dist/catalog/apiFirst.d.ts +28 -0
- package/dist/catalog/apiFirst.js +49 -0
- package/dist/catalog/apiFirst.js.map +1 -0
- package/dist/catalog/docJoin.d.ts +13 -0
- package/dist/catalog/docJoin.js +11 -0
- package/dist/catalog/docJoin.js.map +1 -1
- package/dist/catalog/docModelConsistencyValidate.js +44 -4
- package/dist/catalog/docModelConsistencyValidate.js.map +1 -1
- package/dist/catalog/invariantsValidate.d.ts +4 -0
- package/dist/catalog/invariantsValidate.js +102 -0
- package/dist/catalog/invariantsValidate.js.map +1 -0
- package/dist/catalog/scenarios.d.ts +15 -0
- package/dist/catalog/scenarios.js +97 -0
- package/dist/catalog/scenarios.js.map +1 -0
- package/dist/catalog/sliceDoc.d.ts +8 -0
- package/dist/catalog/sliceDoc.js +9 -0
- package/dist/catalog/sliceDoc.js.map +1 -1
- package/dist/catalog/sliceReadyValidate.d.ts +31 -4
- package/dist/catalog/sliceReadyValidate.js +66 -8
- package/dist/catalog/sliceReadyValidate.js.map +1 -1
- package/dist/catalog/sliceSections.d.ts +55 -0
- package/dist/catalog/sliceSections.js +317 -0
- package/dist/catalog/sliceSections.js.map +1 -0
- package/dist/cli/agentsMd.js +7 -1
- package/dist/cli/agentsMd.js.map +1 -1
- package/dist/cli/api.d.ts +90 -0
- package/dist/cli/api.js +318 -0
- package/dist/cli/api.js.map +1 -0
- package/dist/cli/ciInit.d.ts +88 -3
- package/dist/cli/ciInit.js +507 -50
- package/dist/cli/ciInit.js.map +1 -1
- package/dist/cli/conformScope.d.ts +28 -0
- package/dist/cli/conformScope.js +67 -0
- package/dist/cli/conformScope.js.map +1 -1
- package/dist/cli/coverage.d.ts +25 -2
- package/dist/cli/coverage.js +86 -12
- package/dist/cli/coverage.js.map +1 -1
- package/dist/cli/engagement.d.ts +210 -0
- package/dist/cli/engagement.js +444 -0
- package/dist/cli/engagement.js.map +1 -0
- package/dist/cli/engagementFile.d.ts +86 -0
- package/dist/cli/engagementFile.js +255 -0
- package/dist/cli/engagementFile.js.map +1 -0
- package/dist/cli/metrics.d.ts +10 -0
- package/dist/cli/metrics.js +49 -1
- package/dist/cli/metrics.js.map +1 -1
- package/dist/cli/pluginPin.d.ts +55 -0
- package/dist/cli/pluginPin.js +188 -0
- package/dist/cli/pluginPin.js.map +1 -0
- package/dist/cli/ratify.d.ts +27 -2
- package/dist/cli/ratify.js +112 -13
- package/dist/cli/ratify.js.map +1 -1
- package/dist/cli/reratify.d.ts +11 -4
- package/dist/cli/reratify.js +89 -35
- package/dist/cli/reratify.js.map +1 -1
- package/dist/cli/scopeInputs.d.ts +48 -0
- package/dist/cli/scopeInputs.js +176 -0
- package/dist/cli/scopeInputs.js.map +1 -0
- package/dist/cli/skillCheck.d.ts +15 -1
- package/dist/cli/skillCheck.js +22 -1
- package/dist/cli/skillCheck.js.map +1 -1
- package/dist/cli/skillDirs.d.ts +5 -0
- package/dist/cli/skillDirs.js +13 -1
- package/dist/cli/skillDirs.js.map +1 -1
- package/dist/cli/skillSync.d.ts +4 -0
- package/dist/cli/skillSync.js +23 -0
- package/dist/cli/skillSync.js.map +1 -1
- package/dist/cli/sliceNew.d.ts +11 -7
- package/dist/cli/sliceNew.js +91 -18
- package/dist/cli/sliceNew.js.map +1 -1
- package/dist/cli/sliceSync.d.ts +50 -0
- package/dist/cli/sliceSync.js +170 -0
- package/dist/cli/sliceSync.js.map +1 -0
- package/dist/cli/status.d.ts +24 -1
- package/dist/cli/status.js +20 -1
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/systemInputs.d.ts +53 -10
- package/dist/cli/systemInputs.js +186 -11
- package/dist/cli/systemInputs.js.map +1 -1
- package/dist/cli/upgrade.d.ts +30 -7
- package/dist/cli/upgrade.js +434 -50
- package/dist/cli/upgrade.js.map +1 -1
- package/dist/cli/usageLog.d.ts +4 -2
- package/dist/cli/usageLog.js +4 -2
- package/dist/cli/usageLog.js.map +1 -1
- package/dist/cli.js +631 -100
- package/dist/cli.js.map +1 -1
- package/dist/emit/api.d.ts +29 -0
- package/dist/emit/api.js +220 -0
- package/dist/emit/api.js.map +1 -0
- package/dist/emit/apiCheckJson.d.ts +3 -0
- package/dist/emit/apiCheckJson.js +21 -0
- package/dist/emit/apiCheckJson.js.map +1 -0
- package/dist/emit/codeownersJson.d.ts +3 -0
- package/dist/emit/codeownersJson.js +19 -0
- package/dist/emit/codeownersJson.js.map +1 -0
- package/dist/emit/coverageJson.d.ts +5 -2
- package/dist/emit/coverageJson.js +6 -2
- package/dist/emit/coverageJson.js.map +1 -1
- package/dist/emit/diffJson.d.ts +1 -1
- package/dist/emit/diffJson.js +8 -1
- package/dist/emit/diffJson.js.map +1 -1
- package/dist/emit/engagementJson.d.ts +8 -0
- package/dist/emit/engagementJson.js +46 -0
- package/dist/emit/engagementJson.js.map +1 -0
- package/dist/emit/glossaryJson.d.ts +1 -1
- package/dist/emit/glossaryJson.js +4 -1
- package/dist/emit/glossaryJson.js.map +1 -1
- package/dist/emit/json.d.ts +17 -1
- package/dist/emit/json.js +30 -1
- package/dist/emit/json.js.map +1 -1
- package/dist/emit/metricsJson.d.ts +1 -1
- package/dist/emit/metricsJson.js +4 -1
- package/dist/emit/metricsJson.js.map +1 -1
- package/dist/emit/queryJson.d.ts +1 -1
- package/dist/emit/queryJson.js +7 -1
- package/dist/emit/queryJson.js.map +1 -1
- package/dist/emit/scopeJson.d.ts +12 -0
- package/dist/emit/scopeJson.js +26 -0
- package/dist/emit/scopeJson.js.map +1 -0
- package/dist/emit/skillCheckJson.d.ts +3 -2
- package/dist/emit/skillCheckJson.js +10 -2
- package/dist/emit/skillCheckJson.js.map +1 -1
- package/dist/emit/statusJson.d.ts +1 -1
- package/dist/emit/statusJson.js +15 -1
- package/dist/emit/statusJson.js.map +1 -1
- package/dist/emit/systemJson.d.ts +15 -8
- package/dist/emit/systemJson.js +28 -13
- package/dist/emit/systemJson.js.map +1 -1
- package/dist/emit/upgradeJson.d.ts +1 -1
- package/dist/emit/upgradeJson.js +4 -1
- package/dist/emit/upgradeJson.js.map +1 -1
- package/dist/emit/validateJson.d.ts +3 -3
- package/dist/emit/validateJson.js +10 -4
- package/dist/emit/validateJson.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.js +186 -37
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/diff.d.ts +4 -1
- package/dist/model/diff.js +44 -8
- package/dist/model/diff.js.map +1 -1
- package/dist/model/glossary.d.ts +2 -0
- package/dist/model/glossary.js +1 -0
- package/dist/model/glossary.js.map +1 -1
- package/dist/model/model.d.ts +55 -2
- package/dist/model/model.js +57 -0
- package/dist/model/model.js.map +1 -1
- package/dist/model/qualifiedRef.d.ts +18 -0
- package/dist/model/qualifiedRef.js +26 -0
- package/dist/model/qualifiedRef.js.map +1 -1
- package/dist/model/queryIndex.d.ts +9 -1
- package/dist/model/queryIndex.js +18 -2
- package/dist/model/queryIndex.js.map +1 -1
- package/dist/model/rules.d.ts +143 -2
- package/dist/model/rules.js +162 -3
- package/dist/model/rules.js.map +1 -1
- package/dist/model/validate.d.ts +40 -0
- package/dist/model/validate.js +147 -1
- package/dist/model/validate.js.map +1 -1
- package/dist/parser/ast.d.ts +31 -3
- package/dist/parser/parser.js +148 -14
- package/dist/parser/parser.js.map +1 -1
- package/dist/query/format.js +1 -1
- package/dist/query/format.js.map +1 -1
- package/dist/query/verbs.d.ts +6 -0
- package/dist/query/verbs.js +6 -2
- package/dist/query/verbs.js.map +1 -1
- package/dist/system/adaptation.d.ts +14 -0
- package/dist/system/adaptation.js +49 -0
- package/dist/system/adaptation.js.map +1 -0
- package/dist/system/codeowners.d.ts +77 -0
- package/dist/system/codeowners.js +242 -0
- package/dist/system/codeowners.js.map +1 -0
- package/dist/system/manifest.d.ts +10 -5
- package/dist/system/manifest.js +54 -26
- package/dist/system/manifest.js.map +1 -1
- package/dist/system/migrateManifest.d.ts +28 -0
- package/dist/system/migrateManifest.js +155 -0
- package/dist/system/migrateManifest.js.map +1 -0
- package/dist/system/scope.d.ts +46 -0
- package/dist/system/scope.js +132 -0
- package/dist/system/scope.js.map +1 -0
- package/dist/system/verify.d.ts +50 -13
- package/dist/system/verify.js +179 -58
- package/dist/system/verify.js.map +1 -1
- package/dist/templates.d.ts +2 -2
- package/dist/templates.js +23 -2
- package/dist/templates.js.map +1 -1
- package/package.json +6 -3
- package/plugin/.claude-plugin/plugin.json +18 -0
- package/plugin/agents/em-critic.md +27 -0
- package/plugin/agents/em-implementer.md +35 -0
- package/plugin/agents/em-reviewer.md +32 -0
- package/plugin/agents/em-validator.md +28 -0
- package/plugin/shared/reference/em-dsl.md +866 -0
- package/plugin/shared/reference/methodology.md +329 -0
- package/plugin/shared/reference/operating-principles.md +222 -0
- package/plugin/shared/reference/slice-doc-schema.md +566 -0
- package/plugin/shared/templates/conformance-report.md +85 -0
- package/plugin/shared/templates/constitution.md +136 -0
- package/plugin/shared/templates/model-readme.md +46 -0
- package/plugin/shared/templates/slice.md +251 -0
- package/plugin/shared/templates/state.md +77 -0
- package/plugin/skills/conform/SKILL.md +93 -0
- package/plugin/skills/conform/reference/conform.md +428 -0
- package/plugin/skills/design/SKILL.md +297 -0
- package/plugin/skills/discover/SKILL.md +90 -0
- package/plugin/skills/discover/reference/extract.md +147 -0
- package/plugin/skills/engagement/SKILL.md +193 -0
- package/plugin/skills/engagement/reference/engagement.md +144 -0
- package/plugin/skills/event-modeling/SKILL.md +132 -0
- package/plugin/skills/implement/SKILL.md +61 -0
- package/plugin/skills/implement/reference/implement.md +439 -0
- package/plugin/skills/review/SKILL.md +74 -0
- package/dist/emit/typespec.d.ts +0 -26
- package/dist/emit/typespec.js +0 -356
- package/dist/emit/typespec.js.map +0 -1
package/dist/cli/ciInit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ciInit.js","sourceRoot":"","sources":["../../src/cli/ciInit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ciInit.js","sourceRoot":"","sources":["../../src/cli/ciInit.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,34 @@ export type ChangedPathsResult = {
|
|
|
69
69
|
* for `--name-only` without `--relative`.
|
|
70
70
|
*/
|
|
71
71
|
export declare function changedPathsSince(repo: string, revision: string, runGit?: GitRunner): ChangedPathsResult;
|
|
72
|
+
/** One entry of `git diff --name-status -M`: a renamed file reports its new path in `path` and
|
|
73
|
+
* the old one in `oldPath` (`null` for every other status). Paths are repo-root-relative. */
|
|
74
|
+
export interface ChangedEntry {
|
|
75
|
+
/** First letter of git's status: A, M, D, R, T … */
|
|
76
|
+
status: string;
|
|
77
|
+
path: string;
|
|
78
|
+
oldPath: string | null;
|
|
79
|
+
}
|
|
80
|
+
export type ChangedEntriesResult = {
|
|
81
|
+
ok: true;
|
|
82
|
+
repoRoot: string;
|
|
83
|
+
entries: ChangedEntry[];
|
|
84
|
+
} | {
|
|
85
|
+
ok: false;
|
|
86
|
+
message: string;
|
|
87
|
+
};
|
|
88
|
+
/** Parse `git diff --name-status -M -z` output (NUL-separated: status, path[, newPath]). */
|
|
89
|
+
export declare function parseNameStatusZ(out: string): ChangedEntry[];
|
|
90
|
+
/** `git diff --name-status -M -z <revision>...HEAD` (merge-base form: what this branch changed
|
|
91
|
+
* since it forked from `revision`), repo-root-relative, rename-aware. */
|
|
92
|
+
export declare function changedEntriesSince(repo: string, revision: string, runGit?: GitRunner, label?: string): ChangedEntriesResult;
|
|
93
|
+
/** `git diff --cached --name-status -M -z`: what is staged right now (`--staged`). */
|
|
94
|
+
export declare function changedEntriesStaged(repo: string, runGit?: GitRunner, label?: string): ChangedEntriesResult;
|
|
95
|
+
/** Every path an entry list names, both sides of a rename, sorted and de-duplicated. */
|
|
96
|
+
export declare function entryPaths(entries: ChangedEntry[]): string[];
|
|
97
|
+
/** Staged paths only (both sides of a rename), repo-root-relative — the `--staged` twin of
|
|
98
|
+
* `changedPathsSince`. */
|
|
99
|
+
export declare function changedPathsStaged(repo: string, runGit?: GitRunner, label?: string): ChangedPathsResult;
|
|
72
100
|
export interface SeedAsisResult {
|
|
73
101
|
asisPath: string;
|
|
74
102
|
gitignoreUpdated: boolean;
|
package/dist/cli/conformScope.js
CHANGED
|
@@ -126,6 +126,73 @@ export function changedPathsSince(repo, revision, runGit = realGit) {
|
|
|
126
126
|
.filter(Boolean),
|
|
127
127
|
};
|
|
128
128
|
}
|
|
129
|
+
/** Parse `git diff --name-status -M -z` output (NUL-separated: status, path[, newPath]). */
|
|
130
|
+
export function parseNameStatusZ(out) {
|
|
131
|
+
const tokens = out.split("\0");
|
|
132
|
+
const entries = [];
|
|
133
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
134
|
+
const status = tokens[i];
|
|
135
|
+
if (status === "")
|
|
136
|
+
continue;
|
|
137
|
+
const letter = status[0];
|
|
138
|
+
if (letter === "R" || letter === "C") {
|
|
139
|
+
entries.push({ status: letter, oldPath: tokens[i + 1] ?? "", path: tokens[i + 2] ?? "" });
|
|
140
|
+
i += 2;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
entries.push({ status: letter, path: tokens[i + 1] ?? "", oldPath: null });
|
|
144
|
+
i += 1;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return entries;
|
|
148
|
+
}
|
|
149
|
+
function repoRootOfDir(repo, runGit, label) {
|
|
150
|
+
const toplevel = runGit(["-C", repo, "rev-parse", "--show-toplevel"]);
|
|
151
|
+
if (toplevel.status !== 0)
|
|
152
|
+
return { ok: false, message: `${label}: ${repo} is not inside a git repository` };
|
|
153
|
+
return { ok: true, repoRoot: toplevel.stdout.trim() };
|
|
154
|
+
}
|
|
155
|
+
/** `git diff --name-status -M -z <revision>...HEAD` (merge-base form: what this branch changed
|
|
156
|
+
* since it forked from `revision`), repo-root-relative, rename-aware. */
|
|
157
|
+
export function changedEntriesSince(repo, revision, runGit = realGit, label = "em conform-scope") {
|
|
158
|
+
const top = repoRootOfDir(repo, runGit, label);
|
|
159
|
+
if (!top.ok)
|
|
160
|
+
return top;
|
|
161
|
+
const diff = runGit(["-C", top.repoRoot, "diff", "--name-status", "-M", "-z", `${revision}...HEAD`]);
|
|
162
|
+
if (diff.status !== 0) {
|
|
163
|
+
return { ok: false, message: `${label}: git diff failed: ${(diff.stderr || "").trim() || `unknown revision "${revision}"`}` };
|
|
164
|
+
}
|
|
165
|
+
return { ok: true, repoRoot: top.repoRoot, entries: parseNameStatusZ(diff.stdout) };
|
|
166
|
+
}
|
|
167
|
+
/** `git diff --cached --name-status -M -z`: what is staged right now (`--staged`). */
|
|
168
|
+
export function changedEntriesStaged(repo, runGit = realGit, label = "em conform-scope") {
|
|
169
|
+
const top = repoRootOfDir(repo, runGit, label);
|
|
170
|
+
if (!top.ok)
|
|
171
|
+
return top;
|
|
172
|
+
const diff = runGit(["-C", top.repoRoot, "diff", "--cached", "--name-status", "-M", "-z"]);
|
|
173
|
+
if (diff.status !== 0) {
|
|
174
|
+
return { ok: false, message: `${label}: git diff --cached failed: ${(diff.stderr || "").trim() || "unknown error"}` };
|
|
175
|
+
}
|
|
176
|
+
return { ok: true, repoRoot: top.repoRoot, entries: parseNameStatusZ(diff.stdout) };
|
|
177
|
+
}
|
|
178
|
+
/** Every path an entry list names, both sides of a rename, sorted and de-duplicated. */
|
|
179
|
+
export function entryPaths(entries) {
|
|
180
|
+
const set = new Set();
|
|
181
|
+
for (const e of entries) {
|
|
182
|
+
set.add(e.path);
|
|
183
|
+
if (e.oldPath !== null)
|
|
184
|
+
set.add(e.oldPath);
|
|
185
|
+
}
|
|
186
|
+
return [...set].sort();
|
|
187
|
+
}
|
|
188
|
+
/** Staged paths only (both sides of a rename), repo-root-relative — the `--staged` twin of
|
|
189
|
+
* `changedPathsSince`. */
|
|
190
|
+
export function changedPathsStaged(repo, runGit = realGit, label = "em conform-scope") {
|
|
191
|
+
const r = changedEntriesStaged(repo, runGit, label);
|
|
192
|
+
if (!r.ok)
|
|
193
|
+
return r;
|
|
194
|
+
return { ok: true, paths: entryPaths(r.entries) };
|
|
195
|
+
}
|
|
129
196
|
const ASIS_GITIGNORE_PATTERN = "*-asis.em";
|
|
130
197
|
/**
|
|
131
198
|
* `--seed-asis`: byte-copy `modelFile` to `<dirname(modelFile)>/<stem>-asis.em`, and make sure
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformScope.js","sourceRoot":"","sources":["../../src/cli/conformScope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conformScope.js","sourceRoot":"","sources":["../../src/cli/conformScope.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/coverage.d.ts
CHANGED
|
@@ -21,6 +21,15 @@ export declare const INV_TOKEN_RE: RegExp;
|
|
|
21
21
|
* section too.
|
|
22
22
|
*/
|
|
23
23
|
export declare function extractInvariantIds(body: string): string[];
|
|
24
|
+
/**
|
|
25
|
+
* MIL-265: the subset of `extractInvariantIds(body)` the doc *restates as a rule* — ids written
|
|
26
|
+
* with the declaring label `**INV-X:**` (or `**INV-X**:`) on a structural line of an ownership
|
|
27
|
+
* section. Used only by `invariants/declared-in-both` (catalog/invariantsValidate.ts): once an id
|
|
28
|
+
* moves into the model, the doc keeps citing it in its Invariants section (`- INV-ORD-1 — why /
|
|
29
|
+
* edge cases`), which `extractInvariantIds` still sees — only re-declaring it with the rule label
|
|
30
|
+
* is the duplication that hint points at. Never used for ownership or coverage.
|
|
31
|
+
*/
|
|
32
|
+
export declare function extractDeclaredInvariantLabels(body: string): string[];
|
|
24
33
|
export interface Citation {
|
|
25
34
|
/** Path relative to the `--tests <dir>` root, POSIX forward slashes — same convention
|
|
26
35
|
* walkDir() already returns. */
|
|
@@ -86,7 +95,21 @@ export interface ScopedSlice {
|
|
|
86
95
|
* has exactly one answer everywhere it's asked (MIL-207: don't fork the leniency logic per
|
|
87
96
|
* consumer). `includeReady` selects `IN_SCOPE_STATUSES_WITH_READY` over the MIL-207 default.
|
|
88
97
|
*/
|
|
89
|
-
export declare function resolveScopedSlices(model: NormalizedModel, refs: RefsResult, baseDir: string, includeReady: boolean): ScopedSlice[];
|
|
98
|
+
export declare function resolveScopedSlices(model: NormalizedModel, refs: RefsResult, baseDir: string, includeReady: boolean, onlyKey?: string): ScopedSlice[];
|
|
99
|
+
/** Result of resolving a `--slice <key>` argument (MIL-255). */
|
|
100
|
+
export interface CoverageSliceTarget {
|
|
101
|
+
/** The slice key the report is scoped to: the requested key, or — for a continuation key
|
|
102
|
+
* (MIL-208) — the ORIGINATING slice's key, since a continuation has no doc of its own. */
|
|
103
|
+
key: string;
|
|
104
|
+
/** The originating slice's key when the requested key was a continuation, else null — same
|
|
105
|
+
* field `em validate --slice-ready` reports (sliceReadyValidate.ts). */
|
|
106
|
+
continuationOf: string | null;
|
|
107
|
+
}
|
|
108
|
+
/** Resolve `--slice <key>` against the model's export keys (same convention as `em export
|
|
109
|
+
* --slice` and `em validate --slice-ready`). Null when no slice has that key — the caller turns
|
|
110
|
+
* that into an error, never an empty (vacuously passing) report. A continuation key resolves to
|
|
111
|
+
* its originating slice (MIL-208), whose doc carries the invariants. */
|
|
112
|
+
export declare function resolveCoverageSliceKey(model: NormalizedModel, refs: RefsResult, key: string): CoverageSliceTarget | null;
|
|
90
113
|
/**
|
|
91
114
|
* Assemble the full coverage report: for every slice in the model, resolve its doc-join/in-scope
|
|
92
115
|
* status (`resolveScopedSlices`), extract invariant IDs for in-scope slices, then scan `testsDir`
|
|
@@ -98,4 +121,4 @@ export declare function resolveScopedSlices(model: NormalizedModel, refs: RefsRe
|
|
|
98
121
|
* this with a `testsDir` that doesn't exist yet is safe in that case (see callers' leniency
|
|
99
122
|
* check via `resolveScopedSlices` before this).
|
|
100
123
|
*/
|
|
101
|
-
export declare function buildCoverageReport(model: NormalizedModel, refs: RefsResult, baseDir: string, testsDir: string, includeReady?: boolean): CoverageReport;
|
|
124
|
+
export declare function buildCoverageReport(model: NormalizedModel, refs: RefsResult, baseDir: string, testsDir: string, includeReady?: boolean, onlyKey?: string): CoverageReport;
|
package/dist/cli/coverage.js
CHANGED
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
// same reason, since that direction is a substring search rather than a token match.
|
|
29
29
|
import { readFileSync } from "node:fs";
|
|
30
30
|
import { join } from "node:path";
|
|
31
|
+
import { collectModelInvariants } from "../model/model.js";
|
|
32
|
+
import { continuationOf } from "../model/continuation.js";
|
|
31
33
|
import { resolveSliceDocJoin } from "../catalog/docJoin.js";
|
|
32
34
|
import { readSliceDoc } from "../catalog/readSliceDoc.js";
|
|
33
35
|
import { walkDir } from "../util/walkDir.js";
|
|
@@ -99,18 +101,49 @@ function inScopeStatuses(includeReady) {
|
|
|
99
101
|
export function extractInvariantIds(body) {
|
|
100
102
|
const seen = new Set();
|
|
101
103
|
const ids = [];
|
|
104
|
+
for (const line of ownershipStructuralLines(body)) {
|
|
105
|
+
for (const m of line.matchAll(INV_TOKEN_RE)) {
|
|
106
|
+
if (!seen.has(m[0])) {
|
|
107
|
+
seen.add(m[0]);
|
|
108
|
+
ids.push(m[0]);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return ids;
|
|
113
|
+
}
|
|
114
|
+
/** The lines `extractInvariantIds` reads: structural lines inside an ownership section. */
|
|
115
|
+
function ownershipStructuralLines(body) {
|
|
116
|
+
const out = [];
|
|
102
117
|
let inOwnershipSection = false;
|
|
103
118
|
for (const line of body.split(/\r?\n/)) {
|
|
104
119
|
if (/^#{1,2}\s/.test(line)) {
|
|
105
120
|
inOwnershipSection = OWNERSHIP_HEADING_RE.test(line);
|
|
106
121
|
continue;
|
|
107
122
|
}
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
123
|
+
if (inOwnershipSection && STRUCTURAL_LINE_RE.test(line))
|
|
124
|
+
out.push(line);
|
|
125
|
+
}
|
|
126
|
+
return out;
|
|
127
|
+
}
|
|
128
|
+
/** A doc's rule-statement label for an id: `**INV-X:**` or `**INV-X**:` — the template's
|
|
129
|
+
* declaring bullet shape (`- **INV-ORD-1:** rule`). */
|
|
130
|
+
const DECLARATION_LABEL_RE = /\*\*(INV-[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)(?::\*\*|\*\*:)/g;
|
|
131
|
+
/**
|
|
132
|
+
* MIL-265: the subset of `extractInvariantIds(body)` the doc *restates as a rule* — ids written
|
|
133
|
+
* with the declaring label `**INV-X:**` (or `**INV-X**:`) on a structural line of an ownership
|
|
134
|
+
* section. Used only by `invariants/declared-in-both` (catalog/invariantsValidate.ts): once an id
|
|
135
|
+
* moves into the model, the doc keeps citing it in its Invariants section (`- INV-ORD-1 — why /
|
|
136
|
+
* edge cases`), which `extractInvariantIds` still sees — only re-declaring it with the rule label
|
|
137
|
+
* is the duplication that hint points at. Never used for ownership or coverage.
|
|
138
|
+
*/
|
|
139
|
+
export function extractDeclaredInvariantLabels(body) {
|
|
140
|
+
const seen = new Set();
|
|
141
|
+
const ids = [];
|
|
142
|
+
for (const line of ownershipStructuralLines(body)) {
|
|
143
|
+
for (const m of line.matchAll(DECLARATION_LABEL_RE)) {
|
|
144
|
+
if (!seen.has(m[1])) {
|
|
145
|
+
seen.add(m[1]);
|
|
146
|
+
ids.push(m[1]);
|
|
114
147
|
}
|
|
115
148
|
}
|
|
116
149
|
}
|
|
@@ -175,11 +208,19 @@ export function scanTestCitations(testsDir, ids) {
|
|
|
175
208
|
* has exactly one answer everywhere it's asked (MIL-207: don't fork the leniency logic per
|
|
176
209
|
* consumer). `includeReady` selects `IN_SCOPE_STATUSES_WITH_READY` over the MIL-207 default.
|
|
177
210
|
*/
|
|
178
|
-
export function resolveScopedSlices(model, refs, baseDir, includeReady) {
|
|
179
|
-
|
|
211
|
+
export function resolveScopedSlices(model, refs, baseDir, includeReady, onlyKey) {
|
|
212
|
+
// MIL-255: `--slice <key>` scopes the report to one slice, whatever its status — a slice under
|
|
213
|
+
// build is `ready-to-implement` until the merge-time flip, so the MIL-207 default (implemented
|
|
214
|
+
// only) would report `inScope: false` and check nothing, while `--include-ready` would widen to
|
|
215
|
+
// every ratified-but-unstarted slice. Scoped, both ready-to-implement and implemented count, so
|
|
216
|
+
// `--include-ready` is not needed (and is moot) alongside it. `onlyKey` must already be the
|
|
217
|
+
// RESOLVED key (see resolveCoverageSliceKey) — a continuation key never reaches this loop.
|
|
218
|
+
const scopeStatuses = inScopeStatuses(includeReady || onlyKey !== undefined);
|
|
180
219
|
const result = [];
|
|
181
220
|
model.slices.forEach((slice, i) => {
|
|
182
221
|
const key = refs.sliceKeys[i];
|
|
222
|
+
if (onlyKey !== undefined && key !== onlyKey)
|
|
223
|
+
return;
|
|
183
224
|
const { doc, continuationOf: continuationOfKey } = resolveSliceDocJoin(model, refs, slice, key, baseDir, (id) => refs.refById.get(id));
|
|
184
225
|
// MIL-208: a continuation slice (an again-view-only slice with no legacy doc of its own)
|
|
185
226
|
// has nothing of its own to cite — its invariants, if any, live in the ORIGINATING slice's
|
|
@@ -192,6 +233,19 @@ export function resolveScopedSlices(model, refs, baseDir, includeReady) {
|
|
|
192
233
|
});
|
|
193
234
|
return result;
|
|
194
235
|
}
|
|
236
|
+
/** Resolve `--slice <key>` against the model's export keys (same convention as `em export
|
|
237
|
+
* --slice` and `em validate --slice-ready`). Null when no slice has that key — the caller turns
|
|
238
|
+
* that into an error, never an empty (vacuously passing) report. A continuation key resolves to
|
|
239
|
+
* its originating slice (MIL-208), whose doc carries the invariants. */
|
|
240
|
+
export function resolveCoverageSliceKey(model, refs, key) {
|
|
241
|
+
const idx = refs.sliceKeys.indexOf(key);
|
|
242
|
+
if (idx === -1)
|
|
243
|
+
return null;
|
|
244
|
+
const continuation = continuationOf(model, refs, idx);
|
|
245
|
+
return continuation
|
|
246
|
+
? { key: continuation.sliceKey, continuationOf: continuation.sliceKey }
|
|
247
|
+
: { key, continuationOf: null };
|
|
248
|
+
}
|
|
195
249
|
/**
|
|
196
250
|
* Assemble the full coverage report: for every slice in the model, resolve its doc-join/in-scope
|
|
197
251
|
* status (`resolveScopedSlices`), extract invariant IDs for in-scope slices, then scan `testsDir`
|
|
@@ -203,19 +257,39 @@ export function resolveScopedSlices(model, refs, baseDir, includeReady) {
|
|
|
203
257
|
* this with a `testsDir` that doesn't exist yet is safe in that case (see callers' leniency
|
|
204
258
|
* check via `resolveScopedSlices` before this).
|
|
205
259
|
*/
|
|
206
|
-
export function buildCoverageReport(model, refs, baseDir, testsDir, includeReady = false) {
|
|
207
|
-
const scoped = resolveScopedSlices(model, refs, baseDir, includeReady);
|
|
260
|
+
export function buildCoverageReport(model, refs, baseDir, testsDir, includeReady = false, onlyKey) {
|
|
261
|
+
const scoped = resolveScopedSlices(model, refs, baseDir, includeReady, onlyKey);
|
|
208
262
|
const allIds = new Set();
|
|
263
|
+
// MIL-265: model-declared invariants are read first — each owned by the slice of the element
|
|
264
|
+
// that declares it, whatever any doc's prose says. Doc-body extraction is the fallback: it only
|
|
265
|
+
// contributes ids the model does not declare anywhere (so a model-declared id cited in another
|
|
266
|
+
// slice's doc never cross-credits that slice). A model with no `invariant` line takes exactly
|
|
267
|
+
// the 1.13 path below.
|
|
268
|
+
const modelIdsBySlice = new Map();
|
|
269
|
+
const modelDeclared = new Set();
|
|
270
|
+
for (const inv of collectModelInvariants(model)) {
|
|
271
|
+
modelDeclared.add(inv.id);
|
|
272
|
+
const key = refs.sliceKeys[inv.element.sliceIndex];
|
|
273
|
+
const bucket = modelIdsBySlice.get(key) ?? [];
|
|
274
|
+
if (!bucket.includes(inv.id))
|
|
275
|
+
bucket.push(inv.id);
|
|
276
|
+
modelIdsBySlice.set(key, bucket);
|
|
277
|
+
}
|
|
209
278
|
const withIds = scoped.map(({ key, status, docReason, inScope, docPath }) => {
|
|
210
279
|
let ids = [];
|
|
211
280
|
if (inScope) {
|
|
281
|
+
ids = [...(modelIdsBySlice.get(key) ?? [])];
|
|
212
282
|
// Re-derive the bound doc's key from docPath rather than assuming it's this slice's own
|
|
213
283
|
// — MIL-121's ratified cross-binding can resolve the doc to a DIFFERENT slice's doc, same
|
|
214
284
|
// re-derivation sliceReadyValidate.ts uses for Open Questions.
|
|
215
285
|
const boundKey = docPath.replace(/^slices\//, "").replace(/\.md$/, "");
|
|
216
286
|
const parsed = readSliceDoc(baseDir, boundKey);
|
|
217
|
-
if (parsed)
|
|
218
|
-
|
|
287
|
+
if (parsed) {
|
|
288
|
+
for (const id of extractInvariantIds(parsed.body)) {
|
|
289
|
+
if (!modelDeclared.has(id) && !ids.includes(id))
|
|
290
|
+
ids.push(id);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
219
293
|
}
|
|
220
294
|
for (const id of ids)
|
|
221
295
|
allIds.add(id);
|
package/dist/cli/coverage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/cli/coverage.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,8FAA8F;AAC9F,iGAAiG;AACjG,6FAA6F;AAC7F,gGAAgG;AAChG,iGAAiG;AACjG,iGAAiG;AACjG,6FAA6F;AAC7F,+FAA+F;AAC/F,sBAAsB;AACtB,EAAE;AACF,8FAA8F;AAC9F,wFAAwF;AACxF,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,wFAAwF;AACxF,EAAE;AACF,oGAAoG;AACpG,6FAA6F;AAC7F,kGAAkG;AAClG,uFAAuF;AACvF,+FAA+F;AAC/F,+FAA+F;AAC/F,8FAA8F;AAC9F,kGAAkG;AAClG,iGAAiG;AACjG,qFAAqF;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/cli/coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { NormalizedModel } from "../model/model.js";
|
|
2
|
+
import { RefsResult } from "../model/refs.js";
|
|
3
|
+
import { Diagnostic, serializeDiagnostic } from "../model/validate.js";
|
|
4
|
+
import { ContractCheckInput } from "../catalog/sliceReadyValidate.js";
|
|
5
|
+
import { EngagementFile, EngagementSliceEntry, LedgerState, LedgerRowFacts } from "./engagementFile.js";
|
|
6
|
+
/** Everything a plan/status needs about one compiled model — what both the CLI action and the
|
|
7
|
+
* MCP tool already hold after compiling (MCP parity: same input, same builder). */
|
|
8
|
+
export interface EngagementModelInput {
|
|
9
|
+
file: string;
|
|
10
|
+
model: NormalizedModel;
|
|
11
|
+
refs: RefsResult;
|
|
12
|
+
baseDir: string;
|
|
13
|
+
/** For the `--slice-ready` contract gate (MIL-238). */
|
|
14
|
+
contract: ContractCheckInput;
|
|
15
|
+
/** The unconditional `em validate` diagnostic set (compile + fs-aware checks). */
|
|
16
|
+
allDiagnostics: Diagnostic[];
|
|
17
|
+
}
|
|
18
|
+
export interface UnitIndex {
|
|
19
|
+
/** Per `model.slices` index: the unit (doc-owning slice) key it folds into. */
|
|
20
|
+
unitOfSlice: string[];
|
|
21
|
+
/** Unit keys in model order. */
|
|
22
|
+
units: string[];
|
|
23
|
+
/** Unit key -> slice index of the unit's own slice. */
|
|
24
|
+
sliceIndexOf: Map<string, number>;
|
|
25
|
+
pattern: Map<string, string>;
|
|
26
|
+
/** The unit doc's current `status:` (null: no doc / unusable frontmatter). */
|
|
27
|
+
docStatus: Map<string, string | null>;
|
|
28
|
+
}
|
|
29
|
+
export declare function buildUnitIndex(model: NormalizedModel, refs: RefsResult, baseDir: string): UnitIndex;
|
|
30
|
+
/** Direct unit-level predecessors over the non-`loops-to` edges (self-edges dropped). */
|
|
31
|
+
export declare function unitPredecessors(model: NormalizedModel, idx: UnitIndex): Map<string, Set<string>>;
|
|
32
|
+
export type Selector = {
|
|
33
|
+
kind: "slices";
|
|
34
|
+
keys: string[];
|
|
35
|
+
} | {
|
|
36
|
+
kind: "context";
|
|
37
|
+
context: string;
|
|
38
|
+
} | {
|
|
39
|
+
kind: "downstream-of";
|
|
40
|
+
ref: string;
|
|
41
|
+
};
|
|
42
|
+
export type SelectionResult = {
|
|
43
|
+
ok: true;
|
|
44
|
+
units: string[];
|
|
45
|
+
} | {
|
|
46
|
+
ok: false;
|
|
47
|
+
message: string;
|
|
48
|
+
};
|
|
49
|
+
export declare function resolveSelection(input: {
|
|
50
|
+
file: string;
|
|
51
|
+
model: NormalizedModel;
|
|
52
|
+
refs: RefsResult;
|
|
53
|
+
baseDir: string;
|
|
54
|
+
}, idx: UnitIndex, sel: Selector): SelectionResult;
|
|
55
|
+
/** Connected components of the selection, judged over the WHOLE model's non-`loops-to` unit
|
|
56
|
+
* graph (undirected): two selected slices that share an upstream (e.g. two views over one
|
|
57
|
+
* foundation event) are related; three lifecycles that never touch are three components. */
|
|
58
|
+
export declare function selectionComponents(units: string[], idx: UnitIndex, preds: Map<string, Set<string>>): string[][];
|
|
59
|
+
export declare function formatComponentsWarning(components: string[][]): string;
|
|
60
|
+
/** Ledger facts (pattern, doc status) for the derived table. */
|
|
61
|
+
export declare function ledgerFacts(idx: UnitIndex, keys: string[]): Map<string, LedgerRowFacts>;
|
|
62
|
+
/** R23: `merged` is also inferred (read-only) when the slice doc has reached `implemented`. */
|
|
63
|
+
export declare function effectiveState(entry: EngagementSliceEntry, docStatus: string | null): {
|
|
64
|
+
state: LedgerState;
|
|
65
|
+
stateInferred: boolean;
|
|
66
|
+
};
|
|
67
|
+
export interface EngagementStatusSlice {
|
|
68
|
+
key: string;
|
|
69
|
+
pattern: string;
|
|
70
|
+
docStatus: string | null;
|
|
71
|
+
state: LedgerState;
|
|
72
|
+
stateInferred: boolean;
|
|
73
|
+
heldBy: "human" | null;
|
|
74
|
+
branch: string | null;
|
|
75
|
+
base: string | null;
|
|
76
|
+
pr: string | null;
|
|
77
|
+
}
|
|
78
|
+
export interface EngagementStatus {
|
|
79
|
+
file: string;
|
|
80
|
+
engagement: string;
|
|
81
|
+
slug: string;
|
|
82
|
+
status: "open" | "closed";
|
|
83
|
+
created: string;
|
|
84
|
+
createdBy: string | null;
|
|
85
|
+
parallel: number;
|
|
86
|
+
slices: EngagementStatusSlice[];
|
|
87
|
+
counts: Record<LedgerState, number>;
|
|
88
|
+
/** R25: every slice is `merged` (recorded or inferred) or `gap`. */
|
|
89
|
+
closable: boolean;
|
|
90
|
+
}
|
|
91
|
+
export declare function buildEngagementStatus(file: string, engagementFile: string, eng: EngagementFile, idx: UnitIndex): EngagementStatus;
|
|
92
|
+
export declare function formatEngagementStatusText(s: EngagementStatus): string;
|
|
93
|
+
export declare const HOLD_REASONS: readonly ["not-ready", "upstream-outside-engagement-unmerged", "multiple-unmerged-upstreams"];
|
|
94
|
+
export type HoldReason = (typeof HOLD_REASONS)[number];
|
|
95
|
+
export interface EngagementPlanSlice {
|
|
96
|
+
key: string;
|
|
97
|
+
pattern: string;
|
|
98
|
+
docStatus: string | null;
|
|
99
|
+
ready: boolean;
|
|
100
|
+
readyDiagnostics: ReturnType<typeof serializeDiagnostic>[];
|
|
101
|
+
level: number;
|
|
102
|
+
/** Direct upstreams inside the engagement (model order). */
|
|
103
|
+
upstreams: string[];
|
|
104
|
+
branch: string;
|
|
105
|
+
/** `main`, `impl/<upstream>` (exactly one in-engagement upstream unmerged), or null (≥2). */
|
|
106
|
+
base: string | null;
|
|
107
|
+
/** The plan's own computed hold (R23) — never written to the Ledger. */
|
|
108
|
+
planHeld: HoldReason | null;
|
|
109
|
+
/** `planHeld`, else `"human"` when the Ledger records a human hold, else null. */
|
|
110
|
+
held: HoldReason | "human" | null;
|
|
111
|
+
state: LedgerState;
|
|
112
|
+
stateInferred: boolean;
|
|
113
|
+
}
|
|
114
|
+
export interface EngagementPlanLevel {
|
|
115
|
+
level: number;
|
|
116
|
+
width: number;
|
|
117
|
+
ceiling: number;
|
|
118
|
+
slices: string[];
|
|
119
|
+
}
|
|
120
|
+
export interface EngagementPlan {
|
|
121
|
+
file: string;
|
|
122
|
+
engagement: string;
|
|
123
|
+
slug: string;
|
|
124
|
+
status: "open" | "closed";
|
|
125
|
+
parallel: number;
|
|
126
|
+
levels: EngagementPlanLevel[];
|
|
127
|
+
slices: EngagementPlanSlice[];
|
|
128
|
+
}
|
|
129
|
+
export type PlanResult = {
|
|
130
|
+
ok: true;
|
|
131
|
+
plan: EngagementPlan;
|
|
132
|
+
} | {
|
|
133
|
+
ok: false;
|
|
134
|
+
message: string;
|
|
135
|
+
};
|
|
136
|
+
/** Names the engagement keys the current model no longer has as units, or null. */
|
|
137
|
+
export declare function missingKeys(eng: EngagementFile, idx: UnitIndex): string[];
|
|
138
|
+
export declare function buildEngagementPlan(input: EngagementModelInput, engagementFile: string, eng: EngagementFile, idx: UnitIndex): PlanResult;
|
|
139
|
+
export declare function formatEngagementPlanText(p: EngagementPlan): string;
|
|
140
|
+
export declare function engagementPlanFor(input: EngagementModelInput, slug: string): PlanResult;
|
|
141
|
+
export type StatusResult = {
|
|
142
|
+
ok: true;
|
|
143
|
+
status: EngagementStatus;
|
|
144
|
+
} | {
|
|
145
|
+
ok: false;
|
|
146
|
+
message: string;
|
|
147
|
+
};
|
|
148
|
+
export declare function engagementStatusFor(input: {
|
|
149
|
+
file: string;
|
|
150
|
+
model: NormalizedModel;
|
|
151
|
+
refs: RefsResult;
|
|
152
|
+
baseDir: string;
|
|
153
|
+
}, slug: string): StatusResult;
|
|
154
|
+
export declare function missingMessage(slug: string, missing: string[]): string;
|
|
155
|
+
export interface NewEngagementOptions {
|
|
156
|
+
slug: string;
|
|
157
|
+
selector: Selector;
|
|
158
|
+
parallel: number;
|
|
159
|
+
createdBy: string | null;
|
|
160
|
+
created: string;
|
|
161
|
+
}
|
|
162
|
+
export type NewResult = {
|
|
163
|
+
ok: true;
|
|
164
|
+
text: string;
|
|
165
|
+
units: string[];
|
|
166
|
+
warning: string | null;
|
|
167
|
+
} | {
|
|
168
|
+
ok: false;
|
|
169
|
+
message: string;
|
|
170
|
+
};
|
|
171
|
+
export declare function buildNewEngagement(input: {
|
|
172
|
+
file: string;
|
|
173
|
+
model: NormalizedModel;
|
|
174
|
+
refs: RefsResult;
|
|
175
|
+
baseDir: string;
|
|
176
|
+
}, opts: NewEngagementOptions): NewResult;
|
|
177
|
+
export interface SetOptions {
|
|
178
|
+
key: string;
|
|
179
|
+
state: string;
|
|
180
|
+
branch?: string;
|
|
181
|
+
base?: string;
|
|
182
|
+
pr?: string;
|
|
183
|
+
}
|
|
184
|
+
export type SetResult = {
|
|
185
|
+
ok: true;
|
|
186
|
+
changed: boolean;
|
|
187
|
+
text: string;
|
|
188
|
+
entry: EngagementSliceEntry;
|
|
189
|
+
} | {
|
|
190
|
+
ok: false;
|
|
191
|
+
message: string;
|
|
192
|
+
};
|
|
193
|
+
/** R23: any state is settable, same-state-and-fields is a no-op, `merged` is terminal, `held`
|
|
194
|
+
* records `heldBy: human`. Splices the one entry line and regenerates the Ledger region. */
|
|
195
|
+
export declare function applyEngagementSet(input: {
|
|
196
|
+
file: string;
|
|
197
|
+
model: NormalizedModel;
|
|
198
|
+
refs: RefsResult;
|
|
199
|
+
baseDir: string;
|
|
200
|
+
}, slug: string, text: string, eng: EngagementFile, opts: SetOptions): SetResult;
|
|
201
|
+
export type CloseResult = {
|
|
202
|
+
ok: true;
|
|
203
|
+
changed: boolean;
|
|
204
|
+
text: string;
|
|
205
|
+
} | {
|
|
206
|
+
ok: false;
|
|
207
|
+
message: string;
|
|
208
|
+
};
|
|
209
|
+
/** R25: closes only when every slice is merged (recorded or inferred) or gap. */
|
|
210
|
+
export declare function applyEngagementClose(slug: string, text: string, status: EngagementStatus): CloseResult;
|