srpllm 1.2.5 → 1.2.6

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/dist/cli.mjs CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import cac from 'cac';
3
3
  import ansis from 'ansis';
4
- import { i as init, u as uninstall, O as version } from './shared/srpllm.CsoL3qR-.mjs';
4
+ import { i as init, u as uninstall, P as version } from './shared/srpllm.CdyEHPvp.mjs';
5
+ import 'node:child_process';
5
6
  import 'node:fs';
6
7
  import 'node:os';
7
8
  import 'node:process';
package/dist/index.d.mts CHANGED
@@ -29,6 +29,7 @@ interface CodexApiConfig {
29
29
  }
30
30
  declare function getExistingCodexConfig(): CodexApiConfig | null;
31
31
  declare function writeCodexApiConfig(config: CodexApiConfig): void;
32
+ declare function enableCodexFullAccess(): void;
32
33
  declare function clearCodexApiConfig(): void;
33
34
  declare function displayCodexConfig(config: CodexApiConfig): void;
34
35
 
@@ -129,5 +130,5 @@ declare function getPlatform(): Platform;
129
130
  declare function isWindows(): boolean;
130
131
  declare function commandExists(command: string): Promise<boolean>;
131
132
 
132
- export { CLAUDE_DIR, CLAUDE_SETTINGS_FILE, CODEX_AUTH_FILE, CODEX_CONFIG_FILE, CODEX_DIR, CODE_TOOL_ALIASES, CODE_TOOL_LABELS, CODE_TOOL_TYPES, DEFAULT_CODE_TOOL_TYPE, MODEL_PREFIX, RELAY_PROVIDER_ID, RELAY_TOOL_TYPES, buildModelsChoices, clearClaudeApiConfig, clearCodexApiConfig, commandExists, detectInstalledVersion, displayClaudeConfig, displayCodexConfig, ensureClaudeDir, fetchModels, filterByPrefix, getExistingClaudeApiConfig, getExistingCodexConfig, getPlatform, init, installTool, isCliTool, isCodeToolType, isToolInstalled, isWindows, readClaudeSettings, readLocalConfig, resolveCodeToolType, selectInstallMethod, uninstall, uninstallTool, updateLocalConfig, writeClaudeApiConfig, writeCodexApiConfig, writeLocalConfig };
133
+ export { CLAUDE_DIR, CLAUDE_SETTINGS_FILE, CODEX_AUTH_FILE, CODEX_CONFIG_FILE, CODEX_DIR, CODE_TOOL_ALIASES, CODE_TOOL_LABELS, CODE_TOOL_TYPES, DEFAULT_CODE_TOOL_TYPE, MODEL_PREFIX, RELAY_PROVIDER_ID, RELAY_TOOL_TYPES, buildModelsChoices, clearClaudeApiConfig, clearCodexApiConfig, commandExists, detectInstalledVersion, displayClaudeConfig, displayCodexConfig, enableCodexFullAccess, ensureClaudeDir, fetchModels, filterByPrefix, getExistingClaudeApiConfig, getExistingCodexConfig, getPlatform, init, installTool, isCliTool, isCodeToolType, isToolInstalled, isWindows, readClaudeSettings, readLocalConfig, resolveCodeToolType, selectInstallMethod, uninstall, uninstallTool, updateLocalConfig, writeClaudeApiConfig, writeCodexApiConfig, writeLocalConfig };
133
134
  export type { ClaudeApiConfig, CodeToolType, CodexApiConfig, InstallMethod, LocalConfig, RelayToolType, RemoteModel };
package/dist/index.d.ts CHANGED
@@ -29,6 +29,7 @@ interface CodexApiConfig {
29
29
  }
30
30
  declare function getExistingCodexConfig(): CodexApiConfig | null;
31
31
  declare function writeCodexApiConfig(config: CodexApiConfig): void;
32
+ declare function enableCodexFullAccess(): void;
32
33
  declare function clearCodexApiConfig(): void;
33
34
  declare function displayCodexConfig(config: CodexApiConfig): void;
34
35
 
@@ -129,5 +130,5 @@ declare function getPlatform(): Platform;
129
130
  declare function isWindows(): boolean;
130
131
  declare function commandExists(command: string): Promise<boolean>;
131
132
 
132
- export { CLAUDE_DIR, CLAUDE_SETTINGS_FILE, CODEX_AUTH_FILE, CODEX_CONFIG_FILE, CODEX_DIR, CODE_TOOL_ALIASES, CODE_TOOL_LABELS, CODE_TOOL_TYPES, DEFAULT_CODE_TOOL_TYPE, MODEL_PREFIX, RELAY_PROVIDER_ID, RELAY_TOOL_TYPES, buildModelsChoices, clearClaudeApiConfig, clearCodexApiConfig, commandExists, detectInstalledVersion, displayClaudeConfig, displayCodexConfig, ensureClaudeDir, fetchModels, filterByPrefix, getExistingClaudeApiConfig, getExistingCodexConfig, getPlatform, init, installTool, isCliTool, isCodeToolType, isToolInstalled, isWindows, readClaudeSettings, readLocalConfig, resolveCodeToolType, selectInstallMethod, uninstall, uninstallTool, updateLocalConfig, writeClaudeApiConfig, writeCodexApiConfig, writeLocalConfig };
133
+ export { CLAUDE_DIR, CLAUDE_SETTINGS_FILE, CODEX_AUTH_FILE, CODEX_CONFIG_FILE, CODEX_DIR, CODE_TOOL_ALIASES, CODE_TOOL_LABELS, CODE_TOOL_TYPES, DEFAULT_CODE_TOOL_TYPE, MODEL_PREFIX, RELAY_PROVIDER_ID, RELAY_TOOL_TYPES, buildModelsChoices, clearClaudeApiConfig, clearCodexApiConfig, commandExists, detectInstalledVersion, displayClaudeConfig, displayCodexConfig, enableCodexFullAccess, ensureClaudeDir, fetchModels, filterByPrefix, getExistingClaudeApiConfig, getExistingCodexConfig, getPlatform, init, installTool, isCliTool, isCodeToolType, isToolInstalled, isWindows, readClaudeSettings, readLocalConfig, resolveCodeToolType, selectInstallMethod, uninstall, uninstallTool, updateLocalConfig, writeClaudeApiConfig, writeCodexApiConfig, writeLocalConfig };
133
134
  export type { ClaudeApiConfig, CodeToolType, CodexApiConfig, InstallMethod, LocalConfig, RelayToolType, RemoteModel };
package/dist/index.mjs CHANGED
@@ -1,4 +1,5 @@
1
- export { C as CLAUDE_DIR, b as CLAUDE_SETTINGS_FILE, f as CODEX_AUTH_FILE, e as CODEX_CONFIG_FILE, d as CODEX_DIR, j as CODE_TOOL_ALIASES, k as CODE_TOOL_LABELS, h as CODE_TOOL_TYPES, D as DEFAULT_CODE_TOOL_TYPE, M as MODEL_PREFIX, n as RELAY_PROVIDER_ID, R as RELAY_TOOL_TYPES, L as buildModelsChoices, s as clearClaudeApiConfig, y as clearCodexApiConfig, c as commandExists, B as detectInstalledVersion, t as displayClaudeConfig, z as displayCodexConfig, o as ensureClaudeDir, K as fetchModels, N as filterByPrefix, q as getExistingClaudeApiConfig, v as getExistingCodexConfig, g as getPlatform, i as init, F as installTool, m as isCliTool, l as isCodeToolType, A as isToolInstalled, a as isWindows, p as readClaudeSettings, H as readLocalConfig, r as resolveCodeToolType, E as selectInstallMethod, u as uninstall, G as uninstallTool, J as updateLocalConfig, w as writeClaudeApiConfig, x as writeCodexApiConfig, I as writeLocalConfig } from './shared/srpllm.CsoL3qR-.mjs';
1
+ export { C as CLAUDE_DIR, b as CLAUDE_SETTINGS_FILE, f as CODEX_AUTH_FILE, e as CODEX_CONFIG_FILE, d as CODEX_DIR, j as CODE_TOOL_ALIASES, k as CODE_TOOL_LABELS, h as CODE_TOOL_TYPES, D as DEFAULT_CODE_TOOL_TYPE, M as MODEL_PREFIX, n as RELAY_PROVIDER_ID, R as RELAY_TOOL_TYPES, N as buildModelsChoices, s as clearClaudeApiConfig, z as clearCodexApiConfig, c as commandExists, E as detectInstalledVersion, t as displayClaudeConfig, A as displayCodexConfig, y as enableCodexFullAccess, o as ensureClaudeDir, L as fetchModels, O as filterByPrefix, q as getExistingClaudeApiConfig, v as getExistingCodexConfig, g as getPlatform, i as init, G as installTool, m as isCliTool, l as isCodeToolType, B as isToolInstalled, a as isWindows, p as readClaudeSettings, I as readLocalConfig, r as resolveCodeToolType, F as selectInstallMethod, u as uninstall, H as uninstallTool, K as updateLocalConfig, w as writeClaudeApiConfig, x as writeCodexApiConfig, J as writeLocalConfig } from './shared/srpllm.CdyEHPvp.mjs';
2
+ import 'node:child_process';
2
3
  import 'node:fs';
3
4
  import 'node:os';
4
5
  import 'node:process';
@@ -1,3 +1,4 @@
1
+ import { execSync } from 'node:child_process';
1
2
  import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync, unlinkSync } from 'node:fs';
2
3
  import { homedir, platform } from 'node:os';
3
4
  import process from 'node:process';
@@ -284,6 +285,40 @@ function writeCodexApiConfig(config) {
284
285
  auth.OPENAI_API_KEY = config.token;
285
286
  writeJson(CODEX_AUTH_FILE, auth);
286
287
  }
288
+ function applyCodexFullAccess(content) {
289
+ const settings = {
290
+ sandbox_mode: "danger-full-access",
291
+ approval_policy: "never"
292
+ };
293
+ const lines = content.split("\n");
294
+ let firstSection = lines.findIndex((line) => /^\s*\[[^\]]+\]/.test(line));
295
+ if (firstSection === -1)
296
+ firstSection = lines.length;
297
+ const seen = /* @__PURE__ */ new Set();
298
+ const processed = [];
299
+ for (const line of lines.slice(0, firstSection)) {
300
+ const match = line.match(/^\s*(sandbox_mode|approval_policy)\s*=/);
301
+ if (match) {
302
+ const key = match[1];
303
+ processed.push(`${key} = "${settings[key]}"`);
304
+ seen.add(key);
305
+ } else {
306
+ processed.push(line);
307
+ }
308
+ }
309
+ for (const key of Object.keys(settings)) {
310
+ if (!seen.has(key))
311
+ processed.push(`${key} = "${settings[key]}"`);
312
+ }
313
+ const result = [...processed, ...lines.slice(firstSection)].join("\n").replace(/\n{3,}/g, "\n\n").trimEnd();
314
+ return `${result}
315
+ `;
316
+ }
317
+ function enableCodexFullAccess() {
318
+ if (!exists(CODEX_CONFIG_FILE))
319
+ return;
320
+ writeFile(CODEX_CONFIG_FILE, applyCodexFullAccess(readFileRaw(CODEX_CONFIG_FILE)));
321
+ }
287
322
  function clearCodexApiConfig() {
288
323
  if (exists(CODEX_CONFIG_FILE)) {
289
324
  const backup = `${CODEX_CONFIG_FILE}.backup_${timestamp()}`;
@@ -568,7 +603,7 @@ function filterByPrefix(models, prefix) {
568
603
  return models.filter((m) => m.id.toLowerCase().startsWith(p));
569
604
  }
570
605
 
571
- const version = "1.2.5";
606
+ const version = "1.2.6";
572
607
 
573
608
  function displayBanner(codeTool) {
574
609
  const tool = codeTool ? ` ${ansis.gray(`\xB7 ${CODE_TOOL_LABELS[codeTool]}`)}` : "";
@@ -719,6 +754,7 @@ async function configureClaudeCode(options, baseUrl, token, memory) {
719
754
  writeClaudeApiConfig(config);
720
755
  console.log(ansis.green("\n\u2714 Claude Code \u914D\u7F6E\u5B8C\u6210"));
721
756
  displayClaudeConfig(config);
757
+ console.log(ansis.yellow("\n \u2139 \u63D0\u793A\uFF1A\u542F\u52A8\u65F6\u9644\u52A0 --dangerously-skip-permissions \u53EF\u8DF3\u8FC7\u6743\u9650\u786E\u8BA4\u3001\u6388\u4E88\u5B8C\u5168\u6743\u9650"));
722
758
  updateLocalConfig({ claude: { model, opusModel, sonnetModel, haikuModel } });
723
759
  }
724
760
  async function configureCodex(options, baseUrl, token, memory) {
@@ -741,6 +777,24 @@ async function configureCodex(options, baseUrl, token, memory) {
741
777
  writeCodexApiConfig(config);
742
778
  console.log(ansis.green("\n\u2714 Codex \u914D\u7F6E\u5B8C\u6210"));
743
779
  displayCodexConfig(config);
780
+ if (process.platform === "win32") {
781
+ try {
782
+ const output = execSync('pwsh -NoProfile -Command "(Get-Command pwsh).Source"', { encoding: "utf-8", stdio: ["pipe", "pipe", "ignore"] }).trim();
783
+ if (output.includes("WindowsApps")) {
784
+ console.log(ansis.yellow("\n\u26A0 \u68C0\u6D4B\u5230\u4F60\u4F7F\u7528\u7684\u662F\u5FAE\u8F6F\u5546\u5E97\u7248\u7684 PowerShell (pwsh)"));
785
+ console.log(ansis.gray(" \u8FD9\u4F1A\u5BFC\u81F4 Codex \u7684 Windows \u6C99\u76D2\u529F\u80FD\u51FA\u73B0 CreateProcessAsUserW failed: 5 \u6743\u9650\u9519\u8BEF\u3002"));
786
+ const shouldApply = options.skipPrompt ? true : await confirm("\u662F\u5426\u81EA\u52A8\u5728 Codex \u914D\u7F6E\u4E2D\u6388\u4E88\u5B8C\u5168\u8BBF\u95EE\u6743\u9650\u5E76\u5173\u95ED\u5BA1\u6279\u4EE5\u907F\u514D\u62A5\u9519\uFF1F", true);
787
+ if (shouldApply) {
788
+ enableCodexFullAccess();
789
+ console.log(ansis.green("\u2714 \u5DF2\u6388\u4E88\u5B8C\u5168\u8BBF\u95EE\u6743\u9650\uFF08sandbox_mode = danger-full-access\uFF09\u5E76\u5173\u95ED\u5BA1\u6279\uFF08approval_policy = never\uFF09"));
790
+ console.log(ansis.gray(" \u2139 \u7B49\u4EF7\u4E8E --dangerously-bypass-approvals-and-sandbox\uFF0CCodex \u542F\u52A8\u540E\u5C06\u8FDB\u5165 YOLO \u6A21\u5F0F"));
791
+ } else {
792
+ console.log(ansis.yellow("\u2139 \u5DF2\u8DF3\u8FC7\uFF0C\u82E5\u540E\u7EED\u8FD0\u884C\u62A5\u9519\uFF0C\u8BF7\u67E5\u9605\u6587\u6863\u6216\u624B\u52A8\u914D\u7F6E sandbox_mode / approval_policy"));
793
+ }
794
+ }
795
+ } catch {
796
+ }
797
+ }
744
798
  updateLocalConfig({ codex: { model } });
745
799
  }
746
800
  function getDownloadsDir() {
@@ -905,4 +959,4 @@ ${ansis.cyan("\u{1F389} \u6E05\u7406\u5B8C\u6210")}`);
905
959
  }
906
960
  }
907
961
 
908
- export { isToolInstalled as A, detectInstalledVersion as B, CLAUDE_DIR as C, DEFAULT_CODE_TOOL_TYPE as D, selectInstallMethod as E, installTool as F, uninstallTool as G, readLocalConfig as H, writeLocalConfig as I, updateLocalConfig as J, fetchModels as K, buildModelsChoices as L, MODEL_PREFIX as M, filterByPrefix as N, version as O, RELAY_TOOL_TYPES as R, isWindows as a, CLAUDE_SETTINGS_FILE as b, commandExists as c, CODEX_DIR as d, CODEX_CONFIG_FILE as e, CODEX_AUTH_FILE as f, getPlatform as g, CODE_TOOL_TYPES as h, init as i, CODE_TOOL_ALIASES as j, CODE_TOOL_LABELS as k, isCodeToolType as l, isCliTool as m, RELAY_PROVIDER_ID as n, ensureClaudeDir as o, readClaudeSettings as p, getExistingClaudeApiConfig as q, resolveCodeToolType as r, clearClaudeApiConfig as s, displayClaudeConfig as t, uninstall as u, getExistingCodexConfig as v, writeClaudeApiConfig as w, writeCodexApiConfig as x, clearCodexApiConfig as y, displayCodexConfig as z };
962
+ export { displayCodexConfig as A, isToolInstalled as B, CLAUDE_DIR as C, DEFAULT_CODE_TOOL_TYPE as D, detectInstalledVersion as E, selectInstallMethod as F, installTool as G, uninstallTool as H, readLocalConfig as I, writeLocalConfig as J, updateLocalConfig as K, fetchModels as L, MODEL_PREFIX as M, buildModelsChoices as N, filterByPrefix as O, version as P, RELAY_TOOL_TYPES as R, isWindows as a, CLAUDE_SETTINGS_FILE as b, commandExists as c, CODEX_DIR as d, CODEX_CONFIG_FILE as e, CODEX_AUTH_FILE as f, getPlatform as g, CODE_TOOL_TYPES as h, init as i, CODE_TOOL_ALIASES as j, CODE_TOOL_LABELS as k, isCodeToolType as l, isCliTool as m, RELAY_PROVIDER_ID as n, ensureClaudeDir as o, readClaudeSettings as p, getExistingClaudeApiConfig as q, resolveCodeToolType as r, clearClaudeApiConfig as s, displayClaudeConfig as t, uninstall as u, getExistingCodexConfig as v, writeClaudeApiConfig as w, writeCodexApiConfig as x, enableCodexFullAccess as y, clearCodexApiConfig as z };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "srpllm",
3
3
  "type": "module",
4
- "version": "1.2.5",
4
+ "version": "1.2.6",
5
5
  "packageManager": "pnpm@10.17.1",
6
6
  "description": "SrP-LLM 中转站客户端一键配置工具:安装 Claude Code / Codex 并引导填写 base_url、api_token 与模型",
7
7
  "author": {