[{"slug":"agents","title":"Agent Integration Overview","category":"agents","summary":"How an LLM or autonomous agent uses abagraph as long-term bitemporal memory — MCP, SDK, and REST paths.","headings":"what-abagraph-is,core-session-pattern,path-mcp,path-ts-sdk,path-rest,namespace-isolation,related","url":"/docs#agents/agents"},{"slug":"tools-reference","title":"MCP Tools Reference","category":"agents","summary":"Full parameter and response reference for all seven abagraph MCP orchestrate tools.","headings":"common-conventions,tool-digest,tool-remember,tool-recall,tool-recall-as-of,tool-whats-changed,tool-build-context,tool-explain-fact","url":"/docs#agents/tools-reference"},{"slug":"tool-profiles","title":"Tool Profiles","category":"agents","summary":"Use ABAGRAPH_MCP_PROFILE to expose a role-appropriate subset of MCP tools and reduce tool-choice overlap.","headings":"what-profiles-are,profiles,all-tools-table,configuration,how-it-works","url":"/docs#agents/tool-profiles"},{"slug":"per-turn-memory-loop","title":"Per-Turn Memory Loop","category":"agents","summary":"Load context at session start and persist facts at the end: the recommended three-step agent memory pattern.","headings":"why-frozen-snapshots,step-1-session-start,step-2-turn,step-3-session-end,adk-plugin,durable-runs,consolidation","url":"/docs#agents/per-turn-memory-loop"},{"slug":"discovery-llms-txt","title":"Discovery and llms.txt","category":"agents","summary":"Machine-readable surfaces for agents: llms.txt, llms-full.txt, mode=agent, OpenAPI, and well-known files.","headings":"overview,llms-txt,llms-full-txt,mode-agent,openapi,well-known-mcp,well-known-agent-card,api-catalog,index-md,link-header,connect-endpoint,agent-cli-init","url":"/docs#agents/discovery-llms-txt"},{"slug":"overview","title":"Agent Integration Overview","category":"agents-legacy","summary":"How an LLM or autonomous agent uses abagraph as long-term bitemporal memory.","headings":"what-abagraph-is,capabilities,core-session-pattern,three-integration-paths,namespace-isolation,fact-anatomy","url":"/docs#agents-legacy/overview"},{"slug":"overview","title":"API Reference: Overview","category":"api","summary":"Base URL, authentication, error shape, ?explain=1, and common patterns shared by every abagraph REST endpoint.","headings":"base-url,auth,error-shape,timestamps,explain,tenant-scoping,content-type,request-size","url":"/docs#api/overview"},{"slug":"facts","title":"API Reference: /api/facts","category":"api","summary":"List, assert, and retract facts over REST. Includes query params, FactInput shape, and error codes.","headings":"get-facts,post-facts,delete-facts,errors","url":"/docs#api/facts"},{"slug":"transact","title":"API Reference: /api/transact","category":"api","summary":"Compare-guarded atomic multi-fact write. Assert several facts and retract others in a single linearized batch.","headings":"endpoint,request-body,response,errors,example,ts-sdk,notes","url":"/docs#api/transact"},{"slug":"context","title":"API Reference: /api/context","category":"api","summary":"One-call context packet for LLM agents: seed entities, ranked facts, wiki pages, corroboration, and token budget trimming.","headings":"endpoint,request,response,example,ts-sdk,agent-memory-sdk,notes","url":"/docs#api/context"},{"slug":"search","title":"API Reference: /api/search","category":"api","summary":"Semantic kNN search over fact embeddings. Returns the top-k most relevant facts for a natural-language question.","headings":"endpoint,request,response,example-get,example-post,ts-sdk,embedding-requirements,env-vars","url":"/docs#api/search"},{"slug":"graph-and-walk","title":"API Reference: /api/graph and /api/walk","category":"api","summary":"Graph overview and BFS graph traversal. /api/graph returns a node-edge view; /api/walk traverses from a start entity with depth and direction controls.","headings":"graph-endpoint,walk-endpoint,ts-sdk,notes","url":"/docs#api/graph-and-walk"},{"slug":"digest","title":"API Reference: /api/digest","category":"api","summary":"Ingest raw content or pre-extracted triples into provenance-bearing facts. Supports BYOK extract+judge pipeline with PII masking.","headings":"endpoint,mode-a,mode-b,response,ts-sdk,notes","url":"/docs#api/digest"},{"slug":"ask","title":"API Reference: /api/ask","category":"api","summary":"Grounded question answering over tenant-scoped evidence using a caller-supplied (BYOK) model.","headings":"endpoint,request,response,example,notes","url":"/docs#api/ask"},{"slug":"entities-and-predicates","title":"API Reference: Entities and Predicates","category":"api","summary":"List and resolve entities; list the predicate vocabulary. Read-only, tenant-scoped endpoints.","headings":"list-entities,get-entity,list-predicates,notes","url":"/docs#api/entities-and-predicates"},{"slug":"branches","title":"API Reference: /api/branches","category":"api","summary":"Instant branch creation, isolated fact writes, diff, promote to main, and discard. Neon-style point-in-time overlays.","headings":"create-branch,list-branches,get-branch,branch-facts,diff,promote,discard,ts-sdk,errors,notes","url":"/docs#api/branches"},{"slug":"tenants","title":"API Reference: /api/tenants","category":"api","summary":"Admin-only tenant lifecycle: create, list, get, and soft-delete projects. Hard purge via /api/admin/purge.","headings":"create-tenant,list-tenants,get-tenant,delete-tenant,purge,ts-sdk,errors,notes","url":"/docs#api/tenants"},{"slug":"connectors","title":"API Reference: /api/connectors","category":"api","summary":"Register and manage source connectors. Ingest data via webhook events or outbound pull. Each record flows through the shared PII-mask / supersede / embed pipeline.","headings":"register,list,get-one,events,pull,delete,background-poll","url":"/docs#api/connectors"},{"slug":"factcheck","title":"API Reference: /api/factcheck","category":"api","summary":"Detect contradictions in the fact store: multiple active values, expired-but-active claims, and candidate conflicts. Read-only and tenant-scoped.","headings":"endpoint,query-params,response,example,ts-sdk,built-in-coexist,notes","url":"/docs#api/factcheck"},{"slug":"compact-enrich-consolidate","title":"API Reference: Compact, Enrich, Consolidate","category":"api","summary":"Three stateless-or-light-write utilities for budget trimming (compact), pre-write enrichment (enrich), and duplicate collapse (consolidate).","headings":"compact,enrich,consolidate,notes","url":"/docs#api/compact-enrich-consolidate"},{"slug":"stream-sse","title":"API Reference: /api/stream (SSE)","category":"api","summary":"Server-Sent Events feed of every fact assert and retract. Real-time change stream, tenant-scoped.","headings":"endpoint,event-format,example-curl,example-browser,replay,notes","url":"/docs#api/stream-sse"},{"slug":"stats-and-health","title":"API Reference: Stats and Health","category":"api","summary":"GET /api/health (public liveness probe) and GET /api/stats (tenant-scoped fact counts, entity count, version).","headings":"health,stats,notes","url":"/docs#api/stats-and-health"},{"slug":"overview-and-install","title":"CLI Overview and Install","category":"cli","summary":"Install and configure the abagraph CLI (npx abagraph): zero dependencies, Node 18 or later.","headings":"what-it-is,requirements,installation,configuration,quickstart-steps,output-format,error-handling,no-url-error,ci-and-scripts","url":"/docs#cli/overview-and-install"},{"slug":"commands","title":"CLI Command Reference","category":"cli","summary":"Complete reference for every abagraph CLI command with flags, arguments, and example output.","headings":"global-flags,init,assert,query,branch,connect,factcheck,agent-init,consolidate,help,common-mistakes","url":"/docs#cli/commands"},{"slug":"overview","title":"What is abagraph?","category":"concepts","summary":"The elevator pitch — one managed memory engine for AI agents instead of three duct-taped together.","headings":"elevator-pitch,four-surfaces,reading-path,common-mistakes","url":"/docs#concepts/overview"},{"slug":"vision","title":"North Star & Vision","category":"concepts","summary":"Why abagraph exists — the AIhouse bet and what winning looks like for a proprietary, managed memory database.","headings":"the-problem,the-bet,proprietary-and-managed,what-winning-looks-like,non-goals,common-mistakes","url":"/docs#concepts/vision"},{"slug":"mental-model","title":"Mental Model","category":"concepts","summary":"Facts, two timelines (valid vs record), supersede-not-delete, and coexistence.","headings":"facts-are-triples,two-timelines,supersede-not-delete,entities-and-edges,common-mistakes","url":"/docs#concepts/mental-model"},{"slug":"architecture","title":"Architecture","category":"concepts","summary":"How abagraph is layered — pure core algorithms, port-based extensibility, and four API surfaces over one storage layer.","headings":"layer-map,layer-rules,why-pure-core,port-based-extensibility,single-storage-layer,invariants","url":"/docs#concepts/architecture"},{"slug":"surfaces","title":"The Four Surfaces","category":"concepts","summary":"REST facts, schema'd entities, durable agent runs, and the MCP orchestrate tools — four ways to reach one managed memory engine.","headings":"pick-a-surface,facts,entities,durable-runs,mcp-orchestrate,common-mistakes","url":"/docs#concepts/surfaces"},{"slug":"what-is-abagraph","title":"What is abagraph? (Data Model Deep Dive)","category":"concepts","summary":"abagraph is a proprietary, managed database for the AI era — the system-of-record for agent memory, combining a bitemporal graph and a vector store in one engine.","headings":"the-problem,what-it-is,four-surfaces-overview,managed,design-intent","url":"/docs#concepts/what-is-abagraph"},{"slug":"the-four-surfaces","title":"The Four Surfaces (Detailed)","category":"concepts","summary":"A deeper look at the Facts REST API, schema'd entities, durable agent runs, and MCP orchestrate — four ways to reach one managed memory engine.","headings":"facts,entities,durable-runs,mcp-orchestrate","url":"/docs#concepts/the-four-surfaces"},{"slug":"facts-and-triples","title":"Facts and Triples","category":"concepts","summary":"The Fact struct field by field — subject, predicate, object, two timestamps, confidence, source, status, and tx.","headings":"the-fact-struct,fact-object,fact-status,fact-input,transient-facts,tx-cursor","url":"/docs#concepts/facts-and-triples"},{"slug":"bitemporal-time","title":"Bitemporal Time","category":"concepts","summary":"Two independent timelines per fact — valid time (world truth) vs. record time (when you learned it) — and how as_of makes time-travel honest.","headings":"why-two-timelines,valid-time,record-time,as-of-view,as-of-and-superseded,back-dating,temporal-trade-offs","url":"/docs#concepts/bitemporal-time"},{"slug":"entities-and-predicates","title":"Entities and Predicates","category":"concepts","summary":"EntityRef naming conventions, predicate semantics, and how subjects and objects form a walkable graph.","headings":"entity-refs,predicates,the-graph,entities-endpoint,naming-guidelines","url":"/docs#concepts/entities-and-predicates"},{"slug":"conflict-and-supersession","title":"Conflict and Supersession","category":"concepts","summary":"How abagraph handles contradictions — AutoSupersede closes the old fact and opens the new one in one atomic batch.","headings":"the-problem,how-supersede-works,conflict-policies,atomic-batch,tenant-local,compare-and-swap,duplicate-detection","url":"/docs#concepts/conflict-and-supersession"},{"slug":"candidates-and-confidence","title":"Candidates and Confidence","category":"concepts","summary":"The confidence field, the 0.75 default threshold, Candidate status, and how to promote a low-confidence fact.","headings":"the-confidence-field,the-threshold,candidate-behaviour,asserting-candidates,promoting-candidates,confidence-in-context,confidence-in-digest,related","url":"/docs#concepts/candidates-and-confidence"},{"slug":"datoms","title":"The Entity Data Model","category":"concepts","summary":"The schema'd, typed entity model — five-part tuples with declared value types and cardinality — for data that must be type-checked, not just claimed.","headings":"what-it-is,schema,value-types,cardinality,reading,when-to-use","url":"/docs#concepts/datoms"},{"slug":"branches","title":"Branches","category":"concepts","summary":"Instant forkable as_of overlays — create a branch, experiment with writes, diff against main, then promote or discard.","headings":"what-is-a-branch,naming,how-branches-work,rest-api,reconcile,diff-and-promote,isolation","url":"/docs#concepts/branches"},{"slug":"context-packets","title":"Context Packets","category":"concepts","summary":"One-call briefs for agents — how context() assembles ranked facts, graph walks, wiki pages, and corroboration signals into a token-bounded packet.","headings":"why-context-packets,context-packet-fields,context-request,turn-context-packet,mcp-build-context","url":"/docs#concepts/context-packets"},{"slug":"embeddings-and-search","title":"Embeddings and Search","category":"concepts","summary":"How abagraph embeds every fact, how ABAGRAPH_EMBEDDING selects a provider, and how kNN semantic search works.","headings":"how-embedding-works,providers,semantic-search,rest-search,pre-embedding","url":"/docs#concepts/embeddings-and-search"},{"slug":"the-agent-kernel","title":"Durable Agent Runs","category":"concepts","summary":"A durable, resumable agent loop where every step is saved atomically, so a crashed or paused run resumes from exactly where it stopped.","headings":"the-problem,three-records,the-loop,budget,outcomes,verifier","url":"/docs#concepts/the-agent-kernel"},{"slug":"tenancy-and-isolation","title":"Tenancy and Isolation","category":"concepts","summary":"How abagraph scopes reads and writes to one namespace per API key — subdomain routing, and the single isolation chokepoint.","headings":"tenant-field,auth-tokens,cookie-session,subdomain-routing,tenant-scope-chokepoint,conflict-isolation,tenant-ids,public-endpoints,mcp-namespaces","url":"/docs#concepts/tenancy-and-isolation"},{"slug":"embedding-providers","title":"Embedding Providers","category":"configuration","summary":"Configure hash, OpenAI, or custom HTTP embedding providers to enable semantic search and kNN recall in abagraph.","headings":"hash,openai,http,disabled","url":"/docs#configuration/embedding-providers"},{"slug":"error-reference","title":"Error Reference","category":"errors","summary":"Every error code abagraph can return, its HTTP status, cause, and fix.","headings":"error-envelope,not-found,conflict,compare-failed,schema-invalid,storage-corruption,io,closed,method-not-allowed,typescript-sdk,curl-examples,error-code-table","url":"/docs#errors/error-reference"},{"slug":"overview","title":"Examples Overview","category":"examples","summary":"Index of cookbook recipes showing how to use the abagraph REST API and TypeScript SDK in real-world patterns.","headings":"recipes,prerequisites,environment-setup","url":"/docs#examples/overview"},{"slug":"recipe-agent-memory-loop","title":"Recipe: Agent Memory Loop","category":"examples","summary":"How to load context, run a task, and persist the result across agent turns using the TypeScript SDK createAgentMemory helper.","headings":"audience,minimal-example,step-by-step,multi-turn-loop,compacting-context,periodic-consolidation,logging","url":"/docs#examples/recipe-agent-memory-loop"},{"slug":"recipe-ingest-a-csv","title":"Recipe: Ingest a CSV","category":"examples","summary":"Bulk-assert structured CSV data into abagraph via the REST digest endpoint or the TypeScript SDK.","headings":"scenario,approach-rest,approach-typescript,per-fact-metadata,handling-updates","url":"/docs#examples/recipe-ingest-a-csv"},{"slug":"homepage","title":"Welcome to abagraph Docs","category":"getting-started","summary":"Start here — what abagraph is, who it is for, and the fastest path to your first result.","headings":"fastest-path,three-steps,mcp-in-60s,section-map,core-concepts","url":"/docs#getting-started/homepage"},{"slug":"quickstart","title":"Getting Started","category":"getting-started","summary":"Connect to abagraph and make your first API calls in 15 minutes.","headings":"get-your-key,assert-a-fact,query-back,context-packet,talk-to-mcp,first-curl,common-mistakes","url":"/docs#getting-started/quickstart"},{"slug":"quickstart-rest","title":"Quickstart: REST API","category":"getting-started","summary":"Make your first five curl calls against abagraph: health, assert a fact, query it back, request a context packet, and read the SSE stream.","headings":"prerequisites,set-credentials,health-check,assert-a-fact,contradict-and-time-travel,query-facts,context-packet,sse-stream,explain,next-steps","url":"/docs#getting-started/quickstart-rest"},{"slug":"install-sdk","title":"Install the TypeScript SDK","category":"getting-started","summary":"Install @abagraph/client, create a typed client, assert a fact, and query it back in Node.js.","headings":"install,create-a-client,assert-and-query,atomic-transact,request-context,error-handling,agent-memory,runner-plugin,next-steps","url":"/docs#getting-started/install-sdk"},{"slug":"aba-terminal","title":"aba — the terminal UI","category":"getting-started","summary":"Install and drive abagraph from your terminal with aba. Connect, ask cited questions, digest raw data into facts, time-travel, and pull context packets — a pure HTTP client that runs your own local agent. The fastest way to onboard a developer onto abagraph.","headings":"install,connect,first-run,explore,digest,context,time-travel,security,where-next","url":"/docs#getting-started/aba-terminal"},{"slug":"install-cli","title":"Install the CLI","category":"getting-started","summary":"Install @abagraph/cli via npx or npm, run abagraph init to connect to a server, and use the core commands: assert, query, branch, factcheck, and agent init.","headings":"install,init,assert,query,branch,factcheck,connect,agent-init,consolidate,env-vars,global-flags,all-commands,next-steps","url":"/docs#getting-started/install-cli"},{"slug":"authentication","title":"Authentication","category":"getting-started","summary":"Configure bearer tokens, cookie sessions, and subdomain-to-tenant routing for abagraph. Understand how tenant isolation works and which endpoints are always public.","headings":"how-auth-works,bearer-tokens,cookie-session,subdomain-routing,public-endpoints,mcp-auth,production-notes,next-steps","url":"/docs#getting-started/authentication"},{"slug":"your-first-context-packet","title":"Your First Context Packet","category":"getting-started","summary":"Understand what POST /api/context returns, how to read each field, and how to inject a context packet into an LLM prompt.","headings":"what-is-a-context-packet,prerequisites,the-request,the-response,inject-into-prompt,time-travel,context-via-mcp,common-mistakes,next-steps","url":"/docs#getting-started/your-first-context-packet"},{"slug":"the-graph-model","title":"The Graph Model","category":"graph","summary":"How abagraph represents entities as typed nodes and facts as edges, and how the graph view is derived from the fact store.","headings":"definition,why-it-matters,mental-model,entities,edges,graph-endpoint,fact-status-and-graph,tradeoffs","url":"/docs#graph/the-graph-model"},{"slug":"walking-the-graph","title":"Walking the Graph","category":"graph","summary":"BFS graph traversal with direction, depth, edge-type, and time filters via the REST API and TypeScript SDK.","headings":"how-walk-works,options,response,time-travel-walk,rest-example,ts-sdk-example,explain,common-mistakes","url":"/docs#graph/walking-the-graph"},{"slug":"wiki-links-and-citations","title":"Wiki Links and Citations","category":"graph","summary":"How the wiki layer parses wiki-markup links into graph edges and attaches source citations as provenance facts.","headings":"overview,page,wiki-link-syntax,what-save-writes,rest-example,outgoing-references,citations,versioning,common-mistakes","url":"/docs#graph/wiki-links-and-citations"},{"slug":"assert-a-fact","title":"Guide: Assert a Fact","category":"guides","summary":"Introduce the subject-predicate-object triple model and assert your first fact over the REST API.","headings":"what-is-a-fact,assert-a-fact-step,query-it-back,contradict-and-supersede,set-valued-predicates,next-steps","url":"/docs#guides/assert-a-fact"},{"slug":"assert-and-query","title":"Guide: Assert and Query Facts","category":"guides","summary":"Assert subject-predicate-object triples over REST or the TypeScript SDK and retrieve them with pattern filters.","headings":"prerequisites,assert-a-fact-rest,query-facts-rest,assert-and-query-ts,conflict-and-supersede,set-valued-predicates,retract,verify,common-mistakes","url":"/docs#guides/assert-and-query"},{"slug":"atomic-transactions","title":"Guide: Atomic Transactions","category":"guides","summary":"Write multiple facts atomically with compare guards to prevent lost-update races.","headings":"when-to-use,request-shape,minimal-example,compare-failed,typescript-sdk,multi-fact-atomic-write,retract-and-assert-atomically,pii-note,verify,common-mistakes","url":"/docs#guides/atomic-transactions"},{"slug":"build-agent-context","title":"Guide: Build Agent Context","category":"guides","summary":"Assemble a task-ready, token-bounded context packet from the graph in one call using the context endpoint or the build_context MCP tool.","headings":"what-is-a-context-packet,prerequisites,minimal-example,request-fields,typescript-sdk,agent-memory-helper,mcp-tool,corroboration,time-pinned-packet,verify","url":"/docs#guides/build-agent-context"},{"slug":"ingest-with-digest","title":"Guide: Ingest with Digest","category":"guides","summary":"Load raw text or pre-extracted triples into the graph with PII masking, BYOK extraction, and a confidence judge.","headings":"two-modes,prerequisites,facts-mode,raw-content-mode,pii-masking,candidate-facts,typescript-sdk,agent-memory-digest,verify,common-mistakes","url":"/docs#guides/ingest-with-digest"},{"slug":"connect-data-sources","title":"Guide: Connect Data Sources","category":"guides","summary":"Wire external systems into a tenant — get ready-to-paste endpoints from /api/connect, then pull or push facts with scrape and digest for continuous ingestion.","headings":"what-is-connect,prerequisites,get-endpoints,pull-scrape,register-connector,ingest-via-pull,list-and-inspect,automated-polling,push-digest,stream,typescript-sdk,verify,common-mistakes","url":"/docs#guides/connect-data-sources"},{"slug":"branch-and-merge","title":"Guide: Branch and Merge","category":"guides","summary":"Fork the graph instantly with a named branch, write to the overlay, diff against the parent, then promote or discard.","headings":"what-is-a-branch,prerequisites,create-a-branch,write-to-branch,read-from-branch,diff,promote,discard,typescript-sdk,list-branches,verify,common-mistakes","url":"/docs#guides/branch-and-merge"},{"slug":"fact-check-contradictions","title":"Guide: Fact-Check Contradictions","category":"guides","summary":"Detect competing active facts, expired claims, and candidate conflicts across your graph in one read-only call.","headings":"when-to-use,contradiction-kinds,minimal-example,filter-by-subject-or-predicate,coexist-override,typescript-sdk,resolve-contradictions,verify,common-mistakes","url":"/docs#guides/fact-check-contradictions"},{"slug":"time-travel-queries","title":"Guide: Time-Travel Queries","category":"guides","summary":"Query the graph as it stood at any past timestamp using as_of to see superseded and historical facts.","headings":"how-bitemporal-works,time-travel-over-rest,query-superseded-facts,whats-changed-mcp,time-pinned-context,tx-cursor,verify,common-mistakes","url":"/docs#guides/time-travel-queries"},{"slug":"compact-and-enrich-context","title":"Guide: Compact and Enrich Context","category":"guides","summary":"Trim a fact list to a token budget with compact, and pre-flight check for PII and conflicts with enrich before writing.","headings":"when-to-use-compact,compact-example,compact-typescript,compact-agent-memory,when-to-use-enrich,enrich-example,enrich-typescript,mcp-compact,verify,common-mistakes","url":"/docs#guides/compact-and-enrich-context"},{"slug":"persist-agent-memory","title":"Guide: Persist Agent Memory","category":"guides","summary":"Wire abagraph into an agent loop using the per-turn loadContext/remember pattern or the memoryPlugin runner hook.","headings":"overview,prerequisites,per-turn-loop,turn-helper,memory-plugin,feedback-fields,rust-kernel,verify,common-mistakes","url":"/docs#guides/persist-agent-memory"},{"slug":"storage","title":"Storage Layer","category":"layers","summary":"The durable fact store that survives restarts and rebuilds its read indexes on open.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/storage"},{"slug":"facts","title":"Facts & Bitemporal Time","category":"layers","summary":"The fact = a triple plus two independent time axes, confidence, source, and status — so you can ask what was true and what you knew, separately.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/facts"},{"slug":"conflict","title":"Conflict & Supersession","category":"layers","summary":"A contradicting assert atomically closes the old fact and opens the new one, so a functional predicate always has exactly one active value — and the old value stays queryable.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/conflict"},{"slug":"indexes","title":"Indexes & Query Planning","category":"layers","summary":"Point queries skip the full table by hitting an inverted index; add ?explain=1 to see exactly which index ran and how many candidates it scanned.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/indexes"},{"slug":"vectors","title":"Vectors & Semantic Search","category":"layers","summary":"Every fact carries an optional embedding; semantic search ranks facts by meaning with cosine kNN, scoped per tenant and per point in time.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/vectors"},{"slug":"graph","title":"Graph & Walk","category":"layers","summary":"Facts whose object is an entity are typed edges; breadth-first walk follows them by direction, edge-type, and point in time without crossing tenants.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/graph"},{"slug":"context","title":"Context Assembly","category":"layers","summary":"One call returns a compact, confidence-ranked, token-budgeted packet of facts plus a ready-to-paste system prompt — instead of dumping raw memory into the model.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/context"},{"slug":"ingestion","title":"Ingestion & Digest","category":"layers","summary":"Turn raw text, a company name, or a live data source into provenance-bearing facts over three REST endpoints.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/ingestion"},{"slug":"security","title":"Security & Governance","category":"layers","summary":"The request boundary — bearer auth bound to a subdomain, namespace isolation on every read, partial PII masking, and concurrency leases.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/security"},{"slug":"observability","title":"Observability & Logs","category":"layers","summary":"One JSON line per event to the process log, a recent operational window, tenant data counts, and a liveness probe.","headings":"what,example,customize,logs,isolation,status","url":"/docs#layers/observability"},{"slug":"glossary","title":"Glossary","category":"reference","summary":"Every term in the abagraph docs, defined in one plain-English clause, alphabetical.","headings":"","url":"/docs#reference/glossary"},{"slug":"release-notes","title":"Release Notes","category":"reference","summary":"Current capabilities of abagraph v0.1.0 across its four API surfaces.","headings":"v0-1-0","url":"/docs#reference/release-notes"},{"slug":"durable-workflows","title":"Durable Workflows & DAGs","category":"roadmap","summary":"Durable, resumable agent workflows and DAGs over agent memory — planned on Temporal, with the reliability rules baked in.","headings":"what,quick-ref,status-today,how-it-will-work","url":"/docs#roadmap/durable-workflows"},{"slug":"event-trigger-digestion","title":"Event- & Trigger-Based Digestion","category":"roadmap","summary":"Memory that updates itself — ingestion driven by new data, a schedule, or a webhook, beyond today's manual digest.","headings":"triggers,example,today","url":"/docs#roadmap/event-trigger-digestion"},{"slug":"customer-governance","title":"Customer-Defined Governance & Policy-as-Code","category":"roadmap","summary":"Define your own access and governance rules as data — permission-based, deny-by-default, tenant-isolated, with maker-checker on destructive admin actions.","headings":"principles,permission-vs-role,fail-closed,isolation,maker-checker","url":"/docs#roadmap/customer-governance"},{"slug":"source-available","title":"Source-Available Components","category":"roadmap","summary":"abagraph is proprietary today; making select components source-available once the product is ready is on the roadmap — no dates, no license commitment.","headings":"status,what-this-means,build-against-the-api","url":"/docs#roadmap/source-available"},{"slug":"overview","title":"SDK Overview","category":"sdk","summary":"Introduction to @abagraph/client — the zero-dependency TypeScript SDK for abagraph. Install, configure, and make your first call in minutes.","headings":"what-is-the-sdk,requirements,install,quick-start,entry-points,authentication,error-handling,next-steps","url":"/docs#sdk/overview"},{"slug":"client-reference","title":"Client Reference","category":"sdk","summary":"Complete method reference for the AbagraphClient returned by createClient — signatures, parameters, return types, and examples.","headings":"create-client,health,assert,retract,query,transact,context,search,graph,walk,factcheck,connect,digest,compact,enrich,consolidate,tenants,branches,next-steps","url":"/docs#sdk/client-reference"},{"slug":"agent-memory","title":"Agent Memory","category":"sdk","summary":"createAgentMemory wraps the abagraph client with frozen-snapshot semantics, structured logging, and a convenience turn helper for LLM agent loops.","headings":"overview,install,create-agent-memory,load-context,remember,digest-method,compact-method,enrich-method,consolidate-method,turn,log-entry,production-example,next-steps","url":"/docs#sdk/agent-memory"},{"slug":"plugin","title":"Memory Plugin","category":"sdk","summary":"memoryPlugin is an ADK-style runner-level hook that wires abagraph memory into every agent session automatically — install once, no per-agent wiring needed.","headings":"overview,import,memory-plugin-factory,on-session-start,on-session-end,install,per-session-usage,pre-extracted-facts,time-travel,difference-from-agent-memory,next-steps","url":"/docs#sdk/plugin"},{"slug":"types-and-errors","title":"Types and Errors","category":"sdk","summary":"Complete interface and type reference for @abagraph/client, including AbagraphError and all server error codes.","headings":"import-types,abagraph-error,error-codes,core-types,agent-types,plugin-types,next-steps","url":"/docs#sdk/types-and-errors"},{"slug":"define-your-policy","title":"Define Your Own Policy","category":"security","summary":"The policy knobs you control today — namespace isolation, per-tenant keys, confidence threshold, conflict policy, BYOK, and PII masking.","headings":"quick-reference,the-structural-rule,per-tenant-keys,confidence-threshold,conflict-policy,byok,pii-masking-scope,good-bad,pre-query-checklist,policy-as-code","url":"/docs#security/define-your-policy"},{"slug":"authentication-and-authorization","title":"Authentication and Authorization","category":"security","summary":"How the hosted service authenticates callers with per-tenant bearer keys and cookie sessions, why denials return 404, and which endpoints are public.","headings":"key-kinds,auth-resolution,bearer-example,cookie-sessions,subdomain-enforcement,deny-as-404,public-endpoints,errors","url":"/docs#security/authentication-and-authorization"},{"slug":"tenant-isolation","title":"Tenant Isolation","category":"security","summary":"Why the namespace is the only isolation boundary, how every read filters on it, and why per-query filtering is the anti-pattern.","headings":"what-is-a-namespace,the-chokepoint,write-stamping,read-filtering,anti-pattern,conflict-locality,mcp-namespaces,branches,tenant-lifecycle,related","url":"/docs#security/tenant-isolation"},{"slug":"pii-masking","title":"PII Masking","category":"security","summary":"How the service detects and masks emails, phones, SSNs, and card numbers before a value is embedded or stored — and what it does not cover.","headings":"why-mask-before-storage,detected-kinds,mask-strategies,what-is-masked,example,receipt,limitations","url":"/docs#security/pii-masking"},{"slug":"byok-model-keys","title":"BYOK Model Keys","category":"security","summary":"How the service handles bring-your-own model keys so they are never persisted, never logged, and live only for one outbound call.","headings":"what-byok-means,the-model-object,default-endpoints,key-lifecycle,error-scrubbing,digest-endpoint,ask-endpoint,openai-compatible,mcp-tools,what-is-not-byok","url":"/docs#security/byok-model-keys"},{"slug":"overview","title":"Troubleshooting Overview","category":"troubleshooting","summary":"Index of troubleshooting guides: authentication failures, conflict errors, schema validation, empty search results, and tenant isolation problems.","headings":"quick-diagnosis,general-checklist,log-events,guides-in-this-section","url":"/docs#troubleshooting/overview"},{"slug":"authentication-failures","title":"Authentication Failures (401/404)","category":"troubleshooting","summary":"Diagnose and resolve bearer token rejections, session cookie failures, and subdomain enforcement errors that return 404 instead of 401.","headings":"symptom,causes,diagnosis,resolution,verify,prevention","url":"/docs#troubleshooting/authentication-failures"},{"slug":"conflict-and-compare-failed","title":"Conflict and CompareFailed (409)","category":"troubleshooting","summary":"Diagnose and resolve 409 Conflict and 409 CompareFailed errors from /api/facts and /api/transact, including conflict policy configuration and lost-race handling.","headings":"symptom,causes,diagnosis,resolution,verify,prevention","url":"/docs#troubleshooting/conflict-and-compare-failed"},{"slug":"schema-invalid","title":"Schema Invalid (400)","category":"troubleshooting","summary":"Diagnose and fix 400 SchemaInvalid errors caused by malformed JSON, missing required fields, invalid entity references, or unparseable fact values.","headings":"symptom,causes,diagnosis,resolution,verify,prevention","url":"/docs#troubleshooting/schema-invalid"},{"slug":"nothing-recalled","title":"Nothing Recalled (Empty Search Results)","category":"troubleshooting","summary":"Diagnose why /api/search and the MCP recall tool return zero results, including embedding provider configuration, missing facts, and namespace mismatches.","headings":"symptom,causes,diagnosis,resolution,verify,prevention","url":"/docs#troubleshooting/nothing-recalled"}]