@united-workforce/cli 0.6.0 → 0.7.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 (80) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -1
  3. package/dist/__tests__/agent-resolution-llm-free.test.js +9 -2
  4. package/dist/__tests__/agent-resolution-llm-free.test.js.map +1 -1
  5. package/dist/__tests__/broker-prompt.test.d.ts +10 -0
  6. package/dist/__tests__/broker-prompt.test.d.ts.map +1 -0
  7. package/dist/__tests__/broker-prompt.test.js +129 -0
  8. package/dist/__tests__/broker-prompt.test.js.map +1 -0
  9. package/dist/__tests__/config.test.js +33 -37
  10. package/dist/__tests__/config.test.js.map +1 -1
  11. package/dist/__tests__/e2e-broker-step.test.d.ts +13 -0
  12. package/dist/__tests__/e2e-broker-step.test.d.ts.map +1 -0
  13. package/dist/__tests__/e2e-broker-step.test.js +278 -0
  14. package/dist/__tests__/e2e-broker-step.test.js.map +1 -0
  15. package/dist/__tests__/e2e-mock-agent.test.js +1 -1
  16. package/dist/__tests__/e2e-mock-agent.test.js.map +1 -1
  17. package/dist/__tests__/setup-agent-discovery.test.js +17 -5
  18. package/dist/__tests__/setup-agent-discovery.test.js.map +1 -1
  19. package/dist/__tests__/setup-no-llm.test.js +5 -2
  20. package/dist/__tests__/setup-no-llm.test.js.map +1 -1
  21. package/dist/__tests__/step-ask.test.js +9 -6
  22. package/dist/__tests__/step-ask.test.js.map +1 -1
  23. package/dist/__tests__/thread-agent-failure-suspended.test.js +3 -3
  24. package/dist/__tests__/thread-agent-failure-suspended.test.js.map +1 -1
  25. package/dist/__tests__/thread-poke.test.js +6 -6
  26. package/dist/__tests__/thread-poke.test.js.map +1 -1
  27. package/dist/__tests__/thread-resume.test.js +2 -2
  28. package/dist/__tests__/thread-resume.test.js.map +1 -1
  29. package/dist/__tests__/thread-suspend-step.test.js +1 -1
  30. package/dist/__tests__/thread-suspend-step.test.js.map +1 -1
  31. package/dist/commands/broker-step.d.ts +110 -0
  32. package/dist/commands/broker-step.d.ts.map +1 -0
  33. package/dist/commands/broker-step.js +450 -0
  34. package/dist/commands/broker-step.js.map +1 -0
  35. package/dist/commands/config.d.ts.map +1 -1
  36. package/dist/commands/config.js +2 -23
  37. package/dist/commands/config.js.map +1 -1
  38. package/dist/commands/prompt.js +3 -3
  39. package/dist/commands/setup.d.ts.map +1 -1
  40. package/dist/commands/setup.js +8 -1
  41. package/dist/commands/setup.js.map +1 -1
  42. package/dist/commands/step.d.ts +6 -5
  43. package/dist/commands/step.d.ts.map +1 -1
  44. package/dist/commands/step.js +11 -154
  45. package/dist/commands/step.js.map +1 -1
  46. package/dist/commands/thread.d.ts +4 -0
  47. package/dist/commands/thread.d.ts.map +1 -1
  48. package/dist/commands/thread.js +77 -151
  49. package/dist/commands/thread.js.map +1 -1
  50. package/package.json +12 -11
  51. package/src/__tests__/agent-resolution-llm-free.test.ts +14 -2
  52. package/src/__tests__/broker-prompt.test.ts +142 -0
  53. package/src/__tests__/config.test.ts +35 -39
  54. package/src/__tests__/e2e-broker-step.test.ts +320 -0
  55. package/src/__tests__/e2e-mock-agent.test.ts +1 -1
  56. package/src/__tests__/setup-agent-discovery.test.ts +17 -5
  57. package/src/__tests__/setup-no-llm.test.ts +5 -2
  58. package/src/__tests__/step-ask.test.ts +9 -6
  59. package/src/__tests__/thread-agent-failure-suspended.test.ts +3 -3
  60. package/src/__tests__/thread-poke.test.ts +6 -6
  61. package/src/__tests__/thread-resume.test.ts +2 -2
  62. package/src/__tests__/thread-suspend-step.test.ts +1 -1
  63. package/src/cli.ts +0 -0
  64. package/src/commands/broker-step.ts +636 -0
  65. package/src/commands/config.ts +2 -24
  66. package/src/commands/prompt.ts +3 -3
  67. package/src/commands/setup.ts +9 -1
  68. package/src/commands/step.ts +21 -204
  69. package/src/commands/thread.ts +87 -192
  70. package/dist/.build-fingerprint +0 -1
  71. package/dist/__tests__/adapter-json-roundtrip.test.d.ts +0 -2
  72. package/dist/__tests__/adapter-json-roundtrip.test.d.ts.map +0 -1
  73. package/dist/__tests__/adapter-json-roundtrip.test.js +0 -160
  74. package/dist/__tests__/adapter-json-roundtrip.test.js.map +0 -1
  75. package/dist/__tests__/spawn-agent-json.test.d.ts +0 -2
  76. package/dist/__tests__/spawn-agent-json.test.d.ts.map +0 -1
  77. package/dist/__tests__/spawn-agent-json.test.js +0 -79
  78. package/dist/__tests__/spawn-agent-json.test.js.map +0 -1
  79. package/src/__tests__/adapter-json-roundtrip.test.ts +0 -193
  80. package/src/__tests__/spawn-agent-json.test.ts +0 -100
@@ -0,0 +1,450 @@
1
+ /**
2
+ * Broker-driven step execution. Replaces the legacy `spawnAgent` /
3
+ * `executeAgentCommand` / last-stdout-line JSON parsing path with
4
+ * `broker.send()` over the Sumeru HTTP API.
5
+ *
6
+ * Phase 3 (#380) — `cmdThreadStepOnce`, `cmdThreadResume`, and `cmdThreadPoke`
7
+ * use this module instead of spawning per-role CLI binaries.
8
+ */
9
+ import { join } from "node:path";
10
+ import { putSchema, validate } from "@ocas/core";
11
+ import { createBroker, createSessionStore, } from "@united-workforce/broker";
12
+ import { createLogger } from "@united-workforce/util";
13
+ import { buildContinuationPrompt, buildFrontmatterRetryPrompt, buildOutputFormatInstruction, buildRolePrompt, buildThreadProgress, mergeUsage, tryFrontmatterFastPath, trySuspendFastPath, } from "@united-workforce/util-agent";
14
+ import { expandOutput, fail } from "./shared.js";
15
+ const log = createLogger({ sink: { kind: "stderr" } });
16
+ /** Tag for broker.send call site. */
17
+ const PL_BROKER_SEND = "BR0KR5ND";
18
+ /** Tag for frontmatter retry call sites. */
19
+ const PL_FRONTMATTER_RETRY = "F4RTM4RT";
20
+ /** Tag for frontmatter extraction failure. */
21
+ const PL_FRONTMATTER_FAIL = "F4FA1L7Z";
22
+ const MAX_FRONTMATTER_RETRIES = 2;
23
+ const TURN_SCHEMA = {
24
+ title: "broker-turn",
25
+ type: "object",
26
+ required: ["role", "content"],
27
+ properties: {
28
+ role: { type: "string", enum: ["assistant", "tool"] },
29
+ content: { type: "string" },
30
+ },
31
+ additionalProperties: false,
32
+ };
33
+ const DETAIL_SCHEMA = {
34
+ title: "broker-detail",
35
+ type: "object",
36
+ required: ["sessionId", "duration", "turnCount", "turns"],
37
+ properties: {
38
+ sessionId: { type: "string" },
39
+ duration: { type: "integer" },
40
+ turnCount: { type: "integer" },
41
+ turns: {
42
+ type: "array",
43
+ items: { type: "string", format: "ocas_ref" },
44
+ },
45
+ },
46
+ additionalProperties: false,
47
+ };
48
+ /**
49
+ * Parse `--agent` overrides under the new `{host, gateway}` shape.
50
+ *
51
+ * Accepts:
52
+ * - alias e.g. `hermes` → `config.agents.hermes`
53
+ * - inline e.g. `http://h:7900 gw` → `{host: "http://h:7900", gateway: "gw"}`
54
+ *
55
+ * Single-token forms that don't match an alias fail with the documented
56
+ * message; this fully replaces the legacy "treat anything as a binary path"
57
+ * behaviour.
58
+ */
59
+ export function parseAgentOverride(override) {
60
+ const trimmed = override.trim();
61
+ if (trimmed === "") {
62
+ fail("agent override must not be empty");
63
+ }
64
+ const parts = trimmed.split(/\s+/).filter((p) => p.length > 0);
65
+ if (parts.length !== 2) {
66
+ fail(`agent override must be an alias or "<host> <gateway>"`);
67
+ }
68
+ const host = parts[0];
69
+ const gateway = parts[1];
70
+ if (host === undefined || gateway === undefined) {
71
+ fail(`agent override must be an alias or "<host> <gateway>"`);
72
+ }
73
+ return { host, gateway };
74
+ }
75
+ /**
76
+ * Resolve the agent route for a (workflow, role, override) triple.
77
+ * Mirrors the legacy `resolveAgentConfig` precedence:
78
+ * --agent override > agentOverrides[workflow][role] > defaultAgent
79
+ * Override may be an alias or an inline `"<host> <gateway>"` form.
80
+ */
81
+ export function resolveAgentRoute(config, workflow, role, agentOverride, cwd) {
82
+ if (agentOverride !== null) {
83
+ const fromAlias = config.agents[agentOverride];
84
+ if (fromAlias !== undefined) {
85
+ return { host: fromAlias.host, gateway: fromAlias.gateway, cwd };
86
+ }
87
+ const parsed = parseAgentOverride(agentOverride);
88
+ return { host: parsed.host, gateway: parsed.gateway, cwd };
89
+ }
90
+ let alias = config.defaultAgent;
91
+ if (config.agentOverrides !== null) {
92
+ const roleOverrides = config.agentOverrides[workflow.name];
93
+ if (roleOverrides !== undefined && roleOverrides[role] !== undefined) {
94
+ alias = roleOverrides[role];
95
+ }
96
+ }
97
+ const agentConfig = config.agents[alias];
98
+ if (agentConfig === undefined) {
99
+ fail(`unknown agent alias in config: ${alias}`);
100
+ }
101
+ return { host: agentConfig.host, gateway: agentConfig.gateway, cwd };
102
+ }
103
+ /**
104
+ * Path to the broker session store DB under the storage root. Mirrors the
105
+ * default used by `createSessionStore` but anchored at the user's `UWF_HOME`
106
+ * so multi-process scripts share the same SQLite file.
107
+ */
108
+ export function brokerSessionStorePath(storageRoot) {
109
+ return join(storageRoot, "broker", "sessions.db");
110
+ }
111
+ /**
112
+ * Open (or create) the broker session store under `<storageRoot>/broker/sessions.db`.
113
+ * The caller is responsible for closing it.
114
+ */
115
+ export function openBrokerSessionStore(storageRoot) {
116
+ return createSessionStore({ dbPath: brokerSessionStorePath(storageRoot) });
117
+ }
118
+ /**
119
+ * Look up the role's frontmatter / output schema in CAS so we can drive
120
+ * `tryFrontmatterFastPath`. The workflow payload only carries the schema's
121
+ * CAS hash; the JSON Schema itself lives in CAS via `WorkflowAdd`.
122
+ */
123
+ function loadRoleSchemaHash(workflow, role) {
124
+ const roleDef = workflow.roles[role];
125
+ if (roleDef === undefined) {
126
+ fail(`unknown role "${role}" in workflow "${workflow.name}"`);
127
+ }
128
+ return roleDef.frontmatter;
129
+ }
130
+ /**
131
+ * Build the output-format instruction for a role from its frontmatter schema in
132
+ * CAS. Returns an empty string when the schema node is missing.
133
+ */
134
+ function loadOutputFormatInstruction(uwf, schemaHash) {
135
+ const node = uwf.store.cas.get(schemaHash);
136
+ if (node === null) {
137
+ return "";
138
+ }
139
+ return buildOutputFormatInstruction(node.payload);
140
+ }
141
+ /** Extract the last assistant turn's content from a detail node, or null. */
142
+ function extractStepContent(uwf, detailRef) {
143
+ const detailNode = uwf.store.cas.get(detailRef);
144
+ if (detailNode === null) {
145
+ return null;
146
+ }
147
+ const detail = detailNode.payload;
148
+ const turns = detail.turns;
149
+ if (!Array.isArray(turns) || turns.length === 0) {
150
+ return null;
151
+ }
152
+ for (let i = turns.length - 1; i >= 0; i--) {
153
+ const turnRef = turns[i];
154
+ if (typeof turnRef !== "string") {
155
+ continue;
156
+ }
157
+ const turnNode = uwf.store.cas.get(turnRef);
158
+ if (turnNode === null) {
159
+ continue;
160
+ }
161
+ const turn = turnNode.payload;
162
+ if (turn.role === "assistant" &&
163
+ typeof turn.content === "string" &&
164
+ turn.content.trim() !== "") {
165
+ return turn.content;
166
+ }
167
+ }
168
+ return null;
169
+ }
170
+ /**
171
+ * Walk the CAS step chain from `prevHash` back to the StartNode and return the
172
+ * steps in chronological order (oldest first) as StepContext records. Honors the
173
+ * caller-supplied `prev` pointer so poke replace-semantics (prev = old head's
174
+ * prev) produce the correct history. Mirrors the history assembly in
175
+ * util-agent's `buildContext`, but reuses the store the CLI already opened.
176
+ */
177
+ function collectStepContexts(uwf, prevHash) {
178
+ const newestFirst = [];
179
+ let hash = prevHash;
180
+ while (hash !== null) {
181
+ const node = uwf.store.cas.get(hash);
182
+ if (node === null || node.type !== uwf.schemas.stepNode) {
183
+ break;
184
+ }
185
+ const payload = node.payload;
186
+ newestFirst.push(payload);
187
+ hash = payload.prev;
188
+ }
189
+ const chronological = [...newestFirst].reverse();
190
+ return chronological.map((step) => ({
191
+ role: step.role,
192
+ output: expandOutput(uwf, step.output),
193
+ detail: step.detail,
194
+ agent: step.agent,
195
+ edgePrompt: step.edgePrompt ?? "",
196
+ startedAtMs: step.startedAtMs,
197
+ completedAtMs: step.completedAtMs,
198
+ cwd: step.cwd ?? "",
199
+ assembledPrompt: step.assembledPrompt ?? null,
200
+ usage: step.usage ?? null,
201
+ previousAttempts: step.previousAttempts ?? null,
202
+ content: extractStepContent(uwf, step.detail),
203
+ }));
204
+ }
205
+ /**
206
+ * Assemble the full agent prompt for a broker step. Combines the five
207
+ * components the legacy agent-CLI path produced (output-format instruction,
208
+ * thread progress, role prompt, task prompt, and continuation/edge context) so
209
+ * `broker.send()` receives the same context the spawned-agent path did.
210
+ *
211
+ * Mirrors `buildClaudeCodePrompt` from the agent-claude-code adapter.
212
+ */
213
+ export function assembleBrokerPrompt(args) {
214
+ const roleDef = args.workflow.roles[args.role];
215
+ const rolePrompt = roleDef !== undefined ? buildRolePrompt(roleDef) : "";
216
+ const isFirstVisit = !args.steps.some((s) => s.role === args.role);
217
+ const parts = [];
218
+ if (args.outputFormatInstruction !== "") {
219
+ parts.push(args.outputFormatInstruction, "");
220
+ }
221
+ // Inject thread progress so the agent knows step count and role visit count.
222
+ parts.push(buildThreadProgress(args.steps, args.role, args.threadId), "");
223
+ parts.push(rolePrompt, "", "## Task", args.startPrompt);
224
+ if (!isFirstVisit) {
225
+ // Re-entry (broker resumes the cached session): show only steps since the
226
+ // last visit, meta only.
227
+ parts.push("", buildContinuationPrompt(args.steps, args.role, args.edgePrompt));
228
+ }
229
+ else if (args.steps.length > 0) {
230
+ // First visit with prior history: show steps with content for recent ones.
231
+ parts.push("", buildContinuationPrompt(args.steps, args.role, args.edgePrompt, {
232
+ includeContent: true,
233
+ quota: 32000,
234
+ }));
235
+ }
236
+ else {
237
+ parts.push("", "## Current Instruction", "", args.edgePrompt);
238
+ }
239
+ return parts.join("\n");
240
+ }
241
+ /** Persist the raw broker.send output as a CAS detail node — single assistant turn. */
242
+ async function storeBrokerDetail(uwf, result, startedAtMs, completedAtMs) {
243
+ const turnSchemaHash = await putSchema(uwf.store, TURN_SCHEMA);
244
+ const detailSchemaHash = await putSchema(uwf.store, DETAIL_SCHEMA);
245
+ const turn = { role: "assistant", content: result.output };
246
+ const turnHash = await uwf.store.cas.put(turnSchemaHash, turn);
247
+ const detail = {
248
+ sessionId: result.sessionId,
249
+ duration: Math.max(0, completedAtMs - startedAtMs),
250
+ turnCount: 1,
251
+ turns: [turnHash],
252
+ };
253
+ return uwf.store.cas.put(detailSchemaHash, detail);
254
+ }
255
+ /** Persist a StepNode payload and verify it round-trips through schema validation. */
256
+ async function writeBrokerStepNode(args) {
257
+ const payload = {
258
+ start: args.startHash,
259
+ prev: args.prevHash,
260
+ role: args.role,
261
+ output: args.outputHash,
262
+ detail: args.detailHash,
263
+ agent: args.agentName,
264
+ edgePrompt: args.edgePrompt,
265
+ startedAtMs: args.startedAtMs,
266
+ completedAtMs: args.completedAtMs,
267
+ cwd: args.cwd,
268
+ assembledPrompt: args.assembledPromptHash,
269
+ usage: args.usage,
270
+ previousAttempts: args.previousAttempts,
271
+ };
272
+ const hash = await args.uwf.store.cas.put(args.uwf.schemas.stepNode, payload);
273
+ const node = args.uwf.store.cas.get(hash);
274
+ if (node === null || !validate(args.uwf.store, node)) {
275
+ fail("broker step persisted a StepNode that failed schema validation");
276
+ }
277
+ return hash;
278
+ }
279
+ async function tryExtract(uwf, rawOutput, outputSchema) {
280
+ // `$status: "$SUSPEND"` is a reserved coroutine yield — store it against the
281
+ // suspend schema, bypassing the role's own frontmatter schema.
282
+ const suspend = await trySuspendFastPath(rawOutput, uwf.schemas.suspendOutput, uwf.store);
283
+ if (suspend !== null) {
284
+ return { outputHash: suspend.outputHash, frontmatter: suspend.frontmatter, body: suspend.body };
285
+ }
286
+ const fastPath = await tryFrontmatterFastPath(rawOutput, outputSchema, uwf.store);
287
+ if (fastPath !== null) {
288
+ return {
289
+ outputHash: fastPath.outputHash,
290
+ frontmatter: fastPath.frontmatter,
291
+ body: fastPath.body,
292
+ };
293
+ }
294
+ return null;
295
+ }
296
+ /**
297
+ * Drive one moderator-resolved role through `broker.send()`, frontmatter
298
+ * extraction (with retries on the same Sumeru session), and StepNode
299
+ * persistence. Returns a `BrokerStepResult` shaped for the existing
300
+ * `executeAndProcessAgentStep` flow.
301
+ *
302
+ * Side effects:
303
+ * - inserts a row in the broker session store keyed by (threadId, role)
304
+ * - writes a turn / detail / StepNode triplet to CAS
305
+ * - on extraction failure, persists an error StepNode (isError=true)
306
+ */
307
+ export async function executeBrokerStep(args) {
308
+ const sessionStore = openBrokerSessionStore(args.storageRoot);
309
+ try {
310
+ const route = resolveAgentRoute(args.config, args.workflow, args.role, args.agentOverride, args.effectiveCwd === "" ? null : args.effectiveCwd);
311
+ const broker = createBroker({
312
+ sessionStore,
313
+ resolveRoute: () => route,
314
+ clientFactory: null,
315
+ });
316
+ args.plog.log(PL_BROKER_SEND, `broker.send role=${args.role} host=${route.host} gateway=${route.gateway}`, null);
317
+ // Assemble the full agent prompt (output-format instruction + thread
318
+ // progress + role prompt + task + continuation/edge context) so the broker
319
+ // path sends the same context the legacy spawned-agent path did, rather than
320
+ // the bare edge prompt.
321
+ const outputSchemaHash = loadRoleSchemaHash(args.workflow, args.role);
322
+ const outputFormatInstruction = loadOutputFormatInstruction(args.uwf, outputSchemaHash);
323
+ const startNode = args.uwf.store.cas.get(args.startHash);
324
+ const startPrompt = startNode !== null ? startNode.payload.prompt : "";
325
+ const steps = collectStepContexts(args.uwf, args.prevHash);
326
+ const assembledPrompt = assembleBrokerPrompt({
327
+ workflow: args.workflow,
328
+ role: args.role,
329
+ threadId: args.threadId,
330
+ startPrompt,
331
+ steps,
332
+ edgePrompt: args.edgePrompt,
333
+ outputFormatInstruction,
334
+ });
335
+ const assembledPromptHash = (await args.uwf.store.cas.put(args.uwf.schemas.text, assembledPrompt));
336
+ const startedAtMs = Date.now();
337
+ const primary = await broker.send({
338
+ threadId: args.threadId,
339
+ role: args.role,
340
+ prompt: assembledPrompt,
341
+ });
342
+ let extracted = await tryExtract(args.uwf, primary.output, outputSchemaHash);
343
+ let accumulatedUsage = brokerUsage(primary);
344
+ let lastOutput = primary.output;
345
+ let lastSessionId = primary.sessionId;
346
+ // Retry on the same (threadId, role) — the broker re-uses the cached
347
+ // Sumeru session, so the agent gets to "fix its frontmatter" with full
348
+ // context preserved.
349
+ for (let retry = 0; retry < MAX_FRONTMATTER_RETRIES && extracted === null; retry++) {
350
+ const correctionPrompt = buildFrontmatterRetryPrompt(outputFormatInstruction);
351
+ log(PL_FRONTMATTER_RETRY, `frontmatter retry ${retry + 1}/${MAX_FRONTMATTER_RETRIES} thread=${args.threadId} role=${args.role}`);
352
+ const retryResult = await broker.send({
353
+ threadId: args.threadId,
354
+ role: args.role,
355
+ prompt: correctionPrompt,
356
+ });
357
+ lastOutput = retryResult.output;
358
+ lastSessionId = retryResult.sessionId;
359
+ accumulatedUsage = mergeUsage(accumulatedUsage, brokerUsage(retryResult));
360
+ extracted = await tryExtract(args.uwf, lastOutput, outputSchemaHash);
361
+ }
362
+ const completedAtMs = Date.now();
363
+ const detailHash = await storeBrokerDetail(args.uwf, { ...primary, output: lastOutput, sessionId: lastSessionId }, startedAtMs, completedAtMs);
364
+ if (extracted === null) {
365
+ log(PL_FRONTMATTER_FAIL, `frontmatter extraction failed after ${MAX_FRONTMATTER_RETRIES} retries thread=${args.threadId} role=${args.role}`);
366
+ const errorMessage = "Agent output does not contain valid YAML frontmatter matching the role schema " +
367
+ `after ${MAX_FRONTMATTER_RETRIES} retries.\n` +
368
+ `Raw output (first 500 chars): ${lastOutput.slice(0, 500)}`;
369
+ const errorPayload = {
370
+ $status: "error",
371
+ error: errorMessage,
372
+ phase: "frontmatter_extraction",
373
+ };
374
+ const errorOutputHash = await args.uwf.store.cas.put(args.uwf.schemas.errorOutput, errorPayload);
375
+ const failedStepHash = await writeBrokerStepNode({
376
+ uwf: args.uwf,
377
+ startHash: args.startHash,
378
+ prevHash: args.prevHash,
379
+ role: args.role,
380
+ outputHash: errorOutputHash,
381
+ detailHash,
382
+ agentName: route.gateway,
383
+ edgePrompt: args.edgePrompt,
384
+ startedAtMs,
385
+ completedAtMs,
386
+ cwd: args.effectiveCwd,
387
+ assembledPromptHash,
388
+ usage: accumulatedUsage,
389
+ previousAttempts: null,
390
+ });
391
+ return {
392
+ stepHash: failedStepHash,
393
+ detailHash,
394
+ role: args.role,
395
+ frontmatter: { $status: "error" },
396
+ body: "",
397
+ startedAtMs,
398
+ completedAtMs,
399
+ usage: accumulatedUsage,
400
+ isError: true,
401
+ errorMessage,
402
+ };
403
+ }
404
+ const stepHash = await writeBrokerStepNode({
405
+ uwf: args.uwf,
406
+ startHash: args.startHash,
407
+ prevHash: args.prevHash,
408
+ role: args.role,
409
+ outputHash: extracted.outputHash,
410
+ detailHash,
411
+ agentName: route.gateway,
412
+ edgePrompt: args.edgePrompt,
413
+ startedAtMs,
414
+ completedAtMs,
415
+ cwd: args.effectiveCwd,
416
+ assembledPromptHash,
417
+ usage: accumulatedUsage,
418
+ previousAttempts: args.previousAttempts,
419
+ });
420
+ return {
421
+ stepHash,
422
+ detailHash,
423
+ role: args.role,
424
+ frontmatter: extracted.frontmatter,
425
+ body: extracted.body,
426
+ startedAtMs,
427
+ completedAtMs,
428
+ usage: accumulatedUsage,
429
+ isError: false,
430
+ errorMessage: null,
431
+ };
432
+ }
433
+ finally {
434
+ sessionStore.close();
435
+ }
436
+ }
437
+ function brokerUsage(result) {
438
+ // Sumeru's `done` event reports per-exchange usage. Normalize into the
439
+ // engine's Usage shape so `mergeUsage` can sum across retries.
440
+ const done = result.done;
441
+ if (done === null || typeof done !== "object") {
442
+ return null;
443
+ }
444
+ const turns = done.turnCount;
445
+ const inputTokens = done.tokens !== null ? done.tokens.in : 0;
446
+ const outputTokens = done.tokens !== null ? done.tokens.out : 0;
447
+ const duration = done.durationMs;
448
+ return { turns, inputTokens, outputTokens, duration };
449
+ }
450
+ //# sourceMappingURL=broker-step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker-step.js","sourceRoot":"","sources":["../../src/commands/broker-step.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAyEA;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAOpF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CASpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CA+BjG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEpF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWrF;AAkED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAuClB;AAYD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA0B/D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAyEA;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAOpF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CASpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CA+BjG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEpF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWrF;AA8CD;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAqClB;AAYD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA0B/D"}
@@ -10,7 +10,7 @@ import { parse, stringify } from "yaml";
10
10
  const VALID_CONFIG_KEYS = {
11
11
  agents: {
12
12
  nested: true,
13
- knownFields: ["command", "args"],
13
+ knownFields: ["host", "gateway"],
14
14
  },
15
15
  agentOverrides: {
16
16
  nested: true,
@@ -172,24 +172,6 @@ export async function cmdConfigGet(storageRoot, key) {
172
172
  }
173
173
  return value;
174
174
  }
175
- /**
176
- * Parse value for args key (must be JSON array)
177
- */
178
- function parseArgsValue(value) {
179
- if (value.startsWith("[")) {
180
- try {
181
- const parsed = JSON.parse(value);
182
- if (!Array.isArray(parsed)) {
183
- throw new Error("Value must be an array");
184
- }
185
- return parsed;
186
- }
187
- catch (error) {
188
- throw new Error(`Invalid JSON array for args key: ${error instanceof Error ? error.message : String(error)}`);
189
- }
190
- }
191
- throw new Error("Value for 'args' key must be a JSON array starting with '['");
192
- }
193
175
  /**
194
176
  * Parse value for a top-level string array key (must be JSON array of strings).
195
177
  */
@@ -242,14 +224,11 @@ export async function cmdConfigSet(storageRoot, key, value) {
242
224
  // Validate the key path
243
225
  validateConfigKey(path);
244
226
  const lastSegment = path[path.length - 1];
245
- // Parse value if it's for an array key (args, workflowPaths)
227
+ // Parse value if it's for an array key (workflowPaths)
246
228
  let parsedValue = value;
247
229
  if (path[0] === "workflowPaths") {
248
230
  parsedValue = parseStringArrayValue(value, "workflowPaths");
249
231
  }
250
- else if (lastSegment === "args") {
251
- parsedValue = parseArgsValue(value);
252
- }
253
232
  else if (lastSegment === "maxRunning") {
254
233
  const num = Number(value);
255
234
  if (!Number.isInteger(num) || num < 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAExC;;;;GAIG;AACH,MAAM,iBAAiB,GAGnB;IACF,MAAM,EAAE;QACN,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;KACjC;IACD,cAAc,EAAE;QACd,MAAM,EAAE,IAAI;QACZ,uEAAuE;QACvE,wDAAwD;KACzD;IACD,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;IAC/B,WAAW,EAAE;QACX,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,CAAC,YAAY,CAAC;QAC3B,QAAQ,EAAE,CAAC;KACZ;IACD,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;CACjC,CAAC;AAEF;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAc;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,+BAA+B,SAAS,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,oDAAoD,CAAC,CAAC;IACnF,CAAC;IAED,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,iCAAiC,QAAQ,mCAAmC,MAAM,EAAE,CACpH,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,QAAQ,QAAQ,uBAAuB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,OAAO,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,UAAkB;IAC3C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,MAA+B;IAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAA4B,EAAE,IAAc;IACzE,IAAI,OAAO,GAAY,GAAG,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAA4B,EAAE,IAAc,EAAE,KAAc;IACzF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,GAA4B,GAAG,CAAC;IAE3C,8CAA8C;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,6BAA6B;YAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YAC1B,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,gCAAgC;YAChC,OAAO,GAAG,IAA+B,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,4BAA4B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAA+B;IACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAA4B,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,GAAW;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,KAAa,EAAE,OAAe;IAC3D,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,IAAI,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,0BAA0B,OAAO,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,OAAO,0CAA0C,CAAC,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,MAA+B,EAC/B,IAAc,EACd,WAAmB;IAEnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CACb,wBAAwB,WAAW,4BAA4B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,GAAW,EACX,KAAa;IAEb,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAE9C,2CAA2C;IAC3C,IAAI,MAA+B,CAAC;IACpC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAE/B,wBAAwB;IACxB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAExB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1C,6DAA6D;IAC7D,IAAI,WAAW,GAAY,KAAK,CAAC;IACjC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;QAChC,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAClC,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,WAAW,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,wDAAwD;IACxD,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAE9C,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1C,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE/B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -147,15 +147,15 @@ Or configure non-interactively:
147
147
  uwf setup --agent <adapter-command>
148
148
  \`\`\`
149
149
 
150
- **Note:** \`--agent\` takes the adapter **command name** (e.g. \`uwf-hermes\`, \`uwf-claude-code\`), not the npm package name.
150
+ **Note:** \`--agent\` takes an alias declared in your \`agents\` map (e.g. \`hermes\`, \`claude-code\`) — **not** an adapter command name. Each alias resolves to a \`{host, gateway}\` Sumeru endpoint that the broker contacts over HTTP. \`uwf thread exec --agent\` additionally accepts an inline \`"<host> <gateway>"\` pair for ad-hoc routing.
151
151
 
152
152
  Config is saved to \`~/.uwf/config.yaml\`:
153
153
 
154
154
  \`\`\`yaml
155
155
  agents:
156
156
  hermes:
157
- command: uwf-hermes
158
- args: []
157
+ host: http://127.0.0.1:7900
158
+ gateway: hermes
159
159
  defaultAgent: hermes
160
160
  agentOverrides: {}
161
161
  \`\`\`
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKzD,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA2BF;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQxE;AA0BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWxD;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAQzD;AAkBD,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,yCAAyC;AACzC,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/C;AAcD,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,4CAA4C;AAC5C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAStD;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAoCjB;AA+BD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBrE;AAoBD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBrF;AAID;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8BhF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoB/F"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKzD,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA2BF;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQxE;AA0BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWxD;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAQzD;AAkBD,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,yCAAyC;AACzC,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/C;AAcD,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,4CAA4C;AAC5C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAStD;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAoCjB;AAuCD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBrE;AAoBD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBrF;AAID;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8BhF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoB/F"}
@@ -187,6 +187,13 @@ export async function _promptAgentSelection(rl) {
187
187
  return name;
188
188
  }
189
189
  // ──────────────────────────────────────────────────────────────────────────────
190
+ /**
191
+ * Default Sumeru host used when seeding a fresh agents.<alias> entry.
192
+ * Phase 3 (#380) breaking change — agents are routed through the broker via
193
+ * `host` + `gateway`, replacing the legacy `command` + `args` CLI binary
194
+ * path.
195
+ */
196
+ const DEFAULT_SUMERU_HOST = "http://127.0.0.1:7900";
190
197
  /**
191
198
  * Merge setup args into config.yaml structure. Non-destructive — preserves
192
199
  * existing entries (including agentOverrides). Engine config is LLM-free, so
@@ -198,7 +205,7 @@ function mergeConfig(existing, args) {
198
205
  : {});
199
206
  const agentName = _agentNameFromBinary(args.agent);
200
207
  if (!agents[agentName]) {
201
- agents[agentName] = { command: `uwf-${agentName}`, args: [] };
208
+ agents[agentName] = { host: DEFAULT_SUMERU_HOST, gateway: agentName };
202
209
  }
203
210
  const merged = {
204
211
  agents,