@jungjaehoon/mama-os 0.32.1 → 0.32.3
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 +8 -0
- package/README.md +15 -13
- package/dist/agent/agent-loop.d.ts +5 -0
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +160 -55
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/backend-model-policy.d.ts +9 -0
- package/dist/agent/backend-model-policy.d.ts.map +1 -0
- package/dist/agent/backend-model-policy.js +21 -0
- package/dist/agent/backend-model-policy.js.map +1 -0
- package/dist/agent/backend-model-runner-factory.d.ts +27 -0
- package/dist/agent/backend-model-runner-factory.d.ts.map +1 -0
- package/dist/agent/backend-model-runner-factory.js +85 -0
- package/dist/agent/backend-model-runner-factory.js.map +1 -0
- package/dist/agent/cline-cli-adapter.d.ts +124 -0
- package/dist/agent/cline-cli-adapter.d.ts.map +1 -0
- package/dist/agent/cline-cli-adapter.js +1040 -0
- package/dist/agent/cline-cli-adapter.js.map +1 -0
- package/dist/agent/cline-native-tool-policy.d.ts +3 -0
- package/dist/agent/cline-native-tool-policy.d.ts.map +1 -0
- package/dist/agent/cline-native-tool-policy.js +50 -0
- package/dist/agent/cline-native-tool-policy.js.map +1 -0
- package/dist/agent/code-act/constants.d.ts +1 -1
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +13 -1
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/codex-app-server-process.d.ts +5 -0
- package/dist/agent/codex-app-server-process.d.ts.map +1 -1
- package/dist/agent/codex-app-server-process.js +30 -0
- package/dist/agent/codex-app-server-process.js.map +1 -1
- package/dist/agent/codex-auxiliary-tools.d.ts +17 -0
- package/dist/agent/codex-auxiliary-tools.d.ts.map +1 -0
- package/dist/agent/codex-auxiliary-tools.js +267 -0
- package/dist/agent/codex-auxiliary-tools.js.map +1 -0
- package/dist/agent/codex-home.d.ts.map +1 -1
- package/dist/agent/codex-home.js +1 -0
- package/dist/agent/codex-home.js.map +1 -1
- package/dist/agent/managed-agent-runtime-sync.d.ts.map +1 -1
- package/dist/agent/managed-agent-runtime-sync.js +17 -3
- package/dist/agent/managed-agent-runtime-sync.js.map +1 -1
- package/dist/agent/managed-agent-validation.js +1 -1
- package/dist/agent/managed-agent-validation.js.map +1 -1
- package/dist/agent/model-runner.d.ts +11 -1
- package/dist/agent/model-runner.d.ts.map +1 -1
- package/dist/agent/model-runner.js +12 -1
- package/dist/agent/model-runner.js.map +1 -1
- package/dist/agent/session-pool.d.ts +10 -9
- package/dist/agent/session-pool.d.ts.map +1 -1
- package/dist/agent/session-pool.js +12 -47
- package/dist/agent/session-pool.js.map +1 -1
- package/dist/agent/types.d.ts +18 -2
- 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 +15 -5
- package/dist/api/graph-api.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +43 -10
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +12 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.d.ts +22 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +79 -28
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/start.d.ts +2 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +36 -11
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +4 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/config/config-manager.d.ts.map +1 -1
- package/dist/cli/config/config-manager.js +63 -14
- package/dist/cli/config/config-manager.js.map +1 -1
- package/dist/cli/config/types.d.ts +12 -5
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +3 -0
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/index.js +6 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +8 -3
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/gateway-init.d.ts +1 -1
- package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
- package/dist/cli/runtime/gateway-init.js.map +1 -1
- package/dist/cli/runtime/mama-core-init.d.ts +10 -2
- package/dist/cli/runtime/mama-core-init.d.ts.map +1 -1
- package/dist/cli/runtime/mama-core-init.js +52 -68
- package/dist/cli/runtime/mama-core-init.js.map +1 -1
- package/dist/cli/runtime/memory-agent-init.d.ts.map +1 -1
- package/dist/cli/runtime/memory-agent-init.js +18 -5
- package/dist/cli/runtime/memory-agent-init.js.map +1 -1
- package/dist/cli/runtime/scheduler-init.d.ts +4 -0
- package/dist/cli/runtime/scheduler-init.d.ts.map +1 -1
- package/dist/cli/runtime/scheduler-init.js +24 -3
- package/dist/cli/runtime/scheduler-init.js.map +1 -1
- package/dist/cli/runtime/shutdown.d.ts +4 -0
- package/dist/cli/runtime/shutdown.d.ts.map +1 -1
- package/dist/cli/runtime/shutdown.js +30 -6
- package/dist/cli/runtime/shutdown.js.map +1 -1
- package/dist/cli/runtime/utilities.d.ts +2 -0
- package/dist/cli/runtime/utilities.d.ts.map +1 -1
- package/dist/cli/runtime/utilities.js +33 -0
- package/dist/cli/runtime/utilities.js.map +1 -1
- package/dist/gateways/discord.d.ts.map +1 -1
- package/dist/gateways/discord.js +11 -6
- package/dist/gateways/discord.js.map +1 -1
- package/dist/gateways/image-analyzer.d.ts +5 -0
- package/dist/gateways/image-analyzer.d.ts.map +1 -1
- package/dist/gateways/image-analyzer.js +8 -0
- package/dist/gateways/image-analyzer.js.map +1 -1
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +29 -15
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/slack.d.ts.map +1 -1
- package/dist/gateways/slack.js +6 -2
- package/dist/gateways/slack.js.map +1 -1
- package/dist/gateways/types.d.ts +1 -1
- package/dist/gateways/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/multi-agent/agent-process-manager.d.ts +6 -4
- package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
- package/dist/multi-agent/agent-process-manager.js +103 -34
- package/dist/multi-agent/agent-process-manager.js.map +1 -1
- package/dist/multi-agent/runtime-process.d.ts +3 -0
- package/dist/multi-agent/runtime-process.d.ts.map +1 -1
- package/dist/multi-agent/runtime-process.js +10 -2
- package/dist/multi-agent/runtime-process.js.map +1 -1
- package/dist/multi-agent/types.d.ts +12 -2
- package/dist/multi-agent/types.d.ts.map +1 -1
- package/dist/multi-agent/types.js.map +1 -1
- package/dist/multi-agent/workflow-types.d.ts +1 -1
- package/dist/multi-agent/workflow-types.d.ts.map +1 -1
- package/dist/onboarding/complete-autonomous-prompt.d.ts +1 -1
- package/dist/onboarding/complete-autonomous-prompt.d.ts.map +1 -1
- package/dist/onboarding/complete-autonomous-prompt.js +9 -9
- package/dist/operator/operator-trigger-loop.d.ts +22 -6
- package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.js +197 -68
- package/dist/operator/operator-trigger-loop.js.map +1 -1
- package/dist/operator/situation-report.d.ts.map +1 -1
- package/dist/operator/situation-report.js +38 -23
- package/dist/operator/situation-report.js.map +1 -1
- package/dist/operator/temporal-runtime.d.ts.map +1 -1
- package/dist/operator/temporal-runtime.js +3 -1
- package/dist/operator/temporal-runtime.js.map +1 -1
- package/dist/operator/trigger-author.d.ts +23 -3
- package/dist/operator/trigger-author.d.ts.map +1 -1
- package/dist/operator/trigger-author.js +147 -39
- package/dist/operator/trigger-author.js.map +1 -1
- package/dist/operator/trigger-registry.d.ts +21 -0
- package/dist/operator/trigger-registry.d.ts.map +1 -1
- package/dist/operator/trigger-registry.js +161 -1
- package/dist/operator/trigger-registry.js.map +1 -1
- package/dist/operator/trigger-review.d.ts.map +1 -1
- package/dist/operator/trigger-review.js +56 -10
- package/dist/operator/trigger-review.js.map +1 -1
- package/dist/operator/worker-run.d.ts.map +1 -1
- package/dist/operator/worker-run.js +10 -4
- package/dist/operator/worker-run.js.map +1 -1
- package/dist/scheduler/cron-worker.d.ts +8 -4
- package/dist/scheduler/cron-worker.d.ts.map +1 -1
- package/dist/scheduler/cron-worker.js +56 -39
- package/dist/scheduler/cron-worker.js.map +1 -1
- package/dist/setup/setup-actions.d.ts +26 -0
- package/dist/setup/setup-actions.d.ts.map +1 -0
- package/dist/setup/setup-actions.js +371 -0
- package/dist/setup/setup-actions.js.map +1 -0
- package/dist/setup/setup-prompt.d.ts +1 -1
- package/dist/setup/setup-prompt.d.ts.map +1 -1
- package/dist/setup/setup-prompt.js +28 -33
- package/dist/setup/setup-prompt.js.map +1 -1
- package/dist/setup/setup-server.d.ts +6 -1
- package/dist/setup/setup-server.d.ts.map +1 -1
- package/dist/setup/setup-server.js +55 -9
- package/dist/setup/setup-server.js.map +1 -1
- package/dist/setup/setup-websocket.d.ts +14 -2
- package/dist/setup/setup-websocket.d.ts.map +1 -1
- package/dist/setup/setup-websocket.js +121 -37
- package/dist/setup/setup-websocket.js.map +1 -1
- package/package.json +1 -1
- package/public/setup.html +9 -6
- package/public/viewer/js/modules/agents.js +5 -4
- package/public/viewer/js/modules/settings.js +34 -10
- package/public/viewer/src/modules/agents.ts +5 -4
- package/public/viewer/src/modules/settings.ts +49 -11
- package/public/viewer/src/utils/api.ts +3 -2
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.TriggerRegistry = void 0;
|
|
15
|
+
const REVIEW_RETRY_BASE_MS = 6 * 60 * 60 * 1000;
|
|
16
|
+
const REVIEW_RETRY_MAX_MS = 24 * 60 * 60 * 1000;
|
|
17
|
+
const AUTHOR_RETRY_BASE_MS = 6 * 60 * 60 * 1000;
|
|
18
|
+
const AUTHOR_RETRY_MAX_MS = 24 * 60 * 60 * 1000;
|
|
15
19
|
class TriggerRegistry {
|
|
16
20
|
db;
|
|
17
21
|
constructor(db) {
|
|
@@ -19,6 +23,7 @@ class TriggerRegistry {
|
|
|
19
23
|
this.runMigration();
|
|
20
24
|
}
|
|
21
25
|
runMigration() {
|
|
26
|
+
this.db.pragma('busy_timeout = 5000');
|
|
22
27
|
this.db.exec(`
|
|
23
28
|
CREATE TABLE IF NOT EXISTS operator_triggers (
|
|
24
29
|
id TEXT PRIMARY KEY,
|
|
@@ -35,10 +40,47 @@ class TriggerRegistry {
|
|
|
35
40
|
disabled_reason TEXT,
|
|
36
41
|
fired INTEGER NOT NULL DEFAULT 0,
|
|
37
42
|
succeeded INTEGER NOT NULL DEFAULT 0,
|
|
38
|
-
failed INTEGER NOT NULL DEFAULT 0
|
|
43
|
+
failed INTEGER NOT NULL DEFAULT 0,
|
|
44
|
+
reviewed_fired INTEGER NOT NULL DEFAULT 0,
|
|
45
|
+
review_failures INTEGER NOT NULL DEFAULT 0,
|
|
46
|
+
review_retry_after INTEGER
|
|
39
47
|
);
|
|
40
48
|
CREATE INDEX IF NOT EXISTS idx_operator_triggers_status ON operator_triggers(status);
|
|
49
|
+
CREATE TABLE IF NOT EXISTS operator_trigger_author_state (
|
|
50
|
+
singleton_id INTEGER PRIMARY KEY CHECK(singleton_id = 1),
|
|
51
|
+
window_fingerprint TEXT NOT NULL,
|
|
52
|
+
failures INTEGER NOT NULL,
|
|
53
|
+
retry_after INTEGER NOT NULL,
|
|
54
|
+
updated_at INTEGER NOT NULL
|
|
55
|
+
);
|
|
41
56
|
`);
|
|
57
|
+
this.migrateReviewWatermark();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Existing fired rows were already reviewed repeatedly by the legacy loop. Baseline them at
|
|
61
|
+
* their current fire count so an upgrade cannot immediately fan out one review call per row.
|
|
62
|
+
*/
|
|
63
|
+
migrateReviewWatermark() {
|
|
64
|
+
this.db.exec('BEGIN IMMEDIATE');
|
|
65
|
+
try {
|
|
66
|
+
const columns = this.db.prepare(`PRAGMA table_info(operator_triggers)`).all();
|
|
67
|
+
const names = new Set(columns.map((column) => column.name));
|
|
68
|
+
if (!names.has('reviewed_fired')) {
|
|
69
|
+
this.db.exec(`ALTER TABLE operator_triggers ADD COLUMN reviewed_fired INTEGER NOT NULL DEFAULT 0`);
|
|
70
|
+
this.db.exec(`UPDATE operator_triggers SET reviewed_fired = fired`);
|
|
71
|
+
}
|
|
72
|
+
if (!names.has('review_failures')) {
|
|
73
|
+
this.db.exec(`ALTER TABLE operator_triggers ADD COLUMN review_failures INTEGER NOT NULL DEFAULT 0`);
|
|
74
|
+
}
|
|
75
|
+
if (!names.has('review_retry_after')) {
|
|
76
|
+
this.db.exec(`ALTER TABLE operator_triggers ADD COLUMN review_retry_after INTEGER`);
|
|
77
|
+
}
|
|
78
|
+
this.db.exec('COMMIT');
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
this.db.exec('ROLLBACK');
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
42
84
|
}
|
|
43
85
|
/** Persist an agent-authored trigger. Self-activates (G4): status is 'active' at birth. */
|
|
44
86
|
create(input) {
|
|
@@ -64,6 +106,90 @@ class TriggerRegistry {
|
|
|
64
106
|
.all();
|
|
65
107
|
return rows.map(rowToRecord);
|
|
66
108
|
}
|
|
109
|
+
/** Active triggers with fire evidence that has not yet reached the review pass. */
|
|
110
|
+
listReviewCandidates(limit = Number.MAX_SAFE_INTEGER, nowMs = Date.now()) {
|
|
111
|
+
if (!Number.isInteger(limit) || limit <= 0) {
|
|
112
|
+
throw new Error('listReviewCandidates: limit must be a positive integer');
|
|
113
|
+
}
|
|
114
|
+
if (!Number.isFinite(nowMs))
|
|
115
|
+
throw new Error('listReviewCandidates: nowMs must be finite');
|
|
116
|
+
const rows = this.db
|
|
117
|
+
.prepare(`SELECT * FROM operator_triggers
|
|
118
|
+
WHERE status = 'active' AND fired > reviewed_fired
|
|
119
|
+
AND (review_retry_after IS NULL OR review_retry_after <= ?)
|
|
120
|
+
ORDER BY updated_at ASC, created_at ASC, id ASC
|
|
121
|
+
LIMIT ?`)
|
|
122
|
+
.all(nowMs, limit);
|
|
123
|
+
return rows.map(rowToRecord);
|
|
124
|
+
}
|
|
125
|
+
/** Advance the durable review watermark only after a review decision was applied. */
|
|
126
|
+
markReviewed(id, fired) {
|
|
127
|
+
if (!Number.isInteger(fired) || fired < 0) {
|
|
128
|
+
throw new Error(`markReviewed: fired must be a non-negative integer for ${id}`);
|
|
129
|
+
}
|
|
130
|
+
const result = this.db
|
|
131
|
+
.prepare(`UPDATE operator_triggers
|
|
132
|
+
SET reviewed_fired = MAX(reviewed_fired, ?), review_failures = 0,
|
|
133
|
+
review_retry_after = NULL, updated_at = ?
|
|
134
|
+
WHERE id = ? AND status = 'active'`)
|
|
135
|
+
.run(fired, Date.now(), id);
|
|
136
|
+
if (result.changes === 0)
|
|
137
|
+
throw new Error(`markReviewed: no active trigger with id ${id}`);
|
|
138
|
+
}
|
|
139
|
+
/** Back off a failed provider/parse attempt without blocking later review candidates. */
|
|
140
|
+
recordReviewFailure(id, nowMs = Date.now()) {
|
|
141
|
+
if (!Number.isFinite(nowMs))
|
|
142
|
+
throw new Error(`recordReviewFailure: nowMs must be finite for ${id}`);
|
|
143
|
+
const row = this.db
|
|
144
|
+
.prepare(`SELECT review_failures FROM operator_triggers WHERE id = ? AND status = 'active'`)
|
|
145
|
+
.get(id);
|
|
146
|
+
if (!row)
|
|
147
|
+
throw new Error(`recordReviewFailure: no active trigger with id ${id}`);
|
|
148
|
+
const failures = row.review_failures + 1;
|
|
149
|
+
const retryDelay = Math.min(REVIEW_RETRY_BASE_MS * 2 ** (failures - 1), REVIEW_RETRY_MAX_MS);
|
|
150
|
+
const retryAfter = nowMs + retryDelay;
|
|
151
|
+
this.db
|
|
152
|
+
.prepare(`UPDATE operator_triggers
|
|
153
|
+
SET review_failures = ?, review_retry_after = ?, updated_at = ?
|
|
154
|
+
WHERE id = ? AND status = 'active'`)
|
|
155
|
+
.run(failures, retryAfter, nowMs, id);
|
|
156
|
+
}
|
|
157
|
+
/** A provider outage or poison author window must not be resent on every cadence. */
|
|
158
|
+
canAttemptAuthor(nowMs = Date.now()) {
|
|
159
|
+
if (!Number.isFinite(nowMs))
|
|
160
|
+
throw new Error('canAttemptAuthor: nowMs must be finite');
|
|
161
|
+
const row = this.db
|
|
162
|
+
.prepare(`SELECT retry_after FROM operator_trigger_author_state WHERE singleton_id = 1`)
|
|
163
|
+
.get();
|
|
164
|
+
return row === undefined || row.retry_after <= nowMs;
|
|
165
|
+
}
|
|
166
|
+
/** Persist a process-independent exponential backoff for the structured author call. */
|
|
167
|
+
recordAuthorFailure(windowFingerprint, nowMs = Date.now()) {
|
|
168
|
+
if (windowFingerprint.trim() === '') {
|
|
169
|
+
throw new Error('recordAuthorFailure: window fingerprint must be non-empty');
|
|
170
|
+
}
|
|
171
|
+
if (!Number.isFinite(nowMs))
|
|
172
|
+
throw new Error('recordAuthorFailure: nowMs must be finite');
|
|
173
|
+
const row = this.db
|
|
174
|
+
.prepare(`SELECT failures FROM operator_trigger_author_state WHERE singleton_id = 1`)
|
|
175
|
+
.get();
|
|
176
|
+
const failures = (row?.failures ?? 0) + 1;
|
|
177
|
+
const retryDelay = Math.min(AUTHOR_RETRY_BASE_MS * 2 ** (failures - 1), AUTHOR_RETRY_MAX_MS);
|
|
178
|
+
this.db
|
|
179
|
+
.prepare(`INSERT INTO operator_trigger_author_state
|
|
180
|
+
(singleton_id, window_fingerprint, failures, retry_after, updated_at)
|
|
181
|
+
VALUES (1, ?, ?, ?, ?)
|
|
182
|
+
ON CONFLICT(singleton_id) DO UPDATE SET
|
|
183
|
+
window_fingerprint = excluded.window_fingerprint,
|
|
184
|
+
failures = excluded.failures,
|
|
185
|
+
retry_after = excluded.retry_after,
|
|
186
|
+
updated_at = excluded.updated_at`)
|
|
187
|
+
.run(windowFingerprint, failures, nowMs + retryDelay, nowMs);
|
|
188
|
+
}
|
|
189
|
+
/** A successful author decision clears the provider/parse failure streak. */
|
|
190
|
+
clearAuthorFailure() {
|
|
191
|
+
this.db.prepare(`DELETE FROM operator_trigger_author_state WHERE singleton_id = 1`).run();
|
|
192
|
+
}
|
|
67
193
|
/** Every trigger regardless of status (owner tray view). id DESC breaks same-ms ties. */
|
|
68
194
|
listAll() {
|
|
69
195
|
const rows = this.db
|
|
@@ -110,6 +236,40 @@ class TriggerRegistry {
|
|
|
110
236
|
throw new Error(`disable: trigger ${id} missing after update`);
|
|
111
237
|
return record;
|
|
112
238
|
}
|
|
239
|
+
/** Agent retirement must never overwrite a durable owner disable that won the race (TG-06). */
|
|
240
|
+
retireActive(id, reason) {
|
|
241
|
+
const result = this.db
|
|
242
|
+
.prepare(`UPDATE operator_triggers
|
|
243
|
+
SET status = 'disabled', disabled_reason = ?, updated_at = ?
|
|
244
|
+
WHERE id = ? AND status = 'active'`)
|
|
245
|
+
.run(reason, Date.now(), id);
|
|
246
|
+
if (result.changes === 0)
|
|
247
|
+
throw new Error(`retireActive: no active trigger with id ${id}`);
|
|
248
|
+
const record = this.getById(id);
|
|
249
|
+
if (!record)
|
|
250
|
+
throw new Error(`retireActive: trigger ${id} missing after update`);
|
|
251
|
+
return record;
|
|
252
|
+
}
|
|
253
|
+
/** Disable the original and insert its replacement as one rollback-safe decision. */
|
|
254
|
+
refine(id, reason, replacement) {
|
|
255
|
+
this.db.exec('BEGIN IMMEDIATE');
|
|
256
|
+
try {
|
|
257
|
+
const result = this.db
|
|
258
|
+
.prepare(`UPDATE operator_triggers
|
|
259
|
+
SET status = 'disabled', disabled_reason = ?, updated_at = ?
|
|
260
|
+
WHERE id = ? AND status = 'active'`)
|
|
261
|
+
.run(reason, Date.now(), id);
|
|
262
|
+
if (result.changes === 0)
|
|
263
|
+
throw new Error(`refine: no active trigger with id ${id}`);
|
|
264
|
+
const created = this.create(replacement);
|
|
265
|
+
this.db.exec('COMMIT');
|
|
266
|
+
return created;
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
this.db.exec('ROLLBACK');
|
|
270
|
+
throw error;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
113
273
|
close() {
|
|
114
274
|
this.db.close();
|
|
115
275
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-registry.js","sourceRoot":"","sources":["../../src/operator/trigger-registry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
|
1
|
+
{"version":3,"file":"trigger-registry.js","sourceRoot":"","sources":["../../src/operator/trigger-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-review.d.ts","sourceRoot":"","sources":["../../src/operator/trigger-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAsB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAoC,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"trigger-review.d.ts","sourceRoot":"","sources":["../../src/operator/trigger-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAsB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAoC,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAW/C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA8BhE;AAED,0HAA0H;AAC1H,wBAAgB,WAAW,CACzB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,GACxB,eAAe,CAsBjB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CA8CzF;AAoCD,qFAAqF;AACrF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,EAAE,EACvB,QAAQ,GAAE,QAAsB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAGzB"}
|
|
@@ -17,6 +17,14 @@ exports.buildReviewPrompt = buildReviewPrompt;
|
|
|
17
17
|
exports.reviewTriggerCLI = reviewTriggerCLI;
|
|
18
18
|
const node_crypto_1 = require("node:crypto");
|
|
19
19
|
const trigger_author_js_1 = require("./trigger-author.js");
|
|
20
|
+
const REVIEW_PROMPT_MAX_CHARS = 30_000;
|
|
21
|
+
const REVIEW_TRIGGER_ID_CHARS = 512;
|
|
22
|
+
const REVIEW_TRIGGER_KIND_CHARS = 512;
|
|
23
|
+
const REVIEW_TRIGGER_KEYWORDS_CHARS = 8_000;
|
|
24
|
+
const REVIEW_TRIGGER_KEYWORD_CHARS = 256;
|
|
25
|
+
const REVIEW_MEMORY_QUERY_CHARS = 8_000;
|
|
26
|
+
const REVIEW_CONTEXT_CHARS = 8_000;
|
|
27
|
+
const REVIEW_CONTEXT_LINE_CHARS = 500;
|
|
20
28
|
function parseReviewDecision(text) {
|
|
21
29
|
const raw = extractJsonObject(stripCodeFences(text));
|
|
22
30
|
if (raw === null)
|
|
@@ -53,11 +61,10 @@ function parseReviewDecision(text) {
|
|
|
53
61
|
/** Mechanically apply the agent's decision to the registry (mirror of evolveTrigger's apply, minus outcome recording). */
|
|
54
62
|
function applyReview(decision, triggerId, registry) {
|
|
55
63
|
if (decision.action === 'retired') {
|
|
56
|
-
registry.
|
|
64
|
+
registry.retireActive(triggerId, decision.reason);
|
|
57
65
|
return 'retired';
|
|
58
66
|
}
|
|
59
67
|
if (decision.action === 'refined') {
|
|
60
|
-
registry.disable(triggerId, `refined: ${decision.reason}`);
|
|
61
68
|
const spec = decision.newSpec;
|
|
62
69
|
const id = spec.id ?? `${triggerId}.r.${reviewHash(spec.kind, spec.match.keywords)}`;
|
|
63
70
|
const input = {
|
|
@@ -70,25 +77,30 @@ function applyReview(decision, triggerId, registry) {
|
|
|
70
77
|
authoredBy: 'agent',
|
|
71
78
|
provenance: { createdFrom: `refined-from:${triggerId}`, note: decision.reason },
|
|
72
79
|
};
|
|
73
|
-
registry.
|
|
80
|
+
registry.refine(triggerId, `refined: ${decision.reason}`, input);
|
|
74
81
|
return 'refined';
|
|
75
82
|
}
|
|
76
83
|
return 'kept';
|
|
77
84
|
}
|
|
78
85
|
function buildReviewPrompt(trigger, recentContext) {
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
const triggerId = boundedPromptValue(trigger.id, REVIEW_TRIGGER_ID_CHARS);
|
|
87
|
+
const kind = boundedPromptValue(trigger.kind, REVIEW_TRIGGER_KIND_CHARS);
|
|
88
|
+
const memoryQuery = boundedPromptValue(trigger.memoryQuery, REVIEW_MEMORY_QUERY_CHARS);
|
|
89
|
+
const keywords = boundedPromptLines(trigger.match.keywords, REVIEW_TRIGGER_KEYWORD_CHARS, REVIEW_TRIGGER_KEYWORDS_CHARS, ', ');
|
|
90
|
+
const context = boundedPromptLines(recentContext, REVIEW_CONTEXT_LINE_CHARS, REVIEW_CONTEXT_CHARS, '\n- ', true);
|
|
91
|
+
const prompt = [
|
|
92
|
+
"You maintain a personal operator's library of TRIGGERS (keyword rules that recall a memory",
|
|
81
93
|
'when future messages match). Review ONE trigger and decide whether to keep, refine, or',
|
|
82
94
|
'retire it, based on its spec, its fire activity, and recent messages.',
|
|
83
95
|
'',
|
|
84
|
-
`Trigger id: ${
|
|
85
|
-
`kind: ${
|
|
86
|
-
`keywords (${trigger.match.keywordMode}): ${
|
|
87
|
-
`memoryQuery: ${
|
|
96
|
+
`Trigger id: ${triggerId}`,
|
|
97
|
+
`kind: ${kind}`,
|
|
98
|
+
`keywords (${trigger.match.keywordMode}): ${keywords}`,
|
|
99
|
+
`memoryQuery: ${memoryQuery}`,
|
|
88
100
|
`stats: fired=${trigger.stats.fired} succeeded=${trigger.stats.succeeded} failed=${trigger.stats.failed}`,
|
|
89
101
|
'',
|
|
90
102
|
'Recent messages (context):',
|
|
91
|
-
|
|
103
|
+
context === '' ? '(none)' : `- ${context}`,
|
|
92
104
|
'',
|
|
93
105
|
'Judge for yourself - there is no fixed rule. Firing a lot on irrelevant messages suggests',
|
|
94
106
|
'refine (narrower keywords) or retire; firing usefully suggests keep; never firing may mean',
|
|
@@ -101,6 +113,40 @@ function buildReviewPrompt(trigger, recentContext) {
|
|
|
101
113
|
' "match": { "keywords": string[], "keywordMode": "any"|"every", "minConfidence": number },',
|
|
102
114
|
' "procedure": [{ "action": string, "description": string }], "requiredEvidence": string[] } }',
|
|
103
115
|
].join('\n');
|
|
116
|
+
if (prompt.length > REVIEW_PROMPT_MAX_CHARS) {
|
|
117
|
+
throw new Error(`review prompt exceeded ${REVIEW_PROMPT_MAX_CHARS} character budget`);
|
|
118
|
+
}
|
|
119
|
+
return prompt;
|
|
120
|
+
}
|
|
121
|
+
function boundedPromptValue(value, maxChars) {
|
|
122
|
+
const sanitized = value.replace(/[\r\n]+/g, ' ');
|
|
123
|
+
if (sanitized.length <= maxChars)
|
|
124
|
+
return sanitized;
|
|
125
|
+
return `${sanitized.slice(0, maxChars - 16)} [...truncated]`;
|
|
126
|
+
}
|
|
127
|
+
function boundedPromptLines(values, perValueChars, totalChars, separator, newestFirstBudget = false) {
|
|
128
|
+
const selected = [];
|
|
129
|
+
let used = 0;
|
|
130
|
+
const candidates = newestFirstBudget ? [...values].reverse() : values;
|
|
131
|
+
for (const value of candidates) {
|
|
132
|
+
const bounded = boundedPromptValue(value, perValueChars);
|
|
133
|
+
const added = bounded.length + (selected.length === 0 ? 0 : separator.length);
|
|
134
|
+
if (used + added > totalChars)
|
|
135
|
+
break;
|
|
136
|
+
selected.push(bounded);
|
|
137
|
+
used += added;
|
|
138
|
+
}
|
|
139
|
+
const ordered = newestFirstBudget ? selected.reverse() : selected;
|
|
140
|
+
if (selected.length < values.length) {
|
|
141
|
+
const omitted = `[... ${values.length - selected.length} item(s) omitted]`;
|
|
142
|
+
if (used + separator.length + omitted.length <= totalChars) {
|
|
143
|
+
if (newestFirstBudget)
|
|
144
|
+
ordered.unshift(omitted);
|
|
145
|
+
else
|
|
146
|
+
ordered.push(omitted);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return ordered.join(separator);
|
|
104
150
|
}
|
|
105
151
|
/** Real agent review via the local claude CLI. Exercised in the M1-T4 live smoke. */
|
|
106
152
|
async function reviewTriggerCLI(trigger, recentContext, askAgent = trigger_author_js_1.askAgentCLI) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-review.js","sourceRoot":"","sources":["../../src/operator/trigger-review.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;
|
|
1
|
+
{"version":3,"file":"trigger-review.js","sourceRoot":"","sources":["../../src/operator/trigger-review.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAmBH,kDA8BC;AAGD,kCA0BC;AAED,8CA8CC;AAqCD,4CAOC;AAxKD,6CAAyC;AAIzC,2DAAsF;AAItF,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAC5C,MAAM,4BAA4B,GAAG,GAAG,CAAC;AACzC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AACxC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClF,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAqC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAE9C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACrD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,yEAAyE;QACzE,MAAM,OAAO,GAAG,IAAA,uCAAmB,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,0HAA0H;AAC1H,SAAgB,WAAW,CACzB,QAAwB,EACxB,SAAiB,EACjB,QAAyB;IAEzB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrF,MAAM,KAAK,GAAuB;YAChC,EAAE;YACF,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,UAAU,EAAE,OAAO;YACnB,UAAU,EAAE,EAAE,WAAW,EAAE,gBAAgB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE;SAChF,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,iBAAiB,CAAC,OAAsB,EAAE,aAAuB;IAC/E,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,kBAAkB,CACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,IAAI,CACL,CAAC;IACF,MAAM,OAAO,GAAG,kBAAkB,CAChC,aAAa,EACb,yBAAyB,EACzB,oBAAoB,EACpB,MAAM,EACN,IAAI,CACL,CAAC;IACF,MAAM,MAAM,GAAG;QACb,4FAA4F;QAC5F,wFAAwF;QACxF,uEAAuE;QACvE,EAAE;QACF,eAAe,SAAS,EAAE;QAC1B,SAAS,IAAI,EAAE;QACf,aAAa,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,QAAQ,EAAE;QACtD,gBAAgB,WAAW,EAAE;QAC7B,gBAAgB,OAAO,CAAC,KAAK,CAAC,KAAK,cAAc,OAAO,CAAC,KAAK,CAAC,SAAS,WAAW,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;QACzG,EAAE;QACF,4BAA4B;QAC5B,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;QAC1C,EAAE;QACF,2FAA2F;QAC3F,4FAA4F;QAC5F,6EAA6E;QAC7E,EAAE;QACF,yCAAyC;QACzC,sBAAsB;QACtB,8CAA8C;QAC9C,iGAAiG;QACjG,gGAAgG;QAChG,mGAAmG;KACpG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,MAAM,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,0BAA0B,uBAAuB,mBAAmB,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,QAAgB;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,SAAS,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAgB,EAChB,aAAqB,EACrB,UAAkB,EAClB,SAAiB,EACjB,iBAAiB,GAAG,KAAK;IAEzB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACtE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,IAAI,GAAG,KAAK,GAAG,UAAU;YAAE,MAAM;QACrC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,IAAI,KAAK,CAAC;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,mBAAmB,CAAC;QAC3E,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;YAC3D,IAAI,iBAAiB;gBAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;;gBAC3C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,qFAAqF;AAC9E,KAAK,UAAU,gBAAgB,CACpC,OAAsB,EACtB,aAAuB,EACvB,WAAqB,+BAAW;IAEhC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IACzE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,oBAAoB;AAEpB,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,QAAkB;IAClD,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,GAAG,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;SACxC,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-run.d.ts","sourceRoot":"","sources":["../../src/operator/worker-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMvE,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GACrD,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1B;;+EAE+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,cAAc,CACZ,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9D,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB;kFAC8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAID,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAY1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,GAAE,WAAsB,EAC/B,IAAI,CAAC,EAAE,aAAa,GACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"worker-run.d.ts","sourceRoot":"","sources":["../../src/operator/worker-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMvE,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GACrD,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1B;;+EAE+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,cAAc,CACZ,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9D,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB;kFAC8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAID,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAY1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,MAAM,EAC1B,OAAO,GAAE,WAAsB,EAC/B,IAAI,CAAC,EAAE,aAAa,GACnB,MAAM,CAwCR;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wEAAwE;AACxE,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAK1D;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,YAAY,EACpB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,cAAc,GACjD,OAAO,CAAC,eAAe,CAAC,CAsD1B"}
|
|
@@ -75,10 +75,16 @@ function buildWorkerSystemPrompt(gatewayToolsPrompt, backend = 'claude', kind) {
|
|
|
75
75
|
'Follow the brief in the user message. Use the injected native host tools directly.',
|
|
76
76
|
'Call them through the model tool interface; never emit Markdown or JavaScript substitutes.',
|
|
77
77
|
]
|
|
78
|
-
:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
: backend === 'cline'
|
|
79
|
+
? [
|
|
80
|
+
'Follow the brief in the user message. Use the injected mcp__code-act__code_act Hub tool.',
|
|
81
|
+
'Write JavaScript that calls only the injected TypeScript-declared gateway functions;',
|
|
82
|
+
'never emit fenced tool_call JSON or pretend a tool ran in prose.',
|
|
83
|
+
]
|
|
84
|
+
: [
|
|
85
|
+
'Follow the brief in the user message. Call tools ONLY via the tool_call JSON',
|
|
86
|
+
'blocks documented below - no other execution mechanism exists in this session.',
|
|
87
|
+
];
|
|
82
88
|
return [
|
|
83
89
|
'You are a MAMA OS system worker. You execute exactly ONE work order and stop.',
|
|
84
90
|
...toolInstructions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-run.js","sourceRoot":"","sources":["../../src/operator/worker-run.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AA8EH,sEAYC;AAYD,
|
|
1
|
+
{"version":3,"file":"worker-run.js","sourceRoot":"","sources":["../../src/operator/worker-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
+
import type { IModelRunner } from '../agent/model-runner.js';
|
|
3
|
+
export declare function cronSystemPromptForBackend(backend: IModelRunner['backendType']): string;
|
|
2
4
|
export interface CronWorkerOptions {
|
|
3
5
|
emitter: EventEmitter;
|
|
4
|
-
model?: string;
|
|
5
6
|
systemPrompt?: string;
|
|
7
|
+
runnerFactory: () => IModelRunner;
|
|
6
8
|
}
|
|
7
9
|
export interface CronJobContext {
|
|
8
10
|
jobId?: string;
|
|
@@ -24,13 +26,15 @@ export interface CronFailedEvent {
|
|
|
24
26
|
channel?: string;
|
|
25
27
|
}
|
|
26
28
|
export declare class CronWorker {
|
|
27
|
-
private
|
|
29
|
+
private runner;
|
|
28
30
|
private readonly emitter;
|
|
29
|
-
private readonly model;
|
|
30
31
|
private readonly systemPrompt;
|
|
32
|
+
private readonly runnerFactory;
|
|
31
33
|
private executionQueue;
|
|
34
|
+
private accepting;
|
|
35
|
+
private stopPromise;
|
|
32
36
|
constructor(options: CronWorkerOptions);
|
|
33
|
-
private
|
|
37
|
+
private ensureRunner;
|
|
34
38
|
execute(prompt: string, context?: CronJobContext): Promise<string>;
|
|
35
39
|
private executeInternal;
|
|
36
40
|
stop(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-worker.d.ts","sourceRoot":"","sources":["../../src/scheduler/cron-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"cron-worker.d.ts","sourceRoot":"","sources":["../../src/scheduler/cron-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,MAAM,CAQvF;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,YAAY,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,WAAW,CAA8B;gBAErC,OAAO,EAAE,iBAAiB;IAMtC,OAAO,CAAC,YAAY;IAQd,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;YAkB9D,eAAe;IAsCvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB5B"}
|
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CronWorker = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
4
|
+
exports.cronSystemPromptForBackend = cronSystemPromptForBackend;
|
|
5
|
+
function cronSystemPromptForBackend(backend) {
|
|
6
|
+
const tools = backend === 'cline'
|
|
7
|
+
? 'run_commands, read_files, apply_patch/editor, search_codebase'
|
|
8
|
+
: 'Bash, Read, Write, Glob, Grep';
|
|
9
|
+
return `You are a cron job executor. Execute the given task and return the result.
|
|
10
|
+
Available tools: ${tools}.
|
|
8
11
|
Be concise. Return only the result.`;
|
|
9
|
-
|
|
10
|
-
// Restrict cron worker to safe tools only (prevents RCE via prompt injection)
|
|
11
|
-
const CRON_ALLOWED_TOOLS = ['Bash', 'Read', 'Write', 'Glob', 'Grep'];
|
|
12
|
+
}
|
|
12
13
|
class CronWorker {
|
|
13
|
-
|
|
14
|
+
runner = null;
|
|
14
15
|
emitter;
|
|
15
|
-
model;
|
|
16
16
|
systemPrompt;
|
|
17
|
+
runnerFactory;
|
|
17
18
|
executionQueue = Promise.resolve();
|
|
19
|
+
accepting = true;
|
|
20
|
+
stopPromise = null;
|
|
18
21
|
constructor(options) {
|
|
19
22
|
this.emitter = options.emitter;
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
23
|
+
this.systemPrompt = options.systemPrompt ?? cronSystemPromptForBackend('claude');
|
|
24
|
+
this.runnerFactory = options.runnerFactory;
|
|
22
25
|
}
|
|
23
|
-
|
|
24
|
-
if (!this.
|
|
25
|
-
|
|
26
|
-
// Claude CLI validates --session-id as a UUID; anything else fails every run
|
|
27
|
-
sessionId: (0, node_crypto_1.randomUUID)(),
|
|
28
|
-
model: this.model,
|
|
29
|
-
systemPrompt: this.systemPrompt,
|
|
30
|
-
dangerouslySkipPermissions: true,
|
|
31
|
-
allowedTools: CRON_ALLOWED_TOOLS,
|
|
32
|
-
pluginDir: undefined,
|
|
33
|
-
});
|
|
26
|
+
ensureRunner() {
|
|
27
|
+
if (!this.accepting) {
|
|
28
|
+
throw new Error('Cron worker is stopping');
|
|
34
29
|
}
|
|
35
|
-
|
|
30
|
+
this.runner ??= this.runnerFactory();
|
|
31
|
+
return this.runner;
|
|
36
32
|
}
|
|
37
33
|
async execute(prompt, context = {}) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
});
|
|
34
|
+
if (!this.accepting) {
|
|
35
|
+
throw new Error('Cron worker is stopping');
|
|
36
|
+
}
|
|
37
|
+
// Serialize execution to prevent races on one durable backend session.
|
|
38
|
+
const execution = this.executionQueue.then(async () => {
|
|
39
|
+
if (!this.accepting) {
|
|
40
|
+
throw new Error('Cron worker is stopping');
|
|
41
|
+
}
|
|
42
|
+
return await this.executeInternal(prompt, context);
|
|
49
43
|
});
|
|
44
|
+
this.executionQueue = execution.then(() => undefined, () => undefined);
|
|
45
|
+
return await execution;
|
|
50
46
|
}
|
|
51
47
|
async executeInternal(prompt, context) {
|
|
52
48
|
const { jobId = 'unknown', jobName = 'unknown', channel } = context;
|
|
53
49
|
const startTime = Date.now();
|
|
54
50
|
try {
|
|
55
|
-
const
|
|
56
|
-
const result = await
|
|
51
|
+
const runner = this.ensureRunner();
|
|
52
|
+
const result = await runner.prompt(prompt, undefined, {
|
|
53
|
+
sessionKey: 'system:cron',
|
|
54
|
+
resumeSession: true,
|
|
55
|
+
systemPrompt: this.systemPrompt,
|
|
56
|
+
});
|
|
57
57
|
const duration = Date.now() - startTime;
|
|
58
58
|
this.emitter.emit('cron:completed', {
|
|
59
59
|
jobId,
|
|
@@ -78,10 +78,27 @@ class CronWorker {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
async stop() {
|
|
81
|
-
if (this.
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
if (!this.stopPromise) {
|
|
82
|
+
this.accepting = false;
|
|
83
|
+
const ownedRunner = this.runner;
|
|
84
|
+
this.runner = null;
|
|
85
|
+
this.stopPromise = (async () => {
|
|
86
|
+
const stopRunner = Promise.resolve(ownedRunner?.stop()).then(() => undefined);
|
|
87
|
+
const drained = Promise.allSettled([stopRunner, this.executionQueue]).then(() => undefined);
|
|
88
|
+
let timer;
|
|
89
|
+
await Promise.race([
|
|
90
|
+
drained,
|
|
91
|
+
new Promise((resolve) => {
|
|
92
|
+
timer = setTimeout(resolve, 5_000);
|
|
93
|
+
timer.unref();
|
|
94
|
+
}),
|
|
95
|
+
]);
|
|
96
|
+
if (timer) {
|
|
97
|
+
clearTimeout(timer);
|
|
98
|
+
}
|
|
99
|
+
})();
|
|
84
100
|
}
|
|
101
|
+
await this.stopPromise;
|
|
85
102
|
}
|
|
86
103
|
}
|
|
87
104
|
exports.CronWorker = CronWorker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-worker.js","sourceRoot":"","sources":["../../src/scheduler/cron-worker.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cron-worker.js","sourceRoot":"","sources":["../../src/scheduler/cron-worker.ts"],"names":[],"mappings":"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"}
|