@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.
Files changed (215) hide show
  1. package/dist/{chunk-EJZFQAKT.js → chunk-27EP7ZJK.js} +2 -2
  2. package/dist/{chunk-HXDITEO6.js → chunk-4WQGJMOW.js} +2 -2
  3. package/dist/{chunk-BN4IHFWR.js → chunk-66X4NBG7.js} +2 -2
  4. package/dist/{chunk-DFTKUEF5.js → chunk-7ICJYWTT.js} +2 -2
  5. package/dist/{chunk-D4XCP2ZE.js → chunk-7JLPTKPQ.js} +39 -4
  6. package/dist/chunk-7JLPTKPQ.js.map +1 -0
  7. package/dist/{chunk-AERVDGON.js → chunk-BTIJDM7J.js} +2 -2
  8. package/dist/{chunk-XEQZQTZR.js → chunk-C7HLMZXK.js} +2 -2
  9. package/dist/{chunk-JG5MJI34.js → chunk-D4K2OZTC.js} +2 -2
  10. package/dist/{chunk-GVN6B4YX.js → chunk-DFZY4NAL.js} +3 -3
  11. package/dist/{chunk-2DLMZDDB.js → chunk-DOGRQEOM.js} +52 -9
  12. package/dist/chunk-DOGRQEOM.js.map +1 -0
  13. package/dist/{chunk-QW33U4EI.js → chunk-F477JTM2.js} +4 -4
  14. package/dist/{chunk-LDXKXBYN.js → chunk-G7FT3MCW.js} +2 -2
  15. package/dist/{chunk-2WQTCETP.js → chunk-GX2KTPXV.js} +2 -2
  16. package/dist/{chunk-IOZMMARY.js → chunk-H2K7JQOW.js} +2 -2
  17. package/dist/{chunk-U4KCWD3I.js → chunk-H2SWEPM3.js} +2 -2
  18. package/dist/{chunk-4RARO46V.js → chunk-HTKN3WER.js} +4 -4
  19. package/dist/{chunk-QAZM5ELA.js → chunk-JX4HNDGL.js} +2 -2
  20. package/dist/{chunk-TBVIOQ5O.js → chunk-KEFVC7WL.js} +2 -2
  21. package/dist/{chunk-IS5TDLAJ.js → chunk-KEYFDMOM.js} +2 -2
  22. package/dist/{chunk-WQC3YOER.js → chunk-LAQPE5RA.js} +3 -3
  23. package/dist/{chunk-LBOFTF6A.js → chunk-LXCTENG5.js} +25 -23
  24. package/dist/{chunk-LBOFTF6A.js.map → chunk-LXCTENG5.js.map} +1 -1
  25. package/dist/{chunk-EAGSRHRT.js → chunk-MVMSALBH.js} +2 -2
  26. package/dist/{chunk-4TMCQZNB.js → chunk-NBO7EVSO.js} +2 -2
  27. package/dist/{chunk-4TMCQZNB.js.map → chunk-NBO7EVSO.js.map} +1 -1
  28. package/dist/{chunk-SX2P5ZUP.js → chunk-NP5R3I25.js} +2 -2
  29. package/dist/{chunk-LN7GNFET.js → chunk-OPNTDMHH.js} +4 -4
  30. package/dist/{chunk-X4VPV3A7.js → chunk-P2ZUVNZ2.js} +2 -2
  31. package/dist/{chunk-GZDRJBI2.js → chunk-QFPPKZ5G.js} +2 -2
  32. package/dist/{chunk-MWUFDBWQ.js → chunk-QGR4P3P3.js} +2 -2
  33. package/dist/{chunk-XYHP2TFY.js → chunk-TH3AVISW.js} +2 -2
  34. package/dist/{chunk-35ZAMQ3A.js → chunk-WVGAOPMD.js} +7 -7
  35. package/dist/{chunk-OE2LFOYB.js → chunk-XQ5YMAAE.js} +2 -2
  36. package/dist/{chunk-TDT6J2X4.js → chunk-ZXL7SYO2.js} +2 -2
  37. package/dist/{client-Dh6yzCm4.d.ts → client-DUvmVWQJ.d.ts} +2 -1
  38. package/dist/client.cjs +86 -8
  39. package/dist/client.cjs.map +1 -1
  40. package/dist/client.d.ts +1 -1
  41. package/dist/client.js +29 -29
  42. package/dist/core/client.cjs +1 -1
  43. package/dist/core/client.cjs.map +1 -1
  44. package/dist/core/client.js +4 -4
  45. package/dist/core/error.cjs +1 -1
  46. package/dist/core/error.cjs.map +1 -1
  47. package/dist/core/error.js +3 -3
  48. package/dist/core/index.cjs +1 -1
  49. package/dist/core/index.cjs.map +1 -1
  50. package/dist/core/index.js +4 -4
  51. package/dist/edge.cjs +37 -1
  52. package/dist/edge.cjs.map +1 -1
  53. package/dist/edge.d.ts +2 -2
  54. package/dist/edge.js +10 -8
  55. package/dist/git/client.cjs +1 -1
  56. package/dist/git/client.cjs.map +1 -1
  57. package/dist/git/client.js +5 -5
  58. package/dist/git/index.cjs +1 -1
  59. package/dist/git/index.cjs.map +1 -1
  60. package/dist/git/index.js +5 -5
  61. package/dist/index.cjs +86 -8
  62. package/dist/index.cjs.map +1 -1
  63. package/dist/index.d.ts +2 -2
  64. package/dist/index.js +31 -31
  65. package/dist/modelrouter/core.cjs +39 -3
  66. package/dist/modelrouter/core.cjs.map +1 -1
  67. package/dist/modelrouter/core.d.ts +15 -2
  68. package/dist/modelrouter/core.js +9 -7
  69. package/dist/modelrouter/index.cjs +39 -3
  70. package/dist/modelrouter/index.cjs.map +1 -1
  71. package/dist/modelrouter/index.d.ts +2 -2
  72. package/dist/modelrouter/index.js +9 -7
  73. package/dist/modelrouter/types.cjs.map +1 -1
  74. package/dist/modelrouter/types.d.ts +24 -1
  75. package/dist/subagents/anthropic.cjs +1 -1
  76. package/dist/subagents/anthropic.cjs.map +1 -1
  77. package/dist/subagents/anthropic.js +10 -10
  78. package/dist/subagents/vercel.cjs +1 -1
  79. package/dist/subagents/vercel.cjs.map +1 -1
  80. package/dist/subagents/vercel.js +10 -10
  81. package/dist/tools/browser/anthropic.cjs +1 -1
  82. package/dist/tools/browser/anthropic.cjs.map +1 -1
  83. package/dist/tools/browser/anthropic.js +7 -7
  84. package/dist/tools/browser/core.cjs +1 -1
  85. package/dist/tools/browser/core.cjs.map +1 -1
  86. package/dist/tools/browser/core.js +6 -6
  87. package/dist/tools/browser/index.cjs +1 -1
  88. package/dist/tools/browser/index.cjs.map +1 -1
  89. package/dist/tools/browser/index.js +9 -9
  90. package/dist/tools/browser/openai.cjs +1 -1
  91. package/dist/tools/browser/openai.cjs.map +1 -1
  92. package/dist/tools/browser/openai.js +7 -7
  93. package/dist/tools/browser/profiles/core.cjs +1 -1
  94. package/dist/tools/browser/profiles/core.cjs.map +1 -1
  95. package/dist/tools/browser/profiles/core.js +3 -3
  96. package/dist/tools/browser/profiles/index.cjs +1 -1
  97. package/dist/tools/browser/profiles/index.cjs.map +1 -1
  98. package/dist/tools/browser/profiles/index.js +3 -3
  99. package/dist/tools/browser/vercel.cjs +1 -1
  100. package/dist/tools/browser/vercel.cjs.map +1 -1
  101. package/dist/tools/browser/vercel.js +7 -7
  102. package/dist/tools/codebase_search/anthropic.cjs +1 -1
  103. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  104. package/dist/tools/codebase_search/anthropic.js +6 -6
  105. package/dist/tools/codebase_search/core.cjs +1 -1
  106. package/dist/tools/codebase_search/core.cjs.map +1 -1
  107. package/dist/tools/codebase_search/core.js +5 -5
  108. package/dist/tools/codebase_search/index.cjs +1 -1
  109. package/dist/tools/codebase_search/index.cjs.map +1 -1
  110. package/dist/tools/codebase_search/index.js +8 -8
  111. package/dist/tools/codebase_search/openai.cjs +1 -1
  112. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  113. package/dist/tools/codebase_search/openai.js +6 -6
  114. package/dist/tools/codebase_search/vercel.cjs +1 -1
  115. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  116. package/dist/tools/codebase_search/vercel.js +6 -6
  117. package/dist/tools/compact/core.cjs +1 -1
  118. package/dist/tools/compact/core.cjs.map +1 -1
  119. package/dist/tools/compact/core.js +5 -5
  120. package/dist/tools/compact/index.cjs +1 -1
  121. package/dist/tools/compact/index.cjs.map +1 -1
  122. package/dist/tools/compact/index.js +6 -6
  123. package/dist/tools/fastapply/anthropic.cjs +1 -1
  124. package/dist/tools/fastapply/anthropic.cjs.map +1 -1
  125. package/dist/tools/fastapply/anthropic.js +7 -7
  126. package/dist/tools/fastapply/apply.cjs +1 -1
  127. package/dist/tools/fastapply/apply.cjs.map +1 -1
  128. package/dist/tools/fastapply/apply.js +2 -2
  129. package/dist/tools/fastapply/core.cjs +1 -1
  130. package/dist/tools/fastapply/core.cjs.map +1 -1
  131. package/dist/tools/fastapply/core.js +6 -6
  132. package/dist/tools/fastapply/index.cjs +1 -1
  133. package/dist/tools/fastapply/index.cjs.map +1 -1
  134. package/dist/tools/fastapply/index.js +9 -9
  135. package/dist/tools/fastapply/openai.cjs +1 -1
  136. package/dist/tools/fastapply/openai.cjs.map +1 -1
  137. package/dist/tools/fastapply/openai.js +7 -7
  138. package/dist/tools/fastapply/vercel.cjs +1 -1
  139. package/dist/tools/fastapply/vercel.cjs.map +1 -1
  140. package/dist/tools/fastapply/vercel.js +7 -7
  141. package/dist/tools/index.cjs +1 -1
  142. package/dist/tools/index.cjs.map +1 -1
  143. package/dist/tools/index.js +9 -9
  144. package/dist/tools/reflex/core.cjs +50 -7
  145. package/dist/tools/reflex/core.cjs.map +1 -1
  146. package/dist/tools/reflex/core.d.ts +6 -1
  147. package/dist/tools/reflex/core.js +5 -5
  148. package/dist/tools/reflex/index.cjs +50 -7
  149. package/dist/tools/reflex/index.cjs.map +1 -1
  150. package/dist/tools/reflex/index.js +5 -5
  151. package/dist/tools/reflex/types.cjs.map +1 -1
  152. package/dist/tools/reflex/types.d.ts +60 -4
  153. package/dist/tools/utils/resilience.cjs +1 -1
  154. package/dist/tools/utils/resilience.cjs.map +1 -1
  155. package/dist/tools/utils/resilience.js +2 -2
  156. package/dist/tools/warp_grep/agent/runner.cjs +1 -1
  157. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  158. package/dist/tools/warp_grep/agent/runner.js +2 -2
  159. package/dist/tools/warp_grep/anthropic.cjs +1 -1
  160. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  161. package/dist/tools/warp_grep/anthropic.js +10 -10
  162. package/dist/tools/warp_grep/client.cjs +1 -1
  163. package/dist/tools/warp_grep/client.cjs.map +1 -1
  164. package/dist/tools/warp_grep/client.js +9 -9
  165. package/dist/tools/warp_grep/gemini.cjs +1 -1
  166. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  167. package/dist/tools/warp_grep/gemini.js +9 -9
  168. package/dist/tools/warp_grep/harness.js +2 -2
  169. package/dist/tools/warp_grep/index.cjs +1 -1
  170. package/dist/tools/warp_grep/index.cjs.map +1 -1
  171. package/dist/tools/warp_grep/index.js +11 -11
  172. package/dist/tools/warp_grep/openai.cjs +1 -1
  173. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  174. package/dist/tools/warp_grep/openai.js +10 -10
  175. package/dist/tools/warp_grep/providers/local.js +2 -2
  176. package/dist/tools/warp_grep/vercel.cjs +1 -1
  177. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  178. package/dist/tools/warp_grep/vercel.js +10 -10
  179. package/dist/tracing/index.cjs.map +1 -1
  180. package/dist/tracing/types.cjs.map +1 -1
  181. package/dist/tracing/types.d.ts +9 -8
  182. package/dist/version.cjs +1 -1
  183. package/dist/version.cjs.map +1 -1
  184. package/dist/version.js +1 -1
  185. package/package.json +1 -1
  186. package/dist/chunk-2DLMZDDB.js.map +0 -1
  187. package/dist/chunk-D4XCP2ZE.js.map +0 -1
  188. /package/dist/{chunk-EJZFQAKT.js.map → chunk-27EP7ZJK.js.map} +0 -0
  189. /package/dist/{chunk-HXDITEO6.js.map → chunk-4WQGJMOW.js.map} +0 -0
  190. /package/dist/{chunk-BN4IHFWR.js.map → chunk-66X4NBG7.js.map} +0 -0
  191. /package/dist/{chunk-DFTKUEF5.js.map → chunk-7ICJYWTT.js.map} +0 -0
  192. /package/dist/{chunk-AERVDGON.js.map → chunk-BTIJDM7J.js.map} +0 -0
  193. /package/dist/{chunk-XEQZQTZR.js.map → chunk-C7HLMZXK.js.map} +0 -0
  194. /package/dist/{chunk-JG5MJI34.js.map → chunk-D4K2OZTC.js.map} +0 -0
  195. /package/dist/{chunk-GVN6B4YX.js.map → chunk-DFZY4NAL.js.map} +0 -0
  196. /package/dist/{chunk-QW33U4EI.js.map → chunk-F477JTM2.js.map} +0 -0
  197. /package/dist/{chunk-LDXKXBYN.js.map → chunk-G7FT3MCW.js.map} +0 -0
  198. /package/dist/{chunk-2WQTCETP.js.map → chunk-GX2KTPXV.js.map} +0 -0
  199. /package/dist/{chunk-IOZMMARY.js.map → chunk-H2K7JQOW.js.map} +0 -0
  200. /package/dist/{chunk-U4KCWD3I.js.map → chunk-H2SWEPM3.js.map} +0 -0
  201. /package/dist/{chunk-4RARO46V.js.map → chunk-HTKN3WER.js.map} +0 -0
  202. /package/dist/{chunk-QAZM5ELA.js.map → chunk-JX4HNDGL.js.map} +0 -0
  203. /package/dist/{chunk-TBVIOQ5O.js.map → chunk-KEFVC7WL.js.map} +0 -0
  204. /package/dist/{chunk-IS5TDLAJ.js.map → chunk-KEYFDMOM.js.map} +0 -0
  205. /package/dist/{chunk-WQC3YOER.js.map → chunk-LAQPE5RA.js.map} +0 -0
  206. /package/dist/{chunk-EAGSRHRT.js.map → chunk-MVMSALBH.js.map} +0 -0
  207. /package/dist/{chunk-SX2P5ZUP.js.map → chunk-NP5R3I25.js.map} +0 -0
  208. /package/dist/{chunk-LN7GNFET.js.map → chunk-OPNTDMHH.js.map} +0 -0
  209. /package/dist/{chunk-X4VPV3A7.js.map → chunk-P2ZUVNZ2.js.map} +0 -0
  210. /package/dist/{chunk-GZDRJBI2.js.map → chunk-QFPPKZ5G.js.map} +0 -0
  211. /package/dist/{chunk-MWUFDBWQ.js.map → chunk-QGR4P3P3.js.map} +0 -0
  212. /package/dist/{chunk-XYHP2TFY.js.map → chunk-TH3AVISW.js.map} +0 -0
  213. /package/dist/{chunk-35ZAMQ3A.js.map → chunk-WVGAOPMD.js.map} +0 -0
  214. /package/dist/{chunk-OE2LFOYB.js.map → chunk-XQ5YMAAE.js.map} +0 -0
  215. /package/dist/{chunk-TDT6J2X4.js.map → chunk-ZXL7SYO2.js.map} +0 -0
@@ -8,7 +8,7 @@ import { APIResource } from './core/resource.js';
8
8
  import { MorphGit } from './git/client.js';
9
9
  import { CompactClient } from './tools/compact/core.js';
10
10
  import { ReflexClient } from './tools/reflex/core.js';
11
- import { OpenAIRouter, AnthropicRouter, GeminiRouter, RawRouter } from './modelrouter/core.js';
11
+ import { OpenAIRouter, AnthropicRouter, GeminiRouter, RawRouter, RouterClassifier } from './modelrouter/core.js';
12
12
  import { EditFileConfig, EditFileInput, EditFileResult, EditChanges } from './tools/fastapply/types.js';
13
13
  import { CodebaseSearchConfig, CodebaseSearchInput, CodebaseSearchResult } from './tools/codebase_search/types.js';
14
14
  import { d as WarpGrepToolConfig, b as WarpGrepResult, g as GitHubSearchToolConfig, c as WarpGrepContext } from './types-CtkD4o1_.js';
@@ -989,6 +989,7 @@ declare class MorphClient extends MorphAPIClient {
989
989
  anthropic: AnthropicRouter;
990
990
  gemini: GeminiRouter;
991
991
  raw: RawRouter;
992
+ classify: RouterClassifier;
992
993
  };
993
994
  /** OpenAI-compatible tool factories */
994
995
  openai: OpenAIToolFactory;
package/dist/client.cjs CHANGED
@@ -36,7 +36,7 @@ var init_package = __esm({
36
36
  "package.json"() {
37
37
  package_default = {
38
38
  name: "@morphllm/morphsdk",
39
- version: "0.2.180",
39
+ version: "0.2.182",
40
40
  description: "TypeScript SDK and CLI for Morph Fast Apply integration",
41
41
  type: "module",
42
42
  main: "./dist/index.cjs",
@@ -5044,15 +5044,34 @@ var ReflexClient = class extends APIResource {
5044
5044
  }
5045
5045
  /** Classify text against a trained model. The model must be `succeeded`. */
5046
5046
  async predict(input) {
5047
+ const completionId = input.completionId ?? crypto.randomUUID();
5047
5048
  const raw = await this._client.post("/v1/reflex/predict", {
5048
- body: { model: input.model, text: input.text }
5049
+ body: { model: input.model, text: input.text },
5050
+ headers: { "X-Completion-Id": completionId }
5049
5051
  });
5052
+ return toPredictResult(raw, completionId);
5053
+ }
5054
+ /**
5055
+ * Record thumbs-up / thumbs-down feedback on a prediction. Reference the
5056
+ * prediction by the `completionId` from `predict()` or by a stored `resultId`.
5057
+ */
5058
+ async flag(input) {
5059
+ if (!input.completionId && !input.resultId) {
5060
+ throw new MorphError("flag() requires completionId or resultId", "reflex_flag_missing_ref");
5061
+ }
5062
+ const body = { good_or_bad: input.verdict };
5063
+ if (input.completionId) body.completion_id = input.completionId;
5064
+ if (input.resultId) body.result_id = input.resultId;
5065
+ if (input.correctedLabel != null) body.corrected_label = input.correctedLabel;
5066
+ if (input.reason != null) body.reason = input.reason;
5067
+ if (input.score != null) body.score = input.score;
5068
+ const raw = await this._client.post("/v1/reflex/predictions/flag", { body });
5050
5069
  return {
5051
- model: raw.model,
5052
- label: raw.label,
5053
- confidence: raw.confidence,
5054
- allScores: raw.all_scores ?? [],
5055
- inferenceTimeMs: raw.inference_time_ms
5070
+ resultId: raw.result_id ?? null,
5071
+ completionId: raw.completion_id ?? null,
5072
+ verdict: raw.flagged_good_or_bad ?? null,
5073
+ correctedLabel: raw.flagged_corrected_label ?? null,
5074
+ flagged: Boolean(raw.flagged)
5056
5075
  };
5057
5076
  }
5058
5077
  };
@@ -5152,6 +5171,30 @@ function toReflexJob(raw) {
5152
5171
  suffix: raw.suffix ?? null
5153
5172
  };
5154
5173
  }
5174
+ function toPredictResult(raw, completionId) {
5175
+ const classes = (raw.classes ?? []).map((c) => ({
5176
+ classId: c.class_id,
5177
+ label: c.label,
5178
+ score: c.score,
5179
+ selected: c.selected
5180
+ }));
5181
+ const selectedClasses = classes.filter((c) => c.selected);
5182
+ const top = selectedClasses.reduce(
5183
+ (best, c) => best === null || c.score > best.score ? c : best,
5184
+ null
5185
+ );
5186
+ return {
5187
+ model: raw.model,
5188
+ mode: raw.mode === "multi_label" ? "multi_label" : "single_label",
5189
+ classes,
5190
+ selected: selectedClasses.map((c) => c.label),
5191
+ label: top ? top.label : null,
5192
+ confidence: top ? top.score : null,
5193
+ allScores: classes.map((c) => c.score),
5194
+ inferenceTimeMs: raw.inference_time_ms,
5195
+ completionId
5196
+ };
5197
+ }
5155
5198
  function toReflexEvent(raw) {
5156
5199
  return {
5157
5200
  id: raw.id,
@@ -5288,6 +5331,40 @@ var RawRouter = class extends BaseRouter {
5288
5331
  return { difficulty };
5289
5332
  }
5290
5333
  };
5334
+ var RouterClassifier = class extends APIResource {
5335
+ timeout;
5336
+ constructor(clientOrConfig = {}) {
5337
+ super(resolveClient3(clientOrConfig));
5338
+ const cfg = clientOrConfig instanceof MorphAPIClient ? {} : clientOrConfig;
5339
+ this.timeout = cfg.timeout ?? DEFAULT_TIMEOUT6;
5340
+ }
5341
+ /** Classify an input across the requested axes (all three by default). */
5342
+ async classify(input) {
5343
+ if (!this._client.resolveApiKey()) {
5344
+ throw new Error(
5345
+ "Morph API key is required. Set MORPH_API_KEY environment variable or pass apiKey in config."
5346
+ );
5347
+ }
5348
+ logger.debug("RouterClassifier", "request", { classes: input.classes ?? "all" });
5349
+ try {
5350
+ const res = await this._client.post("/v1/router/classify", {
5351
+ body: { input: input.input, ...input.classes ? { classes: input.classes } : {} },
5352
+ timeout: this.timeout
5353
+ });
5354
+ logger.debug("RouterClassifier", "classified", {
5355
+ difficulty: res.classifications.difficulty?.label,
5356
+ ambiguity: res.classifications.ambiguity?.label,
5357
+ domain: res.classifications.domain?.label
5358
+ });
5359
+ return res.classifications;
5360
+ } catch (error) {
5361
+ if (error instanceof MorphError) {
5362
+ throw new Error(`Router API error (${error.statusCode}): ${error.message}`);
5363
+ }
5364
+ throw error;
5365
+ }
5366
+ }
5367
+ };
5291
5368
 
5292
5369
  // tools/warp_grep/prompts.ts
5293
5370
  var WARP_GREP_TOOL_NAME = "codebase_search";
@@ -6731,7 +6808,8 @@ var MorphClient = class extends MorphAPIClient {
6731
6808
  openai: new OpenAIRouter(this),
6732
6809
  anthropic: new AnthropicRouter(this),
6733
6810
  gemini: new GeminiRouter(this),
6734
- raw: new RawRouter(this)
6811
+ raw: new RawRouter(this),
6812
+ classify: new RouterClassifier(this)
6735
6813
  };
6736
6814
  const compactClient = new CompactClient(this);
6737
6815
  this.compact = compactClient.compact.bind(compactClient);