@morphllm/morphsdk 0.2.180 → 0.2.182
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-EJZFQAKT.js → chunk-27EP7ZJK.js} +2 -2
- package/dist/{chunk-HXDITEO6.js → chunk-4WQGJMOW.js} +2 -2
- package/dist/{chunk-BN4IHFWR.js → chunk-66X4NBG7.js} +2 -2
- package/dist/{chunk-DFTKUEF5.js → chunk-7ICJYWTT.js} +2 -2
- package/dist/{chunk-D4XCP2ZE.js → chunk-7JLPTKPQ.js} +39 -4
- package/dist/chunk-7JLPTKPQ.js.map +1 -0
- package/dist/{chunk-AERVDGON.js → chunk-BTIJDM7J.js} +2 -2
- package/dist/{chunk-XEQZQTZR.js → chunk-C7HLMZXK.js} +2 -2
- package/dist/{chunk-JG5MJI34.js → chunk-D4K2OZTC.js} +2 -2
- package/dist/{chunk-GVN6B4YX.js → chunk-DFZY4NAL.js} +3 -3
- package/dist/{chunk-2DLMZDDB.js → chunk-DOGRQEOM.js} +52 -9
- package/dist/chunk-DOGRQEOM.js.map +1 -0
- package/dist/{chunk-QW33U4EI.js → chunk-F477JTM2.js} +4 -4
- package/dist/{chunk-LDXKXBYN.js → chunk-G7FT3MCW.js} +2 -2
- package/dist/{chunk-2WQTCETP.js → chunk-GX2KTPXV.js} +2 -2
- package/dist/{chunk-IOZMMARY.js → chunk-H2K7JQOW.js} +2 -2
- package/dist/{chunk-U4KCWD3I.js → chunk-H2SWEPM3.js} +2 -2
- package/dist/{chunk-4RARO46V.js → chunk-HTKN3WER.js} +4 -4
- package/dist/{chunk-QAZM5ELA.js → chunk-JX4HNDGL.js} +2 -2
- package/dist/{chunk-TBVIOQ5O.js → chunk-KEFVC7WL.js} +2 -2
- package/dist/{chunk-IS5TDLAJ.js → chunk-KEYFDMOM.js} +2 -2
- package/dist/{chunk-WQC3YOER.js → chunk-LAQPE5RA.js} +3 -3
- package/dist/{chunk-LBOFTF6A.js → chunk-LXCTENG5.js} +25 -23
- package/dist/{chunk-LBOFTF6A.js.map → chunk-LXCTENG5.js.map} +1 -1
- package/dist/{chunk-EAGSRHRT.js → chunk-MVMSALBH.js} +2 -2
- package/dist/{chunk-4TMCQZNB.js → chunk-NBO7EVSO.js} +2 -2
- package/dist/{chunk-4TMCQZNB.js.map → chunk-NBO7EVSO.js.map} +1 -1
- package/dist/{chunk-SX2P5ZUP.js → chunk-NP5R3I25.js} +2 -2
- package/dist/{chunk-LN7GNFET.js → chunk-OPNTDMHH.js} +4 -4
- package/dist/{chunk-X4VPV3A7.js → chunk-P2ZUVNZ2.js} +2 -2
- package/dist/{chunk-GZDRJBI2.js → chunk-QFPPKZ5G.js} +2 -2
- package/dist/{chunk-MWUFDBWQ.js → chunk-QGR4P3P3.js} +2 -2
- package/dist/{chunk-XYHP2TFY.js → chunk-TH3AVISW.js} +2 -2
- package/dist/{chunk-35ZAMQ3A.js → chunk-WVGAOPMD.js} +7 -7
- package/dist/{chunk-OE2LFOYB.js → chunk-XQ5YMAAE.js} +2 -2
- package/dist/{chunk-TDT6J2X4.js → chunk-ZXL7SYO2.js} +2 -2
- package/dist/{client-Dh6yzCm4.d.ts → client-DUvmVWQJ.d.ts} +2 -1
- package/dist/client.cjs +86 -8
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +29 -29
- package/dist/core/client.cjs +1 -1
- package/dist/core/client.cjs.map +1 -1
- package/dist/core/client.js +4 -4
- package/dist/core/error.cjs +1 -1
- package/dist/core/error.cjs.map +1 -1
- package/dist/core/error.js +3 -3
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +4 -4
- package/dist/edge.cjs +37 -1
- package/dist/edge.cjs.map +1 -1
- package/dist/edge.d.ts +2 -2
- package/dist/edge.js +10 -8
- package/dist/git/client.cjs +1 -1
- package/dist/git/client.cjs.map +1 -1
- package/dist/git/client.js +5 -5
- package/dist/git/index.cjs +1 -1
- package/dist/git/index.cjs.map +1 -1
- package/dist/git/index.js +5 -5
- package/dist/index.cjs +86 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +31 -31
- package/dist/modelrouter/core.cjs +39 -3
- package/dist/modelrouter/core.cjs.map +1 -1
- package/dist/modelrouter/core.d.ts +15 -2
- package/dist/modelrouter/core.js +9 -7
- package/dist/modelrouter/index.cjs +39 -3
- package/dist/modelrouter/index.cjs.map +1 -1
- package/dist/modelrouter/index.d.ts +2 -2
- package/dist/modelrouter/index.js +9 -7
- package/dist/modelrouter/types.cjs.map +1 -1
- package/dist/modelrouter/types.d.ts +24 -1
- package/dist/subagents/anthropic.cjs +1 -1
- package/dist/subagents/anthropic.cjs.map +1 -1
- package/dist/subagents/anthropic.js +10 -10
- package/dist/subagents/vercel.cjs +1 -1
- package/dist/subagents/vercel.cjs.map +1 -1
- package/dist/subagents/vercel.js +10 -10
- package/dist/tools/browser/anthropic.cjs +1 -1
- package/dist/tools/browser/anthropic.cjs.map +1 -1
- package/dist/tools/browser/anthropic.js +7 -7
- package/dist/tools/browser/core.cjs +1 -1
- package/dist/tools/browser/core.cjs.map +1 -1
- package/dist/tools/browser/core.js +6 -6
- package/dist/tools/browser/index.cjs +1 -1
- package/dist/tools/browser/index.cjs.map +1 -1
- package/dist/tools/browser/index.js +9 -9
- package/dist/tools/browser/openai.cjs +1 -1
- package/dist/tools/browser/openai.cjs.map +1 -1
- package/dist/tools/browser/openai.js +7 -7
- package/dist/tools/browser/profiles/core.cjs +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/tools/browser/vercel.cjs.map +1 -1
- package/dist/tools/browser/vercel.js +7 -7
- package/dist/tools/codebase_search/anthropic.cjs +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/tools/codebase_search/index.cjs.map +1 -1
- package/dist/tools/codebase_search/index.js +8 -8
- package/dist/tools/codebase_search/openai.cjs +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/tools/compact/core.cjs.map +1 -1
- package/dist/tools/compact/core.js +5 -5
- package/dist/tools/compact/index.cjs +1 -1
- package/dist/tools/compact/index.cjs.map +1 -1
- package/dist/tools/compact/index.js +6 -6
- package/dist/tools/fastapply/anthropic.cjs +1 -1
- package/dist/tools/fastapply/anthropic.cjs.map +1 -1
- package/dist/tools/fastapply/anthropic.js +7 -7
- package/dist/tools/fastapply/apply.cjs +1 -1
- package/dist/tools/fastapply/apply.cjs.map +1 -1
- package/dist/tools/fastapply/apply.js +2 -2
- package/dist/tools/fastapply/core.cjs +1 -1
- package/dist/tools/fastapply/core.cjs.map +1 -1
- package/dist/tools/fastapply/core.js +6 -6
- package/dist/tools/fastapply/index.cjs +1 -1
- package/dist/tools/fastapply/index.cjs.map +1 -1
- package/dist/tools/fastapply/index.js +9 -9
- package/dist/tools/fastapply/openai.cjs +1 -1
- package/dist/tools/fastapply/openai.cjs.map +1 -1
- package/dist/tools/fastapply/openai.js +7 -7
- package/dist/tools/fastapply/vercel.cjs +1 -1
- package/dist/tools/fastapply/vercel.cjs.map +1 -1
- package/dist/tools/fastapply/vercel.js +7 -7
- package/dist/tools/index.cjs +1 -1
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.js +9 -9
- package/dist/tools/reflex/core.cjs +50 -7
- package/dist/tools/reflex/core.cjs.map +1 -1
- package/dist/tools/reflex/core.d.ts +6 -1
- package/dist/tools/reflex/core.js +5 -5
- package/dist/tools/reflex/index.cjs +50 -7
- package/dist/tools/reflex/index.cjs.map +1 -1
- package/dist/tools/reflex/index.js +5 -5
- package/dist/tools/reflex/types.cjs.map +1 -1
- package/dist/tools/reflex/types.d.ts +60 -4
- package/dist/tools/utils/resilience.cjs +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
- package/dist/tools/warp_grep/anthropic.js +10 -10
- package/dist/tools/warp_grep/client.cjs +1 -1
- package/dist/tools/warp_grep/client.cjs.map +1 -1
- package/dist/tools/warp_grep/client.js +9 -9
- package/dist/tools/warp_grep/gemini.cjs +1 -1
- package/dist/tools/warp_grep/gemini.cjs.map +1 -1
- package/dist/tools/warp_grep/gemini.js +9 -9
- package/dist/tools/warp_grep/harness.js +2 -2
- package/dist/tools/warp_grep/index.cjs +1 -1
- package/dist/tools/warp_grep/index.cjs.map +1 -1
- package/dist/tools/warp_grep/index.js +11 -11
- package/dist/tools/warp_grep/openai.cjs +1 -1
- package/dist/tools/warp_grep/openai.cjs.map +1 -1
- package/dist/tools/warp_grep/openai.js +10 -10
- package/dist/tools/warp_grep/providers/local.js +2 -2
- package/dist/tools/warp_grep/vercel.cjs +1 -1
- package/dist/tools/warp_grep/vercel.cjs.map +1 -1
- package/dist/tools/warp_grep/vercel.js +10 -10
- package/dist/tracing/index.cjs.map +1 -1
- package/dist/tracing/types.cjs.map +1 -1
- package/dist/tracing/types.d.ts +9 -8
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-2DLMZDDB.js.map +0 -1
- package/dist/chunk-D4XCP2ZE.js.map +0 -1
- /package/dist/{chunk-EJZFQAKT.js.map → chunk-27EP7ZJK.js.map} +0 -0
- /package/dist/{chunk-HXDITEO6.js.map → chunk-4WQGJMOW.js.map} +0 -0
- /package/dist/{chunk-BN4IHFWR.js.map → chunk-66X4NBG7.js.map} +0 -0
- /package/dist/{chunk-DFTKUEF5.js.map → chunk-7ICJYWTT.js.map} +0 -0
- /package/dist/{chunk-AERVDGON.js.map → chunk-BTIJDM7J.js.map} +0 -0
- /package/dist/{chunk-XEQZQTZR.js.map → chunk-C7HLMZXK.js.map} +0 -0
- /package/dist/{chunk-JG5MJI34.js.map → chunk-D4K2OZTC.js.map} +0 -0
- /package/dist/{chunk-GVN6B4YX.js.map → chunk-DFZY4NAL.js.map} +0 -0
- /package/dist/{chunk-QW33U4EI.js.map → chunk-F477JTM2.js.map} +0 -0
- /package/dist/{chunk-LDXKXBYN.js.map → chunk-G7FT3MCW.js.map} +0 -0
- /package/dist/{chunk-2WQTCETP.js.map → chunk-GX2KTPXV.js.map} +0 -0
- /package/dist/{chunk-IOZMMARY.js.map → chunk-H2K7JQOW.js.map} +0 -0
- /package/dist/{chunk-U4KCWD3I.js.map → chunk-H2SWEPM3.js.map} +0 -0
- /package/dist/{chunk-4RARO46V.js.map → chunk-HTKN3WER.js.map} +0 -0
- /package/dist/{chunk-QAZM5ELA.js.map → chunk-JX4HNDGL.js.map} +0 -0
- /package/dist/{chunk-TBVIOQ5O.js.map → chunk-KEFVC7WL.js.map} +0 -0
- /package/dist/{chunk-IS5TDLAJ.js.map → chunk-KEYFDMOM.js.map} +0 -0
- /package/dist/{chunk-WQC3YOER.js.map → chunk-LAQPE5RA.js.map} +0 -0
- /package/dist/{chunk-EAGSRHRT.js.map → chunk-MVMSALBH.js.map} +0 -0
- /package/dist/{chunk-SX2P5ZUP.js.map → chunk-NP5R3I25.js.map} +0 -0
- /package/dist/{chunk-LN7GNFET.js.map → chunk-OPNTDMHH.js.map} +0 -0
- /package/dist/{chunk-X4VPV3A7.js.map → chunk-P2ZUVNZ2.js.map} +0 -0
- /package/dist/{chunk-GZDRJBI2.js.map → chunk-QFPPKZ5G.js.map} +0 -0
- /package/dist/{chunk-MWUFDBWQ.js.map → chunk-QGR4P3P3.js.map} +0 -0
- /package/dist/{chunk-XYHP2TFY.js.map → chunk-TH3AVISW.js.map} +0 -0
- /package/dist/{chunk-35ZAMQ3A.js.map → chunk-WVGAOPMD.js.map} +0 -0
- /package/dist/{chunk-OE2LFOYB.js.map → chunk-XQ5YMAAE.js.map} +0 -0
- /package/dist/{chunk-TDT6J2X4.js.map → chunk-ZXL7SYO2.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeEditFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BTIJDM7J.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-27EP7ZJK.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-DFZY4NAL.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-4WQGJMOW.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-F3NCFNUX.js";
|
|
4
4
|
import {
|
|
5
5
|
SDK_VERSION
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-NBO7EVSO.js";
|
|
7
7
|
|
|
8
8
|
// tools/fastapply/apply.ts
|
|
9
9
|
import { createTwoFilesPatch } from "diff";
|
|
@@ -145,4 +145,4 @@ export {
|
|
|
145
145
|
callMorphAPI,
|
|
146
146
|
applyEdit
|
|
147
147
|
};
|
|
148
|
-
//# sourceMappingURL=chunk-
|
|
148
|
+
//# sourceMappingURL=chunk-66X4NBG7.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-YQMPVJ2L.js";
|
|
4
4
|
import {
|
|
5
5
|
executeCodebaseSearch
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DFZY4NAL.js";
|
|
7
7
|
|
|
8
8
|
// tools/codebase_search/vercel.ts
|
|
9
9
|
import { tool } from "ai";
|
|
@@ -55,4 +55,4 @@ export {
|
|
|
55
55
|
getSystemPrompt,
|
|
56
56
|
vercel_default
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-7ICJYWTT.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HTKN3WER.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-G7FT3MCW.js";
|
|
10
10
|
import {
|
|
11
11
|
APIResource
|
|
12
12
|
} from "./chunk-LKFZBBTD.js";
|
|
@@ -132,11 +132,46 @@ var RawRouter = class extends BaseRouter {
|
|
|
132
132
|
return { difficulty };
|
|
133
133
|
}
|
|
134
134
|
};
|
|
135
|
+
var RouterClassifier = class extends APIResource {
|
|
136
|
+
timeout;
|
|
137
|
+
constructor(clientOrConfig = {}) {
|
|
138
|
+
super(resolveClient(clientOrConfig));
|
|
139
|
+
const cfg = clientOrConfig instanceof MorphAPIClient ? {} : clientOrConfig;
|
|
140
|
+
this.timeout = cfg.timeout ?? DEFAULT_TIMEOUT;
|
|
141
|
+
}
|
|
142
|
+
/** Classify an input across the requested axes (all three by default). */
|
|
143
|
+
async classify(input) {
|
|
144
|
+
if (!this._client.resolveApiKey()) {
|
|
145
|
+
throw new Error(
|
|
146
|
+
"Morph API key is required. Set MORPH_API_KEY environment variable or pass apiKey in config."
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
logger.debug("RouterClassifier", "request", { classes: input.classes ?? "all" });
|
|
150
|
+
try {
|
|
151
|
+
const res = await this._client.post("/v1/router/classify", {
|
|
152
|
+
body: { input: input.input, ...input.classes ? { classes: input.classes } : {} },
|
|
153
|
+
timeout: this.timeout
|
|
154
|
+
});
|
|
155
|
+
logger.debug("RouterClassifier", "classified", {
|
|
156
|
+
difficulty: res.classifications.difficulty?.label,
|
|
157
|
+
ambiguity: res.classifications.ambiguity?.label,
|
|
158
|
+
domain: res.classifications.domain?.label
|
|
159
|
+
});
|
|
160
|
+
return res.classifications;
|
|
161
|
+
} catch (error) {
|
|
162
|
+
if (error instanceof MorphError) {
|
|
163
|
+
throw new Error(`Router API error (${error.statusCode}): ${error.message}`);
|
|
164
|
+
}
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
};
|
|
135
169
|
|
|
136
170
|
export {
|
|
137
171
|
OpenAIRouter,
|
|
138
172
|
AnthropicRouter,
|
|
139
173
|
GeminiRouter,
|
|
140
|
-
RawRouter
|
|
174
|
+
RawRouter,
|
|
175
|
+
RouterClassifier
|
|
141
176
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
177
|
+
//# sourceMappingURL=chunk-7JLPTKPQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../modelrouter/core.ts"],"sourcesContent":["/**\n * Core implementation for intelligent model routing.\n *\n * Routers are thin resources over the shared `MorphAPIClient` transport: they\n * POST to `/v1/router/<provider>` and map the response. Auth, retries, timeouts,\n * and the SDK-version header all live in the transport.\n */\nimport { MorphAPIClient } from '../core/client.js';\nimport { APIResource } from '../core/resource.js';\nimport { MorphError } from '../tools/utils/resilience.js';\nimport { logger } from '../logger.js';\nimport type {\n RouterConfig,\n RouterInput,\n RouterResult,\n RawRouterResult,\n ComplexityLevel,\n Provider,\n ClassifyInput,\n ClassifyResult,\n} from './types.js';\n\nconst DEFAULT_API_URL = 'https://api.morphllm.com';\nconst DEFAULT_TIMEOUT = 5000; // 5 seconds (responses typically <500ms)\n\nfunction resolveClient(clientOrConfig: MorphAPIClient | RouterConfig): MorphAPIClient {\n if (clientOrConfig instanceof MorphAPIClient) return clientOrConfig;\n return new MorphAPIClient({\n apiKey: clientOrConfig.apiKey,\n baseURL: clientOrConfig.apiUrl ?? DEFAULT_API_URL,\n timeout: clientOrConfig.timeout ?? DEFAULT_TIMEOUT,\n retryConfig: clientOrConfig.retryConfig,\n debug: clientOrConfig.debug,\n });\n}\n\nabstract class BaseRouter extends APIResource {\n protected provider: Provider;\n protected timeout: number;\n\n constructor(provider: Provider, clientOrConfig: MorphAPIClient | RouterConfig = {}) {\n super(resolveClient(clientOrConfig));\n this.provider = provider;\n const cfg = clientOrConfig instanceof MorphAPIClient ? {} : clientOrConfig;\n this.timeout = cfg.timeout ?? DEFAULT_TIMEOUT;\n }\n\n /** Throw the historical \"API key is required\" message when no key is resolvable. */\n protected requireApiKey(): void {\n if (!this._client.resolveApiKey()) {\n throw new Error(\n 'Morph API key is required. Set MORPH_API_KEY environment variable or pass apiKey in config.',\n );\n }\n }\n\n /** POST to the router and surface failures as `Router API error (<status>): ...`. */\n protected async route<T>(provider: string, input: RouterInput): Promise<T> {\n try {\n return await this._client.post<T>(`/v1/router/${provider}`, {\n body: { input: input.input, mode: input.mode || 'balanced' },\n timeout: this.timeout,\n });\n } catch (error) {\n if (error instanceof MorphError) {\n throw new Error(`Router API error (${error.statusCode}): ${error.message}`);\n }\n throw error;\n }\n }\n\n /**\n * Select the optimal model for a given input and mode\n */\n async selectModel(input: RouterInput): Promise<RouterResult> {\n this.requireApiKey();\n logger.debug('ModelRouter', 'request', { provider: this.provider, mode: input.mode || 'balanced' });\n const apiResult = await this.route<{ model: string; confidence?: number }>(this.provider, input);\n logger.debug('ModelRouter', 'selected', { provider: this.provider, model: apiResult.model });\n return { model: apiResult.model };\n }\n}\n\n/**\n * OpenAI model router for GPT-5 series\n *\n * @deprecated Prefer `MorphClient` (`new MorphClient({ apiKey }).routers.openai`). In edge\n * runtimes where `MorphClient` is unavailable, pass a shared transport:\n * `new OpenAIRouter(new MorphAPIClient({ apiKey }))`. Kept only for backwards compatibility.\n */\nexport class OpenAIRouter extends BaseRouter {\n constructor(clientOrConfig: MorphAPIClient | RouterConfig = {}) {\n super('openai', clientOrConfig);\n }\n\n /**\n * Select optimal GPT-5 model\n *\n * @param input - User input and mode\n * @returns Selected model name (gpt-5-mini | gpt-5-low | gpt-5-medium | gpt-5-high)\n */\n async selectModel(input: RouterInput): Promise<RouterResult> {\n return super.selectModel(input);\n }\n}\n\n/**\n * Anthropic model router for Claude 4.5 series\n *\n * @deprecated Prefer `MorphClient` (`new MorphClient({ apiKey }).routers.anthropic`). In edge\n * runtimes where `MorphClient` is unavailable, pass a shared transport:\n * `new AnthropicRouter(new MorphAPIClient({ apiKey }))`. Kept only for backwards compatibility.\n */\nexport class AnthropicRouter extends BaseRouter {\n constructor(clientOrConfig: MorphAPIClient | RouterConfig = {}) {\n super('anthropic', clientOrConfig);\n }\n\n /**\n * Select optimal Claude model\n *\n * @param input - User input and mode\n * @returns Selected model name (claude-4.5-haiku | claude-4.5-sonnet)\n */\n async selectModel(input: RouterInput): Promise<RouterResult> {\n return super.selectModel(input);\n }\n}\n\n/**\n * Google Gemini model router\n *\n * @deprecated Prefer `MorphClient` (`new MorphClient({ apiKey }).routers.gemini`). In edge\n * runtimes where `MorphClient` is unavailable, pass a shared transport:\n * `new GeminiRouter(new MorphAPIClient({ apiKey }))`. Kept only for backwards compatibility.\n */\nexport class GeminiRouter extends BaseRouter {\n constructor(clientOrConfig: MorphAPIClient | RouterConfig = {}) {\n super('gemini', clientOrConfig);\n }\n\n /**\n * Select optimal Gemini model\n *\n * @param input - User input and mode\n * @returns Selected model name (gemini-2.5-flash | gemini-2.5-pro)\n */\n async selectModel(input: RouterInput): Promise<RouterResult> {\n return super.selectModel(input);\n }\n}\n\n/**\n * Raw difficulty classification router (no provider-specific mapping)\n *\n * @deprecated Prefer `MorphClient` (`new MorphClient({ apiKey }).routers.raw`). In edge\n * runtimes where `MorphClient` is unavailable, pass a shared transport:\n * `new RawRouter(new MorphAPIClient({ apiKey }))`. Kept only for backwards compatibility.\n */\nexport class RawRouter extends BaseRouter {\n constructor(clientOrConfig: MorphAPIClient | RouterConfig = {}) {\n super('raw' as Provider, clientOrConfig);\n }\n\n /**\n * Get raw difficulty classification\n *\n * @param input - User input and mode\n * @returns Raw difficulty (easy | medium | hard | needs_info)\n */\n async classify(input: RouterInput): Promise<RawRouterResult> {\n this.requireApiKey();\n logger.debug('RawRouter', 'request', { mode: input.mode || 'balanced' });\n\n const apiResult = await this.route<{ model?: string; difficulty?: string; confidence?: number }>('raw', input);\n\n // Support both 'model' and 'difficulty' fields for compatibility.\n // Empty string from API means \"medium\" difficulty (API bug workaround).\n let difficulty: ComplexityLevel;\n if (apiResult.difficulty === '') {\n difficulty = 'medium';\n } else {\n difficulty = (apiResult.difficulty || apiResult.model) as ComplexityLevel;\n }\n\n logger.debug('RawRouter', 'classified', { difficulty });\n return { difficulty };\n }\n}\n\n/**\n * Classifier for `/v1/router/classify`.\n *\n * Returns the raw difficulty/ambiguity/domain signals without mapping them to a\n * model. The caller owns the policy — this is what `@morphllm/morphrouter` uses\n * so the routing matrix configured in the dashboard stays the source of truth.\n */\nexport class RouterClassifier extends APIResource {\n private timeout: number;\n\n constructor(clientOrConfig: MorphAPIClient | RouterConfig = {}) {\n super(resolveClient(clientOrConfig));\n const cfg = clientOrConfig instanceof MorphAPIClient ? {} : clientOrConfig;\n this.timeout = cfg.timeout ?? DEFAULT_TIMEOUT;\n }\n\n /** Classify an input across the requested axes (all three by default). */\n async classify(input: ClassifyInput): Promise<ClassifyResult> {\n if (!this._client.resolveApiKey()) {\n throw new Error(\n 'Morph API key is required. Set MORPH_API_KEY environment variable or pass apiKey in config.',\n );\n }\n logger.debug('RouterClassifier', 'request', { classes: input.classes ?? 'all' });\n try {\n const res = await this._client.post<{ classifications: ClassifyResult }>('/v1/router/classify', {\n body: { input: input.input, ...(input.classes ? { classes: input.classes } : {}) },\n timeout: this.timeout,\n });\n logger.debug('RouterClassifier', 'classified', {\n difficulty: res.classifications.difficulty?.label,\n ambiguity: res.classifications.ambiguity?.label,\n domain: res.classifications.domain?.label,\n });\n return res.classifications;\n } catch (error) {\n if (error instanceof MorphError) {\n throw new Error(`Router API error (${error.statusCode}): ${error.message}`);\n }\n throw error;\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HTKN3WER.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-BTIJDM7J.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WarpGrepClient,
|
|
3
3
|
formatResult
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WVGAOPMD.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-C7HLMZXK.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-DFZY4NAL.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-D4K2OZTC.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HTKN3WER.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-G7FT3MCW.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-DFZY4NAL.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HTKN3WER.js";
|
|
4
4
|
import {
|
|
5
5
|
MorphError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-G7FT3MCW.js";
|
|
7
7
|
import {
|
|
8
8
|
APIResource
|
|
9
9
|
} from "./chunk-LKFZBBTD.js";
|
|
@@ -29,15 +29,34 @@ var ReflexClient = class extends APIResource {
|
|
|
29
29
|
}
|
|
30
30
|
/** Classify text against a trained model. The model must be `succeeded`. */
|
|
31
31
|
async predict(input) {
|
|
32
|
+
const completionId = input.completionId ?? crypto.randomUUID();
|
|
32
33
|
const raw = await this._client.post("/v1/reflex/predict", {
|
|
33
|
-
body: { model: input.model, text: input.text }
|
|
34
|
+
body: { model: input.model, text: input.text },
|
|
35
|
+
headers: { "X-Completion-Id": completionId }
|
|
34
36
|
});
|
|
37
|
+
return toPredictResult(raw, completionId);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Record thumbs-up / thumbs-down feedback on a prediction. Reference the
|
|
41
|
+
* prediction by the `completionId` from `predict()` or by a stored `resultId`.
|
|
42
|
+
*/
|
|
43
|
+
async flag(input) {
|
|
44
|
+
if (!input.completionId && !input.resultId) {
|
|
45
|
+
throw new MorphError("flag() requires completionId or resultId", "reflex_flag_missing_ref");
|
|
46
|
+
}
|
|
47
|
+
const body = { good_or_bad: input.verdict };
|
|
48
|
+
if (input.completionId) body.completion_id = input.completionId;
|
|
49
|
+
if (input.resultId) body.result_id = input.resultId;
|
|
50
|
+
if (input.correctedLabel != null) body.corrected_label = input.correctedLabel;
|
|
51
|
+
if (input.reason != null) body.reason = input.reason;
|
|
52
|
+
if (input.score != null) body.score = input.score;
|
|
53
|
+
const raw = await this._client.post("/v1/reflex/predictions/flag", { body });
|
|
35
54
|
return {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
55
|
+
resultId: raw.result_id ?? null,
|
|
56
|
+
completionId: raw.completion_id ?? null,
|
|
57
|
+
verdict: raw.flagged_good_or_bad ?? null,
|
|
58
|
+
correctedLabel: raw.flagged_corrected_label ?? null,
|
|
59
|
+
flagged: Boolean(raw.flagged)
|
|
41
60
|
};
|
|
42
61
|
}
|
|
43
62
|
};
|
|
@@ -137,6 +156,30 @@ function toReflexJob(raw) {
|
|
|
137
156
|
suffix: raw.suffix ?? null
|
|
138
157
|
};
|
|
139
158
|
}
|
|
159
|
+
function toPredictResult(raw, completionId) {
|
|
160
|
+
const classes = (raw.classes ?? []).map((c) => ({
|
|
161
|
+
classId: c.class_id,
|
|
162
|
+
label: c.label,
|
|
163
|
+
score: c.score,
|
|
164
|
+
selected: c.selected
|
|
165
|
+
}));
|
|
166
|
+
const selectedClasses = classes.filter((c) => c.selected);
|
|
167
|
+
const top = selectedClasses.reduce(
|
|
168
|
+
(best, c) => best === null || c.score > best.score ? c : best,
|
|
169
|
+
null
|
|
170
|
+
);
|
|
171
|
+
return {
|
|
172
|
+
model: raw.model,
|
|
173
|
+
mode: raw.mode === "multi_label" ? "multi_label" : "single_label",
|
|
174
|
+
classes,
|
|
175
|
+
selected: selectedClasses.map((c) => c.label),
|
|
176
|
+
label: top ? top.label : null,
|
|
177
|
+
confidence: top ? top.score : null,
|
|
178
|
+
allScores: classes.map((c) => c.score),
|
|
179
|
+
inferenceTimeMs: raw.inference_time_ms,
|
|
180
|
+
completionId
|
|
181
|
+
};
|
|
182
|
+
}
|
|
140
183
|
function toReflexEvent(raw) {
|
|
141
184
|
return {
|
|
142
185
|
id: raw.id,
|
|
@@ -155,4 +198,4 @@ export {
|
|
|
155
198
|
ReflexClient,
|
|
156
199
|
ReflexJobsResource
|
|
157
200
|
};
|
|
158
|
-
//# sourceMappingURL=chunk-
|
|
201
|
+
//# sourceMappingURL=chunk-DOGRQEOM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../tools/reflex/core.ts"],"sourcesContent":["/**\n * Reflex: train and serve small text classifiers.\n *\n * const morph = new MorphClient({ apiKey });\n * const job = await morph.reflex.jobs.create({ trainingData: rows, suffix: 'support' });\n * const ready = await morph.reflex.jobs.waitForReady(job.id);\n * const out = await morph.reflex.predict({ model: ready.fineTunedModel!, text: 'refund please' });\n *\n * Mirrors the OpenAI fine-tuning shape (`reflex.jobs.create/retrieve/list/cancel/delete`)\n * plus `reflex.predict`. All HTTP goes through the shared `MorphAPIClient` transport.\n */\nimport { MorphAPIClient } from '../../core/client.js';\nimport { APIResource } from '../../core/resource.js';\nimport { MorphError } from '../utils/resilience.js';\nimport type {\n CreateReflexJobInput,\n DeletedReflexJob,\n ListReflexJobsInput,\n ReflexConfig,\n ReflexEvent,\n ReflexFlagInput,\n ReflexFlagResult,\n ReflexJob,\n ReflexJobList,\n ReflexPredictClass,\n ReflexPredictInput,\n ReflexPredictResult,\n} from './types.js';\n\nconst BASE_MODEL = 'morph-reflex-v1';\n\n/** Build a transport from either a shared client or a standalone `ReflexConfig`. */\nfunction resolveClient(clientOrConfig: MorphAPIClient | ReflexConfig): MorphAPIClient {\n if (clientOrConfig instanceof MorphAPIClient) return clientOrConfig;\n return new MorphAPIClient({\n apiKey: clientOrConfig.apiKey,\n baseURL: clientOrConfig.baseUrl,\n timeout: clientOrConfig.timeout,\n retryConfig: clientOrConfig.retryConfig,\n debug: clientOrConfig.debug,\n });\n}\n\n/**\n * @deprecated Prefer the unified `MorphClient` (`new MorphClient({ apiKey }).reflex`).\n * Standalone clients remain only for backwards compatibility and may be removed in a future\n * major version — do not use them in new code.\n */\nexport class ReflexClient extends APIResource {\n /** Train, retrieve, and manage classifier jobs. */\n public readonly jobs: ReflexJobsResource;\n\n constructor(clientOrConfig: MorphAPIClient | ReflexConfig = {}) {\n super(resolveClient(clientOrConfig));\n this.jobs = new ReflexJobsResource(this._client);\n }\n\n /** Classify text against a trained model. The model must be `succeeded`. */\n async predict(input: ReflexPredictInput): Promise<ReflexPredictResult> {\n const completionId = input.completionId ?? crypto.randomUUID();\n const raw = await this._client.post<RawPredict>('/v1/reflex/predict', {\n body: { model: input.model, text: input.text },\n headers: { 'X-Completion-Id': completionId },\n });\n return toPredictResult(raw, completionId);\n }\n\n /**\n * Record thumbs-up / thumbs-down feedback on a prediction. Reference the\n * prediction by the `completionId` from `predict()` or by a stored `resultId`.\n */\n async flag(input: ReflexFlagInput): Promise<ReflexFlagResult> {\n if (!input.completionId && !input.resultId) {\n throw new MorphError('flag() requires completionId or resultId', 'reflex_flag_missing_ref');\n }\n const body: Record<string, unknown> = { good_or_bad: input.verdict };\n if (input.completionId) body.completion_id = input.completionId;\n if (input.resultId) body.result_id = input.resultId;\n if (input.correctedLabel != null) body.corrected_label = input.correctedLabel;\n if (input.reason != null) body.reason = input.reason;\n if (input.score != null) body.score = input.score;\n\n const raw = await this._client.post<RawFlag>('/v1/reflex/predictions/flag', { body });\n return {\n resultId: raw.result_id ?? null,\n completionId: raw.completion_id ?? null,\n verdict: raw.flagged_good_or_bad ?? null,\n correctedLabel: raw.flagged_corrected_label ?? null,\n flagged: Boolean(raw.flagged),\n };\n }\n}\n\nexport class ReflexJobsResource extends APIResource {\n /** Start a training job from labeled data, a description, or unlabeled text. */\n async create(input: CreateReflexJobInput): Promise<ReflexJob> {\n return toReflexJob(await this._client.post<RawJob>('/v1/fine_tuning/jobs', { body: createBody(input) }));\n }\n\n /** Fetch a job by id. */\n async retrieve(id: string): Promise<ReflexJob> {\n return toReflexJob(await this._client.get<RawJob>(`/v1/fine_tuning/jobs/${encodeURIComponent(id)}`));\n }\n\n /** List the caller's jobs, newest first. */\n async list(input: ListReflexJobsInput = {}): Promise<ReflexJobList> {\n const raw = await this._client.get<RawJobList>('/v1/fine_tuning/jobs', {\n query: { limit: input.limit, after: input.after },\n });\n return { data: (raw.data ?? []).map(toReflexJob), hasMore: Boolean(raw.has_more) };\n }\n\n /** Stop a queued or running job. */\n async cancel(id: string): Promise<ReflexJob> {\n return toReflexJob(await this._client.post<RawJob>(`/v1/fine_tuning/jobs/${encodeURIComponent(id)}/cancel`));\n }\n\n /** Delete a job and its trained model. */\n async delete(id: string): Promise<DeletedReflexJob> {\n const raw = await this._client.delete<{ id: string; deleted?: boolean }>(\n `/v1/fine_tuning/jobs/${encodeURIComponent(id)}`,\n );\n return { id: raw.id, deleted: Boolean(raw.deleted) };\n }\n\n /** The training loss curve as events, plus a terminal event. */\n async events(id: string): Promise<ReflexEvent[]> {\n const raw = await this._client.get<{ data?: RawEvent[] }>(\n `/v1/fine_tuning/jobs/${encodeURIComponent(id)}/events`,\n );\n return (raw.data ?? []).map(toReflexEvent);\n }\n\n /**\n * Poll until the job reaches a terminal status and return it on success.\n * Throws a `MorphError` if it fails, is cancelled, or exceeds `timeoutMs`.\n */\n async waitForReady(id: string, opts: { pollMs?: number; timeoutMs?: number } = {}): Promise<ReflexJob> {\n const pollMs = opts.pollMs ?? 3_000;\n const deadline = Date.now() + (opts.timeoutMs ?? 15 * 60_000);\n\n for (;;) {\n const job = await this.retrieve(id);\n if (job.status === 'succeeded') return job;\n if (job.status === 'failed' || job.status === 'cancelled') {\n throw new MorphError(job.error?.message ?? `Reflex job ${job.status}`, `reflex_job_${job.status}`);\n }\n if (Date.now() >= deadline) {\n throw new MorphError(`Reflex job ${id} did not finish in time`, 'reflex_timeout');\n }\n await sleep(pollMs);\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Mapping (camelCase <-> snake_case) and helpers\n// ---------------------------------------------------------------------------\n\ninterface RawJob {\n id: string;\n model: string;\n created_at: number;\n finished_at: number | null;\n fine_tuned_model: string | null;\n status: ReflexJob['status'];\n labels?: string[];\n trained_examples?: number;\n result?: { accuracy: number | null; f1_score: number | null } | null;\n error?: { message: string } | null;\n suffix?: string | null;\n}\ninterface RawJobList {\n data?: RawJob[];\n has_more?: boolean;\n}\ninterface RawPredictClass {\n class_id: number;\n label: string;\n score: number;\n selected: boolean;\n}\ninterface RawPredict {\n model: string;\n mode?: string;\n classes?: RawPredictClass[];\n inference_time_ms: number;\n}\ninterface RawFlag {\n result_id?: string | null;\n completion_id?: string | null;\n flagged?: boolean;\n flagged_good_or_bad?: 'good' | 'bad' | null;\n flagged_corrected_label?: string | null;\n}\ninterface RawEvent {\n id: string;\n created_at: number;\n level: ReflexEvent['level'];\n message: string;\n type: ReflexEvent['type'];\n data?: { epoch?: number; step?: number; train_loss?: number };\n}\n\nfunction createBody(input: CreateReflexJobInput): Record<string, unknown> {\n const base: Record<string, unknown> = { model: BASE_MODEL };\n if (input.suffix) base.suffix = input.suffix;\n\n if ('trainingData' in input) {\n if (input.labels) base.labels = input.labels;\n return { ...base, training_data: input.trainingData };\n }\n if ('generate' in input) {\n return {\n ...base,\n labels: input.labels,\n generate: {\n description: input.generate.description,\n ...(input.generate.examplesPerLabel != null ? { examples_per_label: input.generate.examplesPerLabel } : {}),\n },\n };\n }\n return {\n ...base,\n labels: input.labels,\n label_data: {\n texts: input.labelData.texts,\n ...(input.labelData.description ? { description: input.labelData.description } : {}),\n },\n };\n}\n\nfunction toReflexJob(raw: RawJob): ReflexJob {\n return {\n id: raw.id,\n object: 'fine_tuning.job',\n model: raw.model,\n createdAt: raw.created_at,\n finishedAt: raw.finished_at ?? null,\n fineTunedModel: raw.fine_tuned_model ?? null,\n status: raw.status,\n labels: raw.labels ?? [],\n trainedExamples: raw.trained_examples ?? 0,\n result: raw.result ? { accuracy: raw.result.accuracy ?? null, f1Score: raw.result.f1_score ?? null } : null,\n error: raw.error ? { message: raw.error.message } : null,\n suffix: raw.suffix ?? null,\n };\n}\n\nfunction toPredictResult(raw: RawPredict, completionId: string): ReflexPredictResult {\n const classes: ReflexPredictClass[] = (raw.classes ?? []).map(c => ({\n classId: c.class_id,\n label: c.label,\n score: c.score,\n selected: c.selected,\n }));\n const selectedClasses = classes.filter(c => c.selected);\n // Top selected class by score derives the back-compat label/confidence.\n const top = selectedClasses.reduce<ReflexPredictClass | null>(\n (best, c) => (best === null || c.score > best.score ? c : best),\n null,\n );\n return {\n model: raw.model,\n mode: raw.mode === 'multi_label' ? 'multi_label' : 'single_label',\n classes,\n selected: selectedClasses.map(c => c.label),\n label: top ? top.label : null,\n confidence: top ? top.score : null,\n allScores: classes.map(c => c.score),\n inferenceTimeMs: raw.inference_time_ms,\n completionId,\n };\n}\n\nfunction toReflexEvent(raw: RawEvent): ReflexEvent {\n return {\n id: raw.id,\n createdAt: raw.created_at,\n level: raw.level,\n message: raw.message,\n type: raw.type,\n data: { epoch: raw.data?.epoch ?? 0, step: raw.data?.step ?? 0, trainLoss: raw.data?.train_loss ?? 0 },\n };\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ProfilesClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZXL7SYO2.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-HTKN3WER.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-G7FT3MCW.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-F477JTM2.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SDK_VERSION
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NBO7EVSO.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-G7FT3MCW.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeEditFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BTIJDM7J.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-GX2KTPXV.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeEditFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BTIJDM7J.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-H2K7JQOW.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-F477JTM2.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-H2SWEPM3.js.map
|
|
@@ -3,15 +3,15 @@ import {
|
|
|
3
3
|
} from "./chunk-F3NCFNUX.js";
|
|
4
4
|
import {
|
|
5
5
|
toMorphError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-P2ZUVNZ2.js";
|
|
7
7
|
import {
|
|
8
8
|
MorphError,
|
|
9
9
|
fetchWithRetry,
|
|
10
10
|
withTimeout
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-G7FT3MCW.js";
|
|
12
12
|
import {
|
|
13
13
|
SDK_VERSION
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-NBO7EVSO.js";
|
|
15
15
|
|
|
16
16
|
// core/client.ts
|
|
17
17
|
var DEFAULT_BASE_URL = "https://api.morphllm.com";
|
|
@@ -117,4 +117,4 @@ var MorphAPIClient = class {
|
|
|
117
117
|
export {
|
|
118
118
|
MorphAPIClient
|
|
119
119
|
};
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
120
|
+
//# sourceMappingURL=chunk-HTKN3WER.js.map
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
executeToolCall,
|
|
15
15
|
formatGitHubReadFileResult,
|
|
16
16
|
formatResult
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-WVGAOPMD.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-JX4HNDGL.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CompactClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LAQPE5RA.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-KEFVC7WL.js.map
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
executeToolCall,
|
|
15
15
|
formatGitHubReadFileResult,
|
|
16
16
|
formatResult
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-WVGAOPMD.js";
|
|
18
18
|
|
|
19
19
|
// tools/warp_grep/anthropic.ts
|
|
20
20
|
var INPUT_SCHEMA = {
|
|
@@ -90,4 +90,4 @@ export {
|
|
|
90
90
|
createGitHubSearchTool,
|
|
91
91
|
createGitHubReadFileTool
|
|
92
92
|
};
|
|
93
|
-
//# sourceMappingURL=chunk-
|
|
93
|
+
//# sourceMappingURL=chunk-KEYFDMOM.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MorphAPIClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HTKN3WER.js";
|
|
4
4
|
import {
|
|
5
5
|
MorphError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-G7FT3MCW.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-LAQPE5RA.js.map
|
|
@@ -1,69 +1,70 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createGitHubSearchTool as createGitHubSearchTool3,
|
|
3
3
|
createWarpGrepTool as createWarpGrepTool3
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XQ5YMAAE.js";
|
|
5
5
|
import {
|
|
6
6
|
createGitHubSearchTool as createGitHubSearchTool2,
|
|
7
7
|
createWarpGrepTool as createWarpGrepTool2
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KEYFDMOM.js";
|
|
9
9
|
import {
|
|
10
10
|
createGitHubSearchTool,
|
|
11
11
|
createWarpGrepTool
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JX4HNDGL.js";
|
|
13
13
|
import {
|
|
14
14
|
ReflexClient
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-DOGRQEOM.js";
|
|
16
16
|
import {
|
|
17
17
|
createCodebaseSearchTool as createCodebaseSearchTool3
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7ICJYWTT.js";
|
|
19
19
|
import {
|
|
20
20
|
createCodebaseSearchTool as createCodebaseSearchTool2
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4WQGJMOW.js";
|
|
22
22
|
import {
|
|
23
23
|
createCodebaseSearchTool
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-D4K2OZTC.js";
|
|
25
25
|
import {
|
|
26
26
|
CodebaseSearchClient
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-DFZY4NAL.js";
|
|
28
28
|
import {
|
|
29
29
|
BrowserClient
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-F477JTM2.js";
|
|
31
31
|
import {
|
|
32
32
|
createExploreSubagent as createExploreSubagent2
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-QFPPKZ5G.js";
|
|
34
34
|
import {
|
|
35
35
|
createEditFileTool
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-GX2KTPXV.js";
|
|
37
37
|
import {
|
|
38
38
|
createEditFileTool as createEditFileTool3
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-27EP7ZJK.js";
|
|
40
40
|
import {
|
|
41
41
|
createEditFileTool as createEditFileTool2
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-H2K7JQOW.js";
|
|
43
43
|
import {
|
|
44
44
|
FastApplyClient
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-BTIJDM7J.js";
|
|
46
46
|
import {
|
|
47
47
|
MorphGit
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-TH3AVISW.js";
|
|
49
49
|
import {
|
|
50
50
|
createExploreSubagent
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-C7HLMZXK.js";
|
|
52
52
|
import {
|
|
53
53
|
WarpGrepClient
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-WVGAOPMD.js";
|
|
55
55
|
import {
|
|
56
56
|
AnthropicRouter,
|
|
57
57
|
GeminiRouter,
|
|
58
58
|
OpenAIRouter,
|
|
59
|
-
RawRouter
|
|
60
|
-
|
|
59
|
+
RawRouter,
|
|
60
|
+
RouterClassifier
|
|
61
|
+
} from "./chunk-7JLPTKPQ.js";
|
|
61
62
|
import {
|
|
62
63
|
CompactClient
|
|
63
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-LAQPE5RA.js";
|
|
64
65
|
import {
|
|
65
66
|
MorphAPIClient
|
|
66
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-HTKN3WER.js";
|
|
67
68
|
import {
|
|
68
69
|
logger
|
|
69
70
|
} from "./chunk-F3NCFNUX.js";
|
|
@@ -665,7 +666,8 @@ var MorphClient = class extends MorphAPIClient {
|
|
|
665
666
|
openai: new OpenAIRouter(this),
|
|
666
667
|
anthropic: new AnthropicRouter(this),
|
|
667
668
|
gemini: new GeminiRouter(this),
|
|
668
|
-
raw: new RawRouter(this)
|
|
669
|
+
raw: new RawRouter(this),
|
|
670
|
+
classify: new RouterClassifier(this)
|
|
669
671
|
};
|
|
670
672
|
const compactClient = new CompactClient(this);
|
|
671
673
|
this.compact = compactClient.compact.bind(compactClient);
|
|
@@ -687,4 +689,4 @@ export {
|
|
|
687
689
|
VercelToolFactory,
|
|
688
690
|
MorphClient
|
|
689
691
|
};
|
|
690
|
-
//# sourceMappingURL=chunk-
|
|
692
|
+
//# sourceMappingURL=chunk-LXCTENG5.js.map
|