Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/declaration-map-artifact.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@objectstack/spec": patch
---

New generated artifact `declaration-map/` (with `gen:declaration-map` / `check:declaration-map`, covered by `check:generated`): maps TS declaration names of authorable containers to their spec registry names — `ObjectSchemaBase` resolves to `data/Object`, `DatasourceSchema` to `data/Datasource` — composed from `json-schema.manifest/`, `export-origins/`, and a syntactic unwinding pass that recovers module-private base declarations. Repo-internal (not published to npm, like `export-origins/`); diff-side tooling reads it to decide whether a changed declaration is an authorable container.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ packages/spec/json-schema.manifest/** merge=os-regen
packages/spec/api-surface/** merge=os-regen
packages/spec/src/meta-spelling/meta-url-data.generated.ts merge=os-regen
packages/spec/export-origins/** merge=os-regen
packages/spec/declaration-map/** merge=os-regen
packages/spec/api-surface-signatures.json merge=os-regen
docs/protocol-upgrade-guide.md merge=os-regen
docs/audits/2026-07-unknown-key-strictness-ledger.counts.md merge=os-regen
Expand Down
136 changes: 136 additions & 0 deletions packages/spec/declaration-map/ai.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
{
"description": "TS declaration name → spec registry name (def key) for the schemas @objectstack/spec publishes: entries['ObjectSchemaBase'] === 'data/Object'. Composed from json-schema.manifest/ (the def keys), export-origins/ (which declaration each export resolves to), and a syntactic unwinding of wrapper initializers that recovers module-private base declarations (the ObjectSchemaBase case — see scripts/build-declaration-map.ts). A name that maps to two different def keys is DROPPED into `collisions` rather than guessed, so a lookup miss means \"not known to be an authorable container\". Consumers hold a changed line’s enclosing declaration name and ask which authorable container it declares (docs-audit anchor qualification is the funding one). Generated — never hand-edited; regenerate with `pnpm --filter @objectstack/spec gen:declaration-map` and read the diff.",
"category": "ai",
"entries": {
"AIModelConfigSchema": "ai/AIModelConfig",
"AIUsageRecord": "ai/AIUsageRecord",
"AIUsageRecordSchema": "ai/AIUsageRecord",
"Agent": "ai/Agent",
"AgentSchema": "ai/Agent",
"BlueprintApp": "ai/BlueprintApp",
"BlueprintAppSchema": "ai/BlueprintApp",
"BlueprintCondition": "ai/BlueprintCondition",
"BlueprintConditionSchema": "ai/BlueprintCondition",
"BlueprintDashboard": "ai/BlueprintDashboard",
"BlueprintDashboardSchema": "ai/BlueprintDashboard",
"BlueprintField": "ai/BlueprintField",
"BlueprintFieldSchema": "ai/BlueprintField",
"BlueprintNavItem": "ai/BlueprintNavItem",
"BlueprintNavItemSchema": "ai/BlueprintNavItem",
"BlueprintObject": "ai/BlueprintObject",
"BlueprintObjectSchema": "ai/BlueprintObject",
"BlueprintSeed": "ai/BlueprintSeed",
"BlueprintSeedSchema": "ai/BlueprintSeed",
"BlueprintSummaryOperations": "ai/BlueprintSummaryOperations",
"BlueprintSummaryOperationsSchema": "ai/BlueprintSummaryOperations",
"BlueprintView": "ai/BlueprintView",
"BlueprintViewSchema": "ai/BlueprintView",
"BlueprintWidgetCondition": "ai/BlueprintWidgetCondition",
"BlueprintWidgetConditionSchema": "ai/BlueprintWidgetCondition",
"CodeContentSchema": "ai/CodeContent",
"ConversationAnalytics": "ai/ConversationAnalytics",
"ConversationAnalyticsSchema": "ai/ConversationAnalytics",
"ConversationContext": "ai/ConversationContext",
"ConversationContextSchema": "ai/ConversationContext",
"ConversationMessage": "ai/ConversationMessage",
"ConversationMessageSchema": "ai/ConversationMessage",
"ConversationSession": "ai/ConversationSession",
"ConversationSessionSchema": "ai/ConversationSession",
"ConversationSummary": "ai/ConversationSummary",
"ConversationSummarySchema": "ai/ConversationSummary",
"EmbeddingModel": "ai/EmbeddingModel",
"EmbeddingModelSchema": "ai/EmbeddingModel",
"FileContent": "ai/FileContent",
"FileContentSchema": "ai/FileContent",
"FileKnowledgeSource": "ai/FileKnowledgeSource",
"FileKnowledgeSourceSchema": "ai/FileKnowledgeSource",
"FunctionCall": "ai/FunctionCall",
"FunctionCallSchema": "ai/FunctionCall",
"HttpKnowledgeSource": "ai/HttpKnowledgeSource",
"HttpKnowledgeSourceSchema": "ai/HttpKnowledgeSource",
"ImageContentSchema": "ai/ImageContent",
"KnowledgeChunk": "ai/KnowledgeChunk",
"KnowledgeChunkSchema": "ai/KnowledgeChunk",
"KnowledgeDocument": "ai/KnowledgeDocument",
"KnowledgeDocumentSchema": "ai/KnowledgeDocument",
"KnowledgeHit": "ai/KnowledgeHit",
"KnowledgeHitSchema": "ai/KnowledgeHit",
"KnowledgeRefreshPolicy": "ai/KnowledgeRefreshPolicy",
"KnowledgeRefreshPolicySchema": "ai/KnowledgeRefreshPolicy",
"KnowledgeSource": "ai/KnowledgeSource",
"KnowledgeSourceKind": "ai/KnowledgeSourceKind",
"KnowledgeSourceKindSchema": "ai/KnowledgeSourceKind",
"KnowledgeSourceSchema": "ai/KnowledgeSource",
"MCPApprovalPolicy": "ai/MCPApprovalPolicy",
"MCPApprovalPolicySchema": "ai/MCPApprovalPolicy",
"MCPServerRef": "ai/MCPServerRef",
"MCPServerRefSchema": "ai/MCPServerRef",
"MCPToolBinding": "ai/MCPToolBinding",
"MCPToolBindingSchema": "ai/MCPToolBinding",
"MCPTransport": "ai/MCPTransport",
"MCPTransportSchema": "ai/MCPTransport",
"MessageContent": "ai/MessageContent",
"MessageContentSchema": "ai/MessageContent",
"MessageContentType": "ai/MessageContentType",
"MessageContentTypeSchema": "ai/MessageContentType",
"MessagePruningEvent": "ai/MessagePruningEvent",
"MessagePruningEventSchema": "ai/MessagePruningEvent",
"MessageRole": "ai/MessageRole",
"MessageRoleSchema": "ai/MessageRole",
"ModelCapability": "ai/ModelCapability",
"ModelCapabilitySchema": "ai/ModelCapability",
"ModelConfig": "ai/ModelConfig",
"ModelConfigSchema": "ai/ModelConfig",
"ModelLimits": "ai/ModelLimits",
"ModelLimitsSchema": "ai/ModelLimits",
"ModelPricing": "ai/ModelPricing",
"ModelPricingSchema": "ai/ModelPricing",
"ModelProvider": "ai/ModelProvider",
"ModelProviderSchema": "ai/ModelProvider",
"ModelRegistry": "ai/ModelRegistry",
"ModelRegistryEntry": "ai/ModelRegistryEntry",
"ModelRegistryEntrySchema": "ai/ModelRegistryEntry",
"ModelRegistrySchema": "ai/ModelRegistry",
"ModelSelectionCriteria": "ai/ModelSelectionCriteria",
"ModelSelectionCriteriaSchema": "ai/ModelSelectionCriteria",
"ObjectKnowledgeSource": "ai/ObjectKnowledgeSource",
"ObjectKnowledgeSourceSchema": "ai/ObjectKnowledgeSource",
"PromptTemplate": "ai/PromptTemplate",
"PromptTemplateSchema": "ai/PromptTemplate",
"PromptVariable": "ai/PromptVariable",
"PromptVariableSchema": "ai/PromptVariable",
"Skill": "ai/Skill",
"SkillSchema": "ai/Skill",
"SkillTriggerCondition": "ai/SkillTriggerCondition",
"SkillTriggerConditionSchema": "ai/SkillTriggerCondition",
"SolutionBlueprint": "ai/SolutionBlueprint",
"SolutionBlueprintSchema": "ai/SolutionBlueprint",
"SolutionBlueprintStrict": "ai/SolutionBlueprintStrict",
"SolutionBlueprintStrictSchema": "ai/SolutionBlueprintStrict",
"StructuredOutputConfig": "ai/StructuredOutputConfig",
"StructuredOutputConfigSchema": "ai/StructuredOutputConfig",
"StructuredOutputFormat": "ai/StructuredOutputFormat",
"StructuredOutputFormatSchema": "ai/StructuredOutputFormat",
"TextContent": "ai/TextContent",
"TextContentSchema": "ai/TextContent",
"TokenBudgetConfig": "ai/TokenBudgetConfig",
"TokenBudgetConfigSchema": "ai/TokenBudgetConfig",
"TokenBudgetStrategy": "ai/TokenBudgetStrategy",
"TokenBudgetStrategySchema": "ai/TokenBudgetStrategy",
"TokenUsage": "ai/TokenUsage",
"TokenUsageSchema": "ai/TokenUsage",
"TokenUsageStats": "ai/TokenUsageStats",
"TokenUsageStatsSchema": "ai/TokenUsageStats",
"Tool": "ai/Tool",
"ToolCall": "ai/ToolCall",
"ToolCallSchema": "ai/ToolCall",
"ToolSchema": "ai/Tool",
"TransformPipelineStep": "ai/TransformPipelineStep",
"TransformPipelineStepSchema": "ai/TransformPipelineStep",
"VectorStore": "ai/VectorStore",
"VectorStoreProvider": "ai/VectorStoreProvider",
"VectorStoreProviderSchema": "ai/VectorStoreProvider",
"VectorStoreSchema": "ai/VectorStore"
},
"collisions": []
}
Loading
Loading