oh-my-opencode-cohub 1.12.9-beta.3 → 1.12.9-beta.5

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.
@@ -1,5 +1,5 @@
1
1
  /** 添加 CoHub 到 opencode.json 的 plugin 数组 */
2
- export declare function addPluginToOpenCodeConfig(): {
2
+ export declare function addPluginToOpenCodeConfig(version: string): {
3
3
  success: boolean;
4
4
  message: string;
5
5
  };
@@ -25,4 +25,9 @@ export declare function uninstallCoHub(): {
25
25
  success: boolean;
26
26
  messages: string[];
27
27
  };
28
+ /** 将 cohub 安装到 ~/.cache/opencode/packages/oh-my-opencode-cohub/(含完整 node_modules) */
29
+ export declare function installToCacheDir(version: string): {
30
+ success: boolean;
31
+ message: string;
32
+ };
28
33
  //# sourceMappingURL=config-io.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-io.d.ts","sourceRoot":"","sources":["../../src/cli/config-io.ts"],"names":[],"mappings":"AAkCA,2CAA2C;AAC3C,wBAAgB,yBAAyB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAajF;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAa5E;AAOD;;wDAEwD;AACxD,wBAAgB,mBAAmB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuF3E;AA8ED,4DAA4D;AAC5D,wBAAgB,kBAAkB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA2G1E;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA6GzE"}
1
+ {"version":3,"file":"config-io.d.ts","sourceRoot":"","sources":["../../src/cli/config-io.ts"],"names":[],"mappings":"AAmCA,2CAA2C;AAC3C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAwBhG;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAa5E;AAOD;;wDAEwD;AACxD,wBAAgB,mBAAmB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuF3E;AA+ED,4DAA4D;AAC5D,wBAAgB,kBAAkB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA2G1E;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAgIzE;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA6BxF"}
package/dist/cli/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  // package.json
3
- var version = "1.12.9-beta.3";
3
+ var version = "1.12.9-beta.5";
4
4
 
5
5
  // src/cli/config-io.ts
6
6
  import * as fs from "node:fs";
7
7
  import * as path from "node:path";
8
8
  import * as os from "node:os";
9
+ import { execSync } from "node:child_process";
9
10
  var PACKAGE_NAME = "oh-my-opencode-cohub";
10
11
  function getOpencodeConfigPath() {
11
12
  return path.join(os.homedir(), ".config", "opencode", "opencode.json");
@@ -35,17 +36,25 @@ function writeJSON(filePath, data) {
35
36
  `;
36
37
  fs.writeFileSync(filePath, content, "utf-8");
37
38
  }
38
- function addPluginToOpenCodeConfig() {
39
+ function addPluginToOpenCodeConfig(version2) {
39
40
  const configPath = getOpencodeConfigPath();
40
41
  let config = readJSON(configPath) ?? {};
41
42
  const plugins = Array.isArray(config.plugin) ? [...config.plugin] : [];
43
+ const pkgSpec = `${PACKAGE_NAME}@${version2}`;
42
44
  if (plugins.some((p) => p.includes(PACKAGE_NAME))) {
43
- return { success: true, message: "CoHub 已在 opencode.json 的 plugin 数组中,跳过" };
45
+ for (let i = 0;i < plugins.length; i++) {
46
+ if (plugins[i].includes(PACKAGE_NAME)) {
47
+ plugins[i] = pkgSpec;
48
+ }
49
+ }
50
+ config.plugin = plugins;
51
+ writeJSON(configPath, config);
52
+ return { success: true, message: `✓ 已更新 "${pkgSpec}" 到 opencode.json 的 plugin 数组` };
44
53
  }
45
- plugins.unshift(PACKAGE_NAME);
54
+ plugins.unshift(pkgSpec);
46
55
  config.plugin = plugins;
47
56
  writeJSON(configPath, config);
48
- return { success: true, message: `✓ 已添加 "${PACKAGE_NAME}" 到 opencode.json 的 plugin 数组` };
57
+ return { success: true, message: `✓ 已添加 "${pkgSpec}" 到 opencode.json 的 plugin 数组` };
49
58
  }
50
59
  function addPluginToTuiConfig() {
51
60
  const configPath = getTuiConfigPath();
@@ -141,6 +150,7 @@ function registerCoHubAgents() {
141
150
  return { success: true, message: `✓ ${msgParts.join(",")}` };
142
151
  }
143
152
  var COHUB_CONFIG_PATH = path.join(os.homedir(), ".config", "opencode", "oh-my-opencode-cohub.json");
153
+ var PACKAGES_CACHE = path.join(os.homedir(), ".cache", "opencode", "packages", PACKAGE_NAME);
144
154
  var HEAVY_KEYWORDS = ["pro", "preview", "opus", "max", "sonnet", "gpt-5.6"];
145
155
  var LIGHT_KEYWORDS = ["flash", "mini", "haiku", "gpt-5.4", "gpt-5.3"];
146
156
  var DESIGN_KEYWORDS = ["minimax", "m3", "sonnet", "claude"];
@@ -396,9 +406,45 @@ function uninstallCoHub() {
396
406
  }
397
407
  }
398
408
  }
409
+ if (fs.existsSync(PACKAGES_CACHE)) {
410
+ try {
411
+ fs.rmSync(PACKAGES_CACHE, { recursive: true, force: true });
412
+ messages.push("✓ 已清理缓存目录");
413
+ } catch {
414
+ messages.push("⚠ 清理缓存目录失败,请手动删除: " + PACKAGES_CACHE);
415
+ }
416
+ }
417
+ const legacyPluginsDir = path.join(os.homedir(), ".config", "opencode", "plugins", PACKAGE_NAME);
418
+ if (fs.existsSync(legacyPluginsDir)) {
419
+ try {
420
+ fs.rmSync(legacyPluginsDir, { recursive: true, force: true });
421
+ messages.push("✓ 已清理旧 plugins 目录");
422
+ } catch {}
423
+ }
399
424
  messages.push("✅ CoHub 卸载完成。完全关闭 OpenCode 后重新打开即可。");
400
425
  return { success: true, messages };
401
426
  }
427
+ function installToCacheDir(version2) {
428
+ try {
429
+ const targetDir = PACKAGES_CACHE;
430
+ if (fs.existsSync(targetDir)) {
431
+ fs.rmSync(targetDir, { recursive: true, force: true });
432
+ }
433
+ fs.mkdirSync(targetDir, { recursive: true });
434
+ const pkgJson = { private: true };
435
+ fs.writeFileSync(path.join(targetDir, "package.json"), JSON.stringify(pkgJson, null, 2), "utf-8");
436
+ const pkgSpec = `${PACKAGE_NAME}@${version2}`;
437
+ const cmd = `npm install "${pkgSpec}" --save --legacy-peer-deps`;
438
+ execSync(cmd, { cwd: targetDir, stdio: "pipe", timeout: 120000 });
439
+ const entryPath = path.join(targetDir, "node_modules", PACKAGE_NAME, "dist", "index.js");
440
+ if (!fs.existsSync(entryPath)) {
441
+ return { success: false, message: `⚠ npm install 成功但入口文件缺失: ${entryPath}` };
442
+ }
443
+ return { success: true, message: `✓ 已安装 ${pkgSpec} 到 ${targetDir}` };
444
+ } catch (e) {
445
+ return { success: false, message: `⚠ 安装失败: ${e.message}` };
446
+ }
447
+ }
402
448
 
403
449
  // src/cli/index.ts
404
450
  async function main() {
@@ -407,7 +453,9 @@ async function main() {
407
453
  if (command === "install") {
408
454
  console.log(`\uD83D\uDE80 oh-my-opencode-cohub v${version} 安装中...
409
455
  `);
410
- const r1 = addPluginToOpenCodeConfig();
456
+ const r0 = installToCacheDir(version);
457
+ console.log(r0.message);
458
+ const r1 = addPluginToOpenCodeConfig(version);
411
459
  console.log(r1.message);
412
460
  const r2 = addPluginToTuiConfig();
413
461
  console.log(r2.message);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode-cohub",
3
- "version": "1.12.9-beta.3",
3
+ "version": "1.12.9-beta.5",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Mr-cjf/oh-my-opencode-cohub.git"