poe-code 0.1.26 → 1.0.1-beta.1

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 +54 -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,241 +0,0 @@
1
- import { ModelStrategyFactory, StrategyConfigManager, } from "./model-strategy.js";
2
- export class PoeChatService {
3
- constructor(apiKey, model = "Claude-Sonnet-4.5", toolExecutor, onToolCall, systemPrompt, taskRegistry) {
4
- this.conversationHistory = [];
5
- this.strategyEnabled = false;
6
- this.apiKey = apiKey;
7
- this.baseUrl = "https://api.poe.com/v1";
8
- this.currentModel = model;
9
- this.toolExecutor = toolExecutor;
10
- this.onToolCall = onToolCall;
11
- this.taskRegistry = taskRegistry;
12
- // Load saved strategy configuration
13
- const savedConfig = StrategyConfigManager.loadConfig();
14
- if (savedConfig) {
15
- this.modelStrategy = ModelStrategyFactory.createStrategy(savedConfig);
16
- // Enable strategy if it's not a fixed strategy with the same model
17
- this.strategyEnabled = !(savedConfig.type === "fixed" && savedConfig.fixedModel === model);
18
- }
19
- // Add system prompt if provided
20
- if (systemPrompt) {
21
- this.conversationHistory.push({
22
- role: "system",
23
- content: systemPrompt
24
- });
25
- }
26
- }
27
- setToolCallCallback(callback) {
28
- this.onToolCall = callback;
29
- }
30
- setModel(model) {
31
- this.currentModel = model;
32
- }
33
- getModel() {
34
- return this.currentModel;
35
- }
36
- setStrategy(config) {
37
- this.modelStrategy = ModelStrategyFactory.createStrategy(config);
38
- this.strategyEnabled = true;
39
- StrategyConfigManager.saveConfig(config);
40
- }
41
- getStrategy() {
42
- return this.modelStrategy;
43
- }
44
- getStrategyInfo() {
45
- if (!this.modelStrategy) {
46
- return "No strategy enabled (using fixed model)";
47
- }
48
- return `${this.modelStrategy.getName()}: ${this.modelStrategy.getDescription()}`;
49
- }
50
- disableStrategy() {
51
- this.strategyEnabled = false;
52
- }
53
- enableStrategy() {
54
- if (this.modelStrategy) {
55
- this.strategyEnabled = true;
56
- }
57
- }
58
- isStrategyEnabled() {
59
- return this.strategyEnabled;
60
- }
61
- getHistory() {
62
- return [...this.conversationHistory];
63
- }
64
- clearHistory() {
65
- this.conversationHistory = [];
66
- }
67
- addSystemMessage(content) {
68
- this.conversationHistory.push({
69
- role: "system",
70
- content
71
- });
72
- }
73
- async sendMessage(userMessage, tools, options) {
74
- this.injectCompletedTasks();
75
- // Add user message to history
76
- this.conversationHistory.push({
77
- role: "user",
78
- content: userMessage
79
- });
80
- // Use strategy to select model if enabled
81
- if (this.strategyEnabled && this.modelStrategy) {
82
- const context = this.detectMessageContext(userMessage);
83
- const selectedModel = this.modelStrategy.getNextModel(context);
84
- this.currentModel = selectedModel;
85
- }
86
- let attempts = 0;
87
- const maxAttempts = 100;
88
- while (attempts < maxAttempts) {
89
- const response = await this.makeApiRequest(tools, options?.signal);
90
- const assistantMessage = response.choices[0].message;
91
- this.conversationHistory.push(assistantMessage);
92
- // Check if the model wants to call tools
93
- if (assistantMessage.tool_calls &&
94
- assistantMessage.tool_calls.length > 0 &&
95
- this.toolExecutor) {
96
- // Execute all tool calls
97
- for (const toolCall of assistantMessage.tool_calls) {
98
- let result;
99
- let error;
100
- try {
101
- const args = JSON.parse(toolCall.function.arguments);
102
- // Notify callback that tool call is starting
103
- if (this.onToolCall) {
104
- this.onToolCall({
105
- toolName: toolCall.function.name,
106
- args
107
- });
108
- }
109
- result = await this.toolExecutor.executeTool(toolCall.function.name, args);
110
- // Notify callback of success
111
- if (this.onToolCall) {
112
- this.onToolCall({
113
- toolName: toolCall.function.name,
114
- args,
115
- result
116
- });
117
- }
118
- // Add tool result to conversation
119
- this.conversationHistory.push({
120
- role: "tool",
121
- tool_call_id: toolCall.id,
122
- name: toolCall.function.name,
123
- content: result
124
- });
125
- }
126
- catch (err) {
127
- error = err instanceof Error ? err.message : String(err);
128
- // Notify callback of error
129
- if (this.onToolCall) {
130
- this.onToolCall({
131
- toolName: toolCall.function.name,
132
- args: JSON.parse(toolCall.function.arguments),
133
- error
134
- });
135
- }
136
- // Add error as tool result
137
- this.conversationHistory.push({
138
- role: "tool",
139
- tool_call_id: toolCall.id,
140
- name: toolCall.function.name,
141
- content: `Error: ${error}`
142
- });
143
- }
144
- }
145
- // Continue the conversation with tool results
146
- attempts++;
147
- continue;
148
- }
149
- // No more tool calls, return the final message
150
- if (assistantMessage.content && assistantMessage.content.length > 0) {
151
- options?.onChunk?.(assistantMessage.content);
152
- }
153
- return assistantMessage;
154
- }
155
- throw new Error("Maximum tool call iterations reached");
156
- }
157
- injectCompletedTasks() {
158
- if (!this.taskRegistry) {
159
- return;
160
- }
161
- const completed = this.taskRegistry.getCompletedTasks();
162
- if (completed.length === 0) {
163
- return;
164
- }
165
- for (const task of completed) {
166
- const symbol = task.status === "completed" ? "✅" : task.status === "failed" ? "❌" : "⏹";
167
- const details = task.result ?? task.error ?? "Task finished.";
168
- this.conversationHistory.push({
169
- role: "system",
170
- content: `${symbol} Task ${task.id} finished\n\n${details}`
171
- });
172
- }
173
- this.taskRegistry.clearCompleted();
174
- }
175
- detectMessageContext(message) {
176
- const lowerMessage = message.toLowerCase();
177
- // Detect code-related keywords
178
- const codeKeywords = [
179
- "code", "function", "class", "implement", "debug", "error",
180
- "refactor", "optimize", "algorithm", "bug", "fix", "compile",
181
- "typescript", "javascript", "python", "java", "react", "component"
182
- ];
183
- // Detect reasoning keywords
184
- const reasoningKeywords = [
185
- "why", "how", "explain", "analyze", "compare", "evaluate",
186
- "reasoning", "logic", "understand", "clarify"
187
- ];
188
- const hasCodeKeywords = codeKeywords.some(keyword => lowerMessage.includes(keyword));
189
- const hasReasoningKeywords = reasoningKeywords.some(keyword => lowerMessage.includes(keyword));
190
- // Determine message type
191
- let messageType = "general";
192
- if (hasCodeKeywords) {
193
- messageType = "code";
194
- }
195
- else if (hasReasoningKeywords) {
196
- messageType = "reasoning";
197
- }
198
- else if (message.length < 100) {
199
- messageType = "chat";
200
- }
201
- // Determine complexity based on message length and structure
202
- let complexity = "medium";
203
- if (message.length > 500 || message.split("\n").length > 10) {
204
- complexity = "complex";
205
- }
206
- else if (message.length < 100) {
207
- complexity = "simple";
208
- }
209
- return {
210
- messageType,
211
- complexity,
212
- previousModel: this.currentModel
213
- };
214
- }
215
- async makeApiRequest(tools, signal) {
216
- const request = {
217
- model: this.currentModel,
218
- messages: this.conversationHistory,
219
- temperature: 0.7
220
- };
221
- if (tools && tools.length > 0) {
222
- request.tools = tools;
223
- }
224
- const response = await fetch(`${this.baseUrl}/chat/completions`, {
225
- method: "POST",
226
- headers: {
227
- "Content-Type": "application/json",
228
- Authorization: `Bearer ${this.apiKey}`
229
- },
230
- body: JSON.stringify(request),
231
- signal
232
- });
233
- if (!response.ok) {
234
- const errorText = await response.text();
235
- throw new Error(`Poe API request failed (${response.status}): ${errorText}`);
236
- }
237
- const result = await response.json();
238
- return result;
239
- }
240
- }
241
- //# sourceMappingURL=chat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/services/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAwE7B,MAAM,OAAO,cAAc;IAWzB,YACE,MAAc,EACd,QAAgB,mBAAmB,EACnC,YAA2B,EAC3B,UAA6B,EAC7B,YAAqB,EACrB,YAAgC;QAd1B,wBAAmB,GAAkB,EAAE,CAAC;QAKxC,oBAAe,GAAY,KAAK,CAAC;QAWvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,oCAAoC;QACpC,MAAM,WAAW,GAAG,qBAAqB,CAAC,UAAU,EAAE,CAAC;QACvD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACtE,mEAAmE;YACnE,IAAI,CAAC,eAAe,GAAG,CAAC,CACtB,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,UAAU,KAAK,KAAK,CACjE,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,QAA0B;QAC5C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,MAAsB;QAChC,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,yCAAyC,CAAC;QACnD,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;IACnF,CAAC;IAED,eAAe;QACb,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,YAAY;QACV,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,QAAQ;YACd,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CACf,WAAmB,EACnB,KAAc,EACd,OAAqE;QAErE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,8BAA8B;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QAEH,0CAA0C;QAC1C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;QACpC,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,WAAW,GAAG,GAAG,CAAC;QAExB,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAEnE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAEhD,yCAAyC;YACzC,IACE,gBAAgB,CAAC,UAAU;gBAC3B,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACtC,IAAI,CAAC,YAAY,EACjB,CAAC;gBACD,yBAAyB;gBACzB,KAAK,MAAM,QAAQ,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;oBACnD,IAAI,MAAc,CAAC;oBACnB,IAAI,KAAyB,CAAC;oBAE9B,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAErD,6CAA6C;wBAC7C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;4BACpB,IAAI,CAAC,UAAU,CAAC;gCACd,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gCAChC,IAAI;6BACL,CAAC,CAAC;wBACL,CAAC;wBAED,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EACtB,IAAI,CACL,CAAC;wBAEF,6BAA6B;wBAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;4BACpB,IAAI,CAAC,UAAU,CAAC;gCACd,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gCAChC,IAAI;gCACJ,MAAM;6BACP,CAAC,CAAC;wBACL,CAAC;wBAED,kCAAkC;wBAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;4BAC5B,IAAI,EAAE,MAAM;4BACZ,YAAY,EAAE,QAAQ,CAAC,EAAE;4BACzB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;4BAC5B,OAAO,EAAE,MAAM;yBAChB,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAEzD,2BAA2B;wBAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;4BACpB,IAAI,CAAC,UAAU,CAAC;gCACd,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gCAChC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;gCAC7C,KAAK;6BACN,CAAC,CAAC;wBACL,CAAC;wBAED,2BAA2B;wBAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;4BAC5B,IAAI,EAAE,MAAM;4BACZ,YAAY,EAAE,QAAQ,CAAC,EAAE;4BACzB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;4BAC5B,OAAO,EAAE,UAAU,KAAK,EAAE;yBAC3B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,8CAA8C;gBAC9C,QAAQ,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YAED,+CAA+C;YAC/C,IAAI,gBAAgB,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpE,OAAO,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACxD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACxF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC;YAC9D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG,MAAM,SAAS,IAAI,CAAC,EAAE,gBAAgB,OAAO,EAAE;aAC5D,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;IACrC,CAAC;IAEO,oBAAoB,CAAC,OAAe;QAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAE3C,+BAA+B;QAC/B,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO;YAC1D,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS;YAC5D,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;SACnE,CAAC;QAEF,4BAA4B;QAC5B,MAAM,iBAAiB,GAAG;YACxB,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU;YACzD,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS;SAC9C,CAAC;QAEF,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAClD,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC/B,CAAC;QACF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAC5D,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC/B,CAAC;QAEF,yBAAyB;QACzB,IAAI,WAAW,GAAgC,SAAS,CAAC;QACzD,IAAI,eAAe,EAAE,CAAC;YACpB,WAAW,GAAG,MAAM,CAAC;QACvB,CAAC;aAAM,IAAI,oBAAoB,EAAE,CAAC;YAChC,WAAW,GAAG,WAAW,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAChC,WAAW,GAAG,MAAM,CAAC;QACvB,CAAC;QAED,6DAA6D;QAC7D,IAAI,UAAU,GAA+B,QAAQ,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC5D,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAChC,UAAU,GAAG,QAAQ,CAAC;QACxB,CAAC;QAED,OAAO;YACL,WAAW;YACX,UAAU;YACV,aAAa,EAAE,IAAI,CAAC,YAAY;SACjC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,KAAc,EACd,MAAoB;QAEpB,MAAM,OAAO,GAA0B;YACrC,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,QAAQ,EAAE,IAAI,CAAC,mBAAmB;YAClC,WAAW,EAAE,GAAG;SACjB,CAAC;QAEF,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;aACvC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7B,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAC5D,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAErC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,28 +0,0 @@
1
- import type { FileSystem } from "../utils/file-system.js";
2
- import type { CommandRunner, CommandRunnerResult, PrerequisiteDefinition, PrerequisiteManager } from "../utils/prerequisites.js";
3
- import { type ServiceRunOptions } from "./service-manifest.js";
4
- import { type InstallContext } from "./service-install.js";
5
- export interface ConfigureClaudeCodeOptions {
6
- fs: FileSystem;
7
- apiKey: string;
8
- settingsPath: string;
9
- keyHelperPath: string;
10
- credentialsPath: string;
11
- defaultModel: string;
12
- }
13
- export interface RemoveClaudeCodeOptions {
14
- fs: FileSystem;
15
- settingsPath: string;
16
- keyHelperPath: string;
17
- }
18
- export interface SpawnClaudeCodeOptions {
19
- prompt: string;
20
- args?: string[];
21
- runCommand: CommandRunner;
22
- }
23
- export declare function configureClaudeCode(options: ConfigureClaudeCodeOptions, runOptions?: ServiceRunOptions): Promise<void>;
24
- export declare function spawnClaudeCode(options: SpawnClaudeCodeOptions): Promise<CommandRunnerResult>;
25
- export declare function removeClaudeCode(options: RemoveClaudeCodeOptions, runOptions?: ServiceRunOptions): Promise<boolean>;
26
- export declare function registerClaudeCodePrerequisites(prerequisites: PrerequisiteManager): void;
27
- export declare function installClaudeCode(context: InstallContext): Promise<boolean>;
28
- export declare function createClaudeCliBinaryCheck(): PrerequisiteDefinition;
@@ -1,155 +0,0 @@
1
- import path from "node:path";
2
- import { createBinaryExistsCheck } from "../utils/prerequisites.js";
3
- import { ensureDirectory, jsonMergeMutation, jsonPruneMutation, runServiceConfigure, runServiceRemove, writeTemplateMutation } from "./service-manifest.js";
4
- import { runServiceInstall } from "./service-install.js";
5
- import { CLAUDE_MODEL_OPUS, CLAUDE_MODEL_SONNET, CLAUDE_MODEL_HAIKU } from "../cli/constants.js";
6
- const KEY_HELPER_TEMPLATE_ID = "claude-code/anthropic_key.sh.hbs";
7
- const KEY_HELPER_MODE = 0o700;
8
- const CLAUDE_ENV_SHAPE = {
9
- apiKeyHelper: true,
10
- env: {
11
- ANTHROPIC_BASE_URL: true,
12
- ANTHROPIC_DEFAULT_HAIKU_MODEL: true,
13
- ANTHROPIC_DEFAULT_SONNET_MODEL: true,
14
- ANTHROPIC_DEFAULT_OPUS_MODEL: true
15
- },
16
- model: true
17
- };
18
- const CLAUDE_CODE_MANIFEST = {
19
- id: "claude-code",
20
- summary: "Configure Claude Code to route through Poe.",
21
- prerequisites: {
22
- after: ["claude-cli-health"]
23
- },
24
- configure: [
25
- ensureDirectory({
26
- path: ({ options }) => path.dirname(options.settingsPath),
27
- label: "Ensure Claude settings directory"
28
- }),
29
- writeTemplateMutation({
30
- target: ({ options }) => options.keyHelperPath,
31
- templateId: KEY_HELPER_TEMPLATE_ID,
32
- context: ({ options }) => ({
33
- credentialsPathLiteral: toSingleQuotedLiteral(options.credentialsPath)
34
- }),
35
- label: "Write API key helper script"
36
- }),
37
- createChmodMutation(),
38
- jsonMergeMutation({
39
- target: ({ options }) => options.settingsPath,
40
- label: "Merge Claude settings",
41
- value: ({ options }) => ({
42
- apiKeyHelper: options.keyHelperPath,
43
- env: {
44
- ANTHROPIC_BASE_URL: "https://api.poe.com",
45
- ANTHROPIC_DEFAULT_HAIKU_MODEL: CLAUDE_MODEL_HAIKU,
46
- ANTHROPIC_DEFAULT_SONNET_MODEL: CLAUDE_MODEL_SONNET,
47
- ANTHROPIC_DEFAULT_OPUS_MODEL: CLAUDE_MODEL_OPUS
48
- },
49
- model: options.defaultModel
50
- })
51
- })
52
- ],
53
- remove: [
54
- jsonPruneMutation({
55
- target: ({ options }) => options.settingsPath,
56
- label: "Prune Claude settings",
57
- shape: () => CLAUDE_ENV_SHAPE
58
- }),
59
- removeKeyHelperMutation()
60
- ]
61
- };
62
- const CLAUDE_CODE_INSTALL_DEFINITION = {
63
- id: "claude-code",
64
- summary: "Claude CLI",
65
- check: createClaudeCliBinaryCheck(),
66
- steps: [
67
- {
68
- id: "install-claude-cli-npm",
69
- description: "Install Claude CLI via npm",
70
- command: "npm",
71
- args: ["install", "-g", "@anthropic-ai/claude-code"]
72
- }
73
- ],
74
- successMessage: "Installed Claude CLI via npm."
75
- };
76
- function createChmodMutation() {
77
- return {
78
- kind: "transformFile",
79
- target: ({ options }) => options.keyHelperPath,
80
- label: "Make API key helper executable",
81
- async transform({ content, context }) {
82
- if (typeof context.fs.chmod === "function" &&
83
- content != null) {
84
- await context.fs.chmod(context.options.keyHelperPath, KEY_HELPER_MODE);
85
- }
86
- return { content, changed: false };
87
- }
88
- };
89
- }
90
- function removeKeyHelperMutation() {
91
- return {
92
- kind: "removeFile",
93
- target: ({ options }) => options.keyHelperPath,
94
- label: "Remove API key helper script"
95
- };
96
- }
97
- function toSingleQuotedLiteral(targetPath) {
98
- const escaped = targetPath.replace(/'/g, `'\\''`);
99
- return `'${escaped}'`;
100
- }
101
- export async function configureClaudeCode(options, runOptions) {
102
- await runServiceConfigure(CLAUDE_CODE_MANIFEST, {
103
- fs: options.fs,
104
- options
105
- }, runOptions);
106
- }
107
- export async function spawnClaudeCode(options) {
108
- const defaults = [
109
- "-p",
110
- options.prompt,
111
- "--allowedTools",
112
- "Bash,Read",
113
- "--permission-mode",
114
- "acceptEdits",
115
- "--output-format",
116
- "text"
117
- ];
118
- const args = [...defaults, ...(options.args ?? [])];
119
- return options.runCommand("claude", args);
120
- }
121
- export async function removeClaudeCode(options, runOptions) {
122
- return runServiceRemove(CLAUDE_CODE_MANIFEST, {
123
- fs: options.fs,
124
- options
125
- }, runOptions);
126
- }
127
- export function registerClaudeCodePrerequisites(prerequisites) {
128
- prerequisites.registerAfter(createClaudeCliHealthCheck());
129
- }
130
- export async function installClaudeCode(context) {
131
- return runServiceInstall(CLAUDE_CODE_INSTALL_DEFINITION, context);
132
- }
133
- export function createClaudeCliBinaryCheck() {
134
- return createBinaryExistsCheck("claude", "claude-cli-binary", "Claude CLI binary must exist");
135
- }
136
- function createClaudeCliHealthCheck() {
137
- return {
138
- id: "claude-cli-health",
139
- description: "Claude CLI health check must succeed",
140
- async run({ runCommand }) {
141
- const result = await spawnClaudeCode({
142
- prompt: "Output exactly: CLAUDE_CODE_OK",
143
- runCommand
144
- });
145
- if (result.exitCode !== 0) {
146
- throw new Error(`Claude CLI health check failed with exit code ${result.exitCode}.`);
147
- }
148
- const output = result.stdout.trim();
149
- if (output !== "CLAUDE_CODE_OK") {
150
- throw new Error(`Claude CLI health check failed: expected "CLAUDE_CODE_OK" but received "${output}".`);
151
- }
152
- }
153
- };
154
- }
155
- //# sourceMappingURL=claude-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/services/claude-code.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import type { FileSystem } from "../utils/file-system.js";
2
- import type { CommandRunner, CommandRunnerResult, PrerequisiteManager } from "../utils/prerequisites.js";
3
- import { type ServiceRunOptions } from "./service-manifest.js";
4
- import { type InstallContext } from "./service-install.js";
5
- export interface ConfigureCodexOptions {
6
- fs: FileSystem;
7
- configPath: string;
8
- apiKey: string;
9
- model: string;
10
- reasoningEffort: string;
11
- timestamp?: () => string;
12
- }
13
- export interface RemoveCodexOptions {
14
- fs: FileSystem;
15
- configPath: string;
16
- }
17
- export interface SpawnCodexOptions {
18
- prompt: string;
19
- args?: string[];
20
- runCommand: CommandRunner;
21
- }
22
- export declare function configureCodex(options: ConfigureCodexOptions, runOptions?: ServiceRunOptions): Promise<void>;
23
- export declare function spawnCodex(options: SpawnCodexOptions): Promise<CommandRunnerResult>;
24
- export declare function removeCodex(options: RemoveCodexOptions, runOptions?: ServiceRunOptions): Promise<boolean>;
25
- export declare function installCodex(context: InstallContext): Promise<boolean>;
26
- export declare function registerCodexPrerequisites(prerequisites: PrerequisiteManager): void;
27
- export declare function buildCodexExecArgs(prompt: string, extraArgs?: string[]): string[];