{"openapi":"3.1.0","info":{"title":"Chordian-GraphRAG","version":"0.1.0"},"paths":{"/ingest":{"post":{"summary":"Ingest","description":"Accept a file upload, parse it into records, and run the graph pipeline in background.\n\nSupports PDF, DOCX, PPTX, XLSX, TXT, MD as well as CSV/JSON.\nIf ``graph_name`` is provided, a :class:`GraphInstance` metadata node is\nauto-created (or updated) so the graph appears in the listing.\nReturns a job ID for status polling via ``GET /status``.","operationId":"ingest_ingest_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_ingest_ingest_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ingest/connectors":{"post":{"summary":"Ingest From Connectors","description":"Trigger graph generation from Enterprise Search connector documents.\n\nUses the EnterpriseSearchClient to fetch documents via HTTP API,\nthen runs the VespaToGraphPipeline for graph ingestion.\nReturns a job ID for status polling via ``GET /status``.","operationId":"ingest_from_connectors_ingest_connectors_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorIngestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chat":{"post":{"summary":"Chat","operationId":"chat_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graphs":{"get":{"summary":"List Graphs","description":"List all GraphInstance nodes for a tenant.","operationId":"list_graphs_graphs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Graph","description":"Create a new empty GraphInstance.","operationId":"create_graph_graphs_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graphs/{graph_id}":{"put":{"summary":"Update Graph","description":"Update graph metadata (name, description).","operationId":"update_graph_graphs__graph_id__put","parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Graph","description":"Delete a GraphInstance and all its associated graph data.","operationId":"delete_graph_graphs__graph_id__delete","parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graphs/{graph_id}/stats":{"get":{"summary":"Get Graph Instance Stats","description":"Return node/edge counts and entity type breakdown for a specific graph.","operationId":"get_graph_instance_stats_graphs__graph_id__stats_get","parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graph":{"get":{"summary":"Get Graph","description":"Return graph nodes and links, with optional filtering.","operationId":"get_graph_graph_get","parameters":[{"name":"entity_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated entity types to include","title":"Entity Types"},"description":"Comma-separated entity types to include"},{"name":"source_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated source types to filter by","title":"Source Types"},"description":"Comma-separated source types to filter by"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":400,"minimum":1,"description":"Max nodes to return","default":400,"title":"Limit"},"description":"Max nodes to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Node offset for pagination","default":0,"title":"Offset"},"description":"Node offset for pagination"},{"name":"listId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"List ID for list-scoped graph","title":"Listid"},"description":"List ID for list-scoped graph"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graph/stats":{"get":{"summary":"Get Graph Stats","description":"Return entity and relationship counts, plus source distribution.","operationId":"get_graph_stats_graph_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/graph/schema":{"get":{"summary":"Get Graph Schema","description":"Return the current schema registry (entity types and relation types).","operationId":"get_graph_schema_graph_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/generate":{"post":{"summary":"Generate","description":"Start background graph generation for a tenant list.","operationId":"generate_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"summary":"Status","description":"Poll the progress of a background generation job.","operationId":"status_status_get","parameters":[{"name":"listId","in":"query","required":true,"schema":{"type":"string","description":"List ID","title":"Listid"},"description":"List ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sync/full":{"post":{"tags":["sync"],"summary":"Sync Full","description":"Trigger a full sync from Enterprise Search. Streams progress via SSE.","operationId":"sync_full_sync_full_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SyncRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sync/incremental":{"post":{"tags":["sync"],"summary":"Sync Incremental","description":"Trigger an incremental sync (only new/updated docs). Streams progress via SSE.","operationId":"sync_incremental_sync_incremental_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SyncRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sync/status":{"get":{"tags":["sync"],"summary":"Sync Status","description":"Return sync statistics: documents processed, source breakdown, last sync times.","operationId":"sync_status_sync_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/coherence/conflicts":{"get":{"tags":["coherence"],"summary":"List Conflicts","description":"List ConflictReport nodes from Neo4j, newest first.","operationId":"list_conflicts_coherence_conflicts_get","parameters":[{"name":"resolved","in":"query","required":false,"schema":{"type":"boolean","description":"Include resolved conflicts","default":false,"title":"Resolved"},"description":"Include resolved conflicts"},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by severity: LOW, MEDIUM, HIGH","title":"Severity"},"description":"Filter by severity: LOW, MEDIUM, HIGH"},{"name":"rule","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by rule name","title":"Rule"},"description":"Filter by rule name"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConflictSummary"},"title":"Response List Conflicts Coherence Conflicts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/coherence/conflicts/{conflict_id}":{"get":{"tags":["coherence"],"summary":"Get Conflict","operationId":"get_conflict_coherence_conflicts__conflict_id__get","parameters":[{"name":"conflict_id","in":"path","required":true,"schema":{"type":"string","title":"Conflict Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/coherence/conflicts/{conflict_id}/resolve":{"post":{"tags":["coherence"],"summary":"Resolve Conflict","description":"Mark a conflict as resolved with optional notes.","operationId":"resolve_conflict_coherence_conflicts__conflict_id__resolve_post","parameters":[{"name":"conflict_id","in":"path","required":true,"schema":{"type":"string","title":"Conflict Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/coherence/entities/{canonical_id}":{"get":{"tags":["coherence"],"summary":"Get Canonical Entity","description":"Fetch a canonical entity by its stable ID, across all labels.","operationId":"get_canonical_entity_coherence_entities__canonical_id__get","parameters":[{"name":"canonical_id","in":"path","required":true,"schema":{"type":"string","title":"Canonical Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CanonicalEntityDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/coherence/stats":{"get":{"tags":["coherence"],"summary":"Coherence Stats","description":"Return graph-wide coherence statistics for the dashboard.","operationId":"coherence_stats_coherence_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoherenceStats"}}}}}}},"/graph/memory":{"post":{"tags":["memory"],"summary":"Write Memory","description":"Write an agent observation to the knowledge graph.\n\nThe observation is processed synchronously:\n  1. Entities are extracted and deduplicated (canonical_id assigned)\n  2. Relationships between entities are detected and written\n  3. Conflict rules are run on new relationships\n  4. A :MemoryEvent audit node is created and linked to all entities\n\nIf the same event_id is submitted twice, the second call returns the\ncached result immediately (idempotent).\n\nExample — writing Oliver's mem_006 conflict event:\n```json\n{\n  \"event_id\": \"mem_006\",\n  \"event_type\": \"CONFLICT\",\n  \"agent_id\": \"conflict-detector-v1\",\n  \"observation\": \"Stefan Meier holds a board seat at Altikon GmbH. Vonterra AG is currently evaluating a joint venture with Altikon. This creates a potential conflict of interest.\",\n  \"entities_referenced\": [\"Stefan Meier\", \"Altikon GmbH\", \"Vonterra AG\"],\n  \"confidence\": 0.94,\n  \"metadata\": { \"conflict_severity\": \"HIGH\" },\n  \"tenant_id\": \"chordian-demo\"\n}\n```","operationId":"write_memory_graph_memory_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemoryWriteRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemoryWriteResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graph/memory/batch":{"post":{"tags":["memory"],"summary":"Write Memory Batch","description":"Write up to 50 agent observations in one call.\n\nDesigned for loading Oliver's full memory_events.json (15 events) in\na single request.  Events are processed sequentially to share the\nembedding cache — faster than 50 individual calls.\n\nExample body:\n```json\n{\n  \"events\": [\n    { \"event_id\": \"mem_001\", \"observation\": \"...\", ... },\n    { \"event_id\": \"mem_002\", \"observation\": \"...\", ... }\n  ]\n}\n```","operationId":"write_memory_batch_graph_memory_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchMemoryRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchMemoryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graph/memory/events":{"get":{"tags":["memory"],"summary":"List Memory Events","description":"List :MemoryEvent nodes, newest first.","operationId":"list_memory_events_graph_memory_events_get","parameters":[{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: OBSERVATION, CONFLICT, etc.","title":"Event Type"},"description":"Filter by type: OBSERVATION, CONFLICT, etc."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"since_hours","in":"query","required":false,"schema":{"type":"integer","maximum":8760,"minimum":1,"description":"Look-back window in hours","default":72,"title":"Since Hours"},"description":"Look-back window in hours"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MemoryEventSummary"},"title":"Response List Memory Events Graph Memory Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graph/memory/events/{event_id}":{"get":{"tags":["memory"],"summary":"Get Memory Event","description":"Single memory event with linked entities and triggered conflicts.","operationId":"get_memory_event_graph_memory_events__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemoryEventDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["memory"],"summary":"Soft Delete Memory Event","description":"Soft-delete a memory event.\n\nSets deleted=true on the :MemoryEvent node.\nDoes NOT remove the entity nodes or relationships that were written —\nthose require a separate graph admin operation.","operationId":"soft_delete_memory_event_graph_memory_events__event_id__delete","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Soft Delete Memory Event Graph Memory Events  Event Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graph/memory/brain-state":{"get":{"tags":["memory"],"summary":"Get Brain State","description":"Full brain health snapshot — mirrors Oliver's brain_state.json.\n\nReturns entity counts, memory activity, conflict health,\ncoherence stats, top active entities, and recent event feed.","operationId":"get_brain_state_graph_memory_brain_state_get","parameters":[{"name":"graph_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrainState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/graph/memory/replay":{"get":{"tags":["memory"],"summary":"Replay Entity Memory","description":"Return all memory events that referenced a given entity,\nordered chronologically.\n\nThis is the \"why does the graph contain this?\" audit trail.","operationId":"replay_entity_memory_graph_memory_replay_get","parameters":[{"name":"canonical_id","in":"query","required":true,"schema":{"type":"string","description":"canonical_id of the entity to replay","title":"Canonical Id"},"description":"canonical_id of the entity to replay"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Replay Entity Memory Graph Memory Replay Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/search":{"post":{"tags":["v1"],"summary":"V1 Search","description":"Hybrid graph search combining NL-to-Cypher and Graphiti semantic search.\n\nLatency target: p50 < 400ms\n\nAccepts a natural language question, translates it to Cypher, executes\nagainst Neo4j, and also runs a semantic search via Graphiti. Returns\nmerged results from both paths.","operationId":"v1_search_v1_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/enrich":{"post":{"tags":["v1"],"summary":"V1 Enrich","description":"Write an agent observation to the knowledge graph in real time.\n\nLatency target: p50 < 400ms\n\nRuns the full memory pipeline: entity extraction, coherence resolution,\nrelationship detection, conflict adjudication, and graph writes.\nReturns what was written so the agent knows what landed.","operationId":"v1_enrich_v1_enrich_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/graph":{"get":{"tags":["v1"],"summary":"V1 Graph","description":"Full graph export for visualization.\n\nLatency target: p50 < 900ms\n\nReturns all nodes and edges, optionally scoped by tenant, graph instance,\nand entity type filters. Designed for force-graph rendering.","operationId":"v1_graph_v1_graph_get","parameters":[{"name":"graph_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Graph instance ID","title":"Graph Id"},"description":"Graph instance ID"},{"name":"entity_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated entity types to filter","title":"Entity Types"},"description":"Comma-separated entity types to filter"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"description":"Max nodes","default":500,"title":"Limit"},"description":"Max nodes"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/templates":{"get":{"tags":["templates"],"summary":"List Templates","operationId":"list_templates_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Templates Templates Get"}}}}}}},"/templates/{template_id}":{"get":{"tags":["templates"],"summary":"Get Template","operationId":"get_template_templates__template_id__get","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Template Templates  Template Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/templates/{template_id}/apply":{"post":{"tags":["templates"],"summary":"Apply Template","operationId":"apply_template_templates__template_id__apply_post","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Apply Template Templates  Template Id  Apply Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scans":{"get":{"tags":["scans"],"summary":"List Scans","operationId":"list_scans_scans_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Scans Scans Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scans/{scan_id}":{"get":{"tags":["scans"],"summary":"Get Scan","operationId":"get_scan_scans__scan_id__get","parameters":[{"name":"scan_id","in":"path","required":true,"schema":{"type":"string","title":"Scan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Scan Scans  Scan Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scans/by-job/{job_id}":{"get":{"tags":["scans"],"summary":"Get Scan By Job","operationId":"get_scan_by_job_scans_by_job__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Scan By Job Scans By Job  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/merge-history/canonical/{canonical_id}":{"get":{"tags":["scans"],"summary":"List History For Canonical","operationId":"list_history_for_canonical_merge_history_canonical__canonical_id__get","parameters":[{"name":"canonical_id","in":"path","required":true,"schema":{"type":"string","title":"Canonical Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List History For Canonical Merge History Canonical  Canonical Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/merge-history/job/{job_id}":{"get":{"tags":["scans"],"summary":"List History For Job","operationId":"list_history_for_job_merge_history_job__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":1000,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List History For Job Merge History Job  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/merge-history/{history_id}/rollback":{"post":{"tags":["scans"],"summary":"Rollback Merge","operationId":"rollback_merge_merge_history__history_id__rollback_post","parameters":[{"name":"history_id","in":"path","required":true,"schema":{"type":"string","title":"History Id"}},{"name":"actor","in":"query","required":false,"schema":{"type":"string","description":"Who triggered the rollback","default":"system","title":"Actor"},"description":"Who triggered the rollback"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rollback Merge Merge History  History Id  Rollback Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memory/departments":{"get":{"tags":["memory-public-api"],"summary":"List Departments","description":"List all departments (graphs) for the authenticated tenant.","operationId":"list_departments_memory_departments_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/memory/departments/{department_id}":{"get":{"tags":["memory-public-api"],"summary":"Get Department","description":"Get a specific department (graph) by ID.","operationId":"get_department_memory_departments__department_id__get","parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","title":"Department Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memory/departments/create":{"post":{"tags":["memory-public-api"],"summary":"Create Department","description":"Create a new department (graph) for the authenticated tenant.","operationId":"create_department_memory_departments_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDepartmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memory/upload":{"post":{"tags":["memory-public-api"],"summary":"Upload Memory Document","description":"Upload a document for graph ingestion (authenticated via API key).","operationId":"upload_memory_document_memory_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_memory_document_memory_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memory/chat":{"post":{"tags":["memory-public-api"],"summary":"Chat Memory","description":"Chat with the knowledge graph (authenticated via API key).","operationId":"chat_memory_memory_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemoryChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memory/ingest/connectors":{"post":{"tags":["memory-public-api"],"summary":"Ingest Connectors Memory","description":"Trigger graph generation from Enterprise Search connector documents.","operationId":"ingest_connectors_memory_memory_ingest_connectors_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorIngestPublicRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memory/generate":{"post":{"tags":["memory-public-api"],"summary":"Generate Memory Graph","description":"Generate a knowledge graph from list data (people/company records).","operationId":"generate_memory_graph_memory_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePublicRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"BatchMemoryRequest":{"properties":{"events":{"items":{"$ref":"#/components/schemas/MemoryWriteRequest"},"type":"array","maxItems":50,"title":"Events","description":"Up to 50 memory events to write in one call."}},"type":"object","required":["events"],"title":"BatchMemoryRequest"},"BatchMemoryResult":{"properties":{"total":{"type":"integer","title":"Total"},"succeeded":{"type":"integer","title":"Succeeded"},"failed":{"type":"integer","title":"Failed"},"results":{"items":{"$ref":"#/components/schemas/MemoryWriteResult"},"type":"array","title":"Results"}},"type":"object","required":["total","succeeded","failed","results"],"title":"BatchMemoryResult"},"Body_ingest_ingest_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"list_id":{"type":"string","title":"List Id","default":"default"},"graph_name":{"type":"string","title":"Graph Name"}},"type":"object","required":["file"],"title":"Body_ingest_ingest_post"},"Body_upload_memory_document_memory_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"list_id":{"type":"string","title":"List Id","default":"default"},"graph_name":{"type":"string","title":"Graph Name"}},"type":"object","required":["file"],"title":"Body_upload_memory_document_memory_upload_post"},"BrainState":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"graph_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Id"},"snapshot_time":{"type":"string","format":"date-time","title":"Snapshot Time"},"total_entities":{"type":"integer","title":"Total Entities","default":0},"total_relationships":{"type":"integer","title":"Total Relationships","default":0},"total_canonical_nodes":{"type":"integer","title":"Total Canonical Nodes","default":0},"total_aliases":{"type":"integer","title":"Total Aliases","default":0},"total_memory_events":{"type":"integer","title":"Total Memory Events","default":0},"events_last_24h":{"type":"integer","title":"Events Last 24H","default":0},"events_by_type":{"additionalProperties":{"type":"integer"},"type":"object","title":"Events By Type"},"events_by_source":{"additionalProperties":{"type":"integer"},"type":"object","title":"Events By Source"},"open_conflicts":{"type":"integer","title":"Open Conflicts","default":0},"conflicts_by_severity":{"additionalProperties":{"type":"integer"},"type":"object","title":"Conflicts By Severity"},"merge_rate":{"type":"number","title":"Merge Rate","default":0.0},"flag_rate":{"type":"number","title":"Flag Rate","default":0.0},"top_entities":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Top Entities"},"recent_events":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Recent Events"}},"type":"object","required":["tenant_id"],"title":"BrainState","description":"Mirrors Oliver's brain_state.json — GET /graph/memory/brain-state."},"CanonicalEntityDetail":{"properties":{"canonical_id":{"type":"string","title":"Canonical Id"},"entity_type":{"type":"string","title":"Entity Type"},"name":{"type":"string","title":"Name"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"},"merge_count":{"type":"integer","title":"Merge Count"},"flagged_for_review":{"type":"boolean","title":"Flagged For Review"},"properties":{"additionalProperties":true,"type":"object","title":"Properties"},"first_seen":{"type":"string","title":"First Seen"},"last_seen":{"type":"string","title":"Last Seen"}},"type":"object","required":["canonical_id","entity_type","name","aliases","merge_count","flagged_for_review","properties","first_seen","last_seen"],"title":"CanonicalEntityDetail"},"ChatRequest":{"properties":{"message":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Message"},"tenantId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenantid"},"listId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Listid"},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question"},"conversationHistory":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Conversationhistory"}},"type":"object","title":"ChatRequest"},"CoherenceStats":{"properties":{"total_canonical_nodes":{"type":"integer","title":"Total Canonical Nodes"},"total_aliases":{"type":"integer","title":"Total Aliases"},"total_merged":{"type":"integer","title":"Total Merged"},"total_flagged":{"type":"integer","title":"Total Flagged"},"unresolved_conflicts":{"type":"integer","title":"Unresolved Conflicts"},"conflicts_by_severity":{"additionalProperties":{"type":"integer"},"type":"object","title":"Conflicts By Severity"},"conflicts_by_rule":{"additionalProperties":{"type":"integer"},"type":"object","title":"Conflicts By Rule"}},"type":"object","required":["total_canonical_nodes","total_aliases","total_merged","total_flagged","unresolved_conflicts","conflicts_by_severity","conflicts_by_rule"],"title":"CoherenceStats"},"ConflictDetail":{"properties":{"conflict_id":{"type":"string","title":"Conflict Id"},"detected_at":{"type":"string","title":"Detected At"},"source_name":{"type":"string","title":"Source Name"},"relation_type":{"type":"string","title":"Relation Type"},"target_name":{"type":"string","title":"Target Name"},"rule_violated":{"type":"string","title":"Rule Violated"},"severity":{"type":"string","title":"Severity"},"description":{"type":"string","title":"Description"},"resolved":{"type":"boolean","title":"Resolved"},"source_canonical_id":{"type":"string","title":"Source Canonical Id"},"target_canonical_id":{"type":"string","title":"Target Canonical Id"},"relationship_properties":{"additionalProperties":true,"type":"object","title":"Relationship Properties"},"resolution_notes":{"type":"string","title":"Resolution Notes"}},"type":"object","required":["conflict_id","detected_at","source_name","relation_type","target_name","rule_violated","severity","description","resolved","source_canonical_id","target_canonical_id","relationship_properties","resolution_notes"],"title":"ConflictDetail"},"ConflictSummary":{"properties":{"conflict_id":{"type":"string","title":"Conflict Id"},"detected_at":{"type":"string","title":"Detected At"},"source_name":{"type":"string","title":"Source Name"},"relation_type":{"type":"string","title":"Relation Type"},"target_name":{"type":"string","title":"Target Name"},"rule_violated":{"type":"string","title":"Rule Violated"},"severity":{"type":"string","title":"Severity"},"description":{"type":"string","title":"Description"},"resolved":{"type":"boolean","title":"Resolved"}},"type":"object","required":["conflict_id","detected_at","source_name","relation_type","target_name","rule_violated","severity","description","resolved"],"title":"ConflictSummary"},"ConnectorIngestPublicRequest":{"properties":{"list_id":{"type":"string","title":"List Id","default":"connectors"},"source_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Source Types","description":"Optional source type filter (e.g. ['google_drive', 'notion'])"},"mode":{"type":"string","enum":["full","incremental"],"title":"Mode","default":"full"},"graph_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Name"}},"type":"object","title":"ConnectorIngestPublicRequest"},"ConnectorIngestRequest":{"properties":{"list_id":{"type":"string","title":"List Id","default":"connectors"},"source_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Source Types","description":"Optional source type filter (e.g. ['google_drive', 'notion'])"},"mode":{"type":"string","enum":["full","incremental"],"title":"Mode","default":"incremental"},"graph_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Name"}},"type":"object","title":"ConnectorIngestRequest"},"CorrectionTarget":{"properties":{"canonical_id":{"type":"string","title":"Canonical Id"},"property_name":{"type":"string","title":"Property Name"},"old_value":{"title":"Old Value"},"new_value":{"title":"New Value"},"reason":{"type":"string","title":"Reason","default":""}},"type":"object","required":["canonical_id","property_name","old_value","new_value"],"title":"CorrectionTarget"},"CreateDepartmentRequest":{"properties":{"name":{"type":"string","maxLength":200,"title":"Name"},"description":{"type":"string","title":"Description","default":""},"source_type":{"type":"string","title":"Source Type","default":"department"}},"type":"object","required":["name"],"title":"CreateDepartmentRequest"},"EnrichRequest":{"properties":{"observation":{"type":"string","title":"Observation","description":"Free-form text the agent observed or inferred"},"event_type":{"type":"string","title":"Event Type","default":"OBSERVATION"},"source":{"type":"string","title":"Source","default":"AGENT"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Id"},"tenant_id":{"type":"string","title":"Tenant Id","default":"default"},"graph_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Id"},"entities_referenced":{"items":{"type":"string"},"type":"array","title":"Entities Referenced"},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence","default":1.0},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["observation"],"title":"EnrichRequest"},"GeneratePublicRequest":{"properties":{"listId":{"type":"string","title":"Listid"},"workflowCategory":{"type":"string","title":"Workflowcategory","default":"people"},"records":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Records"},"columns":{"items":{"$ref":"#/components/schemas/app__routes__public_api__ColumnDef"},"type":"array","title":"Columns"}},"type":"object","required":["listId"],"title":"GeneratePublicRequest"},"GenerateRequest":{"properties":{"tenantId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenantid"},"listId":{"type":"string","title":"Listid"},"workflowCategory":{"type":"string","title":"Workflowcategory","default":""},"records":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Records"},"columns":{"items":{"$ref":"#/components/schemas/app__routes__generate__ColumnDef"},"type":"array","title":"Columns"}},"type":"object","required":["listId"],"title":"GenerateRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MemoryChatRequest":{"properties":{"question":{"type":"string","maxLength":2000,"title":"Question"},"list_id":{"type":"string","title":"List Id","default":"default"},"conversation_history":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Conversation History"}},"type":"object","required":["question"],"title":"MemoryChatRequest"},"MemoryEventDetail":{"properties":{"event_id":{"type":"string","title":"Event Id"},"event_type":{"type":"string","title":"Event Type"},"source":{"type":"string","title":"Source"},"observation":{"type":"string","title":"Observation"},"agent_id":{"type":"string","title":"Agent Id"},"timestamp":{"type":"string","title":"Timestamp"},"confidence":{"type":"number","title":"Confidence"},"entities_written":{"type":"integer","title":"Entities Written"},"relationships_written":{"type":"integer","title":"Relationships Written"},"conflicts_detected":{"type":"integer","title":"Conflicts Detected"},"processing_time_ms":{"type":"integer","title":"Processing Time Ms"},"tenant_id":{"type":"string","title":"Tenant Id"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"session_id":{"type":"string","title":"Session Id"},"graph_id":{"type":"string","title":"Graph Id"},"referenced_entities":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Referenced Entities"},"triggered_conflicts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Triggered Conflicts"}},"type":"object","required":["event_id","event_type","source","observation","agent_id","timestamp","confidence","entities_written","relationships_written","conflicts_detected","processing_time_ms","tenant_id","metadata","session_id","graph_id","referenced_entities","triggered_conflicts"],"title":"MemoryEventDetail"},"MemoryEventSummary":{"properties":{"event_id":{"type":"string","title":"Event Id"},"event_type":{"type":"string","title":"Event Type"},"source":{"type":"string","title":"Source"},"observation":{"type":"string","title":"Observation"},"agent_id":{"type":"string","title":"Agent Id"},"timestamp":{"type":"string","title":"Timestamp"},"confidence":{"type":"number","title":"Confidence"},"entities_written":{"type":"integer","title":"Entities Written"},"relationships_written":{"type":"integer","title":"Relationships Written"},"conflicts_detected":{"type":"integer","title":"Conflicts Detected"},"processing_time_ms":{"type":"integer","title":"Processing Time Ms"},"tenant_id":{"type":"string","title":"Tenant Id"}},"type":"object","required":["event_id","event_type","source","observation","agent_id","timestamp","confidence","entities_written","relationships_written","conflicts_detected","processing_time_ms","tenant_id"],"title":"MemoryEventSummary"},"MemoryEventType":{"type":"string","enum":["OBSERVATION","QUERY","CONFLICT","DECISION","RELATIONSHIP","CORRECTION","ESCALATION"],"title":"MemoryEventType"},"MemorySource":{"type":"string","enum":["AGENT","HUMAN","SYSTEM","CONNECTOR"],"title":"MemorySource"},"MemoryWriteRequest":{"properties":{"observation":{"type":"string","title":"Observation","description":"Free-form text the agent observed or inferred."},"event_type":{"$ref":"#/components/schemas/MemoryEventType","default":"OBSERVATION"},"source":{"$ref":"#/components/schemas/MemorySource","default":"AGENT"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Id","description":"Upstream ID (e.g. 'mem_006'). Used for idempotency."},"tenant_id":{"type":"string","title":"Tenant Id","default":"default"},"graph_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Id"},"entities_referenced":{"items":{"type":"string"},"type":"array","title":"Entities Referenced","description":"Entity names the agent already knows are relevant."},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence","default":1.0},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"correction_target":{"anyOf":[{"$ref":"#/components/schemas/CorrectionTarget"},{"type":"null"}]},"query_context":{"anyOf":[{"$ref":"#/components/schemas/QueryContext"},{"type":"null"}]}},"type":"object","required":["observation"],"title":"MemoryWriteRequest","description":"What an agent POSTs to POST /graph/memory.\n\nCompatible with Oliver's memory_events.json synthetic data:\n  {\n    \"event_id\": \"mem_006\",\n    \"event_type\": \"CONFLICT\",\n    \"agent_id\": \"conflict-detector-v1\",\n    \"observation\": \"Stefan Meier holds a board seat at Altikon...\",\n    \"entities_referenced\": [\"Stefan Meier\", \"Altikon\", \"Vonterra\"],\n    \"confidence\": 0.94,\n    \"metadata\": { \"conflict_severity\": \"HIGH\" }\n  }"},"MemoryWriteResult":{"properties":{"event_id":{"type":"string","title":"Event Id"},"status":{"type":"string","title":"Status"},"entities_written":{"type":"integer","title":"Entities Written"},"relationships_written":{"type":"integer","title":"Relationships Written"},"conflicts_detected":{"type":"integer","title":"Conflicts Detected"},"processing_time_ms":{"type":"integer","title":"Processing Time Ms"},"conflict_ids":{"items":{"type":"string"},"type":"array","title":"Conflict Ids"},"canonical_ids":{"items":{"type":"string"},"type":"array","title":"Canonical Ids"},"message":{"type":"string","title":"Message","default":""}},"type":"object","required":["event_id","status","entities_written","relationships_written","conflicts_detected","processing_time_ms"],"title":"MemoryWriteResult"},"QueryContext":{"properties":{"query_text":{"type":"string","title":"Query Text"},"answer_text":{"type":"string","title":"Answer Text"},"cypher_used":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cypher Used"},"sources_cited":{"items":{"type":"string"},"type":"array","title":"Sources Cited"}},"type":"object","required":["query_text","answer_text"],"title":"QueryContext"},"ResolveRequest":{"properties":{"resolution_notes":{"type":"string","title":"Resolution Notes","default":""}},"type":"object","title":"ResolveRequest"},"SearchRequest":{"properties":{"query":{"type":"string","title":"Query","description":"Natural language question to search the graph"},"tenant_id":{"type":"string","title":"Tenant Id","default":"default"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":25}},"type":"object","required":["query"],"title":"SearchRequest"},"SyncRequest":{"properties":{"source_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Source Types","description":"Optional source type filter (e.g. ['slack', 'confluence'])"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id","description":"Tenant ID for scoping graph entities"},"list_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"List Id","description":"List ID for scoping graph entities"}},"type":"object","title":"SyncRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"app__routes__generate__ColumnDef":{"properties":{"id":{"type":"string","title":"Id"},"header":{"type":"string","title":"Header","default":""}},"type":"object","required":["id"],"title":"ColumnDef"},"app__routes__public_api__ColumnDef":{"properties":{"id":{"type":"string","title":"Id"},"header":{"type":"string","title":"Header","default":""},"type":{"type":"string","title":"Type","default":"string"}},"type":"object","required":["id"],"title":"ColumnDef"}}}}