@tickernelz/paperclip-pro-adapter-opencode-local 2026.925.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +22 -0
  2. package/dist/cli/format-event.d.ts +2 -0
  3. package/dist/cli/format-event.d.ts.map +1 -0
  4. package/dist/cli/format-event.js +115 -0
  5. package/dist/cli/format-event.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +2 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/index.d.ts +11 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +113 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/server/execute.d.ts +13 -0
  15. package/dist/server/execute.d.ts.map +1 -0
  16. package/dist/server/execute.js +595 -0
  17. package/dist/server/execute.js.map +1 -0
  18. package/dist/server/execute.remote.test.d.ts +2 -0
  19. package/dist/server/execute.remote.test.d.ts.map +1 -0
  20. package/dist/server/execute.remote.test.js +351 -0
  21. package/dist/server/execute.remote.test.js.map +1 -0
  22. package/dist/server/execute.test.d.ts +2 -0
  23. package/dist/server/execute.test.d.ts.map +1 -0
  24. package/dist/server/execute.test.js +290 -0
  25. package/dist/server/execute.test.js.map +1 -0
  26. package/dist/server/index.d.ts +8 -0
  27. package/dist/server/index.d.ts.map +1 -0
  28. package/dist/server/index.js +63 -0
  29. package/dist/server/index.js.map +1 -0
  30. package/dist/server/models.d.ts +24 -0
  31. package/dist/server/models.d.ts.map +1 -0
  32. package/dist/server/models.js +281 -0
  33. package/dist/server/models.js.map +1 -0
  34. package/dist/server/models.test.d.ts +2 -0
  35. package/dist/server/models.test.d.ts.map +1 -0
  36. package/dist/server/models.test.js +258 -0
  37. package/dist/server/models.test.js.map +1 -0
  38. package/dist/server/parse.d.ts +14 -0
  39. package/dist/server/parse.d.ts.map +1 -0
  40. package/dist/server/parse.js +99 -0
  41. package/dist/server/parse.js.map +1 -0
  42. package/dist/server/parse.test.d.ts +2 -0
  43. package/dist/server/parse.test.d.ts.map +1 -0
  44. package/dist/server/parse.test.js +73 -0
  45. package/dist/server/parse.test.js.map +1 -0
  46. package/dist/server/runtime-config.d.ts +20 -0
  47. package/dist/server/runtime-config.d.ts.map +1 -0
  48. package/dist/server/runtime-config.js +216 -0
  49. package/dist/server/runtime-config.js.map +1 -0
  50. package/dist/server/runtime-config.test.d.ts +2 -0
  51. package/dist/server/runtime-config.test.d.ts.map +1 -0
  52. package/dist/server/runtime-config.test.js +255 -0
  53. package/dist/server/runtime-config.test.js.map +1 -0
  54. package/dist/server/skills.d.ts +8 -0
  55. package/dist/server/skills.d.ts.map +1 -0
  56. package/dist/server/skills.js +73 -0
  57. package/dist/server/skills.js.map +1 -0
  58. package/dist/server/test.d.ts +3 -0
  59. package/dist/server/test.d.ts.map +1 -0
  60. package/dist/server/test.js +416 -0
  61. package/dist/server/test.js.map +1 -0
  62. package/dist/server/test.remote.test.d.ts +2 -0
  63. package/dist/server/test.remote.test.d.ts.map +1 -0
  64. package/dist/server/test.remote.test.js +132 -0
  65. package/dist/server/test.remote.test.js.map +1 -0
  66. package/dist/ui/build-config.d.ts +3 -0
  67. package/dist/ui/build-config.d.ts.map +1 -0
  68. package/dist/ui/build-config.js +32 -0
  69. package/dist/ui/build-config.js.map +1 -0
  70. package/dist/ui/index.d.ts +3 -0
  71. package/dist/ui/index.d.ts.map +1 -0
  72. package/dist/ui/index.js +3 -0
  73. package/dist/ui/index.js.map +1 -0
  74. package/dist/ui/parse-stdout.d.ts +3 -0
  75. package/dist/ui/parse-stdout.d.ts.map +1 -0
  76. package/dist/ui/parse-stdout.js +141 -0
  77. package/dist/ui/parse-stdout.js.map +1 -0
  78. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.test.js","sourceRoot":"","sources":["../../src/server/execute.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { AdapterSessionCodec } from "@tickernelz/paperclip-pro-adapter-utils";
2
+ export declare const sessionCodec: AdapterSessionCodec;
3
+ export { execute } from "./execute.js";
4
+ export { listOpenCodeSkills, syncOpenCodeSkills } from "./skills.js";
5
+ export { testEnvironment } from "./test.js";
6
+ export { listOpenCodeModels, discoverOpenCodeModels, ensureOpenCodeModelConfiguredAndAvailable, requireOpenCodeModelId, resetOpenCodeModelsCacheForTests, } from "./models.js";
7
+ export { parseOpenCodeJsonl, isOpenCodeUnknownSessionError } from "./parse.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAMnF,eAAO,MAAM,YAAY,EAAE,mBAsD1B,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,yCAAyC,EACzC,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,63 @@
1
+ function readNonEmptyString(value) {
2
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
3
+ }
4
+ export const sessionCodec = {
5
+ deserialize(raw) {
6
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw))
7
+ return null;
8
+ const record = raw;
9
+ const sessionId = readNonEmptyString(record.sessionId) ??
10
+ readNonEmptyString(record.session_id) ??
11
+ readNonEmptyString(record.sessionID);
12
+ if (!sessionId)
13
+ return null;
14
+ const cwd = readNonEmptyString(record.cwd) ??
15
+ readNonEmptyString(record.workdir) ??
16
+ readNonEmptyString(record.folder);
17
+ const workspaceId = readNonEmptyString(record.workspaceId) ?? readNonEmptyString(record.workspace_id);
18
+ const repoUrl = readNonEmptyString(record.repoUrl) ?? readNonEmptyString(record.repo_url);
19
+ const repoRef = readNonEmptyString(record.repoRef) ?? readNonEmptyString(record.repo_ref);
20
+ return {
21
+ sessionId,
22
+ ...(cwd ? { cwd } : {}),
23
+ ...(workspaceId ? { workspaceId } : {}),
24
+ ...(repoUrl ? { repoUrl } : {}),
25
+ ...(repoRef ? { repoRef } : {}),
26
+ };
27
+ },
28
+ serialize(params) {
29
+ if (!params)
30
+ return null;
31
+ const sessionId = readNonEmptyString(params.sessionId) ??
32
+ readNonEmptyString(params.session_id) ??
33
+ readNonEmptyString(params.sessionID);
34
+ if (!sessionId)
35
+ return null;
36
+ const cwd = readNonEmptyString(params.cwd) ??
37
+ readNonEmptyString(params.workdir) ??
38
+ readNonEmptyString(params.folder);
39
+ const workspaceId = readNonEmptyString(params.workspaceId) ?? readNonEmptyString(params.workspace_id);
40
+ const repoUrl = readNonEmptyString(params.repoUrl) ?? readNonEmptyString(params.repo_url);
41
+ const repoRef = readNonEmptyString(params.repoRef) ?? readNonEmptyString(params.repo_ref);
42
+ return {
43
+ sessionId,
44
+ ...(cwd ? { cwd } : {}),
45
+ ...(workspaceId ? { workspaceId } : {}),
46
+ ...(repoUrl ? { repoUrl } : {}),
47
+ ...(repoRef ? { repoRef } : {}),
48
+ };
49
+ },
50
+ getDisplayId(params) {
51
+ if (!params)
52
+ return null;
53
+ return (readNonEmptyString(params.sessionId) ??
54
+ readNonEmptyString(params.session_id) ??
55
+ readNonEmptyString(params.sessionID));
56
+ },
57
+ };
58
+ export { execute } from "./execute.js";
59
+ export { listOpenCodeSkills, syncOpenCodeSkills } from "./skills.js";
60
+ export { testEnvironment } from "./test.js";
61
+ export { listOpenCodeModels, discoverOpenCodeModels, ensureOpenCodeModelConfiguredAndAvailable, requireOpenCodeModelId, resetOpenCodeModelsCacheForTests, } from "./models.js";
62
+ export { parseOpenCodeJsonl, isOpenCodeUnknownSessionError } from "./parse.js";
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { AdapterModel } from "@tickernelz/paperclip-pro-adapter-utils";
2
+ export declare function requireOpenCodeModelId(input: unknown): string;
3
+ export declare function parseOpenCodeModelsOutput(stdout: string): AdapterModel[];
4
+ export declare function discoverOpenCodeModels(input?: {
5
+ command?: unknown;
6
+ cwd?: unknown;
7
+ env?: unknown;
8
+ refresh?: boolean;
9
+ }): Promise<AdapterModel[]>;
10
+ export declare function discoverOpenCodeModelsCached(input?: {
11
+ command?: unknown;
12
+ cwd?: unknown;
13
+ env?: unknown;
14
+ }): Promise<AdapterModel[]>;
15
+ export declare function isTruthyEnvFlag(value: string | undefined): boolean;
16
+ export declare function ensureOpenCodeModelConfiguredAndAvailable(input: {
17
+ model?: unknown;
18
+ command?: unknown;
19
+ cwd?: unknown;
20
+ env?: unknown;
21
+ }): Promise<AdapterModel[]>;
22
+ export declare function listOpenCodeModels(): Promise<AdapterModel[]>;
23
+ export declare function resetOpenCodeModelsCacheForTests(): void;
24
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/server/models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AA2C5E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQ7D;AA6BD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAaxE;AA0CD,wBAAsB,sBAAsB,CAC1C,KAAK,GAAE;IACL,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GACL,OAAO,CAAC,YAAY,EAAE,CAAC,CAiEzB;AAED,wBAAsB,4BAA4B,CAChD,KAAK,GAAE;IACL,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACV,GACL,OAAO,CAAC,YAAY,EAAE,CAAC,CAazB;AA8BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIlE;AAED,wBAAsB,yCAAyC,CAAC,KAAK,EAAE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkF1B;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAMlE;AAED,wBAAgB,gCAAgC,SAE/C"}
@@ -0,0 +1,281 @@
1
+ import { createHash } from "node:crypto";
2
+ import os from "node:os";
3
+ import { asString, ensurePathInEnv, runChildProcess, } from "@tickernelz/paperclip-pro-adapter-utils/server-utils";
4
+ import { isValidOpenCodeModelId } from "../index.js";
5
+ const MODELS_CACHE_TTL_MS = 60_000;
6
+ const MODELS_DISCOVERY_TIMEOUT_MS = 20_000;
7
+ // `opencode models` is a lightweight metadata call, but on a shared ollama
8
+ // daemon it can queue behind an in-flight `opencode run` generation on the
9
+ // same host and either time out or fail with an opaque error. Retry a few
10
+ // times with backoff before surfacing a hard failure (SAG-6326/SAG-6336).
11
+ const MODELS_DISCOVERY_RETRY_DELAYS_MS = [2_000, 4_000];
12
+ function sleep(ms) {
13
+ return new Promise((resolve) => setTimeout(resolve, ms));
14
+ }
15
+ function resolveOpenCodeCommand(input) {
16
+ const envOverride = typeof process.env.PAPERCLIP_OPENCODE_COMMAND === "string" &&
17
+ process.env.PAPERCLIP_OPENCODE_COMMAND.trim().length > 0
18
+ ? process.env.PAPERCLIP_OPENCODE_COMMAND.trim()
19
+ : "opencode";
20
+ return asString(input, envOverride);
21
+ }
22
+ const discoveryCache = new Map();
23
+ const VOLATILE_ENV_KEY_PREFIXES = ["PAPERCLIP_", "npm_", "NPM_"];
24
+ const VOLATILE_ENV_KEY_EXACT = new Set([
25
+ "PWD",
26
+ "OLDPWD",
27
+ "SHLVL",
28
+ "_",
29
+ "TERM_SESSION_ID",
30
+ "HOME",
31
+ ]);
32
+ export function requireOpenCodeModelId(input) {
33
+ const model = asString(input, "").trim();
34
+ if (!isValidOpenCodeModelId(model)) {
35
+ throw new Error("OpenCode requires `adapterConfig.model` in provider/model format.");
36
+ }
37
+ return model;
38
+ }
39
+ function dedupeModels(models) {
40
+ const seen = new Set();
41
+ const deduped = [];
42
+ for (const model of models) {
43
+ const id = model.id.trim();
44
+ if (!id || seen.has(id))
45
+ continue;
46
+ seen.add(id);
47
+ deduped.push({ id, label: model.label.trim() || id });
48
+ }
49
+ return deduped;
50
+ }
51
+ function sortModels(models) {
52
+ return [...models].sort((a, b) => a.id.localeCompare(b.id, "en", { numeric: true, sensitivity: "base" }));
53
+ }
54
+ function firstNonEmptyLine(text) {
55
+ return (text
56
+ .split(/\r?\n/)
57
+ .map((line) => line.trim())
58
+ .find(Boolean) ?? "");
59
+ }
60
+ export function parseOpenCodeModelsOutput(stdout) {
61
+ const parsed = [];
62
+ for (const raw of stdout.split(/\r?\n/)) {
63
+ const line = raw.trim();
64
+ if (!line)
65
+ continue;
66
+ const firstToken = line.split(/\s+/)[0]?.trim() ?? "";
67
+ if (!firstToken.includes("/"))
68
+ continue;
69
+ const provider = firstToken.slice(0, firstToken.indexOf("/")).trim();
70
+ const model = firstToken.slice(firstToken.indexOf("/") + 1).trim();
71
+ if (!provider || !model)
72
+ continue;
73
+ parsed.push({ id: `${provider}/${model}`, label: `${provider}/${model}` });
74
+ }
75
+ return dedupeModels(parsed);
76
+ }
77
+ function normalizeEnv(input) {
78
+ const envInput = typeof input === "object" && input !== null && !Array.isArray(input)
79
+ ? input
80
+ : {};
81
+ const env = {};
82
+ for (const [key, value] of Object.entries(envInput)) {
83
+ if (typeof value === "string")
84
+ env[key] = value;
85
+ }
86
+ return env;
87
+ }
88
+ function isVolatileEnvKey(key) {
89
+ if (VOLATILE_ENV_KEY_EXACT.has(key))
90
+ return true;
91
+ return VOLATILE_ENV_KEY_PREFIXES.some((prefix) => key.startsWith(prefix));
92
+ }
93
+ function hashValue(value) {
94
+ return createHash("sha256").update(value).digest("hex");
95
+ }
96
+ function discoveryCacheKey(command, cwd, env) {
97
+ const envKey = Object.entries(env)
98
+ .filter(([key]) => !isVolatileEnvKey(key))
99
+ .sort(([a], [b]) => a.localeCompare(b))
100
+ .map(([key, value]) => `${key}=${hashValue(value)}`)
101
+ .join("\n");
102
+ return `${command}\n${cwd}\n${envKey}`;
103
+ }
104
+ function pruneExpiredDiscoveryCache(now) {
105
+ for (const [key, value] of discoveryCache.entries()) {
106
+ if (value.expiresAt <= now)
107
+ discoveryCache.delete(key);
108
+ }
109
+ }
110
+ export async function discoverOpenCodeModels(input = {}) {
111
+ const command = resolveOpenCodeCommand(input.command);
112
+ const cwd = asString(input.cwd, process.cwd());
113
+ const env = normalizeEnv(input.env);
114
+ // Ensure HOME points to the actual running user's home directory.
115
+ // When the server is started via `runuser -u <user>`, HOME may still
116
+ // reflect the parent process (e.g. /root), causing OpenCode to miss
117
+ // provider auth credentials stored under the target user's home.
118
+ let resolvedHome;
119
+ try {
120
+ resolvedHome = os.userInfo().homedir || undefined;
121
+ }
122
+ catch {
123
+ // os.userInfo() throws a SystemError when the current UID has no
124
+ // /etc/passwd entry (e.g. `docker run --user 1234` with a minimal
125
+ // image). Fall back to process.env.HOME.
126
+ }
127
+ // Prevent OpenCode from writing an opencode.json into the working directory.
128
+ const runtimeEnv = normalizeEnv(ensurePathInEnv({
129
+ ...process.env,
130
+ ...env,
131
+ ...(resolvedHome ? { HOME: resolvedHome } : {}),
132
+ OPENCODE_DISABLE_PROJECT_CONFIG: "true",
133
+ }));
134
+ const maxAttempts = MODELS_DISCOVERY_RETRY_DELAYS_MS.length + 1;
135
+ let lastError;
136
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
137
+ const result = await runChildProcess(`opencode-models-${Date.now()}-${Math.random().toString(16).slice(2)}`, command, ["models", ...(input.refresh ? ["--refresh"] : [])], {
138
+ cwd,
139
+ env: runtimeEnv,
140
+ timeoutSec: MODELS_DISCOVERY_TIMEOUT_MS / 1000,
141
+ graceSec: 3,
142
+ onLog: async () => { },
143
+ });
144
+ if (result.timedOut) {
145
+ lastError = new Error(`\`opencode models\` timed out after ${MODELS_DISCOVERY_TIMEOUT_MS / 1000}s.`);
146
+ }
147
+ else if ((result.exitCode ?? 1) !== 0) {
148
+ const detail = firstNonEmptyLine(result.stderr) || firstNonEmptyLine(result.stdout);
149
+ lastError = new Error(detail
150
+ ? `\`opencode models\` failed: ${detail}`
151
+ : "`opencode models` failed.");
152
+ }
153
+ else {
154
+ return sortModels(parseOpenCodeModelsOutput(result.stdout));
155
+ }
156
+ const delayMs = MODELS_DISCOVERY_RETRY_DELAYS_MS[attempt - 1];
157
+ if (delayMs === undefined)
158
+ break;
159
+ await sleep(delayMs);
160
+ }
161
+ throw lastError ?? new Error("`opencode models` failed.");
162
+ }
163
+ export async function discoverOpenCodeModelsCached(input = {}) {
164
+ const command = resolveOpenCodeCommand(input.command);
165
+ const cwd = asString(input.cwd, process.cwd());
166
+ const env = normalizeEnv(input.env);
167
+ const key = discoveryCacheKey(command, cwd, env);
168
+ const now = Date.now();
169
+ pruneExpiredDiscoveryCache(now);
170
+ const cached = discoveryCache.get(key);
171
+ if (cached && cached.expiresAt > now)
172
+ return cached.models;
173
+ const models = await discoverOpenCodeModels({ command, cwd, env });
174
+ discoveryCache.set(key, { expiresAt: now + MODELS_CACHE_TTL_MS, models });
175
+ return models;
176
+ }
177
+ async function refreshOpenCodeModelsCached(input) {
178
+ const command = resolveOpenCodeCommand(input.command);
179
+ const cwd = asString(input.cwd, process.cwd());
180
+ const env = normalizeEnv(input.env);
181
+ // OpenCode 1.18.17 uses `models --refresh` only to update its on-disk
182
+ // models.dev cache. Its stdout is a confirmation message, not the refreshed
183
+ // catalog, so enumerate once more after the refresh under the exact same
184
+ // command/cwd/env before deciding whether the configured model exists.
185
+ await discoverOpenCodeModels({
186
+ command,
187
+ cwd,
188
+ env,
189
+ refresh: true,
190
+ });
191
+ const models = await discoverOpenCodeModels({ command, cwd, env });
192
+ if (models.length > 0) {
193
+ discoveryCache.set(discoveryCacheKey(command, cwd, env), {
194
+ expiresAt: Date.now() + MODELS_CACHE_TTL_MS,
195
+ models,
196
+ });
197
+ }
198
+ return models;
199
+ }
200
+ export function isTruthyEnvFlag(value) {
201
+ if (value === undefined)
202
+ return false;
203
+ const v = value.trim().toLowerCase();
204
+ return v === "true" || v === "1" || v === "yes";
205
+ }
206
+ export async function ensureOpenCodeModelConfiguredAndAvailable(input) {
207
+ const model = requireOpenCodeModelId(input.model);
208
+ // When the caller opts into OPENCODE_ALLOW_ALL_MODELS, OpenCode accepts any
209
+ // provider/model at run time (e.g. gateway-routed models that never appear in
210
+ // `opencode models` output). Honour that by skipping the availability probe;
211
+ // we still enforce the provider/model format above and do not second-guess
212
+ // the configured model. Prefer the explicit run env, then the process env.
213
+ const env = normalizeEnv(input.env);
214
+ if (isTruthyEnvFlag(env.OPENCODE_ALLOW_ALL_MODELS ?? process.env.OPENCODE_ALLOW_ALL_MODELS)) {
215
+ return [{ id: model, label: model }];
216
+ }
217
+ let models;
218
+ try {
219
+ models = await discoverOpenCodeModelsCached({
220
+ command: input.command,
221
+ cwd: input.cwd,
222
+ env: input.env,
223
+ });
224
+ }
225
+ catch (err) {
226
+ // The availability probe is a best-effort pre-flight guard, not a gate. If
227
+ // `opencode models` itself cannot run — a transient CLI error, a timeout, a
228
+ // provider hiccup — do NOT abort the run. The real invocation is
229
+ // authoritative, so a probe that can't execute must never be fatal.
230
+ // (Previously this threw and crashed runs mid-flight, discarding the agent's
231
+ // completed work and its terminal disposition, which then reopened the issue.)
232
+ console.warn(`[opencode-local] Model availability probe could not run for "${model}" (${err instanceof Error ? err.message : String(err)}); proceeding with the configured model.`);
233
+ return [{ id: model, label: model }];
234
+ }
235
+ if (models.length === 0) {
236
+ // The probe ran but returned nothing (e.g. a transient provider-auth blip).
237
+ // Same reasoning as above: warn, don't block the run.
238
+ console.warn(`[opencode-local] \`opencode models\` returned no models; proceeding with the configured model "${model}".`);
239
+ return [{ id: model, label: model }];
240
+ }
241
+ if (!models.some((entry) => entry.id === model)) {
242
+ // `opencode models` reads a persistent models.dev cache. Long-lived runner
243
+ // hosts can therefore report a stale non-empty catalog even while the
244
+ // configured provider serves the model. Refresh once before treating a
245
+ // cached miss as authoritative; a successful refresh that still omits the
246
+ // model retains the strict availability rejection below.
247
+ try {
248
+ const refreshedModels = await refreshOpenCodeModelsCached({
249
+ command: input.command,
250
+ cwd: input.cwd,
251
+ env: input.env,
252
+ });
253
+ if (refreshedModels.some((entry) => entry.id === model)) {
254
+ return refreshedModels;
255
+ }
256
+ if (refreshedModels.length > 0)
257
+ models = refreshedModels;
258
+ }
259
+ catch (err) {
260
+ console.warn(`[opencode-local] Model availability refresh failed for "${model}" (${err instanceof Error ? err.message : String(err)}); preserving the cached availability rejection.`);
261
+ }
262
+ const sample = models
263
+ .slice(0, 12)
264
+ .map((entry) => entry.id)
265
+ .join(", ");
266
+ throw new Error(`Configured OpenCode model is unavailable: ${model}. Available models: ${sample}${models.length > 12 ? ", ..." : ""}`);
267
+ }
268
+ return models;
269
+ }
270
+ export async function listOpenCodeModels() {
271
+ try {
272
+ return await discoverOpenCodeModelsCached();
273
+ }
274
+ catch {
275
+ return [];
276
+ }
277
+ }
278
+ export function resetOpenCodeModelsCacheForTests() {
279
+ discoveryCache.clear();
280
+ }
281
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/server/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=models.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.test.d.ts","sourceRoot":"","sources":["../../src/server/models.test.ts"],"names":[],"mappings":""}