@objectstack/spec 0.2.0 → 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 (103) 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/index.d.ts +21 -0
  18. package/dist/data/index.d.ts.map +1 -0
  19. package/dist/data/index.js +36 -0
  20. package/dist/data/query.zod.d.ts +386 -3
  21. package/dist/data/query.zod.d.ts.map +1 -1
  22. package/dist/data/query.zod.js +386 -3
  23. package/dist/data/validation.zod.d.ts +349 -0
  24. package/dist/data/validation.zod.d.ts.map +1 -1
  25. package/dist/data/validation.zod.js +395 -0
  26. package/dist/index.d.ts +36 -41
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +64 -49
  29. package/dist/system/auth-protocol.d.ts +175 -0
  30. package/dist/system/auth-protocol.d.ts.map +1 -0
  31. package/dist/system/auth-protocol.js +60 -0
  32. package/dist/system/auth.zod.d.ts +1097 -65
  33. package/dist/system/auth.zod.d.ts.map +1 -1
  34. package/dist/system/auth.zod.js +135 -1
  35. package/dist/system/identity.zod.d.ts +234 -180
  36. package/dist/system/identity.zod.d.ts.map +1 -1
  37. package/dist/system/identity.zod.js +168 -51
  38. package/dist/system/index.d.ts +28 -0
  39. package/dist/system/index.d.ts.map +1 -0
  40. package/dist/system/index.js +43 -0
  41. package/dist/system/manifest.zod.d.ts +10 -10
  42. package/dist/system/organization.zod.d.ts +179 -0
  43. package/dist/system/organization.zod.d.ts.map +1 -0
  44. package/dist/system/organization.zod.js +129 -0
  45. package/dist/ui/action.zod.d.ts +2 -2
  46. package/dist/ui/index.d.ts +17 -0
  47. package/dist/ui/index.d.ts.map +1 -0
  48. package/dist/ui/index.js +32 -0
  49. package/dist/ui/theme.zod.d.ts +6 -6
  50. package/json-schema/Account.json +87 -0
  51. package/json-schema/AuthConfig.json +235 -0
  52. package/json-schema/ChunkingStrategy.json +133 -0
  53. package/json-schema/DatabaseMapping.json +48 -0
  54. package/json-schema/DocumentChunk.json +97 -0
  55. package/json-schema/DocumentLoaderConfig.json +69 -0
  56. package/json-schema/DocumentMetadata.json +61 -0
  57. package/json-schema/EmbeddingModel.json +57 -0
  58. package/json-schema/EnterpriseAuthConfig.json +172 -0
  59. package/json-schema/Entity.json +55 -0
  60. package/json-schema/FieldSynonymConfig.json +39 -0
  61. package/json-schema/Invitation.json +69 -0
  62. package/json-schema/InvitationStatus.json +15 -0
  63. package/json-schema/LDAPConfig.json +22 -5
  64. package/json-schema/Member.json +46 -0
  65. package/json-schema/ModelCapability.json +47 -0
  66. package/json-schema/ModelConfig.json +181 -0
  67. package/json-schema/ModelLimits.json +45 -0
  68. package/json-schema/ModelPricing.json +28 -0
  69. package/json-schema/ModelProvider.json +19 -0
  70. package/json-schema/ModelRegistry.json +427 -0
  71. package/json-schema/ModelRegistryEntry.json +239 -0
  72. package/json-schema/ModelSelectionCriteria.json +50 -0
  73. package/json-schema/NLQAnalytics.json +106 -0
  74. package/json-schema/NLQFieldMapping.json +40 -0
  75. package/json-schema/NLQModelConfig.json +78 -0
  76. package/json-schema/NLQParseResult.json +252 -0
  77. package/json-schema/NLQRequest.json +110 -0
  78. package/json-schema/NLQResponse.json +288 -0
  79. package/json-schema/NLQTrainingExample.json +120 -0
  80. package/json-schema/OIDCConfig.json +18 -3
  81. package/json-schema/Organization.json +52 -0
  82. package/json-schema/PromptTemplate.json +163 -0
  83. package/json-schema/PromptVariable.json +56 -0
  84. package/json-schema/QueryContext.json +72 -0
  85. package/json-schema/QueryIntent.json +21 -0
  86. package/json-schema/QueryTemplate.json +81 -0
  87. package/json-schema/RAGPipelineConfig.json +552 -0
  88. package/json-schema/RAGPipelineStatus.json +66 -0
  89. package/json-schema/RAGQueryRequest.json +64 -0
  90. package/json-schema/RAGQueryResponse.json +108 -0
  91. package/json-schema/RerankingConfig.json +34 -0
  92. package/json-schema/RetrievalStrategy.json +121 -0
  93. package/json-schema/SAMLConfig.json +17 -3
  94. package/json-schema/Session.json +63 -0
  95. package/json-schema/StandardAuthProvider.json +235 -0
  96. package/json-schema/Timeframe.json +68 -0
  97. package/json-schema/User.json +51 -0
  98. package/json-schema/VectorStoreConfig.json +82 -0
  99. package/json-schema/VectorStoreProvider.json +21 -0
  100. package/json-schema/VerificationToken.json +36 -0
  101. package/package.json +27 -1
  102. package/json-schema/AuthProtocol.json +0 -17
  103. package/json-schema/AuthProvider.json +0 -171
@@ -0,0 +1,552 @@
1
+ {
2
+ "$ref": "#/definitions/RAGPipelineConfig",
3
+ "definitions": {
4
+ "RAGPipelineConfig": {
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "pattern": "^[a-z_][a-z0-9_]*$",
10
+ "description": "Pipeline name (snake_case)"
11
+ },
12
+ "label": {
13
+ "type": "string",
14
+ "description": "Display name"
15
+ },
16
+ "description": {
17
+ "type": "string"
18
+ },
19
+ "embedding": {
20
+ "type": "object",
21
+ "properties": {
22
+ "provider": {
23
+ "type": "string",
24
+ "enum": [
25
+ "openai",
26
+ "cohere",
27
+ "huggingface",
28
+ "azure_openai",
29
+ "local",
30
+ "custom"
31
+ ]
32
+ },
33
+ "model": {
34
+ "type": "string",
35
+ "description": "Model name (e.g., \"text-embedding-3-large\")"
36
+ },
37
+ "dimensions": {
38
+ "type": "integer",
39
+ "exclusiveMinimum": 0,
40
+ "description": "Embedding vector dimensions"
41
+ },
42
+ "maxTokens": {
43
+ "type": "integer",
44
+ "exclusiveMinimum": 0,
45
+ "description": "Maximum tokens per embedding"
46
+ },
47
+ "batchSize": {
48
+ "type": "integer",
49
+ "exclusiveMinimum": 0,
50
+ "default": 100,
51
+ "description": "Batch size for embedding"
52
+ },
53
+ "endpoint": {
54
+ "type": "string",
55
+ "format": "uri",
56
+ "description": "Custom endpoint URL"
57
+ },
58
+ "apiKey": {
59
+ "type": "string",
60
+ "description": "API key or reference to secret"
61
+ }
62
+ },
63
+ "required": [
64
+ "provider",
65
+ "model",
66
+ "dimensions"
67
+ ],
68
+ "additionalProperties": false
69
+ },
70
+ "vectorStore": {
71
+ "type": "object",
72
+ "properties": {
73
+ "provider": {
74
+ "type": "string",
75
+ "enum": [
76
+ "pinecone",
77
+ "weaviate",
78
+ "qdrant",
79
+ "milvus",
80
+ "chroma",
81
+ "pgvector",
82
+ "redis",
83
+ "opensearch",
84
+ "elasticsearch",
85
+ "custom"
86
+ ]
87
+ },
88
+ "indexName": {
89
+ "type": "string",
90
+ "description": "Index/collection name"
91
+ },
92
+ "namespace": {
93
+ "type": "string",
94
+ "description": "Namespace for multi-tenancy"
95
+ },
96
+ "host": {
97
+ "type": "string",
98
+ "description": "Vector store host"
99
+ },
100
+ "port": {
101
+ "type": "integer",
102
+ "description": "Vector store port"
103
+ },
104
+ "apiKey": {
105
+ "type": "string",
106
+ "description": "API key or reference to secret"
107
+ },
108
+ "dimensions": {
109
+ "type": "integer",
110
+ "exclusiveMinimum": 0,
111
+ "description": "Vector dimensions"
112
+ },
113
+ "metric": {
114
+ "type": "string",
115
+ "enum": [
116
+ "cosine",
117
+ "euclidean",
118
+ "dotproduct"
119
+ ],
120
+ "default": "cosine"
121
+ },
122
+ "batchSize": {
123
+ "type": "integer",
124
+ "exclusiveMinimum": 0,
125
+ "default": 100
126
+ },
127
+ "connectionPoolSize": {
128
+ "type": "integer",
129
+ "exclusiveMinimum": 0,
130
+ "default": 10
131
+ },
132
+ "timeout": {
133
+ "type": "integer",
134
+ "exclusiveMinimum": 0,
135
+ "default": 30000,
136
+ "description": "Timeout in milliseconds"
137
+ }
138
+ },
139
+ "required": [
140
+ "provider",
141
+ "indexName",
142
+ "dimensions"
143
+ ],
144
+ "additionalProperties": false
145
+ },
146
+ "chunking": {
147
+ "anyOf": [
148
+ {
149
+ "type": "object",
150
+ "properties": {
151
+ "type": {
152
+ "type": "string",
153
+ "const": "fixed"
154
+ },
155
+ "chunkSize": {
156
+ "type": "integer",
157
+ "exclusiveMinimum": 0,
158
+ "description": "Fixed chunk size in tokens/chars"
159
+ },
160
+ "chunkOverlap": {
161
+ "type": "integer",
162
+ "minimum": 0,
163
+ "default": 0,
164
+ "description": "Overlap between chunks"
165
+ },
166
+ "unit": {
167
+ "type": "string",
168
+ "enum": [
169
+ "tokens",
170
+ "characters"
171
+ ],
172
+ "default": "tokens"
173
+ }
174
+ },
175
+ "required": [
176
+ "type",
177
+ "chunkSize"
178
+ ],
179
+ "additionalProperties": false
180
+ },
181
+ {
182
+ "type": "object",
183
+ "properties": {
184
+ "type": {
185
+ "type": "string",
186
+ "const": "semantic"
187
+ },
188
+ "model": {
189
+ "type": "string",
190
+ "description": "Model for semantic chunking"
191
+ },
192
+ "minChunkSize": {
193
+ "type": "integer",
194
+ "exclusiveMinimum": 0,
195
+ "default": 100
196
+ },
197
+ "maxChunkSize": {
198
+ "type": "integer",
199
+ "exclusiveMinimum": 0,
200
+ "default": 1000
201
+ }
202
+ },
203
+ "required": [
204
+ "type"
205
+ ],
206
+ "additionalProperties": false
207
+ },
208
+ {
209
+ "type": "object",
210
+ "properties": {
211
+ "type": {
212
+ "type": "string",
213
+ "const": "recursive"
214
+ },
215
+ "separators": {
216
+ "type": "array",
217
+ "items": {
218
+ "type": "string"
219
+ },
220
+ "default": [
221
+ "\n\n",
222
+ "\n",
223
+ " ",
224
+ ""
225
+ ]
226
+ },
227
+ "chunkSize": {
228
+ "type": "integer",
229
+ "exclusiveMinimum": 0
230
+ },
231
+ "chunkOverlap": {
232
+ "type": "integer",
233
+ "minimum": 0,
234
+ "default": 0
235
+ }
236
+ },
237
+ "required": [
238
+ "type",
239
+ "chunkSize"
240
+ ],
241
+ "additionalProperties": false
242
+ },
243
+ {
244
+ "type": "object",
245
+ "properties": {
246
+ "type": {
247
+ "type": "string",
248
+ "const": "markdown"
249
+ },
250
+ "maxChunkSize": {
251
+ "type": "integer",
252
+ "exclusiveMinimum": 0,
253
+ "default": 1000
254
+ },
255
+ "respectHeaders": {
256
+ "type": "boolean",
257
+ "default": true,
258
+ "description": "Keep headers with content"
259
+ },
260
+ "respectCodeBlocks": {
261
+ "type": "boolean",
262
+ "default": true,
263
+ "description": "Keep code blocks intact"
264
+ }
265
+ },
266
+ "required": [
267
+ "type"
268
+ ],
269
+ "additionalProperties": false
270
+ }
271
+ ]
272
+ },
273
+ "retrieval": {
274
+ "anyOf": [
275
+ {
276
+ "type": "object",
277
+ "properties": {
278
+ "type": {
279
+ "type": "string",
280
+ "const": "similarity"
281
+ },
282
+ "topK": {
283
+ "type": "integer",
284
+ "exclusiveMinimum": 0,
285
+ "default": 5,
286
+ "description": "Number of results to retrieve"
287
+ },
288
+ "scoreThreshold": {
289
+ "type": "number",
290
+ "minimum": 0,
291
+ "maximum": 1,
292
+ "description": "Minimum similarity score"
293
+ }
294
+ },
295
+ "required": [
296
+ "type"
297
+ ],
298
+ "additionalProperties": false
299
+ },
300
+ {
301
+ "type": "object",
302
+ "properties": {
303
+ "type": {
304
+ "type": "string",
305
+ "const": "mmr"
306
+ },
307
+ "topK": {
308
+ "type": "integer",
309
+ "exclusiveMinimum": 0,
310
+ "default": 5
311
+ },
312
+ "fetchK": {
313
+ "type": "integer",
314
+ "exclusiveMinimum": 0,
315
+ "default": 20,
316
+ "description": "Initial fetch size"
317
+ },
318
+ "lambda": {
319
+ "type": "number",
320
+ "minimum": 0,
321
+ "maximum": 1,
322
+ "default": 0.5,
323
+ "description": "Diversity vs relevance (0=diverse, 1=relevant)"
324
+ }
325
+ },
326
+ "required": [
327
+ "type"
328
+ ],
329
+ "additionalProperties": false
330
+ },
331
+ {
332
+ "type": "object",
333
+ "properties": {
334
+ "type": {
335
+ "type": "string",
336
+ "const": "hybrid"
337
+ },
338
+ "topK": {
339
+ "type": "integer",
340
+ "exclusiveMinimum": 0,
341
+ "default": 5
342
+ },
343
+ "vectorWeight": {
344
+ "type": "number",
345
+ "minimum": 0,
346
+ "maximum": 1,
347
+ "default": 0.7,
348
+ "description": "Weight for vector search"
349
+ },
350
+ "keywordWeight": {
351
+ "type": "number",
352
+ "minimum": 0,
353
+ "maximum": 1,
354
+ "default": 0.3,
355
+ "description": "Weight for keyword search"
356
+ }
357
+ },
358
+ "required": [
359
+ "type"
360
+ ],
361
+ "additionalProperties": false
362
+ },
363
+ {
364
+ "type": "object",
365
+ "properties": {
366
+ "type": {
367
+ "type": "string",
368
+ "const": "parent_document"
369
+ },
370
+ "topK": {
371
+ "type": "integer",
372
+ "exclusiveMinimum": 0,
373
+ "default": 5
374
+ },
375
+ "retrieveParent": {
376
+ "type": "boolean",
377
+ "default": true,
378
+ "description": "Retrieve full parent document"
379
+ }
380
+ },
381
+ "required": [
382
+ "type"
383
+ ],
384
+ "additionalProperties": false
385
+ }
386
+ ]
387
+ },
388
+ "reranking": {
389
+ "type": "object",
390
+ "properties": {
391
+ "enabled": {
392
+ "type": "boolean",
393
+ "default": false
394
+ },
395
+ "model": {
396
+ "type": "string",
397
+ "description": "Reranking model name"
398
+ },
399
+ "provider": {
400
+ "type": "string",
401
+ "enum": [
402
+ "cohere",
403
+ "huggingface",
404
+ "custom"
405
+ ]
406
+ },
407
+ "topK": {
408
+ "type": "integer",
409
+ "exclusiveMinimum": 0,
410
+ "default": 3,
411
+ "description": "Final number of results after reranking"
412
+ }
413
+ },
414
+ "additionalProperties": false
415
+ },
416
+ "loaders": {
417
+ "type": "array",
418
+ "items": {
419
+ "type": "object",
420
+ "properties": {
421
+ "type": {
422
+ "type": "string",
423
+ "enum": [
424
+ "file",
425
+ "directory",
426
+ "url",
427
+ "api",
428
+ "database",
429
+ "custom"
430
+ ]
431
+ },
432
+ "source": {
433
+ "type": "string",
434
+ "description": "Source path, URL, or identifier"
435
+ },
436
+ "fileTypes": {
437
+ "type": "array",
438
+ "items": {
439
+ "type": "string"
440
+ },
441
+ "description": "Accepted file extensions (e.g., [\".pdf\", \".md\"])"
442
+ },
443
+ "recursive": {
444
+ "type": "boolean",
445
+ "default": false,
446
+ "description": "Process directories recursively"
447
+ },
448
+ "maxFileSize": {
449
+ "type": "integer",
450
+ "description": "Maximum file size in bytes"
451
+ },
452
+ "excludePatterns": {
453
+ "type": "array",
454
+ "items": {
455
+ "type": "string"
456
+ },
457
+ "description": "Patterns to exclude"
458
+ },
459
+ "extractImages": {
460
+ "type": "boolean",
461
+ "default": false,
462
+ "description": "Extract text from images (OCR)"
463
+ },
464
+ "extractTables": {
465
+ "type": "boolean",
466
+ "default": false,
467
+ "description": "Extract and format tables"
468
+ },
469
+ "loaderConfig": {
470
+ "type": "object",
471
+ "additionalProperties": {},
472
+ "description": "Custom loader-specific config"
473
+ }
474
+ },
475
+ "required": [
476
+ "type",
477
+ "source"
478
+ ],
479
+ "additionalProperties": false
480
+ },
481
+ "description": "Document loaders"
482
+ },
483
+ "maxContextTokens": {
484
+ "type": "integer",
485
+ "exclusiveMinimum": 0,
486
+ "default": 4000,
487
+ "description": "Maximum tokens in context"
488
+ },
489
+ "contextWindow": {
490
+ "type": "integer",
491
+ "exclusiveMinimum": 0,
492
+ "description": "LLM context window size"
493
+ },
494
+ "metadataFilters": {
495
+ "type": "object",
496
+ "additionalProperties": {
497
+ "anyOf": [
498
+ {
499
+ "type": "string"
500
+ },
501
+ {
502
+ "type": "number"
503
+ },
504
+ {
505
+ "type": "boolean"
506
+ },
507
+ {
508
+ "type": "array",
509
+ "items": {
510
+ "type": [
511
+ "string",
512
+ "number"
513
+ ]
514
+ }
515
+ }
516
+ ]
517
+ },
518
+ "description": "Filters for retrieval (e.g., {category: \"docs\", status: \"published\"})"
519
+ },
520
+ "enableCache": {
521
+ "type": "boolean",
522
+ "default": true
523
+ },
524
+ "cacheTTL": {
525
+ "type": "integer",
526
+ "exclusiveMinimum": 0,
527
+ "default": 3600,
528
+ "description": "Cache TTL in seconds"
529
+ },
530
+ "cacheInvalidationStrategy": {
531
+ "type": "string",
532
+ "enum": [
533
+ "time_based",
534
+ "manual",
535
+ "on_update"
536
+ ],
537
+ "default": "time_based"
538
+ }
539
+ },
540
+ "required": [
541
+ "name",
542
+ "label",
543
+ "embedding",
544
+ "vectorStore",
545
+ "chunking",
546
+ "retrieval"
547
+ ],
548
+ "additionalProperties": false
549
+ }
550
+ },
551
+ "$schema": "http://json-schema.org/draft-07/schema#"
552
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$ref": "#/definitions/RAGPipelineStatus",
3
+ "definitions": {
4
+ "RAGPipelineStatus": {
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string"
9
+ },
10
+ "status": {
11
+ "type": "string",
12
+ "enum": [
13
+ "active",
14
+ "indexing",
15
+ "error",
16
+ "disabled"
17
+ ]
18
+ },
19
+ "documentsIndexed": {
20
+ "type": "integer",
21
+ "minimum": 0
22
+ },
23
+ "lastIndexed": {
24
+ "type": "string",
25
+ "description": "ISO timestamp"
26
+ },
27
+ "errorMessage": {
28
+ "type": "string"
29
+ },
30
+ "health": {
31
+ "type": "object",
32
+ "properties": {
33
+ "vectorStore": {
34
+ "type": "string",
35
+ "enum": [
36
+ "healthy",
37
+ "unhealthy",
38
+ "unknown"
39
+ ]
40
+ },
41
+ "embeddingService": {
42
+ "type": "string",
43
+ "enum": [
44
+ "healthy",
45
+ "unhealthy",
46
+ "unknown"
47
+ ]
48
+ }
49
+ },
50
+ "required": [
51
+ "vectorStore",
52
+ "embeddingService"
53
+ ],
54
+ "additionalProperties": false
55
+ }
56
+ },
57
+ "required": [
58
+ "name",
59
+ "status",
60
+ "documentsIndexed"
61
+ ],
62
+ "additionalProperties": false
63
+ }
64
+ },
65
+ "$schema": "http://json-schema.org/draft-07/schema#"
66
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "$ref": "#/definitions/RAGQueryRequest",
3
+ "definitions": {
4
+ "RAGQueryRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "query": {
8
+ "type": "string",
9
+ "description": "User query"
10
+ },
11
+ "pipelineName": {
12
+ "type": "string",
13
+ "description": "Pipeline to use"
14
+ },
15
+ "topK": {
16
+ "type": "integer",
17
+ "exclusiveMinimum": 0
18
+ },
19
+ "metadataFilters": {
20
+ "type": "object",
21
+ "additionalProperties": {}
22
+ },
23
+ "conversationHistory": {
24
+ "type": "array",
25
+ "items": {
26
+ "type": "object",
27
+ "properties": {
28
+ "role": {
29
+ "type": "string",
30
+ "enum": [
31
+ "user",
32
+ "assistant",
33
+ "system"
34
+ ]
35
+ },
36
+ "content": {
37
+ "type": "string"
38
+ }
39
+ },
40
+ "required": [
41
+ "role",
42
+ "content"
43
+ ],
44
+ "additionalProperties": false
45
+ }
46
+ },
47
+ "includeMetadata": {
48
+ "type": "boolean",
49
+ "default": true
50
+ },
51
+ "includeSources": {
52
+ "type": "boolean",
53
+ "default": true
54
+ }
55
+ },
56
+ "required": [
57
+ "query",
58
+ "pipelineName"
59
+ ],
60
+ "additionalProperties": false
61
+ }
62
+ },
63
+ "$schema": "http://json-schema.org/draft-07/schema#"
64
+ }