@wildorder/nightshift 0.13.0 → 0.15.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/README.md +64 -26
  2. package/dist/agent-probe.d.ts +21 -2
  3. package/dist/agent-probe.d.ts.map +1 -1
  4. package/dist/agent-probe.js +76 -22
  5. package/dist/agent-probe.js.map +1 -1
  6. package/dist/agent-runner.d.ts +90 -2
  7. package/dist/agent-runner.d.ts.map +1 -1
  8. package/dist/agent-runner.js +382 -24
  9. package/dist/agent-runner.js.map +1 -1
  10. package/dist/agent-summary.d.ts +15 -0
  11. package/dist/agent-summary.d.ts.map +1 -1
  12. package/dist/agent-summary.js +32 -2
  13. package/dist/agent-summary.js.map +1 -1
  14. package/dist/as-built.d.ts +6 -0
  15. package/dist/as-built.d.ts.map +1 -1
  16. package/dist/as-built.js +7 -0
  17. package/dist/as-built.js.map +1 -1
  18. package/dist/author.d.ts +13 -3
  19. package/dist/author.d.ts.map +1 -1
  20. package/dist/author.js +267 -30
  21. package/dist/author.js.map +1 -1
  22. package/dist/ci-init.d.ts.map +1 -1
  23. package/dist/ci-init.js +17 -12
  24. package/dist/ci-init.js.map +1 -1
  25. package/dist/cli.js +74 -15
  26. package/dist/cli.js.map +1 -1
  27. package/dist/config.d.ts +11 -0
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +13 -0
  30. package/dist/config.js.map +1 -1
  31. package/dist/crash-report.d.ts +58 -0
  32. package/dist/crash-report.d.ts.map +1 -0
  33. package/dist/crash-report.js +115 -0
  34. package/dist/crash-report.js.map +1 -0
  35. package/dist/decide.js +1 -1
  36. package/dist/decide.js.map +1 -1
  37. package/dist/decider-review.d.ts +33 -5
  38. package/dist/decider-review.d.ts.map +1 -1
  39. package/dist/decider-review.js +55 -9
  40. package/dist/decider-review.js.map +1 -1
  41. package/dist/decision-ledger.d.ts +44 -1
  42. package/dist/decision-ledger.d.ts.map +1 -1
  43. package/dist/decision-ledger.js +46 -1
  44. package/dist/decision-ledger.js.map +1 -1
  45. package/dist/decision-view.d.ts +10 -1
  46. package/dist/decision-view.d.ts.map +1 -1
  47. package/dist/decision-view.js +41 -0
  48. package/dist/decision-view.js.map +1 -1
  49. package/dist/manifest.d.ts +29 -1
  50. package/dist/manifest.d.ts.map +1 -1
  51. package/dist/manifest.js +236 -11
  52. package/dist/manifest.js.map +1 -1
  53. package/dist/permits.d.ts +135 -0
  54. package/dist/permits.d.ts.map +1 -0
  55. package/dist/permits.js +397 -0
  56. package/dist/permits.js.map +1 -0
  57. package/dist/publish.d.ts +35 -0
  58. package/dist/publish.d.ts.map +1 -1
  59. package/dist/publish.js +149 -16
  60. package/dist/publish.js.map +1 -1
  61. package/dist/run-program.d.ts +53 -2
  62. package/dist/run-program.d.ts.map +1 -1
  63. package/dist/run-program.js +539 -56
  64. package/dist/run-program.js.map +1 -1
  65. package/dist/whole-program-review.d.ts +4 -0
  66. package/dist/whole-program-review.d.ts.map +1 -1
  67. package/dist/whole-program-review.js +9 -1
  68. package/dist/whole-program-review.js.map +1 -1
  69. package/package.json +2 -2
  70. package/dist/verify-allowlist.d.ts +0 -23
  71. package/dist/verify-allowlist.d.ts.map +0 -1
  72. package/dist/verify-allowlist.js +0 -46
  73. package/dist/verify-allowlist.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { createHash } from "node:crypto";
1
2
  import { appendFile, mkdir, readFile } from "node:fs/promises";
2
3
  import { dirname, join, resolve } from "node:path";
3
4
  /**
@@ -13,6 +14,20 @@ import { dirname, join, resolve } from "node:path";
13
14
  * blocked run — because the ledger explains work, it does not gate it.
14
15
  */
15
16
  export const LEDGER_SCHEMA_VERSION = 1;
17
+ /**
18
+ * Stable identity for a denial: workstream + attempt + command, deliberately
19
+ * excluding `source`. This is what makes an observed denial and a
20
+ * same-attempt agent self-report of the same command collapse into one
21
+ * record instead of two half-populated ones — the caller correlates the two
22
+ * sources before writing (see run-program.ts), and the shared id is what
23
+ * lets a later write refine (not duplicate) the earlier one.
24
+ */
25
+ export function denialFingerprint(workstream, attempt, command) {
26
+ return createHash("sha256")
27
+ .update(`${workstream} ${attempt} ${command}`)
28
+ .digest("hex")
29
+ .slice(0, 12);
30
+ }
16
31
  const FINDING_STATUS_BY_DISPOSITION = {
17
32
  "fix-now": "fix-now",
18
33
  accept: "accepted",
@@ -34,6 +49,7 @@ export async function appendLedgerEvents(root, programId, events) {
34
49
  export function reduceLedgerEvents(events) {
35
50
  const decisionsById = new Map();
36
51
  const findingsById = new Map();
52
+ const denialsById = new Map();
37
53
  for (const event of events) {
38
54
  if (event.kind === "decision-recorded") {
39
55
  const existing = decisionsById.get(event.id);
@@ -56,6 +72,9 @@ export function reduceLedgerEvents(events) {
56
72
  ...(existing?.humanReason === undefined
57
73
  ? {}
58
74
  : { humanReason: existing.humanReason }),
75
+ ...(existing?.reviewSkippedReason === undefined
76
+ ? {}
77
+ : { reviewSkippedReason: existing.reviewSkippedReason }),
59
78
  oneWay: event.decision.reversible === false,
60
79
  });
61
80
  continue;
@@ -151,6 +170,15 @@ export function reduceLedgerEvents(events) {
151
170
  record.reviewRationale = event.rationale;
152
171
  continue;
153
172
  }
173
+ if (event.kind === "decision-review-skipped") {
174
+ const record = decisionsById.get(event.id);
175
+ if (!record)
176
+ continue;
177
+ // A note explaining a gap, never an outcome: never overrides a status
178
+ // any other event already settled.
179
+ record.reviewSkippedReason = event.reason;
180
+ continue;
181
+ }
154
182
  if (event.kind === "decision-human") {
155
183
  // A human ruling settles whichever record matches the id — a decision
156
184
  // or a finding — never both, since ids never collide across the two.
@@ -176,6 +204,22 @@ export function reduceLedgerEvents(events) {
176
204
  // below documents intent rather than merely happening to cover it.
177
205
  continue;
178
206
  }
207
+ if (event.kind === "permission-denied") {
208
+ // A fact, not a decision or finding — no status, no authority chain.
209
+ // Last-wins by id, same as every other projection here: a resumed
210
+ // run's re-denial of the same command at the same attempt refines the
211
+ // existing record rather than duplicating it.
212
+ denialsById.set(event.id, {
213
+ id: event.id,
214
+ workstream: event.workstream,
215
+ attempt: event.attempt,
216
+ command: event.command,
217
+ source: event.source,
218
+ ...(event.reason === undefined ? {} : { reason: event.reason }),
219
+ ...(event.agentReason === undefined ? {} : { agentReason: event.agentReason }),
220
+ });
221
+ continue;
222
+ }
179
223
  // A genuinely unknown or future event kind is ignored, never
180
224
  // mis-handled — reads stay fail-open regardless of what a hand-edited
181
225
  // or newer ledger presents.
@@ -183,6 +227,7 @@ export function reduceLedgerEvents(events) {
183
227
  return {
184
228
  decisions: [...decisionsById.values()],
185
229
  findings: [...findingsById.values()],
230
+ denials: [...denialsById.values()],
186
231
  corrupt: 0,
187
232
  };
188
233
  }
@@ -197,7 +242,7 @@ export async function readDecisionLedger(root, programId) {
197
242
  raw = await readFile(ledgerPath(root, programId), "utf8");
198
243
  }
199
244
  catch {
200
- return { decisions: [], findings: [], corrupt: 0 };
245
+ return { decisions: [], findings: [], denials: [], corrupt: 0 };
201
246
  }
202
247
  const events = [];
203
248
  let corrupt = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"decision-ledger.js","sourceRoot":"","sources":["../src/decision-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-ledger.js","sourceRoot":"","sources":["../src/decision-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAInD;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAgMvC;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,OAAe,EACf,OAAe;IAEf,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,GAAG,UAAU,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;SAC7C,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,6BAA6B,GAG/B;IACF,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,WAAW;CACtB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,SAAiB;IACxD,OAAO,IAAI,CACT,OAAO,CAAC,IAAI,CAAC,EACb,MAAM,EACN,UAAU,EACV,GAAG,SAAS,kBAAkB,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,SAAiB,EACjB,MAAqB;IAErB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM;SACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,GAAG,KAAK,EAAE,CAAC,CACnE;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAqB;IACtD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7C,sEAAsE;YACtE,4DAA4D;YAC5D,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;gBAC1B,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrC,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,YAAY;gBACxC,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,SAAS;oBACzC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAClD,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK,SAAS;oBACrC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1C,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK,SAAS;oBACrC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1C,GAAG,CAAC,QAAQ,EAAE,mBAAmB,KAAK,SAAS;oBAC7C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBAC1D,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,KAAK,KAAK;aAC5C,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,sEAAsE;YACtE,+DAA+D;YAC/D,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;gBACzB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzD,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrC,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,MAAM;gBAClC,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,SAAS;oBACzC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAClD,GAAG,CAAC,QAAQ,EAAE,kBAAkB,KAAK,SAAS;oBAC5C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBACxD,GAAG,CAAC,QAAQ,EAAE,sBAAsB,KAAK,SAAS;oBAChD,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBAChE,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK,SAAS;oBACrC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1C,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK,SAAS;oBACrC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1C,GAAG,CAAC,QAAQ,EAAE,UAAU,KAAK,SAAS;oBACpC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxC,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,mEAAmE;YACnE,IAAI,MAAM,CAAC,MAAM,KAAK,eAAe;gBAAE,SAAS;YAChD,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACjE,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC;YACzC,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACrC,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC3C,MAAM,CAAC,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAAC;YACrD,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,qEAAqE;YACrE,oEAAoE;YACpE,sEAAsE;YACtE,qEAAqE;YACrE,IAAI,MAAM,CAAC,MAAM,KAAK,eAAe;gBAAE,SAAS;YAChD,MAAM,CAAC,UAAU,GAAG;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;aAChE,CAAC;YACF,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,iEAAiE;YACjE,sEAAsE;YACtE,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,mEAAmE;YACnE,IAAI,MAAM,CAAC,MAAM,KAAK,eAAe;gBAAE,SAAS;YAChD,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;YACtE,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC;YACzC,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,sEAAsE;YACtE,mCAAmC;YACnC,MAAM,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1C,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACpC,sEAAsE;YACtE,qEAAqE;YACrE,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC;gBAClC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;gBACpC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;gBACpC,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC;gBACjC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;gBACnC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YACrC,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC3C,oEAAoE;YACpE,uEAAuE;YACvE,mEAAmE;YACnE,mEAAmE;YACnE,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACvC,qEAAqE;YACrE,kEAAkE;YAClE,sEAAsE;YACtE,8CAA8C;YAC9C,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;gBACxB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC/D,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;aAC/E,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,6DAA6D;QAC7D,sEAAsE;QACtE,4BAA4B;IAC9B,CAAC;IAED,OAAO;QACL,SAAS,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QACtC,QAAQ,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,SAAiB;IAEjB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoC,CAAC;YACnE,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACrE,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { DecisionLedgerView, DecisionRecord, FindingRecord } from "./decision-ledger.js";
1
+ import type { DecisionLedgerView, DecisionRecord, DenialRecord, FindingRecord } from "./decision-ledger.js";
2
2
  /**
3
3
  * The canonical human view of a decision or a finding — the single module
4
4
  * every surface renders through (SC-04). Two densities, both kinds of
@@ -31,6 +31,15 @@ export declare function escalatedRecords(ledger: DecisionLedgerView): Renderable
31
31
  export declare function isLegacyFinding(record: DecisionRecord): boolean;
32
32
  /** The single implementation of the `nightshift decide` flip command. */
33
33
  export declare function flipCommand(programId: string, decisionId: string, chooseLabel: string, reason: string): string;
34
+ /**
35
+ * Renders one denial: the command, who refused it, the reason(s) available,
36
+ * and a remediation specific to the source (SC-12). A single density — a
37
+ * denial is small, and there is no compact/full split to make here. An allow
38
+ * rule is never printed for `deny-rule`: a deny rule binds in every mode and
39
+ * an allow rule cannot override it, so the only honest remediation is to
40
+ * remove or narrow the deny rule itself.
41
+ */
42
+ export declare function renderDenial(record: DenialRecord): string[];
34
43
  /**
35
44
  * Dispatches: a `FindingRecord` renders as a finding; a legacy synthetic
36
45
  * finding (a `DecisionRecord` whose title is `"Reviewer finding: …"`) renders
@@ -1 +1 @@
1
- {"version":3,"file":"decision-view.d.ts","sourceRoot":"","sources":["../src/decision-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,aAAa,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,gBAAgB,EAAE,CAK/E;AAID,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE/D;AAWD,yEAAyE;AACzE,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAsQD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,aAAa,GAClB,MAAM,EAAE,CAgBV"}
1
+ {"version":3,"file":"decision-view.d.ts","sourceRoot":"","sources":["../src/decision-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,aAAa,EACd,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,aAAa,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,gBAAgB,EAAE,CAK/E;AAID,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE/D;AAWD,yEAAyE;AACzE,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAkRD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAwB3D;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,aAAa,GAClB,MAAM,EAAE,CAgBV"}
@@ -96,6 +96,9 @@ function renderDecisionCompact(record) {
96
96
  if (record.baseCommit !== undefined) {
97
97
  lines.push(` - Anchor: \`${record.baseCommit}\``);
98
98
  }
99
+ if (record.reviewSkippedReason !== undefined) {
100
+ lines.push(` - Note: ${record.reviewSkippedReason}`);
101
+ }
99
102
  return lines;
100
103
  }
101
104
  function renderDecisionFull(record, opts) {
@@ -124,6 +127,9 @@ function renderDecisionFull(record, opts) {
124
127
  if (record.baseCommit !== undefined) {
125
128
  lines.push(`- **Anchor commit:** \`${record.baseCommit}\``);
126
129
  }
130
+ if (record.reviewSkippedReason !== undefined) {
131
+ lines.push(`- **Note:** ${record.reviewSkippedReason}`);
132
+ }
127
133
  lines.push("");
128
134
  if (alternatives.length > 0) {
129
135
  lines.push("To flip this decision:", "");
@@ -238,6 +244,41 @@ function renderLegacyFindingFull(record) {
238
244
  return lines;
239
245
  }
240
246
  // ---------------------------------------------------------------------------
247
+ // Denials
248
+ // ---------------------------------------------------------------------------
249
+ const DENIAL_SOURCE_LABEL = {
250
+ classifier: "refused by the `auto` classifier",
251
+ "deny-rule": "blocked by a deny rule you wrote",
252
+ "agent-report": "reported by the agent",
253
+ };
254
+ /**
255
+ * Renders one denial: the command, who refused it, the reason(s) available,
256
+ * and a remediation specific to the source (SC-12). A single density — a
257
+ * denial is small, and there is no compact/full split to make here. An allow
258
+ * rule is never printed for `deny-rule`: a deny rule binds in every mode and
259
+ * an allow rule cannot override it, so the only honest remediation is to
260
+ * remove or narrow the deny rule itself.
261
+ */
262
+ export function renderDenial(record) {
263
+ const lines = [`- **\`${record.command}\`** — ${DENIAL_SOURCE_LABEL[record.source]}`];
264
+ if (record.reason !== undefined) {
265
+ lines.push(` - CLI reason: ${record.reason}`);
266
+ }
267
+ if (record.agentReason !== undefined) {
268
+ lines.push(` - Agent reason: ${record.agentReason}`);
269
+ }
270
+ if (record.source === "deny-rule") {
271
+ lines.push(" - Remediation: no `permits.allow` rule can lift this — a deny rule " +
272
+ "binds in every mode. Remove or narrow the matching rule in " +
273
+ "`config.permits.deny`.");
274
+ }
275
+ else {
276
+ lines.push(" - Remediation: add this rule to `permits.allow` to lift it (narrow " +
277
+ "or widen as needed):", " ```", ` Bash(${record.command}:*)`, " ```");
278
+ }
279
+ return lines;
280
+ }
281
+ // ---------------------------------------------------------------------------
241
282
  // Dispatch
242
283
  // ---------------------------------------------------------------------------
243
284
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"decision-view.js","sourceRoot":"","sources":["../src/decision-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-view.js","sourceRoot":"","sources":["../src/decision-view.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,10 @@ export declare const workstreamSchema: z.ZodObject<{
44
44
  packages: z.ZodDefault<z.ZodArray<z.ZodString>>;
45
45
  prerequisites: z.ZodDefault<z.ZodArray<z.ZodString>>;
46
46
  specHash: z.ZodOptional<z.ZodString>;
47
+ specStatus: z.ZodOptional<z.ZodEnum<{
48
+ in_progress: "in_progress";
49
+ complete: "complete";
50
+ }>>;
47
51
  }, z.core.$strip>;
48
52
  declare const manifestSchema: z.ZodObject<{
49
53
  program: z.ZodObject<{
@@ -86,6 +90,10 @@ declare const manifestSchema: z.ZodObject<{
86
90
  packages: z.ZodDefault<z.ZodArray<z.ZodString>>;
87
91
  prerequisites: z.ZodDefault<z.ZodArray<z.ZodString>>;
88
92
  specHash: z.ZodOptional<z.ZodString>;
93
+ specStatus: z.ZodOptional<z.ZodEnum<{
94
+ in_progress: "in_progress";
95
+ complete: "complete";
96
+ }>>;
89
97
  }, z.core.$loose>>;
90
98
  outOfScope: z.ZodDefault<z.ZodArray<z.ZodString>>;
91
99
  prerequisites: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -120,6 +128,26 @@ export type ProgramManifest = z.infer<typeof manifestSchema>;
120
128
  export declare function specInputsHash(manifest: Pick<ProgramManifest, "successCriteria" | "prerequisites">, workstream: Pick<Workstream, "name" | "scope" | "dependencies" | "prerequisites">): string;
121
129
  export declare function manifestPath(root: string, programId: string): string;
122
130
  export declare function loadManifest(root: string, programId: string): Promise<ProgramManifest>;
123
- export declare function saveManifest(root: string, programId: string, manifest: ProgramManifest): Promise<void>;
131
+ export interface SaveManifestResult {
132
+ /** True iff an on-disk drift was detected and merged on this save. */
133
+ merged: boolean;
134
+ }
135
+ export interface SaveManifestOptions {
136
+ log?: (line: string) => void;
137
+ }
138
+ /**
139
+ * Every field of a manifest has exactly one authoritative writer. The
140
+ * runner owns `program.status`; each workstream's `status`, `specHash`,
141
+ * `specStatus`, `commit`, `dependencies`, and (see {@link mergeManifests}'s
142
+ * doc comment) `prerequisites`; and each prerequisite record's `status`. The human owns
143
+ * everything else, including which workstreams and prerequisite records
144
+ * exist at all. A save that finds the on-disk copy has drifted since this
145
+ * process last read or wrote it reloads that copy, overlays only the
146
+ * runner-owned fields from memory onto it, and writes the merge — never a
147
+ * blind whole-object overwrite. See `docs/programs/clear-backlog-manifest.json`
148
+ * (WS-02) for the full contract this implements.
149
+ */
150
+ export declare function saveManifest(root: string, programId: string, manifest: ProgramManifest, options?: SaveManifestOptions): Promise<SaveManifestResult>;
151
+ export declare function manifestMergeCount(root: string, programId: string): number;
124
152
  export {};
125
153
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AAEH,eAAO,MAAM,mBAAmB,2FAOtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,qBAAqB,mCAAoC,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,eAAO,MAAM,kBAAkB;;;;;;;;;iBAsB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAQ9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;iBA4B3B,CAAC;AAEH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBV,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,eAAe,CAAC,EACpE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,CAAC,GAChF,MAAM,CA6BR;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CA4D1B;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAMf"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AAEH,eAAO,MAAM,mBAAmB,2FAOtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,qBAAqB,mCAAoC,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,eAAO,MAAM,kBAAkB;;;;;;;;;iBAsB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAQ9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqC3B,CAAC;AAEH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBV,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,eAAe,CAAC,EACpE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,CAAC,GAChF,MAAM,CA6BR;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOpE;AAwED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAyE7B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1E"}
package/dist/manifest.js CHANGED
@@ -74,6 +74,15 @@ export const workstreamSchema = z.object({
74
74
  * hand-written specs and pre-hash manifests, which are never drift-checked.
75
75
  */
76
76
  specHash: z.string().optional(),
77
+ /**
78
+ * The authoring lifecycle for this workstream's spec, owned by the runner.
79
+ * `in_progress` is stamped before the author agent can write the taskFile;
80
+ * `complete` is stamped only after the full authoring pipeline succeeds.
81
+ * Absent on hand-written and pre-lifecycle specs, which stay protected as
82
+ * legacy/external content. Kept separate from `status`, which describes
83
+ * *building*, not *authoring*.
84
+ */
85
+ specStatus: z.enum(["in_progress", "complete"]).optional(),
77
86
  });
78
87
  const manifestSchema = z
79
88
  .object({
@@ -144,15 +153,12 @@ export function specInputsHash(manifest, workstream) {
144
153
  export function manifestPath(root, programId) {
145
154
  return join(resolve(root), "docs", "programs", `${programId}-manifest.json`);
146
155
  }
147
- export async function loadManifest(root, programId) {
148
- const path = manifestPath(root, programId);
149
- let raw;
150
- try {
151
- raw = await readFile(path, "utf8");
152
- }
153
- catch {
154
- throw new Error(`No manifest at ${path}. Plan the program first with /plan-program.`);
155
- }
156
+ /**
157
+ * Parse-and-validate body shared by `loadManifest` and the drift path in
158
+ * `saveManifest` — both need the identical diagnosis for the identical
159
+ * class of invalid content, so there is exactly one definition of "valid".
160
+ */
161
+ function parseManifest(raw, path) {
156
162
  let parsed;
157
163
  try {
158
164
  parsed = JSON.parse(raw);
@@ -194,7 +200,226 @@ export async function loadManifest(root, programId) {
194
200
  }
195
201
  return manifest;
196
202
  }
197
- export async function saveManifest(root, programId, manifest) {
198
- await writeFile(manifestPath(root, programId), `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
203
+ // The exact bytes this process last read (loadManifest) or wrote
204
+ // (saveManifest) for each manifest path the drift baseline. "Drift" is a
205
+ // byte-for-byte difference between this and what is on disk at save time, so
206
+ // a whitespace-only human edit is a real (harmless) merge and the comparison
207
+ // is deterministic without a model. Keyed by the resolved absolute manifest
208
+ // path so two programs, or two tmpdirs in tests, never collide.
209
+ const lastBytes = new Map();
210
+ // Total merged-on-drift saves performed this process for each path. Only
211
+ // ever incremented (never reset), so a run can snapshot it at start and
212
+ // compare at report time without a reload clearing history mid-run.
213
+ const mergeCount = new Map();
214
+ export async function loadManifest(root, programId) {
215
+ const path = manifestPath(root, programId);
216
+ let raw;
217
+ try {
218
+ raw = await readFile(path, "utf8");
219
+ }
220
+ catch {
221
+ throw new Error(`No manifest at ${path}. Plan the program first with /plan-program.`);
222
+ }
223
+ const manifest = parseManifest(raw, path);
224
+ lastBytes.set(path, raw);
225
+ return manifest;
226
+ }
227
+ /**
228
+ * Every field of a manifest has exactly one authoritative writer. The
229
+ * runner owns `program.status`; each workstream's `status`, `specHash`,
230
+ * `specStatus`, `commit`, `dependencies`, and (see {@link mergeManifests}'s
231
+ * doc comment) `prerequisites`; and each prerequisite record's `status`. The human owns
232
+ * everything else, including which workstreams and prerequisite records
233
+ * exist at all. A save that finds the on-disk copy has drifted since this
234
+ * process last read or wrote it reloads that copy, overlays only the
235
+ * runner-owned fields from memory onto it, and writes the merge — never a
236
+ * blind whole-object overwrite. See `docs/programs/clear-backlog-manifest.json`
237
+ * (WS-02) for the full contract this implements.
238
+ */
239
+ export async function saveManifest(root, programId, manifest, options) {
240
+ const path = manifestPath(root, programId);
241
+ const serialized = `${JSON.stringify(manifest, null, 2)}\n`;
242
+ let currentOnDisk;
243
+ try {
244
+ currentOnDisk = await readFile(path, "utf8");
245
+ }
246
+ catch {
247
+ currentOnDisk = undefined;
248
+ }
249
+ if (currentOnDisk === undefined) {
250
+ await writeFile(path, serialized, "utf8");
251
+ lastBytes.set(path, serialized);
252
+ return { merged: false };
253
+ }
254
+ const baseline = lastBytes.get(path);
255
+ if (baseline === undefined || currentOnDisk === baseline) {
256
+ await writeFile(path, serialized, "utf8");
257
+ lastBytes.set(path, serialized);
258
+ return { merged: false };
259
+ }
260
+ // Drift: the bytes on disk differ from what this process last read or
261
+ // wrote. The on-disk copy must still be valid to merge onto.
262
+ let disk;
263
+ try {
264
+ disk = parseManifest(currentOnDisk, path);
265
+ }
266
+ catch (error) {
267
+ throw new Error(`${path} was amended on disk since this run last read it, but the ` +
268
+ `amended copy could not be merged: ${error.message}`, { cause: error });
269
+ }
270
+ const { manifest: merged, removedWorkstreamIds, removedPrerequisiteIds } = mergeManifests(disk, manifest);
271
+ const mergedSerialized = `${JSON.stringify(merged, null, 2)}\n`;
272
+ try {
273
+ parseManifest(mergedSerialized, path);
274
+ }
275
+ catch (error) {
276
+ throw new Error(`${path} was amended on disk since this run last read it, and merging ` +
277
+ `the run's changes onto the amendment produced an invalid manifest: ` +
278
+ `${error.message}`, { cause: error });
279
+ }
280
+ await writeFile(path, mergedSerialized, "utf8");
281
+ lastBytes.set(path, mergedSerialized);
282
+ mergeCount.set(path, (mergeCount.get(path) ?? 0) + 1);
283
+ adoptMerged(manifest, merged);
284
+ options?.log?.(`manifest: on-disk copy was amended since this run loaded it; merged ` +
285
+ `the human's edits and kept the runner's status changes (${path})`);
286
+ for (const id of removedWorkstreamIds) {
287
+ options?.log?.(`manifest: workstream "${id}" was removed from the manifest by a ` +
288
+ `human edit; discarding this run's in-memory progress for it (${path})`);
289
+ }
290
+ for (const id of removedPrerequisiteIds) {
291
+ options?.log?.(`manifest: prerequisite "${id}" was removed from the manifest by a ` +
292
+ `human edit; discarding this run's in-memory progress for it (${path})`);
293
+ }
294
+ return { merged: true };
295
+ }
296
+ export function manifestMergeCount(root, programId) {
297
+ return mergeCount.get(manifestPath(root, programId)) ?? 0;
298
+ }
299
+ /**
300
+ * Field-level merge of a runner-held in-memory manifest onto a validated
301
+ * on-disk copy. `disk` is the base — every field the human owns comes from
302
+ * it, including roster membership. Only the runner-owned fields listed in
303
+ * the module doc comment are overlaid from `memory`. Returns a new object;
304
+ * does not mutate either input (the caller adopts the result into `memory`
305
+ * separately, preserving object identity — see `adoptMerged`). Does not log:
306
+ * the caller only logs once the merge has been validated and written.
307
+ */
308
+ function mergeManifests(disk, memory) {
309
+ const memoryWorkstreamById = new Map(memory.workstreams.map((w) => [w.id, w]));
310
+ const diskWorkstreamIds = new Set(disk.workstreams.map((w) => w.id));
311
+ const diskPrerequisiteIds = new Set(disk.prerequisites.map((p) => p.id));
312
+ const mergedWorkstreams = disk.workstreams.map((diskWorkstream) => {
313
+ const memoryWorkstream = memoryWorkstreamById.get(diskWorkstream.id);
314
+ if (!memoryWorkstream)
315
+ return diskWorkstream;
316
+ const mergedDependencies = memoryWorkstream.dependencies.filter((id) => diskWorkstreamIds.has(id));
317
+ // Which prerequisites gate a workstream is treated as runner-owned, not
318
+ // human-owned like the rest of the workstream's structural fields: a
319
+ // from-disk merge here cannot tell a genuine human edit from an agent's
320
+ // own file write landing on disk mid-run, and the latter must never let
321
+ // a workstream strip its own gate (SC-11 — see
322
+ // test/run-program.test.ts's "self-satisfying HP-01" case, and the
323
+ // WS-02 decision log for the full reasoning).
324
+ const mergedPrerequisiteRefs = memoryWorkstream.prerequisites.filter((id) => diskPrerequisiteIds.has(id));
325
+ const merged = {
326
+ ...diskWorkstream,
327
+ status: memoryWorkstream.status,
328
+ dependencies: mergedDependencies,
329
+ prerequisites: mergedPrerequisiteRefs,
330
+ };
331
+ if (memoryWorkstream.specHash === undefined) {
332
+ delete merged.specHash;
333
+ }
334
+ else {
335
+ merged.specHash = memoryWorkstream.specHash;
336
+ }
337
+ if (memoryWorkstream.specStatus === undefined) {
338
+ delete merged.specStatus;
339
+ }
340
+ else {
341
+ merged.specStatus = memoryWorkstream.specStatus;
342
+ }
343
+ if (memoryWorkstream.commit === undefined) {
344
+ delete merged.commit;
345
+ }
346
+ else {
347
+ merged.commit = memoryWorkstream.commit;
348
+ }
349
+ return merged;
350
+ });
351
+ const removedWorkstreamIds = memory.workstreams
352
+ .map((w) => w.id)
353
+ .filter((id) => !diskWorkstreamIds.has(id));
354
+ const memoryPrerequisiteById = new Map(memory.prerequisites.map((p) => [p.id, p]));
355
+ const mergedPrerequisites = disk.prerequisites.map((diskPrerequisite) => {
356
+ const memoryPrerequisite = memoryPrerequisiteById.get(diskPrerequisite.id);
357
+ if (!memoryPrerequisite)
358
+ return diskPrerequisite;
359
+ return { ...diskPrerequisite, status: memoryPrerequisite.status };
360
+ });
361
+ const removedPrerequisiteIds = memory.prerequisites
362
+ .map((p) => p.id)
363
+ .filter((id) => !diskPrerequisiteIds.has(id));
364
+ const manifest = {
365
+ ...disk,
366
+ program: { ...disk.program, status: memory.program.status },
367
+ workstreams: mergedWorkstreams,
368
+ prerequisites: mergedPrerequisites,
369
+ };
370
+ return { manifest, removedWorkstreamIds, removedPrerequisiteIds };
371
+ }
372
+ /**
373
+ * Replaces every enumerable key of `target` with `source`'s keys — not a
374
+ * shallow `Object.assign`, which would leave a key deleted on `source` (a
375
+ * human removing a workstream's optional `size`, or a top-level `.loose()`
376
+ * key) stranded on `target`. Preserves `target`'s object identity.
377
+ */
378
+ function replaceContents(target, source) {
379
+ const targetBag = target;
380
+ const sourceBag = source;
381
+ for (const key of Object.keys(targetBag))
382
+ delete targetBag[key];
383
+ Object.assign(targetBag, sourceBag);
384
+ }
385
+ /**
386
+ * Adopts a merged manifest into the run's existing in-memory object by
387
+ * updating objects in place rather than swapping references — the build
388
+ * loop and topological order hold references to the original workstream
389
+ * objects, and swapping would detach them (see WS-02 decision: "Adopt the
390
+ * merged manifest by updating memory's objects in place").
391
+ */
392
+ function adoptMerged(memory, merged) {
393
+ const mergedWorkstreamById = new Map(merged.workstreams.map((w) => [w.id, w]));
394
+ const survivingWorkstreams = memory.workstreams.filter((workstream) => {
395
+ const match = mergedWorkstreamById.get(workstream.id);
396
+ if (!match)
397
+ return false;
398
+ replaceContents(workstream, match);
399
+ return true;
400
+ });
401
+ const survivingWorkstreamIds = new Set(survivingWorkstreams.map((w) => w.id));
402
+ for (const mergedWorkstream of merged.workstreams) {
403
+ if (!survivingWorkstreamIds.has(mergedWorkstream.id)) {
404
+ survivingWorkstreams.push({ ...mergedWorkstream });
405
+ }
406
+ }
407
+ const mergedPrerequisiteById = new Map(merged.prerequisites.map((p) => [p.id, p]));
408
+ const survivingPrerequisites = memory.prerequisites.filter((prerequisite) => {
409
+ const match = mergedPrerequisiteById.get(prerequisite.id);
410
+ if (!match)
411
+ return false;
412
+ replaceContents(prerequisite, match);
413
+ return true;
414
+ });
415
+ const survivingPrerequisiteIds = new Set(survivingPrerequisites.map((p) => p.id));
416
+ for (const mergedPrerequisite of merged.prerequisites) {
417
+ if (!survivingPrerequisiteIds.has(mergedPrerequisite.id)) {
418
+ survivingPrerequisites.push({ ...mergedPrerequisite });
419
+ }
420
+ }
421
+ replaceContents(memory, merged);
422
+ memory.workstreams = survivingWorkstreams;
423
+ memory.prerequisites = survivingPrerequisites;
199
424
  }
200
425
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}