evil-omo 3.11.2 → 3.11.4

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/README.ja.md CHANGED
@@ -15,7 +15,7 @@
15
15
  > | [<img alt="Discord link" src="https://img.shields.io/discord/1452487457085063218?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square" width="156px" />](https://discord.gg/PUwSMR9XNk) | [Discordコミュニティ](https://discord.gg/PUwSMR9XNk)に参加して、コントリビューターや他の `oh-my-opencode` ユーザーと交流しましょう。 |
16
16
  > | :-----| :----- |
17
17
  > | [<img alt="X link" src="https://img.shields.io/badge/Follow-%40justsisyphus-00CED1?style=flat-square&logo=x&labelColor=black" width="156px" />](https://x.com/justsisyphus) | `oh-my-opencode` のニュースやアップデートは私のXアカウントで投稿されていましたが、 <br /> 誤って凍結されてしまったため、現在は [@justsisyphus](https://x.com/justsisyphus) が代わりにアップデートを投稿しています。 |
18
- > | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/code-yeongyu?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/code-yeongyu) | さらに多くのプロジェクトを見たい場合は、GitHubで [@code-yeongyu](https://github.com/code-yeongyu) をフォローしてください。 |
18
+ > | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/D4ch1au?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/D4ch1au) | さらに多くのプロジェクトを見たい場合は、GitHubで [@D4ch1au](https://github.com/D4ch1au) をフォローしてください。 |
19
19
 
20
20
  <!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->
21
21
 
@@ -34,7 +34,7 @@
34
34
  <div align="center">
35
35
 
36
36
  [![GitHub Release](https://img.shields.io/github/v/release/D4ch1au/evil-oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/releases)
37
- [![npm downloads](https://img.shields.io/npm/dt/oh-my-opencode?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode)
37
+ [![npm downloads](https://img.shields.io/npm/dt/evil-omo?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/evil-omo)
38
38
  [![GitHub Contributors](https://img.shields.io/github/contributors/D4ch1au/evil-oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/graphs/contributors)
39
39
  [![GitHub Forks](https://img.shields.io/github/forks/D4ch1au/evil-oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/network/members)
40
40
  [![GitHub Stars](https://img.shields.io/github/stars/D4ch1au/evil-oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/stargazers)
package/README.ko.md CHANGED
@@ -10,7 +10,7 @@
10
10
  > | [<img alt="Discord link" src="https://img.shields.io/discord/1452487457085063218?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square" width="156px" />](https://discord.gg/PUwSMR9XNk) | [Discord 커뮤니티](https://discord.gg/PUwSMR9XNk)에 가입하여 기여자 및 다른 `oh-my-opencode` 사용자들과 소통하세요. |
11
11
  > | :-----| :----- |
12
12
  > | [<img alt="X link" src="https://img.shields.io/badge/Follow-%40justsisyphus-00CED1?style=flat-square&logo=x&labelColor=black" width="156px" />](https://x.com/justsisyphus) | `oh-my-opencode`에 대한 소식과 업데이트는 제 X 계정에 올라왔었지만, <br /> 실수로 정지된 이후에는 [@justsisyphus](https://x.com/justsisyphus)가 대신 업데이트를 게시하고 있습니다. |
13
- > | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/code-yeongyu?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/code-yeongyu) | 더 많은 프로젝트를 보려면 GitHub에서 [@code-yeongyu](https://github.com/code-yeongyu)를 팔로우하세요. |
13
+ > | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/D4ch1au?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/D4ch1au) | 더 많은 프로젝트를 보려면 GitHub에서 [@D4ch1au](https://github.com/D4ch1au)를 팔로우하세요. |
14
14
 
15
15
  <!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->
16
16
 
@@ -29,7 +29,7 @@
29
29
  <div align="center">
30
30
 
31
31
  [![GitHub Release](https://img.shields.io/github/v/release/D4ch1au/evil-oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/releases)
32
- [![npm downloads](https://img.shields.io/npm/dt/oh-my-opencode?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode)
32
+ [![npm downloads](https://img.shields.io/npm/dt/evil-omo?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/evil-omo)
33
33
  [![GitHub Contributors](https://img.shields.io/github/contributors/D4ch1au/evil-oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/graphs/contributors)
34
34
  [![GitHub Forks](https://img.shields.io/github/forks/D4ch1au/evil-oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/network/members)
35
35
  [![GitHub Stars](https://img.shields.io/github/stars/D4ch1au/evil-oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/stargazers)
package/README.md CHANGED
@@ -13,11 +13,30 @@ The injection ensures all agents operate under the authorized security research
13
13
 
14
14
  ## Installation
15
15
 
16
+ ### Interactive Installer (Recommended)
17
+
16
18
  ```bash
17
- npm install evil-omo
19
+ bunx evil-omo@latest install # recommended
20
+ npx evil-omo@latest install # alternative
21
+ ```
22
+
23
+ The installer will guide you through subscription configuration and set up everything automatically.
24
+
25
+ ### Manual Installation
26
+
27
+ ```bash
28
+ npm install evil-omo@latest
29
+ ```
30
+
31
+ Then add `"evil-omo@latest"` to the `plugin` array in your OpenCode config (`~/.config/opencode/opencode.json`):
32
+
33
+ ```json
34
+ {
35
+ "plugin": ["evil-omo@latest"]
36
+ }
18
37
  ```
19
38
 
20
- Then add `"evil-omo"` to the `plugin` array in your OpenCode config (`~/.config/opencode/opencode.json`).
39
+ Using `@latest` ensures you always get the newest version when upstream syncs occur.
21
40
 
22
41
  ## Upstream Sync
23
42
 
package/README.ru.md CHANGED
@@ -15,7 +15,7 @@
15
15
  > | [](https://discord.gg/PUwSMR9XNk) | Вступайте в наш [Discord](https://discord.gg/PUwSMR9XNk), чтобы общаться с контрибьюторами и пользователями `oh-my-opencode`. |
16
16
  > | ----------------------------------- | ------------------------------------------------------------ |
17
17
  > | [](https://x.com/justsisyphus) | Новости и обновления `oh-my-opencode` раньше публиковались на моём аккаунте X. <br /> После ошибочной блокировки, [@justsisyphus](https://x.com/justsisyphus) публикует обновления вместо меня. |
18
- > | [](https://github.com/code-yeongyu) | Подпишитесь на [@code-yeongyu](https://github.com/code-yeongyu) на GitHub, чтобы следить за другими проектами. |
18
+ > | [](https://github.com/D4ch1au) | Подпишитесь на [@D4ch1au](https://github.com/D4ch1au) на GitHub, чтобы следить за другими проектами. |
19
19
 
20
20
  <!-- <CENTERED SECTION FOR GITHUB DISPLAY> --> <div align="center">
21
21
 
@@ -31,7 +31,7 @@
31
31
 
32
32
  <div align="center">
33
33
 
34
- [![GitHub Release](https://img.shields.io/github/v/release/D4ch1au/evil-oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/releases) [![npm downloads](https://img.shields.io/npm/dt/oh-my-opencode?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) [![GitHub Contributors](https://img.shields.io/github/contributors/D4ch1au/evil-oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/D4ch1au/evil-oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/D4ch1au/evil-oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/stargazers) [![GitHub Issues](https://img.shields.io/github/issues/D4ch1au/evil-oh-my-openagent?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/issues) [![License](https://img.shields.io/badge/license-SUL--1.0-white?labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/blob/master/LICENSE.md) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/D4ch1au/evil-oh-my-openagent)
34
+ [![GitHub Release](https://img.shields.io/github/v/release/D4ch1au/evil-oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/releases) [![npm downloads](https://img.shields.io/npm/dt/evil-omo?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/evil-omo) [![GitHub Contributors](https://img.shields.io/github/contributors/D4ch1au/evil-oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/D4ch1au/evil-oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/D4ch1au/evil-oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/stargazers) [![GitHub Issues](https://img.shields.io/github/issues/D4ch1au/evil-oh-my-openagent?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/issues) [![License](https://img.shields.io/badge/license-SUL--1.0-white?labelColor=black&style=flat-square)](https://github.com/D4ch1au/evil-oh-my-openagent/blob/master/LICENSE.md) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/D4ch1au/evil-oh-my-openagent)
35
35
 
36
36
  English | 한국어 | 日本語 | 简体中文 | Русский
37
37
 
package/README.zh-cn.md CHANGED
@@ -15,7 +15,7 @@
15
15
  > | [<img alt="Discord link" src="https://img.shields.io/discord/1452487457085063218?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square" width="156px" />](https://discord.gg/PUwSMR9XNk) | 加入我们的 [Discord 社区](https://discord.gg/PUwSMR9XNk),与贡献者及其他 `oh-my-opencode` 用户交流。 |
16
16
  > | :-----| :----- |
17
17
  > | [<img alt="X link" src="https://img.shields.io/badge/Follow-%40justsisyphus-00CED1?style=flat-square&logo=x&labelColor=black" width="156px" />](https://x.com/justsisyphus) | 关于 `oh-my-opencode` 的新闻和更新过去发布在我的 X 账号上。<br /> 因为账号被意外停用,现在由 [@justsisyphus](https://x.com/justsisyphus) 代为发布更新。 |
18
- > | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/code-yeongyu?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/code-yeongyu) | 在 GitHub 上关注 [@code-yeongyu](https://github.com/code-yeongyu) 获取更多项目信息。 |
18
+ > | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/D4ch1au?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/D4ch1au) | 在 GitHub 上关注 [@D4ch1au](https://github.com/D4ch1au) 获取更多项目信息。 |
19
19
 
20
20
  <!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->
21
21
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // bin/oh-my-opencode.js
2
+ // bin/evil-omo.js
3
3
  // Wrapper script that detects platform and spawns the correct binary
4
4
 
5
5
  import { spawnSync } from "node:child_process";
@@ -8,6 +8,9 @@ import { createRequire } from "node:module";
8
8
  import { getPlatformPackageCandidates, getBinaryPath } from "./platform.js";
9
9
 
10
10
  const require = createRequire(import.meta.url);
11
+ const PLUGIN_NAME = "evil-omo";
12
+ const FORCE_BASELINE_ENV = "EVIL_OMO_FORCE_BASELINE";
13
+ const LEGACY_FORCE_BASELINE_ENV = "OH_MY_OPENCODE_FORCE_BASELINE";
11
14
 
12
15
  /**
13
16
  * Detect libc family on Linux
@@ -32,7 +35,7 @@ function supportsAvx2() {
32
35
  return null;
33
36
  }
34
37
 
35
- if (process.env.OH_MY_OPENCODE_FORCE_BASELINE === "1") {
38
+ if (process.env[FORCE_BASELINE_ENV] === "1" || process.env[LEGACY_FORCE_BASELINE_ENV] === "1") {
36
39
  return false;
37
40
  }
38
41
 
@@ -85,7 +88,7 @@ function main() {
85
88
  preferBaseline: avx2Supported === false,
86
89
  });
87
90
  } catch (error) {
88
- console.error(`\noh-my-opencode: ${error.message}\n`);
91
+ console.error(`\n${PLUGIN_NAME}: ${error.message}\n`);
89
92
  process.exit(1);
90
93
  }
91
94
 
@@ -100,7 +103,7 @@ function main() {
100
103
  .filter((entry) => entry !== null);
101
104
 
102
105
  if (resolvedBinaries.length === 0) {
103
- console.error(`\noh-my-opencode: Platform binary not installed.`);
106
+ console.error(`\n${PLUGIN_NAME}: Platform binary not installed.`);
104
107
  console.error(`\nYour platform: ${platform}-${arch}${libcFamily === "musl" ? "-musl" : ""}`);
105
108
  console.error(`Expected packages (in order): ${packageCandidates.join(", ")}`);
106
109
  console.error(`\nTo fix, run:`);
@@ -120,7 +123,7 @@ function main() {
120
123
  continue;
121
124
  }
122
125
 
123
- console.error(`\noh-my-opencode: Failed to execute binary.`);
126
+ console.error(`\n${PLUGIN_NAME}: Failed to execute binary.`);
124
127
  console.error(`Error: ${result.error.message}\n`);
125
128
  process.exit(2);
126
129
  }
package/bin/platform.js CHANGED
@@ -1,10 +1,13 @@
1
1
  // bin/platform.js
2
2
  // Shared platform detection module - used by wrapper and postinstall
3
3
 
4
+ const PLATFORM_PACKAGE_PREFIX = "evil-omo";
5
+ const CLI_BINARY_NAME = "evil-omo";
6
+
4
7
  /**
5
8
  * Get the platform-specific package name
6
9
  * @param {{ platform: string, arch: string, libcFamily?: string | null }} options
7
- * @returns {string} Package name like "oh-my-opencode-darwin-arm64"
10
+ * @returns {string} Package name like "evil-omo-darwin-arm64"
8
11
  * @throws {Error} If libc cannot be detected on Linux
9
12
  */
10
13
  export function getPlatformPackage({ platform, arch, libcFamily }) {
@@ -23,7 +26,7 @@ export function getPlatformPackage({ platform, arch, libcFamily }) {
23
26
 
24
27
  // Map platform names: win32 -> windows (for package name)
25
28
  const os = platform === "win32" ? "windows" : platform;
26
- return `oh-my-opencode-${os}-${arch}${suffix}`;
29
+ return `${PLATFORM_PACKAGE_PREFIX}-${os}-${arch}${suffix}`;
27
30
  }
28
31
 
29
32
  /** @param {{ platform: string, arch: string, libcFamily?: string | null, preferBaseline?: boolean }} options */
@@ -45,11 +48,11 @@ function getBaselinePlatformPackage({ platform, arch, libcFamily }) {
45
48
  }
46
49
 
47
50
  if (platform === "darwin") {
48
- return "oh-my-opencode-darwin-x64-baseline";
51
+ return `${PLATFORM_PACKAGE_PREFIX}-darwin-x64-baseline`;
49
52
  }
50
53
 
51
54
  if (platform === "win32") {
52
- return "oh-my-opencode-windows-x64-baseline";
55
+ return `${PLATFORM_PACKAGE_PREFIX}-windows-x64-baseline`;
53
56
  }
54
57
 
55
58
  if (platform === "linux") {
@@ -61,10 +64,10 @@ function getBaselinePlatformPackage({ platform, arch, libcFamily }) {
61
64
  }
62
65
 
63
66
  if (libcFamily === "musl") {
64
- return "oh-my-opencode-linux-x64-musl-baseline";
67
+ return `${PLATFORM_PACKAGE_PREFIX}-linux-x64-musl-baseline`;
65
68
  }
66
69
 
67
- return "oh-my-opencode-linux-x64-baseline";
70
+ return `${PLATFORM_PACKAGE_PREFIX}-linux-x64-baseline`;
68
71
  }
69
72
 
70
73
  return null;
@@ -74,9 +77,9 @@ function getBaselinePlatformPackage({ platform, arch, libcFamily }) {
74
77
  * Get the path to the binary within a platform package
75
78
  * @param {string} pkg Package name
76
79
  * @param {string} platform Process platform
77
- * @returns {string} Relative path like "oh-my-opencode-darwin-arm64/bin/oh-my-opencode"
80
+ * @returns {string} Relative path like "evil-omo-darwin-arm64/bin/evil-omo"
78
81
  */
79
82
  export function getBinaryPath(pkg, platform) {
80
83
  const ext = platform === "win32" ? ".exe" : "";
81
- return `${pkg}/bin/oh-my-opencode${ext}`;
84
+ return `${pkg}/bin/${CLI_BINARY_NAME}${ext}`;
82
85
  }
@@ -12,7 +12,7 @@ describe("getPlatformPackage", () => {
12
12
  const result = getPlatformPackage(input);
13
13
 
14
14
  // #then returns correct package name
15
- expect(result).toBe("oh-my-opencode-darwin-arm64");
15
+ expect(result).toBe("evil-omo-darwin-arm64");
16
16
  });
17
17
 
18
18
  test("returns darwin-x64 for macOS Intel", () => {
@@ -23,7 +23,7 @@ describe("getPlatformPackage", () => {
23
23
  const result = getPlatformPackage(input);
24
24
 
25
25
  // #then returns correct package name
26
- expect(result).toBe("oh-my-opencode-darwin-x64");
26
+ expect(result).toBe("evil-omo-darwin-x64");
27
27
  });
28
28
  // #endregion
29
29
 
@@ -36,7 +36,7 @@ describe("getPlatformPackage", () => {
36
36
  const result = getPlatformPackage(input);
37
37
 
38
38
  // #then returns correct package name
39
- expect(result).toBe("oh-my-opencode-linux-x64");
39
+ expect(result).toBe("evil-omo-linux-x64");
40
40
  });
41
41
 
42
42
  test("returns linux-arm64 for Linux ARM64 with glibc", () => {
@@ -47,7 +47,7 @@ describe("getPlatformPackage", () => {
47
47
  const result = getPlatformPackage(input);
48
48
 
49
49
  // #then returns correct package name
50
- expect(result).toBe("oh-my-opencode-linux-arm64");
50
+ expect(result).toBe("evil-omo-linux-arm64");
51
51
  });
52
52
  // #endregion
53
53
 
@@ -60,7 +60,7 @@ describe("getPlatformPackage", () => {
60
60
  const result = getPlatformPackage(input);
61
61
 
62
62
  // #then returns correct package name with musl suffix
63
- expect(result).toBe("oh-my-opencode-linux-x64-musl");
63
+ expect(result).toBe("evil-omo-linux-x64-musl");
64
64
  });
65
65
 
66
66
  test("returns linux-arm64-musl for Alpine ARM64", () => {
@@ -71,7 +71,7 @@ describe("getPlatformPackage", () => {
71
71
  const result = getPlatformPackage(input);
72
72
 
73
73
  // #then returns correct package name with musl suffix
74
- expect(result).toBe("oh-my-opencode-linux-arm64-musl");
74
+ expect(result).toBe("evil-omo-linux-arm64-musl");
75
75
  });
76
76
  // #endregion
77
77
 
@@ -84,7 +84,7 @@ describe("getPlatformPackage", () => {
84
84
  const result = getPlatformPackage(input);
85
85
 
86
86
  // #then returns correct package name with 'windows' not 'win32'
87
- expect(result).toBe("oh-my-opencode-windows-x64");
87
+ expect(result).toBe("evil-omo-windows-x64");
88
88
  });
89
89
  // #endregion
90
90
 
@@ -112,38 +112,38 @@ describe("getPlatformPackage", () => {
112
112
  describe("getBinaryPath", () => {
113
113
  test("returns path without .exe for Unix platforms", () => {
114
114
  // #given Unix platform package
115
- const pkg = "oh-my-opencode-darwin-arm64";
115
+ const pkg = "evil-omo-darwin-arm64";
116
116
  const platform = "darwin";
117
117
 
118
118
  // #when getting binary path
119
119
  const result = getBinaryPath(pkg, platform);
120
120
 
121
121
  // #then returns path without extension
122
- expect(result).toBe("oh-my-opencode-darwin-arm64/bin/oh-my-opencode");
122
+ expect(result).toBe("evil-omo-darwin-arm64/bin/evil-omo");
123
123
  });
124
124
 
125
125
  test("returns path with .exe for Windows", () => {
126
126
  // #given Windows platform package
127
- const pkg = "oh-my-opencode-windows-x64";
127
+ const pkg = "evil-omo-windows-x64";
128
128
  const platform = "win32";
129
129
 
130
130
  // #when getting binary path
131
131
  const result = getBinaryPath(pkg, platform);
132
132
 
133
133
  // #then returns path with .exe extension
134
- expect(result).toBe("oh-my-opencode-windows-x64/bin/oh-my-opencode.exe");
134
+ expect(result).toBe("evil-omo-windows-x64/bin/evil-omo.exe");
135
135
  });
136
136
 
137
137
  test("returns path without .exe for Linux", () => {
138
138
  // #given Linux platform package
139
- const pkg = "oh-my-opencode-linux-x64";
139
+ const pkg = "evil-omo-linux-x64";
140
140
  const platform = "linux";
141
141
 
142
142
  // #when getting binary path
143
143
  const result = getBinaryPath(pkg, platform);
144
144
 
145
145
  // #then returns path without extension
146
- expect(result).toBe("oh-my-opencode-linux-x64/bin/oh-my-opencode");
146
+ expect(result).toBe("evil-omo-linux-x64/bin/evil-omo");
147
147
  });
148
148
  });
149
149
 
@@ -157,8 +157,8 @@ describe("getPlatformPackageCandidates", () => {
157
157
 
158
158
  // #then returns modern first then baseline fallback
159
159
  expect(result).toEqual([
160
- "oh-my-opencode-linux-x64",
161
- "oh-my-opencode-linux-x64-baseline",
160
+ "evil-omo-linux-x64",
161
+ "evil-omo-linux-x64-baseline",
162
162
  ]);
163
163
  });
164
164
 
@@ -171,8 +171,8 @@ describe("getPlatformPackageCandidates", () => {
171
171
 
172
172
  // #then returns musl modern first then musl baseline fallback
173
173
  expect(result).toEqual([
174
- "oh-my-opencode-linux-x64-musl",
175
- "oh-my-opencode-linux-x64-musl-baseline",
174
+ "evil-omo-linux-x64-musl",
175
+ "evil-omo-linux-x64-musl-baseline",
176
176
  ]);
177
177
  });
178
178
 
@@ -185,8 +185,8 @@ describe("getPlatformPackageCandidates", () => {
185
185
 
186
186
  // #then baseline package is preferred first
187
187
  expect(result).toEqual([
188
- "oh-my-opencode-windows-x64-baseline",
189
- "oh-my-opencode-windows-x64",
188
+ "evil-omo-windows-x64-baseline",
189
+ "evil-omo-windows-x64",
190
190
  ]);
191
191
  });
192
192
 
@@ -198,6 +198,6 @@ describe("getPlatformPackageCandidates", () => {
198
198
  const result = getPlatformPackageCandidates(input);
199
199
 
200
200
  // #then baseline fallback is not included
201
- expect(result).toEqual(["oh-my-opencode-linux-arm64"]);
201
+ expect(result).toEqual(["evil-omo-linux-arm64"]);
202
202
  });
203
203
  });
@@ -11,3 +11,4 @@ export declare function getConfigDir(): string;
11
11
  export declare function getConfigJson(): string;
12
12
  export declare function getConfigJsonc(): string;
13
13
  export declare function getOmoConfigPath(): string;
14
+ export declare function getExistingOmoConfigPath(): string | null;
@@ -25,5 +25,5 @@ export declare const EXIT_CODES: {
25
25
  readonly FAILURE: 1;
26
26
  };
27
27
  export declare const MIN_OPENCODE_VERSION = "1.0.150";
28
- export declare const PACKAGE_NAME = "oh-my-opencode";
28
+ export declare const PACKAGE_NAME = "evil-omo";
29
29
  export declare const OPENCODE_BINARIES: readonly ["opencode", "opencode-desktop"];