diff --git a/content/docs/references/ai/agent.mdx b/content/docs/references/ai/agent.mdx index e9580a4713d..7c34d32323b 100644 --- a/content/docs/references/ai/agent.mdx +++ b/content/docs/references/ai/agent.mdx @@ -1,5 +1,6 @@ --- -title: Agent +title: Agent schema — AI Protocol property reference +navTitle: Agent description: "Agent schemas of the ObjectStack AI Protocol: AIModelConfig, Agent and 3 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ai/build-progress.mdx b/content/docs/references/ai/build-progress.mdx index 089e2c8f48c..750ef34cf44 100644 --- a/content/docs/references/ai/build-progress.mdx +++ b/content/docs/references/ai/build-progress.mdx @@ -1,5 +1,6 @@ --- -title: Build Progress +title: Build Progress schema — AI Protocol reference +navTitle: Build Progress description: "Build-progress PHASE vocabulary for the data-build-progress stream frame." --- diff --git a/content/docs/references/ai/conversation.mdx b/content/docs/references/ai/conversation.mdx index 5e7f4bb3bf1..b58d2c0785e 100644 --- a/content/docs/references/ai/conversation.mdx +++ b/content/docs/references/ai/conversation.mdx @@ -1,5 +1,6 @@ --- -title: Conversation +title: Conversation schema — AI Protocol reference +navTitle: Conversation description: "Multi-turn AI conversations with token budget management. Enables context preservation, conversation history, and token optimization." --- diff --git a/content/docs/references/ai/embedding.mdx b/content/docs/references/ai/embedding.mdx index 0a10e12d0e1..aa04d286bc9 100644 --- a/content/docs/references/ai/embedding.mdx +++ b/content/docs/references/ai/embedding.mdx @@ -1,5 +1,6 @@ --- -title: Embedding +title: Embedding schema — AI Protocol reference +navTitle: Embedding description: "Embedding & Vector Store Primitives — Platform contract for configuring embedding models and vector stores." --- diff --git a/content/docs/references/ai/index.mdx b/content/docs/references/ai/index.mdx index 5cfe216b034..5a31b887674 100644 --- a/content/docs/references/ai/index.mdx +++ b/content/docs/references/ai/index.mdx @@ -1,5 +1,6 @@ --- -title: AI Protocol +title: AI Protocol — complete schema reference +navTitle: AI Protocol description: "The ObjectStack AI Protocol in 12 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/ai/knowledge-document.mdx b/content/docs/references/ai/knowledge-document.mdx index 99b9368a38a..9492bc5ac9b 100644 --- a/content/docs/references/ai/knowledge-document.mdx +++ b/content/docs/references/ai/knowledge-document.mdx @@ -1,5 +1,6 @@ --- -title: Knowledge Document +title: Knowledge Document — AI Protocol reference +navTitle: Knowledge Document description: "Knowledge Document / Chunk / Hit — canonical shapes shared by every IKnowledgeAdapter implementation." --- diff --git a/content/docs/references/ai/knowledge-source.mdx b/content/docs/references/ai/knowledge-source.mdx index ef6b0aa183e..2dbd61810f5 100644 --- a/content/docs/references/ai/knowledge-source.mdx +++ b/content/docs/references/ai/knowledge-source.mdx @@ -1,5 +1,6 @@ --- -title: Knowledge Source +title: Knowledge Source — AI Protocol reference +navTitle: Knowledge Source description: "Knowledge Source — declarative metadata describing what to index and which adapter to use." --- diff --git a/content/docs/references/ai/mcp.mdx b/content/docs/references/ai/mcp.mdx index 99ec93985a0..ff824d67cc1 100644 --- a/content/docs/references/ai/mcp.mdx +++ b/content/docs/references/ai/mcp.mdx @@ -1,5 +1,6 @@ --- -title: Mcp +title: Mcp schema — AI Protocol property reference +navTitle: Mcp description: "Model Context Protocol (MCP) — Reference & Binding Primitives — MCP itself is an external protocol defined by Anthropic." --- diff --git a/content/docs/references/ai/model-registry.mdx b/content/docs/references/ai/model-registry.mdx index e0769c3531f..d2540a94b9b 100644 --- a/content/docs/references/ai/model-registry.mdx +++ b/content/docs/references/ai/model-registry.mdx @@ -1,5 +1,6 @@ --- -title: Model Registry +title: Model Registry schema — AI Protocol reference +navTitle: Model Registry description: "Centralized registry for managing AI models, prompt templates, and model versioning." --- diff --git a/content/docs/references/ai/skill.mdx b/content/docs/references/ai/skill.mdx index c403c02d60a..d2b0757a8d1 100644 --- a/content/docs/references/ai/skill.mdx +++ b/content/docs/references/ai/skill.mdx @@ -1,5 +1,6 @@ --- -title: Skill +title: Skill schema — AI Protocol property reference +navTitle: Skill description: "Defines programmatic conditions under which a skill becomes active. Allows context-aware activation based on object type, user role, etc." --- diff --git a/content/docs/references/ai/solution-blueprint.mdx b/content/docs/references/ai/solution-blueprint.mdx index 43f230506bb..c42eab5d310 100644 --- a/content/docs/references/ai/solution-blueprint.mdx +++ b/content/docs/references/ai/solution-blueprint.mdx @@ -1,5 +1,6 @@ --- -title: Solution Blueprint +title: Solution Blueprint — AI Protocol reference +navTitle: Solution Blueprint description: "The structured-output target an AI agent emits for a high-level goal (\"build me a project-management system\") instead of transcribing a field list." --- diff --git a/content/docs/references/ai/tool.mdx b/content/docs/references/ai/tool.mdx index a687ac2e80d..ca0bf5725bc 100644 --- a/content/docs/references/ai/tool.mdx +++ b/content/docs/references/ai/tool.mdx @@ -1,5 +1,6 @@ --- -title: Tool +title: Tool schema — AI Protocol property reference +navTitle: Tool description: "Tool schemas of the ObjectStack AI Protocol: Tool — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ai/usage.mdx b/content/docs/references/ai/usage.mdx index 585fe961a46..9499bec1dd4 100644 --- a/content/docs/references/ai/usage.mdx +++ b/content/docs/references/ai/usage.mdx @@ -1,5 +1,6 @@ --- -title: Usage +title: Usage schema — AI Protocol property reference +navTitle: Usage description: "AI Usage Primitives — Platform contract for measuring AI consumption. Reference for AIUsageRecord, TokenUsage: every property with its type and default." --- diff --git a/content/docs/references/api/analytics.mdx b/content/docs/references/api/analytics.mdx index 922ac444d0c..04247636123 100644 --- a/content/docs/references/api/analytics.mdx +++ b/content/docs/references/api/analytics.mdx @@ -1,5 +1,6 @@ --- -title: Analytics +title: Analytics schema — API Protocol reference +navTitle: Analytics description: "Defines the HTTP interface for the Semantic Layer. Provides endpoints for executing analytical queries and discovering metadata." --- diff --git a/content/docs/references/api/auth-endpoints.mdx b/content/docs/references/api/auth-endpoints.mdx index 8b54c5b337b..f0e77ba4937 100644 --- a/content/docs/references/api/auth-endpoints.mdx +++ b/content/docs/references/api/auth-endpoints.mdx @@ -1,5 +1,6 @@ --- -title: Auth Endpoints +title: Auth Endpoints schema — API Protocol reference +navTitle: Auth Endpoints description: "Defines the canonical HTTP endpoints for the authentication service. Based on better-auth v1.4.18 endpoint conventions." --- diff --git a/content/docs/references/api/auth.mdx b/content/docs/references/api/auth.mdx index e0169fa8106..c9b7f3e424e 100644 --- a/content/docs/references/api/auth.mdx +++ b/content/docs/references/api/auth.mdx @@ -1,5 +1,6 @@ --- -title: Auth +title: Auth schema — API Protocol property reference +navTitle: Auth description: "Defines the standard API contracts for Identity, Session Management, and Access Control." --- diff --git a/content/docs/references/api/automation-api.mdx b/content/docs/references/api/automation-api.mdx index 4c595094cfa..8b603415414 100644 --- a/content/docs/references/api/automation-api.mdx +++ b/content/docs/references/api/automation-api.mdx @@ -1,5 +1,6 @@ --- -title: Automation Api +title: Automation Api schema — API Protocol reference +navTitle: Automation Api description: "Defines REST CRUD endpoint schemas for managing automation flows, triggering executions, and querying execution history." --- diff --git a/content/docs/references/api/batch.mdx b/content/docs/references/api/batch.mdx index 33f1fee7754..60167c78989 100644 --- a/content/docs/references/api/batch.mdx +++ b/content/docs/references/api/batch.mdx @@ -1,5 +1,6 @@ --- -title: Batch +title: Batch schema — API Protocol property reference +navTitle: Batch description: "Batch Operations API — Provides efficient bulk data operations with transaction support." --- diff --git a/content/docs/references/api/contract.mdx b/content/docs/references/api/contract.mdx index 3865605e8b8..7c166b8ee97 100644 --- a/content/docs/references/api/contract.mdx +++ b/content/docs/references/api/contract.mdx @@ -1,5 +1,6 @@ --- -title: Contract +title: Contract schema — API Protocol reference +navTitle: Contract description: "Contract schemas of the ObjectStack API Protocol: ApiError, BaseResponse and 14 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/api/discovery.mdx b/content/docs/references/api/discovery.mdx index d78599e4018..973416597c1 100644 --- a/content/docs/references/api/discovery.mdx +++ b/content/docs/references/api/discovery.mdx @@ -1,5 +1,6 @@ --- -title: Discovery +title: Discovery schema — API Protocol reference +navTitle: Discovery description: "Discovery schemas of the ObjectStack API Protocol: ApiRoutes, CapabilityDescriptor and 9 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/api/dispatcher.mdx b/content/docs/references/api/dispatcher.mdx index c0b84510b1d..0d4dd2bfed2 100644 --- a/content/docs/references/api/dispatcher.mdx +++ b/content/docs/references/api/dispatcher.mdx @@ -1,5 +1,6 @@ --- -title: Dispatcher +title: Dispatcher schema — API Protocol reference +navTitle: Dispatcher description: "Defines how the ObjectStack HttpDispatcher routes incoming API requests to the correct kernel service based on URL prefix matching." --- diff --git a/content/docs/references/api/documentation.mdx b/content/docs/references/api/documentation.mdx index 82944bd23d8..be6ed8a03e6 100644 --- a/content/docs/references/api/documentation.mdx +++ b/content/docs/references/api/documentation.mdx @@ -1,5 +1,6 @@ --- -title: Documentation +title: Documentation schema — API Protocol reference +navTitle: Documentation description: "Provides schemas for generating interactive API documentation and testing interfaces similar to Swagger UI, Postman, etc." --- diff --git a/content/docs/references/api/endpoint.mdx b/content/docs/references/api/endpoint.mdx index 1cbb5985e5c..8d3998015c0 100644 --- a/content/docs/references/api/endpoint.mdx +++ b/content/docs/references/api/endpoint.mdx @@ -1,5 +1,6 @@ --- -title: Endpoint +title: Endpoint schema — API Protocol reference +navTitle: Endpoint description: "Endpoint schemas of the ObjectStack API Protocol: ApiEndpoint, ApiMapping — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/api/error-code-ledger.mdx b/content/docs/references/api/error-code-ledger.mdx index c78e3768026..1593341d531 100644 --- a/content/docs/references/api/error-code-ledger.mdx +++ b/content/docs/references/api/error-code-ledger.mdx @@ -1,5 +1,6 @@ --- -title: Error Code Ledger +title: Error Code Ledger — API Protocol reference +navTitle: Error Code Ledger description: "Error-Code Ledger. Reference for ErrorCode, ProvenanceWaiver, StandardSynonymWaiver: every property with its type and default." --- diff --git a/content/docs/references/api/errors.mdx b/content/docs/references/api/errors.mdx index f62adbe9aa9..120c6a230b3 100644 --- a/content/docs/references/api/errors.mdx +++ b/content/docs/references/api/errors.mdx @@ -1,5 +1,6 @@ --- -title: Errors +title: Errors schema — API Protocol reference +navTitle: Errors description: "Provides consistent, machine-readable error codes across the platform." --- diff --git a/content/docs/references/api/events.mdx b/content/docs/references/api/events.mdx index f207f8c1327..1b8de25194d 100644 --- a/content/docs/references/api/events.mdx +++ b/content/docs/references/api/events.mdx @@ -1,5 +1,6 @@ --- -title: Events +title: Events schema — API Protocol reference +navTitle: Events description: "Events schemas of the ObjectStack API Protocol: BulkDataEvent, BulkDataEventType and 4 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/api/export.mdx b/content/docs/references/api/export.mdx index d979268dc8d..45cfda13d1a 100644 --- a/content/docs/references/api/export.mdx +++ b/content/docs/references/api/export.mdx @@ -1,5 +1,6 @@ --- -title: Export +title: Export schema — API Protocol reference +navTitle: Export description: "Defines the export file formats, import validation, template-based field mapping, and the asynchronous import-job contracts." --- diff --git a/content/docs/references/api/http-cache.mdx b/content/docs/references/api/http-cache.mdx index ff8c23d5302..a23193b1147 100644 --- a/content/docs/references/api/http-cache.mdx +++ b/content/docs/references/api/http-cache.mdx @@ -1,5 +1,6 @@ --- -title: Http Cache +title: Http Cache schema — API Protocol reference +navTitle: Http Cache description: "HTTP Metadata Cache Protocol — Implements efficient HTTP-level metadata caching with ETag support." --- diff --git a/content/docs/references/api/index.mdx b/content/docs/references/api/index.mdx index 3dc9b8c2dab..c3fb44b2172 100644 --- a/content/docs/references/api/index.mdx +++ b/content/docs/references/api/index.mdx @@ -1,5 +1,6 @@ --- -title: API Protocol +title: API Protocol — complete schema reference +navTitle: API Protocol description: "The ObjectStack API Protocol in 32 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/api/metadata.mdx b/content/docs/references/api/metadata.mdx index c2f18636d18..b43699d486e 100644 --- a/content/docs/references/api/metadata.mdx +++ b/content/docs/references/api/metadata.mdx @@ -1,5 +1,6 @@ --- -title: Metadata +title: Metadata schema — API Protocol reference +navTitle: Metadata description: "Defines the standard API contracts for the @objectstack/metadata package." --- diff --git a/content/docs/references/api/misc.mdx b/content/docs/references/api/misc.mdx index 8ba46b7349a..b940848feb4 100644 --- a/content/docs/references/api/misc.mdx +++ b/content/docs/references/api/misc.mdx @@ -1,5 +1,6 @@ --- -title: Misc +title: Misc schema — API Protocol property reference +navTitle: Misc description: "Misc schemas of the ObjectStack API Protocol: ResolvedBook, ResolvedEntry, ResolvedGroup — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/api/odata.mdx b/content/docs/references/api/odata.mdx index 8d093bcfb62..5851840af64 100644 --- a/content/docs/references/api/odata.mdx +++ b/content/docs/references/api/odata.mdx @@ -1,5 +1,6 @@ --- -title: Odata +title: Odata schema — API Protocol property reference +navTitle: Odata description: "Open Data Protocol (OData) v4 is an industry-standard protocol for building and consuming RESTful APIs." --- diff --git a/content/docs/references/api/package-api-assembled.mdx b/content/docs/references/api/package-api-assembled.mdx index e5e53d6950f..e64a6d72ed2 100644 --- a/content/docs/references/api/package-api-assembled.mdx +++ b/content/docs/references/api/package-api-assembled.mdx @@ -1,5 +1,6 @@ --- -title: Package Api Assembled +title: Package Api Assembled — API Protocol reference +navTitle: Package Api Assembled description: "The Package API declarations that carry the ASSEMBLED package body. Published from @objectstack/spec/api-assembled, never from @objectstack/spec/api." --- diff --git a/content/docs/references/api/package-api.mdx b/content/docs/references/api/package-api.mdx index 9a99b64db09..cad00f891e3 100644 --- a/content/docs/references/api/package-api.mdx +++ b/content/docs/references/api/package-api.mdx @@ -1,5 +1,6 @@ --- -title: Package Api +title: Package Api schema — API Protocol reference +navTitle: Package Api description: "Package API Protocol — REST API endpoint schemas for package lifecycle management." --- diff --git a/content/docs/references/api/package-lifecycle.mdx b/content/docs/references/api/package-lifecycle.mdx index 6ab899ee019..2a1059da128 100644 --- a/content/docs/references/api/package-lifecycle.mdx +++ b/content/docs/references/api/package-lifecycle.mdx @@ -1,5 +1,6 @@ --- -title: Package Lifecycle +title: Package Lifecycle — API Protocol reference +navTitle: Package Lifecycle description: "Response payloads for the dispatcher-served packages.* lifecycle routes — the ADR-0067 commit timeline, the ADR-0033 draft batch doors." --- diff --git a/content/docs/references/api/plugin-rest-api.mdx b/content/docs/references/api/plugin-rest-api.mdx index 31f1d4e0524..24b76d440f9 100644 --- a/content/docs/references/api/plugin-rest-api.mdx +++ b/content/docs/references/api/plugin-rest-api.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Rest Api +title: Plugin Rest Api — API Protocol reference +navTitle: Plugin Rest Api description: "Defines the schema for REST API plugins that register Discovery, Metadata, Data CRUD, Batch, and Permission routes with the HTTP Dispatcher." --- diff --git a/content/docs/references/api/protocol.mdx b/content/docs/references/api/protocol.mdx index 06d5955e633..0dde8d7af02 100644 --- a/content/docs/references/api/protocol.mdx +++ b/content/docs/references/api/protocol.mdx @@ -1,5 +1,6 @@ --- -title: Protocol +title: Protocol schema — API Protocol reference +navTitle: Protocol description: "Protocol schemas of the ObjectStack API Protocol: AiAgentCapabilities and 133 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/api/query-adapter.mdx b/content/docs/references/api/query-adapter.mdx index fbc9b7a970c..cbe499d7fe2 100644 --- a/content/docs/references/api/query-adapter.mdx +++ b/content/docs/references/api/query-adapter.mdx @@ -1,5 +1,6 @@ --- -title: Query Adapter +title: Query Adapter schema — API Protocol reference +navTitle: Query Adapter description: "Defines mapping rules between the internal unified query DSL (defined in data/query.zod.ts) and external API protocol formats: REST and OData." --- diff --git a/content/docs/references/api/realtime-shared.mdx b/content/docs/references/api/realtime-shared.mdx index 8525a185612..91ef1900909 100644 --- a/content/docs/references/api/realtime-shared.mdx +++ b/content/docs/references/api/realtime-shared.mdx @@ -1,5 +1,6 @@ --- -title: Realtime Shared +title: Realtime Shared — API Protocol reference +navTitle: Realtime Shared description: "Realtime Shared Protocol — Shared schemas and types for real-time communication protocols." --- diff --git a/content/docs/references/api/realtime.mdx b/content/docs/references/api/realtime.mdx index e79243b7977..f97a57ba518 100644 --- a/content/docs/references/api/realtime.mdx +++ b/content/docs/references/api/realtime.mdx @@ -1,5 +1,6 @@ --- -title: Realtime +title: Realtime schema — API Protocol reference +navTitle: Realtime description: "Realtime schemas of the ObjectStack API Protocol: RealtimeConfig, RealtimeEvent and 5 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/api/rest-server.mdx b/content/docs/references/api/rest-server.mdx index 4d054df308f..faf10ede3a6 100644 --- a/content/docs/references/api/rest-server.mdx +++ b/content/docs/references/api/rest-server.mdx @@ -1,5 +1,6 @@ --- -title: Rest Server +title: Rest Server schema — API Protocol reference +navTitle: Rest Server description: "Defines the REST API server configuration for automatically generating RESTful CRUD endpoints, metadata endpoints, and batch operations." --- diff --git a/content/docs/references/api/router.mdx b/content/docs/references/api/router.mdx index 57c0e049674..5864807f10f 100644 --- a/content/docs/references/api/router.mdx +++ b/content/docs/references/api/router.mdx @@ -1,5 +1,6 @@ --- -title: Router +title: Router schema — API Protocol reference +navTitle: Router description: "Router schemas of the ObjectStack API Protocol: ConflictResolutionStrategy and 4 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/api/sortability.mdx b/content/docs/references/api/sortability.mdx index 4d656a5c1f7..b805bd800e0 100644 --- a/content/docs/references/api/sortability.mdx +++ b/content/docs/references/api/sortability.mdx @@ -1,5 +1,6 @@ --- -title: Sortability +title: Sortability schema — API Protocol reference +navTitle: Sortability description: "The per-column SORTABILITY projection served with object metadata — the one signal a grid reads to decide whether a column header offers a sort click." --- diff --git a/content/docs/references/api/storage.mdx b/content/docs/references/api/storage.mdx index 62f61b56267..5c75ff1aa28 100644 --- a/content/docs/references/api/storage.mdx +++ b/content/docs/references/api/storage.mdx @@ -1,5 +1,6 @@ --- -title: Storage +title: Storage schema — API Protocol reference +navTitle: Storage description: "Storage Service Protocol — Defines the API contract for client-side file operations." --- diff --git a/content/docs/references/api/versioning.mdx b/content/docs/references/api/versioning.mdx index 0f82637ea89..0840491c239 100644 --- a/content/docs/references/api/versioning.mdx +++ b/content/docs/references/api/versioning.mdx @@ -1,5 +1,6 @@ --- -title: Versioning +title: Versioning schema — API Protocol reference +navTitle: Versioning description: "Defines how API versions are negotiated between client and server. Supports multiple versioning strategies and deprecation lifecycle management." --- diff --git a/content/docs/references/api/websocket.mdx b/content/docs/references/api/websocket.mdx index a7365f49c48..26c9a6cf228 100644 --- a/content/docs/references/api/websocket.mdx +++ b/content/docs/references/api/websocket.mdx @@ -1,5 +1,6 @@ --- -title: Websocket +title: Websocket schema — API Protocol reference +navTitle: Websocket description: "Defines the schema for WebSocket-based real-time communication in ObjectStack." --- diff --git a/content/docs/references/automation/approval.mdx b/content/docs/references/automation/approval.mdx index 493ff01aa27..b5183c1810f 100644 --- a/content/docs/references/automation/approval.mdx +++ b/content/docs/references/automation/approval.mdx @@ -1,5 +1,6 @@ --- -title: Approval +title: Approval — Automation Protocol reference +navTitle: Approval description: "Approval schemas of the ObjectStack Automation Protocol: ApprovalDecision and 5 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/automation/bpmn-interop.mdx b/content/docs/references/automation/bpmn-interop.mdx index 6bd227ce8e4..45f73c991ea 100644 --- a/content/docs/references/automation/bpmn-interop.mdx +++ b/content/docs/references/automation/bpmn-interop.mdx @@ -1,5 +1,6 @@ --- -title: Bpmn Interop +title: Bpmn Interop — Automation Protocol reference +navTitle: Bpmn Interop description: "Defines the specification for importing and exporting BPMN 2.0 XML process definitions." --- diff --git a/content/docs/references/automation/builtin-node-config.mdx b/content/docs/references/automation/builtin-node-config.mdx index bb0f4ff26e1..705cfd80431 100644 --- a/content/docs/references/automation/builtin-node-config.mdx +++ b/content/docs/references/automation/builtin-node-config.mdx @@ -1,5 +1,6 @@ --- -title: Builtin Node Config +title: Builtin Node Config — Automation Protocol +navTitle: Builtin Node Config description: "Config contracts for the remaining flat builtins — the CRUD quartet (get_record / create_record / update_record / delete_record), screen, map." --- diff --git a/content/docs/references/automation/control-flow.mdx b/content/docs/references/automation/control-flow.mdx index e551d664cf9..c950862bed9 100644 --- a/content/docs/references/automation/control-flow.mdx +++ b/content/docs/references/automation/control-flow.mdx @@ -1,5 +1,6 @@ --- -title: Control Flow +title: Control Flow — Automation Protocol reference +navTitle: Control Flow description: "Structured control-flow constructs — the native + AI-authored flow model: a loop container, a parallel block, and structured try/catch/retry." --- diff --git a/content/docs/references/automation/execution.mdx b/content/docs/references/automation/execution.mdx index 0e00a4199a4..6966ae70a3a 100644 --- a/content/docs/references/automation/execution.mdx +++ b/content/docs/references/automation/execution.mdx @@ -1,5 +1,6 @@ --- -title: Execution +title: Execution — Automation Protocol reference +navTitle: Execution description: "Defines schemas for execution logging, error tracking, checkpointing, concurrency control, and scheduled execution persistence." --- diff --git a/content/docs/references/automation/flow-function.mdx b/content/docs/references/automation/flow-function.mdx index 1fa5a109bf9..3b6a6ea04e6 100644 --- a/content/docs/references/automation/flow-function.mdx +++ b/content/docs/references/automation/flow-function.mdx @@ -1,5 +1,6 @@ --- -title: Flow Function +title: Flow Function — Automation Protocol reference +navTitle: Flow Function description: "The contract for a named handler function a script node invokes — contributed by defineStack({ functions }) and resolved by name at execute time." --- diff --git a/content/docs/references/automation/flow.mdx b/content/docs/references/automation/flow.mdx index 64e71e4eeed..02c7fdb7ce7 100644 --- a/content/docs/references/automation/flow.mdx +++ b/content/docs/references/automation/flow.mdx @@ -1,5 +1,6 @@ --- -title: Flow +title: Flow schema — Automation Protocol reference +navTitle: Flow description: "Flow schemas of the ObjectStack Automation Protocol: Flow, FlowEdge, FlowNode and 3 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/automation/index.mdx b/content/docs/references/automation/index.mdx index 74343ae441a..e9c873bc3a0 100644 --- a/content/docs/references/automation/index.mdx +++ b/content/docs/references/automation/index.mdx @@ -1,5 +1,6 @@ --- -title: Automation Protocol +title: Automation Protocol — schema reference +navTitle: Automation Protocol description: "The ObjectStack Automation Protocol in 14 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/automation/io-node-config.mdx b/content/docs/references/automation/io-node-config.mdx index dc7af9ad9b8..8874c3246a5 100644 --- a/content/docs/references/automation/io-node-config.mdx +++ b/content/docs/references/automation/io-node-config.mdx @@ -1,5 +1,6 @@ --- -title: Io Node Config +title: Io Node Config — Automation Protocol reference +navTitle: Io Node Config description: "Config contracts for the flat IO builtins — notify and http. Reference for HttpConfig, NotifyConfig: every property with its type and default." --- diff --git a/content/docs/references/automation/node-executor.mdx b/content/docs/references/automation/node-executor.mdx index 563acd046d0..0d843f47037 100644 --- a/content/docs/references/automation/node-executor.mdx +++ b/content/docs/references/automation/node-executor.mdx @@ -1,5 +1,6 @@ --- -title: Node Executor +title: Node Executor — Automation Protocol reference +navTitle: Node Executor description: "Defines the specification for node executor plugins, with a focus on the wait node executor that supports flow pause and external-event resume." --- diff --git a/content/docs/references/automation/schedule-organization.mdx b/content/docs/references/automation/schedule-organization.mdx index f5abeaae448..214f0ee2db2 100644 --- a/content/docs/references/automation/schedule-organization.mdx +++ b/content/docs/references/automation/schedule-organization.mdx @@ -1,5 +1,6 @@ --- -title: Schedule Organization +title: Schedule Organization — Automation Protocol +navTitle: Schedule Organization description: "The ACTING ORGANIZATION of a time-triggered flow — the one start-node key that says which organization a scheduled run executes as." --- diff --git a/content/docs/references/automation/schemaless-node-config.mdx b/content/docs/references/automation/schemaless-node-config.mdx index 8f0bf19f832..401f6b4a3f6 100644 --- a/content/docs/references/automation/schemaless-node-config.mdx +++ b/content/docs/references/automation/schemaless-node-config.mdx @@ -1,5 +1,6 @@ --- -title: Schemaless Node Config +title: Schemaless Node Config — Automation Protocol +navTitle: Schemaless Node Config description: "Config contracts for the descriptor-schemaless builtins whose designer form lives ONLY in objectui's hand-written FLOW_NODE_CONFIG table — script." --- diff --git a/content/docs/references/automation/state-machine.mdx b/content/docs/references/automation/state-machine.mdx index b3d2e833501..f3941e1fb10 100644 --- a/content/docs/references/automation/state-machine.mdx +++ b/content/docs/references/automation/state-machine.mdx @@ -1,5 +1,6 @@ --- -title: State Machine +title: State Machine — Automation Protocol reference +navTitle: State Machine description: "XState-inspired State Machine Protocol — hierarchical states, guarded transitions, entry/exit actions." --- diff --git a/content/docs/references/automation/time-relative-trigger.mdx b/content/docs/references/automation/time-relative-trigger.mdx index e7a62beeb5b..538305cdbf3 100644 --- a/content/docs/references/automation/time-relative-trigger.mdx +++ b/content/docs/references/automation/time-relative-trigger.mdx @@ -1,5 +1,6 @@ --- -title: Time Relative Trigger +title: Time Relative Trigger — Automation Protocol +navTitle: Time Relative Trigger description: "A declarative trigger for time-relative business rules — \"act on records whose date field is coming up (or overdue) relative to today\"." --- diff --git a/content/docs/references/automation/webhook.mdx b/content/docs/references/automation/webhook.mdx index 9c7f6e2e6f4..fc95e269132 100644 --- a/content/docs/references/automation/webhook.mdx +++ b/content/docs/references/automation/webhook.mdx @@ -1,5 +1,6 @@ --- -title: Webhook +title: Webhook schema — Automation Protocol reference +navTitle: Webhook description: "Webhook schemas of the ObjectStack Automation Protocol: Webhook, WebhookTriggerType — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/analytics.mdx b/content/docs/references/data/analytics.mdx index 1c6f2390fef..cc64d3c013a 100644 --- a/content/docs/references/data/analytics.mdx +++ b/content/docs/references/data/analytics.mdx @@ -1,5 +1,6 @@ --- -title: Analytics +title: Analytics schema — Data Protocol reference +navTitle: Analytics description: "Defines the \"Business Logic\" for data analysis. Inspired by Cube.dev, LookML, and dbt MetricFlow." --- diff --git a/content/docs/references/data/context-tokens.mdx b/content/docs/references/data/context-tokens.mdx index bb7285b66d3..6ab90d4a8df 100644 --- a/content/docs/references/data/context-tokens.mdx +++ b/content/docs/references/data/context-tokens.mdx @@ -1,5 +1,6 @@ --- -title: Context Tokens +title: Context Tokens — Data Protocol reference +navTitle: Context Tokens description: "Context Tokens — the declarative placeholders that resolve against the caller's session (who am I, which org am I in) rather than the clock." --- diff --git a/content/docs/references/data/data-engine.mdx b/content/docs/references/data/data-engine.mdx index ff78ba644f7..24b7f231127 100644 --- a/content/docs/references/data/data-engine.mdx +++ b/content/docs/references/data/data-engine.mdx @@ -1,5 +1,6 @@ --- -title: Data Engine +title: Data Engine schema — Data Protocol reference +navTitle: Data Engine description: "Defines the standard interface for data persistence engines in ObjectStack." --- diff --git a/content/docs/references/data/datasource.mdx b/content/docs/references/data/datasource.mdx index 901673f178e..c1297f9dfde 100644 --- a/content/docs/references/data/datasource.mdx +++ b/content/docs/references/data/datasource.mdx @@ -1,5 +1,6 @@ --- -title: Datasource +title: Datasource schema — Data Protocol reference +navTitle: Datasource description: "Datasource schemas of the ObjectStack Data Protocol: Datasource, DriverDefinition and 3 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/date-macros.mdx b/content/docs/references/data/date-macros.mdx index c3dee7f3d29..f0f0d0a7732 100644 --- a/content/docs/references/data/date-macros.mdx +++ b/content/docs/references/data/date-macros.mdx @@ -1,5 +1,6 @@ --- -title: Date Macros +title: Date Macros schema — Data Protocol reference +navTitle: Date Macros description: "Date Macro Tokens — the declarative placeholders the UI substitutes into filter values before sending a query to the data engine." --- diff --git a/content/docs/references/data/document.mdx b/content/docs/references/data/document.mdx index 452f9a57c08..6f876bf9b26 100644 --- a/content/docs/references/data/document.mdx +++ b/content/docs/references/data/document.mdx @@ -1,5 +1,6 @@ --- -title: Document +title: Document schema — Data Protocol reference +navTitle: Document description: "Document schemas of the ObjectStack Data Protocol: Document, DocumentTemplate and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/driver-common.mdx b/content/docs/references/data/driver-common.mdx index c97884fdcde..3ce3622c32a 100644 --- a/content/docs/references/data/driver-common.mdx +++ b/content/docs/references/data/driver-common.mdx @@ -1,5 +1,6 @@ --- -title: Driver Common +title: Driver Common schema — Data Protocol reference +navTitle: Driver Common description: "Shared building blocks for the per-driver datasource.config shapes. Reference for DriverSslToggle, SqlAutoMigrate: every property with its type and default." --- diff --git a/content/docs/references/data/driver-memory.mdx b/content/docs/references/data/driver-memory.mdx index c07b5654f14..c81cc69d3cb 100644 --- a/content/docs/references/data/driver-memory.mdx +++ b/content/docs/references/data/driver-memory.mdx @@ -1,5 +1,6 @@ --- -title: Driver Memory +title: Driver Memory schema — Data Protocol reference +navTitle: Driver Memory description: "Defines the configuration options for the in-memory driver. Reference: objectql/packages/drivers/memory (Mingo-powered production-ready driver)." --- diff --git a/content/docs/references/data/driver-mongo.mdx b/content/docs/references/data/driver-mongo.mdx index 23393a3bb45..930ad567127 100644 --- a/content/docs/references/data/driver-mongo.mdx +++ b/content/docs/references/data/driver-mongo.mdx @@ -1,5 +1,6 @@ --- -title: Driver Mongo +title: Driver Mongo schema — Data Protocol reference +navTitle: Driver Mongo description: "Describes the MongoDB connection settings and capabilities. ENFORCED as of #4410." --- diff --git a/content/docs/references/data/driver-mysql.mdx b/content/docs/references/data/driver-mysql.mdx index cb77848be11..e05d84058ba 100644 --- a/content/docs/references/data/driver-mysql.mdx +++ b/content/docs/references/data/driver-mysql.mdx @@ -1,5 +1,6 @@ --- -title: Driver Mysql +title: Driver Mysql schema — Data Protocol reference +navTitle: Driver Mysql description: "MySQL / MariaDB driver configuration — the config slot of a datasource whose driver resolves to mysql (mysql2)." --- diff --git a/content/docs/references/data/driver-nosql.mdx b/content/docs/references/data/driver-nosql.mdx index 66fd0bc1cb0..4f7c1b7bc99 100644 --- a/content/docs/references/data/driver-nosql.mdx +++ b/content/docs/references/data/driver-nosql.mdx @@ -1,5 +1,6 @@ --- -title: Driver Nosql +title: Driver Nosql schema — Data Protocol reference +navTitle: Driver Nosql description: "Driver Nosql schemas of the ObjectStack Data Protocol: AggregationPipeline and 13 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/driver-postgres.mdx b/content/docs/references/data/driver-postgres.mdx index 806cc1662e2..d2c7a8bc37b 100644 --- a/content/docs/references/data/driver-postgres.mdx +++ b/content/docs/references/data/driver-postgres.mdx @@ -1,5 +1,6 @@ --- -title: Driver Postgres +title: Driver Postgres — Data Protocol reference +navTitle: Driver Postgres description: "PostgreSQL driver configuration — the config slot of a datasource whose driver resolves to postgres (pg / postgresql)." --- diff --git a/content/docs/references/data/driver-sql.mdx b/content/docs/references/data/driver-sql.mdx index aee15e0fb85..052b725ae2b 100644 --- a/content/docs/references/data/driver-sql.mdx +++ b/content/docs/references/data/driver-sql.mdx @@ -1,5 +1,6 @@ --- -title: Driver Sql +title: Driver Sql schema — Data Protocol reference +navTitle: Driver Sql description: "Driver Sql schemas of the ObjectStack Data Protocol: DataTypeMapping, SQLDialect and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/driver-sqlite.mdx b/content/docs/references/data/driver-sqlite.mdx index 9cfdf2e8b8b..39357e237b8 100644 --- a/content/docs/references/data/driver-sqlite.mdx +++ b/content/docs/references/data/driver-sqlite.mdx @@ -1,5 +1,6 @@ --- -title: Driver Sqlite +title: Driver Sqlite schema — Data Protocol reference +navTitle: Driver Sqlite description: "SQLite driver configuration — the config slot of a datasource whose driver resolves to sqlite or to sqlite-wasm (pure-JS)." --- diff --git a/content/docs/references/data/driver-turso.mdx b/content/docs/references/data/driver-turso.mdx index c52a6fcb5b9..a6a8c86f9a6 100644 --- a/content/docs/references/data/driver-turso.mdx +++ b/content/docs/references/data/driver-turso.mdx @@ -1,5 +1,6 @@ --- -title: Driver Turso +title: Driver Turso schema — Data Protocol reference +navTitle: Driver Turso description: "Turso / libSQL Driver Protocol. Reference for TursoConfig, TursoTransportMode: every property with its type and default." --- diff --git a/content/docs/references/data/driver.mdx b/content/docs/references/data/driver.mdx index 52232ddcfc8..1f1babbd574 100644 --- a/content/docs/references/data/driver.mdx +++ b/content/docs/references/data/driver.mdx @@ -1,5 +1,6 @@ --- -title: Driver +title: Driver schema — Data Protocol reference +navTitle: Driver description: "Driver schemas of the ObjectStack Data Protocol: DriverCapabilities, DriverConfig and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/external-catalog.mdx b/content/docs/references/data/external-catalog.mdx index 97f8bc6f80c..e17233e5bf1 100644 --- a/content/docs/references/data/external-catalog.mdx +++ b/content/docs/references/data/external-catalog.mdx @@ -1,5 +1,6 @@ --- -title: External Catalog +title: External Catalog — Data Protocol reference +navTitle: External Catalog description: "ExternalCatalog — cached remote-schema snapshot for a federated datasource." --- diff --git a/content/docs/references/data/feed.mdx b/content/docs/references/data/feed.mdx index d10a7140885..6f7ea641cad 100644 --- a/content/docs/references/data/feed.mdx +++ b/content/docs/references/data/feed.mdx @@ -1,5 +1,6 @@ --- -title: Feed +title: Feed schema — Data Protocol reference +navTitle: Feed description: "Activity-timeline UI config enums, and the sys_activity.type built-in set." --- diff --git a/content/docs/references/data/field-value.mdx b/content/docs/references/data/field-value.mdx index 7dcd142cd8b..548da8fa359 100644 --- a/content/docs/references/data/field-value.mdx +++ b/content/docs/references/data/field-value.mdx @@ -1,5 +1,6 @@ --- -title: Field Value +title: Field Value schema — Data Protocol reference +navTitle: Field Value description: "Field runtime VALUE-shape contract. Reference for Address, AddressValue, CalendarDateValue, ClockTimeValue and 6 more: every property with its type and default." --- diff --git a/content/docs/references/data/field.mdx b/content/docs/references/data/field.mdx index a730dd7662f..7abf549506a 100644 --- a/content/docs/references/data/field.mdx +++ b/content/docs/references/data/field.mdx @@ -1,5 +1,6 @@ --- -title: Field +title: Field schema — Data Protocol reference +navTitle: Field description: "Field schemas of the ObjectStack Data Protocol: CurrencyConfig, CurrencyValue, Field and 7 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/filter.mdx b/content/docs/references/data/filter.mdx index f89c0e83aef..edbb0b79c07 100644 --- a/content/docs/references/data/filter.mdx +++ b/content/docs/references/data/filter.mdx @@ -1,5 +1,6 @@ --- -title: Filter +title: Filter schema — Data Protocol reference +navTitle: Filter description: "Unified Query DSL Specification. Reference for ComparisonOperator, EqualityOperator, FieldOperators and 9 more: every property with its type and default." --- diff --git a/content/docs/references/data/hook-body.mdx b/content/docs/references/data/hook-body.mdx index 7f5a64f7e83..ae570d492d5 100644 --- a/content/docs/references/data/hook-body.mdx +++ b/content/docs/references/data/hook-body.mdx @@ -1,5 +1,6 @@ --- -title: Hook Body +title: Hook Body schema — Data Protocol reference +navTitle: Hook Body description: "Hook Body schemas of the ObjectStack Data Protocol: ExpressionBody, HookBody and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/hook.mdx b/content/docs/references/data/hook.mdx index efac49827bd..f1b32f40c27 100644 --- a/content/docs/references/data/hook.mdx +++ b/content/docs/references/data/hook.mdx @@ -1,5 +1,6 @@ --- -title: Hook +title: Hook schema — Data Protocol property reference +navTitle: Hook description: "Hook schemas of the ObjectStack Data Protocol: Hook, HookContext, HookEvent — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/index.mdx b/content/docs/references/data/index.mdx index 7cdf0f0fd15..543ec10bbdf 100644 --- a/content/docs/references/data/index.mdx +++ b/content/docs/references/data/index.mdx @@ -1,5 +1,6 @@ --- -title: Data Protocol +title: Data Protocol — complete schema reference +navTitle: Data Protocol description: "The ObjectStack Data Protocol in 29 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/data/mapping.mdx b/content/docs/references/data/mapping.mdx index d7fd4cccd15..632a481169b 100644 --- a/content/docs/references/data/mapping.mdx +++ b/content/docs/references/data/mapping.mdx @@ -1,5 +1,6 @@ --- -title: Mapping +title: Mapping schema — Data Protocol reference +navTitle: Mapping description: "Mapping schemas of the ObjectStack Data Protocol: ImportFieldMapping, Mapping, TransformType — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/object.mdx b/content/docs/references/data/object.mdx index f17f4d4aaef..ae640847fcf 100644 --- a/content/docs/references/data/object.mdx +++ b/content/docs/references/data/object.mdx @@ -1,5 +1,6 @@ --- -title: Object +title: Object schema — Data Protocol reference +navTitle: Object description: "Object schemas of the ObjectStack Data Protocol: ApiMethod, ApiOperation, Index and 13 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/query.mdx b/content/docs/references/data/query.mdx index e0b3ad9e35b..8a7e4b211f5 100644 --- a/content/docs/references/data/query.mdx +++ b/content/docs/references/data/query.mdx @@ -1,5 +1,6 @@ --- -title: Query +title: Query schema — Data Protocol reference +navTitle: Query description: "QueryAST — Abstract Syntax Tree for data queries. Reference for AggregationFunction, AggregationNode and 6 more: every property with its type and default." --- diff --git a/content/docs/references/data/seed-loader.mdx b/content/docs/references/data/seed-loader.mdx index 83b3ae0efff..175ed6f882a 100644 --- a/content/docs/references/data/seed-loader.mdx +++ b/content/docs/references/data/seed-loader.mdx @@ -1,5 +1,6 @@ --- -title: Seed Loader +title: Seed Loader schema — Data Protocol reference +navTitle: Seed Loader description: "Defines the schemas for metadata-driven seed data loading with automatic relationship resolution, dependency ordering, and multi-pass insertion." --- diff --git a/content/docs/references/data/seed.mdx b/content/docs/references/data/seed.mdx index 6acc3045cb4..9492a46ad3b 100644 --- a/content/docs/references/data/seed.mdx +++ b/content/docs/references/data/seed.mdx @@ -1,5 +1,6 @@ --- -title: Seed +title: Seed schema — Data Protocol property reference +navTitle: Seed description: "Seed schemas of the ObjectStack Data Protocol: Seed, SeedMode — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/data/validation.mdx b/content/docs/references/data/validation.mdx index f99714955c6..707da62b410 100644 --- a/content/docs/references/data/validation.mdx +++ b/content/docs/references/data/validation.mdx @@ -1,5 +1,6 @@ --- -title: Validation +title: Validation schema — Data Protocol reference +navTitle: Validation description: "This module defines the validation schema protocol for ObjectStack, providing a comprehensive type-safe validation system similar to Salesforce's validation…" --- diff --git a/content/docs/references/identity/eval-user.mdx b/content/docs/references/identity/eval-user.mdx index 37e43fa6e7b..c33297b06bb 100644 --- a/content/docs/references/identity/eval-user.mdx +++ b/content/docs/references/identity/eval-user.mdx @@ -1,5 +1,6 @@ --- -title: Eval User +title: Eval User schema — Identity Protocol reference +navTitle: Eval User description: "EvalUser — the one user-context contract. Reference for EvalUser: every property with its type and default." --- diff --git a/content/docs/references/identity/identity.mdx b/content/docs/references/identity/identity.mdx index a077d24199b..d0cf6582f15 100644 --- a/content/docs/references/identity/identity.mdx +++ b/content/docs/references/identity/identity.mdx @@ -1,5 +1,6 @@ --- -title: Identity +title: Identity schema — Identity Protocol reference +navTitle: Identity description: "Defines the standard user, account, and session data models for ObjectStack. These schemas represent \"who is logged in\" and their associated data." --- diff --git a/content/docs/references/identity/index.mdx b/content/docs/references/identity/index.mdx index c23515d55fd..d745fb7f3ca 100644 --- a/content/docs/references/identity/index.mdx +++ b/content/docs/references/identity/index.mdx @@ -1,5 +1,6 @@ --- -title: Identity Protocol +title: Identity Protocol — complete schema reference +navTitle: Identity Protocol description: "The ObjectStack Identity Protocol in 5 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/identity/organization.mdx b/content/docs/references/identity/organization.mdx index 0382457dfe4..88606a23e6c 100644 --- a/content/docs/references/identity/organization.mdx +++ b/content/docs/references/identity/organization.mdx @@ -1,5 +1,6 @@ --- -title: Organization +title: Organization — Identity Protocol reference +navTitle: Organization description: "Defines the standard organization/workspace model for ObjectStack. Supports B2B SaaS scenarios where users belong to multiple teams/workspaces." --- diff --git a/content/docs/references/identity/position.mdx b/content/docs/references/identity/position.mdx index 0b8558a9dd7..0a619287f3e 100644 --- a/content/docs/references/identity/position.mdx +++ b/content/docs/references/identity/position.mdx @@ -1,5 +1,6 @@ --- -title: Position +title: Position schema — Identity Protocol reference +navTitle: Position description: "Position schemas of the ObjectStack Identity Protocol: Position — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/identity/scim.mdx b/content/docs/references/identity/scim.mdx index 0ac78da94d6..89c02258d86 100644 --- a/content/docs/references/identity/scim.mdx +++ b/content/docs/references/identity/scim.mdx @@ -1,5 +1,6 @@ --- -title: Scim +title: Scim schema — Identity Protocol reference +navTitle: Scim description: "System for Cross-domain Identity Management (SCIM) 2.0 specification implementation for ObjectStack." --- diff --git a/content/docs/references/index.mdx b/content/docs/references/index.mdx index d2960fedf93..ca3560cf403 100644 --- a/content/docs/references/index.mdx +++ b/content/docs/references/index.mdx @@ -1,5 +1,6 @@ --- -title: Protocol Reference +title: Protocol reference — every schema by module +navTitle: Protocol Reference description: Every schema published by @objectstack/spec — 1516 schemas across 14 protocol modules --- diff --git a/content/docs/references/integration/connector.mdx b/content/docs/references/integration/connector.mdx index 7e0d0ffda35..4be4d46991d 100644 --- a/content/docs/references/integration/connector.mdx +++ b/content/docs/references/integration/connector.mdx @@ -1,5 +1,6 @@ --- -title: Connector +title: Connector — Integration Protocol reference +navTitle: Connector description: "Defines the standard connector specification for external system integration." --- diff --git a/content/docs/references/integration/index.mdx b/content/docs/references/integration/index.mdx index 0e5ff80e345..ae64c832146 100644 --- a/content/docs/references/integration/index.mdx +++ b/content/docs/references/integration/index.mdx @@ -1,5 +1,6 @@ --- -title: Integration Protocol +title: Integration Protocol — schema reference +navTitle: Integration Protocol description: "The ObjectStack Integration Protocol in 1 reference page: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/kernel/cli-extension.mdx b/content/docs/references/kernel/cli-extension.mdx index c7671b3e706..172f6ce19e8 100644 --- a/content/docs/references/kernel/cli-extension.mdx +++ b/content/docs/references/kernel/cli-extension.mdx @@ -1,5 +1,6 @@ --- -title: Cli Extension +title: Cli Extension — Kernel Protocol reference +navTitle: Cli Extension description: "Defines the contract for plugins that extend the ObjectStack CLI with custom commands." --- diff --git a/content/docs/references/kernel/cluster.mdx b/content/docs/references/kernel/cluster.mdx index 9aed3b3bb51..127a9752f4f 100644 --- a/content/docs/references/kernel/cluster.mdx +++ b/content/docs/references/kernel/cluster.mdx @@ -1,5 +1,6 @@ --- -title: Cluster +title: Cluster schema — Kernel Protocol reference +navTitle: Cluster description: "Defines the runtime semantics required for ObjectStack to behave correctly when more than one Node.js process is involved." --- diff --git a/content/docs/references/kernel/context.mdx b/content/docs/references/kernel/context.mdx index 0044683301e..483e7e7cd66 100644 --- a/content/docs/references/kernel/context.mdx +++ b/content/docs/references/kernel/context.mdx @@ -1,5 +1,6 @@ --- -title: Context +title: Context schema — Kernel Protocol reference +navTitle: Context description: "Context schemas of the ObjectStack Kernel Protocol: KernelContext, RuntimeMode and 1 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/dependency-resolution.mdx b/content/docs/references/kernel/dependency-resolution.mdx index e5f580496bc..7e2187a4244 100644 --- a/content/docs/references/kernel/dependency-resolution.mdx +++ b/content/docs/references/kernel/dependency-resolution.mdx @@ -1,5 +1,6 @@ --- -title: Dependency Resolution +title: Dependency Resolution — Kernel Protocol +navTitle: Dependency Resolution description: "Defines schemas for runtime dependency resolution when installing, upgrading, or managing packages." --- diff --git a/content/docs/references/kernel/events-bus.mdx b/content/docs/references/kernel/events-bus.mdx index 999b991d950..f44dafa6f7d 100644 --- a/content/docs/references/kernel/events-bus.mdx +++ b/content/docs/references/kernel/events-bus.mdx @@ -1,5 +1,6 @@ --- -title: Events Bus +title: Events Bus schema — Kernel Protocol reference +navTitle: Events Bus description: "Events Bus schemas of the ObjectStack Kernel Protocol: EventBusConfig — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/events-core.mdx b/content/docs/references/kernel/events-core.mdx index 7ed291994eb..67e81d3cc28 100644 --- a/content/docs/references/kernel/events-core.mdx +++ b/content/docs/references/kernel/events-core.mdx @@ -1,5 +1,6 @@ --- -title: Events Core +title: Events Core schema — Kernel Protocol reference +navTitle: Events Core description: "Events Core schemas of the ObjectStack Kernel Protocol: Event, EventMetadata and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/events-dlq.mdx b/content/docs/references/kernel/events-dlq.mdx index 21969464225..de3674e207e 100644 --- a/content/docs/references/kernel/events-dlq.mdx +++ b/content/docs/references/kernel/events-dlq.mdx @@ -1,5 +1,6 @@ --- -title: Events Dlq +title: Events Dlq schema — Kernel Protocol reference +navTitle: Events Dlq description: "Events Dlq schemas of the ObjectStack Kernel Protocol: DeadLetterQueueEntry, EventLogEntry — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/events-handlers.mdx b/content/docs/references/kernel/events-handlers.mdx index 6a214fa957b..d08764824bd 100644 --- a/content/docs/references/kernel/events-handlers.mdx +++ b/content/docs/references/kernel/events-handlers.mdx @@ -1,5 +1,6 @@ --- -title: Events Handlers +title: Events Handlers — Kernel Protocol reference +navTitle: Events Handlers description: "Events Handlers schemas of the ObjectStack Kernel Protocol: EventHandler and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/events-integrations.mdx b/content/docs/references/kernel/events-integrations.mdx index 5e983ba7000..18ced1dcfb8 100644 --- a/content/docs/references/kernel/events-integrations.mdx +++ b/content/docs/references/kernel/events-integrations.mdx @@ -1,5 +1,6 @@ --- -title: Events Integrations +title: Events Integrations — Kernel Protocol +navTitle: Events Integrations description: "Events Integrations schemas of the ObjectStack Kernel Protocol — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/events-queue.mdx b/content/docs/references/kernel/events-queue.mdx index 6c6ade8e2c1..9bd88c4bdc8 100644 --- a/content/docs/references/kernel/events-queue.mdx +++ b/content/docs/references/kernel/events-queue.mdx @@ -1,5 +1,6 @@ --- -title: Events Queue +title: Events Queue — Kernel Protocol reference +navTitle: Events Queue description: "Events Queue schemas of the ObjectStack Kernel Protocol: EventQueueConfig and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/execution-context.mdx b/content/docs/references/kernel/execution-context.mdx index 4caf25005fb..898b44e3313 100644 --- a/content/docs/references/kernel/execution-context.mdx +++ b/content/docs/references/kernel/execution-context.mdx @@ -1,5 +1,6 @@ --- -title: Execution Context +title: Execution Context — Kernel Protocol reference +navTitle: Execution Context description: "Execution Context schemas of the ObjectStack Kernel Protocol: ExecutionContext — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/index.mdx b/content/docs/references/kernel/index.mdx index 86f7bdfe4f6..7f8b012e72b 100644 --- a/content/docs/references/kernel/index.mdx +++ b/content/docs/references/kernel/index.mdx @@ -1,5 +1,6 @@ --- -title: Kernel Protocol +title: Kernel Protocol — complete schema reference +navTitle: Kernel Protocol description: "The ObjectStack Kernel Protocol in 30 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/kernel/manifest.mdx b/content/docs/references/kernel/manifest.mdx index 84da4fb7507..da36f94a415 100644 --- a/content/docs/references/kernel/manifest.mdx +++ b/content/docs/references/kernel/manifest.mdx @@ -1,5 +1,6 @@ --- -title: Manifest +title: Manifest schema — Kernel Protocol reference +navTitle: Manifest description: "Manifest schemas of the ObjectStack Kernel Protocol: Manifest, ManifestPermissions and 5 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/metadata-loader.mdx b/content/docs/references/kernel/metadata-loader.mdx index c12d5ab5395..3557d6f1757 100644 --- a/content/docs/references/kernel/metadata-loader.mdx +++ b/content/docs/references/kernel/metadata-loader.mdx @@ -1,5 +1,6 @@ --- -title: Metadata Loader +title: Metadata Loader — Kernel Protocol reference +navTitle: Metadata Loader description: "How the runtime MetadataManager is wired: which datasource backs sys_metadata, what to fall back to when that datasource is unreachable." --- diff --git a/content/docs/references/kernel/metadata-plugin.mdx b/content/docs/references/kernel/metadata-plugin.mdx index 0558bbeb9b1..6167587d71a 100644 --- a/content/docs/references/kernel/metadata-plugin.mdx +++ b/content/docs/references/kernel/metadata-plugin.mdx @@ -1,5 +1,6 @@ --- -title: Metadata Plugin +title: Metadata Plugin — Kernel Protocol reference +navTitle: Metadata Plugin description: "Defines the specification for the Metadata Plugin — the central authority responsible for managing ALL metadata across the ObjectStack platform." --- diff --git a/content/docs/references/kernel/metadata-protection.mdx b/content/docs/references/kernel/metadata-protection.mdx index d1798d84893..deed96255eb 100644 --- a/content/docs/references/kernel/metadata-protection.mdx +++ b/content/docs/references/kernel/metadata-protection.mdx @@ -1,5 +1,6 @@ --- -title: Metadata Protection +title: Metadata Protection — Kernel Protocol +navTitle: Metadata Protection description: "Phase 1 introduces the item-level lock (_lock) and the provenance / package tags that drive it." --- diff --git a/content/docs/references/kernel/package-artifact.mdx b/content/docs/references/kernel/package-artifact.mdx index 8d89881d534..035cb848b47 100644 --- a/content/docs/references/kernel/package-artifact.mdx +++ b/content/docs/references/kernel/package-artifact.mdx @@ -1,5 +1,6 @@ --- -title: Package Artifact +title: Package Artifact — Kernel Protocol reference +navTitle: Package Artifact description: "Defines the standard structure of a package artifact (.tgz) produced by the build pipeline." --- diff --git a/content/docs/references/kernel/package-registry.mdx b/content/docs/references/kernel/package-registry.mdx index 036b0c2c616..e68d26166bf 100644 --- a/content/docs/references/kernel/package-registry.mdx +++ b/content/docs/references/kernel/package-registry.mdx @@ -1,5 +1,6 @@ --- -title: Package Registry +title: Package Registry — Kernel Protocol reference +navTitle: Package Registry description: "Defines the runtime state and lifecycle operations for installed packages." --- diff --git a/content/docs/references/kernel/package-upgrade.mdx b/content/docs/references/kernel/package-upgrade.mdx index d024e056860..e9f1f59696b 100644 --- a/content/docs/references/kernel/package-upgrade.mdx +++ b/content/docs/references/kernel/package-upgrade.mdx @@ -1,5 +1,6 @@ --- -title: Package Upgrade +title: Package Upgrade — Kernel Protocol reference +navTitle: Package Upgrade description: "Defines the complete lifecycle for upgrading installed packages, including pre-upgrade analysis, snapshot/backup, execution, validation." --- diff --git a/content/docs/references/kernel/plugin-capability.mdx b/content/docs/references/kernel/plugin-capability.mdx index 21cfd8641b3..7afdef64152 100644 --- a/content/docs/references/kernel/plugin-capability.mdx +++ b/content/docs/references/kernel/plugin-capability.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Capability +title: Plugin Capability — Kernel Protocol reference +navTitle: Plugin Capability description: "Defines the standard way plugins declare their capabilities, implementations, and conformance levels to ensure interoperability across vendors." --- diff --git a/content/docs/references/kernel/plugin-lifecycle-advanced.mdx b/content/docs/references/kernel/plugin-lifecycle-advanced.mdx index 028462ab953..2bc5ca3d130 100644 --- a/content/docs/references/kernel/plugin-lifecycle-advanced.mdx +++ b/content/docs/references/kernel/plugin-lifecycle-advanced.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Lifecycle Advanced +title: Plugin Lifecycle Advanced — Kernel Protocol +navTitle: Plugin Lifecycle Advanced description: "Declares the INPUT contracts of the host-driven lifecycle classes exported by @objectstack/core — PluginHealthMonitor." --- diff --git a/content/docs/references/kernel/plugin-loading.mdx b/content/docs/references/kernel/plugin-loading.mdx index ac2ccd08bf0..9548ad31fb3 100644 --- a/content/docs/references/kernel/plugin-loading.mdx +++ b/content/docs/references/kernel/plugin-loading.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Loading +title: Plugin Loading — Kernel Protocol reference +navTitle: Plugin Loading description: "What remains of this module is the observational half: the lifecycle event a loader would emit." --- diff --git a/content/docs/references/kernel/plugin-registry.mdx b/content/docs/references/kernel/plugin-registry.mdx index 4aae3bdd534..dfbecac3494 100644 --- a/content/docs/references/kernel/plugin-registry.mdx +++ b/content/docs/references/kernel/plugin-registry.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Registry +title: Plugin Registry — Kernel Protocol reference +navTitle: Plugin Registry description: "Plugin Registry Protocol — Defines the schema for the plugin discovery and registry system." --- diff --git a/content/docs/references/kernel/plugin-security-advanced.mdx b/content/docs/references/kernel/plugin-security-advanced.mdx index 0ba0c75994a..559e7726b59 100644 --- a/content/docs/references/kernel/plugin-security-advanced.mdx +++ b/content/docs/references/kernel/plugin-security-advanced.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Security Advanced +title: Plugin Security Advanced — Kernel Protocol +navTitle: Plugin Security Advanced description: "Defines comprehensive security mechanisms for plugin isolation, permission management, and threat protection in the ObjectStack ecosystem." --- diff --git a/content/docs/references/kernel/plugin-security.mdx b/content/docs/references/kernel/plugin-security.mdx index 50305930dd0..dd2c1885a9f 100644 --- a/content/docs/references/kernel/plugin-security.mdx +++ b/content/docs/references/kernel/plugin-security.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Security +title: Plugin Security — Kernel Protocol reference +navTitle: Plugin Security description: "Provides comprehensive security scanning, vulnerability management, and dependency resolution for the ObjectStack plugin ecosystem." --- diff --git a/content/docs/references/kernel/plugin-structure.mdx b/content/docs/references/kernel/plugin-structure.mdx index 2e738e946f9..a1c295993b4 100644 --- a/content/docs/references/kernel/plugin-structure.mdx +++ b/content/docs/references/kernel/plugin-structure.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Structure +title: Plugin Structure — Kernel Protocol reference +navTitle: Plugin Structure description: "Formal Zod definitions for the Plugin Directory Structure and File Naming conventions. This can be used by the CLI or IDE extensions to lint project structure." --- diff --git a/content/docs/references/kernel/plugin-validator.mdx b/content/docs/references/kernel/plugin-validator.mdx index 4c5431e2338..8518daa07f7 100644 --- a/content/docs/references/kernel/plugin-validator.mdx +++ b/content/docs/references/kernel/plugin-validator.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Validator +title: Plugin Validator — Kernel Protocol reference +navTitle: Plugin Validator description: "Zod schemas for plugin validation data structures. These schemas align with the IPluginValidator contract interface." --- diff --git a/content/docs/references/kernel/plugin-versioning.mdx b/content/docs/references/kernel/plugin-versioning.mdx index 871b14fb006..916deb41a5e 100644 --- a/content/docs/references/kernel/plugin-versioning.mdx +++ b/content/docs/references/kernel/plugin-versioning.mdx @@ -1,5 +1,6 @@ --- -title: Plugin Versioning +title: Plugin Versioning — Kernel Protocol reference +navTitle: Plugin Versioning description: "Defines comprehensive versioning, compatibility checking, and dependency resolution mechanisms for the plugin ecosystem." --- diff --git a/content/docs/references/kernel/plugin.mdx b/content/docs/references/kernel/plugin.mdx index ec36298808a..3154d2848c6 100644 --- a/content/docs/references/kernel/plugin.mdx +++ b/content/docs/references/kernel/plugin.mdx @@ -1,5 +1,6 @@ --- -title: Plugin +title: Plugin schema — Kernel Protocol reference +navTitle: Plugin description: "Plugin schemas of the ObjectStack Kernel Protocol: Plugin — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/kernel/service-registry.mdx b/content/docs/references/kernel/service-registry.mdx index cb6c5392371..11a9f3e65cb 100644 --- a/content/docs/references/kernel/service-registry.mdx +++ b/content/docs/references/kernel/service-registry.mdx @@ -1,5 +1,6 @@ --- -title: Service Registry +title: Service Registry — Kernel Protocol reference +navTitle: Service Registry description: "Zod schemas for service registry data structures. These schemas align with the IServiceRegistry contract interface." --- diff --git a/content/docs/references/kernel/startup-orchestrator.mdx b/content/docs/references/kernel/startup-orchestrator.mdx index 33bc2067086..a1115238cbe 100644 --- a/content/docs/references/kernel/startup-orchestrator.mdx +++ b/content/docs/references/kernel/startup-orchestrator.mdx @@ -1,5 +1,6 @@ --- -title: Startup Orchestrator +title: Startup Orchestrator — Kernel Protocol +navTitle: Startup Orchestrator description: "One schema, describing the one startup datum the kernel actually produces." --- diff --git a/content/docs/references/marketplace/index.mdx b/content/docs/references/marketplace/index.mdx index eca20dab134..b5ba880b76d 100644 --- a/content/docs/references/marketplace/index.mdx +++ b/content/docs/references/marketplace/index.mdx @@ -1,5 +1,6 @@ --- -title: Marketplace Protocol +title: Marketplace Protocol — schema reference +navTitle: Marketplace Protocol description: "The ObjectStack Marketplace Protocol in 4 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/marketplace/marketplace.mdx b/content/docs/references/marketplace/marketplace.mdx index 8802e5029be..c758ca8e7ee 100644 --- a/content/docs/references/marketplace/marketplace.mdx +++ b/content/docs/references/marketplace/marketplace.mdx @@ -1,5 +1,6 @@ --- -title: Marketplace +title: Marketplace — Marketplace Protocol reference +navTitle: Marketplace description: "Marketplace Protocol — Defines the core schemas for the plugin marketplace ecosystem." --- diff --git a/content/docs/references/marketplace/package-version.mdx b/content/docs/references/marketplace/package-version.mdx index ec09f3e594e..3d3f4b5d378 100644 --- a/content/docs/references/marketplace/package-version.mdx +++ b/content/docs/references/marketplace/package-version.mdx @@ -1,5 +1,6 @@ --- -title: Package Version +title: Package Version — Marketplace Protocol +navTitle: Package Version description: "Package Version Protocol — A package version is an immutable release snapshot of a package." --- diff --git a/content/docs/references/marketplace/package.mdx b/content/docs/references/marketplace/package.mdx index 5f7d44701dc..2fbc43d4c03 100644 --- a/content/docs/references/marketplace/package.mdx +++ b/content/docs/references/marketplace/package.mdx @@ -1,5 +1,6 @@ --- -title: Package +title: Package — Marketplace Protocol reference +navTitle: Package description: "A package (also called a Solution in Power Platform, an Unlocked Package in Salesforce, or an Application in ServiceNow) is the first-class unit of…" --- diff --git a/content/docs/references/marketplace/template-manifest.mdx b/content/docs/references/marketplace/template-manifest.mdx index e1a164974b5..2281f384c54 100644 --- a/content/docs/references/marketplace/template-manifest.mdx +++ b/content/docs/references/marketplace/template-manifest.mdx @@ -1,5 +1,6 @@ --- -title: Template Manifest +title: Template Manifest — Marketplace Protocol +navTitle: Template Manifest description: "objectstack.manifest.json — on-disk descriptor for a template / package source tree." --- diff --git a/content/docs/references/qa/index.mdx b/content/docs/references/qa/index.mdx index 793a86a3ee3..f2705ba4a6f 100644 --- a/content/docs/references/qa/index.mdx +++ b/content/docs/references/qa/index.mdx @@ -1,5 +1,6 @@ --- -title: QA Protocol +title: QA Protocol — complete schema reference +navTitle: QA Protocol description: "The ObjectStack QA Protocol in 1 reference page: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/qa/testing.mdx b/content/docs/references/qa/testing.mdx index 6611fca5f4c..f94eebcb9d2 100644 --- a/content/docs/references/qa/testing.mdx +++ b/content/docs/references/qa/testing.mdx @@ -1,5 +1,6 @@ --- -title: Testing +title: Testing schema — QA Protocol reference +navTitle: Testing description: "Testing schemas of the ObjectStack QA Protocol: TestAction, TestActionType and 6 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/security/explain.mdx b/content/docs/references/security/explain.mdx index cda660cb7a4..6813a6568da 100644 --- a/content/docs/references/security/explain.mdx +++ b/content/docs/references/security/explain.mdx @@ -1,5 +1,6 @@ --- -title: Explain +title: Explain schema — Security Protocol reference +navTitle: Explain description: "Access-explanation contract — explain(principal, object, operation) as a first-class API." --- diff --git a/content/docs/references/security/index.mdx b/content/docs/references/security/index.mdx index a44978aea1d..bf57ca81b46 100644 --- a/content/docs/references/security/index.mdx +++ b/content/docs/references/security/index.mdx @@ -1,5 +1,6 @@ --- -title: Security Protocol +title: Security Protocol — complete schema reference +navTitle: Security Protocol description: "The ObjectStack Security Protocol in 5 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/security/misc.mdx b/content/docs/references/security/misc.mdx index 7f41986fc44..dd931eb4f50 100644 --- a/content/docs/references/security/misc.mdx +++ b/content/docs/references/security/misc.mdx @@ -1,5 +1,6 @@ --- -title: Misc +title: Misc schema — Security Protocol reference +navTitle: Misc description: "Misc schemas of the ObjectStack Security Protocol: CapabilityDeclaration and 4 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/security/permission.mdx b/content/docs/references/security/permission.mdx index 6efae494475..344f23c30d7 100644 --- a/content/docs/references/security/permission.mdx +++ b/content/docs/references/security/permission.mdx @@ -1,5 +1,6 @@ --- -title: Permission +title: Permission — Security Protocol reference +navTitle: Permission description: "Permission schemas of the ObjectStack Security Protocol: AdminScope and 5 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/security/rls.mdx b/content/docs/references/security/rls.mdx index c1939a2b52a..411389d91d1 100644 --- a/content/docs/references/security/rls.mdx +++ b/content/docs/references/security/rls.mdx @@ -1,5 +1,6 @@ --- -title: Rls +title: Rls schema — Security Protocol reference +navTitle: Rls description: "Implements fine-grained record-level access control inspired by PostgreSQL RLS and Salesforce Criteria-Based Sharing Rules." --- diff --git a/content/docs/references/security/sharing.mdx b/content/docs/references/security/sharing.mdx index 33bedb6c632..53581b611c7 100644 --- a/content/docs/references/security/sharing.mdx +++ b/content/docs/references/security/sharing.mdx @@ -1,5 +1,6 @@ --- -title: Sharing +title: Sharing schema — Security Protocol reference +navTitle: Sharing description: "Sharing schemas of the ObjectStack Security Protocol: CriteriaSharingRule, OWDModel and 4 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/shared/duration.mdx b/content/docs/references/shared/duration.mdx index 7d9c6739dfd..a082f908385 100644 --- a/content/docs/references/shared/duration.mdx +++ b/content/docs/references/shared/duration.mdx @@ -1,5 +1,6 @@ --- -title: Duration +title: Duration schema — Shared Protocol reference +navTitle: Duration description: "Duration schemas of the ObjectStack Shared Protocol: DurationMs, DurationSeconds — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/shared/enums.mdx b/content/docs/references/shared/enums.mdx index 3f9cec7feff..220f173ad47 100644 --- a/content/docs/references/shared/enums.mdx +++ b/content/docs/references/shared/enums.mdx @@ -1,5 +1,6 @@ --- -title: Enums +title: Enums schema — Shared Protocol reference +navTitle: Enums description: "Enums schemas of the ObjectStack Shared Protocol: IsolationLevelEnum and 3 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/shared/epoch.mdx b/content/docs/references/shared/epoch.mdx index d0c0cfd2b2e..89733063f19 100644 --- a/content/docs/references/shared/epoch.mdx +++ b/content/docs/references/shared/epoch.mdx @@ -1,5 +1,6 @@ --- -title: Epoch +title: Epoch schema — Shared Protocol reference +navTitle: Epoch description: "Epoch schemas of the ObjectStack Shared Protocol: EpochMs — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/shared/expression.mdx b/content/docs/references/shared/expression.mdx index 14df836618e..64d93f556bb 100644 --- a/content/docs/references/shared/expression.mdx +++ b/content/docs/references/shared/expression.mdx @@ -1,5 +1,6 @@ --- -title: Expression +title: Expression schema — Shared Protocol reference +navTitle: Expression description: "Canonical wire format for all \"expression\"-shaped metadata across ObjectStack." --- diff --git a/content/docs/references/shared/http.mdx b/content/docs/references/shared/http.mdx index 04d43f16bbc..c31df75baa7 100644 --- a/content/docs/references/shared/http.mdx +++ b/content/docs/references/shared/http.mdx @@ -1,5 +1,6 @@ --- -title: Http +title: Http schema — Shared Protocol reference +navTitle: Http description: "Common HTTP-related schemas used across API and System protocols. These schemas ensure consistency across different parts of the stack." --- diff --git a/content/docs/references/shared/identifiers.mdx b/content/docs/references/shared/identifiers.mdx index a9194c84d3b..369f200ef5c 100644 --- a/content/docs/references/shared/identifiers.mdx +++ b/content/docs/references/shared/identifiers.mdx @@ -1,5 +1,6 @@ --- -title: Identifiers +title: Identifiers schema — Shared Protocol reference +navTitle: Identifiers description: "Identifiers schemas of the ObjectStack Shared Protocol: MetadataItemName and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/shared/index.mdx b/content/docs/references/shared/index.mdx index afb6384eb8e..d746dfcd632 100644 --- a/content/docs/references/shared/index.mdx +++ b/content/docs/references/shared/index.mdx @@ -1,5 +1,6 @@ --- -title: Shared Protocol +title: Shared Protocol — complete schema reference +navTitle: Shared Protocol description: "The ObjectStack Shared Protocol in 10 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/shared/mapping.mdx b/content/docs/references/shared/mapping.mdx index 07b62544fba..73f2928447e 100644 --- a/content/docs/references/shared/mapping.mdx +++ b/content/docs/references/shared/mapping.mdx @@ -1,5 +1,6 @@ --- -title: Mapping +title: Mapping schema — Shared Protocol reference +navTitle: Mapping description: "This module provides the canonical field mapping schema used across ObjectStack for data synchronization." --- diff --git a/content/docs/references/shared/metadata-types.mdx b/content/docs/references/shared/metadata-types.mdx index f77374950f6..6f9cd00fb46 100644 --- a/content/docs/references/shared/metadata-types.mdx +++ b/content/docs/references/shared/metadata-types.mdx @@ -1,5 +1,6 @@ --- -title: Metadata Types +title: Metadata Types — Shared Protocol reference +navTitle: Metadata Types description: "Metadata Types schemas of the ObjectStack Shared Protocol: BaseMetadataRecord, MetadataFormat — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/shared/protection.mdx b/content/docs/references/shared/protection.mdx index 6a99bf70f14..86d2dbe1d19 100644 --- a/content/docs/references/shared/protection.mdx +++ b/content/docs/references/shared/protection.mdx @@ -1,5 +1,6 @@ --- -title: Protection +title: Protection schema — Shared Protocol reference +navTitle: Protection description: "Public, type-safe author surface for package authors to declare how much of one of their metadata items the runtime." --- diff --git a/content/docs/references/shared/value-domain.mdx b/content/docs/references/shared/value-domain.mdx index 21772c256ed..3c07cdf68ed 100644 --- a/content/docs/references/shared/value-domain.mdx +++ b/content/docs/references/shared/value-domain.mdx @@ -1,5 +1,6 @@ --- -title: Value Domain +title: Value Domain — Shared Protocol reference +navTitle: Value Domain description: "Standard value domains: one closed vocabulary and one membership predicate for settings and fields." --- diff --git a/content/docs/references/studio/flow-builder.mdx b/content/docs/references/studio/flow-builder.mdx index 6bcec3db5a8..901a278b188 100644 --- a/content/docs/references/studio/flow-builder.mdx +++ b/content/docs/references/studio/flow-builder.mdx @@ -1,5 +1,6 @@ --- -title: Flow Builder +title: Flow Builder — Studio Protocol reference +navTitle: Flow Builder description: "Studio Flow Builder Protocol. Reference for FlowBuilderConfig, FlowCanvasEdge, FlowCanvasEdgeStyle and 5 more: every property with its type and default." --- diff --git a/content/docs/references/studio/index.mdx b/content/docs/references/studio/index.mdx index 0b74fe5ecbd..1e3dd268991 100644 --- a/content/docs/references/studio/index.mdx +++ b/content/docs/references/studio/index.mdx @@ -1,5 +1,6 @@ --- -title: Studio Protocol +title: Studio Protocol — complete schema reference +navTitle: Studio Protocol description: "The ObjectStack Studio Protocol in 3 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/studio/object-designer.mdx b/content/docs/references/studio/object-designer.mdx index 9fe34e201ec..53949360d8b 100644 --- a/content/docs/references/studio/object-designer.mdx +++ b/content/docs/references/studio/object-designer.mdx @@ -1,5 +1,6 @@ --- -title: Object Designer +title: Object Designer — Studio Protocol reference +navTitle: Object Designer description: "Defines the specification for the Object Designer experience within ObjectStack Studio." --- diff --git a/content/docs/references/studio/plugin.mdx b/content/docs/references/studio/plugin.mdx index d1b48282401..a6361415bde 100644 --- a/content/docs/references/studio/plugin.mdx +++ b/content/docs/references/studio/plugin.mdx @@ -1,5 +1,6 @@ --- -title: Plugin +title: Plugin schema — Studio Protocol reference +navTitle: Plugin description: "Defines the specification for Studio plugins — a VS Code-like extension model that allows each metadata type to contribute custom viewers, designers." --- diff --git a/content/docs/references/system/app-install.mdx b/content/docs/references/system/app-install.mdx index 3dcd6ed0b9b..aab8111f8d4 100644 --- a/content/docs/references/system/app-install.mdx +++ b/content/docs/references/system/app-install.mdx @@ -1,5 +1,6 @@ --- -title: App Install +title: App Install schema — System Protocol reference +navTitle: App Install description: "Defines the schemas for installing marketplace apps into tenant databases." --- diff --git a/content/docs/references/system/auth-config.mdx b/content/docs/references/system/auth-config.mdx index d55d58b1ff6..1c8c62f64a5 100644 --- a/content/docs/references/system/auth-config.mdx +++ b/content/docs/references/system/auth-config.mdx @@ -1,5 +1,6 @@ --- -title: Auth Config +title: Auth Config schema — System Protocol reference +navTitle: Auth Config description: "Auth Config schemas of the ObjectStack System Protocol: AdvancedAuthConfig and 10 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/book.mdx b/content/docs/references/system/book.mdx index 9ba2e16117a..66d4f7065ed 100644 --- a/content/docs/references/system/book.mdx +++ b/content/docs/references/system/book.mdx @@ -1,5 +1,6 @@ --- -title: Book +title: Book schema — System Protocol reference +navTitle: Book description: "Package Documentation Navigation — the book element. A book is the spine of a table of contents: an ordered set of groups (sections) plus identity and access." --- diff --git a/content/docs/references/system/cache.mdx b/content/docs/references/system/cache.mdx index 21198a4bd0e..150a6049cf5 100644 --- a/content/docs/references/system/cache.mdx +++ b/content/docs/references/system/cache.mdx @@ -1,5 +1,6 @@ --- -title: Cache +title: Cache schema — System Protocol reference +navTitle: Cache description: "Multi-tier caching strategy for application data. Supports Memory, Redis, Memcached, and CDN." --- diff --git a/content/docs/references/system/collaboration.mdx b/content/docs/references/system/collaboration.mdx index 2246cda6faf..a5e5e728f33 100644 --- a/content/docs/references/system/collaboration.mdx +++ b/content/docs/references/system/collaboration.mdx @@ -1,5 +1,6 @@ --- -title: Collaboration +title: Collaboration — System Protocol reference +navTitle: Collaboration description: "Real-Time Collaboration Protocol — Defines schemas for real-time collaborative editing in ObjectStack." --- diff --git a/content/docs/references/system/core-services.mdx b/content/docs/references/system/core-services.mdx index 9a381de4779..24c92f6fb6e 100644 --- a/content/docs/references/system/core-services.mdx +++ b/content/docs/references/system/core-services.mdx @@ -1,5 +1,6 @@ --- -title: Core Services +title: Core Services — System Protocol reference +navTitle: Core Services description: "Defines the standard built-in services that constitute the ObjectStack Kernel." --- diff --git a/content/docs/references/system/deploy-bundle.mdx b/content/docs/references/system/deploy-bundle.mdx index b9db04fd0a3..4eac4152a52 100644 --- a/content/docs/references/system/deploy-bundle.mdx +++ b/content/docs/references/system/deploy-bundle.mdx @@ -1,5 +1,6 @@ --- -title: Deploy Bundle +title: Deploy Bundle — System Protocol reference +navTitle: Deploy Bundle description: "Defines the schemas for metadata-driven deployment: Schema Push → Zod Validate → Diff → DDL Sync → Register." --- diff --git a/content/docs/references/system/dev-login.mdx b/content/docs/references/system/dev-login.mdx index da9cf0da79d..56a063419c1 100644 --- a/content/docs/references/system/dev-login.mdx +++ b/content/docs/references/system/dev-login.mdx @@ -1,5 +1,6 @@ --- -title: Dev Login +title: Dev Login schema — System Protocol reference +navTitle: Dev Login description: "Dev Login schemas of the ObjectStack System Protocol: DevLogin — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/disaster-recovery.mdx b/content/docs/references/system/disaster-recovery.mdx index e3d91fe63ba..d4f88e019d2 100644 --- a/content/docs/references/system/disaster-recovery.mdx +++ b/content/docs/references/system/disaster-recovery.mdx @@ -1,5 +1,6 @@ --- -title: Disaster Recovery +title: Disaster Recovery — System Protocol reference +navTitle: Disaster Recovery description: "Disaster Recovery schemas of the ObjectStack System Protocol: BackupConfig and 7 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/doc.mdx b/content/docs/references/system/doc.mdx index 2ed88455ad1..5410e3ae27d 100644 --- a/content/docs/references/system/doc.mdx +++ b/content/docs/references/system/doc.mdx @@ -1,5 +1,6 @@ --- -title: Doc +title: Doc schema — System Protocol reference +navTitle: Doc description: "One doc item per Markdown file under the package's flat src/docs/ directory (no subdirectories — flatness is the contract that keeps cross-references stable)." --- diff --git a/content/docs/references/system/email-config.mdx b/content/docs/references/system/email-config.mdx index e8a66857b98..35f258f5d2d 100644 --- a/content/docs/references/system/email-config.mdx +++ b/content/docs/references/system/email-config.mdx @@ -1,5 +1,6 @@ --- -title: Email Config +title: Email Config — System Protocol reference +navTitle: Email Config description: "Operator-facing configuration that selects the outbound email transport for the EmailServicePlugin." --- diff --git a/content/docs/references/system/email-template.mdx b/content/docs/references/system/email-template.mdx index 8a47bb72f59..a3a85945af8 100644 --- a/content/docs/references/system/email-template.mdx +++ b/content/docs/references/system/email-template.mdx @@ -1,5 +1,6 @@ --- -title: Email Template +title: Email Template — System Protocol reference +navTitle: Email Template description: "Declarative template definition consumed by IEmailService.sendTemplate() to render outbound mail." --- diff --git a/content/docs/references/system/encryption.mdx b/content/docs/references/system/encryption.mdx index b72055a20b9..21a080ea6b5 100644 --- a/content/docs/references/system/encryption.mdx +++ b/content/docs/references/system/encryption.mdx @@ -1,5 +1,6 @@ --- -title: Encryption +title: Encryption schema — System Protocol reference +navTitle: Encryption description: "Encryption schemas of the ObjectStack System Protocol: EncryptionAlgorithm and 4 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/environment-artifact.mdx b/content/docs/references/system/environment-artifact.mdx index 5288b58110c..6f3c681d191 100644 --- a/content/docs/references/system/environment-artifact.mdx +++ b/content/docs/references/system/environment-artifact.mdx @@ -1,5 +1,6 @@ --- -title: Environment Artifact +title: Environment Artifact — System Protocol +navTitle: Environment Artifact description: "THE single declaration of the environment artifact envelope. @objectstack/spec/system is now its ONLY entry point." --- diff --git a/content/docs/references/system/http-server.mdx b/content/docs/references/system/http-server.mdx index 046d6e886d7..e166b5d9b70 100644 --- a/content/docs/references/system/http-server.mdx +++ b/content/docs/references/system/http-server.mdx @@ -1,5 +1,6 @@ --- -title: Http Server +title: Http Server schema — System Protocol reference +navTitle: Http Server description: "Route-registration metadata, middleware declaration and the server-side lifecycle/status vocabulary for HTTP server implementations." --- diff --git a/content/docs/references/system/index.mdx b/content/docs/references/system/index.mdx index 0bfa0f90fae..5fd4a81fa22 100644 --- a/content/docs/references/system/index.mdx +++ b/content/docs/references/system/index.mdx @@ -1,5 +1,6 @@ --- -title: System Protocol +title: System Protocol — complete schema reference +navTitle: System Protocol description: "The ObjectStack System Protocol in 34 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/system/job.mdx b/content/docs/references/system/job.mdx index 9877e12211c..dec324a3d7c 100644 --- a/content/docs/references/system/job.mdx +++ b/content/docs/references/system/job.mdx @@ -1,5 +1,6 @@ --- -title: Job +title: Job schema — System Protocol reference +navTitle: Job description: "Job schemas of the ObjectStack System Protocol: CronSchedule, IntervalSchedule, Job and 5 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/license.mdx b/content/docs/references/system/license.mdx index 1cd1aff7318..0d081641ac1 100644 --- a/content/docs/references/system/license.mdx +++ b/content/docs/references/system/license.mdx @@ -1,5 +1,6 @@ --- -title: License +title: License schema — System Protocol reference +navTitle: License description: "License schemas of the ObjectStack System Protocol: Feature, License, LicenseMetricType, Plan — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/logging.mdx b/content/docs/references/system/logging.mdx index cdf75fa63e8..53dfac65190 100644 --- a/content/docs/references/system/logging.mdx +++ b/content/docs/references/system/logging.mdx @@ -1,5 +1,6 @@ --- -title: Logging +title: Logging schema — System Protocol reference +navTitle: Logging description: "Logging Protocol - Comprehensive Observability Logging. Reference for ConsoleDestinationConfig and 13 more: every property with its type and default." --- diff --git a/content/docs/references/system/metadata-persistence.mdx b/content/docs/references/system/metadata-persistence.mdx index e30d0647f1b..1c33b6e1252 100644 --- a/content/docs/references/system/metadata-persistence.mdx +++ b/content/docs/references/system/metadata-persistence.mdx @@ -1,5 +1,6 @@ --- -title: Metadata Persistence +title: Metadata Persistence — System Protocol +navTitle: Metadata Persistence description: "Metadata Persistence schemas of the ObjectStack System Protocol — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/metrics.mdx b/content/docs/references/system/metrics.mdx index c2fbe9e9e55..0b4cfb71300 100644 --- a/content/docs/references/system/metrics.mdx +++ b/content/docs/references/system/metrics.mdx @@ -1,5 +1,6 @@ --- -title: Metrics +title: Metrics schema — System Protocol reference +navTitle: Metrics description: "Metrics Protocol - Performance and Operational Metrics. Reference for HistogramBucketConfig and 13 more: every property with its type and default." --- diff --git a/content/docs/references/system/migration.mdx b/content/docs/references/system/migration.mdx index 3f3b3486191..a3fb8a74187 100644 --- a/content/docs/references/system/migration.mdx +++ b/content/docs/references/system/migration.mdx @@ -1,5 +1,6 @@ --- -title: Migration +title: Migration schema — System Protocol reference +navTitle: Migration description: "Migration protocol — the two kinds of migration, kept apart on purpose." --- diff --git a/content/docs/references/system/notification.mdx b/content/docs/references/system/notification.mdx index 1ed16aa56b5..5592a995d10 100644 --- a/content/docs/references/system/notification.mdx +++ b/content/docs/references/system/notification.mdx @@ -1,5 +1,6 @@ --- -title: Notification +title: Notification — System Protocol reference +navTitle: Notification description: "Notification schemas of the ObjectStack System Protocol: NotificationChannel — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/object-storage.mdx b/content/docs/references/system/object-storage.mdx index 0da0cf2f21b..fe193352b92 100644 --- a/content/docs/references/system/object-storage.mdx +++ b/content/docs/references/system/object-storage.mdx @@ -1,5 +1,6 @@ --- -title: Object Storage +title: Object Storage — System Protocol reference +navTitle: Object Storage description: "Object Storage Protocol. Reference for AccessControlConfig, BucketConfig, FileMetadata, LifecycleAction and 11 more: every property with its type and default." --- diff --git a/content/docs/references/system/registry-config.mdx b/content/docs/references/system/registry-config.mdx index dee2d2faad7..321eaef9b6a 100644 --- a/content/docs/references/system/registry-config.mdx +++ b/content/docs/references/system/registry-config.mdx @@ -1,5 +1,6 @@ --- -title: Registry Config +title: Registry Config — System Protocol reference +navTitle: Registry Config description: "Defines the configuration for the ObjectStack Registry Service. Includes federation, synchronization, and storage settings." --- diff --git a/content/docs/references/system/search-engine.mdx b/content/docs/references/system/search-engine.mdx index 6bf1cfd89ed..56523c31b7f 100644 --- a/content/docs/references/system/search-engine.mdx +++ b/content/docs/references/system/search-engine.mdx @@ -1,5 +1,6 @@ --- -title: Search Engine +title: Search Engine — System Protocol reference +navTitle: Search Engine description: "Search Engine schemas of the ObjectStack System Protocol: AnalyzerConfig and 4 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/security-context.mdx b/content/docs/references/system/security-context.mdx index 84511202817..3a2e872370c 100644 --- a/content/docs/references/system/security-context.mdx +++ b/content/docs/references/system/security-context.mdx @@ -1,5 +1,6 @@ --- -title: Security Context +title: Security Context — System Protocol reference +navTitle: Security Context description: "Provides a central governance layer that correlates and unifies the four independent security subsystems it was designed against." --- diff --git a/content/docs/references/system/settings-client.mdx b/content/docs/references/system/settings-client.mdx index b029eca43d2..2893ca6258f 100644 --- a/content/docs/references/system/settings-client.mdx +++ b/content/docs/references/system/settings-client.mdx @@ -1,5 +1,6 @@ --- -title: Settings Client +title: Settings Client — System Protocol reference +navTitle: Settings Client description: "SettingsClient — reactive consumer contract for runtime settings. Reference for SettingsChangeEvent: every property with its type and default." --- diff --git a/content/docs/references/system/settings-manifest.mdx b/content/docs/references/system/settings-manifest.mdx index 110e92e6021..d68faa3b98c 100644 --- a/content/docs/references/system/settings-manifest.mdx +++ b/content/docs/references/system/settings-manifest.mdx @@ -1,5 +1,6 @@ --- -title: Settings Manifest +title: Settings Manifest — System Protocol reference +navTitle: Settings Manifest description: "Declarative description of a single namespace of platform settings (e.g. mail, branding, feature_flags)." --- diff --git a/content/docs/references/system/stack-server.mdx b/content/docs/references/system/stack-server.mdx index b9e41c8549e..4f44c4164cf 100644 --- a/content/docs/references/system/stack-server.mdx +++ b/content/docs/references/system/stack-server.mdx @@ -1,5 +1,6 @@ --- -title: Stack Server +title: Stack Server — System Protocol reference +navTitle: Stack Server description: "defineStack({ server }) — the authorable server-facing configuration. Reference for ServerRateLimitConfig and 2 more: every property with its type and default." --- diff --git a/content/docs/references/system/supplier-security.mdx b/content/docs/references/system/supplier-security.mdx index 32f52f22274..3f7959759de 100644 --- a/content/docs/references/system/supplier-security.mdx +++ b/content/docs/references/system/supplier-security.mdx @@ -1,5 +1,6 @@ --- -title: Supplier Security +title: Supplier Security — System Protocol reference +navTitle: Supplier Security description: "Defines schemas for supplier information security management including risk assessment, security requirements, monitoring, and change control." --- diff --git a/content/docs/references/system/tenant.mdx b/content/docs/references/system/tenant.mdx index 00ff5ded788..45a61b0f9c9 100644 --- a/content/docs/references/system/tenant.mdx +++ b/content/docs/references/system/tenant.mdx @@ -1,5 +1,6 @@ --- -title: Tenant +title: Tenant schema — System Protocol reference +navTitle: Tenant description: "Tenant Schema (Multi-Tenant Architecture) — Defines the tenant/tenancy model for ObjectStack SaaS deployments." --- diff --git a/content/docs/references/system/tracing.mdx b/content/docs/references/system/tracing.mdx index d57fc95a859..caf2176a405 100644 --- a/content/docs/references/system/tracing.mdx +++ b/content/docs/references/system/tracing.mdx @@ -1,5 +1,6 @@ --- -title: Tracing +title: Tracing schema — System Protocol reference +navTitle: Tracing description: "Tracing Protocol - Distributed Tracing & Observability. Reference for OpenTelemetryCompatibility and 17 more: every property with its type and default." --- diff --git a/content/docs/references/system/translation.mdx b/content/docs/references/system/translation.mdx index d56e3e81f46..708a0fa54ec 100644 --- a/content/docs/references/system/translation.mdx +++ b/content/docs/references/system/translation.mdx @@ -1,5 +1,6 @@ --- -title: Translation +title: Translation schema — System Protocol reference +navTitle: Translation description: "Translation schemas of the ObjectStack System Protocol — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/system/worker.mdx b/content/docs/references/system/worker.mdx index c1d5c1e3ceb..d145d4b6301 100644 --- a/content/docs/references/system/worker.mdx +++ b/content/docs/references/system/worker.mdx @@ -1,5 +1,6 @@ --- -title: Worker +title: Worker schema — System Protocol reference +navTitle: Worker description: "Background task processing system with queues, priorities, and retry logic." --- diff --git a/content/docs/references/ui/action-params.mdx b/content/docs/references/ui/action-params.mdx index 9802fbeb8e6..dfdbf4e8601 100644 --- a/content/docs/references/ui/action-params.mdx +++ b/content/docs/references/ui/action-params.mdx @@ -1,5 +1,6 @@ --- -title: Action Params +title: Action Params schema — UI Protocol reference +navTitle: Action Params description: "The action DISPATCH contract: what the platform validates on the way in, and what it hands the handler on the way out." --- diff --git a/content/docs/references/ui/action.mdx b/content/docs/references/ui/action.mdx index b6fea8725e7..a3bcd5660b4 100644 --- a/content/docs/references/ui/action.mdx +++ b/content/docs/references/ui/action.mdx @@ -1,5 +1,6 @@ --- -title: Action +title: Action schema — UI Protocol property reference +navTitle: Action description: "Action schemas of the ObjectStack UI Protocol: Action, ActionAi, ActionLocation and 3 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ui/app.mdx b/content/docs/references/ui/app.mdx index 6e029fe11f0..7dfbfe19587 100644 --- a/content/docs/references/ui/app.mdx +++ b/content/docs/references/ui/app.mdx @@ -1,5 +1,6 @@ --- -title: App +title: App schema — UI Protocol property reference +navTitle: App description: "App schemas of the ObjectStack UI Protocol: ActionNavItem, App, AppBranding and 12 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ui/bulk-action.mdx b/content/docs/references/ui/bulk-action.mdx index 2f7c8cd5e0b..4e17bbc55d6 100644 --- a/content/docs/references/ui/bulk-action.mdx +++ b/content/docs/references/ui/bulk-action.mdx @@ -1,5 +1,6 @@ --- -title: Bulk Action +title: Bulk Action schema — UI Protocol reference +navTitle: Bulk Action description: "The vocabulary of a list view's bulkActionDefs — one entry per button in the multi-select toolbar." --- diff --git a/content/docs/references/ui/chart.mdx b/content/docs/references/ui/chart.mdx index a6efba2915c..6def1716ac2 100644 --- a/content/docs/references/ui/chart.mdx +++ b/content/docs/references/ui/chart.mdx @@ -1,5 +1,6 @@ --- -title: Chart +title: Chart schema — UI Protocol property reference +navTitle: Chart description: "Shared by Dashboard and Report widgets. Provides a comprehensive set of chart types for data visualization." --- diff --git a/content/docs/references/ui/component.mdx b/content/docs/references/ui/component.mdx index 3a4672382c6..c8d195f8b8f 100644 --- a/content/docs/references/ui/component.mdx +++ b/content/docs/references/ui/component.mdx @@ -1,5 +1,6 @@ --- -title: Component +title: Component schema — UI Protocol reference +navTitle: Component description: "Component schemas of the ObjectStack UI Protocol: AIChatWindowProps and 37 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ui/dashboard.mdx b/content/docs/references/ui/dashboard.mdx index 0c314fcd8f5..ab180d49341 100644 --- a/content/docs/references/ui/dashboard.mdx +++ b/content/docs/references/ui/dashboard.mdx @@ -1,5 +1,6 @@ --- -title: Dashboard +title: Dashboard schema — UI Protocol reference +navTitle: Dashboard description: "Dashboard schemas of the ObjectStack UI Protocol: Dashboard, DashboardHeader and 8 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ui/dataset.mdx b/content/docs/references/ui/dataset.mdx index c50f57db52b..123cb60758a 100644 --- a/content/docs/references/ui/dataset.mdx +++ b/content/docs/references/ui/dataset.mdx @@ -1,5 +1,6 @@ --- -title: Dataset +title: Dataset schema — UI Protocol reference +navTitle: Dataset description: "Analytics Dataset — the one semantic layer. Reference for Dataset, DatasetDimension, DatasetMeasure, DerivedMeasureOp: every property with its type and default." --- diff --git a/content/docs/references/ui/expression-bindable-text-keys.mdx b/content/docs/references/ui/expression-bindable-text-keys.mdx index 495729d4bcb..03d8c447a36 100644 --- a/content/docs/references/ui/expression-bindable-text-keys.mdx +++ b/content/docs/references/ui/expression-bindable-text-keys.mdx @@ -1,5 +1,6 @@ --- -title: Expression Bindable Text Keys +title: Expression Bindable Text Keys — UI Protocol +navTitle: Expression Bindable Text Keys description: "Expression-bindable text keys — the CLOSED vocabulary of top-level text keys a SchemaRenderer evaluation memo evaluates." --- diff --git a/content/docs/references/ui/i18n.mdx b/content/docs/references/ui/i18n.mdx index bb49fe0bb88..849cf12a48b 100644 --- a/content/docs/references/ui/i18n.mdx +++ b/content/docs/references/ui/i18n.mdx @@ -1,5 +1,6 @@ --- -title: I18n +title: I18n schema — UI Protocol property reference +navTitle: I18n description: "Display-label and ARIA-label primitives shared by every ui/ shape. Reference for AriaProps, I18nLabel and 1 more: every property with its type and default." --- diff --git a/content/docs/references/ui/index.mdx b/content/docs/references/ui/index.mdx index 6b1577f570d..439864ca820 100644 --- a/content/docs/references/ui/index.mdx +++ b/content/docs/references/ui/index.mdx @@ -1,5 +1,6 @@ --- -title: UI Protocol +title: UI Protocol — complete schema reference +navTitle: UI Protocol description: "The ObjectStack UI Protocol in 16 reference pages: every schema in @objectstack/spec with its properties, types, defaults and a TypeScript example." --- diff --git a/content/docs/references/ui/notification.mdx b/content/docs/references/ui/notification.mdx index be04ddf433e..83be49ca064 100644 --- a/content/docs/references/ui/notification.mdx +++ b/content/docs/references/ui/notification.mdx @@ -1,5 +1,6 @@ --- -title: Notification +title: Notification schema — UI Protocol reference +navTitle: Notification description: "Notification schemas of the ObjectStack UI Protocol: NotificationPosition and 2 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ui/page.mdx b/content/docs/references/ui/page.mdx index 136a163bef0..c761c535a75 100644 --- a/content/docs/references/ui/page.mdx +++ b/content/docs/references/ui/page.mdx @@ -1,5 +1,6 @@ --- -title: Page +title: Page schema — UI Protocol property reference +navTitle: Page description: "Page schemas of the ObjectStack UI Protocol: ElementDataSource, InterfacePageConfig and 6 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ui/report.mdx b/content/docs/references/ui/report.mdx index 2df257fa2f4..7ef75d94fd4 100644 --- a/content/docs/references/ui/report.mdx +++ b/content/docs/references/ui/report.mdx @@ -1,5 +1,6 @@ --- -title: Report +title: Report schema — UI Protocol property reference +navTitle: Report description: "Report schemas of the ObjectStack UI Protocol: JoinedReportBlock, Report and 3 more — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ui/responsive.mdx b/content/docs/references/ui/responsive.mdx index b308c811c46..db834659154 100644 --- a/content/docs/references/ui/responsive.mdx +++ b/content/docs/references/ui/responsive.mdx @@ -1,5 +1,6 @@ --- -title: Responsive +title: Responsive schema — UI Protocol reference +navTitle: Responsive description: "Responsive schemas of the ObjectStack UI Protocol: ResponsiveStyles, StyleMap — each property with its type, default and a TypeScript example." --- diff --git a/content/docs/references/ui/sharing.mdx b/content/docs/references/ui/sharing.mdx index a9bab3944e4..ec15af0c872 100644 --- a/content/docs/references/ui/sharing.mdx +++ b/content/docs/references/ui/sharing.mdx @@ -1,5 +1,6 @@ --- -title: Sharing +title: Sharing schema — UI Protocol reference +navTitle: Sharing description: "Sharing & Embedding Protocol — Public-link sharing of a form view. Reference for SharingConfig: every property with its type and default." --- diff --git a/content/docs/references/ui/view.mdx b/content/docs/references/ui/view.mdx index d22414c5fa3..308f26173d0 100644 --- a/content/docs/references/ui/view.mdx +++ b/content/docs/references/ui/view.mdx @@ -1,5 +1,6 @@ --- -title: View +title: View schema — UI Protocol property reference +navTitle: View description: "View protocol schemas — the view metadata type and its three persisted body spellings." --- diff --git a/packages/spec/scripts/build-docs.ts b/packages/spec/scripts/build-docs.ts index cdecc6fad7a..3152dfab62a 100644 --- a/packages/spec/scripts/build-docs.ts +++ b/packages/spec/scripts/build-docs.ts @@ -61,13 +61,19 @@ import { } from './lib/schema-index'; import { schemaNameFromExportKey } from './lib/schema-name'; import { formatSplitEntryCoverage, splitEntryCoverage } from './lib/split-entries'; -import { renderSchemaSection } from './lib/schema-section'; +import { renderSchemaSection, rendersPropertiesTable } from './lib/schema-section'; import { categoryIndexDescription, modulePageDescription, yamlDescription, type DescriptionSource, } from './lib/page-description'; +import { + categoryIndexTitle, + modulePageTitle, + titleFrontmatter, + type GeneratedPageTitle, +} from './lib/page-title'; import { API_SURFACE_DIR_NAME, readApiSurfaceFrom } from './lib/sharded-artifacts'; const SCHEMA_DIR = path.resolve(__dirname, '../json-schema'); @@ -464,6 +470,23 @@ const PAGE_SECTION_LEVEL = 2; /** Which rule of `lib/page-description.ts` produced each module page's description, tallied for the run summary. */ const descriptionSources: Record = { docblock: 0, 'docblock+schemas': 0, schemas: 0 }; +/** + * A page's `title` / `navTitle` under the docs title rule, or the build stops. + * + * The rule and its ladders live in `lib/page-title.ts` (#15403), which throws + * rather than emit a title outside the band; this turns that into the same + * named, exit-1 refusal `loadCategoryTitles` gives above instead of a stack + * trace from the middle of the page loop. + */ +function pageTitleOrExit(derive: () => GeneratedPageTitle): GeneratedPageTitle { + try { + return derive(); + } catch (err) { + console.error(`\n✗ ${err instanceof Error ? err.message : String(err)}`); + process.exit(1); + } +} + function generateZodFileMarkdown(zodFile: string, schemas: Array<{name: string, content: any}>, category: string): string { const zodTitle = zodFile.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' '); @@ -493,8 +516,24 @@ function generateZodFileMarkdown(zodFile: string, schemas: Array<{name: string, }); descriptionSources[description.from]++; + // The search-facing title follows the docs title rule; `zodTitle`, the title + // this page carried before it, stays the sidebar label as `navTitle`. A page + // is called a `property reference` only when one of its sections renders a + // `### Properties` table — the renderer's own condition, asked of the same + // schemas the loop below renders. + const titles = pageTitleOrExit(() => + modulePageTitle( + { + name: zodTitle, + categoryTitle: CATEGORIES[category], + documentsProperties: schemas.some(s => rendersPropertiesTable(s.name, s.content)), + }, + path.relative(REPO_ROOT, path.join(DOCS_ROOT, category, `${zodFile}.mdx`)), + ), + ); + let md = `---\n`; - md += `title: ${zodTitle}\n`; + md += titleFrontmatter(titles); md += `description: ${yamlDescription(description.text)}\n`; md += `---\n\n`; md += AUTO_GENERATED_BANNER; @@ -926,8 +965,14 @@ Object.entries(CATEGORIES).forEach(([category, title]) => { process.exit(1); } + // Same rule as the module pages; the category title stays the `navTitle` + // the footer's previous/next links show for this folder index page. + const titles = pageTitleOrExit(() => + categoryIndexTitle(title, path.relative(REPO_ROOT, path.join(DOCS_ROOT, category, 'index.mdx'))), + ); + let mdx = `---\n`; - mdx += `title: ${title}\n`; + mdx += titleFrontmatter(titles); mdx += `description: ${yamlDescription(categoryIndexDescription(title, cards.length))}\n`; mdx += `---\n\n`; mdx += AUTO_GENERATED_BANNER; diff --git a/packages/spec/scripts/lib/page-title.ts b/packages/spec/scripts/lib/page-title.ts new file mode 100644 index 00000000000..38277b23f72 --- /dev/null +++ b/packages/spec/scripts/lib/page-title.ts @@ -0,0 +1,191 @@ +// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. + +/** + * The frontmatter `title` of a generated reference page, and the `navTitle` + * that keeps its sidebar label where it was. + * + * ## The rule this expresses + * + * The docs site has one page-title rule, approved on #12237 and landed for the + * authored pages by PR #20170 (its `## The rule` section is the text): + * + * - the shape is `PRIMARY-KEYWORD — QUALIFIER`, with ` — ` as the separator; + * - the frontmatter `title` string is 36–46 characters, so the rendered + * `` — the layout appends the 14-character ` | ObjectStack` — lands + * in 50–60, and no rendered title is over 60; + * - `ObjectStack` is never inside a title, because the suffix carries it; + * - the short label the sidebar shows goes in `navTitle`, whose fallback to + * `title` lives only in `navLabel()` in `apps/docs/lib/nav-title.ts`. + * + * The authored pages carry that rule by hand. The pages under + * `content/docs/references/` cannot: `build-docs.ts` rewrites every one of them + * on each run and `check:docs` goes red on a hand edit, so the rule has to live + * in the emitter (#15403). Before this module every generated title was the + * bare module or category name — measured on `main` at `862b6ce8`, 211 of 211 + * generated titles were outside the band (3 to 29 characters, median 11). + * + * ## Why a ladder, and why it is total over today's pages + * + * A generated title can only be composed from what the generator holds: the + * module's display name (`Agent`, from `agent.zod.ts`), its category's declared + * title (`AI Protocol`, `lib/category-title.ts`) and fixed words. Those names + * run from 3 to 29 characters and the categories from 11 to 20, so no single + * template lands every page inside an 11-character band. Each page kind + * therefore has a short ladder of candidates, LONGEST FIRST, and the title is + * the first candidate inside the band: + * + * module page `<Name> schema — <Category> property reference` (name + category + 29) + * (offered only when the page renders a `### Properties` table) + * `<Name> schema — <Category> reference` (name + category + 20) + * `<Name> — <Category> reference` (name + category + 13) + * `<Name> — <Category>` (name + category + 3) + * category index `<Category> — complete schema reference` (category + 28) + * `<Category> — schema reference` (category + 19) + * root index `Protocol reference — every schema by module` (fixed) + * + * The module ladder's rungs overlap end to end — together they cover every + * name + category length from 7 to 43, and the longest pair on the tree is 41 + * (`Schemaless Node Config` in `Automation Protocol`). The category ladder + * covers category titles of 8 to 27 characters, and the longest declared one + * is 25. The category keeps two same-named modules apart (`Plugin` is both a + * `kernel` and a `studio` page), so no two generated titles collide. + * + * The first module rung is CONDITIONAL. `property reference` is a claim about + * the page, and a page that renders no `### Properties` table — an enum-only + * module such as `data/feed`, whose two schemas render `### Allowed Values` + * only — would be misdescribed by it. So that rung is offered only when at + * least one of the page's schemas renders a property table + * (`rendersPropertiesTable` in `lib/schema-section.ts`, the renderer's own + * condition); otherwise the page starts at the second rung. Without the first + * rung the ladder covers name + category lengths from 16 to 43 rather than 7: + * the shortest property-less pair on the tree is 17 (`Feed` in `Data + * Protocol`), and a shorter one would be refused by name — the remedy is a rung + * here, the same as for any page no rung fits. + * + * A page no rung fits is REFUSED, never truncated: a cut title is an invented + * one, and a title outside the band is the defect this module exists to end. + * The refusal names the page and the candidates, and the remedy is a rung + * here — ⛔ never a hand edit of the page, which the next run reverts. + * + * ## What stays byte-identical: the page tree + * + * Each page's `navTitle` is exactly the string that used to be its `title`, so + * `navLabel()` hands the sidebar and the footer previous/next links the label + * they showed before. A category's folder label is its `meta.json` `title`, + * which this module does not touch; the category and root `index.mdx` pages + * still carry `navTitle` because the footer walks folder index pages too. + */ + +/** The shortest frontmatter `title` the rule allows. */ +export const TITLE_MIN = 36; +/** The longest frontmatter `title` the rule allows. */ +export const TITLE_MAX = 46; +/** Between the primary keyword and its qualifier, on every generated title. */ +export const TITLE_SEPARATOR = ' — '; +/** What `apps/docs/app/layout.tsx`'s title template appends to every page title. */ +export const RENDERED_TITLE_SUFFIX = ' | ObjectStack'; +/** The longest rendered `<title>` the rule allows. */ +export const RENDERED_TITLE_MAX = 60; + +/** The site name, which the suffix carries and a title never repeats. */ +const SITE_NAME = /objectstack/i; + +/** A generated page's two title keys. */ +export interface GeneratedPageTitle { + /** The search-facing title — `<h1>`, `<title>`, Open Graph, JSON-LD, `llms.txt`. */ + title: string; + /** The page-tree label — the sidebar entry and the footer links. */ + navTitle: string; +} + +/** Whether a title obeys the rule: inside the band, and without the site name. */ +export function titleInBand(title: string): boolean { + return title.length >= TITLE_MIN && title.length <= TITLE_MAX && !SITE_NAME.test(title); +} + +/** The rendered `<title>` a frontmatter `title` becomes. */ +export function renderedTitle(title: string): string { + return `${title}${RENDERED_TITLE_SUFFIX}`; +} + +/** + * The first candidate inside the band, or a thrown error naming the page and + * every candidate with its length. Never a truncation, never a fallback. + */ +export function firstTitleInBand(page: string, candidates: readonly string[]): string { + const title = candidates.find(titleInBand); + if (title !== undefined) return title; + throw new Error( + `No title candidate for ${page} is inside the docs title band (${TITLE_MIN}–${TITLE_MAX} characters, ` + + `no "ObjectStack"):\n\n` + + candidates.map(c => ` ${String(c.length).padStart(3)} ${c}`).join('\n') + + `\n\nThe generated reference pages take their title from the ladders in ` + + `packages/spec/scripts/lib/page-title.ts, longest candidate first. Add a rung there that brings this ` + + `page inside the band. Do not edit the page: the next gen:docs run rewrites it, and check:docs ` + + `reports the hand edit as drift.`, + ); +} + +/** One module's page, as its title needs it. */ +export interface ModuleTitleInput { + /** The module's display name — `Agent` for `agent.zod.ts`; the page's `navTitle`. */ + name: string; + /** The category's declared title — `AI Protocol`. */ + categoryTitle: string; + /** + * Whether the page renders at least one `### Properties` table — required, + * never defaulted: the `property reference` rung is a claim about the page, + * and a caller that does not know must not get it by omission. + */ + documentsProperties: boolean; +} + +/** The module-page ladder, longest first; the first rung only for a page with a property table. */ +export function modulePageTitleCandidates({ name, categoryTitle, documentsProperties }: ModuleTitleInput): string[] { + return [ + ...(documentsProperties ? [`${name} schema${TITLE_SEPARATOR}${categoryTitle} property reference`] : []), + `${name} schema${TITLE_SEPARATOR}${categoryTitle} reference`, + `${name}${TITLE_SEPARATOR}${categoryTitle} reference`, + `${name}${TITLE_SEPARATOR}${categoryTitle}`, + ]; +} + +/** A module page's `title` under the rule, and its unchanged `navTitle`. */ +export function modulePageTitle(input: ModuleTitleInput, page: string): GeneratedPageTitle { + return { title: firstTitleInBand(page, modulePageTitleCandidates(input)), navTitle: input.name }; +} + +/** The category-index ladder, longest first. */ +export function categoryIndexTitleCandidates(categoryTitle: string): string[] { + return [ + `${categoryTitle}${TITLE_SEPARATOR}complete schema reference`, + `${categoryTitle}${TITLE_SEPARATOR}schema reference`, + ]; +} + +/** A category `index.mdx`'s `title` under the rule, and its unchanged `navTitle`. */ +export function categoryIndexTitle(categoryTitle: string, page: string): GeneratedPageTitle { + return { title: firstTitleInBand(page, categoryIndexTitleCandidates(categoryTitle)), navTitle: categoryTitle }; +} + +/** The root index's page-tree label — its title before the rule. */ +export const ROOT_INDEX_NAV_TITLE = 'Protocol Reference'; + +/** The root `references/index.mdx`'s `title` under the rule, and its unchanged `navTitle`. */ +export function rootIndexTitle(page = 'content/docs/references/index.mdx'): GeneratedPageTitle { + return { + title: firstTitleInBand(page, [`Protocol reference${TITLE_SEPARATOR}every schema by module`]), + navTitle: ROOT_INDEX_NAV_TITLE, + }; +} + +/** + * The two frontmatter lines, `title` then `navTitle` — the order the authored + * pages use. Plain scalars, the spelling the title line always had: every value + * is a module name, a declared category title or fixed words joined by ` — `, + * and `check:doc-frontmatter` holds both keys to a string on every page, so a + * value YAML would read as something else is refused there by name. + */ +export function titleFrontmatter({ title, navTitle }: GeneratedPageTitle): string { + return `title: ${title}\nnavTitle: ${navTitle}\n`; +} diff --git a/packages/spec/scripts/lib/root-index.ts b/packages/spec/scripts/lib/root-index.ts index 3cd863f3461..67a319d6290 100644 --- a/packages/spec/scripts/lib/root-index.ts +++ b/packages/spec/scripts/lib/root-index.ts @@ -60,6 +60,7 @@ */ import { AUTO_GENERATED_BANNER } from './generated-output'; +import { rootIndexTitle, titleFrontmatter } from './page-title'; /** One generated reference page, as the root index needs to describe it. */ export interface RootIndexPage { @@ -170,8 +171,10 @@ export function renderRootIndex(input: RootIndexInput): string { const totalPages = sections.reduce((n, s) => n + s.pages.length, 0); const totalSchemas = sections.reduce((n, s) => n + s.schemaCount, 0); + // The docs title rule, like every generated page (`lib/page-title.ts`); + // `Protocol Reference` stays this page's `navTitle`. let mdx = `---\n`; - mdx += `title: Protocol Reference\n`; + mdx += titleFrontmatter(rootIndexTitle()); mdx += `description: Every schema published by @objectstack/spec — ${totalSchemas} schemas across ${plural(sections.length, 'protocol module')}\n`; mdx += `---\n\n`; mdx += AUTO_GENERATED_BANNER; diff --git a/packages/spec/scripts/lib/schema-section.ts b/packages/spec/scripts/lib/schema-section.ts index a92ba895b1f..857c11129cf 100644 --- a/packages/spec/scripts/lib/schema-section.ts +++ b/packages/spec/scripts/lib/schema-section.ts @@ -90,6 +90,39 @@ export function selectRootDef(schemaName: string, schema: any): any { return mainDef; } +/** + * Whether a node renders as a `### Properties` table: an object that declares + * its properties. The ONE spelling of that condition — {@link renderSchemaSection} + * branches on it for the schema root and for each union arm, and + * {@link rendersPropertiesTable} asks it for the page title. + */ +export function declaresProperties(node: any): boolean { + return node?.type === 'object' && !!node.properties; +} + +/** + * Whether {@link renderSchemaSection} gives this schema at least one + * `### Properties` table — at its root, or in an arm of its `### Union Options`. + * + * Read by the page title (`lib/page-title.ts`, #15403): a module page is titled + * a `property reference` only when one of its schemas really renders a property + * table. An enum-only module (`data/feed`: two string enums, `### Allowed Values` + * only) documents no property, and a title saying it does misdescribes the page. + * + * Same branch order as the renderer: an object root with properties renders its + * table; a string enum renders `### Allowed Values` and nothing else, even when + * it also carries a union; a union renders a table for each arm that declares + * properties; every other root renders one type line. `page-title.test.ts` holds + * this answer equal to what the renderer emits, shape by shape. + */ +export function rendersPropertiesTable(schemaName: string, schema: any): boolean { + const mainDef = selectRootDef(schemaName, schema); + if (declaresProperties(mainDef)) return true; + if (mainDef.type === 'string' && mainDef.enum) return false; + const variants = mainDef.anyOf || mainDef.oneOf; + return Array.isArray(variants) && variants.some(declaresProperties); +} + /** * Character budget for a default value spelled inside the Required cell. * @@ -555,7 +588,7 @@ export function renderSchemaSection(schemaName: string, schema: any, ctx: Sectio return t; }; - if (mainDef.type === 'object' && mainDef.properties) { + if (declaresProperties(mainDef)) { md += renderProperties(mainDef.properties, new Set(mainDef.required || [])); } else if (mainDef.type === 'string' && mainDef.enum) { @@ -571,9 +604,7 @@ export function renderSchemaSection(schemaName: string, schema: any, ctx: Sectio // branch below calls `renderProperties`, and only `renderProperties` // emits `### Nested Shape:` / `### Allowed Values:` headings. An `enum`, // `$ref` or scalar arm prints one line and can collide with nothing. - const emitsHeadings: boolean[] = variants.map( - (variant: any) => variant?.type === 'object' && !!variant.properties, - ); + const emitsHeadings: boolean[] = variants.map(declaresProperties); const emitters = emitsHeadings.filter(Boolean).length; // Fewer than two and there is nothing to tell apart: a lone object arm's // headings are already unique on the page, so it keeps the exact bytes it @@ -588,7 +619,7 @@ export function renderSchemaSection(schemaName: string, schema: any, ctx: Sectio md += `#### ${variantTitle}\n\n`; if (variant.description) md += `${escapeMdxDescription(variant.description)}\n\n`; - if (variant.type === 'object' && variant.properties) { + if (declaresProperties(variant)) { if (variant.properties.type && variant.properties.type.const) { md += `**Type:** \`${variant.properties.type.const}\`\n\n`; } diff --git a/packages/spec/scripts/page-title.test.ts b/packages/spec/scripts/page-title.test.ts new file mode 100644 index 00000000000..73f853eb66b --- /dev/null +++ b/packages/spec/scripts/page-title.test.ts @@ -0,0 +1,256 @@ +// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. + +/** + * Pin for the frontmatter `title` / `navTitle` of generated reference pages + * (#15403), and for the one page fact the title reads besides names: whether + * the page renders a `### Properties` table. + * + * `check:docs` compares the regenerated tree with the committed one, so it + * holds the OUTPUT still but says nothing about the rule: a regression that + * wrote every page back to its bare module name would regenerate, commit and + * stay green. These cases pin the rule itself — the band, the separator, no + * site name in a title, the ladder each page kind climbs, and that the sidebar + * label is the page's old title unchanged. + */ + +import { describe, expect, it } from 'vitest'; + +import { CATEGORY_TITLES } from './lib/category-title'; +import { declaresProperties, renderSchemaSection, rendersPropertiesTable } from './lib/schema-section'; +import { + RENDERED_TITLE_MAX, + ROOT_INDEX_NAV_TITLE, + TITLE_MAX, + TITLE_MIN, + TITLE_SEPARATOR, + categoryIndexTitle, + categoryIndexTitleCandidates, + firstTitleInBand, + modulePageTitle, + modulePageTitleCandidates, + renderedTitle, + rootIndexTitle, + titleFrontmatter, + titleInBand, +} from './lib/page-title'; + +/** Every invariant the rule states, for one emitted title. */ +function expectRuleShaped(title: string) { + expect(title.length).toBeGreaterThanOrEqual(TITLE_MIN); + expect(title.length).toBeLessThanOrEqual(TITLE_MAX); + expect(renderedTitle(title).length).toBeGreaterThanOrEqual(50); + expect(renderedTitle(title).length).toBeLessThanOrEqual(RENDERED_TITLE_MAX); + expect(title.split(TITLE_SEPARATOR)).toHaveLength(2); + expect(title).not.toMatch(/objectstack/i); +} + +describe('the band', () => { + it('is 36–46 characters, which the 14-character suffix renders as 50–60', () => { + expect([TITLE_MIN, TITLE_MAX]).toEqual([36, 46]); + expect(renderedTitle('x'.repeat(TITLE_MIN))).toHaveLength(50); + expect(renderedTitle('x'.repeat(TITLE_MAX))).toHaveLength(RENDERED_TITLE_MAX); + }); + + it('refuses a title that names the site, whatever its length', () => { + expect(titleInBand('Agent schema — ObjectStack property reference')).toBe(false); + expect(titleInBand('Agent schema — objectstack property reference')).toBe(false); + expect(titleInBand('Agent schema — AI Protocol property reference')).toBe(true); + }); +}); + +/** + * Real `(module name, category title, renders a Properties table)` triples from + * `content/docs/references/**`, the name being the page's title before this + * rule — two per rung of the module ladder, including the tree's shortest name + * (`Mcp`, 3), its two longest pairs (`Expression Bindable Text Keys` in UI, name + * 29; `Schemaless Node Config` in Automation, name + category 41), and + * `data/feed`, the one page the first rung reached without a property table. + */ +const MODULE_PAGES: Array<[name: string, categoryTitle: string, documentsProperties: boolean, title: string]> = [ + ['Mcp', 'AI Protocol', true, 'Mcp schema — AI Protocol property reference'], + ['Agent', 'AI Protocol', true, 'Agent schema — AI Protocol property reference'], + ['Feed', 'Data Protocol', false, 'Feed schema — Data Protocol reference'], + ['Object', 'Data Protocol', true, 'Object schema — Data Protocol reference'], + ['Flow', 'Automation Protocol', true, 'Flow schema — Automation Protocol reference'], + ['Plugin Registry', 'Kernel Protocol', true, 'Plugin Registry — Kernel Protocol reference'], + ['Package Api Assembled', 'API Protocol', true, 'Package Api Assembled — API Protocol reference'], + ['Metadata Protection', 'Kernel Protocol', false, 'Metadata Protection — Kernel Protocol'], + ['Expression Bindable Text Keys', 'UI Protocol', false, 'Expression Bindable Text Keys — UI Protocol'], + ['Schemaless Node Config', 'Automation Protocol', true, 'Schemaless Node Config — Automation Protocol'], +]; + +describe('modulePageTitle', () => { + it.each(MODULE_PAGES)('%s (%s, properties: %s) → %s', (name, categoryTitle, documentsProperties, title) => { + const out = modulePageTitle({ name, categoryTitle, documentsProperties }, `references/x/${name}.mdx`); + expect(out).toEqual({ title, navTitle: name }); + expectRuleShaped(out.title); + }); + + it('takes the LONGEST rung inside the band', () => { + // `Agent` fits the first rung (45) and the second (36): the first wins. + const agent = { name: 'Agent', categoryTitle: 'AI Protocol', documentsProperties: true }; + const candidates = modulePageTitleCandidates(agent); + expect(candidates.filter(titleInBand)).toHaveLength(2); + expect(modulePageTitle(agent, 'p').title).toBe(candidates[0]); + }); + + it('offers `property reference` only to a page that renders a Properties table', () => { + // The same name and category, the one fact flipped: `data/feed` renders two + // enums (`### Allowed Values`) and no property, so it starts at the second rung. + const feed = { name: 'Feed', categoryTitle: 'Data Protocol' }; + const withTable = modulePageTitleCandidates({ ...feed, documentsProperties: true }); + const withoutTable = modulePageTitleCandidates({ ...feed, documentsProperties: false }); + expect(withTable[0]).toBe('Feed schema — Data Protocol property reference'); + expect(withoutTable.some(c => c.includes('property'))).toBe(false); + expect(withoutTable).toEqual(withTable.slice(1)); + expect(modulePageTitle({ ...feed, documentsProperties: false }, 'p').title).toBe('Feed schema — Data Protocol reference'); + }); + + it('keeps the rungs longest first, so the first fit is the longest fit', () => { + for (const documentsProperties of [true, false]) { + const lengths = modulePageTitleCandidates({ name: 'N', categoryTitle: 'C', documentsProperties }).map(c => c.length); + expect([...lengths].sort((a, b) => b - a)).toEqual(lengths); + } + }); + + it('is total for every declared category and every name that can fit beside it', () => { + // With a Properties table the rungs overlap end to end from name + category + // 7 to 43; without one, from 16 to 43. Swept over the real category titles, + // with every name length up to the limit that category leaves. + for (const categoryTitle of Object.values(CATEGORY_TITLES)) { + for (let n = 1; categoryTitle.length + n <= 43; n++) { + expectRuleShaped(modulePageTitle({ name: 'N'.repeat(n), categoryTitle, documentsProperties: true }, 'p').title); + if (categoryTitle.length + n >= 16) { + expectRuleShaped(modulePageTitle({ name: 'N'.repeat(n), categoryTitle, documentsProperties: false }, 'p').title); + } + } + } + }); + + it('refuses a property-less page too short for the second rung, naming it', () => { + // name + category 15: the second rung is 35, one under the band. + expect(() => + modulePageTitle({ name: 'Abcd', categoryTitle: 'AI Protocol', documentsProperties: false }, 'content/docs/references/ai/abcd.mdx'), + ).toThrow(/content\/docs\/references\/ai\/abcd\.mdx/); + }); + + it('keeps two same-named modules in different categories apart', () => { + const kernel = modulePageTitle({ name: 'Plugin', categoryTitle: 'Kernel Protocol', documentsProperties: true }, 'p').title; + const studio = modulePageTitle({ name: 'Plugin', categoryTitle: 'Studio Protocol', documentsProperties: true }, 'p').title; + expect(kernel).not.toBe(studio); + }); + + it('refuses, naming the page, when no rung fits — never a truncated title', () => { + const tooLong = { name: 'An Exceedingly Long Module Display Name', categoryTitle: 'Integration Protocol', documentsProperties: true }; + expect(modulePageTitleCandidates(tooLong).some(titleInBand)).toBe(false); + expect(() => modulePageTitle(tooLong, 'content/docs/references/integration/long.mdx')).toThrow( + /content\/docs\/references\/integration\/long\.mdx/, + ); + }); +}); + +/** + * The fact the first module rung reads — whether a schema renders a + * `### Properties` table — held equal to what the renderer really emits, one + * JSON Schema shape per branch of `renderSchemaSection`. If a branch changes + * what it renders and the predicate does not follow, this goes red instead of + * a title quietly claiming a table its page lacks. + */ +const SECTION_SHAPES: Array<[shape: string, name: string, schema: any, rendersTable: boolean]> = [ + ['object root with properties', 'Agent', { type: 'object', properties: { name: { type: 'string' } }, required: ['name'] }, true], + ['string enum (data/feed FeedFilterMode)', 'FeedFilterMode', { type: 'string', enum: ['all', 'comments_only', 'changes_only', 'tasks_only'] }, false], + ['string enum (data/feed FeedItemType)', 'FeedItemType', { type: 'string', enum: ['comment', 'field_change', 'task'] }, false], + [ + 'union with an object arm', + 'Trigger', + { anyOf: [{ type: 'object', properties: { type: { type: 'string', const: 'cron' }, expr: { type: 'string' } } }, { type: 'string' }] }, + true, + ], + ['oneOf with an object arm', 'Source', { oneOf: [{ type: 'object', properties: { url: { type: 'string' } } }, { type: 'number' }] }, true], + ['union of an enum and a scalar', 'Mode', { anyOf: [{ type: 'string', enum: ['a', 'b'] }, { type: 'number' }] }, false], + [ + 'string enum that also carries a union (the enum branch wins)', + 'Kind', + { type: 'string', enum: ['a'], anyOf: [{ type: 'object', properties: { x: { type: 'string' } } }] }, + false, + ], + ['bare scalar', 'ObjectName', { type: 'string', description: 'Machine name' }, false], + ['record map (additionalProperties, no properties)', 'Labels', { type: 'object', additionalProperties: { type: 'string' } }, false], + ['array of objects', 'Rows', { type: 'array', items: { type: 'object', properties: { id: { type: 'string' } } } }, false], + [ + 'definitions entry under its own name', + 'Wrapped', + { $ref: '#/definitions/Wrapped', definitions: { Wrapped: { type: 'object', properties: { a: { type: 'number' } } } } }, + true, + ], +]; + +describe('rendersPropertiesTable', () => { + it.each(SECTION_SHAPES)('%s → %s', (_shape, name, schema, rendersTable) => { + expect(rendersPropertiesTable(name, schema)).toBe(rendersTable); + // The renderer's own output agrees, whatever the expectation above says. + expect(/^### Properties$/m.test(renderSchemaSection(name, schema))).toBe(rendersTable); + }); + + it('answers the data/feed page as having no property table', () => { + const feed = SECTION_SHAPES.filter(([shape]) => shape.includes('data/feed')); + expect(feed).toHaveLength(2); + expect(feed.some(([, name, schema]) => rendersPropertiesTable(name, schema))).toBe(false); + }); + + it('declaresProperties is the object-with-properties test and nothing wider', () => { + expect(declaresProperties({ type: 'object', properties: { a: { type: 'string' } } })).toBe(true); + expect(declaresProperties({ type: 'object' })).toBe(false); + expect(declaresProperties({ properties: { a: {} } })).toBe(false); + expect(declaresProperties(undefined)).toBe(false); + }); +}); + +describe('categoryIndexTitle', () => { + it.each([ + ['AI Protocol', 'AI Protocol — complete schema reference'], + ['Identity Protocol', 'Identity Protocol — complete schema reference'], + ['Automation Protocol', 'Automation Protocol — schema reference'], + ['Marketplace Protocol', 'Marketplace Protocol — schema reference'], + ])('%s → %s', (categoryTitle, title) => { + const out = categoryIndexTitle(categoryTitle, `references/x/index.mdx`); + expect(out).toEqual({ title, navTitle: categoryTitle }); + expectRuleShaped(out.title); + }); + + it('is in the band for every declared category title', () => { + for (const categoryTitle of Object.values(CATEGORY_TITLES)) { + expectRuleShaped(categoryIndexTitle(categoryTitle, 'p').title); + } + }); + + it('keeps the rungs longest first', () => { + const lengths = categoryIndexTitleCandidates('C').map(c => c.length); + expect([...lengths].sort((a, b) => b - a)).toEqual(lengths); + }); +}); + +describe('rootIndexTitle', () => { + it('follows the rule and keeps "Protocol Reference" as the page-tree label', () => { + const out = rootIndexTitle(); + expect(out.navTitle).toBe(ROOT_INDEX_NAV_TITLE); + expect(ROOT_INDEX_NAV_TITLE).toBe('Protocol Reference'); + expectRuleShaped(out.title); + }); +}); + +describe('firstTitleInBand', () => { + it('answers the first candidate inside the band', () => { + expect(firstTitleInBand('p', ['short — one', 'A long enough title — with its qualifier', 'x'])).toBe( + 'A long enough title — with its qualifier', + ); + }); +}); + +describe('titleFrontmatter', () => { + it('writes title then navTitle, one line each', () => { + expect(titleFrontmatter({ title: 'Agent schema — AI Protocol property reference', navTitle: 'Agent' })).toBe( + 'title: Agent schema — AI Protocol property reference\nnavTitle: Agent\n', + ); + }); +});