diff --git a/.github/ci/suites.v1.json b/.github/ci/suites.v1.json index eaeb082bc1..e66fbdf0f7 100644 --- a/.github/ci/suites.v1.json +++ b/.github/ci/suites.v1.json @@ -351,7 +351,13 @@ "tests/test_skills/test_hub_*.py", "tests/test_skills/test_loader_*.py", "tests/test_skills_bundled_baseline.py", - "tests/test_skills_default_prompt_contract.py", + "tests/test_skill_catalog_projection.py", + "tests/test_gateway/test_meta_catalog_compatibility.py", + "tests/test_gateway/test_rpc_commands.py", + "tests/test_migration/test_legacy_config_fixtures.py", + "tests/test_skills/test_catalog_upgrade_retirement.py", + "tests/test_skills/test_sop_compiler.py", + "tests/unit/cli/tui/test_opentui_completion_catalog.py", "tests/test_skills_hash_consumers.py", "tests/test_skills_hot_reload.py", "tests/test_skills_hub_*.py", diff --git a/.github/scripts/plan_ci.py b/.github/scripts/plan_ci.py index c300d01196..4db4eefec9 100644 --- a/.github/scripts/plan_ci.py +++ b/.github/scripts/plan_ci.py @@ -150,7 +150,13 @@ "tests/test_skills_manifest.py", "tests/test_skills_bundled_baseline.py", "tests/test_skills_hot_reload.py", - "tests/test_skills_default_prompt_contract.py", + "tests/test_skill_catalog_projection.py", + "tests/test_gateway/test_meta_catalog_compatibility.py", + "tests/test_gateway/test_rpc_commands.py", + "tests/test_migration/test_legacy_config_fixtures.py", + "tests/test_skills/test_catalog_upgrade_retirement.py", + "tests/test_skills/test_sop_compiler.py", + "tests/unit/cli/tui/test_opentui_completion_catalog.py", "tests/test_skills_loader_namespaces.py", "tests/test_skills_tree.py", "tests/test_skills_hub_archive.py", @@ -1331,11 +1337,16 @@ def _repository_files_for_validation(repo: Path) -> list[str]: if (path.is_file() or path.is_symlink()) and ".git" not in path.relative_to(repo).parts ) - return sorted( + paths = [ item.decode("utf-8", errors="strict") for item in completed.stdout.split(b"\0") if item - ) + ] + # ``git ls-files --cached`` retains paths deleted in an uncommitted + # worktree. They are useful to change classification but cannot be parsed + # as current test-module sources, so exclude only physically absent paths + # from repository-content validation. + return sorted(path for path in paths if (repo / path).exists()) def _validate_execution_input_patterns( diff --git a/.github/scripts/windows_test_assignments.json b/.github/scripts/windows_test_assignments.json index 92767cb7d3..486b4d2d16 100644 --- a/.github/scripts/windows_test_assignments.json +++ b/.github/scripts/windows_test_assignments.json @@ -91,7 +91,6 @@ "tests/test_engine/test_final_diff_contract.py", "tests/test_engine/test_final_diff_salvage_and_endgame_freeze_levers.py", "tests/test_engine/test_goal_context_prompt.py", - "tests/test_engine/test_goal_routing_hint.py", "tests/test_engine/test_historical_image_followup.py", "tests/test_engine/test_history_silent_reply.py", "tests/test_engine/test_long_task_backend_boundaries.py", @@ -233,6 +232,7 @@ "tests/test_scripts/test_live_meta_skill_creator_e2e.py", "tests/test_skill_pdf_toolkit.py", "tests/test_skills/test_awesome_webpage_meta_skill.py", + "tests/test_skills/test_catalog_upgrade_retirement.py", "tests/test_skills/test_clarify_schema_protocol.py", "tests/test_skills/test_clarify_summary.py", "tests/test_skills/test_clarify_text_parser.py", @@ -248,7 +248,6 @@ "tests/test_skills/test_meta_invoke_recursion_guard.py", "tests/test_skills/test_meta_invoke_tool.py", "tests/test_skills/test_meta_mvp.py", - "tests/test_skills/test_meta_pre_commit_quality_gate.py", "tests/test_skills/test_meta_readiness.py", "tests/test_skills/test_meta_short_drama_delivery_audit.py", "tests/test_skills/test_meta_skill_authoring_docs.py", @@ -358,7 +357,6 @@ "tests/test_application/test_session_reset.py", "tests/test_application/test_session_transcript.py", "tests/test_attachment_workspace.py", - "tests/test_bundled_voice_skills.py", "tests/test_channels/test_approval_i18n.py", "tests/test_channels/test_channel_command_registry.py", "tests/test_channels/test_channel_dedupe.py", @@ -557,6 +555,7 @@ "tests/test_gateway/test_local_provider_keyless_e2e.py", "tests/test_gateway/test_memory_health_boundary.py", "tests/test_gateway/test_memory_repair_storage_gate.py", + "tests/test_gateway/test_meta_catalog_compatibility.py", "tests/test_gateway/test_meta_setup_launch_e2e.py", "tests/test_gateway/test_meta_skill_config_auto_trigger.py", "tests/test_gateway/test_metrics_counters.py", @@ -907,7 +906,6 @@ "tests/test_session/test_turn_acceptance_storage.py", "tests/test_session/test_turn_usage_storage.py", "tests/test_session_streams_meta_events.py", - "tests/test_skill_html_to_pdf.py", "tests/test_skill_multi_search_engine.py", "tests/test_skill_xlsx.py", "tests/test_skills/test_clarify_nl_extract.py", @@ -917,7 +915,6 @@ "tests/test_skills/test_high_value_meta_trigger_coverage.py", "tests/test_skills/test_hub_deps_subprocess.py", "tests/test_skills/test_meta_executor_gate.py", - "tests/test_skills/test_meta_paper_skills.py", "tests/test_skills/test_meta_parallel.py", "tests/test_skills/test_meta_paused_scheduler.py", "tests/test_skills/test_meta_resume.py", @@ -925,12 +922,10 @@ "tests/test_skills/test_meta_skill_creator_lint.py", "tests/test_skills/test_meta_user_input_executor.py", "tests/test_skills/test_nano_banana_openrouter_image.py", - "tests/test_skills/test_retrieval_fingerprint.py", "tests/test_skills/test_skill_exec_python_resolution.py", "tests/test_skills/test_skill_exec_subprocess_encoding.py", "tests/test_skills/test_sop_compiler.py", "tests/test_skills_hot_reload.py", - "tests/test_skills_memory_contract.py", "tests/test_tools/test_admin_audio_config.py", "tests/test_tools/test_admin_cron_strict.py", "tests/test_tools/test_admin_gateway_contract.py", @@ -1177,15 +1172,14 @@ "tests/test_skills/test_meta_cancellation.py", "tests/test_skills/test_meta_diagram_triangulation.py", "tests/test_skills/test_meta_inputs_collected.py", + "tests/test_skills/test_meta_paper_skills.py", "tests/test_skills/test_meta_paper_write_e2e.py", "tests/test_skills/test_meta_plan_serde.py", "tests/test_skills/test_meta_security_review_bundle.py", "tests/test_skills/test_meta_skill_accept.py", "tests/test_skills/test_meta_skill_smoke_test.py", - "tests/test_skills/test_meta_stack_trace_investigator.py", "tests/test_skills/test_meta_user_input_types.py", "tests/test_skills/test_multi_search_engine_concurrency.py", - "tests/test_skills/test_weather_skill_entrypoint.py", "tests/test_skills_hash_consumers.py", "tests/test_skills_hub_github.py", "tests/test_skills_loader_namespaces.py", @@ -1409,12 +1403,11 @@ "tests/test_scripts/test_stage_webui_artifact.py", "tests/test_scripts/test_verify_desktop_slim_size.py", "tests/test_scripts/test_verify_webui_artifact.py", + "tests/test_skill_catalog_projection.py", "tests/test_skills/test_clarify_skip_summary.py", "tests/test_skills/test_creator_trigger_no_collision.py", "tests/test_skills/test_history_explorer.py", - "tests/test_skills/test_meta_arxiv_daily_digest_deck.py", "tests/test_skills/test_meta_auto_trigger_enabled.py", - "tests/test_skills/test_meta_codereview_current_diff.py", "tests/test_skills/test_meta_on_failure_substitute.py", "tests/test_skills/test_meta_orchestrator_offload.py", "tests/test_skills/test_meta_run_persistence_e2e.py", @@ -1426,7 +1419,6 @@ "tests/test_skills/test_runtime_e2e_gate.py", "tests/test_skills/test_skill_exec_non_blocking.py", "tests/test_skills_community_copy_contract.py", - "tests/test_skills_default_prompt_contract.py", "tests/test_skills_dependency_summary.py", "tests/test_skills_hub_installer_security.py", "tests/test_skills_paths.py", diff --git a/.github/scripts/windows_test_durations.json b/.github/scripts/windows_test_durations.json index fef8dfe10a..6022a37430 100644 --- a/.github/scripts/windows_test_durations.json +++ b/.github/scripts/windows_test_durations.json @@ -140,7 +140,6 @@ "tests/test_artifacts.py": 2.895, "tests/test_asyncio_utils.py": 0.01, "tests/test_attachment_workspace.py": 0.148, - "tests/test_bundled_voice_skills.py": 0.673, "tests/test_channels/test_admission_reason_persistence.py": 0.856, "tests/test_channels/test_approval_dispatch_intercept.py": 1.046, "tests/test_channels/test_approval_i18n.py": 0.041, @@ -362,7 +361,6 @@ "tests/test_engine/test_final_diff_salvage_and_endgame_freeze_levers.py": 8.245, "tests/test_engine/test_finalize_evidence_gate.py": 0.28, "tests/test_engine/test_goal_context_prompt.py": 0.11, - "tests/test_engine/test_goal_routing_hint.py": 0.026, "tests/test_engine/test_heuristic_router_strategy.py": 0.818, "tests/test_engine/test_historical_image_followup.py": 4.251, "tests/test_engine/test_history_silent_reply.py": 0.014, @@ -618,6 +616,7 @@ "tests/test_gateway/test_local_provider_keyless_e2e.py": 0.048, "tests/test_gateway/test_memory_health_boundary.py": 0.01, "tests/test_gateway/test_memory_repair_storage_gate.py": 0.898, + "tests/test_gateway/test_meta_catalog_compatibility.py": 0.01, "tests/test_gateway/test_meta_setup_launch_e2e.py": 0.927, "tests/test_gateway/test_meta_skill_config_auto_trigger.py": 0.01, "tests/test_gateway/test_metrics_counters.py": 0.129, @@ -1257,13 +1256,14 @@ "tests/test_session/test_turn_acceptance_storage.py": 15.113, "tests/test_session/test_turn_usage_storage.py": 0.112, "tests/test_session_streams_meta_events.py": 0.01, + "tests/test_skill_catalog_projection.py": 2.1, "tests/test_skill_docx.py": 3.082, - "tests/test_skill_html_to_pdf.py": 0.937, "tests/test_skill_multi_search_engine.py": 0.283, "tests/test_skill_pdf_toolkit.py": 1.198, "tests/test_skill_pptx_delivery.py": 0.75, "tests/test_skill_xlsx.py": 1.185, "tests/test_skills/test_awesome_webpage_meta_skill.py": 22.667, + "tests/test_skills/test_catalog_upgrade_retirement.py": 0.01, "tests/test_skills/test_clarify_autofill.py": 0.013, "tests/test_skills/test_clarify_nl_extract.py": 0.078, "tests/test_skills/test_clarify_schema_protocol.py": 0.031, @@ -1288,11 +1288,9 @@ "tests/test_skills/test_loader_list_meta_specs.py": 3.264, "tests/test_skills/test_loader_turn_snapshot.py": 0.01, "tests/test_skills/test_managed_toolchains.py": 4.983, - "tests/test_skills/test_meta_arxiv_daily_digest_deck.py": 3.156, "tests/test_skills/test_meta_auto_trigger_enabled.py": 0.01, "tests/test_skills/test_meta_cancellation.py": 5.727, "tests/test_skills/test_meta_clarify_defaults.py": 0.013, - "tests/test_skills/test_meta_codereview_current_diff.py": 5.94, "tests/test_skills/test_meta_diagram_triangulation.py": 3.295, "tests/test_skills/test_meta_dsl_extensions.py": 0.921, "tests/test_skills/test_meta_executor_gate.py": 0.01, @@ -1307,7 +1305,6 @@ "tests/test_skills/test_meta_parallel.py": 0.344, "tests/test_skills/test_meta_paused_scheduler.py": 0.071, "tests/test_skills/test_meta_plan_serde.py": 0.166, - "tests/test_skills/test_meta_pre_commit_quality_gate.py": 5.252, "tests/test_skills/test_meta_readiness.py": 1.657, "tests/test_skills/test_meta_resume.py": 20.007, "tests/test_skills/test_meta_router_accuracy.py": 1.08, @@ -1322,7 +1319,6 @@ "tests/test_skills/test_meta_skill_linter.py": 25.593, "tests/test_skills/test_meta_skill_proposals.py": 3.153, "tests/test_skills/test_meta_skill_smoke_test.py": 0.281, - "tests/test_skills/test_meta_stack_trace_investigator.py": 7.126, "tests/test_skills/test_meta_travel_planner_direct_e2e.py": 1.215, "tests/test_skills/test_meta_trigger_accuracy_harness.py": 0.024, "tests/test_skills/test_meta_user_input_executor.py": 0.087, @@ -1339,7 +1335,6 @@ "tests/test_skills/test_paper_refbib_metadata.py": 0.342, "tests/test_skills/test_paper_source_readiness_gate.py": 1.824, "tests/test_skills/test_proposals_lib.py": 0.295, - "tests/test_skills/test_retrieval_fingerprint.py": 0.01, "tests/test_skills/test_runtime_e2e_gate.py": 0.016, "tests/test_skills/test_short_drama_review_normalizer.py": 0.276, "tests/test_skills/test_skill_disable_toggle.py": 0.04, @@ -1351,10 +1346,8 @@ "tests/test_skills/test_title_card_image.py": 0.107, "tests/test_skills/test_toolchain_runtime_integration.py": 0.128, "tests/test_skills/test_toolchain_state_scope.py": 0.02, - "tests/test_skills/test_weather_skill_entrypoint.py": 0.01, "tests/test_skills_bundled_baseline.py": 0.793, "tests/test_skills_community_copy_contract.py": 0.01, - "tests/test_skills_default_prompt_contract.py": 10.372, "tests/test_skills_dependency_summary.py": 0.2, "tests/test_skills_eligibility.py": 0.01, "tests/test_skills_hash_consumers.py": 0.459, @@ -1369,7 +1362,6 @@ "tests/test_skills_hub_source.py": 0.017, "tests/test_skills_loader_namespaces.py": 1.024, "tests/test_skills_manifest.py": 1.315, - "tests/test_skills_memory_contract.py": 0.693, "tests/test_skills_paths.py": 0.016, "tests/test_skills_provenance_contract.py": 4.11, "tests/test_skills_third_party_notices.py": 2.373, diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7a7ab865f..3446a37023 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1886,7 +1886,13 @@ jobs: tests/test_skills_manifest.py \ tests/test_skills_bundled_baseline.py \ tests/test_skills_hot_reload.py \ - tests/test_skills_default_prompt_contract.py \ + tests/test_skill_catalog_projection.py \ + tests/test_gateway/test_meta_catalog_compatibility.py \ + tests/test_gateway/test_rpc_commands.py \ + tests/test_migration/test_legacy_config_fixtures.py \ + tests/test_skills/test_catalog_upgrade_retirement.py \ + tests/test_skills/test_sop_compiler.py \ + tests/unit/cli/tui/test_opentui_completion_catalog.py \ tests/test_skills_loader_namespaces.py \ tests/test_skills_tree.py \ tests/test_skills_hub_archive.py \ diff --git a/CHANGELOG.md b/CHANGELOG.md index dbe9c6f3b1..7289844db4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,8 +14,40 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Non-loopback request authorities remain rejected by those guards, `"*"` is never accepted, and existing CORS response-header behavior is unchanged. +### Changed + +- The bundled Skill catalog now exposes eight ordinary entry points and three + stable Meta workflows, with coding instructions available in coding mode. + Internal helpers remain available to their owning workflows. The optional + relevance filter is retired; old filter settings are ignored during upgrade. +- Redundant bundled wrappers, including `cron`, `memory`, `git-diff`, and + `http-fetch`, are retired while their native tools remain available. The + weather and tmux wrappers and the dedicated HTML-to-PDF/LaTeX wrappers are + also retired; generic tools remain available, but their former scripts and + output contracts are not preserved. PDF extraction, composition and + generation remain supported; arbitrary in-place PDF rewriting is no longer + a dedicated Skill capability. +- In total, 31 bundled Skills are retired: four native-tool wrappers, five + audio wrappers, `summarize`, five weather/tmux/HTML-to-PDF/LaTeX/PDF-rewrite + wrappers, eight obsolete paper helpers, three creator helpers whose work + now runs in the creator runtime, and five stack-trace probes. +- Catalog retirement takes effect when the upgraded Gateway restarts and + rebuilds its Skill snapshot. Personal, project and other user-installed + copies are not removed, and memory files and scheduled jobs stay in place. + Old Meta workflow definitions that reference retired Skills must be updated + by their authors; they are not automatically migrated. + ### Fixed +- Skill and Meta catalog reads remain compatible when the Web UI and Gateway + are upgraded separately. Meta details fall back on older gateways; new + gateways preserve public Meta list and detail responses for older clients. + Managed instances keep their source and lifecycle identity, and dependency + status refreshes after setup without retaining old missing-dependency counts. +- Retired nested Skill-filter environment variables no longer prevent Gateway + startup. Newly authored personal and project Meta SOPs receive the correct + invocation defaults, and command completion follows the public catalog. + - Aborting a turn no longer leaves an orphan task that crashes while the turn generator is finalized. The gateway now closes the runner stream when the consuming task exits, and the turn scope stack (process ownership, sandbox diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 9c85c53f1e..e6e71ec2fa 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -329,13 +329,8 @@ in a package-local provenance file. - Component: SKILL.md frontmatter and instruction text for these bundled skills: - `sub-agent` -- `cron` - `github` - - `nano-pdf` - `skill-creator` - - `summarize` - - `tmux` - - `weather` - Upstream project: https://github.com/openclaw/openclaw - License: MIT - Copyright notice: Copyright (c) 2025 Peter Steinberger @@ -378,72 +373,41 @@ SOFTWARE. These bundled skill descriptors are authored and maintained by OpenSquilla and are released under OpenSquilla's repository license (Apache-2.0; see `LICENSE`): -- `cron` - `code-task` - `AwesomeWebpageMetaSkill` - `awesome-webpage-image-download` - `awesome-webpage-research` - `deep-research` - `docx` -- `git-diff` - `github` - `history-explorer` -- `html-to-pdf` -- `http-fetch` -- `latex-compile` -- `memory` - `meta-kid-project-planner` - `meta-paper-write` - `meta-short-drama` - `meta-skill-creator` - `multi-search-engine` -- `nano-pdf` - `openrouter-video-generator` -- `paper-abstract-author` - `paper-artifact-runtime` - `paper-citation-integrity-gate` -- `paper-citation-planner` - `paper-delivery-summary` -- `paper-experiment-stub` - `paper-latex-sanitizer` - `paper-length-gate` -- `paper-outline-author` -- `paper-plot-stub` -- `paper-preference-planner` - `paper-quality-gate` - `paper-refbib-stub` -- `paper-revision-author` - `paper-section-author` - `paper-source-readiness-gate` -- `paper-source-curator` - `pdf-toolkit` - `pptx` - `skill-creator` -- `skill-creator-linter` -- `skill-creator-proposals` -- `skill-creator-smoke-test` - `short-drama-delivery-audit` - `short-drama-review-normalizer` -- `stack-trace-generic-probe` -- `stack-trace-go-probe` -- `stack-trace-js-probe` -- `stack-trace-python-probe` -- `stack-trace-rust-probe` - `sub-agent` - `srt-from-script` - `subtitle-burner` -- `summarize` - `text-file-read` - `title-card-image` -- `tmux` - `video-still-animator` -- `weather` - `xlsx` -- `advanced-dubbing-studio` -- `music-and-singing-studio` -- `voice-clone-lab` -- `voice-conversion-studio` -- `voiceover-studio` ## tokenjuice adapted reduction rules @@ -527,7 +491,6 @@ SOFTWARE. - `deep-research` - `docx` - `html-coder` - - `html-to-pdf` - `multi-search-engine` - `nano-banana-pro` - `nano-banana-pro-openrouter` diff --git a/contracts/gateway/v4/compatibility-manifest.generated.json b/contracts/gateway/v4/compatibility-manifest.generated.json index ec6b0b0368..7075ed3584 100644 --- a/contracts/gateway/v4/compatibility-manifest.generated.json +++ b/contracts/gateway/v4/compatibility-manifest.generated.json @@ -702,6 +702,18 @@ "schema": "meta/meta-drafts-list.schema.json", "schemaSha256": "ed0fb32d0f7ae0658bd2b285202a267e2fb1241ed6681e50e92a9970c58f8abc" }, + { + "lifecycle": "stable", + "name": "meta.inspect", + "schema": "meta/meta-inspect.schema.json", + "schemaSha256": "227d68672eb35f9b932945de916663db25054c8547a7e62ed8c800013c279719" + }, + { + "lifecycle": "stable", + "name": "meta.list", + "schema": "meta/meta-list.schema.json", + "schemaSha256": "9fcd18dc7d1c2e5d75cc3407a2afb1266539456e186e1139e30c2c590efd88fc" + }, { "lifecycle": "stable", "name": "meta.run", @@ -1461,10 +1473,10 @@ "protocol": "opensquilla-websocket-json", "source": { "eventFamilyCount": 9, - "generatorSha256": "a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00", - "methodCount": 215, - "schemaCount": 224, - "schemaTreeSha256": "4cad213cb5943a1f97618e7e6e6526761afe9e4a69db83ae2d5519309202be18" + "generatorSha256": "053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e", + "methodCount": 217, + "schemaCount": 226, + "schemaTreeSha256": "de65ac0d9ad183c07500a98a92328888aae9615c9b5e7991e136b5e2cea8fe63" }, "wireVersion": 4 } diff --git a/contracts/gateway/v4/meta/meta-inspect.schema.json b/contracts/gateway/v4/meta/meta-inspect.schema.json new file mode 100644 index 0000000000..ccfc357e9a --- /dev/null +++ b/contracts/gateway/v4/meta/meta-inspect.schema.json @@ -0,0 +1,386 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://opensquilla.dev/contracts/gateway/v4/meta/meta-inspect.schema.json", + "title": "OpenSquilla meta.inspect Contract", + "type": "object", + "additionalProperties": false, + "properties": { + "request": { + "$ref": "#/$defs/Request" + }, + "response": { + "$ref": "#/$defs/Response" + } + }, + "x-opensquilla-wire": { + "protocol": "opensquilla-websocket-json", + "version": 4, + "compatibility": "exact-json-tree" + }, + "x-opensquilla-codegen": { + "python": { + "tool": "datamodel-code-generator", + "version": "0.75.1", + "target": "pydantic_v2.BaseModel" + }, + "typescript": { + "tool": "json-schema-to-typescript", + "version": "15.0.4" + }, + "runtimeValidation": { + "tool": "ajv", + "version": "8.17.1", + "mode": "standalone-adapter-only" + } + }, + "x-opensquilla-method": { + "name": "meta.inspect", + "kind": "query", + "scope": "operator.read", + "guestAllowed": false, + "idempotency": "read-only", + "timeout": { + "policy": "caller" + }, + "capability": { + "kind": "method-availability", + "name": "meta.inspect" + }, + "request": "#/$defs/Request", + "params": "#/$defs/Params", + "response": "#/$defs/Response", + "result": "#/$defs/Result", + "errors": [ + { + "code": "INVALID_REQUEST" + }, + { + "code": "UNAUTHORIZED" + }, + { + "code": "NOT_FOUND" + }, + { + "code": "INTERNAL_ERROR" + } + ] + }, + "$defs": { + "Params": { + "type": "object", + "additionalProperties": true, + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "instanceId": { + "type": "string" + }, + "instance_id": { + "type": "string" + }, + "installId": { + "type": "string" + }, + "install_id": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "Request": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id", + "method" + ], + "properties": { + "type": { + "const": "req" + }, + "id": { + "type": "string" + }, + "method": { + "const": "meta.inspect" + }, + "params": { + "anyOf": [ + { + "$ref": "#/$defs/Params" + }, + { + "type": "null" + } + ] + } + } + }, + "Result": { + "oneOf": [ + { + "$ref": "#/$defs/Inspection" + }, + { + "$ref": "#/$defs/Disabled" + } + ] + }, + "RpcError": { + "type": "object", + "additionalProperties": true, + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "Ok": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id", + "ok", + "payload" + ], + "properties": { + "type": { + "const": "res" + }, + "id": { + "type": "string" + }, + "ok": { + "const": true + }, + "payload": { + "$ref": "#/$defs/Result" + } + } + }, + "Err": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id", + "ok", + "error" + ], + "properties": { + "type": { + "const": "res" + }, + "id": { + "type": "string" + }, + "ok": { + "const": false + }, + "payload": { + "type": "null" + }, + "error": { + "$ref": "#/$defs/RpcError" + } + } + }, + "Response": { + "oneOf": [ + { + "$ref": "#/$defs/Ok" + }, + { + "$ref": "#/$defs/Err" + } + ] + }, + "Dependency": { + "type": "object", + "additionalProperties": false, + "required": [ + "name", + "available", + "visibility", + "invocation", + "owners", + "digest", + "source" + ], + "properties": { + "name": { + "type": "string" + }, + "available": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "invocation": { + "type": "string" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "digest": { + "type": "string" + }, + "source": { + "type": "string" + } + } + }, + "Inspection": { + "type": "object", + "additionalProperties": true, + "required": [ + "name", + "layer", + "instance_id", + "install_id", + "ready", + "status", + "dependencies" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "layer": { + "type": "string" + }, + "instance_id": { + "type": "string" + }, + "install_id": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "invocation": { + "type": "string" + }, + "digest": { + "type": "string" + }, + "source": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "dependency_count": { + "type": "integer", + "minimum": 0 + }, + "ready": { + "type": "boolean" + }, + "status": { + "enum": [ + "ready", + "needs_setup" + ] + }, + "missing_bins": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_env": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_skills": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_capabilities": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_provider_capabilities": { + "type": "array", + "items": { + "type": "string" + } + }, + "reasons": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_env_any": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "setup_actions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "manual_setup_actions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "dependencies": { + "type": "array", + "items": { + "$ref": "#/$defs/Dependency" + } + } + } + }, + "Disabled": { + "type": "object", + "additionalProperties": false, + "required": [ + "disabled" + ], + "properties": { + "disabled": { + "const": true + } + } + } + } +} diff --git a/contracts/gateway/v4/meta/meta-list.schema.json b/contracts/gateway/v4/meta/meta-list.schema.json new file mode 100644 index 0000000000..9969e66099 --- /dev/null +++ b/contracts/gateway/v4/meta/meta-list.schema.json @@ -0,0 +1,315 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://opensquilla.dev/contracts/gateway/v4/meta/meta-list.schema.json", + "title": "OpenSquilla meta.list Contract", + "type": "object", + "additionalProperties": false, + "properties": { + "request": { + "$ref": "#/$defs/Request" + }, + "response": { + "$ref": "#/$defs/Response" + } + }, + "x-opensquilla-wire": { + "protocol": "opensquilla-websocket-json", + "version": 4, + "compatibility": "exact-json-tree" + }, + "x-opensquilla-codegen": { + "python": { + "tool": "datamodel-code-generator", + "version": "0.75.1", + "target": "pydantic_v2.BaseModel" + }, + "typescript": { + "tool": "json-schema-to-typescript", + "version": "15.0.4" + }, + "runtimeValidation": { + "tool": "ajv", + "version": "8.17.1", + "mode": "standalone-adapter-only" + } + }, + "x-opensquilla-method": { + "name": "meta.list", + "kind": "query", + "scope": "operator.read", + "guestAllowed": false, + "idempotency": "read-only", + "timeout": { + "policy": "caller" + }, + "capability": { + "kind": "method-availability", + "name": "meta.list" + }, + "request": "#/$defs/Request", + "params": "#/$defs/Params", + "response": "#/$defs/Response", + "result": "#/$defs/Result", + "errors": [ + { + "code": "INVALID_REQUEST" + }, + { + "code": "UNAUTHORIZED" + }, + { + "code": "NOT_FOUND" + }, + { + "code": "INTERNAL_ERROR" + } + ] + }, + "$defs": { + "Params": { + "type": "object", + "additionalProperties": true + }, + "Request": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id", + "method" + ], + "properties": { + "type": { + "const": "req" + }, + "id": { + "type": "string" + }, + "method": { + "const": "meta.list" + }, + "params": { + "anyOf": [ + { + "$ref": "#/$defs/Params" + }, + { + "type": "null" + } + ] + } + } + }, + "Result": { + "type": "object", + "additionalProperties": false, + "required": [ + "skills" + ], + "properties": { + "skills": { + "type": "array", + "items": { + "$ref": "#/$defs/MetaSkill" + } + }, + "disabled": { + "type": "boolean" + } + } + }, + "RpcError": { + "type": "object", + "additionalProperties": true, + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "Ok": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id", + "ok", + "payload" + ], + "properties": { + "type": { + "const": "res" + }, + "id": { + "type": "string" + }, + "ok": { + "const": true + }, + "payload": { + "$ref": "#/$defs/Result" + } + } + }, + "Err": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id", + "ok", + "error" + ], + "properties": { + "type": { + "const": "res" + }, + "id": { + "type": "string" + }, + "ok": { + "const": false + }, + "payload": { + "type": "null" + }, + "error": { + "$ref": "#/$defs/RpcError" + } + } + }, + "Response": { + "oneOf": [ + { + "$ref": "#/$defs/Ok" + }, + { + "$ref": "#/$defs/Err" + } + ] + }, + "MetaSkill": { + "type": "object", + "additionalProperties": true, + "required": [ + "name", + "layer", + "instance_id", + "install_id", + "ready", + "status" + ], + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "layer": { + "type": "string" + }, + "instance_id": { + "type": "string" + }, + "install_id": { + "type": "string" + }, + "visibility": { + "type": "string" + }, + "invocation": { + "type": "string" + }, + "digest": { + "type": "string" + }, + "source": { + "type": "string" + }, + "generation": { + "type": "integer" + }, + "dependency_count": { + "type": "integer", + "minimum": 0 + }, + "ready": { + "type": "boolean" + }, + "status": { + "enum": [ + "ready", + "needs_setup" + ] + }, + "missing_bins": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_env": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_skills": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_capabilities": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_provider_capabilities": { + "type": "array", + "items": { + "type": "string" + } + }, + "reasons": { + "type": "array", + "items": { + "type": "string" + } + }, + "missing_env_any": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "setup_actions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "manual_setup_actions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + } + } + } + } +} diff --git a/contracts/gateway/v4/production-targets.json b/contracts/gateway/v4/production-targets.json index c2f4252271..38715b8be0 100644 --- a/contracts/gateway/v4/production-targets.json +++ b/contracts/gateway/v4/production-targets.json @@ -638,6 +638,20 @@ "result" ] }, + { + "kind": "method", + "wireName": "meta.inspect", + "roles": [ + "result" + ] + }, + { + "kind": "method", + "wireName": "meta.list", + "roles": [ + "result" + ] + }, { "kind": "method", "wireName": "meta.run", diff --git a/docs/evidence/skill-simplification/README.md b/docs/evidence/skill-simplification/README.md new file mode 100644 index 0000000000..cc633b3884 --- /dev/null +++ b/docs/evidence/skill-simplification/README.md @@ -0,0 +1,107 @@ +# Skill simplification A/B evidence + +This directory contains reproducible, synthetic evidence for the Skill catalog +simplification. No real conversation, credential, private key, reference-repository +path, or host-absolute path is present in the versioned artifacts. + +## Identity and method + +- Baseline: `27ca02ca4596f8f24fe79ab603f068cbec6ab858`. +- Candidate: `058a7675a24177f513ca9262b1d0db96578c1e58`, created with `git commit-tree` + over a temporary index so the user's HEAD and index were not moved. +- Both benchmark worktrees were clean. +- Provider/model: `tokenrhythm` / `deepseek-v4-pro-0813`. +- Tool schema: 58 definitions in the same order; canonical digest + `fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97`. +- Sampling: provider defaults for temperature/top-p, concurrency 1, output limit + 256 tokens (32 for calibration). +- Dataset: 166 logical synthetic requests: tokenizer calibration, warm-up, five + ABBA/BAAB micro groups, five independent ten-turn continuity sessions, and + fourteen paired multi-task/migration cases. +- Eligibility uses a recorded synthetic full-capability profile so catalog shape + is compared independently of host-installed binaries and credentials. Runtime + eligibility remains fail-closed in product code. +- Cold cache means turn 1 of each continuity session; warm cache means turns 2-10 + with identical fixed history on both sides. + +`raw.json` is the source of truth. `raw.csv` and `summary.json` can be regenerated: + +```bash +uv run python scripts/skill_simplification_ab.py summarize \ + --raw docs/evidence/skill-simplification/raw.json +``` + +The checked-in summary and CSV were byte-compared with an independent regeneration. + +## Headline measurements + +| Metric | Baseline | Candidate | Change | +| --- | ---: | ---: | ---: | +| Model-visible bundled entries | 48 | 11 | -77.08% | +| Complete catalog characters | 21,675 | 6,059 | -72.05% | +| Prompt catalog characters | 6,777 | 4,509 | -33.47% | +| Provider-measured catalog tokens | 1,771 | 1,121 | -36.70% | +| Tool-schema tokens | 11,343 | 11,343 | 0% | +| Multi-task mean input tokens | 13,309.429 | 12,665.714 | -4.84% | +| Warm continuity cache-read ratio | 20.6704% | 20.4031% | -0.2673 pp | +| Multi-task route accuracy | 64.2857% | 85.7143% | +21.4286 pp | +| Multi-task task success | 57.1429% | 78.5714% | +21.4285 pp | +| Multi-task median end-to-end latency | 16,546.555 ms | 8,551.444 ms | -48.32% | + +The unchanged tool schema dominates input size, so the required 30% mean total-input +reduction was not achieved even though catalog tokens fell by 36.70%. With 11,343 +tool-schema tokens inside an approximately 13.3k-token baseline request, that total-input +gate cannot be reached by Skill-catalog reduction alone while the schema is fixed. + +## Acceptance gates + +The overall result is **FAIL** because every hard gate must pass. + +| Gate | Result | Evidence | +| --- | --- | --- | +| Mean input tokens reduced by at least 30% | FAIL | Multi-task mean fell 4.84%. | +| No systematic per-task input growth | PASS | No task category showed systematic reverse growth. | +| Warm provider cache-read ratio not lower | FAIL | 20.6704% to 20.4031%. | +| Warm uncached input median lower | PASS | 13,311 to 11,538 tokens. | +| Prefix stability 100% | PASS | 100% on both sides. | +| Reinjection waste zero | PASS | 0 on both sides. | +| Avoidable break rate zero | PASS | 0 on both sides. | +| Median end-to-end latency no worse than 5% | PASS | Multi-task median improved 48.32%. | +| Non-retired task success not lower | PASS | Candidate did not regress the fixed non-retired set. | +| No truncated samples | FAIL | 10 total: baseline 7, candidate 3. | +| Visible-word median within ±10% | FAIL / unassessable | Both medians are 0 because tool-call samples have no visible text; the ratio is undefined and the summarizer fails closed. | + +Provider instability was retained: across versioned requests, baseline recorded +14 timeout attempts and 2 5xx attempts; candidate recorded 18 timeout attempts and +4 5xx attempts. Candidate continuity had two terminal failures. Successful-only and +end-to-end latency are reported separately in `summary.json`. + +## Verification record + +- Unmodified baseline focused suite: 278 passed. +- Changed-test regression suite: 827 passed, 5 skipped; new projection suite: + 12 passed. +- Stable Meta and recovery suite: 190 passed, 3 skipped. +- WebUI: baseline 4,609 passed (4,594 plus 15 worker-timeout reruns); candidate + 4,609 passed. Candidate production build, architecture, security, theme, and + distribution verification passed. +- Full Python run on the clean pre-fix candidate snapshot: 24,299 passed, 257 + skipped, 30 failed. The final snapshot reran all 30 failure nodes: 92 passed and + the remaining 9 exactly matched baseline failures (four macOS process-group + cases, three missing-Docker experiment cases, one BSD `sed -i` case, and one + pre-existing TUI truncation case). +- Ruff passed; mypy passed across 972 source files. +- Windows contracts and CI shard planning passed statically. No Windows or Linux + host was available for native execution; macOS arm64 was measured directly. + +The PR was subsequently rebased onto the then-current `main`. Integration +verification on that tree passed 326 focused Python tests (1 skipped), Ruff, +mypy across 1,051 source files, 5,128 WebUI unit tests, the WebUI transport +architecture gates, and the production build. The Provider measurements above +remain bound to the recorded candidate SHA; they were not relabeled as +post-rebase measurements. + +Reference research was read-only and informed the separation of loading, +selection, invocation, prompt-cache layout, workspace lifecycle, and Gateway +protocol boundaries. The implementation is independent and has no runtime +dependency on those repositories. diff --git a/docs/evidence/skill-simplification/raw.csv b/docs/evidence/skill-simplification/raw.csv new file mode 100644 index 0000000000..df24840b21 --- /dev/null +++ b/docs/evidence/skill-simplification/raw.csv @@ -0,0 +1,167 @@ +version,suite,task_id,cache_phase,success,input_tokens,cached_input_tokens,cache_write_tokens,output_tokens,reasoning_tokens,first_event_ms,first_reasoning_ms,first_visible_ms,successful_attempt_ms,end_to_end_ms,retry_count,truncated,error_429,error_5xx,error_timeout,catalog_generation,catalog_digest,stable_prefix_digest,dynamic_suffix_digest,theoretical_reusable_tokens,tool_call_count,task_success,route_ok,false_no_skill_claim,explicit_skill_missed,visible_chars,visible_words,lines,paragraphs,list_items,markdown_headings,bold_spans +shared,calibration,empty,,True,92,0,0,25,23,1217.46,1217.46,1570.223,1691.006,1691.045,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,25f05ded1bd13b899e898514093d76597d8772bdb9fc73edd8065d8bdcb39fbb,,0,,,,,2,1,1,1,0,0,0 +shared,calibration,base_system_developer,,True,164,0,0,14,12,1531.64,1531.64,1924.057,2115.704,2115.734,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,cdc8f2e0ce6c9449b20a7eb32c97e71ec71742a9c422b476e3487659cec65995,,0,,,,,2,1,1,1,0,0,0 +shared,calibration,tool_schema,,True,11435,256,0,2,0,5226.402,,5226.402,5511.974,5511.993,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,ed12a693c15914f15e05ce5d03729f882da1f0e9cf2eecbca500199c7e0ba4ea,,0,,,,,2,1,1,1,0,0,0 +shared,calibration,catalogless,,True,11524,128,0,2,0,867.013,,867.013,967.318,967.339,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,6c519107eeafa06df79ee67d3f4ef29c105b2aa59604393f08fb3509fcfba2a1,2ef0aaa14e8ddb89d14afafef2093141c66555bf2ae8c69beda988573000ffb8,,0,,,,,2,1,1,1,0,0,0 +baseline,calibration,catalog,,True,13295,128,0,2,0,1907.321,,1907.321,2088.332,2088.353,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,59ba2353370379463dcd623ca9a62a7d7b7d2e9c6337ee06af18f3edff65e5a2,,0,,,,,2,1,1,1,0,0,0 +baseline,calibration,cacheable_prefix,,True,11507,128,0,2,0,1443.356,,1443.356,1881.895,1881.917,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,932efce5b79a7492a1ca894c802b493f6d265fb5b985d2dee8908aa10f9efe9d,,0,,,,,2,1,1,1,0,0,0 +baseline,calibration,body_ordinary_base,,True,13297,128,0,32,32,758.796,758.796,,1629.579,1629.602,0,True,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,ae4aa9ab9554fdc17e4e7995b835c4f1f7f467e965c66430a3fcdd2a9d7a1b72,0a43a83b3cc8d8d44c01b337ad0e165ce7c229374a38c65a37c99886ad28dbed,,0,,,,,0,0,0,0,0,0,0 +baseline,calibration,body_ordinary,,True,14041,128,0,2,0,3091.736,,3091.736,3241.008,3241.028,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,c8feed1cc1a0ce652cdc58c53d86909fca2b95f959a9af224897285dbb404308,44b5d5a489a48b157920f2dd624963e0db615e445c6d27cf8a1d18bb8078cd8f,,0,,,,,2,1,1,1,0,0,0 +baseline,calibration,body_meta_step_base,,True,13298,128,0,2,0,2859.907,,2859.907,2979.991,2980.013,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,302e068278938f43442de935e031d9bcc525543da36f3d94fd7be04d99ca67fb,7c62b3844d02ac28ecfbd70ba75c871693baa0863001ed3fa283a53b43488036,,0,,,,,2,1,1,1,0,0,0 +baseline,calibration,body_meta_step,,True,15615,128,0,32,32,3397.727,3397.727,,4299.403,4299.432,0,True,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,534fe814b9550d33c14c58b2755ea15c984a8f5e2444e5ac79a9c944a5b4a4e0,0a467caac58b83b53ff7fc57f690dce955e9631ef4f92d3579df68e2381e62b0,,0,,,,,0,0,0,0,0,0,0 +candidate,calibration,catalog,,True,12645,12544,0,2,0,1444.097,,1444.097,1572.843,122229.622,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,59ba2353370379463dcd623ca9a62a7d7b7d2e9c6337ee06af18f3edff65e5a2,,0,,,,,2,1,1,1,0,0,0 +candidate,calibration,cacheable_prefix,,True,12628,128,0,2,0,2558.122,,2558.122,2747.094,2747.117,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,932efce5b79a7492a1ca894c802b493f6d265fb5b985d2dee8908aa10f9efe9d,,0,,,,,2,1,1,1,0,0,0 +candidate,calibration,body_ordinary_base,,True,12647,1152,0,2,0,1922.757,,1922.757,2112.309,2112.319,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,ad8194187c27dcccd75471ae97ca32c2dce653c534fc5a9e6649a3c01490084c,0a43a83b3cc8d8d44c01b337ad0e165ce7c229374a38c65a37c99886ad28dbed,,0,,,,,2,1,1,1,0,0,0 +candidate,calibration,body_ordinary,,True,13391,1280,0,2,0,1657.911,,1657.911,1808.343,1808.358,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,3d94d9af725e786b9aaa0f22bb35a4a915bc6c43ab71207464f8fe8d60946be5,44b5d5a489a48b157920f2dd624963e0db615e445c6d27cf8a1d18bb8078cd8f,,0,,,,,2,1,1,1,0,0,0 +candidate,calibration,body_meta_step_base,,True,12648,1280,0,2,0,2322.397,,2322.397,2420.389,2420.402,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,0b5006f68cd682266d145f6bd52d77421bff33b8a5f5540947b751e062e7e0e4,7c62b3844d02ac28ecfbd70ba75c871693baa0863001ed3fa283a53b43488036,,0,,,,,2,1,1,1,0,0,0 +candidate,calibration,body_meta_step,,True,14965,1280,0,2,0,1889.844,,1889.844,1988.032,1988.059,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,3797a6434fa760875c71e40c124bd9f002a29f74470efaa74b26cb8a17ba7a1c,0a467caac58b83b53ff7fc57f690dce955e9631ef4f92d3579df68e2381e62b0,,0,,,,,2,1,1,1,0,0,0 +baseline,warmup,provider_cache,warmup,True,13299,128,0,3,0,2189.378,,2189.378,2246.24,2246.264,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,00f30947bff8e65c963c530a1ec847d805c3a59c984bfe0202f324ea0a94d74d,,0,,,,,5,1,1,1,0,0,0 +candidate,warmup,provider_cache,warmup,True,12649,1152,0,3,0,1814.197,,1814.197,2062.569,2062.588,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,00f30947bff8e65c963c530a1ec847d805c3a59c984bfe0202f324ea0a94d74d,,0,,,,,5,1,1,1,0,0,0 +baseline,micro,group_1,warm,True,13303,128,0,99,28,1626.233,1626.233,2685.083,4776.221,4776.248,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,c5a61a56ea45571a24d844473c28be7d6ed5fed4fa1aa7904671539c1677222b,,0,,,,,372,56,1,1,0,0,0 +candidate,micro,group_1,warm,True,12653,1152,0,63,16,2222.529,2222.529,2537.368,3567.486,3567.512,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,c5a61a56ea45571a24d844473c28be7d6ed5fed4fa1aa7904671539c1677222b,,0,,,,,250,41,1,1,0,0,0 +candidate,micro,group_1,warm,True,12653,12544,0,94,31,1228.151,1228.151,1516.21,2917.46,2917.471,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,c5a61a56ea45571a24d844473c28be7d6ed5fed4fa1aa7904671539c1677222b,,0,,,,,306,48,1,1,0,0,0 +baseline,micro,group_1,warm,True,13303,13184,0,78,17,1107.827,1107.827,1506.237,2600.073,2600.091,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,c5a61a56ea45571a24d844473c28be7d6ed5fed4fa1aa7904671539c1677222b,,0,,,,,303,46,1,1,0,0,0 +candidate,micro,group_2,warm,True,12654,12544,0,103,19,1758.263,1758.263,2333.518,3615.659,129557.256,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,db6c90e7175a33418f20131bd395b9e56a73e330cfa9886756fe9faa9ee47dfd,,0,,,,,379,60,1,1,0,0,2 +baseline,micro,group_2,warm,True,13304,128,0,93,24,2163.983,2163.983,2283.563,3739.181,3739.197,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,db6c90e7175a33418f20131bd395b9e56a73e330cfa9886756fe9faa9ee47dfd,,0,,,,,303,53,1,1,0,0,2 +baseline,micro,group_2,warm,True,13304,13184,0,75,0,1314.844,,1314.844,2958.799,2958.822,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,db6c90e7175a33418f20131bd395b9e56a73e330cfa9886756fe9faa9ee47dfd,,0,,,,,329,59,1,1,0,0,0 +candidate,micro,group_2,warm,True,12654,12544,0,98,28,1236.399,1236.399,2979.509,5390.204,5390.225,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,db6c90e7175a33418f20131bd395b9e56a73e330cfa9886756fe9faa9ee47dfd,,0,,,,,324,56,1,1,0,0,0 +baseline,micro,group_3,warm,True,13303,128,0,87,33,1955.902,1955.902,2270.556,3441.981,3442.042,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,78f1356c59fffaeaa0192ddeb53cc65df635300ac3c5d3c88071f96992d3eebf,,0,,,,,292,43,1,1,0,0,0 +candidate,micro,group_3,warm,True,12653,1280,0,74,17,2419.994,2419.994,2826.495,4614.271,4614.297,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,78f1356c59fffaeaa0192ddeb53cc65df635300ac3c5d3c88071f96992d3eebf,,0,,,,,307,43,1,1,0,0,0 +candidate,micro,group_3,warm,True,12653,12544,0,96,39,1598.666,1598.666,2243.955,3807.66,3807.699,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,78f1356c59fffaeaa0192ddeb53cc65df635300ac3c5d3c88071f96992d3eebf,,0,,,,,324,43,1,1,0,0,0 +baseline,micro,group_3,warm,True,13303,13184,0,75,23,1156.42,1156.42,1688.591,3280.243,3280.265,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,78f1356c59fffaeaa0192ddeb53cc65df635300ac3c5d3c88071f96992d3eebf,,0,,,,,297,40,1,1,0,0,0 +candidate,micro,group_4,warm,True,12651,12544,0,168,109,1558.689,1558.689,3415.772,4700.746,131608.575,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,42f539fa8e38b3d0a2d20b2fd2b9d8b047c62e56baf0735be5da64b9fcd0f8b5,,0,,,,,357,49,1,1,0,0,0 +baseline,micro,group_4,warm,True,13301,128,0,256,256,2433.274,2433.274,,7261.218,7261.241,0,True,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,42f539fa8e38b3d0a2d20b2fd2b9d8b047c62e56baf0735be5da64b9fcd0f8b5,,0,,,,,0,0,0,0,0,0,0 +baseline,micro,group_4,warm,True,13301,13184,0,256,256,1954.208,1954.208,,6064.039,6064.063,0,True,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,42f539fa8e38b3d0a2d20b2fd2b9d8b047c62e56baf0735be5da64b9fcd0f8b5,,0,,,,,0,0,0,0,0,0,0 +candidate,micro,group_4,warm,True,12651,12544,0,142,75,2351.33,2351.33,3512.621,6304.374,129082.167,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,42f539fa8e38b3d0a2d20b2fd2b9d8b047c62e56baf0735be5da64b9fcd0f8b5,,0,,,,,355,51,1,1,0,0,0 +baseline,micro,group_5,warm,True,13301,128,0,73,16,2688.533,2688.533,3573.492,4224.693,4224.717,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,1e4f8fdd2f50701009d5fee84de6c4fbb1deeb6cbd13eec8bb625f229782f295,,0,,,,,313,46,1,1,0,0,0 +candidate,micro,group_5,warm,True,12651,1280,0,61,17,3110.002,3110.002,3460.55,4562.052,4562.06,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,1e4f8fdd2f50701009d5fee84de6c4fbb1deeb6cbd13eec8bb625f229782f295,,0,,,,,271,36,1,1,0,0,0 +candidate,micro,group_5,warm,True,12651,12544,0,85,27,1934.953,1934.953,2390.967,3621.559,3621.591,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,1e4f8fdd2f50701009d5fee84de6c4fbb1deeb6cbd13eec8bb625f229782f295,,0,,,,,319,48,1,1,0,0,0 +baseline,micro,group_5,warm,True,13301,13184,0,69,20,1713.212,1713.212,2088.43,3123.127,3123.156,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,1e4f8fdd2f50701009d5fee84de6c4fbb1deeb6cbd13eec8bb625f229782f295,,0,,,,,288,42,1,1,0,0,0 +baseline,continuity,session_1_turn_1,cold,True,13307,128,0,81,40,4042.982,4042.982,4263.156,5012.141,5012.161,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,f177cb759c81ff6320d713bd2c69e619a327b9c5f24b97c2df4191e30ce0f4a6,11415,0,,,,,218,29,1,1,0,0,1 +candidate,continuity,session_1_turn_1,cold,True,12657,1152,0,86,34,3635.356,3635.356,3689.042,4233.215,4233.238,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,f177cb759c81ff6320d713bd2c69e619a327b9c5f24b97c2df4191e30ce0f4a6,12536,0,,,,,249,36,1,1,0,0,1 +candidate,continuity,session_1_turn_2,warm,True,12690,1152,0,100,67,3434.197,3434.197,4610.358,5138.51,5138.539,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,7e16bdcc9a4003eeebde04b4ecfcf77c512410c90bf8bc2ff98be66af1ec038a,12657,0,,,,,191,24,1,1,0,0,0 +baseline,continuity,session_1_turn_2,warm,True,13340,13312,0,97,56,1881.593,1881.593,2856.376,4139.296,124484.695,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,7e16bdcc9a4003eeebde04b4ecfcf77c512410c90bf8bc2ff98be66af1ec038a,13307,0,,,,,241,33,1,1,0,0,0 +baseline,continuity,session_1_turn_3,warm,True,13373,128,0,103,70,2087.177,2087.177,4173.942,5401.171,5401.206,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,245663e7ba27e8b44535ca0c93ff8d7abc9a59428cf15968bbff644b5f473618,13340,0,,,,,192,24,1,1,0,0,0 +candidate,continuity,session_1_turn_3,warm,True,12723,1280,0,69,33,2286.443,2286.443,2857.14,3675.973,3675.999,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,245663e7ba27e8b44535ca0c93ff8d7abc9a59428cf15968bbff644b5f473618,12690,0,,,,,216,29,1,1,0,0,0 +candidate,continuity,session_1_turn_4,warm,True,12756,1280,0,14,0,2479.16,,2479.16,2651.271,2651.291,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,8bc4b7844fa1a17dedc06fc3df45d6ec75e52ae210bd71a9572eb28b82f9ae56,12723,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_1_turn_4,warm,True,13406,128,0,79,57,1627.818,1627.818,3457.467,4117.316,4117.339,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,8bc4b7844fa1a17dedc06fc3df45d6ec75e52ae210bd71a9572eb28b82f9ae56,13373,0,,,,,145,19,1,1,0,0,0 +baseline,continuity,session_1_turn_5,warm,True,13439,128,0,14,0,996.182,,996.182,1189.333,1189.358,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,4c7f7bba6a12992a1da50d4c0e1bb19fb8e827632ed90deb83e995c511b66417,13406,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_1_turn_5,warm,True,12789,1280,0,14,0,2130.79,,2130.79,2429.355,2429.377,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,4c7f7bba6a12992a1da50d4c0e1bb19fb8e827632ed90deb83e995c511b66417,12756,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_1_turn_6,warm,True,12822,1280,0,14,0,1391.341,,1391.341,1606.599,1606.621,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,cf1661f6e41c77d596bbbbe2eb8d159fe6664b86647f2eaf63da4064c43c4d19,12789,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_1_turn_6,warm,True,13472,128,0,58,44,2040.889,2040.889,3173.356,3413.202,3413.227,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,cf1661f6e41c77d596bbbbe2eb8d159fe6664b86647f2eaf63da4064c43c4d19,13439,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_1_turn_7,warm,True,13505,128,0,64,37,2102.843,2102.843,2666.17,3158.4,3158.419,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,546d8ff9eae8996000e13c11428fd6d7a618a2020789811af43e8ed19d8aadf4,13472,0,,,,,175,22,1,1,0,0,0 +candidate,continuity,session_1_turn_7,warm,True,12855,12800,0,38,24,2123.193,2123.193,2826.139,3225.518,128791.6,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,546d8ff9eae8996000e13c11428fd6d7a618a2020789811af43e8ed19d8aadf4,12822,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_1_turn_8,warm,True,12888,1280,0,36,0,1942.421,,1942.421,5367.688,5367.711,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,e24e4531d8450a799fc39bfdc004cc27fee50681231456380057307f25d44c84,12855,0,,,,,224,30,1,1,0,0,0 +baseline,continuity,session_1_turn_8,warm,True,13538,128,0,14,0,2073.519,,2073.519,2615.227,2615.255,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,e24e4531d8450a799fc39bfdc004cc27fee50681231456380057307f25d44c84,13505,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_1_turn_9,warm,True,13571,128,0,14,0,4328.493,,4328.493,4628.344,4628.367,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,940f108a53d786e7c4819233ba02532d387149f7d1ddaf357418a8b54f1dd34f,13538,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_1_turn_9,warm,True,12921,1280,0,14,0,3273.592,,3273.592,3916.835,3916.862,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,940f108a53d786e7c4819233ba02532d387149f7d1ddaf357418a8b54f1dd34f,12888,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_1_turn_10,warm,True,12954,1280,0,14,0,2069.123,,2069.123,2775.752,2775.768,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,223563d6e5c33cf8d77bae2f30d5f8f3ceda92f02fc2dbb0cc3da4a50bf34c2c,12921,0,,,,,86,9,1,1,0,0,0 +baseline,continuity,session_1_turn_10,warm,True,13604,128,0,14,0,1517.564,,1517.564,1783.307,1783.33,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,223563d6e5c33cf8d77bae2f30d5f8f3ceda92f02fc2dbb0cc3da4a50bf34c2c,13571,0,,,,,86,9,1,1,0,0,0 +candidate,continuity,session_2_turn_1,cold,True,12657,1280,0,76,37,1885.375,1885.375,3016.272,4933.59,4933.629,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,64e73dc5025a5c9cb991602804bcf68f2470e1c8e245d10bda3098573872da34,12536,0,,,,,203,30,1,1,0,0,1 +baseline,continuity,session_2_turn_1,cold,True,13307,128,0,100,62,2009.571,2009.571,3986.745,5170.682,5170.713,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,64e73dc5025a5c9cb991602804bcf68f2470e1c8e245d10bda3098573872da34,11415,0,,,,,199,29,1,1,0,0,1 +baseline,continuity,session_2_turn_2,warm,True,13340,13312,0,62,35,1682.595,1682.595,2700.142,3006.122,123331.83,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,2ea6e68783916f2002bdcf1ec0e7849f7b7da245e814ef31ed5d8d41e47fbc0c,13307,0,,,,,171,19,1,1,0,0,0 +candidate,continuity,session_2_turn_2,warm,True,12690,1280,0,89,53,5577.577,5577.577,5608.536,7802.46,7802.484,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,2ea6e68783916f2002bdcf1ec0e7849f7b7da245e814ef31ed5d8d41e47fbc0c,12657,0,,,,,190,27,1,1,0,0,0 +candidate,continuity,session_2_turn_3,warm,True,12723,1280,0,31,0,2833.245,,2833.245,4319.796,4319.822,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,7f2f0fd531536e1fca2293136fc11db7a0b2f10a84a92453bb27ad293ed553c3,12690,0,,,,,197,25,1,1,0,0,0 +baseline,continuity,session_2_turn_3,warm,True,13373,128,0,66,29,1471.983,1471.983,2234.788,3318.883,3318.906,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,7f2f0fd531536e1fca2293136fc11db7a0b2f10a84a92453bb27ad293ed553c3,13340,0,,,,,216,30,1,1,0,0,0 +baseline,continuity,session_2_turn_4,warm,True,13406,128,0,57,27,2644.14,2644.14,3182.764,4312.903,4312.925,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,6d94d785217db533e6f629de69149d677c13cd7a6ae9d05be5c2fe792588e010,13373,0,,,,,172,27,1,1,0,0,0 +candidate,continuity,session_2_turn_4,warm,True,12756,1280,0,71,46,2591.111,2591.111,3900.699,5945.134,5945.159,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,6d94d785217db533e6f629de69149d677c13cd7a6ae9d05be5c2fe792588e010,12723,0,,,,,162,22,1,1,0,0,0 +candidate,continuity,session_2_turn_5,warm,True,12789,1280,0,14,0,2080.812,,2080.812,2383.798,2383.829,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,3a0a41145ee92515abd4e86fd1bb67a20d7234e4bc485791a0ca2dcf5533e0b1,12756,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_2_turn_5,warm,True,13439,128,0,14,0,2650.796,,2650.796,3895.743,3895.768,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,3a0a41145ee92515abd4e86fd1bb67a20d7234e4bc485791a0ca2dcf5533e0b1,13406,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_2_turn_6,warm,True,13472,128,0,14,0,7541.681,,7541.681,8050.869,8050.886,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,15279b051b210378ca4022bc9cb3ef8ba516f53abea713566fbca7f6f0ad2be0,13439,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_2_turn_6,warm,True,12822,1280,0,14,0,4417.031,,4417.031,6480.752,6480.779,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,15279b051b210378ca4022bc9cb3ef8ba516f53abea713566fbca7f6f0ad2be0,12789,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_2_turn_7,warm,True,12855,1280,0,14,0,2258.128,,2258.128,3797.381,3797.417,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,a67b08dc86929232395c2f7b88dea323c430c567e0f132b972fba04edd66e089,12822,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_2_turn_7,warm,True,13505,128,0,23,0,3341.204,,3341.204,3674.447,3674.469,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,a67b08dc86929232395c2f7b88dea323c430c567e0f132b972fba04edd66e089,13472,0,,,,,143,19,1,1,0,0,0 +baseline,continuity,session_2_turn_8,warm,True,13538,128,0,14,0,1981.258,,1981.258,2387.678,2387.693,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,f2a38b9f8b2903456a5f99d472c48d3ec0edd56026f381bedbc57e9099fb0e02,13505,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_2_turn_8,warm,True,12888,12800,0,14,0,6568.679,,6568.679,9100.575,150345.618,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,f2a38b9f8b2903456a5f99d472c48d3ec0edd56026f381bedbc57e9099fb0e02,12855,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_2_turn_9,warm,True,12921,1280,0,14,0,3297.902,,3297.902,4010.744,4010.769,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,2b83c8b726d1264b2755b43faf4fc7a8d7b19496223b8d42d7a883f7034b1296,12888,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_2_turn_9,warm,True,13571,128,0,14,0,3326.65,,3326.65,4305.139,4305.16,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,2b83c8b726d1264b2755b43faf4fc7a8d7b19496223b8d42d7a883f7034b1296,13538,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_2_turn_10,warm,True,13604,128,0,14,0,8807.677,,8807.677,9712.387,9712.406,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,b57f989d0e65c12aa9d6e6f0af6881d4c0e56296e9688bf3d166090a561dd4f4,13571,0,,,,,86,9,1,1,0,0,0 +candidate,continuity,session_2_turn_10,warm,True,12954,1280,0,14,0,6481.86,,6481.86,7168.875,7168.894,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,b57f989d0e65c12aa9d6e6f0af6881d4c0e56296e9688bf3d166090a561dd4f4,12921,0,,,,,86,9,1,1,0,0,0 +baseline,continuity,session_3_turn_1,cold,True,13307,128,0,111,62,1572.232,1572.232,2438.991,3707.497,3707.512,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,348a9c3f5e5da169d0899985bd2b2ea33df16ea0fcb1aed9ac0c1aebc8df7414,11415,0,,,,,275,39,1,1,0,0,1 +candidate,continuity,session_3_turn_1,cold,True,12657,1280,0,85,45,3495.181,3495.181,4343.316,5668.402,5668.45,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,348a9c3f5e5da169d0899985bd2b2ea33df16ea0fcb1aed9ac0c1aebc8df7414,12536,0,,,,,211,31,1,1,0,0,1 +candidate,continuity,session_3_turn_2,warm,True,12690,1280,0,42,0,5896.538,,5896.538,7635.14,7635.166,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,ce3f94c5a8c9ff6ebeb4e1f6afb7601e5f163a011349c60bad55afb3c612f501,12657,0,,,,,232,34,1,1,0,0,0 +baseline,continuity,session_3_turn_2,warm,True,13340,128,0,62,37,24487.823,24487.823,24500.837,24899.883,24899.896,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,ce3f94c5a8c9ff6ebeb4e1f6afb7601e5f163a011349c60bad55afb3c612f501,13307,0,,,,,133,21,1,1,0,0,0 +baseline,continuity,session_3_turn_3,warm,True,13373,128,0,64,23,7184.293,7184.293,7793.519,10764.462,10764.504,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,cee755919bc651168c2873837c584b05da3a7ca2ae97768e69869ad9f8a1f0cd,13340,0,,,,,234,36,1,1,0,0,0 +candidate,continuity,session_3_turn_3,warm,True,12723,12672,0,44,23,17940.928,17940.928,17965.658,18290.047,152494.852,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,cee755919bc651168c2873837c584b05da3a7ca2ae97768e69869ad9f8a1f0cd,12690,0,,,,,128,16,1,1,0,0,0 +candidate,continuity,session_3_turn_4,warm,True,12756,1280,0,43,29,1834.776,1834.776,2638.212,3260.838,3260.857,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,b4b121029c647ed9ced26513e01e8036e9204ae9257f16dad442c01d9595c4a1,12723,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_3_turn_4,warm,True,13406,128,0,182,148,3420.223,3420.223,6577.411,7340.533,7340.554,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,b4b121029c647ed9ced26513e01e8036e9204ae9257f16dad442c01d9595c4a1,13373,0,,,,,213,28,1,1,0,0,0 +baseline,continuity,session_3_turn_5,warm,True,13439,128,0,14,0,2940.203,,2940.203,5707.111,5707.128,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,75a542a0f1ef1890b8a72d59b96f87a1ce890372a23e15fd568b16df9f461bd7,13406,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_3_turn_5,warm,False,,,,,,120163.145,,,,240657.318,1,False,0,0,2,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,75a542a0f1ef1890b8a72d59b96f87a1ce890372a23e15fd568b16df9f461bd7,12756,0,,,,,0,0,0,0,0,0,0 +candidate,continuity,session_3_turn_6,warm,True,12822,1280,0,14,0,8625.897,,8625.897,8692.981,8693.001,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,5e40f8be47137f48d06758a2155c0808f44c3eb852fe3f8dd1a6cf091a35c28c,12536,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_3_turn_6,warm,True,13472,128,0,26,0,6243.648,,6243.648,7518.12,7518.146,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,5e40f8be47137f48d06758a2155c0808f44c3eb852fe3f8dd1a6cf091a35c28c,13439,0,,,,,154,21,1,1,0,0,0 +baseline,continuity,session_3_turn_7,warm,True,13505,13440,0,14,0,18550.02,,18550.02,18651.133,138976.786,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,99fa491b0dbb6832b0c42d51e41235180ae342e95af5f7a8c77e3a886a5d03d4,13472,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_3_turn_7,warm,True,12855,1280,0,14,0,11713.686,,11713.686,13630.925,17256.884,1,False,0,1,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,99fa491b0dbb6832b0c42d51e41235180ae342e95af5f7a8c77e3a886a5d03d4,12822,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_3_turn_8,warm,True,12888,1280,0,14,0,7533.208,,7533.208,8977.123,8977.145,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,9804a68057e53b0146d066d5e26af019a02e9373f95eab1e3c089da3e189e47a,12855,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_3_turn_8,warm,True,13538,13440,0,14,0,24994.09,,24994.09,25267.657,145590.357,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,9804a68057e53b0146d066d5e26af019a02e9373f95eab1e3c089da3e189e47a,13505,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_3_turn_9,warm,True,13571,128,0,14,0,13609.084,,13609.084,13666.278,13666.307,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,9628d29e02502ca835d58f9e3b37d0cc64984d4ed5f0f0814eef1e6adb002032,13538,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_3_turn_9,warm,True,12921,1280,0,14,0,5672.84,,5672.84,6187.924,6187.949,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,9628d29e02502ca835d58f9e3b37d0cc64984d4ed5f0f0814eef1e6adb002032,12888,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_3_turn_10,warm,True,12954,1280,0,14,0,3990.599,,3990.599,4255.57,4255.596,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,de71bfe29c6c4365eaca3366a125d6a63a925c88309b24fd7ee1c117df77fad2,12921,0,,,,,86,9,1,1,0,0,0 +baseline,continuity,session_3_turn_10,warm,True,13604,128,0,14,0,2192.388,,2192.388,2512.775,2512.797,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,de71bfe29c6c4365eaca3366a125d6a63a925c88309b24fd7ee1c117df77fad2,13571,0,,,,,86,9,1,1,0,0,0 +candidate,continuity,session_4_turn_1,cold,True,12657,1280,0,109,51,3365.538,3365.538,4357.751,11049.51,11049.535,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,9d0d40bcbe094afa9b8365073ebba830859820f029198233bd1204221be2cb57,12536,0,,,,,298,44,1,1,0,0,1 +baseline,continuity,session_4_turn_1,cold,True,13307,128,0,112,69,18178.624,18178.624,19181.323,20394.366,30784.671,1,False,0,1,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,9d0d40bcbe094afa9b8365073ebba830859820f029198233bd1204221be2cb57,11415,0,,,,,216,30,1,1,0,0,1 +baseline,continuity,session_4_turn_2,warm,True,13340,128,0,97,67,13858.255,13858.255,15704.444,17446.204,17446.227,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,493cadd30a23425a5673cc67cf2ac599dfacb8e30b841089ffd2a2642dca0e91,13307,0,,,,,177,26,1,1,0,0,0 +candidate,continuity,session_4_turn_2,warm,True,12690,1280,0,88,48,5477.259,5477.259,7321.717,8055.055,8055.084,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,493cadd30a23425a5673cc67cf2ac599dfacb8e30b841089ffd2a2642dca0e91,12657,0,,,,,212,33,1,1,0,0,0 +candidate,continuity,session_4_turn_3,warm,True,12723,1280,0,31,0,13801.836,,13801.836,14763.109,14763.164,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,07e71977e755d6d4280f53f3ac36e0db24f407a8804b41f655f00ea9897c7c3f,12690,0,,,,,185,23,1,1,0,0,0 +baseline,continuity,session_4_turn_3,warm,True,13373,128,0,115,79,3304.573,3304.573,6039.86,8026.834,8026.858,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,07e71977e755d6d4280f53f3ac36e0db24f407a8804b41f655f00ea9897c7c3f,13340,0,,,,,220,30,1,1,0,0,0 +baseline,continuity,session_4_turn_4,warm,True,13406,128,0,14,0,10253.187,,10253.187,10350.386,10350.401,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,acb061d67cea8bdf5f68aff6e9bb179fb872e8870ca67dad2a0ae55306d4e969,13373,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_4_turn_4,warm,False,,,,,,120183.324,,,,240499.522,1,False,0,0,2,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,acb061d67cea8bdf5f68aff6e9bb179fb872e8870ca67dad2a0ae55306d4e969,12723,0,,,,,0,0,0,0,0,0,0 +candidate,continuity,session_4_turn_5,warm,True,12789,1280,0,37,0,3444.799,,3444.799,4512.844,4512.869,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,7b22b0c7cc56ebeaec2169b69769a4603389a78e2f5ad63d543397369ff32def,12536,0,,,,,221,30,1,1,0,0,0 +baseline,continuity,session_4_turn_5,warm,True,13439,128,0,26,0,8106.746,,8106.746,9093.775,9093.796,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,7b22b0c7cc56ebeaec2169b69769a4603389a78e2f5ad63d543397369ff32def,13406,0,,,,,154,21,1,1,0,0,0 +baseline,continuity,session_4_turn_6,warm,True,13472,128,0,14,0,3786.798,,3786.798,5407.647,5407.665,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,458c09a3c90d985066611e62467b8ebe05df50cd4a2d59d0a102704d5cd939a9,13439,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_4_turn_6,warm,True,12822,12800,0,14,0,26424.068,,26424.068,30885.467,151447.282,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,458c09a3c90d985066611e62467b8ebe05df50cd4a2d59d0a102704d5cd939a9,12789,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_4_turn_7,warm,True,12855,1280,0,14,0,1765.553,,1765.553,2332.025,9116.924,1,False,0,1,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,900ee2be97278198f980b04609e90885264b1a85174cce3d3acce42ba54356d1,12822,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_4_turn_7,warm,True,13505,13440,0,75,26,14308.758,14308.758,14837.152,15746.956,143108.315,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,900ee2be97278198f980b04609e90885264b1a85174cce3d3acce42ba54356d1,13472,0,,,,,256,37,1,1,0,0,0 +baseline,continuity,session_4_turn_8,warm,True,13538,128,0,14,0,5890.087,,5890.087,6006.976,6006.999,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,a7d9fed5cab2e63ba3ced2279c9be66b615541cf0dd2c623eed9abd52a792d97,13505,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_4_turn_8,warm,True,12888,1280,0,14,0,1820.842,,1820.842,2002.003,12379.532,1,False,0,1,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,a7d9fed5cab2e63ba3ced2279c9be66b615541cf0dd2c623eed9abd52a792d97,12855,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_4_turn_9,warm,True,12921,1280,0,14,0,2491.645,,2491.645,2591.881,2591.906,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,8440c4b2b874385ae96653660ee5d902f545769552ec558d4aba6410087f37e2,12888,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_4_turn_9,warm,True,13571,13568,0,14,0,11098.903,,11098.903,11187.433,131977.269,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,8440c4b2b874385ae96653660ee5d902f545769552ec558d4aba6410087f37e2,13538,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_4_turn_10,warm,True,13604,128,0,14,0,9385.063,,9385.063,9724.143,9724.163,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,4ea81605b393b2727ada8b16fbf259b27d0113b55aff7d3cc920c99a4dfe74d2,13571,0,,,,,86,9,1,1,0,0,0 +candidate,continuity,session_4_turn_10,warm,True,12954,1280,0,14,0,4750.18,,4750.18,12216.804,12216.82,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,4ea81605b393b2727ada8b16fbf259b27d0113b55aff7d3cc920c99a4dfe74d2,12921,0,,,,,86,9,1,1,0,0,0 +baseline,continuity,session_5_turn_1,cold,True,13307,13184,0,71,33,6580.981,6580.981,6996.109,10181.423,130508.461,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,5861ae10c4852ebf4db44554763132f76e7c7da9d1ec8e7a41179ce47dc0458d,11415,0,,,,,204,29,1,1,0,0,1 +candidate,continuity,session_5_turn_1,cold,True,12657,12544,0,60,25,1368.71,1368.71,1844.227,2803.945,139225.56,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,5861ae10c4852ebf4db44554763132f76e7c7da9d1ec8e7a41179ce47dc0458d,12536,0,,,,,204,25,1,1,0,0,1 +candidate,continuity,session_5_turn_2,warm,True,12690,1280,0,100,85,3536.923,3536.923,5013.297,6138.28,6138.308,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,3456feecafcb2118bb3f17eb6b636ff56c498c2656e135e5d35faa3111a86a24,12657,0,,,,,81,11,1,1,0,0,0 +baseline,continuity,session_5_turn_2,warm,True,13340,128,0,128,98,2790.921,2790.921,5222.014,6246.804,6246.834,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,3456feecafcb2118bb3f17eb6b636ff56c498c2656e135e5d35faa3111a86a24,13307,0,,,,,192,25,1,1,0,0,0 +baseline,continuity,session_5_turn_3,warm,True,13373,128,0,14,0,4155.502,,4155.502,4878.564,4878.587,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,9610bcba9239145be5e062862e217b189e41d398855afaba5ea8def19592c71c,13340,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_5_turn_3,warm,True,12723,1280,0,81,39,6484.999,6484.999,7127.761,8813.884,8813.913,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,9610bcba9239145be5e062862e217b189e41d398855afaba5ea8def19592c71c,12690,0,,,,,217,34,1,1,0,0,0 +candidate,continuity,session_5_turn_4,warm,True,12756,1280,0,14,0,3037.98,,3037.98,3442.007,3442.034,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,bb0c3e1a1b0faf28d83309294d27a42a4e4972bd6a13ffcec5be15f416d050d0,12723,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_5_turn_4,warm,True,13406,13312,0,106,61,1486.427,1486.427,2791.997,6283.973,126600.315,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,bb0c3e1a1b0faf28d83309294d27a42a4e4972bd6a13ffcec5be15f416d050d0,13373,0,,,,,253,36,1,1,0,0,0 +baseline,continuity,session_5_turn_5,warm,True,13439,128,0,69,26,9004.624,9004.624,9234.674,13637.756,20609.117,1,False,0,1,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,8555c3ec84863a4693b8d86997189ecfb0d40fe4a2ac5df4d55e412c1fdb4df3,13406,0,,,,,239,36,1,1,0,0,0 +candidate,continuity,session_5_turn_5,warm,True,12789,1280,0,14,0,5625.337,,5625.337,7816.749,7816.769,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,8555c3ec84863a4693b8d86997189ecfb0d40fe4a2ac5df4d55e412c1fdb4df3,12756,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_5_turn_6,warm,True,12822,1280,0,30,0,5780.575,,5780.575,7400.648,7400.676,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,789bd32f60d16cc0a4d6dec92d8799271bb33ef0f41f38a17794554ab310c07e,12789,0,,,,,178,22,1,1,0,0,0 +baseline,continuity,session_5_turn_6,warm,True,13472,13440,0,14,0,3691.817,,3691.817,6071.091,126397.892,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,789bd32f60d16cc0a4d6dec92d8799271bb33ef0f41f38a17794554ab310c07e,13439,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_5_turn_7,warm,True,13505,128,0,38,0,3538.856,,3538.856,6399.932,6399.956,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,f5d00a6ec6ad331679ed134f20876fcf60e3b0da4b8425ff64c039de44cf47f1,13472,0,,,,,203,31,1,1,0,0,0 +candidate,continuity,session_5_turn_7,warm,True,12855,1280,0,14,0,6145.01,,6145.01,7712.216,7712.235,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,f5d00a6ec6ad331679ed134f20876fcf60e3b0da4b8425ff64c039de44cf47f1,12822,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_5_turn_8,warm,True,12888,1280,0,14,0,5029.628,,5029.628,5668.94,16046.794,1,False,0,1,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,0c2ca636ca230f911ee3a92a38a968fa1118738ae6f82fa555717b198e9968fb,12855,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_5_turn_8,warm,True,13538,13440,0,14,0,5497.628,,5497.628,9653.846,130124.009,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,0c2ca636ca230f911ee3a92a38a968fa1118738ae6f82fa555717b198e9968fb,13505,0,,,,,85,9,1,1,0,0,0 +baseline,continuity,session_5_turn_9,warm,True,13571,128,0,14,0,10872.471,,10872.471,12963.045,12963.067,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,437e7287343f5d2c1cf5f834ff5a294578080ed3f2c9fd72f17098430acb1e17,13538,0,,,,,85,9,1,1,0,0,0 +candidate,continuity,session_5_turn_9,warm,True,12921,1280,0,22,0,7320.623,,7320.623,7701.284,128027.008,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,437e7287343f5d2c1cf5f834ff5a294578080ed3f2c9fd72f17098430acb1e17,12888,0,,,,,117,17,1,1,0,0,0 +candidate,continuity,session_5_turn_10,warm,True,12954,12928,0,14,0,4819.205,,4819.205,5989.569,126313.804,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,b9e0534a77b613f3752aed3112c4781ed975c475e180f4cc7aa4b1658bf8a5f2,12921,0,,,,,86,9,1,1,0,0,0 +baseline,continuity,session_5_turn_10,warm,True,13604,128,0,14,0,9204.949,,9204.949,9551.197,9551.215,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,b9e0534a77b613f3752aed3112c4781ed975c475e180f4cc7aa4b1658bf8a5f2,13571,0,,,,,86,9,1,1,0,0,0 +baseline,multitask,explain,,True,13297,128,0,108,18,4567.409,4567.409,4621.705,11558.268,11558.291,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,b34c34805d8ebd188b6062933fde4bbc7c34fc08eb8150745a2ff98ce50efc21,,0,True,True,False,False,439,66,1,1,0,0,0 +candidate,multitask,explain,,True,12647,1152,0,104,18,2909.366,2909.366,3357.276,9564.138,9564.153,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,b34c34805d8ebd188b6062933fde4bbc7c34fc08eb8150745a2ff98ce50efc21,,0,True,True,False,False,417,64,1,1,0,0,0 +candidate,multitask,advice,,True,12653,12544,0,256,67,4703.891,4703.891,4840.483,19573.848,139885.7,1,True,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,9b1ba6a445737760f7670d70dcd86125db61e7b4ed201709609fee3ffd375b94,,0,False,True,False,False,817,145,7,4,3,0,3 +baseline,multitask,advice,,True,13303,128,0,256,69,14103.157,14103.157,15774.243,21589.805,21589.831,0,True,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,9b1ba6a445737760f7670d70dcd86125db61e7b4ed201709609fee3ffd375b94,,0,False,True,False,False,821,140,7,4,3,0,3 +baseline,multitask,summary,,True,13329,128,0,168,122,7252.777,7252.777,,10076.022,10076.045,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,9516efb4806b1017fa62c1974b3ff7ee895e29bce3c244ed81684422d36796ae,,1,False,False,False,False,0,0,0,0,0,0,0 +candidate,multitask,summary,,True,12679,1280,0,82,48,2461.269,2461.269,3194.591,5188.579,5188.599,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,9516efb4806b1017fa62c1974b3ff7ee895e29bce3c244ed81684422d36796ae,,0,True,True,False,False,182,30,1,1,0,0,0 +candidate,multitask,technical_comparison,,True,12655,12544,0,221,39,3996.003,3996.003,4230.243,12931.114,140053.189,1,False,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,b756c2f93cd5c267c71ce7c8d1ff2a054530faeb08f45ea0f812c351cc3eeb03,,0,True,True,False,False,791,117,4,1,4,0,4 +baseline,multitask,technical_comparison,,True,13305,128,0,242,45,8918.945,8918.945,10156.976,16549.636,16549.67,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,b756c2f93cd5c267c71ce7c8d1ff2a054530faeb08f45ea0f812c351cc3eeb03,,0,True,True,False,False,851,126,4,1,4,0,4 +baseline,multitask,business_writing,,True,13310,13184,0,112,29,5739.337,5739.337,6305.406,11163.662,131492.22,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,52149552292eee4ae9c6c012a291932fc2356daa3bc4cc0fe6874f9bedded441,,0,True,True,False,False,345,61,10,5,0,0,0 +candidate,multitask,business_writing,,True,12660,1280,0,108,38,3793.594,3793.594,4326.524,7723.234,7723.259,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,52149552292eee4ae9c6c012a291932fc2356daa3bc4cc0fe6874f9bedded441,,0,True,True,False,False,287,52,10,5,0,0,0 +candidate,multitask,retired_summarize,,True,12674,1280,0,67,44,5816.057,5816.057,7988.649,11842.497,11842.516,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,5b74800560f1d42f2a369a5e110167a16f8784ae34377eb3e74a0ca671105e8b,,0,True,True,False,False,81,15,1,1,0,0,0 +baseline,multitask,retired_summarize,,True,13324,128,0,80,57,9155.508,9155.508,10441.17,16543.415,16543.441,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,5b74800560f1d42f2a369a5e110167a16f8784ae34377eb3e74a0ca671105e8b,,0,True,True,False,False,81,15,1,1,0,0,0 +baseline,multitask,retired_weather,,True,13306,128,0,125,81,5924.129,5924.129,,9081.747,9081.767,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,235da014104e000a6c679a9beb69c3da414f2473e441cb6d137d0a4512494343,,1,False,False,False,False,0,0,0,0,0,0,0 +candidate,multitask,retired_weather,,True,12656,1280,0,250,122,5626.028,5626.028,,8657.693,8657.713,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,235da014104e000a6c679a9beb69c3da414f2473e441cb6d137d0a4512494343,,1,True,True,False,False,0,0,0,0,0,0,0 +candidate,multitask,hidden_filesystem,,True,12653,1280,0,67,19,6238.298,6238.298,,8936.117,8936.149,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,b35d1e9fb8e2b085ef639f715e9aec6fa2aea0320dc664c8b4a4d65da77a7ccf,,1,True,True,False,False,0,0,0,0,0,0,0 +baseline,multitask,hidden_filesystem,,True,13303,128,0,68,20,16281.978,16281.978,,17924.158,17924.182,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,b35d1e9fb8e2b085ef639f715e9aec6fa2aea0320dc664c8b4a4d65da77a7ccf,,1,True,True,False,False,0,0,0,0,0,0,0 +baseline,multitask,retired_git_diff,,True,13302,13184,0,121,75,5051.573,5051.573,,9941.563,130377.414,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,ca16682bf413df1a58d0ec5e55aff7e2b4c8759ab404f57a14db61375b9e67a3,,1,False,False,False,False,0,0,0,0,0,0,0 +candidate,multitask,retired_git_diff,,True,12652,1280,0,70,28,6103.566,6103.566,,7411.221,7411.241,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,ca16682bf413df1a58d0ec5e55aff7e2b4c8759ab404f57a14db61375b9e67a3,,2,True,True,False,False,0,0,0,0,0,0,0 +candidate,multitask,retired_nano_pdf,,True,12660,1280,0,73,26,2258.341,2258.341,,4053.8,4053.829,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,8242792e350da00c4248195d6102dce93b896b5d4b3309f0c41640d15e675a47,,1,True,True,False,False,0,0,0,0,0,0,0 +baseline,multitask,retired_nano_pdf,,True,13310,128,0,114,67,7381.786,7381.786,,9628.175,9628.196,0,False,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,8242792e350da00c4248195d6102dce93b896b5d4b3309f0c41640d15e675a47,,1,True,True,False,False,0,0,0,0,0,0,0 +baseline,multitask,retired_seedance,,True,13306,13184,0,185,136,2890.226,2890.226,,7533.375,127861.299,1,False,0,0,1,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,1f5680e80a941f67009b9207c44371fa0d4ce8a9815455fcb88164abead687f4,,1,True,True,False,False,0,0,0,0,0,0,0 +candidate,multitask,retired_seedance,,True,12656,1280,0,155,106,6650.675,6650.675,,8445.153,8445.176,0,False,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,1f5680e80a941f67009b9207c44371fa0d4ce8a9815455fcb88164abead687f4,,1,True,True,False,False,0,0,0,0,0,0,0 +candidate,multitask,retired_ai_video_script,,True,12660,12544,0,256,256,1247.258,1247.258,,5692.253,134924.449,1,True,0,0,1,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,83f5c30aa7dd2fa6697459d16d9d8f70b86422bf7c4432c16165c39a25f4dc5f,,0,False,False,False,False,0,0,0,0,0,0,0 +baseline,multitask,retired_ai_video_script,,True,13310,128,0,256,256,2883.177,2883.177,,6686.018,6686.035,0,True,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,83f5c30aa7dd2fa6697459d16d9d8f70b86422bf7c4432c16165c39a25f4dc5f,,0,False,False,False,False,0,0,0,0,0,0,0 +baseline,multitask,paper_dependency_replacement,,True,13303,128,0,256,256,1257.722,1257.722,,4521.207,4521.227,0,True,0,0,0,0,71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,614a273c1276ea73f456730f8336c595c81e61ccc8c56604d14da9726457700d,,0,False,False,False,False,0,0,0,0,0,0,0 +candidate,multitask,paper_dependency_replacement,,True,12653,1280,0,256,256,2004.064,2004.064,,4008.673,4008.685,0,True,0,0,0,1,5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49,bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b,614a273c1276ea73f456730f8336c595c81e61ccc8c56604d14da9726457700d,,0,False,False,False,False,0,0,0,0,0,0,0 +candidate,multitask,retired_sub_agent,,True,12762,128,0,74,29,3334.693,3334.693,,4345.545,4345.565,0,False,0,0,0,1,dd4a26913520e3f1caf019f1ec5d56bf3644bce9d1f870f75f649918c4e63af2,d452d2107d826bffcae2c53f859caea807121b971332928b71aa4e9a1dc1288a,c4e2d1a2fd36b29f4b70bbbe08164fb0d8e5ede217d2689cb92dac4006216cbf,,1,True,True,False,False,0,0,0,0,0,0,0 +baseline,multitask,retired_sub_agent,,True,13324,13312,0,100,55,1240.15,1240.15,,4085.756,126864.216,1,False,0,0,1,0,60bb59aa9257ac5abe35bc588497abd0cab6e742806da11a2ac031581f759c3c,e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f,c4e2d1a2fd36b29f4b70bbbe08164fb0d8e5ede217d2689cb92dac4006216cbf,,1,True,True,False,False,0,0,0,0,0,0,0 diff --git a/docs/evidence/skill-simplification/raw.json b/docs/evidence/skill-simplification/raw.json new file mode 100644 index 0000000000..e5c046e150 --- /dev/null +++ b/docs/evidence/skill-simplification/raw.json @@ -0,0 +1,9275 @@ +{ + "schema_version": 1, + "generated_at_utc": "2026-08-29T19:40:32Z", + "identity": { + "baseline_commit_sha": "27ca02ca4596f8f24fe79ab603f068cbec6ab858", + "candidate_commit_sha": "058a7675a24177f513ca9262b1d0db96578c1e58", + "baseline_worktree": { + "state": "clean", + "entry_count": 0, + "porcelain_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "candidate_worktree": { + "state": "clean", + "entry_count": 0, + "porcelain_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "candidate_snapshot_method": "git commit-tree over a temporary index", + "provider": "tokenrhythm", + "model": "deepseek-v4-pro-0813", + "tool_schema_digest": "fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97", + "tool_schema_count": 58, + "machine": { + "os": "Darwin", + "architecture": "arm64", + "python": "3.12.13" + } + }, + "parameters": { + "temperature": null, + "top_p": null, + "concurrency": 1, + "output_limit_tokens": 256, + "calibration_output_limit_tokens": 32, + "request_timeout_seconds": 150.0, + "micro_groups": 5, + "micro_order": "alternating ABBA/BAAB", + "continuity_sessions": 5, + "continuity_turns_per_session": 10, + "synthetic_only": true, + "skills_max_prompt_chars": 8000, + "meta_skill_enabled": true, + "meta_auto_trigger": true, + "default_coding_mode": false, + "cold_cache_definition": "first request in each synthetic continuity session", + "warm_cache_definition": "turns 2-10 in the same fixed-history session" + }, + "prompt_identity": { + "base_system_developer_prompt": "System instructions:\nYou are OpenSquilla running a synthetic, non-user benchmark. Follow the task\naccurately, use a listed Skill only when it clearly applies, and never invent\ntool results.\n\nDeveloper instructions:\nBe concise. Use the available tools when current or workspace state is needed.\nWhen a catalog entry is relevant, follow its documented loading route.", + "dynamic_suffix_template": "Synthetic per-turn context: {request_key}. No private user data is present.", + "base_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_template_digest": "3f3dc3f237086cd08aea173e9f72610f001e3a55a61cd6ee95393f752816580e", + "baseline_catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "candidate_catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49" + }, + "catalogs": { + "baseline": { + "layout": "catalog_after_dynamic", + "eligibility_profile": "synthetic_full_capability", + "physical_bundled_count": 75, + "model_visible_bundled_count": 48, + "rendered_bundled_count": 48, + "complete_catalog_chars": 21675, + "actual_catalog_chars": 6777, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "base_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_template_digest": "3f3dc3f237086cd08aea173e9f72610f001e3a55a61cd6ee95393f752816580e", + "catalog_generation": 0, + "catalog_names": [ + "AwesomeWebpageMetaSkill", + "advanced-dubbing-studio", + "ai-video-script", + "audio-cog", + "cron", + "deep-research", + "docx", + "filesystem", + "git-diff", + "github", + "history-explorer", + "html-coder", + "html-to-pdf", + "http-fetch", + "latex-compile", + "meta-paper-write", + "meta-short-drama", + "meta-skill-creator", + "multi-search-engine", + "music-and-singing-studio", + "nano-banana-pro", + "nano-pdf", + "paper-abstract-author", + "paper-citation-planner", + "paper-experiment-stub", + "paper-outline-author", + "paper-plot-stub", + "paper-preference-planner", + "paper-revision-author", + "paper-source-curator", + "pdf-toolkit", + "pptx", + "seedance-2-prompt", + "skill-creator", + "sub-agent", + "subtitle-burner", + "summarize", + "text-file-read", + "title-card-image", + "tmux", + "video-merger", + "video-still-animator", + "voice-clone-lab", + "voice-conversion-studio", + "voiceover-studio", + "weather", + "web-search", + "xlsx" + ], + "omitted_count": 0, + "local_timing": { + "cold_catalog_build_ms": 196.8915, + "warm_snapshot_iterations": 500, + "warm_snapshot_ms_median": 8.3e-05, + "warm_snapshot_ms_mean": 9.7e-05, + "render_iterations": 500, + "render_ms_median": 0.174208, + "render_ms_mean": 0.177417 + }, + "tool_schema_count": 58, + "tool_schema_chars": 50012, + "tool_schema_digest": "fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97", + "tool_names": [ + "agents_list", + "apply_patch", + "audio_config", + "audio_provider_capabilities", + "background_process", + "create_csv", + "create_pdf_report", + "create_xlsx", + "cron", + "dubbing_download", + "dubbing_generate", + "dubbing_status", + "edit_file", + "exec_command", + "execute_code", + "gateway", + "git_commit", + "git_diff", + "git_log", + "git_status", + "glob_search", + "grep_search", + "http_request", + "image", + "image_generate", + "install_skill_deps", + "list_dir", + "message", + "meta_invoke", + "music_generate", + "pdf", + "process", + "publish_artifact", + "read_file", + "read_spreadsheet", + "router_control", + "session_status", + "sessions_history", + "sessions_list", + "sessions_send", + "sessions_spawn", + "sessions_yield", + "skill_create", + "skill_delete", + "skill_edit", + "skill_install_community", + "skill_list", + "skill_search_community", + "skill_view", + "song_generate", + "tts", + "voice_clone", + "voice_convert", + "voice_search", + "web_discover", + "web_fetch", + "web_search", + "write_file" + ] + }, + "candidate": { + "layout": "catalog_before_dynamic", + "eligibility_profile": "synthetic_full_capability", + "physical_bundled_count": 44, + "model_visible_bundled_count": 11, + "rendered_bundled_count": 11, + "complete_catalog_chars": 6059, + "actual_catalog_chars": 4509, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "base_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_template_digest": "3f3dc3f237086cd08aea173e9f72610f001e3a55a61cd6ee95393f752816580e", + "catalog_generation": 1, + "catalog_names": [ + "deep-research", + "docx", + "github", + "html-coder", + "pdf-toolkit", + "pptx", + "skill-creator", + "xlsx", + "meta-paper-write", + "meta-short-drama", + "meta-skill-creator" + ], + "omitted_count": 0, + "local_timing": { + "cold_catalog_build_ms": 240.668125, + "warm_snapshot_iterations": 500, + "warm_snapshot_ms_median": 0.000167, + "warm_snapshot_ms_mean": 0.000166, + "render_iterations": 500, + "render_ms_median": 0.057625, + "render_ms_mean": 0.057689 + }, + "tool_schema_count": 58, + "tool_schema_chars": 50012, + "tool_schema_digest": "fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97", + "tool_names": [ + "agents_list", + "apply_patch", + "audio_config", + "audio_provider_capabilities", + "background_process", + "create_csv", + "create_pdf_report", + "create_xlsx", + "cron", + "dubbing_download", + "dubbing_generate", + "dubbing_status", + "edit_file", + "exec_command", + "execute_code", + "gateway", + "git_commit", + "git_diff", + "git_log", + "git_status", + "glob_search", + "grep_search", + "http_request", + "image", + "image_generate", + "install_skill_deps", + "list_dir", + "message", + "meta_invoke", + "music_generate", + "pdf", + "process", + "publish_artifact", + "read_file", + "read_spreadsheet", + "router_control", + "session_status", + "sessions_history", + "sessions_list", + "sessions_send", + "sessions_spawn", + "sessions_yield", + "skill_create", + "skill_delete", + "skill_edit", + "skill_install_community", + "skill_list", + "skill_search_community", + "skill_view", + "song_generate", + "tts", + "voice_clone", + "voice_convert", + "voice_search", + "web_discover", + "web_fetch", + "web_search", + "write_file" + ] + } + }, + "coding_catalogs": { + "baseline": { + "layout": "catalog_after_dynamic", + "eligibility_profile": "synthetic_full_capability", + "physical_bundled_count": 75, + "model_visible_bundled_count": 49, + "rendered_bundled_count": 49, + "complete_catalog_chars": 23082, + "actual_catalog_chars": 6838, + "catalog_digest": "60bb59aa9257ac5abe35bc588497abd0cab6e742806da11a2ac031581f759c3c", + "base_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_template_digest": "3f3dc3f237086cd08aea173e9f72610f001e3a55a61cd6ee95393f752816580e", + "catalog_generation": 0, + "catalog_names": [ + "AwesomeWebpageMetaSkill", + "advanced-dubbing-studio", + "ai-video-script", + "audio-cog", + "code-task", + "cron", + "deep-research", + "docx", + "filesystem", + "git-diff", + "github", + "history-explorer", + "html-coder", + "html-to-pdf", + "http-fetch", + "latex-compile", + "meta-paper-write", + "meta-short-drama", + "meta-skill-creator", + "multi-search-engine", + "music-and-singing-studio", + "nano-banana-pro", + "nano-pdf", + "paper-abstract-author", + "paper-citation-planner", + "paper-experiment-stub", + "paper-outline-author", + "paper-plot-stub", + "paper-preference-planner", + "paper-revision-author", + "paper-source-curator", + "pdf-toolkit", + "pptx", + "seedance-2-prompt", + "skill-creator", + "sub-agent", + "subtitle-burner", + "summarize", + "text-file-read", + "title-card-image", + "tmux", + "video-merger", + "video-still-animator", + "voice-clone-lab", + "voice-conversion-studio", + "voiceover-studio", + "weather", + "web-search", + "xlsx" + ], + "omitted_count": 0, + "local_timing": { + "cold_catalog_build_ms": 214.337, + "warm_snapshot_iterations": 500, + "warm_snapshot_ms_median": 0.000125, + "warm_snapshot_ms_mean": 0.000129, + "render_iterations": 500, + "render_ms_median": 0.220187, + "render_ms_mean": 0.220714 + }, + "tool_schema_count": 58, + "tool_schema_chars": 50012, + "tool_schema_digest": "fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97", + "tool_names": [ + "agents_list", + "apply_patch", + "audio_config", + "audio_provider_capabilities", + "background_process", + "create_csv", + "create_pdf_report", + "create_xlsx", + "cron", + "dubbing_download", + "dubbing_generate", + "dubbing_status", + "edit_file", + "exec_command", + "execute_code", + "gateway", + "git_commit", + "git_diff", + "git_log", + "git_status", + "glob_search", + "grep_search", + "http_request", + "image", + "image_generate", + "install_skill_deps", + "list_dir", + "message", + "meta_invoke", + "music_generate", + "pdf", + "process", + "publish_artifact", + "read_file", + "read_spreadsheet", + "router_control", + "session_status", + "sessions_history", + "sessions_list", + "sessions_send", + "sessions_spawn", + "sessions_yield", + "skill_create", + "skill_delete", + "skill_edit", + "skill_install_community", + "skill_list", + "skill_search_community", + "skill_view", + "song_generate", + "tts", + "voice_clone", + "voice_convert", + "voice_search", + "web_discover", + "web_fetch", + "web_search", + "write_file" + ] + }, + "candidate": { + "layout": "catalog_before_dynamic", + "eligibility_profile": "synthetic_full_capability", + "physical_bundled_count": 44, + "model_visible_bundled_count": 12, + "rendered_bundled_count": 12, + "complete_catalog_chars": 7516, + "actual_catalog_chars": 4878, + "catalog_digest": "dd4a26913520e3f1caf019f1ec5d56bf3644bce9d1f870f75f649918c4e63af2", + "base_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_template_digest": "3f3dc3f237086cd08aea173e9f72610f001e3a55a61cd6ee95393f752816580e", + "catalog_generation": 1, + "catalog_names": [ + "deep-research", + "docx", + "github", + "html-coder", + "pdf-toolkit", + "pptx", + "skill-creator", + "xlsx", + "code-task", + "meta-paper-write", + "meta-short-drama", + "meta-skill-creator" + ], + "omitted_count": 0, + "local_timing": { + "cold_catalog_build_ms": 172.391958, + "warm_snapshot_iterations": 500, + "warm_snapshot_ms_median": 0.000125, + "warm_snapshot_ms_mean": 0.000119, + "render_iterations": 500, + "render_ms_median": 0.051834, + "render_ms_mean": 0.052106 + }, + "tool_schema_count": 58, + "tool_schema_chars": 50012, + "tool_schema_digest": "fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97", + "tool_names": [ + "agents_list", + "apply_patch", + "audio_config", + "audio_provider_capabilities", + "background_process", + "create_csv", + "create_pdf_report", + "create_xlsx", + "cron", + "dubbing_download", + "dubbing_generate", + "dubbing_status", + "edit_file", + "exec_command", + "execute_code", + "gateway", + "git_commit", + "git_diff", + "git_log", + "git_status", + "glob_search", + "grep_search", + "http_request", + "image", + "image_generate", + "install_skill_deps", + "list_dir", + "message", + "meta_invoke", + "music_generate", + "pdf", + "process", + "publish_artifact", + "read_file", + "read_spreadsheet", + "router_control", + "session_status", + "sessions_history", + "sessions_list", + "sessions_send", + "sessions_spawn", + "sessions_yield", + "skill_create", + "skill_delete", + "skill_edit", + "skill_install_community", + "skill_list", + "skill_search_community", + "skill_view", + "song_generate", + "tts", + "voice_clone", + "voice_convert", + "voice_search", + "web_discover", + "web_fetch", + "web_search", + "write_file" + ] + } + }, + "calibration": { + "shared": { + "system_developer_tokens": 72, + "tool_schema_tokens": 11343 + }, + "versions": { + "baseline": { + "catalog_tokens": 1771, + "cacheable_prefix_tokens": 11415, + "body_tokens": { + "ordinary": 744, + "meta_step": 2317 + } + }, + "candidate": { + "catalog_tokens": 1121, + "cacheable_prefix_tokens": 12536, + "body_tokens": { + "ordinary": 744, + "meta_step": 2317 + } + } + }, + "body_samples": { + "baseline": { + "ordinary": { + "skill": "github", + "chars": 2430, + "digest": "73380d1a356321d3393dd7170c302554b197362885fe306addd0cf5a49d21a9b" + }, + "meta_step": { + "skill": "paper-section-author", + "chars": 10356, + "digest": "0a5bf34d20aa95da647d7a1d51de57f863298f8d3d2b33ed258b26b5a2b39731" + } + }, + "candidate": { + "ordinary": { + "skill": "github", + "chars": 2430, + "digest": "73380d1a356321d3393dd7170c302554b197362885fe306addd0cf5a49d21a9b" + }, + "meta_step": { + "skill": "paper-section-author", + "chars": 10356, + "digest": "0a5bf34d20aa95da647d7a1d51de57f863298f8d3d2b33ed258b26b5a2b39731" + } + } + } + }, + "rows": [ + { + "success": true, + "input_tokens": 92, + "cached_input_tokens": 0, + "cache_write_tokens": 0, + "output_tokens": 25, + "reasoning_tokens": 23, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 1217.46, + "first_reasoning_ms": 1217.46, + "first_visible_ms": 1570.223, + "successful_attempt_ms": 1691.006, + "version": "shared", + "suite": "calibration", + "task_id": "empty", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "dynamic_suffix_digest": "25f05ded1bd13b899e898514093d76597d8772bdb9fc73edd8065d8bdcb39fbb", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1691.006 + } + ], + "retry_count": 0, + "end_to_end_ms": 1691.045, + "truncated": false, + "system_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 164, + "cached_input_tokens": 0, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 12, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 1531.64, + "first_reasoning_ms": 1531.64, + "first_visible_ms": 1924.057, + "successful_attempt_ms": 2115.704, + "version": "shared", + "suite": "calibration", + "task_id": "base_system_developer", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "cdc8f2e0ce6c9449b20a7eb32c97e71ec71742a9c422b476e3487659cec65995", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2115.704 + } + ], + "retry_count": 0, + "end_to_end_ms": 2115.734, + "truncated": false, + "system_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 11435, + "cached_input_tokens": 256, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 5226.402, + "first_reasoning_ms": null, + "first_visible_ms": 5226.402, + "successful_attempt_ms": 5511.974, + "version": "shared", + "suite": "calibration", + "task_id": "tool_schema", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "dynamic_suffix_digest": "ed12a693c15914f15e05ce5d03729f882da1f0e9cf2eecbca500199c7e0ba4ea", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5511.974 + } + ], + "retry_count": 0, + "end_to_end_ms": 5511.993, + "truncated": false, + "system_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 11524, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 867.013, + "first_reasoning_ms": null, + "first_visible_ms": 867.013, + "successful_attempt_ms": 967.318, + "version": "shared", + "suite": "calibration", + "task_id": "catalogless", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "6c519107eeafa06df79ee67d3f4ef29c105b2aa59604393f08fb3509fcfba2a1", + "dynamic_suffix_digest": "2ef0aaa14e8ddb89d14afafef2093141c66555bf2ae8c69beda988573000ffb8", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 967.318 + } + ], + "retry_count": 0, + "end_to_end_ms": 967.339, + "truncated": false, + "system_digest": "6c519107eeafa06df79ee67d3f4ef29c105b2aa59604393f08fb3509fcfba2a1", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13295, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 1907.321, + "first_reasoning_ms": null, + "first_visible_ms": 1907.321, + "successful_attempt_ms": 2088.332, + "version": "baseline", + "suite": "calibration", + "task_id": "catalog", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "59ba2353370379463dcd623ca9a62a7d7b7d2e9c6337ee06af18f3edff65e5a2", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2088.332 + } + ], + "retry_count": 0, + "end_to_end_ms": 2088.353, + "truncated": false, + "system_digest": "f778bada38976bf8a68d6020b8669e36affa42a8062c31ec7fb2f8c38c9e2966", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 11507, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 1443.356, + "first_reasoning_ms": null, + "first_visible_ms": 1443.356, + "successful_attempt_ms": 1881.895, + "version": "baseline", + "suite": "calibration", + "task_id": "cacheable_prefix", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "932efce5b79a7492a1ca894c802b493f6d265fb5b985d2dee8908aa10f9efe9d", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1881.895 + } + ], + "retry_count": 0, + "end_to_end_ms": 1881.917, + "truncated": false, + "system_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13297, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 32, + "reasoning_tokens": 32, + "stop_reason": "length", + "response_text": "", + "tool_calls": [], + "first_event_ms": 758.796, + "first_reasoning_ms": 758.796, + "first_visible_ms": null, + "successful_attempt_ms": 1629.579, + "version": "baseline", + "suite": "calibration", + "task_id": "body_ordinary_base", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "ae4aa9ab9554fdc17e4e7995b835c4f1f7f467e965c66430a3fcdd2a9d7a1b72", + "dynamic_suffix_digest": "0a43a83b3cc8d8d44c01b337ad0e165ce7c229374a38c65a37c99886ad28dbed", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1629.579 + } + ], + "retry_count": 0, + "end_to_end_ms": 1629.602, + "truncated": true, + "system_digest": "ae4aa9ab9554fdc17e4e7995b835c4f1f7f467e965c66430a3fcdd2a9d7a1b72", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 14041, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 3091.736, + "first_reasoning_ms": null, + "first_visible_ms": 3091.736, + "successful_attempt_ms": 3241.008, + "version": "baseline", + "suite": "calibration", + "task_id": "body_ordinary", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "c8feed1cc1a0ce652cdc58c53d86909fca2b95f959a9af224897285dbb404308", + "dynamic_suffix_digest": "44b5d5a489a48b157920f2dd624963e0db615e445c6d27cf8a1d18bb8078cd8f", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3241.008 + } + ], + "retry_count": 0, + "end_to_end_ms": 3241.028, + "truncated": false, + "system_digest": "c8feed1cc1a0ce652cdc58c53d86909fca2b95f959a9af224897285dbb404308", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13298, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 2859.907, + "first_reasoning_ms": null, + "first_visible_ms": 2859.907, + "successful_attempt_ms": 2979.991, + "version": "baseline", + "suite": "calibration", + "task_id": "body_meta_step_base", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "302e068278938f43442de935e031d9bcc525543da36f3d94fd7be04d99ca67fb", + "dynamic_suffix_digest": "7c62b3844d02ac28ecfbd70ba75c871693baa0863001ed3fa283a53b43488036", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2979.991 + } + ], + "retry_count": 0, + "end_to_end_ms": 2980.013, + "truncated": false, + "system_digest": "302e068278938f43442de935e031d9bcc525543da36f3d94fd7be04d99ca67fb", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 15615, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 32, + "reasoning_tokens": 32, + "stop_reason": "length", + "response_text": "", + "tool_calls": [], + "first_event_ms": 3397.727, + "first_reasoning_ms": 3397.727, + "first_visible_ms": null, + "successful_attempt_ms": 4299.403, + "version": "baseline", + "suite": "calibration", + "task_id": "body_meta_step", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "534fe814b9550d33c14c58b2755ea15c984a8f5e2444e5ac79a9c944a5b4a4e0", + "dynamic_suffix_digest": "0a467caac58b83b53ff7fc57f690dce955e9631ef4f92d3579df68e2381e62b0", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4299.403 + } + ], + "retry_count": 0, + "end_to_end_ms": 4299.432, + "truncated": true, + "system_digest": "534fe814b9550d33c14c58b2755ea15c984a8f5e2444e5ac79a9c944a5b4a4e0", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12645, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 1444.097, + "first_reasoning_ms": null, + "first_visible_ms": 1444.097, + "successful_attempt_ms": 1572.843, + "version": "candidate", + "suite": "calibration", + "task_id": "catalog", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "59ba2353370379463dcd623ca9a62a7d7b7d2e9c6337ee06af18f3edff65e5a2", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120405.891 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1572.843 + } + ], + "retry_count": 1, + "end_to_end_ms": 122229.622, + "truncated": false, + "system_digest": "b9c9cebd23619b1fe1dc040cb6138ca3e3b7acb67981a79bade6894c4e7d8309", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12628, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 2558.122, + "first_reasoning_ms": null, + "first_visible_ms": 2558.122, + "successful_attempt_ms": 2747.094, + "version": "candidate", + "suite": "calibration", + "task_id": "cacheable_prefix", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "932efce5b79a7492a1ca894c802b493f6d265fb5b985d2dee8908aa10f9efe9d", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2747.094 + } + ], + "retry_count": 0, + "end_to_end_ms": 2747.117, + "truncated": false, + "system_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12647, + "cached_input_tokens": 1152, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 1922.757, + "first_reasoning_ms": null, + "first_visible_ms": 1922.757, + "successful_attempt_ms": 2112.309, + "version": "candidate", + "suite": "calibration", + "task_id": "body_ordinary_base", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "ad8194187c27dcccd75471ae97ca32c2dce653c534fc5a9e6649a3c01490084c", + "dynamic_suffix_digest": "0a43a83b3cc8d8d44c01b337ad0e165ce7c229374a38c65a37c99886ad28dbed", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2112.309 + } + ], + "retry_count": 0, + "end_to_end_ms": 2112.319, + "truncated": false, + "system_digest": "ad8194187c27dcccd75471ae97ca32c2dce653c534fc5a9e6649a3c01490084c", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13391, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 1657.911, + "first_reasoning_ms": null, + "first_visible_ms": 1657.911, + "successful_attempt_ms": 1808.343, + "version": "candidate", + "suite": "calibration", + "task_id": "body_ordinary", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "3d94d9af725e786b9aaa0f22bb35a4a915bc6c43ab71207464f8fe8d60946be5", + "dynamic_suffix_digest": "44b5d5a489a48b157920f2dd624963e0db615e445c6d27cf8a1d18bb8078cd8f", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1808.343 + } + ], + "retry_count": 0, + "end_to_end_ms": 1808.358, + "truncated": false, + "system_digest": "3d94d9af725e786b9aaa0f22bb35a4a915bc6c43ab71207464f8fe8d60946be5", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12648, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 2322.397, + "first_reasoning_ms": null, + "first_visible_ms": 2322.397, + "successful_attempt_ms": 2420.389, + "version": "candidate", + "suite": "calibration", + "task_id": "body_meta_step_base", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "0b5006f68cd682266d145f6bd52d77421bff33b8a5f5540947b751e062e7e0e4", + "dynamic_suffix_digest": "7c62b3844d02ac28ecfbd70ba75c871693baa0863001ed3fa283a53b43488036", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2420.389 + } + ], + "retry_count": 0, + "end_to_end_ms": 2420.402, + "truncated": false, + "system_digest": "0b5006f68cd682266d145f6bd52d77421bff33b8a5f5540947b751e062e7e0e4", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 14965, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 2, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "OK", + "tool_calls": [], + "first_event_ms": 1889.844, + "first_reasoning_ms": null, + "first_visible_ms": 1889.844, + "successful_attempt_ms": 1988.032, + "version": "candidate", + "suite": "calibration", + "task_id": "body_meta_step", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "3797a6434fa760875c71e40c124bd9f002a29f74470efaa74b26cb8a17ba7a1c", + "dynamic_suffix_digest": "0a467caac58b83b53ff7fc57f690dce955e9631ef4f92d3579df68e2381e62b0", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1988.032 + } + ], + "retry_count": 0, + "end_to_end_ms": 1988.059, + "truncated": false, + "system_digest": "3797a6434fa760875c71e40c124bd9f002a29f74470efaa74b26cb8a17ba7a1c", + "style": { + "visible_chars": 2, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13299, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 3, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "READY", + "tool_calls": [], + "first_event_ms": 2189.378, + "first_reasoning_ms": null, + "first_visible_ms": 2189.378, + "successful_attempt_ms": 2246.24, + "version": "baseline", + "suite": "warmup", + "task_id": "provider_cache", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "00f30947bff8e65c963c530a1ec847d805c3a59c984bfe0202f324ea0a94d74d", + "cache_phase": "warmup", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2246.24 + } + ], + "retry_count": 0, + "end_to_end_ms": 2246.264, + "truncated": false, + "system_digest": "d729a82f58f80de6e31d18e730c9bfc1196199603c74773099d83402a8347b54", + "style": { + "visible_chars": 5, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12649, + "cached_input_tokens": 1152, + "cache_write_tokens": 0, + "output_tokens": 3, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "READY", + "tool_calls": [], + "first_event_ms": 1814.197, + "first_reasoning_ms": null, + "first_visible_ms": 1814.197, + "successful_attempt_ms": 2062.569, + "version": "candidate", + "suite": "warmup", + "task_id": "provider_cache", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "00f30947bff8e65c963c530a1ec847d805c3a59c984bfe0202f324ea0a94d74d", + "cache_phase": "warmup", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2062.569 + } + ], + "retry_count": 0, + "end_to_end_ms": 2062.588, + "truncated": false, + "system_digest": "59853f06cfc489db6552317108d4a350321f2f99ab3ab2420a416a0b7f2759f7", + "style": { + "visible_chars": 5, + "visible_words": 1, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13303, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 99, + "reasoning_tokens": 28, + "stop_reason": "stop", + "response_text": "Prompt caches are typically keyed by a prefix of the token sequence, so identical content must appear in the same positions to match the cached prefix. Stable ordering keeps earlier, high-value context (like instructions or few-shot examples) fixed and consistent across requests, letting the cache hit the shared prefix instead of being invalidated by reshuffled content.", + "tool_calls": [], + "first_event_ms": 1626.233, + "first_reasoning_ms": 1626.233, + "first_visible_ms": 2685.083, + "successful_attempt_ms": 4776.221, + "version": "baseline", + "suite": "micro", + "task_id": "group_1", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "c5a61a56ea45571a24d844473c28be7d6ed5fed4fa1aa7904671539c1677222b", + "group": 1, + "position": 1, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4776.221 + } + ], + "retry_count": 0, + "end_to_end_ms": 4776.248, + "truncated": false, + "system_digest": "ae5d09ef81fce227254de01a78794967555d518093bedf50c5977f4e1bf51005", + "style": { + "visible_chars": 372, + "visible_words": 56, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12653, + "cached_input_tokens": 1152, + "cache_write_tokens": 0, + "output_tokens": 63, + "reasoning_tokens": 16, + "stop_reason": "stop", + "response_text": "Stable ordering keeps the same instructions and context at the same positions in the prompt, so the longest matching prefix stays unchanged between requests. That lets the cache key on the prefix and reuse it instead of re-processing the whole input.", + "tool_calls": [], + "first_event_ms": 2222.529, + "first_reasoning_ms": 2222.529, + "first_visible_ms": 2537.368, + "successful_attempt_ms": 3567.486, + "version": "candidate", + "suite": "micro", + "task_id": "group_1", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "c5a61a56ea45571a24d844473c28be7d6ed5fed4fa1aa7904671539c1677222b", + "group": 1, + "position": 2, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3567.486 + } + ], + "retry_count": 0, + "end_to_end_ms": 3567.512, + "truncated": false, + "system_digest": "3767c83e8f22f28287f4008ef1801ee3a8fd8f4a7b131e3e924a1f628be73c0c", + "style": { + "visible_chars": 250, + "visible_words": 41, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12653, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 94, + "reasoning_tokens": 31, + "stop_reason": "stop", + "response_text": "Stable ordering keeps the prefix of a prompt byte-for-byte identical across requests, so the cache can match and reuse that long shared prefix instead of recomputing it. When content is reordered between calls, the common prefix shrinks, causing cache misses and forcing the model to reprocess more tokens.", + "tool_calls": [], + "first_event_ms": 1228.151, + "first_reasoning_ms": 1228.151, + "first_visible_ms": 1516.21, + "successful_attempt_ms": 2917.46, + "version": "candidate", + "suite": "micro", + "task_id": "group_1", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "c5a61a56ea45571a24d844473c28be7d6ed5fed4fa1aa7904671539c1677222b", + "group": 1, + "position": 3, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2917.46 + } + ], + "retry_count": 0, + "end_to_end_ms": 2917.471, + "truncated": false, + "system_digest": "3767c83e8f22f28287f4008ef1801ee3a8fd8f4a7b131e3e924a1f628be73c0c", + "style": { + "visible_chars": 306, + "visible_words": 48, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13303, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 78, + "reasoning_tokens": 17, + "stop_reason": "stop", + "response_text": "Stable ordering keeps identical prompt prefixes in the same position across requests, so the cache can match and reuse the exact prefix byte-for-byte instead of re-encoding it. When content is reordered or shuffled, the shared prefix changes, invalidating the cache hit and forcing a full recomputation.", + "tool_calls": [], + "first_event_ms": 1107.827, + "first_reasoning_ms": 1107.827, + "first_visible_ms": 1506.237, + "successful_attempt_ms": 2600.073, + "version": "baseline", + "suite": "micro", + "task_id": "group_1", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "c5a61a56ea45571a24d844473c28be7d6ed5fed4fa1aa7904671539c1677222b", + "group": 1, + "position": 4, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2600.073 + } + ], + "retry_count": 0, + "end_to_end_ms": 2600.091, + "truncated": false, + "system_digest": "ae5d09ef81fce227254de01a78794967555d518093bedf50c5977f4e1bf51005", + "style": { + "visible_chars": 303, + "visible_words": 46, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12654, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 103, + "reasoning_tokens": 19, + "stop_reason": "stop", + "response_text": "A **cache key** is the identifier used to look up an entry — typically a hash or normalized version of the request (URL, parameters, headers) — that determines whether a matching cached result exists. The **cached content** is the stored value itself (the response body, data, or computed result) that gets returned when the key matches, instead of recomputing or re-fetching it.", + "tool_calls": [], + "first_event_ms": 1758.263, + "first_reasoning_ms": 1758.263, + "first_visible_ms": 2333.518, + "successful_attempt_ms": 3615.659, + "version": "candidate", + "suite": "micro", + "task_id": "group_2", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "db6c90e7175a33418f20131bd395b9e56a73e330cfa9886756fe9faa9ee47dfd", + "group": 2, + "position": 1, + "sequence": "BAAB", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 125689.106 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3615.659 + } + ], + "retry_count": 1, + "end_to_end_ms": 129557.256, + "truncated": false, + "system_digest": "e9f96a8f5b811116ff98be91a8a671d898046234282dc754771afd27aed138ce", + "style": { + "visible_chars": 379, + "visible_words": 60, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 2 + } + }, + { + "success": true, + "input_tokens": 13304, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 93, + "reasoning_tokens": 24, + "stop_reason": "stop", + "response_text": "A **cache key** is the unique identifier (often derived from a request's URL, method, headers, or other inputs) used to look up an entry in the cache. The **cached content** is the actual stored data—such as a response body or computed result—that gets returned when its key matches an incoming request.", + "tool_calls": [], + "first_event_ms": 2163.983, + "first_reasoning_ms": 2163.983, + "first_visible_ms": 2283.563, + "successful_attempt_ms": 3739.181, + "version": "baseline", + "suite": "micro", + "task_id": "group_2", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "db6c90e7175a33418f20131bd395b9e56a73e330cfa9886756fe9faa9ee47dfd", + "group": 2, + "position": 2, + "sequence": "BAAB", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3739.181 + } + ], + "retry_count": 0, + "end_to_end_ms": 3739.197, + "truncated": false, + "system_digest": "e57e7ff00ff2fa53306198199a07889ce3bd8395eee70d61a6637150aa3f0f96", + "style": { + "visible_chars": 303, + "visible_words": 53, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 2 + } + }, + { + "success": true, + "input_tokens": 13304, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 75, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "A cache key is the identifier used to look up or store an entry—typically a hash of the request inputs (URL, method, headers, body)—while cached content is the actual stored payload, such as the response body and metadata, that gets returned on a hit. The key determines *where* to find something; the content is *what* is found.", + "tool_calls": [], + "first_event_ms": 1314.844, + "first_reasoning_ms": null, + "first_visible_ms": 1314.844, + "successful_attempt_ms": 2958.799, + "version": "baseline", + "suite": "micro", + "task_id": "group_2", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "db6c90e7175a33418f20131bd395b9e56a73e330cfa9886756fe9faa9ee47dfd", + "group": 2, + "position": 3, + "sequence": "BAAB", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2958.799 + } + ], + "retry_count": 0, + "end_to_end_ms": 2958.822, + "truncated": false, + "system_digest": "e57e7ff00ff2fa53306198199a07889ce3bd8395eee70d61a6637150aa3f0f96", + "style": { + "visible_chars": 329, + "visible_words": 59, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12654, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 98, + "reasoning_tokens": 28, + "stop_reason": "stop", + "response_text": "A cache key is the identifier used to look up an entry in the cache—typically derived from the request (URL, method, parameters, headers)—so that identical requests map to the same slot. Cached content is the actual stored data (the response body, headers, and metadata) that gets returned when a lookup by its key succeeds.", + "tool_calls": [], + "first_event_ms": 1236.399, + "first_reasoning_ms": 1236.399, + "first_visible_ms": 2979.509, + "successful_attempt_ms": 5390.204, + "version": "candidate", + "suite": "micro", + "task_id": "group_2", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "db6c90e7175a33418f20131bd395b9e56a73e330cfa9886756fe9faa9ee47dfd", + "group": 2, + "position": 4, + "sequence": "BAAB", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5390.204 + } + ], + "retry_count": 0, + "end_to_end_ms": 5390.225, + "truncated": false, + "system_digest": "e9f96a8f5b811116ff98be91a8a671d898046234282dc754771afd27aed138ce", + "style": { + "visible_chars": 324, + "visible_words": 56, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13303, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 87, + "reasoning_tokens": 33, + "stop_reason": "stop", + "response_text": "Deterministic catalogs are easier to test because the same input always yields the same output, so expected results can be asserted exactly without flaky timing or randomness. This makes tests reproducible and lets failures be isolated to logic changes rather than nondeterministic variation.", + "tool_calls": [], + "first_event_ms": 1955.902, + "first_reasoning_ms": 1955.902, + "first_visible_ms": 2270.556, + "successful_attempt_ms": 3441.981, + "version": "baseline", + "suite": "micro", + "task_id": "group_3", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "78f1356c59fffaeaa0192ddeb53cc65df635300ac3c5d3c88071f96992d3eebf", + "group": 3, + "position": 1, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3441.981 + } + ], + "retry_count": 0, + "end_to_end_ms": 3442.042, + "truncated": false, + "system_digest": "a0759e79db2682790dfb9843e47fe7edd172930d04725fc4cbb6cf16a8015969", + "style": { + "visible_chars": 292, + "visible_words": 43, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12653, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 74, + "reasoning_tokens": 17, + "stop_reason": "stop", + "response_text": "Deterministic catalogs are easier to test because every input maps to a fixed, predictable output, so assertions can compare exact expected results without flakiness. This removes nondeterminism and hidden state from the test surface, making failures reproducible and root causes straightforward to isolate.", + "tool_calls": [], + "first_event_ms": 2419.994, + "first_reasoning_ms": 2419.994, + "first_visible_ms": 2826.495, + "successful_attempt_ms": 4614.271, + "version": "candidate", + "suite": "micro", + "task_id": "group_3", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "78f1356c59fffaeaa0192ddeb53cc65df635300ac3c5d3c88071f96992d3eebf", + "group": 3, + "position": 2, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4614.271 + } + ], + "retry_count": 0, + "end_to_end_ms": 4614.297, + "truncated": false, + "system_digest": "79486c37fe3ee216eb78e2e716a8538ec72b17ddf8a0af4d06ab15c00644c73d", + "style": { + "visible_chars": 307, + "visible_words": 43, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12653, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 96, + "reasoning_tokens": 39, + "stop_reason": "stop", + "response_text": "Deterministic catalogs are easier to test because they always produce the same output for a given input, so expected results can be hard-coded as assertions without handling variability. This makes failures reproducible and tests repeatable, eliminating flaky or environment-dependent behavior that complicates verification.", + "tool_calls": [], + "first_event_ms": 1598.666, + "first_reasoning_ms": 1598.666, + "first_visible_ms": 2243.955, + "successful_attempt_ms": 3807.66, + "version": "candidate", + "suite": "micro", + "task_id": "group_3", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "78f1356c59fffaeaa0192ddeb53cc65df635300ac3c5d3c88071f96992d3eebf", + "group": 3, + "position": 3, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3807.66 + } + ], + "retry_count": 0, + "end_to_end_ms": 3807.699, + "truncated": false, + "system_digest": "79486c37fe3ee216eb78e2e716a8538ec72b17ddf8a0af4d06ab15c00644c73d", + "style": { + "visible_chars": 324, + "visible_words": 43, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13303, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 75, + "reasoning_tokens": 23, + "stop_reason": "stop", + "response_text": "Deterministic catalogs are easier to test because the same inputs always produce the same outputs, so tests can assert exact expected results without handling nondeterministic variance or flakiness. This also makes failures reproducible and enables straightforward snapshot and regression testing.", + "tool_calls": [], + "first_event_ms": 1156.42, + "first_reasoning_ms": 1156.42, + "first_visible_ms": 1688.591, + "successful_attempt_ms": 3280.243, + "version": "baseline", + "suite": "micro", + "task_id": "group_3", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "78f1356c59fffaeaa0192ddeb53cc65df635300ac3c5d3c88071f96992d3eebf", + "group": 3, + "position": 4, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3280.243 + } + ], + "retry_count": 0, + "end_to_end_ms": 3280.265, + "truncated": false, + "system_digest": "a0759e79db2682790dfb9843e47fe7edd172930d04725fc4cbb6cf16a8015969", + "style": { + "visible_chars": 297, + "visible_words": 40, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12651, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 168, + "reasoning_tokens": 109, + "stop_reason": "stop", + "response_text": "Hidden dependencies should remain executable because a system's behavior often depends on their side effects, so keeping them runnable preserves correctness even when those dependencies aren't explicitly surfaced. Removing or stubbing them silently can break downstream workflows and make failures harder to diagnose, since the actual cause stays invisible.", + "tool_calls": [], + "first_event_ms": 1558.689, + "first_reasoning_ms": 1558.689, + "first_visible_ms": 3415.772, + "successful_attempt_ms": 4700.746, + "version": "candidate", + "suite": "micro", + "task_id": "group_4", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "42f539fa8e38b3d0a2d20b2fd2b9d8b047c62e56baf0735be5da64b9fcd0f8b5", + "group": 4, + "position": 1, + "sequence": "BAAB", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 126655.56 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4700.746 + } + ], + "retry_count": 1, + "end_to_end_ms": 131608.575, + "truncated": false, + "system_digest": "d723bb5151dda7a48e570d6163ccf0894c2eee2bc4f959574b19fb9547743765", + "style": { + "visible_chars": 357, + "visible_words": 49, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13301, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 256, + "reasoning_tokens": 256, + "stop_reason": "length", + "response_text": "", + "tool_calls": [], + "first_event_ms": 2433.274, + "first_reasoning_ms": 2433.274, + "first_visible_ms": null, + "successful_attempt_ms": 7261.218, + "version": "baseline", + "suite": "micro", + "task_id": "group_4", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "42f539fa8e38b3d0a2d20b2fd2b9d8b047c62e56baf0735be5da64b9fcd0f8b5", + "group": 4, + "position": 2, + "sequence": "BAAB", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7261.218 + } + ], + "retry_count": 0, + "end_to_end_ms": 7261.241, + "truncated": true, + "system_digest": "0bb4704860b192d3341394ee9684c4bb12e801f76318b9fe905e089e95a978b9", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13301, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 256, + "reasoning_tokens": 256, + "stop_reason": "length", + "response_text": "", + "tool_calls": [], + "first_event_ms": 1954.208, + "first_reasoning_ms": 1954.208, + "first_visible_ms": null, + "successful_attempt_ms": 6064.039, + "version": "baseline", + "suite": "micro", + "task_id": "group_4", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "42f539fa8e38b3d0a2d20b2fd2b9d8b047c62e56baf0735be5da64b9fcd0f8b5", + "group": 4, + "position": 3, + "sequence": "BAAB", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6064.039 + } + ], + "retry_count": 0, + "end_to_end_ms": 6064.063, + "truncated": true, + "system_digest": "0bb4704860b192d3341394ee9684c4bb12e801f76318b9fe905e089e95a978b9", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12651, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 142, + "reasoning_tokens": 75, + "stop_reason": "stop", + "response_text": "Hidden dependencies should remain executable so the system can still invoke them on demand, preserving behavior even when their internal wiring isn't visible to users. Keeping them runnable also prevents silent breakage — if a latent dependency can no longer execute, failures surface only as hard-to-diagnose errors rather than clear, localizable faults.", + "tool_calls": [], + "first_event_ms": 2351.33, + "first_reasoning_ms": 2351.33, + "first_visible_ms": 3512.621, + "successful_attempt_ms": 6304.374, + "version": "candidate", + "suite": "micro", + "task_id": "group_4", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "42f539fa8e38b3d0a2d20b2fd2b9d8b047c62e56baf0735be5da64b9fcd0f8b5", + "group": 4, + "position": 4, + "sequence": "BAAB", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 122525.408 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6304.374 + } + ], + "retry_count": 1, + "end_to_end_ms": 129082.167, + "truncated": false, + "system_digest": "d723bb5151dda7a48e570d6163ccf0894c2eee2bc4f959574b19fb9547743765", + "style": { + "visible_chars": 355, + "visible_words": 51, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13301, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 73, + "reasoning_tokens": 16, + "stop_reason": "stop", + "response_text": "Synthetic benchmarks use artificially generated scenarios rather than real user data, so no actual personal information is ever read, stored, or transmitted during testing. Because the inputs are fabricated and contain no identifying details, there is nothing sensitive that could leak, be exposed, or be misused.", + "tool_calls": [], + "first_event_ms": 2688.533, + "first_reasoning_ms": 2688.533, + "first_visible_ms": 3573.492, + "successful_attempt_ms": 4224.693, + "version": "baseline", + "suite": "micro", + "task_id": "group_5", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "1e4f8fdd2f50701009d5fee84de6c4fbb1deeb6cbd13eec8bb625f229782f295", + "group": 5, + "position": 1, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4224.693 + } + ], + "retry_count": 0, + "end_to_end_ms": 4224.717, + "truncated": false, + "system_digest": "1feffee5a3d0803fccadff80ccb1855118b7df17d184bdaae4cbdf0349a49b00", + "style": { + "visible_chars": 313, + "visible_words": 46, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12651, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 61, + "reasoning_tokens": 17, + "stop_reason": "stop", + "response_text": "Synthetic benchmarks replace real user data with generated, representative inputs, so private information never enters the evaluation pipeline. This lets systems be tested for quality and reliability without exposing, storing, or leaking any personally identifiable data.", + "tool_calls": [], + "first_event_ms": 3110.002, + "first_reasoning_ms": 3110.002, + "first_visible_ms": 3460.55, + "successful_attempt_ms": 4562.052, + "version": "candidate", + "suite": "micro", + "task_id": "group_5", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "1e4f8fdd2f50701009d5fee84de6c4fbb1deeb6cbd13eec8bb625f229782f295", + "group": 5, + "position": 2, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4562.052 + } + ], + "retry_count": 0, + "end_to_end_ms": 4562.06, + "truncated": false, + "system_digest": "6933d708b4f32ae154386c337cea0efd92c4d8aaee9777eeb024ce74cf54df31", + "style": { + "visible_chars": 271, + "visible_words": 36, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 12651, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 85, + "reasoning_tokens": 27, + "stop_reason": "stop", + "response_text": "Synthetic benchmarks use fabricated or generated data rather than real user records, so no actual personal information is ever processed, stored, or exposed. Because the tasks run on artificial inputs, there is no risk of leaking sensitive details, and the evaluation can proceed without touching anyone's private data.", + "tool_calls": [], + "first_event_ms": 1934.953, + "first_reasoning_ms": 1934.953, + "first_visible_ms": 2390.967, + "successful_attempt_ms": 3621.559, + "version": "candidate", + "suite": "micro", + "task_id": "group_5", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "1e4f8fdd2f50701009d5fee84de6c4fbb1deeb6cbd13eec8bb625f229782f295", + "group": 5, + "position": 3, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3621.559 + } + ], + "retry_count": 0, + "end_to_end_ms": 3621.591, + "truncated": false, + "system_digest": "6933d708b4f32ae154386c337cea0efd92c4d8aaee9777eeb024ce74cf54df31", + "style": { + "visible_chars": 319, + "visible_words": 48, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13301, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 69, + "reasoning_tokens": 20, + "stop_reason": "stop", + "response_text": "Synthetic benchmarks contain no real user data, so there is nothing personal or sensitive to expose during evaluation. They also let systems be tested and compared using controlled, fabricated inputs, which keeps private conversations and identifiers out of the testing pipeline entirely.", + "tool_calls": [], + "first_event_ms": 1713.212, + "first_reasoning_ms": 1713.212, + "first_visible_ms": 2088.43, + "successful_attempt_ms": 3123.127, + "version": "baseline", + "suite": "micro", + "task_id": "group_5", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "1e4f8fdd2f50701009d5fee84de6c4fbb1deeb6cbd13eec8bb625f229782f295", + "group": 5, + "position": 4, + "sequence": "ABBA", + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3123.127 + } + ], + "retry_count": 0, + "end_to_end_ms": 3123.156, + "truncated": false, + "system_digest": "1feffee5a3d0803fccadff80ccb1855118b7df17d184bdaae4cbdf0349a49b00", + "style": { + "visible_chars": 288, + "visible_words": 42, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + } + }, + { + "success": true, + "input_tokens": 13307, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 81, + "reasoning_tokens": 40, + "stop_reason": "stop", + "response_text": "One benefit: **predictable, reproducible behavior** — given the same inputs, a deterministic interface always produces the same outputs, which makes testing, debugging, and reasoning about the system far more reliable.", + "tool_calls": [], + "first_event_ms": 4042.982, + "first_reasoning_ms": 4042.982, + "first_visible_ms": 4263.156, + "successful_attempt_ms": 5012.141, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_1", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "f177cb759c81ff6320d713bd2c69e619a327b9c5f24b97c2df4191e30ce0f4a6", + "session_index": 1, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5012.141 + } + ], + "retry_count": 0, + "end_to_end_ms": 5012.161, + "truncated": false, + "system_digest": "0d8680e688d09398b3e458e1cdabd1f8bc5550640e2c6fe9b367e6cfc6934b62", + "style": { + "visible_chars": 218, + "visible_words": 29, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 11415 + }, + { + "success": true, + "input_tokens": 12657, + "cached_input_tokens": 1152, + "cache_write_tokens": 0, + "output_tokens": 86, + "reasoning_tokens": 34, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is **predictability**: for a given input, they always produce the same output, which makes behavior easier to test, debug, and reason about — and reduces the risk of flaky, hard-to-reproduce failures.", + "tool_calls": [], + "first_event_ms": 3635.356, + "first_reasoning_ms": 3635.356, + "first_visible_ms": 3689.042, + "successful_attempt_ms": 4233.215, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_1", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "f177cb759c81ff6320d713bd2c69e619a327b9c5f24b97c2df4191e30ce0f4a6", + "session_index": 1, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4233.215 + } + ], + "retry_count": 0, + "end_to_end_ms": 4233.238, + "truncated": false, + "system_digest": "9610413aff263c9c854900bb5010f25a7c2bd51e3bbfcd331e9f475ad394722f", + "style": { + "visible_chars": 249, + "visible_words": 36, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 12536 + }, + { + "success": true, + "input_tokens": 12690, + "cached_input_tokens": 1152, + "cache_write_tokens": 0, + "output_tokens": 100, + "reasoning_tokens": 67, + "stop_reason": "stop", + "response_text": "Deterministic software interfaces make behavior predictable and testable — the same inputs always yield the same outputs, which simplifies debugging, testing, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 3434.197, + "first_reasoning_ms": 3434.197, + "first_visible_ms": 4610.358, + "successful_attempt_ms": 5138.51, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_2", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "7e16bdcc9a4003eeebde04b4ecfcf77c512410c90bf8bc2ff98be66af1ec038a", + "session_index": 1, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5138.51 + } + ], + "retry_count": 0, + "end_to_end_ms": 5138.539, + "truncated": false, + "system_digest": "37f3b34876489bd0693ebd3410a5e2aec3df7066d3d3ad8f847fd622c4128fa9", + "style": { + "visible_chars": 191, + "visible_words": 24, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12657 + }, + { + "success": true, + "input_tokens": 13340, + "cached_input_tokens": 13312, + "cache_write_tokens": 0, + "output_tokens": 97, + "reasoning_tokens": 56, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior predictable and reproducible: given the same inputs and preconditions, you always get the same outputs, which simplifies testing, debugging, and formal verification.", + "tool_calls": [], + "first_event_ms": 1881.593, + "first_reasoning_ms": 1881.593, + "first_visible_ms": 2856.376, + "successful_attempt_ms": 4139.296, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_2", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "7e16bdcc9a4003eeebde04b4ecfcf77c512410c90bf8bc2ff98be66af1ec038a", + "session_index": 1, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120093.782 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4139.296 + } + ], + "retry_count": 1, + "end_to_end_ms": 124484.695, + "truncated": false, + "system_digest": "ac34ffd33168abcc47e1263de8ef8a6b2748c14c50400bcb40c25431dfc746b7", + "style": { + "visible_chars": 241, + "visible_words": 33, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13307 + }, + { + "success": true, + "input_tokens": 13373, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 103, + "reasoning_tokens": 70, + "stop_reason": "stop", + "response_text": "Deterministic software interfaces make behavior reproducible: given the same inputs, they always produce the same outputs, which simplifies debugging, testing, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 2087.177, + "first_reasoning_ms": 2087.177, + "first_visible_ms": 4173.942, + "successful_attempt_ms": 5401.171, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_3", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "245663e7ba27e8b44535ca0c93ff8d7abc9a59428cf15968bbff644b5f473618", + "session_index": 1, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5401.171 + } + ], + "retry_count": 0, + "end_to_end_ms": 5401.206, + "truncated": false, + "system_digest": "e63bc9973ae63443a21c0e9f476325ca4c668b6b820f0d6d1c6a6f7c54a1f6b2", + "style": { + "visible_chars": 192, + "visible_words": 24, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13340 + }, + { + "success": true, + "input_tokens": 12723, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 69, + "reasoning_tokens": 33, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior reproducible: given the same inputs, the outputs are always identical, which simplifies testing, debugging, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 2286.443, + "first_reasoning_ms": 2286.443, + "first_visible_ms": 2857.14, + "successful_attempt_ms": 3675.973, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_3", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "245663e7ba27e8b44535ca0c93ff8d7abc9a59428cf15968bbff644b5f473618", + "session_index": 1, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3675.973 + } + ], + "retry_count": 0, + "end_to_end_ms": 3675.999, + "truncated": false, + "system_digest": "44f648092040ab8f02298de6aaaef045eeedde963cdc1baf8c307d82a0220d07", + "style": { + "visible_chars": 216, + "visible_words": 29, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12690 + }, + { + "success": true, + "input_tokens": 12756, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 4: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2479.16, + "first_reasoning_ms": null, + "first_visible_ms": 2479.16, + "successful_attempt_ms": 2651.271, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_4", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "8bc4b7844fa1a17dedc06fc3df45d6ec75e52ae210bd71a9572eb28b82f9ae56", + "session_index": 1, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2651.271 + } + ], + "retry_count": 0, + "end_to_end_ms": 2651.291, + "truncated": false, + "system_digest": "b2ceb331305383ad8fa05226e28186c6a31ced790581a5c5c099fd2effc4c3f3", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12723 + }, + { + "success": true, + "input_tokens": 13406, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 79, + "reasoning_tokens": 57, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior predictable and reproducible, which simplifies testing and debugging.", + "tool_calls": [], + "first_event_ms": 1627.818, + "first_reasoning_ms": 1627.818, + "first_visible_ms": 3457.467, + "successful_attempt_ms": 4117.316, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_4", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "8bc4b7844fa1a17dedc06fc3df45d6ec75e52ae210bd71a9572eb28b82f9ae56", + "session_index": 1, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4117.316 + } + ], + "retry_count": 0, + "end_to_end_ms": 4117.339, + "truncated": false, + "system_digest": "09d7ba004cbe529c91f3a45f52064e6eadbba67d1c840e1eab22eda1ebfa6b2c", + "style": { + "visible_chars": 145, + "visible_words": 19, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13373 + }, + { + "success": true, + "input_tokens": 13439, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 5: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 996.182, + "first_reasoning_ms": null, + "first_visible_ms": 996.182, + "successful_attempt_ms": 1189.333, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_5", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "4c7f7bba6a12992a1da50d4c0e1bb19fb8e827632ed90deb83e995c511b66417", + "session_index": 1, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1189.333 + } + ], + "retry_count": 0, + "end_to_end_ms": 1189.358, + "truncated": false, + "system_digest": "ae4343dad659ec971fad91c166b6e0aaf4c145fffa4dd083a9f6ae2957fd5b08", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13406 + }, + { + "success": true, + "input_tokens": 12789, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 5: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2130.79, + "first_reasoning_ms": null, + "first_visible_ms": 2130.79, + "successful_attempt_ms": 2429.355, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_5", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "4c7f7bba6a12992a1da50d4c0e1bb19fb8e827632ed90deb83e995c511b66417", + "session_index": 1, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2429.355 + } + ], + "retry_count": 0, + "end_to_end_ms": 2429.377, + "truncated": false, + "system_digest": "d9154d61ee60134bd845251f7dcd2b36e9d9090b87d26595088f51b39c5866bf", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12756 + }, + { + "success": true, + "input_tokens": 12822, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 6: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 1391.341, + "first_reasoning_ms": null, + "first_visible_ms": 1391.341, + "successful_attempt_ms": 1606.599, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_6", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "cf1661f6e41c77d596bbbbe2eb8d159fe6664b86647f2eaf63da4064c43c4d19", + "session_index": 1, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1606.599 + } + ], + "retry_count": 0, + "end_to_end_ms": 1606.621, + "truncated": false, + "system_digest": "f09730ce35320dc035cfb4a9de188194d177c346750bb3c1dfb405e139a86692", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12789 + }, + { + "success": true, + "input_tokens": 13472, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 58, + "reasoning_tokens": 44, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 6: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2040.889, + "first_reasoning_ms": 2040.889, + "first_visible_ms": 3173.356, + "successful_attempt_ms": 3413.202, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_6", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "cf1661f6e41c77d596bbbbe2eb8d159fe6664b86647f2eaf63da4064c43c4d19", + "session_index": 1, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3413.202 + } + ], + "retry_count": 0, + "end_to_end_ms": 3413.227, + "truncated": false, + "system_digest": "fb4cf877713d033be5c2e4b43955186f86b572bdbc56b4c1906fd603cb140614", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13439 + }, + { + "success": true, + "input_tokens": 13505, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 64, + "reasoning_tokens": 37, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior predictable and reproducible, which simplifies testing, debugging, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 2102.843, + "first_reasoning_ms": 2102.843, + "first_visible_ms": 2666.17, + "successful_attempt_ms": 3158.4, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_7", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "546d8ff9eae8996000e13c11428fd6d7a618a2020789811af43e8ed19d8aadf4", + "session_index": 1, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3158.4 + } + ], + "retry_count": 0, + "end_to_end_ms": 3158.419, + "truncated": false, + "system_digest": "6fc5043a00b94161241c86a589c7e8d2f205f541c8270134aa961f315cbe37cb", + "style": { + "visible_chars": 175, + "visible_words": 22, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13472 + }, + { + "success": true, + "input_tokens": 12855, + "cached_input_tokens": 12800, + "cache_write_tokens": 0, + "output_tokens": 38, + "reasoning_tokens": 24, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 7: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2123.193, + "first_reasoning_ms": 2123.193, + "first_visible_ms": 2826.139, + "successful_attempt_ms": 3225.518, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_7", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "546d8ff9eae8996000e13c11428fd6d7a618a2020789811af43e8ed19d8aadf4", + "session_index": 1, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 125313.866 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3225.518 + } + ], + "retry_count": 1, + "end_to_end_ms": 128791.6, + "truncated": false, + "system_digest": "4d995abb687f569ce39182d1ded84b6b4efd1113bd1d86bc2315356defbf3ea2", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12822 + }, + { + "success": true, + "input_tokens": 12888, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 36, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior predictable and reproducible — the same input always produces the same output, which simplifies testing, debugging, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 1942.421, + "first_reasoning_ms": null, + "first_visible_ms": 1942.421, + "successful_attempt_ms": 5367.688, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_8", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "e24e4531d8450a799fc39bfdc004cc27fee50681231456380057307f25d44c84", + "session_index": 1, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5367.688 + } + ], + "retry_count": 0, + "end_to_end_ms": 5367.711, + "truncated": false, + "system_digest": "c64bfd362955ca418524f8e67830ee9d15169f70badeaaa6af59b81e4ef1c91b", + "style": { + "visible_chars": 224, + "visible_words": 30, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12855 + }, + { + "success": true, + "input_tokens": 13538, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2073.519, + "first_reasoning_ms": null, + "first_visible_ms": 2073.519, + "successful_attempt_ms": 2615.227, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_8", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "e24e4531d8450a799fc39bfdc004cc27fee50681231456380057307f25d44c84", + "session_index": 1, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2615.227 + } + ], + "retry_count": 0, + "end_to_end_ms": 2615.255, + "truncated": false, + "system_digest": "98b130b7aa028dd030028b75a8e8a4be939897cba5b05ffb065c68738da2ab63", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13505 + }, + { + "success": true, + "input_tokens": 13571, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 4328.493, + "first_reasoning_ms": null, + "first_visible_ms": 4328.493, + "successful_attempt_ms": 4628.344, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_9", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "940f108a53d786e7c4819233ba02532d387149f7d1ddaf357418a8b54f1dd34f", + "session_index": 1, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4628.344 + } + ], + "retry_count": 0, + "end_to_end_ms": 4628.367, + "truncated": false, + "system_digest": "de0100e6755433aaf0e19009c45977c2ed0ea2c4800837245e9d9c6e447797e1", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13538 + }, + { + "success": true, + "input_tokens": 12921, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 3273.592, + "first_reasoning_ms": null, + "first_visible_ms": 3273.592, + "successful_attempt_ms": 3916.835, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_9", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "940f108a53d786e7c4819233ba02532d387149f7d1ddaf357418a8b54f1dd34f", + "session_index": 1, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3916.835 + } + ], + "retry_count": 0, + "end_to_end_ms": 3916.862, + "truncated": false, + "system_digest": "2bcd38fd5df167a5152d8499b51d271f209731ed1e87faa0f60c882c46e846a7", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12888 + }, + { + "success": true, + "input_tokens": 12954, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2069.123, + "first_reasoning_ms": null, + "first_visible_ms": 2069.123, + "successful_attempt_ms": 2775.752, + "version": "candidate", + "suite": "continuity", + "task_id": "session_1_turn_10", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "223563d6e5c33cf8d77bae2f30d5f8f3ceda92f02fc2dbb0cc3da4a50bf34c2c", + "session_index": 1, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2775.752 + } + ], + "retry_count": 0, + "end_to_end_ms": 2775.768, + "truncated": false, + "system_digest": "36ae394a7cf53eb8329a454ab94fcfc76a27d03ce469b8adf00df3450a035a50", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12921 + }, + { + "success": true, + "input_tokens": 13604, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 1517.564, + "first_reasoning_ms": null, + "first_visible_ms": 1517.564, + "successful_attempt_ms": 1783.307, + "version": "baseline", + "suite": "continuity", + "task_id": "session_1_turn_10", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "223563d6e5c33cf8d77bae2f30d5f8f3ceda92f02fc2dbb0cc3da4a50bf34c2c", + "session_index": 1, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 1783.307 + } + ], + "retry_count": 0, + "end_to_end_ms": 1783.33, + "truncated": false, + "system_digest": "3f718b52c341a821382293d6f267dfc416c53197785127b9158bf7dff7016e89", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13571 + }, + { + "success": true, + "input_tokens": 12657, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 76, + "reasoning_tokens": 37, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is **predictability**: given the same inputs, they always produce the same outputs and behavior, which makes them easier to test, debug, and reason about.", + "tool_calls": [], + "first_event_ms": 1885.375, + "first_reasoning_ms": 1885.375, + "first_visible_ms": 3016.272, + "successful_attempt_ms": 4933.59, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_1", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "64e73dc5025a5c9cb991602804bcf68f2470e1c8e245d10bda3098573872da34", + "session_index": 2, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4933.59 + } + ], + "retry_count": 0, + "end_to_end_ms": 4933.629, + "truncated": false, + "system_digest": "d0cc1e3fd791f287b013cc286c79fdd6f06fafe279b399422258e4b7f5876ddd", + "style": { + "visible_chars": 203, + "visible_words": 30, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 12536 + }, + { + "success": true, + "input_tokens": 13307, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 100, + "reasoning_tokens": 62, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is **predictability**: given the same inputs, they always produce the same outputs, which makes them easier to reason about, test, and debug reliably.", + "tool_calls": [], + "first_event_ms": 2009.571, + "first_reasoning_ms": 2009.571, + "first_visible_ms": 3986.745, + "successful_attempt_ms": 5170.682, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_1", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "64e73dc5025a5c9cb991602804bcf68f2470e1c8e245d10bda3098573872da34", + "session_index": 2, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5170.682 + } + ], + "retry_count": 0, + "end_to_end_ms": 5170.713, + "truncated": false, + "system_digest": "426e6ca3f696e30d690fa264d737ddfbdbb99e613e95e089ba1d2500a841a29d", + "style": { + "visible_chars": 199, + "visible_words": 29, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 11415 + }, + { + "success": true, + "input_tokens": 13340, + "cached_input_tokens": 13312, + "cache_write_tokens": 0, + "output_tokens": 62, + "reasoning_tokens": 35, + "stop_reason": "stop", + "response_text": "Deterministic interfaces make behavior reproducible: identical inputs always yield identical outputs, which simplifies testing, debugging, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 1682.595, + "first_reasoning_ms": 1682.595, + "first_visible_ms": 2700.142, + "successful_attempt_ms": 3006.122, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_2", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "2ea6e68783916f2002bdcf1ec0e7849f7b7da245e814ef31ed5d8d41e47fbc0c", + "session_index": 2, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120073.364 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3006.122 + } + ], + "retry_count": 1, + "end_to_end_ms": 123331.83, + "truncated": false, + "system_digest": "d44de70726d8f0a2f05df0b32d32b160df8d129acfff4e7a6778cccbb23fa9e2", + "style": { + "visible_chars": 171, + "visible_words": 19, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13307 + }, + { + "success": true, + "input_tokens": 12690, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 89, + "reasoning_tokens": 53, + "stop_reason": "stop", + "response_text": "Deterministic interfaces make testing reproducible — given the same inputs and state, they always produce the same outputs, so bugs can be reliably reproduced, isolated, and confirmed fixed.", + "tool_calls": [], + "first_event_ms": 5577.577, + "first_reasoning_ms": 5577.577, + "first_visible_ms": 5608.536, + "successful_attempt_ms": 7802.46, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_2", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "2ea6e68783916f2002bdcf1ec0e7849f7b7da245e814ef31ed5d8d41e47fbc0c", + "session_index": 2, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7802.46 + } + ], + "retry_count": 0, + "end_to_end_ms": 7802.484, + "truncated": false, + "system_digest": "3cc1e2e4a397c32148e68bf7e3b9c062803b86b0c6c7770351c42cc25e2cced4", + "style": { + "visible_chars": 190, + "visible_words": 27, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12657 + }, + { + "success": true, + "input_tokens": 12723, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 31, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior reproducible, so identical inputs always produce identical outputs—which simplifies testing, debugging, and verification.", + "tool_calls": [], + "first_event_ms": 2833.245, + "first_reasoning_ms": null, + "first_visible_ms": 2833.245, + "successful_attempt_ms": 4319.796, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_3", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "7f2f0fd531536e1fca2293136fc11db7a0b2f10a84a92453bb27ad293ed553c3", + "session_index": 2, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4319.796 + } + ], + "retry_count": 0, + "end_to_end_ms": 4319.822, + "truncated": false, + "system_digest": "550e68d6840608be237c88c0867164ddd9195dbe23a97b20c3b6121f1160c0a7", + "style": { + "visible_chars": 197, + "visible_words": 25, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12690 + }, + { + "success": true, + "input_tokens": 13373, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 66, + "reasoning_tokens": 29, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior predictable and reproducible: given the same inputs, you always get the same outputs, which simplifies testing, debugging, and verification.", + "tool_calls": [], + "first_event_ms": 1471.983, + "first_reasoning_ms": 1471.983, + "first_visible_ms": 2234.788, + "successful_attempt_ms": 3318.883, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_3", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "7f2f0fd531536e1fca2293136fc11db7a0b2f10a84a92453bb27ad293ed553c3", + "session_index": 2, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3318.883 + } + ], + "retry_count": 0, + "end_to_end_ms": 3318.906, + "truncated": false, + "system_digest": "b8bc6df7932a8e32639487afcb38b7dfd35062a3aa53066d01b10d66733bc614", + "style": { + "visible_chars": 216, + "visible_words": 30, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13340 + }, + { + "success": true, + "input_tokens": 13406, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 57, + "reasoning_tokens": 27, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that the same input always produces the same output, which makes behavior predictable and much easier to test and debug.", + "tool_calls": [], + "first_event_ms": 2644.14, + "first_reasoning_ms": 2644.14, + "first_visible_ms": 3182.764, + "successful_attempt_ms": 4312.903, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_4", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "6d94d785217db533e6f629de69149d677c13cd7a6ae9d05be5c2fe792588e010", + "session_index": 2, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4312.903 + } + ], + "retry_count": 0, + "end_to_end_ms": 4312.925, + "truncated": false, + "system_digest": "8e7783af6d3c1fc5cc33054509d1e12ba7c43b06aa208a9e937d0d5f13134394", + "style": { + "visible_chars": 172, + "visible_words": 27, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13373 + }, + { + "success": true, + "input_tokens": 12756, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 71, + "reasoning_tokens": 46, + "stop_reason": "stop", + "response_text": "A deterministic interface guarantees that the same inputs always produce the same outputs, which makes behavior reproducible and simplifies testing and debugging.", + "tool_calls": [], + "first_event_ms": 2591.111, + "first_reasoning_ms": 2591.111, + "first_visible_ms": 3900.699, + "successful_attempt_ms": 5945.134, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_4", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "6d94d785217db533e6f629de69149d677c13cd7a6ae9d05be5c2fe792588e010", + "session_index": 2, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5945.134 + } + ], + "retry_count": 0, + "end_to_end_ms": 5945.159, + "truncated": false, + "system_digest": "d5584fbddc54d2ac0624b8defaf194c24b9b46c73de046be70f99b3abac31810", + "style": { + "visible_chars": 162, + "visible_words": 22, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12723 + }, + { + "success": true, + "input_tokens": 12789, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 5: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2080.812, + "first_reasoning_ms": null, + "first_visible_ms": 2080.812, + "successful_attempt_ms": 2383.798, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_5", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "3a0a41145ee92515abd4e86fd1bb67a20d7234e4bc485791a0ca2dcf5533e0b1", + "session_index": 2, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2383.798 + } + ], + "retry_count": 0, + "end_to_end_ms": 2383.829, + "truncated": false, + "system_digest": "b5ff2ab33a7eb27598ac7b2b39f4f0b322f14a8b719f9d3383f245f61b397cfa", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12756 + }, + { + "success": true, + "input_tokens": 13439, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 5: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2650.796, + "first_reasoning_ms": null, + "first_visible_ms": 2650.796, + "successful_attempt_ms": 3895.743, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_5", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "3a0a41145ee92515abd4e86fd1bb67a20d7234e4bc485791a0ca2dcf5533e0b1", + "session_index": 2, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3895.743 + } + ], + "retry_count": 0, + "end_to_end_ms": 3895.768, + "truncated": false, + "system_digest": "b9f1a7686acbeb1bea04d6477e3a80f2f9bd02b28ac46d40f34d94505629ec00", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13406 + }, + { + "success": true, + "input_tokens": 13472, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 6: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 7541.681, + "first_reasoning_ms": null, + "first_visible_ms": 7541.681, + "successful_attempt_ms": 8050.869, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_6", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "15279b051b210378ca4022bc9cb3ef8ba516f53abea713566fbca7f6f0ad2be0", + "session_index": 2, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8050.869 + } + ], + "retry_count": 0, + "end_to_end_ms": 8050.886, + "truncated": false, + "system_digest": "f1ada87b327d3f0a5b40b919850bebe2cb90cfab9664cced5ac50f495cadfda5", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13439 + }, + { + "success": true, + "input_tokens": 12822, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 6: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 4417.031, + "first_reasoning_ms": null, + "first_visible_ms": 4417.031, + "successful_attempt_ms": 6480.752, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_6", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "15279b051b210378ca4022bc9cb3ef8ba516f53abea713566fbca7f6f0ad2be0", + "session_index": 2, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6480.752 + } + ], + "retry_count": 0, + "end_to_end_ms": 6480.779, + "truncated": false, + "system_digest": "cd129cd35d2c094d2e6f6fc76d7eeae4736ce1c8c6bc6efd67b4ed5eaaa3497a", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12789 + }, + { + "success": true, + "input_tokens": 12855, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 7: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2258.128, + "first_reasoning_ms": null, + "first_visible_ms": 2258.128, + "successful_attempt_ms": 3797.381, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_7", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "a67b08dc86929232395c2f7b88dea323c430c567e0f132b972fba04edd66e089", + "session_index": 2, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3797.381 + } + ], + "retry_count": 0, + "end_to_end_ms": 3797.417, + "truncated": false, + "system_digest": "36405002c3ed0acca5c9b84d4683b8a025c46b617660870b720e823e581ee1f1", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12822 + }, + { + "success": true, + "input_tokens": 13505, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 23, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior predictable and repeatable, which simplifies testing and debugging.", + "tool_calls": [], + "first_event_ms": 3341.204, + "first_reasoning_ms": null, + "first_visible_ms": 3341.204, + "successful_attempt_ms": 3674.447, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_7", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "a67b08dc86929232395c2f7b88dea323c430c567e0f132b972fba04edd66e089", + "session_index": 2, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3674.447 + } + ], + "retry_count": 0, + "end_to_end_ms": 3674.469, + "truncated": false, + "system_digest": "62af1e9d56aa9aff24c982934d64159129f27f7020ece5a89bf3800f0a9dfb67", + "style": { + "visible_chars": 143, + "visible_words": 19, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13472 + }, + { + "success": true, + "input_tokens": 13538, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 1981.258, + "first_reasoning_ms": null, + "first_visible_ms": 1981.258, + "successful_attempt_ms": 2387.678, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_8", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "f2a38b9f8b2903456a5f99d472c48d3ec0edd56026f381bedbc57e9099fb0e02", + "session_index": 2, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2387.678 + } + ], + "retry_count": 0, + "end_to_end_ms": 2387.693, + "truncated": false, + "system_digest": "424674669c37c3c600430bb7cac7fdf476ff17f31cf54e705fa1b4538b669c6e", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13505 + }, + { + "success": true, + "input_tokens": 12888, + "cached_input_tokens": 12800, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 6568.679, + "first_reasoning_ms": null, + "first_visible_ms": 6568.679, + "successful_attempt_ms": 9100.575, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_8", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "f2a38b9f8b2903456a5f99d472c48d3ec0edd56026f381bedbc57e9099fb0e02", + "session_index": 2, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 140992.641 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9100.575 + } + ], + "retry_count": 1, + "end_to_end_ms": 150345.618, + "truncated": false, + "system_digest": "cc8fbedcb8984a31e12f04bb8f786d9a9607a38e63007b805dde69337f7e065f", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12855 + }, + { + "success": true, + "input_tokens": 12921, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 3297.902, + "first_reasoning_ms": null, + "first_visible_ms": 3297.902, + "successful_attempt_ms": 4010.744, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_9", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "2b83c8b726d1264b2755b43faf4fc7a8d7b19496223b8d42d7a883f7034b1296", + "session_index": 2, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4010.744 + } + ], + "retry_count": 0, + "end_to_end_ms": 4010.769, + "truncated": false, + "system_digest": "840f9e3b1b8750bc1c0bb7af9fe84610d7ff9900791d12cc96d58d02884948a4", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12888 + }, + { + "success": true, + "input_tokens": 13571, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 3326.65, + "first_reasoning_ms": null, + "first_visible_ms": 3326.65, + "successful_attempt_ms": 4305.139, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_9", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "2b83c8b726d1264b2755b43faf4fc7a8d7b19496223b8d42d7a883f7034b1296", + "session_index": 2, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4305.139 + } + ], + "retry_count": 0, + "end_to_end_ms": 4305.16, + "truncated": false, + "system_digest": "bb7a85e6fde2fb68a0190e7807e75b98450518a253ef1afc3da70de8400eb71a", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13538 + }, + { + "success": true, + "input_tokens": 13604, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 8807.677, + "first_reasoning_ms": null, + "first_visible_ms": 8807.677, + "successful_attempt_ms": 9712.387, + "version": "baseline", + "suite": "continuity", + "task_id": "session_2_turn_10", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "b57f989d0e65c12aa9d6e6f0af6881d4c0e56296e9688bf3d166090a561dd4f4", + "session_index": 2, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9712.387 + } + ], + "retry_count": 0, + "end_to_end_ms": 9712.406, + "truncated": false, + "system_digest": "b0296f9684483bcd2a8e583576bc0ec984b88da06e84a23f39302ff158f878cd", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13571 + }, + { + "success": true, + "input_tokens": 12954, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 6481.86, + "first_reasoning_ms": null, + "first_visible_ms": 6481.86, + "successful_attempt_ms": 7168.875, + "version": "candidate", + "suite": "continuity", + "task_id": "session_2_turn_10", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "b57f989d0e65c12aa9d6e6f0af6881d4c0e56296e9688bf3d166090a561dd4f4", + "session_index": 2, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7168.875 + } + ], + "retry_count": 0, + "end_to_end_ms": 7168.894, + "truncated": false, + "system_digest": "41b0d829b7ea4425024ab6e643369759130d7a302d498c648b1b32f1958bdef6", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12921 + }, + { + "success": true, + "input_tokens": 13307, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 111, + "reasoning_tokens": 62, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is **predictability**: given the same inputs, they always produce the same outputs. This makes behavior much easier to test, debug, and reason about — you can reproduce failures reliably and verify correctness with confidence.", + "tool_calls": [], + "first_event_ms": 1572.232, + "first_reasoning_ms": 1572.232, + "first_visible_ms": 2438.991, + "successful_attempt_ms": 3707.497, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_1", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "348a9c3f5e5da169d0899985bd2b2ea33df16ea0fcb1aed9ac0c1aebc8df7414", + "session_index": 3, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3707.497 + } + ], + "retry_count": 0, + "end_to_end_ms": 3707.512, + "truncated": false, + "system_digest": "6b664ff837964d56e5f3f1ec0b2285c4546806c5b553307fdf7c4342594fb022", + "style": { + "visible_chars": 275, + "visible_words": 39, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 11415 + }, + { + "success": true, + "input_tokens": 12657, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 85, + "reasoning_tokens": 45, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is **predictability**: given the same inputs, they always produce the same outputs and behavior, which makes the software easier to test, debug, and reason about.", + "tool_calls": [], + "first_event_ms": 3495.181, + "first_reasoning_ms": 3495.181, + "first_visible_ms": 4343.316, + "successful_attempt_ms": 5668.402, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_1", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "348a9c3f5e5da169d0899985bd2b2ea33df16ea0fcb1aed9ac0c1aebc8df7414", + "session_index": 3, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5668.402 + } + ], + "retry_count": 0, + "end_to_end_ms": 5668.45, + "truncated": false, + "system_digest": "44afbed87766d17a931777e4057a90c999818317cf32a0f0914b9f497e1aa113", + "style": { + "visible_chars": 211, + "visible_words": 31, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 12536 + }, + { + "success": true, + "input_tokens": 12690, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 42, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "A key benefit of deterministic software interfaces is that they make behavior reproducible and testable: the same input always yields the same output, so failures can be reliably reproduced, diagnosed, and prevented from regressing.", + "tool_calls": [], + "first_event_ms": 5896.538, + "first_reasoning_ms": null, + "first_visible_ms": 5896.538, + "successful_attempt_ms": 7635.14, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_2", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "ce3f94c5a8c9ff6ebeb4e1f6afb7601e5f163a011349c60bad55afb3c612f501", + "session_index": 3, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7635.14 + } + ], + "retry_count": 0, + "end_to_end_ms": 7635.166, + "truncated": false, + "system_digest": "9a7a0d1aec3d7690f7c69252a64a14d5f5c13fe5ffc27b49e5f9cc5646f9d14b", + "style": { + "visible_chars": 232, + "visible_words": 34, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12657 + }, + { + "success": true, + "input_tokens": 13340, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 62, + "reasoning_tokens": 37, + "stop_reason": "stop", + "response_text": "A deterministic interface is easier to debug: the same input always produces the same output, so failures can be reproduced reliably.", + "tool_calls": [], + "first_event_ms": 24487.823, + "first_reasoning_ms": 24487.823, + "first_visible_ms": 24500.837, + "successful_attempt_ms": 24899.883, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_2", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "ce3f94c5a8c9ff6ebeb4e1f6afb7601e5f163a011349c60bad55afb3c612f501", + "session_index": 3, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 24899.883 + } + ], + "retry_count": 0, + "end_to_end_ms": 24899.896, + "truncated": false, + "system_digest": "3a692f2acc437f50f36c7cc12c6da4f180a7c2e0380c8f77c2b9e7f6c989fcf4", + "style": { + "visible_chars": 133, + "visible_words": 21, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13307 + }, + { + "success": true, + "input_tokens": 13373, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 64, + "reasoning_tokens": 23, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make testing and debugging easier: given the same inputs, the same output is always produced, so behavior is reproducible and failures can be reliably reproduced and fixed.", + "tool_calls": [], + "first_event_ms": 7184.293, + "first_reasoning_ms": 7184.293, + "first_visible_ms": 7793.519, + "successful_attempt_ms": 10764.462, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_3", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "cee755919bc651168c2873837c584b05da3a7ca2ae97768e69869ad9f8a1f0cd", + "session_index": 3, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 10764.462 + } + ], + "retry_count": 0, + "end_to_end_ms": 10764.504, + "truncated": false, + "system_digest": "bf8e562cfce76f03abc9e17b1249da6c82a1f42c025fac8d64005fb389fc9b5a", + "style": { + "visible_chars": 234, + "visible_words": 36, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13340 + }, + { + "success": true, + "input_tokens": 12723, + "cached_input_tokens": 12672, + "cache_write_tokens": 0, + "output_tokens": 44, + "reasoning_tokens": 23, + "stop_reason": "stop", + "response_text": "Deterministic interfaces make behavior reproducible and easier to test, since identical inputs always produce identical outputs.", + "tool_calls": [], + "first_event_ms": 17940.928, + "first_reasoning_ms": 17940.928, + "first_visible_ms": 17965.658, + "successful_attempt_ms": 18290.047, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_3", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "cee755919bc651168c2873837c584b05da3a7ca2ae97768e69869ad9f8a1f0cd", + "session_index": 3, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 133952.472 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 18290.047 + } + ], + "retry_count": 1, + "end_to_end_ms": 152494.852, + "truncated": false, + "system_digest": "6ff165215e138e477719608bc896b63bd3b35602cec121cd51c27a884dde4782", + "style": { + "visible_chars": 128, + "visible_words": 16, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12690 + }, + { + "success": true, + "input_tokens": 12756, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 43, + "reasoning_tokens": 29, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 4: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 1834.776, + "first_reasoning_ms": 1834.776, + "first_visible_ms": 2638.212, + "successful_attempt_ms": 3260.838, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_4", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "b4b121029c647ed9ced26513e01e8036e9204ae9257f16dad442c01d9595c4a1", + "session_index": 3, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3260.838 + } + ], + "retry_count": 0, + "end_to_end_ms": 3260.857, + "truncated": false, + "system_digest": "d40bae9eec350ad5c968534b3d87847c98467f1f15205d79224641f556a33ceb", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12723 + }, + { + "success": true, + "input_tokens": 13406, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 182, + "reasoning_tokens": 148, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that the same input always produces the same output, which makes behavior predictable and reproducible — simplifying testing, debugging, and formal verification.", + "tool_calls": [], + "first_event_ms": 3420.223, + "first_reasoning_ms": 3420.223, + "first_visible_ms": 6577.411, + "successful_attempt_ms": 7340.533, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_4", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "b4b121029c647ed9ced26513e01e8036e9204ae9257f16dad442c01d9595c4a1", + "session_index": 3, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7340.533 + } + ], + "retry_count": 0, + "end_to_end_ms": 7340.554, + "truncated": false, + "system_digest": "1823cc3bd6fa93557b4af49094239f9d7a733abe7e6d632bc0917649506d4d1a", + "style": { + "visible_chars": 213, + "visible_words": 28, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13373 + }, + { + "success": true, + "input_tokens": 13439, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 5: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2940.203, + "first_reasoning_ms": null, + "first_visible_ms": 2940.203, + "successful_attempt_ms": 5707.111, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_5", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "75a542a0f1ef1890b8a72d59b96f87a1ce890372a23e15fd568b16df9f461bd7", + "session_index": 3, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5707.111 + } + ], + "retry_count": 0, + "end_to_end_ms": 5707.128, + "truncated": false, + "system_digest": "3eee72f65cb687ba62384e24e8a62f01f8fcf9f5d38134db38b687212379dc86", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13406 + }, + { + "success": false, + "input_tokens": null, + "cached_input_tokens": null, + "cache_write_tokens": null, + "output_tokens": null, + "reasoning_tokens": null, + "stop_reason": "", + "response_text": "", + "tool_calls": [], + "first_event_ms": 120163.145, + "first_reasoning_ms": null, + "first_visible_ms": null, + "successful_attempt_ms": null, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_5", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "75a542a0f1ef1890b8a72d59b96f87a1ce890372a23e15fd568b16df9f461bd7", + "session_index": 3, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120241.451 + }, + { + "attempt": 2, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120163.316 + } + ], + "retry_count": 1, + "end_to_end_ms": 240657.318, + "truncated": false, + "system_digest": "dca23ec813ed8c610aac5eecd615ff9037ec48eeb12c359bb9497a74cf3230ad", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12756 + }, + { + "success": true, + "input_tokens": 12822, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 6: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 8625.897, + "first_reasoning_ms": null, + "first_visible_ms": 8625.897, + "successful_attempt_ms": 8692.981, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_6", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "5e40f8be47137f48d06758a2155c0808f44c3eb852fe3f8dd1a6cf091a35c28c", + "session_index": 3, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8692.981 + } + ], + "retry_count": 0, + "end_to_end_ms": 8693.001, + "truncated": false, + "system_digest": "6c9cb19f0896570a2982985c15be89dec698c9f462b3074fdbae87b4990078d1", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12536 + }, + { + "success": true, + "input_tokens": 13472, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 26, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "One benefit: deterministic interfaces make behavior reproducible, so the same input always yields the same output, which simplifies testing and debugging.", + "tool_calls": [], + "first_event_ms": 6243.648, + "first_reasoning_ms": null, + "first_visible_ms": 6243.648, + "successful_attempt_ms": 7518.12, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_6", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "5e40f8be47137f48d06758a2155c0808f44c3eb852fe3f8dd1a6cf091a35c28c", + "session_index": 3, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7518.12 + } + ], + "retry_count": 0, + "end_to_end_ms": 7518.146, + "truncated": false, + "system_digest": "f68aae79ef72b10004a948dadea9eb108d44fdaaab0273c77b31fc7b608da5c4", + "style": { + "visible_chars": 154, + "visible_words": 21, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13439 + }, + { + "success": true, + "input_tokens": 13505, + "cached_input_tokens": 13440, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 7: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 18550.02, + "first_reasoning_ms": null, + "first_visible_ms": 18550.02, + "successful_attempt_ms": 18651.133, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_7", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "99fa491b0dbb6832b0c42d51e41235180ae342e95af5f7a8c77e3a886a5d03d4", + "session_index": 3, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120074.592 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 18651.133 + } + ], + "retry_count": 1, + "end_to_end_ms": 138976.786, + "truncated": false, + "system_digest": "0c7386fd6166b0e71565b3b077c56851c281d8b42a7f1c9b07d7d49a73e0206f", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13472 + }, + { + "success": true, + "input_tokens": 12855, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 7: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 11713.686, + "first_reasoning_ms": null, + "first_visible_ms": 11713.686, + "successful_attempt_ms": 13630.925, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_7", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "99fa491b0dbb6832b0c42d51e41235180ae342e95af5f7a8c77e3a886a5d03d4", + "session_index": 3, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "5xx", + "error_code": "503", + "retry_after_seconds": null, + "latency_ms": 3373.678 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 13630.925 + } + ], + "retry_count": 1, + "end_to_end_ms": 17256.884, + "truncated": false, + "system_digest": "6d76a0f27214e796508bd29c828ac0e8533f8de64baa11435275df492d719e1a", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12822 + }, + { + "success": true, + "input_tokens": 12888, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 7533.208, + "first_reasoning_ms": null, + "first_visible_ms": 7533.208, + "successful_attempt_ms": 8977.123, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_8", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "9804a68057e53b0146d066d5e26af019a02e9373f95eab1e3c089da3e189e47a", + "session_index": 3, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8977.123 + } + ], + "retry_count": 0, + "end_to_end_ms": 8977.145, + "truncated": false, + "system_digest": "41f2f3183bd33f68b5c3d10523f1b4710e93bd7b2dff617237e82bd3e3faedfe", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12855 + }, + { + "success": true, + "input_tokens": 13538, + "cached_input_tokens": 13440, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 24994.09, + "first_reasoning_ms": null, + "first_visible_ms": 24994.09, + "successful_attempt_ms": 25267.657, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_8", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "9804a68057e53b0146d066d5e26af019a02e9373f95eab1e3c089da3e189e47a", + "session_index": 3, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120070.388 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 25267.657 + } + ], + "retry_count": 1, + "end_to_end_ms": 145590.357, + "truncated": false, + "system_digest": "f918019c2e55d2391ed323b6289b6755ae185b228ff6410868b2cd64b5a23e6f", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13505 + }, + { + "success": true, + "input_tokens": 13571, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 13609.084, + "first_reasoning_ms": null, + "first_visible_ms": 13609.084, + "successful_attempt_ms": 13666.278, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_9", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "9628d29e02502ca835d58f9e3b37d0cc64984d4ed5f0f0814eef1e6adb002032", + "session_index": 3, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 13666.278 + } + ], + "retry_count": 0, + "end_to_end_ms": 13666.307, + "truncated": false, + "system_digest": "df834db40a16c7b7daf8c69a48967a0f3eb93cf152198c9992a3fcc5b5813976", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13538 + }, + { + "success": true, + "input_tokens": 12921, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 5672.84, + "first_reasoning_ms": null, + "first_visible_ms": 5672.84, + "successful_attempt_ms": 6187.924, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_9", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "9628d29e02502ca835d58f9e3b37d0cc64984d4ed5f0f0814eef1e6adb002032", + "session_index": 3, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6187.924 + } + ], + "retry_count": 0, + "end_to_end_ms": 6187.949, + "truncated": false, + "system_digest": "69c29e12a6da35e19d201d5e2bf8fb10f9d120be230cc6fa5e41a81c352d0715", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12888 + }, + { + "success": true, + "input_tokens": 12954, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 3990.599, + "first_reasoning_ms": null, + "first_visible_ms": 3990.599, + "successful_attempt_ms": 4255.57, + "version": "candidate", + "suite": "continuity", + "task_id": "session_3_turn_10", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "de71bfe29c6c4365eaca3366a125d6a63a925c88309b24fd7ee1c117df77fad2", + "session_index": 3, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4255.57 + } + ], + "retry_count": 0, + "end_to_end_ms": 4255.596, + "truncated": false, + "system_digest": "971c69f1444647f1e61a5550ebc8f4fab2abeee79726d9b3a3cbcaa7f72e2414", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12921 + }, + { + "success": true, + "input_tokens": 13604, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2192.388, + "first_reasoning_ms": null, + "first_visible_ms": 2192.388, + "successful_attempt_ms": 2512.775, + "version": "baseline", + "suite": "continuity", + "task_id": "session_3_turn_10", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "de71bfe29c6c4365eaca3366a125d6a63a925c88309b24fd7ee1c117df77fad2", + "session_index": 3, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2512.775 + } + ], + "retry_count": 0, + "end_to_end_ms": 2512.797, + "truncated": false, + "system_digest": "00bbbe123c446af0d2e84c0b38f3caec179543d540ca2052b40ab8758e52da5e", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13571 + }, + { + "success": true, + "input_tokens": 12657, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 109, + "reasoning_tokens": 51, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is **predictability**: given the same inputs and state, they always produce the same outputs and side effects. This makes them easier to reason about, test, debug, and reproduce — because behavior doesn't vary with timing, ordering, or hidden state.", + "tool_calls": [], + "first_event_ms": 3365.538, + "first_reasoning_ms": 3365.538, + "first_visible_ms": 4357.751, + "successful_attempt_ms": 11049.51, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_1", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "9d0d40bcbe094afa9b8365073ebba830859820f029198233bd1204221be2cb57", + "session_index": 4, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 11049.51 + } + ], + "retry_count": 0, + "end_to_end_ms": 11049.535, + "truncated": false, + "system_digest": "dd747afb79498ab6a87c504c9314be86e65dc1251285e46bcd7165b09a8d13ec", + "style": { + "visible_chars": 298, + "visible_words": 44, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 12536 + }, + { + "success": true, + "input_tokens": 13307, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 112, + "reasoning_tokens": 69, + "stop_reason": "stop", + "response_text": "One benefit: **predictable, reproducible behavior** — given the same inputs, a deterministic interface always produces the same outputs, which makes it far easier to test, debug, verify, and reason about correctness.", + "tool_calls": [], + "first_event_ms": 18178.624, + "first_reasoning_ms": 18178.624, + "first_visible_ms": 19181.323, + "successful_attempt_ms": 20394.366, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_1", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "9d0d40bcbe094afa9b8365073ebba830859820f029198233bd1204221be2cb57", + "session_index": 4, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "5xx", + "error_code": "504", + "retry_after_seconds": null, + "latency_ms": 10138.821 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 20394.366 + } + ], + "retry_count": 1, + "end_to_end_ms": 30784.671, + "truncated": false, + "system_digest": "142c7e3007ea3e54dc417566d24265ada9e2cbb08b1d0608a869936dea8f7e57", + "style": { + "visible_chars": 216, + "visible_words": 30, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 11415 + }, + { + "success": true, + "input_tokens": 13340, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 97, + "reasoning_tokens": 67, + "stop_reason": "stop", + "response_text": "A deterministic interface always maps the same inputs to the same outputs, which makes behavior predictable and reproducible — a key property for reliable testing and debugging.", + "tool_calls": [], + "first_event_ms": 13858.255, + "first_reasoning_ms": 13858.255, + "first_visible_ms": 15704.444, + "successful_attempt_ms": 17446.204, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_2", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "493cadd30a23425a5673cc67cf2ac599dfacb8e30b841089ffd2a2642dca0e91", + "session_index": 4, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 17446.204 + } + ], + "retry_count": 0, + "end_to_end_ms": 17446.227, + "truncated": false, + "system_digest": "1bdc861ad081566f11b9f0623e2dfcb0bd93b60840ae74845311ea54e9176890", + "style": { + "visible_chars": 177, + "visible_words": 26, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13307 + }, + { + "success": true, + "input_tokens": 12690, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 88, + "reasoning_tokens": 48, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they produce the same output for the same input, which makes them easier to test, debug, and verify — behavior is repeatable and failures are reproducible.", + "tool_calls": [], + "first_event_ms": 5477.259, + "first_reasoning_ms": 5477.259, + "first_visible_ms": 7321.717, + "successful_attempt_ms": 8055.055, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_2", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "493cadd30a23425a5673cc67cf2ac599dfacb8e30b841089ffd2a2642dca0e91", + "session_index": 4, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8055.055 + } + ], + "retry_count": 0, + "end_to_end_ms": 8055.084, + "truncated": false, + "system_digest": "f4db52d00445856e6a6ac7ae4a0f7fe766b5a4166298576563c28e73bbc2b17b", + "style": { + "visible_chars": 212, + "visible_words": 33, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12657 + }, + { + "success": true, + "input_tokens": 12723, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 31, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Deterministic software interfaces make behavior reproducible, so the same inputs reliably produce the same outputs, which simplifies testing, debugging, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 13801.836, + "first_reasoning_ms": null, + "first_visible_ms": 13801.836, + "successful_attempt_ms": 14763.109, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_3", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "07e71977e755d6d4280f53f3ac36e0db24f407a8804b41f655f00ea9897c7c3f", + "session_index": 4, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 14763.109 + } + ], + "retry_count": 0, + "end_to_end_ms": 14763.164, + "truncated": false, + "system_digest": "c4ef195a24d3fd93d5966fc57514fb10137d2456cd4421952f6ff25386219ea3", + "style": { + "visible_chars": 185, + "visible_words": 23, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12690 + }, + { + "success": true, + "input_tokens": 13373, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 115, + "reasoning_tokens": 79, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make systems predictable and reproducible: the same inputs always produce the same outputs, which simplifies testing, debugging, and reasoning about behavior.", + "tool_calls": [], + "first_event_ms": 3304.573, + "first_reasoning_ms": 3304.573, + "first_visible_ms": 6039.86, + "successful_attempt_ms": 8026.834, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_3", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "07e71977e755d6d4280f53f3ac36e0db24f407a8804b41f655f00ea9897c7c3f", + "session_index": 4, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8026.834 + } + ], + "retry_count": 0, + "end_to_end_ms": 8026.858, + "truncated": false, + "system_digest": "16e782c8c8d642556b191793b843a29152c202735d33e15d6d7530db164e791d", + "style": { + "visible_chars": 220, + "visible_words": 30, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13340 + }, + { + "success": true, + "input_tokens": 13406, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 4: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 10253.187, + "first_reasoning_ms": null, + "first_visible_ms": 10253.187, + "successful_attempt_ms": 10350.386, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_4", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "acb061d67cea8bdf5f68aff6e9bb179fb872e8870ca67dad2a0ae55306d4e969", + "session_index": 4, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 10350.386 + } + ], + "retry_count": 0, + "end_to_end_ms": 10350.401, + "truncated": false, + "system_digest": "f36e2f20ba8e3c8df29344efae4508080a1153ed530a77c06ac94321c940f351", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13373 + }, + { + "success": false, + "input_tokens": null, + "cached_input_tokens": null, + "cache_write_tokens": null, + "output_tokens": null, + "reasoning_tokens": null, + "stop_reason": "", + "response_text": "", + "tool_calls": [], + "first_event_ms": 120183.324, + "first_reasoning_ms": null, + "first_visible_ms": null, + "successful_attempt_ms": null, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_4", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "acb061d67cea8bdf5f68aff6e9bb179fb872e8870ca67dad2a0ae55306d4e969", + "session_index": 4, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120063.601 + }, + { + "attempt": 2, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120183.48 + } + ], + "retry_count": 1, + "end_to_end_ms": 240499.522, + "truncated": false, + "system_digest": "11156e4c546359b69ac6e2b0d0c431377ab4b6e8587a84d4cee609538e375cbf", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12723 + }, + { + "success": true, + "input_tokens": 12789, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 37, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior reproducible and predictable: given the same inputs, they always produce the same outputs, which simplifies testing, debugging, and verification.", + "tool_calls": [], + "first_event_ms": 3444.799, + "first_reasoning_ms": null, + "first_visible_ms": 3444.799, + "successful_attempt_ms": 4512.844, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_5", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "7b22b0c7cc56ebeaec2169b69769a4603389a78e2f5ad63d543397369ff32def", + "session_index": 4, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4512.844 + } + ], + "retry_count": 0, + "end_to_end_ms": 4512.869, + "truncated": false, + "system_digest": "b06b2a25b0f1ac428abce768179ae3e72df30621d11ca9336b4020792b736840", + "style": { + "visible_chars": 221, + "visible_words": 30, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12536 + }, + { + "success": true, + "input_tokens": 13439, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 26, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "One benefit: deterministic interfaces make behavior reproducible, so the same input always yields the same output, which simplifies testing and debugging.", + "tool_calls": [], + "first_event_ms": 8106.746, + "first_reasoning_ms": null, + "first_visible_ms": 8106.746, + "successful_attempt_ms": 9093.775, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_5", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "7b22b0c7cc56ebeaec2169b69769a4603389a78e2f5ad63d543397369ff32def", + "session_index": 4, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9093.775 + } + ], + "retry_count": 0, + "end_to_end_ms": 9093.796, + "truncated": false, + "system_digest": "529232de87d3bcb615da21f17a50dd0d78a62653594705f4825cad171811406d", + "style": { + "visible_chars": 154, + "visible_words": 21, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13406 + }, + { + "success": true, + "input_tokens": 13472, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 6: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 3786.798, + "first_reasoning_ms": null, + "first_visible_ms": 3786.798, + "successful_attempt_ms": 5407.647, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_6", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "458c09a3c90d985066611e62467b8ebe05df50cd4a2d59d0a102704d5cd939a9", + "session_index": 4, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5407.647 + } + ], + "retry_count": 0, + "end_to_end_ms": 5407.665, + "truncated": false, + "system_digest": "8a719d8bba88f60e2e6b6255a87b256281fce864502abb0a1677b417bccf107e", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13439 + }, + { + "success": true, + "input_tokens": 12822, + "cached_input_tokens": 12800, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 6: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 26424.068, + "first_reasoning_ms": null, + "first_visible_ms": 26424.068, + "successful_attempt_ms": 30885.467, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_6", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "458c09a3c90d985066611e62467b8ebe05df50cd4a2d59d0a102704d5cd939a9", + "session_index": 4, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120304.773 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 30885.467 + } + ], + "retry_count": 1, + "end_to_end_ms": 151447.282, + "truncated": false, + "system_digest": "0efc284d170b3c9c808d4e138f5d9edd5967bcc906a0cebf48770452f4a5ce40", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12789 + }, + { + "success": true, + "input_tokens": 12855, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 7: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 1765.553, + "first_reasoning_ms": null, + "first_visible_ms": 1765.553, + "successful_attempt_ms": 2332.025, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_7", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "900ee2be97278198f980b04609e90885264b1a85174cce3d3acce42ba54356d1", + "session_index": 4, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "5xx", + "error_code": "503", + "retry_after_seconds": null, + "latency_ms": 6534.328 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2332.025 + } + ], + "retry_count": 1, + "end_to_end_ms": 9116.924, + "truncated": false, + "system_digest": "e6a20defde87515493eb9062645f9e9981471316557c485d9d3e90bc34147076", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12822 + }, + { + "success": true, + "input_tokens": 13505, + "cached_input_tokens": 13440, + "cache_write_tokens": 0, + "output_tokens": 75, + "reasoning_tokens": 26, + "stop_reason": "stop", + "response_text": "A deterministic software interface always produces the same output for a given input, which makes it easier to test, debug, and reason about — the same input reliably yields the same result, eliminating flaky, order-dependent, or timing-dependent behavior.", + "tool_calls": [], + "first_event_ms": 14308.758, + "first_reasoning_ms": 14308.758, + "first_visible_ms": 14837.152, + "successful_attempt_ms": 15746.956, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_7", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "900ee2be97278198f980b04609e90885264b1a85174cce3d3acce42ba54356d1", + "session_index": 4, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 127110.153 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 15746.956 + } + ], + "retry_count": 1, + "end_to_end_ms": 143108.315, + "truncated": false, + "system_digest": "eeafeb977377ebd8ddf04ac0736157e13731418dc4f333e13203298f44a86e2c", + "style": { + "visible_chars": 256, + "visible_words": 37, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13472 + }, + { + "success": true, + "input_tokens": 13538, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 5890.087, + "first_reasoning_ms": null, + "first_visible_ms": 5890.087, + "successful_attempt_ms": 6006.976, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_8", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "a7d9fed5cab2e63ba3ced2279c9be66b615541cf0dd2c623eed9abd52a792d97", + "session_index": 4, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6006.976 + } + ], + "retry_count": 0, + "end_to_end_ms": 6006.999, + "truncated": false, + "system_digest": "89476679d486b40b9827adf55c119e8e8b82ffcc236c79f933b9fac32c2159da", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13505 + }, + { + "success": true, + "input_tokens": 12888, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 1820.842, + "first_reasoning_ms": null, + "first_visible_ms": 1820.842, + "successful_attempt_ms": 2002.003, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_8", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "a7d9fed5cab2e63ba3ced2279c9be66b615541cf0dd2c623eed9abd52a792d97", + "session_index": 4, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "5xx", + "error_code": "504", + "retry_after_seconds": null, + "latency_ms": 10126.371 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2002.003 + } + ], + "retry_count": 1, + "end_to_end_ms": 12379.532, + "truncated": false, + "system_digest": "cab3ad2ea7c24d00e06a7b53d60e9227678ffc40a855651ecd744537ddd447e8", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12855 + }, + { + "success": true, + "input_tokens": 12921, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 2491.645, + "first_reasoning_ms": null, + "first_visible_ms": 2491.645, + "successful_attempt_ms": 2591.881, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_9", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "8440c4b2b874385ae96653660ee5d902f545769552ec558d4aba6410087f37e2", + "session_index": 4, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2591.881 + } + ], + "retry_count": 0, + "end_to_end_ms": 2591.906, + "truncated": false, + "system_digest": "c3f9e802501060214e6998f565dda1517c36669860ada98dfe3ce8dc691f7a10", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12888 + }, + { + "success": true, + "input_tokens": 13571, + "cached_input_tokens": 13568, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 11098.903, + "first_reasoning_ms": null, + "first_visible_ms": 11098.903, + "successful_attempt_ms": 11187.433, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_9", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "8440c4b2b874385ae96653660ee5d902f545769552ec558d4aba6410087f37e2", + "session_index": 4, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120539.432 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 11187.433 + } + ], + "retry_count": 1, + "end_to_end_ms": 131977.269, + "truncated": false, + "system_digest": "7cf7418500f5801737474f699b7b080d988d459f56b341323772798880226f40", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13538 + }, + { + "success": true, + "input_tokens": 13604, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 9385.063, + "first_reasoning_ms": null, + "first_visible_ms": 9385.063, + "successful_attempt_ms": 9724.143, + "version": "baseline", + "suite": "continuity", + "task_id": "session_4_turn_10", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "4ea81605b393b2727ada8b16fbf259b27d0113b55aff7d3cc920c99a4dfe74d2", + "session_index": 4, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9724.143 + } + ], + "retry_count": 0, + "end_to_end_ms": 9724.163, + "truncated": false, + "system_digest": "a2ed8345fd849dd0b6f0842f36770925983cf376976caf795ee353f1294b3a60", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13571 + }, + { + "success": true, + "input_tokens": 12954, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 4750.18, + "first_reasoning_ms": null, + "first_visible_ms": 4750.18, + "successful_attempt_ms": 12216.804, + "version": "candidate", + "suite": "continuity", + "task_id": "session_4_turn_10", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "4ea81605b393b2727ada8b16fbf259b27d0113b55aff7d3cc920c99a4dfe74d2", + "session_index": 4, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 12216.804 + } + ], + "retry_count": 0, + "end_to_end_ms": 12216.82, + "truncated": false, + "system_digest": "fbd4dbccaf0c03cae2870185218d7afc19ea2f83d55616d65c739bf8bab43d50", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12921 + }, + { + "success": true, + "input_tokens": 13307, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 71, + "reasoning_tokens": 33, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is **predictability**: given the same inputs, the interface always produces the same outputs, which makes behavior easier to reason about, test, and debug.", + "tool_calls": [], + "first_event_ms": 6580.981, + "first_reasoning_ms": 6580.981, + "first_visible_ms": 6996.109, + "successful_attempt_ms": 10181.423, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_1", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "5861ae10c4852ebf4db44554763132f76e7c7da9d1ec8e7a41179ce47dc0458d", + "session_index": 5, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120074.897 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 10181.423 + } + ], + "retry_count": 1, + "end_to_end_ms": 130508.461, + "truncated": false, + "system_digest": "0716352bb0f5062c7b05316a4cb0d50fc062ebaaa2a457269bc84db14a6edf32", + "style": { + "visible_chars": 204, + "visible_words": 29, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 11415 + }, + { + "success": true, + "input_tokens": 12657, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 60, + "reasoning_tokens": 25, + "stop_reason": "stop", + "response_text": "One benefit: deterministic interfaces make behavior **predictable and reproducible** — the same input always produces the same output, which simplifies testing, debugging, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 1368.71, + "first_reasoning_ms": 1368.71, + "first_visible_ms": 1844.227, + "successful_attempt_ms": 2803.945, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_1", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "5861ae10c4852ebf4db44554763132f76e7c7da9d1ec8e7a41179ce47dc0458d", + "session_index": 5, + "turn": 1, + "cache_phase": "cold", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 136168.894 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 2803.945 + } + ], + "retry_count": 1, + "end_to_end_ms": 139225.56, + "truncated": false, + "system_digest": "0a17257104c87f695ffa92b32db37ea00b8531e02e93cfeeadcb990aa38f3a5f", + "style": { + "visible_chars": 204, + "visible_words": 25, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 1 + }, + "theoretical_reusable_tokens": 12536 + }, + { + "success": true, + "input_tokens": 12690, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 100, + "reasoning_tokens": 85, + "stop_reason": "stop", + "response_text": "Deterministic interfaces make behavior reproducible and easier to test and debug.", + "tool_calls": [], + "first_event_ms": 3536.923, + "first_reasoning_ms": 3536.923, + "first_visible_ms": 5013.297, + "successful_attempt_ms": 6138.28, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_2", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "3456feecafcb2118bb3f17eb6b636ff56c498c2656e135e5d35faa3111a86a24", + "session_index": 5, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6138.28 + } + ], + "retry_count": 0, + "end_to_end_ms": 6138.308, + "truncated": false, + "system_digest": "ed1bbf0ac7e8148b41b287a20ba211770c9e98814bb647de4d4937e8b7da2a0f", + "style": { + "visible_chars": 81, + "visible_words": 11, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12657 + }, + { + "success": true, + "input_tokens": 13340, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 128, + "reasoning_tokens": 98, + "stop_reason": "stop", + "response_text": "A deterministic interface guarantees that the same inputs always produce the same outputs, which makes behavior reproducible and simplifies debugging, testing, and reasoning about correctness.", + "tool_calls": [], + "first_event_ms": 2790.921, + "first_reasoning_ms": 2790.921, + "first_visible_ms": 5222.014, + "successful_attempt_ms": 6246.804, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_2", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "3456feecafcb2118bb3f17eb6b636ff56c498c2656e135e5d35faa3111a86a24", + "session_index": 5, + "turn": 2, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6246.804 + } + ], + "retry_count": 0, + "end_to_end_ms": 6246.834, + "truncated": false, + "system_digest": "f9a1871ddd6a608417fdf402b0fad629686e5778fea13edc0c3e8921a5bf4eb4", + "style": { + "visible_chars": 192, + "visible_words": 25, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13307 + }, + { + "success": true, + "input_tokens": 13373, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 3: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 4155.502, + "first_reasoning_ms": null, + "first_visible_ms": 4155.502, + "successful_attempt_ms": 4878.564, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_3", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "9610bcba9239145be5e062862e217b189e41d398855afaba5ea8def19592c71c", + "session_index": 5, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4878.564 + } + ], + "retry_count": 0, + "end_to_end_ms": 4878.587, + "truncated": false, + "system_digest": "e6ecf299e16b55e9ceca66c05bf716820b1ae09927d4462e7722e060c249d73f", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13340 + }, + { + "success": true, + "input_tokens": 12723, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 81, + "reasoning_tokens": 39, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they are easier to test and verify: given the same inputs, they always produce the same outputs, so behavior can be reproduced, asserted, and debugged reliably.", + "tool_calls": [], + "first_event_ms": 6484.999, + "first_reasoning_ms": 6484.999, + "first_visible_ms": 7127.761, + "successful_attempt_ms": 8813.884, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_3", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "9610bcba9239145be5e062862e217b189e41d398855afaba5ea8def19592c71c", + "session_index": 5, + "turn": 3, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8813.884 + } + ], + "retry_count": 0, + "end_to_end_ms": 8813.913, + "truncated": false, + "system_digest": "c533e9be8b7b145503a2badd8de5be2326a491f5461a0fa6c886f070c56c49a1", + "style": { + "visible_chars": 217, + "visible_words": 34, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12690 + }, + { + "success": true, + "input_tokens": 12756, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 4: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 3037.98, + "first_reasoning_ms": null, + "first_visible_ms": 3037.98, + "successful_attempt_ms": 3442.007, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_4", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "bb0c3e1a1b0faf28d83309294d27a42a4e4972bd6a13ffcec5be15f416d050d0", + "session_index": 5, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 3442.007 + } + ], + "retry_count": 0, + "end_to_end_ms": 3442.034, + "truncated": false, + "system_digest": "ef735151147c52a55204ae78f9267caa1373e652878390e5267ca818d62522e5", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12723 + }, + { + "success": true, + "input_tokens": 13406, + "cached_input_tokens": 13312, + "cache_write_tokens": 0, + "output_tokens": 106, + "reasoning_tokens": 61, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior predictable and repeatable, which simplifies testing, debugging, and reasoning about a system: given the same inputs and preconditions, the same outputs are produced every time.", + "tool_calls": [], + "first_event_ms": 1486.427, + "first_reasoning_ms": 1486.427, + "first_visible_ms": 2791.997, + "successful_attempt_ms": 6283.973, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_4", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "bb0c3e1a1b0faf28d83309294d27a42a4e4972bd6a13ffcec5be15f416d050d0", + "session_index": 5, + "turn": 4, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120065.574 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6283.973 + } + ], + "retry_count": 1, + "end_to_end_ms": 126600.315, + "truncated": false, + "system_digest": "81a5d6761c8b40bd8925e0e7ac19027d4ed394350f25327ef7c1dead22794d8a", + "style": { + "visible_chars": 253, + "visible_words": 36, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13373 + }, + { + "success": true, + "input_tokens": 13439, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 69, + "reasoning_tokens": 26, + "stop_reason": "stop", + "response_text": "One benefit of deterministic software interfaces is that they make behavior reproducible and easier to test: given the same inputs, the interface always produces the same outputs, so bugs can be reliably reproduced, isolated, and verified.", + "tool_calls": [], + "first_event_ms": 9004.624, + "first_reasoning_ms": 9004.624, + "first_visible_ms": 9234.674, + "successful_attempt_ms": 13637.756, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_5", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "8555c3ec84863a4693b8d86997189ecfb0d40fe4a2ac5df4d55e412c1fdb4df3", + "session_index": 5, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "5xx", + "error_code": "503", + "retry_after_seconds": null, + "latency_ms": 6720.927 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 13637.756 + } + ], + "retry_count": 1, + "end_to_end_ms": 20609.117, + "truncated": false, + "system_digest": "cd501e9397a56212895a2ea6856640e0101c85353ba9c0a2056851d498e479cb", + "style": { + "visible_chars": 239, + "visible_words": 36, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13406 + }, + { + "success": true, + "input_tokens": 12789, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 5: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 5625.337, + "first_reasoning_ms": null, + "first_visible_ms": 5625.337, + "successful_attempt_ms": 7816.749, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_5", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "8555c3ec84863a4693b8d86997189ecfb0d40fe4a2ac5df4d55e412c1fdb4df3", + "session_index": 5, + "turn": 5, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7816.749 + } + ], + "retry_count": 0, + "end_to_end_ms": 7816.769, + "truncated": false, + "system_digest": "f4c1fe5d0325e7549a2658cdf308eef7a055a6d5f7de299e2cdca9497bfe68ed", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12756 + }, + { + "success": true, + "input_tokens": 12822, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 30, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Deterministic software interfaces produce the same output for a given input, which makes behavior predictable and reproducible — simplifying testing, debugging, and verification.", + "tool_calls": [], + "first_event_ms": 5780.575, + "first_reasoning_ms": null, + "first_visible_ms": 5780.575, + "successful_attempt_ms": 7400.648, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_6", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "789bd32f60d16cc0a4d6dec92d8799271bb33ef0f41f38a17794554ab310c07e", + "session_index": 5, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7400.648 + } + ], + "retry_count": 0, + "end_to_end_ms": 7400.676, + "truncated": false, + "system_digest": "e0f64b6e8b10f7375962ff1f0db7afd2fa1fc023df71ececba1cbec0069dc038", + "style": { + "visible_chars": 178, + "visible_words": 22, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12789 + }, + { + "success": true, + "input_tokens": 13472, + "cached_input_tokens": 13440, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 6: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 3691.817, + "first_reasoning_ms": null, + "first_visible_ms": 3691.817, + "successful_attempt_ms": 6071.091, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_6", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "789bd32f60d16cc0a4d6dec92d8799271bb33ef0f41f38a17794554ab310c07e", + "session_index": 5, + "turn": 6, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120074.469 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6071.091 + } + ], + "retry_count": 1, + "end_to_end_ms": 126397.892, + "truncated": false, + "system_digest": "e1f9a3cfba82753474a339c021111e3fedb1fe9d203930a40d57f9e4c285468e", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13439 + }, + { + "success": true, + "input_tokens": 13505, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 38, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "One benefit: deterministic interfaces are easier to verify — the same inputs always produce the same outputs, so tests can be exact and reproducible, and failures can be reliably reproduced and debugged.", + "tool_calls": [], + "first_event_ms": 3538.856, + "first_reasoning_ms": null, + "first_visible_ms": 3538.856, + "successful_attempt_ms": 6399.932, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_7", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "f5d00a6ec6ad331679ed134f20876fcf60e3b0da4b8425ff64c039de44cf47f1", + "session_index": 5, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6399.932 + } + ], + "retry_count": 0, + "end_to_end_ms": 6399.956, + "truncated": false, + "system_digest": "1945b3fb9b868bc4db83282007b7777647997e14d5dd30f678bdd02489de41f3", + "style": { + "visible_chars": 203, + "visible_words": 31, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13472 + }, + { + "success": true, + "input_tokens": 12855, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 7: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 6145.01, + "first_reasoning_ms": null, + "first_visible_ms": 6145.01, + "successful_attempt_ms": 7712.216, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_7", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "f5d00a6ec6ad331679ed134f20876fcf60e3b0da4b8425ff64c039de44cf47f1", + "session_index": 5, + "turn": 7, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7712.216 + } + ], + "retry_count": 0, + "end_to_end_ms": 7712.235, + "truncated": false, + "system_digest": "b91c2928a920ab0101e6932fa11021d71226a766a5110000a48a64d868abdfbd", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12822 + }, + { + "success": true, + "input_tokens": 12888, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 5029.628, + "first_reasoning_ms": null, + "first_visible_ms": 5029.628, + "successful_attempt_ms": 5668.94, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_8", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "0c2ca636ca230f911ee3a92a38a968fa1118738ae6f82fa555717b198e9968fb", + "session_index": 5, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "5xx", + "error_code": "504", + "retry_after_seconds": null, + "latency_ms": 10125.576 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5668.94 + } + ], + "retry_count": 1, + "end_to_end_ms": 16046.794, + "truncated": false, + "system_digest": "ca8d78518a7738a62adf66e45c7add5f717433f45394f162605baa356315d653", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12855 + }, + { + "success": true, + "input_tokens": 13538, + "cached_input_tokens": 13440, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 8: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 5497.628, + "first_reasoning_ms": null, + "first_visible_ms": 5497.628, + "successful_attempt_ms": 9653.846, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_8", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "0c2ca636ca230f911ee3a92a38a968fa1118738ae6f82fa555717b198e9968fb", + "session_index": 5, + "turn": 8, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120217.952 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9653.846 + } + ], + "retry_count": 1, + "end_to_end_ms": 130124.009, + "truncated": false, + "system_digest": "d4c651b1727dccf21c7c74d272c2558ea4909bddc98d4592b5ee7266a5939e65", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13505 + }, + { + "success": true, + "input_tokens": 13571, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 9: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 10872.471, + "first_reasoning_ms": null, + "first_visible_ms": 10872.471, + "successful_attempt_ms": 12963.045, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_9", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "437e7287343f5d2c1cf5f834ff5a294578080ed3f2c9fd72f17098430acb1e17", + "session_index": 5, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 12963.045 + } + ], + "retry_count": 0, + "end_to_end_ms": 12963.067, + "truncated": false, + "system_digest": "11eea81daf2b9cf75048ae4cab30530fbb00b816c8ceae2735f44a964e240c72", + "style": { + "visible_chars": 85, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13538 + }, + { + "success": true, + "input_tokens": 12921, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 22, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Deterministic software interfaces are easier to test reliably, since the same inputs always produce the same outputs.", + "tool_calls": [], + "first_event_ms": 7320.623, + "first_reasoning_ms": null, + "first_visible_ms": 7320.623, + "successful_attempt_ms": 7701.284, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_9", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "437e7287343f5d2c1cf5f834ff5a294578080ed3f2c9fd72f17098430acb1e17", + "session_index": 5, + "turn": 9, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120073.697 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7701.284 + } + ], + "retry_count": 1, + "end_to_end_ms": 128027.008, + "truncated": false, + "system_digest": "e1d8503f60b49ce495464752117a2f25f784c5d84e8d7424613a5f32526b83ac", + "style": { + "visible_chars": 117, + "visible_words": 17, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12888 + }, + { + "success": true, + "input_tokens": 12954, + "cached_input_tokens": 12928, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 4819.205, + "first_reasoning_ms": null, + "first_visible_ms": 4819.205, + "successful_attempt_ms": 5989.569, + "version": "candidate", + "suite": "continuity", + "task_id": "session_5_turn_10", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "b9e0534a77b613f3752aed3112c4781ed975c475e180f4cc7aa4b1658bf8a5f2", + "session_index": 5, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120072.294 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5989.569 + } + ], + "retry_count": 1, + "end_to_end_ms": 126313.804, + "truncated": false, + "system_digest": "d8c9ea7fcfd633f7fd98affb5b8c8372a8fac8fa27753273810945ccc58e8d55", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 12921 + }, + { + "success": true, + "input_tokens": 13604, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 14, + "reasoning_tokens": 0, + "stop_reason": "stop", + "response_text": "Synthetic fixed history acknowledgement 10: deterministic interfaces aid verification.", + "tool_calls": [], + "first_event_ms": 9204.949, + "first_reasoning_ms": null, + "first_visible_ms": 9204.949, + "successful_attempt_ms": 9551.197, + "version": "baseline", + "suite": "continuity", + "task_id": "session_5_turn_10", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "b9e0534a77b613f3752aed3112c4781ed975c475e180f4cc7aa4b1658bf8a5f2", + "session_index": 5, + "turn": 10, + "cache_phase": "warm", + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9551.197 + } + ], + "retry_count": 0, + "end_to_end_ms": 9551.215, + "truncated": false, + "system_digest": "3e1c458fe6f44df9f2476571132d72261d90818b2da035c3c4f5589cc4cb63d5", + "style": { + "visible_chars": 86, + "visible_words": 9, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "theoretical_reusable_tokens": 13571 + }, + { + "success": true, + "input_tokens": 13297, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 108, + "reasoning_tokens": 18, + "stop_reason": "stop", + "response_text": "DNS caching stores recently resolved domain-to-IP mappings locally, on a resolver or the operating system, so repeated lookups don't re-query the full DNS hierarchy. Each cached record carries a time-to-live (TTL) value set by the authoritative server, after which the entry expires and is fetched again. This speeds up browsing, reduces load on upstream servers, and provides a temporary fallback if those servers are briefly unreachable.", + "tool_calls": [], + "first_event_ms": 4567.409, + "first_reasoning_ms": 4567.409, + "first_visible_ms": 4621.705, + "successful_attempt_ms": 11558.268, + "version": "baseline", + "suite": "multitask", + "task_id": "explain", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "b34c34805d8ebd188b6062933fde4bbc7c34fc08eb8150745a2ff98ce50efc21", + "task_category": "explanation", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 11558.268 + } + ], + "retry_count": 0, + "end_to_end_ms": 11558.291, + "truncated": false, + "system_digest": "e4a3e08c67893ede24ce2613f02d31a4838ae7e21b72c5e0a65f78b1b2174b46", + "style": { + "visible_chars": 439, + "visible_words": 66, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12647, + "cached_input_tokens": 1152, + "cache_write_tokens": 0, + "output_tokens": 104, + "reasoning_tokens": 18, + "stop_reason": "stop", + "response_text": "DNS caching stores previously resolved domain-to-IP mappings locally (on your device, router, or ISP resolver) so repeat lookups don't re-query the network. Each record carries a TTL (time-to-live) that dictates how long it stays valid before the cache must refresh it from an authoritative server. This reduces latency and load, but stale entries can briefly serve outdated or changed IP addresses until they expire.", + "tool_calls": [], + "first_event_ms": 2909.366, + "first_reasoning_ms": 2909.366, + "first_visible_ms": 3357.276, + "successful_attempt_ms": 9564.138, + "version": "candidate", + "suite": "multitask", + "task_id": "explain", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "b34c34805d8ebd188b6062933fde4bbc7c34fc08eb8150745a2ff98ce50efc21", + "task_category": "explanation", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9564.138 + } + ], + "retry_count": 0, + "end_to_end_ms": 9564.153, + "truncated": false, + "system_digest": "974d0ba8c42e26affe6e4be36facf74fec820e7017f3582dd159410b06b73fc4", + "style": { + "visible_chars": 417, + "visible_words": 64, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12653, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 256, + "reasoning_tokens": 67, + "stop_reason": "length", + "response_text": "Three practical, low-cost ways to shorten a team meeting:\n\n1. **Send a written brief ahead of time.** Put status updates, context, and any decisions-required into a shared doc (or chat) before the meeting. Then use the live time only for discussion and decisions, not for people reciting updates aloud. This alone often cuts a meeting by a third.\n\n2. **Set a tight agenda with a time box per item.** List 2–3 agenda items with an owner and a hard time limit for each (e.g., \"Decision on launch date — 10 min\"). Rotate a lightweight timekeeper who cuts in when a topic hits its limit and moves things along.\n\n3. **Default to async for everything that isn't a real discussion.** Ask one question before scheduling: \"Could this be resolved in a thread or a quick Loom/voice note?\" If yes, don't hold the meeting. Reserve", + "tool_calls": [], + "first_event_ms": 4703.891, + "first_reasoning_ms": 4703.891, + "first_visible_ms": 4840.483, + "successful_attempt_ms": 19573.848, + "version": "candidate", + "suite": "multitask", + "task_id": "advice", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "9b1ba6a445737760f7670d70dcd86125db61e7b4ed201709609fee3ffd375b94", + "task_category": "advice", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120059.476 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 19573.848 + } + ], + "retry_count": 1, + "end_to_end_ms": 139885.7, + "truncated": true, + "system_digest": "590392a1194f15c63b34fdaa4fc9d97da16ad361e0ce5f8a9577ba5597523cd3", + "style": { + "visible_chars": 817, + "visible_words": 145, + "lines": 7, + "paragraphs": 4, + "list_items": 3, + "markdown_headings": 0, + "bold_spans": 3 + }, + "quality": { + "route_ok": true, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13303, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 256, + "reasoning_tokens": 69, + "stop_reason": "length", + "response_text": "Three practical, low-cost ways to shorten a synthetic team meeting:\n\n1. **Set a hard stop and agenda with owners.** Write a timed agenda (each item = topic + owner + minutes) and share it before the meeting. Appoint one person as timekeeper to cut any item that runs over. Cost: zero — just discipline and a shared doc.\n\n2. **Replace status updates with async updates.** Ban round-robin \"what did everyone do\" updates. Have each person post a 2–3 line status in the channel/doc beforehand, and spend meeting time only on blockers, decisions, and questions. This alone typically removes 15–30% of meeting time.\n\n3. **Default the meeting to 15–25 minutes and end early when done.** Shorter default slots force people to prepare and stay on topic, and \"the meeting ends when the agenda is done\" lets you finish in 12 minutes", + "tool_calls": [], + "first_event_ms": 14103.157, + "first_reasoning_ms": 14103.157, + "first_visible_ms": 15774.243, + "successful_attempt_ms": 21589.805, + "version": "baseline", + "suite": "multitask", + "task_id": "advice", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "9b1ba6a445737760f7670d70dcd86125db61e7b4ed201709609fee3ffd375b94", + "task_category": "advice", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 21589.805 + } + ], + "retry_count": 0, + "end_to_end_ms": 21589.831, + "truncated": true, + "system_digest": "773a3da334aa6aa55f7886330c28b5092e1874eae482adacb9f055ec33a3abe6", + "style": { + "visible_chars": 821, + "visible_words": 140, + "lines": 7, + "paragraphs": 4, + "list_items": 3, + "markdown_headings": 0, + "bold_spans": 3 + }, + "quality": { + "route_ok": true, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13329, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 168, + "reasoning_tokens": 122, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "skill_view", + "arguments": { + "name": "summarize" + } + } + ], + "first_event_ms": 7252.777, + "first_reasoning_ms": 7252.777, + "first_visible_ms": null, + "successful_attempt_ms": 10076.022, + "version": "baseline", + "suite": "multitask", + "task_id": "summary", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "9516efb4806b1017fa62c1974b3ff7ee895e29bce3c244ed81684422d36796ae", + "task_category": "summary", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 10076.022 + } + ], + "retry_count": 0, + "end_to_end_ms": 10076.045, + "truncated": false, + "system_digest": "f74080f2ffd45edaaf454c0fdb49af588e4065d780c4c8780d40710c85dbd20b", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": false, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12679, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 82, + "reasoning_tokens": 48, + "stop_reason": "stop", + "response_text": "The Atlas team moved its release review from Friday to Wednesday, giving engineers two extra days to resolve findings before the Monday release, with no changes to staffing or scope.", + "tool_calls": [], + "first_event_ms": 2461.269, + "first_reasoning_ms": 2461.269, + "first_visible_ms": 3194.591, + "successful_attempt_ms": 5188.579, + "version": "candidate", + "suite": "multitask", + "task_id": "summary", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "9516efb4806b1017fa62c1974b3ff7ee895e29bce3c244ed81684422d36796ae", + "task_category": "summary", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5188.579 + } + ], + "retry_count": 0, + "end_to_end_ms": 5188.599, + "truncated": false, + "system_digest": "f9baa192916669ecbfb254d7ba9dc42952f5403a1c45ed2324788c695cd721d8", + "style": { + "visible_chars": 182, + "visible_words": 30, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12655, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 221, + "reasoning_tokens": 39, + "stop_reason": "stop", + "response_text": "- **Ordering / range scans:** B-tree keeps keys sorted, so it supports range scans, prefix matches, and ordered traversal. A hash index only supports exact-match (equality) lookups.\n- **Complexity:** B-tree lookups/updates are O(log n). Hash index offers O(1) average lookups but can degrade to O(n) under heavy collisions.\n- **Memory/disk usage:** Hash indexes typically have higher overhead for dynamic growth and perform poorly when sized too small or too large. B-trees are more predictable and disk-friendly (fewer random I/Os).\n- **Concurrency / durability:** B-trees are the default in most databases, with mature support for transactions, locking, and recovery. Hash indexes are often in-memory only, not crash-safe, and may not persist across restarts (e.g., MySQL's MEMORY engine).", + "tool_calls": [], + "first_event_ms": 3996.003, + "first_reasoning_ms": 3996.003, + "first_visible_ms": 4230.243, + "successful_attempt_ms": 12931.114, + "version": "candidate", + "suite": "multitask", + "task_id": "technical_comparison", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "b756c2f93cd5c267c71ce7c8d1ff2a054530faeb08f45ea0f812c351cc3eeb03", + "task_category": "technical_comparison", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 126869.659 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 12931.114 + } + ], + "retry_count": 1, + "end_to_end_ms": 140053.189, + "truncated": false, + "system_digest": "7638a18b4b9c98993ad9125d49afc6189abef0149e074a28c98d585575684477", + "style": { + "visible_chars": 791, + "visible_words": 117, + "lines": 4, + "paragraphs": 1, + "list_items": 4, + "markdown_headings": 0, + "bold_spans": 4 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13305, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 242, + "reasoning_tokens": 45, + "stop_reason": "stop", + "response_text": "- **Lookup type:** B-tree supports range and ordered queries (`<`, `>`, `BETWEEN`, `LIKE 'prefix%'`) plus equality; hash indexes are optimized only for exact equality (`=` / `IN`).\n- **Structure:** B-tree stores keys in sorted order in a balanced tree, so it scales logarithmically with data size; hash index maps keys to buckets via a hash function, giving O(1) average lookups.\n- **Ordering & sorting:** B-tree naturally returns results in key order and powers `ORDER BY`/`GROUP BY`; hash index has no inherent order, so it cannot help with sorting or range scans.\n- **Storage & maintenance:** Hash indexes are usually compact and fast for point lookups but may degrade with collisions, uneven distribution, or resizing; B-trees cost more for writes (node splits/merges) but offer predictable performance and are the default index in most databases.", + "tool_calls": [], + "first_event_ms": 8918.945, + "first_reasoning_ms": 8918.945, + "first_visible_ms": 10156.976, + "successful_attempt_ms": 16549.636, + "version": "baseline", + "suite": "multitask", + "task_id": "technical_comparison", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "b756c2f93cd5c267c71ce7c8d1ff2a054530faeb08f45ea0f812c351cc3eeb03", + "task_category": "technical_comparison", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 16549.636 + } + ], + "retry_count": 0, + "end_to_end_ms": 16549.67, + "truncated": false, + "system_digest": "9f7b6350f16539d5d3c1591bf08a311e829368a3b0df70bcb613b2083802ddbc", + "style": { + "visible_chars": 851, + "visible_words": 126, + "lines": 4, + "paragraphs": 1, + "list_items": 4, + "markdown_headings": 0, + "bold_spans": 4 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13310, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 112, + "reasoning_tokens": 29, + "stop_reason": "stop", + "response_text": "Subject: Confirmed — Project Atlas Review Rescheduled to Wednesday, 10:00 AM\n\nHi [Name],\n\nThis is to confirm that our Project Atlas review has been moved to Wednesday at 10:00 AM.\n\nPlease let me know if this time no longer works or if there's anything you'd like added to the agenda. I look forward to connecting then.\n\nBest regards,\n[Your Name]", + "tool_calls": [], + "first_event_ms": 5739.337, + "first_reasoning_ms": 5739.337, + "first_visible_ms": 6305.406, + "successful_attempt_ms": 11163.662, + "version": "baseline", + "suite": "multitask", + "task_id": "business_writing", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "52149552292eee4ae9c6c012a291932fc2356daa3bc4cc0fe6874f9bedded441", + "task_category": "business_writing", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120073.127 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 11163.662 + } + ], + "retry_count": 1, + "end_to_end_ms": 131492.22, + "truncated": false, + "system_digest": "f603cafd64b2ab4795172c3e3733643b005a4c5c282120699d345b3cce0177d5", + "style": { + "visible_chars": 345, + "visible_words": 61, + "lines": 10, + "paragraphs": 5, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12660, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 108, + "reasoning_tokens": 38, + "stop_reason": "stop", + "response_text": "Subject: Project Atlas Review — Rescheduled to Wednesday at 10:00\n\nHi [Name],\n\nThis is to confirm that the Project Atlas review has been moved to Wednesday at 10:00.\n\nPlease let me know if this time works for you, and feel free to reach out with any questions.\n\nBest regards,\n[Your Name]", + "tool_calls": [], + "first_event_ms": 3793.594, + "first_reasoning_ms": 3793.594, + "first_visible_ms": 4326.524, + "successful_attempt_ms": 7723.234, + "version": "candidate", + "suite": "multitask", + "task_id": "business_writing", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "52149552292eee4ae9c6c012a291932fc2356daa3bc4cc0fe6874f9bedded441", + "task_category": "business_writing", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7723.234 + } + ], + "retry_count": 0, + "end_to_end_ms": 7723.259, + "truncated": false, + "system_digest": "b6a050a9459292d9b439f1af2ef6df82213e1932387756726a600a460f52a336", + "style": { + "visible_chars": 287, + "visible_words": 52, + "lines": 10, + "paragraphs": 5, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12674, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 67, + "reasoning_tokens": 44, + "stop_reason": "stop", + "response_text": "Nimbus passed all 18 checks, cut startup time by 12%, and kept its API unchanged.", + "tool_calls": [], + "first_event_ms": 5816.057, + "first_reasoning_ms": 5816.057, + "first_visible_ms": 7988.649, + "successful_attempt_ms": 11842.497, + "version": "candidate", + "suite": "multitask", + "task_id": "retired_summarize", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "5b74800560f1d42f2a369a5e110167a16f8784ae34377eb3e74a0ca671105e8b", + "task_category": "migration", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 11842.497 + } + ], + "retry_count": 0, + "end_to_end_ms": 11842.516, + "truncated": false, + "system_digest": "d8eba093f1f93212021cb2668e8a19b816c5c729f1e2e6a1d6a38c08f5d87e92", + "style": { + "visible_chars": 81, + "visible_words": 15, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13324, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 80, + "reasoning_tokens": 57, + "stop_reason": "stop", + "response_text": "Nimbus passed all 18 checks, cut startup time by 12%, and kept its API unchanged.", + "tool_calls": [], + "first_event_ms": 9155.508, + "first_reasoning_ms": 9155.508, + "first_visible_ms": 10441.17, + "successful_attempt_ms": 16543.415, + "version": "baseline", + "suite": "multitask", + "task_id": "retired_summarize", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "5b74800560f1d42f2a369a5e110167a16f8784ae34377eb3e74a0ca671105e8b", + "task_category": "migration", + "route_kind": "direct", + "expected_names": [], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 16543.415 + } + ], + "retry_count": 0, + "end_to_end_ms": 16543.441, + "truncated": false, + "system_digest": "c80b2c7dc84e0d64e94d5f8573defb9d91c1f610bdce9b2a56c1fdfca74f58bb", + "style": { + "visible_chars": 81, + "visible_words": 15, + "lines": 1, + "paragraphs": 1, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13306, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 125, + "reasoning_tokens": 81, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "skill_view", + "arguments": { + "name": "weather" + } + } + ], + "first_event_ms": 5924.129, + "first_reasoning_ms": 5924.129, + "first_visible_ms": null, + "successful_attempt_ms": 9081.747, + "version": "baseline", + "suite": "multitask", + "task_id": "retired_weather", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "235da014104e000a6c679a9beb69c3da414f2473e441cb6d137d0a4512494343", + "task_category": "migration", + "route_kind": "tool", + "expected_names": [ + "web_search", + "web_discover", + "web_fetch", + "http_request" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9081.747 + } + ], + "retry_count": 0, + "end_to_end_ms": 9081.767, + "truncated": false, + "system_digest": "fa6196bc37019286a405a3ed571e7c3e5190fc42b932c893b99c1ffb57f3071f", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": false, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12656, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 250, + "reasoning_tokens": 122, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "web_fetch", + "arguments": { + "url": "https://api.open-meteo.com/v1/forecast?latitude=31.23&longitude=121.47¤t=temperature_2m,relative_humidity_2m,apparent_temperature,weather_code,wind_speed_10m&timezone=Asia%2FShanghai", + "extract_mode": "text" + } + } + ], + "first_event_ms": 5626.028, + "first_reasoning_ms": 5626.028, + "first_visible_ms": null, + "successful_attempt_ms": 8657.693, + "version": "candidate", + "suite": "multitask", + "task_id": "retired_weather", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "235da014104e000a6c679a9beb69c3da414f2473e441cb6d137d0a4512494343", + "task_category": "migration", + "route_kind": "tool", + "expected_names": [ + "web_search", + "web_discover", + "web_fetch", + "http_request" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8657.693 + } + ], + "retry_count": 0, + "end_to_end_ms": 8657.713, + "truncated": false, + "system_digest": "d980f9ba8d68cfa45af7e4ed9e29b90ee939012c76fe94dda83007ee78f87c8f", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12653, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 67, + "reasoning_tokens": 19, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "list_dir", + "arguments": { + "path": "/workspace/demo" + } + } + ], + "first_event_ms": 6238.298, + "first_reasoning_ms": 6238.298, + "first_visible_ms": null, + "successful_attempt_ms": 8936.117, + "version": "candidate", + "suite": "multitask", + "task_id": "hidden_filesystem", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "b35d1e9fb8e2b085ef639f715e9aec6fa2aea0320dc664c8b4a4d65da77a7ccf", + "task_category": "migration", + "route_kind": "tool", + "expected_names": [ + "list_dir", + "glob_search", + "exec_command" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8936.117 + } + ], + "retry_count": 0, + "end_to_end_ms": 8936.149, + "truncated": false, + "system_digest": "d9f30d77a5757f8b247bc8d371f64ed403c3fca7e2dd00fc1a901861e126d3ba", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13303, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 68, + "reasoning_tokens": 20, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "list_dir", + "arguments": { + "path": "/workspace/demo" + } + } + ], + "first_event_ms": 16281.978, + "first_reasoning_ms": 16281.978, + "first_visible_ms": null, + "successful_attempt_ms": 17924.158, + "version": "baseline", + "suite": "multitask", + "task_id": "hidden_filesystem", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "b35d1e9fb8e2b085ef639f715e9aec6fa2aea0320dc664c8b4a4d65da77a7ccf", + "task_category": "migration", + "route_kind": "tool", + "expected_names": [ + "list_dir", + "glob_search", + "exec_command" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 17924.158 + } + ], + "retry_count": 0, + "end_to_end_ms": 17924.182, + "truncated": false, + "system_digest": "20f1ca9009d84657fa67ab0c234a07f5fe2a707fa58e8adc42ae4c62aec334f1", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13302, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 121, + "reasoning_tokens": 75, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "skill_view", + "arguments": { + "name": "git-diff" + } + } + ], + "first_event_ms": 5051.573, + "first_reasoning_ms": 5051.573, + "first_visible_ms": null, + "successful_attempt_ms": 9941.563, + "version": "baseline", + "suite": "multitask", + "task_id": "retired_git_diff", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "ca16682bf413df1a58d0ec5e55aff7e2b4c8759ab404f57a14db61375b9e67a3", + "task_category": "migration", + "route_kind": "tool", + "expected_names": [ + "git_diff", + "exec_command" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120184.277 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9941.563 + } + ], + "retry_count": 1, + "end_to_end_ms": 130377.414, + "truncated": false, + "system_digest": "73ccf73ddd02a13fffe3b162e8e2bc8f4967cab30cc582d7c49a3d9035409d12", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": false, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12652, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 70, + "reasoning_tokens": 28, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "git_status", + "arguments": {} + }, + { + "name": "git_diff", + "arguments": {} + } + ], + "first_event_ms": 6103.566, + "first_reasoning_ms": 6103.566, + "first_visible_ms": null, + "successful_attempt_ms": 7411.221, + "version": "candidate", + "suite": "multitask", + "task_id": "retired_git_diff", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "ca16682bf413df1a58d0ec5e55aff7e2b4c8759ab404f57a14db61375b9e67a3", + "task_category": "migration", + "route_kind": "tool", + "expected_names": [ + "git_diff", + "exec_command" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7411.221 + } + ], + "retry_count": 0, + "end_to_end_ms": 7411.241, + "truncated": false, + "system_digest": "6be21fe398223c76d537830c8385c25ab0cfb2cfe036f2735dd23050cf41a46d", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12660, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 73, + "reasoning_tokens": 26, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "skill_view", + "arguments": { + "name": "pdf-toolkit" + } + } + ], + "first_event_ms": 2258.341, + "first_reasoning_ms": 2258.341, + "first_visible_ms": null, + "successful_attempt_ms": 4053.8, + "version": "candidate", + "suite": "multitask", + "task_id": "retired_nano_pdf", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "8242792e350da00c4248195d6102dce93b896b5d4b3309f0c41640d15e675a47", + "task_category": "migration", + "route_kind": "skill", + "expected_names": [ + "pdf-toolkit" + ], + "coding_mode": false, + "explicit_skill": true, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4053.8 + } + ], + "retry_count": 0, + "end_to_end_ms": 4053.829, + "truncated": false, + "system_digest": "6b9b14badf6293fea3d201b3c3af95209d6a06c02fa9b187259d51253b1f7bc0", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13310, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 114, + "reasoning_tokens": 67, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "skill_view", + "arguments": { + "name": "pdf-toolkit" + } + } + ], + "first_event_ms": 7381.786, + "first_reasoning_ms": 7381.786, + "first_visible_ms": null, + "successful_attempt_ms": 9628.175, + "version": "baseline", + "suite": "multitask", + "task_id": "retired_nano_pdf", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "8242792e350da00c4248195d6102dce93b896b5d4b3309f0c41640d15e675a47", + "task_category": "migration", + "route_kind": "skill", + "expected_names": [ + "pdf-toolkit" + ], + "coding_mode": false, + "explicit_skill": true, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 9628.175 + } + ], + "retry_count": 0, + "end_to_end_ms": 9628.196, + "truncated": false, + "system_digest": "0f4af05c67ae9cde4357f5c06d204d65a85686459084b70d5581649114ec3ff7", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13306, + "cached_input_tokens": 13184, + "cache_write_tokens": 0, + "output_tokens": 185, + "reasoning_tokens": 136, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "meta_invoke", + "arguments": { + "name": "meta-short-drama" + } + } + ], + "first_event_ms": 2890.226, + "first_reasoning_ms": 2890.226, + "first_visible_ms": null, + "successful_attempt_ms": 7533.375, + "version": "baseline", + "suite": "multitask", + "task_id": "retired_seedance", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "1f5680e80a941f67009b9207c44371fa0d4ce8a9815455fcb88164abead687f4", + "task_category": "migration", + "route_kind": "meta", + "expected_names": [ + "meta-short-drama" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 120075.605 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 7533.375 + } + ], + "retry_count": 1, + "end_to_end_ms": 127861.299, + "truncated": false, + "system_digest": "8817b210b23e5e067337cb9505085bc18ed3a5106c9c4e7f30f26f3aadf1d058", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12656, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 155, + "reasoning_tokens": 106, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "meta_invoke", + "arguments": { + "name": "meta-short-drama" + } + } + ], + "first_event_ms": 6650.675, + "first_reasoning_ms": 6650.675, + "first_visible_ms": null, + "successful_attempt_ms": 8445.153, + "version": "candidate", + "suite": "multitask", + "task_id": "retired_seedance", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "1f5680e80a941f67009b9207c44371fa0d4ce8a9815455fcb88164abead687f4", + "task_category": "migration", + "route_kind": "meta", + "expected_names": [ + "meta-short-drama" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 8445.153 + } + ], + "retry_count": 0, + "end_to_end_ms": 8445.176, + "truncated": false, + "system_digest": "0d80b4af195f7d1a30897e9782edcae946e5ea9cbd97f760b49d72018210cc8d", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12660, + "cached_input_tokens": 12544, + "cache_write_tokens": 0, + "output_tokens": 256, + "reasoning_tokens": 256, + "stop_reason": "length", + "response_text": "", + "tool_calls": [], + "first_event_ms": 1247.258, + "first_reasoning_ms": 1247.258, + "first_visible_ms": null, + "successful_attempt_ms": 5692.253, + "version": "candidate", + "suite": "multitask", + "task_id": "retired_ai_video_script", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "83f5c30aa7dd2fa6697459d16d9d8f70b86422bf7c4432c16165c39a25f4dc5f", + "task_category": "migration", + "route_kind": "meta", + "expected_names": [ + "meta-short-drama" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 128981.185 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 5692.253 + } + ], + "retry_count": 1, + "end_to_end_ms": 134924.449, + "truncated": true, + "system_digest": "e2e01f249a4c82d98d334a8e0193e61530318ae6b5e8ee97ea199347aec7f2da", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": false, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13310, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 256, + "reasoning_tokens": 256, + "stop_reason": "length", + "response_text": "", + "tool_calls": [], + "first_event_ms": 2883.177, + "first_reasoning_ms": 2883.177, + "first_visible_ms": null, + "successful_attempt_ms": 6686.018, + "version": "baseline", + "suite": "multitask", + "task_id": "retired_ai_video_script", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "83f5c30aa7dd2fa6697459d16d9d8f70b86422bf7c4432c16165c39a25f4dc5f", + "task_category": "migration", + "route_kind": "meta", + "expected_names": [ + "meta-short-drama" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 6686.018 + } + ], + "retry_count": 0, + "end_to_end_ms": 6686.035, + "truncated": true, + "system_digest": "e3c1c71b7cbd4ba3cea591c5758457fc66586677910f2c984a0216c47f83125d", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": false, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13303, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 256, + "reasoning_tokens": 256, + "stop_reason": "length", + "response_text": "", + "tool_calls": [], + "first_event_ms": 1257.722, + "first_reasoning_ms": 1257.722, + "first_visible_ms": null, + "successful_attempt_ms": 4521.207, + "version": "baseline", + "suite": "multitask", + "task_id": "paper_dependency_replacement", + "catalog_generation": 0, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "614a273c1276ea73f456730f8336c595c81e61ccc8c56604d14da9726457700d", + "task_category": "migration", + "route_kind": "meta", + "expected_names": [ + "meta-paper-write" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4521.207 + } + ], + "retry_count": 0, + "end_to_end_ms": 4521.227, + "truncated": true, + "system_digest": "bec8ac65826be067ad89d72787ca00e620d6abb50b324583bf71f2a78094c96a", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": false, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12653, + "cached_input_tokens": 1280, + "cache_write_tokens": 0, + "output_tokens": 256, + "reasoning_tokens": 256, + "stop_reason": "length", + "response_text": "", + "tool_calls": [], + "first_event_ms": 2004.064, + "first_reasoning_ms": 2004.064, + "first_visible_ms": null, + "successful_attempt_ms": 4008.673, + "version": "candidate", + "suite": "multitask", + "task_id": "paper_dependency_replacement", + "catalog_generation": 1, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "stable_prefix_digest": "bdf68b7a6c4040663252f1cd1bbc32c637f2517f3b2db45b1ddb8b1368bac28b", + "dynamic_suffix_digest": "614a273c1276ea73f456730f8336c595c81e61ccc8c56604d14da9726457700d", + "task_category": "migration", + "route_kind": "meta", + "expected_names": [ + "meta-paper-write" + ], + "coding_mode": false, + "explicit_skill": false, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4008.673 + } + ], + "retry_count": 0, + "end_to_end_ms": 4008.685, + "truncated": true, + "system_digest": "810c350ccfd08a2df2d35a8e50d3de7ff3037aa8c87a7eb0a7c739b299bba1fb", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": false, + "task_success": false, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 12762, + "cached_input_tokens": 128, + "cache_write_tokens": 0, + "output_tokens": 74, + "reasoning_tokens": 29, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "skill_view", + "arguments": { + "name": "code-task" + } + } + ], + "first_event_ms": 3334.693, + "first_reasoning_ms": 3334.693, + "first_visible_ms": null, + "successful_attempt_ms": 4345.545, + "version": "candidate", + "suite": "multitask", + "task_id": "retired_sub_agent", + "catalog_generation": 1, + "catalog_digest": "dd4a26913520e3f1caf019f1ec5d56bf3644bce9d1f870f75f649918c4e63af2", + "stable_prefix_digest": "d452d2107d826bffcae2c53f859caea807121b971332928b71aa4e9a1dc1288a", + "dynamic_suffix_digest": "c4e2d1a2fd36b29f4b70bbbe08164fb0d8e5ede217d2689cb92dac4006216cbf", + "task_category": "migration", + "route_kind": "skill_or_core", + "expected_names": [ + "code-task", + "read_file", + "apply_patch", + "exec_command" + ], + "coding_mode": true, + "explicit_skill": true, + "attempts": [ + { + "attempt": 1, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4345.545 + } + ], + "retry_count": 0, + "end_to_end_ms": 4345.565, + "truncated": false, + "system_digest": "92d9240702985f9699bc541b17aacef6dc6c60d8dbca224a9be5e7f63f854b63", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + }, + { + "success": true, + "input_tokens": 13324, + "cached_input_tokens": 13312, + "cache_write_tokens": 0, + "output_tokens": 100, + "reasoning_tokens": 55, + "stop_reason": "tool_calls", + "response_text": "", + "tool_calls": [ + { + "name": "skill_view", + "arguments": { + "name": "code-task" + } + } + ], + "first_event_ms": 1240.15, + "first_reasoning_ms": 1240.15, + "first_visible_ms": null, + "successful_attempt_ms": 4085.756, + "version": "baseline", + "suite": "multitask", + "task_id": "retired_sub_agent", + "catalog_generation": 0, + "catalog_digest": "60bb59aa9257ac5abe35bc588497abd0cab6e742806da11a2ac031581f759c3c", + "stable_prefix_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_suffix_digest": "c4e2d1a2fd36b29f4b70bbbe08164fb0d8e5ede217d2689cb92dac4006216cbf", + "task_category": "migration", + "route_kind": "skill_or_core", + "expected_names": [ + "code-task", + "read_file", + "apply_patch", + "exec_command" + ], + "coding_mode": true, + "explicit_skill": true, + "attempts": [ + { + "attempt": 1, + "success": false, + "error_class": "timeout", + "error_code": "timeout", + "retry_after_seconds": null, + "latency_ms": 122527.626 + }, + { + "attempt": 2, + "success": true, + "error_class": null, + "error_code": null, + "retry_after_seconds": null, + "latency_ms": 4085.756 + } + ], + "retry_count": 1, + "end_to_end_ms": 126864.216, + "truncated": false, + "system_digest": "0597bd34899a96893226da323295fcbdb58f26dc46cb30afab4fabcd59a51649", + "style": { + "visible_chars": 0, + "visible_words": 0, + "lines": 0, + "paragraphs": 0, + "list_items": 0, + "markdown_headings": 0, + "bold_spans": 0 + }, + "quality": { + "route_ok": true, + "task_success": true, + "false_no_skill_claim": false, + "explicit_skill_missed": false + } + } + ] +} diff --git a/docs/evidence/skill-simplification/summary.json b/docs/evidence/skill-simplification/summary.json new file mode 100644 index 0000000000..e151fc337b --- /dev/null +++ b/docs/evidence/skill-simplification/summary.json @@ -0,0 +1,615 @@ +{ + "schema_version": 1, + "identity": { + "baseline_commit_sha": "27ca02ca4596f8f24fe79ab603f068cbec6ab858", + "candidate_commit_sha": "058a7675a24177f513ca9262b1d0db96578c1e58", + "baseline_worktree": { + "state": "clean", + "entry_count": 0, + "porcelain_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "candidate_worktree": { + "state": "clean", + "entry_count": 0, + "porcelain_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "candidate_snapshot_method": "git commit-tree over a temporary index", + "provider": "tokenrhythm", + "model": "deepseek-v4-pro-0813", + "tool_schema_digest": "fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97", + "tool_schema_count": 58, + "machine": { + "os": "Darwin", + "architecture": "arm64", + "python": "3.12.13" + } + }, + "parameters": { + "temperature": null, + "top_p": null, + "concurrency": 1, + "output_limit_tokens": 256, + "calibration_output_limit_tokens": 32, + "request_timeout_seconds": 150.0, + "micro_groups": 5, + "micro_order": "alternating ABBA/BAAB", + "continuity_sessions": 5, + "continuity_turns_per_session": 10, + "synthetic_only": true, + "skills_max_prompt_chars": 8000, + "meta_skill_enabled": true, + "meta_auto_trigger": true, + "default_coding_mode": false, + "cold_cache_definition": "first request in each synthetic continuity session", + "warm_cache_definition": "turns 2-10 in the same fixed-history session" + }, + "prompt_identity": { + "base_system_developer_prompt": "System instructions:\nYou are OpenSquilla running a synthetic, non-user benchmark. Follow the task\naccurately, use a listed Skill only when it clearly applies, and never invent\ntool results.\n\nDeveloper instructions:\nBe concise. Use the available tools when current or workspace state is needed.\nWhen a catalog entry is relevant, follow its documented loading route.", + "dynamic_suffix_template": "Synthetic per-turn context: {request_key}. No private user data is present.", + "base_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_template_digest": "3f3dc3f237086cd08aea173e9f72610f001e3a55a61cd6ee95393f752816580e", + "baseline_catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "candidate_catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49" + }, + "catalogs": { + "baseline": { + "layout": "catalog_after_dynamic", + "eligibility_profile": "synthetic_full_capability", + "physical_bundled_count": 75, + "model_visible_bundled_count": 48, + "rendered_bundled_count": 48, + "complete_catalog_chars": 21675, + "actual_catalog_chars": 6777, + "catalog_digest": "71665c7e8d8deffbf20db8726ff640dc715c64ad58a9f5f6b05ac5df885abb16", + "base_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_template_digest": "3f3dc3f237086cd08aea173e9f72610f001e3a55a61cd6ee95393f752816580e", + "catalog_generation": 0, + "catalog_names": [ + "AwesomeWebpageMetaSkill", + "advanced-dubbing-studio", + "ai-video-script", + "audio-cog", + "cron", + "deep-research", + "docx", + "filesystem", + "git-diff", + "github", + "history-explorer", + "html-coder", + "html-to-pdf", + "http-fetch", + "latex-compile", + "meta-paper-write", + "meta-short-drama", + "meta-skill-creator", + "multi-search-engine", + "music-and-singing-studio", + "nano-banana-pro", + "nano-pdf", + "paper-abstract-author", + "paper-citation-planner", + "paper-experiment-stub", + "paper-outline-author", + "paper-plot-stub", + "paper-preference-planner", + "paper-revision-author", + "paper-source-curator", + "pdf-toolkit", + "pptx", + "seedance-2-prompt", + "skill-creator", + "sub-agent", + "subtitle-burner", + "summarize", + "text-file-read", + "title-card-image", + "tmux", + "video-merger", + "video-still-animator", + "voice-clone-lab", + "voice-conversion-studio", + "voiceover-studio", + "weather", + "web-search", + "xlsx" + ], + "omitted_count": 0, + "local_timing": { + "cold_catalog_build_ms": 196.8915, + "warm_snapshot_iterations": 500, + "warm_snapshot_ms_median": 8.3e-05, + "warm_snapshot_ms_mean": 9.7e-05, + "render_iterations": 500, + "render_ms_median": 0.174208, + "render_ms_mean": 0.177417 + }, + "tool_schema_count": 58, + "tool_schema_chars": 50012, + "tool_schema_digest": "fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97", + "tool_names": [ + "agents_list", + "apply_patch", + "audio_config", + "audio_provider_capabilities", + "background_process", + "create_csv", + "create_pdf_report", + "create_xlsx", + "cron", + "dubbing_download", + "dubbing_generate", + "dubbing_status", + "edit_file", + "exec_command", + "execute_code", + "gateway", + "git_commit", + "git_diff", + "git_log", + "git_status", + "glob_search", + "grep_search", + "http_request", + "image", + "image_generate", + "install_skill_deps", + "list_dir", + "message", + "meta_invoke", + "music_generate", + "pdf", + "process", + "publish_artifact", + "read_file", + "read_spreadsheet", + "router_control", + "session_status", + "sessions_history", + "sessions_list", + "sessions_send", + "sessions_spawn", + "sessions_yield", + "skill_create", + "skill_delete", + "skill_edit", + "skill_install_community", + "skill_list", + "skill_search_community", + "skill_view", + "song_generate", + "tts", + "voice_clone", + "voice_convert", + "voice_search", + "web_discover", + "web_fetch", + "web_search", + "write_file" + ] + }, + "candidate": { + "layout": "catalog_before_dynamic", + "eligibility_profile": "synthetic_full_capability", + "physical_bundled_count": 44, + "model_visible_bundled_count": 11, + "rendered_bundled_count": 11, + "complete_catalog_chars": 6059, + "actual_catalog_chars": 4509, + "catalog_digest": "5f91d728b017a0609abd77c37df38fbac683680a56e234b719478d93eb00de49", + "base_digest": "e97cfbc8a1d05fa34d6c332b99460aa2b554c4c6d83fceeda44e5a6739badf0f", + "dynamic_template_digest": "3f3dc3f237086cd08aea173e9f72610f001e3a55a61cd6ee95393f752816580e", + "catalog_generation": 1, + "catalog_names": [ + "deep-research", + "docx", + "github", + "html-coder", + "pdf-toolkit", + "pptx", + "skill-creator", + "xlsx", + "meta-paper-write", + "meta-short-drama", + "meta-skill-creator" + ], + "omitted_count": 0, + "local_timing": { + "cold_catalog_build_ms": 240.668125, + "warm_snapshot_iterations": 500, + "warm_snapshot_ms_median": 0.000167, + "warm_snapshot_ms_mean": 0.000166, + "render_iterations": 500, + "render_ms_median": 0.057625, + "render_ms_mean": 0.057689 + }, + "tool_schema_count": 58, + "tool_schema_chars": 50012, + "tool_schema_digest": "fc6227e41e64a69cea4c8251d7554efb520dd17ceb746efce11fbb644b290d97", + "tool_names": [ + "agents_list", + "apply_patch", + "audio_config", + "audio_provider_capabilities", + "background_process", + "create_csv", + "create_pdf_report", + "create_xlsx", + "cron", + "dubbing_download", + "dubbing_generate", + "dubbing_status", + "edit_file", + "exec_command", + "execute_code", + "gateway", + "git_commit", + "git_diff", + "git_log", + "git_status", + "glob_search", + "grep_search", + "http_request", + "image", + "image_generate", + "install_skill_deps", + "list_dir", + "message", + "meta_invoke", + "music_generate", + "pdf", + "process", + "publish_artifact", + "read_file", + "read_spreadsheet", + "router_control", + "session_status", + "sessions_history", + "sessions_list", + "sessions_send", + "sessions_spawn", + "sessions_yield", + "skill_create", + "skill_delete", + "skill_edit", + "skill_install_community", + "skill_list", + "skill_search_community", + "skill_view", + "song_generate", + "tts", + "voice_clone", + "voice_convert", + "voice_search", + "web_discover", + "web_fetch", + "web_search", + "write_file" + ] + } + }, + "calibration": { + "shared": { + "system_developer_tokens": 72, + "tool_schema_tokens": 11343 + }, + "versions": { + "baseline": { + "catalog_tokens": 1771, + "cacheable_prefix_tokens": 11415, + "body_tokens": { + "ordinary": 744, + "meta_step": 2317 + } + }, + "candidate": { + "catalog_tokens": 1121, + "cacheable_prefix_tokens": 12536, + "body_tokens": { + "ordinary": 744, + "meta_step": 2317 + } + } + }, + "body_samples": { + "baseline": { + "ordinary": { + "skill": "github", + "chars": 2430, + "digest": "73380d1a356321d3393dd7170c302554b197362885fe306addd0cf5a49d21a9b" + }, + "meta_step": { + "skill": "paper-section-author", + "chars": 10356, + "digest": "0a5bf34d20aa95da647d7a1d51de57f863298f8d3d2b33ed258b26b5a2b39731" + } + }, + "candidate": { + "ordinary": { + "skill": "github", + "chars": 2430, + "digest": "73380d1a356321d3393dd7170c302554b197362885fe306addd0cf5a49d21a9b" + }, + "meta_step": { + "skill": "paper-section-author", + "chars": 10356, + "digest": "0a5bf34d20aa95da647d7a1d51de57f863298f8d3d2b33ed258b26b5a2b39731" + } + } + } + }, + "suites": { + "micro": { + "baseline": { + "requests": 10, + "successful": 10, + "failed": 0, + "input_tokens_mean": 13302.4, + "input_tokens_median": 13303.0, + "cached_input_tokens_mean": 6656.0, + "cached_input_tokens_median": 6656.0, + "cache_read_ratio": 0.500361, + "uncached_input_tokens_mean": 6646.4, + "uncached_input_tokens_median": 6646.5, + "output_tokens_mean": 116.1, + "output_tokens_median": 82.5, + "reasoning_tokens_median": 23.5, + "input_output_tokens_total": 134858, + "first_event_ms_median": 1833.71, + "first_reasoning_ms_median": 1954.208, + "first_visible_ms_median": 2179.493, + "successful_attempt_ms_median": 3590.581, + "end_to_end_ms_median": 3590.619, + "end_to_end_ms_mean": 4146.984, + "retry_count": 0, + "truncated_count": 2, + "errors": {} + }, + "candidate": { + "requests": 10, + "successful": 10, + "failed": 0, + "input_tokens_mean": 12652.4, + "input_tokens_median": 12653.0, + "cached_input_tokens_mean": 9152.0, + "cached_input_tokens_median": 12544.0, + "cache_read_ratio": 0.723341, + "uncached_input_tokens_mean": 3500.4, + "uncached_input_tokens_median": 109.5, + "output_tokens_mean": 98.4, + "output_tokens_median": 95.0, + "reasoning_tokens_median": 27.5, + "input_output_tokens_total": 127886, + "first_event_ms_median": 1846.608, + "first_reasoning_ms_median": 1846.608, + "first_visible_ms_median": 2681.931, + "successful_attempt_ms_median": 4184.856, + "end_to_end_ms_median": 4588.178, + "end_to_end_ms_mean": 41872.885, + "retry_count": 3, + "truncated_count": 0, + "errors": { + "timeout": 3 + } + } + }, + "continuity": { + "baseline": { + "requests": 50, + "successful": 50, + "failed": 0, + "input_tokens_mean": 13455.5, + "input_tokens_median": 13455.5, + "cached_input_tokens_mean": 2780.16, + "cached_input_tokens_median": 128.0, + "cache_read_ratio": 0.206619, + "uncached_input_tokens_mean": 10675.34, + "uncached_input_tokens_median": 13278.0, + "output_tokens_mean": 48.16, + "output_tokens_median": 24.5, + "reasoning_tokens_median": 0.0, + "input_output_tokens_total": 676369, + "first_event_ms_median": 3739.307, + "first_reasoning_ms_median": 2717.53, + "first_visible_ms_median": 4295.825, + "successful_attempt_ms_median": 6158.948, + "end_to_end_ms_median": 7429.35, + "end_to_end_ms_mean": 32617.078, + "retry_count": 12, + "truncated_count": 0, + "errors": { + "5xx": 2, + "timeout": 10 + } + }, + "candidate": { + "requests": 50, + "successful": 48, + "failed": 2, + "input_tokens_mean": 12806.875, + "input_tokens_median": 12822.0, + "cached_input_tokens_mean": 2709.333, + "cached_input_tokens_median": 1280.0, + "cache_read_ratio": 0.211553, + "uncached_input_tokens_mean": 10097.542, + "uncached_input_tokens_median": 11509.0, + "output_tokens_mean": 36.083, + "output_tokens_median": 14.0, + "reasoning_tokens_median": 0.0, + "input_output_tokens_total": 617101, + "first_event_ms_median": 3516.052, + "first_reasoning_ms_median": 3434.197, + "first_visible_ms_median": 4350.533, + "successful_attempt_ms_median": 5668.671, + "end_to_end_ms_median": 7284.785, + "end_to_end_ms_mean": 34608.647, + "retry_count": 13, + "truncated_count": 0, + "errors": { + "5xx": 4, + "timeout": 11 + } + } + }, + "multitask": { + "baseline": { + "requests": 14, + "successful": 14, + "failed": 0, + "input_tokens_mean": 13309.429, + "input_tokens_median": 13306.0, + "cached_input_tokens_mean": 3867.429, + "cached_input_tokens_median": 128.0, + "cache_read_ratio": 0.290578, + "uncached_input_tokens_mean": 9442.0, + "uncached_input_tokens_median": 13175.0, + "output_tokens_mean": 156.5, + "output_tokens_median": 123.0, + "reasoning_tokens_median": 68.0, + "input_output_tokens_total": 189809, + "first_event_ms_median": 5831.733, + "first_reasoning_ms_median": 5831.733, + "first_visible_ms_median": 10156.976, + "successful_attempt_ms_median": 10008.792, + "end_to_end_ms_median": 16546.555, + "end_to_end_ms_mean": 45768.131, + "retry_count": 4, + "truncated_count": 3, + "errors": { + "timeout": 4 + } + }, + "candidate": { + "requests": 14, + "successful": 14, + "failed": 0, + "input_tokens_mean": 12665.714, + "input_tokens_median": 12656.0, + "cached_input_tokens_mean": 3602.286, + "cached_input_tokens_median": 1280.0, + "cache_read_ratio": 0.284412, + "uncached_input_tokens_mean": 9063.429, + "uncached_input_tokens_median": 11376.0, + "output_tokens_mean": 145.643, + "output_tokens_median": 106.0, + "reasoning_tokens_median": 41.5, + "input_output_tokens_total": 180455, + "first_event_ms_median": 3894.798, + "first_reasoning_ms_median": 3894.798, + "first_visible_ms_median": 4278.383, + "successful_attempt_ms_median": 8084.194, + "end_to_end_ms_median": 8551.444, + "end_to_end_ms_mean": 35360.016, + "retry_count": 3, + "truncated_count": 3, + "errors": { + "timeout": 3 + } + } + } + }, + "cache": { + "baseline": { + "cold": { + "requests": 5, + "successful": 5, + "cache_read_ratio": 0.205847, + "cached_input_tokens_median": 128.0, + "uncached_input_tokens_median": 13179.0, + "layout_reuse_ceiling": 0.857819, + "cache_realization": 0.239965 + }, + "warm": { + "requests": 45, + "successful": 45, + "cache_read_ratio": 0.206704, + "cached_input_tokens_median": 128.0, + "uncached_input_tokens_median": 13311.0, + "layout_reuse_ceiling": 0.99755, + "cache_realization": 0.207211 + }, + "prefix_stability_rate": 1.0, + "reinjection_waste": 0.0, + "avoidable_break_rate": 0.0 + }, + "candidate": { + "cold": { + "requests": 5, + "successful": 5, + "cache_read_ratio": 0.277096, + "cached_input_tokens_median": 1280.0, + "uncached_input_tokens_median": 11377.0, + "layout_reuse_ceiling": 0.99044, + "cache_realization": 0.27977 + }, + "warm": { + "requests": 45, + "successful": 43, + "cache_read_ratio": 0.204031, + "cached_input_tokens_median": 1280.0, + "uncached_input_tokens_median": 11538.0, + "layout_reuse_ceiling": 0.996569, + "cache_realization": 0.204734 + }, + "prefix_stability_rate": 1.0, + "reinjection_waste": 0.0, + "avoidable_break_rate": 0.0 + } + }, + "quality": { + "baseline": { + "task_success_rate": 0.571429, + "correct_route_rate": 0.642857, + "false_no_skill_claim_rate": 0.0, + "explicit_skill_miss_rate": 0.0, + "tool_calls_mean": 0.5, + "visible_words_mean": 29.143, + "visible_words_median": 0.0, + "visible_chars_mean": 181.214, + "visible_chars_median": 0.0, + "lines_mean": 1.643, + "paragraphs_mean": 0.857, + "list_items_mean": 0.5, + "markdown_headings_mean": 0.0, + "bold_spans_mean": 0.5 + }, + "candidate": { + "task_success_rate": 0.785714, + "correct_route_rate": 0.857143, + "false_no_skill_claim_rate": 0.0, + "explicit_skill_miss_rate": 0.0, + "tool_calls_mean": 0.5, + "visible_words_mean": 30.214, + "visible_words_median": 0.0, + "visible_chars_mean": 183.929, + "visible_chars_median": 0.0, + "lines_mean": 1.714, + "paragraphs_mean": 0.929, + "list_items_mean": 0.5, + "markdown_headings_mean": 0.0, + "bold_spans_mean": 0.5 + } + }, + "acceptance": { + "all_passed": false, + "gates": { + "average_input_tokens_reduced_at_least_30_percent": false, + "no_multitask_input_growth": true, + "warm_cache_ratio_not_lower": false, + "warm_uncached_median_lower": true, + "prefix_stability_100_percent": true, + "reinjection_waste_zero": true, + "avoidable_break_rate_zero": true, + "median_end_to_end_latency_not_worse_than_5_percent": true, + "nonretired_task_success_not_lower": true, + "no_truncated_samples": false, + "visible_word_median_within_10_percent": false + }, + "derived": { + "multitask_average_input_reduction": 0.048365, + "multitask_latency_ratio": 0.516811, + "visible_word_median_absolute_change_ratio": null, + "truncations": 10 + } + } +} diff --git a/opensquilla-webui/src/adapters/gateway/skillCatalogV4.meta.test.ts b/opensquilla-webui/src/adapters/gateway/skillCatalogV4.meta.test.ts new file mode 100644 index 0000000000..b67624774f --- /dev/null +++ b/opensquilla-webui/src/adapters/gateway/skillCatalogV4.meta.test.ts @@ -0,0 +1,306 @@ +import { describe, expect, it, vi } from 'vitest' +import type { Skill } from '@/types/skills' +import { normalizeSkill, skillLifecyclePresentation, skillStatusDotTitle } from '@/composables/skills/useSkillsCatalog' +import { createV4SkillCatalog } from './skillCatalogV4' + +function setup( + responses: Record, + methods = ['meta.list', 'meta.inspect'], +) { + const supported = new Set(methods) + const request = vi.fn(async (method: string) => { + const response = responses[method] + if (response instanceof Error) throw response + return response + }) + const ready = vi.fn(async () => {}) + const markUnsupported = vi.fn((method: string) => supported.delete(method)) + const catalog = createV4SkillCatalog({ + request, + ready, + supports: method => supported.has(method), + markUnsupported, + } as Parameters[0]) + return { catalog, request, ready, markUnsupported, supported } +} + +function meta(overrides: Record = {}) { + return { + name: 'synthetic-meta', + description: 'Synthetic workflow', + layer: 'managed', + instance_id: 'managed:synthetic-meta', + install_id: 'synthetic-install', + ready: true, + status: 'ready', + missing_bins: [], + missing_env: [], + missing_env_any: [], + missing_skills: [], + missing_capabilities: [], + missing_provider_capabilities: [], + reasons: [], + setup_actions: [], + manual_setup_actions: [], + generation: 1, + digest: 'synthetic-digest', + source: 'skill://managed/synthetic-meta?generation=1', + visibility: 'meta', + invocation: 'meta_only', + dependency_count: 0, + ...overrides, + } +} + +function root(overrides: Partial = {}): Skill { + return { + name: 'synthetic-meta', + kind: 'meta', + layer: 'managed', + instance_id: 'managed:synthetic-meta', + install_id: 'synthetic-install', + active: true, + ...overrides, + } +} + +function failure(code: string) { + return Object.assign(new Error(`Synthetic ${code}`), { code }) +} + +describe('SkillCatalog Meta compatibility', () => { + it.each([{ methods: [] }, { methods: ['meta.list'] }])('keeps old catalog reads when inspect is not advertised ($methods)', async ({ methods }) => { + const skills = [root(), { name: 'ordinary' }] + const { catalog, request, ready } = setup({ 'skills.list': { skills } }, methods) + await expect(catalog.list()).resolves.toEqual(skills) + expect(ready).toHaveBeenCalledOnce() + expect(request).toHaveBeenCalledExactlyOnceWith('skills.list', { includeLifecycle: true }, expect.any(Object)) + }) + + it('combines the exact Meta identity while preserving lifecycle and capability fields', async () => { + const invocation = { model_catalog: false, skill_view: false, user_completion: true, + direct_command: true, argument_substitution: true, scoped_tool_permissions: false, + sandbox_execution: 'unknown' } + const managed = root({ invocation, installed: true, eligible: false, missing_bins: ['uv'] }) + const other = root({ layer: 'project', instance_id: 'project:synthetic-meta', install_id: '' }) + const { catalog } = setup({ + 'skills.list': { skills: [managed, other] }, + 'meta.list': { skills: [meta()] }, + }) + const items = await catalog.list() + expect(items).toHaveLength(2) + expect(items[0]).toMatchObject({ layer: 'managed', installed: true, eligible: true, missing_bins: [], invocation }) + expect(items[1]).toEqual(other) + }) + + it('never merges different instance IDs even when the install ID and name match', async () => { + const shadowed = root({ instance_id: 'managed:older', active: false }) + const { catalog } = setup({ + 'skills.list': { skills: [shadowed] }, + 'meta.list': { skills: [meta()] }, + }) + const items = await catalog.list() + expect(items).toHaveLength(2) + expect(items[0]).toEqual(shadowed) + expect(items[1]?.instance_id).toBe('managed:synthetic-meta') + }) + + it('matches installation identity when one response omits the instance ID', async () => { + const { catalog } = setup({ + 'skills.list': { skills: [root()] }, + 'meta.list': { skills: [meta({ instance_id: '' })] }, + }) + const items = await catalog.list() + expect(items).toHaveLength(1) + expect(items[0]?.instance_id).toBe('managed:synthetic-meta') + }) + + it('requires a known matching layer for legacy rows without exact identity', async () => { + const { catalog } = setup({ + 'skills.list': { skills: [root({ instance_id: '', install_id: '', layer: 'project' })] }, + 'meta.list': { skills: [meta({ instance_id: '', install_id: '', layer: 'bundled' })] }, + }) + expect(await catalog.list()).toHaveLength(2) + }) + + it('does not merge different kinds by name and layer without exact identity', async () => { + const selected = root({ kind: 'meta_sop', instance_id: '', install_id: '' }) + const { catalog } = setup({ + 'skills.list': { skills: [selected] }, + 'meta.list': { skills: [meta({ instance_id: '', install_id: '' })] }, + }) + const items = await catalog.list() + expect(items).toHaveLength(2) + expect(items[0]).toEqual(selected) + expect(items[1]?.kind).toBe('meta') + }) + + it('merges matching kind, name, and known layer when exact identity is absent', async () => { + const { catalog } = setup({ + 'skills.list': { skills: [root({ instance_id: '', install_id: '', eligible: false })] }, + 'meta.list': { skills: [meta({ instance_id: '', install_id: '' })] }, + }) + const items = await catalog.list() + expect(items).toHaveLength(1) + expect(items[0]).toMatchObject({ kind: 'meta', layer: 'managed', eligible: true }) + }) + + it('preserves the exact base kind and source through listing and inspection', async () => { + const selected = root({ kind: 'meta_sop', source: 'synthetic-install-source' }) + const { catalog } = setup({ + 'skills.list': { skills: [selected] }, + 'meta.list': { skills: [meta()] }, + 'meta.inspect': { ...meta(), dependencies: [] }, + }) + const items = await catalog.list() + expect(items).toHaveLength(1) + expect(items[0]).toMatchObject({ kind: selected.kind, source: selected.source }) + await expect(catalog.detail(items[0]!)).resolves.toMatchObject({ + kind: selected.kind, source: selected.source, eligible: true, + }) + }) + + it('keeps ordinary entries and inactive inventory when Meta discovery is disabled', async () => { + const inactive = root({ instance_id: 'managed:disabled', active: false }) + const { catalog } = setup({ + 'skills.list': { skills: [{ name: 'ordinary' }, root(), inactive] }, + 'meta.list': { skills: [], disabled: true }, + }) + await expect(catalog.list()).resolves.toEqual([{ name: 'ordinary' }, inactive]) + }) + + it('falls back only for a missing list method and remembers that within the connection', async () => { + const { catalog, request, markUnsupported } = setup({ + 'skills.list': { skills: [root()] }, + 'meta.list': failure('METHOD_NOT_FOUND'), + }) + expect(await catalog.list()).toEqual([root()]) + expect(markUnsupported).toHaveBeenCalledWith('meta.list') + await catalog.list() + expect(request.mock.calls.filter(([method]) => method === 'meta.list')).toHaveLength(1) + }) + + it.each(['UNAUTHORIZED', 'NOT_FOUND', 'INTERNAL_ERROR', 'TIMEOUT'])('does not hide list %s failures', async code => { + const error = failure(code) + const { catalog, markUnsupported } = setup({ 'skills.list': { skills: [] }, 'meta.list': error }) + await expect(catalog.list()).rejects.toBe(error) + expect(markUnsupported).not.toHaveBeenCalled() + }) + + it('rejects invalid Meta list payloads instead of converting them to an empty catalog', async () => { + const { catalog } = setup({ 'skills.list': { skills: [] }, 'meta.list': { skills: 'invalid' } }) + await expect(catalog.list()).rejects.toThrow('invalid response') + }) + + it('passes exact identity to inspect and preserves invocation capabilities', async () => { + const selected = root({ invocation: { model_catalog: false, skill_view: false, + user_completion: true, direct_command: true, argument_substitution: true, + scoped_tool_permissions: false, sandbox_execution: 'unknown' } }) + const { catalog, request } = setup({ + 'meta.inspect': { ...meta(), dependencies: [{ name: 'child', available: true, + visibility: 'internal', invocation: 'meta_only', owners: ['synthetic-meta'], + digest: 'synthetic-child-digest', source: 'skill://managed/child?generation=1' }] }, + }) + const detail = await catalog.detail(selected) + expect(request).toHaveBeenCalledExactlyOnceWith('meta.inspect', { + name: selected.name, instanceId: selected.instance_id, installId: selected.install_id, + }, expect.any(Object)) + expect(detail).toMatchObject({ sub_skills: ['child'], invocation: selected.invocation, eligible: true }) + }) + + it('rejects a changed winner rather than showing a different same-name installation', async () => { + const { catalog, request } = setup({ 'meta.inspect': { ...meta({ instance_id: 'managed:replacement' }), dependencies: [] } }) + await expect(catalog.detail(root())).rejects.toThrow('identity changed') + expect(request).toHaveBeenCalledOnce() + }) + + it('does not use old detail when Meta is disabled', async () => { + const { catalog, request } = setup({ 'meta.inspect': { disabled: true } }) + await expect(catalog.detail(root())).rejects.toThrow('disabled') + expect(request).toHaveBeenCalledOnce() + }) + + it('uses legacy exact detail when only meta.list is advertised', async () => { + const selected = root({ kind: 'meta_sop' }) + const { catalog, request, markUnsupported } = setup({ 'skills.get': selected }, ['meta.list']) + await expect(catalog.detail(selected)).resolves.toEqual(selected) + expect(request).toHaveBeenCalledExactlyOnceWith('skills.get', { + name: selected.name, instanceId: selected.instance_id, installId: selected.install_id, includeLifecycle: true, + }, expect.any(Object)) + expect(markUnsupported).not.toHaveBeenCalled() + }) + + it('rejects an invalid inspection without a legacy retry', async () => { + const { catalog, request } = setup({ 'meta.inspect': { name: 'synthetic-meta' } }) + await expect(catalog.detail(root())).rejects.toThrow('invalid response') + expect(request).toHaveBeenCalledOnce() + }) + + it.each(['UNAUTHORIZED', 'NOT_FOUND', 'INVALID_REQUEST', 'TIMEOUT'])('does not fall back from inspect %s failures', async code => { + const error = failure(code) + const { catalog, request, markUnsupported } = setup({ 'meta.inspect': error }) + await expect(catalog.detail(root())).rejects.toBe(error) + expect(request).toHaveBeenCalledOnce() + expect(markUnsupported).not.toHaveBeenCalled() + }) + + it('preserves exact identity on unsupported inspect and resumes inspect after a new connection', async () => { + const responses = { 'meta.inspect': failure('METHOD_NOT_FOUND') as unknown, 'skills.get': root() } + const { catalog, request, markUnsupported, supported } = setup(responses) + await expect(catalog.detail(root())).resolves.toEqual(root()) + expect(markUnsupported).toHaveBeenCalledWith('meta.inspect') + expect(request).toHaveBeenLastCalledWith('skills.get', { + name: 'synthetic-meta', instanceId: 'managed:synthetic-meta', + installId: 'synthetic-install', includeLifecycle: true, + }, expect.any(Object)) + supported.add('meta.inspect') + responses['meta.inspect'] = { ...meta(), dependencies: [] } + await expect(catalog.detail(root())).resolves.toMatchObject({ eligible: true }) + expect(request).toHaveBeenLastCalledWith('meta.inspect', expect.any(Object), expect.any(Object)) + }) + + it('uses the existing exact lifecycle detail for a shadowed Meta', async () => { + const selected = root({ active: false }) + const { catalog, request } = setup({ 'skills.get': selected }) + await expect(catalog.detail(selected)).resolves.toEqual(selected) + expect(request).toHaveBeenCalledExactlyOnceWith('skills.get', { + name: selected.name, instanceId: selected.instance_id, installId: selected.install_id, includeLifecycle: true, + }, expect.any(Object)) + }) + + it('clears readiness diagnostics without discarding declared Python installation metadata', async () => { + const selected = normalizeSkill(root({ + eligible: false, + status: 'needs_setup', + status_detail: 'Synthetic old missing dependency', + missing_bins: ['uv'], + lifecycle: { install_state: 'tracked', load_state: 'loaded', selection_state: 'active', + compatibility_state: 'native', readiness_state: 'needs_setup' }, + })) + selected.dependency_summary!.declared.python_packages = [{ install_id: 'python-deps', label: 'Python', package: 'synthetic-pkg', module: 'synthetic' }] + selected.dependency_summary!.sub_skill_dependencies.missing_references = ['missing-child'] + selected.install = [{ id: 'python-deps', kind: 'uv' }] + const { catalog } = setup({ 'meta.inspect': { ...meta(), dependencies: [] } }) + const detail = normalizeSkill(await catalog.detail(selected)) + expect(detail).toMatchObject({ eligible: true, status: 'ready', missing_bins: [] }) + expect(detail.status_detail).toBe('') + expect(skillStatusDotTitle(detail)).not.toContain('Synthetic old missing dependency') + expect(detail.dependency_summary?.missing.count).toBe(0) + expect(detail.dependency_summary?.sub_skill_dependencies.missing_references).toEqual([]) + expect(detail.dependency_summary?.declared.python_packages).toEqual(selected.dependency_summary!.declared.python_packages) + expect(detail.install).toEqual(selected.install) + expect(detail.lifecycle).toEqual({ ...selected.lifecycle, readiness_state: 'ready' }) + expect(skillLifecyclePresentation(selected, 'installed')?.tone).toBe('warning') + expect(skillLifecyclePresentation(detail, 'installed')).toBeNull() + expect(skillLifecyclePresentation(detail, 'registry')?.tone).toBe('success') + expect(selected.lifecycle?.readiness_state).toBe('needs_setup') + }) + + it('replaces obsolete setup explanations with current readiness reasons', async () => { + const { catalog } = setup({ 'meta.inspect': { ...meta({ ready: false, status: 'needs_setup', + reasons: ['Synthetic current requirement'] }), dependencies: [] } }) + const detail = await catalog.detail(root({ status_detail: 'Synthetic old requirement' })) + expect(detail.status_detail).toBe('Synthetic current requirement') + expect(skillStatusDotTitle(detail)).toBe('Synthetic current requirement') + }) +}) diff --git a/opensquilla-webui/src/adapters/gateway/skillCatalogV4.test.ts b/opensquilla-webui/src/adapters/gateway/skillCatalogV4.test.ts index 9f1e0dff88..4843a1c8dc 100644 --- a/opensquilla-webui/src/adapters/gateway/skillCatalogV4.test.ts +++ b/opensquilla-webui/src/adapters/gateway/skillCatalogV4.test.ts @@ -5,7 +5,8 @@ function adapter(call: ReturnType, supports = true) { return createV4SkillCatalog({ request: call, ready: vi.fn(async () => {}), - supports: vi.fn(() => supports), + supports: vi.fn((method: string) => supports && !method.startsWith('meta.')), + markUnsupported: vi.fn(), } as Parameters[0]) } diff --git a/opensquilla-webui/src/adapters/gateway/skillCatalogV4.ts b/opensquilla-webui/src/adapters/gateway/skillCatalogV4.ts index 7204c3c5a3..534e47017b 100644 --- a/opensquilla-webui/src/adapters/gateway/skillCatalogV4.ts +++ b/opensquilla-webui/src/adapters/gateway/skillCatalogV4.ts @@ -1,4 +1,16 @@ import type { TransportCallOptions as RpcCallOptions } from './transportTypes' +import { readTransportFailure } from './transportTypes' +import { + META_LIST_METHOD, + type Result as MetaListResult, +} from '@/contracts/generated/v4/metaList' +import { validateResult as validateMetaListResult } from '@/contracts/generated/v4/metaListValidators.mjs' +import { + META_INSPECT_METHOD, + type Params as MetaInspectParams, + type Result as MetaInspectResult, +} from '@/contracts/generated/v4/metaInspect' +import { validateResult as validateMetaInspectResult } from '@/contracts/generated/v4/metaInspectValidators.mjs' import { SKILLS_LIST_METHOD, type Params as SkillsListParams, @@ -112,6 +124,7 @@ interface RpcTransport { request(method: string, params?: Record, options?: RpcCallOptions): Promise ready(options?: { signal?: AbortSignal }): Promise supports(method: string): boolean + markUnsupported(method: string): void } const callOptions = (signal?: AbortSignal): RpcCallOptions => ({ @@ -131,20 +144,152 @@ function invalid(method: string): Error { return new Error(`${method} returned an invalid response`) } +function isMeta(skill: Pick): boolean { + return skill.kind === 'meta' || skill.kind === 'meta_sop' +} + +function isLifecycleOnly(skill: Pick): boolean { + return skill.active === false || Boolean( + skill.lifecycle && skill.lifecycle.selection_state !== 'active', + ) +} + +function matchesIdentity(left: Skill, right: Skill): boolean { + if (left.name !== right.name || isMeta(left) !== isMeta(right)) return false + if (left.instance_id && right.instance_id) return left.instance_id === right.instance_id + if (left.install_id && right.install_id) return left.install_id === right.install_id + if (left.instance_id || right.instance_id || left.install_id || right.install_id) return false + return Boolean(left.kind === right.kind && left.layer && right.layer && left.layer === right.layer) +} + +type MetaCatalogEntry = MetaListResult['skills'][number] + +function projectMeta(entry: MetaCatalogEntry, base?: Skill): Skill { + const missingBins = entry.missing_bins || [] + const missingEnv = entry.missing_env || [] + const missingEnvAny = entry.missing_env_any || [] + const summary = base?.dependency_summary + // Project only public UI fields. In particular, the wire invocation mode is + // a string whereas Skill.invocation is the existing capability object. + return { + ...base, + name: entry.name, + kind: base?.kind ?? 'meta', + description: entry.description ?? base?.description, + layer: base?.layer || entry.layer, + instance_id: base?.instance_id || entry.instance_id, + install_id: base?.install_id || entry.install_id, + source: base?.source ?? entry.source, + generation: entry.generation ?? base?.generation, + digest: entry.digest ?? base?.digest, + visibility: entry.visibility ?? base?.visibility, + eligible: entry.ready, + status: entry.status, + status_detail: entry.ready ? '' : (entry.reasons || []).join('; '), + lifecycle: base?.lifecycle && !isLifecycleOnly(base) + ? { ...base.lifecycle, readiness_state: entry.status } + : base?.lifecycle, + missing_bins: missingBins, + missing_env: missingEnv, + missing_env_any: missingEnvAny, + dependency_summary: summary ? { + ...summary, + missing: { + binaries: { all: missingBins, any: [] }, + api_env: { all: missingEnv, any: missingEnvAny }, + count: missingBins.length + missingEnv.length + missingEnvAny.length, + }, + sub_skill_dependencies: { + skills: [], + missing_count: (entry.missing_skills || []).length, + inferred_count: 0, + missing_references: entry.missing_skills || [], + }, + } : undefined, + dependency_count: entry.dependency_count ?? base?.dependency_count, + } +} + +function combineCatalog(skills: Skill[], metas: MetaListResult): Skill[] { + if (metas.disabled) return skills.filter(skill => !isMeta(skill) || isLifecycleOnly(skill)) + const combined = [...skills] + for (const entry of metas.skills) { + const meta = projectMeta(entry) + const matches = combined.flatMap((skill, index) => matchesIdentity(skill, meta) ? [index] : []) + if (matches.length === 1) { + const index = matches[0]! + combined[index] = projectMeta(entry, combined[index]) + } else { + combined.push(meta) + } + } + return combined +} + export function createV4SkillCatalog(rpc: RpcTransport): SkillCatalog { + async function compatibleMetaRead(method: string, read: () => Promise): Promise { + if (!rpc.supports(method)) return null + try { + return await read() + } catch (error) { + if (readTransportFailure(error).code !== 'METHOD_NOT_FOUND') throw error + rpc.markUnsupported(method) + return null + } + } + return { async list(options) { await rpc.ready({ signal: options?.signal }) const params: SkillsListParams = { includeLifecycle: true } - const result = await rpc.request( - SKILLS_LIST_METHOD, - { ...params }, - callOptions(options?.signal), - ) + const [result, metas] = await Promise.all([ + rpc.request(SKILLS_LIST_METHOD, { ...params }, callOptions(options?.signal)), + // meta.list predates the split catalog and lacks exact identity on old + // Gateways. Only the inspect capability identifies the new projection. + rpc.supports(META_INSPECT_METHOD) + ? compatibleMetaRead(META_LIST_METHOD, async () => { + const response = await rpc.request( + META_LIST_METHOD, undefined, callOptions(options?.signal), + ) + if (!validateMetaListResult(response)) throw invalid(META_LIST_METHOD) + return response + }) + : null, + ]) if (!validateSkillsListResult(result)) throw invalid(SKILLS_LIST_METHOD) - return result.skills as unknown as Skill[] + const skills = result.skills as unknown as Skill[] + return metas ? combineCatalog(skills, metas) : skills }, async detail(skill, options) { + await rpc.ready({ signal: options?.signal }) + if (isMeta(skill) && !isLifecycleOnly(skill)) { + const params: MetaInspectParams = { + name: skill.name, + ...(skill.instance_id ? { instanceId: skill.instance_id } : {}), + ...(skill.install_id ? { installId: skill.install_id } : {}), + } + const detail = await compatibleMetaRead(META_INSPECT_METHOD, async () => { + const response = await rpc.request( + META_INSPECT_METHOD, { ...params }, callOptions(options?.signal), + ) + if (!validateMetaInspectResult(response)) throw invalid(META_INSPECT_METHOD) + return response + }) + if (detail) { + if ('disabled' in detail && detail.disabled) throw new Error('MetaSkill catalog is disabled.') + if (!('name' in detail)) throw invalid(META_INSPECT_METHOD) + if (detail.name !== skill.name + || (skill.instance_id && detail.instance_id !== skill.instance_id) + || (skill.install_id && detail.install_id !== skill.install_id)) { + throw new Error('MetaSkill identity changed; refresh the catalog.') + } + return { + ...projectMeta(detail, skill), + dependencies: detail.dependencies, + sub_skills: (detail.dependencies || []).map(item => item.name), + } + } + } const params: SkillsGetParams = { name: skill.name, includeLifecycle: true, diff --git a/opensquilla-webui/src/contracts/generated/v4/agentsCreate.ts b/opensquilla-webui/src/contracts/generated/v4/agentsCreate.ts index 0082c9fa38..5d2b9f3af6 100644 --- a/opensquilla-webui/src/contracts/generated/v4/agentsCreate.ts +++ b/opensquilla-webui/src/contracts/generated/v4/agentsCreate.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: d9f2981c5aad0c8af85f8e124a3cc0424df1a7e22315a6c1a720455c2d136343 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaAgentsCreateContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/agentsCreateValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/agentsCreateValidators.d.mts index cff90706f3..7c878802f0 100644 --- a/opensquilla-webui/src/contracts/generated/v4/agentsCreateValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/agentsCreateValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: d9f2981c5aad0c8af85f8e124a3cc0424df1a7e22315a6c1a720455c2d136343 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/agentsCreateValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/agentsCreateValidators.mjs index 869025482b..5863512fa9 100644 --- a/opensquilla-webui/src/contracts/generated/v4/agentsCreateValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/agentsCreateValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: d9f2981c5aad0c8af85f8e124a3cc0424df1a7e22315a6c1a720455c2d136343 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateAgent = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Agent","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent"};const schema37 = {"type":"object","additionalProperties":true,"required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":["string","null"]},"isBuiltin":{"type":["boolean","null"]},"description":{"type":["string","null"]},"model":{"type":["string","null"]},"tools":{"type":["array","null"],"items":{"type":"string"}},"skills":{"type":["array","null"],"items":{"type":"string"}},"workspace":{"type":["string","null"]},"agentDir":{"type":["string","null"]},"enabled":{"type":["boolean","null"]},"systemPrompt":{"type":["string","null"]},"subagents":{"type":["object","null"],"additionalProperties":true}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Agent" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/required",keyword:"required",params:{missingProperty: "id"},message:"must have required property '"+"id"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.name === undefined){const err1 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/required",keyword:"required",params:{missingProperty: "name"},message:"must have required property '"+"name"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.id !== undefined){if(typeof data.id !== "string"){const err2 = {instancePath:instancePath+"/id",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.name !== undefined){if(typeof data.name !== "string"){const err3 = {instancePath:instancePath+"/name",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.type !== undefined){let data2 = data.type;if((typeof data2 !== "string") && (data2 !== null)){const err4 = {instancePath:instancePath+"/type",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/properties/type/type",keyword:"type",params:{type: schema37.properties.type.type},message:"must be string,null"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.isBuiltin !== undefined){let data3 = data.isBuiltin;if((typeof data3 !== "boolean") && (data3 !== null)){const err5 = {instancePath:instancePath+"/isBuiltin",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/properties/isBuiltin/type",keyword:"type",params:{type: schema37.properties.isBuiltin.type},message:"must be boolean,null"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.description !== undefined){let data4 = data.description;if((typeof data4 !== "string") && (data4 !== null)){const err6 = {instancePath:instancePath+"/description",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/properties/description/type",keyword:"type",params:{type: schema37.properties.description.type},message:"must be string,null"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.model !== undefined){let data5 = data.model;if((typeof data5 !== "string") && (data5 !== null)){const err7 = {instancePath:instancePath+"/model",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/properties/model/type",keyword:"type",params:{type: schema37.properties.model.type},message:"must be string,null"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.tools !== undefined){let data6 = data.tools;if((!(Array.isArray(data6))) && (data6 !== null)){const err8 = {instancePath:instancePath+"/tools",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/agents/agents-create.schema.json#/$defs/Agent/properties/tools/type",keyword:"type",params:{type: schema37.properties.tools.type},message:"must be array,null"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(Array.isArray(data6)){const len0 = data6.length;for(let i0=0; i0=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}if(data.streamSeq !== undefined){let data27 = data.streamSeq;if((!(((typeof data27 == "number") && (!(data27 % 1) && !isNaN(data27))) && (isFinite(data27)))) && (data27 !== null)){const err31 = {instancePath:instancePath+"/streamSeq",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/streamSeq/type",keyword:"type",params:{type: schema35.properties.streamSeq.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if((typeof data27 == "number") && (isFinite(data27))){if(data27 < 0 || isNaN(data27)){const err32 = {instancePath:instancePath+"/streamSeq",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/streamSeq/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}if(data.emitted_at !== undefined){let data28 = data.emitted_at;if((!((typeof data28 == "number") && (isFinite(data28)))) && (data28 !== null)){const err33 = {instancePath:instancePath+"/emitted_at",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/emitted_at/type",keyword:"type",params:{type: schema35.properties.emitted_at.type},message:"must be number,null"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.emittedAt !== undefined){let data29 = data.emittedAt;if((!((typeof data29 == "number") && (isFinite(data29)))) && (data29 !== null)){const err34 = {instancePath:instancePath+"/emittedAt",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/emittedAt/type",keyword:"type",params:{type: schema35.properties.emittedAt.type},message:"must be number,null"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}}else {const err35 = {instancePath,schemaPath:"#/$defs/ApprovalEventIdentityPayload/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.schema_version === undefined){const err36 = {instancePath,schemaPath:"#/allOf/1/required",keyword:"required",params:{missingProperty: "schema_version"},message:"must have required property '"+"schema_version"+"'"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if(data.schema_version !== undefined){if(1 !== data.schema_version){const err37 = {instancePath:instancePath+"/schema_version",schemaPath:"#/allOf/1/properties/schema_version/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}else {const err38 = {instancePath,schemaPath:"#/allOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}validate23.errors = vErrors;return errors === 0;}validate23.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema36 = {"description":"Legacy approval lifecycle payload. Existing v4 producers may omit schema_version or send it as null.","allOf":[{"$ref":"#/$defs/ApprovalEventIdentityPayload"},{"type":"object","properties":{"schema_version":{"type":"null"}}}]};function validate25(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate25.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs3 = errors;let valid2 = false;const _errs4 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.approval_id === undefined){const err0 = {instancePath,schemaPath:"#/$defs/ApprovalEventIdentityPayload/anyOf/0/required",keyword:"required",params:{missingProperty: "approval_id"},message:"must have required property '"+"approval_id"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var _valid0 = _errs4 === errors;valid2 = valid2 || _valid0;const _errs5 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.approvalId === undefined){const err1 = {instancePath,schemaPath:"#/$defs/ApprovalEventIdentityPayload/anyOf/1/required",keyword:"required",params:{missingProperty: "approvalId"},message:"must have required property '"+"approvalId"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var _valid0 = _errs5 === errors;valid2 = valid2 || _valid0;if(!valid2){const err2 = {instancePath,schemaPath:"#/$defs/ApprovalEventIdentityPayload/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}else {errors = _errs3;if(vErrors !== null){if(_errs3){vErrors.length = _errs3;}else {vErrors = null;}}}if(data && typeof data == "object" && !Array.isArray(data)){if(data.approval_id !== undefined){if(typeof data.approval_id !== "string"){const err3 = {instancePath:instancePath+"/approval_id",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/approval_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.approvalId !== undefined){if(typeof data.approvalId !== "string"){const err4 = {instancePath:instancePath+"/approvalId",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/approvalId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.namespace !== undefined){let data2 = data.namespace;if(!((data2 === "exec") || (data2 === "plugin"))){const err5 = {instancePath:instancePath+"/namespace",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/namespace/enum",keyword:"enum",params:{allowedValues: schema35.properties.namespace.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.session_key !== undefined){if(typeof data.session_key !== "string"){const err6 = {instancePath:instancePath+"/session_key",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/session_key/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.sessionKey !== undefined){if(typeof data.sessionKey !== "string"){const err7 = {instancePath:instancePath+"/sessionKey",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/sessionKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.tool_name !== undefined){if(typeof data.tool_name !== "string"){const err8 = {instancePath:instancePath+"/tool_name",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/tool_name/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.toolName !== undefined){if(typeof data.toolName !== "string"){const err9 = {instancePath:instancePath+"/toolName",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/toolName/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.command !== undefined){if(typeof data.command !== "string"){const err10 = {instancePath:instancePath+"/command",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/command/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.approval_kind !== undefined){if(typeof data.approval_kind !== "string"){const err11 = {instancePath:instancePath+"/approval_kind",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/approval_kind/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.approvalKind !== undefined){if(typeof data.approvalKind !== "string"){const err12 = {instancePath:instancePath+"/approvalKind",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/approvalKind/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.agent !== undefined){if(typeof data.agent !== "string"){const err13 = {instancePath:instancePath+"/agent",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/agent/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.args !== undefined){let data11 = data.args;if((!(data11 && typeof data11 == "object" && !Array.isArray(data11))) && (data11 !== null)){const err14 = {instancePath:instancePath+"/args",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/args/type",keyword:"type",params:{type: schema35.properties.args.type},message:"must be object,null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.warning !== undefined){if(typeof data.warning !== "string"){const err15 = {instancePath:instancePath+"/warning",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/warning/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.display_kind !== undefined){if(typeof data.display_kind !== "string"){const err16 = {instancePath:instancePath+"/display_kind",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/display_kind/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.displayKind !== undefined){if(typeof data.displayKind !== "string"){const err17 = {instancePath:instancePath+"/displayKind",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/displayKind/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.display_target !== undefined){if(typeof data.display_target !== "string"){const err18 = {instancePath:instancePath+"/display_target",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/display_target/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.displayTarget !== undefined){if(typeof data.displayTarget !== "string"){const err19 = {instancePath:instancePath+"/displayTarget",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/displayTarget/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data.destructive !== undefined){if(typeof data.destructive !== "boolean"){const err20 = {instancePath:instancePath+"/destructive",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/destructive/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.irreversible !== undefined){if(typeof data.irreversible !== "boolean"){const err21 = {instancePath:instancePath+"/irreversible",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/irreversible/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.backup_state !== undefined){if(typeof data.backup_state !== "string"){const err22 = {instancePath:instancePath+"/backup_state",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/backup_state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.backupState !== undefined){if(typeof data.backupState !== "string"){const err23 = {instancePath:instancePath+"/backupState",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/backupState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.created_at !== undefined){let data21 = data.created_at;if((!((typeof data21 == "number") && (isFinite(data21)))) && (data21 !== null)){const err24 = {instancePath:instancePath+"/created_at",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/created_at/type",keyword:"type",params:{type: schema35.properties.created_at.type},message:"must be number,null"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.createdAt !== undefined){let data22 = data.createdAt;if((!((typeof data22 == "number") && (isFinite(data22)))) && (data22 !== null)){const err25 = {instancePath:instancePath+"/createdAt",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/createdAt/type",keyword:"type",params:{type: schema35.properties.createdAt.type},message:"must be number,null"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data.deadline !== undefined){let data23 = data.deadline;if((!((typeof data23 == "number") && (isFinite(data23)))) && (data23 !== null)){const err26 = {instancePath:instancePath+"/deadline",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/deadline/type",keyword:"type",params:{type: schema35.properties.deadline.type},message:"must be number,null"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}if(data.approved !== undefined){if(typeof data.approved !== "boolean"){const err27 = {instancePath:instancePath+"/approved",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/approved/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data.resolution !== undefined){if(typeof data.resolution !== "string"){const err28 = {instancePath:instancePath+"/resolution",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/resolution/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}if(data.stream_seq !== undefined){let data26 = data.stream_seq;if((!(((typeof data26 == "number") && (!(data26 % 1) && !isNaN(data26))) && (isFinite(data26)))) && (data26 !== null)){const err29 = {instancePath:instancePath+"/stream_seq",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/stream_seq/type",keyword:"type",params:{type: schema35.properties.stream_seq.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if((typeof data26 == "number") && (isFinite(data26))){if(data26 < 0 || isNaN(data26)){const err30 = {instancePath:instancePath+"/stream_seq",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/stream_seq/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}if(data.streamSeq !== undefined){let data27 = data.streamSeq;if((!(((typeof data27 == "number") && (!(data27 % 1) && !isNaN(data27))) && (isFinite(data27)))) && (data27 !== null)){const err31 = {instancePath:instancePath+"/streamSeq",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/streamSeq/type",keyword:"type",params:{type: schema35.properties.streamSeq.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if((typeof data27 == "number") && (isFinite(data27))){if(data27 < 0 || isNaN(data27)){const err32 = {instancePath:instancePath+"/streamSeq",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/streamSeq/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}if(data.emitted_at !== undefined){let data28 = data.emitted_at;if((!((typeof data28 == "number") && (isFinite(data28)))) && (data28 !== null)){const err33 = {instancePath:instancePath+"/emitted_at",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/emitted_at/type",keyword:"type",params:{type: schema35.properties.emitted_at.type},message:"must be number,null"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.emittedAt !== undefined){let data29 = data.emittedAt;if((!((typeof data29 == "number") && (isFinite(data29)))) && (data29 !== null)){const err34 = {instancePath:instancePath+"/emittedAt",schemaPath:"#/$defs/ApprovalEventIdentityPayload/properties/emittedAt/type",keyword:"type",params:{type: schema35.properties.emittedAt.type},message:"must be number,null"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}}else {const err35 = {instancePath,schemaPath:"#/$defs/ApprovalEventIdentityPayload/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.schema_version !== undefined){if(data.schema_version !== null){const err36 = {instancePath:instancePath+"/schema_version",schemaPath:"#/allOf/1/properties/schema_version/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}}else {const err37 = {instancePath,schemaPath:"#/allOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}validate25.errors = vErrors;return errors === 0;}validate25.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate28(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate28.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;if(!(validate23(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);errors = vErrors.length;}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;var props0 = true;}const _errs2 = errors;if(!(validate25(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var _valid0 = _errs2 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;if(props0 !== true){props0 = true;}}}if(!valid0){const err0 = {instancePath,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate28.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate28.evaluated = {"dynamicProps":true,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:ApprovalEventPayload" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(!(validate28(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate28.errors : vErrors.concat(validate28.errors);errors = vErrors.length;}else {var props0 = validate28.evaluated.props;}validate20.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate20.evaluated = {"dynamicProps":true,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalExtend.ts b/opensquilla-webui/src/contracts/generated/v4/approvalExtend.ts index f46b5f3dee..1e213a2e08 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalExtend.ts +++ b/opensquilla-webui/src/contracts/generated/v4/approvalExtend.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: fcdc2fbfcd880c0872d99bb3daccffe5ac8fcbb8eb2fc07b14b8db3d44f76fe9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaExecApprovalExtendContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalExtendValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/approvalExtendValidators.d.mts index 1faf6297bb..22d1d943f2 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalExtendValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/approvalExtendValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: fcdc2fbfcd880c0872d99bb3daccffe5ac8fcbb8eb2fc07b14b8db3d44f76fe9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalExtendValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/approvalExtendValidators.mjs index 7f43974c55..26acc409b5 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalExtendValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/approvalExtendValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: fcdc2fbfcd880c0872d99bb3daccffe5ac8fcbb8eb2fc07b14b8db3d44f76fe9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateApprovalExtendParams = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:ApprovalExtendParams","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendParams"};const schema34 = {"type":"object","additionalProperties":true,"required":["id"],"properties":{"id":{"type":"string"},"seconds":{"type":["number","null"],"exclusiveMinimum":0}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:ApprovalExtendParams" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendParams/required",keyword:"required",params:{missingProperty: "id"},message:"must have required property '"+"id"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.id !== undefined){if(typeof data.id !== "string"){const err1 = {instancePath:instancePath+"/id",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendParams/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.seconds !== undefined){let data1 = data.seconds;if((!((typeof data1 == "number") && (isFinite(data1)))) && (data1 !== null)){const err2 = {instancePath:instancePath+"/seconds",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendParams/properties/seconds/type",keyword:"type",params:{type: schema34.properties.seconds.type},message:"must be number,null"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if((typeof data1 == "number") && (isFinite(data1))){if(data1 <= 0 || isNaN(data1)){const err3 = {instancePath:instancePath+"/seconds",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendParams/properties/seconds/exclusiveMinimum",keyword:"exclusiveMinimum",params:{comparison: ">", limit: 0},message:"must be > 0"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}}else {const err4 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendParams/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateApprovalExtendResult = validate30;const schema42 = {"$id":"urn:opensquilla:contract:v4:ApprovalExtendResult","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult"};const schema38 = {"type":"object","additionalProperties":true,"required":["id","mode","approved","resolved","resolution","deadline","consumed","pending"],"properties":{"id":{"type":"string"},"mode":{"type":"string","enum":["prompt","auto-approve","auto-deny"]},"approved":{"type":"boolean"},"resolved":{"type":"boolean"},"resolution":{"type":"string"},"deadline":{"type":["number","null"]},"consumed":{"type":"boolean"},"pending":{"type":"boolean"},"resolutionInProgress":{"type":["boolean","null"]}}};function validate30(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:ApprovalExtendResult" */;let vErrors = null;let errors = 0;const evaluated0 = validate30.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/required",keyword:"required",params:{missingProperty: "id"},message:"must have required property '"+"id"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.mode === undefined){const err1 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/required",keyword:"required",params:{missingProperty: "mode"},message:"must have required property '"+"mode"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.approved === undefined){const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/required",keyword:"required",params:{missingProperty: "approved"},message:"must have required property '"+"approved"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.resolved === undefined){const err3 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/required",keyword:"required",params:{missingProperty: "resolved"},message:"must have required property '"+"resolved"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.resolution === undefined){const err4 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/required",keyword:"required",params:{missingProperty: "resolution"},message:"must have required property '"+"resolution"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.deadline === undefined){const err5 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/required",keyword:"required",params:{missingProperty: "deadline"},message:"must have required property '"+"deadline"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.consumed === undefined){const err6 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/required",keyword:"required",params:{missingProperty: "consumed"},message:"must have required property '"+"consumed"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.pending === undefined){const err7 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/required",keyword:"required",params:{missingProperty: "pending"},message:"must have required property '"+"pending"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.id !== undefined){if(typeof data.id !== "string"){const err8 = {instancePath:instancePath+"/id",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.mode !== undefined){let data1 = data.mode;if(typeof data1 !== "string"){const err9 = {instancePath:instancePath+"/mode",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/mode/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(!(((data1 === "prompt") || (data1 === "auto-approve")) || (data1 === "auto-deny"))){const err10 = {instancePath:instancePath+"/mode",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/mode/enum",keyword:"enum",params:{allowedValues: schema38.properties.mode.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.approved !== undefined){if(typeof data.approved !== "boolean"){const err11 = {instancePath:instancePath+"/approved",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/approved/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.resolved !== undefined){if(typeof data.resolved !== "boolean"){const err12 = {instancePath:instancePath+"/resolved",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/resolved/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.resolution !== undefined){if(typeof data.resolution !== "string"){const err13 = {instancePath:instancePath+"/resolution",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/resolution/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.deadline !== undefined){let data5 = data.deadline;if((!((typeof data5 == "number") && (isFinite(data5)))) && (data5 !== null)){const err14 = {instancePath:instancePath+"/deadline",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/deadline/type",keyword:"type",params:{type: schema38.properties.deadline.type},message:"must be number,null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.consumed !== undefined){if(typeof data.consumed !== "boolean"){const err15 = {instancePath:instancePath+"/consumed",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/consumed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.pending !== undefined){if(typeof data.pending !== "boolean"){const err16 = {instancePath:instancePath+"/pending",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/pending/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.resolutionInProgress !== undefined){let data8 = data.resolutionInProgress;if((typeof data8 !== "boolean") && (data8 !== null)){const err17 = {instancePath:instancePath+"/resolutionInProgress",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/properties/resolutionInProgress/type",keyword:"type",params:{type: schema38.properties.resolutionInProgress.type},message:"must be boolean,null"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-extend.schema.json#/$defs/ApprovalExtendResult/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}validate30.errors = vErrors;return errors === 0;}validate30.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalResolve.ts b/opensquilla-webui/src/contracts/generated/v4/approvalResolve.ts index 01a8d2cbec..7a193b2b2d 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalResolve.ts +++ b/opensquilla-webui/src/contracts/generated/v4/approvalResolve.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: a30e94b509d6a4eef5220f14f51bf60d6044d11d0fc689a3a6a3b54adf082be2 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaExecApprovalResolveContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalResolveValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/approvalResolveValidators.d.mts index 637e2d3920..52ec134f48 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalResolveValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/approvalResolveValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: a30e94b509d6a4eef5220f14f51bf60d6044d11d0fc689a3a6a3b54adf082be2 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalResolveValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/approvalResolveValidators.mjs index 6133c6d658..cbe9f92ffb 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalResolveValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/approvalResolveValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: a30e94b509d6a4eef5220f14f51bf60d6044d11d0fc689a3a6a3b54adf082be2 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateApprovalResolveParams = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:ApprovalResolveParams","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams"};const schema34 = {"description":"The exact v4 names are retained. choice/decision and the removed allowAlways/rememberIntent fields remain representable so an adapter can preserve legacy rejection semantics rather than silently dropping them.","type":"object","additionalProperties":true,"required":["id","approved"],"properties":{"id":{"type":"string"},"approved":{"type":"boolean"},"choice":{"type":["string","null"]},"decision":{"type":["string","null"]},"allowAlways":{"type":["boolean","null"]},"rememberIntent":{"type":["boolean","null"]}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:ApprovalResolveParams" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/required",keyword:"required",params:{missingProperty: "id"},message:"must have required property '"+"id"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.approved === undefined){const err1 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/required",keyword:"required",params:{missingProperty: "approved"},message:"must have required property '"+"approved"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.id !== undefined){if(typeof data.id !== "string"){const err2 = {instancePath:instancePath+"/id",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.approved !== undefined){if(typeof data.approved !== "boolean"){const err3 = {instancePath:instancePath+"/approved",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/properties/approved/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.choice !== undefined){let data2 = data.choice;if((typeof data2 !== "string") && (data2 !== null)){const err4 = {instancePath:instancePath+"/choice",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/properties/choice/type",keyword:"type",params:{type: schema34.properties.choice.type},message:"must be string,null"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.decision !== undefined){let data3 = data.decision;if((typeof data3 !== "string") && (data3 !== null)){const err5 = {instancePath:instancePath+"/decision",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/properties/decision/type",keyword:"type",params:{type: schema34.properties.decision.type},message:"must be string,null"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.allowAlways !== undefined){let data4 = data.allowAlways;if((typeof data4 !== "boolean") && (data4 !== null)){const err6 = {instancePath:instancePath+"/allowAlways",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/properties/allowAlways/type",keyword:"type",params:{type: schema34.properties.allowAlways.type},message:"must be boolean,null"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.rememberIntent !== undefined){let data5 = data.rememberIntent;if((typeof data5 !== "boolean") && (data5 !== null)){const err7 = {instancePath:instancePath+"/rememberIntent",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/properties/rememberIntent/type",keyword:"type",params:{type: schema34.properties.rememberIntent.type},message:"must be boolean,null"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}}else {const err8 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveParams/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateApprovalResolveResult = validate30;const schema42 = {"$id":"urn:opensquilla:contract:v4:ApprovalResolveResult","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult"};const schema38 = {"type":"object","additionalProperties":true,"required":["id","mode","approved","resolved","resolution","deadline","consumed","pending"],"properties":{"id":{"type":"string"},"mode":{"type":"string","enum":["prompt","auto-approve","auto-deny"]},"approved":{"type":"boolean"},"resolved":{"type":"boolean"},"resolution":{"type":"string"},"deadline":{"type":["number","null"]},"consumed":{"type":"boolean"},"pending":{"type":"boolean"},"resolutionInProgress":{"type":["boolean","null"]}}};function validate30(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:ApprovalResolveResult" */;let vErrors = null;let errors = 0;const evaluated0 = validate30.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.id === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/required",keyword:"required",params:{missingProperty: "id"},message:"must have required property '"+"id"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.mode === undefined){const err1 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/required",keyword:"required",params:{missingProperty: "mode"},message:"must have required property '"+"mode"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.approved === undefined){const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/required",keyword:"required",params:{missingProperty: "approved"},message:"must have required property '"+"approved"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.resolved === undefined){const err3 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/required",keyword:"required",params:{missingProperty: "resolved"},message:"must have required property '"+"resolved"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.resolution === undefined){const err4 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/required",keyword:"required",params:{missingProperty: "resolution"},message:"must have required property '"+"resolution"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.deadline === undefined){const err5 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/required",keyword:"required",params:{missingProperty: "deadline"},message:"must have required property '"+"deadline"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.consumed === undefined){const err6 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/required",keyword:"required",params:{missingProperty: "consumed"},message:"must have required property '"+"consumed"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.pending === undefined){const err7 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/required",keyword:"required",params:{missingProperty: "pending"},message:"must have required property '"+"pending"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.id !== undefined){if(typeof data.id !== "string"){const err8 = {instancePath:instancePath+"/id",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.mode !== undefined){let data1 = data.mode;if(typeof data1 !== "string"){const err9 = {instancePath:instancePath+"/mode",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/mode/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(!(((data1 === "prompt") || (data1 === "auto-approve")) || (data1 === "auto-deny"))){const err10 = {instancePath:instancePath+"/mode",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/mode/enum",keyword:"enum",params:{allowedValues: schema38.properties.mode.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.approved !== undefined){if(typeof data.approved !== "boolean"){const err11 = {instancePath:instancePath+"/approved",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/approved/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.resolved !== undefined){if(typeof data.resolved !== "boolean"){const err12 = {instancePath:instancePath+"/resolved",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/resolved/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.resolution !== undefined){if(typeof data.resolution !== "string"){const err13 = {instancePath:instancePath+"/resolution",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/resolution/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.deadline !== undefined){let data5 = data.deadline;if((!((typeof data5 == "number") && (isFinite(data5)))) && (data5 !== null)){const err14 = {instancePath:instancePath+"/deadline",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/deadline/type",keyword:"type",params:{type: schema38.properties.deadline.type},message:"must be number,null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.consumed !== undefined){if(typeof data.consumed !== "boolean"){const err15 = {instancePath:instancePath+"/consumed",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/consumed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.pending !== undefined){if(typeof data.pending !== "boolean"){const err16 = {instancePath:instancePath+"/pending",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/pending/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.resolutionInProgress !== undefined){let data8 = data.resolutionInProgress;if((typeof data8 !== "boolean") && (data8 !== null)){const err17 = {instancePath:instancePath+"/resolutionInProgress",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/properties/resolutionInProgress/type",keyword:"type",params:{type: schema38.properties.resolutionInProgress.type},message:"must be boolean,null"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-resolve.schema.json#/$defs/ApprovalResolveResult/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}validate30.errors = vErrors;return errors === 0;}validate30.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalSnapshot.ts b/opensquilla-webui/src/contracts/generated/v4/approvalSnapshot.ts index d665c0aa95..d991d41bf7 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalSnapshot.ts +++ b/opensquilla-webui/src/contracts/generated/v4/approvalSnapshot.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: ce578a7d34dd2a4c1aac1c1d393a277c81de689ba04edca4b556ee6b14853d74 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * The current handler ignores params. Keep null and legacy non-object values representable so the observation adapter cannot change v4 error behavior. diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalSnapshotValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/approvalSnapshotValidators.d.mts index 43a8c15480..d6bbe6e307 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalSnapshotValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/approvalSnapshotValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: ce578a7d34dd2a4c1aac1c1d393a277c81de689ba04edca4b556ee6b14853d74 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalSnapshotValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/approvalSnapshotValidators.mjs index 51833202f3..102b3a2042 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalSnapshotValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/approvalSnapshotValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: ce578a7d34dd2a4c1aac1c1d393a277c81de689ba04edca4b556ee6b14853d74 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateExecApprovalSnapshotResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:ExecApprovalSnapshotResult","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-snapshot.schema.json#/$defs/ExecApprovalSnapshotResult"};const schema37 = {"type":"object","additionalProperties":true,"required":["mode"],"properties":{"mode":{"type":"string","enum":["prompt","auto-approve","auto-deny"]}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:ExecApprovalSnapshotResult" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.mode === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-snapshot.schema.json#/$defs/ExecApprovalSnapshotResult/required",keyword:"required",params:{missingProperty: "mode"},message:"must have required property '"+"mode"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.mode !== undefined){let data0 = data.mode;if(typeof data0 !== "string"){const err1 = {instancePath:instancePath+"/mode",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-snapshot.schema.json#/$defs/ExecApprovalSnapshotResult/properties/mode/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(!(((data0 === "prompt") || (data0 === "auto-approve")) || (data0 === "auto-deny"))){const err2 = {instancePath:instancePath+"/mode",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-snapshot.schema.json#/$defs/ExecApprovalSnapshotResult/properties/mode/enum",keyword:"enum",params:{allowedValues: schema37.properties.mode.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}}else {const err3 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/approvals/approval-snapshot.schema.json#/$defs/ExecApprovalSnapshotResult/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalStatus.ts b/opensquilla-webui/src/contracts/generated/v4/approvalStatus.ts index 30ee9d425f..8a0376f4b9 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/approvalStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 4bba409a7c96615f7e923cc28a64f70c30bb97713c6be48f2e74be020d321f18 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaExecApprovalStatusContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalStatusValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/approvalStatusValidators.d.mts index 2e2a4a2327..d0a017c119 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalStatusValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/approvalStatusValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 4bba409a7c96615f7e923cc28a64f70c30bb97713c6be48f2e74be020d321f18 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/approvalStatusValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/approvalStatusValidators.mjs index ab8a7df50b..a3a00fdade 100644 --- a/opensquilla-webui/src/contracts/generated/v4/approvalStatusValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/approvalStatusValidators.mjs @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 4bba409a7c96615f7e923cc28a64f70c30bb97713c6be48f2e74be020d321f18 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e function __opensquillaAjvUcs2Length(str) { const len = str.length diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEvent.ts b/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEvent.ts index 918d99a30a..a9a6b483d0 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEvent.ts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEvent.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 49d3c61de0122339f81248892e3fe9dfed0d815ae9f832a2d2c642c7b3127f51 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaArtifactWorkbenchDocumentChangedEventContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEventValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEventValidators.d.mts index 6d3f52661c..6bba5b1ca2 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEventValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEventValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 49d3c61de0122339f81248892e3fe9dfed0d815ae9f832a2d2c642c7b3127f51 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEventValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEventValidators.mjs index 891dbece02..5a116be3ab 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEventValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/artifactDocumentChangedEventValidators.mjs @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 49d3c61de0122339f81248892e3fe9dfed0d815ae9f832a2d2c642c7b3127f51 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e function __opensquillaAjvUcs2Length(str) { const len = str.length diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGet.ts b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGet.ts index 9eee6f0e51..b0d5763b61 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGet.ts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGet.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 89362f65354d585a16d1cd4f61f689ee0afdb92f081f8e6673f2c55b3434906d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaArtifactsChangesGetContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGetValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGetValidators.d.mts index ddfd10b6c5..6a04c74638 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGetValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGetValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 89362f65354d585a16d1cd4f61f689ee0afdb92f081f8e6673f2c55b3434906d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGetValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGetValidators.mjs index 8d601e1f70..be6f0f44ba 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGetValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesGetValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 89362f65354d585a16d1cd4f61f689ee0afdb92f081f8e6673f2c55b3434906d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-changes-get.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["changeSet"],"properties":{"changeSet":{"type":"object","additionalProperties":true}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.changeSet === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-changes-get.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "changeSet"},message:"must have required property '"+"changeSet"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.changeSet !== undefined){let data0 = data.changeSet;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){}else {const err1 = {instancePath:instancePath+"/changeSet",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-changes-get.schema.json#/$defs/Result/properties/changeSet/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}}else {const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-changes-get.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesList.ts b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesList.ts index 02402d4c2a..ee1a89c064 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesList.ts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesList.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 84229e3f9cee2572ebf582ebe6dd90bd918ca5eb039186afabffc19da128d8b3 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaArtifactsChangesListContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesListValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesListValidators.d.mts index d591df5de8..53c5dfe974 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesListValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesListValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 84229e3f9cee2572ebf582ebe6dd90bd918ca5eb039186afabffc19da128d8b3 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesListValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesListValidators.mjs index 4b6219a3e4..b335ef479d 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsChangesListValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsChangesListValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 84229e3f9cee2572ebf582ebe6dd90bd918ca5eb039186afabffc19da128d8b3 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-changes-list.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["changeSets"],"properties":{"changeSets":{"type":"array","items":{"type":"object","additionalProperties":true}}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.changeSets === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-changes-list.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "changeSets"},message:"must have required property '"+"changeSets"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.changeSets !== undefined){let data0 = data.changeSets;if(Array.isArray(data0)){const len0 = data0.length;for(let i0=0; i0=", limit: 1},message:"must be >= 1"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}if(data.document !== undefined){let data2 = data.document;if(data2 && typeof data2 == "object" && !Array.isArray(data2)){}else {const err4 = {instancePath:instancePath+"/document",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-mutations-resolve.schema.json#/$defs/Result/properties/document/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.result !== undefined){let data3 = data.result;if(data3 && typeof data3 == "object" && !Array.isArray(data3)){}else {const err5 = {instancePath:instancePath+"/result",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-mutations-resolve.schema.json#/$defs/Result/properties/result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}}else {const err6 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-mutations-resolve.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreate.ts b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreate.ts index 661be524d2..ab51f0f53a 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreate.ts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreate.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 6533bd2b5d6a03c58d8068fe2e578f6a6d4a43dc1c8b2e316db6c8e5964a2a22 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaArtifactsPromptAnnotationsCreateContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreateValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreateValidators.d.mts index be26bbed72..282dd28a46 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreateValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreateValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 6533bd2b5d6a03c58d8068fe2e578f6a6d4a43dc1c8b2e316db6c8e5964a2a22 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreateValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreateValidators.mjs index f3d3427f48..d47c8bbac5 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreateValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsCreateValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 6533bd2b5d6a03c58d8068fe2e578f6a6d4a43dc1c8b2e316db6c8e5964a2a22 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-create.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["annotation"],"properties":{"annotation":{"type":"object","additionalProperties":true}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.annotation === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-create.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "annotation"},message:"must have required property '"+"annotation"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.annotation !== undefined){let data0 = data.annotation;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){}else {const err1 = {instancePath:instancePath+"/annotation",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-create.schema.json#/$defs/Result/properties/annotation/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}}else {const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-create.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscard.ts b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscard.ts index 4842793d86..37ca73b58b 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscard.ts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscard.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 250c16db7640fb66b3d3212ded410ec087ce1fe5124380e6a4bf72150a9c2ab1 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaArtifactsPromptAnnotationsDiscardContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscardValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscardValidators.d.mts index b66931f79f..f06c0c068a 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscardValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscardValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 250c16db7640fb66b3d3212ded410ec087ce1fe5124380e6a4bf72150a9c2ab1 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscardValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscardValidators.mjs index 9a3054d56f..3ba69e3481 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscardValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsDiscardValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 250c16db7640fb66b3d3212ded410ec087ce1fe5124380e6a4bf72150a9c2ab1 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-discard.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["annotation"],"properties":{"annotation":{"type":"object","additionalProperties":true}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.annotation === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-discard.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "annotation"},message:"must have required property '"+"annotation"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.annotation !== undefined){let data0 = data.annotation;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){}else {const err1 = {instancePath:instancePath+"/annotation",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-discard.schema.json#/$defs/Result/properties/annotation/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}}else {const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-discard.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocus.ts b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocus.ts index 117fed8e08..d5337762d9 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 3e4d93a9dc7f6d65b6a8bd3dff98af2949835d13afab47aafc0a71c947405a3d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaArtifactsPromptAnnotationsFocusContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocusValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocusValidators.d.mts index 3cf42f7025..34576f22ba 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocusValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocusValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 3e4d93a9dc7f6d65b6a8bd3dff98af2949835d13afab47aafc0a71c947405a3d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocusValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocusValidators.mjs index 76e80cabfb..96017b98e1 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocusValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsFocusValidators.mjs @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 3e4d93a9dc7f6d65b6a8bd3dff98af2949835d13afab47aafc0a71c947405a3d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e function __opensquillaAjvUcs2Length(str) { const len = str.length diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsList.ts b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsList.ts index f5dfe6a5a5..c1bc3a171f 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsList.ts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsList.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 17e014cd069a8e2406fe723ed4b0f683cad533f1451572327d1667a131b30277 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaArtifactsPromptAnnotationsListContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsListValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsListValidators.d.mts index aa16154e73..c95aaf1c6b 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsListValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsListValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 17e014cd069a8e2406fe723ed4b0f683cad533f1451572327d1667a131b30277 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsListValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsListValidators.mjs index 0c73f74afc..5d91939d71 100644 --- a/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsListValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/artifactsPromptAnnotationsListValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 17e014cd069a8e2406fe723ed4b0f683cad533f1451572327d1667a131b30277 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-list.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["annotations"],"properties":{"annotations":{"type":"array","items":{"type":"object","additionalProperties":true}}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.annotations === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/workbench/artifacts-prompt-annotations-list.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "annotations"},message:"must have required property '"+"annotations"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.annotations !== undefined){let data0 = data.annotations;if(Array.isArray(data0)){const len0 = data0.length;for(let i0=0; i0=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}if(data.page_size !== undefined){let data7 = data.page_size;if(!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))){const err18 = {instancePath:instancePath+"/page_size",schemaPath:"#/properties/page_size/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if((typeof data7 == "number") && (isFinite(data7))){if(data7 > 200 || isNaN(data7)){const err19 = {instancePath:instancePath+"/page_size",schemaPath:"#/properties/page_size/maximum",keyword:"maximum",params:{comparison: "<=", limit: 200},message:"must be <= 200"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(data7 < 1 || isNaN(data7)){const err20 = {instancePath:instancePath+"/page_size",schemaPath:"#/properties/page_size/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}}if(data.canonical_available !== undefined){if(typeof data.canonical_available !== "boolean"){const err21 = {instancePath:instancePath+"/canonical_available",schemaPath:"#/properties/canonical_available/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.canonical_complete !== undefined){if(typeof data.canonical_complete !== "boolean"){const err22 = {instancePath:instancePath+"/canonical_complete",schemaPath:"#/properties/canonical_complete/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.compaction_summaries !== undefined){let data10 = data.compaction_summaries;if(Array.isArray(data10)){const len1 = data10.length;for(let i1=0; i1=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}}if(data.runtimeBudgetSeconds !== undefined){let data3 = data.runtimeBudgetSeconds;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){const err9 = {instancePath:instancePath+"/runtimeBudgetSeconds",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/goals/goals-capabilities.schema.json#/$defs/Result/properties/runtimeBudgetSeconds/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if((typeof data3 == "number") && (isFinite(data3))){if(data3 < 0 || isNaN(data3)){const err10 = {instancePath:instancePath+"/runtimeBudgetSeconds",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/goals/goals-capabilities.schema.json#/$defs/Result/properties/runtimeBudgetSeconds/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}if(data.methods !== undefined){let data4 = data.methods;if(Array.isArray(data4)){const len0 = data4.length;for(let i0=0; i0=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}if(data.goal !== undefined){let data5 = data.goal;if((!(data5 && typeof data5 == "object" && !Array.isArray(data5))) && (data5 !== null)){const err10 = {instancePath:instancePath+"/goal",schemaPath:"#/$defs/GoalSnapshot/type",keyword:"type",params:{type: schema38.type},message:"must be object,null"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(data5 && typeof data5 == "object" && !Array.isArray(data5)){if(data5.status === undefined){const err11 = {instancePath:instancePath+"/goal",schemaPath:"#/$defs/GoalSnapshot/required",keyword:"required",params:{missingProperty: "status"},message:"must have required property '"+"status"+"'"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(data5.goalId !== undefined){if(typeof data5.goalId !== "string"){const err12 = {instancePath:instancePath+"/goal/goalId",schemaPath:"#/$defs/GoalSnapshot/properties/goalId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data5.goal_id !== undefined){if(typeof data5.goal_id !== "string"){const err13 = {instancePath:instancePath+"/goal/goal_id",schemaPath:"#/$defs/GoalSnapshot/properties/goal_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data5.sessionKey !== undefined){if(typeof data5.sessionKey !== "string"){const err14 = {instancePath:instancePath+"/goal/sessionKey",schemaPath:"#/$defs/GoalSnapshot/properties/sessionKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data5.session_key !== undefined){if(typeof data5.session_key !== "string"){const err15 = {instancePath:instancePath+"/goal/session_key",schemaPath:"#/$defs/GoalSnapshot/properties/session_key/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data5.sessionId !== undefined){if(typeof data5.sessionId !== "string"){const err16 = {instancePath:instancePath+"/goal/sessionId",schemaPath:"#/$defs/GoalSnapshot/properties/sessionId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data5.epoch !== undefined){let data11 = data5.epoch;if(!(((typeof data11 == "number") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))){const err17 = {instancePath:instancePath+"/goal/epoch",schemaPath:"#/$defs/GoalSnapshot/properties/epoch/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}if((typeof data11 == "number") && (isFinite(data11))){if(data11 < 0 || isNaN(data11)){const err18 = {instancePath:instancePath+"/goal/epoch",schemaPath:"#/$defs/GoalSnapshot/properties/epoch/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}if(data5.objective !== undefined){if(typeof data5.objective !== "string"){const err19 = {instancePath:instancePath+"/goal/objective",schemaPath:"#/$defs/GoalSnapshot/properties/objective/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data5.status !== undefined){if(typeof data5.status !== "string"){const err20 = {instancePath:instancePath+"/goal/status",schemaPath:"#/$defs/GoalSnapshot/properties/status/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data5.stateRevision !== undefined){let data14 = data5.stateRevision;if(!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))){const err21 = {instancePath:instancePath+"/goal/stateRevision",schemaPath:"#/$defs/GoalSnapshot/properties/stateRevision/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if((typeof data14 == "number") && (isFinite(data14))){if(data14 < 0 || isNaN(data14)){const err22 = {instancePath:instancePath+"/goal/stateRevision",schemaPath:"#/$defs/GoalSnapshot/properties/stateRevision/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}}if(data5.objectiveRevision !== undefined){let data15 = data5.objectiveRevision;if(!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))){const err23 = {instancePath:instancePath+"/goal/objectiveRevision",schemaPath:"#/$defs/GoalSnapshot/properties/objectiveRevision/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}if((typeof data15 == "number") && (isFinite(data15))){if(data15 < 0 || isNaN(data15)){const err24 = {instancePath:instancePath+"/goal/objectiveRevision",schemaPath:"#/$defs/GoalSnapshot/properties/objectiveRevision/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}if(data5.progressRevision !== undefined){let data16 = data5.progressRevision;if(!(((typeof data16 == "number") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))){const err25 = {instancePath:instancePath+"/goal/progressRevision",schemaPath:"#/$defs/GoalSnapshot/properties/progressRevision/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if((typeof data16 == "number") && (isFinite(data16))){if(data16 < 0 || isNaN(data16)){const err26 = {instancePath:instancePath+"/goal/progressRevision",schemaPath:"#/$defs/GoalSnapshot/properties/progressRevision/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}if(data5.continuationSeq !== undefined){let data17 = data5.continuationSeq;if(!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))){const err27 = {instancePath:instancePath+"/goal/continuationSeq",schemaPath:"#/$defs/GoalSnapshot/properties/continuationSeq/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}if((typeof data17 == "number") && (isFinite(data17))){if(data17 < 0 || isNaN(data17)){const err28 = {instancePath:instancePath+"/goal/continuationSeq",schemaPath:"#/$defs/GoalSnapshot/properties/continuationSeq/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}}if(data5.activeTaskId !== undefined){let data18 = data5.activeTaskId;if((typeof data18 !== "string") && (data18 !== null)){const err29 = {instancePath:instancePath+"/goal/activeTaskId",schemaPath:"#/$defs/GoalSnapshot/properties/activeTaskId/type",keyword:"type",params:{type: schema38.properties.activeTaskId.type},message:"must be string,null"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}if(data5.executionState !== undefined){if(typeof data5.executionState !== "string"){const err30 = {instancePath:instancePath+"/goal/executionState",schemaPath:"#/$defs/GoalSnapshot/properties/executionState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data5.createdAt !== undefined){let data20 = data5.createdAt;if(!(((typeof data20 == "number") && (!(data20 % 1) && !isNaN(data20))) && (isFinite(data20)))){const err31 = {instancePath:instancePath+"/goal/createdAt",schemaPath:"#/$defs/GoalSnapshot/properties/createdAt/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data5.updatedAt !== undefined){let data21 = data5.updatedAt;if(!(((typeof data21 == "number") && (!(data21 % 1) && !isNaN(data21))) && (isFinite(data21)))){const err32 = {instancePath:instancePath+"/goal/updatedAt",schemaPath:"#/$defs/GoalSnapshot/properties/updatedAt/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data5.finishedAt !== undefined){let data22 = data5.finishedAt;if((!(((typeof data22 == "number") && (!(data22 % 1) && !isNaN(data22))) && (isFinite(data22)))) && (data22 !== null)){const err33 = {instancePath:instancePath+"/goal/finishedAt",schemaPath:"#/$defs/GoalSnapshot/properties/finishedAt/type",keyword:"type",params:{type: schema38.properties.finishedAt.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}}}}else {const err34 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}validate29.errors = vErrors;return errors === 0;}validate29.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate28(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate28.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(!(validate29(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate29.errors : vErrors.concat(validate29.errors);errors = vErrors.length;}validate28.errors = vErrors;return errors === 0;}validate28.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/logsStatus.ts b/opensquilla-webui/src/contracts/generated/v4/logsStatus.ts index d222941da5..2daef4258e 100644 --- a/opensquilla-webui/src/contracts/generated/v4/logsStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/logsStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f5f6353ca9c9ff8f376165afc759bf34d976212592990a21020a0f104a3662cf -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaLogsStatusContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/logsStatusValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/logsStatusValidators.d.mts index 8d08e94b4f..bbc462d32f 100644 --- a/opensquilla-webui/src/contracts/generated/v4/logsStatusValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/logsStatusValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f5f6353ca9c9ff8f376165afc759bf34d976212592990a21020a0f104a3662cf -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/logsStatusValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/logsStatusValidators.mjs index e4149ef172..ccd46fec5a 100644 --- a/opensquilla-webui/src/contracts/generated/v4/logsStatusValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/logsStatusValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f5f6353ca9c9ff8f376165afc759bf34d976212592990a21020a0f104a3662cf -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["raw_turn_call_log","gateway_file_log","diagnostics_enabled"],"properties":{"raw_turn_call_log":{"type":"object","additionalProperties":true},"gateway_file_log":{"type":"object","additionalProperties":true},"trace_log":{"type":"object","additionalProperties":true},"diagnostics_enabled":{"type":"object","additionalProperties":true},"diagnostics":{"type":"object","additionalProperties":true},"env":{"type":"object","additionalProperties":true}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.raw_turn_call_log === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "raw_turn_call_log"},message:"must have required property '"+"raw_turn_call_log"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.gateway_file_log === undefined){const err1 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "gateway_file_log"},message:"must have required property '"+"gateway_file_log"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.diagnostics_enabled === undefined){const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "diagnostics_enabled"},message:"must have required property '"+"diagnostics_enabled"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.raw_turn_call_log !== undefined){let data0 = data.raw_turn_call_log;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){}else {const err3 = {instancePath:instancePath+"/raw_turn_call_log",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/properties/raw_turn_call_log/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.gateway_file_log !== undefined){let data1 = data.gateway_file_log;if(data1 && typeof data1 == "object" && !Array.isArray(data1)){}else {const err4 = {instancePath:instancePath+"/gateway_file_log",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/properties/gateway_file_log/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.trace_log !== undefined){let data2 = data.trace_log;if(data2 && typeof data2 == "object" && !Array.isArray(data2)){}else {const err5 = {instancePath:instancePath+"/trace_log",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/properties/trace_log/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.diagnostics_enabled !== undefined){let data3 = data.diagnostics_enabled;if(data3 && typeof data3 == "object" && !Array.isArray(data3)){}else {const err6 = {instancePath:instancePath+"/diagnostics_enabled",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/properties/diagnostics_enabled/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.diagnostics !== undefined){let data4 = data.diagnostics;if(data4 && typeof data4 == "object" && !Array.isArray(data4)){}else {const err7 = {instancePath:instancePath+"/diagnostics",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/properties/diagnostics/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.env !== undefined){let data5 = data.env;if(data5 && typeof data5 == "object" && !Array.isArray(data5)){}else {const err8 = {instancePath:instancePath+"/env",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/properties/env/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}}else {const err9 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/logs-status.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/logsTail.ts b/opensquilla-webui/src/contracts/generated/v4/logsTail.ts index 6fed62cbfe..efacb39972 100644 --- a/opensquilla-webui/src/contracts/generated/v4/logsTail.ts +++ b/opensquilla-webui/src/contracts/generated/v4/logsTail.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 9d4b6f407706cd0d825104129db0a54374513faa7645a07e62c6e6b53df0f825 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaLogsTailContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/logsTailValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/logsTailValidators.d.mts index c19cb912cf..07931cb6d7 100644 --- a/opensquilla-webui/src/contracts/generated/v4/logsTailValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/logsTailValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 9d4b6f407706cd0d825104129db0a54374513faa7645a07e62c6e6b53df0f825 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/logsTailValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/logsTailValidators.mjs index 1771678ba9..0f39eb0baa 100644 --- a/opensquilla-webui/src/contracts/generated/v4/logsTailValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/logsTailValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 9d4b6f407706cd0d825104129db0a54374513faa7645a07e62c6e6b53df0f825 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/observability/logs-tail.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["lines","cursor","has_more"],"properties":{"lines":{"type":"array","items":{"$ref":"#/$defs/LogLine"}},"cursor":{"type":"integer","minimum":0},"has_more":{"type":"boolean"}}};const schema38 = {"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}]};function validate32(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate32.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.lines === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "lines"},message:"must have required property '"+"lines"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.cursor === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "cursor"},message:"must have required property '"+"cursor"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.has_more === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "has_more"},message:"must have required property '"+"has_more"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.lines !== undefined){let data0 = data.lines;if(Array.isArray(data0)){const len0 = data0.length;for(let i0=0; i0=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}}if(data.has_more !== undefined){if(typeof data.has_more !== "boolean"){const err9 = {instancePath:instancePath+"/has_more",schemaPath:"#/properties/has_more/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}else {const err10 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}validate32.errors = vErrors;return errors === 0;}validate32.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(!(validate32(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate32.errors : vErrors.concat(validate32.errors);errors = vErrors.length;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/memoryImportApply.ts b/opensquilla-webui/src/contracts/generated/v4/memoryImportApply.ts index 2f5e45539c..e7edbb423e 100644 --- a/opensquilla-webui/src/contracts/generated/v4/memoryImportApply.ts +++ b/opensquilla-webui/src/contracts/generated/v4/memoryImportApply.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 69fcf32b43943127a0edbeebb60d4a4b98c31321a5fca906de3589f8ab8ae305 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaMemoryImportApplyContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/memoryImportCancel.ts b/opensquilla-webui/src/contracts/generated/v4/memoryImportCancel.ts index fad16f0c85..1f4a341c68 100644 --- a/opensquilla-webui/src/contracts/generated/v4/memoryImportCancel.ts +++ b/opensquilla-webui/src/contracts/generated/v4/memoryImportCancel.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 28e95bd8597f67e6b7b3a59e224782a47ae3e53f673799314ee7b788d67e268a -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaMemoryImportCancelContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/memoryImportDiscard.ts b/opensquilla-webui/src/contracts/generated/v4/memoryImportDiscard.ts index d4a588fdbd..544dfc3ef8 100644 --- a/opensquilla-webui/src/contracts/generated/v4/memoryImportDiscard.ts +++ b/opensquilla-webui/src/contracts/generated/v4/memoryImportDiscard.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 6e49290c4c90d4f5f9f8be67b76ae54c0261bdc9f6841d0bbd828decdb6fdbc5 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaMemoryImportDiscardContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/memoryImportInfo.ts b/opensquilla-webui/src/contracts/generated/v4/memoryImportInfo.ts index 32632f2eba..5230be12cb 100644 --- a/opensquilla-webui/src/contracts/generated/v4/memoryImportInfo.ts +++ b/opensquilla-webui/src/contracts/generated/v4/memoryImportInfo.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 95e7e30d0bbbb8f7f39a91b1f0ba0c530c6ae8d7d3a4338a2bf98e0a6245b715 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaMemoryImportInfoContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/memoryImportRetry.ts b/opensquilla-webui/src/contracts/generated/v4/memoryImportRetry.ts index 17ba69e125..84596b2783 100644 --- a/opensquilla-webui/src/contracts/generated/v4/memoryImportRetry.ts +++ b/opensquilla-webui/src/contracts/generated/v4/memoryImportRetry.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 1e4abed514b8e74ef0dd7de3bd02c071fd67a06cf43953dfe4737cabb8a31a0b -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaMemoryImportRetryContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/memoryImportStart.ts b/opensquilla-webui/src/contracts/generated/v4/memoryImportStart.ts index 70bfd97a9b..eae6d584d7 100644 --- a/opensquilla-webui/src/contracts/generated/v4/memoryImportStart.ts +++ b/opensquilla-webui/src/contracts/generated/v4/memoryImportStart.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 0cb2b6c42bdb74ecfe02caac1d5e0f97f821d27a00248d6ffcc3c0c6ceb90c27 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaMemoryImportStartContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/memoryImportStatus.ts b/opensquilla-webui/src/contracts/generated/v4/memoryImportStatus.ts index c19f04cd36..533a26d9d7 100644 --- a/opensquilla-webui/src/contracts/generated/v4/memoryImportStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/memoryImportStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 6c088474af6eb89871dce27a0cd7b4f0cc86519537fcd3371750c8c35c8faa42 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaMemoryImportStatusContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/memoryImportUndo.ts b/opensquilla-webui/src/contracts/generated/v4/memoryImportUndo.ts index 5832e36390..6677f12023 100644 --- a/opensquilla-webui/src/contracts/generated/v4/memoryImportUndo.ts +++ b/opensquilla-webui/src/contracts/generated/v4/memoryImportUndo.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 5dfcac156053dbcbb16a4f18c31c3ceffd580717fcb52b4ee961eee2d29f9d36 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaMemoryImportUndoContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscard.ts b/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscard.ts index 183879cb46..8a4cfe0cf5 100644 --- a/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscard.ts +++ b/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscard.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f73da1418d1ea7a63a508499fbcc154a247376aaa948ae119f5c19202d1a64af -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface OpenSquillaMetaDraftsDiscardContract { request?: RequestFrame; diff --git a/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscardValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscardValidators.d.mts index d57ce39a54..992dcc0925 100644 --- a/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscardValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscardValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f73da1418d1ea7a63a508499fbcc154a247376aaa948ae119f5c19202d1a64af -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscardValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscardValidators.mjs index 4dc0f3db0d..052aa7bb88 100644 --- a/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscardValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/metaDraftsDiscardValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f73da1418d1ea7a63a508499fbcc154a247376aaa948ae119f5c19202d1a64af -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/meta/meta-drafts-discard.schema.json#/$defs/Result"};const schema35 = {"type":"object","additionalProperties":true};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){}else {const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/meta/meta-drafts-discard.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/metaDraftsList.ts b/opensquilla-webui/src/contracts/generated/v4/metaDraftsList.ts index df3ff2dcd7..47f8c93810 100644 --- a/opensquilla-webui/src/contracts/generated/v4/metaDraftsList.ts +++ b/opensquilla-webui/src/contracts/generated/v4/metaDraftsList.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f72a233725a21741c6e2d934bad644e65fd96660e237a367f73b144e42f84f26 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface OpenSquillaMetaDraftsListContract { request?: RequestFrame; diff --git a/opensquilla-webui/src/contracts/generated/v4/metaDraftsListValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/metaDraftsListValidators.d.mts index 18fb947032..f1b3011381 100644 --- a/opensquilla-webui/src/contracts/generated/v4/metaDraftsListValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/metaDraftsListValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f72a233725a21741c6e2d934bad644e65fd96660e237a367f73b144e42f84f26 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/metaDraftsListValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/metaDraftsListValidators.mjs index 30fffe8a5e..689dec982c 100644 --- a/opensquilla-webui/src/contracts/generated/v4/metaDraftsListValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/metaDraftsListValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f72a233725a21741c6e2d934bad644e65fd96660e237a367f73b144e42f84f26 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/meta/meta-drafts-list.schema.json#/$defs/Result"};const schema35 = {"type":"object","additionalProperties":true};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){}else {const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/meta/meta-drafts-list.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/metaInspect.ts b/opensquilla-webui/src/contracts/generated/v4/metaInspect.ts new file mode 100644 index 0000000000..db676fa87d --- /dev/null +++ b/opensquilla-webui/src/contracts/generated/v4/metaInspect.ts @@ -0,0 +1,133 @@ +// @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. +// source-sha256: 7872d9d63e127ca615ab77fe9709a02cedd1d6f4f78c3a67d0ea866e4abac8a9 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e + +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Response". + */ +export type Response = Ok | Err; +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Result". + */ +export type Result = Inspection | Disabled; + +export interface OpenSquillaMetaInspectContract { + request?: Request; + response?: Response; +} +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Request". + */ +export interface Request { + type: "req"; + id: string; + method: "meta.inspect"; + params?: Params | null; +} +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Params". + */ +export interface Params { + name: string; + instanceId?: string; + instance_id?: string; + installId?: string; + install_id?: string; + [k: string]: unknown; +} +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Ok". + */ +export interface Ok { + type: "res"; + id: string; + ok: true; + payload: Result; +} +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Inspection". + */ +export interface Inspection { + name: string; + description?: string; + layer: string; + instance_id: string; + install_id: string; + visibility?: string; + invocation?: string; + digest?: string; + source?: string; + generation?: number; + dependency_count?: number; + ready: boolean; + status: "ready" | "needs_setup"; + missing_bins?: string[]; + missing_env?: string[]; + missing_skills?: string[]; + missing_capabilities?: string[]; + missing_provider_capabilities?: string[]; + reasons?: string[]; + missing_env_any?: string[][]; + setup_actions?: { + [k: string]: unknown; + }[]; + manual_setup_actions?: { + [k: string]: unknown; + }[]; + dependencies: Dependency[]; + [k: string]: unknown; +} +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Dependency". + */ +export interface Dependency { + name: string; + available: boolean; + visibility: string; + invocation: string; + owners: string[]; + digest: string; + source: string; +} +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Disabled". + */ +export interface Disabled { + disabled: true; +} +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "Err". + */ +export interface Err { + type: "res"; + id: string; + ok: false; + payload?: null; + error: RpcError; +} +/** + * This interface was referenced by `OpenSquillaMetaInspectContract`'s JSON-Schema + * via the `definition` "RpcError". + */ +export interface RpcError { + code: string; + message: string; + [k: string]: unknown; +} + +export const META_INSPECT_CONTRACT_KIND = "query" as const +export const META_INSPECT_METHOD = "meta.inspect" as const +export const META_INSPECT_SCOPE = "operator.read" as const +export const META_INSPECT_IDEMPOTENCY = "read-only" as const +export const META_INSPECT_TIMEOUT = {"policy":"caller"} as const +export const META_INSPECT_CAPABILITY = {"kind":"method-availability","name":"meta.inspect"} as const +export const META_INSPECT_ERRORS = [{"code":"INVALID_REQUEST"},{"code":"UNAUTHORIZED"},{"code":"NOT_FOUND"},{"code":"INTERNAL_ERROR"}] as const diff --git a/opensquilla-webui/src/contracts/generated/v4/metaInspectValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/metaInspectValidators.d.mts new file mode 100644 index 0000000000..cc95d7d0bd --- /dev/null +++ b/opensquilla-webui/src/contracts/generated/v4/metaInspectValidators.d.mts @@ -0,0 +1,10 @@ +// @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. +// source-sha256: 7872d9d63e127ca615ab77fe9709a02cedd1d6f4f78c3a67d0ea866e4abac8a9 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e + +export interface ContractValidator { + (value: unknown): boolean + errors?: readonly unknown[] | null +} + +export const validateResult: ContractValidator diff --git a/opensquilla-webui/src/contracts/generated/v4/metaInspectValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/metaInspectValidators.mjs new file mode 100644 index 0000000000..1d01683197 --- /dev/null +++ b/opensquilla-webui/src/contracts/generated/v4/metaInspectValidators.mjs @@ -0,0 +1,5 @@ +// @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. +// source-sha256: 7872d9d63e127ca615ab77fe9709a02cedd1d6f4f78c3a67d0ea866e4abac8a9 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e + +"use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/meta/meta-inspect.schema.json#/$defs/Result"};const schema37 = {"oneOf":[{"$ref":"#/$defs/Inspection"},{"$ref":"#/$defs/Disabled"}]};const schema40 = {"type":"object","additionalProperties":false,"required":["disabled"],"properties":{"disabled":{"const":true}}};const schema38 = {"type":"object","additionalProperties":true,"required":["name","layer","instance_id","install_id","ready","status","dependencies"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"layer":{"type":"string"},"instance_id":{"type":"string"},"install_id":{"type":"string"},"visibility":{"type":"string"},"invocation":{"type":"string"},"digest":{"type":"string"},"source":{"type":"string"},"generation":{"type":"integer"},"dependency_count":{"type":"integer","minimum":0},"ready":{"type":"boolean"},"status":{"enum":["ready","needs_setup"]},"missing_bins":{"type":"array","items":{"type":"string"}},"missing_env":{"type":"array","items":{"type":"string"}},"missing_skills":{"type":"array","items":{"type":"string"}},"missing_capabilities":{"type":"array","items":{"type":"string"}},"missing_provider_capabilities":{"type":"array","items":{"type":"string"}},"reasons":{"type":"array","items":{"type":"string"}},"missing_env_any":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"setup_actions":{"type":"array","items":{"type":"object","additionalProperties":true}},"manual_setup_actions":{"type":"array","items":{"type":"object","additionalProperties":true}},"dependencies":{"type":"array","items":{"$ref":"#/$defs/Dependency"}}}};const schema39 = {"type":"object","additionalProperties":false,"required":["name","available","visibility","invocation","owners","digest","source"],"properties":{"name":{"type":"string"},"available":{"type":"boolean"},"visibility":{"type":"string"},"invocation":{"type":"string"},"owners":{"type":"array","items":{"type":"string"}},"digest":{"type":"string"},"source":{"type":"string"}}};function validate27(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate27.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.name === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "name"},message:"must have required property '"+"name"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.layer === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "layer"},message:"must have required property '"+"layer"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.instance_id === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "instance_id"},message:"must have required property '"+"instance_id"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.install_id === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "install_id"},message:"must have required property '"+"install_id"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.ready === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "ready"},message:"must have required property '"+"ready"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.status === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "status"},message:"must have required property '"+"status"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.dependencies === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "dependencies"},message:"must have required property '"+"dependencies"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.name !== undefined){if(typeof data.name !== "string"){const err7 = {instancePath:instancePath+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.description !== undefined){if(typeof data.description !== "string"){const err8 = {instancePath:instancePath+"/description",schemaPath:"#/properties/description/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.layer !== undefined){if(typeof data.layer !== "string"){const err9 = {instancePath:instancePath+"/layer",schemaPath:"#/properties/layer/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.instance_id !== undefined){if(typeof data.instance_id !== "string"){const err10 = {instancePath:instancePath+"/instance_id",schemaPath:"#/properties/instance_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.install_id !== undefined){if(typeof data.install_id !== "string"){const err11 = {instancePath:instancePath+"/install_id",schemaPath:"#/properties/install_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.visibility !== undefined){if(typeof data.visibility !== "string"){const err12 = {instancePath:instancePath+"/visibility",schemaPath:"#/properties/visibility/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.invocation !== undefined){if(typeof data.invocation !== "string"){const err13 = {instancePath:instancePath+"/invocation",schemaPath:"#/properties/invocation/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.digest !== undefined){if(typeof data.digest !== "string"){const err14 = {instancePath:instancePath+"/digest",schemaPath:"#/properties/digest/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.source !== undefined){if(typeof data.source !== "string"){const err15 = {instancePath:instancePath+"/source",schemaPath:"#/properties/source/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.generation !== undefined){let data9 = data.generation;if(!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err16 = {instancePath:instancePath+"/generation",schemaPath:"#/properties/generation/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.dependency_count !== undefined){let data10 = data.dependency_count;if(!(((typeof data10 == "number") && (!(data10 % 1) && !isNaN(data10))) && (isFinite(data10)))){const err17 = {instancePath:instancePath+"/dependency_count",schemaPath:"#/properties/dependency_count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}if((typeof data10 == "number") && (isFinite(data10))){if(data10 < 0 || isNaN(data10)){const err18 = {instancePath:instancePath+"/dependency_count",schemaPath:"#/properties/dependency_count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}if(data.ready !== undefined){if(typeof data.ready !== "boolean"){const err19 = {instancePath:instancePath+"/ready",schemaPath:"#/properties/ready/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data.status !== undefined){let data12 = data.status;if(!((data12 === "ready") || (data12 === "needs_setup"))){const err20 = {instancePath:instancePath+"/status",schemaPath:"#/properties/status/enum",keyword:"enum",params:{allowedValues: schema38.properties.status.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.missing_bins !== undefined){let data13 = data.missing_bins;if(Array.isArray(data13)){const len0 = data13.length;for(let i0=0; i0=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}}if(data1.ready !== undefined){if(typeof data1.ready !== "boolean"){const err20 = {instancePath:instancePath+"/skills/" + i0+"/ready",schemaPath:"#/$defs/MetaSkill/properties/ready/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data1.status !== undefined){let data14 = data1.status;if(!((data14 === "ready") || (data14 === "needs_setup"))){const err21 = {instancePath:instancePath+"/skills/" + i0+"/status",schemaPath:"#/$defs/MetaSkill/properties/status/enum",keyword:"enum",params:{allowedValues: schema38.properties.status.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data1.missing_bins !== undefined){let data15 = data1.missing_bins;if(Array.isArray(data15)){const len1 = data15.length;for(let i1=0; i1=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}if(data.maxOutputTokens !== undefined){let data4 = data.maxOutputTokens;if(!(((typeof data4 == "number") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))){const err16 = {instancePath:instancePath+"/maxOutputTokens",schemaPath:"#/properties/maxOutputTokens/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if((typeof data4 == "number") && (isFinite(data4))){if(data4 < 0 || isNaN(data4)){const err17 = {instancePath:instancePath+"/maxOutputTokens",schemaPath:"#/properties/maxOutputTokens/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}if(data.capabilities !== undefined){let data5 = data.capabilities;if(Array.isArray(data5)){const len0 = data5.length;for(let i0=0; i0=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}if(data.promoted_turn_id !== undefined){let data14 = data.promoted_turn_id;if((typeof data14 !== "string") && (data14 !== null)){const err15 = {instancePath:instancePath+"/promoted_turn_id",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/promoted_turn_id/type",keyword:"type",params:{type: schema38.properties.promoted_turn_id.type},message:"must be string,null"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.promoted_from_turn_id !== undefined){let data15 = data.promoted_from_turn_id;if((typeof data15 !== "string") && (data15 !== null)){const err16 = {instancePath:instancePath+"/promoted_from_turn_id",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/promoted_from_turn_id/type",keyword:"type",params:{type: schema38.properties.promoted_from_turn_id.type},message:"must be string,null"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.applied_iteration !== undefined){let data16 = data.applied_iteration;if((!(((typeof data16 == "number") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))) && (data16 !== null)){const err17 = {instancePath:instancePath+"/applied_iteration",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/applied_iteration/type",keyword:"type",params:{type: schema38.properties.applied_iteration.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}if((typeof data16 == "number") && (isFinite(data16))){if(data16 < 0 || isNaN(data16)){const err18 = {instancePath:instancePath+"/applied_iteration",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/applied_iteration/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}if(data.model_call_id !== undefined){let data17 = data.model_call_id;if((typeof data17 !== "string") && (data17 !== null)){const err19 = {instancePath:instancePath+"/model_call_id",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/model_call_id/type",keyword:"type",params:{type: schema38.properties.model_call_id.type},message:"must be string,null"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data.fallback_safe !== undefined){let data18 = data.fallback_safe;if((typeof data18 !== "boolean") && (data18 !== null)){const err20 = {instancePath:instancePath+"/fallback_safe",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/fallback_safe/type",keyword:"type",params:{type: schema38.properties.fallback_safe.type},message:"must be boolean,null"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.failure_code !== undefined){let data19 = data.failure_code;if((typeof data19 !== "string") && (data19 !== null)){const err21 = {instancePath:instancePath+"/failure_code",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/failure_code/type",keyword:"type",params:{type: schema38.properties.failure_code.type},message:"must be string,null"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.retryable !== undefined){let data20 = data.retryable;if((typeof data20 !== "boolean") && (data20 !== null)){const err22 = {instancePath:instancePath+"/retryable",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/retryable/type",keyword:"type",params:{type: schema38.properties.retryable.type},message:"must be boolean,null"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.recovery !== undefined){let data21 = data.recovery;if((typeof data21 !== "string") && (data21 !== null)){const err23 = {instancePath:instancePath+"/recovery",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/recovery/type",keyword:"type",params:{type: schema38.properties.recovery.type},message:"must be string,null"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.reason !== undefined){let data22 = data.reason;if((typeof data22 !== "string") && (data22 !== null)){const err24 = {instancePath:instancePath+"/reason",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/reason/type",keyword:"type",params:{type: schema38.properties.reason.type},message:"must be string,null"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.steer_capability !== undefined){let data23 = data.steer_capability;if((!(data23 && typeof data23 == "object" && !Array.isArray(data23))) && (data23 !== null)){const err25 = {instancePath:instancePath+"/steer_capability",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/properties/steer_capability/type",keyword:"type",params:{type: schema38.properties.steer_capability.type},message:"must be object,null"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}}else {const err26 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/pending-inputs-steer.schema.json#/$defs/PendingInputsSteerResult/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/plansCancelRun.ts b/opensquilla-webui/src/contracts/generated/v4/plansCancelRun.ts index 59926cbf09..55f98f7be6 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansCancelRun.ts +++ b/opensquilla-webui/src/contracts/generated/v4/plansCancelRun.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 545b5d8ce44adf202bd1c1af9e40ce392abfac3948c6bfed592f576453884092 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaPlansCancelRunContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/plansCancelRunValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/plansCancelRunValidators.d.mts index 387302e86a..81a236f76c 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansCancelRunValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/plansCancelRunValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 545b5d8ce44adf202bd1c1af9e40ce392abfac3948c6bfed592f576453884092 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/plansCancelRunValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/plansCancelRunValidators.mjs index 851c8b5c4b..67f8590d9c 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansCancelRunValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/plansCancelRunValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 545b5d8ce44adf202bd1c1af9e40ce392abfac3948c6bfed592f576453884092 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/plans/plans-cancel-run.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":true};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){}else {const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/plans/plans-cancel-run.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/plansCapabilities.ts b/opensquilla-webui/src/contracts/generated/v4/plansCapabilities.ts index d04cad1713..7131580500 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansCapabilities.ts +++ b/opensquilla-webui/src/contracts/generated/v4/plansCapabilities.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: b2c0e707b81771a4bbb13f2529fe33d56a62955d03c34e8ebd451c827bb75775 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaPlansCapabilitiesContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/plansImplement.ts b/opensquilla-webui/src/contracts/generated/v4/plansImplement.ts index 0c592a1788..57cd219c59 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansImplement.ts +++ b/opensquilla-webui/src/contracts/generated/v4/plansImplement.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: b1d1312f203f3fe1d8bd93a2966a60edd658712668a72ce9f837ae3d41bbbcc7 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaPlansImplementContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/plansImplementValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/plansImplementValidators.d.mts index 0600cd08e2..6aede9c9f7 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansImplementValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/plansImplementValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: b1d1312f203f3fe1d8bd93a2966a60edd658712668a72ce9f837ae3d41bbbcc7 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/plansImplementValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/plansImplementValidators.mjs index a5bce03cf7..2e26b75ce9 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansImplementValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/plansImplementValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: b1d1312f203f3fe1d8bd93a2966a60edd658712668a72ce9f837ae3d41bbbcc7 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/plans/plans-implement.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":true};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){}else {const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/plans/plans-implement.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/plansRevise.ts b/opensquilla-webui/src/contracts/generated/v4/plansRevise.ts index 7585eaa96d..c2fe4fa2db 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansRevise.ts +++ b/opensquilla-webui/src/contracts/generated/v4/plansRevise.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f820a436127eaaf38f483568444656d30dd24402e46e54ef4d10cd34a88eeae5 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaPlansReviseContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/plansReviseValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/plansReviseValidators.d.mts index fe88c92163..dab0b1598d 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansReviseValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/plansReviseValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f820a436127eaaf38f483568444656d30dd24402e46e54ef4d10cd34a88eeae5 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/plansReviseValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/plansReviseValidators.mjs index 03c1c90d32..ce34298f2f 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansReviseValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/plansReviseValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: f820a436127eaaf38f483568444656d30dd24402e46e54ef4d10cd34a88eeae5 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/plans/plans-revise.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":true};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){}else {const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/plans/plans-revise.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/plansSetMode.ts b/opensquilla-webui/src/contracts/generated/v4/plansSetMode.ts index 2720eed43c..e4b6cad684 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansSetMode.ts +++ b/opensquilla-webui/src/contracts/generated/v4/plansSetMode.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 77c8bc2f047cb523349445e4d83df6be41a4dbe510f0aac131536dfa2693b5a9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaPlansSetModeContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/plansSetModeValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/plansSetModeValidators.d.mts index 1818ba055a..b2ad9b935b 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansSetModeValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/plansSetModeValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 77c8bc2f047cb523349445e4d83df6be41a4dbe510f0aac131536dfa2693b5a9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/plansSetModeValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/plansSetModeValidators.mjs index ef3791c7e4..1ea2192f7d 100644 --- a/opensquilla-webui/src/contracts/generated/v4/plansSetModeValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/plansSetModeValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 77c8bc2f047cb523349445e4d83df6be41a4dbe510f0aac131536dfa2693b5a9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/plans/plans-set-mode.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":true};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){}else {const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/plans/plans-set-mode.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/pluginApprovalExtend.ts b/opensquilla-webui/src/contracts/generated/v4/pluginApprovalExtend.ts index 9532acffbb..1ed61567b5 100644 --- a/opensquilla-webui/src/contracts/generated/v4/pluginApprovalExtend.ts +++ b/opensquilla-webui/src/contracts/generated/v4/pluginApprovalExtend.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 6fea300b7ee5f451b3dec4446b70b143ea6be6f6a146620e86d05cafdb6843ba -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaPluginApprovalExtendContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/pluginApprovalResolve.ts b/opensquilla-webui/src/contracts/generated/v4/pluginApprovalResolve.ts index 72d7f1dbcf..9d972aa83d 100644 --- a/opensquilla-webui/src/contracts/generated/v4/pluginApprovalResolve.ts +++ b/opensquilla-webui/src/contracts/generated/v4/pluginApprovalResolve.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 294f4dc0c20e4c7aa4c6a61a1d4a400768f86efedf20f5beb1b1386071d9086a -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaPluginApprovalResolveContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/pluginApprovalStatus.ts b/opensquilla-webui/src/contracts/generated/v4/pluginApprovalStatus.ts index 8d98fbed0c..ec4ead30d6 100644 --- a/opensquilla-webui/src/contracts/generated/v4/pluginApprovalStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/pluginApprovalStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 8eae4564eacaba7bfbc6f3bb3795cf56a38d6c39cd693d4a2a94299d1fe7146b -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaPluginApprovalStatusContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSet.ts b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSet.ts index 87f8434466..4bff03f278 100644 --- a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSet.ts +++ b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSet.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 096b756ebb3b4c746c5f9efd69b52071c70f176815b1b606df181ca8bdaeac89 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaSessionsPromptCacheKeepaliveSetContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSetValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSetValidators.d.mts index 6199499d1a..5d4c471e55 100644 --- a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSetValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSetValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 096b756ebb3b4c746c5f9efd69b52071c70f176815b1b606df181ca8bdaeac89 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSetValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSetValidators.mjs index 81f6f5b958..644aceecb6 100644 --- a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSetValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveSetValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 096b756ebb3b4c746c5f9efd69b52071c70f176815b1b606df181ca8bdaeac89 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/conversation/prompt-cache-keepalive-set.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":true};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){}else {const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/prompt-cache-keepalive-set.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatus.ts b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatus.ts index 8b30c653c8..66e037b138 100644 --- a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 698a7ff7225e8af30d3e5a5239cb077aa61cb4b6f5ec633015ceced0014e1816 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaSessionsPromptCacheKeepaliveStatusContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatusValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatusValidators.d.mts index f9ece80c4b..511a55e882 100644 --- a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatusValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatusValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 698a7ff7225e8af30d3e5a5239cb077aa61cb4b6f5ec633015ceced0014e1816 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatusValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatusValidators.mjs index 6a89ac360d..887b297ea5 100644 --- a/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatusValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/promptCacheKeepaliveStatusValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 698a7ff7225e8af30d3e5a5239cb077aa61cb4b6f5ec633015ceced0014e1816 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/conversation/prompt-cache-keepalive-status.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":true};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){}else {const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/prompt-cache-keepalive-status.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/providersStatus.ts b/opensquilla-webui/src/contracts/generated/v4/providersStatus.ts index f5d1dd72e2..269cbc18e7 100644 --- a/opensquilla-webui/src/contracts/generated/v4/providersStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/providersStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: fbc72891d7aa943eb899318b8e4caa06bf407bd19e532e5933e2ae9f43b344c1 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface OpenSquillaProvidersStatusContract { request?: RequestFrame; diff --git a/opensquilla-webui/src/contracts/generated/v4/providersStatusValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/providersStatusValidators.d.mts index 008977db47..f299f4f644 100644 --- a/opensquilla-webui/src/contracts/generated/v4/providersStatusValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/providersStatusValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: fbc72891d7aa943eb899318b8e4caa06bf407bd19e532e5933e2ae9f43b344c1 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/providersStatusValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/providersStatusValidators.mjs index da825bf7a0..68f38e90e9 100644 --- a/opensquilla-webui/src/contracts/generated/v4/providersStatusValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/providersStatusValidators.mjs @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: fbc72891d7aa943eb899318b8e4caa06bf407bd19e532e5933e2ae9f43b344c1 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e function __opensquillaAjvUcs2Length(str) { const len = str.length diff --git a/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmit.ts b/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmit.ts index 35356e6ea3..780919da4a 100644 --- a/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmit.ts +++ b/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmit.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 76bfffe78c55729b6de8ab7427892d1049721097eb10e8df6f18f03b30fd7871 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaRouterFeedbackSubmitContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmitValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmitValidators.d.mts index 78bc60f7a9..642c61ae71 100644 --- a/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmitValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmitValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 76bfffe78c55729b6de8ab7427892d1049721097eb10e8df6f18f03b30fd7871 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmitValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmitValidators.mjs index f196194dc2..9ca28b2c66 100644 --- a/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmitValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/routerFeedbackSubmitValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 76bfffe78c55729b6de8ab7427892d1049721097eb10e8df6f18f03b30fd7871 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/conversation/router-feedback-submit.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":true,"required":["accepted"],"properties":{"accepted":{"type":"boolean"},"reason":{"type":["string","null"]},"recorded":{"type":["string","null"]}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.accepted === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/router-feedback-submit.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "accepted"},message:"must have required property '"+"accepted"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.accepted !== undefined){if(typeof data.accepted !== "boolean"){const err1 = {instancePath:instancePath+"/accepted",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/router-feedback-submit.schema.json#/$defs/Result/properties/accepted/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.reason !== undefined){let data1 = data.reason;if((typeof data1 !== "string") && (data1 !== null)){const err2 = {instancePath:instancePath+"/reason",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/router-feedback-submit.schema.json#/$defs/Result/properties/reason/type",keyword:"type",params:{type: schema36.properties.reason.type},message:"must be string,null"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.recorded !== undefined){let data2 = data.recorded;if((typeof data2 !== "string") && (data2 !== null)){const err3 = {instancePath:instancePath+"/recorded",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/router-feedback-submit.schema.json#/$defs/Result/properties/recorded/type",keyword:"type",params:{type: schema36.properties.recorded.type},message:"must be string,null"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}else {const err4 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/conversation/router-feedback-submit.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatus.ts b/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatus.ts index af325e495b..2cfd6e1fb1 100644 --- a/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 9b7346aa7c4d58f02c2fe8534389b66f71b7455a5392e200826b4fc3c2aaad9a -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaRouterSelflearningStatusContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatusValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatusValidators.d.mts index 051e262544..22cc414d03 100644 --- a/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatusValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatusValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 9b7346aa7c4d58f02c2fe8534389b66f71b7455a5392e200826b4fc3c2aaad9a -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatusValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatusValidators.mjs index d72ff43a4b..2ec9b3d3d7 100644 --- a/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatusValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/routerSelflearningStatusValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 9b7346aa7c4d58f02c2fe8534389b66f71b7455a5392e200826b4fc3c2aaad9a -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["agentId","enabled","captureEnabled","trainingReachable","dream","activeModel","samples","gate","lastReceipt"],"properties":{"agentId":{"type":"string"},"enabled":{"type":"boolean"},"captureEnabled":{"type":"boolean"},"trainingReachable":{"type":"boolean"},"dream":{"type":"object","additionalProperties":true},"activeModel":{"type":"object","additionalProperties":true},"samples":{"type":["object","null"],"additionalProperties":true},"gate":{"type":["object","null"],"additionalProperties":true},"lastReceipt":{"type":["object","null"],"additionalProperties":true},"error":{"type":"string"}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.agentId === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "agentId"},message:"must have required property '"+"agentId"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.enabled === undefined){const err1 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "enabled"},message:"must have required property '"+"enabled"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.captureEnabled === undefined){const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "captureEnabled"},message:"must have required property '"+"captureEnabled"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.trainingReachable === undefined){const err3 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "trainingReachable"},message:"must have required property '"+"trainingReachable"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.dream === undefined){const err4 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "dream"},message:"must have required property '"+"dream"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.activeModel === undefined){const err5 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "activeModel"},message:"must have required property '"+"activeModel"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.samples === undefined){const err6 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "samples"},message:"must have required property '"+"samples"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.gate === undefined){const err7 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "gate"},message:"must have required property '"+"gate"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.lastReceipt === undefined){const err8 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "lastReceipt"},message:"must have required property '"+"lastReceipt"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.agentId !== undefined){if(typeof data.agentId !== "string"){const err9 = {instancePath:instancePath+"/agentId",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/agentId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.enabled !== undefined){if(typeof data.enabled !== "boolean"){const err10 = {instancePath:instancePath+"/enabled",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/enabled/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.captureEnabled !== undefined){if(typeof data.captureEnabled !== "boolean"){const err11 = {instancePath:instancePath+"/captureEnabled",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/captureEnabled/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.trainingReachable !== undefined){if(typeof data.trainingReachable !== "boolean"){const err12 = {instancePath:instancePath+"/trainingReachable",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/trainingReachable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.dream !== undefined){let data4 = data.dream;if(data4 && typeof data4 == "object" && !Array.isArray(data4)){}else {const err13 = {instancePath:instancePath+"/dream",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/dream/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.activeModel !== undefined){let data5 = data.activeModel;if(data5 && typeof data5 == "object" && !Array.isArray(data5)){}else {const err14 = {instancePath:instancePath+"/activeModel",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/activeModel/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.samples !== undefined){let data6 = data.samples;if((!(data6 && typeof data6 == "object" && !Array.isArray(data6))) && (data6 !== null)){const err15 = {instancePath:instancePath+"/samples",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/samples/type",keyword:"type",params:{type: schema37.properties.samples.type},message:"must be object,null"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.gate !== undefined){let data7 = data.gate;if((!(data7 && typeof data7 == "object" && !Array.isArray(data7))) && (data7 !== null)){const err16 = {instancePath:instancePath+"/gate",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/gate/type",keyword:"type",params:{type: schema37.properties.gate.type},message:"must be object,null"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.lastReceipt !== undefined){let data8 = data.lastReceipt;if((!(data8 && typeof data8 == "object" && !Array.isArray(data8))) && (data8 !== null)){const err17 = {instancePath:instancePath+"/lastReceipt",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/lastReceipt/type",keyword:"type",params:{type: schema37.properties.lastReceipt.type},message:"must be object,null"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.error !== undefined){if(typeof data.error !== "string"){const err18 = {instancePath:instancePath+"/error",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/properties/error/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}else {const err19 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/router-selflearning-status.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/runtimeStatus.ts b/opensquilla-webui/src/contracts/generated/v4/runtimeStatus.ts index f0ddfc2127..eba62cfb4a 100644 --- a/opensquilla-webui/src/contracts/generated/v4/runtimeStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/runtimeStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 2522c6131f3c5c74a0428b9c2e57e5c8fd02533aab59652c7511e8a1962b4115 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaStatusContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/runtimeStatusValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/runtimeStatusValidators.d.mts index 35b1011664..2625643aa6 100644 --- a/opensquilla-webui/src/contracts/generated/v4/runtimeStatusValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/runtimeStatusValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 2522c6131f3c5c74a0428b9c2e57e5c8fd02533aab59652c7511e8a1962b4115 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/runtimeStatusValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/runtimeStatusValidators.mjs index 21adb9467a..030db4ca41 100644 --- a/opensquilla-webui/src/contracts/generated/v4/runtimeStatusValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/runtimeStatusValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 2522c6131f3c5c74a0428b9c2e57e5c8fd02533aab59652c7511e8a1962b4115 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result"};const schema37 = {"type":"object","additionalProperties":true,"required":["status","version","uptime_ms","active_sessions"],"properties":{"status":{"type":"string"},"version":{"type":"string"},"uptime_ms":{"type":"integer"},"provider":{"type":["string","null"]},"active_sessions":{"type":"integer","minimum":0}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.status === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "status"},message:"must have required property '"+"status"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.version === undefined){const err1 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "version"},message:"must have required property '"+"version"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.uptime_ms === undefined){const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "uptime_ms"},message:"must have required property '"+"uptime_ms"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.active_sessions === undefined){const err3 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "active_sessions"},message:"must have required property '"+"active_sessions"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.status !== undefined){if(typeof data.status !== "string"){const err4 = {instancePath:instancePath+"/status",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/properties/status/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.version !== undefined){if(typeof data.version !== "string"){const err5 = {instancePath:instancePath+"/version",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.uptime_ms !== undefined){let data2 = data.uptime_ms;if(!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))){const err6 = {instancePath:instancePath+"/uptime_ms",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/properties/uptime_ms/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.provider !== undefined){let data3 = data.provider;if((typeof data3 !== "string") && (data3 !== null)){const err7 = {instancePath:instancePath+"/provider",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/properties/provider/type",keyword:"type",params:{type: schema37.properties.provider.type},message:"must be string,null"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.active_sessions !== undefined){let data4 = data.active_sessions;if(!(((typeof data4 == "number") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))){const err8 = {instancePath:instancePath+"/active_sessions",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/properties/active_sessions/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if((typeof data4 == "number") && (isFinite(data4))){if(data4 < 0 || isNaN(data4)){const err9 = {instancePath:instancePath+"/active_sessions",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/properties/active_sessions/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}}else {const err10 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/observability/runtime-status.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatus.ts b/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatus.ts index 510c819180..6a3fa827e4 100644 --- a/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatus.ts +++ b/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatus.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 50d82d758fc04dedcc2b935a75dc2f6e34ea151488b8da288f9e3ff5239ab81d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * Side-effect-free Safe capability projection. refresh is retained for compatibility and never initiates setup. diff --git a/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatusValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatusValidators.d.mts index 6a4b1946bb..8564f05733 100644 --- a/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatusValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatusValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 50d82d758fc04dedcc2b935a75dc2f6e34ea151488b8da288f9e3ff5239ab81d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatusValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatusValidators.mjs index e712195cc6..3e3c6cc5d4 100644 --- a/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatusValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/sandboxCapabilityStatusValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 50d82d758fc04dedcc2b935a75dc2f6e34ea151488b8da288f9e3ff5239ab81d -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":true,"required":["available","backend","platform","code","reason","setupSupported","restartRequired","probeVersion","capabilities"],"properties":{"available":{"type":"boolean"},"backend":{"type":"string"},"platform":{"type":"string"},"code":{"type":"string"},"reason":{"type":"string"},"setupSupported":{"type":"boolean"},"restartRequired":{"type":"boolean"},"probeVersion":{"type":"integer","minimum":0},"capabilities":{"type":"array","items":{"type":"string"},"uniqueItems":true}}};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:opensquilla:contract:v4:Result" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.available === undefined){const err0 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "available"},message:"must have required property '"+"available"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.backend === undefined){const err1 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "backend"},message:"must have required property '"+"backend"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.platform === undefined){const err2 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "platform"},message:"must have required property '"+"platform"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.code === undefined){const err3 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "code"},message:"must have required property '"+"code"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.reason === undefined){const err4 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "reason"},message:"must have required property '"+"reason"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.setupSupported === undefined){const err5 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "setupSupported"},message:"must have required property '"+"setupSupported"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.restartRequired === undefined){const err6 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "restartRequired"},message:"must have required property '"+"restartRequired"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.probeVersion === undefined){const err7 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "probeVersion"},message:"must have required property '"+"probeVersion"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.capabilities === undefined){const err8 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/required",keyword:"required",params:{missingProperty: "capabilities"},message:"must have required property '"+"capabilities"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.available !== undefined){if(typeof data.available !== "boolean"){const err9 = {instancePath:instancePath+"/available",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/available/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.backend !== undefined){if(typeof data.backend !== "string"){const err10 = {instancePath:instancePath+"/backend",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/backend/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.platform !== undefined){if(typeof data.platform !== "string"){const err11 = {instancePath:instancePath+"/platform",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/platform/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.code !== undefined){if(typeof data.code !== "string"){const err12 = {instancePath:instancePath+"/code",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.reason !== undefined){if(typeof data.reason !== "string"){const err13 = {instancePath:instancePath+"/reason",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/reason/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.setupSupported !== undefined){if(typeof data.setupSupported !== "boolean"){const err14 = {instancePath:instancePath+"/setupSupported",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/setupSupported/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.restartRequired !== undefined){if(typeof data.restartRequired !== "boolean"){const err15 = {instancePath:instancePath+"/restartRequired",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/restartRequired/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.probeVersion !== undefined){let data7 = data.probeVersion;if(!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))){const err16 = {instancePath:instancePath+"/probeVersion",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/probeVersion/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if((typeof data7 == "number") && (isFinite(data7))){if(data7 < 0 || isNaN(data7)){const err17 = {instancePath:instancePath+"/probeVersion",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/probeVersion/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}if(data.capabilities !== undefined){let data8 = data.capabilities;if(Array.isArray(data8)){const len0 = data8.length;for(let i0=0; i0 1){const indices0 = {};for(;i1--;){let item0 = data8[i1];if(typeof item0 !== "string"){continue;}if(typeof indices0[item0] == "number"){j0 = indices0[item0];const err19 = {instancePath:instancePath+"/capabilities",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/capabilities/uniqueItems",keyword:"uniqueItems",params:{i: i1, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i1+" are identical)"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;break;}indices0[item0] = i1;}}}else {const err20 = {instancePath:instancePath+"/capabilities",schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/properties/capabilities/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}}else {const err21 = {instancePath,schemaPath:"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-capability-status.schema.json#/$defs/Result/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; diff --git a/opensquilla-webui/src/contracts/generated/v4/sandboxPathCreateDirectory.ts b/opensquilla-webui/src/contracts/generated/v4/sandboxPathCreateDirectory.ts index 275d6ac38e..2a240525e5 100644 --- a/opensquilla-webui/src/contracts/generated/v4/sandboxPathCreateDirectory.ts +++ b/opensquilla-webui/src/contracts/generated/v4/sandboxPathCreateDirectory.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: 816616605d30b9511cbd364471968a027195627e3f3f429434600107b57a2550 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e /** * This interface was referenced by `OpenSquillaSandboxPathCreateDirectoryContract`'s JSON-Schema diff --git a/opensquilla-webui/src/contracts/generated/v4/sandboxPathList.ts b/opensquilla-webui/src/contracts/generated/v4/sandboxPathList.ts index 4788ec7506..cb939f2afe 100644 --- a/opensquilla-webui/src/contracts/generated/v4/sandboxPathList.ts +++ b/opensquilla-webui/src/contracts/generated/v4/sandboxPathList.ts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: ff3eb0b9292e0ff06b9c79e33f88798350c90cce0ded1bab758c366399b563e9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface OpenSquillaSandboxPathListContract { request?: RequestFrame; diff --git a/opensquilla-webui/src/contracts/generated/v4/sandboxPathListValidators.d.mts b/opensquilla-webui/src/contracts/generated/v4/sandboxPathListValidators.d.mts index 224a29b642..a4c9af7ed5 100644 --- a/opensquilla-webui/src/contracts/generated/v4/sandboxPathListValidators.d.mts +++ b/opensquilla-webui/src/contracts/generated/v4/sandboxPathListValidators.d.mts @@ -1,6 +1,6 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: ff3eb0b9292e0ff06b9c79e33f88798350c90cce0ded1bab758c366399b563e9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e export interface ContractValidator { (value: unknown): boolean diff --git a/opensquilla-webui/src/contracts/generated/v4/sandboxPathListValidators.mjs b/opensquilla-webui/src/contracts/generated/v4/sandboxPathListValidators.mjs index 037c3c3578..cffbba4107 100644 --- a/opensquilla-webui/src/contracts/generated/v4/sandboxPathListValidators.mjs +++ b/opensquilla-webui/src/contracts/generated/v4/sandboxPathListValidators.mjs @@ -1,5 +1,5 @@ // @generated by scripts/contracts/generate_gateway_contracts.py; do not edit. // source-sha256: ff3eb0b9292e0ff06b9c79e33f88798350c90cce0ded1bab758c366399b563e9 -// generator-sha256: a4d9386a5dc58a59682c72a551d23aac995b95619a0d504abec20ef047671e00 +// generator-sha256: 053df928840129e254a7f609e46832d8ee8ee1c241cf225632dcded3f996297e "use strict";export const validateResult = validate20;const schema31 = {"$id":"urn:opensquilla:contract:v4:Result","$schema":"https://json-schema.org/draft/2020-12/schema","$ref":"https://opensquilla.dev/contracts/gateway/v4/sandbox/sandbox-path-list.schema.json#/$defs/Result"};const schema36 = {"type":"object","additionalProperties":false,"required":["currentPath","path","parentPath","systemPickerAvailable","entries"],"properties":{"currentPath":{"type":"string"},"path":{"type":"string"},"parentPath":{"type":["string","null"]},"systemPickerAvailable":{"type":"boolean"},"entries":{"type":"array","items":{"$ref":"#/$defs/Entry"}}}};const schema37 = {"type":"object","additionalProperties":false,"required":["name","path","kind","selectable"],"properties":{"name":{"type":"string"},"path":{"type":"string"},"kind":{"enum":["directory","file"]},"selectable":{"type":"boolean"},"hidden":{"type":"boolean"}}};function validate28(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate28.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.currentPath === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "currentPath"},message:"must have required property '"+"currentPath"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.path === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.parentPath === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "parentPath"},message:"must have required property '"+"parentPath"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.systemPickerAvailable === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "systemPickerAvailable"},message:"must have required property '"+"systemPickerAvailable"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.entries === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "entries"},message:"must have required property '"+"entries"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data){if(!(((((key0 === "currentPath") || (key0 === "path")) || (key0 === "parentPath")) || (key0 === "systemPickerAvailable")) || (key0 === "entries"))){const err5 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.currentPath !== undefined){if(typeof data.currentPath !== "string"){const err6 = {instancePath:instancePath+"/currentPath",schemaPath:"#/properties/currentPath/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.path !== undefined){if(typeof data.path !== "string"){const err7 = {instancePath:instancePath+"/path",schemaPath:"#/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.parentPath !== undefined){let data2 = data.parentPath;if((typeof data2 !== "string") && (data2 !== null)){const err8 = {instancePath:instancePath+"/parentPath",schemaPath:"#/properties/parentPath/type",keyword:"type",params:{type: schema36.properties.parentPath.type},message:"must be string,null"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.systemPickerAvailable !== undefined){if(typeof data.systemPickerAvailable !== "boolean"){const err9 = {instancePath:instancePath+"/systemPickerAvailable",schemaPath:"#/properties/systemPickerAvailable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.entries !== undefined){let data4 = data.entries;if(Array.isArray(data4)){const len0 = data4.length;for(let i0=0; i0