@goah/cli 0.10.2 → 0.11.1
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/dist/cli.js +15 -5
- package/dist/cli.js.map +1 -1
- package/dist/console/assets/{index-BPOrMqEr.js → index-BJTGvlCH.js} +2 -2
- package/dist/console/assets/{index-BPOrMqEr.js.map → index-BJTGvlCH.js.map} +1 -1
- package/dist/console/index.html +1 -1
- package/dist/control.d.ts +16 -0
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +16 -5
- package/dist/control.js.map +1 -1
- package/dist/tui.d.ts +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +66 -13
- package/dist/tui.js.map +1 -1
- package/dist/update.js +1 -1
- package/dist/update.js.map +1 -1
- package/dist/web-console.js +1 -2
- package/dist/web-console.js.map +1 -1
- package/node_modules/goah-ledger-contract/dist/execution.d.ts +79 -2
- package/node_modules/goah-ledger-contract/dist/execution.d.ts.map +1 -1
- package/node_modules/goah-ledger-contract/dist/execution.js +13 -2
- package/node_modules/goah-ledger-contract/dist/execution.js.map +1 -1
- package/node_modules/goah-ledger-contract/dist/kernel.d.ts +2 -1
- package/node_modules/goah-ledger-contract/dist/kernel.d.ts.map +1 -1
- package/node_modules/goah-ledger-contract/dist/kernel.js +2 -1
- package/node_modules/goah-ledger-contract/dist/kernel.js.map +1 -1
- package/node_modules/goah-ledger-sqlite/dist/index.d.ts +9 -2
- package/node_modules/goah-ledger-sqlite/dist/index.d.ts.map +1 -1
- package/node_modules/goah-ledger-sqlite/dist/index.js +183 -25
- package/node_modules/goah-ledger-sqlite/dist/index.js.map +1 -1
- package/node_modules/goah-runner-pi/dist/index.d.ts +4 -2
- package/node_modules/goah-runner-pi/dist/index.d.ts.map +1 -1
- package/node_modules/goah-runner-pi/dist/index.js +4 -2
- package/node_modules/goah-runner-pi/dist/index.js.map +1 -1
- package/node_modules/goah-runner-pi/dist/pi-worker.d.ts.map +1 -1
- package/node_modules/goah-runner-pi/dist/pi-worker.js +66 -16
- package/node_modules/goah-runner-pi/dist/pi-worker.js.map +1 -1
- package/node_modules/goah-runner-pi/dist/test-helpers.d.ts.map +1 -1
- package/node_modules/goah-runner-pi/dist/test-helpers.js +1 -0
- package/node_modules/goah-runner-pi/dist/test-helpers.js.map +1 -1
- package/node_modules/goah-supervisor/dist/context-view.d.ts.map +1 -1
- package/node_modules/goah-supervisor/dist/context-view.js +1 -0
- package/node_modules/goah-supervisor/dist/context-view.js.map +1 -1
- package/node_modules/goah-supervisor/dist/index.d.ts +7 -2
- package/node_modules/goah-supervisor/dist/index.d.ts.map +1 -1
- package/node_modules/goah-supervisor/dist/index.js +185 -34
- package/node_modules/goah-supervisor/dist/index.js.map +1 -1
- package/node_modules/goah-supervisor/dist/roles.js +2 -2
- package/node_modules/goah-supervisor/dist/roles.js.map +1 -1
- package/node_modules/goah-testkit/dist/faux-runner-worker.js +34 -7
- package/node_modules/goah-testkit/dist/faux-runner-worker.js.map +1 -1
- package/node_modules/goah-testkit/dist/index.d.ts +1 -0
- package/node_modules/goah-testkit/dist/index.d.ts.map +1 -1
- package/node_modules/goah-testkit/dist/index.js +5 -5
- package/node_modules/goah-testkit/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import { DatabaseSync } from "node:sqlite";
|
|
2
|
-
import { assertActionRequest, assertActionTransition, assertGoalSnapshot, assertGoalTransition, controlStream, goalStream, wakeStream, } from "goah-ledger-contract";
|
|
3
|
-
export const SQLITE_SCHEMA_VERSION =
|
|
2
|
+
import { assertActionRequest, assertActionTransition, assertGoalSnapshot, assertGoalTransition, controlStream, goalStream, wakeStream, workRecordStream, } from "goah-ledger-contract";
|
|
3
|
+
export const SQLITE_SCHEMA_VERSION = 9;
|
|
4
4
|
const createGoals = `CREATE TABLE IF NOT EXISTS goals (
|
|
5
5
|
id TEXT PRIMARY KEY,
|
|
6
6
|
parent_id TEXT REFERENCES goals(id),
|
|
7
7
|
objective TEXT NOT NULL,
|
|
8
8
|
observation_method TEXT CHECK(observation_method IS NULL OR length(trim(observation_method)) > 0),
|
|
9
|
+
verification_method TEXT CHECK(verification_method IS NULL OR length(trim(verification_method)) > 0),
|
|
9
10
|
owner TEXT NOT NULL,
|
|
10
11
|
phase TEXT NOT NULL CHECK(phase IN ('active','paused','blocked','complete')),
|
|
11
12
|
revision INTEGER NOT NULL CHECK(revision >= 0)
|
|
12
13
|
) STRICT;`;
|
|
14
|
+
const createWorkRecords = `CREATE TABLE IF NOT EXISTS work_records (
|
|
15
|
+
goal_id TEXT PRIMARY KEY REFERENCES goals(id),
|
|
16
|
+
record_revision INTEGER NOT NULL CHECK(record_revision >= 0),
|
|
17
|
+
goal_revision INTEGER NOT NULL CHECK(goal_revision >= 0),
|
|
18
|
+
content TEXT NOT NULL CHECK(length(trim(content)) > 0),
|
|
19
|
+
updated_by TEXT NOT NULL,
|
|
20
|
+
updated_in_turn TEXT NOT NULL,
|
|
21
|
+
updated_in_wake TEXT,
|
|
22
|
+
updated_at TEXT NOT NULL,
|
|
23
|
+
reason TEXT NOT NULL CHECK(length(trim(reason)) > 0),
|
|
24
|
+
evidence TEXT NOT NULL CHECK(json_valid(evidence)),
|
|
25
|
+
last_event_seq INTEGER NOT NULL REFERENCES events(seq)
|
|
26
|
+
) STRICT;`;
|
|
13
27
|
const createWakes = `CREATE TABLE IF NOT EXISTS wakes (
|
|
14
28
|
id TEXT PRIMARY KEY,
|
|
15
29
|
agent TEXT NOT NULL,
|
|
@@ -97,6 +111,7 @@ CREATE TABLE IF NOT EXISTS events (
|
|
|
97
111
|
UNIQUE(stream_id, stream_seq)
|
|
98
112
|
) STRICT;
|
|
99
113
|
${createGoals}
|
|
114
|
+
${createWorkRecords}
|
|
100
115
|
CREATE TABLE IF NOT EXISTS schedule (
|
|
101
116
|
id TEXT PRIMARY KEY,
|
|
102
117
|
agent TEXT NOT NULL,
|
|
@@ -150,33 +165,69 @@ export class SqliteLedger {
|
|
|
150
165
|
return this.db.prepare("SELECT * FROM events WHERE stream_id=? AND stream_seq>=? ORDER BY stream_seq").all(streamId, fromStreamSeq).map(mapEvent);
|
|
151
166
|
}
|
|
152
167
|
putGoal(goal, actor, wakeId) {
|
|
153
|
-
|
|
154
|
-
|
|
168
|
+
const normalized = normalizeGoal(goal);
|
|
169
|
+
assertGoalSnapshot(normalized);
|
|
170
|
+
const current = this.#getGoal(normalized.id);
|
|
155
171
|
if (current) {
|
|
156
|
-
if (
|
|
172
|
+
if (normalized.revision !== current.revision + 1)
|
|
157
173
|
throw new Error("goal revision CAS failed");
|
|
158
174
|
if (current.phase === "complete")
|
|
159
175
|
throw new Error("completed goal cannot be modified");
|
|
160
|
-
if (
|
|
176
|
+
if (normalized.parentId !== current.parentId)
|
|
161
177
|
throw new Error("goal reparenting is not supported");
|
|
162
|
-
if (
|
|
178
|
+
if (normalized.phase === "complete")
|
|
163
179
|
throw new Error("goal completion requires reason and evidence");
|
|
164
|
-
if (
|
|
165
|
-
throw new Error("objective revision must replace or invalidate
|
|
166
|
-
assertGoalTransition(current.phase,
|
|
180
|
+
if (normalized.objective !== current.objective && ((current.observationMethod !== null && normalized.observationMethod === current.observationMethod) || (current.verificationMethod !== null && normalized.verificationMethod === current.verificationMethod)))
|
|
181
|
+
throw new Error("objective revision must replace or invalidate observation and verification methods");
|
|
182
|
+
assertGoalTransition(current.phase, normalized.phase);
|
|
167
183
|
this.#assertGoalAuthority(current.parentId, actor);
|
|
168
184
|
}
|
|
169
185
|
else {
|
|
170
|
-
if (
|
|
186
|
+
if (normalized.revision !== 0)
|
|
171
187
|
throw new Error("new goal revision must be 0");
|
|
172
|
-
this.#assertGoalAuthority(
|
|
188
|
+
this.#assertGoalAuthority(normalized.parentId, actor);
|
|
173
189
|
}
|
|
174
|
-
return this.#
|
|
190
|
+
return this.#transaction(() => {
|
|
191
|
+
const event = this.#recordProjection("goals", normalized, actor, "goal.put", wakeId, undefined, undefined, goalStream(normalized.id));
|
|
192
|
+
if (!current)
|
|
193
|
+
this.#createWorkRecord(normalized, actor, wakeId ?? `goal:create:${normalized.id}`, wakeId);
|
|
194
|
+
return event;
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
updateWorkRecord(request, actor) {
|
|
198
|
+
if (!request.turnId.trim() || !request.reason.trim() || !request.content.trim())
|
|
199
|
+
throw new Error("work record turn, reason and content are required");
|
|
200
|
+
this.#assertEvidenceExists(request.evidence);
|
|
201
|
+
const goal = this.#getGoal(request.goalId);
|
|
202
|
+
if (!goal)
|
|
203
|
+
throw new Error("work record goal does not exist");
|
|
204
|
+
if (goal.revision !== request.goalRevision)
|
|
205
|
+
throw new Error("work record goal revision is stale");
|
|
206
|
+
this.#assertWorkRecordAuthority(goal, actor);
|
|
207
|
+
const current = this.workRecord(goal.id);
|
|
208
|
+
if (!current)
|
|
209
|
+
throw new Error("work record does not exist");
|
|
210
|
+
if (current.recordRevision !== request.expectedRevision)
|
|
211
|
+
throw new Error("work record revision CAS failed");
|
|
212
|
+
if (current.content === request.content)
|
|
213
|
+
throw new Error("work record content is unchanged");
|
|
214
|
+
return this.#transaction(() => this.#recordWorkRecord({
|
|
215
|
+
...current,
|
|
216
|
+
recordRevision: current.recordRevision + 1,
|
|
217
|
+
goalRevision: goal.revision,
|
|
218
|
+
content: request.content,
|
|
219
|
+
updatedBy: actor,
|
|
220
|
+
updatedInTurn: request.turnId,
|
|
221
|
+
updatedInWake: request.wakeId ?? null,
|
|
222
|
+
updatedAt: this.#now(),
|
|
223
|
+
reason: request.reason,
|
|
224
|
+
evidence: request.evidence,
|
|
225
|
+
}, "work_record.updated"));
|
|
175
226
|
}
|
|
176
227
|
commitDelegation(request, actor, wakeId) {
|
|
177
228
|
const existing = this.#delegationResult(request.id);
|
|
178
229
|
if (existing) {
|
|
179
|
-
if (existing.goal.id !== request.childGoal.id || existing.goal.parentId !== request.parentGoalId || existing.goal.objective !== request.childGoal.objective || existing.goal.observationMethod !== request.childGoal.observationMethod || existing.goal.owner !== request.childGoal.owner)
|
|
230
|
+
if (existing.goal.id !== request.childGoal.id || existing.goal.parentId !== request.parentGoalId || existing.goal.objective !== request.childGoal.objective || existing.goal.observationMethod !== request.childGoal.observationMethod || existing.goal.verificationMethod !== request.childGoal.verificationMethod || existing.goal.owner !== request.childGoal.owner)
|
|
180
231
|
throw new Error("delegation id was reused with a different child goal");
|
|
181
232
|
return existing;
|
|
182
233
|
}
|
|
@@ -184,7 +235,7 @@ export class SqliteLedger {
|
|
|
184
235
|
throw new Error("delegation id and reason are required");
|
|
185
236
|
if (request.childGoal.owner === actor)
|
|
186
237
|
throw new Error("delegate to a distinct worker agent; use goal.put for self-owned subgoals");
|
|
187
|
-
if (!request.childGoal.id.trim() || !request.childGoal.objective.trim() || !request.childGoal.observationMethod.trim() || !request.childGoal.owner.trim())
|
|
238
|
+
if (!request.childGoal.id.trim() || !request.childGoal.objective.trim() || !request.childGoal.observationMethod.trim() || !request.childGoal.verificationMethod.trim() || !request.childGoal.owner.trim())
|
|
188
239
|
throw new Error("delegation child goal is incomplete");
|
|
189
240
|
this.#assertEvidenceExists(request.evidence);
|
|
190
241
|
const parent = this.#getGoal(request.parentGoalId);
|
|
@@ -197,13 +248,13 @@ export class SqliteLedger {
|
|
|
197
248
|
if (this.#getGoal(request.childGoal.id))
|
|
198
249
|
throw new Error("delegation child goal already exists");
|
|
199
250
|
return this.#transaction(() => {
|
|
200
|
-
const goal = { ...request.childGoal, parentId: request.parentGoalId, phase: "active", revision: 0 };
|
|
251
|
+
const goal = normalizeGoal({ ...request.childGoal, parentId: request.parentGoalId, phase: "active", revision: 0 });
|
|
201
252
|
const mail = {
|
|
202
253
|
id: `delegation-mail:${request.id}`,
|
|
203
254
|
to: goal.owner,
|
|
204
255
|
from: actor,
|
|
205
256
|
level: "decision",
|
|
206
|
-
body: { type: "delegation", delegationId: request.id, goalId: goal.id, parentGoalId: request.parentGoalId, objective: goal.objective, observationMethod: goal.observationMethod, brief: request.brief, reason: request.reason, evidence: request.evidence },
|
|
257
|
+
body: { type: "delegation", delegationId: request.id, goalId: goal.id, parentGoalId: request.parentGoalId, objective: goal.objective, observationMethod: goal.observationMethod, verificationMethod: goal.verificationMethod ?? null, brief: request.brief, reason: request.reason, evidence: request.evidence },
|
|
207
258
|
readAt: null,
|
|
208
259
|
};
|
|
209
260
|
const wakeBase = {
|
|
@@ -228,6 +279,7 @@ export class SqliteLedger {
|
|
|
228
279
|
});
|
|
229
280
|
this.#faultInjector?.("after_delegation_event");
|
|
230
281
|
this.#recordProjection("goals", goal, actor, "goal.put", wakeId, undefined, undefined, goalStream(goal.id));
|
|
282
|
+
this.#createWorkRecord(goal, actor, wakeId ?? `delegation:${request.id}`, wakeId);
|
|
231
283
|
this.#recordProjection("mailbox", mail, actor, "mail.put", wakeId);
|
|
232
284
|
const wake = { ...wakeBase, enqueuedSeq: this.#nextEventSeq() };
|
|
233
285
|
this.#recordProjection("wakes", wake, "supervisor", "wake.enqueued", wake.id, undefined, wake.enqueuedSeq);
|
|
@@ -287,6 +339,8 @@ export class SqliteLedger {
|
|
|
287
339
|
return current;
|
|
288
340
|
if (current.observationMethod === null)
|
|
289
341
|
throw new Error("goal completion requires an observation method");
|
|
342
|
+
if (current.verificationMethod === null || current.verificationMethod === undefined)
|
|
343
|
+
throw new Error("goal completion requires a verification method");
|
|
290
344
|
this.#assertGoalAuthority(current.parentId, actor);
|
|
291
345
|
if (current.parentId === null && this.#hasNonCompleteDescendant(current.id))
|
|
292
346
|
throw new Error("root goal cannot complete while descendants remain non-complete");
|
|
@@ -296,7 +350,7 @@ export class SqliteLedger {
|
|
|
296
350
|
if (request.evidence.some((seq) => seq <= source.seq))
|
|
297
351
|
throw new Error("goal completion evidence predates the current revision");
|
|
298
352
|
return this.#transaction(() => {
|
|
299
|
-
this.#insertEvent({ streamId: goalStream(current.id), ts: this.#now(), actor, type: "goal.completion_decided", data: { goalId: current.id, revision: current.revision, observationMethod: current.observationMethod, reason: request.reason, evidence: request.evidence } });
|
|
353
|
+
this.#insertEvent({ streamId: goalStream(current.id), ts: this.#now(), actor, type: "goal.completion_decided", data: { goalId: current.id, revision: current.revision, observationMethod: current.observationMethod, verificationMethod: current.verificationMethod ?? null, reason: request.reason, evidence: request.evidence } });
|
|
300
354
|
const next = { ...current, phase: "complete", revision: current.revision + 1 };
|
|
301
355
|
this.#recordProjection("goals", next, actor, "goal.put", wakeId, undefined, undefined, goalStream(current.id));
|
|
302
356
|
return next;
|
|
@@ -331,7 +385,7 @@ export class SqliteLedger {
|
|
|
331
385
|
return this.#transaction(() => {
|
|
332
386
|
const row = this.db.prepare(`SELECT * FROM wakes w WHERE status='queued' AND NOT EXISTS (
|
|
333
387
|
SELECT 1 FROM wakes active WHERE active.agent=w.agent AND active.status IN ('leased','running')
|
|
334
|
-
) ORDER BY enqueued_seq LIMIT 1`).get();
|
|
388
|
+
) ORDER BY CASE WHEN trigger_ref LIKE 'interaction:%' THEN 0 ELSE 1 END,enqueued_seq LIMIT 1`).get();
|
|
335
389
|
if (!row)
|
|
336
390
|
return null;
|
|
337
391
|
const current = mapWake(row);
|
|
@@ -473,6 +527,22 @@ export class SqliteLedger {
|
|
|
473
527
|
return event;
|
|
474
528
|
});
|
|
475
529
|
}
|
|
530
|
+
commitInteraction(commit) {
|
|
531
|
+
return this.#transaction(() => {
|
|
532
|
+
const wake = this.#requiredWake(commit.wakeId);
|
|
533
|
+
if (wake.status !== "running" || wake.agent !== commit.agent)
|
|
534
|
+
throw new Error("interaction does not match a running wake");
|
|
535
|
+
const mailRow = this.db.prepare("SELECT * FROM mailbox WHERE id=?").get(commit.mailId);
|
|
536
|
+
if (!mailRow)
|
|
537
|
+
throw new Error("interaction mail does not exist");
|
|
538
|
+
const mail = mapMail(mailRow);
|
|
539
|
+
if (mail.to !== commit.agent || mail.readAt !== null)
|
|
540
|
+
throw new Error("interaction mail is not unread for the agent");
|
|
541
|
+
const event = this.#insertEvent({ streamId: wakeStream(commit.wakeId), ts: commit.ts, actor: commit.agent, type: "interaction.completed", data: { mailId: mail.id, response: commit.response } });
|
|
542
|
+
this.#recordProjection("mailbox", { ...mail, readAt: commit.ts }, "supervisor", "mail.read", commit.wakeId, commit.ts);
|
|
543
|
+
return event;
|
|
544
|
+
});
|
|
545
|
+
}
|
|
476
546
|
dueSchedules(now) { return this.db.prepare("SELECT * FROM schedule WHERE next_wake_at <= ? ORDER BY next_wake_at,id").all(now).map(mapSchedule); }
|
|
477
547
|
unreadMail(agent) { return this.db.prepare("SELECT * FROM mailbox WHERE to_agent=? AND read_at IS NULL ORDER BY rowid").all(agent).map(mapMail); }
|
|
478
548
|
unackedAuditAdvice(agent) { return this.db.prepare("SELECT * FROM actions WHERE agent=? AND audit_advice IS NOT NULL AND advice_acked=0 ORDER BY rowid").all(agent).map(mapAction); }
|
|
@@ -492,6 +562,22 @@ export class SqliteLedger {
|
|
|
492
562
|
action(id) { const row = this.db.prepare("SELECT * FROM actions WHERE id=?").get(id); return row ? mapAction(row) : null; }
|
|
493
563
|
goalsForOwner(owner) { return this.db.prepare("SELECT * FROM goals WHERE owner=? ORDER BY id").all(owner).map(mapGoal); }
|
|
494
564
|
goal(id) { return this.#getGoal(id); }
|
|
565
|
+
workRecord(goalId) { const row = this.db.prepare("SELECT * FROM work_records WHERE goal_id=?").get(goalId); return row ? mapWorkRecord(row) : null; }
|
|
566
|
+
workRecordHistory(goalId) {
|
|
567
|
+
return this.readStream(workRecordStream(goalId)).filter((event) => event.type === "work_record.created" || event.type === "work_record.updated").map((event) => mapWorkRecordEvent(event));
|
|
568
|
+
}
|
|
569
|
+
workRecordDiff(goalId, fromRevision, toRevision) {
|
|
570
|
+
const history = this.workRecordHistory(goalId);
|
|
571
|
+
const from = history.find((record) => record.recordRevision === fromRevision);
|
|
572
|
+
const to = history.find((record) => record.recordRevision === toRevision);
|
|
573
|
+
if (!from || !to)
|
|
574
|
+
throw new Error("work record diff revision does not exist");
|
|
575
|
+
return { goalId, fromRevision, toRevision, text: lineDiff(from.content, to.content) };
|
|
576
|
+
}
|
|
577
|
+
searchWorkRecords(query, limit = 50) {
|
|
578
|
+
return this.db.prepare(`SELECT e.* FROM events_fts f JOIN events e ON e.seq=f.rowid
|
|
579
|
+
WHERE events_fts MATCH ? AND e.type IN ('work_record.created','work_record.updated') ORDER BY rank LIMIT ?`).all(query, limit).map((row) => mapWorkRecordEvent(mapEvent(row)));
|
|
580
|
+
}
|
|
495
581
|
triggeringMail() { return this.db.prepare("SELECT * FROM mailbox WHERE read_at IS NULL AND level IN ('decision','emergency') ORDER BY rowid").all().map(mapMail); }
|
|
496
582
|
eventsSince(seq, types) {
|
|
497
583
|
const events = this.db.prepare("SELECT * FROM events WHERE seq>? ORDER BY seq").all(seq).map(mapEvent);
|
|
@@ -505,6 +591,7 @@ export class SqliteLedger {
|
|
|
505
591
|
}
|
|
506
592
|
events() { return this.db.prepare("SELECT * FROM events ORDER BY seq").all().map(mapEvent); }
|
|
507
593
|
goals() { return this.db.prepare("SELECT * FROM goals ORDER BY id").all().map(mapGoal); }
|
|
594
|
+
workRecords() { return this.db.prepare("SELECT * FROM work_records ORDER BY goal_id").all().map(mapWorkRecord); }
|
|
508
595
|
schedules() { return this.db.prepare("SELECT * FROM schedule ORDER BY id").all().map(mapSchedule); }
|
|
509
596
|
wakes() { return this.db.prepare("SELECT * FROM wakes ORDER BY enqueued_seq").all().map(mapWake); }
|
|
510
597
|
actions() { return this.db.prepare("SELECT * FROM actions ORDER BY id").all().map(mapAction); }
|
|
@@ -512,7 +599,7 @@ export class SqliteLedger {
|
|
|
512
599
|
rebuildProjections() {
|
|
513
600
|
const source = this.events();
|
|
514
601
|
this.#transaction(() => {
|
|
515
|
-
this.db.exec("DELETE FROM actions; DELETE FROM mailbox; DELETE FROM wakes; DELETE FROM schedule; DELETE FROM goals;");
|
|
602
|
+
this.db.exec("DELETE FROM work_records; DELETE FROM actions; DELETE FROM mailbox; DELETE FROM wakes; DELETE FROM schedule; DELETE FROM goals;");
|
|
516
603
|
for (const event of source) {
|
|
517
604
|
const data = event.data;
|
|
518
605
|
if (data.projection && data.snapshot)
|
|
@@ -562,6 +649,34 @@ export class SqliteLedger {
|
|
|
562
649
|
return next;
|
|
563
650
|
});
|
|
564
651
|
}
|
|
652
|
+
#createWorkRecord(goal, actor, turnId, wakeId, seed) {
|
|
653
|
+
return this.#recordWorkRecord({
|
|
654
|
+
goalId: goal.id,
|
|
655
|
+
recordRevision: 0,
|
|
656
|
+
goalRevision: goal.revision,
|
|
657
|
+
content: seed?.content ?? initialWorkRecord(),
|
|
658
|
+
updatedBy: actor,
|
|
659
|
+
updatedInTurn: turnId,
|
|
660
|
+
updatedInWake: wakeId ?? null,
|
|
661
|
+
updatedAt: this.#now(),
|
|
662
|
+
reason: "Goal created",
|
|
663
|
+
evidence: seed?.evidence ?? [],
|
|
664
|
+
lastEventSeq: 0,
|
|
665
|
+
}, "work_record.created");
|
|
666
|
+
}
|
|
667
|
+
#recordWorkRecord(snapshot, type) {
|
|
668
|
+
const seq = this.#nextEventSeq();
|
|
669
|
+
const committed = { ...snapshot, lastEventSeq: seq };
|
|
670
|
+
this.#recordProjection("work_records", committed, committed.updatedBy, type, committed.updatedInWake ?? undefined, committed.updatedAt, seq, workRecordStream(committed.goalId));
|
|
671
|
+
return committed;
|
|
672
|
+
}
|
|
673
|
+
#assertWorkRecordAuthority(goal, actor) {
|
|
674
|
+
if (goal.owner === actor || (goal.parentId === null && actor === "human"))
|
|
675
|
+
return;
|
|
676
|
+
const parent = goal.parentId ? this.#getGoal(goal.parentId) : null;
|
|
677
|
+
if (parent?.owner !== actor)
|
|
678
|
+
throw new Error("only the goal owner or parent owner may update its work record");
|
|
679
|
+
}
|
|
565
680
|
#assertGoalAuthority(parentId, actor) {
|
|
566
681
|
if (parentId === null) {
|
|
567
682
|
if (actor !== "human")
|
|
@@ -619,9 +734,12 @@ export class SqliteLedger {
|
|
|
619
734
|
}
|
|
620
735
|
#applyProjection(projection, raw, sourceSeq) {
|
|
621
736
|
if (projection === "goals") {
|
|
622
|
-
const
|
|
623
|
-
|
|
624
|
-
|
|
737
|
+
const v = normalizeGoal(raw);
|
|
738
|
+
this.db.prepare(`INSERT INTO goals VALUES (?,?,?,?,?,?,?,?) ON CONFLICT(id) DO UPDATE SET parent_id=excluded.parent_id,objective=excluded.objective,observation_method=excluded.observation_method,verification_method=excluded.verification_method,owner=excluded.owner,phase=excluded.phase,revision=excluded.revision`).run(v.id, v.parentId, v.objective, v.observationMethod, v.verificationMethod ?? null, v.owner, v.phase, v.revision);
|
|
739
|
+
}
|
|
740
|
+
else if (projection === "work_records") {
|
|
741
|
+
const v = raw;
|
|
742
|
+
this.db.prepare(`INSERT INTO work_records VALUES (?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT(goal_id) DO UPDATE SET record_revision=excluded.record_revision,goal_revision=excluded.goal_revision,content=excluded.content,updated_by=excluded.updated_by,updated_in_turn=excluded.updated_in_turn,updated_in_wake=excluded.updated_in_wake,updated_at=excluded.updated_at,reason=excluded.reason,evidence=excluded.evidence,last_event_seq=excluded.last_event_seq`).run(v.goalId, v.recordRevision, v.goalRevision, v.content, v.updatedBy, v.updatedInTurn, v.updatedInWake, v.updatedAt, v.reason, JSON.stringify(v.evidence), v.lastEventSeq || sourceSeq);
|
|
625
743
|
}
|
|
626
744
|
else if (projection === "schedule") {
|
|
627
745
|
const v = raw;
|
|
@@ -649,11 +767,24 @@ export class SqliteLedger {
|
|
|
649
767
|
this.db.prepare(`INSERT INTO actions VALUES (?,?,?,?,json(?),?,json(?),?,?,?,?,?,?) ON CONFLICT(id) DO UPDATE SET agent=excluded.agent,kind=excluded.kind,connector=excluded.connector,payload=excluded.payload,reason=excluded.reason,evidence=excluded.evidence,gated=excluded.gated,status=excluded.status,reconciled_at=excluded.reconciled_at,external_ref=excluded.external_ref,audit_advice=excluded.audit_advice,advice_acked=excluded.advice_acked`).run(v.id, v.agent, v.kind, v.connector, JSON.stringify(v.payload), v.reason, JSON.stringify(v.evidence), v.gated ? 1 : 0, v.status, v.reconciledAt, v.externalRef, v.auditAdvice === null ? null : JSON.stringify(v.auditAdvice), v.adviceAcked ? 1 : 0);
|
|
650
768
|
}
|
|
651
769
|
}
|
|
770
|
+
#legacyWorkRecord(goal) {
|
|
771
|
+
const handoff = this.lastEvent(goal.owner, "handoff.recorded");
|
|
772
|
+
const legacy = handoff?.data && typeof handoff.data === "object" && !Array.isArray(handoff.data) && !("goalId" in handoff.data) ? handoff.data : null;
|
|
773
|
+
const notes = this.readStream(`memory:${goal.owner}`).filter((event) => event.type === "memory.appended");
|
|
774
|
+
const list = (items) => items?.length ? items.map((item) => `- ${item}`).join("\n") : "None recorded.";
|
|
775
|
+
const decisions = notes.length ? notes.map((event) => `- ${String(event.data.note ?? "")} [event:${event.seq}]`).join("\n") : "None recorded.";
|
|
776
|
+
return {
|
|
777
|
+
content: `# Current State\n\nMigrated from the previous Goal continuity model.\n\n# Observations\n\n${list(legacy?.observations)}\n\n# Work Completed\n\n${list(legacy?.results)}\n\n# Decisions\n\n${decisions}\n\n# Blockers\n\n${legacy?.blocker ?? "None recorded."}\n\n# Next Steps\n\n${list(legacy?.nextSteps)}\n`,
|
|
778
|
+
evidence: [...(handoff ? [handoff.seq] : []), ...notes.map((event) => event.seq)],
|
|
779
|
+
};
|
|
780
|
+
}
|
|
652
781
|
#migrateLegacy() {
|
|
653
782
|
this.#transaction(() => {
|
|
654
783
|
const goalColumns = new Set(this.db.prepare("PRAGMA table_info(goals)").all().map((row) => row.name));
|
|
655
784
|
const observationSource = goalColumns.has("observation_method") ? "observation_method" : "NULL";
|
|
785
|
+
const verificationSource = goalColumns.has("verification_method") ? "verification_method" : observationSource;
|
|
656
786
|
this.db.exec(`PRAGMA defer_foreign_keys=ON;
|
|
787
|
+
DROP TABLE IF EXISTS work_records;
|
|
657
788
|
DROP TRIGGER IF EXISTS events_no_update; DROP TRIGGER IF EXISTS events_no_delete; DROP TRIGGER IF EXISTS events_fts_insert;
|
|
658
789
|
DROP TRIGGER IF EXISTS wakes_valid_transition; DROP TRIGGER IF EXISTS actions_valid_transition; DROP TRIGGER IF EXISTS goals_valid_transition;
|
|
659
790
|
DROP INDEX IF EXISTS events_agent_kind_seq; DROP INDEX IF EXISTS events_wake_seq; DROP INDEX IF EXISTS events_coalesced_trigger;
|
|
@@ -662,7 +793,7 @@ export class SqliteLedger {
|
|
|
662
793
|
DROP TABLE IF EXISTS events_fts;
|
|
663
794
|
|
|
664
795
|
ALTER TABLE goals RENAME TO goals_legacy; ${createGoals}
|
|
665
|
-
INSERT INTO goals(id,parent_id,objective,observation_method,owner,phase,revision) SELECT id,parent_id,objective,${observationSource},owner,phase,revision FROM goals_legacy;
|
|
796
|
+
INSERT INTO goals(id,parent_id,objective,observation_method,verification_method,owner,phase,revision) SELECT id,parent_id,objective,${observationSource},${verificationSource},owner,phase,revision FROM goals_legacy;
|
|
666
797
|
DROP TABLE goals_legacy;`);
|
|
667
798
|
const wakeColumns = new Set(this.db.prepare("PRAGMA table_info(wakes)").all().map((row) => row.name));
|
|
668
799
|
if (!wakeColumns.has("enqueued_seq")) {
|
|
@@ -700,6 +831,11 @@ export class SqliteLedger {
|
|
|
700
831
|
else if (!eventColumns.has("ignorable")) {
|
|
701
832
|
this.db.exec("ALTER TABLE events ADD COLUMN ignorable INTEGER CHECK(ignorable IS NULL OR ignorable = 1)");
|
|
702
833
|
}
|
|
834
|
+
this.db.exec(createWorkRecords);
|
|
835
|
+
for (const goal of this.goals()) {
|
|
836
|
+
if (!this.workRecord(goal.id))
|
|
837
|
+
this.#createWorkRecord(goal, "supervisor", `migration:work-record:${goal.id}`, undefined, this.#legacyWorkRecord(goal));
|
|
838
|
+
}
|
|
703
839
|
this.db.exec(`${indexesAndTriggers} INSERT INTO events_fts(events_fts) VALUES('rebuild'); PRAGMA user_version=${SQLITE_SCHEMA_VERSION};`);
|
|
704
840
|
});
|
|
705
841
|
}
|
|
@@ -718,7 +854,29 @@ export class SqliteLedger {
|
|
|
718
854
|
#now() { return this.#clock.now().toISOString(); }
|
|
719
855
|
}
|
|
720
856
|
function mapEvent(r) { return { seq: Number(r.seq), streamId: String(r.stream_id), streamSeq: Number(r.stream_seq), ts: String(r.ts), actor: String(r.actor), type: String(r.type), data: JSON.parse(String(r.data)), ...(Number(r.ignorable) === 1 ? { ignorable: true } : {}) }; }
|
|
721
|
-
function
|
|
857
|
+
function normalizeGoal(goal) { return { ...goal, observationMethod: goal.observationMethod ?? null, verificationMethod: goal.verificationMethod === undefined ? goal.observationMethod ?? null : goal.verificationMethod }; }
|
|
858
|
+
function mapGoal(r) { return { id: String(r.id), parentId: r.parent_id === null ? null : String(r.parent_id), objective: String(r.objective), observationMethod: r.observation_method === null || r.observation_method === undefined ? null : String(r.observation_method), verificationMethod: r.verification_method === null || r.verification_method === undefined ? null : String(r.verification_method), owner: String(r.owner), phase: String(r.phase), revision: Number(r.revision) }; }
|
|
859
|
+
function mapWorkRecord(r) { return { goalId: String(r.goal_id), recordRevision: Number(r.record_revision), goalRevision: Number(r.goal_revision), content: String(r.content), updatedBy: String(r.updated_by), updatedInTurn: String(r.updated_in_turn), updatedInWake: r.updated_in_wake === null ? null : String(r.updated_in_wake), updatedAt: String(r.updated_at), reason: String(r.reason), evidence: JSON.parse(String(r.evidence)), lastEventSeq: Number(r.last_event_seq) }; }
|
|
860
|
+
function mapWorkRecordEvent(event) { const data = event.data; if (!data.snapshot)
|
|
861
|
+
throw new Error(`work record event ${event.seq} has no snapshot`); return { ...data.snapshot, lastEventSeq: event.seq }; }
|
|
862
|
+
function initialWorkRecord() { return "# Current State\n\nGoal created. Work has not started.\n\n# Observations\n\n# Work Completed\n\n# Decisions\n\n# Blockers\n\n# Next Steps\n"; }
|
|
863
|
+
function lineDiff(from, to) {
|
|
864
|
+
const before = from.split("\n");
|
|
865
|
+
const after = to.split("\n");
|
|
866
|
+
const lines = [];
|
|
867
|
+
for (let index = 0; index < Math.max(before.length, after.length); index += 1) {
|
|
868
|
+
if (before[index] === after[index]) {
|
|
869
|
+
if (before[index] !== undefined)
|
|
870
|
+
lines.push(` ${before[index]}`);
|
|
871
|
+
continue;
|
|
872
|
+
}
|
|
873
|
+
if (before[index] !== undefined)
|
|
874
|
+
lines.push(`-${before[index]}`);
|
|
875
|
+
if (after[index] !== undefined)
|
|
876
|
+
lines.push(`+${after[index]}`);
|
|
877
|
+
}
|
|
878
|
+
return lines.join("\n");
|
|
879
|
+
}
|
|
722
880
|
function mapSchedule(r) { return { id: String(r.id), agent: String(r.agent), nextWakeAt: String(r.next_wake_at), reason: String(r.reason), setBy: String(r.set_by) }; }
|
|
723
881
|
function mapWake(r) { return { id: String(r.id), agent: String(r.agent), triggerRef: String(r.trigger_ref), status: String(r.status), leaseUntil: r.lease_until === null ? null : String(r.lease_until), attempt: Number(r.attempt), startedAt: r.started_at === null ? null : String(r.started_at), endedAt: r.ended_at === null ? null : String(r.ended_at), enqueuedSeq: Number(r.enqueued_seq), leaseToken: r.lease_token === null ? null : String(r.lease_token), runnerPid: r.runner_pid === null ? null : Number(r.runner_pid) }; }
|
|
724
882
|
function mapMail(r) { return { id: String(r.id), to: String(r.to_agent), from: String(r.from_agent), level: String(r.level), body: JSON.parse(String(r.body)), readAt: r.read_at === null ? null : String(r.read_at) }; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type JsonValue, type AgentCapability, type RunRequest, type Runner, type RunnerHandle, type RunnerResult, type WakeOutput } from "goah-ledger-contract";
|
|
1
|
+
import { type JsonValue, type AgentCapability, type AssistantResponse, type RunRequest, type Runner, type RunnerHandle, type RunnerResult, type TurnContext, type WakeOutput } from "goah-ledger-contract";
|
|
2
2
|
export { createPiModel, defaultAuthFile, modelCatalog, providerCatalog, resolvedApiKey, LOCAL_PROVIDERS, type ModelSummary, type ProviderSummary } from "./model-provider.js";
|
|
3
3
|
export { JsonCredentialStore } from "./credential-store.js";
|
|
4
4
|
export { createPiProcessRunner, piConfig, piEnvironment, piRunnerConfigurator, type PiRunnerConfig } from "./configurator.js";
|
|
@@ -8,6 +8,7 @@ export interface PiStep {
|
|
|
8
8
|
type: string;
|
|
9
9
|
data: JsonValue;
|
|
10
10
|
}>;
|
|
11
|
+
response?: AssistantResponse;
|
|
11
12
|
handoff?: WakeOutput;
|
|
12
13
|
stopped?: boolean;
|
|
13
14
|
}
|
|
@@ -41,7 +42,8 @@ export interface ProcessRunnerOptions {
|
|
|
41
42
|
}
|
|
42
43
|
export declare function piWorkerPath(): string;
|
|
43
44
|
export declare function verificationWorkerPath(): string;
|
|
44
|
-
type WorkerRequest = Omit<RunRequest, "now" | "emit" | "rpc"> & {
|
|
45
|
+
type WorkerRequest = Omit<RunRequest, "now" | "emit" | "rpc" | "turn"> & {
|
|
46
|
+
turn?: TurnContext;
|
|
45
47
|
runtime?: JsonValue;
|
|
46
48
|
};
|
|
47
49
|
/** Real process boundary. The child stays idle until begin() sends its request. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9K,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9H,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,WAAW,SAAS;IAAG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;AAC9E,MAAM,WAAW,QAAQ;IAAG,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;CAAE;AAEpF,8EAA8E;AAC9E,qBAAa,eAAe;;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ;IAE7C,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,YAAY;IAgBpC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|