@morphllm/morphsdk 0.2.21 → 0.2.23

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 (193) hide show
  1. package/dist/{chunk-BILUTNBC.js → chunk-4A7UBGLS.js} +2 -2
  2. package/dist/chunk-73RQWOQC.js +16 -0
  3. package/dist/chunk-73RQWOQC.js.map +1 -0
  4. package/dist/chunk-AFEPUNAO.js +15 -0
  5. package/dist/chunk-AFEPUNAO.js.map +1 -0
  6. package/dist/{chunk-VJK4PH5V.js → chunk-AG3ICTC5.js} +5 -2
  7. package/dist/chunk-AG3ICTC5.js.map +1 -0
  8. package/dist/chunk-EAA7D24N.js +201 -0
  9. package/dist/chunk-EAA7D24N.js.map +1 -0
  10. package/dist/chunk-EK7OQPWD.js +44 -0
  11. package/dist/chunk-EK7OQPWD.js.map +1 -0
  12. package/dist/chunk-G2RSY56Q.js +11 -0
  13. package/dist/chunk-G2RSY56Q.js.map +1 -0
  14. package/dist/chunk-GTOXMAF2.js +140 -0
  15. package/dist/chunk-GTOXMAF2.js.map +1 -0
  16. package/dist/chunk-HKZB23U7.js +85 -0
  17. package/dist/chunk-HKZB23U7.js.map +1 -0
  18. package/dist/{chunk-34F3D6JD.js → chunk-HWJN5AMA.js} +8 -8
  19. package/dist/chunk-LN4CTQZG.js +56 -0
  20. package/dist/chunk-LN4CTQZG.js.map +1 -0
  21. package/dist/chunk-NDZO5IPV.js +121 -0
  22. package/dist/chunk-NDZO5IPV.js.map +1 -0
  23. package/dist/chunk-RSLIOCOE.js +26 -0
  24. package/dist/chunk-RSLIOCOE.js.map +1 -0
  25. package/dist/chunk-S3GI7HNR.js +44 -0
  26. package/dist/chunk-S3GI7HNR.js.map +1 -0
  27. package/dist/chunk-SMGZ6A64.js +53 -0
  28. package/dist/chunk-SMGZ6A64.js.map +1 -0
  29. package/dist/chunk-TICMYDII.js +81 -0
  30. package/dist/chunk-TICMYDII.js.map +1 -0
  31. package/dist/chunk-UYBIKZPM.js +135 -0
  32. package/dist/chunk-UYBIKZPM.js.map +1 -0
  33. package/dist/chunk-VBBJGWHY.js +73 -0
  34. package/dist/chunk-VBBJGWHY.js.map +1 -0
  35. package/dist/chunk-W5CHJ6OX.js +53 -0
  36. package/dist/chunk-W5CHJ6OX.js.map +1 -0
  37. package/dist/{chunk-WXBUVKYL.js → chunk-WHZQDTM6.js} +2 -2
  38. package/dist/chunk-XYPMN4A3.js +1 -0
  39. package/dist/chunk-XYPMN4A3.js.map +1 -0
  40. package/dist/{chunk-YVGRWE7D.js → chunk-Y2IY7NYY.js} +2 -2
  41. package/dist/chunk-Z2FBMSNE.js +10 -0
  42. package/dist/chunk-Z2FBMSNE.js.map +1 -0
  43. package/dist/client.cjs +4 -1
  44. package/dist/client.cjs.map +1 -1
  45. package/dist/client.js +5 -5
  46. package/dist/index.cjs +4 -1
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.js +9 -9
  49. package/dist/tools/codebase_search/anthropic.cjs +4 -1
  50. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  51. package/dist/tools/codebase_search/anthropic.js +2 -2
  52. package/dist/tools/codebase_search/core.cjs +4 -1
  53. package/dist/tools/codebase_search/core.cjs.map +1 -1
  54. package/dist/tools/codebase_search/core.js +1 -1
  55. package/dist/tools/codebase_search/index.cjs +4 -1
  56. package/dist/tools/codebase_search/index.cjs.map +1 -1
  57. package/dist/tools/codebase_search/index.js +6 -6
  58. package/dist/tools/codebase_search/openai.cjs +4 -1
  59. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  60. package/dist/tools/codebase_search/openai.js +2 -2
  61. package/dist/tools/codebase_search/types.cjs.map +1 -1
  62. package/dist/tools/codebase_search/vercel.cjs +4 -1
  63. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  64. package/dist/tools/codebase_search/vercel.js +2 -2
  65. package/dist/tools/warp_grep/agent/config.cjs +41 -0
  66. package/dist/tools/warp_grep/agent/config.cjs.map +1 -0
  67. package/dist/tools/warp_grep/agent/config.js +12 -0
  68. package/dist/tools/warp_grep/agent/config.js.map +1 -0
  69. package/dist/tools/warp_grep/agent/formatter.cjs +106 -0
  70. package/dist/tools/warp_grep/agent/formatter.cjs.map +1 -0
  71. package/dist/tools/warp_grep/agent/formatter.js +10 -0
  72. package/dist/tools/warp_grep/agent/formatter.js.map +1 -0
  73. package/dist/tools/warp_grep/agent/grep_helpers.cjs +148 -0
  74. package/dist/tools/warp_grep/agent/grep_helpers.cjs.map +1 -0
  75. package/dist/tools/warp_grep/agent/grep_helpers.js +14 -0
  76. package/dist/tools/warp_grep/agent/grep_helpers.js.map +1 -0
  77. package/dist/tools/warp_grep/agent/parser.cjs +165 -0
  78. package/dist/tools/warp_grep/agent/parser.cjs.map +1 -0
  79. package/dist/tools/warp_grep/agent/parser.js +10 -0
  80. package/dist/tools/warp_grep/agent/parser.js.map +1 -0
  81. package/dist/tools/warp_grep/agent/prompt.cjs +110 -0
  82. package/dist/tools/warp_grep/agent/prompt.cjs.map +1 -0
  83. package/dist/tools/warp_grep/agent/prompt.js +10 -0
  84. package/dist/tools/warp_grep/agent/prompt.js.map +1 -0
  85. package/dist/tools/warp_grep/agent/runner.cjs +744 -0
  86. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -0
  87. package/dist/tools/warp_grep/agent/runner.js +17 -0
  88. package/dist/tools/warp_grep/agent/runner.js.map +1 -0
  89. package/dist/tools/warp_grep/agent/types.cjs +19 -0
  90. package/dist/tools/warp_grep/agent/types.cjs.map +1 -0
  91. package/dist/tools/warp_grep/agent/types.js +2 -0
  92. package/dist/tools/warp_grep/agent/types.js.map +1 -0
  93. package/dist/tools/warp_grep/anthropic.cjs +977 -0
  94. package/dist/tools/warp_grep/anthropic.cjs.map +1 -0
  95. package/dist/tools/warp_grep/anthropic.js +22 -0
  96. package/dist/tools/warp_grep/anthropic.js.map +1 -0
  97. package/dist/tools/warp_grep/index.cjs +1136 -0
  98. package/dist/tools/warp_grep/index.cjs.map +1 -0
  99. package/dist/tools/warp_grep/index.js +48 -0
  100. package/dist/tools/warp_grep/index.js.map +1 -0
  101. package/dist/tools/warp_grep/openai.cjs +980 -0
  102. package/dist/tools/warp_grep/openai.cjs.map +1 -0
  103. package/dist/tools/warp_grep/openai.js +22 -0
  104. package/dist/tools/warp_grep/openai.js.map +1 -0
  105. package/dist/tools/warp_grep/providers/command.cjs +98 -0
  106. package/dist/tools/warp_grep/providers/command.cjs.map +1 -0
  107. package/dist/tools/warp_grep/providers/command.js +9 -0
  108. package/dist/tools/warp_grep/providers/command.js.map +1 -0
  109. package/dist/tools/warp_grep/providers/local.cjs +232 -0
  110. package/dist/tools/warp_grep/providers/local.cjs.map +1 -0
  111. package/dist/tools/warp_grep/providers/local.js +12 -0
  112. package/dist/tools/warp_grep/providers/local.js.map +1 -0
  113. package/dist/tools/warp_grep/providers/types.cjs +19 -0
  114. package/dist/tools/warp_grep/providers/types.cjs.map +1 -0
  115. package/dist/tools/warp_grep/providers/types.js +1 -0
  116. package/dist/tools/warp_grep/providers/types.js.map +1 -0
  117. package/dist/tools/warp_grep/tools/analyse.cjs +40 -0
  118. package/dist/tools/warp_grep/tools/analyse.cjs.map +1 -0
  119. package/dist/tools/warp_grep/tools/analyse.js +8 -0
  120. package/dist/tools/warp_grep/tools/analyse.js.map +1 -0
  121. package/dist/tools/warp_grep/tools/finish.cjs +69 -0
  122. package/dist/tools/warp_grep/tools/finish.cjs.map +1 -0
  123. package/dist/tools/warp_grep/tools/finish.js +10 -0
  124. package/dist/tools/warp_grep/tools/finish.js.map +1 -0
  125. package/dist/tools/warp_grep/tools/grep.cjs +35 -0
  126. package/dist/tools/warp_grep/tools/grep.cjs.map +1 -0
  127. package/dist/tools/warp_grep/tools/grep.js +12 -0
  128. package/dist/tools/warp_grep/tools/grep.js.map +1 -0
  129. package/dist/tools/warp_grep/tools/read.cjs +34 -0
  130. package/dist/tools/warp_grep/tools/read.cjs.map +1 -0
  131. package/dist/tools/warp_grep/tools/read.js +8 -0
  132. package/dist/tools/warp_grep/tools/read.js.map +1 -0
  133. package/dist/tools/warp_grep/utils/files.cjs +45 -0
  134. package/dist/tools/warp_grep/utils/files.cjs.map +1 -0
  135. package/dist/tools/warp_grep/utils/files.js +8 -0
  136. package/dist/tools/warp_grep/utils/files.js.map +1 -0
  137. package/dist/tools/warp_grep/utils/format.cjs +42 -0
  138. package/dist/tools/warp_grep/utils/format.cjs.map +1 -0
  139. package/dist/tools/warp_grep/utils/format.js +18 -0
  140. package/dist/tools/warp_grep/utils/format.js.map +1 -0
  141. package/dist/tools/warp_grep/utils/paths.cjs +91 -0
  142. package/dist/tools/warp_grep/utils/paths.cjs.map +1 -0
  143. package/dist/tools/warp_grep/utils/paths.js +16 -0
  144. package/dist/tools/warp_grep/utils/paths.js.map +1 -0
  145. package/dist/tools/warp_grep/utils/ripgrep.cjs +50 -0
  146. package/dist/tools/warp_grep/utils/ripgrep.cjs.map +1 -0
  147. package/dist/tools/warp_grep/utils/ripgrep.js +8 -0
  148. package/dist/tools/warp_grep/utils/ripgrep.js.map +1 -0
  149. package/dist/tools/warp_grep/vercel.cjs +968 -0
  150. package/dist/tools/warp_grep/vercel.cjs.map +1 -0
  151. package/dist/tools/warp_grep/vercel.js +22 -0
  152. package/dist/tools/warp_grep/vercel.js.map +1 -0
  153. package/package.json +23 -3
  154. package/dist/anthropic-CknfcMoO.d.ts +0 -64
  155. package/dist/chunk-VJK4PH5V.js.map +0 -1
  156. package/dist/client.d.ts +0 -114
  157. package/dist/git/client.d.ts +0 -255
  158. package/dist/git/config.d.ts +0 -11
  159. package/dist/git/index.d.ts +0 -5
  160. package/dist/git/types.d.ts +0 -102
  161. package/dist/index.d.ts +0 -14
  162. package/dist/modelrouter/core.d.ts +0 -56
  163. package/dist/modelrouter/index.d.ts +0 -2
  164. package/dist/modelrouter/types.d.ts +0 -35
  165. package/dist/openai-BkKsS30n.d.ts +0 -111
  166. package/dist/tools/browser/anthropic.d.ts +0 -51
  167. package/dist/tools/browser/core.d.ts +0 -196
  168. package/dist/tools/browser/index.d.ts +0 -72
  169. package/dist/tools/browser/openai.d.ts +0 -69
  170. package/dist/tools/browser/prompts.d.ts +0 -7
  171. package/dist/tools/browser/types.d.ts +0 -227
  172. package/dist/tools/browser/vercel.d.ts +0 -69
  173. package/dist/tools/codebase_search/anthropic.d.ts +0 -40
  174. package/dist/tools/codebase_search/core.d.ts +0 -40
  175. package/dist/tools/codebase_search/index.d.ts +0 -10
  176. package/dist/tools/codebase_search/openai.d.ts +0 -87
  177. package/dist/tools/codebase_search/prompts.d.ts +0 -7
  178. package/dist/tools/codebase_search/types.d.ts +0 -46
  179. package/dist/tools/codebase_search/vercel.d.ts +0 -65
  180. package/dist/tools/fastapply/anthropic.d.ts +0 -4
  181. package/dist/tools/fastapply/core.d.ts +0 -41
  182. package/dist/tools/fastapply/index.d.ts +0 -10
  183. package/dist/tools/fastapply/openai.d.ts +0 -4
  184. package/dist/tools/fastapply/prompts.d.ts +0 -7
  185. package/dist/tools/fastapply/types.d.ts +0 -77
  186. package/dist/tools/fastapply/vercel.d.ts +0 -4
  187. package/dist/tools/index.d.ts +0 -10
  188. package/dist/tools/utils/resilience.d.ts +0 -58
  189. package/dist/vercel-B1GZ_g9N.d.ts +0 -69
  190. /package/dist/{chunk-BILUTNBC.js.map → chunk-4A7UBGLS.js.map} +0 -0
  191. /package/dist/{chunk-34F3D6JD.js.map → chunk-HWJN5AMA.js.map} +0 -0
  192. /package/dist/{chunk-WXBUVKYL.js.map → chunk-WHZQDTM6.js.map} +0 -0
  193. /package/dist/{chunk-YVGRWE7D.js.map → chunk-Y2IY7NYY.js.map} +0 -0
@@ -0,0 +1,73 @@
1
+ import {
2
+ DEFAULT_EXCLUDES
3
+ } from "./chunk-AFEPUNAO.js";
4
+
5
+ // tools/warp_grep/providers/command.ts
6
+ var CommandExecProvider = class {
7
+ constructor(opts) {
8
+ this.opts = opts;
9
+ }
10
+ map(path) {
11
+ return this.opts.pathMap ? this.opts.pathMap(path) : path;
12
+ }
13
+ async grep(params) {
14
+ const remotePath = this.map(params.path);
15
+ const args = [
16
+ "--no-config",
17
+ "--no-heading",
18
+ "--with-filename",
19
+ "--line-number",
20
+ "--color=never",
21
+ "--trim",
22
+ "--max-columns=400",
23
+ ...(this.opts.excludes ?? DEFAULT_EXCLUDES).flatMap((e) => ["-g", `!${e}`]),
24
+ params.pattern,
25
+ remotePath || "."
26
+ ];
27
+ const res = await this.opts.run("rg", args, { cwd: this.opts.cwd, env: this.opts.env });
28
+ if (res.exitCode === -1) throw new Error(res.stderr || "ripgrep execution failed");
29
+ if (res.exitCode !== 0 && res.exitCode !== 1) throw new Error(res.stderr || `ripgrep failed (${res.exitCode})`);
30
+ const lines = (res.stdout || "").trim().split(/\r?\n/).filter((l) => l.length > 0);
31
+ return { lines };
32
+ }
33
+ async glob(params) {
34
+ const remotePath = this.map(params.path);
35
+ const args = [
36
+ "--no-config",
37
+ "--files",
38
+ "-g",
39
+ params.pattern,
40
+ ...(this.opts.excludes ?? DEFAULT_EXCLUDES).flatMap((e) => ["-g", `!${e}`]),
41
+ remotePath || "."
42
+ ];
43
+ const res = await this.opts.run("rg", args, { cwd: this.opts.cwd, env: this.opts.env });
44
+ if (res.exitCode === -1) throw new Error(res.stderr || "ripgrep execution failed");
45
+ const files = (res.stdout || "").trim().split(/\r?\n/).filter((l) => l.length > 0);
46
+ return { files };
47
+ }
48
+ async read(params) {
49
+ const remotePath = this.map(params.path);
50
+ const rc = this.opts.readCommand ? this.opts.readCommand(remotePath, params.start, params.end) : { cmd: "sed", args: ["-n", `${params.start ?? 1},${params.end ?? 1e6}p`, remotePath] };
51
+ const res = await this.opts.run(rc.cmd, rc.args, { cwd: this.opts.cwd, env: this.opts.env });
52
+ if (res.exitCode !== 0) throw new Error(res.stderr || `read failed (${res.exitCode})`);
53
+ const text = res.stdout || "";
54
+ const lines = text.split(/\r?\n/).map((line, idx) => `${(params.start ?? 1) + idx}|${line}`);
55
+ return { lines: lines.filter((l) => l !== `${(params.start ?? 1) + (lines.length - 1)}|`) };
56
+ }
57
+ async analyse(params) {
58
+ const target = this.map(params.path);
59
+ const pattern = params.pattern ?? "*";
60
+ const files = await this.glob({ pattern, path: target }).catch(() => ({ files: [] }));
61
+ return files.files.slice(0, params.maxResults ?? 100).map((f) => ({
62
+ name: f.split("/").pop() || f,
63
+ path: f,
64
+ type: f.endsWith("/") ? "dir" : "file",
65
+ depth: 0
66
+ }));
67
+ }
68
+ };
69
+
70
+ export {
71
+ CommandExecProvider
72
+ };
73
+ //# sourceMappingURL=chunk-VBBJGWHY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../tools/warp_grep/providers/command.ts"],"sourcesContent":["import type { WarpGrepProvider, GrepResult, ReadResult, AnalyseEntry } from './types.js';\nimport { DEFAULT_EXCLUDES } from '../agent/config.js';\n\ntype ExecResult = { stdout: string; stderr: string; exitCode: number };\n\nexport class CommandExecProvider implements WarpGrepProvider {\n constructor(\n private readonly opts: {\n run: (cmd: string, args: string[], options?: { cwd?: string; env?: Record<string, string> }) => Promise<ExecResult>;\n pathMap?: (localPath: string) => string;\n cwd?: string;\n env?: Record<string, string>;\n readCommand?: (remotePath: string, start?: number, end?: number) => { cmd: string; args: string[] };\n excludes?: string[];\n }\n ) {}\n\n private map(path: string): string {\n return this.opts.pathMap ? this.opts.pathMap(path) : path;\n }\n\n async grep(params: { pattern: string; path: string }): Promise<GrepResult> {\n const remotePath = this.map(params.path);\n const args = [\n '--no-config',\n '--no-heading',\n '--with-filename',\n '--line-number',\n '--color=never',\n '--trim',\n '--max-columns=400',\n ...((this.opts.excludes ?? DEFAULT_EXCLUDES).flatMap((e) => ['-g', `!${e}`])),\n params.pattern,\n remotePath || '.',\n ];\n const res = await this.opts.run('rg', args, { cwd: this.opts.cwd, env: this.opts.env });\n if (res.exitCode === -1) throw new Error(res.stderr || 'ripgrep execution failed');\n if (res.exitCode !== 0 && res.exitCode !== 1) throw new Error(res.stderr || `ripgrep failed (${res.exitCode})`);\n const lines = (res.stdout || '')\n .trim()\n .split(/\\r?\\n/)\n .filter((l) => l.length > 0);\n return { lines };\n }\n\n async glob(params: { pattern: string; path: string }): Promise<{ files: string[] }> {\n const remotePath = this.map(params.path);\n const args = [\n '--no-config',\n '--files',\n '-g',\n params.pattern,\n ...((this.opts.excludes ?? DEFAULT_EXCLUDES).flatMap((e) => ['-g', `!${e}`])),\n remotePath || '.',\n ];\n const res = await this.opts.run('rg', args, { cwd: this.opts.cwd, env: this.opts.env });\n if (res.exitCode === -1) throw new Error(res.stderr || 'ripgrep execution failed');\n const files = (res.stdout || '')\n .trim()\n .split(/\\r?\\n/)\n .filter((l) => l.length > 0);\n return { files };\n }\n\n async read(params: { path: string; start?: number; end?: number }): Promise<ReadResult> {\n const remotePath = this.map(params.path);\n const rc = this.opts.readCommand\n ? this.opts.readCommand(remotePath, params.start, params.end)\n : { cmd: 'sed', args: ['-n', `${params.start ?? 1},${params.end ?? 1_000_000}p`, remotePath] };\n const res = await this.opts.run(rc.cmd, rc.args, { cwd: this.opts.cwd, env: this.opts.env });\n if (res.exitCode !== 0) throw new Error(res.stderr || `read failed (${res.exitCode})`);\n const text = res.stdout || '';\n const lines = text.split(/\\r?\\n/).map((line, idx) => `${(params.start ?? 1) + idx}|${line}`);\n return { lines: lines.filter(l => l !== `${(params.start ?? 1) + (lines.length - 1)}|`) };\n }\n\n async analyse(params: { path: string; pattern?: string | null; maxResults?: number; maxDepth?: number }): Promise<AnalyseEntry[]> {\n // Minimal remote analyse: glob all files and trim\n const target = this.map(params.path);\n const pattern = params.pattern ?? '*';\n const files = await this.glob({ pattern, path: target }).catch(() => ({ files: [] }));\n return files.files.slice(0, params.maxResults ?? 100).map((f) => ({\n name: f.split('/').pop() || f,\n path: f,\n type: f.endsWith('/') ? 'dir' : 'file',\n depth: 0,\n }));\n }\n}\n\n\n"],"mappings":";;;;;AAKO,IAAM,sBAAN,MAAsD;AAAA,EAC3D,YACmB,MAQjB;AARiB;AAAA,EAQhB;AAAA,EAEK,IAAI,MAAsB;AAChC,WAAO,KAAK,KAAK,UAAU,KAAK,KAAK,QAAQ,IAAI,IAAI;AAAA,EACvD;AAAA,EAEA,MAAM,KAAK,QAAgE;AACzE,UAAM,aAAa,KAAK,IAAI,OAAO,IAAI;AACvC,UAAM,OAAO;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAK,KAAK,KAAK,YAAY,kBAAkB,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;AAAA,MAC3E,OAAO;AAAA,MACP,cAAc;AAAA,IAChB;AACA,UAAM,MAAM,MAAM,KAAK,KAAK,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;AACtF,QAAI,IAAI,aAAa,GAAI,OAAM,IAAI,MAAM,IAAI,UAAU,0BAA0B;AACjF,QAAI,IAAI,aAAa,KAAK,IAAI,aAAa,EAAG,OAAM,IAAI,MAAM,IAAI,UAAU,mBAAmB,IAAI,QAAQ,GAAG;AAC9G,UAAM,SAAS,IAAI,UAAU,IAC1B,KAAK,EACL,MAAM,OAAO,EACb,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7B,WAAO,EAAE,MAAM;AAAA,EACjB;AAAA,EAEA,MAAM,KAAK,QAAyE;AAClF,UAAM,aAAa,KAAK,IAAI,OAAO,IAAI;AACvC,UAAM,OAAO;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,IAAK,KAAK,KAAK,YAAY,kBAAkB,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;AAAA,MAC3E,cAAc;AAAA,IAChB;AACA,UAAM,MAAM,MAAM,KAAK,KAAK,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;AACtF,QAAI,IAAI,aAAa,GAAI,OAAM,IAAI,MAAM,IAAI,UAAU,0BAA0B;AACjF,UAAM,SAAS,IAAI,UAAU,IAC1B,KAAK,EACL,MAAM,OAAO,EACb,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7B,WAAO,EAAE,MAAM;AAAA,EACjB;AAAA,EAEA,MAAM,KAAK,QAA6E;AACtF,UAAM,aAAa,KAAK,IAAI,OAAO,IAAI;AACvC,UAAM,KAAK,KAAK,KAAK,cACjB,KAAK,KAAK,YAAY,YAAY,OAAO,OAAO,OAAO,GAAG,IAC1D,EAAE,KAAK,OAAO,MAAM,CAAC,MAAM,GAAG,OAAO,SAAS,CAAC,IAAI,OAAO,OAAO,GAAS,KAAK,UAAU,EAAE;AAC/F,UAAM,MAAM,MAAM,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,MAAM,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;AAC3F,QAAI,IAAI,aAAa,EAAG,OAAM,IAAI,MAAM,IAAI,UAAU,gBAAgB,IAAI,QAAQ,GAAG;AACrF,UAAM,OAAO,IAAI,UAAU;AAC3B,UAAM,QAAQ,KAAK,MAAM,OAAO,EAAE,IAAI,CAAC,MAAM,QAAQ,IAAI,OAAO,SAAS,KAAK,GAAG,IAAI,IAAI,EAAE;AAC3F,WAAO,EAAE,OAAO,MAAM,OAAO,OAAK,MAAM,IAAI,OAAO,SAAS,MAAM,MAAM,SAAS,EAAE,GAAG,EAAE;AAAA,EAC1F;AAAA,EAEA,MAAM,QAAQ,QAAoH;AAEhI,UAAM,SAAS,KAAK,IAAI,OAAO,IAAI;AACnC,UAAM,UAAU,OAAO,WAAW;AAClC,UAAM,QAAQ,MAAM,KAAK,KAAK,EAAE,SAAS,MAAM,OAAO,CAAC,EAAE,MAAM,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE;AACpF,WAAO,MAAM,MAAM,MAAM,GAAG,OAAO,cAAc,GAAG,EAAE,IAAI,CAAC,OAAO;AAAA,MAChE,MAAM,EAAE,MAAM,GAAG,EAAE,IAAI,KAAK;AAAA,MAC5B,MAAM;AAAA,MACN,MAAM,EAAE,SAAS,GAAG,IAAI,QAAQ;AAAA,MAChC,OAAO;AAAA,IACT,EAAE;AAAA,EACJ;AACF;","names":[]}
@@ -0,0 +1,53 @@
1
+ import {
2
+ runWarpGrep
3
+ } from "./chunk-EAA7D24N.js";
4
+ import {
5
+ LocalRipgrepProvider
6
+ } from "./chunk-UYBIKZPM.js";
7
+
8
+ // tools/warp_grep/anthropic.ts
9
+ import { z } from "zod";
10
+ var INPUT_SCHEMA = z.object({
11
+ query: z.string().describe("Free-form repository question")
12
+ });
13
+ function createMorphWarpGrepTool(config) {
14
+ const tool = {
15
+ name: "morph-warp-grep",
16
+ description: config.description ?? "A fast and accurate tool that can search for all relevant context in a codebase. You must use this tool to save time and avoid context pollution.",
17
+ input_schema: {
18
+ type: "object",
19
+ properties: {
20
+ query: { type: "string", description: "Free-form repository question" }
21
+ },
22
+ required: ["query"]
23
+ }
24
+ };
25
+ return Object.assign(tool, {
26
+ execute: async (input) => {
27
+ const parsed = INPUT_SCHEMA.parse(typeof input === "string" ? JSON.parse(input) : input);
28
+ const provider = config.provider ?? new LocalRipgrepProvider(config.repoRoot, config.excludes);
29
+ const result = await runWarpGrep({
30
+ query: parsed.query,
31
+ repoRoot: config.repoRoot,
32
+ provider,
33
+ excludes: config.excludes,
34
+ includes: config.includes,
35
+ debug: config.debug ?? false,
36
+ apiKey: config.apiKey
37
+ });
38
+ if (result.terminationReason !== "completed" || !result.finish?.metadata) {
39
+ return { success: false, error: "Search did not complete", messages: result.messages };
40
+ }
41
+ const contexts = (result.finish.resolved || []).map((r) => ({
42
+ file: r.path,
43
+ content: r.content
44
+ }));
45
+ return { success: true, contexts, summary: result.finish.payload };
46
+ }
47
+ });
48
+ }
49
+
50
+ export {
51
+ createMorphWarpGrepTool
52
+ };
53
+ //# sourceMappingURL=chunk-W5CHJ6OX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../tools/warp_grep/anthropic.ts"],"sourcesContent":["import type Anthropic from '@anthropic-ai/sdk';\nimport { z } from 'zod';\nimport { runWarpGrep } from './agent/runner.js';\nimport type { WarpGrepProvider } from './providers/types.js';\nimport { LocalRipgrepProvider } from './providers/local.js';\nimport { AGENT_CONFIG } from './agent/config.js';\n\nexport type WarpGrepConfig = {\n repoRoot: string;\n provider?: WarpGrepProvider;\n excludes?: string[];\n includes?: string[];\n debug?: boolean;\n apiKey?: string;\n description?: string;\n};\n\nconst INPUT_SCHEMA = z.object({\n query: z.string().describe('Free-form repository question'),\n});\n\nexport function createMorphWarpGrepTool(config: WarpGrepConfig) {\n const tool: any = {\n name: 'morph-warp-grep',\n description: config.description ?? 'A fast and accurate tool that can search for all relevant context in a codebase. You must use this tool to save time and avoid context pollution.',\n input_schema: {\n type: 'object',\n properties: {\n query: { type: 'string', description: 'Free-form repository question' },\n },\n required: ['query'],\n },\n };\n\n return Object.assign(tool, {\n execute: async (input: unknown) => {\n const parsed = INPUT_SCHEMA.parse(typeof input === 'string' ? JSON.parse(input) : input);\n const provider = config.provider ?? new LocalRipgrepProvider(config.repoRoot, config.excludes);\n const result = await runWarpGrep({\n query: parsed.query,\n repoRoot: config.repoRoot,\n provider,\n excludes: config.excludes,\n includes: config.includes,\n debug: config.debug ?? false,\n apiKey: config.apiKey,\n });\n if (result.terminationReason !== 'completed' || !result.finish?.metadata) {\n return { success: false, error: 'Search did not complete', messages: result.messages };\n }\n const contexts = (result.finish.resolved || []).map((r: any) => ({\n file: r.path,\n content: r.content,\n }));\n return { success: true, contexts, summary: result.finish.payload };\n },\n });\n}\n\n\n"],"mappings":";;;;;;;;AACA,SAAS,SAAS;AAgBlB,IAAM,eAAe,EAAE,OAAO;AAAA,EAC5B,OAAO,EAAE,OAAO,EAAE,SAAS,+BAA+B;AAC5D,CAAC;AAEM,SAAS,wBAAwB,QAAwB;AAC9D,QAAM,OAAY;AAAA,IAChB,MAAM;AAAA,IACN,aAAa,OAAO,eAAe;AAAA,IACnC,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,YAAY;AAAA,QACV,OAAO,EAAE,MAAM,UAAU,aAAa,gCAAgC;AAAA,MACxE;AAAA,MACA,UAAU,CAAC,OAAO;AAAA,IACpB;AAAA,EACF;AAEA,SAAO,OAAO,OAAO,MAAM;AAAA,IACzB,SAAS,OAAO,UAAmB;AACjC,YAAM,SAAS,aAAa,MAAM,OAAO,UAAU,WAAW,KAAK,MAAM,KAAK,IAAI,KAAK;AACvF,YAAM,WAAW,OAAO,YAAY,IAAI,qBAAqB,OAAO,UAAU,OAAO,QAAQ;AAC7F,YAAM,SAAS,MAAM,YAAY;AAAA,QAC/B,OAAO,OAAO;AAAA,QACd,UAAU,OAAO;AAAA,QACjB;AAAA,QACA,UAAU,OAAO;AAAA,QACjB,UAAU,OAAO;AAAA,QACjB,OAAO,OAAO,SAAS;AAAA,QACvB,QAAQ,OAAO;AAAA,MACjB,CAAC;AACD,UAAI,OAAO,sBAAsB,eAAe,CAAC,OAAO,QAAQ,UAAU;AACxE,eAAO,EAAE,SAAS,OAAO,OAAO,2BAA2B,UAAU,OAAO,SAAS;AAAA,MACvF;AACA,YAAM,YAAY,OAAO,OAAO,YAAY,CAAC,GAAG,IAAI,CAAC,OAAY;AAAA,QAC/D,MAAM,EAAE;AAAA,QACR,SAAS,EAAE;AAAA,MACb,EAAE;AACF,aAAO,EAAE,SAAS,MAAM,UAAU,SAAS,OAAO,OAAO,QAAQ;AAAA,IACnE;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-YQMPVJ2L.js";
5
5
  import {
6
6
  executeCodebaseSearch
7
- } from "./chunk-VJK4PH5V.js";
7
+ } from "./chunk-AG3ICTC5.js";
8
8
 
9
9
  // tools/codebase_search/openai.ts
10
10
  var codebaseSearchTool = {
@@ -125,4 +125,4 @@ export {
125
125
  getSystemPrompt,
126
126
  openai_default
127
127
  };
128
- //# sourceMappingURL=chunk-WXBUVKYL.js.map
128
+ //# sourceMappingURL=chunk-WHZQDTM6.js.map
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-XYPMN4A3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-YQMPVJ2L.js";
4
4
  import {
5
5
  executeCodebaseSearch
6
- } from "./chunk-VJK4PH5V.js";
6
+ } from "./chunk-AG3ICTC5.js";
7
7
 
8
8
  // tools/codebase_search/vercel.ts
9
9
  import { tool } from "ai";
@@ -55,4 +55,4 @@ export {
55
55
  getSystemPrompt,
56
56
  vercel_default
57
57
  };
58
- //# sourceMappingURL=chunk-YVGRWE7D.js.map
58
+ //# sourceMappingURL=chunk-Y2IY7NYY.js.map
@@ -0,0 +1,10 @@
1
+ // tools/warp_grep/tools/read.ts
2
+ async function toolRead(provider, args) {
3
+ const res = await provider.read({ path: args.path, start: args.start, end: args.end });
4
+ return res.lines.join("\n");
5
+ }
6
+
7
+ export {
8
+ toolRead
9
+ };
10
+ //# sourceMappingURL=chunk-Z2FBMSNE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../tools/warp_grep/tools/read.ts"],"sourcesContent":["import type { WarpGrepProvider } from '../providers/types.js';\n\nexport async function toolRead(\n provider: WarpGrepProvider,\n args: { path: string; start?: number; end?: number }\n): Promise<string> {\n const res = await provider.read({ path: args.path, start: args.start, end: args.end });\n return res.lines.join('\\n');\n}\n\n\n"],"mappings":";AAEA,eAAsB,SACpB,UACA,MACiB;AACjB,QAAM,MAAM,MAAM,SAAS,KAAK,EAAE,MAAM,KAAK,MAAM,OAAO,KAAK,OAAO,KAAK,KAAK,IAAI,CAAC;AACrF,SAAO,IAAI,MAAM,KAAK,IAAI;AAC5B;","names":[]}
package/dist/client.cjs CHANGED
@@ -307,7 +307,8 @@ async function executeCodebaseSearch(input, config) {
307
307
  const timeout = config.timeout || 3e4;
308
308
  const debug = config.debug || false;
309
309
  if (debug) {
310
- console.log(`[CodebaseSearch] Query: "${input.query.slice(0, 60)}..." repo=${config.repoId}`);
310
+ const ref = config.commitHash ? `commit=${config.commitHash.slice(0, 8)}` : config.branch ? `branch=${config.branch}` : "latest main";
311
+ console.log(`[CodebaseSearch] Query: "${input.query.slice(0, 60)}..." repo=${config.repoId} (${ref})`);
311
312
  console.log(`[CodebaseSearch] URL: ${searchUrl}/v1/codebase_search`);
312
313
  }
313
314
  const startTime = Date.now();
@@ -323,6 +324,8 @@ async function executeCodebaseSearch(input, config) {
323
324
  body: JSON.stringify({
324
325
  query: input.query,
325
326
  repoId: config.repoId,
327
+ branch: config.branch,
328
+ commitHash: config.commitHash,
326
329
  targetDirectories: input.target_directories || [],
327
330
  limit: input.limit || 10,
328
331
  candidateLimit: 50