@revealui/ai 0.2.9 → 0.3.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/dist/ingestion/admin-indexer.js +1 -1
- package/dist/ingestion/pipeline.d.ts +1 -1
- package/dist/ingestion/pipeline.d.ts.map +1 -1
- package/dist/llm/client.d.ts +0 -6
- package/dist/llm/client.d.ts.map +1 -1
- package/dist/llm/client.js +0 -36
- package/dist/memory/crdt/lww-register.js +1 -1
- package/dist/memory/preferences/user-preferences-manager.d.ts.map +1 -1
- package/dist/memory/preferences/user-preferences-manager.js +1 -1
- package/dist/memory/stores/working-memory.d.ts.map +1 -1
- package/dist/memory/stores/working-memory.js +1 -1
- package/dist/memory/utils/index.d.ts +1 -2
- package/dist/memory/utils/index.d.ts.map +1 -1
- package/dist/memory/utils/index.js +1 -2
- package/dist/memory/utils/sql-helpers.d.ts +0 -39
- package/dist/memory/utils/sql-helpers.d.ts.map +1 -1
- package/dist/memory/utils/sql-helpers.js +0 -88
- package/dist/skills/catalog/vercel-catalog.d.ts.map +1 -1
- package/dist/skills/catalog/vercel-catalog.js +13 -7
- package/package.json +30 -6
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import type { Database } from '@revealui/db/client';
|
|
8
8
|
export interface IngestRequest {
|
|
9
9
|
workspaceId: string;
|
|
10
|
-
sourceType: '
|
|
10
|
+
sourceType: 'admin_collection' | 'url' | 'file' | 'text';
|
|
11
11
|
sourceId?: string;
|
|
12
12
|
sourceCollection?: string;
|
|
13
13
|
title?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/ingestion/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/ingestion/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAOtF,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA6EjD,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAa3D,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;CAiBjB"}
|
package/dist/llm/client.d.ts
CHANGED
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Single interface for all LLM providers with fallback and rate limiting
|
|
5
5
|
*/
|
|
6
|
-
/**
|
|
7
|
-
* Redact sensitive fields before passing an object to a logger.
|
|
8
|
-
* Replaces API keys, tokens, and authorization headers with `[REDACTED]`.
|
|
9
|
-
* Recurses into nested plain objects; leaves arrays and primitives as-is.
|
|
10
|
-
*/
|
|
11
|
-
export declare function redactSensitiveFields(obj: Record<string, unknown>): Record<string, unknown>;
|
|
12
6
|
import type { Database } from '@revealui/db/client';
|
|
13
7
|
import type { AuditStore } from '../audit/store.js';
|
|
14
8
|
import type { ProviderHealthMonitor } from './provider-health.js';
|
package/dist/llm/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/client.js
CHANGED
|
@@ -3,42 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Single interface for all LLM providers with fallback and rate limiting
|
|
5
5
|
*/
|
|
6
|
-
// =============================================================================
|
|
7
|
-
// Log redaction
|
|
8
|
-
// =============================================================================
|
|
9
|
-
const SENSITIVE_KEYS = new Set([
|
|
10
|
-
'apiKey',
|
|
11
|
-
'api_key',
|
|
12
|
-
'authorization',
|
|
13
|
-
'Authorization',
|
|
14
|
-
'x-ai-api-key',
|
|
15
|
-
'X-AI-Api-Key',
|
|
16
|
-
'token',
|
|
17
|
-
'secret',
|
|
18
|
-
'password',
|
|
19
|
-
'encryptedKey',
|
|
20
|
-
'encrypted_key',
|
|
21
|
-
]);
|
|
22
|
-
/**
|
|
23
|
-
* Redact sensitive fields before passing an object to a logger.
|
|
24
|
-
* Replaces API keys, tokens, and authorization headers with `[REDACTED]`.
|
|
25
|
-
* Recurses into nested plain objects; leaves arrays and primitives as-is.
|
|
26
|
-
*/
|
|
27
|
-
export function redactSensitiveFields(obj) {
|
|
28
|
-
const result = {};
|
|
29
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
30
|
-
if (SENSITIVE_KEYS.has(key)) {
|
|
31
|
-
result[key] = '[REDACTED]';
|
|
32
|
-
}
|
|
33
|
-
else if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
34
|
-
result[key] = redactSensitiveFields(value);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
result[key] = value;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
6
|
import { decryptApiKey } from '@revealui/db/crypto';
|
|
43
7
|
import { tenantProviderConfigs, userApiKeys } from '@revealui/db/schema';
|
|
44
8
|
import { and, eq } from 'drizzle-orm';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-preferences-manager.d.ts","sourceRoot":"","sources":["../../../src/memory/preferences/user-preferences-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"user-preferences-manager.d.ts","sourceRoot":"","sources":["../../../src/memory/preferences/user-preferences-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc5E;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAAkD;IAEhE;;;;;;OAMG;gBACS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAcxD;;;;OAIG;IACH,cAAc,IAAI,eAAe;IAIjC;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAsB1D;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAUlD;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAkBnC;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAyChD;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB;IAM5D;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoF3B;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+E3B;;;;OAIG;IACH,MAAM,IAAI,eAAe,CAAC,eAAe,CAAC;IAI1C;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,QAAQ,GACX,sBAAsB;IAMzB;;;;OAIG;IACH,KAAK,IAAI,sBAAsB;IAI/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,SAAS,IAAI,MAAM;CAGpB"}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { UserPreferencesSchema } from '@revealui/contracts/entities';
|
|
8
8
|
import { createLogger } from '@revealui/core/observability/logger';
|
|
9
|
+
import { deepClone } from '@revealui/core/utils/deep-clone';
|
|
9
10
|
import { users } from '@revealui/db/schema';
|
|
10
11
|
import { eq } from 'drizzle-orm';
|
|
11
12
|
import { LWWRegister } from '../crdt/lww-register.js';
|
|
12
13
|
import { DatabaseConnectionError, DatabaseConstraintError, DatabaseOperationError, NotFoundError, ValidationError, } from '../errors/index.js';
|
|
13
|
-
import { deepClone } from '../utils/deep-clone.js';
|
|
14
14
|
import { findUserById } from '../utils/sql-helpers.js';
|
|
15
15
|
// =============================================================================
|
|
16
16
|
// User Preferences Manager
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"working-memory.d.ts","sourceRoot":"","sources":["../../../src/memory/stores/working-memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"working-memory.d.ts","sourceRoot":"","sources":["../../../src/memory/stores/working-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
* - Active Agents: ORSet for collection of active agent configurations
|
|
9
9
|
* - Session State: LWWRegister for session metadata
|
|
10
10
|
*/
|
|
11
|
+
import { deepClone } from '@revealui/core/utils/deep-clone';
|
|
11
12
|
import { LWWRegister } from '../crdt/lww-register.js';
|
|
12
13
|
import { ORSet } from '../crdt/or-set.js';
|
|
13
|
-
import { deepClone } from '../utils/deep-clone.js';
|
|
14
14
|
// =============================================================================
|
|
15
15
|
// Working Memory
|
|
16
16
|
// =============================================================================
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utility functions
|
|
3
3
|
*/
|
|
4
|
-
export {
|
|
5
|
-
export { findAgentContextById, findAgentMemoriesByUserId, findAgentMemoryById, findNodeIdMappingByEntity, findNodeIdMappingByHash, findUserById, } from './sql-helpers.js';
|
|
4
|
+
export { findAgentContextById, findNodeIdMappingByEntity, findNodeIdMappingByHash, findUserById, } from './sql-helpers.js';
|
|
6
5
|
export { estimateObjectSize, hasCircularReference, validateContext, validateContextKey, validateContextSize, validateContextValue, validateObjectDepth, } from './validation.js';
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utility functions
|
|
3
3
|
*/
|
|
4
|
-
export {
|
|
5
|
-
export { findAgentContextById, findAgentMemoriesByUserId, findAgentMemoryById, findNodeIdMappingByEntity, findNodeIdMappingByHash, findUserById, } from './sql-helpers.js';
|
|
4
|
+
export { findAgentContextById, findNodeIdMappingByEntity, findNodeIdMappingByHash, findUserById, } from './sql-helpers.js';
|
|
6
5
|
export { estimateObjectSize, hasCircularReference, validateContext, validateContextKey, validateContextSize, validateContextValue, validateObjectDepth, } from './validation.js';
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* These helpers use Drizzle's sql tagged template for type safety and
|
|
8
8
|
* SQL injection prevention.
|
|
9
9
|
*/
|
|
10
|
-
import type { AgentMemory } from '@revealui/contracts/agents';
|
|
11
10
|
import type { NodeIdMappingsRow } from '@revealui/contracts/generated';
|
|
12
11
|
import type { Database } from '@revealui/db/client';
|
|
13
12
|
/**
|
|
@@ -27,44 +26,6 @@ export declare function findNodeIdMappingByHash(db: Database, hash: string): Pro
|
|
|
27
26
|
* @returns Node ID mapping or undefined if not found
|
|
28
27
|
*/
|
|
29
28
|
export declare function findNodeIdMappingByEntity(db: Database, entityType: 'session' | 'user', entityId: string): Promise<NodeIdMappingsRow | undefined>;
|
|
30
|
-
/**
|
|
31
|
-
* Finds an agent memory by ID (returns raw database record format).
|
|
32
|
-
*
|
|
33
|
-
* @deprecated Use VectorMemoryService.getById() instead. This function queries
|
|
34
|
-
* agent_memories which is now in the vector database (Supabase), not REST database.
|
|
35
|
-
* If you need to query memories, use VectorMemoryService which uses the correct database.
|
|
36
|
-
*
|
|
37
|
-
* @param db - Database client (NOTE: Should be vector client, but type doesn't enforce this)
|
|
38
|
-
* @param memoryId - Memory identifier
|
|
39
|
-
* @returns Raw database memory record or undefined if not found
|
|
40
|
-
*/
|
|
41
|
-
export declare function findAgentMemoryById(db: Database, memoryId: string): Promise<{
|
|
42
|
-
id: string;
|
|
43
|
-
version: number;
|
|
44
|
-
content: string;
|
|
45
|
-
type: string;
|
|
46
|
-
source: unknown;
|
|
47
|
-
embedding: number[] | null;
|
|
48
|
-
embeddingMetadata: unknown;
|
|
49
|
-
metadata: unknown;
|
|
50
|
-
accessCount: number | null;
|
|
51
|
-
accessedAt: Date | null;
|
|
52
|
-
verified: boolean | null;
|
|
53
|
-
createdAt: Date;
|
|
54
|
-
expiresAt: Date | null;
|
|
55
|
-
} | undefined>;
|
|
56
|
-
/**
|
|
57
|
-
* Finds agent memories by user ID.
|
|
58
|
-
*
|
|
59
|
-
* @deprecated Use VectorMemoryService.searchSimilar() or VectorMemoryService with filters instead.
|
|
60
|
-
* This function queries agent_memories which is now in the vector database (Supabase).
|
|
61
|
-
* If you need to query memories, use VectorMemoryService which uses the correct database.
|
|
62
|
-
*
|
|
63
|
-
* @param db - Database client (NOTE: Should be vector client, but type doesn't enforce this)
|
|
64
|
-
* @param userId - User identifier
|
|
65
|
-
* @returns Array of agent memories
|
|
66
|
-
*/
|
|
67
|
-
export declare function findAgentMemoriesByUserId(db: Database, userId: string): Promise<AgentMemory[]>;
|
|
68
29
|
/**
|
|
69
30
|
* Finds an agent context by CRDT ID (returns raw database record format).
|
|
70
31
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-helpers.d.ts","sourceRoot":"","sources":["../../../src/memory/utils/sql-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sql-helpers.d.ts","sourceRoot":"","sources":["../../../src/memory/utils/sql-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA8BpD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA8BxC;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,SAAS,GAAG,MAAM,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA6BxC;AAMD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CACN;IACE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,GACD,SAAS,CACZ,CAwBA;AAMD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC,CAU3D"}
|
|
@@ -75,94 +75,6 @@ export async function findNodeIdMappingByEntity(db, entityType, entityId) {
|
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
77
|
// =============================================================================
|
|
78
|
-
// Agent Memories Queries
|
|
79
|
-
// =============================================================================
|
|
80
|
-
/**
|
|
81
|
-
* Finds an agent memory by ID (returns raw database record format).
|
|
82
|
-
*
|
|
83
|
-
* @deprecated Use VectorMemoryService.getById() instead. This function queries
|
|
84
|
-
* agent_memories which is now in the vector database (Supabase), not REST database.
|
|
85
|
-
* If you need to query memories, use VectorMemoryService which uses the correct database.
|
|
86
|
-
*
|
|
87
|
-
* @param db - Database client (NOTE: Should be vector client, but type doesn't enforce this)
|
|
88
|
-
* @param memoryId - Memory identifier
|
|
89
|
-
* @returns Raw database memory record or undefined if not found
|
|
90
|
-
*/
|
|
91
|
-
export async function findAgentMemoryById(db, memoryId) {
|
|
92
|
-
// NOTE: This queries agent_memories which is in vector database
|
|
93
|
-
// Using raw SQL so it works, but caller must use vector client
|
|
94
|
-
const result = await db.execute(sql `SELECT id, version, content, type, source, embedding, embedding_metadata,
|
|
95
|
-
metadata, access_count, accessed_at, verified, verified_by,
|
|
96
|
-
verified_at, site_id, agent_id, created_at, expires_at
|
|
97
|
-
FROM agent_memories
|
|
98
|
-
WHERE id = ${memoryId}
|
|
99
|
-
LIMIT 1`);
|
|
100
|
-
const rows = getRows(result);
|
|
101
|
-
if (!rows[0])
|
|
102
|
-
return undefined;
|
|
103
|
-
const row = rows[0];
|
|
104
|
-
return {
|
|
105
|
-
id: row.id,
|
|
106
|
-
version: row.version || 1,
|
|
107
|
-
content: row.content,
|
|
108
|
-
type: row.type,
|
|
109
|
-
source: row.source,
|
|
110
|
-
embedding: row.embedding,
|
|
111
|
-
embeddingMetadata: row.embedding_metadata,
|
|
112
|
-
metadata: row.metadata,
|
|
113
|
-
accessCount: row.access_count,
|
|
114
|
-
accessedAt: row.accessed_at,
|
|
115
|
-
verified: row.verified,
|
|
116
|
-
createdAt: row.created_at,
|
|
117
|
-
expiresAt: row.expires_at,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Finds agent memories by user ID.
|
|
122
|
-
*
|
|
123
|
-
* @deprecated Use VectorMemoryService.searchSimilar() or VectorMemoryService with filters instead.
|
|
124
|
-
* This function queries agent_memories which is now in the vector database (Supabase).
|
|
125
|
-
* If you need to query memories, use VectorMemoryService which uses the correct database.
|
|
126
|
-
*
|
|
127
|
-
* @param db - Database client (NOTE: Should be vector client, but type doesn't enforce this)
|
|
128
|
-
* @param userId - User identifier
|
|
129
|
-
* @returns Array of agent memories
|
|
130
|
-
*/
|
|
131
|
-
export async function findAgentMemoriesByUserId(db, userId) {
|
|
132
|
-
const result = await db.execute(sql `SELECT id, version, content, type, source, embedding, embedding_metadata,
|
|
133
|
-
metadata, access_count, accessed_at, verified, verified_by,
|
|
134
|
-
verified_at, site_id, agent_id, created_at, expires_at
|
|
135
|
-
FROM agent_memories
|
|
136
|
-
WHERE (source->>'id')::text = ${userId}
|
|
137
|
-
ORDER BY created_at DESC`);
|
|
138
|
-
const rows = getRows(result);
|
|
139
|
-
return rows.map((row) => {
|
|
140
|
-
const record = row;
|
|
141
|
-
const metadata = record.embedding_metadata;
|
|
142
|
-
return {
|
|
143
|
-
id: record.id,
|
|
144
|
-
version: record.version || 1,
|
|
145
|
-
content: record.content,
|
|
146
|
-
type: record.type,
|
|
147
|
-
source: record.source,
|
|
148
|
-
embedding: metadata
|
|
149
|
-
? {
|
|
150
|
-
model: metadata.model,
|
|
151
|
-
vector: record.embedding || metadata.vector,
|
|
152
|
-
dimension: metadata.dimension,
|
|
153
|
-
generatedAt: metadata.generatedAt,
|
|
154
|
-
}
|
|
155
|
-
: undefined,
|
|
156
|
-
metadata: (record.metadata || {}),
|
|
157
|
-
accessedAt: record.accessed_at?.toISOString() || new Date().toISOString(),
|
|
158
|
-
accessCount: record.access_count || 0,
|
|
159
|
-
verified: record.verified ?? false,
|
|
160
|
-
createdAt: record.created_at,
|
|
161
|
-
expiresAt: record.expires_at,
|
|
162
|
-
};
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
// =============================================================================
|
|
166
78
|
// Agent Contexts Queries
|
|
167
79
|
// =============================================================================
|
|
168
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel-catalog.d.ts","sourceRoot":"","sources":["../../../src/skills/catalog/vercel-catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAmB,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAiBD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgC3F;
|
|
1
|
+
{"version":3,"file":"vercel-catalog.d.ts","sourceRoot":"","sources":["../../../src/skills/catalog/vercel-catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAmB,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAiBD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgC3F;AAuHD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,SAAK,EACV,MAAM,GAAE,aAAkB,GACzB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAO/B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAKzD"}
|
|
@@ -64,19 +64,25 @@ export async function fetchVercelCatalog(config = {}) {
|
|
|
64
64
|
* Load catalog from cache if valid.
|
|
65
65
|
*/
|
|
66
66
|
function loadFromCache(cachePath, ttl) {
|
|
67
|
-
|
|
68
|
-
let content;
|
|
67
|
+
let fd;
|
|
69
68
|
try {
|
|
70
|
-
|
|
69
|
+
fd = fs.openSync(cachePath, 'r');
|
|
71
70
|
}
|
|
72
71
|
catch {
|
|
73
72
|
return null;
|
|
74
73
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
try {
|
|
75
|
+
const stat = fs.fstatSync(fd);
|
|
76
|
+
const age = Date.now() - stat.mtimeMs;
|
|
77
|
+
if (age > ttl) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
const content = fs.readFileSync(fd, 'utf-8');
|
|
81
|
+
return JSON.parse(content);
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
fs.closeSync(fd);
|
|
78
85
|
}
|
|
79
|
-
return JSON.parse(content);
|
|
80
86
|
}
|
|
81
87
|
/**
|
|
82
88
|
* Save catalog to cache.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@revealui/ai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "[Pro] AI system for RevealUI - memory, LLM, orchestration, and tools",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
},
|
|
24
24
|
"license": "FSL-1.1-MIT",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"lru-cache": "^11.3.
|
|
26
|
+
"lru-cache": "^11.3.5",
|
|
27
27
|
"zod": "^4.3.6",
|
|
28
|
-
"@revealui/contracts": "1.
|
|
29
|
-
"@revealui/core": "0.
|
|
30
|
-
"@revealui/db": "0.
|
|
28
|
+
"@revealui/contracts": "1.4.0",
|
|
29
|
+
"@revealui/core": "0.6.0",
|
|
30
|
+
"@revealui/db": "0.4.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@testing-library/react": "^16.3.2",
|
|
34
34
|
"@vitest/coverage-v8": "^4.1.3",
|
|
35
|
-
"jsdom": "29.0.
|
|
35
|
+
"jsdom": "29.0.2",
|
|
36
36
|
"react": "^19.2.5",
|
|
37
37
|
"react-dom": "^19.2.5",
|
|
38
38
|
"typescript": "^6.0.2",
|
|
@@ -47,6 +47,10 @@
|
|
|
47
47
|
"types": "./dist/index.d.ts",
|
|
48
48
|
"import": "./dist/index.js"
|
|
49
49
|
},
|
|
50
|
+
"./a2a": {
|
|
51
|
+
"types": "./dist/a2a/index.d.ts",
|
|
52
|
+
"import": "./dist/a2a/index.js"
|
|
53
|
+
},
|
|
50
54
|
"./memory": {
|
|
51
55
|
"types": "./dist/memory/index.d.ts",
|
|
52
56
|
"import": "./dist/memory/index.js"
|
|
@@ -83,6 +87,14 @@
|
|
|
83
87
|
"types": "./dist/skills/index.d.ts",
|
|
84
88
|
"import": "./dist/skills/index.js"
|
|
85
89
|
},
|
|
90
|
+
"./skills/registry": {
|
|
91
|
+
"types": "./dist/skills/registry/index.d.ts",
|
|
92
|
+
"import": "./dist/skills/registry/index.js"
|
|
93
|
+
},
|
|
94
|
+
"./llm/cache-utils": {
|
|
95
|
+
"types": "./dist/llm/cache-utils.d.ts",
|
|
96
|
+
"import": "./dist/llm/cache-utils.js"
|
|
97
|
+
},
|
|
86
98
|
"./llm/client": {
|
|
87
99
|
"types": "./dist/llm/client.d.ts",
|
|
88
100
|
"import": "./dist/llm/client.js"
|
|
@@ -99,6 +111,14 @@
|
|
|
99
111
|
"types": "./dist/llm/providers/base.d.ts",
|
|
100
112
|
"import": "./dist/llm/providers/base.js"
|
|
101
113
|
},
|
|
114
|
+
"./llm/response-cache": {
|
|
115
|
+
"types": "./dist/llm/response-cache.d.ts",
|
|
116
|
+
"import": "./dist/llm/response-cache.js"
|
|
117
|
+
},
|
|
118
|
+
"./llm/semantic-cache": {
|
|
119
|
+
"types": "./dist/llm/semantic-cache.d.ts",
|
|
120
|
+
"import": "./dist/llm/semantic-cache.js"
|
|
121
|
+
},
|
|
102
122
|
"./tools/admin": {
|
|
103
123
|
"types": "./dist/tools/admin/index.d.ts",
|
|
104
124
|
"import": "./dist/tools/admin/index.js"
|
|
@@ -111,6 +131,10 @@
|
|
|
111
131
|
"types": "./dist/ingestion/index.d.ts",
|
|
112
132
|
"import": "./dist/ingestion/index.js"
|
|
113
133
|
},
|
|
134
|
+
"./orchestration/runtime": {
|
|
135
|
+
"types": "./dist/orchestration/runtime.d.ts",
|
|
136
|
+
"import": "./dist/orchestration/runtime.js"
|
|
137
|
+
},
|
|
114
138
|
"./orchestration/streaming-runtime": {
|
|
115
139
|
"types": "./dist/orchestration/streaming-runtime.d.ts",
|
|
116
140
|
"import": "./dist/orchestration/streaming-runtime.js"
|