@agentworkforce/workload-router 0.1.2 → 0.1.4

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/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":"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"}