@morphllm/morphsdk 0.2.173 → 0.2.175
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-C3V5FHZI.js → chunk-2SHUV3AB.js} +2 -2
- package/dist/{chunk-JXJBF6CV.js → chunk-2WC7TSEL.js} +2 -2
- package/dist/{chunk-5RTWSAZ6.js → chunk-3TWDAXXO.js} +2 -2
- package/dist/{chunk-S5R4H5HM.js → chunk-4MNI34G7.js} +2 -2
- package/dist/{chunk-SM3OQZRS.js → chunk-4NTL6M55.js} +3 -3
- package/dist/{chunk-FN4ADWFQ.js → chunk-5HNJNDDQ.js} +2 -2
- package/dist/{chunk-GESRH23M.js → chunk-AWBZNBAD.js} +2 -2
- package/dist/{chunk-33ZRF6X3.js → chunk-BQ52QYAU.js} +2 -2
- package/dist/chunk-CABQ652L.js +42 -0
- package/dist/chunk-CABQ652L.js.map +1 -0
- package/dist/{chunk-QE6JHRVD.js → chunk-CBIXYMY2.js} +2 -2
- package/dist/{chunk-577P2AXE.js → chunk-D6C7K7T7.js} +2 -2
- package/dist/{chunk-ZFOR3LI4.js → chunk-DB4C63ND.js} +2 -2
- package/dist/{chunk-CEZQSARX.js → chunk-EYXMABTT.js} +2 -2
- package/dist/{chunk-W6AGNJ5O.js → chunk-FGSPSUZA.js} +3 -3
- package/dist/{chunk-MQTMT4OR.js → chunk-GFPOP6ZY.js} +2 -2
- package/dist/{chunk-TW3XQET2.js → chunk-GGGHLBME.js} +2 -2
- package/dist/{chunk-EJ2CQO4V.js → chunk-GIQZQM3I.js} +2 -2
- package/dist/{chunk-3I4LCNWJ.js → chunk-GMIXIA7W.js} +2 -2
- package/dist/{chunk-Z3KRXUNG.js → chunk-HBE26KJG.js} +2 -2
- package/dist/{chunk-I4FCFIBU.js → chunk-I5PAAUJW.js} +4 -4
- package/dist/{chunk-QCFHQPHC.js → chunk-ICA7P5TD.js} +6 -6
- package/dist/{chunk-RXCHMNCY.js → chunk-ICFZAOSH.js} +2 -2
- package/dist/{chunk-ACWLQFYS.js → chunk-IRBMNRZC.js} +10 -10
- package/dist/{chunk-TS56XYWB.js → chunk-JOBCDCRP.js} +3 -3
- package/dist/chunk-KRTQESOL.js +143 -0
- package/dist/chunk-KRTQESOL.js.map +1 -0
- package/dist/{chunk-VLZ6PNAD.js → chunk-LN7GNFET.js} +7 -7
- package/dist/{chunk-AZOSA7VT.js → chunk-LPXMSR5E.js} +2 -2
- package/dist/{chunk-73DQQMGR.js → chunk-OHF5K3HA.js} +17 -3
- package/dist/chunk-OHF5K3HA.js.map +1 -0
- package/dist/chunk-PICGNBUE.js +35 -0
- package/dist/chunk-PICGNBUE.js.map +1 -0
- package/dist/{chunk-3GNXTHHB.js → chunk-TNNLID5P.js} +2 -2
- package/dist/{chunk-NBKL7VWX.js → chunk-TPGWVT3F.js} +30 -30
- package/dist/{chunk-7EUJ2AKS.js → chunk-TVZ5QVUV.js} +2 -2
- package/dist/{chunk-CV7SLK6R.js → chunk-TY2GIOLP.js} +2 -2
- package/dist/{chunk-QE3SPHIM.js → chunk-XRYUQSUC.js} +4 -4
- package/dist/{chunk-YGNPVOUO.js → chunk-Y5AZ6FOQ.js} +3 -3
- package/dist/chunk-ZCEDWXQV.js +134 -0
- package/dist/chunk-ZCEDWXQV.js.map +1 -0
- package/dist/client.cjs +16 -2
- package/dist/client.cjs.map +1 -1
- package/dist/client.js +32 -32
- package/dist/core/client.cjs +16 -2
- package/dist/core/client.cjs.map +1 -1
- package/dist/core/client.js +4 -4
- package/dist/core/error.cjs +16 -2
- package/dist/core/error.cjs.map +1 -1
- package/dist/core/error.js +3 -3
- package/dist/core/index.cjs +16 -2
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +4 -4
- package/dist/edge.cjs +16 -2
- package/dist/edge.cjs.map +1 -1
- package/dist/edge.js +7 -7
- package/dist/git/client.cjs +16 -2
- package/dist/git/client.cjs.map +1 -1
- package/dist/git/client.js +5 -5
- package/dist/git/index.cjs +16 -2
- package/dist/git/index.cjs.map +1 -1
- package/dist/git/index.js +5 -5
- package/dist/index.cjs +16 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +37 -37
- package/dist/modelrouter/core.cjs +16 -2
- package/dist/modelrouter/core.cjs.map +1 -1
- package/dist/modelrouter/core.js +5 -5
- package/dist/modelrouter/index.cjs +16 -2
- package/dist/modelrouter/index.cjs.map +1 -1
- package/dist/modelrouter/index.js +5 -5
- package/dist/otel-Dk8kdhmZ.d.ts +42 -0
- package/dist/subagents/anthropic.cjs +16 -2
- package/dist/subagents/anthropic.cjs.map +1 -1
- package/dist/subagents/anthropic.js +11 -11
- package/dist/subagents/vercel.cjs +16 -2
- package/dist/subagents/vercel.cjs.map +1 -1
- package/dist/subagents/vercel.js +11 -11
- package/dist/tools/browser/anthropic.cjs +16 -2
- package/dist/tools/browser/anthropic.cjs.map +1 -1
- package/dist/tools/browser/anthropic.js +8 -8
- package/dist/tools/browser/core.cjs +16 -2
- package/dist/tools/browser/core.cjs.map +1 -1
- package/dist/tools/browser/core.js +7 -7
- package/dist/tools/browser/index.cjs +16 -2
- package/dist/tools/browser/index.cjs.map +1 -1
- package/dist/tools/browser/index.js +15 -15
- package/dist/tools/browser/openai.cjs +16 -2
- package/dist/tools/browser/openai.cjs.map +1 -1
- package/dist/tools/browser/openai.js +8 -8
- package/dist/tools/browser/profiles/core.cjs +16 -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 +16 -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 +16 -2
- package/dist/tools/browser/vercel.cjs.map +1 -1
- package/dist/tools/browser/vercel.js +8 -8
- package/dist/tools/codebase_search/anthropic.cjs +16 -2
- package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
- package/dist/tools/codebase_search/anthropic.js +6 -6
- package/dist/tools/codebase_search/core.cjs +16 -2
- package/dist/tools/codebase_search/core.cjs.map +1 -1
- package/dist/tools/codebase_search/core.js +5 -5
- package/dist/tools/codebase_search/index.cjs +16 -2
- package/dist/tools/codebase_search/index.cjs.map +1 -1
- package/dist/tools/codebase_search/index.js +10 -10
- package/dist/tools/codebase_search/openai.cjs +16 -2
- package/dist/tools/codebase_search/openai.cjs.map +1 -1
- package/dist/tools/codebase_search/openai.js +6 -6
- package/dist/tools/codebase_search/vercel.cjs +16 -2
- package/dist/tools/codebase_search/vercel.cjs.map +1 -1
- package/dist/tools/codebase_search/vercel.js +6 -6
- package/dist/tools/compact/core.cjs +16 -2
- package/dist/tools/compact/core.cjs.map +1 -1
- package/dist/tools/compact/core.js +5 -5
- package/dist/tools/compact/index.cjs +16 -2
- package/dist/tools/compact/index.cjs.map +1 -1
- package/dist/tools/compact/index.js +6 -6
- package/dist/tools/fastapply/anthropic.cjs +16 -2
- package/dist/tools/fastapply/anthropic.cjs.map +1 -1
- package/dist/tools/fastapply/anthropic.js +7 -7
- package/dist/tools/fastapply/apply.cjs +16 -2
- package/dist/tools/fastapply/apply.cjs.map +1 -1
- package/dist/tools/fastapply/apply.js +2 -2
- package/dist/tools/fastapply/core.cjs +16 -2
- package/dist/tools/fastapply/core.cjs.map +1 -1
- package/dist/tools/fastapply/core.js +6 -6
- package/dist/tools/fastapply/index.cjs +16 -2
- package/dist/tools/fastapply/index.cjs.map +1 -1
- package/dist/tools/fastapply/index.js +11 -11
- package/dist/tools/fastapply/openai.cjs +16 -2
- package/dist/tools/fastapply/openai.cjs.map +1 -1
- package/dist/tools/fastapply/openai.js +7 -7
- package/dist/tools/fastapply/vercel.cjs +16 -2
- package/dist/tools/fastapply/vercel.cjs.map +1 -1
- package/dist/tools/fastapply/vercel.js +7 -7
- package/dist/tools/index.cjs +16 -2
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.js +11 -11
- package/dist/tools/reflex/core.cjs +16 -2
- package/dist/tools/reflex/core.cjs.map +1 -1
- package/dist/tools/reflex/core.js +5 -5
- package/dist/tools/reflex/index.cjs +16 -2
- package/dist/tools/reflex/index.cjs.map +1 -1
- package/dist/tools/reflex/index.js +5 -5
- package/dist/tools/utils/resilience.cjs +16 -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 +16 -2
- package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
- package/dist/tools/warp_grep/agent/runner.js +3 -3
- package/dist/tools/warp_grep/anthropic.cjs +16 -2
- package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
- package/dist/tools/warp_grep/anthropic.js +11 -11
- package/dist/tools/warp_grep/client.cjs +16 -2
- package/dist/tools/warp_grep/client.cjs.map +1 -1
- package/dist/tools/warp_grep/client.js +10 -10
- package/dist/tools/warp_grep/gemini.cjs +16 -2
- package/dist/tools/warp_grep/gemini.cjs.map +1 -1
- package/dist/tools/warp_grep/gemini.js +10 -10
- package/dist/tools/warp_grep/harness.js +6 -6
- package/dist/tools/warp_grep/index.cjs +16 -2
- package/dist/tools/warp_grep/index.cjs.map +1 -1
- package/dist/tools/warp_grep/index.js +16 -16
- package/dist/tools/warp_grep/openai.cjs +16 -2
- package/dist/tools/warp_grep/openai.cjs.map +1 -1
- package/dist/tools/warp_grep/openai.js +11 -11
- package/dist/tools/warp_grep/providers/local.js +2 -2
- package/dist/tools/warp_grep/vercel.cjs +16 -2
- package/dist/tools/warp_grep/vercel.cjs.map +1 -1
- package/dist/tools/warp_grep/vercel.js +11 -11
- package/dist/tracing/core.cjs +355 -0
- package/dist/tracing/core.cjs.map +1 -0
- package/dist/tracing/core.d.ts +50 -0
- package/dist/tracing/core.js +13 -0
- package/dist/tracing/core.js.map +1 -0
- package/dist/tracing/index.cjs +367 -0
- package/dist/tracing/index.cjs.map +1 -0
- package/dist/tracing/index.d.ts +5 -0
- package/dist/tracing/index.js +18 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/tracing/interaction.cjs +192 -0
- package/dist/tracing/interaction.cjs.map +1 -0
- package/dist/tracing/interaction.d.ts +31 -0
- package/dist/tracing/interaction.js +9 -0
- package/dist/tracing/interaction.js.map +1 -0
- package/dist/tracing/otel.cjs +56 -0
- package/dist/tracing/otel.cjs.map +1 -0
- package/dist/tracing/otel.d.ts +2 -0
- package/dist/tracing/otel.js +10 -0
- package/dist/tracing/otel.js.map +1 -0
- package/dist/tracing/signals.cjs +59 -0
- package/dist/tracing/signals.cjs.map +1 -0
- package/dist/tracing/signals.d.ts +13 -0
- package/dist/tracing/signals.js +8 -0
- package/dist/tracing/signals.js.map +1 -0
- package/dist/tracing/types.cjs +19 -0
- package/dist/tracing/types.cjs.map +1 -0
- package/dist/tracing/types.d.ts +136 -0
- package/dist/tracing/types.js +1 -0
- package/dist/tracing/types.js.map +1 -0
- package/dist/version.cjs +16 -2
- package/dist/version.cjs.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +16 -2
- package/dist/chunk-73DQQMGR.js.map +0 -1
- /package/dist/{chunk-C3V5FHZI.js.map → chunk-2SHUV3AB.js.map} +0 -0
- /package/dist/{chunk-JXJBF6CV.js.map → chunk-2WC7TSEL.js.map} +0 -0
- /package/dist/{chunk-5RTWSAZ6.js.map → chunk-3TWDAXXO.js.map} +0 -0
- /package/dist/{chunk-S5R4H5HM.js.map → chunk-4MNI34G7.js.map} +0 -0
- /package/dist/{chunk-SM3OQZRS.js.map → chunk-4NTL6M55.js.map} +0 -0
- /package/dist/{chunk-FN4ADWFQ.js.map → chunk-5HNJNDDQ.js.map} +0 -0
- /package/dist/{chunk-GESRH23M.js.map → chunk-AWBZNBAD.js.map} +0 -0
- /package/dist/{chunk-33ZRF6X3.js.map → chunk-BQ52QYAU.js.map} +0 -0
- /package/dist/{chunk-QE6JHRVD.js.map → chunk-CBIXYMY2.js.map} +0 -0
- /package/dist/{chunk-577P2AXE.js.map → chunk-D6C7K7T7.js.map} +0 -0
- /package/dist/{chunk-ZFOR3LI4.js.map → chunk-DB4C63ND.js.map} +0 -0
- /package/dist/{chunk-CEZQSARX.js.map → chunk-EYXMABTT.js.map} +0 -0
- /package/dist/{chunk-W6AGNJ5O.js.map → chunk-FGSPSUZA.js.map} +0 -0
- /package/dist/{chunk-MQTMT4OR.js.map → chunk-GFPOP6ZY.js.map} +0 -0
- /package/dist/{chunk-TW3XQET2.js.map → chunk-GGGHLBME.js.map} +0 -0
- /package/dist/{chunk-EJ2CQO4V.js.map → chunk-GIQZQM3I.js.map} +0 -0
- /package/dist/{chunk-3I4LCNWJ.js.map → chunk-GMIXIA7W.js.map} +0 -0
- /package/dist/{chunk-Z3KRXUNG.js.map → chunk-HBE26KJG.js.map} +0 -0
- /package/dist/{chunk-I4FCFIBU.js.map → chunk-I5PAAUJW.js.map} +0 -0
- /package/dist/{chunk-QCFHQPHC.js.map → chunk-ICA7P5TD.js.map} +0 -0
- /package/dist/{chunk-RXCHMNCY.js.map → chunk-ICFZAOSH.js.map} +0 -0
- /package/dist/{chunk-ACWLQFYS.js.map → chunk-IRBMNRZC.js.map} +0 -0
- /package/dist/{chunk-TS56XYWB.js.map → chunk-JOBCDCRP.js.map} +0 -0
- /package/dist/{chunk-VLZ6PNAD.js.map → chunk-LN7GNFET.js.map} +0 -0
- /package/dist/{chunk-AZOSA7VT.js.map → chunk-LPXMSR5E.js.map} +0 -0
- /package/dist/{chunk-3GNXTHHB.js.map → chunk-TNNLID5P.js.map} +0 -0
- /package/dist/{chunk-NBKL7VWX.js.map → chunk-TPGWVT3F.js.map} +0 -0
- /package/dist/{chunk-7EUJ2AKS.js.map → chunk-TVZ5QVUV.js.map} +0 -0
- /package/dist/{chunk-CV7SLK6R.js.map → chunk-TY2GIOLP.js.map} +0 -0
- /package/dist/{chunk-QE3SPHIM.js.map → chunk-XRYUQSUC.js.map} +0 -0
- /package/dist/{chunk-YGNPVOUO.js.map → chunk-Y5AZ6FOQ.js.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-2HMEZZKK.js";
|
|
5
5
|
import {
|
|
6
6
|
executeBrowserTask
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-I5PAAUJW.js";
|
|
8
8
|
import {
|
|
9
9
|
__export
|
|
10
10
|
} from "./chunk-PZ5AY32C.js";
|
|
@@ -93,4 +93,4 @@ export {
|
|
|
93
93
|
createBrowserTool,
|
|
94
94
|
openai_exports
|
|
95
95
|
};
|
|
96
|
-
//# sourceMappingURL=chunk-
|
|
96
|
+
//# sourceMappingURL=chunk-2SHUV3AB.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SDK_VERSION
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OHF5K3HA.js";
|
|
4
4
|
|
|
5
5
|
// tools/utils/resilience.ts
|
|
6
6
|
var DEFAULT_RETRY_CONFIG = {
|
|
@@ -91,4 +91,4 @@ export {
|
|
|
91
91
|
withTimeout,
|
|
92
92
|
MorphError
|
|
93
93
|
};
|
|
94
|
-
//# sourceMappingURL=chunk-
|
|
94
|
+
//# sourceMappingURL=chunk-2WC7TSEL.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WarpGrepClient,
|
|
3
3
|
formatResult
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IRBMNRZC.js";
|
|
5
5
|
import {
|
|
6
6
|
CODEBASE_SEARCH_TOOL,
|
|
7
7
|
SEND_MESSAGE_TOOL,
|
|
@@ -285,4 +285,4 @@ function deduplicateContexts(contexts) {
|
|
|
285
285
|
export {
|
|
286
286
|
createExploreSubagent
|
|
287
287
|
};
|
|
288
|
-
//# sourceMappingURL=chunk-
|
|
288
|
+
//# sourceMappingURL=chunk-3TWDAXXO.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XRYUQSUC.js";
|
|
4
4
|
import {
|
|
5
5
|
logger
|
|
6
6
|
} from "./chunk-F3NCFNUX.js";
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
FastApplyClient,
|
|
140
140
|
executeEditFile
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-4MNI34G7.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XRYUQSUC.js";
|
|
4
4
|
import {
|
|
5
5
|
logger
|
|
6
6
|
} from "./chunk-F3NCFNUX.js";
|
|
7
7
|
import {
|
|
8
8
|
MorphError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2WC7TSEL.js";
|
|
10
10
|
import {
|
|
11
11
|
APIResource
|
|
12
12
|
} from "./chunk-LKFZBBTD.js";
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
GeminiRouter,
|
|
140
140
|
RawRouter
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-4NTL6M55.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XRYUQSUC.js";
|
|
4
4
|
import {
|
|
5
5
|
APIResource
|
|
6
6
|
} from "./chunk-LKFZBBTD.js";
|
|
@@ -558,4 +558,4 @@ var MorphGit = class extends APIResource {
|
|
|
558
558
|
export {
|
|
559
559
|
MorphGit
|
|
560
560
|
};
|
|
561
|
-
//# sourceMappingURL=chunk-
|
|
561
|
+
//# sourceMappingURL=chunk-5HNJNDDQ.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeEditFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4MNI34G7.js";
|
|
4
4
|
import {
|
|
5
5
|
EDIT_FILE_SYSTEM_PROMPT,
|
|
6
6
|
EDIT_FILE_TOOL_DESCRIPTION
|
|
@@ -91,4 +91,4 @@ export {
|
|
|
91
91
|
openai_default,
|
|
92
92
|
openai_exports
|
|
93
93
|
};
|
|
94
|
-
//# sourceMappingURL=chunk-
|
|
94
|
+
//# sourceMappingURL=chunk-AWBZNBAD.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-YQMPVJ2L.js";
|
|
5
5
|
import {
|
|
6
6
|
executeCodebaseSearch
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FGSPSUZA.js";
|
|
8
8
|
|
|
9
9
|
// tools/codebase_search/openai.ts
|
|
10
10
|
var codebaseSearchTool = {
|
|
@@ -125,4 +125,4 @@ export {
|
|
|
125
125
|
getSystemPrompt,
|
|
126
126
|
openai_default
|
|
127
127
|
};
|
|
128
|
-
//# sourceMappingURL=chunk-
|
|
128
|
+
//# sourceMappingURL=chunk-BQ52QYAU.js.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__export
|
|
3
|
+
} from "./chunk-PZ5AY32C.js";
|
|
4
|
+
|
|
5
|
+
// tracing/otel.ts
|
|
6
|
+
var otel_exports = {};
|
|
7
|
+
__export(otel_exports, {
|
|
8
|
+
default: () => otel_default,
|
|
9
|
+
metadata: () => metadata
|
|
10
|
+
});
|
|
11
|
+
var RESERVED_KEYS = /* @__PURE__ */ new Set(["user_id", "convo_id", "event_id", "event_name"]);
|
|
12
|
+
function uuid() {
|
|
13
|
+
const c = globalThis.crypto;
|
|
14
|
+
if (c?.randomUUID) return c.randomUUID();
|
|
15
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (ch) => {
|
|
16
|
+
const r = Math.random() * 16 | 0;
|
|
17
|
+
const v = ch === "x" ? r : r & 3 | 8;
|
|
18
|
+
return v.toString(16);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function metadata(opts) {
|
|
22
|
+
const result = {
|
|
23
|
+
user_id: opts.userId,
|
|
24
|
+
event_id: opts.eventId ?? uuid()
|
|
25
|
+
};
|
|
26
|
+
if (opts.convoId) result.convo_id = opts.convoId;
|
|
27
|
+
if (opts.eventName) result.event_name = opts.eventName;
|
|
28
|
+
if (opts.properties) {
|
|
29
|
+
for (const [key, value] of Object.entries(opts.properties)) {
|
|
30
|
+
if (!RESERVED_KEYS.has(key)) result[key] = value;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
var otel_default = { metadata };
|
|
36
|
+
|
|
37
|
+
export {
|
|
38
|
+
metadata,
|
|
39
|
+
otel_default,
|
|
40
|
+
otel_exports
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=chunk-CABQ652L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../tracing/otel.ts"],"sourcesContent":["/**\n * Morph Tracing — Vercel AI SDK helper.\n *\n * The Vercel AI SDK emits its own OpenTelemetry spans when you pass\n * `experimental_telemetry`. There is nothing to monkey-patch; instead you tag\n * each call with `metadata()` so Morph can attribute the resulting spans to a\n * user/conversation/event.\n *\n * @example\n * ```ts\n * import { generateText } from \"ai\";\n * import { metadata } from \"morphsdk/tracing/otel\";\n *\n * const res = await generateText({\n * model: openai(\"gpt-4o\"),\n * prompt: \"Hello!\",\n * experimental_telemetry: {\n * isEnabled: true,\n * metadata: metadata({ userId: \"user-123\", convoId: \"convo-456\" }),\n * },\n * });\n * ```\n */\nimport type { MetadataOptions } from './types.js';\n\n/**\n * Reserved metadata keys Morph owns. Custom `properties` can't overwrite these,\n * so attribution (user_id / convo_id / event_id) stays intact.\n *\n * The AI SDK stores metadata as `ai.telemetry.metadata.<key>`; Traceloop's span\n * processor copies them to `traceloop.association.properties.<key>`, which is\n * what ClickHouse views read. Use snake_case names (user_id, convo_id, …).\n */\nconst RESERVED_KEYS = new Set(['user_id', 'convo_id', 'event_id', 'event_name']);\n\nfunction uuid(): string {\n // Node 18+ and modern runtimes expose globalThis.crypto.randomUUID.\n const c = (globalThis as { crypto?: { randomUUID?: () => string } }).crypto;\n if (c?.randomUUID) return c.randomUUID();\n // Fallback: RFC4122-ish without crypto.\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (ch) => {\n const r = (Math.random() * 16) | 0;\n const v = ch === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Build the metadata object for the Vercel AI SDK's\n * `experimental_telemetry.metadata`. The values are propagated to every span the\n * AI SDK creates for that call. Generate a fresh `eventId` per call for grouping.\n */\nexport function metadata(opts: MetadataOptions): Record<string, string> {\n const result: Record<string, string> = {\n user_id: opts.userId,\n event_id: opts.eventId ?? uuid(),\n };\n if (opts.convoId) result.convo_id = opts.convoId;\n if (opts.eventName) result.event_name = opts.eventName;\n if (opts.properties) {\n for (const [key, value] of Object.entries(opts.properties)) {\n if (!RESERVED_KEYS.has(key)) result[key] = value;\n }\n }\n return result;\n}\n\nexport default { metadata };\n"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiCA,IAAM,gBAAgB,oBAAI,IAAI,CAAC,WAAW,YAAY,YAAY,YAAY,CAAC;AAE/E,SAAS,OAAe;AAEtB,QAAM,IAAK,WAA0D;AACrE,MAAI,GAAG,WAAY,QAAO,EAAE,WAAW;AAEvC,SAAO,uCAAuC,QAAQ,SAAS,CAAC,OAAO;AACrE,UAAM,IAAK,KAAK,OAAO,IAAI,KAAM;AACjC,UAAM,IAAI,OAAO,MAAM,IAAK,IAAI,IAAO;AACvC,WAAO,EAAE,SAAS,EAAE;AAAA,EACtB,CAAC;AACH;AAOO,SAAS,SAAS,MAA+C;AACtE,QAAM,SAAiC;AAAA,IACrC,SAAS,KAAK;AAAA,IACd,UAAU,KAAK,WAAW,KAAK;AAAA,EACjC;AACA,MAAI,KAAK,QAAS,QAAO,WAAW,KAAK;AACzC,MAAI,KAAK,UAAW,QAAO,aAAa,KAAK;AAC7C,MAAI,KAAK,YAAY;AACnB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,UAAU,GAAG;AAC1D,UAAI,CAAC,cAAc,IAAI,GAAG,EAAG,QAAO,GAAG,IAAI;AAAA,IAC7C;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAO,eAAQ,EAAE,SAAS;","names":[]}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
executeGitHubReadFile,
|
|
9
9
|
executeToolCall,
|
|
10
10
|
executeToolCallStreaming
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IRBMNRZC.js";
|
|
12
12
|
|
|
13
13
|
// tools/warp_grep/vercel.ts
|
|
14
14
|
import { tool } from "ai";
|
|
@@ -115,4 +115,4 @@ export {
|
|
|
115
115
|
createGitHubReadFileTool,
|
|
116
116
|
vercel_default
|
|
117
117
|
};
|
|
118
|
-
//# sourceMappingURL=chunk-
|
|
118
|
+
//# sourceMappingURL=chunk-CBIXYMY2.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-2VERUKO2.js";
|
|
13
13
|
import {
|
|
14
14
|
fetchWithRetry
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2WC7TSEL.js";
|
|
16
16
|
|
|
17
17
|
// tools/browser/profiles/core.ts
|
|
18
18
|
var DEFAULT_API_URL = process.env.MORPH_ENVIRONMENT === "DEV" ? "http://localhost:8000" : "https://browser.morphllm.com";
|
|
@@ -386,4 +386,4 @@ export {
|
|
|
386
386
|
listRepos,
|
|
387
387
|
getProfileState
|
|
388
388
|
};
|
|
389
|
-
//# sourceMappingURL=chunk-
|
|
389
|
+
//# sourceMappingURL=chunk-D6C7K7T7.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2WC7TSEL.js";
|
|
4
4
|
|
|
5
5
|
// core/error.ts
|
|
6
6
|
async function toMorphError(response) {
|
|
@@ -21,4 +21,4 @@ async function toMorphError(response) {
|
|
|
21
21
|
export {
|
|
22
22
|
toMorphError
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
24
|
+
//# sourceMappingURL=chunk-DB4C63ND.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeEditFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4MNI34G7.js";
|
|
4
4
|
import {
|
|
5
5
|
EDIT_FILE_SYSTEM_PROMPT,
|
|
6
6
|
EDIT_FILE_TOOL_DESCRIPTION
|
|
@@ -79,4 +79,4 @@ export {
|
|
|
79
79
|
getSystemPrompt,
|
|
80
80
|
anthropic_exports
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-EYXMABTT.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XRYUQSUC.js";
|
|
4
4
|
import {
|
|
5
5
|
logger
|
|
6
6
|
} from "./chunk-F3NCFNUX.js";
|
|
7
7
|
import {
|
|
8
8
|
MorphError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2WC7TSEL.js";
|
|
10
10
|
import {
|
|
11
11
|
APIResource
|
|
12
12
|
} from "./chunk-LKFZBBTD.js";
|
|
@@ -94,4 +94,4 @@ export {
|
|
|
94
94
|
CodebaseSearchClient,
|
|
95
95
|
executeCodebaseSearch
|
|
96
96
|
};
|
|
97
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-FGSPSUZA.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-YQMPVJ2L.js";
|
|
5
5
|
import {
|
|
6
6
|
executeCodebaseSearch
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FGSPSUZA.js";
|
|
8
8
|
|
|
9
9
|
// tools/codebase_search/anthropic.ts
|
|
10
10
|
function createCodebaseSearchTool(config) {
|
|
@@ -80,4 +80,4 @@ function formatResult(result) {
|
|
|
80
80
|
export {
|
|
81
81
|
createCodebaseSearchTool
|
|
82
82
|
};
|
|
83
|
-
//# sourceMappingURL=chunk-
|
|
83
|
+
//# sourceMappingURL=chunk-GFPOP6ZY.js.map
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
executeToolCall,
|
|
15
15
|
formatGitHubReadFileResult,
|
|
16
16
|
formatResult
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-IRBMNRZC.js";
|
|
18
18
|
|
|
19
19
|
// tools/warp_grep/openai.ts
|
|
20
20
|
var TOOL_PARAMETERS = {
|
|
@@ -104,4 +104,4 @@ export {
|
|
|
104
104
|
createGitHubReadFileTool,
|
|
105
105
|
openai_default
|
|
106
106
|
};
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-GGGHLBME.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CompactClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JOBCDCRP.js";
|
|
4
4
|
|
|
5
5
|
// tools/compact/utils.ts
|
|
6
6
|
async function compactFileContexts(files, query, apiKey, apiUrl, maxTokens = 1e4, maxConcurrency = 3) {
|
|
@@ -50,4 +50,4 @@ async function compactFileContexts(files, query, apiKey, apiUrl, maxTokens = 1e4
|
|
|
50
50
|
export {
|
|
51
51
|
compactFileContexts
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=chunk-
|
|
53
|
+
//# sourceMappingURL=chunk-GIQZQM3I.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WarpGrepClient,
|
|
3
3
|
formatResult
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IRBMNRZC.js";
|
|
5
5
|
import {
|
|
6
6
|
CODEBASE_SEARCH_TOOL,
|
|
7
7
|
SEND_MESSAGE_TOOL,
|
|
@@ -262,4 +262,4 @@ function deduplicateContexts(contexts) {
|
|
|
262
262
|
export {
|
|
263
263
|
createExploreSubagent
|
|
264
264
|
};
|
|
265
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-GMIXIA7W.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeEditFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4MNI34G7.js";
|
|
4
4
|
import {
|
|
5
5
|
EDIT_FILE_SYSTEM_PROMPT,
|
|
6
6
|
EDIT_FILE_TOOL_DESCRIPTION
|
|
@@ -86,4 +86,4 @@ export {
|
|
|
86
86
|
vercel_default,
|
|
87
87
|
vercel_exports
|
|
88
88
|
};
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
89
|
+
//# sourceMappingURL=chunk-HBE26KJG.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ProfilesClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-D6C7K7T7.js";
|
|
4
4
|
import {
|
|
5
5
|
buildEmbedCode,
|
|
6
6
|
buildLiveIframe,
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
} from "./chunk-YTYCHRQ2.js";
|
|
10
10
|
import {
|
|
11
11
|
MorphAPIClient
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-XRYUQSUC.js";
|
|
13
13
|
import {
|
|
14
14
|
logger
|
|
15
15
|
} from "./chunk-F3NCFNUX.js";
|
|
16
16
|
import {
|
|
17
17
|
fetchWithRetry,
|
|
18
18
|
withTimeout
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-2WC7TSEL.js";
|
|
20
20
|
import {
|
|
21
21
|
APIResource
|
|
22
22
|
} from "./chunk-LKFZBBTD.js";
|
|
@@ -619,4 +619,4 @@ export {
|
|
|
619
619
|
getWebp,
|
|
620
620
|
checkHealth
|
|
621
621
|
};
|
|
622
|
-
//# sourceMappingURL=chunk-
|
|
622
|
+
//# sourceMappingURL=chunk-I5PAAUJW.js.map
|
|
@@ -9,21 +9,21 @@ import {
|
|
|
9
9
|
toolListDirectory,
|
|
10
10
|
toolRead
|
|
11
11
|
} from "./chunk-IA5K2HTC.js";
|
|
12
|
+
import {
|
|
13
|
+
AGENT_CONFIG,
|
|
14
|
+
DEFAULT_MODEL
|
|
15
|
+
} from "./chunk-CCJK3HTG.js";
|
|
12
16
|
import {
|
|
13
17
|
extractPathFromCommand,
|
|
14
18
|
parseFinishFiles,
|
|
15
19
|
parseReadLines
|
|
16
20
|
} from "./chunk-FBRNUWEB.js";
|
|
17
|
-
import {
|
|
18
|
-
AGENT_CONFIG,
|
|
19
|
-
DEFAULT_MODEL
|
|
20
|
-
} from "./chunk-CCJK3HTG.js";
|
|
21
21
|
import {
|
|
22
22
|
logger
|
|
23
23
|
} from "./chunk-F3NCFNUX.js";
|
|
24
24
|
import {
|
|
25
25
|
SDK_VERSION
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-OHF5K3HA.js";
|
|
27
27
|
|
|
28
28
|
// tools/warp_grep/agent/runner.ts
|
|
29
29
|
import OpenAI from "openai";
|
|
@@ -425,4 +425,4 @@ export {
|
|
|
425
425
|
runWarpGrepStreaming,
|
|
426
426
|
runWarpGrep
|
|
427
427
|
};
|
|
428
|
-
//# sourceMappingURL=chunk-
|
|
428
|
+
//# sourceMappingURL=chunk-ICA7P5TD.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-2HMEZZKK.js";
|
|
4
4
|
import {
|
|
5
5
|
executeBrowserTask
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-I5PAAUJW.js";
|
|
7
7
|
import {
|
|
8
8
|
__export
|
|
9
9
|
} from "./chunk-PZ5AY32C.js";
|
|
@@ -54,4 +54,4 @@ export {
|
|
|
54
54
|
browserTool,
|
|
55
55
|
vercel_exports
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
57
|
+
//# sourceMappingURL=chunk-ICFZAOSH.js.map
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
parseGitHubUrl
|
|
3
|
-
} from "./chunk-63VHBANJ.js";
|
|
4
|
-
import {
|
|
5
|
-
runWarpGrep,
|
|
6
|
-
runWarpGrepStreaming
|
|
7
|
-
} from "./chunk-QCFHQPHC.js";
|
|
8
1
|
import {
|
|
9
2
|
createCodeStorageHttpCommands
|
|
10
3
|
} from "./chunk-GVGJIXV2.js";
|
|
11
4
|
import {
|
|
12
5
|
RemoteCommandsProvider
|
|
13
6
|
} from "./chunk-A4D2CIIT.js";
|
|
7
|
+
import {
|
|
8
|
+
parseGitHubUrl
|
|
9
|
+
} from "./chunk-63VHBANJ.js";
|
|
10
|
+
import {
|
|
11
|
+
runWarpGrep,
|
|
12
|
+
runWarpGrepStreaming
|
|
13
|
+
} from "./chunk-ICA7P5TD.js";
|
|
14
14
|
import {
|
|
15
15
|
compactFileContexts
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-GIQZQM3I.js";
|
|
17
17
|
import {
|
|
18
18
|
MorphAPIClient
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-XRYUQSUC.js";
|
|
20
20
|
import {
|
|
21
21
|
logger
|
|
22
22
|
} from "./chunk-F3NCFNUX.js";
|
|
@@ -321,4 +321,4 @@ export {
|
|
|
321
321
|
formatGitHubReadFileResult,
|
|
322
322
|
formatResult
|
|
323
323
|
};
|
|
324
|
-
//# sourceMappingURL=chunk-
|
|
324
|
+
//# sourceMappingURL=chunk-IRBMNRZC.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XRYUQSUC.js";
|
|
4
4
|
import {
|
|
5
5
|
MorphError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2WC7TSEL.js";
|
|
7
7
|
import {
|
|
8
8
|
APIResource
|
|
9
9
|
} from "./chunk-LKFZBBTD.js";
|
|
@@ -75,4 +75,4 @@ var CompactClient = class extends APIResource {
|
|
|
75
75
|
export {
|
|
76
76
|
CompactClient
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
78
|
+
//# sourceMappingURL=chunk-JOBCDCRP.js.map
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import {
|
|
2
|
+
shipSignal
|
|
3
|
+
} from "./chunk-PICGNBUE.js";
|
|
4
|
+
import {
|
|
5
|
+
createInteractionApi
|
|
6
|
+
} from "./chunk-ZCEDWXQV.js";
|
|
7
|
+
import {
|
|
8
|
+
metadata
|
|
9
|
+
} from "./chunk-CABQ652L.js";
|
|
10
|
+
|
|
11
|
+
// tracing/core.ts
|
|
12
|
+
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
|
|
13
|
+
import * as traceloop from "@traceloop/node-server-sdk";
|
|
14
|
+
var DEFAULT_BASE_URL = "https://api.morphllm.com";
|
|
15
|
+
function log(debug, ...args) {
|
|
16
|
+
if (debug) console.log("[morph-tracing]", ...args);
|
|
17
|
+
}
|
|
18
|
+
var MorphTracing = class {
|
|
19
|
+
cfg;
|
|
20
|
+
active = /* @__PURE__ */ new Map();
|
|
21
|
+
enabled;
|
|
22
|
+
constructor(config = {}) {
|
|
23
|
+
const debug = config.debug ?? process.env.MORPH_TRACING_DEBUG === "1";
|
|
24
|
+
const apiKey = config.apiKey ?? process.env.MORPH_API_KEY ?? "";
|
|
25
|
+
const baseUrlRaw = config.baseUrl ?? process.env.MORPH_TRACES_URL ?? DEFAULT_BASE_URL;
|
|
26
|
+
const baseUrl = baseUrlRaw.replace(/\/+$/, "");
|
|
27
|
+
const isProd = process.env.NODE_ENV === "production";
|
|
28
|
+
this.cfg = {
|
|
29
|
+
apiKey,
|
|
30
|
+
baseUrl,
|
|
31
|
+
signalsEndpoint: `${baseUrl}/v1/signals`,
|
|
32
|
+
appName: config.appName ?? process.env.npm_package_name ?? "morph-app",
|
|
33
|
+
disableBatching: config.disableBatching ?? !isProd,
|
|
34
|
+
traceContent: config.traceContent ?? true,
|
|
35
|
+
debug
|
|
36
|
+
};
|
|
37
|
+
if (config.disabled) {
|
|
38
|
+
log(debug, "disabled \u2014 no tracing initialized");
|
|
39
|
+
this.enabled = false;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (!apiKey) {
|
|
43
|
+
console.warn(
|
|
44
|
+
"[morph-tracing] No API key (set MORPH_API_KEY or pass { apiKey }). Tracing disabled."
|
|
45
|
+
);
|
|
46
|
+
this.enabled = false;
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this.enabled = true;
|
|
50
|
+
if (config.useExternalOtel) {
|
|
51
|
+
traceloop.initialize({
|
|
52
|
+
baseUrl,
|
|
53
|
+
apiKey,
|
|
54
|
+
appName: this.cfg.appName,
|
|
55
|
+
tracingEnabled: false,
|
|
56
|
+
traceContent: this.cfg.traceContent,
|
|
57
|
+
silenceInitializationMessage: true
|
|
58
|
+
});
|
|
59
|
+
log(debug, "external OTEL mode \u2014 add createSpanProcessor() to your NodeSDK");
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const exporter = new OTLPTraceExporter({
|
|
63
|
+
url: `${baseUrl}/v1/traces`,
|
|
64
|
+
headers: { Authorization: `Bearer ${apiKey}`, ...config.headers }
|
|
65
|
+
});
|
|
66
|
+
traceloop.initialize({
|
|
67
|
+
baseUrl,
|
|
68
|
+
apiKey,
|
|
69
|
+
appName: this.cfg.appName,
|
|
70
|
+
exporter,
|
|
71
|
+
disableBatch: this.cfg.disableBatching,
|
|
72
|
+
traceContent: this.cfg.traceContent,
|
|
73
|
+
instrumentModules: config.instrumentModules,
|
|
74
|
+
tracingEnabled: true,
|
|
75
|
+
traceloopSyncEnabled: false,
|
|
76
|
+
silenceInitializationMessage: !debug
|
|
77
|
+
});
|
|
78
|
+
log(
|
|
79
|
+
debug,
|
|
80
|
+
`initialized \u2192 ${baseUrl}/v1/traces (batching ${this.cfg.disableBatching ? "off" : "on"})`
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
/** Begin a new traced interaction (a single user turn / agent run). */
|
|
84
|
+
begin(ctx) {
|
|
85
|
+
const interaction = createInteractionApi(ctx, this.cfg.traceContent);
|
|
86
|
+
this.active.set(interaction.getEventId(), interaction);
|
|
87
|
+
return interaction;
|
|
88
|
+
}
|
|
89
|
+
/** Look up an in-flight interaction by its eventId. */
|
|
90
|
+
getActiveInteraction(eventId) {
|
|
91
|
+
return this.active.get(eventId);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Non-interactive tracer for batch jobs where you only care about
|
|
95
|
+
* spans/token usage, not a user-facing interaction.
|
|
96
|
+
*/
|
|
97
|
+
tracer(globalProperties = {}) {
|
|
98
|
+
return createInteractionApi(
|
|
99
|
+
{ userId: globalProperties.userId ?? "batch", properties: globalProperties },
|
|
100
|
+
this.cfg.traceContent
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
/** Build Vercel AI SDK telemetry metadata (see `morphsdk/tracing/otel`). */
|
|
104
|
+
metadata(opts) {
|
|
105
|
+
return metadata(opts);
|
|
106
|
+
}
|
|
107
|
+
/** Attach a feedback/quality signal to an interaction by eventId. */
|
|
108
|
+
async trackSignal(signal) {
|
|
109
|
+
if (!this.enabled) return;
|
|
110
|
+
const signals = Array.isArray(signal) ? signal : [signal];
|
|
111
|
+
await shipSignal(this.cfg.signalsEndpoint, this.cfg.apiKey, signals, this.cfg.debug);
|
|
112
|
+
}
|
|
113
|
+
/** Span processor for `useExternalOtel: true` integrations. */
|
|
114
|
+
createSpanProcessor(options) {
|
|
115
|
+
return traceloop.createSpanProcessor({
|
|
116
|
+
apiKey: this.cfg.apiKey,
|
|
117
|
+
baseUrl: this.cfg.baseUrl,
|
|
118
|
+
...options
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/** Flush any batched spans immediately. Safe to call when idle. */
|
|
122
|
+
async forceFlush() {
|
|
123
|
+
if (!this.enabled) return;
|
|
124
|
+
try {
|
|
125
|
+
await traceloop.forceFlush();
|
|
126
|
+
} catch (err) {
|
|
127
|
+
log(this.cfg.debug, "forceFlush error (ignored):", err);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** Flush and stop tracing. */
|
|
131
|
+
async shutdown() {
|
|
132
|
+
await this.forceFlush();
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
function morphTracing(config = {}) {
|
|
136
|
+
return new MorphTracing(config);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export {
|
|
140
|
+
MorphTracing,
|
|
141
|
+
morphTracing
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=chunk-KRTQESOL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../tracing/core.ts"],"sourcesContent":["/**\n * Morph Tracing — core initialization.\n *\n * Thin Morph layer over OpenLLMetry / Traceloop. `morphTracing()` initializes\n * Traceloop with a JSON OTLP exporter pointed at Morph's ingest endpoint\n * (`${baseUrl}/v1/traces`, `Authorization: Bearer <apiKey>`) and returns a\n * `MorphTracing` handle for interactions, tools, and signals.\n *\n * We deliberately override Traceloop's default protobuf exporter with the\n * JSON-over-HTTP exporter so the ingest service can parse plain OTLP/JSON.\n */\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport * as traceloop from '@traceloop/node-server-sdk';\n\nimport { createInteractionApi, type Interaction, type Tracer } from './interaction.js';\nimport { metadata as buildMetadata } from './otel.js';\nimport { shipSignal } from './signals.js';\nimport type {\n MetadataOptions,\n MorphTracingConfig,\n SignalEvent,\n TraceContext,\n} from './types.js';\n\nconst DEFAULT_BASE_URL = 'https://api.morphllm.com';\n\nexport interface ResolvedConfig {\n apiKey: string;\n baseUrl: string;\n signalsEndpoint: string;\n appName: string;\n disableBatching: boolean;\n traceContent: boolean;\n debug: boolean;\n}\n\nfunction log(debug: boolean, ...args: unknown[]): void {\n if (debug) console.log('[morph-tracing]', ...args);\n}\n\n/**\n * Handle returned by {@link morphTracing}. Create interactions with `begin()`,\n * get a non-interactive `tracer()`, attach feedback with `trackSignal()`, and\n * flush/shutdown the exporter.\n */\nexport class MorphTracing {\n private readonly cfg: ResolvedConfig;\n private readonly active = new Map<string, Interaction>();\n readonly enabled: boolean;\n\n constructor(config: MorphTracingConfig = {}) {\n const debug = config.debug ?? process.env.MORPH_TRACING_DEBUG === '1';\n const apiKey = config.apiKey ?? process.env.MORPH_API_KEY ?? '';\n const baseUrlRaw =\n config.baseUrl ?? process.env.MORPH_TRACES_URL ?? DEFAULT_BASE_URL;\n const baseUrl = baseUrlRaw.replace(/\\/+$/, '');\n const isProd = process.env.NODE_ENV === 'production';\n\n this.cfg = {\n apiKey,\n baseUrl,\n signalsEndpoint: `${baseUrl}/v1/signals`,\n appName: config.appName ?? process.env.npm_package_name ?? 'morph-app',\n disableBatching: config.disableBatching ?? !isProd,\n traceContent: config.traceContent ?? true,\n debug,\n };\n\n if (config.disabled) {\n log(debug, 'disabled — no tracing initialized');\n this.enabled = false;\n return;\n }\n if (!apiKey) {\n console.warn(\n '[morph-tracing] No API key (set MORPH_API_KEY or pass { apiKey }). Tracing disabled.',\n );\n this.enabled = false;\n return;\n }\n\n this.enabled = true;\n if (config.useExternalOtel) {\n // Customer drives their own NodeSDK; just register config, no SDK start.\n traceloop.initialize({\n baseUrl,\n apiKey,\n appName: this.cfg.appName,\n tracingEnabled: false,\n traceContent: this.cfg.traceContent,\n silenceInitializationMessage: true,\n });\n log(debug, 'external OTEL mode — add createSpanProcessor() to your NodeSDK');\n return;\n }\n\n const exporter = new OTLPTraceExporter({\n url: `${baseUrl}/v1/traces`,\n headers: { Authorization: `Bearer ${apiKey}`, ...config.headers },\n });\n\n traceloop.initialize({\n baseUrl,\n apiKey,\n appName: this.cfg.appName,\n exporter,\n disableBatch: this.cfg.disableBatching,\n traceContent: this.cfg.traceContent,\n instrumentModules: config.instrumentModules as NonNullable<\n Parameters<typeof traceloop.initialize>[0]\n >['instrumentModules'],\n tracingEnabled: true,\n traceloopSyncEnabled: false,\n silenceInitializationMessage: !debug,\n });\n log(\n debug,\n `initialized → ${baseUrl}/v1/traces (batching ${this.cfg.disableBatching ? 'off' : 'on'})`,\n );\n }\n\n /** Begin a new traced interaction (a single user turn / agent run). */\n begin(ctx: TraceContext & { userId: string; event?: string }): Interaction {\n const interaction = createInteractionApi(ctx, this.cfg.traceContent);\n this.active.set(interaction.getEventId()!, interaction);\n return interaction;\n }\n\n /** Look up an in-flight interaction by its eventId. */\n getActiveInteraction(eventId: string): Interaction | undefined {\n return this.active.get(eventId);\n }\n\n /**\n * Non-interactive tracer for batch jobs where you only care about\n * spans/token usage, not a user-facing interaction.\n */\n tracer(globalProperties: Record<string, string> = {}): Tracer {\n return createInteractionApi(\n { userId: globalProperties.userId ?? 'batch', properties: globalProperties },\n this.cfg.traceContent,\n );\n }\n\n /** Build Vercel AI SDK telemetry metadata (see `morphsdk/tracing/otel`). */\n metadata(opts: MetadataOptions): Record<string, string> {\n return buildMetadata(opts);\n }\n\n /** Attach a feedback/quality signal to an interaction by eventId. */\n async trackSignal(signal: SignalEvent | SignalEvent[]): Promise<void> {\n if (!this.enabled) return;\n const signals = Array.isArray(signal) ? signal : [signal];\n await shipSignal(this.cfg.signalsEndpoint, this.cfg.apiKey, signals, this.cfg.debug);\n }\n\n /** Span processor for `useExternalOtel: true` integrations. */\n createSpanProcessor(\n options?: Parameters<typeof traceloop.createSpanProcessor>[0],\n ): ReturnType<typeof traceloop.createSpanProcessor> {\n return traceloop.createSpanProcessor({\n apiKey: this.cfg.apiKey,\n baseUrl: this.cfg.baseUrl,\n ...options,\n });\n }\n\n /** Flush any batched spans immediately. Safe to call when idle. */\n async forceFlush(): Promise<void> {\n if (!this.enabled) return;\n try {\n await traceloop.forceFlush();\n } catch (err) {\n log(this.cfg.debug, 'forceFlush error (ignored):', err);\n }\n }\n\n /** Flush and stop tracing. */\n async shutdown(): Promise<void> {\n await this.forceFlush();\n }\n}\n\n/** Initialize Morph Tracing and auto-instrument supported AI SDKs. */\nexport function morphTracing(config: MorphTracingConfig = {}): MorphTracing {\n return new MorphTracing(config);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
runRipgrep
|
|
3
|
+
} from "./chunk-TPP2UGQP.js";
|
|
4
|
+
import {
|
|
5
|
+
readAllLines
|
|
6
|
+
} from "./chunk-G2RSY56Q.js";
|
|
1
7
|
import {
|
|
2
8
|
fixPathRepetition,
|
|
3
9
|
isSymlink,
|
|
@@ -5,12 +11,6 @@ import {
|
|
|
5
11
|
resolveUnderRepo,
|
|
6
12
|
toRepoRelative
|
|
7
13
|
} from "./chunk-YPKNMYD4.js";
|
|
8
|
-
import {
|
|
9
|
-
runRipgrep
|
|
10
|
-
} from "./chunk-TPP2UGQP.js";
|
|
11
|
-
import {
|
|
12
|
-
readAllLines
|
|
13
|
-
} from "./chunk-G2RSY56Q.js";
|
|
14
14
|
import {
|
|
15
15
|
AGENT_CONFIG,
|
|
16
16
|
DEFAULT_EXCLUDES
|
|
@@ -341,4 +341,4 @@ Details: ${res.stderr}` : ""}`
|
|
|
341
341
|
export {
|
|
342
342
|
LocalRipgrepProvider
|
|
343
343
|
};
|
|
344
|
-
//# sourceMappingURL=chunk-
|
|
344
|
+
//# sourceMappingURL=chunk-LN7GNFET.js.map
|