@morphllm/morphsdk 0.2.161 → 0.2.163
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-JIPYZNK3.js → chunk-2KDJKRZG.js} +2 -2
- package/dist/chunk-5AM23TC7.js +42 -0
- package/dist/chunk-5AM23TC7.js.map +1 -0
- package/dist/{chunk-PQXJ32G4.js → chunk-5BMWOPYW.js} +2 -2
- package/dist/{chunk-F2SBKBBS.js → chunk-5FYJMU6H.js} +2 -2
- package/dist/{chunk-KP3CAEH5.js → chunk-6PFGM4CM.js} +2 -2
- package/dist/{chunk-5R3QCYHW.js → chunk-6YOSNPHS.js} +2 -2
- package/dist/{chunk-G3E75GPM.js → chunk-6YTCBLRI.js} +2 -2
- package/dist/{chunk-2CE4PG2F.js → chunk-COUYHTIO.js} +2 -2
- package/dist/{chunk-KCJRKSMG.js → chunk-CUMC7Z5R.js} +11 -26
- package/dist/chunk-CUMC7Z5R.js.map +1 -0
- package/dist/{chunk-HDZ4XYUX.js → chunk-EJBWDGTH.js} +2 -2
- package/dist/{chunk-DKQMGEHV.js → chunk-FNCPPCPV.js} +2 -2
- package/dist/{chunk-IHSLH64T.js → chunk-FQXUOZBX.js} +9 -12
- package/dist/chunk-FQXUOZBX.js.map +1 -0
- package/dist/{chunk-27VVVW57.js → chunk-HBH56DLN.js} +2 -2
- package/dist/{chunk-5GVI7L4O.js → chunk-HFN3YCF4.js} +2 -2
- package/dist/{chunk-QQBEGCX2.js → chunk-HMGC7FLZ.js} +2 -2
- package/dist/{chunk-KF2AYKGJ.js → chunk-KHR4CZMX.js} +24 -17
- package/dist/{chunk-KF2AYKGJ.js.map → chunk-KHR4CZMX.js.map} +1 -1
- package/dist/{chunk-LGF2WTXG.js → chunk-LSHQISAX.js} +9 -2
- package/dist/chunk-LSHQISAX.js.map +1 -0
- package/dist/{chunk-L6WYOSFK.js → chunk-LST7MZOZ.js} +7 -2
- package/dist/chunk-LST7MZOZ.js.map +1 -0
- package/dist/{chunk-63JAZOI3.js → chunk-LW5EAPZ6.js} +2 -2
- package/dist/{chunk-N4EFVT45.js → chunk-NNATBEOF.js} +2 -2
- package/dist/{chunk-RZS5DQAX.js → chunk-OKFW4KGU.js} +2 -2
- package/dist/{chunk-QR34LBOS.js → chunk-QXGOEDZD.js} +2 -2
- package/dist/{chunk-442YHCTX.js → chunk-SELI567A.js} +12 -21
- package/dist/chunk-SELI567A.js.map +1 -0
- package/dist/{chunk-VM4TVOBU.js → chunk-VMNEYCFP.js} +17 -6
- package/dist/chunk-VMNEYCFP.js.map +1 -0
- package/dist/{chunk-NBGHPRU6.js → chunk-WM6SBI4B.js} +37 -29
- package/dist/chunk-WM6SBI4B.js.map +1 -0
- package/dist/{chunk-CMRUAJYD.js → chunk-ZMCDGAGF.js} +33 -6
- package/dist/chunk-ZMCDGAGF.js.map +1 -0
- package/dist/client.cjs +186 -117
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +23 -22
- package/dist/edge.cjs +84 -52
- package/dist/edge.cjs.map +1 -1
- package/dist/edge.js +5 -4
- package/dist/index.cjs +188 -117
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +23 -22
- package/dist/modelrouter/core.cjs +50 -25
- package/dist/modelrouter/core.cjs.map +1 -1
- package/dist/modelrouter/core.js +4 -3
- package/dist/modelrouter/index.cjs +50 -25
- package/dist/modelrouter/index.cjs.map +1 -1
- package/dist/modelrouter/index.js +4 -3
- package/dist/subagents/anthropic.cjs +85 -12
- package/dist/subagents/anthropic.cjs.map +1 -1
- package/dist/subagents/anthropic.js +5 -4
- package/dist/subagents/vercel.cjs +85 -12
- package/dist/subagents/vercel.cjs.map +1 -1
- package/dist/subagents/vercel.js +5 -4
- package/dist/tools/browser/anthropic.cjs +47 -9
- package/dist/tools/browser/anthropic.cjs.map +1 -1
- package/dist/tools/browser/anthropic.js +6 -5
- package/dist/tools/browser/core.cjs +50 -19
- package/dist/tools/browser/core.cjs.map +1 -1
- package/dist/tools/browser/core.js +5 -4
- package/dist/tools/browser/index.cjs +50 -19
- package/dist/tools/browser/index.cjs.map +1 -1
- package/dist/tools/browser/index.js +8 -7
- package/dist/tools/browser/index.js.map +1 -1
- package/dist/tools/browser/openai.cjs +47 -9
- package/dist/tools/browser/openai.cjs.map +1 -1
- package/dist/tools/browser/openai.js +6 -5
- package/dist/tools/browser/profiles/core.cjs +6 -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 +6 -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 +47 -9
- package/dist/tools/browser/vercel.cjs.map +1 -1
- package/dist/tools/browser/vercel.js +6 -5
- package/dist/tools/codebase_search/anthropic.cjs +48 -11
- package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
- package/dist/tools/codebase_search/anthropic.js +5 -4
- package/dist/tools/codebase_search/core.cjs +48 -11
- package/dist/tools/codebase_search/core.cjs.map +1 -1
- package/dist/tools/codebase_search/core.js +4 -3
- package/dist/tools/codebase_search/index.cjs +48 -11
- package/dist/tools/codebase_search/index.cjs.map +1 -1
- package/dist/tools/codebase_search/index.js +7 -6
- package/dist/tools/codebase_search/openai.cjs +48 -11
- package/dist/tools/codebase_search/openai.cjs.map +1 -1
- package/dist/tools/codebase_search/openai.js +5 -4
- package/dist/tools/codebase_search/vercel.cjs +48 -11
- package/dist/tools/codebase_search/vercel.cjs.map +1 -1
- package/dist/tools/codebase_search/vercel.js +5 -4
- package/dist/tools/fastapply/anthropic.cjs +96 -33
- package/dist/tools/fastapply/anthropic.cjs.map +1 -1
- package/dist/tools/fastapply/anthropic.js +5 -4
- package/dist/tools/fastapply/apply.cjs +76 -28
- package/dist/tools/fastapply/apply.cjs.map +1 -1
- package/dist/tools/fastapply/apply.js +3 -2
- package/dist/tools/fastapply/core.cjs +96 -33
- package/dist/tools/fastapply/core.cjs.map +1 -1
- package/dist/tools/fastapply/core.js +4 -3
- package/dist/tools/fastapply/index.cjs +96 -33
- package/dist/tools/fastapply/index.cjs.map +1 -1
- package/dist/tools/fastapply/index.js +7 -6
- package/dist/tools/fastapply/openai.cjs +96 -33
- package/dist/tools/fastapply/openai.cjs.map +1 -1
- package/dist/tools/fastapply/openai.js +5 -4
- package/dist/tools/fastapply/types.cjs.map +1 -1
- package/dist/tools/fastapply/types.d.ts +4 -4
- package/dist/tools/fastapply/vercel.cjs +96 -33
- package/dist/tools/fastapply/vercel.cjs.map +1 -1
- package/dist/tools/fastapply/vercel.js +5 -4
- package/dist/tools/index.cjs +96 -33
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.js +7 -6
- package/dist/tools/utils/resilience.cjs +6 -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 +74 -5
- package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
- package/dist/tools/warp_grep/agent/runner.js +3 -2
- package/dist/tools/warp_grep/anthropic.cjs +85 -12
- package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
- package/dist/tools/warp_grep/anthropic.js +5 -4
- package/dist/tools/warp_grep/client.cjs +85 -12
- package/dist/tools/warp_grep/client.cjs.map +1 -1
- package/dist/tools/warp_grep/client.js +4 -3
- package/dist/tools/warp_grep/gemini.cjs +85 -12
- package/dist/tools/warp_grep/gemini.cjs.map +1 -1
- package/dist/tools/warp_grep/gemini.js +4 -3
- package/dist/tools/warp_grep/gemini.js.map +1 -1
- package/dist/tools/warp_grep/index.cjs +85 -12
- package/dist/tools/warp_grep/index.cjs.map +1 -1
- package/dist/tools/warp_grep/index.js +4 -3
- package/dist/tools/warp_grep/openai.cjs +85 -12
- package/dist/tools/warp_grep/openai.cjs.map +1 -1
- package/dist/tools/warp_grep/openai.js +5 -4
- package/dist/tools/warp_grep/vercel.cjs +85 -12
- package/dist/tools/warp_grep/vercel.cjs.map +1 -1
- package/dist/tools/warp_grep/vercel.d.ts +1 -1
- package/dist/tools/warp_grep/vercel.js +5 -4
- package/dist/version.cjs +6 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -1
- package/dist/chunk-442YHCTX.js.map +0 -1
- package/dist/chunk-CMRUAJYD.js.map +0 -1
- package/dist/chunk-IHSLH64T.js.map +0 -1
- package/dist/chunk-KCJRKSMG.js.map +0 -1
- package/dist/chunk-L6WYOSFK.js.map +0 -1
- package/dist/chunk-LGF2WTXG.js.map +0 -1
- package/dist/chunk-NBGHPRU6.js.map +0 -1
- package/dist/chunk-VM4TVOBU.js.map +0 -1
- package/dist/{chunk-JIPYZNK3.js.map → chunk-2KDJKRZG.js.map} +0 -0
- package/dist/{chunk-PQXJ32G4.js.map → chunk-5BMWOPYW.js.map} +0 -0
- package/dist/{chunk-F2SBKBBS.js.map → chunk-5FYJMU6H.js.map} +0 -0
- package/dist/{chunk-KP3CAEH5.js.map → chunk-6PFGM4CM.js.map} +0 -0
- package/dist/{chunk-5R3QCYHW.js.map → chunk-6YOSNPHS.js.map} +0 -0
- package/dist/{chunk-G3E75GPM.js.map → chunk-6YTCBLRI.js.map} +0 -0
- package/dist/{chunk-2CE4PG2F.js.map → chunk-COUYHTIO.js.map} +0 -0
- package/dist/{chunk-HDZ4XYUX.js.map → chunk-EJBWDGTH.js.map} +0 -0
- package/dist/{chunk-DKQMGEHV.js.map → chunk-FNCPPCPV.js.map} +0 -0
- package/dist/{chunk-27VVVW57.js.map → chunk-HBH56DLN.js.map} +0 -0
- package/dist/{chunk-5GVI7L4O.js.map → chunk-HFN3YCF4.js.map} +0 -0
- package/dist/{chunk-QQBEGCX2.js.map → chunk-HMGC7FLZ.js.map} +0 -0
- package/dist/{chunk-63JAZOI3.js.map → chunk-LW5EAPZ6.js.map} +0 -0
- package/dist/{chunk-N4EFVT45.js.map → chunk-NNATBEOF.js.map} +0 -0
- package/dist/{chunk-RZS5DQAX.js.map → chunk-OKFW4KGU.js.map} +0 -0
- package/dist/{chunk-QR34LBOS.js.map → chunk-QXGOEDZD.js.map} +0 -0
- package/dist/{client-PkB7g9SA.d.ts → client-DsAAqupx.d.ts} +1 -1
|
@@ -34,7 +34,7 @@ module.exports = __toCommonJS(core_exports);
|
|
|
34
34
|
// package.json
|
|
35
35
|
var package_default = {
|
|
36
36
|
name: "@morphllm/morphsdk",
|
|
37
|
-
version: "0.2.
|
|
37
|
+
version: "0.2.163",
|
|
38
38
|
description: "TypeScript SDK and CLI for Morph Fast Apply integration",
|
|
39
39
|
type: "module",
|
|
40
40
|
main: "./dist/index.cjs",
|
|
@@ -46,6 +46,11 @@ var package_default = {
|
|
|
46
46
|
import: "./dist/index.js",
|
|
47
47
|
require: "./dist/index.cjs"
|
|
48
48
|
},
|
|
49
|
+
"./logger": {
|
|
50
|
+
types: "./dist/logger.d.ts",
|
|
51
|
+
import: "./dist/logger.js",
|
|
52
|
+
require: "./dist/logger.cjs"
|
|
53
|
+
},
|
|
49
54
|
"./edge": {
|
|
50
55
|
types: "./dist/edge.d.ts",
|
|
51
56
|
import: "./dist/edge.js",
|
|
@@ -347,6 +352,44 @@ function sleep(ms) {
|
|
|
347
352
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
348
353
|
}
|
|
349
354
|
|
|
355
|
+
// logger.ts
|
|
356
|
+
var import_fs = require("fs");
|
|
357
|
+
var MorphLogger = class {
|
|
358
|
+
enabled;
|
|
359
|
+
fileStream;
|
|
360
|
+
constructor() {
|
|
361
|
+
this.enabled = process.env.MORPH_DEBUG === "1" || !!process.env.MORPH_LOG_FILE;
|
|
362
|
+
const f = process.env.MORPH_LOG_FILE;
|
|
363
|
+
this.fileStream = f ? (0, import_fs.createWriteStream)(f, { flags: "a" }) : null;
|
|
364
|
+
}
|
|
365
|
+
debug(component, msg, data) {
|
|
366
|
+
this._log("debug", component, msg, data);
|
|
367
|
+
}
|
|
368
|
+
info(component, msg, data) {
|
|
369
|
+
this._log("info", component, msg, data);
|
|
370
|
+
}
|
|
371
|
+
warn(component, msg, data) {
|
|
372
|
+
this._log("warn", component, msg, data);
|
|
373
|
+
}
|
|
374
|
+
error(component, msg, data) {
|
|
375
|
+
this._log("error", component, msg, data);
|
|
376
|
+
}
|
|
377
|
+
enable() {
|
|
378
|
+
this.enabled = true;
|
|
379
|
+
}
|
|
380
|
+
get isEnabled() {
|
|
381
|
+
return this.enabled;
|
|
382
|
+
}
|
|
383
|
+
_log(level, component, msg, data) {
|
|
384
|
+
if (level !== "error" && !this.enabled) return;
|
|
385
|
+
const ts = (/* @__PURE__ */ new Date()).toISOString();
|
|
386
|
+
const prefix = `[${ts}] [${level.toUpperCase()}] [${component}]`;
|
|
387
|
+
console.error(data ? `${prefix} ${msg} ${JSON.stringify(data)}` : `${prefix} ${msg}`);
|
|
388
|
+
this.fileStream?.write(JSON.stringify({ ts, level, component, msg, ...data && { data } }) + "\n");
|
|
389
|
+
}
|
|
390
|
+
};
|
|
391
|
+
var logger = new MorphLogger();
|
|
392
|
+
|
|
350
393
|
// tools/browser/live.ts
|
|
351
394
|
var LIVE_PRESETS = {
|
|
352
395
|
/** Read-only monitoring (no interaction) */
|
|
@@ -1043,11 +1086,7 @@ var BrowserClient = class {
|
|
|
1043
1086
|
if (!hasTask && !hasDiff) {
|
|
1044
1087
|
throw new Error('Browser task requires either "task" (natural language) or "diff" (PR-review planning)');
|
|
1045
1088
|
}
|
|
1046
|
-
|
|
1047
|
-
const preview = (input.task ?? "").slice(0, 60);
|
|
1048
|
-
console.log(`[Browser] createTask: "${preview}..." url=${input.url || "none"}`);
|
|
1049
|
-
console.log(`[Browser] Calling async endpoint: ${apiUrl}/browser-task/async`);
|
|
1050
|
-
}
|
|
1089
|
+
logger.debug("Browser", "create_task", { task: (input.task ?? "").slice(0, 100), url: input.url, endpoint: `${apiUrl}/browser-task/async` });
|
|
1051
1090
|
const headers = { "Content-Type": "application/json" };
|
|
1052
1091
|
if (this.config.apiKey) headers["Authorization"] = `Bearer ${this.config.apiKey}`;
|
|
1053
1092
|
const response = await fetch(`${apiUrl}/browser-task/async`, {
|
|
@@ -1077,14 +1116,11 @@ var BrowserClient = class {
|
|
|
1077
1116
|
});
|
|
1078
1117
|
if (!response.ok) {
|
|
1079
1118
|
const errorText = await response.text().catch(() => response.statusText);
|
|
1080
|
-
|
|
1119
|
+
logger.error("Browser", "create_task_error", { status: response.status, error: errorText });
|
|
1081
1120
|
throw new Error(`HTTP ${response.status}: ${errorText}`);
|
|
1082
1121
|
}
|
|
1083
1122
|
const result = mapTaskResult(await response.json());
|
|
1084
|
-
|
|
1085
|
-
const debugUrl = result.debugUrl;
|
|
1086
|
-
console.log(`[Browser] \u2705 Task created: recordingId=${result.recordingId ?? "none"} debugUrl=${debugUrl ? "available" : "none"}`);
|
|
1087
|
-
}
|
|
1123
|
+
logger.debug("Browser", "task_created", { recording_id: result.recordingId, task_id: result.taskId, debug_url: !!result.debugUrl });
|
|
1088
1124
|
if ("schema" in input) {
|
|
1089
1125
|
return wrapTaskResponseWithSchema(result, this.config, input.schema);
|
|
1090
1126
|
} else {
|
|
@@ -1144,10 +1180,7 @@ async function executeBrowserTask(input, config = {}) {
|
|
|
1144
1180
|
error: "maxSteps must be between 1 and 50. Use more steps for complex multi-page flows."
|
|
1145
1181
|
};
|
|
1146
1182
|
}
|
|
1147
|
-
|
|
1148
|
-
console.log(`[Browser] Task: "${input.task.slice(0, 60)}..." url=${input.url || "none"} maxSteps=${input.maxSteps ?? 10}`);
|
|
1149
|
-
console.log(`[Browser] Recording: ${input.recordVideo ? "yes" : "no"} | Calling ${apiUrl}/browser-task`);
|
|
1150
|
-
}
|
|
1183
|
+
logger.debug("Browser", "execute_start", { task: input.task.slice(0, 100), url: input.url, max_steps: input.maxSteps ?? 10, record_video: input.recordVideo ?? false });
|
|
1151
1184
|
const startTime = Date.now();
|
|
1152
1185
|
try {
|
|
1153
1186
|
const headers = { "Content-Type": "application/json" };
|
|
@@ -1186,14 +1219,12 @@ async function executeBrowserTask(input, config = {}) {
|
|
|
1186
1219
|
);
|
|
1187
1220
|
if (!response.ok) {
|
|
1188
1221
|
const errorText = await response.text().catch(() => response.statusText);
|
|
1189
|
-
|
|
1222
|
+
logger.error("Browser", "execute_error", { status: response.status, error: errorText });
|
|
1190
1223
|
throw new Error(`HTTP ${response.status}: ${errorText}`);
|
|
1191
1224
|
}
|
|
1192
1225
|
const result = mapTaskResult(await response.json());
|
|
1193
1226
|
const elapsed = Date.now() - startTime;
|
|
1194
|
-
|
|
1195
|
-
console.log(`[Browser] \u2705 ${result.success ? "Success" : "Failed"} in ${elapsed}ms | steps=${result.stepsTaken ?? 0} recordingId=${result.recordingId ?? "none"}`);
|
|
1196
|
-
}
|
|
1227
|
+
logger.debug("Browser", "execute_complete", { success: result.success, latency_ms: elapsed, steps: result.stepsTaken ?? 0, recording_id: result.recordingId });
|
|
1197
1228
|
return result;
|
|
1198
1229
|
} catch (error) {
|
|
1199
1230
|
if (error instanceof Error) {
|