@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,128 +0,0 @@
1
- import {
2
- UserCancelledError
3
- } from "./chunk-LLMPMGV3.js";
4
- import {
5
- gitDiff_default
6
- } from "./chunk-UEEU3SCC.js";
7
- import {
8
- COMMIT_MESSAGE_SYSTEM_PROMPT,
9
- parseGitDiffNameStatus
10
- } from "./chunk-2LRQ2QH6.js";
11
-
12
- // src/workflows/commit.workflow.ts
13
- import { agentWorkflow, listFiles, readBinaryFile, readFile, searchFiles } from "@polka-codes/core";
14
- import { z } from "zod";
15
- var commitWorkflow = async (input, context) => {
16
- const { step, tools, logger } = context;
17
- const { stagedFiles, unstagedFiles } = await tools.printChangeFile();
18
- let hasStaged = stagedFiles.length > 0;
19
- const hasUnstaged = unstagedFiles.length > 0;
20
- if (input.files && input.files.length > 0) {
21
- await step("stage-files", async () => {
22
- const result2 = await tools.executeCommand({
23
- command: "git",
24
- args: ["add", ...input.files ?? []]
25
- });
26
- if (result2.exitCode !== 0) {
27
- throw new Error(`Failed to stage files: ${result2.stderr}`);
28
- }
29
- });
30
- hasStaged = true;
31
- } else if (!hasStaged) {
32
- if (input.all) {
33
- await step("stage-all", async () => {
34
- const result2 = await tools.executeCommand({ command: "git", args: ["add", "."] });
35
- if (result2.exitCode !== 0) {
36
- throw new Error(`Failed to stage files: ${result2.stderr}`);
37
- }
38
- });
39
- hasStaged = true;
40
- } else if (hasUnstaged) {
41
- let confirmed = false;
42
- if (input.interactive !== false) {
43
- confirmed = await tools.confirm({
44
- message: "No staged files found. Stage all files?",
45
- default: false
46
- });
47
- }
48
- if (confirmed) {
49
- await step("stage-all", async () => {
50
- const result2 = await tools.executeCommand({
51
- command: "git",
52
- args: ["add", "."]
53
- });
54
- if (result2.exitCode !== 0) {
55
- throw new Error(`Failed to stage files: ${result2.stderr}`);
56
- }
57
- });
58
- hasStaged = true;
59
- } else if (input.interactive !== false) {
60
- throw new UserCancelledError();
61
- }
62
- }
63
- }
64
- if (!hasStaged) {
65
- throw new Error("No files to commit. Aborting.");
66
- }
67
- const { changedFiles, diff } = await step("get-diff", async () => {
68
- let changedFiles2 = [];
69
- const diffNameStatusResult = await tools.executeCommand({
70
- command: "git",
71
- args: ["diff", "--name-status", "--no-color", "--staged"]
72
- });
73
- if (diffNameStatusResult.exitCode === 0) {
74
- changedFiles2 = parseGitDiffNameStatus(diffNameStatusResult.stdout);
75
- }
76
- const diffResult = await tools.executeCommand({
77
- command: "git",
78
- args: ["diff", "--staged"]
79
- });
80
- const diff2 = diffResult.stdout;
81
- return { changedFiles: changedFiles2, diff: diff2 };
82
- });
83
- const fileList = changedFiles.map((file) => `${file.status}: ${file.path}`).join("\n");
84
- const fileListPrompt = `<file_status>
85
- ${fileList}
86
- </file_status>`;
87
- const diffPrompt = `<diff>
88
- ${diff}
89
- </diff>`;
90
- const contextPrompt = input.context ? `
91
- <tool_input_context>
92
- ${input.context}
93
- </tool_input_context>` : "";
94
- const commitMessageSchema = z.object({
95
- commitMessage: z.string()
96
- });
97
- const result = await step("generate-commit-message", async () => {
98
- return await agentWorkflow(
99
- {
100
- systemPrompt: COMMIT_MESSAGE_SYSTEM_PROMPT,
101
- userMessage: [
102
- {
103
- role: "user",
104
- content: `${fileListPrompt}${diffPrompt}${contextPrompt}`
105
- }
106
- ],
107
- tools: [readFile, readBinaryFile, searchFiles, listFiles, gitDiff_default],
108
- outputSchema: commitMessageSchema
109
- },
110
- context
111
- );
112
- });
113
- if (result.type === "Exit" && result.object) {
114
- const { commitMessage } = commitMessageSchema.parse(result.object);
115
- if (commitMessage) {
116
- logger.info(`
117
- Commit message:
118
- ${commitMessage}`);
119
- await tools.createCommit({ message: commitMessage });
120
- return commitMessage;
121
- }
122
- }
123
- context.logger.warn("Failed to generate commit message.", result);
124
- };
125
-
126
- export {
127
- commitWorkflow
128
- };
@@ -1,176 +0,0 @@
1
- import {
2
- fixWorkflow
3
- } from "./chunk-ZS4K5RFU.js";
4
- import {
5
- planWorkflow
6
- } from "./chunk-YPUL66UK.js";
7
- import {
8
- getCoderSystemPrompt,
9
- getDefaultContext,
10
- getImplementPrompt
11
- } from "./chunk-2LRQ2QH6.js";
12
-
13
- // src/workflows/code.workflow.ts
14
- import {
15
- agentWorkflow,
16
- askFollowupQuestion,
17
- executeCommand,
18
- fetchUrl,
19
- listFiles,
20
- readBinaryFile,
21
- readFile,
22
- removeFile,
23
- renameFile,
24
- replaceInFile,
25
- searchFiles,
26
- writeToFile
27
- } from "@polka-codes/core";
28
- import { z } from "zod";
29
- var ImplementOutputSchema = z.object({
30
- summary: z.string().nullish().describe("Short summary of the changes made"),
31
- bailReason: z.string().nullish().describe("Reason for bailing out of the implementation loop")
32
- }).refine((data) => data.summary != null !== (data.bailReason != null), {
33
- message: "Either summary or bailReason must be provided, but not both"
34
- });
35
- var codeWorkflow = async (input, context) => {
36
- const { logger, step, tools } = context;
37
- const { task, files, mode: inputMode, customTools, additionalInstructions, interactive, additionalTools } = input;
38
- const mode = interactive === false ? "noninteractive" : inputMode ?? "interactive";
39
- const summaries = [];
40
- logger.info("\nPhase 1: Creating implementation plan...\n");
41
- const planResult = await step("plan", async () => {
42
- return await planWorkflow(
43
- { task, files, mode: mode === "interactive" ? "confirm" : "noninteractive", interactive, additionalTools },
44
- context
45
- );
46
- });
47
- if (!planResult) {
48
- logger.info("Plan not approved. Exiting.");
49
- return { success: false, reason: "Plan not approved", summaries };
50
- }
51
- const { plan, files: planFiles } = planResult;
52
- logger.info("\nPhase 2: Implementing the plan...\n");
53
- let implementPrompt = getImplementPrompt(plan);
54
- if (planFiles && planFiles.length > 0) {
55
- const fileContentString = planFiles.map((f) => `<file path="${f.path}">${f.content}</file>`).join("\n");
56
- implementPrompt += `
57
-
58
- Here are the files related to the plan:
59
- ${fileContentString}`;
60
- }
61
- const userContent = [{ type: "text", text: implementPrompt }];
62
- if (files) {
63
- for (const file of files) {
64
- if (file.type === "file") {
65
- userContent.push({
66
- type: "file",
67
- mediaType: file.mediaType,
68
- filename: file.filename,
69
- data: { type: "base64", value: file.data }
70
- });
71
- } else if (file.type === "image") {
72
- userContent.push({
73
- type: "image",
74
- mediaType: file.mediaType,
75
- image: { type: "base64", value: file.image }
76
- });
77
- }
78
- }
79
- }
80
- const agentTools = [
81
- readFile,
82
- writeToFile,
83
- replaceInFile,
84
- searchFiles,
85
- listFiles,
86
- executeCommand,
87
- fetchUrl,
88
- readBinaryFile,
89
- removeFile,
90
- renameFile
91
- ];
92
- if (mode === "interactive") {
93
- agentTools.push(askFollowupQuestion);
94
- }
95
- if (customTools) {
96
- agentTools.push(...customTools);
97
- }
98
- if (additionalTools?.search) {
99
- agentTools.push(additionalTools.search);
100
- }
101
- if (additionalTools?.mcpTools) {
102
- agentTools.push(...additionalTools.mcpTools);
103
- }
104
- const res = await step("implement", async () => {
105
- const { context: defaultContext, loadRules } = await getDefaultContext(input.config, "code");
106
- const memoryContext = await tools.getMemoryContext();
107
- const textContent = userContent.find((c) => c.type === "text");
108
- if (textContent && textContent.type === "text") {
109
- textContent.text = `${textContent.text}
110
-
111
- ${defaultContext}
112
- ${memoryContext}`;
113
- } else {
114
- userContent.push({
115
- type: "text",
116
- text: `${defaultContext}
117
- ${memoryContext}`
118
- });
119
- }
120
- const baseSystemPrompt = getCoderSystemPrompt(loadRules);
121
- const systemPrompt = additionalInstructions ? `${baseSystemPrompt}
122
-
123
- ${additionalInstructions}` : baseSystemPrompt;
124
- return await agentWorkflow(
125
- {
126
- systemPrompt,
127
- userMessage: [{ role: "user", content: userContent }],
128
- tools: agentTools,
129
- outputSchema: ImplementOutputSchema
130
- },
131
- context
132
- );
133
- });
134
- if (res.type === "Exit" && res.object) {
135
- const { summary, bailReason } = res.object;
136
- if (bailReason) {
137
- logger.error(`
138
- Implementation failed: ${bailReason}
139
- `);
140
- return { success: false, reason: bailReason, summaries };
141
- }
142
- if (summary) {
143
- logger.info("\nImplementation complete!\n");
144
- summaries.push(summary);
145
- logger.info(`Summary: ${summary}`);
146
- await step("summarize-implementation", async () => {
147
- await tools.updateMemory({
148
- operation: "append",
149
- topic: "implementation-summary",
150
- content: summary
151
- });
152
- });
153
- } else {
154
- logger.info("\nImplementation complete!\n");
155
- }
156
- } else if (res.type === "Exit") {
157
- logger.info("\nImplementation complete!\n");
158
- } else {
159
- logger.warn("\nWarning: Implementation failed. Please check the output for errors.\n", res);
160
- }
161
- logger.info("\nPhase 3: Checking for errors...\n");
162
- const fixResult = await step("fix", async () => {
163
- return await fixWorkflow({ interactive: false, task: input.task, additionalTools: input.additionalTools }, context);
164
- });
165
- if (fixResult.summaries) {
166
- summaries.push(...fixResult.summaries);
167
- }
168
- if (!fixResult.success) {
169
- return { success: false, reason: fixResult.reason, summaries };
170
- }
171
- return { success: true, summaries };
172
- };
173
-
174
- export {
175
- codeWorkflow
176
- };
@@ -1,140 +0,0 @@
1
- // src/errors.ts
2
- import { createErrorClass } from "@polka-codes/core";
3
- var UserCancelledError = createErrorClass("UserCancelledError", (args) => args[0] ?? "User cancelled");
4
- var ProviderError = class extends Error {
5
- provider;
6
- model;
7
- retryable;
8
- cause;
9
- constructor(provider, model, message, retryable, cause) {
10
- super(message);
11
- this.name = this.constructor.name;
12
- this.provider = provider;
13
- this.model = model;
14
- this.retryable = retryable;
15
- this.cause = cause;
16
- }
17
- };
18
- var ProviderUnavailableError = class extends ProviderError {
19
- constructor(provider, model, statusCode, cause) {
20
- super(
21
- provider,
22
- model,
23
- `${provider} API is temporarily unavailable (HTTP ${statusCode}). The service may be experiencing issues. Please try again in a few minutes.`,
24
- true,
25
- cause
26
- );
27
- }
28
- };
29
- var RateLimitError = class extends ProviderError {
30
- retryAfter;
31
- constructor(provider, model, retryAfter, cause) {
32
- const message = retryAfter ? `${provider} rate limit exceeded. Please retry after ${retryAfter} seconds.` : `${provider} rate limit exceeded. Please wait a few minutes before retrying.`;
33
- super(provider, model, message, true, cause);
34
- this.retryAfter = retryAfter;
35
- }
36
- };
37
- var ProviderTimeoutError = class extends ProviderError {
38
- timeoutSeconds;
39
- constructor(provider, model, timeoutSeconds, cause) {
40
- super(
41
- provider,
42
- model,
43
- `${provider} request timed out after ${timeoutSeconds} seconds. This could be due to network issues or the service being slow. Please check your connection and try again.`,
44
- true,
45
- cause
46
- );
47
- this.timeoutSeconds = timeoutSeconds;
48
- }
49
- };
50
- var AuthenticationError = class extends ProviderError {
51
- constructor(provider, model, cause) {
52
- super(
53
- provider,
54
- model,
55
- `${provider} authentication failed for model '${model}'. Please check your API key is valid and has not expired. Run 'polka init' to reconfigure.`,
56
- false,
57
- cause
58
- );
59
- }
60
- };
61
- var ModelAccessError = class extends ProviderError {
62
- constructor(provider, model, statusCode, cause) {
63
- super(
64
- provider,
65
- model,
66
- `${provider} model '${model}' is not available (HTTP ${statusCode}). This could mean the model doesn't exist, you don't have access, or it's not enabled in your account. Please check your model configuration.`,
67
- false,
68
- cause
69
- );
70
- }
71
- };
72
- var InvalidRequestError = class extends ProviderError {
73
- constructor(provider, model, details, cause) {
74
- super(
75
- provider,
76
- model,
77
- `${provider} rejected the request: ${details}. Please check your request parameters and try again.`,
78
- false,
79
- cause
80
- );
81
- }
82
- };
83
- var QuotaExceededError = class extends ProviderError {
84
- currentCost;
85
- maxCost;
86
- constructor(provider, model, currentCost, maxCost) {
87
- super(
88
- provider,
89
- model,
90
- `${provider} quota exceeded for model '${model}'. Current cost: $${currentCost.toFixed(2)}, Max budget: $${maxCost.toFixed(2)}. Adjust your budget with 'polka init' or reduce usage.`,
91
- false
92
- );
93
- this.currentCost = currentCost;
94
- this.maxCost = maxCost;
95
- }
96
- };
97
- var MaxRetriesExceededError = class extends ProviderError {
98
- attempts;
99
- lastError;
100
- constructor(provider, model, attempts, lastError) {
101
- super(
102
- provider,
103
- model,
104
- `${provider} failed after ${attempts} retry attempts for model '${model}'. Last error: ${lastError.message}. Please check your network connection and verify the service is operational.`,
105
- false,
106
- lastError
107
- );
108
- this.attempts = attempts;
109
- this.lastError = lastError;
110
- }
111
- };
112
- function createProviderErrorFromStatus(provider, model, statusCode, cause) {
113
- switch (statusCode) {
114
- case 400:
115
- return new InvalidRequestError(provider, model, "Bad request", cause);
116
- case 401:
117
- return new AuthenticationError(provider, model, cause);
118
- case 403:
119
- case 404:
120
- return new ModelAccessError(provider, model, statusCode, cause);
121
- case 429:
122
- return new RateLimitError(provider, model, void 0, cause);
123
- default:
124
- if (statusCode >= 500) {
125
- return new ProviderUnavailableError(provider, model, statusCode, cause);
126
- }
127
- return new InvalidRequestError(provider, model, `HTTP ${statusCode}`, cause);
128
- }
129
- }
130
-
131
- export {
132
- UserCancelledError,
133
- ProviderError,
134
- ProviderTimeoutError,
135
- AuthenticationError,
136
- ModelAccessError,
137
- QuotaExceededError,
138
- MaxRetriesExceededError,
139
- createProviderErrorFromStatus
140
- };