saros-proxy 0.6.0 → 0.7.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.
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/dist/cli/autostart.d.ts +1 -1
- package/dist/cli/autostart.js +35 -4
- package/dist/cli/autostart.js.map +1 -1
- package/dist/cli/daemon.d.ts +12 -4
- package/dist/cli/daemon.js +57 -12
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/help.d.ts +0 -0
- package/dist/cli/help.js +3 -2
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/opencode-config.d.ts +12 -2
- package/dist/cli/opencode-config.js +100 -10
- package/dist/cli/opencode-config.js.map +1 -1
- package/dist/cli/setup.d.ts +0 -0
- package/dist/cli/setup.js +9 -9
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/ui.d.ts +0 -0
- package/dist/cli/ui.js +0 -0
- package/dist/cli/ui.js.map +0 -0
- package/dist/cli/update-check.d.ts +0 -0
- package/dist/cli/update-check.js +0 -0
- package/dist/cli/update-check.js.map +0 -0
- package/dist/config.d.ts +0 -0
- package/dist/config.js +0 -0
- package/dist/config.js.map +0 -0
- package/dist/constants.d.ts +0 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/dashboard-parser.d.ts +0 -0
- package/dist/dashboard-parser.js +0 -0
- package/dist/dashboard-parser.js.map +0 -0
- package/dist/firefox-cookies.d.ts +0 -0
- package/dist/firefox-cookies.js +0 -0
- package/dist/firefox-cookies.js.map +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +19 -4
- package/dist/index.js.map +1 -1
- package/dist/key-encryption.d.ts +0 -0
- package/dist/key-encryption.js +0 -0
- package/dist/key-encryption.js.map +0 -0
- package/dist/logger.d.ts +0 -0
- package/dist/logger.js +0 -0
- package/dist/logger.js.map +0 -0
- package/dist/model-probe.d.ts +0 -0
- package/dist/model-probe.js +0 -0
- package/dist/model-probe.js.map +0 -0
- package/dist/models-fetcher.d.ts +0 -0
- package/dist/models-fetcher.js +0 -0
- package/dist/models-fetcher.js.map +0 -0
- package/dist/models-sync.d.ts +0 -0
- package/dist/models-sync.js +8 -6
- package/dist/models-sync.js.map +1 -1
- package/dist/probe-cache.d.ts +0 -0
- package/dist/probe-cache.js +0 -0
- package/dist/probe-cache.js.map +0 -0
- package/dist/proxy-logic.d.ts +1 -1
- package/dist/proxy-logic.js +18 -6
- package/dist/proxy-logic.js.map +1 -1
- package/dist/proxy.d.ts +0 -0
- package/dist/proxy.js +0 -0
- package/dist/proxy.js.map +0 -0
- package/dist/scraper.d.ts +0 -0
- package/dist/scraper.js +0 -0
- package/dist/scraper.js.map +0 -0
- package/dist/validation.d.ts +0 -0
- package/dist/validation.js +0 -0
- package/dist/validation.js.map +0 -0
- package/package.json +1 -1
package/LICENSE
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
File without changes
|
package/dist/cli/autostart.d.ts
CHANGED
|
@@ -20,6 +20,6 @@ export declare function detectThirdPartyAv(): boolean;
|
|
|
20
20
|
* Exported for testing.
|
|
21
21
|
*/
|
|
22
22
|
export declare function resolveMethod(method?: AutostartMethod, avDetected?: boolean): 'vbs' | 'registry';
|
|
23
|
-
export declare function autostartInstall(port?: number, method?: AutostartMethod): void
|
|
23
|
+
export declare function autostartInstall(port?: number, method?: AutostartMethod): Promise<void>;
|
|
24
24
|
export declare function autostartUninstall(method?: AutostartMethod): void;
|
|
25
25
|
export declare function autostartStatus(method?: AutostartMethod): void;
|
package/dist/cli/autostart.js
CHANGED
|
@@ -13,6 +13,7 @@ import { existsSync, writeFileSync, rmSync, readFileSync } from 'node:fs';
|
|
|
13
13
|
import { join } from 'node:path';
|
|
14
14
|
import { homedir } from 'node:os';
|
|
15
15
|
import { execFileSync } from 'node:child_process';
|
|
16
|
+
import * as ui from './ui.js';
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
17
18
|
// Constants
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
@@ -128,7 +129,7 @@ function registryInstall(port) {
|
|
|
128
129
|
'/d', cmd,
|
|
129
130
|
'/f',
|
|
130
131
|
], { windowsHide: true, stdio: 'pipe', timeout: 5000 });
|
|
131
|
-
|
|
132
|
+
ui.success(`Auto-start installed via Registry: ${REG_RUN_KEY}\\${REG_VALUE_NAME}`);
|
|
132
133
|
}
|
|
133
134
|
function registryUninstall() {
|
|
134
135
|
try {
|
|
@@ -171,7 +172,7 @@ function vbsInstall(port) {
|
|
|
171
172
|
'Set shell = Nothing',
|
|
172
173
|
].join('\n');
|
|
173
174
|
writeFileSync(vbsPath(), vbs, 'utf-8');
|
|
174
|
-
|
|
175
|
+
ui.success(`Auto-start installed via VBS: ${vbsPath()}`);
|
|
175
176
|
}
|
|
176
177
|
function vbsUninstall() {
|
|
177
178
|
const path = vbsPath();
|
|
@@ -188,14 +189,44 @@ function vbsExists() {
|
|
|
188
189
|
// ---------------------------------------------------------------------------
|
|
189
190
|
// Public API
|
|
190
191
|
// ---------------------------------------------------------------------------
|
|
191
|
-
export function autostartInstall(port, method) {
|
|
192
|
-
|
|
192
|
+
export async function autostartInstall(port, method) {
|
|
193
|
+
let resolved;
|
|
194
|
+
let wasPrompted = false;
|
|
195
|
+
if (method === 'vbs' || method === 'registry') {
|
|
196
|
+
resolved = method;
|
|
197
|
+
}
|
|
198
|
+
else if (method === 'auto') {
|
|
199
|
+
resolved = resolveMethod('auto');
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
// No method specified — prompt the user to choose
|
|
203
|
+
wasPrompted = true;
|
|
204
|
+
if (process.stdin.isTTY) {
|
|
205
|
+
ui.intro('Saros — Autostart');
|
|
206
|
+
const choice = ui.assertNotCancelled(await ui.select({
|
|
207
|
+
message: 'Choose an autostart method',
|
|
208
|
+
options: [
|
|
209
|
+
{ value: 'registry', label: 'Windows Registry', hint: 'recommended' },
|
|
210
|
+
{ value: 'vbs', label: 'VBScript in Startup folder', hint: 'lighter, may trigger AV' },
|
|
211
|
+
{ value: 'auto', label: 'Detect automatically', hint: 'picks based on AV detection' },
|
|
212
|
+
],
|
|
213
|
+
}));
|
|
214
|
+
resolved = resolveMethod(choice);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
ui.warn('No --method specified and stdin is not a TTY. Using auto-detect. Pass --method <vbs|registry|auto> to skip this.');
|
|
218
|
+
resolved = resolveMethod(undefined);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
193
221
|
if (resolved === 'registry') {
|
|
194
222
|
registryInstall(port);
|
|
195
223
|
}
|
|
196
224
|
else {
|
|
197
225
|
vbsInstall(port);
|
|
198
226
|
}
|
|
227
|
+
if (wasPrompted && process.stdin.isTTY) {
|
|
228
|
+
ui.outro('Autostart configured');
|
|
229
|
+
}
|
|
199
230
|
}
|
|
200
231
|
export function autostartUninstall(method) {
|
|
201
232
|
if (method === 'vbs') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autostart.js","sourceRoot":"","sources":["../../src/cli/autostart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"autostart.js","sourceRoot":"","sources":["../../src/cli/autostart.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/daemon.d.ts
CHANGED
|
@@ -2,15 +2,23 @@
|
|
|
2
2
|
* daemon.ts — Start/stop the proxy as a background process.
|
|
3
3
|
*
|
|
4
4
|
* Usage:
|
|
5
|
-
* saros-proxy start
|
|
5
|
+
* saros-proxy start [--port <port>] [--config <path>]
|
|
6
6
|
* saros-proxy stop
|
|
7
|
+
* saros-proxy restart [--port <port>] [--config <path>]
|
|
7
8
|
* saros-proxy status
|
|
8
9
|
*
|
|
9
10
|
* Daemon lifecycle:
|
|
10
|
-
* start
|
|
11
|
-
* stop
|
|
12
|
-
*
|
|
11
|
+
* start → spawns detached `node dist/index.js` process, saves PID
|
|
12
|
+
* stop → kills the process (taskkill /T /F on Windows), removes PID file
|
|
13
|
+
* restart → kills running instance (if any), waits, then starts fresh
|
|
14
|
+
* status → checks if the process is still alive
|
|
13
15
|
*/
|
|
14
16
|
export declare function daemonStart(port?: number, configPath?: string): void;
|
|
15
17
|
export declare function daemonStop(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Restart the proxy daemon: stop the running instance (if any), wait
|
|
20
|
+
* briefly for the port to release, then start a fresh instance.
|
|
21
|
+
* Reuses daemonStart which owns its own exit path via setTimeout.
|
|
22
|
+
*/
|
|
23
|
+
export declare function daemonRestart(port?: number, configPath?: string): void;
|
|
16
24
|
export declare function daemonStatus(): void;
|
package/dist/cli/daemon.js
CHANGED
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
* daemon.ts — Start/stop the proxy as a background process.
|
|
3
3
|
*
|
|
4
4
|
* Usage:
|
|
5
|
-
* saros-proxy start
|
|
5
|
+
* saros-proxy start [--port <port>] [--config <path>]
|
|
6
6
|
* saros-proxy stop
|
|
7
|
+
* saros-proxy restart [--port <port>] [--config <path>]
|
|
7
8
|
* saros-proxy status
|
|
8
9
|
*
|
|
9
10
|
* Daemon lifecycle:
|
|
10
|
-
* start
|
|
11
|
-
* stop
|
|
12
|
-
*
|
|
11
|
+
* start → spawns detached `node dist/index.js` process, saves PID
|
|
12
|
+
* stop → kills the process (taskkill /T /F on Windows), removes PID file
|
|
13
|
+
* restart → kills running instance (if any), waits, then starts fresh
|
|
14
|
+
* status → checks if the process is still alive
|
|
13
15
|
*/
|
|
14
16
|
import { spawn, execFileSync } from 'node:child_process';
|
|
15
17
|
import chalk from 'chalk';
|
|
@@ -156,6 +158,29 @@ function killProcess(pid) {
|
|
|
156
158
|
}
|
|
157
159
|
}
|
|
158
160
|
// ---------------------------------------------------------------------------
|
|
161
|
+
// Internal helpers
|
|
162
|
+
// ---------------------------------------------------------------------------
|
|
163
|
+
/**
|
|
164
|
+
* Synchronously kill the running daemon if its PID file exists and the
|
|
165
|
+
* process is alive. Cleans up stale PID files. Does NOT call process.exit.
|
|
166
|
+
* Returns the PID string found (or null), and whether the process was
|
|
167
|
+
* running (killed) or the PID file was stale (cleaned up).
|
|
168
|
+
*/
|
|
169
|
+
function killRunningDaemon() {
|
|
170
|
+
const pid = readPid();
|
|
171
|
+
if (!pid)
|
|
172
|
+
return { pid: null, wasRunning: false, wasStale: false };
|
|
173
|
+
const pidNum = Number(pid);
|
|
174
|
+
if (!isProcessAlive(pidNum)) {
|
|
175
|
+
// Stale PID file — clean it up
|
|
176
|
+
deletePid();
|
|
177
|
+
return { pid, wasRunning: false, wasStale: true };
|
|
178
|
+
}
|
|
179
|
+
killProcess(pidNum);
|
|
180
|
+
deletePid();
|
|
181
|
+
return { pid, wasRunning: true, wasStale: false };
|
|
182
|
+
}
|
|
183
|
+
// ---------------------------------------------------------------------------
|
|
159
184
|
// Public API
|
|
160
185
|
// ---------------------------------------------------------------------------
|
|
161
186
|
export function daemonStart(port, configPath) {
|
|
@@ -213,20 +238,18 @@ export function daemonStart(port, configPath) {
|
|
|
213
238
|
}, 2000);
|
|
214
239
|
}
|
|
215
240
|
export function daemonStop() {
|
|
216
|
-
const pid =
|
|
217
|
-
if (
|
|
241
|
+
const { pid, wasRunning, wasStale } = killRunningDaemon();
|
|
242
|
+
if (pid === null) {
|
|
218
243
|
console.log(chalk.yellow('No running proxy daemon found.'));
|
|
219
244
|
process.exit(0);
|
|
220
245
|
}
|
|
221
|
-
|
|
222
|
-
if (!isProcessAlive(pidNum)) {
|
|
246
|
+
if (wasStale) {
|
|
223
247
|
console.log(chalk.yellow(`Daemon process (PID ${pid}) is not running. Cleaning up PID file.`));
|
|
224
|
-
deletePid();
|
|
225
248
|
process.exit(0);
|
|
226
249
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
250
|
+
// wasRunning === true — killRunningDaemon already killed the process and
|
|
251
|
+
// deleted the PID file. Now verify it's actually gone.
|
|
252
|
+
const pidNum = Number(pid);
|
|
230
253
|
setTimeout(() => {
|
|
231
254
|
if (isProcessAlive(pidNum)) {
|
|
232
255
|
console.error(chalk.red(`✗ Failed to stop daemon (PID ${pid}). Try: taskkill /F /PID ${pid}`));
|
|
@@ -238,6 +261,28 @@ export function daemonStop() {
|
|
|
238
261
|
}
|
|
239
262
|
}, 1000);
|
|
240
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* Restart the proxy daemon: stop the running instance (if any), wait
|
|
266
|
+
* briefly for the port to release, then start a fresh instance.
|
|
267
|
+
* Reuses daemonStart which owns its own exit path via setTimeout.
|
|
268
|
+
*/
|
|
269
|
+
export function daemonRestart(port, configPath) {
|
|
270
|
+
const { pid, wasRunning, wasStale } = killRunningDaemon();
|
|
271
|
+
if (wasRunning && pid) {
|
|
272
|
+
console.log(chalk.dim(`Restarting: stopped daemon (PID ${pid}), starting new instance...`));
|
|
273
|
+
// Wait for the OS to release the port before respawning
|
|
274
|
+
setTimeout(() => daemonStart(port, configPath), 1500);
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
if (wasStale && pid) {
|
|
278
|
+
console.log(chalk.dim(`Stale PID file (PID ${pid}) cleaned up. Starting new instance...`));
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
console.log(chalk.dim('No running daemon found, starting new instance...'));
|
|
282
|
+
}
|
|
283
|
+
daemonStart(port, configPath);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
241
286
|
export function daemonStatus() {
|
|
242
287
|
const pid = readPid();
|
|
243
288
|
if (!pid) {
|
package/dist/cli/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/help.d.ts
CHANGED
|
File without changes
|
package/dist/cli/help.js
CHANGED
|
@@ -10,10 +10,11 @@ export function printHelp() {
|
|
|
10
10
|
Commands:
|
|
11
11
|
start [--port <port>] [--config <path>] Start the proxy daemon
|
|
12
12
|
stop Stop the proxy daemon
|
|
13
|
+
restart [--port <port>] [--config <path>] Restart the proxy daemon
|
|
13
14
|
status Check daemon status
|
|
14
15
|
setup Run interactive setup wizard
|
|
15
|
-
sync-models Sync models from models.json to opencode
|
|
16
|
-
sync-upstream Sync new models from upstream into opencode
|
|
16
|
+
sync-models Sync models from models.json to opencode config
|
|
17
|
+
sync-upstream Sync new models from upstream into opencode config
|
|
17
18
|
probe [model-id] Test model capabilities (liveness, reasoning, tools)
|
|
18
19
|
autostart install [--method <method>] Install autostart
|
|
19
20
|
autostart uninstall [--method <method>] Uninstall autostart
|
package/dist/cli/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;iEAiBmD,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -2,9 +2,19 @@
|
|
|
2
2
|
* opencode-config.ts — OpenCode client configuration management.
|
|
3
3
|
*
|
|
4
4
|
* Handles reading, merging, and writing the user's opencode.json
|
|
5
|
-
* to add or update the proxy provider configuration.
|
|
5
|
+
* or opencode.jsonc to add or update the proxy provider configuration.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Strip JSONC comments (both single-line and multi-line) from a string,
|
|
9
|
+
* preserving string contents. JSONC allows comments that JSON does not.
|
|
10
|
+
*/
|
|
11
|
+
export declare function stripJsoncComments(text: string): string;
|
|
12
|
+
/** Return the default opencode config path for the current platform.
|
|
13
|
+
*
|
|
14
|
+
* Detects `opencode.jsonc` vs `opencode.json` — prefers `.jsonc` if it
|
|
15
|
+
* exists (modern OpenCode default), falls back to `.json`, and defaults
|
|
16
|
+
* to `.jsonc` for new setups.
|
|
6
17
|
*/
|
|
7
|
-
/** Return the default opencode.json path for the current platform. */
|
|
8
18
|
export declare function getDefaultOpencodeConfigPath(): string;
|
|
9
19
|
/** Return the path to models.json (source of truth for model definitions). */
|
|
10
20
|
export declare function getModelsJsonPath(): string;
|
|
@@ -2,19 +2,102 @@
|
|
|
2
2
|
* opencode-config.ts — OpenCode client configuration management.
|
|
3
3
|
*
|
|
4
4
|
* Handles reading, merging, and writing the user's opencode.json
|
|
5
|
-
* to add or update the proxy provider configuration.
|
|
5
|
+
* or opencode.jsonc to add or update the proxy provider configuration.
|
|
6
6
|
*/
|
|
7
7
|
import { existsSync, readFileSync, writeFileSync, copyFileSync, mkdirSync } from 'node:fs';
|
|
8
8
|
import { dirname, join } from 'node:path';
|
|
9
9
|
import { homedir } from 'node:os';
|
|
10
10
|
import { OPENCODE_MODELS } from '../constants.js';
|
|
11
11
|
// ---------------------------------------------------------------------------
|
|
12
|
+
// JSONC support
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Strip JSONC comments (both single-line and multi-line) from a string,
|
|
16
|
+
* preserving string contents. JSONC allows comments that JSON does not.
|
|
17
|
+
*/
|
|
18
|
+
export function stripJsoncComments(text) {
|
|
19
|
+
const result = [];
|
|
20
|
+
let i = 0;
|
|
21
|
+
const len = text.length;
|
|
22
|
+
while (i < len) {
|
|
23
|
+
const ch = text[i];
|
|
24
|
+
// Handle strings — preserve everything inside
|
|
25
|
+
if (ch === '"') {
|
|
26
|
+
let s = '"';
|
|
27
|
+
i++;
|
|
28
|
+
while (i < len) {
|
|
29
|
+
const c = text[i];
|
|
30
|
+
s += c;
|
|
31
|
+
if (c === '\\') {
|
|
32
|
+
i++;
|
|
33
|
+
if (i < len) {
|
|
34
|
+
s += text[i];
|
|
35
|
+
i++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (c === '"') {
|
|
39
|
+
i++;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
i++;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
result.push(s);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
// Handle single-line comment
|
|
50
|
+
if (ch === '/' && i + 1 < len && text[i + 1] === '/') {
|
|
51
|
+
i += 2;
|
|
52
|
+
while (i < len && text[i] !== '\n')
|
|
53
|
+
i++;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
// Handle multi-line comment
|
|
57
|
+
if (ch === '/' && i + 1 < len && text[i + 1] === '*') {
|
|
58
|
+
i += 2;
|
|
59
|
+
while (i < len) {
|
|
60
|
+
if (text[i] === '*' && i + 1 < len && text[i + 1] === '/') {
|
|
61
|
+
i += 2;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
i++;
|
|
65
|
+
}
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
result.push(ch);
|
|
69
|
+
i++;
|
|
70
|
+
}
|
|
71
|
+
return result.join('');
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Read and parse a JSON or JSONC config file.
|
|
75
|
+
* For `.jsonc` files, comments are stripped before parsing.
|
|
76
|
+
*/
|
|
77
|
+
function readJsoncConfigFile(path) {
|
|
78
|
+
const raw = readFileSync(path, 'utf-8');
|
|
79
|
+
const clean = path.endsWith('.jsonc') ? stripJsoncComments(raw) : raw;
|
|
80
|
+
return JSON.parse(clean);
|
|
81
|
+
}
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
12
83
|
// Path detection
|
|
13
84
|
// ---------------------------------------------------------------------------
|
|
14
|
-
/** Return the default opencode
|
|
85
|
+
/** Return the default opencode config path for the current platform.
|
|
86
|
+
*
|
|
87
|
+
* Detects `opencode.jsonc` vs `opencode.json` — prefers `.jsonc` if it
|
|
88
|
+
* exists (modern OpenCode default), falls back to `.json`, and defaults
|
|
89
|
+
* to `.jsonc` for new setups.
|
|
90
|
+
*/
|
|
15
91
|
export function getDefaultOpencodeConfigPath() {
|
|
16
92
|
const home = homedir();
|
|
17
|
-
|
|
93
|
+
const dir = join(home, '.config', 'opencode');
|
|
94
|
+
const jsoncPath = join(dir, 'opencode.jsonc');
|
|
95
|
+
const jsonPath = join(dir, 'opencode.json');
|
|
96
|
+
if (existsSync(jsoncPath))
|
|
97
|
+
return jsoncPath;
|
|
98
|
+
if (existsSync(jsonPath))
|
|
99
|
+
return jsonPath;
|
|
100
|
+
return jsoncPath; // default to jsonc for new installs
|
|
18
101
|
}
|
|
19
102
|
/** Return the path to models.json (source of truth for model definitions). */
|
|
20
103
|
export function getModelsJsonPath() {
|
|
@@ -55,16 +138,24 @@ export function updateOpencodeConfig(port, options = {}) {
|
|
|
55
138
|
let config;
|
|
56
139
|
let created = false;
|
|
57
140
|
if (existsSync(configPath)) {
|
|
58
|
-
// Read
|
|
59
|
-
|
|
141
|
+
// Read existing config (supports JSONC)
|
|
142
|
+
let raw;
|
|
143
|
+
try {
|
|
144
|
+
raw = readFileSync(configPath, 'utf-8');
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
148
|
+
return { success: false, path: configPath, error: message };
|
|
149
|
+
}
|
|
60
150
|
try {
|
|
61
|
-
|
|
151
|
+
const clean = configPath.endsWith('.jsonc') ? stripJsoncComments(raw) : raw;
|
|
152
|
+
config = JSON.parse(clean);
|
|
62
153
|
}
|
|
63
154
|
catch {
|
|
64
155
|
return {
|
|
65
156
|
success: false,
|
|
66
157
|
path: configPath,
|
|
67
|
-
error: 'Existing opencode
|
|
158
|
+
error: 'Existing opencode config contains invalid JSON/JSONC. Please fix it manually.',
|
|
68
159
|
};
|
|
69
160
|
}
|
|
70
161
|
// Create backup before modifying (never overwrite existing backup)
|
|
@@ -148,11 +239,10 @@ export function updateOpencodeConfig(port, options = {}) {
|
|
|
148
239
|
export function syncModelsToOpencodeConfig(options = {}) {
|
|
149
240
|
const configPath = options.configPath ?? getDefaultOpencodeConfigPath();
|
|
150
241
|
if (!existsSync(configPath)) {
|
|
151
|
-
return { success: false, error: 'opencode
|
|
242
|
+
return { success: false, error: 'opencode config not found at ' + configPath };
|
|
152
243
|
}
|
|
153
244
|
try {
|
|
154
|
-
const
|
|
155
|
-
const config = JSON.parse(raw);
|
|
245
|
+
const config = readJsoncConfigFile(configPath);
|
|
156
246
|
const provider = config.provider;
|
|
157
247
|
if (!provider) {
|
|
158
248
|
return { success: false, error: 'Config has no "provider" section' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-config.js","sourceRoot":"","sources":["../../src/cli/opencode-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E
|
|
1
|
+
{"version":3,"file":"opencode-config.js","sourceRoot":"","sources":["../../src/cli/opencode-config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/setup.d.ts
CHANGED
|
File without changes
|
package/dist/cli/setup.js
CHANGED
|
@@ -685,7 +685,7 @@ async function configureOpencodeClient(port) {
|
|
|
685
685
|
else {
|
|
686
686
|
ui.info(`Default OpenCode config not found at ${defaultOpencodePath}`);
|
|
687
687
|
const customPath = ui.assertNotCancelled(await ui.text({
|
|
688
|
-
message: 'Path to opencode.json (or press Enter to skip)',
|
|
688
|
+
message: 'Path to opencode.json/.jsonc (or press Enter to skip)',
|
|
689
689
|
placeholder: 'Press Enter to skip',
|
|
690
690
|
validate: () => undefined,
|
|
691
691
|
}));
|
|
@@ -694,35 +694,35 @@ async function configureOpencodeClient(port) {
|
|
|
694
694
|
}
|
|
695
695
|
}
|
|
696
696
|
if (!opencodePath) {
|
|
697
|
-
ui.info('Skipped OpenCode configuration. Add this to your opencode.json manually:');
|
|
697
|
+
ui.info('Skipped OpenCode configuration. Add this to your opencode.json/.jsonc manually:');
|
|
698
698
|
console.log(chalk.dim(generateManualConfigSnippet(port)));
|
|
699
699
|
return;
|
|
700
700
|
}
|
|
701
701
|
ui.info(`Found OpenCode config at ${opencodePath}`);
|
|
702
702
|
const shouldConfigure = ui.assertNotCancelled(await ui.confirm({
|
|
703
|
-
message: 'Configure opencode.json to use this proxy?',
|
|
703
|
+
message: 'Configure opencode.json/.jsonc to use this proxy?',
|
|
704
704
|
initialValue: true,
|
|
705
705
|
}));
|
|
706
706
|
if (shouldConfigure) {
|
|
707
707
|
const result = updateOpencodeConfig(port, { configPath: opencodePath });
|
|
708
708
|
if (result.success) {
|
|
709
709
|
if (result.created) {
|
|
710
|
-
ui.success(`Created opencode
|
|
710
|
+
ui.success(`Created opencode config at ${result.path}`);
|
|
711
711
|
}
|
|
712
712
|
else {
|
|
713
|
-
ui.success(`Updated opencode
|
|
714
|
-
ui.info('A backup was saved to opencode.
|
|
713
|
+
ui.success(`Updated opencode config at ${result.path}`);
|
|
714
|
+
ui.info('A backup was saved to opencode config.backup');
|
|
715
715
|
}
|
|
716
716
|
ui.info('If OpenCode is running, restart it to pick up the changes');
|
|
717
717
|
}
|
|
718
718
|
else {
|
|
719
|
-
ui.warn(`Could not update opencode
|
|
720
|
-
ui.info('You can manually add this to your opencode.json:');
|
|
719
|
+
ui.warn(`Could not update opencode config: ${result.error}`);
|
|
720
|
+
ui.info('You can manually add this to your opencode.json/.jsonc:');
|
|
721
721
|
console.log(chalk.dim(generateManualConfigSnippet(port)));
|
|
722
722
|
}
|
|
723
723
|
}
|
|
724
724
|
else {
|
|
725
|
-
ui.info('Skipped automatic configuration. Add this to your opencode.json manually:');
|
|
725
|
+
ui.info('Skipped automatic configuration. Add this to your opencode.json/.jsonc manually:');
|
|
726
726
|
console.log(chalk.dim(generateManualConfigSnippet(port)));
|
|
727
727
|
}
|
|
728
728
|
}
|