Valhalla Suite Atlas
The poster is the lobby map. This atlas is the working map: it breaks the Valhalla suite into the relationship charts an operator, builder, or agent needs when moving through the system.
Read it as a compositional stack:
- ThorAPI is the foundation. It turns OpenAPI into Java models, Spring APIs, repositories, TypeScript clients, Redux services, React components, and extension-driven behavior such as
@Rune. - ValkyrAI is the workflow engine. It runs workflows, tasks, ExecModules, agentic orchestration, and reviewable automation over Valhalla api-0 surfaces.
- Valhalla api-0 is the suite backend platform. It hosts generated APIs, RBAC, SecureField, billing, admin, deployments, GrayMatter control, SwarmOps coordination, and generated object access.
- GrayMatter is durable memory plus RBAC-scoped object-graph access. The object graph is the authenticated api-0 schema, not a separate parallel schema.
- ValorIDE is the agentic coding tool. It behaves like a Codex-class VS Code plugin: chat, tools, workflow execution, generated app consumption, and GrayMatter memory.
- Valor / SageChat is the agentic work surface inside ValkyrAI. It can advise, create workflows, navigate system context, and operate with LLMs, IntegrationAccounts, GrayMatter, and SWARM agents.
- Gridheim Runes are no-persistence calculated fields defined in OpenAPI and evaluated in real time by ValkyrAI/OpenXLS.
- Sheetster Grid is both spreadsheet UX and a front door into generated ThorAPI workbook/table APIs.
- SwarmOps is live agent coordination. It is used to register and coordinate agents such as CODEX, OpenClaw, Claude, ValorIDE, and Valor. It is not the GrayMatter memory primitive.
Relationship Overview
Generation Spine
The generation path starts with OpenAPI and stays compositional. Custom specs, bundled specs, and extension metadata all feed the same ThorAPI generator spine.
Code anchors:
| Area | Current code anchor |
|---|---|
| Java model generation | valkyrai/src/main/resources/templates/JavaSpring/pojo.mustache |
| Bundled OpenAPI schema | valkyrai/src/main/resources/openapi/api.hbs.yaml |
| OpenAPI designer | web/typescript/valkyr_labs_com/src/components/OpenAPIDesigner/DesignerView.tsx |
| Application wizard | web/typescript/valkyr_labs_com/src/components/ApplicationWizard/ApplicationWizard.tsx |
| Generated TS models/services | web/typescript/valkyr_labs_com/src/thorapi/model, web/typescript/valkyr_labs_com/src/thorapi/redux/services |
| Generated table/workbook surface | web/typescript/valkyr_labs_com/src/components/DataWorkbookWithTour.tsx |
Gridheim Runes
Gridheim Runes are calculated fields on generated objects. They are not stored calculated values, not a memory primitive, and not a SWARM client.
The useful mental model is "spreadsheet formula attached to an object property." For example, a SalesOrder can persist line items and tax rate, while subtotal and total are exposed as calculated properties:
subtotal:
type: number
x-gridheim-rune: "=SUM(lineItems.extendedAmount)"
total:
type: number
x-gridheim-rune: "=subtotal + taxAmount"
Code anchors:
| Area | Current code anchor |
|---|---|
| Extension emitted as annotation | valkyrai/src/main/resources/templates/JavaSpring/pojo.mustache |
| Example extension | valkyrai/src/main/resources/openapi/api.hbs.yaml |
| Annotation | valkyrai/src/main/java/com/valkyrlabs/valkyrai/runes/Rune.java |
| Runtime aspect | valkyrai/src/main/java/com/valkyrlabs/valkyrai/runes/RuneAspect.java |
| OpenXLS-backed evaluator | valkyrai/src/main/java/com/valkyrlabs/valkyrai/runes/RuneEvaluationService.java |
| Context and validation | valkyrai/src/main/java/com/valkyrlabs/valkyrai/runes/RuneContextBuilder.java, RuneValidationService.java |
Sheetster Grid
Sheetster is the spreadsheet UX and spreadsheet-shaped object interface. It fronts generated ThorAPI workbook APIs and also provides grid components that can be embedded in generated applications.
Code anchors:
| Area | Current code anchor |
|---|---|
| Spreadsheet schema | valkyrai/src/main/resources/openapi/api.hbs.yaml |
| Generated workbook models | web/typescript/valkyr_labs_com/src/thorapi/model/Workbook.ts, Sheet.ts, Cell.ts, Formula.ts |
| Generated workbook services | web/typescript/valkyr_labs_com/src/thorapi/redux/services/WorkbookService.tsx |
| Grid components | web/typescript/valkyr_labs_com/src/components/Gridheim |
| Client formula engine | web/typescript/valkyr_labs_com/src/components/Spreadsheet/grid/engine/FormulaEngine.ts |
| Agent report payloads | valkyrai/src/main/java/com/valkyrlabs/valkyrai/service/SheetsterReportLinkService.java |
RBAC And SecureField
RBAC decides what the user, workflow, or agent can see and do. SecureField controls encrypted fields and decrypted-view permissions. GrayMatter uses the same RBAC-scoped schema; it does not bypass the backend's authority model.
The important LLMDetails rule is: public or selectable LLM definitions can be exposed to UI and agents without exposing decrypted API keys. Provider calls run through trusted server paths where valkyr-system and workflow contexts may hold VIEW_DECRYPTED permission.
Code anchors:
| Area | Current code anchor |
|---|---|
| Role/authority endpoints | web/typescript/valkyr_labs_com/src/redux/services/AccessManagementService.tsx |
| ACL UI | web/typescript/valkyr_labs_com/src/components/PermissionDialog/index.tsx |
| Access helpers | web/typescript/valkyr_labs_com/src/utils/accessControl.ts |
| System runtime identity | valkyrai/src/main/java/com/valkyrlabs/valkyrai/service/SystemUserService.java |
| Workflow security wrapper | valkyrai/src/main/java/com/valkyrlabs/workflow/config/WorkflowSecurityContext.java |
| LLM key decrypt bootstrap | valkyrai/src/main/java/com/valkyrlabs/valkyrai/config/SystemDecryptBootstrap.java |
| Public LLMDetails cache boundary | valkyrai/src/main/java/com/valkyrlabs/valkyrai/config/PublicApiCacheHeaderFilter.java |
Prebuilt Apps And Publishing
The prebuilt business apps are not separate products bolted onto ValkyrAI. They are generated schema domains, components, dashboards, services, and workflows composed through the same ThorAPI and ValkyrAI runtime.
Code anchors:
| Area | Current code anchor |
|---|---|
| Main app routes | web/typescript/valkyr_labs_com/src/App.tsx |
| Enhanced dashboard composition | web/typescript/valkyr_labs_com/src/components/Dashboard/EnhancedSixDDashboard.tsx |
| Product funnel workflow | valkyrai/src/main/java/com/valkyrlabs/service/ProductFunnelWizardBusinessService.java |
| Digital product draft/upload | web/typescript/valkyr_labs_com/src/redux/services/DigitalProductService.tsx, src/hooks/useDigitalProductUpload.ts |
| Content slug serving | web/typescript/valkyr_labs_com/src/redux/services/ContentDataSlugService.tsx |
| MCP publishing controller | valkyrai/src/main/java/com/valkyrlabs/valkyrai/controller/McpPublishingController.java |
| MCP docs | web/typescript/valkyr_labs_com/docs/docs/Products/ValkyrAI/MCP/publishing.md |
Workflow, Valor, LLMs, And Integrations
Valor/SageChat is the in-app agentic work surface. It can use LLMs, API docs, generated schemas, ExecModules, IntegrationAccounts, Workflow Studio, and GrayMatter context to produce actual work.
Provider representation belongs in LlmDetails, adapter selection, and IntegrationAccount references, not hard-coded into a single chat surface. That is what lets Valor, ValorIDE, workflow modules, and third-party agents use OpenAI, Claude, or open-source models through the same RBAC and secret custody rules.
Code anchors:
| Area | Current code anchor |
|---|---|
| SageChat page and dock | web/typescript/valkyr_labs_com/src/pages/SageChatFullScreen.tsx, src/components/SageChatDock |
| Workflow prompt context | web/typescript/valkyr_labs_com/src/services/llmWorkflowContext.ts |
| OpenAPI/ExecModule fragments | web/typescript/valkyr_labs_com/src/services/apiDocsService.ts |
| LLM adapters | valkyrai/src/main/java/com/valkyrlabs/workflow/llm/LlmAdapterFactory.java |
| Usage tracking | valkyrai/src/main/java/com/valkyrlabs/valkyrai/service/UsageTrackingService.java |
| Integration account services | web/typescript/valkyr_labs_com/src/redux/services/integrationAccountService.ts, src/services/WorkflowStudioService.ts |
| ExecModule validation | valkyrai/src/main/java/com/valkyrlabs/workflow/validation/WorkflowValidator.java |
GrayMatter And SWARM
GrayMatter and SwarmOps touch the same agents but serve different jobs. GrayMatter stores durable memory and exposes RBAC-scoped object graph context. SwarmOps tracks live agent presence, routing, commands, topology, and telemetry.
Startup rule:
- Authenticate against api-0.
- Load
/v1/graymatter/control. - Create or refresh a durable
Agentrecord when needed. - Register live presence through
/v1/swarm-ops/register. - Sync
/v1/api-docsand treat it as the RBAC-scoped object graph. - Query/write GrayMatter only for durable memory.
- Publish SWARM events for coordination and telemetry.
Code anchors:
| Area | Current code anchor |
|---|---|
| GrayMatter control surface | valkyrai/src/main/java/com/valkyrlabs/valkyrai/graymatter/GrayMatterControlSurfaceService.java |
| Memory dashboard | web/typescript/valkyr_labs_com/src/components/memory/MemoryDashboard.tsx |
| Agent setup | web/typescript/valkyr_labs_com/src/components/memory/AgentSetupDialog.tsx |
| SwarmOps dashboard | web/typescript/valkyr_labs_com/src/components/SwarmOps/SwarmOpsDashboard.tsx |
| Swarm agent designer paths | web/typescript/valkyr_labs_com/src/components/AgentDesigner/AgentDesigner.tsx |
| SWARM protocol docs | web/typescript/valkyr_labs_com/docs/docs/Products/GrayMatter/swarm-protocol.mdx |
Admin And Control Surfaces
Admin is distributed across focused dashboards. The pattern is consistent: the web app wraps generated APIs, hand-built service endpoints, RBAC controls, and workflow/agent telemetry into operational surfaces.
Code anchors:
| Area | Current code anchor |
|---|---|
| User admin | web/typescript/valkyr_labs_com/src/components/UserList/index.tsx |
| API visualizer | web/typescript/valkyr_labs_com/src/components/OpenAPIViz/index.tsx |
| OpenAPI designer | web/typescript/valkyr_labs_com/src/components/OpenAPIDesigner/DesignerView.tsx |
| Ops dashboard | web/typescript/valkyr_labs_com/src/components/Dashboard/EnhancedSixDDashboard.tsx |
| Workflow metrics | valkyrai/src/main/java/com/valkyrlabs/workflow/metrics/WorkflowMetricsAspect.java |
| Integration console docs | web/typescript/valkyr_labs_com/docs/docs/Products/ValkyrAI/Workflow Engine/integration-account-console.mdx |
Reading Checklist
Use this order when explaining the suite to a new engineer, buyer, or agent:
- Start with Valhalla Control Surface for the one-page poster and the GrayMatter/SWARM boundary.
- Use this atlas to break the suite into relationship charts.
- Read Gridheim Overview, Rune Contract, and Runtime Evaluation for calculated field behavior.
- Read Workflow Engine, Workflow Architecture, and Spreadsheet Conditions for automation and formula branching.
- Read Integration Accounts and MCP Marketplace, MCP Publishing, and SageChat Command System for agentic work execution.
- Use GrayMatter Server and Controls, GrayMatter Architecture, and SWARM Protocol for memory and coordination rules.