@polka-codes/cli 0.10.23 → 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 (335) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +3 -3
  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/commandSummarizer.js +0 -96
  102. package/dist/commandSummarizer.js.map +0 -1
  103. package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
  104. package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
  105. package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
  106. package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
  107. package/dist/commands/agent.js +0 -218
  108. package/dist/commands/agent.js.map +0 -1
  109. package/dist/commands/code.js +0 -102
  110. package/dist/commands/code.js.map +0 -1
  111. package/dist/commands/command.constants.js +0 -13
  112. package/dist/commands/command.constants.js.map +0 -1
  113. package/dist/commands/commit.js +0 -17
  114. package/dist/commands/commit.js.map +0 -1
  115. package/dist/commands/fix.js +0 -17
  116. package/dist/commands/fix.js.map +0 -1
  117. package/dist/commands/init.js +0 -501
  118. package/dist/commands/init.js.map +0 -1
  119. package/dist/commands/mcp-server.js +0 -122
  120. package/dist/commands/mcp-server.js.map +0 -1
  121. package/dist/commands/memory.js +0 -410
  122. package/dist/commands/memory.js.map +0 -1
  123. package/dist/commands/memory.test.js +0 -453
  124. package/dist/commands/memory.test.js.map +0 -1
  125. package/dist/commands/meta.js +0 -142
  126. package/dist/commands/meta.js.map +0 -1
  127. package/dist/commands/plan.js +0 -39
  128. package/dist/commands/plan.js.map +0 -1
  129. package/dist/commands/pr.js +0 -14
  130. package/dist/commands/pr.js.map +0 -1
  131. package/dist/commands/review-json.test.js +0 -33
  132. package/dist/commands/review-json.test.js.map +0 -1
  133. package/dist/commands/review.js +0 -137
  134. package/dist/commands/review.js.map +0 -1
  135. package/dist/commands/review.usage.test.js +0 -41
  136. package/dist/commands/review.usage.test.js.map +0 -1
  137. package/dist/commands/run.js +0 -107
  138. package/dist/commands/run.js.map +0 -1
  139. package/dist/commands/skills.js +0 -175
  140. package/dist/commands/skills.js.map +0 -1
  141. package/dist/commands/task.js +0 -34
  142. package/dist/commands/task.js.map +0 -1
  143. package/dist/commands/workflow.js +0 -117
  144. package/dist/commands/workflow.js.map +0 -1
  145. package/dist/configPrompt.js +0 -39
  146. package/dist/configPrompt.js.map +0 -1
  147. package/dist/env.js +0 -22
  148. package/dist/env.js.map +0 -1
  149. package/dist/errors.js +0 -132
  150. package/dist/errors.js.map +0 -1
  151. package/dist/errors.test.js +0 -21
  152. package/dist/errors.test.js.map +0 -1
  153. package/dist/file-attachments.js +0 -77
  154. package/dist/file-attachments.js.map +0 -1
  155. package/dist/file-attachments.test.js +0 -214
  156. package/dist/file-attachments.test.js.map +0 -1
  157. package/dist/getModel.js +0 -229
  158. package/dist/getModel.js.map +0 -1
  159. package/dist/getModel.test.js +0 -67
  160. package/dist/getModel.test.js.map +0 -1
  161. package/dist/getProviderOptions.js +0 -58
  162. package/dist/getProviderOptions.js.map +0 -1
  163. package/dist/git-operations.js +0 -363
  164. package/dist/git-operations.js.map +0 -1
  165. package/dist/git-operations.test.js +0 -81
  166. package/dist/git-operations.test.js.map +0 -1
  167. package/dist/index.js.map +0 -1
  168. package/dist/logger.js +0 -41
  169. package/dist/logger.js.map +0 -1
  170. package/dist/mcp/client.js +0 -11
  171. package/dist/mcp/client.js.map +0 -1
  172. package/dist/mcp/error-scenarios.test.js +0 -206
  173. package/dist/mcp/error-scenarios.test.js.map +0 -1
  174. package/dist/mcp/errors.js +0 -63
  175. package/dist/mcp/errors.js.map +0 -1
  176. package/dist/mcp/index.js +0 -9
  177. package/dist/mcp/index.js.map +0 -1
  178. package/dist/mcp/manager.js +0 -231
  179. package/dist/mcp/manager.js.map +0 -1
  180. package/dist/mcp/manager.test.js +0 -40
  181. package/dist/mcp/manager.test.js.map +0 -1
  182. package/dist/mcp/sdk-client.js +0 -166
  183. package/dist/mcp/sdk-client.js.map +0 -1
  184. package/dist/mcp/shared-types.js +0 -3
  185. package/dist/mcp/shared-types.js.map +0 -1
  186. package/dist/mcp/tools-integration.test.js +0 -198
  187. package/dist/mcp/tools-integration.test.js.map +0 -1
  188. package/dist/mcp/tools.js +0 -60
  189. package/dist/mcp/tools.js.map +0 -1
  190. package/dist/mcp/transport.js +0 -257
  191. package/dist/mcp/transport.js.map +0 -1
  192. package/dist/mcp/types.js +0 -3
  193. package/dist/mcp/types.js.map +0 -1
  194. package/dist/mcp-server/index.js +0 -5
  195. package/dist/mcp-server/index.js.map +0 -1
  196. package/dist/mcp-server/plan-formatting.test.js +0 -74
  197. package/dist/mcp-server/plan-formatting.test.js.map +0 -1
  198. package/dist/mcp-server/sdk-server.js +0 -102
  199. package/dist/mcp-server/sdk-server.js.map +0 -1
  200. package/dist/mcp-server/sdk-server.test.js +0 -363
  201. package/dist/mcp-server/sdk-server.test.js.map +0 -1
  202. package/dist/mcp-server/tools.js +0 -785
  203. package/dist/mcp-server/tools.js.map +0 -1
  204. package/dist/mcp-server/types.js +0 -3
  205. package/dist/mcp-server/types.js.map +0 -1
  206. package/dist/options.js +0 -85
  207. package/dist/options.js.map +0 -1
  208. package/dist/options.test.js +0 -177
  209. package/dist/options.test.js.map +0 -1
  210. package/dist/prices.js +0 -61
  211. package/dist/prices.js.map +0 -1
  212. package/dist/prices.test.js +0 -148
  213. package/dist/prices.test.js.map +0 -1
  214. package/dist/runWorkflow.js +0 -313
  215. package/dist/runWorkflow.js.map +0 -1
  216. package/dist/script/__tests__/execution.integration.test.js +0 -274
  217. package/dist/script/__tests__/execution.integration.test.js.map +0 -1
  218. package/dist/script/__tests__/runner.test.js +0 -176
  219. package/dist/script/__tests__/runner.test.js.map +0 -1
  220. package/dist/script/__tests__/validator.test.js +0 -180
  221. package/dist/script/__tests__/validator.test.js.map +0 -1
  222. package/dist/script/executor.js +0 -127
  223. package/dist/script/executor.js.map +0 -1
  224. package/dist/script/index.js +0 -4
  225. package/dist/script/index.js.map +0 -1
  226. package/dist/script/runner.js +0 -258
  227. package/dist/script/runner.js.map +0 -1
  228. package/dist/skillIntegration.js +0 -46
  229. package/dist/skillIntegration.js.map +0 -1
  230. package/dist/skillIntegration.test.js +0 -128
  231. package/dist/skillIntegration.test.js.map +0 -1
  232. package/dist/test/utils.js +0 -200
  233. package/dist/test/utils.js.map +0 -1
  234. package/dist/test/workflow-fixtures.js +0 -120
  235. package/dist/test/workflow-fixtures.js.map +0 -1
  236. package/dist/tool-implementations.js +0 -521
  237. package/dist/tool-implementations.js.map +0 -1
  238. package/dist/tool-implementations.skill-tools.test.js +0 -106
  239. package/dist/tool-implementations.skill-tools.test.js.map +0 -1
  240. package/dist/tools/getTodoItem.js +0 -33
  241. package/dist/tools/getTodoItem.js.map +0 -1
  242. package/dist/tools/gitDiff.js +0 -108
  243. package/dist/tools/gitDiff.js.map +0 -1
  244. package/dist/tools/index.js +0 -8
  245. package/dist/tools/index.js.map +0 -1
  246. package/dist/tools/listMemoryTopics.js +0 -24
  247. package/dist/tools/listMemoryTopics.js.map +0 -1
  248. package/dist/tools/listTodoItems.js +0 -35
  249. package/dist/tools/listTodoItems.js.map +0 -1
  250. package/dist/tools/listTodoItems.test.js +0 -89
  251. package/dist/tools/listTodoItems.test.js.map +0 -1
  252. package/dist/tools/readMemory.js +0 -33
  253. package/dist/tools/readMemory.js.map +0 -1
  254. package/dist/tools/updateMemory.js +0 -62
  255. package/dist/tools/updateMemory.js.map +0 -1
  256. package/dist/tools/updateMemory.test.js +0 -109
  257. package/dist/tools/updateMemory.test.js.map +0 -1
  258. package/dist/tools/updateTodoItem.js +0 -31
  259. package/dist/tools/updateTodoItem.js.map +0 -1
  260. package/dist/tools/utils/diffLineNumbers.js +0 -178
  261. package/dist/tools/utils/diffLineNumbers.js.map +0 -1
  262. package/dist/utils/cacheControl.js +0 -59
  263. package/dist/utils/cacheControl.js.map +0 -1
  264. package/dist/utils/cacheControl.test.js +0 -128
  265. package/dist/utils/cacheControl.test.js.map +0 -1
  266. package/dist/utils/command.js +0 -50
  267. package/dist/utils/command.js.map +0 -1
  268. package/dist/utils/shell.js +0 -56
  269. package/dist/utils/shell.js.map +0 -1
  270. package/dist/utils/userInput.js +0 -47
  271. package/dist/utils/userInput.js.map +0 -1
  272. package/dist/workflow-tools.js +0 -21
  273. package/dist/workflow-tools.js.map +0 -1
  274. package/dist/workflows/agent-builder.js +0 -90
  275. package/dist/workflows/agent-builder.js.map +0 -1
  276. package/dist/workflows/agent-builder.test.js +0 -115
  277. package/dist/workflows/agent-builder.test.js.map +0 -1
  278. package/dist/workflows/code.workflow.js +0 -145
  279. package/dist/workflows/code.workflow.js.map +0 -1
  280. package/dist/workflows/commit.workflow.js +0 -111
  281. package/dist/workflows/commit.workflow.js.map +0 -1
  282. package/dist/workflows/commit.workflow.test.js +0 -141
  283. package/dist/workflows/commit.workflow.test.js.map +0 -1
  284. package/dist/workflows/fix.workflow.js +0 -172
  285. package/dist/workflows/fix.workflow.js.map +0 -1
  286. package/dist/workflows/fix.workflow.test.js +0 -137
  287. package/dist/workflows/fix.workflow.test.js.map +0 -1
  288. package/dist/workflows/git-file-tools.js +0 -408
  289. package/dist/workflows/git-file-tools.js.map +0 -1
  290. package/dist/workflows/index.js +0 -12
  291. package/dist/workflows/index.js.map +0 -1
  292. package/dist/workflows/init-interactive.workflow.js +0 -198
  293. package/dist/workflows/init-interactive.workflow.js.map +0 -1
  294. package/dist/workflows/init.workflow.js +0 -41
  295. package/dist/workflows/init.workflow.js.map +0 -1
  296. package/dist/workflows/meta.workflow.js +0 -107
  297. package/dist/workflows/meta.workflow.js.map +0 -1
  298. package/dist/workflows/plan.workflow.js +0 -275
  299. package/dist/workflows/plan.workflow.js.map +0 -1
  300. package/dist/workflows/plan.workflow.test.js +0 -419
  301. package/dist/workflows/plan.workflow.test.js.map +0 -1
  302. package/dist/workflows/pr.workflow.js +0 -54
  303. package/dist/workflows/pr.workflow.js.map +0 -1
  304. package/dist/workflows/pr.workflow.test.js +0 -98
  305. package/dist/workflows/pr.workflow.test.js.map +0 -1
  306. package/dist/workflows/prompts/coder.js +0 -85
  307. package/dist/workflows/prompts/coder.js.map +0 -1
  308. package/dist/workflows/prompts/commit.js +0 -16
  309. package/dist/workflows/prompts/commit.js.map +0 -1
  310. package/dist/workflows/prompts/fix.js +0 -44
  311. package/dist/workflows/prompts/fix.js.map +0 -1
  312. package/dist/workflows/prompts/index.js +0 -10
  313. package/dist/workflows/prompts/index.js.map +0 -1
  314. package/dist/workflows/prompts/init.js +0 -48
  315. package/dist/workflows/prompts/init.js.map +0 -1
  316. package/dist/workflows/prompts/meta.js +0 -17
  317. package/dist/workflows/prompts/meta.js.map +0 -1
  318. package/dist/workflows/prompts/plan.js +0 -212
  319. package/dist/workflows/prompts/plan.js.map +0 -1
  320. package/dist/workflows/prompts/pr.js +0 -15
  321. package/dist/workflows/prompts/pr.js.map +0 -1
  322. package/dist/workflows/prompts/review.js +0 -145
  323. package/dist/workflows/prompts/review.js.map +0 -1
  324. package/dist/workflows/prompts/shared.js +0 -93
  325. package/dist/workflows/prompts/shared.js.map +0 -1
  326. package/dist/workflows/review.workflow.js +0 -357
  327. package/dist/workflows/review.workflow.js.map +0 -1
  328. package/dist/workflows/task.workflow.js +0 -47
  329. package/dist/workflows/task.workflow.js.map +0 -1
  330. package/dist/workflows/testing/helper.js +0 -41
  331. package/dist/workflows/testing/helper.js.map +0 -1
  332. package/dist/workflows/workflow.utils.js +0 -351
  333. package/dist/workflows/workflow.utils.js.map +0 -1
  334. package/dist/workflows/workflow.utils.test.js +0 -45
  335. 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"}