@on-par/factory-core 0.9.8-next.3 → 0.9.8-next.31

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 (163) 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 +7 -6
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/config/intermediaries.d.ts +25 -0
  9. package/dist/config/intermediaries.d.ts.map +1 -0
  10. package/dist/config/intermediaries.js +40 -0
  11. package/dist/config/intermediaries.js.map +1 -0
  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-harnesses.d.ts +3 -0
  15. package/dist/config/repo-harnesses.d.ts.map +1 -1
  16. package/dist/config/repo-harnesses.js +6 -0
  17. package/dist/config/repo-harnesses.js.map +1 -1
  18. package/dist/config/repo-tier-guard.d.ts +4 -0
  19. package/dist/config/repo-tier-guard.d.ts.map +1 -0
  20. package/dist/config/repo-tier-guard.js +8 -0
  21. package/dist/config/repo-tier-guard.js.map +1 -0
  22. package/dist/config/repo.d.ts +8 -5
  23. package/dist/config/repo.d.ts.map +1 -1
  24. package/dist/config/repo.js +12 -10
  25. package/dist/config/repo.js.map +1 -1
  26. package/dist/config/v2.d.ts +2 -0
  27. package/dist/config/v2.d.ts.map +1 -1
  28. package/dist/config/v2.js +8 -0
  29. package/dist/config/v2.js.map +1 -1
  30. package/dist/daemon/execution-config.d.ts +3 -0
  31. package/dist/daemon/execution-config.d.ts.map +1 -1
  32. package/dist/daemon/run-runtime.d.ts +4 -1
  33. package/dist/daemon/run-runtime.d.ts.map +1 -1
  34. package/dist/daemon/run-runtime.js +3 -3
  35. package/dist/daemon/run-runtime.js.map +1 -1
  36. package/dist/discovery/gherkin-scenario.d.ts +4 -0
  37. package/dist/discovery/gherkin-scenario.d.ts.map +1 -0
  38. package/dist/discovery/gherkin-scenario.js +2 -0
  39. package/dist/discovery/gherkin-scenario.js.map +1 -0
  40. package/dist/discovery/promote.d.ts +1 -3
  41. package/dist/discovery/promote.d.ts.map +1 -1
  42. package/dist/discovery/promote.js.map +1 -1
  43. package/dist/events/kinds.d.ts +1 -1
  44. package/dist/events/kinds.d.ts.map +1 -1
  45. package/dist/events/kinds.js +1 -0
  46. package/dist/events/kinds.js.map +1 -1
  47. package/dist/filing/index.d.ts.map +1 -1
  48. package/dist/filing/index.js +1 -0
  49. package/dist/filing/index.js.map +1 -1
  50. package/dist/harness/catalog.d.ts +5 -0
  51. package/dist/harness/catalog.d.ts.map +1 -1
  52. package/dist/harness/catalog.js +10 -0
  53. package/dist/harness/catalog.js.map +1 -1
  54. package/dist/harness/check.d.ts +29 -0
  55. package/dist/harness/check.d.ts.map +1 -0
  56. package/dist/harness/check.js +104 -0
  57. package/dist/harness/check.js.map +1 -0
  58. package/dist/harness/classify.d.ts.map +1 -1
  59. package/dist/harness/classify.js +4 -0
  60. package/dist/harness/classify.js.map +1 -1
  61. package/dist/harness/claude-cli.d.ts +10 -1
  62. package/dist/harness/claude-cli.d.ts.map +1 -1
  63. package/dist/harness/claude-cli.js +38 -3
  64. package/dist/harness/claude-cli.js.map +1 -1
  65. package/dist/harness/contract.d.ts.map +1 -1
  66. package/dist/harness/contract.js +1 -0
  67. package/dist/harness/contract.js.map +1 -1
  68. package/dist/harness/index.d.ts +1 -1
  69. package/dist/harness/index.d.ts.map +1 -1
  70. package/dist/harness/index.js +1 -0
  71. package/dist/harness/index.js.map +1 -1
  72. package/dist/harness/opencode.d.ts +33 -5
  73. package/dist/harness/opencode.d.ts.map +1 -1
  74. package/dist/harness/opencode.js +104 -16
  75. package/dist/harness/opencode.js.map +1 -1
  76. package/dist/harness/pi.d.ts +32 -0
  77. package/dist/harness/pi.d.ts.map +1 -0
  78. package/dist/harness/pi.js +194 -0
  79. package/dist/harness/pi.js.map +1 -0
  80. package/dist/index.d.ts +2 -1
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/internal.d.ts +6 -6
  83. package/dist/internal.d.ts.map +1 -1
  84. package/dist/internal.js +3 -0
  85. package/dist/internal.js.map +1 -1
  86. package/dist/models/diagnose-helpers.d.ts +8 -0
  87. package/dist/models/diagnose-helpers.d.ts.map +1 -0
  88. package/dist/models/diagnose-helpers.js +20 -0
  89. package/dist/models/diagnose-helpers.js.map +1 -0
  90. package/dist/models/harness-probe.d.ts +3 -0
  91. package/dist/models/harness-probe.d.ts.map +1 -0
  92. package/dist/models/harness-probe.js +20 -0
  93. package/dist/models/harness-probe.js.map +1 -0
  94. package/dist/models/index.d.ts +16 -15
  95. package/dist/models/index.d.ts.map +1 -1
  96. package/dist/models/index.js +62 -62
  97. package/dist/models/index.js.map +1 -1
  98. package/dist/models/overrides.d.ts +13 -0
  99. package/dist/models/overrides.d.ts.map +1 -0
  100. package/dist/models/overrides.js +24 -0
  101. package/dist/models/overrides.js.map +1 -0
  102. package/dist/models/pi-auth.d.ts +15 -0
  103. package/dist/models/pi-auth.d.ts.map +1 -0
  104. package/dist/models/pi-auth.js +57 -0
  105. package/dist/models/pi-auth.js.map +1 -0
  106. package/dist/models/zdr-review.d.ts +6 -0
  107. package/dist/models/zdr-review.d.ts.map +1 -0
  108. package/dist/models/zdr-review.js +27 -0
  109. package/dist/models/zdr-review.js.map +1 -0
  110. package/dist/phases/build-opencode-failover.d.ts +43 -0
  111. package/dist/phases/build-opencode-failover.d.ts.map +1 -0
  112. package/dist/phases/build-opencode-failover.js +36 -0
  113. package/dist/phases/build-opencode-failover.js.map +1 -0
  114. package/dist/phases/build.d.ts +2 -0
  115. package/dist/phases/build.d.ts.map +1 -1
  116. package/dist/phases/build.js +15 -0
  117. package/dist/phases/build.js.map +1 -1
  118. package/dist/queue/github-queue.d.ts +2 -2
  119. package/dist/queue/github-queue.d.ts.map +1 -1
  120. package/dist/queue/github-queue.js +1 -1
  121. package/dist/queue/github-queue.js.map +1 -1
  122. package/dist/router/breaker.d.ts +14 -7
  123. package/dist/router/breaker.d.ts.map +1 -1
  124. package/dist/router/breaker.js +27 -12
  125. package/dist/router/breaker.js.map +1 -1
  126. package/dist/router/index.d.ts +2 -1
  127. package/dist/router/index.d.ts.map +1 -1
  128. package/dist/router/index.js +7 -1
  129. package/dist/router/index.js.map +1 -1
  130. package/dist/router/missing-worktree.d.ts +7 -0
  131. package/dist/router/missing-worktree.d.ts.map +1 -0
  132. package/dist/router/missing-worktree.js +14 -0
  133. package/dist/router/missing-worktree.js.map +1 -0
  134. package/dist/router/requires.js +2 -2
  135. package/dist/router/requires.js.map +1 -1
  136. package/dist/run/provider-breaker-gate.d.ts +25 -0
  137. package/dist/run/provider-breaker-gate.d.ts.map +1 -0
  138. package/dist/run/provider-breaker-gate.js +37 -0
  139. package/dist/run/provider-breaker-gate.js.map +1 -0
  140. package/dist/run/run-issue.d.ts.map +1 -1
  141. package/dist/run/run-issue.js +16 -15
  142. package/dist/run/run-issue.js.map +1 -1
  143. package/dist/sim/jitter.js +1 -1
  144. package/dist/sim/jitter.js.map +1 -1
  145. package/dist/types/index.d.ts +6 -1
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/dist/usage/subscription.js +1 -1
  148. package/dist/usage/subscription.js.map +1 -1
  149. package/dist/utils/exec.d.ts +1 -1
  150. package/dist/utils/exec.d.ts.map +1 -1
  151. package/dist/utils/local-auth-record.d.ts +2 -2
  152. package/dist/utils/local-auth-record.d.ts.map +1 -1
  153. package/dist/utils/local-auth-record.js +8 -3
  154. package/dist/utils/local-auth-record.js.map +1 -1
  155. package/dist/utils/worktree-gc-issues.d.ts +22 -0
  156. package/dist/utils/worktree-gc-issues.d.ts.map +1 -0
  157. package/dist/utils/worktree-gc-issues.js +80 -0
  158. package/dist/utils/worktree-gc-issues.js.map +1 -0
  159. package/dist/utils/worktree-gc.d.ts +5 -0
  160. package/dist/utils/worktree-gc.d.ts.map +1 -1
  161. package/dist/utils/worktree-gc.js +39 -77
  162. package/dist/utils/worktree-gc.js.map +1 -1
  163. package/package.json +5 -5
@@ -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":"AAAA,wEAAwE;AAExE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C;;;;0DAI0D;AAC1D,SAAS,mBAAmB,CAAC,MAAc;IAMzC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,GAAG,MAAM;aACtB,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;gBAC1D,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3C,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC7E,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEvF,IAAI,KAA+B,CAAC;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,KAA4C,CAAC;IAC3D,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;QACtG,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC;YAClE,CAAC,CAAE,CAAC,CAAC,2BAAsC;YAC3C,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,uBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;YACjD,CAAC,CAAE,GAAG,CAAC,cAAyB;YAChC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC7B,CAAC,CAAE,GAAG,CAAC,QAAmB;gBAC1B,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,SAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,WAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,eAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;QACzG,KAAK,GAAG;YACN,WAAW,EAAG,CAAC,CAAC,YAAuB,GAAG,aAAa,GAAG,SAAS;YACnE,YAAY,EAAE,CAAC,CAAC,aAAuB;YACvC,cAAc,EAAE,CAAC,CAAC,YAAsB;YACxC,eAAe,EAAE,SAAS;YAC1B,mBAAmB,EAAE,aAAa;YAClC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK;QACL,OAAO,EAAE,GAAG,CAAC,QAAQ,KAAK,IAAI;QAC9B,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CAAC,MAAc;IACxD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACvC,IAAI,KAA8B,CAAC;QACnC,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YACpD,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,WAAW;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACtC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACzF,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACvF,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC7C,MAAM,WAAW,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;2IAC2I;AAC3I,MAAM,OAAO,gBAAgB;IAIP,MAAM;IAHjB,EAAE,GAAG,YAAY,CAAC;IAClB,OAAO,GAAG,IAAI,CAAC;IAExB,YAAoB,MAAM,GAAiB,aAAa;sBAApC,MAAM;IAAiC,CAAC;IAE5D,KAAK,CAAC,GAAG,CAAC,OAAuB;QAC/B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC5F,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,aAAa,QAAQ,GAAG,SAAS,uHAAuH,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9L,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEpE,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACxC,GAAG,EAAE,QAAQ;gBACb,SAAS,EAAE,cAAc,GAAG,IAAI;gBAChC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;gBACtF,MAAM;aACP,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAChG,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzF,MAAM,gBAAgB,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5G,MAAM,cAAc,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,MAAM,CAAC;iBAClE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;iBAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACvF,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,MAAM,IAAI,YAAY,CAAC,4BAA4B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE;gBAC5E,QAAQ,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC7D,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC/D,MAAM;gBACN,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;gBACzE,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACzF,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC/D,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAC/C,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,CAAC;YACtG,MAAM,IAAI,YAAY,CACpB,WAAW;gBACT,CAAC,CAAC,yFAAyF;gBAC3F,CAAC,CAAC,sCAAsC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAC1E,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EACrC;gBACE,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,MAAM;aACf,CACF,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,YAAY,CAAC,kCAAkC,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,YAAY,CAAC,iDAAiD,EAAE,OAAO,EAAE;gBACjF,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjD,CAAC;CACF"}
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":"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"}
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"}
@@ -7,17 +7,42 @@ import { shellEscape } from '../utils/index.js';
7
7
  import { classifyFailure } from './classify.js';
8
8
  import { HarnessError } from './index.js';
9
9
  import { probeOpenCodeMajor } from './opencode-version.js';
10
+ const PERMISSION_REJECTED = /cannot ask the user for permission/i;
11
+ /** OpenCode typed `error.type` → failure reason (#2889). Unlisted types fall back to classifyFailure. */
12
+ export const OPENCODE_ERROR_TYPE_REASONS = {
13
+ 'provider.rate-limit': 'rate_limit',
14
+ 'provider.quota': 'usage_cap',
15
+ 'provider.auth': 'local_auth',
16
+ 'provider.timeout': 'timeout',
17
+ 'provider.connect': 'unavailable',
18
+ 'provider.no-route': 'unavailable',
19
+ };
20
+ export function classifyOpenCodeErrorType(type) {
21
+ return type !== undefined && Object.hasOwn(OPENCODE_ERROR_TYPE_REASONS, type)
22
+ ? OPENCODE_ERROR_TYPE_REASONS[type]
23
+ : undefined;
24
+ }
10
25
  const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : 0);
11
26
  /** Parses `opencode run --format json` NDJSON. Returns undefined when stdout has no
12
27
  * OpenCode event lines (an object with a string `type`), so callers fall back to raw
13
28
  * stdout. Tolerant by design: malformed lines, unknown event types and bad counts are
14
- * skipped. Usage capture must never fail a run (#2462). */
29
+ * skipped. Usage capture must never fail a run (#2462). Usage `durationMs` is the span between
30
+ * the smallest and largest finite event `timestamp` (omitted when none). Only the last step's text is returned:
31
+ * narration from earlier steps is dropped (#2881). A `tool_use` whose state error/output says the
32
+ * run cannot ask for permission is reported in `permissionDenials` (#2888). The first `error` event
33
+ * with a string `error.type` is reported as `errorType`/`errorStatus` (#2889). */
15
34
  export function parseOpenCodeJson(stdout) {
16
- const texts = [];
35
+ let stepTexts = [];
17
36
  const errors = [];
37
+ let errorType;
38
+ let errorStatus;
39
+ const permissionDenials = [];
18
40
  let sawEvent = false;
19
41
  let sawUsage = false;
42
+ let openStep = false;
20
43
  let numTurns = 0;
44
+ let minTs;
45
+ let maxTs;
21
46
  let input = 0;
22
47
  let output = 0;
23
48
  let reasoning = 0;
@@ -38,12 +63,24 @@ export function parseOpenCodeJson(stdout) {
38
63
  if (!event || typeof event !== 'object' || Array.isArray(event) || typeof event.type !== 'string')
39
64
  continue;
40
65
  sawEvent = true;
41
- if (event.type === 'text') {
66
+ const ts = event.timestamp;
67
+ if (typeof ts === 'number' && Number.isFinite(ts)) {
68
+ if (minTs === undefined || ts < minTs)
69
+ minTs = ts;
70
+ if (maxTs === undefined || ts > maxTs)
71
+ maxTs = ts;
72
+ }
73
+ if (event.type === 'step_start') {
74
+ stepTexts = [];
75
+ openStep = true;
76
+ }
77
+ else if (event.type === 'text') {
42
78
  const text = event.part?.text;
43
79
  if (typeof text === 'string' && text.trim().length > 0)
44
- texts.push(text.trim());
80
+ stepTexts.push(text.trim());
45
81
  }
46
82
  else if (event.type === 'step_finish') {
83
+ openStep = false;
47
84
  const tokens = event.part?.tokens;
48
85
  if (!tokens || !Number.isFinite(tokens.input) || !Number.isFinite(tokens.output))
49
86
  continue;
@@ -59,6 +96,13 @@ export function parseOpenCodeJson(stdout) {
59
96
  else if (event.type === 'error') {
60
97
  const data = event.error?.data;
61
98
  const name = event.error?.name;
99
+ const type = event.error?.type;
100
+ const typed = typeof type === 'string' && type.length > 0;
101
+ const status = [event.error?.status, event.error?.statusCode, data?.statusCode].find((v) => typeof v === 'number' && Number.isFinite(v));
102
+ if (typed && errorType === undefined) {
103
+ errorType = type;
104
+ errorStatus = status;
105
+ }
62
106
  const parts = [];
63
107
  if (typeof data?.message === 'string')
64
108
  parts.push(data.message);
@@ -66,18 +110,36 @@ export function parseOpenCodeJson(stdout) {
66
110
  parts.push(name);
67
111
  if (typeof data?.responseBody === 'string' && data.responseBody)
68
112
  parts.push(data.responseBody);
113
+ if (parts.length === 0 && typed)
114
+ parts.push(type);
69
115
  if (typeof data?.statusCode === 'number' && Number.isFinite(data.statusCode)) {
70
116
  parts.push(`status ${data.statusCode}`);
71
117
  }
118
+ else if (parts.length > 0 && status !== undefined) {
119
+ parts.push(`status ${status}`);
120
+ }
72
121
  if (parts.length > 0)
73
122
  errors.push(parts.join(' '));
74
123
  }
124
+ else if (event.type === 'tool_use') {
125
+ const state = event.part?.state;
126
+ const match = [state?.error, state?.output].find((c) => typeof c === 'string' && PERMISSION_REJECTED.test(c));
127
+ if (match !== undefined) {
128
+ const tool = event.part?.tool;
129
+ const line = match.split('\n').find((l) => l.trim()) ?? match;
130
+ permissionDenials.push({ tool: typeof tool === 'string' && tool ? tool : 'unknown', message: line.trim() });
131
+ }
132
+ }
75
133
  }
76
134
  if (!sawEvent)
77
135
  return undefined;
78
136
  return {
79
- text: texts.join('\n\n'),
137
+ text: stepTexts.join('\n\n'),
80
138
  errorText: errors.join('\n'),
139
+ permissionDenials,
140
+ ...(errorType !== undefined ? { errorType } : {}),
141
+ ...(errorStatus !== undefined ? { errorStatus } : {}),
142
+ finished: !openStep,
81
143
  ...(sawUsage
82
144
  ? {
83
145
  usage: {
@@ -87,6 +149,7 @@ export function parseOpenCodeJson(stdout) {
87
149
  cacheReadTokens: cacheRead,
88
150
  cacheCreationTokens: cacheWrite,
89
151
  numTurns,
152
+ ...(minTs !== undefined && maxTs !== undefined ? { durationMs: maxTs - minTs } : {}),
90
153
  ...(cost > 0 ? { costUsd: cost } : {}),
91
154
  },
92
155
  }
@@ -104,7 +167,12 @@ export function buildOpenCodeModelArgs(providerModel, effort, major) {
104
167
  const modelArg = providerModel ? `--model ${shellEscape(providerModel)}` : '';
105
168
  return `${modelArg}${effort === undefined ? '' : ` --variant ${shellEscape(effort)}`}`;
106
169
  }
107
- /** 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. */
170
+ /** Isolation flag for `opencode run`. v2+ (#2879) shares a per-user background server by default;
171
+ * `--standalone` gives the run a private one. v1 has no such flag, and an unknown major omits it. */
172
+ export function buildOpenCodeIsolationArgs(major) {
173
+ return major !== undefined && major >= 2 ? '--standalone' : '';
174
+ }
175
+ /** 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. */
108
176
  export class OpenCodeHarness {
109
177
  execFn;
110
178
  id = 'opencode';
@@ -125,12 +193,14 @@ export class OpenCodeHarness {
125
193
  const effort = registry.getEffort(model, request.task);
126
194
  const providerModel = registry.get(model)?.providerModel;
127
195
  const effortValue = effort === undefined ? undefined : String(effort);
128
- const major = effortValue === undefined ? undefined : await this.getMajorVersion();
196
+ const major = await this.getMajorVersion();
129
197
  const modelArgs = buildOpenCodeModelArgs(providerModel, effortValue, major);
198
+ const isolationArgs = buildOpenCodeIsolationArgs(major);
130
199
  // Agentic sessions can legitimately end on a tool call with an empty final
131
200
  // message (observed with deepseek-v4-flash on large plan prompts). One
132
201
  // retry with an explicit final-message instruction recovers those runs
133
202
  // without masking a genuinely broken provider (still throws after 2 tries).
203
+ // It also covers exit-0 runs truncated before the last `step_finish`.
134
204
  const FINAL_MESSAGE_NUDGE = '\n\nIMPORTANT: your final message must contain your complete answer as plain text. Do not end the session on a tool call or with an empty message.';
135
205
  const MAX_ATTEMPTS = 2;
136
206
  const promptDir = await mkdtemp(join(tmpdir(), 'factory-opencode-prompt-'));
@@ -138,6 +208,7 @@ export class OpenCodeHarness {
138
208
  try {
139
209
  let stdout = '';
140
210
  let stderr = '';
211
+ let truncated = false;
141
212
  for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
142
213
  const attemptPrompt = attempt === 1 ? prompt : prompt + FINAL_MESSAGE_NUDGE;
143
214
  // `--auto`: headless runs auto-REJECT permission prompts (e.g. reading the
@@ -152,8 +223,10 @@ export class OpenCodeHarness {
152
223
  // every call until the phase timeout.
153
224
  // `--format json` emits NDJSON events so the harness can drop tool chatter
154
225
  // and read token usage from `step_finish` events.
226
+ // `--standalone` (v2+ only): v2's run attaches to a shared per-user background
227
+ // server by default; this gives the lane a private one. v1 has no such flag.
155
228
  await writeFile(promptPath, attemptPrompt, 'utf8');
156
- const cmd = `opencode run --auto --format json ${modelArgs} < ${shellEscape(promptPath)}`;
229
+ const cmd = `opencode run --auto --format json ${[isolationArgs, modelArgs].filter(Boolean).join(' ')} < ${shellEscape(promptPath)}`;
157
230
  try {
158
231
  ({ stdout, stderr } = await this.execFn(cmd, {
159
232
  cwd: worktree,
@@ -165,32 +238,47 @@ export class OpenCodeHarness {
165
238
  }));
166
239
  }
167
240
  catch (err) {
168
- // Under --format json, session errors arrive as stdout `error` events.
169
- const jsonErr = typeof err.stdout === 'string' ? (parseOpenCodeJson(err.stdout)?.errorText ?? '') : '';
241
+ // Under --format json, session errors arrive as stdout `error` events; kept as the diagnostic.
242
+ const parsedErr = typeof err.stdout === 'string' ? parseOpenCodeJson(err.stdout) : undefined;
243
+ const jsonErr = parsedErr?.errorText ?? '';
170
244
  const classifyText = [err.stderr ?? '', jsonErr].filter(Boolean).join('\n');
171
- const reason = err.killed ? 'timeout' : classifyFailure(classifyText, err.code ?? 1);
245
+ const reason = err.killed
246
+ ? 'timeout'
247
+ : ((err.code === 124 ? undefined : classifyOpenCodeErrorType(parsedErr?.errorType)) ??
248
+ classifyFailure(classifyText, err.code ?? 1));
172
249
  throw new HarnessError(err.message ?? String(err), reason, {
173
250
  exitCode: typeof err.code === 'number' ? err.code : undefined,
174
251
  stderr: err.stderr,
175
252
  code: typeof err.code === 'string' || typeof err.code === 'number' ? err.code : undefined,
176
253
  signal: typeof err.signal === 'string' ? err.signal : undefined,
177
254
  killed: err.killed === true ? true : undefined,
255
+ ...(jsonErr ? { diagnostic: jsonErr } : {}),
178
256
  });
179
257
  }
180
258
  const parsed = parseOpenCodeJson(stdout);
259
+ // A non-interactive run auto-rejects `ask` permissions, still exits 0, and the model carries
260
+ // on. The failure is deterministic: no nudge retry, no failover (#2888).
261
+ if (parsed && parsed.permissionDenials.length > 0) {
262
+ const tools = [...new Set(parsed.permissionDenials.map((d) => d.tool))].join(', ');
263
+ const diagnostic = parsed.permissionDenials.map((d) => `${d.tool}: ${d.message}`).join('\n');
264
+ throw new HarnessError(`opencode run auto-rejected a permission request for tool ${tools}: ${parsed.permissionDenials[0].message}`, 'permission_denied', { exitCode: 0, stderr: stderr || undefined, diagnostic });
265
+ }
181
266
  const output = parsed ? parsed.text : stdout;
182
- if (output.trim().length > 0)
267
+ // An exit-0 run whose last step never got a step_finish is truncated
268
+ // (anomalyco/opencode#50514): fall through to the nudge retry.
269
+ truncated = parsed !== undefined && !parsed.finished;
270
+ if (output.trim().length > 0 && !truncated)
183
271
  return { output, ...(parsed?.usage ? { usage: parsed.usage } : {}) };
184
272
  if (parsed && parsed.errorText) {
185
273
  // OpenCode can exit 0 with the session error only on stdout. Do not
186
274
  // nudge-retry into a usage cap or rate limit; let the router fail over.
187
275
  const classifyText = [stderr, parsed.errorText].filter(Boolean).join('\n');
188
- throw new HarnessError(`opencode run reported an error event: ${parsed.errorText.split('\n')[0]}`, classifyFailure(classifyText, 1), { exitCode: 0, stderr: stderr || undefined });
276
+ throw new HarnessError(`opencode run reported an error event: ${parsed.errorText.split('\n')[0]}`, classifyOpenCodeErrorType(parsed.errorType) ?? classifyFailure(classifyText, 1), { exitCode: 0, stderr: stderr || undefined, diagnostic: parsed.errorText });
189
277
  }
190
278
  }
191
- throw new HarnessError(`opencode CLI returned empty output (${MAX_ATTEMPTS} attempts)`, 'empty_response', {
192
- exitCode: 0,
193
- });
279
+ throw new HarnessError(truncated
280
+ ? `opencode run exited 0 without a final step_finish (${MAX_ATTEMPTS} attempts)`
281
+ : `opencode CLI returned empty output (${MAX_ATTEMPTS} attempts)`, 'empty_response', { exitCode: 0 });
194
282
  }
195
283
  finally {
196
284
  await rm(promptDir, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/harness/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/harness/opencode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ExecFn } from '../utils/exec.js';
2
+ import type { CodingHarness, HarnessRequest, HarnessResult, HarnessUsage } from './index.js';
3
+ export type PiExecFn = ExecFn;
4
+ export interface ParsedPiJson {
5
+ /** Text of the last assistant `message_end`; '' when none. */
6
+ text: string;
7
+ /** Summed assistant `message_end` usage; undefined when no message reported numeric tokens. */
8
+ usage?: HarnessUsage;
9
+ /** `stopReason` of the last assistant `message_end`. */
10
+ lastStopReason?: string;
11
+ /** `aborted` of the last `agent_settled` event; undefined when absent or non-boolean. */
12
+ aborted?: boolean;
13
+ /** One line per assistant `errorMessage`, `auto_retry_end.finalError` and `compaction_end.errorMessage`, in stream order; '' when none. */
14
+ errorText: string;
15
+ }
16
+ /** Parses `pi -p --mode json` JSONL. Returns undefined when stdout has no Pi event lines
17
+ * (an object with a string `type`). Pi frames records on LF only, so this splits on '\n' and
18
+ * strips one trailing CR; U+2028/U+2029 inside text must survive. Tolerant of malformed lines
19
+ * and unknown events. */
20
+ export declare function parsePiJson(stdout: string): ParsedPiJson | undefined;
21
+ /** Builds the headless `pi` invocation. providerModel is `<provider>/<model>`, split on the first '/'. */
22
+ export declare function buildPiCommand(providerModel: string | undefined, promptPath: string, effort?: string): string;
23
+ /** Runs a model via the Pi CLI: pi -p --mode json ... --provider <p> --model <m> [--thinking <level>] < prompt-file, executed with cwd = worktree.
24
+ * Pi can exit 0 after a failed response, so success is decided from the JSONL stream. */
25
+ export declare class PiHarness implements CodingHarness {
26
+ private execFn;
27
+ readonly id = "pi";
28
+ readonly agentic = true;
29
+ constructor(execFn?: PiExecFn);
30
+ run(request: HarnessRequest): Promise<HarnessResult>;
31
+ }
32
+ //# sourceMappingURL=pi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/harness/pi.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAwB,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGnH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,YAAY;IAC3B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,+FAA+F;IAC/F,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2IAA2I;IAC3I,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD;;;0BAG0B;AAC1B,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAyEpE;AAED,0GAA0G;AAC1G,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB7G;AAED;0FAC0F;AAC1F,qBAAa,SAAU,YAAW,aAAa;IAIjC,OAAO,CAAC,MAAM;IAH1B,QAAQ,CAAC,EAAE,QAAQ;IACnB,QAAQ,CAAC,OAAO,QAAQ;IAExB,YAAoB,MAAM,GAAE,QAAwB,EAAI;IAElD,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA8EzD;CACF"}