@morphllm/morphsdk 0.2.181 → 0.2.183

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 (200) hide show
  1. package/dist/{chunk-QAJW6FOO.js → chunk-2ZJ7HYSD.js} +2 -2
  2. package/dist/{chunk-4DLGPMUS.js → chunk-3CKKTPPO.js} +2 -2
  3. package/dist/{chunk-TD2SQ6TQ.js → chunk-4AL5UU43.js} +3 -3
  4. package/dist/{chunk-AWUIP46W.js → chunk-4CAD3PJZ.js} +2 -2
  5. package/dist/{chunk-LZUBCNTC.js → chunk-4FZMH2PJ.js} +2 -2
  6. package/dist/{chunk-CIBOCK5C.js → chunk-57TTNFVC.js} +3 -3
  7. package/dist/{chunk-X5YEUR65.js → chunk-5B37BXPY.js} +2 -2
  8. package/dist/{chunk-X4XBY7VI.js → chunk-5Y46GS6X.js} +4 -4
  9. package/dist/{chunk-2VETLL6C.js → chunk-6RGCQJCA.js} +2 -2
  10. package/dist/{chunk-NOX6MIA2.js → chunk-7POEHIJD.js} +2 -2
  11. package/dist/{chunk-LJ27CQI3.js → chunk-7PTLVOSX.js} +2 -2
  12. package/dist/{chunk-KOTSWCSD.js → chunk-ALIS2RQM.js} +2 -2
  13. package/dist/{chunk-WJ2LQ3NR.js → chunk-BIENM7HG.js} +2 -2
  14. package/dist/{chunk-GG4ATN6M.js → chunk-D2KFCCAO.js} +2 -2
  15. package/dist/{chunk-GG4ATN6M.js.map → chunk-D2KFCCAO.js.map} +1 -1
  16. package/dist/{chunk-AFMB2XGS.js → chunk-F2AEMPYM.js} +2 -2
  17. package/dist/{chunk-II3AF6LD.js → chunk-FJCXN2MZ.js} +2 -2
  18. package/dist/{chunk-CTCRNGRP.js → chunk-FTEHMPEN.js} +2 -2
  19. package/dist/{chunk-MYBIXWNM.js → chunk-H4Z53LJO.js} +2 -2
  20. package/dist/{chunk-X4JLZWGW.js → chunk-HC3E2X3Q.js} +4 -4
  21. package/dist/{chunk-INXEXFQV.js → chunk-L6XLP5KW.js} +2 -2
  22. package/dist/{chunk-OWY3P43T.js → chunk-MZSQVPMW.js} +2 -2
  23. package/dist/{chunk-KP3YMV7Y.js → chunk-Q4FFGCHN.js} +2 -2
  24. package/dist/{chunk-DYGQ3BB5.js → chunk-Q5YPHAVJ.js} +2 -2
  25. package/dist/{chunk-MNDFDO2W.js → chunk-RVQWKMNC.js} +2 -2
  26. package/dist/{chunk-PJWEGYOK.js → chunk-SNEZIVPK.js} +2 -2
  27. package/dist/{chunk-P63CYB3F.js → chunk-VLE7NFGC.js} +2 -2
  28. package/dist/{chunk-KP5VIWLO.js → chunk-XZSCODV4.js} +2 -2
  29. package/dist/{chunk-4NDS3GQB.js → chunk-YJMW3BWV.js} +4 -4
  30. package/dist/{chunk-J7BZPA63.js → chunk-YQCT5FNK.js} +3 -29
  31. package/dist/chunk-YQCT5FNK.js.map +1 -0
  32. package/dist/{chunk-4ZTI7JDJ.js → chunk-Z34FIIIY.js} +3 -3
  33. package/dist/{chunk-IHVQKX6U.js → chunk-ZP25QXTM.js} +21 -21
  34. package/dist/client.cjs +1 -27
  35. package/dist/client.cjs.map +1 -1
  36. package/dist/client.js +28 -28
  37. package/dist/core/client.cjs +1 -1
  38. package/dist/core/client.cjs.map +1 -1
  39. package/dist/core/client.js +4 -4
  40. package/dist/core/error.cjs +1 -1
  41. package/dist/core/error.cjs.map +1 -1
  42. package/dist/core/error.js +3 -3
  43. package/dist/core/index.cjs +1 -1
  44. package/dist/core/index.cjs.map +1 -1
  45. package/dist/core/index.js +4 -4
  46. package/dist/edge.cjs +1 -1
  47. package/dist/edge.cjs.map +1 -1
  48. package/dist/edge.js +7 -7
  49. package/dist/git/client.cjs +1 -1
  50. package/dist/git/client.cjs.map +1 -1
  51. package/dist/git/client.js +5 -5
  52. package/dist/git/index.cjs +1 -1
  53. package/dist/git/index.cjs.map +1 -1
  54. package/dist/git/index.js +5 -5
  55. package/dist/index.cjs +1 -27
  56. package/dist/index.cjs.map +1 -1
  57. package/dist/index.d.ts +1 -1
  58. package/dist/index.js +28 -28
  59. package/dist/modelrouter/core.cjs +1 -1
  60. package/dist/modelrouter/core.cjs.map +1 -1
  61. package/dist/modelrouter/core.js +5 -5
  62. package/dist/modelrouter/index.cjs +1 -1
  63. package/dist/modelrouter/index.cjs.map +1 -1
  64. package/dist/modelrouter/index.js +5 -5
  65. package/dist/subagents/anthropic.cjs +1 -1
  66. package/dist/subagents/anthropic.cjs.map +1 -1
  67. package/dist/subagents/anthropic.js +9 -9
  68. package/dist/subagents/vercel.cjs +1 -1
  69. package/dist/subagents/vercel.cjs.map +1 -1
  70. package/dist/subagents/vercel.js +9 -9
  71. package/dist/tools/browser/anthropic.cjs +1 -1
  72. package/dist/tools/browser/anthropic.cjs.map +1 -1
  73. package/dist/tools/browser/anthropic.js +7 -7
  74. package/dist/tools/browser/core.cjs +1 -1
  75. package/dist/tools/browser/core.cjs.map +1 -1
  76. package/dist/tools/browser/core.js +6 -6
  77. package/dist/tools/browser/index.cjs +1 -1
  78. package/dist/tools/browser/index.cjs.map +1 -1
  79. package/dist/tools/browser/index.js +9 -9
  80. package/dist/tools/browser/openai.cjs +1 -1
  81. package/dist/tools/browser/openai.cjs.map +1 -1
  82. package/dist/tools/browser/openai.js +7 -7
  83. package/dist/tools/browser/profiles/core.cjs +1 -1
  84. package/dist/tools/browser/profiles/core.cjs.map +1 -1
  85. package/dist/tools/browser/profiles/core.js +3 -3
  86. package/dist/tools/browser/profiles/index.cjs +1 -1
  87. package/dist/tools/browser/profiles/index.cjs.map +1 -1
  88. package/dist/tools/browser/profiles/index.js +3 -3
  89. package/dist/tools/browser/vercel.cjs +1 -1
  90. package/dist/tools/browser/vercel.cjs.map +1 -1
  91. package/dist/tools/browser/vercel.js +7 -7
  92. package/dist/tools/codebase_search/anthropic.cjs +1 -1
  93. package/dist/tools/codebase_search/anthropic.cjs.map +1 -1
  94. package/dist/tools/codebase_search/anthropic.js +6 -6
  95. package/dist/tools/codebase_search/core.cjs +1 -1
  96. package/dist/tools/codebase_search/core.cjs.map +1 -1
  97. package/dist/tools/codebase_search/core.js +5 -5
  98. package/dist/tools/codebase_search/index.cjs +1 -1
  99. package/dist/tools/codebase_search/index.cjs.map +1 -1
  100. package/dist/tools/codebase_search/index.js +8 -8
  101. package/dist/tools/codebase_search/openai.cjs +1 -1
  102. package/dist/tools/codebase_search/openai.cjs.map +1 -1
  103. package/dist/tools/codebase_search/openai.js +6 -6
  104. package/dist/tools/codebase_search/vercel.cjs +1 -1
  105. package/dist/tools/codebase_search/vercel.cjs.map +1 -1
  106. package/dist/tools/codebase_search/vercel.js +6 -6
  107. package/dist/tools/compact/core.cjs +1 -1
  108. package/dist/tools/compact/core.cjs.map +1 -1
  109. package/dist/tools/compact/core.js +5 -5
  110. package/dist/tools/compact/index.cjs +1 -1
  111. package/dist/tools/compact/index.cjs.map +1 -1
  112. package/dist/tools/compact/index.js +6 -6
  113. package/dist/tools/fastapply/anthropic.cjs +1 -1
  114. package/dist/tools/fastapply/anthropic.cjs.map +1 -1
  115. package/dist/tools/fastapply/anthropic.js +7 -7
  116. package/dist/tools/fastapply/apply.cjs +1 -1
  117. package/dist/tools/fastapply/apply.cjs.map +1 -1
  118. package/dist/tools/fastapply/apply.js +2 -2
  119. package/dist/tools/fastapply/core.cjs +1 -1
  120. package/dist/tools/fastapply/core.cjs.map +1 -1
  121. package/dist/tools/fastapply/core.js +6 -6
  122. package/dist/tools/fastapply/index.cjs +1 -1
  123. package/dist/tools/fastapply/index.cjs.map +1 -1
  124. package/dist/tools/fastapply/index.js +9 -9
  125. package/dist/tools/fastapply/openai.cjs +1 -1
  126. package/dist/tools/fastapply/openai.cjs.map +1 -1
  127. package/dist/tools/fastapply/openai.js +7 -7
  128. package/dist/tools/fastapply/vercel.cjs +1 -1
  129. package/dist/tools/fastapply/vercel.cjs.map +1 -1
  130. package/dist/tools/fastapply/vercel.js +7 -7
  131. package/dist/tools/index.cjs +1 -1
  132. package/dist/tools/index.cjs.map +1 -1
  133. package/dist/tools/index.js +9 -9
  134. package/dist/tools/reflex/core.cjs +1 -27
  135. package/dist/tools/reflex/core.cjs.map +1 -1
  136. package/dist/tools/reflex/core.d.ts +1 -3
  137. package/dist/tools/reflex/core.js +5 -5
  138. package/dist/tools/reflex/index.cjs +1 -27
  139. package/dist/tools/reflex/index.cjs.map +1 -1
  140. package/dist/tools/reflex/index.js +5 -5
  141. package/dist/tools/reflex/types.cjs.map +1 -1
  142. package/dist/tools/reflex/types.d.ts +2 -25
  143. package/dist/tools/utils/resilience.cjs +1 -1
  144. package/dist/tools/utils/resilience.cjs.map +1 -1
  145. package/dist/tools/utils/resilience.js +2 -2
  146. package/dist/tools/warp_grep/agent/runner.cjs +1 -1
  147. package/dist/tools/warp_grep/agent/runner.cjs.map +1 -1
  148. package/dist/tools/warp_grep/agent/runner.js +2 -2
  149. package/dist/tools/warp_grep/anthropic.cjs +1 -1
  150. package/dist/tools/warp_grep/anthropic.cjs.map +1 -1
  151. package/dist/tools/warp_grep/anthropic.js +9 -9
  152. package/dist/tools/warp_grep/client.cjs +1 -1
  153. package/dist/tools/warp_grep/client.cjs.map +1 -1
  154. package/dist/tools/warp_grep/client.js +8 -8
  155. package/dist/tools/warp_grep/gemini.cjs +1 -1
  156. package/dist/tools/warp_grep/gemini.cjs.map +1 -1
  157. package/dist/tools/warp_grep/gemini.js +8 -8
  158. package/dist/tools/warp_grep/index.cjs +1 -1
  159. package/dist/tools/warp_grep/index.cjs.map +1 -1
  160. package/dist/tools/warp_grep/index.js +8 -8
  161. package/dist/tools/warp_grep/openai.cjs +1 -1
  162. package/dist/tools/warp_grep/openai.cjs.map +1 -1
  163. package/dist/tools/warp_grep/openai.js +9 -9
  164. package/dist/tools/warp_grep/vercel.cjs +1 -1
  165. package/dist/tools/warp_grep/vercel.cjs.map +1 -1
  166. package/dist/tools/warp_grep/vercel.js +9 -9
  167. package/dist/version.cjs +1 -1
  168. package/dist/version.cjs.map +1 -1
  169. package/dist/version.js +1 -1
  170. package/package.json +1 -1
  171. package/dist/chunk-J7BZPA63.js.map +0 -1
  172. /package/dist/{chunk-QAJW6FOO.js.map → chunk-2ZJ7HYSD.js.map} +0 -0
  173. /package/dist/{chunk-4DLGPMUS.js.map → chunk-3CKKTPPO.js.map} +0 -0
  174. /package/dist/{chunk-TD2SQ6TQ.js.map → chunk-4AL5UU43.js.map} +0 -0
  175. /package/dist/{chunk-AWUIP46W.js.map → chunk-4CAD3PJZ.js.map} +0 -0
  176. /package/dist/{chunk-LZUBCNTC.js.map → chunk-4FZMH2PJ.js.map} +0 -0
  177. /package/dist/{chunk-CIBOCK5C.js.map → chunk-57TTNFVC.js.map} +0 -0
  178. /package/dist/{chunk-X5YEUR65.js.map → chunk-5B37BXPY.js.map} +0 -0
  179. /package/dist/{chunk-X4XBY7VI.js.map → chunk-5Y46GS6X.js.map} +0 -0
  180. /package/dist/{chunk-2VETLL6C.js.map → chunk-6RGCQJCA.js.map} +0 -0
  181. /package/dist/{chunk-NOX6MIA2.js.map → chunk-7POEHIJD.js.map} +0 -0
  182. /package/dist/{chunk-LJ27CQI3.js.map → chunk-7PTLVOSX.js.map} +0 -0
  183. /package/dist/{chunk-KOTSWCSD.js.map → chunk-ALIS2RQM.js.map} +0 -0
  184. /package/dist/{chunk-WJ2LQ3NR.js.map → chunk-BIENM7HG.js.map} +0 -0
  185. /package/dist/{chunk-AFMB2XGS.js.map → chunk-F2AEMPYM.js.map} +0 -0
  186. /package/dist/{chunk-II3AF6LD.js.map → chunk-FJCXN2MZ.js.map} +0 -0
  187. /package/dist/{chunk-CTCRNGRP.js.map → chunk-FTEHMPEN.js.map} +0 -0
  188. /package/dist/{chunk-MYBIXWNM.js.map → chunk-H4Z53LJO.js.map} +0 -0
  189. /package/dist/{chunk-X4JLZWGW.js.map → chunk-HC3E2X3Q.js.map} +0 -0
  190. /package/dist/{chunk-INXEXFQV.js.map → chunk-L6XLP5KW.js.map} +0 -0
  191. /package/dist/{chunk-OWY3P43T.js.map → chunk-MZSQVPMW.js.map} +0 -0
  192. /package/dist/{chunk-KP3YMV7Y.js.map → chunk-Q4FFGCHN.js.map} +0 -0
  193. /package/dist/{chunk-DYGQ3BB5.js.map → chunk-Q5YPHAVJ.js.map} +0 -0
  194. /package/dist/{chunk-MNDFDO2W.js.map → chunk-RVQWKMNC.js.map} +0 -0
  195. /package/dist/{chunk-PJWEGYOK.js.map → chunk-SNEZIVPK.js.map} +0 -0
  196. /package/dist/{chunk-P63CYB3F.js.map → chunk-VLE7NFGC.js.map} +0 -0
  197. /package/dist/{chunk-KP5VIWLO.js.map → chunk-XZSCODV4.js.map} +0 -0
  198. /package/dist/{chunk-4NDS3GQB.js.map → chunk-YJMW3BWV.js.map} +0 -0
  199. /package/dist/{chunk-4ZTI7JDJ.js.map → chunk-Z34FIIIY.js.map} +0 -0
  200. /package/dist/{chunk-IHVQKX6U.js.map → chunk-ZP25QXTM.js.map} +0 -0
@@ -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,12 +1,12 @@
1
1
  import {
2
2
  MorphAPIClient
3
- } from "./chunk-X4XBY7VI.js";
3
+ } from "./chunk-5Y46GS6X.js";
4
4
  import {
5
5
  logger
6
6
  } from "./chunk-F3NCFNUX.js";
7
7
  import {
8
8
  MorphError
9
- } from "./chunk-KP5VIWLO.js";
9
+ } from "./chunk-XZSCODV4.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-4ZTI7JDJ.js.map
97
+ //# sourceMappingURL=chunk-Z34FIIIY.js.map
@@ -1,70 +1,70 @@
1
1
  import {
2
2
  createGitHubSearchTool as createGitHubSearchTool3,
3
3
  createWarpGrepTool as createWarpGrepTool3
4
- } from "./chunk-P63CYB3F.js";
4
+ } from "./chunk-VLE7NFGC.js";
5
5
  import {
6
6
  createGitHubSearchTool as createGitHubSearchTool2,
7
7
  createWarpGrepTool as createWarpGrepTool2
8
- } from "./chunk-AWUIP46W.js";
8
+ } from "./chunk-4CAD3PJZ.js";
9
9
  import {
10
10
  createGitHubSearchTool,
11
11
  createWarpGrepTool
12
- } from "./chunk-KOTSWCSD.js";
12
+ } from "./chunk-ALIS2RQM.js";
13
13
  import {
14
14
  ReflexClient
15
- } from "./chunk-J7BZPA63.js";
15
+ } from "./chunk-YQCT5FNK.js";
16
16
  import {
17
17
  createCodebaseSearchTool as createCodebaseSearchTool3
18
- } from "./chunk-II3AF6LD.js";
18
+ } from "./chunk-FJCXN2MZ.js";
19
19
  import {
20
20
  createCodebaseSearchTool as createCodebaseSearchTool2
21
- } from "./chunk-INXEXFQV.js";
21
+ } from "./chunk-L6XLP5KW.js";
22
22
  import {
23
23
  createCodebaseSearchTool
24
- } from "./chunk-CTCRNGRP.js";
24
+ } from "./chunk-FTEHMPEN.js";
25
25
  import {
26
26
  CodebaseSearchClient
27
- } from "./chunk-4ZTI7JDJ.js";
27
+ } from "./chunk-Z34FIIIY.js";
28
28
  import {
29
29
  BrowserClient
30
- } from "./chunk-4NDS3GQB.js";
30
+ } from "./chunk-YJMW3BWV.js";
31
31
  import {
32
32
  createExploreSubagent as createExploreSubagent2
33
- } from "./chunk-MNDFDO2W.js";
33
+ } from "./chunk-RVQWKMNC.js";
34
34
  import {
35
35
  createEditFileTool
36
- } from "./chunk-QAJW6FOO.js";
36
+ } from "./chunk-2ZJ7HYSD.js";
37
37
  import {
38
38
  createEditFileTool as createEditFileTool3
39
- } from "./chunk-OWY3P43T.js";
39
+ } from "./chunk-MZSQVPMW.js";
40
40
  import {
41
41
  createEditFileTool as createEditFileTool2
42
- } from "./chunk-DYGQ3BB5.js";
42
+ } from "./chunk-Q5YPHAVJ.js";
43
43
  import {
44
44
  FastApplyClient
45
- } from "./chunk-4DLGPMUS.js";
45
+ } from "./chunk-3CKKTPPO.js";
46
46
  import {
47
47
  MorphGit
48
- } from "./chunk-PJWEGYOK.js";
48
+ } from "./chunk-SNEZIVPK.js";
49
49
  import {
50
50
  createExploreSubagent
51
- } from "./chunk-AFMB2XGS.js";
51
+ } from "./chunk-F2AEMPYM.js";
52
52
  import {
53
53
  WarpGrepClient
54
- } from "./chunk-X4JLZWGW.js";
54
+ } from "./chunk-HC3E2X3Q.js";
55
55
  import {
56
56
  AnthropicRouter,
57
57
  GeminiRouter,
58
58
  OpenAIRouter,
59
59
  RawRouter,
60
60
  RouterClassifier
61
- } from "./chunk-CIBOCK5C.js";
61
+ } from "./chunk-57TTNFVC.js";
62
62
  import {
63
63
  CompactClient
64
- } from "./chunk-TD2SQ6TQ.js";
64
+ } from "./chunk-4AL5UU43.js";
65
65
  import {
66
66
  MorphAPIClient
67
- } from "./chunk-X4XBY7VI.js";
67
+ } from "./chunk-5Y46GS6X.js";
68
68
  import {
69
69
  logger
70
70
  } from "./chunk-F3NCFNUX.js";
@@ -689,4 +689,4 @@ export {
689
689
  VercelToolFactory,
690
690
  MorphClient
691
691
  };
692
- //# sourceMappingURL=chunk-IHVQKX6U.js.map
692
+ //# sourceMappingURL=chunk-ZP25QXTM.js.map
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.181",
39
+ version: "0.2.183",
40
40
  description: "TypeScript SDK and CLI for Morph Fast Apply integration",
41
41
  type: "module",
42
42
  main: "./dist/index.cjs",
@@ -5074,21 +5074,6 @@ var ReflexClient = class extends APIResource {
5074
5074
  flagged: Boolean(raw.flagged)
5075
5075
  };
5076
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)
5090
- };
5091
- }
5092
5077
  };
5093
5078
  var ReflexJobsResource = class extends APIResource {
5094
5079
  /** Start a training job from labeled data, a description, or unlabeled text. */
@@ -5210,17 +5195,6 @@ function toPredictResult(raw, completionId) {
5210
5195
  completionId
5211
5196
  };
5212
5197
  }
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
- }
5224
5198
  function toReflexEvent(raw) {
5225
5199
  return {
5226
5200
  id: raw.id,