poe-code 3.0.27 → 3.0.29

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 (226) hide show
  1. package/README.md +38 -25
  2. package/package.json +1 -1
  3. package/dist/bin/poe-claude.js +0 -23
  4. package/dist/bin/poe-codex.js +0 -23
  5. package/dist/bin/poe-kimi-cli.js +0 -23
  6. package/dist/bin/poe-opencode.js +0 -23
  7. package/dist/bin.cjs +0 -9
  8. package/dist/cli/binary-aliases.d.ts +0 -7
  9. package/dist/cli/binary-aliases.js +0 -26
  10. package/dist/cli/binary-aliases.js.map +0 -1
  11. package/dist/cli/bootstrap.d.ts +0 -4
  12. package/dist/cli/bootstrap.js +0 -78
  13. package/dist/cli/bootstrap.js.map +0 -1
  14. package/dist/cli/command-not-found.d.ts +0 -8
  15. package/dist/cli/command-not-found.js +0 -34
  16. package/dist/cli/command-not-found.js.map +0 -1
  17. package/dist/cli/commands/configure-payload.d.ts +0 -15
  18. package/dist/cli/commands/configure-payload.js +0 -31
  19. package/dist/cli/commands/configure-payload.js.map +0 -1
  20. package/dist/cli/commands/configure.d.ts +0 -12
  21. package/dist/cli/commands/configure.js +0 -151
  22. package/dist/cli/commands/configure.js.map +0 -1
  23. package/dist/cli/commands/ensure-isolated-config.d.ts +0 -12
  24. package/dist/cli/commands/ensure-isolated-config.js +0 -53
  25. package/dist/cli/commands/ensure-isolated-config.js.map +0 -1
  26. package/dist/cli/commands/generate.d.ts +0 -9
  27. package/dist/cli/commands/generate.js +0 -322
  28. package/dist/cli/commands/generate.js.map +0 -1
  29. package/dist/cli/commands/install.d.ts +0 -4
  30. package/dist/cli/commands/install.js +0 -40
  31. package/dist/cli/commands/install.js.map +0 -1
  32. package/dist/cli/commands/login.d.ts +0 -6
  33. package/dist/cli/commands/login.js +0 -105
  34. package/dist/cli/commands/login.js.map +0 -1
  35. package/dist/cli/commands/mcp.d.ts +0 -3
  36. package/dist/cli/commands/mcp.js +0 -178
  37. package/dist/cli/commands/mcp.js.map +0 -1
  38. package/dist/cli/commands/models.d.ts +0 -3
  39. package/dist/cli/commands/models.js +0 -183
  40. package/dist/cli/commands/models.js.map +0 -1
  41. package/dist/cli/commands/ralph-worktree.d.ts +0 -3
  42. package/dist/cli/commands/ralph-worktree.js +0 -73
  43. package/dist/cli/commands/ralph-worktree.js.map +0 -1
  44. package/dist/cli/commands/ralph.d.ts +0 -3
  45. package/dist/cli/commands/ralph.js +0 -424
  46. package/dist/cli/commands/ralph.js.map +0 -1
  47. package/dist/cli/commands/shared.d.ts +0 -29
  48. package/dist/cli/commands/shared.js +0 -82
  49. package/dist/cli/commands/shared.js.map +0 -1
  50. package/dist/cli/commands/skill.d.ts +0 -3
  51. package/dist/cli/commands/skill.js +0 -242
  52. package/dist/cli/commands/skill.js.map +0 -1
  53. package/dist/cli/commands/spawn.d.ts +0 -17
  54. package/dist/cli/commands/spawn.js +0 -226
  55. package/dist/cli/commands/spawn.js.map +0 -1
  56. package/dist/cli/commands/test.d.ts +0 -8
  57. package/dist/cli/commands/test.js +0 -124
  58. package/dist/cli/commands/test.js.map +0 -1
  59. package/dist/cli/commands/unconfigure.d.ts +0 -7
  60. package/dist/cli/commands/unconfigure.js +0 -116
  61. package/dist/cli/commands/unconfigure.js.map +0 -1
  62. package/dist/cli/commands/usage.d.ts +0 -3
  63. package/dist/cli/commands/usage.js +0 -186
  64. package/dist/cli/commands/usage.js.map +0 -1
  65. package/dist/cli/commands/version.d.ts +0 -3
  66. package/dist/cli/commands/version.js +0 -31
  67. package/dist/cli/commands/version.js.map +0 -1
  68. package/dist/cli/commands/wrap.d.ts +0 -3
  69. package/dist/cli/commands/wrap.js +0 -61
  70. package/dist/cli/commands/wrap.js.map +0 -1
  71. package/dist/cli/constants.d.ts +0 -24
  72. package/dist/cli/constants.js +0 -44
  73. package/dist/cli/constants.js.map +0 -1
  74. package/dist/cli/container.d.ts +0 -42
  75. package/dist/cli/container.js +0 -90
  76. package/dist/cli/container.js.map +0 -1
  77. package/dist/cli/context.d.ts +0 -33
  78. package/dist/cli/context.js +0 -91
  79. package/dist/cli/context.js.map +0 -1
  80. package/dist/cli/environment.d.ts +0 -21
  81. package/dist/cli/environment.js +0 -106
  82. package/dist/cli/environment.js.map +0 -1
  83. package/dist/cli/error-logger.d.ts +0 -62
  84. package/dist/cli/error-logger.js +0 -155
  85. package/dist/cli/error-logger.js.map +0 -1
  86. package/dist/cli/errors.d.ts +0 -95
  87. package/dist/cli/errors.js +0 -141
  88. package/dist/cli/errors.js.map +0 -1
  89. package/dist/cli/exit-signals.d.ts +0 -4
  90. package/dist/cli/exit-signals.js +0 -8
  91. package/dist/cli/exit-signals.js.map +0 -1
  92. package/dist/cli/http.d.ts +0 -12
  93. package/dist/cli/http.js +0 -2
  94. package/dist/cli/http.js.map +0 -1
  95. package/dist/cli/isolated-env-runner.d.ts +0 -10
  96. package/dist/cli/isolated-env-runner.js +0 -50
  97. package/dist/cli/isolated-env-runner.js.map +0 -1
  98. package/dist/cli/isolated-env.d.ts +0 -24
  99. package/dist/cli/isolated-env.js +0 -210
  100. package/dist/cli/isolated-env.js.map +0 -1
  101. package/dist/cli/logger.d.ts +0 -36
  102. package/dist/cli/logger.js +0 -191
  103. package/dist/cli/logger.js.map +0 -1
  104. package/dist/cli/mcp-output-format.d.ts +0 -2
  105. package/dist/cli/mcp-output-format.js +0 -27
  106. package/dist/cli/mcp-output-format.js.map +0 -1
  107. package/dist/cli/mcp-server.d.ts +0 -21
  108. package/dist/cli/mcp-server.js +0 -321
  109. package/dist/cli/mcp-server.js.map +0 -1
  110. package/dist/cli/options.d.ts +0 -45
  111. package/dist/cli/options.js +0 -111
  112. package/dist/cli/options.js.map +0 -1
  113. package/dist/cli/poe-code-command-runner.d.ts +0 -6
  114. package/dist/cli/poe-code-command-runner.js +0 -63
  115. package/dist/cli/poe-code-command-runner.js.map +0 -1
  116. package/dist/cli/program.d.ts +0 -4
  117. package/dist/cli/program.js +0 -249
  118. package/dist/cli/program.js.map +0 -1
  119. package/dist/cli/prompt-runner.d.ts +0 -10
  120. package/dist/cli/prompt-runner.js +0 -79
  121. package/dist/cli/prompt-runner.js.map +0 -1
  122. package/dist/cli/prompts.d.ts +0 -39
  123. package/dist/cli/prompts.js +0 -42
  124. package/dist/cli/prompts.js.map +0 -1
  125. package/dist/cli/service-registry.d.ts +0 -108
  126. package/dist/cli/service-registry.js +0 -83
  127. package/dist/cli/service-registry.js.map +0 -1
  128. package/dist/cli/types.d.ts +0 -2
  129. package/dist/cli/types.js +0 -2
  130. package/dist/cli/types.js.map +0 -1
  131. package/dist/cli/ui/service-menu.d.ts +0 -7
  132. package/dist/cli/ui/service-menu.js +0 -43
  133. package/dist/cli/ui/service-menu.js.map +0 -1
  134. package/dist/index.d.ts +0 -8
  135. package/dist/index.js +0 -36800
  136. package/dist/index.js.map +0 -7
  137. package/dist/providers/claude-code.d.ts +0 -13
  138. package/dist/providers/claude-code.js +0 -143
  139. package/dist/providers/claude-code.js.map +0 -1
  140. package/dist/providers/codex.d.ts +0 -17
  141. package/dist/providers/codex.js +0 -144
  142. package/dist/providers/codex.js.map +0 -1
  143. package/dist/providers/create-provider.d.ts +0 -29
  144. package/dist/providers/create-provider.js +0 -78
  145. package/dist/providers/create-provider.js.map +0 -1
  146. package/dist/providers/index.d.ts +0 -2
  147. package/dist/providers/index.js +0 -8
  148. package/dist/providers/index.js.map +0 -1
  149. package/dist/providers/kimi.d.ts +0 -4
  150. package/dist/providers/kimi.js +0 -123
  151. package/dist/providers/kimi.js.map +0 -1
  152. package/dist/providers/opencode.d.ts +0 -3
  153. package/dist/providers/opencode.js +0 -119
  154. package/dist/providers/opencode.js.map +0 -1
  155. package/dist/providers/spawn-options.d.ts +0 -13
  156. package/dist/providers/spawn-options.js +0 -2
  157. package/dist/providers/spawn-options.js.map +0 -1
  158. package/dist/sdk/container.d.ts +0 -18
  159. package/dist/sdk/container.js +0 -127
  160. package/dist/sdk/container.js.map +0 -1
  161. package/dist/sdk/credentials.d.ts +0 -9
  162. package/dist/sdk/credentials.js +0 -35
  163. package/dist/sdk/credentials.js.map +0 -1
  164. package/dist/sdk/generate.d.ts +0 -5
  165. package/dist/sdk/generate.js +0 -97
  166. package/dist/sdk/generate.js.map +0 -1
  167. package/dist/sdk/spawn-core.d.ts +0 -23
  168. package/dist/sdk/spawn-core.js +0 -105
  169. package/dist/sdk/spawn-core.js.map +0 -1
  170. package/dist/sdk/spawn.d.ts +0 -31
  171. package/dist/sdk/spawn.js +0 -109
  172. package/dist/sdk/spawn.js.map +0 -1
  173. package/dist/sdk/types.d.ts +0 -44
  174. package/dist/sdk/types.js +0 -2
  175. package/dist/sdk/types.js.map +0 -1
  176. package/dist/services/client-instance.d.ts +0 -12
  177. package/dist/services/client-instance.js +0 -36
  178. package/dist/services/client-instance.js.map +0 -1
  179. package/dist/services/credentials.d.ts +0 -24
  180. package/dist/services/credentials.js +0 -157
  181. package/dist/services/credentials.js.map +0 -1
  182. package/dist/services/llm-client.d.ts +0 -22
  183. package/dist/services/llm-client.js +0 -138
  184. package/dist/services/llm-client.js.map +0 -1
  185. package/dist/services/media-download.d.ts +0 -17
  186. package/dist/services/media-download.js +0 -42
  187. package/dist/services/media-download.js.map +0 -1
  188. package/dist/services/model-strategy.d.ts +0 -99
  189. package/dist/services/model-strategy.js +0 -187
  190. package/dist/services/model-strategy.js.map +0 -1
  191. package/dist/services/mutation-events.d.ts +0 -4
  192. package/dist/services/mutation-events.js +0 -53
  193. package/dist/services/mutation-events.js.map +0 -1
  194. package/dist/services/service-install.d.ts +0 -22
  195. package/dist/services/service-install.js +0 -70
  196. package/dist/services/service-install.js.map +0 -1
  197. package/dist/services/version.d.ts +0 -11
  198. package/dist/services/version.js +0 -28
  199. package/dist/services/version.js.map +0 -1
  200. package/dist/tools/label-generator.d.ts +0 -11
  201. package/dist/tools/label-generator.js +0 -78
  202. package/dist/tools/label-generator.js.map +0 -1
  203. package/dist/utils/backup.d.ts +0 -5
  204. package/dist/utils/backup.js +0 -56
  205. package/dist/utils/backup.js.map +0 -1
  206. package/dist/utils/cli-settings-merge.d.ts +0 -22
  207. package/dist/utils/cli-settings-merge.js +0 -56
  208. package/dist/utils/cli-settings-merge.js.map +0 -1
  209. package/dist/utils/command-checks.d.ts +0 -36
  210. package/dist/utils/command-checks.js +0 -120
  211. package/dist/utils/command-checks.js.map +0 -1
  212. package/dist/utils/command-line.d.ts +0 -1
  213. package/dist/utils/command-line.js +0 -54
  214. package/dist/utils/command-line.js.map +0 -1
  215. package/dist/utils/dry-run.d.ts +0 -39
  216. package/dist/utils/dry-run.js +0 -315
  217. package/dist/utils/dry-run.js.map +0 -1
  218. package/dist/utils/execution-context.d.ts +0 -48
  219. package/dist/utils/execution-context.js +0 -151
  220. package/dist/utils/execution-context.js.map +0 -1
  221. package/dist/utils/file-system.d.ts +0 -21
  222. package/dist/utils/file-system.js +0 -2
  223. package/dist/utils/file-system.js.map +0 -1
  224. package/dist/utils/json.d.ts +0 -12
  225. package/dist/utils/json.js +0 -45
  226. package/dist/utils/json.js.map +0 -1
package/README.md CHANGED
@@ -1,60 +1,73 @@
1
- # poe-code
1
+ ![poe-code banner](docs/banners/claude-opus-4-6.jpg)
2
2
 
3
- > Configure coding agents to use the Poe API.
3
+ <div align="center">
4
+ <h1>Poe Code ⚡</h1>
4
5
 
5
- ## Try it in 1 minute
6
+ <a href="https://poe.com"><img src="https://img.shields.io/badge/Poe-Sign up-purple?logo=poe&logoColor=white&color=5D5CDE&style=for-the-badge" alt="Discord"></a>
7
+ <a href="https://www.npmjs.com/package/poe-code"><img alt="NPM version" src="https://img.shields.io/npm/v/next.svg?&style=for-the-badge&color=09B16B"></a>
8
+ <a href="https://discord.gg/joinpoe"><img src="https://img.shields.io/badge/Discord-Join-purple?logo=discord&logoColor=white&color=FF44D3&style=for-the-badge" alt="Discord"></a>
6
9
 
7
- ```bash
8
- # Install Poe wrapper binaries.
9
- npm install -g poe-code
10
+ </div>
10
11
 
11
- # Run your existing agent CLI through Poe (you’ll be prompted for api key on first run).
12
- poe-claude --help
13
- ```
12
+ Power your favorite coding agents (Claude Code, Codex, OpenCode, and more) with your Poe subscription—**no need to handle multiple providers/accounts.** Poe Code routes everything through the [Poe API](https://poe.com/api) .
14
13
 
15
- Also available: `poe-codex`, `poe-opencode`.
14
+ Use it of a single session (`poe-code wrap claude`) or configure it as your default and use your tools normally.
16
15
 
17
- ## Make it default
18
-
19
- This updates the provider’s config files so you can use the provider CLI directly.
20
16
 
17
+ ## Quickstart
18
+ Start a coding session routing all your `claude` calls to Poe
21
19
  ```bash
22
- # Claude Code
23
- npx poe-code@latest configure claude-code
20
+ npx poe-code wrap claude
21
+ # Also available: codex, opencode, kimi
22
+ ```
24
23
 
25
- # Codex
26
- npx poe-code@latest configure codex
24
+ or
27
25
 
28
- # OpenCode
29
- npx poe-code@latest configure opencode
26
+ ## Set it as your default (works with CLIs and desktop apps)
27
+ This updates the provider’s config files so you can use the provider CLI directly.
30
28
 
31
- # Kimi
32
- npx poe-code@latest configure kimi
29
+ ```bash
30
+ # Start the interactive setup
31
+ npx poe-code configure
32
+
33
+ # Setup a specific agent
34
+ npx poe-code@latest configure codex # (or claude, opencode, kimi)
33
35
  ```
34
36
 
37
+
35
38
  ### Unconfigure (remove overrides)
36
39
 
37
40
  ```bash
38
- npx poe-code@latest unconfigure claude-code
41
+ npx poe-code unconfigure claude
39
42
  ```
40
43
 
44
+
45
+ ## Quick links
46
+ - [Utilities](#utilities)
47
+ - [Usage and Billing](#usage--billing)
48
+ - [MCP Server](#poe-mcp-server)
49
+ - [SDK](#sdk)
50
+ - [Poe API](https://poe.com/api)
51
+
52
+
53
+
41
54
  ## Utilities
42
55
 
43
56
  Utilities are especially useful for scripting and CI/CD.
44
57
 
45
- ### Spawn a one-off prompt
58
+ #### Spawn a one-off prompt
46
59
 
47
60
  ```bash
48
61
  npx poe-code@latest spawn codex "Say hello"
49
62
  ```
50
63
 
51
- ### Spawn a prompt via stdin
64
+ #### Spawn a prompt via stdin
52
65
 
53
66
  ```bash
54
67
  echo "Say hello" | npx poe-code@latest spawn codex
55
68
  ```
56
69
 
57
- ### Test a configured service
70
+ #### Test a configured service
58
71
 
59
72
  ```bash
60
73
  npx poe-code@latest test codex
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-code",
3
- "version": "3.0.27",
3
+ "version": "3.0.29",
4
4
  "description": "CLI tool to configure Poe API for developer workflows.",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env node
2
- var _major = parseInt(process.versions.node.split(".")[0], 10);
3
- if (_major < 18) {
4
- console.error(
5
- "poe-claude requires Node.js 18 or later. Current: " + process.version
6
- );
7
- process.exit(1);
8
- }
9
- import { spawn } from "node:child_process";
10
- import path from "node:path";
11
- import { fileURLToPath } from "node:url";
12
-
13
- const currentFile = fileURLToPath(import.meta.url);
14
- const distDir = path.resolve(path.dirname(currentFile), "..");
15
- const entry = path.join(distDir, "index.js");
16
- const service = "claude-code";
17
- const agentArgs = process.argv.slice(2);
18
- const args = [entry, "wrap", service, "--", ...agentArgs];
19
- const child = spawn(process.execPath, args, { stdio: "inherit" });
20
- child.on("close", (code) => process.exit(code ?? 0));
21
- child.on("error", (error) => {
22
- throw error;
23
- });
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env node
2
- var _major = parseInt(process.versions.node.split(".")[0], 10);
3
- if (_major < 18) {
4
- console.error(
5
- "poe-codex requires Node.js 18 or later. Current: " + process.version
6
- );
7
- process.exit(1);
8
- }
9
- import { spawn } from "node:child_process";
10
- import path from "node:path";
11
- import { fileURLToPath } from "node:url";
12
-
13
- const currentFile = fileURLToPath(import.meta.url);
14
- const distDir = path.resolve(path.dirname(currentFile), "..");
15
- const entry = path.join(distDir, "index.js");
16
- const service = "codex";
17
- const agentArgs = process.argv.slice(2);
18
- const args = [entry, "wrap", service, "--", ...agentArgs];
19
- const child = spawn(process.execPath, args, { stdio: "inherit" });
20
- child.on("close", (code) => process.exit(code ?? 0));
21
- child.on("error", (error) => {
22
- throw error;
23
- });
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env node
2
- var _major = parseInt(process.versions.node.split(".")[0], 10);
3
- if (_major < 18) {
4
- console.error(
5
- "poe-kimi-cli requires Node.js 18 or later. Current: " + process.version
6
- );
7
- process.exit(1);
8
- }
9
- import { spawn } from "node:child_process";
10
- import path from "node:path";
11
- import { fileURLToPath } from "node:url";
12
-
13
- const currentFile = fileURLToPath(import.meta.url);
14
- const distDir = path.resolve(path.dirname(currentFile), "..");
15
- const entry = path.join(distDir, "index.js");
16
- const service = "kimi";
17
- const agentArgs = process.argv.slice(2);
18
- const args = [entry, "wrap", service, "--", ...agentArgs];
19
- const child = spawn(process.execPath, args, { stdio: "inherit" });
20
- child.on("close", (code) => process.exit(code ?? 0));
21
- child.on("error", (error) => {
22
- throw error;
23
- });
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env node
2
- var _major = parseInt(process.versions.node.split(".")[0], 10);
3
- if (_major < 18) {
4
- console.error(
5
- "poe-opencode requires Node.js 18 or later. Current: " + process.version
6
- );
7
- process.exit(1);
8
- }
9
- import { spawn } from "node:child_process";
10
- import path from "node:path";
11
- import { fileURLToPath } from "node:url";
12
-
13
- const currentFile = fileURLToPath(import.meta.url);
14
- const distDir = path.resolve(path.dirname(currentFile), "..");
15
- const entry = path.join(distDir, "index.js");
16
- const service = "opencode";
17
- const agentArgs = process.argv.slice(2);
18
- const args = [entry, "wrap", service, "--", ...agentArgs];
19
- const child = spawn(process.execPath, args, { stdio: "inherit" });
20
- child.on("close", (code) => process.exit(code ?? 0));
21
- child.on("error", (error) => {
22
- throw error;
23
- });
package/dist/bin.cjs DELETED
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- var _major = parseInt(process.versions.node.split(".")[0], 10);
3
- if (_major < 18) {
4
- console.error(
5
- "poe-code requires Node.js 18 or later. Current: " + process.version
6
- );
7
- process.exit(1);
8
- }
9
- import("./index.js").then(function (m) { m.main(); }).catch(function (err) { console.error(err); process.exit(1); });
@@ -1,7 +0,0 @@
1
- import type { ProviderService } from "./service-registry.js";
2
- export interface WrapBinaryAlias {
3
- binName: string;
4
- serviceName: string;
5
- agentBinary: string;
6
- }
7
- export declare function deriveWrapBinaryAliases(providers: ProviderService[]): WrapBinaryAlias[];
@@ -1,26 +0,0 @@
1
- export function deriveWrapBinaryAliases(providers) {
2
- const aliases = [];
3
- const seen = new Set();
4
- for (const provider of providers) {
5
- const isolated = provider.isolatedEnv;
6
- if (!isolated) {
7
- continue;
8
- }
9
- const agentBinary = isolated.agentBinary.trim();
10
- if (agentBinary.length === 0) {
11
- throw new Error(`Provider "${provider.name}" defines an empty agentBinary.`);
12
- }
13
- const binName = `poe-${agentBinary}`;
14
- if (seen.has(binName)) {
15
- throw new Error(`Duplicate wrapper binary name "${binName}".`);
16
- }
17
- seen.add(binName);
18
- aliases.push({
19
- binName,
20
- serviceName: provider.name,
21
- agentBinary
22
- });
23
- }
24
- return aliases.sort((a, b) => a.binName.localeCompare(b.binName));
25
- }
26
- //# sourceMappingURL=binary-aliases.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"binary-aliases.js","sourceRoot":"","sources":["../../src/cli/binary-aliases.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,uBAAuB,CACrC,SAA4B;IAE5B,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,iCAAiC,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,WAAW,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC;YACX,OAAO;YACP,WAAW,EAAE,QAAQ,CAAC,IAAI;YAC1B,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliDependencies } from "./program.js";
3
- export declare function createCliMain(programFactory: (dependencies: CliDependencies) => Command): () => Promise<void>;
4
- export declare function isCliInvocation(argv: string[], moduleUrl: string, realpath?: (path: string) => string): boolean;
@@ -1,78 +0,0 @@
1
- import * as nodeFs from "node:fs/promises";
2
- import * as nodeFsSync from "node:fs";
3
- import { realpathSync } from "node:fs";
4
- import { homedir } from "node:os";
5
- import { pathToFileURL } from "node:url";
6
- import { join } from "node:path";
7
- import { log } from "@poe-code/design-system";
8
- import chalk from "chalk";
9
- import { ErrorLogger } from "./error-logger.js";
10
- import { CliError, SilentError } from "./errors.js";
11
- import { createPromptRunner } from "./prompt-runner.js";
12
- const fsAdapter = nodeFs;
13
- export function createCliMain(programFactory) {
14
- return async function runCli() {
15
- const homeDir = homedir();
16
- const logDir = join(homeDir, ".poe-code", "logs");
17
- const promptRunner = createPromptRunner();
18
- // Create global error logger for bootstrapping errors
19
- const shouldLogToStderr = process.env.POE_CODE_STDERR_LOGS === "1" ||
20
- process.env.POE_CODE_STDERR_LOGS === "true";
21
- const errorLogger = new ErrorLogger({
22
- fs: nodeFsSync,
23
- logDir,
24
- logToStderr: shouldLogToStderr
25
- });
26
- const program = programFactory({
27
- fs: fsAdapter,
28
- prompts: promptRunner,
29
- env: {
30
- cwd: process.cwd(),
31
- homeDir,
32
- platform: process.platform,
33
- variables: process.env
34
- },
35
- exitOverride: false
36
- });
37
- try {
38
- await program.parseAsync(process.argv);
39
- }
40
- catch (error) {
41
- if (error instanceof SilentError) {
42
- return;
43
- }
44
- if (error instanceof Error) {
45
- // Log error with full context
46
- errorLogger.logErrorWithStackTrace(error, "CLI execution", {
47
- component: "main",
48
- argv: process.argv
49
- });
50
- // Display user-friendly message
51
- if (error instanceof CliError && error.isUserError) {
52
- log.error(error.message);
53
- }
54
- else {
55
- log.error(`Error: ${error.message}`);
56
- log.message(`See logs at ${join(logDir, "errors.log")} for more details.`, { symbol: chalk.magenta("●") });
57
- }
58
- process.exit(1);
59
- }
60
- throw error;
61
- }
62
- };
63
- }
64
- export function isCliInvocation(argv, moduleUrl, realpath = realpathSync) {
65
- const entry = argv.at(1);
66
- if (typeof entry !== "string") {
67
- return false;
68
- }
69
- const candidates = [pathToFileURL(entry).href];
70
- try {
71
- candidates.push(pathToFileURL(realpath(entry)).href);
72
- }
73
- catch {
74
- // Ignore resolution errors; fall back to direct comparison.
75
- }
76
- return candidates.includes(moduleUrl);
77
- }
78
- //# sourceMappingURL=bootstrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { CliContainer } from "./container.js";
2
- export declare function throwCommandNotFound(input: {
3
- container: CliContainer;
4
- scope: "cli" | "mcp" | "skill";
5
- unknownCommand: string;
6
- helpArgs: string[];
7
- moduleUrl: string;
8
- }): never;
@@ -1,34 +0,0 @@
1
- import { formatCommandNotFoundPanel, log, outro, symbols } from "@poe-code/design-system";
2
- import { detectExecutionContext, formatCliHelpCommand } from "../utils/execution-context.js";
3
- import { SilentError } from "./errors.js";
4
- export function throwCommandNotFound(input) {
5
- const { container, scope, unknownCommand, helpArgs, moduleUrl } = input;
6
- const context = detectExecutionContext({
7
- argv: process.argv,
8
- env: container.env.variables,
9
- moduleUrl
10
- });
11
- const helpCommand = formatCliHelpCommand(context, helpArgs);
12
- const panel = formatCommandNotFoundPanel({
13
- title: scope === "cli" ? "command not found" : `${scope} command not found`,
14
- unknownCommand,
15
- helpCommand
16
- });
17
- const logger = container.loggerFactory.create({
18
- dryRun: false,
19
- verbose: false,
20
- scope
21
- });
22
- const shouldRenderIntroOutro = container.dependencies.logger == null;
23
- if (shouldRenderIntroOutro) {
24
- logger.intro(panel.title);
25
- log.message(panel.label, { symbol: symbols.errorResolved });
26
- outro(panel.footer);
27
- }
28
- else {
29
- logger.error(`${panel.label}\n${panel.footer}`);
30
- }
31
- process.exitCode = 1;
32
- throw new SilentError();
33
- }
34
- //# sourceMappingURL=command-not-found.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-not-found.js","sourceRoot":"","sources":["../../src/cli/command-not-found.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CAAC,KAMpC;IACC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAExE,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACrC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS;QAC5B,SAAS;KACV,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,0BAA0B,CAAC;QACvC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,KAAK,oBAAoB;QAC3E,cAAc;QACd,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;QAC5C,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC;IACrE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,MAAM,IAAI,WAAW,EAAE,CAAC;AAC1B,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { CliContainer } from "../container.js";
2
- import type { ScopedLogger } from "../logger.js";
3
- import type { ProviderContext, ProviderService } from "../service-registry.js";
4
- import type { CommandFlags } from "./shared.js";
5
- import type { ConfigureCommandOptions } from "./configure.js";
6
- interface ConfigurePayloadInit {
7
- container: CliContainer;
8
- flags: CommandFlags;
9
- options: ConfigureCommandOptions;
10
- context: ProviderContext;
11
- adapter: ProviderService;
12
- logger: ScopedLogger;
13
- }
14
- export declare function createConfigurePayload(init: ConfigurePayloadInit): Promise<unknown>;
15
- export {};
@@ -1,31 +0,0 @@
1
- export async function createConfigurePayload(init) {
2
- const { container, flags, options, context, adapter, logger } = init;
3
- const apiKey = await container.options.resolveApiKey({
4
- value: options.apiKey,
5
- dryRun: flags.dryRun
6
- });
7
- const payload = { env: context.env, apiKey };
8
- const modelPrompt = adapter.configurePrompts?.model;
9
- if (modelPrompt) {
10
- const model = await container.options.resolveModel({
11
- value: options.model,
12
- assumeDefault: flags.assumeYes,
13
- defaultValue: modelPrompt.defaultValue,
14
- choices: modelPrompt.choices,
15
- label: modelPrompt.label,
16
- onResolve: (label, value) => logger.resolved(label, value)
17
- });
18
- payload.model = model;
19
- }
20
- const reasoningPrompt = adapter.configurePrompts?.reasoningEffort;
21
- if (reasoningPrompt) {
22
- const reasoningEffort = await container.options.resolveReasoning({
23
- value: options.reasoningEffort,
24
- defaultValue: reasoningPrompt.defaultValue,
25
- label: reasoningPrompt.label
26
- });
27
- payload.reasoningEffort = reasoningEffort;
28
- }
29
- return payload;
30
- }
31
- //# sourceMappingURL=configure-payload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configure-payload.js","sourceRoot":"","sources":["../../../src/cli/commands/configure-payload.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAA0B;IAE1B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAErE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;QACnD,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,MAAM,OAAO,GAA4B,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAEtE,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACpD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;YACjD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,KAAK,CAAC,SAAS;YAC9B,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;SAC3D,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAClE,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC/D,KAAK,EAAE,OAAO,CAAC,eAAe;YAC9B,YAAY,EAAE,eAAe,CAAC,YAAY;YAC1C,KAAK,EAAE,eAAe,CAAC,KAAK;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;IAC5C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliContainer } from "../container.js";
3
- export interface ConfigureCommandOptions {
4
- apiKey?: string;
5
- model?: string;
6
- reasoningEffort?: string;
7
- }
8
- export declare function registerConfigureCommand(program: Command, container: CliContainer): Command;
9
- export declare function executeConfigure(program: Command, container: CliContainer, service: string, options: ConfigureCommandOptions): Promise<void>;
10
- export declare function resolveServiceArgument(program: Command, container: CliContainer, provided?: string, selectionContext?: {
11
- action: string;
12
- }): Promise<string>;
@@ -1,151 +0,0 @@
1
- import { buildProviderContext, createExecutionResources, formatServiceList, resolveCommandFlags, resolveServiceAdapter, applyIsolatedConfiguration } from "./shared.js";
2
- import { OperationCancelledError } from "../errors.js";
3
- const serviceSelectionPrompt = (action) => `Pick an agent to ${action}:`;
4
- import { saveConfiguredService } from "../../services/credentials.js";
5
- import { combineMutationObservers, createMutationReporter } from "../../services/mutation-events.js";
6
- import { createConfigurePayload } from "./configure-payload.js";
7
- export function registerConfigureCommand(program, container) {
8
- const serviceNames = container.registry.list().map((service) => service.name);
9
- const serviceDescription = `Agent to configure${formatServiceList(serviceNames)}`;
10
- const configureCommand = program
11
- .command("configure")
12
- .description("Configure developer tooling for Poe API.")
13
- .argument("[agent]", serviceDescription)
14
- .option("--api-key <key>", "Poe API key")
15
- .option("--model <model>", "Model identifier")
16
- .option("--reasoning-effort <level>", "Reasoning effort level")
17
- .action(async (service, options) => {
18
- const resolved = await resolveServiceArgument(program, container, service, { action: "configure" });
19
- await executeConfigure(program, container, resolved, options);
20
- });
21
- return configureCommand;
22
- }
23
- export async function executeConfigure(program, container, service, options) {
24
- const adapter = resolveServiceAdapter(container, service);
25
- const canonicalService = adapter.name;
26
- const flags = resolveCommandFlags(program);
27
- const resources = createExecutionResources(container, flags, `configure:${canonicalService}`);
28
- resources.logger.intro(`configure ${canonicalService}`);
29
- const providerContext = buildProviderContext(container, adapter, resources);
30
- const payload = await createConfigurePayload({
31
- container,
32
- flags,
33
- options,
34
- context: providerContext,
35
- adapter,
36
- logger: resources.logger
37
- });
38
- await container.registry.invoke(canonicalService, "configure", async (entry) => {
39
- if (!entry.configure) {
40
- throw new Error(`Agent "${canonicalService}" does not support configure.`);
41
- }
42
- const tracker = createMutationTracker();
43
- const mutationLogger = createMutationReporter(resources.logger);
44
- const observers = combineMutationObservers(tracker.observers, mutationLogger);
45
- await entry.configure({
46
- fs: providerContext.command.fs,
47
- env: providerContext.env,
48
- command: providerContext.command,
49
- options: payload
50
- }, observers
51
- ? {
52
- observers
53
- }
54
- : undefined);
55
- if (!flags.dryRun) {
56
- await saveConfiguredService({
57
- fs: container.fs,
58
- filePath: providerContext.env.credentialsPath,
59
- service: canonicalService,
60
- metadata: {
61
- files: tracker.files()
62
- }
63
- });
64
- }
65
- const isolated = adapter.isolatedEnv;
66
- if (isolated && isolated.requiresConfig !== false) {
67
- const isolatedTracker = createMutationTracker();
68
- const isolatedLogger = createMutationReporter(resources.logger);
69
- const isolatedObservers = combineMutationObservers(isolatedTracker.observers, isolatedLogger);
70
- await applyIsolatedConfiguration({
71
- adapter: entry,
72
- providerContext,
73
- payload,
74
- isolated,
75
- providerName: adapter.name,
76
- observers: isolatedObservers
77
- });
78
- }
79
- });
80
- const dryMessage = canonicalService === "claude-code"
81
- ? `${adapter.label} (dry run)`
82
- : `Dry run: would configure ${adapter.label}.`;
83
- resources.context.complete({
84
- success: `Configured ${adapter.label}.`,
85
- dry: dryMessage
86
- });
87
- if (!flags.dryRun) {
88
- const postMessages = resolvePostConfigureMessages(adapter);
89
- resources.logger.nextSteps(postMessages);
90
- }
91
- resources.context.finalize();
92
- }
93
- function createMutationTracker() {
94
- const targets = new Set();
95
- const observers = {
96
- onComplete(details, outcome) {
97
- if (!outcome.changed || !details.targetPath) {
98
- return;
99
- }
100
- if (outcome.effect !== "write" && outcome.effect !== "delete") {
101
- return;
102
- }
103
- targets.add(details.targetPath);
104
- }
105
- };
106
- return {
107
- observers,
108
- files() {
109
- return Array.from(targets).sort();
110
- }
111
- };
112
- }
113
- function resolvePostConfigureMessages(provider) {
114
- return provider.postConfigureMessages ?? [];
115
- }
116
- export async function resolveServiceArgument(program, container, provided, selectionContext) {
117
- if (provided) {
118
- return provided;
119
- }
120
- const services = container.registry.list();
121
- const action = selectionContext?.action ?? "configure";
122
- if (services.length === 0) {
123
- throw new Error(`No agents available to ${action}.`);
124
- }
125
- const flags = resolveCommandFlags(program);
126
- const selectionLogger = container.loggerFactory.create({
127
- dryRun: flags.dryRun,
128
- verbose: flags.verbose,
129
- scope: action
130
- });
131
- selectionLogger.intro(action);
132
- const choices = services.map((service) => ({
133
- title: service.label,
134
- value: service.name
135
- }));
136
- const descriptor = container.promptLibrary.serviceSelection({
137
- message: serviceSelectionPrompt(action),
138
- choices
139
- });
140
- const response = await container.prompts(descriptor);
141
- const selectionValue = response[descriptor.name];
142
- if (typeof selectionValue !== "string") {
143
- throw new OperationCancelledError();
144
- }
145
- const resolved = services.find((service) => service.name === selectionValue);
146
- if (!resolved) {
147
- throw new Error("Invalid agent selection.");
148
- }
149
- return resolved.name;
150
- }
151
- //# sourceMappingURL=configure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../../src/cli/commands/configure.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { CliContainer } from "../container.js";
2
- import type { ProviderService } from "../service-registry.js";
3
- import { type CommandFlags } from "./shared.js";
4
- import type { ConfigureCommandOptions } from "./configure.js";
5
- export declare function ensureIsolatedConfigForService(input: {
6
- container: CliContainer;
7
- adapter: ProviderService;
8
- service: string;
9
- options?: ConfigureCommandOptions;
10
- flags: CommandFlags;
11
- refresh?: boolean;
12
- }): Promise<void>;