@agent-relay/sdk 3.2.14 → 3.2.16
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/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/dist/broker-path.d.ts +19 -0
- package/dist/broker-path.d.ts.map +1 -0
- package/dist/broker-path.js +71 -0
- package/dist/broker-path.js.map +1 -0
- package/dist/cli-registry.d.ts.map +1 -1
- package/dist/cli-registry.js +10 -1
- package/dist/cli-registry.js.map +1 -1
- package/dist/client.d.ts +6 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +18 -0
- package/dist/client.js.map +1 -1
- package/dist/communicate/adapters/index.d.ts +0 -5
- package/dist/communicate/adapters/index.d.ts.map +1 -1
- package/dist/communicate/adapters/index.js +0 -5
- package/dist/communicate/adapters/index.js.map +1 -1
- package/dist/communicate/adapters/pi.d.ts +0 -1
- package/dist/communicate/adapters/pi.d.ts.map +1 -1
- package/dist/communicate/adapters/pi.js +0 -4
- package/dist/communicate/adapters/pi.js.map +1 -1
- package/dist/communicate/core.d.ts.map +1 -1
- package/dist/communicate/core.js +2 -3
- package/dist/communicate/core.js.map +1 -1
- package/dist/communicate/index.d.ts +17 -1
- package/dist/communicate/index.d.ts.map +1 -1
- package/dist/communicate/index.js +40 -1
- package/dist/communicate/index.js.map +1 -1
- package/dist/communicate/transport.d.ts +0 -1
- package/dist/communicate/transport.d.ts.map +1 -1
- package/dist/communicate/transport.js +42 -134
- package/dist/communicate/transport.js.map +1 -1
- package/dist/http.d.ts +38 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +60 -0
- package/dist/http.js.map +1 -0
- package/dist/protocol.d.ts +25 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/relay.d.ts +26 -3
- package/dist/relay.d.ts.map +1 -1
- package/dist/relay.js +62 -4
- package/dist/relay.js.map +1 -1
- package/dist/workflows/api-executor.d.ts +16 -0
- package/dist/workflows/api-executor.d.ts.map +1 -0
- package/dist/workflows/api-executor.js +94 -0
- package/dist/workflows/api-executor.js.map +1 -0
- package/dist/workflows/builder.d.ts +14 -0
- package/dist/workflows/builder.d.ts.map +1 -1
- package/dist/workflows/builder.js +26 -0
- package/dist/workflows/builder.js.map +1 -1
- package/dist/workflows/cloud-runner.d.ts +15 -0
- package/dist/workflows/cloud-runner.d.ts.map +1 -0
- package/dist/workflows/cloud-runner.js +41 -0
- package/dist/workflows/cloud-runner.js.map +1 -0
- package/dist/workflows/index.d.ts +2 -0
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +1 -0
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/run.d.ts.map +1 -1
- package/dist/workflows/run.js +4 -0
- package/dist/workflows/run.js.map +1 -1
- package/dist/workflows/runner.d.ts +14 -0
- package/dist/workflows/runner.d.ts.map +1 -1
- package/dist/workflows/runner.js +154 -10
- package/dist/workflows/runner.js.map +1 -1
- package/dist/workflows/types.d.ts +13 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/types.js +5 -1
- package/dist/workflows/types.js.map +1 -1
- package/dist/workflows/validator.d.ts.map +1 -1
- package/dist/workflows/validator.js +12 -0
- package/dist/workflows/validator.js.map +1 -1
- package/package.json +13 -3
|
@@ -2,6 +2,7 @@ import { stringify as stringifyYaml } from 'yaml';
|
|
|
2
2
|
import { WorkflowRunner } from './runner.js';
|
|
3
3
|
import { formatDryRunReport } from './dry-run-format.js';
|
|
4
4
|
import { createDefaultEventLogger } from './default-logger.js';
|
|
5
|
+
import { runInCloud } from './cloud-runner.js';
|
|
5
6
|
// ── WorkflowBuilder ─────────────────────────────────────────────────────────
|
|
6
7
|
/**
|
|
7
8
|
* Fluent builder for constructing workflow configurations programmatically.
|
|
@@ -59,6 +60,11 @@ export class WorkflowBuilder {
|
|
|
59
60
|
}
|
|
60
61
|
/** Set the relay channel for agent communication. */
|
|
61
62
|
channel(ch) {
|
|
63
|
+
const CHANNEL_RE = /^[a-z0-9][a-z0-9-]*$/;
|
|
64
|
+
if (!CHANNEL_RE.test(ch)) {
|
|
65
|
+
throw new Error(`Invalid channel name "${ch}". Channel names must be lowercase alphanumeric and hyphens, starting with a letter or number. ` +
|
|
66
|
+
`Fix: use .toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '')`);
|
|
67
|
+
}
|
|
62
68
|
this._channel = ch;
|
|
63
69
|
return this;
|
|
64
70
|
}
|
|
@@ -108,6 +114,8 @@ export class WorkflowBuilder {
|
|
|
108
114
|
def.preset = options.preset;
|
|
109
115
|
if (options.interactive !== undefined)
|
|
110
116
|
def.interactive = options.interactive;
|
|
117
|
+
if (options.skills !== undefined)
|
|
118
|
+
def.skills = options.skills;
|
|
111
119
|
if (options.model !== undefined ||
|
|
112
120
|
options.maxTokens !== undefined ||
|
|
113
121
|
options.timeoutMs !== undefined ||
|
|
@@ -258,6 +266,7 @@ export class WorkflowBuilder {
|
|
|
258
266
|
cwd: options.cwd,
|
|
259
267
|
relay: options.relay,
|
|
260
268
|
executor: options.executor,
|
|
269
|
+
envSecrets: options.envSecrets,
|
|
261
270
|
});
|
|
262
271
|
// Auto-detect DRY_RUN env var so existing scripts get dry-run for free
|
|
263
272
|
const isDryRun = options.dryRun ?? !!process.env.DRY_RUN;
|
|
@@ -266,6 +275,23 @@ export class WorkflowBuilder {
|
|
|
266
275
|
console.log(formatDryRunReport(report));
|
|
267
276
|
return report;
|
|
268
277
|
}
|
|
278
|
+
// Cloud execution path — submit to remote API and poll for completion
|
|
279
|
+
if (options.cloud) {
|
|
280
|
+
const cloudApiUrl = options.cloudApiUrl ?? process.env.CLOUD_API_URL;
|
|
281
|
+
const cloudApiToken = options.cloudApiToken ?? process.env.CLOUD_API_TOKEN;
|
|
282
|
+
if (!cloudApiUrl)
|
|
283
|
+
throw new Error('cloud: true requires cloudApiUrl or CLOUD_API_URL env var');
|
|
284
|
+
if (!cloudApiToken)
|
|
285
|
+
throw new Error('cloud: true requires cloudApiToken or CLOUD_API_TOKEN env var');
|
|
286
|
+
return runInCloud(config, {
|
|
287
|
+
cloudApiUrl,
|
|
288
|
+
cloudApiToken,
|
|
289
|
+
envSecrets: options.envSecrets,
|
|
290
|
+
pollIntervalMs: options.cloudPollIntervalMs,
|
|
291
|
+
timeoutMs: this._timeoutMs,
|
|
292
|
+
onStatusChange: options.onCloudStatusChange,
|
|
293
|
+
});
|
|
294
|
+
}
|
|
269
295
|
// Wire up default console logger unless explicitly disabled
|
|
270
296
|
// renderer: "listr" owns the terminal — skip console logger to avoid garbled output
|
|
271
297
|
// renderer: false implies no output at all
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/workflows/builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/workflows/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud workflow runner — submits workflows to AgentWorkforce cloud API
|
|
3
|
+
* and polls for completion.
|
|
4
|
+
*/
|
|
5
|
+
import type { RelayYamlConfig, WorkflowRunRow, WorkflowRunStatus } from './types.js';
|
|
6
|
+
export interface CloudRunOptions {
|
|
7
|
+
cloudApiUrl: string;
|
|
8
|
+
cloudApiToken: string;
|
|
9
|
+
envSecrets?: Record<string, string>;
|
|
10
|
+
pollIntervalMs?: number;
|
|
11
|
+
timeoutMs?: number;
|
|
12
|
+
onStatusChange?: (status: WorkflowRunStatus, runId: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function runInCloud(config: RelayYamlConfig, options: CloudRunOptions): Promise<WorkflowRunRow>;
|
|
15
|
+
//# sourceMappingURL=cloud-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-runner.d.ts","sourceRoot":"","sources":["../../src/workflows/cloud-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAErF,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAwC3G"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export async function runInCloud(config, options) {
|
|
2
|
+
const { cloudApiUrl, cloudApiToken, envSecrets, pollIntervalMs = 3000, timeoutMs = 1800000 } = options;
|
|
3
|
+
const baseUrl = cloudApiUrl.replace(/\/$/, '');
|
|
4
|
+
const { stringify: stringifyYaml } = await import('yaml');
|
|
5
|
+
const yamlStr = stringifyYaml(config);
|
|
6
|
+
const submitRes = await fetch(`${baseUrl}/api/v1/workflows/run`, {
|
|
7
|
+
method: 'POST',
|
|
8
|
+
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${cloudApiToken}` },
|
|
9
|
+
body: JSON.stringify({ workflow: yamlStr, fileType: 'yaml', ...(envSecrets ? { envSecrets } : {}) }),
|
|
10
|
+
});
|
|
11
|
+
if (!submitRes.ok)
|
|
12
|
+
throw new Error(`Cloud submit failed (${submitRes.status}): ${await submitRes.text()}`);
|
|
13
|
+
const { runId } = (await submitRes.json());
|
|
14
|
+
const deadline = Date.now() + timeoutMs;
|
|
15
|
+
let lastStatus = 'pending';
|
|
16
|
+
while (Date.now() < deadline) {
|
|
17
|
+
await new Promise(r => setTimeout(r, pollIntervalMs));
|
|
18
|
+
const statusRes = await fetch(`${baseUrl}/api/v1/workflows/runs/${runId}`, {
|
|
19
|
+
headers: { 'Authorization': `Bearer ${cloudApiToken}` },
|
|
20
|
+
});
|
|
21
|
+
if (!statusRes.ok)
|
|
22
|
+
continue;
|
|
23
|
+
const data = (await statusRes.json());
|
|
24
|
+
if (data.status !== lastStatus) {
|
|
25
|
+
lastStatus = data.status;
|
|
26
|
+
options.onStatusChange?.(lastStatus, runId);
|
|
27
|
+
}
|
|
28
|
+
if (data.status === 'completed' || data.status === 'failed') {
|
|
29
|
+
return {
|
|
30
|
+
id: runId, workspaceId: '', workflowName: config.name ?? 'cloud-workflow',
|
|
31
|
+
pattern: config.swarm?.pattern ?? 'dag', status: data.status, config,
|
|
32
|
+
startedAt: data.createdAt ?? new Date().toISOString(),
|
|
33
|
+
completedAt: data.updatedAt ?? new Date().toISOString(),
|
|
34
|
+
error: data.error, createdAt: data.createdAt ?? new Date().toISOString(),
|
|
35
|
+
updatedAt: data.updatedAt ?? new Date().toISOString(),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
throw new Error(`Cloud workflow timed out after ${timeoutMs}ms (runId: ${runId})`);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=cloud-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-runner.js","sourceRoot":"","sources":["../../src/workflows/cloud-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,4 +16,6 @@ export { WorkflowTrajectory, type StepOutcome } from './trajectory.js';
|
|
|
16
16
|
export { formatDryRunReport } from './dry-run-format.js';
|
|
17
17
|
export { createWorkflowRenderer, type WorkflowRenderer } from './listr-renderer.js';
|
|
18
18
|
export { createDefaultEventLogger } from './default-logger.js';
|
|
19
|
+
export { executeApiStep, type ApiExecutorOptions } from './api-executor.js';
|
|
20
|
+
export type { CloudRunOptions } from './cloud-runner.js';
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/workflows/index.js
CHANGED
|
@@ -16,4 +16,5 @@ export { WorkflowTrajectory } from './trajectory.js';
|
|
|
16
16
|
export { formatDryRunReport } from './dry-run-format.js';
|
|
17
17
|
export { createWorkflowRenderer } from './listr-renderer.js';
|
|
18
18
|
export { createDefaultEventLogger } from './default-logger.js';
|
|
19
|
+
export { executeApiStep } from './api-executor.js';
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAoB,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAyB,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAoB,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAyB,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAA2B,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/workflows/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAkB,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/workflows/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAkB,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAI/F;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,gFAAgF;IAChF,YAAY,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACxC,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GAC7C,OAAO,CAAC,YAAY,CAAC,CAAC;AACzB,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC"}
|
package/dist/workflows/run.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WorkflowRunner } from './runner.js';
|
|
2
|
+
import { createDefaultEventLogger } from './default-logger.js';
|
|
2
3
|
import { formatDryRunReport } from './dry-run-format.js';
|
|
3
4
|
export async function runWorkflow(yamlPath, options = {}) {
|
|
4
5
|
const runner = new WorkflowRunner({
|
|
@@ -17,6 +18,9 @@ export async function runWorkflow(yamlPath, options = {}) {
|
|
|
17
18
|
console.log(formatDryRunReport(report));
|
|
18
19
|
return report;
|
|
19
20
|
}
|
|
21
|
+
// Attach default console logger so callers get progress output without
|
|
22
|
+
// needing to wire up their own handler.
|
|
23
|
+
runner.on(createDefaultEventLogger('normal'));
|
|
20
24
|
if (options.onEvent) {
|
|
21
25
|
runner.on(options.onEvent);
|
|
22
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/workflows/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAoD,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA4CzD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEpD,yCAAyC;IACzC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC7C,CAAC;IAED,uEAAuE;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IAEzD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,qCAAqC;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAChE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC3E,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAChF,CAAC"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/workflows/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAoD,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA4CzD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEpD,yCAAyC;IACzC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC7C,CAAC;IAED,uEAAuE;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IAEzD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uEAAuE;IACvE,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,qCAAqC;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAChE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC3E,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -101,6 +101,7 @@ export interface WorkflowRunnerOptions {
|
|
|
101
101
|
cwd?: string;
|
|
102
102
|
summaryDir?: string;
|
|
103
103
|
executor?: StepExecutor;
|
|
104
|
+
envSecrets?: Record<string, string>;
|
|
104
105
|
}
|
|
105
106
|
/**
|
|
106
107
|
* Extension point for delegating step execution to an external backend
|
|
@@ -113,6 +114,12 @@ export interface StepExecutor {
|
|
|
113
114
|
output: string;
|
|
114
115
|
exitCode: number;
|
|
115
116
|
}>;
|
|
117
|
+
executeIntegrationStep?(step: WorkflowStep, resolvedParams: Record<string, string>, context: {
|
|
118
|
+
workspaceId?: string;
|
|
119
|
+
}): Promise<{
|
|
120
|
+
output: string;
|
|
121
|
+
success: boolean;
|
|
122
|
+
}>;
|
|
116
123
|
}
|
|
117
124
|
export interface VariableContext {
|
|
118
125
|
[key: string]: string | number | boolean | undefined;
|
|
@@ -124,6 +131,7 @@ export declare class WorkflowRunner {
|
|
|
124
131
|
private readonly cwd;
|
|
125
132
|
private readonly summaryDir;
|
|
126
133
|
private readonly executor?;
|
|
134
|
+
private readonly envSecrets?;
|
|
127
135
|
/** @internal exposed for CLI signal-handler shutdown only */
|
|
128
136
|
relay?: AgentRelay;
|
|
129
137
|
private relaycast?;
|
|
@@ -280,6 +288,8 @@ export declare class WorkflowRunner {
|
|
|
280
288
|
private isDeterministicStep;
|
|
281
289
|
/** Check if a step is a worktree (git worktree setup) step. */
|
|
282
290
|
private isWorktreeStep;
|
|
291
|
+
/** Check if a step is an integration (external service) step. */
|
|
292
|
+
private isIntegrationStep;
|
|
283
293
|
private executeStep;
|
|
284
294
|
/**
|
|
285
295
|
* Execute a deterministic step (shell command).
|
|
@@ -292,6 +302,10 @@ export declare class WorkflowRunner {
|
|
|
292
302
|
* Outputs the worktree path for downstream steps to use.
|
|
293
303
|
*/
|
|
294
304
|
private executeWorktreeStep;
|
|
305
|
+
/**
|
|
306
|
+
* Execute an integration step (external service interaction via executor).
|
|
307
|
+
*/
|
|
308
|
+
private executeIntegrationStep;
|
|
295
309
|
/**
|
|
296
310
|
* Execute an agent step (LLM-powered).
|
|
297
311
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAYlD,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/workflows/runner.js
CHANGED
|
@@ -16,6 +16,7 @@ import { getCliDefinition } from '../cli-registry.js';
|
|
|
16
16
|
import { resolveCliSync } from '../cli-resolver.js';
|
|
17
17
|
import { loadCustomSteps, resolveAllCustomSteps, validateCustomStepsUsage, CustomStepsParseError, CustomStepResolutionError, } from './custom-steps.js';
|
|
18
18
|
import { collectCliSession } from './cli-session-collector.js';
|
|
19
|
+
import { executeApiStep } from './api-executor.js';
|
|
19
20
|
import { InMemoryWorkflowDb } from './memory-db.js';
|
|
20
21
|
import { formatRunSummaryTable } from './run-summary-table.js';
|
|
21
22
|
import { WorkflowTrajectory } from './trajectory.js';
|
|
@@ -60,6 +61,7 @@ export class WorkflowRunner {
|
|
|
60
61
|
cwd;
|
|
61
62
|
summaryDir;
|
|
62
63
|
executor;
|
|
64
|
+
envSecrets;
|
|
63
65
|
/** @internal exposed for CLI signal-handler shutdown only */
|
|
64
66
|
relay;
|
|
65
67
|
relaycast;
|
|
@@ -120,6 +122,7 @@ export class WorkflowRunner {
|
|
|
120
122
|
this.summaryDir = options.summaryDir ?? path.join(this.cwd, '.relay', 'summaries');
|
|
121
123
|
this.workersPath = path.join(this.cwd, '.agent-relay', 'team', 'workers.json');
|
|
122
124
|
this.executor = options.executor;
|
|
125
|
+
this.envSecrets = options.envSecrets;
|
|
123
126
|
}
|
|
124
127
|
// ── Path resolution ─────────────────────────────────────────────────────
|
|
125
128
|
/** Expand environment variables like $HOME or $VAR in a path string. */
|
|
@@ -1089,7 +1092,7 @@ export class WorkflowRunner {
|
|
|
1089
1092
|
}
|
|
1090
1093
|
// 6. Resource estimation
|
|
1091
1094
|
const peakConcurrency = Math.max(...waves.map((w) => w.steps.length), 0);
|
|
1092
|
-
const totalAgentSteps = resolvedSteps.filter((s) => s.type !== 'deterministic' && s.type !== 'worktree').length;
|
|
1095
|
+
const totalAgentSteps = resolvedSteps.filter((s) => s.type !== 'deterministic' && s.type !== 'worktree' && s.type !== 'integration').length;
|
|
1093
1096
|
// 7. Check maxConcurrency against wave widths
|
|
1094
1097
|
const maxConcurrency = resolved.swarm.maxConcurrency;
|
|
1095
1098
|
if (maxConcurrency !== undefined) {
|
|
@@ -1140,6 +1143,15 @@ export class WorkflowRunner {
|
|
|
1140
1143
|
throw new Error(`${source}: deterministic step "${s.name}" must have a "command" field`);
|
|
1141
1144
|
}
|
|
1142
1145
|
}
|
|
1146
|
+
else if (s.type === 'integration') {
|
|
1147
|
+
// Integration steps require integration and action
|
|
1148
|
+
if (typeof s.integration !== 'string') {
|
|
1149
|
+
throw new Error(`${source}: integration step "${s.name}" must have an "integration" string field`);
|
|
1150
|
+
}
|
|
1151
|
+
if (typeof s.action !== 'string') {
|
|
1152
|
+
throw new Error(`${source}: integration step "${s.name}" must have an "action" string field`);
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1143
1155
|
else {
|
|
1144
1156
|
// Agent steps (type undefined or 'agent') require agent and task
|
|
1145
1157
|
if (typeof s.agent !== 'string' || typeof s.task !== 'string') {
|
|
@@ -1162,7 +1174,7 @@ export class WorkflowRunner {
|
|
|
1162
1174
|
this.detectLeadWorkerDeadlock(w.steps, agents, source, w.name);
|
|
1163
1175
|
// Warn if non-interactive agent task is excessively large before interpolation
|
|
1164
1176
|
for (const step of w.steps) {
|
|
1165
|
-
if (step.type === 'deterministic' || step.type === 'worktree')
|
|
1177
|
+
if (step.type === 'deterministic' || step.type === 'worktree' || step.type === 'integration')
|
|
1166
1178
|
continue;
|
|
1167
1179
|
const agentDef = agents.find((a) => a.name === step.agent);
|
|
1168
1180
|
const isNonInteractive = agentDef?.interactive === false || ['worker', 'reviewer', 'analyst'].includes(agentDef?.preset ?? '');
|
|
@@ -1208,7 +1220,7 @@ export class WorkflowRunner {
|
|
|
1208
1220
|
}
|
|
1209
1221
|
for (const step of steps) {
|
|
1210
1222
|
// Only check interactive agent steps (leads)
|
|
1211
|
-
if (step.type === 'deterministic' || step.type === 'worktree')
|
|
1223
|
+
if (step.type === 'deterministic' || step.type === 'worktree' || step.type === 'integration')
|
|
1212
1224
|
continue;
|
|
1213
1225
|
const agentDef = agents.find((a) => a.name === step.agent);
|
|
1214
1226
|
// Skip non-interactive agents — they can't wait for channel signals
|
|
@@ -1255,6 +1267,15 @@ export class WorkflowRunner {
|
|
|
1255
1267
|
if (step.command) {
|
|
1256
1268
|
step.command = this.interpolate(step.command, vars);
|
|
1257
1269
|
}
|
|
1270
|
+
// Resolve variables in integration step params
|
|
1271
|
+
if (step.params && typeof step.params === 'object') {
|
|
1272
|
+
for (const key of Object.keys(step.params)) {
|
|
1273
|
+
const val = step.params[key];
|
|
1274
|
+
if (typeof val === 'string') {
|
|
1275
|
+
step.params[key] = this.interpolate(val, vars);
|
|
1276
|
+
}
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1258
1279
|
}
|
|
1259
1280
|
}
|
|
1260
1281
|
}
|
|
@@ -1372,8 +1393,8 @@ export class WorkflowRunner {
|
|
|
1372
1393
|
// Build step rows
|
|
1373
1394
|
const stepStates = new Map();
|
|
1374
1395
|
for (const step of resolvedWorkflow.steps) {
|
|
1375
|
-
// Handle agent, deterministic, and
|
|
1376
|
-
const isNonAgent = step.type === 'deterministic' || step.type === 'worktree';
|
|
1396
|
+
// Handle agent, deterministic, worktree, and integration steps
|
|
1397
|
+
const isNonAgent = step.type === 'deterministic' || step.type === 'worktree' || step.type === 'integration';
|
|
1377
1398
|
const stepRow = {
|
|
1378
1399
|
id: this.generateId(),
|
|
1379
1400
|
runId,
|
|
@@ -1385,7 +1406,9 @@ export class WorkflowRunner {
|
|
|
1385
1406
|
? (step.command ?? '')
|
|
1386
1407
|
: step.type === 'worktree'
|
|
1387
1408
|
? (step.branch ?? '')
|
|
1388
|
-
:
|
|
1409
|
+
: step.type === 'integration'
|
|
1410
|
+
? (`${step.integration}.${step.action}`)
|
|
1411
|
+
: (step.task ?? ''),
|
|
1389
1412
|
dependsOn: step.dependsOn ?? [],
|
|
1390
1413
|
retryCount: 0,
|
|
1391
1414
|
createdAt: now,
|
|
@@ -1525,7 +1548,7 @@ export class WorkflowRunner {
|
|
|
1525
1548
|
}
|
|
1526
1549
|
const relaycastDisabled = this.relayOptions.env?.AGENT_RELAY_WORKFLOW_DISABLE_RELAYCAST === '1';
|
|
1527
1550
|
const requiresBroker = !this.executor &&
|
|
1528
|
-
workflow.steps.some((step) => step.type !== 'deterministic' && step.type !== 'worktree');
|
|
1551
|
+
workflow.steps.some((step) => step.type !== 'deterministic' && step.type !== 'worktree' && step.type !== 'integration');
|
|
1529
1552
|
// Skip broker/relay init when an external executor handles agent spawning
|
|
1530
1553
|
if (requiresBroker) {
|
|
1531
1554
|
if (!relaycastDisabled) {
|
|
@@ -1710,8 +1733,16 @@ export class WorkflowRunner {
|
|
|
1710
1733
|
};
|
|
1711
1734
|
this.relaycast = undefined;
|
|
1712
1735
|
this.relaycastAgent = undefined;
|
|
1713
|
-
// Wire broker stderr to console for observability
|
|
1736
|
+
// Wire broker stderr to console for observability — skip empty and
|
|
1737
|
+
// JSON event lines (already surfaced via the broker:event emitter).
|
|
1714
1738
|
this.unsubBrokerStderr = this.relay.onBrokerStderr((line) => {
|
|
1739
|
+
const trimmed = line.trim();
|
|
1740
|
+
if (!trimmed)
|
|
1741
|
+
return;
|
|
1742
|
+
// JSON event lines from the Rust EventEmitter are already parsed
|
|
1743
|
+
// and emitted as broker:event — no need to double-log them.
|
|
1744
|
+
if (trimmed.startsWith('{') && trimmed.endsWith('}'))
|
|
1745
|
+
return;
|
|
1715
1746
|
console.log(`${chalk.dim.yellow('[broker]')} ${line}`);
|
|
1716
1747
|
});
|
|
1717
1748
|
if (!relaycastDisabled) {
|
|
@@ -2086,6 +2117,10 @@ export class WorkflowRunner {
|
|
|
2086
2117
|
isWorktreeStep(step) {
|
|
2087
2118
|
return step.type === 'worktree';
|
|
2088
2119
|
}
|
|
2120
|
+
/** Check if a step is an integration (external service) step. */
|
|
2121
|
+
isIntegrationStep(step) {
|
|
2122
|
+
return step.type === 'integration';
|
|
2123
|
+
}
|
|
2089
2124
|
async executeStep(step, stepStates, agentMap, errorHandling, runId) {
|
|
2090
2125
|
// Branch: deterministic steps execute shell commands
|
|
2091
2126
|
if (this.isDeterministicStep(step)) {
|
|
@@ -2095,6 +2130,10 @@ export class WorkflowRunner {
|
|
|
2095
2130
|
if (this.isWorktreeStep(step)) {
|
|
2096
2131
|
return this.executeWorktreeStep(step, stepStates, runId);
|
|
2097
2132
|
}
|
|
2133
|
+
// Branch: integration steps interact with external services
|
|
2134
|
+
if (this.isIntegrationStep(step)) {
|
|
2135
|
+
return this.executeIntegrationStep(step, stepStates, runId);
|
|
2136
|
+
}
|
|
2098
2137
|
// Agent step execution
|
|
2099
2138
|
return this.executeAgentStep(step, stepStates, agentMap, errorHandling, runId);
|
|
2100
2139
|
}
|
|
@@ -2489,6 +2528,64 @@ export class WorkflowRunner {
|
|
|
2489
2528
|
throw new Error(`Step "${step.name}" failed: ${errorMsg}`);
|
|
2490
2529
|
}
|
|
2491
2530
|
}
|
|
2531
|
+
/**
|
|
2532
|
+
* Execute an integration step (external service interaction via executor).
|
|
2533
|
+
*/
|
|
2534
|
+
async executeIntegrationStep(step, stepStates, runId) {
|
|
2535
|
+
const state = stepStates.get(step.name);
|
|
2536
|
+
if (!state)
|
|
2537
|
+
throw new Error(`Step state not found: ${step.name}`);
|
|
2538
|
+
this.checkAborted();
|
|
2539
|
+
// Mark step as running
|
|
2540
|
+
state.row.status = 'running';
|
|
2541
|
+
state.row.error = undefined;
|
|
2542
|
+
state.row.completionReason = undefined;
|
|
2543
|
+
state.row.startedAt = new Date().toISOString();
|
|
2544
|
+
await this.db.updateStep(state.row.id, {
|
|
2545
|
+
status: 'running',
|
|
2546
|
+
error: undefined,
|
|
2547
|
+
completionReason: undefined,
|
|
2548
|
+
startedAt: state.row.startedAt,
|
|
2549
|
+
updatedAt: new Date().toISOString(),
|
|
2550
|
+
});
|
|
2551
|
+
this.emit({ type: 'step:started', runId, stepName: step.name });
|
|
2552
|
+
this.postToChannel(`**[${step.name}]** Started (integration: ${step.integration}.${step.action})`);
|
|
2553
|
+
// Resolve {{steps.X.output}} in params
|
|
2554
|
+
const stepOutputContext = this.buildStepOutputContext(stepStates, runId);
|
|
2555
|
+
const resolvedParams = {};
|
|
2556
|
+
for (const [key, value] of Object.entries(step.params ?? {})) {
|
|
2557
|
+
resolvedParams[key] = this.interpolateStepTask(value, stepOutputContext);
|
|
2558
|
+
}
|
|
2559
|
+
try {
|
|
2560
|
+
if (!this.executor?.executeIntegrationStep) {
|
|
2561
|
+
throw new Error(`Integration steps require a cloud executor. Step "${step.name}" cannot run locally. ` +
|
|
2562
|
+
`Use "cloud run" to execute workflows with integration steps.`);
|
|
2563
|
+
}
|
|
2564
|
+
const result = await this.executor.executeIntegrationStep(step, resolvedParams, { workspaceId: this.workspaceId });
|
|
2565
|
+
if (!result.success) {
|
|
2566
|
+
throw new Error(`Integration step "${step.name}" failed: ${result.output}`);
|
|
2567
|
+
}
|
|
2568
|
+
// Mark completed
|
|
2569
|
+
state.row.status = 'completed';
|
|
2570
|
+
state.row.output = result.output;
|
|
2571
|
+
state.row.completedAt = new Date().toISOString();
|
|
2572
|
+
await this.db.updateStep(state.row.id, {
|
|
2573
|
+
status: 'completed',
|
|
2574
|
+
output: result.output,
|
|
2575
|
+
completedAt: state.row.completedAt,
|
|
2576
|
+
updatedAt: new Date().toISOString(),
|
|
2577
|
+
});
|
|
2578
|
+
await this.persistStepOutput(runId, step.name, result.output);
|
|
2579
|
+
this.emit({ type: 'step:completed', runId, stepName: step.name, output: result.output });
|
|
2580
|
+
this.postToChannel(`**[${step.name}]** Completed (integration: ${step.integration}.${step.action})`);
|
|
2581
|
+
}
|
|
2582
|
+
catch (err) {
|
|
2583
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
2584
|
+
this.postToChannel(`**[${step.name}]** Failed: ${errorMsg}`);
|
|
2585
|
+
await this.markStepFailed(state, errorMsg, runId);
|
|
2586
|
+
throw new Error(`Step "${step.name}" failed: ${errorMsg}`);
|
|
2587
|
+
}
|
|
2588
|
+
}
|
|
2492
2589
|
/**
|
|
2493
2590
|
* Execute an agent step (LLM-powered).
|
|
2494
2591
|
*/
|
|
@@ -2505,6 +2602,50 @@ export class WorkflowRunner {
|
|
|
2505
2602
|
throw new Error(`Agent "${agentName}" not found in config`);
|
|
2506
2603
|
}
|
|
2507
2604
|
const specialistDef = WorkflowRunner.resolveAgentDef(rawAgentDef);
|
|
2605
|
+
// API-mode agents: execute via direct API call instead of spawning a PTY/subprocess.
|
|
2606
|
+
if (specialistDef.cli === 'api') {
|
|
2607
|
+
const stepOutputContext = this.buildStepOutputContext(stepStates, runId);
|
|
2608
|
+
const resolvedTask = this.interpolateStepTask(step.task ?? '', stepOutputContext);
|
|
2609
|
+
state.row.status = 'running';
|
|
2610
|
+
state.row.startedAt = new Date().toISOString();
|
|
2611
|
+
await this.db.updateStep(state.row.id, {
|
|
2612
|
+
status: 'running',
|
|
2613
|
+
startedAt: state.row.startedAt,
|
|
2614
|
+
updatedAt: new Date().toISOString(),
|
|
2615
|
+
});
|
|
2616
|
+
this.emit({ type: 'step:started', runId, stepName: step.name });
|
|
2617
|
+
this.postToChannel(`**[${step.name}]** Started (api)`);
|
|
2618
|
+
try {
|
|
2619
|
+
const output = await executeApiStep(specialistDef.constraints?.model ?? 'claude-sonnet-4-20250514', resolvedTask, { envSecrets: this.envSecrets, skills: specialistDef.skills, defaultMaxTokens: specialistDef.constraints?.maxTokens });
|
|
2620
|
+
state.row.status = 'completed';
|
|
2621
|
+
state.row.output = output;
|
|
2622
|
+
state.row.completedAt = new Date().toISOString();
|
|
2623
|
+
await this.db.updateStep(state.row.id, {
|
|
2624
|
+
status: 'completed',
|
|
2625
|
+
output,
|
|
2626
|
+
completedAt: state.row.completedAt,
|
|
2627
|
+
updatedAt: new Date().toISOString(),
|
|
2628
|
+
});
|
|
2629
|
+
await this.persistStepOutput(runId, step.name, output);
|
|
2630
|
+
this.emit({ type: 'step:completed', runId, stepName: step.name, output });
|
|
2631
|
+
}
|
|
2632
|
+
catch (apiError) {
|
|
2633
|
+
const errorMessage = apiError instanceof Error ? apiError.message : String(apiError);
|
|
2634
|
+
state.row.status = 'failed';
|
|
2635
|
+
state.row.error = errorMessage;
|
|
2636
|
+
state.row.completedAt = new Date().toISOString();
|
|
2637
|
+
await this.db.updateStep(state.row.id, {
|
|
2638
|
+
status: 'failed',
|
|
2639
|
+
error: errorMessage,
|
|
2640
|
+
completedAt: state.row.completedAt,
|
|
2641
|
+
updatedAt: new Date().toISOString(),
|
|
2642
|
+
});
|
|
2643
|
+
this.emit({ type: 'step:failed', runId, stepName: step.name, error: errorMessage });
|
|
2644
|
+
this.postToChannel(`**[${step.name}]** Failed (api): ${errorMessage}`);
|
|
2645
|
+
throw apiError;
|
|
2646
|
+
}
|
|
2647
|
+
return;
|
|
2648
|
+
}
|
|
2508
2649
|
const usesOwnerFlow = specialistDef.interactive !== false;
|
|
2509
2650
|
const currentPattern = this.currentConfig?.swarm?.pattern ?? '';
|
|
2510
2651
|
const isHubPattern = WorkflowRunner.HUB_PATTERNS.has(currentPattern);
|
|
@@ -3649,10 +3790,13 @@ export class WorkflowRunner {
|
|
|
3649
3790
|
* Delegates to the consolidated CLI registry for per-CLI arg formats.
|
|
3650
3791
|
*/
|
|
3651
3792
|
static buildNonInteractiveCommand(cli, task, extraArgs = []) {
|
|
3793
|
+
if (cli === 'api') {
|
|
3794
|
+
throw new Error('cli "api" uses direct API calls, not a subprocess command');
|
|
3795
|
+
}
|
|
3652
3796
|
const resolvedCli = cli === 'cursor' ? resolveCursorCli() : cli;
|
|
3653
3797
|
const def = getCliDefinition(resolvedCli);
|
|
3654
|
-
if (!def) {
|
|
3655
|
-
throw new Error(`Unknown CLI: ${resolvedCli}`);
|
|
3798
|
+
if (!def || def.binaries.length === 0) {
|
|
3799
|
+
throw new Error(`Unknown or non-executable CLI: ${resolvedCli}`);
|
|
3656
3800
|
}
|
|
3657
3801
|
return {
|
|
3658
3802
|
cmd: def.binaries[0],
|