poe-code 3.0.29 → 3.0.31

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 (227) hide show
  1. package/README.md +2 -2
  2. package/dist/bin/poe-claude.js +23 -0
  3. package/dist/bin/poe-codex.js +23 -0
  4. package/dist/bin/poe-kimi-cli.js +23 -0
  5. package/dist/bin/poe-opencode.js +23 -0
  6. package/dist/bin.cjs +9 -0
  7. package/dist/cli/binary-aliases.d.ts +7 -0
  8. package/dist/cli/binary-aliases.js +26 -0
  9. package/dist/cli/binary-aliases.js.map +1 -0
  10. package/dist/cli/bootstrap.d.ts +4 -0
  11. package/dist/cli/bootstrap.js +78 -0
  12. package/dist/cli/bootstrap.js.map +1 -0
  13. package/dist/cli/command-not-found.d.ts +8 -0
  14. package/dist/cli/command-not-found.js +34 -0
  15. package/dist/cli/command-not-found.js.map +1 -0
  16. package/dist/cli/commands/configure-payload.d.ts +15 -0
  17. package/dist/cli/commands/configure-payload.js +31 -0
  18. package/dist/cli/commands/configure-payload.js.map +1 -0
  19. package/dist/cli/commands/configure.d.ts +12 -0
  20. package/dist/cli/commands/configure.js +151 -0
  21. package/dist/cli/commands/configure.js.map +1 -0
  22. package/dist/cli/commands/ensure-isolated-config.d.ts +12 -0
  23. package/dist/cli/commands/ensure-isolated-config.js +53 -0
  24. package/dist/cli/commands/ensure-isolated-config.js.map +1 -0
  25. package/dist/cli/commands/generate.d.ts +9 -0
  26. package/dist/cli/commands/generate.js +322 -0
  27. package/dist/cli/commands/generate.js.map +1 -0
  28. package/dist/cli/commands/install.d.ts +4 -0
  29. package/dist/cli/commands/install.js +40 -0
  30. package/dist/cli/commands/install.js.map +1 -0
  31. package/dist/cli/commands/login.d.ts +6 -0
  32. package/dist/cli/commands/login.js +105 -0
  33. package/dist/cli/commands/login.js.map +1 -0
  34. package/dist/cli/commands/mcp.d.ts +3 -0
  35. package/dist/cli/commands/mcp.js +178 -0
  36. package/dist/cli/commands/mcp.js.map +1 -0
  37. package/dist/cli/commands/models.d.ts +3 -0
  38. package/dist/cli/commands/models.js +183 -0
  39. package/dist/cli/commands/models.js.map +1 -0
  40. package/dist/cli/commands/ralph-worktree.d.ts +3 -0
  41. package/dist/cli/commands/ralph-worktree.js +73 -0
  42. package/dist/cli/commands/ralph-worktree.js.map +1 -0
  43. package/dist/cli/commands/ralph.d.ts +3 -0
  44. package/dist/cli/commands/ralph.js +424 -0
  45. package/dist/cli/commands/ralph.js.map +1 -0
  46. package/dist/cli/commands/shared.d.ts +29 -0
  47. package/dist/cli/commands/shared.js +82 -0
  48. package/dist/cli/commands/shared.js.map +1 -0
  49. package/dist/cli/commands/skill.d.ts +3 -0
  50. package/dist/cli/commands/skill.js +242 -0
  51. package/dist/cli/commands/skill.js.map +1 -0
  52. package/dist/cli/commands/spawn.d.ts +17 -0
  53. package/dist/cli/commands/spawn.js +226 -0
  54. package/dist/cli/commands/spawn.js.map +1 -0
  55. package/dist/cli/commands/test.d.ts +8 -0
  56. package/dist/cli/commands/test.js +124 -0
  57. package/dist/cli/commands/test.js.map +1 -0
  58. package/dist/cli/commands/unconfigure.d.ts +7 -0
  59. package/dist/cli/commands/unconfigure.js +116 -0
  60. package/dist/cli/commands/unconfigure.js.map +1 -0
  61. package/dist/cli/commands/usage.d.ts +3 -0
  62. package/dist/cli/commands/usage.js +186 -0
  63. package/dist/cli/commands/usage.js.map +1 -0
  64. package/dist/cli/commands/version.d.ts +3 -0
  65. package/dist/cli/commands/version.js +31 -0
  66. package/dist/cli/commands/version.js.map +1 -0
  67. package/dist/cli/commands/wrap.d.ts +3 -0
  68. package/dist/cli/commands/wrap.js +61 -0
  69. package/dist/cli/commands/wrap.js.map +1 -0
  70. package/dist/cli/constants.d.ts +24 -0
  71. package/dist/cli/constants.js +44 -0
  72. package/dist/cli/constants.js.map +1 -0
  73. package/dist/cli/container.d.ts +42 -0
  74. package/dist/cli/container.js +90 -0
  75. package/dist/cli/container.js.map +1 -0
  76. package/dist/cli/context.d.ts +33 -0
  77. package/dist/cli/context.js +91 -0
  78. package/dist/cli/context.js.map +1 -0
  79. package/dist/cli/environment.d.ts +21 -0
  80. package/dist/cli/environment.js +106 -0
  81. package/dist/cli/environment.js.map +1 -0
  82. package/dist/cli/error-logger.d.ts +62 -0
  83. package/dist/cli/error-logger.js +155 -0
  84. package/dist/cli/error-logger.js.map +1 -0
  85. package/dist/cli/errors.d.ts +95 -0
  86. package/dist/cli/errors.js +141 -0
  87. package/dist/cli/errors.js.map +1 -0
  88. package/dist/cli/exit-signals.d.ts +4 -0
  89. package/dist/cli/exit-signals.js +8 -0
  90. package/dist/cli/exit-signals.js.map +1 -0
  91. package/dist/cli/http.d.ts +12 -0
  92. package/dist/cli/http.js +2 -0
  93. package/dist/cli/http.js.map +1 -0
  94. package/dist/cli/isolated-env-runner.d.ts +10 -0
  95. package/dist/cli/isolated-env-runner.js +50 -0
  96. package/dist/cli/isolated-env-runner.js.map +1 -0
  97. package/dist/cli/isolated-env.d.ts +24 -0
  98. package/dist/cli/isolated-env.js +210 -0
  99. package/dist/cli/isolated-env.js.map +1 -0
  100. package/dist/cli/logger.d.ts +36 -0
  101. package/dist/cli/logger.js +191 -0
  102. package/dist/cli/logger.js.map +1 -0
  103. package/dist/cli/mcp-output-format.d.ts +2 -0
  104. package/dist/cli/mcp-output-format.js +27 -0
  105. package/dist/cli/mcp-output-format.js.map +1 -0
  106. package/dist/cli/mcp-server.d.ts +21 -0
  107. package/dist/cli/mcp-server.js +321 -0
  108. package/dist/cli/mcp-server.js.map +1 -0
  109. package/dist/cli/options.d.ts +45 -0
  110. package/dist/cli/options.js +111 -0
  111. package/dist/cli/options.js.map +1 -0
  112. package/dist/cli/poe-code-command-runner.d.ts +6 -0
  113. package/dist/cli/poe-code-command-runner.js +63 -0
  114. package/dist/cli/poe-code-command-runner.js.map +1 -0
  115. package/dist/cli/program.d.ts +4 -0
  116. package/dist/cli/program.js +249 -0
  117. package/dist/cli/program.js.map +1 -0
  118. package/dist/cli/prompt-runner.d.ts +10 -0
  119. package/dist/cli/prompt-runner.js +79 -0
  120. package/dist/cli/prompt-runner.js.map +1 -0
  121. package/dist/cli/prompts.d.ts +39 -0
  122. package/dist/cli/prompts.js +42 -0
  123. package/dist/cli/prompts.js.map +1 -0
  124. package/dist/cli/service-registry.d.ts +108 -0
  125. package/dist/cli/service-registry.js +83 -0
  126. package/dist/cli/service-registry.js.map +1 -0
  127. package/dist/cli/types.d.ts +2 -0
  128. package/dist/cli/types.js +2 -0
  129. package/dist/cli/types.js.map +1 -0
  130. package/dist/cli/ui/service-menu.d.ts +7 -0
  131. package/dist/cli/ui/service-menu.js +43 -0
  132. package/dist/cli/ui/service-menu.js.map +1 -0
  133. package/dist/index.d.ts +8 -0
  134. package/dist/index.js +36812 -0
  135. package/dist/index.js.map +7 -0
  136. package/dist/providers/claude-code.d.ts +13 -0
  137. package/dist/providers/claude-code.js +143 -0
  138. package/dist/providers/claude-code.js.map +1 -0
  139. package/dist/providers/codex.d.ts +17 -0
  140. package/dist/providers/codex.js +144 -0
  141. package/dist/providers/codex.js.map +1 -0
  142. package/dist/providers/create-provider.d.ts +29 -0
  143. package/dist/providers/create-provider.js +78 -0
  144. package/dist/providers/create-provider.js.map +1 -0
  145. package/dist/providers/index.d.ts +2 -0
  146. package/dist/providers/index.js +8 -0
  147. package/dist/providers/index.js.map +1 -0
  148. package/dist/providers/kimi.d.ts +4 -0
  149. package/dist/providers/kimi.js +123 -0
  150. package/dist/providers/kimi.js.map +1 -0
  151. package/dist/providers/opencode.d.ts +3 -0
  152. package/dist/providers/opencode.js +119 -0
  153. package/dist/providers/opencode.js.map +1 -0
  154. package/dist/providers/spawn-options.d.ts +13 -0
  155. package/dist/providers/spawn-options.js +2 -0
  156. package/dist/providers/spawn-options.js.map +1 -0
  157. package/dist/sdk/container.d.ts +18 -0
  158. package/dist/sdk/container.js +127 -0
  159. package/dist/sdk/container.js.map +1 -0
  160. package/dist/sdk/credentials.d.ts +9 -0
  161. package/dist/sdk/credentials.js +35 -0
  162. package/dist/sdk/credentials.js.map +1 -0
  163. package/dist/sdk/generate.d.ts +5 -0
  164. package/dist/sdk/generate.js +97 -0
  165. package/dist/sdk/generate.js.map +1 -0
  166. package/dist/sdk/spawn-core.d.ts +23 -0
  167. package/dist/sdk/spawn-core.js +105 -0
  168. package/dist/sdk/spawn-core.js.map +1 -0
  169. package/dist/sdk/spawn.d.ts +31 -0
  170. package/dist/sdk/spawn.js +109 -0
  171. package/dist/sdk/spawn.js.map +1 -0
  172. package/dist/sdk/types.d.ts +44 -0
  173. package/dist/sdk/types.js +2 -0
  174. package/dist/sdk/types.js.map +1 -0
  175. package/dist/services/client-instance.d.ts +12 -0
  176. package/dist/services/client-instance.js +36 -0
  177. package/dist/services/client-instance.js.map +1 -0
  178. package/dist/services/credentials.d.ts +24 -0
  179. package/dist/services/credentials.js +157 -0
  180. package/dist/services/credentials.js.map +1 -0
  181. package/dist/services/llm-client.d.ts +22 -0
  182. package/dist/services/llm-client.js +138 -0
  183. package/dist/services/llm-client.js.map +1 -0
  184. package/dist/services/media-download.d.ts +17 -0
  185. package/dist/services/media-download.js +42 -0
  186. package/dist/services/media-download.js.map +1 -0
  187. package/dist/services/model-strategy.d.ts +99 -0
  188. package/dist/services/model-strategy.js +187 -0
  189. package/dist/services/model-strategy.js.map +1 -0
  190. package/dist/services/mutation-events.d.ts +4 -0
  191. package/dist/services/mutation-events.js +53 -0
  192. package/dist/services/mutation-events.js.map +1 -0
  193. package/dist/services/service-install.d.ts +22 -0
  194. package/dist/services/service-install.js +70 -0
  195. package/dist/services/service-install.js.map +1 -0
  196. package/dist/services/version.d.ts +11 -0
  197. package/dist/services/version.js +28 -0
  198. package/dist/services/version.js.map +1 -0
  199. package/dist/tools/label-generator.d.ts +11 -0
  200. package/dist/tools/label-generator.js +78 -0
  201. package/dist/tools/label-generator.js.map +1 -0
  202. package/dist/utils/backup.d.ts +5 -0
  203. package/dist/utils/backup.js +56 -0
  204. package/dist/utils/backup.js.map +1 -0
  205. package/dist/utils/cli-settings-merge.d.ts +22 -0
  206. package/dist/utils/cli-settings-merge.js +56 -0
  207. package/dist/utils/cli-settings-merge.js.map +1 -0
  208. package/dist/utils/command-checks.d.ts +36 -0
  209. package/dist/utils/command-checks.js +120 -0
  210. package/dist/utils/command-checks.js.map +1 -0
  211. package/dist/utils/command-line.d.ts +1 -0
  212. package/dist/utils/command-line.js +54 -0
  213. package/dist/utils/command-line.js.map +1 -0
  214. package/dist/utils/dry-run.d.ts +39 -0
  215. package/dist/utils/dry-run.js +315 -0
  216. package/dist/utils/dry-run.js.map +1 -0
  217. package/dist/utils/execution-context.d.ts +48 -0
  218. package/dist/utils/execution-context.js +151 -0
  219. package/dist/utils/execution-context.js.map +1 -0
  220. package/dist/utils/file-system.d.ts +21 -0
  221. package/dist/utils/file-system.js +2 -0
  222. package/dist/utils/file-system.js.map +1 -0
  223. package/dist/utils/json.d.ts +12 -0
  224. package/dist/utils/json.js +45 -0
  225. package/dist/utils/json.js.map +1 -0
  226. package/package.json +5 -2
  227. package/packages/tiny-mcp-test-server/dist/index.js +47 -0
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Strips bracketed paste artifacts from input.
3
+ *
4
+ * When pasting in tmux/iTerm2, terminals send bracketed paste escape sequences
5
+ * (\x1b[200~ at start, \x1b[201~ at end). Some prompt inputs leak these into the
6
+ * captured value and produce artifacts like "undefined" or "ndefined". We strip
7
+ * both the raw escape sequences and the mangled string artifacts.
8
+ */
9
+ function stripBracketedPaste(value) {
10
+ return value
11
+ .replace(/\x1b\[200~/g, "")
12
+ .replace(/\x1b\[201~/g, "")
13
+ .replace(/undefinedndefined$/, "")
14
+ .replace(/undefined$/, "")
15
+ .replace(/ndefined$/, "");
16
+ }
17
+ export function createOptionResolvers(init) {
18
+ const ensure = async (input) => {
19
+ if (input.value != null) {
20
+ return input.value;
21
+ }
22
+ if (input.fallback != null) {
23
+ return input.fallback;
24
+ }
25
+ const response = await init.prompts(input.descriptor);
26
+ const result = response[input.descriptor.name];
27
+ if (typeof result !== "string" || result.trim() === "") {
28
+ throw new Error(`Missing value for "${input.descriptor.name}".`);
29
+ }
30
+ return result;
31
+ };
32
+ const normalizeApiKey = (value) => {
33
+ const sanitized = stripBracketedPaste(value);
34
+ const trimmed = sanitized.trim();
35
+ if (trimmed.length === 0) {
36
+ throw new Error("POE API key cannot be empty.");
37
+ }
38
+ return trimmed;
39
+ };
40
+ const resolveApiKey = async (input) => {
41
+ if (input.value != null) {
42
+ const apiKey = normalizeApiKey(input.value);
43
+ if (!input.dryRun) {
44
+ await init.apiKeyStore.write(apiKey);
45
+ }
46
+ return apiKey;
47
+ }
48
+ const stored = await init.apiKeyStore.read();
49
+ if (stored) {
50
+ return normalizeApiKey(stored);
51
+ }
52
+ const descriptor = init.promptLibrary.loginApiKey();
53
+ const response = await init.prompts(descriptor);
54
+ const result = response[descriptor.name];
55
+ if (typeof result !== "string") {
56
+ throw new Error("POE API key is required.");
57
+ }
58
+ const apiKey = normalizeApiKey(result);
59
+ if (!input.dryRun) {
60
+ await init.apiKeyStore.write(apiKey);
61
+ }
62
+ return apiKey;
63
+ };
64
+ const resolveModel = async ({ value, assumeDefault, defaultValue, choices, label, onResolve }) => {
65
+ if (value != null) {
66
+ onResolve?.(label, value);
67
+ return value;
68
+ }
69
+ if (choices.length === 1) {
70
+ onResolve?.(label, choices[0].value);
71
+ return choices[0].value;
72
+ }
73
+ if (assumeDefault) {
74
+ onResolve?.(label, defaultValue);
75
+ return defaultValue;
76
+ }
77
+ const descriptor = init.promptLibrary.model({
78
+ label,
79
+ defaultValue,
80
+ choices
81
+ });
82
+ const response = await init.prompts(descriptor);
83
+ const result = response[descriptor.name];
84
+ if (typeof result !== "string" || result.trim() === "") {
85
+ throw new Error(`Missing value for "${descriptor.name}".`);
86
+ }
87
+ return result;
88
+ };
89
+ const resolveReasoning = async ({ value, defaultValue, label }) => await ensure({
90
+ value,
91
+ descriptor: init.promptLibrary.reasoningEffort({
92
+ label,
93
+ defaultValue
94
+ }),
95
+ fallback: defaultValue
96
+ });
97
+ const resolveConfigName = async (value, defaultValue) => await ensure({
98
+ value,
99
+ descriptor: init.promptLibrary.configName(defaultValue),
100
+ fallback: defaultValue
101
+ });
102
+ return {
103
+ ensure,
104
+ resolveModel,
105
+ resolveReasoning,
106
+ resolveConfigName,
107
+ resolveApiKey,
108
+ normalizeApiKey
109
+ };
110
+ }
111
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { CommandRunner } from "../utils/command-checks.js";
2
+ import type { CliContainer } from "./container.js";
3
+ export declare function createPoeCodeCommandRunner(input: {
4
+ getContainer: () => CliContainer;
5
+ baseRunner: CommandRunner;
6
+ }): CommandRunner;
@@ -0,0 +1,63 @@
1
+ import { applyIsolatedEnvRepairs, resolveIsolatedEnvDetails, resolveCliSettings, isolatedConfigExists } from "./isolated-env.js";
2
+ import { buildArgsWithMergedSettings } from "../utils/cli-settings-merge.js";
3
+ import { ensureIsolatedConfigForService } from "./commands/ensure-isolated-config.js";
4
+ export function createPoeCodeCommandRunner(input) {
5
+ return async (command, args, options) => {
6
+ const container = input.getContainer();
7
+ if (command !== "poe-code" || args.length === 0) {
8
+ return input.baseRunner(command, args, options);
9
+ }
10
+ if (args[0] !== "wrap") {
11
+ return input.baseRunner(command, args, options);
12
+ }
13
+ const service = args[1];
14
+ if (typeof service !== "string" || service.trim() === "") {
15
+ return input.baseRunner(command, args, options);
16
+ }
17
+ const adapter = container.registry.get(service);
18
+ if (!adapter?.isolatedEnv) {
19
+ return input.baseRunner(command, args, options);
20
+ }
21
+ const details = await resolveIsolatedEnvDetails(container.env, adapter.isolatedEnv, adapter.name, container.fs);
22
+ if (adapter.isolatedEnv.requiresConfig !== false) {
23
+ const hasConfig = await isolatedConfigExists(container.fs, details.configProbePath);
24
+ if (!hasConfig) {
25
+ await ensureIsolatedConfigForService({
26
+ container,
27
+ adapter,
28
+ service,
29
+ flags: { dryRun: false, assumeYes: true, verbose: false },
30
+ refresh: true
31
+ });
32
+ }
33
+ }
34
+ await applyIsolatedEnvRepairs({
35
+ fs: container.fs,
36
+ env: container.env,
37
+ providerName: adapter.name,
38
+ isolated: adapter.isolatedEnv
39
+ });
40
+ let forwarded = args.slice(2);
41
+ if (forwarded[0] === "--") {
42
+ forwarded = forwarded.slice(1);
43
+ }
44
+ // Merge CLI settings if provider defines them
45
+ if (adapter.isolatedEnv.cliSettings) {
46
+ const resolvedSettings = await resolveCliSettings(adapter.isolatedEnv.cliSettings, container.env, container.fs);
47
+ forwarded = buildArgsWithMergedSettings(forwarded, resolvedSettings);
48
+ }
49
+ const mergedEnv = {
50
+ ...(options?.env ?? {}),
51
+ ...details.env
52
+ };
53
+ const runOptions = { env: mergedEnv };
54
+ if (options?.cwd) {
55
+ runOptions.cwd = options.cwd;
56
+ }
57
+ if (options?.stdin != null) {
58
+ runOptions.stdin = options.stdin;
59
+ }
60
+ return input.baseRunner(details.agentBinary, forwarded, runOptions);
61
+ };
62
+ }
63
+ //# sourceMappingURL=poe-code-command-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poe-code-command-runner.js","sourceRoot":"","sources":["../../src/cli/poe-code-command-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "commander";
2
+ import { type CliDependencies } from "./container.js";
3
+ export declare function createProgram(dependencies: CliDependencies): Command;
4
+ export type { CliDependencies };
@@ -0,0 +1,249 @@
1
+ import { Command } from "commander";
2
+ import { createCliContainer } from "./container.js";
3
+ import { text } from "@poe-code/design-system";
4
+ import { registerConfigureCommand } from "./commands/configure.js";
5
+ import { registerSpawnCommand } from "./commands/spawn.js";
6
+ import { registerWrapCommand } from "./commands/wrap.js";
7
+ import { registerLoginCommand } from "./commands/login.js";
8
+ import { registerInstallCommand } from "./commands/install.js";
9
+ import { registerUnconfigureCommand } from "./commands/unconfigure.js";
10
+ import { registerTestCommand } from "./commands/test.js";
11
+ import { registerGenerateCommand } from "./commands/generate.js";
12
+ import { registerMcpCommand } from "./commands/mcp.js";
13
+ import { registerSkillCommand } from "./commands/skill.js";
14
+ import { registerVersionOption } from "./commands/version.js";
15
+ import { registerRalphCommand } from "./commands/ralph.js";
16
+ import { registerUsageCommand } from "./commands/usage.js";
17
+ import { registerModelsCommand } from "./commands/models.js";
18
+ import packageJson from "../../package.json" with { type: "json" };
19
+ import { throwCommandNotFound } from "./command-not-found.js";
20
+ import { detectExecutionContext, formatCliHelpCommand, formatCliUsageCommand } from "../utils/execution-context.js";
21
+ function formatCommandHeader(cmd) {
22
+ const parts = [];
23
+ let current = cmd;
24
+ while (current) {
25
+ const name = current.name();
26
+ if (name === "poe-code") {
27
+ break;
28
+ }
29
+ if (name.length > 0) {
30
+ parts.push(name);
31
+ }
32
+ current = current.parent ?? null;
33
+ }
34
+ return `Poe - ${parts.reverse().join(" ")}`;
35
+ }
36
+ function formatHelpText(input) {
37
+ const commandRows = [
38
+ {
39
+ name: "configure",
40
+ args: "[agent]",
41
+ description: "Configure a coding agent (claude-code, codex, opencode)"
42
+ },
43
+ {
44
+ name: "unconfigure",
45
+ args: "<agent>",
46
+ description: "Remove a previously applied configuration"
47
+ },
48
+ {
49
+ name: "spawn",
50
+ args: "<agent> [prompt]",
51
+ description: "Launch a coding agent"
52
+ },
53
+ {
54
+ name: "generate",
55
+ args: "[type]",
56
+ description: "Call Poe models via CLI (text/image/video/audio)"
57
+ },
58
+ {
59
+ name: "mcp configure",
60
+ args: "[agent]",
61
+ description: "Configure Poe MCP for your coding agent"
62
+ },
63
+ {
64
+ name: "mcp unconfigure",
65
+ args: "<agent>",
66
+ description: "Remove Poe MCP configuration from your agent"
67
+ },
68
+ {
69
+ name: "mcp serve",
70
+ args: "",
71
+ description: "Run the Poe MCP server on stdin/stdout"
72
+ },
73
+ {
74
+ name: "skill configure",
75
+ args: "[agent]",
76
+ description: "Configure agent skills to call Poe models"
77
+ },
78
+ {
79
+ name: "skill unconfigure",
80
+ args: "[agent]",
81
+ description: "Remove agent skills configuration"
82
+ },
83
+ {
84
+ name: "usage",
85
+ args: "",
86
+ description: "Display current Poe compute points balance"
87
+ },
88
+ {
89
+ name: "usage list",
90
+ args: "",
91
+ description: "Display usage history"
92
+ }
93
+ ];
94
+ const nameWidth = Math.max(0, ...commandRows.map((row) => row.name.length));
95
+ const argsWidth = Math.max(0, ...commandRows.map((row) => row.args.length));
96
+ const cmd = (row) => {
97
+ const name = text.command(row.name.padEnd(nameWidth));
98
+ const args = row.args.length > 0
99
+ ? text.argument(row.args.padEnd(argsWidth))
100
+ : " ".repeat(argsWidth);
101
+ return ` ${name} ${args} ${row.description}`;
102
+ };
103
+ return [
104
+ text.heading("Poe - poe-code"),
105
+ "",
106
+ "Configure coding agents to use the Poe API.",
107
+ "",
108
+ `${text.section("Usage:")} ${text.usageCommand(input.usageCommand)} ${text.argument("<command> [...args]")}`,
109
+ "",
110
+ text.section("Commands:"),
111
+ ...commandRows.map(cmd),
112
+ "",
113
+ `${text.muted("Run")} ${text.usageCommand(input.helpCommand)} ${text.muted("for command options.")}`,
114
+ "",
115
+ `${text.muted("Learn more about Poe:")} ${text.link("https://poe.com/api")}`,
116
+ `${text.muted("GitHub:")} ${text.link("https://github.com/poe-platform/poe-code")}`
117
+ ].join("\n");
118
+ }
119
+ function formatSubcommandHelp(cmd, helper) {
120
+ const termWidth = helper.padWidth(cmd, helper);
121
+ const itemIndentWidth = 2;
122
+ const itemSeparatorWidth = 2;
123
+ const padWidth = termWidth + itemSeparatorWidth;
124
+ const indent = " ".repeat(itemIndentWidth);
125
+ const formatItem = (term, description, style) => {
126
+ const padding = " ".repeat(Math.max(0, padWidth - term.length));
127
+ const styledTerm = `${style(term)}${padding}`;
128
+ if (!description) {
129
+ return style(term);
130
+ }
131
+ return `${styledTerm}${description}`;
132
+ };
133
+ const indentBlock = (value) => value
134
+ .split("\n")
135
+ .map((line) => `${indent}${line}`)
136
+ .join("\n");
137
+ const formatList = (items) => items.map(indentBlock).join("\n");
138
+ const output = [];
139
+ output.push(text.heading(formatCommandHeader(cmd)), "");
140
+ output.push(`${text.section("Usage:")} ${text.usageCommand(helper.commandUsage(cmd))}`, "");
141
+ const commandDescription = helper.commandDescription(cmd);
142
+ if (commandDescription.length > 0) {
143
+ output.push(commandDescription, "");
144
+ }
145
+ const argumentList = helper.visibleArguments(cmd).map((argument) => formatItem(helper.argumentTerm(argument), helper.argumentDescription(argument), text.argument));
146
+ if (argumentList.length > 0) {
147
+ output.push(text.section("Arguments:"), formatList(argumentList), "");
148
+ }
149
+ const optionList = helper.visibleOptions(cmd).map((option) => formatItem(helper.optionTerm(option), helper.optionDescription(option), text.option));
150
+ if (optionList.length > 0) {
151
+ output.push(text.section("Options:"), formatList(optionList), "");
152
+ }
153
+ if (helper.showGlobalOptions) {
154
+ const globalOptionList = helper.visibleGlobalOptions(cmd).map((option) => formatItem(helper.optionTerm(option), helper.optionDescription(option), text.option));
155
+ if (globalOptionList.length > 0) {
156
+ output.push(text.section("Global Options:"), formatList(globalOptionList), "");
157
+ }
158
+ }
159
+ const commandList = helper.visibleCommands(cmd).map((subcommand) => formatItem(helper.subcommandTerm(subcommand), helper.subcommandDescription(subcommand), text.command));
160
+ if (commandList.length > 0) {
161
+ output.push(text.section("Commands:"), formatList(commandList), "");
162
+ }
163
+ return output.join("\n");
164
+ }
165
+ export function createProgram(dependencies) {
166
+ const container = createCliContainer(dependencies);
167
+ const program = bootstrapProgram(container);
168
+ if (dependencies.exitOverride ?? true) {
169
+ applyExitOverride(program);
170
+ }
171
+ if (dependencies.suppressCommanderOutput) {
172
+ suppressCommanderOutput(program);
173
+ }
174
+ return program;
175
+ }
176
+ function bootstrapProgram(container) {
177
+ const program = new Command();
178
+ const executionContext = detectExecutionContext({
179
+ argv: process.argv,
180
+ env: container.env.variables,
181
+ moduleUrl: import.meta.url
182
+ });
183
+ const usageCommand = formatCliUsageCommand(executionContext);
184
+ const helpCommand = formatCliHelpCommand(executionContext, [
185
+ "<command>",
186
+ "--help"
187
+ ]);
188
+ program
189
+ .name("poe-code")
190
+ .description("Configure Poe API integrations for local developer tooling.")
191
+ .option("-y, --yes", "Accept defaults without prompting.")
192
+ .option("--dry-run", "Simulate commands without writing changes.")
193
+ .option("--verbose", "Show verbose logs.")
194
+ .helpOption("-h, --help", "Display help for command")
195
+ .showHelpAfterError(false)
196
+ .showSuggestionAfterError(true)
197
+ .configureHelp({
198
+ formatHelp: (cmd, helper) => {
199
+ if (cmd.name() === "poe-code") {
200
+ return formatHelpText({ usageCommand, helpCommand });
201
+ }
202
+ return formatSubcommandHelp(cmd, helper);
203
+ }
204
+ });
205
+ registerVersionOption(program, container, packageJson.version);
206
+ registerInstallCommand(program, container);
207
+ registerConfigureCommand(program, container);
208
+ registerSpawnCommand(program, container);
209
+ registerWrapCommand(program, container);
210
+ registerGenerateCommand(program, container);
211
+ registerTestCommand(program, container);
212
+ registerUnconfigureCommand(program, container);
213
+ registerLoginCommand(program, container);
214
+ registerMcpCommand(program, container);
215
+ registerSkillCommand(program, container);
216
+ registerRalphCommand(program, container);
217
+ registerUsageCommand(program, container);
218
+ registerModelsCommand(program, container);
219
+ program.action(function () {
220
+ const args = this.args;
221
+ if (args.length > 0) {
222
+ throwCommandNotFound({
223
+ container,
224
+ scope: "cli",
225
+ unknownCommand: args.at(0) ?? "",
226
+ helpArgs: ["--help"],
227
+ moduleUrl: import.meta.url
228
+ });
229
+ }
230
+ this.outputHelp();
231
+ });
232
+ return program;
233
+ }
234
+ function applyExitOverride(command) {
235
+ command.exitOverride();
236
+ for (const child of command.commands) {
237
+ applyExitOverride(child);
238
+ }
239
+ }
240
+ function suppressCommanderOutput(command) {
241
+ command.configureOutput({
242
+ writeOut: () => { },
243
+ writeErr: () => { }
244
+ });
245
+ for (const child of command.commands) {
246
+ suppressCommanderOutput(child);
247
+ }
248
+ }
249
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { cancel, isCancel, password, select, promptText as text } from "@poe-code/design-system";
2
+ import type { PromptFn } from "./types.js";
3
+ export interface PromptAdapter {
4
+ text: typeof text;
5
+ password: typeof password;
6
+ select: typeof select;
7
+ isCancel: typeof isCancel;
8
+ cancel: typeof cancel;
9
+ }
10
+ export declare function createPromptRunner(adapter?: PromptAdapter): PromptFn;
@@ -0,0 +1,79 @@
1
+ import { cancel, isCancel, password, select, promptText as text } from "@poe-code/design-system";
2
+ import { OperationCancelledError } from "./errors.js";
3
+ function toInitialValue(value) {
4
+ if (value == null) {
5
+ return undefined;
6
+ }
7
+ return String(value);
8
+ }
9
+ function resolveSelectInitial(descriptor) {
10
+ if (descriptor.initial == null) {
11
+ return undefined;
12
+ }
13
+ if (typeof descriptor.initial === "number") {
14
+ return descriptor.choices?.[descriptor.initial]?.value;
15
+ }
16
+ return descriptor.initial;
17
+ }
18
+ export function createPromptRunner(adapter = {
19
+ text,
20
+ password,
21
+ select,
22
+ isCancel,
23
+ cancel
24
+ }) {
25
+ const runPrompt = async (descriptor) => {
26
+ const type = descriptor.type ?? "text";
27
+ let result;
28
+ if (type === "password") {
29
+ result = await adapter.password({
30
+ message: descriptor.message
31
+ });
32
+ }
33
+ else if (type === "select") {
34
+ const choices = descriptor.choices ?? [];
35
+ if (choices.length === 0) {
36
+ throw new Error(`Missing choices for "${descriptor.name}".`);
37
+ }
38
+ result = await adapter.select({
39
+ message: descriptor.message,
40
+ options: choices.map((choice) => ({
41
+ label: choice.title,
42
+ value: choice.value
43
+ })),
44
+ initialValue: resolveSelectInitial(descriptor)
45
+ });
46
+ }
47
+ else {
48
+ result = await adapter.text({
49
+ message: descriptor.message,
50
+ initialValue: toInitialValue(descriptor.initial)
51
+ });
52
+ }
53
+ if (adapter.isCancel(result)) {
54
+ adapter.cancel("Operation cancelled.");
55
+ throw new OperationCancelledError();
56
+ }
57
+ return result;
58
+ };
59
+ return async (questions) => {
60
+ const prompts = Array.isArray(questions)
61
+ ? questions
62
+ : questions
63
+ ? [questions]
64
+ : [];
65
+ if (prompts.length === 0) {
66
+ return {};
67
+ }
68
+ const responses = {};
69
+ for (const prompt of prompts) {
70
+ if (!prompt || typeof prompt !== "object") {
71
+ throw new Error("Invalid prompt descriptor.");
72
+ }
73
+ const descriptor = prompt;
74
+ responses[descriptor.name] = await runPrompt(descriptor);
75
+ }
76
+ return responses;
77
+ };
78
+ }
79
+ //# sourceMappingURL=prompt-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-runner.js","sourceRoot":"","sources":["../../src/cli/prompt-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export interface PromptDescriptor<TName extends string = string> {
2
+ readonly name: TName;
3
+ readonly message: string;
4
+ readonly type?: string;
5
+ readonly initial?: string | number;
6
+ readonly choices?: Array<{
7
+ title: string;
8
+ value: string;
9
+ }>;
10
+ }
11
+ export interface ModelPromptInput {
12
+ label: string;
13
+ defaultValue: string;
14
+ choices: Array<{
15
+ title: string;
16
+ value: string;
17
+ }>;
18
+ }
19
+ export interface ReasoningPromptInput {
20
+ label: string;
21
+ defaultValue: string;
22
+ }
23
+ export interface ServiceSelectionInput {
24
+ message: string;
25
+ choices: Array<{
26
+ title: string;
27
+ value: string;
28
+ }>;
29
+ }
30
+ export interface PromptLibrary {
31
+ loginApiKey(): PromptDescriptor<"apiKey">;
32
+ model(input: ModelPromptInput): PromptDescriptor<"model">;
33
+ reasoningEffort(input: ReasoningPromptInput): PromptDescriptor<"reasoningEffort">;
34
+ configName(defaultName: string): PromptDescriptor<"configName">;
35
+ serviceSelection(input: ServiceSelectionInput): PromptDescriptor<"serviceSelection"> & {
36
+ type: "select";
37
+ };
38
+ }
39
+ export declare function createPromptLibrary(): PromptLibrary;
@@ -0,0 +1,42 @@
1
+ export function createPromptLibrary() {
2
+ const describe = (descriptor) => descriptor;
3
+ return {
4
+ loginApiKey: () => describe({
5
+ name: "apiKey",
6
+ message: "Enter your Poe API key (get one at https://poe.com/api_key)",
7
+ type: "password"
8
+ }),
9
+ model: ({ label, defaultValue, choices }) => {
10
+ const initial = Math.max(choices.findIndex((choice) => choice.value === defaultValue), 0);
11
+ return describe({
12
+ name: "model",
13
+ message: label,
14
+ type: "select",
15
+ initial,
16
+ choices
17
+ });
18
+ },
19
+ reasoningEffort: ({ label, defaultValue }) => describe({
20
+ name: "reasoningEffort",
21
+ message: label,
22
+ type: "text",
23
+ initial: defaultValue
24
+ }),
25
+ configName: (defaultName) => describe({
26
+ name: "configName",
27
+ message: "Configuration name",
28
+ type: "text",
29
+ initial: defaultName
30
+ }),
31
+ serviceSelection: ({ message, choices }) => {
32
+ const descriptor = {
33
+ name: "serviceSelection",
34
+ message,
35
+ type: "select",
36
+ choices
37
+ };
38
+ return descriptor;
39
+ }
40
+ };
41
+ }
42
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAoCA,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,CACf,UAAmC,EACV,EAAE,CAAC,UAAU,CAAC;IAEzC,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAChB,QAAQ,CAAC;YACP,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,6DAA6D;YACtE,IAAI,EAAE,UAAU;SACjB,CAAC;QACJ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,EAC5D,CAAC,CACF,CAAC;YACF,OAAO,QAAQ,CAAC;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAC3C,QAAQ,CAAC;YACP,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,YAAY;SACtB,CAAC;QACJ,UAAU,EAAE,CAAC,WAAmB,EAAE,EAAE,CAClC,QAAQ,CAAC;YACP,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,oBAAoB;YAC7B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,WAAW;SACrB,CAAC;QACJ,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YACzC,MAAM,UAAU,GAEZ;gBACF,IAAI,EAAE,kBAAkB;gBACxB,OAAO;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO;aACR,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}