pipeline-worker 0.1.9 → 0.1.11
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/README.md +8 -4
- package/dist/agent/copilot.d.ts +3 -0
- package/dist/agent/copilot.js +7 -0
- package/dist/agent/copilot.js.map +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/config/detectChecks.d.ts +3 -3
- package/dist/config/detectChecks.js +3 -3
- package/dist/config/loader.d.ts +8 -9
- package/dist/config/loader.js +49 -53
- package/dist/config/loader.js.map +1 -1
- package/dist/forge/github.d.ts +1 -1
- package/dist/forge/github.js +4 -5
- package/dist/forge/github.js.map +1 -1
- package/dist/forge/gitlab.d.ts +3 -3
- package/dist/forge/gitlab.js +7 -8
- package/dist/forge/gitlab.js.map +1 -1
- package/dist/forge/index.d.ts +1 -1
- package/dist/forge/index.js +1 -1
- package/dist/forge/index.js.map +1 -1
- package/dist/git/resolveProjectPath.js +1 -2
- package/dist/git/resolveProjectPath.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/ui/welcome.js +2 -2
- package/dist/ui/welcome.js.map +1 -1
- package/dist/workflow/captureIntent.d.ts +8 -1
- package/dist/workflow/captureIntent.js +9 -10
- package/dist/workflow/captureIntent.js.map +1 -1
- package/dist/workflow/orchestrate.js +14 -8
- package/dist/workflow/orchestrate.js.map +1 -1
- package/dist/workflow/runChecks.d.ts +5 -1
- package/dist/workflow/runChecks.js +7 -3
- package/dist/workflow/runChecks.js.map +1 -1
- package/dist/workflow/watchPipeline.d.ts +23 -5
- package/dist/workflow/watchPipeline.js +41 -12
- package/dist/workflow/watchPipeline.js.map +1 -1
- package/package.json +1 -3
package/README.md
CHANGED
|
@@ -66,12 +66,16 @@ pipeline-worker is configured entirely through real environment variables — se
|
|
|
66
66
|
| `PIPELINE_WORKER_POLL_INTERVAL_SECONDS` | `15` | pipeline poll cadence; use `60` for slow pipelines |
|
|
67
67
|
| `PIPELINE_WORKER_BRANCH_PATTERN` | `pipeline-worker/{name}` | feature branch naming template — see below |
|
|
68
68
|
| `PIPELINE_WORKER_CLEANUP` | `true` | reset repoRoot to HEAD once the MR/PR is opened and CI is green (`false` to keep your local uncommitted changes as-is) |
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
| `PIPELINE_WORKER_INTENT_MODEL` | `haiku` | model used for the intent-capture step (branch/commit/summary); claude only — copilot has no per-invocation model selection and ignores it |
|
|
70
|
+
| `PIPELINE_WORKER_BUILD` | auto-detected from toolchain | build command override; set to an empty string to skip the stage |
|
|
71
|
+
| `PIPELINE_WORKER_LINT` | auto-detected from toolchain | lint command override; set to an empty string to skip the stage |
|
|
72
|
+
| `PIPELINE_WORKER_TEST` | auto-detected from toolchain | test command override; set to an empty string to skip the stage |
|
|
73
|
+
| `PIPELINE_WORKER_MAX_FIX_ATTEMPTS` | `5` | how many CI-fix attempts before escalating to a human |
|
|
74
|
+
| `PIPELINE_WORKER_RUN_LINT_AND_TEST` | `true` | run the local lint and test stages (`false` to run only build — for repos where an earlier workflow, e.g. upstream CI, already verified lint/test) |
|
|
71
75
|
|
|
72
76
|
### Branch naming
|
|
73
77
|
|
|
74
|
-
`
|
|
78
|
+
`PIPELINE_WORKER_BRANCH_PATTERN` controls the feature branch name, built from three placeholders:
|
|
75
79
|
|
|
76
80
|
| Placeholder | Filled by |
|
|
77
81
|
| ----------- | ------------------------------------------------------------------- |
|
|
@@ -94,7 +98,7 @@ A pattern that includes `{ticket}` requires `--ticket` to be passed; the run fai
|
|
|
94
98
|
|
|
95
99
|
### Check command auto-detection
|
|
96
100
|
|
|
97
|
-
`build` / `lint` / `test` are picked from the repo's toolchain (first marker found wins; mixed-language repos should set
|
|
101
|
+
`build` / `lint` / `test` are picked from the repo's toolchain (first marker found wins; mixed-language repos should set `PIPELINE_WORKER_BUILD` / `PIPELINE_WORKER_LINT` / `PIPELINE_WORKER_TEST` explicitly):
|
|
98
102
|
|
|
99
103
|
| Toolchain | Marker | build | lint | test |
|
|
100
104
|
| ----------------- | ------------------------------------------------------ | ---------------- | ----------------------------------- | ------------------------------------------------ |
|
package/dist/agent/copilot.d.ts
CHANGED
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
* prompt and the JSON object is extracted from the response text;
|
|
9
9
|
* - no per-invocation MCP config flag -> Copilot only reads
|
|
10
10
|
* ~/.copilot/mcp-config.json, so `mcpConfigPath` is ignored with a warning.
|
|
11
|
+
* - no per-invocation model flag -> `opts.model` (e.g. the configured
|
|
12
|
+
* `PIPELINE_WORKER_INTENT_MODEL`) is ignored with a warning; switch
|
|
13
|
+
* Copilot's model via its own `/model` command or config instead.
|
|
11
14
|
* - no per-invocation tool allowlist -> `--allow-all-tools` is always passed,
|
|
12
15
|
* so `allowedTools` is ignored; a read-only step (e.g. captureIntent.ts)
|
|
13
16
|
* gets full tool access under this adapter instead of being restricted.
|
package/dist/agent/copilot.js
CHANGED
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
* prompt and the JSON object is extracted from the response text;
|
|
9
9
|
* - no per-invocation MCP config flag -> Copilot only reads
|
|
10
10
|
* ~/.copilot/mcp-config.json, so `mcpConfigPath` is ignored with a warning.
|
|
11
|
+
* - no per-invocation model flag -> `opts.model` (e.g. the configured
|
|
12
|
+
* `PIPELINE_WORKER_INTENT_MODEL`) is ignored with a warning; switch
|
|
13
|
+
* Copilot's model via its own `/model` command or config instead.
|
|
11
14
|
* - no per-invocation tool allowlist -> `--allow-all-tools` is always passed,
|
|
12
15
|
* so `allowedTools` is ignored; a read-only step (e.g. captureIntent.ts)
|
|
13
16
|
* gets full tool access under this adapter instead of being restricted.
|
|
@@ -43,6 +46,10 @@ export const copilotAdapter = {
|
|
|
43
46
|
console.error('pipeline-worker: copilot CLI has no per-invocation MCP config flag; ignoring it. ' +
|
|
44
47
|
'Register the server in ~/.copilot/mcp-config.json to give copilot forge access.');
|
|
45
48
|
}
|
|
49
|
+
if (opts.model) {
|
|
50
|
+
console.error(`pipeline-worker: copilot CLI has no per-invocation model flag; ignoring the configured model "${opts.model}". ` +
|
|
51
|
+
"Switch copilot's model via its own /model command or config instead.");
|
|
52
|
+
}
|
|
46
53
|
const invocation = execFileAsync('copilot', ['-s', '--no-ask-user', '--allow-all-tools'], {
|
|
47
54
|
cwd: opts.cwd,
|
|
48
55
|
timeout: INVOKE_TIMEOUT_MS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/agent/copilot.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/agent/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,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,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAE;YACxF,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;QACH,uFAAuF;QACvF,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,KAAM,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC;QAEpC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;IAC/E,CAAC;CACF,CAAC"}
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PipelineWorkerConfig } from '../types.js';
|
|
2
2
|
import type { AgentAdapter } from './types.js';
|
|
3
3
|
/**
|
|
4
|
-
* Picks the adapter named
|
|
4
|
+
* Picks the adapter named by PIPELINE_WORKER_AGENT. Deliberately no runtime
|
|
5
5
|
* fallback/interactive choice — the config names exactly one agent per repo.
|
|
6
6
|
*/
|
|
7
7
|
export declare function selectAgent(config: PipelineWorkerConfig): AgentAdapter;
|
package/dist/agent/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { claudeAdapter } from './claude.js';
|
|
2
2
|
import { copilotAdapter } from './copilot.js';
|
|
3
3
|
/**
|
|
4
|
-
* Picks the adapter named
|
|
4
|
+
* Picks the adapter named by PIPELINE_WORKER_AGENT. Deliberately no runtime
|
|
5
5
|
* fallback/interactive choice — the config names exactly one agent per repo.
|
|
6
6
|
*/
|
|
7
7
|
export function selectAgent(config) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Toolchain detection: default build/lint/test commands for the target repo's
|
|
3
3
|
* language. An empty command means "no sensible default here" and the stage is
|
|
4
|
-
* skipped (see runChecks.ts). Explicit
|
|
5
|
-
* (see loader.ts). The first marker that matches decides;
|
|
6
|
-
* should set the commands explicitly.
|
|
4
|
+
* skipped (see runChecks.ts). Explicit PIPELINE_WORKER_BUILD / _LINT / _TEST
|
|
5
|
+
* env vars always win (see loader.ts). The first marker that matches decides;
|
|
6
|
+
* mixed-language repos should set the commands explicitly.
|
|
7
7
|
*/
|
|
8
8
|
export interface DetectedChecks {
|
|
9
9
|
language: 'node' | 'dotnet' | 'go' | 'python' | 'unknown';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Toolchain detection: default build/lint/test commands for the target repo's
|
|
3
3
|
* language. An empty command means "no sensible default here" and the stage is
|
|
4
|
-
* skipped (see runChecks.ts). Explicit
|
|
5
|
-
* (see loader.ts). The first marker that matches decides;
|
|
6
|
-
* should set the commands explicitly.
|
|
4
|
+
* skipped (see runChecks.ts). Explicit PIPELINE_WORKER_BUILD / _LINT / _TEST
|
|
5
|
+
* env vars always win (see loader.ts). The first marker that matches decides;
|
|
6
|
+
* mixed-language repos should set the commands explicitly.
|
|
7
7
|
*/
|
|
8
8
|
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
9
9
|
import { join } from 'node:path';
|
package/dist/config/loader.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* .env file at repo root (never overrides real env) ->
|
|
4
|
-
* built-in default (for build/lint/test: commands auto-detected from the
|
|
5
|
-
* toolchain, see detectChecks.ts; for github.repo: the repo's own
|
|
6
|
-
* remote, see git/remote.ts).
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* mirroring mcp-sonar-analysis's registry.ts read/never-throw contract.
|
|
2
|
+
* Environment-variable config resolver. Resolution order per value:
|
|
3
|
+
* environment variable -> .env file at repo root (never overrides real env) ->
|
|
4
|
+
* built-in default (for build/lint/test: commands auto-detected from the
|
|
5
|
+
* repo's toolchain, see detectChecks.ts; for github.repo: the repo's own
|
|
6
|
+
* `origin` remote, see git/remote.ts). Never throws — an unset or invalid
|
|
7
|
+
* value falls back to the default (with a warning where relevant), mirroring
|
|
8
|
+
* mcp-sonar-analysis's registry.ts read/never-throw contract.
|
|
10
9
|
*/
|
|
11
10
|
import type { PipelineWorkerConfig } from '../types.js';
|
|
12
|
-
export declare function loadConfig(repoRoot: string
|
|
11
|
+
export declare function loadConfig(repoRoot: string): PipelineWorkerConfig;
|
package/dist/config/loader.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* .env file at repo root (never overrides real env) ->
|
|
4
|
-
* built-in default (for build/lint/test: commands auto-detected from the
|
|
5
|
-
* toolchain, see detectChecks.ts; for github.repo: the repo's own
|
|
6
|
-
* remote, see git/remote.ts).
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* mirroring mcp-sonar-analysis's registry.ts read/never-throw contract.
|
|
2
|
+
* Environment-variable config resolver. Resolution order per value:
|
|
3
|
+
* environment variable -> .env file at repo root (never overrides real env) ->
|
|
4
|
+
* built-in default (for build/lint/test: commands auto-detected from the
|
|
5
|
+
* repo's toolchain, see detectChecks.ts; for github.repo: the repo's own
|
|
6
|
+
* `origin` remote, see git/remote.ts). Never throws — an unset or invalid
|
|
7
|
+
* value falls back to the default (with a warning where relevant), mirroring
|
|
8
|
+
* mcp-sonar-analysis's registry.ts read/never-throw contract.
|
|
10
9
|
*/
|
|
11
10
|
import { existsSync, readFileSync } from 'node:fs';
|
|
12
11
|
import { join } from 'node:path';
|
|
13
12
|
import { parseEnv } from 'node:util';
|
|
14
|
-
import { load } from 'js-yaml';
|
|
15
13
|
import { detectChecks } from './detectChecks.js';
|
|
16
14
|
import { deriveProjectPath } from '../git/resolveProjectPath.js';
|
|
17
15
|
import { detectGithubRepo } from '../git/remote.js';
|
|
18
|
-
const CONFIG_FILE_NAME = '.pipeline-worker.yml';
|
|
19
16
|
const AGENT_NAMES = ['claude', 'copilot'];
|
|
20
17
|
const FORGE_NAMES = ['gitlab', 'github'];
|
|
21
18
|
// build/lint/test defaults come from detectChecks(repoRoot) at load time.
|
|
@@ -33,6 +30,8 @@ const DEFAULT_CONFIG = {
|
|
|
33
30
|
pollIntervalSeconds: 15,
|
|
34
31
|
branchPattern: 'pipeline-worker/{name}',
|
|
35
32
|
cleanupOnSuccess: true,
|
|
33
|
+
intentModel: 'haiku',
|
|
34
|
+
runLintAndTest: true,
|
|
36
35
|
};
|
|
37
36
|
/** Loads <repoRoot>/.env into process.env; already-set variables always win. */
|
|
38
37
|
function loadDotEnv(repoRoot) {
|
|
@@ -71,37 +70,36 @@ function boolean(value, fallback) {
|
|
|
71
70
|
}
|
|
72
71
|
return fallback;
|
|
73
72
|
}
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Unlike `||`-based resolution, an env var explicitly set to `''` (e.g.
|
|
75
|
+
* `PIPELINE_WORKER_BUILD=`) is honored as "skip this stage" rather than
|
|
76
|
+
* falling through to the detected default — only a genuinely unset var falls
|
|
77
|
+
* back.
|
|
78
|
+
*/
|
|
79
|
+
function stringOr(value, fallback) {
|
|
80
|
+
return value !== undefined ? value : fallback;
|
|
76
81
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
catch (error) {
|
|
84
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
85
|
-
console.error(`Warning: failed to read ${configPath}: ${message}. Falling back to defaults.`);
|
|
86
|
-
return {};
|
|
87
|
-
}
|
|
82
|
+
/** GitLab project ids are either numeric or a 'group/subgroup/project' path; numeric strings are coerced, everything else is kept as-is. */
|
|
83
|
+
function resolveProjectId(value, fallback) {
|
|
84
|
+
if (!value)
|
|
85
|
+
return fallback;
|
|
86
|
+
const num = Number(value);
|
|
87
|
+
return Number.isFinite(num) && num > 0 ? num : value;
|
|
88
88
|
}
|
|
89
|
-
export function loadConfig(repoRoot
|
|
90
|
-
loadDotEnv(repoRoot);
|
|
91
|
-
const parsed = readYamlConfig(resolveConfigPath(repoRoot, override));
|
|
89
|
+
export function loadConfig(repoRoot) {
|
|
90
|
+
loadDotEnv(repoRoot);
|
|
92
91
|
const detected = detectChecks(repoRoot);
|
|
93
|
-
if (detected.language === 'unknown' &&
|
|
94
|
-
|
|
92
|
+
if (detected.language === 'unknown' &&
|
|
93
|
+
process.env.PIPELINE_WORKER_BUILD === undefined &&
|
|
94
|
+
process.env.PIPELINE_WORKER_LINT === undefined &&
|
|
95
|
+
process.env.PIPELINE_WORKER_TEST === undefined) {
|
|
96
|
+
console.error(`Warning: could not detect the toolchain of ${repoRoot}; build/lint/test will be skipped. ` +
|
|
97
|
+
'Set PIPELINE_WORKER_BUILD / PIPELINE_WORKER_LINT / PIPELINE_WORKER_TEST to configure them explicitly.');
|
|
95
98
|
}
|
|
96
|
-
|
|
97
|
-
// a
|
|
98
|
-
//
|
|
99
|
-
|
|
100
|
-
// Resolve projectId: YAML value is authoritative; when unset, fall back to
|
|
101
|
-
// auto-detecting a string path from repoBase. projectId can legitimately be
|
|
102
|
-
// a string (a 'group/subgroup/project' path), so it is kept as-is below
|
|
103
|
-
// rather than coerced through positiveNumber, which is number-only.
|
|
104
|
-
let resolvedProjectId = parsed.gitlab?.projectId ?? DEFAULT_CONFIG.gitlab.projectId;
|
|
99
|
+
const repoBase = process.env.PIPELINE_WORKER_GITLAB_REPO_BASE;
|
|
100
|
+
// Auto-detect a string path from repoBase when no project id is configured
|
|
101
|
+
// yet; the env var override below (numeric or string path) always wins.
|
|
102
|
+
let resolvedProjectId = DEFAULT_CONFIG.gitlab.projectId;
|
|
105
103
|
if (!resolvedProjectId && repoBase) {
|
|
106
104
|
try {
|
|
107
105
|
resolvedProjectId = deriveProjectPath(repoBase, repoRoot);
|
|
@@ -111,29 +109,27 @@ export function loadConfig(repoRoot, override) {
|
|
|
111
109
|
console.error(`Warning: ${message}`);
|
|
112
110
|
}
|
|
113
111
|
}
|
|
114
|
-
|
|
115
|
-
// unset or invalid value falls back to the yaml/auto-detected resolution
|
|
116
|
-
// above, which may be a string path.
|
|
117
|
-
const envProjectId = positiveNumber(process.env.PIPELINE_WORKER_GITLAB_PROJECT_ID, NaN);
|
|
118
|
-
const projectId = Number.isNaN(envProjectId) ? resolvedProjectId : envProjectId;
|
|
112
|
+
const projectId = resolveProjectId(process.env.PIPELINE_WORKER_GITLAB_PROJECT_ID, resolvedProjectId);
|
|
119
113
|
return {
|
|
120
|
-
agent: pickName(process.env.PIPELINE_WORKER_AGENT, AGENT_NAMES,
|
|
121
|
-
forge: pickName(process.env.PIPELINE_WORKER_FORGE, FORGE_NAMES,
|
|
114
|
+
agent: pickName(process.env.PIPELINE_WORKER_AGENT, AGENT_NAMES, DEFAULT_CONFIG.agent),
|
|
115
|
+
forge: pickName(process.env.PIPELINE_WORKER_FORGE, FORGE_NAMES, DEFAULT_CONFIG.forge),
|
|
122
116
|
gitlab: {
|
|
123
|
-
host: process.env.PIPELINE_WORKER_GITLAB_HOST ||
|
|
117
|
+
host: process.env.PIPELINE_WORKER_GITLAB_HOST || DEFAULT_CONFIG.gitlab.host,
|
|
124
118
|
projectId,
|
|
125
119
|
repoBase,
|
|
126
120
|
},
|
|
127
121
|
github: {
|
|
128
|
-
repo: process.env.PIPELINE_WORKER_GITHUB_REPO ||
|
|
122
|
+
repo: process.env.PIPELINE_WORKER_GITHUB_REPO || detectGithubRepo(repoRoot) || DEFAULT_CONFIG.github.repo,
|
|
129
123
|
},
|
|
130
|
-
build:
|
|
131
|
-
lint:
|
|
132
|
-
test:
|
|
133
|
-
maxFixAttempts:
|
|
134
|
-
pollIntervalSeconds: positiveNumber(process.env.PIPELINE_WORKER_POLL_INTERVAL_SECONDS,
|
|
135
|
-
branchPattern: process.env.PIPELINE_WORKER_BRANCH_PATTERN ||
|
|
136
|
-
cleanupOnSuccess: boolean(process.env.PIPELINE_WORKER_CLEANUP,
|
|
124
|
+
build: stringOr(process.env.PIPELINE_WORKER_BUILD, detected.build),
|
|
125
|
+
lint: stringOr(process.env.PIPELINE_WORKER_LINT, detected.lint),
|
|
126
|
+
test: stringOr(process.env.PIPELINE_WORKER_TEST, detected.test),
|
|
127
|
+
maxFixAttempts: positiveNumber(process.env.PIPELINE_WORKER_MAX_FIX_ATTEMPTS, DEFAULT_CONFIG.maxFixAttempts),
|
|
128
|
+
pollIntervalSeconds: positiveNumber(process.env.PIPELINE_WORKER_POLL_INTERVAL_SECONDS, DEFAULT_CONFIG.pollIntervalSeconds),
|
|
129
|
+
branchPattern: process.env.PIPELINE_WORKER_BRANCH_PATTERN || DEFAULT_CONFIG.branchPattern,
|
|
130
|
+
cleanupOnSuccess: boolean(process.env.PIPELINE_WORKER_CLEANUP, DEFAULT_CONFIG.cleanupOnSuccess),
|
|
131
|
+
intentModel: process.env.PIPELINE_WORKER_INTENT_MODEL || DEFAULT_CONFIG.intentModel,
|
|
132
|
+
runLintAndTest: boolean(process.env.PIPELINE_WORKER_RUN_LINT_AND_TEST, DEFAULT_CONFIG.runLintAndTest),
|
|
137
133
|
};
|
|
138
134
|
}
|
|
139
135
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,WAAW,GAAyB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChE,MAAM,WAAW,GAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE/D,0EAA0E;AAC1E,MAAM,cAAc,GAA0D;IAC5E,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,CAAC;KACb;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;KACT;IACD,cAAc,EAAE,CAAC;IACjB,mBAAmB,EAAE,EAAE;IACvB,aAAa,EAAE,wBAAwB;IACvC,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,OAAO;IACpB,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,gFAAgF;AAChF,SAAS,UAAU,CAAC,QAAgB;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,KAAK,OAAO,gBAAgB,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAmB,KAAc,EAAE,OAAqB,EAAE,QAAW;IACpF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC,CAAC,CAAC,CAAE,KAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChE,CAAC;AAED,oEAAoE;AACpE,SAAS,cAAc,CAAC,KAAc,EAAE,QAAgB;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1D,CAAC;AAED,yFAAyF;AACzF,SAAS,OAAO,CAAC,KAAc,EAAE,QAAiB;IAChD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAChD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;IACpD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,KAAyB,EAAE,QAAgB;IAC3D,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAED,4IAA4I;AAC5I,SAAS,gBAAgB,CAAC,KAAyB,EAAE,QAAyB;IAC5E,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS;QAC/B,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS;QAC/C,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,SAAS;QAC9C,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,SAAS,EAC9C,CAAC;QACD,OAAO,CAAC,KAAK,CACX,8CAA8C,QAAQ,qCAAqC;YACzF,uGAAuG,CAC1G,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAE9D,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,iBAAiB,GAAoB,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;IACzE,IAAI,CAAC,iBAAiB,IAAI,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,iBAAiB,CAAC,CAAC;IAErG,OAAO;QACL,KAAK,EAAE,QAAQ,CAAY,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC;QAChG,KAAK,EAAE,QAAQ,CAAY,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC;QAChG,MAAM,EAAE;YACN,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI;YAC3E,SAAS;YACT,QAAQ;SACT;QACD,MAAM,EAAE;YACN,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI;SAC1G;QACD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,KAAK,CAAC;QAClE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC;QAC/D,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC;QAC/D,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,cAAc,CAAC,cAAc,CAAC;QAC3G,mBAAmB,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,cAAc,CAAC,mBAAmB,CAAC;QAC1H,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,cAAc,CAAC,aAAa;QACzF,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,cAAc,CAAC,gBAAgB,CAAC;QAC/F,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,cAAc,CAAC,WAAW;QACnF,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,cAAc,CAAC,cAAc,CAAC;KACtG,CAAC;AACJ,CAAC"}
|
package/dist/forge/github.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* shapes: pull request -> MergeRequest (iid = PR number), the set of Actions
|
|
4
4
|
* workflow runs for the PR's head SHA -> one aggregated Pipeline, workflow
|
|
5
5
|
* jobs -> PipelineJob. The token is deliberately sourced only from an
|
|
6
|
-
* environment variable
|
|
6
|
+
* environment variable and never logged.
|
|
7
7
|
*/
|
|
8
8
|
import type { PipelineWorkerConfig, Pipeline } from '../types.js';
|
|
9
9
|
import type { ForgeClient } from './types.js';
|
package/dist/forge/github.js
CHANGED
|
@@ -3,17 +3,16 @@
|
|
|
3
3
|
* shapes: pull request -> MergeRequest (iid = PR number), the set of Actions
|
|
4
4
|
* workflow runs for the PR's head SHA -> one aggregated Pipeline, workflow
|
|
5
5
|
* jobs -> PipelineJob. The token is deliberately sourced only from an
|
|
6
|
-
* environment variable
|
|
6
|
+
* environment variable and never logged.
|
|
7
7
|
*/
|
|
8
8
|
export function resolveGithubAuth(config) {
|
|
9
|
-
// config.github.repo is already env/.env
|
|
10
|
-
//
|
|
11
|
-
// directly from the environment here.
|
|
9
|
+
// config.github.repo is already env/.env-resolved by config/loader.ts; the
|
|
10
|
+
// token and the API URL override are read directly from the environment here.
|
|
12
11
|
const apiUrl = process.env.PIPELINE_WORKER_GITHUB_API_URL || 'https://api.github.com';
|
|
13
12
|
const repo = config.github.repo;
|
|
14
13
|
const token = process.env.PIPELINE_WORKER_GITHUB_TOKEN || process.env.GITHUB_TOKEN;
|
|
15
14
|
if (!/^[^/\s]+\/[^/\s]+$/.test(repo)) {
|
|
16
|
-
throw new Error('GitHub repo is not configured (set
|
|
15
|
+
throw new Error('GitHub repo is not configured (set PIPELINE_WORKER_GITHUB_REPO to "owner/name").');
|
|
17
16
|
}
|
|
18
17
|
if (!token)
|
|
19
18
|
throw new Error('PIPELINE_WORKER_GITHUB_TOKEN (or GITHUB_TOKEN) environment variable is not set.');
|
package/dist/forge/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/forge/github.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/forge/github.ts"],"names":[],"mappings":"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"}
|
package/dist/forge/gitlab.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GitLab REST (v4) ForgeClient. The token is deliberately sourced only from
|
|
3
|
-
* an environment variable
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* an environment variable and never logged. Used both by the workflow
|
|
4
|
+
* orchestrator and the MCP tool handlers, so there is exactly one place that
|
|
5
|
+
* knows how to talk to GitLab.
|
|
6
6
|
*/
|
|
7
7
|
import type { PipelineWorkerConfig } from '../types.js';
|
|
8
8
|
import type { ForgeClient } from './types.js';
|
package/dist/forge/gitlab.js
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GitLab REST (v4) ForgeClient. The token is deliberately sourced only from
|
|
3
|
-
* an environment variable
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* an environment variable and never logged. Used both by the workflow
|
|
4
|
+
* orchestrator and the MCP tool handlers, so there is exactly one place that
|
|
5
|
+
* knows how to talk to GitLab.
|
|
6
6
|
*/
|
|
7
7
|
export function resolveGitlabAuth(config) {
|
|
8
|
-
// config.gitlab.host/projectId are already env/.env
|
|
9
|
-
// config/loader.ts;
|
|
10
|
-
// directly from the environment here.
|
|
8
|
+
// config.gitlab.host/projectId are already env/.env-resolved by
|
|
9
|
+
// config/loader.ts; the token is read directly from the environment here.
|
|
11
10
|
const host = config.gitlab.host;
|
|
12
11
|
const projectId = config.gitlab.projectId;
|
|
13
12
|
const token = process.env.PIPELINE_WORKER_GITLAB_TOKEN;
|
|
14
13
|
if (!host)
|
|
15
|
-
throw new Error('GitLab host is not configured (set
|
|
14
|
+
throw new Error('GitLab host is not configured (set PIPELINE_WORKER_GITLAB_HOST).');
|
|
16
15
|
if (!projectId)
|
|
17
|
-
throw new Error('GitLab projectId is not configured (set
|
|
16
|
+
throw new Error('GitLab projectId is not configured (set PIPELINE_WORKER_GITLAB_PROJECT_ID, or PIPELINE_WORKER_GITLAB_REPO_BASE for auto-detection).');
|
|
18
17
|
if (!token)
|
|
19
18
|
throw new Error('PIPELINE_WORKER_GITLAB_TOKEN environment variable is not set.');
|
|
20
19
|
return { host, projectId, token };
|
package/dist/forge/gitlab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../src/forge/gitlab.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,
|
|
1
|
+
{"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../src/forge/gitlab.ts"],"names":[],"mappings":"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"}
|
package/dist/forge/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { PipelineWorkerConfig } from '../types.js';
|
|
2
2
|
import type { ForgeClient } from './types.js';
|
|
3
|
-
/** Picks the forge named in config (
|
|
3
|
+
/** Picks the forge named in config (PIPELINE_WORKER_FORGE). No runtime fallback. */
|
|
4
4
|
export declare function createForge(config: PipelineWorkerConfig): ForgeClient;
|
package/dist/forge/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createGitlabForge } from './gitlab.js';
|
|
2
2
|
import { createGithubForge } from './github.js';
|
|
3
|
-
/** Picks the forge named in config (
|
|
3
|
+
/** Picks the forge named in config (PIPELINE_WORKER_FORGE). No runtime fallback. */
|
|
4
4
|
export function createForge(config) {
|
|
5
5
|
switch (config.forge) {
|
|
6
6
|
case 'gitlab':
|
package/dist/forge/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/forge/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/forge/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,oFAAoF;AACpF,MAAM,UAAU,WAAW,CAAC,MAA4B;IACtD,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -29,8 +29,7 @@ export function deriveProjectPath(repoBase, repoRoot) {
|
|
|
29
29
|
const rel = relative(repoBase, repoRoot);
|
|
30
30
|
if (!rel || rel.startsWith('..')) {
|
|
31
31
|
throw new Error(`Cannot derive GitLab project path: '${repoRoot}' is not inside repoBase '${repoBase}'. ` +
|
|
32
|
-
`Set PIPELINE_WORKER_GITLAB_REPO_BASE
|
|
33
|
-
`to the local directory that mirrors the GitLab host namespace root.`);
|
|
32
|
+
`Set PIPELINE_WORKER_GITLAB_REPO_BASE to the local directory that mirrors the GitLab host namespace root.`);
|
|
34
33
|
}
|
|
35
34
|
return rel.split(sep).map(toKebabCase).join('/');
|
|
36
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveProjectPath.js","sourceRoot":"","sources":["../../src/git/resolveProjectPath.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,OAAO;SACX,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC;SACrC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;IAClE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,6BAA6B,QAAQ,KAAK;YACvF,
|
|
1
|
+
{"version":3,"file":"resolveProjectPath.js","sourceRoot":"","sources":["../../src/git/resolveProjectPath.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,OAAO;SACX,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC;SACrC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;IAClE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,6BAA6B,QAAQ,KAAK;YACvF,0GAA0G,CAC7G,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -19,10 +19,14 @@ export interface PipelineWorkerConfig {
|
|
|
19
19
|
test: string;
|
|
20
20
|
maxFixAttempts: number;
|
|
21
21
|
pollIntervalSeconds: number;
|
|
22
|
+
/** Model passed to the agent for the intent-capture step (see captureIntent.ts). Ignored by adapters with no per-invocation model selection (e.g. copilot). */
|
|
23
|
+
intentModel: string;
|
|
22
24
|
/** Feature branch naming template. Supports {type}, {ticket}, {name} placeholders; e.g. "{type}/{ticket}/{name}". */
|
|
23
25
|
branchPattern: string;
|
|
24
26
|
/** Once the MR/PR is opened and CI is green, reset repoRoot to HEAD — the captured changes now live safely on the branch. */
|
|
25
27
|
cleanupOnSuccess: boolean;
|
|
28
|
+
/** Run the local lint and test stages before opening the MR/PR; false runs only build, skipping both — e.g. when an earlier workflow already verified them. */
|
|
29
|
+
runLintAndTest: boolean;
|
|
26
30
|
}
|
|
27
31
|
export type RunPhase = 'diff' | 'intent' | 'checks' | 'mr' | 'watch' | 'done' | 'escalated';
|
|
28
32
|
export interface RunState {
|
package/dist/ui/welcome.js
CHANGED
|
@@ -9,9 +9,9 @@ export function repositoryUrl(config) {
|
|
|
9
9
|
return config.gitlab.host ? `${config.gitlab.host} (project ${config.gitlab.projectId})` : '(not configured)';
|
|
10
10
|
}
|
|
11
11
|
export function agentDescription(config) {
|
|
12
|
-
// Mirrors captureIntent.ts's
|
|
12
|
+
// Mirrors captureIntent.ts's model handling: only claude supports
|
|
13
13
|
// per-invocation model selection today, so only claude has a "mode" to show.
|
|
14
|
-
return config.agent === 'claude' ?
|
|
14
|
+
return config.agent === 'claude' ? `claude (${config.intentModel} for intent capture, default model for CI fixes)` : 'copilot';
|
|
15
15
|
}
|
|
16
16
|
export async function printWelcome(config, repoRoot) {
|
|
17
17
|
const user = await getGitUser(repoRoot);
|
package/dist/ui/welcome.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/ui/welcome.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,UAAU,aAAa,CAAC,MAA4B;IACxD,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC9F,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,
|
|
1
|
+
{"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/ui/welcome.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,UAAU,aAAa,CAAC,MAA4B;IACxD,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC9F,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,kEAAkE;IAClE,6EAA6E;IAC7E,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,WAAW,kDAAkD,CAAC,CAAC,CAAC,SAAS,CAAC;AACjI,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAA4B,EAAE,QAAgB;IAC/E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAA4B;QACpC,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC;KAC5F,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -11,5 +11,12 @@ import type { CapturedIntent } from '../types.js';
|
|
|
11
11
|
* large any individual file's diff is, and lets the agent skip files it
|
|
12
12
|
* judges irrelevant to intent (lockfiles, generated assets) instead of
|
|
13
13
|
* paying to read them.
|
|
14
|
+
*
|
|
15
|
+
* `model` (config's `intentModel`, default "haiku" — see config/loader.ts)
|
|
16
|
+
* lets a lighter model handle this step to keep its token cost down, since
|
|
17
|
+
* naming a branch/commit/summary from a diff needs no deep reasoning.
|
|
18
|
+
* Adapters with no per-invocation model selection (e.g. copilot) ignore it.
|
|
19
|
+
* The CI-fix path (watchPipeline.ts) deliberately never sets a model override
|
|
20
|
+
* — fixing a real failing build needs the stronger default model.
|
|
14
21
|
*/
|
|
15
|
-
export declare function captureIntent(agent: AgentAdapter, files: string[], worktreePath: string): Promise<CapturedIntent>;
|
|
22
|
+
export declare function captureIntent(agent: AgentAdapter, files: string[], worktreePath: string, model: string): Promise<CapturedIntent>;
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
/** Step 3: ask the configured agent what a diff is *for*, in a structured, reusable shape. */
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
const COMMIT_MESSAGE_MAX_LENGTH = 72;
|
|
4
|
-
/**
|
|
5
|
-
* Naming a branch/commit/summary from a diff needs no deep reasoning, so a
|
|
6
|
-
* lighter model keeps this step's token cost down. Adapters that don't
|
|
7
|
-
* support per-invocation model selection (e.g. copilot) just ignore this.
|
|
8
|
-
* The CI-fix path (watchPipeline.ts) deliberately does NOT set this — fixing
|
|
9
|
-
* a real failing build needs the stronger default model.
|
|
10
|
-
*/
|
|
11
|
-
const INTENT_MODEL = 'haiku';
|
|
12
4
|
/**
|
|
13
5
|
* Read-only tools the agent may use to inspect the change set itself (see
|
|
14
6
|
* captureIntent below): `Read` for new/untracked files (`git diff` shows
|
|
@@ -105,8 +97,15 @@ const IntentShape = z.object({
|
|
|
105
97
|
* large any individual file's diff is, and lets the agent skip files it
|
|
106
98
|
* judges irrelevant to intent (lockfiles, generated assets) instead of
|
|
107
99
|
* paying to read them.
|
|
100
|
+
*
|
|
101
|
+
* `model` (config's `intentModel`, default "haiku" — see config/loader.ts)
|
|
102
|
+
* lets a lighter model handle this step to keep its token cost down, since
|
|
103
|
+
* naming a branch/commit/summary from a diff needs no deep reasoning.
|
|
104
|
+
* Adapters with no per-invocation model selection (e.g. copilot) ignore it.
|
|
105
|
+
* The CI-fix path (watchPipeline.ts) deliberately never sets a model override
|
|
106
|
+
* — fixing a real failing build needs the stronger default model.
|
|
108
107
|
*/
|
|
109
|
-
export async function captureIntent(agent, files, worktreePath) {
|
|
108
|
+
export async function captureIntent(agent, files, worktreePath, model) {
|
|
110
109
|
const prompt = 'The following files changed in this git worktree (which is your current working directory):\n' +
|
|
111
110
|
files.map((file) => `- ${file}`).join('\n') +
|
|
112
111
|
'\n\nUse your tools to inspect what changed: `git diff HEAD -- <file>` (or `git diff HEAD` for everything at ' +
|
|
@@ -122,7 +121,7 @@ export async function captureIntent(agent, files, worktreePath) {
|
|
|
122
121
|
prompt,
|
|
123
122
|
cwd: worktreePath,
|
|
124
123
|
jsonSchema: INTENT_SCHEMA,
|
|
125
|
-
model
|
|
124
|
+
model,
|
|
126
125
|
permissionMode: 'default',
|
|
127
126
|
allowedTools: READ_ONLY_TOOLS,
|
|
128
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureIntent.js","sourceRoot":"","sources":["../../src/workflow/captureIntent.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAE9F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC
|
|
1
|
+
{"version":3,"file":"captureIntent.js","sourceRoot":"","sources":["../../src/workflow/captureIntent.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,9 @@ async function resolveApplyConflicts(agent, worktreePath, conflictedFiles) {
|
|
|
40
40
|
}
|
|
41
41
|
export async function runWorkflow(repoRoot, options = {}) {
|
|
42
42
|
const config = loadConfig(repoRoot);
|
|
43
|
+
if (config.forge === 'gitlab' && !options.ticket) {
|
|
44
|
+
throw new Error('forge is gitlab, which requires a ticket id — pass one with --ticket <id>.');
|
|
45
|
+
}
|
|
43
46
|
const forge = createForge(config);
|
|
44
47
|
const agent = selectAgent(config);
|
|
45
48
|
await printWelcome(config, repoRoot);
|
|
@@ -73,14 +76,7 @@ export async function runWorkflow(repoRoot, options = {}) {
|
|
|
73
76
|
note(`conflict in: ${applyResult.conflictedFiles.join(', ')}`);
|
|
74
77
|
await resolveApplyConflicts(agent, worktreePath, applyResult.conflictedFiles);
|
|
75
78
|
}
|
|
76
|
-
const
|
|
77
|
-
note(`${config.agent} says: ${intent.summary}`);
|
|
78
|
-
noteRisk(intent.risk, intent.riskReason);
|
|
79
|
-
const branchName = buildBranchName(config.branchPattern, { type: intent.changeType, ticket: options.ticket, name: intent.branchSlug });
|
|
80
|
-
await runStep(6, '🌿', 'Checkout feature branch', `switch to feature branch ${branchName}`, () => renameBranch(worktreePath, branchName));
|
|
81
|
-
state = { ...state, branch: branchName, phase: 'intent' };
|
|
82
|
-
saveRunState(repoRoot, state);
|
|
83
|
-
const checks = await runStep(7, '✅', 'Running checks', 'build, lint, and test — whichever your repo has configured', () => runChecks(config, worktreePath));
|
|
79
|
+
const checks = await runStep(5, '✅', 'Running checks', 'build, lint, and test — whichever your repo has configured', () => runChecks(config, worktreePath));
|
|
84
80
|
for (const check of checks)
|
|
85
81
|
note(`${check.name}: ${check.ok ? 'passed' : 'failed'} (${(check.durationMs / 1000).toFixed(1)}s)`);
|
|
86
82
|
const failedCheck = checks.find((c) => !c.ok);
|
|
@@ -91,6 +87,16 @@ export async function runWorkflow(repoRoot, options = {}) {
|
|
|
91
87
|
}
|
|
92
88
|
state.phase = 'checks';
|
|
93
89
|
saveRunState(repoRoot, state);
|
|
90
|
+
// Runs last among the pre-push stages (checks pass first) since it's the
|
|
91
|
+
// most expensive one: no point paying for an AI summary of a change that
|
|
92
|
+
// build/lint/test already rejected.
|
|
93
|
+
const intent = await runStep(6, '🧠', 'Understanding your changes', `ask ${config.agent} to infer a change type, branch slug, commit message, and summary`, () => captureIntent(agent, [...changedFiles, ...untrackedFiles], worktreePath, config.intentModel));
|
|
94
|
+
note(`${config.agent} says: ${intent.summary}`);
|
|
95
|
+
noteRisk(intent.risk, intent.riskReason);
|
|
96
|
+
const branchName = buildBranchName(config.branchPattern, { type: intent.changeType, ticket: options.ticket, name: intent.branchSlug });
|
|
97
|
+
await runStep(7, '🌿', 'Checkout feature branch', `switch to feature branch ${branchName}`, () => renameBranch(worktreePath, branchName));
|
|
98
|
+
state = { ...state, branch: branchName, phase: 'intent' };
|
|
99
|
+
saveRunState(repoRoot, state);
|
|
94
100
|
await runStep(8, '💾', 'Committing changes', `commit message: "${intent.commitMessage}"`,
|
|
95
101
|
// applyDiffToWorktree left everything staged; without this commit the
|
|
96
102
|
// push would carry no changes and the MR would be empty.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/workflow/orchestrate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/workflow/orchestrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,9 @@ import type { CheckResult, PipelineWorkerConfig } from '../types.js';
|
|
|
10
10
|
* spaces inside them.
|
|
11
11
|
*/
|
|
12
12
|
export declare function parseCommand(command: string): string[];
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Runs build, then lint, then test, stopping at the first failure (fail-fast).
|
|
15
|
+
* lint/test are skipped when config.runLintAndTest is false — e.g. when an
|
|
16
|
+
* earlier workflow such as upstream CI already verified them.
|
|
17
|
+
*/
|
|
14
18
|
export declare function runChecks(config: PipelineWorkerConfig, worktreePath: string): Promise<CheckResult[]>;
|
|
@@ -54,12 +54,16 @@ async function runStage(name, command, cwd) {
|
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Runs build, then lint, then test, stopping at the first failure (fail-fast).
|
|
59
|
+
* lint/test are skipped when config.runLintAndTest is false — e.g. when an
|
|
60
|
+
* earlier workflow such as upstream CI already verified them.
|
|
61
|
+
*/
|
|
58
62
|
export async function runChecks(config, worktreePath) {
|
|
59
63
|
const stages = [
|
|
60
64
|
{ name: 'build', command: config.build },
|
|
61
|
-
{ name: 'lint', command: config.lint },
|
|
62
|
-
{ name: 'test', command: config.test },
|
|
65
|
+
{ name: 'lint', command: config.runLintAndTest ? config.lint : '' },
|
|
66
|
+
{ name: 'test', command: config.runLintAndTest ? config.test : '' },
|
|
63
67
|
];
|
|
64
68
|
const results = [];
|
|
65
69
|
for (const stage of stages) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../src/workflow/runChecks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;;;GAIG;AACH,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAG,4BAA4B,CAAC;IAClD,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAyB,EAAE,OAAe,EAAE,GAAW;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC;QACH,IAAI,MAAc,CAAC;QACnB,IAAI,MAAc,CAAC;QACnB,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,mFAAmF;YACnF,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAA+D,CAAC;QAC5E,OAAO;YACL,IAAI;YACJ,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;YAClD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../src/workflow/runChecks.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,27 @@
|
|
|
15
15
|
* conflict markers, sharing the same maxFixAttempts budget as CI fixes.
|
|
16
16
|
*
|
|
17
17
|
* If no pipeline shows up for the MR/PR at all within a short grace window
|
|
18
|
-
*
|
|
19
|
-
* to the full 2-hour safety
|
|
18
|
+
* AND the worktree has no CI config file (.gitlab-ci.yml / .github/workflows),
|
|
19
|
+
* the run ends there instead of polling for up to the full 2-hour safety
|
|
20
|
+
* window. A repo that does have a CI config file always gets the full
|
|
21
|
+
* window — its pipeline may just be slow to register.
|
|
20
22
|
*/
|
|
21
23
|
import type { AgentAdapter } from '../agent/types.js';
|
|
22
24
|
import type { ForgeClient } from '../forge/types.js';
|
|
23
|
-
import type { PipelineWorkerConfig, Pipeline, RunState } from '../types.js';
|
|
25
|
+
import type { ForgeName, PipelineWorkerConfig, Pipeline, RunState } from '../types.js';
|
|
26
|
+
/**
|
|
27
|
+
* Whether the worktree itself has a CI config file for `forge`. A repo that
|
|
28
|
+
* has one will eventually run a pipeline even if the forge's API hasn't
|
|
29
|
+
* registered it yet (slow runner pickup, branch/rules delay) — so the
|
|
30
|
+
* no-pipeline grace window below must never fire in that case, only when
|
|
31
|
+
* there's genuinely no CI config to run.
|
|
32
|
+
*
|
|
33
|
+
* Checks only the conventional path for each forge; a GitLab project whose
|
|
34
|
+
* "CI/CD configuration file" setting points elsewhere (a custom path or a
|
|
35
|
+
* separate repo) reads as unconfigured here and keeps the old grace-window
|
|
36
|
+
* behavior — a known gap, not a false "no CI".
|
|
37
|
+
*/
|
|
38
|
+
export declare function hasCiConfig(worktreePath: string, forge: ForgeName): boolean;
|
|
24
39
|
export type PollOutcome = {
|
|
25
40
|
kind: 'pipeline';
|
|
26
41
|
pipeline: Pipeline;
|
|
@@ -43,7 +58,10 @@ export type PollOutcome = {
|
|
|
43
58
|
* 2-hour safety window times out instead of surfacing the conflict promptly.
|
|
44
59
|
*
|
|
45
60
|
* `noPipelineGraceMs` defaults to NO_PIPELINE_GRACE_MS and is only overridable
|
|
46
|
-
* so tests don't have to wait out the real grace window.
|
|
61
|
+
* so tests don't have to wait out the real grace window. `ciConfigured`
|
|
62
|
+
* (see hasCiConfig) disarms the grace window entirely: a repo with a real CI
|
|
63
|
+
* config file must never be declared "no CI" just because its pipeline is
|
|
64
|
+
* slow to register — it should keep polling the full window instead.
|
|
47
65
|
*/
|
|
48
|
-
export declare function pollForNextAction(forge: ForgeClient, mrIid: number, intervalMs: number, previousPipelineId?: number, noPipelineGraceMs?: number): Promise<PollOutcome>;
|
|
66
|
+
export declare function pollForNextAction(forge: ForgeClient, mrIid: number, intervalMs: number, previousPipelineId?: number, noPipelineGraceMs?: number, ciConfigured?: boolean): Promise<PollOutcome>;
|
|
49
67
|
export declare function watchPipeline(forge: ForgeClient, config: PipelineWorkerConfig, agent: AgentAdapter, worktreePath: string, branch: string, targetBranch: string, mrIid: number, state: RunState, repoRoot: string): Promise<void>;
|
|
@@ -15,11 +15,13 @@
|
|
|
15
15
|
* conflict markers, sharing the same maxFixAttempts budget as CI fixes.
|
|
16
16
|
*
|
|
17
17
|
* If no pipeline shows up for the MR/PR at all within a short grace window
|
|
18
|
-
*
|
|
19
|
-
* to the full 2-hour safety
|
|
18
|
+
* AND the worktree has no CI config file (.gitlab-ci.yml / .github/workflows),
|
|
19
|
+
* the run ends there instead of polling for up to the full 2-hour safety
|
|
20
|
+
* window. A repo that does have a CI config file always gets the full
|
|
21
|
+
* window — its pipeline may just be slow to register.
|
|
20
22
|
*/
|
|
21
23
|
import { execFile } from 'node:child_process';
|
|
22
|
-
import { writeFileSync, unlinkSync } from 'node:fs';
|
|
24
|
+
import { existsSync, readdirSync, writeFileSync, unlinkSync } from 'node:fs';
|
|
23
25
|
import { join } from 'node:path';
|
|
24
26
|
import { randomUUID } from 'node:crypto';
|
|
25
27
|
import { tmpdir } from 'node:os';
|
|
@@ -32,13 +34,33 @@ const MAX_POLL_WINDOW_MS = 2 * 60 * 60 * 1000; // per pipeline attempt, as a saf
|
|
|
32
34
|
// How long to tolerate zero pipelines before concluding the repo has no CI
|
|
33
35
|
// configured for this MR/PR, rather than CI simply not having registered
|
|
34
36
|
// yet. Only applies before we've ever confirmed a pipeline exists (see
|
|
35
|
-
// `previousPipelineId === undefined` below)
|
|
36
|
-
//
|
|
37
|
+
// `previousPipelineId === undefined` below) and only when hasCiConfig found
|
|
38
|
+
// no CI config file in the worktree — once either is untrue, an empty
|
|
39
|
+
// result can't mean "no CI".
|
|
37
40
|
const NO_PIPELINE_GRACE_MS = 60 * 1000;
|
|
38
41
|
const TERMINAL_STATUSES = ['success', 'failed', 'canceled', 'skipped'];
|
|
39
42
|
function sleep(ms) {
|
|
40
43
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
41
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Whether the worktree itself has a CI config file for `forge`. A repo that
|
|
47
|
+
* has one will eventually run a pipeline even if the forge's API hasn't
|
|
48
|
+
* registered it yet (slow runner pickup, branch/rules delay) — so the
|
|
49
|
+
* no-pipeline grace window below must never fire in that case, only when
|
|
50
|
+
* there's genuinely no CI config to run.
|
|
51
|
+
*
|
|
52
|
+
* Checks only the conventional path for each forge; a GitLab project whose
|
|
53
|
+
* "CI/CD configuration file" setting points elsewhere (a custom path or a
|
|
54
|
+
* separate repo) reads as unconfigured here and keeps the old grace-window
|
|
55
|
+
* behavior — a known gap, not a false "no CI".
|
|
56
|
+
*/
|
|
57
|
+
export function hasCiConfig(worktreePath, forge) {
|
|
58
|
+
if (forge === 'gitlab') {
|
|
59
|
+
return existsSync(join(worktreePath, '.gitlab-ci.yml'));
|
|
60
|
+
}
|
|
61
|
+
const workflowsDir = join(worktreePath, '.github', 'workflows');
|
|
62
|
+
return existsSync(workflowsDir) && readdirSync(workflowsDir).some((f) => f.endsWith('.yml') || f.endsWith('.yaml'));
|
|
63
|
+
}
|
|
42
64
|
/**
|
|
43
65
|
* Waits for either a *new* terminal pipeline, a confirmed merge conflict, or
|
|
44
66
|
* (only on the first pipeline of the run) confirmation that no CI is
|
|
@@ -53,16 +75,22 @@ function sleep(ms) {
|
|
|
53
75
|
* 2-hour safety window times out instead of surfacing the conflict promptly.
|
|
54
76
|
*
|
|
55
77
|
* `noPipelineGraceMs` defaults to NO_PIPELINE_GRACE_MS and is only overridable
|
|
56
|
-
* so tests don't have to wait out the real grace window.
|
|
78
|
+
* so tests don't have to wait out the real grace window. `ciConfigured`
|
|
79
|
+
* (see hasCiConfig) disarms the grace window entirely: a repo with a real CI
|
|
80
|
+
* config file must never be declared "no CI" just because its pipeline is
|
|
81
|
+
* slow to register — it should keep polling the full window instead.
|
|
57
82
|
*/
|
|
58
|
-
export async function pollForNextAction(forge, mrIid, intervalMs, previousPipelineId, noPipelineGraceMs = NO_PIPELINE_GRACE_MS) {
|
|
83
|
+
export async function pollForNextAction(forge, mrIid, intervalMs, previousPipelineId, noPipelineGraceMs = NO_PIPELINE_GRACE_MS, ciConfigured = false) {
|
|
59
84
|
const maxPolls = Math.max(1, Math.ceil(MAX_POLL_WINDOW_MS / intervalMs));
|
|
60
85
|
// Undefined previousPipelineId means no pipeline has been confirmed yet
|
|
61
86
|
// for this MR/PR; give the forge a short grace window to register one
|
|
62
|
-
// before concluding there's no CI to watch.
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
|
|
87
|
+
// before concluding there's no CI to watch. Only armed when ciConfigured
|
|
88
|
+
// is false — a repo with a real CI config file can never reach this
|
|
89
|
+
// conclusion, no matter how many polls come back empty. Also disarmed for
|
|
90
|
+
// good the moment any pipeline is observed (even non-terminal) — that
|
|
91
|
+
// alone proves CI is configured, so a later transient empty response must
|
|
92
|
+
// never be counted.
|
|
93
|
+
let noPipelineGracePolls = !ciConfigured && previousPipelineId === undefined ? Math.max(1, Math.ceil(noPipelineGraceMs / intervalMs)) : undefined;
|
|
66
94
|
let emptyPolls = 0;
|
|
67
95
|
for (let i = 0; i < maxPolls; i++) {
|
|
68
96
|
if (await forge.hasMergeConflicts(mrIid)) {
|
|
@@ -178,11 +206,12 @@ async function tryResolveConflicts(forge, agent, config, worktreePath, branch, t
|
|
|
178
206
|
}
|
|
179
207
|
export async function watchPipeline(forge, config, agent, worktreePath, branch, targetBranch, mrIid, state, repoRoot) {
|
|
180
208
|
const intervalMs = config.pollIntervalSeconds * 1000;
|
|
209
|
+
const ciConfigured = hasCiConfig(worktreePath, config.forge);
|
|
181
210
|
state.phase = 'watch';
|
|
182
211
|
saveRunState(repoRoot, state);
|
|
183
212
|
let previousPipelineId;
|
|
184
213
|
for (;;) {
|
|
185
|
-
const outcome = await runStep(11, '👀', 'Watching pipeline', `poll CI every ${config.pollIntervalSeconds}s until it finishes`, () => pollForNextAction(forge, mrIid, intervalMs, previousPipelineId));
|
|
214
|
+
const outcome = await runStep(11, '👀', 'Watching pipeline', `poll CI every ${config.pollIntervalSeconds}s until it finishes`, () => pollForNextAction(forge, mrIid, intervalMs, previousPipelineId, NO_PIPELINE_GRACE_MS, ciConfigured));
|
|
186
215
|
if (outcome.kind === 'conflict') {
|
|
187
216
|
const resolved = await tryResolveConflicts(forge, agent, config, worktreePath, branch, targetBranch, mrIid, state, repoRoot);
|
|
188
217
|
if (!resolved)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchPipeline.js","sourceRoot":"","sources":["../../src/workflow/watchPipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"watchPipeline.js","sourceRoot":"","sources":["../../src/workflow/watchPipeline.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pipeline-worker",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Automated git-worktree workflow: captures intent from a diff via Claude Code or GitHub Copilot CLI, runs build/lint/test, opens a GitLab MR or GitHub PR, and auto-fixes failing pipelines — with a companion forge MCP server (TOON-encoded responses).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Mohan TN <mohan.tn100@gmail.com>",
|
|
@@ -49,12 +49,10 @@
|
|
|
49
49
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
50
50
|
"@toon-format/toon": "^2.3.0",
|
|
51
51
|
"commander": "^12.0.0",
|
|
52
|
-
"js-yaml": "^4.1.0",
|
|
53
52
|
"zod": "^3.25.0"
|
|
54
53
|
},
|
|
55
54
|
"devDependencies": {
|
|
56
55
|
"@eslint/js": "^9.0.0",
|
|
57
|
-
"@types/js-yaml": "^4.0.0",
|
|
58
56
|
"@types/node": "^22.0.0",
|
|
59
57
|
"tsx": "^4.0.0",
|
|
60
58
|
"typescript": "^5.5.0",
|