@polka-codes/cli 0.10.23 → 0.10.25

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 (343) hide show
  1. package/dist/bin.cjs +143854 -0
  2. package/dist/bin.d.ts +2 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +9201 -9195
  7. package/dist/program.d.ts +3 -0
  8. package/dist/program.d.ts.map +1 -0
  9. package/package.json +6 -7
  10. package/cli.mjs +0 -2
  11. package/dist/ApiProviderConfig.js +0 -57
  12. package/dist/ApiProviderConfig.js.map +0 -1
  13. package/dist/ApiProviderConfig.test.js +0 -278
  14. package/dist/ApiProviderConfig.test.js.map +0 -1
  15. package/dist/agent/advanced-discovery.js +0 -604
  16. package/dist/agent/advanced-discovery.js.map +0 -1
  17. package/dist/agent/config.js +0 -139
  18. package/dist/agent/config.js.map +0 -1
  19. package/dist/agent/config.test.js +0 -140
  20. package/dist/agent/config.test.js.map +0 -1
  21. package/dist/agent/constants.js +0 -172
  22. package/dist/agent/constants.js.map +0 -1
  23. package/dist/agent/constants.test.js +0 -132
  24. package/dist/agent/constants.test.js.map +0 -1
  25. package/dist/agent/debug-logger.js +0 -281
  26. package/dist/agent/debug-logger.js.map +0 -1
  27. package/dist/agent/debug-logger.test.js +0 -294
  28. package/dist/agent/debug-logger.test.js.map +0 -1
  29. package/dist/agent/error-handling.js +0 -114
  30. package/dist/agent/error-handling.js.map +0 -1
  31. package/dist/agent/error-handling.test.js +0 -191
  32. package/dist/agent/error-handling.test.js.map +0 -1
  33. package/dist/agent/errors.js +0 -301
  34. package/dist/agent/errors.js.map +0 -1
  35. package/dist/agent/executor.js +0 -206
  36. package/dist/agent/executor.js.map +0 -1
  37. package/dist/agent/executor.test.js +0 -228
  38. package/dist/agent/executor.test.js.map +0 -1
  39. package/dist/agent/goal-decomposer.js +0 -281
  40. package/dist/agent/goal-decomposer.js.map +0 -1
  41. package/dist/agent/goal-decomposer.test.js +0 -225
  42. package/dist/agent/goal-decomposer.test.js.map +0 -1
  43. package/dist/agent/health-monitor.js +0 -89
  44. package/dist/agent/health-monitor.js.map +0 -1
  45. package/dist/agent/improvement-loop.js +0 -177
  46. package/dist/agent/improvement-loop.js.map +0 -1
  47. package/dist/agent/index.js +0 -38
  48. package/dist/agent/index.js.map +0 -1
  49. package/dist/agent/metrics.js +0 -158
  50. package/dist/agent/metrics.js.map +0 -1
  51. package/dist/agent/metrics.test.js +0 -311
  52. package/dist/agent/metrics.test.js.map +0 -1
  53. package/dist/agent/orchestrator.js +0 -438
  54. package/dist/agent/orchestrator.js.map +0 -1
  55. package/dist/agent/planner.js +0 -199
  56. package/dist/agent/planner.js.map +0 -1
  57. package/dist/agent/planner.test.js +0 -135
  58. package/dist/agent/planner.test.js.map +0 -1
  59. package/dist/agent/progress.js +0 -298
  60. package/dist/agent/progress.js.map +0 -1
  61. package/dist/agent/progress.test.js +0 -255
  62. package/dist/agent/progress.test.js.map +0 -1
  63. package/dist/agent/resource-monitor.js +0 -114
  64. package/dist/agent/resource-monitor.js.map +0 -1
  65. package/dist/agent/safety/approval.js +0 -178
  66. package/dist/agent/safety/approval.js.map +0 -1
  67. package/dist/agent/safety/approval.test.js +0 -142
  68. package/dist/agent/safety/approval.test.js.map +0 -1
  69. package/dist/agent/safety/checks.js +0 -152
  70. package/dist/agent/safety/checks.js.map +0 -1
  71. package/dist/agent/safety/checks.test.js +0 -89
  72. package/dist/agent/safety/checks.test.js.map +0 -1
  73. package/dist/agent/safety/interrupt.js +0 -92
  74. package/dist/agent/safety/interrupt.js.map +0 -1
  75. package/dist/agent/safety/interrupt.test.js +0 -53
  76. package/dist/agent/safety/interrupt.test.js.map +0 -1
  77. package/dist/agent/session.js +0 -117
  78. package/dist/agent/session.js.map +0 -1
  79. package/dist/agent/session.test.js +0 -213
  80. package/dist/agent/session.test.js.map +0 -1
  81. package/dist/agent/state-manager.js +0 -287
  82. package/dist/agent/state-manager.js.map +0 -1
  83. package/dist/agent/task-discovery.js +0 -433
  84. package/dist/agent/task-discovery.js.map +0 -1
  85. package/dist/agent/task-discovery.test.js +0 -40
  86. package/dist/agent/task-discovery.test.js.map +0 -1
  87. package/dist/agent/task-history.js +0 -128
  88. package/dist/agent/task-history.js.map +0 -1
  89. package/dist/agent/task-prioritizer.js +0 -286
  90. package/dist/agent/task-prioritizer.js.map +0 -1
  91. package/dist/agent/test-fixtures.js +0 -112
  92. package/dist/agent/test-fixtures.js.map +0 -1
  93. package/dist/agent/types.js +0 -15
  94. package/dist/agent/types.js.map +0 -1
  95. package/dist/agent/workflow-adapter.js +0 -219
  96. package/dist/agent/workflow-adapter.js.map +0 -1
  97. package/dist/agent/workflow-adapter.test.js +0 -11
  98. package/dist/agent/workflow-adapter.test.js.map +0 -1
  99. package/dist/agent/working-dir-discovery.js +0 -54
  100. package/dist/agent/working-dir-discovery.js.map +0 -1
  101. package/dist/agent/working-space.js +0 -484
  102. package/dist/agent/working-space.js.map +0 -1
  103. package/dist/agent/working-space.test.js +0 -436
  104. package/dist/agent/working-space.test.js.map +0 -1
  105. package/dist/api.js +0 -279
  106. package/dist/api.js.map +0 -1
  107. package/dist/builtin-commands.js +0 -20
  108. package/dist/builtin-commands.js.map +0 -1
  109. package/dist/commandSummarizer.js +0 -96
  110. package/dist/commandSummarizer.js.map +0 -1
  111. package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
  112. package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
  113. package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
  114. package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
  115. package/dist/commands/agent.js +0 -218
  116. package/dist/commands/agent.js.map +0 -1
  117. package/dist/commands/code.js +0 -102
  118. package/dist/commands/code.js.map +0 -1
  119. package/dist/commands/command.constants.js +0 -13
  120. package/dist/commands/command.constants.js.map +0 -1
  121. package/dist/commands/commit.js +0 -17
  122. package/dist/commands/commit.js.map +0 -1
  123. package/dist/commands/fix.js +0 -17
  124. package/dist/commands/fix.js.map +0 -1
  125. package/dist/commands/init.js +0 -501
  126. package/dist/commands/init.js.map +0 -1
  127. package/dist/commands/mcp-server.js +0 -122
  128. package/dist/commands/mcp-server.js.map +0 -1
  129. package/dist/commands/memory.js +0 -410
  130. package/dist/commands/memory.js.map +0 -1
  131. package/dist/commands/memory.test.js +0 -453
  132. package/dist/commands/memory.test.js.map +0 -1
  133. package/dist/commands/meta.js +0 -142
  134. package/dist/commands/meta.js.map +0 -1
  135. package/dist/commands/plan.js +0 -39
  136. package/dist/commands/plan.js.map +0 -1
  137. package/dist/commands/pr.js +0 -14
  138. package/dist/commands/pr.js.map +0 -1
  139. package/dist/commands/review-json.test.js +0 -33
  140. package/dist/commands/review-json.test.js.map +0 -1
  141. package/dist/commands/review.js +0 -137
  142. package/dist/commands/review.js.map +0 -1
  143. package/dist/commands/review.usage.test.js +0 -41
  144. package/dist/commands/review.usage.test.js.map +0 -1
  145. package/dist/commands/run.js +0 -107
  146. package/dist/commands/run.js.map +0 -1
  147. package/dist/commands/skills.js +0 -175
  148. package/dist/commands/skills.js.map +0 -1
  149. package/dist/commands/task.js +0 -34
  150. package/dist/commands/task.js.map +0 -1
  151. package/dist/commands/workflow.js +0 -117
  152. package/dist/commands/workflow.js.map +0 -1
  153. package/dist/configPrompt.js +0 -39
  154. package/dist/configPrompt.js.map +0 -1
  155. package/dist/env.js +0 -22
  156. package/dist/env.js.map +0 -1
  157. package/dist/errors.js +0 -132
  158. package/dist/errors.js.map +0 -1
  159. package/dist/errors.test.js +0 -21
  160. package/dist/errors.test.js.map +0 -1
  161. package/dist/file-attachments.js +0 -77
  162. package/dist/file-attachments.js.map +0 -1
  163. package/dist/file-attachments.test.js +0 -214
  164. package/dist/file-attachments.test.js.map +0 -1
  165. package/dist/getModel.js +0 -229
  166. package/dist/getModel.js.map +0 -1
  167. package/dist/getModel.test.js +0 -67
  168. package/dist/getModel.test.js.map +0 -1
  169. package/dist/getProviderOptions.js +0 -58
  170. package/dist/getProviderOptions.js.map +0 -1
  171. package/dist/git-operations.js +0 -363
  172. package/dist/git-operations.js.map +0 -1
  173. package/dist/git-operations.test.js +0 -81
  174. package/dist/git-operations.test.js.map +0 -1
  175. package/dist/index.js.map +0 -1
  176. package/dist/logger.js +0 -41
  177. package/dist/logger.js.map +0 -1
  178. package/dist/mcp/client.js +0 -11
  179. package/dist/mcp/client.js.map +0 -1
  180. package/dist/mcp/error-scenarios.test.js +0 -206
  181. package/dist/mcp/error-scenarios.test.js.map +0 -1
  182. package/dist/mcp/errors.js +0 -63
  183. package/dist/mcp/errors.js.map +0 -1
  184. package/dist/mcp/index.js +0 -9
  185. package/dist/mcp/index.js.map +0 -1
  186. package/dist/mcp/manager.js +0 -231
  187. package/dist/mcp/manager.js.map +0 -1
  188. package/dist/mcp/manager.test.js +0 -40
  189. package/dist/mcp/manager.test.js.map +0 -1
  190. package/dist/mcp/sdk-client.js +0 -166
  191. package/dist/mcp/sdk-client.js.map +0 -1
  192. package/dist/mcp/shared-types.js +0 -3
  193. package/dist/mcp/shared-types.js.map +0 -1
  194. package/dist/mcp/tools-integration.test.js +0 -198
  195. package/dist/mcp/tools-integration.test.js.map +0 -1
  196. package/dist/mcp/tools.js +0 -60
  197. package/dist/mcp/tools.js.map +0 -1
  198. package/dist/mcp/transport.js +0 -257
  199. package/dist/mcp/transport.js.map +0 -1
  200. package/dist/mcp/types.js +0 -3
  201. package/dist/mcp/types.js.map +0 -1
  202. package/dist/mcp-server/index.js +0 -5
  203. package/dist/mcp-server/index.js.map +0 -1
  204. package/dist/mcp-server/plan-formatting.test.js +0 -74
  205. package/dist/mcp-server/plan-formatting.test.js.map +0 -1
  206. package/dist/mcp-server/sdk-server.js +0 -102
  207. package/dist/mcp-server/sdk-server.js.map +0 -1
  208. package/dist/mcp-server/sdk-server.test.js +0 -363
  209. package/dist/mcp-server/sdk-server.test.js.map +0 -1
  210. package/dist/mcp-server/tools.js +0 -785
  211. package/dist/mcp-server/tools.js.map +0 -1
  212. package/dist/mcp-server/types.js +0 -3
  213. package/dist/mcp-server/types.js.map +0 -1
  214. package/dist/options.js +0 -85
  215. package/dist/options.js.map +0 -1
  216. package/dist/options.test.js +0 -177
  217. package/dist/options.test.js.map +0 -1
  218. package/dist/prices.js +0 -61
  219. package/dist/prices.js.map +0 -1
  220. package/dist/prices.test.js +0 -148
  221. package/dist/prices.test.js.map +0 -1
  222. package/dist/runWorkflow.js +0 -313
  223. package/dist/runWorkflow.js.map +0 -1
  224. package/dist/script/__tests__/execution.integration.test.js +0 -274
  225. package/dist/script/__tests__/execution.integration.test.js.map +0 -1
  226. package/dist/script/__tests__/runner.test.js +0 -176
  227. package/dist/script/__tests__/runner.test.js.map +0 -1
  228. package/dist/script/__tests__/validator.test.js +0 -180
  229. package/dist/script/__tests__/validator.test.js.map +0 -1
  230. package/dist/script/executor.js +0 -127
  231. package/dist/script/executor.js.map +0 -1
  232. package/dist/script/index.js +0 -4
  233. package/dist/script/index.js.map +0 -1
  234. package/dist/script/runner.js +0 -258
  235. package/dist/script/runner.js.map +0 -1
  236. package/dist/skillIntegration.js +0 -46
  237. package/dist/skillIntegration.js.map +0 -1
  238. package/dist/skillIntegration.test.js +0 -128
  239. package/dist/skillIntegration.test.js.map +0 -1
  240. package/dist/test/utils.js +0 -200
  241. package/dist/test/utils.js.map +0 -1
  242. package/dist/test/workflow-fixtures.js +0 -120
  243. package/dist/test/workflow-fixtures.js.map +0 -1
  244. package/dist/tool-implementations.js +0 -521
  245. package/dist/tool-implementations.js.map +0 -1
  246. package/dist/tool-implementations.skill-tools.test.js +0 -106
  247. package/dist/tool-implementations.skill-tools.test.js.map +0 -1
  248. package/dist/tools/getTodoItem.js +0 -33
  249. package/dist/tools/getTodoItem.js.map +0 -1
  250. package/dist/tools/gitDiff.js +0 -108
  251. package/dist/tools/gitDiff.js.map +0 -1
  252. package/dist/tools/index.js +0 -8
  253. package/dist/tools/index.js.map +0 -1
  254. package/dist/tools/listMemoryTopics.js +0 -24
  255. package/dist/tools/listMemoryTopics.js.map +0 -1
  256. package/dist/tools/listTodoItems.js +0 -35
  257. package/dist/tools/listTodoItems.js.map +0 -1
  258. package/dist/tools/listTodoItems.test.js +0 -89
  259. package/dist/tools/listTodoItems.test.js.map +0 -1
  260. package/dist/tools/readMemory.js +0 -33
  261. package/dist/tools/readMemory.js.map +0 -1
  262. package/dist/tools/updateMemory.js +0 -62
  263. package/dist/tools/updateMemory.js.map +0 -1
  264. package/dist/tools/updateMemory.test.js +0 -109
  265. package/dist/tools/updateMemory.test.js.map +0 -1
  266. package/dist/tools/updateTodoItem.js +0 -31
  267. package/dist/tools/updateTodoItem.js.map +0 -1
  268. package/dist/tools/utils/diffLineNumbers.js +0 -178
  269. package/dist/tools/utils/diffLineNumbers.js.map +0 -1
  270. package/dist/utils/cacheControl.js +0 -59
  271. package/dist/utils/cacheControl.js.map +0 -1
  272. package/dist/utils/cacheControl.test.js +0 -128
  273. package/dist/utils/cacheControl.test.js.map +0 -1
  274. package/dist/utils/command.js +0 -50
  275. package/dist/utils/command.js.map +0 -1
  276. package/dist/utils/shell.js +0 -56
  277. package/dist/utils/shell.js.map +0 -1
  278. package/dist/utils/userInput.js +0 -47
  279. package/dist/utils/userInput.js.map +0 -1
  280. package/dist/workflow-tools.js +0 -21
  281. package/dist/workflow-tools.js.map +0 -1
  282. package/dist/workflows/agent-builder.js +0 -90
  283. package/dist/workflows/agent-builder.js.map +0 -1
  284. package/dist/workflows/agent-builder.test.js +0 -115
  285. package/dist/workflows/agent-builder.test.js.map +0 -1
  286. package/dist/workflows/code.workflow.js +0 -145
  287. package/dist/workflows/code.workflow.js.map +0 -1
  288. package/dist/workflows/commit.workflow.js +0 -111
  289. package/dist/workflows/commit.workflow.js.map +0 -1
  290. package/dist/workflows/commit.workflow.test.js +0 -141
  291. package/dist/workflows/commit.workflow.test.js.map +0 -1
  292. package/dist/workflows/fix.workflow.js +0 -172
  293. package/dist/workflows/fix.workflow.js.map +0 -1
  294. package/dist/workflows/fix.workflow.test.js +0 -137
  295. package/dist/workflows/fix.workflow.test.js.map +0 -1
  296. package/dist/workflows/git-file-tools.js +0 -408
  297. package/dist/workflows/git-file-tools.js.map +0 -1
  298. package/dist/workflows/index.js +0 -12
  299. package/dist/workflows/index.js.map +0 -1
  300. package/dist/workflows/init-interactive.workflow.js +0 -198
  301. package/dist/workflows/init-interactive.workflow.js.map +0 -1
  302. package/dist/workflows/init.workflow.js +0 -41
  303. package/dist/workflows/init.workflow.js.map +0 -1
  304. package/dist/workflows/meta.workflow.js +0 -107
  305. package/dist/workflows/meta.workflow.js.map +0 -1
  306. package/dist/workflows/plan.workflow.js +0 -275
  307. package/dist/workflows/plan.workflow.js.map +0 -1
  308. package/dist/workflows/plan.workflow.test.js +0 -419
  309. package/dist/workflows/plan.workflow.test.js.map +0 -1
  310. package/dist/workflows/pr.workflow.js +0 -54
  311. package/dist/workflows/pr.workflow.js.map +0 -1
  312. package/dist/workflows/pr.workflow.test.js +0 -98
  313. package/dist/workflows/pr.workflow.test.js.map +0 -1
  314. package/dist/workflows/prompts/coder.js +0 -85
  315. package/dist/workflows/prompts/coder.js.map +0 -1
  316. package/dist/workflows/prompts/commit.js +0 -16
  317. package/dist/workflows/prompts/commit.js.map +0 -1
  318. package/dist/workflows/prompts/fix.js +0 -44
  319. package/dist/workflows/prompts/fix.js.map +0 -1
  320. package/dist/workflows/prompts/index.js +0 -10
  321. package/dist/workflows/prompts/index.js.map +0 -1
  322. package/dist/workflows/prompts/init.js +0 -48
  323. package/dist/workflows/prompts/init.js.map +0 -1
  324. package/dist/workflows/prompts/meta.js +0 -17
  325. package/dist/workflows/prompts/meta.js.map +0 -1
  326. package/dist/workflows/prompts/plan.js +0 -212
  327. package/dist/workflows/prompts/plan.js.map +0 -1
  328. package/dist/workflows/prompts/pr.js +0 -15
  329. package/dist/workflows/prompts/pr.js.map +0 -1
  330. package/dist/workflows/prompts/review.js +0 -145
  331. package/dist/workflows/prompts/review.js.map +0 -1
  332. package/dist/workflows/prompts/shared.js +0 -93
  333. package/dist/workflows/prompts/shared.js.map +0 -1
  334. package/dist/workflows/review.workflow.js +0 -357
  335. package/dist/workflows/review.workflow.js.map +0 -1
  336. package/dist/workflows/task.workflow.js +0 -47
  337. package/dist/workflows/task.workflow.js.map +0 -1
  338. package/dist/workflows/testing/helper.js +0 -41
  339. package/dist/workflows/testing/helper.js.map +0 -1
  340. package/dist/workflows/workflow.utils.js +0 -351
  341. package/dist/workflows/workflow.utils.js.map +0 -1
  342. package/dist/workflows/workflow.utils.test.js +0 -45
  343. package/dist/workflows/workflow.utils.test.js.map +0 -1
@@ -1,117 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { askFollowupQuestion, createDynamicWorkflow, listFiles, parseDynamicWorkflowDefinition, searchFiles, } from '@polka-codes/core';
3
- import { Command } from 'commander';
4
- import { createLogger } from '../logger';
5
- import { runWorkflow } from '../runWorkflow';
6
- import { getBaseWorkflowOptions } from '../utils/command';
7
- import { commitWorkflow, fixWorkflow, planWorkflow, prWorkflow, reviewWorkflow } from '../workflows';
8
- export async function runWorkflowCommand(task, _options, command) {
9
- const workflowOpts = getBaseWorkflowOptions(command);
10
- const { verbose } = workflowOpts;
11
- const logger = createLogger({ verbose });
12
- const { file, workflow: workflowName } = command.opts();
13
- if (!file) {
14
- logger.error('Error: Workflow file is required. Use -f or --file.');
15
- return;
16
- }
17
- // Read and parse workflow file
18
- logger.info(`Loading workflow from '${file}'...`);
19
- let content;
20
- try {
21
- content = await readFile(file, 'utf-8');
22
- }
23
- catch (error) {
24
- const errorMessage = error instanceof Error ? error.message : String(error);
25
- logger.error(`Error reading file '${file}': ${errorMessage}`);
26
- return;
27
- }
28
- const parsedResult = parseDynamicWorkflowDefinition(content);
29
- if (!parsedResult.success) {
30
- logger.error(`Failed to parse workflow: ${parsedResult.error}`);
31
- return;
32
- }
33
- const workflowDef = parsedResult.definition;
34
- const workflowNames = Object.keys(workflowDef.workflows);
35
- logger.info(`Available workflows: ${workflowNames.join(', ')}`);
36
- let workflowId = workflowName;
37
- if (!workflowId) {
38
- if (workflowNames.includes('main')) {
39
- workflowId = 'main';
40
- logger.info(`Using 'main' workflow`);
41
- }
42
- else if (workflowNames.length === 1) {
43
- workflowId = workflowNames[0];
44
- logger.info(`Using workflow '${workflowId}'`);
45
- }
46
- else if (workflowNames.length > 1) {
47
- logger.error(`Multiple workflows found in file and no 'main' workflow. Please specify one using --workflow <name>. Available workflows: ${workflowNames.join(', ')}`);
48
- return;
49
- }
50
- else {
51
- logger.error('No workflows found in file.');
52
- return;
53
- }
54
- }
55
- else {
56
- if (!workflowNames.includes(workflowId)) {
57
- logger.error(`Workflow '${workflowId}' not found in file. Available workflows: ${workflowNames.join(', ')}`);
58
- return;
59
- }
60
- logger.info(`Using workflow '${workflowId}'`);
61
- }
62
- // Create dynamic workflow runner
63
- const tools = [listFiles, askFollowupQuestion, searchFiles];
64
- let dynamicRunner;
65
- try {
66
- dynamicRunner = createDynamicWorkflow(workflowDef, {
67
- toolInfo: tools,
68
- builtInWorkflows: {
69
- plan: planWorkflow,
70
- fix: fixWorkflow,
71
- review: reviewWorkflow,
72
- commit: commitWorkflow,
73
- pr: prWorkflow,
74
- },
75
- });
76
- }
77
- catch (error) {
78
- const errorMessage = error instanceof Error ? error.message : String(error);
79
- logger.error(`Failed to parse workflow: ${errorMessage}`);
80
- return;
81
- }
82
- const workflowFn = async (input, context) => {
83
- return dynamicRunner(workflowId, input, context);
84
- };
85
- const selectedWorkflow = workflowDef.workflows[workflowId];
86
- const workflowInput = {};
87
- if (selectedWorkflow.inputs && selectedWorkflow.inputs.length > 0 && task) {
88
- const firstInput = selectedWorkflow.inputs[0];
89
- workflowInput[firstInput.id] = task;
90
- logger.info(`Workflow input '${firstInput.id}': ${task}`);
91
- }
92
- else if (selectedWorkflow.inputs && selectedWorkflow.inputs.length > 0) {
93
- logger.info(`Workflow expects inputs: ${selectedWorkflow.inputs.map((i) => i.id).join(', ')}`);
94
- }
95
- else {
96
- logger.info('Workflow has no inputs');
97
- }
98
- logger.info(`Workflow has ${selectedWorkflow.steps.length} step(s)`);
99
- logger.debug(`Steps: ${selectedWorkflow.steps
100
- .map((s) => {
101
- // Type guard to check if step has id and task properties (basic workflow step)
102
- if ('id' in s && 'task' in s) {
103
- return `${s.id} (${s.task})`;
104
- }
105
- // For control flow steps, just show the id
106
- return 'id' in s ? String(s.id) : '(unnamed step)';
107
- })
108
- .join(', ')}`);
109
- await runWorkflow(workflowFn, workflowInput, { commandName: 'workflow', context: workflowOpts, logger });
110
- }
111
- export const workflowCommand = new Command('workflow')
112
- .description('Run custom workflows.')
113
- .argument('[task]', 'The task input for the workflow.')
114
- .option('-f, --file <path>', 'Path to the workflow file (required)')
115
- .option('-w, --workflow <name>', 'The name of the workflow to run')
116
- .action(runWorkflowCommand);
117
- //# sourceMappingURL=workflow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { input, password, select } from '@inquirer/prompts';
2
- import { AiProvider } from './getModel';
3
- import prices from './prices';
4
- export async function configPrompt(existingConfig) {
5
- // select AI provider
6
- const provider = await select({
7
- message: 'Choose AI Provider:',
8
- choices: Object.entries(AiProvider).map(([key, value]) => ({ name: key, value })),
9
- default: existingConfig?.provider,
10
- });
11
- let model = existingConfig?.model;
12
- switch (provider) {
13
- case AiProvider.Anthropic:
14
- model = await select({
15
- message: 'Choose Model ID:',
16
- choices: Object.keys(prices[AiProvider.Anthropic]).map((key) => ({ name: key, value: key })),
17
- default: existingConfig?.model ?? 'claude-opus-4-20250514',
18
- });
19
- break;
20
- case AiProvider.DeepSeek:
21
- model = await select({
22
- message: 'Choose Model ID:',
23
- choices: [
24
- { name: 'deepseek-chat', value: 'deepseek-chat' },
25
- { name: 'deepseek-reasoner', value: 'deepseek-reasoner' },
26
- ],
27
- default: existingConfig?.model ?? 'deepseek-chat',
28
- });
29
- break;
30
- case AiProvider.OpenRouter:
31
- // TODO: search for models
32
- model = await input({ message: 'Enter Model ID (Visit https://openrouter.ai/models for available models):' });
33
- break;
34
- }
35
- const apiKey = await password({ message: 'Enter API Key:', mask: '*' });
36
- let baseURL;
37
- return { provider, model: model, apiKey, baseURL };
38
- }
39
- //# sourceMappingURL=configPrompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configPrompt.js","sourceRoot":"","sources":["../src/configPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,MAAM,MAAM,UAAU,CAAA;AAS7B,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,cAAwC;IACzE,qBAAqB;IACrB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;QAC5B,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,OAAO,EAAE,cAAc,EAAE,QAAQ;KAClC,CAAC,CAAA;IAEF,IAAI,KAAK,GAAG,cAAc,EAAE,KAAK,CAAA;IAEjC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU,CAAC,SAAS;YACvB,KAAK,GAAG,MAAM,MAAM,CAAC;gBACnB,OAAO,EAAE,kBAAkB;gBAC3B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5F,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,wBAAwB;aAC3D,CAAC,CAAA;YACF,MAAK;QACP,KAAK,UAAU,CAAC,QAAQ;YACtB,KAAK,GAAG,MAAM,MAAM,CAAC;gBACnB,OAAO,EAAE,kBAAkB;gBAC3B,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;oBACjD,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;iBAC1D;gBACD,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,eAAe;aAClD,CAAC,CAAA;YACF,MAAK;QACP,KAAK,UAAU,CAAC,UAAU;YACxB,0BAA0B;YAC1B,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,2EAA2E,EAAE,CAAC,CAAA;YAC7G,MAAK;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IAEvE,IAAI,OAA2B,CAAA;IAE/B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAe,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC9D,CAAC"}
package/dist/env.js DELETED
@@ -1,22 +0,0 @@
1
- // Generated by polka.codes
2
- // This module centralizes environment variable access and provides TypeScript types
3
- /**
4
- * Get environment variables, optionally overriding process.env
5
- */
6
- export function getEnv(override) {
7
- return {
8
- POLKA_API_PROVIDER: process.env.POLKA_API_PROVIDER,
9
- POLKA_MODEL: process.env.POLKA_MODEL,
10
- POLKA_API_KEY: process.env.POLKA_API_KEY,
11
- POLKA_BUDGET: process.env.POLKA_BUDGET,
12
- ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
13
- DEEPSEEK_API_KEY: process.env.DEEPSEEK_API_KEY,
14
- OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY,
15
- OPENAI_API_KEY: process.env.OPENAI_API_KEY,
16
- GOOGLE_API_KEY: process.env.GOOGLE_API_KEY,
17
- TRACING_FILE: process.env.TRACING_FILE,
18
- ...override,
19
- };
20
- }
21
- export default getEnv;
22
- //# sourceMappingURL=env.js.map
package/dist/env.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,oFAAoF;AA8BpF;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,QAAuB;IAC5C,OAAO;QACL,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAA4C;QAC5E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;QACpC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACxC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAChD,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC9C,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAClD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1C,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,GAAG,QAAQ;KACZ,CAAA;AACH,CAAC;AAED,eAAe,MAAM,CAAA"}
package/dist/errors.js DELETED
@@ -1,132 +0,0 @@
1
- // generated by polka.codes
2
- import { createErrorClass } from '@polka-codes/core';
3
- /**
4
- * Error thrown when user cancels an operation
5
- */
6
- export const UserCancelledError = createErrorClass('UserCancelledError', (args) => args[0] ?? 'User cancelled');
7
- /**
8
- * Base class for AI provider errors
9
- */
10
- export class ProviderError extends Error {
11
- provider;
12
- model;
13
- retryable;
14
- cause;
15
- constructor(provider, model, message, retryable, cause) {
16
- super(message);
17
- this.name = this.constructor.name;
18
- this.provider = provider;
19
- this.model = model;
20
- this.retryable = retryable;
21
- this.cause = cause;
22
- }
23
- }
24
- /**
25
- * Error when the provider API is temporarily unavailable (5xx errors)
26
- */
27
- export class ProviderUnavailableError extends ProviderError {
28
- constructor(provider, model, statusCode, cause) {
29
- super(provider, model, `${provider} API is temporarily unavailable (HTTP ${statusCode}). The service may be experiencing issues. Please try again in a few minutes.`, true, cause);
30
- }
31
- }
32
- /**
33
- * Error when rate limit is exceeded (429 errors)
34
- */
35
- export class RateLimitError extends ProviderError {
36
- retryAfter;
37
- constructor(provider, model, retryAfter, cause) {
38
- const message = retryAfter
39
- ? `${provider} rate limit exceeded. Please retry after ${retryAfter} seconds.`
40
- : `${provider} rate limit exceeded. Please wait a few minutes before retrying.`;
41
- super(provider, model, message, true, cause);
42
- this.retryAfter = retryAfter;
43
- }
44
- }
45
- /**
46
- * Error when request times out
47
- */
48
- export class ProviderTimeoutError extends ProviderError {
49
- timeoutSeconds;
50
- constructor(provider, model, timeoutSeconds, cause) {
51
- super(provider, model, `${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.`, true, cause);
52
- this.timeoutSeconds = timeoutSeconds;
53
- }
54
- }
55
- /**
56
- * Error when authentication fails (401 errors)
57
- */
58
- export class AuthenticationError extends ProviderError {
59
- constructor(provider, model, cause) {
60
- super(provider, model, `${provider} authentication failed for model '${model}'. Please check your API key is valid and has not expired. Run 'polka init' to reconfigure.`, false, cause);
61
- }
62
- }
63
- /**
64
- * Error when the model is not found or access is denied (403/404 errors)
65
- */
66
- export class ModelAccessError extends ProviderError {
67
- constructor(provider, model, statusCode, cause) {
68
- super(provider, model, `${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.`, false, cause);
69
- }
70
- }
71
- /**
72
- * Error when the request is invalid (400 errors)
73
- */
74
- export class InvalidRequestError extends ProviderError {
75
- constructor(provider, model, details, cause) {
76
- super(provider, model, `${provider} rejected the request: ${details}. Please check your request parameters and try again.`, false, cause);
77
- }
78
- }
79
- /**
80
- * Error when provider response is malformed or cannot be parsed
81
- */
82
- export class MalformedResponseError extends ProviderError {
83
- constructor(provider, model, cause) {
84
- super(provider, model, `${provider} returned an invalid response for model '${model}'. This could indicate a provider issue or incompatible API version. Please try again or contact support.`, true, cause);
85
- }
86
- }
87
- /**
88
- * Error when quota/budget limits are exceeded
89
- */
90
- export class QuotaExceededError extends ProviderError {
91
- currentCost;
92
- maxCost;
93
- constructor(provider, model, currentCost, maxCost) {
94
- super(provider, model, `${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.`, false);
95
- this.currentCost = currentCost;
96
- this.maxCost = maxCost;
97
- }
98
- }
99
- /**
100
- * Error when provider is repeatedly failing after multiple retries
101
- */
102
- export class MaxRetriesExceededError extends ProviderError {
103
- attempts;
104
- lastError;
105
- constructor(provider, model, attempts, lastError) {
106
- super(provider, model, `${provider} failed after ${attempts} retry attempts for model '${model}'. Last error: ${lastError.message}. Please check your network connection and verify the service is operational.`, false, lastError);
107
- this.attempts = attempts;
108
- this.lastError = lastError;
109
- }
110
- }
111
- /**
112
- * Utility function to create appropriate error based on HTTP status code
113
- */
114
- export function createProviderErrorFromStatus(provider, model, statusCode, cause) {
115
- switch (statusCode) {
116
- case 400:
117
- return new InvalidRequestError(provider, model, 'Bad request', cause);
118
- case 401:
119
- return new AuthenticationError(provider, model, cause);
120
- case 403:
121
- case 404:
122
- return new ModelAccessError(provider, model, statusCode, cause);
123
- case 429:
124
- return new RateLimitError(provider, model, undefined, cause);
125
- default:
126
- if (statusCode >= 500) {
127
- return new ProviderUnavailableError(provider, model, statusCode, cause);
128
- }
129
- return new InvalidRequestError(provider, model, `HTTP ${statusCode}`, cause);
130
- }
131
- }
132
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- // generated by polka.codes
2
- import { describe, expect, it } from 'bun:test';
3
- import { UserCancelledError } from './errors';
4
- describe('UserCancelledError', () => {
5
- it('should create error with default message', () => {
6
- const error = new UserCancelledError();
7
- expect(error.name).toBe('UserCancelledError');
8
- expect(error.message).toBe('User cancelled');
9
- });
10
- it('should create error with custom message', () => {
11
- const error = new UserCancelledError('Custom cancellation message');
12
- expect(error.name).toBe('UserCancelledError');
13
- expect(error.message).toBe('Custom cancellation message');
14
- });
15
- it('should be instance of Error', () => {
16
- const error = new UserCancelledError();
17
- expect(error instanceof Error).toBe(true);
18
- expect(error instanceof UserCancelledError).toBe(true);
19
- });
20
- });
21
- //# sourceMappingURL=errors.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE7C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAA;QACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,6BAA6B,CAAC,CAAA;QACnE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAA;QACtC,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,CAAC,KAAK,YAAY,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,77 +0,0 @@
1
- /**
2
- * Attach files to user message content for AI workflows
3
- *
4
- * @param content - The existing user content (string or array)
5
- * @param files - Optional array of files and images to attach
6
- * @returns The content array with files attached
7
- *
8
- * @example
9
- * ```ts
10
- * const content: JsonUserContent = 'Review these files'
11
- * const files = [
12
- * { type: 'file', mediaType: 'text/plain', filename: 'test.ts', data: { type: 'base64', value: '...' } },
13
- * { type: 'image', mediaType: 'image/png', image: { type: 'base64', value: '...' } }
14
- * ]
15
- * const withFiles = attachFilesToContent(content, files)
16
- * ```
17
- */
18
- export function attachFilesToContent(content, files) {
19
- if (!files || files.length === 0) {
20
- return content;
21
- }
22
- // Convert string content to array
23
- const baseContent = typeof content === 'string' ? [{ type: 'text', text: content }] : content;
24
- // Combine existing content with new files
25
- return [...baseContent, ...files];
26
- }
27
- /**
28
- * Create a user message with optional file attachments
29
- *
30
- * @param text - The text message content
31
- * @param files - Optional array of files and images to attach
32
- * @returns A complete user message with content array
33
- *
34
- * @example
35
- * ```ts
36
- * const message = createUserMessageWithFiles('Review this code', [
37
- * { type: 'file', mediaType: 'text/plain', filename: 'code.ts', data: '...' }
38
- * ])
39
- * ```
40
- */
41
- export function createUserMessageWithFiles(text, files) {
42
- const content = [{ type: 'text', text }];
43
- return {
44
- role: 'user',
45
- content: attachFilesToContent(content, files),
46
- };
47
- }
48
- /**
49
- * Filter files by media type
50
- */
51
- export function filterFilesByMediaType(files, mediaType) {
52
- const regex = typeof mediaType === 'string' ? new RegExp(`^${mediaType}`) : mediaType;
53
- return files.filter((file) => file.mediaType !== undefined && regex.test(file.mediaType));
54
- }
55
- /**
56
- * Get only image files from mixed file array
57
- */
58
- export function getImages(files) {
59
- return files.filter((file) => file.type === 'image');
60
- }
61
- /**
62
- * Get only document files from mixed file array
63
- */
64
- export function getDocuments(files) {
65
- return files.filter((file) => file.type === 'file');
66
- }
67
- /**
68
- * Count total files by type
69
- */
70
- export function countFilesByType(files) {
71
- return {
72
- images: getImages(files).length,
73
- documents: getDocuments(files).length,
74
- total: files.length,
75
- };
76
- }
77
- //# sourceMappingURL=file-attachments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-attachments.js","sourceRoot":"","sources":["../src/file-attachments.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAwB,EAAE,KAAwC;IACrG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,kCAAkC;IAClC,MAAM,WAAW,GACf,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAE3E,0CAA0C;IAC1C,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC,CAAA;AACnC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAY,EACZ,KAAwC;IAExC,MAAM,OAAO,GAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC;KAC9C,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAuC,EACvC,SAA0B;IAE1B,MAAM,KAAK,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;AAC3F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAuC;IAC/D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAyB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAuC;IAClE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAuC;IAKtE,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM;QAC/B,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM;QACrC,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB,CAAA;AACH,CAAC"}