@morphllm/morphsdk 0.2.63 → 0.2.64

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 (101) hide show
  1. package/dist/{chunk-PKPJWARB.js → chunk-5QIWYEHJ.js} +2 -2
  2. package/dist/{chunk-3WMLFUAR.js → chunk-BLKHVDYQ.js} +3 -3
  3. package/dist/{chunk-T6677HCA.js → chunk-DT6MPBD4.js} +8 -8
  4. package/dist/{chunk-GJ573YH3.js → chunk-IQFKDBQD.js} +3 -3
  5. package/dist/{chunk-BHNJEBQJ.js → chunk-IUG2FHNN.js} +2 -2
  6. package/dist/{chunk-GM5VR33N.js → chunk-NTCSWQEM.js} +3 -3
  7. package/dist/chunk-PZ5AY32C.js +10 -0
  8. package/dist/{chunk-IXNSTNS7.js → chunk-QZNGKOCZ.js} +2 -2
  9. package/dist/{chunk-TTBXKDCT.js → chunk-S6FZAPJ7.js} +3 -3
  10. package/dist/{chunk-3SHLMXBV.js → chunk-SUBBMTMY.js} +2 -2
  11. package/dist/chunk-SUBBMTMY.js.map +1 -0
  12. package/dist/{chunk-563RLKFC.js → chunk-TPP2UGQP.js} +7 -21
  13. package/dist/chunk-TPP2UGQP.js.map +1 -0
  14. package/dist/{chunk-PNIQNTXR.js → chunk-V2IEG55Y.js} +3 -3
  15. package/dist/{chunk-JNOZPU44.js → chunk-ZO4PPFCZ.js} +2 -2
  16. package/dist/client.cjs +7 -33
  17. package/dist/client.cjs.map +1 -1
  18. package/dist/client.js +12 -12
  19. package/dist/git/client.js +1 -1
  20. package/dist/git/config.js +1 -1
  21. package/dist/git/index.js +1 -1
  22. package/dist/index.cjs +7 -33
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.js +13 -13
  25. package/dist/modelrouter/core.js +1 -1
  26. package/dist/modelrouter/index.js +1 -1
  27. package/dist/tools/browser/anthropic.js +1 -1
  28. package/dist/tools/browser/core.js +1 -1
  29. package/dist/tools/browser/index.js +1 -1
  30. package/dist/tools/browser/live.js +1 -1
  31. package/dist/tools/browser/openai.js +1 -1
  32. package/dist/tools/browser/prompts.js +1 -1
  33. package/dist/tools/browser/vercel.js +1 -1
  34. package/dist/tools/codebase_search/anthropic.js +1 -1
  35. package/dist/tools/codebase_search/core.js +1 -1
  36. package/dist/tools/codebase_search/index.js +1 -1
  37. package/dist/tools/codebase_search/openai.js +1 -1
  38. package/dist/tools/codebase_search/prompts.js +1 -1
  39. package/dist/tools/codebase_search/vercel.js +1 -1
  40. package/dist/tools/fastapply/anthropic.js +2 -2
  41. package/dist/tools/fastapply/core.js +1 -1
  42. package/dist/tools/fastapply/index.js +4 -4
  43. package/dist/tools/fastapply/openai.js +2 -2
  44. package/dist/tools/fastapply/prompts.js +1 -1
  45. package/dist/tools/fastapply/vercel.js +2 -2
  46. package/dist/tools/index.js +4 -4
  47. package/dist/tools/utils/resilience.js +1 -1
  48. package/dist/tools/warp_grep/agent/config.js +1 -1
  49. package/dist/tools/warp_grep/agent/formatter.js +1 -1
  50. package/dist/tools/warp_grep/agent/parser.js +1 -1
  51. package/dist/tools/warp_grep/agent/prompt.js +1 -1
  52. package/dist/tools/warp_grep/agent/runner.cjs +1 -1
  53. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  54. package/dist/tools/warp_grep/agent/runner.js +2 -2
  55. package/dist/tools/warp_grep/anthropic.cjs +7 -33
  56. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  57. package/dist/tools/warp_grep/anthropic.js +6 -6
  58. package/dist/tools/warp_grep/client.cjs +7 -33
  59. package/dist/tools/warp_grep/client.cjs.map +1 -1
  60. package/dist/tools/warp_grep/client.js +5 -5
  61. package/dist/tools/warp_grep/gemini.cjs +7 -33
  62. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  63. package/dist/tools/warp_grep/gemini.js +6 -6
  64. package/dist/tools/warp_grep/harness.cjs +6 -32
  65. package/dist/tools/warp_grep/harness.cjs.map +1 -1
  66. package/dist/tools/warp_grep/harness.js +3 -3
  67. package/dist/tools/warp_grep/index.cjs +7 -33
  68. package/dist/tools/warp_grep/index.cjs.map +1 -1
  69. package/dist/tools/warp_grep/index.js +9 -9
  70. package/dist/tools/warp_grep/openai.cjs +7 -33
  71. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  72. package/dist/tools/warp_grep/openai.js +6 -6
  73. package/dist/tools/warp_grep/providers/local.cjs +6 -32
  74. package/dist/tools/warp_grep/providers/local.cjs.map +1 -1
  75. package/dist/tools/warp_grep/providers/local.js +3 -3
  76. package/dist/tools/warp_grep/providers/remote.js +1 -1
  77. package/dist/tools/warp_grep/utils/files.js +1 -1
  78. package/dist/tools/warp_grep/utils/paths.js +1 -1
  79. package/dist/tools/warp_grep/utils/ripgrep.cjs +6 -42
  80. package/dist/tools/warp_grep/utils/ripgrep.cjs.map +1 -1
  81. package/dist/tools/warp_grep/utils/ripgrep.js +2 -2
  82. package/dist/tools/warp_grep/vercel.cjs +7 -33
  83. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  84. package/dist/tools/warp_grep/vercel.js +6 -6
  85. package/package.json +2 -4
  86. package/dist/chunk-3SHLMXBV.js.map +0 -1
  87. package/dist/chunk-563RLKFC.js.map +0 -1
  88. package/dist/chunk-5FUTL2UF.js +0 -22
  89. package/dist/lib-GEPX5Y3T.js +0 -14
  90. package/dist/lib-GEPX5Y3T.js.map +0 -1
  91. /package/dist/{chunk-PKPJWARB.js.map → chunk-5QIWYEHJ.js.map} +0 -0
  92. /package/dist/{chunk-3WMLFUAR.js.map → chunk-BLKHVDYQ.js.map} +0 -0
  93. /package/dist/{chunk-T6677HCA.js.map → chunk-DT6MPBD4.js.map} +0 -0
  94. /package/dist/{chunk-GJ573YH3.js.map → chunk-IQFKDBQD.js.map} +0 -0
  95. /package/dist/{chunk-BHNJEBQJ.js.map → chunk-IUG2FHNN.js.map} +0 -0
  96. /package/dist/{chunk-GM5VR33N.js.map → chunk-NTCSWQEM.js.map} +0 -0
  97. /package/dist/{chunk-5FUTL2UF.js.map → chunk-PZ5AY32C.js.map} +0 -0
  98. /package/dist/{chunk-IXNSTNS7.js.map → chunk-QZNGKOCZ.js.map} +0 -0
  99. /package/dist/{chunk-TTBXKDCT.js.map → chunk-S6FZAPJ7.js.map} +0 -0
  100. /package/dist/{chunk-PNIQNTXR.js.map → chunk-V2IEG55Y.js.map} +0 -0
  101. /package/dist/{chunk-JNOZPU44.js.map → chunk-ZO4PPFCZ.js.map} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-63WE2C5R.js";
8
8
  import {
9
9
  __export
10
- } from "./chunk-5FUTL2UF.js";
10
+ } from "./chunk-PZ5AY32C.js";
11
11
 
12
12
  // tools/fastapply/openai.ts
13
13
  var openai_exports = {};
@@ -103,4 +103,4 @@ export {
103
103
  openai_default,
104
104
  openai_exports
105
105
  };
106
- //# sourceMappingURL=chunk-PKPJWARB.js.map
106
+ //# sourceMappingURL=chunk-5QIWYEHJ.js.map
@@ -5,13 +5,13 @@ import {
5
5
  import {
6
6
  executeToolCall,
7
7
  formatResult
8
- } from "./chunk-TTBXKDCT.js";
8
+ } from "./chunk-S6FZAPJ7.js";
9
9
  import {
10
10
  getSystemPrompt
11
11
  } from "./chunk-Q5AHGIQO.js";
12
12
  import {
13
13
  __export
14
- } from "./chunk-5FUTL2UF.js";
14
+ } from "./chunk-PZ5AY32C.js";
15
15
 
16
16
  // tools/warp_grep/openai.ts
17
17
  var openai_exports = {};
@@ -71,4 +71,4 @@ export {
71
71
  openai_default,
72
72
  openai_exports
73
73
  };
74
- //# sourceMappingURL=chunk-3WMLFUAR.js.map
74
+ //# sourceMappingURL=chunk-BLKHVDYQ.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  createWarpGrepTool as createWarpGrepTool2
3
- } from "./chunk-GM5VR33N.js";
3
+ } from "./chunk-NTCSWQEM.js";
4
4
  import {
5
5
  createWarpGrepTool
6
- } from "./chunk-3WMLFUAR.js";
6
+ } from "./chunk-BLKHVDYQ.js";
7
7
  import {
8
8
  createWarpGrepTool as createWarpGrepTool3
9
- } from "./chunk-GJ573YH3.js";
9
+ } from "./chunk-IQFKDBQD.js";
10
10
  import {
11
11
  WarpGrepClient
12
- } from "./chunk-TTBXKDCT.js";
12
+ } from "./chunk-S6FZAPJ7.js";
13
13
  import {
14
14
  createCodebaseSearchTool as createCodebaseSearchTool3
15
15
  } from "./chunk-UBX7QYBD.js";
@@ -24,13 +24,13 @@ import {
24
24
  } from "./chunk-WM77HRKO.js";
25
25
  import {
26
26
  createEditFileTool as createEditFileTool2
27
- } from "./chunk-BHNJEBQJ.js";
27
+ } from "./chunk-IUG2FHNN.js";
28
28
  import {
29
29
  createEditFileTool
30
- } from "./chunk-PKPJWARB.js";
30
+ } from "./chunk-5QIWYEHJ.js";
31
31
  import {
32
32
  createEditFileTool as createEditFileTool3
33
- } from "./chunk-IXNSTNS7.js";
33
+ } from "./chunk-QZNGKOCZ.js";
34
34
  import {
35
35
  FastApplyClient
36
36
  } from "./chunk-CKTA4AXM.js";
@@ -280,4 +280,4 @@ export {
280
280
  VercelToolFactory,
281
281
  MorphClient
282
282
  };
283
- //# sourceMappingURL=chunk-T6677HCA.js.map
283
+ //# sourceMappingURL=chunk-DT6MPBD4.js.map
@@ -4,13 +4,13 @@ import {
4
4
  import {
5
5
  executeToolCall,
6
6
  formatResult
7
- } from "./chunk-TTBXKDCT.js";
7
+ } from "./chunk-S6FZAPJ7.js";
8
8
  import {
9
9
  getSystemPrompt
10
10
  } from "./chunk-Q5AHGIQO.js";
11
11
  import {
12
12
  __export
13
- } from "./chunk-5FUTL2UF.js";
13
+ } from "./chunk-PZ5AY32C.js";
14
14
 
15
15
  // tools/warp_grep/vercel.ts
16
16
  var vercel_exports = {};
@@ -54,4 +54,4 @@ export {
54
54
  vercel_default,
55
55
  vercel_exports
56
56
  };
57
- //# sourceMappingURL=chunk-GJ573YH3.js.map
57
+ //# sourceMappingURL=chunk-IQFKDBQD.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-63WE2C5R.js";
8
8
  import {
9
9
  __export
10
- } from "./chunk-5FUTL2UF.js";
10
+ } from "./chunk-PZ5AY32C.js";
11
11
 
12
12
  // tools/fastapply/anthropic.ts
13
13
  var anthropic_exports = {};
@@ -91,4 +91,4 @@ export {
91
91
  getSystemPrompt,
92
92
  anthropic_exports
93
93
  };
94
- //# sourceMappingURL=chunk-BHNJEBQJ.js.map
94
+ //# sourceMappingURL=chunk-IUG2FHNN.js.map
@@ -5,13 +5,13 @@ import {
5
5
  import {
6
6
  executeToolCall,
7
7
  formatResult
8
- } from "./chunk-TTBXKDCT.js";
8
+ } from "./chunk-S6FZAPJ7.js";
9
9
  import {
10
10
  getSystemPrompt
11
11
  } from "./chunk-Q5AHGIQO.js";
12
12
  import {
13
13
  __export
14
- } from "./chunk-5FUTL2UF.js";
14
+ } from "./chunk-PZ5AY32C.js";
15
15
 
16
16
  // tools/warp_grep/anthropic.ts
17
17
  var anthropic_exports = {};
@@ -62,4 +62,4 @@ export {
62
62
  createWarpGrepTool,
63
63
  anthropic_exports
64
64
  };
65
- //# sourceMappingURL=chunk-GM5VR33N.js.map
65
+ //# sourceMappingURL=chunk-NTCSWQEM.js.map
@@ -0,0 +1,10 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
10
+ //# sourceMappingURL=chunk-PZ5AY32C.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-63WE2C5R.js";
8
8
  import {
9
9
  __export
10
- } from "./chunk-5FUTL2UF.js";
10
+ } from "./chunk-PZ5AY32C.js";
11
11
 
12
12
  // tools/fastapply/vercel.ts
13
13
  var vercel_exports = {};
@@ -86,4 +86,4 @@ export {
86
86
  vercel_default,
87
87
  vercel_exports
88
88
  };
89
- //# sourceMappingURL=chunk-IXNSTNS7.js.map
89
+ //# sourceMappingURL=chunk-QZNGKOCZ.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  runWarpGrep
3
- } from "./chunk-3SHLMXBV.js";
3
+ } from "./chunk-SUBBMTMY.js";
4
4
  import {
5
5
  RemoteCommandsProvider
6
6
  } from "./chunk-527P5X2E.js";
7
7
  import {
8
8
  LocalRipgrepProvider
9
- } from "./chunk-JNOZPU44.js";
9
+ } from "./chunk-ZO4PPFCZ.js";
10
10
 
11
11
  // tools/warp_grep/client.ts
12
12
  var WarpGrepClient = class {
@@ -115,4 +115,4 @@ export {
115
115
  executeToolCall,
116
116
  formatResult
117
117
  };
118
- //# sourceMappingURL=chunk-TTBXKDCT.js.map
118
+ //# sourceMappingURL=chunk-S6FZAPJ7.js.map
@@ -93,7 +93,7 @@ async function runWarpGrep(config) {
93
93
  messages.push({ role: "assistant", content: assistantContent });
94
94
  const toolCalls = parser.parse(assistantContent);
95
95
  if (toolCalls.length === 0) {
96
- errors.push({ message: "No tool calls produced by the model. Your MCP is likely out of date! Update it by running: npm cache clean --force && npx -y @morphllm/morphmcp@latest" });
96
+ errors.push({ message: "No tool calls produced by the model. Your MCP is likely out of date! Update it by running: rm -rf ~/.npm/_npx && npm cache clean --force && npx -y @morphllm/morphmcp@latest" });
97
97
  terminationReason = "terminated";
98
98
  break;
99
99
  }
@@ -193,4 +193,4 @@ async function runWarpGrep(config) {
193
193
  export {
194
194
  runWarpGrep
195
195
  };
196
- //# sourceMappingURL=chunk-3SHLMXBV.js.map
196
+ //# sourceMappingURL=chunk-SUBBMTMY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../tools/warp_grep/agent/runner.ts"],"sourcesContent":["import { AGENT_CONFIG, DEFAULT_MODEL } from './config.js';\nimport { getSystemPrompt } from './prompt.js';\nimport type { AgentRunResult, ChatMessage, SessionConfig, AgentFinish } from './types.js';\nimport { LLMResponseParser } from './parser.js';\nimport type { WarpGrepProvider } from '../providers/types.js';\nimport { toolGrep } from './tools/grep.js';\nimport { toolRead } from './tools/read.js';\nimport { toolListDirectory } from './tools/list_directory.js';\nimport { readFinishFiles } from './tools/finish.js';\nimport { fetchWithRetry, withTimeout, type RetryConfig } from '../../utils/resilience.js';\nimport { formatAgentToolOutput } from './formatter.js';\nimport { formatTurnMessage, calculateContextBudget, buildInitialState, enforceContextLimit } from './helpers.js';\nimport path from 'path';\n\ntype EventName =\n | 'initial_state'\n | 'round_start'\n | 'round_end'\n | 'finish'\n | 'error';\n\nexport type EventCallback = (name: EventName, payload: Record<string, unknown>) => void;\n\nconst parser = new LLMResponseParser();\n\nconst DEFAULT_API_URL = 'https://api.morphllm.com';\n\ninterface CallModelOptions {\n morphApiKey?: string;\n morphApiUrl?: string;\n retryConfig?: RetryConfig;\n}\n\nasync function callModel(\n messages: ChatMessage[],\n model: string,\n options: CallModelOptions = {}\n): Promise<string> {\n const baseUrl = DEFAULT_API_URL;\n const apiKey = options.morphApiKey || process.env.MORPH_API_KEY || '';\n \n const fetchPromise = fetchWithRetry(\n `${baseUrl}/v1/chat/completions`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({\n model,\n temperature: 0.0,\n max_tokens: 1024,\n messages,\n }),\n },\n options.retryConfig\n );\n const resp = await withTimeout(fetchPromise, AGENT_CONFIG.TIMEOUT_MS, 'morph-warp-grep request timed out');\n if (!resp.ok) {\n if (resp.status === 404) {\n throw new Error(\n 'The endpoint you are trying to call is likely deprecated. Please update with: npm cache clean --force && npx -y @morphllm/morphmcp@latest or visit: https://morphllm.com/mcp'\n );\n }\n // keeping these cases are real throws, if this happens retry will likely not help, so best we just throw here, notice the error and fix\n const t = await resp.text();\n throw new Error(`morph-warp-grep error ${resp.status}: ${t}`);\n }\n const data = await resp.json();\n const content = data?.choices?.[0]?.message?.content;\n if (!content || typeof content !== 'string') {\n throw new Error('Invalid response from model');\n }\n return content;\n}\n\nexport async function runWarpGrep(config: SessionConfig & { provider: WarpGrepProvider }): Promise<AgentRunResult> {\n const repoRoot = path.resolve(config.repoRoot || process.cwd());\n const messages: ChatMessage[] = [];\n\n messages.push({ role: 'system' as const, content: getSystemPrompt() });\n const initialState = await buildInitialState(repoRoot, config.query, config.provider);\n messages.push({ role: 'user', content: initialState });\n\n const maxTurns = AGENT_CONFIG.MAX_TURNS;\n const model = config.model || DEFAULT_MODEL;\n const provider = config.provider;\n const errors: Array<{ message: string }> = [];\n\n let finishMeta: AgentFinish | undefined;\n let terminationReason: AgentRunResult['terminationReason'] = 'terminated';\n\n for (let turn = 1; turn <= maxTurns; turn += 1) {\n // Enforce hard context limit before calling model\n enforceContextLimit(messages);\n \n // call model\n const assistantContent = await callModel(messages, model, {\n morphApiKey: config.morphApiKey,\n morphApiUrl: config.morphApiUrl,\n retryConfig: config.retryConfig,\n }).catch((e: unknown) => {\n errors.push({ message: e instanceof Error ? e.message : String(e) });\n return '';\n });\n if (!assistantContent) break;\n messages.push({ role: 'assistant', content: assistantContent });\n\n // parse tool calls (no longer throws - returns _skip calls for malformed commands)\n const toolCalls = parser.parse(assistantContent);\n if (toolCalls.length === 0) {\n errors.push({ message: 'No tool calls produced by the model. Your MCP is likely out of date! Update it by running: rm -rf ~/.npm/_npx && npm cache clean --force && npx -y @morphllm/morphmcp@latest' });\n terminationReason = 'terminated';\n break;\n }\n\n const finishCalls = toolCalls.filter(c => c.name === 'finish');\n const grepCalls = toolCalls.filter(c => c.name === 'grep');\n const listDirCalls = toolCalls.filter(c => c.name === 'list_directory');\n const readCalls = toolCalls.filter(c => c.name === 'read');\n const skipCalls = toolCalls.filter(c => c.name === '_skip');\n\n const formatted: string[] = [];\n\n // Surface any skipped commands as feedback to the LLM\n for (const c of skipCalls) {\n const msg = (c.arguments as { message?: string })?.message || 'Command skipped due to parsing error';\n formatted.push(msg);\n }\n\n const allPromises: Array<Promise<string>> = [];\n \n for (const c of grepCalls) {\n const args = (c.arguments ?? {}) as { pattern: string; path: string; glob?: string };\n allPromises.push(\n toolGrep(provider, args).then(\n ({ output }) => formatAgentToolOutput('grep', args, output, { isError: false }),\n err => formatAgentToolOutput('grep', args, String(err), { isError: true })\n )\n );\n }\n \n for (const c of listDirCalls) {\n const args = (c.arguments ?? {}) as { path: string; pattern?: string | null };\n allPromises.push(\n toolListDirectory(provider, args).then(\n p => formatAgentToolOutput('list_directory', args, p, { isError: false }),\n err => formatAgentToolOutput('list_directory', args, String(err), { isError: true })\n )\n );\n }\n \n for (const c of readCalls) {\n const args = (c.arguments ?? {}) as { path: string; start?: number; end?: number; lines?: Array<[number, number]> };\n allPromises.push(\n toolRead(provider, args).then(\n p => formatAgentToolOutput('read', args, p, { isError: false }),\n err => formatAgentToolOutput('read', args, String(err), { isError: true })\n )\n );\n }\n \n const allResults = await Promise.all(allPromises);\n for (const result of allResults) {\n formatted.push(result);\n }\n\n if (formatted.length > 0) {\n const turnMessage = formatTurnMessage(turn, maxTurns);\n const contextBudget = calculateContextBudget(messages);\n messages.push({ role: 'user', content: formatted.join('\\n') + turnMessage + '\\n' + contextBudget });\n }\n\n if (finishCalls.length) {\n const fc = finishCalls[0];\n const files = ((fc.arguments as any)?.files ?? []) as AgentFinish['files'];\n finishMeta = { files };\n terminationReason = 'completed';\n break;\n }\n }\n\n if (terminationReason !== 'completed' || !finishMeta) {\n return { terminationReason, messages, errors };\n }\n\n // Build finish payload\n const parts: string[] = ['Relevant context found:'];\n for (const f of finishMeta.files) {\n const ranges = f.lines === '*' ? '*' : f.lines.map(([s, e]) => `${s}-${e}`).join(', ');\n parts.push(`- ${f.path}: ${ranges}`);\n }\n const payload = parts.join('\\n');\n\n // Resolve file contents for returned ranges\n // Wrap reader in try-catch to handle non-existent or unreadable files gracefully\n // Track files that couldn't be read for error reporting\n const fileReadErrors: Array<{ path: string; error: string }> = [];\n const resolved = await readFinishFiles(\n repoRoot,\n finishMeta.files,\n async (p: string, s?: number, e?: number) => {\n try {\n const rr = await provider.read({ path: p, start: s, end: e });\n // rr.lines are \"line|content\" → strip the \"line|\" prefix\n return rr.lines.map(l => {\n const idx = l.indexOf('|');\n return idx >= 0 ? l.slice(idx + 1) : l;\n });\n } catch (err) {\n // File doesn't exist or can't be read - log error but don't throw\n // This handles cases where the agent hallucinated a path or the file was deleted\n const errorMsg = err instanceof Error ? err.message : String(err);\n fileReadErrors.push({ path: p, error: errorMsg });\n console.error(`[warp_grep] Failed to read file: ${p} - ${errorMsg}`);\n return [`[couldn't find: ${p}]`];\n }\n }\n );\n\n // Add file read errors to the result so MCP can report them\n if (fileReadErrors.length > 0) {\n errors.push(...fileReadErrors.map(e => ({ message: `File read error: ${e.path} - ${e.error}` })));\n }\n\n return {\n terminationReason: 'completed',\n messages,\n finish: { payload, metadata: finishMeta, resolved },\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,19 +1,8 @@
1
1
  // tools/warp_grep/utils/ripgrep.ts
2
2
  import { spawn } from "child_process";
3
+ import { rgPath } from "@vscode/ripgrep";
3
4
  var resolvedRgPath = null;
4
5
  var rgPathChecked = false;
5
- var bundledRgPath = null;
6
- async function getBundledRgPath() {
7
- if (bundledRgPath !== null) return bundledRgPath;
8
- try {
9
- const module = await import("./lib-GEPX5Y3T.js");
10
- bundledRgPath = module.rgPath;
11
- return bundledRgPath;
12
- } catch {
13
- bundledRgPath = "";
14
- return null;
15
- }
16
- }
17
6
  function spawnRg(rgBinary, args, opts) {
18
7
  return new Promise((resolve) => {
19
8
  const child = spawn(rgBinary, args, {
@@ -44,14 +33,11 @@ async function runRipgrep(args, opts) {
44
33
  return spawnRg(resolvedRgPath, args, opts);
45
34
  }
46
35
  if (!rgPathChecked) {
47
- const bundledPath = await getBundledRgPath();
48
- if (bundledPath) {
49
- const result = await spawnRg(bundledPath, args, opts);
50
- if (!isBinaryFailure(result)) {
51
- resolvedRgPath = bundledPath;
52
- rgPathChecked = true;
53
- return result;
54
- }
36
+ const result = await spawnRg(rgPath, args, opts);
37
+ if (!isBinaryFailure(result)) {
38
+ resolvedRgPath = rgPath;
39
+ rgPathChecked = true;
40
+ return result;
55
41
  }
56
42
  const fallbackResult = await spawnRg("rg", args, opts);
57
43
  if (!isBinaryFailure(fallbackResult)) {
@@ -76,4 +62,4 @@ async function runRipgrep(args, opts) {
76
62
  export {
77
63
  runRipgrep
78
64
  };
79
- //# sourceMappingURL=chunk-563RLKFC.js.map
65
+ //# sourceMappingURL=chunk-TPP2UGQP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../tools/warp_grep/utils/ripgrep.ts"],"sourcesContent":["import { spawn } from 'child_process';\nimport { rgPath } from '@vscode/ripgrep';\n\nexport type ExecResult = { stdout: string; stderr: string; exitCode: number };\n\n// Cache the working ripgrep path to avoid repeated fallback checks\nlet resolvedRgPath: string | null = null;\nlet rgPathChecked = false;\n\nfunction spawnRg(rgBinary: string, args: string[], opts?: { cwd?: string; env?: NodeJS.ProcessEnv }): Promise<ExecResult> {\n return new Promise((resolve) => {\n const child = spawn(rgBinary, args, {\n cwd: opts?.cwd,\n env: { ...process.env, ...(opts?.env || {}) },\n stdio: ['ignore', 'pipe', 'pipe'],\n });\n let stdout = '';\n let stderr = '';\n child.stdout.on('data', (d) => (stdout += d.toString()));\n child.stderr.on('data', (d) => (stderr += d.toString()));\n child.on('close', (code) => {\n resolve({ stdout, stderr, exitCode: typeof code === 'number' ? code : -1 });\n });\n child.on('error', () => {\n resolve({ stdout: '', stderr: 'Failed to spawn ripgrep.', exitCode: -1 });\n });\n });\n}\n\n// Check if a result indicates a binary compatibility failure (not a normal rg error)\nfunction isBinaryFailure(result: ExecResult): boolean {\n // Spawn error\n if (result.exitCode === -1) return true;\n // jemalloc page size issue (common on ARM64 with non-standard page sizes)\n if (result.stderr.includes('jemalloc') || result.stderr.includes('Unsupported system page size')) return true;\n // SIGABRT (134 = 128 + 6)\n if (result.exitCode === 134) return true;\n return false;\n}\n\nexport async function runRipgrep(args: string[], opts?: { cwd?: string; env?: NodeJS.ProcessEnv }): Promise<ExecResult> {\n // If we've already determined the working path, use it\n if (rgPathChecked && resolvedRgPath) {\n return spawnRg(resolvedRgPath, args, opts);\n }\n\n // First attempt: bundled ripgrep\n if (!rgPathChecked) {\n const result = await spawnRg(rgPath, args, opts);\n \n if (!isBinaryFailure(result)) {\n // Bundled binary works, cache it\n resolvedRgPath = rgPath;\n rgPathChecked = true;\n return result;\n }\n\n // Bundled binary failed, try system rg\n const fallbackResult = await spawnRg('rg', args, opts);\n \n if (!isBinaryFailure(fallbackResult)) {\n // System rg works, cache it\n resolvedRgPath = 'rg';\n rgPathChecked = true;\n return fallbackResult;\n }\n\n // Neither works, mark as checked and return the original error\n rgPathChecked = true;\n return { \n stdout: '', \n stderr: 'Failed to spawn ripgrep. Neither bundled nor system rg is available.', \n exitCode: -1 \n };\n }\n\n // rgPathChecked is true but resolvedRgPath is null - no working rg found\n return { \n stdout: '', \n stderr: 'Failed to spawn ripgrep. Neither bundled nor system rg is available.', \n exitCode: -1 \n };\n}\n\n\n"],"mappings":";AAAA,SAAS,aAAa;AACtB,SAAS,cAAc;AAKvB,IAAI,iBAAgC;AACpC,IAAI,gBAAgB;AAEpB,SAAS,QAAQ,UAAkB,MAAgB,MAAuE;AACxH,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,QAAQ,MAAM,UAAU,MAAM;AAAA,MAClC,KAAK,MAAM;AAAA,MACX,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAI,MAAM,OAAO,CAAC,EAAG;AAAA,MAC5C,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,IAClC,CAAC;AACD,QAAI,SAAS;AACb,QAAI,SAAS;AACb,UAAM,OAAO,GAAG,QAAQ,CAAC,MAAO,UAAU,EAAE,SAAS,CAAE;AACvD,UAAM,OAAO,GAAG,QAAQ,CAAC,MAAO,UAAU,EAAE,SAAS,CAAE;AACvD,UAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,cAAQ,EAAE,QAAQ,QAAQ,UAAU,OAAO,SAAS,WAAW,OAAO,GAAG,CAAC;AAAA,IAC5E,CAAC;AACD,UAAM,GAAG,SAAS,MAAM;AACtB,cAAQ,EAAE,QAAQ,IAAI,QAAQ,4BAA4B,UAAU,GAAG,CAAC;AAAA,IAC1E,CAAC;AAAA,EACH,CAAC;AACH;AAGA,SAAS,gBAAgB,QAA6B;AAEpD,MAAI,OAAO,aAAa,GAAI,QAAO;AAEnC,MAAI,OAAO,OAAO,SAAS,UAAU,KAAK,OAAO,OAAO,SAAS,8BAA8B,EAAG,QAAO;AAEzG,MAAI,OAAO,aAAa,IAAK,QAAO;AACpC,SAAO;AACT;AAEA,eAAsB,WAAW,MAAgB,MAAuE;AAEtH,MAAI,iBAAiB,gBAAgB;AACnC,WAAO,QAAQ,gBAAgB,MAAM,IAAI;AAAA,EAC3C;AAGA,MAAI,CAAC,eAAe;AAClB,UAAM,SAAS,MAAM,QAAQ,QAAQ,MAAM,IAAI;AAE/C,QAAI,CAAC,gBAAgB,MAAM,GAAG;AAE5B,uBAAiB;AACjB,sBAAgB;AAChB,aAAO;AAAA,IACT;AAGA,UAAM,iBAAiB,MAAM,QAAQ,MAAM,MAAM,IAAI;AAErD,QAAI,CAAC,gBAAgB,cAAc,GAAG;AAEpC,uBAAiB;AACjB,sBAAgB;AAChB,aAAO;AAAA,IACT;AAGA,oBAAgB;AAChB,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,EACF;AAGA,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AACF;","names":[]}
@@ -5,13 +5,13 @@ import {
5
5
  import {
6
6
  executeToolCall,
7
7
  formatResult
8
- } from "./chunk-TTBXKDCT.js";
8
+ } from "./chunk-S6FZAPJ7.js";
9
9
  import {
10
10
  getSystemPrompt
11
11
  } from "./chunk-Q5AHGIQO.js";
12
12
  import {
13
13
  __export
14
- } from "./chunk-5FUTL2UF.js";
14
+ } from "./chunk-PZ5AY32C.js";
15
15
 
16
16
  // tools/warp_grep/gemini.ts
17
17
  var gemini_exports = {};
@@ -69,4 +69,4 @@ export {
69
69
  gemini_default,
70
70
  gemini_exports
71
71
  };
72
- //# sourceMappingURL=chunk-PNIQNTXR.js.map
72
+ //# sourceMappingURL=chunk-V2IEG55Y.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-SMGZ6A64.js";
10
10
  import {
11
11
  runRipgrep
12
- } from "./chunk-563RLKFC.js";
12
+ } from "./chunk-TPP2UGQP.js";
13
13
  import {
14
14
  AGENT_CONFIG,
15
15
  DEFAULT_EXCLUDES
@@ -186,4 +186,4 @@ Details: ${res.stderr}` : ""}`
186
186
  export {
187
187
  LocalRipgrepProvider
188
188
  };
189
- //# sourceMappingURL=chunk-JNOZPU44.js.map
189
+ //# sourceMappingURL=chunk-ZO4PPFCZ.js.map
package/dist/client.cjs CHANGED
@@ -5,9 +5,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __commonJS = (cb, mod) => function __require() {
9
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
- };
11
8
  var __export = (target, all) => {
12
9
  for (var name in all)
13
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -30,15 +27,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
27
  ));
31
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
29
 
33
- // node_modules/@vscode/ripgrep/lib/index.js
34
- var require_lib = __commonJS({
35
- "node_modules/@vscode/ripgrep/lib/index.js"(exports2, module2) {
36
- "use strict";
37
- var path5 = require("path");
38
- module2.exports.rgPath = path5.join(__dirname, `../bin/rg${process.platform === "win32" ? ".exe" : ""}`);
39
- }
40
- });
41
-
42
30
  // client.ts
43
31
  var client_exports = {};
44
32
  __export(client_exports, {
@@ -1840,7 +1828,7 @@ async function runWarpGrep(config) {
1840
1828
  messages.push({ role: "assistant", content: assistantContent });
1841
1829
  const toolCalls = parser.parse(assistantContent);
1842
1830
  if (toolCalls.length === 0) {
1843
- errors.push({ message: "No tool calls produced by the model. Your MCP is likely out of date! Update it by running: npm cache clean --force && npx -y @morphllm/morphmcp@latest" });
1831
+ errors.push({ message: "No tool calls produced by the model. Your MCP is likely out of date! Update it by running: rm -rf ~/.npm/_npx && npm cache clean --force && npx -y @morphllm/morphmcp@latest" });
1844
1832
  terminationReason = "terminated";
1845
1833
  break;
1846
1834
  }
@@ -1943,20 +1931,9 @@ var import_path5 = __toESM(require("path"), 1);
1943
1931
 
1944
1932
  // tools/warp_grep/utils/ripgrep.ts
1945
1933
  var import_child_process = require("child_process");
1934
+ var import_ripgrep = require("@vscode/ripgrep");
1946
1935
  var resolvedRgPath = null;
1947
1936
  var rgPathChecked = false;
1948
- var bundledRgPath = null;
1949
- async function getBundledRgPath() {
1950
- if (bundledRgPath !== null) return bundledRgPath;
1951
- try {
1952
- const module2 = await Promise.resolve().then(() => __toESM(require_lib(), 1));
1953
- bundledRgPath = module2.rgPath;
1954
- return bundledRgPath;
1955
- } catch {
1956
- bundledRgPath = "";
1957
- return null;
1958
- }
1959
- }
1960
1937
  function spawnRg(rgBinary, args, opts) {
1961
1938
  return new Promise((resolve2) => {
1962
1939
  const child = (0, import_child_process.spawn)(rgBinary, args, {
@@ -1987,14 +1964,11 @@ async function runRipgrep(args, opts) {
1987
1964
  return spawnRg(resolvedRgPath, args, opts);
1988
1965
  }
1989
1966
  if (!rgPathChecked) {
1990
- const bundledPath = await getBundledRgPath();
1991
- if (bundledPath) {
1992
- const result = await spawnRg(bundledPath, args, opts);
1993
- if (!isBinaryFailure(result)) {
1994
- resolvedRgPath = bundledPath;
1995
- rgPathChecked = true;
1996
- return result;
1997
- }
1967
+ const result = await spawnRg(import_ripgrep.rgPath, args, opts);
1968
+ if (!isBinaryFailure(result)) {
1969
+ resolvedRgPath = import_ripgrep.rgPath;
1970
+ rgPathChecked = true;
1971
+ return result;
1998
1972
  }
1999
1973
  const fallbackResult = await spawnRg("rg", args, opts);
2000
1974
  if (!isBinaryFailure(fallbackResult)) {