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.
- package/dist/agent/claude.js +87 -65
- package/dist/agent/claude.js.map +1 -1
- package/dist/agent/copilot.js +19 -14
- package/dist/agent/copilot.js.map +1 -1
- package/dist/cli.js +45 -39
- package/dist/cli.js.map +1 -1
- package/dist/config/detectChecks.js +30 -15
- package/dist/config/detectChecks.js.map +1 -1
- package/dist/config/loader.js +30 -15
- package/dist/config/loader.js.map +1 -1
- package/dist/forge/github.d.ts +0 -7
- package/dist/forge/github.js +13 -19
- package/dist/forge/github.js.map +1 -1
- package/dist/forge/gitlab.d.ts +0 -6
- package/dist/forge/gitlab.js +8 -17
- package/dist/forge/gitlab.js.map +1 -1
- package/dist/forge/shared.d.ts +9 -0
- package/dist/forge/shared.js +27 -0
- package/dist/forge/shared.js.map +1 -0
- package/dist/git/commit.d.ts +0 -1
- package/dist/git/commit.js +0 -4
- package/dist/git/commit.js.map +1 -1
- package/dist/git/resolveProjectPath.d.ts +0 -6
- package/dist/git/resolveProjectPath.js +1 -1
- package/dist/git/resolveProjectPath.js.map +1 -1
- package/dist/git/worktree.d.ts +0 -7
- package/dist/git/worktree.js +42 -25
- package/dist/git/worktree.js.map +1 -1
- package/dist/mcp/server.js +8 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/process/signalCleanup.d.ts +15 -0
- package/dist/process/signalCleanup.js +19 -0
- package/dist/process/signalCleanup.js.map +1 -0
- package/dist/state/lock.d.ts +0 -6
- package/dist/state/lock.js +36 -21
- package/dist/state/lock.js.map +1 -1
- package/dist/state/runState.js +1 -0
- package/dist/state/runState.js.map +1 -1
- package/dist/toon/envelope.js +30 -17
- package/dist/toon/envelope.js.map +1 -1
- package/dist/ui/sessions.js +26 -8
- package/dist/ui/sessions.js.map +1 -1
- package/dist/ui/steps.d.ts +8 -11
- package/dist/ui/steps.js +24 -2
- package/dist/ui/steps.js.map +1 -1
- package/dist/version/autoUpdate.js +23 -15
- package/dist/version/autoUpdate.js.map +1 -1
- package/dist/workflow/orchestrate.js +130 -96
- package/dist/workflow/orchestrate.js.map +1 -1
- package/dist/workflow/runChecks.js +2 -0
- package/dist/workflow/runChecks.js.map +1 -1
- package/dist/workflow/updateChangelog.js +43 -28
- package/dist/workflow/updateChangelog.js.map +1 -1
- package/dist/workflow/watchPipeline.d.ts +0 -19
- package/dist/workflow/watchPipeline.js +115 -87
- package/dist/workflow/watchPipeline.js.map +1 -1
- package/package.json +1 -1
package/dist/state/lock.js
CHANGED
|
@@ -28,36 +28,37 @@ function removeIfPresent(path) {
|
|
|
28
28
|
// Already gone (e.g. a concurrent process reclaimed it first) — fine.
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
+
function readLockHolderPid(path) {
|
|
32
|
+
const heldPid = Number.parseInt(readFileSync(path, 'utf-8').trim(), 10);
|
|
33
|
+
return Number.isInteger(heldPid) ? heldPid : undefined;
|
|
34
|
+
}
|
|
31
35
|
/**
|
|
32
|
-
*
|
|
33
|
-
* lock left
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* The final write uses the 'wx' flag (fails with EEXIST if the path already
|
|
38
|
-
* exists) as the actual mutual-exclusion guard — the existsSync/liveness
|
|
39
|
-
* check above is only a fast path to produce a clear "who's holding it"
|
|
40
|
-
* error message, since it's inherently racy against another process doing
|
|
41
|
-
* the same check concurrently.
|
|
36
|
+
* Throws if the lock is held by a still-alive process; otherwise removes a
|
|
37
|
+
* stale lock left by one that's no longer running (crash, kill -9). This is
|
|
38
|
+
* only a fast path for a clear "who's holding it" error message — it's
|
|
39
|
+
* inherently racy against another process doing the same check concurrently,
|
|
40
|
+
* so writeLockFileExclusive below is the actual mutual-exclusion guard.
|
|
42
41
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
throw new Error(`pipeline-worker: another run (pid ${heldPid}) is already in progress in this repo. ` +
|
|
51
|
-
'Wait for it to finish, or if it crashed without cleaning up, remove .pipeline-worker/run.lock.');
|
|
52
|
-
}
|
|
53
|
-
removeIfPresent(path);
|
|
42
|
+
function assertLockNotHeld(path) {
|
|
43
|
+
if (!existsSync(path))
|
|
44
|
+
return;
|
|
45
|
+
const heldPid = readLockHolderPid(path);
|
|
46
|
+
if (heldPid !== undefined && isProcessAlive(heldPid)) {
|
|
47
|
+
throw new Error(`pipeline-worker: another run (pid ${heldPid}) is already in progress in this repo. ` +
|
|
48
|
+
'Wait for it to finish, or if it crashed without cleaning up, remove .pipeline-worker/run.lock.');
|
|
54
49
|
}
|
|
50
|
+
removeIfPresent(path);
|
|
51
|
+
}
|
|
52
|
+
/** The 'wx' flag fails with EEXIST if the path already exists — this, not assertLockNotHeld's check above, is what actually closes the race between two concurrent acquirers. */
|
|
53
|
+
function writeLockFileExclusive(path) {
|
|
55
54
|
try {
|
|
56
55
|
writeFileSync(path, String(process.pid), { flag: 'wx' });
|
|
57
56
|
}
|
|
58
57
|
catch {
|
|
59
58
|
throw new Error('pipeline-worker: another run just started in this repo — try again.');
|
|
60
59
|
}
|
|
60
|
+
}
|
|
61
|
+
function makeIdempotentReleaser(path) {
|
|
61
62
|
let released = false;
|
|
62
63
|
return () => {
|
|
63
64
|
if (released)
|
|
@@ -66,4 +67,18 @@ export function acquireLock(repoRoot) {
|
|
|
66
67
|
removeIfPresent(path);
|
|
67
68
|
};
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Acquires the lock, throwing if another live process already holds it. A
|
|
72
|
+
* lock left behind by a process that's no longer running (crash, kill -9) is
|
|
73
|
+
* treated as stale and reclaimed. Returns a release function; safe to call
|
|
74
|
+
* more than once.
|
|
75
|
+
*/
|
|
76
|
+
export function acquireLock(repoRoot) {
|
|
77
|
+
const dir = join(repoRoot, '.pipeline-worker');
|
|
78
|
+
mkdirSync(dir, { recursive: true });
|
|
79
|
+
const path = lockPath(repoRoot);
|
|
80
|
+
assertLockNotHeld(path);
|
|
81
|
+
writeLockFileExclusive(path);
|
|
82
|
+
return makeIdempotentReleaser(path);
|
|
83
|
+
}
|
|
69
84
|
//# sourceMappingURL=lock.js.map
|
package/dist/state/lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/state/lock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,SAAS,QAAQ,CAAC,QAAgB;IAChC,OAAO,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,+DAA+D;QAC/D,iEAAiE;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/state/lock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,SAAS,QAAQ,CAAC,QAAgB;IAChC,OAAO,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,+DAA+D;QAC/D,iEAAiE;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO;IAC9B,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,qCAAqC,OAAO,yCAAyC;YACnF,gGAAgG,CACnG,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,iLAAiL;AACjL,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO,GAAG,EAAE;QACV,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC/C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxB,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/state/runState.js
CHANGED
|
@@ -68,6 +68,7 @@ export function recordEvent(repoRoot, state, message, level = 'info') {
|
|
|
68
68
|
* than failing the whole listing — `pipeline-worker sessions` should show
|
|
69
69
|
* what it can even if one run's file is damaged.
|
|
70
70
|
*/
|
|
71
|
+
// fallow-ignore-next-line complexity
|
|
71
72
|
export function listRunStates(repoRoot) {
|
|
72
73
|
const dir = stateDir(repoRoot);
|
|
73
74
|
if (!existsSync(dir))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runState.js","sourceRoot":"","sources":["../../src/state/runState.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runState.js","sourceRoot":"","sources":["../../src/state/runState.ts"],"names":[],"mappings":"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"}
|
package/dist/toon/envelope.js
CHANGED
|
@@ -9,25 +9,38 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { encode } from '@toon-format/toon';
|
|
11
11
|
const DEFAULT_MAX_CHARS = 8000;
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
12
|
+
function encodeBody(data, full, maxChars) {
|
|
13
|
+
const body = data !== undefined ? encode(data) : '';
|
|
14
|
+
const truncated = !full && body.length > maxChars;
|
|
15
|
+
return { body, truncated };
|
|
16
|
+
}
|
|
17
|
+
function renderCountsLines(counts) {
|
|
18
|
+
if (!counts)
|
|
19
|
+
return [];
|
|
20
|
+
return Object.entries(counts).map(([key, value]) => `${key}: ${value}`);
|
|
21
|
+
}
|
|
22
|
+
function renderBodyBlock(body, truncated, maxChars) {
|
|
23
|
+
if (!body)
|
|
24
|
+
return [];
|
|
25
|
+
return [`chars: ${body.length}`, '---', truncated ? body.slice(0, maxChars) : body, '---'];
|
|
26
|
+
}
|
|
27
|
+
function renderTrailer(truncated, maxChars, bodyLength, next) {
|
|
25
28
|
if (truncated) {
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
else if (env.next) {
|
|
29
|
-
lines.push(`next: ${env.next}`);
|
|
29
|
+
return [`note: truncated to ${maxChars} of ${bodyLength} chars`, 'next: call again with full=true to see the rest'];
|
|
30
30
|
}
|
|
31
|
+
if (next)
|
|
32
|
+
return [`next: ${next}`];
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
export function buildEnvelope(env, opts = {}) {
|
|
36
|
+
const maxChars = opts.maxChars ?? DEFAULT_MAX_CHARS;
|
|
37
|
+
const { body, truncated } = encodeBody(env.data, opts.full, maxChars);
|
|
38
|
+
const lines = [
|
|
39
|
+
`status: ${env.status}`,
|
|
40
|
+
...renderCountsLines(env.counts),
|
|
41
|
+
...renderBodyBlock(body, truncated, maxChars),
|
|
42
|
+
...renderTrailer(truncated, maxChars, body.length, env.next),
|
|
43
|
+
];
|
|
31
44
|
return lines.join('\n');
|
|
32
45
|
}
|
|
33
46
|
export function errorEnvelope(kind, message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/toon/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAc/B,
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/toon/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAc/B,SAAS,UAAU,CAAC,IAAa,EAAE,IAAyB,EAAE,QAAgB;IAC5E,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA0C;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,SAAkB,EAAE,QAAgB;IACzE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,aAAa,CAAC,SAAkB,EAAE,QAAgB,EAAE,UAAkB,EAAE,IAAwB;IACvG,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,sBAAsB,QAAQ,OAAO,UAAU,QAAQ,EAAE,iDAAiD,CAAC,CAAC;IACtH,CAAC;IACD,IAAI,IAAI;QAAE,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAa,EAAE,OAAwB,EAAE;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAG;QACZ,WAAW,GAAG,CAAC,MAAM,EAAE;QACvB,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;QAChC,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC7C,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;KAC7D,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,OAAO,wBAAwB,IAAI,cAAc,OAAO,EAAE,CAAC;AAC7D,CAAC"}
|
package/dist/ui/sessions.js
CHANGED
|
@@ -19,6 +19,18 @@ function formatPhase(phase) {
|
|
|
19
19
|
function formatTimestamp(iso) {
|
|
20
20
|
return iso ? new Date(iso).toLocaleString() : 'unknown';
|
|
21
21
|
}
|
|
22
|
+
function formatBranchColumn(branch) {
|
|
23
|
+
return branch.length > 40 ? `${branch.slice(0, 37)}...` : branch.padEnd(40);
|
|
24
|
+
}
|
|
25
|
+
function formatMrColumn(mrIid) {
|
|
26
|
+
return mrIid !== undefined ? `#${mrIid}` : '-';
|
|
27
|
+
}
|
|
28
|
+
function formatSessionRow(session) {
|
|
29
|
+
const { state } = session;
|
|
30
|
+
const branch = formatBranchColumn(state.branch);
|
|
31
|
+
const mr = formatMrColumn(state.mrIid);
|
|
32
|
+
return `${branch} ${formatPhase(state.phase)} ${String(state.attempt).padEnd(8)} ${mr.padEnd(7)} ${formatTimestamp(state.updatedAt)}`;
|
|
33
|
+
}
|
|
22
34
|
/** `pipeline-worker sessions` with no --branch: one line per persisted run, most recently updated first. */
|
|
23
35
|
export function printSessionList(sessions) {
|
|
24
36
|
if (sessions.length === 0) {
|
|
@@ -26,20 +38,27 @@ export function printSessionList(sessions) {
|
|
|
26
38
|
return;
|
|
27
39
|
}
|
|
28
40
|
console.log(styleText('bold', `${'BRANCH'.padEnd(40)} ${'PHASE'.padEnd(9)} ATTEMPT MR/PR UPDATED`));
|
|
29
|
-
for (const
|
|
30
|
-
|
|
31
|
-
const mr = state.mrIid !== undefined ? `#${state.mrIid}` : '-';
|
|
32
|
-
console.log(`${branch} ${formatPhase(state.phase)} ${String(state.attempt).padEnd(8)} ${mr.padEnd(7)} ${formatTimestamp(state.updatedAt)}`);
|
|
41
|
+
for (const session of sessions) {
|
|
42
|
+
console.log(formatSessionRow(session));
|
|
33
43
|
}
|
|
34
44
|
console.log();
|
|
35
45
|
console.log(styleText('dim', "Run `pipeline-worker sessions --branch <name>` for a run's full timeline."));
|
|
36
46
|
}
|
|
37
47
|
const LEVEL_ICON = { info: 'ℹ️ ', error: '❌' };
|
|
48
|
+
function formatOptionalMetaParts(state) {
|
|
49
|
+
return {
|
|
50
|
+
mrPart: state.mrIid !== undefined ? ` mr/pr: #${state.mrIid}` : '',
|
|
51
|
+
pipelinePart: state.pipelineId !== undefined ? ` pipeline: ${state.pipelineId}` : '',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function formatHistoryEntry(entry) {
|
|
55
|
+
const message = entry.level === 'error' ? styleText('red', entry.message) : entry.message;
|
|
56
|
+
return ` ${LEVEL_ICON[entry.level]} ${styleText('dim', formatTimestamp(entry.at))} ${styleText('dim', `[${entry.phase}]`)} ${message}`;
|
|
57
|
+
}
|
|
38
58
|
/** `pipeline-worker sessions --branch <name>`: one run's metadata plus its full step-by-step history. */
|
|
39
59
|
export function printSessionDetail(session) {
|
|
40
60
|
const { state } = session;
|
|
41
|
-
const mrPart
|
|
42
|
-
const pipelinePart = state.pipelineId !== undefined ? ` pipeline: ${state.pipelineId}` : '';
|
|
61
|
+
const { mrPart, pipelinePart } = formatOptionalMetaParts(state);
|
|
43
62
|
console.log(styleText('bold', `Session: ${state.branch}`));
|
|
44
63
|
console.log(styleText('dim', ` target: ${state.targetBranch}`));
|
|
45
64
|
console.log(styleText('dim', ` worktree: ${state.worktreePath}`));
|
|
@@ -54,8 +73,7 @@ export function printSessionDetail(session) {
|
|
|
54
73
|
console.log();
|
|
55
74
|
console.log(styleText('bold', 'Timeline:'));
|
|
56
75
|
for (const entry of history) {
|
|
57
|
-
|
|
58
|
-
console.log(` ${LEVEL_ICON[entry.level]} ${styleText('dim', formatTimestamp(entry.at))} ${styleText('dim', `[${entry.phase}]`)} ${message}`);
|
|
76
|
+
console.log(formatHistoryEntry(entry));
|
|
59
77
|
}
|
|
60
78
|
}
|
|
61
79
|
//# sourceMappingURL=sessions.js.map
|
package/dist/ui/sessions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/ui/sessions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,WAAW,GAAsD;IACrE,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,MAAM;IACd,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,SAAS,WAAW,CAAC,KAAe;IAClC,OAAO,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,eAAe,CAAC,GAAuB;IAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/ui/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/steps.d.ts
CHANGED
|
@@ -8,18 +8,13 @@
|
|
|
8
8
|
import type { RiskLevel } from '../types.js';
|
|
9
9
|
import type { AgentInvokeResult } from '../agent/types.js';
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* a skipped stage is still visible instead of silently vanishing.
|
|
17
|
-
*
|
|
18
|
-
* Stage 12 (watching the pipeline, and fixing/escalating on failure) loops
|
|
19
|
-
* and branches internally, so its sub-steps are numbered 12.1-12.7 (see
|
|
20
|
-
* watchPipeline.ts) rather than each claiming the bare "12".
|
|
11
|
+
* Keeps a spinner redraw to a single physical row. Without this, a line
|
|
12
|
+
* longer than the terminal's column count auto-wraps, and the `\r\x1b[K`
|
|
13
|
+
* redraw in runStep() below only rewinds/clears the row the cursor is on —
|
|
14
|
+
* not the wrapped continuation from the previous frame — so each tick
|
|
15
|
+
* appends a new line instead of animating in place.
|
|
21
16
|
*/
|
|
22
|
-
export declare
|
|
17
|
+
export declare function truncateToWidth(text: string, width: number): string;
|
|
23
18
|
/** A one-off status line with no associated work to wait on (e.g. a final summary). */
|
|
24
19
|
export declare function step(icon: string, title: string, detail?: string): void;
|
|
25
20
|
/**
|
|
@@ -53,6 +48,8 @@ export declare function skipStep(stage: number | string, icon: string, title: st
|
|
|
53
48
|
* didn't return a sessionId, which keeps this safe to call unconditionally.
|
|
54
49
|
*/
|
|
55
50
|
export declare function noteSession(result: AgentInvokeResult, worktreePath: string): void;
|
|
51
|
+
/** Prints an agent's response (truncated) followed by its resumable session info — the shared tail of every conflict/CI-fix agent invocation. */
|
|
52
|
+
export declare function reportAgentInvocation(result: AgentInvokeResult, worktreePath: string): void;
|
|
56
53
|
/**
|
|
57
54
|
* Runs one numbered workflow stage with a colored, iconed title, then a live
|
|
58
55
|
* status line beneath it while `task` runs: a spinner plus a counting-up
|
package/dist/ui/steps.js
CHANGED
|
@@ -19,12 +19,26 @@ const RISK_COLOR = { low: 'green', medium: 'yellow', high: 'red' };
|
|
|
19
19
|
* and branches internally, so its sub-steps are numbered 12.1-12.7 (see
|
|
20
20
|
* watchPipeline.ts) rather than each claiming the bare "12".
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
const TOTAL_STAGES = 13;
|
|
23
23
|
const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
24
24
|
const SPINNER_INTERVAL_MS = 80;
|
|
25
25
|
function formatElapsed(ms) {
|
|
26
26
|
return `${(ms / 1000).toFixed(1)}s`;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Keeps a spinner redraw to a single physical row. Without this, a line
|
|
30
|
+
* longer than the terminal's column count auto-wraps, and the `\r\x1b[K`
|
|
31
|
+
* redraw in runStep() below only rewinds/clears the row the cursor is on —
|
|
32
|
+
* not the wrapped continuation from the previous frame — so each tick
|
|
33
|
+
* appends a new line instead of animating in place.
|
|
34
|
+
*/
|
|
35
|
+
export function truncateToWidth(text, width) {
|
|
36
|
+
if (width <= 0 || text.length <= width)
|
|
37
|
+
return text;
|
|
38
|
+
if (width === 1)
|
|
39
|
+
return text.slice(0, 1);
|
|
40
|
+
return `${text.slice(0, width - 1)}…`;
|
|
41
|
+
}
|
|
28
42
|
/** stage accepts a decimal string (e.g. "12.3") for a sub-step of a numbered stage — see TOTAL_STAGES. */
|
|
29
43
|
function stageHeader(stage, icon, title) {
|
|
30
44
|
return styleText(['bold', 'cyan'], `[${stage}/${TOTAL_STAGES}] ${icon} ${title}`);
|
|
@@ -80,6 +94,12 @@ export function noteSession(result, worktreePath) {
|
|
|
80
94
|
const duration = result.durationMs !== undefined ? ` — ${(result.durationMs / 1000).toFixed(1)}s` : '';
|
|
81
95
|
note(`agent session: ${result.sessionId}${duration} — cd ${worktreePath} to resume it there`);
|
|
82
96
|
}
|
|
97
|
+
/** Prints an agent's response (truncated) followed by its resumable session info — the shared tail of every conflict/CI-fix agent invocation. */
|
|
98
|
+
export function reportAgentInvocation(result, worktreePath) {
|
|
99
|
+
const text = result.text;
|
|
100
|
+
note(`agent: ${text.slice(0, 300).trim()}${text.length > 300 ? '…' : ''}`);
|
|
101
|
+
noteSession(result, worktreePath);
|
|
102
|
+
}
|
|
83
103
|
/**
|
|
84
104
|
* Runs one numbered workflow stage with a colored, iconed title, then a live
|
|
85
105
|
* status line beneath it while `task` runs: a spinner plus a counting-up
|
|
@@ -98,7 +118,9 @@ export async function runStep(stage, icon, title, detail, task) {
|
|
|
98
118
|
const start = Date.now();
|
|
99
119
|
let frame = 0;
|
|
100
120
|
const render = (glyph, color = 'dim') => {
|
|
101
|
-
|
|
121
|
+
const line = ` ${glyph} ${detail} (${formatElapsed(Date.now() - start)})`;
|
|
122
|
+
const width = process.stdout.columns ?? line.length;
|
|
123
|
+
process.stdout.write(`\r\x1b[K${styleText(color, truncateToWidth(line, width))}`);
|
|
102
124
|
};
|
|
103
125
|
render(SPINNER_FRAMES[0]);
|
|
104
126
|
const timer = setInterval(() => {
|
package/dist/ui/steps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/ui/steps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,UAAU,GAAkD,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAElH;;;;;;;;;;;GAWG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/ui/steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,35 +32,43 @@ export function fetchLatestVersion(pkgName) {
|
|
|
32
32
|
export function installVersion(pkgName, versionOrTag) {
|
|
33
33
|
return runNpm(['install', '-g', `${pkgName}@${versionOrTag}`], 'inherit').then(() => undefined);
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
* Checks npm for the latest published version of `pkgName` and installs it
|
|
37
|
-
* globally if it differs from `currentVersion`. Returns the newly installed
|
|
38
|
-
* version, or `undefined` when already current, offline, or the install
|
|
39
|
-
* itself failed — those cases are logged to the console and swallowed
|
|
40
|
-
* rather than thrown, since a failed update check must never stop the
|
|
41
|
-
* workflow that's about to start.
|
|
42
|
-
*/
|
|
43
|
-
export async function ensureLatestVersion(pkgName, currentVersion) {
|
|
44
|
-
let latest;
|
|
35
|
+
async function tryFetchLatestVersion(pkgName, currentVersion) {
|
|
45
36
|
try {
|
|
46
|
-
|
|
37
|
+
return await fetchLatestVersion(pkgName);
|
|
47
38
|
}
|
|
48
39
|
catch (error) {
|
|
49
40
|
const message = error instanceof Error ? error.message : String(error);
|
|
50
41
|
console.error(`Warning: could not check npm for a newer ${pkgName} version (${message}). Continuing with v${currentVersion}.`);
|
|
51
42
|
return undefined;
|
|
52
43
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
console.log(`pipeline-worker: v${currentVersion} installed, v${latest} available on npm — installing...`);
|
|
44
|
+
}
|
|
45
|
+
async function tryInstallVersion(pkgName, latest, currentVersion) {
|
|
56
46
|
try {
|
|
57
47
|
await installVersion(pkgName, latest);
|
|
48
|
+
return true;
|
|
58
49
|
}
|
|
59
50
|
catch (error) {
|
|
60
51
|
const message = error instanceof Error ? error.message : String(error);
|
|
61
52
|
console.error(`Warning: failed to auto-update ${pkgName} to v${latest} (${message}). Continuing with v${currentVersion}.`);
|
|
62
|
-
return
|
|
53
|
+
return false;
|
|
63
54
|
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Checks npm for the latest published version of `pkgName` and installs it
|
|
58
|
+
* globally if it differs from `currentVersion`. Returns the newly installed
|
|
59
|
+
* version, or `undefined` when already current, offline, or the install
|
|
60
|
+
* itself failed — those cases are logged to the console and swallowed
|
|
61
|
+
* rather than thrown, since a failed update check must never stop the
|
|
62
|
+
* workflow that's about to start.
|
|
63
|
+
*/
|
|
64
|
+
export async function ensureLatestVersion(pkgName, currentVersion) {
|
|
65
|
+
const latest = await tryFetchLatestVersion(pkgName, currentVersion);
|
|
66
|
+
if (latest === undefined || latest === currentVersion)
|
|
67
|
+
return undefined;
|
|
68
|
+
console.log(`pipeline-worker: v${currentVersion} installed, v${latest} available on npm — installing...`);
|
|
69
|
+
const installed = await tryInstallVersion(pkgName, latest, currentVersion);
|
|
70
|
+
if (!installed)
|
|
71
|
+
return undefined;
|
|
64
72
|
console.log(`pipeline-worker: updated to v${latest} (takes effect on the next run) — continuing this run with v${currentVersion}.`);
|
|
65
73
|
return latest;
|
|
66
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoUpdate.js","sourceRoot":"","sources":["../../src/version/autoUpdate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,SAAS,MAAM,CAAC,IAAc,EAAE,KAAyB;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACrG,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjI,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,YAAoB;IAClE,OAAO,MAAM,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAClG,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"autoUpdate.js","sourceRoot":"","sources":["../../src/version/autoUpdate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,SAAS,MAAM,CAAC,IAAc,EAAE,KAAyB;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACrG,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjI,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,YAAoB;IAClE,OAAO,MAAM,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAClG,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,cAAsB;IAC1E,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,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,4CAA4C,OAAO,aAAa,OAAO,uBAAuB,cAAc,GAAG,CAAC,CAAC;QAC/H,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAc,EAAE,cAAsB;IACtF,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,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,kCAAkC,OAAO,QAAQ,MAAM,KAAK,OAAO,uBAAuB,cAAc,GAAG,CAAC,CAAC;QAC3H,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,cAAsB;IAC/E,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,cAAc;QAAE,OAAO,SAAS,CAAC;IAExE,OAAO,CAAC,GAAG,CAAC,qBAAqB,cAAc,gBAAgB,MAAM,mCAAmC,CAAC,CAAC;IAC1G,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3E,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,gCAAgC,MAAM,+DAA+D,cAAc,GAAG,CAAC,CAAC;IACpI,OAAO,MAAM,CAAC;AAChB,CAAC"}
|