@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.
- package/LICENSE +22 -0
- package/README.md +160 -0
- package/dist/a2a/index.d.ts +383 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +276 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/actions/action-validator.d.ts +48 -0
- package/dist/actions/action-validator.d.ts.map +1 -0
- package/dist/actions/action-validator.js +288 -0
- package/dist/actions/action-validator.js.map +1 -0
- package/dist/actions/index.d.ts +7 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +7 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/agents/index.d.ts +628 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +511 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/types.d.ts +22 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/api/auth.d.ts +60 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +84 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/chat.d.ts +45 -0
- package/dist/api/chat.d.ts.map +1 -0
- package/dist/api/chat.js +55 -0
- package/dist/api/chat.js.map +1 -0
- package/dist/api/gdpr.d.ts +39 -0
- package/dist/api/gdpr.d.ts.map +1 -0
- package/dist/api/gdpr.js +53 -0
- package/dist/api/gdpr.js.map +1 -0
- package/dist/cms/collection.d.ts +108 -0
- package/dist/cms/collection.d.ts.map +1 -0
- package/dist/cms/collection.js +144 -0
- package/dist/cms/collection.js.map +1 -0
- package/dist/cms/compat.d.ts +128 -0
- package/dist/cms/compat.d.ts.map +1 -0
- package/dist/cms/compat.js +141 -0
- package/dist/cms/compat.js.map +1 -0
- package/dist/cms/config-contract.d.ts +278 -0
- package/dist/cms/config-contract.d.ts.map +1 -0
- package/dist/cms/config-contract.js +220 -0
- package/dist/cms/config-contract.js.map +1 -0
- package/dist/cms/config.d.ts +351 -0
- package/dist/cms/config.d.ts.map +1 -0
- package/dist/cms/config.js +50 -0
- package/dist/cms/config.js.map +1 -0
- package/dist/cms/errors.d.ts +122 -0
- package/dist/cms/errors.d.ts.map +1 -0
- package/dist/cms/errors.js +163 -0
- package/dist/cms/errors.js.map +1 -0
- package/dist/cms/extensibility.d.ts +211 -0
- package/dist/cms/extensibility.d.ts.map +1 -0
- package/dist/cms/extensibility.js +313 -0
- package/dist/cms/extensibility.js.map +1 -0
- package/dist/cms/field.d.ts +69 -0
- package/dist/cms/field.d.ts.map +1 -0
- package/dist/cms/field.js +94 -0
- package/dist/cms/field.js.map +1 -0
- package/dist/cms/functions.d.ts +466 -0
- package/dist/cms/functions.d.ts.map +1 -0
- package/dist/cms/functions.js +19 -0
- package/dist/cms/functions.js.map +1 -0
- package/dist/cms/global.d.ts +45 -0
- package/dist/cms/global.d.ts.map +1 -0
- package/dist/cms/global.js +62 -0
- package/dist/cms/global.js.map +1 -0
- package/dist/cms/index.d.ts +23 -0
- package/dist/cms/index.d.ts.map +1 -0
- package/dist/cms/index.js +42 -0
- package/dist/cms/index.js.map +1 -0
- package/dist/cms/structure.d.ts +1601 -0
- package/dist/cms/structure.d.ts.map +1 -0
- package/dist/cms/structure.js +757 -0
- package/dist/cms/structure.js.map +1 -0
- package/dist/content/index.d.ts +1542 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +522 -0
- package/dist/content/index.js.map +1 -0
- package/dist/database/bridge.d.ts +177 -0
- package/dist/database/bridge.d.ts.map +1 -0
- package/dist/database/bridge.js +139 -0
- package/dist/database/bridge.js.map +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +9 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/type-bridge.d.ts +178 -0
- package/dist/database/type-bridge.d.ts.map +1 -0
- package/dist/database/type-bridge.js +154 -0
- package/dist/database/type-bridge.js.map +1 -0
- package/dist/entities/agent-context.d.ts +280 -0
- package/dist/entities/agent-context.d.ts.map +1 -0
- package/dist/entities/agent-context.js +390 -0
- package/dist/entities/agent-context.js.map +1 -0
- package/dist/entities/agent-memory.d.ts +661 -0
- package/dist/entities/agent-memory.d.ts.map +1 -0
- package/dist/entities/agent-memory.js +544 -0
- package/dist/entities/agent-memory.js.map +1 -0
- package/dist/entities/board.d.ts +95 -0
- package/dist/entities/board.d.ts.map +1 -0
- package/dist/entities/board.js +99 -0
- package/dist/entities/board.js.map +1 -0
- package/dist/entities/code-provenance.d.ts +270 -0
- package/dist/entities/code-provenance.d.ts.map +1 -0
- package/dist/entities/code-provenance.js +339 -0
- package/dist/entities/code-provenance.js.map +1 -0
- package/dist/entities/index.d.ts +22 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +22 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/media.d.ts +485 -0
- package/dist/entities/media.d.ts.map +1 -0
- package/dist/entities/media.js +606 -0
- package/dist/entities/media.js.map +1 -0
- package/dist/entities/page-revision.d.ts +390 -0
- package/dist/entities/page-revision.d.ts.map +1 -0
- package/dist/entities/page-revision.js +406 -0
- package/dist/entities/page-revision.js.map +1 -0
- package/dist/entities/page.d.ts +2349 -0
- package/dist/entities/page.d.ts.map +1 -0
- package/dist/entities/page.js +377 -0
- package/dist/entities/page.js.map +1 -0
- package/dist/entities/post.d.ts +619 -0
- package/dist/entities/post.d.ts.map +1 -0
- package/dist/entities/post.js +555 -0
- package/dist/entities/post.js.map +1 -0
- package/dist/entities/price.d.ts +772 -0
- package/dist/entities/price.d.ts.map +1 -0
- package/dist/entities/price.js +308 -0
- package/dist/entities/price.js.map +1 -0
- package/dist/entities/product.d.ts +753 -0
- package/dist/entities/product.d.ts.map +1 -0
- package/dist/entities/product.js +307 -0
- package/dist/entities/product.js.map +1 -0
- package/dist/entities/session.d.ts +222 -0
- package/dist/entities/session.d.ts.map +1 -0
- package/dist/entities/session.js +253 -0
- package/dist/entities/session.js.map +1 -0
- package/dist/entities/site.d.ts +387 -0
- package/dist/entities/site.d.ts.map +1 -0
- package/dist/entities/site.js +348 -0
- package/dist/entities/site.js.map +1 -0
- package/dist/entities/ticket-comment.d.ts +49 -0
- package/dist/entities/ticket-comment.d.ts.map +1 -0
- package/dist/entities/ticket-comment.js +58 -0
- package/dist/entities/ticket-comment.js.map +1 -0
- package/dist/entities/ticket-label.d.ts +64 -0
- package/dist/entities/ticket-label.d.ts.map +1 -0
- package/dist/entities/ticket-label.js +77 -0
- package/dist/entities/ticket-label.js.map +1 -0
- package/dist/entities/ticket.d.ts +204 -0
- package/dist/entities/ticket.d.ts.map +1 -0
- package/dist/entities/ticket.js +205 -0
- package/dist/entities/ticket.js.map +1 -0
- package/dist/entities/user.d.ts +336 -0
- package/dist/entities/user.d.ts.map +1 -0
- package/dist/entities/user.js +255 -0
- package/dist/entities/user.js.map +1 -0
- package/dist/foundation/contract.d.ts +221 -0
- package/dist/foundation/contract.d.ts.map +1 -0
- package/dist/foundation/contract.js +133 -0
- package/dist/foundation/contract.js.map +1 -0
- package/dist/foundation/index.d.ts +7 -0
- package/dist/foundation/index.d.ts.map +1 -0
- package/dist/foundation/index.js +7 -0
- package/dist/foundation/index.js.map +1 -0
- package/dist/generated/contracts.d.ts +1514 -0
- package/dist/generated/contracts.d.ts.map +1 -0
- package/dist/generated/contracts.js +959 -0
- package/dist/generated/contracts.js.map +1 -0
- package/dist/generated/database.d.ts +48 -0
- package/dist/generated/database.d.ts.map +1 -0
- package/dist/generated/database.js +17 -0
- package/dist/generated/database.js.map +1 -0
- package/dist/generated/zod-schemas.d.ts +14793 -0
- package/dist/generated/zod-schemas.d.ts.map +1 -0
- package/dist/generated/zod-schemas.js +547 -0
- package/dist/generated/zod-schemas.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/representation/index.d.ts +304 -0
- package/dist/representation/index.d.ts.map +1 -0
- package/dist/representation/index.js +280 -0
- package/dist/representation/index.js.map +1 -0
- 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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"}
|