@polka-codes/core 0.10.11 → 0.10.16

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 (250) hide show
  1. package/dist/Agent/backoff.d.ts +7 -0
  2. package/dist/Agent/backoff.js +21 -0
  3. package/dist/Agent/backoff.js.map +1 -0
  4. package/dist/Agent/index.d.ts +2 -0
  5. package/dist/Agent/index.js +3 -0
  6. package/dist/Agent/index.js.map +1 -0
  7. package/dist/Agent/parseJsonFromMarkdown.d.ts +8 -0
  8. package/dist/Agent/parseJsonFromMarkdown.js +34 -0
  9. package/dist/Agent/parseJsonFromMarkdown.js.map +1 -0
  10. package/dist/Agent/parseJsonFromMarkdown.test.d.ts +1 -0
  11. package/dist/Agent/parseJsonFromMarkdown.test.js +70 -0
  12. package/dist/Agent/parseJsonFromMarkdown.test.js.map +1 -0
  13. package/dist/Agent/prompts.d.ts +9 -0
  14. package/dist/Agent/prompts.js +107 -0
  15. package/dist/Agent/prompts.js.map +1 -0
  16. package/dist/UsageMeter.d.ts +101 -0
  17. package/dist/UsageMeter.js +299 -0
  18. package/dist/UsageMeter.js.map +1 -0
  19. package/dist/UsageMeter.test.d.ts +4 -0
  20. package/dist/UsageMeter.test.js +556 -0
  21. package/dist/UsageMeter.test.js.map +1 -0
  22. package/dist/config/base.d.ts +68 -0
  23. package/dist/config/base.js +56 -0
  24. package/dist/config/base.js.map +1 -0
  25. package/dist/config/memory.d.ts +24 -0
  26. package/dist/config/memory.js +36 -0
  27. package/dist/config/memory.js.map +1 -0
  28. package/dist/config.d.ts +236 -0
  29. package/dist/config.js +184 -0
  30. package/dist/config.js.map +1 -0
  31. package/dist/errors/base.d.ts +31 -0
  32. package/dist/errors/base.js +60 -0
  33. package/dist/errors/base.js.map +1 -0
  34. package/dist/errors/index.d.ts +1 -0
  35. package/dist/errors/index.js +3 -0
  36. package/dist/errors/index.js.map +1 -0
  37. package/dist/fs/index.d.ts +2 -0
  38. package/dist/fs/index.js +3 -0
  39. package/dist/fs/index.js.map +1 -0
  40. package/dist/fs/node-provider.d.ts +16 -0
  41. package/dist/fs/node-provider.js +47 -0
  42. package/dist/fs/node-provider.js.map +1 -0
  43. package/dist/fs/provider.d.ts +61 -0
  44. package/dist/fs/provider.js +3 -0
  45. package/dist/fs/provider.js.map +1 -0
  46. package/dist/index.d.ts +20 -191
  47. package/dist/index.js +21 -4123
  48. package/dist/index.js.map +1 -0
  49. package/dist/memory/index.d.ts +1 -0
  50. package/dist/memory/index.js +2 -0
  51. package/dist/memory/index.js.map +1 -0
  52. package/dist/memory/types.d.ts +136 -0
  53. package/dist/memory/types.js +2 -0
  54. package/dist/memory/types.js.map +1 -0
  55. package/dist/path.d.ts +9 -0
  56. package/dist/path.js +68 -0
  57. package/dist/path.js.map +1 -0
  58. package/dist/path.test.d.ts +1 -0
  59. package/dist/path.test.js +82 -0
  60. package/dist/path.test.js.map +1 -0
  61. package/dist/pricing/converter.d.ts +6 -0
  62. package/dist/pricing/converter.js +13 -0
  63. package/dist/pricing/converter.js.map +1 -0
  64. package/dist/pricing/converter.test.d.ts +1 -0
  65. package/dist/pricing/converter.test.js +54 -0
  66. package/dist/pricing/converter.test.js.map +1 -0
  67. package/dist/pricing/index.d.ts +2 -0
  68. package/dist/pricing/index.js +2 -0
  69. package/dist/pricing/index.js.map +1 -0
  70. package/dist/pricing/portkey-client.d.ts +2 -0
  71. package/dist/pricing/portkey-client.js +57 -0
  72. package/dist/pricing/portkey-client.js.map +1 -0
  73. package/dist/pricing/pricing-service.d.ts +6 -0
  74. package/dist/pricing/pricing-service.js +125 -0
  75. package/dist/pricing/pricing-service.js.map +1 -0
  76. package/dist/pricing/pricing-service.test.d.ts +1 -0
  77. package/dist/pricing/pricing-service.test.js +141 -0
  78. package/dist/pricing/pricing-service.test.js.map +1 -0
  79. package/dist/pricing/types.d.ts +24 -0
  80. package/dist/pricing/types.js +2 -0
  81. package/dist/pricing/types.js.map +1 -0
  82. package/dist/skills/__tests__/discovery.test.d.ts +1 -0
  83. package/dist/skills/__tests__/discovery.test.js +254 -0
  84. package/dist/skills/__tests__/discovery.test.js.map +1 -0
  85. package/dist/skills/__tests__/validation.test.d.ts +1 -0
  86. package/dist/skills/__tests__/validation.test.js +221 -0
  87. package/dist/skills/__tests__/validation.test.js.map +1 -0
  88. package/dist/skills/constants.d.ts +32 -0
  89. package/dist/skills/constants.js +50 -0
  90. package/dist/skills/constants.js.map +1 -0
  91. package/dist/skills/discovery.d.ts +56 -0
  92. package/dist/skills/discovery.js +392 -0
  93. package/dist/skills/discovery.js.map +1 -0
  94. package/dist/skills/index.d.ts +4 -0
  95. package/dist/skills/index.js +6 -0
  96. package/dist/skills/index.js.map +1 -0
  97. package/dist/skills/tools/index.d.ts +3 -0
  98. package/dist/skills/tools/index.js +5 -0
  99. package/dist/skills/tools/index.js.map +1 -0
  100. package/dist/skills/tools/listSkills.d.ts +54 -0
  101. package/dist/skills/tools/listSkills.js +52 -0
  102. package/dist/skills/tools/listSkills.js.map +1 -0
  103. package/dist/skills/tools/loadSkill.d.ts +52 -0
  104. package/dist/skills/tools/loadSkill.js +86 -0
  105. package/dist/skills/tools/loadSkill.js.map +1 -0
  106. package/dist/skills/tools/readSkillFile.d.ts +43 -0
  107. package/dist/skills/tools/readSkillFile.js +68 -0
  108. package/dist/skills/tools/readSkillFile.js.map +1 -0
  109. package/dist/skills/types.d.ts +83 -0
  110. package/dist/skills/types.js +42 -0
  111. package/dist/skills/types.js.map +1 -0
  112. package/dist/skills/validation.d.ts +30 -0
  113. package/dist/skills/validation.js +133 -0
  114. package/dist/skills/validation.js.map +1 -0
  115. package/dist/tool.d.ts +51 -0
  116. package/dist/tool.js +2 -0
  117. package/dist/tool.js.map +1 -0
  118. package/dist/tools/askFollowupQuestion.d.ts +35 -0
  119. package/dist/tools/askFollowupQuestion.js +105 -0
  120. package/dist/tools/askFollowupQuestion.js.map +1 -0
  121. package/dist/tools/askFollowupQuestion.test.d.ts +1 -0
  122. package/dist/tools/askFollowupQuestion.test.js +80 -0
  123. package/dist/tools/askFollowupQuestion.test.js.map +1 -0
  124. package/dist/tools/executeCommand.d.ts +29 -0
  125. package/dist/tools/executeCommand.js +82 -0
  126. package/dist/tools/executeCommand.js.map +1 -0
  127. package/dist/tools/executeCommand.test.d.ts +1 -0
  128. package/dist/tools/executeCommand.test.js +60 -0
  129. package/dist/tools/executeCommand.test.js.map +1 -0
  130. package/dist/tools/fetchUrl.d.ts +26 -0
  131. package/dist/tools/fetchUrl.js +85 -0
  132. package/dist/tools/fetchUrl.js.map +1 -0
  133. package/dist/tools/index.d.ts +15 -0
  134. package/dist/tools/index.js +17 -0
  135. package/dist/tools/index.js.map +1 -0
  136. package/dist/tools/listFiles.d.ts +35 -0
  137. package/dist/tools/listFiles.js +61 -0
  138. package/dist/tools/listFiles.js.map +1 -0
  139. package/dist/tools/listFiles.test.d.ts +1 -0
  140. package/dist/tools/listFiles.test.js +59 -0
  141. package/dist/tools/listFiles.test.js.map +1 -0
  142. package/dist/tools/provider.d.ts +76 -0
  143. package/dist/tools/provider.js +60 -0
  144. package/dist/tools/provider.js.map +1 -0
  145. package/dist/tools/readBinaryFile.d.ts +26 -0
  146. package/dist/tools/readBinaryFile.js +52 -0
  147. package/dist/tools/readBinaryFile.js.map +1 -0
  148. package/dist/tools/readFile.d.ts +35 -0
  149. package/dist/tools/readFile.js +128 -0
  150. package/dist/tools/readFile.js.map +1 -0
  151. package/dist/tools/readFile.test.d.ts +1 -0
  152. package/dist/tools/readFile.test.js +37 -0
  153. package/dist/tools/readFile.test.js.map +1 -0
  154. package/dist/tools/removeFile.d.ts +26 -0
  155. package/dist/tools/removeFile.js +49 -0
  156. package/dist/tools/removeFile.js.map +1 -0
  157. package/dist/tools/removeFile.test.d.ts +1 -0
  158. package/dist/tools/removeFile.test.js +32 -0
  159. package/dist/tools/removeFile.test.js.map +1 -0
  160. package/dist/tools/renameFile.d.ts +29 -0
  161. package/dist/tools/renameFile.js +48 -0
  162. package/dist/tools/renameFile.js.map +1 -0
  163. package/dist/tools/renameFile.test.d.ts +1 -0
  164. package/dist/tools/renameFile.test.js +53 -0
  165. package/dist/tools/renameFile.test.js.map +1 -0
  166. package/dist/tools/replaceInFile.d.ts +29 -0
  167. package/dist/tools/replaceInFile.js +233 -0
  168. package/dist/tools/replaceInFile.js.map +1 -0
  169. package/dist/tools/replaceInFile.test.d.ts +1 -0
  170. package/dist/tools/replaceInFile.test.js +79 -0
  171. package/dist/tools/replaceInFile.test.js.map +1 -0
  172. package/dist/tools/response-builders.d.ts +64 -0
  173. package/dist/tools/response-builders.js +88 -0
  174. package/dist/tools/response-builders.js.map +1 -0
  175. package/dist/tools/search.d.ts +26 -0
  176. package/dist/tools/search.js +56 -0
  177. package/dist/tools/search.js.map +1 -0
  178. package/dist/tools/search.test.d.ts +1 -0
  179. package/dist/tools/search.test.js +22 -0
  180. package/dist/tools/search.test.js.map +1 -0
  181. package/dist/tools/searchFiles.d.ts +32 -0
  182. package/dist/tools/searchFiles.js +86 -0
  183. package/dist/tools/searchFiles.js.map +1 -0
  184. package/dist/tools/todo.d.ts +37 -0
  185. package/dist/tools/todo.js +41 -0
  186. package/dist/tools/todo.js.map +1 -0
  187. package/dist/tools/utils/index.d.ts +1 -0
  188. package/dist/tools/utils/index.js +2 -0
  189. package/dist/tools/utils/index.js.map +1 -0
  190. package/dist/tools/utils/replaceInFile.d.ts +7 -0
  191. package/dist/tools/utils/replaceInFile.js +133 -0
  192. package/dist/tools/utils/replaceInFile.js.map +1 -0
  193. package/dist/tools/utils/replaceInFile.test.d.ts +1 -0
  194. package/dist/tools/utils/replaceInFile.test.js +308 -0
  195. package/dist/tools/utils/replaceInFile.test.js.map +1 -0
  196. package/dist/tools/utils.d.ts +10 -0
  197. package/dist/tools/utils.js +27 -0
  198. package/dist/tools/utils.js.map +1 -0
  199. package/dist/tools/writeToFile.d.ts +29 -0
  200. package/dist/tools/writeToFile.js +85 -0
  201. package/dist/tools/writeToFile.js.map +1 -0
  202. package/dist/tools/writeToFile.test.d.ts +1 -0
  203. package/dist/tools/writeToFile.test.js +46 -0
  204. package/dist/tools/writeToFile.test.js.map +1 -0
  205. package/dist/utils/index.d.ts +1 -0
  206. package/dist/utils/index.js +3 -0
  207. package/dist/utils/index.js.map +1 -0
  208. package/dist/utils/merge.d.ts +26 -0
  209. package/dist/utils/merge.js +45 -0
  210. package/dist/utils/merge.js.map +1 -0
  211. package/dist/workflow/agent.workflow.d.ts +39 -0
  212. package/dist/workflow/agent.workflow.js +166 -0
  213. package/dist/workflow/agent.workflow.js.map +1 -0
  214. package/dist/workflow/agent.workflow.test.d.ts +1 -0
  215. package/dist/workflow/agent.workflow.test.js +175 -0
  216. package/dist/workflow/agent.workflow.test.js.map +1 -0
  217. package/dist/workflow/control-flow.test.d.ts +1 -0
  218. package/dist/workflow/control-flow.test.js +323 -0
  219. package/dist/workflow/control-flow.test.js.map +1 -0
  220. package/dist/workflow/dynamic-edge-cases.test.d.ts +1 -0
  221. package/dist/workflow/dynamic-edge-cases.test.js +486 -0
  222. package/dist/workflow/dynamic-edge-cases.test.js.map +1 -0
  223. package/dist/workflow/dynamic-types.d.ts +124 -0
  224. package/dist/workflow/dynamic-types.js +105 -0
  225. package/dist/workflow/dynamic-types.js.map +1 -0
  226. package/dist/workflow/dynamic.d.ts +118 -0
  227. package/dist/workflow/dynamic.js +999 -0
  228. package/dist/workflow/dynamic.js.map +1 -0
  229. package/dist/workflow/index.d.ts +6 -0
  230. package/dist/workflow/index.js +8 -0
  231. package/dist/workflow/index.js.map +1 -0
  232. package/dist/workflow/json-ai-types.d.ts +122 -0
  233. package/dist/workflow/json-ai-types.js +144 -0
  234. package/dist/workflow/json-ai-types.js.map +1 -0
  235. package/dist/workflow/json-schema-conversion.test.d.ts +1 -0
  236. package/dist/workflow/json-schema-conversion.test.js +371 -0
  237. package/dist/workflow/json-schema-conversion.test.js.map +1 -0
  238. package/dist/workflow/try-catch.test.d.ts +1 -0
  239. package/dist/workflow/try-catch.test.js +443 -0
  240. package/dist/workflow/try-catch.test.js.map +1 -0
  241. package/dist/workflow/types.d.ts +103 -0
  242. package/dist/workflow/types.js +17 -0
  243. package/dist/workflow/types.js.map +1 -0
  244. package/dist/workflow/workflow.d.ts +29 -0
  245. package/dist/workflow/workflow.js +57 -0
  246. package/dist/workflow/workflow.js.map +1 -0
  247. package/dist/workflow/workflow.test.d.ts +1 -0
  248. package/dist/workflow/workflow.test.js +189 -0
  249. package/dist/workflow/workflow.test.js.map +1 -0
  250. package/package.json +9 -1
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import type { ToolHandler } from '../tool';
3
+ import type { WebProvider } from './provider';
4
+ export declare const toolInfo: {
5
+ readonly name: "search";
6
+ readonly description: "Search the web for information using Google Search. Use this tool to find current information, facts, news, documentation, or research that is not available in your training data. Returns comprehensive search results with relevant content extracted from the web.";
7
+ readonly parameters: z.ZodObject<{
8
+ query: z.ZodString;
9
+ }, z.core.$strip>;
10
+ };
11
+ export declare const handler: ToolHandler<typeof toolInfo, WebProvider>;
12
+ declare const _default: {
13
+ handler: ToolHandler<{
14
+ readonly name: "search";
15
+ readonly description: "Search the web for information using Google Search. Use this tool to find current information, facts, news, documentation, or research that is not available in your training data. Returns comprehensive search results with relevant content extracted from the web.";
16
+ readonly parameters: z.ZodObject<{
17
+ query: z.ZodString;
18
+ }, z.core.$strip>;
19
+ }, WebProvider>;
20
+ name: "search";
21
+ description: "Search the web for information using Google Search. Use this tool to find current information, facts, news, documentation, or research that is not available in your training data. Returns comprehensive search results with relevant content extracted from the web.";
22
+ parameters: z.ZodObject<{
23
+ query: z.ZodString;
24
+ }, z.core.$strip>;
25
+ };
26
+ export default _default;
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+ export const toolInfo = {
3
+ name: 'search',
4
+ description: 'Search the web for information using Google Search. Use this tool to find current information, facts, news, documentation, or research that is not available in your training data. Returns comprehensive search results with relevant content extracted from the web.',
5
+ parameters: z
6
+ .object({
7
+ query: z.string().describe('The query to search for').meta({ usageValue: 'Your search query here' }),
8
+ })
9
+ .meta({
10
+ examples: [
11
+ {
12
+ description: 'Search for current events or news',
13
+ input: {
14
+ query: 'latest developments in AI language models 2024',
15
+ },
16
+ },
17
+ {
18
+ description: 'Look up technical documentation',
19
+ input: {
20
+ query: 'TypeScript advanced type system features',
21
+ },
22
+ },
23
+ {
24
+ description: 'Research specific information',
25
+ input: {
26
+ query: 'Node.js performance optimization best practices',
27
+ },
28
+ },
29
+ ],
30
+ }),
31
+ };
32
+ export const handler = async (provider, args) => {
33
+ const { query } = toolInfo.parameters.parse(args);
34
+ if (!provider.search) {
35
+ return {
36
+ success: false,
37
+ message: {
38
+ type: 'text',
39
+ value: 'This tool requires a web provider to be installed.',
40
+ },
41
+ };
42
+ }
43
+ const result = await provider.search(query);
44
+ return {
45
+ success: true,
46
+ message: {
47
+ type: 'text',
48
+ value: result,
49
+ },
50
+ };
51
+ };
52
+ export default {
53
+ ...toolInfo,
54
+ handler,
55
+ };
56
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,wQAAwQ;IAC1Q,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC;KACrG,CAAC;SACD,IAAI,CAAC;QACJ,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,mCAAmC;gBAChD,KAAK,EAAE;oBACL,KAAK,EAAE,gDAAgD;iBACxD;aACF;YACD;gBACE,WAAW,EAAE,iCAAiC;gBAC9C,KAAK,EAAE;oBACL,KAAK,EAAE,0CAA0C;iBAClD;aACF;YACD;gBACE,WAAW,EAAE,+BAA+B;gBAC5C,KAAK,EAAE;oBACL,KAAK,EAAE,iDAAiD;iBACzD;aACF;SACF;KACF,CAAC;CACuB,CAAA;AAE7B,MAAM,CAAC,MAAM,OAAO,GAA8C,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IACzF,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEjD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,oDAAoD;aAC5D;SACF,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3C,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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ import { describe, expect, it, spyOn } from 'bun:test';
2
+ import { MockProvider } from './provider';
3
+ import search from './search';
4
+ describe('search', () => {
5
+ it('should use provider.search if available', async () => {
6
+ const mockProvider = new MockProvider();
7
+ spyOn(mockProvider, 'search').mockResolvedValue('search result');
8
+ const result = await search.handler(mockProvider, {
9
+ query: 'test query',
10
+ });
11
+ // Verify search result is returned
12
+ expect(result).toEqual({
13
+ success: true,
14
+ message: {
15
+ type: 'text',
16
+ value: 'search result',
17
+ },
18
+ });
19
+ expect(mockProvider.search).toHaveBeenCalledWith('test query');
20
+ });
21
+ });
22
+ //# sourceMappingURL=search.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.test.js","sourceRoot":"","sources":["../../src/tools/search.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,MAAM,MAAM,UAAU,CAAA;AAE7B,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;QACvC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAA;QAEhE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;YAChD,KAAK,EAAE,YAAY;SACpB,CAAC,CAAA;QAEF,mCAAmC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,eAAe;aACvB;SACF,CAAC,CAAA;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod';
2
+ import type { ToolHandler } from '../tool';
3
+ import type { FilesystemProvider } from './provider';
4
+ export declare const toolInfo: {
5
+ readonly name: "searchFiles";
6
+ readonly description: "Request to perform a regex search across files in a specified directory, outputting context-rich results that include surrounding lines. This tool searches for patterns or specific content across multiple files, displaying each match with encapsulating context.";
7
+ readonly parameters: z.ZodObject<{
8
+ path: z.ZodString;
9
+ regex: z.ZodString;
10
+ filePattern: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ };
13
+ export declare const handler: ToolHandler<typeof toolInfo, FilesystemProvider>;
14
+ declare const _default: {
15
+ handler: ToolHandler<{
16
+ readonly name: "searchFiles";
17
+ readonly description: "Request to perform a regex search across files in a specified directory, outputting context-rich results that include surrounding lines. This tool searches for patterns or specific content across multiple files, displaying each match with encapsulating context.";
18
+ readonly parameters: z.ZodObject<{
19
+ path: z.ZodString;
20
+ regex: z.ZodString;
21
+ filePattern: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>;
23
+ }, FilesystemProvider>;
24
+ name: "searchFiles";
25
+ description: "Request to perform a regex search across files in a specified directory, outputting context-rich results that include surrounding lines. This tool searches for patterns or specific content across multiple files, displaying each match with encapsulating context.";
26
+ parameters: z.ZodObject<{
27
+ path: z.ZodString;
28
+ regex: z.ZodString;
29
+ filePattern: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strip>;
31
+ };
32
+ export default _default;
@@ -0,0 +1,86 @@
1
+ import { z } from 'zod';
2
+ export const toolInfo = {
3
+ name: 'searchFiles',
4
+ description: 'Request to perform a regex search across files in a specified directory, outputting context-rich results that include surrounding lines. This tool searches for patterns or specific content across multiple files, displaying each match with encapsulating context.',
5
+ parameters: z
6
+ .object({
7
+ path: z
8
+ .string()
9
+ .describe('The path of the directory to search in (relative to the current working directory). This directory will be recursively searched.')
10
+ .meta({ usageValue: 'Directory path here' }),
11
+ regex: z.string().describe('The regular expression pattern to search for. Uses Rust regex syntax.').meta({
12
+ usageValue: 'Your regex pattern here',
13
+ }),
14
+ filePattern: z
15
+ .string()
16
+ .optional()
17
+ .describe('Comma-separated glob pattern to filter files (e.g., "*.ts" for TypeScript files or "*.ts,*.js" for both TypeScript and JavaScript files). If not provided, it will search all files (*).')
18
+ .meta({
19
+ usageValue: 'file pattern here (optional)',
20
+ }),
21
+ })
22
+ .meta({
23
+ examples: [
24
+ {
25
+ description: 'Request to perform a regex search across files',
26
+ input: {
27
+ path: 'src',
28
+ regex: '^components/',
29
+ filePattern: '*.ts,*.tsx',
30
+ },
31
+ },
32
+ ],
33
+ }),
34
+ };
35
+ export const handler = async (provider, args) => {
36
+ if (!provider.searchFiles) {
37
+ return {
38
+ success: false,
39
+ message: {
40
+ type: 'error-text',
41
+ value: 'Not possible to search files.',
42
+ },
43
+ };
44
+ }
45
+ const parsed = toolInfo.parameters.safeParse(args);
46
+ if (!parsed.success) {
47
+ return {
48
+ success: false,
49
+ message: {
50
+ type: 'error-text',
51
+ value: `Invalid arguments for searchFiles: ${parsed.error.message}`,
52
+ },
53
+ };
54
+ }
55
+ const { path, regex, filePattern } = parsed.data;
56
+ try {
57
+ const files = await provider.searchFiles(path, regex, filePattern ?? '*');
58
+ return {
59
+ success: true,
60
+ message: {
61
+ type: 'text',
62
+ value: `<search_files_path>${path}</search_files_path>
63
+ <search_files_regex>${regex}</search_files_regex>
64
+ <search_files_file_pattern>${filePattern}</search_files_file_pattern>
65
+ <search_files_files>
66
+ ${files.join('\n')}
67
+ </search_files_files>
68
+ `,
69
+ },
70
+ };
71
+ }
72
+ catch (error) {
73
+ return {
74
+ success: false,
75
+ message: {
76
+ type: 'error-text',
77
+ value: `Error searching files: ${error}`,
78
+ },
79
+ };
80
+ }
81
+ };
82
+ export default {
83
+ ...toolInfo,
84
+ handler,
85
+ };
86
+ //# sourceMappingURL=searchFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchFiles.js","sourceRoot":"","sources":["../../src/tools/searchFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,uQAAuQ;IACzQ,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,kIAAkI,CACnI;aACA,IAAI,CAAC,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC,CAAC,IAAI,CAAC;YACvG,UAAU,EAAE,yBAAyB;SACtC,CAAC;QACF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,0LAA0L,CAC3L;aACA,IAAI,CAAC;YACJ,UAAU,EAAE,8BAA8B;SAC3C,CAAC;KACL,CAAC;SACD,IAAI,CAAC;QACJ,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,gDAAgD;gBAC7D,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,cAAc;oBACrB,WAAW,EAAE,YAAY;iBAC1B;aACF;SACF;KACF,CAAC;CACuB,CAAA;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAqD,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAChG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,+BAA+B;aACvC;SACF,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,sCAAsC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;aACpE;SACF,CAAA;IACH,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;IAEhD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,IAAI,GAAG,CAAC,CAAA;QAEzE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,sBAAsB,IAAI;sBACnB,KAAK;6BACE,WAAW;;EAEtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;CAEjB;aACM;SACF,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,0BAA0B,KAAK,EAAE;aACzC;SACF,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,eAAe;IACb,GAAG,QAAQ;IACX,OAAO;CACe,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ export declare const TodoStatus: z.ZodEnum<{
3
+ open: "open";
4
+ completed: "completed";
5
+ closed: "closed";
6
+ }>;
7
+ export declare const TodoItemSchema: z.ZodObject<{
8
+ id: z.ZodString;
9
+ title: z.ZodString;
10
+ description: z.ZodString;
11
+ status: z.ZodEnum<{
12
+ open: "open";
13
+ completed: "completed";
14
+ closed: "closed";
15
+ }>;
16
+ }, z.core.$strip>;
17
+ export type TodoItem = z.infer<typeof TodoItemSchema>;
18
+ export declare const UpdateTodoItemInputSchema: z.ZodObject<{
19
+ operation: z.ZodEnum<{
20
+ add: "add";
21
+ update: "update";
22
+ }>;
23
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
+ parentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
+ status: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
28
+ open: "open";
29
+ completed: "completed";
30
+ closed: "closed";
31
+ }>>>;
32
+ }, z.core.$strip>;
33
+ export type UpdateTodoItemInput = z.infer<typeof UpdateTodoItemInputSchema>;
34
+ export declare const UpdateTodoItemOutputSchema: z.ZodObject<{
35
+ id: z.ZodString;
36
+ }, z.core.$strip>;
37
+ export type UpdateTodoItemOutput = z.infer<typeof UpdateTodoItemOutputSchema>;
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ export const TodoStatus = z.enum(['open', 'completed', 'closed']);
3
+ export const TodoItemSchema = z.object({
4
+ id: z.string(),
5
+ title: z.string(),
6
+ description: z.string(),
7
+ status: TodoStatus,
8
+ });
9
+ export const UpdateTodoItemInputSchema = z
10
+ .object({
11
+ operation: z.enum(['add', 'update']),
12
+ id: z.string().nullish(),
13
+ parentId: z.string().nullish(),
14
+ title: z.string().nullish(),
15
+ description: z.string().nullish(),
16
+ status: TodoStatus.nullish(),
17
+ })
18
+ .superRefine((data, ctx) => {
19
+ if (data.operation === 'add') {
20
+ if (!data.title) {
21
+ ctx.addIssue({
22
+ code: 'custom',
23
+ message: 'Title is required for "add" operation',
24
+ path: ['title'],
25
+ });
26
+ }
27
+ }
28
+ else if (data.operation === 'update') {
29
+ if (!data.id) {
30
+ ctx.addIssue({
31
+ code: 'custom',
32
+ message: 'ID is required for "update" operation',
33
+ path: ['id'],
34
+ });
35
+ }
36
+ }
37
+ });
38
+ export const UpdateTodoItemOutputSchema = z.object({
39
+ id: z.string(),
40
+ });
41
+ //# sourceMappingURL=todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo.js","sourceRoot":"","sources":["../../src/tools/todo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,UAAU;CACnB,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IACjC,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE;CAC7B,CAAC;KACD,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACzB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,uCAAuC;gBAChD,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,uCAAuC;gBAChD,IAAI,EAAE,CAAC,IAAI,CAAC;aACb,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAIJ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACf,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './replaceInFile';
@@ -0,0 +1,2 @@
1
+ export * from './replaceInFile';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,7 @@
1
+ export type ReplaceResult = {
2
+ content: string;
3
+ status: 'no_diff_applied' | 'some_diff_applied' | 'all_diff_applied';
4
+ appliedCount: number;
5
+ totalCount: number;
6
+ };
7
+ export declare const replaceInFile: (fileContent: string, diff: string) => ReplaceResult;
@@ -0,0 +1,133 @@
1
+ /* Example diff block format:
2
+ <<<<<<< SEARCH
3
+ // original text
4
+ =======
5
+ // replacement text
6
+ >>>>>>> REPLACE
7
+ */
8
+ export const replaceInFile = (fileContent, diff) => {
9
+ // Regex to match blocks of the form:
10
+ // <<<<<<< SEARCH
11
+ // (some lines)
12
+ // =======
13
+ // (some lines)
14
+ // >>>>>>> REPLACE
15
+ const blockPattern = /^\s*<<<<<+\s*SEARCH>?\s*\r?\n([\s\S]*?)\r?\n=======[ \t]*\r?\n([\s\S]*?)\r?\n?>>>>>+\s*REPLACE\s*$/gm;
16
+ // Parse diff blocks
17
+ const blocks = [];
18
+ for (let match = blockPattern.exec(diff); match !== null; match = blockPattern.exec(diff)) {
19
+ blocks.push({ search: match[1], replace: match[2] });
20
+ }
21
+ if (blocks.length === 0) {
22
+ throw new Error('No valid diff blocks found.');
23
+ }
24
+ // Helper: try to find the search text in fileContent with progressive relaxation
25
+ const findAndReplace = (content, search, replace) => {
26
+ // 1) Direct exact match
27
+ let index = content.indexOf(search);
28
+ if (index !== -1) {
29
+ return content.slice(0, index) + replace + content.slice(index + search.length);
30
+ }
31
+ // 2) Trim leading/ending whitespace in search and content
32
+ const trimmedSearch = search.trim();
33
+ const trimmedContent = content.trim();
34
+ const offset = content.indexOf(trimmedContent); // to restore original indexing if found
35
+ index = trimmedContent.indexOf(trimmedSearch);
36
+ if (index !== -1) {
37
+ // compute correct absolute index in the original content
38
+ const absoluteIndex = offset + index;
39
+ return content.slice(0, absoluteIndex) + replace + content.slice(absoluteIndex + trimmedSearch.length);
40
+ }
41
+ // 3) Whitespace-agnostic match:
42
+ // Replace all consecutive whitespace in search and content with a single marker
43
+ // to see if there's a match ignoring whitespace diffs
44
+ const normalizedSearch = trimmedSearch.replace(/\s+/g, ' ');
45
+ const normalizedContent = trimmedContent.replace(/\s+/g, ' ');
46
+ index = normalizedContent.indexOf(normalizedSearch);
47
+ if (index !== -1) {
48
+ // Find actual location in the original content. We do a rough approach here:
49
+ // We know the substring's "normalized" start is at 'index' in normalizedContent.
50
+ // A simple way is to walk through the original trimmedContent to find where that occurs.
51
+ // For brevity, we'll do a naive re-scan and hope it's correct in typical cases.
52
+ let runningIndex = 0;
53
+ let actualPos = offset;
54
+ for (const segment of trimmedSearch.replace(/\s+/g, ' ').split(' ')) {
55
+ const segIndex = content.indexOf(segment, actualPos);
56
+ if (segIndex === -1) {
57
+ break; // mismatch, won't happen if we truly found it
58
+ }
59
+ if (runningIndex === 0) {
60
+ // First segment helps define the start
61
+ actualPos = segIndex;
62
+ }
63
+ else {
64
+ // Move just after the segment to keep scanning
65
+ actualPos = segIndex + segment.length;
66
+ }
67
+ runningIndex++;
68
+ }
69
+ // By the time we're done, we need to find the actual matched region.
70
+ // The first segment position tells us where the match started.
71
+ // We need to scan from there to find where the actual match ends by finding
72
+ // the actual original text that corresponds to our whitespace-normalized match.
73
+ //
74
+ // Reconstruct the actual match by finding the start and walking forward through
75
+ // the original content, matching the pattern of words/non-whitespace from trimmedSearch.
76
+ const searchWords = trimmedSearch
77
+ .replace(/\s+/g, ' ')
78
+ .split(' ')
79
+ .filter((w) => w.length > 0);
80
+ let matchStartPos = -1;
81
+ let matchEndPos = -1;
82
+ // Find where the sequence of words starts in content
83
+ if (searchWords.length > 0) {
84
+ const firstWordPos = content.indexOf(searchWords[0], offset);
85
+ if (firstWordPos !== -1) {
86
+ matchStartPos = firstWordPos;
87
+ matchEndPos = firstWordPos + searchWords[0].length;
88
+ // Try to match subsequent words
89
+ for (let i = 1; i < searchWords.length; i++) {
90
+ const nextWordPos = content.indexOf(searchWords[i], matchEndPos);
91
+ if (nextWordPos === -1 || nextWordPos > matchEndPos + 100) {
92
+ // Word not found or too far (arbitrary threshold for reasonable whitespace)
93
+ matchStartPos = -1;
94
+ break;
95
+ }
96
+ matchEndPos = nextWordPos + searchWords[i].length;
97
+ }
98
+ }
99
+ }
100
+ if (matchStartPos !== -1 && matchEndPos !== -1) {
101
+ return content.slice(0, matchStartPos) + replace + content.slice(matchEndPos);
102
+ }
103
+ }
104
+ return null;
105
+ };
106
+ let updatedFile = fileContent;
107
+ let appliedCount = 0;
108
+ const totalCount = blocks.length;
109
+ for (const { search, replace } of blocks) {
110
+ const result = findAndReplace(updatedFile, search, replace);
111
+ if (result !== null) {
112
+ updatedFile = result;
113
+ appliedCount++;
114
+ }
115
+ }
116
+ let status;
117
+ if (appliedCount === 0) {
118
+ status = 'no_diff_applied';
119
+ }
120
+ else if (appliedCount < totalCount) {
121
+ status = 'some_diff_applied';
122
+ }
123
+ else {
124
+ status = 'all_diff_applied';
125
+ }
126
+ return {
127
+ content: updatedFile,
128
+ status,
129
+ appliedCount,
130
+ totalCount,
131
+ };
132
+ };
133
+ //# sourceMappingURL=replaceInFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replaceInFile.js","sourceRoot":"","sources":["../../../src/tools/utils/replaceInFile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};