@objectstack/spec 0.1.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/README.md +127 -5
  2. package/dist/ai/index.d.ts +14 -0
  3. package/dist/ai/index.d.ts.map +1 -0
  4. package/dist/ai/index.js +29 -0
  5. package/dist/ai/model-registry.zod.d.ts +1389 -0
  6. package/dist/ai/model-registry.zod.d.ts.map +1 -0
  7. package/dist/ai/model-registry.zod.js +164 -0
  8. package/dist/ai/nlq.zod.d.ts +1126 -0
  9. package/dist/ai/nlq.zod.d.ts.map +1 -0
  10. package/dist/ai/nlq.zod.js +246 -0
  11. package/dist/ai/rag-pipeline.zod.d.ts +1034 -0
  12. package/dist/ai/rag-pipeline.zod.d.ts.map +1 -0
  13. package/dist/ai/rag-pipeline.zod.js +244 -0
  14. package/dist/api/index.d.ts +9 -0
  15. package/dist/api/index.d.ts.map +1 -0
  16. package/dist/api/index.js +24 -0
  17. package/dist/data/filter.zod.d.ts +295 -0
  18. package/dist/data/filter.zod.d.ts.map +1 -0
  19. package/dist/data/filter.zod.js +226 -0
  20. package/dist/data/index.d.ts +21 -0
  21. package/dist/data/index.d.ts.map +1 -0
  22. package/dist/data/index.js +36 -0
  23. package/dist/data/query.zod.d.ts +386 -3
  24. package/dist/data/query.zod.d.ts.map +1 -1
  25. package/dist/data/query.zod.js +386 -3
  26. package/dist/data/validation.zod.d.ts +349 -0
  27. package/dist/data/validation.zod.d.ts.map +1 -1
  28. package/dist/data/validation.zod.js +395 -0
  29. package/dist/index.d.ts +36 -39
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +64 -47
  32. package/dist/system/auth-protocol.d.ts +175 -0
  33. package/dist/system/auth-protocol.d.ts.map +1 -0
  34. package/dist/system/auth-protocol.js +60 -0
  35. package/dist/system/auth.zod.d.ts +3319 -0
  36. package/dist/system/auth.zod.d.ts.map +1 -0
  37. package/dist/system/auth.zod.js +499 -0
  38. package/dist/system/datasource.zod.d.ts +118 -38
  39. package/dist/system/datasource.zod.d.ts.map +1 -1
  40. package/dist/system/datasource.zod.js +25 -6
  41. package/dist/system/driver.zod.d.ts +106 -0
  42. package/dist/system/driver.zod.d.ts.map +1 -1
  43. package/dist/system/driver.zod.js +47 -0
  44. package/dist/system/identity.zod.d.ts +234 -180
  45. package/dist/system/identity.zod.d.ts.map +1 -1
  46. package/dist/system/identity.zod.js +168 -51
  47. package/dist/system/index.d.ts +28 -0
  48. package/dist/system/index.d.ts.map +1 -0
  49. package/dist/system/index.js +43 -0
  50. package/dist/system/manifest.zod.d.ts +10 -10
  51. package/dist/system/organization.zod.d.ts +179 -0
  52. package/dist/system/organization.zod.d.ts.map +1 -0
  53. package/dist/system/organization.zod.js +129 -0
  54. package/dist/system/policy.zod.d.ts +10 -10
  55. package/dist/ui/action.zod.d.ts +2 -2
  56. package/dist/ui/dashboard.zod.d.ts +10 -10
  57. package/dist/ui/dashboard.zod.d.ts.map +1 -1
  58. package/dist/ui/dashboard.zod.js +3 -2
  59. package/dist/ui/index.d.ts +17 -0
  60. package/dist/ui/index.d.ts.map +1 -0
  61. package/dist/ui/index.js +32 -0
  62. package/dist/ui/report.zod.d.ts +4 -32
  63. package/dist/ui/report.zod.d.ts.map +1 -1
  64. package/dist/ui/report.zod.js +3 -8
  65. package/dist/ui/theme.zod.d.ts +6 -6
  66. package/json-schema/Account.json +87 -0
  67. package/json-schema/AccountLinkingConfig.json +27 -0
  68. package/json-schema/AuthConfig.json +841 -0
  69. package/json-schema/AuthPluginConfig.json +28 -0
  70. package/json-schema/AuthStrategy.json +17 -0
  71. package/json-schema/AuthenticationConfig.json +601 -0
  72. package/json-schema/AuthenticationProvider.json +617 -0
  73. package/json-schema/CSRFConfig.json +31 -0
  74. package/json-schema/ChunkingStrategy.json +133 -0
  75. package/json-schema/ComparisonOperator.json +56 -0
  76. package/json-schema/Dashboard.json +20 -0
  77. package/json-schema/DashboardWidget.json +20 -0
  78. package/json-schema/DatabaseAdapter.json +38 -0
  79. package/json-schema/DatabaseMapping.json +48 -0
  80. package/json-schema/Datasource.json +25 -5
  81. package/json-schema/DatasourceCapabilities.json +25 -5
  82. package/json-schema/DocumentChunk.json +97 -0
  83. package/json-schema/DocumentLoaderConfig.json +69 -0
  84. package/json-schema/DocumentMetadata.json +61 -0
  85. package/json-schema/DriverCapabilities.json +30 -0
  86. package/json-schema/DriverDefinition.json +25 -5
  87. package/json-schema/DriverInterface.json +30 -0
  88. package/json-schema/EmailPasswordConfig.json +43 -0
  89. package/json-schema/EmbeddingModel.json +57 -0
  90. package/json-schema/EnterpriseAuthConfig.json +172 -0
  91. package/json-schema/Entity.json +55 -0
  92. package/json-schema/EqualityOperator.json +14 -0
  93. package/json-schema/FieldOperators.json +108 -0
  94. package/json-schema/FieldSynonymConfig.json +39 -0
  95. package/json-schema/FilterCondition.json +28 -0
  96. package/json-schema/Invitation.json +69 -0
  97. package/json-schema/InvitationStatus.json +15 -0
  98. package/json-schema/LDAPConfig.json +22 -5
  99. package/json-schema/MagicLinkConfig.json +21 -0
  100. package/json-schema/Member.json +46 -0
  101. package/json-schema/ModelCapability.json +47 -0
  102. package/json-schema/ModelConfig.json +181 -0
  103. package/json-schema/ModelLimits.json +45 -0
  104. package/json-schema/ModelPricing.json +28 -0
  105. package/json-schema/ModelProvider.json +19 -0
  106. package/json-schema/ModelRegistry.json +427 -0
  107. package/json-schema/ModelRegistryEntry.json +239 -0
  108. package/json-schema/ModelSelectionCriteria.json +50 -0
  109. package/json-schema/NLQAnalytics.json +106 -0
  110. package/json-schema/NLQFieldMapping.json +40 -0
  111. package/json-schema/NLQModelConfig.json +78 -0
  112. package/json-schema/NLQParseResult.json +252 -0
  113. package/json-schema/NLQRequest.json +110 -0
  114. package/json-schema/NLQResponse.json +288 -0
  115. package/json-schema/NLQTrainingExample.json +120 -0
  116. package/json-schema/NormalizedFilter.json +348 -0
  117. package/json-schema/OAuthProvider.json +66 -0
  118. package/json-schema/OIDCConfig.json +18 -3
  119. package/json-schema/Organization.json +52 -0
  120. package/json-schema/PasskeyConfig.json +54 -0
  121. package/json-schema/PromptTemplate.json +163 -0
  122. package/json-schema/PromptVariable.json +56 -0
  123. package/json-schema/QueryContext.json +72 -0
  124. package/json-schema/QueryFilter.json +34 -0
  125. package/json-schema/QueryIntent.json +21 -0
  126. package/json-schema/QueryTemplate.json +81 -0
  127. package/json-schema/RAGPipelineConfig.json +552 -0
  128. package/json-schema/RAGPipelineStatus.json +66 -0
  129. package/json-schema/RAGQueryRequest.json +64 -0
  130. package/json-schema/RAGQueryResponse.json +108 -0
  131. package/json-schema/RangeOperator.json +41 -0
  132. package/json-schema/RateLimitConfig.json +36 -0
  133. package/json-schema/Report.json +20 -26
  134. package/json-schema/RerankingConfig.json +34 -0
  135. package/json-schema/RetrievalStrategy.json +121 -0
  136. package/json-schema/SAMLConfig.json +17 -3
  137. package/json-schema/Session.json +63 -0
  138. package/json-schema/SessionConfig.json +56 -0
  139. package/json-schema/SetOperator.json +18 -0
  140. package/json-schema/SpecialOperator.json +18 -0
  141. package/json-schema/StandardAuthProvider.json +857 -0
  142. package/json-schema/StringOperator.json +21 -0
  143. package/json-schema/Timeframe.json +68 -0
  144. package/json-schema/TwoFactorConfig.json +40 -0
  145. package/json-schema/User.json +51 -0
  146. package/json-schema/UserFieldMapping.json +47 -0
  147. package/json-schema/VectorStoreConfig.json +82 -0
  148. package/json-schema/VectorStoreProvider.json +21 -0
  149. package/json-schema/VerificationToken.json +36 -0
  150. package/package.json +27 -1
  151. package/json-schema/AuthProtocol.json +0 -17
  152. package/json-schema/AuthProvider.json +0 -171
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-registry.zod.d.ts","sourceRoot":"","sources":["../../src/ai/model-registry.zod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModelSelectionCriteriaSchema = exports.ModelRegistrySchema = exports.ModelRegistryEntrySchema = exports.PromptTemplateSchema = exports.PromptVariableSchema = exports.ModelConfigSchema = exports.ModelPricingSchema = exports.ModelLimitsSchema = exports.ModelCapabilitySchema = exports.ModelProviderSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * AI Model Registry Protocol
7
+ *
8
+ * Centralized registry for managing AI models, prompt templates, and model versioning.
9
+ * Enables AI-powered ObjectStack applications to discover and use LLMs consistently.
10
+ */
11
+ /**
12
+ * Model Provider Type
13
+ */
14
+ exports.ModelProviderSchema = zod_1.z.enum([
15
+ 'openai',
16
+ 'azure_openai',
17
+ 'anthropic',
18
+ 'google',
19
+ 'cohere',
20
+ 'huggingface',
21
+ 'local',
22
+ 'custom',
23
+ ]);
24
+ /**
25
+ * Model Capability
26
+ */
27
+ exports.ModelCapabilitySchema = zod_1.z.object({
28
+ textGeneration: zod_1.z.boolean().optional().default(true).describe('Supports text generation'),
29
+ textEmbedding: zod_1.z.boolean().optional().default(false).describe('Supports text embedding'),
30
+ imageGeneration: zod_1.z.boolean().optional().default(false).describe('Supports image generation'),
31
+ imageUnderstanding: zod_1.z.boolean().optional().default(false).describe('Supports image understanding'),
32
+ functionCalling: zod_1.z.boolean().optional().default(false).describe('Supports function calling'),
33
+ codeGeneration: zod_1.z.boolean().optional().default(false).describe('Supports code generation'),
34
+ reasoning: zod_1.z.boolean().optional().default(false).describe('Supports advanced reasoning'),
35
+ });
36
+ /**
37
+ * Model Limits
38
+ */
39
+ exports.ModelLimitsSchema = zod_1.z.object({
40
+ maxTokens: zod_1.z.number().int().positive().describe('Maximum tokens per request'),
41
+ contextWindow: zod_1.z.number().int().positive().describe('Context window size'),
42
+ maxOutputTokens: zod_1.z.number().int().positive().optional().describe('Maximum output tokens'),
43
+ rateLimit: zod_1.z.object({
44
+ requestsPerMinute: zod_1.z.number().int().positive().optional(),
45
+ tokensPerMinute: zod_1.z.number().int().positive().optional(),
46
+ }).optional(),
47
+ });
48
+ /**
49
+ * Model Pricing
50
+ */
51
+ exports.ModelPricingSchema = zod_1.z.object({
52
+ currency: zod_1.z.string().optional().default('USD'),
53
+ inputCostPer1kTokens: zod_1.z.number().optional().describe('Cost per 1K input tokens'),
54
+ outputCostPer1kTokens: zod_1.z.number().optional().describe('Cost per 1K output tokens'),
55
+ embeddingCostPer1kTokens: zod_1.z.number().optional().describe('Cost per 1K embedding tokens'),
56
+ });
57
+ /**
58
+ * Model Configuration
59
+ */
60
+ exports.ModelConfigSchema = zod_1.z.object({
61
+ /** Identity */
62
+ id: zod_1.z.string().describe('Unique model identifier'),
63
+ name: zod_1.z.string().describe('Model display name'),
64
+ version: zod_1.z.string().describe('Model version (e.g., "gpt-4-turbo-2024-04-09")'),
65
+ provider: exports.ModelProviderSchema,
66
+ /** Capabilities */
67
+ capabilities: exports.ModelCapabilitySchema,
68
+ limits: exports.ModelLimitsSchema,
69
+ /** Pricing */
70
+ pricing: exports.ModelPricingSchema.optional(),
71
+ /** Configuration */
72
+ endpoint: zod_1.z.string().url().optional().describe('Custom API endpoint'),
73
+ apiKey: zod_1.z.string().optional().describe('API key or reference to secret'),
74
+ region: zod_1.z.string().optional().describe('Deployment region (e.g., "us-east-1")'),
75
+ /** Metadata */
76
+ description: zod_1.z.string().optional(),
77
+ tags: zod_1.z.array(zod_1.z.string()).optional().describe('Tags for categorization'),
78
+ deprecated: zod_1.z.boolean().optional().default(false),
79
+ recommendedFor: zod_1.z.array(zod_1.z.string()).optional().describe('Use case recommendations'),
80
+ });
81
+ /**
82
+ * Prompt Template Variable
83
+ */
84
+ exports.PromptVariableSchema = zod_1.z.object({
85
+ name: zod_1.z.string().describe('Variable name (e.g., "user_name", "context")'),
86
+ type: zod_1.z.enum(['string', 'number', 'boolean', 'object', 'array']).default('string'),
87
+ required: zod_1.z.boolean().default(false),
88
+ defaultValue: zod_1.z.any().optional(),
89
+ description: zod_1.z.string().optional(),
90
+ validation: zod_1.z.object({
91
+ minLength: zod_1.z.number().optional(),
92
+ maxLength: zod_1.z.number().optional(),
93
+ pattern: zod_1.z.string().optional(),
94
+ enum: zod_1.z.array(zod_1.z.any()).optional(),
95
+ }).optional(),
96
+ });
97
+ /**
98
+ * Prompt Template
99
+ */
100
+ exports.PromptTemplateSchema = zod_1.z.object({
101
+ /** Identity */
102
+ id: zod_1.z.string().describe('Unique template identifier'),
103
+ name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Template name (snake_case)'),
104
+ label: zod_1.z.string().describe('Display name'),
105
+ /** Template Content */
106
+ system: zod_1.z.string().optional().describe('System prompt'),
107
+ user: zod_1.z.string().describe('User prompt template with variables'),
108
+ assistant: zod_1.z.string().optional().describe('Assistant message prefix'),
109
+ /** Variables */
110
+ variables: zod_1.z.array(exports.PromptVariableSchema).optional().describe('Template variables'),
111
+ /** Model Configuration */
112
+ modelId: zod_1.z.string().optional().describe('Recommended model ID'),
113
+ temperature: zod_1.z.number().min(0).max(2).optional(),
114
+ maxTokens: zod_1.z.number().optional(),
115
+ topP: zod_1.z.number().optional(),
116
+ frequencyPenalty: zod_1.z.number().optional(),
117
+ presencePenalty: zod_1.z.number().optional(),
118
+ stopSequences: zod_1.z.array(zod_1.z.string()).optional(),
119
+ /** Metadata */
120
+ version: zod_1.z.string().optional().default('1.0.0'),
121
+ description: zod_1.z.string().optional(),
122
+ category: zod_1.z.string().optional().describe('Template category (e.g., "code_generation", "support")'),
123
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
124
+ examples: zod_1.z.array(zod_1.z.object({
125
+ input: zod_1.z.record(zod_1.z.any()).describe('Example variable values'),
126
+ output: zod_1.z.string().describe('Expected output'),
127
+ })).optional(),
128
+ });
129
+ /**
130
+ * Model Registry Entry
131
+ */
132
+ exports.ModelRegistryEntrySchema = zod_1.z.object({
133
+ model: exports.ModelConfigSchema,
134
+ status: zod_1.z.enum(['active', 'deprecated', 'experimental', 'disabled']).default('active'),
135
+ priority: zod_1.z.number().int().default(0).describe('Priority for model selection'),
136
+ fallbackModels: zod_1.z.array(zod_1.z.string()).optional().describe('Fallback model IDs'),
137
+ healthCheck: zod_1.z.object({
138
+ enabled: zod_1.z.boolean().default(true),
139
+ intervalSeconds: zod_1.z.number().int().default(300),
140
+ lastChecked: zod_1.z.string().optional().describe('ISO timestamp'),
141
+ status: zod_1.z.enum(['healthy', 'unhealthy', 'unknown']).default('unknown'),
142
+ }).optional(),
143
+ });
144
+ /**
145
+ * Model Registry
146
+ */
147
+ exports.ModelRegistrySchema = zod_1.z.object({
148
+ name: zod_1.z.string().describe('Registry name'),
149
+ models: zod_1.z.record(exports.ModelRegistryEntrySchema).describe('Model entries by ID'),
150
+ promptTemplates: zod_1.z.record(exports.PromptTemplateSchema).optional().describe('Prompt templates by name'),
151
+ defaultModel: zod_1.z.string().optional().describe('Default model ID'),
152
+ enableAutoFallback: zod_1.z.boolean().default(true).describe('Auto-fallback on errors'),
153
+ });
154
+ /**
155
+ * Model Selection Criteria
156
+ */
157
+ exports.ModelSelectionCriteriaSchema = zod_1.z.object({
158
+ capabilities: zod_1.z.array(zod_1.z.string()).optional().describe('Required capabilities'),
159
+ maxCostPer1kTokens: zod_1.z.number().optional().describe('Maximum acceptable cost'),
160
+ minContextWindow: zod_1.z.number().optional().describe('Minimum context window size'),
161
+ provider: exports.ModelProviderSchema.optional(),
162
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
163
+ excludeDeprecated: zod_1.z.boolean().default(true),
164
+ });