@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,206 +0,0 @@
1
- // Error scenario tests for MCP tools
2
- // generated by polka.codes
3
- import { describe, expect, test } from 'bun:test';
4
- import { z } from 'zod';
5
- import { adaptMcpSchemaToZod } from './tools';
6
- describe('MCP Tools - Error Scenarios', () => {
7
- describe('adaptMcpSchemaToZod - Error Handling', () => {
8
- test('should handle malformed schemas gracefully', () => {
9
- const malformedSchema = {
10
- type: 'invalid-type',
11
- properties: null,
12
- };
13
- const result = adaptMcpSchemaToZod(malformedSchema);
14
- // Should still return a valid Zod schema
15
- expect(result).toBeInstanceOf(z.ZodType);
16
- // Should accept various inputs without throwing
17
- const validResult = result.safeParse({ any: 'input' });
18
- expect(validResult.success).toBe(true);
19
- });
20
- test('should handle circular references', () => {
21
- const circular = { type: 'object' };
22
- circular.self = circular;
23
- const result = adaptMcpSchemaToZod(circular);
24
- // Should not throw and should return a valid Zod schema
25
- expect(result).toBeInstanceOf(z.ZodType);
26
- });
27
- test('should handle arrays as schemas', () => {
28
- const arraySchema = [{ type: 'string' }, { type: 'number' }];
29
- const result = adaptMcpSchemaToZod(arraySchema);
30
- expect(result).toBeInstanceOf(z.ZodType);
31
- });
32
- test('should handle deeply nested objects', () => {
33
- const deepSchema = {
34
- level1: {
35
- level2: {
36
- level3: {
37
- level4: {
38
- type: 'string',
39
- },
40
- },
41
- },
42
- },
43
- };
44
- const result = adaptMcpSchemaToZod(deepSchema);
45
- expect(result).toBeInstanceOf(z.ZodType);
46
- });
47
- test('should handle schemas with special characters in keys', () => {
48
- const specialKeySchema = {
49
- 'key-with-dash': { type: 'string' },
50
- key_with_underscore: { type: 'number' },
51
- 'key.with.dots': { type: 'boolean' },
52
- 'key with spaces': { type: 'string' },
53
- };
54
- const result = adaptMcpSchemaToZod(specialKeySchema);
55
- expect(result).toBeInstanceOf(z.ZodType);
56
- });
57
- test('should handle empty schemas', () => {
58
- const emptySchema = {};
59
- const result = adaptMcpSchemaToZod(emptySchema);
60
- expect(result).toBeInstanceOf(z.ZodType);
61
- // Should validate empty object
62
- const validResult = result.safeParse({});
63
- expect(validResult.success).toBe(true);
64
- });
65
- test('should handle schemas with conflicting types', () => {
66
- const conflictSchema = {
67
- type: ['string', 'number', 'boolean'],
68
- properties: {
69
- field1: { type: 'string' },
70
- field2: { type: 'number' },
71
- },
72
- };
73
- const result = adaptMcpSchemaToZod(conflictSchema);
74
- expect(result).toBeInstanceOf(z.ZodType);
75
- });
76
- test('should handle very large schemas', () => {
77
- const largeSchema = {
78
- type: 'object',
79
- properties: {},
80
- };
81
- // Create 100 properties
82
- for (let i = 0; i < 100; i++) {
83
- largeSchema.properties[`field${i}`] = { type: 'string' };
84
- }
85
- const result = adaptMcpSchemaToZod(largeSchema);
86
- expect(result).toBeInstanceOf(z.ZodType);
87
- });
88
- test('should handle schemas with enum values', () => {
89
- const enumSchema = {
90
- type: 'string',
91
- enum: ['value1', 'value2', 'value3'],
92
- };
93
- const result = adaptMcpSchemaToZod(enumSchema);
94
- expect(result).toBeInstanceOf(z.ZodType);
95
- // Our adapter creates a flexible schema (record or passthrough object)
96
- // that works with various input types since it can't fully parse JSON Schema
97
- // The actual enum validation happens on the MCP server side
98
- const objectResult = result.safeParse({ any: 'input' });
99
- expect(objectResult.success).toBe(true);
100
- });
101
- test('should handle Zod schemas with complex transformations', () => {
102
- const complexZodSchema = z
103
- .object({
104
- email: z.string().email(),
105
- age: z.number().min(0).max(120),
106
- name: z.string().min(1),
107
- })
108
- .transform((data) => ({
109
- ...data,
110
- formatted: `${data.name} (${data.email})`,
111
- }));
112
- const result = adaptMcpSchemaToZod(complexZodSchema);
113
- // Should detect it's a Zod schema and return it
114
- expect(result).toBe(complexZodSchema);
115
- });
116
- test('should handle schemas with regex patterns', () => {
117
- const regexSchema = {
118
- type: 'string',
119
- pattern: '^[a-zA-Z0-9]+$',
120
- };
121
- const result = adaptMcpSchemaToZod(regexSchema);
122
- expect(result).toBeInstanceOf(z.ZodType);
123
- });
124
- test('should handle schemas with $schema reference', () => {
125
- const draft7Schema = {
126
- $schema: 'http://json-schema.org/draft-07/schema#',
127
- type: 'object',
128
- properties: {
129
- name: { type: 'string' },
130
- },
131
- };
132
- const result = adaptMcpSchemaToZod(draft7Schema);
133
- expect(result).toBeInstanceOf(z.ZodType);
134
- });
135
- test('should handle schemas with allOf', () => {
136
- const allOfSchema = {
137
- allOf: [
138
- { type: 'object', properties: { a: { type: 'string' } } },
139
- { type: 'object', properties: { b: { type: 'number' } } },
140
- ],
141
- };
142
- const result = adaptMcpSchemaToZod(allOfSchema);
143
- expect(result).toBeInstanceOf(z.ZodType);
144
- });
145
- test('should handle schemas with anyOf', () => {
146
- const anyOfSchema = {
147
- anyOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean' }],
148
- };
149
- const result = adaptMcpSchemaToZod(anyOfSchema);
150
- expect(result).toBeInstanceOf(z.ZodType);
151
- });
152
- test('should handle schemas with oneOf', () => {
153
- const oneOfSchema = {
154
- oneOf: [
155
- { type: 'string', enum: ['a', 'b'] },
156
- { type: 'number', minimum: 0 },
157
- ],
158
- };
159
- const result = adaptMcpSchemaToZod(oneOfSchema);
160
- expect(result).toBeInstanceOf(z.ZodType);
161
- });
162
- });
163
- describe('Edge Cases', () => {
164
- test('should handle functions as schemas (unusual but possible)', () => {
165
- const functionSchema = () => ({ type: 'string' });
166
- const result = adaptMcpSchemaToZod(functionSchema);
167
- expect(result).toBeInstanceOf(z.ZodType);
168
- });
169
- test('should handle Date objects', () => {
170
- const dateSchema = new Date();
171
- const result = adaptMcpSchemaToZod(dateSchema);
172
- expect(result).toBeInstanceOf(z.ZodType);
173
- });
174
- test('should handle Buffer objects', () => {
175
- const bufferSchema = Buffer.from('test');
176
- const result = adaptMcpSchemaToZod(bufferSchema);
177
- expect(result).toBeInstanceOf(z.ZodType);
178
- });
179
- test('should handle schema with null properties', () => {
180
- const nullPropsSchema = {
181
- type: 'object',
182
- properties: {
183
- validField: { type: 'string' },
184
- nullField: null,
185
- undefinedField: undefined,
186
- },
187
- };
188
- const result = adaptMcpSchemaToZod(nullPropsSchema);
189
- expect(result).toBeInstanceOf(z.ZodType);
190
- });
191
- test('should handle schema with getter/setter', () => {
192
- const accessorSchema = {
193
- type: 'object',
194
- get dynamicField() {
195
- return 'string';
196
- },
197
- set dynamicField(_value) {
198
- // noop
199
- },
200
- };
201
- const result = adaptMcpSchemaToZod(accessorSchema);
202
- expect(result).toBeInstanceOf(z.ZodType);
203
- });
204
- });
205
- });
206
- //# sourceMappingURL=error-scenarios.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-scenarios.test.js","sourceRoot":"","sources":["../../src/mcp/error-scenarios.test.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- // generated by polka.codes
2
- /**
3
- * Base class for MCP-specific errors
4
- */
5
- export class McpError extends Error {
6
- serverName;
7
- retryable;
8
- constructor(serverName, message, retryable) {
9
- super(message);
10
- this.name = this.constructor.name;
11
- this.serverName = serverName;
12
- this.retryable = retryable;
13
- }
14
- }
15
- /**
16
- * Error when MCP server fails to start or connect
17
- */
18
- export class McpConnectionError extends McpError {
19
- cause;
20
- constructor(serverName, cause) {
21
- super(serverName, `Failed to connect to MCP server '${serverName}'. Please check the server configuration and ensure it is available.`, false);
22
- this.cause = cause;
23
- }
24
- }
25
- /**
26
- * Error when MCP server times out
27
- */
28
- export class McpTimeoutError extends McpError {
29
- timeoutSeconds;
30
- constructor(serverName, timeoutSeconds) {
31
- super(serverName, `MCP server '${serverName}' timed out after ${timeoutSeconds} seconds. The server may be slow or unresponsive.`, true);
32
- this.timeoutSeconds = timeoutSeconds;
33
- }
34
- }
35
- /**
36
- * Error when MCP protocol is violated
37
- */
38
- export class McpProtocolError extends McpError {
39
- constructor(serverName, message) {
40
- super(serverName, `MCP protocol error with server '${serverName}': ${message}`, false);
41
- }
42
- }
43
- /**
44
- * Error when MCP tool call fails
45
- */
46
- export class McpToolError extends McpError {
47
- toolName;
48
- cause;
49
- constructor(serverName, toolName, message, cause) {
50
- super(serverName, `Tool '${toolName}' on server '${serverName}' failed: ${message}`, false);
51
- this.toolName = toolName;
52
- this.cause = cause;
53
- }
54
- }
55
- /**
56
- * Error when MCP server is not found
57
- */
58
- export class McpServerError extends McpError {
59
- constructor(serverName) {
60
- super(serverName, `MCP server '${serverName}' not found in configuration.`, false);
61
- }
62
- }
63
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/mcp/errors.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B;;GAEG;AACH,MAAM,OAAgB,QAAS,SAAQ,KAAK;IAC1B,UAAU,CAAQ;IAClB,SAAS,CAAS;IAElC,YAAY,UAAkB,EAAE,OAAe,EAAE,SAAkB;QACjE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAG5B;IAFlB,YACE,UAAkB,EACF,KAAa;QAE7B,KAAK,CACH,UAAU,EACV,oCAAoC,UAAU,sEAAsE,EACpH,KAAK,CACN,CAAA;QANe,UAAK,GAAL,KAAK,CAAQ;IAO/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAGzB;IAFlB,YACE,UAAkB,EACF,cAAsB;QAEtC,KAAK,CAAC,UAAU,EAAE,eAAe,UAAU,qBAAqB,cAAc,mDAAmD,EAAE,IAAI,CAAC,CAAA;QAFxH,mBAAc,GAAd,cAAc,CAAQ;IAGxC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,UAAU,EAAE,mCAAmC,UAAU,MAAM,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;IACxF,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAGtB;IAEA;IAJlB,YACE,UAAkB,EACF,QAAgB,EAChC,OAAe,EACC,KAAa;QAE7B,KAAK,CAAC,UAAU,EAAE,SAAS,QAAQ,gBAAgB,UAAU,aAAa,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;QAJ3E,aAAQ,GAAR,QAAQ,CAAQ;QAEhB,UAAK,GAAL,KAAK,CAAQ;IAG/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,UAAkB;QAC5B,KAAK,CAAC,UAAU,EAAE,eAAe,UAAU,+BAA+B,EAAE,KAAK,CAAC,CAAA;IACpF,CAAC;CACF"}
package/dist/mcp/index.js DELETED
@@ -1,9 +0,0 @@
1
- // generated by polka.codes
2
- export * from './client';
3
- export * from './errors';
4
- export * from './manager';
5
- export * from './shared-types';
6
- export * from './tools';
7
- export * from './transport';
8
- export * from './types';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
@@ -1,231 +0,0 @@
1
- // generated by polka.codes
2
- import { convertJsonSchemaToZod } from '@polka-codes/core';
3
- import { createMcpClient } from './client';
4
- import { McpConnectionError, McpServerError } from './errors';
5
- /**
6
- * Manages MCP server connections and tools
7
- */
8
- export class McpManager {
9
- logger;
10
- connections = new Map();
11
- tools = new Map();
12
- constructor(logger) {
13
- this.logger = logger;
14
- }
15
- /**
16
- * Connect to all configured MCP servers
17
- */
18
- async connectToServers(servers) {
19
- for (const [serverName, serverConfig] of Object.entries(servers)) {
20
- try {
21
- await this.connectToServer(serverName, serverConfig);
22
- }
23
- catch (error) {
24
- const errorMessage = error instanceof Error ? error.message : String(error);
25
- if (this.logger) {
26
- this.logger.warn(`Failed to connect to MCP server '${serverName}': ${errorMessage}`);
27
- }
28
- else {
29
- console.warn(`Failed to connect to MCP server '${serverName}': ${errorMessage}`);
30
- }
31
- // Continue connecting to other servers even if one fails
32
- }
33
- }
34
- }
35
- /**
36
- * Connect to a single MCP server
37
- */
38
- async connectToServer(serverName, serverConfig) {
39
- if (this.connections.has(serverName)) {
40
- if (this.logger) {
41
- this.logger.warn(`MCP server '${serverName}' is already connected`);
42
- }
43
- return;
44
- }
45
- if (!serverConfig.command) {
46
- throw new McpConnectionError(serverName, new Error('No command specified for MCP server'));
47
- }
48
- try {
49
- const client = await createMcpClient(serverName, {
50
- command: serverConfig.command,
51
- args: serverConfig.args,
52
- env: serverConfig.env,
53
- });
54
- this.connections.set(serverName, client);
55
- // List available tools from the server
56
- const serverTools = await client.listTools();
57
- // Register tools
58
- for (const tool of serverTools) {
59
- const fullToolName = `${serverName}/${tool.name}`;
60
- this.tools.set(fullToolName, { serverName, tool });
61
- }
62
- if (this.logger) {
63
- this.logger.info(`Connected to MCP server '${serverName}' with ${serverTools.length} tools`);
64
- }
65
- }
66
- catch (error) {
67
- throw new McpConnectionError(serverName, error instanceof Error ? error : new Error(String(error)));
68
- }
69
- }
70
- /**
71
- * Disconnect from all MCP servers
72
- */
73
- async disconnectAll() {
74
- const disconnectPromises = [];
75
- for (const [serverName, client] of this.connections.entries()) {
76
- disconnectPromises.push(client.disconnect().catch((error) => {
77
- if (this.logger) {
78
- this.logger.warn(`Error disconnecting from MCP server '${serverName}': ${error}`);
79
- }
80
- }));
81
- }
82
- await Promise.all(disconnectPromises);
83
- this.connections.clear();
84
- this.tools.clear();
85
- }
86
- /**
87
- * Disconnect from a specific MCP server
88
- */
89
- async disconnectServer(serverName) {
90
- const client = this.connections.get(serverName);
91
- if (!client) {
92
- throw new McpServerError(serverName);
93
- }
94
- await client.disconnect();
95
- this.connections.delete(serverName);
96
- // Remove tools from this server
97
- for (const [toolName, { serverName: s }] of this.tools.entries()) {
98
- if (s === serverName) {
99
- this.tools.delete(toolName);
100
- }
101
- }
102
- }
103
- /**
104
- * Get all available tools from all connected MCP servers
105
- */
106
- getAllTools() {
107
- return new Map(this.tools);
108
- }
109
- /**
110
- * Get tools from a specific server
111
- */
112
- getServerTools(serverName) {
113
- const serverTools = new Map();
114
- for (const [toolName, { serverName: s, tool }] of this.tools.entries()) {
115
- if (s === serverName) {
116
- serverTools.set(toolName, tool);
117
- }
118
- }
119
- return serverTools;
120
- }
121
- /**
122
- * Call a tool on an MCP server
123
- */
124
- async callTool(fullToolName, args) {
125
- const toolInfo = this.tools.get(fullToolName);
126
- if (!toolInfo) {
127
- throw new Error(`Tool '${fullToolName}' not found`);
128
- }
129
- const { serverName, tool } = toolInfo;
130
- const client = this.connections.get(serverName);
131
- if (!client) {
132
- throw new McpServerError(serverName);
133
- }
134
- const result = await client.callTool(tool.name, args);
135
- // Check if the tool call returned an error
136
- if (result.isError) {
137
- throw new Error(`Tool '${fullToolName}' returned an error: ${JSON.stringify(result.content)}`);
138
- }
139
- // Return the text content from the tool result
140
- if (result.content && result.content.length > 0) {
141
- const textParts = result.content.filter((c) => c.type === 'text').map((c) => c.text);
142
- return textParts.join('\n');
143
- }
144
- return undefined;
145
- }
146
- /**
147
- * Check if a tool exists
148
- */
149
- hasTool(toolName) {
150
- return this.tools.has(toolName);
151
- }
152
- /**
153
- * Get tool information
154
- */
155
- getTool(toolName) {
156
- return this.tools.get(toolName);
157
- }
158
- /**
159
- * List all connected servers
160
- */
161
- listConnectedServers() {
162
- return Array.from(this.connections.keys());
163
- }
164
- /**
165
- * Check if a server is connected
166
- */
167
- isServerConnected(serverName) {
168
- return this.connections.has(serverName);
169
- }
170
- /**
171
- * Convert MCP tools to FullToolInfo format for use in workflows
172
- * This allows MCP tools to be exposed to AI agents
173
- */
174
- getFullToolInfos() {
175
- const toolInfos = [];
176
- for (const [fullToolName, { tool }] of this.tools.entries()) {
177
- // Convert the MCP tool's inputSchema to a Zod schema
178
- // MCP tools use JSON Schema, we need to convert to Zod
179
- // Note: FullToolInfo.parameters expects z.ZodObject<any>, so we must use that type
180
- let zodSchema;
181
- try {
182
- // MCP schemas are JSON Schema compatible, but use looser types
183
- // Cast to any since convertJsonSchemaToZod doesn't have proper types and we need ZodObject<any>
184
- zodSchema = convertJsonSchemaToZod(tool.inputSchema);
185
- }
186
- catch (error) {
187
- // If schema conversion fails, skip the tool rather than using a dangerous fallback
188
- const errorMessage = error instanceof Error ? error.message : String(error);
189
- if (this.logger) {
190
- this.logger.error(`Skipping MCP tool '${fullToolName}' due to schema conversion error: ${errorMessage}. ` +
191
- `The tool may have unsupported JSON Schema features. ` +
192
- `Please report this if the tool should be supported.`);
193
- }
194
- continue; // Skip this tool entirely
195
- }
196
- const description = tool.description || `MCP tool: ${fullToolName}`;
197
- toolInfos.push({
198
- name: fullToolName,
199
- description,
200
- parameters: zodSchema,
201
- handler: async (_provider, args) => {
202
- try {
203
- const result = await this.callTool(fullToolName, args);
204
- // Return the result in the expected format
205
- const response = {
206
- success: true,
207
- message: {
208
- type: 'text',
209
- value: typeof result === 'string' ? result : JSON.stringify(result, null, 2),
210
- },
211
- };
212
- return response;
213
- }
214
- catch (error) {
215
- const errorMessage = error instanceof Error ? error.message : String(error);
216
- const errorResponse = {
217
- success: false,
218
- message: {
219
- type: 'error-text',
220
- value: `Error calling MCP tool '${fullToolName}': ${errorMessage}`,
221
- },
222
- };
223
- return errorResponse;
224
- }
225
- },
226
- });
227
- }
228
- return toolInfos;
229
- }
230
- }
231
- //# sourceMappingURL=manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- // Unit tests for MCP manager
2
- // generated by polka.codes
3
- import { describe, expect, test } from 'bun:test';
4
- import { McpConnectionError, McpServerError } from './errors';
5
- import { McpManager } from './manager';
6
- describe('McpManager', () => {
7
- test('should initialize without servers', () => {
8
- const manager = new McpManager();
9
- expect(manager.listConnectedServers()).toEqual([]);
10
- expect(manager.isServerConnected('test-server')).toBe(false);
11
- });
12
- test('should throw error when trying to disconnect non-existent server', async () => {
13
- const manager = new McpManager();
14
- expect(manager.disconnectServer('non-existent')).rejects.toThrow(McpServerError);
15
- });
16
- test('should return empty tools map when no servers connected', () => {
17
- const manager = new McpManager();
18
- expect(manager.getAllTools().size).toBe(0);
19
- });
20
- test('should return false for hasTool when no servers connected', () => {
21
- const manager = new McpManager();
22
- expect(manager.hasTool('some-tool')).toBe(false);
23
- });
24
- test('should return undefined for getTool when tool does not exist', () => {
25
- const manager = new McpManager();
26
- expect(manager.getTool('some-tool')).toBeUndefined();
27
- });
28
- test('should handle empty server config', async () => {
29
- const manager = new McpManager();
30
- await manager.connectToServers({});
31
- expect(manager.listConnectedServers()).toEqual([]);
32
- });
33
- test('should fail to connect to server without command', async () => {
34
- const manager = new McpManager();
35
- expect(manager.connectToServer('test-server', {
36
- command: undefined,
37
- })).rejects.toThrow(McpConnectionError);
38
- });
39
- });
40
- //# sourceMappingURL=manager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.test.js","sourceRoot":"","sources":["../../src/mcp/manager.test.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,2BAA2B;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAA;QAChC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAClD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAA;QAChC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACnE,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAA;QAChC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAA;QAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACxE,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAA;QAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAA;QAChC,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAClC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAA;QAChC,MAAM,CACJ,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE;YACrC,OAAO,EAAE,SAAgB;SAC1B,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}