agent-relay 3.2.6 → 3.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  2. package/bin/agent-relay-broker-darwin-x64 +0 -0
  3. package/bin/agent-relay-broker-linux-arm64 +0 -0
  4. package/bin/agent-relay-broker-linux-x64 +0 -0
  5. package/dist/index.cjs +26 -3
  6. package/dist/src/cli/commands/setup.d.ts +8 -1
  7. package/dist/src/cli/commands/setup.d.ts.map +1 -1
  8. package/dist/src/cli/commands/setup.js +94 -10
  9. package/dist/src/cli/commands/setup.js.map +1 -1
  10. package/package.json +10 -10
  11. package/packages/acp-bridge/package.json +2 -2
  12. package/packages/config/package.json +1 -1
  13. package/packages/hooks/package.json +4 -4
  14. package/packages/memory/package.json +2 -2
  15. package/packages/openclaw/package.json +2 -2
  16. package/packages/policy/package.json +2 -2
  17. package/packages/sdk/dist/workflows/builder.d.ts.map +1 -1
  18. package/packages/sdk/dist/workflows/builder.js +7 -2
  19. package/packages/sdk/dist/workflows/builder.js.map +1 -1
  20. package/packages/sdk/dist/workflows/run.d.ts +6 -0
  21. package/packages/sdk/dist/workflows/run.d.ts.map +1 -1
  22. package/packages/sdk/dist/workflows/run.js +9 -1
  23. package/packages/sdk/dist/workflows/run.js.map +1 -1
  24. package/packages/sdk/dist/workflows/runner.d.ts +1 -0
  25. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -1
  26. package/packages/sdk/dist/workflows/runner.js +14 -0
  27. package/packages/sdk/dist/workflows/runner.js.map +1 -1
  28. package/packages/sdk/package.json +2 -2
  29. package/packages/sdk/src/workflows/builder.ts +8 -2
  30. package/packages/sdk/src/workflows/run.ts +17 -1
  31. package/packages/sdk/src/workflows/runner.ts +13 -0
  32. package/packages/sdk-py/pyproject.toml +1 -1
  33. package/packages/telemetry/package.json +1 -1
  34. package/packages/trajectory/package.json +2 -2
  35. package/packages/user-directory/package.json +2 -2
  36. package/packages/utils/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/sdk",
3
- "version": "3.2.6",
3
+ "version": "3.2.7",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -102,7 +102,7 @@
102
102
  "typescript": "^5.7.3"
103
103
  },
104
104
  "dependencies": {
105
- "@agent-relay/config": "3.2.6",
105
+ "@agent-relay/config": "3.2.7",
106
106
  "@relaycast/sdk": "^0.4.0",
107
107
  "@sinclair/typebox": "^0.34.48",
108
108
  "ws": "^8.18.3",
@@ -367,8 +367,14 @@ export class WorkflowBuilder {
367
367
  runner.on(options.onEvent);
368
368
  }
369
369
 
370
- const startFrom = this._startFrom ?? options.startFrom;
371
- const previousRunId = this._previousRunId ?? options.previousRunId;
370
+ // Auto-detect RESUME_RUN_ID env var for resuming failed runs
371
+ const resumeRunId = process.env.RESUME_RUN_ID;
372
+ if (resumeRunId) {
373
+ return runner.resume(resumeRunId, options.vars);
374
+ }
375
+
376
+ const startFrom = this._startFrom ?? options.startFrom ?? process.env.START_FROM;
377
+ const previousRunId = this._previousRunId ?? options.previousRunId ?? process.env.PREVIOUS_RUN_ID;
372
378
  const executeOptions: WorkflowExecuteOptions | undefined = startFrom
373
379
  ? { startFrom, previousRunId }
374
380
  : undefined;
@@ -21,6 +21,12 @@ export interface RunWorkflowOptions {
21
21
  trajectories?: TrajectoryConfig | false;
22
22
  /** Validate and show execution plan without running. */
23
23
  dryRun?: boolean;
24
+ /** Resume a failed run by its ID instead of starting fresh. */
25
+ resume?: string;
26
+ /** Skip to a specific step (re-uses cached outputs from earlier steps). */
27
+ startFrom?: string;
28
+ /** Previous run ID whose cached step outputs are used with startFrom. */
29
+ previousRunId?: string;
24
30
  }
25
31
 
26
32
  /**
@@ -68,5 +74,15 @@ export async function runWorkflow(
68
74
  runner.on(options.onEvent);
69
75
  }
70
76
 
71
- return runner.execute(config, options.workflow, options.vars);
77
+ // Resume a previous run if requested
78
+ const resumeRunId = options.resume ?? process.env.RESUME_RUN_ID;
79
+ if (resumeRunId) {
80
+ return runner.resume(resumeRunId, options.vars);
81
+ }
82
+
83
+ const startFrom = options.startFrom ?? process.env.START_FROM;
84
+ const previousRunId = options.previousRunId ?? process.env.PREVIOUS_RUN_ID;
85
+ const executeOptions = startFrom ? { startFrom, previousRunId } : undefined;
86
+
87
+ return runner.execute(config, options.workflow, options.vars, executeOptions);
72
88
  }
@@ -1834,6 +1834,7 @@ export class WorkflowRunner {
1834
1834
  };
1835
1835
 
1836
1836
  await this.db.insertRun(run);
1837
+ this.persistRunIdHint(runId);
1837
1838
 
1838
1839
  // Build step rows
1839
1840
  const stepStates = new Map<string, StepState>();
@@ -1925,6 +1926,7 @@ export class WorkflowRunner {
1925
1926
  if (!run) {
1926
1927
  throw new Error(`Run "${runId}" not found`);
1927
1928
  }
1929
+ this.persistRunIdHint(runId);
1928
1930
 
1929
1931
  if (run.status !== 'running' && run.status !== 'failed') {
1930
1932
  throw new Error(`Run "${runId}" is in status "${run.status}" and cannot be resumed`);
@@ -6116,6 +6118,17 @@ export class WorkflowRunner {
6116
6118
 
6117
6119
  // ── ID generation ─────────────────────────────────────────────────────
6118
6120
 
6121
+ private persistRunIdHint(runId: string): void {
6122
+ const target = process.env.AGENT_RELAY_RUN_ID_FILE?.trim();
6123
+ if (!target) return;
6124
+ try {
6125
+ mkdirSync(path.dirname(target), { recursive: true });
6126
+ writeFileSync(target, runId + '\n', 'utf8');
6127
+ } catch {
6128
+ // Ignore hint persistence failures.
6129
+ }
6130
+ }
6131
+
6119
6132
  private generateId(): string {
6120
6133
  return randomBytes(12).toString('hex');
6121
6134
  }
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agent-relay-sdk"
7
- version = "3.2.6"
7
+ version = "3.2.7"
8
8
  description = "Python SDK for Agent Relay workflows"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/telemetry",
3
- "version": "3.2.6",
3
+ "version": "3.2.7",
4
4
  "description": "Anonymous telemetry for Agent Relay usage analytics",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/trajectory",
3
- "version": "3.2.6",
3
+ "version": "3.2.7",
4
4
  "description": "Trajectory integration utilities (trail/PDERO) for Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "test:watch": "vitest"
23
23
  },
24
24
  "dependencies": {
25
- "@agent-relay/config": "3.2.6"
25
+ "@agent-relay/config": "3.2.7"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/user-directory",
3
- "version": "3.2.6",
3
+ "version": "3.2.7",
4
4
  "description": "User directory service for agent-relay (per-user credential storage)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "test:watch": "vitest"
23
23
  },
24
24
  "dependencies": {
25
- "@agent-relay/utils": "3.2.6"
25
+ "@agent-relay/utils": "3.2.7"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/utils",
3
- "version": "3.2.6",
3
+ "version": "3.2.7",
4
4
  "description": "Shared utilities for agent-relay: logging, name generation, command resolution, update checking",
5
5
  "type": "module",
6
6
  "main": "dist/cjs/index.js",
@@ -112,7 +112,7 @@
112
112
  "vitest": "^3.2.4"
113
113
  },
114
114
  "dependencies": {
115
- "@agent-relay/config": "3.2.6",
115
+ "@agent-relay/config": "3.2.7",
116
116
  "compare-versions": "^6.1.1"
117
117
  },
118
118
  "publishConfig": {