@jungjaehoon/mama-os 0.59.0 → 0.60.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 (53) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/README.md +1 -1
  3. package/dist/api/owner-message-actions.d.ts +21 -0
  4. package/dist/api/owner-message-actions.d.ts.map +1 -0
  5. package/dist/api/owner-message-actions.js +100 -0
  6. package/dist/api/owner-message-actions.js.map +1 -0
  7. package/dist/api/viewer-server.d.ts.map +1 -1
  8. package/dist/api/viewer-server.js +1 -14
  9. package/dist/api/viewer-server.js.map +1 -1
  10. package/dist/api/wiki-actions.d.ts.map +1 -1
  11. package/dist/api/wiki-actions.js +5 -3
  12. package/dist/api/wiki-actions.js.map +1 -1
  13. package/dist/api/work-actions.d.ts +13 -4
  14. package/dist/api/work-actions.d.ts.map +1 -1
  15. package/dist/api/work-actions.js +336 -17
  16. package/dist/api/work-actions.js.map +1 -1
  17. package/dist/cli/commands/daemon.d.ts.map +1 -1
  18. package/dist/cli/commands/daemon.js +11 -1
  19. package/dist/cli/commands/daemon.js.map +1 -1
  20. package/dist/runtime/action-surface.d.ts +4 -1
  21. package/dist/runtime/action-surface.d.ts.map +1 -1
  22. package/dist/runtime/action-surface.js +6 -0
  23. package/dist/runtime/action-surface.js.map +1 -1
  24. package/dist/runtime/config.d.ts +2 -0
  25. package/dist/runtime/config.d.ts.map +1 -1
  26. package/dist/runtime/config.js +2 -1
  27. package/dist/runtime/config.js.map +1 -1
  28. package/dist/runtime/owner-runtime.d.ts.map +1 -1
  29. package/dist/runtime/owner-runtime.js +10 -1
  30. package/dist/runtime/owner-runtime.js.map +1 -1
  31. package/dist/runtime/owner-system-prompt.d.ts.map +1 -1
  32. package/dist/runtime/owner-system-prompt.js +30 -4
  33. package/dist/runtime/owner-system-prompt.js.map +1 -1
  34. package/dist/runtime/record-orders.d.ts +32 -10
  35. package/dist/runtime/record-orders.d.ts.map +1 -1
  36. package/dist/runtime/record-orders.js +265 -59
  37. package/dist/runtime/record-orders.js.map +1 -1
  38. package/dist/runtime/report-scheduler.d.ts +8 -1
  39. package/dist/runtime/report-scheduler.d.ts.map +1 -1
  40. package/dist/runtime/report-scheduler.js +48 -17
  41. package/dist/runtime/report-scheduler.js.map +1 -1
  42. package/dist/runtime/session-start-context.d.ts +12 -0
  43. package/dist/runtime/session-start-context.d.ts.map +1 -1
  44. package/dist/runtime/session-start-context.js +22 -0
  45. package/dist/runtime/session-start-context.js.map +1 -1
  46. package/dist/runtime/stimulus-delivery.d.ts +5 -2
  47. package/dist/runtime/stimulus-delivery.d.ts.map +1 -1
  48. package/dist/runtime/stimulus-delivery.js.map +1 -1
  49. package/dist/runtime/turn-orders.d.ts +17 -1
  50. package/dist/runtime/turn-orders.d.ts.map +1 -1
  51. package/dist/runtime/turn-orders.js +56 -14
  52. package/dist/runtime/turn-orders.js.map +1 -1
  53. package/package.json +2 -2
@@ -1,42 +1,65 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RECORD_ORDER_MAX_ATTEMPTS = void 0;
3
+ exports.RECORD_RETRY_DELAY_MS = exports.RECORD_ORDER_MAX_ATTEMPTS = void 0;
4
4
  exports.batchRecorded = batchRecorded;
5
5
  exports.createRecordOrders = createRecordOrders;
6
6
  const turn_orders_js_1 = require("./turn-orders.js");
7
7
  exports.RECORD_ORDER_MAX_ATTEMPTS = 3;
8
+ /**
9
+ * How long an unrecorded batch waits for its next attempt. Kagemusha leaves such a batch behind
10
+ * its cursor and reads it again at its next delta tick (deltaDigestIntervalMinutes: 15 by default,
11
+ * 5 where this was measured). On 2026-09-29 MAMA re-sent the same order at once into the same
12
+ * session, and both retries were answered [ack] in two seconds with no tool call.
13
+ */
14
+ exports.RECORD_RETRY_DELAY_MS = 5 * 60 * 1000;
8
15
  /**
9
16
  * Kagemusha's taskboard reconcile check, read from MAMA's ledger: the batch counts as recorded
10
- * when a work revision cites one of its observations, or a record order for it declared no update.
11
- * Who wrote the revision does not matter; a revision that cites the batch is the record.
17
+ * when a work revision cites one of its observations, or an order that included it declared no
18
+ * update. Who wrote the revision does not matter; a revision that cites the batch is the record.
19
+ * In an order that only carried the batch, the no-update must cite one of its observations: the
20
+ * order may show none of its lines, and a no-update about the newer messages does not cover it.
12
21
  */
13
- function batchRecorded(adapter, record) {
14
- if (record.observationRefs.length > 0) {
15
- const marks = record.observationRefs.map(() => '?').join(',');
22
+ function batchRecorded(adapter, batch, carryingOrders = []) {
23
+ if (batch.observationRefs.length > 0) {
24
+ const marks = batch.observationRefs.map(() => '?').join(',');
16
25
  const revised = adapter
17
26
  .prepare(`SELECT 1 FROM commitment_assignments ca
18
27
  JOIN twin_edges e ON e.subject_kind = 'memory' AND e.subject_id = ca.record_id
19
28
  WHERE e.edge_type = 'derived_from' AND e.object_kind = 'observation'
20
29
  AND e.object_id IN (${marks})
21
30
  LIMIT 1`)
22
- .get(...record.observationRefs);
31
+ .get(...batch.observationRefs);
23
32
  if (revised !== undefined)
24
33
  return true;
25
34
  }
26
- const orderIds = Array.from({ length: exports.RECORD_ORDER_MAX_ATTEMPTS }, (_, index) => (0, turn_orders_js_1.recordOrderId)(record.deltaStimulusId, index + 1));
27
- const noUpdate = adapter
35
+ const ownOrders = Array.from({ length: exports.RECORD_ORDER_MAX_ATTEMPTS }, (_, index) => (0, turn_orders_js_1.recordOrderId)(batch.deltaStimulusId, index + 1));
36
+ if (noUpdateIn(adapter, ownOrders, null))
37
+ return true;
38
+ const carrying = [...new Set(carryingOrders)].filter((id) => !ownOrders.includes(id));
39
+ return carrying.length > 0 && noUpdateIn(adapter, carrying, batch.observationRefs);
40
+ }
41
+ /** A completed work.no_update in these orders' runs, citing one of `cites` when given. */
42
+ function noUpdateIn(adapter, orderIds, cites) {
43
+ const marks = orderIds.map(() => '?').join(',');
44
+ const citing = cites === null
45
+ ? ''
46
+ : `AND EXISTS (
47
+ SELECT 1 FROM json_each(CASE WHEN json_valid(t.input_summary)
48
+ THEN json_extract(t.input_summary, '$.observationRefs') END) ref
49
+ WHERE ref.value IN (${cites.map(() => '?').join(',')}))`;
50
+ return (adapter
28
51
  .prepare(`SELECT 1 FROM tool_traces t
29
- WHERE t.tool_name = 'work.no_update' AND t.execution_status = 'completed'
30
- AND t.model_run_id IN (
31
- SELECT r.model_run_id FROM model_runs r
32
- WHERE json_extract(r.input_refs_json, '$.sourceMessageRef') IN (${orderIds.map(() => '?').join(',')})
33
- UNION
34
- SELECT c.model_run_id FROM model_runs c JOIN model_runs p ON c.parent_model_run_id = p.model_run_id
35
- WHERE json_extract(p.input_refs_json, '$.sourceMessageRef') IN (${orderIds.map(() => '?').join(',')})
36
- )
37
- LIMIT 1`)
38
- .get(...orderIds, ...orderIds);
39
- return noUpdate !== undefined;
52
+ WHERE t.tool_name = 'work.no_update' AND t.execution_status = 'completed'
53
+ AND t.model_run_id IN (
54
+ SELECT r.model_run_id FROM model_runs r
55
+ WHERE json_extract(r.input_refs_json, '$.sourceMessageRef') IN (${marks})
56
+ UNION
57
+ SELECT c.model_run_id FROM model_runs c JOIN model_runs p ON c.parent_model_run_id = p.model_run_id
58
+ WHERE json_extract(p.input_refs_json, '$.sourceMessageRef') IN (${marks})
59
+ )
60
+ ${citing}
61
+ LIMIT 1`)
62
+ .get(...orderIds, ...orderIds, ...(cites ?? [])) !== undefined);
40
63
  }
41
64
  /** Child runs of a record run that this process started and that have not ended yet. */
42
65
  function runningChildren(adapter, modelRunId, startedAt) {
@@ -47,51 +70,222 @@ function runningChildren(adapter, modelRunId, startedAt) {
47
70
  return row?.n ?? 0;
48
71
  }
49
72
  const RECOVERY_WINDOW_MS = 24 * 60 * 60 * 1000;
73
+ /**
74
+ * The batches of the last day of record orders, each at its latest attempt. The day ends at the
75
+ * latest stored order, not at now: a batch left waiting when the daemon stopped is still read
76
+ * after a longer stop.
77
+ */
78
+ function storedBatches(adapter) {
79
+ const rows = adapter
80
+ .prepare(`SELECT m.stimulus_id, m.payload_json, m.status, n.state AS native_state
81
+ FROM mailbox_inputs m LEFT JOIN native_input_deliveries n ON n.input_id = m.id
82
+ WHERE m.kind = 'scheduled' AND m.channel_key = ?
83
+ AND m.created_at >= (SELECT max(created_at) FROM mailbox_inputs
84
+ WHERE kind = 'scheduled' AND channel_key = ?) - ?`)
85
+ .all(turn_orders_js_1.RECORD_ORDER_CHANNEL, turn_orders_js_1.RECORD_ORDER_CHANNEL, RECOVERY_WINDOW_MS);
86
+ const states = new Map();
87
+ for (const row of rows) {
88
+ const order = (0, turn_orders_js_1.parseRecordOrder)(JSON.parse(row.payload_json));
89
+ // A row parked uncertain stays claimed; its batch is settled through onLost, not left open.
90
+ const open = (row.status === 'pending' || row.status === 'claimed') && row.native_state !== 'uncertain';
91
+ for (const batch of (0, turn_orders_js_1.recordOrderBatches)(order)) {
92
+ const current = states.get(batch.deltaStimulusId);
93
+ const orders = [...(current?.orders ?? []), row.stimulus_id];
94
+ if (current === undefined || batch.attempt > current.batch.attempt)
95
+ states.set(batch.deltaStimulusId, {
96
+ batch,
97
+ source: order.source,
98
+ channel: order.channel,
99
+ open,
100
+ orders,
101
+ });
102
+ else
103
+ states.set(batch.deltaStimulusId, {
104
+ ...current,
105
+ open: current.open || (batch.attempt === current.batch.attempt && open),
106
+ orders,
107
+ });
108
+ }
109
+ }
110
+ return states;
111
+ }
112
+ function orderExists(adapter, id) {
113
+ return (adapter.prepare(`SELECT 1 FROM mailbox_inputs WHERE stimulus_id = ? LIMIT 1`).get(id) !==
114
+ undefined);
115
+ }
116
+ function channelKeyOf(where) {
117
+ return `${where.source ?? ''}\u0000${where.channel}`;
118
+ }
50
119
  function createRecordOrders(options) {
51
120
  const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
52
121
  const childWaitMs = options.childWaitMs ?? 10 * 60 * 1000;
122
+ const retryDelayMs = options.retryDelayMs ?? exports.RECORD_RETRY_DELAY_MS;
123
+ const setTimer = options.setTimer ??
124
+ ((run, ms) => {
125
+ const timer = setTimeout(run, ms);
126
+ timer.unref?.();
127
+ return () => clearTimeout(timer);
128
+ });
129
+ const waiting = new Map();
53
130
  let stopped = false;
131
+ /**
132
+ * An order id is written once: its carried batches depend on what was waiting at the time, so
133
+ * the stored order stands. enqueueFirst checks before it takes the channel's waiting batches (a
134
+ * replayed notify result enqueues its first order again); a tick relies on the check here.
135
+ */
54
136
  const enqueue = (record) => {
55
- options.accept({
56
- id: (0, turn_orders_js_1.recordOrderId)(record.deltaStimulusId, record.attempt),
137
+ const id = (0, turn_orders_js_1.recordOrderId)(record.deltaStimulusId, record.attempt);
138
+ if (orderExists(options.adapter, id))
139
+ return false;
140
+ const receipt = options.accept({
141
+ id,
57
142
  kind: 'scheduled',
58
143
  channelKey: turn_orders_js_1.RECORD_ORDER_CHANNEL,
59
144
  occurredAt: Date.now(),
60
145
  payload: record,
61
146
  });
147
+ // The mailbox remembers an id after its row is pruned.
148
+ if (receipt.state === 'duplicate')
149
+ return false;
150
+ for (const batch of (0, turn_orders_js_1.recordOrderBatches)(record))
151
+ if (batch.attempt > 1)
152
+ options.onEvent?.({
153
+ type: 'retry',
154
+ deltaStimulusId: batch.deltaStimulusId,
155
+ attempt: batch.attempt,
156
+ order: id,
157
+ });
158
+ return true;
159
+ };
160
+ const take = (key) => {
161
+ const entry = waiting.get(key);
162
+ waiting.delete(key);
163
+ entry?.cancel?.();
164
+ return entry;
165
+ };
166
+ const next = (batch) => ({
167
+ ...batch,
168
+ attempt: batch.attempt + 1,
169
+ });
170
+ /**
171
+ * The waiting batches that still need an order. One that another order took up, or that was
172
+ * recorded while it waited (by another turn reading the channel), is left out.
173
+ */
174
+ const dueBatches = (batches) => {
175
+ if (batches.length === 0)
176
+ return [];
177
+ const stored = storedBatches(options.adapter);
178
+ const recorded = [];
179
+ const due = batches.filter((batch) => {
180
+ const state = stored.get(batch.deltaStimulusId);
181
+ if (state !== undefined && (state.open || state.batch.attempt > batch.attempt))
182
+ return false;
183
+ if (batchRecorded(options.adapter, batch, state?.orders ?? [])) {
184
+ recorded.push(batch);
185
+ return false;
186
+ }
187
+ return true;
188
+ });
189
+ for (const batch of recorded)
190
+ options.onEvent?.({
191
+ type: 'recorded',
192
+ deltaStimulusId: batch.deltaStimulusId,
193
+ attempt: batch.attempt,
194
+ });
195
+ return due;
196
+ };
197
+ // Kagemusha's next tick: the channel's waiting batches go together in one order.
198
+ const tick = (key) => {
199
+ const entry = take(key);
200
+ if (entry === undefined || stopped)
201
+ return;
202
+ // The batches whose outcome is still open; a failure below reports only these as lost.
203
+ let unsettled = [...entry.batches.values()];
204
+ try {
205
+ const due = dueBatches(unsettled);
206
+ unsettled = due;
207
+ const [own, ...carried] = due;
208
+ if (own === undefined)
209
+ return;
210
+ const placed = enqueue({
211
+ order: 'record',
212
+ deltaStimulusId: own.deltaStimulusId,
213
+ ...(entry.source === undefined ? {} : { source: entry.source }),
214
+ channel: entry.channel,
215
+ observationRefs: own.observationRefs,
216
+ lines: own.lines,
217
+ attempt: own.attempt + 1,
218
+ ...(carried.length === 0 ? {} : { carried: carried.map(next) }),
219
+ });
220
+ // The own batch's next order is already stored, older than the day recovery reads; that
221
+ // order accounts for it, and the rest wait for the next tick.
222
+ if (!placed)
223
+ for (const batch of carried)
224
+ wait(batch, entry);
225
+ }
226
+ catch (error) {
227
+ for (const batch of unsettled)
228
+ options.onEvent?.({
229
+ type: 'lost',
230
+ deltaStimulusId: batch.deltaStimulusId,
231
+ attempt: batch.attempt,
232
+ reason: `record retry failed: ${error instanceof Error ? error.message : String(error)}`,
233
+ });
234
+ }
62
235
  };
63
- const settle = (record, reason) => {
64
- if (batchRecorded(options.adapter, record)) {
236
+ const wait = (batch, where) => {
237
+ const key = channelKeyOf(where);
238
+ const entry = waiting.get(key) ?? {
239
+ source: where.source,
240
+ channel: where.channel,
241
+ batches: new Map(),
242
+ };
243
+ const current = entry.batches.get(batch.deltaStimulusId);
244
+ if (current === undefined || batch.attempt > current.attempt)
245
+ entry.batches.set(batch.deltaStimulusId, batch);
246
+ entry.cancel ??= setTimer(() => tick(key), retryDelayMs);
247
+ waiting.set(key, entry);
248
+ };
249
+ const settle = (batch, where, orders, reason) => {
250
+ if (batchRecorded(options.adapter, batch, orders)) {
65
251
  options.onEvent?.({
66
252
  type: 'recorded',
67
- deltaStimulusId: record.deltaStimulusId,
68
- attempt: record.attempt,
253
+ deltaStimulusId: batch.deltaStimulusId,
254
+ attempt: batch.attempt,
69
255
  });
70
256
  return;
71
257
  }
72
- if (record.attempt >= exports.RECORD_ORDER_MAX_ATTEMPTS) {
258
+ if (batch.attempt >= exports.RECORD_ORDER_MAX_ATTEMPTS) {
73
259
  options.onEvent?.({
74
260
  type: 'lost',
75
- deltaStimulusId: record.deltaStimulusId,
76
- attempt: record.attempt,
261
+ deltaStimulusId: batch.deltaStimulusId,
262
+ attempt: batch.attempt,
77
263
  reason,
78
264
  });
79
265
  return;
80
266
  }
81
267
  options.onEvent?.({
82
- type: 'retry',
83
- deltaStimulusId: record.deltaStimulusId,
84
- attempt: record.attempt + 1,
268
+ type: 'waiting',
269
+ deltaStimulusId: batch.deltaStimulusId,
270
+ attempt: batch.attempt,
85
271
  reason,
86
272
  });
87
- enqueue({ ...record, attempt: record.attempt + 1 });
273
+ if (!stopped)
274
+ wait(batch, where);
88
275
  };
89
276
  return {
277
+ // The channel's waiting batches ride with its next delta, as Kagemusha's cursor re-reads them.
90
278
  enqueueFirst: (row) => {
91
279
  const record = (0, turn_orders_js_1.recordOrderPayload)(row, 1);
92
280
  if (record.observationRefs.length === 0)
93
281
  throw new Error(`Live delta ${row.stimulusId} carries no observation to record`);
94
- enqueue(record);
282
+ if (orderExists(options.adapter, (0, turn_orders_js_1.recordOrderId)(record.deltaStimulusId, 1)))
283
+ return;
284
+ const key = channelKeyOf(record);
285
+ const carried = dueBatches([...(waiting.get(key)?.batches.values() ?? [])]).map(next);
286
+ enqueue(carried.length === 0 ? record : { ...record, carried });
287
+ // Taken only once the order is stored, so a refused accept leaves them waiting.
288
+ take(key);
95
289
  },
96
290
  // The check waits for child runs in the background so the owner's queue is never held.
97
291
  onResult: (row, modelRunId) => {
@@ -106,46 +300,58 @@ function createRecordOrders(options) {
106
300
  }
107
301
  if (stopped)
108
302
  return;
109
- settle(record, 'the order ended without a revision citing the batch or a declared no-update');
303
+ for (const batch of (0, turn_orders_js_1.recordOrderBatches)(record))
304
+ settle(batch, record, [row.stimulusId], 'the order ended without a revision citing the batch or a declared no-update');
110
305
  })().catch((error) => {
111
306
  // A check cut off by shutdown is not a loss: recover() runs it at the next start.
112
307
  if (stopped)
113
308
  return;
114
- options.onEvent?.({
115
- type: 'lost',
116
- deltaStimulusId: record.deltaStimulusId,
117
- attempt: record.attempt,
118
- reason: `record check failed: ${error instanceof Error ? error.message : String(error)}`,
119
- });
309
+ for (const batch of (0, turn_orders_js_1.recordOrderBatches)(record))
310
+ options.onEvent?.({
311
+ type: 'lost',
312
+ deltaStimulusId: batch.deltaStimulusId,
313
+ attempt: batch.attempt,
314
+ reason: `record check failed: ${error instanceof Error ? error.message : String(error)}`,
315
+ });
120
316
  });
121
317
  },
122
318
  onLost: (row, reason) => {
123
- settle((0, turn_orders_js_1.parseRecordOrder)(row.payload), reason);
319
+ const record = (0, turn_orders_js_1.parseRecordOrder)(row.payload);
320
+ try {
321
+ const stored = storedBatches(options.adapter);
322
+ for (const batch of (0, turn_orders_js_1.recordOrderBatches)(record)) {
323
+ const state = stored.get(batch.deltaStimulusId);
324
+ // The runtime reports a row parked uncertain again at every start. It was settled when it
325
+ // was first reported: skip it once a later attempt exists, or once it is older than the
326
+ // day recovery reads (a lost batch would otherwise run again).
327
+ if (state === undefined || state.batch.attempt > batch.attempt)
328
+ continue;
329
+ settle(batch, record, [...state.orders, row.stimulusId], reason);
330
+ }
331
+ }
332
+ catch (error) {
333
+ // The runtime swallows a failed report, so the loss is named here.
334
+ for (const batch of (0, turn_orders_js_1.recordOrderBatches)(record))
335
+ options.onEvent?.({
336
+ type: 'lost',
337
+ deltaStimulusId: batch.deltaStimulusId,
338
+ attempt: batch.attempt,
339
+ reason: `record check failed: ${error instanceof Error ? error.message : String(error)}`,
340
+ });
341
+ }
124
342
  },
125
343
  recover: () => {
126
- const rows = options.adapter
127
- .prepare(`SELECT payload_json, status FROM mailbox_inputs
128
- WHERE kind = 'scheduled' AND channel_key = ? AND created_at >= ?`)
129
- .all(turn_orders_js_1.RECORD_ORDER_CHANNEL, Date.now() - RECOVERY_WINDOW_MS);
130
- const latest = new Map();
131
- for (const row of rows) {
132
- const record = (0, turn_orders_js_1.parseRecordOrder)(JSON.parse(row.payload_json));
133
- const open = row.status === 'pending' || row.status === 'claimed';
134
- const current = latest.get(record.deltaStimulusId);
135
- latest.set(record.deltaStimulusId, {
136
- record: current && current.record.attempt > record.attempt ? current.record : record,
137
- open: open || (current?.open ?? false),
138
- });
139
- }
140
- for (const { record, open } of latest.values()) {
141
- if (open || batchRecorded(options.adapter, record))
344
+ for (const state of storedBatches(options.adapter).values()) {
345
+ if (state.open || batchRecorded(options.adapter, state.batch, state.orders))
142
346
  continue;
143
347
  // Repeats at each start while the batch stays unrecorded; any revision citing it clears it.
144
- settle(record, `still unrecorded at daemon start after attempt ${record.attempt}`);
348
+ settle(state.batch, state, state.orders, `still unrecorded at daemon start after attempt ${state.batch.attempt}`);
145
349
  }
146
350
  },
147
351
  stop: () => {
148
352
  stopped = true;
353
+ for (const key of [...waiting.keys()])
354
+ take(key);
149
355
  },
150
356
  };
151
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"record-orders.js","sourceRoot":"","sources":["../../src/runtime/record-orders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-orders.js","sourceRoot":"","sources":["../../src/runtime/record-orders.ts"],"names":[],"mappings":";;;AAsDA,sCAwBC;AA2ID,gDAwPC;AA7cD,qDAQ0B;AAEb,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAE3C;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAyBnD;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,OAAwB,EACxB,KAAoE,EACpE,iBAAoC,EAAE;IAEtC,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,OAAO;aACpB,OAAO,CACN;;;kCAG0B,KAAK;kBACrB,CACX;aACA,GAAG,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;IACzC,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iCAAyB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAC/E,IAAA,8BAAa,EAAC,KAAK,CAAC,eAAe,EAAE,KAAK,GAAG,CAAC,CAAC,CAChD,CAAC;IACF,IAAI,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;AACrF,CAAC;AAED,0FAA0F;AAC1F,SAAS,UAAU,CACjB,OAAwB,EACxB,QAA2B,EAC3B,KAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GACV,KAAK,KAAK,IAAI;QACZ,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;;;mCAG2B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACpE,OAAO,CACL,OAAO;SACJ,OAAO,CACN;;;;iFAIyE,KAAK;;;iFAGL,KAAK;;cAExE,MAAM;kBACF,CACX;SACA,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CACjE,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,SAAS,eAAe,CAAC,OAAwB,EAAE,UAAkB,EAAE,SAAiB;IACtF,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CACN;oGAC8F,CAC/F;SACA,GAAG,CAAC,UAAU,EAAE,SAAS,CAA8B,CAAC;IAC3D,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAaD,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAiB/C;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAwB;IAC7C,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CACN;;;;kFAI4E,CAC7E;SACA,GAAG,CAAC,qCAAoB,EAAE,qCAAoB,EAAE,kBAAkB,CAKnE,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAA,iCAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7D,4FAA4F;QAC5F,MAAM,IAAI,GACR,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,YAAY,KAAK,WAAW,CAAC;QAC7F,KAAK,MAAM,KAAK,IAAI,IAAA,mCAAkB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO;gBAChE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE;oBAChC,KAAK;oBACL,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI;oBACJ,MAAM;iBACP,CAAC,CAAC;;gBAEH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE;oBAChC,GAAG,OAAO;oBACV,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;oBACvE,MAAM;iBACP,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,OAAwB,EAAE,EAAU;IACvD,OAAO,CACL,OAAO,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACrF,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAgB;IACpC,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC;AACvD,CAAC;AAQD,SAAgB,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,6BAAqB,CAAC;IACnE,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ;QAChB,CAAC,CAAC,GAAe,EAAE,EAAU,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB;;;;OAIG;IACH,MAAM,OAAO,GAAG,CAAC,MAA0B,EAAW,EAAE;QACtD,MAAM,EAAE,GAAG,IAAA,8BAAa,EAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,EAAE;YACF,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,qCAAoB;YAChC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,OAAO,EAAE,MAAwC;SAClD,CAAC,CAAC;QACH,uDAAuD;QACvD,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,IAAA,mCAAkB,EAAC,MAAM,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC;gBACnB,OAAO,CAAC,OAAO,EAAE,CAAC;oBAChB,IAAI,EAAE,OAAO;oBACb,eAAe,EAAE,KAAK,CAAC,eAAe;oBACtC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,EAAE;iBACV,CAAC,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,GAAW,EAA8B,EAAE;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,KAAuB,EAAoB,EAAE,CAAC,CAAC;QAC3D,GAAG,KAAK;QACR,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC;KAC3B,CAAC,CAAC;IAEH;;;OAGG;IACH,MAAM,UAAU,GAAG,CAAC,OAAoC,EAAsB,EAAE;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7F,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC/D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,QAAQ;YAC1B,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,iFAAiF;IACjF,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO;YAAE,OAAO;QAC3C,uFAAuF;QACvF,IAAI,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YAClC,SAAS,GAAG,GAAG,CAAC;YAChB,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC;YAC9B,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC;gBACrB,KAAK,EAAE,QAAQ;gBACf,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC/D,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC;gBACxB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;aAChE,CAAC,CAAC;YACH,wFAAwF;YACxF,8DAA8D;YAC9D,IAAI,CAAC,MAAM;gBAAE,KAAK,MAAM,KAAK,IAAI,OAAO;oBAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,MAAM,KAAK,IAAI,SAAS;gBAC3B,OAAO,CAAC,OAAO,EAAE,CAAC;oBAChB,IAAI,EAAE,MAAM;oBACZ,eAAe,EAAE,KAAK,CAAC,eAAe;oBACtC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,MAAM,EAAE,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACzF,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,KAAuB,EAAE,KAAgB,EAAQ,EAAE;QAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,IAAI,GAAG,EAA4B;SAC7C,CAAC;QACF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;YAC1D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAClD,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CACb,KAAuB,EACvB,KAAgB,EAChB,MAAyB,EACzB,MAAc,EACR,EAAE;QACR,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChB,IAAI,EAAE,UAAU;gBAChB,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,IAAI,iCAAyB,EAAE,CAAC;YAC/C,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChB,IAAI,EAAE,MAAM;gBACZ,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM;aACP,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,EAAE,SAAS;YACf,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO;QACL,+FAA+F;QAC/F,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,IAAA,mCAAkB,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,UAAU,mCAAmC,CAAC,CAAC;YACnF,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAA,8BAAa,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;gBAAE,OAAO;YACnF,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtF,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,gFAAgF;YAChF,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,uFAAuF;QACvF,QAAQ,EAAE,CAAC,GAAe,EAAE,UAAyB,EAAE,EAAE;YACvD,MAAM,MAAM,GAAG,IAAA,iCAAgB,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;oBAC1C,OACE,CAAC,OAAO;wBACR,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC;wBAC1E,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;wBAErB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,OAAO;oBAAE,OAAO;gBACpB,KAAK,MAAM,KAAK,IAAI,IAAA,mCAAkB,EAAC,MAAM,CAAC;oBAC5C,MAAM,CACJ,KAAK,EACL,MAAM,EACN,CAAC,GAAG,CAAC,UAAU,CAAC,EAChB,6EAA6E,CAC9E,CAAC;YACN,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC5B,kFAAkF;gBAClF,IAAI,OAAO;oBAAE,OAAO;gBACpB,KAAK,MAAM,KAAK,IAAI,IAAA,mCAAkB,EAAC,MAAM,CAAC;oBAC5C,OAAO,CAAC,OAAO,EAAE,CAAC;wBAChB,IAAI,EAAE,MAAM;wBACZ,eAAe,EAAE,KAAK,CAAC,eAAe;wBACtC,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,MAAM,EAAE,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBACzF,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,CAAC,GAAe,EAAE,MAAc,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,IAAA,iCAAgB,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9C,KAAK,MAAM,KAAK,IAAI,IAAA,mCAAkB,EAAC,MAAM,CAAC,EAAE,CAAC;oBAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAChD,0FAA0F;oBAC1F,wFAAwF;oBACxF,+DAA+D;oBAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;wBAAE,SAAS;oBACzE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mEAAmE;gBACnE,KAAK,MAAM,KAAK,IAAI,IAAA,mCAAkB,EAAC,MAAM,CAAC;oBAC5C,OAAO,CAAC,OAAO,EAAE,CAAC;wBAChB,IAAI,EAAE,MAAM;wBACZ,eAAe,EAAE,KAAK,CAAC,eAAe;wBACtC,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,MAAM,EAAE,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBACzF,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5D,IAAI,KAAK,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;oBAAE,SAAS;gBACtF,4FAA4F;gBAC5F,MAAM,CACJ,KAAK,CAAC,KAAK,EACX,KAAK,EACL,KAAK,CAAC,MAAM,EACZ,kDAAkD,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CACxE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -8,6 +8,13 @@ export interface ReportSchedulerOptions {
8
8
  timeZone: TimeZoneSetting;
9
9
  statePath: string;
10
10
  intake: Pick<StimulusIntake, 'acceptScheduled'>;
11
+ /**
12
+ * Write a daily wiki page at reports.daily_hour; only with the wiki enabled. `written` says
13
+ * whether daily/<day>.md was written at or after `since`: the day counts as done only then.
14
+ */
15
+ dailyPages?: {
16
+ written(day: string, since: number): boolean;
17
+ };
11
18
  /** Includes queued/retrying inputs across restarts, excludes uncertain failed turns. */
12
19
  hasPendingReport: () => boolean;
13
20
  sendToOwner: (text: string, idempotencyKey: string) => Promise<void>;
@@ -18,7 +25,7 @@ export declare function createReportScheduler(options: ReportSchedulerOptions):
18
25
  tick: (now?: Date) => void;
19
26
  start: () => void;
20
27
  stop: () => void;
21
- onResult: (row: Pick<MailboxRow, "stimulusId" | "payload">, result: Pick<NativeTurnResult, "response">) => Promise<void>;
28
+ onResult: (row: Pick<MailboxRow, "stimulusId" | "payload" | "occurredAt">, result: Pick<NativeTurnResult, "response">) => Promise<void>;
22
29
  };
23
30
  export type ReportScheduler = ReturnType<typeof createReportScheduler>;
24
31
  //# sourceMappingURL=report-scheduler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report-scheduler.d.ts","sourceRoot":"","sources":["../../src/runtime/report-scheduler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAOrD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAChD,wFAAwF;IACxF,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC;AAmBD,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB;0BAGlC,IAAI;;;oBAyD5B,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS,CAAC,UACvC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,KACzC,OAAO,CAAC,IAAI,CAAC;EAmBnB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"report-scheduler.d.ts","sourceRoot":"","sources":["../../src/runtime/report-scheduler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AASrD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAChD;;;OAGG;IACH,UAAU,CAAC,EAAE;QAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC9D,wFAAwF;IACxF,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC;AAyBD,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB;0BAGlC,IAAI;;;oBA6E5B,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC,UACtD,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,KACzC,OAAO,CAAC,IAAI,CAAC;EA0BnB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -14,7 +14,11 @@ function loadState(path) {
14
14
  !['lastFullKey', 'lastReminderKey'].every((key) => {
15
15
  const value = state[key];
16
16
  return (value === null || (typeof value === 'string' && /^\d{4}-\d{2}-\d{2}:\d{2}$/.test(value)));
17
- }))
17
+ }) ||
18
+ !(state.lastDailyKey === undefined ||
19
+ state.lastDailyKey === null ||
20
+ (typeof state.lastDailyKey === 'string' &&
21
+ /^\d{4}-\d{2}-\d{2}$/.test(state.lastDailyKey))))
18
22
  throw new Error('Invalid report schedule state');
19
23
  return state;
20
24
  }
@@ -35,22 +39,43 @@ function createReportScheduler(options) {
35
39
  }).formatToParts(now);
36
40
  const part = (type) => parts.find((entry) => entry.type === type).value;
37
41
  const hour = Number(part('hour'));
38
- const hourKey = `${part('year')}-${part('month')}-${part('day')}:${part('hour')}`;
42
+ const day = `${part('year')}-${part('month')}-${part('day')}`;
43
+ const hourKey = `${day}:${part('hour')}`;
39
44
  const full = options.config.full_report_hours.includes(hour);
40
- if (full
41
- ? state.lastFullKey === hourKey
42
- : hour < options.config.reminder_start_hour ||
43
- hour > options.config.reminder_end_hour ||
44
- state.lastReminderKey === hourKey ||
45
+ const reportDue = full
46
+ ? state.lastFullKey !== hourKey
47
+ : hour >= options.config.reminder_start_hour &&
48
+ hour <= options.config.reminder_end_hour &&
49
+ state.lastReminderKey !== hourKey &&
45
50
  // A full report already sent this hour covers it, even if the hour is no longer a
46
51
  // full-report hour after a config change.
47
- state.lastFullKey === hourKey)
52
+ state.lastFullKey !== hourKey;
53
+ // The day's page is due from its hour on; a day missed while the daemon was down or a report
54
+ // was pending is written at the next tick after midnight. A first start waits for the hour.
55
+ // At hour 0 the page is for the day that just ended, not the one that began.
56
+ const [year, month, date] = day.split('-').map(Number);
57
+ const yesterday = new Date(Date.UTC(year, month - 1, date - 1)).toISOString().slice(0, 10);
58
+ const dailyDay = options.config.daily_hour === 0
59
+ ? yesterday
60
+ : hour >= options.config.daily_hour
61
+ ? day
62
+ : state.lastDailyKey
63
+ ? yesterday
64
+ : null;
65
+ // A report due in the same hour goes first.
66
+ const dailyDue = !reportDue &&
67
+ options.dailyPages !== undefined &&
68
+ dailyDay !== null &&
69
+ (state.lastDailyKey ?? '') < dailyDay;
70
+ if (!reportDue && !dailyDue)
48
71
  return;
49
- const payload = {
50
- report: full ? 'full' : 'reminder',
51
- hourKey,
52
- ...(full ? { previousFullReportAt: state.lastFullKey } : {}),
53
- };
72
+ const payload = dailyDue
73
+ ? { report: 'daily', hourKey, day: dailyDay }
74
+ : {
75
+ report: full ? 'full' : 'reminder',
76
+ hourKey,
77
+ ...(full ? { previousFullReportAt: state.lastFullKey } : {}),
78
+ };
54
79
  options.intake.acceptScheduled({
55
80
  id: `report:${hourKey}:${(0, node_crypto_1.randomUUID)()}`,
56
81
  channelKey: turn_orders_js_1.REPORT_CHANNEL,
@@ -79,16 +104,22 @@ function createReportScheduler(options) {
79
104
  timer = undefined;
80
105
  },
81
106
  onResult: async (row, result) => {
82
- const { report, hourKey } = (0, turn_orders_js_1.scheduledReport)(row.payload);
107
+ const { report, hourKey, day } = (0, turn_orders_js_1.scheduledReport)(row.payload);
83
108
  const text = result.response.trim();
84
109
  if (!text)
85
110
  throw new Error('Scheduled report returned empty output');
111
+ // An [ack] without the page would leave the day unwritten for good; failing the turn retries it.
112
+ if (report === 'daily' && options.dailyPages?.written(day, row.occurredAt) !== true)
113
+ throw new Error(`The daily order ended without writing daily/${day}.md`);
86
114
  // A reminder with nothing that needs the owner ends with [ack] and is not sent; the last
87
- // marker decides, as for delta replies.
115
+ // marker decides, as for delta replies. A daily page goes to the wiki, never to the owner.
88
116
  const lastMarker = text.slice(Math.max(text.lastIndexOf('[notify]'), text.lastIndexOf('[ack]')));
89
- if (!(report === 'reminder' && lastMarker.startsWith('[ack]')))
117
+ if (report === 'full' || (report === 'reminder' && !lastMarker.startsWith('[ack]')))
90
118
  await options.sendToOwner(text, `report:${hourKey}:${report}`);
91
- const next = { ...state, [report === 'full' ? 'lastFullKey' : 'lastReminderKey']: hourKey };
119
+ // A daily page rewritten for an earlier day leaves the latest day in place.
120
+ const next = report === 'daily'
121
+ ? { ...state, lastDailyKey: [state.lastDailyKey ?? '', day].sort().at(-1) }
122
+ : { ...state, [report === 'full' ? 'lastFullKey' : 'lastReminderKey']: hourKey };
92
123
  (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(options.statePath), { recursive: true });
93
124
  const temporary = `${options.statePath}.tmp`;
94
125
  (0, node_fs_1.writeFileSync)(temporary, JSON.stringify(next, null, 2), 'utf8');
@@ -1 +1 @@
1
- {"version":3,"file":"report-scheduler.js","sourceRoot":"","sources":["../../src/runtime/report-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-scheduler.js","sourceRoot":"","sources":["../../src/runtime/report-scheduler.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,20 @@
4
4
  * Owner exchanges count only once the transport delivered them.
5
5
  */
6
6
  import type { MemoryRecord } from '@jungjaehoon/mama-core';
7
+ import type { DatabaseAdapter } from '@jungjaehoon/mama-core/db-manager';
7
8
  import type { Mailbox, MailboxRow } from '@jungjaehoon/mama-core/runtime/mailbox';
8
9
  import type { SessionStartInput } from './turn-orders.js';
10
+ /**
11
+ * How long the mailbox keeps an acknowledged owner message (mama-core prunes acked rows after
12
+ * seven days); owner.messages says so when asked for older days.
13
+ */
14
+ export declare const OWNER_MESSAGE_RETENTION_MS: number;
15
+ /** The owner's messages in [since, before), oldest first, each with the reply the turn produced. */
16
+ export declare function ownerExchangesBetween(mailbox: Mailbox, adapter: DatabaseAdapter, principalId: string, since: number, before: number): Array<{
17
+ at: number;
18
+ owner: string;
19
+ reply: string | null;
20
+ }>;
9
21
  export declare function readSessionStartInput(ports: {
10
22
  mailbox: Mailbox;
11
23
  deliveredRefs: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"session-start-context.d.ts","sourceRoot":"","sources":["../../src/runtime/session-start-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAgDhF,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,uDAAuD;IACvD,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IAChD,sFAAsF;IACtF,UAAU,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC5F,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwB7B"}
1
+ {"version":3,"file":"session-start-context.d.ts","sourceRoot":"","sources":["../../src/runtime/session-start-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAsBhF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAAiB,CAAC;AAEzD,oGAAoG;AACpG,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAe5D;AA4BD,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,uDAAuD;IACvD,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IAChD,sFAAsF;IACtF,UAAU,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC5F,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwB7B"}