@proofhound/web-ui 0.1.6

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 (483) hide show
  1. package/LICENSE +190 -0
  2. package/dist/components/annotations/annotation-claim-dialog.d.ts +13 -0
  3. package/dist/components/annotations/annotation-claim-dialog.d.ts.map +1 -0
  4. package/dist/components/annotations/annotation-claim-dialog.js +60 -0
  5. package/dist/components/annotations/annotation-claim-dialog.js.map +1 -0
  6. package/dist/components/charts/source-legend.d.ts +10 -0
  7. package/dist/components/charts/source-legend.d.ts.map +1 -0
  8. package/dist/components/charts/source-legend.js +15 -0
  9. package/dist/components/charts/source-legend.js.map +1 -0
  10. package/dist/components/charts/source-stacked-bar.d.ts +22 -0
  11. package/dist/components/charts/source-stacked-bar.d.ts.map +1 -0
  12. package/dist/components/charts/source-stacked-bar.js +43 -0
  13. package/dist/components/charts/source-stacked-bar.js.map +1 -0
  14. package/dist/components/index.d.ts +15 -0
  15. package/dist/components/index.d.ts.map +1 -0
  16. package/dist/components/index.js +17 -0
  17. package/dist/components/index.js.map +1 -0
  18. package/dist/components/json-object-textarea.d.ts +11 -0
  19. package/dist/components/json-object-textarea.d.ts.map +1 -0
  20. package/dist/components/json-object-textarea.js +82 -0
  21. package/dist/components/json-object-textarea.js.map +1 -0
  22. package/dist/components/model-context-window-input.d.ts +15 -0
  23. package/dist/components/model-context-window-input.d.ts.map +1 -0
  24. package/dist/components/model-context-window-input.js +57 -0
  25. package/dist/components/model-context-window-input.js.map +1 -0
  26. package/dist/components/model-probe-status.d.ts +11 -0
  27. package/dist/components/model-probe-status.d.ts.map +1 -0
  28. package/dist/components/model-probe-status.js +34 -0
  29. package/dist/components/model-probe-status.js.map +1 -0
  30. package/dist/components/prompt-diff/prompt-diff-split-view.d.ts +28 -0
  31. package/dist/components/prompt-diff/prompt-diff-split-view.d.ts.map +1 -0
  32. package/dist/components/prompt-diff/prompt-diff-split-view.js +101 -0
  33. package/dist/components/prompt-diff/prompt-diff-split-view.js.map +1 -0
  34. package/dist/components/prompt-language-select.d.ts +13 -0
  35. package/dist/components/prompt-language-select.d.ts.map +1 -0
  36. package/dist/components/prompt-language-select.js +14 -0
  37. package/dist/components/prompt-language-select.js.map +1 -0
  38. package/dist/components/prompt-version-picker-row.d.ts +27 -0
  39. package/dist/components/prompt-version-picker-row.d.ts.map +1 -0
  40. package/dist/components/prompt-version-picker-row.js +50 -0
  41. package/dist/components/prompt-version-picker-row.js.map +1 -0
  42. package/dist/components/prompt-version-status-badge.d.ts +8 -0
  43. package/dist/components/prompt-version-status-badge.d.ts.map +1 -0
  44. package/dist/components/prompt-version-status-badge.js +31 -0
  45. package/dist/components/prompt-version-status-badge.js.map +1 -0
  46. package/dist/components/quick-fill/quick-fill-picker.d.ts +42 -0
  47. package/dist/components/quick-fill/quick-fill-picker.d.ts.map +1 -0
  48. package/dist/components/quick-fill/quick-fill-picker.js +46 -0
  49. package/dist/components/quick-fill/quick-fill-picker.js.map +1 -0
  50. package/dist/components/time-zone-preference-menu.d.ts +10 -0
  51. package/dist/components/time-zone-preference-menu.d.ts.map +1 -0
  52. package/dist/components/time-zone-preference-menu.js +33 -0
  53. package/dist/components/time-zone-preference-menu.js.map +1 -0
  54. package/dist/contracts/index.d.ts +13 -0
  55. package/dist/contracts/index.d.ts.map +1 -0
  56. package/dist/contracts/index.js +7 -0
  57. package/dist/contracts/index.js.map +1 -0
  58. package/dist/features/index.d.ts +3 -0
  59. package/dist/features/index.d.ts.map +1 -0
  60. package/dist/features/index.js +4 -0
  61. package/dist/features/index.js.map +1 -0
  62. package/dist/features/model-quick-fill/model-preset-draft.d.ts +19 -0
  63. package/dist/features/model-quick-fill/model-preset-draft.d.ts.map +1 -0
  64. package/dist/features/model-quick-fill/model-preset-draft.js +22 -0
  65. package/dist/features/model-quick-fill/model-preset-draft.js.map +1 -0
  66. package/dist/features/model-quick-fill/model-preset-quick-fill.d.ts +7 -0
  67. package/dist/features/model-quick-fill/model-preset-quick-fill.d.ts.map +1 -0
  68. package/dist/features/model-quick-fill/model-preset-quick-fill.js +73 -0
  69. package/dist/features/model-quick-fill/model-preset-quick-fill.js.map +1 -0
  70. package/dist/hooks/annotation.d.ts +253 -0
  71. package/dist/hooks/annotation.d.ts.map +1 -0
  72. package/dist/hooks/annotation.js +79 -0
  73. package/dist/hooks/annotation.js.map +1 -0
  74. package/dist/hooks/canary-release.d.ts +674 -0
  75. package/dist/hooks/canary-release.d.ts.map +1 -0
  76. package/dist/hooks/canary-release.js +142 -0
  77. package/dist/hooks/canary-release.js.map +1 -0
  78. package/dist/hooks/connector.d.ts +585 -0
  79. package/dist/hooks/connector.d.ts.map +1 -0
  80. package/dist/hooks/connector.js +157 -0
  81. package/dist/hooks/connector.js.map +1 -0
  82. package/dist/hooks/dataset.d.ts +138 -0
  83. package/dist/hooks/dataset.d.ts.map +1 -0
  84. package/dist/hooks/dataset.js +84 -0
  85. package/dist/hooks/dataset.js.map +1 -0
  86. package/dist/hooks/experiment.d.ts +376 -0
  87. package/dist/hooks/experiment.d.ts.map +1 -0
  88. package/dist/hooks/experiment.js +58 -0
  89. package/dist/hooks/experiment.js.map +1 -0
  90. package/dist/hooks/index.d.ts +18 -0
  91. package/dist/hooks/index.d.ts.map +1 -0
  92. package/dist/hooks/index.js +18 -0
  93. package/dist/hooks/index.js.map +1 -0
  94. package/dist/hooks/model.d.ts +327 -0
  95. package/dist/hooks/model.d.ts.map +1 -0
  96. package/dist/hooks/model.js +103 -0
  97. package/dist/hooks/model.js.map +1 -0
  98. package/dist/hooks/optimization.d.ts +557 -0
  99. package/dist/hooks/optimization.d.ts.map +1 -0
  100. package/dist/hooks/optimization.js +94 -0
  101. package/dist/hooks/optimization.js.map +1 -0
  102. package/dist/hooks/production-release.d.ts +141 -0
  103. package/dist/hooks/production-release.d.ts.map +1 -0
  104. package/dist/hooks/production-release.js +51 -0
  105. package/dist/hooks/production-release.js.map +1 -0
  106. package/dist/hooks/project-monitoring.d.ts +199 -0
  107. package/dist/hooks/project-monitoring.d.ts.map +1 -0
  108. package/dist/hooks/project-monitoring.js +55 -0
  109. package/dist/hooks/project-monitoring.js.map +1 -0
  110. package/dist/hooks/prompt.d.ts +509 -0
  111. package/dist/hooks/prompt.d.ts.map +1 -0
  112. package/dist/hooks/prompt.js +127 -0
  113. package/dist/hooks/prompt.js.map +1 -0
  114. package/dist/hooks/quick-start.d.ts +219 -0
  115. package/dist/hooks/quick-start.d.ts.map +1 -0
  116. package/dist/hooks/quick-start.js +35 -0
  117. package/dist/hooks/quick-start.js.map +1 -0
  118. package/dist/hooks/release-line.d.ts +819 -0
  119. package/dist/hooks/release-line.d.ts.map +1 -0
  120. package/dist/hooks/release-line.js +52 -0
  121. package/dist/hooks/release-line.js.map +1 -0
  122. package/dist/hooks/run-result.d.ts +118 -0
  123. package/dist/hooks/run-result.d.ts.map +1 -0
  124. package/dist/hooks/run-result.js +56 -0
  125. package/dist/hooks/run-result.js.map +1 -0
  126. package/dist/hooks/token.d.ts +58 -0
  127. package/dist/hooks/token.d.ts.map +1 -0
  128. package/dist/hooks/token.js +39 -0
  129. package/dist/hooks/token.js.map +1 -0
  130. package/dist/hooks/use-auto-refresh.d.ts +30 -0
  131. package/dist/hooks/use-auto-refresh.d.ts.map +1 -0
  132. package/dist/hooks/use-auto-refresh.js +175 -0
  133. package/dist/hooks/use-auto-refresh.js.map +1 -0
  134. package/dist/hooks/use-date-time-formatter.d.ts +11 -0
  135. package/dist/hooks/use-date-time-formatter.d.ts.map +1 -0
  136. package/dist/hooks/use-date-time-formatter.js +24 -0
  137. package/dist/hooks/use-date-time-formatter.js.map +1 -0
  138. package/dist/hooks/use-delayed-loading.d.ts +25 -0
  139. package/dist/hooks/use-delayed-loading.d.ts.map +1 -0
  140. package/dist/hooks/use-delayed-loading.js +95 -0
  141. package/dist/hooks/use-delayed-loading.js.map +1 -0
  142. package/dist/i18n/index.d.ts +5678 -0
  143. package/dist/i18n/index.d.ts.map +1 -0
  144. package/dist/i18n/index.js +5712 -0
  145. package/dist/i18n/index.js.map +1 -0
  146. package/dist/i18n/language.d.ts +17 -0
  147. package/dist/i18n/language.d.ts.map +1 -0
  148. package/dist/i18n/language.js +43 -0
  149. package/dist/i18n/language.js.map +1 -0
  150. package/dist/index.d.ts +2 -0
  151. package/dist/index.d.ts.map +1 -0
  152. package/dist/index.js +2 -0
  153. package/dist/index.js.map +1 -0
  154. package/dist/lib/api-error.d.ts +2 -0
  155. package/dist/lib/api-error.d.ts.map +1 -0
  156. package/dist/lib/api-error.js +38 -0
  157. package/dist/lib/api-error.js.map +1 -0
  158. package/dist/lib/format.d.ts +30 -0
  159. package/dist/lib/format.d.ts.map +1 -0
  160. package/dist/lib/format.js +157 -0
  161. package/dist/lib/format.js.map +1 -0
  162. package/dist/lib/index.d.ts +8 -0
  163. package/dist/lib/index.d.ts.map +1 -0
  164. package/dist/lib/index.js +8 -0
  165. package/dist/lib/index.js.map +1 -0
  166. package/dist/lib/model-number.d.ts +2 -0
  167. package/dist/lib/model-number.d.ts.map +1 -0
  168. package/dist/lib/model-number.js +18 -0
  169. package/dist/lib/model-number.js.map +1 -0
  170. package/dist/lib/model-provider-type.d.ts +7 -0
  171. package/dist/lib/model-provider-type.d.ts.map +1 -0
  172. package/dist/lib/model-provider-type.js +28 -0
  173. package/dist/lib/model-provider-type.js.map +1 -0
  174. package/dist/lib/project-name.d.ts +7 -0
  175. package/dist/lib/project-name.d.ts.map +1 -0
  176. package/dist/lib/project-name.js +14 -0
  177. package/dist/lib/project-name.js.map +1 -0
  178. package/dist/lib/releases/release-line-model.d.ts +55 -0
  179. package/dist/lib/releases/release-line-model.d.ts.map +1 -0
  180. package/dist/lib/releases/release-line-model.js +476 -0
  181. package/dist/lib/releases/release-line-model.js.map +1 -0
  182. package/dist/lib/time-zone.d.ts +14 -0
  183. package/dist/lib/time-zone.d.ts.map +1 -0
  184. package/dist/lib/time-zone.js +118 -0
  185. package/dist/lib/time-zone.js.map +1 -0
  186. package/dist/lib/uuid.d.ts +2 -0
  187. package/dist/lib/uuid.d.ts.map +1 -0
  188. package/dist/lib/uuid.js +5 -0
  189. package/dist/lib/uuid.js.map +1 -0
  190. package/dist/providers/display-preferences-provider.d.ts +18 -0
  191. package/dist/providers/display-preferences-provider.d.ts.map +1 -0
  192. package/dist/providers/display-preferences-provider.js +46 -0
  193. package/dist/providers/display-preferences-provider.js.map +1 -0
  194. package/dist/providers/index.d.ts +5 -0
  195. package/dist/providers/index.d.ts.map +1 -0
  196. package/dist/providers/index.js +5 -0
  197. package/dist/providers/index.js.map +1 -0
  198. package/dist/providers/project-context-provider.d.ts +8 -0
  199. package/dist/providers/project-context-provider.d.ts.map +1 -0
  200. package/dist/providers/project-context-provider.js +15 -0
  201. package/dist/providers/project-context-provider.js.map +1 -0
  202. package/dist/providers/proofhound-web-provider.d.ts +9 -0
  203. package/dist/providers/proofhound-web-provider.d.ts.map +1 -0
  204. package/dist/providers/proofhound-web-provider.js +44 -0
  205. package/dist/providers/proofhound-web-provider.js.map +1 -0
  206. package/dist/providers/refine-provider.d.ts +5 -0
  207. package/dist/providers/refine-provider.d.ts.map +1 -0
  208. package/dist/providers/refine-provider.js +23 -0
  209. package/dist/providers/refine-provider.js.map +1 -0
  210. package/dist/screens/annotations/annotation-detail-page.d.ts +5 -0
  211. package/dist/screens/annotations/annotation-detail-page.d.ts.map +1 -0
  212. package/dist/screens/annotations/annotation-detail-page.js +379 -0
  213. package/dist/screens/annotations/annotation-detail-page.js.map +1 -0
  214. package/dist/screens/annotations/annotation-new-page.d.ts +4 -0
  215. package/dist/screens/annotations/annotation-new-page.d.ts.map +1 -0
  216. package/dist/screens/annotations/annotation-new-page.js +125 -0
  217. package/dist/screens/annotations/annotation-new-page.js.map +1 -0
  218. package/dist/screens/annotations/annotation-task-model.d.ts +39 -0
  219. package/dist/screens/annotations/annotation-task-model.d.ts.map +1 -0
  220. package/dist/screens/annotations/annotation-task-model.js +88 -0
  221. package/dist/screens/annotations/annotation-task-model.js.map +1 -0
  222. package/dist/screens/annotations/annotation-ui.d.ts +33 -0
  223. package/dist/screens/annotations/annotation-ui.d.ts.map +1 -0
  224. package/dist/screens/annotations/annotation-ui.js +92 -0
  225. package/dist/screens/annotations/annotation-ui.js.map +1 -0
  226. package/dist/screens/annotations/annotations-list-page.d.ts +4 -0
  227. package/dist/screens/annotations/annotations-list-page.d.ts.map +1 -0
  228. package/dist/screens/annotations/annotations-list-page.js +82 -0
  229. package/dist/screens/annotations/annotations-list-page.js.map +1 -0
  230. package/dist/screens/connectors/connector-detail-page.d.ts +5 -0
  231. package/dist/screens/connectors/connector-detail-page.d.ts.map +1 -0
  232. package/dist/screens/connectors/connector-detail-page.js +838 -0
  233. package/dist/screens/connectors/connector-detail-page.js.map +1 -0
  234. package/dist/screens/connectors/connector-form-page.d.ts +8 -0
  235. package/dist/screens/connectors/connector-form-page.d.ts.map +1 -0
  236. package/dist/screens/connectors/connector-form-page.js +328 -0
  237. package/dist/screens/connectors/connector-form-page.js.map +1 -0
  238. package/dist/screens/connectors/connector-peek-dialog.d.ts +8 -0
  239. package/dist/screens/connectors/connector-peek-dialog.d.ts.map +1 -0
  240. package/dist/screens/connectors/connector-peek-dialog.js +24 -0
  241. package/dist/screens/connectors/connector-peek-dialog.js.map +1 -0
  242. package/dist/screens/connectors/connector-types.d.ts +36 -0
  243. package/dist/screens/connectors/connector-types.d.ts.map +1 -0
  244. package/dist/screens/connectors/connector-types.js +48 -0
  245. package/dist/screens/connectors/connector-types.js.map +1 -0
  246. package/dist/screens/connectors/connector-ui.d.ts +14 -0
  247. package/dist/screens/connectors/connector-ui.d.ts.map +1 -0
  248. package/dist/screens/connectors/connector-ui.js +40 -0
  249. package/dist/screens/connectors/connector-ui.js.map +1 -0
  250. package/dist/screens/connectors/connectors-list-page.d.ts +4 -0
  251. package/dist/screens/connectors/connectors-list-page.d.ts.map +1 -0
  252. package/dist/screens/connectors/connectors-list-page.js +220 -0
  253. package/dist/screens/connectors/connectors-list-page.js.map +1 -0
  254. package/dist/screens/dashboard/dashboard-screen.d.ts +5 -0
  255. package/dist/screens/dashboard/dashboard-screen.d.ts.map +1 -0
  256. package/dist/screens/dashboard/dashboard-screen.js +524 -0
  257. package/dist/screens/dashboard/dashboard-screen.js.map +1 -0
  258. package/dist/screens/datasets/dataset-detail-helpers.d.ts +10 -0
  259. package/dist/screens/datasets/dataset-detail-helpers.d.ts.map +1 -0
  260. package/dist/screens/datasets/dataset-detail-helpers.js +84 -0
  261. package/dist/screens/datasets/dataset-detail-helpers.js.map +1 -0
  262. package/dist/screens/datasets/dataset-detail-page.d.ts +6 -0
  263. package/dist/screens/datasets/dataset-detail-page.d.ts.map +1 -0
  264. package/dist/screens/datasets/dataset-detail-page.js +379 -0
  265. package/dist/screens/datasets/dataset-detail-page.js.map +1 -0
  266. package/dist/screens/datasets/dataset-import-runner.d.ts +17 -0
  267. package/dist/screens/datasets/dataset-import-runner.d.ts.map +1 -0
  268. package/dist/screens/datasets/dataset-import-runner.js +33 -0
  269. package/dist/screens/datasets/dataset-import-runner.js.map +1 -0
  270. package/dist/screens/datasets/dataset-mappers.d.ts +5 -0
  271. package/dist/screens/datasets/dataset-mappers.d.ts.map +1 -0
  272. package/dist/screens/datasets/dataset-mappers.js +79 -0
  273. package/dist/screens/datasets/dataset-mappers.js.map +1 -0
  274. package/dist/screens/datasets/dataset-samples-table.d.ts +21 -0
  275. package/dist/screens/datasets/dataset-samples-table.d.ts.map +1 -0
  276. package/dist/screens/datasets/dataset-samples-table.js +59 -0
  277. package/dist/screens/datasets/dataset-samples-table.js.map +1 -0
  278. package/dist/screens/datasets/dataset-transfer-progress.d.ts +30 -0
  279. package/dist/screens/datasets/dataset-transfer-progress.d.ts.map +1 -0
  280. package/dist/screens/datasets/dataset-transfer-progress.js +157 -0
  281. package/dist/screens/datasets/dataset-transfer-progress.js.map +1 -0
  282. package/dist/screens/datasets/dataset-types.d.ts +59 -0
  283. package/dist/screens/datasets/dataset-types.d.ts.map +1 -0
  284. package/dist/screens/datasets/dataset-types.js +15 -0
  285. package/dist/screens/datasets/dataset-types.js.map +1 -0
  286. package/dist/screens/datasets/dataset-ui.d.ts +49 -0
  287. package/dist/screens/datasets/dataset-ui.d.ts.map +1 -0
  288. package/dist/screens/datasets/dataset-ui.js +163 -0
  289. package/dist/screens/datasets/dataset-ui.js.map +1 -0
  290. package/dist/screens/datasets/dataset-upload-page.d.ts +4 -0
  291. package/dist/screens/datasets/dataset-upload-page.d.ts.map +1 -0
  292. package/dist/screens/datasets/dataset-upload-page.js +425 -0
  293. package/dist/screens/datasets/dataset-upload-page.js.map +1 -0
  294. package/dist/screens/datasets/dataset-upload-parser.d.ts +21 -0
  295. package/dist/screens/datasets/dataset-upload-parser.d.ts.map +1 -0
  296. package/dist/screens/datasets/dataset-upload-parser.js +536 -0
  297. package/dist/screens/datasets/dataset-upload-parser.js.map +1 -0
  298. package/dist/screens/datasets/datasets-list-page.d.ts +4 -0
  299. package/dist/screens/datasets/datasets-list-page.d.ts.map +1 -0
  300. package/dist/screens/datasets/datasets-list-page.js +249 -0
  301. package/dist/screens/datasets/datasets-list-page.js.map +1 -0
  302. package/dist/screens/experiments/experiment-detail-page.d.ts +5 -0
  303. package/dist/screens/experiments/experiment-detail-page.d.ts.map +1 -0
  304. package/dist/screens/experiments/experiment-detail-page.js +460 -0
  305. package/dist/screens/experiments/experiment-detail-page.js.map +1 -0
  306. package/dist/screens/experiments/experiment-new-page.d.ts +21 -0
  307. package/dist/screens/experiments/experiment-new-page.d.ts.map +1 -0
  308. package/dist/screens/experiments/experiment-new-page.js +427 -0
  309. package/dist/screens/experiments/experiment-new-page.js.map +1 -0
  310. package/dist/screens/experiments/experiment-option-adapter.d.ts +68 -0
  311. package/dist/screens/experiments/experiment-option-adapter.d.ts.map +1 -0
  312. package/dist/screens/experiments/experiment-option-adapter.js +225 -0
  313. package/dist/screens/experiments/experiment-option-adapter.js.map +1 -0
  314. package/dist/screens/experiments/experiment-progress.d.ts +5 -0
  315. package/dist/screens/experiments/experiment-progress.d.ts.map +1 -0
  316. package/dist/screens/experiments/experiment-progress.js +15 -0
  317. package/dist/screens/experiments/experiment-progress.js.map +1 -0
  318. package/dist/screens/experiments/experiment-repeat-href.d.ts +17 -0
  319. package/dist/screens/experiments/experiment-repeat-href.d.ts.map +1 -0
  320. package/dist/screens/experiments/experiment-repeat-href.js +32 -0
  321. package/dist/screens/experiments/experiment-repeat-href.js.map +1 -0
  322. package/dist/screens/experiments/experiment-theme.d.ts +43 -0
  323. package/dist/screens/experiments/experiment-theme.d.ts.map +1 -0
  324. package/dist/screens/experiments/experiment-theme.js +43 -0
  325. package/dist/screens/experiments/experiment-theme.js.map +1 -0
  326. package/dist/screens/experiments/experiment-ui.d.ts +36 -0
  327. package/dist/screens/experiments/experiment-ui.d.ts.map +1 -0
  328. package/dist/screens/experiments/experiment-ui.js +46 -0
  329. package/dist/screens/experiments/experiment-ui.js.map +1 -0
  330. package/dist/screens/experiments/experiment-view-model.d.ts +118 -0
  331. package/dist/screens/experiments/experiment-view-model.d.ts.map +1 -0
  332. package/dist/screens/experiments/experiment-view-model.js +114 -0
  333. package/dist/screens/experiments/experiment-view-model.js.map +1 -0
  334. package/dist/screens/experiments/experiments-comparison-view.d.ts +10 -0
  335. package/dist/screens/experiments/experiments-comparison-view.d.ts.map +1 -0
  336. package/dist/screens/experiments/experiments-comparison-view.js +215 -0
  337. package/dist/screens/experiments/experiments-comparison-view.js.map +1 -0
  338. package/dist/screens/experiments/experiments-list-page.d.ts +4 -0
  339. package/dist/screens/experiments/experiments-list-page.d.ts.map +1 -0
  340. package/dist/screens/experiments/experiments-list-page.js +364 -0
  341. package/dist/screens/experiments/experiments-list-page.js.map +1 -0
  342. package/dist/screens/experiments/experiments-table.d.ts +18 -0
  343. package/dist/screens/experiments/experiments-table.d.ts.map +1 -0
  344. package/dist/screens/experiments/experiments-table.js +97 -0
  345. package/dist/screens/experiments/experiments-table.js.map +1 -0
  346. package/dist/screens/experiments/run-result-detail-sheet.d.ts +9 -0
  347. package/dist/screens/experiments/run-result-detail-sheet.d.ts.map +1 -0
  348. package/dist/screens/experiments/run-result-detail-sheet.js +89 -0
  349. package/dist/screens/experiments/run-result-detail-sheet.js.map +1 -0
  350. package/dist/screens/experiments/run-result-display.d.ts +28 -0
  351. package/dist/screens/experiments/run-result-display.d.ts.map +1 -0
  352. package/dist/screens/experiments/run-result-display.js +124 -0
  353. package/dist/screens/experiments/run-result-display.js.map +1 -0
  354. package/dist/screens/experiments/run-result-labels.d.ts +16 -0
  355. package/dist/screens/experiments/run-result-labels.d.ts.map +1 -0
  356. package/dist/screens/experiments/run-result-labels.js +52 -0
  357. package/dist/screens/experiments/run-result-labels.js.map +1 -0
  358. package/dist/screens/index.d.ts +29 -0
  359. package/dist/screens/index.d.ts.map +1 -0
  360. package/dist/screens/index.js +43 -0
  361. package/dist/screens/index.js.map +1 -0
  362. package/dist/screens/models/model-form-page.d.ts +9 -0
  363. package/dist/screens/models/model-form-page.d.ts.map +1 -0
  364. package/dist/screens/models/model-form-page.js +876 -0
  365. package/dist/screens/models/model-form-page.js.map +1 -0
  366. package/dist/screens/models/model-view-model.d.ts +66 -0
  367. package/dist/screens/models/model-view-model.d.ts.map +1 -0
  368. package/dist/screens/models/model-view-model.js +36 -0
  369. package/dist/screens/models/model-view-model.js.map +1 -0
  370. package/dist/screens/models/models-list-page.d.ts +4 -0
  371. package/dist/screens/models/models-list-page.d.ts.map +1 -0
  372. package/dist/screens/models/models-list-page.js +352 -0
  373. package/dist/screens/models/models-list-page.js.map +1 -0
  374. package/dist/screens/models/project-model-adapter.d.ts +5 -0
  375. package/dist/screens/models/project-model-adapter.d.ts.map +1 -0
  376. package/dist/screens/models/project-model-adapter.js +63 -0
  377. package/dist/screens/models/project-model-adapter.js.map +1 -0
  378. package/dist/screens/monitoring/big-chart-card.d.ts +36 -0
  379. package/dist/screens/monitoring/big-chart-card.d.ts.map +1 -0
  380. package/dist/screens/monitoring/big-chart-card.js +32 -0
  381. package/dist/screens/monitoring/big-chart-card.js.map +1 -0
  382. package/dist/screens/monitoring/monitoring-filter-strip.d.ts +14 -0
  383. package/dist/screens/monitoring/monitoring-filter-strip.d.ts.map +1 -0
  384. package/dist/screens/monitoring/monitoring-filter-strip.js +36 -0
  385. package/dist/screens/monitoring/monitoring-filter-strip.js.map +1 -0
  386. package/dist/screens/monitoring/project-monitoring-page.d.ts +9 -0
  387. package/dist/screens/monitoring/project-monitoring-page.d.ts.map +1 -0
  388. package/dist/screens/monitoring/project-monitoring-page.js +240 -0
  389. package/dist/screens/monitoring/project-monitoring-page.js.map +1 -0
  390. package/dist/screens/monitoring/ranking-cards.d.ts +23 -0
  391. package/dist/screens/monitoring/ranking-cards.d.ts.map +1 -0
  392. package/dist/screens/monitoring/ranking-cards.js +78 -0
  393. package/dist/screens/monitoring/ranking-cards.js.map +1 -0
  394. package/dist/screens/optimizations/optimization-detail-page.d.ts +5 -0
  395. package/dist/screens/optimizations/optimization-detail-page.d.ts.map +1 -0
  396. package/dist/screens/optimizations/optimization-detail-page.js +934 -0
  397. package/dist/screens/optimizations/optimization-detail-page.js.map +1 -0
  398. package/dist/screens/optimizations/optimization-mappers.d.ts +56 -0
  399. package/dist/screens/optimizations/optimization-mappers.d.ts.map +1 -0
  400. package/dist/screens/optimizations/optimization-mappers.js +142 -0
  401. package/dist/screens/optimizations/optimization-mappers.js.map +1 -0
  402. package/dist/screens/optimizations/optimization-new-page.d.ts +8 -0
  403. package/dist/screens/optimizations/optimization-new-page.d.ts.map +1 -0
  404. package/dist/screens/optimizations/optimization-new-page.js +732 -0
  405. package/dist/screens/optimizations/optimization-new-page.js.map +1 -0
  406. package/dist/screens/optimizations/optimization-theme.d.ts +43 -0
  407. package/dist/screens/optimizations/optimization-theme.d.ts.map +1 -0
  408. package/dist/screens/optimizations/optimization-theme.js +46 -0
  409. package/dist/screens/optimizations/optimization-theme.js.map +1 -0
  410. package/dist/screens/optimizations/optimization-ui.d.ts +60 -0
  411. package/dist/screens/optimizations/optimization-ui.d.ts.map +1 -0
  412. package/dist/screens/optimizations/optimization-ui.js +164 -0
  413. package/dist/screens/optimizations/optimization-ui.js.map +1 -0
  414. package/dist/screens/optimizations/optimizations-list-page.d.ts +4 -0
  415. package/dist/screens/optimizations/optimizations-list-page.d.ts.map +1 -0
  416. package/dist/screens/optimizations/optimizations-list-page.js +358 -0
  417. package/dist/screens/optimizations/optimizations-list-page.js.map +1 -0
  418. package/dist/screens/prompts/prompt-body-editor.d.ts +15 -0
  419. package/dist/screens/prompts/prompt-body-editor.d.ts.map +1 -0
  420. package/dist/screens/prompts/prompt-body-editor.js +165 -0
  421. package/dist/screens/prompts/prompt-body-editor.js.map +1 -0
  422. package/dist/screens/prompts/prompt-dataset-variables.d.ts +4 -0
  423. package/dist/screens/prompts/prompt-dataset-variables.d.ts.map +1 -0
  424. package/dist/screens/prompts/prompt-dataset-variables.js +27 -0
  425. package/dist/screens/prompts/prompt-dataset-variables.js.map +1 -0
  426. package/dist/screens/prompts/prompt-detail-page.d.ts +5 -0
  427. package/dist/screens/prompts/prompt-detail-page.d.ts.map +1 -0
  428. package/dist/screens/prompts/prompt-detail-page.js +1013 -0
  429. package/dist/screens/prompts/prompt-detail-page.js.map +1 -0
  430. package/dist/screens/prompts/prompt-model.d.ts +77 -0
  431. package/dist/screens/prompts/prompt-model.d.ts.map +1 -0
  432. package/dist/screens/prompts/prompt-model.js +152 -0
  433. package/dist/screens/prompts/prompt-model.js.map +1 -0
  434. package/dist/screens/prompts/prompt-preview-parts.d.ts +12 -0
  435. package/dist/screens/prompts/prompt-preview-parts.d.ts.map +1 -0
  436. package/dist/screens/prompts/prompt-preview-parts.js +32 -0
  437. package/dist/screens/prompts/prompt-preview-parts.js.map +1 -0
  438. package/dist/screens/prompts/prompt-preview.d.ts +10 -0
  439. package/dist/screens/prompts/prompt-preview.d.ts.map +1 -0
  440. package/dist/screens/prompts/prompt-preview.js +16 -0
  441. package/dist/screens/prompts/prompt-preview.js.map +1 -0
  442. package/dist/screens/prompts/prompt-ui.d.ts +30 -0
  443. package/dist/screens/prompts/prompt-ui.d.ts.map +1 -0
  444. package/dist/screens/prompts/prompt-ui.js +51 -0
  445. package/dist/screens/prompts/prompt-ui.js.map +1 -0
  446. package/dist/screens/prompts/prompts-list-page.d.ts +5 -0
  447. package/dist/screens/prompts/prompts-list-page.d.ts.map +1 -0
  448. package/dist/screens/prompts/prompts-list-page.js +208 -0
  449. package/dist/screens/prompts/prompts-list-page.js.map +1 -0
  450. package/dist/screens/quick-start/quick-start-screen.d.ts +2 -0
  451. package/dist/screens/quick-start/quick-start-screen.d.ts.map +1 -0
  452. package/dist/screens/quick-start/quick-start-screen.js +486 -0
  453. package/dist/screens/quick-start/quick-start-screen.js.map +1 -0
  454. package/dist/screens/releases/release-line-detail-page.d.ts +5 -0
  455. package/dist/screens/releases/release-line-detail-page.d.ts.map +1 -0
  456. package/dist/screens/releases/release-line-detail-page.js +973 -0
  457. package/dist/screens/releases/release-line-detail-page.js.map +1 -0
  458. package/dist/screens/releases/release-line-ui.d.ts +30 -0
  459. package/dist/screens/releases/release-line-ui.d.ts.map +1 -0
  460. package/dist/screens/releases/release-line-ui.js +197 -0
  461. package/dist/screens/releases/release-line-ui.js.map +1 -0
  462. package/dist/screens/releases/release-new-model.d.ts +5 -0
  463. package/dist/screens/releases/release-new-model.d.ts.map +1 -0
  464. package/dist/screens/releases/release-new-model.js +18 -0
  465. package/dist/screens/releases/release-new-model.js.map +1 -0
  466. package/dist/screens/releases/release-new-page.d.ts +6 -0
  467. package/dist/screens/releases/release-new-page.d.ts.map +1 -0
  468. package/dist/screens/releases/release-new-page.js +816 -0
  469. package/dist/screens/releases/release-new-page.js.map +1 -0
  470. package/dist/screens/releases/release-topology-canvas.d.ts +13 -0
  471. package/dist/screens/releases/release-topology-canvas.d.ts.map +1 -0
  472. package/dist/screens/releases/release-topology-canvas.js +856 -0
  473. package/dist/screens/releases/release-topology-canvas.js.map +1 -0
  474. package/dist/screens/releases/releases-list-page.d.ts +4 -0
  475. package/dist/screens/releases/releases-list-page.d.ts.map +1 -0
  476. package/dist/screens/releases/releases-list-page.js +86 -0
  477. package/dist/screens/releases/releases-list-page.js.map +1 -0
  478. package/dist/screens/settings/settings-page.d.ts +2 -0
  479. package/dist/screens/settings/settings-page.d.ts.map +1 -0
  480. package/dist/screens/settings/settings-page.js +250 -0
  481. package/dist/screens/settings/settings-page.js.map +1 -0
  482. package/dist/styles/globals.css +961 -0
  483. package/package.json +84 -0
@@ -0,0 +1,486 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Link from 'next/link';
4
+ import { useRouter } from 'next/navigation';
5
+ import { useMemo, useState } from 'react';
6
+ import { MODEL_PRESET_GROUPS, MODEL_PRESETS, QUICK_START_DEFAULT_CONCURRENCY, QUICK_START_DEFAULT_INITIAL_SAMPLES_PER_ROUND, QUICK_START_DEFAULT_INITIAL_SAMPLING_ROUNDS, QUICK_START_DEFAULT_MAX_ROUNDS, QUICK_START_DEFAULT_RPM_LIMIT, QUICK_START_DEFAULT_SAMPLE_TIMEOUT_SECONDS, QUICK_START_DEFAULT_TEMPERATURE, QUICK_START_DEFAULT_TPM_LIMIT, } from '@proofhound/shared';
7
+ import { AlertTriangle, ArrowLeft, Cable, Check, ChevronRight, FileText, Loader2, Sparkles, Upload, } from 'lucide-react';
8
+ import { Main } from '@proofhound/ui/layout';
9
+ import { ModelProbeStatus, PromptLanguageSelect } from '../../components';
10
+ import { Button, Input, Label, PlatformLoader, Progress, formatProgressLabel, cn, } from '@proofhound/ui';
11
+ import { useCreateQuickStart, useProbeQuickStartDraftModel, useProbeQuickStartExistingModel, useQuickStartModelOptions, } from '../../hooks';
12
+ import { useDelayedLoading } from '../../hooks';
13
+ import { useI18n } from '../../i18n';
14
+ import { getApiErrorMessage, buildProviderTypeOptions } from '../../lib';
15
+ import { FORMAT_CHIPS, PREVIEW_LIMIT, getDatasetNameFromFile, getDisplayValue, inferRole, parseDatasetFile, projectSamplesToColumns, } from '../datasets/dataset-upload-parser';
16
+ const ROLE_OPTIONS = [
17
+ { role: 'id', labelKey: 'datasets.role.id' },
18
+ { role: 'text', labelKey: 'datasets.role.text' },
19
+ { role: 'image', labelKey: 'datasets.role.image' },
20
+ { role: 'expected', labelKey: 'datasets.role.expected' },
21
+ { role: 'metadata', labelKey: 'datasets.role.metadata' },
22
+ ];
23
+ const DEFAULT_GOAL_TARGET = '0.8';
24
+ const DEFAULT_PRESET = MODEL_PRESETS.find((preset) => preset.featured) ?? MODEL_PRESETS[0];
25
+ const EMPTY_MODEL_OPTIONS = [];
26
+ function presetToDraft(preset) {
27
+ return {
28
+ name: preset.name,
29
+ providerType: preset.providerType,
30
+ providerModelId: preset.providerModelId,
31
+ endpoint: preset.endpoint,
32
+ apiKey: '',
33
+ contextWindowTokens: String(preset.contextWindowTokens),
34
+ rpmLimit: String(preset.rpmLimit),
35
+ tpmLimit: String(preset.tpmLimit),
36
+ concurrencyLimit: String(preset.concurrencyLimit),
37
+ inputPrice: String(preset.inputTokenPricePerMillion),
38
+ outputPrice: String(preset.outputTokenPricePerMillion),
39
+ imageCapability: preset.capabilities.image,
40
+ };
41
+ }
42
+ function createInitialModelChoice() {
43
+ return { mode: 'draft', presetKey: DEFAULT_PRESET.key, draft: presetToDraft(DEFAULT_PRESET) };
44
+ }
45
+ function imageCapabilitySupportsUrl(capability) {
46
+ return capability === 'url' || capability === 'both';
47
+ }
48
+ function imageCapabilitySupportsBase64(capability) {
49
+ return capability === 'base64' || capability === 'both';
50
+ }
51
+ function toImageCapability(options) {
52
+ if (options.url && options.base64)
53
+ return 'both';
54
+ if (options.url)
55
+ return 'url';
56
+ if (options.base64)
57
+ return 'base64';
58
+ return 'none';
59
+ }
60
+ function runDefaultFromModelLimit(limit, fallback) {
61
+ return limit > 0 ? limit : fallback;
62
+ }
63
+ function SectionNumber({ value }) {
64
+ return (_jsx("span", { className: "flex size-6 shrink-0 items-center justify-center rounded-full bg-primary font-mono text-[11px] font-semibold text-primary-foreground", children: value }));
65
+ }
66
+ function Section({ number, title, hint, children, complete = false, }) {
67
+ const { t } = useI18n();
68
+ return (_jsxs("section", { className: "rounded-lg border bg-card", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2 border-b px-4 py-3", children: [_jsx(SectionNumber, { value: number }), _jsx("h2", { className: "text-[14.5px] font-semibold", children: title }), complete && (_jsxs("span", { className: "status-running inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium", children: [_jsx(Check, { className: "size-3" }), t('quickStart.complete')] })), _jsx("span", { className: "ml-auto text-[11.5px] text-muted-foreground", children: hint })] }), _jsx("div", { className: "p-4", children: children })] }));
69
+ }
70
+ function MiniField({ label, children, required = false, help, aside, }) {
71
+ return (_jsxs("div", { children: [_jsxs("div", { className: "mb-1.5 flex min-h-4 items-center justify-between gap-2", children: [_jsxs(Label, { className: "block text-xs font-medium", children: [label, required && _jsx("span", { className: "text-destructive", children: "*" })] }), aside && _jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: aside })] }), children, help && _jsx("div", { className: "mt-1 text-[11px] leading-relaxed text-muted-foreground", children: help })] }));
72
+ }
73
+ function DraftModelForm({ choice, onChange, }) {
74
+ const { t } = useI18n();
75
+ const [activePresetGroup, setActivePresetGroup] = useState(DEFAULT_PRESET.group);
76
+ const providerOptions = buildProviderTypeOptions(choice.draft.providerType);
77
+ const presets = MODEL_PRESETS.filter((preset) => preset.group === activePresetGroup);
78
+ const patchDraft = (patch) => {
79
+ onChange({ ...choice, draft: { ...choice.draft, ...patch } });
80
+ };
81
+ return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("div", { className: "flex flex-wrap gap-2", children: MODEL_PRESET_GROUPS.map((group) => (_jsx("button", { type: "button", className: cn('inline-flex h-8 items-center rounded-md border px-3 text-xs font-medium transition-colors', activePresetGroup === group.key
82
+ ? 'border-primary bg-primary text-primary-foreground'
83
+ : 'border-border bg-background text-muted-foreground hover:bg-accent hover:text-foreground'), "aria-pressed": activePresetGroup === group.key, onClick: () => setActivePresetGroup(group.key), children: group.label }, group.key))) }), _jsx("div", { className: "grid gap-2 md:grid-cols-2 xl:grid-cols-3", children: presets.map((preset) => {
84
+ const selected = choice.presetKey === preset.key;
85
+ return (_jsxs("button", { type: "button", className: cn('flex min-h-[94px] flex-col rounded-md border bg-background p-3 text-left transition-colors hover:border-ring/60 hover:bg-accent/45', selected && 'border-primary bg-primary/5'), "aria-pressed": selected, onClick: () => onChange({ mode: 'draft', presetKey: preset.key, draft: presetToDraft(preset) }), children: [_jsxs("span", { className: "flex items-start justify-between gap-2", children: [_jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block truncate text-sm font-semibold", children: preset.name }), _jsx("span", { className: "mt-0.5 block truncate font-mono text-[11px] text-muted-foreground", children: preset.providerModelId })] }), preset.featured && _jsx(Sparkles, { className: "size-4 shrink-0 text-[var(--status-canary-fg)]" })] }), _jsxs("span", { className: "mt-auto pt-2 text-[11px] text-muted-foreground", children: [preset.contextWindowTokens.toLocaleString(), " ", t('quickStart.model.tokens')] })] }, preset.key));
86
+ }) })] }), _jsxs("div", { className: "grid gap-3 md:grid-cols-2", children: [_jsx(MiniField, { label: t('models.form.name'), required: true, children: _jsx(Input, { value: choice.draft.name, onChange: (event) => patchDraft({ name: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.provider'), required: true, children: _jsx("select", { value: choice.draft.providerType, onChange: (event) => patchDraft({ providerType: event.target.value }), className: "h-9 w-full rounded-md border bg-background px-3 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", children: providerOptions.map((option) => (_jsx("option", { value: option.value, children: option.label }, option.value))) }) }), _jsx(MiniField, { label: t('models.form.modelId'), required: true, children: _jsx(Input, { value: choice.draft.providerModelId, onChange: (event) => patchDraft({ providerModelId: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.endpoint'), required: true, children: _jsx(Input, { value: choice.draft.endpoint, onChange: (event) => patchDraft({ endpoint: event.target.value }) }) }), _jsx(MiniField, { label: "API Key", required: true, children: _jsx(Input, { type: "password", value: choice.draft.apiKey, onChange: (event) => patchDraft({ apiKey: event.target.value }), placeholder: "sk-..." }) }), _jsx(MiniField, { label: t('models.form.contextWindow'), children: _jsx(Input, { inputMode: "numeric", value: choice.draft.contextWindowTokens, onChange: (event) => patchDraft({ contextWindowTokens: event.target.value }) }) })] }), _jsxs("details", { className: "rounded-md border bg-background", children: [_jsx("summary", { className: "cursor-pointer select-none px-3 py-2 text-xs font-medium text-muted-foreground", children: t('quickStart.model.advanced') }), _jsxs("div", { className: "grid gap-3 border-t p-3 md:grid-cols-3", children: [_jsx(MiniField, { label: "RPM", children: _jsx(Input, { inputMode: "numeric", value: choice.draft.rpmLimit, onChange: (event) => patchDraft({ rpmLimit: event.target.value }) }) }), _jsx(MiniField, { label: "TPM", children: _jsx(Input, { inputMode: "numeric", value: choice.draft.tpmLimit, onChange: (event) => patchDraft({ tpmLimit: event.target.value }) }) }), _jsx(MiniField, { label: t('quickStart.advanced.concurrency'), children: _jsx(Input, { inputMode: "numeric", value: choice.draft.concurrencyLimit, onChange: (event) => patchDraft({ concurrencyLimit: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.inputTokenPrice'), children: _jsx(Input, { inputMode: "decimal", value: choice.draft.inputPrice, onChange: (event) => patchDraft({ inputPrice: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.outputTokenPrice'), children: _jsx(Input, { inputMode: "decimal", value: choice.draft.outputPrice, onChange: (event) => patchDraft({ outputPrice: event.target.value }) }) }), _jsx(MiniField, { label: t('models.form.supportsImages'), help: t('quickStart.model.imageCapabilityHelp'), children: _jsxs("div", { className: "grid gap-2", children: [_jsxs("label", { className: "flex cursor-pointer items-start gap-2 rounded-md border bg-background px-3 py-2 text-sm hover:bg-accent/45", children: [_jsx("input", { type: "checkbox", checked: imageCapabilitySupportsUrl(choice.draft.imageCapability), onChange: (event) => patchDraft({
87
+ imageCapability: toImageCapability({
88
+ url: event.target.checked,
89
+ base64: imageCapabilitySupportsBase64(choice.draft.imageCapability),
90
+ }),
91
+ }), className: "mt-0.5 size-4 accent-primary" }), _jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block font-medium", children: t('models.form.imageUrl') }), _jsx("span", { className: "block text-[11px] leading-relaxed text-muted-foreground", children: t('models.form.imageUrlHelp') })] })] }), _jsxs("label", { className: "flex cursor-pointer items-start gap-2 rounded-md border bg-background px-3 py-2 text-sm hover:bg-accent/45", children: [_jsx("input", { type: "checkbox", checked: imageCapabilitySupportsBase64(choice.draft.imageCapability), onChange: (event) => patchDraft({
92
+ imageCapability: toImageCapability({
93
+ url: imageCapabilitySupportsUrl(choice.draft.imageCapability),
94
+ base64: event.target.checked,
95
+ }),
96
+ }), className: "mt-0.5 size-4 accent-primary" }), _jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block font-medium", children: t('models.form.imageBase64') }), _jsx("span", { className: "block text-[11px] leading-relaxed text-muted-foreground", children: t('models.form.imageBase64Help') })] })] })] }) })] })] })] }));
97
+ }
98
+ function ModelPicker({ title, choice, onChange, modelOptions, }) {
99
+ const { t } = useI18n();
100
+ const existingProbe = useProbeQuickStartExistingModel();
101
+ const draftProbe = useProbeQuickStartDraftModel();
102
+ const [feedback, setFeedback] = useState(null);
103
+ const selectedExisting = choice.mode === 'existing' ? choice.modelId : '';
104
+ const draftChoice = choice.mode === 'draft' ? choice : createInitialModelChoice();
105
+ const testConnectivity = () => {
106
+ const startedAt = Date.now();
107
+ setFeedback({ status: 'running', durationMs: null });
108
+ if (choice.mode === 'existing') {
109
+ if (!choice.modelId) {
110
+ setFeedback({ status: 'failed', durationMs: 0, errorMessage: t('quickStart.model.required') });
111
+ return;
112
+ }
113
+ existingProbe.mutate(choice.modelId, {
114
+ onSuccess: (result) => setFeedback({
115
+ status: result.status === 'success' ? 'success' : 'failed',
116
+ durationMs: result.durationMs,
117
+ errorMessage: result.error,
118
+ }),
119
+ onError: (error) => setFeedback({
120
+ status: 'failed',
121
+ durationMs: Date.now() - startedAt,
122
+ errorMessage: getApiErrorMessage(error),
123
+ }),
124
+ });
125
+ return;
126
+ }
127
+ const payload = readDraftModelPayload(choice.draft);
128
+ if (!payload.ok) {
129
+ setFeedback({ status: 'failed', durationMs: 0, errorMessage: t(payload.errorKey) });
130
+ return;
131
+ }
132
+ draftProbe.mutate(payload.body, {
133
+ onSuccess: (result) => setFeedback({
134
+ status: result.status === 'success' ? 'success' : 'failed',
135
+ durationMs: result.durationMs,
136
+ errorMessage: result.error,
137
+ }),
138
+ onError: (error) => setFeedback({
139
+ status: 'failed',
140
+ durationMs: Date.now() - startedAt,
141
+ errorMessage: getApiErrorMessage(error),
142
+ }),
143
+ });
144
+ };
145
+ const isTesting = existingProbe.isPending || draftProbe.isPending;
146
+ return (_jsxs("div", { className: "space-y-4 rounded-md border bg-background p-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-sm font-semibold", children: title }), _jsx("div", { className: "text-[11.5px] text-muted-foreground", children: t('quickStart.model.help') })] }), _jsxs("div", { className: "inline-flex rounded-md border bg-muted p-0.5", children: [_jsx("button", { type: "button", className: cn('h-7 rounded px-2.5 text-xs font-medium transition-colors', choice.mode === 'existing' ? 'bg-background shadow-sm' : 'text-muted-foreground hover:text-foreground'), onClick: () => onChange({ mode: 'existing', modelId: modelOptions[0]?.id ?? '' }), children: t('quickStart.model.existing') }), _jsx("button", { type: "button", className: cn('h-7 rounded px-2.5 text-xs font-medium transition-colors', choice.mode === 'draft' ? 'bg-background shadow-sm' : 'text-muted-foreground hover:text-foreground'), onClick: () => onChange(createInitialModelChoice()), children: t('quickStart.model.preset') })] })] }), choice.mode === 'existing' ? (_jsxs("div", { className: "grid gap-3", children: [_jsx(MiniField, { label: t('quickStart.model.existing'), required: true, children: _jsxs("select", { value: selectedExisting, onChange: (event) => onChange({ mode: 'existing', modelId: event.target.value }), className: "h-9 w-full rounded-md border bg-background px-3 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", children: [modelOptions.length === 0 && _jsx("option", { value: "", children: t('quickStart.model.noExisting') }), modelOptions.map((model) => (_jsxs("option", { value: model.id, children: [model.name, " \u00B7 ", model.providerModelId] }, model.id)))] }) }), modelOptions.length === 0 && (_jsx("div", { className: "rounded-md border border-dashed bg-muted/30 px-3 py-3 text-[12px] text-muted-foreground", children: t('quickStart.model.noExistingHelp') }))] })) : (_jsx(DraftModelForm, { choice: draftChoice, onChange: (nextChoice) => onChange(nextChoice) })), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", disabled: isTesting, onClick: testConnectivity, children: [isTesting ? _jsx(Loader2, { className: "size-4 animate-spin" }) : _jsx(Cable, { className: "size-4" }), t('quickStart.model.test')] }), _jsx(ModelProbeStatus, { feedback: feedback, className: "flex-1" })] })] }));
147
+ }
148
+ function readPositiveInteger(raw) {
149
+ const value = Number(raw);
150
+ return Number.isInteger(value) && value > 0 ? value : null;
151
+ }
152
+ function readModelRateLimit(raw) {
153
+ const value = Number(raw);
154
+ return Number.isInteger(value) && (value === -1 || value > 0) ? value : null;
155
+ }
156
+ function readNonnegativeNumber(raw) {
157
+ const value = Number(raw);
158
+ return Number.isFinite(value) && value >= 0 ? value : null;
159
+ }
160
+ function readDraftModelPayload(draft) {
161
+ const required = [draft.name, draft.providerType, draft.providerModelId, draft.endpoint, draft.apiKey];
162
+ if (required.some((value) => value.trim().length === 0)) {
163
+ return { ok: false, errorKey: 'common.formError.requiredMissing' };
164
+ }
165
+ const contextWindowTokens = readPositiveInteger(draft.contextWindowTokens);
166
+ const rpmLimit = readModelRateLimit(draft.rpmLimit);
167
+ const tpmLimit = readModelRateLimit(draft.tpmLimit);
168
+ const concurrencyLimit = readPositiveInteger(draft.concurrencyLimit);
169
+ const inputPrice = readNonnegativeNumber(draft.inputPrice);
170
+ const outputPrice = readNonnegativeNumber(draft.outputPrice);
171
+ if (contextWindowTokens === null ||
172
+ rpmLimit === null ||
173
+ tpmLimit === null ||
174
+ concurrencyLimit === null ||
175
+ inputPrice === null ||
176
+ outputPrice === null) {
177
+ return { ok: false, errorKey: 'common.formError.invalidNumber' };
178
+ }
179
+ return {
180
+ ok: true,
181
+ body: {
182
+ name: draft.name.trim(),
183
+ providerType: draft.providerType.trim(),
184
+ providerModelId: draft.providerModelId.trim(),
185
+ endpoint: draft.endpoint.trim(),
186
+ apiKey: draft.apiKey,
187
+ contextWindowTokens,
188
+ rpm: { limit: rpmLimit },
189
+ tpm: { limit: tpmLimit },
190
+ concurrency: { limit: concurrencyLimit },
191
+ autoConcurrency: true,
192
+ pricing: { inputPerMillion: inputPrice, outputPerMillion: outputPrice },
193
+ capabilities: { image: draft.imageCapability },
194
+ extraBody: {},
195
+ },
196
+ };
197
+ }
198
+ function buildModelRef(choice) {
199
+ if (choice.mode === 'existing') {
200
+ return choice.modelId
201
+ ? { ok: true, ref: { kind: 'existing', modelId: choice.modelId } }
202
+ : { ok: false, errorKey: 'quickStart.model.required' };
203
+ }
204
+ const payload = readDraftModelPayload(choice.draft);
205
+ if (!payload.ok)
206
+ return payload;
207
+ return { ok: true, ref: { kind: 'draft', model: payload.body } };
208
+ }
209
+ function getModelRunProfile(choice, modelOptions) {
210
+ if (choice.mode === 'existing') {
211
+ const model = modelOptions.find((option) => option.id === choice.modelId);
212
+ if (!model)
213
+ return null;
214
+ return {
215
+ name: model.name,
216
+ rpmLimit: model.rpm.limit,
217
+ tpmLimit: model.tpm.limit,
218
+ concurrencyLimit: model.concurrency.limit,
219
+ signature: `existing:${model.id}:${model.rpm.limit}:${model.tpm.limit}:${model.concurrency.limit}`,
220
+ };
221
+ }
222
+ const rpmLimit = readModelRateLimit(choice.draft.rpmLimit);
223
+ const tpmLimit = readModelRateLimit(choice.draft.tpmLimit);
224
+ const concurrencyLimit = readPositiveInteger(choice.draft.concurrencyLimit);
225
+ if (rpmLimit === null || tpmLimit === null || concurrencyLimit === null)
226
+ return null;
227
+ return {
228
+ name: choice.draft.name.trim() || choice.draft.providerModelId.trim() || 'model',
229
+ rpmLimit,
230
+ tpmLimit,
231
+ concurrencyLimit,
232
+ signature: `draft:${rpmLimit}:${tpmLimit}:${concurrencyLimit}`,
233
+ };
234
+ }
235
+ function formatTemplate(template, values) {
236
+ return Object.entries(values).reduce((text, [key, value]) => text.replaceAll(`{${key}}`, String(value)), template);
237
+ }
238
+ function formatLimitValue(value, unlimitedLabel) {
239
+ return value > 0 ? value.toLocaleString() : unlimitedLabel;
240
+ }
241
+ function isAbovePositiveLimit(value, limit) {
242
+ return value !== null && limit > 0 && value > limit;
243
+ }
244
+ function normalizeExpectedRoles(roles, preferredColumn) {
245
+ let expectedColumn = preferredColumn && roles[preferredColumn] === 'expected' ? preferredColumn : null;
246
+ expectedColumn ??= Object.entries(roles).find(([, role]) => role === 'expected')?.[0] ?? null;
247
+ return Object.fromEntries(Object.entries(roles).map(([column, role]) => [
248
+ column,
249
+ role === 'expected' && column !== expectedColumn ? 'metadata' : role,
250
+ ]));
251
+ }
252
+ function getFileStem(fileName) {
253
+ return fileName
254
+ .replace(/\.[^.]+$/u, '')
255
+ .trim()
256
+ .slice(0, 80);
257
+ }
258
+ function getDefaultOptimizationName(language, stem) {
259
+ return language === 'en-US' ? `${stem} Optimization #1` : `${stem} 优化 #1`;
260
+ }
261
+ function getParseErrorKey(parseError) {
262
+ if (parseError === 'unsupported_file_type')
263
+ return 'datasets.upload.unsupportedFile';
264
+ return 'datasets.upload.parseFailed';
265
+ }
266
+ export function QuickStartScreen() {
267
+ const { t } = useI18n();
268
+ const router = useRouter();
269
+ const modelOptionsQuery = useQuickStartModelOptions();
270
+ const createQuickStart = useCreateQuickStart();
271
+ const [optimizationName, setOptimizationName] = useState('');
272
+ const [taskDescription, setTaskDescription] = useState('');
273
+ const [promptLanguage, setPromptLanguage] = useState('zh-CN');
274
+ const [selectedFile, setSelectedFile] = useState(null);
275
+ const [parsedFile, setParsedFile] = useState(null);
276
+ const [fieldRoles, setFieldRoles] = useState({});
277
+ const [parseError, setParseError] = useState(null);
278
+ const [experimentChoice, setExperimentChoice] = useState(() => createInitialModelChoice());
279
+ const [analysisSameAsExperiment, setAnalysisSameAsExperiment] = useState(true);
280
+ const [analysisChoice, setAnalysisChoice] = useState(() => createInitialModelChoice());
281
+ const [goalTarget, setGoalTarget] = useState(DEFAULT_GOAL_TARGET);
282
+ const [maxRounds, setMaxRounds] = useState(String(QUICK_START_DEFAULT_MAX_ROUNDS));
283
+ const [samplingRounds, setSamplingRounds] = useState(String(QUICK_START_DEFAULT_INITIAL_SAMPLING_ROUNDS));
284
+ const [samplesPerRound, setSamplesPerRound] = useState(String(QUICK_START_DEFAULT_INITIAL_SAMPLES_PER_ROUND));
285
+ const [temperature, setTemperature] = useState(String(QUICK_START_DEFAULT_TEMPERATURE));
286
+ const [rpmLimit, setRpmLimit] = useState(String(runDefaultFromModelLimit(DEFAULT_PRESET.rpmLimit, QUICK_START_DEFAULT_RPM_LIMIT)));
287
+ const [tpmLimit, setTpmLimit] = useState(String(runDefaultFromModelLimit(DEFAULT_PRESET.tpmLimit, QUICK_START_DEFAULT_TPM_LIMIT)));
288
+ const [concurrency, setConcurrency] = useState(String(runDefaultFromModelLimit(DEFAULT_PRESET.concurrencyLimit, QUICK_START_DEFAULT_CONCURRENCY)));
289
+ const [sampleTimeoutSeconds, setSampleTimeoutSeconds] = useState(String(QUICK_START_DEFAULT_SAMPLE_TIMEOUT_SECONDS));
290
+ const [submitError, setSubmitError] = useState(null);
291
+ const [isDraggingDataset, setIsDraggingDataset] = useState(false);
292
+ const previewRows = useMemo(() => parsedFile?.samples.slice(0, PREVIEW_LIMIT) ?? [], [parsedFile]);
293
+ const selectedFileStem = selectedFile
294
+ ? getFileStem(getDatasetNameFromFile(selectedFile.name) || getFileStem(selectedFile.name))
295
+ : null;
296
+ const modelOptions = modelOptionsQuery.data?.data ?? EMPTY_MODEL_OPTIONS;
297
+ const selectedRunProfile = useMemo(() => getModelRunProfile(experimentChoice, modelOptions), [experimentChoice, modelOptions]);
298
+ const expectedCount = Object.values(fieldRoles).filter((role) => role === 'expected').length;
299
+ const inputFieldCount = Object.values(fieldRoles).filter((role) => role === 'text' || role === 'image').length;
300
+ const datasetReady = parsedFile !== null && selectedFile !== null && expectedCount === 1 && inputFieldCount > 0;
301
+ const rpmValue = readPositiveInteger(rpmLimit);
302
+ const tpmValue = readPositiveInteger(tpmLimit);
303
+ const concurrencyValue = readPositiveInteger(concurrency);
304
+ const runConfigWithinModelLimits = selectedRunProfile === null ||
305
+ (!isAbovePositiveLimit(rpmValue, selectedRunProfile.rpmLimit) &&
306
+ !isAbovePositiveLimit(tpmValue, selectedRunProfile.tpmLimit) &&
307
+ !isAbovePositiveLimit(concurrencyValue, selectedRunProfile.concurrencyLimit));
308
+ const configReady = taskDescription.trim().length > 0 &&
309
+ readPositiveInteger(maxRounds) !== null &&
310
+ readPositiveInteger(samplingRounds) !== null &&
311
+ readPositiveInteger(samplesPerRound) !== null &&
312
+ readNonnegativeNumber(temperature) !== null &&
313
+ rpmValue !== null &&
314
+ tpmValue !== null &&
315
+ concurrencyValue !== null &&
316
+ readPositiveInteger(sampleTimeoutSeconds) !== null &&
317
+ readNonnegativeNumber(goalTarget) !== null &&
318
+ runConfigWithinModelLimits;
319
+ const canSubmit = datasetReady && configReady && !createQuickStart.isPending;
320
+ const parseErrorKey = getParseErrorKey(parseError);
321
+ const optionsLoading = useDelayedLoading(modelOptionsQuery.isLoading && !modelOptionsQuery.data);
322
+ if (optionsLoading) {
323
+ return (_jsx(Main, { className: "gap-0 bg-muted/35 p-0", children: _jsx("div", { className: "mx-auto w-full max-w-[1360px] px-4 py-6 pb-28 sm:px-6 lg:px-8", "data-testid": "quick-start-page", children: _jsx(PlatformLoader, { className: "min-h-[560px]" }) }) }));
324
+ }
325
+ const applyExperimentRunProfile = (profile) => {
326
+ setRpmLimit(String(runDefaultFromModelLimit(profile.rpmLimit, QUICK_START_DEFAULT_RPM_LIMIT)));
327
+ setTpmLimit(String(runDefaultFromModelLimit(profile.tpmLimit, QUICK_START_DEFAULT_TPM_LIMIT)));
328
+ setConcurrency(String(runDefaultFromModelLimit(profile.concurrencyLimit, QUICK_START_DEFAULT_CONCURRENCY)));
329
+ };
330
+ const handleExperimentChoiceChange = (nextChoice) => {
331
+ const previousSignature = selectedRunProfile?.signature ?? null;
332
+ const nextProfile = getModelRunProfile(nextChoice, modelOptions);
333
+ setExperimentChoice(nextChoice);
334
+ if (nextProfile && nextProfile.signature !== previousSignature) {
335
+ applyExperimentRunProfile(nextProfile);
336
+ }
337
+ };
338
+ const upperLimitLabel = (limit) => formatTemplate(t('quickStart.advanced.upperLimit'), {
339
+ limit: limit === null || limit === undefined ? '-' : formatLimitValue(limit, t('quickStart.advanced.unlimited')),
340
+ });
341
+ const handlePromptLanguageChange = (nextLanguage) => {
342
+ const previousLanguage = promptLanguage;
343
+ setPromptLanguage(nextLanguage);
344
+ if (!selectedFileStem)
345
+ return;
346
+ const previousOptimizationDefault = getDefaultOptimizationName(previousLanguage, selectedFileStem);
347
+ setOptimizationName((current) => current.length === 0 || current === previousOptimizationDefault
348
+ ? getDefaultOptimizationName(nextLanguage, selectedFileStem)
349
+ : current);
350
+ };
351
+ const handleDatasetFile = async (file) => {
352
+ setSelectedFile(null);
353
+ setParsedFile(null);
354
+ setParseError(null);
355
+ try {
356
+ const parsed = await parseDatasetFile(file);
357
+ setSelectedFile(file);
358
+ setParsedFile(parsed);
359
+ setFieldRoles(normalizeExpectedRoles(Object.fromEntries(parsed.columns.map((column) => [column, inferRole(column, parsed.samples[0]?.[column])]))));
360
+ const stem = getFileStem(getDatasetNameFromFile(file.name) || getFileStem(file.name));
361
+ setOptimizationName((current) => current || getDefaultOptimizationName(promptLanguage, stem));
362
+ }
363
+ catch (error) {
364
+ setParseError(error instanceof Error ? error.message : 'parse_failed');
365
+ setFieldRoles({});
366
+ }
367
+ };
368
+ const updateFileInput = async (event) => {
369
+ const file = event.target.files?.[0] ?? null;
370
+ event.target.value = '';
371
+ if (!file)
372
+ return;
373
+ await handleDatasetFile(file);
374
+ };
375
+ const handleDatasetDragOver = (event) => {
376
+ event.preventDefault();
377
+ event.dataTransfer.dropEffect = 'copy';
378
+ setIsDraggingDataset(true);
379
+ };
380
+ const handleDatasetDragLeave = (event) => {
381
+ if (!event.currentTarget.contains(event.relatedTarget)) {
382
+ setIsDraggingDataset(false);
383
+ }
384
+ };
385
+ const handleDatasetDrop = async (event) => {
386
+ event.preventDefault();
387
+ setIsDraggingDataset(false);
388
+ const file = event.dataTransfer.files?.[0] ?? null;
389
+ if (!file)
390
+ return;
391
+ await handleDatasetFile(file);
392
+ };
393
+ const submit = async () => {
394
+ setSubmitError(null);
395
+ if (!parsedFile || !selectedFile || !canSubmit)
396
+ return;
397
+ const experimentRef = buildModelRef(experimentChoice);
398
+ if (!experimentRef.ok) {
399
+ setSubmitError(t(experimentRef.errorKey));
400
+ return;
401
+ }
402
+ const analysisRef = analysisSameAsExperiment ? experimentRef : buildModelRef(analysisChoice);
403
+ if (!analysisRef.ok) {
404
+ setSubmitError(t(analysisRef.errorKey));
405
+ return;
406
+ }
407
+ const maxRoundsValue = readPositiveInteger(maxRounds);
408
+ const samplingRoundsValue = readPositiveInteger(samplingRounds);
409
+ const samplesPerRoundValue = readPositiveInteger(samplesPerRound);
410
+ const temperatureValue = readNonnegativeNumber(temperature);
411
+ const rpmValue = readPositiveInteger(rpmLimit);
412
+ const tpmValue = readPositiveInteger(tpmLimit);
413
+ const concurrencyValue = readPositiveInteger(concurrency);
414
+ const timeoutValue = readPositiveInteger(sampleTimeoutSeconds);
415
+ const goalTargetValue = readNonnegativeNumber(goalTarget);
416
+ if (maxRoundsValue === null ||
417
+ samplingRoundsValue === null ||
418
+ samplesPerRoundValue === null ||
419
+ temperatureValue === null ||
420
+ rpmValue === null ||
421
+ tpmValue === null ||
422
+ concurrencyValue === null ||
423
+ timeoutValue === null ||
424
+ goalTargetValue === null) {
425
+ setSubmitError(t('common.formError.invalidNumber'));
426
+ return;
427
+ }
428
+ if (!runConfigWithinModelLimits) {
429
+ setSubmitError(t('quickStart.advanced.limitExceeded'));
430
+ return;
431
+ }
432
+ const columns = parsedFile.columns;
433
+ const body = {
434
+ optimizationName: optimizationName.trim() || undefined,
435
+ projectDescription: taskDescription.trim(),
436
+ taskDescription: taskDescription.trim(),
437
+ promptLanguage,
438
+ dataset: {
439
+ name: getDatasetNameFromFile(selectedFile.name) || getFileStem(selectedFile.name),
440
+ description: taskDescription.trim(),
441
+ uploadSource: {
442
+ fileName: selectedFile.name,
443
+ fileSizeBytes: selectedFile.size,
444
+ contentType: selectedFile.type || undefined,
445
+ },
446
+ fieldMappings: columns.map((column) => ({ name: column, role: fieldRoles[column] ?? 'metadata' })),
447
+ samples: projectSamplesToColumns(parsedFile.samples, columns),
448
+ },
449
+ experimentModel: experimentRef.ref,
450
+ analysisModel: analysisRef.ref,
451
+ goals: [{ metric: 'accuracy', comparator: 'gte', target: Math.min(1, goalTargetValue), scope: 'overall' }],
452
+ loopLimits: { maxRounds: maxRoundsValue, stopAfterNoImprovementRounds: 0 },
453
+ runConfig: {
454
+ temperature: Math.min(2, temperatureValue),
455
+ rpmLimit: rpmValue,
456
+ tpmLimit: tpmValue,
457
+ concurrency: concurrencyValue,
458
+ sampleTimeoutSeconds: timeoutValue,
459
+ },
460
+ strategyConfig: {
461
+ initialSamplingRounds: samplingRoundsValue,
462
+ initialSamplesPerRound: samplesPerRoundValue,
463
+ },
464
+ };
465
+ try {
466
+ const result = await createQuickStart.mutateAsync(body);
467
+ router.push(`/optimizations/${result.optimizationId}`);
468
+ }
469
+ catch (error) {
470
+ setSubmitError(getApiErrorMessage(error) ?? t('common.loadFailedRefresh'));
471
+ }
472
+ };
473
+ return (_jsx(Main, { className: "gap-0 bg-muted/35 p-0", children: _jsxs("div", { className: "mx-auto w-full max-w-[1360px] px-4 py-6 pb-28 sm:px-6 lg:px-8", "data-testid": "quick-start-page", children: [_jsxs("div", { className: "mb-1 font-mono text-[11.5px] text-muted-foreground", children: [_jsx(Link, { className: "hover:text-foreground", href: "/dashboard", children: t('dashboard.title') }), _jsx("span", { className: "px-1.5", children: "/" }), _jsx("span", { className: "text-foreground", children: t('quickStart.title') })] }), _jsxs("div", { className: "mb-5 flex flex-col gap-4 xl:flex-row xl:items-start xl:justify-between", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h1", { className: "text-[26px] font-semibold", children: t('quickStart.title') }), _jsx("p", { className: "mt-1 max-w-3xl text-[12.5px] text-muted-foreground", children: t('quickStart.subtitle') })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Button, { asChild: true, variant: "outline", size: "sm", className: "h-9", children: _jsxs(Link, { href: "/dashboard", children: [_jsx(ArrowLeft, { className: "size-4" }), t('quickStart.back')] }) }), _jsxs(Button, { type: "button", size: "sm", className: "h-9", disabled: !canSubmit, onClick: submit, children: [createQuickStart.isPending ? (_jsx(Loader2, { className: "size-4 animate-spin" })) : (_jsx(Sparkles, { className: "size-4" })), createQuickStart.isPending ? t('quickStart.starting') : t('quickStart.start')] })] })] }), submitError && (_jsxs("div", { className: "mb-4 flex gap-2 rounded-md border border-destructive/35 bg-destructive/10 p-3 text-sm text-destructive", children: [_jsx(AlertTriangle, { className: "mt-0.5 size-4 shrink-0" }), submitError] })), _jsxs("div", { className: "grid gap-4 xl:grid-cols-[1fr_1fr]", children: [_jsxs(Section, { number: 1, title: t('quickStart.model.title'), hint: t('quickStart.model.hint'), complete: buildModelRef(experimentChoice).ok && (analysisSameAsExperiment || buildModelRef(analysisChoice).ok), children: [modelOptionsQuery.isError && (_jsx("div", { className: "mb-3 rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: t('quickStart.model.loadFailed') })), _jsxs("div", { className: "space-y-3", children: [_jsx(ModelPicker, { title: t('quickStart.model.experimentTitle'), choice: experimentChoice, onChange: handleExperimentChoiceChange, modelOptions: modelOptions }), _jsxs("label", { className: "flex items-center gap-2 rounded-md border bg-background px-3 py-2 text-sm", children: [_jsx("input", { type: "checkbox", checked: analysisSameAsExperiment, onChange: (event) => setAnalysisSameAsExperiment(event.target.checked), className: "size-4 accent-primary" }), _jsx("span", { children: t('quickStart.model.sameAnalysis') })] }), !analysisSameAsExperiment && (_jsx(ModelPicker, { title: t('quickStart.model.analysisTitle'), choice: analysisChoice, onChange: setAnalysisChoice, modelOptions: modelOptions }))] })] }), _jsx(Section, { number: 2, title: t('quickStart.dataset.title'), hint: t('quickStart.dataset.hint'), complete: datasetReady, children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: cn('rounded-lg border border-dashed p-4 transition-colors', isDraggingDataset
474
+ ? 'border-primary bg-primary/10'
475
+ : 'border-[var(--status-running-bd)] bg-[var(--status-running-bg)]/45'), onDragOver: handleDatasetDragOver, onDragLeave: handleDatasetDragLeave, onDrop: handleDatasetDrop, children: [_jsx("input", { id: "quick-start-dataset-file", type: "file", accept: FORMAT_CHIPS.join(','), className: "sr-only", onChange: updateFileInput }), _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-md bg-[var(--status-running-bg)] text-[var(--status-running-fg)]", children: selectedFile ? _jsx(FileText, { className: "size-5" }) : _jsx(Upload, { className: "size-5" }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx("span", { className: "text-[13.5px] font-semibold", children: selectedFile ? selectedFile.name : t('quickStart.dataset.choose') }), parsedFile && (_jsxs("span", { className: "status-running ml-auto inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-[11px] font-medium", children: [_jsx("span", { className: "dot-running size-1.5 rounded-full" }), t('datasets.upload.parsed')] }))] }), _jsx("div", { className: "mt-0.5 font-mono text-[11.5px] text-muted-foreground", children: isDraggingDataset
476
+ ? t('quickStart.dataset.dropHere')
477
+ : parsedFile
478
+ ? `${parsedFile.samples.length} ${t('datasets.samples')} · ${parsedFile.columns.length} ${t('datasets.detail.fields')}`
479
+ : t('quickStart.dataset.chooseHelp') }), _jsx(Progress, { value: parsedFile ? 100 : 0, label: formatProgressLabel({ value: parsedFile ? 1 : 0, max: 1 }), className: "mt-2" }), _jsxs("div", { className: "mt-2 flex items-center justify-between gap-3", children: [_jsx("span", { className: "font-mono text-[10.5px] text-[var(--status-running-fg)]", children: parsedFile ? t('datasets.upload.uploadReady') : t('datasets.upload.waitingForFile') }), _jsx("label", { className: "cursor-pointer text-[11.5px] text-muted-foreground hover:text-foreground", htmlFor: "quick-start-dataset-file", children: selectedFile ? t('datasets.action.replaceFile') : t('datasets.upload.browse') })] })] })] })] }), parseError && (_jsxs("div", { className: "flex gap-2 rounded-md border border-destructive/35 bg-destructive/10 p-3 text-[12px] text-destructive", children: [_jsx(AlertTriangle, { className: "mt-0.5 size-4 shrink-0" }), _jsx("div", { children: t(parseErrorKey) })] })), parsedFile ? (_jsxs("div", { className: "space-y-3", children: [_jsx("div", { className: "grid gap-2", children: parsedFile.columns.map((column) => (_jsxs("div", { className: "grid gap-2 rounded-md border bg-background p-3 md:grid-cols-[1fr_1.2fr_180px] md:items-center", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate font-mono text-[12.5px] font-semibold", children: column }), _jsx("div", { className: "truncate text-[11px] text-muted-foreground", children: getDisplayValue(parsedFile.samples[0]?.[column]) })] }), _jsx("div", { className: "truncate rounded-md bg-muted/45 px-2 py-1 font-mono text-[11.5px] text-muted-foreground", children: getDisplayValue(parsedFile.samples[0]?.[column]) }), _jsx("select", { value: fieldRoles[column] ?? 'metadata', onChange: (event) => setFieldRoles((current) => normalizeExpectedRoles({
480
+ ...current,
481
+ [column]: event.target.value,
482
+ }, column)), className: "h-8 rounded-md border bg-background px-2 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring", "aria-label": `${t('datasets.upload.role')}: ${column}`, children: ROLE_OPTIONS.map((option) => (_jsx("option", { value: option.role, children: t(option.labelKey) }, option.role))) })] }, column))) }), expectedCount !== 1 && (_jsx("div", { className: "rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: t('quickStart.dataset.expectedRequired') })), inputFieldCount === 0 && (_jsx("div", { className: "rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: t('quickStart.dataset.inputRequired') })), _jsxs("details", { className: "rounded-md border bg-background", children: [_jsx("summary", { className: "cursor-pointer select-none px-3 py-2 text-xs font-medium text-muted-foreground", children: t('quickStart.dataset.preview') }), _jsx("div", { className: "grid gap-2 border-t p-3", children: previewRows.map((row, index) => (_jsx("div", { className: "rounded-md bg-muted/35 p-2 font-mono text-[11px]", children: JSON.stringify(row) }, index))) })] })] })) : (_jsx("div", { className: "rounded-md border border-dashed bg-muted/30 p-8 text-center text-sm text-muted-foreground", children: t('quickStart.dataset.empty') }))] }) }), _jsx(Section, { number: 3, title: t('quickStart.optimization.title'), hint: t('quickStart.optimization.hint'), complete: configReady, children: _jsxs("div", { className: "grid gap-4 md:grid-cols-2", children: [_jsx(MiniField, { label: t('quickStart.optimization.name'), children: _jsx(Input, { value: optimizationName, onChange: (event) => setOptimizationName(event.target.value), placeholder: t('quickStart.optimization.namePlaceholder') }) }), _jsx(MiniField, { label: t('quickStart.goal.accuracy'), children: _jsx(Input, { inputMode: "decimal", value: goalTarget, onChange: (event) => setGoalTarget(event.target.value) }) }), _jsx("div", { className: "md:col-span-2", children: _jsx(PromptLanguageSelect, { value: promptLanguage, onChange: handlePromptLanguageChange, helpKey: "quickStart.promptLanguageHelp", className: "max-w-[420px]", triggerClassName: "h-8" }) }), _jsx("div", { className: "md:col-span-2", children: _jsx(MiniField, { label: t('quickStart.taskDescription'), required: true, help: t('quickStart.taskDescriptionHelp'), children: _jsx("textarea", { value: taskDescription, onChange: (event) => setTaskDescription(event.target.value), placeholder: t('quickStart.taskDescriptionPlaceholder'), className: "min-h-24 w-full rounded-md border border-input bg-background px-3 py-2 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring" }) }) }), _jsx(MiniField, { label: t('quickStart.optimization.maxRounds'), children: _jsx(Input, { inputMode: "numeric", value: maxRounds, onChange: (event) => setMaxRounds(event.target.value) }) })] }) }), _jsxs(Section, { number: 4, title: t('quickStart.advanced.title'), hint: t('quickStart.advanced.hint'), children: [_jsxs("details", { className: "rounded-md border bg-background", children: [_jsx("summary", { className: "cursor-pointer select-none px-3 py-2 text-sm font-medium", children: t('quickStart.advanced.summary') }), _jsx("div", { className: "border-t px-3 pt-3 text-[11.5px] text-muted-foreground", children: selectedRunProfile
483
+ ? formatTemplate(t('quickStart.advanced.fromModel'), { model: selectedRunProfile.name })
484
+ : t('quickStart.advanced.modelUnavailable') }), _jsxs("div", { className: "grid gap-3 p-3 md:grid-cols-3", children: [_jsx(MiniField, { label: t('quickStart.advanced.samplingRounds'), children: _jsx(Input, { inputMode: "numeric", value: samplingRounds, onChange: (event) => setSamplingRounds(event.target.value) }) }), _jsx(MiniField, { label: t('quickStart.advanced.samplesPerRound'), children: _jsx(Input, { inputMode: "numeric", value: samplesPerRound, onChange: (event) => setSamplesPerRound(event.target.value) }) }), _jsx(MiniField, { label: t('quickStart.advanced.temperature'), children: _jsx(Input, { inputMode: "decimal", value: temperature, onChange: (event) => setTemperature(event.target.value) }) }), _jsx(MiniField, { label: "RPM", aside: upperLimitLabel(selectedRunProfile?.rpmLimit), children: _jsx(Input, { inputMode: "numeric", value: rpmLimit, onChange: (event) => setRpmLimit(event.target.value) }) }), _jsx(MiniField, { label: "TPM", aside: upperLimitLabel(selectedRunProfile?.tpmLimit), children: _jsx(Input, { inputMode: "numeric", value: tpmLimit, onChange: (event) => setTpmLimit(event.target.value) }) }), _jsx(MiniField, { label: t('quickStart.advanced.concurrency'), aside: upperLimitLabel(selectedRunProfile?.concurrencyLimit), children: _jsx(Input, { inputMode: "numeric", value: concurrency, onChange: (event) => setConcurrency(event.target.value) }) }), _jsx(MiniField, { label: t('quickStart.advanced.sampleTimeout'), children: _jsx(Input, { inputMode: "numeric", value: sampleTimeoutSeconds, onChange: (event) => setSampleTimeoutSeconds(event.target.value) }) })] })] }), !runConfigWithinModelLimits && (_jsx("div", { className: "mt-3 rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: t('quickStart.advanced.limitExceeded') })), _jsx("div", { className: "mt-4 rounded-md border bg-muted/35 px-3 py-2 text-[12px] text-muted-foreground", children: t('quickStart.advanced.defaults') })] })] }), _jsx("div", { className: "fixed bottom-0 left-0 right-0 z-20 border-t bg-background/95 px-4 py-3 backdrop-blur supports-[backdrop-filter]:bg-background/75 md:left-[var(--sidebar-width)]", children: _jsxs("div", { className: "mx-auto flex w-full max-w-[1360px] flex-col gap-2 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "text-[12px] text-muted-foreground", children: [datasetReady ? t('quickStart.footer.datasetReady') : t('quickStart.footer.datasetPending'), _jsx(ChevronRight, { className: "mx-1 inline size-3" }), configReady ? t('quickStart.footer.configReady') : t('quickStart.footer.configPending')] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { asChild: true, variant: "outline", size: "sm", children: _jsx(Link, { href: "/dashboard", children: t('common.cancel') }) }), _jsxs(Button, { type: "button", size: "sm", disabled: !canSubmit, onClick: submit, children: [createQuickStart.isPending ? (_jsx(Loader2, { className: "size-4 animate-spin" })) : (_jsx(Sparkles, { className: "size-4" })), createQuickStart.isPending ? t('quickStart.starting') : t('quickStart.start')] })] })] }) })] }) }));
485
+ }
486
+ //# sourceMappingURL=quick-start-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick-start-screen.js","sourceRoot":"","sources":["../../../src/screens/quick-start/quick-start-screen.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function ReleaseLineDetailPage({ projectId, releaseLineId }: {
2
+ projectId: string;
3
+ releaseLineId: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=release-line-detail-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-line-detail-page.d.ts","sourceRoot":"","sources":["../../../src/screens/releases/release-line-detail-page.tsx"],"names":[],"mappings":"AA4dA,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,2CAgR/G"}