@morphllm/morphsdk 0.2.180 → 0.2.181

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 (211) hide show
  1. package/dist/{chunk-X4VPV3A7.js → chunk-2VETLL6C.js} +2 -2
  2. package/dist/{chunk-AERVDGON.js → chunk-4DLGPMUS.js} +2 -2
  3. package/dist/{chunk-QW33U4EI.js → chunk-4NDS3GQB.js} +4 -4
  4. package/dist/{chunk-GVN6B4YX.js → chunk-4ZTI7JDJ.js} +3 -3
  5. package/dist/{chunk-XEQZQTZR.js → chunk-AFMB2XGS.js} +2 -2
  6. package/dist/{chunk-IS5TDLAJ.js → chunk-AWUIP46W.js} +2 -2
  7. package/dist/{chunk-D4XCP2ZE.js → chunk-CIBOCK5C.js} +39 -4
  8. package/dist/chunk-CIBOCK5C.js.map +1 -0
  9. package/dist/{chunk-JG5MJI34.js → chunk-CTCRNGRP.js} +2 -2
  10. package/dist/{chunk-IOZMMARY.js → chunk-DYGQ3BB5.js} +2 -2
  11. package/dist/{chunk-4TMCQZNB.js → chunk-GG4ATN6M.js} +2 -2
  12. package/dist/{chunk-4TMCQZNB.js.map → chunk-GG4ATN6M.js.map} +1 -1
  13. package/dist/{chunk-LBOFTF6A.js → chunk-IHVQKX6U.js} +25 -23
  14. package/dist/{chunk-LBOFTF6A.js.map → chunk-IHVQKX6U.js.map} +1 -1
  15. package/dist/{chunk-DFTKUEF5.js → chunk-II3AF6LD.js} +2 -2
  16. package/dist/{chunk-HXDITEO6.js → chunk-INXEXFQV.js} +2 -2
  17. package/dist/{chunk-2DLMZDDB.js → chunk-J7BZPA63.js} +78 -9
  18. package/dist/chunk-J7BZPA63.js.map +1 -0
  19. package/dist/{chunk-QAZM5ELA.js → chunk-KOTSWCSD.js} +2 -2
  20. package/dist/{chunk-MWUFDBWQ.js → chunk-KP3YMV7Y.js} +2 -2
  21. package/dist/{chunk-LDXKXBYN.js → chunk-KP5VIWLO.js} +2 -2
  22. package/dist/{chunk-BN4IHFWR.js → chunk-LJ27CQI3.js} +2 -2
  23. package/dist/{chunk-U4KCWD3I.js → chunk-LZUBCNTC.js} +2 -2
  24. package/dist/{chunk-GZDRJBI2.js → chunk-MNDFDO2W.js} +2 -2
  25. package/dist/{chunk-EAGSRHRT.js → chunk-MYBIXWNM.js} +2 -2
  26. package/dist/{chunk-TDT6J2X4.js → chunk-NOX6MIA2.js} +2 -2
  27. package/dist/{chunk-EJZFQAKT.js → chunk-OWY3P43T.js} +2 -2
  28. package/dist/{chunk-OE2LFOYB.js → chunk-P63CYB3F.js} +2 -2
  29. package/dist/{chunk-XYHP2TFY.js → chunk-PJWEGYOK.js} +2 -2
  30. package/dist/{chunk-2WQTCETP.js → chunk-QAJW6FOO.js} +2 -2
  31. package/dist/{chunk-WQC3YOER.js → chunk-TD2SQ6TQ.js} +3 -3
  32. package/dist/{chunk-TBVIOQ5O.js → chunk-WJ2LQ3NR.js} +2 -2
  33. package/dist/{chunk-35ZAMQ3A.js → chunk-X4JLZWGW.js} +4 -4
  34. package/dist/{chunk-4RARO46V.js → chunk-X4XBY7VI.js} +4 -4
  35. package/dist/{chunk-SX2P5ZUP.js → chunk-X5YEUR65.js} +2 -2
  36. package/dist/{client-Dh6yzCm4.d.ts → client-DUvmVWQJ.d.ts} +2 -1
  37. package/dist/client.cjs +112 -8
  38. package/dist/client.cjs.map +1 -1
  39. package/dist/client.d.ts +1 -1
  40. package/dist/client.js +28 -28
  41. package/dist/core/client.cjs +1 -1
  42. package/dist/core/client.cjs.map +1 -1
  43. package/dist/core/client.js +4 -4
  44. package/dist/core/error.cjs +1 -1
  45. package/dist/core/error.cjs.map +1 -1
  46. package/dist/core/error.js +3 -3
  47. package/dist/core/index.cjs +1 -1
  48. package/dist/core/index.cjs.map +1 -1
  49. package/dist/core/index.js +4 -4
  50. package/dist/edge.cjs +37 -1
  51. package/dist/edge.cjs.map +1 -1
  52. package/dist/edge.d.ts +2 -2
  53. package/dist/edge.js +10 -8
  54. package/dist/git/client.cjs +1 -1
  55. package/dist/git/client.cjs.map +1 -1
  56. package/dist/git/client.js +5 -5
  57. package/dist/git/index.cjs +1 -1
  58. package/dist/git/index.cjs.map +1 -1
  59. package/dist/git/index.js +5 -5
  60. package/dist/index.cjs +112 -8
  61. package/dist/index.cjs.map +1 -1
  62. package/dist/index.d.ts +2 -2
  63. package/dist/index.js +28 -28
  64. package/dist/modelrouter/core.cjs +39 -3
  65. package/dist/modelrouter/core.cjs.map +1 -1
  66. package/dist/modelrouter/core.d.ts +15 -2
  67. package/dist/modelrouter/core.js +9 -7
  68. package/dist/modelrouter/index.cjs +39 -3
  69. package/dist/modelrouter/index.cjs.map +1 -1
  70. package/dist/modelrouter/index.d.ts +2 -2
  71. package/dist/modelrouter/index.js +9 -7
  72. package/dist/modelrouter/types.cjs.map +1 -1
  73. package/dist/modelrouter/types.d.ts +24 -1
  74. package/dist/subagents/anthropic.cjs +1 -1
  75. package/dist/subagents/anthropic.cjs.map +1 -1
  76. package/dist/subagents/anthropic.js +9 -9
  77. package/dist/subagents/vercel.cjs +1 -1
  78. package/dist/subagents/vercel.cjs.map +1 -1
  79. package/dist/subagents/vercel.js +9 -9
  80. package/dist/tools/browser/anthropic.cjs +1 -1
  81. package/dist/tools/browser/anthropic.cjs.map +1 -1
  82. package/dist/tools/browser/anthropic.js +7 -7
  83. package/dist/tools/browser/core.cjs +1 -1
  84. package/dist/tools/browser/core.cjs.map +1 -1
  85. package/dist/tools/browser/core.js +6 -6
  86. package/dist/tools/browser/index.cjs +1 -1
  87. package/dist/tools/browser/index.cjs.map +1 -1
  88. package/dist/tools/browser/index.js +9 -9
  89. package/dist/tools/browser/openai.cjs +1 -1
  90. package/dist/tools/browser/openai.cjs.map +1 -1
  91. package/dist/tools/browser/openai.js +7 -7
  92. package/dist/tools/browser/profiles/core.cjs +1 -1
  93. package/dist/tools/browser/profiles/core.cjs.map +1 -1
  94. package/dist/tools/browser/profiles/core.js +3 -3
  95. package/dist/tools/browser/profiles/index.cjs +1 -1
  96. package/dist/tools/browser/profiles/index.cjs.map +1 -1
  97. package/dist/tools/browser/profiles/index.js +3 -3
  98. package/dist/tools/browser/vercel.cjs +1 -1
  99. package/dist/tools/browser/vercel.cjs.map +1 -1
  100. package/dist/tools/browser/vercel.js +7 -7
  101. package/dist/tools/codebase_search/anthropic.cjs +1 -1
  102. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  103. package/dist/tools/codebase_search/anthropic.js +6 -6
  104. package/dist/tools/codebase_search/core.cjs +1 -1
  105. package/dist/tools/codebase_search/core.cjs.map +1 -1
  106. package/dist/tools/codebase_search/core.js +5 -5
  107. package/dist/tools/codebase_search/index.cjs +1 -1
  108. package/dist/tools/codebase_search/index.cjs.map +1 -1
  109. package/dist/tools/codebase_search/index.js +8 -8
  110. package/dist/tools/codebase_search/openai.cjs +1 -1
  111. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  112. package/dist/tools/codebase_search/openai.js +6 -6
  113. package/dist/tools/codebase_search/vercel.cjs +1 -1
  114. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  115. package/dist/tools/codebase_search/vercel.js +6 -6
  116. package/dist/tools/compact/core.cjs +1 -1
  117. package/dist/tools/compact/core.cjs.map +1 -1
  118. package/dist/tools/compact/core.js +5 -5
  119. package/dist/tools/compact/index.cjs +1 -1
  120. package/dist/tools/compact/index.cjs.map +1 -1
  121. package/dist/tools/compact/index.js +6 -6
  122. package/dist/tools/fastapply/anthropic.cjs +1 -1
  123. package/dist/tools/fastapply/anthropic.cjs.map +1 -1
  124. package/dist/tools/fastapply/anthropic.js +7 -7
  125. package/dist/tools/fastapply/apply.cjs +1 -1
  126. package/dist/tools/fastapply/apply.cjs.map +1 -1
  127. package/dist/tools/fastapply/apply.js +2 -2
  128. package/dist/tools/fastapply/core.cjs +1 -1
  129. package/dist/tools/fastapply/core.cjs.map +1 -1
  130. package/dist/tools/fastapply/core.js +6 -6
  131. package/dist/tools/fastapply/index.cjs +1 -1
  132. package/dist/tools/fastapply/index.cjs.map +1 -1
  133. package/dist/tools/fastapply/index.js +9 -9
  134. package/dist/tools/fastapply/openai.cjs +1 -1
  135. package/dist/tools/fastapply/openai.cjs.map +1 -1
  136. package/dist/tools/fastapply/openai.js +7 -7
  137. package/dist/tools/fastapply/vercel.cjs +1 -1
  138. package/dist/tools/fastapply/vercel.cjs.map +1 -1
  139. package/dist/tools/fastapply/vercel.js +7 -7
  140. package/dist/tools/index.cjs +1 -1
  141. package/dist/tools/index.cjs.map +1 -1
  142. package/dist/tools/index.js +9 -9
  143. package/dist/tools/reflex/core.cjs +76 -7
  144. package/dist/tools/reflex/core.cjs.map +1 -1
  145. package/dist/tools/reflex/core.d.ts +8 -1
  146. package/dist/tools/reflex/core.js +5 -5
  147. package/dist/tools/reflex/index.cjs +76 -7
  148. package/dist/tools/reflex/index.cjs.map +1 -1
  149. package/dist/tools/reflex/index.js +5 -5
  150. package/dist/tools/reflex/types.cjs.map +1 -1
  151. package/dist/tools/reflex/types.d.ts +83 -4
  152. package/dist/tools/utils/resilience.cjs +1 -1
  153. package/dist/tools/utils/resilience.cjs.map +1 -1
  154. package/dist/tools/utils/resilience.js +2 -2
  155. package/dist/tools/warp_grep/agent/runner.cjs +1 -1
  156. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  157. package/dist/tools/warp_grep/agent/runner.js +2 -2
  158. package/dist/tools/warp_grep/anthropic.cjs +1 -1
  159. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  160. package/dist/tools/warp_grep/anthropic.js +9 -9
  161. package/dist/tools/warp_grep/client.cjs +1 -1
  162. package/dist/tools/warp_grep/client.cjs.map +1 -1
  163. package/dist/tools/warp_grep/client.js +8 -8
  164. package/dist/tools/warp_grep/gemini.cjs +1 -1
  165. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  166. package/dist/tools/warp_grep/gemini.js +8 -8
  167. package/dist/tools/warp_grep/index.cjs +1 -1
  168. package/dist/tools/warp_grep/index.cjs.map +1 -1
  169. package/dist/tools/warp_grep/index.js +8 -8
  170. package/dist/tools/warp_grep/openai.cjs +1 -1
  171. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  172. package/dist/tools/warp_grep/openai.js +9 -9
  173. package/dist/tools/warp_grep/vercel.cjs +1 -1
  174. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  175. package/dist/tools/warp_grep/vercel.js +9 -9
  176. package/dist/tracing/index.cjs.map +1 -1
  177. package/dist/tracing/types.cjs.map +1 -1
  178. package/dist/tracing/types.d.ts +9 -8
  179. package/dist/version.cjs +1 -1
  180. package/dist/version.cjs.map +1 -1
  181. package/dist/version.js +1 -1
  182. package/package.json +1 -1
  183. package/dist/chunk-2DLMZDDB.js.map +0 -1
  184. package/dist/chunk-D4XCP2ZE.js.map +0 -1
  185. /package/dist/{chunk-X4VPV3A7.js.map → chunk-2VETLL6C.js.map} +0 -0
  186. /package/dist/{chunk-AERVDGON.js.map → chunk-4DLGPMUS.js.map} +0 -0
  187. /package/dist/{chunk-QW33U4EI.js.map → chunk-4NDS3GQB.js.map} +0 -0
  188. /package/dist/{chunk-GVN6B4YX.js.map → chunk-4ZTI7JDJ.js.map} +0 -0
  189. /package/dist/{chunk-XEQZQTZR.js.map → chunk-AFMB2XGS.js.map} +0 -0
  190. /package/dist/{chunk-IS5TDLAJ.js.map → chunk-AWUIP46W.js.map} +0 -0
  191. /package/dist/{chunk-JG5MJI34.js.map → chunk-CTCRNGRP.js.map} +0 -0
  192. /package/dist/{chunk-IOZMMARY.js.map → chunk-DYGQ3BB5.js.map} +0 -0
  193. /package/dist/{chunk-DFTKUEF5.js.map → chunk-II3AF6LD.js.map} +0 -0
  194. /package/dist/{chunk-HXDITEO6.js.map → chunk-INXEXFQV.js.map} +0 -0
  195. /package/dist/{chunk-QAZM5ELA.js.map → chunk-KOTSWCSD.js.map} +0 -0
  196. /package/dist/{chunk-MWUFDBWQ.js.map → chunk-KP3YMV7Y.js.map} +0 -0
  197. /package/dist/{chunk-LDXKXBYN.js.map → chunk-KP5VIWLO.js.map} +0 -0
  198. /package/dist/{chunk-BN4IHFWR.js.map → chunk-LJ27CQI3.js.map} +0 -0
  199. /package/dist/{chunk-U4KCWD3I.js.map → chunk-LZUBCNTC.js.map} +0 -0
  200. /package/dist/{chunk-GZDRJBI2.js.map → chunk-MNDFDO2W.js.map} +0 -0
  201. /package/dist/{chunk-EAGSRHRT.js.map → chunk-MYBIXWNM.js.map} +0 -0
  202. /package/dist/{chunk-TDT6J2X4.js.map → chunk-NOX6MIA2.js.map} +0 -0
  203. /package/dist/{chunk-EJZFQAKT.js.map → chunk-OWY3P43T.js.map} +0 -0
  204. /package/dist/{chunk-OE2LFOYB.js.map → chunk-P63CYB3F.js.map} +0 -0
  205. /package/dist/{chunk-XYHP2TFY.js.map → chunk-PJWEGYOK.js.map} +0 -0
  206. /package/dist/{chunk-2WQTCETP.js.map → chunk-QAJW6FOO.js.map} +0 -0
  207. /package/dist/{chunk-WQC3YOER.js.map → chunk-TD2SQ6TQ.js.map} +0 -0
  208. /package/dist/{chunk-TBVIOQ5O.js.map → chunk-WJ2LQ3NR.js.map} +0 -0
  209. /package/dist/{chunk-35ZAMQ3A.js.map → chunk-X4JLZWGW.js.map} +0 -0
  210. /package/dist/{chunk-4RARO46V.js.map → chunk-X4XBY7VI.js.map} +0 -0
  211. /package/dist/{chunk-SX2P5ZUP.js.map → chunk-X5YEUR65.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  executeEditFile
3
- } from "./chunk-AERVDGON.js";
3
+ } from "./chunk-4DLGPMUS.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-EJZFQAKT.js.map
89
+ //# sourceMappingURL=chunk-OWY3P43T.js.map
@@ -8,7 +8,7 @@ import {
8
8
  executeGitHubReadFile,
9
9
  executeToolCall,
10
10
  executeToolCallStreaming
11
- } from "./chunk-35ZAMQ3A.js";
11
+ } from "./chunk-X4JLZWGW.js";
12
12
 
13
13
  // tools/warp_grep/vercel.ts
14
14
  import { tool } from "ai";
@@ -115,4 +115,4 @@ export {
115
115
  createGitHubReadFileTool,
116
116
  vercel_default
117
117
  };
118
- //# sourceMappingURL=chunk-OE2LFOYB.js.map
118
+ //# sourceMappingURL=chunk-P63CYB3F.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MorphAPIClient
3
- } from "./chunk-4RARO46V.js";
3
+ } from "./chunk-X4XBY7VI.js";
4
4
  import {
5
5
  APIResource
6
6
  } from "./chunk-LKFZBBTD.js";
@@ -558,4 +558,4 @@ var MorphGit = class extends APIResource {
558
558
  export {
559
559
  MorphGit
560
560
  };
561
- //# sourceMappingURL=chunk-XYHP2TFY.js.map
561
+ //# sourceMappingURL=chunk-PJWEGYOK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  executeEditFile
3
- } from "./chunk-AERVDGON.js";
3
+ } from "./chunk-4DLGPMUS.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-2WQTCETP.js.map
94
+ //# sourceMappingURL=chunk-QAJW6FOO.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  MorphAPIClient
3
- } from "./chunk-4RARO46V.js";
3
+ } from "./chunk-X4XBY7VI.js";
4
4
  import {
5
5
  MorphError
6
- } from "./chunk-LDXKXBYN.js";
6
+ } from "./chunk-KP5VIWLO.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-WQC3YOER.js.map
78
+ //# sourceMappingURL=chunk-TD2SQ6TQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CompactClient
3
- } from "./chunk-WQC3YOER.js";
3
+ } from "./chunk-TD2SQ6TQ.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-TBVIOQ5O.js.map
53
+ //# sourceMappingURL=chunk-WJ2LQ3NR.js.map
@@ -10,13 +10,13 @@ import {
10
10
  import {
11
11
  runWarpGrep,
12
12
  runWarpGrepStreaming
13
- } from "./chunk-MWUFDBWQ.js";
13
+ } from "./chunk-KP3YMV7Y.js";
14
14
  import {
15
15
  compactFileContexts
16
- } from "./chunk-TBVIOQ5O.js";
16
+ } from "./chunk-WJ2LQ3NR.js";
17
17
  import {
18
18
  MorphAPIClient
19
- } from "./chunk-4RARO46V.js";
19
+ } from "./chunk-X4XBY7VI.js";
20
20
  import {
21
21
  logger
22
22
  } from "./chunk-F3NCFNUX.js";
@@ -321,4 +321,4 @@ export {
321
321
  formatGitHubReadFileResult,
322
322
  formatResult
323
323
  };
324
- //# sourceMappingURL=chunk-35ZAMQ3A.js.map
324
+ //# sourceMappingURL=chunk-X4JLZWGW.js.map
@@ -3,15 +3,15 @@ import {
3
3
  } from "./chunk-F3NCFNUX.js";
4
4
  import {
5
5
  toMorphError
6
- } from "./chunk-X4VPV3A7.js";
6
+ } from "./chunk-2VETLL6C.js";
7
7
  import {
8
8
  MorphError,
9
9
  fetchWithRetry,
10
10
  withTimeout
11
- } from "./chunk-LDXKXBYN.js";
11
+ } from "./chunk-KP5VIWLO.js";
12
12
  import {
13
13
  SDK_VERSION
14
- } from "./chunk-4TMCQZNB.js";
14
+ } from "./chunk-GG4ATN6M.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-4RARO46V.js.map
120
+ //# sourceMappingURL=chunk-X4XBY7VI.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-2HMEZZKK.js";
5
5
  import {
6
6
  executeBrowserTask
7
- } from "./chunk-QW33U4EI.js";
7
+ } from "./chunk-4NDS3GQB.js";
8
8
  import {
9
9
  __export
10
10
  } from "./chunk-PZ5AY32C.js";
@@ -93,4 +93,4 @@ export {
93
93
  createBrowserTool,
94
94
  openai_exports
95
95
  };
96
- //# sourceMappingURL=chunk-SX2P5ZUP.js.map
96
+ //# sourceMappingURL=chunk-X5YEUR65.js.map
@@ -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.181",
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,49 @@ 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)
5075
+ };
5076
+ }
5077
+ /** List the caller's labeled examples (predictions that have been flagged). */
5078
+ async listLabels(input = {}) {
5079
+ const raw = await this._client.get("/v1/reflex/labels", {
5080
+ query: {
5081
+ model: input.model,
5082
+ verdict: input.verdict,
5083
+ limit: input.limit,
5084
+ after: input.after
5085
+ }
5086
+ });
5087
+ return {
5088
+ data: (raw.data ?? []).map(toReflexLabel),
5089
+ hasMore: Boolean(raw.has_more)
5056
5090
  };
5057
5091
  }
5058
5092
  };
@@ -5152,6 +5186,41 @@ function toReflexJob(raw) {
5152
5186
  suffix: raw.suffix ?? null
5153
5187
  };
5154
5188
  }
5189
+ function toPredictResult(raw, completionId) {
5190
+ const classes = (raw.classes ?? []).map((c) => ({
5191
+ classId: c.class_id,
5192
+ label: c.label,
5193
+ score: c.score,
5194
+ selected: c.selected
5195
+ }));
5196
+ const selectedClasses = classes.filter((c) => c.selected);
5197
+ const top = selectedClasses.reduce(
5198
+ (best, c) => best === null || c.score > best.score ? c : best,
5199
+ null
5200
+ );
5201
+ return {
5202
+ model: raw.model,
5203
+ mode: raw.mode === "multi_label" ? "multi_label" : "single_label",
5204
+ classes,
5205
+ selected: selectedClasses.map((c) => c.label),
5206
+ label: top ? top.label : null,
5207
+ confidence: top ? top.score : null,
5208
+ allScores: classes.map((c) => c.score),
5209
+ inferenceTimeMs: raw.inference_time_ms,
5210
+ completionId
5211
+ };
5212
+ }
5213
+ function toReflexLabel(raw) {
5214
+ return {
5215
+ resultId: raw.result_id,
5216
+ text: raw.text,
5217
+ model: raw.model,
5218
+ predictedLabel: raw.predicted_label ?? null,
5219
+ verdict: raw.verdict ?? null,
5220
+ correctedLabel: raw.corrected_label ?? null,
5221
+ createdAt: raw.created_at
5222
+ };
5223
+ }
5155
5224
  function toReflexEvent(raw) {
5156
5225
  return {
5157
5226
  id: raw.id,
@@ -5288,6 +5357,40 @@ var RawRouter = class extends BaseRouter {
5288
5357
  return { difficulty };
5289
5358
  }
5290
5359
  };
5360
+ var RouterClassifier = class extends APIResource {
5361
+ timeout;
5362
+ constructor(clientOrConfig = {}) {
5363
+ super(resolveClient3(clientOrConfig));
5364
+ const cfg = clientOrConfig instanceof MorphAPIClient ? {} : clientOrConfig;
5365
+ this.timeout = cfg.timeout ?? DEFAULT_TIMEOUT6;
5366
+ }
5367
+ /** Classify an input across the requested axes (all three by default). */
5368
+ async classify(input) {
5369
+ if (!this._client.resolveApiKey()) {
5370
+ throw new Error(
5371
+ "Morph API key is required. Set MORPH_API_KEY environment variable or pass apiKey in config."
5372
+ );
5373
+ }
5374
+ logger.debug("RouterClassifier", "request", { classes: input.classes ?? "all" });
5375
+ try {
5376
+ const res = await this._client.post("/v1/router/classify", {
5377
+ body: { input: input.input, ...input.classes ? { classes: input.classes } : {} },
5378
+ timeout: this.timeout
5379
+ });
5380
+ logger.debug("RouterClassifier", "classified", {
5381
+ difficulty: res.classifications.difficulty?.label,
5382
+ ambiguity: res.classifications.ambiguity?.label,
5383
+ domain: res.classifications.domain?.label
5384
+ });
5385
+ return res.classifications;
5386
+ } catch (error) {
5387
+ if (error instanceof MorphError) {
5388
+ throw new Error(`Router API error (${error.statusCode}): ${error.message}`);
5389
+ }
5390
+ throw error;
5391
+ }
5392
+ }
5393
+ };
5291
5394
 
5292
5395
  // tools/warp_grep/prompts.ts
5293
5396
  var WARP_GREP_TOOL_NAME = "codebase_search";
@@ -6731,7 +6834,8 @@ var MorphClient = class extends MorphAPIClient {
6731
6834
  openai: new OpenAIRouter(this),
6732
6835
  anthropic: new AnthropicRouter(this),
6733
6836
  gemini: new GeminiRouter(this),
6734
- raw: new RawRouter(this)
6837
+ raw: new RawRouter(this),
6838
+ classify: new RouterClassifier(this)
6735
6839
  };
6736
6840
  const compactClient = new CompactClient(this);
6737
6841
  this.compact = compactClient.compact.bind(compactClient);