{
  "schema_version": "assembly-1405-interaction-roadmap/v1",
  "as_of": "2026-09-02",
  "scope": "Public derived Assembly 1405 report interaction only",
  "current": {
    "interactive_financial_model": "LIVE_IN_PAGE",
    "deterministic_document_guide": "LIVE_IN_PAGE",
    "browser_voice_presentation": "LOCAL_CANDIDATE_IN_PAGE",
    "browser_speech_recognition": "LOCAL_CANDIDATE_CONSENT_REQUIRED",
    "cloud_ai": "UNAVAILABLE",
    "production_rag": "UNAVAILABLE",
    "microphone": "PENDING_ROUTE_POLICY_DEPLOYMENT",
    "provider_calls_from_page": false,
    "document_uploads": false,
    "server_writeback": false
  },
  "target": {
    "status": "ROADMAP",
    "channels": [
      "grounded_text_chat",
      "consent_scoped_persian_voice",
      "citation_navigation",
      "chart_and_scenario_commands"
    ],
    "proposed_contracts": [
      {
        "route": "/api/v1/reports/assembly-1405/copilot/sessions",
        "method": "POST",
        "status": "ROADMAP",
        "purpose": "Create a principal-scoped, expiry-bounded report session"
      },
      {
        "route": "/api/v1/reports/assembly-1405/copilot/messages",
        "method": "POST",
        "status": "ROADMAP",
        "purpose": "Answer from an approved retrieval snapshot with claim-level citations"
      },
      {
        "route": "/api/v1/reports/assembly-1405/copilot/realtime-token",
        "method": "POST",
        "status": "ROADMAP",
        "purpose": "Mint a short-lived server-side voice session token after explicit consent"
      }
    ]
  },
  "governed_pipeline": [
    {
      "order": 1,
      "stage": "intake",
      "requirements": [
        "allowlisted file types",
        "size limits",
        "malware and archive checks",
        "tenant and principal scope"
      ]
    },
    {
      "order": 2,
      "stage": "quarantine_and_parse",
      "requirements": [
        "treat document content as untrusted data, never instructions",
        "PII and secret detection",
        "prompt-injection defense",
        "structured extraction receipts"
      ]
    },
    {
      "order": 3,
      "stage": "approved_snapshot",
      "requirements": [
        "source rights",
        "retention policy",
        "versioned chunks",
        "lineage",
        "owner approval",
        "reversible publication"
      ]
    },
    {
      "order": 4,
      "stage": "grounded_retrieval",
      "requirements": [
        "deterministic filters first",
        "retrieval and reranking",
        "claim-level citations",
        "abstain when evidence is missing or conflicting"
      ]
    },
    {
      "order": 5,
      "stage": "response_and_audit",
      "requirements": [
        "structured answer contract",
        "no automatic canonical writeback",
        "cost and attempt budgets",
        "tamper-evident audit",
        "human escalation"
      ]
    }
  ],
  "voice_boundary": {
    "explicit_microphone_consent": true,
    "browser_voice_presentation": "Static, source-linked narration using the browser speech-synthesis capability after an explicit click; no audio is generated by the server.",
    "browser_speech_recognition": "Optional browser capability only after a visible consent checkbox and a user click. Browser-vendor handling is outside this page's control; the page does not persist audio or transcript.",
    "provider_calls_from_page": false,
    "raw_document_access": false,
    "public_corpus": "Approved aggregate assets only; raw XLSX, DOCX, formulas and PII remain excluded.",
    "server_minted_ephemeral_credentials": true,
    "browser_embedded_api_key": false,
    "persian_transcript": true,
    "group_streamed_output_by": "response_id",
    "raw_audio_retention_default": "none",
    "transcript_retention": "policy_and_principal_scoped",
    "interruptions": "respect_incomplete_user_speech"
  },
  "release_gates": [
    "approved corpus snapshot with rights and retention",
    "working provider credit and governed German relay egress",
    "principal-scoped authentication and authorization",
    "prompt-injection and citation acceptance suite",
    "Persian text and voice accessibility acceptance",
    "rate, cost, privacy, audit, backup and rollback controls",
    "public UI status changed only after verified production activation"
  ],
  "claim_boundary": "This file records a local browser-voice candidate and a roadmap. It does not indicate deployed microphone access, AI, RAG, document upload, provider-backed voice, a Vapi assistant, or a telephone line is currently available."
}
