@morphllm/morphsdk 0.2.120 → 0.2.122

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 (204) hide show
  1. package/dist/{chunk-7TM4RBXE.js → chunk-2AQLRL4U.js} +2 -2
  2. package/dist/{chunk-XQ4KEOJT.js → chunk-2MJEULZU.js} +2 -2
  3. package/dist/{chunk-SNY2UKHQ.js → chunk-3PMFQ5AV.js} +4 -4
  4. package/dist/{chunk-A54BOCBI.js → chunk-4GEBF5OH.js} +2 -2
  5. package/dist/{chunk-VVEK5JSH.js → chunk-4IU2K63O.js} +4 -4
  6. package/dist/{chunk-HCN2MLSO.js → chunk-4LA3OT4Q.js} +28 -4
  7. package/dist/chunk-4LA3OT4Q.js.map +1 -0
  8. package/dist/{chunk-HBWOWL7L.js → chunk-5UUJULLM.js} +2 -2
  9. package/dist/chunk-63VHBANJ.js +22 -0
  10. package/dist/chunk-63VHBANJ.js.map +1 -0
  11. package/dist/{chunk-L5C6E32T.js → chunk-64KNVHR4.js} +1 -1
  12. package/dist/{chunk-L5C6E32T.js.map → chunk-64KNVHR4.js.map} +1 -1
  13. package/dist/{chunk-2BPPWIJI.js → chunk-73GZ6KUK.js} +2 -2
  14. package/dist/{chunk-NW6PJIID.js → chunk-7KOUCN6T.js} +2 -2
  15. package/dist/{chunk-NLDYHLRB.js → chunk-EBROW6GK.js} +2 -2
  16. package/dist/{chunk-TVPEH6FF.js → chunk-GTANVDUZ.js} +2 -2
  17. package/dist/chunk-J267T54M.js +76 -0
  18. package/dist/chunk-J267T54M.js.map +1 -0
  19. package/dist/{chunk-KW7OEGZK.js → chunk-KJZMKDDP.js} +16 -2
  20. package/dist/{chunk-KW7OEGZK.js.map → chunk-KJZMKDDP.js.map} +1 -1
  21. package/dist/{chunk-4VLTYTEY.js → chunk-L4URLBKV.js} +3 -3
  22. package/dist/{chunk-T7F3DIRK.js → chunk-LE24SVVU.js} +2 -2
  23. package/dist/{chunk-BVINWDTA.js → chunk-MQWEZJTP.js} +6 -6
  24. package/dist/{chunk-6ODXYTLF.js → chunk-OTGBQEVH.js} +2 -2
  25. package/dist/{chunk-7HKYJ2MW.js → chunk-OWISPSLH.js} +2 -2
  26. package/dist/{chunk-HQAPRX5T.js → chunk-QGE7FGGT.js} +4 -4
  27. package/dist/{chunk-4RO43W62.js → chunk-RNKHRNSG.js} +8 -3
  28. package/dist/chunk-RNKHRNSG.js.map +1 -0
  29. package/dist/{chunk-RZ4VC4BG.js → chunk-T3T4LGRD.js} +30 -3
  30. package/dist/chunk-T3T4LGRD.js.map +1 -0
  31. package/dist/{chunk-FZUUET6R.js → chunk-TBLMIAIH.js} +28 -3
  32. package/dist/chunk-TBLMIAIH.js.map +1 -0
  33. package/dist/{chunk-RODHADNG.js → chunk-TXT3W4QK.js} +69 -11
  34. package/dist/chunk-TXT3W4QK.js.map +1 -0
  35. package/dist/{chunk-P4EPXC2Q.js → chunk-UDGJQBTC.js} +70 -17
  36. package/dist/{chunk-P4EPXC2Q.js.map → chunk-UDGJQBTC.js.map} +1 -1
  37. package/dist/chunk-WYYR2EU6.js +29 -0
  38. package/dist/chunk-WYYR2EU6.js.map +1 -0
  39. package/dist/{chunk-5HPN4VL2.js → chunk-ZHRT6F72.js} +1 -1
  40. package/dist/{client-D7iO2TbA.d.ts → client-BJrzbMYL.d.ts} +52 -2
  41. package/dist/client.cjs +302 -9
  42. package/dist/client.cjs.map +1 -1
  43. package/dist/client.d.ts +5 -2
  44. package/dist/client.js +25 -22
  45. package/dist/edge.cjs +81 -2
  46. package/dist/edge.cjs.map +1 -1
  47. package/dist/edge.d.ts +3 -0
  48. package/dist/edge.js +8 -4
  49. package/dist/index.cjs +304 -9
  50. package/dist/index.cjs.map +1 -1
  51. package/dist/index.d.ts +5 -2
  52. package/dist/index.js +30 -24
  53. package/dist/modelrouter/core.cjs +7 -2
  54. package/dist/modelrouter/core.cjs.map +1 -1
  55. package/dist/modelrouter/core.js +3 -3
  56. package/dist/modelrouter/index.cjs +7 -2
  57. package/dist/modelrouter/index.cjs.map +1 -1
  58. package/dist/modelrouter/index.js +3 -3
  59. package/dist/tools/browser/anthropic.cjs +7 -2
  60. package/dist/tools/browser/anthropic.cjs.map +1 -1
  61. package/dist/tools/browser/anthropic.js +5 -5
  62. package/dist/tools/browser/core.cjs +7 -2
  63. package/dist/tools/browser/core.cjs.map +1 -1
  64. package/dist/tools/browser/core.js +4 -4
  65. package/dist/tools/browser/index.cjs +7 -2
  66. package/dist/tools/browser/index.cjs.map +1 -1
  67. package/dist/tools/browser/index.js +7 -7
  68. package/dist/tools/browser/openai.cjs +7 -2
  69. package/dist/tools/browser/openai.cjs.map +1 -1
  70. package/dist/tools/browser/openai.js +5 -5
  71. package/dist/tools/browser/profiles/core.cjs +7 -2
  72. package/dist/tools/browser/profiles/core.cjs.map +1 -1
  73. package/dist/tools/browser/profiles/core.js +3 -3
  74. package/dist/tools/browser/profiles/index.cjs +7 -2
  75. package/dist/tools/browser/profiles/index.cjs.map +1 -1
  76. package/dist/tools/browser/profiles/index.js +3 -3
  77. package/dist/tools/browser/vercel.cjs +7 -2
  78. package/dist/tools/browser/vercel.cjs.map +1 -1
  79. package/dist/tools/browser/vercel.js +5 -5
  80. package/dist/tools/codebase_search/anthropic.cjs +7 -2
  81. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  82. package/dist/tools/codebase_search/anthropic.js +4 -4
  83. package/dist/tools/codebase_search/core.cjs +7 -2
  84. package/dist/tools/codebase_search/core.cjs.map +1 -1
  85. package/dist/tools/codebase_search/core.js +3 -3
  86. package/dist/tools/codebase_search/index.cjs +7 -2
  87. package/dist/tools/codebase_search/index.cjs.map +1 -1
  88. package/dist/tools/codebase_search/index.js +6 -6
  89. package/dist/tools/codebase_search/openai.cjs +7 -2
  90. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  91. package/dist/tools/codebase_search/openai.js +4 -4
  92. package/dist/tools/codebase_search/vercel.cjs +7 -2
  93. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  94. package/dist/tools/codebase_search/vercel.js +4 -4
  95. package/dist/tools/compact/core.cjs +110 -0
  96. package/dist/tools/compact/core.cjs.map +1 -0
  97. package/dist/tools/compact/core.d.ts +37 -0
  98. package/dist/tools/compact/core.js +8 -0
  99. package/dist/tools/compact/core.js.map +1 -0
  100. package/dist/tools/compact/index.cjs +112 -0
  101. package/dist/tools/compact/index.cjs.map +1 -0
  102. package/dist/tools/compact/index.d.ts +4 -0
  103. package/dist/tools/compact/index.js +8 -0
  104. package/dist/tools/compact/index.js.map +1 -0
  105. package/dist/tools/compact/types.cjs +19 -0
  106. package/dist/tools/compact/types.cjs.map +1 -0
  107. package/dist/tools/compact/types.d.ts +60 -0
  108. package/dist/tools/compact/types.js +1 -0
  109. package/dist/tools/compact/types.js.map +1 -0
  110. package/dist/tools/fastapply/anthropic.cjs +7 -2
  111. package/dist/tools/fastapply/anthropic.cjs.map +1 -1
  112. package/dist/tools/fastapply/anthropic.js +4 -4
  113. package/dist/tools/fastapply/apply.cjs +7 -2
  114. package/dist/tools/fastapply/apply.cjs.map +1 -1
  115. package/dist/tools/fastapply/apply.js +2 -2
  116. package/dist/tools/fastapply/core.cjs +7 -2
  117. package/dist/tools/fastapply/core.cjs.map +1 -1
  118. package/dist/tools/fastapply/core.js +3 -3
  119. package/dist/tools/fastapply/index.cjs +7 -2
  120. package/dist/tools/fastapply/index.cjs.map +1 -1
  121. package/dist/tools/fastapply/index.d.ts +1 -1
  122. package/dist/tools/fastapply/index.js +8 -8
  123. package/dist/tools/fastapply/openai.cjs +7 -2
  124. package/dist/tools/fastapply/openai.cjs.map +1 -1
  125. package/dist/tools/fastapply/openai.js +4 -4
  126. package/dist/tools/fastapply/vercel.cjs +7 -2
  127. package/dist/tools/fastapply/vercel.cjs.map +1 -1
  128. package/dist/tools/fastapply/vercel.d.ts +1 -1
  129. package/dist/tools/fastapply/vercel.js +4 -4
  130. package/dist/tools/index.cjs +7 -2
  131. package/dist/tools/index.cjs.map +1 -1
  132. package/dist/tools/index.d.ts +1 -1
  133. package/dist/tools/index.js +8 -8
  134. package/dist/tools/utils/resilience.cjs +7 -2
  135. package/dist/tools/utils/resilience.cjs.map +1 -1
  136. package/dist/tools/utils/resilience.js +2 -2
  137. package/dist/tools/warp_grep/agent/runner.cjs +7 -2
  138. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  139. package/dist/tools/warp_grep/agent/runner.js +3 -3
  140. package/dist/tools/warp_grep/anthropic.cjs +369 -2
  141. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  142. package/dist/tools/warp_grep/anthropic.d.ts +35 -2
  143. package/dist/tools/warp_grep/anthropic.js +10 -6
  144. package/dist/tools/warp_grep/client.cjs +109 -9
  145. package/dist/tools/warp_grep/client.cjs.map +1 -1
  146. package/dist/tools/warp_grep/client.d.ts +32 -1
  147. package/dist/tools/warp_grep/client.js +6 -4
  148. package/dist/tools/warp_grep/gemini.cjs +369 -2
  149. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  150. package/dist/tools/warp_grep/gemini.d.ts +35 -2
  151. package/dist/tools/warp_grep/gemini.js +39 -5
  152. package/dist/tools/warp_grep/gemini.js.map +1 -1
  153. package/dist/tools/warp_grep/harness.js +4 -4
  154. package/dist/tools/warp_grep/index.cjs +128 -9
  155. package/dist/tools/warp_grep/index.cjs.map +1 -1
  156. package/dist/tools/warp_grep/index.d.ts +23 -2
  157. package/dist/tools/warp_grep/index.js +19 -8
  158. package/dist/tools/warp_grep/openai.cjs +372 -2
  159. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  160. package/dist/tools/warp_grep/openai.d.ts +35 -2
  161. package/dist/tools/warp_grep/openai.js +10 -6
  162. package/dist/tools/warp_grep/providers/code_storage_http.cjs +53 -0
  163. package/dist/tools/warp_grep/providers/code_storage_http.cjs.map +1 -0
  164. package/dist/tools/warp_grep/providers/code_storage_http.d.ts +23 -0
  165. package/dist/tools/warp_grep/providers/code_storage_http.js +8 -0
  166. package/dist/tools/warp_grep/providers/code_storage_http.js.map +1 -0
  167. package/dist/tools/warp_grep/providers/remote.d.ts +1 -1
  168. package/dist/tools/warp_grep/utils/github.cjs +46 -0
  169. package/dist/tools/warp_grep/utils/github.cjs.map +1 -0
  170. package/dist/tools/warp_grep/utils/github.d.ts +13 -0
  171. package/dist/tools/warp_grep/utils/github.js +8 -0
  172. package/dist/tools/warp_grep/utils/github.js.map +1 -0
  173. package/dist/tools/warp_grep/vercel.cjs +157 -2
  174. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  175. package/dist/tools/warp_grep/vercel.d.ts +32 -2
  176. package/dist/tools/warp_grep/vercel.js +10 -6
  177. package/dist/{types-D5p8QErL.d.ts → types-CA7989hK.d.ts} +17 -1
  178. package/dist/version.cjs +7 -2
  179. package/dist/version.cjs.map +1 -1
  180. package/dist/version.js +1 -1
  181. package/package.json +7 -2
  182. package/dist/chunk-4RO43W62.js.map +0 -1
  183. package/dist/chunk-FZUUET6R.js.map +0 -1
  184. package/dist/chunk-HCN2MLSO.js.map +0 -1
  185. package/dist/chunk-RODHADNG.js.map +0 -1
  186. package/dist/chunk-RZ4VC4BG.js.map +0 -1
  187. package/dist/{chunk-7TM4RBXE.js.map → chunk-2AQLRL4U.js.map} +0 -0
  188. package/dist/{chunk-XQ4KEOJT.js.map → chunk-2MJEULZU.js.map} +0 -0
  189. package/dist/{chunk-SNY2UKHQ.js.map → chunk-3PMFQ5AV.js.map} +0 -0
  190. package/dist/{chunk-A54BOCBI.js.map → chunk-4GEBF5OH.js.map} +0 -0
  191. package/dist/{chunk-VVEK5JSH.js.map → chunk-4IU2K63O.js.map} +0 -0
  192. package/dist/{chunk-HBWOWL7L.js.map → chunk-5UUJULLM.js.map} +0 -0
  193. package/dist/{chunk-2BPPWIJI.js.map → chunk-73GZ6KUK.js.map} +0 -0
  194. package/dist/{chunk-NW6PJIID.js.map → chunk-7KOUCN6T.js.map} +0 -0
  195. package/dist/{chunk-NLDYHLRB.js.map → chunk-EBROW6GK.js.map} +0 -0
  196. package/dist/{chunk-TVPEH6FF.js.map → chunk-GTANVDUZ.js.map} +0 -0
  197. package/dist/{chunk-4VLTYTEY.js.map → chunk-L4URLBKV.js.map} +0 -0
  198. package/dist/{chunk-T7F3DIRK.js.map → chunk-LE24SVVU.js.map} +0 -0
  199. package/dist/{chunk-BVINWDTA.js.map → chunk-MQWEZJTP.js.map} +0 -0
  200. package/dist/{chunk-6ODXYTLF.js.map → chunk-OTGBQEVH.js.map} +0 -0
  201. package/dist/{chunk-7HKYJ2MW.js.map → chunk-OWISPSLH.js.map} +0 -0
  202. package/dist/{chunk-HQAPRX5T.js.map → chunk-QGE7FGGT.js.map} +0 -0
  203. package/dist/{chunk-5HPN4VL2.js.map → chunk-ZHRT6F72.js.map} +0 -0
  204. package/dist/{vercel-B1GZ_g9N.d.ts → vercel-BTSPdTA-.d.ts} +2 -2
@@ -1,7 +1,7 @@
1
1
  import { Tool } from '@anthropic-ai/sdk/resources/messages';
2
2
  export { formatResult } from './client.js';
3
3
  export { getSystemPrompt } from './agent/prompt.js';
4
- import { d as WarpGrepToolConfig, b as WarpGrepResult } from '../../types-D5p8QErL.js';
4
+ import { d as WarpGrepToolConfig, b as WarpGrepResult, e as GitHubSearchToolConfig } from '../../types-CA7989hK.js';
5
5
  import './agent/types.js';
6
6
  import '../utils/resilience.js';
7
7
  import './providers/types.js';
@@ -79,5 +79,38 @@ declare function createWarpGrepTool(config: WarpGrepToolConfig): Tool & {
79
79
  formatResult: (result: WarpGrepResult) => string;
80
80
  getSystemPrompt: () => string;
81
81
  };
82
+ /**
83
+ * Create a GitHub search tool for Anthropic SDK
84
+ *
85
+ * @param config - Configuration options (morphApiKey, morphApiUrl, codeSearchUrl, timeout)
86
+ * @returns Anthropic Tool with execute and formatResult methods
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * import Anthropic from '@anthropic-ai/sdk';
91
+ * import { createGitHubSearchTool } from '@morphllm/morphsdk/tools/warp-grep/anthropic';
92
+ *
93
+ * const tool = createGitHubSearchTool({ morphApiKey: process.env.MORPH_API_KEY });
94
+ *
95
+ * const response = await client.messages.create({
96
+ * model: 'claude-sonnet-4-5-20250929',
97
+ * tools: [tool],
98
+ * messages: [{ role: 'user', content: 'How does auth work in vercel/next.js?' }]
99
+ * });
100
+ *
101
+ * // Execute
102
+ * const result = await tool.execute({ query: 'auth middleware', github: 'vercel/next.js' });
103
+ * console.log(tool.formatResult(result));
104
+ * ```
105
+ */
106
+ declare function createGitHubSearchTool(config: GitHubSearchToolConfig): Tool & {
107
+ execute: (input: {
108
+ query: string;
109
+ github: string;
110
+ branch?: string;
111
+ }) => Promise<WarpGrepResult>;
112
+ formatResult: (result: WarpGrepResult) => string;
113
+ getSystemPrompt: () => string;
114
+ };
82
115
 
83
- export { createWarpGrepTool, execute, warpGrepTool };
116
+ export { createGitHubSearchTool, createWarpGrepTool, execute, warpGrepTool };
@@ -1,24 +1,28 @@
1
1
  import {
2
+ createGitHubSearchTool,
2
3
  createWarpGrepTool,
3
4
  execute,
4
5
  warpGrepTool
5
- } from "../../chunk-HCN2MLSO.js";
6
- import "../../chunk-KW7OEGZK.js";
6
+ } from "../../chunk-4LA3OT4Q.js";
7
+ import "../../chunk-KJZMKDDP.js";
7
8
  import {
8
9
  formatResult
9
- } from "../../chunk-RODHADNG.js";
10
- import "../../chunk-BVINWDTA.js";
10
+ } from "../../chunk-TXT3W4QK.js";
11
+ import "../../chunk-WYYR2EU6.js";
11
12
  import "../../chunk-PUGSTXLO.js";
13
+ import "../../chunk-63VHBANJ.js";
14
+ import "../../chunk-MQWEZJTP.js";
12
15
  import "../../chunk-3MLWXJTJ.js";
16
+ import "../../chunk-5PNMAWLC.js";
13
17
  import "../../chunk-APP75CBN.js";
14
18
  import "../../chunk-GHGJAQSJ.js";
15
19
  import {
16
20
  getSystemPrompt
17
21
  } from "../../chunk-FMLHRJDF.js";
18
- import "../../chunk-5PNMAWLC.js";
19
- import "../../chunk-4RO43W62.js";
22
+ import "../../chunk-RNKHRNSG.js";
20
23
  import "../../chunk-PZ5AY32C.js";
21
24
  export {
25
+ createGitHubSearchTool,
22
26
  createWarpGrepTool,
23
27
  execute,
24
28
  formatResult,
@@ -1377,7 +1377,7 @@ var import_openai = __toESM(require("openai"), 1);
1377
1377
  // package.json
1378
1378
  var package_default = {
1379
1379
  name: "@morphllm/morphsdk",
1380
- version: "0.2.120",
1380
+ version: "0.2.122",
1381
1381
  description: "TypeScript SDK and CLI for Morph Fast Apply integration",
1382
1382
  type: "module",
1383
1383
  main: "./dist/index.cjs",
@@ -1503,6 +1503,11 @@ var package_default = {
1503
1503
  types: "./dist/modelrouter/index.d.ts",
1504
1504
  import: "./dist/modelrouter/index.js",
1505
1505
  require: "./dist/modelrouter/index.cjs"
1506
+ },
1507
+ "./tools/compact": {
1508
+ types: "./dist/tools/compact/index.d.ts",
1509
+ import: "./dist/tools/compact/index.js",
1510
+ require: "./dist/tools/compact/index.cjs"
1506
1511
  }
1507
1512
  },
1508
1513
  files: [
@@ -1514,7 +1519,7 @@ var package_default = {
1514
1519
  "!dist/**/*.test.*"
1515
1520
  ],
1516
1521
  scripts: {
1517
- build: "tsup version.ts index.ts edge.ts client.ts tools/index.ts tools/fastapply/index.ts tools/fastapply/core.ts tools/fastapply/apply.ts tools/fastapply/types.ts tools/fastapply/prompts.ts tools/fastapply/anthropic.ts tools/fastapply/openai.ts tools/fastapply/vercel.ts tools/codebase_search/index.ts tools/codebase_search/core.ts tools/codebase_search/types.ts tools/codebase_search/prompts.ts tools/codebase_search/anthropic.ts tools/codebase_search/openai.ts tools/codebase_search/vercel.ts tools/warp_grep/index.ts tools/warp_grep/client.ts tools/warp_grep/openai.ts tools/warp_grep/anthropic.ts tools/warp_grep/vercel.ts tools/warp_grep/gemini.ts tools/warp_grep/harness.ts tools/warp_grep/agent/config.ts tools/warp_grep/agent/prompt.ts tools/warp_grep/agent/parser.ts tools/warp_grep/agent/runner.ts tools/warp_grep/agent/types.ts tools/warp_grep/agent/formatter.ts tools/warp_grep/providers/types.ts tools/warp_grep/providers/local.ts tools/warp_grep/providers/remote.ts tools/warp_grep/tools/grep.ts tools/warp_grep/tools/analyse.ts tools/warp_grep/tools/read.ts tools/warp_grep/tools/finish.ts tools/warp_grep/utils/paths.ts tools/warp_grep/utils/ripgrep.ts tools/warp_grep/utils/format.ts tools/warp_grep/utils/files.ts git/index.ts git/client.ts git/config.ts git/types.ts tools/browser/index.ts tools/browser/core.ts tools/browser/types.ts tools/browser/prompts.ts tools/browser/anthropic.ts tools/browser/openai.ts tools/browser/vercel.ts tools/browser/live.ts tools/browser/errors.ts tools/browser/profiles/index.ts tools/browser/profiles/core.ts tools/browser/profiles/types.ts modelrouter/index.ts modelrouter/core.ts modelrouter/types.ts tools/utils/resilience.ts --format esm,cjs --sourcemap --clean --dts --dts-resolve",
1522
+ build: "tsup version.ts index.ts edge.ts client.ts tools/index.ts tools/fastapply/index.ts tools/fastapply/core.ts tools/fastapply/apply.ts tools/fastapply/types.ts tools/fastapply/prompts.ts tools/fastapply/anthropic.ts tools/fastapply/openai.ts tools/fastapply/vercel.ts tools/codebase_search/index.ts tools/codebase_search/core.ts tools/codebase_search/types.ts tools/codebase_search/prompts.ts tools/codebase_search/anthropic.ts tools/codebase_search/openai.ts tools/codebase_search/vercel.ts tools/warp_grep/index.ts tools/warp_grep/client.ts tools/warp_grep/openai.ts tools/warp_grep/anthropic.ts tools/warp_grep/vercel.ts tools/warp_grep/gemini.ts tools/warp_grep/harness.ts tools/warp_grep/agent/config.ts tools/warp_grep/agent/prompt.ts tools/warp_grep/agent/parser.ts tools/warp_grep/agent/runner.ts tools/warp_grep/agent/types.ts tools/warp_grep/agent/formatter.ts tools/warp_grep/providers/types.ts tools/warp_grep/providers/local.ts tools/warp_grep/providers/remote.ts tools/warp_grep/providers/code_storage_http.ts tools/warp_grep/tools/grep.ts tools/warp_grep/tools/analyse.ts tools/warp_grep/tools/read.ts tools/warp_grep/tools/finish.ts tools/warp_grep/utils/paths.ts tools/warp_grep/utils/github.ts tools/warp_grep/utils/ripgrep.ts tools/warp_grep/utils/format.ts tools/warp_grep/utils/files.ts git/index.ts git/client.ts git/config.ts git/types.ts tools/browser/index.ts tools/browser/core.ts tools/browser/types.ts tools/browser/prompts.ts tools/browser/anthropic.ts tools/browser/openai.ts tools/browser/vercel.ts tools/browser/live.ts tools/browser/errors.ts tools/browser/profiles/index.ts tools/browser/profiles/core.ts tools/browser/profiles/types.ts modelrouter/index.ts modelrouter/core.ts modelrouter/types.ts tools/compact/index.ts tools/compact/core.ts tools/compact/types.ts tools/utils/resilience.ts --format esm,cjs --sourcemap --clean --dts --dts-resolve",
1518
1523
  prepare: "npm run build",
1519
1524
  typecheck: "tsc --noEmit",
1520
1525
  lint: "eslint .",
@@ -2152,7 +2157,51 @@ var RemoteCommandsProvider = class {
2152
2157
  }
2153
2158
  };
2154
2159
 
2160
+ // tools/warp_grep/providers/code_storage_http.ts
2161
+ async function post(url, body, op) {
2162
+ const res = await fetch(url, {
2163
+ method: "POST",
2164
+ headers: { "Content-Type": "application/json" },
2165
+ body: JSON.stringify(body)
2166
+ });
2167
+ if (!res.ok) {
2168
+ const text = await res.text().catch(() => res.statusText);
2169
+ throw new Error(`${op} failed (${res.status}): ${text}`);
2170
+ }
2171
+ const data = await res.json();
2172
+ if (data.error) throw new Error(data.error);
2173
+ return data.stdout;
2174
+ }
2175
+ function createCodeStorageHttpCommands(config) {
2176
+ const { baseUrl, repoId, branch } = config;
2177
+ const encodedRepoId = encodeURIComponent(repoId);
2178
+ return {
2179
+ grep: (pattern, path5, glob) => post(`${baseUrl}/api/code-search/${encodedRepoId}/grep`, { pattern, path: path5, glob, branch }, "grep"),
2180
+ read: (path5, start, end) => post(`${baseUrl}/api/code-search/${encodedRepoId}/read`, { path: path5, start, end, branch }, "read"),
2181
+ listDir: (path5, maxDepth) => post(`${baseUrl}/api/code-search/${encodedRepoId}/list`, { path: path5, maxDepth, branch }, "list")
2182
+ };
2183
+ }
2184
+
2185
+ // tools/warp_grep/utils/github.ts
2186
+ function parseGitHubUrl(input) {
2187
+ input = input.trim();
2188
+ const urlPattern = /^(?:https?:\/\/)?github\.com\/([^\/]+)\/([^\/\?\#]+)/;
2189
+ const match = input.match(urlPattern);
2190
+ if (match) {
2191
+ return { owner: match[1], repo: match[2].replace(/\.git$/, "") };
2192
+ }
2193
+ const shortPattern = /^([^\/]+)\/([^\/]+)$/;
2194
+ const shortMatch = input.match(shortPattern);
2195
+ if (shortMatch && !shortMatch[1].includes(".")) {
2196
+ return { owner: shortMatch[1], repo: shortMatch[2].replace(/\.git$/, "") };
2197
+ }
2198
+ throw new Error(
2199
+ `Invalid GitHub URL or shorthand: "${input}". Expected "owner/repo" or "https://github.com/owner/repo"`
2200
+ );
2201
+ }
2202
+
2155
2203
  // tools/warp_grep/client.ts
2204
+ var DEFAULT_CODE_SEARCH_URL = "https://morphllm.com";
2156
2205
  async function getLocalProvider(repoRoot, excludes) {
2157
2206
  const { LocalRipgrepProvider: LocalRipgrepProvider2 } = await Promise.resolve().then(() => (init_local(), local_exports));
2158
2207
  return new LocalRipgrepProvider2(repoRoot, excludes);
@@ -2160,13 +2209,7 @@ async function getLocalProvider(repoRoot, excludes) {
2160
2209
  var WarpGrepClient = class {
2161
2210
  config;
2162
2211
  constructor(config = {}) {
2163
- this.config = {
2164
- morphApiKey: config.morphApiKey,
2165
- morphApiUrl: config.morphApiUrl,
2166
- debug: config.debug,
2167
- timeout: config.timeout,
2168
- retryConfig: config.retryConfig
2169
- };
2212
+ this.config = { ...config };
2170
2213
  }
2171
2214
  execute(input) {
2172
2215
  const toolConfig = {
@@ -2186,6 +2229,63 @@ var WarpGrepClient = class {
2186
2229
  }
2187
2230
  return executeToolCall({ query: input.query }, toolConfig);
2188
2231
  }
2232
+ searchGitHub(input) {
2233
+ if (input.streamSteps) {
2234
+ return this._searchGitHubStreaming(input);
2235
+ }
2236
+ return this._searchGitHubAsync(input);
2237
+ }
2238
+ async _resolveGitHubRepo(input) {
2239
+ const { owner, repo } = parseGitHubUrl(input.github);
2240
+ const baseUrl = this.config.codeSearchUrl || DEFAULT_CODE_SEARCH_URL;
2241
+ const importRes = await fetch(`${baseUrl}/api/code-search/get-or-create?url=${encodeURIComponent(`${owner}/${repo}`)}`);
2242
+ if (!importRes.ok) {
2243
+ const text = await importRes.text().catch(() => importRes.statusText);
2244
+ throw new Error(`Failed to import repo ${owner}/${repo}: ${text}`);
2245
+ }
2246
+ const { repoId, defaultBranch } = await importRes.json();
2247
+ return {
2248
+ repo,
2249
+ remoteCommands: createCodeStorageHttpCommands({ baseUrl, repoId, branch: input.branch || defaultBranch })
2250
+ };
2251
+ }
2252
+ async _searchGitHubAsync(input) {
2253
+ try {
2254
+ const { repo, remoteCommands } = await this._resolveGitHubRepo(input);
2255
+ return this.execute({
2256
+ query: input.query,
2257
+ repoRoot: repo,
2258
+ remoteCommands
2259
+ });
2260
+ } catch (error) {
2261
+ return { success: false, error: error instanceof Error ? error.message : String(error) };
2262
+ }
2263
+ }
2264
+ async *_searchGitHubStreaming(input) {
2265
+ let repo;
2266
+ let remoteCommands;
2267
+ try {
2268
+ ({ repo, remoteCommands } = await this._resolveGitHubRepo(input));
2269
+ } catch (error) {
2270
+ return { success: false, error: error instanceof Error ? error.message : String(error) };
2271
+ }
2272
+ const generator = this.execute({
2273
+ query: input.query,
2274
+ repoRoot: repo,
2275
+ remoteCommands,
2276
+ streamSteps: true
2277
+ });
2278
+ let result;
2279
+ for (; ; ) {
2280
+ const { value, done } = await generator.next();
2281
+ if (done) {
2282
+ result = value;
2283
+ break;
2284
+ }
2285
+ yield value;
2286
+ }
2287
+ return result;
2288
+ }
2189
2289
  };
2190
2290
  function executeWarpGrep(input, config) {
2191
2291
  const client = new WarpGrepClient(config);