@milehimikey/em 1.15.0 → 1.16.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.
Files changed (92) hide show
  1. package/.claude/agents/em-implementer.md +12 -2
  2. package/.claude/agents/em-validator.md +2 -1
  3. package/.claude/skills/event-modeling/SKILL.md +1 -1
  4. package/.claude/skills/event-modeling-conform/SKILL.md +1 -1
  5. package/.claude/skills/event-modeling-design/SKILL.md +1 -1
  6. package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
  7. package/.claude/skills/event-modeling-engagement/SKILL.md +9 -5
  8. package/.claude/skills/event-modeling-engagement/reference/engagement.md +8 -0
  9. package/.claude/skills/event-modeling-implement/SKILL.md +3 -3
  10. package/.claude/skills/event-modeling-implement/reference/implement.md +18 -8
  11. package/.claude/skills/event-modeling-review/SKILL.md +1 -1
  12. package/.claude/skills/event-modeling-shared/reference/em-dsl.md +6 -3
  13. package/.claude/skills/event-modeling-shared/reference/slice-doc-schema.md +12 -1
  14. package/.claude-plugin/marketplace.json +2 -2
  15. package/dist/catalog/deferQueue.d.ts +20 -0
  16. package/dist/catalog/deferQueue.js +63 -0
  17. package/dist/catalog/deferQueue.js.map +1 -0
  18. package/dist/catalog/docJoin.d.ts +5 -0
  19. package/dist/catalog/docJoin.js +6 -3
  20. package/dist/catalog/docJoin.js.map +1 -1
  21. package/dist/catalog/docModelConsistencyValidate.js +4 -8
  22. package/dist/catalog/docModelConsistencyValidate.js.map +1 -1
  23. package/dist/catalog/sliceDoc.d.ts +3 -3
  24. package/dist/catalog/sliceDoc.js +3 -3
  25. package/dist/catalog/sliceDoc.js.map +1 -1
  26. package/dist/catalog/sliceReadyValidate.js +7 -1
  27. package/dist/catalog/sliceReadyValidate.js.map +1 -1
  28. package/dist/catalog/sliceSections.d.ts +5 -0
  29. package/dist/catalog/sliceSections.js +11 -2
  30. package/dist/catalog/sliceSections.js.map +1 -1
  31. package/dist/cli/defer.d.ts +45 -0
  32. package/dist/cli/defer.js +162 -10
  33. package/dist/cli/defer.js.map +1 -1
  34. package/dist/cli/engagement.d.ts +13 -0
  35. package/dist/cli/engagement.js +31 -11
  36. package/dist/cli/engagement.js.map +1 -1
  37. package/dist/cli/engagementFile.d.ts +2 -0
  38. package/dist/cli/engagementFile.js +5 -3
  39. package/dist/cli/engagementFile.js.map +1 -1
  40. package/dist/cli/markImplemented.d.ts +4 -1
  41. package/dist/cli/markImplemented.js +10 -5
  42. package/dist/cli/markImplemented.js.map +1 -1
  43. package/dist/cli/revise.d.ts +13 -3
  44. package/dist/cli/revise.js +33 -11
  45. package/dist/cli/revise.js.map +1 -1
  46. package/dist/cli/status.d.ts +22 -6
  47. package/dist/cli/status.js +52 -15
  48. package/dist/cli/status.js.map +1 -1
  49. package/dist/cli/upgrade.js +10 -8
  50. package/dist/cli/upgrade.js.map +1 -1
  51. package/dist/cli.js +65 -15
  52. package/dist/cli.js.map +1 -1
  53. package/dist/emit/engagementJson.d.ts +7 -4
  54. package/dist/emit/engagementJson.js +11 -4
  55. package/dist/emit/engagementJson.js.map +1 -1
  56. package/dist/emit/json.d.ts +1 -1
  57. package/dist/emit/json.js +6 -5
  58. package/dist/emit/json.js.map +1 -1
  59. package/dist/emit/statusJson.d.ts +1 -1
  60. package/dist/emit/statusJson.js +3 -1
  61. package/dist/emit/statusJson.js.map +1 -1
  62. package/dist/model/continuation.d.ts +11 -1
  63. package/dist/model/continuation.js +29 -0
  64. package/dist/model/continuation.js.map +1 -1
  65. package/dist/model/resolveSlice.d.ts +19 -0
  66. package/dist/model/resolveSlice.js +69 -0
  67. package/dist/model/resolveSlice.js.map +1 -0
  68. package/dist/model/sliceDocIndex.d.ts +2 -0
  69. package/dist/model/sliceDocIndex.js +4 -3
  70. package/dist/model/sliceDocIndex.js.map +1 -1
  71. package/dist/model/validate.js +5 -2
  72. package/dist/model/validate.js.map +1 -1
  73. package/dist/parser/parser.js +55 -1
  74. package/dist/parser/parser.js.map +1 -1
  75. package/dist/render/watch.d.ts +2 -2
  76. package/dist/render/watch.js +9 -5
  77. package/dist/render/watch.js.map +1 -1
  78. package/package.json +2 -2
  79. package/plugin/.claude-plugin/plugin.json +2 -2
  80. package/plugin/agents/em-implementer.md +12 -2
  81. package/plugin/agents/em-validator.md +2 -1
  82. package/plugin/shared/reference/em-dsl.md +6 -3
  83. package/plugin/shared/reference/slice-doc-schema.md +12 -1
  84. package/plugin/skills/conform/SKILL.md +1 -1
  85. package/plugin/skills/design/SKILL.md +1 -1
  86. package/plugin/skills/discover/SKILL.md +1 -1
  87. package/plugin/skills/engagement/SKILL.md +9 -5
  88. package/plugin/skills/engagement/reference/engagement.md +8 -0
  89. package/plugin/skills/event-modeling/SKILL.md +1 -1
  90. package/plugin/skills/implement/SKILL.md +3 -3
  91. package/plugin/skills/implement/reference/implement.md +18 -8
  92. package/plugin/skills/review/SKILL.md +1 -1
@@ -1,8 +1,11 @@
1
1
  import type { EngagementPlan, EngagementStatus } from "../cli/engagement.js";
2
2
  /** The engagement FILE's frontmatter contract (`engagementSchemaVersion`, docs/engagement-schema.md).
3
- * 1.0 (MIL-268): slug, created, createdBy, parallel, status, slices[{key, state, branch, base, pr, heldBy?}]. */
4
- export declare const ENGAGEMENT_SCHEMA_VERSION = "1.0";
5
- export declare const ENGAGEMENT_PLAN_SCHEMA_VERSION = "1.0";
6
- export declare const ENGAGEMENT_STATUS_SCHEMA_VERSION = "1.0";
3
+ * 1.0 (MIL-268): slug, created, createdBy, parallel, status, slices[{key, state, branch, base, pr, heldBy?}].
4
+ * 1.1 (GH #241): optional `tracking` — the engagement-level ticket key or URL. A 1.0 file still reads. */
5
+ export declare const ENGAGEMENT_SCHEMA_VERSION = "1.1";
6
+ /** Every `engagementSchemaVersion` this em reads; it always writes {@link ENGAGEMENT_SCHEMA_VERSION}. */
7
+ export declare const ENGAGEMENT_READABLE_VERSIONS: readonly string[];
8
+ export declare const ENGAGEMENT_PLAN_SCHEMA_VERSION = "1.1";
9
+ export declare const ENGAGEMENT_STATUS_SCHEMA_VERSION = "1.1";
7
10
  export declare function buildEngagementPlanJson(plan: EngagementPlan): string;
8
11
  export declare function buildEngagementStatusJson(status: EngagementStatus): string;
@@ -6,12 +6,17 @@
6
6
  // it), no timestamps: byte-identical for the same model, docs and engagement file.
7
7
  import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
8
8
  /** The engagement FILE's frontmatter contract (`engagementSchemaVersion`, docs/engagement-schema.md).
9
- * 1.0 (MIL-268): slug, created, createdBy, parallel, status, slices[{key, state, branch, base, pr, heldBy?}]. */
10
- export const ENGAGEMENT_SCHEMA_VERSION = "1.0";
9
+ * 1.0 (MIL-268): slug, created, createdBy, parallel, status, slices[{key, state, branch, base, pr, heldBy?}].
10
+ * 1.1 (GH #241): optional `tracking` — the engagement-level ticket key or URL. A 1.0 file still reads. */
11
+ export const ENGAGEMENT_SCHEMA_VERSION = "1.1";
12
+ /** Every `engagementSchemaVersion` this em reads; it always writes {@link ENGAGEMENT_SCHEMA_VERSION}. */
13
+ export const ENGAGEMENT_READABLE_VERSIONS = ["1.0", "1.1"];
11
14
  // 1.0 (MIL-268): initial shape.
12
- export const ENGAGEMENT_PLAN_SCHEMA_VERSION = "1.0";
15
+ // 1.1 (GH #241): additive `tracking` on the document and on each slice.
16
+ export const ENGAGEMENT_PLAN_SCHEMA_VERSION = "1.1";
13
17
  // 1.0 (MIL-268): initial shape.
14
- export const ENGAGEMENT_STATUS_SCHEMA_VERSION = "1.0";
18
+ // 1.1 (GH #241): additive `tracking` on the document and on each slice.
19
+ export const ENGAGEMENT_STATUS_SCHEMA_VERSION = "1.1";
15
20
  export function buildEngagementPlanJson(plan) {
16
21
  const doc = {
17
22
  engagementPlanSchemaVersion: ENGAGEMENT_PLAN_SCHEMA_VERSION,
@@ -21,6 +26,7 @@ export function buildEngagementPlanJson(plan) {
21
26
  slug: plan.slug,
22
27
  status: plan.status,
23
28
  parallel: plan.parallel,
29
+ tracking: plan.tracking,
24
30
  levels: plan.levels,
25
31
  slices: plan.slices,
26
32
  };
@@ -37,6 +43,7 @@ export function buildEngagementStatusJson(status) {
37
43
  created: status.created,
38
44
  createdBy: status.createdBy,
39
45
  parallel: status.parallel,
46
+ tracking: status.tracking,
40
47
  slices: status.slices,
41
48
  counts: status.counts,
42
49
  closable: status.closable,
@@ -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;AAGnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D;kHACkH;AAClH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C,gCAAgC;AAChC,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAEpD,gCAAgC;AAChC,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAEtD,MAAM,UAAU,uBAAuB,CAAC,IAAoB;IAC1D,MAAM,GAAG,GAAG;QACV,2BAA2B,EAAE,8BAA8B;QAC3D,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAwB;IAChE,MAAM,GAAG,GAAG;QACV,6BAA6B,EAAE,gCAAgC;QAC/D,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
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;AAGnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D;;2GAE2G;AAC3G,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C,yGAAyG;AACzG,MAAM,CAAC,MAAM,4BAA4B,GAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE9E,gCAAgC;AAChC,wEAAwE;AACxE,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAEpD,gCAAgC;AAChC,wEAAwE;AACxE,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAEtD,MAAM,UAAU,uBAAuB,CAAC,IAAoB;IAC1D,MAAM,GAAG,GAAG;QACV,2BAA2B,EAAE,8BAA8B;QAC3D,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAwB;IAChE,MAAM,GAAG,GAAG;QACV,6BAA6B,EAAE,gCAAgC;QAC/D,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
@@ -4,7 +4,7 @@ import { RefsResult } from "../model/refs.js";
4
4
  import { EdgeSource } from "../model/edges.js";
5
5
  export declare const GENERATOR_NAME = "@milehimikey/em";
6
6
  export declare const GENERATOR_VERSION: string;
7
- export declare const SCHEMA_VERSION = "1.16";
7
+ export declare const SCHEMA_VERSION = "1.17";
8
8
  export interface ExportResult {
9
9
  /** Pretty-printed JSON, no trailing newline. */
10
10
  text: string;
package/dist/emit/json.js CHANGED
@@ -11,6 +11,7 @@ import { createHash } from "node:crypto";
11
11
  import { dirname, join } from "node:path";
12
12
  import { fileURLToPath } from "node:url";
13
13
  import { readFileSync } from "node:fs";
14
+ import { againInstancesOf } from "../model/continuation.js";
14
15
  import { collectTags, resolveByName, resolveTypeRef } from "../model/model.js";
15
16
  import { serializeDiagnostic } from "../model/validate.js";
16
17
  import { computeModelKey } from "../model/qualifiedRef.js";
@@ -157,7 +158,10 @@ export const GENERATOR_VERSION = JSON.parse(readFileSync(join(dirname(fileURLToP
157
158
  // slice can be `status: draft` again (its next version open) while `shipped` names v<N>.
158
159
  // `driftSignal` reads the same record (`unpropagated-delta` = `version` past `shipped.version`).
159
160
  // Additive-only.
160
- export const SCHEMA_VERSION = "1.16";
161
+ // 1.17 (GH #236): `slice.doc.queuedForNext: number` — the questions `em slice defer` queued in
162
+ // `.event-modeling.md` for `<key>@v<version + 1>` because the doc is ratified/shipped and its body
163
+ // must not change (always present; 0 when none, no state file, or no doc). Additive-only.
164
+ export const SCHEMA_VERSION = "1.17";
161
165
  /**
162
166
  * Export a single field, additively: `name`/`type` are exactly what today's consumers already
163
167
  * see. `typeRef` is the new, purely-additive key — non-null only when `type` (bare or `[]`-
@@ -279,10 +283,7 @@ export function buildExportDoc(model, refs, diagnostics, source, path) {
279
283
  const seen = new Set();
280
284
  const result = [];
281
285
  for (const originEl of originViews) {
282
- const followers = model.elements
283
- .filter((other) => other.kind === "view" && other.again === true && other.logicalId === originEl.id)
284
- .sort((a, b) => a.sliceIndex - b.sliceIndex);
285
- for (const follower of followers) {
286
+ for (const follower of againInstancesOf(model, originEl)) {
286
287
  const atSlice = sliceKeys[follower.sliceIndex];
287
288
  for (const name of follower.from ?? []) {
288
289
  const ref = refOf(resolveByName(model.byName, name));
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/emit/json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/emit/json.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { StatusReport } from "../cli/status.js";
2
- export declare const STATUS_SCHEMA_VERSION = "1.9";
2
+ export declare const STATUS_SCHEMA_VERSION = "1.10";
3
3
  /** Build the `em status <files...> --json` document. Pretty-printed (2-space), no trailing
4
4
  * newline — the caller adds it, same convention as buildCoverageJson/buildLedgerJson. No
5
5
  * timestamps or other non-deterministic fields: byte-identical for the same models/git state
@@ -49,7 +49,9 @@ import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
49
49
  // 1.9 (MIL-283): `slices.byStatus.shipped` — slices with a shipped record (`shippedVersion:`, or a
50
50
  // pre-1.15 `status: implemented`) in any working status; `implemented` stays the working-status
51
51
  // count. Conformance scope (`unruledFindings`) and `slicePRsBehindHead` key on the shipped record.
52
- export const STATUS_SCHEMA_VERSION = "1.9";
52
+ // 1.10 (GH #236): `issues.queuedQuestions` — questions `em slice defer` queued in
53
+ // `.event-modeling.md` for a ratified/shipped slice's next version (docs/cli.md#em-slice-defer).
54
+ export const STATUS_SCHEMA_VERSION = "1.10";
53
55
  /** Build the `em status <files...> --json` document. Pretty-printed (2-space), no trailing
54
56
  * newline — the caller adds it, same convention as buildCoverageJson/buildLedgerJson. No
55
57
  * timestamps or other non-deterministic fields: byte-identical for the same models/git state
@@ -1 +1 @@
1
- {"version":3,"file":"statusJson.js","sourceRoot":"","sources":["../../src/emit/statusJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,0FAA0F;AAC1F,uFAAuF;AACvF,2FAA2F;AAC3F,4FAA4F;AAC5F,6FAA6F;AAC7F,mFAAmF;AAGnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,gCAAgC;AAChC,yFAAyF;AACzF,8FAA8F;AAC9F,6FAA6F;AAC7F,2FAA2F;AAC3F,6EAA6E;AAC7E,8FAA8F;AAC9F,+FAA+F;AAC/F,iGAAiG;AACjG,+EAA+E;AAC/E,yFAAyF;AACzF,6FAA6F;AAC7F,8FAA8F;AAC9F,mEAAmE;AACnE,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,6FAA6F;AAC7F,6EAA6E;AAC7E,mGAAmG;AACnG,yFAAyF;AACzF,+FAA+F;AAC/F,4FAA4F;AAC5F,kDAAkD;AAClD,+FAA+F;AAC/F,0FAA0F;AAC1F,gGAAgG;AAChG,+FAA+F;AAC/F,0FAA0F;AAC1F,0FAA0F;AAC1F,uBAAuB;AACvB,0FAA0F;AAC1F,gGAAgG;AAChG,gGAAgG;AAChG,6FAA6F;AAC7F,sFAAsF;AACtF,8FAA8F;AAC9F,iFAAiF;AACjF,mGAAmG;AACnG,gGAAgG;AAChG,mGAAmG;AACnG,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;mDAGmD;AACnD,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,GAAG,GAAG;QACV,mBAAmB,EAAE,qBAAqB;QAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,wFAAwF;QACxF,0FAA0F;QAC1F,yEAAyE;QACzE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1F,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"statusJson.js","sourceRoot":"","sources":["../../src/emit/statusJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,0FAA0F;AAC1F,uFAAuF;AACvF,2FAA2F;AAC3F,4FAA4F;AAC5F,6FAA6F;AAC7F,mFAAmF;AAGnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,gCAAgC;AAChC,yFAAyF;AACzF,8FAA8F;AAC9F,6FAA6F;AAC7F,2FAA2F;AAC3F,6EAA6E;AAC7E,8FAA8F;AAC9F,+FAA+F;AAC/F,iGAAiG;AACjG,+EAA+E;AAC/E,yFAAyF;AACzF,6FAA6F;AAC7F,8FAA8F;AAC9F,mEAAmE;AACnE,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,6FAA6F;AAC7F,6EAA6E;AAC7E,mGAAmG;AACnG,yFAAyF;AACzF,+FAA+F;AAC/F,4FAA4F;AAC5F,kDAAkD;AAClD,+FAA+F;AAC/F,0FAA0F;AAC1F,gGAAgG;AAChG,+FAA+F;AAC/F,0FAA0F;AAC1F,0FAA0F;AAC1F,uBAAuB;AACvB,0FAA0F;AAC1F,gGAAgG;AAChG,gGAAgG;AAChG,6FAA6F;AAC7F,sFAAsF;AACtF,8FAA8F;AAC9F,iFAAiF;AACjF,mGAAmG;AACnG,gGAAgG;AAChG,mGAAmG;AACnG,kFAAkF;AAClF,iGAAiG;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C;;;mDAGmD;AACnD,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,GAAG,GAAG;QACV,mBAAmB,EAAE,qBAAqB;QAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,wFAAwF;QACxF,0FAA0F;QAC1F,yEAAyE;QACzE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1F,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { NormalizedModel } from "./model.js";
1
+ import { Element, NormalizedModel } from "./model.js";
2
2
  import { RefsResult } from "./refs.js";
3
3
  export interface ContinuationInfo {
4
4
  /** Export key of the slice holding the originating (first) declaration of the repeated view. */
@@ -21,3 +21,13 @@ export interface ContinuationInfo {
21
21
  * one originating slice, and document order is the only deterministic tie-break available.
22
22
  */
23
23
  export declare function continuationOf(model: NormalizedModel, refs: RefsResult, sliceIndex: number): ContinuationInfo | null;
24
+ /** Every `again` instance of the read model `origin` (an originating, non-`again` view), in
25
+ * timeline order (`sliceIndex` ascending). The one place "which instances belong to this
26
+ * view" is answered, shared by `em export`'s `alsoReads` and validate's view-field source
27
+ * check (MIL-286) so the two can't drift. */
28
+ export declare function againInstancesOf(model: NormalizedModel, origin: Element): Element[];
29
+ /** The `from` event names a read model reads across ALL its instances — the originating
30
+ * instance first, then each `again` instance in timeline order, deduped by normalized name.
31
+ * `view` may be any instance. Instances are one logical view (MIL-208) and each lists only
32
+ * the NEW events landing at that point, so a view's sources are the union. */
33
+ export declare function viewSourceNames(model: NormalizedModel, view: Element): string[];
@@ -14,6 +14,7 @@
14
14
  // file, keeps today's behavior — see docJoin.ts/rules.ts) is layered on TOP of this predicate
15
15
  // by each consumer, never folded in here: this module has no filesystem access and no opinion
16
16
  // about docs at all.
17
+ import { normalizeName } from "./model.js";
17
18
  /**
18
19
  * A slice at `sliceIndex` is a continuation iff every non-`ui` element it declares is a `view`
19
20
  * with `again === true`, and it declares at least one element at all. Anything else (a command,
@@ -46,4 +47,32 @@ export function continuationOf(model, refs, sliceIndex) {
46
47
  viewLogicalId: firstAgainView.logicalId,
47
48
  };
48
49
  }
50
+ /** Every `again` instance of the read model `origin` (an originating, non-`again` view), in
51
+ * timeline order (`sliceIndex` ascending). The one place "which instances belong to this
52
+ * view" is answered, shared by `em export`'s `alsoReads` and validate's view-field source
53
+ * check (MIL-286) so the two can't drift. */
54
+ export function againInstancesOf(model, origin) {
55
+ return model.elements
56
+ .filter((el) => el.kind === "view" && el.again === true && el.logicalId === origin.id)
57
+ .sort((a, b) => a.sliceIndex - b.sliceIndex);
58
+ }
59
+ /** The `from` event names a read model reads across ALL its instances — the originating
60
+ * instance first, then each `again` instance in timeline order, deduped by normalized name.
61
+ * `view` may be any instance. Instances are one logical view (MIL-208) and each lists only
62
+ * the NEW events landing at that point, so a view's sources are the union. */
63
+ export function viewSourceNames(model, view) {
64
+ const origin = model.byId.get(view.logicalId) ?? view;
65
+ const names = [];
66
+ const seen = new Set();
67
+ for (const inst of [origin, ...againInstancesOf(model, origin)]) {
68
+ for (const name of inst.from ?? []) {
69
+ const key = normalizeName(name);
70
+ if (seen.has(key))
71
+ continue;
72
+ seen.add(key);
73
+ names.push(name);
74
+ }
75
+ }
76
+ return names;
77
+ }
49
78
  //# sourceMappingURL=continuation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../src/model/continuation.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,6FAA6F;AAC7F,+FAA+F;AAC/F,yFAAyF;AACzF,4FAA4F;AAC5F,yFAAyF;AACzF,6FAA6F;AAC7F,6FAA6F;AAC7F,WAAW;AACX,EAAE;AACF,+FAA+F;AAC/F,sFAAsF;AACtF,6FAA6F;AAC7F,8FAA8F;AAC9F,8FAA8F;AAC9F,qBAAqB;AAerB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,KAAsB,EAAE,IAAgB,EAAE,UAAkB;IACzF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/E,sFAAsF;IACtF,4CAA4C;IAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC,CAAC,8DAA8D;IAC7F,IAAI,WAAW,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,CAAC,yHAAyH;IAEjL,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC;QAChD,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,aAAa,EAAE,cAAc,CAAC,SAAS;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../src/model/continuation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { NormalizedModel } from "./model.js";
2
+ import type { RefsResult } from "./refs.js";
3
+ export type ResolvedSlice = {
4
+ ok: true;
5
+ key: string;
6
+ index: number;
7
+ } | {
8
+ ok: false;
9
+ message: string;
10
+ };
11
+ /**
12
+ * Resolution order: exact export key; exact display name (case-insensitive, whitespace-
13
+ * normalized); a unique prefix of an export key or a display name (the input's kebab form counts
14
+ * as a candidate too, so `ORD-0001` finds `ord-0001-place-order`); an ambiguous prefix lists the
15
+ * candidates; anything else is unknown and prints the valid keys (or the nearest few on a model
16
+ * with more than 20 slices). The unknown message opens with the historic
17
+ * `no slice with export key "<input>" in this model`.
18
+ */
19
+ export declare function resolveSliceKey(model: NormalizedModel, refs: RefsResult, input: string): ResolvedSlice;
@@ -0,0 +1,69 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // GH #237: the one resolver behind every `<slice-key>` CLI argument (`em validate --slice-ready`,
3
+ // `em export --slice`, `em coverage --slice`, the `em slice` verbs, `em engagement new --slices`
4
+ // and `em engagement set`). It sits next to the export-key derivation (refs.ts's `kebabSlug(slice.name)`
5
+ // + dedupe) and never re-derives a key: it only maps what a person typed onto an existing
6
+ // `refs.sliceKeys` entry. Input-side only — everything em writes keeps the canonical export key.
7
+ import { kebabSlug } from "../util/slug.js";
8
+ /** Above this many slices an unknown key prints the nearest few instead of the whole list. */
9
+ const LIST_ALL_LIMIT = 20;
10
+ const NEAREST = 3;
11
+ const norm = (s) => s.trim().replace(/\s+/g, " ").toLowerCase();
12
+ /**
13
+ * Resolution order: exact export key; exact display name (case-insensitive, whitespace-
14
+ * normalized); a unique prefix of an export key or a display name (the input's kebab form counts
15
+ * as a candidate too, so `ORD-0001` finds `ord-0001-place-order`); an ambiguous prefix lists the
16
+ * candidates; anything else is unknown and prints the valid keys (or the nearest few on a model
17
+ * with more than 20 slices). The unknown message opens with the historic
18
+ * `no slice with export key "<input>" in this model`.
19
+ */
20
+ export function resolveSliceKey(model, refs, input) {
21
+ const exact = refs.sliceKeys.indexOf(input);
22
+ if (exact !== -1)
23
+ return { ok: true, key: input, index: exact };
24
+ const wanted = norm(input);
25
+ const names = model.slices.map((s) => norm(s.name));
26
+ const byName = names.flatMap((n, i) => (n === wanted ? [i] : []));
27
+ if (byName.length === 1)
28
+ return { ok: true, key: refs.sliceKeys[byName[0]], index: byName[0] };
29
+ if (byName.length > 1)
30
+ return ambiguous(refs, input, byName);
31
+ const kebab = /[a-z0-9]/.test(wanted) ? kebabSlug(input) : "";
32
+ if (kebab !== "") {
33
+ const hits = [];
34
+ refs.sliceKeys.forEach((key, i) => {
35
+ if (key.startsWith(wanted) || key.startsWith(kebab) || names[i].startsWith(wanted))
36
+ hits.push(i);
37
+ });
38
+ if (hits.length === 1)
39
+ return { ok: true, key: refs.sliceKeys[hits[0]], index: hits[0] };
40
+ if (hits.length > 1)
41
+ return ambiguous(refs, input, hits);
42
+ }
43
+ const head = `no slice with export key "${input}" in this model`;
44
+ if (refs.sliceKeys.length === 0)
45
+ return { ok: false, message: `${head} (the model has no slices)` };
46
+ if (refs.sliceKeys.length <= LIST_ALL_LIMIT)
47
+ return { ok: false, message: `${head} — valid keys: ${refs.sliceKeys.join(", ")}` };
48
+ const nearest = refs.sliceKeys
49
+ .map((key, i) => ({ key, d: Math.min(editDistance(kebab || wanted, key), editDistance(wanted, names[i])) }))
50
+ .sort((a, b) => a.d - b.d)
51
+ .slice(0, NEAREST)
52
+ .map((c) => c.key);
53
+ return { ok: false, message: `${head} — did you mean ${nearest.join(", ")}?` };
54
+ }
55
+ function ambiguous(refs, input, indices) {
56
+ return { ok: false, message: `slice "${input}" is ambiguous — it matches ${indices.map((i) => refs.sliceKeys[i]).join(", ")}` };
57
+ }
58
+ function editDistance(a, b) {
59
+ let prev = Array.from({ length: b.length + 1 }, (_, j) => j);
60
+ for (let i = 1; i <= a.length; i++) {
61
+ const row = [i];
62
+ for (let j = 1; j <= b.length; j++) {
63
+ row[j] = Math.min(prev[j] + 1, row[j - 1] + 1, prev[j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1));
64
+ }
65
+ prev = row;
66
+ }
67
+ return prev[b.length];
68
+ }
69
+ //# sourceMappingURL=resolveSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveSlice.js","sourceRoot":"","sources":["../../src/model/resolveSlice.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface SliceQueryDoc {
22
22
  /** MIL-283: a version of this slice has shipped (`shippedRecordOf`) — what the readers that used
23
23
  * to test `status === "implemented"` read now; false whenever `found` is false. */
24
24
  shipped: boolean;
25
+ /** GH #241: the doc's own frontmatter `tracking:` (null when absent or no usable doc). */
26
+ tracking: string | null;
25
27
  driftSignal: DriftSignalKind | null;
26
28
  /** The doc's body text (post-frontmatter), for `extractInvariantIds()` — null whenever
27
29
  * `found` is false or the frontmatter wasn't usable (nothing safe to scan). */
@@ -96,13 +96,13 @@ export function joinSliceDocFast(model, refs, slice, sliceKey, docsByKey) {
96
96
  const originatingDoc = joinSliceDocFast(model, refs, originatingSlice, continuation.sliceKey, docsByKey);
97
97
  return { ...originatingDoc, continuationOf: continuation.sliceKey };
98
98
  }
99
- return { found: false, path, reason: "no-doc-bound", status: null, implementedIn: null, shipped: false, driftSignal: null, body: null, continuationOf: null };
99
+ return { found: false, path, reason: "no-doc-bound", status: null, implementedIn: null, shipped: false, tracking: null, driftSignal: null, body: null, continuationOf: null };
100
100
  }
101
101
  const doc = docsByKey.get(sliceKey);
102
102
  if (!doc)
103
- return { found: false, path, reason: "binding-missing-file", status: null, implementedIn: null, shipped: false, driftSignal: null, body: null, continuationOf: null };
103
+ return { found: false, path, reason: "binding-missing-file", status: null, implementedIn: null, shipped: false, tracking: null, driftSignal: null, body: null, continuationOf: null };
104
104
  if (!hasUsableFrontmatter(doc)) {
105
- return { found: true, path, reason: "frontmatter-invalid", status: null, implementedIn: null, shipped: false, driftSignal: null, body: null, continuationOf: null };
105
+ return { found: true, path, reason: "frontmatter-invalid", status: null, implementedIn: null, shipped: false, tracking: null, driftSignal: null, body: null, continuationOf: null };
106
106
  }
107
107
  return foundDoc(path, doc);
108
108
  }
@@ -114,6 +114,7 @@ function foundDoc(path, doc) {
114
114
  status: doc.status,
115
115
  implementedIn: doc.implementedIn,
116
116
  shipped: shippedRecordOf(doc) !== null,
117
+ tracking: doc.tracking,
117
118
  driftSignal: classifyImplementationDrift(doc),
118
119
  body: doc.body,
119
120
  continuationOf: null,
@@ -1 +1 @@
1
- {"version":3,"file":"sliceDocIndex.js","sourceRoot":"","sources":["../../src/model/sliceDocIndex.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,qFAAqF;AACrF,8FAA8F;AAC9F,4EAA4E;AAC5E,4FAA4F;AAC5F,gGAAgG;AAChG,+FAA+F;AAC/F,0FAA0F;AAC1F,4FAA4F;AAC5F,gGAAgG;AAChG,2CAA2C;AAC3C,EAAE;AACF,0FAA0F;AAC1F,2FAA2F;AAC3F,+FAA+F;AAC/F,cAAc;AAEd,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAY,oBAAoB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,2BAA2B,EAAmB,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;mGACmG;AACnG,MAAM,qBAAqB,GAAG,mCAAmC,CAAC;AAElE;;;;;4EAK4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,6FAA6F;QAC7F,wFAAwF;QACxF,wFAAwF;QACxF,mFAAmF;QACnF,wFAAwF;QACxF,qBAAqB;QACrB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;gBAAE,SAAS;QAClE,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,2FAA2F;QAC7F,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA0BD;;;;0EAI0E;AAC1E,MAAM,UAAU,gBAAgB,CAC9B,KAAsB,EACtB,IAAgB,EAChB,KAAY,EACZ,QAAgB,EAChB,SAAgC;IAEhC,MAAM,IAAI,GAAG,UAAU,QAAQ,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAEjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,SAAS;YACvB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,QAAQ,KAAK,QAAQ;gBAAE,SAAS;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACnF,OAAO,QAAQ,CAAC,UAAU,QAAQ,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QACD,2FAA2F;QAC3F,wFAAwF;QACxF,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACzG,OAAO,EAAE,GAAG,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAChK,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAChL,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IACtK,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAa;IAC3C,OAAO;QACL,KAAK,EAAE,IAAI;QACX,IAAI;QACJ,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI;QACtC,WAAW,EAAE,2BAA2B,CAAC,GAAG,CAAC;QAC7C,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,cAAc,EAAE,IAAI;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sliceDocIndex.js","sourceRoot":"","sources":["../../src/model/sliceDocIndex.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  import { AUTOMATION_KINDS } from "../parser/ast.js";
4
4
  import { collectModelInvariants, collectTags, MODEL_INVARIANT_ID_RE, PUBLIC_SCALAR_TYPE_NAMES, normalizeName, resolvePublicType, resolveTypeRef, } from "./model.js";
5
5
  import { pushDiag } from "./rules.js";
6
+ import { viewSourceNames } from "./continuation.js";
6
7
  import { connectionKind, resolveLoopsToTarget } from "./edges.js";
7
8
  import { kebabSlug } from "../util/slug.js";
8
9
  /** A GitHub user (`@alice`) or team (`@org/team`) — the shape CODEOWNERS accepts. */
@@ -107,7 +108,9 @@ export function validate(model, grid, refs) {
107
108
  // model's own record that the field is computed from which events have landed, not
108
109
  // copied from a single source event's payload.
109
110
  if (view.fields && view.fields.length > 0) {
110
- const fromNames = view.from ?? [];
111
+ // Instances of a repeated read model are one logical view (MIL-286): its sources are
112
+ // the union of `from` across the originating instance and every `again` instance.
113
+ const fromNames = viewSourceNames(model, view);
111
114
  const sourceEvents = [];
112
115
  for (const src of fromNames) {
113
116
  const bucket = model.byName.get(normalizeName(src)) ?? [];
@@ -140,7 +143,7 @@ export function validate(model, grid, refs) {
140
143
  }
141
144
  // `derived from "Event A", "Event B"` (view fields only, MIL-200): the traced form
142
145
  // still checks something — every named event must resolve among the view's ACTUAL
143
- // sources, its `from` names, or (for a `from`-less view) the events in its own slice.
146
+ // sources, its `from` names across every instance, or (for a `from`-less view) the events in its own slice.
144
147
  // Independent of `sourcesDeclareFields` above: this checks event *names*, not field
145
148
  // completeness, so it applies whether or not the sources declare `{ fields }`.
146
149
  const actualSourceEvents = fromNames.length > 0 ? sourceEvents : events;