@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.
- package/LICENSE +190 -0
- package/dist/components/annotations/annotation-claim-dialog.d.ts +13 -0
- package/dist/components/annotations/annotation-claim-dialog.d.ts.map +1 -0
- package/dist/components/annotations/annotation-claim-dialog.js +60 -0
- package/dist/components/annotations/annotation-claim-dialog.js.map +1 -0
- package/dist/components/charts/source-legend.d.ts +10 -0
- package/dist/components/charts/source-legend.d.ts.map +1 -0
- package/dist/components/charts/source-legend.js +15 -0
- package/dist/components/charts/source-legend.js.map +1 -0
- package/dist/components/charts/source-stacked-bar.d.ts +22 -0
- package/dist/components/charts/source-stacked-bar.d.ts.map +1 -0
- package/dist/components/charts/source-stacked-bar.js +43 -0
- package/dist/components/charts/source-stacked-bar.js.map +1 -0
- package/dist/components/index.d.ts +15 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/json-object-textarea.d.ts +11 -0
- package/dist/components/json-object-textarea.d.ts.map +1 -0
- package/dist/components/json-object-textarea.js +82 -0
- package/dist/components/json-object-textarea.js.map +1 -0
- package/dist/components/model-context-window-input.d.ts +15 -0
- package/dist/components/model-context-window-input.d.ts.map +1 -0
- package/dist/components/model-context-window-input.js +57 -0
- package/dist/components/model-context-window-input.js.map +1 -0
- package/dist/components/model-probe-status.d.ts +11 -0
- package/dist/components/model-probe-status.d.ts.map +1 -0
- package/dist/components/model-probe-status.js +34 -0
- package/dist/components/model-probe-status.js.map +1 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.d.ts +28 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.d.ts.map +1 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.js +101 -0
- package/dist/components/prompt-diff/prompt-diff-split-view.js.map +1 -0
- package/dist/components/prompt-language-select.d.ts +13 -0
- package/dist/components/prompt-language-select.d.ts.map +1 -0
- package/dist/components/prompt-language-select.js +14 -0
- package/dist/components/prompt-language-select.js.map +1 -0
- package/dist/components/prompt-version-picker-row.d.ts +27 -0
- package/dist/components/prompt-version-picker-row.d.ts.map +1 -0
- package/dist/components/prompt-version-picker-row.js +50 -0
- package/dist/components/prompt-version-picker-row.js.map +1 -0
- package/dist/components/prompt-version-status-badge.d.ts +8 -0
- package/dist/components/prompt-version-status-badge.d.ts.map +1 -0
- package/dist/components/prompt-version-status-badge.js +31 -0
- package/dist/components/prompt-version-status-badge.js.map +1 -0
- package/dist/components/quick-fill/quick-fill-picker.d.ts +42 -0
- package/dist/components/quick-fill/quick-fill-picker.d.ts.map +1 -0
- package/dist/components/quick-fill/quick-fill-picker.js +46 -0
- package/dist/components/quick-fill/quick-fill-picker.js.map +1 -0
- package/dist/components/time-zone-preference-menu.d.ts +10 -0
- package/dist/components/time-zone-preference-menu.d.ts.map +1 -0
- package/dist/components/time-zone-preference-menu.js +33 -0
- package/dist/components/time-zone-preference-menu.js.map +1 -0
- package/dist/contracts/index.d.ts +13 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +7 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/features/index.d.ts +3 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +4 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/model-quick-fill/model-preset-draft.d.ts +19 -0
- package/dist/features/model-quick-fill/model-preset-draft.d.ts.map +1 -0
- package/dist/features/model-quick-fill/model-preset-draft.js +22 -0
- package/dist/features/model-quick-fill/model-preset-draft.js.map +1 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.d.ts +7 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.d.ts.map +1 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.js +73 -0
- package/dist/features/model-quick-fill/model-preset-quick-fill.js.map +1 -0
- package/dist/hooks/annotation.d.ts +253 -0
- package/dist/hooks/annotation.d.ts.map +1 -0
- package/dist/hooks/annotation.js +79 -0
- package/dist/hooks/annotation.js.map +1 -0
- package/dist/hooks/canary-release.d.ts +674 -0
- package/dist/hooks/canary-release.d.ts.map +1 -0
- package/dist/hooks/canary-release.js +142 -0
- package/dist/hooks/canary-release.js.map +1 -0
- package/dist/hooks/connector.d.ts +585 -0
- package/dist/hooks/connector.d.ts.map +1 -0
- package/dist/hooks/connector.js +157 -0
- package/dist/hooks/connector.js.map +1 -0
- package/dist/hooks/dataset.d.ts +138 -0
- package/dist/hooks/dataset.d.ts.map +1 -0
- package/dist/hooks/dataset.js +84 -0
- package/dist/hooks/dataset.js.map +1 -0
- package/dist/hooks/experiment.d.ts +376 -0
- package/dist/hooks/experiment.d.ts.map +1 -0
- package/dist/hooks/experiment.js +58 -0
- package/dist/hooks/experiment.js.map +1 -0
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +18 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/model.d.ts +327 -0
- package/dist/hooks/model.d.ts.map +1 -0
- package/dist/hooks/model.js +103 -0
- package/dist/hooks/model.js.map +1 -0
- package/dist/hooks/optimization.d.ts +557 -0
- package/dist/hooks/optimization.d.ts.map +1 -0
- package/dist/hooks/optimization.js +94 -0
- package/dist/hooks/optimization.js.map +1 -0
- package/dist/hooks/production-release.d.ts +141 -0
- package/dist/hooks/production-release.d.ts.map +1 -0
- package/dist/hooks/production-release.js +51 -0
- package/dist/hooks/production-release.js.map +1 -0
- package/dist/hooks/project-monitoring.d.ts +199 -0
- package/dist/hooks/project-monitoring.d.ts.map +1 -0
- package/dist/hooks/project-monitoring.js +55 -0
- package/dist/hooks/project-monitoring.js.map +1 -0
- package/dist/hooks/prompt.d.ts +509 -0
- package/dist/hooks/prompt.d.ts.map +1 -0
- package/dist/hooks/prompt.js +127 -0
- package/dist/hooks/prompt.js.map +1 -0
- package/dist/hooks/quick-start.d.ts +219 -0
- package/dist/hooks/quick-start.d.ts.map +1 -0
- package/dist/hooks/quick-start.js +35 -0
- package/dist/hooks/quick-start.js.map +1 -0
- package/dist/hooks/release-line.d.ts +819 -0
- package/dist/hooks/release-line.d.ts.map +1 -0
- package/dist/hooks/release-line.js +52 -0
- package/dist/hooks/release-line.js.map +1 -0
- package/dist/hooks/run-result.d.ts +118 -0
- package/dist/hooks/run-result.d.ts.map +1 -0
- package/dist/hooks/run-result.js +56 -0
- package/dist/hooks/run-result.js.map +1 -0
- package/dist/hooks/token.d.ts +58 -0
- package/dist/hooks/token.d.ts.map +1 -0
- package/dist/hooks/token.js +39 -0
- package/dist/hooks/token.js.map +1 -0
- package/dist/hooks/use-auto-refresh.d.ts +30 -0
- package/dist/hooks/use-auto-refresh.d.ts.map +1 -0
- package/dist/hooks/use-auto-refresh.js +175 -0
- package/dist/hooks/use-auto-refresh.js.map +1 -0
- package/dist/hooks/use-date-time-formatter.d.ts +11 -0
- package/dist/hooks/use-date-time-formatter.d.ts.map +1 -0
- package/dist/hooks/use-date-time-formatter.js +24 -0
- package/dist/hooks/use-date-time-formatter.js.map +1 -0
- package/dist/hooks/use-delayed-loading.d.ts +25 -0
- package/dist/hooks/use-delayed-loading.d.ts.map +1 -0
- package/dist/hooks/use-delayed-loading.js +95 -0
- package/dist/hooks/use-delayed-loading.js.map +1 -0
- package/dist/i18n/index.d.ts +5678 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +5712 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/language.d.ts +17 -0
- package/dist/i18n/language.d.ts.map +1 -0
- package/dist/i18n/language.js +43 -0
- package/dist/i18n/language.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-error.d.ts +2 -0
- package/dist/lib/api-error.d.ts.map +1 -0
- package/dist/lib/api-error.js +38 -0
- package/dist/lib/api-error.js.map +1 -0
- package/dist/lib/format.d.ts +30 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +157 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/index.d.ts +8 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +8 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/model-number.d.ts +2 -0
- package/dist/lib/model-number.d.ts.map +1 -0
- package/dist/lib/model-number.js +18 -0
- package/dist/lib/model-number.js.map +1 -0
- package/dist/lib/model-provider-type.d.ts +7 -0
- package/dist/lib/model-provider-type.d.ts.map +1 -0
- package/dist/lib/model-provider-type.js +28 -0
- package/dist/lib/model-provider-type.js.map +1 -0
- package/dist/lib/project-name.d.ts +7 -0
- package/dist/lib/project-name.d.ts.map +1 -0
- package/dist/lib/project-name.js +14 -0
- package/dist/lib/project-name.js.map +1 -0
- package/dist/lib/releases/release-line-model.d.ts +55 -0
- package/dist/lib/releases/release-line-model.d.ts.map +1 -0
- package/dist/lib/releases/release-line-model.js +476 -0
- package/dist/lib/releases/release-line-model.js.map +1 -0
- package/dist/lib/time-zone.d.ts +14 -0
- package/dist/lib/time-zone.d.ts.map +1 -0
- package/dist/lib/time-zone.js +118 -0
- package/dist/lib/time-zone.js.map +1 -0
- package/dist/lib/uuid.d.ts +2 -0
- package/dist/lib/uuid.d.ts.map +1 -0
- package/dist/lib/uuid.js +5 -0
- package/dist/lib/uuid.js.map +1 -0
- package/dist/providers/display-preferences-provider.d.ts +18 -0
- package/dist/providers/display-preferences-provider.d.ts.map +1 -0
- package/dist/providers/display-preferences-provider.js +46 -0
- package/dist/providers/display-preferences-provider.js.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +5 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/project-context-provider.d.ts +8 -0
- package/dist/providers/project-context-provider.d.ts.map +1 -0
- package/dist/providers/project-context-provider.js +15 -0
- package/dist/providers/project-context-provider.js.map +1 -0
- package/dist/providers/proofhound-web-provider.d.ts +9 -0
- package/dist/providers/proofhound-web-provider.d.ts.map +1 -0
- package/dist/providers/proofhound-web-provider.js +44 -0
- package/dist/providers/proofhound-web-provider.js.map +1 -0
- package/dist/providers/refine-provider.d.ts +5 -0
- package/dist/providers/refine-provider.d.ts.map +1 -0
- package/dist/providers/refine-provider.js +23 -0
- package/dist/providers/refine-provider.js.map +1 -0
- package/dist/screens/annotations/annotation-detail-page.d.ts +5 -0
- package/dist/screens/annotations/annotation-detail-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-detail-page.js +379 -0
- package/dist/screens/annotations/annotation-detail-page.js.map +1 -0
- package/dist/screens/annotations/annotation-new-page.d.ts +4 -0
- package/dist/screens/annotations/annotation-new-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-new-page.js +125 -0
- package/dist/screens/annotations/annotation-new-page.js.map +1 -0
- package/dist/screens/annotations/annotation-task-model.d.ts +39 -0
- package/dist/screens/annotations/annotation-task-model.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-task-model.js +88 -0
- package/dist/screens/annotations/annotation-task-model.js.map +1 -0
- package/dist/screens/annotations/annotation-ui.d.ts +33 -0
- package/dist/screens/annotations/annotation-ui.d.ts.map +1 -0
- package/dist/screens/annotations/annotation-ui.js +92 -0
- package/dist/screens/annotations/annotation-ui.js.map +1 -0
- package/dist/screens/annotations/annotations-list-page.d.ts +4 -0
- package/dist/screens/annotations/annotations-list-page.d.ts.map +1 -0
- package/dist/screens/annotations/annotations-list-page.js +82 -0
- package/dist/screens/annotations/annotations-list-page.js.map +1 -0
- package/dist/screens/connectors/connector-detail-page.d.ts +5 -0
- package/dist/screens/connectors/connector-detail-page.d.ts.map +1 -0
- package/dist/screens/connectors/connector-detail-page.js +838 -0
- package/dist/screens/connectors/connector-detail-page.js.map +1 -0
- package/dist/screens/connectors/connector-form-page.d.ts +8 -0
- package/dist/screens/connectors/connector-form-page.d.ts.map +1 -0
- package/dist/screens/connectors/connector-form-page.js +328 -0
- package/dist/screens/connectors/connector-form-page.js.map +1 -0
- package/dist/screens/connectors/connector-peek-dialog.d.ts +8 -0
- package/dist/screens/connectors/connector-peek-dialog.d.ts.map +1 -0
- package/dist/screens/connectors/connector-peek-dialog.js +24 -0
- package/dist/screens/connectors/connector-peek-dialog.js.map +1 -0
- package/dist/screens/connectors/connector-types.d.ts +36 -0
- package/dist/screens/connectors/connector-types.d.ts.map +1 -0
- package/dist/screens/connectors/connector-types.js +48 -0
- package/dist/screens/connectors/connector-types.js.map +1 -0
- package/dist/screens/connectors/connector-ui.d.ts +14 -0
- package/dist/screens/connectors/connector-ui.d.ts.map +1 -0
- package/dist/screens/connectors/connector-ui.js +40 -0
- package/dist/screens/connectors/connector-ui.js.map +1 -0
- package/dist/screens/connectors/connectors-list-page.d.ts +4 -0
- package/dist/screens/connectors/connectors-list-page.d.ts.map +1 -0
- package/dist/screens/connectors/connectors-list-page.js +220 -0
- package/dist/screens/connectors/connectors-list-page.js.map +1 -0
- package/dist/screens/dashboard/dashboard-screen.d.ts +5 -0
- package/dist/screens/dashboard/dashboard-screen.d.ts.map +1 -0
- package/dist/screens/dashboard/dashboard-screen.js +524 -0
- package/dist/screens/dashboard/dashboard-screen.js.map +1 -0
- package/dist/screens/datasets/dataset-detail-helpers.d.ts +10 -0
- package/dist/screens/datasets/dataset-detail-helpers.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-detail-helpers.js +84 -0
- package/dist/screens/datasets/dataset-detail-helpers.js.map +1 -0
- package/dist/screens/datasets/dataset-detail-page.d.ts +6 -0
- package/dist/screens/datasets/dataset-detail-page.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-detail-page.js +379 -0
- package/dist/screens/datasets/dataset-detail-page.js.map +1 -0
- package/dist/screens/datasets/dataset-import-runner.d.ts +17 -0
- package/dist/screens/datasets/dataset-import-runner.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-import-runner.js +33 -0
- package/dist/screens/datasets/dataset-import-runner.js.map +1 -0
- package/dist/screens/datasets/dataset-mappers.d.ts +5 -0
- package/dist/screens/datasets/dataset-mappers.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-mappers.js +79 -0
- package/dist/screens/datasets/dataset-mappers.js.map +1 -0
- package/dist/screens/datasets/dataset-samples-table.d.ts +21 -0
- package/dist/screens/datasets/dataset-samples-table.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-samples-table.js +59 -0
- package/dist/screens/datasets/dataset-samples-table.js.map +1 -0
- package/dist/screens/datasets/dataset-transfer-progress.d.ts +30 -0
- package/dist/screens/datasets/dataset-transfer-progress.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-transfer-progress.js +157 -0
- package/dist/screens/datasets/dataset-transfer-progress.js.map +1 -0
- package/dist/screens/datasets/dataset-types.d.ts +59 -0
- package/dist/screens/datasets/dataset-types.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-types.js +15 -0
- package/dist/screens/datasets/dataset-types.js.map +1 -0
- package/dist/screens/datasets/dataset-ui.d.ts +49 -0
- package/dist/screens/datasets/dataset-ui.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-ui.js +163 -0
- package/dist/screens/datasets/dataset-ui.js.map +1 -0
- package/dist/screens/datasets/dataset-upload-page.d.ts +4 -0
- package/dist/screens/datasets/dataset-upload-page.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-upload-page.js +425 -0
- package/dist/screens/datasets/dataset-upload-page.js.map +1 -0
- package/dist/screens/datasets/dataset-upload-parser.d.ts +21 -0
- package/dist/screens/datasets/dataset-upload-parser.d.ts.map +1 -0
- package/dist/screens/datasets/dataset-upload-parser.js +536 -0
- package/dist/screens/datasets/dataset-upload-parser.js.map +1 -0
- package/dist/screens/datasets/datasets-list-page.d.ts +4 -0
- package/dist/screens/datasets/datasets-list-page.d.ts.map +1 -0
- package/dist/screens/datasets/datasets-list-page.js +249 -0
- package/dist/screens/datasets/datasets-list-page.js.map +1 -0
- package/dist/screens/experiments/experiment-detail-page.d.ts +5 -0
- package/dist/screens/experiments/experiment-detail-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-detail-page.js +460 -0
- package/dist/screens/experiments/experiment-detail-page.js.map +1 -0
- package/dist/screens/experiments/experiment-new-page.d.ts +21 -0
- package/dist/screens/experiments/experiment-new-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-new-page.js +427 -0
- package/dist/screens/experiments/experiment-new-page.js.map +1 -0
- package/dist/screens/experiments/experiment-option-adapter.d.ts +68 -0
- package/dist/screens/experiments/experiment-option-adapter.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-option-adapter.js +225 -0
- package/dist/screens/experiments/experiment-option-adapter.js.map +1 -0
- package/dist/screens/experiments/experiment-progress.d.ts +5 -0
- package/dist/screens/experiments/experiment-progress.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-progress.js +15 -0
- package/dist/screens/experiments/experiment-progress.js.map +1 -0
- package/dist/screens/experiments/experiment-repeat-href.d.ts +17 -0
- package/dist/screens/experiments/experiment-repeat-href.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-repeat-href.js +32 -0
- package/dist/screens/experiments/experiment-repeat-href.js.map +1 -0
- package/dist/screens/experiments/experiment-theme.d.ts +43 -0
- package/dist/screens/experiments/experiment-theme.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-theme.js +43 -0
- package/dist/screens/experiments/experiment-theme.js.map +1 -0
- package/dist/screens/experiments/experiment-ui.d.ts +36 -0
- package/dist/screens/experiments/experiment-ui.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-ui.js +46 -0
- package/dist/screens/experiments/experiment-ui.js.map +1 -0
- package/dist/screens/experiments/experiment-view-model.d.ts +118 -0
- package/dist/screens/experiments/experiment-view-model.d.ts.map +1 -0
- package/dist/screens/experiments/experiment-view-model.js +114 -0
- package/dist/screens/experiments/experiment-view-model.js.map +1 -0
- package/dist/screens/experiments/experiments-comparison-view.d.ts +10 -0
- package/dist/screens/experiments/experiments-comparison-view.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-comparison-view.js +215 -0
- package/dist/screens/experiments/experiments-comparison-view.js.map +1 -0
- package/dist/screens/experiments/experiments-list-page.d.ts +4 -0
- package/dist/screens/experiments/experiments-list-page.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-list-page.js +364 -0
- package/dist/screens/experiments/experiments-list-page.js.map +1 -0
- package/dist/screens/experiments/experiments-table.d.ts +18 -0
- package/dist/screens/experiments/experiments-table.d.ts.map +1 -0
- package/dist/screens/experiments/experiments-table.js +97 -0
- package/dist/screens/experiments/experiments-table.js.map +1 -0
- package/dist/screens/experiments/run-result-detail-sheet.d.ts +9 -0
- package/dist/screens/experiments/run-result-detail-sheet.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-detail-sheet.js +89 -0
- package/dist/screens/experiments/run-result-detail-sheet.js.map +1 -0
- package/dist/screens/experiments/run-result-display.d.ts +28 -0
- package/dist/screens/experiments/run-result-display.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-display.js +124 -0
- package/dist/screens/experiments/run-result-display.js.map +1 -0
- package/dist/screens/experiments/run-result-labels.d.ts +16 -0
- package/dist/screens/experiments/run-result-labels.d.ts.map +1 -0
- package/dist/screens/experiments/run-result-labels.js +52 -0
- package/dist/screens/experiments/run-result-labels.js.map +1 -0
- package/dist/screens/index.d.ts +29 -0
- package/dist/screens/index.d.ts.map +1 -0
- package/dist/screens/index.js +43 -0
- package/dist/screens/index.js.map +1 -0
- package/dist/screens/models/model-form-page.d.ts +9 -0
- package/dist/screens/models/model-form-page.d.ts.map +1 -0
- package/dist/screens/models/model-form-page.js +876 -0
- package/dist/screens/models/model-form-page.js.map +1 -0
- package/dist/screens/models/model-view-model.d.ts +66 -0
- package/dist/screens/models/model-view-model.d.ts.map +1 -0
- package/dist/screens/models/model-view-model.js +36 -0
- package/dist/screens/models/model-view-model.js.map +1 -0
- package/dist/screens/models/models-list-page.d.ts +4 -0
- package/dist/screens/models/models-list-page.d.ts.map +1 -0
- package/dist/screens/models/models-list-page.js +352 -0
- package/dist/screens/models/models-list-page.js.map +1 -0
- package/dist/screens/models/project-model-adapter.d.ts +5 -0
- package/dist/screens/models/project-model-adapter.d.ts.map +1 -0
- package/dist/screens/models/project-model-adapter.js +63 -0
- package/dist/screens/models/project-model-adapter.js.map +1 -0
- package/dist/screens/monitoring/big-chart-card.d.ts +36 -0
- package/dist/screens/monitoring/big-chart-card.d.ts.map +1 -0
- package/dist/screens/monitoring/big-chart-card.js +32 -0
- package/dist/screens/monitoring/big-chart-card.js.map +1 -0
- package/dist/screens/monitoring/monitoring-filter-strip.d.ts +14 -0
- package/dist/screens/monitoring/monitoring-filter-strip.d.ts.map +1 -0
- package/dist/screens/monitoring/monitoring-filter-strip.js +36 -0
- package/dist/screens/monitoring/monitoring-filter-strip.js.map +1 -0
- package/dist/screens/monitoring/project-monitoring-page.d.ts +9 -0
- package/dist/screens/monitoring/project-monitoring-page.d.ts.map +1 -0
- package/dist/screens/monitoring/project-monitoring-page.js +240 -0
- package/dist/screens/monitoring/project-monitoring-page.js.map +1 -0
- package/dist/screens/monitoring/ranking-cards.d.ts +23 -0
- package/dist/screens/monitoring/ranking-cards.d.ts.map +1 -0
- package/dist/screens/monitoring/ranking-cards.js +78 -0
- package/dist/screens/monitoring/ranking-cards.js.map +1 -0
- package/dist/screens/optimizations/optimization-detail-page.d.ts +5 -0
- package/dist/screens/optimizations/optimization-detail-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-detail-page.js +934 -0
- package/dist/screens/optimizations/optimization-detail-page.js.map +1 -0
- package/dist/screens/optimizations/optimization-mappers.d.ts +56 -0
- package/dist/screens/optimizations/optimization-mappers.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-mappers.js +142 -0
- package/dist/screens/optimizations/optimization-mappers.js.map +1 -0
- package/dist/screens/optimizations/optimization-new-page.d.ts +8 -0
- package/dist/screens/optimizations/optimization-new-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-new-page.js +732 -0
- package/dist/screens/optimizations/optimization-new-page.js.map +1 -0
- package/dist/screens/optimizations/optimization-theme.d.ts +43 -0
- package/dist/screens/optimizations/optimization-theme.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-theme.js +46 -0
- package/dist/screens/optimizations/optimization-theme.js.map +1 -0
- package/dist/screens/optimizations/optimization-ui.d.ts +60 -0
- package/dist/screens/optimizations/optimization-ui.d.ts.map +1 -0
- package/dist/screens/optimizations/optimization-ui.js +164 -0
- package/dist/screens/optimizations/optimization-ui.js.map +1 -0
- package/dist/screens/optimizations/optimizations-list-page.d.ts +4 -0
- package/dist/screens/optimizations/optimizations-list-page.d.ts.map +1 -0
- package/dist/screens/optimizations/optimizations-list-page.js +358 -0
- package/dist/screens/optimizations/optimizations-list-page.js.map +1 -0
- package/dist/screens/prompts/prompt-body-editor.d.ts +15 -0
- package/dist/screens/prompts/prompt-body-editor.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-body-editor.js +165 -0
- package/dist/screens/prompts/prompt-body-editor.js.map +1 -0
- package/dist/screens/prompts/prompt-dataset-variables.d.ts +4 -0
- package/dist/screens/prompts/prompt-dataset-variables.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-dataset-variables.js +27 -0
- package/dist/screens/prompts/prompt-dataset-variables.js.map +1 -0
- package/dist/screens/prompts/prompt-detail-page.d.ts +5 -0
- package/dist/screens/prompts/prompt-detail-page.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-detail-page.js +1013 -0
- package/dist/screens/prompts/prompt-detail-page.js.map +1 -0
- package/dist/screens/prompts/prompt-model.d.ts +77 -0
- package/dist/screens/prompts/prompt-model.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-model.js +152 -0
- package/dist/screens/prompts/prompt-model.js.map +1 -0
- package/dist/screens/prompts/prompt-preview-parts.d.ts +12 -0
- package/dist/screens/prompts/prompt-preview-parts.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-preview-parts.js +32 -0
- package/dist/screens/prompts/prompt-preview-parts.js.map +1 -0
- package/dist/screens/prompts/prompt-preview.d.ts +10 -0
- package/dist/screens/prompts/prompt-preview.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-preview.js +16 -0
- package/dist/screens/prompts/prompt-preview.js.map +1 -0
- package/dist/screens/prompts/prompt-ui.d.ts +30 -0
- package/dist/screens/prompts/prompt-ui.d.ts.map +1 -0
- package/dist/screens/prompts/prompt-ui.js +51 -0
- package/dist/screens/prompts/prompt-ui.js.map +1 -0
- package/dist/screens/prompts/prompts-list-page.d.ts +5 -0
- package/dist/screens/prompts/prompts-list-page.d.ts.map +1 -0
- package/dist/screens/prompts/prompts-list-page.js +208 -0
- package/dist/screens/prompts/prompts-list-page.js.map +1 -0
- package/dist/screens/quick-start/quick-start-screen.d.ts +2 -0
- package/dist/screens/quick-start/quick-start-screen.d.ts.map +1 -0
- package/dist/screens/quick-start/quick-start-screen.js +486 -0
- package/dist/screens/quick-start/quick-start-screen.js.map +1 -0
- package/dist/screens/releases/release-line-detail-page.d.ts +5 -0
- package/dist/screens/releases/release-line-detail-page.d.ts.map +1 -0
- package/dist/screens/releases/release-line-detail-page.js +973 -0
- package/dist/screens/releases/release-line-detail-page.js.map +1 -0
- package/dist/screens/releases/release-line-ui.d.ts +30 -0
- package/dist/screens/releases/release-line-ui.d.ts.map +1 -0
- package/dist/screens/releases/release-line-ui.js +197 -0
- package/dist/screens/releases/release-line-ui.js.map +1 -0
- package/dist/screens/releases/release-new-model.d.ts +5 -0
- package/dist/screens/releases/release-new-model.d.ts.map +1 -0
- package/dist/screens/releases/release-new-model.js +18 -0
- package/dist/screens/releases/release-new-model.js.map +1 -0
- package/dist/screens/releases/release-new-page.d.ts +6 -0
- package/dist/screens/releases/release-new-page.d.ts.map +1 -0
- package/dist/screens/releases/release-new-page.js +816 -0
- package/dist/screens/releases/release-new-page.js.map +1 -0
- package/dist/screens/releases/release-topology-canvas.d.ts +13 -0
- package/dist/screens/releases/release-topology-canvas.d.ts.map +1 -0
- package/dist/screens/releases/release-topology-canvas.js +856 -0
- package/dist/screens/releases/release-topology-canvas.js.map +1 -0
- package/dist/screens/releases/releases-list-page.d.ts +4 -0
- package/dist/screens/releases/releases-list-page.d.ts.map +1 -0
- package/dist/screens/releases/releases-list-page.js +86 -0
- package/dist/screens/releases/releases-list-page.js.map +1 -0
- package/dist/screens/settings/settings-page.d.ts +2 -0
- package/dist/screens/settings/settings-page.d.ts.map +1 -0
- package/dist/screens/settings/settings-page.js +250 -0
- package/dist/screens/settings/settings-page.js.map +1 -0
- package/dist/styles/globals.css +961 -0
- package/package.json +84 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import Link from 'next/link';
|
|
4
|
+
import { usePathname, useRouter, useSearchParams } from 'next/navigation';
|
|
5
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
6
|
+
import { Cable, Check, CopyPlus, DollarSign, Download, Edit3, Grid2X2, List, MoreHorizontal, Power, Plus, Search, SlidersHorizontal, Timer, Trash2, X, } from 'lucide-react';
|
|
7
|
+
import { Button, Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, Input, ListRowsSkeleton, PlatformLoaderOverlay, ModalityIconGroup, Progress, formatProgressLabel, ResourcePaginationFooter, SlidingViewToggle, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, TABLE_ACTION_ICON_BUTTON_CLASS, TableActionIconButton, TableActionTooltip, cn, } from '@proofhound/ui';
|
|
8
|
+
import { Main } from '@proofhound/ui/layout';
|
|
9
|
+
import { useI18n } from '../../i18n';
|
|
10
|
+
import { getApiErrorMessage } from '../../lib';
|
|
11
|
+
import { useDateTimeFormatter, useDeleteProjectModel, useProbeProjectModel, useProjectModels, useUpdateProjectModel, } from '../../hooks';
|
|
12
|
+
import { useDelayedLoading } from '../../hooks';
|
|
13
|
+
import { dtoToProjectModel } from './project-model-adapter';
|
|
14
|
+
import { MODEL_SOURCE_LABEL_KEYS, MODEL_STATUS_CLASSES, MODEL_STATUS_LABEL_KEYS, getProjectModelSource, isProjectModelEditable, } from './model-view-model';
|
|
15
|
+
function resolveViewMode(value) {
|
|
16
|
+
return value === 'cards' ? 'cards' : 'table';
|
|
17
|
+
}
|
|
18
|
+
const MODELS_COLUMNS = [
|
|
19
|
+
{ key: 'select', width: 'narrow', sticky: 'left' },
|
|
20
|
+
{ key: 'name', width: 'wide', sticky: 'left' },
|
|
21
|
+
{ key: 'capability', width: 'compact' },
|
|
22
|
+
{ key: 'status', width: 'compact' },
|
|
23
|
+
{ key: 'rpm', width: 'normal' },
|
|
24
|
+
{ key: 'tpm', width: 'normal' },
|
|
25
|
+
{ key: 'concurrency', width: 'normal' },
|
|
26
|
+
{ key: 'pricing', width: 'normal' },
|
|
27
|
+
{ key: 'probe', width: 'normal' },
|
|
28
|
+
{ key: 'actions', width: 'normal', sticky: 'right' },
|
|
29
|
+
];
|
|
30
|
+
const SOURCE_CLASS_NAMES = {
|
|
31
|
+
local: 'status-running',
|
|
32
|
+
};
|
|
33
|
+
const FILTERS = [
|
|
34
|
+
{ key: 'all', labelKey: 'models.filter.all' },
|
|
35
|
+
{ key: 'local', labelKey: 'models.filter.local' },
|
|
36
|
+
{ key: 'enabled', labelKey: 'models.filter.enabled' },
|
|
37
|
+
{ key: 'vision', labelKey: 'models.filter.vision' },
|
|
38
|
+
];
|
|
39
|
+
const CONNECTIVITY_STATUS_LABEL_KEYS = {
|
|
40
|
+
success: 'models.connectivity.status.success',
|
|
41
|
+
testing: 'models.connectivity.status.testing',
|
|
42
|
+
failed: 'models.connectivity.status.failed',
|
|
43
|
+
};
|
|
44
|
+
const CONNECTIVITY_STATUS_CLASSES = {
|
|
45
|
+
success: 'border-[color-mix(in_srgb,var(--src-prod)_30%,var(--border))] bg-[var(--src-prod-soft)] text-[var(--src-prod-fg)]',
|
|
46
|
+
testing: 'border-[color-mix(in_srgb,var(--src-canary)_30%,var(--border))] bg-[var(--src-canary-soft)] text-[var(--src-canary-fg)]',
|
|
47
|
+
failed: 'border-[var(--field-expected-no-bd)] bg-[var(--field-expected-no-bg)] text-[var(--field-expected-no-fg)]',
|
|
48
|
+
};
|
|
49
|
+
const CONNECTIVITY_STATUS_DOT_CLASSES = {
|
|
50
|
+
success: 'bg-[var(--src-prod)]',
|
|
51
|
+
testing: 'bg-[var(--src-canary)]',
|
|
52
|
+
failed: 'bg-[var(--field-expected-no-fg)]',
|
|
53
|
+
};
|
|
54
|
+
const DEFAULT_PAGE_SIZE = 10;
|
|
55
|
+
const PAGE_SIZE_OPTIONS = [10, 20, 50, 100];
|
|
56
|
+
function formatProbeDuration(durationMs) {
|
|
57
|
+
if (durationMs == null)
|
|
58
|
+
return '--';
|
|
59
|
+
const roundedMs = Math.max(0, Math.round(durationMs));
|
|
60
|
+
if (roundedMs < 1000)
|
|
61
|
+
return `${roundedMs} ms`;
|
|
62
|
+
const seconds = roundedMs / 1000;
|
|
63
|
+
return `${seconds < 10 ? seconds.toFixed(1) : seconds.toFixed(0)} s`;
|
|
64
|
+
}
|
|
65
|
+
function matchesFilter(model, filter) {
|
|
66
|
+
const source = getProjectModelSource(model);
|
|
67
|
+
if (filter === 'local')
|
|
68
|
+
return source === 'local';
|
|
69
|
+
if (filter === 'enabled')
|
|
70
|
+
return model.status === 'enabled';
|
|
71
|
+
if (filter === 'vision')
|
|
72
|
+
return model.imageCapability !== 'none';
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
function getSearchText(model) {
|
|
76
|
+
return [model.name, model.provider, model.providerModelId, model.owner].filter(Boolean).join(' ').toLowerCase();
|
|
77
|
+
}
|
|
78
|
+
function getFilterCount(models, filter) {
|
|
79
|
+
return models.filter((model) => matchesFilter(model, filter)).length;
|
|
80
|
+
}
|
|
81
|
+
function FilterChip({ active, count, label, onClick, }) {
|
|
82
|
+
return (_jsxs("button", { type: "button", onClick: onClick, className: cn('inline-flex h-8 items-center gap-1.5 rounded-full border px-3 text-xs font-medium transition-colors', active
|
|
83
|
+
? 'border-primary bg-primary text-primary-foreground'
|
|
84
|
+
: 'border-border bg-background text-muted-foreground hover:bg-accent hover:text-foreground'), children: [label, _jsx("span", { className: cn('font-mono text-[11px]', active ? 'opacity-75' : 'text-muted-foreground'), children: count })] }));
|
|
85
|
+
}
|
|
86
|
+
function ViewToggle({ value, onChange }) {
|
|
87
|
+
const { t } = useI18n();
|
|
88
|
+
return (_jsx(SlidingViewToggle, { value: value, ariaLabel: t('models.viewMode'), onChange: onChange, options: [
|
|
89
|
+
{ value: 'table', label: t('models.viewTable'), icon: List },
|
|
90
|
+
{ value: 'cards', label: t('models.viewCards'), icon: Grid2X2 },
|
|
91
|
+
] }));
|
|
92
|
+
}
|
|
93
|
+
function SourcePill({ source }) {
|
|
94
|
+
const { t } = useI18n();
|
|
95
|
+
return (_jsx("span", { className: cn('inline-flex rounded-full border px-2 py-0.5 text-[11px] font-medium', SOURCE_CLASS_NAMES[source]), children: t(MODEL_SOURCE_LABEL_KEYS[source]) }));
|
|
96
|
+
}
|
|
97
|
+
function StatusBadge({ status }) {
|
|
98
|
+
const { t } = useI18n();
|
|
99
|
+
const config = MODEL_STATUS_CLASSES[status];
|
|
100
|
+
return (_jsxs("span", { className: cn('inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-[11px] font-medium', config.pill), children: [_jsx("span", { className: cn('size-1.5 rounded-full', config.dot) }), t(MODEL_STATUS_LABEL_KEYS[status])] }));
|
|
101
|
+
}
|
|
102
|
+
function ProbeBadge({ status, testing }) {
|
|
103
|
+
const { t } = useI18n();
|
|
104
|
+
const connectivityStatus = testing ? 'testing' : status === 'pending' ? null : status;
|
|
105
|
+
const className = connectivityStatus ? CONNECTIVITY_STATUS_CLASSES[connectivityStatus] : 'status-archived';
|
|
106
|
+
const dotClassName = connectivityStatus ? CONNECTIVITY_STATUS_DOT_CLASSES[connectivityStatus] : 'dot-archived';
|
|
107
|
+
const label = connectivityStatus ? t(CONNECTIVITY_STATUS_LABEL_KEYS[connectivityStatus]) : t('models.probe.pending');
|
|
108
|
+
return (_jsxs("span", { className: cn('inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border px-2 py-0.5 text-[11px] font-medium', className), children: [_jsx("span", { className: cn('size-1.5 rounded-full', dotClassName) }), label] }));
|
|
109
|
+
}
|
|
110
|
+
function SelectionBox({ checked, onClick }) {
|
|
111
|
+
return (_jsx("button", { type: "button", onClick: (event) => {
|
|
112
|
+
event.stopPropagation();
|
|
113
|
+
onClick();
|
|
114
|
+
}, className: cn('inline-flex size-4 items-center justify-center rounded-[3px] border transition-colors', checked ? 'border-primary bg-primary text-primary-foreground' : 'border-foreground/50 bg-background'), "aria-pressed": checked, children: checked && _jsx(Check, { className: "size-3" }) }));
|
|
115
|
+
}
|
|
116
|
+
function QuotaMeter({ label, limit, current, usage, compact = false, }) {
|
|
117
|
+
const meterLabel = formatProgressLabel({
|
|
118
|
+
value: usage,
|
|
119
|
+
max: 100,
|
|
120
|
+
percent: usage,
|
|
121
|
+
valueLabel: current,
|
|
122
|
+
maxLabel: limit,
|
|
123
|
+
});
|
|
124
|
+
return (_jsxs("div", { className: cn(compact ? 'space-y-1' : 'min-w-[132px] space-y-1 text-right'), children: [label && _jsx("div", { className: "font-mono text-[10px] uppercase text-muted-foreground", children: label }), _jsx(Progress, { value: usage, label: meterLabel })] }));
|
|
125
|
+
}
|
|
126
|
+
function CapabilityIcons({ capability }) {
|
|
127
|
+
const { t } = useI18n();
|
|
128
|
+
const supportsImage = capability !== 'none';
|
|
129
|
+
const imageTitle = capability === 'both'
|
|
130
|
+
? t('models.capability.imageBoth')
|
|
131
|
+
: capability === 'url'
|
|
132
|
+
? t('models.capability.imageUrl')
|
|
133
|
+
: t('models.capability.imageBase64');
|
|
134
|
+
const textTitle = t('models.capability.text');
|
|
135
|
+
const kinds = supportsImage ? ['text', 'image'] : ['text'];
|
|
136
|
+
const tooltips = supportsImage ? { text: textTitle, image: imageTitle } : { text: textTitle };
|
|
137
|
+
const ariaLabels = tooltips;
|
|
138
|
+
return _jsx(ModalityIconGroup, { kinds: kinds, tooltips: tooltips, ariaLabels: ariaLabels });
|
|
139
|
+
}
|
|
140
|
+
function PricingCell({ model, compact = false }) {
|
|
141
|
+
const { t } = useI18n();
|
|
142
|
+
return (_jsxs("div", { className: cn('font-mono', compact ? 'text-[11px]' : 'text-right text-[12px]'), children: [_jsxs("div", { className: "font-medium text-foreground", children: ["$", model.pricing.inputPerMillion, " / $", model.pricing.outputPerMillion] }), _jsx("div", { className: "mt-0.5 text-[10px] text-muted-foreground", children: t('models.table.pricingDirection') }), _jsx("div", { className: "text-[10px] text-muted-foreground", children: t('models.table.pricingUnit') })] }));
|
|
143
|
+
}
|
|
144
|
+
function ModelActions({ model, onDelete, onCopy, onToggleStatus, onTestConnectivity, testing, }) {
|
|
145
|
+
const { t } = useI18n();
|
|
146
|
+
const editable = isProjectModelEditable(model);
|
|
147
|
+
return (_jsxs("div", { className: "inline-flex items-center gap-1", children: [_jsx(TableActionIconButton, { label: t('models.action.test'), disabled: testing, onClick: (event) => {
|
|
148
|
+
event.stopPropagation();
|
|
149
|
+
onTestConnectivity(model);
|
|
150
|
+
}, children: _jsx(Cable, { className: "size-3.5" }) }), _jsx(TableActionIconButton, { label: t('models.action.copy'), onClick: (event) => {
|
|
151
|
+
event.stopPropagation();
|
|
152
|
+
onCopy(model);
|
|
153
|
+
}, children: _jsx(CopyPlus, { className: "size-3.5" }) }), _jsxs(DropdownMenu, { children: [_jsx(TableActionTooltip, { label: t('models.action.more'), children: _jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { type: "button", variant: "ghost", size: "icon", className: TABLE_ACTION_ICON_BUTTON_CLASS, "aria-label": t('models.action.more'), onClick: (event) => event.stopPropagation(), children: _jsx(MoreHorizontal, { className: "size-3.5" }) }) }) }), _jsxs(DropdownMenuContent, { align: "end", className: "w-36", children: [_jsx(DropdownMenuItem, { asChild: true, children: _jsxs(Link, { href: `/models/${model.id}/edit`, children: [_jsx(Edit3, { className: "size-4" }), t('models.action.edit')] }) }), _jsxs(DropdownMenuItem, { disabled: !editable, onClick: (event) => {
|
|
154
|
+
event.stopPropagation();
|
|
155
|
+
onToggleStatus(model);
|
|
156
|
+
}, children: [_jsx(Power, { className: "size-4" }), model.status === 'disabled' ? t('models.action.enable') : t('models.action.disable')] }), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { disabled: !editable, className: "text-destructive focus:text-destructive", onClick: (event) => {
|
|
157
|
+
event.stopPropagation();
|
|
158
|
+
onDelete(model);
|
|
159
|
+
}, children: [_jsx(Trash2, { className: "size-4" }), t('models.action.delete')] })] })] })] }));
|
|
160
|
+
}
|
|
161
|
+
function ModelTable({ models, selectedIds, onToggleSelected, onDelete, onCopy, onToggleStatus, onTestConnectivity, testingIds, }) {
|
|
162
|
+
const { t } = useI18n();
|
|
163
|
+
const { formatDateTime } = useDateTimeFormatter();
|
|
164
|
+
const router = useRouter();
|
|
165
|
+
return (_jsxs(Table, { columns: MODELS_COLUMNS, containerTestId: "models-table-view", children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { column: "select", children: _jsx("span", { className: "sr-only", children: t('models.select') }) }), _jsx(TableHead, { column: "name", children: t('models.table.name') }), _jsx(TableHead, { column: "capability", children: t('models.table.capability') }), _jsx(TableHead, { column: "status", children: t('models.table.status') }), _jsx(TableHead, { column: "rpm", children: t('models.table.rpm') }), _jsx(TableHead, { column: "tpm", children: t('models.table.tpm') }), _jsx(TableHead, { column: "concurrency", children: t('models.table.concurrency') }), _jsx(TableHead, { column: "pricing", children: t('models.table.pricing') }), _jsx(TableHead, { column: "probe", children: t('models.table.lastProbe') }), _jsx(TableHead, { column: "actions", className: "text-right", children: t('common.actions') })] }) }), _jsx(TableBody, { children: models.map((model) => {
|
|
166
|
+
const selected = selectedIds.includes(model.id);
|
|
167
|
+
return (_jsxs(TableRow, { selected: selected, onClick: () => router.push(`/models/${model.id}/edit`), className: cn(model.status === 'disabled' && 'opacity-70'), children: [_jsx(TableCell, { column: "select", children: _jsx(SelectionBox, { checked: selected, onClick: () => onToggleSelected(model.id) }) }), _jsxs(TableCell, { column: "name", children: [_jsx("div", { className: "truncate font-semibold", children: model.name }), _jsx("div", { className: "mt-0.5 truncate font-mono text-[11px] text-muted-foreground", children: model.providerModelId })] }), _jsx(TableCell, { column: "capability", children: _jsx(CapabilityIcons, { capability: model.imageCapability }) }), _jsx(TableCell, { column: "status", children: _jsx(StatusBadge, { status: model.status }) }), _jsx(TableCell, { column: "rpm", children: _jsx(QuotaMeter, { limit: model.rpm.limit, current: model.rpm.current, usage: model.rpm.usage }) }), _jsx(TableCell, { column: "tpm", children: _jsx(QuotaMeter, { limit: model.tpm.limit, current: model.tpm.current, usage: model.tpm.usage }) }), _jsx(TableCell, { column: "concurrency", children: _jsx(QuotaMeter, { limit: model.concurrency.limit, current: model.concurrency.current, usage: model.concurrency.usage }) }), _jsx(TableCell, { column: "pricing", children: _jsx(PricingCell, { model: model }) }), _jsx(TableCell, { column: "probe", children: _jsxs("div", { className: "space-y-1", children: [_jsx(ProbeBadge, { status: model.probeStatus ?? 'pending', testing: testingIds.includes(model.id) }), _jsx("div", { className: "font-mono text-[10px] text-muted-foreground", children: model.lastProbedAt ? formatDateTime(model.lastProbedAt) : '--' })] }) }), _jsx(TableCell, { column: "actions", className: "text-right", children: _jsx(ModelActions, { model: model, onDelete: onDelete, onCopy: onCopy, onToggleStatus: onToggleStatus, onTestConnectivity: onTestConnectivity, testing: testingIds.includes(model.id) }) })] }, model.id));
|
|
168
|
+
}) })] }));
|
|
169
|
+
}
|
|
170
|
+
function ModelCards({ models, selectedIds, onToggleSelected, onDelete, onCopy, onToggleStatus, onTestConnectivity, testingIds, }) {
|
|
171
|
+
const { t } = useI18n();
|
|
172
|
+
const router = useRouter();
|
|
173
|
+
return (_jsx("div", { className: "grid grid-cols-1 gap-3 p-4 md:grid-cols-2 2xl:grid-cols-3", "data-testid": "models-card-view", children: models.map((model) => {
|
|
174
|
+
const selected = selectedIds.includes(model.id);
|
|
175
|
+
return (_jsxs("article", { className: cn('relative rounded-lg border bg-card p-4 transition-colors hover:border-ring/50', model.status === 'disabled' && 'opacity-70'), onClick: () => router.push(`/models/${model.id}/edit`), children: [_jsx("div", { className: "absolute left-3 top-3", children: _jsx(SelectionBox, { checked: selected, onClick: () => onToggleSelected(model.id) }) }), _jsxs("div", { className: "min-w-0 pl-6", children: [_jsxs("div", { className: "flex min-w-0 items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "truncate text-[15px] font-semibold", children: model.name }), _jsxs("div", { className: "mt-1 truncate font-mono text-[11px] text-muted-foreground", children: [model.provider, " \u00B7 ", model.providerModelId] })] }), _jsx(ModelActions, { model: model, onDelete: onDelete, onCopy: onCopy, onToggleStatus: onToggleStatus, onTestConnectivity: onTestConnectivity, testing: testingIds.includes(model.id) })] }), _jsxs("div", { className: "mt-3 flex flex-wrap items-center gap-1.5", children: [_jsx(SourcePill, { source: getProjectModelSource(model) }), _jsx(StatusBadge, { status: model.status }), _jsx(CapabilityIcons, { capability: model.imageCapability })] })] }), _jsxs("div", { className: "mt-4 grid grid-cols-3 gap-2 border-y py-3", children: [_jsx(QuotaMeter, { compact: true, label: "RPM", limit: model.rpm.limit, current: model.rpm.current, usage: model.rpm.usage }), _jsx(QuotaMeter, { compact: true, label: "TPM", limit: model.tpm.limit, current: model.tpm.current, usage: model.tpm.usage }), _jsx(QuotaMeter, { compact: true, label: t('models.table.concurrency'), limit: model.concurrency.limit, current: model.concurrency.current, usage: model.concurrency.usage })] }), _jsxs("div", { className: "mt-3 flex items-center gap-2 rounded-md bg-muted/45 px-3 py-2", children: [_jsx(DollarSign, { className: "size-3.5 text-[var(--status-canary-fg)]" }), _jsx(PricingCell, { model: model, compact: true })] }), _jsxs("div", { className: "mt-3 flex items-center justify-between gap-2 text-[11px] text-muted-foreground", children: [_jsx("span", { children: !isProjectModelEditable(model)
|
|
176
|
+
? t('models.card.readonlySource')
|
|
177
|
+
: `${t('models.card.references')} ${model.references}` }), _jsx(Button, { asChild: true, size: "sm", variant: "outline", className: "h-7 px-2 text-xs", onClick: (event) => event.stopPropagation(), children: _jsx(Link, { href: `/models/${model.id}/edit`, children: t('models.action.edit') }) })] })] }, model.id));
|
|
178
|
+
}) }));
|
|
179
|
+
}
|
|
180
|
+
function ConnectivityDialog({ model, testing, durationMs, onOpenChange, }) {
|
|
181
|
+
const { t } = useI18n();
|
|
182
|
+
if (!model)
|
|
183
|
+
return null;
|
|
184
|
+
const probeStatus = model.probeStatus ?? (testing ? 'pending' : 'success');
|
|
185
|
+
const connectivityStatus = testing ? 'testing' : probeStatus === 'failed' ? 'failed' : 'success';
|
|
186
|
+
const statusText = t(CONNECTIVITY_STATUS_LABEL_KEYS[connectivityStatus]);
|
|
187
|
+
const errorMessage = !testing && probeStatus === 'failed' ? (model.lastProbeError ?? t('models.connectivity.failedDetail')) : null;
|
|
188
|
+
const durationLabel = testing ? t('models.connectivity.elapsed') : t('models.connectivity.duration');
|
|
189
|
+
return (_jsx(Dialog, { open: model !== null, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: t('models.connectivity.title') }), _jsx(DialogDescription, { children: model.name })] }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-3 rounded-md border bg-muted/30 px-3 py-3", children: [_jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium", children: testing ? t('models.connectivity.running') : t('models.connectivity.done') }), _jsxs("div", { className: "mt-1 font-mono text-[11px] text-muted-foreground", children: [model.provider, " \u00B7 ", model.providerModelId] })] }), _jsxs("div", { className: cn('inline-flex items-center gap-1.5 rounded-full border px-2 py-1 text-xs font-medium', CONNECTIVITY_STATUS_CLASSES[connectivityStatus]), children: [_jsx("span", { className: cn('size-1.5 rounded-full', CONNECTIVITY_STATUS_DOT_CLASSES[connectivityStatus]) }), statusText] })] }), _jsxs("div", { className: "flex items-center justify-between gap-3 rounded-md border bg-card px-3 py-2.5", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium", children: [_jsx(Timer, { className: "size-4 text-muted-foreground" }), durationLabel] }), _jsx("div", { className: "font-mono text-sm", children: formatProbeDuration(durationMs) })] }), errorMessage && (_jsx("div", { role: "alert", className: "rounded-md border border-destructive/35 bg-destructive/10 p-3 text-[12.5px] leading-relaxed text-destructive", children: errorMessage }))] }), _jsx("div", { className: "flex justify-end", children: _jsx(Button, { type: "button", variant: "outline", onClick: () => onOpenChange(false), children: t('common.close') }) })] }) }));
|
|
190
|
+
}
|
|
191
|
+
export function ModelsListPage({ projectId }) {
|
|
192
|
+
const { t } = useI18n();
|
|
193
|
+
const router = useRouter();
|
|
194
|
+
const pathname = usePathname();
|
|
195
|
+
const searchParams = useSearchParams();
|
|
196
|
+
const viewMode = resolveViewMode(searchParams.get('view'));
|
|
197
|
+
const [activeFilter, setActiveFilter] = useState('all');
|
|
198
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
199
|
+
const projectQuery = useProjectModels(projectId);
|
|
200
|
+
const updateMutation = useUpdateProjectModel(projectId);
|
|
201
|
+
const deleteMutation = useDeleteProjectModel(projectId);
|
|
202
|
+
const probeMutation = useProbeProjectModel(projectId);
|
|
203
|
+
const queryModels = useMemo(() => (projectQuery.data?.data ?? []).map(dtoToProjectModel), [projectQuery.data]);
|
|
204
|
+
const [models, setModels] = useState([]);
|
|
205
|
+
useEffect(() => {
|
|
206
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect -- sync server query into local state used for optimistic mutation updates
|
|
207
|
+
setModels(queryModels);
|
|
208
|
+
}, [queryModels]);
|
|
209
|
+
const [selectedIds, setSelectedIds] = useState([]);
|
|
210
|
+
const [pageIndex, setPageIndex] = useState(0);
|
|
211
|
+
const [pageSize, setPageSize] = useState(DEFAULT_PAGE_SIZE);
|
|
212
|
+
const [filterPanelOpen, setFilterPanelOpen] = useState(false);
|
|
213
|
+
const [onlyEditable, setOnlyEditable] = useState(false);
|
|
214
|
+
const [onlyNearLimit, setOnlyNearLimit] = useState(false);
|
|
215
|
+
const [deleteTarget, setDeleteTarget] = useState(null);
|
|
216
|
+
const [connectivityTarget, setConnectivityTarget] = useState(null);
|
|
217
|
+
const [connectivityStartedAt, setConnectivityStartedAt] = useState(null);
|
|
218
|
+
const [connectivityElapsedMs, setConnectivityElapsedMs] = useState(0);
|
|
219
|
+
const [connectivityDurationMs, setConnectivityDurationMs] = useState(null);
|
|
220
|
+
const [testingIds, setTestingIds] = useState([]);
|
|
221
|
+
useEffect(() => {
|
|
222
|
+
if (connectivityStartedAt == null)
|
|
223
|
+
return undefined;
|
|
224
|
+
const updateElapsed = () => setConnectivityElapsedMs(Date.now() - connectivityStartedAt);
|
|
225
|
+
updateElapsed();
|
|
226
|
+
const interval = window.setInterval(updateElapsed, 100);
|
|
227
|
+
return () => window.clearInterval(interval);
|
|
228
|
+
}, [connectivityStartedAt]);
|
|
229
|
+
const filteredModels = useMemo(() => {
|
|
230
|
+
const query = searchQuery.trim().toLowerCase();
|
|
231
|
+
return models
|
|
232
|
+
.filter((model) => matchesFilter(model, activeFilter))
|
|
233
|
+
.filter((model) => !onlyEditable || isProjectModelEditable(model))
|
|
234
|
+
.filter((model) => !onlyNearLimit || Math.max(model.rpm.usage, model.tpm.usage, model.concurrency.usage) >= 80)
|
|
235
|
+
.filter((model) => {
|
|
236
|
+
if (!query)
|
|
237
|
+
return true;
|
|
238
|
+
return getSearchText(model).includes(query);
|
|
239
|
+
});
|
|
240
|
+
}, [activeFilter, models, onlyEditable, onlyNearLimit, searchQuery]);
|
|
241
|
+
const pageCount = Math.max(1, Math.ceil(filteredModels.length / pageSize));
|
|
242
|
+
const safePageIndex = Math.min(pageIndex, pageCount - 1);
|
|
243
|
+
const pagedModels = filteredModels.slice(safePageIndex * pageSize, safePageIndex * pageSize + pageSize);
|
|
244
|
+
const modelsLoading = useDelayedLoading(projectQuery.isLoading && !projectQuery.data);
|
|
245
|
+
const toggleSelected = (modelId) => {
|
|
246
|
+
setSelectedIds((current) => current.includes(modelId) ? current.filter((item) => item !== modelId) : [...current, modelId]);
|
|
247
|
+
};
|
|
248
|
+
const testConnectivity = (model) => {
|
|
249
|
+
const pendingModel = { ...model, probeStatus: 'pending' };
|
|
250
|
+
const startedAt = Date.now();
|
|
251
|
+
setConnectivityTarget(pendingModel);
|
|
252
|
+
setConnectivityStartedAt(startedAt);
|
|
253
|
+
setConnectivityElapsedMs(0);
|
|
254
|
+
setConnectivityDurationMs(null);
|
|
255
|
+
setTestingIds((current) => (current.includes(model.id) ? current : [...current, model.id]));
|
|
256
|
+
setModels((current) => current.map((item) => (item.id === model.id ? pendingModel : item)));
|
|
257
|
+
probeMutation.mutate(model.id, {
|
|
258
|
+
onSuccess: (result) => {
|
|
259
|
+
const status = result.status === 'success' ? 'success' : 'failed';
|
|
260
|
+
const testedModel = {
|
|
261
|
+
...pendingModel,
|
|
262
|
+
probeStatus: status,
|
|
263
|
+
lastProbedAt: result.probedAt,
|
|
264
|
+
lastProbeError: result.error,
|
|
265
|
+
};
|
|
266
|
+
setConnectivityDurationMs(result.durationMs);
|
|
267
|
+
setModels((current) => current.map((item) => (item.id === model.id ? testedModel : item)));
|
|
268
|
+
setConnectivityTarget((current) => (current?.id === model.id ? testedModel : current));
|
|
269
|
+
},
|
|
270
|
+
onError: (error) => {
|
|
271
|
+
const failedModel = {
|
|
272
|
+
...pendingModel,
|
|
273
|
+
probeStatus: 'failed',
|
|
274
|
+
lastProbeError: getApiErrorMessage(error) ?? t('models.connectivity.failedDetail'),
|
|
275
|
+
};
|
|
276
|
+
setConnectivityDurationMs(Date.now() - startedAt);
|
|
277
|
+
setModels((current) => current.map((item) => (item.id === model.id ? failedModel : item)));
|
|
278
|
+
setConnectivityTarget((current) => (current?.id === model.id ? failedModel : current));
|
|
279
|
+
},
|
|
280
|
+
onSettled: () => {
|
|
281
|
+
setConnectivityStartedAt(null);
|
|
282
|
+
setTestingIds((current) => current.filter((item) => item !== model.id));
|
|
283
|
+
},
|
|
284
|
+
});
|
|
285
|
+
};
|
|
286
|
+
const toggleStatus = (model) => {
|
|
287
|
+
if (!isProjectModelEditable(model))
|
|
288
|
+
return;
|
|
289
|
+
const next = model.status === 'disabled' ? 'enabled' : 'disabled';
|
|
290
|
+
setModels((current) => current.map((item) => (item.id === model.id ? { ...item, status: next } : item)));
|
|
291
|
+
updateMutation.mutate({ modelId: model.id, body: { status: next } });
|
|
292
|
+
};
|
|
293
|
+
const copyModel = (model) => {
|
|
294
|
+
router.push(`/models/new?copyFrom=${model.id}`);
|
|
295
|
+
};
|
|
296
|
+
const updateViewMode = (nextViewMode) => {
|
|
297
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
298
|
+
if (nextViewMode === 'cards')
|
|
299
|
+
params.set('view', 'cards');
|
|
300
|
+
else
|
|
301
|
+
params.delete('view');
|
|
302
|
+
const query = params.toString();
|
|
303
|
+
router.replace(query ? `${pathname}?${query}` : pathname, { scroll: false });
|
|
304
|
+
};
|
|
305
|
+
const requestDeleteModel = (model) => {
|
|
306
|
+
if (!isProjectModelEditable(model))
|
|
307
|
+
return;
|
|
308
|
+
setDeleteTarget(model);
|
|
309
|
+
};
|
|
310
|
+
const confirmDeleteModel = () => {
|
|
311
|
+
if (!deleteTarget || deleteTarget.references > 0)
|
|
312
|
+
return;
|
|
313
|
+
const target = deleteTarget;
|
|
314
|
+
setModels((current) => current.filter((item) => item.id !== target.id));
|
|
315
|
+
setSelectedIds((current) => current.filter((item) => item !== target.id));
|
|
316
|
+
setDeleteTarget(null);
|
|
317
|
+
deleteMutation.mutate({ modelId: target.id });
|
|
318
|
+
};
|
|
319
|
+
const deleteBlocked = Boolean(deleteTarget && deleteTarget.references > 0);
|
|
320
|
+
return (_jsxs(Main, { className: "gap-0 bg-muted/35 p-0", children: [_jsxs("div", { className: "mx-auto w-full max-w-[1760px] px-4 py-6 sm:px-6 lg:px-8", "data-testid": "models-page", children: [_jsxs("div", { className: "mb-5 flex flex-col gap-4 xl:flex-row xl:items-start xl:justify-between", children: [_jsx("div", { className: "min-w-0", children: _jsx("h1", { className: "text-[26px] font-semibold", children: t('models.title') }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [selectedIds.length > 0 && (_jsxs("div", { className: "flex flex-wrap items-center gap-2 border-r pr-3", children: [_jsxs("span", { className: "text-xs text-muted-foreground", children: [t('models.selected'), " ", _jsx("b", { className: "font-mono text-foreground", children: selectedIds.length })] }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", className: "h-8", children: [_jsx(Download, { className: "size-3.5" }), t('models.action.exportCsv')] }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", className: "h-8", children: [_jsx(Cable, { className: "size-3.5" }), t('models.action.bulkTest')] }), _jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "size-8", onClick: () => setSelectedIds([]), "aria-label": t('models.clearSelection'), children: _jsx(X, { className: "size-3.5" }) })] })), _jsx(Button, { asChild: true, size: "sm", className: "h-9", children: _jsxs(Link, { href: `/models/new`, children: [_jsx(Plus, { className: "size-4" }), t('models.create')] }) })] })] }), _jsxs("section", { className: "rounded-lg border bg-card", "aria-label": t('models.listSurface'), children: [_jsxs("div", { className: "relative flex flex-col gap-3 border-b p-4 xl:flex-row xl:items-center xl:justify-between", children: [_jsxs("div", { className: "flex flex-1 flex-wrap items-center gap-2", children: [_jsxs("div", { className: "relative w-full sm:w-[280px]", children: [_jsx(Search, { className: "pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { type: "search", value: searchQuery, onChange: (event) => {
|
|
321
|
+
setSearchQuery(event.target.value);
|
|
322
|
+
setPageIndex(0);
|
|
323
|
+
}, placeholder: t('models.searchPlaceholder'), className: "h-9 pl-8 text-sm" })] }), FILTERS.map((filter) => (_jsx(FilterChip, { active: activeFilter === filter.key, count: getFilterCount(models, filter.key), label: t(filter.labelKey), onClick: () => {
|
|
324
|
+
setActiveFilter(filter.key);
|
|
325
|
+
setPageIndex(0);
|
|
326
|
+
} }, filter.key)))] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(ViewToggle, { value: viewMode, onChange: updateViewMode }), _jsx(Button, { type: "button", variant: filterPanelOpen ? 'secondary' : 'outline', size: "icon", className: "size-9", "aria-label": t('models.filterSettings'), onClick: () => setFilterPanelOpen((open) => !open), children: _jsx(SlidersHorizontal, { className: "size-4" }) })] }), filterPanelOpen && (_jsxs("div", { className: "absolute right-4 top-[calc(100%-8px)] z-40 w-60 rounded-md border bg-popover p-2 text-sm shadow-lg", children: [_jsx("div", { className: "px-2 pb-2 text-xs font-medium text-muted-foreground", children: t('models.filterSettings') }), _jsxs("label", { className: "flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 hover:bg-accent", children: [_jsx("input", { type: "checkbox", checked: onlyEditable, onChange: (event) => {
|
|
327
|
+
setOnlyEditable(event.target.checked);
|
|
328
|
+
setPageIndex(0);
|
|
329
|
+
}, className: "size-4 accent-primary" }), _jsx("span", { children: t('models.filter.editableOnly') })] }), _jsxs("label", { className: "flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 hover:bg-accent", children: [_jsx("input", { type: "checkbox", checked: onlyNearLimit, onChange: (event) => {
|
|
330
|
+
setOnlyNearLimit(event.target.checked);
|
|
331
|
+
setPageIndex(0);
|
|
332
|
+
}, className: "size-4 accent-primary" }), _jsx("span", { children: t('models.filter.nearLimitOnly') })] }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", className: "mt-1 h-8 w-full justify-start", onClick: () => {
|
|
333
|
+
setActiveFilter('all');
|
|
334
|
+
setOnlyEditable(false);
|
|
335
|
+
setOnlyNearLimit(false);
|
|
336
|
+
setSearchQuery('');
|
|
337
|
+
setPageIndex(0);
|
|
338
|
+
}, children: t('models.filter.reset') })] }))] }), modelsLoading ? (_jsxs("div", { className: "relative", children: [_jsx(ListRowsSkeleton, { rows: 8 }), _jsx(PlatformLoaderOverlay, {})] })) : viewMode === 'table' ? (_jsx(ModelTable, { models: pagedModels, selectedIds: selectedIds, onToggleSelected: toggleSelected, onDelete: requestDeleteModel, onCopy: copyModel, onToggleStatus: toggleStatus, onTestConnectivity: testConnectivity, testingIds: testingIds })) : (_jsx(ModelCards, { models: pagedModels, selectedIds: selectedIds, onToggleSelected: toggleSelected, onDelete: requestDeleteModel, onCopy: copyModel, onToggleStatus: toggleStatus, onTestConnectivity: testConnectivity, testingIds: testingIds })), !modelsLoading && (_jsx(ResourcePaginationFooter, { summary: _jsxs(_Fragment, { children: [t('models.totalPrefix'), ' ', _jsx("span", { className: "font-mono font-medium text-foreground", children: filteredModels.length }), ' ', t('models.totalSuffix'), " \u00B7 ", t('models.selected'), ' ', _jsx("span", { className: "font-mono font-medium text-foreground", children: selectedIds.length })] }), pageIndex: safePageIndex, pageCount: pageCount, pageSize: pageSize, pageSizeOptions: PAGE_SIZE_OPTIONS, previousPageLabel: t('models.previousPage'), nextPageLabel: t('models.nextPage'), onPageChange: setPageIndex, onPageSizeChange: (nextPageSize) => {
|
|
339
|
+
setPageSize(nextPageSize);
|
|
340
|
+
setPageIndex(0);
|
|
341
|
+
} }))] })] }), _jsx(ConnectivityDialog, { model: connectivityTarget, testing: connectivityTarget ? testingIds.includes(connectivityTarget.id) : false, durationMs: connectivityTarget && testingIds.includes(connectivityTarget.id)
|
|
342
|
+
? connectivityElapsedMs
|
|
343
|
+
: connectivityDurationMs, onOpenChange: (open) => {
|
|
344
|
+
if (!open) {
|
|
345
|
+
setConnectivityTarget(null);
|
|
346
|
+
setConnectivityStartedAt(null);
|
|
347
|
+
setConnectivityElapsedMs(0);
|
|
348
|
+
setConnectivityDurationMs(null);
|
|
349
|
+
}
|
|
350
|
+
} }), _jsx(Dialog, { open: deleteTarget !== null, onOpenChange: (open) => !open && setDeleteTarget(null), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: deleteBlocked ? t('models.form.deleteBlockedTitle') : t('models.deleteDialogTitle') }), _jsx(DialogDescription, { children: deleteBlocked ? t('models.form.deleteBlockedDescription') : t('models.deleteDialogDescription') })] }), _jsxs("div", { className: cn('rounded-md border p-3 text-sm', deleteBlocked ? 'border-destructive/30 bg-destructive/5 text-destructive' : 'bg-muted/45'), children: [_jsx("div", { className: "text-xs font-medium text-muted-foreground", children: deleteBlocked ? t('models.form.deleteBlockedTitle') : t('models.deleteDialogTarget') }), _jsx("div", { className: "mt-1 font-medium", children: deleteTarget?.name }), deleteBlocked && _jsx("div", { className: "mt-1 text-xs", children: t('models.form.deleteBlockedHelp') })] }), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx(Button, { type: "button", variant: "outline", onClick: () => setDeleteTarget(null), children: deleteBlocked ? t('common.close') : t('common.cancel') }), !deleteBlocked && (_jsx(Button, { type: "button", variant: "destructive", onClick: confirmDeleteModel, children: t('models.deleteDialogConfirm') }))] })] }) })] }));
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=models-list-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models-list-page.js","sourceRoot":"","sources":["../../../src/screens/models/models-list-page.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ProjectModelListItemDto } from '@proofhound/shared';
|
|
2
|
+
import type { ProjectModel } from './model-view-model';
|
|
3
|
+
export declare function formatLargeNumber(value: number): string;
|
|
4
|
+
export declare function dtoToProjectModel(dto: ProjectModelListItemDto): ProjectModel;
|
|
5
|
+
//# sourceMappingURL=project-model-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-model-adapter.d.ts","sourceRoot":"","sources":["../../../src/screens/models/project-model-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAA6C,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASvD;AAOD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,uBAAuB,GAAG,YAAY,CA+C5E"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export function formatLargeNumber(value) {
|
|
2
|
+
if (value >= 1_000_000) {
|
|
3
|
+
const m = value / 1_000_000;
|
|
4
|
+
return `${m >= 10 ? m.toFixed(1) : m.toFixed(2)} M`;
|
|
5
|
+
}
|
|
6
|
+
if (value >= 1_000) {
|
|
7
|
+
return `${(value / 1_000).toLocaleString('en-US', { maximumFractionDigits: 1 })} k`;
|
|
8
|
+
}
|
|
9
|
+
return String(value);
|
|
10
|
+
}
|
|
11
|
+
function formatJsonInput(value) {
|
|
12
|
+
const entries = Object.keys(value ?? {});
|
|
13
|
+
return entries.length > 0 ? JSON.stringify(value, null, 2) : '';
|
|
14
|
+
}
|
|
15
|
+
export function dtoToProjectModel(dto) {
|
|
16
|
+
return {
|
|
17
|
+
id: dto.id,
|
|
18
|
+
name: dto.name,
|
|
19
|
+
provider: dto.providerType,
|
|
20
|
+
providerModelId: dto.providerModelId,
|
|
21
|
+
endpoint: dto.endpoint,
|
|
22
|
+
source: 'local',
|
|
23
|
+
status: dto.status,
|
|
24
|
+
probeStatus: dto.probeStatus,
|
|
25
|
+
lastProbedAt: dto.lastProbedAt ?? '',
|
|
26
|
+
lastProbeError: dto.lastProbeError,
|
|
27
|
+
owner: dto.createdByDisplayName ?? undefined,
|
|
28
|
+
apiKey: '',
|
|
29
|
+
credentialTail: dto.credentialTail,
|
|
30
|
+
contextWindow: dto.contextWindowTokens != null ? formatLargeNumber(dto.contextWindowTokens) : '',
|
|
31
|
+
contextWindowInput: dto.contextWindowTokens != null ? String(dto.contextWindowTokens) : '',
|
|
32
|
+
extraBodyInput: formatJsonInput(dto.extraBody),
|
|
33
|
+
rpm: {
|
|
34
|
+
limit: formatLargeNumber(dto.rpm.limit),
|
|
35
|
+
limitInput: String(dto.rpm.limit),
|
|
36
|
+
usage: dto.rpm.usage,
|
|
37
|
+
current: formatLargeNumber(dto.rpm.current),
|
|
38
|
+
},
|
|
39
|
+
tpm: {
|
|
40
|
+
limit: formatLargeNumber(dto.tpm.limit),
|
|
41
|
+
limitInput: String(dto.tpm.limit),
|
|
42
|
+
usage: dto.tpm.usage,
|
|
43
|
+
current: formatLargeNumber(dto.tpm.current),
|
|
44
|
+
},
|
|
45
|
+
concurrency: {
|
|
46
|
+
limit: String(dto.concurrency.limit),
|
|
47
|
+
limitInput: String(dto.concurrency.limit),
|
|
48
|
+
usage: dto.concurrency.usage,
|
|
49
|
+
current: String(dto.concurrency.current),
|
|
50
|
+
effective: dto.concurrency.effective != null ? String(dto.concurrency.effective) : undefined,
|
|
51
|
+
},
|
|
52
|
+
autoConcurrency: dto.autoConcurrency,
|
|
53
|
+
pricing: {
|
|
54
|
+
inputPerMillion: dto.pricing.inputPerMillion.toFixed(2),
|
|
55
|
+
outputPerMillion: dto.pricing.outputPerMillion.toFixed(2),
|
|
56
|
+
},
|
|
57
|
+
imageCapability: dto.capabilities.image,
|
|
58
|
+
references: dto.references,
|
|
59
|
+
readonly: false,
|
|
60
|
+
lastUpdated: dto.updatedAt,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=project-model-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-model-adapter.js","sourceRoot":"","sources":["../../../src/screens/models/project-model-adapter.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC;QAC5B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IACD,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACtF,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,KAA0C;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAA4B;IAC5D,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,YAAY;QAC1B,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,GAAG,CAAC,MAAqB;QACjC,WAAW,EAAE,GAAG,CAAC,WAA0B;QAC3C,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QACpC,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,KAAK,EAAE,GAAG,CAAC,oBAAoB,IAAI,SAAS;QAC5C,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,aAAa,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;QAChG,kBAAkB,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1F,cAAc,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;QAC9C,GAAG,EAAE;YACH,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YACvC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK;YACpB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;SAC5C;QACD,GAAG,EAAE;YACH,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YACvC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK;YACpB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;SAC5C;QACD,WAAW,EAAE;YACX,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;YACpC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;YACzC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK;YAC5B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC;YACxC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7F;QACD,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,OAAO,EAAE;YACP,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;SAC1D;QACD,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,KAAwB;QAC1D,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,GAAG,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { SourceBucket } from '@proofhound/shared';
|
|
3
|
+
import { type SourceStackedBarDatum, type SourceStackedBarSource } from '../../components';
|
|
4
|
+
export type DeltaTone = 'up' | 'down' | 'warn' | 'neutral';
|
|
5
|
+
export declare function BigChartCard({ title, icon, iconBg, iconFg, total, unit, comparison, delta, subtitle, data, yTickFormatter, legendFormatter, bySource, sourceLabels, sourceKeys, sourceDistributionLabel, totalLabel, threshold, }: {
|
|
6
|
+
title: string;
|
|
7
|
+
icon: ReactNode;
|
|
8
|
+
iconBg: string;
|
|
9
|
+
iconFg: string;
|
|
10
|
+
total: string;
|
|
11
|
+
unit?: string;
|
|
12
|
+
comparison?: {
|
|
13
|
+
value: string;
|
|
14
|
+
unit?: string;
|
|
15
|
+
label: string;
|
|
16
|
+
tone?: DeltaTone;
|
|
17
|
+
} | null;
|
|
18
|
+
delta?: {
|
|
19
|
+
text: string;
|
|
20
|
+
tone: DeltaTone;
|
|
21
|
+
} | null;
|
|
22
|
+
subtitle?: string;
|
|
23
|
+
data: ReadonlyArray<SourceStackedBarDatum>;
|
|
24
|
+
yTickFormatter?: (v: number) => string;
|
|
25
|
+
legendFormatter: (value: number) => string;
|
|
26
|
+
bySource: Record<SourceBucket, number>;
|
|
27
|
+
sourceLabels: Record<SourceBucket, string>;
|
|
28
|
+
sourceKeys?: ReadonlyArray<SourceStackedBarSource>;
|
|
29
|
+
sourceDistributionLabel: string;
|
|
30
|
+
totalLabel: string;
|
|
31
|
+
threshold?: {
|
|
32
|
+
value: number;
|
|
33
|
+
label: string;
|
|
34
|
+
} | null;
|
|
35
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=big-chart-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"big-chart-card.d.ts","sourceRoot":"","sources":["../../../src/screens/monitoring/big-chart-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAkC,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG3H,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3D,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,IAAI,EACJ,UAAU,EACV,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,UAAU,EACV,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACtF,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACnD,uBAAuB,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACrD,2CAoEA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { TrendingDown, TrendingUp } from 'lucide-react';
|
|
4
|
+
import { SourceLegend, SourceStackedBar } from '../../components';
|
|
5
|
+
import { cn } from '@proofhound/ui';
|
|
6
|
+
export function BigChartCard({ title, icon, iconBg, iconFg, total, unit, comparison, delta, subtitle, data, yTickFormatter, legendFormatter, bySource, sourceLabels, sourceKeys, sourceDistributionLabel, totalLabel, threshold, }) {
|
|
7
|
+
return (_jsxs("section", { className: "flex flex-col rounded-lg border bg-card p-4 transition-shadow hover:shadow-md", "aria-label": title, children: [_jsx("div", { className: "flex items-start justify-between gap-3", children: _jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 text-[12.5px] font-medium text-muted-foreground", children: [_jsx("span", { className: "inline-flex size-7 items-center justify-center rounded-md", style: { background: iconBg, color: iconFg }, children: icon }), title] }), _jsxs("div", { className: "mt-1.5 flex flex-wrap items-end gap-x-3 gap-y-1", children: [_jsxs("div", { className: "text-[28px] font-bold leading-[1.1] text-foreground", children: [total, unit && _jsx("span", { className: "ml-0.5 text-[14px] font-medium text-muted-foreground", children: unit })] }), comparison && (_jsxs("div", { className: "pb-0.5", "data-comparison-tone": comparison.tone ?? 'neutral', children: [_jsxs("div", { className: cn('flex items-center gap-0.5 font-mono text-[13px] font-semibold leading-none', comparisonToneClass(comparison.tone ?? 'neutral')), children: [_jsx(ComparisonIcon, { tone: comparison.tone ?? 'neutral' }), comparison.value, comparison.unit && _jsx("span", { className: "ml-0.5 text-[10.5px] font-medium", children: comparison.unit })] }), _jsx("div", { className: "mt-0.5 text-[10.5px] leading-none text-muted-foreground", children: comparison.label })] }))] }), (!comparison && delta) || subtitle ? (_jsxs("div", { className: "mt-1.5 flex flex-wrap items-center gap-x-1.5 gap-y-1 text-[11.5px] text-muted-foreground", children: [!comparison && delta && _jsx(DeltaPill, { ...delta }), subtitle] })) : null] }) }), _jsx("div", { className: "mt-3.5", children: _jsx(SourceStackedBar, { data: data, yTickFormatter: yTickFormatter, sourceLabels: sourceLabels, sourceKeys: sourceKeys, totalLabel: totalLabel, threshold: threshold }) }), _jsx(SourceLegend, { values: bySource, format: legendFormatter, labels: sourceLabels, sourceKeys: sourceKeys, ariaLabel: sourceDistributionLabel, className: "mt-3" })] }));
|
|
8
|
+
}
|
|
9
|
+
function DeltaPill({ text, tone }) {
|
|
10
|
+
const palette = {
|
|
11
|
+
up: 'bg-[var(--trend-up-bg)] text-[var(--trend-up-fg)]',
|
|
12
|
+
down: 'bg-[var(--trend-down-bg)] text-[var(--trend-down-fg)]',
|
|
13
|
+
warn: 'bg-[var(--trend-up-bg)] text-[var(--trend-up-fg)]',
|
|
14
|
+
neutral: 'bg-muted text-muted-foreground',
|
|
15
|
+
};
|
|
16
|
+
const Icon = tone === 'up' ? TrendingUp : tone === 'down' ? TrendingDown : null;
|
|
17
|
+
return (_jsxs("span", { className: cn('inline-flex items-center gap-0.5 rounded-md px-1.5 py-0.5 font-mono text-[11px] font-semibold', palette[tone]), children: [Icon && _jsx(Icon, { className: "size-3" }), text] }));
|
|
18
|
+
}
|
|
19
|
+
function comparisonToneClass(tone) {
|
|
20
|
+
const palette = {
|
|
21
|
+
up: 'text-[var(--trend-up-fg)]',
|
|
22
|
+
down: 'text-[var(--trend-down-fg)]',
|
|
23
|
+
warn: 'text-[var(--trend-up-fg)]',
|
|
24
|
+
neutral: 'text-muted-foreground',
|
|
25
|
+
};
|
|
26
|
+
return palette[tone];
|
|
27
|
+
}
|
|
28
|
+
function ComparisonIcon({ tone }) {
|
|
29
|
+
const Icon = tone === 'up' ? TrendingUp : tone === 'down' ? TrendingDown : null;
|
|
30
|
+
return Icon ? _jsx(Icon, { className: "size-3", strokeWidth: 2.4 }) : null;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=big-chart-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"big-chart-card.js","sourceRoot":"","sources":["../../../src/screens/monitoring/big-chart-card.tsx"],"names":[],"mappings":"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"}
|