@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,109 +0,0 @@
1
- import { describe, expect, it, spyOn } from 'bun:test';
2
- import { MockProvider } from '@polka-codes/core';
3
- import updateMemory from './updateMemory';
4
- describe('updateMemory', () => {
5
- describe('parameters', () => {
6
- it('should parse append operation with content', () => {
7
- const result = updateMemory.parameters.safeParse({
8
- operation: 'append',
9
- content: 'new data',
10
- });
11
- expect(result.success).toBe(true);
12
- });
13
- it('should fail to parse append operation without content', () => {
14
- const result = updateMemory.parameters.safeParse({
15
- operation: 'append',
16
- });
17
- expect(result.success).toBe(false);
18
- // Verify error mentions content
19
- if (result.error) {
20
- expect(result.error.issues[0].message).toMatch(/content/i);
21
- }
22
- });
23
- it('should parse replace operation with content', () => {
24
- const result = updateMemory.parameters.safeParse({
25
- operation: 'replace',
26
- content: 'new data',
27
- });
28
- expect(result.success).toBe(true);
29
- });
30
- it('should fail to parse replace operation without content', () => {
31
- const result = updateMemory.parameters.safeParse({
32
- operation: 'replace',
33
- });
34
- expect(result.success).toBe(false);
35
- // Verify error mentions content
36
- if (result.error) {
37
- expect(result.error.issues[0].message).toMatch(/content/i);
38
- }
39
- });
40
- it('should parse remove operation without content', () => {
41
- const result = updateMemory.parameters.safeParse({
42
- operation: 'remove',
43
- });
44
- expect(result.success).toBe(true);
45
- });
46
- it('should fail to parse remove operation with content', () => {
47
- const result = updateMemory.parameters.safeParse({
48
- operation: 'remove',
49
- content: 'some data',
50
- });
51
- expect(result.success).toBe(false);
52
- // Verify error mentions content should not be provided
53
- if (result.error) {
54
- expect(result.error.issues[0].message).toBeTruthy();
55
- }
56
- });
57
- });
58
- describe('handler', () => {
59
- it('should handle append operation', async () => {
60
- const mockProvider = new MockProvider();
61
- const spy = spyOn(mockProvider, 'updateMemory');
62
- const result = await updateMemory.handler(mockProvider, {
63
- operation: 'append',
64
- content: 'new data',
65
- });
66
- expect(result.success).toBe(true);
67
- expect(result.message.type).toBe('text');
68
- expect(result.message.value).toContain('appended');
69
- expect(spy).toHaveBeenCalledWith('append', undefined, 'new data');
70
- });
71
- it('should handle replace operation with topic', async () => {
72
- const mockProvider = new MockProvider();
73
- const spy = spyOn(mockProvider, 'updateMemory');
74
- const result = await updateMemory.handler(mockProvider, {
75
- operation: 'replace',
76
- topic: 'my-topic',
77
- content: 'new data',
78
- });
79
- expect(result.success).toBe(true);
80
- expect(result.message.type).toBe('text');
81
- expect(result.message.value).toContain('my-topic');
82
- expect(result.message.value).toContain('replaced');
83
- expect(spy).toHaveBeenCalledWith('replace', 'my-topic', 'new data');
84
- });
85
- it('should handle remove operation', async () => {
86
- const mockProvider = new MockProvider();
87
- const spy = spyOn(mockProvider, 'updateMemory');
88
- const result = await updateMemory.handler(mockProvider, {
89
- operation: 'remove',
90
- });
91
- expect(result.success).toBe(true);
92
- expect(result.message.type).toBe('text');
93
- expect(result.message.value).toContain('removed');
94
- expect(spy).toHaveBeenCalledWith('remove', undefined, undefined);
95
- });
96
- it('should return error if provider does not support memory', async () => {
97
- const mockProvider = new MockProvider();
98
- mockProvider.updateMemory = undefined;
99
- const result = await updateMemory.handler(mockProvider, {
100
- operation: 'append',
101
- content: 'new data',
102
- });
103
- expect(result.success).toBe(false);
104
- expect(result.message.type).toBe('error-text');
105
- expect(result.message.value).toContain('not supported');
106
- });
107
- });
108
- });
109
- //# sourceMappingURL=updateMemory.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateMemory.test.js","sourceRoot":"","sources":["../../src/tools/updateMemory.test.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { UpdateTodoItemInputSchema } from '@polka-codes/core';
2
- export const toolInfo = {
3
- name: 'updateTodoItem',
4
- description: 'Add or update a to-do item.',
5
- parameters: UpdateTodoItemInputSchema,
6
- };
7
- export const handler = async (provider, args) => {
8
- if (!provider.updateTodoItem) {
9
- return {
10
- success: false,
11
- message: {
12
- type: 'error-text',
13
- value: 'Not possible to update a to-do item.',
14
- },
15
- };
16
- }
17
- const input = toolInfo.parameters.parse(args);
18
- const result = await provider.updateTodoItem(input);
19
- return {
20
- success: true,
21
- message: {
22
- type: 'json',
23
- value: result,
24
- },
25
- };
26
- };
27
- export default {
28
- ...toolInfo,
29
- handler,
30
- };
31
- //# sourceMappingURL=updateTodoItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateTodoItem.js","sourceRoot":"","sources":["../../src/tools/updateTodoItem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,6BAA6B;IAC1C,UAAU,EAAE,yBAAyB;CACV,CAAA;AAE7B,MAAM,CAAC,MAAM,OAAO,GAA+C,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAC1F,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,sCAAsC;aAC9C;SACF,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;SACd;KACF,CAAA;AACH,CAAC,CAAA;AAED,eAAe;IACb,GAAG,QAAQ;IACX,OAAO;CACe,CAAA"}
@@ -1,178 +0,0 @@
1
- // generated by polka.codes
2
- // Utility functions for parsing and annotating unified diff format with line numbers
3
- /**
4
- * Parse a unified diff hunk header
5
- * Format: @@ -oldStart,oldCount +newStart,newCount @@ optional context
6
- */
7
- export function parseHunkHeader(header) {
8
- const match = header.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
9
- if (!match)
10
- return null;
11
- return {
12
- oldStart: parseInt(match[1], 10),
13
- oldCount: match[2] ? parseInt(match[2], 10) : 1,
14
- newStart: parseInt(match[3], 10),
15
- newCount: match[4] ? parseInt(match[4], 10) : 1,
16
- header,
17
- };
18
- }
19
- /**
20
- * Annotate a diff with line numbers for additions and deletions
21
- * Adds [Line N] for additions and [Line N removed] for deletions
22
- */
23
- export function annotateDiffWithLineNumbers(diff) {
24
- const lines = diff.split('\n');
25
- const annotatedLines = [];
26
- let currentNewLine = 0;
27
- let currentOldLine = 0;
28
- let inHunk = false;
29
- for (const line of lines) {
30
- // Check if this is a hunk header
31
- if (line.startsWith('@@')) {
32
- const hunk = parseHunkHeader(line);
33
- if (hunk) {
34
- currentOldLine = hunk.oldStart;
35
- currentNewLine = hunk.newStart;
36
- inHunk = true;
37
- }
38
- annotatedLines.push(line);
39
- continue;
40
- }
41
- // Skip file headers and other metadata
42
- if (line.startsWith('diff --git') || line.startsWith('index ') || line.startsWith('---') || line.startsWith('+++')) {
43
- annotatedLines.push(line);
44
- inHunk = false;
45
- continue;
46
- }
47
- // Only annotate lines within hunks
48
- if (!inHunk) {
49
- annotatedLines.push(line);
50
- continue;
51
- }
52
- // Handle diff lines
53
- if (line.startsWith('+') && !line.startsWith('+++')) {
54
- // Addition - annotate with new file line number
55
- annotatedLines.push(`${line} [Line ${currentNewLine}]`);
56
- currentNewLine++;
57
- }
58
- else if (line.startsWith('-') && !line.startsWith('---')) {
59
- // Deletion - annotate with old file line number
60
- annotatedLines.push(`${line} [Line ${currentOldLine} removed]`);
61
- currentOldLine++;
62
- }
63
- else if (line.startsWith(' ')) {
64
- // Context line - both line numbers advance
65
- annotatedLines.push(line);
66
- currentOldLine++;
67
- currentNewLine++;
68
- }
69
- else {
70
- // Other lines (shouldn't happen in a proper diff, but handle gracefully)
71
- annotatedLines.push(line);
72
- }
73
- }
74
- return annotatedLines.join('\n');
75
- }
76
- /**
77
- * Extract line ranges from a diff for a specific file
78
- * Returns an array of line ranges that were modified
79
- */
80
- export function extractModifiedLineRanges(diff, filePath) {
81
- const lines = diff.split('\n');
82
- const ranges = [];
83
- let currentFile = '';
84
- let currentNewLine = 0;
85
- let currentOldLine = 0;
86
- let inHunk = false;
87
- let addedLines = [];
88
- let removedLines = [];
89
- for (const line of lines) {
90
- // Track current file
91
- if (line.startsWith('diff --git')) {
92
- // Extract filename from diff header
93
- const match = line.match(/diff --git a\/(.*?) b\//);
94
- if (match) {
95
- currentFile = match[1];
96
- }
97
- // Reset for new file
98
- addedLines = [];
99
- removedLines = [];
100
- continue;
101
- }
102
- // Skip if we're looking for a specific file and this isn't it
103
- if (filePath && currentFile !== filePath) {
104
- continue;
105
- }
106
- // Check if this is a hunk header
107
- if (line.startsWith('@@')) {
108
- // Process any accumulated changes from previous hunk
109
- if (addedLines.length > 0 || removedLines.length > 0) {
110
- processAccumulatedChanges(addedLines, removedLines, ranges);
111
- addedLines = [];
112
- removedLines = [];
113
- }
114
- const hunk = parseHunkHeader(line);
115
- if (hunk) {
116
- currentOldLine = hunk.oldStart;
117
- currentNewLine = hunk.newStart;
118
- inHunk = true;
119
- }
120
- continue;
121
- }
122
- if (!inHunk)
123
- continue;
124
- // Track modifications
125
- if (line.startsWith('+') && !line.startsWith('+++')) {
126
- addedLines.push(currentNewLine);
127
- currentNewLine++;
128
- }
129
- else if (line.startsWith('-') && !line.startsWith('---')) {
130
- removedLines.push(currentOldLine);
131
- currentOldLine++;
132
- }
133
- else if (line.startsWith(' ')) {
134
- // Context line - process any accumulated changes
135
- if (addedLines.length > 0 || removedLines.length > 0) {
136
- processAccumulatedChanges(addedLines, removedLines, ranges);
137
- addedLines = [];
138
- removedLines = [];
139
- }
140
- currentOldLine++;
141
- currentNewLine++;
142
- }
143
- }
144
- // Process any remaining accumulated changes
145
- if (addedLines.length > 0 || removedLines.length > 0) {
146
- processAccumulatedChanges(addedLines, removedLines, ranges);
147
- }
148
- return ranges;
149
- }
150
- function processAccumulatedChanges(addedLines, removedLines, ranges) {
151
- if (addedLines.length > 0 && removedLines.length > 0) {
152
- // Modified lines
153
- if (addedLines.length > 0) {
154
- ranges.push({
155
- start: Math.min(...addedLines),
156
- end: Math.max(...addedLines),
157
- type: 'modified',
158
- });
159
- }
160
- }
161
- else if (addedLines.length > 0) {
162
- // Only additions
163
- ranges.push({
164
- start: Math.min(...addedLines),
165
- end: Math.max(...addedLines),
166
- type: 'added',
167
- });
168
- }
169
- else if (removedLines.length > 0) {
170
- // Only removals
171
- ranges.push({
172
- start: Math.min(...removedLines),
173
- end: Math.max(...removedLines),
174
- type: 'removed',
175
- });
176
- }
177
- }
178
- //# sourceMappingURL=diffLineNumbers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diffLineNumbers.js","sourceRoot":"","sources":["../../../src/tools/utils/diffLineNumbers.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- // Cache control configuration
2
- const CACHEABLE_MODELS = ['sonnet', 'opus', 'haiku', 'gemini'];
3
- /**
4
- * Checks if a model supports caching based on model ID
5
- */
6
- function isCacheableModel(modelId) {
7
- return CACHEABLE_MODELS.some((model) => modelId.includes(model));
8
- }
9
- /**
10
- * Determines the provider key for cache control based on provider string
11
- */
12
- function getProviderKey(provider) {
13
- if (provider === 'openrouter') {
14
- return 'openrouter';
15
- }
16
- if (provider.includes('anthropic')) {
17
- return 'anthropic';
18
- }
19
- return undefined;
20
- }
21
- /**
22
- * Applies cache control to messages for Anthropic and OpenRouter providers.
23
- * Adds ephemeral cache control to the last 2 user messages and system message.
24
- */
25
- export function applyCacheControl(messages, provider, modelId) {
26
- const providerKey = getProviderKey(provider);
27
- if (!providerKey || !isCacheableModel(modelId)) {
28
- return messages;
29
- }
30
- const providerOptions = { [providerKey]: { cacheControl: { type: 'ephemeral' } } };
31
- const newMessages = messages.slice();
32
- let userMessagesToUpdate = 2;
33
- // Iterate backwards to find the system message and the last two user messages
34
- for (let i = newMessages.length - 1; i >= 0; i--) {
35
- const message = newMessages[i];
36
- const isUser = message.role === 'user';
37
- const isSystem = message.role === 'system';
38
- if ((isUser && userMessagesToUpdate > 0) || isSystem) {
39
- newMessages[i] = {
40
- ...message,
41
- providerOptions: {
42
- ...message.providerOptions,
43
- [providerKey]: {
44
- ...(message.providerOptions?.[providerKey] ?? {}),
45
- ...providerOptions[providerKey],
46
- },
47
- },
48
- };
49
- if (isUser) {
50
- userMessagesToUpdate--;
51
- }
52
- else if (isSystem) {
53
- break; // Stop after updating the last system message
54
- }
55
- }
56
- }
57
- return newMessages;
58
- }
59
- //# sourceMappingURL=cacheControl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheControl.js","sourceRoot":"","sources":["../../src/utils/cacheControl.ts"],"names":[],"mappings":"AAEA,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;AAE9D;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AAClE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAwB,EAAE,QAAgB,EAAE,OAAe;IAC3F,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAE5C,IAAI,CAAC,WAAW,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IAElF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;IACpC,IAAI,oBAAoB,GAAG,CAAC,CAAA;IAE5B,8EAA8E;IAC9E,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAA;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAA;QAE1C,IAAI,CAAC,MAAM,IAAI,oBAAoB,GAAG,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;YACrD,WAAW,CAAC,CAAC,CAAC,GAAG;gBACf,GAAG,OAAO;gBACV,eAAe,EAAE;oBACf,GAAG,OAAO,CAAC,eAAe;oBAC1B,CAAC,WAAW,CAAC,EAAE;wBACb,GAAG,CAAE,OAAO,CAAC,eAAe,EAAE,CAAC,WAAW,CAAyB,IAAI,EAAE,CAAC;wBAC1E,GAAG,eAAe,CAAC,WAAW,CAAC;qBAChC;iBACF;aACF,CAAA;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,oBAAoB,EAAE,CAAA;YACxB,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,MAAK,CAAC,8CAA8C;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -1,128 +0,0 @@
1
- import { describe, expect, test } from 'bun:test';
2
- import { applyCacheControl } from './cacheControl';
3
- describe('applyCacheControl', () => {
4
- const baseMessages = [
5
- { role: 'system', content: 'System message' },
6
- { role: 'user', content: 'User message 1' },
7
- { role: 'assistant', content: 'Assistant message 1' },
8
- { role: 'user', content: 'User message 2' },
9
- { role: 'assistant', content: 'Assistant message 2' },
10
- { role: 'user', content: 'User message 3' },
11
- ];
12
- test('should not apply cache control for non-cacheable models', () => {
13
- const messages = applyCacheControl(baseMessages, 'anthropic', 'claude-2');
14
- expect(messages).toEqual(baseMessages);
15
- });
16
- test('should not apply cache control for unsupported providers', () => {
17
- const messages = applyCacheControl(baseMessages, 'openai', 'sonnet');
18
- expect(messages).toEqual(baseMessages);
19
- });
20
- test('should apply cache control for anthropic provider with a supported model', () => {
21
- const messages = applyCacheControl(baseMessages, 'anthropic', 'claude-3-sonnet-20240229');
22
- expect(messages).not.toEqual(baseMessages);
23
- // System message should have cache control
24
- expect(messages[0].providerOptions?.anthropic).toEqual({
25
- cacheControl: { type: 'ephemeral' },
26
- });
27
- // Last two user messages should have cache control
28
- expect(messages[3].providerOptions?.anthropic).toEqual({
29
- cacheControl: { type: 'ephemeral' },
30
- });
31
- expect(messages[5].providerOptions?.anthropic).toEqual({
32
- cacheControl: { type: 'ephemeral' },
33
- });
34
- // Other messages should not have cache control
35
- expect(messages[1].providerOptions).toBeUndefined();
36
- expect(messages[2].providerOptions).toBeUndefined();
37
- expect(messages[4].providerOptions).toBeUndefined();
38
- });
39
- test('should apply cache control for openrouter provider with a supported model', () => {
40
- const messages = applyCacheControl(baseMessages, 'openrouter', 'anthropic/claude-3-opus');
41
- expect(messages).not.toEqual(baseMessages);
42
- // System message should have cache control
43
- expect(messages[0].providerOptions?.openrouter).toEqual({
44
- cacheControl: { type: 'ephemeral' },
45
- });
46
- // Last two user messages should have cache control
47
- expect(messages[3].providerOptions?.openrouter).toEqual({
48
- cacheControl: { type: 'ephemeral' },
49
- });
50
- expect(messages[5].providerOptions?.openrouter).toEqual({
51
- cacheControl: { type: 'ephemeral' },
52
- });
53
- });
54
- test('should apply cache control for gemini models', () => {
55
- const messages = applyCacheControl(baseMessages, 'openrouter', 'google/gemini-pro');
56
- expect(messages).not.toEqual(baseMessages);
57
- // System message should have cache control
58
- expect(messages[0].providerOptions?.openrouter).toEqual({
59
- cacheControl: { type: 'ephemeral' },
60
- });
61
- // Last two user messages should have cache control
62
- expect(messages[3].providerOptions?.openrouter).toBeDefined();
63
- expect(messages[5].providerOptions?.openrouter).toBeDefined();
64
- });
65
- test('should handle fewer than two user messages', () => {
66
- const shortMessages = [
67
- { role: 'system', content: 'System message' },
68
- { role: 'user', content: 'User message 1' },
69
- ];
70
- const messages = applyCacheControl(shortMessages, 'anthropic', 'claude-3-sonnet-20240229');
71
- expect(messages).not.toEqual(shortMessages);
72
- // System message should have cache control
73
- expect(messages[0].providerOptions?.anthropic).toEqual({
74
- cacheControl: { type: 'ephemeral' },
75
- });
76
- // Only user message should have cache control
77
- expect(messages[1].providerOptions?.anthropic).toEqual({
78
- cacheControl: { type: 'ephemeral' },
79
- });
80
- });
81
- test('should work correctly without a system message', () => {
82
- const noSystemMessages = [
83
- { role: 'user', content: 'User message 1' },
84
- { role: 'assistant', content: 'Assistant message 1' },
85
- { role: 'user', content: 'User message 2' },
86
- { role: 'user', content: 'User message 3' },
87
- ];
88
- const messages = applyCacheControl(noSystemMessages, 'anthropic', 'claude-3-sonnet-20240229');
89
- expect(messages).not.toEqual(noSystemMessages);
90
- // Last two user messages should have cache control
91
- expect(messages[2].providerOptions?.anthropic).toEqual({
92
- cacheControl: { type: 'ephemeral' },
93
- });
94
- expect(messages[3].providerOptions?.anthropic).toEqual({
95
- cacheControl: { type: 'ephemeral' },
96
- });
97
- // First user message should not have cache control
98
- expect(messages[0].providerOptions).toBeUndefined();
99
- });
100
- test('should merge with existing providerOptions', () => {
101
- const messagesWithProviderOptions = [
102
- { role: 'system', content: 'System message' },
103
- { role: 'user', content: 'User message 1' },
104
- { role: 'assistant', content: 'Assistant message 1' },
105
- {
106
- role: 'user',
107
- content: 'User message 2',
108
- providerOptions: { anthropic: { someOtherOption: 'value' } },
109
- },
110
- { role: 'user', content: 'User message 3' },
111
- ];
112
- const messages = applyCacheControl(messagesWithProviderOptions, 'anthropic', 'claude-3-sonnet-20240229');
113
- expect(messages).not.toEqual(messagesWithProviderOptions);
114
- // Should preserve existing option and add cache control
115
- expect(messages[3].providerOptions?.anthropic).toEqual({
116
- someOtherOption: 'value',
117
- cacheControl: { type: 'ephemeral' },
118
- });
119
- // System message should have cache control
120
- expect(messages[0].providerOptions?.anthropic).toHaveProperty('cacheControl');
121
- });
122
- test('should not modify original messages array', () => {
123
- const originalMessages = [...baseMessages];
124
- applyCacheControl(baseMessages, 'anthropic', 'claude-3-sonnet-20240229');
125
- expect(baseMessages).toEqual(originalMessages);
126
- });
127
- });
128
- //# sourceMappingURL=cacheControl.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheControl.test.js","sourceRoot":"","sources":["../../src/utils/cacheControl.test.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- /**
2
- * Shared utilities for command-line command handlers
3
- */
4
- import { createLogger } from '../logger';
5
- /**
6
- * Get global options from the command hierarchy
7
- * Handles both top-level commands and subcommands
8
- *
9
- * @param command - The commander Command instance
10
- * @returns Global options object
11
- *
12
- * @example
13
- * ```ts
14
- * export async function runCommand(options, command: Command) {
15
- * const globalOpts = getGlobalOptions(command)
16
- * const { verbose, yes } = globalOpts
17
- * }
18
- * ```
19
- */
20
- export function getGlobalOptions(command) {
21
- return (command.parent ?? command).opts();
22
- }
23
- /**
24
- * Get base workflow options with standard defaults
25
- * This provides consistent interactive mode handling across all commands
26
- *
27
- * @param command - The commander Command instance
28
- * @returns Workflow options with interactive mode set based on --yes flag
29
- *
30
- * @example
31
- * ```ts
32
- * const workflowOpts = getBaseWorkflowOptions(command)
33
- * await code({
34
- * task: '...',
35
- * ...workflowOpts
36
- * })
37
- * ```
38
- */
39
- export function getBaseWorkflowOptions(command) {
40
- const globalOpts = getGlobalOptions(command);
41
- const verbose = globalOpts.silent ? -1 : (globalOpts.verbose ?? 0);
42
- // Create logger
43
- const logger = createLogger({ verbose });
44
- return {
45
- interactive: !globalOpts.yes,
46
- ...globalOpts,
47
- logger,
48
- };
49
- }
50
- //# sourceMappingURL=command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/utils/command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,EAAgB,CAAA;AACzD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAA;IAElE,gBAAgB;IAChB,MAAM,MAAM,GAAW,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAEhD,OAAO;QACL,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG;QAC5B,GAAG,UAAU;QACb,MAAM;KACP,CAAA;AACH,CAAC"}