@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,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,9 +0,0 @@
1
- import {
2
- commitWorkflow
3
- } from "./chunk-FSNPWI3C.js";
4
- import "./chunk-LLMPMGV3.js";
5
- import "./chunk-UEEU3SCC.js";
6
- import "./chunk-2LRQ2QH6.js";
7
- export {
8
- commitWorkflow
9
- };
@@ -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"}