MindGraphDocs

API Reference

The MindGraph Cloud API combines graph primitives, cognitive-layer endpoints, scoped-corpus synthesis, and managed autonomous agents.

Base URL: https://api.mindgraph.cloud. All authenticated endpoints require a Bearer token (API key or JWT) in the Authorization header.

Errors

All error responses return a JSON body with an error field and optionally a code field for programmatic handling.

// Error response format
{ "error": "descriptive message", "code": "error_code" }
StatusMeaningExample
400Bad request — missing or invalid fields{"error": "label required for create", "code": "missing_field"}
401Missing or invalid auth token{"error": "missing Authorization: Bearer <token> header"}
403Valid token, insufficient permissions{"error": "API key expired"}
404Resource not found{"error": "node abc123 not found"}
422Validation error (e.g., unknown props fields){"error": "unknown fields for Claim: foo", "code": "unknown_props_fields"}
500Internal server error{"error": "internal error"}

Pagination

List endpoints (GET /nodes, POST /retrieve with layer/recent) support pagination via limit and offset parameters.

// Query params (GET) or body fields (POST)
{ "limit": 100, "offset": 0 }

// Paginated response
{ "items": [...], "has_more": true }

Health

GET/healthHealth check (unauthenticated)

Authentication

POST/v1/auth/signupCreate a new account
POST/v1/auth/loginSign in, returns JWT + refresh token
POST/v1/auth/refreshRefresh an expired JWT

Management

GET/v1/accountGet current user account
POST/v1/orgsCreate an organization
GET/v1/orgsList your organizations
GET/v1/orgs/{org_id}/membersList organization members
POST/v1/orgs/{org_id}/membersInvite a member
DELETE/v1/orgs/{org_id}/members/{user_id}Remove a member
POST/v1/api-keysCreate an API key
GET/v1/api-keysList API keys
DELETE/v1/api-keys/{id}Revoke an API key
GET/v1/usageGet usage stats

Billing

GET/v1/billing/plansList available plans
GET/v1/billing/subscriptionGet current subscription
POST/v1/billing/subscribeSubscribe to a plan

CRUD Layer (~59 routes)

Standard graph operations — create, read, update, delete nodes and edges.

Stats

GET/statsGraph-wide statistics (counts by type, layer, etc.)

Generic Node CRUD

POST/nodeAdd a generic node with full NodeProps
GET/node/{uid}Get a node by UID
PATCH/node/{uid}Update node fields and/or props
DELETE/node/{uid}Tombstone cascade (node + connected edges)
GET/node/{uid}/historyFull version history for a node
GET/node/{uid}/history/{version}Node snapshot at a specific version
POST /node request/response
// Request
{
  "label": "User prefers dark mode",    // required
  "node_type": "Preference",            // optional (inferred from props._type)
  "summary": "Dark mode preference",    // optional
  "props": {                            // optional - NodeProps (serde-tagged)
    "_type": "Preference",
    "key": "theme",
    "value": "dark"
  },
  "agent_id": "my-agent"               // optional (defaults to server default)
}

// Response (201 Created)
{
  "uid": "abc123",
  "label": "User prefers dark mode",
  "summary": "Dark mode preference",
  "node_type": "Preference",
  "layer": "memory",
  "confidence": 0.5,
  "salience": 0.5,
  "props": { "_type": "Preference", "key": "theme", "value": "dark" },
  "created_at": 1709750400.0,
  "updated_at": 1709750400.0,
  "tombstone_at": null,
  "version": 1
}

Edge CRUD

POST/linkAdd a typed edge (simple, default props)
POST/edgeAdd an edge with full EdgeProps
PATCH/edge/{uid}Update edge weight and/or props
DELETE/edge/{uid}Tombstone a single edge
GET/edge/{uid}/historyFull version history for an edge
GET/edges?from_uid=&edge_type=Get edges from a node, optionally filtered by type
GET/edge/between?from_uid=&to_uid=&edge_type=Get edges between two specific nodes

Search & Filter

POST/searchFull-text search across labels and summaries
GET/nodes?layer=&type=&agent=&limit=&offset=Filter and paginate nodes
POST /search request/response
// Request
{
  "query": "dark mode",     // required - search text
  "node_type": "Preference", // optional - filter by type
  "layer": "memory",        // optional - filter by layer
  "limit": 10               // optional (default 100)
}

// Response (array of SearchResult)
[
  {
    "uid": "abc123",
    "label": "User prefers dark mode",
    "summary": "Dark mode preference",
    "node_type": "Preference",
    "score": 0.95
  }
]

Traversal

GET/chain/{uid}?max_depth=Reasoning chain traversal
GET/neighborhood/{uid}?depth=Neighborhood BFS traversal
GET/path?from=&to=&max_depth=Find shortest path between nodes
POST/subgraphExtract a subgraph from one or more starting nodes

Agent & Entity

GET/agent/{agent_id}/nodesGet all nodes created by an agent
POST/entities/mergeMerge two entities (retarget edges, tombstone duplicate)
POST/aliasAdd an alias for entity resolution
GET/aliases/{uid}Get all aliases for a node
GET/resolve?text=&limit=Exact + fuzzy alias resolution

Lifecycle

GET/exportExport graph as a typed snapshot
POST/importImport a typed snapshot (additive merge)
POST/decayApply salience decay + optional auto-tombstone
POST/purgeHard-delete old tombstoned data

Embeddings

POST/embeddings/configureConfigure embedding model, dimensions, and distance metric
POST/embeddings/searchVector similarity search with a raw embedding vector
POST/embeddings/search-textVector similarity search from text (auto-embeds the query)
PUT/node/{uid}/embeddingSet or replace the embedding vector for a node
GET/node/{uid}/embeddingGet the embedding vector for a node
DELETE/node/{uid}/embeddingDelete the embedding vector for a node

Batch Operations

POST/batchCreate multiple nodes and edges in a single atomic request
POST/nodes/batchFetch multiple nodes by UID in a single request
POST/nodes/deleteBatch delete nodes by UID list or agent ID
POST/edges/batchFetch all edges between a set of node UIDs

Epistemic Queries

GET/goalsGet all active (non-tombstoned) goals
GET/decisionsGet all open decisions
GET/questionsGet all open questions
GET/claims/weakGet claims with low confidence
GET/contradictionsGet unresolved contradictions
GET/approvals/pendingGet pending approval requests

Cognitive Endpoints (18 routes)

Cognitive endpoints are the primary way to interact with MindGraph. Each endpoint accepts an action field that selects the operation, and creates the right node type with proper edges and metadata automatically. Use these instead of the generic CRUD endpoints whenever possible — they ensure your data is correctly structured and connected.

For example, instead of creating a bare Claim node via POST /node, use POST /epistemic/argument to create a claim with evidence, warrant, and linking edges in a single call. This produces a richer, more useful knowledge graph.

Reality Layer

Capture external information — sources, snippets, observations — and manage entity identity. The Reality layer includes first-class types for Person, Organization, Nation, Event, Place, and Concept, with Entity serving as a fallback for other named things (technologies, products, etc.).

POST/reality/captureCapture a source, snippet, or observation into the Reality layer
POST/reality/entityCreate, alias, resolve, fuzzy-resolve, merge, or relate entities

Epistemic Layer

Build structured knowledge — claims with evidence, hypotheses, theories, concepts, patterns, and formal structures.

POST/epistemic/argumentConstruct a full argument: claim + evidence + warrant + linking edges
POST/epistemic/inquiryPropose hypotheses, theories, paradigms, anomalies, assumptions, or questions
POST/epistemic/structureDefine concepts, patterns, mechanisms, models, analogies, theorems, or equations

Intent Layer

Track goals, projects, milestones, and structured decision-making.

POST/intent/commitmentCreate goals, projects, or milestones with parent/motivation edges
POST/intent/deliberationOpen decisions, add options/constraints, and resolve decisions

Action Layer

Model workflows, procedures, affordances, and risk assessments.

POST/action/procedureBuild flows with ordered steps, affordances, and control nodes
POST/action/riskAssess risks or retrieve existing risk assessments

Memory Layer

Manage sessions, traces, journal entries, summaries, preferences, and memory policies.

POST/memory/sessionOpen/close sessions, record traces, and write journal entries
POST/memory/distillCreate a summary that distills multiple source nodes
POST/memory/configSet/get preferences and memory policies

Agent Layer

Plan tasks, govern agent behavior, and track execution lifecycle. These are the cognitive-layer agent primitives (graph nodes for plans, policies, executions). For managed autonomous agents, see Agents and the /v1/agents/* section below.

POST/agent/planCreate tasks, plans, ordered steps; update status; query plans
POST/agent/governanceCreate policies, set safety budgets, request/resolve approvals
POST/agent/executionTrack execution lifecycle (start, complete, fail) and register agents

Cross-cutting

Retrieve, traverse, and evolve the graph.

POST/retrieveUnified retrieval: text/semantic/hybrid search, active goals, open questions, weak claims
POST/traverseGraph traversal: reasoning chain, neighborhood, shortest path, subgraph extraction
POST/evolveLifecycle: update fields, tombstone, restore, decay salience, view history, snapshot
Note:All cognitive layer endpoints accept an action field that determines the specific operation. See the Cognitive Endpoints page for the full list of actions, required fields, and request/response examples for each endpoint.

Ingestion & Retrieval

Chunk-based document ingestion with automatic LLM extraction. Documents default to Reality + Epistemic (2 passes); single chunks to Reality + Epistemic + Memory (3 passes); session transcripts to Reality + Epistemic + Intent + Action + Memory (5 passes). Callers can override via the layers parameter. Requires OPENAI_API_KEY to be configured on the server.

POST/ingest/chunkSynchronous single-chunk ingestion with extraction
POST/ingest/documentAsync document ingestion — chunks, extracts, returns job ID
POST/ingest/sessionAsync session transcript ingestion (Reality + Epistemic + Intent + Action + Memory)
POST/retrieve/contextSemantic retrieval — returns articles, graph nodes with provenance, and edges
GET/jobsList all ingestion jobs
GET/jobs/{'{id}'}Poll job status for async ingestion
POST/jobs/{'{id}'}/cancelCancel a pending or running ingestion job
POST/ingest/resume/{'{doc_uid}'}Resume a stuck document ingestion
POST/ingest/cleanupClean up orphaned chunks with no parent document
DELETE/ingest/document/{'{uid}'}Delete a document and cascade-remove all its chunks and extracted nodes
POST/ingest/embed-allGenerate embeddings for all nodes that don't have one
POST/clearFull graph reset — cancels all jobs, deletes all data, reclaims disk space
Ingestion example
# Ingest a single chunk (synchronous)
curl -X POST /ingest/chunk \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Einstein developed general relativity in 1915...",
    "layers": ["reality", "epistemic"]
  }'

# Response:
# { "chunk_uid": "...", "nodes_created": 13, "edges_created": 23, ... }

# Ingest a full document (async — returns job ID)
curl -X POST /ingest/document \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Chapter 1: ...",
    "title": "My Document",
    "document_type": "article"
  }'

# Response: { "job_id": "...", "document_uid": "..." }

# Poll job status
curl /jobs/<job_id>

# Retrieve context with semantic search
curl -X POST /retrieve/context \
  -H "Content-Type: application/json" \
  -d '{ "query": "What did Einstein discover?", "node_limit": 10, "article_limit": 3 }'

Projects & Synthesis

Scoped-corpus synthesis: mine cross-document signals for a Project node and turn the top idea clusters into Article nodes. See the Projects guide for concepts and examples.

GET/synthesis/signals/{'{project_uid}'}Mine cross-document signals (entity bridges, claim hubs, theory gaps, concept clusters, analogies, dialectical pairs) — no LLM
POST/synthesis/run/{'{project_uid}'}Spawn a background synthesis job that generates Article nodes; returns job_id

Managed Agents

Cloud-only endpoints for managing autonomous research agents (Pro plan and higher). These live under /v1/agents/* and are hosted by mindgraph-cloud, not the graph API. See the Agents guide for a full walkthrough.

POST/v1/agentsCreate an agent (Pro+ only)
GET/v1/agentsList agents
GET/v1/agents/{'{id}'}Get one agent
PATCH/v1/agents/{'{id}'}Update agent fields
POST/v1/agents/{'{id}'}/archiveArchive (soft-delete) an agent
GET/v1/agents/templatesList agent templates
GET/v1/agents/{'{id}'}/workActive sessions, pending decisions, upcoming schedules
GET/v1/agents/{'{id}'}/articlesWiki articles authored by this agent
POST/v1/agents/{'{id}'}/resolve-decisionApprove or reject a pending decision
POST/v1/agents/sessionsCreate a new session
GET/v1/agents/sessionsList sessions (filter by agent_id)
GET/v1/agents/sessions/{'{sid}'}Get one session
POST/v1/agents/sessions/{'{sid}'}/messageSend a message to an agent session
POST/v1/agents/sessions/{'{sid}'}/interruptInterrupt in-flight inference
POST/v1/agents/sessions/{'{sid}'}/archiveArchive a session
GET/v1/agents/sessions/{'{sid}'}/eventsList past events for a session
GET/v1/agents/sessions/{'{sid}'}/streamSubscribe to live events (Server-Sent Events)
GET/v1/agents/sessions/{'{sid}'}/pending-inputGet any pending input request from the agent
POST/v1/agents/sessions/{'{sid}'}/respondRespond to a pending input request
POST/v1/agents/schedulesCreate a cron-triggered schedule
GET/v1/agents/schedulesList schedules
PATCH/v1/agents/schedules/{'{id}'}Update a schedule
DELETE/v1/agents/schedules/{'{id}'}Delete a schedule
GET/v1/agents/activityOrg-wide agent activity feed
GET/v1/agents/activity/wsAgent activity WebSocket for live dashboards

Node Props Reference

Every node type has a typed props object. When using cognitive endpoints, pass these fields inside the props field of the request body. All fields are optional unless noted.

Reality Layer

Source (8 fields)
FieldTypeDescription
source_typestringType of source (webpage, book, api, etc.)
uristringURL or identifier for the source
titlestringTitle of the source
content_hashstring?Hash of the content for deduplication
fetched_atnumber?Unix timestamp when fetched
mime_typestring?MIME type of the content
content_lengthnumber?Content length in bytes
domainstring?Domain of the source URL
Snippet (5 fields)
FieldTypeDescription
contentstringThe extracted text
snippet_typestringType of snippet (quote, passage, etc.)
source_locationstring?Location within the source
char_offset_startnumber?Start character offset
char_offset_endnumber?End character offset
Person (4 fields)
FieldTypeDescription
full_namestringFull name of the person
descriptionstring?Description or role
identifiersobject?External identifiers (email, linkedin, etc.)
attributesobject?Key-value attributes
Organization (4 fields)
FieldTypeDescription
org_typestring?Type of organization (company, nonprofit, government, etc.)
descriptionstring?Description of the organization
identifiersobject?External identifiers (website, ticker, etc.)
attributesobject?Key-value attributes
Nation (3 fields)
FieldTypeDescription
descriptionstring?Description of the nation
identifiersobject?External identifiers (ISO code, etc.)
attributesobject?Key-value attributes (population, capital, etc.)
Event (3 fields)
FieldTypeDescription
event_datestring?ISO 8601 date or date range
descriptionstring?Description of the event
attributesobject?Key-value attributes
Place (3 fields)
FieldTypeDescription
descriptionstring?Description of the place
identifiersobject?External identifiers (coordinates, etc.)
attributesobject?Key-value attributes
Concept (3 fields)
FieldTypeDescription
descriptionstring?Description of the concept
domainstring?Domain or field the concept belongs to
attributesobject?Key-value attributes
Entity (fallback) (5 fields)
FieldTypeDescription
entity_typestringType of entity (technology, product, etc.) — use Person, Organization, Nation, Event, Place, or Concept for those categories instead
canonical_namestringCanonical name for resolution
descriptionstring?Description of the entity
identifiersobjectExternal identifiers (website, github, etc.)
attributesobjectKey-value attributes
Observation (4 fields)
FieldTypeDescription
observation_typestringType (empirical, behavioral, etc.)
contentstringThe observation text
session_uidstring?Session this observation was made in
timestampnumber?Unix timestamp of the observation
Document (17 fields)
FieldTypeDescription
titlestringDocument title
document_typestringType (article, transcript, note, pdf)
source_uristring?Source URL or path
mime_typestring?MIME type
content_lengthnumber?Content length in bytes
chunk_countnumber?Number of chunks produced
processed_atnumber?Unix timestamp of processing completion
processing_statusstringStatus (pending, processing, completed, partial, failed)
authorsstring[]?Document authors
abstract_textstring?Abstract or summary text
doistring?Digital Object Identifier
publication_datestring?Publication date (ISO 8601)
journalstring?Journal or publication name
keywordsstring[]?Keywords or tags
citation_countnumber?Citation count
arxiv_idstring?arXiv identifier
languagestring?Document language
Chunk (8 fields)
FieldTypeDescription
contentstringThe chunk text content
chunk_typestringType (document, transcript)
chunk_indexnumberIndex within parent document
char_offset_startnumber?Start character offset in original
char_offset_endnumber?End character offset in original
token_count_estimatenumber?Estimated token count
processing_statusstringStatus (pending, processing, completed, failed)
extraction_countnumber?Number of nodes extracted from this chunk

Epistemic Layer

Claim (10 fields)
FieldTypeDescription
contentstringThe claim statement
claim_typestring?Type (factual, normative, causal, etc.)
certainty_degreenumber?0-1 certainty rating
truth_statusstring?Status (accepted, disputed, etc.)
scopestring?Scope of the claim
quantitative_valuenumber?Numeric value if applicable
unitstring?Unit for the quantitative value
uncertainty_rangestring?Range of uncertainty
event_datestring?ISO 8601 date or date range of the claimed event
sourcestring?Origin: "document", "session", "chunk", or null (user-created)
Evidence (9 fields)
FieldTypeDescription
descriptionstringDescription of the evidence
evidence_typestring?Type (empirical, statistical, anecdotal, etc.)
quantitative_valuenumber?Numeric value
unitstring?Unit for the value
sample_sizenumber?Sample size
statistical_significancenumber?P-value or significance
is_negativebooleanWhether this is negative evidence (default false)
original_expectationstring?What was expected
source_urlstring?URL of the evidence source
Warrant (5 fields)
FieldTypeDescription
principlestringThe warrant principle
warrant_typestring?Type (logical, empirical, etc.)
explicit_in_textbooleanWhether stated explicitly (default false)
strengthnumber?0-1 strength of the warrant
domain_scopestring?Domain where this warrant applies
Argument (5 fields)
FieldTypeDescription
summarystringSummary of the argument
argument_typestring?Type (deductive, inductive, etc.)
strengthnumber?0-1 overall strength
is_validboolean?Whether logically valid
is_soundboolean?Whether sound (valid + true premises)
Hypothesis (7 fields)
FieldTypeDescription
statementstringThe hypothesis statement
hypothesis_typestring?Type (empirical, causal, etc.)
statusstring?Status (proposed, testing, confirmed, refuted)
testability_scorenumber?0-1 how testable
noveltynumber?0-1 novelty rating
predicted_observationsstring[]List of predicted observations
sourcestring?Origin: "document", "session", "chunk", or null (user-created)
Theory (7 fields)
FieldTypeDescription
namestringTheory name
descriptionstringDescription
domainstring?Domain of the theory
statusstring?Status (developing, established, etc.)
explanatory_scopestring?What it explains
core_commitmentsstring[]Core theoretical commitments
predictive_successesstring[]Successful predictions
Paradigm (7 fields)
FieldTypeDescription
namestringParadigm name
fieldstring?Field of study
statusstring?Status (emerging, dominant, declining)
core_assumptionsstring[]Core assumptions
exemplar_problemsstring[]Exemplar problems
accepted_methodsstring[]Accepted methods
tension_scorenumber?0-1 internal tension
Anomaly (6 fields)
FieldTypeDescription
descriptionstringDescription of the anomaly
anomaly_typestring?Type (empirical, theoretical, etc.)
severitystring?Severity (minor, major, critical)
persistencestring?Whether persistent or transient
resolution_attemptsnumberCount of resolution attempts (default 0)
sourcestring?Origin: "document", "session", "chunk", or null (user-created)
Method (7 fields)
FieldTypeDescription
namestringMethod name
descriptionstringDescription
method_typestring?Type (experimental, analytical, etc.)
domainstring?Domain
limitationsstring[]Known limitations
validity_conditionsstring[]Conditions for validity
parametersstring[]Method parameters
Experiment (8 fields)
FieldTypeDescription
namestring?Experiment name
descriptionstringDescription
design_typestring?Design type (RCT, quasi, etc.)
variables_manipulatedstring[]Independent variables
variables_measuredstring[]Dependent variables
controlsstring[]Control conditions
sample_descriptionstring?Description of the sample
date_conductedstring?Date conducted
Concept (6 fields)
FieldTypeDescription
namestringConcept name
domainstring?Domain
definitionstring?Definition
definition_typestring?Type (ostensive, operational, etc.)
abstraction_levelstring?Abstraction level
alternative_definitionsstring[]Alternative definitions
Assumption (5 fields)
FieldTypeDescription
contentstringThe assumption
assumption_typestring?Type (empirical, methodological, etc.)
explicit_in_textbooleanWhether stated explicitly (default false)
justificationstring?Justification for the assumption
vulnerabilitystring?Vulnerability description
Question / OpenQuestion (8 fields)
FieldTypeDescription
textstringThe question text
question_typestring?Type (empirical, conceptual, etc.)
scopestring?Scope
statusstring?Status (open, answered, abandoned)
importancenumber?0-1 importance
tractabilitynumber?0-1 tractability
blocking_factorsstring[]Factors blocking resolution
sourcestring?Origin: "document", "session", "chunk", or null (user-created)
Analogy (7 fields)
FieldTypeDescription
descriptionstringDescription of the analogy
source_domainstring?Source domain
target_domainstring?Target domain
analogy_typestring?Type (structural, functional, etc.)
mapping_elementsstring[]Mapped elements
strengthnumber?0-1 strength
limitationsstring[]Limitations
Pattern (6 fields)
FieldTypeDescription
namestringPattern name
descriptionstringDescription
pattern_typestring?Type (structural, behavioral, etc.)
domains_observedstring[]Domains where observed
instance_countnumber?Number of instances observed
generalitystring?Generality level
Mechanism (7 fields)
FieldTypeDescription
namestringMechanism name
descriptionstringDescription
componentsstring[]Components
interactionsstring[]Interactions between components
inputstring?Input
outputstring?Output
levelstring?Level (molecular, cellular, etc.)
Model (7 fields)
FieldTypeDescription
namestringModel name
descriptionstringDescription
model_typestring?Type (mathematical, computational, etc.)
target_systemstring?System being modeled
key_parametersstring[]Key parameters
simplificationsstring[]Simplifications made
validation_statusstring?Validation status
ModelEvaluation (5 fields)
FieldTypeDescription
evaluation_typestring?Type of evaluation
metricsstring[]Metrics used
failure_domainsstring[]Domains where model fails
comparison_tostring[]Models compared against
evaluation_datestring?Date of evaluation
InferenceChain (6 fields)
FieldTypeDescription
descriptionstringDescription of the chain
chain_lengthnumber?Number of steps
compound_confidencenumber?Compound confidence
propagation_methodstring?How confidence propagates
weakest_linkstring?Weakest link in the chain
critical_assumptionsstring[]Critical assumptions
SensitivityAnalysis (6 fields)
FieldTypeDescription
analysis_typestring?Type of analysis
target_claim_uidstring?Claim being analyzed
sensitivity_mapstring[]Sensitivity mappings
robustness_scorenumber?0-1 robustness
critical_inputsstring[]Critical inputs
break_pointsstring[]Break points
ReasoningStrategy (5 fields)
FieldTypeDescription
namestringStrategy name
descriptionstringDescription
strategy_typestring?Type (abductive, analogical, etc.)
applicable_contextsstring[]Where this strategy applies
limitationsstring[]Limitations
Theorem (7 fields)
FieldTypeDescription
namestring?Theorem name
statementstringTheorem statement
proof_statusstring?Proof status
theorem_typestring?Type
proof_techniquestring?Proof technique used
significancestring?Significance
applicationsstring[]Applications
Equation (8 fields)
FieldTypeDescription
namestring?Equation name
expressionstringThe equation expression
descriptionstring?Description
equation_typestring?Type (algebraic, differential, etc.)
variablesstring[]Variables
parametersstring[]Parameters
domainstring?Domain
assumptionsstring[]Assumptions

Intent Layer

Goal (8 fields)
FieldTypeDescription
descriptionstringGoal description
goal_typestring?Type (product_launch, research, etc.)
statusstring?Status (active, completed, abandoned)
prioritystring?Priority (low, medium, high, critical)
deadlinenumber?Unix timestamp deadline
success_criteriastring[]Success criteria
progressnumber0-1 progress (default 0)
sourcestring?Origin: "document", "session", "chunk", or null (user-created)
Project (6 fields)
FieldTypeDescription
namestringProject name
descriptionstringDescription
statusstring?Status
started_atnumber?Unix timestamp start
target_completionnumber?Unix timestamp target
sourcestring?Origin: "document", "session", "chunk", or null (user-created)
Decision (7 fields)
FieldTypeDescription
questionstringThe decision question
statusstring?Status (open, decided, revisited)
decided_option_uidstring?UID of the chosen option
decided_atnumber?Unix timestamp when decided
decision_rationalestring?Rationale for the decision
reversibilitystring?How reversible (easily, with_effort, irreversible)
sourcestring?Origin: "document", "session", "chunk", or null (user-created)
Option (6 fields)
FieldTypeDescription
descriptionstringOption description
prosstring[]Pros
consstring[]Cons
estimated_effortstring?Effort estimate
estimated_riskstring?Risk estimate
scorenumber?Evaluation score
Constraint (5 fields)
FieldTypeDescription
descriptionstringConstraint description
constraint_typestring?Type (budget, time, technical, etc.)
hardbooleanWhether hard or soft (default false)
valuestring?Constraint value
unitstring?Unit
Milestone (6 fields)
FieldTypeDescription
descriptionstringMilestone description
statusstring?Status (pending, reached, missed)
target_datenumber?Target date (Unix timestamp)
reached_atnumber?When reached (Unix timestamp)
criteriastring[]Completion criteria
sourcestring?Origin: "document", "session", "chunk", or null (user-created)

Action Layer

Affordance (10 fields)
FieldTypeDescription
action_namestringAction name
descriptionstringDescription
affordance_typestring?Type (api_call, ui_action, etc.)
source_uidstring?Source of the affordance
selectorstring?CSS/XPath selector
parametersstring[]Parameters
preconditionsstring[]Required preconditions
postconditionsstring[]Expected postconditions
risk_levelstring?Risk level
reversiblebooleanWhether reversible (default false)
Flow (6 fields)
FieldTypeDescription
namestringFlow name
descriptionstringDescription
flow_typestring?Type
step_countnumber?Number of steps
estimated_duration_secondsnumber?Estimated duration
overall_riskstring?Overall risk level
FlowStep (6 fields)
FieldTypeDescription
ordernumberStep order (required)
descriptionstringStep description
affordance_uidstring?Linked affordance
is_optionalbooleanWhether optional (default false)
is_checkpointbooleanWhether a checkpoint (default false)
fallback_descriptionstring?Fallback if step fails
Control (6 fields)
FieldTypeDescription
control_typestringType of control (button, input, etc.)
labelstring?UI label
selectorstring?CSS/XPath selector
source_uidstring?Source page/app
statestring?Current state
valuestring?Current value
RiskAssessment (6 fields)
FieldTypeDescription
target_uidstring?Node being assessed
risk_typestring?Type of risk
severitystring?Severity (low, medium, high, critical)
likelihoodnumber?0-1 likelihood
mitigationstring?Mitigation strategy
requires_approvalbooleanWhether requires approval (default false)

Memory Layer

Session (5 fields)
FieldTypeDescription
started_atnumberUnix timestamp (auto-set on open)
ended_atnumber?Unix timestamp (set on close)
session_typestring?Type of session
focus_summarystring?What the session is about
active_goal_uidsstring[]Goals active during session
Trace (6 fields)
FieldTypeDescription
session_uidstring?Parent session
trace_typestring?Type (research, execution, debug, etc.)
entry_countnumberNumber of entries (default 0)
started_atnumber?Start timestamp
ended_atnumber?End timestamp
compressedbooleanWhether compressed (default false)
Journal (4 fields)
FieldTypeDescription
contentstringThe journal entry text
session_uidstring?Parent session
journal_typestring?Type (note, decision, observation, etc.)
tagsstring[]Tags for categorization
Summary (6 fields)
FieldTypeDescription
contentstringThe summary text
summary_typestring?Type (session_distillation, topic, etc.)
source_node_uidsstring[]Nodes being summarized
compression_rationumber?Compression ratio
generated_bystring?Agent or model that generated it
generated_atnumber?When generated
Preference (6 fields)
FieldTypeDescription
keystringPreference key
valuestringPreference value
preference_typestring?Type (user, system, learned)
learnedbooleanWhether learned automatically (default false)
explicitbooleanWhether explicitly stated (default false)
evidence_countnumberSupporting evidence count (default 0)
MemoryPolicy (5 fields)
FieldTypeDescription
policy_typestring?Type (retention, decay, archival)
target_node_typestring?Which node type this applies to
conditionstring?Condition expression
actionstring?Action to take
activebooleanWhether active (default false)

Agent Layer

Agent (8 fields)
FieldTypeDescription
namestringAgent name
agent_typestring?Type (llm, tool, human, etc.)
model_idstring?Model identifier
capabilitiesstring[]Agent capabilities
statusstring?Current status
current_task_uidstring?Current task
autonomy_levelstring?Autonomy level
domain_restrictionsstring[]Domain restrictions
Task (10 fields)
FieldTypeDescription
descriptionstringTask description
task_typestring?Type
statusstring?Status (pending, in_progress, done, failed)
assigned_tostring?Assigned agent
created_bystring?Creator
prioritystring?Priority
deadlinenumber?Deadline (Unix timestamp)
parent_goal_uidstring?Parent goal
depends_on_task_uidsstring[]Task dependencies
result_summarystring?Summary of result
Plan (8 fields)
FieldTypeDescription
descriptionstringPlan description
task_uidstring?Parent task
statusstring?Status
step_countnumber?Number of steps
estimated_riskstring?Risk estimate
proposed_atnumber?When proposed
approved_atnumber?When approved
approved_bystring?Who approved
PlanStep (8 fields)
FieldTypeDescription
ordernumberStep order (required)
descriptionstringStep description
plan_uidstring?Parent plan
statusstring?Status
target_affordance_uidstring?Linked affordance
expected_outcomestring?Expected outcome
actual_outcomestring?Actual outcome
requires_approvalbooleanWhether requires approval (default false)
Approval (8 fields)
FieldTypeDescription
target_uidstring?Node being approved
target_typestring?Type of target
statusstring?Status (pending, approved, denied)
requested_atnumber?When requested
decided_atnumber?When decided
decided_bystring?Who decided
reasonstring?Reason for decision
conditionsstring?Conditions attached
Policy (7 fields)
FieldTypeDescription
namestringPolicy name
descriptionstringDescription
policy_typestring?Type (safety, governance, resource)
rulesstring[]Policy rules
applies_tostring?What this applies to
activebooleanWhether active (default false)
prioritynumberPriority (default 0)
Execution (13 fields)
FieldTypeDescription
descriptionstringExecution description
agent_uidstring?Executing agent
plan_step_uidstring?Plan step being executed
affordance_uidstring?Affordance being used
statusstring?Status (running, completed, failed)
started_atnumber?Start timestamp
completed_atnumber?Completion timestamp
input_snapshotobjectInput state snapshot
output_snapshotobjectOutput state snapshot
errorstring?Error description if failed
side_effectsstring[]Side effects observed
reversiblebooleanWhether reversible (default false)
rollback_execution_uidstring?Execution that rolls this back
SafetyBudget (7 fields)
FieldTypeDescription
scopestring?Budget scope
scope_uidstring?Scoped node UID
budget_typestring?Type (token, api_call, cost, etc.)
limitnumberBudget limit
consumednumberAmount consumed
remainingnumberAmount remaining
on_exhaustionstring?What happens when exhausted