@tokenfactory/acc-runner 0.12.0 → 0.14.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/README.md +25 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +19 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +126 -3
- package/dist/doctor.js.map +1 -1
- package/dist/failure-classifier.d.ts +13 -0
- package/dist/failure-classifier.d.ts.map +1 -1
- package/dist/failure-classifier.js +4 -0
- package/dist/failure-classifier.js.map +1 -1
- package/dist/git.d.ts +15 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +19 -0
- package/dist/git.js.map +1 -1
- package/dist/github-client.d.ts +133 -0
- package/dist/github-client.d.ts.map +1 -0
- package/dist/github-client.js +234 -0
- package/dist/github-client.js.map +1 -0
- package/dist/runtime/cache-dir.d.ts +2 -0
- package/dist/runtime/cache-dir.d.ts.map +1 -0
- package/dist/runtime/cache-dir.js +15 -0
- package/dist/runtime/cache-dir.js.map +1 -0
- package/dist/runtime/quarantine.d.ts +10 -0
- package/dist/runtime/quarantine.d.ts.map +1 -1
- package/dist/runtime/quarantine.js.map +1 -1
- package/dist/runtime/singleton.d.ts +47 -0
- package/dist/runtime/singleton.d.ts.map +1 -0
- package/dist/runtime/singleton.js +200 -0
- package/dist/runtime/singleton.js.map +1 -0
- package/dist/runtime/version-drift.d.ts +31 -0
- package/dist/runtime/version-drift.d.ts.map +1 -0
- package/dist/runtime/version-drift.js +114 -0
- package/dist/runtime/version-drift.js.map +1 -0
- package/dist/task-runner.d.ts +10 -1
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +153 -49
- package/dist/task-runner.js.map +1 -1
- package/dist/watch.d.ts +8 -0
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +60 -4
- package/dist/watch.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -213,6 +213,31 @@ returned non-zero, or the rendered prompt lacked acceptance criteria.
|
|
|
213
213
|
`MIN_VERSION` was bumped past your installed CLI. Run
|
|
214
214
|
`npm i -g @tokenfactory/acc-runner@latest`.
|
|
215
215
|
|
|
216
|
+
**Runner quarantined after a single flaky run (v0.53+)** — a lone
|
|
217
|
+
instant-empty `claude` exit no longer benches the machine: the runner logs
|
|
218
|
+
an `env_broken_blip` event and retries the spawn once. Only **two
|
|
219
|
+
consecutive** instant-empty exits — or a definitive failure (missing dyld
|
|
220
|
+
library, OOM, `exit 127`) — quarantine the runner. `acc-runner doctor` and
|
|
221
|
+
`acc-runner quarantine status` print the cause, the consecutive count, and
|
|
222
|
+
the `acc-runner quarantine clear` command to resume.
|
|
223
|
+
|
|
224
|
+
## GitHub rate-limit awareness (v0.53)
|
|
225
|
+
|
|
226
|
+
`src/github-client.ts` is a budget-aware GitHub REST wrapper (ported from
|
|
227
|
+
the server's T-52-4 client): per-resource quota tracking, one jittered
|
|
228
|
+
backoff retry on a 429 / secondary-limit 403, and a per-task-execution soft
|
|
229
|
+
call budget that fails clean as a retryable infra error (never quarantines).
|
|
230
|
+
|
|
231
|
+
**Scope:** the runner currently performs **all** of its GitHub work through
|
|
232
|
+
the `gh` CLI — `gh pr create`/`list` (`src/gh.ts`), `gh api` conflict
|
|
233
|
+
resolution (`src/runtime/conflict-resolver.ts`), `gh pr view` head-ref
|
|
234
|
+
lookup (`src/runtime/rework.ts`), and `gh pr view`/`gh pr diff` for reviews
|
|
235
|
+
(`src/runtime/reviewer.ts`). Those are separate processes with their own
|
|
236
|
+
rate-limit handling and are **not** routed through `github-client.ts` — they
|
|
237
|
+
remain uncovered by its budget/backoff. The client is the sanctioned path
|
|
238
|
+
for any future **direct** REST call (`fetch` against `api.github.com`) the
|
|
239
|
+
runner adds.
|
|
240
|
+
|
|
216
241
|
## Security notes
|
|
217
242
|
|
|
218
243
|
- The CLI never reads or writes your git, gh, or Anthropic credentials.
|
package/dist/cli.js
CHANGED
|
@@ -88,6 +88,11 @@ quarantineCmd
|
|
|
88
88
|
console.log(` Detail: ${q.detail}`);
|
|
89
89
|
console.log(` Task: ${q.taskId}`);
|
|
90
90
|
console.log(` Since: ${q.classifiedAt}`);
|
|
91
|
+
// v0.53 T-53-4: consecutive instant-empty count (1 = definitive,
|
|
92
|
+
// 2 = heuristic confirmed by retry). Omitted for pre-0.53 states.
|
|
93
|
+
if (q.consecutive !== undefined) {
|
|
94
|
+
console.log(` Streak: ${q.consecutive} consecutive instant-empty exit(s)`);
|
|
95
|
+
}
|
|
91
96
|
console.log(chalk.gray(`\nResolve the underlying ${q.cause} issue, then run \`acc-runner quarantine clear\`.`));
|
|
92
97
|
process.exitCode = 1;
|
|
93
98
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type RunnerConfig } from "./config.js";
|
|
2
|
+
import { type NpmLatestDeps } from "./runtime/version-drift.js";
|
|
2
3
|
export declare const LAUNCHD_LABEL = "com.tokenfactory.acc-runner";
|
|
3
4
|
export declare function launchdPlistPath(): string;
|
|
4
5
|
export declare const ENV_NAMES: Record<keyof RunnerConfig, string>;
|
|
@@ -6,9 +7,27 @@ export declare const CONFIG_LABELS: Record<keyof RunnerConfig, string>;
|
|
|
6
7
|
interface CheckOutcome {
|
|
7
8
|
name: string;
|
|
8
9
|
ok: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* v0.14.0 (T-54-2): advisory severity. When true the outcome renders as
|
|
12
|
+
* [WARN] (yellow) and does NOT count toward the exit code — used for the
|
|
13
|
+
* version-drift checks where a stale binary is worth flagging but is not
|
|
14
|
+
* a hard environment failure. `ok` is false for a WARN.
|
|
15
|
+
*/
|
|
16
|
+
warn?: boolean;
|
|
9
17
|
detail: string;
|
|
10
18
|
fix?: string;
|
|
11
19
|
}
|
|
20
|
+
export interface SingletonCheckDeps {
|
|
21
|
+
/** Injectable foreign-pid scanner for tests. Defaults to the real ps scan. */
|
|
22
|
+
scan?: (selfPid: number) => Promise<number[]>;
|
|
23
|
+
}
|
|
24
|
+
export declare function checkSingleton(cfg: RunnerConfig | null, deps?: SingletonCheckDeps): Promise<CheckOutcome>;
|
|
25
|
+
export declare function checkUpdateAvailable(deps?: NpmLatestDeps): Promise<CheckOutcome>;
|
|
26
|
+
export interface ClaudeDriftDeps {
|
|
27
|
+
/** Injectable current-version probe for tests. Defaults to the real CLI call. */
|
|
28
|
+
currentVersion?: () => Promise<string | null>;
|
|
29
|
+
}
|
|
30
|
+
export declare function checkClaudeDrift(deps?: ClaudeDriftDeps): Promise<CheckOutcome>;
|
|
12
31
|
export interface DoctorOptions {
|
|
13
32
|
/** Stub the checks for tests. */
|
|
14
33
|
checks?: Array<() => Promise<CheckOutcome>>;
|
package/dist/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAWA,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAWA,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAajF,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,aAAa,gCAAgC,CAAC;AAC3D,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CASxD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAS5D,CAAC;AA+BF,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA2RD,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/C;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,YAAY,GAAG,IAAI,EACxB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,YAAY,CAAC,CAwCvB;AAQD,wBAAsB,oBAAoB,CACxC,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,YAAY,CAAC,CA4BvB;AAED,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,wBAAsB,gBAAgB,CACpC,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAmJD,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;CAC7C;AAYD,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqChF"}
|
package/dist/doctor.js
CHANGED
|
@@ -17,6 +17,10 @@ import { PROTOCOL_VERSION } from "./types.js";
|
|
|
17
17
|
import { locksDir, listStaleLocks } from "./runtime/locks.js";
|
|
18
18
|
import { workDir, listOrphanWorktrees } from "./runtime/worktree.js";
|
|
19
19
|
import { getQuarantine, quarantineFile } from "./runtime/quarantine.js";
|
|
20
|
+
import { findLiveLockHolder, listForeignRunnerPids, singletonLockPath, } from "./runtime/singleton.js";
|
|
21
|
+
import { getClaudeVersion, npmLatestVersion, readTaskEnv, } from "./runtime/version-drift.js";
|
|
22
|
+
import { compareSemver as compareSemverVer } from "./version-check.js";
|
|
23
|
+
import { PACKAGE_VERSION } from "./pkg-version.js";
|
|
20
24
|
export const LAUNCHD_LABEL = "com.tokenfactory.acc-runner";
|
|
21
25
|
export function launchdPlistPath() {
|
|
22
26
|
return path.join(os.homedir(), "Library", "LaunchAgents", `${LAUNCHD_LABEL}.plist`);
|
|
@@ -285,10 +289,14 @@ async function checkQuarantine() {
|
|
|
285
289
|
if (!q) {
|
|
286
290
|
return { name: "runner quarantine", ok: true, detail: "not quarantined" };
|
|
287
291
|
}
|
|
292
|
+
// v0.53 T-53-4: surface the consecutive instant-empty count when present
|
|
293
|
+
// so an operator can see whether this was a confirmed env_broken (2) or
|
|
294
|
+
// a definitive failure (1).
|
|
295
|
+
const consec = q.consecutive !== undefined ? `, consecutive: ${q.consecutive}` : "";
|
|
288
296
|
return {
|
|
289
297
|
name: "runner quarantine",
|
|
290
298
|
ok: false,
|
|
291
|
-
detail: `QUARANTINED (${q.cause}): ${q.detail} — task: ${q.taskId}, at: ${q.classifiedAt}`,
|
|
299
|
+
detail: `QUARANTINED (${q.cause}): ${q.detail} — task: ${q.taskId}, at: ${q.classifiedAt}${consec}`,
|
|
292
300
|
fix: `Resolve the underlying ${q.cause} issue then delete ${quarantineFile()} or run \`acc-runner quarantine clear\`.`,
|
|
293
301
|
};
|
|
294
302
|
}
|
|
@@ -325,6 +333,113 @@ async function checkStaleLocks() {
|
|
|
325
333
|
};
|
|
326
334
|
}
|
|
327
335
|
}
|
|
336
|
+
export async function checkSingleton(cfg, deps = {}) {
|
|
337
|
+
if (!cfg) {
|
|
338
|
+
return {
|
|
339
|
+
name: "no duplicate runner",
|
|
340
|
+
ok: true,
|
|
341
|
+
detail: "config unavailable (skipped)",
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
const scan = deps.scan ?? listForeignRunnerPids;
|
|
345
|
+
try {
|
|
346
|
+
const holder = await findLiveLockHolder(cfg.repoPath, process.pid);
|
|
347
|
+
if (holder) {
|
|
348
|
+
return {
|
|
349
|
+
name: "no duplicate runner",
|
|
350
|
+
ok: false,
|
|
351
|
+
detail: `pid ${holder.pid} already serves ${holder.repoPath} (since ${holder.acquiredAt})`,
|
|
352
|
+
fix: `Stop it: kill ${holder.pid} — or remove ${singletonLockPath(cfg.repoPath)} if that pid is dead.`,
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
// No lock holder for our repo path. Scan for any other acc-runner watch
|
|
356
|
+
// process that predates the singleton lock (no lock file written).
|
|
357
|
+
const foreign = await scan(process.pid);
|
|
358
|
+
if (foreign.length > 0) {
|
|
359
|
+
return {
|
|
360
|
+
name: "no duplicate runner",
|
|
361
|
+
ok: false,
|
|
362
|
+
warn: true,
|
|
363
|
+
detail: `another acc-runner watch process is running (pid ${foreign.join(", ")}); cannot confirm its repo path`,
|
|
364
|
+
fix: "Confirm it is not serving this repo path; if it is, stop it before running watch here.",
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
return { name: "no duplicate runner", ok: true, detail: "no other runner on this repo path" };
|
|
368
|
+
}
|
|
369
|
+
catch (err) {
|
|
370
|
+
return {
|
|
371
|
+
name: "no duplicate runner",
|
|
372
|
+
ok: false,
|
|
373
|
+
detail: err.message.split("\n")[0],
|
|
374
|
+
fix: `Check permissions on ${singletonLockPath(cfg.repoPath)}.`,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
// v0.14.0 (T-54-2, GA-6) ------------------------------------------------
|
|
379
|
+
// Version-drift WARNs. Both are advisory (never fail the run): a stale
|
|
380
|
+
// binary or a swapped-out claude CLI is worth surfacing but is not a hard
|
|
381
|
+
// environment break. The npm lookup is cached + offline-safe (skips
|
|
382
|
+
// silently when the registry is unreachable and no cache exists).
|
|
383
|
+
export async function checkUpdateAvailable(deps = {}) {
|
|
384
|
+
let latest;
|
|
385
|
+
try {
|
|
386
|
+
latest = await npmLatestVersion(deps);
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
latest = null;
|
|
390
|
+
}
|
|
391
|
+
if (!latest) {
|
|
392
|
+
return {
|
|
393
|
+
name: "acc-runner up to date",
|
|
394
|
+
ok: true,
|
|
395
|
+
detail: "skipped (registry unreachable)",
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
if (compareSemverVer(PACKAGE_VERSION, latest) < 0) {
|
|
399
|
+
return {
|
|
400
|
+
name: "acc-runner up to date",
|
|
401
|
+
ok: false,
|
|
402
|
+
warn: true,
|
|
403
|
+
detail: `running v${PACKAGE_VERSION}, npm latest is v${latest}`,
|
|
404
|
+
fix: "Run `npm install -g @tokenfactory/acc-runner@latest` then reload launchd.",
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
return {
|
|
408
|
+
name: "acc-runner up to date",
|
|
409
|
+
ok: true,
|
|
410
|
+
detail: `v${PACKAGE_VERSION} (npm latest v${latest})`,
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
export async function checkClaudeDrift(deps = {}) {
|
|
414
|
+
const record = await readTaskEnv();
|
|
415
|
+
if (!record || !record.claudeVersion) {
|
|
416
|
+
return {
|
|
417
|
+
name: "claude CLI stable",
|
|
418
|
+
ok: true,
|
|
419
|
+
detail: "no successful task recorded yet (skipped)",
|
|
420
|
+
};
|
|
421
|
+
}
|
|
422
|
+
const current = await (deps.currentVersion ?? getClaudeVersion)();
|
|
423
|
+
if (!current) {
|
|
424
|
+
// claude missing/erroring is already covered by checkClaude — don't
|
|
425
|
+
// double-report it here.
|
|
426
|
+
return { name: "claude CLI stable", ok: true, detail: "current version unavailable (skipped)" };
|
|
427
|
+
}
|
|
428
|
+
if (current !== record.claudeVersion) {
|
|
429
|
+
return {
|
|
430
|
+
name: "claude CLI stable",
|
|
431
|
+
ok: false,
|
|
432
|
+
warn: true,
|
|
433
|
+
detail: `claude changed since last green task: was "${record.claudeVersion}", now "${current}"`,
|
|
434
|
+
fix: "Verify the new claude works (`acc-runner doctor` after a task), or pin the prior version if the update regressed.",
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
return {
|
|
438
|
+
name: "claude CLI stable",
|
|
439
|
+
ok: true,
|
|
440
|
+
detail: `unchanged since last green task (${current})`,
|
|
441
|
+
};
|
|
442
|
+
}
|
|
328
443
|
async function checkRegistration() {
|
|
329
444
|
const cfg = loadConfigOrNull();
|
|
330
445
|
if (!cfg) {
|
|
@@ -469,7 +584,11 @@ async function checkLaunchd() {
|
|
|
469
584
|
}
|
|
470
585
|
}
|
|
471
586
|
function format(outcome) {
|
|
472
|
-
const tag = outcome.ok
|
|
587
|
+
const tag = outcome.ok
|
|
588
|
+
? chalk.green("[OK ]")
|
|
589
|
+
: outcome.warn
|
|
590
|
+
? chalk.yellow("[WARN]")
|
|
591
|
+
: chalk.red("[FAIL]");
|
|
473
592
|
const fix = !outcome.ok && outcome.fix ? chalk.gray(`\n → ${outcome.fix}`) : "";
|
|
474
593
|
return `${tag} ${outcome.name.padEnd(28, " ")} ${chalk.gray(outcome.detail)}${fix}`;
|
|
475
594
|
}
|
|
@@ -488,6 +607,9 @@ export async function doctorCommand(options = {}) {
|
|
|
488
607
|
checkWorktreeDir,
|
|
489
608
|
() => checkOrphanWorktrees(cfg),
|
|
490
609
|
checkStaleLocks,
|
|
610
|
+
() => checkSingleton(cfg),
|
|
611
|
+
checkUpdateAvailable,
|
|
612
|
+
checkClaudeDrift,
|
|
491
613
|
checkCaffeinate,
|
|
492
614
|
checkLaunchd,
|
|
493
615
|
];
|
|
@@ -498,7 +620,8 @@ export async function doctorCommand(options = {}) {
|
|
|
498
620
|
let failed = 0;
|
|
499
621
|
for (const fn of checks) {
|
|
500
622
|
const outcome = await fn();
|
|
501
|
-
|
|
623
|
+
// v0.14.0 (T-54-2): WARN outcomes are advisory and never fail the run.
|
|
624
|
+
if (!outcome.ok && !outcome.warn)
|
|
502
625
|
failed++;
|
|
503
626
|
console.log(format(outcome));
|
|
504
627
|
}
|
package/dist/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,19 @@ export interface ClassifiedExit {
|
|
|
19
19
|
exitCode: number | null;
|
|
20
20
|
class: ClaudeExitClass;
|
|
21
21
|
detail: string;
|
|
22
|
+
/**
|
|
23
|
+
* v0.53 T-53-4: true ONLY when the class was inferred from the
|
|
24
|
+
* fast-exit/empty-output heuristic (the pd36 fingerprint), not from a
|
|
25
|
+
* definitive signal (exit 127, a matched dyld/OOM/usage/auth pattern).
|
|
26
|
+
*
|
|
27
|
+
* The distinction matters for quarantine policy: a definitive
|
|
28
|
+
* env_broken benches the runner immediately, but a lone heuristic hit
|
|
29
|
+
* is too weak to bench a healthy machine (v0.52 incident (d) — ONE
|
|
30
|
+
* 249ms empty exit quarantined a working box). The task-runner retries
|
|
31
|
+
* the spawn once and only treats TWO consecutive heuristic hits as a
|
|
32
|
+
* real env_broken. Absent/false on every non-heuristic classification.
|
|
33
|
+
*/
|
|
34
|
+
heuristic?: boolean;
|
|
22
35
|
}
|
|
23
36
|
/**
|
|
24
37
|
* Classify a non-zero claude exit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure-classifier.d.ts","sourceRoot":"","sources":["../src/failure-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"failure-classifier.d.ts","sourceRoot":"","sources":["../src/failure-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA0DD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA8DhB"}
|
|
@@ -117,6 +117,10 @@ export function classifyClaudeExit(exitCode, stderr, stdout, durationMs) {
|
|
|
117
117
|
exitCode,
|
|
118
118
|
class: "env_broken",
|
|
119
119
|
detail: `claude exited ${exitCode ?? "signal"} in ${durationMs}ms with empty output (env_broken heuristic)`,
|
|
120
|
+
// v0.53 T-53-4: flag the heuristic origin so the task-runner applies
|
|
121
|
+
// the "retry once, quarantine only on 2 consecutive" tune rather than
|
|
122
|
+
// benching the machine on a single instant-empty blip.
|
|
123
|
+
heuristic: true,
|
|
120
124
|
};
|
|
121
125
|
}
|
|
122
126
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure-classifier.js","sourceRoot":"","sources":["../src/failure-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"failure-classifier.js","sourceRoot":"","sources":["../src/failure-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA2BH,MAAM,oBAAoB,GAAa;IACrC,cAAc;IACd,gDAAgD;IAChD,sBAAsB;IACtB,iBAAiB;IACjB,sBAAsB;IACtB,aAAa;IACb,iBAAiB;IACjB,sBAAsB;IACtB,oCAAoC;CACrC,CAAC;AAEF,MAAM,qBAAqB,GAAa;IACtC,kBAAkB;IAClB,yBAAyB;IACzB,oBAAoB;IACpB,eAAe;IACf,0CAA0C;IAC1C,mBAAmB;IACnB,yCAAyC;IACzC,oBAAoB;IACpB,uBAAuB;IACvB,gBAAgB;CACjB,CAAC;AAEF,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,mBAAmB,GAAa;IACpC,8BAA8B;IAC9B,qBAAqB;IACrB,kBAAkB;IAClB,oCAAoC;IACpC,QAAQ;IACR,aAAa;IACb,qBAAqB;IACrB,SAAS;IACT,eAAe;IACf,oBAAoB;IACpB,4BAA4B;IAC5B,0BAA0B;IAC1B,WAAW;IACX,SAAS;IACT,6BAA6B;CAC9B,CAAC;AAEF,kEAAkE;AAClE,sEAAsE;AACtE,4EAA4E;AAC5E,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,SAAS,UAAU,CAAC,IAAY,EAAE,QAAkB;IAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAuB,EACvB,MAAc,EACd,MAAc,EACd,UAAmB;IAEnB,mEAAmE;IACnE,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QACrB,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,4CAA4C;SACrD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC;IAExC,IAAI,UAAU,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC/C,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,wCAAwC;SACjD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAChD,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,6DAA6D;SACtE,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,mDAAmD;SAC5D,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,wEAAwE;IACxE,qEAAqE;IACrE,qEAAqE;IACrE,IACE,UAAU,KAAK,SAAS;QACxB,UAAU,GAAG,YAAY;QACzB,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,0BAA0B,EACjD,CAAC;QACD,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,iBAAiB,QAAQ,IAAI,QAAQ,OAAO,UAAU,6CAA6C;YAC3G,qEAAqE;YACrE,sEAAsE;YACtE,uDAAuD;YACvD,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,iBAAiB,QAAQ,IAAI,QAAQ,uBAAuB;KACrE,CAAC;AACJ,CAAC"}
|
package/dist/git.d.ts
CHANGED
|
@@ -6,6 +6,21 @@ export interface GitRunner {
|
|
|
6
6
|
push(repoPath: string, branch: string): Promise<void>;
|
|
7
7
|
/** True when the working tree has no uncommitted changes. */
|
|
8
8
|
isClean(repoPath: string): Promise<boolean>;
|
|
9
|
+
/**
|
|
10
|
+
* v0.53 T-53-4: the EARLIEST commit on `branch` that is not reachable
|
|
11
|
+
* from `baseRef` — i.e. the first commit the task produced on its branch
|
|
12
|
+
* — as `{ sha, ts }` where `ts` is the committer date (ISO-8601), or
|
|
13
|
+
* null when the branch has no commits ahead of the base. Powers the
|
|
14
|
+
* `task.first_commit` SLO signal (when coding actually started).
|
|
15
|
+
*
|
|
16
|
+
* Optional on the interface so existing GitRunner test stubs that omit
|
|
17
|
+
* it keep compiling; the default implementation below provides it and
|
|
18
|
+
* the task-runner guards the call with `?.`.
|
|
19
|
+
*/
|
|
20
|
+
firstCommit?(repoPath: string, baseRef: string, branch: string): Promise<{
|
|
21
|
+
sha: string;
|
|
22
|
+
ts: string;
|
|
23
|
+
} | null>;
|
|
9
24
|
}
|
|
10
25
|
export type PushErrorKind = "transient" | "terminal";
|
|
11
26
|
/**
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAeA,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;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAeA,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;IAC5C;;;;;;;;;;OAUG;IACH,WAAW,CAAC,CACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAChD;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,SAkCjB,CAAC"}
|
package/dist/git.js
CHANGED
|
@@ -104,5 +104,24 @@ export const git = {
|
|
|
104
104
|
const { stdout } = await run(repoPath, ["status", "--porcelain"]);
|
|
105
105
|
return stdout.trim().length === 0;
|
|
106
106
|
},
|
|
107
|
+
async firstCommit(repoPath, baseRef, branch) {
|
|
108
|
+
// `--reverse` lists oldest→newest so the first line is the earliest
|
|
109
|
+
// commit on `branch` not reachable from `baseRef`. %H = full sha,
|
|
110
|
+
// %cI = committer date in strict ISO-8601. A tab separator survives
|
|
111
|
+
// both fields cleanly (commit dates never contain tabs).
|
|
112
|
+
const { stdout } = await run(repoPath, [
|
|
113
|
+
"log",
|
|
114
|
+
"--reverse",
|
|
115
|
+
"--format=%H%x09%cI",
|
|
116
|
+
`${baseRef}..${branch}`,
|
|
117
|
+
]);
|
|
118
|
+
const firstLine = stdout.split(/\r?\n/).find((l) => l.trim().length > 0);
|
|
119
|
+
if (!firstLine)
|
|
120
|
+
return null;
|
|
121
|
+
const [sha, ts] = firstLine.split("\t");
|
|
122
|
+
if (!sha)
|
|
123
|
+
return null;
|
|
124
|
+
return { sha: sha.trim(), ts: (ts ?? "").trim() };
|
|
125
|
+
},
|
|
107
126
|
};
|
|
108
127
|
//# sourceMappingURL=git.js.map
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,EAA2C,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,uEAAuE;AACvE,wEAAwE;AACxE,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AAEtE,MAAM,UAAU,WAAW,CAAC,IAA+B;IACzD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v0.53 T-53-4 — runner-side, budget-aware GitHub REST client.
|
|
3
|
+
*
|
|
4
|
+
* A port of the api/ side's `api/_lib/github-client.ts` (T-52-4) into the
|
|
5
|
+
* runner package. The runner CANNOT import api/ code (separate build, no
|
|
6
|
+
* shared module graph), so the pattern is reproduced here. The three
|
|
7
|
+
* behaviours match the server client 1:1:
|
|
8
|
+
*
|
|
9
|
+
* 1. Quota tracking — x-ratelimit-remaining / x-ratelimit-reset per
|
|
10
|
+
* resource (core, search, graphql, …) from every response, surfaced
|
|
11
|
+
* via getQuotaSnapshot() for `acc-runner doctor`.
|
|
12
|
+
*
|
|
13
|
+
* 2. Secondary-limit backoff — a 429, or a 403 carrying retry-after /
|
|
14
|
+
* x-ratelimit-remaining: 0, is a rate-limit response, not an answer.
|
|
15
|
+
* The client sleeps once (retry-after if given, else an exponential
|
|
16
|
+
* base, both jittered, capped at MAX_BACKOFF_MS) and retries once. A
|
|
17
|
+
* second rate-limit response — or a retry-after beyond the cap —
|
|
18
|
+
* surfaces as a typed RateLimitedError.
|
|
19
|
+
*
|
|
20
|
+
* 3. Per-task-execution soft budget — runTask arms a budget at the top
|
|
21
|
+
* of a task (startTaskGithubBudget) and disarms it in its finally
|
|
22
|
+
* (endTaskGithubBudget). Once the budget is spent, every further
|
|
23
|
+
* githubFetch throws GithubBudgetExceededError WITHOUT hitting the
|
|
24
|
+
* network. The caller treats this as a CLEAN, RETRYABLE infra failure
|
|
25
|
+
* — NOT a code failure: it never reaches classifyClaudeExit, so the
|
|
26
|
+
* runner is never quarantined for exhausting its GitHub budget.
|
|
27
|
+
*
|
|
28
|
+
* ── Coverage note (READ THIS) ──────────────────────────────────────────
|
|
29
|
+
* As of v0.53 the runner makes ALL of its GitHub calls through the `gh`
|
|
30
|
+
* CLI (see gh.ts, runtime/conflict-resolver.ts, runtime/rework.ts,
|
|
31
|
+
* runtime/reviewer.ts). Those `gh`/`gh api` invocations are SEPARATE
|
|
32
|
+
* processes with their own rate-limit handling and are out of scope for
|
|
33
|
+
* this client — they remain UNCOVERED by the budget/backoff here. This
|
|
34
|
+
* module is the sanctioned wrapper for any future *direct* REST call the
|
|
35
|
+
* runner adds (`fetch` against api.github.com); routing such calls through
|
|
36
|
+
* githubFetch is what keeps them budget- and rate-limit-aware.
|
|
37
|
+
*
|
|
38
|
+
* Reference: api/_lib/github-client.ts, planning/ACC_WORKFLOW_GAP_ANALYSIS.md §G13.
|
|
39
|
+
*/
|
|
40
|
+
/** Soft per-task-execution call budget. */
|
|
41
|
+
export declare const DEFAULT_TASK_GITHUB_BUDGET = 50;
|
|
42
|
+
/**
|
|
43
|
+
* Longest single backoff sleep. A secondary-limit retry-after can be 60s+;
|
|
44
|
+
* sleeping that long inside a task run wastes wall-clock the operator is
|
|
45
|
+
* paying for, so anything above the cap skips the retry and throws
|
|
46
|
+
* RateLimitedError instead.
|
|
47
|
+
*/
|
|
48
|
+
export declare const MAX_BACKOFF_MS = 15000;
|
|
49
|
+
/** Base for the exponential backoff when GitHub sends no retry-after. */
|
|
50
|
+
export declare const BASE_BACKOFF_MS = 2000;
|
|
51
|
+
/**
|
|
52
|
+
* Typed rate-limit failure: GitHub said "back off" twice in a row (or
|
|
53
|
+
* asked for a longer wait than we can afford). A rate-limit storm is then
|
|
54
|
+
* diagnosable instead of looking like random github_http_403 noise. This
|
|
55
|
+
* is a RETRYABLE INFRA failure — see isRetryableGithubError.
|
|
56
|
+
*/
|
|
57
|
+
export declare class RateLimitedError extends Error {
|
|
58
|
+
readonly status: number;
|
|
59
|
+
readonly resource: string | null;
|
|
60
|
+
/** ISO timestamp the quota window resets at, when GitHub said. */
|
|
61
|
+
readonly reset_at: string | null;
|
|
62
|
+
readonly retry_after_s: number | null;
|
|
63
|
+
constructor(opts: {
|
|
64
|
+
status: number;
|
|
65
|
+
resource: string | null;
|
|
66
|
+
reset_at: string | null;
|
|
67
|
+
retry_after_s: number | null;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Soft-budget exhaustion. NOT a code failure: the task simply did as much
|
|
72
|
+
* direct GitHub work as one task execution is allowed. The caller should
|
|
73
|
+
* surface it as a clean, RETRYABLE infra failure and NEVER feed it to the
|
|
74
|
+
* claude-exit classifier (which would quarantine the runner).
|
|
75
|
+
*/
|
|
76
|
+
export declare class GithubBudgetExceededError extends Error {
|
|
77
|
+
readonly used: number;
|
|
78
|
+
readonly budget: number;
|
|
79
|
+
constructor(used: number, budget: number);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* v0.53 T-53-4: both client failure modes are retryable infra conditions,
|
|
83
|
+
* not task/code failures. The contract the runner relies on: an error for
|
|
84
|
+
* which this returns true must surface as `phase: "github"` / retryable and
|
|
85
|
+
* MUST NOT set `quarantine_cause` — i.e. it is classifier-neutral and never
|
|
86
|
+
* benches the runner.
|
|
87
|
+
*/
|
|
88
|
+
export declare function isRetryableGithubError(err: unknown): boolean;
|
|
89
|
+
interface ResourceQuota {
|
|
90
|
+
remaining: number | null;
|
|
91
|
+
/** ISO timestamp. */
|
|
92
|
+
reset_at: string | null;
|
|
93
|
+
}
|
|
94
|
+
export interface GithubQuotaSnapshot {
|
|
95
|
+
/** Lowest remaining across observed resources (the binding constraint). */
|
|
96
|
+
remaining: number | null;
|
|
97
|
+
/** Reset time of that lowest-remaining resource. */
|
|
98
|
+
reset_at: string | null;
|
|
99
|
+
/** Direct REST calls made since the last startTaskGithubBudget(). */
|
|
100
|
+
used_this_task: number;
|
|
101
|
+
/** Per-resource view (core, search, …) as reported by GitHub headers. */
|
|
102
|
+
resources: Record<string, ResourceQuota>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Begin a budgeted task execution: resets the per-task counter and arms the
|
|
106
|
+
* soft budget. runTask calls this at the top of a task; the explicit reset
|
|
107
|
+
* also re-baselines a long-lived watch process between tasks.
|
|
108
|
+
*/
|
|
109
|
+
export declare function startTaskGithubBudget(budget?: number): void;
|
|
110
|
+
/**
|
|
111
|
+
* End a budgeted task execution: disarms the soft budget so any direct REST
|
|
112
|
+
* call made OUTSIDE a task run (e.g. doctor) is unbudgeted. Idempotent.
|
|
113
|
+
*/
|
|
114
|
+
export declare function endTaskGithubBudget(): void;
|
|
115
|
+
export declare function getQuotaSnapshot(): GithubQuotaSnapshot;
|
|
116
|
+
/** Test seam: wipe quota/budget state between unit tests. */
|
|
117
|
+
export declare function resetGithubClientStateForTests(): void;
|
|
118
|
+
/** Injection seams for unit tests; production callers never pass this. */
|
|
119
|
+
export interface GithubFetchDeps {
|
|
120
|
+
fetchImpl?: typeof fetch;
|
|
121
|
+
sleep?: (ms: number) => Promise<void>;
|
|
122
|
+
/** Returns [0, 1); defaults to Math.random. Drives backoff jitter. */
|
|
123
|
+
random?: () => number;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Authenticated GitHub REST fetch. The caller supplies whatever token is
|
|
127
|
+
* appropriate (the runner uses the operator's own gh/git credentials for
|
|
128
|
+
* CLI calls; a direct REST consumer would pass a token it already holds).
|
|
129
|
+
* An empty token sends an anonymous request rather than `Bearer <empty>`.
|
|
130
|
+
*/
|
|
131
|
+
export declare function githubFetch(url: string, token: string, init?: RequestInit, deps?: GithubFetchDeps): Promise<Response>;
|
|
132
|
+
export {};
|
|
133
|
+
//# sourceMappingURL=github-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-client.d.ts","sourceRoot":"","sources":["../src/github-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAS,CAAC;AAErC,yEAAyE;AACzE,eAAO,MAAM,eAAe,OAAQ,CAAC;AAErC;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;gBAE1B,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B;CAYF;AAED;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAMzC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC1C;AAOD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,GAAE,MAAmC,GAAG,IAAI,CAGvF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,gBAAgB,IAAI,mBAAmB,CAkBtD;AAED,6DAA6D;AAC7D,wBAAgB,8BAA8B,IAAI,IAAI,CAIrD;AA6CD,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAMD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,WAAgB,EACtB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAwCnB"}
|