@morphllm/morphsdk 0.2.171 → 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.
- package/dist/{chunk-3XRNC56L.js → chunk-2SNAXTUJ.js} +4 -4
- package/dist/chunk-453ZV2AX.js +120 -0
- package/dist/chunk-453ZV2AX.js.map +1 -0
- package/dist/chunk-53ZJMCWU.js +142 -0
- package/dist/chunk-53ZJMCWU.js.map +1 -0
- package/dist/{chunk-IW4TYYG6.js → chunk-5DA6SZQJ.js} +2 -2
- package/dist/chunk-66OHYI24.js +78 -0
- package/dist/chunk-66OHYI24.js.map +1 -0
- package/dist/chunk-6X6QMRQG.js +158 -0
- package/dist/chunk-6X6QMRQG.js.map +1 -0
- package/dist/{chunk-C37YAYBK.js → chunk-7PVVPLRL.js} +2 -2
- package/dist/{chunk-MZZMSL26.js → chunk-AE7M2I52.js} +2 -2
- package/dist/{chunk-JLLIVBKY.js → chunk-CQF76HJC.js} +30 -6
- package/dist/chunk-CQF76HJC.js.map +1 -0
- package/dist/{chunk-EFCDIESP.js → chunk-ESXCQBMU.js} +2 -2
- package/dist/{chunk-FQJCE2FX.js → chunk-FOIDGIY4.js} +29 -10
- package/dist/chunk-FOIDGIY4.js.map +1 -0
- package/dist/{chunk-JEDEBCZM.js → chunk-GJZXDRH5.js} +8 -3
- package/dist/{chunk-JEDEBCZM.js.map → chunk-GJZXDRH5.js.map} +1 -1
- package/dist/{chunk-2ALTBYMY.js → chunk-IJ33I7P5.js} +4 -4
- package/dist/{chunk-UK7TI7QY.js → chunk-IN2U7AAI.js} +99 -143
- package/dist/chunk-IN2U7AAI.js.map +1 -0
- package/dist/{chunk-LE66XCOI.js → chunk-JWZ5DLAS.js} +27 -10
- package/dist/chunk-JWZ5DLAS.js.map +1 -0
- package/dist/chunk-LKFZBBTD.js +12 -0
- package/dist/chunk-LKFZBBTD.js.map +1 -0
- package/dist/{chunk-TAS6S42A.js → chunk-MO6S2LRD.js} +2 -2
- package/dist/{chunk-2OAKX4SZ.js → chunk-NI7PWQ3B.js} +4 -4
- package/dist/{chunk-GLQWEINZ.js → chunk-QAXXE4AD.js} +2 -2
- package/dist/{chunk-3BCKZKNK.js → chunk-QFE5523Q.js} +2 -2
- package/dist/{chunk-LL3EWDKD.js → chunk-QQXNZIVK.js} +4 -4
- package/dist/{chunk-IGQYZ2KH.js → chunk-QZ3V2BP7.js} +2 -2
- package/dist/chunk-QZR7SJ5N.js +24 -0
- package/dist/chunk-QZR7SJ5N.js.map +1 -0
- package/dist/{chunk-SW527EQT.js → chunk-SJVLAGUL.js} +4 -4
- package/dist/{chunk-CMFY26F3.js → chunk-U4J3BVAQ.js} +4 -4
- package/dist/{chunk-5EUMJI3I.js → chunk-U4MRSZQQ.js} +2 -2
- package/dist/{chunk-ZJQTTOHO.js → chunk-UADW6FYD.js} +2 -2
- package/dist/{chunk-4324ZSCW.js → chunk-VBARKJWL.js} +2 -2
- package/dist/{chunk-OPNTDMHH.js → chunk-VLZ6PNAD.js} +4 -4
- package/dist/chunk-VZ7BOH2K.js +1 -0
- package/dist/chunk-VZ7BOH2K.js.map +1 -0
- package/dist/{chunk-Y6T4NA75.js → chunk-XJDXV5VX.js} +2 -2
- package/dist/{chunk-JTUB5ZCT.js → chunk-XYTYIAMQ.js} +2 -2
- package/dist/{chunk-4MTZUTNH.js → chunk-Z4GJVN52.js} +23 -8
- package/dist/chunk-Z4GJVN52.js.map +1 -0
- package/dist/chunk-ZLSNL6M2.js +97 -0
- package/dist/chunk-ZLSNL6M2.js.map +1 -0
- package/dist/{client-DsAAqupx.d.ts → client-Dh6yzCm4.d.ts} +14 -5
- package/dist/client.cjs +724 -523
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.ts +5 -1
- package/dist/client.js +31 -27
- package/dist/core/client.cjs +540 -0
- package/dist/core/client.cjs.map +1 -0
- package/dist/core/client.d.ts +79 -0
- package/dist/core/client.js +12 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/error.cjs +309 -0
- package/dist/core/error.cjs.map +1 -0
- package/dist/core/error.d.ts +18 -0
- package/dist/core/error.js +10 -0
- package/dist/core/error.js.map +1 -0
- package/dist/core/index.cjs +552 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.js +20 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/resource.cjs +36 -0
- package/dist/core/resource.cjs.map +1 -0
- package/dist/core/resource.d.ts +18 -0
- package/dist/core/resource.js +8 -0
- package/dist/core/resource.js.map +1 -0
- package/dist/edge.cjs +236 -173
- package/dist/edge.cjs.map +1 -1
- package/dist/edge.d.ts +2 -0
- package/dist/edge.js +8 -5
- package/dist/git/client.cjs +529 -9
- package/dist/git/client.cjs.map +1 -1
- package/dist/git/client.d.ts +8 -2
- package/dist/git/client.js +7 -1
- package/dist/git/index.cjs +529 -9
- package/dist/git/index.cjs.map +1 -1
- package/dist/git/index.d.ts +2 -0
- package/dist/git/index.js +7 -1
- package/dist/index.cjs +672 -465
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +49 -33
- package/dist/modelrouter/core.cjs +204 -125
- package/dist/modelrouter/core.cjs.map +1 -1
- package/dist/modelrouter/core.d.ts +36 -9
- package/dist/modelrouter/core.js +6 -3
- package/dist/modelrouter/index.cjs +204 -125
- package/dist/modelrouter/index.cjs.map +1 -1
- package/dist/modelrouter/index.d.ts +3 -0
- package/dist/modelrouter/index.js +6 -3
- package/dist/subagents/anthropic.cjs +268 -52
- package/dist/subagents/anthropic.cjs.map +1 -1
- package/dist/subagents/anthropic.js +10 -6
- package/dist/subagents/vercel.cjs +268 -52
- package/dist/subagents/vercel.cjs.map +1 -1
- package/dist/subagents/vercel.js +10 -6
- package/dist/tools/browser/anthropic.cjs +7 -2
- package/dist/tools/browser/anthropic.cjs.map +1 -1
- package/dist/tools/browser/anthropic.js +9 -6
- package/dist/tools/browser/core.cjs +162 -10
- package/dist/tools/browser/core.cjs.map +1 -1
- package/dist/tools/browser/core.d.ts +8 -2
- package/dist/tools/browser/core.js +8 -5
- package/dist/tools/browser/index.cjs +163 -11
- package/dist/tools/browser/index.cjs.map +1 -1
- package/dist/tools/browser/index.d.ts +2 -0
- package/dist/tools/browser/index.js +18 -15
- package/dist/tools/browser/index.js.map +1 -1
- package/dist/tools/browser/openai.cjs +7 -2
- package/dist/tools/browser/openai.cjs.map +1 -1
- package/dist/tools/browser/openai.js +9 -6
- package/dist/tools/browser/profiles/core.cjs +7 -2
- package/dist/tools/browser/profiles/core.cjs.map +1 -1
- package/dist/tools/browser/profiles/core.js +3 -3
- package/dist/tools/browser/profiles/index.cjs +7 -2
- package/dist/tools/browser/profiles/index.cjs.map +1 -1
- package/dist/tools/browser/profiles/index.js +3 -3
- package/dist/tools/browser/vercel.cjs +7 -2
- package/dist/tools/browser/vercel.cjs.map +1 -1
- package/dist/tools/browser/vercel.js +9 -6
- package/dist/tools/codebase_search/anthropic.cjs +162 -41
- package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
- package/dist/tools/codebase_search/anthropic.js +7 -4
- package/dist/tools/codebase_search/core.cjs +195 -66
- package/dist/tools/codebase_search/core.cjs.map +1 -1
- package/dist/tools/codebase_search/core.d.ts +18 -7
- package/dist/tools/codebase_search/core.js +6 -3
- package/dist/tools/codebase_search/index.cjs +162 -41
- package/dist/tools/codebase_search/index.cjs.map +1 -1
- package/dist/tools/codebase_search/index.d.ts +2 -0
- package/dist/tools/codebase_search/index.js +13 -10
- package/dist/tools/codebase_search/openai.cjs +162 -41
- package/dist/tools/codebase_search/openai.cjs.map +1 -1
- package/dist/tools/codebase_search/openai.js +7 -4
- package/dist/tools/codebase_search/vercel.cjs +162 -41
- package/dist/tools/codebase_search/vercel.cjs.map +1 -1
- package/dist/tools/codebase_search/vercel.js +7 -4
- package/dist/tools/compact/core.cjs +551 -47
- package/dist/tools/compact/core.cjs.map +1 -1
- package/dist/tools/compact/core.d.ts +16 -3
- package/dist/tools/compact/core.js +7 -1
- package/dist/tools/compact/index.cjs +549 -47
- package/dist/tools/compact/index.cjs.map +1 -1
- package/dist/tools/compact/index.d.ts +2 -0
- package/dist/tools/compact/index.js +8 -2
- package/dist/tools/fastapply/anthropic.cjs +16 -2
- package/dist/tools/fastapply/anthropic.cjs.map +1 -1
- package/dist/tools/fastapply/anthropic.js +8 -4
- package/dist/tools/fastapply/apply.cjs +7 -2
- package/dist/tools/fastapply/apply.cjs.map +1 -1
- package/dist/tools/fastapply/apply.js +2 -2
- package/dist/tools/fastapply/core.cjs +242 -12
- package/dist/tools/fastapply/core.cjs.map +1 -1
- package/dist/tools/fastapply/core.d.ts +8 -2
- package/dist/tools/fastapply/core.js +7 -3
- package/dist/tools/fastapply/index.cjs +16 -2
- package/dist/tools/fastapply/index.cjs.map +1 -1
- package/dist/tools/fastapply/index.d.ts +2 -0
- package/dist/tools/fastapply/index.js +13 -9
- package/dist/tools/fastapply/openai.cjs +16 -2
- package/dist/tools/fastapply/openai.cjs.map +1 -1
- package/dist/tools/fastapply/openai.js +8 -4
- package/dist/tools/fastapply/vercel.cjs +16 -2
- package/dist/tools/fastapply/vercel.cjs.map +1 -1
- package/dist/tools/fastapply/vercel.js +8 -4
- package/dist/tools/index.cjs +16 -2
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.js +13 -9
- package/dist/tools/reflex/core.cjs +693 -0
- package/dist/tools/reflex/core.cjs.map +1 -0
- package/dist/tools/reflex/core.d.ts +53 -0
- package/dist/tools/reflex/core.js +16 -0
- package/dist/tools/reflex/core.js.map +1 -0
- package/dist/tools/reflex/index.cjs +693 -0
- package/dist/tools/reflex/index.cjs.map +1 -0
- package/dist/tools/reflex/index.d.ts +5 -0
- package/dist/tools/reflex/index.js +16 -0
- package/dist/tools/reflex/index.js.map +1 -0
- package/dist/tools/reflex/types.cjs +19 -0
- package/dist/tools/reflex/types.cjs.map +1 -0
- package/dist/tools/reflex/types.d.ts +113 -0
- package/dist/tools/reflex/types.js +1 -0
- package/dist/tools/reflex/types.js.map +1 -0
- package/dist/tools/utils/resilience.cjs +7 -2
- package/dist/tools/utils/resilience.cjs.map +1 -1
- package/dist/tools/utils/resilience.js +2 -2
- package/dist/tools/warp_grep/agent/runner.cjs +7 -2
- package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
- package/dist/tools/warp_grep/agent/runner.js +2 -2
- package/dist/tools/warp_grep/anthropic.cjs +268 -52
- package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
- package/dist/tools/warp_grep/anthropic.d.ts +2 -0
- package/dist/tools/warp_grep/anthropic.js +10 -6
- package/dist/tools/warp_grep/client.cjs +268 -52
- package/dist/tools/warp_grep/client.cjs.map +1 -1
- package/dist/tools/warp_grep/client.d.ts +8 -2
- package/dist/tools/warp_grep/client.js +9 -5
- package/dist/tools/warp_grep/gemini.cjs +268 -52
- package/dist/tools/warp_grep/gemini.cjs.map +1 -1
- package/dist/tools/warp_grep/gemini.d.ts +2 -0
- package/dist/tools/warp_grep/gemini.js +9 -5
- package/dist/tools/warp_grep/gemini.js.map +1 -1
- package/dist/tools/warp_grep/harness.js +5 -5
- package/dist/tools/warp_grep/index.cjs +268 -52
- package/dist/tools/warp_grep/index.cjs.map +1 -1
- package/dist/tools/warp_grep/index.d.ts +2 -0
- package/dist/tools/warp_grep/index.js +12 -8
- package/dist/tools/warp_grep/openai.cjs +268 -52
- package/dist/tools/warp_grep/openai.cjs.map +1 -1
- package/dist/tools/warp_grep/openai.d.ts +2 -0
- package/dist/tools/warp_grep/openai.js +10 -6
- package/dist/tools/warp_grep/providers/local.js +2 -2
- package/dist/tools/warp_grep/vercel.cjs +268 -52
- package/dist/tools/warp_grep/vercel.cjs.map +1 -1
- package/dist/tools/warp_grep/vercel.d.ts +2 -0
- package/dist/tools/warp_grep/vercel.js +10 -6
- package/dist/version.cjs +7 -2
- package/dist/version.cjs.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -2
- package/dist/chunk-4MTZUTNH.js.map +0 -1
- package/dist/chunk-FQJCE2FX.js.map +0 -1
- package/dist/chunk-H5WNI6R5.js +0 -102
- package/dist/chunk-H5WNI6R5.js.map +0 -1
- package/dist/chunk-JLLIVBKY.js.map +0 -1
- package/dist/chunk-KCFMXLZ7.js +0 -197
- package/dist/chunk-KCFMXLZ7.js.map +0 -1
- package/dist/chunk-LE66XCOI.js.map +0 -1
- package/dist/chunk-SCVWDNQP.js +0 -84
- package/dist/chunk-SCVWDNQP.js.map +0 -1
- package/dist/chunk-UK7TI7QY.js.map +0 -1
- /package/dist/{chunk-3XRNC56L.js.map → chunk-2SNAXTUJ.js.map} +0 -0
- /package/dist/{chunk-IW4TYYG6.js.map → chunk-5DA6SZQJ.js.map} +0 -0
- /package/dist/{chunk-C37YAYBK.js.map → chunk-7PVVPLRL.js.map} +0 -0
- /package/dist/{chunk-MZZMSL26.js.map → chunk-AE7M2I52.js.map} +0 -0
- /package/dist/{chunk-EFCDIESP.js.map → chunk-ESXCQBMU.js.map} +0 -0
- /package/dist/{chunk-2ALTBYMY.js.map → chunk-IJ33I7P5.js.map} +0 -0
- /package/dist/{chunk-TAS6S42A.js.map → chunk-MO6S2LRD.js.map} +0 -0
- /package/dist/{chunk-2OAKX4SZ.js.map → chunk-NI7PWQ3B.js.map} +0 -0
- /package/dist/{chunk-GLQWEINZ.js.map → chunk-QAXXE4AD.js.map} +0 -0
- /package/dist/{chunk-3BCKZKNK.js.map → chunk-QFE5523Q.js.map} +0 -0
- /package/dist/{chunk-LL3EWDKD.js.map → chunk-QQXNZIVK.js.map} +0 -0
- /package/dist/{chunk-IGQYZ2KH.js.map → chunk-QZ3V2BP7.js.map} +0 -0
- /package/dist/{chunk-SW527EQT.js.map → chunk-SJVLAGUL.js.map} +0 -0
- /package/dist/{chunk-CMFY26F3.js.map → chunk-U4J3BVAQ.js.map} +0 -0
- /package/dist/{chunk-5EUMJI3I.js.map → chunk-U4MRSZQQ.js.map} +0 -0
- /package/dist/{chunk-ZJQTTOHO.js.map → chunk-UADW6FYD.js.map} +0 -0
- /package/dist/{chunk-4324ZSCW.js.map → chunk-VBARKJWL.js.map} +0 -0
- /package/dist/{chunk-OPNTDMHH.js.map → chunk-VLZ6PNAD.js.map} +0 -0
- /package/dist/{chunk-Y6T4NA75.js.map → chunk-XJDXV5VX.js.map} +0 -0
- /package/dist/{chunk-JTUB5ZCT.js.map → chunk-XYTYIAMQ.js.map} +0 -0
|
@@ -44,7 +44,7 @@ module.exports = __toCommonJS(core_exports);
|
|
|
44
44
|
// package.json
|
|
45
45
|
var package_default = {
|
|
46
46
|
name: "@morphllm/morphsdk",
|
|
47
|
-
version: "0.2.
|
|
47
|
+
version: "0.2.172",
|
|
48
48
|
description: "TypeScript SDK and CLI for Morph Fast Apply integration",
|
|
49
49
|
type: "module",
|
|
50
50
|
main: "./dist/index.cjs",
|
|
@@ -181,6 +181,11 @@ var package_default = {
|
|
|
181
181
|
import: "./dist/tools/compact/index.js",
|
|
182
182
|
require: "./dist/tools/compact/index.cjs"
|
|
183
183
|
},
|
|
184
|
+
"./tools/reflex": {
|
|
185
|
+
types: "./dist/tools/reflex/index.d.ts",
|
|
186
|
+
import: "./dist/tools/reflex/index.js",
|
|
187
|
+
require: "./dist/tools/reflex/index.cjs"
|
|
188
|
+
},
|
|
184
189
|
"./subagents": {
|
|
185
190
|
types: "./dist/subagents/index.d.ts",
|
|
186
191
|
import: "./dist/subagents/index.js",
|
|
@@ -206,7 +211,7 @@ var package_default = {
|
|
|
206
211
|
"!dist/**/*.test.*"
|
|
207
212
|
],
|
|
208
213
|
scripts: {
|
|
209
|
-
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",
|
|
214
|
+
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",
|
|
210
215
|
prepare: "npm run build",
|
|
211
216
|
typecheck: "tsc --noEmit",
|
|
212
217
|
lint: "eslint .",
|
|
@@ -362,6 +367,15 @@ async function withTimeout(promise, timeoutMs, errorMessage) {
|
|
|
362
367
|
function sleep(ms) {
|
|
363
368
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
364
369
|
}
|
|
370
|
+
var MorphError = class extends Error {
|
|
371
|
+
constructor(message, code, statusCode, retryable = false) {
|
|
372
|
+
super(message);
|
|
373
|
+
this.code = code;
|
|
374
|
+
this.statusCode = statusCode;
|
|
375
|
+
this.retryable = retryable;
|
|
376
|
+
this.name = "MorphError";
|
|
377
|
+
}
|
|
378
|
+
};
|
|
365
379
|
|
|
366
380
|
// logger.ts
|
|
367
381
|
var MorphLogger = class {
|
|
@@ -509,7 +523,7 @@ function resolvePreset(optionsOrPreset) {
|
|
|
509
523
|
}
|
|
510
524
|
|
|
511
525
|
// tools/browser/errors.ts
|
|
512
|
-
var
|
|
526
|
+
var MorphError2 = class extends Error {
|
|
513
527
|
/** Error code for programmatic handling */
|
|
514
528
|
code;
|
|
515
529
|
/** Original cause of the error, if any */
|
|
@@ -535,7 +549,7 @@ var MorphError = class extends Error {
|
|
|
535
549
|
};
|
|
536
550
|
}
|
|
537
551
|
};
|
|
538
|
-
var MorphValidationError = class extends
|
|
552
|
+
var MorphValidationError = class extends MorphError2 {
|
|
539
553
|
/** The field that failed validation */
|
|
540
554
|
field;
|
|
541
555
|
constructor(message, field) {
|
|
@@ -550,7 +564,7 @@ var MorphValidationError = class extends MorphError {
|
|
|
550
564
|
};
|
|
551
565
|
}
|
|
552
566
|
};
|
|
553
|
-
var MorphAPIError = class extends
|
|
567
|
+
var MorphAPIError = class extends MorphError2 {
|
|
554
568
|
/** HTTP status code */
|
|
555
569
|
statusCode;
|
|
556
570
|
/** Request ID for debugging (if available) */
|
|
@@ -1072,6 +1086,131 @@ function buildProfileSetup(profile, session, config) {
|
|
|
1072
1086
|
};
|
|
1073
1087
|
}
|
|
1074
1088
|
|
|
1089
|
+
// core/error.ts
|
|
1090
|
+
async function toMorphError(response) {
|
|
1091
|
+
let message = `Morph API request failed (${response.status})`;
|
|
1092
|
+
let code = "api_error";
|
|
1093
|
+
try {
|
|
1094
|
+
const body = await response.json();
|
|
1095
|
+
message = body.error?.message ?? body.message ?? message;
|
|
1096
|
+
code = body.error?.code ?? body.error?.type ?? code;
|
|
1097
|
+
} catch {
|
|
1098
|
+
}
|
|
1099
|
+
if (response.status === 401) code = "authentication_error";
|
|
1100
|
+
if (response.status === 429) code = "rate_limit_exceeded";
|
|
1101
|
+
const retryable = response.status === 429 || response.status === 503;
|
|
1102
|
+
return new MorphError(message, code, response.status, retryable);
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
// core/client.ts
|
|
1106
|
+
var DEFAULT_BASE_URL = "https://api.morphllm.com";
|
|
1107
|
+
var DEFAULT_REPOS_URL = "https://repos.morphllm.com";
|
|
1108
|
+
var DEFAULT_BROWSER_URL = "https://browser.morphllm.com";
|
|
1109
|
+
var DEFAULT_TIMEOUT = 6e4;
|
|
1110
|
+
var env = (name) => typeof process !== "undefined" ? process.env?.[name] : void 0;
|
|
1111
|
+
var stripTrailingSlash = (url) => url.replace(/\/+$/, "");
|
|
1112
|
+
var MorphAPIClient = class {
|
|
1113
|
+
/** Explicit key as provided; resolved against env at request time. */
|
|
1114
|
+
apiKey;
|
|
1115
|
+
baseURL;
|
|
1116
|
+
reposURL;
|
|
1117
|
+
browserURL;
|
|
1118
|
+
/** Explicit default timeout (ms), if set. The request default is applied lazily so
|
|
1119
|
+
* resources can read an undefined value and supply their own fallback. */
|
|
1120
|
+
timeout;
|
|
1121
|
+
retryConfig;
|
|
1122
|
+
debug;
|
|
1123
|
+
constructor(options = {}) {
|
|
1124
|
+
this.apiKey = options.apiKey;
|
|
1125
|
+
this.baseURL = stripTrailingSlash(options.baseURL ?? DEFAULT_BASE_URL);
|
|
1126
|
+
this.reposURL = stripTrailingSlash(options.reposURL ?? env("MORPH_SEARCH_URL") ?? DEFAULT_REPOS_URL);
|
|
1127
|
+
this.browserURL = stripTrailingSlash(
|
|
1128
|
+
options.browserURL ?? (env("MORPH_ENVIRONMENT") === "DEV" ? "http://localhost:8000" : DEFAULT_BROWSER_URL)
|
|
1129
|
+
);
|
|
1130
|
+
this.timeout = options.timeout;
|
|
1131
|
+
this.retryConfig = options.retryConfig;
|
|
1132
|
+
this.debug = options.debug ?? false;
|
|
1133
|
+
if (this.debug) logger.enable();
|
|
1134
|
+
}
|
|
1135
|
+
/** The key actually used for requests: explicit, else `MORPH_API_KEY`. */
|
|
1136
|
+
resolveApiKey() {
|
|
1137
|
+
return this.apiKey ?? env("MORPH_API_KEY");
|
|
1138
|
+
}
|
|
1139
|
+
/** Headers shared with tools that bring their own HTTP client (FastApply/WarpGrep via the `openai` package). */
|
|
1140
|
+
defaultHeaders() {
|
|
1141
|
+
return { "X-Morph-SDK-Version": SDK_VERSION };
|
|
1142
|
+
}
|
|
1143
|
+
buildURL(path, baseURL) {
|
|
1144
|
+
if (/^https?:\/\//i.test(path)) return path;
|
|
1145
|
+
const base = stripTrailingSlash(baseURL ?? this.baseURL);
|
|
1146
|
+
return `${base}${path.startsWith("/") ? "" : "/"}${path}`;
|
|
1147
|
+
}
|
|
1148
|
+
buildHeaders(apiKey, extra) {
|
|
1149
|
+
return {
|
|
1150
|
+
"Content-Type": "application/json",
|
|
1151
|
+
"X-Morph-SDK-Version": SDK_VERSION,
|
|
1152
|
+
Authorization: `Bearer ${apiKey}`,
|
|
1153
|
+
...extra
|
|
1154
|
+
};
|
|
1155
|
+
}
|
|
1156
|
+
applyQuery(url, query) {
|
|
1157
|
+
if (!query) return url;
|
|
1158
|
+
const params = new URLSearchParams();
|
|
1159
|
+
for (const [key, value] of Object.entries(query)) {
|
|
1160
|
+
if (value !== void 0 && value !== null) params.set(key, String(value));
|
|
1161
|
+
}
|
|
1162
|
+
const qs = params.toString();
|
|
1163
|
+
return qs ? `${url}${url.includes("?") ? "&" : "?"}${qs}` : url;
|
|
1164
|
+
}
|
|
1165
|
+
async request(method, path, opts = {}) {
|
|
1166
|
+
const apiKey = this.resolveApiKey();
|
|
1167
|
+
if (!apiKey) {
|
|
1168
|
+
throw new MorphError(
|
|
1169
|
+
"Morph API key not found. Set the MORPH_API_KEY environment variable or pass apiKey in config.",
|
|
1170
|
+
"missing_api_key",
|
|
1171
|
+
401
|
|
1172
|
+
);
|
|
1173
|
+
}
|
|
1174
|
+
const url = this.applyQuery(this.buildURL(path, opts.baseURL), opts.query);
|
|
1175
|
+
const timeout = opts.timeout ?? this.timeout ?? DEFAULT_TIMEOUT;
|
|
1176
|
+
const init = {
|
|
1177
|
+
method,
|
|
1178
|
+
headers: this.buildHeaders(apiKey, opts.headers),
|
|
1179
|
+
...opts.body !== void 0 ? { body: JSON.stringify(opts.body) } : {},
|
|
1180
|
+
...opts.signal ? { signal: opts.signal } : {}
|
|
1181
|
+
};
|
|
1182
|
+
logger.debug("MorphAPIClient", "request", { method, url });
|
|
1183
|
+
const response = await withTimeout(
|
|
1184
|
+
fetchWithRetry(url, init, this.retryConfig ?? {}),
|
|
1185
|
+
timeout,
|
|
1186
|
+
`Morph request to ${url} timed out after ${timeout}ms`
|
|
1187
|
+
);
|
|
1188
|
+
if (opts.raw) return response;
|
|
1189
|
+
if (!response.ok) throw await toMorphError(response);
|
|
1190
|
+
if (opts.stream) return response;
|
|
1191
|
+
if (response.status === 204) return void 0;
|
|
1192
|
+
const text = await response.text();
|
|
1193
|
+
return text ? JSON.parse(text) : void 0;
|
|
1194
|
+
}
|
|
1195
|
+
get(path, opts) {
|
|
1196
|
+
return this.request("GET", path, opts);
|
|
1197
|
+
}
|
|
1198
|
+
post(path, opts) {
|
|
1199
|
+
return this.request("POST", path, opts);
|
|
1200
|
+
}
|
|
1201
|
+
delete(path, opts) {
|
|
1202
|
+
return this.request("DELETE", path, opts);
|
|
1203
|
+
}
|
|
1204
|
+
};
|
|
1205
|
+
|
|
1206
|
+
// core/resource.ts
|
|
1207
|
+
var APIResource = class {
|
|
1208
|
+
_client;
|
|
1209
|
+
constructor(client) {
|
|
1210
|
+
this._client = client;
|
|
1211
|
+
}
|
|
1212
|
+
};
|
|
1213
|
+
|
|
1075
1214
|
// tools/browser/core.ts
|
|
1076
1215
|
var DEFAULT_CONFIG = {
|
|
1077
1216
|
apiUrl: process.env.MORPH_ENVIRONMENT === "DEV" ? "http://localhost:8000" : "https://browser.morphllm.com",
|
|
@@ -1079,17 +1218,30 @@ var DEFAULT_CONFIG = {
|
|
|
1079
1218
|
// 10 minutes for complex tasks
|
|
1080
1219
|
debug: false
|
|
1081
1220
|
};
|
|
1082
|
-
var BrowserClient = class {
|
|
1221
|
+
var BrowserClient = class extends APIResource {
|
|
1083
1222
|
config;
|
|
1084
1223
|
/**
|
|
1085
1224
|
* Profile management - create and manage browser profiles for storing login state.
|
|
1086
1225
|
*/
|
|
1087
1226
|
profiles;
|
|
1088
|
-
constructor(
|
|
1089
|
-
|
|
1227
|
+
constructor(clientOrConfig = {}) {
|
|
1228
|
+
const isClient = clientOrConfig instanceof MorphAPIClient;
|
|
1229
|
+
super(
|
|
1230
|
+
isClient ? clientOrConfig : new MorphAPIClient({
|
|
1231
|
+
apiKey: clientOrConfig.apiKey,
|
|
1232
|
+
browserURL: clientOrConfig.apiUrl,
|
|
1233
|
+
timeout: clientOrConfig.timeout,
|
|
1234
|
+
retryConfig: clientOrConfig.retryConfig,
|
|
1235
|
+
debug: clientOrConfig.debug
|
|
1236
|
+
})
|
|
1237
|
+
);
|
|
1238
|
+
this.config = isClient ? {
|
|
1090
1239
|
...DEFAULT_CONFIG,
|
|
1091
|
-
|
|
1092
|
-
|
|
1240
|
+
apiUrl: clientOrConfig.browserURL,
|
|
1241
|
+
apiKey: clientOrConfig.resolveApiKey(),
|
|
1242
|
+
retryConfig: clientOrConfig.retryConfig,
|
|
1243
|
+
debug: clientOrConfig.debug
|
|
1244
|
+
} : { ...DEFAULT_CONFIG, ...clientOrConfig };
|
|
1093
1245
|
this.profiles = new ProfilesClient(this.config);
|
|
1094
1246
|
}
|
|
1095
1247
|
/**
|