@milehimikey/em 1.21.0 → 1.22.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.
Files changed (73) hide show
  1. package/.claude/agents/em-implementer.md +10 -0
  2. package/.claude/agents/em-validator.md +1 -0
  3. package/.claude/skills/event-modeling/SKILL.md +1 -1
  4. package/.claude/skills/event-modeling-conform/SKILL.md +7 -4
  5. package/.claude/skills/event-modeling-conform/reference/conform.md +82 -4
  6. package/.claude/skills/event-modeling-design/SKILL.md +1 -1
  7. package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
  8. package/.claude/skills/event-modeling-engagement/SKILL.md +1 -1
  9. package/.claude/skills/event-modeling-engagement/reference/engagement.md +1 -0
  10. package/.claude/skills/event-modeling-implement/SKILL.md +5 -3
  11. package/.claude/skills/event-modeling-implement/reference/implement.md +14 -0
  12. package/.claude/skills/event-modeling-review/SKILL.md +1 -1
  13. package/.claude/skills/event-modeling-shared/reference/em-dsl.md +19 -6
  14. package/.claude/skills/event-modeling-shared/reference/operating-principles.md +26 -15
  15. package/.claude-plugin/marketplace.json +2 -2
  16. package/dist/cli/api.d.ts +84 -0
  17. package/dist/cli/api.js +146 -15
  18. package/dist/cli/api.js.map +1 -1
  19. package/dist/cli/bindings.d.ts +152 -0
  20. package/dist/cli/bindings.js +462 -0
  21. package/dist/cli/bindings.js.map +1 -0
  22. package/dist/cli/conformScope.d.ts +32 -0
  23. package/dist/cli/conformScope.js +68 -5
  24. package/dist/cli/conformScope.js.map +1 -1
  25. package/dist/cli/engagement.d.ts +24 -1
  26. package/dist/cli/engagement.js +50 -6
  27. package/dist/cli/engagement.js.map +1 -1
  28. package/dist/cli/engagementBrief.d.ts +127 -0
  29. package/dist/cli/engagementBrief.js +313 -0
  30. package/dist/cli/engagementBrief.js.map +1 -0
  31. package/dist/cli/engagementFile.d.ts +14 -0
  32. package/dist/cli/engagementFile.js +54 -0
  33. package/dist/cli/engagementFile.js.map +1 -1
  34. package/dist/cli/status.d.ts +5 -0
  35. package/dist/cli/status.js +1 -0
  36. package/dist/cli/status.js.map +1 -1
  37. package/dist/cli/upgrade.js +9 -10
  38. package/dist/cli/upgrade.js.map +1 -1
  39. package/dist/cli.js +143 -11
  40. package/dist/cli.js.map +1 -1
  41. package/dist/emit/api.d.ts +8 -1
  42. package/dist/emit/api.js +68 -24
  43. package/dist/emit/api.js.map +1 -1
  44. package/dist/emit/apiSurfaceJson.d.ts +3 -0
  45. package/dist/emit/apiSurfaceJson.js +26 -0
  46. package/dist/emit/apiSurfaceJson.js.map +1 -0
  47. package/dist/emit/engagementJson.d.ts +8 -3
  48. package/dist/emit/engagementJson.js +31 -4
  49. package/dist/emit/engagementJson.js.map +1 -1
  50. package/dist/mcp/server.js +91 -3
  51. package/dist/mcp/server.js.map +1 -1
  52. package/dist/model/model.d.ts +17 -5
  53. package/dist/model/model.js +18 -17
  54. package/dist/model/model.js.map +1 -1
  55. package/dist/templates.d.ts +4 -0
  56. package/dist/templates.js +29 -0
  57. package/dist/templates.js.map +1 -1
  58. package/package.json +1 -1
  59. package/plugin/.claude-plugin/plugin.json +2 -2
  60. package/plugin/agents/em-implementer.md +10 -0
  61. package/plugin/agents/em-validator.md +1 -0
  62. package/plugin/shared/reference/em-dsl.md +19 -6
  63. package/plugin/shared/reference/operating-principles.md +26 -15
  64. package/plugin/skills/conform/SKILL.md +7 -4
  65. package/plugin/skills/conform/reference/conform.md +82 -4
  66. package/plugin/skills/design/SKILL.md +1 -1
  67. package/plugin/skills/discover/SKILL.md +1 -1
  68. package/plugin/skills/engagement/SKILL.md +1 -1
  69. package/plugin/skills/engagement/reference/engagement.md +1 -0
  70. package/plugin/skills/event-modeling/SKILL.md +1 -1
  71. package/plugin/skills/implement/SKILL.md +5 -3
  72. package/plugin/skills/implement/reference/implement.md +14 -0
  73. package/plugin/skills/review/SKILL.md +1 -1
package/dist/cli/api.js CHANGED
@@ -1,17 +1,20 @@
1
1
  // SPDX-License-Identifier: MIT
2
- // `em api generate | check` (MIL-237): the contract path convention (briefing R6), the
3
- // "is the committed contract current" text comparison, and the structural public-surface diff
4
- // that annotates each change additive or breaking (briefing R8/R12). Pure where it can be —
2
+ // `em api generate | check | surface` (MIL-237, GH #448): the contract path convention
3
+ // (briefing R6), the "is the committed contract current" text comparison, the structural
4
+ // public-surface diff that annotates each change additive or breaking (briefing R8/R12), and the
5
+ // public surface as a structured document for companion tools (GH #448). Pure where it can be —
5
6
  // fs/git reads go through injectable readers so the diff and the classification are unit-
6
- // testable without a repository; cli.ts and the MCP `api_check` tool share `runApiCheck`.
7
+ // testable without a repository; cli.ts and the MCP `api_check`/`api_surface` tools share
8
+ // `runApiCheck`/`runApiSurface`.
7
9
  import { existsSync, readFileSync } from "node:fs";
8
10
  import { dirname, join, relative, resolve, sep } from "node:path";
9
- import { normalizeName } from "../model/model.js";
11
+ import { normalizeName, resolvePublicType } from "../model/model.js";
10
12
  import { computeModelKey } from "../model/qualifiedRef.js";
11
13
  import { hasErrors } from "../model/validate.js";
12
- import { compile } from "../pipeline.js";
14
+ import { compile, compileModelFile } from "../pipeline.js";
15
+ import { ModelLoadError } from "../model/loadModel.js";
13
16
  import { ParseError } from "../parser/parser.js";
14
- import { buildApiContract, publicSurfaceOf } from "../emit/api.js";
17
+ import { buildApiContract, publicSurfaceOf, reachableTypeRefs } from "../emit/api.js";
15
18
  import { buildExportDoc } from "../emit/json.js";
16
19
  import { kebabSlug } from "../util/slug.js";
17
20
  import { realGit, resolveRevision } from "./diff-inputs.js";
@@ -231,28 +234,33 @@ export function diffSurfaces(base, head) {
231
234
  * model and compare to the committed contract file's text; (b) with `base`, compile the model
232
235
  * at that revision (`resolveRevision`) and diff the public surfaces structurally. A model
233
236
  * absent at `base` (new model) reports every public element as additive.
237
+ *
238
+ * GH #473: the HEAD side compiles through `compileModelFile` — the same storyline-aware loader
239
+ * `em api generate` uses (root plus every storyline model file it declares, GH #421) — so a
240
+ * public element declared in a storyline file is part of the surface instead of making the
241
+ * contract stale forever. `--base` has no multi-file-at-revision loader (`resolveRevision` reads
242
+ * one file at one rev); rather than silently diff a partial surface, a base revision that itself
243
+ * declares storyline files is refused.
234
244
  */
235
245
  export function runApiCheck(file, base, runGit = realGit) {
236
- let source;
237
- try {
238
- source = readFileSync(file, "utf8");
239
- }
240
- catch {
246
+ if (!existsSync(file)) {
241
247
  return { ok: false, message: `em api check: cannot read ${file}`, diagnostics: [] };
242
248
  }
243
249
  let head;
244
250
  try {
245
- head = compile(source);
251
+ head = compileModelFile(file);
246
252
  }
247
253
  catch (e) {
248
254
  if (e instanceof ParseError)
249
255
  return { ok: false, message: `em api check: parse error in ${file} ${e.message}`, diagnostics: [] };
256
+ if (e instanceof ModelLoadError)
257
+ return { ok: false, message: `em api check: ${e.message}`, diagnostics: [] };
250
258
  throw e;
251
259
  }
252
260
  if (hasErrors(head.diagnostics)) {
253
261
  return { ok: false, message: "em api check: not checking — fix the errors above", diagnostics: head.diagnostics };
254
262
  }
255
- const generated = generateContract(file, source, head);
263
+ const generated = generateContract(file, head.source, head);
256
264
  const missing = !existsSync(generated.contractPath);
257
265
  const current = !missing && readFileSync(generated.contractPath, "utf8") === generated.text;
258
266
  let changes = [];
@@ -265,7 +273,7 @@ export function runApiCheck(file, base, runGit = realGit) {
265
273
  if (verify.status !== 0) {
266
274
  return { ok: false, message: `em api check: unknown revision "${base}" (needed for --base)`, diagnostics: head.diagnostics };
267
275
  }
268
- const headDoc = buildExportDoc(head.model, head.refs, head.diagnostics, source, file).doc;
276
+ const headDoc = buildExportDoc(head.model, head.refs, head.diagnostics, head.source, file).doc;
269
277
  const headSurface = surfaceOf(headDoc.model.slices, headDoc.model.types);
270
278
  const atBase = resolveRevision(file, base, runGit);
271
279
  let baseSurface = null;
@@ -280,6 +288,16 @@ export function runApiCheck(file, base, runGit = realGit) {
280
288
  }
281
289
  throw e;
282
290
  }
291
+ // GH #473: resolveRevision reads one file at one revision — there is no multi-file-at-
292
+ // revision loader yet. A base root that itself declares storyline files would silently
293
+ // diff a surface missing every element those files carry, so refuse loudly instead.
294
+ if ((baseCompiled.model.storylines ?? []).some((st) => st.file !== undefined)) {
295
+ return {
296
+ ok: false,
297
+ message: "em api check: --base does not yet support storyline models (the base revision's storyline files cannot be loaded) — see GH #475",
298
+ diagnostics: head.diagnostics,
299
+ };
300
+ }
283
301
  // Base-side validate errors (e.g. a pre-1.14 free-text public type) do not block the
284
302
  // structural diff — the diff reads shapes, not strictness.
285
303
  const baseDoc = buildExportDoc(baseCompiled.model, baseCompiled.refs, baseCompiled.diagnostics, atBase.content, file).doc;
@@ -315,4 +333,117 @@ export function formatApiCheckText(r) {
315
333
  }
316
334
  return lines;
317
335
  }
336
+ /** Resolve one field's public type exactly as `em api generate`'s own `fieldType()` does
337
+ * (emit/api.ts) — declared types win (same precedence `resolvePublicType` already gives), else
338
+ * the fixed scalar table. A model with errors never reaches here (both CLI callers refuse
339
+ * first), so an unresolved type is a programming error, not a user-facing case — same posture
340
+ * as `buildApiContract`'s own throw. */
341
+ function surfaceFieldType(f, typesByName, owner) {
342
+ const r = resolvePublicType(f.type ?? undefined, typesByName);
343
+ if (!r) {
344
+ throw new Error(`em api surface: ${owner} field "${f.name}" has no public type — em validate's ` +
345
+ "public-field-type-unresolved should have refused this model");
346
+ }
347
+ return r.kind === "scalar"
348
+ ? { kind: "scalar", scalar: r.scalar, tsType: r.tsType, array: r.array }
349
+ : { kind: "declared", scalar: null, tsType: r.typeDecl.name, array: r.array };
350
+ }
351
+ function surfaceField(f, typesByName, owner) {
352
+ return {
353
+ name: f.name,
354
+ type: surfaceFieldType(f, typesByName, owner),
355
+ optional: f.optional,
356
+ tag: f.tag,
357
+ assigned: f.assigned,
358
+ renamedFrom: f.renamedFrom,
359
+ };
360
+ }
361
+ function surfaceElement(el, typesByName) {
362
+ return {
363
+ name: el.name,
364
+ slug: kebabSlug(el.name),
365
+ fields: (el.fields ?? []).map((f) => surfaceField(f, typesByName, `${el.kind} "${el.name}"`)),
366
+ invariants: el.invariants ?? null,
367
+ };
368
+ }
369
+ /**
370
+ * Build the `em api surface` report for an already-validated (error-free) model: the `public`
371
+ * commands/events/views (`publicSurfaceOf`, same as `em api generate`/`em api check`) plus every
372
+ * declared type reachable from their fields (`reachableTypeRefs`, same walk `em api generate`'s
373
+ * contract body uses), each field's type resolved through `resolvePublicType` — the one notion
374
+ * of the public surface every em surface shares, so a companion tool never re-derives it from
375
+ * `em export --json` and risks drifting from it.
376
+ */
377
+ export function buildApiSurfaceReport(model, refs, diagnostics, source, file) {
378
+ const { doc } = buildExportDoc(model, refs, diagnostics, source, file);
379
+ const surface = publicSurfaceOf(doc.model.slices);
380
+ const typesByRef = new Map(doc.model.types.map((t) => [t.ref, t]));
381
+ const reachable = reachableTypeRefs([...surface.commands, ...surface.events, ...surface.views], typesByRef);
382
+ return {
383
+ file,
384
+ modelKey: doc.model.key,
385
+ commands: surface.commands.map((el) => surfaceElement(el, model.typesByName)),
386
+ events: surface.events.map((el) => surfaceElement(el, model.typesByName)),
387
+ views: surface.views.map((el) => surfaceElement(el, model.typesByName)),
388
+ types: doc.model.types
389
+ .filter((t) => reachable.has(t.ref))
390
+ .map((t) => ({
391
+ name: t.name,
392
+ slug: kebabSlug(t.name),
393
+ fields: t.fields.map((f) => surfaceField(f, model.typesByName, `type "${t.name}"`)),
394
+ })),
395
+ };
396
+ }
397
+ /**
398
+ * Run `em api surface <file>`: compile, refuse on errors (same posture as `em api generate` —
399
+ * `public-field-type-unresolved` included), build the report. Self-contained (reads + compiles
400
+ * `file` itself) so the MCP `api_surface` tool can call it with just a path, same shape as
401
+ * `runApiCheck`.
402
+ *
403
+ * GH #473: compiles through `compileModelFile` (storyline-aware, GH #421) — a single-file
404
+ * `compile()` here silently omitted every public element declared in a storyline file.
405
+ */
406
+ export function runApiSurface(file) {
407
+ if (!existsSync(file)) {
408
+ return { ok: false, message: `em api surface: cannot read ${file}`, diagnostics: [] };
409
+ }
410
+ let compiled;
411
+ try {
412
+ compiled = compileModelFile(file);
413
+ }
414
+ catch (e) {
415
+ if (e instanceof ParseError) {
416
+ return { ok: false, message: `em api surface: parse error in ${file} ${e.message}`, diagnostics: [] };
417
+ }
418
+ if (e instanceof ModelLoadError) {
419
+ return { ok: false, message: `em api surface: ${e.message}`, diagnostics: [] };
420
+ }
421
+ throw e;
422
+ }
423
+ if (hasErrors(compiled.diagnostics)) {
424
+ return { ok: false, message: "em api surface: not generating — fix the errors above", diagnostics: compiled.diagnostics };
425
+ }
426
+ const report = buildApiSurfaceReport(compiled.model, compiled.refs, compiled.diagnostics, compiled.source, file);
427
+ return { ok: true, report, diagnostics: compiled.diagnostics };
428
+ }
429
+ /** The text listing: one line per command/event/view/type, with its field count. */
430
+ export function formatApiSurfaceText(r) {
431
+ const lines = [`model ${r.modelKey} (${r.file})`];
432
+ const fieldCount = (n) => `${n} field${n === 1 ? "" : "s"}`;
433
+ const section = (label, elements) => {
434
+ if (elements.length === 0)
435
+ return;
436
+ lines.push(`${label}:`);
437
+ for (const el of elements)
438
+ lines.push(` ${el.slug} (${fieldCount(el.fields.length)})`);
439
+ };
440
+ section("commands", r.commands);
441
+ section("events", r.events);
442
+ section("views", r.views);
443
+ section("types", r.types);
444
+ if (r.commands.length === 0 && r.events.length === 0 && r.views.length === 0 && r.types.length === 0) {
445
+ lines.push("(no public surface)");
446
+ }
447
+ return lines;
448
+ }
318
449
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/cli/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/cli/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import type { RefsResult } from "../model/refs.js";
2
+ /** The bindings-file schema version `em` writes expectations against. There is no writer in
3
+ * `em` itself (the file contract is hand-authored, or written by any other tool) — this is
4
+ * purely what `parseBindingsFile` accepts. */
5
+ export declare const BINDINGS_SCHEMA_VERSION = "1.0";
6
+ /** Where every per-slice bindings file lives, relative to the model's own directory. */
7
+ export declare const BINDINGS_DIR = "conformance/bindings";
8
+ /** The conventional path for one slice's bindings file, relative to the model directory. */
9
+ export declare function bindingsFilePath(sliceKey: string): string;
10
+ export interface BindingSite {
11
+ /** Repo-relative path (resolved against `--repo`, never absolutized here). */
12
+ file: string;
13
+ /** Plain substring to search for in `file` — never parsed as code. */
14
+ identifier: string;
15
+ }
16
+ export interface BindingElement extends BindingSite {
17
+ /** `<kind>.<slug>`, e.g. `event.order-placed` — bare, no `<sliceKey>/` prefix. */
18
+ ref: string;
19
+ note: string | null;
20
+ }
21
+ export interface BindingInvariant {
22
+ /** An `INV-*` token, same grammar as src/catalog/invTokens.ts's `INV_TOKEN_RE` (not
23
+ * cross-checked against a slice doc here — that's `em validate`'s/`em coverage`'s job; this
24
+ * module only shape-checks the token itself). */
25
+ id: string;
26
+ enforcedIn: BindingSite;
27
+ testedIn: BindingSite;
28
+ }
29
+ export interface BindingsFile {
30
+ bindingsSchemaVersion: string;
31
+ /** The slice export key this file binds — must equal the file's own name stem. */
32
+ slice: string;
33
+ elements: BindingElement[];
34
+ invariants: BindingInvariant[];
35
+ }
36
+ export type ParseBindingsResult = {
37
+ ok: true;
38
+ doc: BindingsFile;
39
+ } | {
40
+ ok: false;
41
+ errors: string[];
42
+ };
43
+ /**
44
+ * Shape-validate a bindings file's YAML text. `expectedSlice`, when given, is the slice key the
45
+ * file's NAME says it binds (`conformance/bindings/<expectedSlice>.yaml`) — a `slice:` field
46
+ * disagreeing with it is a shape error, since "per-slice, named by the file" is the convention
47
+ * the whole scheme (parallel slice PRs never touching the same file) depends on. Never throws;
48
+ * every problem is a `"line N: ..."`-prefixed string (no line for a document-level problem),
49
+ * document-level issues first, then one entry at a time — same error style
50
+ * src/system/manifest.ts's `parseManifest` uses for the sibling `system.yaml` contract.
51
+ */
52
+ export declare function parseBindingsFile(text: string, expectedSlice?: string): ParseBindingsResult;
53
+ export declare const BINDINGS_CHECK_SCHEMA_VERSION = "1.0";
54
+ export interface SiteCheck extends BindingSite {
55
+ fileExists: boolean;
56
+ identifierFound: boolean;
57
+ ok: boolean;
58
+ }
59
+ export interface ElementCheck {
60
+ ref: string;
61
+ file: string;
62
+ identifier: string;
63
+ note: string | null;
64
+ /** False when `ref` isn't among the compiled model's own element refs for this slice — the
65
+ * file/identifier are never even looked at in that case (`fileExists`/`identifierFound` stay
66
+ * `null`), since there is nothing in the model to anchor the check to. */
67
+ knownRef: boolean;
68
+ fileExists: boolean | null;
69
+ identifierFound: boolean | null;
70
+ ok: boolean;
71
+ }
72
+ export interface InvariantCheck {
73
+ id: string;
74
+ enforcedIn: SiteCheck;
75
+ testedIn: SiteCheck;
76
+ ok: boolean;
77
+ }
78
+ /** One bindings file's check outcome. `malformed`/`missing`/`unknown-slice` are distinct failure
79
+ * KINDS (GH #449): a shape problem in the YAML, no file at the conventional path, or a `slice:`
80
+ * naming a key the compiled model doesn't have (a renamed/removed slice left an orphaned
81
+ * bindings file behind). Only `checked` carries `elements`/`invariants`. */
82
+ export type BindingsFileResult = {
83
+ path: string;
84
+ slice: string;
85
+ kind: "missing";
86
+ ok: false;
87
+ errors: string[];
88
+ elements: [];
89
+ invariants: [];
90
+ } | {
91
+ path: string;
92
+ slice: string;
93
+ kind: "malformed";
94
+ ok: false;
95
+ errors: string[];
96
+ elements: [];
97
+ invariants: [];
98
+ } | {
99
+ path: string;
100
+ slice: string;
101
+ kind: "unknown-slice";
102
+ ok: false;
103
+ errors: string[];
104
+ elements: [];
105
+ invariants: [];
106
+ } | {
107
+ path: string;
108
+ slice: string;
109
+ kind: "checked";
110
+ ok: boolean;
111
+ errors: [];
112
+ elements: ElementCheck[];
113
+ invariants: InvariantCheck[];
114
+ };
115
+ export interface BindingsCheckSummary {
116
+ filesChecked: number;
117
+ filesOk: number;
118
+ filesFailed: number;
119
+ elementsChecked: number;
120
+ elementsOk: number;
121
+ elementsFailed: number;
122
+ invariantsChecked: number;
123
+ invariantsOk: number;
124
+ invariantsFailed: number;
125
+ }
126
+ export interface BindingsCheckRunResult {
127
+ ok: boolean;
128
+ /** The `--slice` key given, or `null` when every `conformance/bindings/*.yaml` was scanned. */
129
+ slice: string | null;
130
+ files: BindingsFileResult[];
131
+ summary: BindingsCheckSummary;
132
+ }
133
+ /** Every `<slice-key>` with a `conformance/bindings/<slice-key>.yaml` beside the model, sorted —
134
+ * deterministic file order for both the text report and `--json`. `[]` when the directory
135
+ * doesn't exist (bindings are opt-in; no files yet is not an error). */
136
+ export declare function listBindingsSliceKeys(modelDir: string): string[];
137
+ /**
138
+ * `em conform bindings check <model.em> --repo <path> [--slice <key>]`'s core: with `sliceKey`,
139
+ * checks exactly that one `conformance/bindings/<sliceKey>.yaml` (reporting `missing` rather than
140
+ * an empty result when it doesn't exist — the caller asked for this one, by name); without it,
141
+ * checks every bindings file present (an empty `files` list, `ok: true`, when none exist yet —
142
+ * bindings are opt-in). `modelDir` is the model's own directory (`dirname(<model>.em)`, the same
143
+ * convention every doc/note/conformance path in `em` uses); `repoDir` is `--repo`, resolved as
144
+ * given (never required to be a git repository — this check never shells out to git).
145
+ */
146
+ export declare function runBindingsCheck(refs: RefsResult, modelDir: string, repoDir: string, sliceKey?: string): BindingsCheckRunResult;
147
+ /** `em conform bindings check --json` document. Explicit nulls, deterministic key order, no
148
+ * schema field reused from any other surface. */
149
+ export declare function buildBindingsCheckJson(result: BindingsCheckRunResult): string;
150
+ /** The plain-text report `em conform bindings check` prints (no `--json`): per-binding pass/fail
151
+ * lines, then one summary line. Exported so tests can assert on it without spawning the CLI. */
152
+ export declare function renderBindingsCheckText(result: BindingsCheckRunResult): string;