@morphllm/morphsdk 0.2.119 → 0.2.120

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 (159) hide show
  1. package/dist/{chunk-4VWJFZVS.js → chunk-2BPPWIJI.js} +6 -1
  2. package/dist/chunk-2BPPWIJI.js.map +1 -0
  3. package/dist/chunk-4RO43W62.js +225 -0
  4. package/dist/chunk-4RO43W62.js.map +1 -0
  5. package/dist/{chunk-ZYPLV3HP.js → chunk-4VLTYTEY.js} +3 -3
  6. package/dist/{chunk-M5DR2WOZ.js → chunk-5HPN4VL2.js} +1 -1
  7. package/dist/{chunk-5IVVJMMX.js → chunk-6ODXYTLF.js} +2 -2
  8. package/dist/{chunk-OUEJ6XEO.js → chunk-7HKYJ2MW.js} +2 -2
  9. package/dist/{chunk-EMMSRY32.js → chunk-7TM4RBXE.js} +2 -2
  10. package/dist/{chunk-EAT5W3SH.js → chunk-A54BOCBI.js} +2 -2
  11. package/dist/{chunk-QL7MV3GT.js → chunk-BVINWDTA.js} +8 -4
  12. package/dist/chunk-BVINWDTA.js.map +1 -0
  13. package/dist/{chunk-HMQSMEN2.js → chunk-EF7ZYLA2.js} +4 -4
  14. package/dist/{chunk-K4EO7S2O.js → chunk-FZUUET6R.js} +2 -2
  15. package/dist/{chunk-WM77HRKO.js → chunk-HBWOWL7L.js} +2 -2
  16. package/dist/{chunk-OOCSNAA5.js → chunk-HCN2MLSO.js} +2 -2
  17. package/dist/{chunk-HMAX2FEE.js → chunk-HQAPRX5T.js} +2 -2
  18. package/dist/{chunk-FXBT4UDY.js → chunk-NLDYHLRB.js} +7 -2
  19. package/dist/chunk-NLDYHLRB.js.map +1 -0
  20. package/dist/{chunk-O5DA5V5S.js → chunk-NW6PJIID.js} +2 -2
  21. package/dist/{chunk-3T4BGWCV.js → chunk-P4EPXC2Q.js} +22 -22
  22. package/dist/{chunk-G7RSAZIK.js → chunk-RODHADNG.js} +2 -2
  23. package/dist/{chunk-WVTX3QS6.js → chunk-RZ4VC4BG.js} +2 -2
  24. package/dist/{chunk-Y5BB7JFH.js → chunk-SNY2UKHQ.js} +2 -2
  25. package/dist/{chunk-PR44LEQQ.js → chunk-T7F3DIRK.js} +2 -2
  26. package/dist/{chunk-SI2CKRKJ.js → chunk-TVPEH6FF.js} +2 -2
  27. package/dist/{chunk-UNHHRMU7.js → chunk-VVEK5JSH.js} +2 -2
  28. package/dist/{chunk-ZRLEAPZV.js → chunk-XQ4KEOJT.js} +2 -2
  29. package/dist/client.cjs +241 -2
  30. package/dist/client.cjs.map +1 -1
  31. package/dist/client.js +22 -21
  32. package/dist/edge.cjs +226 -1
  33. package/dist/edge.cjs.map +1 -1
  34. package/dist/edge.d.ts +1 -0
  35. package/dist/edge.js +11 -7
  36. package/dist/index.cjs +244 -2
  37. package/dist/index.cjs.map +1 -1
  38. package/dist/index.d.ts +1 -0
  39. package/dist/index.js +32 -28
  40. package/dist/modelrouter/core.cjs +222 -0
  41. package/dist/modelrouter/core.cjs.map +1 -1
  42. package/dist/modelrouter/core.js +3 -2
  43. package/dist/modelrouter/index.cjs +222 -0
  44. package/dist/modelrouter/index.cjs.map +1 -1
  45. package/dist/modelrouter/index.js +3 -2
  46. package/dist/tools/browser/anthropic.cjs +222 -0
  47. package/dist/tools/browser/anthropic.cjs.map +1 -1
  48. package/dist/tools/browser/anthropic.js +6 -5
  49. package/dist/tools/browser/core.cjs +222 -0
  50. package/dist/tools/browser/core.cjs.map +1 -1
  51. package/dist/tools/browser/core.js +5 -4
  52. package/dist/tools/browser/index.cjs +222 -0
  53. package/dist/tools/browser/index.cjs.map +1 -1
  54. package/dist/tools/browser/index.js +13 -12
  55. package/dist/tools/browser/index.js.map +1 -1
  56. package/dist/tools/browser/openai.cjs +222 -0
  57. package/dist/tools/browser/openai.cjs.map +1 -1
  58. package/dist/tools/browser/openai.js +6 -5
  59. package/dist/tools/browser/profiles/core.cjs +222 -0
  60. package/dist/tools/browser/profiles/core.cjs.map +1 -1
  61. package/dist/tools/browser/profiles/core.js +3 -2
  62. package/dist/tools/browser/profiles/index.cjs +222 -0
  63. package/dist/tools/browser/profiles/index.cjs.map +1 -1
  64. package/dist/tools/browser/profiles/index.js +3 -2
  65. package/dist/tools/browser/vercel.cjs +222 -0
  66. package/dist/tools/browser/vercel.cjs.map +1 -1
  67. package/dist/tools/browser/vercel.js +6 -5
  68. package/dist/tools/codebase_search/anthropic.cjs +222 -0
  69. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  70. package/dist/tools/codebase_search/anthropic.js +4 -3
  71. package/dist/tools/codebase_search/core.cjs +222 -0
  72. package/dist/tools/codebase_search/core.cjs.map +1 -1
  73. package/dist/tools/codebase_search/core.js +3 -2
  74. package/dist/tools/codebase_search/index.cjs +222 -0
  75. package/dist/tools/codebase_search/index.cjs.map +1 -1
  76. package/dist/tools/codebase_search/index.js +8 -7
  77. package/dist/tools/codebase_search/openai.cjs +222 -0
  78. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  79. package/dist/tools/codebase_search/openai.js +4 -3
  80. package/dist/tools/codebase_search/vercel.cjs +222 -0
  81. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  82. package/dist/tools/codebase_search/vercel.js +4 -3
  83. package/dist/tools/fastapply/anthropic.cjs +236 -1
  84. package/dist/tools/fastapply/anthropic.cjs.map +1 -1
  85. package/dist/tools/fastapply/anthropic.js +4 -3
  86. package/dist/tools/fastapply/apply.cjs +225 -1
  87. package/dist/tools/fastapply/apply.cjs.map +1 -1
  88. package/dist/tools/fastapply/apply.js +2 -1
  89. package/dist/tools/fastapply/core.cjs +236 -1
  90. package/dist/tools/fastapply/core.cjs.map +1 -1
  91. package/dist/tools/fastapply/core.js +3 -2
  92. package/dist/tools/fastapply/index.cjs +236 -1
  93. package/dist/tools/fastapply/index.cjs.map +1 -1
  94. package/dist/tools/fastapply/index.js +8 -7
  95. package/dist/tools/fastapply/openai.cjs +236 -1
  96. package/dist/tools/fastapply/openai.cjs.map +1 -1
  97. package/dist/tools/fastapply/openai.js +4 -3
  98. package/dist/tools/fastapply/vercel.cjs +236 -1
  99. package/dist/tools/fastapply/vercel.cjs.map +1 -1
  100. package/dist/tools/fastapply/vercel.js +4 -3
  101. package/dist/tools/index.cjs +236 -1
  102. package/dist/tools/index.cjs.map +1 -1
  103. package/dist/tools/index.js +8 -7
  104. package/dist/tools/utils/resilience.cjs +224 -0
  105. package/dist/tools/utils/resilience.cjs.map +1 -1
  106. package/dist/tools/utils/resilience.js +2 -1
  107. package/dist/tools/warp_grep/agent/runner.cjs +225 -1
  108. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  109. package/dist/tools/warp_grep/agent/runner.js +3 -2
  110. package/dist/tools/warp_grep/anthropic.cjs +225 -1
  111. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  112. package/dist/tools/warp_grep/anthropic.js +5 -4
  113. package/dist/tools/warp_grep/client.cjs +225 -1
  114. package/dist/tools/warp_grep/client.cjs.map +1 -1
  115. package/dist/tools/warp_grep/client.js +4 -3
  116. package/dist/tools/warp_grep/gemini.cjs +225 -1
  117. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  118. package/dist/tools/warp_grep/gemini.js +4 -3
  119. package/dist/tools/warp_grep/gemini.js.map +1 -1
  120. package/dist/tools/warp_grep/harness.js +5 -5
  121. package/dist/tools/warp_grep/index.cjs +225 -1
  122. package/dist/tools/warp_grep/index.cjs.map +1 -1
  123. package/dist/tools/warp_grep/index.js +6 -5
  124. package/dist/tools/warp_grep/openai.cjs +225 -1
  125. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  126. package/dist/tools/warp_grep/openai.js +5 -4
  127. package/dist/tools/warp_grep/providers/local.js +2 -2
  128. package/dist/tools/warp_grep/vercel.cjs +225 -1
  129. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  130. package/dist/tools/warp_grep/vercel.js +5 -4
  131. package/dist/version.cjs +251 -0
  132. package/dist/version.cjs.map +1 -0
  133. package/dist/version.d.ts +3 -0
  134. package/dist/version.js +8 -0
  135. package/dist/version.js.map +1 -0
  136. package/package.json +2 -2
  137. package/dist/chunk-4VWJFZVS.js.map +0 -1
  138. package/dist/chunk-FXBT4UDY.js.map +0 -1
  139. package/dist/chunk-QL7MV3GT.js.map +0 -1
  140. /package/dist/{chunk-ZYPLV3HP.js.map → chunk-4VLTYTEY.js.map} +0 -0
  141. /package/dist/{chunk-M5DR2WOZ.js.map → chunk-5HPN4VL2.js.map} +0 -0
  142. /package/dist/{chunk-5IVVJMMX.js.map → chunk-6ODXYTLF.js.map} +0 -0
  143. /package/dist/{chunk-OUEJ6XEO.js.map → chunk-7HKYJ2MW.js.map} +0 -0
  144. /package/dist/{chunk-EMMSRY32.js.map → chunk-7TM4RBXE.js.map} +0 -0
  145. /package/dist/{chunk-EAT5W3SH.js.map → chunk-A54BOCBI.js.map} +0 -0
  146. /package/dist/{chunk-HMQSMEN2.js.map → chunk-EF7ZYLA2.js.map} +0 -0
  147. /package/dist/{chunk-K4EO7S2O.js.map → chunk-FZUUET6R.js.map} +0 -0
  148. /package/dist/{chunk-WM77HRKO.js.map → chunk-HBWOWL7L.js.map} +0 -0
  149. /package/dist/{chunk-OOCSNAA5.js.map → chunk-HCN2MLSO.js.map} +0 -0
  150. /package/dist/{chunk-HMAX2FEE.js.map → chunk-HQAPRX5T.js.map} +0 -0
  151. /package/dist/{chunk-O5DA5V5S.js.map → chunk-NW6PJIID.js.map} +0 -0
  152. /package/dist/{chunk-3T4BGWCV.js.map → chunk-P4EPXC2Q.js.map} +0 -0
  153. /package/dist/{chunk-G7RSAZIK.js.map → chunk-RODHADNG.js.map} +0 -0
  154. /package/dist/{chunk-WVTX3QS6.js.map → chunk-RZ4VC4BG.js.map} +0 -0
  155. /package/dist/{chunk-Y5BB7JFH.js.map → chunk-SNY2UKHQ.js.map} +0 -0
  156. /package/dist/{chunk-PR44LEQQ.js.map → chunk-T7F3DIRK.js.map} +0 -0
  157. /package/dist/{chunk-SI2CKRKJ.js.map → chunk-TVPEH6FF.js.map} +0 -0
  158. /package/dist/{chunk-UNHHRMU7.js.map → chunk-VVEK5JSH.js.map} +0 -0
  159. /package/dist/{chunk-ZRLEAPZV.js.map → chunk-XQ4KEOJT.js.map} +0 -0
@@ -5,16 +5,17 @@ import {
5
5
  import {
6
6
  executeToolCall,
7
7
  formatResult
8
- } from "../../chunk-G7RSAZIK.js";
9
- import "../../chunk-QL7MV3GT.js";
8
+ } from "../../chunk-RODHADNG.js";
9
+ import "../../chunk-BVINWDTA.js";
10
10
  import "../../chunk-PUGSTXLO.js";
11
11
  import "../../chunk-3MLWXJTJ.js";
12
+ import "../../chunk-APP75CBN.js";
12
13
  import "../../chunk-GHGJAQSJ.js";
13
14
  import {
14
15
  getSystemPrompt
15
16
  } from "../../chunk-FMLHRJDF.js";
16
17
  import "../../chunk-5PNMAWLC.js";
17
- import "../../chunk-APP75CBN.js";
18
+ import "../../chunk-4RO43W62.js";
18
19
  import "../../chunk-PZ5AY32C.js";
19
20
 
20
21
  // tools/warp_grep/gemini.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../tools/warp_grep/gemini.ts"],"sourcesContent":["/**\n * Google Gemini SDK adapter for morph-warp-grep tool\n * \n * Requires @google/generative-ai as a peer dependency.\n * Install with: npm install @google/generative-ai\n */\n\nimport type { FunctionDeclaration, FunctionDeclarationSchema } from '@google/generative-ai';\nimport { executeToolCall, formatResult } from './client.js';\nimport { WARP_GREP_DESCRIPTION, WARP_GREP_TOOL_NAME, getSystemPrompt } from './prompts.js';\nimport type { WarpGrepToolConfig, WarpGrepResult } from './types.js';\n\n// Use plain object to avoid runtime import of SchemaType enum\nconst TOOL_PARAMETERS = {\n type: 'OBJECT',\n properties: {\n query: { \n type: 'STRING', \n description: 'Free-form repository question' \n },\n },\n required: ['query'],\n} as unknown as FunctionDeclarationSchema;\n\n/**\n * Gemini-native warp grep function declaration\n * \n * @example\n * ```typescript\n * import { GoogleGenerativeAI } from '@google/generative-ai';\n * import { warpGrepFunctionDeclaration, execute } from '@morphllm/morphsdk/tools/warp-grep/gemini';\n * \n * const genAI = new GoogleGenerativeAI(process.env.GOOGLE_API_KEY);\n * const model = genAI.getGenerativeModel({\n * model: 'gemini-2.0-flash',\n * tools: [{ functionDeclarations: [warpGrepFunctionDeclaration] }]\n * });\n * \n * const chat = model.startChat();\n * const result = await chat.sendMessage('Find authentication middleware');\n * \n * // Handle function call\n * const call = result.response.functionCalls()?.[0];\n * if (call) {\n * const searchResult = await execute(call.args, { repoRoot: '.' });\n * console.log(searchResult);\n * }\n * ```\n */\nexport const warpGrepFunctionDeclaration: FunctionDeclaration = {\n name: WARP_GREP_TOOL_NAME,\n description: WARP_GREP_DESCRIPTION,\n parameters: TOOL_PARAMETERS,\n};\n\n/**\n * Execute warp grep search\n * \n * @param input - Tool input with query\n * @param config - Configuration with repoRoot and optional provider\n * @returns Search results\n */\nexport async function execute(\n input: { query: string } | string,\n config: WarpGrepToolConfig\n): Promise<WarpGrepResult> {\n return executeToolCall(input, config);\n}\n\nexport { formatResult, getSystemPrompt };\n\n/**\n * Gemini tool with execute method attached\n */\nexport interface GeminiWarpGrepTool extends FunctionDeclaration {\n execute: (input: unknown) => Promise<WarpGrepResult>;\n formatResult: (result: WarpGrepResult) => string;\n getSystemPrompt: () => string;\n}\n\n/**\n * Create a custom warp grep tool with configuration and methods\n * \n * @param config - Configuration options\n * @returns Function declaration with execute and formatResult methods\n * \n * @example Local usage\n * ```typescript\n * import { GoogleGenerativeAI } from '@google/generative-ai';\n * import { createMorphWarpGrepTool } from '@morphllm/morphsdk/tools/warp-grep/gemini';\n * \n * const tool = createMorphWarpGrepTool({ repoRoot: '.' });\n * \n * const genAI = new GoogleGenerativeAI(process.env.GOOGLE_API_KEY);\n * const model = genAI.getGenerativeModel({\n * model: 'gemini-2.0-flash',\n * tools: [{ functionDeclarations: [tool] }]\n * });\n * \n * const chat = model.startChat();\n * const result = await chat.sendMessage('Find authentication middleware');\n * \n * // Handle function call\n * const call = result.response.functionCalls()?.[0];\n * if (call && call.name === tool.name) {\n * const searchResult = await tool.execute(call.args);\n * console.log(tool.formatResult(searchResult));\n * \n * // Send result back to model\n * await chat.sendMessage([{\n * functionResponse: {\n * name: call.name,\n * response: { result: tool.formatResult(searchResult) }\n * }\n * }]);\n * }\n * ```\n * \n * @example Remote sandbox (E2B, Modal, etc.)\n * ```typescript\n * const tool = createMorphWarpGrepTool({\n * repoRoot: '/home/repo',\n * remoteCommands: {\n * grep: async (pattern, path) => (await sandbox.run(`rg '${pattern}' '${path}'`)).stdout,\n * read: async (path, start, end) => (await sandbox.run(`sed -n '${start},${end}p' '${path}'`)).stdout,\n * listDir: async (path, maxDepth) => (await sandbox.run(`find '${path}' -maxdepth ${maxDepth}`)).stdout,\n * },\n * });\n * ```\n */\nexport function createWarpGrepTool(config: WarpGrepToolConfig): GeminiWarpGrepTool {\n const declaration: FunctionDeclaration = {\n name: config.name ?? WARP_GREP_TOOL_NAME,\n description: config.description ?? WARP_GREP_DESCRIPTION,\n parameters: TOOL_PARAMETERS,\n };\n\n return Object.assign(declaration, {\n execute: async (input: unknown): Promise<WarpGrepResult> => {\n return executeToolCall(input as { query: string } | string, config);\n },\n formatResult: (result: WarpGrepResult): string => {\n return formatResult(result);\n },\n getSystemPrompt: (): string => {\n return getSystemPrompt();\n },\n });\n}\n\n// Legacy alias for backwards compatibility\nexport const createMorphWarpGrepTool = createWarpGrepTool;\n\nexport default warpGrepFunctionDeclaration;\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAaA,IAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,YAAY;AAAA,IACV,OAAO;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,UAAU,CAAC,OAAO;AACpB;AA2BO,IAAM,8BAAmD;AAAA,EAC9D,MAAM;AAAA,EACN,aAAa;AAAA,EACb,YAAY;AACd;AASA,eAAsB,QACpB,OACA,QACyB;AACzB,SAAO,gBAAgB,OAAO,MAAM;AACtC;AA+DO,SAAS,mBAAmB,QAAgD;AACjF,QAAM,cAAmC;AAAA,IACvC,MAAM,OAAO,QAAQ;AAAA,IACrB,aAAa,OAAO,eAAe;AAAA,IACnC,YAAY;AAAA,EACd;AAEA,SAAO,OAAO,OAAO,aAAa;AAAA,IAChC,SAAS,OAAO,UAA4C;AAC1D,aAAO,gBAAgB,OAAqC,MAAM;AAAA,IACpE;AAAA,IACA,cAAc,CAAC,WAAmC;AAChD,aAAO,aAAa,MAAM;AAAA,IAC5B;AAAA,IACA,iBAAiB,MAAc;AAC7B,aAAO,gBAAgB;AAAA,IACzB;AAAA,EACF,CAAC;AACH;AAGO,IAAM,0BAA0B;AAEvC,IAAO,iBAAQ;","names":[]}
1
+ {"version":3,"sources":["../../../tools/warp_grep/gemini.ts"],"sourcesContent":["/**\n * Google Gemini SDK adapter for morph-warp-grep tool\n * \n * Requires @google/generative-ai as a peer dependency.\n * Install with: npm install @google/generative-ai\n */\n\nimport type { FunctionDeclaration, FunctionDeclarationSchema } from '@google/generative-ai';\nimport { executeToolCall, formatResult } from './client.js';\nimport { WARP_GREP_DESCRIPTION, WARP_GREP_TOOL_NAME, getSystemPrompt } from './prompts.js';\nimport type { WarpGrepToolConfig, WarpGrepResult } from './types.js';\n\n// Use plain object to avoid runtime import of SchemaType enum\nconst TOOL_PARAMETERS = {\n type: 'OBJECT',\n properties: {\n query: { \n type: 'STRING', \n description: 'Free-form repository question' \n },\n },\n required: ['query'],\n} as unknown as FunctionDeclarationSchema;\n\n/**\n * Gemini-native warp grep function declaration\n * \n * @example\n * ```typescript\n * import { GoogleGenerativeAI } from '@google/generative-ai';\n * import { warpGrepFunctionDeclaration, execute } from '@morphllm/morphsdk/tools/warp-grep/gemini';\n * \n * const genAI = new GoogleGenerativeAI(process.env.GOOGLE_API_KEY);\n * const model = genAI.getGenerativeModel({\n * model: 'gemini-2.0-flash',\n * tools: [{ functionDeclarations: [warpGrepFunctionDeclaration] }]\n * });\n * \n * const chat = model.startChat();\n * const result = await chat.sendMessage('Find authentication middleware');\n * \n * // Handle function call\n * const call = result.response.functionCalls()?.[0];\n * if (call) {\n * const searchResult = await execute(call.args, { repoRoot: '.' });\n * console.log(searchResult);\n * }\n * ```\n */\nexport const warpGrepFunctionDeclaration: FunctionDeclaration = {\n name: WARP_GREP_TOOL_NAME,\n description: WARP_GREP_DESCRIPTION,\n parameters: TOOL_PARAMETERS,\n};\n\n/**\n * Execute warp grep search\n * \n * @param input - Tool input with query\n * @param config - Configuration with repoRoot and optional provider\n * @returns Search results\n */\nexport async function execute(\n input: { query: string } | string,\n config: WarpGrepToolConfig\n): Promise<WarpGrepResult> {\n return executeToolCall(input, config);\n}\n\nexport { formatResult, getSystemPrompt };\n\n/**\n * Gemini tool with execute method attached\n */\nexport interface GeminiWarpGrepTool extends FunctionDeclaration {\n execute: (input: unknown) => Promise<WarpGrepResult>;\n formatResult: (result: WarpGrepResult) => string;\n getSystemPrompt: () => string;\n}\n\n/**\n * Create a custom warp grep tool with configuration and methods\n * \n * @param config - Configuration options\n * @returns Function declaration with execute and formatResult methods\n * \n * @example Local usage\n * ```typescript\n * import { GoogleGenerativeAI } from '@google/generative-ai';\n * import { createMorphWarpGrepTool } from '@morphllm/morphsdk/tools/warp-grep/gemini';\n * \n * const tool = createMorphWarpGrepTool({ repoRoot: '.' });\n * \n * const genAI = new GoogleGenerativeAI(process.env.GOOGLE_API_KEY);\n * const model = genAI.getGenerativeModel({\n * model: 'gemini-2.0-flash',\n * tools: [{ functionDeclarations: [tool] }]\n * });\n * \n * const chat = model.startChat();\n * const result = await chat.sendMessage('Find authentication middleware');\n * \n * // Handle function call\n * const call = result.response.functionCalls()?.[0];\n * if (call && call.name === tool.name) {\n * const searchResult = await tool.execute(call.args);\n * console.log(tool.formatResult(searchResult));\n * \n * // Send result back to model\n * await chat.sendMessage([{\n * functionResponse: {\n * name: call.name,\n * response: { result: tool.formatResult(searchResult) }\n * }\n * }]);\n * }\n * ```\n * \n * @example Remote sandbox (E2B, Modal, etc.)\n * ```typescript\n * const tool = createMorphWarpGrepTool({\n * repoRoot: '/home/repo',\n * remoteCommands: {\n * grep: async (pattern, path) => (await sandbox.run(`rg '${pattern}' '${path}'`)).stdout,\n * read: async (path, start, end) => (await sandbox.run(`sed -n '${start},${end}p' '${path}'`)).stdout,\n * listDir: async (path, maxDepth) => (await sandbox.run(`find '${path}' -maxdepth ${maxDepth}`)).stdout,\n * },\n * });\n * ```\n */\nexport function createWarpGrepTool(config: WarpGrepToolConfig): GeminiWarpGrepTool {\n const declaration: FunctionDeclaration = {\n name: config.name ?? WARP_GREP_TOOL_NAME,\n description: config.description ?? WARP_GREP_DESCRIPTION,\n parameters: TOOL_PARAMETERS,\n };\n\n return Object.assign(declaration, {\n execute: async (input: unknown): Promise<WarpGrepResult> => {\n return executeToolCall(input as { query: string } | string, config);\n },\n formatResult: (result: WarpGrepResult): string => {\n return formatResult(result);\n },\n getSystemPrompt: (): string => {\n return getSystemPrompt();\n },\n });\n}\n\n// Legacy alias for backwards compatibility\nexport const createMorphWarpGrepTool = createWarpGrepTool;\n\nexport default warpGrepFunctionDeclaration;\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAaA,IAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,YAAY;AAAA,IACV,OAAO;AAAA,MACL,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,UAAU,CAAC,OAAO;AACpB;AA2BO,IAAM,8BAAmD;AAAA,EAC9D,MAAM;AAAA,EACN,aAAa;AAAA,EACb,YAAY;AACd;AASA,eAAsB,QACpB,OACA,QACyB;AACzB,SAAO,gBAAgB,OAAO,MAAM;AACtC;AA+DO,SAAS,mBAAmB,QAAgD;AACjF,QAAM,cAAmC;AAAA,IACvC,MAAM,OAAO,QAAQ;AAAA,IACrB,aAAa,OAAO,eAAe;AAAA,IACnC,YAAY;AAAA,EACd;AAEA,SAAO,OAAO,OAAO,aAAa;AAAA,IAChC,SAAS,OAAO,UAA4C;AAC1D,aAAO,gBAAgB,OAAqC,MAAM;AAAA,IACpE;AAAA,IACA,cAAc,CAAC,WAAmC;AAChD,aAAO,aAAa,MAAM;AAAA,IAC5B;AAAA,IACA,iBAAiB,MAAc;AAC7B,aAAO,gBAAgB;AAAA,IACzB;AAAA,EACF,CAAC;AACH;AAGO,IAAM,0BAA0B;AAEvC,IAAO,iBAAQ;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  LocalRipgrepProvider
3
- } from "../../chunk-HMQSMEN2.js";
3
+ } from "../../chunk-EF7ZYLA2.js";
4
+ import "../../chunk-G2RSY56Q.js";
4
5
  import "../../chunk-YPKNMYD4.js";
5
6
  import "../../chunk-TPP2UGQP.js";
6
- import "../../chunk-G2RSY56Q.js";
7
7
  import {
8
8
  buildInitialState,
9
9
  calculateContextBudget,
@@ -15,6 +15,9 @@ import {
15
15
  toolListDirectory,
16
16
  toolRead
17
17
  } from "../../chunk-3MLWXJTJ.js";
18
+ import {
19
+ formatAgentToolOutput
20
+ } from "../../chunk-APP75CBN.js";
18
21
  import {
19
22
  LLMResponseParser
20
23
  } from "../../chunk-GHGJAQSJ.js";
@@ -26,9 +29,6 @@ import {
26
29
  AGENT_CONFIG,
27
30
  DEFAULT_EXCLUDES
28
31
  } from "../../chunk-5PNMAWLC.js";
29
- import {
30
- formatAgentToolOutput
31
- } from "../../chunk-APP75CBN.js";
32
32
  import "../../chunk-PZ5AY32C.js";
33
33
 
34
34
  // tools/warp_grep/harness.ts
@@ -1396,6 +1396,229 @@ function enforceContextLimit(messages, maxChars = AGENT_CONFIG.MAX_CONTEXT_CHARS
1396
1396
 
1397
1397
  // tools/warp_grep/agent/runner.ts
1398
1398
  var import_openai = __toESM(require("openai"), 1);
1399
+
1400
+ // package.json
1401
+ var package_default = {
1402
+ name: "@morphllm/morphsdk",
1403
+ version: "0.2.120",
1404
+ description: "TypeScript SDK and CLI for Morph Fast Apply integration",
1405
+ type: "module",
1406
+ main: "./dist/index.cjs",
1407
+ module: "./dist/index.js",
1408
+ types: "./dist/index.d.ts",
1409
+ exports: {
1410
+ ".": {
1411
+ types: "./dist/index.d.ts",
1412
+ import: "./dist/index.js",
1413
+ require: "./dist/index.cjs"
1414
+ },
1415
+ "./edge": {
1416
+ types: "./dist/edge.d.ts",
1417
+ import: "./dist/edge.js",
1418
+ require: "./dist/edge.cjs"
1419
+ },
1420
+ "./tools/warp-grep": {
1421
+ types: "./dist/tools/warp_grep/index.d.ts",
1422
+ import: "./dist/tools/warp_grep/index.js",
1423
+ require: "./dist/tools/warp_grep/index.cjs"
1424
+ },
1425
+ "./tools/warp-grep/openai": {
1426
+ types: "./dist/tools/warp_grep/openai.d.ts",
1427
+ import: "./dist/tools/warp_grep/openai.js",
1428
+ require: "./dist/tools/warp_grep/openai.cjs"
1429
+ },
1430
+ "./tools/warp-grep/anthropic": {
1431
+ types: "./dist/tools/warp_grep/anthropic.d.ts",
1432
+ import: "./dist/tools/warp_grep/anthropic.js",
1433
+ require: "./dist/tools/warp_grep/anthropic.cjs"
1434
+ },
1435
+ "./tools/warp-grep/vercel": {
1436
+ types: "./dist/tools/warp_grep/vercel.d.ts",
1437
+ import: "./dist/tools/warp_grep/vercel.js",
1438
+ require: "./dist/tools/warp_grep/vercel.cjs"
1439
+ },
1440
+ "./tools/warp-grep/client": {
1441
+ types: "./dist/tools/warp_grep/client.d.ts",
1442
+ import: "./dist/tools/warp_grep/client.js",
1443
+ require: "./dist/tools/warp_grep/client.cjs"
1444
+ },
1445
+ "./tools/warp-grep/gemini": {
1446
+ types: "./dist/tools/warp_grep/gemini.d.ts",
1447
+ import: "./dist/tools/warp_grep/gemini.js",
1448
+ require: "./dist/tools/warp_grep/gemini.cjs"
1449
+ },
1450
+ "./tools/warp-grep/harness": {
1451
+ types: "./dist/tools/warp_grep/harness.d.ts",
1452
+ import: "./dist/tools/warp_grep/harness.js",
1453
+ require: "./dist/tools/warp_grep/harness.cjs"
1454
+ },
1455
+ "./tools/fastapply": {
1456
+ types: "./dist/tools/fastapply/index.d.ts",
1457
+ import: "./dist/tools/fastapply/index.js",
1458
+ require: "./dist/tools/fastapply/index.cjs"
1459
+ },
1460
+ "./tools/fastapply/anthropic": {
1461
+ types: "./dist/tools/fastapply/anthropic.d.ts",
1462
+ import: "./dist/tools/fastapply/anthropic.js",
1463
+ require: "./dist/tools/fastapply/anthropic.cjs"
1464
+ },
1465
+ "./tools/fastapply/openai": {
1466
+ types: "./dist/tools/fastapply/openai.d.ts",
1467
+ import: "./dist/tools/fastapply/openai.js",
1468
+ require: "./dist/tools/fastapply/openai.cjs"
1469
+ },
1470
+ "./tools/fastapply/vercel": {
1471
+ types: "./dist/tools/fastapply/vercel.d.ts",
1472
+ import: "./dist/tools/fastapply/vercel.js",
1473
+ require: "./dist/tools/fastapply/vercel.cjs"
1474
+ },
1475
+ "./tools/codebase-search": {
1476
+ types: "./dist/tools/codebase_search/index.d.ts",
1477
+ import: "./dist/tools/codebase_search/index.js",
1478
+ require: "./dist/tools/codebase_search/index.cjs"
1479
+ },
1480
+ "./tools/codebase-search/anthropic": {
1481
+ types: "./dist/tools/codebase_search/anthropic.d.ts",
1482
+ import: "./dist/tools/codebase_search/anthropic.js",
1483
+ require: "./dist/tools/codebase_search/anthropic.cjs"
1484
+ },
1485
+ "./tools/codebase-search/openai": {
1486
+ types: "./dist/tools/codebase_search/openai.d.ts",
1487
+ import: "./dist/tools/codebase_search/openai.js",
1488
+ require: "./dist/tools/codebase_search/openai.cjs"
1489
+ },
1490
+ "./tools/codebase-search/vercel": {
1491
+ types: "./dist/tools/codebase_search/vercel.d.ts",
1492
+ import: "./dist/tools/codebase_search/vercel.js",
1493
+ require: "./dist/tools/codebase_search/vercel.cjs"
1494
+ },
1495
+ "./tools/git": {
1496
+ types: "./dist/git/index.d.ts",
1497
+ import: "./dist/git/index.js",
1498
+ require: "./dist/git/index.cjs"
1499
+ },
1500
+ "./tools/browser": {
1501
+ types: "./dist/tools/browser/index.d.ts",
1502
+ import: "./dist/tools/browser/index.js",
1503
+ require: "./dist/tools/browser/index.cjs"
1504
+ },
1505
+ "./tools/browser/anthropic": {
1506
+ types: "./dist/tools/browser/anthropic.d.ts",
1507
+ import: "./dist/tools/browser/anthropic.js",
1508
+ require: "./dist/tools/browser/anthropic.cjs"
1509
+ },
1510
+ "./tools/browser/openai": {
1511
+ types: "./dist/tools/browser/openai.d.ts",
1512
+ import: "./dist/tools/browser/openai.js",
1513
+ require: "./dist/tools/browser/openai.cjs"
1514
+ },
1515
+ "./tools/browser/vercel": {
1516
+ types: "./dist/tools/browser/vercel.d.ts",
1517
+ import: "./dist/tools/browser/vercel.js",
1518
+ require: "./dist/tools/browser/vercel.cjs"
1519
+ },
1520
+ "./tools/browser/profiles": {
1521
+ types: "./dist/tools/browser/profiles/index.d.ts",
1522
+ import: "./dist/tools/browser/profiles/index.js",
1523
+ require: "./dist/tools/browser/profiles/index.cjs"
1524
+ },
1525
+ "./modelrouter": {
1526
+ types: "./dist/modelrouter/index.d.ts",
1527
+ import: "./dist/modelrouter/index.js",
1528
+ require: "./dist/modelrouter/index.cjs"
1529
+ }
1530
+ },
1531
+ files: [
1532
+ "dist/**/*.js",
1533
+ "dist/**/*.cjs",
1534
+ "dist/**/*.d.ts",
1535
+ "dist/**/*.map",
1536
+ "!dist/**/__tests__/**",
1537
+ "!dist/**/*.test.*"
1538
+ ],
1539
+ scripts: {
1540
+ 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",
1541
+ prepare: "npm run build",
1542
+ typecheck: "tsc --noEmit",
1543
+ lint: "eslint .",
1544
+ test: "vitest run",
1545
+ "test:watch": "vitest watch",
1546
+ "test:anthropic": "vitest run anthropic",
1547
+ "test:openai": "vitest run openai",
1548
+ "test:vercel": "vitest run vercel",
1549
+ "test:git": "vitest run git",
1550
+ "test:browser": "vitest run browser",
1551
+ "test:agent": "npx tsx tests/fullAgentTest.ts",
1552
+ "test:integration": "npx tsx tests/fullIntegrationTest.ts",
1553
+ "release:patch": "npm version patch && npm publish",
1554
+ "release:minor": "npm version minor && npm publish",
1555
+ "release:major": "npm version major && npm publish"
1556
+ },
1557
+ keywords: [
1558
+ "morph",
1559
+ "fast-apply",
1560
+ "cli",
1561
+ "sdk",
1562
+ "edit-file"
1563
+ ],
1564
+ engines: {
1565
+ node: ">=18"
1566
+ },
1567
+ license: "MIT",
1568
+ dependencies: {
1569
+ "@vscode/ripgrep": "^1.17.0",
1570
+ ai: "^5.0.0",
1571
+ diff: "^7.0.0",
1572
+ "isomorphic-git": "^1.25.10",
1573
+ openai: "^4.52.7",
1574
+ zod: "^3.23.8"
1575
+ },
1576
+ devDependencies: {
1577
+ "@ai-sdk/anthropic": "^1.0.9",
1578
+ "@ai-sdk/openai": "^2.0.35",
1579
+ "@anthropic-ai/sdk": "^0.30.1",
1580
+ "@google/generative-ai": "^0.24.1",
1581
+ "@types/diff": "^7.0.2",
1582
+ "@types/node": "^20.14.10",
1583
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
1584
+ "@typescript-eslint/parser": "^7.18.0",
1585
+ dotenv: "^16.4.5",
1586
+ eslint: "^8.57.0",
1587
+ shx: "^0.3.4",
1588
+ tsup: "^8.5.0",
1589
+ tsx: "^4.16.2",
1590
+ typescript: "^5.5.4",
1591
+ vitest: "^2.1.6"
1592
+ },
1593
+ peerDependencies: {
1594
+ "@anthropic-ai/sdk": ">=0.25.0",
1595
+ "@google/generative-ai": ">=0.21.0",
1596
+ ai: ">=5.0.0",
1597
+ zod: ">=3.23.0"
1598
+ },
1599
+ peerDependenciesMeta: {
1600
+ "@anthropic-ai/sdk": {
1601
+ optional: true
1602
+ },
1603
+ "@google/generative-ai": {
1604
+ optional: true
1605
+ },
1606
+ ai: {
1607
+ optional: true
1608
+ },
1609
+ zod: {
1610
+ optional: true
1611
+ }
1612
+ },
1613
+ publishConfig: {
1614
+ access: "public"
1615
+ }
1616
+ };
1617
+
1618
+ // version.ts
1619
+ var SDK_VERSION = package_default.version;
1620
+
1621
+ // tools/warp_grep/agent/runner.ts
1399
1622
  var import_path2 = __toESM(require("path"), 1);
1400
1623
  var parser = new LLMResponseParser();
1401
1624
  var DEFAULT_API_URL = "https://api.morphllm.com";
@@ -1407,7 +1630,8 @@ async function callModel(messages, model, options = {}) {
1407
1630
  apiKey,
1408
1631
  baseURL: `${baseUrl}/v1`,
1409
1632
  maxRetries: options.retryConfig?.maxRetries,
1410
- timeout: timeoutMs
1633
+ timeout: timeoutMs,
1634
+ defaultHeaders: { "X-Morph-SDK-Version": SDK_VERSION }
1411
1635
  });
1412
1636
  const MAX_EMPTY_RETRIES = 1;
1413
1637
  for (let attempt = 0; attempt <= MAX_EMPTY_RETRIES; attempt++) {