@tokenfactory/acc-runner 0.4.2-internal → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -3
- package/dist/config.js.map +1 -1
- package/dist/git.d.ts +24 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +76 -1
- package/dist/git.js.map +1 -1
- package/dist/runtime/expand-args.d.ts +28 -0
- package/dist/runtime/expand-args.d.ts.map +1 -0
- package/dist/runtime/expand-args.js +50 -0
- package/dist/runtime/expand-args.js.map +1 -0
- package/dist/secrets/inject.d.ts +70 -0
- package/dist/secrets/inject.d.ts.map +1 -0
- package/dist/secrets/inject.js +102 -0
- package/dist/secrets/inject.js.map +1 -0
- package/dist/task-runner.d.ts +37 -17
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +83 -18
- package/dist/task-runner.js.map +1 -1
- package/dist/types.d.ts +12 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +16 -0
- package/dist/version-check.js.map +1 -1
- package/dist/watch.d.ts +18 -0
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +120 -27
- package/dist/watch.js.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;AAM7C,wBAAgB,UAAU,IAAI,YAAY,CAkBzC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,YAAY,EAAE,YAAY,CAAC,CAWxE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAMtD"}
|
package/dist/config.js
CHANGED
|
@@ -11,9 +11,18 @@
|
|
|
11
11
|
* ACC_SUPABASE_ANON_KEY — production anon key. Safe to ship in the
|
|
12
12
|
* CLI: it's the public anon key; RLS does
|
|
13
13
|
* the gating.
|
|
14
|
-
* ACC_REPO_PATH — local clone
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* ACC_REPO_PATH — local clone fallback (~/work/TechArch).
|
|
15
|
+
* v0.6.0+ this is the LAST resort: task.
|
|
16
|
+
* repo_path_hint on the fetched task row
|
|
17
|
+
* takes precedence so a single runner can
|
|
18
|
+
* span repos. REG-295.
|
|
19
|
+
* ACC_TARGET_REPO — slug fallback, tokenfactory-pvt-ltd/TechArch.
|
|
20
|
+
* v0.6.0+ task.repo wins when present.
|
|
21
|
+
* REG-295.
|
|
22
|
+
* ACC_INTEGRATION_BRANCH — base branch for new PRs, acc/integration.
|
|
23
|
+
* v0.6.0+ task.integration_branch wins when
|
|
24
|
+
* present so a hotfix task can target a
|
|
25
|
+
* release branch without env churn. REG-301.
|
|
17
26
|
*/
|
|
18
27
|
import os from "node:os";
|
|
19
28
|
import path from "node:path";
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,uEAAuE;AACvE,MAAM,sBAAsB,GAAG,+CAA+C,CAAC;AAC/E,MAAM,wBAAwB,GAAG,0CAA0C,CAAC;AAC5E,MAAM,6BAA6B,GAAG,kNAAkN,CAAC;AACzP,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAChE,MAAM,8BAA8B,GAAG,iBAAiB,CAAC;AAazD,SAAS,YAAY,CAAC,IAAY,EAAE,QAAgB;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE;QACjC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,OAAO;QACL,SAAS,EAAE,YAAY,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;QACjE,WAAW,EAAE,YAAY,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;QACvE,eAAe,EAAE,YAAY,CAC3B,uBAAuB,EACvB,6BAA6B,CAC9B;QACD,QAAQ;QACR,UAAU,EAAE,YAAY,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;QACpE,iBAAiB,EAAE,YAAY,CAC7B,wBAAwB,EACxB,8BAA8B,CAC/B;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,CAAC,IAAY,EAAgB,EAAE,CACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC;QAChC,WAAW,EAAE,GAAG,CAAC,kBAAkB,CAAC;QACpC,eAAe,EAAE,GAAG,CAAC,uBAAuB,CAAC;QAC7C,QAAQ,EAAE,GAAG,CAAC,eAAe,CAAC;QAC9B,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC;QAClC,iBAAiB,EAAE,GAAG,CAAC,wBAAwB,CAAC;KACjD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/git.d.ts
CHANGED
|
@@ -7,5 +7,29 @@ export interface GitRunner {
|
|
|
7
7
|
/** True when the working tree has no uncommitted changes. */
|
|
8
8
|
isClean(repoPath: string): Promise<boolean>;
|
|
9
9
|
}
|
|
10
|
+
export type PushErrorKind = "transient" | "terminal";
|
|
11
|
+
/**
|
|
12
|
+
* Classify a `git push` failure. Terminal = the operator has to fix
|
|
13
|
+
* something (credentials, permissions, branch protection). Transient =
|
|
14
|
+
* worth retrying (network drop, GitHub 5xx, TLS hiccup, RPC hangup).
|
|
15
|
+
*
|
|
16
|
+
* Heuristics walk stderr because git surfaces all of these as
|
|
17
|
+
* non-zero exits with explanatory text. We do not parse git's exit
|
|
18
|
+
* code — it's `1` for everything.
|
|
19
|
+
*/
|
|
20
|
+
export declare function classifyPushError(err: unknown): PushErrorKind;
|
|
21
|
+
export interface PushRetryOptions {
|
|
22
|
+
attempts?: number;
|
|
23
|
+
/** Milliseconds between attempt N and N+1. Defaults to 1s/2s/4s. */
|
|
24
|
+
backoffMs?: readonly number[];
|
|
25
|
+
/** Test seam — overrides setTimeout. */
|
|
26
|
+
sleep?: (ms: number) => Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Run `pushFn` with up to N attempts and exponential backoff between
|
|
30
|
+
* attempts. Terminal errors short-circuit immediately so callers don't
|
|
31
|
+
* wait through three rejected pushes when the GitHub token expired.
|
|
32
|
+
*/
|
|
33
|
+
export declare function pushWithRetry(pushFn: () => Promise<void>, options?: PushRetryOptions): Promise<void>;
|
|
10
34
|
export declare const git: GitRunner;
|
|
11
35
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,QAAsC,CAAC;AAEtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEpE;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAMD,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;AAErD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CA0B7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,wCAAwC;IACxC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAQD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,eAAO,MAAM,GAAG,EAAE,SAiBjB,CAAC"}
|
package/dist/git.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Thin git wrappers using execa. The CLI never edits the user's git
|
|
3
3
|
* config — it relies on whatever credentials they already have set up.
|
|
4
|
+
*
|
|
5
|
+
* Push uses an exponential-backoff retry (v0.5.0+): three attempts with
|
|
6
|
+
* 1s/2s/4s sleeps in between. Transient failures (network, 5xx from
|
|
7
|
+
* GitHub, hangups) retry; terminal failures (auth, permission) fail
|
|
8
|
+
* fast so an operator can fix credentials without waiting 7s.
|
|
4
9
|
*/
|
|
5
10
|
import { execa } from "execa";
|
|
6
11
|
// Matches branches the runner should treat as ACC-owned, including the
|
|
@@ -13,6 +18,74 @@ export function isAccBranch(name) {
|
|
|
13
18
|
async function run(repoPath, args) {
|
|
14
19
|
return execa("git", args, { cwd: repoPath, env: process.env });
|
|
15
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Classify a `git push` failure. Terminal = the operator has to fix
|
|
23
|
+
* something (credentials, permissions, branch protection). Transient =
|
|
24
|
+
* worth retrying (network drop, GitHub 5xx, TLS hiccup, RPC hangup).
|
|
25
|
+
*
|
|
26
|
+
* Heuristics walk stderr because git surfaces all of these as
|
|
27
|
+
* non-zero exits with explanatory text. We do not parse git's exit
|
|
28
|
+
* code — it's `1` for everything.
|
|
29
|
+
*/
|
|
30
|
+
export function classifyPushError(err) {
|
|
31
|
+
const e = err;
|
|
32
|
+
const stderr = typeof e?.stderr === "string" ? e.stderr : "";
|
|
33
|
+
const message = typeof e?.message === "string" ? e.message : "";
|
|
34
|
+
const haystack = `${stderr}\n${message}`.toLowerCase();
|
|
35
|
+
// Terminal — auth / permission / branch protection. No amount of
|
|
36
|
+
// retrying fixes any of these.
|
|
37
|
+
const terminalPatterns = [
|
|
38
|
+
"authentication failed",
|
|
39
|
+
"permission denied",
|
|
40
|
+
"remote: permission",
|
|
41
|
+
"could not read username",
|
|
42
|
+
"could not read password",
|
|
43
|
+
"403 forbidden",
|
|
44
|
+
"401 unauthorized",
|
|
45
|
+
"protected branch",
|
|
46
|
+
"gh auth login",
|
|
47
|
+
"support for password authentication was removed",
|
|
48
|
+
];
|
|
49
|
+
if (terminalPatterns.some((p) => haystack.includes(p)))
|
|
50
|
+
return "terminal";
|
|
51
|
+
// Everything else (network errors, 5xx, RPC failures, generic hangups)
|
|
52
|
+
// is treated as transient so the retry loop gives the network a chance
|
|
53
|
+
// to recover.
|
|
54
|
+
return "transient";
|
|
55
|
+
}
|
|
56
|
+
const DEFAULT_BACKOFF_MS = [1_000, 2_000, 4_000];
|
|
57
|
+
function defaultSleep(ms) {
|
|
58
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Run `pushFn` with up to N attempts and exponential backoff between
|
|
62
|
+
* attempts. Terminal errors short-circuit immediately so callers don't
|
|
63
|
+
* wait through three rejected pushes when the GitHub token expired.
|
|
64
|
+
*/
|
|
65
|
+
export async function pushWithRetry(pushFn, options = {}) {
|
|
66
|
+
const attempts = options.attempts ?? 3;
|
|
67
|
+
const backoff = options.backoffMs ?? DEFAULT_BACKOFF_MS;
|
|
68
|
+
const sleep = options.sleep ?? defaultSleep;
|
|
69
|
+
let lastError = null;
|
|
70
|
+
for (let attempt = 1; attempt <= attempts; attempt++) {
|
|
71
|
+
try {
|
|
72
|
+
await pushFn();
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
lastError = err;
|
|
77
|
+
const kind = classifyPushError(err);
|
|
78
|
+
if (kind === "terminal")
|
|
79
|
+
throw err;
|
|
80
|
+
if (attempt === attempts)
|
|
81
|
+
break;
|
|
82
|
+
const wait = backoff[attempt - 1] ?? backoff[backoff.length - 1] ?? 0;
|
|
83
|
+
if (wait > 0)
|
|
84
|
+
await sleep(wait);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
throw lastError;
|
|
88
|
+
}
|
|
16
89
|
export const git = {
|
|
17
90
|
async fetch(repoPath) {
|
|
18
91
|
await run(repoPath, ["fetch", "--prune", "--all"]);
|
|
@@ -22,7 +95,9 @@ export const git = {
|
|
|
22
95
|
await run(repoPath, ["checkout", "-B", branch]);
|
|
23
96
|
},
|
|
24
97
|
async push(repoPath, branch) {
|
|
25
|
-
await
|
|
98
|
+
await pushWithRetry(async () => {
|
|
99
|
+
await run(repoPath, ["push", "-u", "origin", branch]);
|
|
100
|
+
});
|
|
26
101
|
},
|
|
27
102
|
async isClean(repoPath) {
|
|
28
103
|
const { stdout } = await run(repoPath, ["status", "--porcelain"]);
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walks an arbitrary JSON value tree, expanding `{{secret:NAME}}`
|
|
3
|
+
* placeholders in any string leaf. Returns a structurally-identical
|
|
4
|
+
* copy with secrets expanded. Never mutates the input.
|
|
5
|
+
*
|
|
6
|
+
* Side-effect: returns the deduplicated list of secret names consumed.
|
|
7
|
+
* The caller logs the NAMES to telemetry, NOT the plaintexts.
|
|
8
|
+
*
|
|
9
|
+
* Integration point: the MCP dispatcher (added in v0.6-B) calls this
|
|
10
|
+
* AFTER approval but BEFORE spawning the MCP server stdio. The
|
|
11
|
+
* expanded args go to stdio; the pre-expansion args (still containing
|
|
12
|
+
* literal `{{secret:…}}`) go to telemetry. There is a regression test
|
|
13
|
+
* in packages/acc-runner/tests/expand-args.test.ts that asserts the
|
|
14
|
+
* plaintext of a tripwire secret never appears in captured telemetry.
|
|
15
|
+
*/
|
|
16
|
+
import { type SecretFetcher } from "../secrets/inject.js";
|
|
17
|
+
export interface ExpandArgsResult {
|
|
18
|
+
expanded: unknown;
|
|
19
|
+
consumedSecrets: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @param args — the tool-call argument tree (any JSON-safe shape)
|
|
23
|
+
* @param agentId — used as the v0.7-B grant + audit subject
|
|
24
|
+
* @param fetcher — SecretFetcher; production uses makeHttpSecretFetcher
|
|
25
|
+
* @param toolName — forwarded to fetch_secret_for_runtime for audit
|
|
26
|
+
*/
|
|
27
|
+
export declare function expandSecretsInArgs(args: unknown, agentId: string, fetcher: SecretFetcher, toolName?: string): Promise<ExpandArgsResult>;
|
|
28
|
+
//# sourceMappingURL=expand-args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand-args.d.ts","sourceRoot":"","sources":["../../src/runtime/expand-args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CA4B3B"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walks an arbitrary JSON value tree, expanding `{{secret:NAME}}`
|
|
3
|
+
* placeholders in any string leaf. Returns a structurally-identical
|
|
4
|
+
* copy with secrets expanded. Never mutates the input.
|
|
5
|
+
*
|
|
6
|
+
* Side-effect: returns the deduplicated list of secret names consumed.
|
|
7
|
+
* The caller logs the NAMES to telemetry, NOT the plaintexts.
|
|
8
|
+
*
|
|
9
|
+
* Integration point: the MCP dispatcher (added in v0.6-B) calls this
|
|
10
|
+
* AFTER approval but BEFORE spawning the MCP server stdio. The
|
|
11
|
+
* expanded args go to stdio; the pre-expansion args (still containing
|
|
12
|
+
* literal `{{secret:…}}`) go to telemetry. There is a regression test
|
|
13
|
+
* in packages/acc-runner/tests/expand-args.test.ts that asserts the
|
|
14
|
+
* plaintext of a tripwire secret never appears in captured telemetry.
|
|
15
|
+
*/
|
|
16
|
+
import { expandSecretsInString } from "../secrets/inject.js";
|
|
17
|
+
/**
|
|
18
|
+
* @param args — the tool-call argument tree (any JSON-safe shape)
|
|
19
|
+
* @param agentId — used as the v0.7-B grant + audit subject
|
|
20
|
+
* @param fetcher — SecretFetcher; production uses makeHttpSecretFetcher
|
|
21
|
+
* @param toolName — forwarded to fetch_secret_for_runtime for audit
|
|
22
|
+
*/
|
|
23
|
+
export async function expandSecretsInArgs(args, agentId, fetcher, toolName) {
|
|
24
|
+
const consumed = new Set();
|
|
25
|
+
const visit = async (v) => {
|
|
26
|
+
if (typeof v === "string") {
|
|
27
|
+
const { expanded, consumedSecrets } = await expandSecretsInString(v, agentId, fetcher, toolName);
|
|
28
|
+
consumedSecrets.forEach((n) => consumed.add(n));
|
|
29
|
+
return expanded;
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(v)) {
|
|
32
|
+
const out = [];
|
|
33
|
+
for (const item of v) {
|
|
34
|
+
out.push(await visit(item));
|
|
35
|
+
}
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
if (v && typeof v === "object") {
|
|
39
|
+
const out = {};
|
|
40
|
+
for (const k of Object.keys(v)) {
|
|
41
|
+
out[k] = await visit(v[k]);
|
|
42
|
+
}
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
return v;
|
|
46
|
+
};
|
|
47
|
+
const expanded = await visit(args);
|
|
48
|
+
return { expanded, consumedSecrets: [...consumed] };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=expand-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand-args.js","sourceRoot":"","sources":["../../src/runtime/expand-args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,qBAAqB,EAAsB,MAAM,sBAAsB,CAAC;AAOjF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAa,EACb,OAAe,EACf,OAAsB,EACtB,QAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,MAAM,KAAK,GAAG,KAAK,EAAE,CAAU,EAAoB,EAAE;QACnD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACjG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,MAAM,GAAG,GAAc,EAAE,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAA4B,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runner-side `{{secret:NAME}}` placeholder expander.
|
|
3
|
+
*
|
|
4
|
+
* The runner never holds the service-role key (which would let it pull
|
|
5
|
+
* arbitrary plaintext from the vault). Instead, name→id resolution and
|
|
6
|
+
* decryption run server-side behind the user's JWT, and the runner POSTs
|
|
7
|
+
* to /api/runner/expand-secret for each unique name encountered in a
|
|
8
|
+
* tool-call argument tree.
|
|
9
|
+
*
|
|
10
|
+
* The plaintext flow is:
|
|
11
|
+
*
|
|
12
|
+
* 1. Runner extracts `{{secret:NAME}}` placeholders from the args.
|
|
13
|
+
* 2. For each unique NAME, runner POSTs `/api/runner/expand-secret`
|
|
14
|
+
* with `{ name, agent_id, tool_name }`. The endpoint uses
|
|
15
|
+
* `getAdminClient()` to call acc.resolve_secret_id_by_name (v0.7-D)
|
|
16
|
+
* then acc.fetch_secret_for_runtime (v0.7-B, frozen).
|
|
17
|
+
* 3. Plaintext is held in memory ONLY for the duration of the tool
|
|
18
|
+
* call. We never log it, never serialize it, never copy it to the
|
|
19
|
+
* DB. The pre-expansion args (still containing the literal
|
|
20
|
+
* `{{secret:…}}`) are what gets logged to telemetry.
|
|
21
|
+
* 4. Caller hands the expanded result to MCP stdio.
|
|
22
|
+
*
|
|
23
|
+
* Telemetry tripwire test: a fake secret named `TRIPWIRE_VALUE` with
|
|
24
|
+
* plaintext `tripwire-do-not-log-me` must NOT appear in any captured
|
|
25
|
+
* telemetry row. See packages/acc-runner/tests/expand-args.test.ts.
|
|
26
|
+
*
|
|
27
|
+
* Deviations from planning/v0.7-D-chat-encryption-and-visibility.md:
|
|
28
|
+
* - The planning doc imagined `import { supabaseAdmin } from '../db'`
|
|
29
|
+
* — a service-role client at the runner. That doesn't exist (and
|
|
30
|
+
* shouldn't; the runner is end-user-deployed). The /api/runner/
|
|
31
|
+
* expand-secret endpoint is the actual seam.
|
|
32
|
+
* - The planning doc's single fetch_secret_for_runtime call is split
|
|
33
|
+
* into resolve_secret_id_by_name → fetch_secret_for_runtime because
|
|
34
|
+
* v0.7-B's frozen contract takes a uuid, not a name.
|
|
35
|
+
*/
|
|
36
|
+
export declare const SECRET_PATTERN: RegExp;
|
|
37
|
+
/**
|
|
38
|
+
* Fetcher signature. Production wires this to an HTTP call against
|
|
39
|
+
* /api/runner/expand-secret; tests pass a stub.
|
|
40
|
+
*
|
|
41
|
+
* MUST throw on any failure (missing secret, locked vault, denied
|
|
42
|
+
* grant, rate-limit). MUST NOT include any secret-derived data in the
|
|
43
|
+
* error message.
|
|
44
|
+
*/
|
|
45
|
+
export type SecretFetcher = (name: string, agentId: string, toolName?: string) => Promise<string>;
|
|
46
|
+
export interface ExpandResult {
|
|
47
|
+
expanded: string;
|
|
48
|
+
consumedSecrets: string[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Expand `{{secret:NAME}}` placeholders in a single string. Returns the
|
|
52
|
+
* expanded string plus the list of secret names consumed (for telemetry
|
|
53
|
+
* of NAMES, never plaintexts). Throws if any required secret is
|
|
54
|
+
* unavailable — partial expansion is never returned (atomic).
|
|
55
|
+
*/
|
|
56
|
+
export declare function expandSecretsInString(raw: string, agentId: string, fetcher: SecretFetcher, toolName?: string): Promise<ExpandResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Build an HTTP-backed SecretFetcher pointing at the deployed
|
|
59
|
+
* /api/runner/expand-secret endpoint. The runner wires this at startup
|
|
60
|
+
* once it has its user JWT and config.
|
|
61
|
+
*
|
|
62
|
+
* The endpoint MUST NOT echo the plaintext into any error path; this
|
|
63
|
+
* helper trusts that contract.
|
|
64
|
+
*/
|
|
65
|
+
export declare function makeHttpSecretFetcher(opts: {
|
|
66
|
+
publicUrl: string;
|
|
67
|
+
jwt: string;
|
|
68
|
+
fetchImpl?: typeof fetch;
|
|
69
|
+
}): SecretFetcher;
|
|
70
|
+
//# sourceMappingURL=inject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/secrets/inject.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,eAAO,MAAM,cAAc,QAAsC,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAElG,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CA4BvB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,aAAa,CAwBhB"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runner-side `{{secret:NAME}}` placeholder expander.
|
|
3
|
+
*
|
|
4
|
+
* The runner never holds the service-role key (which would let it pull
|
|
5
|
+
* arbitrary plaintext from the vault). Instead, name→id resolution and
|
|
6
|
+
* decryption run server-side behind the user's JWT, and the runner POSTs
|
|
7
|
+
* to /api/runner/expand-secret for each unique name encountered in a
|
|
8
|
+
* tool-call argument tree.
|
|
9
|
+
*
|
|
10
|
+
* The plaintext flow is:
|
|
11
|
+
*
|
|
12
|
+
* 1. Runner extracts `{{secret:NAME}}` placeholders from the args.
|
|
13
|
+
* 2. For each unique NAME, runner POSTs `/api/runner/expand-secret`
|
|
14
|
+
* with `{ name, agent_id, tool_name }`. The endpoint uses
|
|
15
|
+
* `getAdminClient()` to call acc.resolve_secret_id_by_name (v0.7-D)
|
|
16
|
+
* then acc.fetch_secret_for_runtime (v0.7-B, frozen).
|
|
17
|
+
* 3. Plaintext is held in memory ONLY for the duration of the tool
|
|
18
|
+
* call. We never log it, never serialize it, never copy it to the
|
|
19
|
+
* DB. The pre-expansion args (still containing the literal
|
|
20
|
+
* `{{secret:…}}`) are what gets logged to telemetry.
|
|
21
|
+
* 4. Caller hands the expanded result to MCP stdio.
|
|
22
|
+
*
|
|
23
|
+
* Telemetry tripwire test: a fake secret named `TRIPWIRE_VALUE` with
|
|
24
|
+
* plaintext `tripwire-do-not-log-me` must NOT appear in any captured
|
|
25
|
+
* telemetry row. See packages/acc-runner/tests/expand-args.test.ts.
|
|
26
|
+
*
|
|
27
|
+
* Deviations from planning/v0.7-D-chat-encryption-and-visibility.md:
|
|
28
|
+
* - The planning doc imagined `import { supabaseAdmin } from '../db'`
|
|
29
|
+
* — a service-role client at the runner. That doesn't exist (and
|
|
30
|
+
* shouldn't; the runner is end-user-deployed). The /api/runner/
|
|
31
|
+
* expand-secret endpoint is the actual seam.
|
|
32
|
+
* - The planning doc's single fetch_secret_for_runtime call is split
|
|
33
|
+
* into resolve_secret_id_by_name → fetch_secret_for_runtime because
|
|
34
|
+
* v0.7-B's frozen contract takes a uuid, not a name.
|
|
35
|
+
*/
|
|
36
|
+
export const SECRET_PATTERN = /\{\{secret:([A-Z][A-Z0-9_]*)\}\}/g;
|
|
37
|
+
/**
|
|
38
|
+
* Expand `{{secret:NAME}}` placeholders in a single string. Returns the
|
|
39
|
+
* expanded string plus the list of secret names consumed (for telemetry
|
|
40
|
+
* of NAMES, never plaintexts). Throws if any required secret is
|
|
41
|
+
* unavailable — partial expansion is never returned (atomic).
|
|
42
|
+
*/
|
|
43
|
+
export async function expandSecretsInString(raw, agentId, fetcher, toolName) {
|
|
44
|
+
const matches = [...raw.matchAll(SECRET_PATTERN)];
|
|
45
|
+
if (matches.length === 0) {
|
|
46
|
+
return { expanded: raw, consumedSecrets: [] };
|
|
47
|
+
}
|
|
48
|
+
const names = [...new Set(matches.map((m) => m[1]))];
|
|
49
|
+
const plaintexts = new Map();
|
|
50
|
+
for (const name of names) {
|
|
51
|
+
try {
|
|
52
|
+
const plaintext = await fetcher(name, agentId, toolName);
|
|
53
|
+
plaintexts.set(name, plaintext);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
57
|
+
throw new Error(`secret_unavailable: ${name}: ${message}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const expanded = raw.replace(SECRET_PATTERN, (_match, name) => {
|
|
61
|
+
const value = plaintexts.get(name);
|
|
62
|
+
if (value === undefined) {
|
|
63
|
+
throw new Error(`secret_unavailable: ${name}: missing after fetch`);
|
|
64
|
+
}
|
|
65
|
+
return value;
|
|
66
|
+
});
|
|
67
|
+
return { expanded, consumedSecrets: names };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build an HTTP-backed SecretFetcher pointing at the deployed
|
|
71
|
+
* /api/runner/expand-secret endpoint. The runner wires this at startup
|
|
72
|
+
* once it has its user JWT and config.
|
|
73
|
+
*
|
|
74
|
+
* The endpoint MUST NOT echo the plaintext into any error path; this
|
|
75
|
+
* helper trusts that contract.
|
|
76
|
+
*/
|
|
77
|
+
export function makeHttpSecretFetcher(opts) {
|
|
78
|
+
const f = opts.fetchImpl ?? fetch;
|
|
79
|
+
const endpoint = `${opts.publicUrl.replace(/\/$/, "")}/api/runner/expand-secret`;
|
|
80
|
+
return async (name, agentId, toolName) => {
|
|
81
|
+
const res = await f(endpoint, {
|
|
82
|
+
method: "POST",
|
|
83
|
+
headers: {
|
|
84
|
+
Authorization: `Bearer ${opts.jwt}`,
|
|
85
|
+
"Content-Type": "application/json",
|
|
86
|
+
},
|
|
87
|
+
body: JSON.stringify({ name, agent_id: agentId, tool_name: toolName ?? null }),
|
|
88
|
+
});
|
|
89
|
+
if (!res.ok) {
|
|
90
|
+
// Read body for the error reason, but the endpoint contract is
|
|
91
|
+
// that the body NEVER contains plaintext.
|
|
92
|
+
const text = await res.text().catch(() => "");
|
|
93
|
+
throw new Error(`expand-secret HTTP ${res.status}: ${text || res.statusText}`);
|
|
94
|
+
}
|
|
95
|
+
const data = (await res.json());
|
|
96
|
+
if (typeof data.plaintext !== "string") {
|
|
97
|
+
throw new Error("expand-secret response missing plaintext");
|
|
98
|
+
}
|
|
99
|
+
return data.plaintext;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/secrets/inject.ts"],"names":[],"mappings":"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"}
|
package/dist/task-runner.d.ts
CHANGED
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Task execution path. Called by watch.ts when a task_assigned broadcast
|
|
3
|
-
* lands on the runner channel.
|
|
4
|
-
*
|
|
5
|
-
* 1. Transition task → running (RPC).
|
|
6
|
-
* 2. fetch_task_for_runner to get the task + adjacent agent/model/runner.
|
|
7
|
-
* 3. Render the prompt, ensure repo is fresh, branch is checked out.
|
|
8
|
-
* 4. Spawn `claude --print` with the prompt on stdin; pipe stdout/stderr
|
|
9
|
-
* to acc.append_task_event so the History tab updates live.
|
|
10
|
-
* 5. On success, push the branch and open a PR via `gh`.
|
|
11
|
-
* 6. On failure, transition → failed and emit an error task_event.
|
|
12
|
-
*
|
|
13
|
-
* Cancellation: watch.ts holds a reference to the running child via the
|
|
14
|
-
* returned controller and SIGTERMs it on task_cancelled.
|
|
15
|
-
*/
|
|
16
1
|
import { type ExecaChildProcess } from "execa";
|
|
17
2
|
import type { RunnerConfig } from "./config.js";
|
|
18
3
|
import { type NormalizedUsage } from "./cost-pricing.js";
|
|
@@ -33,8 +18,19 @@ export interface RunTaskDeps {
|
|
|
33
18
|
gh?: GhRunner;
|
|
34
19
|
/** Override for tests — defaults to
|
|
35
20
|
* execa('claude', ['--print', '--dangerously-skip-permissions',
|
|
36
|
-
* '--output-format=json']).
|
|
37
|
-
|
|
21
|
+
* '--output-format=json', '--model', modelId?]).
|
|
22
|
+
*
|
|
23
|
+
* v0.6.0 REG-296: modelId is forwarded as `--model <modelId>` when
|
|
24
|
+
* the task carries one, so cost tracking matches the actual model
|
|
25
|
+
* claude spawned with (previously the operator's default Opus was
|
|
26
|
+
* always used regardless of task.model_id). */
|
|
27
|
+
spawnClaude?: (cwd: string, modelId?: string) => ExecaChildProcess;
|
|
28
|
+
/** v0.6.0 REG-301: plain `git checkout <baseBranch>` so the task
|
|
29
|
+
* branch forks from the integration base, not whatever was checked
|
|
30
|
+
* out in cwd. Defaults to `execa('git', ['checkout', baseBranch])`.
|
|
31
|
+
* Tests inject a mock to assert the call ordering against the
|
|
32
|
+
* task-runner pre-spawn sequence. */
|
|
33
|
+
checkoutBase?: (repoPath: string, baseBranch: string) => Promise<void>;
|
|
38
34
|
/**
|
|
39
35
|
* Cost-event sink. Defaults to a direct `acc.record_cost_event` RPC
|
|
40
36
|
* on the runner's already-authenticated supabase client. Tests
|
|
@@ -62,13 +58,37 @@ export interface RunTaskController {
|
|
|
62
58
|
promise: Promise<RunTaskOutcome>;
|
|
63
59
|
cancel(): void;
|
|
64
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Failure phase tag. watch.ts pump() prints this on the stderr summary
|
|
63
|
+
* line (REG-294) so an operator can tell whether a multi-minute task
|
|
64
|
+
* died at fetch, git, claude, or push.
|
|
65
|
+
*/
|
|
66
|
+
export type RunTaskPhase = "transition_to_running" | "fetch" | "git" | "claude_exit" | "push";
|
|
65
67
|
export interface RunTaskOutcome {
|
|
66
68
|
taskId: string;
|
|
67
69
|
status: "ok" | "failed" | "cancelled";
|
|
68
70
|
prUrl?: string;
|
|
69
71
|
exitCode?: number | null;
|
|
70
72
|
error?: string;
|
|
73
|
+
/** v0.6.0 REG-294: which phase of runTask produced the failure. Set
|
|
74
|
+
* on every non-ok return so watch.ts pump() can surface a clear
|
|
75
|
+
* one-liner to the operator. */
|
|
76
|
+
phase?: RunTaskPhase;
|
|
71
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* v0.6.0 REG-296: build the argv for `claude --print`. Splitting this
|
|
80
|
+
* out keeps the model-passthrough logic unit-testable without spawning
|
|
81
|
+
* a real subprocess. modelId is forwarded as `--model <id>` when
|
|
82
|
+
* non-empty (whitespace counts as empty); otherwise omitted so claude
|
|
83
|
+
* uses the operator's default model.
|
|
84
|
+
*/
|
|
85
|
+
export declare function buildClaudeArgs(modelId?: string | null): string[];
|
|
86
|
+
/**
|
|
87
|
+
* v0.6.0 REG-295: expand `~/...` paths against $HOME so a task can
|
|
88
|
+
* carry `repo_path_hint = "~/work/foo"` from a row populated on a
|
|
89
|
+
* different machine. Absolute and relative paths pass through.
|
|
90
|
+
*/
|
|
91
|
+
export declare function expandHomePath(p: string): string;
|
|
72
92
|
/**
|
|
73
93
|
* Pull the structured report block from claude's stdout. Recognises
|
|
74
94
|
* both `--output-format=json` (extracts .result) and plain text. Falls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-runner.d.ts","sourceRoot":"","sources":["../src/task-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"task-runner.d.ts","sourceRoot":"","sources":["../src/task-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/task-runner.js
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* Cancellation: watch.ts holds a reference to the running child via the
|
|
14
14
|
* returned controller and SIGTERMs it on task_cancelled.
|
|
15
15
|
*/
|
|
16
|
+
import os from "node:os";
|
|
17
|
+
import path from "node:path";
|
|
16
18
|
import { execa } from "execa";
|
|
17
19
|
import { normalizeUsage, parseClaudeJson, priceUsdCents, } from "./cost-pricing.js";
|
|
18
20
|
import { git as defaultGit } from "./git.js";
|
|
@@ -20,7 +22,21 @@ import { gh as defaultGh } from "./gh.js";
|
|
|
20
22
|
import { writeMcpConfig as defaultWriteMcpConfig, } from "./mcp-spawn.js";
|
|
21
23
|
import { branchForTask, prTitleForTask, renderTaskPrompt, } from "./prompt.js";
|
|
22
24
|
const LOG_BATCH_BYTES = 4 * 1024;
|
|
23
|
-
|
|
25
|
+
/**
|
|
26
|
+
* v0.6.0 REG-296: build the argv for `claude --print`. Splitting this
|
|
27
|
+
* out keeps the model-passthrough logic unit-testable without spawning
|
|
28
|
+
* a real subprocess. modelId is forwarded as `--model <id>` when
|
|
29
|
+
* non-empty (whitespace counts as empty); otherwise omitted so claude
|
|
30
|
+
* uses the operator's default model.
|
|
31
|
+
*/
|
|
32
|
+
export function buildClaudeArgs(modelId) {
|
|
33
|
+
const args = ["--print", "--dangerously-skip-permissions", "--output-format=json"];
|
|
34
|
+
const trimmed = (modelId ?? "").trim();
|
|
35
|
+
if (trimmed)
|
|
36
|
+
args.push("--model", trimmed);
|
|
37
|
+
return args;
|
|
38
|
+
}
|
|
39
|
+
function defaultSpawnClaude(cwd, modelId) {
|
|
24
40
|
// --dangerously-skip-permissions: bypass claude's per-edit approval
|
|
25
41
|
// prompts. The runner is non-interactive (no TTY for human approval)
|
|
26
42
|
// and the permission boundary is enforced one level up — see the
|
|
@@ -28,7 +44,8 @@ function defaultSpawnClaude(cwd) {
|
|
|
28
44
|
// --output-format=json: emit a structured object so we can parse the
|
|
29
45
|
// usage block for cost tracking. parseClaudeJson falls back to plain
|
|
30
46
|
// text when older claude versions emit markdown directly.
|
|
31
|
-
|
|
47
|
+
// --model: forwarded when the task pins a model (REG-296).
|
|
48
|
+
return execa("claude", buildClaudeArgs(modelId), {
|
|
32
49
|
cwd,
|
|
33
50
|
stdin: "pipe",
|
|
34
51
|
stdout: "pipe",
|
|
@@ -37,6 +54,25 @@ function defaultSpawnClaude(cwd) {
|
|
|
37
54
|
env: process.env,
|
|
38
55
|
});
|
|
39
56
|
}
|
|
57
|
+
async function defaultCheckoutBase(repoPath, baseBranch) {
|
|
58
|
+
// Plain `git checkout <branch>` (not `-B`) so the integration
|
|
59
|
+
// branch's existing ref is honored. With -B we'd reset the
|
|
60
|
+
// integration branch to current HEAD, which is the exact bug
|
|
61
|
+
// REG-301 was filed for in reverse — destructive instead of stale.
|
|
62
|
+
await execa("git", ["checkout", baseBranch], { cwd: repoPath, env: process.env });
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* v0.6.0 REG-295: expand `~/...` paths against $HOME so a task can
|
|
66
|
+
* carry `repo_path_hint = "~/work/foo"` from a row populated on a
|
|
67
|
+
* different machine. Absolute and relative paths pass through.
|
|
68
|
+
*/
|
|
69
|
+
export function expandHomePath(p) {
|
|
70
|
+
if (p === "~")
|
|
71
|
+
return os.homedir();
|
|
72
|
+
if (p.startsWith("~/"))
|
|
73
|
+
return path.join(os.homedir(), p.slice(2));
|
|
74
|
+
return p;
|
|
75
|
+
}
|
|
40
76
|
async function appendEvent(supabase, taskId, kind, payload) {
|
|
41
77
|
const { error } = await supabase.rpc("append_task_event", {
|
|
42
78
|
p_task_id: taskId,
|
|
@@ -121,6 +157,7 @@ export function runTask(taskId, deps) {
|
|
|
121
157
|
const git = deps.git ?? defaultGit;
|
|
122
158
|
const gh = deps.gh ?? defaultGh;
|
|
123
159
|
const spawnClaude = deps.spawnClaude ?? defaultSpawnClaude;
|
|
160
|
+
const checkoutBase = deps.checkoutBase ?? defaultCheckoutBase;
|
|
124
161
|
const postCostEvent = deps.postCostEvent ?? ((event) => defaultPostCostEvent(deps.supabase, event));
|
|
125
162
|
let child = null;
|
|
126
163
|
let cancelled = false;
|
|
@@ -138,7 +175,7 @@ export function runTask(taskId, deps) {
|
|
|
138
175
|
phase: "transition_to_running",
|
|
139
176
|
error: msg,
|
|
140
177
|
});
|
|
141
|
-
return { taskId, status: "failed", error: msg };
|
|
178
|
+
return { taskId, status: "failed", phase: "transition_to_running", error: msg };
|
|
142
179
|
}
|
|
143
180
|
// 2. Fetch task + adjacent rows.
|
|
144
181
|
const fetched = await deps.supabase.rpc("fetch_task_for_runner", {
|
|
@@ -151,31 +188,53 @@ export function runTask(taskId, deps) {
|
|
|
151
188
|
p_task_id: taskId,
|
|
152
189
|
p_new_status: "failed",
|
|
153
190
|
});
|
|
154
|
-
return { taskId, status: "failed", error: msg };
|
|
191
|
+
return { taskId, status: "failed", phase: "fetch", error: msg };
|
|
155
192
|
}
|
|
156
193
|
const result = fetched.data;
|
|
157
194
|
const { task } = result;
|
|
158
195
|
const branch = branchForTask(task.id, task.title, task.branch);
|
|
196
|
+
// REG-295: per-task repo overrides — task row trumps config so one
|
|
197
|
+
// runner can service tasks across multiple repos. Env-backed config
|
|
198
|
+
// remains the fallback for tasks that don't carry a hint yet.
|
|
199
|
+
const repoPath = task.repo_path_hint?.trim()
|
|
200
|
+
? expandHomePath(task.repo_path_hint.trim())
|
|
201
|
+
: deps.cfg.repoPath;
|
|
202
|
+
const targetRepo = task.repo?.trim() || deps.cfg.targetRepo;
|
|
203
|
+
// REG-301: branch base comes from task → cfg → main. cfg.integrationBranch
|
|
204
|
+
// already defaults to "acc/integration" so the third fallback only
|
|
205
|
+
// matters when an operator zeroed it out via env.
|
|
206
|
+
const integrationBranch = task.integration_branch?.trim() || deps.cfg.integrationBranch || "main";
|
|
159
207
|
const prompt = renderTaskPrompt({
|
|
160
208
|
task,
|
|
161
209
|
agent: result.agent,
|
|
162
210
|
model: result.model,
|
|
163
|
-
integrationBranch
|
|
164
|
-
targetRepo
|
|
211
|
+
integrationBranch,
|
|
212
|
+
targetRepo,
|
|
165
213
|
});
|
|
166
|
-
// 3. Repo prep.
|
|
214
|
+
// 3. Repo prep. v0.6.0 forks the task branch from the integration
|
|
215
|
+
// base (REG-301): fetch, switch to the base branch, then create the
|
|
216
|
+
// task branch from there. Prior versions ran `git checkout -B`
|
|
217
|
+
// directly from cwd HEAD, which in the dogfood loop produced a
|
|
218
|
+
// 321-commit PR.
|
|
167
219
|
try {
|
|
168
|
-
await git.fetch(
|
|
169
|
-
await
|
|
220
|
+
await git.fetch(repoPath);
|
|
221
|
+
await checkoutBase(repoPath, integrationBranch);
|
|
222
|
+
await git.checkout(repoPath, branch);
|
|
170
223
|
}
|
|
171
224
|
catch (err) {
|
|
172
225
|
const msg = err.message;
|
|
173
|
-
await appendEvent(deps.supabase, taskId, "error", {
|
|
226
|
+
await appendEvent(deps.supabase, taskId, "error", {
|
|
227
|
+
phase: "git",
|
|
228
|
+
error: msg,
|
|
229
|
+
base: integrationBranch,
|
|
230
|
+
branch,
|
|
231
|
+
repo_path: repoPath,
|
|
232
|
+
});
|
|
174
233
|
await deps.supabase.rpc("transition_task", {
|
|
175
234
|
p_task_id: taskId,
|
|
176
235
|
p_new_status: "failed",
|
|
177
236
|
});
|
|
178
|
-
return { taskId, status: "failed", error: msg };
|
|
237
|
+
return { taskId, status: "failed", phase: "git", error: msg };
|
|
179
238
|
}
|
|
180
239
|
// 4. Spawn Claude.
|
|
181
240
|
if (cancelled) {
|
|
@@ -189,7 +248,7 @@ export function runTask(taskId, deps) {
|
|
|
189
248
|
const writer = deps.writeMcpConfig ?? defaultWriteMcpConfig;
|
|
190
249
|
try {
|
|
191
250
|
mcpCleanup = await writer({
|
|
192
|
-
cwd:
|
|
251
|
+
cwd: repoPath,
|
|
193
252
|
taskId,
|
|
194
253
|
runnerId: deps.session.runnerId,
|
|
195
254
|
accessToken: deps.session.accessToken,
|
|
@@ -203,7 +262,7 @@ export function runTask(taskId, deps) {
|
|
|
203
262
|
process.stderr.write(`[acc-runner] mcp .mcp.json write failed: ${err.message}\n`);
|
|
204
263
|
}
|
|
205
264
|
}
|
|
206
|
-
child = spawnClaude(
|
|
265
|
+
child = spawnClaude(repoPath, result.model?.id);
|
|
207
266
|
if (child.stdin) {
|
|
208
267
|
child.stdin.write(prompt);
|
|
209
268
|
child.stdin.end();
|
|
@@ -258,11 +317,17 @@ export function runTask(taskId, deps) {
|
|
|
258
317
|
p_task_id: taskId,
|
|
259
318
|
p_new_status: "failed",
|
|
260
319
|
});
|
|
261
|
-
return {
|
|
320
|
+
return {
|
|
321
|
+
taskId,
|
|
322
|
+
status: "failed",
|
|
323
|
+
phase: "claude_exit",
|
|
324
|
+
exitCode: outcome.exitCode,
|
|
325
|
+
error: capturedStderr.slice(-200).trim() || `claude exited ${outcome.exitCode}`,
|
|
326
|
+
};
|
|
262
327
|
}
|
|
263
328
|
// 5. Push + open PR.
|
|
264
329
|
try {
|
|
265
|
-
await git.push(
|
|
330
|
+
await git.push(repoPath, branch);
|
|
266
331
|
}
|
|
267
332
|
catch (err) {
|
|
268
333
|
const msg = err.message;
|
|
@@ -271,15 +336,15 @@ export function runTask(taskId, deps) {
|
|
|
271
336
|
p_task_id: taskId,
|
|
272
337
|
p_new_status: "failed",
|
|
273
338
|
});
|
|
274
|
-
return { taskId, status: "failed", error: msg };
|
|
339
|
+
return { taskId, status: "failed", phase: "push", error: msg };
|
|
275
340
|
}
|
|
276
341
|
let prUrl = "";
|
|
277
342
|
try {
|
|
278
343
|
const body = extractReportFromOutput(capturedStdout);
|
|
279
|
-
const pr = await gh.openPR(
|
|
344
|
+
const pr = await gh.openPR(repoPath, {
|
|
280
345
|
title: prTitleForTask(task.id, task.title),
|
|
281
346
|
body,
|
|
282
|
-
base:
|
|
347
|
+
base: integrationBranch,
|
|
283
348
|
});
|
|
284
349
|
prUrl = pr.url;
|
|
285
350
|
await appendEvent(deps.supabase, taskId, "pr-opened", { url: prUrl });
|
package/dist/task-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../src/task-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../src/task-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* shape rather than importing it cross-workspace. v0.3 will dedupe via a
|
|
6
6
|
* shared workspace package once the runner is published.
|
|
7
7
|
*/
|
|
8
|
-
export declare const PROTOCOL_VERSION: "0.
|
|
8
|
+
export declare const PROTOCOL_VERSION: "0.6.0";
|
|
9
9
|
export declare const RUNNER_KEYCHAIN_SERVICE: "acc-runner";
|
|
10
10
|
export interface DeviceCodeResponse {
|
|
11
11
|
device_code: string;
|
|
@@ -62,6 +62,17 @@ export interface FetchTaskResult {
|
|
|
62
62
|
allowed: string[];
|
|
63
63
|
forbidden: string[];
|
|
64
64
|
contracts?: string[] | null;
|
|
65
|
+
/** v0.6.0 REG-295: per-task GitHub slug (owner/name) — overrides
|
|
66
|
+
* cfg.targetRepo so a single runner can service tasks spanning
|
|
67
|
+
* multiple repos. */
|
|
68
|
+
repo?: string | null;
|
|
69
|
+
/** v0.6.0 REG-295: per-task local clone path hint. `~`-prefixed
|
|
70
|
+
* paths expand against $HOME. Overrides cfg.repoPath. */
|
|
71
|
+
repo_path_hint?: string | null;
|
|
72
|
+
/** v0.6.0 REG-301: per-task base branch for new PR branches.
|
|
73
|
+
* Overrides cfg.integrationBranch so a hotfix task can target a
|
|
74
|
+
* release branch without touching env. */
|
|
75
|
+
integration_branch?: string | null;
|
|
65
76
|
};
|
|
66
77
|
agent: {
|
|
67
78
|
id?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB,EAAG,OAAgB,CAAC;AACjD,eAAO,MAAM,uBAAuB,EAAG,YAAqB,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,wBAAwB,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,MAAM,0BAA0B,GAClC,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* shape rather than importing it cross-workspace. v0.3 will dedupe via a
|
|
6
6
|
* shared workspace package once the runner is published.
|
|
7
7
|
*/
|
|
8
|
-
export const PROTOCOL_VERSION = "0.
|
|
8
|
+
export const PROTOCOL_VERSION = "0.6.0";
|
|
9
9
|
export const RUNNER_KEYCHAIN_SERVICE = "acc-runner";
|
|
10
10
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEnE,iBAAS,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEnE,iBAAS,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoCjF;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/version-check.js
CHANGED
|
@@ -22,6 +22,22 @@ export async function checkVersion(publicUrl) {
|
|
|
22
22
|
catch (err) {
|
|
23
23
|
return { ok: false, reason: "unreachable", detail: err.message };
|
|
24
24
|
}
|
|
25
|
+
// 426 Upgrade Required = server-side gate rejection (v0.5.0+).
|
|
26
|
+
// The body still carries min/current so we can surface them in the
|
|
27
|
+
// upgrade hint.
|
|
28
|
+
if (res.status === 426) {
|
|
29
|
+
let body = {};
|
|
30
|
+
try {
|
|
31
|
+
body = (await res.json());
|
|
32
|
+
}
|
|
33
|
+
catch { /* ignore */ }
|
|
34
|
+
return {
|
|
35
|
+
ok: false,
|
|
36
|
+
reason: "outdated",
|
|
37
|
+
serverMin: body.min_version,
|
|
38
|
+
serverCurrent: body.current_version,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
25
41
|
if (!res.ok) {
|
|
26
42
|
return { ok: false, reason: "unreachable", detail: `HTTP ${res.status}` };
|
|
27
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkB9C,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB;IAClD,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC;IACtE,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,gBAAgB,EAAE,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;IACtD,IAAI,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,aAAa,EAAE,IAAI,CAAC,eAAe;SACpC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACxF,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"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"}
|
package/dist/watch.d.ts
CHANGED
|
@@ -2,6 +2,24 @@ import { runTask } from "./task-runner.js";
|
|
|
2
2
|
export declare class RefreshReuseDetectedError extends Error {
|
|
3
3
|
constructor(message: string);
|
|
4
4
|
}
|
|
5
|
+
export type HeartbeatErrorKind = "auth" | "dns" | "tls" | "reset" | "timeout" | "network" | "unknown";
|
|
6
|
+
/**
|
|
7
|
+
* v0.6.0: classify the heartbeat RPC error so we (a) emit a useful
|
|
8
|
+
* stderr line for the operator and (b) only attempt a JWT refresh
|
|
9
|
+
* when the failure shape actually implies an auth problem. Refreshing
|
|
10
|
+
* on a transient network blip just burns the refresh-token rotation
|
|
11
|
+
* chain and surfaces a confusing "refresh failed" line on top of the
|
|
12
|
+
* real underlying network error.
|
|
13
|
+
*/
|
|
14
|
+
export declare function classifyHeartbeatError(err: {
|
|
15
|
+
message?: string | null;
|
|
16
|
+
code?: string | null;
|
|
17
|
+
} | null | undefined): HeartbeatErrorKind;
|
|
18
|
+
/** Pick the next inter-heartbeat delay from the backoff ladder. Caller
|
|
19
|
+
* passes the number of consecutive failures (1 → first retry). The
|
|
20
|
+
* return is at least baseMs so a tighter operator-configured cadence
|
|
21
|
+
* is never slowed by the backoff scheme. */
|
|
22
|
+
export declare function nextHeartbeatDelayMs(consecutiveFailures: number, baseMs: number): number;
|
|
5
23
|
export interface WatchOptions {
|
|
6
24
|
/** Override heartbeat interval (ms). Defaults to 4000. */
|
|
7
25
|
heartbeatMs?: number;
|
package/dist/watch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAA0B,MAAM,kBAAkB,CAAC;AAMnE,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAA0B,MAAM,kBAAkB,CAAC;AAMnE,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAkBD,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,KAAK,GACL,KAAK,GACL,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACxE,kBAAkB,CA2CpB;AAED;;;6CAG6C;AAC7C,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIxF;AAED,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,wEAAwE;IACxE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAkMD,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyGnF"}
|
package/dist/watch.js
CHANGED
|
@@ -28,6 +28,72 @@ const REFRESH_CHECK_MS = 30 * 60 * 1000;
|
|
|
28
28
|
const HEARTBEAT_REFRESH_AFTER = 3;
|
|
29
29
|
const HEARTBEAT_EXIT_AFTER = 5;
|
|
30
30
|
const POLL_INTERVAL_MS = 30_000;
|
|
31
|
+
/**
|
|
32
|
+
* v0.6.0: exponential backoff between heartbeat attempts when the
|
|
33
|
+
* previous one failed. The dogfood loop fired a heartbeat every 4s
|
|
34
|
+
* even when the network was wedged, producing a wall of "fetch failed"
|
|
35
|
+
* stderr noise and reaching the EXIT_AFTER cap in 20s. Spreading
|
|
36
|
+
* attempts out gives flaky links time to recover before we tear down
|
|
37
|
+
* the watch process.
|
|
38
|
+
*/
|
|
39
|
+
const HEARTBEAT_BACKOFF_MS = [4_000, 8_000, 16_000, 32_000, 60_000];
|
|
40
|
+
/**
|
|
41
|
+
* v0.6.0: classify the heartbeat RPC error so we (a) emit a useful
|
|
42
|
+
* stderr line for the operator and (b) only attempt a JWT refresh
|
|
43
|
+
* when the failure shape actually implies an auth problem. Refreshing
|
|
44
|
+
* on a transient network blip just burns the refresh-token rotation
|
|
45
|
+
* chain and surfaces a confusing "refresh failed" line on top of the
|
|
46
|
+
* real underlying network error.
|
|
47
|
+
*/
|
|
48
|
+
export function classifyHeartbeatError(err) {
|
|
49
|
+
if (!err)
|
|
50
|
+
return "unknown";
|
|
51
|
+
const msg = (err.message ?? "").toLowerCase();
|
|
52
|
+
const code = (err.code ?? "").toLowerCase();
|
|
53
|
+
if (code === "pgrst301" ||
|
|
54
|
+
code === "401" ||
|
|
55
|
+
code === "403" ||
|
|
56
|
+
msg.includes("jwt") ||
|
|
57
|
+
msg.includes("invalid token") ||
|
|
58
|
+
msg.includes("token has expired") ||
|
|
59
|
+
msg.includes("unauthorized") ||
|
|
60
|
+
msg.includes("forbidden")) {
|
|
61
|
+
return "auth";
|
|
62
|
+
}
|
|
63
|
+
if (msg.includes("enotfound") || msg.includes("getaddrinfo") || msg.includes("eai_again")) {
|
|
64
|
+
return "dns";
|
|
65
|
+
}
|
|
66
|
+
if (msg.includes("econnreset") || msg.includes("connection reset")) {
|
|
67
|
+
return "reset";
|
|
68
|
+
}
|
|
69
|
+
if (msg.includes("certificate") ||
|
|
70
|
+
msg.includes("self-signed") ||
|
|
71
|
+
msg.includes("self signed") ||
|
|
72
|
+
msg.includes("tls") ||
|
|
73
|
+
msg.includes("ssl")) {
|
|
74
|
+
return "tls";
|
|
75
|
+
}
|
|
76
|
+
if (msg.includes("etimedout") || msg.includes("timeout")) {
|
|
77
|
+
return "timeout";
|
|
78
|
+
}
|
|
79
|
+
if (msg.includes("fetch failed") ||
|
|
80
|
+
msg.includes("econnrefused") ||
|
|
81
|
+
msg.includes("network") ||
|
|
82
|
+
msg.includes("socket hang up")) {
|
|
83
|
+
return "network";
|
|
84
|
+
}
|
|
85
|
+
return "unknown";
|
|
86
|
+
}
|
|
87
|
+
/** Pick the next inter-heartbeat delay from the backoff ladder. Caller
|
|
88
|
+
* passes the number of consecutive failures (1 → first retry). The
|
|
89
|
+
* return is at least baseMs so a tighter operator-configured cadence
|
|
90
|
+
* is never slowed by the backoff scheme. */
|
|
91
|
+
export function nextHeartbeatDelayMs(consecutiveFailures, baseMs) {
|
|
92
|
+
if (consecutiveFailures <= 0)
|
|
93
|
+
return baseMs;
|
|
94
|
+
const idx = Math.min(consecutiveFailures - 1, HEARTBEAT_BACKOFF_MS.length - 1);
|
|
95
|
+
return Math.max(baseMs, HEARTBEAT_BACKOFF_MS[idx]);
|
|
96
|
+
}
|
|
31
97
|
function expiresSoon(session, leadMs = ONE_HOUR_MS) {
|
|
32
98
|
const expires = Date.parse(session.access_expires_at);
|
|
33
99
|
if (!Number.isFinite(expires))
|
|
@@ -228,31 +294,11 @@ export async function watchCommand(options = {}) {
|
|
|
228
294
|
polling: false,
|
|
229
295
|
};
|
|
230
296
|
subscribeChannel(state, taskRunnerFactory);
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
});
|
|
237
|
-
if (!error) {
|
|
238
|
-
state.heartbeatFailures = 0;
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
state.heartbeatFailures += 1;
|
|
242
|
-
process.stderr.write(`[acc-runner] heartbeat failed: ${error.message}\n`);
|
|
243
|
-
if (state.heartbeatFailures === HEARTBEAT_REFRESH_AFTER) {
|
|
244
|
-
process.stderr.write("[acc-runner] JWT may be expired, attempting refresh\n");
|
|
245
|
-
void doRefresh(state, taskRunnerFactory);
|
|
246
|
-
}
|
|
247
|
-
if (state.heartbeatFailures >= HEARTBEAT_EXIT_AFTER) {
|
|
248
|
-
process.stderr.write("[acc-runner] heartbeat dead, exiting\n");
|
|
249
|
-
clearInterval(state.heartbeatTimer);
|
|
250
|
-
clearInterval(state.refreshTimer);
|
|
251
|
-
clearInterval(state.pollTimer);
|
|
252
|
-
process.exit(1);
|
|
253
|
-
}
|
|
254
|
-
})();
|
|
255
|
-
}, heartbeatMs);
|
|
297
|
+
// v0.6.0: self-rescheduling setTimeout (not setInterval) so the
|
|
298
|
+
// backoff ladder in nextHeartbeatDelayMs actually pauses between
|
|
299
|
+
// attempts. setInterval would keep firing every heartbeatMs even
|
|
300
|
+
// while the link is down.
|
|
301
|
+
scheduleHeartbeat(state, taskRunnerFactory, heartbeatMs);
|
|
256
302
|
state.refreshTimer = setInterval(() => {
|
|
257
303
|
if (expiresSoon(state.session)) {
|
|
258
304
|
void doRefresh(state, taskRunnerFactory);
|
|
@@ -271,7 +317,7 @@ export async function watchCommand(options = {}) {
|
|
|
271
317
|
if (state.stopped)
|
|
272
318
|
return;
|
|
273
319
|
state.stopped = true;
|
|
274
|
-
|
|
320
|
+
clearTimeout(state.heartbeatTimer);
|
|
275
321
|
clearInterval(state.refreshTimer);
|
|
276
322
|
clearInterval(state.pollTimer);
|
|
277
323
|
if (state.current)
|
|
@@ -297,6 +343,44 @@ export async function watchCommand(options = {}) {
|
|
|
297
343
|
}
|
|
298
344
|
return { stop, pollOnce: () => pollOnce(state, taskRunnerFactory) };
|
|
299
345
|
}
|
|
346
|
+
function scheduleHeartbeat(state, taskRunnerFactory, baseMs) {
|
|
347
|
+
if (state.stopped)
|
|
348
|
+
return;
|
|
349
|
+
const delay = nextHeartbeatDelayMs(state.heartbeatFailures, baseMs);
|
|
350
|
+
state.heartbeatTimer = setTimeout(() => {
|
|
351
|
+
void (async () => {
|
|
352
|
+
const { error } = await state.supabase.rpc("heartbeat_runner", {
|
|
353
|
+
p_id: state.session.runner_id,
|
|
354
|
+
p_version: PACKAGE_VERSION,
|
|
355
|
+
});
|
|
356
|
+
if (!error) {
|
|
357
|
+
state.heartbeatFailures = 0;
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
state.heartbeatFailures += 1;
|
|
361
|
+
const kind = classifyHeartbeatError(error);
|
|
362
|
+
process.stderr.write(`[acc-runner] heartbeat failed (${kind}): ${error.message}\n`);
|
|
363
|
+
// v0.6.0 REG-294 sibling: only refresh on an auth-shaped error
|
|
364
|
+
// AND once we've crossed the consecutive-failure threshold. A
|
|
365
|
+
// single 401 on a flaky network shouldn't burn a refresh, and a
|
|
366
|
+
// DNS outage shouldn't trigger refresh at all.
|
|
367
|
+
if (state.heartbeatFailures >= HEARTBEAT_REFRESH_AFTER &&
|
|
368
|
+
kind === "auth") {
|
|
369
|
+
process.stderr.write("[acc-runner] auth-shaped heartbeat failure, attempting JWT refresh\n");
|
|
370
|
+
void doRefresh(state, taskRunnerFactory);
|
|
371
|
+
}
|
|
372
|
+
if (state.heartbeatFailures >= HEARTBEAT_EXIT_AFTER) {
|
|
373
|
+
process.stderr.write("[acc-runner] heartbeat dead, exiting\n");
|
|
374
|
+
clearTimeout(state.heartbeatTimer);
|
|
375
|
+
clearInterval(state.refreshTimer);
|
|
376
|
+
clearInterval(state.pollTimer);
|
|
377
|
+
process.exit(1);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
scheduleHeartbeat(state, taskRunnerFactory, baseMs);
|
|
381
|
+
})();
|
|
382
|
+
}, delay);
|
|
383
|
+
}
|
|
300
384
|
async function pump(state, factory) {
|
|
301
385
|
if (state.pumping)
|
|
302
386
|
return;
|
|
@@ -316,7 +400,16 @@ async function pump(state, factory) {
|
|
|
316
400
|
publicUrl: state.cfg.publicUrl,
|
|
317
401
|
});
|
|
318
402
|
try {
|
|
319
|
-
await state.current.promise;
|
|
403
|
+
const outcome = await state.current.promise;
|
|
404
|
+
// v0.6.0 REG-294: surface a one-liner when runTask resolves
|
|
405
|
+
// with status:'failed' (not thrown). Before, an operator had
|
|
406
|
+
// no signal that a multi-minute task ended in a 'failed' RPC
|
|
407
|
+
// call — only thrown exceptions ever hit stderr.
|
|
408
|
+
if (outcome.status === "failed") {
|
|
409
|
+
const reason = outcome.error?.trim() ||
|
|
410
|
+
(outcome.exitCode != null ? `exit ${outcome.exitCode}` : "unknown");
|
|
411
|
+
process.stderr.write(`[acc-runner] task ${next} phase=${outcome.phase ?? "unknown"} failed: ${reason}\n`);
|
|
412
|
+
}
|
|
320
413
|
}
|
|
321
414
|
catch (err) {
|
|
322
415
|
process.stderr.write(`[acc-runner] task ${next} crashed: ${err.message}\n`);
|
package/dist/watch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAA6B,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,OAAO,EAA0B,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACxC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAsChC,SAAS,WAAW,CAAC,OAAsB,EAAE,MAAM,GAAG,WAAW;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,GAAiB,EACjB,OAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,EAAE;QACjF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,cAAc,gBAAgB,EAAE;SAC/C;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;KAC/D,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;QAC7E,IAAI,IAAI,CAAC,KAAK,KAAK,wBAAwB,EAAE,CAAC;YAC5C,MAAM,IAAI,yBAAyB,CACjC,IAAI,CAAC,IAAI;gBACP,2GAA2G,CAC9G,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,+CAA+C,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAC;IAClD,OAAO;QACL,GAAG,OAAO;QACV,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,iBAAiB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QACjE,yEAAyE;QACzE,yEAAyE;QACzE,6CAA6C;QAC7C,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa;KAC3D,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,wEAAwE;AACxE,2EAA2E;AAC3E,SAAS,WAAW,CAAC,GAA8B;IACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAC3E,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,CAAC,GAAG,CACP,sFAAsF;QACpF,yGAAyG,CAC5G,CACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,yEAAyE;AACzE,2EAA2E;AAC3E,SAAS,OAAO,CACd,KAAiB,EACjB,MAAc,EACd,OAAuB;IAEvB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,KAAK,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAiB,EAAE,iBAAiC;IAC5E,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ;SAC3B,OAAO,CAAC,UAAU,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;QAC5C,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;KACnD,CAAC;SACD,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAI,OAAgC,EAAE,OAAO,CAAC;QAC1D,IAAI,MAAM;YAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxD,CAAC,CAAC;SACD,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAI,OAAgC,EAAE,OAAO,CAAC;QAC1D,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACrD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,iEAAiE;QACjE,8BAA8B;QAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC;SACD,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;QACpB,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAOD,4EAA4E;AAC5E,mDAAmD;AACnD,KAAK,UAAU,QAAQ,CAAC,KAAiB,EAAE,OAAuB;IAChE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO;IAC3C,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,4BAA4B,EAAE;YAC7E,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;YACpC,OAAO,EAAE,KAAK,CAAC,SAAS;SACzB,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAoB,CAAC;QAC7C,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,EAAE,EAAE;gBAAE,SAAS;YACvB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,GAAG,OAAO;gBAAE,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC;QAC3E,CAAC;QACD,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,wEAAwE;AACxE,KAAK,UAAU,SAAS,CACtB,KAAiB,EACjB,iBAAiC;IAEjC,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAC9C,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACnE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;YACxC,CAAC;YACD,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC3E,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB;gBAAE,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAiC,GAAa,CAAC,OAAO,IAAI,CAC3D,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,KAAK,CAAC,UAAU,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAwB,EAAE;IAC3D,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,qDAAqD,CAAC,CAAC,SAAS,yDAAyD,CAC1H,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,2DAA2D;IAC3D,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB;gBAAE,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8CAA+C,GAAa,CAAC,OAAO,KAAK,CAC1E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC;IAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC;IAElD,MAAM,KAAK,GAAe;QACxB,GAAG;QACH,OAAO;QACP,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC;QACvD,OAAO,EAAE,SAAuC;QAChD,cAAc,EAAE,SAAsC;QACtD,YAAY,EAAE,SAAsC;QACpD,SAAS,EAAE,SAAsC;QACjD,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,IAAI,GAAG,EAAU;QACvB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;QACd,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE;QACtD,OAAO,EAAE,KAAK;KACf,CAAC;IACF,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAE3C,KAAK,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE;gBAC7D,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;gBAC7B,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kCAAkC,KAAK,CAAC,OAAO,IAAI,CACpD,CAAC;YACF,IAAI,KAAK,CAAC,iBAAiB,KAAK,uBAAuB,EAAE,CAAC;gBACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBAC9E,KAAK,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,KAAK,CAAC,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;gBACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC/D,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBACpC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAClC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,WAAW,CAAC,CAAC;IAEhB,KAAK,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,KAAK,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAErB,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,KAAK,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAC1C,CAAC,EAAE,MAAM,CAAC,CAAC;IAEX,4EAA4E;IAC5E,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE;QAC3C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;QAC7B,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,OAAO,CAAC,SAAS,6BAA6B,CAAC,CAAC,CAAC;IAExF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACpC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE;gBAC5C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;gBAC7B,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,IAAI,CACjB,KAAiB,EACjB,OAAuB;IAEvB,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO;IAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,OAAO,EAAE;oBACP,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;oBACvC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;iBAClC;gBACD,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,IAAI,aAAc,GAAa,CAAC,OAAO,IAAI,CACjE,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED