@polka-codes/cli 0.10.22 → 0.10.24

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 (350) hide show
  1. package/dist/index.js +3990 -353
  2. package/package.json +4 -4
  3. package/dist/ApiProviderConfig.js +0 -57
  4. package/dist/ApiProviderConfig.js.map +0 -1
  5. package/dist/ApiProviderConfig.test.js +0 -278
  6. package/dist/ApiProviderConfig.test.js.map +0 -1
  7. package/dist/agent/advanced-discovery.js +0 -604
  8. package/dist/agent/advanced-discovery.js.map +0 -1
  9. package/dist/agent/config.js +0 -139
  10. package/dist/agent/config.js.map +0 -1
  11. package/dist/agent/config.test.js +0 -140
  12. package/dist/agent/config.test.js.map +0 -1
  13. package/dist/agent/constants.js +0 -172
  14. package/dist/agent/constants.js.map +0 -1
  15. package/dist/agent/constants.test.js +0 -132
  16. package/dist/agent/constants.test.js.map +0 -1
  17. package/dist/agent/debug-logger.js +0 -281
  18. package/dist/agent/debug-logger.js.map +0 -1
  19. package/dist/agent/debug-logger.test.js +0 -294
  20. package/dist/agent/debug-logger.test.js.map +0 -1
  21. package/dist/agent/error-handling.js +0 -114
  22. package/dist/agent/error-handling.js.map +0 -1
  23. package/dist/agent/error-handling.test.js +0 -191
  24. package/dist/agent/error-handling.test.js.map +0 -1
  25. package/dist/agent/errors.js +0 -301
  26. package/dist/agent/errors.js.map +0 -1
  27. package/dist/agent/executor.js +0 -206
  28. package/dist/agent/executor.js.map +0 -1
  29. package/dist/agent/executor.test.js +0 -228
  30. package/dist/agent/executor.test.js.map +0 -1
  31. package/dist/agent/goal-decomposer.js +0 -281
  32. package/dist/agent/goal-decomposer.js.map +0 -1
  33. package/dist/agent/goal-decomposer.test.js +0 -225
  34. package/dist/agent/goal-decomposer.test.js.map +0 -1
  35. package/dist/agent/health-monitor.js +0 -89
  36. package/dist/agent/health-monitor.js.map +0 -1
  37. package/dist/agent/improvement-loop.js +0 -177
  38. package/dist/agent/improvement-loop.js.map +0 -1
  39. package/dist/agent/index.js +0 -38
  40. package/dist/agent/index.js.map +0 -1
  41. package/dist/agent/metrics.js +0 -158
  42. package/dist/agent/metrics.js.map +0 -1
  43. package/dist/agent/metrics.test.js +0 -311
  44. package/dist/agent/metrics.test.js.map +0 -1
  45. package/dist/agent/orchestrator.js +0 -438
  46. package/dist/agent/orchestrator.js.map +0 -1
  47. package/dist/agent/planner.js +0 -199
  48. package/dist/agent/planner.js.map +0 -1
  49. package/dist/agent/planner.test.js +0 -135
  50. package/dist/agent/planner.test.js.map +0 -1
  51. package/dist/agent/progress.js +0 -298
  52. package/dist/agent/progress.js.map +0 -1
  53. package/dist/agent/progress.test.js +0 -255
  54. package/dist/agent/progress.test.js.map +0 -1
  55. package/dist/agent/resource-monitor.js +0 -114
  56. package/dist/agent/resource-monitor.js.map +0 -1
  57. package/dist/agent/safety/approval.js +0 -178
  58. package/dist/agent/safety/approval.js.map +0 -1
  59. package/dist/agent/safety/approval.test.js +0 -142
  60. package/dist/agent/safety/approval.test.js.map +0 -1
  61. package/dist/agent/safety/checks.js +0 -152
  62. package/dist/agent/safety/checks.js.map +0 -1
  63. package/dist/agent/safety/checks.test.js +0 -89
  64. package/dist/agent/safety/checks.test.js.map +0 -1
  65. package/dist/agent/safety/interrupt.js +0 -92
  66. package/dist/agent/safety/interrupt.js.map +0 -1
  67. package/dist/agent/safety/interrupt.test.js +0 -53
  68. package/dist/agent/safety/interrupt.test.js.map +0 -1
  69. package/dist/agent/session.js +0 -117
  70. package/dist/agent/session.js.map +0 -1
  71. package/dist/agent/session.test.js +0 -213
  72. package/dist/agent/session.test.js.map +0 -1
  73. package/dist/agent/state-manager.js +0 -287
  74. package/dist/agent/state-manager.js.map +0 -1
  75. package/dist/agent/task-discovery.js +0 -433
  76. package/dist/agent/task-discovery.js.map +0 -1
  77. package/dist/agent/task-discovery.test.js +0 -40
  78. package/dist/agent/task-discovery.test.js.map +0 -1
  79. package/dist/agent/task-history.js +0 -128
  80. package/dist/agent/task-history.js.map +0 -1
  81. package/dist/agent/task-prioritizer.js +0 -286
  82. package/dist/agent/task-prioritizer.js.map +0 -1
  83. package/dist/agent/test-fixtures.js +0 -112
  84. package/dist/agent/test-fixtures.js.map +0 -1
  85. package/dist/agent/types.js +0 -15
  86. package/dist/agent/types.js.map +0 -1
  87. package/dist/agent/workflow-adapter.js +0 -219
  88. package/dist/agent/workflow-adapter.js.map +0 -1
  89. package/dist/agent/workflow-adapter.test.js +0 -11
  90. package/dist/agent/workflow-adapter.test.js.map +0 -1
  91. package/dist/agent/working-dir-discovery.js +0 -54
  92. package/dist/agent/working-dir-discovery.js.map +0 -1
  93. package/dist/agent/working-space.js +0 -484
  94. package/dist/agent/working-space.js.map +0 -1
  95. package/dist/agent/working-space.test.js +0 -436
  96. package/dist/agent/working-space.test.js.map +0 -1
  97. package/dist/api.js +0 -279
  98. package/dist/api.js.map +0 -1
  99. package/dist/builtin-commands.js +0 -20
  100. package/dist/builtin-commands.js.map +0 -1
  101. package/dist/chunk-2LRQ2QH6.js +0 -1353
  102. package/dist/chunk-FSNPWI3C.js +0 -128
  103. package/dist/chunk-HB7PTE3H.js +0 -176
  104. package/dist/chunk-LLMPMGV3.js +0 -140
  105. package/dist/chunk-NRDSZGMF.js +0 -675
  106. package/dist/chunk-UEEU3SCC.js +0 -390
  107. package/dist/chunk-YPUL66UK.js +0 -277
  108. package/dist/chunk-ZS4K5RFU.js +0 -176
  109. package/dist/chunk-ZU4UU65A.js +0 -40
  110. package/dist/code.workflow-5TAWK2DE.js +0 -10
  111. package/dist/commandSummarizer.js +0 -96
  112. package/dist/commandSummarizer.js.map +0 -1
  113. package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
  114. package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
  115. package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
  116. package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
  117. package/dist/commands/agent.js +0 -218
  118. package/dist/commands/agent.js.map +0 -1
  119. package/dist/commands/code.js +0 -102
  120. package/dist/commands/code.js.map +0 -1
  121. package/dist/commands/command.constants.js +0 -13
  122. package/dist/commands/command.constants.js.map +0 -1
  123. package/dist/commands/commit.js +0 -17
  124. package/dist/commands/commit.js.map +0 -1
  125. package/dist/commands/fix.js +0 -17
  126. package/dist/commands/fix.js.map +0 -1
  127. package/dist/commands/init.js +0 -501
  128. package/dist/commands/init.js.map +0 -1
  129. package/dist/commands/mcp-server.js +0 -122
  130. package/dist/commands/mcp-server.js.map +0 -1
  131. package/dist/commands/memory.js +0 -410
  132. package/dist/commands/memory.js.map +0 -1
  133. package/dist/commands/memory.test.js +0 -453
  134. package/dist/commands/memory.test.js.map +0 -1
  135. package/dist/commands/meta.js +0 -142
  136. package/dist/commands/meta.js.map +0 -1
  137. package/dist/commands/plan.js +0 -39
  138. package/dist/commands/plan.js.map +0 -1
  139. package/dist/commands/pr.js +0 -14
  140. package/dist/commands/pr.js.map +0 -1
  141. package/dist/commands/review-json.test.js +0 -33
  142. package/dist/commands/review-json.test.js.map +0 -1
  143. package/dist/commands/review.js +0 -137
  144. package/dist/commands/review.js.map +0 -1
  145. package/dist/commands/review.usage.test.js +0 -41
  146. package/dist/commands/review.usage.test.js.map +0 -1
  147. package/dist/commands/run.js +0 -107
  148. package/dist/commands/run.js.map +0 -1
  149. package/dist/commands/skills.js +0 -175
  150. package/dist/commands/skills.js.map +0 -1
  151. package/dist/commands/task.js +0 -34
  152. package/dist/commands/task.js.map +0 -1
  153. package/dist/commands/workflow.js +0 -117
  154. package/dist/commands/workflow.js.map +0 -1
  155. package/dist/commit.workflow-Z64PNSTS.js +0 -9
  156. package/dist/configPrompt.js +0 -39
  157. package/dist/configPrompt.js.map +0 -1
  158. package/dist/env.js +0 -22
  159. package/dist/env.js.map +0 -1
  160. package/dist/errors.js +0 -132
  161. package/dist/errors.js.map +0 -1
  162. package/dist/errors.test.js +0 -21
  163. package/dist/errors.test.js.map +0 -1
  164. package/dist/file-attachments.js +0 -77
  165. package/dist/file-attachments.js.map +0 -1
  166. package/dist/file-attachments.test.js +0 -214
  167. package/dist/file-attachments.test.js.map +0 -1
  168. package/dist/fix.workflow-KLHJU5Z6.js +0 -7
  169. package/dist/getModel.js +0 -229
  170. package/dist/getModel.js.map +0 -1
  171. package/dist/getModel.test.js +0 -67
  172. package/dist/getModel.test.js.map +0 -1
  173. package/dist/getProviderOptions.js +0 -58
  174. package/dist/getProviderOptions.js.map +0 -1
  175. package/dist/git-operations.js +0 -363
  176. package/dist/git-operations.js.map +0 -1
  177. package/dist/git-operations.test.js +0 -81
  178. package/dist/git-operations.test.js.map +0 -1
  179. package/dist/index.js.map +0 -1
  180. package/dist/logger.js +0 -41
  181. package/dist/logger.js.map +0 -1
  182. package/dist/mcp/client.js +0 -11
  183. package/dist/mcp/client.js.map +0 -1
  184. package/dist/mcp/error-scenarios.test.js +0 -206
  185. package/dist/mcp/error-scenarios.test.js.map +0 -1
  186. package/dist/mcp/errors.js +0 -63
  187. package/dist/mcp/errors.js.map +0 -1
  188. package/dist/mcp/index.js +0 -9
  189. package/dist/mcp/index.js.map +0 -1
  190. package/dist/mcp/manager.js +0 -231
  191. package/dist/mcp/manager.js.map +0 -1
  192. package/dist/mcp/manager.test.js +0 -40
  193. package/dist/mcp/manager.test.js.map +0 -1
  194. package/dist/mcp/sdk-client.js +0 -166
  195. package/dist/mcp/sdk-client.js.map +0 -1
  196. package/dist/mcp/shared-types.js +0 -3
  197. package/dist/mcp/shared-types.js.map +0 -1
  198. package/dist/mcp/tools-integration.test.js +0 -198
  199. package/dist/mcp/tools-integration.test.js.map +0 -1
  200. package/dist/mcp/tools.js +0 -60
  201. package/dist/mcp/tools.js.map +0 -1
  202. package/dist/mcp/transport.js +0 -257
  203. package/dist/mcp/transport.js.map +0 -1
  204. package/dist/mcp/types.js +0 -3
  205. package/dist/mcp/types.js.map +0 -1
  206. package/dist/mcp-server/index.js +0 -5
  207. package/dist/mcp-server/index.js.map +0 -1
  208. package/dist/mcp-server/plan-formatting.test.js +0 -74
  209. package/dist/mcp-server/plan-formatting.test.js.map +0 -1
  210. package/dist/mcp-server/sdk-server.js +0 -102
  211. package/dist/mcp-server/sdk-server.js.map +0 -1
  212. package/dist/mcp-server/sdk-server.test.js +0 -363
  213. package/dist/mcp-server/sdk-server.test.js.map +0 -1
  214. package/dist/mcp-server/tools.js +0 -785
  215. package/dist/mcp-server/tools.js.map +0 -1
  216. package/dist/mcp-server/types.js +0 -3
  217. package/dist/mcp-server/types.js.map +0 -1
  218. package/dist/options.js +0 -85
  219. package/dist/options.js.map +0 -1
  220. package/dist/options.test.js +0 -177
  221. package/dist/options.test.js.map +0 -1
  222. package/dist/plan.workflow-P2Y6W4FA.js +0 -8
  223. package/dist/prices.js +0 -61
  224. package/dist/prices.js.map +0 -1
  225. package/dist/prices.test.js +0 -148
  226. package/dist/prices.test.js.map +0 -1
  227. package/dist/review.workflow-I7RHWKU7.js +0 -8
  228. package/dist/runWorkflow.js +0 -313
  229. package/dist/runWorkflow.js.map +0 -1
  230. package/dist/script/__tests__/execution.integration.test.js +0 -274
  231. package/dist/script/__tests__/execution.integration.test.js.map +0 -1
  232. package/dist/script/__tests__/runner.test.js +0 -176
  233. package/dist/script/__tests__/runner.test.js.map +0 -1
  234. package/dist/script/__tests__/validator.test.js +0 -180
  235. package/dist/script/__tests__/validator.test.js.map +0 -1
  236. package/dist/script/executor.js +0 -127
  237. package/dist/script/executor.js.map +0 -1
  238. package/dist/script/index.js +0 -4
  239. package/dist/script/index.js.map +0 -1
  240. package/dist/script/runner.js +0 -258
  241. package/dist/script/runner.js.map +0 -1
  242. package/dist/sdk-client-KBYJRPEG.js +0 -155
  243. package/dist/skillIntegration.js +0 -46
  244. package/dist/skillIntegration.js.map +0 -1
  245. package/dist/skillIntegration.test.js +0 -128
  246. package/dist/skillIntegration.test.js.map +0 -1
  247. package/dist/test/utils.js +0 -200
  248. package/dist/test/utils.js.map +0 -1
  249. package/dist/test/workflow-fixtures.js +0 -120
  250. package/dist/test/workflow-fixtures.js.map +0 -1
  251. package/dist/tool-implementations.js +0 -521
  252. package/dist/tool-implementations.js.map +0 -1
  253. package/dist/tool-implementations.skill-tools.test.js +0 -106
  254. package/dist/tool-implementations.skill-tools.test.js.map +0 -1
  255. package/dist/tools/getTodoItem.js +0 -33
  256. package/dist/tools/getTodoItem.js.map +0 -1
  257. package/dist/tools/gitDiff.js +0 -108
  258. package/dist/tools/gitDiff.js.map +0 -1
  259. package/dist/tools/index.js +0 -8
  260. package/dist/tools/index.js.map +0 -1
  261. package/dist/tools/listMemoryTopics.js +0 -24
  262. package/dist/tools/listMemoryTopics.js.map +0 -1
  263. package/dist/tools/listTodoItems.js +0 -35
  264. package/dist/tools/listTodoItems.js.map +0 -1
  265. package/dist/tools/listTodoItems.test.js +0 -89
  266. package/dist/tools/listTodoItems.test.js.map +0 -1
  267. package/dist/tools/readMemory.js +0 -33
  268. package/dist/tools/readMemory.js.map +0 -1
  269. package/dist/tools/updateMemory.js +0 -62
  270. package/dist/tools/updateMemory.js.map +0 -1
  271. package/dist/tools/updateMemory.test.js +0 -109
  272. package/dist/tools/updateMemory.test.js.map +0 -1
  273. package/dist/tools/updateTodoItem.js +0 -31
  274. package/dist/tools/updateTodoItem.js.map +0 -1
  275. package/dist/tools/utils/diffLineNumbers.js +0 -178
  276. package/dist/tools/utils/diffLineNumbers.js.map +0 -1
  277. package/dist/utils/cacheControl.js +0 -59
  278. package/dist/utils/cacheControl.js.map +0 -1
  279. package/dist/utils/cacheControl.test.js +0 -128
  280. package/dist/utils/cacheControl.test.js.map +0 -1
  281. package/dist/utils/command.js +0 -50
  282. package/dist/utils/command.js.map +0 -1
  283. package/dist/utils/shell.js +0 -56
  284. package/dist/utils/shell.js.map +0 -1
  285. package/dist/utils/userInput.js +0 -47
  286. package/dist/utils/userInput.js.map +0 -1
  287. package/dist/workflow-tools.js +0 -21
  288. package/dist/workflow-tools.js.map +0 -1
  289. package/dist/workflows/agent-builder.js +0 -90
  290. package/dist/workflows/agent-builder.js.map +0 -1
  291. package/dist/workflows/agent-builder.test.js +0 -115
  292. package/dist/workflows/agent-builder.test.js.map +0 -1
  293. package/dist/workflows/code.workflow.js +0 -145
  294. package/dist/workflows/code.workflow.js.map +0 -1
  295. package/dist/workflows/commit.workflow.js +0 -111
  296. package/dist/workflows/commit.workflow.js.map +0 -1
  297. package/dist/workflows/commit.workflow.test.js +0 -141
  298. package/dist/workflows/commit.workflow.test.js.map +0 -1
  299. package/dist/workflows/fix.workflow.js +0 -172
  300. package/dist/workflows/fix.workflow.js.map +0 -1
  301. package/dist/workflows/fix.workflow.test.js +0 -137
  302. package/dist/workflows/fix.workflow.test.js.map +0 -1
  303. package/dist/workflows/git-file-tools.js +0 -408
  304. package/dist/workflows/git-file-tools.js.map +0 -1
  305. package/dist/workflows/index.js +0 -12
  306. package/dist/workflows/index.js.map +0 -1
  307. package/dist/workflows/init-interactive.workflow.js +0 -198
  308. package/dist/workflows/init-interactive.workflow.js.map +0 -1
  309. package/dist/workflows/init.workflow.js +0 -41
  310. package/dist/workflows/init.workflow.js.map +0 -1
  311. package/dist/workflows/meta.workflow.js +0 -107
  312. package/dist/workflows/meta.workflow.js.map +0 -1
  313. package/dist/workflows/plan.workflow.js +0 -275
  314. package/dist/workflows/plan.workflow.js.map +0 -1
  315. package/dist/workflows/plan.workflow.test.js +0 -419
  316. package/dist/workflows/plan.workflow.test.js.map +0 -1
  317. package/dist/workflows/pr.workflow.js +0 -54
  318. package/dist/workflows/pr.workflow.js.map +0 -1
  319. package/dist/workflows/pr.workflow.test.js +0 -98
  320. package/dist/workflows/pr.workflow.test.js.map +0 -1
  321. package/dist/workflows/prompts/coder.js +0 -85
  322. package/dist/workflows/prompts/coder.js.map +0 -1
  323. package/dist/workflows/prompts/commit.js +0 -16
  324. package/dist/workflows/prompts/commit.js.map +0 -1
  325. package/dist/workflows/prompts/fix.js +0 -44
  326. package/dist/workflows/prompts/fix.js.map +0 -1
  327. package/dist/workflows/prompts/index.js +0 -10
  328. package/dist/workflows/prompts/index.js.map +0 -1
  329. package/dist/workflows/prompts/init.js +0 -48
  330. package/dist/workflows/prompts/init.js.map +0 -1
  331. package/dist/workflows/prompts/meta.js +0 -17
  332. package/dist/workflows/prompts/meta.js.map +0 -1
  333. package/dist/workflows/prompts/plan.js +0 -212
  334. package/dist/workflows/prompts/plan.js.map +0 -1
  335. package/dist/workflows/prompts/pr.js +0 -15
  336. package/dist/workflows/prompts/pr.js.map +0 -1
  337. package/dist/workflows/prompts/review.js +0 -145
  338. package/dist/workflows/prompts/review.js.map +0 -1
  339. package/dist/workflows/prompts/shared.js +0 -93
  340. package/dist/workflows/prompts/shared.js.map +0 -1
  341. package/dist/workflows/review.workflow.js +0 -357
  342. package/dist/workflows/review.workflow.js.map +0 -1
  343. package/dist/workflows/task.workflow.js +0 -47
  344. package/dist/workflows/task.workflow.js.map +0 -1
  345. package/dist/workflows/testing/helper.js +0 -41
  346. package/dist/workflows/testing/helper.js.map +0 -1
  347. package/dist/workflows/workflow.utils.js +0 -351
  348. package/dist/workflows/workflow.utils.js.map +0 -1
  349. package/dist/workflows/workflow.utils.test.js +0 -45
  350. package/dist/workflows/workflow.utils.test.js.map +0 -1
@@ -1,176 +0,0 @@
1
- import {
2
- FIX_SYSTEM_PROMPT,
3
- getDefaultContext,
4
- getFixUserPrompt
5
- } from "./chunk-2LRQ2QH6.js";
6
-
7
- // src/workflows/fix.workflow.ts
8
- import {
9
- agentWorkflow,
10
- executeCommand,
11
- fetchUrl,
12
- listFiles,
13
- readBinaryFile,
14
- readFile,
15
- removeFile,
16
- renameFile,
17
- replaceInFile,
18
- searchFiles,
19
- writeToFile
20
- } from "@polka-codes/core";
21
- import { z } from "zod";
22
- var FixIterationSummarySchema = z.object({
23
- summary: z.string().nullish(),
24
- bailReason: z.string().nullish()
25
- }).refine((data) => data.summary != null !== (data.bailReason != null), {
26
- message: "Either summary or bailReason must be provided, but not both"
27
- });
28
- var fixWorkflow = async (input, context) => {
29
- const { tools, logger, step } = context;
30
- const { command: inputCommand, task, prompt, interactive = true, additionalTools } = input;
31
- let command = inputCommand;
32
- const summaries = [];
33
- let formatCommand;
34
- const buildScriptCommand = (scriptName) => {
35
- const runtime = process.argv[0];
36
- const script = process.argv[1];
37
- return `"${runtime}" "${script}" run ${scriptName}`;
38
- };
39
- if (!command) {
40
- const config = input.config;
41
- const check = config?.scripts?.check;
42
- const test = config?.scripts?.test;
43
- const format = config?.scripts?.format;
44
- let checkCommand;
45
- if (typeof check === "string") {
46
- checkCommand = check;
47
- } else if (check && "command" in check) {
48
- checkCommand = check.command;
49
- } else if (check && "script" in check) {
50
- checkCommand = buildScriptCommand("check");
51
- } else if (check && "workflow" in check) {
52
- logger.warn("Workflow scripts are not yet supported in fix workflow");
53
- }
54
- let testCommand;
55
- if (typeof test === "string") {
56
- testCommand = test;
57
- } else if (test && "command" in test) {
58
- testCommand = test.command;
59
- } else if (test && "script" in test) {
60
- testCommand = buildScriptCommand("test");
61
- } else if (test && "workflow" in test) {
62
- logger.warn("Workflow scripts are not yet supported in fix workflow");
63
- }
64
- if (typeof format === "string") {
65
- formatCommand = format;
66
- } else if (format && "command" in format) {
67
- formatCommand = format.command;
68
- } else if (format && "script" in format) {
69
- formatCommand = buildScriptCommand("format");
70
- } else if (format && "workflow" in format) {
71
- logger.warn("Workflow scripts are not yet supported in fix workflow");
72
- }
73
- let defaultCommand;
74
- if (checkCommand && testCommand) {
75
- defaultCommand = `${checkCommand} && ${testCommand}`;
76
- } else if (checkCommand) {
77
- defaultCommand = checkCommand;
78
- } else if (testCommand) {
79
- defaultCommand = testCommand;
80
- }
81
- if (interactive) {
82
- command = await tools.input({
83
- message: "Please enter the command to run to identify issues:",
84
- default: defaultCommand
85
- });
86
- if (!command) {
87
- throw new Error("No command provided. Aborting.");
88
- }
89
- } else {
90
- command = defaultCommand;
91
- }
92
- if (!command) {
93
- logger.info("No command to run.");
94
- return { success: true, summaries };
95
- }
96
- }
97
- for (let i = 0; i < 10; i++) {
98
- logger.info(`Running command (attempt ${i + 1}/10): ${command}`);
99
- if (formatCommand) {
100
- await tools.executeCommand({ command: formatCommand, shell: true, pipe: true });
101
- }
102
- const { exitCode, stdout, stderr } = await tools.executeCommand({
103
- command,
104
- shell: true,
105
- pipe: true
106
- });
107
- if (exitCode === 0) {
108
- logger.info("Command succeeded!");
109
- return { success: true, summaries };
110
- }
111
- logger.info(`Command failed with exit code ${exitCode}. Asking agent to fix it...`);
112
- const result = await step(`fix-${i}`, async () => {
113
- const { context: defaultContext } = await getDefaultContext(input.config, "fix");
114
- const memoryContext = await tools.getMemoryContext();
115
- const userPrompt = getFixUserPrompt(command, exitCode, stdout, stderr, task, prompt);
116
- const agentTools = [
117
- readFile,
118
- writeToFile,
119
- replaceInFile,
120
- searchFiles,
121
- listFiles,
122
- executeCommand,
123
- fetchUrl,
124
- readBinaryFile,
125
- removeFile,
126
- renameFile
127
- ];
128
- if (additionalTools?.search) {
129
- agentTools.push(additionalTools.search);
130
- }
131
- if (additionalTools?.mcpTools) {
132
- agentTools.push(...additionalTools.mcpTools);
133
- }
134
- return await agentWorkflow(
135
- {
136
- systemPrompt: FIX_SYSTEM_PROMPT,
137
- userMessage: [
138
- {
139
- role: "user",
140
- content: `${userPrompt}
141
-
142
- ${defaultContext}
143
- ${memoryContext}`
144
- }
145
- ],
146
- tools: agentTools,
147
- outputSchema: FixIterationSummarySchema
148
- },
149
- context
150
- );
151
- });
152
- const res = await step(`fix-summary-${i}`, async () => {
153
- if (result.type === "Exit" && result.object) {
154
- const { summary, bailReason } = result.object;
155
- if (bailReason) {
156
- logger.warn(`Agent bailed: ${bailReason}`);
157
- return { bailReason };
158
- }
159
- if (summary) {
160
- summaries.push(summary);
161
- await tools.updateMemory({ operation: "append", content: `Summary of changes for fix attempt ${i + 1}: ${summary}` });
162
- logger.info(`Summary of changes: ${summary}`);
163
- }
164
- }
165
- });
166
- if (res?.bailReason) {
167
- return { success: false, summaries, reason: res.bailReason };
168
- }
169
- }
170
- logger.error("Failed to fix the issue after maximum attempts.");
171
- return { success: false, summaries, reason: "Failed to fix the issue after maximum attempts." };
172
- };
173
-
174
- export {
175
- fixWorkflow
176
- };
@@ -1,40 +0,0 @@
1
- // src/mcp/errors.ts
2
- var McpError = class extends Error {
3
- serverName;
4
- retryable;
5
- constructor(serverName, message, retryable) {
6
- super(message);
7
- this.name = this.constructor.name;
8
- this.serverName = serverName;
9
- this.retryable = retryable;
10
- }
11
- };
12
- var McpConnectionError = class extends McpError {
13
- constructor(serverName, cause) {
14
- super(
15
- serverName,
16
- `Failed to connect to MCP server '${serverName}'. Please check the server configuration and ensure it is available.`,
17
- false
18
- );
19
- this.cause = cause;
20
- }
21
- };
22
- var McpToolError = class extends McpError {
23
- constructor(serverName, toolName, message, cause) {
24
- super(serverName, `Tool '${toolName}' on server '${serverName}' failed: ${message}`, false);
25
- this.toolName = toolName;
26
- this.cause = cause;
27
- }
28
- };
29
- var McpServerError = class extends McpError {
30
- constructor(serverName) {
31
- super(serverName, `MCP server '${serverName}' not found in configuration.`, false);
32
- }
33
- };
34
-
35
- export {
36
- McpError,
37
- McpConnectionError,
38
- McpToolError,
39
- McpServerError
40
- };
@@ -1,10 +0,0 @@
1
- import {
2
- codeWorkflow
3
- } from "./chunk-HB7PTE3H.js";
4
- import "./chunk-ZS4K5RFU.js";
5
- import "./chunk-YPUL66UK.js";
6
- import "./chunk-LLMPMGV3.js";
7
- import "./chunk-2LRQ2QH6.js";
8
- export {
9
- codeWorkflow
10
- };
@@ -1,96 +0,0 @@
1
- // generated by polka.codes
2
- import { parseJsonFromMarkdown } from '@polka-codes/core';
3
- import { generateText } from 'ai';
4
- import { z } from 'zod';
5
- const prompt = `
6
- You are a command output summarizer. Analyze the provided command output, which is prefixed with line numbers and the stream name (stdout/stderr). Your task is to identify the most important lines, such as errors, failures, or key results.
7
-
8
- The input is structured as follows:
9
- [line_number]: [stream]: [content]
10
-
11
- Your output must be a JSON object containing the line number ranges of the most important lines for each stream. The JSON object should be enclosed in a markdown code block.
12
-
13
- The JSON schema is as follows:
14
- {
15
- "stdout": [[start_line, end_line], ...],
16
- "stderr": [[start_line, end_line], ...]
17
- }
18
-
19
- - Only include lines that are important for understanding the outcome of the command.
20
- - Group consecutive lines into a single range.
21
-
22
- Example Output:
23
- \`\`\`json
24
- {
25
- "stdout": [[1, 3], [5, 7], [9, 11]],
26
- "stderr": [[1, 2], [4, 5]]
27
- }
28
- `;
29
- const schema = z.object({
30
- stdout: z.array(z.array(z.number()).length(2)).default([]),
31
- stderr: z.array(z.array(z.number()).length(2)).default([]),
32
- });
33
- export const summarizeOutput = async (model, stdout, stderr) => {
34
- const lines = [];
35
- let input = '';
36
- let lineNumber = 1;
37
- for (const line of stdout.split('\n')) {
38
- lines.push(line);
39
- input += `[${lineNumber}]: stdout: ${line}\n`;
40
- lineNumber++;
41
- }
42
- for (const line of stderr.split('\n')) {
43
- lines.push(line);
44
- input += `[${lineNumber}]: stderr: ${line}\n`;
45
- lineNumber++;
46
- }
47
- let lastError;
48
- let respText = '';
49
- let currentPrompt = input;
50
- for (let i = 0; i < 3; i++) {
51
- const resp = await generateText({
52
- model,
53
- system: prompt,
54
- prompt: currentPrompt,
55
- });
56
- respText = resp.text;
57
- try {
58
- const parsed = parseJsonFromMarkdown(respText);
59
- const { stdout: stdoutRanges, stderr: stderrRanges } = schema.parse(parsed || {});
60
- let summarizedStdout = '';
61
- for (const range of stdoutRanges) {
62
- const [start, end] = range;
63
- for (let i = start; i <= end; i++) {
64
- summarizedStdout += `${lines[i - 1]}\n`;
65
- }
66
- }
67
- let summarizedStderr = '';
68
- for (const range of stderrRanges) {
69
- const [start, end] = range;
70
- for (let i = start; i <= end; i++) {
71
- summarizedStderr += `${lines[i - 1]}\n`;
72
- }
73
- }
74
- if (!summarizedStdout && !summarizedStderr) {
75
- throw new Error('You must output at least one line of stdout or stderr');
76
- }
77
- let result = '';
78
- if (summarizedStdout) {
79
- result += `STDOUT:\n${summarizedStdout}`;
80
- }
81
- if (summarizedStderr) {
82
- if (result) {
83
- result += '\n\n';
84
- }
85
- result += `STDERR:\n${summarizedStderr}`;
86
- }
87
- return result;
88
- }
89
- catch (error) {
90
- lastError = error instanceof Error ? error : new Error(String(error));
91
- currentPrompt = `${input}\n\nYour previous output was invalid: ${lastError.message}. You MUST output a valid JSON object inside a markdown code block. Please correct it.`;
92
- }
93
- }
94
- throw new Error('Unable to summarize output');
95
- };
96
- //# sourceMappingURL=commandSummarizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commandSummarizer.js","sourceRoot":"","sources":["../src/commandSummarizer.ts"],"names":[],"mappings":"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"}
@@ -1,238 +0,0 @@
1
- // generated by polka.codes
2
- import { afterEach, beforeEach, describe, expect, it } from 'bun:test';
3
- import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
4
- import { join } from 'node:path';
5
- import { loadConfig } from '@polka-codes/cli-shared';
6
- describe('Command Detection Integration Tests', () => {
7
- const testProjectDir = join(process.cwd(), 'test-command-detection');
8
- const configPath = join(testProjectDir, '.polkacodes.yml');
9
- const scriptsDir = join(testProjectDir, '.polka-scripts');
10
- beforeEach(() => {
11
- // Create test project directory
12
- mkdirSync(testProjectDir, { recursive: true });
13
- mkdirSync(scriptsDir, { recursive: true });
14
- });
15
- afterEach(() => {
16
- // Cleanup test project directory
17
- try {
18
- rmSync(testProjectDir, { recursive: true, force: true });
19
- }
20
- catch {
21
- // Directory doesn't exist
22
- }
23
- });
24
- describe('Config loading with scripts', () => {
25
- it('should load config with string script', async () => {
26
- const configContent = `
27
- scripts:
28
- test: "bun test"
29
- build: "bun run build"
30
- `;
31
- writeFileSync(configPath, configContent);
32
- const config = await loadConfig([], testProjectDir);
33
- expect(config).toBeDefined();
34
- expect(config?.scripts).toBeDefined();
35
- expect(config?.scripts?.test).toBe('bun test');
36
- expect(config?.scripts?.build).toBe('bun run build');
37
- });
38
- it('should load config with command object script', async () => {
39
- const configContent = `
40
- scripts:
41
- deploy:
42
- command: "bun run deploy"
43
- description: Deploy to production
44
- `;
45
- writeFileSync(configPath, configContent);
46
- const config = await loadConfig([], testProjectDir);
47
- expect(config).toBeDefined();
48
- expect(config?.scripts).toBeDefined();
49
- const deployScript = config?.scripts?.deploy;
50
- expect(deployScript).toBeDefined();
51
- if (typeof deployScript === 'object' && 'command' in deployScript) {
52
- expect(deployScript.command).toBe('bun run deploy');
53
- expect(deployScript.description).toBe('Deploy to production');
54
- }
55
- else {
56
- expect(true).toBe(false); // Should be a command object
57
- }
58
- });
59
- it('should load config with TypeScript script', async () => {
60
- writeFileSync(join(scriptsDir, 'deploy.ts'), `
61
- export async function main(args: string[]) {
62
- return { deployed: true }
63
- }
64
- `);
65
- const configContent = `
66
- scripts:
67
- deploy:
68
- script: .polka-scripts/deploy.ts
69
- description: Deploy to production
70
- permissions:
71
- network: true
72
- `;
73
- writeFileSync(configPath, configContent);
74
- const config = await loadConfig([], testProjectDir);
75
- expect(config).toBeDefined();
76
- expect(config?.scripts).toBeDefined();
77
- const deployScript = config?.scripts?.deploy;
78
- expect(deployScript).toBeDefined();
79
- if (typeof deployScript === 'object' && 'script' in deployScript) {
80
- expect(deployScript.script).toBe('.polka-scripts/deploy.ts');
81
- expect(deployScript.permissions?.network).toBe(true);
82
- }
83
- else {
84
- expect(true).toBe(false); // Should be a script object
85
- }
86
- });
87
- it('should load config with workflow script', async () => {
88
- const configContent = `
89
- scripts:
90
- workflow-test:
91
- workflow: .polka-scripts/test.yml
92
- description: Test workflow
93
- `;
94
- writeFileSync(configPath, configContent);
95
- const config = await loadConfig([], testProjectDir);
96
- expect(config).toBeDefined();
97
- expect(config?.scripts).toBeDefined();
98
- const workflowScript = config?.scripts?.['workflow-test'];
99
- expect(workflowScript).toBeDefined();
100
- if (typeof workflowScript === 'object' && 'workflow' in workflowScript) {
101
- expect(workflowScript.workflow).toBe('.polka-scripts/test.yml');
102
- }
103
- else {
104
- expect(true).toBe(false); // Should be a workflow object
105
- }
106
- });
107
- });
108
- describe('Script validation', () => {
109
- it('should validate all script types in config', async () => {
110
- writeFileSync(join(scriptsDir, 'deploy.ts'), `
111
- export async function main(args: string[]) {
112
- return { deployed: true }
113
- }
114
- `);
115
- const configContent = `
116
- scripts:
117
- test: "bun test"
118
- build:
119
- command: "bun run build"
120
- description: Build project
121
- deploy:
122
- script: .polka-scripts/deploy.ts
123
- permissions:
124
- fs: write
125
- workflow-test:
126
- workflow: .polka-scripts/test.yml
127
- `;
128
- writeFileSync(configPath, configContent);
129
- const config = await loadConfig([], testProjectDir);
130
- expect(config).toBeDefined();
131
- expect(config?.scripts).toBeDefined();
132
- // Verify all scripts are present
133
- expect(config?.scripts?.test).toBeDefined();
134
- expect(config?.scripts?.build).toBeDefined();
135
- expect(config?.scripts?.deploy).toBeDefined();
136
- expect(config?.scripts?.['workflow-test']).toBeDefined();
137
- });
138
- it('should preserve script metadata', async () => {
139
- const configContent = `
140
- scripts:
141
- complex-script:
142
- script: .polka-scripts/complex.ts
143
- description: A complex script with many options
144
- permissions:
145
- fs: write
146
- network: true
147
- subprocess: true
148
- timeout: 60000
149
- memory: 512
150
- `;
151
- writeFileSync(configPath, configContent);
152
- const config = await loadConfig([], testProjectDir);
153
- expect(config).toBeDefined();
154
- const script = config?.scripts?.['complex-script'];
155
- expect(script).toBeDefined();
156
- if (typeof script === 'object' && 'script' in script) {
157
- expect(script.description).toBe('A complex script with many options');
158
- expect(script.permissions?.fs).toBe('write');
159
- expect(script.permissions?.network).toBe(true);
160
- expect(script.permissions?.subprocess).toBe(true);
161
- expect(script.timeout).toBe(60000);
162
- expect(script.memory).toBe(512);
163
- }
164
- else {
165
- expect(true).toBe(false); // Should be a script object
166
- }
167
- });
168
- });
169
- describe('Script listing', () => {
170
- it('should list all available scripts from config', async () => {
171
- const configContent = `
172
- scripts:
173
- test: "bun test"
174
- lint: "bun run lint"
175
- format: "bun run format"
176
- deploy:
177
- script: .polka-scripts/deploy.ts
178
- description: Deploy to production
179
- `;
180
- writeFileSync(configPath, configContent);
181
- const config = await loadConfig([], testProjectDir);
182
- expect(config).toBeDefined();
183
- expect(config?.scripts).toBeDefined();
184
- const scriptNames = Object.keys(config?.scripts || {});
185
- expect(scriptNames).toContain('test');
186
- expect(scriptNames).toContain('lint');
187
- expect(scriptNames).toContain('format');
188
- expect(scriptNames).toContain('deploy');
189
- });
190
- it('should handle empty scripts section', async () => {
191
- const configContent = `
192
- scripts: {}
193
- `;
194
- writeFileSync(configPath, configContent);
195
- const config = await loadConfig([], testProjectDir);
196
- expect(config).toBeDefined();
197
- expect(config?.scripts).toBeDefined();
198
- expect(Object.keys(config?.scripts || {})).toHaveLength(0);
199
- });
200
- it('should handle missing scripts section', async () => {
201
- const configContent = `
202
- defaultProvider: openai
203
- defaultModel: gpt-4
204
- `;
205
- writeFileSync(configPath, configContent);
206
- const config = await loadConfig([], testProjectDir);
207
- expect(config).toBeDefined();
208
- // scripts may be undefined
209
- expect(config?.scripts).toBeUndefined();
210
- });
211
- });
212
- describe('Config updates', () => {
213
- it('should preserve existing config when adding scripts', () => {
214
- const initialConfig = `# Project configuration
215
- defaultProvider: openai
216
- defaultModel: gpt-4
217
-
218
- maxMessageCount: 50
219
- `;
220
- writeFileSync(configPath, initialConfig);
221
- // Read current config
222
- const currentContent = readFileSync(configPath, 'utf-8');
223
- // Append scripts section
224
- const updatedContent = `${currentContent}
225
- scripts:
226
- new-script: "echo new"
227
- `;
228
- writeFileSync(configPath, updatedContent);
229
- const newContent = readFileSync(configPath, 'utf-8');
230
- expect(newContent).toContain('defaultProvider: openai');
231
- expect(newContent).toContain('defaultModel: gpt-4');
232
- expect(newContent).toContain('maxMessageCount:');
233
- expect(newContent).toContain('scripts:');
234
- expect(newContent).toContain('new-script');
235
- });
236
- });
237
- });
238
- //# sourceMappingURL=command-detection.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-detection.integration.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/command-detection.integration.test.ts"],"names":[],"mappings":"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"}