@milehimikey/em 1.21.0 → 1.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/.claude/agents/em-implementer.md +10 -0
- package/.claude/agents/em-validator.md +1 -0
- package/.claude/skills/event-modeling/SKILL.md +1 -1
- package/.claude/skills/event-modeling-conform/SKILL.md +7 -4
- package/.claude/skills/event-modeling-conform/reference/conform.md +82 -4
- package/.claude/skills/event-modeling-design/SKILL.md +5 -2
- package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
- package/.claude/skills/event-modeling-engagement/SKILL.md +1 -1
- package/.claude/skills/event-modeling-engagement/reference/engagement.md +1 -0
- package/.claude/skills/event-modeling-implement/SKILL.md +5 -3
- package/.claude/skills/event-modeling-implement/reference/implement.md +14 -0
- package/.claude/skills/event-modeling-review/SKILL.md +1 -1
- package/.claude/skills/event-modeling-shared/reference/em-dsl.md +55 -6
- package/.claude/skills/event-modeling-shared/reference/operating-principles.md +26 -15
- package/.claude-plugin/marketplace.json +2 -2
- package/dist/cli/api.d.ts +136 -9
- package/dist/cli/api.js +278 -27
- package/dist/cli/api.js.map +1 -1
- package/dist/cli/bindings.d.ts +152 -0
- package/dist/cli/bindings.js +462 -0
- package/dist/cli/bindings.js.map +1 -0
- package/dist/cli/conformScope.d.ts +32 -0
- package/dist/cli/conformScope.js +68 -5
- package/dist/cli/conformScope.js.map +1 -1
- package/dist/cli/engagement.d.ts +24 -1
- package/dist/cli/engagement.js +50 -6
- package/dist/cli/engagement.js.map +1 -1
- package/dist/cli/engagementBrief.d.ts +127 -0
- package/dist/cli/engagementBrief.js +313 -0
- package/dist/cli/engagementBrief.js.map +1 -0
- package/dist/cli/engagementFile.d.ts +14 -0
- package/dist/cli/engagementFile.js +54 -0
- package/dist/cli/engagementFile.js.map +1 -1
- package/dist/cli/scopeInputs.js +2 -2
- package/dist/cli/scopeInputs.js.map +1 -1
- package/dist/cli/status.d.ts +5 -0
- package/dist/cli/status.js +1 -0
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/upgrade.js +9 -10
- package/dist/cli/upgrade.js.map +1 -1
- package/dist/cli.js +143 -11
- package/dist/cli.js.map +1 -1
- package/dist/emit/api.d.ts +26 -1
- package/dist/emit/api.js +183 -25
- package/dist/emit/api.js.map +1 -1
- package/dist/emit/apiSurfaceJson.d.ts +3 -0
- package/dist/emit/apiSurfaceJson.js +43 -0
- package/dist/emit/apiSurfaceJson.js.map +1 -0
- package/dist/emit/diffJson.d.ts +1 -1
- package/dist/emit/diffJson.js +20 -1
- package/dist/emit/diffJson.js.map +1 -1
- package/dist/emit/engagementJson.d.ts +8 -3
- package/dist/emit/engagementJson.js +31 -4
- package/dist/emit/engagementJson.js.map +1 -1
- package/dist/emit/json.d.ts +42 -1
- package/dist/emit/json.js +65 -6
- package/dist/emit/json.js.map +1 -1
- package/dist/mcp/server.js +92 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/diff.d.ts +19 -1
- package/dist/model/diff.js +99 -0
- package/dist/model/diff.js.map +1 -1
- package/dist/model/model.d.ts +105 -9
- package/dist/model/model.js +116 -20
- package/dist/model/model.js.map +1 -1
- package/dist/model/refs.d.ts +4 -0
- package/dist/model/refs.js +35 -1
- package/dist/model/refs.js.map +1 -1
- package/dist/model/rules.d.ts +61 -0
- package/dist/model/rules.js +72 -0
- package/dist/model/rules.js.map +1 -1
- package/dist/model/validate.js +137 -4
- package/dist/model/validate.js.map +1 -1
- package/dist/parser/ast.d.ts +30 -0
- package/dist/parser/parser.js +67 -1
- package/dist/parser/parser.js.map +1 -1
- package/dist/render/sliceDiagram.js +6 -0
- package/dist/render/sliceDiagram.js.map +1 -1
- package/dist/render/storylineDiagram.js +6 -0
- package/dist/render/storylineDiagram.js.map +1 -1
- package/dist/system/adaptation.d.ts +5 -2
- package/dist/system/adaptation.js +5 -3
- package/dist/system/adaptation.js.map +1 -1
- package/dist/templates.d.ts +4 -0
- package/dist/templates.js +29 -0
- package/dist/templates.js.map +1 -1
- package/package.json +2 -1
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/agents/em-implementer.md +10 -0
- package/plugin/agents/em-validator.md +1 -0
- package/plugin/shared/reference/em-dsl.md +55 -6
- package/plugin/shared/reference/operating-principles.md +26 -15
- package/plugin/skills/conform/SKILL.md +7 -4
- package/plugin/skills/conform/reference/conform.md +82 -4
- package/plugin/skills/design/SKILL.md +5 -2
- package/plugin/skills/discover/SKILL.md +1 -1
- package/plugin/skills/engagement/SKILL.md +1 -1
- package/plugin/skills/engagement/reference/engagement.md +1 -0
- package/plugin/skills/event-modeling/SKILL.md +1 -1
- package/plugin/skills/implement/SKILL.md +5 -3
- package/plugin/skills/implement/reference/implement.md +14 -0
- package/plugin/skills/review/SKILL.md +1 -1
package/dist/emit/api.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NormalizedModel } from "../model/model.js";
|
|
2
2
|
import { RefsResult } from "../model/refs.js";
|
|
3
3
|
import { Diagnostic } from "../model/validate.js";
|
|
4
|
-
import { ElementExport } from "./json.js";
|
|
4
|
+
import { ElementExport, FieldExport, TypeExport } from "./json.js";
|
|
5
5
|
/** The sentence every generated `model` carries (MIL-239 relies on it verbatim). */
|
|
6
6
|
export declare const CONSUMER_TOLERANCE_SENTENCE = "Consumers tolerate unknown fields; additive changes do not break them.";
|
|
7
7
|
export declare const API_HEADER_LINE = "// GENERATED by em api generate \u2014 do not hand-edit.";
|
|
@@ -11,6 +11,31 @@ export interface ApiContractResult {
|
|
|
11
11
|
/** Same diagnostics `buildExport` would raise for this model. */
|
|
12
12
|
diagnostics: Diagnostic[];
|
|
13
13
|
}
|
|
14
|
+
/** Declared types reachable (transitively) from any of the given elements' fields, as the set of
|
|
15
|
+
* their export refs — same walk `em api generate`'s contract body and `em api surface` (GH #448)
|
|
16
|
+
* use to decide which declared types belong on the public surface, shared so neither re-derives
|
|
17
|
+
* it with a subtly different recursion. */
|
|
18
|
+
export declare function reachableTypeRefs(elements: {
|
|
19
|
+
fields: FieldExport[] | null;
|
|
20
|
+
}[], typesByRef: Map<string, TypeExport>): Set<string>;
|
|
21
|
+
/** Declared identity scalars (GH #477) reachable from any of the given elements' fields,
|
|
22
|
+
* directly or through a reachable declared type's own fields — the scalar-namespace sibling of
|
|
23
|
+
* `reachableTypeRefs` above, same "no dead declarations" rule (#444's rule extended to GH #477):
|
|
24
|
+
* only a scalar some field on the public surface actually uses gets declared. Scalars have no
|
|
25
|
+
* fields of their own (always a leaf alias over a table entry), so there's no recursion through
|
|
26
|
+
* a scalar itself — only through the declared types `reachableTypeRefs` already walks. Shared
|
|
27
|
+
* with `em api surface` (`cli/api.ts`'s `buildApiSurfaceReport`), same reasoning as
|
|
28
|
+
* `reachableTypeRefs`. */
|
|
29
|
+
export declare function reachableScalarRefs(elements: {
|
|
30
|
+
fields: FieldExport[] | null;
|
|
31
|
+
}[], typesByRef: Map<string, TypeExport>): Set<string>;
|
|
32
|
+
/** Declared enums (GH #478) reachable from any of the given elements' fields, directly or
|
|
33
|
+
* through a reachable declared type's own fields — the enum-namespace sibling of
|
|
34
|
+
* `reachableScalarRefs` above, same "no dead declarations" rule. Enums have no fields of their
|
|
35
|
+
* own either, so there's no recursion through an enum itself. Shared with `em api surface`. */
|
|
36
|
+
export declare function reachableEnumRefs(elements: {
|
|
37
|
+
fields: FieldExport[] | null;
|
|
38
|
+
}[], typesByRef: Map<string, TypeExport>): Set<string>;
|
|
14
39
|
/** The public elements `em api` covers, in export (timeline) order. A repeated view
|
|
15
40
|
* (`view X again`) contributes its first public instance only — one logical read model,
|
|
16
41
|
* one TypeSpec declaration. Shared with `em api check` so both read the same surface. */
|
package/dist/emit/api.js
CHANGED
|
@@ -4,8 +4,12 @@
|
|
|
4
4
|
// plain `model`/`interface`/`op` declarations, core scalars only, no imports, no decorators,
|
|
5
5
|
// no `@versioned` (one release train; versions are Backlog).
|
|
6
6
|
//
|
|
7
|
-
// - public commands -> `interface Commands { op <name>(<
|
|
8
|
-
//
|
|
7
|
+
// - public commands -> `model` (payload) + `interface Commands { op <name>(payload: <Model>): void; }`
|
|
8
|
+
// (the write API; GH #445 — same payload-model shape as events/views, so field notes and
|
|
9
|
+
// `INV-*` lines ride along and the payload is decoratable by a binding file's `@@`)
|
|
10
|
+
// - public events -> `model` (async payload) + `interface Events { op on<Event>(payload): void; }`
|
|
11
|
+
// (GH #446 — one op per public event, so a binding file has a declaration to `@@channel`/
|
|
12
|
+
// `@@publish` against instead of re-stating the payload shape)
|
|
9
13
|
// - public views -> `model` + `interface Views { op get<View>(): <View>; }` (the read API)
|
|
10
14
|
// - declared `type`s reachable from any of those -> `model`
|
|
11
15
|
//
|
|
@@ -22,7 +26,7 @@
|
|
|
22
26
|
// hash (R12 amended): the text depends only on the public surface, so an internal-only `.em`
|
|
23
27
|
// edit leaves the contract byte-identical and neither CODEOWNERS routing nor the API-first
|
|
24
28
|
// gate fires on it.
|
|
25
|
-
import { resolvePublicType } from "../model/model.js";
|
|
29
|
+
import { PUBLIC_SCALAR_TYPE_NAMES, PUBLIC_SCALAR_TYPES, resolvePublicType } from "../model/model.js";
|
|
26
30
|
import { dedupe } from "../util/slug.js";
|
|
27
31
|
import { buildExportDoc } from "./json.js";
|
|
28
32
|
/** The sentence every generated `model` carries (MIL-239 relies on it verbatim). */
|
|
@@ -39,12 +43,85 @@ function pascalCase(name) {
|
|
|
39
43
|
function camelCase(pascal) {
|
|
40
44
|
return pascal.length > 0 ? pascal[0].toLowerCase() + pascal.slice(1) : pascal;
|
|
41
45
|
}
|
|
46
|
+
/** Declared types reachable (transitively) from any of the given elements' fields, as the set of
|
|
47
|
+
* their export refs — same walk `em api generate`'s contract body and `em api surface` (GH #448)
|
|
48
|
+
* use to decide which declared types belong on the public surface, shared so neither re-derives
|
|
49
|
+
* it with a subtly different recursion. */
|
|
50
|
+
export function reachableTypeRefs(elements, typesByRef) {
|
|
51
|
+
const reachable = new Set();
|
|
52
|
+
const walk = (fields) => {
|
|
53
|
+
for (const f of fields ?? []) {
|
|
54
|
+
if (f.typeRef && !reachable.has(f.typeRef.ref)) {
|
|
55
|
+
reachable.add(f.typeRef.ref);
|
|
56
|
+
walk(typesByRef.get(f.typeRef.ref)?.fields ?? null);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
for (const el of elements)
|
|
61
|
+
walk(el.fields);
|
|
62
|
+
return reachable;
|
|
63
|
+
}
|
|
64
|
+
/** Declared identity scalars (GH #477) reachable from any of the given elements' fields,
|
|
65
|
+
* directly or through a reachable declared type's own fields — the scalar-namespace sibling of
|
|
66
|
+
* `reachableTypeRefs` above, same "no dead declarations" rule (#444's rule extended to GH #477):
|
|
67
|
+
* only a scalar some field on the public surface actually uses gets declared. Scalars have no
|
|
68
|
+
* fields of their own (always a leaf alias over a table entry), so there's no recursion through
|
|
69
|
+
* a scalar itself — only through the declared types `reachableTypeRefs` already walks. Shared
|
|
70
|
+
* with `em api surface` (`cli/api.ts`'s `buildApiSurfaceReport`), same reasoning as
|
|
71
|
+
* `reachableTypeRefs`. */
|
|
72
|
+
export function reachableScalarRefs(elements, typesByRef) {
|
|
73
|
+
const reachable = new Set();
|
|
74
|
+
const seenTypes = new Set();
|
|
75
|
+
const walk = (fields) => {
|
|
76
|
+
for (const f of fields ?? []) {
|
|
77
|
+
if (f.scalarRef)
|
|
78
|
+
reachable.add(f.scalarRef.ref);
|
|
79
|
+
if (f.typeRef && !seenTypes.has(f.typeRef.ref)) {
|
|
80
|
+
seenTypes.add(f.typeRef.ref);
|
|
81
|
+
walk(typesByRef.get(f.typeRef.ref)?.fields ?? null);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
for (const el of elements)
|
|
86
|
+
walk(el.fields);
|
|
87
|
+
return reachable;
|
|
88
|
+
}
|
|
89
|
+
/** Declared enums (GH #478) reachable from any of the given elements' fields, directly or
|
|
90
|
+
* through a reachable declared type's own fields — the enum-namespace sibling of
|
|
91
|
+
* `reachableScalarRefs` above, same "no dead declarations" rule. Enums have no fields of their
|
|
92
|
+
* own either, so there's no recursion through an enum itself. Shared with `em api surface`. */
|
|
93
|
+
export function reachableEnumRefs(elements, typesByRef) {
|
|
94
|
+
const reachable = new Set();
|
|
95
|
+
const seenTypes = new Set();
|
|
96
|
+
const walk = (fields) => {
|
|
97
|
+
for (const f of fields ?? []) {
|
|
98
|
+
if (f.enumRef)
|
|
99
|
+
reachable.add(f.enumRef.ref);
|
|
100
|
+
if (f.typeRef && !seenTypes.has(f.typeRef.ref)) {
|
|
101
|
+
seenTypes.add(f.typeRef.ref);
|
|
102
|
+
walk(typesByRef.get(f.typeRef.ref)?.fields ?? null);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
for (const el of elements)
|
|
107
|
+
walk(el.fields);
|
|
108
|
+
return reachable;
|
|
109
|
+
}
|
|
42
110
|
/** A field name that isn't a bare TypeSpec identifier is backtick-quoted (TypeSpec's own escape). */
|
|
43
111
|
function fieldIdentifier(name) {
|
|
44
112
|
if (/^[A-Za-z_][A-Za-z0-9_]*$/.test(name))
|
|
45
113
|
return name;
|
|
46
114
|
return "`" + name.replace(/\\/g, "\\\\").replace(/`/g, "\\`") + "`";
|
|
47
115
|
}
|
|
116
|
+
/** GH #478: an enum member that is itself a bare TypeSpec identifier emits unquoted (`placed`);
|
|
117
|
+
* anything else — a dash, a space, a leading digit, punctuation — emits as a quoted string
|
|
118
|
+
* literal instead (`"out-of-stock"`), TypeSpec's own enum string-member form (verified against
|
|
119
|
+
* the installed @typespec/compiler; see REPORT.md's probe: `enum X { "a-b", c }` compiles).
|
|
120
|
+
* Unlike `fieldIdentifier` above, there is no backtick escape for an enum member — a non-
|
|
121
|
+
* identifier member is always a plain value, never a name that needs quoting-as-identifier. */
|
|
122
|
+
function enumMemberText(member) {
|
|
123
|
+
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(member) ? member : JSON.stringify(member);
|
|
124
|
+
}
|
|
48
125
|
// `tag`, `renamed from` and `assigned` are modeling concerns, not wire shape — carried as doc
|
|
49
126
|
// comments, never decorators (a decorator would need its own TypeSpec library).
|
|
50
127
|
function fieldNotes(f) {
|
|
@@ -119,32 +196,57 @@ export function buildApiContract(model, refs, diagnostics, source, path, sourceL
|
|
|
119
196
|
const typesByRef = new Map(doc.model.types.map((t) => [t.ref, t]));
|
|
120
197
|
const surface = publicSurfaceOf(doc.model.slices);
|
|
121
198
|
// Declared types reachable (transitively) from a public element's fields.
|
|
122
|
-
const reachable =
|
|
123
|
-
const walk = (fields) => {
|
|
124
|
-
for (const f of fields ?? []) {
|
|
125
|
-
if (f.typeRef && !reachable.has(f.typeRef.ref)) {
|
|
126
|
-
reachable.add(f.typeRef.ref);
|
|
127
|
-
walk(typesByRef.get(f.typeRef.ref)?.fields ?? null);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
for (const el of [...surface.commands, ...surface.events, ...surface.views])
|
|
132
|
-
walk(el.fields);
|
|
199
|
+
const reachable = reachableTypeRefs([...surface.commands, ...surface.events, ...surface.views], typesByRef);
|
|
133
200
|
const usedNames = new Set();
|
|
134
201
|
const typeNameByRef = new Map();
|
|
135
202
|
for (const t of doc.model.types) {
|
|
136
203
|
if (reachable.has(t.ref))
|
|
137
204
|
typeNameByRef.set(t.ref, dedupe(pascalCase(t.name), usedNames, "_"));
|
|
138
205
|
}
|
|
206
|
+
// GH #477: identity scalars reachable from the public surface, named through the SAME
|
|
207
|
+
// `usedNames` dedup set as types/events/views/commands (one TypeSpec namespace, one set of
|
|
208
|
+
// identifiers — a scalar named the same as a model/event would otherwise silently collide),
|
|
209
|
+
// allocated up front in declaration order like `typeNameByRef` above (not at first use —
|
|
210
|
+
// scalars never nest, so there's no walk-order dependency, but staying consistent with the
|
|
211
|
+
// type precedent keeps this predictable too).
|
|
212
|
+
const reachableScalars = reachableScalarRefs([...surface.commands, ...surface.events, ...surface.views], typesByRef);
|
|
213
|
+
const scalarNameByRef = new Map();
|
|
214
|
+
for (const s of doc.model.scalars) {
|
|
215
|
+
if (reachableScalars.has(s.ref))
|
|
216
|
+
scalarNameByRef.set(s.ref, dedupe(pascalCase(s.name), usedNames, "_"));
|
|
217
|
+
}
|
|
218
|
+
// GH #478: declared enums reachable from the public surface, named through the SAME
|
|
219
|
+
// `usedNames` dedup set, same allocate-up-front-in-declaration-order posture as scalars above.
|
|
220
|
+
const reachableEnums = reachableEnumRefs([...surface.commands, ...surface.events, ...surface.views], typesByRef);
|
|
221
|
+
const enumNameByRef = new Map();
|
|
222
|
+
for (const e of doc.model.enums) {
|
|
223
|
+
if (reachableEnums.has(e.ref))
|
|
224
|
+
enumNameByRef.set(e.ref, dedupe(pascalCase(e.name), usedNames, "_"));
|
|
225
|
+
}
|
|
226
|
+
// GH #444 (#443 ask 1): which table entries this contract actually uses, so the namespace
|
|
227
|
+
// declares exactly the scalars its own fields need — never a dead declaration. GH #477: an
|
|
228
|
+
// identity scalar's own base counts as "used" too (via the branch below), so the base's
|
|
229
|
+
// table scalar declaration (e.g. `Uuid`) co-emits even when no field uses the bare table type.
|
|
230
|
+
const usedScalars = new Set();
|
|
139
231
|
const fieldType = (f, owner) => {
|
|
140
232
|
if (f.typeRef) {
|
|
141
233
|
const name = typeNameByRef.get(f.typeRef.ref) ?? pascalCase(f.typeRef.name);
|
|
142
234
|
return f.typeRef.array ? `${name}[]` : name;
|
|
143
235
|
}
|
|
144
|
-
|
|
236
|
+
if (f.scalarRef) {
|
|
237
|
+
const name = scalarNameByRef.get(f.scalarRef.ref) ?? pascalCase(f.scalarRef.name);
|
|
238
|
+
usedScalars.add(f.scalarRef.base);
|
|
239
|
+
return f.scalarRef.array ? `${name}[]` : name;
|
|
240
|
+
}
|
|
241
|
+
if (f.enumRef) {
|
|
242
|
+
const name = enumNameByRef.get(f.enumRef.ref) ?? pascalCase(f.enumRef.name);
|
|
243
|
+
return f.enumRef.array ? `${name}[]` : name;
|
|
244
|
+
}
|
|
245
|
+
const r = resolvePublicType(f.type ?? undefined, model.typesByName, model.scalarsByName, model.enumsByName);
|
|
145
246
|
if (!r || r.kind !== "scalar") {
|
|
146
247
|
throw new Error(`em api generate: ${owner} field "${f.name}" has no public type — em validate's public-field-type-unresolved should have refused this model`);
|
|
147
248
|
}
|
|
249
|
+
usedScalars.add(r.scalar);
|
|
148
250
|
return r.array ? `${r.tsType}[]` : r.tsType;
|
|
149
251
|
};
|
|
150
252
|
const member = (f, owner) => `${fieldIdentifier(f.name)}${f.optional ? "?" : ""}: ${fieldType(f, owner)}`;
|
|
@@ -172,13 +274,28 @@ export function buildApiContract(model, refs, diagnostics, source, path, sourceL
|
|
|
172
274
|
}
|
|
173
275
|
if (typeBlocks.length > 0)
|
|
174
276
|
sections.push(typeBlocks.join("\n\n"));
|
|
277
|
+
// GH #446: an event op's payload reuses the exact model name chosen above for its `model`
|
|
278
|
+
// block — never re-derived — so the op always points at the declaration a binding file would
|
|
279
|
+
// `@@channel`/`@@publish` against. Op names dedupe through their own set (like `opNames` does
|
|
280
|
+
// for commands), even though in practice they can only collide if the (already-deduped) model
|
|
281
|
+
// names do too.
|
|
175
282
|
const eventBlocks = [];
|
|
283
|
+
const eventNames = [];
|
|
176
284
|
for (const el of surface.events) {
|
|
177
285
|
const name = dedupe(pascalCase(el.name), usedNames, "_");
|
|
286
|
+
eventNames.push(name);
|
|
178
287
|
eventBlocks.push(renderModel(name, el.fields, `event "${el.name}"`, elementNotes(el), invariantLines(el)));
|
|
179
288
|
}
|
|
180
289
|
if (eventBlocks.length > 0)
|
|
181
290
|
sections.push(eventBlocks.join("\n\n"));
|
|
291
|
+
const eventOpNames = new Set();
|
|
292
|
+
const eventOps = [];
|
|
293
|
+
for (const name of eventNames) {
|
|
294
|
+
const opName = dedupe(`on${name}`, eventOpNames, "_");
|
|
295
|
+
eventOps.push(`op ${opName}(payload: ${name}): void;`);
|
|
296
|
+
}
|
|
297
|
+
if (eventOps.length > 0)
|
|
298
|
+
sections.push(["interface Events {", ...indent(eventOps, 1), "}"].join("\n"));
|
|
182
299
|
const viewBlocks = [];
|
|
183
300
|
const viewOps = [];
|
|
184
301
|
for (const el of surface.views) {
|
|
@@ -190,23 +307,64 @@ export function buildApiContract(model, refs, diagnostics, source, path, sourceL
|
|
|
190
307
|
sections.push(viewBlocks.join("\n\n"));
|
|
191
308
|
sections.push(["interface Views {", ...indent(viewOps, 1), "}"].join("\n"));
|
|
192
309
|
}
|
|
310
|
+
// GH #445 (#443 ask 2): a command's payload rides the same `renderModel` path as an event's or
|
|
311
|
+
// a view's — so field notes and `INV-*` lines live on the payload model, the same home
|
|
312
|
+
// events/views already use, not the op. That is also what makes the fields decoratable at
|
|
313
|
+
// all: TypeSpec `@@` augment decorators target models and model properties, never positional
|
|
314
|
+
// op parameters.
|
|
193
315
|
const opNames = new Set();
|
|
316
|
+
const commandModelBlocks = [];
|
|
194
317
|
const commandOps = [];
|
|
195
318
|
for (const el of surface.commands) {
|
|
196
319
|
const opName = dedupe(camelCase(pascalCase(el.name)), opNames, "_");
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
commandOps.push(...invariantLines(el));
|
|
201
|
-
const params = (el.fields ?? []).map((f) => {
|
|
202
|
-
const n = fieldNotes(f);
|
|
203
|
-
const line = member(f, `command "${el.name}"`);
|
|
204
|
-
return n ? `/** ${n} */ ${line}` : line;
|
|
205
|
-
});
|
|
206
|
-
commandOps.push(`op ${opName}(${params.join(", ")}): void;`);
|
|
320
|
+
const payloadName = dedupe(pascalCase(el.name), usedNames, "_");
|
|
321
|
+
commandModelBlocks.push(renderModel(payloadName, el.fields, `command "${el.name}"`, elementNotes(el), invariantLines(el)));
|
|
322
|
+
commandOps.push(`op ${opName}(payload: ${payloadName}): void;`);
|
|
207
323
|
}
|
|
324
|
+
if (commandModelBlocks.length > 0)
|
|
325
|
+
sections.push(commandModelBlocks.join("\n\n"));
|
|
208
326
|
if (commandOps.length > 0)
|
|
209
327
|
sections.push(["interface Commands {", ...indent(commandOps, 1), "}"].join("\n"));
|
|
328
|
+
// Scalar declarations go first, in table order (not order of first use) — every field type
|
|
329
|
+
// above is already computed by this point, so `usedScalars` is complete. GH #477: identity
|
|
330
|
+
// scalars follow, in DECLARATION order, each extending either the formatted table scalar
|
|
331
|
+
// (`scalar OrderId extends Uuid;`, the table entry's own `tsType` when it has a `scalarDecl`)
|
|
332
|
+
// or the bare core type (`scalar Sku extends string;`) — `PublicTypeResolution`'s `identity`
|
|
333
|
+
// kind and `ScalarExport.base` both already resolve to the table KEY, not the TypeSpec name,
|
|
334
|
+
// so `PUBLIC_SCALAR_TYPES[s.base].tsType` is the one lookup that picks the right target either
|
|
335
|
+
// way. Pinned by test: a model declaring no `scalar` contributes nothing here — byte-identical
|
|
336
|
+
// to before GH #477.
|
|
337
|
+
const scalarDecls = [];
|
|
338
|
+
for (const name of PUBLIC_SCALAR_TYPE_NAMES) {
|
|
339
|
+
if (!usedScalars.has(name))
|
|
340
|
+
continue;
|
|
341
|
+
const decl = PUBLIC_SCALAR_TYPES[name].scalarDecl;
|
|
342
|
+
if (decl)
|
|
343
|
+
scalarDecls.push(decl);
|
|
344
|
+
}
|
|
345
|
+
for (const s of doc.model.scalars) {
|
|
346
|
+
const name = scalarNameByRef.get(s.ref);
|
|
347
|
+
if (!name)
|
|
348
|
+
continue; // not reachable from the public surface — no dead declaration
|
|
349
|
+
scalarDecls.push(`scalar ${name} extends ${PUBLIC_SCALAR_TYPES[s.base].tsType};`);
|
|
350
|
+
}
|
|
351
|
+
// GH #478: a reachable enum emits once, members in declaration order, right after the scalar
|
|
352
|
+
// declarations and ahead of the type blocks (the two unshifts below, called in this order,
|
|
353
|
+
// land the sections as [scalars, enums, types, …]). Members join on a single line like the
|
|
354
|
+
// issue's own example (`enum OrderStatus { placed, shipped }`) — joined with ", " since every
|
|
355
|
+
// member is short; a bare identifier emits unquoted, anything else as a quoted string literal
|
|
356
|
+
// (`enumMemberText`). Pinned by test: a model declaring no `enum` contributes nothing here.
|
|
357
|
+
const enumBlocks = [];
|
|
358
|
+
for (const e of doc.model.enums) {
|
|
359
|
+
const name = enumNameByRef.get(e.ref);
|
|
360
|
+
if (!name)
|
|
361
|
+
continue; // not reachable from the public surface — no dead declaration
|
|
362
|
+
enumBlocks.push(`enum ${name} { ${e.members.map(enumMemberText).join(", ")} }`);
|
|
363
|
+
}
|
|
364
|
+
if (enumBlocks.length > 0)
|
|
365
|
+
sections.unshift(enumBlocks.join("\n"));
|
|
366
|
+
if (scalarDecls.length > 0)
|
|
367
|
+
sections.unshift(scalarDecls.join("\n"));
|
|
210
368
|
const namespaceName = pascalCase(doc.model.name ?? "Model");
|
|
211
369
|
const header = [
|
|
212
370
|
API_HEADER_LINE,
|
package/dist/emit/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/emit/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/emit/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// Builds the `em api surface --json` document (GH #448) — the model's public commands, events,
|
|
3
|
+
// views and reachable declared types, as a versioned JSON document for companion tools (contract
|
|
4
|
+
// bridges, augment generators) that today re-derive this from `em export --json` and risk
|
|
5
|
+
// drifting from em's own notion of the surface. Shared by the CLI and the MCP `api_surface` tool
|
|
6
|
+
// so the two are byte-identical. Own schema constant, independent of the export `SCHEMA_VERSION`
|
|
7
|
+
// and `API_CHECK_SCHEMA_VERSION` (apiCheckJson.ts); deterministic for the same inputs (no
|
|
8
|
+
// timestamps, no absolute paths — `file` is as given on the command line, same convention
|
|
9
|
+
// `apiCheckJson.ts` follows).
|
|
10
|
+
import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
|
|
11
|
+
// 1.0 (GH #448): initial shape.
|
|
12
|
+
// 1.1 (GH #477, "identity scalars"): a field's `type` gains the `"scalar-alias"` kind — a
|
|
13
|
+
// declared `scalar Name: base` identity alias, resolved the same way `em api generate`'s
|
|
14
|
+
// emitter picks what to extend (`tsType` is the alias's own name, e.g. `"OrderId"`; `base` is
|
|
15
|
+
// the `PUBLIC_SCALAR_TYPES` key it extends, e.g. `"uuid"` — `null` on the other two kinds).
|
|
16
|
+
// Report gains top-level `scalars`: every identity scalar reachable from the public surface
|
|
17
|
+
// (same reachability `em api generate` uses to decide what to declare), `{ name, slug, base }`
|
|
18
|
+
// in declaration order — so a companion tool learns the OrderId -> uuid mapping without parsing
|
|
19
|
+
// the generated `.tsp`. Additive only.
|
|
20
|
+
// 1.2 (GH #478, "enums"): a field's `type` gains the `"enum"` kind (`tsType` is the enum's own
|
|
21
|
+
// name; `scalar`/`base` stay `null`, same convention `"scalar-alias"` already established).
|
|
22
|
+
// Report gains top-level `enums`: every declared enum reachable from the public surface (same
|
|
23
|
+
// reachability rule), `{ name, slug, members }` in declaration order — so a companion tool
|
|
24
|
+
// learns the member set without parsing the generated `.tsp`. Bumped on its own, same per-
|
|
25
|
+
// ticket cadence this file has followed since 1.0 (no "one bump per release" precedent here,
|
|
26
|
+
// unlike `em export`'s `SCHEMA_VERSION`). Additive only.
|
|
27
|
+
export const API_SURFACE_SCHEMA_VERSION = "1.2";
|
|
28
|
+
export function buildApiSurfaceJson(r) {
|
|
29
|
+
const doc = {
|
|
30
|
+
apiSurfaceSchemaVersion: API_SURFACE_SCHEMA_VERSION,
|
|
31
|
+
generator: { name: GENERATOR_NAME, version: GENERATOR_VERSION },
|
|
32
|
+
file: r.file,
|
|
33
|
+
modelKey: r.modelKey,
|
|
34
|
+
commands: r.commands,
|
|
35
|
+
events: r.events,
|
|
36
|
+
views: r.views,
|
|
37
|
+
types: r.types,
|
|
38
|
+
scalars: r.scalars,
|
|
39
|
+
enums: r.enums,
|
|
40
|
+
};
|
|
41
|
+
return JSON.stringify(doc, null, 2);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=apiSurfaceJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiSurfaceJson.js","sourceRoot":"","sources":["../../src/emit/apiSurfaceJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,+FAA+F;AAC/F,iGAAiG;AACjG,0FAA0F;AAC1F,iGAAiG;AACjG,iGAAiG;AACjG,0FAA0F;AAC1F,0FAA0F;AAC1F,8BAA8B;AAG9B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,gCAAgC;AAChC,0FAA0F;AAC1F,yFAAyF;AACzF,8FAA8F;AAC9F,4FAA4F;AAC5F,4FAA4F;AAC5F,+FAA+F;AAC/F,gGAAgG;AAChG,uCAAuC;AACvC,+FAA+F;AAC/F,4FAA4F;AAC5F,8FAA8F;AAC9F,2FAA2F;AAC3F,2FAA2F;AAC3F,6FAA6F;AAC7F,yDAAyD;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD,MAAM,UAAU,mBAAmB,CAAC,CAAmB;IACrD,MAAM,GAAG,GAAG;QACV,uBAAuB,EAAE,0BAA0B;QACnD,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/emit/diffJson.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ModelDiff } from "../model/diff.js";
|
|
2
2
|
import { Diagnostic } from "../model/validate.js";
|
|
3
|
-
export declare const DIFF_SCHEMA_VERSION = "1.
|
|
3
|
+
export declare const DIFF_SCHEMA_VERSION = "1.10";
|
|
4
4
|
/**
|
|
5
5
|
* The `## Delta` section's own vocabulary (MIL-88): four Title Case operations, matching the
|
|
6
6
|
* doc's literal `### Added`/`### Modified`/`### Removed`/`### Renamed` headings exactly — not
|
package/dist/emit/diffJson.js
CHANGED
|
@@ -23,7 +23,18 @@ import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
|
|
|
23
23
|
// field's own on `*field-added`/`*field-removed`, the new side's on the two new ChangeTypes
|
|
24
24
|
// `field-optionality-changed`/`type-field-optionality-changed`; null elsewhere). Additive-only.
|
|
25
25
|
// `event-marked-public`/`event-unmarked-public` may now carry `kind: "command"`.
|
|
26
|
-
|
|
26
|
+
// 1.9 (GH #477, "identity scalars"): three new ChangeTypes — `scalar-added`/`scalar-removed`
|
|
27
|
+
// (declared `scalar Name: base` additions/removals, `name`/`ref` populated) and
|
|
28
|
+
// `scalar-base-changed` (a surviving scalar's `base` changed, `name`/`ref` plus `oldType`/
|
|
29
|
+
// `newType` carrying the old/new base). No new fields; existing ones widen their meaning for
|
|
30
|
+
// the new types (documented on `ChangeEntry` itself). Additive-only.
|
|
31
|
+
// 1.10 (GH #478, "enums"): four new ChangeTypes — `enum-added`/`enum-removed` (declared
|
|
32
|
+
// `enum Name { member, … }` additions/removals, `name`/`ref` populated) and
|
|
33
|
+
// `enum-member-added`/`enum-member-removed` (a surviving enum's member set changed, `name`/
|
|
34
|
+
// `ref` plus the new `member` key carrying the raw member string). Bumped on its own, same
|
|
35
|
+
// per-ticket cadence `DIFF_SCHEMA_VERSION` has followed since 1.5 (unlike `em export`'s
|
|
36
|
+
// `SCHEMA_VERSION`, this file has no "one bump per release" precedent to ride). Additive-only.
|
|
37
|
+
export const DIFF_SCHEMA_VERSION = "1.10";
|
|
27
38
|
/**
|
|
28
39
|
* Coarsens every `ChangeType` onto the Delta vocabulary. A `Record<ChangeType, DeltaOp>` rather
|
|
29
40
|
* than a partial/default mapping so adding a `ChangeType` without deciding its `op` is a compile
|
|
@@ -62,6 +73,13 @@ const CHANGE_TYPE_TO_OP = {
|
|
|
62
73
|
"type-field-removed": "Removed",
|
|
63
74
|
"type-field-changed": "Modified",
|
|
64
75
|
"type-field-optionality-changed": "Modified",
|
|
76
|
+
"scalar-added": "Added",
|
|
77
|
+
"scalar-removed": "Removed",
|
|
78
|
+
"scalar-base-changed": "Modified",
|
|
79
|
+
"enum-added": "Added",
|
|
80
|
+
"enum-removed": "Removed",
|
|
81
|
+
"enum-member-added": "Modified",
|
|
82
|
+
"enum-member-removed": "Modified",
|
|
65
83
|
};
|
|
66
84
|
/** `ChangeEntry` with every optional field present, explicit `null` when unused by `type`. */
|
|
67
85
|
function serializeEntry(e) {
|
|
@@ -79,6 +97,7 @@ function serializeEntry(e) {
|
|
|
79
97
|
toSliceKey: e.toSliceKey ?? null,
|
|
80
98
|
field: e.field ?? null,
|
|
81
99
|
fieldType: e.fieldType ?? null,
|
|
100
|
+
member: e.member ?? null,
|
|
82
101
|
optional: e.optional ?? null,
|
|
83
102
|
oldType: e.oldType ?? null,
|
|
84
103
|
newType: e.newType ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffJson.js","sourceRoot":"","sources":["../../src/emit/diffJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,4EAA4E;AAC5E,mEAAmE;AACnE,4EAA4E;AAC5E,6EAA6E;AAC7E,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAsC,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAc,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,6FAA6F;AAC7F,+FAA+F;AAC/F,+FAA+F;AAC/F,gGAAgG;AAChG,mFAAmF;AACnF,yFAAyF;AACzF,+FAA+F;AAC/F,8FAA8F;AAC9F,qBAAqB;AACrB,wFAAwF;AACxF,sFAAsF;AACtF,gGAAgG;AAChG,4FAA4F;AAC5F,gGAAgG;AAChG,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,
|
|
1
|
+
{"version":3,"file":"diffJson.js","sourceRoot":"","sources":["../../src/emit/diffJson.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import type { EngagementPlan, EngagementStatus } from "../cli/engagement.js";
|
|
2
2
|
import type { FoundationCheck } from "../cli/engagementFoundation.js";
|
|
3
|
+
import type { EngagementBrief } from "../cli/engagementBrief.js";
|
|
3
4
|
/** The engagement FILE's frontmatter contract (`engagementSchemaVersion`, docs/engagement-schema.md).
|
|
4
5
|
* 1.0 (MIL-268): slug, created, createdBy, parallel, status, slices[{key, state, branch, base, pr, heldBy?}].
|
|
5
6
|
* 1.1 (GH #241): optional `tracking` — the engagement-level ticket key or URL. A 1.0 file still reads.
|
|
6
|
-
* 1.2 (GH #334): optional `prTitle` — the PR title template (`{key}`, `{slice}`). 1.0 and 1.1 files still read.
|
|
7
|
-
|
|
7
|
+
* 1.2 (GH #334): optional `prTitle` — the PR title template (`{key}`, `{slice}`). 1.0 and 1.1 files still read.
|
|
8
|
+
* 1.3 (GH #455): optional `context` — a list of repo-relative paths to documents an implementer
|
|
9
|
+
* needs beyond the slice doc (constitution, NFR docs, ADRs). 1.0, 1.1 and 1.2 files still read. */
|
|
10
|
+
export declare const ENGAGEMENT_SCHEMA_VERSION = "1.3";
|
|
8
11
|
/** Every `engagementSchemaVersion` this em reads; it always writes {@link ENGAGEMENT_SCHEMA_VERSION}. */
|
|
9
12
|
export declare const ENGAGEMENT_READABLE_VERSIONS: readonly string[];
|
|
10
|
-
export declare const ENGAGEMENT_PLAN_SCHEMA_VERSION = "1.
|
|
13
|
+
export declare const ENGAGEMENT_PLAN_SCHEMA_VERSION = "1.5";
|
|
11
14
|
export declare const ENGAGEMENT_STATUS_SCHEMA_VERSION = "1.1";
|
|
12
15
|
export declare function buildEngagementPlanJson(plan: EngagementPlan): string;
|
|
13
16
|
export declare const ENGAGEMENT_FOUNDATION_SCHEMA_VERSION = "1.0";
|
|
14
17
|
export declare function buildEngagementFoundationJson(file: string, slug: string, check: FoundationCheck): string;
|
|
18
|
+
export declare const ENGAGEMENT_BRIEF_SCHEMA_VERSION = "1.0";
|
|
19
|
+
export declare function buildEngagementBriefJson(brief: EngagementBrief): string;
|
|
15
20
|
export declare function buildEngagementStatusJson(status: EngagementStatus): string;
|
|
@@ -8,10 +8,12 @@ import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
|
|
|
8
8
|
/** The engagement FILE's frontmatter contract (`engagementSchemaVersion`, docs/engagement-schema.md).
|
|
9
9
|
* 1.0 (MIL-268): slug, created, createdBy, parallel, status, slices[{key, state, branch, base, pr, heldBy?}].
|
|
10
10
|
* 1.1 (GH #241): optional `tracking` — the engagement-level ticket key or URL. A 1.0 file still reads.
|
|
11
|
-
* 1.2 (GH #334): optional `prTitle` — the PR title template (`{key}`, `{slice}`). 1.0 and 1.1 files still read.
|
|
12
|
-
|
|
11
|
+
* 1.2 (GH #334): optional `prTitle` — the PR title template (`{key}`, `{slice}`). 1.0 and 1.1 files still read.
|
|
12
|
+
* 1.3 (GH #455): optional `context` — a list of repo-relative paths to documents an implementer
|
|
13
|
+
* needs beyond the slice doc (constitution, NFR docs, ADRs). 1.0, 1.1 and 1.2 files still read. */
|
|
14
|
+
export const ENGAGEMENT_SCHEMA_VERSION = "1.3";
|
|
13
15
|
/** Every `engagementSchemaVersion` this em reads; it always writes {@link ENGAGEMENT_SCHEMA_VERSION}. */
|
|
14
|
-
export const ENGAGEMENT_READABLE_VERSIONS = ["1.0", "1.1", "1.2"];
|
|
16
|
+
export const ENGAGEMENT_READABLE_VERSIONS = ["1.0", "1.1", "1.2", "1.3"];
|
|
15
17
|
// 1.0 (MIL-268): initial shape.
|
|
16
18
|
// 1.1 (GH #241): additive `tracking` on the document and on each slice.
|
|
17
19
|
// 1.2 (GH #239): additive `preflight: [{ kind, subject, slices, message }]` — the model-wide gaps
|
|
@@ -22,7 +24,10 @@ export const ENGAGEMENT_READABLE_VERSIONS = ["1.0", "1.1", "1.2"];
|
|
|
22
24
|
// 1.4 (GH #334): additive `prTitle` on the document (the engagement's template, or `null`) and on
|
|
23
25
|
// each slice (the resolved PR title the implementer is handed), and a `preflight[].kind:
|
|
24
26
|
// "pr-title-fallback"` per keyless slice whose `{key}` template fell back to the default.
|
|
25
|
-
|
|
27
|
+
// 1.5 (GH #455): additive `context` on the document — the engagement's repo-relative document
|
|
28
|
+
// paths, `[]` when absent — and a `preflight[].kind: "context-missing"` per context path that
|
|
29
|
+
// does not exist on disk at plan time.
|
|
30
|
+
export const ENGAGEMENT_PLAN_SCHEMA_VERSION = "1.5";
|
|
26
31
|
// 1.0 (MIL-268): initial shape.
|
|
27
32
|
// 1.1 (GH #241): additive `tracking` on the document and on each slice.
|
|
28
33
|
export const ENGAGEMENT_STATUS_SCHEMA_VERSION = "1.1";
|
|
@@ -37,6 +42,7 @@ export function buildEngagementPlanJson(plan) {
|
|
|
37
42
|
parallel: plan.parallel,
|
|
38
43
|
tracking: plan.tracking,
|
|
39
44
|
prTitle: plan.prTitle,
|
|
45
|
+
context: plan.context,
|
|
40
46
|
levels: plan.levels,
|
|
41
47
|
slices: plan.slices,
|
|
42
48
|
preflight: plan.preflight,
|
|
@@ -63,6 +69,27 @@ export function buildEngagementFoundationJson(file, slug, check) {
|
|
|
63
69
|
};
|
|
64
70
|
return JSON.stringify(doc, null, 2);
|
|
65
71
|
}
|
|
72
|
+
// 1.0 (GH #454): `{ engagementBriefSchemaVersion, generator, file, engagement, slug,
|
|
73
|
+
// inlineContext, slices[{ key, sliceName, pattern, docStatus, tracking, prTitle, branch, base,
|
|
74
|
+
// ledgerState, ledgerBranch, ledgerBase, ledgerPr, doc: { found, path, content }, fallbackElements,
|
|
75
|
+
// modelContext: { consumes, produces, neighborUnits, repeatedViews }, contract: { publicTouching,
|
|
76
|
+
// contractPath, publicElements }, definitionOfDone: { invariantIds, scenarioTitles, bindingsPath,
|
|
77
|
+
// bindingsExample, conformCheckCommand, isolationNote, prTitle }, context[{ path, inline, content,
|
|
78
|
+
// missing }] }] }` — one brief per engagement slice (model/Ledger order), `slices` has exactly one
|
|
79
|
+
// entry when `--slice` narrowed it. The MCP `engagement_brief` tool returns the same document.
|
|
80
|
+
export const ENGAGEMENT_BRIEF_SCHEMA_VERSION = "1.0";
|
|
81
|
+
export function buildEngagementBriefJson(brief) {
|
|
82
|
+
const doc = {
|
|
83
|
+
engagementBriefSchemaVersion: ENGAGEMENT_BRIEF_SCHEMA_VERSION,
|
|
84
|
+
generator: { name: GENERATOR_NAME, version: GENERATOR_VERSION },
|
|
85
|
+
file: brief.file,
|
|
86
|
+
engagement: brief.engagement,
|
|
87
|
+
slug: brief.slug,
|
|
88
|
+
inlineContext: brief.inlineContext,
|
|
89
|
+
slices: brief.slices,
|
|
90
|
+
};
|
|
91
|
+
return JSON.stringify(doc, null, 2);
|
|
92
|
+
}
|
|
66
93
|
export function buildEngagementStatusJson(status) {
|
|
67
94
|
const doc = {
|
|
68
95
|
engagementStatusSchemaVersion: ENGAGEMENT_STATUS_SCHEMA_VERSION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engagementJson.js","sourceRoot":"","sources":["../../src/emit/engagementJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,6FAA6F;AAC7F,gFAAgF;AAChF,+FAA+F;AAC/F,gGAAgG;AAChG,mFAAmF;
|
|
1
|
+
{"version":3,"file":"engagementJson.js","sourceRoot":"","sources":["../../src/emit/engagementJson.ts"],"names":[],"mappings":"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"}
|