@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,544 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentMemory Entity Contract
|
|
3
|
+
*
|
|
4
|
+
* Manages long-term agent memories with semantic search, verification workflow,
|
|
5
|
+
* and multi-source tracking. Memories can be facts, preferences, decisions,
|
|
6
|
+
* feedback, examples, corrections, skills, or warnings.
|
|
7
|
+
*
|
|
8
|
+
* Business Rules:
|
|
9
|
+
* - Memory types: fact, preference, decision, feedback, example, correction, skill, warning
|
|
10
|
+
* - Embeddings are 1536 dimensions (OpenAI ada-002 format)
|
|
11
|
+
* - Source tracking required (conversation, user input, observation, etc.)
|
|
12
|
+
* - Access tracking for importance scoring
|
|
13
|
+
* - Verification workflow (verified, verifiedBy, verifiedAt)
|
|
14
|
+
* - Optional expiration for time-sensitive memories
|
|
15
|
+
* - Scoped to site and/or agent
|
|
16
|
+
*/
|
|
17
|
+
import { z } from 'zod/v4';
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// Constants
|
|
20
|
+
// =============================================================================
|
|
21
|
+
export const AGENT_MEMORY_SCHEMA_VERSION = 1;
|
|
22
|
+
// Memory types
|
|
23
|
+
export const MEMORY_TYPES = [
|
|
24
|
+
'fact',
|
|
25
|
+
'preference',
|
|
26
|
+
'decision',
|
|
27
|
+
'feedback',
|
|
28
|
+
'example',
|
|
29
|
+
'correction',
|
|
30
|
+
'skill',
|
|
31
|
+
'warning',
|
|
32
|
+
];
|
|
33
|
+
// Source types for memory provenance
|
|
34
|
+
export const SOURCE_TYPES = [
|
|
35
|
+
'conversation',
|
|
36
|
+
'user_input',
|
|
37
|
+
'observation',
|
|
38
|
+
'tool_use',
|
|
39
|
+
'feedback',
|
|
40
|
+
'correction',
|
|
41
|
+
'inference',
|
|
42
|
+
'import',
|
|
43
|
+
];
|
|
44
|
+
// Embedding configuration (same as AgentContext)
|
|
45
|
+
export const MEMORY_EMBEDDING_CONFIG = {
|
|
46
|
+
DIMENSIONS: 1536,
|
|
47
|
+
MIN_VALUE: -1.0,
|
|
48
|
+
MAX_VALUE: 1.0,
|
|
49
|
+
};
|
|
50
|
+
// Access tracking thresholds
|
|
51
|
+
export const ACCESS_THRESHOLDS = {
|
|
52
|
+
FREQUENTLY_ACCESSED: 10,
|
|
53
|
+
RARELY_ACCESSED: 2,
|
|
54
|
+
STALE_DAYS: 30,
|
|
55
|
+
};
|
|
56
|
+
// Importance scores
|
|
57
|
+
export const IMPORTANCE_LEVELS = {
|
|
58
|
+
CRITICAL: 1.0,
|
|
59
|
+
HIGH: 0.8,
|
|
60
|
+
MEDIUM: 0.5,
|
|
61
|
+
LOW: 0.3,
|
|
62
|
+
MINIMAL: 0.1,
|
|
63
|
+
};
|
|
64
|
+
// =============================================================================
|
|
65
|
+
// Base Schemas
|
|
66
|
+
// =============================================================================
|
|
67
|
+
/**
|
|
68
|
+
* Memory source schema with provenance tracking
|
|
69
|
+
*/
|
|
70
|
+
export const MemorySourceSchema = z.object({
|
|
71
|
+
type: z.enum(SOURCE_TYPES),
|
|
72
|
+
conversationId: z.string().optional(),
|
|
73
|
+
messageId: z.string().optional(),
|
|
74
|
+
userId: z.string().optional(),
|
|
75
|
+
timestamp: z.date().optional(),
|
|
76
|
+
context: z.record(z.string(), z.unknown()).optional(),
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* Embedding metadata schema
|
|
80
|
+
*/
|
|
81
|
+
export const EmbeddingMetadataSchema = z.object({
|
|
82
|
+
model: z.string(),
|
|
83
|
+
dimensions: z.number().int().default(MEMORY_EMBEDDING_CONFIG.DIMENSIONS),
|
|
84
|
+
generatedAt: z.date(),
|
|
85
|
+
version: z.string().optional(),
|
|
86
|
+
});
|
|
87
|
+
/**
|
|
88
|
+
* Memory metadata schema
|
|
89
|
+
*/
|
|
90
|
+
export const MemoryMetadataSchema = z.object({
|
|
91
|
+
importance: z.number().min(0).max(1).optional(),
|
|
92
|
+
tags: z.array(z.string()).optional(),
|
|
93
|
+
category: z.string().optional(),
|
|
94
|
+
confidence: z.number().min(0).max(1).optional(),
|
|
95
|
+
relatedMemories: z.array(z.string()).optional(),
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* Embedding vector schema (1536 dimensions)
|
|
99
|
+
*/
|
|
100
|
+
export const MemoryEmbeddingVectorSchema = z
|
|
101
|
+
.array(z.number())
|
|
102
|
+
.length(MEMORY_EMBEDDING_CONFIG.DIMENSIONS, `Embedding must have exactly ${MEMORY_EMBEDDING_CONFIG.DIMENSIONS} dimensions`)
|
|
103
|
+
.refine((arr) => arr.every((val) => val >= MEMORY_EMBEDDING_CONFIG.MIN_VALUE && val <= MEMORY_EMBEDDING_CONFIG.MAX_VALUE), {
|
|
104
|
+
message: `All embedding values must be between ${MEMORY_EMBEDDING_CONFIG.MIN_VALUE} and ${MEMORY_EMBEDDING_CONFIG.MAX_VALUE}`,
|
|
105
|
+
});
|
|
106
|
+
// =============================================================================
|
|
107
|
+
// Base AgentMemory Schema
|
|
108
|
+
// =============================================================================
|
|
109
|
+
/**
|
|
110
|
+
* Agent Memory object schema
|
|
111
|
+
*/
|
|
112
|
+
export const AgentMemoryObjectSchema = z.object({
|
|
113
|
+
id: z.string().min(1),
|
|
114
|
+
version: z.number().int().default(AGENT_MEMORY_SCHEMA_VERSION),
|
|
115
|
+
content: z.string().min(1, 'Memory content is required'),
|
|
116
|
+
type: z.enum(MEMORY_TYPES),
|
|
117
|
+
source: MemorySourceSchema,
|
|
118
|
+
embedding: MemoryEmbeddingVectorSchema.nullable().optional(),
|
|
119
|
+
embeddingMetadata: EmbeddingMetadataSchema.nullable().optional(),
|
|
120
|
+
metadata: MemoryMetadataSchema.default({}),
|
|
121
|
+
accessCount: z.number().int().default(0),
|
|
122
|
+
accessedAt: z.date().nullable().optional(),
|
|
123
|
+
verified: z.boolean().default(false),
|
|
124
|
+
verifiedBy: z.string().nullable().optional(),
|
|
125
|
+
verifiedAt: z.date().nullable().optional(),
|
|
126
|
+
siteId: z.string().nullable().optional(),
|
|
127
|
+
agentId: z.string().nullable().optional(),
|
|
128
|
+
createdAt: z.date(),
|
|
129
|
+
expiresAt: z.date().nullable().optional(),
|
|
130
|
+
});
|
|
131
|
+
/**
|
|
132
|
+
* Agent Memory schema with validation rules
|
|
133
|
+
*/
|
|
134
|
+
export const AgentMemoryBaseSchema = AgentMemoryObjectSchema.refine((data) => {
|
|
135
|
+
// If verified, must have verifiedBy and verifiedAt
|
|
136
|
+
if (data.verified) {
|
|
137
|
+
return data.verifiedBy !== null && data.verifiedAt !== null;
|
|
138
|
+
}
|
|
139
|
+
return true;
|
|
140
|
+
}, {
|
|
141
|
+
message: 'Verified memories must have verifiedBy and verifiedAt',
|
|
142
|
+
path: ['verified'],
|
|
143
|
+
}).refine((data) => {
|
|
144
|
+
// If expiresAt exists, it must be in the future
|
|
145
|
+
if (data.expiresAt) {
|
|
146
|
+
return data.expiresAt > new Date();
|
|
147
|
+
}
|
|
148
|
+
return true;
|
|
149
|
+
}, {
|
|
150
|
+
message: 'Memory expiration must be in the future',
|
|
151
|
+
path: ['expiresAt'],
|
|
152
|
+
});
|
|
153
|
+
export const AgentMemorySchema = AgentMemoryBaseSchema;
|
|
154
|
+
// =============================================================================
|
|
155
|
+
// Insert Schema
|
|
156
|
+
// =============================================================================
|
|
157
|
+
/**
|
|
158
|
+
* Schema for creating new agent memories
|
|
159
|
+
*/
|
|
160
|
+
export const AgentMemoryInsertSchema = AgentMemoryObjectSchema.omit({
|
|
161
|
+
createdAt: true,
|
|
162
|
+
accessCount: true,
|
|
163
|
+
accessedAt: true,
|
|
164
|
+
}).extend({
|
|
165
|
+
createdAt: z.date().optional(),
|
|
166
|
+
accessCount: z.number().int().optional(),
|
|
167
|
+
accessedAt: z.date().nullable().optional(),
|
|
168
|
+
});
|
|
169
|
+
// =============================================================================
|
|
170
|
+
// Memory Type Helpers
|
|
171
|
+
// =============================================================================
|
|
172
|
+
/**
|
|
173
|
+
* Check if memory is a fact
|
|
174
|
+
*/
|
|
175
|
+
export function isFactMemory(memory) {
|
|
176
|
+
return memory.type === 'fact';
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Check if memory is a preference
|
|
180
|
+
*/
|
|
181
|
+
export function isPreferenceMemory(memory) {
|
|
182
|
+
return memory.type === 'preference';
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Check if memory is a decision
|
|
186
|
+
*/
|
|
187
|
+
export function isDecisionMemory(memory) {
|
|
188
|
+
return memory.type === 'decision';
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Check if memory is feedback
|
|
192
|
+
*/
|
|
193
|
+
export function isFeedbackMemory(memory) {
|
|
194
|
+
return memory.type === 'feedback';
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Check if memory is a correction
|
|
198
|
+
*/
|
|
199
|
+
export function isCorrectionMemory(memory) {
|
|
200
|
+
return memory.type === 'correction';
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Check if memory is a warning
|
|
204
|
+
*/
|
|
205
|
+
export function isWarningMemory(memory) {
|
|
206
|
+
return memory.type === 'warning';
|
|
207
|
+
}
|
|
208
|
+
// =============================================================================
|
|
209
|
+
// Verification Helpers
|
|
210
|
+
// =============================================================================
|
|
211
|
+
/**
|
|
212
|
+
* Check if memory is verified
|
|
213
|
+
*/
|
|
214
|
+
export function isVerified(memory) {
|
|
215
|
+
return memory.verified === true;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check if memory needs verification
|
|
219
|
+
*/
|
|
220
|
+
export function needsVerification(memory) {
|
|
221
|
+
return !memory.verified && (memory.type === 'fact' || memory.type === 'correction');
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Create verification update
|
|
225
|
+
*/
|
|
226
|
+
export function createVerification(verifiedBy) {
|
|
227
|
+
return {
|
|
228
|
+
verified: true,
|
|
229
|
+
verifiedBy,
|
|
230
|
+
verifiedAt: new Date(),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Revoke verification
|
|
235
|
+
*/
|
|
236
|
+
export function revokeVerification() {
|
|
237
|
+
return {
|
|
238
|
+
verified: false,
|
|
239
|
+
verifiedBy: null,
|
|
240
|
+
verifiedAt: null,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
// =============================================================================
|
|
244
|
+
// Expiration Helpers
|
|
245
|
+
// =============================================================================
|
|
246
|
+
/**
|
|
247
|
+
* Check if memory is expired
|
|
248
|
+
*/
|
|
249
|
+
export function isExpired(memory) {
|
|
250
|
+
if (!memory.expiresAt)
|
|
251
|
+
return false;
|
|
252
|
+
return memory.expiresAt <= new Date();
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Check if memory is permanent (no expiration)
|
|
256
|
+
*/
|
|
257
|
+
export function isPermanent(memory) {
|
|
258
|
+
return memory.expiresAt === null || memory.expiresAt === undefined;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Calculate time until expiration in milliseconds
|
|
262
|
+
*/
|
|
263
|
+
export function getTimeUntilExpiration(memory) {
|
|
264
|
+
if (!memory.expiresAt)
|
|
265
|
+
return null;
|
|
266
|
+
const now = Date.now();
|
|
267
|
+
const expiresAt = memory.expiresAt.getTime();
|
|
268
|
+
return Math.max(0, expiresAt - now);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Check if memory is near expiration (< 24 hours)
|
|
272
|
+
*/
|
|
273
|
+
export function isNearExpiration(memory, thresholdHours = 24) {
|
|
274
|
+
const timeRemaining = getTimeUntilExpiration(memory);
|
|
275
|
+
if (timeRemaining === null)
|
|
276
|
+
return false;
|
|
277
|
+
const thresholdMs = thresholdHours * 60 * 60 * 1000;
|
|
278
|
+
return timeRemaining > 0 && timeRemaining < thresholdMs;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Create expiration date from duration in days
|
|
282
|
+
*/
|
|
283
|
+
export function createExpirationDate(daysFromNow) {
|
|
284
|
+
const now = new Date();
|
|
285
|
+
return new Date(now.getTime() + daysFromNow * 24 * 60 * 60 * 1000);
|
|
286
|
+
}
|
|
287
|
+
// =============================================================================
|
|
288
|
+
// Access Tracking Helpers
|
|
289
|
+
// =============================================================================
|
|
290
|
+
/**
|
|
291
|
+
* Check if memory is frequently accessed
|
|
292
|
+
*/
|
|
293
|
+
export function isFrequentlyAccessed(memory) {
|
|
294
|
+
return memory.accessCount >= ACCESS_THRESHOLDS.FREQUENTLY_ACCESSED;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Check if memory is rarely accessed
|
|
298
|
+
*/
|
|
299
|
+
export function isRarelyAccessed(memory) {
|
|
300
|
+
return memory.accessCount <= ACCESS_THRESHOLDS.RARELY_ACCESSED;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Check if memory is stale (not accessed recently)
|
|
304
|
+
*/
|
|
305
|
+
export function isStale(memory, thresholdDays = ACCESS_THRESHOLDS.STALE_DAYS) {
|
|
306
|
+
if (!memory.accessedAt)
|
|
307
|
+
return true;
|
|
308
|
+
const daysSinceAccess = (Date.now() - memory.accessedAt.getTime()) / (1000 * 60 * 60 * 24);
|
|
309
|
+
return daysSinceAccess > thresholdDays;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Increment access count and update timestamp
|
|
313
|
+
*/
|
|
314
|
+
export function recordAccess() {
|
|
315
|
+
return {
|
|
316
|
+
accessCount: undefined, // Will be incremented by DB
|
|
317
|
+
accessedAt: new Date(),
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Get access frequency category
|
|
322
|
+
*/
|
|
323
|
+
export function getAccessFrequency(memory) {
|
|
324
|
+
if (memory.accessCount >= ACCESS_THRESHOLDS.FREQUENTLY_ACCESSED)
|
|
325
|
+
return 'high';
|
|
326
|
+
if (memory.accessCount <= ACCESS_THRESHOLDS.RARELY_ACCESSED)
|
|
327
|
+
return 'low';
|
|
328
|
+
return 'medium';
|
|
329
|
+
}
|
|
330
|
+
// =============================================================================
|
|
331
|
+
// Importance Helpers
|
|
332
|
+
// =============================================================================
|
|
333
|
+
/**
|
|
334
|
+
* Get memory importance from metadata
|
|
335
|
+
*/
|
|
336
|
+
export function getImportance(memory) {
|
|
337
|
+
return memory.metadata?.importance ?? IMPORTANCE_LEVELS.MEDIUM;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Check if memory is critical importance
|
|
341
|
+
*/
|
|
342
|
+
export function isCriticalImportance(memory) {
|
|
343
|
+
return getImportance(memory) >= IMPORTANCE_LEVELS.CRITICAL;
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Get importance category
|
|
347
|
+
*/
|
|
348
|
+
export function getImportanceCategory(memory) {
|
|
349
|
+
const importance = getImportance(memory);
|
|
350
|
+
if (importance >= IMPORTANCE_LEVELS.CRITICAL)
|
|
351
|
+
return 'critical';
|
|
352
|
+
if (importance >= IMPORTANCE_LEVELS.HIGH)
|
|
353
|
+
return 'high';
|
|
354
|
+
if (importance >= IMPORTANCE_LEVELS.MEDIUM)
|
|
355
|
+
return 'medium';
|
|
356
|
+
return 'low';
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Calculate composite relevance score
|
|
360
|
+
*/
|
|
361
|
+
export function calculateRelevanceScore(memory) {
|
|
362
|
+
const importance = getImportance(memory);
|
|
363
|
+
const accessFactor = Math.min(memory.accessCount / 100, 1.0) * 0.3;
|
|
364
|
+
const verificationBonus = memory.verified ? 0.2 : 0;
|
|
365
|
+
const stalePenalty = isStale(memory) ? -0.2 : 0;
|
|
366
|
+
return Math.max(0, Math.min(1, importance + accessFactor + verificationBonus + stalePenalty));
|
|
367
|
+
}
|
|
368
|
+
// =============================================================================
|
|
369
|
+
// Embedding Validation
|
|
370
|
+
// =============================================================================
|
|
371
|
+
/**
|
|
372
|
+
* Check if memory has valid embedding
|
|
373
|
+
*/
|
|
374
|
+
export function hasValidEmbedding(memory) {
|
|
375
|
+
if (!memory.embedding)
|
|
376
|
+
return false;
|
|
377
|
+
return (memory.embedding.length === MEMORY_EMBEDDING_CONFIG.DIMENSIONS &&
|
|
378
|
+
memory.embedding.every((val) => val >= MEMORY_EMBEDDING_CONFIG.MIN_VALUE && val <= MEMORY_EMBEDDING_CONFIG.MAX_VALUE));
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Check if memory has embedding metadata
|
|
382
|
+
*/
|
|
383
|
+
export function hasEmbeddingMetadata(memory) {
|
|
384
|
+
return memory.embeddingMetadata !== null && memory.embeddingMetadata !== undefined;
|
|
385
|
+
}
|
|
386
|
+
// =============================================================================
|
|
387
|
+
// Scope Helpers
|
|
388
|
+
// =============================================================================
|
|
389
|
+
/**
|
|
390
|
+
* Check if memory is scoped to a site
|
|
391
|
+
*/
|
|
392
|
+
export function isSiteScoped(memory) {
|
|
393
|
+
return memory.siteId !== null && memory.siteId !== undefined;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Check if memory is scoped to an agent
|
|
397
|
+
*/
|
|
398
|
+
export function isAgentScoped(memory) {
|
|
399
|
+
return memory.agentId !== null && memory.agentId !== undefined;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Check if memory is global (not scoped)
|
|
403
|
+
*/
|
|
404
|
+
export function isGlobalMemory(memory) {
|
|
405
|
+
return !(isSiteScoped(memory) || isAgentScoped(memory));
|
|
406
|
+
}
|
|
407
|
+
// =============================================================================
|
|
408
|
+
// Memory Creation
|
|
409
|
+
// =============================================================================
|
|
410
|
+
/**
|
|
411
|
+
* Create agent memory insert data
|
|
412
|
+
*/
|
|
413
|
+
export function createAgentMemoryInsert(content, type, source, options) {
|
|
414
|
+
const now = new Date();
|
|
415
|
+
return {
|
|
416
|
+
id: options?.id ?? crypto.randomUUID(),
|
|
417
|
+
version: AGENT_MEMORY_SCHEMA_VERSION,
|
|
418
|
+
content,
|
|
419
|
+
type,
|
|
420
|
+
source,
|
|
421
|
+
embedding: options?.embedding ?? null,
|
|
422
|
+
embeddingMetadata: options?.embeddingMetadata ?? null,
|
|
423
|
+
metadata: options?.metadata ?? {},
|
|
424
|
+
verified: false,
|
|
425
|
+
verifiedBy: null,
|
|
426
|
+
verifiedAt: null,
|
|
427
|
+
siteId: options?.siteId ?? null,
|
|
428
|
+
agentId: options?.agentId ?? null,
|
|
429
|
+
createdAt: now,
|
|
430
|
+
expiresAt: options?.expiresAt ?? null,
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Update memory with new data
|
|
435
|
+
*/
|
|
436
|
+
export function updateAgentMemory(updates) {
|
|
437
|
+
const result = {};
|
|
438
|
+
if (updates.content !== undefined) {
|
|
439
|
+
result.content = updates.content;
|
|
440
|
+
}
|
|
441
|
+
if (updates.metadata !== undefined) {
|
|
442
|
+
result.metadata = updates.metadata;
|
|
443
|
+
}
|
|
444
|
+
if (updates.embedding !== undefined) {
|
|
445
|
+
result.embedding = updates.embedding;
|
|
446
|
+
}
|
|
447
|
+
if (updates.embeddingMetadata !== undefined) {
|
|
448
|
+
result.embeddingMetadata = updates.embeddingMetadata;
|
|
449
|
+
}
|
|
450
|
+
if (updates.expiresAt !== undefined) {
|
|
451
|
+
result.expiresAt = updates.expiresAt;
|
|
452
|
+
}
|
|
453
|
+
return result;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Convert agent memory to format with computed fields
|
|
457
|
+
*/
|
|
458
|
+
export function agentMemoryToHuman(memory) {
|
|
459
|
+
return {
|
|
460
|
+
...memory,
|
|
461
|
+
_computed: {
|
|
462
|
+
isExpired: isExpired(memory),
|
|
463
|
+
isPermanent: isPermanent(memory),
|
|
464
|
+
isVerified: isVerified(memory),
|
|
465
|
+
needsVerification: needsVerification(memory),
|
|
466
|
+
hasEmbedding: memory.embedding !== null && memory.embedding !== undefined,
|
|
467
|
+
embeddingValid: hasValidEmbedding(memory),
|
|
468
|
+
accessFrequency: getAccessFrequency(memory),
|
|
469
|
+
isStale: isStale(memory),
|
|
470
|
+
importance: getImportance(memory),
|
|
471
|
+
importanceCategory: getImportanceCategory(memory),
|
|
472
|
+
relevanceScore: calculateRelevanceScore(memory),
|
|
473
|
+
timeUntilExpiration: getTimeUntilExpiration(memory),
|
|
474
|
+
isSiteScoped: isSiteScoped(memory),
|
|
475
|
+
isAgentScoped: isAgentScoped(memory),
|
|
476
|
+
isGlobal: isGlobalMemory(memory),
|
|
477
|
+
},
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Convert agent memory to agent-compatible format
|
|
482
|
+
*/
|
|
483
|
+
export function agentMemoryToAgent(memory) {
|
|
484
|
+
let scope;
|
|
485
|
+
if (isSiteScoped(memory))
|
|
486
|
+
scope = 'site';
|
|
487
|
+
else if (isAgentScoped(memory))
|
|
488
|
+
scope = 'agent';
|
|
489
|
+
else
|
|
490
|
+
scope = 'global';
|
|
491
|
+
return {
|
|
492
|
+
...memory,
|
|
493
|
+
agentMetadata: {
|
|
494
|
+
expired: isExpired(memory),
|
|
495
|
+
permanent: isPermanent(memory),
|
|
496
|
+
verified: isVerified(memory),
|
|
497
|
+
embeddingPresent: memory.embedding !== null && memory.embedding !== undefined,
|
|
498
|
+
embeddingDimensions: memory.embedding?.length ?? null,
|
|
499
|
+
accessCount: memory.accessCount,
|
|
500
|
+
lastAccessed: memory.accessedAt ?? null,
|
|
501
|
+
relevanceScore: calculateRelevanceScore(memory),
|
|
502
|
+
scope,
|
|
503
|
+
},
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* Zod schema for agent memory with computed fields
|
|
508
|
+
*/
|
|
509
|
+
export const AgentMemoryWithComputedSchema = AgentMemorySchema.and(z.object({
|
|
510
|
+
_computed: z.object({
|
|
511
|
+
isExpired: z.boolean(),
|
|
512
|
+
isPermanent: z.boolean(),
|
|
513
|
+
isVerified: z.boolean(),
|
|
514
|
+
needsVerification: z.boolean(),
|
|
515
|
+
hasEmbedding: z.boolean(),
|
|
516
|
+
embeddingValid: z.boolean(),
|
|
517
|
+
accessFrequency: z.enum(['high', 'medium', 'low']),
|
|
518
|
+
isStale: z.boolean(),
|
|
519
|
+
importance: z.number(),
|
|
520
|
+
importanceCategory: z.enum(['critical', 'high', 'medium', 'low']),
|
|
521
|
+
relevanceScore: z.number(),
|
|
522
|
+
timeUntilExpiration: z.number().nullable(),
|
|
523
|
+
isSiteScoped: z.boolean(),
|
|
524
|
+
isAgentScoped: z.boolean(),
|
|
525
|
+
isGlobal: z.boolean(),
|
|
526
|
+
}),
|
|
527
|
+
}));
|
|
528
|
+
/**
|
|
529
|
+
* Zod schema for agent memory with agent metadata
|
|
530
|
+
*/
|
|
531
|
+
export const AgentMemoryAgentSchema = AgentMemorySchema.and(z.object({
|
|
532
|
+
agentMetadata: z.object({
|
|
533
|
+
expired: z.boolean(),
|
|
534
|
+
permanent: z.boolean(),
|
|
535
|
+
verified: z.boolean(),
|
|
536
|
+
embeddingPresent: z.boolean(),
|
|
537
|
+
embeddingDimensions: z.number().int().nullable(),
|
|
538
|
+
accessCount: z.number().int(),
|
|
539
|
+
lastAccessed: z.date().nullable(),
|
|
540
|
+
relevanceScore: z.number(),
|
|
541
|
+
scope: z.enum(['site', 'agent', 'global']),
|
|
542
|
+
}),
|
|
543
|
+
}));
|
|
544
|
+
//# sourceMappingURL=agent-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-memory.js","sourceRoot":"","sources":["../../src/entities/agent-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Board Entity Contract
|
|
3
|
+
*
|
|
4
|
+
* Kanban board that contains tickets organized into columns.
|
|
5
|
+
*
|
|
6
|
+
* Business Rules:
|
|
7
|
+
* - Board slug must be unique per tenant
|
|
8
|
+
* - One board per tenant may be marked isDefault
|
|
9
|
+
* - Creating a board auto-creates default columns (Backlog, To Do, In Progress, Review, Done)
|
|
10
|
+
* - Deleting a board cascades to columns and tickets
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod/v4';
|
|
13
|
+
export declare const BOARD_SCHEMA_VERSION = 1;
|
|
14
|
+
export declare const DEFAULT_COLUMN_SLUGS: readonly ["backlog", "todo", "in-progress", "review", "done"];
|
|
15
|
+
export declare const BOARD_LIMITS: {
|
|
16
|
+
readonly MIN_NAME_LENGTH: 1;
|
|
17
|
+
readonly MAX_NAME_LENGTH: 200;
|
|
18
|
+
readonly MIN_SLUG_LENGTH: 1;
|
|
19
|
+
readonly MAX_SLUG_LENGTH: 200;
|
|
20
|
+
readonly MAX_DESCRIPTION_LENGTH: 1000;
|
|
21
|
+
readonly MAX_COLUMNS: 20;
|
|
22
|
+
};
|
|
23
|
+
export declare const BoardObjectSchema: z.ZodObject<{
|
|
24
|
+
id: z.ZodString;
|
|
25
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
26
|
+
name: z.ZodString;
|
|
27
|
+
slug: z.ZodString;
|
|
28
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
29
|
+
ownerId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
|
+
tenantId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
31
|
+
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
32
|
+
createdAt: z.ZodDate;
|
|
33
|
+
updatedAt: z.ZodDate;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
export declare const BoardSchema: z.ZodObject<{
|
|
36
|
+
id: z.ZodString;
|
|
37
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
38
|
+
name: z.ZodString;
|
|
39
|
+
slug: z.ZodString;
|
|
40
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
|
+
ownerId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
42
|
+
tenantId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
43
|
+
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
44
|
+
createdAt: z.ZodDate;
|
|
45
|
+
updatedAt: z.ZodDate;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export type Board = z.infer<typeof BoardSchema>;
|
|
48
|
+
export declare const BoardInsertSchema: z.ZodObject<{
|
|
49
|
+
name: z.ZodString;
|
|
50
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
51
|
+
id: z.ZodString;
|
|
52
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
53
|
+
slug: z.ZodString;
|
|
54
|
+
ownerId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
55
|
+
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
56
|
+
tenantId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
57
|
+
createdAt: z.ZodOptional<z.ZodDate>;
|
|
58
|
+
updatedAt: z.ZodOptional<z.ZodDate>;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
export type BoardInsert = z.infer<typeof BoardInsertSchema>;
|
|
61
|
+
export declare const BoardColumnObjectSchema: z.ZodObject<{
|
|
62
|
+
id: z.ZodString;
|
|
63
|
+
boardId: z.ZodString;
|
|
64
|
+
name: z.ZodString;
|
|
65
|
+
slug: z.ZodString;
|
|
66
|
+
position: z.ZodNumber;
|
|
67
|
+
wipLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
68
|
+
color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
69
|
+
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
70
|
+
createdAt: z.ZodDate;
|
|
71
|
+
updatedAt: z.ZodDate;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
export declare const BoardColumnSchema: z.ZodObject<{
|
|
74
|
+
id: z.ZodString;
|
|
75
|
+
boardId: z.ZodString;
|
|
76
|
+
name: z.ZodString;
|
|
77
|
+
slug: z.ZodString;
|
|
78
|
+
position: z.ZodNumber;
|
|
79
|
+
wipLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
80
|
+
color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
81
|
+
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
82
|
+
createdAt: z.ZodDate;
|
|
83
|
+
updatedAt: z.ZodDate;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
export type BoardColumn = z.infer<typeof BoardColumnSchema>;
|
|
86
|
+
export declare function generateSlug(name: string): string;
|
|
87
|
+
export declare function isValidSlug(slug: string): boolean;
|
|
88
|
+
export declare function createBoardInsert(name: string, slug: string, options?: {
|
|
89
|
+
id?: string;
|
|
90
|
+
description?: string;
|
|
91
|
+
ownerId?: string;
|
|
92
|
+
tenantId?: string;
|
|
93
|
+
isDefault?: boolean;
|
|
94
|
+
}): BoardInsert;
|
|
95
|
+
//# sourceMappingURL=board.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/entities/board.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAM1B,eAAO,MAAM,oBAAoB,IAAI,CAAA;AAErC,eAAO,MAAM,oBAAoB,+DAAgE,CAAA;AAEjG,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAA;AAMV,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAe5B,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;iBAAoB,CAAA;AAC5C,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/C,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAM5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAM3D,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAWlC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAA0B,CAAA;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAM3D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,GACA,WAAW,CAcb"}
|