@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.
- package/CHANGELOG.md +22 -0
- package/README.md +3 -1
- package/dist/agent/agent-loop.d.ts +0 -3
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +49 -34
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +18 -0
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +185 -6
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +10 -5
- package/dist/agent/role-manager.d.ts +22 -1
- package/dist/agent/role-manager.d.ts.map +1 -1
- package/dist/agent/role-manager.js +39 -2
- package/dist/agent/role-manager.js.map +1 -1
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +35 -5
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +9 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/graph-api.d.ts.map +1 -1
- package/dist/api/graph-api.js +43 -33
- package/dist/api/graph-api.js.map +1 -1
- package/dist/api/operator-tasks-handler.d.ts.map +1 -1
- package/dist/api/operator-tasks-handler.js +6 -2
- package/dist/api/operator-tasks-handler.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +185 -2
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/config/config-manager.d.ts +0 -5
- package/dist/cli/config/config-manager.d.ts.map +1 -1
- package/dist/cli/config/config-manager.js +57 -2
- package/dist/cli/config/config-manager.js.map +1 -1
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +35 -0
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +96 -51
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/api-routes-init.d.ts +3 -0
- package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-routes-init.js +293 -196
- package/dist/cli/runtime/api-routes-init.js.map +1 -1
- package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
- package/dist/cli/runtime/gateway-init.js +5 -0
- package/dist/cli/runtime/gateway-init.js.map +1 -1
- package/dist/cli/runtime/gateway-wiring.d.ts.map +1 -1
- package/dist/cli/runtime/gateway-wiring.js +6 -0
- package/dist/cli/runtime/gateway-wiring.js.map +1 -1
- package/dist/envelope/reactive-config.d.ts.map +1 -1
- package/dist/envelope/reactive-config.js +26 -1
- package/dist/envelope/reactive-config.js.map +1 -1
- package/dist/gateways/message-router.d.ts +18 -1
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +155 -22
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/telegram.d.ts +1 -0
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +38 -1
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/gateways/types.d.ts +3 -0
- package/dist/gateways/types.d.ts.map +1 -1
- package/dist/memory/history-extractor.d.ts +0 -24
- package/dist/memory/history-extractor.d.ts.map +1 -1
- package/dist/memory/history-extractor.js +0 -127
- package/dist/memory/history-extractor.js.map +1 -1
- package/dist/memory/save-candidate-extractor.d.ts +3 -0
- package/dist/memory/save-candidate-extractor.d.ts.map +1 -1
- package/dist/memory/save-candidate-extractor.js +12 -1
- package/dist/memory/save-candidate-extractor.js.map +1 -1
- package/dist/memory/secret-filter.d.ts +22 -0
- package/dist/memory/secret-filter.d.ts.map +1 -0
- package/dist/memory/secret-filter.js +77 -0
- package/dist/memory/secret-filter.js.map +1 -0
- package/dist/observability/code-audit.d.ts +87 -0
- package/dist/observability/code-audit.d.ts.map +1 -0
- package/dist/observability/code-audit.js +403 -0
- package/dist/observability/code-audit.js.map +1 -0
- package/dist/operator/briefs.d.ts +26 -0
- package/dist/operator/briefs.d.ts.map +1 -0
- package/dist/operator/briefs.js +128 -0
- package/dist/operator/briefs.js.map +1 -0
- package/dist/operator/operator-trigger-loop.d.ts +24 -0
- package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.js +71 -12
- package/dist/operator/operator-trigger-loop.js.map +1 -1
- package/dist/operator/report-carry.d.ts +29 -0
- package/dist/operator/report-carry.d.ts.map +1 -0
- package/dist/operator/report-carry.js +81 -0
- package/dist/operator/report-carry.js.map +1 -0
- package/dist/operator/shadow-capture.d.ts +20 -0
- package/dist/operator/shadow-capture.d.ts.map +1 -0
- package/dist/operator/shadow-capture.js +34 -0
- package/dist/operator/shadow-capture.js.map +1 -0
- package/dist/operator/situation-report.d.ts +6 -0
- package/dist/operator/situation-report.d.ts.map +1 -1
- package/dist/operator/situation-report.js +15 -1
- package/dist/operator/situation-report.js.map +1 -1
- package/dist/operator/task-ledger.d.ts +90 -2
- package/dist/operator/task-ledger.d.ts.map +1 -1
- package/dist/operator/task-ledger.js +359 -23
- package/dist/operator/task-ledger.js.map +1 -1
- package/dist/operator/worker-run.d.ts +59 -0
- package/dist/operator/worker-run.d.ts.map +1 -0
- package/dist/operator/worker-run.js +64 -0
- package/dist/operator/worker-run.js.map +1 -0
- package/dist/operator/workorder-consumer.d.ts +118 -0
- package/dist/operator/workorder-consumer.d.ts.map +1 -0
- package/dist/operator/workorder-consumer.js +248 -0
- package/dist/operator/workorder-consumer.js.map +1 -0
- package/dist/operator/workorder-hooks.d.ts +30 -0
- package/dist/operator/workorder-hooks.d.ts.map +1 -0
- package/dist/operator/workorder-hooks.js +70 -0
- package/dist/operator/workorder-hooks.js.map +1 -0
- package/dist/operator/workorder-publishers.d.ts +68 -0
- package/dist/operator/workorder-publishers.d.ts.map +1 -0
- package/dist/operator/workorder-publishers.js +150 -0
- package/dist/operator/workorder-publishers.js.map +1 -0
- package/dist/security/security-monitor.d.ts +19 -0
- package/dist/security/security-monitor.d.ts.map +1 -1
- package/dist/security/security-monitor.js +68 -14
- package/dist/security/security-monitor.js.map +1 -1
- package/dist/utils/untrusted-content.d.ts +31 -0
- package/dist/utils/untrusted-content.d.ts.map +1 -0
- package/dist/utils/untrusted-content.js +77 -0
- package/dist/utils/untrusted-content.js.map +1 -0
- 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
|
-
//
|
|
181
|
-
//
|
|
182
|
-
//
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
reportScheduler.
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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":"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"}
|
|
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;
|
|
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
|
-
|
|
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":";;;
|
|
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
|
-
/**
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEzE,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"task-ledger.d.ts","sourceRoot":"","sources":["../../src/operator/task-ledger.ts"],"names":[],"mappings":"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"}
|