@jungjaehoon/mama-os 0.22.0 → 0.23.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 (128) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +3 -1
  3. package/dist/agent/agent-loop.d.ts +0 -3
  4. package/dist/agent/agent-loop.d.ts.map +1 -1
  5. package/dist/agent/agent-loop.js +49 -34
  6. package/dist/agent/agent-loop.js.map +1 -1
  7. package/dist/agent/gateway-tool-executor.d.ts +18 -0
  8. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  9. package/dist/agent/gateway-tool-executor.js +185 -6
  10. package/dist/agent/gateway-tool-executor.js.map +1 -1
  11. package/dist/agent/gateway-tools.md +10 -5
  12. package/dist/agent/role-manager.d.ts +22 -1
  13. package/dist/agent/role-manager.d.ts.map +1 -1
  14. package/dist/agent/role-manager.js +39 -2
  15. package/dist/agent/role-manager.js.map +1 -1
  16. package/dist/agent/tool-registry.d.ts.map +1 -1
  17. package/dist/agent/tool-registry.js +35 -5
  18. package/dist/agent/tool-registry.js.map +1 -1
  19. package/dist/agent/types.d.ts +9 -1
  20. package/dist/agent/types.d.ts.map +1 -1
  21. package/dist/agent/types.js.map +1 -1
  22. package/dist/api/graph-api.d.ts.map +1 -1
  23. package/dist/api/graph-api.js +43 -33
  24. package/dist/api/graph-api.js.map +1 -1
  25. package/dist/api/operator-tasks-handler.d.ts.map +1 -1
  26. package/dist/api/operator-tasks-handler.js +6 -2
  27. package/dist/api/operator-tasks-handler.js.map +1 -1
  28. package/dist/cli/commands/start.d.ts.map +1 -1
  29. package/dist/cli/commands/start.js +185 -2
  30. package/dist/cli/commands/start.js.map +1 -1
  31. package/dist/cli/config/config-manager.d.ts +0 -5
  32. package/dist/cli/config/config-manager.d.ts.map +1 -1
  33. package/dist/cli/config/config-manager.js +57 -2
  34. package/dist/cli/config/config-manager.js.map +1 -1
  35. package/dist/cli/config/types.d.ts.map +1 -1
  36. package/dist/cli/config/types.js +35 -0
  37. package/dist/cli/config/types.js.map +1 -1
  38. package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
  39. package/dist/cli/runtime/agent-loop-init.js +96 -51
  40. package/dist/cli/runtime/agent-loop-init.js.map +1 -1
  41. package/dist/cli/runtime/api-routes-init.d.ts +3 -0
  42. package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
  43. package/dist/cli/runtime/api-routes-init.js +293 -196
  44. package/dist/cli/runtime/api-routes-init.js.map +1 -1
  45. package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
  46. package/dist/cli/runtime/gateway-init.js +5 -0
  47. package/dist/cli/runtime/gateway-init.js.map +1 -1
  48. package/dist/cli/runtime/gateway-wiring.d.ts.map +1 -1
  49. package/dist/cli/runtime/gateway-wiring.js +6 -0
  50. package/dist/cli/runtime/gateway-wiring.js.map +1 -1
  51. package/dist/envelope/reactive-config.d.ts.map +1 -1
  52. package/dist/envelope/reactive-config.js +26 -1
  53. package/dist/envelope/reactive-config.js.map +1 -1
  54. package/dist/gateways/message-router.d.ts +18 -1
  55. package/dist/gateways/message-router.d.ts.map +1 -1
  56. package/dist/gateways/message-router.js +155 -22
  57. package/dist/gateways/message-router.js.map +1 -1
  58. package/dist/gateways/telegram.d.ts +1 -0
  59. package/dist/gateways/telegram.d.ts.map +1 -1
  60. package/dist/gateways/telegram.js +38 -1
  61. package/dist/gateways/telegram.js.map +1 -1
  62. package/dist/gateways/types.d.ts +3 -0
  63. package/dist/gateways/types.d.ts.map +1 -1
  64. package/dist/memory/history-extractor.d.ts +0 -24
  65. package/dist/memory/history-extractor.d.ts.map +1 -1
  66. package/dist/memory/history-extractor.js +0 -127
  67. package/dist/memory/history-extractor.js.map +1 -1
  68. package/dist/memory/save-candidate-extractor.d.ts +3 -0
  69. package/dist/memory/save-candidate-extractor.d.ts.map +1 -1
  70. package/dist/memory/save-candidate-extractor.js +12 -1
  71. package/dist/memory/save-candidate-extractor.js.map +1 -1
  72. package/dist/memory/secret-filter.d.ts +22 -0
  73. package/dist/memory/secret-filter.d.ts.map +1 -0
  74. package/dist/memory/secret-filter.js +77 -0
  75. package/dist/memory/secret-filter.js.map +1 -0
  76. package/dist/observability/code-audit.d.ts +87 -0
  77. package/dist/observability/code-audit.d.ts.map +1 -0
  78. package/dist/observability/code-audit.js +403 -0
  79. package/dist/observability/code-audit.js.map +1 -0
  80. package/dist/operator/briefs.d.ts +26 -0
  81. package/dist/operator/briefs.d.ts.map +1 -0
  82. package/dist/operator/briefs.js +128 -0
  83. package/dist/operator/briefs.js.map +1 -0
  84. package/dist/operator/operator-trigger-loop.d.ts +24 -0
  85. package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
  86. package/dist/operator/operator-trigger-loop.js +71 -12
  87. package/dist/operator/operator-trigger-loop.js.map +1 -1
  88. package/dist/operator/report-carry.d.ts +29 -0
  89. package/dist/operator/report-carry.d.ts.map +1 -0
  90. package/dist/operator/report-carry.js +81 -0
  91. package/dist/operator/report-carry.js.map +1 -0
  92. package/dist/operator/shadow-capture.d.ts +20 -0
  93. package/dist/operator/shadow-capture.d.ts.map +1 -0
  94. package/dist/operator/shadow-capture.js +34 -0
  95. package/dist/operator/shadow-capture.js.map +1 -0
  96. package/dist/operator/situation-report.d.ts +6 -0
  97. package/dist/operator/situation-report.d.ts.map +1 -1
  98. package/dist/operator/situation-report.js +15 -1
  99. package/dist/operator/situation-report.js.map +1 -1
  100. package/dist/operator/task-ledger.d.ts +90 -2
  101. package/dist/operator/task-ledger.d.ts.map +1 -1
  102. package/dist/operator/task-ledger.js +359 -23
  103. package/dist/operator/task-ledger.js.map +1 -1
  104. package/dist/operator/worker-run.d.ts +59 -0
  105. package/dist/operator/worker-run.d.ts.map +1 -0
  106. package/dist/operator/worker-run.js +64 -0
  107. package/dist/operator/worker-run.js.map +1 -0
  108. package/dist/operator/workorder-consumer.d.ts +118 -0
  109. package/dist/operator/workorder-consumer.d.ts.map +1 -0
  110. package/dist/operator/workorder-consumer.js +248 -0
  111. package/dist/operator/workorder-consumer.js.map +1 -0
  112. package/dist/operator/workorder-hooks.d.ts +30 -0
  113. package/dist/operator/workorder-hooks.d.ts.map +1 -0
  114. package/dist/operator/workorder-hooks.js +70 -0
  115. package/dist/operator/workorder-hooks.js.map +1 -0
  116. package/dist/operator/workorder-publishers.d.ts +68 -0
  117. package/dist/operator/workorder-publishers.d.ts.map +1 -0
  118. package/dist/operator/workorder-publishers.js +150 -0
  119. package/dist/operator/workorder-publishers.js.map +1 -0
  120. package/dist/security/security-monitor.d.ts +19 -0
  121. package/dist/security/security-monitor.d.ts.map +1 -1
  122. package/dist/security/security-monitor.js +68 -14
  123. package/dist/security/security-monitor.js.map +1 -1
  124. package/dist/utils/untrusted-content.d.ts +31 -0
  125. package/dist/utils/untrusted-content.d.ts.map +1 -0
  126. package/dist/utils/untrusted-content.js +77 -0
  127. package/dist/utils/untrusted-content.js.map +1 -0
  128. package/package.json +2 -2
@@ -58,6 +58,7 @@ class OperatorTriggerLoop {
58
58
  : (deps.fullReportSelfGather ?? []),
59
59
  boardPublishLines: deps.fullReportBoardLines,
60
60
  recordTriggerUse,
61
+ persistLastFullReport: deps.persistLastFullReport,
61
62
  });
62
63
  }
63
64
  async tick() {
@@ -177,19 +178,34 @@ class OperatorTriggerLoop {
177
178
  if (output && reportScheduler) {
178
179
  const { fire, hourKey } = reportScheduler.shouldFire(new Date());
179
180
  if (fire) {
180
- // Anchor = FIRE time, captured BEFORE the run: anchoring at completion would
181
- // leave a gap (messages arriving while the run executes fall after the gather
182
- // but before a completion-time anchor). Overlap is tolerable; gaps are not.
183
- const firedAtIso = new Date().toISOString();
184
- fullReported = await this.fullReporter.report(reportAsk, output, 'full');
185
- reportScheduler.markFired(hourKey); // reached only if report() did not throw (sent OR agent-suppressed)
186
- if (fullReported) {
187
- // ONLY a delivered report advances the delta anchor. A NOTHING-suppressed
188
- // report or a Task-4 ENVELOPE_EXPIRED abort must NOT advance it, so the
189
- // next report's window still covers everything this run missed.
190
- reportScheduler.markSuccess(firedAtIso);
181
+ // On-demand merge suppression (plan v6 S1-T3): an owner-requested full
182
+ // report minutes before the scheduled hour makes the scheduled fire a
183
+ // near-empty duplicate. Skip-and-CONSUME (markFired) - the on-demand
184
+ // report WAS this hour's report; defer semantics would re-fire later
185
+ // ticks in the same hour.
186
+ const lastSuccess = reportScheduler.loadLastSuccess();
187
+ const minIntervalMs = config.fullReportMinIntervalMs ?? 30 * 60_000;
188
+ const sinceSuccessMs = lastSuccess ? Date.now() - Date.parse(lastSuccess) : Infinity;
189
+ if (Number.isFinite(sinceSuccessMs) && sinceSuccessMs < minIntervalMs) {
190
+ reportScheduler.markFired(hourKey);
191
+ log(`[trigger-loop] tick ${tick}: full report skipped - last success ${lastSuccess} ` +
192
+ `within min interval (hour ${hourKey} consumed)`);
193
+ }
194
+ else {
195
+ // Anchor = FIRE time, captured BEFORE the run: anchoring at completion would
196
+ // leave a gap (messages arriving while the run executes fall after the gather
197
+ // but before a completion-time anchor). Overlap is tolerable; gaps are not.
198
+ const firedAtIso = new Date().toISOString();
199
+ fullReported = await this.fullReporter.report(reportAsk, output, 'full');
200
+ reportScheduler.markFired(hourKey); // reached only if report() did not throw (sent OR agent-suppressed)
201
+ if (fullReported) {
202
+ // ONLY a delivered report advances the delta anchor. A NOTHING-suppressed
203
+ // report or a Task-4 ENVELOPE_EXPIRED abort must NOT advance it, so the
204
+ // next report's window still covers everything this run missed.
205
+ reportScheduler.markSuccess(firedAtIso);
206
+ }
207
+ log(`[trigger-loop] tick ${tick}: full report ${fullReported ? 'SENT' : 'suppressed by agent'} (${hourKey})`);
191
208
  }
192
- log(`[trigger-loop] tick ${tick}: full report ${fullReported ? 'SENT' : 'suppressed by agent'} (${hourKey})`);
193
209
  }
194
210
  }
195
211
  return { tick, drained: events.length, fires, authored, reviewed, reported, fullReported };
@@ -206,6 +222,49 @@ class OperatorTriggerLoop {
206
222
  * uncommitted deltas simply wait for the next tick. Pure timing assist: it only changes WHEN an
207
223
  * existing tick runs, never WHAT it does.
208
224
  */
225
+ /**
226
+ * On-demand full report (plan v6 S1-T3): the owner's "give me the full
227
+ * report" intent routed to the SAME machinery as the scheduled leg - same
228
+ * reporter, same anchor semantics, same serial guard. Host-code entry
229
+ * (gateway forwarder hook); the run itself is fire-and-forget so the chat
230
+ * turn that triggered it is never blocked (and never nests lane runs).
231
+ *
232
+ * Consume semantics: success marks the current hourKey fired, so a
233
+ * scheduled fire in the same hour does not duplicate; markSuccess advances
234
+ * the delta anchor exactly like a scheduled run.
235
+ */
236
+ startFullReport() {
237
+ const output = this.deps.output;
238
+ const reportScheduler = this.deps.reportScheduler;
239
+ if (!output) {
240
+ return { accepted: false, reason: 'unavailable' };
241
+ }
242
+ if (this.running) {
243
+ return { accepted: false, reason: 'busy' };
244
+ }
245
+ this.running = true;
246
+ const reportAsk = this.deps.reportAsk ?? this.deps.askAgent;
247
+ const firedAtIso = new Date().toISOString();
248
+ void this.fullReporter
249
+ .report(reportAsk, output, 'full')
250
+ .then((sent) => {
251
+ if (reportScheduler) {
252
+ const { hourKey } = reportScheduler.shouldFire(new Date());
253
+ reportScheduler.markFired(hourKey);
254
+ if (sent) {
255
+ reportScheduler.markSuccess(firedAtIso);
256
+ }
257
+ }
258
+ this.deps.log(`[trigger-loop] on-demand full report ${sent ? 'SENT' : 'suppressed by agent'}`);
259
+ })
260
+ .catch((error) => {
261
+ this.deps.log(`[trigger-loop] on-demand full report FAILED: ${error instanceof Error ? error.message : String(error)}`);
262
+ })
263
+ .finally(() => {
264
+ this.running = false;
265
+ });
266
+ return { accepted: true };
267
+ }
209
268
  nudge() {
210
269
  if (this.nudgeTimer)
211
270
  return; // already armed - debounce collapses the burst
@@ -1 +1 @@
1
- {"version":3,"file":"operator-trigger-loop.js","sourceRoot":"","sources":["../../src/operator/operator-trigger-loop.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AASH,6DAAqD;AACrD,uDAAgD;AAChD,2DAAoE;AACpE,2DAAuE;AACvE,+DAA0D;AAwE1D,MAAa,mBAAmB;IACtB,IAAI,CAAkB;IACtB,SAAS,GAAG,CAAC,CAAC;IACd,YAAY,GAA2B,EAAE,CAAC;IAC1C,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAAyC,IAAI,CAAC;IACxD,MAAM,CAAoB;IAC1B,YAAY,CAAoB;IAExC,YAAY,IAAqB;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,4EAA4E;QAC5E,6EAA6E;QAC7E,8EAA8E;QAC9E,4EAA4E;QAC5E,MAAM,gBAAgB,GAAG,CAAC,GAAa,EAAQ,EAAE;YAC/C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;oBAC7C,IAAI,CAAC,GAAG,CAAC,4CAA4C,EAAE,0BAA0B,CAAC,CAAC;gBACrF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CACN,uCAAuC,EAAE,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACjG,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,uCAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,uCAAiB,CAAC;YACxC,6EAA6E;YAC7E,2EAA2E;YAC3E,gEAAgE;YAChE,eAAe,EACb,OAAO,IAAI,CAAC,oBAAoB,KAAK,UAAU;gBAC7C,CAAC,CAAC,GAAG,EAAE,CACF,IAAI,CAAC,oBAA6E,CAAC;oBAClF,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,IAAI;iBAChE,CAAC;gBACN,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC;YACvC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB;YAC5C,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7E,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAE5B,iEAAiE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,uBAAuB,IAAI,aAAa,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QACtE,CAAC;QAED,oFAAoF;QACpF,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAA,kCAAa,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACjD,KAAK,IAAI,CAAC,CAAC;gBACX,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxC,CAAC;gBACD,6FAA6F;gBAC7F,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;oBACrB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ;oBAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;wBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ;wBAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,CAAC,CAAC;gBACL,CAAC;gBACD,GAAG,CACD,uBAAuB,IAAI,kBAAkB,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG;oBACjF,YAAY,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY,MAAM,CAAC,SAAS,EAAE,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAErB,sEAAsE;QACtE,8EAA8E;QAC9E,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;YAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC;YACD,KAAK,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,IAAI,SAAS,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,aAAa;qBACxB,KAAK,CAAC,CAAC,EAAE,CAAC;qBACV,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACzF,CAAC;gBACJ,IAAI,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CACD,4CAA4C,UAAU,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9G,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,0FAA0F;QAC1F,wFAAwF;QACxF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACxF,CAAC;QAED,wDAAwD;QACxD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1E,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAc,EAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBAC1E,IAAI,EAAE,oBAAoB,IAAI,EAAE;aACjC,CAAC,CAAC;YACH,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAC1B,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACrC,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YACD,GAAG,CAAC,uBAAuB,IAAI,yBAAyB,QAAQ,aAAa,CAAC,CAAC;QACjF,CAAC;QAED,sDAAsD;QACtD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAA,+BAAW,EAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC3D,QAAQ,IAAI,CAAC,CAAC;gBACd,GAAG,CAAC,uBAAuB,IAAI,oBAAoB,OAAO,CAAC,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,wFAAwF;QACxF,8FAA8F;QAC9F,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;QAClD,MAAM,WAAW,GAAG,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,GAAG,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACvF,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACjE,GAAG,CAAC,uBAAuB,IAAI,kBAAkB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,wFAAwF;QACxF,yFAAyF;QACzF,yFAAyF;QACzF,4FAA4F;QAC5F,sDAAsD;QACtD,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,MAAM,IAAI,eAAe,EAAE,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,IAAI,EAAE,CAAC;gBACT,6EAA6E;gBAC7E,8EAA8E;gBAC9E,4EAA4E;gBAC5E,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC5C,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBACzE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,oEAAoE;gBACxG,IAAI,YAAY,EAAE,CAAC;oBACjB,0EAA0E;oBAC1E,wEAAwE;oBACxE,gEAAgE;oBAChE,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC1C,CAAC;gBACD,GAAG,CACD,uBAAuB,IAAI,iBAAiB,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,KAAK,OAAO,GAAG,CACzG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAC7F,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,+CAA+C;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QACpD,MAAM,UAAU,GACd,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC;YAC9E,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,MAAM,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,kFAAkF,CACnF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,KAAK,IAAI,CAAC,IAAI,EAAE;iBACb,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9F,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,UAAU,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;YAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,GAAG,CAAC,0DAA0D,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,KAAK,IAAI,CAAC,IAAI,EAAE;iBACb,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACxB,GAAG,CACD,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,sCAAsC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9D,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,CAAC;YACD,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;CACF;AA9QD,kDA8QC"}
1
+ {"version":3,"file":"operator-trigger-loop.js","sourceRoot":"","sources":["../../src/operator/operator-trigger-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Context carry for the owner console (plan v6 S1-T4).
3
+ *
4
+ * Kagemusha's continuity mechanism, minimal form: the chat persona can
5
+ * reference "the report you just received" because the last DELIVERED full
6
+ * report is persisted at delivery time and injected per turn. Carry is
7
+ * DERIVED state (storage-layer, never session accumulation - owner principle
8
+ * "session = cache").
9
+ *
10
+ * Injection rides the user-message prefix path - the only channel that flows
11
+ * on EVERY turn including CONTINUE (per-call system prompts never reach a
12
+ * pooled CLI process).
13
+ */
14
+ export interface LastFullReport {
15
+ deliveredAt: string;
16
+ text: string;
17
+ }
18
+ export declare function defaultCarryPath(): string;
19
+ /** Persist the delivered full report (atomic write, same pattern as the schedule store). */
20
+ export declare function persistLastFullReport(deliveredAtIso: string, text: string, path?: string): void;
21
+ /** Load the last delivered full report; null when none exists or the file is unreadable. */
22
+ export declare function loadLastFullReport(path?: string): LastFullReport | null;
23
+ /**
24
+ * Build the per-turn carry prefix for the owner console. Empty string when no
25
+ * report has been delivered yet (nothing to carry - the persona should use
26
+ * report_request/board_read instead).
27
+ */
28
+ export declare function buildReportCarryPrefix(path?: string): string;
29
+ //# sourceMappingURL=report-carry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-carry.d.ts","sourceRoot":"","sources":["../../src/operator/report-carry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,4FAA4F;AAC5F,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAA2B,GAChC,IAAI,CAYN;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAA2B,GAAG,cAAc,GAAG,IAAI,CAwB3F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,MAA2B,GAAG,MAAM,CAmBhF"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /**
3
+ * Context carry for the owner console (plan v6 S1-T4).
4
+ *
5
+ * Kagemusha's continuity mechanism, minimal form: the chat persona can
6
+ * reference "the report you just received" because the last DELIVERED full
7
+ * report is persisted at delivery time and injected per turn. Carry is
8
+ * DERIVED state (storage-layer, never session accumulation - owner principle
9
+ * "session = cache").
10
+ *
11
+ * Injection rides the user-message prefix path - the only channel that flows
12
+ * on EVERY turn including CONTINUE (per-call system prompts never reach a
13
+ * pooled CLI process).
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.defaultCarryPath = defaultCarryPath;
17
+ exports.persistLastFullReport = persistLastFullReport;
18
+ exports.loadLastFullReport = loadLastFullReport;
19
+ exports.buildReportCarryPrefix = buildReportCarryPrefix;
20
+ const node_fs_1 = require("node:fs");
21
+ const untrusted_content_js_1 = require("../utils/untrusted-content.js");
22
+ const node_os_1 = require("node:os");
23
+ const node_path_1 = require("node:path");
24
+ const CARRY_SUMMARY_MAX_CHARS = 700;
25
+ function defaultCarryPath() {
26
+ return (0, node_path_1.join)((0, node_os_1.homedir)(), '.mama', 'operator', 'last-full-report.json');
27
+ }
28
+ /** Persist the delivered full report (atomic write, same pattern as the schedule store). */
29
+ function persistLastFullReport(deliveredAtIso, text, path = defaultCarryPath()) {
30
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(path), { recursive: true });
31
+ const tmp = (0, node_path_1.join)((0, node_path_1.dirname)(path), `.last-full-report.${process.pid}.tmp`);
32
+ // 0600: the carried report is owner operational data.
33
+ (0, node_fs_1.writeFileSync)(tmp, JSON.stringify({ deliveredAt: deliveredAtIso, text }), {
34
+ mode: 0o600,
35
+ });
36
+ (0, node_fs_1.renameSync)(tmp, path);
37
+ }
38
+ /** Load the last delivered full report; null when none exists or the file is unreadable. */
39
+ function loadLastFullReport(path = defaultCarryPath()) {
40
+ let raw;
41
+ try {
42
+ raw = (0, node_fs_1.readFileSync)(path, 'utf8');
43
+ }
44
+ catch {
45
+ // Missing file is the normal no-report-yet state.
46
+ return null;
47
+ }
48
+ try {
49
+ const parsed = JSON.parse(raw);
50
+ if (typeof parsed.deliveredAt !== 'string' || typeof parsed.text !== 'string') {
51
+ console.warn(`[report-carry] carry file has invalid shape, ignoring: ${path}`);
52
+ return null;
53
+ }
54
+ return { deliveredAt: parsed.deliveredAt, text: parsed.text };
55
+ }
56
+ catch (error) {
57
+ // Corrupt state must be LOUD (repo rule), then fall back to no-carry.
58
+ console.warn(`[report-carry] carry file corrupt, ignoring (${path}): ${error instanceof Error ? error.message : String(error)}`);
59
+ return null;
60
+ }
61
+ }
62
+ /**
63
+ * Build the per-turn carry prefix for the owner console. Empty string when no
64
+ * report has been delivered yet (nothing to carry - the persona should use
65
+ * report_request/board_read instead).
66
+ */
67
+ function buildReportCarryPrefix(path = defaultCarryPath()) {
68
+ const last = loadLastFullReport(path);
69
+ if (!last) {
70
+ return '';
71
+ }
72
+ const summary = last.text.length > CARRY_SUMMARY_MAX_CHARS
73
+ ? `${last.text.slice(0, CARRY_SUMMARY_MAX_CHARS)}\n[... truncated - full text was delivered to the owner channel]`
74
+ : last.text;
75
+ // The report is agent-authored but SUMMARIZES third-party content; wrapping
76
+ // it keeps reproduced instructions inert across every future turn it rides.
77
+ return (`[Operator context] The last FULL situation report was delivered at ${last.deliveredAt}.\n` +
78
+ `If the owner asks for a report or current status, reference/refresh THIS instead of ` +
79
+ `reconstructing state from memory. Content:\n${(0, untrusted_content_js_1.wrapUntrustedContent)('operator-report-carry', summary)}\n---\n`);
80
+ }
81
+ //# sourceMappingURL=report-carry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-carry.js","sourceRoot":"","sources":["../../src/operator/report-carry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Shadow capture store (Stage-2 S2-T4) - TEMPORARY migration harness.
3
+ *
4
+ * At MAMA_STAGE2_WORKORDERS=shadow, board workorder runs get a capture
5
+ * publisher injected via reportPublisherOverride: their report_publish calls
6
+ * land HERE (JSONL under ~/.mama/operator/) instead of the live report store.
7
+ * The T6 equivalence gate compares these captures (brief-driven output)
8
+ * against the legacy live publishes (persona-driven output) by kagemusha-id
9
+ * overlap.
10
+ *
11
+ * KILL-LIST: this whole file is deleted at cutover (plan T6) - keep it
12
+ * self-contained.
13
+ */
14
+ export declare function shadowCapturePath(homeDir?: string): string;
15
+ export interface ShadowCapture {
16
+ /** Drop-in report_publish target - appends, never touches the live store. */
17
+ publisher: (slots: Record<string, string>) => void;
18
+ }
19
+ export declare function createShadowCapture(homeDir?: string): ShadowCapture;
20
+ //# sourceMappingURL=shadow-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-capture.d.ts","sourceRoot":"","sources":["../../src/operator/shadow-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAkB,GAAG,MAAM,CAErE;AAED,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CACpD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAAkB,GAAG,aAAa,CAW9E"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * Shadow capture store (Stage-2 S2-T4) - TEMPORARY migration harness.
4
+ *
5
+ * At MAMA_STAGE2_WORKORDERS=shadow, board workorder runs get a capture
6
+ * publisher injected via reportPublisherOverride: their report_publish calls
7
+ * land HERE (JSONL under ~/.mama/operator/) instead of the live report store.
8
+ * The T6 equivalence gate compares these captures (brief-driven output)
9
+ * against the legacy live publishes (persona-driven output) by kagemusha-id
10
+ * overlap.
11
+ *
12
+ * KILL-LIST: this whole file is deleted at cutover (plan T6) - keep it
13
+ * self-contained.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.shadowCapturePath = shadowCapturePath;
17
+ exports.createShadowCapture = createShadowCapture;
18
+ const node_fs_1 = require("node:fs");
19
+ const node_os_1 = require("node:os");
20
+ const node_path_1 = require("node:path");
21
+ function shadowCapturePath(homeDir = (0, node_os_1.homedir)()) {
22
+ return (0, node_path_1.join)(homeDir, '.mama', 'operator', 'shadow-capture.jsonl');
23
+ }
24
+ function createShadowCapture(homeDir = (0, node_os_1.homedir)()) {
25
+ const path = shadowCapturePath(homeDir);
26
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(path), { recursive: true });
27
+ return {
28
+ publisher: (slots) => {
29
+ (0, node_fs_1.appendFileSync)(path, `${JSON.stringify({ ts: Date.now(), slots })}\n`, 'utf-8');
30
+ console.log(`[stage2] shadow capture: ${Object.keys(slots).length} slot(s) -> ${path} (live store untouched)`);
31
+ },
32
+ };
33
+ }
34
+ //# sourceMappingURL=shadow-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-capture.js","sourceRoot":"","sources":["../../src/operator/shadow-capture.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AAMH,8CAEC;AAOD,kDAWC;AAxBD,qCAAoD;AACpD,qCAAkC;AAClC,yCAA0C;AAE1C,SAAgB,iBAAiB,CAAC,UAAkB,IAAA,iBAAO,GAAE;IAC3D,OAAO,IAAA,gBAAI,EAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;AACpE,CAAC;AAOD,SAAgB,mBAAmB,CAAC,UAAkB,IAAA,iBAAO,GAAE;IAC7D,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO;QACL,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACnB,IAAA,wBAAc,EAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CACT,4BAA4B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,eAAe,IAAI,yBAAyB,CAClG,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -62,6 +62,12 @@ export interface SituationReporterOptions {
62
62
  * of being elimination-only. Uncited fires stay NEUTRAL - not failures.
63
63
  */
64
64
  recordTriggerUse?: (triggerIds: string[]) => void;
65
+ /**
66
+ * Context carry (plan v6 S1-T4): called with (deliveredAtIso, reportText)
67
+ * after a FULL report is successfully delivered. Runtime wiring persists it
68
+ * so the owner console can reference the latest report per chat turn.
69
+ */
70
+ persistLastFullReport?: (deliveredAtIso: string, text: string) => void;
65
71
  }
66
72
  export declare class SituationReporter {
67
73
  private windowByChannel;
@@ -1 +1 @@
1
- {"version":3,"file":"situation-report.d.ts","sourceRoot":"","sources":["../../src/operator/situation-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAqB3C,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACnD;AAKD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,IAAI,CAA2B;gBAE3B,IAAI,GAAE,wBAA6B;IAI/C,0EAA0E;IAC1E,YAAY,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAgBlD,2FAA2F;IAC3F,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAmBxC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,uFAAuF;IACvF,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACG,MAAM,CACV,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAChC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,CAAC;IA2CnB,OAAO,CAAC,KAAK;IAQb,kGAAkG;IAClG,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;CAoHtC"}
1
+ {"version":3,"file":"situation-report.d.ts","sourceRoot":"","sources":["../../src/operator/situation-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAqB3C,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClD;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACxE;AAKD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,IAAI,CAA2B;gBAE3B,IAAI,GAAE,wBAA6B;IAI/C,0EAA0E;IAC1E,YAAY,CAAC,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAgBlD,2FAA2F;IAC3F,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAmBxC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,uFAAuF;IACvF,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACG,MAAM,CACV,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAChC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,CAAC;IA2DnB,OAAO,CAAC,KAAK;IAQb,kGAAkG;IAClG,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;CAuHtC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SituationReporter = exports.OPERATOR_FULL_REPORT_TAG = void 0;
4
+ const untrusted_content_js_1 = require("../utils/untrusted-content.js");
4
5
  /**
5
6
  * Machine frame tag prepended to the FULL report prompt so the report-run wiring can tell a full
6
7
  * report from a digest for tool-use auditing (report-run.ts). Kagemusha frames its scheduled full
@@ -105,6 +106,19 @@ class SituationReporter {
105
106
  if (cited.length > 0) {
106
107
  this.opts.recordTriggerUse?.(cited);
107
108
  }
109
+ // Context carry (plan v6 S1-T4): persist the DELIVERED full report so the
110
+ // chat console can reference "the report you just got" instead of
111
+ // fabricating one. Same success condition as the delta anchor.
112
+ if (mode === 'full') {
113
+ try {
114
+ this.opts.persistLastFullReport?.(new Date().toISOString(), text);
115
+ }
116
+ catch (error) {
117
+ // Carry is derived state - persistence failure must not fail the
118
+ // delivered report, but it must be loud.
119
+ console.warn(`[situation-report] failed to persist last full report for context carry: ${error instanceof Error ? error.message : String(error)}`);
120
+ }
121
+ }
108
122
  this.reset();
109
123
  return true;
110
124
  }
@@ -206,7 +220,7 @@ class SituationReporter {
206
220
  `Current local time: ${new Date().toLocaleString()}. Use LOCAL time in the report, never UTC.`,
207
221
  '',
208
222
  'Window (per channel; excerpts truncated):',
209
- ...(windowLines.length > 0 ? windowLines : ['- (no channel messages this window)']),
223
+ (0, untrusted_content_js_1.wrapUntrustedContent)('connector-window', windowLines.length > 0 ? windowLines.join('\n') : '- (no channel messages this window)'),
210
224
  '',
211
225
  `Triggers newly authored this window: ${this.authored}`,
212
226
  'Fire activity:',
@@ -1 +1 @@
1
- {"version":3,"file":"situation-report.js","sourceRoot":"","sources":["../../src/operator/situation-report.ts"],"names":[],"mappings":";;;AAoBA;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,wBAAwB,CAAC;AAWjE,kGAAkG;AAClG,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,YAAY,GAAG,EAAE,CAAC;AA8CxB,oFAAoF;AACpF,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;AAEhE,MAAa,iBAAiB;IACpB,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IACnD,WAAW,GAAG,CAAC,CAAC;IAChB,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IACrC,QAAQ,GAAG,CAAC,CAAC;IACb,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,sCAAsC;IAC5E,IAAI,CAA2B;IAEvC,YAAY,OAAiC,EAAE;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,0EAA0E;IAC1E,YAAY,CAAC,MAA8B;QACzC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC9E,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,EAAE,CAAC;gBACT,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;oBACjD,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,UAAU,CAAC,QAAsB;QAC/B,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;YACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,IAAI,GAAG,EAAU;SAC1B,CAAC;QACF,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;gBACrE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;IACzB,CAAC;IAED,uFAAuF;IACvF,WAAW;QACT,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,QAAkB,EAClB,MAAgC,EAChC,IAAgB;QAEhB,yFAAyF;QACzF,4FAA4F;QAC5F,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,KAAK,CAAC;QAEzD,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,IAAI,GAAG,KAAK,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,iEAAiE;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,KAAK,GAAG;gBACN,GAAG,IAAI,GAAG,CACR,KAAK,CAAC,CAAC,CAAC;qBACL,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;qBACtB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACrF;aACF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,iEAAiE;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gEAAgE;QACzF,2EAA2E;QAC3E,sEAAsE;QACtE,wEAAwE;QACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,kGAAkG;IAClG,WAAW,CAAC,IAAgB;QAC1B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAC3B,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACjB,KAAK,SAAS,KAAK,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,EAAE,CACrF,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpF,WAAW,CAAC,IAAI,CACd,OAAO,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,qBAAqB,SAAS,UAAU,CAC9E,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAC9C,CAAC,CAAC,EAAE,EAAE,CACJ,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CACtI,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAClD,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,OAAO,EAAE,CAC/C,CAAC;QAEF,uFAAuF;QACvF,wFAAwF;QACxF,0FAA0F;QAC1F,yFAAyF;QACzF,gFAAgF;QAChF,MAAM,WAAW,GACf,IAAI,KAAK,MAAM;YACb,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,UAAU;gBAC/C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;YACrC,CAAC,CAAC,EAAE,CAAC;QAET,qFAAqF;QACrF,2FAA2F;QAC3F,yCAAyC;QACzC,MAAM,OAAO,GACX,IAAI,KAAK,MAAM;YACb,CAAC,CAAC;gBACE,gCAAwB;gBACxB,yFAAyF;gBACzF,wFAAwF;gBACxF,sFAAsF;gBACtF,qFAAqF;gBACrF,iDAAiD;gBACjD,wFAAwF;gBACxF,8CAA8C;gBAC9C,yFAAyF;gBACzF,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBACxB,CAAC,CAAC;wBACE,EAAE;wBACF,gFAAgF;wBAChF,gFAAgF;wBAChF,6CAA6C;wBAC7C,cAAc;wBACd,iEAAiE;wBACjE,KAAK;wBACL,uCAAuC;wBACvC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;wBACzC,6EAA6E;wBAC7E,4EAA4E;wBAC5E,6EAA6E;wBAC7E,+BAA+B;wBAC/B,2EAA2E;wBAC3E,iFAAiF;wBACjF,+EAA+E;wBAC/E,kEAAkE;wBAClE,EAAE;wBACF,4EAA4E;wBAC5E,0EAA0E;wBAC1E,8EAA8E;wBAC9E,8EAA8E;qBAC/E;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;oBACvE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;oBACtC,CAAC,CAAC,EAAE,CAAC;aACR;YACH,CAAC,CAAC;gBACE,qFAAqF;gBACrF,yFAAyF;gBACzF,wFAAwF;gBACxF,iFAAiF;gBACjF,gEAAgE;aACjE,CAAC;QAER,OAAO;YACL,GAAG,OAAO;YACV,8EAA8E;YAC9E,8CAA8C;YAC9C,uFAAuF;YACvF,mFAAmF;YACnF,2EAA2E;YAC3E,gEAAgE;YAChE,iEAAiE;YACjE,uFAAuF;YACvF,yEAAyE;YACzE,iFAAiF;YACjF,mCAAmC;YACnC,4FAA4F;YAC5F,qFAAqF;YACrF,iFAAiF;YACjF,uBAAuB,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,4CAA4C;YAC9F,EAAE;YACF,2CAA2C;YAC3C,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;YACnF,EAAE;YACF,wCAAwC,IAAI,CAAC,QAAQ,EAAE;YACvD,gBAAgB;YAChB,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC;YAC7E,EAAE;YACF,4CAA4C;YAC5C,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;SACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACF;AA1OD,8CA0OC"}
1
+ {"version":3,"file":"situation-report.js","sourceRoot":"","sources":["../../src/operator/situation-report.ts"],"names":[],"mappings":"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"}
@@ -20,14 +20,42 @@
20
20
  */
21
21
  import type { SQLiteDatabase } from '../sqlite.js';
22
22
  import type { OperatorTask, TaskSource } from './operator-interfaces.js';
23
- export declare const TASK_STATUSES: readonly ["pending", "in_progress", "review", "blocked", "done", "cancelled"];
23
+ export declare const TASK_STATUSES: readonly ["pending", "in_progress", "review", "blocked", "done", "cancelled", "failed"];
24
24
  export type TaskStatus = (typeof TASK_STATUSES)[number];
25
25
  export declare const TASK_PRIORITIES: readonly ["high", "normal", "low"];
26
26
  export type TaskPriority = (typeof TASK_PRIORITIES)[number];
27
+ export declare const TASK_KINDS: readonly ["owner", "system"];
28
+ export type TaskKind = (typeof TASK_KINDS)[number];
29
+ export declare const WORKORDER_KINDS: readonly ["board", "wiki", "memory-curation"];
30
+ export type WorkOrderKind = (typeof WORKORDER_KINDS)[number];
31
+ /** source_channel namespace for workorder rows: 'workorder:<workKind>'. */
32
+ export declare const WORKORDER_CHANNEL_PREFIX = "workorder:";
33
+ export interface EnqueueWorkOrderInput {
34
+ workKind: WorkOrderKind;
35
+ /** Per-occurrence idempotency key (schedule slot / event batch / manual ts). */
36
+ idempotencyKey: string;
37
+ /** Kind-specific payload; `attempts` is managed by the ledger (starts at 1). */
38
+ input: Record<string, unknown>;
39
+ priority?: TaskPriority;
40
+ }
41
+ export interface WorkOrderRecord {
42
+ id: number;
43
+ workKind: WorkOrderKind;
44
+ status: TaskStatus;
45
+ priority: TaskPriority;
46
+ idempotencyKey: string;
47
+ /** Parsed payload; always carries `attempts` (>= 1). */
48
+ payload: Record<string, unknown> & {
49
+ attempts: number;
50
+ };
51
+ createdAt: number;
52
+ updatedAt: number;
53
+ }
27
54
  /** Extended record: satisfies OperatorTask (numeric deadline) and carries the ISO original. */
28
55
  export interface TaskRecord extends OperatorTask {
29
56
  status: TaskStatus;
30
57
  priority: TaskPriority;
58
+ kind: TaskKind;
31
59
  /** ISO YYYY-MM-DD as stored; `deadline` (OperatorTask) is its UTC-midnight epoch ms. */
32
60
  deadlineIso: string | null;
33
61
  assignee: string | null;
@@ -72,11 +100,24 @@ export declare class TaskLedger implements TaskSource {
72
100
  private db;
73
101
  constructor(db: SQLiteDatabase);
74
102
  private runMigration;
103
+ /** Full current column set - single source for CREATE and the rebuild copy. */
104
+ private static readonly TABLE_COLUMNS_SQL;
105
+ private static readonly INDEXES_SQL;
106
+ /**
107
+ * Stage-2 in-place upgrade for pre-existing tables. Guards are re-checked
108
+ * INSIDE `BEGIN IMMEDIATE`: two connections construct TaskLedger (boot +
109
+ * lazy API handler) and both run this - the loser must see the winner's
110
+ * finished work, not rebuild an already-migrated table.
111
+ */
112
+ private upgradeSchema;
75
113
  /** TaskSource conformance: open items in canonical board order. */
76
114
  getTasks(): OperatorTask[];
77
115
  countOpenUnconfirmed(): number;
78
116
  list(filter?: ListTasksFilter): TaskRecord[];
117
+ /** Owner rows only - system workorder rows are invisible to external reads. */
79
118
  getById(id: number): TaskRecord | null;
119
+ /** Internal fetch without the kind filter (guards and workorder paths). */
120
+ private getRowById;
80
121
  /**
81
122
  * Create a task. Idempotent under at-least-once delivery: a duplicate
82
123
  * (source_channel, source_event_id) UPSERTS - the existing row gets the new
@@ -84,8 +125,55 @@ export declare class TaskLedger implements TaskSource {
84
125
  */
85
126
  create(input: CreateTaskInput): TaskRecord;
86
127
  update(id: number, patch: UpdateTaskInput): TaskRecord;
87
- /** Stable hash over ordered rows - the Phase-2 verifier's ledger snapshot. */
128
+ /**
129
+ * Stable hash over ordered OWNER rows - the Phase-2 verifier's ledger
130
+ * snapshot. kind filter keeps concurrent system enqueues from shaking the
131
+ * hash mid-bracket (evidence-only signal, but noise is noise).
132
+ */
88
133
  payloadHash(): string;
134
+ /**
135
+ * Enqueue a workorder. Idempotent per occurrence key: an open (pending or
136
+ * in_progress) keyed row dedups; a terminal keyed row frees the slot (the
137
+ * unique index excludes terminal statuses) and a fresh row is inserted.
138
+ */
139
+ enqueueWorkOrder(order: EnqueueWorkOrderInput): WorkOrderRecord;
140
+ /**
141
+ * Claim the next pending workorder: priority high>normal>low, then id ASC
142
+ * (plan D2/E2 - CASE mapping, never lexicographic on the TEXT enum).
143
+ * pending -> in_progress. Single serial consumer; transaction for atomicity.
144
+ */
145
+ claimNextWorkOrder(): WorkOrderRecord | null;
146
+ /**
147
+ * Atomic fail-and-requeue (PR bot round): the failure mark and the
148
+ * replacement row commit together - a crash between the two would lose
149
+ * the retry (the old row terminal, the new one never inserted). The
150
+ * replacement can only be inserted AFTER the old row leaves the partial
151
+ * unique index, hence one transaction, not two calls.
152
+ */
153
+ requeueWorkOrder(wo: WorkOrderRecord, reason: string): WorkOrderRecord;
154
+ completeWorkOrder(id: number): void;
155
+ failWorkOrder(id: number, reason: string): void;
156
+ countPendingWorkOrders(): number;
157
+ /** In-progress system rows at boot = crash artifacts (single serial consumer). */
158
+ listStaleClaims(): WorkOrderRecord[];
159
+ /**
160
+ * Boot cleanup (plan D3 + review N4): open system rows -> cancelled. A
161
+ * rollback is not a failure - excluded from failed counters/alarms; caller
162
+ * logs ONE summary line with the returned count. `onlyKinds` scopes the
163
+ * cancellation (shadow rollback cancels non-board orders only).
164
+ */
165
+ cancelOpenWorkOrders(reason: string, onlyKinds?: WorkOrderKind[]): number;
166
+ /** Per-kind stats for the workorder_status surface. */
167
+ workOrderStats(): Array<{
168
+ workKind: WorkOrderKind;
169
+ lastRunAt: number | null;
170
+ lastStatus: TaskStatus | null;
171
+ failedCount: number;
172
+ lastFailureReason: string | null;
173
+ }>;
174
+ private getWorkOrderById;
175
+ private transitionWorkOrder;
176
+ private rowToWorkOrder;
89
177
  /** contract_no_update: silence as a verifiable judgment, scoped to one reconcile run. */
90
178
  recordNoUpdate(scope: string, reason: string): {
91
179
  id: number;
@@ -1 +1 @@
1
- {"version":3,"file":"task-ledger.d.ts","sourceRoot":"","sources":["../../src/operator/task-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-ledger.d.ts","sourceRoot":"","sources":["../../src/operator/task-ledger.ts"],"names":[],"mappings":"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"}