@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.
- package/LICENSE +21 -0
- package/README.md +89 -1
- package/dist/__tests__/agent-resolution-llm-free.test.js +9 -2
- package/dist/__tests__/agent-resolution-llm-free.test.js.map +1 -1
- package/dist/__tests__/broker-prompt.test.d.ts +10 -0
- package/dist/__tests__/broker-prompt.test.d.ts.map +1 -0
- package/dist/__tests__/broker-prompt.test.js +129 -0
- package/dist/__tests__/broker-prompt.test.js.map +1 -0
- package/dist/__tests__/config.test.js +33 -37
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/e2e-broker-step.test.d.ts +13 -0
- package/dist/__tests__/e2e-broker-step.test.d.ts.map +1 -0
- package/dist/__tests__/e2e-broker-step.test.js +278 -0
- package/dist/__tests__/e2e-broker-step.test.js.map +1 -0
- package/dist/__tests__/e2e-mock-agent.test.js +1 -1
- package/dist/__tests__/e2e-mock-agent.test.js.map +1 -1
- package/dist/__tests__/setup-agent-discovery.test.js +17 -5
- package/dist/__tests__/setup-agent-discovery.test.js.map +1 -1
- package/dist/__tests__/setup-no-llm.test.js +5 -2
- package/dist/__tests__/setup-no-llm.test.js.map +1 -1
- package/dist/__tests__/step-ask.test.js +9 -6
- package/dist/__tests__/step-ask.test.js.map +1 -1
- package/dist/__tests__/thread-agent-failure-suspended.test.js +3 -3
- package/dist/__tests__/thread-agent-failure-suspended.test.js.map +1 -1
- package/dist/__tests__/thread-poke.test.js +6 -6
- package/dist/__tests__/thread-poke.test.js.map +1 -1
- package/dist/__tests__/thread-resume.test.js +2 -2
- package/dist/__tests__/thread-resume.test.js.map +1 -1
- package/dist/__tests__/thread-suspend-step.test.js +1 -1
- package/dist/__tests__/thread-suspend-step.test.js.map +1 -1
- package/dist/commands/broker-step.d.ts +110 -0
- package/dist/commands/broker-step.d.ts.map +1 -0
- package/dist/commands/broker-step.js +450 -0
- package/dist/commands/broker-step.js.map +1 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +2 -23
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/prompt.js +3 -3
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +8 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/step.d.ts +6 -5
- package/dist/commands/step.d.ts.map +1 -1
- package/dist/commands/step.js +11 -154
- package/dist/commands/step.js.map +1 -1
- package/dist/commands/thread.d.ts +4 -0
- package/dist/commands/thread.d.ts.map +1 -1
- package/dist/commands/thread.js +77 -151
- package/dist/commands/thread.js.map +1 -1
- package/package.json +12 -11
- package/src/__tests__/agent-resolution-llm-free.test.ts +14 -2
- package/src/__tests__/broker-prompt.test.ts +142 -0
- package/src/__tests__/config.test.ts +35 -39
- package/src/__tests__/e2e-broker-step.test.ts +320 -0
- package/src/__tests__/e2e-mock-agent.test.ts +1 -1
- package/src/__tests__/setup-agent-discovery.test.ts +17 -5
- package/src/__tests__/setup-no-llm.test.ts +5 -2
- package/src/__tests__/step-ask.test.ts +9 -6
- package/src/__tests__/thread-agent-failure-suspended.test.ts +3 -3
- package/src/__tests__/thread-poke.test.ts +6 -6
- package/src/__tests__/thread-resume.test.ts +2 -2
- package/src/__tests__/thread-suspend-step.test.ts +1 -1
- package/src/cli.ts +0 -0
- package/src/commands/broker-step.ts +636 -0
- package/src/commands/config.ts +2 -24
- package/src/commands/prompt.ts +3 -3
- package/src/commands/setup.ts +9 -1
- package/src/commands/step.ts +21 -204
- package/src/commands/thread.ts +87 -192
- package/dist/.build-fingerprint +0 -1
- package/dist/__tests__/adapter-json-roundtrip.test.d.ts +0 -2
- package/dist/__tests__/adapter-json-roundtrip.test.d.ts.map +0 -1
- package/dist/__tests__/adapter-json-roundtrip.test.js +0 -160
- package/dist/__tests__/adapter-json-roundtrip.test.js.map +0 -1
- package/dist/__tests__/spawn-agent-json.test.d.ts +0 -2
- package/dist/__tests__/spawn-agent-json.test.d.ts.map +0 -1
- package/dist/__tests__/spawn-agent-json.test.js +0 -79
- package/dist/__tests__/spawn-agent-json.test.js.map +0 -1
- package/src/__tests__/adapter-json-roundtrip.test.ts +0 -193
- 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;
|
|
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"}
|
package/dist/commands/config.js
CHANGED
|
@@ -10,7 +10,7 @@ import { parse, stringify } from "yaml";
|
|
|
10
10
|
const VALID_CONFIG_KEYS = {
|
|
11
11
|
agents: {
|
|
12
12
|
nested: true,
|
|
13
|
-
knownFields: ["
|
|
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 (
|
|
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,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/prompt.js
CHANGED
|
@@ -147,15 +147,15 @@ Or configure non-interactively:
|
|
|
147
147
|
uwf setup --agent <adapter-command>
|
|
148
148
|
\`\`\`
|
|
149
149
|
|
|
150
|
-
**Note:** \`--agent\` takes
|
|
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
|
-
|
|
158
|
-
|
|
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;
|
|
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"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -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] = {
|
|
208
|
+
agents[agentName] = { host: DEFAULT_SUMERU_HOST, gateway: agentName };
|
|
202
209
|
}
|
|
203
210
|
const merged = {
|
|
204
211
|
agents,
|