@defai.digital/ax-schemas 1.0.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 (91) hide show
  1. package/README.md +388 -0
  2. package/dist/index.d.ts +16 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +19 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/public/agent/chat-types.d.ts +164 -0
  7. package/dist/public/agent/chat-types.d.ts.map +1 -0
  8. package/dist/public/agent/chat-types.js +10 -0
  9. package/dist/public/agent/chat-types.js.map +1 -0
  10. package/dist/public/agent/index.d.ts +9 -0
  11. package/dist/public/agent/index.d.ts.map +1 -0
  12. package/dist/public/agent/index.js +9 -0
  13. package/dist/public/agent/index.js.map +1 -0
  14. package/dist/public/core/brand-types.d.ts +308 -0
  15. package/dist/public/core/brand-types.d.ts.map +1 -0
  16. package/dist/public/core/brand-types.js +243 -0
  17. package/dist/public/core/brand-types.js.map +1 -0
  18. package/dist/public/core/enums.d.ts +227 -0
  19. package/dist/public/core/enums.d.ts.map +1 -0
  20. package/dist/public/core/enums.js +222 -0
  21. package/dist/public/core/enums.js.map +1 -0
  22. package/dist/public/core/id-types.d.ts +286 -0
  23. package/dist/public/core/id-types.d.ts.map +1 -0
  24. package/dist/public/core/id-types.js +136 -0
  25. package/dist/public/core/id-types.js.map +1 -0
  26. package/dist/public/design/alias-types.d.ts +346 -0
  27. package/dist/public/design/alias-types.d.ts.map +1 -0
  28. package/dist/public/design/alias-types.js +171 -0
  29. package/dist/public/design/alias-types.js.map +1 -0
  30. package/dist/public/design/audit-types.d.ts +545 -0
  31. package/dist/public/design/audit-types.d.ts.map +1 -0
  32. package/dist/public/design/audit-types.js +307 -0
  33. package/dist/public/design/audit-types.js.map +1 -0
  34. package/dist/public/design/figma-types.d.ts +1306 -0
  35. package/dist/public/design/figma-types.d.ts.map +1 -0
  36. package/dist/public/design/figma-types.js +428 -0
  37. package/dist/public/design/figma-types.js.map +1 -0
  38. package/dist/public/design/index.d.ts +13 -0
  39. package/dist/public/design/index.d.ts.map +1 -0
  40. package/dist/public/design/index.js +82 -0
  41. package/dist/public/design/index.js.map +1 -0
  42. package/dist/public/design/token-types.d.ts +1245 -0
  43. package/dist/public/design/token-types.d.ts.map +1 -0
  44. package/dist/public/design/token-types.js +282 -0
  45. package/dist/public/design/token-types.js.map +1 -0
  46. package/dist/src/index.d.ts +16 -0
  47. package/dist/src/index.d.ts.map +1 -0
  48. package/dist/src/index.js +19 -0
  49. package/dist/src/index.js.map +1 -0
  50. package/dist/src/public/agent/chat-types.d.ts +164 -0
  51. package/dist/src/public/agent/chat-types.d.ts.map +1 -0
  52. package/dist/src/public/agent/chat-types.js +10 -0
  53. package/dist/src/public/agent/chat-types.js.map +1 -0
  54. package/dist/src/public/agent/index.d.ts +9 -0
  55. package/dist/src/public/agent/index.d.ts.map +1 -0
  56. package/dist/src/public/agent/index.js +9 -0
  57. package/dist/src/public/agent/index.js.map +1 -0
  58. package/dist/src/public/core/brand-types.d.ts +308 -0
  59. package/dist/src/public/core/brand-types.d.ts.map +1 -0
  60. package/dist/src/public/core/brand-types.js +243 -0
  61. package/dist/src/public/core/brand-types.js.map +1 -0
  62. package/dist/src/public/core/enums.d.ts +227 -0
  63. package/dist/src/public/core/enums.d.ts.map +1 -0
  64. package/dist/src/public/core/enums.js +222 -0
  65. package/dist/src/public/core/enums.js.map +1 -0
  66. package/dist/src/public/core/id-types.d.ts +286 -0
  67. package/dist/src/public/core/id-types.d.ts.map +1 -0
  68. package/dist/src/public/core/id-types.js +136 -0
  69. package/dist/src/public/core/id-types.js.map +1 -0
  70. package/dist/src/public/design/alias-types.d.ts +346 -0
  71. package/dist/src/public/design/alias-types.d.ts.map +1 -0
  72. package/dist/src/public/design/alias-types.js +171 -0
  73. package/dist/src/public/design/alias-types.js.map +1 -0
  74. package/dist/src/public/design/audit-types.d.ts +545 -0
  75. package/dist/src/public/design/audit-types.d.ts.map +1 -0
  76. package/dist/src/public/design/audit-types.js +307 -0
  77. package/dist/src/public/design/audit-types.js.map +1 -0
  78. package/dist/src/public/design/figma-types.d.ts +1306 -0
  79. package/dist/src/public/design/figma-types.d.ts.map +1 -0
  80. package/dist/src/public/design/figma-types.js +428 -0
  81. package/dist/src/public/design/figma-types.js.map +1 -0
  82. package/dist/src/public/design/index.d.ts +13 -0
  83. package/dist/src/public/design/index.d.ts.map +1 -0
  84. package/dist/src/public/design/index.js +82 -0
  85. package/dist/src/public/design/index.js.map +1 -0
  86. package/dist/src/public/design/token-types.d.ts +1245 -0
  87. package/dist/src/public/design/token-types.d.ts.map +1 -0
  88. package/dist/src/public/design/token-types.js +282 -0
  89. package/dist/src/public/design/token-types.js.map +1 -0
  90. package/dist/tsconfig.tsbuildinfo +1 -0
  91. package/package.json +66 -0
package/README.md ADDED
@@ -0,0 +1,388 @@
1
+ # @ax-cli/schemas
2
+
3
+ Single Source of Truth (SSOT) Type System for AX CLI.
4
+
5
+ This package provides centralized Zod schemas, brand types, and enums for the entire ax-cli ecosystem, ensuring type safety and runtime validation across all modules.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @ax-cli/schemas
11
+ ```
12
+
13
+ ## What is Single Source of Truth (SSOT)?
14
+
15
+ **Single Source of Truth (SSOT)**: All modules (API / MCP / Usage) share the same type definition contract.
16
+
17
+ Before @ax-cli/schemas, type definitions were scattered across the codebase, leading to:
18
+ - Duplicated schema definitions
19
+ - Inconsistent validation logic
20
+ - Type mismatches between modules
21
+ - High refactoring costs
22
+
23
+ ### Architecture: Before vs. After
24
+
25
+ **BEFORE** (Distributed, Inconsistent):
26
+ ```
27
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
28
+ │ API Handler │ │ MCP Adapter │ │ Usage Module │
29
+ ├─────────────────┤ ├─────────────────┤ ├─────────────────┤
30
+ │ • Own schemas │ │ • Own schemas │ │ • Own schemas │
31
+ │ • Own types │ │ • Own types │ │ • Own types │
32
+ │ • Own enums │ │ • Own enums │ │ • Own enums │
33
+ └─────────────────┘ └─────────────────┘ └─────────────────┘
34
+ ❌ ❌ ❌
35
+ Duplicated Duplicated Duplicated
36
+ Diverges over time Diverges over time Diverges over time
37
+ ```
38
+
39
+ **AFTER** (Centralized, Consistent):
40
+ ```
41
+ ┌──────────────────────────────┐
42
+ │ @ax-cli/schemas │
43
+ ├──────────────────────────────┤
44
+ │ • Brand Types (ID safety) │
45
+ │ • Centralized Enums │
46
+ │ • Zod Schemas (validation) │
47
+ │ • TypeScript Types │
48
+ └───────────────┬──────────────┘
49
+
50
+ ┌─────────────┼─────────────┐
51
+ │ │ │
52
+ ▼ ▼ ▼
53
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
54
+ │ API Handler │ │ MCP Adapter │ │Usage Module │
55
+ ├─────────────┤ ├─────────────┤ ├─────────────┤
56
+ │ import {...}│ │ import {...}│ │ import {...}│
57
+ │ from │ │ from │ │ from │
58
+ │ '@ax-cli/ │ │ '@ax-cli/ │ │ '@ax-cli/ │
59
+ │ schemas' │ │ schemas' │ │ schemas' │
60
+ └─────────────┘ └─────────────┘ └─────────────┘
61
+ ✅ ✅ ✅
62
+ Same contract Same contract Same contract
63
+ ```
64
+
65
+ ### Benefits
66
+
67
+ **1. Zero Divergence**
68
+ All modules consume the same source - when you update `ModelId` schema, all consumers get the update automatically.
69
+
70
+ **2. Reduced Refactoring Cost**
71
+ Change once in `@ax-cli/schemas`, propagate everywhere. No need to hunt down all duplicate definitions.
72
+
73
+ **3. Compile-Time Safety**
74
+ TypeScript catches type mismatches across module boundaries:
75
+ ```typescript
76
+ // API handler expects ModelId
77
+ function handleRequest(model: ModelId) { ... }
78
+
79
+ // MCP adapter provides ModelId (same type!)
80
+ const mcpModel = ModelIdSchema.parse(input);
81
+ handleRequest(mcpModel); // ✅ Type-safe!
82
+
83
+ // Usage module also uses ModelId (same type!)
84
+ const usageModel = getModelFromDB(); // Returns ModelId
85
+ handleRequest(usageModel); // ✅ Type-safe!
86
+ ```
87
+
88
+ **4. Runtime Validation Consistency**
89
+ All modules use the same Zod schemas, ensuring consistent validation rules across API boundaries, MCP adapters, and usage tracking.
90
+
91
+ ## Features
92
+
93
+ - **Brand Types**: Compile-time nominal typing for ID types to prevent mixing
94
+ - **Centralized Enums**: Single source of truth for all enum values
95
+ - **Zod Schemas**: Runtime validation with TypeScript type inference
96
+ - **Zero Runtime Cost**: Brand types are compile-time only (erased during compilation)
97
+ - **100% Test Coverage**: Comprehensive test suite (123 tests)
98
+
99
+ ## Quick Start
100
+
101
+ ### Using Brand Types
102
+
103
+ ```typescript
104
+ import { ModelId, ModelIdSchema } from '@ax-cli/schemas';
105
+
106
+ // ✅ Safe: Runtime validation + branding
107
+ const modelId = ModelIdSchema.parse('glm-4.6');
108
+
109
+ // ✅ Type-safe function signatures
110
+ function getModelConfig(id: ModelId) {
111
+ // TypeScript prevents passing other ID types here
112
+ }
113
+
114
+ // ❌ Compile error: Can't pass plain string
115
+ getModelConfig('glm-4.6'); // TypeScript error!
116
+
117
+ // ✅ Correct: Parse first
118
+ getModelConfig(ModelIdSchema.parse('glm-4.6'));
119
+ ```
120
+
121
+ ### Using Enums
122
+
123
+ ```typescript
124
+ import { MessageRoleEnum, type MessageRole } from '@ax-cli/schemas';
125
+
126
+ // ✅ Use in Zod schemas
127
+ const MessageSchema = z.object({
128
+ role: MessageRoleEnum,
129
+ content: z.string(),
130
+ });
131
+
132
+ // ✅ Use type for function signatures
133
+ function handleMessage(role: MessageRole, content: string) {
134
+ // role is typed as 'system' | 'user' | 'assistant' | 'tool'
135
+ }
136
+ ```
137
+
138
+ ## API Reference
139
+
140
+ ### Brand Types
141
+
142
+ All ID types are branded to prevent accidental mixing:
143
+
144
+ ```typescript
145
+ import {
146
+ ApiResponseId,
147
+ ToolCallId,
148
+ ModelId,
149
+ MCPServerId,
150
+ // ... and their corresponding schemas
151
+ ApiResponseIdSchema,
152
+ ToolCallIdSchema,
153
+ ModelIdSchema,
154
+ MCPServerIdSchema,
155
+ } from '@ax-cli/schemas';
156
+ ```
157
+
158
+ **Available Brand Types:**
159
+ - `ApiResponseId` / `ApiResponseIdSchema`
160
+ - `ToolCallId` / `ToolCallIdSchema`
161
+ - `ModelId` / `ModelIdSchema`
162
+ - `TenantId` / `TenantIdSchema`
163
+ - `ApiKeyId` / `ApiKeyIdSchema`
164
+ - `MCPServerId` / `MCPServerIdSchema`
165
+ - `UsageRecordId` / `UsageRecordIdSchema`
166
+ - `PlanId` / `PlanIdSchema`
167
+ - `SessionId` / `SessionIdSchema`
168
+ - `RequestId` / `RequestIdSchema`
169
+
170
+ ### Enums
171
+
172
+ ```typescript
173
+ import {
174
+ MessageRoleEnum,
175
+ FinishReasonEnum,
176
+ TransportEnum,
177
+ EditorCommandEnum,
178
+ } from '@ax-cli/schemas';
179
+ ```
180
+
181
+ **MessageRoleEnum**: `'system' | 'user' | 'assistant' | 'tool'`
182
+
183
+ **FinishReasonEnum**: `'stop' | 'length' | 'tool_calls' | 'content_filter'`
184
+
185
+ **TransportEnum**: `'stdio' | 'http' | 'sse'`
186
+
187
+ **EditorCommandEnum**: `'view' | 'create' | 'str_replace' | 'insert' | 'undo_edit'`
188
+
189
+ ### Brand Type Utilities
190
+
191
+ ```typescript
192
+ import {
193
+ brand,
194
+ unbrand,
195
+ isBranded,
196
+ createBrandFactory,
197
+ type Brand,
198
+ } from '@ax-cli/schemas';
199
+
200
+ // Create custom brand types
201
+ const MyIdSchema = z.string().transform((val) => brand<string, 'MyId'>(val));
202
+ type MyId = Brand<string, 'MyId'>;
203
+
204
+ // Remove branding (use sparingly!)
205
+ const plainString = unbrand(brandedId);
206
+
207
+ // Check if value is branded
208
+ if (isBranded(value, 'ModelId')) {
209
+ // TypeScript knows this is a ModelId
210
+ }
211
+ ```
212
+
213
+ ## Security Best Practices
214
+
215
+ ### CRITICAL: Brand Types Are Compile-Time Only
216
+
217
+ Brand types provide **ZERO runtime validation**. You **MUST** validate all external inputs at system boundaries.
218
+
219
+ ```typescript
220
+ // ❌ UNSAFE: No runtime validation!
221
+ const tenantId = userInput as TenantId; // DON'T DO THIS!
222
+
223
+ // ✅ SAFE: Validates with Zod
224
+ const result = TenantIdSchema.safeParse(userInput);
225
+ if (result.success) {
226
+ const tenantId = result.data; // Type-safe AND runtime-safe
227
+ }
228
+ ```
229
+
230
+ ### When to Validate
231
+
232
+ Always validate at these boundaries:
233
+
234
+ - **API boundaries**: HTTP requests, MCP inputs
235
+ - **File I/O**: Reading configs, user settings
236
+ - **Database queries**: WHERE clauses with user IDs
237
+ - **Environment variables**
238
+ - **Command-line arguments**
239
+
240
+ ### Safe Validation Pattern
241
+
242
+ ```typescript
243
+ import { ModelIdSchema, type ModelId } from '@ax-cli/schemas';
244
+
245
+ function updateModel(modelName: string): void {
246
+ // ✅ Validate at boundary
247
+ const result = ModelIdSchema.safeParse(modelName);
248
+
249
+ if (!result.success) {
250
+ throw new Error(`Invalid model ID: ${result.error.message}`);
251
+ }
252
+
253
+ // Now we have a branded ModelId
254
+ const modelId: ModelId = result.data;
255
+
256
+ // Use in type-safe functions
257
+ processModel(modelId);
258
+ }
259
+
260
+ function processModel(id: ModelId): void {
261
+ // TypeScript ensures only ModelId can be passed here
262
+ // No accidental mixing with other ID types!
263
+ }
264
+ ```
265
+
266
+ ## Migration Guide
267
+
268
+ ### Adding Brand Types to Existing Code
269
+
270
+ **Step 1**: Import the schema
271
+
272
+ ```typescript
273
+ import { ModelIdSchema } from '@ax-cli/schemas';
274
+ ```
275
+
276
+ **Step 2**: Use `.parse()` at object creation boundaries
277
+
278
+ ```typescript
279
+ // Before
280
+ const config = {
281
+ model: 'glm-4.6', // Plain string
282
+ };
283
+
284
+ // After
285
+ const config = {
286
+ model: ModelIdSchema.parse('glm-4.6'), // Branded ModelId
287
+ };
288
+ ```
289
+
290
+ **Step 3**: Update function signatures
291
+
292
+ ```typescript
293
+ // Before
294
+ function getConfig(model: string) { }
295
+
296
+ // After
297
+ function getConfig(model: ModelId) { }
298
+ ```
299
+
300
+ **Step 4**: Fix TypeScript errors by adding `.parse()` at call sites
301
+
302
+ ```typescript
303
+ // Before
304
+ getConfig('glm-4.6'); // Now causes TypeScript error
305
+
306
+ // After
307
+ getConfig(ModelIdSchema.parse('glm-4.6')); // Type-safe!
308
+ ```
309
+
310
+ ### Default Values
311
+
312
+ For constants and defaults, parse at definition:
313
+
314
+ ```typescript
315
+ import { ModelIdSchema } from '@ax-cli/schemas';
316
+
317
+ const DEFAULT_CONFIG = {
318
+ model: ModelIdSchema.parse('glm-4.6'),
319
+ // ... other fields
320
+ };
321
+ ```
322
+
323
+ ## Performance
324
+
325
+ - **Brand types**: Zero runtime cost (compile-time only)
326
+ - **Zod validation**: ~1-2μs per validation (negligible)
327
+ - **Test performance**: 123 tests in <20ms
328
+
329
+ ## Testing
330
+
331
+ ```bash
332
+ # Run tests
333
+ npm test
334
+
335
+ # Run tests in watch mode
336
+ npm run test:watch
337
+
338
+ # Type checking
339
+ npm run typecheck
340
+
341
+ # Build
342
+ npm run build
343
+ ```
344
+
345
+ ## Architecture
346
+
347
+ ```
348
+ packages/schemas/
349
+ ├── src/
350
+ │ ├── index.ts # Public API
351
+ │ ├── public/
352
+ │ │ └── core/
353
+ │ │ ├── brand-types.ts # Brand type utilities
354
+ │ │ ├── enums.ts # Centralized enums
355
+ │ │ └── id-types.ts # ID brand types
356
+ │ └── __tests__/
357
+ │ ├── brand-types.test.ts # 40 tests
358
+ │ ├── enums.test.ts # 31 tests
359
+ │ └── id-types.test.ts # 52 tests
360
+ └── dist/ # Compiled output
361
+ ```
362
+
363
+ ## Version
364
+
365
+ Current version: 1.0.0
366
+
367
+ ## License
368
+
369
+ MIT
370
+
371
+ ## Related Packages
372
+
373
+ - `@ax-cli/schemas` (this package): Type system foundation
374
+ - `ax-cli`: Main CLI application
375
+
376
+ ## Contributing
377
+
378
+ When adding new brand types or enums:
379
+
380
+ 1. Add implementation to `src/public/core/`
381
+ 2. Export from `src/index.ts`
382
+ 3. Add comprehensive tests
383
+ 4. Update this README
384
+ 5. Run `npm test` and `npm run typecheck`
385
+
386
+ ## Support
387
+
388
+ For issues and questions, please open an issue in the main ax-cli repository.
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @ax-cli/schemas - Single Source of Truth Type System
3
+ *
4
+ * This package provides centralized Zod schemas, brand types, and enums
5
+ * for the entire ax-cli ecosystem.
6
+ *
7
+ * SECURITY: All exports are controlled. Internal helpers are not exposed.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ export { brand, unbrand, isBranded, createBrandFactory, type __brand, type Brand, type ExtractBrand, type ExtractBase, } from './public/core/brand-types.js';
12
+ export { ApiResponseId, ToolCallId, ToolCallIdSchema, ModelId, ModelIdSchema, TenantId, ApiKeyId, MCPServerId, MCPServerIdSchema, UsageRecordId, PlanId, SessionId, RequestId, type ApiResponseId as ApiResponseIdType, type ToolCallId as ToolCallIdType, type ModelId as ModelIdType, type TenantId as TenantIdType, type ApiKeyId as ApiKeyIdType, type MCPServerId as MCPServerIdType, type UsageRecordId as UsageRecordIdType, type PlanId as PlanIdType, type SessionId as SessionIdType, type RequestId as RequestIdType, } from './public/core/id-types.js';
13
+ export { MessageRoleEnum, FinishReasonEnum, TransportEnum, EditorCommandEnum, type MessageRole, type FinishReason, type Transport, type EditorCommand, } from './public/core/enums.js';
14
+ export { type LLMToolCallRef, type ToolResultRef, type ChatEntry, type StreamingChunkType, type StreamingChunk, type AccumulatedMessage, type ChatHistory, } from './public/agent/index.js';
15
+ export * from './public/design/index.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,aAAa,IAAI,iBAAiB,EACvC,KAAK,UAAU,IAAI,cAAc,EACjC,KAAK,OAAO,IAAI,WAAW,EAC3B,KAAK,QAAQ,IAAI,YAAY,EAC7B,KAAK,QAAQ,IAAI,YAAY,EAC7B,KAAK,WAAW,IAAI,eAAe,EACnC,KAAK,aAAa,IAAI,iBAAiB,EACvC,KAAK,MAAM,IAAI,UAAU,EACzB,KAAK,SAAS,IAAI,aAAa,EAC/B,KAAK,SAAS,IAAI,aAAa,GAChC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,yBAAyB,CAAC;AAGjC,cAAc,0BAA0B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @ax-cli/schemas - Single Source of Truth Type System
3
+ *
4
+ * This package provides centralized Zod schemas, brand types, and enums
5
+ * for the entire ax-cli ecosystem.
6
+ *
7
+ * SECURITY: All exports are controlled. Internal helpers are not exposed.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ // Core brand type utilities
12
+ export { brand, unbrand, isBranded, createBrandFactory, } from './public/core/brand-types.js';
13
+ // ID Brand Types
14
+ export { ApiResponseId, ToolCallId, ToolCallIdSchema, ModelId, ModelIdSchema, TenantId, ApiKeyId, MCPServerId, MCPServerIdSchema, UsageRecordId, PlanId, SessionId, RequestId, } from './public/core/id-types.js';
15
+ // Centralized Enums
16
+ export { MessageRoleEnum, FinishReasonEnum, TransportEnum, EditorCommandEnum, } from './public/core/enums.js';
17
+ // Design Module (Figma integration)
18
+ export * from './public/design/index.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4BAA4B;AAC5B,OAAO,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,kBAAkB,GAKnB,MAAM,8BAA8B,CAAC;AAEtC,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,SAAS,EACT,SAAS,GAWV,MAAM,2BAA2B,CAAC;AAEnC,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAKlB,MAAM,wBAAwB,CAAC;AAahC,oCAAoC;AACpC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * @ax-cli/schemas - Agent Chat Types
3
+ *
4
+ * Single Source of Truth (SSOT) for agent chat-related types.
5
+ * These types are used across the agent, UI, checkpoint, and SDK modules.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * LLM Tool Call representation
11
+ *
12
+ * Represents a tool call made by the LLM during a conversation.
13
+ * This is a simplified version that doesn't depend on OpenAI types.
14
+ */
15
+ export interface LLMToolCallRef {
16
+ /** Unique identifier for this tool call */
17
+ id: string;
18
+ /** Type of tool call (always "function" for now) */
19
+ type: "function";
20
+ /** Function details */
21
+ function: {
22
+ /** Name of the function to call */
23
+ name: string;
24
+ /** JSON-encoded arguments string */
25
+ arguments: string;
26
+ };
27
+ }
28
+ /**
29
+ * Tool execution result
30
+ *
31
+ * Represents the result of executing a tool.
32
+ */
33
+ export interface ToolResultRef {
34
+ /** Whether the tool execution succeeded */
35
+ success: boolean;
36
+ /** Output from successful execution */
37
+ output?: string;
38
+ /** Error message if execution failed */
39
+ error?: string;
40
+ /** Additional structured data from the tool */
41
+ data?: Record<string, unknown>;
42
+ }
43
+ /**
44
+ * Chat Entry
45
+ *
46
+ * Represents a single entry in the chat history between user and assistant.
47
+ * This is the canonical definition - DO NOT duplicate this type elsewhere.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const userMessage: ChatEntry = {
52
+ * type: "user",
53
+ * content: "Hello, how are you?",
54
+ * timestamp: new Date(),
55
+ * };
56
+ *
57
+ * const assistantMessage: ChatEntry = {
58
+ * type: "assistant",
59
+ * content: "I'm doing well, thank you!",
60
+ * timestamp: new Date(),
61
+ * durationMs: 1500,
62
+ * };
63
+ * ```
64
+ */
65
+ export interface ChatEntry {
66
+ /** Type of chat entry */
67
+ type: "user" | "assistant" | "tool_result" | "tool_call";
68
+ /** Text content of the entry */
69
+ content: string;
70
+ /** When this entry was created */
71
+ timestamp: Date;
72
+ /** Tool calls made by assistant (for type="assistant") */
73
+ toolCalls?: LLMToolCallRef[];
74
+ /** Single tool call (for type="tool_call") */
75
+ toolCall?: LLMToolCallRef;
76
+ /** Result of tool execution (for type="tool_result") */
77
+ toolResult?: {
78
+ success: boolean;
79
+ output?: string;
80
+ error?: string;
81
+ };
82
+ /** Whether content is currently streaming */
83
+ isStreaming?: boolean;
84
+ /** GLM-4.6 reasoning content (thinking mode) */
85
+ reasoningContent?: string;
86
+ /** Whether reasoning is currently streaming */
87
+ isReasoningStreaming?: boolean;
88
+ /** Response duration in milliseconds */
89
+ durationMs?: number;
90
+ /** Tool execution start time (for elapsed time display while running) */
91
+ executionStartTime?: Date;
92
+ /** Tool execution duration in milliseconds (shown after completion) */
93
+ executionDurationMs?: number;
94
+ }
95
+ /**
96
+ * Streaming Chunk Types
97
+ *
98
+ * Represents different types of streaming chunks that can be received
99
+ * during a streaming response from the LLM.
100
+ */
101
+ export type StreamingChunkType = "content" | "reasoning" | "tool_calls" | "tool_result" | "done" | "token_count";
102
+ /**
103
+ * Streaming Chunk
104
+ *
105
+ * Represents a chunk of data received during streaming response.
106
+ * Used by UI components to render incremental updates.
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * // Content chunk
111
+ * const contentChunk: StreamingChunk = {
112
+ * type: "content",
113
+ * content: "Hello",
114
+ * };
115
+ *
116
+ * // Tool result chunk
117
+ * const toolResultChunk: StreamingChunk = {
118
+ * type: "tool_result",
119
+ * toolResult: { success: true, output: "File created" },
120
+ * executionDurationMs: 150,
121
+ * };
122
+ * ```
123
+ */
124
+ export interface StreamingChunk {
125
+ /** Type of streaming chunk */
126
+ type: StreamingChunkType;
127
+ /** Text content (for type="content") */
128
+ content?: string;
129
+ /** GLM-4.6 reasoning content chunk (for type="reasoning") */
130
+ reasoningContent?: string;
131
+ /** Tool calls from LLM (for type="tool_calls") */
132
+ toolCalls?: LLMToolCallRef[];
133
+ /** Single tool call */
134
+ toolCall?: LLMToolCallRef;
135
+ /** Tool execution result (for type="tool_result") */
136
+ toolResult?: ToolResultRef;
137
+ /** Token count (for type="token_count") */
138
+ tokenCount?: number;
139
+ /** Tool execution duration in milliseconds (for type="tool_result") */
140
+ executionDurationMs?: number;
141
+ }
142
+ /**
143
+ * Accumulated Message
144
+ *
145
+ * Contains the full message content accumulated from streaming response.
146
+ * Used internally by the agent to build complete messages from chunks.
147
+ */
148
+ export interface AccumulatedMessage {
149
+ /** Message role (e.g., "assistant") */
150
+ role?: string;
151
+ /** Full accumulated content */
152
+ content?: string;
153
+ /** Tool calls accumulated from the response */
154
+ tool_calls?: LLMToolCallRef[];
155
+ /** Allow additional properties for flexibility */
156
+ [key: string]: unknown;
157
+ }
158
+ /**
159
+ * Chat History
160
+ *
161
+ * Type alias for an array of chat entries.
162
+ */
163
+ export type ChatHistory = ChatEntry[];
164
+ //# sourceMappingURL=chat-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-types.d.ts","sourceRoot":"","sources":["../../../src/public/agent/chat-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,IAAI,EAAE,UAAU,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE;QACR,mCAAmC;QACnC,IAAI,EAAE,MAAM,CAAC;QACb,oCAAoC;QACpC,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,CAAC;IAEzD,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,SAAS,EAAE,IAAI,CAAC;IAEhB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAE7B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,wDAAwD;IACxD,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEnE,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAE1B,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,WAAW,GACX,YAAY,GACZ,aAAa,GACb,MAAM,GACN,aAAa,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IAEzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAE7B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,qDAAqD;IACrD,UAAU,CAAC,EAAE,aAAa,CAAC;IAE3B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B,kDAAkD;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @ax-cli/schemas - Agent Chat Types
3
+ *
4
+ * Single Source of Truth (SSOT) for agent chat-related types.
5
+ * These types are used across the agent, UI, checkpoint, and SDK modules.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=chat-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-types.js","sourceRoot":"","sources":["../../../src/public/agent/chat-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @ax-cli/schemas - Agent Types
3
+ *
4
+ * Exports all agent-related types for the ax-cli ecosystem.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export { type LLMToolCallRef, type ToolResultRef, type ChatEntry, type StreamingChunkType, type StreamingChunk, type AccumulatedMessage, type ChatHistory, } from './chat-types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @ax-cli/schemas - Agent Types
3
+ *
4
+ * Exports all agent-related types for the ax-cli ecosystem.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/public/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}