@objectstack/spec 0.1.0 → 0.1.1

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 (231) hide show
  1. package/README.md +66 -125
  2. package/dist/ai/agent.zod.d.ts +164 -0
  3. package/dist/ai/agent.zod.d.ts.map +1 -0
  4. package/dist/ai/agent.zod.js +51 -0
  5. package/dist/data/dataset.zod.d.ts +60 -0
  6. package/dist/data/dataset.zod.d.ts.map +1 -0
  7. package/dist/data/dataset.zod.js +54 -0
  8. package/dist/data/field.zod.d.ts +170 -0
  9. package/dist/data/field.zod.d.ts.map +1 -0
  10. package/dist/data/field.zod.js +81 -0
  11. package/dist/data/flow.zod.d.ts +242 -0
  12. package/dist/data/flow.zod.d.ts.map +1 -0
  13. package/dist/data/flow.zod.js +77 -0
  14. package/dist/data/mapping.zod.d.ts +257 -0
  15. package/dist/data/mapping.zod.d.ts.map +1 -0
  16. package/dist/data/mapping.zod.js +65 -0
  17. package/dist/data/object.zod.d.ts +364 -0
  18. package/dist/data/object.zod.d.ts.map +1 -0
  19. package/dist/data/object.zod.js +54 -0
  20. package/dist/data/permission.zod.d.ts +163 -0
  21. package/dist/data/permission.zod.d.ts.map +1 -0
  22. package/dist/data/permission.zod.js +62 -0
  23. package/dist/data/query.zod.d.ts +89 -0
  24. package/dist/data/query.zod.d.ts.map +1 -0
  25. package/dist/data/query.zod.js +71 -0
  26. package/dist/data/sharing.zod.d.ts +63 -0
  27. package/dist/data/sharing.zod.d.ts.map +1 -0
  28. package/dist/data/sharing.zod.js +57 -0
  29. package/dist/data/validation.zod.d.ts +236 -0
  30. package/dist/data/validation.zod.d.ts.map +1 -0
  31. package/dist/data/validation.zod.js +59 -0
  32. package/dist/data/workflow.zod.d.ts +195 -0
  33. package/dist/data/workflow.zod.d.ts.map +1 -0
  34. package/dist/data/workflow.zod.js +64 -0
  35. package/dist/index.d.ts +33 -5
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +53 -5
  38. package/dist/system/api.zod.d.ts +168 -0
  39. package/dist/system/api.zod.d.ts.map +1 -0
  40. package/dist/system/api.zod.js +53 -0
  41. package/dist/system/constants/index.d.ts +11 -0
  42. package/dist/system/constants/index.d.ts.map +1 -0
  43. package/dist/system/constants/index.js +26 -0
  44. package/dist/system/constants/paths.d.ts +71 -0
  45. package/dist/system/constants/paths.d.ts.map +1 -0
  46. package/dist/system/constants/paths.js +65 -0
  47. package/dist/system/datasource.zod.d.ts +127 -0
  48. package/dist/system/datasource.zod.d.ts.map +1 -0
  49. package/dist/system/datasource.zod.js +62 -0
  50. package/dist/system/identity.zod.d.ts +204 -0
  51. package/dist/system/identity.zod.d.ts.map +1 -0
  52. package/dist/system/identity.zod.js +68 -0
  53. package/dist/system/license.zod.d.ts +110 -0
  54. package/dist/system/license.zod.d.ts.map +1 -0
  55. package/dist/system/license.zod.js +63 -0
  56. package/dist/system/manifest.zod.d.ts +126 -0
  57. package/dist/system/manifest.zod.d.ts.map +1 -0
  58. package/dist/system/manifest.zod.js +68 -0
  59. package/dist/system/policy.zod.d.ts +209 -0
  60. package/dist/system/policy.zod.d.ts.map +1 -0
  61. package/dist/system/policy.zod.js +54 -0
  62. package/dist/system/role.zod.d.ts +34 -0
  63. package/dist/system/role.zod.d.ts.map +1 -0
  64. package/dist/system/role.zod.js +25 -0
  65. package/dist/system/territory.zod.d.ts +91 -0
  66. package/dist/system/territory.zod.d.ts.map +1 -0
  67. package/dist/system/territory.zod.js +64 -0
  68. package/dist/system/translation.zod.d.ts +171 -0
  69. package/dist/system/translation.zod.d.ts.map +1 -0
  70. package/dist/system/translation.zod.js +34 -0
  71. package/dist/system/types/index.d.ts +7 -0
  72. package/dist/system/types/index.d.ts.map +1 -0
  73. package/dist/system/types/index.js +22 -0
  74. package/dist/system/types/plugin.d.ts +113 -0
  75. package/dist/system/types/plugin.d.ts.map +1 -0
  76. package/dist/system/types/plugin.js +6 -0
  77. package/dist/system/webhook.zod.d.ts +106 -0
  78. package/dist/system/webhook.zod.d.ts.map +1 -0
  79. package/dist/system/webhook.zod.js +56 -0
  80. package/dist/ui/action.zod.d.ts +148 -0
  81. package/dist/ui/action.zod.d.ts.map +1 -0
  82. package/dist/ui/action.zod.js +48 -0
  83. package/dist/ui/app.zod.d.ts +299 -0
  84. package/dist/ui/app.zod.d.ts.map +1 -0
  85. package/dist/ui/app.zod.js +127 -0
  86. package/dist/ui/dashboard.zod.d.ts +207 -0
  87. package/dist/ui/dashboard.zod.d.ts.map +1 -0
  88. package/dist/ui/dashboard.zod.js +66 -0
  89. package/dist/ui/page.zod.d.ts +187 -0
  90. package/dist/ui/page.zod.d.ts.map +1 -0
  91. package/dist/ui/page.zod.js +48 -0
  92. package/dist/ui/report.zod.d.ts +224 -0
  93. package/dist/ui/report.zod.d.ts.map +1 -0
  94. package/dist/ui/report.zod.js +68 -0
  95. package/dist/ui/view.zod.d.ts +887 -0
  96. package/dist/ui/view.zod.d.ts.map +1 -0
  97. package/dist/ui/view.zod.js +83 -0
  98. package/json-schema/AIKnowledge.json +30 -0
  99. package/json-schema/AIModelConfig.json +41 -0
  100. package/json-schema/AITool.json +33 -0
  101. package/json-schema/Action.json +156 -0
  102. package/json-schema/ActionParam.json +76 -0
  103. package/json-schema/Agent.json +140 -0
  104. package/json-schema/ApiEndpoint.json +162 -0
  105. package/json-schema/ApiMapping.json +28 -0
  106. package/json-schema/App.json +286 -0
  107. package/json-schema/AppBranding.json +24 -0
  108. package/json-schema/AuditPolicy.json +31 -0
  109. package/json-schema/AuthProtocol.json +17 -0
  110. package/json-schema/AuthProvider.json +171 -0
  111. package/json-schema/CalendarConfig.json +28 -0
  112. package/json-schema/ChartType.json +19 -0
  113. package/json-schema/Dashboard.json +117 -0
  114. package/json-schema/DashboardNavItem.json +42 -0
  115. package/json-schema/DashboardWidget.json +89 -0
  116. package/json-schema/Dataset.json +63 -0
  117. package/json-schema/DatasetMode.json +16 -0
  118. package/json-schema/Datasource.json +93 -0
  119. package/json-schema/DatasourceCapabilities.json +36 -0
  120. package/json-schema/DriverType.json +27 -0
  121. package/json-schema/EmailAlertAction.json +37 -0
  122. package/json-schema/Feature.json +51 -0
  123. package/json-schema/Field.json +219 -0
  124. package/json-schema/FieldMapping.json +83 -0
  125. package/json-schema/FieldNode.json +32 -0
  126. package/json-schema/FieldPermission.json +22 -0
  127. package/json-schema/FieldType.json +36 -0
  128. package/json-schema/FieldUpdateAction.json +32 -0
  129. package/json-schema/FilterNode.json +52 -0
  130. package/json-schema/FilterOperator.json +26 -0
  131. package/json-schema/Flow.json +186 -0
  132. package/json-schema/FlowEdge.json +37 -0
  133. package/json-schema/FlowNode.json +65 -0
  134. package/json-schema/FlowNodeAction.json +24 -0
  135. package/json-schema/FlowVariable.json +34 -0
  136. package/json-schema/FormSection.json +42 -0
  137. package/json-schema/FormView.json +99 -0
  138. package/json-schema/FormatValidation.json +59 -0
  139. package/json-schema/GanttConfig.json +32 -0
  140. package/json-schema/GroupNavItem.json +42 -0
  141. package/json-schema/HttpMethod.json +16 -0
  142. package/json-schema/Index.json +30 -0
  143. package/json-schema/KanbanConfig.json +31 -0
  144. package/json-schema/LDAPConfig.json +39 -0
  145. package/json-schema/License.json +57 -0
  146. package/json-schema/ListView.json +153 -0
  147. package/json-schema/Locale.json +10 -0
  148. package/json-schema/LogicOperator.json +14 -0
  149. package/json-schema/Manifest.json +90 -0
  150. package/json-schema/Mapping.json +270 -0
  151. package/json-schema/MenuItem.json +28 -0
  152. package/json-schema/MetricType.json +14 -0
  153. package/json-schema/NavigationItem.json +214 -0
  154. package/json-schema/NetworkPolicy.json +31 -0
  155. package/json-schema/OIDCConfig.json +46 -0
  156. package/json-schema/OWDModel.json +14 -0
  157. package/json-schema/Object.json +331 -0
  158. package/json-schema/ObjectCapabilities.json +36 -0
  159. package/json-schema/ObjectNavItem.json +46 -0
  160. package/json-schema/ObjectPermission.json +42 -0
  161. package/json-schema/Page.json +117 -0
  162. package/json-schema/PageComponent.json +36 -0
  163. package/json-schema/PageNavItem.json +47 -0
  164. package/json-schema/PageRegion.json +63 -0
  165. package/json-schema/PasswordPolicy.json +41 -0
  166. package/json-schema/PermissionSet.json +96 -0
  167. package/json-schema/Plan.json +53 -0
  168. package/json-schema/Policy.json +138 -0
  169. package/json-schema/Query.json +128 -0
  170. package/json-schema/RateLimit.json +26 -0
  171. package/json-schema/Report.json +219 -0
  172. package/json-schema/ReportChart.json +45 -0
  173. package/json-schema/ReportColumn.json +35 -0
  174. package/json-schema/ReportGrouping.json +38 -0
  175. package/json-schema/ReportType.json +15 -0
  176. package/json-schema/Role.json +32 -0
  177. package/json-schema/SAMLConfig.json +44 -0
  178. package/json-schema/ScriptValidation.json +48 -0
  179. package/json-schema/SelectOption.json +32 -0
  180. package/json-schema/SessionPolicy.json +27 -0
  181. package/json-schema/SharingLevel.json +13 -0
  182. package/json-schema/SharingRule.json +58 -0
  183. package/json-schema/SharingRuleType.json +15 -0
  184. package/json-schema/SortNode.json +26 -0
  185. package/json-schema/StateMachineValidation.json +59 -0
  186. package/json-schema/Territory.json +77 -0
  187. package/json-schema/TerritoryModel.json +34 -0
  188. package/json-schema/TerritoryType.json +15 -0
  189. package/json-schema/TransformType.json +18 -0
  190. package/json-schema/TranslationBundle.json +78 -0
  191. package/json-schema/TranslationData.json +75 -0
  192. package/json-schema/UniquenessValidation.json +59 -0
  193. package/json-schema/UrlNavItem.json +51 -0
  194. package/json-schema/ValidationRule.json +211 -0
  195. package/json-schema/View.json +500 -0
  196. package/json-schema/Webhook.json +88 -0
  197. package/json-schema/WebhookReceiver.json +66 -0
  198. package/json-schema/WebhookTriggerType.json +16 -0
  199. package/json-schema/WorkflowAction.json +84 -0
  200. package/json-schema/WorkflowRule.json +128 -0
  201. package/json-schema/WorkflowTriggerType.json +16 -0
  202. package/package.json +28 -19
  203. package/dist/examples.d.ts +0 -28
  204. package/dist/examples.d.ts.map +0 -1
  205. package/dist/examples.js +0 -250
  206. package/dist/types/index.d.ts +0 -9
  207. package/dist/types/index.d.ts.map +0 -1
  208. package/dist/types/index.js +0 -8
  209. package/dist/types/meta/field-type.d.ts +0 -54
  210. package/dist/types/meta/field-type.d.ts.map +0 -1
  211. package/dist/types/meta/field-type.js +0 -42
  212. package/dist/types/meta/index.d.ts +0 -13
  213. package/dist/types/meta/index.d.ts.map +0 -1
  214. package/dist/types/meta/index.js +0 -12
  215. package/dist/types/meta/object-entity.d.ts +0 -246
  216. package/dist/types/meta/object-entity.d.ts.map +0 -1
  217. package/dist/types/meta/object-entity.js +0 -9
  218. package/dist/types/meta/object-field.d.ts +0 -199
  219. package/dist/types/meta/object-field.d.ts.map +0 -1
  220. package/dist/types/meta/object-field.js +0 -9
  221. package/dist/types/meta/object-view.d.ts +0 -430
  222. package/dist/types/meta/object-view.d.ts.map +0 -1
  223. package/dist/types/meta/object-view.js +0 -9
  224. package/src/examples.ts +0 -257
  225. package/src/index.ts +0 -10
  226. package/src/types/index.ts +0 -9
  227. package/src/types/meta/field-type.ts +0 -91
  228. package/src/types/meta/index.ts +0 -13
  229. package/src/types/meta/object-entity.ts +0 -265
  230. package/src/types/meta/object-field.ts +0 -218
  231. package/src/types/meta/object-view.ts +0 -475
package/README.md CHANGED
@@ -1,154 +1,95 @@
1
- # ObjectStack Specification
1
+ # @objectstack/spec
2
2
 
3
- The ObjectStack Protocol & Specification repository defines the core type definitions and interfaces for the ObjectStack ecosystem. This repository serves as the "Constitution" of the system, providing the contract between backend (ObjectQL) parsers and frontend (ObjectUI) renderers.
3
+ ObjectStack Protocol & Specification The "Constitution" of the Ecosystem.
4
4
 
5
- ## Purpose
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
7
 
7
- This repository contains:
8
- - **TypeScript Interfaces**: Shared types for the entire ObjectStack ecosystem
9
- - **No Logic**: Only type definitions, no runtime code or business logic
10
- - **Universal Compatibility**: Works in Node.js, Browser, and Electron environments
8
+ ## 📜 Mission
11
9
 
12
- ## Metamodel Interfaces
10
+ This package defines the **DNA** of ObjectStack. It contains:
11
+ 1. **Zod Schemas**: Runtime validation for the Kernel and CLI.
12
+ 2. **TypeScript Interfaces**: `z.infer<>` types for the IDE and Plugin developers.
13
+ 3. **JSON Schemas**: Auto-generated schemas for VS Code IntelliSense.
13
14
 
14
- The metamodel defines the structure for describing data models in ObjectStack:
15
+ **Guiding Principle:** *"Strict Types, No Logic"*
15
16
 
16
- ### Core Interfaces
17
+ ## 🚀 Installation
17
18
 
18
- #### `FieldType`
19
- Defines the available field data types:
20
- - Text types: `text`, `textarea`, `email`, `url`
21
- - Numeric types: `number`, `currency`, `percentage`
22
- - Date/Time types: `date`, `datetime`
23
- - Relation types: `lookup`
24
- - Selection types: `select`, `multiselect`
25
- - Special types: `boolean`, `json`, `file`, `image`
26
-
27
- #### `ObjectField`
28
- Represents a field definition within an entity:
29
- ```typescript
30
- interface ObjectField {
31
- name: string; // Field identifier
32
- label: string; // Display label
33
- type: FieldType; // Data type
34
- required?: boolean; // Validation
35
- unique?: boolean; // Constraint
36
- lookupEntity?: string; // For lookup fields
37
- // ... and more options
38
- }
19
+ ```bash
20
+ pnpm install @objectstack/spec
39
21
  ```
40
22
 
41
- #### `ObjectEntity`
42
- Represents a complete entity (data model) definition:
43
- ```typescript
44
- interface ObjectEntity {
45
- name: string; // Entity identifier
46
- label: string; // Singular display label
47
- pluralLabel: string; // Plural display label
48
- fields: ObjectField[]; // Field definitions
49
- primaryKey?: string; // Primary key field
50
- displayField?: string; // Display field for lookups
51
- // ... and more options
52
- }
53
- ```
23
+ ## 📦 Architecture
54
24
 
55
- #### `ObjectView`
56
- Represents a view configuration for presenting entity data:
57
- ```typescript
58
- interface ObjectView {
59
- name: string; // View identifier
60
- label: string; // Display label
61
- entityName: string; // Target entity
62
- type: ViewType; // Presentation type (list, form, detail, etc.)
63
- fields?: string[]; // Fields to display
64
- columns?: ViewColumn[]; // Column configuration
65
- filters?: ViewFilter[]; // Default filters
66
- sort?: ViewSort[]; // Default sort order
67
- // ... and more options
68
- }
69
- ```
25
+ The specification is divided into three protocols:
70
26
 
71
- ## Usage
27
+ ### 1. Data Protocol (`src/data`)
28
+ *Core Business Logic & Data Modeling*
29
+ * `Object`, `Field`, `Validation`
30
+ * `Query` (AST), `Mapping` (ETL)
31
+ * `Permission`, `Sharing`, `Flow`
72
32
 
73
- ### Installation
33
+ ### 2. UI Protocol (`src/ui`)
34
+ *Presentation & Interaction*
35
+ * `App`, `Page`, `View` (Grid/Kanban)
36
+ * `Dashboard` (Widgets), `Report`
37
+ * `Action` (Triggers)
74
38
 
75
- ```bash
76
- npm install @objectstack/spec
77
- ```
39
+ ### 3. System Protocol (`src/system`)
40
+ *Runtime Configuration & Security*
41
+ * `Manifest` (Config), `Datasource`
42
+ * `Role` (Hierarchy), `Identity` (Auth)
43
+ * `Webhook` (Integration), `Policy` (Compliance)
44
+
45
+ ## 📚 Usage
78
46
 
79
- ### Importing Types
47
+ ### Validation (Runtime)
80
48
 
81
49
  ```typescript
82
- // Import all metamodel types
83
- import { ObjectEntity, ObjectField, ObjectView, FieldType } from '@objectstack/spec';
50
+ import { ObjectSchema } from '@objectstack/spec';
84
51
 
85
- // Or import specific types
86
- import type { ObjectEntity } from '@objectstack/spec';
52
+ const result = ObjectSchema.safeParse(userConfig);
53
+ if (!result.success) {
54
+ console.error("Invalid Object definition", result.error);
55
+ }
87
56
  ```
88
57
 
89
- ### Example: Defining an Entity
58
+ ### Type Definitions (Compile Time)
90
59
 
91
60
  ```typescript
92
- import { ObjectEntity, ObjectField } from '@objectstack/spec';
93
-
94
- const userEntity: ObjectEntity = {
95
- name: 'User',
96
- label: 'User',
97
- pluralLabel: 'Users',
98
- description: 'System user account',
99
- fields: [
100
- {
101
- name: 'id',
102
- label: 'ID',
103
- type: 'text',
104
- required: true,
105
- readonly: true
106
- },
107
- {
108
- name: 'email',
109
- label: 'Email',
110
- type: 'email',
111
- required: true,
112
- unique: true
113
- },
114
- {
115
- name: 'name',
116
- label: 'Full Name',
117
- type: 'text',
118
- required: true
119
- },
120
- {
121
- name: 'role',
122
- label: 'Role',
123
- type: 'select',
124
- required: true,
125
- options: [
126
- { value: 'admin', label: 'Administrator' },
127
- { value: 'user', label: 'User' }
128
- ]
129
- }
130
- ],
131
- primaryKey: 'id',
132
- displayField: 'name'
61
+ import type { Object, Field } from '@objectstack/spec';
62
+
63
+ const myObject: Object = {
64
+ name: "project_task",
65
+ fields: { ... }
133
66
  };
134
67
  ```
135
68
 
136
- ## Building
137
-
138
- ```bash
139
- npm install
140
- npm run build
141
- ```
69
+ ### JSON Schema (Tooling)
70
+ The package includes valid JSON Schemas in the `/json-schema` directory.
71
+ These can be used with:
72
+ * [Ajv](https://ajv.js.org/) (High-performance validator)
73
+ * [React Json Schema Form](https://rjsf-team.github.io/) (Auto-forms)
74
+ * VS Code `json.schemas` setting for IntelliSense.
142
75
 
143
- This will compile TypeScript files to JavaScript and generate type declarations in the `dist/` directory.
76
+ ## 🛠️ Development
144
77
 
145
- ## Philosophy
78
+ ### Build & Generate
146
79
 
147
- Following the ObjectStack Protocol:
148
- - **Strict Types, No Logic**: This repository contains only type definitions
149
- - **Documentation as Code**: Every interface property has TSDoc comments for IntelliSense
150
- - **Universal Compatibility**: Pure TypeScript with no platform-specific dependencies
80
+ ```bash
81
+ # Generate JSON Schemas + Markdown Docs + Compile TS
82
+ pnpm build
83
+ ```
151
84
 
152
- ## License
85
+ ### Directory Structure
153
86
 
154
- MIT
87
+ ```text
88
+ packages/spec/
89
+ ├── src/ # Source Truth (Zod)
90
+ │ ├── data/ # ObjectQL Protocol
91
+ │ ├── ui/ # ObjectUI Protocol
92
+ │ └── system/ # ObjectOS Protocol
93
+ ├── json-schema/ # Auto-generated (npm run gen:schema)
94
+ └── dist/ # Compiled JS/D.TS
95
+ ```
@@ -0,0 +1,164 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * AI Model Configuration
4
+ */
5
+ export declare const AIModelConfigSchema: z.ZodObject<{
6
+ provider: z.ZodDefault<z.ZodEnum<["openai", "azure_openai", "anthropic", "local"]>>;
7
+ model: z.ZodString;
8
+ temperature: z.ZodDefault<z.ZodNumber>;
9
+ maxTokens: z.ZodOptional<z.ZodNumber>;
10
+ topP: z.ZodOptional<z.ZodNumber>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ provider: "openai" | "azure_openai" | "anthropic" | "local";
13
+ model: string;
14
+ temperature: number;
15
+ maxTokens?: number | undefined;
16
+ topP?: number | undefined;
17
+ }, {
18
+ model: string;
19
+ provider?: "openai" | "azure_openai" | "anthropic" | "local" | undefined;
20
+ temperature?: number | undefined;
21
+ maxTokens?: number | undefined;
22
+ topP?: number | undefined;
23
+ }>;
24
+ /**
25
+ * AI Tool Definition
26
+ * References to Actions, Flows, or Objects available to the Agent.
27
+ */
28
+ export declare const AIToolSchema: z.ZodObject<{
29
+ type: z.ZodEnum<["action", "flow", "query", "vector_search"]>;
30
+ name: z.ZodString;
31
+ description: z.ZodOptional<z.ZodString>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ type: "action" | "flow" | "query" | "vector_search";
34
+ name: string;
35
+ description?: string | undefined;
36
+ }, {
37
+ type: "action" | "flow" | "query" | "vector_search";
38
+ name: string;
39
+ description?: string | undefined;
40
+ }>;
41
+ /**
42
+ * AI Knowledge Base
43
+ * RAG configuration.
44
+ */
45
+ export declare const AIKnowledgeSchema: z.ZodObject<{
46
+ topics: z.ZodArray<z.ZodString, "many">;
47
+ indexes: z.ZodArray<z.ZodString, "many">;
48
+ }, "strip", z.ZodTypeAny, {
49
+ indexes: string[];
50
+ topics: string[];
51
+ }, {
52
+ indexes: string[];
53
+ topics: string[];
54
+ }>;
55
+ /**
56
+ * AI Agent Schema
57
+ * Definition of an autonomous agent specialized for a domain.
58
+ */
59
+ export declare const AgentSchema: z.ZodObject<{
60
+ /** Identity */
61
+ name: z.ZodString;
62
+ label: z.ZodString;
63
+ avatar: z.ZodOptional<z.ZodString>;
64
+ role: z.ZodString;
65
+ /** Cognition */
66
+ instructions: z.ZodString;
67
+ model: z.ZodOptional<z.ZodObject<{
68
+ provider: z.ZodDefault<z.ZodEnum<["openai", "azure_openai", "anthropic", "local"]>>;
69
+ model: z.ZodString;
70
+ temperature: z.ZodDefault<z.ZodNumber>;
71
+ maxTokens: z.ZodOptional<z.ZodNumber>;
72
+ topP: z.ZodOptional<z.ZodNumber>;
73
+ }, "strip", z.ZodTypeAny, {
74
+ provider: "openai" | "azure_openai" | "anthropic" | "local";
75
+ model: string;
76
+ temperature: number;
77
+ maxTokens?: number | undefined;
78
+ topP?: number | undefined;
79
+ }, {
80
+ model: string;
81
+ provider?: "openai" | "azure_openai" | "anthropic" | "local" | undefined;
82
+ temperature?: number | undefined;
83
+ maxTokens?: number | undefined;
84
+ topP?: number | undefined;
85
+ }>>;
86
+ /** Capabilities */
87
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
88
+ type: z.ZodEnum<["action", "flow", "query", "vector_search"]>;
89
+ name: z.ZodString;
90
+ description: z.ZodOptional<z.ZodString>;
91
+ }, "strip", z.ZodTypeAny, {
92
+ type: "action" | "flow" | "query" | "vector_search";
93
+ name: string;
94
+ description?: string | undefined;
95
+ }, {
96
+ type: "action" | "flow" | "query" | "vector_search";
97
+ name: string;
98
+ description?: string | undefined;
99
+ }>, "many">>;
100
+ knowledge: z.ZodOptional<z.ZodObject<{
101
+ topics: z.ZodArray<z.ZodString, "many">;
102
+ indexes: z.ZodArray<z.ZodString, "many">;
103
+ }, "strip", z.ZodTypeAny, {
104
+ indexes: string[];
105
+ topics: string[];
106
+ }, {
107
+ indexes: string[];
108
+ topics: string[];
109
+ }>>;
110
+ /** Interface */
111
+ active: z.ZodDefault<z.ZodBoolean>;
112
+ access: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ label: string;
115
+ name: string;
116
+ active: boolean;
117
+ role: string;
118
+ instructions: string;
119
+ avatar?: string | undefined;
120
+ model?: {
121
+ provider: "openai" | "azure_openai" | "anthropic" | "local";
122
+ model: string;
123
+ temperature: number;
124
+ maxTokens?: number | undefined;
125
+ topP?: number | undefined;
126
+ } | undefined;
127
+ tools?: {
128
+ type: "action" | "flow" | "query" | "vector_search";
129
+ name: string;
130
+ description?: string | undefined;
131
+ }[] | undefined;
132
+ knowledge?: {
133
+ indexes: string[];
134
+ topics: string[];
135
+ } | undefined;
136
+ access?: string[] | undefined;
137
+ }, {
138
+ label: string;
139
+ name: string;
140
+ role: string;
141
+ instructions: string;
142
+ avatar?: string | undefined;
143
+ active?: boolean | undefined;
144
+ model?: {
145
+ model: string;
146
+ provider?: "openai" | "azure_openai" | "anthropic" | "local" | undefined;
147
+ temperature?: number | undefined;
148
+ maxTokens?: number | undefined;
149
+ topP?: number | undefined;
150
+ } | undefined;
151
+ tools?: {
152
+ type: "action" | "flow" | "query" | "vector_search";
153
+ name: string;
154
+ description?: string | undefined;
155
+ }[] | undefined;
156
+ knowledge?: {
157
+ indexes: string[];
158
+ topics: string[];
159
+ } | undefined;
160
+ access?: string[] | undefined;
161
+ }>;
162
+ export type Agent = z.infer<typeof AgentSchema>;
163
+ export type AITool = z.infer<typeof AIToolSchema>;
164
+ //# sourceMappingURL=agent.zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.zod.d.ts","sourceRoot":"","sources":["../../src/ai/agent.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;EAIvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW;IACtB,eAAe;;;;;IAMf,gBAAgB;;;;;;;;;;;;;;;;;;;;;IAIhB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;IAInB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentSchema = exports.AIKnowledgeSchema = exports.AIToolSchema = exports.AIModelConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * AI Model Configuration
7
+ */
8
+ exports.AIModelConfigSchema = zod_1.z.object({
9
+ provider: zod_1.z.enum(['openai', 'azure_openai', 'anthropic', 'local']).default('openai'),
10
+ model: zod_1.z.string().describe('Model name (e.g. gpt-4, claude-3-opus)'),
11
+ temperature: zod_1.z.number().min(0).max(2).default(0.7),
12
+ maxTokens: zod_1.z.number().optional(),
13
+ topP: zod_1.z.number().optional(),
14
+ });
15
+ /**
16
+ * AI Tool Definition
17
+ * References to Actions, Flows, or Objects available to the Agent.
18
+ */
19
+ exports.AIToolSchema = zod_1.z.object({
20
+ type: zod_1.z.enum(['action', 'flow', 'query', 'vector_search']),
21
+ name: zod_1.z.string().describe('Reference name (Action Name, Flow Name)'),
22
+ description: zod_1.z.string().optional().describe('Override description for the LLM'),
23
+ });
24
+ /**
25
+ * AI Knowledge Base
26
+ * RAG configuration.
27
+ */
28
+ exports.AIKnowledgeSchema = zod_1.z.object({
29
+ topics: zod_1.z.array(zod_1.z.string()).describe('Topics/Tags to recruit knowledge from'),
30
+ indexes: zod_1.z.array(zod_1.z.string()).describe('Vector Store Indexes'),
31
+ });
32
+ /**
33
+ * AI Agent Schema
34
+ * Definition of an autonomous agent specialized for a domain.
35
+ */
36
+ exports.AgentSchema = zod_1.z.object({
37
+ /** Identity */
38
+ name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Agent unique identifier'),
39
+ label: zod_1.z.string().describe('Agent display name'),
40
+ avatar: zod_1.z.string().optional(),
41
+ role: zod_1.z.string().describe('The persona/role (e.g. "Senior Support Engineer")'),
42
+ /** Cognition */
43
+ instructions: zod_1.z.string().describe('System Prompt / Prime Directives'),
44
+ model: exports.AIModelConfigSchema.optional(),
45
+ /** Capabilities */
46
+ tools: zod_1.z.array(exports.AIToolSchema).optional().describe('Available tools'),
47
+ knowledge: exports.AIKnowledgeSchema.optional().describe('RAG access'),
48
+ /** Interface */
49
+ active: zod_1.z.boolean().default(true),
50
+ access: zod_1.z.array(zod_1.z.string()).optional().describe('Who can chat with this agent'),
51
+ });
@@ -0,0 +1,60 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Data Import Strategy
4
+ * Defines how the engine handles existing records.
5
+ */
6
+ export declare const DatasetMode: z.ZodEnum<["insert", "update", "upsert", "replace", "ignore"]>;
7
+ /**
8
+ * Dataset Schema (Seed Data / Fixtures)
9
+ *
10
+ * Standardized format for transporting data.
11
+ * Used for:
12
+ * 1. System Bootstrapping (Admin accounts, Standard Roles)
13
+ * 2. Reference Data (Countries, Currencies)
14
+ * 3. Demo/Test Data
15
+ */
16
+ export declare const DatasetSchema: z.ZodObject<{
17
+ /**
18
+ * Target Object
19
+ * The machine name of the object to populate.
20
+ */
21
+ object: z.ZodString;
22
+ /**
23
+ * Idempotency Key (The "Upsert" Key)
24
+ * The field used to check if a record already exists.
25
+ * Best Practice: Use a natural key like 'code', 'slug', 'username' or 'external_id'.
26
+ * Standard: '_id' (internal ID) is rarely used for portable seed data.
27
+ */
28
+ externalId: z.ZodDefault<z.ZodString>;
29
+ /**
30
+ * Import Strategy
31
+ */
32
+ mode: z.ZodDefault<z.ZodEnum<["insert", "update", "upsert", "replace", "ignore"]>>;
33
+ /**
34
+ * Environment Scope
35
+ * - 'all': Always load
36
+ * - 'dev': Only for development/demo
37
+ * - 'test': Only for CI/CD tests
38
+ */
39
+ env: z.ZodDefault<z.ZodArray<z.ZodEnum<["prod", "dev", "test"]>, "many">>;
40
+ /**
41
+ * The Payload
42
+ * Array of raw JSON objects matching the Object Schema.
43
+ */
44
+ records: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>, "many">;
45
+ }, "strip", z.ZodTypeAny, {
46
+ object: string;
47
+ externalId: string;
48
+ mode: "insert" | "update" | "upsert" | "replace" | "ignore";
49
+ env: ("prod" | "dev" | "test")[];
50
+ records: Record<string, any>[];
51
+ }, {
52
+ object: string;
53
+ records: Record<string, any>[];
54
+ externalId?: string | undefined;
55
+ mode?: "insert" | "update" | "upsert" | "replace" | "ignore" | undefined;
56
+ env?: ("prod" | "dev" | "test")[] | undefined;
57
+ }>;
58
+ export type Dataset = z.infer<typeof DatasetSchema>;
59
+ export type DatasetImportMode = z.infer<typeof DatasetMode>;
60
+ //# sourceMappingURL=dataset.zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset.zod.d.ts","sourceRoot":"","sources":["../../src/data/dataset.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,WAAW,gEAMtB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatasetSchema = exports.DatasetMode = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Data Import Strategy
7
+ * Defines how the engine handles existing records.
8
+ */
9
+ exports.DatasetMode = zod_1.z.enum([
10
+ 'insert', // Try to insert, fail on duplicate
11
+ 'update', // Only update found records, ignore new
12
+ 'upsert', // Create new or Update existing (Standard)
13
+ 'replace', // Delete ALL records in object then insert (Dangerous - use for cache tables)
14
+ 'ignore' // Try to insert, silently skip duplicates
15
+ ]);
16
+ /**
17
+ * Dataset Schema (Seed Data / Fixtures)
18
+ *
19
+ * Standardized format for transporting data.
20
+ * Used for:
21
+ * 1. System Bootstrapping (Admin accounts, Standard Roles)
22
+ * 2. Reference Data (Countries, Currencies)
23
+ * 3. Demo/Test Data
24
+ */
25
+ exports.DatasetSchema = zod_1.z.object({
26
+ /**
27
+ * Target Object
28
+ * The machine name of the object to populate.
29
+ */
30
+ object: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Target Object Name'),
31
+ /**
32
+ * Idempotency Key (The "Upsert" Key)
33
+ * The field used to check if a record already exists.
34
+ * Best Practice: Use a natural key like 'code', 'slug', 'username' or 'external_id'.
35
+ * Standard: '_id' (internal ID) is rarely used for portable seed data.
36
+ */
37
+ externalId: zod_1.z.string().default('name').describe('Field match for uniqueness check'),
38
+ /**
39
+ * Import Strategy
40
+ */
41
+ mode: exports.DatasetMode.default('upsert').describe('Conflict resolution strategy'),
42
+ /**
43
+ * Environment Scope
44
+ * - 'all': Always load
45
+ * - 'dev': Only for development/demo
46
+ * - 'test': Only for CI/CD tests
47
+ */
48
+ env: zod_1.z.array(zod_1.z.enum(['prod', 'dev', 'test'])).default(['prod', 'dev', 'test']).describe('Applicable environments'),
49
+ /**
50
+ * The Payload
51
+ * Array of raw JSON objects matching the Object Schema.
52
+ */
53
+ records: zod_1.z.array(zod_1.z.record(zod_1.z.any())).describe('Data records'),
54
+ });