reeval 0.0.1

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 (213) hide show
  1. package/LICENSE +202 -0
  2. package/THIRD_PARTY_NOTICES.md +2160 -0
  3. package/assets/package.json +9 -0
  4. package/assets/pnpm-lock.yaml +1336 -0
  5. package/dist/agent-DVHkx8aT.js +532 -0
  6. package/dist/agent-DVHkx8aT.js.map +1 -0
  7. package/dist/analysis-CxSCt1YY.js +16 -0
  8. package/dist/analysis-CxSCt1YY.js.map +1 -0
  9. package/dist/assemble-B-nmz8oH.js +695 -0
  10. package/dist/assemble-B-nmz8oH.js.map +1 -0
  11. package/dist/assemble-CmRVDZ2Q.js +2 -0
  12. package/dist/attempt-BdRQ9jKX.js +176 -0
  13. package/dist/attempt-BdRQ9jKX.js.map +1 -0
  14. package/dist/bridge/index.mjs +1911 -0
  15. package/dist/bridge/package.json +13 -0
  16. package/dist/bridge/pnpm-lock.yaml +1041 -0
  17. package/dist/bridge/pnpm-workspace.yaml +2 -0
  18. package/dist/budget-DBUrH4jX.js +8 -0
  19. package/dist/budget-DBUrH4jX.js.map +1 -0
  20. package/dist/cli--CQ3Iy9q.js +1865 -0
  21. package/dist/cli--CQ3Iy9q.js.map +1 -0
  22. package/dist/cli-spec-DKAu09Gi.js +478 -0
  23. package/dist/cli-spec-DKAu09Gi.js.map +1 -0
  24. package/dist/cli.d.ts +1 -0
  25. package/dist/cli.js +8 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/colors-QV9dFVhN.js +34 -0
  28. package/dist/colors-QV9dFVhN.js.map +1 -0
  29. package/dist/command-BSJzHMtP.js +280 -0
  30. package/dist/command-BSJzHMtP.js.map +1 -0
  31. package/dist/command-CEm8PZ1N.js +1043 -0
  32. package/dist/command-CEm8PZ1N.js.map +1 -0
  33. package/dist/command-D-jnQWVG.js +673 -0
  34. package/dist/command-D-jnQWVG.js.map +1 -0
  35. package/dist/command-DQAvbG7d.js +432 -0
  36. package/dist/command-DQAvbG7d.js.map +1 -0
  37. package/dist/commands-A4udfyKZ.js +2 -0
  38. package/dist/commands-CF8mOfiu.js +207 -0
  39. package/dist/commands-CF8mOfiu.js.map +1 -0
  40. package/dist/config-Cuj0kVYj.js +415 -0
  41. package/dist/config-Cuj0kVYj.js.map +1 -0
  42. package/dist/context-loi9OCZv.js +106 -0
  43. package/dist/context-loi9OCZv.js.map +1 -0
  44. package/dist/core-tLN-z1Be.js +96 -0
  45. package/dist/core-tLN-z1Be.js.map +1 -0
  46. package/dist/db-Cjj2ZsfQ.js +2 -0
  47. package/dist/db-DxDzMhtB.js +827 -0
  48. package/dist/db-DxDzMhtB.js.map +1 -0
  49. package/dist/debug-D24NOQH1.js +89 -0
  50. package/dist/debug-D24NOQH1.js.map +1 -0
  51. package/dist/debug-SEmW4w8f.js +2 -0
  52. package/dist/dist-BZXYHN2X.js +1673 -0
  53. package/dist/dist-BZXYHN2X.js.map +1 -0
  54. package/dist/docker-DQDZWXF9.js +20 -0
  55. package/dist/docker-DQDZWXF9.js.map +1 -0
  56. package/dist/docker-DnWAVdEm.js +2 -0
  57. package/dist/docker-oSbCExHL.js +153 -0
  58. package/dist/docker-oSbCExHL.js.map +1 -0
  59. package/dist/doctor-CxlH1pDM.js +525 -0
  60. package/dist/doctor-CxlH1pDM.js.map +1 -0
  61. package/dist/egress-73SQfKdx.js +619 -0
  62. package/dist/egress-73SQfKdx.js.map +1 -0
  63. package/dist/env-BQqj93gu.js +21 -0
  64. package/dist/env-BQqj93gu.js.map +1 -0
  65. package/dist/environment-Mz7wvrtD.js +552 -0
  66. package/dist/environment-Mz7wvrtD.js.map +1 -0
  67. package/dist/errors-C9w_ud7g.js +160 -0
  68. package/dist/errors-C9w_ud7g.js.map +1 -0
  69. package/dist/errors-CSxfJ4qu.js +11 -0
  70. package/dist/errors-CSxfJ4qu.js.map +1 -0
  71. package/dist/files--6CEUXm7.js +2 -0
  72. package/dist/files-BLlrhU4-.js +62 -0
  73. package/dist/files-BLlrhU4-.js.map +1 -0
  74. package/dist/files-Bd25OAQH.js +2 -0
  75. package/dist/files-BvHCFWgD.js +2 -0
  76. package/dist/files-D2-qn_Dl.js +275 -0
  77. package/dist/files-D2-qn_Dl.js.map +1 -0
  78. package/dist/files-bF2fPuT9.js +99 -0
  79. package/dist/files-bF2fPuT9.js.map +1 -0
  80. package/dist/git-D6hMeieS.js +44 -0
  81. package/dist/git-D6hMeieS.js.map +1 -0
  82. package/dist/harness-ls5aX1UO.js +131 -0
  83. package/dist/harness-ls5aX1UO.js.map +1 -0
  84. package/dist/harness.d.ts +74 -0
  85. package/dist/harness.js +2 -0
  86. package/dist/header-DzFDoMCI.js +78 -0
  87. package/dist/header-DzFDoMCI.js.map +1 -0
  88. package/dist/ids-Bp6ut7ZD.js +49 -0
  89. package/dist/ids-Bp6ut7ZD.js.map +1 -0
  90. package/dist/images-Cc1-coFc.js +286 -0
  91. package/dist/images-Cc1-coFc.js.map +1 -0
  92. package/dist/index.d.ts +97 -0
  93. package/dist/index.js +1959 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/init-CFljS8BJ.js +344 -0
  96. package/dist/init-CFljS8BJ.js.map +1 -0
  97. package/dist/init-z2ZPn9Tj.js +2 -0
  98. package/dist/invocations-rXktgSAn.js +157 -0
  99. package/dist/invocations-rXktgSAn.js.map +1 -0
  100. package/dist/jiti-BOLXpKyG.js +46 -0
  101. package/dist/jiti-BOLXpKyG.js.map +1 -0
  102. package/dist/judge-D8Uf4dA9.js +146 -0
  103. package/dist/judge-D8Uf4dA9.js.map +1 -0
  104. package/dist/judge.d.ts +21 -0
  105. package/dist/judge.js +19 -0
  106. package/dist/judge.js.map +1 -0
  107. package/dist/live-Bs3LReMV.js +98 -0
  108. package/dist/live-Bs3LReMV.js.map +1 -0
  109. package/dist/matchers-DyLvm7EG.js +374 -0
  110. package/dist/matchers-DyLvm7EG.js.map +1 -0
  111. package/dist/model-BdO79gWz.js +44 -0
  112. package/dist/model-BdO79gWz.js.map +1 -0
  113. package/dist/model-CDL98xue.js +725 -0
  114. package/dist/model-CDL98xue.js.map +1 -0
  115. package/dist/model-v-0_Ik7S.js +2 -0
  116. package/dist/node-kG64XxdE.js +506 -0
  117. package/dist/node-kG64XxdE.js.map +1 -0
  118. package/dist/opencode-providers-DZuD_oYt.js +3149 -0
  119. package/dist/opencode-providers-DZuD_oYt.js.map +1 -0
  120. package/dist/options-CAQhu--C.js +452 -0
  121. package/dist/options-CAQhu--C.js.map +1 -0
  122. package/dist/patch-BkKje4cp.js +69 -0
  123. package/dist/patch-BkKje4cp.js.map +1 -0
  124. package/dist/paths-CBvm6pap.js +72 -0
  125. package/dist/paths-CBvm6pap.js.map +1 -0
  126. package/dist/plan-gwk6dJ8c.js +237 -0
  127. package/dist/plan-gwk6dJ8c.js.map +1 -0
  128. package/dist/preflight-BtubXKQ8.js +2 -0
  129. package/dist/preflight-BypZMNBG.js +185 -0
  130. package/dist/preflight-BypZMNBG.js.map +1 -0
  131. package/dist/prepare-Cwv0bHs_.js +3 -0
  132. package/dist/prepare-D6Uzcubb.js +213 -0
  133. package/dist/prepare-D6Uzcubb.js.map +1 -0
  134. package/dist/provenance-Dfb8YY5Y.js +129 -0
  135. package/dist/provenance-Dfb8YY5Y.js.map +1 -0
  136. package/dist/provider-BDbNOQhQ.js +2 -0
  137. package/dist/provider-CmAYTQQs.js +14 -0
  138. package/dist/provider-CmAYTQQs.js.map +1 -0
  139. package/dist/providers-2p3ylMHI.js +107 -0
  140. package/dist/providers-2p3ylMHI.js.map +1 -0
  141. package/dist/providers-BUOxitcT.js +2 -0
  142. package/dist/query-CFATHZmV.js +91 -0
  143. package/dist/query-CFATHZmV.js.map +1 -0
  144. package/dist/query-DR4m6CXf.js +2 -0
  145. package/dist/record-DQ8wzyco.js +99 -0
  146. package/dist/record-DQ8wzyco.js.map +1 -0
  147. package/dist/redact-C4fL_bZP.js +167 -0
  148. package/dist/redact-C4fL_bZP.js.map +1 -0
  149. package/dist/results-CeXb8Wde.js +37 -0
  150. package/dist/results-CeXb8Wde.js.map +1 -0
  151. package/dist/root-CFDjpWuc.js +110 -0
  152. package/dist/root-CFDjpWuc.js.map +1 -0
  153. package/dist/sandbox-By2gkdkC.js +133 -0
  154. package/dist/sandbox-By2gkdkC.js.map +1 -0
  155. package/dist/sandbox.d.ts +41 -0
  156. package/dist/sandbox.js +2 -0
  157. package/dist/server-Bi61uiY0.js +350 -0
  158. package/dist/server-Bi61uiY0.js.map +1 -0
  159. package/dist/server-CsSBL8NC.js +2 -0
  160. package/dist/source-BXzrmof5.js +2 -0
  161. package/dist/source-Bsfa3LZH.js +40 -0
  162. package/dist/source-Bsfa3LZH.js.map +1 -0
  163. package/dist/src-55j1zNHH.js +3 -0
  164. package/dist/src-AEwxd1UP.js +602 -0
  165. package/dist/src-AEwxd1UP.js.map +1 -0
  166. package/dist/src-BDwSuyIo.js +3 -0
  167. package/dist/src-BQyMiWri.js +490 -0
  168. package/dist/src-BQyMiWri.js.map +1 -0
  169. package/dist/src-C-LHyTSV.js +3 -0
  170. package/dist/src-Cmp-7YrD.js +1136 -0
  171. package/dist/src-Cmp-7YrD.js.map +1 -0
  172. package/dist/src-D0RdqpNb.js +252 -0
  173. package/dist/src-D0RdqpNb.js.map +1 -0
  174. package/dist/src-D8KYzxBX.js +793 -0
  175. package/dist/src-D8KYzxBX.js.map +1 -0
  176. package/dist/src-DEgff9Z7.js +4 -0
  177. package/dist/src-DXx_29pq.js +567 -0
  178. package/dist/src-DXx_29pq.js.map +1 -0
  179. package/dist/src-DwwiVLqv.js +2937 -0
  180. package/dist/src-DwwiVLqv.js.map +1 -0
  181. package/dist/src-N7E_mfcZ.js +2 -0
  182. package/dist/src-W9g-y5X5.js +3 -0
  183. package/dist/src-daS0wKH2.js +3 -0
  184. package/dist/state-Cyw3QTsN.js +2 -0
  185. package/dist/state-DZ7eqb1F.js +167 -0
  186. package/dist/state-DZ7eqb1F.js.map +1 -0
  187. package/dist/stats-BNAHlNMD.js +114 -0
  188. package/dist/stats-BNAHlNMD.js.map +1 -0
  189. package/dist/studio-app/assets/index-D6XyfFSH.js +58 -0
  190. package/dist/studio-app/assets/index-xwzWdcE_.css +2 -0
  191. package/dist/studio-app/favicon.svg +1 -0
  192. package/dist/studio-app/index.html +15 -0
  193. package/dist/summary-D7Ttky0z.js +166 -0
  194. package/dist/summary-D7Ttky0z.js.map +1 -0
  195. package/dist/text-gEcKjAyp.js +29 -0
  196. package/dist/text-gEcKjAyp.js.map +1 -0
  197. package/dist/types-C5vI3g1C.js +9 -0
  198. package/dist/types-C5vI3g1C.js.map +1 -0
  199. package/dist/types-DLec-6Cx.d.ts +1535 -0
  200. package/dist/usage-DsYUqIUM.js +24 -0
  201. package/dist/usage-DsYUqIUM.js.map +1 -0
  202. package/dist/view/index.d.ts +645 -0
  203. package/dist/view/index.js +8 -0
  204. package/dist/views-BrHOv6wg.js +220 -0
  205. package/dist/views-BrHOv6wg.js.map +1 -0
  206. package/dist/views-CwCWLWqo.js +3 -0
  207. package/dist/worker-entry-DnYkANPG.js +506 -0
  208. package/dist/worker-entry-DnYkANPG.js.map +1 -0
  209. package/dist/workspace-C2S0Z6gl.js +327 -0
  210. package/dist/workspace-C2S0Z6gl.js.map +1 -0
  211. package/dist/workspace-CyoXG6CY.js +2 -0
  212. package/docker/Dockerfile +19 -0
  213. package/package.json +79 -0
@@ -0,0 +1,602 @@
1
+ import { posix } from "node:path";
2
+ import { Readable } from "node:stream";
3
+ import { HarnessCapabilityUnsupportedError, commonTool, harnessSessionDataDirectoryPath, harnessStateDirectoryPath } from "@ai-sdk/harness";
4
+ import { createCredentialRequestTransformation, generateSandboxCredentialPlaceholder, isHarnessAuthenticationEnvironment, resolveSandboxHomeDir, shellQuote, writeInstructions, writeSkills } from "@ai-sdk/harness/utils";
5
+ import { tool } from "@ai-sdk/provider-utils";
6
+ import { createInterface } from "node:readline";
7
+ import { z } from "zod";
8
+ //#region ../harness-codex/src/codex-bootstrap.ts
9
+ /** The Codex release the bootstrap installs, checked against npm's published sha512s. */
10
+ const CODEX_CLI_VERSION = "0.157.1";
11
+ /** The `dist.integrity` of `@openai/codex@<version>-linux-<arch>`, its native build for Linux. */
12
+ const CODEX_CLI_INTEGRITY = {
13
+ x64: "sha512-Eac8XlC0nCXSeUjDU9l8yLJ6P9evv1mO+AnvILoNwlegBC7B3AVXqJ05QcMhQX7RcJ3Lk2618ykCb2X2ui8VAQ==",
14
+ arm64: "sha512-nEaBZT3ldrtqUNaBlvI+Y+fg+LbNCTsQjbUnl7Q45rl9vSSqHU2vRj1l6iJDwupZkrpeIJ/ClHIwxgMKv1SKHg=="
15
+ };
16
+ /** Relative to the harness state directory, `$HOME/.ai-sdk-harness`. */
17
+ const CODEX_BOOTSTRAP_DIR = ".harness-bootstrap/codex";
18
+ /**
19
+ * Downloads the pinned native build for the sandbox's arch from npm, checks its sha512, and links
20
+ * `codex` and `rg` into `bin/`. The npm package's Node launcher only picks this build and adds its
21
+ * `rg` to `PATH`, so the adapter runs the binary itself.
22
+ */
23
+ const CODEX_INSTALL_COMMAND = `set -eu
24
+ case "$(uname -m)" in
25
+ x86_64|amd64) arch=x64 triple=x86_64-unknown-linux-musl sri=${CODEX_CLI_INTEGRITY.x64} ;;
26
+ aarch64|arm64) arch=arm64 triple=aarch64-unknown-linux-musl sri=${CODEX_CLI_INTEGRITY.arm64} ;;
27
+ *) echo "Codex has no Linux build for $(uname -m)" >&2; exit 1 ;;
28
+ esac
29
+ curl -fsSL --retry 3 -o codex.tgz "https://registry.npmjs.org/@openai/codex/-/codex-${CODEX_CLI_VERSION}-linux-$arch.tgz"
30
+ node -e 'const h = "sha512-" + require("crypto").createHash("sha512").update(require("fs").readFileSync("codex.tgz")).digest("base64"); if (h !== process.argv[1]) { console.error("codex.tgz does not match its sha512"); process.exit(1) }' "$sri"
31
+ rm -rf package && tar -xzf codex.tgz && rm codex.tgz
32
+ mkdir -p bin
33
+ ln -sf "$PWD/package/vendor/$triple/bin/codex" bin/codex
34
+ ln -sf "$PWD/package/vendor/$triple/codex-path/rg" bin/rg
35
+ bin/codex --version`;
36
+ async function getCodexBootstrap() {
37
+ return {
38
+ harnessId: "codex",
39
+ bootstrapDir: CODEX_BOOTSTRAP_DIR,
40
+ files: [],
41
+ commands: [{ command: CODEX_INSTALL_COMMAND }]
42
+ };
43
+ }
44
+ //#endregion
45
+ //#region ../harness-codex/src/codex-stream.ts
46
+ /** Codex's counts in the AI SDK's shape. Its `output_tokens` includes the reasoning ones. */
47
+ function toUsage(usage) {
48
+ const total = usage?.input_tokens;
49
+ const cacheRead = usage?.cached_input_tokens;
50
+ const cacheWrite = usage?.cache_write_input_tokens;
51
+ const output = usage?.output_tokens;
52
+ const reasoning = usage?.reasoning_output_tokens;
53
+ return {
54
+ inputTokens: {
55
+ total,
56
+ noCache: total !== void 0 ? Math.max(total - (cacheRead ?? 0) - (cacheWrite ?? 0), 0) : void 0,
57
+ cacheRead,
58
+ cacheWrite
59
+ },
60
+ outputTokens: {
61
+ total: output,
62
+ text: output !== void 0 && reasoning !== void 0 ? output - reasoning : void 0,
63
+ reasoning
64
+ }
65
+ };
66
+ }
67
+ /** A `file_change` path's kind as the adapter's tool name. */
68
+ const CHANGE_TOOLS = {
69
+ add: "write",
70
+ update: "edit",
71
+ delete: "delete"
72
+ };
73
+ /**
74
+ * Turns one `codex exec --json` process's NDJSON into harness stream parts. Codex reports a turn,
75
+ * not its model calls: `turn.completed` is one `finish-step` with the turn's tokens and the
76
+ * `finish`. A top-level `error` before it is a call Codex retries ("Reconnecting... n/5"), so it's
77
+ * a failed step, not the turn's end, unless `turn.failed` follows it: Codex announces the failure
78
+ * that ends the turn with an `error` too, and that call wasn't retried.
79
+ */
80
+ var CodexStreamTranslator = class {
81
+ threadId;
82
+ started = false;
83
+ finished = false;
84
+ workDir;
85
+ /** Blocks by item id: their start part went out, and what they've said so far. */
86
+ blocks = /* @__PURE__ */ new Map();
87
+ /** Tool calls by id whose call went out, so a result isn't sent without one. */
88
+ calls = /* @__PURE__ */ new Set();
89
+ /** The last top-level `error`, a retry unless the next event is `turn.failed`. */
90
+ pendingError;
91
+ constructor(options) {
92
+ this.workDir = options.workDir;
93
+ }
94
+ /** Parts for one stdout line. Lines that aren't JSON events are passed through as raw. */
95
+ push(line) {
96
+ const trimmed = line.trim();
97
+ if (!trimmed) return [];
98
+ let event;
99
+ try {
100
+ event = JSON.parse(trimmed);
101
+ } catch {
102
+ return [{
103
+ type: "raw",
104
+ rawValue: { unparsed: trimmed }
105
+ }];
106
+ }
107
+ const parts = [];
108
+ if (!this.finished) this.translate(event, parts);
109
+ parts.push({
110
+ type: "raw",
111
+ rawValue: event
112
+ });
113
+ return parts;
114
+ }
115
+ /** Closes the turn when the process ends: `turn.completed` or `turn.failed` did, or it died first. */
116
+ end(options) {
117
+ if (this.finished) return [];
118
+ const parts = [];
119
+ this.start(parts);
120
+ this.flushError(parts);
121
+ this.closeBlocks(parts);
122
+ if (!options.aborted) {
123
+ const detail = options.stderr?.trim();
124
+ parts.push({
125
+ type: "error",
126
+ error: /* @__PURE__ */ new Error(`codex exited with code ${options.exitCode} before ending the turn${detail ? `: ${detail}` : ""}`)
127
+ });
128
+ }
129
+ this.finish(parts, options.aborted ? "aborted" : `exit ${options.exitCode}`);
130
+ return parts;
131
+ }
132
+ translate(e, parts) {
133
+ if (e.type === "turn.failed") this.pendingError = void 0;
134
+ else this.flushError(parts);
135
+ switch (e.type) {
136
+ case "thread.started":
137
+ this.threadId = e.thread_id ?? this.threadId;
138
+ return;
139
+ case "turn.started":
140
+ this.start(parts);
141
+ return;
142
+ case "item.started":
143
+ case "item.updated":
144
+ case "item.completed":
145
+ if (e.item) this.item(e.type, e.item, parts);
146
+ return;
147
+ case "error":
148
+ this.start(parts);
149
+ this.pendingError = e.message ?? "error";
150
+ return;
151
+ case "turn.completed":
152
+ this.start(parts);
153
+ this.closeBlocks(parts);
154
+ parts.push({
155
+ type: "finish-step",
156
+ finishReason: {
157
+ unified: "stop",
158
+ raw: "stop"
159
+ },
160
+ usage: toUsage(e.usage)
161
+ });
162
+ this.finish(parts, "stop", e.usage);
163
+ return;
164
+ case "turn.failed":
165
+ this.start(parts);
166
+ this.closeBlocks(parts);
167
+ parts.push({
168
+ type: "error",
169
+ error: new Error(e.error?.message || "codex reported a failed turn")
170
+ });
171
+ this.finish(parts, "error");
172
+ return;
173
+ }
174
+ }
175
+ item(kind, item, parts) {
176
+ const id = item.id ?? `item-${this.calls.size + this.blocks.size}`;
177
+ const completed = kind === "item.completed";
178
+ switch (item.type) {
179
+ case "agent_message":
180
+ case "reasoning":
181
+ this.block(id, item.type === "agent_message" ? "text" : "reasoning", item.text, parts);
182
+ if (completed) this.closeBlock(id, parts);
183
+ return;
184
+ case "command_execution":
185
+ this.call(parts, id, "bash", { command: item.command ?? "" });
186
+ if (completed) this.result(parts, id, "bash", item.aggregated_output ?? "", item.status === "failed");
187
+ return;
188
+ case "file_change":
189
+ for (const [i, change] of (item.changes ?? []).entries()) {
190
+ const tool = CHANGE_TOOLS[change.kind ?? ""] ?? "edit";
191
+ const callId = `${id}:${i}`;
192
+ this.call(parts, callId, tool, { path: this.relative(change.path ?? "") });
193
+ if (completed) this.result(parts, callId, tool, { kind: change.kind }, item.status === "failed");
194
+ }
195
+ return;
196
+ case "mcp_tool_call": {
197
+ const tool = `mcp__${item.server ?? "unknown"}__${item.tool ?? "unknown"}`;
198
+ this.call(parts, id, tool, item.arguments ?? {});
199
+ if (completed) {
200
+ const failed = item.status === "failed" || Boolean(item.error);
201
+ const output = failed ? item.error?.message ?? "the MCP tool call failed" : item.result?.structured_content ?? item.result?.content ?? null;
202
+ this.result(parts, id, tool, output, failed);
203
+ }
204
+ return;
205
+ }
206
+ case "web_search": {
207
+ if (!completed) return;
208
+ const { type, url, query, pattern } = item.action ?? {};
209
+ if ((type === "open_page" || type === "find_in_page") && url) {
210
+ this.call(parts, id, "webFetch", {
211
+ url,
212
+ ...pattern ? { pattern } : {}
213
+ });
214
+ this.result(parts, id, "webFetch", {}, false);
215
+ } else {
216
+ this.call(parts, id, "webSearch", { query: query || item.query || "" });
217
+ this.result(parts, id, "webSearch", {}, false);
218
+ }
219
+ return;
220
+ }
221
+ }
222
+ }
223
+ flushError(parts) {
224
+ if (this.pendingError === void 0) return;
225
+ parts.push({
226
+ type: "finish-step",
227
+ finishReason: {
228
+ unified: "error",
229
+ raw: this.pendingError
230
+ },
231
+ usage: toUsage(void 0)
232
+ });
233
+ this.pendingError = void 0;
234
+ }
235
+ relative(path) {
236
+ const rel = posix.relative(this.workDir, path);
237
+ return path.startsWith("/") && !rel.startsWith("..") ? rel : path;
238
+ }
239
+ block(id, type, text, parts) {
240
+ if (!text) return;
241
+ let block = this.blocks.get(id);
242
+ if (!block) {
243
+ block = {
244
+ type,
245
+ text: ""
246
+ };
247
+ this.blocks.set(id, block);
248
+ parts.push({
249
+ type: `${type}-start`,
250
+ id
251
+ });
252
+ }
253
+ if (text.length > block.text.length && text.startsWith(block.text)) {
254
+ parts.push({
255
+ type: `${type}-delta`,
256
+ id,
257
+ delta: text.slice(block.text.length)
258
+ });
259
+ block.text = text;
260
+ }
261
+ }
262
+ closeBlock(id, parts) {
263
+ const block = this.blocks.get(id);
264
+ if (!block) return;
265
+ this.blocks.delete(id);
266
+ parts.push({
267
+ type: `${block.type}-end`,
268
+ id
269
+ });
270
+ }
271
+ closeBlocks(parts) {
272
+ for (const id of [...this.blocks.keys()]) this.closeBlock(id, parts);
273
+ }
274
+ call(parts, id, toolName, input) {
275
+ if (this.calls.has(id)) return;
276
+ this.calls.add(id);
277
+ parts.push({
278
+ type: "tool-call",
279
+ toolCallId: id,
280
+ toolName,
281
+ input: JSON.stringify(input),
282
+ providerExecuted: true
283
+ });
284
+ }
285
+ result(parts, id, toolName, result, isError) {
286
+ parts.push({
287
+ type: "tool-result",
288
+ toolCallId: id,
289
+ toolName,
290
+ result,
291
+ ...isError ? { isError: true } : {}
292
+ });
293
+ }
294
+ start(parts) {
295
+ if (this.started) return;
296
+ this.started = true;
297
+ parts.push({ type: "stream-start" });
298
+ }
299
+ finish(parts, raw, usage) {
300
+ this.finished = true;
301
+ parts.push({
302
+ type: "finish",
303
+ finishReason: {
304
+ unified: raw === "stop" ? "stop" : raw === "aborted" ? "other" : "error",
305
+ raw
306
+ },
307
+ totalUsage: toUsage(usage)
308
+ });
309
+ }
310
+ };
311
+ //#endregion
312
+ //#region ../harness-codex/src/codex-tools.ts
313
+ const CODEX_BUILTIN_TOOLS = {
314
+ bash: {
315
+ ...commonTool("bash", {
316
+ nativeName: "shell",
317
+ toolUseKind: "bash",
318
+ inputSchema: z.looseObject({ command: z.string() })
319
+ }),
320
+ title: "shell"
321
+ },
322
+ write: {
323
+ ...tool({
324
+ title: "apply_patch (add)",
325
+ inputSchema: z.looseObject({ path: z.string() })
326
+ }),
327
+ toolUseKind: "edit"
328
+ },
329
+ edit: {
330
+ ...tool({
331
+ title: "apply_patch (update)",
332
+ inputSchema: z.looseObject({ path: z.string() })
333
+ }),
334
+ toolUseKind: "edit"
335
+ },
336
+ delete: {
337
+ ...tool({
338
+ title: "apply_patch (delete)",
339
+ inputSchema: z.looseObject({ path: z.string() })
340
+ }),
341
+ toolUseKind: "edit"
342
+ },
343
+ webSearch: {
344
+ ...commonTool("webSearch", {
345
+ nativeName: "web_search",
346
+ toolUseKind: "readonly",
347
+ inputSchema: z.looseObject({ query: z.string() })
348
+ }),
349
+ title: "web_search"
350
+ },
351
+ webFetch: {
352
+ ...tool({
353
+ title: "web_search (open_page)",
354
+ inputSchema: z.looseObject({ url: z.string() })
355
+ }),
356
+ toolUseKind: "readonly"
357
+ }
358
+ };
359
+ //#endregion
360
+ //#region ../harness-codex/src/codex-harness.ts
361
+ const CODEX_HARNESS_ID = "codex";
362
+ /** The only credential the adapter uses: an OpenAI API key. */
363
+ const CODEX_CREDENTIAL_ENV = "OPENAI_API_KEY";
364
+ const OPENAI_API_URL = "https://api.openai.com/v1";
365
+ /** Codex's home under the sandbox home: its config, sessions and global rules. */
366
+ const CODEX_HOME_DIR = ".codex";
367
+ /** Global rules, which Codex loads before the workspace's; `instructions` go here. */
368
+ const CODEX_INSTRUCTIONS_FILE = `${CODEX_HOME_DIR}/AGENTS.md`;
369
+ /** Where harness-placed skills go, under the sandbox home: Codex's user skill directory. */
370
+ const CODEX_HOME_SKILLS_DIR = ".agents/skills";
371
+ /** The provider the adapter gives Codex, so its requests are HTTP and it reads no login. */
372
+ const CODEX_PROVIDER_ID = "openai-http";
373
+ new URL(OPENAI_API_URL).hostname;
374
+ /**
375
+ * Codex's defaults but for what it sends besides model requests (checked with 0.157.1 behind the
376
+ * gateway): its analytics (to `ab.chatgpt.com`), and the plugin sync (the curated list from
377
+ * `github.com`, the remote catalogue from `chatgpt.com`), which an eval doesn't use. The update
378
+ * check is the TUI's, never `exec`'s; it's off in case that changes.
379
+ */
380
+ const CODEX_QUIET_CONFIG = {
381
+ check_for_update_on_startup: false,
382
+ analytics: { enabled: false },
383
+ features: { plugins: false }
384
+ };
385
+ const lifecycleData = z.object({ threadId: z.string().optional() });
386
+ const unsupported = (what) => new HarnessCapabilityUnsupportedError({
387
+ message: `codex exec has no ${what}`,
388
+ harnessId: CODEX_HARNESS_ID
389
+ });
390
+ function promptText(prompt) {
391
+ if (typeof prompt === "string") return prompt;
392
+ const { content } = prompt;
393
+ if (typeof content === "string") return content;
394
+ return content.map((part) => {
395
+ if (part.type !== "text") throw new HarnessCapabilityUnsupportedError({
396
+ message: `The Codex harness takes text prompts only (got a ${part.type} part)`,
397
+ harnessId: CODEX_HARNESS_ID
398
+ });
399
+ return part.text;
400
+ }).join("\n");
401
+ }
402
+ /** A TOML inline value. JSON's strings are TOML basic strings; keys are always quoted. */
403
+ function toml(value) {
404
+ if (typeof value === "string") return JSON.stringify(value);
405
+ if (typeof value !== "object") return String(value);
406
+ if (Array.isArray(value)) return `[${value.map(toml).join(", ")}]`;
407
+ return `{ ${Object.entries(value).map(([k, v]) => `${JSON.stringify(k)} = ${toml(v)}`).join(", ")} }`;
408
+ }
409
+ /**
410
+ * Codex's `config.toml`: the quiet settings, reeval's provider as the model provider, and the MCP
411
+ * servers. Each top-level key is one line, tables inline, so nothing depends on section order.
412
+ */
413
+ function buildCodexConfig(options) {
414
+ const config = {
415
+ ...CODEX_QUIET_CONFIG,
416
+ model_provider: CODEX_PROVIDER_ID,
417
+ model_providers: { [CODEX_PROVIDER_ID]: {
418
+ name: "OpenAI",
419
+ base_url: OPENAI_API_URL,
420
+ env_key: CODEX_CREDENTIAL_ENV,
421
+ wire_api: "responses",
422
+ supports_websockets: false
423
+ } },
424
+ ...options.mcpServers && Object.keys(options.mcpServers).length ? { mcp_servers: options.mcpServers } : {}
425
+ };
426
+ return `${Object.entries(config).map(([k, v]) => `${JSON.stringify(k)} = ${toml(v)}`).join("\n")}\n`;
427
+ }
428
+ const lines = (stream) => createInterface({
429
+ input: Readable.fromWeb(stream),
430
+ crlfDelay: Infinity
431
+ });
432
+ async function tail(stream, max = 4e3) {
433
+ let text = "";
434
+ for await (const line of lines(stream)) text = `${text}${line}\n`.slice(-max);
435
+ return text;
436
+ }
437
+ const canBroker = (sandbox) => "addRequestTransformations" in sandbox && typeof sandbox.addRequestTransformations === "function";
438
+ /**
439
+ * The Codex turn command: `codex exec --json`, no approvals or Codex sandbox (the sandbox is the
440
+ * isolation), outside a git repo if need be, resuming the thread after the first turn. stdin is
441
+ * closed, or Codex waits to append it to the prompt. The prompt is an argument, so it must stay
442
+ * under the shell's 128 KiB.
443
+ */
444
+ function buildCodexCommand(options) {
445
+ return [
446
+ `cd ${shellQuote(options.workDir)} &&`,
447
+ `PATH=${shellQuote(options.binDir)}:"$PATH" exec codex exec --json`,
448
+ "--skip-git-repo-check --dangerously-bypass-approvals-and-sandbox",
449
+ ...options.model ? [`--model ${shellQuote(options.model)}`] : [],
450
+ ...options.threadId ? [`resume ${shellQuote(options.threadId)}`] : [],
451
+ `-- "$(cat ${shellQuote(options.promptFile)})" < /dev/null`
452
+ ].join(" ");
453
+ }
454
+ /**
455
+ * OpenAI's Codex CLI (`codex exec --json`) as an AI SDK harness, in the sandbox: one process per
456
+ * turn, resumed by thread id, its NDJSON translated into harness stream parts with each turn's
457
+ * tokens, reasoning included. `@ai-sdk/harness-codex` reports neither those nor Codex's native
458
+ * events, and needs a newer `@ai-sdk/harness` than reeval runs.
459
+ */
460
+ function createCodex(settings) {
461
+ const key = isHarnessAuthenticationEnvironment(settings.auth) ? settings.auth[CODEX_CREDENTIAL_ENV] : void 0;
462
+ if (!key) throw new Error(`Codex auth must be an environment object with ${CODEX_CREDENTIAL_ENV} (an OpenAI API key)`);
463
+ return {
464
+ specificationVersion: "harness-v1",
465
+ harnessId: CODEX_HARNESS_ID,
466
+ builtinTools: CODEX_BUILTIN_TOOLS,
467
+ lifecycleStateSchema: lifecycleData,
468
+ getBootstrap: getCodexBootstrap,
469
+ doStart: (options) => startSession(settings, key, options)
470
+ };
471
+ }
472
+ async function startSession(settings, key, options) {
473
+ const { sandboxSession: sandbox, sessionWorkDir, abortSignal } = options;
474
+ let sandboxKey = key;
475
+ if (canBroker(sandbox)) {
476
+ sandboxKey = generateSandboxCredentialPlaceholder();
477
+ await sandbox.addRequestTransformations([createCredentialRequestTransformation({
478
+ matchUrl: OPENAI_API_URL,
479
+ matchHeaders: { Authorization: `Bearer ${sandboxKey}` },
480
+ transformHeaders: {
481
+ ...options.headers,
482
+ Authorization: `Bearer ${key}`
483
+ }
484
+ })]);
485
+ } else if (settings.requireCredentialBrokering) throw new Error(`The sandbox can't broker ${CODEX_CREDENTIAL_ENV} (it has no request transformations), and requireCredentialBrokering is set, so the key stays out of it.`);
486
+ const home = await resolveSandboxHomeDir({
487
+ sandbox,
488
+ abortSignal
489
+ });
490
+ const stateDir = harnessStateDirectoryPath({ sandboxHomeDir: home });
491
+ const binDir = posix.join(stateDir, CODEX_BOOTSTRAP_DIR, "bin");
492
+ const dataDir = harnessSessionDataDirectoryPath({
493
+ stateDirectory: stateDir,
494
+ sessionId: options.sessionId
495
+ });
496
+ await sandbox.writeTextFile({
497
+ path: posix.join(home, CODEX_HOME_DIR, "config.toml"),
498
+ content: buildCodexConfig(settings.mcpServers ? { mcpServers: settings.mcpServers } : {}),
499
+ abortSignal
500
+ });
501
+ const resumed = lifecycleData.safeParse(options.resumeFrom?.data);
502
+ let threadId = resumed.success ? resumed.data.threadId : void 0;
503
+ const env = { [CODEX_CREDENTIAL_ENV]: sandboxKey };
504
+ let turns = 0;
505
+ let running;
506
+ let ended = false;
507
+ const state = () => ({
508
+ type: "resume-session",
509
+ harnessId: CODEX_HARNESS_ID,
510
+ specificationVersion: "harness-v1",
511
+ data: threadId ? { threadId } : {}
512
+ });
513
+ const stop = async () => {
514
+ ended = true;
515
+ await running?.kill();
516
+ running = void 0;
517
+ };
518
+ return {
519
+ sessionId: options.sessionId,
520
+ isResume: options.resumeFrom !== void 0,
521
+ async doPromptTurn(turn) {
522
+ if (ended) throw new Error("This Codex session has ended");
523
+ if (turn.tools.length > 0) throw unsupported("host-executed tools");
524
+ const n = ++turns;
525
+ await writeSkills({
526
+ sandbox,
527
+ homePath: home,
528
+ skillsDir: CODEX_HOME_SKILLS_DIR,
529
+ skills: turn.skills,
530
+ ...turn.abortSignal ? { abortSignal: turn.abortSignal } : {}
531
+ });
532
+ await writeInstructions({
533
+ sandbox,
534
+ homePath: home,
535
+ instructionsFile: CODEX_INSTRUCTIONS_FILE,
536
+ ...turn.instructions !== void 0 ? { instructions: turn.instructions } : {},
537
+ ...turn.abortSignal ? { abortSignal: turn.abortSignal } : {}
538
+ });
539
+ const promptFile = posix.join(dataDir, `prompt-${n}.txt`);
540
+ await sandbox.writeTextFile({
541
+ path: promptFile,
542
+ content: promptText(turn.prompt),
543
+ abortSignal: turn.abortSignal
544
+ });
545
+ const command = buildCodexCommand({
546
+ binDir,
547
+ workDir: sessionWorkDir,
548
+ promptFile,
549
+ model: turn.model,
550
+ threadId
551
+ });
552
+ const translator = new CodexStreamTranslator({ workDir: sessionWorkDir });
553
+ const emit = (parts) => {
554
+ for (const part of parts) turn.emit(part);
555
+ };
556
+ const proc = await sandbox.spawn({
557
+ command,
558
+ workingDirectory: sessionWorkDir,
559
+ env,
560
+ ...turn.abortSignal ? { abortSignal: turn.abortSignal } : {}
561
+ });
562
+ running = proc;
563
+ const onAbort = () => void proc.kill();
564
+ turn.abortSignal?.addEventListener("abort", onAbort, { once: true });
565
+ return {
566
+ submitToolResult: () => Promise.reject(unsupported("host-executed tools")),
567
+ done: (async () => {
568
+ const stderr = tail(proc.stderr).catch(() => "");
569
+ try {
570
+ for await (const line of lines(proc.stdout)) emit(translator.push(line));
571
+ threadId = translator.threadId ?? threadId;
572
+ const { exitCode } = await proc.wait();
573
+ emit(translator.end({
574
+ exitCode,
575
+ stderr: await stderr,
576
+ aborted: turn.abortSignal?.aborted === true
577
+ }));
578
+ } finally {
579
+ turn.abortSignal?.removeEventListener("abort", onAbort);
580
+ if (running === proc) running = void 0;
581
+ }
582
+ })()
583
+ };
584
+ },
585
+ doCompact: () => Promise.reject(unsupported("manual compaction")),
586
+ doContinueTurn: () => Promise.reject(unsupported("turn continuation")),
587
+ doSuspendTurn: () => Promise.reject(unsupported("turn suspension")),
588
+ async doDetach() {
589
+ await stop();
590
+ return state();
591
+ },
592
+ async doStop() {
593
+ await stop();
594
+ return state();
595
+ },
596
+ doDestroy: stop
597
+ };
598
+ }
599
+ //#endregion
600
+ export { CODEX_CLI_VERSION as _, CODEX_INSTRUCTIONS_FILE as a, OPENAI_API_URL as c, createCodex as d, CODEX_BUILTIN_TOOLS as f, CODEX_CLI_INTEGRITY as g, CODEX_BOOTSTRAP_DIR as h, CODEX_HOME_SKILLS_DIR as i, buildCodexCommand as l, toUsage as m, CODEX_HARNESS_ID as n, CODEX_PROVIDER_ID as o, CodexStreamTranslator as p, CODEX_HOME_DIR as r, CODEX_QUIET_CONFIG as s, CODEX_CREDENTIAL_ENV as t, buildCodexConfig as u, CODEX_INSTALL_COMMAND as v, getCodexBootstrap as y };
601
+
602
+ //# sourceMappingURL=src-AEwxd1UP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src-AEwxd1UP.js","names":[],"sources":["../../harness-codex/src/codex-bootstrap.ts","../../harness-codex/src/codex-stream.ts","../../harness-codex/src/codex-tools.ts","../../harness-codex/src/codex-harness.ts"],"mappings":";;;;;;;;;AAGA,MAAa,oBAAoB;;AAEjC,MAAa,sBAAsB;CACjC,KAAK;CACL,OACE;AACJ;;AAEA,MAAa,sBAAsB;;;;;;AAYnC,MAAa,wBAAwB;;gEAE2B,oBAAoB,IAAI;oEACpB,oBAAoB,MAAM;;;sFAGR,kBAAkB;;;;;;;AAQxG,eAAsB,oBAAiD;CACrE,OAAO;EACL,WAAW;EACX,cAAc;EACd,OAAO,CAAC;EACR,UAAU,CAAC,EAAE,SAAS,sBAAsB,CAAC;CAC/C;AACF;;;;ACDA,SAAgB,QAAQ,OAAsC;CAC5D,MAAM,QAAQ,OAAO;CACrB,MAAM,YAAY,OAAO;CACzB,MAAM,aAAa,OAAO;CAC1B,MAAM,SAAS,OAAO;CACtB,MAAM,YAAY,OAAO;CACzB,OAAO;EACL,aAAa;GACX;GACA,SACE,UAAU,KAAA,IAAY,KAAK,IAAI,SAAS,aAAa,MAAM,cAAc,IAAI,CAAC,IAAI,KAAA;GACpF;GACA;EACF;EACA,cAAc;GACZ,OAAO;GACP,MAAM,WAAW,KAAA,KAAa,cAAc,KAAA,IAAY,SAAS,YAAY,KAAA;GAC7E;EACF;CACF;AACF;;AAGA,MAAM,eAAuC;CAAE,KAAK;CAAS,QAAQ;CAAQ,QAAQ;AAAS;;;;;;;;AAS9F,IAAa,wBAAb,MAAmC;CACjC;CACA,UAAkB;CAClB,WAAmB;CACnB;;CAEA,yBAA0B,IAAI,IAA0D;;CAExF,wBAAyB,IAAI,IAAY;;CAEzC;CAEA,YAAY,SAA8B;EACxC,KAAK,UAAU,QAAQ;CACzB;;CAGA,KAAK,MAAqC;EACxC,MAAM,UAAU,KAAK,KAAK;EAC1B,IAAI,CAAC,SAAS,OAAO,CAAC;EACtB,IAAI;EACJ,IAAI;GACF,QAAQ,KAAK,MAAM,OAAO;EAC5B,QAAQ;GACN,OAAO,CAAC;IAAE,MAAM;IAAO,UAAU,EAAE,UAAU,QAAQ;GAAE,CAAC;EAC1D;EACA,MAAM,QAA+B,CAAC;EACtC,IAAI,CAAC,KAAK,UAAU,KAAK,UAAU,OAAO,KAAK;EAC/C,MAAM,KAAK;GAAE,MAAM;GAAO,UAAU;EAAM,CAAC;EAC3C,OAAO;CACT;;CAGA,IAAI,SAA0F;EAC5F,IAAI,KAAK,UAAU,OAAO,CAAC;EAC3B,MAAM,QAA+B,CAAC;EACtC,KAAK,MAAM,KAAK;EAChB,KAAK,WAAW,KAAK;EACrB,KAAK,YAAY,KAAK;EACtB,IAAI,CAAC,QAAQ,SAAS;GACpB,MAAM,SAAS,QAAQ,QAAQ,KAAK;GACpC,MAAM,KAAK;IACT,MAAM;IACN,uBAAO,IAAI,MACT,0BAA0B,QAAQ,SAAS,yBAAyB,SAAS,KAAK,WAAW,IAC/F;GACF,CAAC;EACH;EACA,KAAK,OAAO,OAAO,QAAQ,UAAU,YAAY,QAAQ,QAAQ,UAAU;EAC3E,OAAO;CACT;CAEA,UAAkB,GAAe,OAA8B;EAC7D,IAAI,EAAE,SAAS,eAAe,KAAK,eAAe,KAAA;OAC7C,KAAK,WAAW,KAAK;EAC1B,QAAQ,EAAE,MAAV;GACE,KAAK;IACH,KAAK,WAAW,EAAE,aAAa,KAAK;IACpC;GACF,KAAK;IACH,KAAK,MAAM,KAAK;IAChB;GACF,KAAK;GACL,KAAK;GACL,KAAK;IACH,IAAI,EAAE,MAAM,KAAK,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK;IAC3C;GACF,KAAK;IACH,KAAK,MAAM,KAAK;IAChB,KAAK,eAAe,EAAE,WAAW;IACjC;GACF,KAAK;IACH,KAAK,MAAM,KAAK;IAChB,KAAK,YAAY,KAAK;IACtB,MAAM,KAAK;KACT,MAAM;KACN,cAAc;MAAE,SAAS;MAAQ,KAAK;KAAO;KAC7C,OAAO,QAAQ,EAAE,KAAK;IACxB,CAAC;IACD,KAAK,OAAO,OAAO,QAAQ,EAAE,KAAK;IAClC;GACF,KAAK;IACH,KAAK,MAAM,KAAK;IAChB,KAAK,YAAY,KAAK;IACtB,MAAM,KAAK;KACT,MAAM;KACN,OAAO,IAAI,MAAM,EAAE,OAAO,WAAW,8BAA8B;IACrE,CAAC;IACD,KAAK,OAAO,OAAO,OAAO;IAC1B;EACJ;CACF;CAEA,KAAa,MAAc,MAAiB,OAA8B;EACxE,MAAM,KAAK,KAAK,MAAM,QAAQ,KAAK,MAAM,OAAO,KAAK,OAAO;EAC5D,MAAM,YAAY,SAAS;EAC3B,QAAQ,KAAK,MAAb;GACE,KAAK;GACL,KAAK;IACH,KAAK,MAAM,IAAI,KAAK,SAAS,kBAAkB,SAAS,aAAa,KAAK,MAAM,KAAK;IACrF,IAAI,WAAW,KAAK,WAAW,IAAI,KAAK;IACxC;GACF,KAAK;IACH,KAAK,KAAK,OAAO,IAAI,QAAQ,EAAE,SAAS,KAAK,WAAW,GAAG,CAAC;IAC5D,IAAI,WACF,KAAK,OAAO,OAAO,IAAI,QAAQ,KAAK,qBAAqB,IAAI,KAAK,WAAW,QAAQ;IAEvF;GACF,KAAK;IACH,KAAK,MAAM,CAAC,GAAG,YAAY,KAAK,WAAW,CAAC,EAAA,CAAG,QAAQ,GAAG;KACxD,MAAM,OAAO,aAAa,OAAO,QAAQ,OAAO;KAChD,MAAM,SAAS,GAAG,GAAG,GAAG;KACxB,KAAK,KAAK,OAAO,QAAQ,MAAM,EAAE,MAAM,KAAK,SAAS,OAAO,QAAQ,EAAE,EAAE,CAAC;KACzE,IAAI,WACF,KAAK,OAAO,OAAO,QAAQ,MAAM,EAAE,MAAM,OAAO,KAAK,GAAG,KAAK,WAAW,QAAQ;IAEpF;IACA;GACF,KAAK,iBAAiB;IACpB,MAAM,OAAO,QAAQ,KAAK,UAAU,UAAU,IAAI,KAAK,QAAQ;IAC/D,KAAK,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa,CAAC,CAAC;IAC/C,IAAI,WAAW;KACb,MAAM,SAAS,KAAK,WAAW,YAAY,QAAQ,KAAK,KAAK;KAC7D,MAAM,SAAS,SACV,KAAK,OAAO,WAAW,6BACvB,KAAK,QAAQ,sBAAsB,KAAK,QAAQ,WAAW;KAChE,KAAK,OAAO,OAAO,IAAI,MAAM,QAAQ,MAAM;IAC7C;IACA;GACF;GAGA,KAAK,cAAc;IACjB,IAAI,CAAC,WAAW;IAChB,MAAM,EAAE,MAAM,KAAK,OAAO,YAAY,KAAK,UAAU,CAAC;IACtD,KAAK,SAAS,eAAe,SAAS,mBAAmB,KAAK;KAC5D,KAAK,KAAK,OAAO,IAAI,YAAY;MAAE;MAAK,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;KAAG,CAAC;KACzE,KAAK,OAAO,OAAO,IAAI,YAAY,CAAC,GAAG,KAAK;IAC9C,OAAO;KACL,KAAK,KAAK,OAAO,IAAI,aAAa,EAAE,OAAO,SAAS,KAAK,SAAS,GAAG,CAAC;KACtE,KAAK,OAAO,OAAO,IAAI,aAAa,CAAC,GAAG,KAAK;IAC/C;IACA;GACF;EACF;CACF;CAEA,WAAmB,OAA8B;EAC/C,IAAI,KAAK,iBAAiB,KAAA,GAAW;EACrC,MAAM,KAAK;GACT,MAAM;GACN,cAAc;IAAE,SAAS;IAAS,KAAK,KAAK;GAAa;GACzD,OAAO,QAAQ,KAAA,CAAS;EAC1B,CAAC;EACD,KAAK,eAAe,KAAA;CACtB;CAEA,SAAiB,MAAc;EAC7B,MAAM,MAAM,MAAM,SAAS,KAAK,SAAS,IAAI;EAC7C,OAAO,KAAK,WAAW,GAAG,KAAK,CAAC,IAAI,WAAW,IAAI,IAAI,MAAM;CAC/D;CAEA,MACE,IACA,MACA,MACA,OACA;EACA,IAAI,CAAC,MAAM;EACX,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE;EAC9B,IAAI,CAAC,OAAO;GACV,QAAQ;IAAE;IAAM,MAAM;GAAG;GACzB,KAAK,OAAO,IAAI,IAAI,KAAK;GACzB,MAAM,KAAK;IAAE,MAAM,GAAG,KAAK;IAAS;GAAG,CAAC;EAC1C;EACA,IAAI,KAAK,SAAS,MAAM,KAAK,UAAU,KAAK,WAAW,MAAM,IAAI,GAAG;GAClE,MAAM,KAAK;IAAE,MAAM,GAAG,KAAK;IAAS;IAAI,OAAO,KAAK,MAAM,MAAM,KAAK,MAAM;GAAE,CAAC;GAC9E,MAAM,OAAO;EACf;CACF;CAEA,WAAmB,IAAY,OAA8B;EAC3D,MAAM,QAAQ,KAAK,OAAO,IAAI,EAAE;EAChC,IAAI,CAAC,OAAO;EACZ,KAAK,OAAO,OAAO,EAAE;EACrB,MAAM,KAAK;GAAE,MAAM,GAAG,MAAM,KAAK;GAAO;EAAG,CAAC;CAC9C;CAEA,YAAoB,OAA8B;EAChD,KAAK,MAAM,MAAM,CAAC,GAAG,KAAK,OAAO,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK;CACrE;CAEA,KAAa,OAA8B,IAAY,UAAkB,OAAgB;EACvF,IAAI,KAAK,MAAM,IAAI,EAAE,GAAG;EACxB,KAAK,MAAM,IAAI,EAAE;EACjB,MAAM,KAAK;GACT,MAAM;GACN,YAAY;GACZ;GACA,OAAO,KAAK,UAAU,KAAK;GAC3B,kBAAkB;EACpB,CAAC;CACH;CAEA,OACE,OACA,IACA,UACA,QACA,SACA;EACA,MAAM,KAAK;GACT,MAAM;GACN,YAAY;GACZ;GACQ;GACR,GAAI,UAAU,EAAE,SAAS,KAAK,IAAI,CAAC;EACrC,CAAC;CACH;CAEA,MAAc,OAA8B;EAC1C,IAAI,KAAK,SAAS;EAClB,KAAK,UAAU;EACf,MAAM,KAAK,EAAE,MAAM,eAAe,CAAC;CACrC;CAEA,OAAe,OAA8B,KAAa,OAAoB;EAC5E,KAAK,WAAW;EAChB,MAAM,KAAK;GACT,MAAM;GACN,cAAc;IACZ,SAAS,QAAQ,SAAS,SAAS,QAAQ,YAAY,UAAU;IACjE;GACF;GACA,YAAY,QAAQ,KAAK;EAC3B,CAAC;CACH;AACF;;;AC3SA,MAAa,sBAAsB;CACjC,MAAM;EACJ,GAAG,WAAW,QAAQ;GACpB,YAAY;GACZ,aAAa;GACb,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;EACpD,CAAC;EACD,OAAO;CACT;CACA,OAAO;EACL,GAAG,KAAK;GAAE,OAAO;GAAqB,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;EAAE,CAAC;EACxF,aAAa;CACf;CACA,MAAM;EACJ,GAAG,KAAK;GAAE,OAAO;GAAwB,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;EAAE,CAAC;EAC3F,aAAa;CACf;CACA,QAAQ;EACN,GAAG,KAAK;GAAE,OAAO;GAAwB,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;EAAE,CAAC;EAC3F,aAAa;CACf;CACA,WAAW;EACT,GAAG,WAAW,aAAa;GACzB,YAAY;GACZ,aAAa;GACb,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;EAClD,CAAC;EACD,OAAO;CACT;CACA,UAAU;EACR,GAAG,KAAK;GAAE,OAAO;GAA0B,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;EAAE,CAAC;EAC5F,aAAa;CACf;AACF;;;ACbA,MAAa,mBAAmB;;AAEhC,MAAa,uBAAuB;AACpC,MAAa,iBAAiB;;AAE9B,MAAa,iBAAiB;;AAE9B,MAAa,0BAA0B,GAAG,eAAe;;AAEzD,MAAa,wBAAwB;;AAIrC,MAAa,oBAAoB;AAOvB,IAAI,IAAI,cAAc,CAAC,CAAC;;;;;;;AASlC,MAAa,qBAAqB;CAChC,6BAA6B;CAC7B,WAAW,EAAE,SAAS,MAAM;CAC5B,UAAU,EAAE,SAAS,MAAM;AAC7B;AAWA,MAAM,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;AAElE,MAAM,eAAe,SACnB,IAAI,kCAAkC;CACpC,SAAS,qBAAqB;CAC9B,WAAW;AACb,CAAC;AAEH,SAAS,WAAW,QAAiC;CACnD,IAAI,OAAO,WAAW,UAAU,OAAO;CACvC,MAAM,EAAE,YAAY;CACpB,IAAI,OAAO,YAAY,UAAU,OAAO;CACxC,OAAO,QACJ,KAAK,SAAS;EACb,IAAI,KAAK,SAAS,QAChB,MAAM,IAAI,kCAAkC;GAC1C,SAAS,oDAAoD,KAAK,KAAK;GACvE,WAAW;EACb,CAAC;EAEH,OAAO,KAAK;CACd,CAAC,CAAC,CACD,KAAK,IAAI;AACd;;AAKA,SAAS,KAAK,OAA0B;CACtC,IAAI,OAAO,UAAU,UAAU,OAAO,KAAK,UAAU,KAAK;CAC1D,IAAI,OAAO,UAAU,UAAU,OAAO,OAAO,KAAK;CAClD,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;CAEhE,OAAO,KADS,OAAO,QAAQ,KACb,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;AACtF;;;;;AAMA,SAAgB,iBAAiB,SAEtB;CACT,MAAM,SAAoC;EACxC,GAAG;EACH,gBAAgB;EAChB,iBAAiB,GACd,oBAAoB;GACnB,MAAM;GACN,UAAU;GACV,SAAS;GACT,UAAU;GACV,qBAAqB;EACvB,EACF;EACA,GAAI,QAAQ,cAAc,OAAO,KAAK,QAAQ,UAAU,CAAC,CAAC,SACtD,EAAE,aAAa,QAAQ,WAAwC,IAC/D,CAAC;CACP;CACA,OAAO,GAAG,OAAO,QAAQ,MAAM,CAAC,CAC7B,KAAK,CAAC,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,CACpD,KAAK,IAAI,EAAE;AAChB;AAEA,MAAM,SAAS,WACb,gBAAgB;CAAE,OAAO,SAAS,QAAQ,MAA2B;CAAG,WAAW;AAAS,CAAC;AAE/F,eAAe,KAAK,QAAoC,MAAM,KAAuB;CACnF,IAAI,OAAO;CACX,WAAW,MAAM,QAAQ,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,KAAK,IAAI,MAAM,CAAC,GAAG;CAC5E,OAAO;AACT;AAEA,MAAM,aACJ,YAGA,+BAA+B,WAAW,OAAO,QAAQ,8BAA8B;;;;;;;AAQzF,SAAgB,kBAAkB,SAMvB;CACT,OAAO;EACL,MAAM,WAAW,QAAQ,OAAO,EAAE;EAClC,QAAQ,WAAW,QAAQ,MAAM,EAAE;EACnC;EACA,GAAI,QAAQ,QAAQ,CAAC,WAAW,WAAW,QAAQ,KAAK,GAAG,IAAI,CAAC;EAChE,GAAI,QAAQ,WAAW,CAAC,UAAU,WAAW,QAAQ,QAAQ,GAAG,IAAI,CAAC;EACrE,aAAa,WAAW,QAAQ,UAAU,EAAE;CAC9C,CAAC,CAAC,KAAK,GAAG;AACZ;;;;;;;AAQA,SAAgB,YAAY,UAA8D;CACxF,MAAM,MAAM,mCAAmC,SAAS,IAAI,IACxD,SAAS,KAAK,wBACd,KAAA;CACJ,IAAI,CAAC,KACH,MAAM,IAAI,MACR,iDAAiD,qBAAqB,qBACxE;CAEF,OAAO;EACL,sBAAsB;EACtB,WAAW;EACX,cAAc;EACd,sBAAsB;EACtB,cAAc;EACd,UAAU,YAAY,aAAa,UAAU,KAAK,OAAO;CAC3D;AACF;AAEA,eAAe,aACb,UACA,KACA,SAC2B;CAC3B,MAAM,EAAE,gBAAgB,SAAS,gBAAgB,gBAAgB;CACjE,IAAI,aAAa;CACjB,IAAI,UAAU,OAAO,GAAG;EACtB,aAAa,qCAAqC;EAClD,MAAM,QAAQ,0BAA0B,CACtC,sCAAsC;GACpC,UAAU;GACV,cAAc,EAAE,eAAe,UAAU,aAAa;GACtD,kBAAkB;IAAE,GAAG,QAAQ;IAAS,eAAe,UAAU;GAAM;EACzE,CAAC,CACH,CAAC;CACH,OAAO,IAAI,SAAS,4BAClB,MAAM,IAAI,MACR,4BAA4B,qBAAqB,yGACnD;CAGF,MAAM,OAAO,MAAM,sBAAsB;EAAE;EAAS;CAAY,CAAC;CACjE,MAAM,WAAW,0BAA0B,EAAE,gBAAgB,KAAK,CAAC;CACnE,MAAM,SAAS,MAAM,KAAK,UAAU,qBAAA,KAAkC;CACtE,MAAM,UAAU,gCAAgC;EAC9C,gBAAgB;EAChB,WAAW,QAAQ;CACrB,CAAC;CACD,MAAM,QAAQ,cAAc;EAC1B,MAAM,MAAM,KAAK,MAAM,gBAAgB,aAAa;EACpD,SAAS,iBAAiB,SAAS,aAAa,EAAE,YAAY,SAAS,WAAW,IAAI,CAAC,CAAC;EACxF;CACF,CAAC;CACD,MAAM,UAAU,cAAc,UAAU,QAAQ,YAAY,IAAI;CAChE,IAAI,WAAW,QAAQ,UAAU,QAAQ,KAAK,WAAW,KAAA;CACzD,MAAM,MAAM,GAAG,uBAAuB,WAAW;CACjD,IAAI,QAAQ;CACZ,IAAI;CACJ,IAAI,QAAQ;CAEZ,MAAM,eAA4C;EAChD,MAAM;EACN,WAAW;EACX,sBAAsB;EACtB,MAAM,WAAW,EAAE,SAAS,IAAI,CAAC;CACnC;CACA,MAAM,OAAO,YAAY;EACvB,QAAQ;EACR,MAAM,SAAS,KAAK;EACpB,UAAU,KAAA;CACZ;CAEA,OAAO;EACL,WAAW,QAAQ;EACnB,UAAU,QAAQ,eAAe,KAAA;EACjC,MAAM,aAAa,MAAuC;GACxD,IAAI,OAAO,MAAM,IAAI,MAAM,8BAA8B;GACzD,IAAI,KAAK,MAAM,SAAS,GAAG,MAAM,YAAY,qBAAqB;GAClE,MAAM,IAAI,EAAE;GACZ,MAAM,YAAY;IAChB;IACA,UAAU;IACV,WAAW;IACX,QAAQ,KAAK;IACb,GAAI,KAAK,cAAc,EAAE,aAAa,KAAK,YAAY,IAAI,CAAC;GAC9D,CAAC;GACD,MAAM,kBAAkB;IACtB;IACA,UAAU;IACV,kBAAkB;IAClB,GAAI,KAAK,iBAAiB,KAAA,IAAY,EAAE,cAAc,KAAK,aAAa,IAAI,CAAC;IAC7E,GAAI,KAAK,cAAc,EAAE,aAAa,KAAK,YAAY,IAAI,CAAC;GAC9D,CAAC;GACD,MAAM,aAAa,MAAM,KAAK,SAAS,UAAU,EAAE,KAAK;GACxD,MAAM,QAAQ,cAAc;IAC1B,MAAM;IACN,SAAS,WAAW,KAAK,MAAM;IAC/B,aAAa,KAAK;GACpB,CAAC;GACD,MAAM,UAAU,kBAAkB;IAChC;IACA,SAAS;IACT;IACA,OAAO,KAAK;IACZ;GACF,CAAC;GACD,MAAM,aAAa,IAAI,sBAAsB,EAAE,SAAS,eAAe,CAAC;GACxE,MAAM,QAAQ,UAAiC;IAC7C,KAAK,MAAM,QAAQ,OAAO,KAAK,KAAK,IAAI;GAC1C;GACA,MAAM,OAAO,MAAM,QAAQ,MAAM;IAC/B;IACA,kBAAkB;IAClB;IACA,GAAI,KAAK,cAAc,EAAE,aAAa,KAAK,YAAY,IAAI,CAAC;GAC9D,CAAC;GACD,UAAU;GACV,MAAM,gBAAgB,KAAK,KAAK,KAAK;GACrC,KAAK,aAAa,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;GAmBnE,OAAO;IACL,wBAAwB,QAAQ,OAAO,YAAY,qBAAqB,CAAC;IACzE,OApBY,YAAY;KACxB,MAAM,SAAS,KAAK,KAAK,MAAM,CAAC,CAAC,YAAY,EAAE;KAC/C,IAAI;MACF,WAAW,MAAM,QAAQ,MAAM,KAAK,MAAM,GAAG,KAAK,WAAW,KAAK,IAAI,CAAC;MACvE,WAAW,WAAW,YAAY;MAClC,MAAM,EAAE,aAAa,MAAM,KAAK,KAAK;MACrC,KACE,WAAW,IAAI;OACb;OACA,QAAQ,MAAM;OACd,SAAS,KAAK,aAAa,YAAY;MACzC,CAAC,CACH;KACF,UAAU;MACR,KAAK,aAAa,oBAAoB,SAAS,OAAO;MACtD,IAAI,YAAY,MAAM,UAAU,KAAA;KAClC;IACF,EAAA,CAGK;GACL;EACF;EACA,iBAAiB,QAAQ,OAAO,YAAY,mBAAmB,CAAC;EAChE,sBAAsB,QAAQ,OAAO,YAAY,mBAAmB,CAAC;EACrE,qBAAqB,QAAQ,OAAO,YAAY,iBAAiB,CAAC;EAClE,MAAM,WAAW;GACf,MAAM,KAAK;GACX,OAAO,MAAM;EACf;EACA,MAAM,SAAS;GACb,MAAM,KAAK;GACX,OAAO,MAAM;EACf;EACA,WAAW;CACb;AACF"}
@@ -0,0 +1,3 @@
1
+ import "./state-DZ7eqb1F.js";
2
+ import { c as createPi } from "./src-BQyMiWri.js";
3
+ export { createPi };