@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,139 +0,0 @@
1
- import { deepMerge } from '@polka-codes/core';
2
- import { z } from 'zod';
3
- import { CONFIG_PRESETS, DEFAULT_AGENT_CONFIG } from './constants';
4
- import { ConfigValidationError } from './errors';
5
- /**
6
- * Zod schema for ContinuousImprovementConfig
7
- */
8
- const ContinuousImprovementConfigSchema = z.object({
9
- sleepTimeOnNoTasks: z.number().int().positive().default(60000),
10
- sleepTimeBetweenTasks: z.number().int().nonnegative().default(5000),
11
- maxCycles: z.number().int().nonnegative().default(0),
12
- });
13
- /**
14
- * Zod schema for DiscoveryConfig
15
- */
16
- const DiscoveryConfigSchema = z.object({
17
- enabledStrategies: z.array(z.string()).min(1),
18
- cacheTime: z.number().int().positive().default(300000),
19
- checkChanges: z.boolean().default(true),
20
- });
21
- /**
22
- * Zod schema for AgentConfig
23
- */
24
- export const AgentConfigSchema = z.object({
25
- strategy: z.enum(['goal-directed', 'continuous-improvement']).default('goal-directed'),
26
- continueOnCompletion: z.boolean().default(false),
27
- maxIterations: z.number().int().nonnegative().default(0),
28
- timeout: z.number().int().nonnegative().default(0),
29
- requireApprovalFor: z.enum(['none', 'destructive', 'commits', 'all']).default('destructive'),
30
- pauseOnError: z.boolean().default(true),
31
- workingBranch: z.string().default('main'),
32
- maxConcurrency: z.number().int().min(1).default(1),
33
- autoSaveInterval: z.number().int().min(1000).default(30000),
34
- enableProgress: z.boolean().default(true),
35
- destructiveOperations: z.array(z.string()).default([]),
36
- maxAutoApprovalCost: z.number().int().nonnegative().default(5),
37
- autoApproveSafeTasks: z.boolean().default(true),
38
- workingDir: z.string().optional(),
39
- continuousImprovement: ContinuousImprovementConfigSchema.default(DEFAULT_AGENT_CONFIG.continuousImprovement),
40
- discovery: DiscoveryConfigSchema.default(DEFAULT_AGENT_CONFIG.discovery),
41
- preset: z.string().optional(),
42
- stateDir: z.string().optional(),
43
- approval: z.object({
44
- level: z.enum(['none', 'destructive', 'commits', 'all']).default('destructive'),
45
- autoApproveSafeTasks: z.boolean().default(true),
46
- maxAutoApprovalCost: z.number().int().nonnegative().default(5),
47
- }),
48
- safety: z.object({
49
- enabledChecks: z.array(z.string()).default([]),
50
- blockDestructive: z.boolean().default(true),
51
- maxFileSize: z.number().int().positive().default(10485760),
52
- }),
53
- healthCheck: z
54
- .object({
55
- enabled: z.boolean().default(false),
56
- interval: z.number().int().positive().default(60000),
57
- })
58
- .optional(),
59
- });
60
- /**
61
- * Type guard for AgentConfig
62
- */
63
- export function isValidAgentConfig(config) {
64
- try {
65
- AgentConfigSchema.parse(config);
66
- return true;
67
- }
68
- catch {
69
- return false;
70
- }
71
- }
72
- /**
73
- * Validate configuration with Zod
74
- */
75
- export function validateConfig(config) {
76
- try {
77
- return AgentConfigSchema.parse(config);
78
- }
79
- catch (error) {
80
- if (error instanceof z.ZodError) {
81
- const errors = error.issues.map((e) => `${e.path.join('.')}: ${e.message}`);
82
- throw new ConfigValidationError('Configuration validation failed', errors);
83
- }
84
- throw error;
85
- }
86
- }
87
- /**
88
- * Load configuration from CLI options and config file
89
- */
90
- export async function loadConfig(cliOptions, configPath) {
91
- // Start with defaults
92
- let config = { ...DEFAULT_AGENT_CONFIG };
93
- // Apply preset if specified
94
- if (cliOptions.preset && CONFIG_PRESETS[cliOptions.preset]) {
95
- config = mergeConfig(config, CONFIG_PRESETS[cliOptions.preset]);
96
- config.preset = cliOptions.preset;
97
- }
98
- // Load from file if exists
99
- if (configPath) {
100
- const fileConfig = await loadConfigFromFile(configPath);
101
- config = mergeConfig(config, fileConfig);
102
- }
103
- // Apply CLI options (highest priority)
104
- config = mergeConfig(config, cliOptions);
105
- // Validate configuration
106
- return validateConfig(config);
107
- }
108
- /**
109
- * Merge two configurations (second overrides first)
110
- *
111
- * Uses deepMerge utility with explicit path specification for nested objects.
112
- * This makes it clear which fields get deep merged vs shallow merge.
113
- */
114
- export function mergeConfig(base, override) {
115
- return deepMerge(base, override, [
116
- 'continuousImprovement', // Explicit: these get deep merged
117
- 'discovery',
118
- 'approval',
119
- 'safety',
120
- ]);
121
- // Other fields use shallow merge (spread) - explicit and clear!
122
- }
123
- /**
124
- * Load configuration from file
125
- */
126
- async function loadConfigFromFile(configPath) {
127
- try {
128
- const fs = await import('node:fs/promises');
129
- const content = await fs.readFile(configPath, 'utf-8');
130
- return JSON.parse(content);
131
- }
132
- catch (error) {
133
- if (error.code === 'ENOENT') {
134
- return {};
135
- }
136
- throw error;
137
- }
138
- }
139
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/agent/config.ts"],"names":[],"mappings":"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"}
@@ -1,140 +0,0 @@
1
- import { describe, expect, it } from 'bun:test';
2
- import { AgentConfigSchema, mergeConfig, validateConfig } from './config';
3
- import { DEFAULT_AGENT_CONFIG } from './constants';
4
- describe('AgentConfig', () => {
5
- describe('validateConfig', () => {
6
- it('should validate default configuration', () => {
7
- const config = validateConfig(DEFAULT_AGENT_CONFIG);
8
- expect(config).toBeDefined();
9
- expect(config.strategy).toBe('goal-directed');
10
- expect(config.pauseOnError).toBe(true);
11
- });
12
- it('should reject invalid strategy', () => {
13
- expect(() => {
14
- AgentConfigSchema.parse({
15
- ...DEFAULT_AGENT_CONFIG,
16
- strategy: 'invalid',
17
- });
18
- }).toThrow();
19
- });
20
- it('should reject invalid requireApprovalFor value', () => {
21
- expect(() => {
22
- AgentConfigSchema.parse({
23
- ...DEFAULT_AGENT_CONFIG,
24
- requireApprovalFor: 'invalid',
25
- });
26
- }).toThrow();
27
- });
28
- it('should apply default values for missing fields', () => {
29
- const partialConfig = {
30
- strategy: 'goal-directed',
31
- approval: {},
32
- safety: {},
33
- };
34
- const validated = AgentConfigSchema.parse(partialConfig);
35
- expect(validated.pauseOnError).toBe(true);
36
- expect(validated.requireApprovalFor).toBe('destructive');
37
- expect(validated.maxConcurrency).toBe(1);
38
- expect(validated.approval.level).toBe('destructive');
39
- expect(validated.safety.blockDestructive).toBe(true);
40
- });
41
- });
42
- describe('mergeConfig', () => {
43
- it('should merge configurations correctly', () => {
44
- const base = DEFAULT_AGENT_CONFIG;
45
- const override = {
46
- strategy: 'continuous-improvement',
47
- maxIterations: 100,
48
- };
49
- const merged = mergeConfig(base, override);
50
- // Check specific overrides
51
- expect(merged.strategy).toBe('continuous-improvement');
52
- expect(merged.maxIterations).toBe(100);
53
- // Check base fields are preserved
54
- expect(merged.pauseOnError).toBe(base.pauseOnError);
55
- expect(merged.requireApprovalFor).toBe(base.requireApprovalFor);
56
- expect(merged.continuousImprovement).toEqual(base.continuousImprovement);
57
- });
58
- it('should preserve base fields when not overridden', () => {
59
- const base = DEFAULT_AGENT_CONFIG;
60
- const override = {
61
- strategy: 'continuous-improvement',
62
- };
63
- const merged = mergeConfig(base, override);
64
- expect(merged.strategy).toBe('continuous-improvement');
65
- expect(merged.pauseOnError).toBe(base.pauseOnError);
66
- expect(merged.maxIterations).toBe(base.maxIterations);
67
- });
68
- it('should merge nested objects correctly', () => {
69
- const base = DEFAULT_AGENT_CONFIG;
70
- const override = {
71
- continuousImprovement: {
72
- ...base.continuousImprovement,
73
- sleepTimeOnNoTasks: 120000,
74
- },
75
- };
76
- const merged = mergeConfig(base, override);
77
- expect(merged.continuousImprovement.sleepTimeOnNoTasks).toBe(120000);
78
- expect(merged.continuousImprovement.sleepTimeBetweenTasks).toBe(base.continuousImprovement.sleepTimeBetweenTasks);
79
- // Other nested fields preserved
80
- expect(merged.continuousImprovement.maxCycles).toBe(base.continuousImprovement.maxCycles);
81
- });
82
- it('should merge discovery config', () => {
83
- const base = DEFAULT_AGENT_CONFIG;
84
- const override = {
85
- discovery: {
86
- enabledStrategies: ['test-coverage'],
87
- cacheTime: 600000,
88
- checkChanges: base.discovery.checkChanges,
89
- },
90
- };
91
- const merged = mergeConfig(base, override);
92
- expect(merged.discovery.enabledStrategies).toEqual(['test-coverage']);
93
- expect(merged.discovery.cacheTime).toBe(600000);
94
- expect(merged.discovery.checkChanges).toBe(base.discovery.checkChanges);
95
- });
96
- it('should merge approval config', () => {
97
- const base = DEFAULT_AGENT_CONFIG;
98
- const override = {
99
- approval: {
100
- level: 'all',
101
- autoApproveSafeTasks: false,
102
- maxAutoApprovalCost: base.approval.maxAutoApprovalCost,
103
- },
104
- };
105
- const merged = mergeConfig(base, override);
106
- expect(merged.approval.level).toBe('all');
107
- expect(merged.approval.autoApproveSafeTasks).toBe(false);
108
- expect(merged.approval.maxAutoApprovalCost).toBe(base.approval.maxAutoApprovalCost);
109
- });
110
- it('should merge safety config', () => {
111
- const base = DEFAULT_AGENT_CONFIG;
112
- const override = {
113
- safety: {
114
- enabledChecks: ['security-scan'],
115
- blockDestructive: false,
116
- maxFileSize: base.safety.maxFileSize,
117
- },
118
- };
119
- const merged = mergeConfig(base, override);
120
- expect(merged.safety.enabledChecks).toEqual(['security-scan']);
121
- expect(merged.safety.blockDestructive).toBe(false);
122
- expect(merged.safety.maxFileSize).toBe(base.safety.maxFileSize);
123
- });
124
- });
125
- describe('isValidAgentConfig', () => {
126
- it('should return true for valid config', () => {
127
- const { isValidAgentConfig } = require('./config');
128
- expect(isValidAgentConfig(DEFAULT_AGENT_CONFIG)).toBe(true);
129
- });
130
- it('should return false for invalid config', () => {
131
- const { isValidAgentConfig } = require('./config');
132
- expect(isValidAgentConfig({ strategy: 'invalid' })).toBe(false);
133
- });
134
- it('should return false for missing required fields', () => {
135
- const { isValidAgentConfig } = require('./config');
136
- expect(isValidAgentConfig({})).toBe(false);
137
- });
138
- });
139
- });
140
- //# sourceMappingURL=config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/agent/config.test.ts"],"names":[],"mappings":"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"}
@@ -1,172 +0,0 @@
1
- import { Priority } from './types';
2
- // Re-export Priority for convenience
3
- export { Priority };
4
- /**
5
- * Mapping of task types to workflows
6
- */
7
- export const WORKFLOW_MAPPING = {
8
- feature: 'plan',
9
- bugfix: 'fix',
10
- refactor: 'code',
11
- refactoring: 'code',
12
- test: 'code',
13
- testing: 'code',
14
- docs: 'code',
15
- documentation: 'code',
16
- review: 'review',
17
- commit: 'commit',
18
- analysis: 'plan',
19
- security: 'fix',
20
- optimization: 'code',
21
- other: 'plan',
22
- plan: 'plan',
23
- task: 'code',
24
- delete: 'code',
25
- 'force-push': 'code',
26
- reset: 'code',
27
- };
28
- /**
29
- * Default discovery strategies
30
- */
31
- export const DEFAULT_DISCOVERY_STRATEGIES = ['build-errors', 'failing-tests', 'type-errors', 'lint-issues'];
32
- /**
33
- * Advanced discovery strategies
34
- */
35
- export const ADVANCED_DISCOVERY_STRATEGIES = ['test-coverage', 'code-quality', 'refactoring', 'documentation', 'security'];
36
- /**
37
- * Working directory discovery strategy
38
- */
39
- export const WORKING_DIR_STRATEGY = 'working-dir';
40
- /**
41
- * All discovery strategies
42
- */
43
- export const ALL_DISCOVERY_STRATEGIES = [...DEFAULT_DISCOVERY_STRATEGIES, ...ADVANCED_DISCOVERY_STRATEGIES, WORKING_DIR_STRATEGY];
44
- /**
45
- * State transition rules
46
- */
47
- export const STATE_TRANSITIONS = [
48
- { from: ['idle'], to: 'planning', label: 'setGoal' },
49
- { from: ['planning'], to: 'executing', label: 'planReady' },
50
- { from: ['executing'], to: 'reviewing', label: 'taskComplete' },
51
- { from: ['executing'], to: 'error-recovery', label: 'taskFailed' },
52
- { from: ['reviewing'], to: 'committing', label: 'reviewPassed' },
53
- { from: ['reviewing'], to: 'executing', label: 'reviewFailed' },
54
- { from: ['committing'], to: 'idle', label: 'committed' },
55
- { from: ['error-recovery'], to: 'executing', label: 'recovered' },
56
- { from: ['error-recovery'], to: 'stopped', label: 'unrecoverable' },
57
- { from: ['*'], to: 'stopped', label: 'interrupt' },
58
- ];
59
- /**
60
- * Default agent configuration
61
- */
62
- export const DEFAULT_AGENT_CONFIG = {
63
- strategy: 'goal-directed',
64
- continueOnCompletion: false,
65
- maxIterations: 0,
66
- timeout: 0,
67
- requireApprovalFor: 'destructive',
68
- pauseOnError: true,
69
- workingBranch: 'main',
70
- maxConcurrency: 1,
71
- autoSaveInterval: 30000,
72
- enableProgress: true,
73
- destructiveOperations: ['delete', 'force-push', 'reset'],
74
- maxAutoApprovalCost: 5,
75
- autoApproveSafeTasks: true,
76
- continuousImprovement: {
77
- sleepTimeOnNoTasks: 60000, // 1 minute
78
- sleepTimeBetweenTasks: 5000, // 5 seconds
79
- maxCycles: 0, // infinite
80
- },
81
- discovery: {
82
- enabledStrategies: [...DEFAULT_DISCOVERY_STRATEGIES],
83
- cacheTime: 300000, // 5 minutes
84
- checkChanges: true,
85
- },
86
- approval: {
87
- level: 'destructive',
88
- autoApproveSafeTasks: true,
89
- maxAutoApprovalCost: 5,
90
- },
91
- safety: {
92
- enabledChecks: [],
93
- blockDestructive: true,
94
- maxFileSize: 10485760, // 10MB
95
- },
96
- };
97
- /**
98
- * Configuration presets
99
- */
100
- export const CONFIG_PRESETS = {
101
- conservative: {
102
- strategy: 'goal-directed',
103
- requireApprovalFor: 'all',
104
- autoApproveSafeTasks: false,
105
- maxAutoApprovalCost: 0,
106
- pauseOnError: true,
107
- maxConcurrency: 1,
108
- discovery: {
109
- enabledStrategies: [...DEFAULT_DISCOVERY_STRATEGIES],
110
- cacheTime: 300000,
111
- checkChanges: true,
112
- },
113
- },
114
- balanced: {
115
- strategy: 'goal-directed',
116
- requireApprovalFor: 'destructive',
117
- autoApproveSafeTasks: true,
118
- maxAutoApprovalCost: 10,
119
- pauseOnError: true,
120
- maxConcurrency: 1,
121
- discovery: {
122
- enabledStrategies: [...DEFAULT_DISCOVERY_STRATEGIES],
123
- cacheTime: 300000,
124
- checkChanges: true,
125
- },
126
- },
127
- aggressive: {
128
- strategy: 'goal-directed',
129
- requireApprovalFor: 'none',
130
- autoApproveSafeTasks: true,
131
- maxAutoApprovalCost: 30,
132
- pauseOnError: false,
133
- maxConcurrency: 2,
134
- discovery: {
135
- enabledStrategies: [...ALL_DISCOVERY_STRATEGIES],
136
- cacheTime: 600000,
137
- checkChanges: false,
138
- },
139
- },
140
- 'continuous-improvement': {
141
- strategy: 'continuous-improvement',
142
- continueOnCompletion: true,
143
- maxIterations: 0,
144
- requireApprovalFor: 'commits',
145
- autoApproveSafeTasks: true,
146
- maxAutoApprovalCost: 15,
147
- pauseOnError: false,
148
- maxConcurrency: 2,
149
- discovery: {
150
- enabledStrategies: [...DEFAULT_DISCOVERY_STRATEGIES, 'test-coverage'],
151
- cacheTime: 300000,
152
- checkChanges: true,
153
- },
154
- },
155
- 'working-dir': {
156
- strategy: 'continuous-improvement',
157
- continueOnCompletion: true,
158
- maxIterations: 0,
159
- requireApprovalFor: 'commits',
160
- autoApproveSafeTasks: true,
161
- maxAutoApprovalCost: 30,
162
- pauseOnError: false,
163
- maxConcurrency: 1,
164
- workingDir: './plans', // Default working directory
165
- discovery: {
166
- enabledStrategies: ['working-dir'],
167
- cacheTime: 60000, // Check every minute for new tasks
168
- checkChanges: false,
169
- },
170
- },
171
- };
172
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/agent/constants.ts"],"names":[],"mappings":"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"}
@@ -1,132 +0,0 @@
1
- import { describe, expect, it } from 'bun:test';
2
- import { ADVANCED_DISCOVERY_STRATEGIES, ALL_DISCOVERY_STRATEGIES, CONFIG_PRESETS, DEFAULT_AGENT_CONFIG, DEFAULT_DISCOVERY_STRATEGIES, STATE_TRANSITIONS, WORKFLOW_MAPPING, } from './constants';
3
- describe('constants', () => {
4
- describe('WORKFLOW_MAPPING', () => {
5
- // REMOVED: Snapshot test for type-guaranteed constant
6
- // TypeScript's type system already validates this structure at compile time
7
- it('should include all required task types', () => {
8
- const requiredTypes = ['feature', 'bugfix', 'refactor', 'review', 'commit', 'security'];
9
- requiredTypes.forEach((type) => {
10
- expect(WORKFLOW_MAPPING[type]).toBeDefined();
11
- });
12
- });
13
- it('should map each task type to a valid workflow', () => {
14
- Object.values(WORKFLOW_MAPPING).forEach((workflow) => {
15
- expect(workflow).toBeDefined();
16
- expect(typeof workflow).toBe('string');
17
- });
18
- });
19
- });
20
- describe('DEFAULT_DISCOVERY_STRATEGIES', () => {
21
- // REMOVED: Snapshot test for type-guaranteed constant
22
- it('should have 4 strategies', () => {
23
- expect(DEFAULT_DISCOVERY_STRATEGIES).toHaveLength(4);
24
- });
25
- it('should have valid strategy names', () => {
26
- const validStrategies = ['build-errors', 'failing-tests', 'type-errors', 'lint-issues'];
27
- DEFAULT_DISCOVERY_STRATEGIES.forEach((strategy) => {
28
- expect(validStrategies).toContain(strategy);
29
- });
30
- });
31
- });
32
- describe('ADVANCED_DISCOVERY_STRATEGIES', () => {
33
- // REMOVED: Snapshot test for type-guaranteed constant
34
- it('should have 5 strategies', () => {
35
- expect(ADVANCED_DISCOVERY_STRATEGIES).toHaveLength(5);
36
- });
37
- it('should have valid strategy names', () => {
38
- const validStrategies = ['test-coverage', 'code-quality', 'refactoring', 'documentation', 'security'];
39
- ADVANCED_DISCOVERY_STRATEGIES.forEach((strategy) => {
40
- expect(validStrategies).toContain(strategy);
41
- });
42
- });
43
- });
44
- describe('ALL_DISCOVERY_STRATEGIES', () => {
45
- it('should include all default strategies', () => {
46
- DEFAULT_DISCOVERY_STRATEGIES.forEach((strategy) => {
47
- expect(ALL_DISCOVERY_STRATEGIES).toContain(strategy);
48
- });
49
- });
50
- it('should include all advanced strategies', () => {
51
- ADVANCED_DISCOVERY_STRATEGIES.forEach((strategy) => {
52
- expect(ALL_DISCOVERY_STRATEGIES).toContain(strategy);
53
- });
54
- });
55
- it('should have 10 strategies total (including working-dir)', () => {
56
- expect(ALL_DISCOVERY_STRATEGIES).toHaveLength(10);
57
- });
58
- });
59
- describe('STATE_TRANSITIONS', () => {
60
- // REMOVED: Snapshot test for type-guaranteed constant
61
- it('should have valid transition structure', () => {
62
- STATE_TRANSITIONS.forEach((transition) => {
63
- expect(transition.from).toBeDefined();
64
- expect(transition.to).toBeDefined();
65
- expect(transition.label).toBeDefined();
66
- expect(transition.from).toBeInstanceOf(Array);
67
- expect(typeof transition.to).toBe('string');
68
- expect(typeof transition.label).toBe('string');
69
- });
70
- });
71
- it('should have critical transitions', () => {
72
- const transitionLabels = STATE_TRANSITIONS.map((t) => t.label);
73
- expect(transitionLabels).toContain('setGoal');
74
- expect(transitionLabels).toContain('planReady');
75
- expect(transitionLabels).toContain('taskComplete');
76
- expect(transitionLabels).toContain('taskFailed');
77
- expect(transitionLabels).toContain('interrupt');
78
- });
79
- it('should have unique transition labels', () => {
80
- const labels = STATE_TRANSITIONS.map((t) => t.label);
81
- const uniqueLabels = new Set(labels);
82
- expect(uniqueLabels.size).toBe(labels.length);
83
- });
84
- });
85
- describe('DEFAULT_AGENT_CONFIG', () => {
86
- // REMOVED: Snapshot test for type-guaranteed constant
87
- it('should have all required config sections', () => {
88
- expect(DEFAULT_AGENT_CONFIG.continuousImprovement).toBeDefined();
89
- expect(DEFAULT_AGENT_CONFIG.discovery).toBeDefined();
90
- expect(DEFAULT_AGENT_CONFIG.approval).toBeDefined();
91
- });
92
- it('should have discovery config with default strategies', () => {
93
- expect(DEFAULT_AGENT_CONFIG.discovery.enabledStrategies).toEqual([...DEFAULT_DISCOVERY_STRATEGIES]);
94
- });
95
- it('should have valid approval level', () => {
96
- expect(['all', 'destructive', 'none']).toContain(DEFAULT_AGENT_CONFIG.approval.level);
97
- });
98
- });
99
- describe('CONFIG_PRESETS', () => {
100
- it('should have all required presets', () => {
101
- const presetNames = ['conservative', 'balanced', 'aggressive', 'continuous-improvement', 'working-dir'];
102
- presetNames.forEach((name) => {
103
- expect(CONFIG_PRESETS[name]).toBeDefined();
104
- });
105
- });
106
- // REMOVED: Snapshot tests for individual presets
107
- // These are type-guaranteed constants validated by TypeScript
108
- it('should have aggressive preset with all discovery strategies', () => {
109
- expect(CONFIG_PRESETS.aggressive.discovery?.enabledStrategies).toEqual([...ALL_DISCOVERY_STRATEGIES]);
110
- });
111
- it('should have conservative preset with default discovery strategies', () => {
112
- expect(CONFIG_PRESETS.conservative.discovery?.enabledStrategies).toEqual([...DEFAULT_DISCOVERY_STRATEGIES]);
113
- });
114
- it('should have continuous-improvement preset with test-coverage', () => {
115
- const ciStrategies = CONFIG_PRESETS['continuous-improvement'].discovery?.enabledStrategies;
116
- expect(ciStrategies).toContain('test-coverage');
117
- });
118
- it('should have working-dir preset with working-dir strategy', () => {
119
- const wdStrategies = CONFIG_PRESETS['working-dir'].discovery?.enabledStrategies;
120
- expect(wdStrategies).toContain('working-dir');
121
- });
122
- it('should have all presets with valid approval levels', () => {
123
- const validLevels = ['all', 'destructive', 'none', 'commits'];
124
- Object.values(CONFIG_PRESETS).forEach((preset) => {
125
- if (preset.requireApprovalFor) {
126
- expect(validLevels).toContain(preset.requireApprovalFor);
127
- }
128
- });
129
- });
130
- });
131
- });
132
- //# sourceMappingURL=constants.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.test.js","sourceRoot":"","sources":["../../src/agent/constants.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AAEpB,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,sDAAsD;QACtD,4EAA4E;QAE5E,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;YAChG,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YAC9C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnD,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;gBAC9B,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACxC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,sDAAsD;QAEtD,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,4BAA4B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,CAAU,CAAA;YAChG,4BAA4B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAChD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YAC7C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,sDAAsD;QAEtD,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,6BAA6B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,eAAe,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,CAAU,CAAA;YAC9G,6BAA6B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACjD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YAC7C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,4BAA4B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAChD,MAAM,CAAC,wBAAwB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACtD,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,6BAA6B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACjD,MAAM,CAAC,wBAAwB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACtD,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,CAAC,wBAAwB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,sDAAsD;QAEtD,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACvC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;gBACrC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;gBACnC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;gBACtC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;gBAC7C,MAAM,CAAC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC3C,MAAM,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChD,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC9D,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YAC7C,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACpD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;YACpC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,sDAAsD;QAEtD,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAA;YAChE,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;YACpD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QACrD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAA;QACrG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,wBAAwB,EAAE,aAAa,CAAC,CAAA;YACvG,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YAC5C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,iDAAiD;QACjD,8DAA8D;QAE9D,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAA;QAC7G,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,YAAY,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC,SAAS,EAAE,iBAAiB,CAAA;YAC1F,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,iBAAiB,CAAA;YAC/E,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;YAC7D,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/C,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBAC9B,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;gBAC1D,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}