@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
@@ -40,7 +40,7 @@ module.exports = __toCommonJS(modelrouter_exports);
40
40
  // package.json
41
41
  var package_default = {
42
42
  name: "@morphllm/morphsdk",
43
- version: "0.2.170",
43
+ version: "0.2.172",
44
44
  description: "TypeScript SDK and CLI for Morph Fast Apply integration",
45
45
  type: "module",
46
46
  main: "./dist/index.cjs",
@@ -177,6 +177,11 @@ var package_default = {
177
177
  import: "./dist/tools/compact/index.js",
178
178
  require: "./dist/tools/compact/index.cjs"
179
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
+ },
180
185
  "./subagents": {
181
186
  types: "./dist/subagents/index.d.ts",
182
187
  import: "./dist/subagents/index.js",
@@ -202,7 +207,7 @@ var package_default = {
202
207
  "!dist/**/*.test.*"
203
208
  ],
204
209
  scripts: {
205
- 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/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/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",
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",
206
211
  prepare: "npm run build",
207
212
  typecheck: "tsc --noEmit",
208
213
  lint: "eslint .",
@@ -358,6 +363,15 @@ async function withTimeout(promise, timeoutMs, errorMessage) {
358
363
  function sleep(ms) {
359
364
  return new Promise((resolve) => setTimeout(resolve, ms));
360
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
+ };
361
375
 
362
376
  // logger.ts
363
377
  var MorphLogger = class {
@@ -406,86 +420,193 @@ var MorphLogger = class {
406
420
  };
407
421
  var logger = new MorphLogger();
408
422
 
409
- // modelrouter/core.ts
410
- var DEFAULT_CONFIG = {
411
- apiUrl: "https://api.morphllm.com",
412
- timeout: 5e3,
413
- // 5 seconds (responses typically <500ms)
414
- debug: false
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
+ }
415
538
  };
416
- var BaseRouter = class {
417
- config;
539
+
540
+ // core/resource.ts
541
+ var APIResource = class {
542
+ _client;
543
+ constructor(client) {
544
+ this._client = client;
545
+ }
546
+ };
547
+
548
+ // modelrouter/core.ts
549
+ var DEFAULT_API_URL = "https://api.morphllm.com";
550
+ var DEFAULT_TIMEOUT2 = 5e3;
551
+ function resolveClient(clientOrConfig) {
552
+ if (clientOrConfig instanceof MorphAPIClient) return clientOrConfig;
553
+ return new MorphAPIClient({
554
+ apiKey: clientOrConfig.apiKey,
555
+ baseURL: clientOrConfig.apiUrl ?? DEFAULT_API_URL,
556
+ timeout: clientOrConfig.timeout ?? DEFAULT_TIMEOUT2,
557
+ retryConfig: clientOrConfig.retryConfig,
558
+ debug: clientOrConfig.debug
559
+ });
560
+ }
561
+ var BaseRouter = class extends APIResource {
418
562
  provider;
419
- constructor(provider, config = {}) {
563
+ timeout;
564
+ constructor(provider, clientOrConfig = {}) {
565
+ super(resolveClient(clientOrConfig));
420
566
  this.provider = provider;
421
- this.config = {
422
- apiKey: config.apiKey,
423
- apiUrl: config.apiUrl || DEFAULT_CONFIG.apiUrl,
424
- timeout: config.timeout || DEFAULT_CONFIG.timeout,
425
- debug: config.debug || DEFAULT_CONFIG.debug,
426
- retryConfig: config.retryConfig
427
- };
567
+ const cfg = clientOrConfig instanceof MorphAPIClient ? {} : clientOrConfig;
568
+ this.timeout = cfg.timeout ?? DEFAULT_TIMEOUT2;
428
569
  }
429
- /**
430
- * Select the optimal model for a given input and mode
431
- */
432
- async selectModel(input) {
433
- const mode = input.mode || "balanced";
434
- const apiKey = this.config.apiKey || (typeof process !== "undefined" ? process.env?.MORPH_API_KEY : void 0);
435
- if (!apiKey) {
570
+ /** Throw the historical "API key is required" message when no key is resolvable. */
571
+ requireApiKey() {
572
+ if (!this._client.resolveApiKey()) {
436
573
  throw new Error(
437
574
  "Morph API key is required. Set MORPH_API_KEY environment variable or pass apiKey in config."
438
575
  );
439
576
  }
440
- const url = `${this.config.apiUrl}/v1/router/${this.provider}`;
441
- const payload = {
442
- input: input.input,
443
- mode
444
- };
445
- logger.debug("ModelRouter", "request", { provider: this.provider, mode, input_len: input.input.length, url });
577
+ }
578
+ /** POST to the router and surface failures as `Router API error (<status>): ...`. */
579
+ async route(provider, input) {
446
580
  try {
447
- const fetchPromise = fetchWithRetry(
448
- url,
449
- {
450
- method: "POST",
451
- headers: {
452
- "Content-Type": "application/json",
453
- Authorization: `Bearer ${apiKey}`
454
- },
455
- body: JSON.stringify(payload)
456
- },
457
- this.config.retryConfig
458
- );
459
- const response = await withTimeout(
460
- fetchPromise,
461
- this.config.timeout,
462
- `Router API request timed out after ${this.config.timeout}ms`
463
- );
464
- if (!response.ok) {
465
- const errorText = await response.text();
466
- throw new Error(
467
- `Router API error (${response.status}): ${errorText || response.statusText}`
468
- );
469
- }
470
- const apiResult = await response.json();
471
- const result = {
472
- model: apiResult.model
473
- };
474
- logger.debug("ModelRouter", "selected", { provider: this.provider, model: apiResult.model, confidence: apiResult.confidence });
475
- return result;
581
+ return await this._client.post(`/v1/router/${provider}`, {
582
+ body: { input: input.input, mode: input.mode || "balanced" },
583
+ timeout: this.timeout
584
+ });
476
585
  } catch (error) {
477
- logger.error("ModelRouter", "error", { provider: this.provider, error: error instanceof Error ? error.message : String(error) });
586
+ if (error instanceof MorphError) {
587
+ throw new Error(`Router API error (${error.statusCode}): ${error.message}`);
588
+ }
478
589
  throw error;
479
590
  }
480
591
  }
592
+ /**
593
+ * Select the optimal model for a given input and mode
594
+ */
595
+ async selectModel(input) {
596
+ this.requireApiKey();
597
+ logger.debug("ModelRouter", "request", { provider: this.provider, mode: input.mode || "balanced" });
598
+ const apiResult = await this.route(this.provider, input);
599
+ logger.debug("ModelRouter", "selected", { provider: this.provider, model: apiResult.model });
600
+ return { model: apiResult.model };
601
+ }
481
602
  };
482
603
  var OpenAIRouter = class extends BaseRouter {
483
- constructor(config = {}) {
484
- super("openai", config);
604
+ constructor(clientOrConfig = {}) {
605
+ super("openai", clientOrConfig);
485
606
  }
486
607
  /**
487
608
  * Select optimal GPT-5 model
488
- *
609
+ *
489
610
  * @param input - User input and mode
490
611
  * @returns Selected model name (gpt-5-mini | gpt-5-low | gpt-5-medium | gpt-5-high)
491
612
  */
@@ -494,12 +615,12 @@ var OpenAIRouter = class extends BaseRouter {
494
615
  }
495
616
  };
496
617
  var AnthropicRouter = class extends BaseRouter {
497
- constructor(config = {}) {
498
- super("anthropic", config);
618
+ constructor(clientOrConfig = {}) {
619
+ super("anthropic", clientOrConfig);
499
620
  }
500
621
  /**
501
622
  * Select optimal Claude model
502
- *
623
+ *
503
624
  * @param input - User input and mode
504
625
  * @returns Selected model name (claude-4.5-haiku | claude-4.5-sonnet)
505
626
  */
@@ -508,12 +629,12 @@ var AnthropicRouter = class extends BaseRouter {
508
629
  }
509
630
  };
510
631
  var GeminiRouter = class extends BaseRouter {
511
- constructor(config = {}) {
512
- super("gemini", config);
632
+ constructor(clientOrConfig = {}) {
633
+ super("gemini", clientOrConfig);
513
634
  }
514
635
  /**
515
636
  * Select optimal Gemini model
516
- *
637
+ *
517
638
  * @param input - User input and mode
518
639
  * @returns Selected model name (gemini-2.5-flash | gemini-2.5-pro)
519
640
  */
@@ -522,69 +643,27 @@ var GeminiRouter = class extends BaseRouter {
522
643
  }
523
644
  };
524
645
  var RawRouter = class extends BaseRouter {
525
- constructor(config = {}) {
526
- super("raw", config);
646
+ constructor(clientOrConfig = {}) {
647
+ super("raw", clientOrConfig);
527
648
  }
528
649
  /**
529
650
  * Get raw difficulty classification
530
- *
651
+ *
531
652
  * @param input - User input and mode
532
653
  * @returns Raw difficulty (easy | medium | hard | needs_info)
533
654
  */
534
655
  async classify(input) {
535
- const mode = input.mode || "balanced";
536
- const apiKey = this.config.apiKey || (typeof process !== "undefined" ? process.env?.MORPH_API_KEY : void 0);
537
- if (!apiKey) {
538
- throw new Error(
539
- "Morph API key is required. Set MORPH_API_KEY environment variable or pass apiKey in config."
540
- );
541
- }
542
- const url = `${this.config.apiUrl}/v1/router/raw`;
543
- const payload = {
544
- input: input.input,
545
- mode
546
- };
547
- logger.debug("RawRouter", "request", { mode, input_len: input.input.length, url });
548
- try {
549
- const fetchPromise = fetchWithRetry(
550
- url,
551
- {
552
- method: "POST",
553
- headers: {
554
- "Content-Type": "application/json",
555
- Authorization: `Bearer ${apiKey}`
556
- },
557
- body: JSON.stringify(payload)
558
- },
559
- this.config.retryConfig
560
- );
561
- const response = await withTimeout(
562
- fetchPromise,
563
- this.config.timeout,
564
- `Router API request timed out after ${this.config.timeout}ms`
565
- );
566
- if (!response.ok) {
567
- const errorText = await response.text();
568
- throw new Error(
569
- `Router API error (${response.status}): ${errorText || response.statusText}`
570
- );
571
- }
572
- const apiResult = await response.json();
573
- let difficulty;
574
- if (apiResult.difficulty === "") {
575
- difficulty = "medium";
576
- } else {
577
- difficulty = apiResult.difficulty || apiResult.model;
578
- }
579
- const result = {
580
- difficulty
581
- };
582
- logger.debug("RawRouter", "classified", { difficulty });
583
- return result;
584
- } catch (error) {
585
- logger.error("RawRouter", "error", { error: error instanceof Error ? error.message : String(error) });
586
- throw error;
656
+ this.requireApiKey();
657
+ logger.debug("RawRouter", "request", { mode: input.mode || "balanced" });
658
+ const apiResult = await this.route("raw", input);
659
+ let difficulty;
660
+ if (apiResult.difficulty === "") {
661
+ difficulty = "medium";
662
+ } else {
663
+ difficulty = apiResult.difficulty || apiResult.model;
587
664
  }
665
+ logger.debug("RawRouter", "classified", { difficulty });
666
+ return { difficulty };
588
667
  }
589
668
  };
590
669
  // Annotate the CommonJS export names for ESM import in node: