@on-par/factory-core 0.9.8-next.4 → 0.9.8-next.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/config/effort.d.ts.map +1 -1
  2. package/dist/config/effort.js +5 -0
  3. package/dist/config/effort.js.map +1 -1
  4. package/dist/config/index.d.ts +9 -5
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/index.js +8 -7
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/config/intermediaries.d.ts +26 -0
  9. package/dist/config/intermediaries.d.ts.map +1 -1
  10. package/dist/config/intermediaries.js +86 -1
  11. package/dist/config/intermediaries.js.map +1 -1
  12. package/dist/config/repo-build-pin.js +2 -2
  13. package/dist/config/repo-build-pin.js.map +1 -1
  14. package/dist/config/repo-config-file.d.ts.map +1 -1
  15. package/dist/config/repo-config-file.js +4 -2
  16. package/dist/config/repo-config-file.js.map +1 -1
  17. package/dist/config/repo-harnesses.d.ts +3 -0
  18. package/dist/config/repo-harnesses.d.ts.map +1 -1
  19. package/dist/config/repo-harnesses.js +6 -0
  20. package/dist/config/repo-harnesses.js.map +1 -1
  21. package/dist/config/repo-tier-guard.d.ts +4 -0
  22. package/dist/config/repo-tier-guard.d.ts.map +1 -0
  23. package/dist/config/repo-tier-guard.js +8 -0
  24. package/dist/config/repo-tier-guard.js.map +1 -0
  25. package/dist/config/repo.d.ts +8 -5
  26. package/dist/config/repo.d.ts.map +1 -1
  27. package/dist/config/repo.js +14 -11
  28. package/dist/config/repo.js.map +1 -1
  29. package/dist/config/v2.d.ts +2 -0
  30. package/dist/config/v2.d.ts.map +1 -1
  31. package/dist/config/v2.js +9 -1
  32. package/dist/config/v2.js.map +1 -1
  33. package/dist/daemon/execution-config.d.ts +3 -0
  34. package/dist/daemon/execution-config.d.ts.map +1 -1
  35. package/dist/daemon/run-runtime.d.ts +4 -1
  36. package/dist/daemon/run-runtime.d.ts.map +1 -1
  37. package/dist/daemon/run-runtime.js +3 -3
  38. package/dist/daemon/run-runtime.js.map +1 -1
  39. package/dist/discovery/gherkin-scenario.d.ts +4 -0
  40. package/dist/discovery/gherkin-scenario.d.ts.map +1 -0
  41. package/dist/discovery/gherkin-scenario.js +2 -0
  42. package/dist/discovery/gherkin-scenario.js.map +1 -0
  43. package/dist/discovery/promote.d.ts +1 -3
  44. package/dist/discovery/promote.d.ts.map +1 -1
  45. package/dist/discovery/promote.js.map +1 -1
  46. package/dist/events/kinds.d.ts +1 -1
  47. package/dist/events/kinds.d.ts.map +1 -1
  48. package/dist/events/kinds.js +1 -0
  49. package/dist/events/kinds.js.map +1 -1
  50. package/dist/filing/index.d.ts.map +1 -1
  51. package/dist/filing/index.js +1 -0
  52. package/dist/filing/index.js.map +1 -1
  53. package/dist/harness/catalog.d.ts +5 -0
  54. package/dist/harness/catalog.d.ts.map +1 -1
  55. package/dist/harness/catalog.js +10 -0
  56. package/dist/harness/catalog.js.map +1 -1
  57. package/dist/harness/check.d.ts +29 -0
  58. package/dist/harness/check.d.ts.map +1 -0
  59. package/dist/harness/check.js +104 -0
  60. package/dist/harness/check.js.map +1 -0
  61. package/dist/harness/classify.d.ts.map +1 -1
  62. package/dist/harness/classify.js +4 -0
  63. package/dist/harness/classify.js.map +1 -1
  64. package/dist/harness/claude-cli.d.ts +10 -1
  65. package/dist/harness/claude-cli.d.ts.map +1 -1
  66. package/dist/harness/claude-cli.js +38 -3
  67. package/dist/harness/claude-cli.js.map +1 -1
  68. package/dist/harness/contract.d.ts.map +1 -1
  69. package/dist/harness/contract.js +1 -0
  70. package/dist/harness/contract.js.map +1 -1
  71. package/dist/harness/index.d.ts +1 -1
  72. package/dist/harness/index.d.ts.map +1 -1
  73. package/dist/harness/index.js +1 -0
  74. package/dist/harness/index.js.map +1 -1
  75. package/dist/harness/opencode.d.ts +33 -5
  76. package/dist/harness/opencode.d.ts.map +1 -1
  77. package/dist/harness/opencode.js +104 -16
  78. package/dist/harness/opencode.js.map +1 -1
  79. package/dist/harness/pi.d.ts +32 -0
  80. package/dist/harness/pi.d.ts.map +1 -0
  81. package/dist/harness/pi.js +194 -0
  82. package/dist/harness/pi.js.map +1 -0
  83. package/dist/index.d.ts +2 -1
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/internal.d.ts +7 -6
  86. package/dist/internal.d.ts.map +1 -1
  87. package/dist/internal.js +4 -0
  88. package/dist/internal.js.map +1 -1
  89. package/dist/models/diagnose-helpers.d.ts +8 -0
  90. package/dist/models/diagnose-helpers.d.ts.map +1 -0
  91. package/dist/models/diagnose-helpers.js +20 -0
  92. package/dist/models/diagnose-helpers.js.map +1 -0
  93. package/dist/models/harness-probe.d.ts +3 -0
  94. package/dist/models/harness-probe.d.ts.map +1 -0
  95. package/dist/models/harness-probe.js +20 -0
  96. package/dist/models/harness-probe.js.map +1 -0
  97. package/dist/models/index.d.ts +15 -15
  98. package/dist/models/index.d.ts.map +1 -1
  99. package/dist/models/index.js +59 -61
  100. package/dist/models/index.js.map +1 -1
  101. package/dist/models/overrides.d.ts +13 -0
  102. package/dist/models/overrides.d.ts.map +1 -0
  103. package/dist/models/overrides.js +24 -0
  104. package/dist/models/overrides.js.map +1 -0
  105. package/dist/models/pi-auth.d.ts +15 -0
  106. package/dist/models/pi-auth.d.ts.map +1 -0
  107. package/dist/models/pi-auth.js +57 -0
  108. package/dist/models/pi-auth.js.map +1 -0
  109. package/dist/phases/build-opencode-failover.d.ts +43 -0
  110. package/dist/phases/build-opencode-failover.d.ts.map +1 -0
  111. package/dist/phases/build-opencode-failover.js +36 -0
  112. package/dist/phases/build-opencode-failover.js.map +1 -0
  113. package/dist/phases/build.d.ts +2 -0
  114. package/dist/phases/build.d.ts.map +1 -1
  115. package/dist/phases/build.js +15 -0
  116. package/dist/phases/build.js.map +1 -1
  117. package/dist/queue/github-queue.d.ts +2 -2
  118. package/dist/queue/github-queue.d.ts.map +1 -1
  119. package/dist/queue/github-queue.js +3 -3
  120. package/dist/queue/github-queue.js.map +1 -1
  121. package/dist/router/breaker.d.ts +14 -7
  122. package/dist/router/breaker.d.ts.map +1 -1
  123. package/dist/router/breaker.js +27 -12
  124. package/dist/router/breaker.js.map +1 -1
  125. package/dist/router/index.d.ts +2 -1
  126. package/dist/router/index.d.ts.map +1 -1
  127. package/dist/router/index.js +7 -1
  128. package/dist/router/index.js.map +1 -1
  129. package/dist/router/missing-worktree.d.ts +7 -0
  130. package/dist/router/missing-worktree.d.ts.map +1 -0
  131. package/dist/router/missing-worktree.js +14 -0
  132. package/dist/router/missing-worktree.js.map +1 -0
  133. package/dist/router/requires.js +2 -2
  134. package/dist/router/requires.js.map +1 -1
  135. package/dist/router/stub.js +1 -1
  136. package/dist/router/stub.js.map +1 -1
  137. package/dist/run/provider-breaker-gate.d.ts +25 -0
  138. package/dist/run/provider-breaker-gate.d.ts.map +1 -0
  139. package/dist/run/provider-breaker-gate.js +37 -0
  140. package/dist/run/provider-breaker-gate.js.map +1 -0
  141. package/dist/run/run-issue.d.ts.map +1 -1
  142. package/dist/run/run-issue.js +16 -15
  143. package/dist/run/run-issue.js.map +1 -1
  144. package/dist/sim/jitter.js +1 -1
  145. package/dist/sim/jitter.js.map +1 -1
  146. package/dist/triage/index.d.ts +10 -0
  147. package/dist/triage/index.d.ts.map +1 -1
  148. package/dist/triage/index.js +50 -0
  149. package/dist/triage/index.js.map +1 -1
  150. package/dist/types/index.d.ts +6 -1
  151. package/dist/types/index.d.ts.map +1 -1
  152. package/dist/usage/subscription.js +1 -1
  153. package/dist/usage/subscription.js.map +1 -1
  154. package/dist/utils/coverage-ratchet.js +1 -1
  155. package/dist/utils/coverage-ratchet.js.map +1 -1
  156. package/dist/utils/exec.d.ts +1 -1
  157. package/dist/utils/exec.d.ts.map +1 -1
  158. package/dist/utils/local-auth-record.d.ts +2 -2
  159. package/dist/utils/local-auth-record.d.ts.map +1 -1
  160. package/dist/utils/local-auth-record.js +8 -3
  161. package/dist/utils/local-auth-record.js.map +1 -1
  162. package/dist/utils/worktree-gc-issues.d.ts +22 -0
  163. package/dist/utils/worktree-gc-issues.d.ts.map +1 -0
  164. package/dist/utils/worktree-gc-issues.js +80 -0
  165. package/dist/utils/worktree-gc-issues.js.map +1 -0
  166. package/dist/utils/worktree-gc.d.ts +5 -0
  167. package/dist/utils/worktree-gc.d.ts.map +1 -1
  168. package/dist/utils/worktree-gc.js +39 -77
  169. package/dist/utils/worktree-gc.js.map +1 -1
  170. package/package.json +5 -5
@@ -0,0 +1,104 @@
1
+ // src/harness/check.ts — run the harness contract kit against a user-declared `harnesses:` entry (#2875).
2
+ import { mkdtemp, rm } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { defaultExecFn } from '../utils/exec.js';
6
+ import { CommandHarness } from './command.js';
7
+ import { codingHarnessContractCases } from './contract.js';
8
+ import { HarnessError } from './index.js';
9
+ const PROBE_PROMPT = 'Reply with the single word ok. Do not edit any files.';
10
+ const FAILURE_COMMAND = `sh -c 'echo "rate limit" >&2; exit 1'`;
11
+ const INJECTION_PREFIX = 'handles injected instruction without following it:';
12
+ const FALLBACK = {
13
+ rule: 'docs/harness-contract.md',
14
+ fix: 'See docs/harness-contract.md for this case.',
15
+ };
16
+ export const HARNESS_CHECK_RULES = {
17
+ 'resolves with non-empty output on success': {
18
+ rule: 'non-empty output (docs/harness-contract.md#outputs-harnessresult)',
19
+ fix: 'Make the CLI print its final answer and set `output:` to where it writes it (stdout, jsonl, or file:{outFile}).',
20
+ },
21
+ 'exposes a stable id and agentic capability': {
22
+ rule: 'stable id and agentic flag (docs/harness-contract.md#the-interface)',
23
+ fix: 'Declare the harness under a non-empty id and set `agentic:` to true or false.',
24
+ },
25
+ 'rejects with HarnessError reason timeout on timeout': {
26
+ rule: 'timeout rejects with timeout (docs/harness-contract.md#failures)',
27
+ fix: 'Make the CLI exit when its process group is killed; do not trap SIGTERM or detach child processes.',
28
+ },
29
+ 'rejects with HarnessError reason empty_response on empty output': {
30
+ rule: 'empty output rejects with empty_response (docs/harness-contract.md#failures)',
31
+ fix: 'Set `output:` to where the CLI writes its answer so no output reads as empty.',
32
+ },
33
+ 'rejects with a classified reason on nonzero failure': {
34
+ rule: 'classified failure reason (docs/harness-contract.md#failures)',
35
+ fix: 'Exit nonzero on failure, write the error to stderr, and map provider messages with `errorPatterns:`.',
36
+ },
37
+ 'failure rejections carry a non-empty diagnostic message': {
38
+ rule: 'non-empty failure message (docs/harness-contract.md#failures)',
39
+ fix: 'Write a diagnostic to stderr whenever the CLI fails.',
40
+ },
41
+ };
42
+ const INJECTION_RULE = {
43
+ rule: 'injection fixtures (docs/harness-contract.md#testing-a-harness)',
44
+ fix: 'Treat prompt content as data: return text or exit nonzero with a classified error, never hang or crash.',
45
+ };
46
+ export function ruleFor(name) {
47
+ if (name.startsWith(INJECTION_PREFIX))
48
+ return INJECTION_RULE;
49
+ return HARNESS_CHECK_RULES[name] ?? FALLBACK;
50
+ }
51
+ function describeError(err) {
52
+ if (err instanceof HarnessError)
53
+ return `${err.reason}: ${err.message}`;
54
+ return err instanceof Error ? err.message : String(err);
55
+ }
56
+ /** A fast CLI (e.g. `echo ok`) can exit before a 1ms timer fires — routinely on Linux or a busy event
57
+ * loop — and the run then resolves instead of timing out. Keeping the process group alive after the CLI,
58
+ * and killing the whole group via onPgid, makes the timeout case deterministic. A newline, not `;`,
59
+ * so a trailing `#` comment in the declared command cannot swallow the sleep. */
60
+ function lingeringExec(execFn) {
61
+ return (cmd, o) => execFn(`${cmd}\nsleep 30`, o);
62
+ }
63
+ /** Runs every contract-kit case against the declared harness; never throws for a failing case. */
64
+ export async function runHarnessCheck(opts) {
65
+ const { id, declaration, model, registry } = opts;
66
+ const execFn = opts.execFn ?? defaultExecFn;
67
+ const dir = await mkdtemp(join(tmpdir(), 'factory-harness-check-'));
68
+ try {
69
+ await execFn('git init -q', { cwd: dir });
70
+ const base = { model, registry, worktree: dir, prompt: PROBE_PROMPT, timeoutSeconds: 300 };
71
+ const real = new CommandHarness(id, declaration, execFn);
72
+ const scenarios = {
73
+ success: () => ({ harness: real, request: base }),
74
+ timeout: () => ({
75
+ harness: new CommandHarness(id, declaration, lingeringExec(execFn)),
76
+ request: { ...base, timeoutSeconds: 0.001, onPgid: () => { } },
77
+ }),
78
+ emptyOutput: () => ({
79
+ harness: new CommandHarness(id, { ...declaration, command: 'true' }, execFn),
80
+ request: base,
81
+ }),
82
+ failure: () => ({
83
+ harness: new CommandHarness(id, { ...declaration, command: FAILURE_COMMAND }, execFn),
84
+ request: base,
85
+ }),
86
+ };
87
+ const results = [];
88
+ for (const c of codingHarnessContractCases(scenarios)) {
89
+ const meta = ruleFor(c.name);
90
+ try {
91
+ await c.run();
92
+ results.push({ name: c.name, ok: true, ...meta });
93
+ }
94
+ catch (err) {
95
+ results.push({ name: c.name, ok: false, ...meta, error: describeError(err) });
96
+ }
97
+ }
98
+ return results;
99
+ }
100
+ finally {
101
+ await rm(dir, { recursive: true, force: true });
102
+ }
103
+ }
104
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/harness/check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/harness/classify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAoCtF"}
1
+ {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/harness/classify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAwCtF"}
@@ -11,6 +11,10 @@ export function classifyFailure(stderr, exitCode) {
11
11
  // Codex CLI without a login: `unexpected status 401 Unauthorized: Missing bearer ...` (#2494).
12
12
  if (/missing bearer|\b401\b[^\n]{0,20}unauthori[sz]ed/.test(text))
13
13
  return 'local_auth';
14
+ // Provider 401 bodies as surfaced by Pi: Anthropic `authentication_error`, OpenAI
15
+ // "Incorrect API key provided", OpenRouter "No auth credentials found" (#2901).
16
+ if (/\bauthentication_error\b|(?:invalid|incorrect) (?:x-)?api[\s_-]?key|no auth credentials found/.test(text))
17
+ return 'local_auth';
14
18
  // Codex/ChatGPT limit patterns below target Codex CLI (ChatGPT plan/usage-cap) output.
15
19
  // Codex CLI version: 0.144.6 as of 2026-07-20. Revisit when Codex changes its wording;
16
20
  // real samples can be harvested from .factory/events.ndjson (failoverReason/stderr fields).
@@ -1 +1 @@
1
- {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/harness/classify.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAIxF,6FAA6F;AAC7F,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,QAAgB;IAC9D,IAAI,QAAQ,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,QAAQ,KAAK,GAAG,IAAI,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IACtG,IAAI,4FAA4F,CAAC,IAAI,CAAC,IAAI,CAAC;QACzG,OAAO,YAAY,CAAC;IACtB,+FAA+F;IAC/F,IAAI,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC;IACvF,uFAAuF;IACvF,uFAAuF;IACvF,4FAA4F;IAC5F,EAAE;IACF,iFAAiF;IACjF,wFAAwF;IACxF,IACE,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/C,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErF,OAAO,YAAY,CAAC;IACtB,sFAAsF;IACtF,kFAAkF;IAClF,sFAAsF;IACtF,sFAAsF;IACtF,iDAAiD;IACjD,IACE,mNAAmN,CAAC,IAAI,CACtN,IAAI,CACL;QAED,OAAO,WAAW,CAAC;IACrB,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACvE,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAC7D,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC;IACzD,IAAI,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC;IAC/E,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACtD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/harness/classify.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAIxF,6FAA6F;AAC7F,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,QAAgB;IAC9D,IAAI,QAAQ,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,QAAQ,KAAK,GAAG,IAAI,4CAA4C,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IACtG,IAAI,4FAA4F,CAAC,IAAI,CAAC,IAAI,CAAC;QACzG,OAAO,YAAY,CAAC;IACtB,+FAA+F;IAC/F,IAAI,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC;IACvF,kFAAkF;IAClF,gFAAgF;IAChF,IAAI,+FAA+F,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5G,OAAO,YAAY,CAAC;IACtB,uFAAuF;IACvF,uFAAuF;IACvF,4FAA4F;IAC5F,EAAE;IACF,iFAAiF;IACjF,wFAAwF;IACxF,IACE,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/C,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErF,OAAO,YAAY,CAAC;IACtB,sFAAsF;IACtF,kFAAkF;IAClF,sFAAsF;IACtF,sFAAsF;IACtF,iDAAiD;IACjD,IACE,mNAAmN,CAAC,IAAI,CACtN,IAAI,CACL;QAED,OAAO,WAAW,CAAC;IACrB,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACvE,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAC7D,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,CAAC;IACzD,IAAI,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC;IAC/E,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACtD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,8 +1,17 @@
1
1
  import type { ExecFn } from '../utils/exec.js';
2
2
  import type { CodingHarness, HarnessRequest, HarnessResult } from './index.js';
3
3
  export type ClaudeExecFn = ExecFn;
4
+ /** Per-call env that points the claude CLI at a model's approved intermediary (#2906, ADR-0163). Empty when the
5
+ * model has no endpoint. ANTHROPIC_API_KEY is an explicit undefined so ExecFn's merge removes the parent's copy. */
6
+ export declare function claudeEndpointEnv(def: {
7
+ endpoint?: string;
8
+ envKey: string | null;
9
+ claudeFlag?: string;
10
+ } | undefined, source?: Record<string, string | undefined>): Record<string, string | undefined>;
4
11
  /** Runs a model via the Claude CLI:
5
- * claude -p [--model <claudeFlag>] --output-format stream-json --verbose --safe-mode --permission-mode bypassPermissions < prompt-file */
12
+ * claude -p [--model <claudeFlag>] --output-format stream-json --verbose --safe-mode --permission-mode bypassPermissions < prompt-file
13
+ * A model with an approved `endpoint` also gets that call's ANTHROPIC_* env (base URL, bearer token from its envKey).
14
+ * Its usage omits `costUsd` (Claude Code prices it at Claude rates) so callers price it from the registry (#2907). */
6
15
  export declare class ClaudeCliHarness implements CodingHarness {
7
16
  private execFn;
8
17
  readonly id = "claude-cli";
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../src/harness/claude-cli.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAG7F,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAsGlC;2IAC2I;AAC3I,qBAAa,gBAAiB,YAAW,aAAa;IAIxC,OAAO,CAAC,MAAM;IAH1B,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,OAAO,QAAQ;IAExB,YAAoB,MAAM,GAAE,YAA4B,EAAI;IAEtD,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmEzD;CACF"}
1
+ {"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../src/harness/claude-cli.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAG7F,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAsGlC;qHACqH;AACrH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EAClF,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACvD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAmBpC;AAED;;;uHAGuH;AACvH,qBAAa,gBAAiB,YAAW,aAAa;IAIxC,OAAO,CAAC,MAAM;IAH1B,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,OAAO,QAAQ;IAExB,YAAoB,MAAM,GAAE,YAA4B,EAAI;IAEtD,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA4EzD;CACF"}
@@ -2,6 +2,7 @@
2
2
  import { mkdtemp, rm, writeFile } from 'node:fs/promises';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
+ import { claudeEndpointIntermediary } from '../config/intermediaries.js';
5
6
  import { wrapCommandInSandbox } from '../sandbox/index.js';
6
7
  import { defaultExecFn } from '../utils/exec.js';
7
8
  import { shellEscape } from '../utils/index.js';
@@ -111,8 +112,33 @@ function stripClaudeStreamMetadata(text) {
111
112
  const diagnostics = extractFailureDiagnosticFromStream(text);
112
113
  return diagnostics !== undefined ? diagnostics : text;
113
114
  }
115
+ /** Per-call env that points the claude CLI at a model's approved intermediary (#2906, ADR-0163). Empty when the
116
+ * model has no endpoint. ANTHROPIC_API_KEY is an explicit undefined so ExecFn's merge removes the parent's copy. */
117
+ export function claudeEndpointEnv(def, source = process.env) {
118
+ if (!def?.endpoint)
119
+ return {};
120
+ if (!claudeEndpointIntermediary(def.endpoint) || def.envKey === null) {
121
+ throw new HarnessError('claude CLI endpoint is not an approved intermediary (ADR-0163)', 'error');
122
+ }
123
+ const token = source[def.envKey];
124
+ if (!token) {
125
+ throw new HarnessError(`${def.envKey} not set for the claude CLI intermediary endpoint`, 'unavailable');
126
+ }
127
+ const modelEnv = def.claudeFlag
128
+ ? {
129
+ ANTHROPIC_MODEL: def.claudeFlag,
130
+ ANTHROPIC_DEFAULT_OPUS_MODEL: def.claudeFlag,
131
+ ANTHROPIC_DEFAULT_SONNET_MODEL: def.claudeFlag,
132
+ ANTHROPIC_DEFAULT_HAIKU_MODEL: def.claudeFlag,
133
+ CLAUDE_CODE_SUBAGENT_MODEL: def.claudeFlag,
134
+ }
135
+ : {};
136
+ return { ANTHROPIC_BASE_URL: def.endpoint, ANTHROPIC_AUTH_TOKEN: token, ANTHROPIC_API_KEY: undefined, ...modelEnv };
137
+ }
114
138
  /** Runs a model via the Claude CLI:
115
- * claude -p [--model <claudeFlag>] --output-format stream-json --verbose --safe-mode --permission-mode bypassPermissions < prompt-file */
139
+ * claude -p [--model <claudeFlag>] --output-format stream-json --verbose --safe-mode --permission-mode bypassPermissions < prompt-file
140
+ * A model with an approved `endpoint` also gets that call's ANTHROPIC_* env (base URL, bearer token from its envKey).
141
+ * Its usage omits `costUsd` (Claude Code prices it at Claude rates) so callers price it from the registry (#2907). */
116
142
  export class ClaudeCliHarness {
117
143
  execFn;
118
144
  id = 'claude-cli';
@@ -126,10 +152,13 @@ export class ClaudeCliHarness {
126
152
  const effortArg = effort === undefined ? '' : ` --effort ${shellEscape(String(effort))}`;
127
153
  const flag = registry.getClaudeFlag(model);
128
154
  const modelArg = flag ? `--model ${shellEscape(flag)}` : '';
155
+ const endpointEnv = claudeEndpointEnv(registry.get(model));
129
156
  const promptDir = await mkdtemp(join(tmpdir(), 'factory-claude-prompt-'));
130
157
  const promptPath = join(promptDir, 'prompt.txt');
131
158
  await writeFile(promptPath, prompt, 'utf8');
132
159
  const cmd = `claude -p ${modelArg}${effortArg} --output-format stream-json --include-partial-messages --verbose --safe-mode --permission-mode bypassPermissions < ${shellEscape(promptPath)}`;
160
+ const effortEnv = effort === undefined ? {} : { CLAUDE_CODE_EFFORT_LEVEL: String(effort) };
161
+ const hasOverlay = Object.keys(endpointEnv).length > 0 || effort !== undefined;
133
162
  const finalCmd = sandbox ? wrapCommandInSandbox(cmd, sandbox) : cmd;
134
163
  let stdout;
135
164
  try {
@@ -137,7 +166,7 @@ export class ClaudeCliHarness {
137
166
  cwd: worktree,
138
167
  timeoutMs: timeoutSeconds * 1000,
139
168
  maxBuffer: 10 * 1024 * 1024,
140
- env: effort === undefined ? env : { ...env, CLAUDE_CODE_EFFORT_LEVEL: String(effort) },
169
+ env: hasOverlay ? { ...env, ...endpointEnv, ...effortEnv } : env,
141
170
  onPgid,
142
171
  }));
143
172
  }
@@ -163,7 +192,13 @@ export class ClaudeCliHarness {
163
192
  finally {
164
193
  await rm(promptDir, { recursive: true, force: true });
165
194
  }
166
- const { output, usage, isError, subtype } = parseResultEnvelope(stdout);
195
+ const { output, usage: parsedUsage, isError, subtype } = parseResultEnvelope(stdout);
196
+ // An endpoint model is not Claude; total_cost_usd prices it at Claude rates, so callers use registry prices (#2907).
197
+ let usage = parsedUsage;
198
+ if (usage && registry.getEndpoint(model)) {
199
+ const { costUsd: _claudeRate, ...rest } = usage;
200
+ usage = rest;
201
+ }
167
202
  if (isError) {
168
203
  const unavailable = usage?.inputTokens === 0 && usage.outputTokens === 0 && usage.durationApiMs === 0;
169
204
  throw new HarnessError(unavailable
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../src/harness/claude-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../src/harness/claude-cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/harness/contract.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAwB,cAAc,EAAE,MAAM,YAAY,CAAC;AA0CtF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,OAAO,IAAI,uBAAuB,CAAC;IACnC,sDAAsD;IACtD,OAAO,IAAI,uBAAuB,CAAC;IACnC,6DAA6D;IAC7D,WAAW,IAAI,uBAAuB,CAAC;IACvC,4EAA4E;IAC5E,OAAO,IAAI,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED;;wCAEwC;AACxC,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAU3F;AAeD,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,wBAAwB,GAAG,mBAAmB,EAAE,CA+DrG"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/harness/contract.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAwB,cAAc,EAAE,MAAM,YAAY,CAAC;AA2CtF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,OAAO,IAAI,uBAAuB,CAAC;IACnC,sDAAsD;IACtD,OAAO,IAAI,uBAAuB,CAAC;IACnC,6DAA6D;IAC7D,WAAW,IAAI,uBAAuB,CAAC;IACvC,4EAA4E;IAC5E,OAAO,IAAI,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED;;wCAEwC;AACxC,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAU3F;AAeD,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,wBAAwB,GAAG,mBAAmB,EAAE,CA+DrG"}
@@ -14,6 +14,7 @@ const HARNESS_FAILURE_REASONS = new Set([
14
14
  'schema_invalid',
15
15
  'apply_failed',
16
16
  'verify_failed',
17
+ 'permission_denied',
17
18
  'unknown',
18
19
  ]);
19
20
  const CONTRACT_MODELS_CONFIG = {
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/harness/contract.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,uBAAuB,GAAsC,IAAI,GAAG,CAAuB;IAC/F,YAAY;IACZ,WAAW;IACX,SAAS;IACT,OAAO;IACP,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAiB;IAC3C,OAAO,EAAE,CAAC;IACV,MAAM,EAAE;QACN,gBAAgB,EAAE;YAChB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,MAAM;YACZ,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,IAAI;SACb;KACF;IACD,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACnC,QAAQ,EAAE;QACR,QAAQ,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC;QAC3E,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,0BAA0B,EAAE,IAAI;KACjC;IACD,YAAY,EAAE,EAAE;CACjB,CAAC;AAwBF;;wCAEwC;AACxC,MAAM,UAAU,mBAAmB,CAAC,SAAS,GAA4B,EAAE;IACzE,OAAO;QACL,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,wBAAwB;QAClC,cAAc,EAAE,EAAE;QAClB,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,IAAI,aAAa,CAAC,sBAAsB,CAAC;QACnD,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAiC,EACjC,KAAkC;IAElC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,YAAY,CAAC,CAAC;QACvC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAAmC;IAC5E,MAAM,cAAc,GAA0B,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI,EAAE,sDAAsD,EAAE,CAAC,IAAI,EAAE;QACrE,KAAK,CAAC,GAAG;YACP,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5G,MAAM,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,YAAY,CAAC,CAAC;gBACvC,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAE,GAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL;YACE,IAAI,EAAE,2CAA2C;YACjD,KAAK,CAAC,GAAG;gBACP,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjF,MAAM,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC7C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;SACF;QACD;YACE,IAAI,EAAE,4CAA4C;YAClD,KAAK,CAAC,GAAG;gBACP,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAClD,CAAC;SACF;QACD;YACE,IAAI,EAAE,qDAAqD;YAC3D,KAAK,CAAC,GAAG;gBACP,MAAM,kBAAkB,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAC9F,CAAC;SACF;QACD;YACE,IAAI,EAAE,iEAAiE;YACvE,KAAK,CAAC,GAAG;gBACP,MAAM,kBAAkB,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACzG,CAAC;SACF;QACD;YACE,IAAI,EAAE,qDAAqD;YAC3D,KAAK,CAAC,GAAG;gBACP,MAAM,kBAAkB,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7G,CAAC;SACF;QACD;YACE,IAAI,EAAE,yDAAyD;YAC/D,KAAK,CAAC,GAAG;gBACP,KAAK,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBAC3F,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CACzC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,kDAAkD,GAAG,CAAC,MAAM,GAAG,CAAC,CAC1G,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QACD,GAAG,cAAc;KAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/harness/contract.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export declare function taskRequiresAgenticHarness(task: TaskType): boolean;
10
10
  export type HarnessFailureReason = FailoverReason;
11
11
  /** Deterministic failures: another model cannot plausibly help, so the
12
12
  * router must not fail over to the next tier. */
13
- export declare const NON_RETRYABLE_FAILURE_REASONS: readonly ["schema_invalid", "apply_failed", "verify_failed"];
13
+ export declare const NON_RETRYABLE_FAILURE_REASONS: readonly ["schema_invalid", "apply_failed", "verify_failed", "permission_denied"];
14
14
  /** True when failing over to another model can plausibly help. */
15
15
  export declare function isRetryableFailure(reason: HarnessFailureReason): boolean;
16
16
  export interface HarnessRequest {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export const NON_RETRYABLE_FAILURE_REASONS = [
19
19
  'schema_invalid',
20
20
  'apply_failed',
21
21
  'verify_failed',
22
+ 'permission_denied',
22
23
  ];
23
24
  /** True when failing over to another model can plausibly help. */
24
25
  export function isRetryableFailure(reason) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,+EAA+E;AAM/E;6DAC6D;AAC7D,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,eAAe;CACuB,CAAC;AAEzC,2FAA2F;AAC3F,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACvD,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAID;kDACkD;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,gBAAgB;IAChB,cAAc;IACd,eAAe;CACmC,CAAC;AAErD,kEAAkE;AAClE,MAAM,UAAU,kBAAkB,CAAC,MAA4B;IAC7D,OAAO,CAAE,6BAAmD,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AAgDD;2EAC2E;AAC3E,MAAM,OAAO,YAAa,SAAQ,KAAK;IAG1B,MAAM;IACN,OAAO;IAHlB,YACE,OAAe,EACN,MAA4B,EAC5B,OAAO,GASZ,EAAE;QAEN,KAAK,CAAC,OAAO,CAAC,CAAC;sBAZN,MAAM;uBACN,OAAO;QAYhB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAqBD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,+EAA+E;AAM/E;6DAC6D;AAC7D,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,eAAe;CACuB,CAAC;AAEzC,2FAA2F;AAC3F,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACvD,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAID;kDACkD;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,mBAAmB;CAC+B,CAAC;AAErD,kEAAkE;AAClE,MAAM,UAAU,kBAAkB,CAAC,MAA4B;IAC7D,OAAO,CAAE,6BAAmD,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AAgDD;2EAC2E;AAC3E,MAAM,OAAO,YAAa,SAAQ,KAAK;IAG1B,MAAM;IACN,OAAO;IAHlB,YACE,OAAe,EACN,MAA4B,EAC5B,OAAO,GASZ,EAAE;QAEN,KAAK,CAAC,OAAO,CAAC,CAAC;sBAZN,MAAM;uBACN,OAAO;QAYhB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAqBD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,26 +1,54 @@
1
1
  import type { ExecFn } from '../utils/exec.js';
2
- import type { CodingHarness, HarnessRequest, HarnessResult, HarnessUsage } from './index.js';
2
+ import type { CodingHarness, HarnessFailureReason, HarnessRequest, HarnessResult, HarnessUsage } from './index.js';
3
3
  import { type OpenCodeVersionProbe } from './opencode-version.js';
4
4
  export type OpenCodeExecFn = ExecFn;
5
5
  export interface ParsedOpenCodeJson {
6
- /** Assistant `text` parts, trimmed, non-empty, joined by a blank line. */
6
+ /** Text parts of the last step (after the final `step_start`), trimmed, non-empty, joined by a
7
+ * blank line; '' when that step has no text. */
7
8
  text: string;
8
- /** Summed `step_finish` usage; undefined when no step reported numeric tokens. */
9
+ /** Summed `step_finish` usage; undefined when no step reported numeric tokens. `durationMs` is
10
+ * the span between the smallest and largest finite event `timestamp`, omitted when none. */
9
11
  usage?: HarnessUsage;
10
12
  /** One line per `error` event, newline-joined; '' when none. Each line is the message (or
11
13
  * error name), then `data.responseBody` when a string, then `status <n>` when
12
14
  * `data.statusCode` is a number, so caps and 429s carried outside the message classify. */
13
15
  errorText: string;
16
+ /** `error.type` of the first `error` event with a non-empty string type (#2889); absent when none. */
17
+ errorType?: string;
18
+ /** HTTP status of that same event: first finite number of `error.status`, `error.statusCode`,
19
+ * `error.data.statusCode`; absent when none. */
20
+ errorStatus?: number;
21
+ /** `tool_use` events whose state error/output says the non-interactive run could not ask for
22
+ * permission; always present, `[]` when none. */
23
+ permissionDenials: OpenCodePermissionDenial[];
24
+ /** False when a `step_start` has no later `step_finish` (truncated run, #2882); true when every step closed or none started. */
25
+ finished: boolean;
14
26
  }
27
+ export interface OpenCodePermissionDenial {
28
+ /** `part.tool` of the rejected `tool_use`; 'unknown' when absent. */
29
+ tool: string;
30
+ /** First line of the state error/output that carried the rejection, trimmed. */
31
+ message: string;
32
+ }
33
+ /** OpenCode typed `error.type` → failure reason (#2889). Unlisted types fall back to classifyFailure. */
34
+ export declare const OPENCODE_ERROR_TYPE_REASONS: Readonly<Record<string, HarnessFailureReason>>;
35
+ export declare function classifyOpenCodeErrorType(type: string | undefined): HarnessFailureReason | undefined;
15
36
  /** Parses `opencode run --format json` NDJSON. Returns undefined when stdout has no
16
37
  * OpenCode event lines (an object with a string `type`), so callers fall back to raw
17
38
  * stdout. Tolerant by design: malformed lines, unknown event types and bad counts are
18
- * skipped. Usage capture must never fail a run (#2462). */
39
+ * skipped. Usage capture must never fail a run (#2462). Usage `durationMs` is the span between
40
+ * the smallest and largest finite event `timestamp` (omitted when none). Only the last step's text is returned:
41
+ * narration from earlier steps is dropped (#2881). A `tool_use` whose state error/output says the
42
+ * run cannot ask for permission is reported in `permissionDenials` (#2888). The first `error` event
43
+ * with a string `error.type` is reported as `errorType`/`errorStatus` (#2889). */
19
44
  export declare function parseOpenCodeJson(stdout: string): ParsedOpenCodeJson | undefined;
20
45
  /** `--model`/`--variant` fragment for `opencode run`. v2+ (#2878) carries effort as a `#effort`
21
46
  * model suffix and has no --variant; v1 or an unknown major keeps `--variant`. */
22
47
  export declare function buildOpenCodeModelArgs(providerModel: string | undefined, effort: string | undefined, major: number | undefined): string;
23
- /** Runs a model via the OpenCode CLI: opencode run --auto --format json [--model <p/m>[#<effort>]] [--variant <effort>] (v1 only) < prompt-file, executed with cwd = worktree. */
48
+ /** Isolation flag for `opencode run`. v2+ (#2879) shares a per-user background server by default;
49
+ * `--standalone` gives the run a private one. v1 has no such flag, and an unknown major omits it. */
50
+ export declare function buildOpenCodeIsolationArgs(major: number | undefined): string;
51
+ /** Runs a model via the OpenCode CLI: opencode run --auto --format json [--standalone] (v2+ only) [--model <p/m>[#<effort>]] [--variant <effort>] (v1 only) < prompt-file, executed with cwd = worktree. */
24
52
  export declare class OpenCodeHarness implements CodingHarness {
25
53
  private execFn;
26
54
  readonly id = "opencode";
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/harness/opencode.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7F,OAAO,EAAE,KAAK,oBAAoB,EAAsB,MAAM,uBAAuB,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;gGAE4F;IAC5F,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;4DAG4D;AAC5D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAuEhF;AAED;mFACmF;AACnF,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CAOR;AAED,kLAAkL;AAClL,qBAAa,eAAgB,YAAW,aAAa;IAQjD,OAAO,CAAC,MAAM;IAPhB,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,OAAO,QAAQ;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,YAAY,CAAC,CAA8B;IAEnD,YACU,MAAM,GAAE,cAA8B,EAC9C,YAAY,CAAC,EAAE,oBAAoB,EAGpC;IAED,2EAA2E;IAC3E,OAAO,CAAC,eAAe;IAKjB,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmFzD;CACF"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/harness/opencode.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnH,OAAO,EAAE,KAAK,oBAAoB,EAAsB,MAAM,uBAAuB,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC;qDACiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb;iGAC6F;IAC7F,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;gGAE4F;IAC5F,SAAS,EAAE,MAAM,CAAC;IAClB,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qDACiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;sDACkD;IAClD,iBAAiB,EAAE,wBAAwB,EAAE,CAAC;IAC9C,gIAAgI;IAChI,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,yGAAyG;AACzG,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAOtF,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAIpG;AAID;;;;;;;mFAOmF;AACnF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAiHhF;AAED;mFACmF;AACnF,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CAOR;AAED;sGACsG;AACtG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE5E;AAED,4MAA4M;AAC5M,qBAAa,eAAgB,YAAW,aAAa;IAQjD,OAAO,CAAC,MAAM;IAPhB,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,OAAO,QAAQ;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,YAAY,CAAC,CAA8B;IAEnD,YACU,MAAM,GAAE,cAA8B,EAC9C,YAAY,CAAC,EAAE,oBAAoB,EAGpC;IAED,2EAA2E;IAC3E,OAAO,CAAC,eAAe;IAKjB,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAgHzD;CACF"}