@jungjaehoon/mama-os 0.40.0 → 0.41.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/README.md +2 -2
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +0 -22
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +6 -7
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +38 -76
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +1 -3
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +6 -18
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +1 -8
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/commands/start.d.ts +45 -52
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +247 -202
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +0 -2
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/api-routes-init.d.ts +0 -3
- package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-routes-init.js +8 -32
- package/dist/cli/runtime/api-routes-init.js.map +1 -1
- package/dist/connectors/private-connector-policy.d.ts +1 -3
- package/dist/connectors/private-connector-policy.d.ts.map +1 -1
- package/dist/connectors/private-connector-policy.js +1 -26
- package/dist/connectors/private-connector-policy.js.map +1 -1
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +2 -3
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/multi-agent/dashboard-agent-persona.d.ts +1 -1
- package/dist/multi-agent/dashboard-agent-persona.d.ts.map +1 -1
- package/dist/multi-agent/dashboard-agent-persona.js +6 -7
- package/dist/multi-agent/dashboard-agent-persona.js.map +1 -1
- package/dist/operator/board-pipeline-render.d.ts +17 -0
- package/dist/operator/board-pipeline-render.d.ts.map +1 -0
- package/dist/operator/board-pipeline-render.js +73 -0
- package/dist/operator/board-pipeline-render.js.map +1 -0
- package/dist/operator/board-slot-instructions.d.ts +0 -8
- package/dist/operator/board-slot-instructions.d.ts.map +1 -1
- package/dist/operator/board-slot-instructions.js +3 -37
- package/dist/operator/board-slot-instructions.js.map +1 -1
- package/dist/operator/console-brief.d.ts +1 -1
- package/dist/operator/console-brief.d.ts.map +1 -1
- package/dist/operator/console-brief.js +5 -4
- package/dist/operator/console-brief.js.map +1 -1
- package/dist/operator/owner-event-inbox.d.ts +10 -1
- package/dist/operator/owner-event-inbox.d.ts.map +1 -1
- package/dist/operator/owner-event-inbox.js +22 -6
- package/dist/operator/owner-event-inbox.js.map +1 -1
- package/dist/operator/owner-event-loop.d.ts +4 -2
- package/dist/operator/owner-event-loop.d.ts.map +1 -1
- package/dist/operator/owner-event-loop.js +20 -3
- package/dist/operator/owner-event-loop.js.map +1 -1
- package/dist/operator/owner-event-outcome.d.ts +3 -3
- package/dist/operator/owner-event-outcome.d.ts.map +1 -1
- package/dist/operator/owner-event-outcome.js +66 -9
- package/dist/operator/owner-event-outcome.js.map +1 -1
- package/dist/operator/owner-event-policy.d.ts.map +1 -1
- package/dist/operator/owner-event-policy.js +18 -8
- package/dist/operator/owner-event-policy.js.map +1 -1
- package/dist/operator/owner-event-prompt.d.ts +2 -0
- package/dist/operator/owner-event-prompt.d.ts.map +1 -1
- package/dist/operator/owner-event-prompt.js +14 -5
- package/dist/operator/owner-event-prompt.js.map +1 -1
- package/dist/operator/report-context.d.ts +12 -0
- package/dist/operator/report-context.d.ts.map +1 -1
- package/dist/operator/report-context.js +60 -0
- package/dist/operator/report-context.js.map +1 -1
- package/dist/operator/task-ledger.d.ts +20 -1
- package/dist/operator/task-ledger.d.ts.map +1 -1
- package/dist/operator/task-ledger.js +58 -1
- package/dist/operator/task-ledger.js.map +1 -1
- package/dist/operator/temporal-worker.d.ts +0 -1
- package/dist/operator/temporal-worker.d.ts.map +1 -1
- package/dist/operator/temporal-worker.js +0 -29
- package/dist/operator/temporal-worker.js.map +1 -1
- package/dist/operator/worker-run.d.ts +1 -1
- package/dist/operator/worker-run.d.ts.map +1 -1
- package/dist/operator/worker-run.js +5 -4
- package/dist/operator/worker-run.js.map +1 -1
- package/dist/operator/workorder-consumer.d.ts +18 -2
- package/dist/operator/workorder-consumer.d.ts.map +1 -1
- package/dist/operator/workorder-consumer.js +92 -1
- package/dist/operator/workorder-consumer.js.map +1 -1
- package/dist/operator/workorder-hooks.d.ts +1 -7
- package/dist/operator/workorder-hooks.d.ts.map +1 -1
- package/dist/operator/workorder-hooks.js +1 -5
- package/dist/operator/workorder-hooks.js.map +1 -1
- package/dist/operator/workorder-publishers.d.ts +0 -7
- package/dist/operator/workorder-publishers.d.ts.map +1 -1
- package/dist/operator/workorder-publishers.js +0 -22
- package/dist/operator/workorder-publishers.js.map +1 -1
- package/package.json +1 -1
- package/dist/db/migrations/owner-event-board-refresh.d.ts +0 -10
- package/dist/db/migrations/owner-event-board-refresh.d.ts.map +0 -1
- package/dist/db/migrations/owner-event-board-refresh.js +0 -27
- package/dist/db/migrations/owner-event-board-refresh.js.map +0 -1
- package/dist/operator/briefs.d.ts +0 -50
- package/dist/operator/briefs.d.ts.map +0 -1
- package/dist/operator/briefs.js +0 -451
- package/dist/operator/briefs.js.map +0 -1
- package/dist/operator/owner-event-board-refresh.d.ts +0 -51
- package/dist/operator/owner-event-board-refresh.d.ts.map +0 -1
- package/dist/operator/owner-event-board-refresh.js +0 -260
- package/dist/operator/owner-event-board-refresh.js.map +0 -1
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OwnerEventBoardRefreshLedger = exports.OWNER_EVENT_BOARD_CLAIM_WINDOW_MS = void 0;
|
|
4
|
-
exports.resolveInitialBoardRepairGeneration = resolveInitialBoardRepairGeneration;
|
|
5
|
-
const owner_event_board_refresh_js_1 = require("../db/migrations/owner-event-board-refresh.js");
|
|
6
|
-
const board_refresh_gate_js_1 = require("./board-refresh-gate.js");
|
|
7
|
-
const workorder_publishers_js_1 = require("./workorder-publishers.js");
|
|
8
|
-
exports.OWNER_EVENT_BOARD_CLAIM_WINDOW_MS = 20 * 60 * 1000;
|
|
9
|
-
function assertNonNegativeSafeInteger(value, field) {
|
|
10
|
-
if (!Number.isSafeInteger(value) || value < 0) {
|
|
11
|
-
throw new Error(`${field} must be a non-negative safe integer`);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
function canonicalEventIds(value, field) {
|
|
15
|
-
if (!Array.isArray(value) || value.length === 0) {
|
|
16
|
-
throw new Error(`${field} must contain at least one event id`);
|
|
17
|
-
}
|
|
18
|
-
const normalized = value.map((eventId) => {
|
|
19
|
-
if (typeof eventId !== 'string' || eventId.trim().length === 0) {
|
|
20
|
-
throw new Error(`${field} must contain only non-empty event ids`);
|
|
21
|
-
}
|
|
22
|
-
return eventId;
|
|
23
|
-
});
|
|
24
|
-
const unique = [...new Set(normalized)].sort();
|
|
25
|
-
if (unique.length !== normalized.length) {
|
|
26
|
-
throw new Error(`${field} must not contain duplicate event ids`);
|
|
27
|
-
}
|
|
28
|
-
return unique;
|
|
29
|
-
}
|
|
30
|
-
function acceptanceFromRow(row) {
|
|
31
|
-
return {
|
|
32
|
-
batchId: row.batch_id,
|
|
33
|
-
batchKey: row.batch_key,
|
|
34
|
-
repairGeneration: row.repair_generation,
|
|
35
|
-
workOrderId: row.workorder_id,
|
|
36
|
-
appliedAt: row.applied_at,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function resolveInitialBoardRepairGeneration(now, pendingGeneration) {
|
|
40
|
-
assertNonNegativeSafeInteger(now, 'board repair wall time');
|
|
41
|
-
if (pendingGeneration === null)
|
|
42
|
-
return now;
|
|
43
|
-
assertNonNegativeSafeInteger(pendingGeneration, 'pending board repair generation');
|
|
44
|
-
if (pendingGeneration >= Number.MAX_SAFE_INTEGER) {
|
|
45
|
-
throw new Error('pending board repair generation exhausted');
|
|
46
|
-
}
|
|
47
|
-
return Math.max(now, pendingGeneration + 1);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Durable many-to-one relation between exact owner-event batches and the
|
|
51
|
-
* shared Board repair workorder (TG-06).
|
|
52
|
-
*
|
|
53
|
-
* SQLite owns acceptance. The in-memory set owns only a best-effort wakeup
|
|
54
|
-
* after the current workorder becomes terminal; unapplied rows recover it on
|
|
55
|
-
* the next boot if the process dies in that narrow window.
|
|
56
|
-
*/
|
|
57
|
-
class OwnerEventBoardRefreshLedger {
|
|
58
|
-
db;
|
|
59
|
-
taskLedger;
|
|
60
|
-
clock;
|
|
61
|
-
postTerminalFollowups = new Set();
|
|
62
|
-
constructor(db, taskLedger, clock = () => Date.now()) {
|
|
63
|
-
this.db = db;
|
|
64
|
-
this.taskLedger = taskLedger;
|
|
65
|
-
this.clock = clock;
|
|
66
|
-
(0, owner_event_board_refresh_js_1.applyOwnerEventBoardRefreshMigration)(this.db);
|
|
67
|
-
}
|
|
68
|
-
maxPendingGeneration() {
|
|
69
|
-
const row = this.db
|
|
70
|
-
.prepare(`SELECT MAX(repair_generation) AS generation
|
|
71
|
-
FROM owner_event_board_refresh_intents
|
|
72
|
-
WHERE applied_at IS NULL`)
|
|
73
|
-
.get();
|
|
74
|
-
return row?.generation ?? null;
|
|
75
|
-
}
|
|
76
|
-
accept(input) {
|
|
77
|
-
if (!Number.isSafeInteger(input.batchId) || input.batchId <= 0) {
|
|
78
|
-
throw new Error('owner-event Board batchId must be a positive safe integer');
|
|
79
|
-
}
|
|
80
|
-
assertNonNegativeSafeInteger(input.repair.repairGeneration, 'board repair generation');
|
|
81
|
-
if (input.repair.noUpdateScope !== (0, board_refresh_gate_js_1.boardFullNoUpdateScope)(input.repair.repairGeneration)) {
|
|
82
|
-
throw new Error('owner-event Board no-update scope does not match its repair generation');
|
|
83
|
-
}
|
|
84
|
-
const requestedEventIds = canonicalEventIds(input.eventIds, 'owner-event Board eventIds');
|
|
85
|
-
const inboxRow = this.db
|
|
86
|
-
.prepare(`SELECT event_ids_json FROM owner_event_inbox WHERE id = ?`)
|
|
87
|
-
.get(input.batchId);
|
|
88
|
-
if (!inboxRow) {
|
|
89
|
-
throw new Error(`owner-event Board batch ${input.batchId} does not exist`);
|
|
90
|
-
}
|
|
91
|
-
const storedEventIds = canonicalEventIds(JSON.parse(inboxRow.event_ids_json), 'stored owner-event Board eventIds');
|
|
92
|
-
const batchKey = (0, workorder_publishers_js_1.boardBatchKey)(requestedEventIds);
|
|
93
|
-
if ((0, workorder_publishers_js_1.boardBatchKey)(storedEventIds) !== batchKey) {
|
|
94
|
-
throw new Error(`owner-event Board batch ${input.batchId} conflicts with its stored event identity`);
|
|
95
|
-
}
|
|
96
|
-
this.db.exec('BEGIN IMMEDIATE');
|
|
97
|
-
try {
|
|
98
|
-
const existing = this.readAcceptance(input.batchId);
|
|
99
|
-
if (existing) {
|
|
100
|
-
if (existing.batchKey !== batchKey) {
|
|
101
|
-
throw new Error(`owner-event Board batch ${input.batchId} conflicts with its durable acceptance`);
|
|
102
|
-
}
|
|
103
|
-
this.db.exec('COMMIT');
|
|
104
|
-
return existing;
|
|
105
|
-
}
|
|
106
|
-
const payload = {
|
|
107
|
-
mode: 'full',
|
|
108
|
-
force: false,
|
|
109
|
-
repairGeneration: input.repair.repairGeneration,
|
|
110
|
-
noUpdateScope: input.repair.noUpdateScope,
|
|
111
|
-
};
|
|
112
|
-
(0, workorder_publishers_js_1.validateWorkOrderPayload)('board', payload);
|
|
113
|
-
const workOrder = this.taskLedger.enqueueWorkOrder({
|
|
114
|
-
workKind: 'board',
|
|
115
|
-
idempotencyKey: (0, workorder_publishers_js_1.boardRepairKey)(),
|
|
116
|
-
input: payload,
|
|
117
|
-
priority: 'high',
|
|
118
|
-
});
|
|
119
|
-
const now = this.clock();
|
|
120
|
-
assertNonNegativeSafeInteger(now, 'owner-event Board intent time');
|
|
121
|
-
this.db
|
|
122
|
-
.prepare(`INSERT INTO owner_event_board_refresh_intents
|
|
123
|
-
(batch_id, batch_key, repair_generation, workorder_id,
|
|
124
|
-
applied_at, created_at, updated_at)
|
|
125
|
-
VALUES (?, ?, ?, ?, NULL, ?, ?)`)
|
|
126
|
-
.run(input.batchId, batchKey, input.repair.repairGeneration, workOrder.id, now, now);
|
|
127
|
-
this.attachPendingToWorkOrderInTransaction(workOrder.id, {}, now);
|
|
128
|
-
const inserted = this.readAcceptance(input.batchId);
|
|
129
|
-
if (!inserted) {
|
|
130
|
-
throw new Error('owner-event Board acceptance disappeared after insert');
|
|
131
|
-
}
|
|
132
|
-
this.db.exec('COMMIT');
|
|
133
|
-
return inserted;
|
|
134
|
-
}
|
|
135
|
-
catch (error) {
|
|
136
|
-
this.db.exec('ROLLBACK');
|
|
137
|
-
throw error;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
findAcceptance(batchId) {
|
|
141
|
-
if (!Number.isSafeInteger(batchId) || batchId <= 0)
|
|
142
|
-
return null;
|
|
143
|
-
return this.readAcceptance(batchId);
|
|
144
|
-
}
|
|
145
|
-
attachPendingToWorkOrder(workOrderId, options = {}) {
|
|
146
|
-
const now = this.clock();
|
|
147
|
-
assertNonNegativeSafeInteger(now, 'owner-event Board attachment time');
|
|
148
|
-
this.db.exec('BEGIN IMMEDIATE');
|
|
149
|
-
try {
|
|
150
|
-
const changes = this.attachPendingToWorkOrderInTransaction(workOrderId, options, now);
|
|
151
|
-
this.db.exec('COMMIT');
|
|
152
|
-
return changes;
|
|
153
|
-
}
|
|
154
|
-
catch (error) {
|
|
155
|
-
this.db.exec('ROLLBACK');
|
|
156
|
-
throw error;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
markVerified(workOrderId, capturedGeneration) {
|
|
160
|
-
assertNonNegativeSafeInteger(capturedGeneration, 'captured Board repair generation');
|
|
161
|
-
const now = this.clock();
|
|
162
|
-
assertNonNegativeSafeInteger(now, 'owner-event Board application time');
|
|
163
|
-
let applied = 0;
|
|
164
|
-
let followupPending = false;
|
|
165
|
-
this.db.exec('BEGIN IMMEDIATE');
|
|
166
|
-
try {
|
|
167
|
-
this.assertBoardWorkOrder(workOrderId);
|
|
168
|
-
applied = this.db
|
|
169
|
-
.prepare(`UPDATE owner_event_board_refresh_intents
|
|
170
|
-
SET applied_at = ?, updated_at = ?
|
|
171
|
-
WHERE applied_at IS NULL AND repair_generation <= ?`)
|
|
172
|
-
.run(now, now, capturedGeneration).changes;
|
|
173
|
-
this.db
|
|
174
|
-
.prepare(`UPDATE operator_tasks
|
|
175
|
-
SET status = 'cancelled', latest_event = ?, updated_at = ?
|
|
176
|
-
WHERE kind = 'system'
|
|
177
|
-
AND source_channel = 'workorder:board'
|
|
178
|
-
AND source_event_id = ?
|
|
179
|
-
AND status = 'pending'
|
|
180
|
-
AND NOT EXISTS (
|
|
181
|
-
SELECT 1 FROM owner_event_board_refresh_intents intent
|
|
182
|
-
WHERE intent.workorder_id = operator_tasks.id AND intent.applied_at IS NULL
|
|
183
|
-
)`)
|
|
184
|
-
.run('owner-event Board obligations applied by verified full repair', now, (0, workorder_publishers_js_1.boardRepairKey)());
|
|
185
|
-
followupPending = this.maxPendingGeneration() !== null;
|
|
186
|
-
this.db.exec('COMMIT');
|
|
187
|
-
}
|
|
188
|
-
catch (error) {
|
|
189
|
-
this.db.exec('ROLLBACK');
|
|
190
|
-
throw error;
|
|
191
|
-
}
|
|
192
|
-
if (followupPending) {
|
|
193
|
-
this.postTerminalFollowups.add(workOrderId);
|
|
194
|
-
}
|
|
195
|
-
return { applied, followupPending };
|
|
196
|
-
}
|
|
197
|
-
consumePostTerminalFollowup(workOrderId) {
|
|
198
|
-
if (!this.postTerminalFollowups.delete(workOrderId))
|
|
199
|
-
return false;
|
|
200
|
-
return this.maxPendingGeneration() !== null;
|
|
201
|
-
}
|
|
202
|
-
readAcceptance(batchId) {
|
|
203
|
-
const row = this.db
|
|
204
|
-
.prepare(`SELECT batch_id, batch_key, repair_generation, workorder_id, applied_at
|
|
205
|
-
FROM owner_event_board_refresh_intents WHERE batch_id = ?`)
|
|
206
|
-
.get(batchId);
|
|
207
|
-
return row ? acceptanceFromRow(row) : null;
|
|
208
|
-
}
|
|
209
|
-
attachPendingToWorkOrderInTransaction(workOrderId, options, now) {
|
|
210
|
-
const row = this.readBoardWorkOrder(workOrderId);
|
|
211
|
-
const result = this.db
|
|
212
|
-
.prepare(`UPDATE owner_event_board_refresh_intents
|
|
213
|
-
SET workorder_id = ?, updated_at = ?
|
|
214
|
-
WHERE applied_at IS NULL AND workorder_id <> ?`)
|
|
215
|
-
.run(workOrderId, now, workOrderId);
|
|
216
|
-
if (row.status !== 'pending')
|
|
217
|
-
return result.changes;
|
|
218
|
-
const generation = this.maxPendingGeneration();
|
|
219
|
-
if (generation === null)
|
|
220
|
-
return result.changes;
|
|
221
|
-
const storedPayload = JSON.parse(row.payload);
|
|
222
|
-
const { attempts, ...publisherPayload } = storedPayload;
|
|
223
|
-
const currentGeneration = Number.isSafeInteger(publisherPayload.repairGeneration) &&
|
|
224
|
-
publisherPayload.repairGeneration >= 0
|
|
225
|
-
? publisherPayload.repairGeneration
|
|
226
|
-
: generation;
|
|
227
|
-
const repairGeneration = Math.max(currentGeneration, generation);
|
|
228
|
-
const nextPublisherPayload = {
|
|
229
|
-
...publisherPayload,
|
|
230
|
-
repairGeneration,
|
|
231
|
-
noUpdateScope: (0, board_refresh_gate_js_1.boardFullNoUpdateScope)(repairGeneration),
|
|
232
|
-
};
|
|
233
|
-
(0, workorder_publishers_js_1.validateWorkOrderPayload)('board', nextPublisherPayload);
|
|
234
|
-
const dueAt = options.readyNow ? now : (row.due_at ?? now + exports.OWNER_EVENT_BOARD_CLAIM_WINDOW_MS);
|
|
235
|
-
this.db
|
|
236
|
-
.prepare(`UPDATE operator_tasks
|
|
237
|
-
SET payload = ?, due_at = ?, updated_at = ?
|
|
238
|
-
WHERE id = ? AND status = 'pending'`)
|
|
239
|
-
.run(JSON.stringify({ ...nextPublisherPayload, attempts }), dueAt, now, workOrderId);
|
|
240
|
-
return result.changes;
|
|
241
|
-
}
|
|
242
|
-
readBoardWorkOrder(workOrderId) {
|
|
243
|
-
if (!Number.isSafeInteger(workOrderId) || workOrderId <= 0) {
|
|
244
|
-
throw new Error('Board workorder id must be a positive safe integer');
|
|
245
|
-
}
|
|
246
|
-
const row = this.db
|
|
247
|
-
.prepare(`SELECT status, payload, due_at FROM operator_tasks
|
|
248
|
-
WHERE id = ? AND kind = 'system' AND source_channel = 'workorder:board'`)
|
|
249
|
-
.get(workOrderId);
|
|
250
|
-
if (!row) {
|
|
251
|
-
throw new Error(`Board workorder ${workOrderId} does not exist`);
|
|
252
|
-
}
|
|
253
|
-
return row;
|
|
254
|
-
}
|
|
255
|
-
assertBoardWorkOrder(workOrderId) {
|
|
256
|
-
this.readBoardWorkOrder(workOrderId);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
exports.OwnerEventBoardRefreshLedger = OwnerEventBoardRefreshLedger;
|
|
260
|
-
//# sourceMappingURL=owner-event-board-refresh.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"owner-event-board-refresh.js","sourceRoot":"","sources":["../../src/operator/owner-event-board-refresh.ts"],"names":[],"mappings":"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"}
|