{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "name": "VACT: Vector Agent Context Transport",
  "shortName": "VACT",
  "fullName": "Vector Agent Context Transport",
  "version": "1.0.0",
  "url": "https://vact.fy2ne.me",
  "repository": "https://github.com/fy2ne/VACT",
  "license": "Apache-2.0",
  "licenseUrl": "https://www.apache.org/licenses/LICENSE-2.0",
  "author": {
    "name": "Anas Khezaz",
    "handle": "fy2ne",
    "url": "https://fy2ne.me",
    "github": "https://github.com/fy2ne",
    "twitter": "https://x.com/fy2ne",
    "email": "hello@fy2ne.me"
  },
  "description": "High-frequency GPU screen-to-vector pipeline and IPC transport protocol for autonomous desktop AI agents. Replaces brute-force screenshot polling with 60 FPS differential perception directly in GPU VRAM.",
  "thesis": {
    "problem": "Screenshot-based computer use models suffer from high inference latency (800-2500ms), prohibitive token consumption (~2,200 tokens per action step), and spatial coordinate hallucination drift.",
    "solution": "Intercept the desktop framebuffer directly in GPU VRAM via Direct3D 11 compute shaders, extract sub-pixel bounding geometry and centroids, and stream structured differential DAG mutations over a local Win32 named pipe at 60 FPS."
  },
  "architecture": {
    "kernel": {
      "language": "Rust 2024",
      "graphics": "Direct3D 11.4 / DXGI 1.6",
      "computeShaders": [
        "bilateral_filter_cs.hlsl (edge-preserving denoising)",
        "sobel_gradient_cs.hlsl (intensity gradient tensor)",
        "ccl_reduction_cs.hlsl (parallel connected component labeling)"
      ],
      "ipc": {
        "transport": "Win32 Named Pipe",
        "path": "\\\\.\\pipe\\VACT",
        "framerate": "60 FPS native",
        "latency": "4.8ms average pipeline cycle",
        "encoding": "Zero-copy binary / Structured JSON"
      }
    },
    "protocol": {
      "name": "VACT Protocol",
      "format": "Differential Directed Acyclic Graph (DAG)",
      "frameTypes": [
        "SNAPSHOT",
        "DIFF"
      ],
      "mutationOperations": [
        "INSERT",
        "UPDATE",
        "REMOVE"
      ],
      "averagePayloadSize": "Sub-2KB (vs 1.8MB bitmap)",
      "tokenEquivalent": "80-180 tokens (99.8% reduction vs 2,200 VLM tokens)"
    },
    "sdks": {
      "typescript": "sdks/typescript (@vact/client)",
      "python": "sdks/python (vact)",
      "rust": "crates/vact-protocol"
    }
  },
  "componentLicenses": {
    "repository": "Apache-2.0",
    "protocol": "Apache-2.0 (crates/vact-protocol)",
    "kernelDaemon": "Apache-2.0 (crates/vactd)",
    "coreEngine": "Apache-2.0 (crates/vact-core)",
    "typescriptSdk": "Apache-2.0 (sdks/typescript)",
    "pythonSdk": "Apache-2.0 (sdks/python)",
    "agentRunner": "Apache-2.0 (apps/agent-runner)"
  },
  "faq": [
    {
      "question": "What is VACT?",
      "answer": "VACT (Vector Agent Context Transport) is an ultra-low latency, localized GPU perception and transport protocol for autonomous desktop AI agents. It processes the desktop framebuffer using Direct3D 11 compute shaders directly in GPU VRAM, extracting UI bounding boxes and sub-pixel centroids at 60 FPS."
    },
    {
      "question": "Why use VACT instead of screenshots?",
      "answer": "Traditional screenshot approaches consume ~2,200 tokens per action step, introduce 1-3 seconds of latency, and suffer from spatial hallucination drift. VACT eliminates image encoding entirely, streaming sub-2KB differential vector frames (80-180 token equivalent) in under 5ms."
    },
    {
      "question": "Does VACT require internet access or send data to the cloud?",
      "answer": "No. VACT is completely local and air-gapped. Frame capture, compute shaders, and IPC transport run entirely in local GPU VRAM and local Win32 named pipes."
    },
    {
      "question": "How do AI models interact with VACT?",
      "answer": "AI agents consume VACT via official Python, TypeScript, or Rust SDKs. Instead of processing raw images, the agent receives an accurate UI vector graph with exact [x, y] coordinates for every interactable element on screen."
    }
  ]
}