pipeline-worker 0.1.21 → 0.1.23

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 (57) hide show
  1. package/dist/agent/claude.js +87 -65
  2. package/dist/agent/claude.js.map +1 -1
  3. package/dist/agent/copilot.js +19 -14
  4. package/dist/agent/copilot.js.map +1 -1
  5. package/dist/cli.js +45 -39
  6. package/dist/cli.js.map +1 -1
  7. package/dist/config/detectChecks.js +30 -15
  8. package/dist/config/detectChecks.js.map +1 -1
  9. package/dist/config/loader.js +30 -15
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/forge/github.d.ts +0 -7
  12. package/dist/forge/github.js +13 -19
  13. package/dist/forge/github.js.map +1 -1
  14. package/dist/forge/gitlab.d.ts +0 -6
  15. package/dist/forge/gitlab.js +8 -17
  16. package/dist/forge/gitlab.js.map +1 -1
  17. package/dist/forge/shared.d.ts +9 -0
  18. package/dist/forge/shared.js +27 -0
  19. package/dist/forge/shared.js.map +1 -0
  20. package/dist/git/commit.d.ts +0 -1
  21. package/dist/git/commit.js +0 -4
  22. package/dist/git/commit.js.map +1 -1
  23. package/dist/git/resolveProjectPath.d.ts +0 -6
  24. package/dist/git/resolveProjectPath.js +1 -1
  25. package/dist/git/resolveProjectPath.js.map +1 -1
  26. package/dist/git/worktree.d.ts +0 -7
  27. package/dist/git/worktree.js +42 -25
  28. package/dist/git/worktree.js.map +1 -1
  29. package/dist/mcp/server.js +8 -6
  30. package/dist/mcp/server.js.map +1 -1
  31. package/dist/process/signalCleanup.d.ts +15 -0
  32. package/dist/process/signalCleanup.js +19 -0
  33. package/dist/process/signalCleanup.js.map +1 -0
  34. package/dist/state/lock.d.ts +0 -6
  35. package/dist/state/lock.js +36 -21
  36. package/dist/state/lock.js.map +1 -1
  37. package/dist/state/runState.js +1 -0
  38. package/dist/state/runState.js.map +1 -1
  39. package/dist/toon/envelope.js +30 -17
  40. package/dist/toon/envelope.js.map +1 -1
  41. package/dist/ui/sessions.js +26 -8
  42. package/dist/ui/sessions.js.map +1 -1
  43. package/dist/ui/steps.d.ts +8 -11
  44. package/dist/ui/steps.js +24 -2
  45. package/dist/ui/steps.js.map +1 -1
  46. package/dist/version/autoUpdate.js +23 -15
  47. package/dist/version/autoUpdate.js.map +1 -1
  48. package/dist/workflow/orchestrate.js +130 -96
  49. package/dist/workflow/orchestrate.js.map +1 -1
  50. package/dist/workflow/runChecks.js +2 -0
  51. package/dist/workflow/runChecks.js.map +1 -1
  52. package/dist/workflow/updateChangelog.js +43 -28
  53. package/dist/workflow/updateChangelog.js.map +1 -1
  54. package/dist/workflow/watchPipeline.d.ts +0 -19
  55. package/dist/workflow/watchPipeline.js +115 -87
  56. package/dist/workflow/watchPipeline.js.map +1 -1
  57. package/package.json +1 -1
@@ -54,82 +54,104 @@ function formatStreamBlock(label, raw) {
54
54
  const dropped = trimmed.length - MAX_ERROR_OUTPUT_CHARS;
55
55
  return `--- ${label} ---\n[... ${dropped} chars truncated, showing last ${MAX_ERROR_OUTPUT_CHARS} ...]\n${trimmed.slice(-MAX_ERROR_OUTPUT_CHARS)}`;
56
56
  }
57
- export function formatProcessError(err) {
58
- let cause;
59
- if (err.signal) {
60
- cause = `killed by signal ${err.signal}`;
61
- }
62
- else if (err.code !== undefined && err.code !== null) {
63
- cause = `exited with code ${err.code}`;
64
- }
65
- else {
66
- cause = 'failed with no exit code or signal reported';
57
+ function describeCause(err) {
58
+ if (err.signal)
59
+ return `killed by signal ${err.signal}`;
60
+ if (err.code !== undefined && err.code !== null)
61
+ return `exited with code ${err.code}`;
62
+ return 'failed with no exit code or signal reported';
63
+ }
64
+ function hasMeaningfulOutput(err) {
65
+ return !!(err.stdout && err.stdout.trim().length > 0) || !!(err.stderr && err.stderr.trim().length > 0);
66
+ }
67
+ /**
68
+ * Falls back to the underlying Node error message only when neither captured
69
+ * stream has content — typical of spawn-time failures like ENOENT, where the
70
+ * message is the only context we have.
71
+ */
72
+ function underlyingMessageLine(err) {
73
+ if (err.message && err.message.trim().length > 0 && !hasMeaningfulOutput(err)) {
74
+ return `(underlying: ${err.message.trim()})`;
67
75
  }
68
- const lines = [`claude ${cause}.`];
76
+ return undefined;
77
+ }
78
+ export function formatProcessError(err) {
79
+ const lines = [`claude ${describeCause(err)}.`];
69
80
  for (const [label, raw] of [['stdout', err.stdout], ['stderr', err.stderr]]) {
70
81
  const block = formatStreamBlock(label, raw);
71
82
  if (block)
72
83
  lines.push(block);
73
84
  }
74
- // Only fall through to the underlying Node error message when neither
75
- // captured stream has content — typical of spawn-time failures like
76
- // ENOENT, where the message is the only context we have.
77
- const hasStdout = !!(err.stdout && err.stdout.trim().length > 0);
78
- const hasStderr = !!(err.stderr && err.stderr.trim().length > 0);
79
- if (err.message && err.message.trim().length > 0 && !hasStdout && !hasStderr) {
80
- lines.push(`(underlying: ${err.message.trim()})`);
81
- }
85
+ const underlying = underlyingMessageLine(err);
86
+ if (underlying)
87
+ lines.push(underlying);
82
88
  return lines.join('\n');
83
89
  }
90
+ // fallow-ignore-next-line complexity
91
+ function buildClaudeArgs(opts) {
92
+ const args = [
93
+ '-p',
94
+ '--output-format', 'json',
95
+ '--permission-mode', opts.permissionMode ?? 'acceptEdits',
96
+ ];
97
+ if (opts.jsonSchema) {
98
+ args.push('--json-schema', JSON.stringify(opts.jsonSchema));
99
+ }
100
+ if (opts.allowedTools?.length) {
101
+ args.push('--allowedTools', ...opts.allowedTools);
102
+ }
103
+ if (opts.mcpConfigPath) {
104
+ args.push('--mcp-config', opts.mcpConfigPath);
105
+ }
106
+ if (opts.model) {
107
+ args.push('--model', opts.model);
108
+ }
109
+ return args;
110
+ }
111
+ /**
112
+ * Spawns `claude` and pipes the prompt to its stdin. Kept as one atomic
113
+ * function: `.child.stdin` must be grabbed synchronously between creating
114
+ * the execFileAsync invocation and awaiting it, so this sequence can't be
115
+ * split across function boundaries without breaking that ordering.
116
+ */
117
+ async function runClaudeProcess(args, opts) {
118
+ try {
119
+ const invocation = execFileAsync('claude', args, {
120
+ cwd: opts.cwd,
121
+ timeout: AGENT_INVOKE_TIMEOUT_MS,
122
+ maxBuffer: 64 * 1024 * 1024,
123
+ });
124
+ // stdin is always a pipe here since stdio isn't overridden in execFileAsync's options.
125
+ writePromptToStdin(invocation.child.stdin, opts.prompt);
126
+ const result = await invocation;
127
+ return result.stdout;
128
+ }
129
+ catch (rawErr) {
130
+ const err = rawErr;
131
+ throw new Error(formatProcessError(err));
132
+ }
133
+ }
134
+ function parseClaudeResult(stdout, start) {
135
+ try {
136
+ // duration_ms/session_id come straight from the CLI's own JSON envelope
137
+ // (see the module comment's `claude -p --output-format json` sample);
138
+ // falling back to our own wall-clock reading only covers the
139
+ // never-observed case where that envelope omits duration_ms.
140
+ const parsed = JSON.parse(stdout);
141
+ return { text: parsed.result ?? stdout, raw: parsed, sessionId: parsed.session_id, durationMs: parsed.duration_ms ?? Date.now() - start };
142
+ }
143
+ catch {
144
+ // --output-format json should always produce parseable JSON; fall back
145
+ // to the raw stream rather than throwing, since the invocation itself succeeded.
146
+ return { text: stdout, durationMs: Date.now() - start };
147
+ }
148
+ }
84
149
  export const claudeAdapter = {
85
150
  async invoke(opts) {
86
- const args = [
87
- '-p',
88
- '--output-format', 'json',
89
- '--permission-mode', opts.permissionMode ?? 'acceptEdits',
90
- ];
91
- if (opts.jsonSchema) {
92
- args.push('--json-schema', JSON.stringify(opts.jsonSchema));
93
- }
94
- if (opts.allowedTools?.length) {
95
- args.push('--allowedTools', ...opts.allowedTools);
96
- }
97
- if (opts.mcpConfigPath) {
98
- args.push('--mcp-config', opts.mcpConfigPath);
99
- }
100
- if (opts.model) {
101
- args.push('--model', opts.model);
102
- }
151
+ const args = buildClaudeArgs(opts);
103
152
  const start = Date.now();
104
- let stdout;
105
- try {
106
- const invocation = execFileAsync('claude', args, {
107
- cwd: opts.cwd,
108
- timeout: AGENT_INVOKE_TIMEOUT_MS,
109
- maxBuffer: 64 * 1024 * 1024,
110
- });
111
- // stdin is always a pipe here since stdio isn't overridden in execFileAsync's options.
112
- writePromptToStdin(invocation.child.stdin, opts.prompt);
113
- const result = await invocation;
114
- stdout = result.stdout;
115
- }
116
- catch (rawErr) {
117
- const err = rawErr;
118
- throw new Error(formatProcessError(err));
119
- }
120
- try {
121
- // duration_ms/session_id come straight from the CLI's own JSON envelope
122
- // (see the module comment's `claude -p --output-format json` sample);
123
- // falling back to our own wall-clock reading only covers the
124
- // never-observed case where that envelope omits duration_ms.
125
- const parsed = JSON.parse(stdout);
126
- return { text: parsed.result ?? stdout, raw: parsed, sessionId: parsed.session_id, durationMs: parsed.duration_ms ?? Date.now() - start };
127
- }
128
- catch {
129
- // --output-format json should always produce parseable JSON; fall back
130
- // to the raw stream rather than throwing, since the invocation itself succeeded.
131
- return { text: stdout, durationMs: Date.now() - start };
132
- }
153
+ const stdout = await runClaudeProcess(args, opts);
154
+ return parseClaudeResult(stdout, start);
133
155
  },
134
156
  };
135
157
  //# sourceMappingURL=claude.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/agent/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/agent/claude.ts"],"names":[],"mappings":"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"}
@@ -46,22 +46,27 @@ function extractJsonObject(text) {
46
46
  const end = text.lastIndexOf('}');
47
47
  return start !== -1 && end > start ? text.slice(start, end + 1) : text;
48
48
  }
49
+ /** Embeds a JSON-Schema instruction in the prompt text — Copilot CLI has no native structured-output flag (see module comment). */
50
+ function buildCopilotPrompt(prompt, jsonSchema) {
51
+ if (!jsonSchema)
52
+ return prompt;
53
+ return `${prompt}\n\nRespond with ONLY a single JSON object matching this JSON Schema — no prose, no code fences:\n${JSON.stringify(jsonSchema)}`;
54
+ }
55
+ /** Warns about the two AgentInvokeOptions Copilot CLI has no per-invocation flag for (see module comment). */
56
+ function warnUnsupportedOptions(opts) {
57
+ if (opts.mcpConfigPath) {
58
+ console.error('pipeline-worker: copilot CLI has no per-invocation MCP config flag; ignoring it. ' +
59
+ 'Register the server in ~/.copilot/mcp-config.json to give copilot forge access.');
60
+ }
61
+ if (opts.model) {
62
+ console.error(`pipeline-worker: copilot CLI has no per-invocation model flag; ignoring the configured model "${opts.model}". ` +
63
+ "Switch copilot's model via its own /model command or config instead.");
64
+ }
65
+ }
49
66
  export const copilotAdapter = {
50
67
  async invoke(opts) {
51
- let prompt = opts.prompt;
52
- if (opts.jsonSchema) {
53
- prompt +=
54
- '\n\nRespond with ONLY a single JSON object matching this JSON Schema — no prose, no code fences:\n' +
55
- JSON.stringify(opts.jsonSchema);
56
- }
57
- if (opts.mcpConfigPath) {
58
- console.error('pipeline-worker: copilot CLI has no per-invocation MCP config flag; ignoring it. ' +
59
- 'Register the server in ~/.copilot/mcp-config.json to give copilot forge access.');
60
- }
61
- if (opts.model) {
62
- console.error(`pipeline-worker: copilot CLI has no per-invocation model flag; ignoring the configured model "${opts.model}". ` +
63
- "Switch copilot's model via its own /model command or config instead.");
64
- }
68
+ const prompt = buildCopilotPrompt(opts.prompt, opts.jsonSchema);
69
+ warnUnsupportedOptions(opts);
65
70
  const sessionName = `pipeline-worker-${randomUUID()}`;
66
71
  const start = Date.now();
67
72
  const invocation = execFileAsync('copilot', ['-s', '--no-ask-user', '--allow-all-tools', '--allow-all-paths', '--name', sessionName], {
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/agent/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAsE,MAAM,YAAY,CAAC;AACzH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,0FAA0F;AAC1F,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM;gBACJ,oGAAoG;oBACpG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CACX,mFAAmF;gBACjF,iFAAiF,CACpF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,iGAAiG,IAAI,CAAC,KAAK,KAAK;gBAC9G,sEAAsE,CACzE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,mBAAmB,UAAU,EAAE,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,aAAa,CAC9B,SAAS,EACT,CAAC,IAAI,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,CAAC,EACxF;YACE,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CACF,CAAC;QACF,uFAAuF;QACvF,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,KAAM,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC;QAEpC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;YACjE,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/agent/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAsE,MAAM,YAAY,CAAC;AACzH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,0FAA0F;AAC1F,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,mIAAmI;AACnI,SAAS,kBAAkB,CAAC,MAAc,EAAE,UAAmB;IAC7D,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAC/B,OAAO,GAAG,MAAM,qGAAqG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;AACpJ,CAAC;AAED,8GAA8G;AAC9G,SAAS,sBAAsB,CAAC,IAAwB;IACtD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CACX,mFAAmF;YACjF,iFAAiF,CACpF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,iGAAiG,IAAI,CAAC,KAAK,KAAK;YAC9G,sEAAsE,CACzE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,WAAW,GAAG,mBAAmB,UAAU,EAAE,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,aAAa,CAC9B,SAAS,EACT,CAAC,IAAI,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,CAAC,EACxF;YACE,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CACF,CAAC;QACF,uFAAuF;QACvF,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,KAAM,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC;QAEpC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;YACjE,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;CACF,CAAC"}
package/dist/cli.js CHANGED
@@ -14,6 +14,45 @@ import { loadRunState, listRunStates, recordEvent } from './state/runState.js';
14
14
  import { printSessionList, printSessionDetail } from './ui/sessions.js';
15
15
  import { isWorktreeOnBranch, checkoutExistingBranch, removeWorktree } from './git/worktree.js';
16
16
  import { buildEnvelope, errorEnvelope } from './toon/envelope.js';
17
+ import { makeIdempotentCleanup, registerExitSignals } from './process/signalCleanup.js';
18
+ /** Loads persisted state for `branch`, or prints an error and exits(1) if there's nothing resumable (no state file, or no MR/PR recorded yet). */
19
+ function loadResumableState(repoRoot, branch) {
20
+ const state = loadRunState(repoRoot, branch);
21
+ if (!state || state.mrIid === undefined) {
22
+ console.error(`pipeline-worker: no resumable run found for branch ${branch} (no merge request recorded yet).`);
23
+ process.exit(1);
24
+ }
25
+ return state;
26
+ }
27
+ /**
28
+ * The worktree from the crashed run is almost always already gone by this
29
+ * point (orchestrate.ts's `finally` removes it on any exception, and on
30
+ * SIGINT/SIGTERM) — reuse it only in the narrow case it survived (e.g. a
31
+ * SIGKILL), otherwise recreate it from the branch's current state on origin.
32
+ */
33
+ async function resolveResumeWorktree(repoRoot, state) {
34
+ const worktreePath = (await isWorktreeOnBranch(state.worktreePath, state.branch))
35
+ ? state.worktreePath
36
+ : await checkoutExistingBranch(repoRoot, state.branch);
37
+ if (worktreePath !== state.worktreePath) {
38
+ state.worktreePath = worktreePath;
39
+ recordEvent(repoRoot, state, `Recreated worktree at ${worktreePath}`);
40
+ }
41
+ return worktreePath;
42
+ }
43
+ async function runResumeWatch(forge, config, agent, worktreePath, state, repoRoot, cleanup) {
44
+ try {
45
+ await watchPipeline(forge, config, agent, worktreePath, state.branch, state.targetBranch, state.mrIid, state, repoRoot);
46
+ }
47
+ catch (error) {
48
+ const message = error instanceof Error ? error.message : String(error);
49
+ recordEvent(repoRoot, state, `Resume failed: ${message}`, 'error');
50
+ throw error;
51
+ }
52
+ finally {
53
+ await cleanup();
54
+ }
55
+ }
17
56
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
18
57
  const pkg = JSON.parse(readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8'));
19
58
  const program = new Command();
@@ -52,49 +91,16 @@ program
52
91
  .action(async (opts) => {
53
92
  try {
54
93
  const repoRoot = process.cwd();
55
- const state = loadRunState(repoRoot, opts.branch);
56
- if (!state || state.mrIid === undefined) {
57
- console.error(`pipeline-worker: no resumable run found for branch ${opts.branch} (no merge request recorded yet).`);
58
- process.exit(1);
59
- }
94
+ const state = loadResumableState(repoRoot, opts.branch);
60
95
  const config = loadConfig(repoRoot);
61
96
  const forge = createForge(config);
62
97
  const agent = selectAgent(config);
63
- // The worktree from the crashed run is almost always already gone by
64
- // this point (orchestrate.ts's `finally` removes it on any exception,
65
- // and on SIGINT/SIGTERM) reuse it only in the narrow case it
66
- // survived (e.g. a SIGKILL), otherwise recreate it from the branch's
67
- // current state on origin.
68
- const worktreePath = (await isWorktreeOnBranch(state.worktreePath, state.branch))
69
- ? state.worktreePath
70
- : await checkoutExistingBranch(repoRoot, state.branch);
71
- if (worktreePath !== state.worktreePath) {
72
- state.worktreePath = worktreePath;
73
- recordEvent(repoRoot, state, `Recreated worktree at ${worktreePath}`);
74
- }
75
- let cleanedUp = false;
76
- const cleanup = async () => {
77
- if (cleanedUp)
78
- return;
79
- cleanedUp = true;
80
- await removeWorktree(repoRoot, worktreePath);
81
- };
82
- const onSignal = (exitCode) => {
98
+ const worktreePath = await resolveResumeWorktree(repoRoot, state);
99
+ const { cleanup } = makeIdempotentCleanup(() => removeWorktree(repoRoot, worktreePath));
100
+ registerExitSignals((exitCode) => {
83
101
  void cleanup().then(() => process.exit(exitCode));
84
- };
85
- process.once('SIGINT', () => onSignal(130));
86
- process.once('SIGTERM', () => onSignal(143));
87
- try {
88
- await watchPipeline(forge, config, agent, worktreePath, state.branch, state.targetBranch, state.mrIid, state, repoRoot);
89
- }
90
- catch (error) {
91
- const message = error instanceof Error ? error.message : String(error);
92
- recordEvent(repoRoot, state, `Resume failed: ${message}`, 'error');
93
- throw error;
94
- }
95
- finally {
96
- await cleanup();
97
- }
102
+ });
103
+ await runResumeWatch(forge, config, agent, worktreePath, state, repoRoot, cleanup);
98
104
  console.log(`pipeline-worker: resumed run finished with phase "${state.phase}".`);
99
105
  }
100
106
  catch (error) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ const DOTNET_SOLUTION_SUFFIXES = ['.sln', '.slnx'];
11
11
  const DOTNET_PROJECT_SUFFIXES = [...DOTNET_SOLUTION_SUFFIXES, '.csproj', '.fsproj', '.vbproj'];
12
12
  const PYTHON_MARKERS = ['pyproject.toml', 'setup.py', 'requirements.txt'];
13
13
  /** Maps each stage to `npm run <script>` only for scripts the repo declares. */
14
+ // fallow-ignore-next-line complexity
14
15
  function detectNode(repoRoot) {
15
16
  let scripts;
16
17
  try {
@@ -34,6 +35,7 @@ function detectNode(repoRoot) {
34
35
  * Detected via a .csharpierignore file at the root OR a 'csharpier' entry
35
36
  * in .config/dotnet-tools.json (the standard local tools manifest).
36
37
  */
38
+ // fallow-ignore-next-line complexity
37
39
  function hasCsharpier(repoRoot) {
38
40
  if (existsSync(join(repoRoot, '.csharpierignore')))
39
41
  return true;
@@ -63,33 +65,38 @@ function detectDotnet(repoRoot, slnSubdir) {
63
65
  const test = existsSync(join(repoRoot, 'run-tests')) ? './run-tests Unit' : 'dotnet test';
64
66
  return { language: 'dotnet', build, lint, test };
65
67
  }
66
- export function detectChecks(repoRoot) {
67
- if (existsSync(join(repoRoot, 'package.json')))
68
- return detectNode(repoRoot);
68
+ /** .sln/.csproj directly at the repo root. */
69
+ function detectDotnetAtRoot(repoRoot) {
69
70
  let rootEntries = [];
70
71
  try {
71
72
  rootEntries = readdirSync(repoRoot);
72
73
  }
73
74
  catch {
74
75
  // Unreadable root: fall through to unknown, honoring loader.ts's never-throw contract.
76
+ return undefined;
75
77
  }
76
- // .sln/.csproj at the repo root
77
78
  if (rootEntries.some((name) => DOTNET_PROJECT_SUFFIXES.some((suffix) => name.endsWith(suffix)))) {
78
79
  return detectDotnet(repoRoot);
79
80
  }
80
- // .sln in a src/ subdirectory — a common layout where source lives one level down
81
+ return undefined;
82
+ }
83
+ /** .sln in a src/ subdirectory — a common layout where source lives one level down. */
84
+ function detectDotnetInSrc(repoRoot) {
81
85
  const srcDir = join(repoRoot, 'src');
82
- if (existsSync(srcDir)) {
83
- try {
84
- const srcEntries = readdirSync(srcDir);
85
- if (srcEntries.some((name) => DOTNET_SOLUTION_SUFFIXES.some((suffix) => name.endsWith(suffix)))) {
86
- return detectDotnet(repoRoot, 'src');
87
- }
88
- }
89
- catch {
90
- // Ignore readdir errors on the src/ subdirectory.
86
+ if (!existsSync(srcDir))
87
+ return undefined;
88
+ try {
89
+ const srcEntries = readdirSync(srcDir);
90
+ if (srcEntries.some((name) => DOTNET_SOLUTION_SUFFIXES.some((suffix) => name.endsWith(suffix)))) {
91
+ return detectDotnet(repoRoot, 'src');
91
92
  }
92
93
  }
94
+ catch {
95
+ // Ignore readdir errors on the src/ subdirectory.
96
+ }
97
+ return undefined;
98
+ }
99
+ function detectGoOrPython(repoRoot) {
93
100
  if (existsSync(join(repoRoot, 'go.mod'))) {
94
101
  return { language: 'go', build: 'go build ./...', lint: 'go vet ./...', test: 'go test ./...' };
95
102
  }
@@ -97,6 +104,14 @@ export function detectChecks(repoRoot) {
97
104
  // No universal python build/lint step; pytest is the de-facto test runner.
98
105
  return { language: 'python', build: '', lint: '', test: 'pytest' };
99
106
  }
100
- return { language: 'unknown', build: '', lint: '', test: '' };
107
+ return undefined;
108
+ }
109
+ // fallow-ignore-next-line complexity
110
+ export function detectChecks(repoRoot) {
111
+ if (existsSync(join(repoRoot, 'package.json')))
112
+ return detectNode(repoRoot);
113
+ return (detectDotnetAtRoot(repoRoot) ??
114
+ detectDotnetInSrc(repoRoot) ??
115
+ detectGoOrPython(repoRoot) ?? { language: 'unknown', build: '', lint: '', test: '' });
101
116
  }
102
117
  //# sourceMappingURL=detectChecks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detectChecks.js","sourceRoot":"","sources":["../../src/config/detectChecks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detectChecks.js","sourceRoot":"","sources":["../../src/config/detectChecks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,MAAM,uBAAuB,GAAG,CAAC,GAAG,wBAAwB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAC/F,MAAM,cAAc,GAAG,CAAC,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAE1E,gFAAgF;AAChF,qCAAqC;AACrC,SAAS,UAAU,CAAC,QAAgB;IAClC,IAAI,OAAgC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/F,OAAO,GAAG,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,GAA+B,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,yEAAyE;QACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;QAChD,IAAI,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;QAC7C,IAAI,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KAC1C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,qCAAqC;AACrC,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACrE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAwC,CAAC;QACzG,OAAO,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,QAAgB,EAAE,SAAkB;IACxD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IAEvE,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,iDAAiD;QACnD,CAAC,CAAC,mCAAmC,CAAC;IAExC,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC;IAE1F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnD,CAAC;AAED,8CAA8C;AAC9C,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,WAAW,GAAa,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,uFAAuF;QACvF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uFAAuF;AACvF,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,OAAO,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAClG,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,2EAA2E;QAC3E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5E,OAAO,CACL,kBAAkB,CAAC,QAAQ,CAAC;QAC5B,iBAAiB,CAAC,QAAQ,CAAC;QAC3B,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACrF,CAAC;AACJ,CAAC"}
@@ -36,6 +36,7 @@ const DEFAULT_CONFIG = {
36
36
  updateChangelog: false,
37
37
  };
38
38
  /** Loads <repoRoot>/.env into process.env; already-set variables always win. */
39
+ // fallow-ignore-next-line complexity
39
40
  function loadDotEnv(repoRoot) {
40
41
  const envPath = join(repoRoot, '.env');
41
42
  if (!existsSync(envPath))
@@ -61,6 +62,7 @@ function positiveNumber(value, fallback) {
61
62
  return Number.isFinite(num) && num > 0 ? num : fallback;
62
63
  }
63
64
  /** Parses "true"/"false" (case-insensitive), falling back when unset or unrecognized. */
65
+ // fallow-ignore-next-line complexity
64
66
  function boolean(value, fallback) {
65
67
  if (typeof value === 'boolean')
66
68
  return value;
@@ -88,9 +90,9 @@ function resolveProjectId(value, fallback) {
88
90
  const num = Number(value);
89
91
  return Number.isFinite(num) && num > 0 ? num : value;
90
92
  }
91
- export function loadConfig(repoRoot) {
92
- loadDotEnv(repoRoot);
93
- const detected = detectChecks(repoRoot);
93
+ /** Warns once when no toolchain was auto-detected and none of the build/lint/test env overrides are set — checks will otherwise silently be skipped. */
94
+ // fallow-ignore-next-line complexity
95
+ function warnIfToolchainUndetected(repoRoot, detected) {
94
96
  if (detected.language === 'unknown' &&
95
97
  process.env.PIPELINE_WORKER_BUILD === undefined &&
96
98
  process.env.PIPELINE_WORKER_LINT === undefined &&
@@ -98,9 +100,10 @@ export function loadConfig(repoRoot) {
98
100
  console.error(`Warning: could not detect the toolchain of ${repoRoot}; build/lint/test will be skipped. ` +
99
101
  'Set PIPELINE_WORKER_BUILD / PIPELINE_WORKER_LINT / PIPELINE_WORKER_TEST to configure them explicitly.');
100
102
  }
101
- const repoBase = process.env.PIPELINE_WORKER_GITLAB_REPO_BASE;
102
- // Auto-detect a string path from repoBase when no project id is configured
103
- // yet; the env var override below (numeric or string path) always wins.
103
+ }
104
+ /** Auto-detects a string path from repoBase when no project id is configured yet; the env var override (numeric or string path) always wins. */
105
+ // fallow-ignore-next-line complexity
106
+ function resolveGitlabProjectId(repoRoot, repoBase) {
104
107
  let resolvedProjectId = DEFAULT_CONFIG.gitlab.projectId;
105
108
  if (!resolvedProjectId && repoBase) {
106
109
  try {
@@ -111,18 +114,30 @@ export function loadConfig(repoRoot) {
111
114
  console.error(`Warning: ${message}`);
112
115
  }
113
116
  }
114
- const projectId = resolveProjectId(process.env.PIPELINE_WORKER_GITLAB_PROJECT_ID, resolvedProjectId);
117
+ return resolveProjectId(process.env.PIPELINE_WORKER_GITLAB_PROJECT_ID, resolvedProjectId);
118
+ }
119
+ function buildGitlabSection(repoRoot, repoBase) {
120
+ return {
121
+ host: process.env.PIPELINE_WORKER_GITLAB_HOST || DEFAULT_CONFIG.gitlab.host,
122
+ projectId: resolveGitlabProjectId(repoRoot, repoBase),
123
+ repoBase,
124
+ };
125
+ }
126
+ function buildGithubSection(repoRoot) {
127
+ return {
128
+ repo: process.env.PIPELINE_WORKER_GITHUB_REPO || detectGithubRepo(repoRoot) || DEFAULT_CONFIG.github.repo,
129
+ };
130
+ }
131
+ export function loadConfig(repoRoot) {
132
+ loadDotEnv(repoRoot);
133
+ const detected = detectChecks(repoRoot);
134
+ warnIfToolchainUndetected(repoRoot, detected);
135
+ const repoBase = process.env.PIPELINE_WORKER_GITLAB_REPO_BASE;
115
136
  return {
116
137
  agent: pickName(process.env.PIPELINE_WORKER_AGENT, AGENT_NAMES, DEFAULT_CONFIG.agent),
117
138
  forge: pickName(process.env.PIPELINE_WORKER_FORGE, FORGE_NAMES, DEFAULT_CONFIG.forge),
118
- gitlab: {
119
- host: process.env.PIPELINE_WORKER_GITLAB_HOST || DEFAULT_CONFIG.gitlab.host,
120
- projectId,
121
- repoBase,
122
- },
123
- github: {
124
- repo: process.env.PIPELINE_WORKER_GITHUB_REPO || detectGithubRepo(repoRoot) || DEFAULT_CONFIG.github.repo,
125
- },
139
+ gitlab: buildGitlabSection(repoRoot, repoBase),
140
+ github: buildGithubSection(repoRoot),
126
141
  build: stringOr(process.env.PIPELINE_WORKER_BUILD, detected.build),
127
142
  lint: stringOr(process.env.PIPELINE_WORKER_LINT, detected.lint),
128
143
  test: stringOr(process.env.PIPELINE_WORKER_TEST, detected.test),
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,6 @@
7
7
  */
8
8
  import type { PipelineWorkerConfig, Pipeline } from '../types.js';
9
9
  import type { ForgeClient } from './types.js';
10
- export interface GithubAuth {
11
- apiUrl: string;
12
- /** "owner/name" slug. */
13
- repo: string;
14
- token: string;
15
- }
16
- export declare function resolveGithubAuth(config: PipelineWorkerConfig): GithubAuth;
17
10
  export interface WorkflowRun {
18
11
  id: number;
19
12
  status: string;