@united-workforce/cli 0.6.1 → 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 (78) hide show
  1. package/README.md +89 -1
  2. package/dist/__tests__/agent-resolution-llm-free.test.js +9 -2
  3. package/dist/__tests__/agent-resolution-llm-free.test.js.map +1 -1
  4. package/dist/__tests__/broker-prompt.test.d.ts +10 -0
  5. package/dist/__tests__/broker-prompt.test.d.ts.map +1 -0
  6. package/dist/__tests__/broker-prompt.test.js +129 -0
  7. package/dist/__tests__/broker-prompt.test.js.map +1 -0
  8. package/dist/__tests__/config.test.js +33 -37
  9. package/dist/__tests__/config.test.js.map +1 -1
  10. package/dist/__tests__/e2e-broker-step.test.d.ts +13 -0
  11. package/dist/__tests__/e2e-broker-step.test.d.ts.map +1 -0
  12. package/dist/__tests__/e2e-broker-step.test.js +278 -0
  13. package/dist/__tests__/e2e-broker-step.test.js.map +1 -0
  14. package/dist/__tests__/e2e-mock-agent.test.js +1 -1
  15. package/dist/__tests__/e2e-mock-agent.test.js.map +1 -1
  16. package/dist/__tests__/setup-agent-discovery.test.js +17 -5
  17. package/dist/__tests__/setup-agent-discovery.test.js.map +1 -1
  18. package/dist/__tests__/setup-no-llm.test.js +5 -2
  19. package/dist/__tests__/setup-no-llm.test.js.map +1 -1
  20. package/dist/__tests__/step-ask.test.js +9 -6
  21. package/dist/__tests__/step-ask.test.js.map +1 -1
  22. package/dist/__tests__/thread-agent-failure-suspended.test.js +3 -3
  23. package/dist/__tests__/thread-agent-failure-suspended.test.js.map +1 -1
  24. package/dist/__tests__/thread-poke.test.js +6 -6
  25. package/dist/__tests__/thread-poke.test.js.map +1 -1
  26. package/dist/__tests__/thread-resume.test.js +2 -2
  27. package/dist/__tests__/thread-resume.test.js.map +1 -1
  28. package/dist/__tests__/thread-suspend-step.test.js +1 -1
  29. package/dist/__tests__/thread-suspend-step.test.js.map +1 -1
  30. package/dist/commands/broker-step.d.ts +110 -0
  31. package/dist/commands/broker-step.d.ts.map +1 -0
  32. package/dist/commands/broker-step.js +450 -0
  33. package/dist/commands/broker-step.js.map +1 -0
  34. package/dist/commands/config.d.ts.map +1 -1
  35. package/dist/commands/config.js +2 -23
  36. package/dist/commands/config.js.map +1 -1
  37. package/dist/commands/prompt.js +3 -3
  38. package/dist/commands/setup.d.ts.map +1 -1
  39. package/dist/commands/setup.js +8 -1
  40. package/dist/commands/setup.js.map +1 -1
  41. package/dist/commands/step.d.ts +6 -5
  42. package/dist/commands/step.d.ts.map +1 -1
  43. package/dist/commands/step.js +11 -154
  44. package/dist/commands/step.js.map +1 -1
  45. package/dist/commands/thread.d.ts +4 -0
  46. package/dist/commands/thread.d.ts.map +1 -1
  47. package/dist/commands/thread.js +77 -151
  48. package/dist/commands/thread.js.map +1 -1
  49. package/package.json +5 -4
  50. package/src/__tests__/agent-resolution-llm-free.test.ts +14 -2
  51. package/src/__tests__/broker-prompt.test.ts +142 -0
  52. package/src/__tests__/config.test.ts +35 -39
  53. package/src/__tests__/e2e-broker-step.test.ts +320 -0
  54. package/src/__tests__/e2e-mock-agent.test.ts +1 -1
  55. package/src/__tests__/setup-agent-discovery.test.ts +17 -5
  56. package/src/__tests__/setup-no-llm.test.ts +5 -2
  57. package/src/__tests__/step-ask.test.ts +9 -6
  58. package/src/__tests__/thread-agent-failure-suspended.test.ts +3 -3
  59. package/src/__tests__/thread-poke.test.ts +6 -6
  60. package/src/__tests__/thread-resume.test.ts +2 -2
  61. package/src/__tests__/thread-suspend-step.test.ts +1 -1
  62. package/src/commands/broker-step.ts +636 -0
  63. package/src/commands/config.ts +2 -24
  64. package/src/commands/prompt.ts +3 -3
  65. package/src/commands/setup.ts +9 -1
  66. package/src/commands/step.ts +21 -204
  67. package/src/commands/thread.ts +87 -192
  68. package/dist/.build-fingerprint +0 -1
  69. package/dist/__tests__/adapter-json-roundtrip.test.d.ts +0 -2
  70. package/dist/__tests__/adapter-json-roundtrip.test.d.ts.map +0 -1
  71. package/dist/__tests__/adapter-json-roundtrip.test.js +0 -160
  72. package/dist/__tests__/adapter-json-roundtrip.test.js.map +0 -1
  73. package/dist/__tests__/spawn-agent-json.test.d.ts +0 -2
  74. package/dist/__tests__/spawn-agent-json.test.d.ts.map +0 -1
  75. package/dist/__tests__/spawn-agent-json.test.js +0 -79
  76. package/dist/__tests__/spawn-agent-json.test.js.map +0 -1
  77. package/src/__tests__/adapter-json-roundtrip.test.ts +0 -193
  78. package/src/__tests__/spawn-agent-json.test.ts +0 -100
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Overview
6
6
 
7
- Layer 4 entry point for the workflow engine. The `uwf` binary orchestrates one step per invocation: load thread head from `threads.yaml`, run the moderator, spawn the configured agent CLI, run extract, append a CAS step node, and update the head pointer (or archive when `$END`).
7
+ Layer 4 entry point for the workflow engine. The `uwf` binary orchestrates one step per invocation: load the thread head, run the moderator, dispatch the role to the configured agent **over the Sumeru HTTP API via the broker** (`broker.send()`), run frontmatter extraction on the agent's reply, append a CAS step node, and update the head pointer (or archive when `$END`). Agents are no longer spawned as CLI subprocesses — `~/.uwf/config.yaml` declares an `agents` map keyed by alias, where each entry resolves to a `{host, gateway}` Sumeru endpoint that the broker contacts directly.
8
8
 
9
9
  ### Four-Layer Architecture
10
10
 
@@ -68,8 +68,23 @@ The `json` and `yaml` envelopes carry the schema hash on the `type` field so con
68
68
 
69
69
  `thread read`, `step list`, and `step show` work on both active and ended threads.
70
70
  | `uwf thread stop <thread-id>` | Stop background execution (keep thread active) |
71
+ | `uwf thread resume <thread-id> [-p <text>] [--agent <cmd>]` | Resume a suspended thread and re-run the suspended role |
72
+ | `uwf thread poke <thread-id> -p <text> [--agent <cmd>] [-c <count>]` | Re-run the head step's agent with a supplementary prompt (replaces head step) |
71
73
  | `uwf thread cancel <thread-id>` | Cancel thread (stop + archive to history) |
72
74
 
75
+ ### Suspend / Resume
76
+
77
+ When an agent emits `$status: "$SUSPEND"` in its frontmatter, the thread enters `suspended` status. A suspended thread **cannot be advanced with `exec`** — `exec` will detect the suspended head and return immediately without running any agent.
78
+
79
+ To continue a suspended thread, use `resume`:
80
+
81
+ ```bash
82
+ uwf thread resume <thread-id> # resume with workflow's default prompt
83
+ uwf thread resume <thread-id> -p "version 1.2.0" # resume with supplementary context
84
+ ```
85
+
86
+ > ⚠️ `exec` does not advance suspended threads — you **must** use `resume` to provide context and continue.
87
+
73
88
  Examples:
74
89
 
75
90
  ```bash
@@ -159,6 +174,79 @@ Engine config: `~/.uwf/config.yaml` (LLM-free — only `agents`, `defaultAgent`,
159
174
 
160
175
  ## Migration Guide
161
176
 
177
+ ### Breaking Changes (Phase 3 / #380) — broker integration & `{host, gateway}` agents
178
+
179
+ Phase 3 of the broker rollout removes the legacy `spawnAgent` /
180
+ `executeAgentCommand` / last-stdout-line JSON path from `uwf thread exec`.
181
+ The CLI now calls `broker.send({ threadId, role, prompt })` against the
182
+ Sumeru HTTP API and runs frontmatter extraction on the broker's
183
+ `result.output`. The CLI itself never starts an agent process.
184
+
185
+ This is a breaking 0.x change to `~/.uwf/config.yaml`:
186
+
187
+ | Old (`{command, args}`) | New (`{host, gateway}`) |
188
+ |-------------------------|-------------------------|
189
+ | `agents.<alias>.command` | `agents.<alias>.host` |
190
+ | `agents.<alias>.args` | `agents.<alias>.gateway` |
191
+
192
+ Rewrite each agent entry. Before:
193
+
194
+ ```yaml
195
+ agents:
196
+ hermes:
197
+ command: uwf-hermes
198
+ args: ["--verbose"]
199
+ claude-code:
200
+ command: uwf-claude-code
201
+ args: []
202
+ defaultAgent: hermes
203
+ agentOverrides: {}
204
+ ```
205
+
206
+ After:
207
+
208
+ ```yaml
209
+ agents:
210
+ hermes:
211
+ host: http://127.0.0.1:7900
212
+ gateway: hermes
213
+ claude-code:
214
+ host: http://127.0.0.1:7900
215
+ gateway: claude-code
216
+ defaultAgent: hermes
217
+ agentOverrides: {}
218
+ ```
219
+
220
+ The engine config validator (`normalizeAgents` in
221
+ `@united-workforce/util-agent`) now rejects any entry that still carries
222
+ `command` or `args` with a clear migration error. `uwf config set
223
+ agents.<alias>.command ...` is likewise rejected.
224
+
225
+ #### `--agent` override
226
+
227
+ `uwf thread exec --agent <value>` now accepts two shapes:
228
+
229
+ - An alias declared in `agents.*` (e.g. `--agent hermes`).
230
+ - An inline `"<host> <gateway>"` pair (e.g.
231
+ `--agent "http://127.0.0.1:7900 claude-code"`).
232
+
233
+ The legacy bare command override (`--agent uwf-hermes`) is removed.
234
+
235
+ #### `step ask` / `step fork` deferred to Phase 4
236
+
237
+ `uwf step ask` and `uwf step fork` are temporarily disabled in this
238
+ phase. Invoking them returns a clear "not yet supported in Phase 3"
239
+ error rather than silently using the legacy spawn path. Both will be
240
+ restored in Phase 4 once the broker exposes the per-step session
241
+ replay APIs they require.
242
+
243
+ #### Multi-step session reuse & resume
244
+
245
+ The broker rows the `(threadId, role) → sessionId` mapping in its
246
+ SQLite session store. Subsequent steps for the same role on the same
247
+ thread reuse the cached Sumeru session. `uwf thread resume` reuses the
248
+ same cached session — no new Sumeru session is created on resume.
249
+
162
250
  ### Breaking Changes (v0.5 → v0.6) — output envelope
163
251
 
164
252
  `uwf` now emits an ocas envelope (`{ type, value }`) for `--format json` and `--format yaml`, and the default format changed from `json` to `text`.
@@ -11,20 +11,27 @@ describe("agent resolution works without LLM fields in config.yaml (issue #143)"
11
11
  });
12
12
  test("loadWorkflowConfig succeeds on a minimal engine-only config", async () => {
13
13
  tempDir = mkdtempSync(join(tmpdir(), "uwf-engine-cfg-"));
14
- writeFileSync(join(tempDir, "config.yaml"), "agents:\n hermes: { command: uwf-hermes, args: [] }\ndefaultAgent: hermes\n", "utf8");
14
+ writeFileSync(join(tempDir, "config.yaml"), "agents:\n hermes: { host: 'http://127.0.0.1:7900', gateway: hermes }\ndefaultAgent: hermes\n", "utf8");
15
15
  const cfg = await loadWorkflowConfig(tempDir);
16
16
  expect(cfg.defaultAgent).toBe("hermes");
17
17
  expect(cfg.agents.hermes).toBeDefined();
18
+ expect(cfg.agents.hermes.host).toBe("http://127.0.0.1:7900");
19
+ expect(cfg.agents.hermes.gateway).toBe("hermes");
18
20
  expect(cfg.agentOverrides).toBeNull();
19
21
  });
20
22
  test("loadWorkflowConfig ignores legacy provider/model fields", async () => {
21
23
  tempDir = mkdtempSync(join(tmpdir(), "uwf-engine-cfg-"));
22
- writeFileSync(join(tempDir, "config.yaml"), "providers:\n openai: { baseUrl: x, apiKey: y }\nmodels:\n default: { provider: openai, name: gpt-4o }\ndefaultModel: default\nagents:\n hermes: { command: uwf-hermes, args: [] }\ndefaultAgent: hermes\n", "utf8");
24
+ writeFileSync(join(tempDir, "config.yaml"), "providers:\n openai: { baseUrl: x, apiKey: y }\nmodels:\n default: { provider: openai, name: gpt-4o }\ndefaultModel: default\nagents:\n hermes: { host: 'http://127.0.0.1:7900', gateway: hermes }\ndefaultAgent: hermes\n", "utf8");
23
25
  const cfg = (await loadWorkflowConfig(tempDir));
24
26
  expect(cfg.defaultAgent).toBe("hermes");
25
27
  expect(cfg.providers).toBeUndefined();
26
28
  expect(cfg.models).toBeUndefined();
27
29
  expect(cfg.defaultModel).toBeUndefined();
28
30
  });
31
+ test("loadWorkflowConfig rejects legacy {command, args} agent shape", async () => {
32
+ tempDir = mkdtempSync(join(tmpdir(), "uwf-engine-cfg-"));
33
+ writeFileSync(join(tempDir, "config.yaml"), "agents:\n hermes: { command: uwf-hermes, args: [] }\ndefaultAgent: hermes\n", "utf8");
34
+ await expect(loadWorkflowConfig(tempDir)).rejects.toThrow(/legacy \{command, args\} fields/);
35
+ });
29
36
  });
30
37
  //# sourceMappingURL=agent-resolution-llm-free.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-resolution-llm-free.test.js","sourceRoot":"","sources":["../../src/__tests__/agent-resolution-llm-free.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE3D,QAAQ,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACrF,IAAI,OAAe,CAAC;IACpB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO;YAAE,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC7E,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzD,aAAa,CACX,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAC5B,8EAA8E,EAC9E,MAAM,CACP,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACzE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzD,aAAa,CACX,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAC5B,8MAA8M,EAC9M,MAAM,CACP,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAA4B,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"agent-resolution-llm-free.test.js","sourceRoot":"","sources":["../../src/__tests__/agent-resolution-llm-free.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE3D,QAAQ,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACrF,IAAI,OAAe,CAAC;IACpB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO;YAAE,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC7E,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzD,aAAa,CACX,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAC5B,+FAA+F,EAC/F,MAAM,CACP,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACzE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzD,aAAa,CACX,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAC5B,+NAA+N,EAC/N,MAAM,CACP,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAA4B,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC/E,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzD,aAAa,CACX,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAC5B,8EAA8E,EAC9E,MAAM,CACP,CAAC;QACF,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Unit tests for `assembleBrokerPrompt` (#387).
3
+ *
4
+ * Verifies the broker path assembles the same five-part prompt the legacy
5
+ * spawned-agent path produced: output-format instruction, thread progress,
6
+ * role prompt (goal/procedure/output), task prompt, and the
7
+ * continuation/edge-prompt context (branching on first visit vs re-entry).
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=broker-prompt.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker-prompt.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/broker-prompt.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Unit tests for `assembleBrokerPrompt` (#387).
3
+ *
4
+ * Verifies the broker path assembles the same five-part prompt the legacy
5
+ * spawned-agent path produced: output-format instruction, thread progress,
6
+ * role prompt (goal/procedure/output), task prompt, and the
7
+ * continuation/edge-prompt context (branching on first visit vs re-entry).
8
+ */
9
+ import { describe, expect, test } from "vitest";
10
+ import { assembleBrokerPrompt } from "../commands/broker-step.js";
11
+ const THREAD_ID = "06FCBROKERPROMPTTEST000001";
12
+ const OUTPUT_FORMAT_INSTRUCTION = "## Deliverable Format\n\nemit YAML frontmatter";
13
+ function buildWorkflow() {
14
+ return {
15
+ version: 1,
16
+ name: "review-flow",
17
+ description: "two-role review flow",
18
+ roles: {
19
+ developer: {
20
+ description: "writes code",
21
+ goal: "implement the requested behavior",
22
+ capabilities: ["coding"],
23
+ procedure: "follow the spec and write tests",
24
+ output: "a patch plus a short summary",
25
+ frontmatter: "schema_developer",
26
+ },
27
+ reviewer: {
28
+ description: "reviews code",
29
+ goal: "review the implementation",
30
+ capabilities: [],
31
+ procedure: "check the diff carefully",
32
+ output: "approve or reject",
33
+ frontmatter: "schema_reviewer",
34
+ },
35
+ },
36
+ graph: {},
37
+ };
38
+ }
39
+ function stepContext(role, content, output) {
40
+ return {
41
+ role,
42
+ output,
43
+ detail: "detail_ref",
44
+ agent: "test-agent",
45
+ edgePrompt: "",
46
+ startedAtMs: 0,
47
+ completedAtMs: 1,
48
+ cwd: "",
49
+ assembledPrompt: null,
50
+ usage: null,
51
+ previousAttempts: null,
52
+ content,
53
+ };
54
+ }
55
+ describe("assembleBrokerPrompt", () => {
56
+ test("first visit with no prior steps embeds role prompt, task, and edge prompt", () => {
57
+ const prompt = assembleBrokerPrompt({
58
+ workflow: buildWorkflow(),
59
+ role: "developer",
60
+ threadId: THREAD_ID,
61
+ startPrompt: "Build the login form",
62
+ steps: [],
63
+ edgePrompt: "Implement the behavior defined in the spec files",
64
+ outputFormatInstruction: OUTPUT_FORMAT_INSTRUCTION,
65
+ });
66
+ // 1. output-format instruction
67
+ expect(prompt).toContain("## Deliverable Format");
68
+ // 2. thread progress
69
+ expect(prompt).toContain("## Thread Progress");
70
+ expect(prompt).toContain("This is the first step of the thread");
71
+ // 3. role prompt (goal + procedure + output)
72
+ expect(prompt).toContain("## Goal");
73
+ expect(prompt).toContain("implement the requested behavior");
74
+ expect(prompt).toContain("## Procedure");
75
+ expect(prompt).toContain("follow the spec and write tests");
76
+ expect(prompt).toContain("## Output");
77
+ expect(prompt).toContain("a patch plus a short summary");
78
+ // 4. task prompt
79
+ expect(prompt).toContain("## Task");
80
+ expect(prompt).toContain("Build the login form");
81
+ // 5. edge prompt (no prior steps → "Current Instruction")
82
+ expect(prompt).toContain("## Current Instruction");
83
+ expect(prompt).toContain("Implement the behavior defined in the spec files");
84
+ });
85
+ test("first visit with prior steps includes step content as continuation context", () => {
86
+ const steps = [
87
+ stepContext("planner", "Here is the detailed plan for the feature.", { $status: "done" }),
88
+ ];
89
+ const prompt = assembleBrokerPrompt({
90
+ workflow: buildWorkflow(),
91
+ role: "developer",
92
+ threadId: THREAD_ID,
93
+ startPrompt: "Build the login form",
94
+ steps,
95
+ edgePrompt: "Implement the plan",
96
+ outputFormatInstruction: OUTPUT_FORMAT_INSTRUCTION,
97
+ });
98
+ // Developer has not spoken yet → first visit, prior steps shown WITH content.
99
+ expect(prompt).toContain("## What Happened Since Your Last Turn");
100
+ expect(prompt).toContain("Here is the detailed plan for the feature.");
101
+ expect(prompt).toContain("## Moderator Instruction");
102
+ expect(prompt).toContain("Implement the plan");
103
+ // Thread progress reflects the prior step.
104
+ expect(prompt).toContain("Thread step 2");
105
+ });
106
+ test("re-entry shows only steps since last visit (meta-only continuation)", () => {
107
+ const steps = [
108
+ stepContext("developer", "My first implementation attempt.", { $status: "done" }),
109
+ stepContext("reviewer", "Please fix the validation logic.", { $status: "reject" }),
110
+ ];
111
+ const prompt = assembleBrokerPrompt({
112
+ workflow: buildWorkflow(),
113
+ role: "developer",
114
+ threadId: THREAD_ID,
115
+ startPrompt: "Build the login form",
116
+ steps,
117
+ edgePrompt: "Address the reviewer feedback",
118
+ outputFormatInstruction: OUTPUT_FORMAT_INSTRUCTION,
119
+ });
120
+ // Re-entry: continuation lists the reviewer step since the last developer turn.
121
+ expect(prompt).toContain("## What Happened Since Your Last Turn");
122
+ expect(prompt).toContain("reviewer");
123
+ expect(prompt).toContain("## Moderator Instruction");
124
+ expect(prompt).toContain("Address the reviewer feedback");
125
+ // Meta-only re-entry omits raw step content from before the last visit.
126
+ expect(prompt).not.toContain("My first implementation attempt.");
127
+ });
128
+ });
129
+ //# sourceMappingURL=broker-prompt.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker-prompt.test.js","sourceRoot":"","sources":["../../src/__tests__/broker-prompt.test.ts"],"names":[],"mappings":"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"}
@@ -10,18 +10,15 @@ describe("config command", () => {
10
10
  writeFileSync(configPath, content, "utf8");
11
11
  return configPath;
12
12
  }
13
- // Sample test config — engine-only (no providers/models/defaultModel/modelOverrides)
13
+ // Sample test config — engine-only (no providers/models/defaultModel/modelOverrides).
14
+ // Phase 3 (#380) replaced the legacy {command, args} agent shape with {host, gateway}.
14
15
  const sampleConfig = `agents:
15
16
  hermes:
16
- command: uwf-hermes
17
- args:
18
- - --provider
19
- - dashscope
17
+ host: http://127.0.0.1:7900
18
+ gateway: hermes
20
19
  claude-code:
21
- command: claude-code
22
- args:
23
- - --profile
24
- - work
20
+ host: http://127.0.0.1:7901
21
+ gateway: claude-code
25
22
  defaultAgent: hermes
26
23
  `;
27
24
  describe("helper functions", () => {
@@ -29,7 +26,7 @@ defaultAgent: hermes
29
26
  test("splits dot notation correctly", () => {
30
27
  expect(parseDotPath("a.b.c")).toEqual(["a", "b", "c"]);
31
28
  expect(parseDotPath("defaultAgent")).toEqual(["defaultAgent"]);
32
- expect(parseDotPath("agents.hermes.command")).toEqual(["agents", "hermes", "command"]);
29
+ expect(parseDotPath("agents.hermes.host")).toEqual(["agents", "hermes", "host"]);
33
30
  });
34
31
  });
35
32
  describe("getNestedValue", () => {
@@ -67,7 +64,7 @@ defaultAgent: hermes
67
64
  describe("maskApiKeys", () => {
68
65
  test("returns deep clone (no mutation) — engine config has no apiKey to mask", () => {
69
66
  const config = {
70
- agents: { hermes: { command: "uwf-hermes", args: [] } },
67
+ agents: { hermes: { host: "http://127.0.0.1:7900", gateway: "hermes" } },
71
68
  defaultAgent: "hermes",
72
69
  };
73
70
  const masked = maskApiKeys(config);
@@ -134,12 +131,12 @@ defaultAgent: hermes
134
131
  rmSync(tempDir, { recursive: true, force: true });
135
132
  }
136
133
  });
137
- test("retrieves array value (agents.hermes.args)", async () => {
134
+ test("retrieves nested string value (agents.hermes.host)", async () => {
138
135
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
139
136
  try {
140
137
  createTestConfig(tempDir, sampleConfig);
141
- const result = await cmdConfigGet(tempDir, "agents.hermes.args");
142
- expect(result).toEqual(["--provider", "dashscope"]);
138
+ const result = await cmdConfigGet(tempDir, "agents.hermes.host");
139
+ expect(result).toBe("http://127.0.0.1:7900");
143
140
  }
144
141
  finally {
145
142
  rmSync(tempDir, { recursive: true, force: true });
@@ -189,18 +186,17 @@ defaultAgent: hermes
189
186
  rmSync(tempDir, { recursive: true, force: true });
190
187
  }
191
188
  });
192
- test("sets array value for args key with valid JSON array", async () => {
189
+ test("sets nested string value (agents.hermes.host)", async () => {
193
190
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
194
191
  try {
195
192
  createTestConfig(tempDir, sampleConfig);
196
- const newArgs = '["--new", "--flags"]';
197
- const result = await cmdConfigSet(tempDir, "agents.hermes.args", newArgs);
193
+ const result = await cmdConfigSet(tempDir, "agents.hermes.host", "http://10.0.0.1:7900");
198
194
  expect(result).toEqual({
199
- key: "agents.hermes.args",
200
- value: ["--new", "--flags"],
195
+ key: "agents.hermes.host",
196
+ value: "http://10.0.0.1:7900",
201
197
  });
202
- const updated = await cmdConfigGet(tempDir, "agents.hermes.args");
203
- expect(updated).toEqual(["--new", "--flags"]);
198
+ const updated = await cmdConfigGet(tempDir, "agents.hermes.host");
199
+ expect(updated).toBe("http://10.0.0.1:7900");
204
200
  }
205
201
  finally {
206
202
  rmSync(tempDir, { recursive: true, force: true });
@@ -211,8 +207,8 @@ defaultAgent: hermes
211
207
  try {
212
208
  createTestConfig(tempDir, sampleConfig);
213
209
  await cmdConfigSet(tempDir, "defaultAgent", "claude-code");
214
- const cmd = await cmdConfigGet(tempDir, "agents.hermes.command");
215
- expect(cmd).toBe("uwf-hermes");
210
+ const host = await cmdConfigGet(tempDir, "agents.hermes.host");
211
+ expect(host).toBe("http://127.0.0.1:7900");
216
212
  }
217
213
  finally {
218
214
  rmSync(tempDir, { recursive: true, force: true });
@@ -241,27 +237,27 @@ defaultAgent: hermes
241
237
  rmSync(tempDir, { recursive: true, force: true });
242
238
  }
243
239
  });
244
- test("throws error when array value is invalid JSON for args key", async () => {
240
+ test("throws error when value for unknown nested field is invalid", async () => {
245
241
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
246
242
  try {
247
243
  createTestConfig(tempDir, sampleConfig);
248
- await expect(cmdConfigSet(tempDir, "agents.hermes.args", "[invalid json")).rejects.toThrow();
244
+ await expect(cmdConfigSet(tempDir, "agents.hermes.args", "[invalid json")).rejects.toThrow(/Unknown field/);
249
245
  }
250
246
  finally {
251
247
  rmSync(tempDir, { recursive: true, force: true });
252
248
  }
253
249
  });
254
- test("sets agent command (agents.claude-code.command)", async () => {
250
+ test("sets agent gateway (agents.claude-code.gateway)", async () => {
255
251
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
256
252
  try {
257
253
  createTestConfig(tempDir, sampleConfig);
258
- const result = await cmdConfigSet(tempDir, "agents.claude-code.command", "new-command");
254
+ const result = await cmdConfigSet(tempDir, "agents.claude-code.gateway", "new-gateway");
259
255
  expect(result).toEqual({
260
- key: "agents.claude-code.command",
261
- value: "new-command",
256
+ key: "agents.claude-code.gateway",
257
+ value: "new-gateway",
262
258
  });
263
- const updated = await cmdConfigGet(tempDir, "agents.claude-code.command");
264
- expect(updated).toBe("new-command");
259
+ const updated = await cmdConfigGet(tempDir, "agents.claude-code.gateway");
260
+ expect(updated).toBe("new-gateway");
265
261
  }
266
262
  finally {
267
263
  rmSync(tempDir, { recursive: true, force: true });
@@ -355,12 +351,12 @@ defaultAgent: hermes
355
351
  const tempDir = mkdtempSync(join(tmpdir(), "test-config-"));
356
352
  try {
357
353
  createTestConfig(tempDir, sampleConfig);
358
- await cmdConfigSet(tempDir, "agents.hermes.command", "uwf-hermes");
359
- await cmdConfigSet(tempDir, "agents.hermes.args", '["--flag"]');
360
- const command = await cmdConfigGet(tempDir, "agents.hermes.command");
361
- const args = await cmdConfigGet(tempDir, "agents.hermes.args");
362
- expect(command).toBe("uwf-hermes");
363
- expect(args).toEqual(["--flag"]);
354
+ await cmdConfigSet(tempDir, "agents.hermes.host", "http://example:7900");
355
+ await cmdConfigSet(tempDir, "agents.hermes.gateway", "hermes-gw");
356
+ const host = await cmdConfigGet(tempDir, "agents.hermes.host");
357
+ const gateway = await cmdConfigGet(tempDir, "agents.hermes.gateway");
358
+ expect(host).toBe("http://example:7900");
359
+ expect(gateway).toBe("hermes-gw");
364
360
  }
365
361
  finally {
366
362
  rmSync(tempDir, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Phase 3 (#380) — direct e2e test for `executeBrokerStep`.
3
+ *
4
+ * Stubs `globalThis.fetch` so the Sumeru `createSession` POST and
5
+ * `sendMessage` SSE POST come back deterministically. Verifies:
6
+ * 1. broker.send() is invoked with the resolved (host, gateway, cwd) route.
7
+ * 2. The agent's last assistant turn is extracted via the frontmatter fast-path.
8
+ * 3. A StepNode is persisted to CAS with the role's output schema, edge prompt,
9
+ * and accumulated usage, satisfying schema validation.
10
+ * 4. The broker session store rows the (threadId, role) → sessionId mapping.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=e2e-broker-step.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-broker-step.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/e2e-broker-step.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}