@morphllm/morphsdk 0.2.162 → 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.
Files changed (172) hide show
  1. package/dist/{chunk-YBKT2UOK.js → chunk-2KDJKRZG.js} +2 -2
  2. package/dist/chunk-5AM23TC7.js +42 -0
  3. package/dist/chunk-5AM23TC7.js.map +1 -0
  4. package/dist/{chunk-UETFIUIG.js → chunk-5BMWOPYW.js} +2 -2
  5. package/dist/{chunk-UKT3CKC7.js → chunk-5FYJMU6H.js} +2 -2
  6. package/dist/{chunk-DRTPCCEI.js → chunk-6PFGM4CM.js} +2 -2
  7. package/dist/{chunk-YRHM3RCQ.js → chunk-6YOSNPHS.js} +2 -2
  8. package/dist/{chunk-XUV5B27P.js → chunk-6YTCBLRI.js} +2 -2
  9. package/dist/{chunk-VQSLLYKE.js → chunk-COUYHTIO.js} +2 -2
  10. package/dist/{chunk-Y4NYT5L6.js → chunk-CUMC7Z5R.js} +11 -26
  11. package/dist/chunk-CUMC7Z5R.js.map +1 -0
  12. package/dist/{chunk-4Q6VFODP.js → chunk-EJBWDGTH.js} +2 -2
  13. package/dist/{chunk-UZX7SY33.js → chunk-FNCPPCPV.js} +2 -2
  14. package/dist/{chunk-4GQNYJBB.js → chunk-FQXUOZBX.js} +9 -12
  15. package/dist/chunk-FQXUOZBX.js.map +1 -0
  16. package/dist/{chunk-DXMNKPB6.js → chunk-HBH56DLN.js} +2 -2
  17. package/dist/{chunk-JVKGSMEF.js → chunk-HFN3YCF4.js} +2 -2
  18. package/dist/{chunk-NKUGRAYU.js → chunk-HMGC7FLZ.js} +2 -2
  19. package/dist/{chunk-4U5JFT6X.js → chunk-KHR4CZMX.js} +24 -17
  20. package/dist/{chunk-4U5JFT6X.js.map → chunk-KHR4CZMX.js.map} +1 -1
  21. package/dist/{chunk-OGMHU4PJ.js → chunk-LSHQISAX.js} +9 -2
  22. package/dist/chunk-LSHQISAX.js.map +1 -0
  23. package/dist/{chunk-ZG3YLRR5.js → chunk-LST7MZOZ.js} +7 -2
  24. package/dist/chunk-LST7MZOZ.js.map +1 -0
  25. package/dist/{chunk-5XTA7GCY.js → chunk-LW5EAPZ6.js} +2 -2
  26. package/dist/{chunk-UVRC4LKZ.js → chunk-NNATBEOF.js} +2 -2
  27. package/dist/{chunk-CNFHKQ42.js → chunk-OKFW4KGU.js} +2 -2
  28. package/dist/{chunk-PWGBAVQ5.js → chunk-QXGOEDZD.js} +2 -2
  29. package/dist/{chunk-OOE2TKKY.js → chunk-SELI567A.js} +12 -21
  30. package/dist/chunk-SELI567A.js.map +1 -0
  31. package/dist/{chunk-LECHLXI4.js → chunk-VMNEYCFP.js} +17 -6
  32. package/dist/chunk-VMNEYCFP.js.map +1 -0
  33. package/dist/{chunk-LZQBVEY2.js → chunk-WM6SBI4B.js} +35 -27
  34. package/dist/chunk-WM6SBI4B.js.map +1 -0
  35. package/dist/{chunk-7QMX45QD.js → chunk-ZMCDGAGF.js} +33 -6
  36. package/dist/chunk-ZMCDGAGF.js.map +1 -0
  37. package/dist/client.cjs +184 -115
  38. package/dist/client.cjs.map +1 -1
  39. package/dist/client.d.ts +1 -1
  40. package/dist/client.js +23 -22
  41. package/dist/edge.cjs +82 -50
  42. package/dist/edge.cjs.map +1 -1
  43. package/dist/edge.js +5 -4
  44. package/dist/index.cjs +186 -115
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.ts +1 -1
  47. package/dist/index.js +23 -22
  48. package/dist/modelrouter/core.cjs +50 -25
  49. package/dist/modelrouter/core.cjs.map +1 -1
  50. package/dist/modelrouter/core.js +4 -3
  51. package/dist/modelrouter/index.cjs +50 -25
  52. package/dist/modelrouter/index.cjs.map +1 -1
  53. package/dist/modelrouter/index.js +4 -3
  54. package/dist/subagents/anthropic.cjs +85 -12
  55. package/dist/subagents/anthropic.cjs.map +1 -1
  56. package/dist/subagents/anthropic.js +5 -4
  57. package/dist/subagents/vercel.cjs +85 -12
  58. package/dist/subagents/vercel.cjs.map +1 -1
  59. package/dist/subagents/vercel.js +5 -4
  60. package/dist/tools/browser/anthropic.cjs +47 -9
  61. package/dist/tools/browser/anthropic.cjs.map +1 -1
  62. package/dist/tools/browser/anthropic.js +6 -5
  63. package/dist/tools/browser/core.cjs +50 -19
  64. package/dist/tools/browser/core.cjs.map +1 -1
  65. package/dist/tools/browser/core.js +5 -4
  66. package/dist/tools/browser/index.cjs +50 -19
  67. package/dist/tools/browser/index.cjs.map +1 -1
  68. package/dist/tools/browser/index.js +8 -7
  69. package/dist/tools/browser/index.js.map +1 -1
  70. package/dist/tools/browser/openai.cjs +47 -9
  71. package/dist/tools/browser/openai.cjs.map +1 -1
  72. package/dist/tools/browser/openai.js +6 -5
  73. package/dist/tools/browser/profiles/core.cjs +6 -1
  74. package/dist/tools/browser/profiles/core.cjs.map +1 -1
  75. package/dist/tools/browser/profiles/core.js +3 -3
  76. package/dist/tools/browser/profiles/index.cjs +6 -1
  77. package/dist/tools/browser/profiles/index.cjs.map +1 -1
  78. package/dist/tools/browser/profiles/index.js +3 -3
  79. package/dist/tools/browser/vercel.cjs +47 -9
  80. package/dist/tools/browser/vercel.cjs.map +1 -1
  81. package/dist/tools/browser/vercel.js +6 -5
  82. package/dist/tools/codebase_search/anthropic.cjs +48 -11
  83. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  84. package/dist/tools/codebase_search/anthropic.js +5 -4
  85. package/dist/tools/codebase_search/core.cjs +48 -11
  86. package/dist/tools/codebase_search/core.cjs.map +1 -1
  87. package/dist/tools/codebase_search/core.js +4 -3
  88. package/dist/tools/codebase_search/index.cjs +48 -11
  89. package/dist/tools/codebase_search/index.cjs.map +1 -1
  90. package/dist/tools/codebase_search/index.js +7 -6
  91. package/dist/tools/codebase_search/openai.cjs +48 -11
  92. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  93. package/dist/tools/codebase_search/openai.js +5 -4
  94. package/dist/tools/codebase_search/vercel.cjs +48 -11
  95. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  96. package/dist/tools/codebase_search/vercel.js +5 -4
  97. package/dist/tools/fastapply/anthropic.cjs +94 -31
  98. package/dist/tools/fastapply/anthropic.cjs.map +1 -1
  99. package/dist/tools/fastapply/anthropic.js +5 -4
  100. package/dist/tools/fastapply/apply.cjs +74 -26
  101. package/dist/tools/fastapply/apply.cjs.map +1 -1
  102. package/dist/tools/fastapply/apply.js +3 -2
  103. package/dist/tools/fastapply/core.cjs +94 -31
  104. package/dist/tools/fastapply/core.cjs.map +1 -1
  105. package/dist/tools/fastapply/core.js +4 -3
  106. package/dist/tools/fastapply/index.cjs +94 -31
  107. package/dist/tools/fastapply/index.cjs.map +1 -1
  108. package/dist/tools/fastapply/index.js +7 -6
  109. package/dist/tools/fastapply/openai.cjs +94 -31
  110. package/dist/tools/fastapply/openai.cjs.map +1 -1
  111. package/dist/tools/fastapply/openai.js +5 -4
  112. package/dist/tools/fastapply/vercel.cjs +94 -31
  113. package/dist/tools/fastapply/vercel.cjs.map +1 -1
  114. package/dist/tools/fastapply/vercel.js +5 -4
  115. package/dist/tools/index.cjs +94 -31
  116. package/dist/tools/index.cjs.map +1 -1
  117. package/dist/tools/index.js +7 -6
  118. package/dist/tools/utils/resilience.cjs +6 -1
  119. package/dist/tools/utils/resilience.cjs.map +1 -1
  120. package/dist/tools/utils/resilience.js +2 -2
  121. package/dist/tools/warp_grep/agent/runner.cjs +74 -5
  122. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  123. package/dist/tools/warp_grep/agent/runner.js +3 -2
  124. package/dist/tools/warp_grep/anthropic.cjs +85 -12
  125. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  126. package/dist/tools/warp_grep/anthropic.js +5 -4
  127. package/dist/tools/warp_grep/client.cjs +85 -12
  128. package/dist/tools/warp_grep/client.cjs.map +1 -1
  129. package/dist/tools/warp_grep/client.js +4 -3
  130. package/dist/tools/warp_grep/gemini.cjs +85 -12
  131. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  132. package/dist/tools/warp_grep/gemini.js +4 -3
  133. package/dist/tools/warp_grep/gemini.js.map +1 -1
  134. package/dist/tools/warp_grep/index.cjs +85 -12
  135. package/dist/tools/warp_grep/index.cjs.map +1 -1
  136. package/dist/tools/warp_grep/index.js +4 -3
  137. package/dist/tools/warp_grep/openai.cjs +85 -12
  138. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  139. package/dist/tools/warp_grep/openai.js +5 -4
  140. package/dist/tools/warp_grep/vercel.cjs +85 -12
  141. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  142. package/dist/tools/warp_grep/vercel.d.ts +1 -1
  143. package/dist/tools/warp_grep/vercel.js +5 -4
  144. package/dist/version.cjs +6 -1
  145. package/dist/version.cjs.map +1 -1
  146. package/dist/version.js +1 -1
  147. package/package.json +6 -1
  148. package/dist/chunk-4GQNYJBB.js.map +0 -1
  149. package/dist/chunk-7QMX45QD.js.map +0 -1
  150. package/dist/chunk-LECHLXI4.js.map +0 -1
  151. package/dist/chunk-LZQBVEY2.js.map +0 -1
  152. package/dist/chunk-OGMHU4PJ.js.map +0 -1
  153. package/dist/chunk-OOE2TKKY.js.map +0 -1
  154. package/dist/chunk-Y4NYT5L6.js.map +0 -1
  155. package/dist/chunk-ZG3YLRR5.js.map +0 -1
  156. package/dist/{chunk-YBKT2UOK.js.map → chunk-2KDJKRZG.js.map} +0 -0
  157. package/dist/{chunk-UETFIUIG.js.map → chunk-5BMWOPYW.js.map} +0 -0
  158. package/dist/{chunk-UKT3CKC7.js.map → chunk-5FYJMU6H.js.map} +0 -0
  159. package/dist/{chunk-DRTPCCEI.js.map → chunk-6PFGM4CM.js.map} +0 -0
  160. package/dist/{chunk-YRHM3RCQ.js.map → chunk-6YOSNPHS.js.map} +0 -0
  161. package/dist/{chunk-XUV5B27P.js.map → chunk-6YTCBLRI.js.map} +0 -0
  162. package/dist/{chunk-VQSLLYKE.js.map → chunk-COUYHTIO.js.map} +0 -0
  163. package/dist/{chunk-4Q6VFODP.js.map → chunk-EJBWDGTH.js.map} +0 -0
  164. package/dist/{chunk-UZX7SY33.js.map → chunk-FNCPPCPV.js.map} +0 -0
  165. package/dist/{chunk-DXMNKPB6.js.map → chunk-HBH56DLN.js.map} +0 -0
  166. package/dist/{chunk-JVKGSMEF.js.map → chunk-HFN3YCF4.js.map} +0 -0
  167. package/dist/{chunk-NKUGRAYU.js.map → chunk-HMGC7FLZ.js.map} +0 -0
  168. package/dist/{chunk-5XTA7GCY.js.map → chunk-LW5EAPZ6.js.map} +0 -0
  169. package/dist/{chunk-UVRC4LKZ.js.map → chunk-NNATBEOF.js.map} +0 -0
  170. package/dist/{chunk-CNFHKQ42.js.map → chunk-OKFW4KGU.js.map} +0 -0
  171. package/dist/{chunk-PWGBAVQ5.js.map → chunk-QXGOEDZD.js.map} +0 -0
  172. 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.162",
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
- if (debug) {
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
- if (debug) console.error(`[Browser] Error: ${response.status} - ${errorText}`);
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
- if (debug) {
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
- if (debug) {
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
- if (debug) console.error(`[Browser] Error: ${response.status} - ${errorText}`);
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
- if (debug) {
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) {