@agentworkforce/workload-router 0.1.2 → 0.1.3
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/README.md +115 -1
- package/dist/index.d.ts +257 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +532 -0
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +149 -1
- package/dist/index.test.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -10,10 +10,124 @@ npm install @agentworkforce/workload-router
|
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
|
+
### `usePersona(intent, options?)`
|
|
14
|
+
|
|
15
|
+
Despite the `use*` prefix, **this is not a React hook.** It is a plain
|
|
16
|
+
synchronous factory: call it, get back a `PersonaContext` bundling the
|
|
17
|
+
resolved persona, its skill install plan, and an `execute()` closure.
|
|
18
|
+
Nothing is installed, spawned, or written to disk until you call
|
|
19
|
+
`execute()` (or run the install command yourself).
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { usePersona } from '@agentworkforce/workload-router';
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
There are **two usage modes**, and they are alternatives — not sequential
|
|
26
|
+
steps. Pick one.
|
|
27
|
+
|
|
28
|
+
#### Mode A — let `execute()` install skills and run the agent (recommended)
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
const { execute } = usePersona('npm-provenance');
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
const result = await execute('Set up npm trusted publishing for this repo', {
|
|
35
|
+
workingDirectory: '.',
|
|
36
|
+
timeoutSeconds: 600,
|
|
37
|
+
});
|
|
38
|
+
// result.status is guaranteed to be 'completed' here — any other
|
|
39
|
+
// outcome is delivered via the catch block below.
|
|
40
|
+
} catch (err) {
|
|
41
|
+
const execErr = err as Error & {
|
|
42
|
+
result?: { status: string; stderr: string; exitCode: number | null };
|
|
43
|
+
};
|
|
44
|
+
console.error(
|
|
45
|
+
'persona run failed',
|
|
46
|
+
execErr.result?.status,
|
|
47
|
+
execErr.result?.stderr,
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
`execute()` builds an ad-hoc agent-relay workflow with two steps: (1)
|
|
53
|
+
`prpm install` the persona's skills, then (2) invoke the persona's harness
|
|
54
|
+
agent with your task. `installSkills` defaults to `true`, so the first step
|
|
55
|
+
runs automatically — no manual install needed.
|
|
56
|
+
|
|
57
|
+
> **Outcome contract:** `await execute(...)` only resolves when the
|
|
58
|
+
> persona completes successfully. A non-zero exit from the agent
|
|
59
|
+
> subprocess (or a timeout) throws a `PersonaExecutionError`, and
|
|
60
|
+
> cancellation throws an `AbortError`; both carry the typed
|
|
61
|
+
> `ExecuteResult` on `err.result` so you can inspect
|
|
62
|
+
> `err.result.status`, `err.result.stderr`, `err.result.exitCode`, etc.
|
|
63
|
+
> Wrap `await execute(...)` in `try/catch` whenever you need to
|
|
64
|
+
> observe non-completed outcomes.
|
|
65
|
+
|
|
66
|
+
#### Mode B — pre-stage install out-of-band, then run without re-install
|
|
67
|
+
|
|
13
68
|
```ts
|
|
14
|
-
import {
|
|
69
|
+
import { spawnSync } from 'node:child_process';
|
|
70
|
+
|
|
71
|
+
const { installCommandString, execute } = usePersona('npm-provenance');
|
|
72
|
+
|
|
73
|
+
// build time (Dockerfile RUN, CI bootstrap step, first-run setup, etc.):
|
|
74
|
+
spawnSync(installCommandString, { shell: true, stdio: 'inherit' });
|
|
75
|
+
|
|
76
|
+
// runtime — skip re-install because skills are already staged:
|
|
77
|
+
const result = await execute('Your task', {
|
|
78
|
+
workingDirectory: '.',
|
|
79
|
+
installSkills: false,
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Use Mode B when you want to install skills once at build/CI time for
|
|
84
|
+
caching, hermeticity, offline runtime, or split-trust reasons — or when you
|
|
85
|
+
want to wrap the install with your own process management (custom timeout,
|
|
86
|
+
logging, retry, alternative runner, etc.).
|
|
87
|
+
|
|
88
|
+
A third usage is **install-only**: if all you want is to materialize the
|
|
89
|
+
persona's skills into the repo for a human or another tool to use, run
|
|
90
|
+
`installCommandString` and never call `execute()`.
|
|
91
|
+
|
|
92
|
+
> ⚠️ **Do not combine the two modes without `installSkills: false`.**
|
|
93
|
+
> Running `spawnSync(installCommandString, ...)` *and then* calling
|
|
94
|
+
> `execute(task)` without passing `installSkills: false` will install the
|
|
95
|
+
> persona's skills **twice**. `ExecuteOptions.installSkills` defaults to
|
|
96
|
+
> `true`, so you must explicitly opt out when you have already pre-staged.
|
|
97
|
+
|
|
98
|
+
#### Cancellation, streaming progress, and the run id
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
const abort = new AbortController();
|
|
102
|
+
const run = usePersona('npm-provenance').execute('Your task', {
|
|
103
|
+
signal: abort.signal,
|
|
104
|
+
onProgress: ({ stream, text }) => process[stream].write(text),
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
run.runId.then((id) => console.log('workflow run id:', id));
|
|
108
|
+
|
|
109
|
+
// ...later, from another code path:
|
|
110
|
+
abort.abort(); // or: run.cancel('user requested');
|
|
111
|
+
|
|
112
|
+
try {
|
|
113
|
+
const result = await run; // only returns when status === 'completed'
|
|
114
|
+
} catch (err) {
|
|
115
|
+
// Cancellation throws AbortError; failure throws PersonaExecutionError.
|
|
116
|
+
// Both carry the typed ExecuteResult on `err.result` — inspect
|
|
117
|
+
// `err.result.status`, `err.result.stderr`, `err.result.exitCode`, etc.
|
|
118
|
+
const execErr = err as Error & {
|
|
119
|
+
result?: { status: string; stderr: string; exitCode: number | null };
|
|
120
|
+
};
|
|
121
|
+
console.error('run did not complete', execErr.name, execErr.result?.status);
|
|
122
|
+
}
|
|
15
123
|
```
|
|
16
124
|
|
|
125
|
+
`run.runId` is a `Promise<string>` — it is *not* available synchronously
|
|
126
|
+
when `execute()` returns, because the workflow hasn't started yet. It
|
|
127
|
+
resolves once the persona's agent step has actually spawned (on the first
|
|
128
|
+
progress event from the subprocess, or ~250ms after spawn as a safety net).
|
|
129
|
+
Don't block on it in a tight synchronous path expecting a cached value.
|
|
130
|
+
|
|
17
131
|
## Development
|
|
18
132
|
|
|
19
133
|
```bash
|
package/dist/index.d.ts
CHANGED
|
@@ -76,6 +76,186 @@ export interface SkillMaterializationPlan {
|
|
|
76
76
|
harness: Harness;
|
|
77
77
|
installs: SkillInstall[];
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Options for {@link PersonaContext.execute}. All fields are optional —
|
|
81
|
+
* calling `execute(task)` with no options is the common case.
|
|
82
|
+
*
|
|
83
|
+
* Pass `installSkills: false` when you have already pre-staged the persona's
|
|
84
|
+
* skills via {@link PersonaContext.installCommandString} (e.g. in a Dockerfile
|
|
85
|
+
* or a CI bootstrap step) and do not want `execute()` to re-install them.
|
|
86
|
+
* Leaving `installSkills` unset means `execute()` installs skills itself as
|
|
87
|
+
* the first step of the ad-hoc workflow — this is the default.
|
|
88
|
+
*/
|
|
89
|
+
export interface ExecuteOptions {
|
|
90
|
+
/** Absolute or repo-relative path the spawned agent should treat as its CWD. */
|
|
91
|
+
workingDirectory?: string;
|
|
92
|
+
/** Optional step name override for the ad-hoc workflow run. */
|
|
93
|
+
name?: string;
|
|
94
|
+
/** Hard timeout for the install + agent run in seconds. */
|
|
95
|
+
timeoutSeconds?: number;
|
|
96
|
+
/** Optional structured context appended to the task body as JSON. */
|
|
97
|
+
inputs?: Record<string, string | number | boolean>;
|
|
98
|
+
/** Install persona skills before execution. Defaults to true. */
|
|
99
|
+
installSkills?: boolean;
|
|
100
|
+
/** Additional environment variables available to install + agent processes. */
|
|
101
|
+
env?: NodeJS.ProcessEnv;
|
|
102
|
+
/** Abort signal for cancellation. */
|
|
103
|
+
signal?: AbortSignal;
|
|
104
|
+
/** Streaming stdout/stderr callback from install + agent subprocesses. */
|
|
105
|
+
onProgress?: (chunk: {
|
|
106
|
+
stream: 'stdout' | 'stderr';
|
|
107
|
+
text: string;
|
|
108
|
+
}) => void;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Final result of a {@link PersonaContext.execute} call.
|
|
112
|
+
*
|
|
113
|
+
* **Only `status: 'completed'` is returned as a resolved promise.** Any
|
|
114
|
+
* other outcome is delivered as a thrown error with a typed `.result`
|
|
115
|
+
* property carrying this interface, so callers can `try/catch` and then
|
|
116
|
+
* inspect `err.result.status`, `err.result.stderr`, `err.result.exitCode`
|
|
117
|
+
* etc. just as they would read the resolved value:
|
|
118
|
+
*
|
|
119
|
+
* - `status: 'failed'` — the agent subprocess exited non-zero, or the
|
|
120
|
+
* workflow settled in a failed state for any other reason. Thrown as
|
|
121
|
+
* a {@link PersonaExecutionError}.
|
|
122
|
+
* - `status: 'timeout'` — the workflow's hard timeout fired before the
|
|
123
|
+
* run completed. Also thrown as a {@link PersonaExecutionError} (the
|
|
124
|
+
* status is derived from the underlying timeout error).
|
|
125
|
+
* - `status: 'cancelled'` — the caller aborted via
|
|
126
|
+
* {@link ExecuteOptions.signal} or {@link PersonaExecution.cancel}.
|
|
127
|
+
* Thrown as an `AbortError` (with `error.result.status === 'cancelled'`).
|
|
128
|
+
*
|
|
129
|
+
* So the typical shape of a caller is:
|
|
130
|
+
*
|
|
131
|
+
* ```ts
|
|
132
|
+
* try {
|
|
133
|
+
* const result = await execute(task, opts);
|
|
134
|
+
* // result.status is guaranteed to be 'completed' here.
|
|
135
|
+
* } catch (err) {
|
|
136
|
+
* // err.result.status is 'failed' | 'cancelled' | 'timeout'.
|
|
137
|
+
* // err.result.stderr / err.result.exitCode are populated from
|
|
138
|
+
* // whatever the agent subprocess produced.
|
|
139
|
+
* }
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export interface ExecuteResult {
|
|
143
|
+
status: 'completed' | 'failed' | 'cancelled' | 'timeout';
|
|
144
|
+
output: string;
|
|
145
|
+
stderr: string;
|
|
146
|
+
exitCode: number | null;
|
|
147
|
+
durationMs: number;
|
|
148
|
+
workflowRunId?: string;
|
|
149
|
+
stepName: string;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Handle returned by {@link PersonaContext.execute}. It *is* a `Promise<ExecuteResult>`
|
|
153
|
+
* (awaitable directly), with two extra members bolted on:
|
|
154
|
+
*
|
|
155
|
+
* - `cancel(reason?)` — request cancellation of the running workflow. Equivalent
|
|
156
|
+
* to aborting the `AbortSignal` passed via {@link ExecuteOptions.signal}. Safe
|
|
157
|
+
* to call after the run has already settled (no-op).
|
|
158
|
+
*
|
|
159
|
+
* - `runId` — a `Promise<string>` that resolves to the workflow run id
|
|
160
|
+
* once the persona's agent step has actually spawned. This is deliberately
|
|
161
|
+
* a promise (not `string | undefined`) because the id is not known at the
|
|
162
|
+
* moment `execute()` returns — the workflow hasn't started yet. The
|
|
163
|
+
* resolution timing contract is:
|
|
164
|
+
*
|
|
165
|
+
* 1. If the agent subprocess emits any stdout/stderr, `runId` resolves
|
|
166
|
+
* immediately on the first progress event (see `onStepProgress`).
|
|
167
|
+
* 2. Otherwise, it resolves ~250ms after the agent step spawns (safety
|
|
168
|
+
* net armed in `onStepSpawn`, see `src/index.ts` around the
|
|
169
|
+
* `runIdReadyTimer` definition).
|
|
170
|
+
* 3. If the run settles (completes/fails/cancels) before either of the
|
|
171
|
+
* above fire, it resolves at settle time with the final run id.
|
|
172
|
+
*
|
|
173
|
+
* Practical consequence: `await run.runId` is *not* instantaneous — do not
|
|
174
|
+
* block on it in a tight synchronous path expecting a cached value.
|
|
175
|
+
*
|
|
176
|
+
* Error mirroring: if `execute()` fails before the workflow has started
|
|
177
|
+
* (e.g. the dynamic `@agent-relay/sdk/workflows` import throws, or the
|
|
178
|
+
* `WorkflowRunner` constructor throws), `runId` rejects with the same
|
|
179
|
+
* error as the main promise. Awaiting `runId` is therefore safe to
|
|
180
|
+
* `try/catch` — you will observe the same failure twice, not miss it.
|
|
181
|
+
* Note that you are not required to observe `runId`; the main promise
|
|
182
|
+
* is the authoritative outcome channel, and the auxiliary rejection
|
|
183
|
+
* on `runId` is internally suppressed when no handler is attached.
|
|
184
|
+
*/
|
|
185
|
+
export interface PersonaExecution extends Promise<ExecuteResult> {
|
|
186
|
+
cancel(reason?: string): void;
|
|
187
|
+
readonly runId: Promise<string>;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Return value of {@link usePersona}. A side-effect-free bundle of
|
|
191
|
+
* "what this persona is" plus an `execute()` closure for running it.
|
|
192
|
+
*
|
|
193
|
+
* There are two ways to use the fields, and they are **alternatives**,
|
|
194
|
+
* not sequential steps:
|
|
195
|
+
*
|
|
196
|
+
* **Mode A — let `execute()` handle install (recommended default):**
|
|
197
|
+
* ```ts
|
|
198
|
+
* const { execute } = usePersona('npm-provenance');
|
|
199
|
+
* const result = await execute('Your task', { workingDirectory: '.' });
|
|
200
|
+
* ```
|
|
201
|
+
* `execute()` installs the persona's skills as the first step of its
|
|
202
|
+
* ad-hoc workflow, then runs the agent task. No manual install needed.
|
|
203
|
+
*
|
|
204
|
+
* **Mode B — pre-stage install yourself, then `execute()` without re-install:**
|
|
205
|
+
* ```ts
|
|
206
|
+
* const { installCommandString, execute } = usePersona('npm-provenance');
|
|
207
|
+
* // e.g. inside a Dockerfile RUN, or a CI bootstrap step:
|
|
208
|
+
* spawnSync(installCommandString, { shell: true, stdio: 'inherit' });
|
|
209
|
+
* // then, at runtime:
|
|
210
|
+
* const result = await execute('Your task', {
|
|
211
|
+
* workingDirectory: '.',
|
|
212
|
+
* installSkills: false, // skip re-install; skills are already staged
|
|
213
|
+
* });
|
|
214
|
+
* ```
|
|
215
|
+
* Use this when you want to install skills once at build/CI time for
|
|
216
|
+
* caching, hermeticity, offline runtime, or split-trust reasons — or
|
|
217
|
+
* when you want to wrap the install with your own process management
|
|
218
|
+
* (custom timeout, logging, retry, alternative runner, etc.).
|
|
219
|
+
*
|
|
220
|
+
* In both modes, the `await execute(...)` call above **only resolves
|
|
221
|
+
* when `status === 'completed'`**. Non-zero exits / timeouts throw a
|
|
222
|
+
* {@link PersonaExecutionError}, and cancellation throws an `AbortError`;
|
|
223
|
+
* both carry a typed `.result` for inspection. See {@link ExecuteResult}
|
|
224
|
+
* for the full outcome contract.
|
|
225
|
+
*
|
|
226
|
+
* ⚠️ **Do not combine the two modes without `installSkills: false`.**
|
|
227
|
+
* Running `spawnSync(installCommandString, ...)` *and then* calling
|
|
228
|
+
* `execute(task)` without passing `installSkills: false` will install
|
|
229
|
+
* the persona's skills twice. The default value of `installSkills` is
|
|
230
|
+
* `true` (see {@link ExecuteOptions}).
|
|
231
|
+
*
|
|
232
|
+
* A third usage is install-only: if all you want is to materialize
|
|
233
|
+
* the persona's skills into the repo (for a human or another tool
|
|
234
|
+
* to use), run `installCommandString` and never call `execute()`.
|
|
235
|
+
*/
|
|
236
|
+
export interface PersonaContext {
|
|
237
|
+
/** Resolved persona: id, tier, runtime (harness + model), and skills. */
|
|
238
|
+
readonly selection: PersonaSelection;
|
|
239
|
+
/** Pure plan of what would be installed and where (no side effects). */
|
|
240
|
+
readonly installPlan: SkillMaterializationPlan;
|
|
241
|
+
/** argv form of the install command — safer for `execFile`/`spawn` callers. */
|
|
242
|
+
readonly installCommand: readonly string[];
|
|
243
|
+
/** Shell-escaped form of the install command — convenient for `spawn(..., { shell: true })`. */
|
|
244
|
+
readonly installCommandString: string;
|
|
245
|
+
/**
|
|
246
|
+
* Run the persona against `task`. Builds an ad-hoc agent-relay workflow,
|
|
247
|
+
* optionally runs `prpm install` as its first step (see
|
|
248
|
+
* {@link ExecuteOptions.installSkills}, default `true`), then invokes the
|
|
249
|
+
* persona's harness agent with the task. Returns a {@link PersonaExecution}
|
|
250
|
+
* (an awaitable promise with `cancel()` and `runId` attached).
|
|
251
|
+
*/
|
|
252
|
+
execute(task: string, options?: ExecuteOptions): PersonaExecution;
|
|
253
|
+
}
|
|
254
|
+
export declare class PersonaExecutionError extends Error {
|
|
255
|
+
readonly result: ExecuteResult;
|
|
256
|
+
cause?: unknown;
|
|
257
|
+
constructor(message: string, result: ExecuteResult, cause?: unknown);
|
|
258
|
+
}
|
|
79
259
|
/**
|
|
80
260
|
* Given a set of persona skills and the harness the persona will run under,
|
|
81
261
|
* produce the concrete install plan: which `prpm install` invocations to run
|
|
@@ -100,5 +280,82 @@ export declare function resolvePersona(intent: PersonaIntent, profile?: RoutingP
|
|
|
100
280
|
* Prefer resolvePersona(intent, profile) for policy-driven selection.
|
|
101
281
|
*/
|
|
102
282
|
export declare function resolvePersonaByTier(intent: PersonaIntent, tier?: PersonaTier): PersonaSelection;
|
|
283
|
+
/**
|
|
284
|
+
* Resolve a persona for `intent` and return a {@link PersonaContext}
|
|
285
|
+
* bundling the resolved persona, its skill install plan, and an
|
|
286
|
+
* `execute()` closure for running the persona against a task.
|
|
287
|
+
*
|
|
288
|
+
* **This is not a React hook.** The `use*` prefix is unfortunate — it is
|
|
289
|
+
* a plain synchronous factory with no implicit state, no side effects,
|
|
290
|
+
* and no rules-of-hooks constraints. Calling `usePersona(intent)` does
|
|
291
|
+
* nothing but resolve routing config and pre-compute the install plan.
|
|
292
|
+
* Nothing is installed, spawned, or written to disk until you call
|
|
293
|
+
* `execute()` (or run the install command yourself).
|
|
294
|
+
*
|
|
295
|
+
* See {@link PersonaContext} for the two usage modes (let `execute()`
|
|
296
|
+
* handle install vs. pre-stage install and pass `installSkills: false`)
|
|
297
|
+
* and the double-install caveat.
|
|
298
|
+
*
|
|
299
|
+
* @example
|
|
300
|
+
* // Mode A — let execute() install skills and run the agent in one call.
|
|
301
|
+
* // Only `status: 'completed'` resolves; non-zero exits / timeouts throw
|
|
302
|
+
* // PersonaExecutionError and cancellation throws AbortError, both with
|
|
303
|
+
* // the typed ExecuteResult attached as `err.result`.
|
|
304
|
+
* const { execute } = usePersona('npm-provenance');
|
|
305
|
+
* try {
|
|
306
|
+
* const result = await execute('Set up npm trusted publishing for this repo', {
|
|
307
|
+
* workingDirectory: '.',
|
|
308
|
+
* timeoutSeconds: 600,
|
|
309
|
+
* });
|
|
310
|
+
* // result.status === 'completed' here
|
|
311
|
+
* } catch (err) {
|
|
312
|
+
* const execErr = err as Error & { result?: ExecuteResult };
|
|
313
|
+
* console.error('persona run failed', execErr.result?.status, execErr.result?.stderr);
|
|
314
|
+
* }
|
|
315
|
+
*
|
|
316
|
+
* @example
|
|
317
|
+
* // Mode B — pre-stage install out-of-band (e.g. in a Dockerfile), then
|
|
318
|
+
* // run at runtime without re-installing:
|
|
319
|
+
* const { installCommandString, execute } = usePersona('npm-provenance');
|
|
320
|
+
* // build/CI step:
|
|
321
|
+
* spawnSync(installCommandString, { shell: true, stdio: 'inherit' });
|
|
322
|
+
* // runtime step:
|
|
323
|
+
* const result = await execute('Your task', {
|
|
324
|
+
* workingDirectory: '.',
|
|
325
|
+
* installSkills: false,
|
|
326
|
+
* });
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* // Cancellation + streaming progress. Aborting causes `await run` to
|
|
330
|
+
* // throw an AbortError with `err.result.status === 'cancelled'`, so
|
|
331
|
+
* // wrap in try/catch if you plan to abort.
|
|
332
|
+
* const abort = new AbortController();
|
|
333
|
+
* const run = usePersona('npm-provenance').execute('Your task', {
|
|
334
|
+
* signal: abort.signal,
|
|
335
|
+
* onProgress: ({ stream, text }) => process[stream].write(text),
|
|
336
|
+
* });
|
|
337
|
+
* run.runId.then((id) => console.log('workflow run id:', id));
|
|
338
|
+
* // ...later:
|
|
339
|
+
* abort.abort(); // or: run.cancel('user requested');
|
|
340
|
+
* try {
|
|
341
|
+
* const result = await run;
|
|
342
|
+
* // result.status === 'completed'
|
|
343
|
+
* } catch (err) {
|
|
344
|
+
* const execErr = err as Error & { result?: ExecuteResult };
|
|
345
|
+
* // execErr.name === 'AbortError' and execErr.result?.status === 'cancelled'
|
|
346
|
+
* }
|
|
347
|
+
*
|
|
348
|
+
* @param intent The persona intent to resolve (e.g. `'npm-provenance'`).
|
|
349
|
+
* @param options Optional overrides. `harness` forces a specific harness
|
|
350
|
+
* (otherwise inferred from the selected tier's runtime).
|
|
351
|
+
* `tier` bypasses profile-driven routing and selects a tier
|
|
352
|
+
* directly (legacy path — prefer `profile`). `profile`
|
|
353
|
+
* selects the routing profile (defaults to `'default'`).
|
|
354
|
+
*/
|
|
355
|
+
export declare function usePersona(intent: PersonaIntent, options?: {
|
|
356
|
+
harness?: Harness;
|
|
357
|
+
tier?: PersonaTier;
|
|
358
|
+
profile?: RoutingProfile | RoutingProfileId;
|
|
359
|
+
}): PersonaContext;
|
|
103
360
|
export * from './eval.js';
|
|
104
361
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { resolve as resolvePath } from 'node:path';
|
|
1
4
|
import { frontendImplementer, codeReviewer, architecturePlanner, requirementsAnalyst, debuggerPersona, securityReviewer, technicalWriter, verifierPersona, testStrategist, tddGuard, flakeHunter, opencodeWorkflowSpecialist, npmProvenancePublisher, cloudSandboxInfra } from './generated/personas.js';
|
|
2
5
|
import defaultRoutingProfileJson from '../routing-profiles/default.json' with { type: 'json' };
|
|
3
6
|
export const HARNESS_VALUES = ['opencode', 'codex', 'claude'];
|
|
@@ -40,6 +43,24 @@ export const HARNESS_SKILL_TARGETS = {
|
|
|
40
43
|
codex: { asFlag: 'codex', dir: '.agents/skills' },
|
|
41
44
|
opencode: { asFlag: 'opencode', dir: '.skills' }
|
|
42
45
|
};
|
|
46
|
+
export class PersonaExecutionError extends Error {
|
|
47
|
+
result;
|
|
48
|
+
cause;
|
|
49
|
+
constructor(message, result, cause) {
|
|
50
|
+
super(message, cause === undefined ? undefined : { cause });
|
|
51
|
+
this.name = 'PersonaExecutionError';
|
|
52
|
+
this.result = result;
|
|
53
|
+
this.cause = cause;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
class CapturedCommandError extends Error {
|
|
57
|
+
capture;
|
|
58
|
+
constructor(message, capture) {
|
|
59
|
+
super(message);
|
|
60
|
+
this.name = 'CapturedCommandError';
|
|
61
|
+
this.capture = capture;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
43
64
|
const PRPM_URL_RE = /^https?:\/\/prpm\.dev\/packages\/([^/\s?#]+)\/([^/\s?#]+)\/?(?:[?#].*)?$/i;
|
|
44
65
|
const PRPM_BARE_REF_RE = /^([^/\s]+)\/([^/\s]+)$/;
|
|
45
66
|
function resolveSkillSource(source) {
|
|
@@ -103,6 +124,259 @@ export function materializeSkills(skills, harness) {
|
|
|
103
124
|
export function materializeSkillsFor(selection) {
|
|
104
125
|
return materializeSkills(selection.skills, selection.runtime.harness);
|
|
105
126
|
}
|
|
127
|
+
function shellEscape(value) {
|
|
128
|
+
if (/^[A-Za-z0-9_./:@%+=,-]+$/.test(value)) {
|
|
129
|
+
return value;
|
|
130
|
+
}
|
|
131
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
132
|
+
}
|
|
133
|
+
function commandToShellString(command) {
|
|
134
|
+
return command.map(shellEscape).join(' ');
|
|
135
|
+
}
|
|
136
|
+
function buildInstallArtifacts(plan) {
|
|
137
|
+
const installCommandString = plan.installs.length === 0
|
|
138
|
+
? ':'
|
|
139
|
+
: plan.installs.map((install) => commandToShellString(install.installCommand)).join(' && ');
|
|
140
|
+
return {
|
|
141
|
+
installCommand: Object.freeze(['sh', '-c', installCommandString]),
|
|
142
|
+
installCommandString
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function buildExecutionTask(systemPrompt, task, inputs) {
|
|
146
|
+
const sections = [`System Instructions:\n${systemPrompt.trim()}`, `Task:\n${task.trim()}`];
|
|
147
|
+
if (inputs && Object.keys(inputs).length > 0) {
|
|
148
|
+
sections.push(`Additional Inputs (JSON):\n${JSON.stringify(inputs, null, 2)}`);
|
|
149
|
+
}
|
|
150
|
+
return sections.join('\n\n');
|
|
151
|
+
}
|
|
152
|
+
function hash8(value) {
|
|
153
|
+
return createHash('sha256').update(value).digest('hex').slice(0, 8);
|
|
154
|
+
}
|
|
155
|
+
function sanitizeExecutionName(value) {
|
|
156
|
+
const sanitized = value
|
|
157
|
+
.trim()
|
|
158
|
+
.toLowerCase()
|
|
159
|
+
.replace(/[^a-z0-9_.-]+/g, '-')
|
|
160
|
+
.replace(/^-+|-+$/g, '');
|
|
161
|
+
return sanitized || `persona-${hash8(value)}`;
|
|
162
|
+
}
|
|
163
|
+
function createDeferred() {
|
|
164
|
+
let settled = false;
|
|
165
|
+
let resolveFn;
|
|
166
|
+
let rejectFn;
|
|
167
|
+
const promise = new Promise((resolve, reject) => {
|
|
168
|
+
resolveFn = (value) => {
|
|
169
|
+
settled = true;
|
|
170
|
+
resolve(value);
|
|
171
|
+
};
|
|
172
|
+
rejectFn = (reason) => {
|
|
173
|
+
settled = true;
|
|
174
|
+
reject(reason);
|
|
175
|
+
};
|
|
176
|
+
});
|
|
177
|
+
return {
|
|
178
|
+
promise,
|
|
179
|
+
resolve: resolveFn,
|
|
180
|
+
reject: rejectFn,
|
|
181
|
+
get settled() {
|
|
182
|
+
return settled;
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
function createAbortError(message) {
|
|
187
|
+
const error = new Error(message);
|
|
188
|
+
error.name = 'AbortError';
|
|
189
|
+
return error;
|
|
190
|
+
}
|
|
191
|
+
function isTimeoutError(message) {
|
|
192
|
+
return typeof message === 'string' && /timed out/i.test(message);
|
|
193
|
+
}
|
|
194
|
+
function deepFreeze(value) {
|
|
195
|
+
if (value === null || value === undefined || typeof value !== 'object') {
|
|
196
|
+
return value;
|
|
197
|
+
}
|
|
198
|
+
if (Array.isArray(value)) {
|
|
199
|
+
for (const entry of value) {
|
|
200
|
+
deepFreeze(entry);
|
|
201
|
+
}
|
|
202
|
+
return Object.freeze(value);
|
|
203
|
+
}
|
|
204
|
+
for (const nested of Object.values(value)) {
|
|
205
|
+
deepFreeze(nested);
|
|
206
|
+
}
|
|
207
|
+
return Object.freeze(value);
|
|
208
|
+
}
|
|
209
|
+
function linkAbortSignal(signal, controller) {
|
|
210
|
+
if (!signal) {
|
|
211
|
+
return () => { };
|
|
212
|
+
}
|
|
213
|
+
if (signal.aborted) {
|
|
214
|
+
controller.abort(signal.reason);
|
|
215
|
+
return () => { };
|
|
216
|
+
}
|
|
217
|
+
const onAbort = () => controller.abort(signal.reason);
|
|
218
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
219
|
+
return () => signal.removeEventListener('abort', onAbort);
|
|
220
|
+
}
|
|
221
|
+
async function runCapturedCommand(options) {
|
|
222
|
+
const { command, args, cwd, env, timeoutMs, signal, onSpawn, onProgress } = options;
|
|
223
|
+
return new Promise((resolve, reject) => {
|
|
224
|
+
if (signal?.aborted) {
|
|
225
|
+
reject(createAbortError('Execution aborted before the process started'));
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
const child = spawn(command, args, {
|
|
229
|
+
cwd,
|
|
230
|
+
env,
|
|
231
|
+
stdio: ['ignore', 'pipe', 'pipe']
|
|
232
|
+
});
|
|
233
|
+
let stdout = '';
|
|
234
|
+
let stderr = '';
|
|
235
|
+
let timedOut = false;
|
|
236
|
+
let timeoutId;
|
|
237
|
+
let killId;
|
|
238
|
+
let abortDelayId;
|
|
239
|
+
const cleanup = () => {
|
|
240
|
+
if (timeoutId) {
|
|
241
|
+
clearTimeout(timeoutId);
|
|
242
|
+
}
|
|
243
|
+
if (killId) {
|
|
244
|
+
clearTimeout(killId);
|
|
245
|
+
}
|
|
246
|
+
if (abortDelayId) {
|
|
247
|
+
clearTimeout(abortDelayId);
|
|
248
|
+
}
|
|
249
|
+
if (signal && abortHandler) {
|
|
250
|
+
signal.removeEventListener('abort', abortHandler);
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
const terminate = () => {
|
|
254
|
+
child.kill('SIGTERM');
|
|
255
|
+
killId = setTimeout(() => child.kill('SIGKILL'), 5_000);
|
|
256
|
+
killId.unref?.();
|
|
257
|
+
};
|
|
258
|
+
const abortHandler = () => {
|
|
259
|
+
if (stdout.length === 0 && stderr.length === 0) {
|
|
260
|
+
abortDelayId = setTimeout(() => {
|
|
261
|
+
abortDelayId = undefined;
|
|
262
|
+
terminate();
|
|
263
|
+
}, 15);
|
|
264
|
+
abortDelayId.unref?.();
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
terminate();
|
|
268
|
+
};
|
|
269
|
+
if (signal) {
|
|
270
|
+
signal.addEventListener('abort', abortHandler, { once: true });
|
|
271
|
+
}
|
|
272
|
+
if (timeoutMs !== undefined) {
|
|
273
|
+
timeoutId = setTimeout(() => {
|
|
274
|
+
timedOut = true;
|
|
275
|
+
child.kill('SIGTERM');
|
|
276
|
+
killId = setTimeout(() => child.kill('SIGKILL'), 5_000);
|
|
277
|
+
killId.unref?.();
|
|
278
|
+
}, timeoutMs);
|
|
279
|
+
timeoutId.unref?.();
|
|
280
|
+
}
|
|
281
|
+
child.stdout?.on('data', (chunk) => {
|
|
282
|
+
const text = chunk.toString();
|
|
283
|
+
stdout += text;
|
|
284
|
+
onProgress?.({ stream: 'stdout', text });
|
|
285
|
+
});
|
|
286
|
+
child.stderr?.on('data', (chunk) => {
|
|
287
|
+
const text = chunk.toString();
|
|
288
|
+
stderr += text;
|
|
289
|
+
onProgress?.({ stream: 'stderr', text });
|
|
290
|
+
});
|
|
291
|
+
onSpawn?.();
|
|
292
|
+
child.once('error', (error) => {
|
|
293
|
+
cleanup();
|
|
294
|
+
reject(error);
|
|
295
|
+
});
|
|
296
|
+
child.once('close', (code, exitSignal) => {
|
|
297
|
+
cleanup();
|
|
298
|
+
const capture = {
|
|
299
|
+
stdout,
|
|
300
|
+
stderr,
|
|
301
|
+
exitCode: code,
|
|
302
|
+
exitSignal: exitSignal ?? null
|
|
303
|
+
};
|
|
304
|
+
if (signal?.aborted) {
|
|
305
|
+
const error = createAbortError('Execution cancelled');
|
|
306
|
+
Object.assign(error, { capture });
|
|
307
|
+
reject(error);
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
if (timedOut) {
|
|
311
|
+
reject(new CapturedCommandError(`Command timed out after ${timeoutMs ?? 'unknown'}ms`, capture));
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
resolve(capture);
|
|
315
|
+
});
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
function createLocalExecutor(stepCaptures, options, buildCommand) {
|
|
319
|
+
const execute = async (stepName, command, args, cwd, timeoutMs, ignoreExitCode = false) => {
|
|
320
|
+
const partialCapture = {
|
|
321
|
+
stdout: '',
|
|
322
|
+
stderr: '',
|
|
323
|
+
exitCode: null,
|
|
324
|
+
exitSignal: null
|
|
325
|
+
};
|
|
326
|
+
try {
|
|
327
|
+
const capture = await runCapturedCommand({
|
|
328
|
+
command,
|
|
329
|
+
args,
|
|
330
|
+
cwd,
|
|
331
|
+
env: options.env,
|
|
332
|
+
timeoutMs,
|
|
333
|
+
signal: options.signal,
|
|
334
|
+
onSpawn: () => {
|
|
335
|
+
stepCaptures.set(stepName, { ...partialCapture });
|
|
336
|
+
options.onStepSpawn?.(stepName);
|
|
337
|
+
},
|
|
338
|
+
onProgress: (chunk) => {
|
|
339
|
+
if (chunk.stream === 'stdout') {
|
|
340
|
+
partialCapture.stdout += chunk.text;
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
partialCapture.stderr += chunk.text;
|
|
344
|
+
}
|
|
345
|
+
stepCaptures.set(stepName, { ...partialCapture });
|
|
346
|
+
options.onStepProgress?.(stepName, chunk);
|
|
347
|
+
options.onProgress?.(chunk);
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
stepCaptures.set(stepName, capture);
|
|
351
|
+
if (!ignoreExitCode && capture.exitCode !== null && capture.exitCode !== 0) {
|
|
352
|
+
throw new CapturedCommandError(`Step "${stepName}" exited with code ${capture.exitCode}`, capture);
|
|
353
|
+
}
|
|
354
|
+
return capture;
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
const capture = error instanceof CapturedCommandError ? error.capture : error.capture;
|
|
358
|
+
if (capture) {
|
|
359
|
+
stepCaptures.set(stepName, capture);
|
|
360
|
+
}
|
|
361
|
+
throw error;
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
return {
|
|
365
|
+
async executeAgentStep(step, agentDef, resolvedTask, timeoutMs) {
|
|
366
|
+
const extraArgs = agentDef.constraints?.model ? ['--model', agentDef.constraints.model] : undefined;
|
|
367
|
+
const [command, ...args] = buildCommand(agentDef.cli, extraArgs, resolvedTask);
|
|
368
|
+
const capture = await execute(step.name, command, args, resolvePath(step.cwd ?? options.cwd), timeoutMs, agentDef.cli === 'opencode');
|
|
369
|
+
return capture.stdout;
|
|
370
|
+
},
|
|
371
|
+
async executeDeterministicStep(step, resolvedCommand, cwd) {
|
|
372
|
+
const capture = await execute(step.name, 'sh', ['-c', resolvedCommand], resolvePath(cwd), step.timeoutMs);
|
|
373
|
+
return {
|
|
374
|
+
output: capture.stdout,
|
|
375
|
+
exitCode: capture.exitCode ?? 0
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
}
|
|
106
380
|
function isObject(value) {
|
|
107
381
|
return typeof value === 'object' && value !== null;
|
|
108
382
|
}
|
|
@@ -287,5 +561,263 @@ export function resolvePersonaByTier(intent, tier = 'best-value') {
|
|
|
287
561
|
rationale: `legacy-tier-override: ${tier}`
|
|
288
562
|
};
|
|
289
563
|
}
|
|
564
|
+
/**
|
|
565
|
+
* Resolve a persona for `intent` and return a {@link PersonaContext}
|
|
566
|
+
* bundling the resolved persona, its skill install plan, and an
|
|
567
|
+
* `execute()` closure for running the persona against a task.
|
|
568
|
+
*
|
|
569
|
+
* **This is not a React hook.** The `use*` prefix is unfortunate — it is
|
|
570
|
+
* a plain synchronous factory with no implicit state, no side effects,
|
|
571
|
+
* and no rules-of-hooks constraints. Calling `usePersona(intent)` does
|
|
572
|
+
* nothing but resolve routing config and pre-compute the install plan.
|
|
573
|
+
* Nothing is installed, spawned, or written to disk until you call
|
|
574
|
+
* `execute()` (or run the install command yourself).
|
|
575
|
+
*
|
|
576
|
+
* See {@link PersonaContext} for the two usage modes (let `execute()`
|
|
577
|
+
* handle install vs. pre-stage install and pass `installSkills: false`)
|
|
578
|
+
* and the double-install caveat.
|
|
579
|
+
*
|
|
580
|
+
* @example
|
|
581
|
+
* // Mode A — let execute() install skills and run the agent in one call.
|
|
582
|
+
* // Only `status: 'completed'` resolves; non-zero exits / timeouts throw
|
|
583
|
+
* // PersonaExecutionError and cancellation throws AbortError, both with
|
|
584
|
+
* // the typed ExecuteResult attached as `err.result`.
|
|
585
|
+
* const { execute } = usePersona('npm-provenance');
|
|
586
|
+
* try {
|
|
587
|
+
* const result = await execute('Set up npm trusted publishing for this repo', {
|
|
588
|
+
* workingDirectory: '.',
|
|
589
|
+
* timeoutSeconds: 600,
|
|
590
|
+
* });
|
|
591
|
+
* // result.status === 'completed' here
|
|
592
|
+
* } catch (err) {
|
|
593
|
+
* const execErr = err as Error & { result?: ExecuteResult };
|
|
594
|
+
* console.error('persona run failed', execErr.result?.status, execErr.result?.stderr);
|
|
595
|
+
* }
|
|
596
|
+
*
|
|
597
|
+
* @example
|
|
598
|
+
* // Mode B — pre-stage install out-of-band (e.g. in a Dockerfile), then
|
|
599
|
+
* // run at runtime without re-installing:
|
|
600
|
+
* const { installCommandString, execute } = usePersona('npm-provenance');
|
|
601
|
+
* // build/CI step:
|
|
602
|
+
* spawnSync(installCommandString, { shell: true, stdio: 'inherit' });
|
|
603
|
+
* // runtime step:
|
|
604
|
+
* const result = await execute('Your task', {
|
|
605
|
+
* workingDirectory: '.',
|
|
606
|
+
* installSkills: false,
|
|
607
|
+
* });
|
|
608
|
+
*
|
|
609
|
+
* @example
|
|
610
|
+
* // Cancellation + streaming progress. Aborting causes `await run` to
|
|
611
|
+
* // throw an AbortError with `err.result.status === 'cancelled'`, so
|
|
612
|
+
* // wrap in try/catch if you plan to abort.
|
|
613
|
+
* const abort = new AbortController();
|
|
614
|
+
* const run = usePersona('npm-provenance').execute('Your task', {
|
|
615
|
+
* signal: abort.signal,
|
|
616
|
+
* onProgress: ({ stream, text }) => process[stream].write(text),
|
|
617
|
+
* });
|
|
618
|
+
* run.runId.then((id) => console.log('workflow run id:', id));
|
|
619
|
+
* // ...later:
|
|
620
|
+
* abort.abort(); // or: run.cancel('user requested');
|
|
621
|
+
* try {
|
|
622
|
+
* const result = await run;
|
|
623
|
+
* // result.status === 'completed'
|
|
624
|
+
* } catch (err) {
|
|
625
|
+
* const execErr = err as Error & { result?: ExecuteResult };
|
|
626
|
+
* // execErr.name === 'AbortError' and execErr.result?.status === 'cancelled'
|
|
627
|
+
* }
|
|
628
|
+
*
|
|
629
|
+
* @param intent The persona intent to resolve (e.g. `'npm-provenance'`).
|
|
630
|
+
* @param options Optional overrides. `harness` forces a specific harness
|
|
631
|
+
* (otherwise inferred from the selected tier's runtime).
|
|
632
|
+
* `tier` bypasses profile-driven routing and selects a tier
|
|
633
|
+
* directly (legacy path — prefer `profile`). `profile`
|
|
634
|
+
* selects the routing profile (defaults to `'default'`).
|
|
635
|
+
*/
|
|
636
|
+
export function usePersona(intent, options = {}) {
|
|
637
|
+
const baseSelection = options.tier
|
|
638
|
+
? resolvePersonaByTier(intent, options.tier)
|
|
639
|
+
: resolvePersona(intent, options.profile ?? 'default');
|
|
640
|
+
const effectiveHarness = options.harness ?? baseSelection.runtime.harness;
|
|
641
|
+
const selection = effectiveHarness === baseSelection.runtime.harness
|
|
642
|
+
? baseSelection
|
|
643
|
+
: {
|
|
644
|
+
...baseSelection,
|
|
645
|
+
runtime: {
|
|
646
|
+
...baseSelection.runtime,
|
|
647
|
+
harness: effectiveHarness
|
|
648
|
+
}
|
|
649
|
+
};
|
|
650
|
+
const installPlan = effectiveHarness === baseSelection.runtime.harness
|
|
651
|
+
? materializeSkillsFor(selection)
|
|
652
|
+
: materializeSkills(selection.skills, effectiveHarness);
|
|
653
|
+
const { installCommand, installCommandString } = buildInstallArtifacts(installPlan);
|
|
654
|
+
const frozenSelection = deepFreeze(selection);
|
|
655
|
+
const frozenInstallPlan = deepFreeze(installPlan);
|
|
656
|
+
const execute = (task, executeOptions = {}) => {
|
|
657
|
+
const runId = createDeferred();
|
|
658
|
+
// The primary rejection path for any failure in execute() is `resultPromise`
|
|
659
|
+
// (which the caller awaits via `await execution`). `runId.promise` is an
|
|
660
|
+
// auxiliary promise that mirrors the same rejection when early setup fails
|
|
661
|
+
// before the workflow has actually started. Callers are not required to
|
|
662
|
+
// consume `execution.runId`, so attach a no-op catch here to suppress
|
|
663
|
+
// the unhandled-rejection warning (and, under Node's default
|
|
664
|
+
// --unhandled-rejections=throw, an uncaught-exception crash) that would
|
|
665
|
+
// otherwise fire when both of those conditions hold simultaneously.
|
|
666
|
+
runId.promise.catch(() => { });
|
|
667
|
+
const abortController = new AbortController();
|
|
668
|
+
const unlinkAbort = linkAbortSignal(executeOptions.signal, abortController);
|
|
669
|
+
const stepName = sanitizeExecutionName(executeOptions.name ?? `${frozenSelection.personaId}-${hash8(task)}`);
|
|
670
|
+
const workflowName = `use-persona-${stepName}`;
|
|
671
|
+
const installStepName = `${stepName}-install-skills`;
|
|
672
|
+
const workingDirectory = resolvePath(executeOptions.workingDirectory ?? process.cwd());
|
|
673
|
+
const timeoutMs = Math.max(1, Math.round((executeOptions.timeoutSeconds ?? frozenSelection.runtime.harnessSettings.timeoutSeconds) * 1000));
|
|
674
|
+
const shouldInstallSkills = executeOptions.installSkills !== false && frozenInstallPlan.installs.length > 0;
|
|
675
|
+
const stepCaptures = new Map();
|
|
676
|
+
let cancelReason;
|
|
677
|
+
let workflowRunId;
|
|
678
|
+
let runIdReadyTimer;
|
|
679
|
+
const resolveRunId = (value = workflowRunId) => {
|
|
680
|
+
if (runIdReadyTimer) {
|
|
681
|
+
clearTimeout(runIdReadyTimer);
|
|
682
|
+
runIdReadyTimer = undefined;
|
|
683
|
+
}
|
|
684
|
+
if (value && !runId.settled) {
|
|
685
|
+
runId.resolve(value);
|
|
686
|
+
}
|
|
687
|
+
};
|
|
688
|
+
const resultPromise = (async () => {
|
|
689
|
+
try {
|
|
690
|
+
const { InMemoryWorkflowDb, WorkflowRunner, buildCommand, workflow } = await import('@agent-relay/sdk/workflows');
|
|
691
|
+
const executor = createLocalExecutor(stepCaptures, {
|
|
692
|
+
cwd: workingDirectory,
|
|
693
|
+
env: { ...process.env, ...executeOptions.env },
|
|
694
|
+
signal: abortController.signal,
|
|
695
|
+
onStepSpawn: (startedStepName) => {
|
|
696
|
+
if (startedStepName !== stepName || runId.settled || runIdReadyTimer) {
|
|
697
|
+
return;
|
|
698
|
+
}
|
|
699
|
+
runIdReadyTimer = setTimeout(() => resolveRunId(), 250);
|
|
700
|
+
runIdReadyTimer.unref?.();
|
|
701
|
+
},
|
|
702
|
+
onStepProgress: (progressStepName) => {
|
|
703
|
+
if (progressStepName === stepName) {
|
|
704
|
+
resolveRunId();
|
|
705
|
+
}
|
|
706
|
+
},
|
|
707
|
+
onProgress: executeOptions.onProgress
|
|
708
|
+
}, buildCommand);
|
|
709
|
+
const runner = new WorkflowRunner({
|
|
710
|
+
cwd: workingDirectory,
|
|
711
|
+
db: new InMemoryWorkflowDb(),
|
|
712
|
+
executor
|
|
713
|
+
});
|
|
714
|
+
runner.on((event) => {
|
|
715
|
+
if (event.type === 'run:started') {
|
|
716
|
+
workflowRunId = event.runId;
|
|
717
|
+
}
|
|
718
|
+
if ((event.type === 'step:completed' || event.type === 'step:failed') &&
|
|
719
|
+
event.stepName === stepName) {
|
|
720
|
+
resolveRunId(event.runId);
|
|
721
|
+
}
|
|
722
|
+
});
|
|
723
|
+
const agentName = `${stepName}-agent`;
|
|
724
|
+
const builder = workflow(workflowName)
|
|
725
|
+
.description(`Ad-hoc persona execution for ${frozenSelection.personaId}`)
|
|
726
|
+
.pattern('dag')
|
|
727
|
+
.timeout(timeoutMs)
|
|
728
|
+
.trajectories(false)
|
|
729
|
+
.agent(agentName, {
|
|
730
|
+
cli: frozenSelection.runtime.harness,
|
|
731
|
+
model: frozenSelection.runtime.model,
|
|
732
|
+
role: frozenSelection.personaId,
|
|
733
|
+
preset: 'worker',
|
|
734
|
+
interactive: false,
|
|
735
|
+
timeoutMs
|
|
736
|
+
});
|
|
737
|
+
if (shouldInstallSkills) {
|
|
738
|
+
builder.step(installStepName, {
|
|
739
|
+
type: 'deterministic',
|
|
740
|
+
command: installCommandString,
|
|
741
|
+
cwd: workingDirectory,
|
|
742
|
+
timeoutMs,
|
|
743
|
+
captureOutput: true,
|
|
744
|
+
failOnError: true
|
|
745
|
+
});
|
|
746
|
+
}
|
|
747
|
+
builder.step(stepName, {
|
|
748
|
+
agent: agentName,
|
|
749
|
+
task: buildExecutionTask(frozenSelection.runtime.systemPrompt, task, executeOptions.inputs),
|
|
750
|
+
cwd: workingDirectory,
|
|
751
|
+
timeoutMs,
|
|
752
|
+
verification: { type: 'exit_code', value: '0' },
|
|
753
|
+
...(shouldInstallSkills ? { dependsOn: [installStepName] } : {})
|
|
754
|
+
});
|
|
755
|
+
if (abortController.signal.aborted) {
|
|
756
|
+
runner.abort();
|
|
757
|
+
}
|
|
758
|
+
else {
|
|
759
|
+
abortController.signal.addEventListener('abort', () => runner.abort(), { once: true });
|
|
760
|
+
}
|
|
761
|
+
const run = (await runner.execute(builder.toConfig()));
|
|
762
|
+
if (!runId.settled) {
|
|
763
|
+
runId.resolve(run.id);
|
|
764
|
+
}
|
|
765
|
+
const primaryCapture = stepCaptures.get(stepName);
|
|
766
|
+
const fallbackCapture = shouldInstallSkills ? stepCaptures.get(installStepName) : undefined;
|
|
767
|
+
const capture = primaryCapture ?? fallbackCapture;
|
|
768
|
+
const result = {
|
|
769
|
+
status: run.status === 'cancelled'
|
|
770
|
+
? 'cancelled'
|
|
771
|
+
: run.status === 'failed' && isTimeoutError(run.error)
|
|
772
|
+
? 'timeout'
|
|
773
|
+
: run.status === 'completed'
|
|
774
|
+
? 'completed'
|
|
775
|
+
: 'failed',
|
|
776
|
+
output: capture?.stdout ?? '',
|
|
777
|
+
stderr: capture?.stderr ?? '',
|
|
778
|
+
exitCode: capture?.exitCode ?? null,
|
|
779
|
+
durationMs: Date.now() - (Date.parse(run.startedAt) || Date.now()),
|
|
780
|
+
workflowRunId: run.id,
|
|
781
|
+
stepName
|
|
782
|
+
};
|
|
783
|
+
if (run.status === 'completed') {
|
|
784
|
+
return result;
|
|
785
|
+
}
|
|
786
|
+
if (run.status === 'cancelled') {
|
|
787
|
+
const error = createAbortError(cancelReason ?? 'Execution cancelled');
|
|
788
|
+
Object.assign(error, { result });
|
|
789
|
+
throw error;
|
|
790
|
+
}
|
|
791
|
+
throw new PersonaExecutionError(run.error ?? `Persona execution failed for step "${stepName}"`, result);
|
|
792
|
+
}
|
|
793
|
+
catch (error) {
|
|
794
|
+
if (!runId.settled) {
|
|
795
|
+
runId.reject(error);
|
|
796
|
+
}
|
|
797
|
+
throw error;
|
|
798
|
+
}
|
|
799
|
+
finally {
|
|
800
|
+
if (runIdReadyTimer) {
|
|
801
|
+
clearTimeout(runIdReadyTimer);
|
|
802
|
+
}
|
|
803
|
+
unlinkAbort();
|
|
804
|
+
}
|
|
805
|
+
})();
|
|
806
|
+
return Object.assign(resultPromise, {
|
|
807
|
+
cancel(reason) {
|
|
808
|
+
cancelReason = reason;
|
|
809
|
+
abortController.abort(reason);
|
|
810
|
+
},
|
|
811
|
+
runId: runId.promise
|
|
812
|
+
});
|
|
813
|
+
};
|
|
814
|
+
return Object.freeze({
|
|
815
|
+
selection: frozenSelection,
|
|
816
|
+
installPlan: frozenInstallPlan,
|
|
817
|
+
installCommand,
|
|
818
|
+
installCommandString,
|
|
819
|
+
execute
|
|
820
|
+
});
|
|
821
|
+
}
|
|
290
822
|
export * from './eval.js';
|
|
291
823
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACzS,OAAO,yBAAyB,MAAM,kCAAkC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE/F,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AACvE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAU,CAAC;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oBAAoB;IACpB,QAAQ;IACR,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,qBAAqB;IACrB,+BAA+B;IAC/B,gBAAgB;IAChB,qBAAqB;CACb,CAAC;AAwDX,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,8DAA8D;AAC9D,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,mEAAmE;AACnE,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,kEAAkE;AAElE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAU,CAAC;AAWpD,MAAM,CAAC,MAAM,qBAAqB,GAAwC;IACxE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE;IACnD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE;IACjD,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;CACjD,CAAC;AAuMF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,MAAM,CAAgB;IACtB,KAAK,CAAW;IAEzB,YAAY,OAAe,EAAE,MAAqB,EAAE,KAAe;QACjE,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAgBD,MAAM,oBAAqB,SAAQ,KAAK;IAC7B,OAAO,CAAiB;IAEjC,YAAY,OAAe,EAAE,OAAuB;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,WAAW,GACf,2EAA2E,CAAC;AAC9E,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAOlD,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACvE,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACjD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,IAAI;QACrC,mFAAmF;QACnF,uCAAuC,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA+B,EAC/B,OAAgB;IAEhB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAgB,EAAE;QAClD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;QACtD,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,IAAI;YAChB,UAAU;YACV,OAAO;YACP,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC5B,KAAK;gBACL,IAAI;gBACJ,MAAM;gBACN,SAAS;gBACT,UAAU;gBACV,MAAM;gBACN,MAAM,CAAC,MAAM;aACd,CAAsB;YACvB,YAAY;YACZ,iBAAiB,EAAE,GAAG,YAAY,WAAW;SAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA2B;IAC9D,OAAO,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA0B;IACtD,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA8B;IAI3D,MAAM,oBAAoB,GACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhG,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAsB;QACtF,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,YAAoB,EACpB,IAAY,EACZ,MAAkD;IAElD,MAAM,QAAQ,GAAG,CAAC,yBAAyB,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3F,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,MAAM,SAAS,GAAG,KAAK;SACpB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,SAAS,IAAI,WAAW,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAkC,CAAC;IACvC,IAAI,QAAgC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO;QACP,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,IAAI,OAAO;YACT,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAA2B;IACjD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAM,CAAC;IACnC,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAM,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CAAC,MAA+B,EAAE,UAA2B;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OASjC;IACC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACpF,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,gBAAgB,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,GAAG;YACH,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAqC,CAAC;QAC1C,IAAI,MAAkC,CAAC;QACvC,IAAI,YAAwC,CAAC;QAE7C,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;gBAC3B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC7B,YAAY,GAAG,SAAS,CAAC;oBACzB,SAAS,EAAE,CAAC;gBACd,CAAC,EAAE,EAAE,CAAC,CAAC;gBACP,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,SAAS,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,QAAQ,GAAG,IAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxD,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,CAAC,EAAE,SAAS,CAAC,CAAC;YACd,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,IAAI,CAAC;YACf,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,IAAI,CAAC;YACf,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,CAAC;QAEZ,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;YACvC,OAAO,EAAE,CAAC;YACV,MAAM,OAAO,GAAmB;gBAC9B,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAG,UAAoC,IAAI,IAAI;aAC1D,CAAC;YAEF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;gBACtD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CACJ,IAAI,oBAAoB,CACtB,2BAA2B,SAAS,IAAI,SAAS,IAAI,EACrD,OAAO,CACR,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAAyC,EACzC,OAUC,EACD,YAAuF;IAEvF,MAAM,OAAO,GAAG,KAAK,EACnB,QAAgB,EAChB,OAAe,EACf,IAAc,EACd,GAAW,EACX,SAAkB,EAClB,cAAc,GAAG,KAAK,EACG,EAAE;QAC3B,MAAM,cAAc,GAAmB;YACrC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SACjB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;gBACvC,OAAO;gBACP,IAAI;gBACJ,GAAG;gBACH,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,SAAS;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;oBAClD,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;oBACpB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC9B,cAAc,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACN,cAAc,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;oBACtC,CAAC;oBACD,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;oBAClD,OAAO,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC1C,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;aACF,CAAC,CAAC;YACH,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,oBAAoB,CAC5B,SAAS,QAAQ,sBAAsB,OAAO,CAAC,QAAQ,EAAE,EACzD,OAAO,CACR,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,KAAsC,CAAC,OAAO,CAAC;YACxH,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS;YAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAc,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAC1F,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,IAAI,CAAC,IAAI,EACT,OAAO,EACP,IAAI,EACJ,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EACpC,SAAS,EACT,QAAQ,CAAC,GAAG,KAAK,UAAU,CAC5B,CAAC;YACF,OAAO,OAAO,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG;YACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,CAAC,IAAI,EAAE,eAAe,CAAC,EACvB,WAAW,CAAC,GAAG,CAAC,EAChB,IAAI,CAAC,SAAS,CACf,CAAC;YACF,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;aAChC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAgB,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAoB,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAsB,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,OAAe;IACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAEhE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,4BAA4B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,mCAAmC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0CAA0C,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oCAAoC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC;IACtD,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oDAAoD,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,2DAA2D,CAAC,CAAC;IACzF,CAAC;IAED,OAAO;QACL,OAAO;QACP,KAAK;QACL,YAAY;QACZ,eAAe,EAAE;YACf,SAAS,EAAE,SAAyC;YACpD,cAAc;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,OAAe;IAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,+BAA+B,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC9B,MAAM,YAAY,GAAG,GAAG,OAAO,IAAI,GAAG,GAAG,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,oBAAoB,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAC1C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,gCAAgC,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,oCAAoC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,yCAAyC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,cAA6B;IACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,qBAAqB,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,qBAAqB,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,0BAA0B,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,0CAA0C,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,WAAW,cAAc,2BAA2B,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,WAAW,GAAG,EAAyC,CAAC;IAC9D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,cAAc,WAAW,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,cAAc,UAAU,CAAC,CAAC;IAE9E,OAAO;QACL,EAAE;QACF,MAAM;QACN,WAAW;QACX,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,WAAW;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,OAAe;IAC1D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC3C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,gCAAgC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,yCAAyC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,4BAA4B,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,aAAa,GAAG,EAA+C,CAAC;IACtE,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,YAAY,MAAM,oBAAoB,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,YAAY,MAAM,yBAAyB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,YAAY,MAAM,uCAAuC,CAAC,CAAC;QACvF,CAAC;QACD,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,EAAE;QACF,WAAW;QACX,OAAO,EAAE,aAAa;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAuC;IAChE,oBAAoB,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IACjF,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC;IAChD,mBAAmB,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC/E,uBAAuB,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;IACvF,SAAS,EAAE,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC;IACzD,iBAAiB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACxE,aAAa,EAAE,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC;IACjE,YAAY,EAAE,gBAAgB,CAAC,eAAe,EAAE,cAAc,CAAC;IAC/D,eAAe,EAAE,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC;IAClE,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAChE,qBAAqB,EAAE,gBAAgB,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC3E,+BAA+B,EAAE,gBAAgB,CAC/C,0BAA0B,EAC1B,+BAA+B,CAChC;IACD,gBAAgB,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;IAC5E,qBAAqB,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;CAClF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;CAC1E,CAAC;AAIX,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,UAA6C,SAAS;IAC1G,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACrF,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,GAAG,WAAW,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE;KAClD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB,EAAE,OAAoB,YAAY;IAC1F,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,IAAI;QACJ,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,yBAAyB,IAAI,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,MAAM,UAAU,UAAU,CACxB,MAAqB,EACrB,UAII,EAAE;IAEN,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI;QAChC,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAEzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1E,MAAM,SAAS,GACb,gBAAgB,KAAK,aAAa,CAAC,OAAO,CAAC,OAAO;QAChD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC;YACE,GAAG,aAAa;YAChB,OAAO,EAAE;gBACP,GAAG,aAAa,CAAC,OAAO;gBACxB,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAC;IAER,MAAM,WAAW,GACf,gBAAgB,KAAK,aAAa,CAAC,OAAO,CAAC,OAAO;QAChD,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE5D,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACpF,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,iBAAiC,EAAE,EAAoB,EAAE;QACtF,MAAM,KAAK,GAAG,cAAc,EAAU,CAAC;QACvC,6EAA6E;QAC7E,yEAAyE;QACzE,2EAA2E;QAC3E,wEAAwE;QACxE,sEAAsE;QACtE,6DAA6D;QAC7D,wEAAwE;QACxE,oEAAoE;QACpE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,qBAAqB,CACpC,cAAc,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CACrE,CAAC;QACF,MAAM,YAAY,GAAG,eAAe,QAAQ,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAG,GAAG,QAAQ,iBAAiB,CAAC;QACrD,MAAM,gBAAgB,GAAG,WAAW,CAAC,cAAc,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,CAAC,EACD,IAAI,CAAC,KAAK,CACR,CAAC,cAAc,CAAC,cAAc,IAAI,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,IAAI,CACjG,CACF,CAAC;QACF,MAAM,mBAAmB,GACvB,cAAc,CAAC,aAAa,KAAK,KAAK,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;QACvD,IAAI,YAAgC,CAAC;QACrC,IAAI,aAAiC,CAAC;QACtC,IAAI,eAA2C,CAAC;QAEhD,MAAM,YAAY,GAAG,CAAC,KAAK,GAAG,aAAa,EAAE,EAAE;YAC7C,IAAI,eAAe,EAAE,CAAC;gBACpB,YAAY,CAAC,eAAe,CAAC,CAAC;gBAC9B,eAAe,GAAG,SAAS,CAAC;YAC9B,CAAC;YACD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,KAAK,IAA4B,EAAE;YACxD,IAAI,CAAC;gBACH,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CACjF,4BAA4B,CAC7B,CAAC;gBACF,MAAM,QAAQ,GAAG,mBAAmB,CAClC,YAAY,EACZ;oBACE,GAAG,EAAE,gBAAgB;oBACrB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE;oBAC9C,MAAM,EAAE,eAAe,CAAC,MAAM;oBAC9B,WAAW,EAAE,CAAC,eAAe,EAAE,EAAE;wBAC/B,IAAI,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;4BACrE,OAAO;wBACT,CAAC;wBAED,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;wBACxD,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC5B,CAAC;oBACD,cAAc,EAAE,CAAC,gBAAgB,EAAE,EAAE;wBACnC,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;4BAClC,YAAY,EAAE,CAAC;wBACjB,CAAC;oBACH,CAAC;oBACD,UAAU,EAAE,cAAc,CAAC,UAAU;iBACtC,EACD,YAAY,CACb,CAAC;gBACF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;oBAChC,GAAG,EAAE,gBAAgB;oBACrB,EAAE,EAAE,IAAI,kBAAkB,EAAE;oBAC5B,QAAQ;iBACT,CAAC,CAAC;gBAEH,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBACjC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC9B,CAAC;oBAED,IACE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;wBACjE,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAC3B,CAAC;wBACD,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,GAAG,QAAQ,QAAQ,CAAC;gBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;qBACnC,WAAW,CAAC,gCAAgC,eAAe,CAAC,SAAS,EAAE,CAAC;qBACxE,OAAO,CAAC,KAAK,CAAC;qBACd,OAAO,CAAC,SAAS,CAAC;qBAClB,YAAY,CAAC,KAAK,CAAC;qBACnB,KAAK,CAAC,SAAS,EAAE;oBAChB,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO;oBACpC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK;oBACpC,IAAI,EAAE,eAAe,CAAC,SAAS;oBAC/B,MAAM,EAAE,QAAQ;oBAChB,WAAW,EAAE,KAAK;oBAClB,SAAS;iBACV,CAAC,CAAC;gBAEL,IAAI,mBAAmB,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;wBAC5B,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,oBAAoB;wBAC7B,GAAG,EAAE,gBAAgB;wBACrB,SAAS;wBACT,aAAa,EAAE,IAAI;wBACnB,WAAW,EAAE,IAAI;qBAClB,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACrB,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,kBAAkB,CACtB,eAAe,CAAC,OAAO,CAAC,YAAY,EACpC,IAAI,EACJ,cAAc,CAAC,MAAM,CACtB;oBACD,GAAG,EAAE,gBAAgB;oBACrB,SAAS;oBACT,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;oBAC/C,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE,CAAC,CAAC;gBAEH,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAmB,CAAC;gBACzE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,CAAC;gBAED,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5F,MAAM,OAAO,GAAG,cAAc,IAAI,eAAe,CAAC;gBAClD,MAAM,MAAM,GAAkB;oBAC5B,MAAM,EACJ,GAAG,CAAC,MAAM,KAAK,WAAW;wBACxB,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;4BACpD,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW;gCAC1B,CAAC,CAAC,WAAW;gCACb,CAAC,CAAC,QAAQ;oBAClB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;oBAC7B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;oBAC7B,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;oBACnC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClE,aAAa,EAAE,GAAG,CAAC,EAAE;oBACrB,QAAQ;iBACT,CAAC;gBAEF,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC/B,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,YAAY,IAAI,qBAAqB,CAAC,CAAC;oBACtE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;oBACjC,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,qBAAqB,CAC7B,GAAG,CAAC,KAAK,IAAI,sCAAsC,QAAQ,GAAG,EAC9D,MAAM,CACP,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,IAAI,eAAe,EAAE,CAAC;oBACpB,YAAY,CAAC,eAAe,CAAC,CAAC;gBAChC,CAAC;gBACD,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;YAClC,MAAM,CAAC,MAAe;gBACpB,YAAY,GAAG,MAAM,CAAC;gBACtB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,KAAK,EAAE,KAAK,CAAC,OAAO;SACrB,CAAqB,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,iBAAiB;QAC9B,cAAc;QACd,oBAAoB;QACpB,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,cAAc,WAAW,CAAC"}
|
package/dist/index.test.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import test from 'node:test';
|
|
2
2
|
import assert from 'node:assert/strict';
|
|
3
|
-
import {
|
|
3
|
+
import { chmodSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { HARNESS_SKILL_TARGETS, HARNESS_VALUES, PersonaExecutionError, materializeSkills, materializeSkillsFor, personaCatalog, resolvePersona, resolvePersonaByTier, usePersona } from './index.js';
|
|
7
|
+
function writeNodeExecutable(dir, name, source) {
|
|
8
|
+
const filePath = join(dir, name);
|
|
9
|
+
writeFileSync(filePath, `#!/usr/bin/env node\n${source}\n`, 'utf8');
|
|
10
|
+
chmodSync(filePath, 0o755);
|
|
11
|
+
return filePath;
|
|
12
|
+
}
|
|
13
|
+
function buildEnv(dir, extra = {}) {
|
|
14
|
+
return {
|
|
15
|
+
...process.env,
|
|
16
|
+
PATH: `${dir}:${process.env.PATH ?? ''}`,
|
|
17
|
+
...extra
|
|
18
|
+
};
|
|
19
|
+
}
|
|
4
20
|
test('resolves frontend implementer from default routing profile', () => {
|
|
5
21
|
const result = resolvePersona('implement-frontend');
|
|
6
22
|
assert.equal(result.personaId, 'frontend-implementer');
|
|
@@ -196,4 +212,136 @@ test('materializeSkills handles personas with no skills', () => {
|
|
|
196
212
|
const plan = materializeSkills([], 'claude');
|
|
197
213
|
assert.equal(plan.installs.length, 0);
|
|
198
214
|
});
|
|
215
|
+
test('usePersona combines selection, install plan, and install commands into a frozen context', () => {
|
|
216
|
+
const context = usePersona('npm-provenance');
|
|
217
|
+
const selection = resolvePersona('npm-provenance');
|
|
218
|
+
const plan = materializeSkillsFor(selection);
|
|
219
|
+
assert.deepEqual(context.selection, selection);
|
|
220
|
+
assert.deepEqual(context.installPlan, plan);
|
|
221
|
+
assert.equal(context.installCommand[0], 'sh');
|
|
222
|
+
assert.match(context.installCommandString, /prpm install/);
|
|
223
|
+
assert.ok(Object.isFrozen(context));
|
|
224
|
+
assert.ok(Object.isFrozen(context.selection));
|
|
225
|
+
assert.ok(Object.isFrozen(context.installPlan));
|
|
226
|
+
assert.ok(Object.isFrozen(context.installCommand));
|
|
227
|
+
});
|
|
228
|
+
test('usePersona.execute runs the selected harness and returns stdout, stderr, and run metadata', async () => {
|
|
229
|
+
const dir = mkdtempSync(join(tmpdir(), 'use-persona-success-'));
|
|
230
|
+
try {
|
|
231
|
+
writeNodeExecutable(dir, 'codex', `
|
|
232
|
+
const { writeFileSync } = require('node:fs');
|
|
233
|
+
const args = process.argv.slice(2);
|
|
234
|
+
writeFileSync('codex-args.json', JSON.stringify(args), 'utf8');
|
|
235
|
+
writeFileSync('codex-env.json', JSON.stringify({ TEST_ENV: process.env.TEST_ENV }), 'utf8');
|
|
236
|
+
process.stdout.write('stub-stdout');
|
|
237
|
+
process.stderr.write('stub-stderr');
|
|
238
|
+
`);
|
|
239
|
+
const context = usePersona('architecture-plan', { harness: 'codex' });
|
|
240
|
+
const progress = [];
|
|
241
|
+
const execution = context.execute('Draft the migration plan', {
|
|
242
|
+
workingDirectory: dir,
|
|
243
|
+
env: buildEnv(dir, { TEST_ENV: 'persona-execute' }),
|
|
244
|
+
onProgress: (chunk) => progress.push(chunk)
|
|
245
|
+
});
|
|
246
|
+
const runId = await execution.runId;
|
|
247
|
+
const result = await execution;
|
|
248
|
+
const args = JSON.parse(readFileSync(join(dir, 'codex-args.json'), 'utf8'));
|
|
249
|
+
const env = JSON.parse(readFileSync(join(dir, 'codex-env.json'), 'utf8'));
|
|
250
|
+
assert.equal(result.status, 'completed');
|
|
251
|
+
assert.equal(result.output, 'stub-stdout');
|
|
252
|
+
assert.equal(result.stderr, 'stub-stderr');
|
|
253
|
+
assert.equal(result.exitCode, 0);
|
|
254
|
+
assert.equal(result.workflowRunId, runId);
|
|
255
|
+
assert.deepEqual(args.slice(0, 2), ['exec', '--dangerously-bypass-approvals-and-sandbox']);
|
|
256
|
+
assert.match(args[2], /System Instructions:/);
|
|
257
|
+
assert.match(args[2], /Draft the migration plan/);
|
|
258
|
+
assert.deepEqual(env, { TEST_ENV: 'persona-execute' });
|
|
259
|
+
assert.deepEqual(progress, [
|
|
260
|
+
{ stream: 'stdout', text: 'stub-stdout' },
|
|
261
|
+
{ stream: 'stderr', text: 'stub-stderr' }
|
|
262
|
+
]);
|
|
263
|
+
}
|
|
264
|
+
finally {
|
|
265
|
+
rmSync(dir, { recursive: true, force: true });
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
test('usePersona.execute installs persona skills before running the agent step', async () => {
|
|
269
|
+
const dir = mkdtempSync(join(tmpdir(), 'use-persona-install-'));
|
|
270
|
+
try {
|
|
271
|
+
writeNodeExecutable(dir, 'npx', `
|
|
272
|
+
const { writeFileSync } = require('node:fs');
|
|
273
|
+
writeFileSync('install-ran.txt', process.argv.slice(2).join(' '), 'utf8');
|
|
274
|
+
`);
|
|
275
|
+
writeNodeExecutable(dir, 'codex', `
|
|
276
|
+
const { existsSync, writeFileSync } = require('node:fs');
|
|
277
|
+
if (!existsSync('install-ran.txt')) {
|
|
278
|
+
process.stderr.write('install step did not run');
|
|
279
|
+
process.exit(9);
|
|
280
|
+
}
|
|
281
|
+
writeFileSync('agent-saw-install.txt', 'yes', 'utf8');
|
|
282
|
+
process.stdout.write('agent-after-install');
|
|
283
|
+
`);
|
|
284
|
+
const context = usePersona('npm-provenance', { harness: 'codex' });
|
|
285
|
+
const result = await context.execute('Configure publishing', {
|
|
286
|
+
workingDirectory: dir,
|
|
287
|
+
env: buildEnv(dir)
|
|
288
|
+
});
|
|
289
|
+
assert.equal(result.status, 'completed');
|
|
290
|
+
assert.match(readFileSync(join(dir, 'install-ran.txt'), 'utf8'), /prpm install/);
|
|
291
|
+
assert.equal(readFileSync(join(dir, 'agent-saw-install.txt'), 'utf8'), 'yes');
|
|
292
|
+
}
|
|
293
|
+
finally {
|
|
294
|
+
rmSync(dir, { recursive: true, force: true });
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
test('usePersona.execute maps non-zero exits to PersonaExecutionError with captured stderr', async () => {
|
|
298
|
+
const dir = mkdtempSync(join(tmpdir(), 'use-persona-fail-'));
|
|
299
|
+
try {
|
|
300
|
+
writeNodeExecutable(dir, 'codex', `
|
|
301
|
+
process.stderr.write('boom');
|
|
302
|
+
process.exit(17);
|
|
303
|
+
`);
|
|
304
|
+
const context = usePersona('architecture-plan', { harness: 'codex' });
|
|
305
|
+
await assert.rejects(context.execute('Fail this run', {
|
|
306
|
+
workingDirectory: dir,
|
|
307
|
+
env: buildEnv(dir)
|
|
308
|
+
}), (error) => {
|
|
309
|
+
assert.ok(error instanceof PersonaExecutionError);
|
|
310
|
+
assert.equal(error.result.status, 'failed');
|
|
311
|
+
assert.equal(error.result.exitCode, 17);
|
|
312
|
+
assert.equal(error.result.stderr, 'boom');
|
|
313
|
+
return true;
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
finally {
|
|
317
|
+
rmSync(dir, { recursive: true, force: true });
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
test('usePersona.execute supports cancellation via AbortSignal', async () => {
|
|
321
|
+
const dir = mkdtempSync(join(tmpdir(), 'use-persona-cancel-'));
|
|
322
|
+
try {
|
|
323
|
+
writeNodeExecutable(dir, 'codex', `
|
|
324
|
+
process.stdout.write('started');
|
|
325
|
+
setInterval(() => {}, 1_000);
|
|
326
|
+
`);
|
|
327
|
+
const controller = new AbortController();
|
|
328
|
+
const context = usePersona('architecture-plan', { harness: 'codex' });
|
|
329
|
+
const execution = context.execute('Wait for cancellation', {
|
|
330
|
+
workingDirectory: dir,
|
|
331
|
+
env: buildEnv(dir),
|
|
332
|
+
signal: controller.signal
|
|
333
|
+
});
|
|
334
|
+
await execution.runId;
|
|
335
|
+
controller.abort();
|
|
336
|
+
await assert.rejects(execution, (error) => {
|
|
337
|
+
const abortError = error;
|
|
338
|
+
assert.equal(abortError.name, 'AbortError');
|
|
339
|
+
assert.equal(abortError.result?.status, 'cancelled');
|
|
340
|
+
return true;
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
finally {
|
|
344
|
+
rmSync(dir, { recursive: true, force: true });
|
|
345
|
+
}
|
|
346
|
+
});
|
|
199
347
|
//# sourceMappingURL=index.test.js.map
|
package/dist/index.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentworkforce/workload-router",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
"README.md",
|
|
18
18
|
"package.json"
|
|
19
19
|
],
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@agent-relay/sdk": "^4.0.5"
|
|
22
|
+
},
|
|
20
23
|
"repository": {
|
|
21
24
|
"type": "git",
|
|
22
25
|
"url": "https://github.com/AgentWorkforce/workforce"
|