poe-code 0.1.26 → 1.0.0

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 (342) hide show
  1. package/README.md +110 -29
  2. package/dist/bin/poe-claude.js +16 -0
  3. package/dist/bin/poe-codex.js +16 -0
  4. package/dist/bin/poe-kimi-cli.js +16 -0
  5. package/dist/bin/poe-opencode.js +16 -0
  6. package/dist/cli/binary-aliases.d.ts +7 -0
  7. package/dist/cli/binary-aliases.js +26 -0
  8. package/dist/cli/binary-aliases.js.map +1 -0
  9. package/dist/cli/bootstrap.d.ts +4 -0
  10. package/dist/cli/bootstrap.js +78 -0
  11. package/dist/cli/bootstrap.js.map +1 -0
  12. package/dist/cli/command-runner.d.ts +1 -1
  13. package/dist/cli/command-runner.js +16 -2
  14. package/dist/cli/command-runner.js.map +1 -1
  15. package/dist/cli/commands/configure-payload.d.ts +15 -0
  16. package/dist/cli/commands/configure-payload.js +31 -0
  17. package/dist/cli/commands/configure-payload.js.map +1 -0
  18. package/dist/cli/commands/configure.d.ts +4 -3
  19. package/dist/cli/commands/configure.js +102 -101
  20. package/dist/cli/commands/configure.js.map +1 -1
  21. package/dist/cli/commands/ensure-isolated-config.d.ts +12 -0
  22. package/dist/cli/commands/ensure-isolated-config.js +53 -0
  23. package/dist/cli/commands/ensure-isolated-config.js.map +1 -0
  24. package/dist/cli/commands/generate.d.ts +9 -0
  25. package/dist/cli/commands/generate.js +323 -0
  26. package/dist/cli/commands/generate.js.map +1 -0
  27. package/dist/cli/commands/install.d.ts +4 -0
  28. package/dist/cli/commands/install.js +40 -0
  29. package/dist/cli/commands/install.js.map +1 -0
  30. package/dist/cli/commands/login.js +62 -8
  31. package/dist/cli/commands/login.js.map +1 -1
  32. package/dist/cli/commands/{root.d.ts → mcp.d.ts} +1 -1
  33. package/dist/cli/commands/mcp.js +168 -0
  34. package/dist/cli/commands/mcp.js.map +1 -0
  35. package/dist/cli/commands/shared.d.ts +16 -11
  36. package/dist/cli/commands/shared.js +45 -24
  37. package/dist/cli/commands/shared.js.map +1 -1
  38. package/dist/cli/commands/spawn.d.ts +14 -4
  39. package/dist/cli/commands/spawn.js +92 -77
  40. package/dist/cli/commands/spawn.js.map +1 -1
  41. package/dist/cli/commands/test.d.ts +6 -4
  42. package/dist/cli/commands/test.js +111 -16
  43. package/dist/cli/commands/test.js.map +1 -1
  44. package/dist/cli/commands/unconfigure.d.ts +7 -0
  45. package/dist/cli/commands/unconfigure.js +116 -0
  46. package/dist/cli/commands/unconfigure.js.map +1 -0
  47. package/dist/cli/commands/version.d.ts +3 -0
  48. package/dist/cli/commands/version.js +31 -0
  49. package/dist/cli/commands/version.js.map +1 -0
  50. package/dist/cli/commands/wrap.d.ts +3 -0
  51. package/dist/cli/commands/wrap.js +61 -0
  52. package/dist/cli/commands/wrap.js.map +1 -0
  53. package/dist/cli/constants.d.ts +23 -9
  54. package/dist/cli/constants.js +42 -9
  55. package/dist/cli/constants.js.map +1 -1
  56. package/dist/cli/container.d.ts +4 -10
  57. package/dist/cli/container.js +18 -22
  58. package/dist/cli/container.js.map +1 -1
  59. package/dist/cli/context.d.ts +9 -13
  60. package/dist/cli/context.js +45 -152
  61. package/dist/cli/context.js.map +1 -1
  62. package/dist/cli/environment.d.ts +2 -0
  63. package/dist/cli/environment.js +80 -0
  64. package/dist/cli/environment.js.map +1 -1
  65. package/dist/cli/error-logger.d.ts +18 -2
  66. package/dist/cli/error-logger.js +25 -7
  67. package/dist/cli/error-logger.js.map +1 -1
  68. package/dist/cli/errors.d.ts +14 -10
  69. package/dist/cli/errors.js +25 -12
  70. package/dist/cli/errors.js.map +1 -1
  71. package/dist/cli/exit-signals.d.ts +4 -0
  72. package/dist/cli/exit-signals.js +8 -0
  73. package/dist/cli/exit-signals.js.map +1 -0
  74. package/dist/cli/http.d.ts +1 -0
  75. package/dist/cli/isolated-env-runner.d.ts +10 -0
  76. package/dist/cli/isolated-env-runner.js +46 -0
  77. package/dist/cli/isolated-env-runner.js.map +1 -0
  78. package/dist/cli/isolated-env.d.ts +22 -0
  79. package/dist/cli/isolated-env.js +176 -0
  80. package/dist/cli/isolated-env.js.map +1 -0
  81. package/dist/cli/logger.d.ts +11 -1
  82. package/dist/cli/logger.js +101 -16
  83. package/dist/cli/logger.js.map +1 -1
  84. package/dist/cli/mcp-output-format.d.ts +2 -0
  85. package/dist/cli/mcp-output-format.js +22 -0
  86. package/dist/cli/mcp-output-format.js.map +1 -0
  87. package/dist/cli/mcp-server.d.ts +21 -0
  88. package/dist/cli/mcp-server.js +286 -0
  89. package/dist/cli/mcp-server.js.map +1 -0
  90. package/dist/cli/options.d.ts +18 -3
  91. package/dist/cli/options.js +39 -12
  92. package/dist/cli/options.js.map +1 -1
  93. package/dist/cli/poe-code-command-runner.d.ts +6 -0
  94. package/dist/cli/poe-code-command-runner.js +57 -0
  95. package/dist/cli/poe-code-command-runner.js.map +1 -0
  96. package/dist/cli/program.js +134 -23
  97. package/dist/cli/program.js.map +1 -1
  98. package/dist/cli/prompt-runner.d.ts +10 -0
  99. package/dist/cli/prompt-runner.js +79 -0
  100. package/dist/cli/prompt-runner.js.map +1 -0
  101. package/dist/cli/prompts.d.ts +23 -7
  102. package/dist/cli/prompts.js +17 -33
  103. package/dist/cli/prompts.js.map +1 -1
  104. package/dist/cli/service-registry.d.ts +86 -21
  105. package/dist/cli/service-registry.js +60 -12
  106. package/dist/cli/service-registry.js.map +1 -1
  107. package/dist/cli/ui/service-menu.d.ts +7 -0
  108. package/dist/cli/ui/service-menu.js +43 -0
  109. package/dist/cli/ui/service-menu.js.map +1 -0
  110. package/dist/index.d.ts +6 -2
  111. package/dist/index.js +7 -74
  112. package/dist/index.js.map +1 -1
  113. package/dist/providers/claude-code.d.ts +13 -0
  114. package/dist/providers/claude-code.js +136 -0
  115. package/dist/providers/claude-code.js.map +1 -0
  116. package/dist/providers/codex.d.ts +17 -0
  117. package/dist/providers/codex.js +144 -0
  118. package/dist/providers/codex.js.map +1 -0
  119. package/dist/providers/create-provider.d.ts +29 -0
  120. package/dist/providers/create-provider.js +63 -0
  121. package/dist/providers/create-provider.js.map +1 -0
  122. package/dist/providers/index.d.ts +2 -2
  123. package/dist/providers/index.js +5 -10
  124. package/dist/providers/index.js.map +1 -1
  125. package/dist/providers/kimi.d.ts +4 -0
  126. package/dist/providers/kimi.js +123 -0
  127. package/dist/providers/kimi.js.map +1 -0
  128. package/dist/providers/opencode.d.ts +3 -0
  129. package/dist/providers/opencode.js +119 -0
  130. package/dist/providers/opencode.js.map +1 -0
  131. package/dist/providers/spawn-options.d.ts +12 -0
  132. package/dist/providers/spawn-options.js +2 -0
  133. package/dist/providers/spawn-options.js.map +1 -0
  134. package/dist/sdk/container.d.ts +18 -0
  135. package/dist/sdk/container.js +127 -0
  136. package/dist/sdk/container.js.map +1 -0
  137. package/dist/sdk/credentials.d.ts +9 -0
  138. package/dist/sdk/credentials.js +35 -0
  139. package/dist/sdk/credentials.js.map +1 -0
  140. package/dist/sdk/generate.d.ts +5 -0
  141. package/dist/sdk/generate.js +97 -0
  142. package/dist/sdk/generate.js.map +1 -0
  143. package/dist/sdk/spawn-core.d.ts +23 -0
  144. package/dist/sdk/spawn-core.js +105 -0
  145. package/dist/sdk/spawn-core.js.map +1 -0
  146. package/dist/sdk/spawn.d.ts +23 -0
  147. package/dist/sdk/spawn.js +41 -0
  148. package/dist/sdk/spawn.js.map +1 -0
  149. package/dist/sdk/types.d.ts +38 -0
  150. package/dist/sdk/types.js +2 -0
  151. package/dist/sdk/types.js.map +1 -0
  152. package/dist/services/client-instance.d.ts +12 -0
  153. package/dist/services/client-instance.js +36 -0
  154. package/dist/services/client-instance.js.map +1 -0
  155. package/dist/services/credentials.d.ts +13 -0
  156. package/dist/services/credentials.js +132 -14
  157. package/dist/services/credentials.js.map +1 -1
  158. package/dist/services/llm-client.d.ts +22 -0
  159. package/dist/services/llm-client.js +138 -0
  160. package/dist/services/llm-client.js.map +1 -0
  161. package/dist/services/media-download.d.ts +17 -0
  162. package/dist/services/media-download.js +42 -0
  163. package/dist/services/media-download.js.map +1 -0
  164. package/dist/services/model-strategy.d.ts +2 -2
  165. package/dist/services/model-strategy.js +36 -31
  166. package/dist/services/model-strategy.js.map +1 -1
  167. package/dist/services/mutation-events.d.ts +4 -0
  168. package/dist/services/mutation-events.js +53 -0
  169. package/dist/services/mutation-events.js.map +1 -0
  170. package/dist/services/service-install.d.ts +5 -4
  171. package/dist/services/service-install.js +36 -13
  172. package/dist/services/service-install.js.map +1 -1
  173. package/dist/services/version.d.ts +11 -0
  174. package/dist/services/version.js +28 -0
  175. package/dist/services/version.js.map +1 -0
  176. package/dist/templates/codex/config.toml.hbs +3 -3
  177. package/dist/tools/label-generator.d.ts +11 -0
  178. package/dist/tools/label-generator.js +78 -0
  179. package/dist/tools/label-generator.js.map +1 -0
  180. package/dist/utils/command-checks.d.ts +45 -0
  181. package/dist/utils/command-checks.js +120 -0
  182. package/dist/utils/command-checks.js.map +1 -0
  183. package/dist/utils/dry-run.d.ts +1 -0
  184. package/dist/utils/dry-run.js +116 -7
  185. package/dist/utils/dry-run.js.map +1 -1
  186. package/dist/utils/execution-context.d.ts +40 -0
  187. package/dist/utils/execution-context.js +128 -0
  188. package/dist/utils/execution-context.js.map +1 -0
  189. package/dist/utils/json.js +3 -0
  190. package/dist/utils/json.js.map +1 -1
  191. package/dist/utils/templates.d.ts +1 -0
  192. package/dist/utils/templates.js +3 -4
  193. package/dist/utils/templates.js.map +1 -1
  194. package/package.json +52 -46
  195. package/dist/cli/api-client.d.ts +0 -14
  196. package/dist/cli/api-client.js +0 -140
  197. package/dist/cli/api-client.js.map +0 -1
  198. package/dist/cli/chat.d.ts +0 -32
  199. package/dist/cli/chat.js +0 -2
  200. package/dist/cli/chat.js.map +0 -1
  201. package/dist/cli/commands/agent.d.ts +0 -18
  202. package/dist/cli/commands/agent.js +0 -84
  203. package/dist/cli/commands/agent.js.map +0 -1
  204. package/dist/cli/commands/configure-agents.d.ts +0 -3
  205. package/dist/cli/commands/configure-agents.js +0 -72
  206. package/dist/cli/commands/configure-agents.js.map +0 -1
  207. package/dist/cli/commands/init.d.ts +0 -8
  208. package/dist/cli/commands/init.js +0 -45
  209. package/dist/cli/commands/init.js.map +0 -1
  210. package/dist/cli/commands/interactive.d.ts +0 -3
  211. package/dist/cli/commands/interactive.js +0 -17
  212. package/dist/cli/commands/interactive.js.map +0 -1
  213. package/dist/cli/commands/logout.d.ts +0 -3
  214. package/dist/cli/commands/logout.js +0 -31
  215. package/dist/cli/commands/logout.js.map +0 -1
  216. package/dist/cli/commands/prerequisites.d.ts +0 -3
  217. package/dist/cli/commands/prerequisites.js +0 -23
  218. package/dist/cli/commands/prerequisites.js.map +0 -1
  219. package/dist/cli/commands/query.d.ts +0 -7
  220. package/dist/cli/commands/query.js +0 -46
  221. package/dist/cli/commands/query.js.map +0 -1
  222. package/dist/cli/commands/remove.d.ts +0 -6
  223. package/dist/cli/commands/remove.js +0 -80
  224. package/dist/cli/commands/remove.js.map +0 -1
  225. package/dist/cli/commands/root.js +0 -7
  226. package/dist/cli/commands/root.js.map +0 -1
  227. package/dist/cli/commands/spawn-worktree.d.ts +0 -6
  228. package/dist/cli/commands/spawn-worktree.js +0 -91
  229. package/dist/cli/commands/spawn-worktree.js.map +0 -1
  230. package/dist/cli/file-mentions.d.ts +0 -13
  231. package/dist/cli/file-mentions.js +0 -87
  232. package/dist/cli/file-mentions.js.map +0 -1
  233. package/dist/cli/file-picker-state.d.ts +0 -14
  234. package/dist/cli/file-picker-state.js +0 -23
  235. package/dist/cli/file-picker-state.js.map +0 -1
  236. package/dist/cli/interactive-command-runner.d.ts +0 -11
  237. package/dist/cli/interactive-command-runner.js +0 -142
  238. package/dist/cli/interactive-command-runner.js.map +0 -1
  239. package/dist/cli/interactive-launcher.d.ts +0 -2
  240. package/dist/cli/interactive-launcher.js +0 -404
  241. package/dist/cli/interactive-launcher.js.map +0 -1
  242. package/dist/cli/interactive-tasks.d.ts +0 -7
  243. package/dist/cli/interactive-tasks.js +0 -199
  244. package/dist/cli/interactive-tasks.js.map +0 -1
  245. package/dist/cli/interactive.d.ts +0 -19
  246. package/dist/cli/interactive.js +0 -479
  247. package/dist/cli/interactive.js.map +0 -1
  248. package/dist/cli/markdown-renderer.d.ts +0 -27
  249. package/dist/cli/markdown-renderer.js +0 -178
  250. package/dist/cli/markdown-renderer.js.map +0 -1
  251. package/dist/cli/markdown-renderer.test.d.ts +0 -1
  252. package/dist/cli/markdown-renderer.test.js +0 -105
  253. package/dist/cli/markdown-renderer.test.js.map +0 -1
  254. package/dist/cli/telemetry.d.ts +0 -15
  255. package/dist/cli/telemetry.js +0 -45
  256. package/dist/cli/telemetry.js.map +0 -1
  257. package/dist/commands/init.d.ts +0 -9
  258. package/dist/commands/init.js +0 -43
  259. package/dist/commands/init.js.map +0 -1
  260. package/dist/commands/publish-placeholder.d.ts +0 -8
  261. package/dist/commands/publish-placeholder.js +0 -50
  262. package/dist/commands/publish-placeholder.js.map +0 -1
  263. package/dist/commands/spawn-worktree.d.ts +0 -25
  264. package/dist/commands/spawn-worktree.js +0 -139
  265. package/dist/commands/spawn-worktree.js.map +0 -1
  266. package/dist/providers/claude-code-adapter.d.ts +0 -20
  267. package/dist/providers/claude-code-adapter.js +0 -48
  268. package/dist/providers/claude-code-adapter.js.map +0 -1
  269. package/dist/providers/codex-adapter.d.ts +0 -19
  270. package/dist/providers/codex-adapter.js +0 -49
  271. package/dist/providers/codex-adapter.js.map +0 -1
  272. package/dist/providers/opencode-adapter.d.ts +0 -18
  273. package/dist/providers/opencode-adapter.js +0 -45
  274. package/dist/providers/opencode-adapter.js.map +0 -1
  275. package/dist/providers/roo-code-adapter.d.ts +0 -19
  276. package/dist/providers/roo-code-adapter.js +0 -70
  277. package/dist/providers/roo-code-adapter.js.map +0 -1
  278. package/dist/services/agent-config-manager.d.ts +0 -32
  279. package/dist/services/agent-config-manager.js +0 -130
  280. package/dist/services/agent-config-manager.js.map +0 -1
  281. package/dist/services/agent-registry.d.ts +0 -27
  282. package/dist/services/agent-registry.js +0 -89
  283. package/dist/services/agent-registry.js.map +0 -1
  284. package/dist/services/agent-session.d.ts +0 -24
  285. package/dist/services/agent-session.js +0 -107
  286. package/dist/services/agent-session.js.map +0 -1
  287. package/dist/services/agent-task-registry.d.ts +0 -131
  288. package/dist/services/agent-task-registry.js +0 -491
  289. package/dist/services/agent-task-registry.js.map +0 -1
  290. package/dist/services/chat.d.ts +0 -94
  291. package/dist/services/chat.js +0 -241
  292. package/dist/services/chat.js.map +0 -1
  293. package/dist/services/claude-code.d.ts +0 -28
  294. package/dist/services/claude-code.js +0 -155
  295. package/dist/services/claude-code.js.map +0 -1
  296. package/dist/services/codex.d.ts +0 -27
  297. package/dist/services/codex.js +0 -231
  298. package/dist/services/codex.js.map +0 -1
  299. package/dist/services/mcp-client.d.ts +0 -38
  300. package/dist/services/mcp-client.js +0 -170
  301. package/dist/services/mcp-client.js.map +0 -1
  302. package/dist/services/mcp-manager.d.ts +0 -28
  303. package/dist/services/mcp-manager.js +0 -157
  304. package/dist/services/mcp-manager.js.map +0 -1
  305. package/dist/services/opencode.d.ts +0 -25
  306. package/dist/services/opencode.js +0 -161
  307. package/dist/services/opencode.js.map +0 -1
  308. package/dist/services/poe-code.d.ts +0 -7
  309. package/dist/services/poe-code.js +0 -5
  310. package/dist/services/poe-code.js.map +0 -1
  311. package/dist/services/roo-code.d.ts +0 -22
  312. package/dist/services/roo-code.js +0 -134
  313. package/dist/services/roo-code.js.map +0 -1
  314. package/dist/services/service-manifest.d.ts +0 -122
  315. package/dist/services/service-manifest.js +0 -368
  316. package/dist/services/service-manifest.js.map +0 -1
  317. package/dist/services/task-logger.d.ts +0 -24
  318. package/dist/services/task-logger.js +0 -73
  319. package/dist/services/task-logger.js.map +0 -1
  320. package/dist/services/task-runner.d.ts +0 -19
  321. package/dist/services/task-runner.js +0 -157
  322. package/dist/services/task-runner.js.map +0 -1
  323. package/dist/services/tools.d.ts +0 -76
  324. package/dist/services/tools.js +0 -870
  325. package/dist/services/tools.js.map +0 -1
  326. package/dist/templates/claude-code/anthropic_key.sh.hbs +0 -2
  327. package/dist/utils/e2e-flags.d.ts +0 -1
  328. package/dist/utils/e2e-flags.js +0 -9
  329. package/dist/utils/e2e-flags.js.map +0 -1
  330. package/dist/utils/prerequisites.d.ts +0 -41
  331. package/dist/utils/prerequisites.js +0 -92
  332. package/dist/utils/prerequisites.js.map +0 -1
  333. package/dist/utils/toml.d.ts +0 -8
  334. package/dist/utils/toml.js +0 -30
  335. package/dist/utils/toml.js.map +0 -1
  336. package/dist/utils/worktree.d.ts +0 -40
  337. package/dist/utils/worktree.js +0 -179
  338. package/dist/utils/worktree.js.map +0 -1
  339. package/shared/conversation-layout.cjs +0 -11
  340. package/shared/conversation-layout.d.ts +0 -7
  341. package/shared/conversation-layout.js +0 -11
  342. package/shared/package.json +0 -13
@@ -1,31 +0,0 @@
1
- import { createExecutionResources, resolveCommandFlags } from "./shared.js";
2
- import { deleteCredentials, loadCredentials } from "../../services/credentials.js";
3
- export function registerLogoutCommand(program, container) {
4
- program
5
- .command("logout")
6
- .description("Remove the stored Poe API key.")
7
- .action(async () => {
8
- const flags = resolveCommandFlags(program);
9
- const resources = createExecutionResources(container, flags, "logout");
10
- const stored = await loadCredentials({
11
- fs: container.fs,
12
- filePath: container.env.credentialsPath
13
- });
14
- if (!stored) {
15
- resources.context.complete({
16
- success: "No stored Poe API key found.",
17
- dry: "Dry run: no stored Poe API key to remove."
18
- });
19
- return;
20
- }
21
- await deleteCredentials({
22
- fs: resources.context.fs,
23
- filePath: container.env.credentialsPath
24
- });
25
- resources.context.complete({
26
- success: "Removed stored Poe API key.",
27
- dry: "Dry run: would remove stored Poe API key."
28
- });
29
- });
30
- }
31
- //# sourceMappingURL=logout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,eAAe,EAChB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,SAAuB;IAEvB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,QAAQ,CACT,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,eAAe;SACxC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACzB,OAAO,EAAE,8BAA8B;gBACvC,GAAG,EAAE,2CAA2C;aACjD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,CAAC;YACtB,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE;YACxB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,eAAe;SACxC,CAAC,CAAC;QAEH,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,6BAA6B;YACtC,GAAG,EAAE,2CAA2C;SACjD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliContainer } from "../container.js";
3
- export declare function registerPrerequisitesCommand(program: Command, container: CliContainer): void;
@@ -1,23 +0,0 @@
1
- import { createExecutionResources, normalizePhase, registerProviderPrerequisites, resolveCommandFlags, resolveServiceAdapter, runPrerequisites } from "./shared.js";
2
- export function registerPrerequisitesCommand(program, container) {
3
- program
4
- .command("prerequisites")
5
- .description("Run prerequisite checks for a service.")
6
- .argument("<service>", "Service to check (claude-code | codex | opencode)")
7
- .argument("<phase>", "Phase to execute (before | after)")
8
- .action(async (service, phase) => {
9
- const normalizedPhase = normalizePhase(phase);
10
- const adapter = resolveServiceAdapter(container, service);
11
- const flags = resolveCommandFlags(program);
12
- const resources = createExecutionResources(container, flags, `prerequisites:${service}`);
13
- registerProviderPrerequisites(adapter, resources);
14
- await container.registry.invoke(service, "prerequisites", async () => {
15
- await runPrerequisites(adapter, resources, normalizedPhase);
16
- });
17
- resources.context.complete({
18
- success: `${adapter.label} ${normalizedPhase} prerequisites succeeded.`,
19
- dry: `Dry run: would run ${adapter.label} ${normalizedPhase} prerequisites.`
20
- });
21
- });
22
- }
23
- //# sourceMappingURL=prerequisites.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prerequisites.js","sourceRoot":"","sources":["../../../src/cli/commands/prerequisites.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,4BAA4B,CAC1C,OAAgB,EAChB,SAAuB;IAEvB,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,wCAAwC,CAAC;SACrD,QAAQ,CACP,WAAW,EACX,mDAAmD,CACpD;SACA,QAAQ,CAAC,SAAS,EAAE,mCAAmC,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,KAAa,EAAE,EAAE;QAC/C,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,KAAK,EACL,iBAAiB,OAAO,EAAE,CAC3B,CAAC;QAEF,6BAA6B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAElD,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,eAAe,2BAA2B;YACvE,GAAG,EAAE,sBAAsB,OAAO,CAAC,KAAK,IAAI,eAAe,iBAAiB;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliContainer } from "../container.js";
3
- export interface QueryCommandOptions {
4
- apiKey?: string;
5
- model?: string;
6
- }
7
- export declare function registerQueryCommand(program: Command, container: CliContainer): void;
@@ -1,46 +0,0 @@
1
- import { resolveCommandFlags } from "./shared.js";
2
- import { DEFAULT_QUERY_MODEL } from "../constants.js";
3
- export function registerQueryCommand(program, container) {
4
- program
5
- .command("query")
6
- .description("Send a prompt to a Poe model via the OpenAI-compatible API and print the response.")
7
- .argument("<text>", "Prompt text to send")
8
- .option("--model <model>", "Model identifier", DEFAULT_QUERY_MODEL)
9
- .option("--api-key <key>", "Poe API key")
10
- .action(async (text, options) => {
11
- const flags = resolveCommandFlags(program);
12
- const logger = container.loggerFactory.create({
13
- dryRun: flags.dryRun,
14
- verbose: flags.verbose,
15
- scope: "query"
16
- });
17
- const model = options.model ?? DEFAULT_QUERY_MODEL;
18
- if (flags.dryRun) {
19
- logger.dryRun(`Dry run: would query "${model}" with text "${text}".`);
20
- return;
21
- }
22
- try {
23
- const apiKey = await container.options.resolveApiKey({
24
- value: options.apiKey,
25
- dryRun: flags.dryRun
26
- });
27
- const content = await container.poeApiClient.query({
28
- apiKey,
29
- model,
30
- prompt: text
31
- });
32
- logger.info(`${model}: ${content}`);
33
- }
34
- catch (error) {
35
- if (error instanceof Error) {
36
- logger.logException(error, "query command", {
37
- operation: "query model",
38
- model,
39
- promptLength: text.length
40
- });
41
- }
42
- throw error;
43
- }
44
- });
45
- }
46
- //# sourceMappingURL=query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAOtD,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,SAAuB;IAEvB,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,oFAAoF,CACrF;SACA,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;SACzC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;SACxC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA4B,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;YAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC;QAEnD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CACX,yBAAyB,KAAK,gBAAgB,IAAI,IAAI,CACvD,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;gBACnD,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC;gBACjD,MAAM;gBACN,KAAK;gBACL,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE;oBAC1C,SAAS,EAAE,aAAa;oBACxB,KAAK;oBACL,YAAY,EAAE,IAAI,CAAC,MAAM;iBAC1B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliContainer } from "../container.js";
3
- export interface RemoveCommandOptions {
4
- configName?: string;
5
- }
6
- export declare function registerRemoveCommand(program: Command, container: CliContainer): void;
@@ -1,80 +0,0 @@
1
- import { buildProviderContext, createExecutionResources, resolveCommandFlags, resolveServiceAdapter } from "./shared.js";
2
- import { DEFAULT_ROO_CONFIG_NAME } from "../constants.js";
3
- export function registerRemoveCommand(program, container) {
4
- program
5
- .command("remove")
6
- .description("Remove existing Poe API tooling configuration.")
7
- .argument("<service>", "Service to remove (claude-code | codex | opencode | roo-code)")
8
- .option("--config-name <name>", "Configuration profile name")
9
- .action(async (service, options) => {
10
- const adapter = resolveServiceAdapter(container, service);
11
- const flags = resolveCommandFlags(program);
12
- const resources = createExecutionResources(container, flags, `remove:${service}`);
13
- const providerContext = buildProviderContext(container, adapter, resources);
14
- const payload = await createRemovePayload(service, container, options, resources);
15
- const removed = await container.registry.invoke(service, "remove", async (entry) => {
16
- if (!entry.remove) {
17
- throw new Error(`Service "${service}" does not support remove.`);
18
- }
19
- return await entry.remove(providerContext, payload);
20
- });
21
- const messages = formatRemovalMessages(service, adapter.label, removed, payload);
22
- resources.context.complete(messages);
23
- });
24
- }
25
- async function createRemovePayload(service, container, options, resources) {
26
- const mutationHooks = resources.mutationHooks;
27
- if (service === "roo-code") {
28
- const configName = await container.options.resolveConfigName(options.configName, DEFAULT_ROO_CONFIG_NAME);
29
- return {
30
- configName,
31
- mutationHooks
32
- };
33
- }
34
- return { mutationHooks };
35
- }
36
- function formatRemovalMessages(service, label, removed, payload) {
37
- const didRemove = typeof removed === "boolean" ? removed : Boolean(removed);
38
- switch (service) {
39
- case "claude-code":
40
- return {
41
- success: didRemove
42
- ? "Removed Claude Code configuration."
43
- : "No Claude Code configuration found.",
44
- dry: "Dry run: would remove Claude Code configuration."
45
- };
46
- case "codex":
47
- return {
48
- success: didRemove
49
- ? "Removed Codex configuration."
50
- : "No Codex configuration found.",
51
- dry: "Dry run: would remove Codex configuration."
52
- };
53
- case "opencode":
54
- return {
55
- success: didRemove
56
- ? "Removed OpenCode CLI configuration."
57
- : "No OpenCode CLI configuration found.",
58
- dry: "Dry run: would remove OpenCode CLI configuration."
59
- };
60
- case "roo-code": {
61
- const configName = typeof payload.configName === "string"
62
- ? payload.configName
63
- : DEFAULT_ROO_CONFIG_NAME;
64
- return {
65
- success: didRemove
66
- ? `Removed Roo Code configuration "${configName}".`
67
- : `No Roo Code configuration named "${configName}" found.`,
68
- dry: "Dry run: would remove Roo Code configuration."
69
- };
70
- }
71
- default:
72
- return {
73
- success: didRemove
74
- ? `Removed ${label} configuration.`
75
- : `No ${label} configuration found.`,
76
- dry: `Dry run: would remove ${label} configuration.`
77
- };
78
- }
79
- }
80
- //# sourceMappingURL=remove.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { launchInteractiveMode } from "../interactive-launcher.js";
2
- export function registerRootHandler(program, container) {
3
- program.action(async () => {
4
- await launchInteractiveMode(container.dependencies);
5
- });
6
- }
7
- //# sourceMappingURL=root.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/cli/commands/root.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,SAAuB;IAEvB,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,qBAAqB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CliContainer } from "../container.js";
3
- export interface SpawnWorktreeCommandOptions {
4
- branch?: string;
5
- }
6
- export declare function registerSpawnWorktreeCommand(program: Command, container: CliContainer): void;
@@ -1,91 +0,0 @@
1
- import { buildProviderContext, resolveCommandFlags, resolveServiceAdapter } from "./shared.js";
2
- import { spawnGitWorktree } from "../../commands/spawn-worktree.js";
3
- import { simpleGit as createSimpleGit } from "simple-git";
4
- export function registerSpawnWorktreeCommand(program, container) {
5
- program
6
- .command("spawn-git-worktree")
7
- .description("Create a git worktree, run an agent, and attempt to merge changes.")
8
- .argument("<service>", "Service to spawn (claude-code | codex | opencode)")
9
- .argument("<prompt>", "Prompt to provide to the agent")
10
- .argument("[agentArgs...]", "Additional arguments forwarded to the agent")
11
- .option("--branch <name>", "Target branch to merge into")
12
- .action(async (service, promptText, agentArgs = [], options) => {
13
- const adapter = resolveServiceAdapter(container, service);
14
- if (!adapter.supportsSpawn) {
15
- throw new Error(`${adapter.label} does not support spawn.`);
16
- }
17
- const flags = resolveCommandFlags(program);
18
- const logger = container.loggerFactory.create({
19
- dryRun: flags.dryRun,
20
- verbose: flags.verbose,
21
- scope: "spawn-worktree"
22
- });
23
- if (flags.dryRun) {
24
- const argsSuffix = agentArgs.length > 0
25
- ? ` with args ${JSON.stringify(agentArgs)}`
26
- : "";
27
- const branchSuffix = options.branch ? ` into ${options.branch}` : "";
28
- logger.dryRun(`Dry run: would create git worktree, run ${adapter.label}${argsSuffix}, and merge${branchSuffix}.`);
29
- return;
30
- }
31
- const runner = flags.verbose
32
- ? createVerboseRunner(container, logger)
33
- : container.commandRunner;
34
- const currentBranch = await resolveTargetBranch(container, options.branch);
35
- await spawnGitWorktree({
36
- agent: service,
37
- prompt: promptText,
38
- agentArgs,
39
- basePath: container.env.cwd,
40
- targetBranch: currentBranch,
41
- logger: (message) => logger.info(message),
42
- runAgent: async ({ agent, prompt, args }) => {
43
- if (agent !== service) {
44
- throw new Error(`Mismatched agent request "${agent}" (expected "${service}").`);
45
- }
46
- return await spawnWithCustomRunner(container, adapter, flags.verbose, runner, prompt, args);
47
- }
48
- });
49
- });
50
- }
51
- function createVerboseRunner(container, logger) {
52
- return async (command, args) => {
53
- logger.verbose(`> ${[command, ...args].join(" ").trim()}`);
54
- return container.commandRunner(command, args);
55
- };
56
- }
57
- async function resolveTargetBranch(container, branchOverride) {
58
- if (branchOverride) {
59
- return branchOverride;
60
- }
61
- const git = createSimpleGit({ baseDir: container.env.cwd });
62
- const branch = await git.revparse(["--abbrev-ref", "HEAD"]);
63
- return branch.trim();
64
- }
65
- async function spawnWithCustomRunner(container, adapter, verbose, runner, prompt, args) {
66
- const scopedLogger = container.loggerFactory.create({
67
- dryRun: false,
68
- verbose,
69
- scope: `spawn:${adapter.name}`
70
- });
71
- const context = container.contextFactory.create({
72
- dryRun: false,
73
- logger: scopedLogger,
74
- runner
75
- });
76
- const resources = {
77
- logger: scopedLogger,
78
- context
79
- };
80
- const providerContext = buildProviderContext(container, adapter, resources);
81
- return (await container.registry.invoke(adapter.name, "spawn", async (entry) => {
82
- if (!entry.spawn) {
83
- throw new Error(`${adapter.label} does not support spawn.`);
84
- }
85
- return (await entry.spawn(providerContext, {
86
- prompt,
87
- args
88
- }));
89
- }));
90
- }
91
- //# sourceMappingURL=spawn-worktree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spawn-worktree.js","sourceRoot":"","sources":["../../../src/cli/commands/spawn-worktree.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { ErrorLogger } from "./error-logger.js";
2
- export interface ResolveFileMentionsDependencies {
3
- input: string;
4
- cwd: string;
5
- readFile: (filePath: string, encoding: BufferEncoding) => Promise<string>;
6
- errorLogger: Pick<ErrorLogger, "logErrorWithStackTrace">;
7
- }
8
- export interface FileMentionResolution {
9
- processedInput: string;
10
- attachments: string[];
11
- mentions: string[];
12
- }
13
- export declare function resolveFileMentions(dependencies: ResolveFileMentionsDependencies): Promise<FileMentionResolution>;
@@ -1,87 +0,0 @@
1
- import path from "node:path";
2
- const WHITESPACE = new Set([" ", "\n", "\r", "\t"]);
3
- export async function resolveFileMentions(dependencies) {
4
- const { input, cwd, readFile, errorLogger } = dependencies;
5
- const segments = extractMentions(input);
6
- if (segments.length === 0) {
7
- return {
8
- processedInput: input,
9
- attachments: [],
10
- mentions: []
11
- };
12
- }
13
- const attachments = [];
14
- const resolvedMentions = [];
15
- for (const segment of segments) {
16
- resolvedMentions.push(segment.mention);
17
- const absolutePath = path.isAbsolute(segment.mention)
18
- ? segment.mention
19
- : path.join(cwd, segment.mention);
20
- try {
21
- const contents = await readFile(absolutePath, "utf8");
22
- attachments.push(`\n\n--- Content of ${segment.mention} ---\n${contents}\n--- End of ${segment.mention} ---`);
23
- }
24
- catch (rawError) {
25
- const error = rawError instanceof Error ? rawError : new Error(String(rawError));
26
- attachments.push(`\n\n[Error reading ${segment.mention}: ${error.message}]`);
27
- errorLogger.logErrorWithStackTrace(error, "interactive file mention", {
28
- component: "interactive",
29
- operation: "read file mention",
30
- mention: segment.mention,
31
- absolutePath,
32
- cwd
33
- });
34
- }
35
- }
36
- const base = removeMentions(input, segments).trim();
37
- return {
38
- processedInput: `${base}${attachments.join("")}`,
39
- attachments,
40
- mentions: resolvedMentions
41
- };
42
- }
43
- function extractMentions(value) {
44
- const segments = [];
45
- let index = 0;
46
- while (index < value.length) {
47
- if (value[index] !== "@") {
48
- index += 1;
49
- continue;
50
- }
51
- const start = index;
52
- index += 1;
53
- let cursor = index;
54
- while (cursor < value.length && !WHITESPACE.has(value[cursor])) {
55
- cursor += 1;
56
- }
57
- const mention = value.slice(index, cursor);
58
- if (mention.length === 0) {
59
- continue;
60
- }
61
- segments.push({
62
- mention,
63
- start,
64
- end: cursor
65
- });
66
- index = cursor;
67
- }
68
- return segments;
69
- }
70
- function removeMentions(value, segments) {
71
- if (segments.length === 0) {
72
- return value;
73
- }
74
- let result = "";
75
- let cursor = 0;
76
- for (const segment of segments) {
77
- if (cursor < segment.start) {
78
- result += value.slice(cursor, segment.start);
79
- }
80
- cursor = segment.end;
81
- }
82
- if (cursor < value.length) {
83
- result += value.slice(cursor);
84
- }
85
- return result;
86
- }
87
- //# sourceMappingURL=file-mentions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-mentions.js","sourceRoot":"","sources":["../../src/cli/file-mentions.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export interface EvaluateFilePickerInput {
2
- value: string;
3
- isOpen: boolean;
4
- }
5
- export type FilePickerAction = {
6
- kind: "open";
7
- prefix: string;
8
- } | {
9
- kind: "search";
10
- query: string;
11
- } | {
12
- kind: "close";
13
- };
14
- export declare function evaluateFilePickerAction(input: EvaluateFilePickerInput): FilePickerAction | null;
@@ -1,23 +0,0 @@
1
- export function evaluateFilePickerAction(input) {
2
- const { value, isOpen } = input;
3
- if (value.endsWith("@")) {
4
- return {
5
- kind: "open",
6
- prefix: value.slice(0, -1)
7
- };
8
- }
9
- if (!isOpen) {
10
- return null;
11
- }
12
- const atIndex = value.lastIndexOf("@");
13
- if (atIndex === -1) {
14
- return {
15
- kind: "close"
16
- };
17
- }
18
- return {
19
- kind: "search",
20
- query: value.slice(atIndex + 1)
21
- };
22
- }
23
- //# sourceMappingURL=file-picker-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-picker-state.js","sourceRoot":"","sources":["../../src/cli/file-picker-state.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,wBAAwB,CACtC,KAA8B;IAE9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEhC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC"}
@@ -1,11 +0,0 @@
1
- import { type CliDependencies } from "./program.js";
2
- export interface ParsedInteractiveCommand {
3
- command: string;
4
- tokens: string[];
5
- normalized: string[];
6
- }
7
- export interface InteractiveCommandExecutor {
8
- identify(input: string): ParsedInteractiveCommand | null;
9
- execute(input: string | ParsedInteractiveCommand): Promise<string | null>;
10
- }
11
- export declare function createInteractiveCommandExecutor(dependencies: CliDependencies): Promise<InteractiveCommandExecutor>;
@@ -1,142 +0,0 @@
1
- import { CommanderError } from "commander";
2
- import { createProgram } from "./program.js";
3
- import { tokenizeCommandLine } from "../utils/command-line.js";
4
- export async function createInteractiveCommandExecutor(dependencies) {
5
- const outputBuffer = [];
6
- const baseLogger = dependencies.logger;
7
- const logger = (message) => {
8
- outputBuffer.push(message);
9
- if (baseLogger) {
10
- baseLogger(message);
11
- }
12
- };
13
- const program = createProgram({
14
- ...dependencies,
15
- logger,
16
- exitOverride: true
17
- });
18
- const commandMap = buildCommandMap(program.commands.map((cmd) => cmd));
19
- const identify = (input) => {
20
- const tokens = tokenizeCommandLine(input);
21
- if (tokens.length === 0) {
22
- return null;
23
- }
24
- const first = tokens[0];
25
- if (first.toLowerCase() === "help") {
26
- return {
27
- command: "help",
28
- tokens,
29
- normalized: tokens
30
- };
31
- }
32
- const key = tokens[0];
33
- const canonical = commandMap.get(key) ?? commandMap.get(key.toLowerCase());
34
- if (!canonical) {
35
- return null;
36
- }
37
- const normalized = normalizeTokens(tokens, canonical);
38
- return {
39
- command: canonical,
40
- tokens,
41
- normalized
42
- };
43
- };
44
- const execute = async (input) => {
45
- const parsed = typeof input === "string" ? identify(input) : input;
46
- if (!parsed) {
47
- return null;
48
- }
49
- outputBuffer.length = 0;
50
- if (parsed.command === "help") {
51
- return renderHelp(program, parsed.tokens.slice(1));
52
- }
53
- try {
54
- await program.parseAsync(parsed.normalized, { from: "user" });
55
- }
56
- catch (error) {
57
- if (error instanceof CommanderError) {
58
- if (error.code !== "commander.helpDisplayed" &&
59
- error.message &&
60
- !outputBuffer.includes(error.message)) {
61
- outputBuffer.push(error.message);
62
- }
63
- }
64
- else {
65
- throw error;
66
- }
67
- }
68
- return outputBuffer.join("\n");
69
- };
70
- return { identify, execute };
71
- }
72
- function buildCommandMap(commands) {
73
- const map = new Map();
74
- for (const command of commands) {
75
- const canonical = command.name();
76
- map.set(canonical, canonical);
77
- map.set(canonical.toLowerCase(), canonical);
78
- for (const alias of command.aliases()) {
79
- map.set(alias, canonical);
80
- map.set(alias.toLowerCase(), canonical);
81
- }
82
- }
83
- return map;
84
- }
85
- function renderHelp(program, topics) {
86
- if (topics.length === 0) {
87
- return program.helpInformation();
88
- }
89
- const [topic, ...rest] = topics;
90
- if (rest.length > 0) {
91
- return `Unknown help topic "${topics.join(" ")}".`;
92
- }
93
- const command = findCommand(program, topic);
94
- if (!command) {
95
- return `Unknown help topic "${topic}".`;
96
- }
97
- return command.helpInformation();
98
- }
99
- function findCommand(program, name) {
100
- const direct = program.commands.find((cmd) => cmd.name() === name);
101
- if (direct) {
102
- return direct;
103
- }
104
- const lower = name.toLowerCase();
105
- return program.commands.find((cmd) => {
106
- if (cmd.name().toLowerCase() === lower) {
107
- return true;
108
- }
109
- return cmd.aliases().some((alias) => alias === name || alias.toLowerCase() === lower);
110
- });
111
- }
112
- function normalizeTokens(tokens, canonical) {
113
- if (tokens.length === 0) {
114
- return tokens;
115
- }
116
- const rest = tokens.slice(1);
117
- if (canonical === "login" && rest.length > 0 && !rest[0].startsWith("-")) {
118
- return [canonical, "--api-key", rest.join(" ")];
119
- }
120
- if (canonical === "test" && rest.length > 0 && !rest[0].startsWith("-")) {
121
- return [canonical, "--api-key", rest.join(" ")];
122
- }
123
- if (canonical === "init" && rest.length > 0 && !rest[0].startsWith("-")) {
124
- const [projectName, ...remaining] = rest;
125
- return [canonical, "--project-name", projectName, ...remaining];
126
- }
127
- if (canonical === "remove" &&
128
- rest.length > 1 &&
129
- !rest.some((token) => token.startsWith("--"))) {
130
- const [service, ...remaining] = rest;
131
- if (remaining.length > 0) {
132
- return [
133
- canonical,
134
- service,
135
- "--config-name",
136
- remaining.join(" ")
137
- ];
138
- }
139
- }
140
- return [canonical, ...rest];
141
- }
142
- //# sourceMappingURL=interactive-command-runner.js.map