@jungjaehoon/mama-os 0.36.0 → 0.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/agent/agent-loop.d.ts +2 -1
  2. package/dist/agent/agent-loop.d.ts.map +1 -1
  3. package/dist/agent/agent-loop.js.map +1 -1
  4. package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
  5. package/dist/agent/code-act/host-bridge.js +25 -2
  6. package/dist/agent/code-act/host-bridge.js.map +1 -1
  7. package/dist/agent/code-act/type-definition-generator.d.ts.map +1 -1
  8. package/dist/agent/code-act/type-definition-generator.js +3 -1
  9. package/dist/agent/code-act/type-definition-generator.js.map +1 -1
  10. package/dist/agent/context-compile-service.d.ts +2 -0
  11. package/dist/agent/context-compile-service.d.ts.map +1 -1
  12. package/dist/agent/context-compile-service.js +1 -1
  13. package/dist/agent/context-compile-service.js.map +1 -1
  14. package/dist/agent/gateway-tool-executor.d.ts +5 -4
  15. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  16. package/dist/agent/gateway-tool-executor.js +66 -20
  17. package/dist/agent/gateway-tool-executor.js.map +1 -1
  18. package/dist/api/report-handler.d.ts +9 -5
  19. package/dist/api/report-handler.d.ts.map +1 -1
  20. package/dist/api/report-handler.js +26 -13
  21. package/dist/api/report-handler.js.map +1 -1
  22. package/dist/api/report-persistence.d.ts.map +1 -1
  23. package/dist/api/report-persistence.js +6 -3
  24. package/dist/api/report-persistence.js.map +1 -1
  25. package/dist/api/runtime-status-handler.d.ts +1 -0
  26. package/dist/api/runtime-status-handler.d.ts.map +1 -1
  27. package/dist/api/runtime-status-handler.js +1 -0
  28. package/dist/api/runtime-status-handler.js.map +1 -1
  29. package/dist/cli/commands/start.d.ts +14 -1
  30. package/dist/cli/commands/start.d.ts.map +1 -1
  31. package/dist/cli/commands/start.js +69 -47
  32. package/dist/cli/commands/start.js.map +1 -1
  33. package/dist/cli/commands/status.d.ts +6 -0
  34. package/dist/cli/commands/status.d.ts.map +1 -1
  35. package/dist/cli/commands/status.js +89 -0
  36. package/dist/cli/commands/status.js.map +1 -1
  37. package/dist/cli/index.js +2 -15
  38. package/dist/cli/index.js.map +1 -1
  39. package/dist/cli/runtime/api-routes-init.d.ts +7 -1
  40. package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
  41. package/dist/cli/runtime/api-routes-init.js +104 -29
  42. package/dist/cli/runtime/api-routes-init.js.map +1 -1
  43. package/dist/cli/runtime/api-server-init.d.ts.map +1 -1
  44. package/dist/cli/runtime/api-server-init.js +3 -0
  45. package/dist/cli/runtime/api-server-init.js.map +1 -1
  46. package/dist/operator/action-verifier.d.ts +2 -0
  47. package/dist/operator/action-verifier.d.ts.map +1 -1
  48. package/dist/operator/action-verifier.js +3 -2
  49. package/dist/operator/action-verifier.js.map +1 -1
  50. package/dist/operator/board-reconcile.d.ts +2 -2
  51. package/dist/operator/board-reconcile.d.ts.map +1 -1
  52. package/dist/operator/board-reconcile.js +10 -2
  53. package/dist/operator/board-reconcile.js.map +1 -1
  54. package/dist/operator/board-refresh-gate.d.ts +34 -0
  55. package/dist/operator/board-refresh-gate.d.ts.map +1 -0
  56. package/dist/operator/board-refresh-gate.js +82 -0
  57. package/dist/operator/board-refresh-gate.js.map +1 -0
  58. package/dist/operator/briefs.d.ts.map +1 -1
  59. package/dist/operator/briefs.js +92 -4
  60. package/dist/operator/briefs.js.map +1 -1
  61. package/dist/operator/workorder-hooks.d.ts +14 -0
  62. package/dist/operator/workorder-hooks.d.ts.map +1 -1
  63. package/dist/operator/workorder-hooks.js +64 -0
  64. package/dist/operator/workorder-hooks.js.map +1 -1
  65. package/dist/operator/workorder-publishers.d.ts +10 -0
  66. package/dist/operator/workorder-publishers.d.ts.map +1 -1
  67. package/dist/operator/workorder-publishers.js +39 -8
  68. package/dist/operator/workorder-publishers.js.map +1 -1
  69. package/dist/package-version.d.ts +3 -0
  70. package/dist/package-version.d.ts.map +1 -0
  71. package/dist/package-version.js +18 -0
  72. package/dist/package-version.js.map +1 -0
  73. package/package.json +2 -2
  74. package/public/viewer/js/modules/system.js +1 -0
  75. package/public/viewer/src/modules/system.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"action-verifier.js","sourceRoot":"","sources":["../../src/operator/action-verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-verifier.js","sourceRoot":"","sources":["../../src/operator/action-verifier.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export interface ReconcileSchedulerOptions {
33
33
  globalMaxPerHour?: number;
34
34
  /** Bounded pending lines kept per channel while deferred. */
35
35
  maxPendingLines?: number;
36
- run: (channelKey: string, deltaLines: string[], eventIds: string[]) => Promise<void>;
36
+ run: (channelKey: string, deltaLines: string[], eventIds: string[], repairGeneration: number) => Promise<void>;
37
37
  log: (line: string) => void;
38
38
  now?: () => number;
39
39
  }
@@ -50,7 +50,7 @@ export declare class ReconcileScheduler {
50
50
  private retryTimer;
51
51
  private stopped;
52
52
  constructor(opts: ReconcileSchedulerOptions);
53
- enqueue(channelKey: string, lines: string[], eventIds?: readonly string[]): void;
53
+ enqueue(channelKey: string, lines: string[], eventIds?: readonly string[], repairGeneration?: number): void;
54
54
  /** Channels currently holding deferred/pending work (for observability). */
55
55
  dirtyChannels(): string[];
56
56
  stop(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"board-reconcile.d.ts","sourceRoot":"","sources":["../../src/operator/board-reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAKnD,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAiBD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,yBAAyB;IAU3C,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,SAAS,MAAM,EAAO,GAAG,IAAI;IAkCpF,4EAA4E;IAC5E,aAAa,IAAI,MAAM,EAAE;IAMzB,IAAI,IAAI,IAAI;IAUZ,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;YAcP,IAAI;CAsCnB"}
1
+ {"version":3,"file":"board-reconcile.d.ts","sourceRoot":"","sources":["../../src/operator/board-reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,oBAAoB;IACnC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAKnD,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,CACH,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,gBAAgB,EAAE,MAAM,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAmBD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,yBAAyB;IAU3C,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,GAAE,SAAS,MAAM,EAAO,EAChC,gBAAgB,SAAI,GACnB,IAAI;IAuCP,4EAA4E;IAC5E,aAAa,IAAI,MAAM,EAAE;IAMzB,IAAI,IAAI,IAAI;IAUZ,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;YAcP,IAAI;CAyCnB"}
@@ -41,12 +41,16 @@ class ReconcileScheduler {
41
41
  this.log = opts.log;
42
42
  this.now = opts.now ?? Date.now;
43
43
  }
44
- enqueue(channelKey, lines, eventIds = []) {
44
+ enqueue(channelKey, lines, eventIds = [], repairGeneration = 0) {
45
45
  if (this.stopped)
46
46
  return;
47
+ if (!Number.isSafeInteger(repairGeneration) || repairGeneration < 0) {
48
+ throw new Error('reconcile repairGeneration must be a non-negative safe integer');
49
+ }
47
50
  const state = this.channels.get(channelKey) ?? {
48
51
  pendingLines: [],
49
52
  pendingEventIds: [],
53
+ repairGeneration: 0,
50
54
  debounceTimer: null,
51
55
  firstEnqueuedAt: null,
52
56
  };
@@ -58,6 +62,7 @@ class ReconcileScheduler {
58
62
  this.log(`[reconcile] ${channelKey}: cause set exceeded ${MAX_PENDING_EVENT_IDS}; dropping the oldest ${mergedIds.length - MAX_PENDING_EVENT_IDS}`);
59
63
  }
60
64
  state.pendingEventIds = mergedIds.slice(-MAX_PENDING_EVENT_IDS);
65
+ state.repairGeneration = Math.max(state.repairGeneration, repairGeneration);
61
66
  if (state.firstEnqueuedAt === null)
62
67
  state.firstEnqueuedAt = this.now();
63
68
  this.channels.set(channelKey, state);
@@ -125,12 +130,14 @@ class ReconcileScheduler {
125
130
  }
126
131
  const lines = state.pendingLines;
127
132
  const eventIds = state.pendingEventIds;
133
+ const repairGeneration = state.repairGeneration;
128
134
  state.pendingLines = [];
129
135
  state.pendingEventIds = [];
136
+ state.repairGeneration = 0;
130
137
  state.firstEnqueuedAt = null;
131
138
  this.runTimestamps.push(this.now());
132
139
  try {
133
- await this.run(channelKey, lines, eventIds);
140
+ await this.run(channelKey, lines, eventIds, repairGeneration);
134
141
  }
135
142
  catch (err) {
136
143
  // Run failure keeps the channel dirty for retry; the scheduler survives. The cause
@@ -138,6 +145,7 @@ class ReconcileScheduler {
138
145
  // would run on evidence it could no longer name.
139
146
  state.pendingLines = [...lines, ...state.pendingLines].slice(-this.maxPendingLines);
140
147
  state.pendingEventIds = [...new Set([...eventIds, ...state.pendingEventIds])].slice(-MAX_PENDING_EVENT_IDS);
148
+ state.repairGeneration = Math.max(repairGeneration, state.repairGeneration);
141
149
  if (state.firstEnqueuedAt === null)
142
150
  state.firstEnqueuedAt = this.now();
143
151
  this.log(`[reconcile] run failed for ${channelKey}: ${err instanceof Error ? err.message : String(err)}; kept dirty for retry`);
@@ -1 +1 @@
1
- {"version":3,"file":"board-reconcile.js","sourceRoot":"","sources":["../../src/operator/board-reconcile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"board-reconcile.js","sourceRoot":"","sources":["../../src/operator/board-reconcile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAYH,yFAAyF;AAC5E,QAAA,mBAAmB,GAAG,eAAe,CAAC;AAEnD,qFAAqF;AACrF,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAsClC,MAAa,kBAAkB;IACZ,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,gBAAgB,CAAS;IACzB,eAAe,CAAS;IACxB,GAAG,CAAmC;IACtC,GAAG,CAAmC;IACtC,GAAG,CAAe;IAE3B,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC3C,aAAa,GAAa,EAAE,CAAC;IAC7B,UAAU,GAAyC,IAAI,CAAC;IACxD,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,IAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,OAAO,CACL,UAAkB,EAClB,KAAe,EACf,WAA8B,EAAE,EAChC,gBAAgB,GAAG,CAAC;QAEpB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;YAC7C,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,CAAC;YACnB,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,IAAI;SACtB,CAAC;QACF,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,eAAe,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,SAAS,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;YAC7C,mFAAmF;YACnF,+CAA+C;YAC/C,IAAI,CAAC,GAAG,CACN,eAAe,UAAU,wBAAwB,qBAAqB,yBAAyB,SAAS,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAC1I,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC;QAChE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC5E,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;YAAE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAErC,IAAI,KAAK,CAAC,aAAa;YAAE,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3D,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,4EAA4E;IAC5E,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,aAAa;gBAAE,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC3D,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAEO,eAAe;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAC3D,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa;oBAAE,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEtD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC5B,4EAA4E;YAC5E,IAAI,CAAC,GAAG,CACN,wCAAwC,IAAI,CAAC,gBAAgB,kBAAkB,UAAU,KAAK,KAAK,CAAC,YAAY,CAAC,MAAM,cAAc,CACtI,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;QACvC,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAChD,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;QAC3B,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC3B,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mFAAmF;YACnF,mFAAmF;YACnF,iDAAiD;YACjD,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpF,KAAK,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CACjF,CAAC,qBAAqB,CACvB,CAAC;YACF,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5E,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;gBAAE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvE,IAAI,CAAC,GAAG,CACN,8BAA8B,UAAU,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CACtH,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AAlJD,gDAkJC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * In-memory repair authority for the event-driven Board path (TG-06).
3
+ *
4
+ * The gate starts dirty so every boot earns one full repair. Channel deltas
5
+ * receive monotonically increasing generations before debounce/budgeting. A
6
+ * completion may clear only the generation it captured; later ingress stays
7
+ * dirty and is repaired by a later reconcile or full pass.
8
+ */
9
+ export interface BoardRefreshGateOptions {
10
+ /** Test seam. Production seeds from epoch milliseconds to order across boots. */
11
+ initialGeneration?: number;
12
+ now?: () => number;
13
+ }
14
+ export interface FullRepairCapture {
15
+ repairGeneration: number;
16
+ noUpdateScope: string;
17
+ }
18
+ export declare function boardFullNoUpdateScope(repairGeneration: number): string;
19
+ export declare class BoardRefreshGate {
20
+ private generation;
21
+ private readonly bootGeneration;
22
+ private bootDirty;
23
+ private readonly channelGenerations;
24
+ constructor(options?: BoardRefreshGateOptions);
25
+ needsFullRepair(): boolean;
26
+ markChannelDirty(channelKey: string): number;
27
+ dirtyGeneration(channelKey: string): number | null;
28
+ captureFullRepair(): FullRepairCapture;
29
+ completeVerifiedReconcile(channelKey: string, capturedGeneration: number): void;
30
+ consumeUnauthorizedPartition(channelKey: string, capturedGeneration: number): void;
31
+ completeVerifiedFull(capturedGeneration: number): void;
32
+ private clearCapturedChannelGeneration;
33
+ }
34
+ //# sourceMappingURL=board-refresh-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-refresh-gate.d.ts","sourceRoot":"","sources":["../../src/operator/board-refresh-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAGvE;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;gBAEpD,OAAO,GAAE,uBAA4B;IAOjD,eAAe,IAAI,OAAO;IAI1B,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAY5C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIlD,iBAAiB,IAAI,iBAAiB;IAOtC,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAI/E,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAIlF,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAYtD,OAAO,CAAC,8BAA8B;CAOvC"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * In-memory repair authority for the event-driven Board path (TG-06).
4
+ *
5
+ * The gate starts dirty so every boot earns one full repair. Channel deltas
6
+ * receive monotonically increasing generations before debounce/budgeting. A
7
+ * completion may clear only the generation it captured; later ingress stays
8
+ * dirty and is repaired by a later reconcile or full pass.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.BoardRefreshGate = void 0;
12
+ exports.boardFullNoUpdateScope = boardFullNoUpdateScope;
13
+ function boardFullNoUpdateScope(repairGeneration) {
14
+ assertRepairGeneration(repairGeneration);
15
+ return `full:${repairGeneration}`;
16
+ }
17
+ function assertRepairGeneration(value) {
18
+ if (!Number.isSafeInteger(value) || value < 0) {
19
+ throw new Error(`board repair generation must be a non-negative safe integer`);
20
+ }
21
+ }
22
+ class BoardRefreshGate {
23
+ generation;
24
+ bootGeneration;
25
+ bootDirty = true;
26
+ channelGenerations = new Map();
27
+ constructor(options = {}) {
28
+ const initial = options.initialGeneration ?? (options.now ?? Date.now)();
29
+ assertRepairGeneration(initial);
30
+ this.generation = initial;
31
+ this.bootGeneration = initial;
32
+ }
33
+ needsFullRepair() {
34
+ return this.bootDirty || this.channelGenerations.size > 0;
35
+ }
36
+ markChannelDirty(channelKey) {
37
+ if (channelKey.length === 0) {
38
+ throw new Error('board repair channelKey must be non-empty');
39
+ }
40
+ if (this.generation >= Number.MAX_SAFE_INTEGER) {
41
+ throw new Error('board repair generation exhausted');
42
+ }
43
+ this.generation += 1;
44
+ this.channelGenerations.set(channelKey, this.generation);
45
+ return this.generation;
46
+ }
47
+ dirtyGeneration(channelKey) {
48
+ return this.channelGenerations.get(channelKey) ?? null;
49
+ }
50
+ captureFullRepair() {
51
+ return {
52
+ repairGeneration: this.generation,
53
+ noUpdateScope: boardFullNoUpdateScope(this.generation),
54
+ };
55
+ }
56
+ completeVerifiedReconcile(channelKey, capturedGeneration) {
57
+ this.clearCapturedChannelGeneration(channelKey, capturedGeneration);
58
+ }
59
+ consumeUnauthorizedPartition(channelKey, capturedGeneration) {
60
+ this.clearCapturedChannelGeneration(channelKey, capturedGeneration);
61
+ }
62
+ completeVerifiedFull(capturedGeneration) {
63
+ assertRepairGeneration(capturedGeneration);
64
+ if (capturedGeneration >= this.bootGeneration) {
65
+ this.bootDirty = false;
66
+ }
67
+ for (const [channelKey, generation] of this.channelGenerations) {
68
+ if (generation <= capturedGeneration) {
69
+ this.channelGenerations.delete(channelKey);
70
+ }
71
+ }
72
+ }
73
+ clearCapturedChannelGeneration(channelKey, capturedGeneration) {
74
+ assertRepairGeneration(capturedGeneration);
75
+ const current = this.channelGenerations.get(channelKey);
76
+ if (current !== undefined && current <= capturedGeneration) {
77
+ this.channelGenerations.delete(channelKey);
78
+ }
79
+ }
80
+ }
81
+ exports.BoardRefreshGate = BoardRefreshGate;
82
+ //# sourceMappingURL=board-refresh-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-refresh-gate.js","sourceRoot":"","sources":["../../src/operator/board-refresh-gate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"briefs.d.ts","sourceRoot":"","sources":["../../src/operator/briefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMvE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,2CAA2C,CAAC;AAiCnD,wBAAgB,SAAS,CAAC,OAAO,GAAE,MAAkB,GAAG,MAAM,CAE7D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,MAAkB,GAAG,MAAM,CAElF;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI,CAIzF;AAuED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAW7D;AAgBD,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAWR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAkB,GAAG,aAAa,EAAE,CAgBzE"}
1
+ {"version":3,"file":"briefs.d.ts","sourceRoot":"","sources":["../../src/operator/briefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMvE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,2CAA2C,CAAC;AAiCnD,wBAAgB,SAAS,CAAC,OAAO,GAAE,MAAkB,GAAG,MAAM,CAE7D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,MAAkB,GAAG,MAAM,CAElF;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,MAAkB,GAAG,MAAM,GAAG,IAAI,CAIzF;AAuFD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAW7D;AAkGD,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAcR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAkB,GAAG,aAAa,EAAE,CAgBzE"}
@@ -69,10 +69,14 @@ function loadBrief(kind, homeDir = (0, node_os_1.homedir)()) {
69
69
  const stripManagedMarker = (persona) => persona.replace(/^<!-- MAMA managed [^\n]*-->\n*/, '');
70
70
  const BOARD_WORKORDER_CONTRACT = `
71
71
  ## Work order contract (Stage 2)
72
+ This managed contract supersedes any earlier Stage-2 instructions in this brief.
73
+
72
74
  Your work order input is a JSON object:
73
75
  - mode: "full" | "reconcile"
74
76
  - force: true when the owner explicitly requested a fresh board - do NOT reply
75
77
  NO_UPDATE; rebuild and publish even if nothing changed.
78
+ - repairGeneration: the host-captured Board repair generation.
79
+ - noUpdateScope: the exact host-authored scope for a full-run no-op.
76
80
  - channelKey + deltaLines: present in reconcile mode only.
77
81
  - attempts: retry counter (informational).
78
82
 
@@ -80,8 +84,12 @@ mode "full" = the scheduled board rewrite. Before writing, check whether an
80
84
  update is needed: agent_notices({limit: 100}) for the last board publish
81
85
  boundary, then a recency check (mama_search({limit: 30}) with NO query,
82
86
  compare created_at). If nothing substantive is newer and force is not set,
83
- respond NO_UPDATE and stop. Otherwise follow "How to Write" and publish ALL
84
- FOUR slots in ONE report_publish call.
87
+ call contract_no_update({reason, scope: input.noUpdateScope}) with that exact
88
+ scope when noUpdateScope is present, then respond NO_UPDATE and stop. When
89
+ noUpdateScope is absent, respond NO_UPDATE and stop without calling
90
+ contract_no_update; do not substitute or derive another scope. Otherwise follow
91
+ "How to Write" and publish ALL
92
+ FOUR slots in ONE report_publish({slots: {briefing, action_required, decisions, pipeline}}) call.
85
93
 
86
94
  mode "reconcile" = a single-channel delta reconcile for input.channelKey using
87
95
  input.deltaLines. Apply the RECONCILE RUN rules from this brief (the mode
@@ -101,6 +109,13 @@ host does not prescribe an outcome or tool order. You must not use task_update f
101
109
  statuses, or evidence. When there are no candidates, preserve ordinary reconcile
102
110
  behavior unchanged.
103
111
  `;
112
+ const MANAGED_BOARD_CONTRACT_START = '<!-- MAMA managed board work-order contract v1:start -->';
113
+ const MANAGED_BOARD_CONTRACT_END = '<!-- MAMA managed board work-order contract v1:end -->';
114
+ const MANAGED_BOARD_WORKORDER_CONTRACT = [
115
+ MANAGED_BOARD_CONTRACT_START,
116
+ BOARD_WORKORDER_CONTRACT.trim(),
117
+ MANAGED_BOARD_CONTRACT_END,
118
+ ].join('\n');
104
119
  const WIKI_WORKORDER_CONTRACT = `
105
120
  ## Work order contract (Stage 2)
106
121
  Your work order input is a JSON object: { batchId, events, attempts }.
@@ -133,7 +148,7 @@ scheduledAt as the current time reference.
133
148
  function buildDefaultBrief(kind) {
134
149
  switch (kind) {
135
150
  case 'board':
136
- return `${stripManagedMarker(dashboard_agent_persona_js_1.DASHBOARD_AGENT_PERSONA)}\n${BOARD_WORKORDER_CONTRACT}`;
151
+ return `${stripManagedMarker(dashboard_agent_persona_js_1.DASHBOARD_AGENT_PERSONA)}\n\n${MANAGED_BOARD_WORKORDER_CONTRACT}\n`;
137
152
  case 'wiki':
138
153
  return `${stripManagedMarker(wiki_agent_persona_js_1.WIKI_AGENT_PERSONA)}\n${WIKI_WORKORDER_CONTRACT}`;
139
154
  case 'memory-curation':
@@ -155,10 +170,83 @@ function stripLegacyPrivateLines(kind, raw) {
155
170
  }
156
171
  return projected;
157
172
  }
173
+ function openingMarkdownFence(line) {
174
+ const match = /^ {0,3}(`{3,}|~{3,})/.exec(line);
175
+ if (!match?.[1])
176
+ return null;
177
+ return {
178
+ marker: match[1][0],
179
+ length: match[1].length,
180
+ };
181
+ }
182
+ function closesMarkdownFence(line, fence) {
183
+ const marker = fence.marker === '`' ? '\\`' : '~';
184
+ return new RegExp(`^ {0,3}${marker}{${fence.length},}[ \\t]*$`).test(line);
185
+ }
186
+ function findManagedBoardContracts(raw) {
187
+ let fence = null;
188
+ let pending = null;
189
+ const contracts = [];
190
+ let lineStart = 0;
191
+ while (lineStart < raw.length) {
192
+ const newline = raw.indexOf('\n', lineStart);
193
+ const nextLineStart = newline === -1 ? raw.length : newline + 1;
194
+ let contentEnd = newline === -1 ? raw.length : newline;
195
+ if (contentEnd > lineStart && raw[contentEnd - 1] === '\r') {
196
+ contentEnd -= 1;
197
+ }
198
+ const line = raw.slice(lineStart, contentEnd);
199
+ if (fence) {
200
+ if (closesMarkdownFence(line, fence)) {
201
+ fence = null;
202
+ }
203
+ }
204
+ else {
205
+ const openingFence = openingMarkdownFence(line);
206
+ if (openingFence) {
207
+ fence = openingFence;
208
+ }
209
+ else {
210
+ const start = /^<!-- MAMA managed board work-order contract v(\d+):start -->$/.exec(line);
211
+ if (start?.[1]) {
212
+ pending = { start: lineStart, version: start[1] };
213
+ }
214
+ else if (pending) {
215
+ const end = /^<!-- MAMA managed board work-order contract v(\d+):end -->$/.exec(line);
216
+ if (end?.[1] === pending.version) {
217
+ contracts.push({ start: pending.start, end: contentEnd });
218
+ pending = null;
219
+ }
220
+ }
221
+ }
222
+ }
223
+ lineStart = nextLineStart;
224
+ }
225
+ return contracts;
226
+ }
227
+ function projectCurrentBoardContract(raw) {
228
+ const managed = findManagedBoardContracts(raw);
229
+ if (managed.length === 0) {
230
+ const separator = raw.length === 0 ? '' : raw.endsWith('\n\n') ? '' : raw.endsWith('\n') ? '\n' : '\n\n';
231
+ return `${raw}${separator}${MANAGED_BOARD_WORKORDER_CONTRACT}\n`;
232
+ }
233
+ let projected = '';
234
+ let cursor = 0;
235
+ for (const [index, contract] of managed.entries()) {
236
+ projected += raw.slice(cursor, contract.start);
237
+ if (index === 0) {
238
+ projected += MANAGED_BOARD_WORKORDER_CONTRACT;
239
+ }
240
+ cursor = contract.end;
241
+ }
242
+ return projected + raw.slice(cursor);
243
+ }
158
244
  /** Project a user-owned work-order brief for one run without changing its file. */
159
245
  function projectWorkOrderBriefForPrompt(kind, raw, policy) {
160
246
  const overlay = (0, private_prompt_overlay_js_1.buildPrivatePromptOverlay)((0, private_connector_policy_js_1.resolveWorkOrderPrivateSurface)(kind), policy);
161
- const projected = (0, private_prompt_overlay_js_1.stripDisabledPrivatePromptRecipes)(stripLegacyPrivateLines(kind, (0, private_prompt_overlay_js_1.stripMarkedPrivatePromptOverlays)(raw)), overlay.length > 0);
247
+ const withoutMarkedOverlay = (0, private_prompt_overlay_js_1.stripMarkedPrivatePromptOverlays)(raw);
248
+ const contracted = kind === 'board' ? projectCurrentBoardContract(withoutMarkedOverlay) : withoutMarkedOverlay;
249
+ const projected = (0, private_prompt_overlay_js_1.stripDisabledPrivatePromptRecipes)(stripLegacyPrivateLines(kind, contracted), overlay.length > 0);
162
250
  if (!overlay) {
163
251
  return projected;
164
252
  }
@@ -1 +1 @@
1
- {"version":3,"file":"briefs.js","sourceRoot":"","sources":["../../src/operator/briefs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"briefs.js","sourceRoot":"","sources":["../../src/operator/briefs.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,18 @@ import type { WorkOrderEffectVerdict, WorkOrderHook } from './workorder-consumer
19
19
  export interface BoardCandidateReceiptInspector {
20
20
  inspectBoardCandidateAttempt(attemptId: number): BoardCandidateAttemptState;
21
21
  }
22
+ export interface BoardRefreshGatePort {
23
+ completeVerifiedReconcile(channelKey: string, capturedGeneration: number): void;
24
+ completeVerifiedFull(capturedGeneration: number): void;
25
+ }
26
+ /**
27
+ * Clear repair dirt only when both independent authorities agree: the
28
+ * run-bound action verifier observed an effect and candidate receipts (when
29
+ * present) are complete. The receipt verdict remains the consumer verdict so
30
+ * the existing retry policy is unchanged; unverified prose simply leaves the
31
+ * gate dirty for the scheduled repair pass.
32
+ */
33
+ export declare function applyBoardRefreshVerdict(workOrder: WorkOrderRecord, actionVerified: boolean, receiptVerdict: WorkOrderEffectVerdict, gate: BoardRefreshGatePort): WorkOrderEffectVerdict;
22
34
  /** Candidate completion is established by receipts, never verifier telemetry. */
23
35
  export declare function boardCandidateReceiptVerdict(workOrder: WorkOrderRecord, inspector: BoardCandidateReceiptInspector | null | undefined): WorkOrderEffectVerdict;
24
36
  /**
@@ -59,6 +71,8 @@ export interface WorkerTraceQueries {
59
71
  getTraceMaxId: () => number;
60
72
  countObligatedTraceRowsSince: (maxId: number) => number;
61
73
  }
74
+ /** Completed, attempt-bound report_publish evidence for a complete Board repair. */
75
+ export declare function buildFullBoardTraceQueries(sessionsDb: SQLiteDatabase | undefined, workerChannelId: string, workorderAttemptId: number): WorkerTraceQueries;
62
76
  export declare function buildWorkerTraceQueries(sessionsDb: SQLiteDatabase | undefined, workerChannelId: string, obligatedTools?: readonly string[]): WorkerTraceQueries;
63
77
  export interface PromotionHookEvents {
64
78
  emitAgentAction: (action: 'promoted' | 'no_update', target: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"workorder-hooks.d.ts","sourceRoot":"","sources":["../../src/operator/workorder-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAErF,MAAM,WAAW,8BAA8B;IAC7C,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,CAAC;CAC7E;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,8BAA8B,GAAG,IAAI,GAAG,SAAS,GAC3D,sBAAsB,CAmBxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB;;;;CAkBqB,CAAC;AAEvD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB;;;CAGyB,CAAC;AAavD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,4BAA4B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACzD;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,eAAe,EAAE,MAAM,EACvB,cAAc,GAAE,SAAS,MAAM,EAAoB,GAClD,kBAAkB,CAkCpB;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAMzD;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,GACjB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqBrC;AAED,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,MAAM,EAAE,kBAAkB,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,yEAAyE;IACzE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,CAAC,EAAE,iBAAiB,GACvB,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAiCnE;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC3B,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GACpC,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAmBnE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CAsBpF"}
1
+ {"version":3,"file":"workorder-hooks.d.ts","sourceRoot":"","sources":["../../src/operator/workorder-hooks.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,9 @@
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.LANE_WRITE_TOOLS = exports.LANE_OBLIGATED_TOOLS = void 0;
18
+ exports.applyBoardRefreshVerdict = applyBoardRefreshVerdict;
18
19
  exports.boardCandidateReceiptVerdict = boardCandidateReceiptVerdict;
20
+ exports.buildFullBoardTraceQueries = buildFullBoardTraceQueries;
19
21
  exports.buildWorkerTraceQueries = buildWorkerTraceQueries;
20
22
  exports.readLaneClaim = readLaneClaim;
21
23
  exports.reconcileClaimAgainstTraces = reconcileClaimAgainstTraces;
@@ -24,6 +26,32 @@ exports.buildWikiAfterHook = buildWikiAfterHook;
24
26
  exports.buildTemporalWorkOrderHook = buildTemporalWorkOrderHook;
25
27
  const action_verifier_js_1 = require("./action-verifier.js");
26
28
  const action_verifier_js_2 = require("./action-verifier.js");
29
+ /**
30
+ * Clear repair dirt only when both independent authorities agree: the
31
+ * run-bound action verifier observed an effect and candidate receipts (when
32
+ * present) are complete. The receipt verdict remains the consumer verdict so
33
+ * the existing retry policy is unchanged; unverified prose simply leaves the
34
+ * gate dirty for the scheduled repair pass.
35
+ */
36
+ function applyBoardRefreshVerdict(workOrder, actionVerified, receiptVerdict, gate) {
37
+ if (!actionVerified || receiptVerdict.disposition !== 'complete') {
38
+ return receiptVerdict;
39
+ }
40
+ const generation = workOrder.payload.repairGeneration;
41
+ if (!Number.isSafeInteger(generation) || generation < 0) {
42
+ return receiptVerdict;
43
+ }
44
+ if (workOrder.payload.mode === 'reconcile') {
45
+ const channelKey = workOrder.payload.channelKey;
46
+ if (typeof channelKey === 'string' && channelKey.length > 0) {
47
+ gate.completeVerifiedReconcile(channelKey, generation);
48
+ }
49
+ }
50
+ else if (workOrder.payload.mode === 'full') {
51
+ gate.completeVerifiedFull(generation);
52
+ }
53
+ return receiptVerdict;
54
+ }
27
55
  /** Candidate completion is established by receipts, never verifier telemetry. */
28
56
  function boardCandidateReceiptVerdict(workOrder, inspector) {
29
57
  const candidates = workOrder.payload.candidates;
@@ -103,6 +131,42 @@ function traceToolList(tools) {
103
131
  }
104
132
  return tools.map((t) => `'${t}'`).join(',');
105
133
  }
134
+ const REQUIRED_FULL_BOARD_SLOTS = ['briefing', 'action_required', 'decisions', 'pipeline'];
135
+ /** Completed, attempt-bound report_publish evidence for a complete Board repair. */
136
+ function buildFullBoardTraceQueries(sessionsDb, workerChannelId, workorderAttemptId) {
137
+ if (!Number.isSafeInteger(workorderAttemptId) || workorderAttemptId < 1) {
138
+ throw new Error('[workorder-hooks] full Board attempt id must be a positive integer');
139
+ }
140
+ const requiredSlotPredicates = REQUIRED_FULL_BOARD_SLOTS.map(() => `EXISTS (SELECT 1 FROM json_each(json_extract(details, '$.report_slot_ids')) WHERE value = ?)`).join(' AND ');
141
+ return {
142
+ getTraceMaxId: () => {
143
+ if (!sessionsDb)
144
+ return 0;
145
+ const row = sessionsDb
146
+ .prepare(`SELECT MAX(id) AS max_id FROM agent_activity
147
+ WHERE type = 'gateway_tool_call'
148
+ AND json_extract(details, '$.channel_id') = ?`)
149
+ .get(workerChannelId);
150
+ return row.max_id ?? 0;
151
+ },
152
+ countObligatedTraceRowsSince: (maxId) => {
153
+ if (!sessionsDb)
154
+ return 0;
155
+ const row = sessionsDb
156
+ .prepare(`SELECT COUNT(*) AS n FROM agent_activity
157
+ WHERE type = 'gateway_tool_call'
158
+ AND json_extract(details, '$.channel_id') = ?
159
+ AND json_extract(details, '$.workorder_attempt_id') = ?
160
+ AND execution_status = 'completed'
161
+ AND id > ?
162
+ AND normalized_tool_name = 'report_publish'
163
+ AND json_type(details, '$.report_slot_ids') = 'array'
164
+ AND ${requiredSlotPredicates}`)
165
+ .get(workerChannelId, workorderAttemptId, maxId, ...REQUIRED_FULL_BOARD_SLOTS);
166
+ return row.n;
167
+ },
168
+ };
169
+ }
106
170
  function buildWorkerTraceQueries(sessionsDb, workerChannelId, obligatedTools = action_verifier_js_1.OBLIGATED_TOOLS) {
107
171
  const TRACE_TOOL_LIST = traceToolList(obligatedTools);
108
172
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"workorder-hooks.js","sourceRoot":"","sources":["../../src/operator/workorder-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workorder-hooks.js","sourceRoot":"","sources":["../../src/operator/workorder-hooks.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,12 @@ export declare const STAGE2_FLAG_ENV = "MAMA_STAGE2_WORKORDERS";
19
19
  */
20
20
  export declare function assertStage2FlagCompatible(env?: NodeJS.ProcessEnv): void;
21
21
  export declare function boardFullKey(now: number): string;
22
+ /**
23
+ * Enabled reconcile mode has one repair occurrence open at a time. TaskLedger
24
+ * dedupes this key only while pending/in-progress; terminal rows release it so
25
+ * a later dirty generation can reuse the same key.
26
+ */
27
+ export declare function boardRepairKey(): string;
22
28
  /** Manual/forced orders get their own key (plan M2): a forced refresh must
23
29
  * never dedup against a pending scheduled FULL that lacks force. */
24
30
  export declare function boardManualKey(now: number): string;
@@ -37,6 +43,10 @@ export interface BoardPayload {
37
43
  mode: 'full' | 'reconcile';
38
44
  /** Owner-forced refresh: brief must publish even on NO_UPDATE. */
39
45
  force?: boolean;
46
+ /** Gate generation captured before enqueue. */
47
+ repairGeneration?: number;
48
+ /** Exact full-run contract_no_update scope: full:<repairGeneration>. */
49
+ noUpdateScope?: string;
40
50
  channelKey?: string;
41
51
  readonly deltaLines?: readonly string[];
42
52
  /** The delta batch this reconcile rests on; becomes the cause of what it changes. */