@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,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"}