@revealui/contracts 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 (191) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +160 -0
  3. package/dist/a2a/index.d.ts +383 -0
  4. package/dist/a2a/index.d.ts.map +1 -0
  5. package/dist/a2a/index.js +276 -0
  6. package/dist/a2a/index.js.map +1 -0
  7. package/dist/actions/action-validator.d.ts +48 -0
  8. package/dist/actions/action-validator.d.ts.map +1 -0
  9. package/dist/actions/action-validator.js +288 -0
  10. package/dist/actions/action-validator.js.map +1 -0
  11. package/dist/actions/index.d.ts +7 -0
  12. package/dist/actions/index.d.ts.map +1 -0
  13. package/dist/actions/index.js +7 -0
  14. package/dist/actions/index.js.map +1 -0
  15. package/dist/agents/index.d.ts +628 -0
  16. package/dist/agents/index.d.ts.map +1 -0
  17. package/dist/agents/index.js +511 -0
  18. package/dist/agents/index.js.map +1 -0
  19. package/dist/agents/types.d.ts +22 -0
  20. package/dist/agents/types.d.ts.map +1 -0
  21. package/dist/agents/types.js +2 -0
  22. package/dist/agents/types.js.map +1 -0
  23. package/dist/api/auth.d.ts +60 -0
  24. package/dist/api/auth.d.ts.map +1 -0
  25. package/dist/api/auth.js +84 -0
  26. package/dist/api/auth.js.map +1 -0
  27. package/dist/api/chat.d.ts +45 -0
  28. package/dist/api/chat.d.ts.map +1 -0
  29. package/dist/api/chat.js +55 -0
  30. package/dist/api/chat.js.map +1 -0
  31. package/dist/api/gdpr.d.ts +39 -0
  32. package/dist/api/gdpr.d.ts.map +1 -0
  33. package/dist/api/gdpr.js +53 -0
  34. package/dist/api/gdpr.js.map +1 -0
  35. package/dist/cms/collection.d.ts +108 -0
  36. package/dist/cms/collection.d.ts.map +1 -0
  37. package/dist/cms/collection.js +144 -0
  38. package/dist/cms/collection.js.map +1 -0
  39. package/dist/cms/compat.d.ts +128 -0
  40. package/dist/cms/compat.d.ts.map +1 -0
  41. package/dist/cms/compat.js +141 -0
  42. package/dist/cms/compat.js.map +1 -0
  43. package/dist/cms/config-contract.d.ts +278 -0
  44. package/dist/cms/config-contract.d.ts.map +1 -0
  45. package/dist/cms/config-contract.js +220 -0
  46. package/dist/cms/config-contract.js.map +1 -0
  47. package/dist/cms/config.d.ts +351 -0
  48. package/dist/cms/config.d.ts.map +1 -0
  49. package/dist/cms/config.js +50 -0
  50. package/dist/cms/config.js.map +1 -0
  51. package/dist/cms/errors.d.ts +122 -0
  52. package/dist/cms/errors.d.ts.map +1 -0
  53. package/dist/cms/errors.js +163 -0
  54. package/dist/cms/errors.js.map +1 -0
  55. package/dist/cms/extensibility.d.ts +211 -0
  56. package/dist/cms/extensibility.d.ts.map +1 -0
  57. package/dist/cms/extensibility.js +313 -0
  58. package/dist/cms/extensibility.js.map +1 -0
  59. package/dist/cms/field.d.ts +69 -0
  60. package/dist/cms/field.d.ts.map +1 -0
  61. package/dist/cms/field.js +94 -0
  62. package/dist/cms/field.js.map +1 -0
  63. package/dist/cms/functions.d.ts +466 -0
  64. package/dist/cms/functions.d.ts.map +1 -0
  65. package/dist/cms/functions.js +19 -0
  66. package/dist/cms/functions.js.map +1 -0
  67. package/dist/cms/global.d.ts +45 -0
  68. package/dist/cms/global.d.ts.map +1 -0
  69. package/dist/cms/global.js +62 -0
  70. package/dist/cms/global.js.map +1 -0
  71. package/dist/cms/index.d.ts +23 -0
  72. package/dist/cms/index.d.ts.map +1 -0
  73. package/dist/cms/index.js +42 -0
  74. package/dist/cms/index.js.map +1 -0
  75. package/dist/cms/structure.d.ts +1601 -0
  76. package/dist/cms/structure.d.ts.map +1 -0
  77. package/dist/cms/structure.js +757 -0
  78. package/dist/cms/structure.js.map +1 -0
  79. package/dist/content/index.d.ts +1542 -0
  80. package/dist/content/index.d.ts.map +1 -0
  81. package/dist/content/index.js +522 -0
  82. package/dist/content/index.js.map +1 -0
  83. package/dist/database/bridge.d.ts +177 -0
  84. package/dist/database/bridge.d.ts.map +1 -0
  85. package/dist/database/bridge.js +139 -0
  86. package/dist/database/bridge.js.map +1 -0
  87. package/dist/database/index.d.ts +8 -0
  88. package/dist/database/index.d.ts.map +1 -0
  89. package/dist/database/index.js +9 -0
  90. package/dist/database/index.js.map +1 -0
  91. package/dist/database/type-bridge.d.ts +178 -0
  92. package/dist/database/type-bridge.d.ts.map +1 -0
  93. package/dist/database/type-bridge.js +154 -0
  94. package/dist/database/type-bridge.js.map +1 -0
  95. package/dist/entities/agent-context.d.ts +280 -0
  96. package/dist/entities/agent-context.d.ts.map +1 -0
  97. package/dist/entities/agent-context.js +390 -0
  98. package/dist/entities/agent-context.js.map +1 -0
  99. package/dist/entities/agent-memory.d.ts +661 -0
  100. package/dist/entities/agent-memory.d.ts.map +1 -0
  101. package/dist/entities/agent-memory.js +544 -0
  102. package/dist/entities/agent-memory.js.map +1 -0
  103. package/dist/entities/board.d.ts +95 -0
  104. package/dist/entities/board.d.ts.map +1 -0
  105. package/dist/entities/board.js +99 -0
  106. package/dist/entities/board.js.map +1 -0
  107. package/dist/entities/code-provenance.d.ts +270 -0
  108. package/dist/entities/code-provenance.d.ts.map +1 -0
  109. package/dist/entities/code-provenance.js +339 -0
  110. package/dist/entities/code-provenance.js.map +1 -0
  111. package/dist/entities/index.d.ts +22 -0
  112. package/dist/entities/index.d.ts.map +1 -0
  113. package/dist/entities/index.js +22 -0
  114. package/dist/entities/index.js.map +1 -0
  115. package/dist/entities/media.d.ts +485 -0
  116. package/dist/entities/media.d.ts.map +1 -0
  117. package/dist/entities/media.js +606 -0
  118. package/dist/entities/media.js.map +1 -0
  119. package/dist/entities/page-revision.d.ts +390 -0
  120. package/dist/entities/page-revision.d.ts.map +1 -0
  121. package/dist/entities/page-revision.js +406 -0
  122. package/dist/entities/page-revision.js.map +1 -0
  123. package/dist/entities/page.d.ts +2349 -0
  124. package/dist/entities/page.d.ts.map +1 -0
  125. package/dist/entities/page.js +377 -0
  126. package/dist/entities/page.js.map +1 -0
  127. package/dist/entities/post.d.ts +619 -0
  128. package/dist/entities/post.d.ts.map +1 -0
  129. package/dist/entities/post.js +555 -0
  130. package/dist/entities/post.js.map +1 -0
  131. package/dist/entities/price.d.ts +772 -0
  132. package/dist/entities/price.d.ts.map +1 -0
  133. package/dist/entities/price.js +308 -0
  134. package/dist/entities/price.js.map +1 -0
  135. package/dist/entities/product.d.ts +753 -0
  136. package/dist/entities/product.d.ts.map +1 -0
  137. package/dist/entities/product.js +307 -0
  138. package/dist/entities/product.js.map +1 -0
  139. package/dist/entities/session.d.ts +222 -0
  140. package/dist/entities/session.d.ts.map +1 -0
  141. package/dist/entities/session.js +253 -0
  142. package/dist/entities/session.js.map +1 -0
  143. package/dist/entities/site.d.ts +387 -0
  144. package/dist/entities/site.d.ts.map +1 -0
  145. package/dist/entities/site.js +348 -0
  146. package/dist/entities/site.js.map +1 -0
  147. package/dist/entities/ticket-comment.d.ts +49 -0
  148. package/dist/entities/ticket-comment.d.ts.map +1 -0
  149. package/dist/entities/ticket-comment.js +58 -0
  150. package/dist/entities/ticket-comment.js.map +1 -0
  151. package/dist/entities/ticket-label.d.ts +64 -0
  152. package/dist/entities/ticket-label.d.ts.map +1 -0
  153. package/dist/entities/ticket-label.js +77 -0
  154. package/dist/entities/ticket-label.js.map +1 -0
  155. package/dist/entities/ticket.d.ts +204 -0
  156. package/dist/entities/ticket.d.ts.map +1 -0
  157. package/dist/entities/ticket.js +205 -0
  158. package/dist/entities/ticket.js.map +1 -0
  159. package/dist/entities/user.d.ts +336 -0
  160. package/dist/entities/user.d.ts.map +1 -0
  161. package/dist/entities/user.js +255 -0
  162. package/dist/entities/user.js.map +1 -0
  163. package/dist/foundation/contract.d.ts +221 -0
  164. package/dist/foundation/contract.d.ts.map +1 -0
  165. package/dist/foundation/contract.js +133 -0
  166. package/dist/foundation/contract.js.map +1 -0
  167. package/dist/foundation/index.d.ts +7 -0
  168. package/dist/foundation/index.d.ts.map +1 -0
  169. package/dist/foundation/index.js +7 -0
  170. package/dist/foundation/index.js.map +1 -0
  171. package/dist/generated/contracts.d.ts +1514 -0
  172. package/dist/generated/contracts.d.ts.map +1 -0
  173. package/dist/generated/contracts.js +959 -0
  174. package/dist/generated/contracts.js.map +1 -0
  175. package/dist/generated/database.d.ts +48 -0
  176. package/dist/generated/database.d.ts.map +1 -0
  177. package/dist/generated/database.js +17 -0
  178. package/dist/generated/database.js.map +1 -0
  179. package/dist/generated/zod-schemas.d.ts +14793 -0
  180. package/dist/generated/zod-schemas.d.ts.map +1 -0
  181. package/dist/generated/zod-schemas.js +547 -0
  182. package/dist/generated/zod-schemas.js.map +1 -0
  183. package/dist/index.d.ts +50 -0
  184. package/dist/index.d.ts.map +1 -0
  185. package/dist/index.js +81 -0
  186. package/dist/index.js.map +1 -0
  187. package/dist/representation/index.d.ts +304 -0
  188. package/dist/representation/index.d.ts.map +1 -0
  189. package/dist/representation/index.js +280 -0
  190. package/dist/representation/index.js.map +1 -0
  191. package/package.json +117 -0
@@ -0,0 +1,390 @@
1
+ /**
2
+ * AgentContext Entity Contract
3
+ *
4
+ * Manages agent working memory and context with semantic search capabilities.
5
+ * Agent contexts store session-specific state with CRDT sync and vector embeddings.
6
+ *
7
+ * Business Rules:
8
+ * - Context ID format: {sessionId}:{agentId}
9
+ * - Priority range: 0 (low) to 1 (high), default 0.5
10
+ * - Embeddings must be 1536 dimensions (OpenAI ada-002 format)
11
+ * - Context data validated for circular references and size limits
12
+ * - Automatic versioning for schema migrations
13
+ */
14
+ import { z } from 'zod/v4';
15
+ // =============================================================================
16
+ // Constants
17
+ // =============================================================================
18
+ export const AGENT_CONTEXT_SCHEMA_VERSION = 1;
19
+ // Embedding configuration (OpenAI ada-002 standard)
20
+ export const EMBEDDING_CONFIG = {
21
+ DIMENSIONS: 1536,
22
+ MIN_VALUE: -1.0,
23
+ MAX_VALUE: 1.0,
24
+ };
25
+ // Priority configuration
26
+ export const PRIORITY_CONFIG = {
27
+ MIN: 0.0,
28
+ MAX: 1.0,
29
+ DEFAULT: 0.5,
30
+ HIGH: 0.8,
31
+ LOW: 0.2,
32
+ };
33
+ // Context data limits
34
+ export const CONTEXT_LIMITS = {
35
+ MAX_KEYS: 100,
36
+ MAX_KEY_LENGTH: 256,
37
+ MAX_VALUE_SIZE_BYTES: 1_000_000, // 1MB
38
+ MAX_TOTAL_SIZE_BYTES: 10_000_000, // 10MB
39
+ };
40
+ // =============================================================================
41
+ // Base AgentContext Schema
42
+ // =============================================================================
43
+ /**
44
+ * Embedding vector schema with validation
45
+ */
46
+ export const EmbeddingVectorSchema = z
47
+ .array(z.number())
48
+ .length(EMBEDDING_CONFIG.DIMENSIONS, `Embedding must have exactly ${EMBEDDING_CONFIG.DIMENSIONS} dimensions`)
49
+ .refine((arr) => arr.every((val) => val >= EMBEDDING_CONFIG.MIN_VALUE && val <= EMBEDDING_CONFIG.MAX_VALUE), {
50
+ message: `All embedding values must be between ${EMBEDDING_CONFIG.MIN_VALUE} and ${EMBEDDING_CONFIG.MAX_VALUE}`,
51
+ });
52
+ /**
53
+ * Agent Context object schema
54
+ */
55
+ export const AgentContextObjectSchema = z.object({
56
+ id: z.string().regex(/^[^:]+:[^:]+$/, 'Context ID must be in format sessionId:agentId'),
57
+ version: z.number().int().default(AGENT_CONTEXT_SCHEMA_VERSION),
58
+ sessionId: z.string().min(1, 'Session ID is required'),
59
+ agentId: z.string().min(1, 'Agent ID is required'),
60
+ context: z.record(z.string(), z.unknown()).default({}),
61
+ priority: z
62
+ .number()
63
+ .min(PRIORITY_CONFIG.MIN)
64
+ .max(PRIORITY_CONFIG.MAX)
65
+ .default(PRIORITY_CONFIG.DEFAULT),
66
+ embedding: EmbeddingVectorSchema.nullable().optional(),
67
+ createdAt: z.date(),
68
+ updatedAt: z.date(),
69
+ });
70
+ /**
71
+ * Agent Context schema with validation rules
72
+ */
73
+ export const AgentContextBaseSchema = AgentContextObjectSchema.refine((data) => {
74
+ // Validate ID matches sessionId:agentId format
75
+ const expectedId = `${data.sessionId}:${data.agentId}`;
76
+ return data.id === expectedId;
77
+ }, {
78
+ message: 'Context ID must match format sessionId:agentId',
79
+ path: ['id'],
80
+ }).refine((data) => {
81
+ // Validate context data size
82
+ const keys = Object.keys(data.context);
83
+ return keys.length <= CONTEXT_LIMITS.MAX_KEYS;
84
+ }, {
85
+ message: `Context cannot have more than ${CONTEXT_LIMITS.MAX_KEYS} keys`,
86
+ path: ['context'],
87
+ });
88
+ export const AgentContextSchema = AgentContextBaseSchema;
89
+ // =============================================================================
90
+ // Insert Schema
91
+ // =============================================================================
92
+ /**
93
+ * Schema for creating new agent contexts
94
+ */
95
+ export const AgentContextInsertSchema = AgentContextObjectSchema.omit({
96
+ createdAt: true,
97
+ updatedAt: true,
98
+ }).extend({
99
+ createdAt: z.date().optional(),
100
+ updatedAt: z.date().optional(),
101
+ });
102
+ // =============================================================================
103
+ // ID Generation
104
+ // =============================================================================
105
+ /**
106
+ * Generate agent context ID from sessionId and agentId
107
+ */
108
+ export function generateContextId(sessionId, agentId) {
109
+ return `${sessionId}:${agentId}`;
110
+ }
111
+ /**
112
+ * Parse agent context ID into components
113
+ */
114
+ export function parseContextId(contextId) {
115
+ const parts = contextId.split(':');
116
+ if (parts.length !== 2) {
117
+ return null;
118
+ }
119
+ const [sessionId, agentId] = parts;
120
+ if (!(sessionId && agentId)) {
121
+ return null;
122
+ }
123
+ return { sessionId, agentId };
124
+ }
125
+ /**
126
+ * Validate context ID format
127
+ */
128
+ export function isValidContextId(contextId) {
129
+ return parseContextId(contextId) !== null;
130
+ }
131
+ // =============================================================================
132
+ // Priority Helpers
133
+ // =============================================================================
134
+ /**
135
+ * Check if priority is high (>= 0.8)
136
+ */
137
+ export function isHighPriority(context) {
138
+ return context.priority >= PRIORITY_CONFIG.HIGH;
139
+ }
140
+ /**
141
+ * Check if priority is low (<= 0.2)
142
+ */
143
+ export function isLowPriority(context) {
144
+ return context.priority <= PRIORITY_CONFIG.LOW;
145
+ }
146
+ /**
147
+ * Get priority category
148
+ */
149
+ export function getPriorityCategory(priority) {
150
+ if (priority >= PRIORITY_CONFIG.HIGH)
151
+ return 'high';
152
+ if (priority <= PRIORITY_CONFIG.LOW)
153
+ return 'low';
154
+ return 'medium';
155
+ }
156
+ /**
157
+ * Normalize priority to valid range
158
+ */
159
+ export function normalizePriority(priority) {
160
+ return Math.max(PRIORITY_CONFIG.MIN, Math.min(PRIORITY_CONFIG.MAX, priority));
161
+ }
162
+ // =============================================================================
163
+ // Embedding Validation
164
+ // =============================================================================
165
+ /**
166
+ * Validate embedding dimensions
167
+ */
168
+ export function validateEmbeddingDimensions(embedding) {
169
+ return embedding.length === EMBEDDING_CONFIG.DIMENSIONS;
170
+ }
171
+ /**
172
+ * Validate embedding values are in valid range
173
+ */
174
+ export function validateEmbeddingValues(embedding) {
175
+ return embedding.every((val) => val >= EMBEDDING_CONFIG.MIN_VALUE && val <= EMBEDDING_CONFIG.MAX_VALUE);
176
+ }
177
+ /**
178
+ * Check if context has valid embedding
179
+ */
180
+ export function hasValidEmbedding(context) {
181
+ if (!context.embedding)
182
+ return false;
183
+ return (validateEmbeddingDimensions(context.embedding) && validateEmbeddingValues(context.embedding));
184
+ }
185
+ /**
186
+ * Normalize embedding vector (L2 normalization)
187
+ */
188
+ export function normalizeEmbedding(embedding) {
189
+ const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));
190
+ if (magnitude === 0)
191
+ return embedding;
192
+ return embedding.map((val) => val / magnitude);
193
+ }
194
+ /**
195
+ * Calculate cosine similarity between two embeddings
196
+ */
197
+ export function calculateCosineSimilarity(embedding1, embedding2) {
198
+ if (embedding1.length !== embedding2.length) {
199
+ throw new Error('Embeddings must have same dimensions');
200
+ }
201
+ let dotProduct = 0;
202
+ let mag1 = 0;
203
+ let mag2 = 0;
204
+ for (let i = 0; i < embedding1.length; i++) {
205
+ const val1 = embedding1[i] ?? 0;
206
+ const val2 = embedding2[i] ?? 0;
207
+ dotProduct += val1 * val2;
208
+ mag1 += val1 * val1;
209
+ mag2 += val2 * val2;
210
+ }
211
+ const magnitude = Math.sqrt(mag1) * Math.sqrt(mag2);
212
+ return magnitude === 0 ? 0 : dotProduct / magnitude;
213
+ }
214
+ // =============================================================================
215
+ // Context Data Validation
216
+ // =============================================================================
217
+ /**
218
+ * Validate context key format
219
+ */
220
+ export function validateContextKey(key) {
221
+ return (key.length > 0 &&
222
+ key.length <= CONTEXT_LIMITS.MAX_KEY_LENGTH &&
223
+ !key.startsWith('_') && // Reserved prefix
224
+ !key.includes('..') && // Prevent path traversal
225
+ !/[<>{}\\]/.test(key) // Prevent injection
226
+ );
227
+ }
228
+ /**
229
+ * Estimate context data size in bytes
230
+ */
231
+ export function estimateContextSize(context) {
232
+ return new Blob([JSON.stringify(context)]).size;
233
+ }
234
+ /**
235
+ * Validate context data doesn't exceed size limits
236
+ */
237
+ export function validateContextSize(context) {
238
+ const size = estimateContextSize(context);
239
+ return size <= CONTEXT_LIMITS.MAX_TOTAL_SIZE_BYTES;
240
+ }
241
+ /**
242
+ * Check for circular references in context data
243
+ */
244
+ export function hasCircularReference(obj, seen = new WeakSet()) {
245
+ if (obj === null || typeof obj !== 'object') {
246
+ return false;
247
+ }
248
+ if (seen.has(obj)) {
249
+ return true;
250
+ }
251
+ seen.add(obj);
252
+ if (Array.isArray(obj)) {
253
+ return obj.some((item) => hasCircularReference(item, seen));
254
+ }
255
+ return Object.values(obj).some((value) => hasCircularReference(value, seen));
256
+ }
257
+ /**
258
+ * Validate context data for security and consistency
259
+ */
260
+ export function validateContextData(context) {
261
+ const errors = [];
262
+ // Check key count
263
+ if (Object.keys(context).length > CONTEXT_LIMITS.MAX_KEYS) {
264
+ errors.push(`Context has too many keys (max ${CONTEXT_LIMITS.MAX_KEYS})`);
265
+ }
266
+ // Check each key
267
+ for (const key of Object.keys(context)) {
268
+ if (!validateContextKey(key)) {
269
+ errors.push(`Invalid context key: ${key}`);
270
+ }
271
+ }
272
+ // Check for circular references
273
+ if (hasCircularReference(context)) {
274
+ errors.push('Context contains circular references');
275
+ }
276
+ // Check total size
277
+ if (!validateContextSize(context)) {
278
+ const size = estimateContextSize(context);
279
+ errors.push(`Context too large: ${size} bytes (max ${CONTEXT_LIMITS.MAX_TOTAL_SIZE_BYTES})`);
280
+ }
281
+ return {
282
+ valid: errors.length === 0,
283
+ errors,
284
+ };
285
+ }
286
+ // =============================================================================
287
+ // Context Creation
288
+ // =============================================================================
289
+ /**
290
+ * Create agent context insert data
291
+ */
292
+ export function createAgentContextInsert(sessionId, agentId, options) {
293
+ const now = new Date();
294
+ return {
295
+ id: generateContextId(sessionId, agentId),
296
+ version: AGENT_CONTEXT_SCHEMA_VERSION,
297
+ sessionId,
298
+ agentId,
299
+ context: options?.context ?? {},
300
+ priority: options?.priority !== undefined
301
+ ? normalizePriority(options.priority)
302
+ : PRIORITY_CONFIG.DEFAULT,
303
+ embedding: options?.embedding ?? null,
304
+ createdAt: now,
305
+ updatedAt: now,
306
+ };
307
+ }
308
+ /**
309
+ * Update context data with validation
310
+ */
311
+ export function updateAgentContext(updates) {
312
+ const result = {
313
+ updatedAt: new Date(),
314
+ };
315
+ if (updates.context !== undefined) {
316
+ result.context = updates.context;
317
+ }
318
+ if (updates.priority !== undefined) {
319
+ result.priority = normalizePriority(updates.priority);
320
+ }
321
+ if (updates.embedding !== undefined) {
322
+ result.embedding = updates.embedding;
323
+ }
324
+ return result;
325
+ }
326
+ /**
327
+ * Convert agent context to format with computed fields
328
+ */
329
+ export function agentContextToHuman(context) {
330
+ const parsedId = parseContextId(context.id);
331
+ return {
332
+ ...context,
333
+ _computed: {
334
+ hasEmbedding: context.embedding !== null && context.embedding !== undefined,
335
+ embeddingValid: hasValidEmbedding(context),
336
+ priorityCategory: getPriorityCategory(context.priority),
337
+ contextKeyCount: Object.keys(context.context).length,
338
+ contextSizeBytes: estimateContextSize(context.context),
339
+ isHighPriority: isHighPriority(context),
340
+ isLowPriority: isLowPriority(context),
341
+ parsedId: parsedId ?? { sessionId: '', agentId: '' },
342
+ },
343
+ };
344
+ }
345
+ /**
346
+ * Convert agent context to agent-compatible format
347
+ */
348
+ export function agentContextToAgent(context) {
349
+ return {
350
+ ...context,
351
+ metadata: {
352
+ embeddingPresent: context.embedding !== null && context.embedding !== undefined,
353
+ embeddingDimensions: context.embedding?.length ?? null,
354
+ priorityLevel: getPriorityCategory(context.priority),
355
+ contextSize: estimateContextSize(context.context),
356
+ keyCount: Object.keys(context.context).length,
357
+ },
358
+ };
359
+ }
360
+ /**
361
+ * Zod schema for agent context with computed fields
362
+ */
363
+ export const AgentContextWithComputedSchema = AgentContextSchema.and(z.object({
364
+ _computed: z.object({
365
+ hasEmbedding: z.boolean(),
366
+ embeddingValid: z.boolean(),
367
+ priorityCategory: z.enum(['high', 'medium', 'low']),
368
+ contextKeyCount: z.number().int(),
369
+ contextSizeBytes: z.number().int(),
370
+ isHighPriority: z.boolean(),
371
+ isLowPriority: z.boolean(),
372
+ parsedId: z.object({
373
+ sessionId: z.string(),
374
+ agentId: z.string(),
375
+ }),
376
+ }),
377
+ }));
378
+ /**
379
+ * Zod schema for agent context with agent metadata
380
+ */
381
+ export const AgentContextAgentSchema = AgentContextSchema.and(z.object({
382
+ metadata: z.object({
383
+ embeddingPresent: z.boolean(),
384
+ embeddingDimensions: z.number().int().nullable(),
385
+ priorityLevel: z.enum(['high', 'medium', 'low']),
386
+ contextSize: z.number().int(),
387
+ keyCount: z.number().int(),
388
+ }),
389
+ }));
390
+ //# sourceMappingURL=agent-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../../src/entities/agent-context.ts"],"names":[],"mappings":"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"}