The system view
The deeper path separates storage ingestion from MCP runtime tools, keeps serving profile eligibility explicit, and carries Core policy into direct chat, planner workflow, and widget channels.
- New Datasets are disabled by default; disabled Datasets do not crawl, catalog, queue, or serve retrieval.
- Serving profile promotion happens only after a DocumentModelProfile is processed for the document, embedding model, and ingestion profile.
- Core execution path can be direct chat or planner workflow; both use backend-provided runtime tool names and schemas.
- Widget conversations keep Core scope, allowed origins, upload policy, visitor context, and channel separation visible.
flowchart LR
subgraph SourceSetup["Source setup"]
direction TB
StorageIntegration["Storage connector integration<br/>provider_kind=storage"]
DatasetPaths["Dataset paths<br/>folder, web, My Files selections"]
McpIntegration["MCP integration<br/>provider_kind=mcptool"]
CoreIntegration["CoreIntegration<br/>selected MCP tool keys"]
end
subgraph Ingestion["Dataset ingestion path"]
direction TB
Dataset["Dataset<br/>disabled by default"]
Scan["Enabled scan<br/>catalog selected paths"]
Relation["Document + DatasetDocumentLink<br/>identity, active relation, preferred source"]
Profile["DocumentModelProfile<br/>document + embedding model + ingestion profile"]
ServingProfile["Serving profile promotion<br/>only after processed"]
end
subgraph CoreRuntime["Core runtime"]
direction TB
RetrievalScope["Visible retrieval scope<br/>none, all, or selected Datasets"]
Strategies["Retrieval strategies<br/>Graph, Vector, FTS, Trigram"]
ToolScope["Visible tool scope<br/>runtime names and schemas"]
Core["Core<br/>instructions, model lanes, locks, execution path"]
end
subgraph ChatRuntime["Chat and widget runtime"]
direction TB
DirectChat["Direct chat<br/>/chat/:conversationId"]
PlannerWorkflow["Planner workflow<br/>task graph, judge, compose"]
Widget["Public embeddable chat widget<br/>allowed origins + visitor options"]
Stream["AI SDK UI message stream v1"]
end
subgraph ProofOps["Proof and operations"]
direction TB
Evidence["Citations + activity graph<br/>source trail, tool evidence, artifacts"]
Status["Document readiness + connector health<br/>usage and plan state"]
Repair["Retry, repair, adjust Dataset, Core, or connector"]
end
StorageIntegration --> DatasetPaths --> Dataset
Dataset -->|enabled + model active| Scan
Scan --> Relation --> Profile --> ServingProfile
ServingProfile --> RetrievalScope
McpIntegration --> CoreIntegration --> ToolScope
RetrievalScope --> Core
Strategies --> Core
ToolScope --> Core
Core --> DirectChat
Core --> PlannerWorkflow
Core --> Widget
DirectChat --> Stream
PlannerWorkflow --> Stream
Widget --> Stream
Stream --> Evidence
Stream --> Status
Evidence --> Repair
Status --> Repair
Repair --> Dataset
Repair --> Core
classDef setup fill:#f8fbff,stroke:#c7d7ef,color:#07111f
classDef ingestion fill:#eef4ff,stroke:#245bff,color:#07111f
classDef core fill:#fff7ed,stroke:#ff8a4c,color:#07111f
classDef runtime fill:#f3fbff,stroke:#00a8db,color:#07111f
classDef proof fill:#07111f,stroke:#00b8ff,color:#ffffff
class StorageIntegration,DatasetPaths,McpIntegration,CoreIntegration setup
class Dataset,Scan,Relation,Profile,ServingProfile ingestion
class Core,RetrievalScope,Strategies,ToolScope core
class DirectChat,PlannerWorkflow,Widget,Stream runtime
class Evidence,Status,Repair proof