@cliangdev/conductor 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,8 +37,10 @@ If ambiguous, ask:
37
37
  Run these in parallel before designing anything:
38
38
 
39
39
  ```
40
- 1. list_integration_tools → what data sources are connected + their operations
41
- 2. list_workflows → existing workflows (for naming/area conventions)
40
+ 1. list_integration_tools → what data sources/actions are already connected + their operations
41
+ 2. list_workflows → existing workflows (for naming/area conventions)
42
+ 3. list_connector_catalog → integrations NOT yet connected, for recommending a fit
43
+ 4. list_workflow_secrets → which ${{ secrets.X }} keys already exist (never their values)
42
44
  ```
43
45
 
44
46
  Then ask the user (use AskUserQuestion for structured choices where applicable):
@@ -50,11 +52,21 @@ Then ask the user (use AskUserQuestion for structured choices where applicable):
50
52
  - Work Item status change → `on: conductor.work_item.status_changed:`
51
53
  - Manual run button → `on: workflow_dispatch:`
52
54
  3. **What data or actions does it need?** (use `list_integration_tools` output to suggest connected options)
53
- 4. **Where do results go?** Discord webhook, Slack, create a Conductor issue, HTTP POST, etc.
55
+ 4. **Where do results go?** Discord/Slack post, create a Conductor issue, HTTP POST, etc.
54
56
 
55
57
  If `list_integration_tools` shows relevant connected integrations, name them explicitly:
56
58
  > "I can see Google Search Console is connected (operations: search_analytics, top_queries, top_pages). Should I use that as the data source?"
57
59
 
60
+ If the goal needs a data source or outbound action that **isn't** connected yet, check
61
+ `list_connector_catalog` and name the specific connector rather than falling back to a raw `http`
62
+ step silently:
63
+ > "Posting to Discord needs the Discord connector — it's not connected yet. Connect it under
64
+ > **Settings → Integrations**, or I can use a raw `http` step with a webhook secret instead."
65
+
66
+ If the design will reference `${{ secrets.SOME_KEY }}`, confirm it's in the `list_workflow_secrets`
67
+ result before designing around it — don't assume a secret exists because the user mentioned it.
68
+ Secrets are added under **Settings → Secrets**.
69
+
58
70
  ---
59
71
 
60
72
  ## Step 2 — Design
@@ -92,19 +104,30 @@ steps:
92
104
  | Step type | `uses` value | When to use |
93
105
  |-----------|-------------|-------------|
94
106
  | Integration | `integration` | Connected data source (GSC, PostHog, RevenueCat, GCP Billing) |
107
+ | Action | `action` | Outbound side effect via a connector with the ACTION capability (e.g. `discord post_message`) |
95
108
  | HTTP | `http` | Any REST API call; custom integrations |
96
109
  | Docker | `docker://image` | Run a script or CLI tool in a container |
110
+ | Agent | `agent` | Hand a task to a named AI agent (Settings → Agents) |
111
+ | Claude Code | `claude-code` | Headless Claude Code (`claude -p`), full tool-calling loop, optional Conductor MCP access |
97
112
  | Condition | `condition` | Branch to different jobs based on a runtime value |
98
113
  | Kestra | `kestra` | Delegate to an existing Kestra flow |
99
114
 
115
+ Prefer `uses: action` over a raw `http` step with a webhook-secret whenever an action connector
116
+ exists for the target — same reasoning as preferring `integration` over `http` for reads:
117
+ credentials stay off the connector, never in the YAML.
118
+
100
119
  ### Reference: Interpolation
101
120
 
102
121
  | Expression | Value |
103
122
  |------------|-------|
104
123
  | `${{ event.FIELD }}` | Trigger event payload field |
105
124
  | `${{ secrets.SECRET_NAME }}` | Project secret (custom secrets only; integrations don't need this) |
125
+ | `${{ inputs.KEY }}` | A manual-dispatch input value (see `on.workflow_dispatch.inputs`) |
106
126
  | `${{ steps.STEP_ID.outputs.KEY }}` | Output from a step in the current job |
127
+ | `${{ steps.STEP_ID.result }}` | Terminal result of a prior step: `success` / `failure` / `skipped` |
107
128
  | `${{ needs.JOB_ID.outputs.KEY }}` | Output from a completed upstream job |
129
+ | `${{ needs.JOB_ID.result }}` | Terminal result of an upstream job: `success` / `failure` / `skipped` |
130
+ | `${{ needs.JOB_ID.artifacts.NAME }}` | Signed download URL for an artifact an upstream job produced |
108
131
  | `${{ loop.iteration }}` | Current loop iteration (1-based) |
109
132
 
110
133
  ### Annotated example — Weekly SEO report
@@ -131,14 +154,70 @@ jobs:
131
154
  runs-on: conductor
132
155
  steps:
133
156
  - id: notify
134
- uses: http
157
+ uses: action
135
158
  with:
136
- method: POST
137
- url: ${{ secrets.DISCORD_WEBHOOK_URL }}
138
- body: >
139
- {"content": "📊 Weekly SEO Report\nTop pages: ${{ needs.fetch_seo.outputs.data }}"}
159
+ connector: discord
160
+ action: post_message
161
+ input:
162
+ content: "📊 Weekly SEO Report\nTop pages: ${{ needs.fetch_seo.outputs.data }}"
163
+ ```
164
+
165
+ ---
166
+
167
+ ## Resilience patterns
168
+
169
+ These are the skill's key value-add for digest/report-style workflows: don't let one failed
170
+ collector job silently kill the whole report.
171
+
172
+ **`if: always()` / `if: failure()` on downstream jobs.** A digest job should usually still post even
173
+ if one collector failed — pair with `needs.JOB.result` to mark that section unavailable instead of
174
+ skipping the whole digest:
175
+
176
+ ```yaml
177
+ digest:
178
+ needs: [collect_gsc, collect_posthog]
179
+ if: always()
180
+ steps:
181
+ - uses: action
182
+ with:
183
+ connector: discord
184
+ action: post_message
185
+ input:
186
+ content: "GSC (${{ needs.collect_gsc.result }}): ${{ needs.collect_gsc.outputs.data }}"
187
+ ```
188
+
189
+ **Step-level `continue-on-error`.** Let one optional step fail without failing the job; branch later
190
+ steps on `${{ steps.ID.result }}`:
191
+
192
+ ```yaml
193
+ - id: optional_lint
194
+ type: http
195
+ url: https://lint.example.com/check
196
+ continue-on-error: true
197
+ ```
198
+
199
+ **Dispatch `inputs` for parameterized/backfill runs.** Declare `on.workflow_dispatch.inputs` so a
200
+ manual re-run (e.g. `dispatch_workflow` with `inputs: {date: "2026-06-01"}`) can target a specific
201
+ date/env rather than always running "now":
202
+
203
+ ```yaml
204
+ on:
205
+ workflow_dispatch:
206
+ inputs:
207
+ date: { description: "Backfill date (YYYY-MM-DD)", required: false }
140
208
  ```
141
209
 
210
+ Reference it as `${{ inputs.date }}` anywhere in the workflow.
211
+
212
+ ## Artifacts
213
+
214
+ For whole-file handoff between jobs (a build binary, a rendered report, a dataset) — not the small
215
+ string values `outputs:` is for — a `docker` or `claude-code` step declares `artifacts: [{name, path}]`
216
+ and a downstream job declares `consumes: [name]`. Reach for this when a job needs to hand a real file
217
+ to another job rather than a string. Note: `docker` artifact producers require `runs-on: self-hosted`
218
+ (the Conductor-hosted docker path doesn't support artifact upload); `claude-code` supports artifacts
219
+ on any runtime.
220
+
142
221
  ---
143
222
 
144
223
  ## Step 3 — Creation Loop
@@ -174,9 +253,10 @@ publish_workflow(workflowId)
174
253
 
175
254
  ### 3d. Test dispatch (optional)
176
255
 
177
- dispatch_workflow(workflowId)
256
+ dispatch_workflow(workflowId, inputs?)
178
257
 
179
- Offer to trigger a test run immediately so the user can see it work. Returns workflowId + runId.
258
+ Offer to trigger a test run immediately so the user can see it work. Pass `inputs` if the workflow
259
+ declares `on.workflow_dispatch.inputs` (e.g. a backfill date) — otherwise omit it. Returns workflowId + runId.
180
260
 
181
261
  After dispatching, call get_workflow_run once to check the run started:
182
262
 
@@ -184,6 +264,9 @@ get_workflow_run(workflowId, runId)
184
264
 
185
265
  Don't poll — one check is enough since runs are async. Include the status in the final report to the user. A RUNNING or SUCCESS status means the workflow is live and executing.
186
266
 
267
+ For a scheduled or event-triggered workflow (no immediate dispatch to check), use
268
+ `list_workflow_runs(workflowId)` later to see whether it has actually fired since going live.
269
+
187
270
  ---
188
271
 
189
272
  ## Step 4 — Report to User
@@ -267,10 +350,10 @@ publish_workflow(workflowId) // DRAFT → PUBLISHED
267
350
  These rules apply regardless of the user's request. Never deviate from them.
268
351
 
269
352
  1. **Always call `list_integration_tools` before designing** — never guess what integrations are available from secret key names or conversation context.
270
- 2. **Use `uses: integration` for any connected integration** — credentials must never appear in workflow YAML.
353
+ 2. **Use `uses: integration` for reads and `uses: action` for outbound side effects** on any connected integration — credentials must never appear in workflow YAML.
271
354
  3. **Always call `get_workflow` after `create_workflow`** — close the observability loop before publishing.
272
355
  4. **DRAFT is the safe buffer** — only call `publish_workflow` when the design is fully confirmed.
273
356
  5. **Fix publish errors in place** — call `update_workflow` and retry; never call `create_workflow` a second time for the same workflow.
274
- 6. **Do not invent connector IDs** — only use `connectorId` values returned by `list_integration_tools`.
357
+ 6. **Never invent connector IDs** — use `list_integration_tools` for what's connected, `list_connector_catalog` for what's available but not yet connected. Same for secrets: verify with `list_workflow_secrets` before designing around a `${{ secrets.X }}` reference.
275
358
  7. **Register a custom skill before binding it** — for a statechart `skill` step whose id is not a built-in or
276
359
  already registered (`list_skills`), call `register_skill` first, or Publish will reject the definition.
@@ -16,6 +16,16 @@ export interface WorkflowJobEvent {
16
16
  projectId: string;
17
17
  workflowName: string;
18
18
  }
19
+ /** One declared producer artifact — {@link DispatchStep.artifacts}. */
20
+ export interface DispatchArtifact {
21
+ name: string;
22
+ path: string;
23
+ }
24
+ /** One resolved consumed artifact — {@link DispatchPayload.consumedArtifacts}. */
25
+ export interface ConsumedArtifact {
26
+ name: string;
27
+ downloadUrl: string;
28
+ }
19
29
  export interface DispatchStep {
20
30
  stepIndex: number;
21
31
  workerJobId: string;
@@ -30,6 +40,8 @@ export interface DispatchStep {
30
40
  maxTurns?: number;
31
41
  inputsJson?: string;
32
42
  outputSchemaJson?: string;
43
+ /** This step's declared `artifacts:` (docker/claude-code only). Optional/additive. */
44
+ artifacts?: DispatchArtifact[];
33
45
  }
34
46
  export interface DispatchPayload {
35
47
  jobRunId: string;
@@ -42,6 +54,10 @@ export interface DispatchPayload {
42
54
  logChunkUrlTemplate: string;
43
55
  stepCompleteUrlTemplate: string;
44
56
  };
57
+ /** Internal base URL for this run's artifact endpoints. Present iff any step declares artifacts. */
58
+ artifactsUrl?: string;
59
+ /** This job's `consumes:` artifacts, pre-resolved to signed download URLs. Optional/additive. */
60
+ consumedArtifacts?: ConsumedArtifact[];
45
61
  }
46
62
  export declare const DEFAULT_RUNNER_IMAGE = "ghcr.io/cliangdev/conductor-runner:3";
47
63
  export declare const DEFAULT_TIMEOUT_MINUTES = 30;
@@ -1 +1 @@
1
- {"version":3,"file":"job-runner.d.ts","sourceRoot":"","sources":["../../src/daemon/job-runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAM9C;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE;QACT,mBAAmB,EAAE,MAAM,CAAA;QAC3B,uBAAuB,EAAE,MAAM,CAAA;KAChC,CAAA;CACF;AAUD,eAAO,MAAM,oBAAoB,yCAAyC,CAAA;AAC1E,eAAO,MAAM,uBAAuB,KAAK,CAAA;AA6BzC;+EAC+E;AAC/E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCxB;AA8PD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC3F"}
1
+ {"version":3,"file":"job-runner.d.ts","sourceRoot":"","sources":["../../src/daemon/job-runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAM9C;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,sFAAsF;IACtF,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE;QACT,mBAAmB,EAAE,MAAM,CAAA;QAC3B,uBAAuB,EAAE,MAAM,CAAA;KAChC,CAAA;IACD,oGAAoG;IACpG,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iGAAiG;IACjG,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAA;CACvC;AAUD,eAAO,MAAM,oBAAoB,yCAAyC,CAAA;AAC1E,eAAO,MAAM,uBAAuB,KAAK,CAAA;AAqCzC;+EAC+E;AAC/E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0CxB;AAmbD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D3F"}
@@ -8,6 +8,13 @@ import { acknowledgeEvent, completeJob } from './run-lifecycle.js';
8
8
  export const DEFAULT_RUNNER_IMAGE = 'ghcr.io/cliangdev/conductor-runner:3';
9
9
  export const DEFAULT_TIMEOUT_MINUTES = 30;
10
10
  const LOG_BATCH_INTERVAL_MS = 2000;
11
+ /** Fixed in-container path consumed artifacts are made available at — mirrors
12
+ * ClaudeCodeStepExecutor's CONDUCTOR_ARTIFACTS_DIR value for the Cloud Run path, so the same
13
+ * entrypoint contract works regardless of which launcher runs it. */
14
+ const ARTIFACTS_CONTAINER_DIR = '/conductor/artifacts';
15
+ /** Workspace-relative root a producing step's declared `path:` is resolved against, inside the
16
+ * container — matches the claude-code entrypoint's WORKSPACE_DIR. */
17
+ const WORKSPACE_CONTAINER_DIR = '/conductor/workspace';
11
18
  /** Extra headroom for the daemon's kill backstop on claude-code steps: the
12
19
  * entrypoint enforces the real timeout itself (SIGTERM→SIGKILL, then
13
20
  * self-reports CLAUDE_TIMEOUT); killing at exactly the same moment would race
@@ -72,6 +79,14 @@ export function buildStepEnv(payload, step, event, config, stepCompleteUrl, logC
72
79
  contractEnv.CONDUCTOR_OUTPUT_SCHEMA_JSON = step.outputSchemaJson;
73
80
  // Caller (runStep) guarantees this is present before reaching here.
74
81
  contractEnv.CLAUDE_CODE_OAUTH_TOKEN = config.claudeCodeOauthToken ?? '';
82
+ if (step.artifacts && step.artifacts.length > 0 && payload.artifactsUrl) {
83
+ contractEnv.CONDUCTOR_ARTIFACTS_URL = payload.artifactsUrl;
84
+ contractEnv.CONDUCTOR_STEP_ARTIFACTS_JSON = JSON.stringify(step.artifacts);
85
+ }
86
+ if (payload.consumedArtifacts && payload.consumedArtifacts.length > 0) {
87
+ contractEnv.CONDUCTOR_CONSUMED_ARTIFACTS_JSON = JSON.stringify(payload.consumedArtifacts);
88
+ contractEnv.CONDUCTOR_ARTIFACTS_DIR = ARTIFACTS_CONTAINER_DIR;
89
+ }
75
90
  }
76
91
  const merged = { ...baseEnv, ...contractEnv };
77
92
  delete merged['ANTHROPIC_API_KEY'];
@@ -190,6 +205,153 @@ function writeSecretEnvFile(fileEnv) {
190
205
  fs.writeFileSync(filePath, contents + '\n', { mode: 0o600 });
191
206
  return filePath;
192
207
  }
208
+ /**
209
+ * Downloads every consumed artifact into a fresh per-job temp directory, once per job (not per
210
+ * step) — the same directory is bind-mounted at {@link ARTIFACTS_CONTAINER_DIR} into every
211
+ * container this job runs, so any step (not just claude-code, whose entrypoint additionally gets
212
+ * `CONDUCTOR_CONSUMED_ARTIFACTS_JSON`) can read the files directly.
213
+ *
214
+ * A failed download (non-OK response or a network error) fails fast with a named reason — mirrors
215
+ * conductor-claude-entrypoint.mjs's materializeConsumedArtifacts, which throws a ConfigError on the
216
+ * same condition: a consumer job that can't get a file it declared `consumes:` on has nothing
217
+ * sensible to fall back to, and silently running steps against a missing file is exactly the
218
+ * silent-absence failure mode artifact passing exists to prevent.
219
+ */
220
+ async function downloadConsumedArtifacts(payload, jobRunId) {
221
+ if (!payload.consumedArtifacts || payload.consumedArtifacts.length === 0)
222
+ return { ok: true, dir: null };
223
+ const dir = path.join(os.tmpdir(), `conductor-artifacts-${jobRunId}`);
224
+ fs.mkdirSync(dir, { recursive: true });
225
+ for (const artifact of payload.consumedArtifacts) {
226
+ let res;
227
+ try {
228
+ res = await fetch(artifact.downloadUrl);
229
+ }
230
+ catch (err) {
231
+ cleanupDir(dir);
232
+ return {
233
+ ok: false,
234
+ errorReason: `ARTIFACT_DOWNLOAD_FAILED: failed to download consumed artifact '${artifact.name}': ${String(err)}`,
235
+ };
236
+ }
237
+ if (!res.ok) {
238
+ cleanupDir(dir);
239
+ return {
240
+ ok: false,
241
+ errorReason: `ARTIFACT_DOWNLOAD_FAILED: failed to download consumed artifact '${artifact.name}': HTTP ${res.status}`,
242
+ };
243
+ }
244
+ const buf = Buffer.from(await res.arrayBuffer());
245
+ fs.writeFileSync(path.join(dir, artifact.name), buf);
246
+ }
247
+ return { ok: true, dir };
248
+ }
249
+ /** Best-effort recursive removal — used to clean up the per-job artifacts dir when a partial
250
+ * download fails partway through, since the caller never gets a handle to it in that case. */
251
+ function cleanupDir(dir) {
252
+ try {
253
+ fs.rmSync(dir, { recursive: true, force: true });
254
+ }
255
+ catch (err) {
256
+ console.error('[job-runner] Failed to remove consumed-artifacts dir after a failed download:', err);
257
+ }
258
+ }
259
+ /** Declares one artifact (`POST {artifactsUrl}`) and returns its upload target, or null on failure. */
260
+ async function createArtifact(artifactsUrl, jobId, name, runToken) {
261
+ try {
262
+ const res = await fetch(artifactsUrl, {
263
+ method: 'POST',
264
+ headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${runToken}` },
265
+ body: JSON.stringify({ jobId, name }),
266
+ });
267
+ if (!res.ok)
268
+ return null;
269
+ return (await res.json());
270
+ }
271
+ catch (err) {
272
+ console.error(`[job-runner] Failed to create artifact '${name}':`, err);
273
+ return null;
274
+ }
275
+ }
276
+ /**
277
+ * PUTs the artifact's raw bytes to its upload URL. A signed GCS URL is self-contained and must NOT
278
+ * carry an Authorization header (it would invalidate the signature); the local-profile passthrough
279
+ * URL is backend-relative (starts with `apiUrl`) and DOES need the run-token bearer header — that's
280
+ * the only signal available to tell the two apart.
281
+ */
282
+ async function putArtifactContent(uploadUrl, content, runToken, apiUrl) {
283
+ const headers = {};
284
+ if (uploadUrl.startsWith(apiUrl)) {
285
+ headers['Authorization'] = `Bearer ${runToken}`;
286
+ }
287
+ try {
288
+ const res = await fetch(uploadUrl, { method: 'PUT', headers, body: content });
289
+ return res.ok;
290
+ }
291
+ catch (err) {
292
+ console.error('[job-runner] Failed to PUT artifact content:', err);
293
+ return false;
294
+ }
295
+ }
296
+ async function completeArtifact(artifactsUrl, artifactId, runToken) {
297
+ try {
298
+ const res = await fetch(`${artifactsUrl}/${artifactId}/complete`, {
299
+ method: 'POST',
300
+ headers: { Authorization: `Bearer ${runToken}` },
301
+ });
302
+ return res.ok;
303
+ }
304
+ catch (err) {
305
+ console.error(`[job-runner] Failed to complete artifact ${artifactId}:`, err);
306
+ return false;
307
+ }
308
+ }
309
+ /**
310
+ * Uploads a `docker` step's declared artifacts after it exits successfully — `claude-code` steps
311
+ * never reach here (the entrypoint uploads its own artifacts over the network, from inside the
312
+ * container, before exiting). Requires the container to still exist (caller must not have used
313
+ * `--rm`): each declared `path:` is `docker cp`'d out of {@link WORKSPACE_CONTAINER_DIR} before the
314
+ * create/PUT/complete sequence. Returns a FAILED StepResult on the first problem (missing file or
315
+ * any HTTP step failing) — no partial credit for a job that promised an artifact it didn't deliver.
316
+ */
317
+ async function uploadDockerStepArtifacts(payload, event, step, containerName, config) {
318
+ if (!step.artifacts || step.artifacts.length === 0)
319
+ return null;
320
+ if (!payload.artifactsUrl) {
321
+ return { status: 'FAILED', errorReason: 'ARTIFACTS_URL_MISSING' };
322
+ }
323
+ for (const artifact of step.artifacts) {
324
+ const tmpFile = path.join(os.tmpdir(), `conductor-artifact-${randomUUID()}`);
325
+ const containerPath = `${containerName}:${WORKSPACE_CONTAINER_DIR}/${artifact.path}`;
326
+ const cpCode = await spawnAndWait('docker', ['cp', containerPath, tmpFile]);
327
+ if (cpCode !== 0 || !fs.existsSync(tmpFile)) {
328
+ return {
329
+ status: 'FAILED',
330
+ errorReason: `ARTIFACT_MISSING: declared artifact '${artifact.name}' not found at ${artifact.path}`,
331
+ };
332
+ }
333
+ const content = fs.readFileSync(tmpFile);
334
+ try {
335
+ fs.unlinkSync(tmpFile);
336
+ }
337
+ catch {
338
+ // best-effort cleanup
339
+ }
340
+ const created = await createArtifact(payload.artifactsUrl, event.jobId, artifact.name, payload.runToken);
341
+ if (!created) {
342
+ return { status: 'FAILED', errorReason: `ARTIFACT_UPLOAD_FAILED: could not declare artifact '${artifact.name}'` };
343
+ }
344
+ const putOk = await putArtifactContent(created.uploadUrl, content, payload.runToken, config.apiUrl);
345
+ if (!putOk) {
346
+ return { status: 'FAILED', errorReason: `ARTIFACT_UPLOAD_FAILED: upload failed for '${artifact.name}'` };
347
+ }
348
+ const completedOk = await completeArtifact(payload.artifactsUrl, created.artifactId, payload.runToken);
349
+ if (!completedOk) {
350
+ return { status: 'FAILED', errorReason: `ARTIFACT_UPLOAD_FAILED: complete failed for '${artifact.name}'` };
351
+ }
352
+ }
353
+ return null;
354
+ }
193
355
  async function postStepComplete(stepCompleteUrl, runToken, body) {
194
356
  try {
195
357
  await fetch(stepCompleteUrl, {
@@ -206,7 +368,7 @@ async function postStepComplete(stepCompleteUrl, runToken, body) {
206
368
  }
207
369
  }
208
370
  // ─── Step execution ─────────────────────────────────────────────────────────
209
- async function runStep(event, payload, step, config) {
371
+ async function runStep(event, payload, step, config, artifactsDir) {
210
372
  const stepCompleteUrl = fillTemplate(payload.callbacks.stepCompleteUrlTemplate, step.workerJobId);
211
373
  const logChunkUrl = fillTemplate(payload.callbacks.logChunkUrlTemplate, step.workerJobId);
212
374
  const isClaudeCode = step.stepType === 'claude-code';
@@ -221,11 +383,17 @@ async function runStep(event, payload, step, config) {
221
383
  const image = payload.image ?? DEFAULT_RUNNER_IMAGE;
222
384
  const containerName = `conductor-job-${payload.jobRunId}-${step.stepIndex}`;
223
385
  const command = isClaudeCode ? ['conductor-claude-entrypoint'] : [];
386
+ // `claude-code` steps self-upload their declared artifacts over the network before exiting, so
387
+ // `--rm` is always safe for them. A `docker` step's produced files must be `docker cp`'d out
388
+ // AFTER it exits (see uploadDockerStepArtifacts), so its container is kept around and removed
389
+ // explicitly further down instead.
390
+ const hasProducerArtifacts = !isClaudeCode && (step.artifacts?.length ?? 0) > 0;
224
391
  const runArgs = [
225
392
  'run',
226
- '--rm',
393
+ ...(hasProducerArtifacts ? [] : ['--rm']),
227
394
  '--name',
228
395
  containerName,
396
+ ...(artifactsDir ? ['-v', `${artifactsDir}:${ARTIFACTS_CONTAINER_DIR}`] : []),
229
397
  ...(envFilePath ? ['--env-file', envFilePath] : []),
230
398
  ...buildEnvArgs(argEnv),
231
399
  image,
@@ -287,8 +455,17 @@ async function runStep(event, payload, step, config) {
287
455
  };
288
456
  }
289
457
  // Non-claude-code steps don't self-report; the daemon posts on their behalf.
290
- const status = exitCode === 0 ? 'SUCCESS' : 'FAILED';
291
- const result = status === 'SUCCESS' ? { status } : { status, errorReason: 'STEP_FAILED', exitCode };
458
+ let result = exitCode === 0 ? { status: 'SUCCESS' } : { status: 'FAILED', errorReason: 'STEP_FAILED', exitCode };
459
+ if (exitCode === 0 && hasProducerArtifacts) {
460
+ const artifactFailure = await uploadDockerStepArtifacts(payload, event, step, containerName, config);
461
+ if (artifactFailure)
462
+ result = artifactFailure;
463
+ }
464
+ if (hasProducerArtifacts) {
465
+ // Container was kept alive (no --rm) so uploadDockerStepArtifacts could `docker cp` out of it —
466
+ // remove it now regardless of outcome.
467
+ await spawnAndWait('docker', ['rm', containerName]);
468
+ }
292
469
  await postStepComplete(stepCompleteUrl, payload.runToken, result);
293
470
  return result;
294
471
  }
@@ -314,22 +491,42 @@ export async function runWorkflowJob(event, config) {
314
491
  let jobStatus = 'SUCCESS';
315
492
  let jobErrorReason;
316
493
  let jobExitCode;
317
- const pullCode = await spawnAndWait('docker', ['pull', image]);
318
- if (pullCode !== 0) {
494
+ // Downloaded once per job (not per step) and bind-mounted into every step's container — see
495
+ // downloadConsumedArtifacts. A failed download fails the whole job before any step (or even the
496
+ // image pull) runs — no step should ever start against a consumed artifact that's silently missing.
497
+ const artifactsResult = await downloadConsumedArtifacts(payload, payload.jobRunId);
498
+ let artifactsDir = null;
499
+ if (!artifactsResult.ok) {
319
500
  jobStatus = 'FAILED';
320
- jobErrorReason = 'IMAGE_PULL_FAILED';
501
+ jobErrorReason = artifactsResult.errorReason;
321
502
  }
322
503
  else {
323
- for (const step of payload.steps) {
324
- const result = await runStep(event, payload, step, config);
325
- if (result.status === 'FAILED') {
326
- jobStatus = 'FAILED';
327
- jobErrorReason = result.errorReason;
328
- jobExitCode = result.exitCode;
329
- break;
504
+ artifactsDir = artifactsResult.dir;
505
+ const pullCode = await spawnAndWait('docker', ['pull', image]);
506
+ if (pullCode !== 0) {
507
+ jobStatus = 'FAILED';
508
+ jobErrorReason = 'IMAGE_PULL_FAILED';
509
+ }
510
+ else {
511
+ for (const step of payload.steps) {
512
+ const result = await runStep(event, payload, step, config, artifactsDir);
513
+ if (result.status === 'FAILED') {
514
+ jobStatus = 'FAILED';
515
+ jobErrorReason = result.errorReason;
516
+ jobExitCode = result.exitCode;
517
+ break;
518
+ }
330
519
  }
331
520
  }
332
521
  }
522
+ if (artifactsDir) {
523
+ try {
524
+ fs.rmSync(artifactsDir, { recursive: true, force: true });
525
+ }
526
+ catch (err) {
527
+ console.error('[job-runner] Failed to remove consumed-artifacts dir:', err);
528
+ }
529
+ }
333
530
  await completeJob(event.workflowRunId, event.jobId, jobStatus, config, jobErrorReason, jobExitCode);
334
531
  await acknowledgeEvent(event.projectId, event.eventId, config);
335
532
  }
@@ -1 +1 @@
1
- {"version":3,"file":"job-runner.js","sourceRoot":"","sources":["../../src/daemon/job-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-runner.js","sourceRoot":"","sources":["../../src/daemon/job-runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAyVA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAqRlD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAudA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAuWlD"}