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.
- package/LICENSE +202 -0
- package/THIRD_PARTY_NOTICES.md +2160 -0
- package/assets/package.json +9 -0
- package/assets/pnpm-lock.yaml +1336 -0
- package/dist/agent-DVHkx8aT.js +532 -0
- package/dist/agent-DVHkx8aT.js.map +1 -0
- package/dist/analysis-CxSCt1YY.js +16 -0
- package/dist/analysis-CxSCt1YY.js.map +1 -0
- package/dist/assemble-B-nmz8oH.js +695 -0
- package/dist/assemble-B-nmz8oH.js.map +1 -0
- package/dist/assemble-CmRVDZ2Q.js +2 -0
- package/dist/attempt-BdRQ9jKX.js +176 -0
- package/dist/attempt-BdRQ9jKX.js.map +1 -0
- package/dist/bridge/index.mjs +1911 -0
- package/dist/bridge/package.json +13 -0
- package/dist/bridge/pnpm-lock.yaml +1041 -0
- package/dist/bridge/pnpm-workspace.yaml +2 -0
- package/dist/budget-DBUrH4jX.js +8 -0
- package/dist/budget-DBUrH4jX.js.map +1 -0
- package/dist/cli--CQ3Iy9q.js +1865 -0
- package/dist/cli--CQ3Iy9q.js.map +1 -0
- package/dist/cli-spec-DKAu09Gi.js +478 -0
- package/dist/cli-spec-DKAu09Gi.js.map +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -0
- package/dist/colors-QV9dFVhN.js +34 -0
- package/dist/colors-QV9dFVhN.js.map +1 -0
- package/dist/command-BSJzHMtP.js +280 -0
- package/dist/command-BSJzHMtP.js.map +1 -0
- package/dist/command-CEm8PZ1N.js +1043 -0
- package/dist/command-CEm8PZ1N.js.map +1 -0
- package/dist/command-D-jnQWVG.js +673 -0
- package/dist/command-D-jnQWVG.js.map +1 -0
- package/dist/command-DQAvbG7d.js +432 -0
- package/dist/command-DQAvbG7d.js.map +1 -0
- package/dist/commands-A4udfyKZ.js +2 -0
- package/dist/commands-CF8mOfiu.js +207 -0
- package/dist/commands-CF8mOfiu.js.map +1 -0
- package/dist/config-Cuj0kVYj.js +415 -0
- package/dist/config-Cuj0kVYj.js.map +1 -0
- package/dist/context-loi9OCZv.js +106 -0
- package/dist/context-loi9OCZv.js.map +1 -0
- package/dist/core-tLN-z1Be.js +96 -0
- package/dist/core-tLN-z1Be.js.map +1 -0
- package/dist/db-Cjj2ZsfQ.js +2 -0
- package/dist/db-DxDzMhtB.js +827 -0
- package/dist/db-DxDzMhtB.js.map +1 -0
- package/dist/debug-D24NOQH1.js +89 -0
- package/dist/debug-D24NOQH1.js.map +1 -0
- package/dist/debug-SEmW4w8f.js +2 -0
- package/dist/dist-BZXYHN2X.js +1673 -0
- package/dist/dist-BZXYHN2X.js.map +1 -0
- package/dist/docker-DQDZWXF9.js +20 -0
- package/dist/docker-DQDZWXF9.js.map +1 -0
- package/dist/docker-DnWAVdEm.js +2 -0
- package/dist/docker-oSbCExHL.js +153 -0
- package/dist/docker-oSbCExHL.js.map +1 -0
- package/dist/doctor-CxlH1pDM.js +525 -0
- package/dist/doctor-CxlH1pDM.js.map +1 -0
- package/dist/egress-73SQfKdx.js +619 -0
- package/dist/egress-73SQfKdx.js.map +1 -0
- package/dist/env-BQqj93gu.js +21 -0
- package/dist/env-BQqj93gu.js.map +1 -0
- package/dist/environment-Mz7wvrtD.js +552 -0
- package/dist/environment-Mz7wvrtD.js.map +1 -0
- package/dist/errors-C9w_ud7g.js +160 -0
- package/dist/errors-C9w_ud7g.js.map +1 -0
- package/dist/errors-CSxfJ4qu.js +11 -0
- package/dist/errors-CSxfJ4qu.js.map +1 -0
- package/dist/files--6CEUXm7.js +2 -0
- package/dist/files-BLlrhU4-.js +62 -0
- package/dist/files-BLlrhU4-.js.map +1 -0
- package/dist/files-Bd25OAQH.js +2 -0
- package/dist/files-BvHCFWgD.js +2 -0
- package/dist/files-D2-qn_Dl.js +275 -0
- package/dist/files-D2-qn_Dl.js.map +1 -0
- package/dist/files-bF2fPuT9.js +99 -0
- package/dist/files-bF2fPuT9.js.map +1 -0
- package/dist/git-D6hMeieS.js +44 -0
- package/dist/git-D6hMeieS.js.map +1 -0
- package/dist/harness-ls5aX1UO.js +131 -0
- package/dist/harness-ls5aX1UO.js.map +1 -0
- package/dist/harness.d.ts +74 -0
- package/dist/harness.js +2 -0
- package/dist/header-DzFDoMCI.js +78 -0
- package/dist/header-DzFDoMCI.js.map +1 -0
- package/dist/ids-Bp6ut7ZD.js +49 -0
- package/dist/ids-Bp6ut7ZD.js.map +1 -0
- package/dist/images-Cc1-coFc.js +286 -0
- package/dist/images-Cc1-coFc.js.map +1 -0
- package/dist/index.d.ts +97 -0
- package/dist/index.js +1959 -0
- package/dist/index.js.map +1 -0
- package/dist/init-CFljS8BJ.js +344 -0
- package/dist/init-CFljS8BJ.js.map +1 -0
- package/dist/init-z2ZPn9Tj.js +2 -0
- package/dist/invocations-rXktgSAn.js +157 -0
- package/dist/invocations-rXktgSAn.js.map +1 -0
- package/dist/jiti-BOLXpKyG.js +46 -0
- package/dist/jiti-BOLXpKyG.js.map +1 -0
- package/dist/judge-D8Uf4dA9.js +146 -0
- package/dist/judge-D8Uf4dA9.js.map +1 -0
- package/dist/judge.d.ts +21 -0
- package/dist/judge.js +19 -0
- package/dist/judge.js.map +1 -0
- package/dist/live-Bs3LReMV.js +98 -0
- package/dist/live-Bs3LReMV.js.map +1 -0
- package/dist/matchers-DyLvm7EG.js +374 -0
- package/dist/matchers-DyLvm7EG.js.map +1 -0
- package/dist/model-BdO79gWz.js +44 -0
- package/dist/model-BdO79gWz.js.map +1 -0
- package/dist/model-CDL98xue.js +725 -0
- package/dist/model-CDL98xue.js.map +1 -0
- package/dist/model-v-0_Ik7S.js +2 -0
- package/dist/node-kG64XxdE.js +506 -0
- package/dist/node-kG64XxdE.js.map +1 -0
- package/dist/opencode-providers-DZuD_oYt.js +3149 -0
- package/dist/opencode-providers-DZuD_oYt.js.map +1 -0
- package/dist/options-CAQhu--C.js +452 -0
- package/dist/options-CAQhu--C.js.map +1 -0
- package/dist/patch-BkKje4cp.js +69 -0
- package/dist/patch-BkKje4cp.js.map +1 -0
- package/dist/paths-CBvm6pap.js +72 -0
- package/dist/paths-CBvm6pap.js.map +1 -0
- package/dist/plan-gwk6dJ8c.js +237 -0
- package/dist/plan-gwk6dJ8c.js.map +1 -0
- package/dist/preflight-BtubXKQ8.js +2 -0
- package/dist/preflight-BypZMNBG.js +185 -0
- package/dist/preflight-BypZMNBG.js.map +1 -0
- package/dist/prepare-Cwv0bHs_.js +3 -0
- package/dist/prepare-D6Uzcubb.js +213 -0
- package/dist/prepare-D6Uzcubb.js.map +1 -0
- package/dist/provenance-Dfb8YY5Y.js +129 -0
- package/dist/provenance-Dfb8YY5Y.js.map +1 -0
- package/dist/provider-BDbNOQhQ.js +2 -0
- package/dist/provider-CmAYTQQs.js +14 -0
- package/dist/provider-CmAYTQQs.js.map +1 -0
- package/dist/providers-2p3ylMHI.js +107 -0
- package/dist/providers-2p3ylMHI.js.map +1 -0
- package/dist/providers-BUOxitcT.js +2 -0
- package/dist/query-CFATHZmV.js +91 -0
- package/dist/query-CFATHZmV.js.map +1 -0
- package/dist/query-DR4m6CXf.js +2 -0
- package/dist/record-DQ8wzyco.js +99 -0
- package/dist/record-DQ8wzyco.js.map +1 -0
- package/dist/redact-C4fL_bZP.js +167 -0
- package/dist/redact-C4fL_bZP.js.map +1 -0
- package/dist/results-CeXb8Wde.js +37 -0
- package/dist/results-CeXb8Wde.js.map +1 -0
- package/dist/root-CFDjpWuc.js +110 -0
- package/dist/root-CFDjpWuc.js.map +1 -0
- package/dist/sandbox-By2gkdkC.js +133 -0
- package/dist/sandbox-By2gkdkC.js.map +1 -0
- package/dist/sandbox.d.ts +41 -0
- package/dist/sandbox.js +2 -0
- package/dist/server-Bi61uiY0.js +350 -0
- package/dist/server-Bi61uiY0.js.map +1 -0
- package/dist/server-CsSBL8NC.js +2 -0
- package/dist/source-BXzrmof5.js +2 -0
- package/dist/source-Bsfa3LZH.js +40 -0
- package/dist/source-Bsfa3LZH.js.map +1 -0
- package/dist/src-55j1zNHH.js +3 -0
- package/dist/src-AEwxd1UP.js +602 -0
- package/dist/src-AEwxd1UP.js.map +1 -0
- package/dist/src-BDwSuyIo.js +3 -0
- package/dist/src-BQyMiWri.js +490 -0
- package/dist/src-BQyMiWri.js.map +1 -0
- package/dist/src-C-LHyTSV.js +3 -0
- package/dist/src-Cmp-7YrD.js +1136 -0
- package/dist/src-Cmp-7YrD.js.map +1 -0
- package/dist/src-D0RdqpNb.js +252 -0
- package/dist/src-D0RdqpNb.js.map +1 -0
- package/dist/src-D8KYzxBX.js +793 -0
- package/dist/src-D8KYzxBX.js.map +1 -0
- package/dist/src-DEgff9Z7.js +4 -0
- package/dist/src-DXx_29pq.js +567 -0
- package/dist/src-DXx_29pq.js.map +1 -0
- package/dist/src-DwwiVLqv.js +2937 -0
- package/dist/src-DwwiVLqv.js.map +1 -0
- package/dist/src-N7E_mfcZ.js +2 -0
- package/dist/src-W9g-y5X5.js +3 -0
- package/dist/src-daS0wKH2.js +3 -0
- package/dist/state-Cyw3QTsN.js +2 -0
- package/dist/state-DZ7eqb1F.js +167 -0
- package/dist/state-DZ7eqb1F.js.map +1 -0
- package/dist/stats-BNAHlNMD.js +114 -0
- package/dist/stats-BNAHlNMD.js.map +1 -0
- package/dist/studio-app/assets/index-D6XyfFSH.js +58 -0
- package/dist/studio-app/assets/index-xwzWdcE_.css +2 -0
- package/dist/studio-app/favicon.svg +1 -0
- package/dist/studio-app/index.html +15 -0
- package/dist/summary-D7Ttky0z.js +166 -0
- package/dist/summary-D7Ttky0z.js.map +1 -0
- package/dist/text-gEcKjAyp.js +29 -0
- package/dist/text-gEcKjAyp.js.map +1 -0
- package/dist/types-C5vI3g1C.js +9 -0
- package/dist/types-C5vI3g1C.js.map +1 -0
- package/dist/types-DLec-6Cx.d.ts +1535 -0
- package/dist/usage-DsYUqIUM.js +24 -0
- package/dist/usage-DsYUqIUM.js.map +1 -0
- package/dist/view/index.d.ts +645 -0
- package/dist/view/index.js +8 -0
- package/dist/views-BrHOv6wg.js +220 -0
- package/dist/views-BrHOv6wg.js.map +1 -0
- package/dist/views-CwCWLWqo.js +3 -0
- package/dist/worker-entry-DnYkANPG.js +506 -0
- package/dist/worker-entry-DnYkANPG.js.map +1 -0
- package/dist/workspace-C2S0Z6gl.js +327 -0
- package/dist/workspace-C2S0Z6gl.js.map +1 -0
- package/dist/workspace-CyoXG6CY.js +2 -0
- package/docker/Dockerfile +19 -0
- package/package.json +79 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src-D8KYzxBX.js","names":[],"sources":["../../harness-antigravity/src/antigravity-auth.ts","../../harness-antigravity/src/antigravity-bootstrap.ts","../../harness-antigravity/src/antigravity-command.ts","../../harness-antigravity/src/antigravity-tools.ts","../../harness-antigravity/src/antigravity-stream.ts","../../harness-antigravity/src/antigravity-harness.ts","../../harness-antigravity/src/index.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,567 @@
|
|
|
1
|
+
import "./root-CFDjpWuc.js";
|
|
2
|
+
import { c as splitModel, o as providerTransformations, s as resolveOpenCodeProvider, t as openCodeProvider } from "./opencode-providers-DZuD_oYt.js";
|
|
3
|
+
import { commonTool } from "@ai-sdk/harness";
|
|
4
|
+
import { createCredentialRequestTransformation, isHarnessAuthenticationEnvironment, resolveSandboxHomeDir, shellQuote } from "@ai-sdk/harness/utils";
|
|
5
|
+
import { tool } from "@ai-sdk/provider-utils";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { createACP } from "@ai-sdk/harness-acp";
|
|
8
|
+
//#region ../harness-opencode/src/opencode-gate.ts
|
|
9
|
+
/**
|
|
10
|
+
* The gate's name, `executable` for `harness-acp`, which takes a bare name and runs
|
|
11
|
+
* `<implementation>/node_modules/.bin/<executable>`: the gate goes beside OpenCode's own bin.
|
|
12
|
+
*/
|
|
13
|
+
const OPENCODE_GATE_EXECUTABLE = "reeval-opencode-gate";
|
|
14
|
+
/** Where the gate goes, under the sandbox home. */
|
|
15
|
+
const OPENCODE_GATE_PATH = `.ai-sdk-harness/.harness-bootstrap/opencode/implementation/node_modules/.bin/${OPENCODE_GATE_EXECUTABLE}`;
|
|
16
|
+
/** The variable that names the MCP servers the gate waits for, as a JSON list. */
|
|
17
|
+
const OPENCODE_GATE_SERVERS_ENV = "REEVAL_OPENCODE_MCP_SERVERS";
|
|
18
|
+
/**
|
|
19
|
+
* The gate `harness-acp` runs in front of `opencode acp`. OpenCode 2.0.18 connects the MCP servers
|
|
20
|
+
* in its config in the background once `session/new` has returned, and a prompt sent before
|
|
21
|
+
* they're connected runs its first step without their tools. The gate holds the first
|
|
22
|
+
* `session/prompt` (and what follows it) until each server named in
|
|
23
|
+
* `REEVAL_OPENCODE_MCP_SERVERS` has logged `mcp connected` or `mcp connect failed` (and
|
|
24
|
+
* {@link OPENCODE_GATE_SETTLE_MS} has passed), or the timeout passes. With servers to wait for, OpenCode runs with its info logs on stderr, which the gate
|
|
25
|
+
* reads and keeps; anything else on stderr passes through.
|
|
26
|
+
*/
|
|
27
|
+
const OPENCODE_GATE = `#!/usr/bin/env node
|
|
28
|
+
import { spawn } from 'node:child_process'
|
|
29
|
+
import { dirname, join } from 'node:path'
|
|
30
|
+
import { createInterface } from 'node:readline'
|
|
31
|
+
import { fileURLToPath } from 'node:url'
|
|
32
|
+
|
|
33
|
+
const here = dirname(fileURLToPath(import.meta.url))
|
|
34
|
+
const pending = new Set(JSON.parse(process.env.${OPENCODE_GATE_SERVERS_ENV} || '[]'))
|
|
35
|
+
const logs = pending.size > 0 ? ['--print-logs', '--log-level', 'info'] : []
|
|
36
|
+
const child = spawn(join(here, 'opencode'), ['acp', ...logs], {
|
|
37
|
+
stdio: ['pipe', 'inherit', 'pipe'],
|
|
38
|
+
})
|
|
39
|
+
let held = null
|
|
40
|
+
let ended = false
|
|
41
|
+
const release = () => {
|
|
42
|
+
if (held === null) return
|
|
43
|
+
for (const line of held) child.stdin.write(line + '\\n')
|
|
44
|
+
held = null
|
|
45
|
+
if (ended) child.stdin.end()
|
|
46
|
+
}
|
|
47
|
+
const timer = setTimeout(() => {
|
|
48
|
+
pending.clear()
|
|
49
|
+
release()
|
|
50
|
+
}, 30000)
|
|
51
|
+
timer.unref()
|
|
52
|
+
createInterface({ input: child.stderr }).on('line', (line) => {
|
|
53
|
+
if (!line.startsWith('timestamp=')) return process.stderr.write(line + '\\n')
|
|
54
|
+
const event = /message="mcp (connected|connect failed)"/.test(line)
|
|
55
|
+
const server = /\\bserver=(?:"((?:[^"\\\\]|\\\\.)*)"|(\\S+))/.exec(line)
|
|
56
|
+
if (!event || !server) return
|
|
57
|
+
pending.delete(server[1] ?? server[2])
|
|
58
|
+
if (pending.size === 0) setTimeout(release, 250)
|
|
59
|
+
})
|
|
60
|
+
createInterface({ input: process.stdin }).on('line', (line) => {
|
|
61
|
+
if (held === null && pending.size > 0 && /"method"\\s*:\\s*"session\\/prompt"/.test(line)) held = []
|
|
62
|
+
if (held !== null) held.push(line)
|
|
63
|
+
else child.stdin.write(line + '\\n')
|
|
64
|
+
}).on('close', () => {
|
|
65
|
+
ended = true
|
|
66
|
+
if (held === null) child.stdin.end()
|
|
67
|
+
})
|
|
68
|
+
for (const signal of ['SIGTERM', 'SIGINT', 'SIGHUP']) process.on(signal, () => child.kill(signal))
|
|
69
|
+
child.on('exit', (code, signal) => process.exit(code ?? (signal ? 1 : 0)))
|
|
70
|
+
`;
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region ../harness-opencode/src/opencode-install.ts
|
|
73
|
+
const OPENCODE_PACKAGE_JSON = `{
|
|
74
|
+
"name": "harness-acp-implementation",
|
|
75
|
+
"version": "0.0.0",
|
|
76
|
+
"private": true,
|
|
77
|
+
"type": "module",
|
|
78
|
+
"dependencies": {
|
|
79
|
+
"@opencode/cli": "2.0.18"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
const OPENCODE_PNPM_WORKSPACE = `allowBuilds:
|
|
84
|
+
'@opencode/cli@2.0.18': true
|
|
85
|
+
ignoredOptionalDependencies:
|
|
86
|
+
- '@opencode/cli-linux-arm64-musl'
|
|
87
|
+
- '@opencode/cli-linux-x64-baseline-musl'
|
|
88
|
+
- '@opencode/cli-linux-x64-musl'
|
|
89
|
+
`;
|
|
90
|
+
const OPENCODE_PNPM_LOCK = `lockfileVersion: '9.0'
|
|
91
|
+
|
|
92
|
+
settings:
|
|
93
|
+
autoInstallPeers: true
|
|
94
|
+
excludeLinksFromLockfile: false
|
|
95
|
+
|
|
96
|
+
importers:
|
|
97
|
+
|
|
98
|
+
.:
|
|
99
|
+
dependencies:
|
|
100
|
+
'@opencode/cli':
|
|
101
|
+
specifier: 2.0.18
|
|
102
|
+
version: 2.0.18
|
|
103
|
+
|
|
104
|
+
packages:
|
|
105
|
+
|
|
106
|
+
'@opencode/cli-darwin-arm64@2.0.18':
|
|
107
|
+
resolution: {integrity: sha512-GRJMkkyQKDPIJbYr2WtFTgK1Vb1p/4xrqxgXA/TLyJ1Tn5tK5hNOtbslUZgsktrEQD6TeT5bVZcjRLC41n+d/A==}
|
|
108
|
+
cpu: [arm64]
|
|
109
|
+
os: [darwin]
|
|
110
|
+
|
|
111
|
+
'@opencode/cli-darwin-x64-baseline@2.0.18':
|
|
112
|
+
resolution: {integrity: sha512-OPKQFskBfK8nKSOxqX4Vd3OtTbEDtgCSOPLi+nnGxZI6WJ20Rt2lOI4NVpwxxaX8tPAaiZB/gYEqmkmGjNsYBQ==}
|
|
113
|
+
cpu: [x64]
|
|
114
|
+
os: [darwin]
|
|
115
|
+
|
|
116
|
+
'@opencode/cli-darwin-x64@2.0.18':
|
|
117
|
+
resolution: {integrity: sha512-w6TKuEob/XM+KzSZmmNL69P1DMvHN4LEfE9NfMwdUj5wPLXDqzz1yLOhAYEnFYW1LBAsV5Xo1giyvtpWz5vyzg==}
|
|
118
|
+
cpu: [x64]
|
|
119
|
+
os: [darwin]
|
|
120
|
+
|
|
121
|
+
'@opencode/cli-linux-arm64@2.0.18':
|
|
122
|
+
resolution: {integrity: sha512-OjKG0staG+KRG9sNORb2vIPcfthMVk9RtCamU1vMWPquV70bQEYUM0JUT+t0A49eAc2H4lZWhqkpH2gpg87D+Q==}
|
|
123
|
+
cpu: [arm64]
|
|
124
|
+
os: [linux]
|
|
125
|
+
|
|
126
|
+
'@opencode/cli-linux-x64-baseline@2.0.18':
|
|
127
|
+
resolution: {integrity: sha512-yR7tA8ZAjUzUV3vcBIV1z/zp7KPNV55XQipP9qsQppEApyEv7/NJOIaPK8n+yFl7kogPRk1fQ0fsOW+4KO7mbQ==}
|
|
128
|
+
cpu: [x64]
|
|
129
|
+
os: [linux]
|
|
130
|
+
|
|
131
|
+
'@opencode/cli-linux-x64@2.0.18':
|
|
132
|
+
resolution: {integrity: sha512-94dH7lwB+tpmzI1/NIfzFxLBIeshZSNtyx2sskL0C0kgYjMaiVMIHvQLYIECUOWSuVz5/dH/KPUIOGn7ML311g==}
|
|
133
|
+
cpu: [x64]
|
|
134
|
+
os: [linux]
|
|
135
|
+
|
|
136
|
+
'@opencode/cli-windows-arm64@2.0.18':
|
|
137
|
+
resolution: {integrity: sha512-/ulfVQQO3Dait6USMo9rIQg6rjIK0T1NMoTKCmk1wPb6eh1PHTSvvMCm/hHYTcFJyHXWsGAYp/lpAONs90of+g==}
|
|
138
|
+
cpu: [arm64]
|
|
139
|
+
os: [win32]
|
|
140
|
+
|
|
141
|
+
'@opencode/cli-windows-x64-baseline@2.0.18':
|
|
142
|
+
resolution: {integrity: sha512-+On2KUd7GWN4NpzevZw3y/tjWvDcTXeZmg9DvquN33HO9AqEoxtKpYzcM1NjoswOA708mXH/GtaVRSyUQNIlOA==}
|
|
143
|
+
cpu: [x64]
|
|
144
|
+
os: [win32]
|
|
145
|
+
|
|
146
|
+
'@opencode/cli-windows-x64@2.0.18':
|
|
147
|
+
resolution: {integrity: sha512-QsyGVmjJcHeuaS9bTVu4iiNyZzYfnRmia0BZop9AJ6QWRPDSq17ak1XRBTGGwh6msM+Ed0y+hke3s+lT3/kD+A==}
|
|
148
|
+
cpu: [x64]
|
|
149
|
+
os: [win32]
|
|
150
|
+
|
|
151
|
+
'@opencode/cli@2.0.18':
|
|
152
|
+
resolution: {integrity: sha512-EkIxIa2goJ2v8U3Os2gpRckOIjN9gpUBXy6fyVOFbPZl71rkGpoF3NFsm4nlDiF2BgnIqcgJU5NgdV1k6/OZuw==}
|
|
153
|
+
cpu: [arm64, x64]
|
|
154
|
+
os: [darwin, linux, win32]
|
|
155
|
+
hasBin: true
|
|
156
|
+
|
|
157
|
+
ignoredOptionalDependencies:
|
|
158
|
+
- '@opencode/cli-linux-arm64-musl'
|
|
159
|
+
- '@opencode/cli-linux-x64-baseline-musl'
|
|
160
|
+
- '@opencode/cli-linux-x64-musl'
|
|
161
|
+
|
|
162
|
+
snapshots:
|
|
163
|
+
|
|
164
|
+
'@opencode/cli-darwin-arm64@2.0.18':
|
|
165
|
+
optional: true
|
|
166
|
+
|
|
167
|
+
'@opencode/cli-darwin-x64-baseline@2.0.18':
|
|
168
|
+
optional: true
|
|
169
|
+
|
|
170
|
+
'@opencode/cli-darwin-x64@2.0.18':
|
|
171
|
+
optional: true
|
|
172
|
+
|
|
173
|
+
'@opencode/cli-linux-arm64@2.0.18':
|
|
174
|
+
optional: true
|
|
175
|
+
|
|
176
|
+
'@opencode/cli-linux-x64-baseline@2.0.18':
|
|
177
|
+
optional: true
|
|
178
|
+
|
|
179
|
+
'@opencode/cli-linux-x64@2.0.18':
|
|
180
|
+
optional: true
|
|
181
|
+
|
|
182
|
+
'@opencode/cli-windows-arm64@2.0.18':
|
|
183
|
+
optional: true
|
|
184
|
+
|
|
185
|
+
'@opencode/cli-windows-x64-baseline@2.0.18':
|
|
186
|
+
optional: true
|
|
187
|
+
|
|
188
|
+
'@opencode/cli-windows-x64@2.0.18':
|
|
189
|
+
optional: true
|
|
190
|
+
|
|
191
|
+
'@opencode/cli@2.0.18':
|
|
192
|
+
optionalDependencies:
|
|
193
|
+
'@opencode/cli-darwin-arm64': 2.0.18
|
|
194
|
+
'@opencode/cli-darwin-x64': 2.0.18
|
|
195
|
+
'@opencode/cli-darwin-x64-baseline': 2.0.18
|
|
196
|
+
'@opencode/cli-linux-arm64': 2.0.18
|
|
197
|
+
'@opencode/cli-linux-x64': 2.0.18
|
|
198
|
+
'@opencode/cli-linux-x64-baseline': 2.0.18
|
|
199
|
+
'@opencode/cli-windows-arm64': 2.0.18
|
|
200
|
+
'@opencode/cli-windows-x64': 2.0.18
|
|
201
|
+
'@opencode/cli-windows-x64-baseline': 2.0.18
|
|
202
|
+
`;
|
|
203
|
+
//#endregion
|
|
204
|
+
//#region ../harness-opencode/src/opencode-tools.ts
|
|
205
|
+
const native = (title, toolUseKind) => ({
|
|
206
|
+
...tool({
|
|
207
|
+
title,
|
|
208
|
+
inputSchema: z.looseObject({})
|
|
209
|
+
}),
|
|
210
|
+
...toolUseKind ? { toolUseKind } : {}
|
|
211
|
+
});
|
|
212
|
+
const OPENCODE_BUILTIN_TOOLS = {
|
|
213
|
+
bash: {
|
|
214
|
+
...commonTool("bash", {
|
|
215
|
+
nativeName: "shell",
|
|
216
|
+
toolUseKind: "bash",
|
|
217
|
+
inputSchema: z.looseObject({
|
|
218
|
+
command: z.string(),
|
|
219
|
+
workdir: z.string().optional()
|
|
220
|
+
})
|
|
221
|
+
}),
|
|
222
|
+
title: "shell"
|
|
223
|
+
},
|
|
224
|
+
read: {
|
|
225
|
+
...tool({
|
|
226
|
+
title: "read",
|
|
227
|
+
inputSchema: z.looseObject({
|
|
228
|
+
path: z.string(),
|
|
229
|
+
offset: z.number().optional()
|
|
230
|
+
})
|
|
231
|
+
}),
|
|
232
|
+
toolUseKind: "readonly"
|
|
233
|
+
},
|
|
234
|
+
write: {
|
|
235
|
+
...tool({
|
|
236
|
+
title: "write",
|
|
237
|
+
inputSchema: z.looseObject({
|
|
238
|
+
path: z.string(),
|
|
239
|
+
content: z.string()
|
|
240
|
+
})
|
|
241
|
+
}),
|
|
242
|
+
toolUseKind: "edit"
|
|
243
|
+
},
|
|
244
|
+
edit: {
|
|
245
|
+
...tool({
|
|
246
|
+
title: "edit",
|
|
247
|
+
inputSchema: z.looseObject({
|
|
248
|
+
path: z.string(),
|
|
249
|
+
oldString: z.string(),
|
|
250
|
+
newString: z.string()
|
|
251
|
+
})
|
|
252
|
+
}),
|
|
253
|
+
toolUseKind: "edit"
|
|
254
|
+
},
|
|
255
|
+
glob: {
|
|
256
|
+
...commonTool("glob", {
|
|
257
|
+
nativeName: "glob",
|
|
258
|
+
toolUseKind: "readonly",
|
|
259
|
+
inputSchema: z.looseObject({
|
|
260
|
+
pattern: z.string(),
|
|
261
|
+
path: z.string().optional()
|
|
262
|
+
})
|
|
263
|
+
}),
|
|
264
|
+
title: "glob"
|
|
265
|
+
},
|
|
266
|
+
grep: {
|
|
267
|
+
...commonTool("grep", {
|
|
268
|
+
nativeName: "grep",
|
|
269
|
+
toolUseKind: "readonly",
|
|
270
|
+
inputSchema: z.looseObject({
|
|
271
|
+
pattern: z.string(),
|
|
272
|
+
include: z.string().optional()
|
|
273
|
+
})
|
|
274
|
+
}),
|
|
275
|
+
title: "grep"
|
|
276
|
+
},
|
|
277
|
+
webFetch: {
|
|
278
|
+
...tool({
|
|
279
|
+
title: "webfetch",
|
|
280
|
+
inputSchema: z.looseObject({ url: z.string() })
|
|
281
|
+
}),
|
|
282
|
+
nativeName: "webfetch",
|
|
283
|
+
toolUseKind: "readonly"
|
|
284
|
+
},
|
|
285
|
+
webSearch: {
|
|
286
|
+
...commonTool("webSearch", {
|
|
287
|
+
nativeName: "websearch",
|
|
288
|
+
inputSchema: z.looseObject({ query: z.string() })
|
|
289
|
+
}),
|
|
290
|
+
title: "websearch"
|
|
291
|
+
},
|
|
292
|
+
skill: native("skill", "readonly"),
|
|
293
|
+
subagent: native("subagent"),
|
|
294
|
+
execute: native("execute")
|
|
295
|
+
};
|
|
296
|
+
//#endregion
|
|
297
|
+
//#region ../harness-opencode/src/opencode-stream.ts
|
|
298
|
+
/**
|
|
299
|
+
* The builtin's key for each name OpenCode gives its tools. `patch`, the edit tool OpenCode gives
|
|
300
|
+
* GPT models in place of `edit`, reports the files it changed as `edit` does, so it's an `edit`.
|
|
301
|
+
*/
|
|
302
|
+
const BUILTIN_BY_NATIVE = new Map([...Object.entries(OPENCODE_BUILTIN_TOOLS).map(([key, t]) => ["nativeName" in t && typeof t.nativeName === "string" ? t.nativeName : key, key]), ["patch", "edit"]]);
|
|
303
|
+
const NO_USAGE = {
|
|
304
|
+
inputTokens: {
|
|
305
|
+
total: void 0,
|
|
306
|
+
noCache: void 0,
|
|
307
|
+
cacheRead: void 0,
|
|
308
|
+
cacheWrite: void 0
|
|
309
|
+
},
|
|
310
|
+
outputTokens: {
|
|
311
|
+
total: void 0,
|
|
312
|
+
text: void 0,
|
|
313
|
+
reasoning: void 0
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
const record = (value) => typeof value === "object" && value !== null ? value : {};
|
|
317
|
+
/** OpenCode's name for an MCP server in its tools' names. */
|
|
318
|
+
const namespaceOf = (server) => server.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
319
|
+
/** The text items of an ACP tool call's `content`, joined. */
|
|
320
|
+
function contentText(content) {
|
|
321
|
+
if (!Array.isArray(content)) return void 0;
|
|
322
|
+
const texts = content.flatMap((item) => {
|
|
323
|
+
const inner = record(record(item).content);
|
|
324
|
+
return record(item).type === "content" && typeof inner.text === "string" ? [inner.text] : [];
|
|
325
|
+
});
|
|
326
|
+
return texts.length ? texts.join("\n") : void 0;
|
|
327
|
+
}
|
|
328
|
+
/** A web search's results, from the `## [title](url)` heading OpenCode gives each. */
|
|
329
|
+
const searchResults = (text) => [...text.matchAll(/^## \[(.*)\]\((\S+)\)$/gm)].map(([, title, url]) => ({
|
|
330
|
+
title,
|
|
331
|
+
url
|
|
332
|
+
}));
|
|
333
|
+
/**
|
|
334
|
+
* Fixes up one OpenCode turn's parts from `@ai-sdk/harness-acp`'s bridge (a tool result's value
|
|
335
|
+
* is its `result`, a failure's marked `isError`):
|
|
336
|
+
*
|
|
337
|
+
* - A tool's output is `{ output, metadata }`: OpenCode sends the text only in the call's
|
|
338
|
+
* `content`, and `harness-acp` passes on its `rawOutput`, `{ metadata }`. A web search's also
|
|
339
|
+
* lists its `references`, `{ title, url }`.
|
|
340
|
+
* - A call it couldn't name (`acp_tool_<id>`) is named from OpenCode's first `tool_call` update,
|
|
341
|
+
* whose title is the tool's name: `shell` (its later titles are the command), `patch` (an
|
|
342
|
+
* `edit`), or `<server>_<tool>` for an MCP tool, named `mcp__<server>__<tool>`.
|
|
343
|
+
* - The `finish` part's usage is dropped: OpenCode's ACP `PromptResponse.usage` is its last model
|
|
344
|
+
* call's, not the turn's, and an undercount is worse than none. Its `usage_update` is no help:
|
|
345
|
+
* `used` is the last call's context size, and `cost` the whole session's.
|
|
346
|
+
*/
|
|
347
|
+
var OpenCodeStreamTranslator = class {
|
|
348
|
+
titles = /* @__PURE__ */ new Map();
|
|
349
|
+
texts = /* @__PURE__ */ new Map();
|
|
350
|
+
servers;
|
|
351
|
+
constructor(options = {}) {
|
|
352
|
+
this.servers = [...options.mcpServers ?? []].sort((a, b) => b.length - a.length);
|
|
353
|
+
}
|
|
354
|
+
push(part) {
|
|
355
|
+
if (part.type === "raw") {
|
|
356
|
+
this.observe(record(part.rawValue));
|
|
357
|
+
return [part];
|
|
358
|
+
}
|
|
359
|
+
if (part.type === "finish") return [{
|
|
360
|
+
...part,
|
|
361
|
+
totalUsage: NO_USAGE
|
|
362
|
+
}];
|
|
363
|
+
if (part.type !== "tool-call" && part.type !== "tool-result") return [part];
|
|
364
|
+
const id = typeof part.toolCallId === "string" ? part.toolCallId : "";
|
|
365
|
+
let out = part;
|
|
366
|
+
if (typeof part.toolName === "string" && part.toolName.startsWith("acp_tool_")) {
|
|
367
|
+
const name = this.nameFor(this.titles.get(id));
|
|
368
|
+
if (name) out = {
|
|
369
|
+
...out,
|
|
370
|
+
toolName: name
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
if (part.type !== "tool-result") return [out];
|
|
374
|
+
const text = this.texts.get(id);
|
|
375
|
+
const result = record(out.result);
|
|
376
|
+
if (text !== void 0 && typeof result.output !== "string") {
|
|
377
|
+
const references = out.toolName === "webSearch" ? { references: searchResults(text) } : {};
|
|
378
|
+
out = {
|
|
379
|
+
...out,
|
|
380
|
+
result: {
|
|
381
|
+
...result,
|
|
382
|
+
output: text,
|
|
383
|
+
...references
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
return [out];
|
|
388
|
+
}
|
|
389
|
+
observe(update) {
|
|
390
|
+
const id = update.toolCallId;
|
|
391
|
+
if (typeof id !== "string") return;
|
|
392
|
+
if (update.sessionUpdate === "tool_call" && typeof update.title === "string") this.titles.set(id, update.title);
|
|
393
|
+
if (update.sessionUpdate !== "tool_call" && update.sessionUpdate !== "tool_call_update") return;
|
|
394
|
+
const text = contentText(update.content);
|
|
395
|
+
if (text !== void 0) this.texts.set(id, text);
|
|
396
|
+
}
|
|
397
|
+
nameFor(title) {
|
|
398
|
+
if (!title) return void 0;
|
|
399
|
+
const builtin = BUILTIN_BY_NATIVE.get(title);
|
|
400
|
+
if (builtin) return builtin;
|
|
401
|
+
const server = this.servers.find((s) => title.startsWith(`${namespaceOf(s)}_`));
|
|
402
|
+
return server ? `mcp__${server}__${title.slice(namespaceOf(server).length + 1)}` : void 0;
|
|
403
|
+
}
|
|
404
|
+
};
|
|
405
|
+
//#endregion
|
|
406
|
+
//#region ../harness-opencode/src/opencode-harness.ts
|
|
407
|
+
const OPENCODE_HARNESS_ID = "opencode";
|
|
408
|
+
/** Where harness-placed skills go, under the sandbox home: OpenCode's own global directory. */
|
|
409
|
+
const OPENCODE_HOME_SKILLS_DIR = ".config/opencode/skills";
|
|
410
|
+
/**
|
|
411
|
+
* The tools OpenCode offers that can't work in an eval, which the config turns off: `question`
|
|
412
|
+
* waits for a person to answer, and `browser` drives a desktop browser.
|
|
413
|
+
*/
|
|
414
|
+
const OPENCODE_DENIED_TOOLS = ["question", "browser"];
|
|
415
|
+
/**
|
|
416
|
+
* The search service `websearch` uses: Exa's hosted MCP server, keyless. Without a provider in
|
|
417
|
+
* the config, the tool asks the user to pick one, which in an eval ends "Web search cancelled".
|
|
418
|
+
*/
|
|
419
|
+
const OPENCODE_WEB_SEARCH = {
|
|
420
|
+
provider: "exa",
|
|
421
|
+
host: "mcp.exa.ai"
|
|
422
|
+
};
|
|
423
|
+
/**
|
|
424
|
+
* The config OpenCode runs with, as `OPENCODE_CONFIG_CONTENT` (2.0.18 no longer reads the
|
|
425
|
+
* `OPENCODE_DISABLE_*` variables for these): no self-update or share links,
|
|
426
|
+
* {@link OPENCODE_DENIED_TOOLS} off, web search on {@link OPENCODE_WEB_SEARCH},
|
|
427
|
+
* session titles on the run's own model (OpenCode's default is a second, small one), the
|
|
428
|
+
* provider's model calls over HTTP, and the MCP servers. It loads after an eval's own
|
|
429
|
+
* `opencode.json(c)`: a key both set is reeval's, objects merge (MCP servers by name), and permission
|
|
430
|
+
* rules append to the eval's.
|
|
431
|
+
*/
|
|
432
|
+
function openCodeConfig(options = {}) {
|
|
433
|
+
const servers = Object.entries(options.mcpServers ?? {});
|
|
434
|
+
const provider = options.model ? splitModel(options.model)?.provider : void 0;
|
|
435
|
+
return {
|
|
436
|
+
update: "disable",
|
|
437
|
+
share: "disabled",
|
|
438
|
+
permissions: OPENCODE_DENIED_TOOLS.map((action) => ({
|
|
439
|
+
action,
|
|
440
|
+
resource: "*",
|
|
441
|
+
effect: "deny"
|
|
442
|
+
})),
|
|
443
|
+
websearch: { provider: OPENCODE_WEB_SEARCH.provider },
|
|
444
|
+
...options.model ? { agents: { title: { model: options.model } } } : {},
|
|
445
|
+
...provider ? { providers: { [provider]: { settings: { transport: "http" } } } } : {},
|
|
446
|
+
...servers.length ? { mcp: { servers: Object.fromEntries(servers.map(([name, server]) => [name, {
|
|
447
|
+
...server,
|
|
448
|
+
codemode: false
|
|
449
|
+
}])) } } : {}
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* The environment `opencode acp` runs with: its config, and no self-update or model-catalog
|
|
454
|
+
* fetch (it uses the catalog built into the release).
|
|
455
|
+
*/
|
|
456
|
+
const openCodeEnv = (options = {}) => ({
|
|
457
|
+
OPENCODE_DISABLE_AUTOUPDATE: "1",
|
|
458
|
+
OPENCODE_DISABLE_MODELS_FETCH: "1",
|
|
459
|
+
OPENCODE_CONFIG_CONTENT: JSON.stringify(openCodeConfig(options)),
|
|
460
|
+
[OPENCODE_GATE_SERVERS_ENV]: JSON.stringify(Object.keys(options.mcpServers ?? {}))
|
|
461
|
+
});
|
|
462
|
+
/**
|
|
463
|
+
* OpenCode (`opencode acp`) as an AI SDK harness, on any provider whose key it sends in a header
|
|
464
|
+
* on known hosts: the model's provider (`anthropic/claude-haiku-4-5` runs on `anthropic`) picks
|
|
465
|
+
* the key, and only that key is used and brokered. `@ai-sdk/harness-opencode` brokers only a few
|
|
466
|
+
* providers' keys and OpenCode 1's, so this is reeval's own thin config over `@ai-sdk/harness-acp`.
|
|
467
|
+
*
|
|
468
|
+
* OpenCode ignores its config's `model` over ACP (a session starts on its own default), so each
|
|
469
|
+
* turn sets the session's `model` config option. Its ACP `PromptResponse.usage` is its last
|
|
470
|
+
* model call's, not the turn's, so turns report no usage here rather than an undercount (see
|
|
471
|
+
* {@link OpenCodeStreamTranslator}).
|
|
472
|
+
*/
|
|
473
|
+
function createOpenCode(settings) {
|
|
474
|
+
const resolved = resolveOpenCodeProvider(settings.model, settings.vars ?? {});
|
|
475
|
+
if ("error" in resolved) throw new Error(resolved.error);
|
|
476
|
+
const { provider, vars } = resolved;
|
|
477
|
+
if (!isHarnessAuthenticationEnvironment(settings.auth) || !settings.auth[provider.env]) throw new Error(`OpenCode auth must be an environment object with ${provider.env} (the ${provider.name} key for ${settings.model})`);
|
|
478
|
+
const acp = createACP({
|
|
479
|
+
version: "v1",
|
|
480
|
+
harnessId: OPENCODE_HARNESS_ID,
|
|
481
|
+
builtinTools: OPENCODE_BUILTIN_TOOLS,
|
|
482
|
+
source: {
|
|
483
|
+
type: "npm-locked",
|
|
484
|
+
packageJson: OPENCODE_PACKAGE_JSON,
|
|
485
|
+
pnpmLockYaml: OPENCODE_PNPM_LOCK,
|
|
486
|
+
pnpmWorkspaceYaml: OPENCODE_PNPM_WORKSPACE
|
|
487
|
+
},
|
|
488
|
+
executable: OPENCODE_GATE_EXECUTABLE,
|
|
489
|
+
args: [],
|
|
490
|
+
auth: settings.auth,
|
|
491
|
+
env: {
|
|
492
|
+
...openCodeEnv(settings),
|
|
493
|
+
...vars
|
|
494
|
+
},
|
|
495
|
+
credentialEnv: [provider.env],
|
|
496
|
+
credentialBrokering: ({ env, sandboxEnv, headers }) => {
|
|
497
|
+
const key = env[provider.env];
|
|
498
|
+
const placeholder = sandboxEnv?.[provider.env];
|
|
499
|
+
if (!key || !placeholder) return [];
|
|
500
|
+
return providerTransformations(provider, {
|
|
501
|
+
key,
|
|
502
|
+
placeholder,
|
|
503
|
+
...headers ? { headers } : {}
|
|
504
|
+
}).map(createCredentialRequestTransformation);
|
|
505
|
+
},
|
|
506
|
+
modelMapping: {
|
|
507
|
+
type: "session-config-option",
|
|
508
|
+
path: "model"
|
|
509
|
+
},
|
|
510
|
+
skillsDirectory: OPENCODE_HOME_SKILLS_DIR
|
|
511
|
+
});
|
|
512
|
+
return {
|
|
513
|
+
...acp,
|
|
514
|
+
doStart: async (options) => {
|
|
515
|
+
const sandbox = options.sandboxSession;
|
|
516
|
+
if (settings.requireCredentialBrokering && typeof sandbox.addRequestTransformations !== "function") throw new Error(`The sandbox can't broker ${provider.env} (it has no request transformations), and requireCredentialBrokering is set, so the key stays out of it.`);
|
|
517
|
+
const session = await acp.doStart(options);
|
|
518
|
+
await writeGate(options.sandboxSession, options.abortSignal);
|
|
519
|
+
return translated(session, provider, Object.keys(settings.mcpServers ?? {}));
|
|
520
|
+
}
|
|
521
|
+
};
|
|
522
|
+
}
|
|
523
|
+
/** Writes the gate where `harness-acp` runs its executable from, executable. */
|
|
524
|
+
async function writeGate(sandbox, abortSignal) {
|
|
525
|
+
const path = `${await resolveSandboxHomeDir({
|
|
526
|
+
sandbox,
|
|
527
|
+
...abortSignal ? { abortSignal } : {}
|
|
528
|
+
})}/${OPENCODE_GATE_PATH}`;
|
|
529
|
+
await sandbox.run({
|
|
530
|
+
command: `mkdir -p ${shellQuote(path.slice(0, path.lastIndexOf("/")))}`,
|
|
531
|
+
abortSignal
|
|
532
|
+
});
|
|
533
|
+
await sandbox.writeTextFile({
|
|
534
|
+
path,
|
|
535
|
+
content: OPENCODE_GATE,
|
|
536
|
+
abortSignal
|
|
537
|
+
});
|
|
538
|
+
if ((await sandbox.run({
|
|
539
|
+
command: `chmod 755 ${shellQuote(path)}`,
|
|
540
|
+
abortSignal
|
|
541
|
+
})).exitCode !== 0) throw new Error(`OpenCode's gate isn't executable: ${path}`);
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* The session, with each turn's model checked against the provider whose key it has, and its
|
|
545
|
+
* parts through a fresh {@link OpenCodeStreamTranslator}.
|
|
546
|
+
*/
|
|
547
|
+
function translated(session, provider, mcpServers) {
|
|
548
|
+
const turn = (run) => (options) => {
|
|
549
|
+
if (options.model && openCodeProvider(options.model).id !== provider.id) throw new Error(`OpenCode was started with ${provider.name}'s key, so it can't run ${options.model}`);
|
|
550
|
+
const translator = new OpenCodeStreamTranslator({ mcpServers });
|
|
551
|
+
return run({
|
|
552
|
+
...options,
|
|
553
|
+
emit: (part) => {
|
|
554
|
+
for (const out of translator.push(part)) options.emit(out);
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
};
|
|
558
|
+
return new Proxy(session, { get(target, key, receiver) {
|
|
559
|
+
const value = Reflect.get(target, key, receiver);
|
|
560
|
+
if (key !== "doPromptTurn" && key !== "doContinueTurn") return value;
|
|
561
|
+
return turn(value.bind(target));
|
|
562
|
+
} });
|
|
563
|
+
}
|
|
564
|
+
//#endregion
|
|
565
|
+
export { createOpenCode as a, OpenCodeStreamTranslator as c, OPENCODE_WEB_SEARCH as i, OPENCODE_BUILTIN_TOOLS as l, OPENCODE_HARNESS_ID as n, openCodeConfig as o, OPENCODE_HOME_SKILLS_DIR as r, openCodeEnv as s, OPENCODE_DENIED_TOOLS as t };
|
|
566
|
+
|
|
567
|
+
//# sourceMappingURL=src-DXx_29pq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src-DXx_29pq.js","names":[],"sources":["../../harness-opencode/src/opencode-gate.ts","../../harness-opencode/src/opencode-install.ts","../../harness-opencode/src/opencode-tools.ts","../../harness-opencode/src/opencode-stream.ts","../../harness-opencode/src/opencode-harness.ts"],"mappings":"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"}
|