@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../tools/fastapply/apply.ts"],"sourcesContent":["/**\n * Edge-compatible code application API\n *\n * This module works on:\n * - Node.js\n * - Cloudflare Workers\n * - Vercel Edge Functions\n * - Deno Deploy\n * - Browser environments\n *\n * For file-based operations, use executeEditFile from core.ts\n */\n\nimport { createTwoFilesPatch } from 'diff';\nimport OpenAI from 'openai';\nimport { SDK_VERSION } from '../../version.js';\nimport type {\n EditChanges,\n ApplyEditInput,\n ApplyEditResult,\n ApplyEditConfig,\n} from './types.js';\n\nconst DEFAULT_API_URL = 'https://api.morphllm.com';\nconst DEFAULT_TIMEOUT = 30000;\n\n/**\n * Generate a unified diff between two strings\n */\nexport function generateUdiff(\n original: string,\n modified: string,\n filepath: string\n): string {\n return createTwoFilesPatch(\n filepath,\n filepath,\n original,\n modified,\n 'Original',\n 'Modified'\n );\n}\n\n/**\n * Count changes from a unified diff\n */\nexport function countChanges(original: string, modified: string): EditChanges {\n const diff = generateUdiff(original, modified, 'file');\n const lines = diff.split('\\n');\n\n let linesAdded = 0;\n let linesRemoved = 0;\n\n for (const line of lines) {\n if (line.startsWith('+') && !line.startsWith('+++')) {\n linesAdded++;\n } else if (line.startsWith('-') && !line.startsWith('---')) {\n linesRemoved++;\n }\n }\n\n const linesModified = Math.min(linesAdded, linesRemoved);\n\n return {\n linesAdded: linesAdded - linesModified,\n linesRemoved: linesRemoved - linesModified,\n linesModified,\n };\n}\n\n/**\n * Call Morph Apply API to merge code edits\n * Uses OpenAI SDK for reliable connection handling, retries, and timeouts\n */\nexport async function callMorphAPI(\n originalCode: string,\n codeEdit: string,\n instructions: string,\n filepath: string,\n config: ApplyEditConfig\n): Promise<{ content: string; completionId?: string }> {\n const apiKey = config.morphApiKey || (typeof process !== 'undefined' ? process.env?.MORPH_API_KEY : undefined);\n const apiUrl = config.morphApiUrl || DEFAULT_API_URL;\n const timeout = config.timeout || DEFAULT_TIMEOUT;\n const debug = config.debug || false;\n\n if (!apiKey) {\n throw new Error(\n 'Morph API key not found. Set MORPH_API_KEY environment variable or pass morphApiKey in config.'\n );\n }\n\n // Format message with XML tags as per Morph Fast Apply spec\n const message = `<instruction>${instructions}</instruction>\\n<code>${originalCode}</code>\\n<update>${codeEdit}</update>`;\n\n if (debug) {\n console.log(`[FastApply] Calling ${apiUrl}/v1/chat/completions`);\n console.log(`[FastApply] File: ${filepath}, Instructions: ${instructions.slice(0, 60)}...`);\n console.log(`[FastApply] Original: ${originalCode.length} chars, Edit: ${codeEdit.length} chars`);\n }\n\n const startTime = Date.now();\n\n const client = new OpenAI({\n apiKey,\n baseURL: `${apiUrl}/v1`,\n timeout,\n maxRetries: config.retryConfig?.maxRetries ?? 3,\n defaultHeaders: { 'X-Morph-SDK-Version': SDK_VERSION },\n });\n\n const completion = await client.chat.completions.create({\n model: 'morph-v3-fast',\n messages: [{ role: 'user', content: message }],\n });\n\n const content = completion.choices[0]?.message?.content;\n if (!content) {\n throw new Error('Morph API returned empty response');\n }\n\n const elapsed = Date.now() - startTime;\n\n if (debug) {\n console.log(`[FastApply] Success in ${elapsed}ms, merged: ${content.length} chars`);\n }\n\n return { content, completionId: completion.id };\n}\n\n/**\n * Apply an edit to code directly without file I/O\n *\n * This is the edge-compatible code-in/code-out API that accepts code content directly\n * and returns the merged result without reading or writing any files.\n *\n * Works on Cloudflare Workers, Vercel Edge Functions, Deno, and browsers.\n *\n * @param input - Code and edit parameters\n * @param config - Optional configuration\n * @returns Result with merged code\n *\n * @example\n * ```typescript\n * import { applyEdit } from '@morphllm/morphsdk';\n *\n * const result = await applyEdit({\n * originalCode: fs.readFileSync('file.ts', 'utf-8'),\n * codeEdit: '// ... existing code ...\\nconst newVar = 42;\\n// ... existing code ...',\n * instructions: 'Add a new variable',\n * filepath: 'file.ts' // optional, for udiff context\n * });\n *\n * if (result.success) {\n * fs.writeFileSync('file.ts', result.mergedCode);\n * }\n * ```\n */\nexport async function applyEdit(\n input: ApplyEditInput,\n config: ApplyEditConfig = {}\n): Promise<ApplyEditResult> {\n const debug = config.debug || false;\n const filepath = input.filepath || 'file';\n\n try {\n if (debug) {\n console.log(`[FastApply] Applying edit to code (${input.originalCode.length} chars)`);\n }\n\n const { content: mergedCode, completionId } = await callMorphAPI(\n input.originalCode,\n input.codeEdit,\n input.instructions,\n filepath,\n config\n );\n\n const udiff = config.generateUdiff !== false\n ? generateUdiff(input.originalCode, mergedCode, filepath)\n : undefined;\n\n const changes = countChanges(input.originalCode, mergedCode);\n\n return {\n success: true,\n mergedCode,\n udiff,\n changes,\n completionId,\n };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';\n if (debug) console.error(`[FastApply] Error: ${errorMessage}`);\n\n return {\n success: false,\n changes: { linesAdded: 0, linesRemoved: 0, linesModified: 0 },\n error: errorMessage,\n };\n }\n}\n"],"mappings":"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","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-YQMPVJ2L.js";
4
4
  import {
5
5
  executeCodebaseSearch
6
- } from "./chunk-WM77HRKO.js";
6
+ } from "./chunk-HBWOWL7L.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-O5DA5V5S.js.map
58
+ //# sourceMappingURL=chunk-NW6PJIID.js.map
@@ -1,51 +1,51 @@
1
1
  import {
2
2
  createWarpGrepTool
3
- } from "./chunk-WVTX3QS6.js";
3
+ } from "./chunk-RZ4VC4BG.js";
4
4
  import {
5
5
  createWarpGrepTool as createWarpGrepTool3
6
- } from "./chunk-K4EO7S2O.js";
6
+ } from "./chunk-FZUUET6R.js";
7
7
  import {
8
8
  createWarpGrepTool as createWarpGrepTool2
9
- } from "./chunk-OOCSNAA5.js";
9
+ } from "./chunk-HCN2MLSO.js";
10
10
  import {
11
11
  WarpGrepClient
12
- } from "./chunk-G7RSAZIK.js";
12
+ } from "./chunk-RODHADNG.js";
13
+ import {
14
+ createCodebaseSearchTool
15
+ } from "./chunk-XQ4KEOJT.js";
13
16
  import {
14
17
  createCodebaseSearchTool as createCodebaseSearchTool3
15
- } from "./chunk-O5DA5V5S.js";
18
+ } from "./chunk-NW6PJIID.js";
16
19
  import {
17
20
  createCodebaseSearchTool as createCodebaseSearchTool2
18
- } from "./chunk-OUEJ6XEO.js";
19
- import {
20
- createCodebaseSearchTool
21
- } from "./chunk-ZRLEAPZV.js";
21
+ } from "./chunk-7HKYJ2MW.js";
22
22
  import {
23
23
  CodebaseSearchClient
24
- } from "./chunk-WM77HRKO.js";
24
+ } from "./chunk-HBWOWL7L.js";
25
+ import {
26
+ createEditFileTool
27
+ } from "./chunk-VVEK5JSH.js";
25
28
  import {
26
29
  createEditFileTool as createEditFileTool3
27
- } from "./chunk-HMAX2FEE.js";
30
+ } from "./chunk-HQAPRX5T.js";
28
31
  import {
29
32
  createEditFileTool as createEditFileTool2
30
- } from "./chunk-Y5BB7JFH.js";
31
- import {
32
- createEditFileTool
33
- } from "./chunk-UNHHRMU7.js";
33
+ } from "./chunk-SNY2UKHQ.js";
34
34
  import {
35
35
  FastApplyClient
36
- } from "./chunk-M5DR2WOZ.js";
36
+ } from "./chunk-5HPN4VL2.js";
37
37
  import {
38
38
  BrowserClient
39
- } from "./chunk-ZYPLV3HP.js";
40
- import {
41
- MorphGit
42
- } from "./chunk-LE66XCOI.js";
39
+ } from "./chunk-4VLTYTEY.js";
43
40
  import {
44
41
  AnthropicRouter,
45
42
  GeminiRouter,
46
43
  OpenAIRouter,
47
44
  RawRouter
48
- } from "./chunk-EMMSRY32.js";
45
+ } from "./chunk-7TM4RBXE.js";
46
+ import {
47
+ MorphGit
48
+ } from "./chunk-LE66XCOI.js";
49
49
 
50
50
  // tools/github/types.ts
51
51
  var GitHubError = class extends Error {
@@ -643,4 +643,4 @@ export {
643
643
  VercelToolFactory,
644
644
  MorphClient
645
645
  };
646
- //# sourceMappingURL=chunk-3T4BGWCV.js.map
646
+ //# sourceMappingURL=chunk-P4EPXC2Q.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  runWarpGrep,
3
3
  runWarpGrepStreaming
4
- } from "./chunk-QL7MV3GT.js";
4
+ } from "./chunk-BVINWDTA.js";
5
5
  import {
6
6
  RemoteCommandsProvider
7
7
  } from "./chunk-PUGSTXLO.js";
@@ -148,4 +148,4 @@ export {
148
148
  executeToolCallStreaming,
149
149
  formatResult
150
150
  };
151
- //# sourceMappingURL=chunk-G7RSAZIK.js.map
151
+ //# sourceMappingURL=chunk-RODHADNG.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  executeToolCall,
7
7
  formatResult
8
- } from "./chunk-G7RSAZIK.js";
8
+ } from "./chunk-RODHADNG.js";
9
9
  import {
10
10
  getSystemPrompt
11
11
  } from "./chunk-FMLHRJDF.js";
@@ -58,4 +58,4 @@ export {
58
58
  createWarpGrepTool,
59
59
  openai_default
60
60
  };
61
- //# sourceMappingURL=chunk-WVTX3QS6.js.map
61
+ //# sourceMappingURL=chunk-RZ4VC4BG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-63WE2C5R.js";
5
5
  import {
6
6
  executeEditFile
7
- } from "./chunk-M5DR2WOZ.js";
7
+ } from "./chunk-5HPN4VL2.js";
8
8
  import {
9
9
  __export
10
10
  } from "./chunk-PZ5AY32C.js";
@@ -79,4 +79,4 @@ export {
79
79
  getSystemPrompt,
80
80
  anthropic_exports
81
81
  };
82
- //# sourceMappingURL=chunk-Y5BB7JFH.js.map
82
+ //# sourceMappingURL=chunk-SNY2UKHQ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2HMEZZKK.js";
4
4
  import {
5
5
  executeBrowserTask
6
- } from "./chunk-ZYPLV3HP.js";
6
+ } from "./chunk-4VLTYTEY.js";
7
7
  import {
8
8
  __export
9
9
  } from "./chunk-PZ5AY32C.js";
@@ -54,4 +54,4 @@ export {
54
54
  browserTool,
55
55
  vercel_exports
56
56
  };
57
- //# sourceMappingURL=chunk-PR44LEQQ.js.map
57
+ //# sourceMappingURL=chunk-T7F3DIRK.js.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-2VERUKO2.js";
13
13
  import {
14
14
  fetchWithRetry
15
- } from "./chunk-4VWJFZVS.js";
15
+ } from "./chunk-2BPPWIJI.js";
16
16
 
17
17
  // tools/browser/profiles/core.ts
18
18
  var DEFAULT_API_URL = process.env.MORPH_ENVIRONMENT === "DEV" ? "http://localhost:8000" : "https://browser.morphllm.com";
@@ -386,4 +386,4 @@ export {
386
386
  listRepos,
387
387
  getProfileState
388
388
  };
389
- //# sourceMappingURL=chunk-SI2CKRKJ.js.map
389
+ //# sourceMappingURL=chunk-TVPEH6FF.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-63WE2C5R.js";
5
5
  import {
6
6
  executeEditFile
7
- } from "./chunk-M5DR2WOZ.js";
7
+ } from "./chunk-5HPN4VL2.js";
8
8
  import {
9
9
  __export
10
10
  } from "./chunk-PZ5AY32C.js";
@@ -91,4 +91,4 @@ export {
91
91
  openai_default,
92
92
  openai_exports
93
93
  };
94
- //# sourceMappingURL=chunk-UNHHRMU7.js.map
94
+ //# sourceMappingURL=chunk-VVEK5JSH.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-YQMPVJ2L.js";
5
5
  import {
6
6
  executeCodebaseSearch
7
- } from "./chunk-WM77HRKO.js";
7
+ } from "./chunk-HBWOWL7L.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-ZRLEAPZV.js.map
128
+ //# sourceMappingURL=chunk-XQ4KEOJT.js.map
package/dist/client.cjs CHANGED
@@ -30,6 +30,239 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  ));
31
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
32
 
33
+ // package.json
34
+ var package_default;
35
+ var init_package = __esm({
36
+ "package.json"() {
37
+ package_default = {
38
+ name: "@morphllm/morphsdk",
39
+ version: "0.2.120",
40
+ description: "TypeScript SDK and CLI for Morph Fast Apply integration",
41
+ type: "module",
42
+ main: "./dist/index.cjs",
43
+ module: "./dist/index.js",
44
+ types: "./dist/index.d.ts",
45
+ exports: {
46
+ ".": {
47
+ types: "./dist/index.d.ts",
48
+ import: "./dist/index.js",
49
+ require: "./dist/index.cjs"
50
+ },
51
+ "./edge": {
52
+ types: "./dist/edge.d.ts",
53
+ import: "./dist/edge.js",
54
+ require: "./dist/edge.cjs"
55
+ },
56
+ "./tools/warp-grep": {
57
+ types: "./dist/tools/warp_grep/index.d.ts",
58
+ import: "./dist/tools/warp_grep/index.js",
59
+ require: "./dist/tools/warp_grep/index.cjs"
60
+ },
61
+ "./tools/warp-grep/openai": {
62
+ types: "./dist/tools/warp_grep/openai.d.ts",
63
+ import: "./dist/tools/warp_grep/openai.js",
64
+ require: "./dist/tools/warp_grep/openai.cjs"
65
+ },
66
+ "./tools/warp-grep/anthropic": {
67
+ types: "./dist/tools/warp_grep/anthropic.d.ts",
68
+ import: "./dist/tools/warp_grep/anthropic.js",
69
+ require: "./dist/tools/warp_grep/anthropic.cjs"
70
+ },
71
+ "./tools/warp-grep/vercel": {
72
+ types: "./dist/tools/warp_grep/vercel.d.ts",
73
+ import: "./dist/tools/warp_grep/vercel.js",
74
+ require: "./dist/tools/warp_grep/vercel.cjs"
75
+ },
76
+ "./tools/warp-grep/client": {
77
+ types: "./dist/tools/warp_grep/client.d.ts",
78
+ import: "./dist/tools/warp_grep/client.js",
79
+ require: "./dist/tools/warp_grep/client.cjs"
80
+ },
81
+ "./tools/warp-grep/gemini": {
82
+ types: "./dist/tools/warp_grep/gemini.d.ts",
83
+ import: "./dist/tools/warp_grep/gemini.js",
84
+ require: "./dist/tools/warp_grep/gemini.cjs"
85
+ },
86
+ "./tools/warp-grep/harness": {
87
+ types: "./dist/tools/warp_grep/harness.d.ts",
88
+ import: "./dist/tools/warp_grep/harness.js",
89
+ require: "./dist/tools/warp_grep/harness.cjs"
90
+ },
91
+ "./tools/fastapply": {
92
+ types: "./dist/tools/fastapply/index.d.ts",
93
+ import: "./dist/tools/fastapply/index.js",
94
+ require: "./dist/tools/fastapply/index.cjs"
95
+ },
96
+ "./tools/fastapply/anthropic": {
97
+ types: "./dist/tools/fastapply/anthropic.d.ts",
98
+ import: "./dist/tools/fastapply/anthropic.js",
99
+ require: "./dist/tools/fastapply/anthropic.cjs"
100
+ },
101
+ "./tools/fastapply/openai": {
102
+ types: "./dist/tools/fastapply/openai.d.ts",
103
+ import: "./dist/tools/fastapply/openai.js",
104
+ require: "./dist/tools/fastapply/openai.cjs"
105
+ },
106
+ "./tools/fastapply/vercel": {
107
+ types: "./dist/tools/fastapply/vercel.d.ts",
108
+ import: "./dist/tools/fastapply/vercel.js",
109
+ require: "./dist/tools/fastapply/vercel.cjs"
110
+ },
111
+ "./tools/codebase-search": {
112
+ types: "./dist/tools/codebase_search/index.d.ts",
113
+ import: "./dist/tools/codebase_search/index.js",
114
+ require: "./dist/tools/codebase_search/index.cjs"
115
+ },
116
+ "./tools/codebase-search/anthropic": {
117
+ types: "./dist/tools/codebase_search/anthropic.d.ts",
118
+ import: "./dist/tools/codebase_search/anthropic.js",
119
+ require: "./dist/tools/codebase_search/anthropic.cjs"
120
+ },
121
+ "./tools/codebase-search/openai": {
122
+ types: "./dist/tools/codebase_search/openai.d.ts",
123
+ import: "./dist/tools/codebase_search/openai.js",
124
+ require: "./dist/tools/codebase_search/openai.cjs"
125
+ },
126
+ "./tools/codebase-search/vercel": {
127
+ types: "./dist/tools/codebase_search/vercel.d.ts",
128
+ import: "./dist/tools/codebase_search/vercel.js",
129
+ require: "./dist/tools/codebase_search/vercel.cjs"
130
+ },
131
+ "./tools/git": {
132
+ types: "./dist/git/index.d.ts",
133
+ import: "./dist/git/index.js",
134
+ require: "./dist/git/index.cjs"
135
+ },
136
+ "./tools/browser": {
137
+ types: "./dist/tools/browser/index.d.ts",
138
+ import: "./dist/tools/browser/index.js",
139
+ require: "./dist/tools/browser/index.cjs"
140
+ },
141
+ "./tools/browser/anthropic": {
142
+ types: "./dist/tools/browser/anthropic.d.ts",
143
+ import: "./dist/tools/browser/anthropic.js",
144
+ require: "./dist/tools/browser/anthropic.cjs"
145
+ },
146
+ "./tools/browser/openai": {
147
+ types: "./dist/tools/browser/openai.d.ts",
148
+ import: "./dist/tools/browser/openai.js",
149
+ require: "./dist/tools/browser/openai.cjs"
150
+ },
151
+ "./tools/browser/vercel": {
152
+ types: "./dist/tools/browser/vercel.d.ts",
153
+ import: "./dist/tools/browser/vercel.js",
154
+ require: "./dist/tools/browser/vercel.cjs"
155
+ },
156
+ "./tools/browser/profiles": {
157
+ types: "./dist/tools/browser/profiles/index.d.ts",
158
+ import: "./dist/tools/browser/profiles/index.js",
159
+ require: "./dist/tools/browser/profiles/index.cjs"
160
+ },
161
+ "./modelrouter": {
162
+ types: "./dist/modelrouter/index.d.ts",
163
+ import: "./dist/modelrouter/index.js",
164
+ require: "./dist/modelrouter/index.cjs"
165
+ }
166
+ },
167
+ files: [
168
+ "dist/**/*.js",
169
+ "dist/**/*.cjs",
170
+ "dist/**/*.d.ts",
171
+ "dist/**/*.map",
172
+ "!dist/**/__tests__/**",
173
+ "!dist/**/*.test.*"
174
+ ],
175
+ scripts: {
176
+ 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",
177
+ prepare: "npm run build",
178
+ typecheck: "tsc --noEmit",
179
+ lint: "eslint .",
180
+ test: "vitest run",
181
+ "test:watch": "vitest watch",
182
+ "test:anthropic": "vitest run anthropic",
183
+ "test:openai": "vitest run openai",
184
+ "test:vercel": "vitest run vercel",
185
+ "test:git": "vitest run git",
186
+ "test:browser": "vitest run browser",
187
+ "test:agent": "npx tsx tests/fullAgentTest.ts",
188
+ "test:integration": "npx tsx tests/fullIntegrationTest.ts",
189
+ "release:patch": "npm version patch && npm publish",
190
+ "release:minor": "npm version minor && npm publish",
191
+ "release:major": "npm version major && npm publish"
192
+ },
193
+ keywords: [
194
+ "morph",
195
+ "fast-apply",
196
+ "cli",
197
+ "sdk",
198
+ "edit-file"
199
+ ],
200
+ engines: {
201
+ node: ">=18"
202
+ },
203
+ license: "MIT",
204
+ dependencies: {
205
+ "@vscode/ripgrep": "^1.17.0",
206
+ ai: "^5.0.0",
207
+ diff: "^7.0.0",
208
+ "isomorphic-git": "^1.25.10",
209
+ openai: "^4.52.7",
210
+ zod: "^3.23.8"
211
+ },
212
+ devDependencies: {
213
+ "@ai-sdk/anthropic": "^1.0.9",
214
+ "@ai-sdk/openai": "^2.0.35",
215
+ "@anthropic-ai/sdk": "^0.30.1",
216
+ "@google/generative-ai": "^0.24.1",
217
+ "@types/diff": "^7.0.2",
218
+ "@types/node": "^20.14.10",
219
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
220
+ "@typescript-eslint/parser": "^7.18.0",
221
+ dotenv: "^16.4.5",
222
+ eslint: "^8.57.0",
223
+ shx: "^0.3.4",
224
+ tsup: "^8.5.0",
225
+ tsx: "^4.16.2",
226
+ typescript: "^5.5.4",
227
+ vitest: "^2.1.6"
228
+ },
229
+ peerDependencies: {
230
+ "@anthropic-ai/sdk": ">=0.25.0",
231
+ "@google/generative-ai": ">=0.21.0",
232
+ ai: ">=5.0.0",
233
+ zod: ">=3.23.0"
234
+ },
235
+ peerDependenciesMeta: {
236
+ "@anthropic-ai/sdk": {
237
+ optional: true
238
+ },
239
+ "@google/generative-ai": {
240
+ optional: true
241
+ },
242
+ ai: {
243
+ optional: true
244
+ },
245
+ zod: {
246
+ optional: true
247
+ }
248
+ },
249
+ publishConfig: {
250
+ access: "public"
251
+ }
252
+ };
253
+ }
254
+ });
255
+
256
+ // version.ts
257
+ var SDK_VERSION;
258
+ var init_version = __esm({
259
+ "version.ts"() {
260
+ "use strict";
261
+ init_package();
262
+ SDK_VERSION = package_default.version;
263
+ }
264
+ });
265
+
33
266
  // tools/fastapply/apply.ts
34
267
  var apply_exports = {};
35
268
  __export(apply_exports, {
@@ -90,7 +323,8 @@ async function callMorphAPI(originalCode, codeEdit, instructions, filepath, conf
90
323
  apiKey,
91
324
  baseURL: `${apiUrl}/v1`,
92
325
  timeout,
93
- maxRetries: config.retryConfig?.maxRetries ?? 3
326
+ maxRetries: config.retryConfig?.maxRetries ?? 3,
327
+ defaultHeaders: { "X-Morph-SDK-Version": SDK_VERSION }
94
328
  });
95
329
  const completion = await client.chat.completions.create({
96
330
  model: "morph-v3-fast",
@@ -145,6 +379,7 @@ var init_apply = __esm({
145
379
  "use strict";
146
380
  import_diff = require("diff");
147
381
  import_openai = __toESM(require("openai"), 1);
382
+ init_version();
148
383
  DEFAULT_API_URL = "https://api.morphllm.com";
149
384
  DEFAULT_TIMEOUT = 3e4;
150
385
  }
@@ -808,6 +1043,7 @@ async function executeEditFile(input, config = {}) {
808
1043
  }
809
1044
 
810
1045
  // tools/utils/resilience.ts
1046
+ init_version();
811
1047
  var DEFAULT_RETRY_CONFIG = {
812
1048
  maxRetries: 3,
813
1049
  initialDelay: 1e3,
@@ -826,6 +1062,7 @@ async function fetchWithRetry(url, options, retryConfig = {}) {
826
1062
  } = retryConfig;
827
1063
  let lastError = null;
828
1064
  let delay = initialDelay;
1065
+ options = { ...options, headers: { "X-Morph-SDK-Version": SDK_VERSION, ...options.headers } };
829
1066
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
830
1067
  try {
831
1068
  const response = await fetch(url, options);
@@ -3018,6 +3255,7 @@ function enforceContextLimit(messages, maxChars = AGENT_CONFIG.MAX_CONTEXT_CHARS
3018
3255
 
3019
3256
  // tools/warp_grep/agent/runner.ts
3020
3257
  var import_openai2 = __toESM(require("openai"), 1);
3258
+ init_version();
3021
3259
  var import_path3 = __toESM(require("path"), 1);
3022
3260
  var parser = new LLMResponseParser();
3023
3261
  var DEFAULT_API_URL3 = "https://api.morphllm.com";
@@ -3029,7 +3267,8 @@ async function callModel(messages, model, options = {}) {
3029
3267
  apiKey,
3030
3268
  baseURL: `${baseUrl}/v1`,
3031
3269
  maxRetries: options.retryConfig?.maxRetries,
3032
- timeout: timeoutMs
3270
+ timeout: timeoutMs,
3271
+ defaultHeaders: { "X-Morph-SDK-Version": SDK_VERSION }
3033
3272
  });
3034
3273
  const MAX_EMPTY_RETRIES = 1;
3035
3274
  for (let attempt = 0; attempt <= MAX_EMPTY_RETRIES; attempt++) {