@polka-codes/cli 0.10.23 → 0.10.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +3 -3
  3. package/dist/ApiProviderConfig.js +0 -57
  4. package/dist/ApiProviderConfig.js.map +0 -1
  5. package/dist/ApiProviderConfig.test.js +0 -278
  6. package/dist/ApiProviderConfig.test.js.map +0 -1
  7. package/dist/agent/advanced-discovery.js +0 -604
  8. package/dist/agent/advanced-discovery.js.map +0 -1
  9. package/dist/agent/config.js +0 -139
  10. package/dist/agent/config.js.map +0 -1
  11. package/dist/agent/config.test.js +0 -140
  12. package/dist/agent/config.test.js.map +0 -1
  13. package/dist/agent/constants.js +0 -172
  14. package/dist/agent/constants.js.map +0 -1
  15. package/dist/agent/constants.test.js +0 -132
  16. package/dist/agent/constants.test.js.map +0 -1
  17. package/dist/agent/debug-logger.js +0 -281
  18. package/dist/agent/debug-logger.js.map +0 -1
  19. package/dist/agent/debug-logger.test.js +0 -294
  20. package/dist/agent/debug-logger.test.js.map +0 -1
  21. package/dist/agent/error-handling.js +0 -114
  22. package/dist/agent/error-handling.js.map +0 -1
  23. package/dist/agent/error-handling.test.js +0 -191
  24. package/dist/agent/error-handling.test.js.map +0 -1
  25. package/dist/agent/errors.js +0 -301
  26. package/dist/agent/errors.js.map +0 -1
  27. package/dist/agent/executor.js +0 -206
  28. package/dist/agent/executor.js.map +0 -1
  29. package/dist/agent/executor.test.js +0 -228
  30. package/dist/agent/executor.test.js.map +0 -1
  31. package/dist/agent/goal-decomposer.js +0 -281
  32. package/dist/agent/goal-decomposer.js.map +0 -1
  33. package/dist/agent/goal-decomposer.test.js +0 -225
  34. package/dist/agent/goal-decomposer.test.js.map +0 -1
  35. package/dist/agent/health-monitor.js +0 -89
  36. package/dist/agent/health-monitor.js.map +0 -1
  37. package/dist/agent/improvement-loop.js +0 -177
  38. package/dist/agent/improvement-loop.js.map +0 -1
  39. package/dist/agent/index.js +0 -38
  40. package/dist/agent/index.js.map +0 -1
  41. package/dist/agent/metrics.js +0 -158
  42. package/dist/agent/metrics.js.map +0 -1
  43. package/dist/agent/metrics.test.js +0 -311
  44. package/dist/agent/metrics.test.js.map +0 -1
  45. package/dist/agent/orchestrator.js +0 -438
  46. package/dist/agent/orchestrator.js.map +0 -1
  47. package/dist/agent/planner.js +0 -199
  48. package/dist/agent/planner.js.map +0 -1
  49. package/dist/agent/planner.test.js +0 -135
  50. package/dist/agent/planner.test.js.map +0 -1
  51. package/dist/agent/progress.js +0 -298
  52. package/dist/agent/progress.js.map +0 -1
  53. package/dist/agent/progress.test.js +0 -255
  54. package/dist/agent/progress.test.js.map +0 -1
  55. package/dist/agent/resource-monitor.js +0 -114
  56. package/dist/agent/resource-monitor.js.map +0 -1
  57. package/dist/agent/safety/approval.js +0 -178
  58. package/dist/agent/safety/approval.js.map +0 -1
  59. package/dist/agent/safety/approval.test.js +0 -142
  60. package/dist/agent/safety/approval.test.js.map +0 -1
  61. package/dist/agent/safety/checks.js +0 -152
  62. package/dist/agent/safety/checks.js.map +0 -1
  63. package/dist/agent/safety/checks.test.js +0 -89
  64. package/dist/agent/safety/checks.test.js.map +0 -1
  65. package/dist/agent/safety/interrupt.js +0 -92
  66. package/dist/agent/safety/interrupt.js.map +0 -1
  67. package/dist/agent/safety/interrupt.test.js +0 -53
  68. package/dist/agent/safety/interrupt.test.js.map +0 -1
  69. package/dist/agent/session.js +0 -117
  70. package/dist/agent/session.js.map +0 -1
  71. package/dist/agent/session.test.js +0 -213
  72. package/dist/agent/session.test.js.map +0 -1
  73. package/dist/agent/state-manager.js +0 -287
  74. package/dist/agent/state-manager.js.map +0 -1
  75. package/dist/agent/task-discovery.js +0 -433
  76. package/dist/agent/task-discovery.js.map +0 -1
  77. package/dist/agent/task-discovery.test.js +0 -40
  78. package/dist/agent/task-discovery.test.js.map +0 -1
  79. package/dist/agent/task-history.js +0 -128
  80. package/dist/agent/task-history.js.map +0 -1
  81. package/dist/agent/task-prioritizer.js +0 -286
  82. package/dist/agent/task-prioritizer.js.map +0 -1
  83. package/dist/agent/test-fixtures.js +0 -112
  84. package/dist/agent/test-fixtures.js.map +0 -1
  85. package/dist/agent/types.js +0 -15
  86. package/dist/agent/types.js.map +0 -1
  87. package/dist/agent/workflow-adapter.js +0 -219
  88. package/dist/agent/workflow-adapter.js.map +0 -1
  89. package/dist/agent/workflow-adapter.test.js +0 -11
  90. package/dist/agent/workflow-adapter.test.js.map +0 -1
  91. package/dist/agent/working-dir-discovery.js +0 -54
  92. package/dist/agent/working-dir-discovery.js.map +0 -1
  93. package/dist/agent/working-space.js +0 -484
  94. package/dist/agent/working-space.js.map +0 -1
  95. package/dist/agent/working-space.test.js +0 -436
  96. package/dist/agent/working-space.test.js.map +0 -1
  97. package/dist/api.js +0 -279
  98. package/dist/api.js.map +0 -1
  99. package/dist/builtin-commands.js +0 -20
  100. package/dist/builtin-commands.js.map +0 -1
  101. package/dist/commandSummarizer.js +0 -96
  102. package/dist/commandSummarizer.js.map +0 -1
  103. package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
  104. package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
  105. package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
  106. package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
  107. package/dist/commands/agent.js +0 -218
  108. package/dist/commands/agent.js.map +0 -1
  109. package/dist/commands/code.js +0 -102
  110. package/dist/commands/code.js.map +0 -1
  111. package/dist/commands/command.constants.js +0 -13
  112. package/dist/commands/command.constants.js.map +0 -1
  113. package/dist/commands/commit.js +0 -17
  114. package/dist/commands/commit.js.map +0 -1
  115. package/dist/commands/fix.js +0 -17
  116. package/dist/commands/fix.js.map +0 -1
  117. package/dist/commands/init.js +0 -501
  118. package/dist/commands/init.js.map +0 -1
  119. package/dist/commands/mcp-server.js +0 -122
  120. package/dist/commands/mcp-server.js.map +0 -1
  121. package/dist/commands/memory.js +0 -410
  122. package/dist/commands/memory.js.map +0 -1
  123. package/dist/commands/memory.test.js +0 -453
  124. package/dist/commands/memory.test.js.map +0 -1
  125. package/dist/commands/meta.js +0 -142
  126. package/dist/commands/meta.js.map +0 -1
  127. package/dist/commands/plan.js +0 -39
  128. package/dist/commands/plan.js.map +0 -1
  129. package/dist/commands/pr.js +0 -14
  130. package/dist/commands/pr.js.map +0 -1
  131. package/dist/commands/review-json.test.js +0 -33
  132. package/dist/commands/review-json.test.js.map +0 -1
  133. package/dist/commands/review.js +0 -137
  134. package/dist/commands/review.js.map +0 -1
  135. package/dist/commands/review.usage.test.js +0 -41
  136. package/dist/commands/review.usage.test.js.map +0 -1
  137. package/dist/commands/run.js +0 -107
  138. package/dist/commands/run.js.map +0 -1
  139. package/dist/commands/skills.js +0 -175
  140. package/dist/commands/skills.js.map +0 -1
  141. package/dist/commands/task.js +0 -34
  142. package/dist/commands/task.js.map +0 -1
  143. package/dist/commands/workflow.js +0 -117
  144. package/dist/commands/workflow.js.map +0 -1
  145. package/dist/configPrompt.js +0 -39
  146. package/dist/configPrompt.js.map +0 -1
  147. package/dist/env.js +0 -22
  148. package/dist/env.js.map +0 -1
  149. package/dist/errors.js +0 -132
  150. package/dist/errors.js.map +0 -1
  151. package/dist/errors.test.js +0 -21
  152. package/dist/errors.test.js.map +0 -1
  153. package/dist/file-attachments.js +0 -77
  154. package/dist/file-attachments.js.map +0 -1
  155. package/dist/file-attachments.test.js +0 -214
  156. package/dist/file-attachments.test.js.map +0 -1
  157. package/dist/getModel.js +0 -229
  158. package/dist/getModel.js.map +0 -1
  159. package/dist/getModel.test.js +0 -67
  160. package/dist/getModel.test.js.map +0 -1
  161. package/dist/getProviderOptions.js +0 -58
  162. package/dist/getProviderOptions.js.map +0 -1
  163. package/dist/git-operations.js +0 -363
  164. package/dist/git-operations.js.map +0 -1
  165. package/dist/git-operations.test.js +0 -81
  166. package/dist/git-operations.test.js.map +0 -1
  167. package/dist/index.js.map +0 -1
  168. package/dist/logger.js +0 -41
  169. package/dist/logger.js.map +0 -1
  170. package/dist/mcp/client.js +0 -11
  171. package/dist/mcp/client.js.map +0 -1
  172. package/dist/mcp/error-scenarios.test.js +0 -206
  173. package/dist/mcp/error-scenarios.test.js.map +0 -1
  174. package/dist/mcp/errors.js +0 -63
  175. package/dist/mcp/errors.js.map +0 -1
  176. package/dist/mcp/index.js +0 -9
  177. package/dist/mcp/index.js.map +0 -1
  178. package/dist/mcp/manager.js +0 -231
  179. package/dist/mcp/manager.js.map +0 -1
  180. package/dist/mcp/manager.test.js +0 -40
  181. package/dist/mcp/manager.test.js.map +0 -1
  182. package/dist/mcp/sdk-client.js +0 -166
  183. package/dist/mcp/sdk-client.js.map +0 -1
  184. package/dist/mcp/shared-types.js +0 -3
  185. package/dist/mcp/shared-types.js.map +0 -1
  186. package/dist/mcp/tools-integration.test.js +0 -198
  187. package/dist/mcp/tools-integration.test.js.map +0 -1
  188. package/dist/mcp/tools.js +0 -60
  189. package/dist/mcp/tools.js.map +0 -1
  190. package/dist/mcp/transport.js +0 -257
  191. package/dist/mcp/transport.js.map +0 -1
  192. package/dist/mcp/types.js +0 -3
  193. package/dist/mcp/types.js.map +0 -1
  194. package/dist/mcp-server/index.js +0 -5
  195. package/dist/mcp-server/index.js.map +0 -1
  196. package/dist/mcp-server/plan-formatting.test.js +0 -74
  197. package/dist/mcp-server/plan-formatting.test.js.map +0 -1
  198. package/dist/mcp-server/sdk-server.js +0 -102
  199. package/dist/mcp-server/sdk-server.js.map +0 -1
  200. package/dist/mcp-server/sdk-server.test.js +0 -363
  201. package/dist/mcp-server/sdk-server.test.js.map +0 -1
  202. package/dist/mcp-server/tools.js +0 -785
  203. package/dist/mcp-server/tools.js.map +0 -1
  204. package/dist/mcp-server/types.js +0 -3
  205. package/dist/mcp-server/types.js.map +0 -1
  206. package/dist/options.js +0 -85
  207. package/dist/options.js.map +0 -1
  208. package/dist/options.test.js +0 -177
  209. package/dist/options.test.js.map +0 -1
  210. package/dist/prices.js +0 -61
  211. package/dist/prices.js.map +0 -1
  212. package/dist/prices.test.js +0 -148
  213. package/dist/prices.test.js.map +0 -1
  214. package/dist/runWorkflow.js +0 -313
  215. package/dist/runWorkflow.js.map +0 -1
  216. package/dist/script/__tests__/execution.integration.test.js +0 -274
  217. package/dist/script/__tests__/execution.integration.test.js.map +0 -1
  218. package/dist/script/__tests__/runner.test.js +0 -176
  219. package/dist/script/__tests__/runner.test.js.map +0 -1
  220. package/dist/script/__tests__/validator.test.js +0 -180
  221. package/dist/script/__tests__/validator.test.js.map +0 -1
  222. package/dist/script/executor.js +0 -127
  223. package/dist/script/executor.js.map +0 -1
  224. package/dist/script/index.js +0 -4
  225. package/dist/script/index.js.map +0 -1
  226. package/dist/script/runner.js +0 -258
  227. package/dist/script/runner.js.map +0 -1
  228. package/dist/skillIntegration.js +0 -46
  229. package/dist/skillIntegration.js.map +0 -1
  230. package/dist/skillIntegration.test.js +0 -128
  231. package/dist/skillIntegration.test.js.map +0 -1
  232. package/dist/test/utils.js +0 -200
  233. package/dist/test/utils.js.map +0 -1
  234. package/dist/test/workflow-fixtures.js +0 -120
  235. package/dist/test/workflow-fixtures.js.map +0 -1
  236. package/dist/tool-implementations.js +0 -521
  237. package/dist/tool-implementations.js.map +0 -1
  238. package/dist/tool-implementations.skill-tools.test.js +0 -106
  239. package/dist/tool-implementations.skill-tools.test.js.map +0 -1
  240. package/dist/tools/getTodoItem.js +0 -33
  241. package/dist/tools/getTodoItem.js.map +0 -1
  242. package/dist/tools/gitDiff.js +0 -108
  243. package/dist/tools/gitDiff.js.map +0 -1
  244. package/dist/tools/index.js +0 -8
  245. package/dist/tools/index.js.map +0 -1
  246. package/dist/tools/listMemoryTopics.js +0 -24
  247. package/dist/tools/listMemoryTopics.js.map +0 -1
  248. package/dist/tools/listTodoItems.js +0 -35
  249. package/dist/tools/listTodoItems.js.map +0 -1
  250. package/dist/tools/listTodoItems.test.js +0 -89
  251. package/dist/tools/listTodoItems.test.js.map +0 -1
  252. package/dist/tools/readMemory.js +0 -33
  253. package/dist/tools/readMemory.js.map +0 -1
  254. package/dist/tools/updateMemory.js +0 -62
  255. package/dist/tools/updateMemory.js.map +0 -1
  256. package/dist/tools/updateMemory.test.js +0 -109
  257. package/dist/tools/updateMemory.test.js.map +0 -1
  258. package/dist/tools/updateTodoItem.js +0 -31
  259. package/dist/tools/updateTodoItem.js.map +0 -1
  260. package/dist/tools/utils/diffLineNumbers.js +0 -178
  261. package/dist/tools/utils/diffLineNumbers.js.map +0 -1
  262. package/dist/utils/cacheControl.js +0 -59
  263. package/dist/utils/cacheControl.js.map +0 -1
  264. package/dist/utils/cacheControl.test.js +0 -128
  265. package/dist/utils/cacheControl.test.js.map +0 -1
  266. package/dist/utils/command.js +0 -50
  267. package/dist/utils/command.js.map +0 -1
  268. package/dist/utils/shell.js +0 -56
  269. package/dist/utils/shell.js.map +0 -1
  270. package/dist/utils/userInput.js +0 -47
  271. package/dist/utils/userInput.js.map +0 -1
  272. package/dist/workflow-tools.js +0 -21
  273. package/dist/workflow-tools.js.map +0 -1
  274. package/dist/workflows/agent-builder.js +0 -90
  275. package/dist/workflows/agent-builder.js.map +0 -1
  276. package/dist/workflows/agent-builder.test.js +0 -115
  277. package/dist/workflows/agent-builder.test.js.map +0 -1
  278. package/dist/workflows/code.workflow.js +0 -145
  279. package/dist/workflows/code.workflow.js.map +0 -1
  280. package/dist/workflows/commit.workflow.js +0 -111
  281. package/dist/workflows/commit.workflow.js.map +0 -1
  282. package/dist/workflows/commit.workflow.test.js +0 -141
  283. package/dist/workflows/commit.workflow.test.js.map +0 -1
  284. package/dist/workflows/fix.workflow.js +0 -172
  285. package/dist/workflows/fix.workflow.js.map +0 -1
  286. package/dist/workflows/fix.workflow.test.js +0 -137
  287. package/dist/workflows/fix.workflow.test.js.map +0 -1
  288. package/dist/workflows/git-file-tools.js +0 -408
  289. package/dist/workflows/git-file-tools.js.map +0 -1
  290. package/dist/workflows/index.js +0 -12
  291. package/dist/workflows/index.js.map +0 -1
  292. package/dist/workflows/init-interactive.workflow.js +0 -198
  293. package/dist/workflows/init-interactive.workflow.js.map +0 -1
  294. package/dist/workflows/init.workflow.js +0 -41
  295. package/dist/workflows/init.workflow.js.map +0 -1
  296. package/dist/workflows/meta.workflow.js +0 -107
  297. package/dist/workflows/meta.workflow.js.map +0 -1
  298. package/dist/workflows/plan.workflow.js +0 -275
  299. package/dist/workflows/plan.workflow.js.map +0 -1
  300. package/dist/workflows/plan.workflow.test.js +0 -419
  301. package/dist/workflows/plan.workflow.test.js.map +0 -1
  302. package/dist/workflows/pr.workflow.js +0 -54
  303. package/dist/workflows/pr.workflow.js.map +0 -1
  304. package/dist/workflows/pr.workflow.test.js +0 -98
  305. package/dist/workflows/pr.workflow.test.js.map +0 -1
  306. package/dist/workflows/prompts/coder.js +0 -85
  307. package/dist/workflows/prompts/coder.js.map +0 -1
  308. package/dist/workflows/prompts/commit.js +0 -16
  309. package/dist/workflows/prompts/commit.js.map +0 -1
  310. package/dist/workflows/prompts/fix.js +0 -44
  311. package/dist/workflows/prompts/fix.js.map +0 -1
  312. package/dist/workflows/prompts/index.js +0 -10
  313. package/dist/workflows/prompts/index.js.map +0 -1
  314. package/dist/workflows/prompts/init.js +0 -48
  315. package/dist/workflows/prompts/init.js.map +0 -1
  316. package/dist/workflows/prompts/meta.js +0 -17
  317. package/dist/workflows/prompts/meta.js.map +0 -1
  318. package/dist/workflows/prompts/plan.js +0 -212
  319. package/dist/workflows/prompts/plan.js.map +0 -1
  320. package/dist/workflows/prompts/pr.js +0 -15
  321. package/dist/workflows/prompts/pr.js.map +0 -1
  322. package/dist/workflows/prompts/review.js +0 -145
  323. package/dist/workflows/prompts/review.js.map +0 -1
  324. package/dist/workflows/prompts/shared.js +0 -93
  325. package/dist/workflows/prompts/shared.js.map +0 -1
  326. package/dist/workflows/review.workflow.js +0 -357
  327. package/dist/workflows/review.workflow.js.map +0 -1
  328. package/dist/workflows/task.workflow.js +0 -47
  329. package/dist/workflows/task.workflow.js.map +0 -1
  330. package/dist/workflows/testing/helper.js +0 -41
  331. package/dist/workflows/testing/helper.js.map +0 -1
  332. package/dist/workflows/workflow.utils.js +0 -351
  333. package/dist/workflows/workflow.utils.js.map +0 -1
  334. package/dist/workflows/workflow.utils.test.js +0 -45
  335. package/dist/workflows/workflow.utils.test.js.map +0 -1
@@ -1,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"}