@sentropic/track 0.3.0 → 0.5.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 (47) hide show
  1. package/dist/cli/index.d.ts.map +1 -1
  2. package/dist/cli/index.js +16 -5
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/events/types.d.ts +9 -0
  5. package/dist/events/types.d.ts.map +1 -1
  6. package/dist/events/validate.d.ts +5 -0
  7. package/dist/events/validate.d.ts.map +1 -1
  8. package/dist/events/validate.js +38 -0
  9. package/dist/events/validate.js.map +1 -1
  10. package/dist/ingest/contract.d.ts +10 -2
  11. package/dist/ingest/contract.d.ts.map +1 -1
  12. package/dist/ingest/contract.js +12 -3
  13. package/dist/ingest/contract.js.map +1 -1
  14. package/dist/ingest/ingest.d.ts +8 -7
  15. package/dist/ingest/ingest.d.ts.map +1 -1
  16. package/dist/ingest/ingest.js +61 -8
  17. package/dist/ingest/ingest.js.map +1 -1
  18. package/dist/ingest/map.d.ts +2 -0
  19. package/dist/ingest/map.d.ts.map +1 -1
  20. package/dist/ingest/map.js +12 -4
  21. package/dist/ingest/map.js.map +1 -1
  22. package/dist/model/blocker.d.ts +13 -2
  23. package/dist/model/blocker.d.ts.map +1 -1
  24. package/dist/model/blocker.js.map +1 -1
  25. package/dist/model/decision.d.ts +5 -0
  26. package/dist/model/decision.d.ts.map +1 -1
  27. package/dist/model/decision.js.map +1 -1
  28. package/dist/model/index.d.ts +1 -1
  29. package/dist/model/index.d.ts.map +1 -1
  30. package/dist/model/index.js.map +1 -1
  31. package/dist/model/item.d.ts +7 -1
  32. package/dist/model/item.d.ts.map +1 -1
  33. package/dist/model/item.js.map +1 -1
  34. package/dist/report/blocker-status.d.ts.map +1 -1
  35. package/dist/report/blocker-status.js +2 -1
  36. package/dist/report/blocker-status.js.map +1 -1
  37. package/dist/report/build.d.ts +4 -0
  38. package/dist/report/build.d.ts.map +1 -1
  39. package/dist/report/build.js +3 -0
  40. package/dist/report/build.js.map +1 -1
  41. package/dist/state/fold.js +11 -3
  42. package/dist/state/fold.js.map +1 -1
  43. package/dist/track.d.ts +12 -2
  44. package/dist/track.d.ts.map +1 -1
  45. package/dist/track.js +46 -8
  46. package/dist/track.js.map +1 -1
  47. package/package.json +1 -1
@@ -3,6 +3,7 @@
3
3
  // the positional argument tuple for the Track method. Pure and total: no I/O, no state, no append. The
4
4
  // application + workspace/binding authorization (which need folded state) live in `ingest` (v2.3b-2).
5
5
  import { WORK_EVENT_ENVELOPE_KEYS, WORK_EVENT_SCHEMA, } from './contract.js';
6
+ const MAX_CLIENT_TOKEN = 256;
6
7
  /** A fail-closed rejection of a malformed/illegal WorkEvent (distinct from a domain error). */
7
8
  export class IngestError extends Error {
8
9
  name = 'IngestError';
@@ -50,6 +51,10 @@ function validate(ev) {
50
51
  if (ev.v !== 1) {
51
52
  throw new IngestError(`unsupported WorkEvent contract major (expected v:1, got ${String(ev.v)})`);
52
53
  }
54
+ const clientToken = ev.clientToken;
55
+ if (clientToken !== undefined && (typeof clientToken !== 'string' || clientToken.length === 0 || clientToken.length > MAX_CLIENT_TOKEN)) {
56
+ throw new IngestError(`clientToken must be a non-empty string of at most ${MAX_CLIENT_TOKEN} chars`);
57
+ }
53
58
  const kind = ev.kind;
54
59
  const schema = WORK_EVENT_SCHEMA[kind];
55
60
  if (schema === undefined)
@@ -72,11 +77,11 @@ function validate(ev) {
72
77
  }
73
78
  checkType(kind, field, spec, v);
74
79
  }
75
- return { kind, payload };
80
+ return { kind, payload, clientToken: clientToken };
76
81
  }
77
82
  /** Validate a WorkEvent and produce its mapped Track command. Pure; throws IngestError on any violation. */
78
83
  export function mapWorkEvent(ev) {
79
- const { kind, payload: p } = validate(ev);
84
+ const { kind, payload: p, clientToken } = validate(ev);
80
85
  const { method, settles } = WORK_EVENT_SCHEMA[kind];
81
86
  const opt = (k) => (p[k] !== undefined ? { [k]: p[k] } : {});
82
87
  let args;
@@ -129,14 +134,17 @@ export function mapWorkEvent(ev) {
129
134
  break;
130
135
  case 'blocker.raise':
131
136
  // openBlocker(OpenBlockerInput) — reason defaults to '' to match the CLI (`opt(reason) ?? ''`).
137
+ // `ref` is conditional (omitted for an `extra` dep); the Track method enforces the intra/extra rules.
132
138
  args = [
133
139
  {
134
140
  targetId: p['targetId'],
135
141
  kind: p['kind'],
136
- ref: p['ref'],
142
+ ...opt('ref'),
137
143
  reason: p['reason'] ?? '',
138
144
  ...opt('resolutionRule'),
139
145
  ...opt('owner'),
146
+ ...opt('scope'),
147
+ ...opt('engagementRef'),
140
148
  },
141
149
  ];
142
150
  break;
@@ -144,6 +152,6 @@ export function mapWorkEvent(ev) {
144
152
  args = [p['blockerId']];
145
153
  break;
146
154
  }
147
- return { kind, method, settles, payload: p, args };
155
+ return { kind, method, settles, payload: p, args, ...(clientToken !== undefined ? { clientToken } : {}) };
148
156
  }
149
157
  //# sourceMappingURL=map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/ingest/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/ingest/map.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,wGAAwG;AACxG,uGAAuG;AACvG,sGAAsG;AAEtG,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAKlB,MAAM,eAAe,CAAA;AAetB,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,+FAA+F;AAC/F,MAAM,OAAO,WAAY,SAAQ,KAAK;IAClB,IAAI,GAAG,aAAa,CAAA;CACvC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,SAAS,CAAC,IAAmB,EAAE,KAAa,EAAE,IAAe,EAAE,CAAU;IAChF,MAAM,GAAG,GAAG,CAAC,IAAY,EAAS,EAAE;QAClC,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,KAAK,cAAc,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC,CAAA;IACD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,UAAU,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAW,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,KAAK,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACvG,CAAC;YACD,OAAM;QACR,KAAK,QAAQ;YACX,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;YACxE,OAAM;QACR,KAAK,UAAU;YACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBAAE,GAAG,CAAC,YAAY,CAAC,CAAA;YAClF,OAAM;QACR,KAAK,QAAQ;YACX,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,WAAW,CAAC,CAAA;YACvC,OAAM;IACV,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,SAAS,QAAQ,CAAC,EAAa;IAK7B,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,6BAA6B,CAAC,CAAA;IAC5E,uGAAuG;IACvG,2CAA2C;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAClC,IAAI,CAAE,wBAA8C,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,WAAW,CAAC,mCAAmC,GAAG,eAAe,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACpH,CAAC;IACH,CAAC;IACD,IAAK,EAAsB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,WAAW,CAAC,2DAA2D,MAAM,CAAE,EAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACxH,CAAC;IACD,MAAM,WAAW,GAAI,EAAgC,CAAC,WAAW,CAAA;IACjE,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC;QACxI,MAAM,IAAI,WAAW,CAAC,qDAAqD,gBAAgB,QAAQ,CAAC,CAAA;IACtG,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAA;IACpB,MAAM,MAAM,GAAI,iBAA+E,CAAC,IAAI,CAAC,CAAA;IACrG,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,2BAA2B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3F,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAA;IAC1B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAA;IAExF,gEAAgE;IAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,4BAA4B,GAAG,GAAG,CAAC,CAAA;IAC/F,CAAC;IACD,mCAAmC;IACnC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QACxB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,6BAA6B,KAAK,GAAG,CAAC,CAAA;YACtF,SAAQ;QACV,CAAC;QACD,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAiC,EAAE,CAAA;AAC1E,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,YAAY,CAAC,EAAa;IACxC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,GAAG,GAAG,CAAC,CAAS,EAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAE7F,IAAI,IAAwB,CAAA;IAC5B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa;YAChB,wFAAwF;YACxF,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;YACjB,MAAK;QACP,KAAK,WAAW;YACd,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7B,MAAK;QACP,KAAK,cAAc;YACjB,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7B,MAAK;QACP,KAAK,iBAAiB;YACpB,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;YACjB,MAAK;QACP,KAAK,kBAAkB;YACrB,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;YACtC,MAAK;QACP,KAAK,kBAAkB;YACrB,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACjC,MAAK;QACP,KAAK,sBAAsB;YACzB,gGAAgG;YAChG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC9D,MAAK;QACP,KAAK,sBAAsB;YACzB,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;YACpC,MAAK;QACP,KAAK,iBAAiB;YACpB,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;YAClD,MAAK;QACP,KAAK,gBAAgB;YACnB,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC1G,MAAK;QACP,KAAK,kBAAkB;YACrB,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;YACtC,MAAK;QACP,KAAK,iBAAiB;YACpB,IAAI,GAAG;gBACL,CAAC,CAAC,QAAQ,CAAC;gBACX;oBACE,iBAAiB,EAAE,CAAC,CAAC,mBAAmB,CAAC;oBACzC,eAAe,EAAE,CAAC,CAAC,iBAAiB,CAAC;oBACrC,kCAAkC,EAAE,CAAC,CAAC,oCAAoC,CAAC;oBAC3E,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC;iBACtB;aACF,CAAA;YACD,MAAK;QACP,KAAK,eAAe;YAClB,gGAAgG;YAChG,sGAAsG;YACtG,IAAI,GAAG;gBACL;oBACE,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;oBACvB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;oBACf,GAAG,GAAG,CAAC,KAAK,CAAC;oBACb,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACzB,GAAG,GAAG,CAAC,gBAAgB,CAAC;oBACxB,GAAG,GAAG,CAAC,OAAO,CAAC;oBACf,GAAG,GAAG,CAAC,OAAO,CAAC;oBACf,GAAG,GAAG,CAAC,eAAe,CAAC;iBACxB;aACF,CAAA;YACD,MAAK;QACP,KAAK,iBAAiB;YACpB,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;YACvB,MAAK;IACT,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAC3G,CAAC"}
@@ -2,14 +2,23 @@ import { type BlockerId, type ItemId } from './item.js';
2
2
  import type { ActorId } from '../events/types.js';
3
3
  export type BlockerKind = 'decision' | 'dependency';
4
4
  export type ResolutionRule = 'linked-done' | 'linked-accepted' | 'manual';
5
+ /**
6
+ * Lot A: a dependency blocker is `intra` (default — `ref` is a LOCAL item, today's behavior) or `extra`
7
+ * (a cross-repo/cross-agent dependency — `ref` is OMITTED, `engagementRef` points at an h2a ENGAGEMENT;
8
+ * resolves `manual` only, since track cannot see h2a's state). The discriminant lets a channel/consumer
9
+ * tell an internal item↔item link from an external contractual dependency.
10
+ */
11
+ export type BlockerScope = 'intra' | 'extra';
5
12
  export interface BlockerState {
6
13
  id: BlockerId;
7
14
  targetId: ItemId;
8
15
  kind: BlockerKind;
9
- ref: ItemId;
16
+ ref?: ItemId;
10
17
  reason: string;
11
18
  resolutionRule?: ResolutionRule;
12
19
  owner?: ActorId;
20
+ scope?: BlockerScope;
21
+ engagementRef?: string;
13
22
  openedAt: string;
14
23
  resolvedAt?: string;
15
24
  resolvedByEvent: boolean;
@@ -19,10 +28,12 @@ export interface BlockerOpenedPayload {
19
28
  blockerId: BlockerId;
20
29
  targetId: ItemId;
21
30
  kind: BlockerKind;
22
- ref: ItemId;
31
+ ref?: ItemId;
23
32
  reason: string;
24
33
  resolutionRule?: ResolutionRule;
25
34
  owner?: ActorId;
35
+ scope?: BlockerScope;
36
+ engagementRef?: string;
26
37
  }
27
38
  /**
28
39
  * Manual `blocker resolve` is allowed ONLY for a `manual` dependency blocker (SPEC §2.9).
@@ -1 +1 @@
1
- {"version":3,"file":"blocker.d.ts","sourceRoot":"","sources":["../../src/model/blocker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,YAAY,CAAA;AACnD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,QAAQ,CAAA;AAEzE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,SAAS,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAW/D"}
1
+ {"version":3,"file":"blocker.d.ts","sourceRoot":"","sources":["../../src/model/blocker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,YAAY,CAAA;AACnD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,QAAQ,CAAA;AACzE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAA;AAE5C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,SAAS,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAW/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"blocker.js","sourceRoot":"","sources":["../../src/model/blocker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+B,MAAM,WAAW,CAAA;AA8BpE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,WAAW,CACnB,+CAA+C,OAAO,CAAC,EAAE,wCAAwC,CAClG,CAAA;IACH,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,WAAW,CACnB,8BAA8B,OAAO,CAAC,cAAc,IAAI,aAAa,yBAAyB,OAAO,CAAC,EAAE,GAAG,CAC5G,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"blocker.js","sourceRoot":"","sources":["../../src/model/blocker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA+B,MAAM,WAAW,CAAA;AAyCpE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,WAAW,CACnB,+CAA+C,OAAO,CAAC,EAAE,wCAAwC,CAClG,CAAA;IACH,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,WAAW,CACnB,8BAA8B,OAAO,CAAC,cAAc,IAAI,aAAa,yBAAyB,OAAO,CAAC,EAAE,GAAG,CAC5G,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type Gate, type ItemId, type Link, type Realization } from './item.js';
2
+ import type { ActorId } from '../events/types.js';
2
3
  import type { PriorityAssessment } from './priority.js';
3
4
  export type DecisionKind = Gate;
4
5
  export type Outcome = 'pending' | 'go' | 'no-go' | 'deferred';
@@ -42,6 +43,8 @@ export interface DecisionState {
42
43
  sourceKey?: string;
43
44
  body?: string;
44
45
  links?: Link[];
46
+ accountable?: ActorId;
47
+ engagementRef?: string;
45
48
  }
46
49
  export interface DecisionCreatedPayload {
47
50
  decisionKind: DecisionKind;
@@ -53,6 +56,8 @@ export interface DecisionCreatedPayload {
53
56
  sourceKey?: string;
54
57
  body?: string;
55
58
  links?: Link[];
59
+ accountable?: ActorId;
60
+ engagementRef?: string;
56
61
  }
57
62
  export declare function assertOutcomeTransition(current: Outcome, to: Outcome): void;
58
63
  export declare function isSettled(outcome: Outcome): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/model/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,WAAW,EACjB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAA;AAC/B,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,CAAA;AAE7D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,2GAA2G;AAC3G,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,EAAE,EAAE,OAAO,EAAE,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED,6GAA6G;AAC7G,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;CACf;AAUD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAI3E;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEnD"}
1
+ {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/model/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,WAAW,EACjB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAA;AAC/B,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,CAAA;AAE7D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,2GAA2G;AAC3G,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,EAAE,EAAE,OAAO,EAAE,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED,6GAA6G;AAC7G,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IAGd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAUD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAI3E;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"decision.js","sourceRoot":"","sources":["../../src/model/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAKZ,MAAM,WAAW,CAAA;AA4DlB,wGAAwG;AACxG,MAAM,mBAAmB,GAA4C;IACnE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;IACzB,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,EAAE;CACZ,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,EAAW;IACnE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,WAAW,CAAC,8BAA8B,OAAO,OAAO,EAAE,EAAE,CAAC,CAAA;IACzE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,OAAO,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"decision.js","sourceRoot":"","sources":["../../src/model/decision.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAKZ,MAAM,WAAW,CAAA;AAmElB,wGAAwG;AACxG,MAAM,mBAAmB,GAA4C;IACnE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;IACzB,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,EAAE;CACZ,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,EAAW;IACnE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,WAAW,CAAC,8BAA8B,OAAO,OAAO,EAAE,EAAE,CAAC,CAAA;IACzE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,OAAO,CAAA;AAChD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { DomainError, assertRealizationTransition, assertSpecTransition, type BlockerId, type Disposition, type Gate, type ItemCreatedPayload, type ItemId, type ItemKind, type ItemState, type Link, type Realization, type RealizationCause, type SpecStatus, } from './item.js';
2
- export { assertManualResolve, type BlockerKind, type BlockerOpenedPayload, type BlockerState, type ResolutionRule, } from './blocker.js';
2
+ export { assertManualResolve, type BlockerKind, type BlockerOpenedPayload, type BlockerScope, type BlockerState, type ResolutionRule, } from './blocker.js';
3
3
  export { assertOutcomeTransition, isSettled, type DecisionCreatedPayload, type DecisionKind, type DecisionState, type Dossier, type Option, type Outcome, type QAEntry, } from './decision.js';
4
4
  export { type AcceptanceStatus, type CriterionState, type CriterionStatus, type EvidenceKind, type EvidenceState, type RunResult, type TestRun, type Waiver, } from './acceptance.js';
5
5
  export { WSJF_SCHEME_VERSION, wsjfScore, type PriorityAssessment, type SchemeId, type WsjfInputs, } from './priority.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,IAAI,EACT,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,OAAO,GACb,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,MAAM,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,IAAI,EACT,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,OAAO,GACb,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,MAAM,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,eAAe,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,oBAAoB,GAYrB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,mBAAmB,GAKpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,uBAAuB,EACvB,SAAS,GAQV,MAAM,eAAe,CAAA;AACtB,OAAO,EASN,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,SAAS,GAIV,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,oBAAoB,GAYrB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,mBAAmB,GAMpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,uBAAuB,EACvB,SAAS,GAQV,MAAM,eAAe,CAAA;AACtB,OAAO,EASN,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mBAAmB,EACnB,SAAS,GAIV,MAAM,eAAe,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Ulid } from '../events/types.js';
1
+ import type { ActorId, Ulid } from '../events/types.js';
2
2
  import type { PriorityAssessment } from './priority.js';
3
3
  export type ItemId = Ulid;
4
4
  export type BlockerId = Ulid;
@@ -28,6 +28,9 @@ export interface ItemState {
28
28
  sourceKey?: string;
29
29
  body?: string;
30
30
  links?: Link[];
31
+ accountable?: ActorId;
32
+ responsible?: ActorId[];
33
+ engagementRef?: string;
31
34
  }
32
35
  export interface ItemCreatedPayload {
33
36
  kind: ItemKind;
@@ -37,6 +40,9 @@ export interface ItemCreatedPayload {
37
40
  sourceKey?: string;
38
41
  body?: string;
39
42
  links?: Link[];
43
+ accountable?: ActorId;
44
+ responsible?: ActorId[];
45
+ engagementRef?: string;
40
46
  }
41
47
  /** A rejected domain command (illegal transition, unknown aggregate, …). */
42
48
  export declare class DomainError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/model/item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAA;AACzB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAA;AAE5B,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,CAAA;AAC/D,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,CAAA;AACnD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;AAGrF,MAAM,MAAM,IAAI,GAAG,aAAa,GAAG,YAAY,CAAA;AAC/C,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,WAAW,CAAA;AAEjF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;CACf;AAED,4EAA4E;AAC5E,qBAAa,WAAY,SAAQ,KAAK;IAC3B,IAAI,SAAgB;CAC9B;AAkBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,GAAG,IAAI,CAO1E;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,EAAE,qDAAqD;AACrG,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,OAAO,GAChB,IAAI,CAiBN"}
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/model/item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAA;AACzB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAA;AAE5B,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,CAAA;AAC/D,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,CAAA;AACnD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;AAGrF,MAAM,MAAM,IAAI,GAAG,aAAa,GAAG,YAAY,CAAA;AAC/C,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,WAAW,CAAA;AAEjF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IAId,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,4EAA4E;AAC5E,qBAAa,WAAY,SAAQ,KAAK;IAC3B,IAAI,SAAgB;CAC9B;AAkBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,GAAG,IAAI,CAO1E;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,EAAE,qDAAqD;AACrG,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,OAAO,GAChB,IAAI,CAiBN"}
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["../../src/model/item.ts"],"names":[],"mappings":"AAiDA,4EAA4E;AAC5E,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,GAAG,aAAa,CAAA;CAC9B;AAED,sFAAsF;AACtF,MAAM,gBAAgB,GAAkD;IACtE,YAAY,EAAE,CAAC,WAAW,CAAC;IAC3B,SAAS,EAAE,EAAE;CACd,CAAA;AAED,6FAA6F;AAC7F,+EAA+E;AAC/E,MAAM,uBAAuB,GAAoD;IAC/E,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;IACrC,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;IACpC,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;CACb,CAAA;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAe,EAAE,EAAc;IAClE,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,WAAW,CAAC,wBAAwB,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,WAAW,CAAC,2BAA2B,IAAI,CAAC,UAAU,OAAO,EAAE,UAAU,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IAChG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAA8C,EAAE,qDAAqD;AACrG,EAAe,EACf,QAAiB;IAEjB,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CAAC,2DAA2D,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QAC9F,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;YACvE,MAAM,IAAI,WAAW,CACnB,kCAAkC,IAAI,CAAC,WAAW,sBAAsB,IAAI,CAAC,EAAE,GAAG,CACnF,CAAA;QACH,CAAC;QACD,OAAM;IACR,CAAC;IACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,WAAW,CACnB,kCAAkC,IAAI,CAAC,WAAW,OAAO,EAAE,UAAU,IAAI,CAAC,EAAE,GAAG,CAChF,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["../../src/model/item.ts"],"names":[],"mappings":"AA0DA,4EAA4E;AAC5E,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,GAAG,aAAa,CAAA;CAC9B;AAED,sFAAsF;AACtF,MAAM,gBAAgB,GAAkD;IACtE,YAAY,EAAE,CAAC,WAAW,CAAC;IAC3B,SAAS,EAAE,EAAE;CACd,CAAA;AAED,6FAA6F;AAC7F,+EAA+E;AAC/E,MAAM,uBAAuB,GAAoD;IAC/E,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;IACrC,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;IACpC,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;CACb,CAAA;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAe,EAAE,EAAc;IAClE,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,WAAW,CAAC,wBAAwB,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,WAAW,CAAC,2BAA2B,IAAI,CAAC,UAAU,OAAO,EAAE,UAAU,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IAChG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAA8C,EAAE,qDAAqD;AACrG,EAAe,EACf,QAAiB;IAEjB,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CAAC,2DAA2D,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QAC9F,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;YACvE,MAAM,IAAI,WAAW,CACnB,kCAAkC,IAAI,CAAC,WAAW,sBAAsB,IAAI,CAAC,EAAE,GAAG,CACnF,CAAA;QACH,CAAC;QACD,OAAM;IACR,CAAC;IACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,WAAW,CACnB,kCAAkC,IAAI,CAAC,WAAW,OAAO,EAAE,UAAU,IAAI,CAAC,EAAE,GAAG,CAChF,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"blocker-status.d.ts","sourceRoot":"","sources":["../../src/report/blocker-status.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAK7C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAMT;AAED,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACrB,YAAY,EAAE,CAIhB"}
1
+ {"version":3,"file":"blocker-status.d.ts","sourceRoot":"","sources":["../../src/report/blocker-status.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAK7C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAOT;AAED,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GACrB,YAAY,EAAE,CAIhB"}
@@ -22,7 +22,8 @@ const ACCEPTED_CLOSES = new Set(['pass']);
22
22
  export function effectiveBlockerOpen(state, blocker, baselineCommit) {
23
23
  if (blocker.resolvedByEvent)
24
24
  return false;
25
- if (blocker.kind === 'dependency' && blocker.resolutionRule === 'linked-accepted') {
25
+ // `linked-accepted` is intra-only `ref` is always a local item here; an `extra` dep is `manual`.
26
+ if (blocker.kind === 'dependency' && blocker.resolutionRule === 'linked-accepted' && blocker.ref !== undefined) {
26
27
  return !ACCEPTED_CLOSES.has(acceptanceStatus(state, blocker.ref, baselineCommit));
27
28
  }
28
29
  return blocker.open;
@@ -1 +1 @@
1
- {"version":3,"file":"blocker-status.js","sourceRoot":"","sources":["../../src/report/blocker-status.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,EAAE;AACF,sFAAsF;AACtF,+FAA+F;AAC/F,6FAA6F;AAC7F,gGAAgG;AAChG,0FAA0F;AAC1F,oFAAoF;AACpF,EAAE;AACF,iGAAiG;AACjG,kGAAkG;AAClG,iGAAiG;AACjG,yFAAyF;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAMtD,oGAAoG;AACpG,MAAM,eAAe,GAAkC,IAAI,GAAG,CAAmB,CAAC,MAAM,CAAC,CAAC,CAAA;AAE1F;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAY,EACZ,OAAqB,EACrB,cAAsB;IAEtB,IAAI,OAAO,CAAC,eAAe;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,cAAc,KAAK,iBAAiB,EAAE,CAAC;QAClF,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAA;AACrB,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,4BAA4B,CAC1C,KAAY,EACZ,MAAc,EACd,cAAsB;IAEtB,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,oBAAoB,CAAC,KAAK,EAAE,CAAC,EAAE,cAAc,CAAC,CAC/E,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"blocker-status.js","sourceRoot":"","sources":["../../src/report/blocker-status.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,EAAE;AACF,sFAAsF;AACtF,+FAA+F;AAC/F,6FAA6F;AAC7F,gGAAgG;AAChG,0FAA0F;AAC1F,oFAAoF;AACpF,EAAE;AACF,iGAAiG;AACjG,kGAAkG;AAClG,iGAAiG;AACjG,yFAAyF;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAMtD,oGAAoG;AACpG,MAAM,eAAe,GAAkC,IAAI,GAAG,CAAmB,CAAC,MAAM,CAAC,CAAC,CAAA;AAE1F;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAY,EACZ,OAAqB,EACrB,cAAsB;IAEtB,IAAI,OAAO,CAAC,eAAe;QAAE,OAAO,KAAK,CAAA;IACzC,mGAAmG;IACnG,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,cAAc,KAAK,iBAAiB,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC/G,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAA;AACrB,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,4BAA4B,CAC1C,KAAY,EACZ,MAAc,EACd,cAAsB;IAEtB,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,oBAAoB,CAAC,KAAK,EAAE,CAAC,EAAE,cAAc,CAAC,CAC/E,CAAA;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { ActorId } from '../events/types.js';
1
2
  import type { AcceptanceStatus } from '../model/acceptance.js';
2
3
  import type { DecisionKind, Outcome } from '../model/decision.js';
3
4
  import type { ItemId, ItemKind, Realization } from '../model/item.js';
@@ -12,6 +13,8 @@ export interface ReportRow {
12
13
  realization: Realization;
13
14
  acceptance: AcceptanceStatus;
14
15
  priority?: number;
16
+ accountable?: ActorId;
17
+ engagementRef?: string;
15
18
  }
16
19
  export interface DecisionRow {
17
20
  id: ItemId;
@@ -20,6 +23,7 @@ export interface DecisionRow {
20
23
  decisionKind: DecisionKind;
21
24
  realization: Realization;
22
25
  outcome: Outcome;
26
+ accountable?: ActorId;
23
27
  }
24
28
  export interface Report {
25
29
  buckets: Record<Bucket, ReportRow[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAa,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAqB,KAAK,MAAM,EAAqB,MAAM,cAAc,CAAA;AAEhF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAyBD,4GAA4G;AAC5G,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAwBxE;AAED,MAAM,WAAW,WAAW;IAG1B,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAC9B;AAED,kEAAkE;AAClE,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,CAW5F"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAa,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAqB,KAAK,MAAM,EAAqB,MAAM,cAAc,CAAA;AAEhF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AA2BD,4GAA4G;AAC5G,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAyBxE;AAED,MAAM,WAAW,WAAW;IAG1B,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAC9B;AAED,kEAAkE;AAClE,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,CAW5F"}
@@ -10,6 +10,8 @@ function toRow(state, item, config) {
10
10
  realization: item.realization,
11
11
  acceptance: acceptanceStatus(state, item.id, config.baselineCommit),
12
12
  ...(item.priority !== undefined ? { priority: item.priority.score } : {}),
13
+ ...(item.accountable !== undefined ? { accountable: item.accountable } : {}),
14
+ ...(item.engagementRef !== undefined ? { engagementRef: item.engagementRef } : {}),
13
15
  };
14
16
  }
15
17
  // Active prioritization scheme: higher score first; un-prioritized items after; stable by id.
@@ -45,6 +47,7 @@ export function buildReport(state, options) {
45
47
  decisionKind: d.decisionKind,
46
48
  realization: d.realization,
47
49
  outcome: d.outcome,
50
+ ...(d.accountable !== undefined ? { accountable: d.accountable } : {}),
48
51
  }));
49
52
  }
50
53
  return report;
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,9 @@ function applyEvent(state, event) {
48
48
  ...(payload.sourceKey !== undefined ? { sourceKey: payload.sourceKey } : {}),
49
49
  ...(payload.body !== undefined ? { body: payload.body } : {}),
50
50
  ...(payload.links !== undefined ? { links: payload.links } : {}),
51
+ ...(payload.accountable !== undefined ? { accountable: payload.accountable } : {}),
52
+ ...(payload.responsible !== undefined ? { responsible: payload.responsible } : {}),
53
+ ...(payload.engagementRef !== undefined ? { engagementRef: payload.engagementRef } : {}),
51
54
  };
52
55
  state.items.set(item.id, item);
53
56
  break;
@@ -68,6 +71,8 @@ function applyEvent(state, event) {
68
71
  ...(payload.sourceKey !== undefined ? { sourceKey: payload.sourceKey } : {}),
69
72
  ...(payload.body !== undefined ? { body: payload.body } : {}),
70
73
  ...(payload.links !== undefined ? { links: payload.links } : {}),
74
+ ...(payload.accountable !== undefined ? { accountable: payload.accountable } : {}),
75
+ ...(payload.engagementRef !== undefined ? { engagementRef: payload.engagementRef } : {}),
71
76
  };
72
77
  state.decisions.set(decision.id, decision);
73
78
  break;
@@ -167,13 +172,15 @@ function applyEvent(state, event) {
167
172
  id: event.aggregateId,
168
173
  targetId: payload.targetId,
169
174
  kind: payload.kind,
170
- ref: payload.ref,
171
175
  reason: payload.reason,
172
176
  openedAt: event.at,
173
177
  resolvedByEvent: false,
174
178
  open: true,
179
+ ...(payload.ref !== undefined ? { ref: payload.ref } : {}),
175
180
  ...(resolutionRule !== undefined ? { resolutionRule } : {}),
176
181
  ...(payload.owner !== undefined ? { owner: payload.owner } : {}),
182
+ ...(payload.scope !== undefined ? { scope: payload.scope } : {}),
183
+ ...(payload.engagementRef !== undefined ? { engagementRef: payload.engagementRef } : {}),
177
184
  };
178
185
  state.blockers.set(blocker.id, blocker);
179
186
  break;
@@ -202,8 +209,9 @@ function applyEvent(state, event) {
202
209
  function isOpen(blocker, items) {
203
210
  if (blocker.resolvedByEvent)
204
211
  return false;
205
- // Dependency default is linked-done (robust even if the rule was omitted upstream).
206
- if (blocker.kind === 'dependency' && (blocker.resolutionRule ?? 'linked-done') === 'linked-done') {
212
+ // Dependency default is linked-done (robust even if the rule was omitted upstream). `ref` is always
213
+ // present for a linked-done dep (intra); an `extra` dep is `manual` and never reaches this branch.
214
+ if (blocker.ref !== undefined && blocker.kind === 'dependency' && (blocker.resolutionRule ?? 'linked-done') === 'linked-done') {
207
215
  // NOTE (open question, flagged for Lot 5): a ref that ends `cancelled`/`rejected` keeps this
208
216
  // blocker OPEN (target stays AWAITED) — SPEC §2.9 resolves only on ref `done`. Reversible.
209
217
  return items.get(blocker.ref)?.realization !== 'done';
@@ -1 +1 @@
1
- {"version":3,"file":"fold.js","sourceRoot":"","sources":["../../src/state/fold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fold.js","sourceRoot":"","sources":["../../src/state/fold.ts"],"names":[],"mappings":"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"}
package/dist/track.d.ts CHANGED
@@ -4,7 +4,7 @@ import { type RunReportFormat } from './accept/ingest.js';
4
4
  import { type QueryFilter, type Report, type ReportOptions, type ReportRow } from './report/build.js';
5
5
  import type { EvidenceKind, RunResult } from './model/acceptance.js';
6
6
  import { type PriorityAssessment, type WsjfInputs } from './model/priority.js';
7
- import { type BlockerKind, type ResolutionRule } from './model/blocker.js';
7
+ import { type BlockerKind, type BlockerScope, type ResolutionRule } from './model/blocker.js';
8
8
  import { type DecisionCreatedPayload, type Dossier, type Outcome } from './model/decision.js';
9
9
  import { type BlockerId, type Disposition, type Gate, type ItemCreatedPayload, type ItemId, type Realization, type SpecStatus } from './model/item.js';
10
10
  import { type State } from './state/fold.js';
@@ -27,10 +27,12 @@ export interface TrackOptions {
27
27
  export interface OpenBlockerInput {
28
28
  targetId: ItemId;
29
29
  kind: BlockerKind;
30
- ref: ItemId;
30
+ ref?: ItemId;
31
31
  reason: string;
32
32
  resolutionRule?: ResolutionRule;
33
33
  owner?: ActorId;
34
+ scope?: BlockerScope;
35
+ engagementRef?: string;
34
36
  }
35
37
  /**
36
38
  * Command facade over the frozen event store (SPEC §6). Each mutating command folds the current
@@ -43,9 +45,17 @@ export declare class Track {
43
45
  private readonly newId;
44
46
  private readonly actor;
45
47
  private readonly prov;
48
+ /** Delivery idempotency token stamped on emitted events for the duration of a `withClientToken` scope. */
49
+ private activeClientToken;
46
50
  constructor(store: EventStore, opts?: TrackOptions);
47
51
  /** Materialized state from a full replay of the log. */
48
52
  state(): State;
53
+ /**
54
+ * Run `fn` (one command) with `token` stamped on every event it emits — the delivery idempotency key
55
+ * (v2.3c). Scoped (restored in `finally`), so it stamps exactly this command's batch and nothing else.
56
+ * `undefined` ⇒ no token (today's behavior). Not nested by the ingest seam.
57
+ */
58
+ withClientToken<T>(token: string | undefined, fn: () => T): T;
49
59
  createItem(input: ItemCreatedPayload): ItemId;
50
60
  setSpec(itemId: ItemId, to: SpecStatus): void;
51
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"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"}
package/dist/track.js CHANGED
@@ -21,6 +21,8 @@ export class Track {
21
21
  newId;
22
22
  actor;
23
23
  prov;
24
+ /** Delivery idempotency token stamped on emitted events for the duration of a `withClientToken` scope. */
25
+ activeClientToken;
24
26
  constructor(store, opts = {}) {
25
27
  this.store = store;
26
28
  this.clock = opts.now ?? (() => new Date().toISOString());
@@ -34,6 +36,21 @@ export class Track {
34
36
  state() {
35
37
  return fold(this.store.readAll());
36
38
  }
39
+ /**
40
+ * Run `fn` (one command) with `token` stamped on every event it emits — the delivery idempotency key
41
+ * (v2.3c). Scoped (restored in `finally`), so it stamps exactly this command's batch and nothing else.
42
+ * `undefined` ⇒ no token (today's behavior). Not nested by the ingest seam.
43
+ */
44
+ withClientToken(token, fn) {
45
+ const prev = this.activeClientToken;
46
+ this.activeClientToken = token;
47
+ try {
48
+ return fn();
49
+ }
50
+ finally {
51
+ this.activeClientToken = prev;
52
+ }
53
+ }
37
54
  createItem(input) {
38
55
  if (input.kind === 'decision') {
39
56
  throw new DomainError('use createDecision for kind:"decision" (Lot 3) — it needs targets, a dossier, and an atomic blocker batch (SPEC §2.5)');
@@ -185,26 +202,46 @@ export class Track {
185
202
  if (!state.items.has(input.targetId)) {
186
203
  throw new DomainError(`unknown target item ${input.targetId}`);
187
204
  }
205
+ // Lot A: `extra`-scope dependencies reference an h2a ENGAGEMENT (cross-repo/cross-agent), not a local
206
+ // item; `intra` (default) and `decision` keep today's local-ref invariant.
207
+ const scope = input.kind === 'dependency' ? (input.scope ?? 'intra') : 'intra';
208
+ let resolutionRule;
188
209
  if (input.kind === 'decision') {
189
- if (!state.decisions.has(input.ref)) {
190
- throw new DomainError(`a decision blocker's ref must be an existing decision (${input.ref})`);
210
+ if (input.ref === undefined || !state.decisions.has(input.ref)) {
211
+ throw new DomainError(`a decision blocker's ref must be an existing decision (${String(input.ref)})`);
191
212
  }
192
213
  }
193
- else if (!state.items.has(input.ref)) {
194
- throw new DomainError(`unknown ref item ${input.ref}`);
214
+ else if (scope === 'extra') {
215
+ if (input.engagementRef === undefined || input.engagementRef.length === 0) {
216
+ throw new DomainError('an extra-scope dependency blocker requires an engagementRef (an h2a engagement id)');
217
+ }
218
+ if (input.ref !== undefined) {
219
+ throw new DomainError('an extra-scope dependency blocker must NOT carry a local ref (it references the engagementRef)');
220
+ }
221
+ if (input.resolutionRule !== undefined && input.resolutionRule !== 'manual') {
222
+ throw new DomainError(`an extra-scope dependency resolves 'manual' only (got '${input.resolutionRule}') — track cannot see h2a state`);
223
+ }
224
+ resolutionRule = 'manual';
225
+ }
226
+ else {
227
+ if (input.ref === undefined || !state.items.has(input.ref)) {
228
+ throw new DomainError(`unknown ref item ${String(input.ref)}`);
229
+ }
230
+ // `linked-accepted` openness is resolved by the commit-relative projection (v2.2a hybrid-A);
231
+ // see report/blocker-status.ts.
232
+ resolutionRule = input.resolutionRule ?? 'linked-done';
195
233
  }
196
234
  const blockerId = this.newId();
197
- const resolutionRule = input.kind === 'dependency' ? (input.resolutionRule ?? 'linked-done') : undefined;
198
- // `linked-accepted` is now resolved by the commit-relative projection (v2.2a hybrid-A):
199
- // openness = ref not accepted at the report's baselineCommit (revocable). See report/blocker-status.ts.
200
235
  this.emit('blocker', blockerId, 'blocker.opened', {
201
236
  blockerId,
202
237
  targetId: input.targetId,
203
238
  kind: input.kind,
204
- ref: input.ref,
239
+ ...(input.ref !== undefined ? { ref: input.ref } : {}),
205
240
  reason: input.reason,
206
241
  ...(resolutionRule !== undefined ? { resolutionRule } : {}),
207
242
  ...(input.owner !== undefined ? { owner: input.owner } : {}),
243
+ ...(scope === 'extra' ? { scope } : {}),
244
+ ...(input.engagementRef !== undefined ? { engagementRef: input.engagementRef } : {}),
208
245
  });
209
246
  return blockerId;
210
247
  }
@@ -475,6 +512,7 @@ export class Track {
475
512
  at,
476
513
  by: this.actor,
477
514
  ...(this.prov !== undefined ? { prov: this.prov } : {}),
515
+ ...(this.activeClientToken !== undefined ? { clientToken: this.activeClientToken } : {}),
478
516
  payload: part.payload,
479
517
  }));
480
518
  if (events.length > 1) {