@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
@@ -38,6 +38,229 @@ __export(apply_exports, {
38
38
  module.exports = __toCommonJS(apply_exports);
39
39
  var import_diff = require("diff");
40
40
  var import_openai = __toESM(require("openai"), 1);
41
+
42
+ // package.json
43
+ var package_default = {
44
+ name: "@morphllm/morphsdk",
45
+ version: "0.2.120",
46
+ description: "TypeScript SDK and CLI for Morph Fast Apply integration",
47
+ type: "module",
48
+ main: "./dist/index.cjs",
49
+ module: "./dist/index.js",
50
+ types: "./dist/index.d.ts",
51
+ exports: {
52
+ ".": {
53
+ types: "./dist/index.d.ts",
54
+ import: "./dist/index.js",
55
+ require: "./dist/index.cjs"
56
+ },
57
+ "./edge": {
58
+ types: "./dist/edge.d.ts",
59
+ import: "./dist/edge.js",
60
+ require: "./dist/edge.cjs"
61
+ },
62
+ "./tools/warp-grep": {
63
+ types: "./dist/tools/warp_grep/index.d.ts",
64
+ import: "./dist/tools/warp_grep/index.js",
65
+ require: "./dist/tools/warp_grep/index.cjs"
66
+ },
67
+ "./tools/warp-grep/openai": {
68
+ types: "./dist/tools/warp_grep/openai.d.ts",
69
+ import: "./dist/tools/warp_grep/openai.js",
70
+ require: "./dist/tools/warp_grep/openai.cjs"
71
+ },
72
+ "./tools/warp-grep/anthropic": {
73
+ types: "./dist/tools/warp_grep/anthropic.d.ts",
74
+ import: "./dist/tools/warp_grep/anthropic.js",
75
+ require: "./dist/tools/warp_grep/anthropic.cjs"
76
+ },
77
+ "./tools/warp-grep/vercel": {
78
+ types: "./dist/tools/warp_grep/vercel.d.ts",
79
+ import: "./dist/tools/warp_grep/vercel.js",
80
+ require: "./dist/tools/warp_grep/vercel.cjs"
81
+ },
82
+ "./tools/warp-grep/client": {
83
+ types: "./dist/tools/warp_grep/client.d.ts",
84
+ import: "./dist/tools/warp_grep/client.js",
85
+ require: "./dist/tools/warp_grep/client.cjs"
86
+ },
87
+ "./tools/warp-grep/gemini": {
88
+ types: "./dist/tools/warp_grep/gemini.d.ts",
89
+ import: "./dist/tools/warp_grep/gemini.js",
90
+ require: "./dist/tools/warp_grep/gemini.cjs"
91
+ },
92
+ "./tools/warp-grep/harness": {
93
+ types: "./dist/tools/warp_grep/harness.d.ts",
94
+ import: "./dist/tools/warp_grep/harness.js",
95
+ require: "./dist/tools/warp_grep/harness.cjs"
96
+ },
97
+ "./tools/fastapply": {
98
+ types: "./dist/tools/fastapply/index.d.ts",
99
+ import: "./dist/tools/fastapply/index.js",
100
+ require: "./dist/tools/fastapply/index.cjs"
101
+ },
102
+ "./tools/fastapply/anthropic": {
103
+ types: "./dist/tools/fastapply/anthropic.d.ts",
104
+ import: "./dist/tools/fastapply/anthropic.js",
105
+ require: "./dist/tools/fastapply/anthropic.cjs"
106
+ },
107
+ "./tools/fastapply/openai": {
108
+ types: "./dist/tools/fastapply/openai.d.ts",
109
+ import: "./dist/tools/fastapply/openai.js",
110
+ require: "./dist/tools/fastapply/openai.cjs"
111
+ },
112
+ "./tools/fastapply/vercel": {
113
+ types: "./dist/tools/fastapply/vercel.d.ts",
114
+ import: "./dist/tools/fastapply/vercel.js",
115
+ require: "./dist/tools/fastapply/vercel.cjs"
116
+ },
117
+ "./tools/codebase-search": {
118
+ types: "./dist/tools/codebase_search/index.d.ts",
119
+ import: "./dist/tools/codebase_search/index.js",
120
+ require: "./dist/tools/codebase_search/index.cjs"
121
+ },
122
+ "./tools/codebase-search/anthropic": {
123
+ types: "./dist/tools/codebase_search/anthropic.d.ts",
124
+ import: "./dist/tools/codebase_search/anthropic.js",
125
+ require: "./dist/tools/codebase_search/anthropic.cjs"
126
+ },
127
+ "./tools/codebase-search/openai": {
128
+ types: "./dist/tools/codebase_search/openai.d.ts",
129
+ import: "./dist/tools/codebase_search/openai.js",
130
+ require: "./dist/tools/codebase_search/openai.cjs"
131
+ },
132
+ "./tools/codebase-search/vercel": {
133
+ types: "./dist/tools/codebase_search/vercel.d.ts",
134
+ import: "./dist/tools/codebase_search/vercel.js",
135
+ require: "./dist/tools/codebase_search/vercel.cjs"
136
+ },
137
+ "./tools/git": {
138
+ types: "./dist/git/index.d.ts",
139
+ import: "./dist/git/index.js",
140
+ require: "./dist/git/index.cjs"
141
+ },
142
+ "./tools/browser": {
143
+ types: "./dist/tools/browser/index.d.ts",
144
+ import: "./dist/tools/browser/index.js",
145
+ require: "./dist/tools/browser/index.cjs"
146
+ },
147
+ "./tools/browser/anthropic": {
148
+ types: "./dist/tools/browser/anthropic.d.ts",
149
+ import: "./dist/tools/browser/anthropic.js",
150
+ require: "./dist/tools/browser/anthropic.cjs"
151
+ },
152
+ "./tools/browser/openai": {
153
+ types: "./dist/tools/browser/openai.d.ts",
154
+ import: "./dist/tools/browser/openai.js",
155
+ require: "./dist/tools/browser/openai.cjs"
156
+ },
157
+ "./tools/browser/vercel": {
158
+ types: "./dist/tools/browser/vercel.d.ts",
159
+ import: "./dist/tools/browser/vercel.js",
160
+ require: "./dist/tools/browser/vercel.cjs"
161
+ },
162
+ "./tools/browser/profiles": {
163
+ types: "./dist/tools/browser/profiles/index.d.ts",
164
+ import: "./dist/tools/browser/profiles/index.js",
165
+ require: "./dist/tools/browser/profiles/index.cjs"
166
+ },
167
+ "./modelrouter": {
168
+ types: "./dist/modelrouter/index.d.ts",
169
+ import: "./dist/modelrouter/index.js",
170
+ require: "./dist/modelrouter/index.cjs"
171
+ }
172
+ },
173
+ files: [
174
+ "dist/**/*.js",
175
+ "dist/**/*.cjs",
176
+ "dist/**/*.d.ts",
177
+ "dist/**/*.map",
178
+ "!dist/**/__tests__/**",
179
+ "!dist/**/*.test.*"
180
+ ],
181
+ scripts: {
182
+ 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",
183
+ prepare: "npm run build",
184
+ typecheck: "tsc --noEmit",
185
+ lint: "eslint .",
186
+ test: "vitest run",
187
+ "test:watch": "vitest watch",
188
+ "test:anthropic": "vitest run anthropic",
189
+ "test:openai": "vitest run openai",
190
+ "test:vercel": "vitest run vercel",
191
+ "test:git": "vitest run git",
192
+ "test:browser": "vitest run browser",
193
+ "test:agent": "npx tsx tests/fullAgentTest.ts",
194
+ "test:integration": "npx tsx tests/fullIntegrationTest.ts",
195
+ "release:patch": "npm version patch && npm publish",
196
+ "release:minor": "npm version minor && npm publish",
197
+ "release:major": "npm version major && npm publish"
198
+ },
199
+ keywords: [
200
+ "morph",
201
+ "fast-apply",
202
+ "cli",
203
+ "sdk",
204
+ "edit-file"
205
+ ],
206
+ engines: {
207
+ node: ">=18"
208
+ },
209
+ license: "MIT",
210
+ dependencies: {
211
+ "@vscode/ripgrep": "^1.17.0",
212
+ ai: "^5.0.0",
213
+ diff: "^7.0.0",
214
+ "isomorphic-git": "^1.25.10",
215
+ openai: "^4.52.7",
216
+ zod: "^3.23.8"
217
+ },
218
+ devDependencies: {
219
+ "@ai-sdk/anthropic": "^1.0.9",
220
+ "@ai-sdk/openai": "^2.0.35",
221
+ "@anthropic-ai/sdk": "^0.30.1",
222
+ "@google/generative-ai": "^0.24.1",
223
+ "@types/diff": "^7.0.2",
224
+ "@types/node": "^20.14.10",
225
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
226
+ "@typescript-eslint/parser": "^7.18.0",
227
+ dotenv: "^16.4.5",
228
+ eslint: "^8.57.0",
229
+ shx: "^0.3.4",
230
+ tsup: "^8.5.0",
231
+ tsx: "^4.16.2",
232
+ typescript: "^5.5.4",
233
+ vitest: "^2.1.6"
234
+ },
235
+ peerDependencies: {
236
+ "@anthropic-ai/sdk": ">=0.25.0",
237
+ "@google/generative-ai": ">=0.21.0",
238
+ ai: ">=5.0.0",
239
+ zod: ">=3.23.0"
240
+ },
241
+ peerDependenciesMeta: {
242
+ "@anthropic-ai/sdk": {
243
+ optional: true
244
+ },
245
+ "@google/generative-ai": {
246
+ optional: true
247
+ },
248
+ ai: {
249
+ optional: true
250
+ },
251
+ zod: {
252
+ optional: true
253
+ }
254
+ },
255
+ publishConfig: {
256
+ access: "public"
257
+ }
258
+ };
259
+
260
+ // version.ts
261
+ var SDK_VERSION = package_default.version;
262
+
263
+ // tools/fastapply/apply.ts
41
264
  var DEFAULT_API_URL = "https://api.morphllm.com";
42
265
  var DEFAULT_TIMEOUT = 3e4;
43
266
  function generateUdiff(original, modified, filepath) {
@@ -92,7 +315,8 @@ async function callMorphAPI(originalCode, codeEdit, instructions, filepath, conf
92
315
  apiKey,
93
316
  baseURL: `${apiUrl}/v1`,
94
317
  timeout,
95
- maxRetries: config.retryConfig?.maxRetries ?? 3
318
+ maxRetries: config.retryConfig?.maxRetries ?? 3,
319
+ defaultHeaders: { "X-Morph-SDK-Version": SDK_VERSION }
96
320
  });
97
321
  const completion = await client.chat.completions.create({
98
322
  model: "morph-v3-fast",
@@ -1 +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 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 });\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":["OpenAI"]}
1
+ {"version":3,"sources":["../../../tools/fastapply/apply.ts","../../../package.json","../../../version.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","{\n \"name\": \"@morphllm/morphsdk\",\n \"version\": \"0.2.120\",\n \"description\": \"TypeScript SDK and CLI for Morph Fast Apply integration\",\n \"type\": \"module\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./edge\": {\n \"types\": \"./dist/edge.d.ts\",\n \"import\": \"./dist/edge.js\",\n \"require\": \"./dist/edge.cjs\"\n },\n \"./tools/warp-grep\": {\n \"types\": \"./dist/tools/warp_grep/index.d.ts\",\n \"import\": \"./dist/tools/warp_grep/index.js\",\n \"require\": \"./dist/tools/warp_grep/index.cjs\"\n },\n \"./tools/warp-grep/openai\": {\n \"types\": \"./dist/tools/warp_grep/openai.d.ts\",\n \"import\": \"./dist/tools/warp_grep/openai.js\",\n \"require\": \"./dist/tools/warp_grep/openai.cjs\"\n },\n \"./tools/warp-grep/anthropic\": {\n \"types\": \"./dist/tools/warp_grep/anthropic.d.ts\",\n \"import\": \"./dist/tools/warp_grep/anthropic.js\",\n \"require\": \"./dist/tools/warp_grep/anthropic.cjs\"\n },\n \"./tools/warp-grep/vercel\": {\n \"types\": \"./dist/tools/warp_grep/vercel.d.ts\",\n \"import\": \"./dist/tools/warp_grep/vercel.js\",\n \"require\": \"./dist/tools/warp_grep/vercel.cjs\"\n },\n \"./tools/warp-grep/client\": {\n \"types\": \"./dist/tools/warp_grep/client.d.ts\",\n \"import\": \"./dist/tools/warp_grep/client.js\",\n \"require\": \"./dist/tools/warp_grep/client.cjs\"\n },\n \"./tools/warp-grep/gemini\": {\n \"types\": \"./dist/tools/warp_grep/gemini.d.ts\",\n \"import\": \"./dist/tools/warp_grep/gemini.js\",\n \"require\": \"./dist/tools/warp_grep/gemini.cjs\"\n },\n \"./tools/warp-grep/harness\": {\n \"types\": \"./dist/tools/warp_grep/harness.d.ts\",\n \"import\": \"./dist/tools/warp_grep/harness.js\",\n \"require\": \"./dist/tools/warp_grep/harness.cjs\"\n },\n \"./tools/fastapply\": {\n \"types\": \"./dist/tools/fastapply/index.d.ts\",\n \"import\": \"./dist/tools/fastapply/index.js\",\n \"require\": \"./dist/tools/fastapply/index.cjs\"\n },\n \"./tools/fastapply/anthropic\": {\n \"types\": \"./dist/tools/fastapply/anthropic.d.ts\",\n \"import\": \"./dist/tools/fastapply/anthropic.js\",\n \"require\": \"./dist/tools/fastapply/anthropic.cjs\"\n },\n \"./tools/fastapply/openai\": {\n \"types\": \"./dist/tools/fastapply/openai.d.ts\",\n \"import\": \"./dist/tools/fastapply/openai.js\",\n \"require\": \"./dist/tools/fastapply/openai.cjs\"\n },\n \"./tools/fastapply/vercel\": {\n \"types\": \"./dist/tools/fastapply/vercel.d.ts\",\n \"import\": \"./dist/tools/fastapply/vercel.js\",\n \"require\": \"./dist/tools/fastapply/vercel.cjs\"\n },\n \"./tools/codebase-search\": {\n \"types\": \"./dist/tools/codebase_search/index.d.ts\",\n \"import\": \"./dist/tools/codebase_search/index.js\",\n \"require\": \"./dist/tools/codebase_search/index.cjs\"\n },\n \"./tools/codebase-search/anthropic\": {\n \"types\": \"./dist/tools/codebase_search/anthropic.d.ts\",\n \"import\": \"./dist/tools/codebase_search/anthropic.js\",\n \"require\": \"./dist/tools/codebase_search/anthropic.cjs\"\n },\n \"./tools/codebase-search/openai\": {\n \"types\": \"./dist/tools/codebase_search/openai.d.ts\",\n \"import\": \"./dist/tools/codebase_search/openai.js\",\n \"require\": \"./dist/tools/codebase_search/openai.cjs\"\n },\n \"./tools/codebase-search/vercel\": {\n \"types\": \"./dist/tools/codebase_search/vercel.d.ts\",\n \"import\": \"./dist/tools/codebase_search/vercel.js\",\n \"require\": \"./dist/tools/codebase_search/vercel.cjs\"\n },\n \"./tools/git\": {\n \"types\": \"./dist/git/index.d.ts\",\n \"import\": \"./dist/git/index.js\",\n \"require\": \"./dist/git/index.cjs\"\n },\n \"./tools/browser\": {\n \"types\": \"./dist/tools/browser/index.d.ts\",\n \"import\": \"./dist/tools/browser/index.js\",\n \"require\": \"./dist/tools/browser/index.cjs\"\n },\n \"./tools/browser/anthropic\": {\n \"types\": \"./dist/tools/browser/anthropic.d.ts\",\n \"import\": \"./dist/tools/browser/anthropic.js\",\n \"require\": \"./dist/tools/browser/anthropic.cjs\"\n },\n \"./tools/browser/openai\": {\n \"types\": \"./dist/tools/browser/openai.d.ts\",\n \"import\": \"./dist/tools/browser/openai.js\",\n \"require\": \"./dist/tools/browser/openai.cjs\"\n },\n \"./tools/browser/vercel\": {\n \"types\": \"./dist/tools/browser/vercel.d.ts\",\n \"import\": \"./dist/tools/browser/vercel.js\",\n \"require\": \"./dist/tools/browser/vercel.cjs\"\n },\n \"./tools/browser/profiles\": {\n \"types\": \"./dist/tools/browser/profiles/index.d.ts\",\n \"import\": \"./dist/tools/browser/profiles/index.js\",\n \"require\": \"./dist/tools/browser/profiles/index.cjs\"\n },\n \"./modelrouter\": {\n \"types\": \"./dist/modelrouter/index.d.ts\",\n \"import\": \"./dist/modelrouter/index.js\",\n \"require\": \"./dist/modelrouter/index.cjs\"\n }\n },\n \"files\": [\n \"dist/**/*.js\",\n \"dist/**/*.cjs\",\n \"dist/**/*.d.ts\",\n \"dist/**/*.map\",\n \"!dist/**/__tests__/**\",\n \"!dist/**/*.test.*\"\n ],\n \"scripts\": {\n \"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\",\n \"prepare\": \"npm run build\",\n \"typecheck\": \"tsc --noEmit\",\n \"lint\": \"eslint .\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest watch\",\n \"test:anthropic\": \"vitest run anthropic\",\n \"test:openai\": \"vitest run openai\",\n \"test:vercel\": \"vitest run vercel\",\n \"test:git\": \"vitest run git\",\n \"test:browser\": \"vitest run browser\",\n \"test:agent\": \"npx tsx tests/fullAgentTest.ts\",\n \"test:integration\": \"npx tsx tests/fullIntegrationTest.ts\",\n \"release:patch\": \"npm version patch && npm publish\",\n \"release:minor\": \"npm version minor && npm publish\",\n \"release:major\": \"npm version major && npm publish\"\n },\n \"keywords\": [\n \"morph\",\n \"fast-apply\",\n \"cli\",\n \"sdk\",\n \"edit-file\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n },\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vscode/ripgrep\": \"^1.17.0\",\n \"ai\": \"^5.0.0\",\n \"diff\": \"^7.0.0\",\n \"isomorphic-git\": \"^1.25.10\",\n \"openai\": \"^4.52.7\",\n \"zod\": \"^3.23.8\"\n },\n \"devDependencies\": {\n \"@ai-sdk/anthropic\": \"^1.0.9\",\n \"@ai-sdk/openai\": \"^2.0.35\",\n \"@anthropic-ai/sdk\": \"^0.30.1\",\n \"@google/generative-ai\": \"^0.24.1\",\n \"@types/diff\": \"^7.0.2\",\n \"@types/node\": \"^20.14.10\",\n \"@typescript-eslint/eslint-plugin\": \"^7.18.0\",\n \"@typescript-eslint/parser\": \"^7.18.0\",\n \"dotenv\": \"^16.4.5\",\n \"eslint\": \"^8.57.0\",\n \"shx\": \"^0.3.4\",\n \"tsup\": \"^8.5.0\",\n \"tsx\": \"^4.16.2\",\n \"typescript\": \"^5.5.4\",\n \"vitest\": \"^2.1.6\"\n },\n \"peerDependencies\": {\n \"@anthropic-ai/sdk\": \">=0.25.0\",\n \"@google/generative-ai\": \">=0.21.0\",\n \"ai\": \">=5.0.0\",\n \"zod\": \">=3.23.0\"\n },\n \"peerDependenciesMeta\": {\n \"@anthropic-ai/sdk\": {\n \"optional\": true\n },\n \"@google/generative-ai\": {\n \"optional\": true\n },\n \"ai\": {\n \"optional\": true\n },\n \"zod\": {\n \"optional\": true\n }\n },\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n","import pkg from './package.json' with { type: 'json' };\nexport const SDK_VERSION: string = pkg.version;\n"],"mappings":"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","names":["OpenAI"]}
@@ -3,7 +3,8 @@ import {
3
3
  callMorphAPI,
4
4
  countChanges,
5
5
  generateUdiff
6
- } from "../../chunk-FXBT4UDY.js";
6
+ } from "../../chunk-NLDYHLRB.js";
7
+ import "../../chunk-4RO43W62.js";
7
8
  import "../../chunk-PZ5AY32C.js";
8
9
  export {
9
10
  applyEdit,
@@ -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
  }