@elizaos/plugin-training 2.0.3-beta.5 → 2.0.3-beta.7
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/dist/backends/native.d.ts +96 -0
- package/dist/backends/native.d.ts.map +1 -0
- package/dist/backends/native.js +308 -0
- package/dist/backends/native.js.map +1 -0
- package/dist/cli/train.d.ts +22 -0
- package/dist/cli/train.d.ts.map +1 -0
- package/dist/cli/train.js +219 -0
- package/dist/cli/train.js.map +1 -0
- package/dist/core/action-benchmark-runner.d.ts +55 -0
- package/dist/core/action-benchmark-runner.d.ts.map +1 -0
- package/dist/core/action-benchmark-runner.js +341 -0
- package/dist/core/action-benchmark-runner.js.map +1 -0
- package/dist/core/artifact-store.d.ts +72 -0
- package/dist/core/artifact-store.d.ts.map +1 -0
- package/dist/core/artifact-store.js +50 -0
- package/dist/core/artifact-store.js.map +1 -0
- package/dist/core/benchmark-matrix-artifact.d.ts +102 -0
- package/dist/core/benchmark-matrix-artifact.d.ts.map +1 -0
- package/dist/core/benchmark-matrix-artifact.js +381 -0
- package/dist/core/benchmark-matrix-artifact.js.map +1 -0
- package/dist/core/benchmark-vs-cerebras-runner.d.ts +37 -0
- package/dist/core/benchmark-vs-cerebras-runner.d.ts.map +1 -0
- package/dist/core/benchmark-vs-cerebras-runner.js +151 -0
- package/dist/core/benchmark-vs-cerebras-runner.js.map +1 -0
- package/dist/core/cerebras-eval-model.d.ts +54 -0
- package/dist/core/cerebras-eval-model.d.ts.map +1 -0
- package/dist/core/cerebras-eval-model.js +249 -0
- package/dist/core/cerebras-eval-model.js.map +1 -0
- package/dist/core/cli.d.ts +15 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +1003 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/context-audit.d.ts +51 -0
- package/dist/core/context-audit.d.ts.map +1 -0
- package/dist/core/context-audit.js +166 -0
- package/dist/core/context-audit.js.map +1 -0
- package/dist/core/context-catalog.d.ts +47 -0
- package/dist/core/context-catalog.d.ts.map +1 -0
- package/dist/core/context-catalog.js +269 -0
- package/dist/core/context-catalog.js.map +1 -0
- package/dist/core/context-types.d.ts +3 -0
- package/dist/core/context-types.d.ts.map +1 -0
- package/dist/core/context-types.js +18 -0
- package/dist/core/context-types.js.map +1 -0
- package/dist/core/dataset-generator.d.ts +135 -0
- package/dist/core/dataset-generator.d.ts.map +1 -0
- package/dist/core/dataset-generator.js +895 -0
- package/dist/core/dataset-generator.js.map +1 -0
- package/dist/core/eliza1-benchmark-recipe.d.ts +18 -0
- package/dist/core/eliza1-benchmark-recipe.d.ts.map +1 -0
- package/dist/core/eliza1-benchmark-recipe.js +64 -0
- package/dist/core/eliza1-benchmark-recipe.js.map +1 -0
- package/dist/core/eliza1-bundle-stager.d.ts +57 -0
- package/dist/core/eliza1-bundle-stager.d.ts.map +1 -0
- package/dist/core/eliza1-bundle-stager.js +149 -0
- package/dist/core/eliza1-bundle-stager.js.map +1 -0
- package/dist/core/ensure-cron-job.d.ts +53 -0
- package/dist/core/ensure-cron-job.d.ts.map +1 -0
- package/dist/core/ensure-cron-job.js +51 -0
- package/dist/core/ensure-cron-job.js.map +1 -0
- package/dist/core/eval-comparison-artifact.d.ts +72 -0
- package/dist/core/eval-comparison-artifact.d.ts.map +1 -0
- package/dist/core/eval-comparison-artifact.js +281 -0
- package/dist/core/eval-comparison-artifact.js.map +1 -0
- package/dist/core/feed-generation-runner.d.ts +37 -0
- package/dist/core/feed-generation-runner.d.ts.map +1 -0
- package/dist/core/feed-generation-runner.js +232 -0
- package/dist/core/feed-generation-runner.js.map +1 -0
- package/dist/core/html-escape.d.ts +5 -0
- package/dist/core/html-escape.d.ts.map +1 -0
- package/dist/core/html-escape.js +11 -0
- package/dist/core/html-escape.js.map +1 -0
- package/dist/core/huggingface-dataset-ingest.d.ts +52 -0
- package/dist/core/huggingface-dataset-ingest.d.ts.map +1 -0
- package/dist/core/huggingface-dataset-ingest.js +134 -0
- package/dist/core/huggingface-dataset-ingest.js.map +1 -0
- package/dist/core/index.d.ts +29 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +204 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/privacy-filter.d.ts +95 -0
- package/dist/core/privacy-filter.d.ts.map +1 -0
- package/dist/core/privacy-filter.js +324 -0
- package/dist/core/privacy-filter.js.map +1 -0
- package/dist/core/promotion-gate.d.ts +117 -0
- package/dist/core/promotion-gate.d.ts.map +1 -0
- package/dist/core/promotion-gate.js +85 -0
- package/dist/core/promotion-gate.js.map +1 -0
- package/dist/core/promotion-persist.d.ts +116 -0
- package/dist/core/promotion-persist.d.ts.map +1 -0
- package/dist/core/promotion-persist.js +93 -0
- package/dist/core/promotion-persist.js.map +1 -0
- package/dist/core/prompt-compare.d.ts +99 -0
- package/dist/core/prompt-compare.d.ts.map +1 -0
- package/dist/core/prompt-compare.js +210 -0
- package/dist/core/prompt-compare.js.map +1 -0
- package/dist/core/replay-validator.d.ts +136 -0
- package/dist/core/replay-validator.d.ts.map +1 -0
- package/dist/core/replay-validator.js +312 -0
- package/dist/core/replay-validator.js.map +1 -0
- package/dist/core/roleplay-executor.d.ts +123 -0
- package/dist/core/roleplay-executor.d.ts.map +1 -0
- package/dist/core/roleplay-executor.js +675 -0
- package/dist/core/roleplay-executor.js.map +1 -0
- package/dist/core/roleplay-trajectories.d.ts +54 -0
- package/dist/core/roleplay-trajectories.d.ts.map +1 -0
- package/dist/core/roleplay-trajectories.js +88 -0
- package/dist/core/roleplay-trajectories.js.map +1 -0
- package/dist/core/scenario-blueprints.d.ts +62 -0
- package/dist/core/scenario-blueprints.d.ts.map +1 -0
- package/dist/core/scenario-blueprints.js +850 -0
- package/dist/core/scenario-blueprints.js.map +1 -0
- package/dist/core/scenario-runner.d.ts +36 -0
- package/dist/core/scenario-runner.d.ts.map +1 -0
- package/dist/core/scenario-runner.js +216 -0
- package/dist/core/scenario-runner.js.map +1 -0
- package/dist/core/skill-scoring-cron.d.ts +57 -0
- package/dist/core/skill-scoring-cron.d.ts.map +1 -0
- package/dist/core/skill-scoring-cron.js +180 -0
- package/dist/core/skill-scoring-cron.js.map +1 -0
- package/dist/core/test-trajectory-collector.d.ts +37 -0
- package/dist/core/test-trajectory-collector.d.ts.map +1 -0
- package/dist/core/test-trajectory-collector.js +225 -0
- package/dist/core/test-trajectory-collector.js.map +1 -0
- package/dist/core/track-c-queue-task.d.ts +37 -0
- package/dist/core/track-c-queue-task.d.ts.map +1 -0
- package/dist/core/track-c-queue-task.js +104 -0
- package/dist/core/track-c-queue-task.js.map +1 -0
- package/dist/core/training-analysis-index.d.ts +104 -0
- package/dist/core/training-analysis-index.d.ts.map +1 -0
- package/dist/core/training-analysis-index.js +3297 -0
- package/dist/core/training-analysis-index.js.map +1 -0
- package/dist/core/training-collection-runner.d.ts +508 -0
- package/dist/core/training-collection-runner.d.ts.map +1 -0
- package/dist/core/training-collection-runner.js +2299 -0
- package/dist/core/training-collection-runner.js.map +1 -0
- package/dist/core/training-config.d.ts +52 -0
- package/dist/core/training-config.d.ts.map +1 -0
- package/dist/core/training-config.js +117 -0
- package/dist/core/training-config.js.map +1 -0
- package/dist/core/training-orchestrator.d.ts +112 -0
- package/dist/core/training-orchestrator.d.ts.map +1 -0
- package/dist/core/training-orchestrator.js +729 -0
- package/dist/core/training-orchestrator.js.map +1 -0
- package/dist/core/training-readiness-report.d.ts +52 -0
- package/dist/core/training-readiness-report.d.ts.map +1 -0
- package/dist/core/training-readiness-report.js +765 -0
- package/dist/core/training-readiness-report.js.map +1 -0
- package/dist/core/trajectory-consumer.d.ts +15 -0
- package/dist/core/trajectory-consumer.d.ts.map +1 -0
- package/dist/core/trajectory-consumer.js +61 -0
- package/dist/core/trajectory-consumer.js.map +1 -0
- package/dist/core/trajectory-export-bundle.d.ts +95 -0
- package/dist/core/trajectory-export-bundle.d.ts.map +1 -0
- package/dist/core/trajectory-export-bundle.js +561 -0
- package/dist/core/trajectory-export-bundle.js.map +1 -0
- package/dist/core/trajectory-export-cron.d.ts +57 -0
- package/dist/core/trajectory-export-cron.d.ts.map +1 -0
- package/dist/core/trajectory-export-cron.js +170 -0
- package/dist/core/trajectory-export-cron.js.map +1 -0
- package/dist/core/trajectory-hf-upload.d.ts +50 -0
- package/dist/core/trajectory-hf-upload.d.ts.map +1 -0
- package/dist/core/trajectory-hf-upload.js +111 -0
- package/dist/core/trajectory-hf-upload.js.map +1 -0
- package/dist/core/trajectory-task-datasets.d.ts +62 -0
- package/dist/core/trajectory-task-datasets.d.ts.map +1 -0
- package/dist/core/trajectory-task-datasets.js +427 -0
- package/dist/core/trajectory-task-datasets.js.map +1 -0
- package/dist/core/wait-for-service.d.ts +25 -0
- package/dist/core/wait-for-service.d.ts.map +1 -0
- package/dist/core/wait-for-service.js +19 -0
- package/dist/core/wait-for-service.js.map +1 -0
- package/dist/core/workspace-runtime.d.ts +4 -0
- package/dist/core/workspace-runtime.d.ts.map +1 -0
- package/dist/core/workspace-runtime.js +25 -0
- package/dist/core/workspace-runtime.js.map +1 -0
- package/dist/dspy/artifact.d.ts +54 -0
- package/dist/dspy/artifact.d.ts.map +1 -0
- package/dist/dspy/artifact.js +61 -0
- package/dist/dspy/artifact.js.map +1 -0
- package/dist/dspy/chain-of-thought.d.ts +27 -0
- package/dist/dspy/chain-of-thought.d.ts.map +1 -0
- package/dist/dspy/chain-of-thought.js +43 -0
- package/dist/dspy/chain-of-thought.js.map +1 -0
- package/dist/dspy/examples.d.ts +72 -0
- package/dist/dspy/examples.d.ts.map +1 -0
- package/dist/dspy/examples.js +105 -0
- package/dist/dspy/examples.js.map +1 -0
- package/dist/dspy/index.d.ts +15 -0
- package/dist/dspy/index.d.ts.map +1 -0
- package/dist/dspy/index.js +40 -0
- package/dist/dspy/index.js.map +1 -0
- package/dist/dspy/lm-adapter.d.ts +100 -0
- package/dist/dspy/lm-adapter.d.ts.map +1 -0
- package/dist/dspy/lm-adapter.js +81 -0
- package/dist/dspy/lm-adapter.js.map +1 -0
- package/dist/dspy/optimizers/dspy-bootstrap-fewshot.d.ts +23 -0
- package/dist/dspy/optimizers/dspy-bootstrap-fewshot.d.ts.map +1 -0
- package/dist/dspy/optimizers/dspy-bootstrap-fewshot.js +85 -0
- package/dist/dspy/optimizers/dspy-bootstrap-fewshot.js.map +1 -0
- package/dist/dspy/optimizers/dspy-copro.d.ts +29 -0
- package/dist/dspy/optimizers/dspy-copro.d.ts.map +1 -0
- package/dist/dspy/optimizers/dspy-copro.js +141 -0
- package/dist/dspy/optimizers/dspy-copro.js.map +1 -0
- package/dist/dspy/optimizers/dspy-mipro.d.ts +37 -0
- package/dist/dspy/optimizers/dspy-mipro.d.ts.map +1 -0
- package/dist/dspy/optimizers/dspy-mipro.js +194 -0
- package/dist/dspy/optimizers/dspy-mipro.js.map +1 -0
- package/dist/dspy/optimizers/index.d.ts +5 -0
- package/dist/dspy/optimizers/index.d.ts.map +1 -0
- package/dist/dspy/optimizers/index.js +11 -0
- package/dist/dspy/optimizers/index.js.map +1 -0
- package/dist/dspy/optimizers/types.d.ts +39 -0
- package/dist/dspy/optimizers/types.d.ts.map +1 -0
- package/dist/dspy/optimizers/types.js +1 -0
- package/dist/dspy/optimizers/types.js.map +1 -0
- package/dist/dspy/predict.d.ts +49 -0
- package/dist/dspy/predict.d.ts.map +1 -0
- package/dist/dspy/predict.js +73 -0
- package/dist/dspy/predict.js.map +1 -0
- package/dist/dspy/signature.d.ts +88 -0
- package/dist/dspy/signature.d.ts.map +1 -0
- package/dist/dspy/signature.js +205 -0
- package/dist/dspy/signature.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/optimizers/bootstrap-fewshot.d.ts +42 -0
- package/dist/optimizers/bootstrap-fewshot.d.ts.map +1 -0
- package/dist/optimizers/bootstrap-fewshot.js +92 -0
- package/dist/optimizers/bootstrap-fewshot.js.map +1 -0
- package/dist/optimizers/gepa.d.ts +63 -0
- package/dist/optimizers/gepa.d.ts.map +1 -0
- package/dist/optimizers/gepa.js +232 -0
- package/dist/optimizers/gepa.js.map +1 -0
- package/dist/optimizers/index.d.ts +7 -0
- package/dist/optimizers/index.d.ts.map +1 -0
- package/dist/optimizers/index.js +51 -0
- package/dist/optimizers/index.js.map +1 -0
- package/dist/optimizers/instruction-search.d.ts +39 -0
- package/dist/optimizers/instruction-search.d.ts.map +1 -0
- package/dist/optimizers/instruction-search.js +108 -0
- package/dist/optimizers/instruction-search.js.map +1 -0
- package/dist/optimizers/prompt-evolution.d.ts +39 -0
- package/dist/optimizers/prompt-evolution.d.ts.map +1 -0
- package/dist/optimizers/prompt-evolution.js +101 -0
- package/dist/optimizers/prompt-evolution.js.map +1 -0
- package/dist/optimizers/scoring.d.ts +139 -0
- package/dist/optimizers/scoring.d.ts.map +1 -0
- package/dist/optimizers/scoring.js +299 -0
- package/dist/optimizers/scoring.js.map +1 -0
- package/dist/optimizers/types.d.ts +105 -0
- package/dist/optimizers/types.d.ts.map +1 -0
- package/dist/optimizers/types.js +1 -0
- package/dist/optimizers/types.js.map +1 -0
- package/dist/register-runtime.d.ts +3 -0
- package/dist/register-runtime.d.ts.map +1 -0
- package/dist/register-runtime.js +60 -0
- package/dist/register-runtime.js.map +1 -0
- package/dist/register-terminal-view.d.ts +15 -0
- package/dist/register-terminal-view.d.ts.map +1 -0
- package/dist/register-terminal-view.js +31 -0
- package/dist/register-terminal-view.js.map +1 -0
- package/dist/routes/experience-routes.d.ts +21 -0
- package/dist/routes/experience-routes.d.ts.map +1 -0
- package/dist/routes/experience-routes.js +513 -0
- package/dist/routes/experience-routes.js.map +1 -0
- package/dist/routes/index.d.ts +5 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +17 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/training-routes.d.ts +10 -0
- package/dist/routes/training-routes.d.ts.map +1 -0
- package/dist/routes/training-routes.js +1239 -0
- package/dist/routes/training-routes.js.map +1 -0
- package/dist/routes/training-vast-routes.d.ts +35 -0
- package/dist/routes/training-vast-routes.d.ts.map +1 -0
- package/dist/routes/training-vast-routes.js +249 -0
- package/dist/routes/training-vast-routes.js.map +1 -0
- package/dist/routes/trajectory-routes.d.ts +19 -0
- package/dist/routes/trajectory-routes.d.ts.map +1 -0
- package/dist/routes/trajectory-routes.js +1122 -0
- package/dist/routes/trajectory-routes.js.map +1 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +63 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/training-backend-check.d.ts +8 -0
- package/dist/services/training-backend-check.d.ts.map +1 -0
- package/dist/services/training-backend-check.js +31 -0
- package/dist/services/training-backend-check.js.map +1 -0
- package/dist/services/training-service-like.d.ts +40 -0
- package/dist/services/training-service-like.d.ts.map +1 -0
- package/dist/services/training-service-like.js +1 -0
- package/dist/services/training-service-like.js.map +1 -0
- package/dist/services/training-service-registry.d.ts +4 -0
- package/dist/services/training-service-registry.d.ts.map +1 -0
- package/dist/services/training-service-registry.js +12 -0
- package/dist/services/training-service-registry.js.map +1 -0
- package/dist/services/training-service.d.ts +59 -0
- package/dist/services/training-service.d.ts.map +1 -0
- package/dist/services/training-service.js +154 -0
- package/dist/services/training-service.js.map +1 -0
- package/dist/services/training-trigger.d.ts +177 -0
- package/dist/services/training-trigger.d.ts.map +1 -0
- package/dist/services/training-trigger.js +300 -0
- package/dist/services/training-trigger.js.map +1 -0
- package/dist/services/training-vast-service.d.ts +149 -0
- package/dist/services/training-vast-service.d.ts.map +1 -0
- package/dist/services/training-vast-service.js +648 -0
- package/dist/services/training-vast-service.js.map +1 -0
- package/dist/services/vast-inference-stats.d.ts +37 -0
- package/dist/services/vast-inference-stats.d.ts.map +1 -0
- package/dist/services/vast-inference-stats.js +81 -0
- package/dist/services/vast-inference-stats.js.map +1 -0
- package/dist/services/vast-job-store.d.ts +74 -0
- package/dist/services/vast-job-store.d.ts.map +1 -0
- package/dist/services/vast-job-store.js +194 -0
- package/dist/services/vast-job-store.js.map +1 -0
- package/dist/services/vast-subprocess.d.ts +27 -0
- package/dist/services/vast-subprocess.d.ts.map +1 -0
- package/dist/services/vast-subprocess.js +78 -0
- package/dist/services/vast-subprocess.js.map +1 -0
- package/dist/setup-routes.d.ts +17 -0
- package/dist/setup-routes.d.ts.map +1 -0
- package/dist/setup-routes.js +319 -0
- package/dist/setup-routes.js.map +1 -0
- package/dist/ui/FineTuningSpatialView.d.ts +49 -0
- package/dist/ui/FineTuningSpatialView.d.ts.map +1 -0
- package/dist/ui/FineTuningSpatialView.js +154 -0
- package/dist/ui/FineTuningSpatialView.js.map +1 -0
- package/dist/ui/FineTuningView.d.ts +7 -0
- package/dist/ui/FineTuningView.d.ts.map +1 -0
- package/dist/ui/FineTuningView.helpers.d.ts +17 -0
- package/dist/ui/FineTuningView.helpers.d.ts.map +1 -0
- package/dist/ui/FineTuningView.helpers.js +30 -0
- package/dist/ui/FineTuningView.helpers.js.map +1 -0
- package/dist/ui/FineTuningView.interact.d.ts +2 -0
- package/dist/ui/FineTuningView.interact.d.ts.map +1 -0
- package/dist/ui/FineTuningView.interact.js +300 -0
- package/dist/ui/FineTuningView.interact.js.map +1 -0
- package/dist/ui/FineTuningView.js +4653 -0
- package/dist/ui/FineTuningView.js.map +1 -0
- package/dist/ui/fine-tuning-panels.d.ts +100 -0
- package/dist/ui/fine-tuning-panels.d.ts.map +1 -0
- package/dist/ui/fine-tuning-panels.helpers.d.ts +19 -0
- package/dist/ui/fine-tuning-panels.helpers.d.ts.map +1 -0
- package/dist/ui/fine-tuning-panels.helpers.js +77 -0
- package/dist/ui/fine-tuning-panels.helpers.js.map +1 -0
- package/dist/ui/fine-tuning-panels.js +928 -0
- package/dist/ui/fine-tuning-panels.js.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +5 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/training-view-bundle.d.ts +3 -0
- package/dist/ui/training-view-bundle.d.ts.map +1 -0
- package/dist/ui/training-view-bundle.js +7 -0
- package/dist/ui/training-view-bundle.js.map +1 -0
- package/dist/views/bundle.js +5312 -0
- package/dist/views/bundle.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/FineTuningView.tsx"],"sourcesContent":["import { useAgentElement } from \"@elizaos/ui/agent-surface\";\nimport type {\n HuggingFaceDatasetIngestResponse,\n ListTrainingCollectionsResponse,\n RunActionBenchmarkResponse,\n RunBenchmarkVsCerebrasResponse,\n RunFeedGenerationResponse,\n RunLocalEvalComparisonResponse,\n RunScenarioResponse,\n RunTrainingCollectionResponse,\n StageEliza1BundleResponse,\n StartTrainingOptions,\n StreamEventEnvelope,\n TrainingAnalysisIndexResponse,\n TrainingCollectionPreflightSummary,\n TrainingDatasetRecord,\n TrainingJobRecord,\n TrainingModelRecord,\n TrainingReadinessReportResponse,\n TrainingStatus,\n TrainingStreamEvent,\n TrainingTrajectoryDetail,\n TrainingTrajectoryList,\n} from \"@elizaos/ui/api\";\nimport { client } from \"@elizaos/ui/api\";\nimport {\n type AppDetailExtensionProps,\n Button,\n registerDetailExtension,\n} from \"@elizaos/ui/components\";\nimport { useIntervalWhenDocumentVisible } from \"@elizaos/ui/hooks\";\nimport { ContentLayout } from \"@elizaos/ui/layouts\";\nimport { type AppContextValue, useAppSelector } from \"@elizaos/ui/state\";\nimport {\n confirmDesktopAction,\n openExternalUrl,\n parsePositiveFloat,\n parsePositiveInteger,\n} from \"@elizaos/ui/utils\";\nimport {\n type ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport {\n ELIZA_ONE_BENCHMARK_TIER_LIST,\n ELIZA_ONE_BENCHMARK_TIERS,\n} from \"../core/eliza1-benchmark-recipe.js\";\nimport { asArray, parseCollectionTierList } from \"./FineTuningView.helpers\";\nimport { interact } from \"./FineTuningView.interact\";\nimport {\n asTrainingEvent,\n FINE_TUNING_ACTION_CLASS,\n FINE_TUNING_PANEL_CLASS,\n FINE_TUNING_SECTION_CLASS,\n FINE_TUNING_SECTION_HEADER_CLASS,\n FINE_TUNING_STATUS_CARD_CLASS,\n} from \"./fine-tuning-panels.helpers\";\nimport {\n DatasetSection,\n LiveEventsPanel,\n TrainedModelsSection,\n TrainingJobsSection,\n TrajectoriesSection,\n} from \"./fine-tuning-panels.js\";\n\nconst FINE_TUNING_DETAIL_PANEL_ID = \"plugin-dash-fine-tuning\";\n\nconst DEFAULT_ELIZA1_HF_DATASET_FILES = ELIZA_ONE_BENCHMARK_TIERS.flatMap(\n (tier) =>\n [\n \"train.jsonl\",\n \"val.jsonl\",\n \"test.jsonl\",\n \"manifest.json\",\n \"validation.json\",\n ].map((file) => `sft/${tier}/${file}`),\n);\n\nfunction localViewerUrl(path: string): string {\n if (/^[a-z][a-z0-9+.-]*:\\/\\//i.test(path)) return path;\n return encodeURI(`file://${path}`);\n}\n\ninterface AnalysisCoverageSummary {\n dataSources: {\n huggingFace: number;\n feed: number;\n natural: number;\n scenarios: number;\n tests: number;\n trainingJsonl: number;\n };\n readableSamples: {\n huggingFace: number;\n feed: number;\n natural: number;\n scenarios: number;\n tests: number;\n trainingJsonl: number;\n total: number;\n };\n evals: number;\n benchmarkMatrices: number;\n models: number;\n benchmarkModelStats: {\n modelCount: number;\n bestModelId: string | null;\n bestAverageScore: number | null;\n };\n allEliza1TiersCovered: boolean;\n benchmarkTierCoverage: Array<{\n tier: string;\n hasBase: boolean;\n hasTrained: boolean;\n hasReference: boolean;\n hasImprovement: boolean;\n }>;\n benchmarkComparisons: Array<{\n tier: string | null;\n benchmark: string | null;\n baseScore: number | null;\n trainedScore: number | null;\n referenceScore: number | null;\n improvementPercent: number | null;\n trainedVsReferencePercent: number | null;\n }>;\n}\n\ntype TrainingReadinessRecommendedAction = NonNullable<\n TrainingReadinessReportResponse[\"report\"][\"checks\"][number][\"recommendedAction\"]\n>;\n\ntype TrainingReadinessCheckSummary =\n TrainingReadinessReportResponse[\"report\"][\"checks\"][number];\n\nfunction recordValue(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {};\n}\n\nfunction stringSummaryValue(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction numberSummaryValue(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value)\n ? value\n : undefined;\n}\n\nfunction formatModelInventorySummary(\n modelInventory:\n | NonNullable<\n RunTrainingCollectionResponse[\"manifest\"][\"evidence\"][\"training\"][\"modelInventory\"]\n >\n | undefined,\n): string {\n if (!modelInventory?.length) return \"\";\n const tiers = [\n ...new Set(\n modelInventory\n .map((model) => model.tier)\n .filter((tier): tier is string => Boolean(tier)),\n ),\n ];\n const base = modelInventory.filter(\n (model) => model.variant === \"base\",\n ).length;\n const trained = modelInventory.filter(\n (model) => model.variant === \"trained\",\n ).length;\n const parts: string[] = [];\n if (base || trained) parts.push(`base:${base} trained:${trained}`);\n if (tiers.length) parts.push(`tiers:${tiers.join(\",\")}`);\n return parts.length ? ` ${parts.join(\" \")}` : \"\";\n}\n\nfunction nullableStringValue(value: unknown): string | null {\n return typeof value === \"string\" && value.trim() ? value.trim() : null;\n}\n\nfunction nullableNumberValue(value: unknown): number | null {\n return typeof value === \"number\" && Number.isFinite(value) ? value : null;\n}\n\nfunction formatNullableMetric(value: unknown, suffix = \"\"): string {\n const numberValue = nullableNumberValue(value);\n return numberValue === null ? \"n/a\" : `${numberValue}${suffix}`;\n}\n\nfunction compactDisplayValue(value: unknown): string {\n const raw =\n typeof value === \"string\"\n ? value\n : value === null || value === undefined\n ? \"\"\n : JSON.stringify(value);\n return raw.length > 160 ? `${raw.slice(0, 157)}...` : raw;\n}\n\nfunction formatEvalComparisonSummary(\n result: RunLocalEvalComparisonResponse,\n): string | null {\n const artifact = recordValue(result.artifact);\n if (!Object.keys(artifact).length) return null;\n const models = recordValue(artifact.models);\n const metrics = recordValue(artifact.metrics);\n const base = nullableStringValue(models.base) ?? \"base\";\n const trained = nullableStringValue(models.trained) ?? \"trained\";\n const backend = nullableStringValue(models.backend) ?? \"n/a\";\n return `${base} -> ${trained} backend:${backend} base:${formatNullableMetric(\n metrics.baseScore,\n )} trained:${formatNullableMetric(\n metrics.trainedScore,\n )} improvement:${formatNullableMetric(\n metrics.improvementPercent,\n \"%\",\n )} delta:${formatNullableMetric(\n metrics.improvementAbsolute,\n )} prompts:${formatNullableMetric(metrics.promptCount)} latency:${formatNullableMetric(\n metrics.baseLatencyMs,\n \"ms\",\n )}->${formatNullableMetric(metrics.trainedLatencyMs, \"ms\")}`;\n}\n\nfunction summarizeAnalysisCoverage(\n analysisIndex: TrainingAnalysisIndexResponse | null,\n): AnalysisCoverageSummary | null {\n if (!analysisIndex) return null;\n const artifacts = asArray(analysisIndex.manifest.artifacts);\n const manifestCoverage = recordValue(\n (analysisIndex.manifest as unknown as Record<string, unknown>).coverage,\n );\n if (Object.keys(manifestCoverage).length > 0) {\n const dataSources = recordValue(manifestCoverage.dataSources);\n const readableSamples = recordValue(manifestCoverage.readableSamples);\n const evals = recordValue(manifestCoverage.evals);\n const benchmarks = recordValue(manifestCoverage.benchmarks);\n const models = recordValue(manifestCoverage.models);\n const inventory = Array.isArray(models.inventory)\n ? models.inventory.map(recordValue)\n : [];\n const benchmarkTierCoverage = Array.isArray(benchmarks.tierCoverage)\n ? benchmarks.tierCoverage.map(recordValue).map((tier) => ({\n tier: nullableStringValue(tier.tier) ?? \"unknown\",\n hasBase: tier.hasBase === true,\n hasTrained: tier.hasTrained === true,\n hasReference: tier.hasReference === true,\n hasImprovement: tier.hasImprovement === true,\n }))\n : [];\n const benchmarkComparisons = artifacts\n .filter((artifact) => artifact.kind === \"benchmark_matrix\")\n .flatMap((artifact) => {\n const payload = recordValue(artifact.payload);\n return Array.isArray(payload.comparisons)\n ? payload.comparisons.map(recordValue)\n : [];\n })\n .map((comparison) => ({\n tier: nullableStringValue(comparison.tier),\n benchmark: nullableStringValue(comparison.benchmark),\n baseScore: nullableNumberValue(comparison.baseScore),\n trainedScore: nullableNumberValue(comparison.trainedScore),\n referenceScore: nullableNumberValue(comparison.referenceScore),\n improvementPercent: nullableNumberValue(comparison.improvementPercent),\n trainedVsReferencePercent: nullableNumberValue(\n comparison.trainedVsReferencePercent,\n ),\n }));\n return {\n dataSources: {\n huggingFace: numberSummaryValue(dataSources.huggingFace) ?? 0,\n feed: numberSummaryValue(dataSources.feed) ?? 0,\n natural: numberSummaryValue(dataSources.natural) ?? 0,\n scenarios: numberSummaryValue(dataSources.scenarios) ?? 0,\n tests: numberSummaryValue(dataSources.tests) ?? 0,\n trainingJsonl: numberSummaryValue(dataSources.trainingJsonl) ?? 0,\n },\n readableSamples: {\n huggingFace: numberSummaryValue(readableSamples.huggingFace) ?? 0,\n feed: numberSummaryValue(readableSamples.feed) ?? 0,\n natural: numberSummaryValue(readableSamples.natural) ?? 0,\n scenarios: numberSummaryValue(readableSamples.scenarios) ?? 0,\n tests: numberSummaryValue(readableSamples.tests) ?? 0,\n trainingJsonl: numberSummaryValue(readableSamples.trainingJsonl) ?? 0,\n total: numberSummaryValue(readableSamples.total) ?? 0,\n },\n evals: numberSummaryValue(evals.artifacts) ?? 0,\n benchmarkMatrices: numberSummaryValue(benchmarks.matrices) ?? 0,\n models: numberSummaryValue(models.artifacts) ?? 0,\n benchmarkModelStats: {\n modelCount: inventory.length,\n bestModelId: null,\n bestAverageScore: null,\n },\n allEliza1TiersCovered: benchmarks.allEliza1TiersCovered === true,\n benchmarkTierCoverage,\n benchmarkComparisons,\n };\n }\n const summaryFor = (artifact: (typeof artifacts)[number]) =>\n recordValue(artifact.summary);\n const schemaOf = (artifact: (typeof artifacts)[number]) =>\n stringSummaryValue(summaryFor(artifact).schema);\n const sourceKindOf = (artifact: (typeof artifacts)[number]) =>\n stringSummaryValue(recordValue(summaryFor(artifact).source).kind);\n const sourceLabelOf = (artifact: (typeof artifacts)[number]) => {\n const source = summaryFor(artifact).source;\n return (\n stringSummaryValue(source) ?? stringSummaryValue(recordValue(source).kind)\n );\n };\n const isNaturalTrajectoryBundle = (artifact: (typeof artifacts)[number]) =>\n artifact.kind === \"trajectory_bundle\" &&\n sourceLabelOf(artifact) === \"training_collection_natural_trajectories\";\n const isTestTrajectoryDataset = (artifact: (typeof artifacts)[number]) =>\n artifact.kind === \"trajectory_dataset\" &&\n sourceKindOf(artifact) === \"app_core_test_trajectory\";\n const sampleCount = (\n artifact: (typeof artifacts)[number],\n keys: readonly string[],\n ) =>\n keys.reduce((count, key) => {\n const samples = summaryFor(artifact)[key];\n return count + (Array.isArray(samples) ? samples.length : 0);\n }, 0);\n const sampleCountFor = (\n predicate: (artifact: (typeof artifacts)[number]) => boolean,\n keys: readonly string[],\n ) =>\n artifacts\n .filter(predicate)\n .reduce((count, artifact) => count + sampleCount(artifact, keys), 0);\n const modelStats = artifacts.flatMap((artifact) => {\n const summary = summaryFor(artifact);\n return Array.isArray(summary.modelStats)\n ? summary.modelStats.map(recordValue)\n : [];\n });\n const scoredModels = modelStats\n .map((stat) => ({\n modelId: stringSummaryValue(stat.modelId),\n averageScore: numberSummaryValue(stat.averageScore),\n }))\n .filter(\n (stat): stat is { modelId: string; averageScore: number } =>\n stat.modelId !== undefined && stat.averageScore !== undefined,\n );\n const bestModel = scoredModels.sort(\n (left, right) => right.averageScore - left.averageScore,\n )[0];\n const benchmarkComparisons = artifacts\n .filter((artifact) => artifact.kind === \"benchmark_matrix\")\n .flatMap((artifact) => {\n const payload = recordValue(artifact.payload);\n return Array.isArray(payload.comparisons)\n ? payload.comparisons.map(recordValue)\n : [];\n })\n .map((comparison) => ({\n tier: nullableStringValue(comparison.tier),\n benchmark: nullableStringValue(comparison.benchmark),\n baseScore: nullableNumberValue(comparison.baseScore),\n trainedScore: nullableNumberValue(comparison.trainedScore),\n referenceScore: nullableNumberValue(comparison.referenceScore),\n improvementPercent: nullableNumberValue(comparison.improvementPercent),\n trainedVsReferencePercent: nullableNumberValue(\n comparison.trainedVsReferencePercent,\n ),\n }));\n\n const dataSources = {\n huggingFace: artifacts.filter(\n (artifact) =>\n artifact.kind === \"trajectory_dataset\" &&\n (schemaOf(artifact) === \"eliza_huggingface_dataset_ingest\" ||\n sourceKindOf(artifact) === \"huggingface_dataset\"),\n ).length,\n feed: artifacts.filter(\n (artifact) =>\n artifact.kind === \"trajectory_dataset\" &&\n (schemaOf(artifact) === \"feed_training_trajectory_export\" ||\n schemaOf(artifact) === \"feed_parallel_generation\"),\n ).length,\n natural: artifacts.filter(isNaturalTrajectoryBundle).length,\n scenarios: artifacts.filter(\n (artifact) =>\n artifact.kind === \"scenario_run\" ||\n schemaOf(artifact) === \"eliza_scenario_native_export\",\n ).length,\n tests: artifacts.filter(isTestTrajectoryDataset).length,\n trainingJsonl: artifacts.filter(\n (artifact) => schemaOf(artifact) === \"eliza_training_jsonl_dataset\",\n ).length,\n };\n const readableSamples = {\n huggingFace: sampleCountFor(\n (artifact) =>\n artifact.kind === \"trajectory_dataset\" &&\n schemaOf(artifact) === \"eliza_huggingface_dataset_ingest\",\n [\"hfSamplePreviews\"],\n ),\n feed: sampleCountFor(\n (artifact) =>\n artifact.kind === \"trajectory_dataset\" &&\n (schemaOf(artifact) === \"feed_training_trajectory_export\" ||\n schemaOf(artifact) === \"feed_parallel_generation\"),\n [\"feedSamplePreviews\"],\n ),\n natural: sampleCountFor(isNaturalTrajectoryBundle, [\"samplePreviews\"]),\n scenarios: sampleCountFor(\n (artifact) =>\n artifact.kind === \"scenario_run\" ||\n schemaOf(artifact) === \"eliza_scenario_native_export\",\n [\"turnPreviews\", \"scenarioNativeSamplePreviews\"],\n ),\n tests: sampleCountFor(isTestTrajectoryDataset, [\"testSamplePreviews\"]),\n trainingJsonl: sampleCountFor(\n (artifact) => schemaOf(artifact) === \"eliza_training_jsonl_dataset\",\n [\"samplePreviews\"],\n ),\n total: 0,\n };\n readableSamples.total =\n readableSamples.huggingFace +\n readableSamples.feed +\n readableSamples.natural +\n readableSamples.scenarios +\n readableSamples.tests +\n readableSamples.trainingJsonl;\n\n return {\n dataSources,\n readableSamples,\n evals: artifacts.filter((artifact) => artifact.kind === \"eval\").length,\n benchmarkMatrices: artifacts.filter(\n (artifact) => artifact.kind === \"benchmark_matrix\",\n ).length,\n models: artifacts.filter((artifact) => artifact.kind === \"model\").length,\n benchmarkModelStats: {\n modelCount: modelStats.length,\n bestModelId: bestModel?.modelId ?? null,\n bestAverageScore: bestModel?.averageScore ?? null,\n },\n allEliza1TiersCovered: false,\n benchmarkTierCoverage: [],\n benchmarkComparisons,\n };\n}\n\nconst AGENT_FIELD_INPUT_CLASS =\n \"h-10 w-full rounded-xl border border-border/60 bg-bg/50 px-3 text-sm text-txt outline-none focus:border-accent\";\n\nfunction AgentInlineButton({\n agentId,\n label,\n group,\n description,\n className,\n variant = \"outline\",\n size = \"sm\",\n disabled,\n onClick,\n title,\n children,\n}: {\n agentId: string;\n label: string;\n group: string;\n description: string;\n className: string;\n variant?: \"outline\" | \"ghost\" | \"link\" | \"default\";\n size?: \"sm\";\n disabled?: boolean;\n onClick: () => void;\n title?: string;\n children: ReactNode;\n}) {\n const { ref, agentProps } = useAgentElement<HTMLButtonElement>({\n id: agentId,\n role: \"button\",\n label,\n group,\n description,\n onActivate: onClick,\n });\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={className}\n disabled={disabled}\n onClick={onClick}\n aria-label={label}\n title={title}\n {...agentProps}\n >\n {children}\n </Button>\n );\n}\n\nfunction AgentTextField({\n agentId,\n label,\n group,\n description,\n className,\n value,\n onChange,\n placeholder,\n type = \"text\",\n}: {\n agentId: string;\n label: string;\n group: string;\n description: string;\n className: string;\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n type?: \"text\" | \"number\";\n}) {\n const { ref, agentProps } = useAgentElement<HTMLInputElement>({\n id: agentId,\n role: type === \"number\" ? \"number-input\" : \"text-input\",\n label,\n group,\n description,\n getValue: () => value,\n onFill: onChange,\n });\n return (\n <input\n ref={ref}\n type={type}\n className={className}\n value={value}\n onChange={(event) => onChange(event.target.value)}\n placeholder={placeholder}\n aria-label={label}\n {...agentProps}\n />\n );\n}\n\nfunction AgentTextAreaField({\n agentId,\n label,\n group,\n description,\n className,\n value,\n onChange,\n placeholder,\n}: {\n agentId: string;\n label: string;\n group: string;\n description: string;\n className: string;\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n}) {\n const { ref, agentProps } = useAgentElement<HTMLTextAreaElement>({\n id: agentId,\n role: \"textarea\",\n label,\n group,\n description,\n getValue: () => value,\n onFill: onChange,\n });\n return (\n <textarea\n ref={ref}\n className={className}\n value={value}\n onChange={(event) => onChange(event.target.value)}\n placeholder={placeholder}\n aria-label={label}\n {...agentProps}\n />\n );\n}\n\nfunction AgentNativeSelect({\n agentId,\n label,\n group,\n description,\n className,\n value,\n onChange,\n options,\n children,\n}: {\n agentId: string;\n label: string;\n group: string;\n description: string;\n className: string;\n value: string;\n onChange: (value: string) => void;\n options: readonly string[];\n children: ReactNode;\n}) {\n const { ref, agentProps } = useAgentElement<HTMLSelectElement>({\n id: agentId,\n role: \"select\",\n label,\n group,\n description,\n options,\n getValue: () => value,\n onFill: onChange,\n });\n return (\n <select\n ref={ref}\n className={className}\n value={value}\n onChange={(event) => onChange(event.target.value)}\n aria-label={label}\n {...agentProps}\n >\n {children}\n </select>\n );\n}\n\nfunction AgentCheckboxField({\n agentId,\n label,\n group,\n description,\n checked,\n onChange,\n}: {\n agentId: string;\n label: string;\n group: string;\n description: string;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}) {\n const { ref, agentProps } = useAgentElement<HTMLInputElement>({\n id: agentId,\n role: \"toggle\",\n label,\n group,\n description,\n status: checked ? \"active\" : \"inactive\",\n getValue: () => checked,\n onActivate: () => onChange(!checked),\n onFill: (value) => onChange(value === \"true\" || value === \"1\"),\n });\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n checked={checked}\n onChange={(event) => onChange(event.target.checked)}\n aria-label={label}\n aria-current={checked ? \"true\" : undefined}\n {...agentProps}\n />\n );\n}\n\nfunction ReadinessCheckRow({\n check,\n readinessActionRunning,\n onRunRecommendation,\n t,\n}: {\n check: TrainingReadinessCheckSummary;\n readinessActionRunning: string | null;\n onRunRecommendation: (\n checkId: string,\n action: TrainingReadinessRecommendedAction,\n ) => void;\n t: (key: string, options?: Record<string, unknown>) => string;\n}) {\n const { ref, agentProps } = useAgentElement<HTMLButtonElement>({\n id: `readiness-run-${check.id}`,\n role: \"button\",\n label: `Run recommendation for ${check.label}`,\n group: \"readiness\",\n description: `Run the recommended action for the ${check.label} check`,\n onActivate: () => {\n if (check.recommendedAction) {\n onRunRecommendation(check.id, check.recommendedAction);\n }\n },\n });\n return (\n <div className=\"grid gap-2 pt-2\">\n <div>\n <div className=\"font-mono text-xs text-txt\">\n {check.label} · {check.status}\n </div>\n <div className=\"mt-1 text-xs text-muted\">{check.note}</div>\n </div>\n {check.recommendedAction ? (\n <div className=\"flex flex-col items-start gap-2\">\n <div className=\"break-all font-mono text-xs text-muted\">\n {check.recommendedAction.capability}\n {Object.keys(check.recommendedAction.params).length > 0\n ? ` ${JSON.stringify(check.recommendedAction.params)}`\n : \"\"}\n </div>\n <Button\n ref={ref}\n variant=\"outline\"\n size=\"sm\"\n className={FINE_TUNING_ACTION_CLASS}\n disabled={readinessActionRunning !== null}\n onClick={() => {\n if (check.recommendedAction) {\n onRunRecommendation(check.id, check.recommendedAction);\n }\n }}\n {...agentProps}\n >\n {readinessActionRunning === check.id\n ? t(\"finetuningview.RunningRecommendation\", {\n defaultValue: \"Running\",\n })\n : t(\"finetuningview.RunRecommendation\", {\n defaultValue: \"Run recommendation\",\n })}\n </Button>\n </div>\n ) : null}\n </div>\n );\n}\n\nfunction TrainingActionButton({\n agentId,\n label,\n group,\n description,\n disabled,\n onClick,\n children,\n}: {\n agentId: string;\n label: string;\n group: string;\n description: string;\n disabled?: boolean;\n onClick: () => void;\n children: ReactNode;\n}) {\n const { ref, agentProps } = useAgentElement<HTMLButtonElement>({\n id: agentId,\n role: \"button\",\n label,\n group,\n description,\n });\n return (\n <Button\n ref={ref}\n variant=\"outline\"\n size=\"sm\"\n className={FINE_TUNING_ACTION_CLASS}\n disabled={disabled}\n onClick={onClick}\n aria-label={label}\n {...agentProps}\n >\n {children}\n </Button>\n );\n}\n\nexport function FineTuningView({\n contentHeader,\n}: {\n contentHeader?: ReactNode;\n} = {}) {\n const handleRestart = useAppSelector((s: AppContextValue) => s.handleRestart);\n const setActionNotice = useAppSelector(\n (s: AppContextValue) => s.setActionNotice,\n );\n const t = useAppSelector((s: AppContextValue) => s.t);\n\n const [pageLoading, setPageLoading] = useState(true);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const [status, setStatus] = useState<TrainingStatus | null>(null);\n const [trajectoryList, setTrajectoryList] = useState<TrainingTrajectoryList>({\n available: false,\n total: 0,\n trajectories: [],\n });\n const [selectedTrajectory, setSelectedTrajectory] =\n useState<TrainingTrajectoryDetail | null>(null);\n const [trajectoryLoading, setTrajectoryLoading] = useState(false);\n const [publishingTrajectories, setPublishingTrajectories] = useState(false);\n const [publishConfigured, setPublishConfigured] = useState(true);\n\n const [datasets, setDatasets] = useState<TrainingDatasetRecord[]>([]);\n const [jobs, setJobs] = useState<TrainingJobRecord[]>([]);\n const [models, setModels] = useState<TrainingModelRecord[]>([]);\n const [analysisIndex, setAnalysisIndex] =\n useState<TrainingAnalysisIndexResponse | null>(null);\n const analysisCoverage = useMemo(\n () => summarizeAnalysisCoverage(analysisIndex),\n [analysisIndex],\n );\n const [analysisBuilding, setAnalysisBuilding] = useState(false);\n const [readinessBuilding, setReadinessBuilding] = useState(false);\n const [readinessReport, setReadinessReport] =\n useState<TrainingReadinessReportResponse | null>(null);\n const [readinessActionRunning, setReadinessActionRunning] = useState<\n string | null\n >(null);\n const [collectionRunning, setCollectionRunning] = useState(false);\n const [collectionPreflightRunning, setCollectionPreflightRunning] =\n useState(false);\n const [collectionResult, setCollectionResult] =\n useState<RunTrainingCollectionResponse | null>(null);\n const [collectionPreflightResult, setCollectionPreflightResult] =\n useState<TrainingCollectionPreflightSummary | null>(null);\n const [collectionPreflightProbe, setCollectionPreflightProbe] =\n useState(true);\n const [collectionHistory, setCollectionHistory] =\n useState<ListTrainingCollectionsResponse | null>(null);\n const [collectionHistoryLoading, setCollectionHistoryLoading] =\n useState(false);\n const [hfIngestRunning, setHfIngestRunning] = useState(false);\n const [hfIngestResult, setHfIngestResult] =\n useState<HuggingFaceDatasetIngestResponse | null>(null);\n const [hfRepoId, setHfRepoId] = useState(\"elizaos/eliza-1-training\");\n const [hfRevision, setHfRevision] = useState(\"main\");\n const [hfFiles, setHfFiles] = useState(\n DEFAULT_ELIZA1_HF_DATASET_FILES.join(\"\\n\"),\n );\n const [hfOutputDir, setHfOutputDir] = useState(\"\");\n const [hfDryRun, setHfDryRun] = useState(true);\n const [feedGenerationRunning, setFeedGenerationRunning] = useState(false);\n const [feedGenerationResult, setFeedGenerationResult] =\n useState<RunFeedGenerationResponse | null>(null);\n const [feedArchetypes, setFeedArchetypes] = useState(\"trader\");\n const [feedNumAgents, setFeedNumAgents] = useState(\"1\");\n const [feedTicks, setFeedTicks] = useState(\"1\");\n const [feedParallel, setFeedParallel] = useState(\"1\");\n const [feedOutputDir, setFeedOutputDir] = useState(\"\");\n const [feedCleanup, setFeedCleanup] = useState(true);\n const [feedDryRun, setFeedDryRun] = useState(true);\n const [naturalSanitizedJsonlPath, setNaturalSanitizedJsonlPath] =\n useState(\"\");\n const [naturalRawJsonlPath, setNaturalRawJsonlPath] = useState(\"\");\n const [naturalRunId, setNaturalRunId] = useState(\"\");\n const [naturalTasks, setNaturalTasks] = useState(\"response,action_planner\");\n const [naturalIncludeRaw, setNaturalIncludeRaw] = useState(false);\n const [scenarioFilter, setScenarioFilter] = useState(\n \"deterministic-pr-smoke\",\n );\n const [scenarioOutputDir, setScenarioOutputDir] = useState(\"\");\n const [scenarioDryRun, setScenarioDryRun] = useState(true);\n const [scenarioExportNative, setScenarioExportNative] = useState(true);\n const [scenarioDeterministicProxy, setScenarioDeterministicProxy] =\n useState(true);\n const [scenarioRunning, setScenarioRunning] = useState(false);\n const [scenarioResult, setScenarioResult] =\n useState<RunScenarioResponse | null>(null);\n const [evalComparisonRunning, setEvalComparisonRunning] = useState(false);\n const [evalComparisonResult, setEvalComparisonResult] =\n useState<RunLocalEvalComparisonResponse | null>(null);\n const [evalComparisonEnabled, setEvalComparisonEnabled] = useState(true);\n const [evalComparisonManifestPath, setEvalComparisonManifestPath] =\n useState(\"\");\n const [evalComparisonBaseModel, setEvalComparisonBaseModel] =\n useState(\"eliza-1-2b-base\");\n const [evalComparisonTrainedModelPath, setEvalComparisonTrainedModelPath] =\n useState(\"eliza-1-2b-trained\");\n const [evalComparisonBackend, setEvalComparisonBackend] = useState<\n \"cpu\" | \"mlx\" | \"cuda\"\n >(\"cpu\");\n const [evalComparisonOutputDir, setEvalComparisonOutputDir] = useState(\"\");\n const [evalComparisonDryRun, setEvalComparisonDryRun] = useState(true);\n const [benchmarkRunning, setBenchmarkRunning] = useState(false);\n const [benchmarkResult, setBenchmarkResult] =\n useState<RunBenchmarkVsCerebrasResponse | null>(null);\n const [benchmarkTiers, setBenchmarkTiers] = useState(\"2b\");\n const [benchmarkKind, setBenchmarkKind] = useState<\n \"eliza_harness_action_selection\" | \"hermes\" | \"clawbench\" | \"all\"\n >(\"eliza_harness_action_selection\");\n const [benchmarkVariants, setBenchmarkVariants] = useState<\n \"trained\" | \"base\" | \"both\"\n >(\"both\");\n const [benchmarkMaxSamples, setBenchmarkMaxSamples] = useState(\"50\");\n const [benchmarkResultsDb, setBenchmarkResultsDb] = useState(\"\");\n const [benchmarkTrainedModelPath, setBenchmarkTrainedModelPath] =\n useState(\"\");\n const [benchmarkMatrixOutputDir, setBenchmarkMatrixOutputDir] = useState(\"\");\n const [benchmarkDryRun, setBenchmarkDryRun] = useState(true);\n const [bundleStageRunning, setBundleStageRunning] = useState(false);\n const [bundleStageResult, setBundleStageResult] =\n useState<StageEliza1BundleResponse | null>(null);\n const [bundleStageRepoId, setBundleStageRepoId] = useState(\"elizaos/eliza-1\");\n const [bundleStageTier, setBundleStageTier] = useState(\"2b\");\n const [bundleStageLocalDir, setBundleStageLocalDir] = useState(\n \"/tmp/eliza-1-bundles\",\n );\n const [bundleStageOutputDir, setBundleStageOutputDir] = useState(\"\");\n const [bundleStageMaxBytes, setBundleStageMaxBytes] = useState(\"8589934592\");\n const [bundleStageApply, setBundleStageApply] = useState(false);\n const [actionBenchmarkRunning, setActionBenchmarkRunning] = useState(false);\n const [actionBenchmarkResult, setActionBenchmarkResult] =\n useState<RunActionBenchmarkResponse | null>(null);\n const [actionBenchmarkFilter, setActionBenchmarkFilter] = useState(\"\");\n const [actionBenchmarkRunsPerCase, setActionBenchmarkRunsPerCase] =\n useState(\"1\");\n const [actionBenchmarkOutputDir, setActionBenchmarkOutputDir] = useState(\"\");\n const [actionBenchmarkModelId, setActionBenchmarkModelId] =\n useState(\"eliza-1-2b-trained\");\n const [actionBenchmarkRuntimeModel, setActionBenchmarkRuntimeModel] =\n useState(\"eliza-1-2b-trained\");\n const [actionBenchmarkPairEnabled, setActionBenchmarkPairEnabled] =\n useState(true);\n const [actionBenchmarkPairTiers, setActionBenchmarkPairTiers] =\n useState(\"2b\");\n const [actionBenchmarkBaseModelId, setActionBenchmarkBaseModelId] =\n useState(\"eliza-1-2b-base\");\n const [actionBenchmarkBaseRuntimeModel, setActionBenchmarkBaseRuntimeModel] =\n useState(\"eliza-1-2b-base\");\n const [actionBenchmarkProvider, setActionBenchmarkProvider] =\n useState(\"local-llama-cpp\");\n const [actionBenchmarkBaseUrl, setActionBenchmarkBaseUrl] = useState(\n \"http://localhost:11434/v1\",\n );\n const [actionBenchmarkVariant, setActionBenchmarkVariant] = useState<\n \"reference\" | \"base\" | \"trained\"\n >(\"trained\");\n const [actionBenchmarkTier, setActionBenchmarkTier] = useState(\"2b\");\n const [actionBenchmarkMatrixBenchmark, setActionBenchmarkMatrixBenchmark] =\n useState(\"eliza_harness_action_selection\");\n const [actionBenchmarkDatasetVersion, setActionBenchmarkDatasetVersion] =\n useState(\"eliza-native-v1\");\n const [actionBenchmarkUseMocks, setActionBenchmarkUseMocks] = useState(false);\n const [actionBenchmarkCapture, setActionBenchmarkCapture] = useState(true);\n const [actionBenchmarkDryRun, setActionBenchmarkDryRun] = useState(true);\n\n const [selectedDatasetId, setSelectedDatasetId] = useState(\"\");\n const [selectedJobId, setSelectedJobId] = useState(\"\");\n const [selectedModelId, setSelectedModelId] = useState(\"\");\n\n const [buildLimit, setBuildLimit] = useState(\"250\");\n const [buildMinCalls, setBuildMinCalls] = useState(\"1\");\n const [datasetBuilding, setDatasetBuilding] = useState(false);\n\n const [startBackend, setStartBackend] = useState<\"mlx\" | \"cuda\" | \"cpu\">(\n \"cpu\",\n );\n const [startModel, setStartModel] = useState(\"\");\n const [startIterations, setStartIterations] = useState(\"\");\n const [startBatchSize, setStartBatchSize] = useState(\"\");\n const [startLearningRate, setStartLearningRate] = useState(\"\");\n const [startingJob, setStartingJob] = useState(false);\n const [cancellingJobId, setCancellingJobId] = useState(\"\");\n\n const [importModelName, setImportModelName] = useState(\"\");\n const [importBaseModel, setImportBaseModel] = useState(\"\");\n const [importOllamaUrl, setImportOllamaUrl] = useState(\n \"http://localhost:11434\",\n );\n const [activateProviderModel, setActivateProviderModel] = useState(\"\");\n const [modelAction, setModelAction] = useState(\"\");\n const [smokeResult, setSmokeResult] = useState<string | null>(null);\n\n const [trainingEvents, setTrainingEvents] = useState<TrainingStreamEvent[]>(\n [],\n );\n\n const selectedJob = useMemo(\n () => jobs.find((job) => job.id === selectedJobId) ?? null,\n [jobs, selectedJobId],\n );\n const selectedModel = useMemo(\n () => models.find((model) => model.id === selectedModelId) ?? null,\n [models, selectedModelId],\n );\n const activeRunningJob = useMemo(\n () =>\n jobs.find((job) => job.status === \"running\" || job.status === \"queued\") ??\n null,\n [jobs],\n );\n\n const loadStatus = useCallback(async () => {\n const nextStatus = await client.getTrainingStatus();\n setStatus(nextStatus);\n }, []);\n\n const loadTrajectories = useCallback(async () => {\n const listed = await client.listTrainingTrajectories({\n limit: 100,\n offset: 0,\n });\n setTrajectoryList(listed);\n }, []);\n\n const loadDatasets = useCallback(async () => {\n const listed = await client.listTrainingDatasets();\n const nextDatasets = asArray<TrainingDatasetRecord>(listed.datasets);\n setDatasets(nextDatasets);\n setSelectedDatasetId((prev) => {\n if (prev && nextDatasets.some((dataset) => dataset.id === prev)) {\n return prev;\n }\n return nextDatasets[0]?.id ?? \"\";\n });\n }, []);\n\n const loadJobs = useCallback(async () => {\n const listed = await client.listTrainingJobs();\n const nextJobs = asArray<TrainingJobRecord>(listed.jobs);\n setJobs(nextJobs);\n setSelectedJobId((prev) => {\n if (prev && nextJobs.some((job) => job.id === prev)) return prev;\n return nextJobs[0]?.id ?? \"\";\n });\n }, []);\n\n const loadModels = useCallback(async () => {\n const listed = await client.listTrainingModels();\n const nextModels = asArray<TrainingModelRecord>(listed.models);\n setModels(nextModels);\n setSelectedModelId((prev) => {\n if (prev && nextModels.some((model) => model.id === prev)) return prev;\n return nextModels[0]?.id ?? \"\";\n });\n }, []);\n\n const loadCollectionHistory = useCallback(async () => {\n setCollectionHistoryLoading(true);\n try {\n const listed = await client.listTrainingCollections({ limit: 10 });\n setCollectionHistory(listed);\n } catch (err) {\n // Collection history is one panel among many. A failure here must not\n // reject the shared refreshAll() Promise.all and blank the whole view —\n // surface it as a non-blocking notice and keep any prior history.\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToLoadCollectionHistory\", {\n defaultValue: \"Failed to load collection history\",\n }),\n \"error\",\n 4200,\n );\n } finally {\n setCollectionHistoryLoading(false);\n }\n }, [setActionNotice, t]);\n\n const refreshAll = useCallback(async () => {\n setPageLoading(true);\n setErrorMessage(null);\n try {\n await Promise.all([\n loadStatus(),\n loadTrajectories(),\n loadDatasets(),\n loadJobs(),\n loadModels(),\n loadCollectionHistory(),\n ]);\n } catch (err) {\n setErrorMessage(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRefreshState\"),\n );\n } finally {\n setPageLoading(false);\n }\n }, [\n loadCollectionHistory,\n loadDatasets,\n loadJobs,\n loadModels,\n loadStatus,\n loadTrajectories,\n t,\n ]);\n\n const loadTrajectoryDetail = useCallback(\n async (trajectoryId: string) => {\n setTrajectoryLoading(true);\n try {\n const result = await client.getTrainingTrajectory(trajectoryId);\n setSelectedTrajectory(result.trajectory);\n } catch (err) {\n const message =\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToLoadTrajectoryDetail\");\n setActionNotice(message, \"error\", 4200);\n } finally {\n setTrajectoryLoading(false);\n }\n },\n [setActionNotice, t],\n );\n\n const handlePublishTrajectories = useCallback(async () => {\n setPublishingTrajectories(true);\n try {\n const response = await fetch(\"/api/training/trajectories/publish\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({}),\n });\n if (response.status === 409) {\n setPublishConfigured(false);\n const detail = (await response.json().catch(() => null)) as {\n error?: string;\n } | null;\n setActionNotice(\n detail?.error ?? t(\"finetuningview.HuggingFacePublishNotConfigured\"),\n \"error\",\n 5200,\n );\n return;\n }\n const payload = (await response.json().catch(() => null)) as {\n error?: string;\n trajectoriesPublished?: number;\n cloudUpload?: { huggingFaceRepo?: string; huggingFacePath?: string };\n } | null;\n if (!response.ok) {\n setActionNotice(\n payload?.error ?? t(\"finetuningview.FailedToPublishTrajectories\"),\n \"error\",\n 5200,\n );\n return;\n }\n setPublishConfigured(true);\n setActionNotice(\n t(\"finetuningview.PublishedTrajectoriesMessage\", {\n count: payload?.trajectoriesPublished ?? 0,\n repo: payload?.cloudUpload?.huggingFaceRepo ?? \"\",\n }),\n \"success\",\n 4200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToPublishTrajectories\"),\n \"error\",\n 5200,\n );\n } finally {\n setPublishingTrajectories(false);\n }\n }, [setActionNotice, t]);\n\n const handleBuildDataset = useCallback(async () => {\n setDatasetBuilding(true);\n try {\n const limit = parsePositiveInteger(buildLimit);\n const minLlmCallsPerTrajectory = parsePositiveInteger(buildMinCalls);\n const request: { limit?: number; minLlmCallsPerTrajectory?: number } = {};\n if (typeof limit === \"number\") request.limit = limit;\n if (typeof minLlmCallsPerTrajectory === \"number\") {\n request.minLlmCallsPerTrajectory = minLlmCallsPerTrajectory;\n }\n\n const result = await client.buildTrainingDataset(request);\n setSelectedDatasetId(result.dataset.id);\n await Promise.all([loadDatasets(), loadStatus()]);\n setActionNotice(\n t(\"finetuningview.BuiltDatasetMessage\", {\n id: result.dataset.id,\n count: result.dataset.sampleCount,\n }),\n \"success\",\n 3800,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToBuildDataset\"),\n \"error\",\n 4200,\n );\n } finally {\n setDatasetBuilding(false);\n }\n }, [buildLimit, buildMinCalls, loadDatasets, loadStatus, setActionNotice, t]);\n\n const handleBuildAnalysisIndex = useCallback(async () => {\n setAnalysisBuilding(true);\n try {\n const result = await client.buildTrainingAnalysisIndex();\n setAnalysisIndex(result);\n setActionNotice(\n t(\"finetuningview.BuiltAnalysisIndexMessage\", {\n count: result.manifest.artifacts.length,\n }),\n \"success\",\n 4200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToBuildAnalysisIndex\"),\n \"error\",\n 5200,\n );\n } finally {\n setAnalysisBuilding(false);\n }\n }, [setActionNotice, t]);\n\n const handleBuildReadinessReport = useCallback(async () => {\n setReadinessBuilding(true);\n try {\n const result = await client.buildTrainingReadinessReport();\n setReadinessReport(result);\n setActionNotice(\n t(\"finetuningview.ReadinessReportCompleted\", {\n status: result.report.status,\n missing: result.report.counts.missing ?? 0,\n }),\n result.report.status === \"missing\" ? \"error\" : \"success\",\n 5200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToBuildReadinessReport\"),\n \"error\",\n 5200,\n );\n } finally {\n setReadinessBuilding(false);\n }\n }, [setActionNotice, t]);\n\n const handleRunReadinessRecommendation = useCallback(\n async (checkId: string, action: TrainingReadinessRecommendedAction) => {\n setReadinessActionRunning(checkId);\n try {\n const result = await interact(action.capability, action.params);\n if (action.capability === \"terminal-training-build-analysis-index\") {\n setAnalysisIndex(result as TrainingAnalysisIndexResponse);\n } else if (\n action.capability === \"terminal-training-build-readiness-report\"\n ) {\n setReadinessReport(result as TrainingReadinessReportResponse);\n } else if (\n action.capability === \"terminal-training-ingest-hf-dataset\"\n ) {\n setHfIngestResult(result as HuggingFaceDatasetIngestResponse);\n } else if (action.capability === \"terminal-training-feed-generate\") {\n setFeedGenerationResult(result as RunFeedGenerationResponse);\n } else if (\n action.capability === \"terminal-training-run-eval-comparison\"\n ) {\n setEvalComparisonResult(result as RunLocalEvalComparisonResponse);\n } else if (action.capability === \"terminal-training-run-scenarios\") {\n setScenarioResult(result as RunScenarioResponse);\n } else if (\n action.capability === \"terminal-training-run-benchmark-vs-cerebras\"\n ) {\n setBenchmarkResult(result as RunBenchmarkVsCerebrasResponse);\n } else if (\n action.capability === \"terminal-training-stage-eliza1-bundle\"\n ) {\n setBundleStageResult(result as StageEliza1BundleResponse);\n } else if (\n action.capability === \"terminal-training-run-action-benchmark\"\n ) {\n setActionBenchmarkResult(result as RunActionBenchmarkResponse);\n } else if (action.capability === \"terminal-training-run-collection\") {\n setCollectionResult(result as RunTrainingCollectionResponse);\n await loadCollectionHistory();\n }\n\n if (action.capability !== \"terminal-training-build-readiness-report\") {\n const refreshed = await client.buildTrainingReadinessReport();\n setReadinessReport(refreshed);\n }\n\n setActionNotice(\n t(\"finetuningview.ReadinessRecommendationCompleted\", {\n defaultValue: `Ran ${action.capability}`,\n }),\n \"success\",\n 5200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRunReadinessRecommendation\", {\n defaultValue: \"Failed to run readiness recommendation\",\n }),\n \"error\",\n 5200,\n );\n } finally {\n setReadinessActionRunning(null);\n }\n },\n [loadCollectionHistory, setActionNotice, t],\n );\n\n const handleRunTrainingCollection = useCallback(\n async (preflightOnly = false) => {\n if (preflightOnly) {\n setCollectionPreflightRunning(true);\n } else {\n setCollectionRunning(true);\n }\n try {\n const hfFilesList = hfFiles\n .split(/\\r?\\n|,/)\n .map((file) => file.trim())\n .filter(Boolean);\n const actionBenchmarkTiers = parseCollectionTierList(\n actionBenchmarkPairTiers,\n );\n const actionBenchmarkTierForSinglePair =\n actionBenchmarkTier.trim() || undefined;\n const useDerivedActionBenchmarkPairs =\n actionBenchmarkPairEnabled &&\n actionBenchmarkTiers.length > 0 &&\n (actionBenchmarkTiers.length > 1 ||\n actionBenchmarkTiers[0] !== actionBenchmarkTierForSinglePair);\n const naturalTaskList = naturalTasks\n .split(\",\")\n .map((task) => task.trim())\n .filter(Boolean);\n const naturalTrajectoryOptions =\n naturalSanitizedJsonlPath.trim() ||\n naturalRawJsonlPath.trim() ||\n naturalRunId.trim() ||\n naturalTaskList.length > 0 ||\n naturalIncludeRaw\n ? {\n sanitizedJsonlPath:\n naturalSanitizedJsonlPath.trim() || undefined,\n rawJsonlPath: naturalRawJsonlPath.trim() || undefined,\n includeRawJsonl:\n naturalIncludeRaw || !!naturalRawJsonlPath.trim(),\n tasks: naturalTaskList.length > 0 ? naturalTaskList : undefined,\n source: {\n kind: \"training_collection_natural_trajectories\",\n runId: naturalRunId.trim() || undefined,\n metadata: {\n ui: true,\n sanitizedJsonlPath:\n naturalSanitizedJsonlPath.trim() || undefined,\n rawJsonlPath: naturalRawJsonlPath.trim() || undefined,\n },\n },\n }\n : undefined;\n const result = await client.runTrainingCollection({\n preflightOnly,\n preflightProbe: collectionPreflightProbe,\n includeHuggingFace: true,\n includeFeed: true,\n includeNaturalTrajectories: true,\n includeTestTrajectories: true,\n includeScenarios: true,\n includeEvalComparison: evalComparisonEnabled,\n includeActionBenchmark: true,\n includeBenchmarkVsCerebras: true,\n includeEliza1ModelRegistry: true,\n includeEliza1BundleStage: true,\n includeBenchmarkMatrix: true,\n huggingFace: {\n repoId: hfRepoId.trim() || undefined,\n revision: hfRevision.trim() || undefined,\n files: hfFilesList.length > 0 ? hfFilesList : undefined,\n dryRun: hfDryRun,\n outputDir: hfOutputDir.trim() || undefined,\n },\n feed: {\n archetypes: feedArchetypes.trim() || undefined,\n numAgents: parsePositiveInteger(feedNumAgents),\n ticks: parsePositiveInteger(feedTicks),\n parallel: parsePositiveInteger(feedParallel),\n cleanup: feedCleanup,\n dryRun: feedDryRun,\n outputDir: feedOutputDir.trim() || undefined,\n },\n naturalTrajectories: naturalTrajectoryOptions,\n scenarios: {\n dryRun: scenarioDryRun,\n scenario: scenarioFilter.trim() || undefined,\n outputDir: scenarioOutputDir.trim() || undefined,\n exportNative: scenarioExportNative,\n useDeterministicProxy: scenarioDeterministicProxy,\n },\n evalComparison: {\n manifestPath: evalComparisonManifestPath.trim() || undefined,\n model: evalComparisonManifestPath.trim()\n ? undefined\n : evalComparisonBaseModel.trim() || undefined,\n trainedModelPath: evalComparisonManifestPath.trim()\n ? undefined\n : evalComparisonTrainedModelPath.trim() || undefined,\n backend: evalComparisonManifestPath.trim()\n ? undefined\n : evalComparisonBackend,\n outputDir: evalComparisonOutputDir.trim() || undefined,\n dryRun: evalComparisonDryRun,\n },\n actionBenchmark: {\n filter: actionBenchmarkFilter.trim() || undefined,\n runsPerCase: parsePositiveInteger(actionBenchmarkRunsPerCase),\n outputDir: actionBenchmarkOutputDir.trim() || undefined,\n provider: actionBenchmarkProvider.trim() || undefined,\n modelId: actionBenchmarkModelId.trim() || undefined,\n runtimeModel: actionBenchmarkRuntimeModel.trim() || undefined,\n baseUrl: actionBenchmarkBaseUrl.trim() || undefined,\n variant: actionBenchmarkVariant,\n tier: actionBenchmarkTier.trim() || undefined,\n benchmark: actionBenchmarkMatrixBenchmark.trim() || undefined,\n datasetVersion: actionBenchmarkDatasetVersion.trim() || undefined,\n useMocks: actionBenchmarkUseMocks,\n forceTrajectoryCapture: actionBenchmarkCapture,\n dryRun: actionBenchmarkDryRun,\n },\n actionBenchmarkPair: actionBenchmarkPairEnabled\n ? !useDerivedActionBenchmarkPairs\n ? {\n tier: actionBenchmarkTierForSinglePair,\n base: {\n modelId: actionBenchmarkBaseModelId.trim() || undefined,\n runtimeModel:\n actionBenchmarkBaseRuntimeModel.trim() || undefined,\n variant: \"base\",\n },\n trained: {\n modelId: actionBenchmarkModelId.trim() || undefined,\n runtimeModel:\n actionBenchmarkRuntimeModel.trim() || undefined,\n variant: \"trained\",\n },\n }\n : undefined\n : undefined,\n actionBenchmarkPairs: useDerivedActionBenchmarkPairs\n ? actionBenchmarkTiers.map((tier) => ({\n tier,\n base: { variant: \"base\" },\n trained: { variant: \"trained\" },\n }))\n : undefined,\n benchmarkVsCerebras: {\n tiers: benchmarkTiers.trim() || undefined,\n benchmark: benchmarkKind,\n variants: benchmarkVariants,\n maxSamples: parsePositiveInteger(benchmarkMaxSamples),\n dryRun: benchmarkDryRun,\n resultsDb: benchmarkResultsDb.trim() || undefined,\n trainedModelPath: benchmarkTrainedModelPath.trim() || undefined,\n matrixOutputDir: benchmarkMatrixOutputDir.trim() || undefined,\n },\n eliza1BundleStage: {\n repoId: bundleStageRepoId.trim() || undefined,\n tier: bundleStageTier.trim() || undefined,\n localDir: bundleStageLocalDir.trim() || undefined,\n outputDir: bundleStageOutputDir.trim() || undefined,\n maxBytes: parsePositiveInteger(bundleStageMaxBytes),\n apply: bundleStageApply,\n },\n });\n if (\"preflight\" in result) {\n setCollectionPreflightResult(result.preflight);\n setActionNotice(\n t(\"finetuningview.CollectionPreflightCompleted\", {\n defaultValue: \"Collection preflight completed\",\n }),\n \"success\",\n 5200,\n );\n return;\n }\n setCollectionResult(result);\n setCollectionPreflightResult(\n result.manifest.evidence.preflight ?? null,\n );\n setAnalysisIndex(result.analysis);\n await loadCollectionHistory();\n setActionNotice(\n t(\"finetuningview.TrainingCollectionCompleted\", {\n count: result.analysis.manifest.artifacts.length,\n }),\n \"success\",\n 5200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRunTrainingCollection\"),\n \"error\",\n 5200,\n );\n } finally {\n if (preflightOnly) {\n setCollectionPreflightRunning(false);\n } else {\n setCollectionRunning(false);\n }\n }\n },\n [\n actionBenchmarkCapture,\n actionBenchmarkDryRun,\n actionBenchmarkFilter,\n actionBenchmarkBaseModelId,\n actionBenchmarkBaseRuntimeModel,\n actionBenchmarkDatasetVersion,\n actionBenchmarkMatrixBenchmark,\n actionBenchmarkModelId,\n actionBenchmarkBaseUrl,\n actionBenchmarkOutputDir,\n actionBenchmarkPairEnabled,\n actionBenchmarkPairTiers,\n actionBenchmarkProvider,\n actionBenchmarkRunsPerCase,\n actionBenchmarkRuntimeModel,\n actionBenchmarkTier,\n actionBenchmarkUseMocks,\n actionBenchmarkVariant,\n benchmarkDryRun,\n benchmarkKind,\n benchmarkMatrixOutputDir,\n benchmarkMaxSamples,\n benchmarkResultsDb,\n benchmarkTiers,\n benchmarkTrainedModelPath,\n benchmarkVariants,\n bundleStageApply,\n bundleStageLocalDir,\n bundleStageMaxBytes,\n bundleStageOutputDir,\n bundleStageRepoId,\n bundleStageTier,\n collectionPreflightProbe,\n evalComparisonBackend,\n evalComparisonBaseModel,\n evalComparisonDryRun,\n evalComparisonEnabled,\n evalComparisonManifestPath,\n evalComparisonOutputDir,\n evalComparisonTrainedModelPath,\n feedArchetypes,\n feedCleanup,\n feedDryRun,\n feedNumAgents,\n feedOutputDir,\n feedParallel,\n feedTicks,\n hfDryRun,\n hfFiles,\n hfOutputDir,\n hfRepoId,\n hfRevision,\n loadCollectionHistory,\n naturalIncludeRaw,\n naturalRawJsonlPath,\n naturalRunId,\n naturalSanitizedJsonlPath,\n naturalTasks,\n scenarioDeterministicProxy,\n scenarioDryRun,\n scenarioExportNative,\n scenarioFilter,\n scenarioOutputDir,\n setActionNotice,\n t,\n ],\n );\n\n const handleRunEvalComparison = useCallback(async () => {\n setEvalComparisonRunning(true);\n try {\n const result = await client.runTrainingLocalEvalComparison({\n manifestPath: evalComparisonManifestPath.trim() || undefined,\n model: evalComparisonManifestPath.trim()\n ? undefined\n : evalComparisonBaseModel.trim() || undefined,\n trainedModelPath: evalComparisonManifestPath.trim()\n ? undefined\n : evalComparisonTrainedModelPath.trim() || undefined,\n backend: evalComparisonManifestPath.trim()\n ? undefined\n : evalComparisonBackend,\n outputDir: evalComparisonOutputDir.trim() || undefined,\n dryRun: evalComparisonDryRun,\n });\n setEvalComparisonResult(result);\n setActionNotice(\n result.exitCode === 0\n ? t(\"finetuningview.EvalComparisonCompleted\")\n : t(\"finetuningview.EvalComparisonFailed\", {\n exitCode: result.exitCode,\n }),\n result.exitCode === 0 ? \"success\" : \"error\",\n 5200,\n );\n if (!evalComparisonDryRun) {\n void handleBuildAnalysisIndex();\n }\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRunEvalComparison\"),\n \"error\",\n 5200,\n );\n } finally {\n setEvalComparisonRunning(false);\n }\n }, [\n evalComparisonBackend,\n evalComparisonBaseModel,\n evalComparisonDryRun,\n evalComparisonManifestPath,\n evalComparisonOutputDir,\n evalComparisonTrainedModelPath,\n handleBuildAnalysisIndex,\n setActionNotice,\n t,\n ]);\n\n const handleRunBenchmarkVsCerebras = useCallback(async () => {\n setBenchmarkRunning(true);\n try {\n const maxSamples = parsePositiveInteger(benchmarkMaxSamples);\n const result = await client.runTrainingBenchmarkVsCerebras({\n tiers: benchmarkTiers.trim() || undefined,\n benchmark: benchmarkKind,\n variants: benchmarkVariants,\n maxSamples: typeof maxSamples === \"number\" ? maxSamples : undefined,\n dryRun: benchmarkDryRun,\n resultsDb: benchmarkResultsDb.trim() || undefined,\n trainedModelPath: benchmarkTrainedModelPath.trim() || undefined,\n matrixOutputDir: benchmarkMatrixOutputDir.trim() || undefined,\n });\n setBenchmarkResult(result);\n setActionNotice(\n result.exitCode === 0\n ? t(\"finetuningview.BenchmarkVsCerebrasCompleted\")\n : t(\"finetuningview.BenchmarkVsCerebrasFailed\", {\n exitCode: result.exitCode,\n }),\n result.exitCode === 0 ? \"success\" : \"error\",\n 5200,\n );\n if (!benchmarkDryRun) {\n void handleBuildAnalysisIndex();\n }\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRunBenchmarkVsCerebras\"),\n \"error\",\n 5200,\n );\n } finally {\n setBenchmarkRunning(false);\n }\n }, [\n benchmarkDryRun,\n benchmarkKind,\n benchmarkMatrixOutputDir,\n benchmarkMaxSamples,\n benchmarkResultsDb,\n benchmarkTiers,\n benchmarkTrainedModelPath,\n benchmarkVariants,\n handleBuildAnalysisIndex,\n setActionNotice,\n t,\n ]);\n\n const handleStageEliza1Bundle = useCallback(async () => {\n setBundleStageRunning(true);\n try {\n const result = await client.stageEliza1Bundle({\n repoId: bundleStageRepoId.trim() || undefined,\n tier: bundleStageTier.trim() || undefined,\n localDir: bundleStageLocalDir.trim() || undefined,\n outputDir: bundleStageOutputDir.trim() || undefined,\n maxBytes: parsePositiveInteger(bundleStageMaxBytes),\n apply: bundleStageApply,\n });\n setBundleStageResult(result);\n setActionNotice(\n result.exitCode === 0\n ? t(\"finetuningview.Eliza1BundleStageCompleted\")\n : t(\"finetuningview.Eliza1BundleStageFailed\", {\n exitCode: result.exitCode,\n }),\n result.exitCode === 0 ? \"success\" : \"error\",\n 5200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToStageEliza1Bundle\"),\n \"error\",\n 5200,\n );\n } finally {\n setBundleStageRunning(false);\n }\n }, [\n bundleStageApply,\n bundleStageLocalDir,\n bundleStageMaxBytes,\n bundleStageOutputDir,\n bundleStageRepoId,\n bundleStageTier,\n setActionNotice,\n t,\n ]);\n\n const handleIngestHuggingFaceDataset = useCallback(async () => {\n setHfIngestRunning(true);\n try {\n const files = hfFiles\n .split(/\\r?\\n|,/)\n .map((file) => file.trim())\n .filter(Boolean);\n const result = await client.ingestHuggingFaceTrainingDataset({\n repoId: hfRepoId.trim() || undefined,\n revision: hfRevision.trim() || undefined,\n files: files.length > 0 ? files : undefined,\n outputDir: hfOutputDir.trim() || undefined,\n dryRun: hfDryRun,\n });\n setHfIngestResult(result);\n setActionNotice(\n t(\"finetuningview.IngestedHuggingFaceDatasetMessage\", {\n files: result.manifest.counts.files ?? result.manifest.files.length,\n rows: result.manifest.counts.jsonlRows ?? 0,\n }),\n \"success\",\n 5200,\n );\n if (!hfDryRun) {\n void handleBuildAnalysisIndex();\n }\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToIngestHuggingFaceDataset\"),\n \"error\",\n 5200,\n );\n } finally {\n setHfIngestRunning(false);\n }\n }, [\n handleBuildAnalysisIndex,\n hfDryRun,\n hfFiles,\n hfOutputDir,\n hfRepoId,\n hfRevision,\n setActionNotice,\n t,\n ]);\n\n const handleRunActionBenchmark = useCallback(async () => {\n setActionBenchmarkRunning(true);\n try {\n const result = await client.runTrainingActionBenchmark({\n filter: actionBenchmarkFilter.trim() || undefined,\n runsPerCase: parsePositiveInteger(actionBenchmarkRunsPerCase),\n outputDir: actionBenchmarkOutputDir.trim() || undefined,\n provider: actionBenchmarkProvider.trim() || undefined,\n modelId: actionBenchmarkModelId.trim() || undefined,\n runtimeModel: actionBenchmarkRuntimeModel.trim() || undefined,\n baseUrl: actionBenchmarkBaseUrl.trim() || undefined,\n variant: actionBenchmarkVariant,\n tier: actionBenchmarkTier.trim() || undefined,\n benchmark: actionBenchmarkMatrixBenchmark.trim() || undefined,\n datasetVersion: actionBenchmarkDatasetVersion.trim() || undefined,\n useMocks: actionBenchmarkUseMocks,\n forceTrajectoryCapture: actionBenchmarkCapture,\n dryRun: actionBenchmarkDryRun,\n });\n setActionBenchmarkResult(result);\n setActionNotice(\n result.exitCode === 0\n ? t(\"finetuningview.ActionBenchmarkCompleted\")\n : t(\"finetuningview.ActionBenchmarkFailed\", {\n exitCode: result.exitCode,\n }),\n result.exitCode === 0 ? \"success\" : \"error\",\n 5200,\n );\n if (!actionBenchmarkDryRun) {\n void handleBuildAnalysisIndex();\n }\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRunActionBenchmark\"),\n \"error\",\n 5200,\n );\n } finally {\n setActionBenchmarkRunning(false);\n }\n }, [\n actionBenchmarkCapture,\n actionBenchmarkDryRun,\n actionBenchmarkFilter,\n actionBenchmarkDatasetVersion,\n actionBenchmarkMatrixBenchmark,\n actionBenchmarkModelId,\n actionBenchmarkBaseUrl,\n actionBenchmarkOutputDir,\n actionBenchmarkProvider,\n actionBenchmarkRunsPerCase,\n actionBenchmarkRuntimeModel,\n actionBenchmarkTier,\n actionBenchmarkUseMocks,\n actionBenchmarkVariant,\n handleBuildAnalysisIndex,\n setActionNotice,\n t,\n ]);\n\n const handleRunFeedGeneration = useCallback(async () => {\n setFeedGenerationRunning(true);\n try {\n const result = await client.runFeedTrainingGeneration({\n archetypes: feedArchetypes.trim() || undefined,\n numAgents: parsePositiveInteger(feedNumAgents),\n ticks: parsePositiveInteger(feedTicks),\n parallel: parsePositiveInteger(feedParallel),\n cleanup: feedCleanup,\n dryRun: feedDryRun,\n outputDir: feedOutputDir.trim() || undefined,\n });\n setFeedGenerationResult(result);\n setActionNotice(\n t(\"finetuningview.FeedGenerationCompleted\"),\n \"success\",\n 5200,\n );\n if (!feedDryRun) {\n void handleBuildAnalysisIndex();\n }\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRunFeedGeneration\"),\n \"error\",\n 5200,\n );\n } finally {\n setFeedGenerationRunning(false);\n }\n }, [\n feedArchetypes,\n feedCleanup,\n feedDryRun,\n feedNumAgents,\n feedOutputDir,\n feedParallel,\n feedTicks,\n handleBuildAnalysisIndex,\n setActionNotice,\n t,\n ]);\n\n const handleRunScenarios = useCallback(async () => {\n setScenarioRunning(true);\n try {\n const result = await client.runTrainingScenarios({\n scenario: scenarioFilter.trim() || undefined,\n outputDir: scenarioOutputDir.trim() || undefined,\n exportNative: scenarioExportNative,\n useDeterministicProxy: scenarioDeterministicProxy,\n dryRun: scenarioDryRun,\n });\n setScenarioResult(result);\n setActionNotice(\n result.exitCode === 0\n ? t(\"finetuningview.ScenariosCompleted\")\n : t(\"finetuningview.ScenariosFailed\", {\n exitCode: result.exitCode,\n }),\n result.exitCode === 0 ? \"success\" : \"error\",\n 5200,\n );\n if (!scenarioDryRun) {\n void handleBuildAnalysisIndex();\n }\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRunScenarios\"),\n \"error\",\n 5200,\n );\n } finally {\n setScenarioRunning(false);\n }\n }, [\n handleBuildAnalysisIndex,\n scenarioDeterministicProxy,\n scenarioDryRun,\n scenarioExportNative,\n scenarioFilter,\n scenarioOutputDir,\n setActionNotice,\n t,\n ]);\n\n const handleStartJob = useCallback(async () => {\n setStartingJob(true);\n try {\n const options: StartTrainingOptions = {\n datasetId: selectedDatasetId || undefined,\n backend: startBackend,\n model: startModel.trim() || undefined,\n iterations: parsePositiveInteger(startIterations),\n batchSize: parsePositiveInteger(startBatchSize),\n learningRate: parsePositiveFloat(startLearningRate),\n };\n const result = await client.startTrainingJob(options);\n setSelectedJobId(result.job.id);\n await Promise.all([loadJobs(), loadStatus()]);\n setActionNotice(\n t(\"finetuningview.StartedTrainingJobMessage\", { id: result.job.id }),\n \"success\",\n 3200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToStartTrainingJob\"),\n \"error\",\n 4200,\n );\n } finally {\n setStartingJob(false);\n }\n }, [\n loadJobs,\n loadStatus,\n selectedDatasetId,\n setActionNotice,\n startBackend,\n startBatchSize,\n startIterations,\n startLearningRate,\n startModel,\n t,\n ]);\n\n const handleCancelJob = useCallback(\n async (jobId: string) => {\n setCancellingJobId(jobId);\n try {\n await client.cancelTrainingJob(jobId);\n await Promise.all([loadJobs(), loadStatus()]);\n setActionNotice(\n t(\"finetuningview.CancelledJobMessage\", { id: jobId }),\n \"success\",\n 2600,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToCancelJob\", { id: jobId }),\n \"error\",\n 4200,\n );\n } finally {\n setCancellingJobId(\"\");\n }\n },\n [loadJobs, loadStatus, setActionNotice, t],\n );\n\n const handleImportSelectedModel = useCallback(async () => {\n if (!selectedModel) return;\n const actionId = `import:${selectedModel.id}`;\n setModelAction(actionId);\n try {\n const result = await client.importTrainingModelToOllama(\n selectedModel.id,\n {\n modelName: importModelName.trim() || undefined,\n baseModel: importBaseModel.trim() || undefined,\n ollamaUrl: importOllamaUrl.trim() || undefined,\n },\n );\n await loadModels();\n setActivateProviderModel(\n result.model.ollamaModel ? `ollama/${result.model.ollamaModel}` : \"\",\n );\n setActionNotice(\n t(\"finetuningview.ImportedModelToOllamaMessage\", {\n id: result.model.id,\n ollamaModel: result.model.ollamaModel\n ? ` as ${result.model.ollamaModel}`\n : \"\",\n }),\n \"success\",\n 4200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToImportModelToOllama\"),\n \"error\",\n 4200,\n );\n } finally {\n setModelAction(\"\");\n }\n }, [\n importBaseModel,\n importModelName,\n importOllamaUrl,\n loadModels,\n selectedModel,\n setActionNotice,\n t,\n ]);\n\n const handleActivateSelectedModel = useCallback(async () => {\n if (!selectedModel) return;\n const actionId = `activate:${selectedModel.id}`;\n setModelAction(actionId);\n try {\n const result = await client.activateTrainingModel(\n selectedModel.id,\n activateProviderModel.trim() || undefined,\n );\n await loadModels();\n setActionNotice(\n t(\"finetuningview.ActivatedModelMessage\", {\n id: result.modelId,\n providerModel: result.providerModel,\n }),\n \"success\",\n 4200,\n );\n if (result.needsRestart) {\n const shouldRestart = await confirmDesktopAction({\n title: t(\"finetuningview.RestartAgentTitle\"),\n message: t(\"finetuningview.RestartAgentMessage\"),\n confirmLabel: t(\"finetuningview.Restart\"),\n cancelLabel: t(\"restartbanner.Later\"),\n type: \"question\",\n });\n if (shouldRestart) {\n await handleRestart();\n }\n }\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToActivateModel\"),\n \"error\",\n 4200,\n );\n } finally {\n setModelAction(\"\");\n }\n }, [\n activateProviderModel,\n handleRestart,\n loadModels,\n selectedModel,\n setActionNotice,\n t,\n ]);\n\n const handleBenchmarkSelectedModel = useCallback(async () => {\n if (!selectedModel) return;\n const actionId = `benchmark:${selectedModel.id}`;\n setModelAction(actionId);\n try {\n const result = await client.benchmarkTrainingModel(selectedModel.id);\n await loadModels();\n setActionNotice(\n t(\"finetuningview.BenchmarkStatusMessage\", {\n status: result.status,\n id: selectedModel.id,\n }),\n result.status === \"passed\" ? \"success\" : \"error\",\n 4200,\n );\n } catch (err) {\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToBenchmarkModel\"),\n \"error\",\n 4200,\n );\n } finally {\n setModelAction(\"\");\n }\n }, [loadModels, selectedModel, setActionNotice, t]);\n\n const handleSmokeTestSelectedModel = useCallback(async () => {\n if (!selectedModel) return;\n const actionId = `smoke:${selectedModel.id}`;\n setModelAction(actionId);\n try {\n const result = await client.sendChatRest(\n \"Model smoke test. Reply with exactly: MODEL_OK\",\n );\n setSmokeResult(result.text);\n setActionNotice(t(\"finetuningview.SmokeTestCompleted\"), \"success\", 3200);\n } catch (err) {\n setSmokeResult(null);\n setActionNotice(\n err instanceof Error\n ? err.message\n : t(\"finetuningview.FailedToRunSmokeTest\"),\n \"error\",\n 4200,\n );\n } finally {\n setModelAction(\"\");\n }\n }, [selectedModel, setActionNotice, t]);\n\n useEffect(() => {\n void refreshAll();\n }, [refreshAll]);\n\n useIntervalWhenDocumentVisible(() => {\n void loadStatus();\n void loadJobs();\n void loadModels();\n }, 5000);\n\n useEffect(() => {\n const unbind = client.onWsEvent(\n \"training_event\",\n (rawEnvelope: Record<string, unknown>) => {\n const event = asTrainingEvent(\n rawEnvelope as Partial<StreamEventEnvelope>,\n );\n if (!event) return;\n setTrainingEvents((prev) => {\n const merged = [event, ...prev];\n return merged.slice(0, 240);\n });\n if (event.kind !== \"job_log\") {\n void loadStatus();\n void loadJobs();\n void loadModels();\n if (event.kind === \"dataset_built\") {\n void loadDatasets();\n }\n }\n },\n );\n return () => {\n unbind();\n };\n }, [loadDatasets, loadJobs, loadModels, loadStatus]);\n\n const onBuildDataset = useCallback(() => {\n void handleBuildDataset();\n }, [handleBuildDataset]);\n const onRefreshDatasets = useCallback(() => {\n void loadDatasets();\n }, [loadDatasets]);\n const onStartJob = useCallback(() => {\n void handleStartJob();\n }, [handleStartJob]);\n const onRefreshJobs = useCallback(() => {\n void loadJobs();\n void loadStatus();\n }, [loadJobs, loadStatus]);\n const onCancelJob = useCallback(\n (jobId: string) => {\n void handleCancelJob(jobId);\n },\n [handleCancelJob],\n );\n const onImportModel = useCallback(() => {\n void handleImportSelectedModel();\n }, [handleImportSelectedModel]);\n const onActivateModel = useCallback(() => {\n void handleActivateSelectedModel();\n }, [handleActivateSelectedModel]);\n const onBenchmarkModel = useCallback(() => {\n void handleBenchmarkSelectedModel();\n }, [handleBenchmarkSelectedModel]);\n const onSmokeTestModel = useCallback(() => {\n void handleSmokeTestSelectedModel();\n }, [handleSmokeTestSelectedModel]);\n\n if (pageLoading) {\n return (\n <ContentLayout contentHeader={contentHeader}>\n <div data-testid=\"fine-tuning-view\" className=\"text-sm text-muted\">\n {t(\"finetuningview.LoadingFineTuning\")}\n </div>\n </ContentLayout>\n );\n }\n\n return (\n <ContentLayout contentHeader={contentHeader}>\n <div data-testid=\"fine-tuning-view\" className=\"space-y-4 pb-32\">\n <section className=\"px-2 py-2\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div>\n <h2 className=\"text-base font-semibold text-txt\">\n {t(\"finetuningview.FineTuning\")}\n </h2>\n </div>\n <TrainingActionButton\n agentId=\"action-refresh-all\"\n label={t(\"finetuningview.RefreshAll\")}\n group=\"overview\"\n description=\"Refresh all training status, datasets, jobs, and models\"\n onClick={() => {\n void refreshAll();\n }}\n >\n {t(\"finetuningview.RefreshAll\")}\n </TrainingActionButton>\n </div>\n {errorMessage && (\n <div className=\"mt-3 px-1 py-2 text-sm text-danger\">\n {errorMessage}\n </div>\n )}\n </section>\n\n <section className={FINE_TUNING_SECTION_CLASS}>\n <div className={FINE_TUNING_SECTION_HEADER_CLASS}>\n <div className=\"text-lg font-semibold text-txt\">\n {t(\"finetuningview.Status\")}\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-3 text-sm md:grid-cols-3 xl:grid-cols-6\">\n <div className={FINE_TUNING_STATUS_CARD_CLASS}>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Runtime\")}\n </div>\n <div className=\"mt-2 text-base font-semibold text-txt\">\n {status?.runtimeAvailable\n ? t(\"finetuningview.Ready\")\n : t(\"finetuningview.Offline\")}\n </div>\n </div>\n <div className={FINE_TUNING_STATUS_CARD_CLASS}>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.RunningJobs\")}\n </div>\n <div className=\"mt-2 text-base font-semibold text-txt\">\n {status?.runningJobs ?? 0}\n </div>\n </div>\n <div className={FINE_TUNING_STATUS_CARD_CLASS}>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.QueuedJobs\")}\n </div>\n <div className=\"mt-2 text-base font-semibold text-txt\">\n {status?.queuedJobs ?? 0}\n </div>\n </div>\n <div className={FINE_TUNING_STATUS_CARD_CLASS}>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Datasets\")}\n </div>\n <div className=\"mt-2 text-base font-semibold text-txt\">\n {status?.datasetCount ?? 0}\n </div>\n </div>\n <div className={FINE_TUNING_STATUS_CARD_CLASS}>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Models\")}\n </div>\n <div className=\"mt-2 text-base font-semibold text-txt\">\n {status?.modelCount ?? 0}\n </div>\n </div>\n <div className={FINE_TUNING_STATUS_CARD_CLASS}>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.FailedJobs\")}\n </div>\n <div className=\"mt-2 text-base font-semibold text-txt\">\n {status?.failedJobs ?? 0}\n </div>\n </div>\n </div>\n </section>\n\n <TrajectoriesSection\n trajectoryList={trajectoryList}\n selectedTrajectory={selectedTrajectory}\n trajectoryLoading={trajectoryLoading}\n publishingTrajectories={publishingTrajectories}\n publishConfigured={publishConfigured}\n onRefresh={() => {\n void loadTrajectories();\n }}\n onSelectTrajectory={(trajectoryId) => {\n void loadTrajectoryDetail(trajectoryId);\n }}\n onPublishTrajectories={() => {\n void handlePublishTrajectories();\n }}\n t={t}\n />\n\n <section className={FINE_TUNING_SECTION_CLASS}>\n <div className={FINE_TUNING_SECTION_HEADER_CLASS}>\n <div className=\"text-lg font-semibold text-txt\">\n {t(\"finetuningview.TrainingAnalysisIndex\", {\n defaultValue: \"Training analysis\",\n })}\n </div>\n <div className=\"flex flex-wrap gap-2\">\n <TrainingActionButton\n agentId=\"action-collect-and-index\"\n label={t(\"finetuningview.CollectAndIndex\", {\n defaultValue: \"Collect and index\",\n })}\n group=\"analysis\"\n description=\"Run the full training data collection and build the analysis index\"\n disabled={collectionRunning}\n onClick={() => {\n void handleRunTrainingCollection();\n }}\n >\n {collectionRunning\n ? t(\"finetuningview.Collecting\", {\n defaultValue: \"Collecting\",\n })\n : t(\"finetuningview.CollectAndIndex\", {\n defaultValue: \"Collect and index\",\n })}\n </TrainingActionButton>\n <TrainingActionButton\n agentId=\"action-collection-preflight\"\n label=\"Run collection preflight\"\n group=\"analysis\"\n description=\"Run a preflight check of the training data collection without writing artifacts\"\n disabled={collectionPreflightRunning}\n onClick={() => {\n void handleRunTrainingCollection(true);\n }}\n >\n {collectionPreflightRunning\n ? \"Checking\"\n : \"Run collection preflight\"}\n </TrainingActionButton>\n <TrainingActionButton\n agentId=\"action-build-analysis-index\"\n label={t(\"finetuningview.BuildAnalysisIndex\", {\n defaultValue: \"Build index\",\n })}\n group=\"analysis\"\n description=\"Build the training analysis index from collected artifacts\"\n disabled={analysisBuilding}\n onClick={() => {\n void handleBuildAnalysisIndex();\n }}\n >\n {analysisBuilding\n ? t(\"finetuningview.Indexing\", { defaultValue: \"Indexing\" })\n : t(\"finetuningview.BuildAnalysisIndex\", {\n defaultValue: \"Build index\",\n })}\n </TrainingActionButton>\n <TrainingActionButton\n agentId=\"action-build-readiness-report\"\n label={t(\"finetuningview.BuildReadinessReport\", {\n defaultValue: \"Readiness report\",\n })}\n group=\"analysis\"\n description=\"Build the training readiness report and surface missing checks\"\n disabled={readinessBuilding}\n onClick={() => {\n void handleBuildReadinessReport();\n }}\n >\n {readinessBuilding\n ? t(\"finetuningview.CheckingReadiness\", {\n defaultValue: \"Checking\",\n })\n : t(\"finetuningview.BuildReadinessReport\", {\n defaultValue: \"Readiness report\",\n })}\n </TrainingActionButton>\n </div>\n </div>\n <div className={`${FINE_TUNING_PANEL_CLASS} p-3 text-sm`}>\n <div className=\"mb-3 pb-2\">\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"analysis-probe-endpoints\"\n label=\"Probe live endpoints\"\n group=\"analysis\"\n description=\"Probe live endpoints during the collection preflight\"\n checked={collectionPreflightProbe}\n onChange={setCollectionPreflightProbe}\n />\n Probe live endpoints\n </div>\n </div>\n <div className=\"mb-3 pb-2\">\n <div className=\"mb-2 text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Natural trajectory import\n </div>\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div className=\"space-y-1 text-xs text-muted md:col-span-2\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n Sanitized JSONL\n </span>\n <AgentTextField\n agentId=\"natural-sanitized-jsonl\"\n label=\"Sanitized JSONL path\"\n group=\"natural-import\"\n description=\"Path to the sanitized trajectory JSONL file\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={naturalSanitizedJsonlPath}\n onChange={setNaturalSanitizedJsonlPath}\n placeholder=\"/path/to/trajectories.sanitized.jsonl\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted md:col-span-2\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n Raw JSONL\n </span>\n <AgentTextField\n agentId=\"natural-raw-jsonl\"\n label=\"Raw JSONL path\"\n group=\"natural-import\"\n description=\"Path to the raw trajectory JSONL file\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={naturalRawJsonlPath}\n onChange={setNaturalRawJsonlPath}\n placeholder=\"/path/to/trajectories.raw.jsonl\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n Run ID\n </span>\n <AgentTextField\n agentId=\"natural-run-id\"\n label=\"Run ID\"\n group=\"natural-import\"\n description=\"Run identifier for the imported trajectories\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={naturalRunId}\n onChange={setNaturalRunId}\n placeholder=\"app-run-1\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n Task buckets\n </span>\n <AgentTextField\n agentId=\"natural-task-buckets\"\n label=\"Task buckets\"\n group=\"natural-import\"\n description=\"Comma-separated task buckets to import\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={naturalTasks}\n onChange={setNaturalTasks}\n placeholder=\"response,action_planner\"\n />\n </div>\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"natural-include-raw\"\n label=\"Include raw trajectories\"\n group=\"natural-import\"\n description=\"Include raw trajectories in the import\"\n checked={naturalIncludeRaw}\n onChange={setNaturalIncludeRaw}\n />\n Include raw\n </div>\n </div>\n </div>\n {readinessReport ? (\n <div className=\"mb-3 pb-2\">\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Readiness\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {readinessReport.report.status}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.ReadyChecks\")}\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n {readinessReport.report.counts.ready ?? 0}/\n {readinessReport.report.counts.checks ?? 0}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Missing\")}\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n {readinessReport.report.counts.missing ?? 0}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Report\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {readinessReport.reportPath}\n </div>\n </div>\n </div>\n <div className=\"mt-3 flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId=\"readiness-open-report\"\n label=\"Open readiness report\"\n group=\"readiness\"\n description=\"Open the readiness report file\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(readinessReport.reportPath),\n );\n }}\n >\n Open readiness report\n </AgentInlineButton>\n {readinessReport.report.analysisIndexHtmlPath ? (\n <AgentInlineButton\n agentId=\"readiness-open-viewer\"\n label=\"Open readiness viewer\"\n group=\"readiness\"\n description=\"Open the readiness analysis viewer\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(\n readinessReport.report.analysisIndexHtmlPath,\n ),\n );\n }}\n >\n Open readiness viewer\n </AgentInlineButton>\n ) : null}\n <AgentInlineButton\n agentId=\"readiness-open-output\"\n label=\"Open readiness output\"\n group=\"readiness\"\n description=\"Open the readiness output directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(readinessReport.outputDir),\n );\n }}\n >\n Open readiness output\n </AgentInlineButton>\n </div>\n {readinessReport.report.checks.some(\n (check) => check.status !== \"ready\",\n ) ? (\n <div className=\"mt-3 space-y-2\">\n {readinessReport.report.checks\n .filter((check) => check.status !== \"ready\")\n .slice(0, 5)\n .map((check) => (\n <ReadinessCheckRow\n key={check.id}\n check={check}\n readinessActionRunning={readinessActionRunning}\n onRunRecommendation={handleRunReadinessRecommendation}\n t={t}\n />\n ))}\n </div>\n ) : null}\n </div>\n ) : null}\n {collectionPreflightResult ? (\n <div className=\"mb-3 pb-2\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Collection preflight\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n live:{collectionPreflightResult.liveRequired ? \"yes\" : \"no\"}{\" \"}\n {collectionPreflightResult.checks\n .map(\n (check) =>\n `${check.id}:${check.status}${\n check.path ? `->${check.path}` : \"\"\n }`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult ? (\n <div className=\"mb-3 grid gap-3 pb-2 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Collection\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.outputDir}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Manifest\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifestPath}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Run summary\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.readmePath}\n </div>\n <AgentInlineButton\n agentId=\"collection-open-summary\"\n label=\"Open collection summary\"\n group=\"collection-result\"\n description=\"Open the collection run summary\"\n className={`${FINE_TUNING_ACTION_CLASS} mt-2`}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(collectionResult.readmePath),\n )\n }\n >\n Open summary\n </AgentInlineButton>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Steps\")}\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n {collectionResult.manifest.steps\n .map((step) => `${step.id}:${step.status}`)\n .join(\" \")}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Viewer\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.analysis.indexHtmlPath}\n </div>\n <AgentInlineButton\n agentId=\"collection-open-viewer\"\n label=\"Open collection viewer\"\n group=\"collection-result\"\n description=\"Open the collection analysis viewer\"\n className={`${FINE_TUNING_ACTION_CLASS} mt-2`}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(\n collectionResult.manifest.analysis.indexHtmlPath,\n ),\n )\n }\n >\n Open viewer\n </AgentInlineButton>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Collection index\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.collectionIndex.indexHtmlPath}\n </div>\n <AgentInlineButton\n agentId=\"collection-open-index\"\n label=\"Open collection index\"\n group=\"collection-result\"\n description=\"Open the collection index\"\n className={`${FINE_TUNING_ACTION_CLASS} mt-2`}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(\n collectionResult.collectionIndex.indexHtmlPath,\n ),\n )\n }\n >\n Open index\n </AgentInlineButton>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Readiness\")}\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n {collectionResult.manifest.readiness.status}{\" \"}\n {collectionResult.manifest.readiness.ready}/\n {collectionResult.manifest.readiness.ready +\n collectionResult.manifest.readiness.partial +\n collectionResult.manifest.readiness.missing}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Data sources\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n hf:\n {\n collectionResult.manifest.evidence.dataSources\n .huggingFaceDatasets\n }{\" \"}\n feed:\n {\n collectionResult.manifest.evidence.dataSources\n .feedDatasets\n }{\" \"}\n natural:\n {\n collectionResult.manifest.evidence.dataSources\n .naturalTrajectoryBundles\n }{\" \"}\n scenarios:\n {\n collectionResult.manifest.evidence.dataSources\n .scenarioRuns\n }{\" \"}\n native:\n {\n collectionResult.manifest.evidence.dataSources\n .scenarioNativeDatasets\n }{\" \"}\n tests:\n {\n collectionResult.manifest.evidence.dataSources\n .testTrajectories\n }{\" \"}\n jsonl:\n {\n collectionResult.manifest.evidence.dataSources\n .trainingJsonlDatasets\n }\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Eval evidence\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n evals:\n {collectionResult.manifest.evidence.evals.evalArtifacts}{\" \"}\n matrices:\n {collectionResult.manifest.evidence.evals.benchmarkMatrices}{\" \"}\n models:{collectionResult.manifest.evidence.training.models}\n {formatModelInventorySummary(\n collectionResult.manifest.evidence.training\n .modelInventory,\n )}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Benchmark evidence\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n pairs:\n {\n collectionResult.manifest.evidence.benchmarks\n .actionBenchmarkPairs\n }{\" \"}\n sources:\n {\n collectionResult.manifest.evidence.benchmarks\n .actionBenchmarkMatrixSources\n }{\" \"}\n rows:\n {\n collectionResult.manifest.evidence.benchmarks\n .benchmarkRows\n }{\" \"}\n comparisons:\n {\n collectionResult.manifest.evidence.benchmarks\n .benchmarkComparisons\n }\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Benchmark tiers\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.benchmarks.tiers\n .length > 0\n ? collectionResult.manifest.evidence.benchmarks.tiers.join(\n \",\",\n )\n : \"none\"}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Benchmark readiness\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n smallest:\n {\n collectionResult.manifest.evidence.benchmarkReadiness\n .smallestTier\n }{\" \"}\n improvement:\n {\n collectionResult.manifest.evidence.benchmarkReadiness\n .baseTrainedImprovement\n }{\" \"}\n all-tier:\n {\n collectionResult.manifest.evidence.benchmarkReadiness\n .allEliza1TierImprovements\n }{\" \"}\n samples:\n {collectionResult.manifest.evidence.readinessGaps.find(\n (gap) => gap.id === \"readable_source_samples\",\n )?.status ?? \"ready\"}\n </div>\n </div>\n {collectionResult.manifest.evidence.preflight ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Live preflight\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n live:\n {collectionResult.manifest.evidence.preflight.liveRequired\n ? \"yes\"\n : \"no\"}{\" \"}\n {collectionResult.manifest.evidence.preflight.checks\n .map(\n (check) =>\n `${check.id}:${check.status}${\n check.path ? `->${check.path}` : \"\"\n }`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult.manifest.evidence.artifactLinks.length > 0 ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Evidence artifacts\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.artifactLinks\n .slice(0, 8)\n .map(\n (artifact) =>\n `${artifact.category}:${artifact.title} -> ${artifact.path}`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult.manifest.evidence.stepArtifacts?.length ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Step artifact outputs\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.stepArtifacts\n .flatMap((step) =>\n step.paths\n .slice(0, 3)\n .map(\n (path) =>\n `${step.stepId}:${path.label}->${path.path}${\n step.command?.length\n ? ` cmd:${step.command.join(\" \")}`\n : \"\"\n }${\n step.stdout ? ` stdout:${step.stdout}` : \"\"\n }${step.stderr ? ` stderr:${step.stderr}` : \"\"}`,\n ),\n )\n .slice(0, 8)\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult.manifest.evidence.feed?.runs.length ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Feed generation evidence\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.feed.runs\n .slice(0, 4)\n .map(\n (run) =>\n `${run.sourceKind ?? run.schema ?? \"feed\"} ${\n run.archetype ?? \"all\"\n } trajectories:${run.trajectories ?? \"n/a\"} ticks:${\n run.totalTicks ?? \"n/a\"\n } errors:${run.errors ?? \"n/a\"} -> ${run.path}`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult.manifest.evidence.feed?.trajectorySamples\n .length ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Feed trajectory samples\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.feed.trajectorySamples\n .slice(0, 5)\n .map(\n (sample) =>\n `${sample.trajectoryId ?? \"trajectory\"} ${\n sample.archetype ?? \"archetype\"\n } scenario:${sample.scenarioId ?? \"n/a\"} score:${\n sample.score ?? \"n/a\"\n } steps:${sample.steps ?? \"n/a\"} first:${\n sample.firstStep ?? \"n/a\"\n } input:${sample.firstInput ?? \"n/a\"} output:${\n sample.firstOutput ?? \"n/a\"\n }`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult.manifest.evidence.sourceSamples &&\n Object.values(\n collectionResult.manifest.evidence.sourceSamples,\n ).flat().length > 0 ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Collection source samples\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {Object.entries(\n collectionResult.manifest.evidence.sourceSamples,\n )\n .flatMap(([category, samples]) =>\n samples.slice(0, 2).map((sample) => {\n const input =\n typeof sample.input === \"string\"\n ? sample.input\n : JSON.stringify(sample.input);\n const output =\n typeof sample.output === \"string\"\n ? sample.output\n : JSON.stringify(sample.output);\n return `${category}:${\n sample.trajectoryId ?? sample.title\n } task:${sample.task ?? \"n/a\"} model:${\n sample.model ?? \"n/a\"\n } input:${input ?? \"n/a\"} output:${output ?? \"n/a\"}`;\n }),\n )\n .slice(0, 8)\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult.manifest.evidence.evals.comparisonInventory\n ?.length ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Eval comparison evidence\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.evals.comparisonInventory\n .slice(0, 5)\n .map(\n (comparison) =>\n `${comparison.baseModel ?? \"base\"} -> ${\n comparison.trainedModel ?? \"trained\"\n } backend:${\n comparison.backend ?? \"n/a\"\n } base:${comparison.baseScore ?? \"n/a\"} trained:${\n comparison.trainedScore ?? \"n/a\"\n } improvement:${\n comparison.improvementPercent ?? \"n/a\"\n }% latency:${\n comparison.baseLatencyMs ?? \"n/a\"\n }ms->${comparison.trainedLatencyMs ?? \"n/a\"}ms report:${\n comparison.reportPath ?? comparison.path\n }`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult.manifest.evidence.benchmarks\n .improvementComparisons.length > 0 ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Benchmark improvement\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.benchmarks.improvementComparisons\n .slice(0, 5)\n .map(\n (comparison) =>\n `${comparison.tier ?? \"tier\"} ${\n comparison.benchmark ?? \"benchmark\"\n } base:${comparison.baseScore ?? \"n/a\"} trained:${\n comparison.trainedScore ?? \"n/a\"\n } improvement:${\n comparison.improvementPercent ?? \"n/a\"\n }% evidence:${\n comparison.modelBacked\n ? \"model-backed\"\n : \"partial\"\n }`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Baseline progression\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n order:\n {collectionResult.manifest.evidence.benchmarks.baselineProgress.tierOrder.join(\n \" -> \",\n )}{\" \"}\n established:\n {collectionResult.manifest.evidence.benchmarks.baselineProgress.establishedTiers.join(\n \",\",\n ) || \"none\"}{\" \"}\n next:\n {collectionResult.manifest.evidence.benchmarks\n .baselineProgress.nextTier ?? \"none\"}{\" \"}\n remaining:\n {collectionResult.manifest.evidence.benchmarks.baselineProgress.remainingTiers.join(\n \",\",\n ) || \"none\"}\n </div>\n </div>\n {collectionResult.manifest.evidence.benchmarks.caseSamples\n ?.length ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Benchmark case samples\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.benchmarks.caseSamples\n .slice(0, 5)\n .map(\n (sample) =>\n `${sample.tier ?? \"tier\"} ${\n sample.variant ?? \"variant\"\n } ${sample.caseId ?? \"case\"} pass:${\n sample.pass\n } input:${sample.prompt ?? \"n/a\"} expected:${\n sample.expectedAction ?? \"n/a\"\n } actual:${sample.actualAction ?? \"n/a\"} output:${\n sample.response ?? \"n/a\"\n } trajectory:${sample.trajectoryPath ?? \"n/a\"}`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n {collectionResult.manifest.evidence.readinessGaps.length > 0 ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Readiness gaps\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {collectionResult.manifest.evidence.readinessGaps\n .slice(0, 5)\n .map(\n (gap) =>\n `${gap.id}:${gap.status}${\n gap.recommendedCapability\n ? ` -> ${gap.recommendedCapability}`\n : \"\"\n }`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n </div>\n ) : null}\n {collectionHistory ? (\n <div className=\"mb-3 pb-2\">\n <div className=\"mb-2 flex flex-wrap items-center justify-between gap-2\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Saved collection runs\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n {collectionHistory.root}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n {collectionHistory.indexHtmlPath}\n </div>\n </div>\n <div className=\"flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId=\"collection-history-refresh\"\n label=\"Refresh collection runs\"\n group=\"collection-history\"\n description=\"Reload the saved collection runs list\"\n className={FINE_TUNING_ACTION_CLASS}\n disabled={collectionHistoryLoading}\n onClick={() => {\n void loadCollectionHistory();\n }}\n >\n {collectionHistoryLoading ? \"Refreshing\" : \"Refresh runs\"}\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"collection-history-open-index\"\n label=\"Open collection runs index\"\n group=\"collection-history\"\n description=\"Open the saved collection runs index\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(collectionHistory.indexHtmlPath),\n )\n }\n >\n Open collection index\n </AgentInlineButton>\n </div>\n </div>\n {collectionHistory.collections.length > 0 ? (\n <div className=\"grid gap-2\">\n {collectionHistory.collections.slice(0, 5).map((run) => (\n <div key={run.manifestPath} className=\"p-2\">\n <div className=\"flex flex-wrap items-start justify-between gap-2\">\n <div className=\"min-w-0\">\n <div className=\"break-all font-mono text-xs text-txt\">\n {run.generatedAt} {run.readinessStatus} ready:\n {run.readiness.ready} partial:\n {run.readiness.partial} missing:\n {run.readiness.missing}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n {run.outputDir}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n artifacts:{run.artifactCount} steps:\n {run.stepCounts.succeeded ?? 0} ok/\n {run.stepCounts.failed ?? 0} failed sources hf:\n {run.dataSources.huggingFaceDatasets} feed:\n {run.dataSources.feedDatasets} natural:\n {run.dataSources.naturalTrajectoryBundles} cases:\n {run.benchmarks.caseSamples} comparisons:\n {run.benchmarks.benchmarkComparisons} tiers:\n {run.benchmarks.tiers.join(\",\") || \"n/a\"}\n {run.benchmarks.comparisonInventory?.length\n ? ` ${run.benchmarks.comparisonInventory\n .slice(0, 2)\n .map(\n (comparison) =>\n `${comparison.tier ?? \"tier\"} ${\n comparison.benchmark ?? \"benchmark\"\n } base:${\n comparison.baseScore ?? \"n/a\"\n } trained:${\n comparison.trainedScore ?? \"n/a\"\n } reference:${\n comparison.referenceScore ?? \"n/a\"\n } improvement:${\n comparison.improvementPercent ?? \"n/a\"\n }% vs-reference:${\n comparison.trainedVsReferencePercent ??\n \"n/a\"\n }% ${\n comparison.dryRun\n ? \"dry-run\"\n : comparison.modelBacked\n ? \"model-backed\"\n : comparison.useMocks\n ? \"mocked\"\n : \"unverified\"\n }`,\n )\n .join(\" \")}`\n : \"\"}{\" \"}\n evals:{run.evals?.evalArtifacts ?? 0}{\" \"}\n eval-comparisons:\n {run.evals?.evalComparisons ?? 0}\n {run.evals?.comparisonInventory?.length\n ? ` ${run.evals.comparisonInventory\n .slice(0, 2)\n .map(\n (comparison) =>\n `${comparison.baseModel ?? \"base\"}->${\n comparison.trainedModel ?? \"trained\"\n } improvement:${\n comparison.improvementPercent ?? \"n/a\"\n }%`,\n )\n .join(\" \")}`\n : \"\"}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n baseline established:\n {run.benchmarks.baselineProgress.establishedTiers.join(\n \",\",\n ) || \"none\"}{\" \"}\n next:\n {run.benchmarks.baselineProgress.nextTier ??\n \"none\"}{\" \"}\n remaining:\n {run.benchmarks.baselineProgress.remainingTiers.join(\n \",\",\n ) || \"none\"}\n </div>\n {run.training ? (\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n models:{run.training.models} training-runs:\n {run.training.trainingRuns} inventory:\n {run.training.modelInventory.length}\n {run.training.modelInventory.length\n ? ` ${run.training.modelInventory\n .slice(0, 2)\n .map(\n (model) =>\n `${model.tier ?? \"tier\"} ${\n model.variant ?? \"variant\"\n } ${model.model ?? \"model\"} base:${\n model.baseModel ?? \"n/a\"\n } score:${\n model.baseEvalScore ?? \"n/a\"\n }->${\n model.trainedEvalScore ?? \"n/a\"\n } output:${\n model.outputPath ?? \"n/a\"\n } improvement:${\n model.evalImprovementPercent ??\n \"n/a\"\n }%`,\n )\n .join(\" \")}`\n : \"\"}\n </div>\n ) : null}\n {run.readinessGaps?.length ? (\n <>\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n gaps:{\" \"}\n {run.readinessGaps\n .slice(0, 4)\n .map(\n (gap) =>\n `${gap.id}:${gap.status}${\n gap.recommendedCapability\n ? `->${gap.recommendedCapability}`\n : \"\"\n }`,\n )\n .join(\" | \")}\n </div>\n {run.readinessGaps.some(\n (gap) => gap.recommendedCapability,\n ) ? (\n <div className=\"mt-2 flex flex-wrap gap-1\">\n {run.readinessGaps\n .filter(\n (gap) => gap.recommendedCapability,\n )\n .slice(0, 4)\n .map((gap) => (\n <AgentInlineButton\n key={`${run.manifestPath}:${gap.id}:${gap.recommendedCapability}`}\n agentId={`history-gap-${run.manifestPath}-${gap.id}`}\n label={`Run recommendation for ${gap.id}`}\n group=\"collection-history\"\n description={`Run the recommended action ${gap.recommendedCapability} for gap ${gap.id}`}\n title={`${gap.id}: ${gap.recommendedCapability}`}\n className={FINE_TUNING_ACTION_CLASS}\n disabled={\n readinessActionRunning ===\n `history:${gap.id}`\n }\n onClick={() => {\n const capability =\n gap.recommendedCapability;\n if (!capability) return;\n void handleRunReadinessRecommendation(\n `history:${gap.id}`,\n {\n label: gap.label,\n capability,\n params:\n gap.recommendedParams ?? {},\n },\n );\n }}\n >\n Run {gap.id}\n </AgentInlineButton>\n ))}\n </div>\n ) : null}\n </>\n ) : null}\n {run.coverage ? (\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n coverage samples:\n {run.coverage.readableSamples.total} hf:\n {run.coverage.dataSources.huggingFace} feed:\n {run.coverage.dataSources.feed} natural:\n {run.coverage.dataSources.natural} scenarios:\n {run.coverage.dataSources.scenarios} tests:\n {run.coverage.dataSources.tests} jsonl:\n {run.coverage.dataSources.trainingJsonl}{\" \"}\n scored-evals:\n {run.coverage.evals.scoredComparisons}/\n {run.coverage.evals.comparisons} scored-bench:\n {run.coverage.benchmarks.scoredComparisons}/\n {run.coverage.benchmarks.comparisons} all-tiers:\n {run.coverage.benchmarks.allEliza1TiersCovered\n ? \"yes\"\n : \"no\"}\n </div>\n ) : null}\n {run.sourceSamples &&\n Object.values(run.sourceSamples).flat().length >\n 0 ? (\n <div className=\"mt-1 break-all font-mono text-xs text-muted\">\n source samples:{\" \"}\n {Object.entries(run.sourceSamples)\n .flatMap(([category, samples]) =>\n samples.slice(0, 2).map((sample) => {\n const input = compactDisplayValue(\n sample.input,\n );\n const output = compactDisplayValue(\n sample.output,\n );\n return `${category}:${\n sample.trajectoryId ??\n sample.scenarioId ??\n sample.title\n } task:${\n sample.task ??\n sample.sourceKind ??\n \"n/a\"\n } input:${input || \"n/a\"} output:${\n output || \"n/a\"\n }`;\n }),\n )\n .slice(0, 8)\n .join(\" | \")}\n </div>\n ) : null}\n {run.sourceArtifacts?.length ? (\n <div className=\"mt-2 flex flex-wrap gap-1\">\n {run.sourceArtifacts\n .slice(0, 6)\n .map((artifact) => (\n <AgentInlineButton\n key={`${artifact.category}:${artifact.path}`}\n agentId={`history-source-artifact-${run.manifestPath}-${artifact.category}-${artifact.path}`}\n label={`Open source artifact ${artifact.category}:${artifact.title}`}\n group=\"collection-history\"\n description={`Open the source artifact ${artifact.path}`}\n variant=\"ghost\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(artifact.path),\n )\n }\n >\n {artifact.category}:{artifact.title}\n </AgentInlineButton>\n ))}\n </div>\n ) : null}\n {run.evidenceArtifacts?.length ? (\n <div className=\"mt-1 flex flex-wrap gap-1\">\n {run.evidenceArtifacts\n .slice(0, 6)\n .map((artifact) => (\n <AgentInlineButton\n key={`${artifact.category}:${artifact.path}`}\n agentId={`history-evidence-artifact-${run.manifestPath}-${artifact.category}-${artifact.path}`}\n label={`Open evidence artifact ${artifact.category}:${artifact.title}`}\n group=\"collection-history\"\n description={`Open the evidence artifact ${artifact.path}`}\n variant=\"ghost\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(artifact.path),\n )\n }\n >\n {artifact.category}:{artifact.title}\n </AgentInlineButton>\n ))}\n </div>\n ) : null}\n </div>\n <div className=\"flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId={`history-run-viewer-${run.manifestPath}`}\n label={`Open saved viewer for ${run.generatedAt}`}\n group=\"collection-history\"\n description=\"Open the saved collection run viewer\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(run.analysisIndexHtmlPath),\n )\n }\n >\n Open saved viewer\n </AgentInlineButton>\n <AgentInlineButton\n agentId={`history-run-summary-${run.manifestPath}`}\n label={`Open saved summary for ${run.generatedAt}`}\n group=\"collection-history\"\n description=\"Open the saved collection run summary\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(run.readmePath),\n )\n }\n >\n Open saved summary\n </AgentInlineButton>\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"font-mono text-xs text-muted\">None</div>\n )}\n </div>\n ) : null}\n {analysisIndex ? (\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Artifacts\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {analysisIndex.manifest.artifacts.length}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Viewer\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {analysisIndex.indexHtmlPath}\n </div>\n <AgentInlineButton\n agentId=\"analysis-open-viewer\"\n label=\"Open analysis viewer\"\n group=\"analysis\"\n description=\"Open the analysis index viewer\"\n className={`${FINE_TUNING_ACTION_CLASS} mt-2`}\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(analysisIndex.indexHtmlPath),\n )\n }\n >\n Open viewer\n </AgentInlineButton>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Manifest\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {analysisIndex.manifestPath}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Output\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {analysisIndex.outputDir}\n </div>\n </div>\n {analysisCoverage ? (\n <>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Source coverage\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n hf:{analysisCoverage.dataSources.huggingFace} feed:\n {analysisCoverage.dataSources.feed} natural:\n {analysisCoverage.dataSources.natural} scenarios:\n {analysisCoverage.dataSources.scenarios} tests:\n {analysisCoverage.dataSources.tests} jsonl:\n {analysisCoverage.dataSources.trainingJsonl}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Readable samples\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n total:{analysisCoverage.readableSamples.total} hf:\n {analysisCoverage.readableSamples.huggingFace} feed:\n {analysisCoverage.readableSamples.feed} natural:\n {analysisCoverage.readableSamples.natural} scenarios:\n {analysisCoverage.readableSamples.scenarios} tests:\n {analysisCoverage.readableSamples.tests} jsonl:\n {analysisCoverage.readableSamples.trainingJsonl}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Eval coverage\n </div>\n <div className=\"mt-1 font-mono text-xs text-txt\">\n evals:{analysisCoverage.evals} matrices:\n {analysisCoverage.benchmarkMatrices} models:\n {analysisCoverage.models}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Benchmark model stats\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n models:\n {analysisCoverage.benchmarkModelStats.modelCount} best:\n {analysisCoverage.benchmarkModelStats.bestModelId ??\n \"none\"}\n {analysisCoverage.benchmarkModelStats\n .bestAverageScore !== null\n ? ` avg:${analysisCoverage.benchmarkModelStats.bestAverageScore}`\n : \"\"}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Eliza-1 tier coverage\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {analysisCoverage.allEliza1TiersCovered\n ? \"all tiers covered\"\n : \"partial\"}{\" \"}\n {analysisCoverage.benchmarkTierCoverage\n .map(\n (tier) =>\n `${tier.tier}:${\n tier.hasBase ? \"base\" : \"-\"\n }/${tier.hasTrained ? \"trained\" : \"-\"}/${\n tier.hasReference ? \"ref\" : \"-\"\n }/${tier.hasImprovement ? \"improvement\" : \"-\"}`,\n )\n .join(\" \")}\n </div>\n </div>\n {analysisCoverage.benchmarkComparisons.length > 0 ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Analysis benchmark improvement\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {analysisCoverage.benchmarkComparisons\n .slice(0, 5)\n .map(\n (comparison) =>\n `${comparison.tier ?? \"tier\"} ${\n comparison.benchmark ?? \"benchmark\"\n } base:${\n comparison.baseScore ?? \"n/a\"\n } trained:${\n comparison.trainedScore ?? \"n/a\"\n } reference:${\n comparison.referenceScore ?? \"n/a\"\n } improvement:${\n comparison.improvementPercent ?? \"n/a\"\n }% vs-ref:${\n comparison.trainedVsReferencePercent ?? \"n/a\"\n }%`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n </>\n ) : null}\n </div>\n ) : (\n <div className=\"text-xs text-muted\">\n {t(\"finetuningview.NoAnalysisIndexBuilt\")}\n </div>\n )}\n </div>\n <div className={`${FINE_TUNING_PANEL_CLASS} mt-4 p-3 text-sm`}>\n <div className=\"grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end\">\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.HuggingFaceRepo\")}\n </span>\n <AgentTextField\n agentId=\"hf-repo-id\"\n label=\"HuggingFace repo\"\n group=\"hf-ingest\"\n description=\"HuggingFace dataset repo id to ingest\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={hfRepoId}\n onChange={setHfRepoId}\n placeholder=\"elizaos/eliza-1-training\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Revision\")}\n </span>\n <AgentTextField\n agentId=\"hf-revision\"\n label=\"HuggingFace revision\"\n group=\"hf-ingest\"\n description=\"Dataset revision/branch to ingest\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={hfRevision}\n onChange={setHfRevision}\n placeholder=\"main\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted md:col-span-2\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Output\")}\n </span>\n <AgentTextField\n agentId=\"hf-output-dir\"\n label=\"HuggingFace output directory\"\n group=\"hf-ingest\"\n description=\"Output directory for the ingested dataset\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={hfOutputDir}\n onChange={setHfOutputDir}\n placeholder=\"default\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted md:col-span-2 xl:col-span-4\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Files\")}\n </span>\n <AgentTextAreaField\n agentId=\"hf-files\"\n label=\"HuggingFace files\"\n group=\"hf-ingest\"\n description=\"Newline-separated dataset files to ingest\"\n className=\"min-h-24 w-full border-border/60 bg-transparent px-3 py-2 font-mono text-xs text-txt outline-none focus:border-accent\"\n value={hfFiles}\n onChange={setHfFiles}\n />\n </div>\n </div>\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"hf-dry-run\"\n label=\"HuggingFace ingest dry run\"\n group=\"hf-ingest\"\n description=\"Run the HuggingFace ingest as a dry run\"\n checked={hfDryRun}\n onChange={setHfDryRun}\n />\n {t(\"finetuningview.DryRun\")}\n </div>\n <TrainingActionButton\n agentId=\"action-ingest-hf-dataset\"\n label={t(\"finetuningview.IngestHuggingFaceDataset\")}\n group=\"huggingface\"\n description=\"Ingest the configured HuggingFace dataset files into a training dataset\"\n disabled={hfIngestRunning}\n onClick={() => {\n void handleIngestHuggingFaceDataset();\n }}\n >\n {hfIngestRunning\n ? t(\"finetuningview.Ingesting\")\n : t(\"finetuningview.IngestHuggingFaceDataset\")}\n </TrainingActionButton>\n </div>\n </div>\n {hfIngestResult && (\n <>\n <div className=\"mt-3 grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Files\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {hfIngestResult.manifest.counts.files ??\n hfIngestResult.manifest.files.length}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Rows\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {hfIngestResult.manifest.counts.jsonlRows ?? 0}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Manifest\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {hfIngestResult.manifestPath}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Output\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {hfIngestResult.outputDir}\n </div>\n </div>\n </div>\n <div className=\"mt-3 flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId=\"hf-open-manifest\"\n label=\"Open HF manifest\"\n group=\"hf-ingest\"\n description=\"Open the HuggingFace ingest manifest\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(hfIngestResult.manifestPath),\n );\n }}\n >\n Open HF manifest\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"hf-open-output\"\n label=\"Open HF output\"\n group=\"hf-ingest\"\n description=\"Open the HuggingFace ingest output directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(hfIngestResult.outputDir),\n );\n }}\n >\n Open HF output\n </AgentInlineButton>\n </div>\n </>\n )}\n </div>\n <div className={`${FINE_TUNING_PANEL_CLASS} mt-4 p-3 text-sm`}>\n <div className=\"grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end\">\n <div className=\"grid gap-3 sm:grid-cols-2 xl:grid-cols-5\">\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Archetypes\")}\n </span>\n <AgentTextField\n agentId=\"feed-archetypes\"\n label=\"Feed archetypes\"\n group=\"feed-gen\"\n description=\"Comma-separated archetypes for feed generation\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={feedArchetypes}\n onChange={setFeedArchetypes}\n placeholder=\"trader\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Agents\")}\n </span>\n <AgentTextField\n agentId=\"feed-num-agents\"\n label=\"Feed agents\"\n group=\"feed-gen\"\n description=\"Number of agents for feed generation\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={feedNumAgents}\n onChange={setFeedNumAgents}\n type=\"number\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Ticks\")}\n </span>\n <AgentTextField\n agentId=\"feed-ticks\"\n label=\"Feed ticks\"\n group=\"feed-gen\"\n description=\"Number of simulation ticks for feed generation\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={feedTicks}\n onChange={setFeedTicks}\n type=\"number\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Parallel\")}\n </span>\n <AgentTextField\n agentId=\"feed-parallel\"\n label=\"Feed parallelism\"\n group=\"feed-gen\"\n description=\"Parallelism for feed generation\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={feedParallel}\n onChange={setFeedParallel}\n type=\"number\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Output\")}\n </span>\n <AgentTextField\n agentId=\"feed-output-dir\"\n label=\"Feed output directory\"\n group=\"feed-gen\"\n description=\"Output directory for generated feed trajectories\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={feedOutputDir}\n onChange={setFeedOutputDir}\n placeholder=\"default\"\n />\n </div>\n </div>\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"feed-cleanup\"\n label=\"Feed cleanup\"\n group=\"feed-gen\"\n description=\"Clean up intermediate feed artifacts\"\n checked={feedCleanup}\n onChange={setFeedCleanup}\n />\n {t(\"finetuningview.Cleanup\")}\n </div>\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"feed-dry-run\"\n label=\"Feed generation dry run\"\n group=\"feed-gen\"\n description=\"Run feed generation as a dry run\"\n checked={feedDryRun}\n onChange={setFeedDryRun}\n />\n {t(\"finetuningview.DryRun\")}\n </div>\n <TrainingActionButton\n agentId=\"action-generate-feed-trajectories\"\n label={t(\"finetuningview.GenerateFeedTrajectories\")}\n group=\"feed\"\n description=\"Generate feed simulation trajectories for the configured archetypes\"\n disabled={feedGenerationRunning}\n onClick={() => {\n void handleRunFeedGeneration();\n }}\n >\n {feedGenerationRunning\n ? t(\"finetuningview.Generating\")\n : t(\"finetuningview.GenerateFeedTrajectories\")}\n </TrainingActionButton>\n </div>\n </div>\n {feedGenerationResult && (\n <>\n <div className=\"mt-3 grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.ExitCode\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {feedGenerationResult.exitCode}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Output\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {feedGenerationResult.outputDir}\n </div>\n </div>\n <div className=\"md:col-span-2\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Command\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {feedGenerationResult.command.join(\" \")}\n </div>\n </div>\n {feedGenerationResult.artifacts.length > 0 ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Feed artifacts\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {feedGenerationResult.artifacts\n .map(\n (artifact) =>\n `${artifact.schema ?? \"feed\"}${\n artifact.sourceKind\n ? ` source:${artifact.sourceKind}`\n : \"\"\n } trajectories:${\n artifact.trajectories ?? \"n/a\"\n } manifest:${artifact.manifestPath}${\n artifact.exportPath\n ? ` export:${artifact.exportPath}`\n : \"\"\n }${\n artifact.outputDir\n ? ` output:${artifact.outputDir}`\n : \"\"\n }`,\n )\n .join(\" | \")}\n </div>\n </div>\n ) : null}\n </div>\n <div className=\"mt-3 flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId=\"feed-open-output\"\n label=\"Open feed output\"\n group=\"feed-gen\"\n description=\"Open the feed generation output directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(feedGenerationResult.outputDir),\n );\n }}\n >\n Open feed output\n </AgentInlineButton>\n {feedGenerationResult.artifacts[0]?.manifestPath ? (\n <AgentInlineButton\n agentId=\"feed-open-manifest\"\n label=\"Open feed manifest\"\n group=\"feed-gen\"\n description=\"Open the feed generation manifest\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(\n feedGenerationResult.artifacts[0].manifestPath,\n ),\n );\n }}\n >\n Open feed manifest\n </AgentInlineButton>\n ) : null}\n {feedGenerationResult.artifacts[0]?.exportPath ? (\n <AgentInlineButton\n agentId=\"feed-open-export\"\n label=\"Open feed export\"\n group=\"feed-gen\"\n description=\"Open the feed generation export\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n const exportPath =\n feedGenerationResult.artifacts[0]?.exportPath;\n if (!exportPath) return;\n void openExternalUrl(localViewerUrl(exportPath));\n }}\n >\n Open feed export\n </AgentInlineButton>\n ) : null}\n </div>\n </>\n )}\n </div>\n <div className={`${FINE_TUNING_PANEL_CLASS} mt-4 p-3 text-sm`}>\n <div className=\"grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end\">\n <div className=\"grid gap-3 sm:grid-cols-2 xl:grid-cols-4\">\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Scenario\")}\n </span>\n <AgentTextField\n agentId=\"scenario-filter\"\n label=\"Scenario filter\"\n group=\"scenarios\"\n description=\"Filter expression to select scenarios to run\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={scenarioFilter}\n onChange={setScenarioFilter}\n placeholder=\"deterministic-pr-smoke\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted sm:col-span-2\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Output\")}\n </span>\n <AgentTextField\n agentId=\"scenario-output-dir\"\n label=\"Scenario output directory\"\n group=\"scenarios\"\n description=\"Output directory for scenario results\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={scenarioOutputDir}\n onChange={setScenarioOutputDir}\n placeholder=\"default\"\n />\n </div>\n </div>\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"scenario-export-native\"\n label=\"Export native trajectories\"\n group=\"scenarios\"\n description=\"Export native trajectories from scenario runs\"\n checked={scenarioExportNative}\n onChange={setScenarioExportNative}\n />\n {t(\"finetuningview.ExportNative\")}\n </div>\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"scenario-deterministic-proxy\"\n label=\"Deterministic proxy\"\n group=\"scenarios\"\n description=\"Use a deterministic proxy for scenario runs\"\n checked={scenarioDeterministicProxy}\n onChange={setScenarioDeterministicProxy}\n />\n {t(\"finetuningview.Proxy\")}\n </div>\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"scenario-dry-run\"\n label=\"Scenario dry run\"\n group=\"scenarios\"\n description=\"Run the scenario suite as a dry run\"\n checked={scenarioDryRun}\n onChange={setScenarioDryRun}\n />\n {t(\"finetuningview.DryRun\")}\n </div>\n <TrainingActionButton\n agentId=\"action-run-scenarios\"\n label={t(\"finetuningview.RunScenarios\")}\n group=\"scenarios\"\n description=\"Run the configured scenario suite and export native trajectories\"\n disabled={scenarioRunning}\n onClick={() => {\n void handleRunScenarios();\n }}\n >\n {scenarioRunning\n ? t(\"finetuningview.RunningScenarios\")\n : t(\"finetuningview.RunScenarios\")}\n </TrainingActionButton>\n </div>\n </div>\n {scenarioResult && (\n <>\n <div className=\"mt-3 grid gap-3 md:grid-cols-2 xl:grid-cols-5\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.ExitCode\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {scenarioResult.exitCode}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Matrix\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {scenarioResult.matrixPath}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Viewer\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {scenarioResult.viewerHtmlPath}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.NativeJsonl\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {scenarioResult.nativeJsonlPath ?? \"n/a\"}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Command\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {scenarioResult.command.join(\" \")}\n </div>\n </div>\n </div>\n <div className=\"mt-3 flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId=\"scenario-open-viewer\"\n label=\"Open scenario viewer\"\n group=\"scenarios\"\n description=\"Open the scenario results viewer\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(scenarioResult.viewerHtmlPath),\n );\n }}\n >\n Open scenario viewer\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"scenario-open-matrix\"\n label=\"Open scenario matrix\"\n group=\"scenarios\"\n description=\"Open the scenario results matrix\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(scenarioResult.matrixPath),\n );\n }}\n >\n Open scenario matrix\n </AgentInlineButton>\n {scenarioResult.nativeJsonlPath ? (\n <AgentInlineButton\n agentId=\"scenario-open-native-jsonl\"\n label=\"Open native JSONL\"\n group=\"scenarios\"\n description=\"Open the scenario native JSONL export\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n if (scenarioResult.nativeJsonlPath) {\n void openExternalUrl(\n localViewerUrl(scenarioResult.nativeJsonlPath),\n );\n }\n }}\n >\n Open native JSONL\n </AgentInlineButton>\n ) : null}\n <AgentInlineButton\n agentId=\"scenario-open-output\"\n label=\"Open scenario output\"\n group=\"scenarios\"\n description=\"Open the scenario output directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(scenarioResult.outputDir),\n );\n }}\n >\n Open scenario output\n </AgentInlineButton>\n </div>\n </>\n )}\n </div>\n <div className={`${FINE_TUNING_PANEL_CLASS} mt-4 p-3 text-sm`}>\n <div className=\"grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end\">\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-5\">\n <div className=\"space-y-1 text-xs text-muted md:col-span-2\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Manifest\")}\n </span>\n <AgentTextField\n agentId=\"eval-manifest-path\"\n label=\"Eval manifest path\"\n group=\"eval-comparison\"\n description=\"Training manifest path for the eval comparison\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={evalComparisonManifestPath}\n onChange={setEvalComparisonManifestPath}\n placeholder=\"training manifest path\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.BaseModel\")}\n </span>\n <AgentTextField\n agentId=\"eval-base-model\"\n label=\"Eval base model\"\n group=\"eval-comparison\"\n description=\"Base model id for the eval comparison\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={evalComparisonBaseModel}\n onChange={setEvalComparisonBaseModel}\n placeholder=\"eliza-1-2b-base\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.TrainedModel\")}\n </span>\n <AgentTextField\n agentId=\"eval-trained-model\"\n label=\"Eval trained model\"\n group=\"eval-comparison\"\n description=\"Trained model path for the eval comparison\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={evalComparisonTrainedModelPath}\n onChange={setEvalComparisonTrainedModelPath}\n placeholder=\"eliza-1-2b-trained\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Backend\")}\n </span>\n <AgentNativeSelect\n agentId=\"eval-backend\"\n label=\"Eval backend\"\n group=\"eval-comparison\"\n description=\"Compute backend for the eval comparison\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={evalComparisonBackend}\n onChange={(value) =>\n setEvalComparisonBackend(value as \"cpu\" | \"mlx\" | \"cuda\")\n }\n options={[\"cpu\", \"mlx\", \"cuda\"]}\n >\n <option value=\"cpu\">cpu</option>\n <option value=\"mlx\">mlx</option>\n <option value=\"cuda\">cuda</option>\n </AgentNativeSelect>\n </div>\n <div className=\"space-y-1 text-xs text-muted md:col-span-2 xl:col-span-5\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Output\")}\n </span>\n <AgentTextField\n agentId=\"eval-output-dir\"\n label=\"Eval output directory\"\n group=\"eval-comparison\"\n description=\"Output directory for the eval comparison\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={evalComparisonOutputDir}\n onChange={setEvalComparisonOutputDir}\n placeholder=\"default\"\n />\n </div>\n </div>\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"eval-include-in-collection\"\n label=\"Include eval in collection\"\n group=\"eval-comparison\"\n description=\"Include the eval comparison in the collection run\"\n checked={evalComparisonEnabled}\n onChange={setEvalComparisonEnabled}\n />\n {t(\"finetuningview.IncludeInCollection\")}\n </div>\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"eval-dry-run\"\n label=\"Eval comparison dry run\"\n group=\"eval-comparison\"\n description=\"Run the eval comparison as a dry run\"\n checked={evalComparisonDryRun}\n onChange={setEvalComparisonDryRun}\n />\n {t(\"finetuningview.DryRun\")}\n </div>\n <TrainingActionButton\n agentId=\"action-run-eval-comparison\"\n label={t(\"finetuningview.RunEvalComparison\")}\n group=\"eval-comparison\"\n description=\"Run a local eval comparison between the base and trained models\"\n disabled={evalComparisonRunning}\n onClick={() => {\n void handleRunEvalComparison();\n }}\n >\n {evalComparisonRunning\n ? t(\"finetuningview.Evaluating\")\n : t(\"finetuningview.RunEvalComparison\")}\n </TrainingActionButton>\n </div>\n </div>\n {evalComparisonResult && (\n <>\n <div className=\"mt-3 grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.ExitCode\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {evalComparisonResult.exitCode}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Artifact\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {evalComparisonResult.artifactPath}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Report\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {evalComparisonResult.reportPath}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Command\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {evalComparisonResult.command.join(\" \")}\n </div>\n </div>\n {formatEvalComparisonSummary(evalComparisonResult) ? (\n <div className=\"md:col-span-2 xl:col-span-4\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n Eval metrics\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {formatEvalComparisonSummary(evalComparisonResult)}\n </div>\n </div>\n ) : null}\n </div>\n <div className=\"mt-3 flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId=\"eval-open-artifact\"\n label=\"Open eval artifact\"\n group=\"eval-comparison\"\n description=\"Open the eval comparison artifact\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(evalComparisonResult.artifactPath),\n );\n }}\n >\n Open eval artifact\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"eval-open-report\"\n label=\"Open eval report\"\n group=\"eval-comparison\"\n description=\"Open the eval comparison report\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(evalComparisonResult.reportPath),\n );\n }}\n >\n Open eval report\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"eval-open-output\"\n label=\"Open eval output\"\n group=\"eval-comparison\"\n description=\"Open the eval comparison output directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(evalComparisonResult.outputDir),\n );\n }}\n >\n Open eval output\n </AgentInlineButton>\n </div>\n </>\n )}\n </div>\n <div className=\"mt-4 grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end\">\n <div className=\"grid gap-3 sm:grid-cols-2 xl:grid-cols-5\">\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Tiers\")}\n </span>\n <AgentTextField\n agentId=\"benchmark-tiers\"\n label=\"Benchmark tiers\"\n group=\"benchmark\"\n description=\"Comma-separated benchmark tiers to run\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={benchmarkTiers}\n onChange={setBenchmarkTiers}\n placeholder={ELIZA_ONE_BENCHMARK_TIER_LIST}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Benchmark\")}\n </span>\n <AgentNativeSelect\n agentId=\"benchmark-kind\"\n label=\"Benchmark kind\"\n group=\"benchmark\"\n description=\"Which benchmark suite to run\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={benchmarkKind}\n onChange={(value) =>\n setBenchmarkKind(\n value as\n | \"eliza_harness_action_selection\"\n | \"hermes\"\n | \"clawbench\"\n | \"all\",\n )\n }\n options={[\n \"eliza_harness_action_selection\",\n \"hermes\",\n \"clawbench\",\n \"all\",\n ]}\n >\n <option value=\"eliza_harness_action_selection\">\n eliza_harness_action_selection\n </option>\n <option value=\"hermes\">hermes</option>\n <option value=\"clawbench\">clawbench</option>\n <option value=\"all\">all</option>\n </AgentNativeSelect>\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Variants\")}\n </span>\n <AgentNativeSelect\n agentId=\"benchmark-variants\"\n label=\"Benchmark variants\"\n group=\"benchmark\"\n description=\"Which model variants to benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={benchmarkVariants}\n onChange={(value) =>\n setBenchmarkVariants(value as \"trained\" | \"base\" | \"both\")\n }\n options={[\"both\", \"base\", \"trained\"]}\n >\n <option value=\"both\">both</option>\n <option value=\"base\">base</option>\n <option value=\"trained\">trained</option>\n </AgentNativeSelect>\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.MaxSamples\")}\n </span>\n <AgentTextField\n agentId=\"benchmark-max-samples\"\n label=\"Benchmark max samples\"\n group=\"benchmark\"\n description=\"Maximum samples per benchmark run\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={benchmarkMaxSamples}\n onChange={setBenchmarkMaxSamples}\n type=\"number\"\n placeholder=\"50\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.ResultsDb\")}\n </span>\n <AgentTextField\n agentId=\"benchmark-results-db\"\n label=\"Benchmark results DB\"\n group=\"benchmark\"\n description=\"Path to the benchmark results database\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={benchmarkResultsDb}\n onChange={setBenchmarkResultsDb}\n placeholder=\"default\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted sm:col-span-2 xl:col-span-2\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.TrainedModelPath\")}\n </span>\n <AgentTextField\n agentId=\"benchmark-trained-model-path\"\n label=\"Benchmark trained model path\"\n group=\"benchmark\"\n description=\"Path to the trained model for benchmarking\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={benchmarkTrainedModelPath}\n onChange={setBenchmarkTrainedModelPath}\n placeholder=\"packages/training/checkpoints/eliza-1-2b/final\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.MatrixOutput\")}\n </span>\n <AgentTextField\n agentId=\"benchmark-matrix-output\"\n label=\"Benchmark matrix output\"\n group=\"benchmark\"\n description=\"Output directory for the benchmark matrix\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={benchmarkMatrixOutputDir}\n onChange={setBenchmarkMatrixOutputDir}\n placeholder=\"default\"\n />\n </div>\n </div>\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"benchmark-dry-run\"\n label=\"Benchmark dry run\"\n group=\"benchmark\"\n description=\"Run the benchmark suite as a dry run\"\n checked={benchmarkDryRun}\n onChange={setBenchmarkDryRun}\n />\n {t(\"finetuningview.DryRun\")}\n </div>\n <TrainingActionButton\n agentId=\"action-run-benchmark-vs-cerebras\"\n label={t(\"finetuningview.RunBenchmarkVsCerebras\")}\n group=\"benchmark\"\n description=\"Run the benchmark-vs-Cerebras suite for the configured tiers and variants\"\n disabled={benchmarkRunning}\n onClick={() => {\n void handleRunBenchmarkVsCerebras();\n }}\n >\n {benchmarkRunning\n ? t(\"finetuningview.RunningBenchmark\")\n : t(\"finetuningview.RunBenchmarkVsCerebras\")}\n </TrainingActionButton>\n </div>\n </div>\n {benchmarkResult && (\n <div className={`${FINE_TUNING_PANEL_CLASS} mt-3 p-3 text-sm`}>\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.ExitCode\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {benchmarkResult.exitCode}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.ResultsDb\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {benchmarkResult.resultsDb ?? t(\"finetuningview.None\")}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.MatrixOutput\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {benchmarkResult.matrixOutputDir ??\n t(\"finetuningview.None\")}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.MatrixArtifact\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {benchmarkResult.matrixArtifactPath ??\n t(\"finetuningview.None\")}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Output\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {benchmarkResult.outputDir}\n </div>\n </div>\n </div>\n <div className=\"mt-3\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Command\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {benchmarkResult.command.join(\" \")}\n </div>\n </div>\n <div className=\"mt-3 flex flex-wrap gap-2\">\n {benchmarkResult.matrixArtifactPath ? (\n <AgentInlineButton\n agentId=\"benchmark-open-matrix-artifact\"\n label=\"Open matrix artifact\"\n group=\"benchmark\"\n description=\"Open the benchmark matrix artifact\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n if (benchmarkResult.matrixArtifactPath) {\n void openExternalUrl(\n localViewerUrl(benchmarkResult.matrixArtifactPath),\n );\n }\n }}\n >\n Open matrix artifact\n </AgentInlineButton>\n ) : null}\n {benchmarkResult.outputDir ? (\n <AgentInlineButton\n agentId=\"benchmark-open-output\"\n label=\"Open benchmark output\"\n group=\"benchmark\"\n description=\"Open the benchmark output directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(benchmarkResult.outputDir),\n );\n }}\n >\n Open benchmark output\n </AgentInlineButton>\n ) : null}\n </div>\n </div>\n )}\n <div className=\"mt-4 grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end\">\n <div className=\"grid gap-3 sm:grid-cols-2 xl:grid-cols-5\">\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.BundleRepo\")}\n </span>\n <AgentTextField\n agentId=\"bundle-repo-id\"\n label=\"Bundle repo\"\n group=\"bundle-stage\"\n description=\"HuggingFace repo id for the bundle\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={bundleStageRepoId}\n onChange={setBundleStageRepoId}\n placeholder=\"elizaos/eliza-1\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.BundleTier\")}\n </span>\n <AgentNativeSelect\n agentId=\"bundle-tier\"\n label=\"Bundle tier\"\n group=\"bundle-stage\"\n description=\"Model tier to stage\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={bundleStageTier}\n onChange={setBundleStageTier}\n options={[\"2b\", \"4b\", \"9b\", \"27b\", \"27b-256k\"]}\n >\n <option value=\"2b\">2b</option>\n <option value=\"4b\">4b</option>\n <option value=\"9b\">9b</option>\n <option value=\"27b\">27b</option>\n <option value=\"27b-256k\">27b-256k</option>\n </AgentNativeSelect>\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.LocalDir\")}\n </span>\n <AgentTextField\n agentId=\"bundle-local-dir\"\n label=\"Bundle local directory\"\n group=\"bundle-stage\"\n description=\"Local directory to stage the bundle into\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={bundleStageLocalDir}\n onChange={setBundleStageLocalDir}\n placeholder=\"/tmp/eliza-1-bundles\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.MaxBytes\")}\n </span>\n <AgentTextField\n agentId=\"bundle-max-bytes\"\n label=\"Bundle max bytes\"\n group=\"bundle-stage\"\n description=\"Maximum bytes to stage for the bundle\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={bundleStageMaxBytes}\n onChange={setBundleStageMaxBytes}\n type=\"number\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted sm:col-span-2 xl:col-span-1\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.ManifestOutput\")}\n </span>\n <AgentTextField\n agentId=\"bundle-output-dir\"\n label=\"Bundle manifest output\"\n group=\"bundle-stage\"\n description=\"Output directory for the bundle manifest\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={bundleStageOutputDir}\n onChange={setBundleStageOutputDir}\n placeholder=\"default\"\n />\n </div>\n </div>\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"bundle-apply\"\n label=\"Apply bundle\"\n group=\"bundle-stage\"\n description=\"Apply the staged bundle\"\n checked={bundleStageApply}\n onChange={setBundleStageApply}\n />\n {t(\"finetuningview.Apply\")}\n </div>\n <TrainingActionButton\n agentId=\"action-stage-eliza1-bundle\"\n label={t(\"finetuningview.StageEliza1Bundle\")}\n group=\"bundle\"\n description=\"Stage the Eliza-1 model bundle for the configured repo and tier\"\n disabled={bundleStageRunning}\n onClick={() => {\n void handleStageEliza1Bundle();\n }}\n >\n {bundleStageRunning\n ? t(\"finetuningview.StagingBundle\")\n : t(\"finetuningview.StageEliza1Bundle\")}\n </TrainingActionButton>\n </div>\n </div>\n {bundleStageResult && (\n <div className={`${FINE_TUNING_PANEL_CLASS} mt-3 p-3 text-sm`}>\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.ExitCode\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {bundleStageResult.exitCode}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.PlannedBytes\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {String(\n bundleStageResult.plan?.plannedBytes ??\n t(\"finetuningview.None\"),\n )}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.FileCount\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {String(\n bundleStageResult.plan?.fileCount ??\n t(\"finetuningview.None\"),\n )}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.BundleDir\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {String(\n bundleStageResult.plan?.bundleDir ??\n t(\"finetuningview.None\"),\n )}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Manifest\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {bundleStageResult.manifestPath}\n </div>\n </div>\n </div>\n <div className=\"mt-3\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Command\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {bundleStageResult.command.join(\" \")}\n </div>\n </div>\n <div className=\"mt-3 flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId=\"bundle-open-manifest\"\n label=\"Open bundle manifest\"\n group=\"bundle-stage\"\n description=\"Open the bundle manifest\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(bundleStageResult.manifestPath),\n );\n }}\n >\n Open bundle manifest\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"bundle-open-output\"\n label=\"Open bundle output\"\n group=\"bundle-stage\"\n description=\"Open the bundle output directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(bundleStageResult.outputDir),\n );\n }}\n >\n Open bundle output\n </AgentInlineButton>\n {bundleStageResult.plan?.bundleDir ? (\n <AgentInlineButton\n agentId=\"bundle-open-dir\"\n label=\"Open bundle directory\"\n group=\"bundle-stage\"\n description=\"Open the staged bundle directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n const bundleDir =\n typeof bundleStageResult.plan?.bundleDir === \"string\"\n ? bundleStageResult.plan.bundleDir\n : null;\n if (!bundleDir) return;\n void openExternalUrl(localViewerUrl(bundleDir));\n }}\n >\n Open bundle dir\n </AgentInlineButton>\n ) : null}\n </div>\n </div>\n )}\n <div className=\"mt-4 grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-end\">\n <div className=\"grid gap-3 sm:grid-cols-2 xl:grid-cols-4\">\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.ActionBenchmarkFilter\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-filter\"\n label=\"Action benchmark filter\"\n group=\"action-benchmark\"\n description=\"Case id filter for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkFilter}\n onChange={setActionBenchmarkFilter}\n placeholder=\"case-id[,case-id]\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.RunsPerCase\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-runs-per-case\"\n label=\"Action benchmark runs per case\"\n group=\"action-benchmark\"\n description=\"Number of runs per benchmark case\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkRunsPerCase}\n onChange={setActionBenchmarkRunsPerCase}\n type=\"number\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted sm:col-span-2\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Output\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-output-dir\"\n label=\"Action benchmark output directory\"\n group=\"action-benchmark\"\n description=\"Output directory for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkOutputDir}\n onChange={setActionBenchmarkOutputDir}\n placeholder=\"default\"\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Model\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-model-id\"\n label=\"Action benchmark model\"\n group=\"action-benchmark\"\n description=\"Model id for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkModelId}\n onChange={setActionBenchmarkModelId}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.BaseModel\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-base-model-id\"\n label=\"Action benchmark base model\"\n group=\"action-benchmark\"\n description=\"Base model id for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkBaseModelId}\n onChange={setActionBenchmarkBaseModelId}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.CollectionTiers\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-pair-tiers\"\n label=\"Action benchmark collection tiers\"\n group=\"action-benchmark\"\n description=\"Collection tiers for the paired action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkPairTiers}\n onChange={setActionBenchmarkPairTiers}\n placeholder={`${ELIZA_ONE_BENCHMARK_TIER_LIST} or all`}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.RuntimeModel\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-runtime-model\"\n label=\"Action benchmark runtime model\"\n group=\"action-benchmark\"\n description=\"Runtime model for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkRuntimeModel}\n onChange={setActionBenchmarkRuntimeModel}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.BaseRuntimeModel\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-base-runtime-model\"\n label=\"Action benchmark base runtime model\"\n group=\"action-benchmark\"\n description=\"Base runtime model for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkBaseRuntimeModel}\n onChange={setActionBenchmarkBaseRuntimeModel}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Provider\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-provider\"\n label=\"Action benchmark provider\"\n group=\"action-benchmark\"\n description=\"Provider for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkProvider}\n onChange={setActionBenchmarkProvider}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.BaseUrl\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-base-url\"\n label=\"Action benchmark base URL\"\n group=\"action-benchmark\"\n description=\"Base URL for the action benchmark provider\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkBaseUrl}\n onChange={setActionBenchmarkBaseUrl}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Variant\")}\n </span>\n <AgentNativeSelect\n agentId=\"action-benchmark-variant\"\n label=\"Action benchmark variant\"\n group=\"action-benchmark\"\n description=\"Model variant for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkVariant}\n onChange={(value) =>\n setActionBenchmarkVariant(\n value as \"reference\" | \"base\" | \"trained\",\n )\n }\n options={[\"trained\", \"base\", \"reference\"]}\n >\n <option value=\"trained\">trained</option>\n <option value=\"base\">base</option>\n <option value=\"reference\">reference</option>\n </AgentNativeSelect>\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Tier\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-tier\"\n label=\"Action benchmark tier\"\n group=\"action-benchmark\"\n description=\"Tier for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkTier}\n onChange={setActionBenchmarkTier}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.Benchmark\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-matrix-benchmark\"\n label=\"Action benchmark name\"\n group=\"action-benchmark\"\n description=\"Benchmark name for the action benchmark matrix\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkMatrixBenchmark}\n onChange={setActionBenchmarkMatrixBenchmark}\n />\n </div>\n <div className=\"space-y-1 text-xs text-muted sm:col-span-2\">\n <span className=\"font-semibold uppercase tracking-[0.14em]\">\n {t(\"finetuningview.DatasetVersion\")}\n </span>\n <AgentTextField\n agentId=\"action-benchmark-dataset-version\"\n label=\"Action benchmark dataset version\"\n group=\"action-benchmark\"\n description=\"Dataset version for the action benchmark\"\n className={AGENT_FIELD_INPUT_CLASS}\n value={actionBenchmarkDatasetVersion}\n onChange={setActionBenchmarkDatasetVersion}\n />\n </div>\n </div>\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"action-benchmark-pair-enabled\"\n label=\"Pair base and trained\"\n group=\"action-benchmark\"\n description=\"Pair base and trained variants in the action benchmark\"\n checked={actionBenchmarkPairEnabled}\n onChange={setActionBenchmarkPairEnabled}\n />\n {t(\"finetuningview.PairBaseTrained\")}\n </div>\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"action-benchmark-use-mocks\"\n label=\"Use mocks\"\n group=\"action-benchmark\"\n description=\"Use mocked responses in the action benchmark\"\n checked={actionBenchmarkUseMocks}\n onChange={setActionBenchmarkUseMocks}\n />\n {t(\"finetuningview.UseMocks\")}\n </div>\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"action-benchmark-capture\"\n label=\"Capture trajectories\"\n group=\"action-benchmark\"\n description=\"Capture trajectories during the action benchmark\"\n checked={actionBenchmarkCapture}\n onChange={setActionBenchmarkCapture}\n />\n {t(\"finetuningview.CaptureTrajectories\")}\n </div>\n <div className=\"flex h-10 items-center gap-2 px-1 text-xs font-semibold uppercase tracking-[0.14em] text-muted\">\n <AgentCheckboxField\n agentId=\"action-benchmark-dry-run\"\n label=\"Action benchmark dry run\"\n group=\"action-benchmark\"\n description=\"Run the action benchmark as a dry run\"\n checked={actionBenchmarkDryRun}\n onChange={setActionBenchmarkDryRun}\n />\n {t(\"finetuningview.DryRun\")}\n </div>\n <TrainingActionButton\n agentId=\"action-run-action-benchmark\"\n label={t(\"finetuningview.RunActionBenchmark\")}\n group=\"action-benchmark\"\n description=\"Run the action-selection benchmark for the configured model and tier\"\n disabled={actionBenchmarkRunning}\n onClick={() => {\n void handleRunActionBenchmark();\n }}\n >\n {actionBenchmarkRunning\n ? t(\"finetuningview.RunningBenchmark\")\n : t(\"finetuningview.RunActionBenchmark\")}\n </TrainingActionButton>\n </div>\n </div>\n {actionBenchmarkResult && (\n <div className={`${FINE_TUNING_PANEL_CLASS} mt-3 p-3 text-sm`}>\n <div className=\"grid gap-3 md:grid-cols-2 xl:grid-cols-4\">\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.ExitCode\")}\n </div>\n <div className=\"mt-1 font-mono text-txt\">\n {actionBenchmarkResult.exitCode}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Report\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {actionBenchmarkResult.reportJsonPath}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Trajectories\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {actionBenchmarkResult.trajectoryDir}\n </div>\n </div>\n <div>\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Output\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {actionBenchmarkResult.outputDir}\n </div>\n </div>\n </div>\n <div className=\"mt-3\">\n <div className=\"text-xs-tight font-semibold uppercase tracking-[0.14em] text-muted/70\">\n {t(\"finetuningview.Command\")}\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-txt\">\n {actionBenchmarkResult.command.join(\" \")}\n </div>\n </div>\n <div className=\"mt-3 flex flex-wrap gap-2\">\n <AgentInlineButton\n agentId=\"action-benchmark-open-report\"\n label=\"Open action report\"\n group=\"action-benchmark\"\n description=\"Open the action benchmark report\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(actionBenchmarkResult.reportJsonPath),\n );\n }}\n >\n Open action report\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"action-benchmark-open-summary\"\n label=\"Open action summary\"\n group=\"action-benchmark\"\n description=\"Open the action benchmark summary\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(actionBenchmarkResult.reportMarkdownPath),\n );\n }}\n >\n Open action summary\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"action-benchmark-open-trajectories\"\n label=\"Open action trajectories\"\n group=\"action-benchmark\"\n description=\"Open the action benchmark trajectories directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(actionBenchmarkResult.trajectoryDir),\n );\n }}\n >\n Open action trajectories\n </AgentInlineButton>\n <AgentInlineButton\n agentId=\"action-benchmark-open-output\"\n label=\"Open action output\"\n group=\"action-benchmark\"\n description=\"Open the action benchmark output directory\"\n className={FINE_TUNING_ACTION_CLASS}\n onClick={() => {\n void openExternalUrl(\n localViewerUrl(actionBenchmarkResult.outputDir),\n );\n }}\n >\n Open action output\n </AgentInlineButton>\n </div>\n </div>\n )}\n </section>\n\n <DatasetSection\n buildLimit={buildLimit}\n setBuildLimit={setBuildLimit}\n buildMinCalls={buildMinCalls}\n setBuildMinCalls={setBuildMinCalls}\n datasetBuilding={datasetBuilding}\n onBuildDataset={onBuildDataset}\n onRefreshDatasets={onRefreshDatasets}\n datasets={datasets}\n selectedDatasetId={selectedDatasetId}\n setSelectedDatasetId={setSelectedDatasetId}\n t={t}\n />\n\n <TrainingJobsSection\n selectedDatasetId={selectedDatasetId}\n setSelectedDatasetId={setSelectedDatasetId}\n datasets={datasets}\n startBackend={startBackend}\n setStartBackend={setStartBackend}\n startModel={startModel}\n setStartModel={setStartModel}\n startIterations={startIterations}\n setStartIterations={setStartIterations}\n startBatchSize={startBatchSize}\n setStartBatchSize={setStartBatchSize}\n startLearningRate={startLearningRate}\n setStartLearningRate={setStartLearningRate}\n startingJob={startingJob}\n activeRunningJob={activeRunningJob}\n onStartJob={onStartJob}\n onRefreshJobs={onRefreshJobs}\n jobs={jobs}\n selectedJobId={selectedJobId}\n setSelectedJobId={setSelectedJobId}\n cancellingJobId={cancellingJobId}\n onCancelJob={onCancelJob}\n selectedJob={selectedJob}\n t={t}\n />\n\n <TrainedModelsSection\n models={models}\n selectedModelId={selectedModelId}\n setSelectedModelId={setSelectedModelId}\n selectedModel={selectedModel}\n importModelName={importModelName}\n setImportModelName={setImportModelName}\n importBaseModel={importBaseModel}\n setImportBaseModel={setImportBaseModel}\n importOllamaUrl={importOllamaUrl}\n setImportOllamaUrl={setImportOllamaUrl}\n activateProviderModel={activateProviderModel}\n setActivateProviderModel={setActivateProviderModel}\n modelAction={modelAction}\n smokeResult={smokeResult}\n onImport={onImportModel}\n onActivate={onActivateModel}\n onBenchmark={onBenchmarkModel}\n onSmokeTest={onSmokeTestModel}\n t={t}\n />\n\n <LiveEventsPanel events={trainingEvents} t={t} />\n </div>\n </ContentLayout>\n );\n}\n\nfunction formatDashboardNumber(value: number | null | undefined): string {\n return typeof value === \"number\" && Number.isFinite(value)\n ? value.toLocaleString()\n : \"0\";\n}\n\nfunction FineTuningDetailMetric({\n label,\n value,\n}: {\n label: string;\n value: string;\n}) {\n return (\n <div className=\"min-w-0 rounded-md border border-border/45 bg-card/35 p-3\">\n <div className=\"text-[10px] uppercase tracking-[0.14em] text-muted\">\n {label}\n </div>\n <div className=\"mt-1 truncate text-sm font-semibold text-foreground\">\n {value}\n </div>\n </div>\n );\n}\n\nexport function FineTuningDetailExtension({ app }: AppDetailExtensionProps) {\n const [history, setHistory] =\n useState<ListTrainingCollectionsResponse | null>(null);\n const [loading, setLoading] = useState(false);\n const [runningGapId, setRunningGapId] = useState<string | null>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const refreshCollections = useCallback(async () => {\n setLoading(true);\n setErrorMessage(null);\n try {\n setHistory(await client.listTrainingCollections({ limit: 3 }));\n } catch (err) {\n setErrorMessage(err instanceof Error ? err.message : String(err));\n } finally {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n void refreshCollections();\n }, [refreshCollections]);\n\n const runGapRecommendation = useCallback(\n async (\n gap: NonNullable<\n ListTrainingCollectionsResponse[\"collections\"][number][\"readinessGaps\"]\n >[number],\n ) => {\n if (!gap.recommendedCapability) return;\n setRunningGapId(gap.id);\n setErrorMessage(null);\n try {\n await interact(gap.recommendedCapability, gap.recommendedParams ?? {});\n await refreshCollections();\n } catch (err) {\n setErrorMessage(err instanceof Error ? err.message : String(err));\n } finally {\n setRunningGapId(null);\n }\n },\n [refreshCollections],\n );\n\n const latest = history?.collections[0] ?? null;\n const coverage = latest?.coverage;\n const dataSources = latest\n ? Object.values(latest.dataSources).reduce((sum, count) => sum + count, 0)\n : 0;\n const readableSamples = coverage?.readableSamples.total ?? 0;\n const scoredComparisons =\n coverage?.benchmarks.scoredComparisons ??\n latest?.benchmarks.benchmarkComparisons ??\n 0;\n const modelCount =\n coverage?.models.inventoryCount ?? coverage?.models.artifacts ?? 0;\n const baseline = latest?.benchmarks.baselineProgress;\n const topGaps = latest?.readinessGaps.slice(0, 3) ?? [];\n\n return (\n <div\n data-testid=\"fine-tuning-detail-extension\"\n className=\"flex flex-col gap-3 px-1 py-2\"\n >\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between\">\n <div className=\"min-w-0\">\n <div className=\"text-[10px] uppercase tracking-[0.14em] text-muted\">\n {app.displayName ?? \"Fine Tuning\"}\n </div>\n <h3 className=\"mt-1 truncate text-sm font-semibold text-foreground\">\n {latest ? \"Latest training collection\" : \"Training collection\"}\n </h3>\n <p className=\"mt-1 text-xs text-muted\">\n {latest\n ? `${latest.readinessStatus} readiness, ${latest.artifactCount} artifacts`\n : \"None\"}\n </p>\n </div>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() => void refreshCollections()}\n disabled={loading}\n >\n {loading ? \"Refreshing\" : \"Refresh\"}\n </Button>\n </div>\n\n {errorMessage ? (\n <div className=\"rounded-md border border-destructive/35 bg-destructive/10 px-3 py-2 text-xs text-destructive\">\n {errorMessage}\n </div>\n ) : null}\n\n <div className=\"grid gap-2 sm:grid-cols-2 lg:grid-cols-4\">\n <FineTuningDetailMetric\n label=\"Data sources\"\n value={formatDashboardNumber(dataSources)}\n />\n <FineTuningDetailMetric\n label=\"Readable samples\"\n value={formatDashboardNumber(readableSamples)}\n />\n <FineTuningDetailMetric\n label=\"Scored evals\"\n value={formatDashboardNumber(scoredComparisons)}\n />\n <FineTuningDetailMetric\n label=\"Models\"\n value={formatDashboardNumber(modelCount)}\n />\n </div>\n\n {latest ? (\n <div className=\"flex flex-col gap-2 rounded-md border border-border/40 bg-bg/20 p-3 text-xs text-muted\">\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"min-w-0\">\n <span className=\"text-muted\">Generated </span>\n <span className=\"text-foreground\">{latest.generatedAt}</span>\n </div>\n <div className=\"min-w-0\">\n <span className=\"text-muted\">Tiers </span>\n <span className=\"text-foreground\">\n {latest.benchmarks.tiers.length\n ? latest.benchmarks.tiers.join(\", \")\n : \"none\"}\n </span>\n </div>\n <div className=\"min-w-0\">\n <span className=\"text-muted\">Readiness </span>\n <span className=\"text-foreground\">\n {latest.readiness.ready} ready / {latest.readiness.partial}{\" \"}\n partial / {latest.readiness.missing} missing\n </span>\n </div>\n <div className=\"min-w-0\">\n <span className=\"text-muted\">Steps </span>\n <span className=\"text-foreground\">\n {Object.entries(latest.stepCounts)\n .map(([status, count]) => `${status}:${count}`)\n .join(\" \")}\n </span>\n </div>\n <div className=\"min-w-0\">\n <span className=\"text-muted\">Baseline </span>\n <span className=\"text-foreground\">\n established{\" \"}\n {baseline?.establishedTiers.length\n ? baseline.establishedTiers.join(\", \")\n : \"none\"}{\" \"}\n / next {baseline?.nextTier ?? \"none\"}\n </span>\n </div>\n <div className=\"min-w-0\">\n <span className=\"text-muted\">Remaining </span>\n <span className=\"text-foreground\">\n {baseline?.remainingTiers.length\n ? baseline.remainingTiers.join(\", \")\n : \"none\"}\n </span>\n </div>\n </div>\n {topGaps.length > 0 ? (\n <div className=\"flex flex-col gap-1 rounded border border-border/35 bg-card/25 p-2\">\n <div className=\"text-[10px] uppercase tracking-[0.14em] text-muted\">\n Next gaps\n </div>\n {topGaps.map((gap) => (\n <div\n key={gap.id}\n className=\"flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between\"\n >\n <div className=\"min-w-0\">\n <div className=\"truncate text-xs font-semibold text-foreground\">\n {gap.id}:{gap.status}\n </div>\n <div className=\"line-clamp-2 text-xs text-muted\">\n {gap.note}\n </div>\n </div>\n {gap.recommendedCapability ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() => void runGapRecommendation(gap)}\n disabled={runningGapId === gap.id}\n title={gap.recommendedCapability}\n >\n {runningGapId === gap.id ? \"Running\" : \"Run\"}\n </Button>\n ) : null}\n </div>\n ))}\n </div>\n ) : null}\n <div className=\"flex flex-wrap gap-2 pt-1\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() =>\n void openExternalUrl(\n localViewerUrl(latest.analysisIndexHtmlPath),\n )\n }\n >\n Open analysis\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() =>\n void openExternalUrl(localViewerUrl(latest.readmePath))\n }\n >\n Open README\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() =>\n void openExternalUrl(localViewerUrl(latest.manifestPath))\n }\n >\n Open manifest\n </Button>\n {history?.indexHtmlPath ? (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() =>\n void openExternalUrl(localViewerUrl(history.indexHtmlPath))\n }\n >\n Open run index\n </Button>\n ) : null}\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n\nregisterDetailExtension(FINE_TUNING_DETAIL_PANEL_ID, FineTuningDetailExtension);\n"],"mappings":"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","names":["dataSources","readableSamples","benchmarkComparisons"]}
|