{
  "executedAt": "2026-10-04T15:05:29.491338+00:00",
  "python": "3.12.14",
  "platform": "macOS-15.5-arm64-arm-64bit",
  "experiments": [
    {
      "unitId": "model-response-contract",
      "path": "public/lab/learning/model_response_contract.py",
      "sourceSha256": "2ebb144c6dba75eac42bb5be0d3e43678934a5812e05bf923f9966a6e0aa187e",
      "exitCode": 0,
      "stdout": "{\"boundedCalls\": 2, \"boundedLoop\": \"budget_exhausted\", \"crossTenant\": \"permission_denied\", \"deniedResults\": 0, \"incomplete\": \"incomplete\", \"normal\": \"answer_ready\", \"refusal\": \"refused\", \"scope\": \"authored_responses_fixtures_no_api\", \"toolResultCallId\": \"call-1\"}",
      "scope": "使用作者编写的非流式 Responses 形状样本、教学订单与可信身份模拟，验证请求组装、只读校验、call_id 回传、预算和答案核对。程序不调用在线模型或真实订单服务。"
    },
    {
      "unitId": "prompt-output-iteration",
      "path": "public/lab/learning/prompt_iteration.py",
      "sourceSha256": "461f4e0818c6ed0b20b451cab5f366b7f15da9394d3d2eb1def2868eaf2fcc2b",
      "exitCode": 0,
      "stdout": "{\"casesPerVersion\": 3, \"freeTextStillRequiresReview\": true, \"scope\": \"authored_candidates_not_measured_prompt_improvement\", \"v1ContractPasses\": 1, \"v1Failures\": {\"battery\": [\"labelled_decision\", \"labelled_window\", \"necessary_evidence\"], \"unknown\": [\"labelled_decision\", \"labelled_window\"]}, \"v2ContractPasses\": 3}",
      "scope": "使用作者编写的两组候选、三道虚构政策问题和独立标签，实际运行结构、引用、版本、权限及有限政策字段检查。计数用于说明 grader，不是实测提示性能；自由文本语义另行复核。"
    },
    {
      "unitId": "context-budget",
      "path": "public/lab/learning/context_budget.py",
      "sourceSha256": "92a653567e57817db8aea71a94f52451de6cd05c8a11c1cf072d0da65e12bf38",
      "exitCode": 0,
      "stdout": "{\"current_room\": 2000, \"input_tokens\": 23000, \"next_turn_fits\": false, \"next_turn_room\": -2000}",
      "scope": "给定 token 数的离线算术实验；不调用模型，不验证分词器、流式传输或厂商实际限制。"
    },
    {
      "unitId": "tool-contracts",
      "path": "public/lab/learning/tool_contracts.py",
      "sourceSha256": "7f02042075535f0f113a1469139653fb871a2b2da38758563d2a886454b1a397",
      "exitCode": 0,
      "stdout": "{\"authorized\": false, \"business_writes\": 0, \"shape_valid\": true}",
      "scope": "特定工具的手动参数与授权检查；无真实付款、不实现完整 Schema、事务扣款或动态权限平台。"
    },
    {
      "unitId": "rag-pipeline",
      "path": "public/lab/learning/rag_pipeline.py",
      "sourceSha256": "eb069751e49c7a5bd0f75c292e52764639629bdc5fc04fe9c214f30b42627deb",
      "exitCode": 0,
      "stdout": "{\"chunks\": 7, \"contextIds\": {\"battery\": [\"returns:v2:battery\", \"returns:v2:general\", \"warranty:v1:defects\"], \"ordinary\": [\"returns:v2:general\", \"returns:v2:battery\", \"shipping:v1:contact\"], \"unknown\": [\"returns:v2:general\", \"returns:v2:battery\", \"warranty:v1:defects\"]}, \"contractPasses\": 3, \"dimension\": 384, \"embedding\": \"real_local_inference_snapshot\", \"embeddingModel\": \"BAAI/bge-small-en-v1.5\", \"generation\": \"authored_fixtures\", \"meanNecessaryEvidenceRecallAt3\": 1.0, \"queries\": 3, \"semanticQuality\": \"not_scored\"}",
      "scope": "实际解析虚构英文 Markdown、运行 SQL 过滤、余弦、BM25、RRF、请求组装与有限契约评测。文档和固定查询向量来自真实本地 Embedding 推理快照；生成候选由作者编写，自由文本语义未评分。"
    },
    {
      "unitId": "rag-evidence",
      "path": "public/lab/learning/rag_evidence.py",
      "sourceSha256": "4ed8cc6a6c9e72910a1113c7609e6fb4f43fe9ad1feb777f89cd289c854d791e",
      "exitCode": 0,
      "stdout": "{\"first_failure\": \"context\", \"fixed_evidence_check\": \"supported\", \"generation_still_needs_review\": true}",
      "scope": "固定证据标识列表的管线诊断；不执行向量检索、真实重排、语言模型或语义裁判。"
    },
    {
      "unitId": "idempotency-recovery",
      "path": "public/lab/learning/idempotency_recovery.py",
      "sourceSha256": "f4372f31bc461aa4b7b47beb37af5243ca0f76215e34014ea06eb1e75bedacd1",
      "exitCode": 0,
      "stdout": "{\"caller_after_recovery\": \"confirmed\", \"caller_before_recovery\": \"prepared\", \"provider_effects\": 1, \"same_receipt\": true}",
      "scope": "两份本地 SQLite 文件模拟独立提交与响应丢失；无真实远端、进程终止或网络故障，不证明端到端 exactly-once。"
    },
    {
      "unitId": "evaluation-design",
      "path": "public/lab/learning/evaluation_contract.py",
      "sourceSha256": "49f4c1fad663dc6a46031d2640cea19c0abbd4cf95be31753b4895824593c4b0",
      "exitCode": 0,
      "stdout": "{\"failed_checks\": [\"permission\"], \"passed\": false}",
      "scope": "合成可信观测上的本地规则评分器；不运行 Agent、不验证采集系统或模型裁判准确性。"
    }
  ],
  "tests": {
    "exitCode": 0,
    "output": "test_boolean_is_not_a_day_count (test_application.ApplicationLabs.test_boolean_is_not_a_day_count) ... ok\ntest_changed_corpus_requires_reembedding (test_application.ApplicationLabs.test_changed_corpus_requires_reembedding) ... ok\ntest_changed_query_is_not_silently_replaced_by_a_recorded_query (test_application.ApplicationLabs.test_changed_query_is_not_silently_replaced_by_a_recorded_query) ... ok\ntest_citation_must_be_in_the_supplied_context (test_application.ApplicationLabs.test_citation_must_be_in_the_supplied_context) ... ok\ntest_cross_tenant_request_has_no_resource_receipt (test_application.ApplicationLabs.test_cross_tenant_request_has_no_resource_receipt) ... ok\ntest_end_to_end_replay_preserves_necessary_evidence_and_abstains (test_application.ApplicationLabs.test_end_to_end_replay_preserves_necessary_evidence_and_abstains) ... ok\ntest_http_failure_and_model_failure_are_separate (test_application.ApplicationLabs.test_http_failure_and_model_failure_are_separate) ... ok\ntest_incomplete_output_does_not_execute_a_candidate (test_application.ApplicationLabs.test_incomplete_output_does_not_execute_a_candidate) ... ok\ntest_invalid_vector_dimension_is_rejected (test_application.ApplicationLabs.test_invalid_vector_dimension_is_rejected) ... ok\ntest_mechanical_grader_finds_exception_and_unanswerable_failures (test_application.ApplicationLabs.test_mechanical_grader_finds_exception_and_unanswerable_failures) ... ok\ntest_model_cannot_supply_identity_or_extra_fields (test_application.ApplicationLabs.test_model_cannot_supply_identity_or_extra_fields) ... ok\ntest_parallel_batch_reserves_the_whole_call_budget (test_application.ApplicationLabs.test_parallel_batch_reserves_the_whole_call_budget) ... ok\ntest_private_or_superseded_citations_fail_even_if_they_are_supplied (test_application.ApplicationLabs.test_private_or_superseded_citations_fail_even_if_they_are_supplied) ... ok\ntest_prompt_excludes_expected_labels (test_application.ApplicationLabs.test_prompt_excludes_expected_labels) ... ok\ntest_readonly_loop_requires_a_matching_tool_receipt (test_application.ApplicationLabs.test_readonly_loop_requires_a_matching_tool_receipt) ... ok\ntest_repeated_call_id_is_rejected (test_application.ApplicationLabs.test_repeated_call_id_is_rejected) ... ok\ntest_semantic_claims_remain_unscored (test_application.ApplicationLabs.test_semantic_claims_remain_unscored) ... ok\ntest_sql_permission_and_version_filters_precede_ranking (test_application.ApplicationLabs.test_sql_permission_and_version_filters_precede_ranking) ... ok\ntest_top_one_loses_part_of_the_required_evidence (test_application.ApplicationLabs.test_top_one_loses_part_of_the_required_evidence) ... ok\ntest_unauthorized_scope_yields_no_search_results (test_application.ApplicationLabs.test_unauthorized_scope_yields_no_search_results) ... ok\ntest_unknown_tool_is_not_executed (test_application.ApplicationLabs.test_unknown_tool_is_not_executed) ... ok\ntest_all_hard_constraints_must_pass (test_labs.LearningLabs.test_all_hard_constraints_must_pass) ... ok\ntest_budget_recomputed_for_next_turn (test_labs.LearningLabs.test_budget_recomputed_for_next_turn) ... ok\ntest_budget_rejects_invalid_counts_and_output (test_labs.LearningLabs.test_budget_rejects_invalid_counts_and_output) ... ok\ntest_concurrent_local_provider_attempts_have_one_effect (test_labs.LearningLabs.test_concurrent_local_provider_attempts_have_one_effect) ... ok\ntest_new_operation_is_not_deduplicated_as_retry (test_labs.LearningLabs.test_new_operation_is_not_deduplicated_as_retry) ... ok\ntest_rag_reports_first_evidence_loss (test_labs.LearningLabs.test_rag_reports_first_evidence_loss) ... ok\ntest_recovery_does_not_treat_prepared_as_no_remote_effect (test_labs.LearningLabs.test_recovery_does_not_treat_prepared_as_no_remote_effect) ... ok\ntest_reopen_same_intent_and_reject_changed_payload (test_labs.LearningLabs.test_reopen_same_intent_and_reject_changed_payload) ... ok\ntest_same_tenant_still_needs_action_permission (test_labs.LearningLabs.test_same_tenant_still_needs_action_permission) ... ok\ntest_tool_rejects_boolean_extra_fields_and_balance (test_labs.LearningLabs.test_tool_rejects_boolean_extra_fields_and_balance) ... ok\ntest_valid_shape_does_not_authorize_cross_tenant (test_labs.LearningLabs.test_valid_shape_does_not_authorize_cross_tenant) ... ok\n\n----------------------------------------------------------------------\nRan 32 tests in 0.028s\n\nOK\n"
  },
  "applicationBundle": {
    "path": "public/downloads/agent-application-lab-v1.zip",
    "sha256": "fe5793dce744d81ac5b14feb0538ef452706fa03025d9b0fc60c29720b2c3fce",
    "files": {
      "README.md": "ee1ee925d5de185f1e1e065a0a81edafc501085f4da94192ee4c41152cb3277e",
      "application_data.py": "640a3bb6b41c63f0cfb248cc7faba0a1232f493e20d4bba18dd3de75298deb6f",
      "application_project.py": "d8db4bd66fb15cff49a8a5291596224b7699b875c163b228911a1369ef412197",
      "rebuild_embeddings.py": "f16c3647ea6ccc73a127ae087d415dfa35caefd7666286d2b4a62201f8dd848e",
      "model_response_contract.py": "2ebb144c6dba75eac42bb5be0d3e43678934a5812e05bf923f9966a6e0aa187e",
      "prompt_iteration.py": "461f4e0818c6ed0b20b451cab5f366b7f15da9394d3d2eb1def2868eaf2fcc2b",
      "rag_pipeline.py": "eb069751e49c7a5bd0f75c292e52764639629bdc5fc04fe9c214f30b42627deb",
      "test_application.py": "9c2d713a0253c4a80e04dbf65d27f209c7f23e85f87cedc355c88f011e38d226",
      "context_budget.py": "92a653567e57817db8aea71a94f52451de6cd05c8a11c1cf072d0da65e12bf38",
      "tool_contracts.py": "7f02042075535f0f113a1469139653fb871a2b2da38758563d2a886454b1a397",
      "rag_evidence.py": "4ed8cc6a6c9e72910a1113c7609e6fb4f43fe9ad1feb777f89cd289c854d791e",
      "idempotency_recovery.py": "f4372f31bc461aa4b7b47beb37af5243ca0f76215e34014ea06eb1e75bedacd1",
      "evaluation_contract.py": "49f4c1fad663dc6a46031d2640cea19c0abbd4cf95be31753b4895824593c4b0",
      "test_labs.py": "f1328f74ac27724e33006d892fabec7aa5fb7990523ae3967e58e189cf51d559",
      "fixtures/application/cases.json": "eb571f38a3aaa53a1ee7bd6cf7c6c50758ee725491502420240b464324ac842a",
      "fixtures/application/embeddings.json": "7fd9ab854a4233d3eeb34d71c64cbf7b979f2cd793a810421f4deb2db5cbd3bf",
      "fixtures/application/documents/returns.md": "7020df9a686dfa96e7ecb384bf5cadac125e972acc4c6d7527057fb7a4417efa",
      "fixtures/application/documents/returns_old.md": "6175ca73e78ae4008789721a23ace08d8e32ee18672f8c3ec33c922a06ec8e35",
      "fixtures/application/documents/shipping.md": "0771b681d6583ef73d2ed323e57879a987cab8d0139f73113e5fcad05b6d0e6e",
      "fixtures/application/documents/vip.md": "7a08e9947dacd8ffff4951c15e5b52f8825e5f3306bc59bfc11233f0f428d56a",
      "fixtures/application/documents/warranty.md": "d59d05215067513cd223bbd9be8beea69c97de8753e80a4d2fd92b629e86e7e1"
    },
    "runs": [
      {
        "script": "model_response_contract.py",
        "exitCode": 0,
        "stdout": "{\"boundedCalls\": 2, \"boundedLoop\": \"budget_exhausted\", \"crossTenant\": \"permission_denied\", \"deniedResults\": 0, \"incomplete\": \"incomplete\", \"normal\": \"answer_ready\", \"refusal\": \"refused\", \"scope\": \"authored_responses_fixtures_no_api\", \"toolResultCallId\": \"call-1\"}"
      },
      {
        "script": "prompt_iteration.py",
        "exitCode": 0,
        "stdout": "{\"casesPerVersion\": 3, \"freeTextStillRequiresReview\": true, \"scope\": \"authored_candidates_not_measured_prompt_improvement\", \"v1ContractPasses\": 1, \"v1Failures\": {\"battery\": [\"labelled_decision\", \"labelled_window\", \"necessary_evidence\"], \"unknown\": [\"labelled_decision\", \"labelled_window\"]}, \"v2ContractPasses\": 3}"
      },
      {
        "script": "rag_pipeline.py",
        "exitCode": 0,
        "stdout": "{\"chunks\": 7, \"contextIds\": {\"battery\": [\"returns:v2:battery\", \"returns:v2:general\", \"warranty:v1:defects\"], \"ordinary\": [\"returns:v2:general\", \"returns:v2:battery\", \"shipping:v1:contact\"], \"unknown\": [\"returns:v2:general\", \"returns:v2:battery\", \"warranty:v1:defects\"]}, \"contractPasses\": 3, \"dimension\": 384, \"embedding\": \"real_local_inference_snapshot\", \"embeddingModel\": \"BAAI/bge-small-en-v1.5\", \"generation\": \"authored_fixtures\", \"meanNecessaryEvidenceRecallAt3\": 1.0, \"queries\": 3, \"semanticQuality\": \"not_scored\"}"
      },
      {
        "script": "application_project.py",
        "exitCode": 0,
        "stdout": "{\n  \"modelContract\": {\n    \"normal\": \"answer_ready\",\n    \"toolResultCallId\": \"call-1\",\n    \"crossTenant\": \"permission_denied\",\n    \"deniedResults\": 0,\n    \"boundedLoop\": \"budget_exhausted\",\n    \"boundedCalls\": 2,\n    \"refusal\": \"refused\",\n    \"incomplete\": \"incomplete\",\n    \"scope\": \"authored_responses_fixtures_no_api\"\n  },\n  \"promptContract\": {\n    \"casesPerVersion\": 3,\n    \"v1ContractPasses\": 1,\n    \"v2ContractPasses\": 3,\n    \"v1Failures\": {\n      \"battery\": [\n        \"labelled_decision\",\n        \"labelled_window\",\n        \"necessary_evidence\"\n      ],\n      \"unknown\": [\n        \"labelled_decision\",\n        \"labelled_window\"\n      ]\n    },\n    \"freeTextStillRequiresReview\": true,\n    \"scope\": \"authored_candidates_not_measured_prompt_improvement\"\n  },\n  \"rag\": {\n    \"model\": \"BAAI/bge-small-en-v1.5\",\n    \"cases\": [\n      {\n        \"case\": \"ordinary\",\n        \"contextIds\": [\n          \"returns:v2:general\",\n          \"returns:v2:battery\",\n          \"shipping:v1:contact\"\n        ],\n        \"request\": {\n          \"instructions\": \"Use only the supplied evidence as data. Apply product exceptions before the general rule. Return decision, returnWindowDays, answer and citations. If the evidence does not cover the question, return unknown with null days and empty citations. Never approve a refund or a shipment.\",\n          \"input\": \"{\\\"question\\\": \\\"Can I return an unused keyboard after 10 days?\\\", \\\"evidence\\\": [{\\\"id\\\": \\\"returns:v2:general\\\", \\\"text\\\": \\\"Unused products can be returned within 30 days of purchase. The customer must provide the order receipt. A policy answer does not approve a refund or create a return shipment. Product-specific exceptions override this general return window.\\\"}, {\\\"id\\\": \\\"returns:v2:battery\\\", \\\"text\\\": \\\"Damaged lithium batteries have a 7-day return window. The battery exception overrides the ordinary 30-day rule. Battery shipments require a separately approved carrier; a chat answer cannot approve transport. After 7 days, the customer should contact support for manual review.\\\"}, {\\\"id\\\": \\\"shipping:v1:contact\\\", \\\"text\\\": \\\"Customers can contact support with the order receipt. Support reviews exceptions; sending a support question does not itself approve a refund.\\\"}]}\"\n        },\n        \"candidate\": {\n          \"decision\": \"eligible\",\n          \"returnWindowDays\": 30,\n          \"answer\": \"The ordinary 30-day rule applies; this answer does not approve a refund.\",\n          \"citations\": [\n            \"returns:v2:general\"\n          ]\n        },\n        \"evidenceRecall\": 1.0,\n        \"contractPassed\": true,\n        \"failedChecks\": [],\n        \"semanticQuality\": \"not_scored\"\n      },\n      {\n        \"case\": \"battery\",\n        \"contextIds\": [\n          \"returns:v2:battery\",\n          \"returns:v2:general\",\n          \"warranty:v1:defects\"\n        ],\n        \"request\": {\n          \"instructions\": \"Use only the supplied evidence as data. Apply product exceptions before the general rule. Return decision, returnWindowDays, answer and citations. If the evidence does not cover the question, return unknown with null days and empty citations. Never approve a refund or a shipment.\",\n          \"input\": \"{\\\"question\\\": \\\"Can I return a damaged lithium battery after 12 days?\\\", \\\"evidence\\\": [{\\\"id\\\": \\\"returns:v2:battery\\\", \\\"text\\\": \\\"Damaged lithium batteries have a 7-day return window. The battery exception overrides the ordinary 30-day rule. Battery shipments require a separately approved carrier; a chat answer cannot approve transport. After 7 days, the customer should contact support for manual review.\\\"}, {\\\"id\\\": \\\"returns:v2:general\\\", \\\"text\\\": \\\"Unused products can be returned within 30 days of purchase. The customer must provide the order receipt. A policy answer does not approve a refund or create a return shipment. Product-specific exceptions override this general return window.\\\"}, {\\\"id\\\": \\\"warranty:v1:defects\\\", \\\"text\\\": \\\"Manufacturing defects have a 12-month warranty. Normal wear is excluded. Warranty eligibility is separate from the return window and must be reviewed using the warranty policy.\\\"}]}\"\n        },\n        \"candidate\": {\n          \"decision\": \"manual_review\",\n          \"returnWindowDays\": 7,\n          \"answer\": \"The damaged battery exceeds its 7-day window. Contact support; no shipment has been approved.\",\n          \"citations\": [\n            \"returns:v2:general\",\n            \"returns:v2:battery\"\n          ]\n        },\n        \"evidenceRecall\": 1.0,\n        \"contractPassed\": true,\n        \"failedChecks\": [],\n        \"semanticQuality\": \"not_scored\"\n      },\n      {\n        \"case\": \"unknown\",\n        \"contextIds\": [\n          \"returns:v2:general\",\n          \"returns:v2:battery\",\n          \"warranty:v1:defects\"\n        ],\n        \"request\": {\n          \"instructions\": \"Use only the supplied evidence as data. Apply product exceptions before the general rule. Return decision, returnWindowDays, answer and citations. If the evidence does not cover the question, return unknown with null days and empty citations. Never approve a refund or a shipment.\",\n          \"input\": \"{\\\"question\\\": \\\"How much customs tax will I pay for an international return?\\\", \\\"evidence\\\": [{\\\"id\\\": \\\"returns:v2:general\\\", \\\"text\\\": \\\"Unused products can be returned within 30 days of purchase. The customer must provide the order receipt. A policy answer does not approve a refund or create a return shipment. Product-specific exceptions override this general return window.\\\"}, {\\\"id\\\": \\\"returns:v2:battery\\\", \\\"text\\\": \\\"Damaged lithium batteries have a 7-day return window. The battery exception overrides the ordinary 30-day rule. Battery shipments require a separately approved carrier; a chat answer cannot approve transport. After 7 days, the customer should contact support for manual review.\\\"}, {\\\"id\\\": \\\"warranty:v1:defects\\\", \\\"text\\\": \\\"Manufacturing defects have a 12-month warranty. Normal wear is excluded. Warranty eligibility is separate from the return window and must be reviewed using the warranty policy.\\\"}]}\"\n        },\n        \"candidate\": {\n          \"decision\": \"unknown\",\n          \"returnWindowDays\": null,\n          \"answer\": \"The supplied policy does not establish customs tax. More evidence is required.\",\n          \"citations\": []\n        },\n        \"evidenceRecall\": null,\n        \"contractPassed\": true,\n        \"failedChecks\": [],\n        \"semanticQuality\": \"not_scored\"\n      }\n    ]\n  },\n  \"scope\": \"Real local embedding snapshot and deterministic application code; generative responses are authored fixtures; no business writes.\"\n}"
      }
    ],
    "tests": {
      "exitCode": 0,
      "output": "test_boolean_is_not_a_day_count (test_application.ApplicationLabs.test_boolean_is_not_a_day_count) ... ok\ntest_changed_corpus_requires_reembedding (test_application.ApplicationLabs.test_changed_corpus_requires_reembedding) ... ok\ntest_changed_query_is_not_silently_replaced_by_a_recorded_query (test_application.ApplicationLabs.test_changed_query_is_not_silently_replaced_by_a_recorded_query) ... ok\ntest_citation_must_be_in_the_supplied_context (test_application.ApplicationLabs.test_citation_must_be_in_the_supplied_context) ... ok\ntest_cross_tenant_request_has_no_resource_receipt (test_application.ApplicationLabs.test_cross_tenant_request_has_no_resource_receipt) ... ok\ntest_end_to_end_replay_preserves_necessary_evidence_and_abstains (test_application.ApplicationLabs.test_end_to_end_replay_preserves_necessary_evidence_and_abstains) ... ok\ntest_http_failure_and_model_failure_are_separate (test_application.ApplicationLabs.test_http_failure_and_model_failure_are_separate) ... ok\ntest_incomplete_output_does_not_execute_a_candidate (test_application.ApplicationLabs.test_incomplete_output_does_not_execute_a_candidate) ... ok\ntest_invalid_vector_dimension_is_rejected (test_application.ApplicationLabs.test_invalid_vector_dimension_is_rejected) ... ok\ntest_mechanical_grader_finds_exception_and_unanswerable_failures (test_application.ApplicationLabs.test_mechanical_grader_finds_exception_and_unanswerable_failures) ... ok\ntest_model_cannot_supply_identity_or_extra_fields (test_application.ApplicationLabs.test_model_cannot_supply_identity_or_extra_fields) ... ok\ntest_parallel_batch_reserves_the_whole_call_budget (test_application.ApplicationLabs.test_parallel_batch_reserves_the_whole_call_budget) ... ok\ntest_private_or_superseded_citations_fail_even_if_they_are_supplied (test_application.ApplicationLabs.test_private_or_superseded_citations_fail_even_if_they_are_supplied) ... ok\ntest_prompt_excludes_expected_labels (test_application.ApplicationLabs.test_prompt_excludes_expected_labels) ... ok\ntest_readonly_loop_requires_a_matching_tool_receipt (test_application.ApplicationLabs.test_readonly_loop_requires_a_matching_tool_receipt) ... ok\ntest_repeated_call_id_is_rejected (test_application.ApplicationLabs.test_repeated_call_id_is_rejected) ... ok\ntest_semantic_claims_remain_unscored (test_application.ApplicationLabs.test_semantic_claims_remain_unscored) ... ok\ntest_sql_permission_and_version_filters_precede_ranking (test_application.ApplicationLabs.test_sql_permission_and_version_filters_precede_ranking) ... ok\ntest_top_one_loses_part_of_the_required_evidence (test_application.ApplicationLabs.test_top_one_loses_part_of_the_required_evidence) ... ok\ntest_unauthorized_scope_yields_no_search_results (test_application.ApplicationLabs.test_unauthorized_scope_yields_no_search_results) ... ok\ntest_unknown_tool_is_not_executed (test_application.ApplicationLabs.test_unknown_tool_is_not_executed) ... ok\ntest_all_hard_constraints_must_pass (test_labs.LearningLabs.test_all_hard_constraints_must_pass) ... ok\ntest_budget_recomputed_for_next_turn (test_labs.LearningLabs.test_budget_recomputed_for_next_turn) ... ok\ntest_budget_rejects_invalid_counts_and_output (test_labs.LearningLabs.test_budget_rejects_invalid_counts_and_output) ... ok\ntest_concurrent_local_provider_attempts_have_one_effect (test_labs.LearningLabs.test_concurrent_local_provider_attempts_have_one_effect) ... ok\ntest_new_operation_is_not_deduplicated_as_retry (test_labs.LearningLabs.test_new_operation_is_not_deduplicated_as_retry) ... ok\ntest_rag_reports_first_evidence_loss (test_labs.LearningLabs.test_rag_reports_first_evidence_loss) ... ok\ntest_recovery_does_not_treat_prepared_as_no_remote_effect (test_labs.LearningLabs.test_recovery_does_not_treat_prepared_as_no_remote_effect) ... ok\ntest_reopen_same_intent_and_reject_changed_payload (test_labs.LearningLabs.test_reopen_same_intent_and_reject_changed_payload) ... ok\ntest_same_tenant_still_needs_action_permission (test_labs.LearningLabs.test_same_tenant_still_needs_action_permission) ... ok\ntest_tool_rejects_boolean_extra_fields_and_balance (test_labs.LearningLabs.test_tool_rejects_boolean_extra_fields_and_balance) ... ok\ntest_valid_shape_does_not_authorize_cross_tenant (test_labs.LearningLabs.test_valid_shape_does_not_authorize_cross_tenant) ... ok\n\n----------------------------------------------------------------------\nRan 32 tests in 0.030s\n\nOK\n"
    }
  },
  "embedding": {
    "model": "BAAI/bge-small-en-v1.5",
    "dimension": 384,
    "fastembed": "0.8.1",
    "onnxruntime": "1.30.0",
    "recordedAt": "2026-10-04T14:29:41.342460+00:00",
    "corpusSha256": "f370fb4627b04e15226ed20c6f632bf8f0ff6ea16258b430a583dd0b9868f5fb",
    "modelArtifacts": [
      {
        "file": "model_optimized.onnx",
        "sha256": "51f1bd0addd6e859e42c2c8021a5e5461385bb676a649f4b269aa445449f2431"
      }
    ],
    "scope": "Real local embedding inference on fictional English documents and three fixed queries; no generative model calls or production benchmark.",
    "snapshotSha256": "7fd9ab854a4233d3eeb34d71c64cbf7b979f2cd793a810421f4deb2db5cbd3bf"
  },
  "limits": "Actual local embedding inference is recorded in the included snapshot; default demonstrations replay it with the standard library. Generative model responses and answers are authored fixtures. No live generative model, external API, production benchmark or learning-effectiveness validation."
}
