{"version":1,"pages":[{"id":"s1czHAcCX4P4E3doUyRr","title":"Visdom","pathname":"/","siteSpaceId":"sitesp_d75RR","description":"An AI-native SDLC platform, self-hosted, built by VirtusLab.","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"X8JWCSLAOC8VCvou2Rcj","title":"The thesis","pathname":"/the-thesis","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"0qsIpI7j5qhDYr9xGOMg","title":"The concept","pathname":"/the-concept","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"LHWORxQeaysJBRp6fGOr","title":"Products and packages","pathname":"/products-and-packages","siteSpaceId":"sitesp_d75RR","description":"The products Visdom is made of, the layers they share, and the packages built from them.","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"uhpFeZSNsHnKkcvTqwdq","title":"Logical architecture","pathname":"/logical-architecture","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"c1bZ4ewlswi6Wp5GxAI6","title":"Data flow: the life of a change","pathname":"/data-flow-the-life-of-a-change","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"nnY0Zr8Hjenu404LiSj4","title":"Integrations","pathname":"/integrations","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"c7bQ6AmNZRtR7dWCAnPS","title":"Deployment architecture","pathname":"/deployment-architecture","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"jAJUd2n6GQvu9B7jLxlz","title":"Security summary","pathname":"/security-summary","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"XmPLAFgMEkibyq1pTU7K","title":"Getting there from here","pathname":"/getting-there-from-here","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"xzlwXwrmK4FrfT44GI2Y","title":"Onboarding for new users","pathname":"/onboarding-for-new-users","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"Btk3NLZrk8ZPMuFeiwls","title":"Built by VirtusLab","pathname":"/built-by-virtuslab","siteSpaceId":"sitesp_d75RR","description":"","breadcrumbs":[{"label":"Overview","icon":"compass"}]},{"id":"VKLA4IN30B10aBye3zw7","title":"Visdom Control Plane","pathname":"/visdom-control-plane","siteSpaceId":"sitesp_GXFiH","icon":"sliders","description":"One place for the projects, people, permissions and credentials every Visdom product works with.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"}]},{"id":"xXhhHIkpaXXMLAG1xEk3","title":"Quick start","pathname":"/visdom-control-plane/getting-started/quick-start","siteSpaceId":"sitesp_GXFiH","icon":"rocket","description":"The first hour as an administrator: sign in, create a project, add its repositories, give people access.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Getting started"}]},{"id":"MQcl64fxVvEy994abL2r","title":"How it works","pathname":"/visdom-control-plane/getting-started/how-it-works","siteSpaceId":"sitesp_GXFiH","icon":"diagram-project","description":"Workspace, projects, apps and roles; how the other Visdom products ask the Control Plane, and how changes reach them.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Getting started"}]},{"id":"ieMi70NdgKmrMKg0gVOr","title":"What's available today","pathname":"/visdom-control-plane/getting-started/whats-available","siteSpaceId":"sitesp_GXFiH","icon":"list-check","description":"What the Control Plane does in the current release, what works with conditions, and what is not built yet.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Getting started"}]},{"id":"QpipHXtsxcQxtmnnQw66","title":"Signing in and finding your way","pathname":"/visdom-control-plane/using-the-control-plane/using","siteSpaceId":"sitesp_GXFiH","icon":"compass","description":"Signing in to the Control Plane, the suite's module rail and project switcher, and where each settings page lives.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Using the Control Plane"}]},{"id":"LIIksIR4CkyHbNo1WUEK","title":"Dashboard","pathname":"/visdom-control-plane/using-the-control-plane/dashboard","siteSpaceId":"sitesp_GXFiH","icon":"gauge","description":"Home: one view of what the suite's products are running, what needs attention and what it costs, for the selected project.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Using the Control Plane"}]},{"id":"tLETQgFaisrOv1bcjIbW","title":"Projects and repositories","pathname":"/visdom-control-plane/using-the-control-plane/projects-and-repositories","siteSpaceId":"sitesp_GXFiH","icon":"folder-tree","description":"The project catalogue every Visdom product works on, and the git repositories that belong to each project.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Using the Control Plane"}]},{"id":"iQiM5PXpqCA2Qofp76jJ","title":"Users and access","pathname":"/visdom-control-plane/using-the-control-plane/users-and-access","siteSpaceId":"sitesp_GXFiH","icon":"users","description":"Who has signed in, and what each person may do in each Visdom product: sign-in access, workspace roles and project roles.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Using the Control Plane"}]},{"id":"9DXOWNpjxj31iOEwYjeU","title":"Secrets","pathname":"/visdom-control-plane/using-the-control-plane/secrets","siteSpaceId":"sitesp_GXFiH","icon":"key","description":"Encrypted secrets for the whole workspace or one project: who may add and replace them, and who may read their values.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Using the Control Plane"}]},{"id":"uDU4tw9Ipwc0R3w4FJA5","title":"Integrations","pathname":"/visdom-control-plane/using-the-control-plane/integrations","siteSpaceId":"sitesp_GXFiH","icon":"plug","description":"Slack, the LLM each product uses, and an Atlassian site — set once for the workspace, overridden per project.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Using the Control Plane"}]},{"id":"cDpvoA5DSq4vXpH5kzPg","title":"General settings","pathname":"/visdom-control-plane/using-the-control-plane/general-settings","siteSpaceId":"sitesp_GXFiH","icon":"sliders","description":"Your light or dark theme, and the workspace timezone every product's timestamps use.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Using the Control Plane"}]},{"id":"zrbmYb86Hb9wC7BmCm8o","title":"The permission model","pathname":"/visdom-control-plane/permissions/permission-model","siteSpaceId":"sitesp_GXFiH","icon":"key","description":"Apps, roles and scopes for the whole Visdom suite: the catalogue, how a decision is made, who is an admin, and how grants behave.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Permissions"}]},{"id":"GEW5n3zkVGUzxUQxrbRu","title":"Integrating a product","pathname":"/visdom-control-plane/integrating-a-product/integrating","siteSpaceId":"sitesp_GXFiH","icon":"plug","description":"What a Visdom product gets from the Control Plane, and what it implements to be managed by it.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Integrating a product"}]},{"id":"M4SVs03IycsLV1j0gpoG","title":"Sign-in and machine principals","pathname":"/visdom-control-plane/integrating-a-product/sign-in-and-machine-principals","siteSpaceId":"sitesp_GXFiH","icon":"id-badge","description":"How the Control Plane validates tokens, tells people from service accounts, creates users, and what a product's service account may do.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Integrating a product"}]},{"id":"31ufV9m7OHBfCIlXx0oN","title":"Effective permissions","pathname":"/visdom-control-plane/integrating-a-product/effective-permissions","siteSpaceId":"sitesp_GXFiH","icon":"user-check","description":"GET /permissions/effective: what a person may do, flat for one project or grouped for all, cacheable, and who may ask.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Integrating a product"}]},{"id":"NMv0lN8Ik2gjOhyQoTTs","title":"Project sync","pathname":"/visdom-control-plane/integrating-a-product/project-sync","siteSpaceId":"sitesp_GXFiH","icon":"arrows-rotate","description":"How a product hears that a project or its repositories changed: the targets, the webhook, delivery and retries, and what to read back.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Integrating a product"}]},{"id":"uifoG3uNssEvx1j6Q9WE","title":"Repositories and credentials","pathname":"/visdom-control-plane/integrating-a-product/repositories-and-credentials","siteSpaceId":"sitesp_GXFiH","icon":"lock","description":"The repository lists, the repository token, secret values and the Slack, LLM and Atlassian settings a product reads from the Control Plane.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Integrating a product"}]},{"id":"Va7MnOOWiyrZhWlpIMzj","title":"The suite shell and the dashboard","pathname":"/visdom-control-plane/integrating-a-product/suite-shell-and-dashboard","siteSpaceId":"sitesp_GXFiH","icon":"table-columns","description":"The shared shell every Visdom UI uses — module rail, selected project, theme, timezone — and the summary a product serves to the Home dashboard.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Integrating a product"}]},{"id":"TXuASawEofhWw7zl7qta","title":"Deployment","pathname":"/visdom-control-plane/operations/deployment","siteSpaceId":"sitesp_GXFiH","icon":"server","description":"Running the Control Plane: the container, PostgreSQL, Keycloak, health checks, replicas, and what it talks to.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Operations"}]},{"id":"UsExc4MKdMjSyeBdvK3U","title":"Configuration reference","pathname":"/visdom-control-plane/operations/configuration-reference","siteSpaceId":"sitesp_GXFiH","icon":"sliders","description":"Every environment variable the Control Plane reads, its default, and what it changes.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Operations"}]},{"id":"69OEe8e44JQXdWlKVpIC","title":"Keycloak","pathname":"/visdom-control-plane/operations/keycloak","siteSpaceId":"sitesp_GXFiH","icon":"key","description":"What the Control Plane needs from the Keycloak realm: its clients, the admin role, and the service accounts of the other products.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Operations"}]},{"id":"EUlRtLLzfinoiGDN6tRa","title":"Observability","pathname":"/visdom-control-plane/operations/observability","siteSpaceId":"sitesp_GXFiH","icon":"chart-line","description":"Logs, OpenTelemetry traces and metrics, and how a call is followed across the Visdom products.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Operations"}]},{"id":"ePV5H4ZJfhy1NpmKLNBz","title":"Releases and upgrades","pathname":"/visdom-control-plane/operations/releases-and-upgrades","siteSpaceId":"sitesp_GXFiH","icon":"code-branch","description":"How Control Plane releases are made, which image to run, and how to upgrade safely.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Operations"}]},{"id":"ZoDa2LIqenGRk47SB9tz","title":"API reference","pathname":"/visdom-control-plane/reference/api-reference","siteSpaceId":"sitesp_GXFiH","icon":"code","description":"Every Control Plane API route, who may call it, the OpenAPI document, and the error format.","breadcrumbs":[{"label":"Visdom Control Plane","icon":"sliders"},{"label":"Reference"}]},{"id":"Z0VtyCMauN6T5ekZpUxq","title":"Visdom AI Gateway","pathname":"/visdom-ai-gateway","siteSpaceId":"sitesp_HAQxg","icon":"tower-broadcast","description":"Two gateways, one console: governed access to language models and MCP tools, self-hosted on your Kubernetes.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"}]},{"id":"mfdmuqhGOf6DLOVx8ru0","title":"Quick start","pathname":"/visdom-ai-gateway/getting-started/quick-start","siteSpaceId":"sitesp_HAQxg","icon":"rocket","description":"Both gateways and the console on one machine with Docker Compose: demo data, a first model call, the guardrails at work. No model provider needed.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Getting started"}]},{"id":"k5hLW329A2GSzTfc0FmM","title":"Architecture","pathname":"/visdom-ai-gateway/getting-started/architecture","siteSpaceId":"sitesp_HAQxg","icon":"sitemap","description":"The components of Visdom AI Gateway, how a model call and a tool call travel through them, and how they are deployed.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Getting started"}]},{"id":"6dTcB6iBBPEZXjRqHfTp","title":"What's available today","pathname":"/visdom-ai-gateway/getting-started/whats-available","siteSpaceId":"sitesp_HAQxg","icon":"list-check","description":"What Visdom AI Gateway does today, what is partial, and what is not built yet.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Getting started"}]},{"id":"F3Qv6h2iW2l1omY7a7EK","title":"LLM gateway","pathname":"/visdom-ai-gateway/llm-gateway/llm-gateway","siteSpaceId":"sitesp_HAQxg","icon":"microchip","description":"One address and one key for every approved model, in the OpenAI and the Anthropic API style. What the LLM gateway checks on each call, and in what order.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"LLM gateway"}]},{"id":"hs8BggSfwALkxEXqae0a","title":"Calling models","pathname":"/visdom-ai-gateway/llm-gateway/calling-models","siteSpaceId":"sitesp_HAQxg","icon":"terminal","description":"Requests to the LLM gateway in the OpenAI and the Anthropic API style, with curl, Python and TypeScript: chat, messages, streamed Responses, embeddings, tool calling and the model list.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"LLM gateway"}]},{"id":"L2wi2ebnxaMPEArbwWAA","title":"Model catalogue and providers","pathname":"/visdom-ai-gateway/llm-gateway/model-catalogue","siteSpaceId":"sitesp_HAQxg","icon":"layer-group","description":"The model catalogue in Git (deploy/models.json): aliases, versions side by side, fallbacks, prices, providers and their credentials, and the kill switch in the console.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"LLM gateway"}]},{"id":"BatQO0cJDaoCBDE7e8mr","title":"Projects, budgets and limits","pathname":"/visdom-ai-gateway/llm-gateway/projects-budgets-and-limits","siteSpaceId":"sitesp_HAQxg","icon":"wallet","description":"Budgets, model allow-lists and rate limits per project, budgets per person, and what a caller sees when a limit is reached.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"LLM gateway"}]},{"id":"D1gbSgPtyims9eedQHJG","title":"API keys and personal keys","pathname":"/visdom-ai-gateway/llm-gateway/api-keys","siteSpaceId":"sitesp_HAQxg","icon":"key","description":"Issuing API keys for people, applications and service accounts; limiting, rotating and revoking them; personal keys; and creating keys through the console API.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"LLM gateway"}]},{"id":"grgrqRcPlosQFT6FdBzR","title":"Guardrails","pathname":"/visdom-ai-gateway/llm-gateway/guardrails","siteSpaceId":"sitesp_HAQxg","icon":"shield-halved","description":"What the LLM gateway checks in every request and every answer: secrets refused, personal data masked, Presidio for names and addresses, the bank's own rules, and the output guard.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"LLM gateway"}]},{"id":"SYMaefzjVrJFhxnwXYVx","title":"Activity, costs and reporting","pathname":"/visdom-ai-gateway/llm-gateway/activity-and-costs","siteSpaceId":"sitesp_HAQxg","icon":"chart-column","description":"Every model call with its project, key, model, tokens, cost and outcome; cost by project, model, key, owner and provider; how calls are counted; CSV exports and the read-only reporting API.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"LLM gateway"}]},{"id":"nJPVOLazNf1PE9uk4hOf","title":"MCP gateway","pathname":"/visdom-ai-gateway/mcp-gateway/mcp-gateway","siteSpaceId":"sitesp_HAQxg","icon":"server","description":"The MCP gateway puts your approved tool servers behind one gateway: one endpoint per project, its own tokens, risk classes, approvals and guardrails on every tool call.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"MCP gateway"}]},{"id":"OuZvuLFrOP1NAx3mMKgn","title":"Tool servers","pathname":"/visdom-ai-gateway/mcp-gateway/tool-servers","siteSpaceId":"sitesp_HAQxg","icon":"plug","description":"Register an approved MCP tool server, store its credentials in the gateway, and keep the list of servers in Git.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"MCP gateway"}]},{"id":"kNzK0PmTmjBLtXcFXiFE","title":"Tools, risk classes and approvals","pathname":"/visdom-ai-gateway/mcp-gateway/tools-risk-and-approvals","siteSpaceId":"sitesp_HAQxg","icon":"shield-check","description":"The catalogue of tools, resources and prompts, the per-tool switch, risk classes, and the four-eyes approval a high-risk tool needs before it reaches a virtual server.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"MCP gateway"}]},{"id":"EXkanZu6nxXZc75Pzxyb","title":"Virtual servers and client tokens","pathname":"/visdom-ai-gateway/mcp-gateway/virtual-servers","siteSpaceId":"sitesp_HAQxg","icon":"layer-group","description":"Create one MCP endpoint per project with a chosen subset of tools, issue client tokens that work only there, and connect clients to it.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"MCP gateway"}]},{"id":"mq2G0720CnonjRHoxqx0","title":"Guardrails, limits and emergency stop","pathname":"/visdom-ai-gateway/mcp-gateway/guardrails-and-emergency-stop","siteSpaceId":"sitesp_HAQxg","icon":"shield-halved","description":"What the MCP gateway checks on every tool call: secrets and bank rules in arguments, personal data in results, rate limits, an optional OPA policy, and the switches up to an emergency stop.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"MCP gateway"}]},{"id":"IlVwcEnsHiytba6mSTDe","title":"MCP activity","pathname":"/visdom-ai-gateway/mcp-gateway/activity","siteSpaceId":"sitesp_HAQxg","icon":"chart-line","description":"Tool calls through the MCP gateway, per tool and per call, with CSV export: an operational view, not the audit record.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"MCP gateway"}]},{"id":"ZSQkq5ul2SS6qs1POv0u","title":"Claude Code","pathname":"/visdom-ai-gateway/clients/claude-code","siteSpaceId":"sitesp_HAQxg","icon":"terminal","description":"Point Claude Code at the LLM gateway with a gateway key and a model alias, add a project's MCP virtual server, and attribute its calls to AI Tracing sessions.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Clients"}]},{"id":"IksbR7Umc7zjhyrq5kRU","title":"Codex","pathname":"/visdom-ai-gateway/clients/codex","siteSpaceId":"sitesp_HAQxg","icon":"code","description":"Point Codex at the LLM gateway's Responses API with a custom model provider, add MCP virtual servers, and get AI Tracing attribution with no extra setup.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Clients"}]},{"id":"DV91AKXoF3hSTp8aP4ON","title":"SDKs, IDEs and agents","pathname":"/visdom-ai-gateway/clients/other-clients","siteSpaceId":"sitesp_HAQxg","icon":"plug","description":"OpenAI and Anthropic SDKs, other OpenAI-compatible tools, Orchestrator agents and MCP clients: what each needs to use the gateway.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Clients"}]},{"id":"1OoPR2yPbaoUMLQfE89E","title":"The gateway in the Visdom platform","pathname":"/visdom-ai-gateway/visdom-platform/platform","siteSpaceId":"sitesp_HAQxg","icon":"puzzle-piece","description":"What each Visdom module gives the gateway, and how the gateway runs on its own or integrated with the platform.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Visdom platform"}]},{"id":"pBB0OMu8ZUhrGp6PbIJN","title":"Sign-in and roles","pathname":"/visdom-ai-gateway/visdom-platform/sign-in-and-roles","siteSpaceId":"sitesp_HAQxg","icon":"right-to-bracket","description":"How people and scripts sign in to the console, what viewer, operator and admin may do, and where each person's role comes from.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Visdom platform"}]},{"id":"kX1BDvUcqyZ1zUv00WWl","title":"Projects from Control Plane","pathname":"/visdom-ai-gateway/visdom-platform/control-plane-projects","siteSpaceId":"sitesp_HAQxg","icon":"folder-tree","description":"Where the gateway's projects come from, how Control Plane's sync webhook blocks and unblocks a project's keys, and how to configure both.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Visdom platform"}]},{"id":"jGsraVtW708YHxRHydjY","title":"Records and sessions in AI Tracing","pathname":"/visdom-ai-gateway/visdom-platform/ai-tracing","siteSpaceId":"sitesp_HAQxg","icon":"route","description":"What the gateway delivers to AI Tracing, how delivery survives outages, and how Claude Code and Codex calls become AI Tracing sessions with transcripts.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Visdom platform"}]},{"id":"O5fDgCsfMh519XNFUUrx","title":"Export to a SIEM","pathname":"/visdom-ai-gateway/visdom-platform/siem-export","siteSpaceId":"sitesp_HAQxg","icon":"file-export","description":"Export the gateways' records as OTLP logs to an OpenTelemetry Collector in front of your SIEM: format, attributes, delivery guarantees and setup.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Visdom platform"}]},{"id":"c81N7K93A7HjXgeliqYC","title":"Notifications","pathname":"/visdom-ai-gateway/visdom-platform/notifications","siteSpaceId":"sitesp_HAQxg","icon":"bell","description":"E-mail notifications through your SMTP relay, routed per event and project, and one chat webhook that receives every event.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Visdom platform"}]},{"id":"s3ZqJshxxwMocA4Mh1Sc","title":"Evidence and the Policies page","pathname":"/visdom-ai-gateway/visdom-platform/evidence","siteSpaceId":"sitesp_HAQxg","icon":"file-signature","description":"The Evidence page's signed chain of admin changes, how to verify it locally and with AI Tracing, and what the Policies page shows as enforced or simulated.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Visdom platform"}]},{"id":"7z8gsTyssYuBT4i6USOG","title":"Install on Kubernetes (Helm)","pathname":"/visdom-ai-gateway/operations/kubernetes-helm","siteSpaceId":"sitesp_HAQxg","icon":"dharmachakra","description":"Install the LLM gateway, the MCP gateway and the console on your own Kubernetes cluster with one Helm chart: values, secrets, network policies, pod security, upgrades.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Operations"}]},{"id":"KMkWnAffWjNPLF4P58Lg","title":"Evaluate with Docker Compose","pathname":"/visdom-ai-gateway/operations/docker-compose","siteSpaceId":"sitesp_HAQxg","icon":"cubes","description":"The reference deployment in deploy/compose: services, profiles, overlays, ports, the .env file and image pinning. For evaluation on one host, not for production.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Operations"}]},{"id":"vO19V6AdamGG9aLgnzmy","title":"Offline and air-gapped","pathname":"/visdom-ai-gateway/operations/offline-and-air-gapped","siteSpaceId":"sitesp_HAQxg","icon":"plane-slash","description":"What the gateway would call out to and how each call is switched off, mirroring the images by digest, verifying signatures, and updating a site with no internet access.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Operations"}]},{"id":"Dgc8yixq298VjZQoswh4","title":"Network, proxy and egress","pathname":"/visdom-ai-gateway/operations/network-proxy-and-egress","siteSpaceId":"sitesp_HAQxg","icon":"network-wired","description":"Make the gateway the only path from your workloads to models, run the gateways behind a corporate proxy with your own CA, and control which networks the MCP gateway may call.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Operations"}]},{"id":"uNETNuNOlx9XIU9txRC0","title":"Configuration reference","pathname":"/visdom-ai-gateway/operations/configuration-reference","siteSpaceId":"sitesp_HAQxg","icon":"sliders","description":"Every environment variable the console reads, the LLM gateway's and MCP gateway's settings the deployment sets, with defaults and the matching Helm values.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Operations"}]},{"id":"9ltkgPE7gCZhEaFKwkBx","title":"Releases and upgrades","pathname":"/visdom-ai-gateway/operations/upgrades-and-releases","siteSpaceId":"sitesp_HAQxg","icon":"code-branch","description":"How the console and the Helm chart are versioned, built, scanned and signed, and how a site installs a new release.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Operations"}]},{"id":"Lt13Fc8hSefakUI8kMSW","title":"Console API (OpenAPI)","pathname":"/visdom-ai-gateway/reference/api-reference","siteSpaceId":"sitesp_HAQxg","icon":"code","description":"The console's HTTP API: what it covers, how people, scripts and reporting tools authenticate, where the OpenAPI document is served, and an example that sets a budget and issues a key.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Reference"}]},{"id":"G7KJorgDzCqNWvFCrftV","title":"Status codes and headers","pathname":"/visdom-ai-gateway/reference/errors-and-headers","siteSpaceId":"sitesp_HAQxg","icon":"triangle-exclamation","description":"Status codes, error bodies and headers of the LLM gateway, the MCP gateway and the console API, with their causes.","breadcrumbs":[{"label":"Visdom AI Gateway","icon":"door-open"},{"label":"Reference"}]},{"id":"BLAciVizthpzYRNvzu7G","title":"Visdom AI Tracing","pathname":"/visdom-tracing","siteSpaceId":"sitesp_wCK8g","icon":"shield-check","description":"The flight recorder for AI-assisted development: what the agent did, what it cost, and proof of it.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"}]},{"id":"Og4P37ngmC3QlFGM0CO7","title":"Quick start","pathname":"/visdom-tracing/getting-started/quick-start","siteSpaceId":"sitesp_wCK8g","icon":"rocket","description":"From nothing to your first traced agent session and commit in about ten minutes, against your organisation's server.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Getting started"}]},{"id":"CkxnjKNq3WyC0EN5zs4M","title":"How it works","pathname":"/visdom-tracing/getting-started/how-it-works","siteSpaceId":"sitesp_wCK8g","icon":"diagram-project","description":"The three ways activity reaches Visdom AI Tracing, what the server does with it, and where each piece runs.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Getting started"}]},{"id":"rkJyMxcO0r748HWPl87f","title":"What's available today","pathname":"/visdom-tracing/getting-started/whats-available","siteSpaceId":"sitesp_wCK8g","icon":"list-check","description":"What Visdom AI Tracing does today, what works with conditions, and what is not built yet.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Getting started"}]},{"id":"1Uggba4UQYR76WXnxd6L","title":"Capturing agent work","pathname":"/visdom-tracing/capturing-agent-work/capture","siteSpaceId":"sitesp_wCK8g","icon":"satellite-dish","description":"How Visdom AI Tracing captures what a coding agent does: the tracevault CLI, the agent's own hooks and two git hooks.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Capturing agent work"}]},{"id":"aY90BwkbLa5b9pQ3lP4U","title":"Installing the CLI and signing in","pathname":"/visdom-tracing/capturing-agent-work/installing-the-cli-and-signing-in","siteSpaceId":"sitesp_wCK8g","icon":"right-to-bracket","description":"Install the tracevault CLI, sign in through Keycloak with the device grant, or use an API key in CI.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Capturing agent work"}]},{"id":"WxT4xsudFluLiGyZieTV","title":"Setting up a repository","pathname":"/visdom-tracing/capturing-agent-work/setting-up-a-repository","siteSpaceId":"sitesp_wCK8g","icon":"code-branch","description":"What tracevault init installs in a repository, how the repository gets registered, and how to check the wiring.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Capturing agent work"}]},{"id":"OaLilWv3wDplVzUAy5ao","title":"Supported agents","pathname":"/visdom-tracing/capturing-agent-work/supported-agents","siteSpaceId":"sitesp_wCK8g","icon":"robot","description":"Which coding agents Visdom AI Tracing captures, how each one is hooked in, and what each gets: capture, policy injection, file changes.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Capturing agent work"}]},{"id":"qKDicMdbliJ43hTWxlOE","title":"What a session captures","pathname":"/visdom-tracing/capturing-agent-work/what-a-session-captures","siteSpaceId":"sitesp_wCK8g","icon":"film","description":"The events the CLI streams, what the server derives from them (model, tokens, cost, file changes), and how commits are attributed to sessions.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Capturing agent work"}]},{"id":"ibTcSSqTrOCB4xqyTHTB","title":"Flows, labels and params","pathname":"/visdom-tracing/capturing-agent-work/context-flows-labels-and-params","siteSpaceId":"sitesp_wCK8g","icon":"tags","description":"The flow ID, labels and params the CLI stamps on every captured event: three layers, how they merge, and how to edit them.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Capturing agent work"}]},{"id":"HGVNTD6Z3rmn8k9Ugl3a","title":"Workspace mode and project attribution","pathname":"/visdom-tracing/capturing-agent-work/workspace-mode-and-project-attribution","siteSpaceId":"sitesp_wCK8g","icon":"diagram-project","description":"Capture for headless and multi-repo agents: a global install, binding the repository at runtime, and attributing sessions to a project with or without a repository.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Capturing agent work"}]},{"id":"sPKcsjyXnTuu9LYQ8yle","title":"LLM proxy","pathname":"/visdom-tracing/llm-proxy/llm-proxy","siteSpaceId":"sitesp_wCK8g","icon":"shuffle","description":"The LLM proxy: Claude Code, Codex and other tools call Anthropic or OpenAI through Visdom AI Tracing, which forwards the call, meters it and records it.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"LLM proxy"}]},{"id":"xOF60JFqF3pl1ViTH9UB","title":"Connecting Claude Code and Codex","pathname":"/visdom-tracing/llm-proxy/connecting-claude-code-and-codex","siteSpaceId":"sitesp_wCK8g","icon":"plug","description":"Pointing Claude Code and Codex at the LLM proxy: the base URLs, the credential the proxy accepts, and what to set up first.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"LLM proxy"}]},{"id":"Pw12qgqWHaO1FdA0bYEw","title":"Credentials and routing","pathname":"/visdom-tracing/llm-proxy/credentials-and-routing","siteSpaceId":"sitesp_wCK8g","icon":"key","description":"Which upstream key the proxy uses for a call: personal and instance credentials, the default route, per-model rules, model rewrite and concurrency caps.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"LLM proxy"}]},{"id":"dhpoS4Z9FjCCiSOGJG6B","title":"Attribution and sessions","pathname":"/visdom-tracing/llm-proxy/attribution-and-sessions","siteSpaceId":"sitesp_wCK8g","icon":"tags","description":"How the proxy ties a call to a person, a project, a repository and a session; the headers a tool can send; the missing-context and repo-conflict policies; transcript capture; and every error the proxy","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"LLM proxy"}]},{"id":"ISXLmoDM3KtFWRPjpKCv","title":"Secret blocking","pathname":"/visdom-tracing/llm-proxy/secret-blocking","siteSpaceId":"sitesp_wCK8g","icon":"user-secret","description":"Refusing a proxied request that carries a registered secret before it reaches the model, and redacting registered secrets from captured transcripts.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"LLM proxy"}]},{"id":"JrKqOOiEenlfHBaYKVtB","title":"Policies and verification","pathname":"/visdom-tracing/policies-and-verification/policies","siteSpaceId":"sitesp_wCK8g","icon":"scale-balanced","description":"Where policies live, which rules the server enforces, and the three points where they reach an agent: its instructions, the pre-push check and CI.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Policies and verification"}]},{"id":"psHU3UADubz3wVLG7UCw","title":"Policies","pathname":"/visdom-tracing/policies-and-verification/policies-1","siteSpaceId":"sitesp_wCK8g","icon":"list-check","description":"The policy model: condition types and which of them the server enforces, actions, severity, scope, the verification phase, and how to create policies in the web app or the API.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Policies and verification"}]},{"id":"Jt9KDKLQDytuhXbulZrD","title":"The pre-push check","pathname":"/visdom-tracing/policies-and-verification/pre-push-check","siteSpaceId":"sitesp_wCK8g","icon":"hand","description":"What tracevault check sends and evaluates on every git push, its output, why it fails closed, and how verification phases narrow a policy to the agent's final checks.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Policies and verification"}]},{"id":"T4pQBe9LfFkcrduMaogX","title":"Verifying commits in CI","pathname":"/visdom-tracing/policies-and-verification/verifying-commits-in-ci","siteSpaceId":"sitesp_wCK8g","icon":"circle-check","description":"tracevault verify and the GitHub Action: which commits pass, why signing must be on, how the repository is resolved, and the server-side merge gate for pull requests.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Policies and verification"}]},{"id":"o6JJNGpmWLAqIpuiYtOG","title":"Agent instructions and MCP","pathname":"/visdom-tracing/policies-and-verification/agent-instructions-and-mcp","siteSpaceId":"sitesp_wCK8g","icon":"message-lines","description":"How an agent learns the repository's policies before it works: the session hooks per agent, tracevault agent-policies for CLAUDE.md and AGENTS.md, and the tracevault MCP server.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Policies and verification"}]},{"id":"8jDiHa7PogGVrWZksbAW","title":"Signing in and finding your way","pathname":"/visdom-tracing/web-app/web-app","siteSpaceId":"sitesp_wCK8g","icon":"window-maximize","description":"Signing in with Visdom, the module rail and project switcher, the sidebar, project scope, and who sees which part of the web app.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Web app"}]},{"id":"20XyL0GJHnqg3JTOh3ZL","title":"Dashboard","pathname":"/visdom-tracing/web-app/dashboard","siteSpaceId":"sitesp_wCK8g","icon":"gauge","description":"The dashboard's period, its spend, developer, session and token tiles, session quality, the compliance score and cache savings, and why its totals can differ from Analytics.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Web app"}]},{"id":"Y6JGCj3nvMo9ioS9TDBi","title":"Traces","pathname":"/visdom-tracing/web-app/traces","siteSpaceId":"sitesp_wCK8g","icon":"list-timeline","description":"Sessions with their transcript, events, file changes and commits; commits with their attribution; the timeline of tool calls; line-by-line AI attribution; and branches.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Web app"}]},{"id":"lSYpupss6z8omUhiG006","title":"Analytics, costs and flows","pathname":"/visdom-tracing/web-app/analytics-and-costs","siteSpaceId":"sitesp_wCK8g","icon":"chart-column","description":"The analytics pages – tokens, models, authors, AI attribution, sessions, cost, software and AI tools – how they count hook sessions and ledger calls, and flows across sessions and repositories.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Web app"}]},{"id":"n79TIvLwhDZI2lpb20Dk","title":"Chat","pathname":"/visdom-tracing/web-app/chat","siteSpaceId":"sitesp_wCK8g","icon":"comments","description":"Ask questions about past sessions and commits in plain language: who can read and who can ask, @ mentions, the references behind an answer, which LLM answers, and how sessions are indexed.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Web app"}]},{"id":"Dtrk4O9Oo128jAINGM9O","title":"Projects and repositories","pathname":"/visdom-tracing/web-app/projects-and-repositories","siteSpaceId":"sitesp_wCK8g","icon":"folder-tree","description":"Projects and the repositories in them: Control Plane projects and local ones, adding and removing repositories, a repository's policies, activity and commits, its connection to GitHub, the verificatio","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Web app"}]},{"id":"SBKp60uC4ApDKkncFJ0L","title":"Signing and the chain","pathname":"/visdom-tracing/evidence-and-compliance/signing-and-the-chain","siteSpaceId":"sitesp_wCK8g","icon":"signature","description":"What Visdom AI Tracing seals once signing is on: commits in a hash chain, sessions with a signature, AI Gateway records in a chain of their own; how to turn it on, get the public key and verify.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Evidence and compliance"}]},{"id":"0wWBfnLUwAwZFeIAQeXj","title":"Compliance and the audit log","pathname":"/visdom-tracing/evidence-and-compliance/compliance-and-audit-log","siteSpaceId":"sitesp_wCK8g","icon":"shield-check","description":"The Compliance Dashboard and Verify Now, the Audit Log and what it records, and the compliance settings: what each one does today.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Evidence and compliance"}]},{"id":"rbnOrELVxDYEPpMFKgi1","title":"AI Tracing in the platform","pathname":"/visdom-tracing/visdom-platform/platform","siteSpaceId":"sitesp_wCK8g","icon":"puzzle-piece","description":"What AI Tracing records, how it connects to Keycloak, Control Plane and AI Gateway, and what each connection needs.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Visdom platform"}]},{"id":"x5WEOEhWRqRb1HgWvL9E","title":"Sign-in and permissions","pathname":"/visdom-tracing/visdom-platform/sign-in-and-permissions","siteSpaceId":"sitesp_wCK8g","icon":"id-badge","description":"How people, CI and other modules sign in to AI Tracing, and what each role and Control Plane grant allows.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Visdom platform"}]},{"id":"drVJgZF5rWhYyn5s8f2j","title":"Control Plane","pathname":"/visdom-tracing/visdom-platform/control-plane","siteSpaceId":"sitesp_wCK8g","icon":"sitemap","description":"What AI Tracing takes from Control Plane: people and their grants, projects and repositories, and the LLM for stories and chat.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Visdom platform"}]},{"id":"ySdXgBOEj7Ef0pB3gfmK","title":"Records from AI Gateway","pathname":"/visdom-tracing/visdom-platform/ai-gateway","siteSpaceId":"sitesp_wCK8g","icon":"route","description":"How AI Tracing receives AI Gateway's records and content, seals them, and turns model calls into cost, sessions and transcripts.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Visdom platform"}]},{"id":"6IUNDervzggi9CSk9V5A","title":"Deployment","pathname":"/visdom-tracing/operations/deployment","siteSpaceId":"sitesp_wCK8g","icon":"server","description":"The two containers, the database, what must be set before the first start, health checks, and what runs in the background.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Operations"}]},{"id":"P4Jpk7vdztwVjQbMAs4i","title":"Configuration reference","pathname":"/visdom-tracing/operations/configuration-reference","siteSpaceId":"sitesp_wCK8g","icon":"sliders","description":"Every environment variable the AI Tracing server and web app read, with defaults, what each does, and which ones stop the server when wrong.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Operations"}]},{"id":"JWA6CYDXV3mhwTRqyQDI","title":"Administration","pathname":"/visdom-tracing/operations/administration","siteSpaceId":"sitesp_wCK8g","icon":"gear","description":"The Settings pages administrators use: proxy keys, pricing, the story and chat LLM, Control Plane sync, API keys, and what is set by configuration instead.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Operations"}]},{"id":"1egYPRezSRgfNyxwiWut","title":"Pricing","pathname":"/visdom-tracing/operations/pricing","siteSpaceId":"sitesp_wCK8g","icon":"tags","description":"Where AI Tracing's model prices come from, how a call's cost is worked out, and how to override a price.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Operations"}]},{"id":"8vBOpdKfmKzdLU5W5UF6","title":"Observability","pathname":"/visdom-tracing/operations/observability","siteSpaceId":"sitesp_wCK8g","icon":"chart-line","description":"The server's logs, OpenTelemetry traces and metrics, and what to watch.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Operations"}]},{"id":"q5dFSqtQ0yPPb84Yfy14","title":"Command reference","pathname":"/visdom-tracing/reference/command-reference","siteSpaceId":"sitesp_wCK8g","icon":"terminal","description":"Every tracevault command and flag, the hook commands, the environment variables, and the files the CLI reads and writes.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Reference"}]},{"id":"DlSmvSJqJHDLZZbyUlBM","title":"API reference","pathname":"/visdom-tracing/reference/api-reference","siteSpaceId":"sitesp_wCK8g","icon":"code","description":"The AI Tracing HTTP API: where its OpenAPI document and Swagger UI are, how to authenticate, and what each group of routes does.","breadcrumbs":[{"label":"Visdom AI Tracing","icon":"shield-check"},{"label":"Reference"}]},{"id":"604rlv4p5TH1YWI8iEAx","title":"Visdom Context Fabric","pathname":"/visdom-context-fabric","siteSpaceId":"sitesp_uRJQR","description":"The organisational knowledge layer for AI coding agents.","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"}]},{"id":"ocmYmVZKxDUYavtVm4VH","title":"Context Fabric in the platform","pathname":"/visdom-context-fabric/context-fabric-in-the-platform","siteSpaceId":"sitesp_uRJQR","description":"The compiled knowledge layer: aggregate, serve, govern.","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"}]},{"id":"7QUnXMSjkZewdmg1zt2R","title":"User Guide","pathname":"/visdom-context-fabric/user-guide","siteSpaceId":"sitesp_uRJQR","description":"What Context Fabric manages, and how the context reaches an agent.","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"}]},{"id":"tPz6fKdcqjkF9sUGBEdn","title":"Setting up a project","pathname":"/visdom-context-fabric/user-guide/setting-up-a-project","siteSpaceId":"sitesp_uRJQR","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"},{"label":"User Guide"}]},{"id":"UhrAKwTT1oXDqwWOXtv3","title":"Architecture module","pathname":"/visdom-context-fabric/user-guide/architecture-module","siteSpaceId":"sitesp_uRJQR","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"},{"label":"User Guide"}]},{"id":"IwteHriUeOrf87FdlyI0","title":"Wiki module","pathname":"/visdom-context-fabric/user-guide/wiki-module","siteSpaceId":"sitesp_uRJQR","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"},{"label":"User Guide"}]},{"id":"tMcN5gttfOowWxn3qENt","title":"Memory module","pathname":"/visdom-context-fabric/user-guide/memory-module","siteSpaceId":"sitesp_uRJQR","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"},{"label":"User Guide"}]},{"id":"otSGWA5h8x27rfrg5nKA","title":"Repo insights module","pathname":"/visdom-context-fabric/user-guide/repo-insights-module","siteSpaceId":"sitesp_uRJQR","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"},{"label":"User Guide"}]},{"id":"SHLoVUynz2edWEoYhjrb","title":"Using Context Fabric with the Orchestrator","pathname":"/visdom-context-fabric/user-guide/using-context-fabric-with-the-orchestrator","siteSpaceId":"sitesp_uRJQR","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"},{"label":"User Guide"}]},{"id":"wqJMAb7MgnjZHGATHnnN","title":"Using Context Fabric stand-alone","pathname":"/visdom-context-fabric/user-guide/using-context-fabric-stand-alone","siteSpaceId":"sitesp_uRJQR","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"},{"label":"User Guide"}]},{"id":"sFF6J3csFzXUShN8gvdy","title":"AGENTS.md fragments","pathname":"/visdom-context-fabric/user-guide/agents.md-fragments","siteSpaceId":"sitesp_uRJQR","breadcrumbs":[{"label":"Visdom Context Fabric","icon":"sitemap"},{"label":"User Guide"}]},{"id":"AyPziFZUVfYO1zK6XFbz","title":"Visdom Orchestrator","pathname":"/visdom-orchestrator","siteSpaceId":"sitesp_UMNe9","description":"Coding agents as declarative flows running on Kubernetes.","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"}]},{"id":"9ck6qmAfLGRjGIOOpiEW","title":"The Orchestrator in the platform","pathname":"/visdom-orchestrator/the-orchestrator-in-the-platform","siteSpaceId":"sitesp_UMNe9","description":"The execution engine: definitions, drivers, triggers and oversight.","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"}]},{"id":"8k13HmjVbNsKh5zt5lqi","title":"User Guide","pathname":"/visdom-orchestrator/user-guide","siteSpaceId":"sitesp_UMNe9","description":"Definitions, flows and runs. Everything else hangs off those three.","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"}]},{"id":"2lpyYs18A7ROfLVxz5AZ","title":"Concepts and the object model","pathname":"/visdom-orchestrator/user-guide/concepts-and-the-object-model","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"3a7KPK03W8ZNPqOa3TH7","title":"The catalog: install, fork, upgrade","pathname":"/visdom-orchestrator/user-guide/the-catalog-install-fork-upgrade","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"CQgLdsr2LW0BKzEAsi1b","title":"Configuring an agent","pathname":"/visdom-orchestrator/user-guide/configuring-an-agent","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"oi0Sv6MXeUpisIYnsE2E","title":"Flows: nodes, ports and edges","pathname":"/visdom-orchestrator/user-guide/flows-nodes-ports-and-edges","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"6z6nyvFqR4tOvDavTSWi","title":"What happens during a run","pathname":"/visdom-orchestrator/user-guide/what-happens-during-a-run","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"OSIIzQxnZzQRRZiFygD0","title":"Humans in the loop","pathname":"/visdom-orchestrator/user-guide/humans-in-the-loop","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"ZykaLsbSgSR4khR3MZ25","title":"Governance: cost, policy, egress, identity","pathname":"/visdom-orchestrator/user-guide/governance-cost-policy-egress-identity","siteSpaceId":"sitesp_UMNe9","description":"Cost, policy, egress, identity.","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"vsZVjYediYrVc2mWCW1M","title":"Adapters, webhooks and schedules","pathname":"/visdom-orchestrator/user-guide/adapters-webhooks-and-schedules","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"cZLnEheynforK77YfpZd","title":"Deploying and configuring the controller","pathname":"/visdom-orchestrator/user-guide/deploying-and-configuring-the-controller","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"jKVCQH9VkZRvwsBmDGCJ","title":"Known limitations","pathname":"/visdom-orchestrator/user-guide/known-limitations","siteSpaceId":"sitesp_UMNe9","breadcrumbs":[{"label":"Visdom Orchestrator","icon":"diagram-project"},{"label":"User Guide"}]},{"id":"lekAtyJKKyXouIugMxIY","title":"Visdom Code Review","pathname":"/visdom-code-review","siteSpaceId":"sitesp_lLHyE","description":"Multi-layered review for teams shipping AI-generated code.","breadcrumbs":[{"label":"Visdom Code Review","icon":"magnifying-glass-chart"}]},{"id":"v67h4vHxJXFmddPntJgV","title":"The review model","pathname":"/visdom-code-review/the-review-model","siteSpaceId":"sitesp_lLHyE","breadcrumbs":[{"label":"Visdom Code Review","icon":"magnifying-glass-chart"}]},{"id":"TscSUxS678HxdDql9Glr","title":"What it catches","pathname":"/visdom-code-review/what-it-catches","siteSpaceId":"sitesp_lLHyE","breadcrumbs":[{"label":"Visdom Code Review","icon":"magnifying-glass-chart"}]},{"id":"aXCANbhKVH17ndgFbTVe","title":"Page","pathname":"/visdom-code-review/page","siteSpaceId":"sitesp_lLHyE","breadcrumbs":[{"label":"Visdom Code Review","icon":"magnifying-glass-chart"}]},{"id":"4u9fE3IFQIkO4jfiH2Dv","title":"Visdom Testing","pathname":"/visdom-testing","siteSpaceId":"sitesp_mxebB","description":"Validation that holds when the same model wrote the code and the tests.","breadcrumbs":[{"label":"Visdom Testing","icon":"flask"}]},{"id":"TtmSwl9HHw6q0rjupbyS","title":"Architecture tests","pathname":"/visdom-testing/architecture-tests","siteSpaceId":"sitesp_mxebB","breadcrumbs":[{"label":"Visdom Testing","icon":"flask"}]},{"id":"vvYe3DLjgHbiMjugB10d","title":"Property-based tests","pathname":"/visdom-testing/property-based-tests","siteSpaceId":"sitesp_mxebB","breadcrumbs":[{"label":"Visdom Testing","icon":"flask"}]},{"id":"A7CtHUVTxsVHaLyX8RTX","title":"Mutation tests","pathname":"/visdom-testing/mutation-tests","siteSpaceId":"sitesp_mxebB","breadcrumbs":[{"label":"Visdom Testing","icon":"flask"}]},{"id":"WCwhmEyWWJ59DXE2IRnu","title":"Contract tests","pathname":"/visdom-testing/contract-tests","siteSpaceId":"sitesp_mxebB","breadcrumbs":[{"label":"Visdom Testing","icon":"flask"}]},{"id":"Iml5p6pzFzL0Y0EkGMUA","title":"Choosing a shape","pathname":"/visdom-testing/choosing-a-shape","siteSpaceId":"sitesp_mxebB","breadcrumbs":[{"label":"Visdom Testing","icon":"flask"}]},{"id":"MXxys28NXU9IvVpNazbm","title":"Page","pathname":"/visdom-testing/page","siteSpaceId":"sitesp_mxebB","breadcrumbs":[{"label":"Visdom Testing","icon":"flask"}]},{"id":"SHhGVBwsZjNjCQFO3wf5","title":"Visdom Security","pathname":"/visdom-security","siteSpaceId":"sitesp_wCKto","description":"Contain the agent while it works, harden what it ships.","breadcrumbs":[{"label":"Visdom Security","icon":"shield-halved"}]},{"id":"JRXLe6vSv8cQnr6vmsEZ","title":"Containment","pathname":"/visdom-security/containment","siteSpaceId":"sitesp_wCKto","breadcrumbs":[{"label":"Visdom Security","icon":"shield-halved"}]},{"id":"7eEUNqSloNd56fJSEi2p","title":"Continuous AppSec","pathname":"/visdom-security/continuous-appsec","siteSpaceId":"sitesp_wCKto","breadcrumbs":[{"label":"Visdom Security","icon":"shield-halved"}]},{"id":"bpugMRBuqsXaTduuYqB1","title":"Page","pathname":"/visdom-security/page","siteSpaceId":"sitesp_wCKto","breadcrumbs":[{"label":"Visdom Security","icon":"shield-halved"}]}]}