@goah/cli 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/cli.js +49 -4
  2. package/dist/cli.js.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/inspect.d.ts +1 -0
  6. package/dist/inspect.d.ts.map +1 -1
  7. package/dist/inspect.js +1 -0
  8. package/dist/inspect.js.map +1 -1
  9. package/node_modules/goah-ledger-contract/dist/execution.d.ts +50 -4
  10. package/node_modules/goah-ledger-contract/dist/execution.d.ts.map +1 -1
  11. package/node_modules/goah-ledger-contract/dist/execution.js +5 -1
  12. package/node_modules/goah-ledger-contract/dist/execution.js.map +1 -1
  13. package/node_modules/goah-ledger-contract/dist/kernel.d.ts +3 -1
  14. package/node_modules/goah-ledger-contract/dist/kernel.d.ts.map +1 -1
  15. package/node_modules/goah-ledger-contract/dist/kernel.js +1 -1
  16. package/node_modules/goah-ledger-contract/dist/kernel.js.map +1 -1
  17. package/node_modules/goah-ledger-contract/dist/session.d.ts +24 -0
  18. package/node_modules/goah-ledger-contract/dist/session.d.ts.map +1 -1
  19. package/node_modules/goah-ledger-contract/dist/session.js +67 -5
  20. package/node_modules/goah-ledger-contract/dist/session.js.map +1 -1
  21. package/node_modules/goah-ledger-contract/package.json +1 -1
  22. package/node_modules/goah-ledger-sqlite/dist/index.d.ts +5 -3
  23. package/node_modules/goah-ledger-sqlite/dist/index.d.ts.map +1 -1
  24. package/node_modules/goah-ledger-sqlite/dist/index.js +159 -9
  25. package/node_modules/goah-ledger-sqlite/dist/index.js.map +1 -1
  26. package/node_modules/goah-ledger-sqlite/package.json +2 -2
  27. package/node_modules/goah-runner-pi/dist/pi-worker.d.ts +1 -1
  28. package/node_modules/goah-runner-pi/dist/pi-worker.d.ts.map +1 -1
  29. package/node_modules/goah-runner-pi/dist/pi-worker.js +28 -15
  30. package/node_modules/goah-runner-pi/dist/pi-worker.js.map +1 -1
  31. package/node_modules/goah-runner-pi/package.json +2 -2
  32. package/node_modules/goah-supervisor/dist/context-view.d.ts +4 -1
  33. package/node_modules/goah-supervisor/dist/context-view.d.ts.map +1 -1
  34. package/node_modules/goah-supervisor/dist/context-view.js +3 -2
  35. package/node_modules/goah-supervisor/dist/context-view.js.map +1 -1
  36. package/node_modules/goah-supervisor/dist/index.d.ts +15 -1
  37. package/node_modules/goah-supervisor/dist/index.d.ts.map +1 -1
  38. package/node_modules/goah-supervisor/dist/index.js +182 -6
  39. package/node_modules/goah-supervisor/dist/index.js.map +1 -1
  40. package/node_modules/goah-supervisor/dist/roles.d.ts.map +1 -1
  41. package/node_modules/goah-supervisor/dist/roles.js +5 -1
  42. package/node_modules/goah-supervisor/dist/roles.js.map +1 -1
  43. package/node_modules/goah-supervisor/package.json +2 -2
  44. package/node_modules/goah-testkit/dist/faux-runner-worker.js +4 -1
  45. package/node_modules/goah-testkit/dist/faux-runner-worker.js.map +1 -1
  46. package/node_modules/goah-testkit/dist/index.d.ts.map +1 -1
  47. package/node_modules/goah-testkit/dist/index.js +15 -0
  48. package/node_modules/goah-testkit/dist/index.js.map +1 -1
  49. package/node_modules/goah-testkit/package.json +5 -5
  50. package/package.json +6 -6
@@ -5,6 +5,7 @@ import { promisify } from "node:util";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { Agent } from "@earendil-works/pi-agent-core";
7
7
  import { fauxAssistantMessage, fauxToolCall, Type } from "@earendil-works/pi-ai";
8
+ import { SESSION_FORMAT_VERSION } from "goah-ledger-contract";
8
9
  import { runProcessWorker } from "./index.js";
9
10
  import { createPiModel, providerApiKey } from "./model-provider.js";
10
11
  const execFileAsync = promisify(execFile);
@@ -48,10 +49,13 @@ export async function runPiWorker() {
48
49
  return id;
49
50
  };
50
51
  const root = resolve(process.cwd());
51
- const tools = createTools(root, (value) => { output = value; }, process.env.GOAH_PI_ALLOW_BASH === "true", rpc, request.wake.startedAt);
52
- const contextPolicy = resolveContextPolicy(model.contextWindow, process.env);
53
- emit({ type: "session.started", data: { provider, model: modelId, runner: "pi", contextWindowTokens: model.contextWindow, maxOutputTokensPerTurn: model.maxTokens } });
54
52
  const contextRecord = typeof request.context === "object" && request.context !== null && !Array.isArray(request.context) ? request.context : {};
53
+ const capabilities = Array.isArray(contextRecord.capabilities)
54
+ ? new Set(contextRecord.capabilities.filter((value) => typeof value === "string"))
55
+ : undefined;
56
+ const tools = createTools(root, (value) => { output = value; }, process.env.GOAH_PI_ALLOW_BASH === "true", rpc, request.wake.startedAt, capabilities);
57
+ const contextPolicy = resolveContextPolicy(model.contextWindow, process.env);
58
+ emit({ type: "session.started", data: { formatVersion: SESSION_FORMAT_VERSION, provider, model: modelId, runner: "pi", contextWindowTokens: model.contextWindow, maxOutputTokensPerTurn: model.maxTokens } });
55
59
  const suppliedPrompt = typeof contextRecord.systemPrompt === "string" ? contextRecord.systemPrompt : undefined;
56
60
  const activeContext = typeof contextRecord.text === "string" ? contextRecord.text : JSON.stringify(request.context);
57
61
  const sourceSeqs = Array.isArray(contextRecord.sourceSeqs) ? contextRecord.sourceSeqs.filter((value) => Number.isInteger(value)) : [];
@@ -145,7 +149,7 @@ function sessionMessage(message, id) {
145
149
  const role = message.role === "assistant" ? "assistant" : message.role === "user" ? "user" : "tool";
146
150
  return { id, role, content: (value.content ?? value), ...(value.usage !== undefined ? { usage: value.usage } : {}) };
147
151
  }
148
- function createTools(root, handoff, allowBash, rpc, wakeStartedAt) {
152
+ function createTools(root, handoff, allowBash, rpc, wakeStartedAt, capabilities) {
149
153
  const handoffTool = {
150
154
  name: "handoff",
151
155
  label: "Handoff",
@@ -155,16 +159,17 @@ function createTools(root, handoff, allowBash, rpc, wakeStartedAt) {
155
159
  results: Type.Array(Type.String()),
156
160
  nextSteps: Type.Array(Type.String()),
157
161
  blocker: Type.Optional(Type.String()),
162
+ material: Type.Optional(Type.Boolean()),
158
163
  nextWakeAt: Type.Optional(Type.String()),
159
164
  }),
160
165
  execute: async (_id, params) => {
161
166
  const input = params;
162
- const value = { handoff: { observations: input.observations, results: input.results, nextSteps: input.nextSteps, ...(input.blocker ? { blocker: input.blocker } : {}) }, mail: [], nextWakeAt: validateNextWakeAt(input.nextWakeAt, wakeStartedAt) };
167
+ const value = { handoff: { observations: input.observations, results: input.results, nextSteps: input.nextSteps, ...(input.blocker ? { blocker: input.blocker } : {}), ...(input.material === true ? { material: true } : {}) }, mail: [], nextWakeAt: validateNextWakeAt(input.nextWakeAt, wakeStartedAt) };
163
168
  handoff(value);
164
169
  return { content: [{ type: "text", text: "handoff recorded" }], details: value, terminate: true };
165
170
  },
166
171
  };
167
- const rpcTools = createRpcTools(rpc);
172
+ const rpcTools = createRpcTools(rpc, capabilities);
168
173
  const readTool = {
169
174
  name: "read_file", label: "Read file", description: "Read a UTF-8 file inside the local runner root.",
170
175
  parameters: Type.Object({ path: Type.String() }),
@@ -235,20 +240,28 @@ export function compactMessagesToTokenBudget(messages, retainTokens) {
235
240
  ...messages.slice(start),
236
241
  ];
237
242
  }
238
- function createRpcTools(rpc) {
243
+ function createRpcTools(rpc, allowed) {
239
244
  const tool = (name, description, method, parameters) => ({
240
245
  name, label: name, description, parameters,
241
246
  execute: async (_id, params) => { const result = await rpc(method, params); return { content: [{ type: "text", text: JSON.stringify(result) }], details: result }; },
242
247
  });
243
- return [
244
- tool("ledger_search", "Search durable ledger facts.", "ledger.search", Type.Object({ query: Type.String(), limit: Type.Optional(Type.Number()) })),
245
- tool("send_mail", "Send a durable message to another agent or human.", "mail.send", Type.Object({ to: Type.String(), level: Type.Union([Type.Literal("fyi"), Type.Literal("decision"), Type.Literal("emergency")]), body: Type.Any() })),
246
- tool("schedule_wake", "Schedule this agent's next wake.", "schedule.set", Type.Object({ at: Type.String(), reason: Type.String() })),
247
- tool("submit_action", "Submit a gated external action with evidence.", "action.submit", Type.Object({ id: Type.String(), kind: Type.String(), connector: Type.String(), payload: Type.Any(), reason: Type.String(), evidence: Type.Array(Type.Number()) })),
248
- tool("ack_audit_advice", "Acknowledge audit advice after incorporating it.", "audit.ack", Type.Object({ actionId: Type.String() })),
249
- tool("write_audit_advice", "Write audit advice for an action.", "audit.write", Type.Object({ actionId: Type.String(), body: Type.Any(), evidence: Type.Array(Type.Number()) })),
250
- tool("put_goal", "Create or update a goal using parent-layer authority.", "goal.put", Type.Object({ goal: Type.Any() })),
248
+ const definitions = [
249
+ ["ledger.search", tool("ledger_search", "Search durable ledger facts.", "ledger.search", Type.Object({ query: Type.String(), limit: Type.Optional(Type.Number()) }))],
250
+ ["mail.send", tool("send_mail", "Send a durable message to another agent or human.", "mail.send", Type.Object({ to: Type.String(), level: Type.Union([Type.Literal("fyi"), Type.Literal("decision"), Type.Literal("emergency")]), body: Type.Any() }))],
251
+ ["schedule.set", tool("schedule_wake", "Schedule this agent's next wake.", "schedule.set", Type.Object({ at: Type.String(), reason: Type.String() }))],
252
+ ["action.submit", tool("submit_action", "Submit a gated external action with evidence.", "action.submit", Type.Object({ id: Type.String(), kind: Type.String(), connector: Type.String(), payload: Type.Any(), reason: Type.String(), evidence: Type.Array(Type.Number()) }))],
253
+ ["audit.ack", tool("ack_audit_advice", "Acknowledge audit advice after incorporating it.", "audit.ack", Type.Object({ actionId: Type.String() }))],
254
+ ["audit.write", tool("write_audit_advice", "Write audit advice for an action.", "audit.write", Type.Object({ actionId: Type.String(), body: Type.Any(), evidence: Type.Array(Type.Number()) }))],
255
+ ["team.list", tool("team_list", "Read the ledger-derived team roster and liveness state.", "team.list", Type.Object({}))],
256
+ ["goal.delegate", tool("delegate_goal", "Atomically create a child goal, send its decision brief, and queue its owner.", "goal.delegate", Type.Object({ id: Type.String(), parentGoalId: Type.String(), childGoal: Type.Object({ id: Type.String(), objective: Type.String(), owner: Type.String() }), brief: Type.Any(), reason: Type.String(), evidence: Type.Array(Type.Number()) }))],
257
+ ["goal.reassign", tool("reassign_goal", "Atomically transfer a child goal, notify both owners, and queue the new owner.", "goal.reassign", Type.Object({ id: Type.String(), goalId: Type.String(), newOwner: Type.String(), brief: Type.Any(), reason: Type.String(), evidence: Type.Array(Type.Number()) }))],
258
+ ["goal.pause", tool("pause_goal", "Pause a child goal and suppress queued motion.", "goal.pause", Type.Object({ goalId: Type.String() }))],
259
+ ["goal.resume", tool("resume_goal", "Resume a child goal and ensure its owner is queued.", "goal.resume", Type.Object({ goalId: Type.String() }))],
260
+ ["goal.complete", tool("complete_goal", "Complete a child goal. Root completion remains human authority.", "goal.complete", Type.Object({ goalId: Type.String() }))],
261
+ ["human.request", tool("request_human", "Ask the human for a decision or recommend root completion with evidence.", "human.request", Type.Object({ type: Type.Union([Type.Literal("decision"), Type.Literal("completion_recommendation")]), message: Type.Any(), evidence: Type.Array(Type.Number()) }))],
262
+ ["goal.put", tool("put_goal", "Create or update a goal using parent-layer authority.", "goal.put", Type.Object({ goal: Type.Any() }))],
251
263
  ];
264
+ return definitions.filter(([capability]) => !allowed || allowed.has(capability)).map(([, value]) => value);
252
265
  }
253
266
  function scoped(root, path) {
254
267
  const resolved = resolve(root, path);
@@ -1 +1 @@
1
- {"version":3,"file":"pi-worker.js","sourceRoot":"","sources":["../src/pi-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-worker.js","sourceRoot":"","sources":["../src/pi-worker.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "goah-runner-pi",
3
3
  "private": true,
4
- "version": "0.3.1",
4
+ "version": "0.4.0",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -23,6 +23,6 @@
23
23
  "dependencies": {
24
24
  "@earendil-works/pi-agent-core": "0.84.2",
25
25
  "@earendil-works/pi-ai": "0.84.2",
26
- "goah-ledger-contract": "0.3.1"
26
+ "goah-ledger-contract": "0.4.0"
27
27
  }
28
28
  }
@@ -1,12 +1,14 @@
1
- import type { ActionSnapshot, AgentRole, EventRecord, GoalSnapshot, MailSnapshot, WakeSnapshot } from "goah-ledger-contract";
1
+ import type { ActionSnapshot, AgentCapability, AgentRole, EventRecord, GoalSnapshot, MailSnapshot, TeamMemberView, WakeSnapshot } from "goah-ledger-contract";
2
2
  export interface ActiveContextView {
3
3
  role: AgentRole;
4
+ capabilities: AgentCapability[];
4
5
  systemPrompt: string;
5
6
  text: string;
6
7
  sourceSeqs: number[];
7
8
  }
8
9
  export interface ActiveContextInput {
9
10
  role: AgentRole;
11
+ capabilities: AgentCapability[];
10
12
  systemPrompt: string;
11
13
  wake: WakeSnapshot;
12
14
  goals: GoalSnapshot[];
@@ -14,6 +16,7 @@ export interface ActiveContextInput {
14
16
  actions: ActionSnapshot[];
15
17
  lastHandoff: EventRecord | null;
16
18
  teamHandoffs: EventRecord[];
19
+ team: TeamMemberView[];
17
20
  recoveryEvents: EventRecord[];
18
21
  }
19
22
  /** Keep recovery actionable and bounded; raw Session history remains queryable in the ledger. */
@@ -1 +1 @@
1
- {"version":3,"file":"context-view.d.ts","sourceRoot":"","sources":["../src/context-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAa,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAExI,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,cAAc,EAAE,WAAW,EAAE,CAAC;CAC/B;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAQzE;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CAyBjF"}
1
+ {"version":3,"file":"context-view.d.ts","sourceRoot":"","sources":["../src/context-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAa,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzK,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,cAAc,EAAE,WAAW,EAAE,CAAC;CAC/B;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAQzE;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CA0BjF"}
@@ -2,7 +2,7 @@
2
2
  export function selectRecoveryEvents(events) {
3
3
  const unknownCalls = new Set(events.filter((event) => event.type === "tool.completed" && field(field(event.data, "result"), "outcome") === "unknown").map((event) => String(field(event.data, "callId"))));
4
4
  return events.filter((event) => {
5
- if (["wake.abnormal_reason", "session.interrupted", "context.compacted"].includes(event.type))
5
+ if (["wake.abnormal_reason", "session.interrupted", "context.compacted", "ceo.motion_invalid"].includes(event.type))
6
6
  return true;
7
7
  if (event.type === "tool.called")
8
8
  return unknownCalls.has(String(field(event.data, "callId")));
@@ -35,11 +35,12 @@ export function composeActiveContext(input) {
35
35
  ["Next", lines(handoff?.nextSteps)],
36
36
  ["Incoming", input.mail.map((mail) => `- [${mail.level}] from ${mail.from}: ${render(mail.body)}`)],
37
37
  ["External actions", input.actions.filter((action) => !["confirmed", "failed"].includes(action.status)).map((action) => `- ${action.id}: ${action.kind} — ${action.status}`)],
38
+ ["Team motion", input.team.map((member) => `- ${member.agent}: ${member.status}; goals=${member.goalIds.join(",") || "none"}; next=${member.nextWakeAt ?? "none"}; handoff=${member.lastHandoffSeq ?? "none"}`)],
38
39
  ["Team handoffs", input.teamHandoffs.map((event) => `- ${event.actor}: ${render(event.data)} [event:${event.seq}]`)],
39
40
  ["Recovery", input.recoveryEvents.map((event) => `- ${event.type}: ${render(event.data)} [event:${event.seq}]`)],
40
41
  ];
41
42
  const text = sections.filter(([, values]) => values.length > 0).map(([title, values]) => `# ${title}\n\n${values.join("\n")}`).join("\n\n");
42
- return { role: input.role, systemPrompt: input.systemPrompt, text, sourceSeqs: [...sourceSeqs].sort((a, b) => a - b) };
43
+ return { role: input.role, capabilities: input.capabilities, systemPrompt: input.systemPrompt, text, sourceSeqs: [...sourceSeqs].sort((a, b) => a - b) };
43
44
  }
44
45
  function lines(value) { return Array.isArray(value) ? value.filter((item) => typeof item === "string").map((item) => `- ${item}`) : []; }
45
46
  function render(value) { return typeof value === "string" ? value : JSON.stringify(value); }
@@ -1 +1 @@
1
- {"version":3,"file":"context-view.js","sourceRoot":"","sources":["../src/context-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-view.js","sourceRoot":"","sources":["../src/context-view.ts"],"names":[],"mappings":"AAwBA,iGAAiG;AACjG,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3M,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjI,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;YAAE,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClG,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,oBAAoB,CAAC,KAAyB;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,IAAyG,CAAC;IAC7I,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,IAAI,KAAK,CAAC,WAAW;QAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,cAAc;QAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO;QAAE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ;YAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE3F,MAAM,QAAQ,GAA8B;QAC1C,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,YAAY,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrJ,CAAC,MAAM,EAAE,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,cAAc,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7H,CAAC,MAAM,EAAE;gBACP,GAAG,CAAC,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5F,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,MAAM,CAAC,EAAE,2DAA2D,CAAC;gBAClK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,WAAY,CAAC,IAAI,CAAC,EAAE,CAAC;aACvK,CAAC;QACF,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7K,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,UAAU,MAAM,CAAC,UAAU,IAAI,MAAM,aAAa,MAAM,CAAC,cAAc,IAAI,MAAM,EAAE,CAAC,CAAC;QAChN,CAAC,eAAe,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QACpH,CAAC,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;KACjH,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5I,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3J,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,IAAc,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5K,SAAS,MAAM,CAAC,KAAgB,IAAY,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/G,SAAS,KAAK,CAAC,KAAc,EAAE,GAAW,IAAa,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ActionSnapshot, type AgentProfile, type AuditAdvice, type Clock, type ConnectorProcessSpec, type GoalSnapshot, type Ledger, type MetricEvaluation, type MetricContract, type MetricProcessSpec, type MetricSample, type Runner, type WakeSnapshot } from "goah-ledger-contract";
1
+ import { type ActionSnapshot, type AgentProfile, type AuditAdvice, type Clock, type ConnectorProcessSpec, type DelegationRequest, type DelegationResult, type GoalSnapshot, type GoalPhase, type JsonValue, type Ledger, type MailSnapshot, type MetricEvaluation, type MetricContract, type MetricProcessSpec, type MetricSample, type ReassignmentRequest, type ReassignmentResult, type Runner, type TeamMemberView, type WakeSnapshot } from "goah-ledger-contract";
2
2
  export { composeActiveContext, selectRecoveryEvents, type ActiveContextInput, type ActiveContextView } from "./context-view.js";
3
3
  export interface SupervisorOptions {
4
4
  leaseMs?: number;
@@ -28,6 +28,19 @@ export declare class Supervisor {
28
28
  registerMetricContract(goalId: string, contract: MetricContract): void;
29
29
  registerMetricCollector(goalId: string, contract: MetricContract, spec: MetricProcessSpec, intervalMs?: number): void;
30
30
  createGoal(goal: GoalSnapshot, actor?: string): void;
31
+ startGoal(objective: string, id?: string): {
32
+ goal: GoalSnapshot;
33
+ wake: WakeSnapshot;
34
+ };
35
+ sendToCeo(body: JsonValue, level?: "fyi" | "decision" | "emergency"): {
36
+ mail: MailSnapshot;
37
+ wake: WakeSnapshot;
38
+ };
39
+ delegate(request: DelegationRequest, actor?: string, wakeId?: string): DelegationResult;
40
+ reassignGoal(request: ReassignmentRequest, actor?: string, wakeId?: string): ReassignmentResult;
41
+ teamList(now?: string): TeamMemberView[];
42
+ updateGoal(id: string, patch: Partial<Pick<GoalSnapshot, "objective" | "owner">>, actor?: string): GoalSnapshot;
43
+ transitionGoal(id: string, phase: GoalPhase, actor?: string): GoalSnapshot;
31
44
  planWake(agent: string, at: string, reason: string, setBy?: string): WakeSnapshot | null;
32
45
  recover(): Promise<void>;
33
46
  tick(): Promise<WakeSnapshot | null>;
@@ -48,6 +61,7 @@ export declare function runSupervisorDaemon(supervisor: Supervisor, options?: {
48
61
  signal?: AbortSignal;
49
62
  onError?: (error: unknown) => void;
50
63
  }): Promise<void>;
64
+ export declare function deriveTeam(ledger: Ledger, now?: string): TeamMemberView[];
51
65
  export declare function renderDashboard(ledger: Ledger): string;
52
66
  export * from "./verification.js";
53
67
  export * from "./roles.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export class Supervisor {
30
30
  this.#auditWriters = new Set(options.auditWriters ?? ["verifier", "audit"]);
31
31
  this.#heartbeatPolicies = options.heartbeatPolicies ?? [];
32
32
  this.#retryPolicy = options.retryPolicy ?? { maxAttempts: 0, baseDelayMs: 1_000 };
33
- this.#profiles = new Map((options.profiles ?? []).map((profile) => [profile.agent, profile]));
33
+ this.#profiles = new Map([["ceo", { agent: "ceo", role: "ceo" }], ...(options.profiles ?? []).map((profile) => [profile.agent, profile])]);
34
34
  this.#verifyMetricsAfterWake = options.verifyMetricsAfterWake ?? false;
35
35
  }
36
36
  registerConnector(connector) { this.#connectors.set(connector.manifest.connector, connector); }
@@ -40,6 +40,53 @@ export class Supervisor {
40
40
  this.#metricCollectors.set(goalId, { goalId, contract, spec, intervalMs, nextAt: 0 });
41
41
  }
42
42
  createGoal(goal, actor = "human") { this.ledger.putGoal(goal, actor); }
43
+ startGoal(objective, id = randomUUID()) {
44
+ if (!objective.trim())
45
+ throw new Error("root objective is required");
46
+ const goal = { id, parentId: null, objective, owner: "ceo", phase: "active", revision: 0 };
47
+ this.ledger.putGoal(goal, "human");
48
+ const wake = this.#enqueueTrigger("ceo", `root:${id}:created`);
49
+ if (!wake)
50
+ throw new Error("CEO wake was not admitted for an active root goal");
51
+ return { goal, wake };
52
+ }
53
+ sendToCeo(body, level = "decision") {
54
+ const mail = { id: randomUUID(), to: "ceo", from: "human", level, body, readAt: null };
55
+ this.ledger.putMail(mail, "human");
56
+ const wake = this.#enqueueTrigger("ceo", `mail:${mail.id}`);
57
+ if (!wake)
58
+ throw new Error("CEO wake was not admitted");
59
+ return { mail, wake };
60
+ }
61
+ delegate(request, actor = "ceo", wakeId) { return this.ledger.commitDelegation(request, actor, wakeId); }
62
+ reassignGoal(request, actor = "ceo", wakeId) { return this.ledger.commitReassignment(request, actor, wakeId); }
63
+ teamList(now = this.#now()) { return deriveTeam(this.ledger, now); }
64
+ updateGoal(id, patch, actor = "human") {
65
+ if (patch.objective === undefined && patch.owner === undefined)
66
+ throw new Error("goal update requires objective or owner");
67
+ const current = this.#goal(id);
68
+ const next = { ...current, ...patch, revision: current.revision + 1 };
69
+ this.ledger.putGoal(next, actor);
70
+ if (next.parentId === null && next.owner === "ceo" && actor === "human")
71
+ this.#enqueueTrigger("ceo", `root:${id}:revised:${next.revision}`);
72
+ return next;
73
+ }
74
+ transitionGoal(id, phase, actor = "human") {
75
+ const current = this.#goal(id);
76
+ if (current.phase === phase)
77
+ return current;
78
+ if (current.parentId === null && phase === "complete" && this.#hasNonCompleteDescendant(id))
79
+ throw new Error("root goal cannot complete while descendants remain non-complete");
80
+ const next = { ...current, phase, revision: current.revision + 1 };
81
+ this.ledger.putGoal(next, actor);
82
+ if (phase === "complete" || phase === "paused")
83
+ this.#suppressQueuedWake(next.owner, `goal:${id}:${phase}`);
84
+ if (phase === "active")
85
+ this.#enqueueTrigger(next.owner, `${next.parentId ? "goal" : "root"}:${id}:resumed:${next.revision}`);
86
+ if (next.parentId && actor !== "ceo" && (phase === "complete" || phase === "blocked"))
87
+ this.#enqueueTrigger("ceo", `goal:${id}:${phase}:${next.revision}`);
88
+ return next;
89
+ }
43
90
  planWake(agent, at, reason, setBy = agent) {
44
91
  const schedule = { id: `schedule:${agent}`, agent, nextWakeAt: at, reason, setBy };
45
92
  this.ledger.putSchedule(schedule, setBy);
@@ -93,12 +140,16 @@ export class Supervisor {
93
140
  await this.#markAbnormal(running, result.reason);
94
141
  return this.#wake(running.id);
95
142
  }
143
+ this.#validateCeoHandoff(running, result.output);
96
144
  const outgoingMail = result.output.mail.map((draft) => ({ id: randomUUID(), to: draft.to, from: running.agent, level: draft.level, body: draft.body, readAt: null }));
97
145
  const schedule = result.output.nextWakeAt
98
146
  ? { id: `schedule:${running.agent}`, agent: running.agent, nextWakeAt: result.output.nextWakeAt, reason: "handoff.next_steps", setBy: running.agent }
99
147
  : null;
100
- this.ledger.commitHandoff({ agent: running.agent, wakeId: running.id, ts: this.#now(), output: result.output, outgoingMail, schedule });
148
+ const handoffEvent = this.ledger.commitHandoff({ agent: running.agent, wakeId: running.id, ts: this.#now(), output: result.output, outgoingMail, schedule });
101
149
  this.ledger.finishWake(running.id, "done", this.#now());
150
+ if (this.#role(running.agent) !== "ceo" && (result.output.handoff.material || result.output.handoff.blocker) && this.#hasActiveRoot()) {
151
+ this.#enqueueTrigger("ceo", `child-handoff:${handoffEvent.seq}`);
152
+ }
102
153
  if (this.#verifyMetricsAfterWake) {
103
154
  for (const goal of this.ledger.goalsForOwner(running.agent))
104
155
  if (this.#metricCollectors.has(goal.id))
@@ -245,6 +296,9 @@ export class Supervisor {
245
296
  const schedule = { id: `retry:${current.id}`, agent: current.agent, nextWakeAt: new Date(this.clock.now().getTime() + delay).toISOString(), reason: `recovery:${current.id}`, setBy: "supervisor" };
246
297
  this.ledger.putSchedule(schedule, "supervisor", current.id);
247
298
  }
299
+ else if (current.agent !== "ceo" && this.#hasActiveRoot()) {
300
+ this.#enqueueTrigger("ceo", `child-retry-exhausted:${current.id}`);
301
+ }
248
302
  }
249
303
  }
250
304
  #enqueueSchedule(schedule) {
@@ -254,6 +308,10 @@ export class Supervisor {
254
308
  const exact = this.ledger.wakeByTrigger(agent, triggerRef);
255
309
  if (exact)
256
310
  return exact;
311
+ const ownsLiveGoal = this.ledger.goalsForOwner(agent).some((goal) => goal.phase === "active" || goal.phase === "blocked");
312
+ const ceoInterrupt = agent === "ceo" && (triggerRef.startsWith("mail:") || triggerRef.startsWith("heartbeat:") || triggerRef.startsWith("child-"));
313
+ if (!ownsLiveGoal && !ceoInterrupt)
314
+ return null;
257
315
  const queued = this.ledger.queuedWakeForAgent(agent);
258
316
  if (queued) {
259
317
  this.ledger.appendEvent({ streamId: wakeStream(queued.id), ts: this.#now(), actor: "supervisor", type: "wake.trigger_coalesced", data: { wakeId: queued.id, triggerRef } });
@@ -268,8 +326,52 @@ export class Supervisor {
268
326
  throw new Error("deduplicated wake is missing");
269
327
  return existing;
270
328
  }
329
+ #suppressQueuedWake(agent, reason) {
330
+ const wake = this.ledger.queuedWakeForAgent(agent);
331
+ if (!wake)
332
+ return;
333
+ this.ledger.appendEvent({ streamId: wakeStream(wake.id), ts: this.#now(), actor: "supervisor", type: "wake.suppressed", data: { reason } });
334
+ this.ledger.finishWake(wake.id, "abnormal", this.#now());
335
+ }
336
+ #hasActiveRoot() { return this.ledger.goals().some((goal) => goal.parentId === null && goal.owner === "ceo" && goal.phase === "active"); }
337
+ #hasNonCompleteDescendant(rootId) {
338
+ const goals = this.ledger.goals();
339
+ const descendants = new Set([rootId]);
340
+ let changed = true;
341
+ while (changed) {
342
+ changed = false;
343
+ for (const goal of goals)
344
+ if (goal.parentId && descendants.has(goal.parentId) && !descendants.has(goal.id)) {
345
+ descendants.add(goal.id);
346
+ changed = true;
347
+ }
348
+ }
349
+ return goals.some((goal) => goal.id !== rootId && descendants.has(goal.id) && goal.phase !== "complete");
350
+ }
351
+ #role(agent) { return this.#profiles.get(agent)?.role ?? "child"; }
352
+ #validateCeoHandoff(wake, output) {
353
+ if (this.#role(wake.agent) !== "ceo")
354
+ return;
355
+ const idle = this.teamList().filter((member) => member.agent !== "ceo" && member.status === "idle_unplanned");
356
+ const activeRoot = this.#hasActiveRoot();
357
+ const hasChildMotion = this.teamList().some((member) => member.agent !== "ceo" && !["idle_unplanned", "retired"].includes(member.status));
358
+ const hasReview = Boolean(output.nextWakeAt);
359
+ const hasBlocker = Boolean(output.handoff.blocker);
360
+ const asksHuman = output.mail.some((mail) => mail.to === "human" && (mail.level === "decision" || mail.level === "emergency"))
361
+ || this.ledger.unreadMail("human").some((mail) => mail.from === "ceo" && (mail.level === "decision" || mail.level === "emergency"));
362
+ if (idle.length === 0 && (!activeRoot || hasChildMotion || hasReview || hasBlocker || asksHuman))
363
+ return;
364
+ const violation = {
365
+ idleAgents: idle.map((member) => member.agent),
366
+ reason: idle.length ? "active child goal has no liveness route" : "active root has no motion, review, wait, blocker, or human request",
367
+ };
368
+ this.ledger.appendEvent({ streamId: wakeStream(wake.id), ts: this.#now(), actor: "supervisor", type: "ceo.motion_invalid", data: violation });
369
+ throw new Error(`CEO motion invalid: ${violation.reason}${violation.idleAgents.length ? ` (${violation.idleAgents.join(", ")})` : ""}`);
370
+ }
271
371
  #loadContext(wake) {
272
- const role = this.#profiles.get(wake.agent)?.role ?? "child";
372
+ const profile = this.#profiles.get(wake.agent) ?? { agent: wake.agent, role: "child" };
373
+ const role = profile.role;
374
+ const capabilities = profile.capabilities ?? defaultCapabilities(role);
273
375
  const goals = role === "ceo" ? this.ledger.goals() : this.ledger.goalsForOwner(wake.agent);
274
376
  const mail = this.ledger.unreadMail(wake.agent);
275
377
  const handoff = this.ledger.lastEvent(wake.agent, "handoff.recorded");
@@ -281,7 +383,7 @@ export class Supervisor {
281
383
  ? [...this.ledger.eventsSince(0, ["handoff.recorded"])].reverse().filter((event, index, all) => all.findIndex((candidate) => candidate.actor === event.actor) === index)
282
384
  : [];
283
385
  const actions = this.ledger.actions().filter((action) => action.agent === wake.agent && (action.status === "unknown" || Boolean(action.auditAdvice && !action.adviceAcked)));
284
- return composeActiveContext({ role, systemPrompt: this.#profiles.get(wake.agent)?.systemPrompt ?? defaultRolePrompt(role), wake, goals, mail, actions, lastHandoff: handoff, teamHandoffs, recoveryEvents });
386
+ return composeActiveContext({ role, capabilities, systemPrompt: profile.systemPrompt ?? defaultRolePrompt(role), wake, goals, mail, actions, lastHandoff: handoff, teamHandoffs, team: role === "ceo" ? this.teamList() : [], recoveryEvents });
285
387
  }
286
388
  #requiredConnector(name) { const value = this.#connectors.get(name); if (!value)
287
389
  throw new Error(`connector not registered: ${name}`); return value; }
@@ -289,6 +391,8 @@ export class Supervisor {
289
391
  throw new Error(`wake not found: ${id}`); return value; }
290
392
  #action(id) { const value = this.ledger.action(id); if (!value)
291
393
  throw new Error(`action not found: ${id}`); return value; }
394
+ #goal(id) { const value = this.ledger.goal(id); if (!value)
395
+ throw new Error(`goal not found: ${id}`); return value; }
292
396
  #now() { return this.clock.now().toISOString(); }
293
397
  async #agentRpc(wake, leaseToken, method, params) {
294
398
  const current = this.ledger.wake(wake.id);
@@ -302,6 +406,40 @@ export class Supervisor {
302
406
  const input = asRecord(params);
303
407
  if (method === "ledger.search")
304
408
  return this.ledger.searchEvents(String(input.query), Number(input.limit ?? 20));
409
+ if (method === "team.list")
410
+ return this.teamList();
411
+ if (method === "goal.delegate")
412
+ return this.delegate({
413
+ id: String(input.id),
414
+ parentGoalId: String(input.parentGoalId),
415
+ childGoal: asChildGoal(input.childGoal),
416
+ brief: (input.brief ?? null),
417
+ reason: String(input.reason),
418
+ evidence: numberArray(input.evidence),
419
+ }, wake.agent, wake.id);
420
+ if (method === "goal.reassign")
421
+ return this.reassignGoal({
422
+ id: String(input.id),
423
+ goalId: String(input.goalId),
424
+ newOwner: String(input.newOwner),
425
+ brief: (input.brief ?? null),
426
+ reason: String(input.reason),
427
+ evidence: numberArray(input.evidence),
428
+ }, wake.agent, wake.id);
429
+ if (method === "goal.pause" || method === "goal.resume" || method === "goal.complete") {
430
+ const phase = method === "goal.pause" ? "paused" : method === "goal.resume" ? "active" : "complete";
431
+ return this.transitionGoal(String(input.goalId), phase, wake.agent);
432
+ }
433
+ if (method === "human.request") {
434
+ const evidence = numberArray(input.evidence);
435
+ for (const seq of evidence)
436
+ if (!this.ledger.eventsSince(seq - 1).some((event) => event.seq === seq))
437
+ throw new Error(`evidence event does not exist: ${seq}`);
438
+ const mail = { id: randomUUID(), to: "human", from: wake.agent, level: "decision", body: { type: String(input.type ?? "decision"), message: input.message ?? null, evidence }, readAt: null };
439
+ this.ledger.putMail(mail, wake.agent, wake.id);
440
+ this.ledger.appendRunnerEvent({ streamId: wakeStream(wake.id), ts: this.#now(), actor: wake.agent, type: "ceo.human_requested", data: mail.body }, leaseToken);
441
+ return mail;
442
+ }
305
443
  if (method === "mail.send") {
306
444
  const mail = { id: randomUUID(), to: String(input.to), from: wake.agent, level: String(input.level), body: (input.body ?? null), readAt: null };
307
445
  this.ledger.putMail(mail, wake.agent, wake.id);
@@ -371,9 +509,43 @@ export async function runSupervisorDaemon(supervisor, options = {}) {
371
509
  });
372
510
  }
373
511
  }
512
+ export function deriveTeam(ledger, now = new Date().toISOString()) {
513
+ const goals = ledger.goals();
514
+ const wakes = ledger.wakes();
515
+ const schedules = ledger.schedules();
516
+ const handoffs = ledger.eventsSince(0, ["handoff.recorded"]);
517
+ const owners = [...new Set(goals.map((goal) => goal.owner))].sort();
518
+ return owners.map((agent) => {
519
+ const owned = goals.filter((goal) => goal.owner === agent);
520
+ const live = owned.filter((goal) => goal.phase !== "complete");
521
+ const agentWakes = wakes.filter((wake) => wake.agent === agent).sort((a, b) => b.enqueuedSeq - a.enqueuedSeq);
522
+ const activeWake = agentWakes.find((wake) => ["running", "leased", "queued"].includes(wake.status));
523
+ const nextWakeAt = schedules.filter((schedule) => schedule.agent === agent && schedule.nextWakeAt > now).map((schedule) => schedule.nextWakeAt).sort()[0] ?? null;
524
+ const lastHandoff = [...handoffs].reverse().find((event) => event.actor === agent) ?? null;
525
+ const blocker = lastHandoff && typeof lastHandoff.data === "object" && lastHandoff.data !== null && !Array.isArray(lastHandoff.data)
526
+ ? lastHandoff.data.blocker
527
+ : null;
528
+ let status;
529
+ if (live.length === 0)
530
+ status = "retired";
531
+ else if (activeWake?.status === "running")
532
+ status = "running";
533
+ else if (activeWake)
534
+ status = "queued";
535
+ else if (nextWakeAt)
536
+ status = "scheduled";
537
+ else if (live.every((goal) => goal.phase === "blocked"))
538
+ status = "blocked";
539
+ else if (live.every((goal) => goal.phase === "paused") || typeof blocker === "string" && blocker.length > 0)
540
+ status = "waiting";
541
+ else
542
+ status = "idle_unplanned";
543
+ return { agent, goalIds: owned.map((goal) => goal.id), status, lastHandoffSeq: lastHandoff?.seq ?? null, lastWakeStatus: agentWakes[0]?.status ?? null, nextWakeAt };
544
+ });
545
+ }
374
546
  export function renderDashboard(ledger) {
375
547
  const rows = (values) => values.map((value) => `<tr><td><pre>${escapeHtml(JSON.stringify(value, null, 2))}</pre></td></tr>`).join("");
376
- return `<!doctype html><html><head><meta charset="utf-8"><title>goah status</title><style>body{font:14px ui-monospace;margin:32px;background:#101418;color:#dce3e4}section{margin:32px 0}pre{white-space:pre-wrap;border:1px solid #334;padding:12px}</style></head><body><h1>goah</h1><p>seq ${ledger.events().at(-1)?.seq ?? 0}</p><section><h2>Goals</h2><table>${rows(ledger.goals())}</table></section><section><h2>Wakes</h2><table>${rows(ledger.wakes())}</table></section><section><h2>Actions</h2><table>${rows(ledger.actions())}</table></section><section><h2>Mailbox</h2><table>${rows(ledger.mailbox())}</table></section></body></html>`;
548
+ return `<!doctype html><html><head><meta charset="utf-8"><title>goah status</title><style>body{font:14px ui-monospace;margin:32px;background:#101418;color:#dce3e4}section{margin:32px 0}pre{white-space:pre-wrap;border:1px solid #334;padding:12px}</style></head><body><h1>goah</h1><p>seq ${ledger.events().at(-1)?.seq ?? 0}</p><section><h2>Team</h2><table>${rows(deriveTeam(ledger))}</table></section><section><h2>Goals</h2><table>${rows(ledger.goals())}</table></section><section><h2>Wakes</h2><table>${rows(ledger.wakes())}</table></section><section><h2>Actions</h2><table>${rows(ledger.actions())}</table></section><section><h2>Mailbox</h2><table>${rows(ledger.mailbox())}</table></section></body></html>`;
377
549
  }
378
550
  async function runConnector(spec, operation, action) {
379
551
  return runJsonProcess(spec, { operation, action });
@@ -422,9 +594,13 @@ function asRecord(value) { if (typeof value !== "object" || value === null || Ar
422
594
  throw new Error("RPC params must be an object"); return value; }
423
595
  function numberArray(value) { if (!Array.isArray(value) || value.some((item) => typeof item !== "number"))
424
596
  throw new Error("RPC evidence must be a number array"); return value; }
597
+ function asChildGoal(value) {
598
+ const input = asRecord(value ?? null);
599
+ return { id: String(input.id), objective: String(input.objective), owner: String(input.owner) };
600
+ }
425
601
  function defaultCapabilities(role) {
426
602
  if (role === "ceo")
427
- return ["ledger.search", "mail.send", "schedule.set", "action.submit", "audit.ack", "goal.put"];
603
+ return ["ledger.search", "mail.send", "schedule.set", "action.submit", "audit.ack", "team.list", "goal.delegate", "goal.reassign", "goal.pause", "goal.resume", "goal.complete", "human.request"];
428
604
  if (role === "verifier")
429
605
  return ["ledger.search", "mail.send", "audit.write"];
430
606
  if (role === "audit")