@morphllm/morphsdk 0.2.170 → 0.2.172

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 (260) hide show
  1. package/dist/{chunk-IY7DESC3.js → chunk-2SNAXTUJ.js} +4 -4
  2. package/dist/chunk-453ZV2AX.js +120 -0
  3. package/dist/chunk-453ZV2AX.js.map +1 -0
  4. package/dist/chunk-53ZJMCWU.js +142 -0
  5. package/dist/chunk-53ZJMCWU.js.map +1 -0
  6. package/dist/{chunk-5KFQBI4J.js → chunk-5DA6SZQJ.js} +2 -2
  7. package/dist/chunk-66OHYI24.js +78 -0
  8. package/dist/chunk-66OHYI24.js.map +1 -0
  9. package/dist/chunk-6X6QMRQG.js +158 -0
  10. package/dist/chunk-6X6QMRQG.js.map +1 -0
  11. package/dist/{chunk-76XER44U.js → chunk-7PVVPLRL.js} +2 -2
  12. package/dist/{chunk-BCPZAPWY.js → chunk-AE7M2I52.js} +2 -2
  13. package/dist/{chunk-LNXIVRPY.js → chunk-CQF76HJC.js} +30 -6
  14. package/dist/chunk-CQF76HJC.js.map +1 -0
  15. package/dist/{chunk-OJQYBWHR.js → chunk-ESXCQBMU.js} +2 -2
  16. package/dist/{chunk-LAGN62H5.js → chunk-FOIDGIY4.js} +29 -10
  17. package/dist/chunk-FOIDGIY4.js.map +1 -0
  18. package/dist/{chunk-KUPSW5QN.js → chunk-GJZXDRH5.js} +8 -3
  19. package/dist/{chunk-KUPSW5QN.js.map → chunk-GJZXDRH5.js.map} +1 -1
  20. package/dist/{chunk-5IR3YE77.js → chunk-IJ33I7P5.js} +4 -4
  21. package/dist/{chunk-E5QWXVTF.js → chunk-IN2U7AAI.js} +99 -143
  22. package/dist/chunk-IN2U7AAI.js.map +1 -0
  23. package/dist/{chunk-LE66XCOI.js → chunk-JWZ5DLAS.js} +27 -10
  24. package/dist/chunk-JWZ5DLAS.js.map +1 -0
  25. package/dist/chunk-LKFZBBTD.js +12 -0
  26. package/dist/chunk-LKFZBBTD.js.map +1 -0
  27. package/dist/{chunk-6LPWEZ6H.js → chunk-MO6S2LRD.js} +2 -2
  28. package/dist/{chunk-S4IEM5EG.js → chunk-NI7PWQ3B.js} +4 -4
  29. package/dist/{chunk-GLQWEINZ.js → chunk-QAXXE4AD.js} +2 -2
  30. package/dist/{chunk-YG2I377B.js → chunk-QFE5523Q.js} +18 -3
  31. package/dist/chunk-QFE5523Q.js.map +1 -0
  32. package/dist/{chunk-G4FPDEUP.js → chunk-QQXNZIVK.js} +4 -4
  33. package/dist/{chunk-A3ZUWLYX.js → chunk-QZ3V2BP7.js} +2 -2
  34. package/dist/chunk-QZR7SJ5N.js +24 -0
  35. package/dist/chunk-QZR7SJ5N.js.map +1 -0
  36. package/dist/{chunk-SYD6BRQX.js → chunk-SJVLAGUL.js} +4 -4
  37. package/dist/{chunk-JMEQ6FLB.js → chunk-U4J3BVAQ.js} +4 -4
  38. package/dist/{chunk-QAWYDWDW.js → chunk-U4MRSZQQ.js} +2 -2
  39. package/dist/{chunk-WU3D46MH.js → chunk-UADW6FYD.js} +2 -2
  40. package/dist/{chunk-K7NY5SVR.js → chunk-VBARKJWL.js} +2 -2
  41. package/dist/{chunk-OPNTDMHH.js → chunk-VLZ6PNAD.js} +4 -4
  42. package/dist/chunk-VZ7BOH2K.js +1 -0
  43. package/dist/chunk-VZ7BOH2K.js.map +1 -0
  44. package/dist/{chunk-GUGHUAJU.js → chunk-XJDXV5VX.js} +2 -2
  45. package/dist/{chunk-GPNUS3H2.js → chunk-XYTYIAMQ.js} +2 -2
  46. package/dist/{chunk-MKBVWPU7.js → chunk-Z4GJVN52.js} +23 -8
  47. package/dist/chunk-Z4GJVN52.js.map +1 -0
  48. package/dist/chunk-ZLSNL6M2.js +97 -0
  49. package/dist/chunk-ZLSNL6M2.js.map +1 -0
  50. package/dist/{client-DsAAqupx.d.ts → client-Dh6yzCm4.d.ts} +14 -5
  51. package/dist/client.cjs +741 -525
  52. package/dist/client.cjs.map +1 -1
  53. package/dist/client.d.ts +5 -1
  54. package/dist/client.js +31 -27
  55. package/dist/core/client.cjs +540 -0
  56. package/dist/core/client.cjs.map +1 -0
  57. package/dist/core/client.d.ts +79 -0
  58. package/dist/core/client.js +12 -0
  59. package/dist/core/client.js.map +1 -0
  60. package/dist/core/error.cjs +309 -0
  61. package/dist/core/error.cjs.map +1 -0
  62. package/dist/core/error.d.ts +18 -0
  63. package/dist/core/error.js +10 -0
  64. package/dist/core/error.js.map +1 -0
  65. package/dist/core/index.cjs +552 -0
  66. package/dist/core/index.cjs.map +1 -0
  67. package/dist/core/index.d.ts +4 -0
  68. package/dist/core/index.js +20 -0
  69. package/dist/core/index.js.map +1 -0
  70. package/dist/core/resource.cjs +36 -0
  71. package/dist/core/resource.cjs.map +1 -0
  72. package/dist/core/resource.d.ts +18 -0
  73. package/dist/core/resource.js +8 -0
  74. package/dist/core/resource.js.map +1 -0
  75. package/dist/edge.cjs +252 -174
  76. package/dist/edge.cjs.map +1 -1
  77. package/dist/edge.d.ts +2 -0
  78. package/dist/edge.js +8 -5
  79. package/dist/git/client.cjs +529 -9
  80. package/dist/git/client.cjs.map +1 -1
  81. package/dist/git/client.d.ts +8 -2
  82. package/dist/git/client.js +7 -1
  83. package/dist/git/index.cjs +529 -9
  84. package/dist/git/index.cjs.map +1 -1
  85. package/dist/git/index.d.ts +2 -0
  86. package/dist/git/index.js +7 -1
  87. package/dist/index.cjs +688 -466
  88. package/dist/index.cjs.map +1 -1
  89. package/dist/index.d.ts +6 -2
  90. package/dist/index.js +49 -33
  91. package/dist/modelrouter/core.cjs +204 -125
  92. package/dist/modelrouter/core.cjs.map +1 -1
  93. package/dist/modelrouter/core.d.ts +36 -9
  94. package/dist/modelrouter/core.js +6 -3
  95. package/dist/modelrouter/index.cjs +204 -125
  96. package/dist/modelrouter/index.cjs.map +1 -1
  97. package/dist/modelrouter/index.d.ts +3 -0
  98. package/dist/modelrouter/index.js +6 -3
  99. package/dist/subagents/anthropic.cjs +268 -52
  100. package/dist/subagents/anthropic.cjs.map +1 -1
  101. package/dist/subagents/anthropic.js +10 -6
  102. package/dist/subagents/vercel.cjs +268 -52
  103. package/dist/subagents/vercel.cjs.map +1 -1
  104. package/dist/subagents/vercel.js +10 -6
  105. package/dist/tools/browser/anthropic.cjs +7 -2
  106. package/dist/tools/browser/anthropic.cjs.map +1 -1
  107. package/dist/tools/browser/anthropic.js +9 -6
  108. package/dist/tools/browser/core.cjs +162 -10
  109. package/dist/tools/browser/core.cjs.map +1 -1
  110. package/dist/tools/browser/core.d.ts +8 -2
  111. package/dist/tools/browser/core.js +8 -5
  112. package/dist/tools/browser/index.cjs +163 -11
  113. package/dist/tools/browser/index.cjs.map +1 -1
  114. package/dist/tools/browser/index.d.ts +2 -0
  115. package/dist/tools/browser/index.js +18 -15
  116. package/dist/tools/browser/index.js.map +1 -1
  117. package/dist/tools/browser/openai.cjs +7 -2
  118. package/dist/tools/browser/openai.cjs.map +1 -1
  119. package/dist/tools/browser/openai.js +9 -6
  120. package/dist/tools/browser/profiles/core.cjs +7 -2
  121. package/dist/tools/browser/profiles/core.cjs.map +1 -1
  122. package/dist/tools/browser/profiles/core.js +3 -3
  123. package/dist/tools/browser/profiles/index.cjs +7 -2
  124. package/dist/tools/browser/profiles/index.cjs.map +1 -1
  125. package/dist/tools/browser/profiles/index.js +3 -3
  126. package/dist/tools/browser/vercel.cjs +7 -2
  127. package/dist/tools/browser/vercel.cjs.map +1 -1
  128. package/dist/tools/browser/vercel.js +9 -6
  129. package/dist/tools/codebase_search/anthropic.cjs +162 -41
  130. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  131. package/dist/tools/codebase_search/anthropic.js +7 -4
  132. package/dist/tools/codebase_search/core.cjs +195 -66
  133. package/dist/tools/codebase_search/core.cjs.map +1 -1
  134. package/dist/tools/codebase_search/core.d.ts +18 -7
  135. package/dist/tools/codebase_search/core.js +6 -3
  136. package/dist/tools/codebase_search/index.cjs +162 -41
  137. package/dist/tools/codebase_search/index.cjs.map +1 -1
  138. package/dist/tools/codebase_search/index.d.ts +2 -0
  139. package/dist/tools/codebase_search/index.js +13 -10
  140. package/dist/tools/codebase_search/openai.cjs +162 -41
  141. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  142. package/dist/tools/codebase_search/openai.js +7 -4
  143. package/dist/tools/codebase_search/vercel.cjs +162 -41
  144. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  145. package/dist/tools/codebase_search/vercel.js +7 -4
  146. package/dist/tools/compact/core.cjs +551 -47
  147. package/dist/tools/compact/core.cjs.map +1 -1
  148. package/dist/tools/compact/core.d.ts +16 -3
  149. package/dist/tools/compact/core.js +7 -1
  150. package/dist/tools/compact/index.cjs +549 -47
  151. package/dist/tools/compact/index.cjs.map +1 -1
  152. package/dist/tools/compact/index.d.ts +2 -0
  153. package/dist/tools/compact/index.js +8 -2
  154. package/dist/tools/fastapply/anthropic.cjs +32 -3
  155. package/dist/tools/fastapply/anthropic.cjs.map +1 -1
  156. package/dist/tools/fastapply/anthropic.js +8 -4
  157. package/dist/tools/fastapply/apply.cjs +23 -3
  158. package/dist/tools/fastapply/apply.cjs.map +1 -1
  159. package/dist/tools/fastapply/apply.js +2 -2
  160. package/dist/tools/fastapply/core.cjs +258 -13
  161. package/dist/tools/fastapply/core.cjs.map +1 -1
  162. package/dist/tools/fastapply/core.d.ts +8 -2
  163. package/dist/tools/fastapply/core.js +7 -3
  164. package/dist/tools/fastapply/index.cjs +32 -3
  165. package/dist/tools/fastapply/index.cjs.map +1 -1
  166. package/dist/tools/fastapply/index.d.ts +2 -0
  167. package/dist/tools/fastapply/index.js +13 -9
  168. package/dist/tools/fastapply/openai.cjs +32 -3
  169. package/dist/tools/fastapply/openai.cjs.map +1 -1
  170. package/dist/tools/fastapply/openai.js +8 -4
  171. package/dist/tools/fastapply/vercel.cjs +32 -3
  172. package/dist/tools/fastapply/vercel.cjs.map +1 -1
  173. package/dist/tools/fastapply/vercel.js +8 -4
  174. package/dist/tools/index.cjs +32 -3
  175. package/dist/tools/index.cjs.map +1 -1
  176. package/dist/tools/index.d.ts +2 -0
  177. package/dist/tools/index.js +13 -9
  178. package/dist/tools/reflex/core.cjs +693 -0
  179. package/dist/tools/reflex/core.cjs.map +1 -0
  180. package/dist/tools/reflex/core.d.ts +53 -0
  181. package/dist/tools/reflex/core.js +16 -0
  182. package/dist/tools/reflex/core.js.map +1 -0
  183. package/dist/tools/reflex/index.cjs +693 -0
  184. package/dist/tools/reflex/index.cjs.map +1 -0
  185. package/dist/tools/reflex/index.d.ts +5 -0
  186. package/dist/tools/reflex/index.js +16 -0
  187. package/dist/tools/reflex/index.js.map +1 -0
  188. package/dist/tools/reflex/types.cjs +19 -0
  189. package/dist/tools/reflex/types.cjs.map +1 -0
  190. package/dist/tools/reflex/types.d.ts +113 -0
  191. package/dist/tools/reflex/types.js +1 -0
  192. package/dist/tools/reflex/types.js.map +1 -0
  193. package/dist/tools/utils/resilience.cjs +7 -2
  194. package/dist/tools/utils/resilience.cjs.map +1 -1
  195. package/dist/tools/utils/resilience.js +2 -2
  196. package/dist/tools/warp_grep/agent/runner.cjs +7 -2
  197. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  198. package/dist/tools/warp_grep/agent/runner.js +2 -2
  199. package/dist/tools/warp_grep/anthropic.cjs +268 -52
  200. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  201. package/dist/tools/warp_grep/anthropic.d.ts +2 -0
  202. package/dist/tools/warp_grep/anthropic.js +10 -6
  203. package/dist/tools/warp_grep/client.cjs +268 -52
  204. package/dist/tools/warp_grep/client.cjs.map +1 -1
  205. package/dist/tools/warp_grep/client.d.ts +8 -2
  206. package/dist/tools/warp_grep/client.js +9 -5
  207. package/dist/tools/warp_grep/gemini.cjs +268 -52
  208. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  209. package/dist/tools/warp_grep/gemini.d.ts +2 -0
  210. package/dist/tools/warp_grep/gemini.js +9 -5
  211. package/dist/tools/warp_grep/gemini.js.map +1 -1
  212. package/dist/tools/warp_grep/harness.js +5 -5
  213. package/dist/tools/warp_grep/index.cjs +268 -52
  214. package/dist/tools/warp_grep/index.cjs.map +1 -1
  215. package/dist/tools/warp_grep/index.d.ts +2 -0
  216. package/dist/tools/warp_grep/index.js +12 -8
  217. package/dist/tools/warp_grep/openai.cjs +268 -52
  218. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  219. package/dist/tools/warp_grep/openai.d.ts +2 -0
  220. package/dist/tools/warp_grep/openai.js +10 -6
  221. package/dist/tools/warp_grep/providers/local.js +2 -2
  222. package/dist/tools/warp_grep/vercel.cjs +268 -52
  223. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  224. package/dist/tools/warp_grep/vercel.d.ts +2 -0
  225. package/dist/tools/warp_grep/vercel.js +10 -6
  226. package/dist/version.cjs +7 -2
  227. package/dist/version.cjs.map +1 -1
  228. package/dist/version.js +1 -1
  229. package/package.json +7 -2
  230. package/dist/chunk-E5QWXVTF.js.map +0 -1
  231. package/dist/chunk-INBZD4EX.js +0 -197
  232. package/dist/chunk-INBZD4EX.js.map +0 -1
  233. package/dist/chunk-LAGN62H5.js.map +0 -1
  234. package/dist/chunk-LE66XCOI.js.map +0 -1
  235. package/dist/chunk-LNXIVRPY.js.map +0 -1
  236. package/dist/chunk-MKBVWPU7.js.map +0 -1
  237. package/dist/chunk-SCVWDNQP.js +0 -84
  238. package/dist/chunk-SCVWDNQP.js.map +0 -1
  239. package/dist/chunk-VE7J6VYX.js +0 -102
  240. package/dist/chunk-VE7J6VYX.js.map +0 -1
  241. package/dist/chunk-YG2I377B.js.map +0 -1
  242. /package/dist/{chunk-IY7DESC3.js.map → chunk-2SNAXTUJ.js.map} +0 -0
  243. /package/dist/{chunk-5KFQBI4J.js.map → chunk-5DA6SZQJ.js.map} +0 -0
  244. /package/dist/{chunk-76XER44U.js.map → chunk-7PVVPLRL.js.map} +0 -0
  245. /package/dist/{chunk-BCPZAPWY.js.map → chunk-AE7M2I52.js.map} +0 -0
  246. /package/dist/{chunk-OJQYBWHR.js.map → chunk-ESXCQBMU.js.map} +0 -0
  247. /package/dist/{chunk-5IR3YE77.js.map → chunk-IJ33I7P5.js.map} +0 -0
  248. /package/dist/{chunk-6LPWEZ6H.js.map → chunk-MO6S2LRD.js.map} +0 -0
  249. /package/dist/{chunk-S4IEM5EG.js.map → chunk-NI7PWQ3B.js.map} +0 -0
  250. /package/dist/{chunk-GLQWEINZ.js.map → chunk-QAXXE4AD.js.map} +0 -0
  251. /package/dist/{chunk-G4FPDEUP.js.map → chunk-QQXNZIVK.js.map} +0 -0
  252. /package/dist/{chunk-A3ZUWLYX.js.map → chunk-QZ3V2BP7.js.map} +0 -0
  253. /package/dist/{chunk-SYD6BRQX.js.map → chunk-SJVLAGUL.js.map} +0 -0
  254. /package/dist/{chunk-JMEQ6FLB.js.map → chunk-U4J3BVAQ.js.map} +0 -0
  255. /package/dist/{chunk-QAWYDWDW.js.map → chunk-U4MRSZQQ.js.map} +0 -0
  256. /package/dist/{chunk-WU3D46MH.js.map → chunk-UADW6FYD.js.map} +0 -0
  257. /package/dist/{chunk-K7NY5SVR.js.map → chunk-VBARKJWL.js.map} +0 -0
  258. /package/dist/{chunk-OPNTDMHH.js.map → chunk-VLZ6PNAD.js.map} +0 -0
  259. /package/dist/{chunk-GUGHUAJU.js.map → chunk-XJDXV5VX.js.map} +0 -0
  260. /package/dist/{chunk-GPNUS3H2.js.map → chunk-XYTYIAMQ.js.map} +0 -0
@@ -36,19 +36,539 @@ module.exports = __toCommonJS(client_exports);
36
36
  var import_isomorphic_git = __toESM(require("isomorphic-git"), 1);
37
37
  var import_node = __toESM(require("isomorphic-git/http/node"), 1);
38
38
  var import_fs = __toESM(require("fs"), 1);
39
+
40
+ // package.json
41
+ var package_default = {
42
+ name: "@morphllm/morphsdk",
43
+ version: "0.2.172",
44
+ description: "TypeScript SDK and CLI for Morph Fast Apply integration",
45
+ type: "module",
46
+ main: "./dist/index.cjs",
47
+ module: "./dist/index.js",
48
+ types: "./dist/index.d.ts",
49
+ exports: {
50
+ ".": {
51
+ types: "./dist/index.d.ts",
52
+ import: "./dist/index.js",
53
+ require: "./dist/index.cjs"
54
+ },
55
+ "./logger": {
56
+ types: "./dist/logger.d.ts",
57
+ import: "./dist/logger.js",
58
+ require: "./dist/logger.cjs"
59
+ },
60
+ "./edge": {
61
+ types: "./dist/edge.d.ts",
62
+ import: "./dist/edge.js",
63
+ require: "./dist/edge.cjs"
64
+ },
65
+ "./tools/warp-grep": {
66
+ types: "./dist/tools/warp_grep/index.d.ts",
67
+ import: "./dist/tools/warp_grep/index.js",
68
+ require: "./dist/tools/warp_grep/index.cjs"
69
+ },
70
+ "./tools/warp-grep/openai": {
71
+ types: "./dist/tools/warp_grep/openai.d.ts",
72
+ import: "./dist/tools/warp_grep/openai.js",
73
+ require: "./dist/tools/warp_grep/openai.cjs"
74
+ },
75
+ "./tools/warp-grep/anthropic": {
76
+ types: "./dist/tools/warp_grep/anthropic.d.ts",
77
+ import: "./dist/tools/warp_grep/anthropic.js",
78
+ require: "./dist/tools/warp_grep/anthropic.cjs"
79
+ },
80
+ "./tools/warp-grep/vercel": {
81
+ types: "./dist/tools/warp_grep/vercel.d.ts",
82
+ import: "./dist/tools/warp_grep/vercel.js",
83
+ require: "./dist/tools/warp_grep/vercel.cjs"
84
+ },
85
+ "./tools/warp-grep/client": {
86
+ types: "./dist/tools/warp_grep/client.d.ts",
87
+ import: "./dist/tools/warp_grep/client.js",
88
+ require: "./dist/tools/warp_grep/client.cjs"
89
+ },
90
+ "./tools/warp-grep/gemini": {
91
+ types: "./dist/tools/warp_grep/gemini.d.ts",
92
+ import: "./dist/tools/warp_grep/gemini.js",
93
+ require: "./dist/tools/warp_grep/gemini.cjs"
94
+ },
95
+ "./tools/warp-grep/harness": {
96
+ types: "./dist/tools/warp_grep/harness.d.ts",
97
+ import: "./dist/tools/warp_grep/harness.js",
98
+ require: "./dist/tools/warp_grep/harness.cjs"
99
+ },
100
+ "./tools/fastapply": {
101
+ types: "./dist/tools/fastapply/index.d.ts",
102
+ import: "./dist/tools/fastapply/index.js",
103
+ require: "./dist/tools/fastapply/index.cjs"
104
+ },
105
+ "./tools/fastapply/anthropic": {
106
+ types: "./dist/tools/fastapply/anthropic.d.ts",
107
+ import: "./dist/tools/fastapply/anthropic.js",
108
+ require: "./dist/tools/fastapply/anthropic.cjs"
109
+ },
110
+ "./tools/fastapply/openai": {
111
+ types: "./dist/tools/fastapply/openai.d.ts",
112
+ import: "./dist/tools/fastapply/openai.js",
113
+ require: "./dist/tools/fastapply/openai.cjs"
114
+ },
115
+ "./tools/fastapply/vercel": {
116
+ types: "./dist/tools/fastapply/vercel.d.ts",
117
+ import: "./dist/tools/fastapply/vercel.js",
118
+ require: "./dist/tools/fastapply/vercel.cjs"
119
+ },
120
+ "./tools/codebase-search": {
121
+ types: "./dist/tools/codebase_search/index.d.ts",
122
+ import: "./dist/tools/codebase_search/index.js",
123
+ require: "./dist/tools/codebase_search/index.cjs"
124
+ },
125
+ "./tools/codebase-search/anthropic": {
126
+ types: "./dist/tools/codebase_search/anthropic.d.ts",
127
+ import: "./dist/tools/codebase_search/anthropic.js",
128
+ require: "./dist/tools/codebase_search/anthropic.cjs"
129
+ },
130
+ "./tools/codebase-search/openai": {
131
+ types: "./dist/tools/codebase_search/openai.d.ts",
132
+ import: "./dist/tools/codebase_search/openai.js",
133
+ require: "./dist/tools/codebase_search/openai.cjs"
134
+ },
135
+ "./tools/codebase-search/vercel": {
136
+ types: "./dist/tools/codebase_search/vercel.d.ts",
137
+ import: "./dist/tools/codebase_search/vercel.js",
138
+ require: "./dist/tools/codebase_search/vercel.cjs"
139
+ },
140
+ "./tools/git": {
141
+ types: "./dist/git/index.d.ts",
142
+ import: "./dist/git/index.js",
143
+ require: "./dist/git/index.cjs"
144
+ },
145
+ "./tools/browser": {
146
+ types: "./dist/tools/browser/index.d.ts",
147
+ import: "./dist/tools/browser/index.js",
148
+ require: "./dist/tools/browser/index.cjs"
149
+ },
150
+ "./tools/browser/anthropic": {
151
+ types: "./dist/tools/browser/anthropic.d.ts",
152
+ import: "./dist/tools/browser/anthropic.js",
153
+ require: "./dist/tools/browser/anthropic.cjs"
154
+ },
155
+ "./tools/browser/openai": {
156
+ types: "./dist/tools/browser/openai.d.ts",
157
+ import: "./dist/tools/browser/openai.js",
158
+ require: "./dist/tools/browser/openai.cjs"
159
+ },
160
+ "./tools/browser/vercel": {
161
+ types: "./dist/tools/browser/vercel.d.ts",
162
+ import: "./dist/tools/browser/vercel.js",
163
+ require: "./dist/tools/browser/vercel.cjs"
164
+ },
165
+ "./tools/browser/profiles": {
166
+ types: "./dist/tools/browser/profiles/index.d.ts",
167
+ import: "./dist/tools/browser/profiles/index.js",
168
+ require: "./dist/tools/browser/profiles/index.cjs"
169
+ },
170
+ "./modelrouter": {
171
+ types: "./dist/modelrouter/index.d.ts",
172
+ import: "./dist/modelrouter/index.js",
173
+ require: "./dist/modelrouter/index.cjs"
174
+ },
175
+ "./tools/compact": {
176
+ types: "./dist/tools/compact/index.d.ts",
177
+ import: "./dist/tools/compact/index.js",
178
+ require: "./dist/tools/compact/index.cjs"
179
+ },
180
+ "./tools/reflex": {
181
+ types: "./dist/tools/reflex/index.d.ts",
182
+ import: "./dist/tools/reflex/index.js",
183
+ require: "./dist/tools/reflex/index.cjs"
184
+ },
185
+ "./subagents": {
186
+ types: "./dist/subagents/index.d.ts",
187
+ import: "./dist/subagents/index.js",
188
+ require: "./dist/subagents/index.cjs"
189
+ },
190
+ "./subagents/vercel": {
191
+ types: "./dist/subagents/vercel.d.ts",
192
+ import: "./dist/subagents/vercel.js",
193
+ require: "./dist/subagents/vercel.cjs"
194
+ },
195
+ "./subagents/anthropic": {
196
+ types: "./dist/subagents/anthropic.d.ts",
197
+ import: "./dist/subagents/anthropic.js",
198
+ require: "./dist/subagents/anthropic.cjs"
199
+ }
200
+ },
201
+ files: [
202
+ "dist/**/*.js",
203
+ "dist/**/*.cjs",
204
+ "dist/**/*.d.ts",
205
+ "dist/**/*.map",
206
+ "!dist/**/__tests__/**",
207
+ "!dist/**/*.test.*"
208
+ ],
209
+ scripts: {
210
+ build: "tsup version.ts index.ts edge.ts client.ts core/index.ts core/client.ts core/resource.ts core/error.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/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/providers/code_storage_http.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/github.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/compact/index.ts tools/compact/core.ts tools/compact/types.ts tools/reflex/index.ts tools/reflex/core.ts tools/reflex/types.ts tools/utils/resilience.ts subagents/index.ts subagents/types.ts subagents/prompts.ts subagents/vercel.ts subagents/anthropic.ts --format esm,cjs --sourcemap --clean --dts --dts-resolve",
211
+ prepare: "npm run build",
212
+ typecheck: "tsc --noEmit",
213
+ lint: "eslint .",
214
+ test: "vitest run",
215
+ "test:watch": "vitest watch",
216
+ "test:anthropic": "vitest run anthropic",
217
+ "test:openai": "vitest run openai",
218
+ "test:vercel": "vitest run vercel",
219
+ "test:git": "vitest run git",
220
+ "test:browser": "vitest run browser",
221
+ "test:agent": "npx tsx tests/fullAgentTest.ts",
222
+ "test:integration": "npx tsx tests/fullIntegrationTest.ts",
223
+ "test:e2e": "vitest run --config vitest.e2e.config.ts",
224
+ "release:patch": "npm version patch && npm publish",
225
+ "release:minor": "npm version minor && npm publish",
226
+ "release:major": "npm version major && npm publish"
227
+ },
228
+ keywords: [
229
+ "morph",
230
+ "fast-apply",
231
+ "cli",
232
+ "sdk",
233
+ "edit-file"
234
+ ],
235
+ engines: {
236
+ node: ">=18"
237
+ },
238
+ license: "MIT",
239
+ dependencies: {
240
+ "@vscode/ripgrep": "^1.17.0",
241
+ ai: ">=5.0.0",
242
+ diff: "^7.0.0",
243
+ "isomorphic-git": "^1.25.10",
244
+ openai: "^4.52.7",
245
+ zod: ">=3.23.0"
246
+ },
247
+ devDependencies: {
248
+ "@ai-sdk/anthropic": "^2.0.70",
249
+ "@ai-sdk/openai": "^2.0.35",
250
+ "@anthropic-ai/sdk": "^0.30.1",
251
+ "@google/generative-ai": "^0.24.1",
252
+ "@types/diff": "^7.0.2",
253
+ "@types/node": "^20.14.10",
254
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
255
+ "@typescript-eslint/parser": "^7.18.0",
256
+ dotenv: "^16.4.5",
257
+ eslint: "^8.57.0",
258
+ shx: "^0.3.4",
259
+ tsup: "^8.5.0",
260
+ tsx: "^4.16.2",
261
+ typescript: "^5.5.4",
262
+ vitest: "^2.1.6"
263
+ },
264
+ peerDependencies: {
265
+ "@anthropic-ai/sdk": ">=0.25.0",
266
+ "@google/generative-ai": ">=0.21.0",
267
+ ai: ">=5.0.0",
268
+ zod: ">=3.23.0"
269
+ },
270
+ peerDependenciesMeta: {
271
+ "@anthropic-ai/sdk": {
272
+ optional: true
273
+ },
274
+ "@google/generative-ai": {
275
+ optional: true
276
+ },
277
+ ai: {
278
+ optional: true
279
+ },
280
+ zod: {
281
+ optional: true
282
+ }
283
+ },
284
+ publishConfig: {
285
+ access: "public"
286
+ }
287
+ };
288
+
289
+ // version.ts
290
+ var SDK_VERSION = package_default.version;
291
+
292
+ // tools/utils/resilience.ts
293
+ var DEFAULT_RETRY_CONFIG = {
294
+ maxRetries: 3,
295
+ initialDelay: 1e3,
296
+ maxDelay: 3e4,
297
+ backoffMultiplier: 2,
298
+ retryableErrors: ["ECONNREFUSED", "ETIMEDOUT", "ENOTFOUND"]
299
+ };
300
+ async function fetchWithRetry(url, options, retryConfig = {}) {
301
+ const {
302
+ maxRetries = DEFAULT_RETRY_CONFIG.maxRetries,
303
+ initialDelay = DEFAULT_RETRY_CONFIG.initialDelay,
304
+ maxDelay = DEFAULT_RETRY_CONFIG.maxDelay,
305
+ backoffMultiplier = DEFAULT_RETRY_CONFIG.backoffMultiplier,
306
+ retryableErrors = DEFAULT_RETRY_CONFIG.retryableErrors,
307
+ onRetry
308
+ } = retryConfig;
309
+ let lastError = null;
310
+ let delay = initialDelay;
311
+ options = { ...options, headers: { "X-Morph-SDK-Version": SDK_VERSION, ...options.headers } };
312
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
313
+ try {
314
+ const response = await fetch(url, options);
315
+ if (response.status === 429 || response.status === 503) {
316
+ if (attempt < maxRetries) {
317
+ const retryAfter = response.headers.get("Retry-After");
318
+ const waitTime = retryAfter ? parseInt(retryAfter) * 1e3 : Math.min(delay, maxDelay);
319
+ const error = new Error(`HTTP ${response.status}: Retrying after ${waitTime}ms`);
320
+ if (onRetry) {
321
+ onRetry(attempt + 1, error);
322
+ }
323
+ await sleep(waitTime);
324
+ delay *= backoffMultiplier;
325
+ continue;
326
+ }
327
+ }
328
+ return response;
329
+ } catch (error) {
330
+ lastError = error;
331
+ const isRetryable = retryableErrors.some(
332
+ (errType) => lastError?.message?.includes(errType)
333
+ );
334
+ if (!isRetryable || attempt === maxRetries) {
335
+ throw lastError;
336
+ }
337
+ const waitTime = Math.min(delay, maxDelay);
338
+ if (onRetry) {
339
+ onRetry(attempt + 1, lastError);
340
+ }
341
+ await sleep(waitTime);
342
+ delay *= backoffMultiplier;
343
+ }
344
+ }
345
+ throw lastError || new Error("Max retries exceeded");
346
+ }
347
+ async function withTimeout(promise, timeoutMs, errorMessage) {
348
+ let timeoutId;
349
+ const timeoutPromise = new Promise((_, reject) => {
350
+ timeoutId = setTimeout(() => {
351
+ reject(new Error(errorMessage || `Operation timed out after ${timeoutMs}ms`));
352
+ }, timeoutMs);
353
+ });
354
+ try {
355
+ const result = await Promise.race([promise, timeoutPromise]);
356
+ clearTimeout(timeoutId);
357
+ return result;
358
+ } catch (error) {
359
+ clearTimeout(timeoutId);
360
+ throw error;
361
+ }
362
+ }
363
+ function sleep(ms) {
364
+ return new Promise((resolve) => setTimeout(resolve, ms));
365
+ }
366
+ var MorphError = class extends Error {
367
+ constructor(message, code, statusCode, retryable = false) {
368
+ super(message);
369
+ this.code = code;
370
+ this.statusCode = statusCode;
371
+ this.retryable = retryable;
372
+ this.name = "MorphError";
373
+ }
374
+ };
375
+
376
+ // logger.ts
377
+ var MorphLogger = class {
378
+ enabled;
379
+ fileStream;
380
+ /** Resolves once the file stream is initialized (or immediately if no file logging). */
381
+ ready;
382
+ constructor() {
383
+ this.enabled = typeof process !== "undefined" && (process.env.MORPH_DEBUG === "1" || !!process.env.MORPH_LOG_FILE);
384
+ this.fileStream = null;
385
+ const f = typeof process !== "undefined" ? process.env.MORPH_LOG_FILE : void 0;
386
+ if (f) {
387
+ this.ready = import("fs").then((fs2) => {
388
+ this.fileStream = fs2.createWriteStream(f, { flags: "a" });
389
+ }).catch(() => {
390
+ });
391
+ } else {
392
+ this.ready = Promise.resolve();
393
+ }
394
+ }
395
+ debug(component, msg, data) {
396
+ this._log("debug", component, msg, data);
397
+ }
398
+ info(component, msg, data) {
399
+ this._log("info", component, msg, data);
400
+ }
401
+ warn(component, msg, data) {
402
+ this._log("warn", component, msg, data);
403
+ }
404
+ error(component, msg, data) {
405
+ this._log("error", component, msg, data);
406
+ }
407
+ enable() {
408
+ this.enabled = true;
409
+ }
410
+ get isEnabled() {
411
+ return this.enabled;
412
+ }
413
+ _log(level, component, msg, data) {
414
+ if (level !== "error" && !this.enabled) return;
415
+ const ts = (/* @__PURE__ */ new Date()).toISOString();
416
+ const prefix = `[${ts}] [${level.toUpperCase()}] [${component}]`;
417
+ console.error(data ? `${prefix} ${msg} ${JSON.stringify(data)}` : `${prefix} ${msg}`);
418
+ this.fileStream?.write(JSON.stringify({ ts, level, component, msg, ...data && { data } }) + "\n");
419
+ }
420
+ };
421
+ var logger = new MorphLogger();
422
+
423
+ // core/error.ts
424
+ async function toMorphError(response) {
425
+ let message = `Morph API request failed (${response.status})`;
426
+ let code = "api_error";
427
+ try {
428
+ const body = await response.json();
429
+ message = body.error?.message ?? body.message ?? message;
430
+ code = body.error?.code ?? body.error?.type ?? code;
431
+ } catch {
432
+ }
433
+ if (response.status === 401) code = "authentication_error";
434
+ if (response.status === 429) code = "rate_limit_exceeded";
435
+ const retryable = response.status === 429 || response.status === 503;
436
+ return new MorphError(message, code, response.status, retryable);
437
+ }
438
+
439
+ // core/client.ts
440
+ var DEFAULT_BASE_URL = "https://api.morphllm.com";
441
+ var DEFAULT_REPOS_URL = "https://repos.morphllm.com";
442
+ var DEFAULT_BROWSER_URL = "https://browser.morphllm.com";
443
+ var DEFAULT_TIMEOUT = 6e4;
444
+ var env = (name) => typeof process !== "undefined" ? process.env?.[name] : void 0;
445
+ var stripTrailingSlash = (url) => url.replace(/\/+$/, "");
446
+ var MorphAPIClient = class {
447
+ /** Explicit key as provided; resolved against env at request time. */
448
+ apiKey;
449
+ baseURL;
450
+ reposURL;
451
+ browserURL;
452
+ /** Explicit default timeout (ms), if set. The request default is applied lazily so
453
+ * resources can read an undefined value and supply their own fallback. */
454
+ timeout;
455
+ retryConfig;
456
+ debug;
457
+ constructor(options = {}) {
458
+ this.apiKey = options.apiKey;
459
+ this.baseURL = stripTrailingSlash(options.baseURL ?? DEFAULT_BASE_URL);
460
+ this.reposURL = stripTrailingSlash(options.reposURL ?? env("MORPH_SEARCH_URL") ?? DEFAULT_REPOS_URL);
461
+ this.browserURL = stripTrailingSlash(
462
+ options.browserURL ?? (env("MORPH_ENVIRONMENT") === "DEV" ? "http://localhost:8000" : DEFAULT_BROWSER_URL)
463
+ );
464
+ this.timeout = options.timeout;
465
+ this.retryConfig = options.retryConfig;
466
+ this.debug = options.debug ?? false;
467
+ if (this.debug) logger.enable();
468
+ }
469
+ /** The key actually used for requests: explicit, else `MORPH_API_KEY`. */
470
+ resolveApiKey() {
471
+ return this.apiKey ?? env("MORPH_API_KEY");
472
+ }
473
+ /** Headers shared with tools that bring their own HTTP client (FastApply/WarpGrep via the `openai` package). */
474
+ defaultHeaders() {
475
+ return { "X-Morph-SDK-Version": SDK_VERSION };
476
+ }
477
+ buildURL(path, baseURL) {
478
+ if (/^https?:\/\//i.test(path)) return path;
479
+ const base = stripTrailingSlash(baseURL ?? this.baseURL);
480
+ return `${base}${path.startsWith("/") ? "" : "/"}${path}`;
481
+ }
482
+ buildHeaders(apiKey, extra) {
483
+ return {
484
+ "Content-Type": "application/json",
485
+ "X-Morph-SDK-Version": SDK_VERSION,
486
+ Authorization: `Bearer ${apiKey}`,
487
+ ...extra
488
+ };
489
+ }
490
+ applyQuery(url, query) {
491
+ if (!query) return url;
492
+ const params = new URLSearchParams();
493
+ for (const [key, value] of Object.entries(query)) {
494
+ if (value !== void 0 && value !== null) params.set(key, String(value));
495
+ }
496
+ const qs = params.toString();
497
+ return qs ? `${url}${url.includes("?") ? "&" : "?"}${qs}` : url;
498
+ }
499
+ async request(method, path, opts = {}) {
500
+ const apiKey = this.resolveApiKey();
501
+ if (!apiKey) {
502
+ throw new MorphError(
503
+ "Morph API key not found. Set the MORPH_API_KEY environment variable or pass apiKey in config.",
504
+ "missing_api_key",
505
+ 401
506
+ );
507
+ }
508
+ const url = this.applyQuery(this.buildURL(path, opts.baseURL), opts.query);
509
+ const timeout = opts.timeout ?? this.timeout ?? DEFAULT_TIMEOUT;
510
+ const init = {
511
+ method,
512
+ headers: this.buildHeaders(apiKey, opts.headers),
513
+ ...opts.body !== void 0 ? { body: JSON.stringify(opts.body) } : {},
514
+ ...opts.signal ? { signal: opts.signal } : {}
515
+ };
516
+ logger.debug("MorphAPIClient", "request", { method, url });
517
+ const response = await withTimeout(
518
+ fetchWithRetry(url, init, this.retryConfig ?? {}),
519
+ timeout,
520
+ `Morph request to ${url} timed out after ${timeout}ms`
521
+ );
522
+ if (opts.raw) return response;
523
+ if (!response.ok) throw await toMorphError(response);
524
+ if (opts.stream) return response;
525
+ if (response.status === 204) return void 0;
526
+ const text = await response.text();
527
+ return text ? JSON.parse(text) : void 0;
528
+ }
529
+ get(path, opts) {
530
+ return this.request("GET", path, opts);
531
+ }
532
+ post(path, opts) {
533
+ return this.request("POST", path, opts);
534
+ }
535
+ delete(path, opts) {
536
+ return this.request("DELETE", path, opts);
537
+ }
538
+ };
539
+
540
+ // core/resource.ts
541
+ var APIResource = class {
542
+ _client;
543
+ constructor(client) {
544
+ this._client = client;
545
+ }
546
+ };
547
+
548
+ // git/client.ts
39
549
  var DEFAULT_PROXY_URL = "https://repos.morphllm.com";
40
- var MorphGit = class {
550
+ var MorphGit = class extends APIResource {
41
551
  apiKey;
42
552
  proxyUrl;
43
- constructor(config) {
44
- if (!config.apiKey) {
45
- throw new Error("API key is required. Get one at https://morphllm.com/dashboard");
46
- }
47
- if (!config.apiKey.startsWith("sk-") && !config.apiKey.startsWith("morph-")) {
48
- throw new Error("Invalid API key format. Expected: sk-... or morph-...");
553
+ constructor(clientOrConfig) {
554
+ const isClient = clientOrConfig instanceof MorphAPIClient;
555
+ if (!isClient) {
556
+ if (!clientOrConfig.apiKey) {
557
+ throw new Error("API key is required. Get one at https://morphllm.com/dashboard");
558
+ }
559
+ if (!clientOrConfig.apiKey.startsWith("sk-") && !clientOrConfig.apiKey.startsWith("morph-")) {
560
+ throw new Error("Invalid API key format. Expected: sk-... or morph-...");
561
+ }
49
562
  }
50
- this.apiKey = config.apiKey;
51
- this.proxyUrl = config.proxyUrl || DEFAULT_PROXY_URL;
563
+ super(
564
+ isClient ? clientOrConfig : new MorphAPIClient({
565
+ apiKey: clientOrConfig.apiKey,
566
+ reposURL: clientOrConfig.proxyUrl,
567
+ retryConfig: clientOrConfig.retryConfig
568
+ })
569
+ );
570
+ this.apiKey = this._client.resolveApiKey() ?? "";
571
+ this.proxyUrl = isClient ? this._client.reposURL : clientOrConfig.proxyUrl || DEFAULT_PROXY_URL;
52
572
  }
53
573
  /**
54
574
  * Get auth callback for isomorphic-git operations