@traqr/memory 0.2.9 → 0.2.11

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/index.d.ts CHANGED
@@ -6,8 +6,8 @@
6
6
  */
7
7
  export { createMemoryServer } from './server.js';
8
8
  export { getVectorDB, resetVectorDB } from './vectordb/index.js';
9
- export type { VectorDBProvider, Memory, MemoryInput, MemorySearchResult, MemoryUpdate, MemoryExport, MemoryDomain, SearchOptions, MemoryCategory, MemorySourceType, MemoryDurability, MemoryType, BM25SearchResult, TemporalSearchResult, GraphSearchResult, BrowseResult, ProviderConfig, } from './vectordb/types.js';
10
- export { BOOTSTRAP_CONFIDENCE, DECAY_CONFIG } from './vectordb/types.js';
9
+ export type { VectorDBProvider, Memory, MemoryInput, MemorySearchResult, MemoryUpdate, MemoryExport, MemoryDomain, SearchOptions, MemoryCategory, MemorySourceType, MemoryDurability, MemoryType, MemoryClassification, MemoryAccessLevel, MemoryRetentionPolicy, BM25SearchResult, TemporalSearchResult, GraphSearchResult, BrowseResult, ProviderConfig, } from './vectordb/types.js';
10
+ export { BOOTSTRAP_CONFIDENCE, DECAY_CONFIG, ACCESS_LEVEL_MAX_CLASSIFICATION, CLASSIFICATION_RANK } from './vectordb/types.js';
11
11
  export { deriveAll, deriveDomain, deriveCategory, deriveTopic, deriveSummary, deriveTags, deriveMemoryType, deriveForgetAfter, extractEntityCandidates, } from './lib/auto-derive.js';
12
12
  export type { DeriveResult, EntityCandidate } from './lib/auto-derive.js';
13
13
  export { borderlineDecision } from './lib/borderline.js';
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@
8
8
  export { createMemoryServer } from './server.js';
9
9
  // VectorDB layer
10
10
  export { getVectorDB, resetVectorDB } from './vectordb/index.js';
11
- export { BOOTSTRAP_CONFIDENCE, DECAY_CONFIG } from './vectordb/types.js';
11
+ export { BOOTSTRAP_CONFIDENCE, DECAY_CONFIG, ACCESS_LEVEL_MAX_CLASSIFICATION, CLASSIFICATION_RANK } from './vectordb/types.js';
12
12
  // Auto-derive v2
13
13
  export { deriveAll, deriveDomain, deriveCategory, deriveTopic, deriveSummary, deriveTags, deriveMemoryType, deriveForgetAfter, extractEntityCandidates, } from './lib/auto-derive.js';
14
14
  // LLM borderline decision
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAoBhE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAExE,iBAAiB;AACjB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAG7B,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAGxD,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,+BAA+B;AAC/B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,sBAAsB;AACtB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAG3B,6BAA6B;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAcnE,gCAAgC;AAChC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAS3B,aAAa;AACb,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,aAAa;AACb,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAE5B,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAG7I,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE1E,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAGzD,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAuBhE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9H,iBAAiB;AACjB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAG7B,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAGxD,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,+BAA+B;AAC/B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,sBAAsB;AACtB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAG3B,6BAA6B;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAcnE,gCAAgC;AAChC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAA;AAS3B,aAAa;AACb,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,aAAa;AACb,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAE5B,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAG7I,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAE1E,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAGzD,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,6BAA6B,CAAA"}
@@ -11,6 +11,7 @@ export interface SessionContextParams {
11
11
  taskDescription?: string;
12
12
  filesExpected?: string[];
13
13
  sourceProject?: string;
14
+ accessLevel?: import('../vectordb/types.js').MemoryAccessLevel;
14
15
  }
15
16
  export interface MemoryWithShortCode extends MemorySearchResult {
16
17
  shortCode: string;
@@ -74,16 +74,20 @@ async function timedSearch(label, query, options = {}) {
74
74
  // Core Assembly
75
75
  // ============================================================
76
76
  export async function assembleSessionContext(params) {
77
- const { slotName, taskDescription, filesExpected } = params;
77
+ const { slotName, taskDescription, filesExpected, accessLevel } = params;
78
+ // Security: if accessLevel is provided, resolve to max classification for all searches
79
+ const securityOpts = accessLevel ? { accessLevel } : {};
78
80
  const searches = await Promise.all([
79
81
  timedSearch('principles', 'critical rules conventions best practices gotchas', {
80
82
  limit: 5,
81
83
  similarityThreshold: 0.45,
84
+ ...securityOpts,
82
85
  }),
83
86
  taskDescription
84
87
  ? timedSearch('task-relevant', taskDescription, {
85
88
  limit: 7,
86
89
  similarityThreshold: 0.4,
90
+ ...securityOpts,
87
91
  })
88
92
  : Promise.resolve({ results: [], timing: { query: 'task-relevant (skipped)', ms: 0 } }),
89
93
  filesExpected && filesExpected.length > 0
@@ -91,25 +95,30 @@ export async function assembleSessionContext(params) {
91
95
  limit: 3,
92
96
  category: 'gotcha',
93
97
  similarityThreshold: 0.4,
98
+ ...securityOpts,
94
99
  })
95
100
  : timedSearch('gotchas', `${slotName} common gotchas pitfalls`, {
96
101
  limit: 3,
97
102
  category: 'gotcha',
98
103
  similarityThreshold: 0.4,
104
+ ...securityOpts,
99
105
  }),
100
106
  timedSearch('preferences', 'design preference convention style naming file structure', {
101
107
  limit: 3,
102
108
  similarityThreshold: 0.4,
109
+ ...securityOpts,
103
110
  }),
104
111
  timedSearch('voice', 'writing voice tone style audience', {
105
112
  limit: 2,
106
113
  tags: ['voice'],
107
114
  similarityThreshold: 0.4,
115
+ ...securityOpts,
108
116
  }),
109
117
  timedSearch('identity', 'Sean preferences priorities values target audience decision-making style', {
110
118
  limit: 3,
111
119
  tags: ['identity'],
112
120
  similarityThreshold: 0.35,
121
+ ...securityOpts,
113
122
  }),
114
123
  ]);
115
124
  const [principlesSearch, taskSearch, gotchasSearch, preferencesSearch, voiceSearch, identitySearch] = searches;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/lib/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/lib/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Application-Level Encryption (TD-715)
3
+ *
4
+ * AES-256-GCM encryption for confidential/restricted memory content.
5
+ * Confidential and restricted memories have their content field encrypted
6
+ * before hitting Supabase. Decryption is transparent via the converter layer.
7
+ *
8
+ * Key: TRAQR_ENCRYPTION_KEY env var (64 hex chars = 32 bytes for AES-256)
9
+ * Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
10
+ *
11
+ * Part of Glasswing Red Alert security infrastructure.
12
+ */
13
+ export interface EncryptedPayload {
14
+ ciphertext: string;
15
+ iv: string;
16
+ authTag: string;
17
+ keyVersion: number;
18
+ }
19
+ /** Check if encryption is configured and available. */
20
+ export declare function isEncryptionEnabled(): boolean;
21
+ /** Encrypt plaintext content using AES-256-GCM. Returns null if not configured. */
22
+ export declare function encrypt(plaintext: string): EncryptedPayload | null;
23
+ /** Decrypt ciphertext using AES-256-GCM. Returns null on failure or if not configured. */
24
+ export declare function decrypt(payload: EncryptedPayload): string | null;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Application-Level Encryption (TD-715)
3
+ *
4
+ * AES-256-GCM encryption for confidential/restricted memory content.
5
+ * Confidential and restricted memories have their content field encrypted
6
+ * before hitting Supabase. Decryption is transparent via the converter layer.
7
+ *
8
+ * Key: TRAQR_ENCRYPTION_KEY env var (64 hex chars = 32 bytes for AES-256)
9
+ * Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
10
+ *
11
+ * Part of Glasswing Red Alert security infrastructure.
12
+ */
13
+ import { createCipheriv, createDecipheriv, randomBytes } from 'node:crypto';
14
+ const ALGORITHM = 'aes-256-gcm';
15
+ const IV_LENGTH = 16;
16
+ const AUTH_TAG_LENGTH = 16;
17
+ function getEncryptionKey() {
18
+ const keyHex = process.env.TRAQR_ENCRYPTION_KEY;
19
+ if (!keyHex)
20
+ return null;
21
+ const key = Buffer.from(keyHex, 'hex');
22
+ if (key.length !== 32) {
23
+ console.error('[Encryption] TRAQR_ENCRYPTION_KEY must be 64 hex characters (32 bytes)');
24
+ return null;
25
+ }
26
+ return key;
27
+ }
28
+ /** Check if encryption is configured and available. */
29
+ export function isEncryptionEnabled() {
30
+ return getEncryptionKey() !== null;
31
+ }
32
+ /** Encrypt plaintext content using AES-256-GCM. Returns null if not configured. */
33
+ export function encrypt(plaintext) {
34
+ const key = getEncryptionKey();
35
+ if (!key)
36
+ return null;
37
+ const iv = randomBytes(IV_LENGTH);
38
+ const cipher = createCipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
39
+ let encrypted = cipher.update(plaintext, 'utf8', 'base64');
40
+ encrypted += cipher.final('base64');
41
+ const authTag = cipher.getAuthTag();
42
+ return {
43
+ ciphertext: encrypted,
44
+ iv: iv.toString('hex'),
45
+ authTag: authTag.toString('hex'),
46
+ keyVersion: 1,
47
+ };
48
+ }
49
+ /** Decrypt ciphertext using AES-256-GCM. Returns null on failure or if not configured. */
50
+ export function decrypt(payload) {
51
+ const key = getEncryptionKey();
52
+ if (!key)
53
+ return null;
54
+ try {
55
+ const iv = Buffer.from(payload.iv, 'hex');
56
+ const authTag = Buffer.from(payload.authTag, 'hex');
57
+ const decipher = createDecipheriv(ALGORITHM, key, iv, { authTagLength: AUTH_TAG_LENGTH });
58
+ decipher.setAuthTag(authTag);
59
+ let decrypted = decipher.update(payload.ciphertext, 'base64', 'utf8');
60
+ decrypted += decipher.final('utf8');
61
+ return decrypted;
62
+ }
63
+ catch (error) {
64
+ console.error('[Encryption] Decryption failed:', error instanceof Error ? error.message : error);
65
+ return null;
66
+ }
67
+ }
68
+ //# sourceMappingURL=encryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/lib/encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE3E,MAAM,SAAS,GAAG,aAAa,CAAA;AAC/B,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,eAAe,GAAG,EAAE,CAAA;AAS1B,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACtC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAA;QACvF,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,mBAAmB;IACjC,OAAO,gBAAgB,EAAE,KAAK,IAAI,CAAA;AACpC,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,OAAO,CAAC,SAAiB;IACvC,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAA;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IAErB,MAAM,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAA;IAErF,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC1D,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAEnC,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChC,UAAU,EAAE,CAAC;KACd,CAAA;AACH,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,OAAO,CAAC,OAAyB;IAC/C,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAA;IAC9B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IAErB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAA;QACzF,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAE5B,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrE,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAChG,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Retrieval — RRF Fusion + Strategy Detection + Temporal Parsing tests.
3
+ *
4
+ * Covers the pure, deterministic core of searchMemoriesV2 (TD-158/159/160):
5
+ * reciprocalRankFusion, detectStrategies, parseTemporalRange. The Cohere rerank
6
+ * + DB-backed strategies are exercised separately (they require a live provider
7
+ * + COHERE_API_KEY); these tests pin the fusion math + routing that run on every
8
+ * memory search fleet-wide.
9
+ *
10
+ * Run: npx tsx packages/memory/src/lib/retrieval.test.ts
11
+ */
12
+ export {};
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Retrieval — RRF Fusion + Strategy Detection + Temporal Parsing tests.
3
+ *
4
+ * Covers the pure, deterministic core of searchMemoriesV2 (TD-158/159/160):
5
+ * reciprocalRankFusion, detectStrategies, parseTemporalRange. The Cohere rerank
6
+ * + DB-backed strategies are exercised separately (they require a live provider
7
+ * + COHERE_API_KEY); these tests pin the fusion math + routing that run on every
8
+ * memory search fleet-wide.
9
+ *
10
+ * Run: npx tsx packages/memory/src/lib/retrieval.test.ts
11
+ */
12
+ import { reciprocalRankFusion, detectStrategies, parseTemporalRange } from './retrieval.js';
13
+ let passed = 0;
14
+ let failed = 0;
15
+ function assert(label, condition) {
16
+ if (condition) {
17
+ console.log(` PASS ${label}`);
18
+ passed++;
19
+ }
20
+ else {
21
+ console.log(` FAIL ${label}`);
22
+ failed++;
23
+ }
24
+ }
25
+ // ============================================================
26
+ // reciprocalRankFusion
27
+ // ============================================================
28
+ console.log('\n--- reciprocalRankFusion ---');
29
+ // Empty input → empty output
30
+ assert('empty strategies → []', reciprocalRankFusion([]).length === 0);
31
+ // Single strategy, single item: score = 1/(k+rank) = 1/(60+1)
32
+ {
33
+ const fused = reciprocalRankFusion([{ strategy: 'semantic', items: [{ id: 'a', rank: 1 }] }]);
34
+ assert('single item present', fused.length === 1 && fused[0].id === 'a');
35
+ assert('RRF formula 1/(k+rank)', Math.abs(fused[0].rrfScore - 1 / 61) < 1e-9);
36
+ assert('top item normalizedScore === 1', fused[0].normalizedScore === 1);
37
+ assert('strategies tracked', fused[0].strategies.join() === 'semantic');
38
+ }
39
+ // Multi-strategy: an item in BOTH strategies outranks an item in only one
40
+ {
41
+ const fused = reciprocalRankFusion([
42
+ { strategy: 'semantic', items: [{ id: 'x', rank: 1 }, { id: 'y', rank: 2 }] },
43
+ { strategy: 'bm25', items: [{ id: 'x', rank: 1 }, { id: 'z', rank: 2 }] },
44
+ ]);
45
+ const x = fused.find((f) => f.id === 'x');
46
+ const y = fused.find((f) => f.id === 'y');
47
+ assert('item in 2 strategies ranks first', fused[0].id === 'x');
48
+ assert('cross-strategy item accumulates both', x.strategies.length === 2);
49
+ assert('cross-strategy score > single-strategy score', x.rrfScore > y.rrfScore);
50
+ assert('normalization: top === 1, others < 1', x.normalizedScore === 1 && y.normalizedScore < 1);
51
+ }
52
+ // topN slicing
53
+ {
54
+ const items = Array.from({ length: 50 }, (_, i) => ({ id: `id${i}`, rank: i + 1 }));
55
+ const fused = reciprocalRankFusion([{ strategy: 'semantic', items }], 60, 5);
56
+ assert('topN caps result length', fused.length === 5);
57
+ assert('topN keeps best-ranked', fused[0].id === 'id0');
58
+ }
59
+ // Lower rank (better position) yields higher score
60
+ {
61
+ const fused = reciprocalRankFusion([{ strategy: 'semantic', items: [{ id: 'first', rank: 1 }, { id: 'tenth', rank: 10 }] }]);
62
+ assert('rank 1 scores above rank 10', fused[0].id === 'first' && fused[0].rrfScore > fused[1].rrfScore);
63
+ }
64
+ // ============================================================
65
+ // detectStrategies
66
+ // ============================================================
67
+ console.log('\n--- detectStrategies ---');
68
+ assert('semantic + bm25 always on', (() => {
69
+ const d = detectStrategies('what do we know about caching');
70
+ return d.strategies.includes('semantic') && d.strategies.includes('bm25');
71
+ })());
72
+ assert('no temporal/graph for a plain query', (() => {
73
+ const d = detectStrategies('how does the daemon work');
74
+ return !d.strategies.includes('temporal') && !d.strategies.includes('graph');
75
+ })());
76
+ assert('date phrase activates temporal', (() => {
77
+ const d = detectStrategies('what happened last week with the deploy');
78
+ return d.strategies.includes('temporal') && d.temporalRange !== undefined;
79
+ })());
80
+ assert('ISO date activates temporal', detectStrategies('the 2026-03-15 incident').strategies.includes('temporal'));
81
+ assert('entityIds activate graph', (() => {
82
+ const d = detectStrategies('AVGO thesis', ['ent-1']);
83
+ return d.strategies.includes('graph') && d.graphSeedIds?.length === 1;
84
+ })());
85
+ // ============================================================
86
+ // parseTemporalRange
87
+ // ============================================================
88
+ console.log('\n--- parseTemporalRange ---');
89
+ assert('"yesterday" → ~1 day window', (() => {
90
+ const { start, end } = parseTemporalRange('yesterday');
91
+ const days = (end.getTime() - start.getTime()) / 86400000;
92
+ return days >= 0.5 && days <= 2;
93
+ })());
94
+ assert('"last month" → ~30 day window', (() => {
95
+ const { start, end } = parseTemporalRange('last month');
96
+ return start < end && (end.getTime() - start.getTime()) > 20 * 86400000;
97
+ })());
98
+ assert('"3 days ago" → 3-day lookback', (() => {
99
+ const { start, end } = parseTemporalRange('something 3 days ago');
100
+ const days = Math.round((end.getTime() - start.getTime()) / 86400000);
101
+ return days === 3;
102
+ })());
103
+ assert('"March 2026" → month start', (() => {
104
+ const { start } = parseTemporalRange('the March 2026 print');
105
+ return start.getFullYear() === 2026 && start.getMonth() === 2 && start.getDate() === 1;
106
+ })());
107
+ assert('ISO "2026-03-15" → that day', (() => {
108
+ const { start } = parseTemporalRange('on 2026-03-15');
109
+ return start.getFullYear() === 2026 && start.getMonth() === 2 && start.getDate() === 15;
110
+ })());
111
+ assert('no date pattern → 30-day default', (() => {
112
+ const { start, end } = parseTemporalRange('no temporal words here');
113
+ const days = Math.round((end.getTime() - start.getTime()) / 86400000);
114
+ return days === 30;
115
+ })());
116
+ // ============================================================
117
+ // Summary
118
+ // ============================================================
119
+ console.log(`\n${'='.repeat(50)}`);
120
+ console.log(`Results: ${passed} passed, ${failed} failed`);
121
+ if (failed > 0) {
122
+ console.log('RETRIEVAL TESTS FAILED');
123
+ process.exit(1);
124
+ }
125
+ else {
126
+ console.log('All retrieval tests passed!');
127
+ }
128
+ //# sourceMappingURL=retrieval.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieval.test.js","sourceRoot":"","sources":["../../src/lib/retrieval.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * Forget Cron Route
3
3
  *
4
- * POST /forget-cron — Soft-delete memories past their forget_after date.
5
- * Calls the forget_expired_memories RPC deployed in Migration 011.
4
+ * POST /forget-cron — Soft-delete memories past their forget_after date,
5
+ * then hard-delete memories past their retention_expires_at date.
6
+ * Calls forget_expired_memories RPC (Migration 011) and
7
+ * cleanup_expired_retention RPC (Migration 013).
6
8
  */
7
9
  import { Hono } from 'hono';
8
10
  declare const app: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * Forget Cron Route
3
3
  *
4
- * POST /forget-cron — Soft-delete memories past their forget_after date.
5
- * Calls the forget_expired_memories RPC deployed in Migration 011.
4
+ * POST /forget-cron — Soft-delete memories past their forget_after date,
5
+ * then hard-delete memories past their retention_expires_at date.
6
+ * Calls forget_expired_memories RPC (Migration 011) and
7
+ * cleanup_expired_retention RPC (Migration 013).
6
8
  */
7
9
  import { Hono } from 'hono';
8
10
  import { getMemoryClient } from '../lib/client.js';
@@ -10,16 +12,33 @@ const app = new Hono();
10
12
  app.post('/', async (c) => {
11
13
  try {
12
14
  const client = getMemoryClient();
13
- const { data, error } = await client.rpc('forget_expired_memories');
14
- if (error) {
15
- console.error('[forget-cron] RPC error:', error);
16
- return c.json({ success: false, error: error.message }, 500);
15
+ // Step 1: Soft-delete memories past their forget_after date
16
+ const { data: forgottenData, error: forgetError } = await client.rpc('forget_expired_memories');
17
+ if (forgetError) {
18
+ console.error('[forget-cron] forget_expired_memories RPC error:', forgetError);
17
19
  }
18
- const forgotten = data ?? 0;
20
+ const forgotten = forgottenData ?? 0;
19
21
  if (forgotten > 0) {
20
22
  console.log(`[forget-cron] Soft-deleted ${forgotten} expired memories`);
21
23
  }
22
- return c.json({ success: true, forgotten });
24
+ // Step 2: Hard-delete memories past their retention expiry (GDPR compliance)
25
+ let retained = 0;
26
+ try {
27
+ const { data: retainedData, error: retainError } = await client.rpc('cleanup_expired_retention');
28
+ if (retainError) {
29
+ console.error('[forget-cron] cleanup_expired_retention RPC error:', retainError);
30
+ }
31
+ else {
32
+ retained = retainedData ?? 0;
33
+ if (retained > 0) {
34
+ console.log(`[forget-cron] Retention cleanup: hard-deleted ${retained} expired memories`);
35
+ }
36
+ }
37
+ }
38
+ catch {
39
+ // Migration 013 not yet deployed — skip retention cleanup
40
+ }
41
+ return c.json({ success: true, forgotten, retentionDeleted: retained });
23
42
  }
24
43
  catch (error) {
25
44
  console.error('[forget-cron] Error:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"forget-cron.js","sourceRoot":"","sources":["../../src/routes/forget-cron.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;AAEtB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,yBAAyB,CAAC,CAAA;QAE5E,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;YAChD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAA;QAC3B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,8BAA8B,SAAS,mBAAmB,CAAC,CAAA;QACzE,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAC5C,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EACnF,GAAG,CACJ,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"forget-cron.js","sourceRoot":"","sources":["../../src/routes/forget-cron.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;AAEtB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,4DAA4D;QAC5D,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,yBAAyB,CAAC,CAAA;QAExG,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,WAAW,CAAC,CAAA;QAChF,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,IAAI,CAAC,CAAA;QACpC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,8BAA8B,SAAS,mBAAmB,CAAC,CAAA;QACzE,CAAC;QAED,6EAA6E;QAC7E,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,2BAA2B,CAAC,CAAA;YACzG,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,WAAW,CAAC,CAAA;YAClF,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,YAAY,IAAI,CAAC,CAAA;gBAC5B,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,iDAAiD,QAAQ,mBAAmB,CAAC,CAAA;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAA;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAC5C,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EACnF,GAAG,CACJ,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,GAAG,CAAA"}
@@ -51,6 +51,12 @@ export interface MemoryRow {
51
51
  classification?: string | null;
52
52
  client_namespace?: string | null;
53
53
  contains_pii?: boolean | null;
54
+ encrypted_content?: string | null;
55
+ encryption_iv?: string | null;
56
+ encryption_tag?: string | null;
57
+ encryption_key_version?: number | null;
58
+ retention_policy?: string | null;
59
+ retention_expires_at?: string | null;
54
60
  }
55
61
  export interface SearchResultRow extends MemoryRow {
56
62
  current_confidence: number;
@@ -4,10 +4,25 @@
4
4
  * Database row types and converter functions shared between
5
5
  * SupabaseVectorProvider and PostgresVectorProvider.
6
6
  */
7
+ import { decrypt } from '../lib/encryption.js';
7
8
  export function rowToMemory(row) {
9
+ // Transparent decryption: if encrypted_content exists, decrypt it
10
+ let content = row.content;
11
+ if (row.encrypted_content && row.encryption_iv && row.encryption_tag) {
12
+ const decrypted = decrypt({
13
+ ciphertext: row.encrypted_content,
14
+ iv: row.encryption_iv,
15
+ authTag: row.encryption_tag,
16
+ keyVersion: row.encryption_key_version || 1,
17
+ });
18
+ if (decrypted) {
19
+ content = decrypted;
20
+ }
21
+ // If decryption fails (key missing/rotated), content stays as placeholder
22
+ }
8
23
  return {
9
24
  id: row.id,
10
- content: row.content,
25
+ content,
11
26
  summary: row.summary ?? undefined,
12
27
  category: row.category,
13
28
  tags: row.tags || [],
@@ -48,6 +63,9 @@ export function rowToMemory(row) {
48
63
  classification: row.classification ?? 'internal',
49
64
  clientNamespace: row.client_namespace ?? undefined,
50
65
  containsPii: row.contains_pii ?? false,
66
+ // v4: Retention policies
67
+ retentionPolicy: row.retention_policy ?? 'permanent',
68
+ retentionExpiresAt: row.retention_expires_at ? new Date(row.retention_expires_at) : undefined,
51
69
  };
52
70
  }
53
71
  export function rowToSearchResult(row) {
@@ -1 +1 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/vectordb/converters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/vectordb/converters.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,8 @@ export declare class SupabaseVectorProvider implements VectorDBProvider {
65
65
  limit?: number;
66
66
  }): Promise<BrowseResult[]>;
67
67
  forget(id: string): Promise<void>;
68
+ purgeNamespace(namespace: string, reason?: string): Promise<number>;
69
+ exportNamespace(namespace: string): Promise<MemoryExport[]>;
68
70
  createRelationship(sourceId: string, targetId: string, edgeType: string, metadata?: Record<string, unknown>): Promise<string | null>;
69
71
  countEntityMentions(name: string, userId: string): Promise<number>;
70
72
  schemaVersion(): Promise<number | null>;
@@ -8,7 +8,8 @@
8
8
  import { getMemoryClient, getUserId, getProjectId, getTableName } from '../lib/client.js';
9
9
  import { generateEmbedding, formatEmbeddingForPgVector } from '../lib/embeddings.js';
10
10
  import { rowToMemory, rowToSearchResult } from './converters.js';
11
- import { ACCESS_LEVEL_MAX_CLASSIFICATION } from './types.js';
11
+ import { ACCESS_LEVEL_MAX_CLASSIFICATION, CLASSIFICATION_RANK } from './types.js';
12
+ import { encrypt, isEncryptionEnabled } from '../lib/encryption.js';
12
13
  export class SupabaseVectorProvider {
13
14
  // Audit logging — fire-and-forget, never blocks the operation
14
15
  async auditLog(operation, opts = {}) {
@@ -46,10 +47,15 @@ export class SupabaseVectorProvider {
46
47
  embeddingModel = result.model;
47
48
  embeddingModelVersion = result.modelVersion;
48
49
  }
50
+ // TD-715: Encrypt content for confidential/restricted memories
51
+ const classification = input.classification || 'internal';
52
+ const shouldEncrypt = isEncryptionEnabled() &&
53
+ CLASSIFICATION_RANK[classification] >= CLASSIFICATION_RANK['confidential'];
54
+ const encrypted = shouldEncrypt ? encrypt(input.content) : null;
49
55
  const insertData = {
50
56
  user_id: getUserId(),
51
57
  project_id: projectId,
52
- content: input.content,
58
+ content: encrypted ? '[ENCRYPTED]' : input.content,
53
59
  summary: input.summary,
54
60
  category: input.category,
55
61
  tags: input.tags || [],
@@ -78,9 +84,17 @@ export class SupabaseVectorProvider {
78
84
  is_latest: true,
79
85
  is_forgotten: false,
80
86
  // v3: Security classification (Glasswing Red Alert)
81
- classification: input.classification || 'internal',
87
+ classification,
82
88
  client_namespace: input.clientNamespace || null,
83
89
  contains_pii: input.containsPii || false,
90
+ // v3: Application-level encryption (TD-715)
91
+ encrypted_content: encrypted?.ciphertext || null,
92
+ encryption_iv: encrypted?.iv || null,
93
+ encryption_tag: encrypted?.authTag || null,
94
+ encryption_key_version: encrypted?.keyVersion || null,
95
+ // v4: Retention policies (Glasswing TD-716)
96
+ retention_policy: input.retentionPolicy || (input.clientNamespace ? 'client_engagement' : 'permanent'),
97
+ retention_expires_at: input.retentionExpiresAt ? input.retentionExpiresAt.toISOString() : null,
84
98
  };
85
99
  const { data, error } = await client
86
100
  .from(getTableName())
@@ -180,7 +194,18 @@ export class SupabaseVectorProvider {
180
194
  updated_at: new Date().toISOString(),
181
195
  };
182
196
  if (updates.content !== undefined) {
183
- updateData.content = updates.content;
197
+ // TD-715: Re-encrypt if the memory is confidential/restricted
198
+ const memClassification = (current.classification || 'internal');
199
+ const shouldEncrypt = isEncryptionEnabled() &&
200
+ CLASSIFICATION_RANK[memClassification] >= CLASSIFICATION_RANK['confidential'];
201
+ const encrypted = shouldEncrypt ? encrypt(updates.content) : null;
202
+ updateData.content = encrypted ? '[ENCRYPTED]' : updates.content;
203
+ if (encrypted) {
204
+ updateData.encrypted_content = encrypted.ciphertext;
205
+ updateData.encryption_iv = encrypted.iv;
206
+ updateData.encryption_tag = encrypted.authTag;
207
+ updateData.encryption_key_version = encrypted.keyVersion;
208
+ }
184
209
  const embeddingResult = await generateEmbedding(updates.content);
185
210
  updateData.embedding = formatEmbeddingForPgVector(embeddingResult.embedding);
186
211
  updateData.embedding_model = embeddingResult.model;
@@ -721,16 +746,68 @@ export class SupabaseVectorProvider {
721
746
  }
722
747
  async forget(id) {
723
748
  const client = getMemoryClient();
724
- const { error } = await client.from(getTableName())
725
- .update({
726
- is_forgotten: true,
727
- forgotten_at: new Date().toISOString(),
728
- updated_at: new Date().toISOString(),
729
- })
730
- .eq('id', id);
749
+ // GDPR Article 17: hard-delete via RPC (removes row + embedding + relationships)
750
+ const { data, error } = await client.rpc('hard_delete_memory', {
751
+ p_memory_id: id,
752
+ p_agent_id: process.env.TRAQR_SLOT_NAME || null,
753
+ p_reason: 'forgotten',
754
+ });
755
+ if (error) {
756
+ // Fallback to soft-delete if RPC not yet deployed
757
+ const { error: fallbackError } = await client.from(getTableName())
758
+ .update({
759
+ is_forgotten: true,
760
+ forgotten_at: new Date().toISOString(),
761
+ updated_at: new Date().toISOString(),
762
+ })
763
+ .eq('id', id);
764
+ if (fallbackError)
765
+ throw new Error(fallbackError.message);
766
+ this.auditLog('forget', { memoryIds: [id] });
767
+ return;
768
+ }
769
+ // RPC handles its own audit logging
770
+ }
771
+ async purgeNamespace(namespace, reason) {
772
+ const client = getMemoryClient();
773
+ const { data, error } = await client.rpc('purge_client_namespace', {
774
+ p_client_namespace: namespace,
775
+ p_agent_id: process.env.TRAQR_SLOT_NAME || null,
776
+ p_reason: reason || 'right-to-delete',
777
+ });
778
+ if (error)
779
+ throw new Error(error.message);
780
+ return data ?? 0;
781
+ }
782
+ async exportNamespace(namespace) {
783
+ const client = getMemoryClient();
784
+ const { data, error } = await client.rpc('export_client_namespace', {
785
+ p_client_namespace: namespace,
786
+ });
731
787
  if (error)
732
788
  throw new Error(error.message);
733
- this.auditLog('forget', { memoryIds: [id] });
789
+ return (data || []).map((r) => ({
790
+ id: r.id,
791
+ content: r.content,
792
+ summary: r.summary,
793
+ category: r.category,
794
+ tags: r.tags || [],
795
+ contextTags: [],
796
+ sourceType: r.source_type,
797
+ sourceRef: r.source_ref,
798
+ sourceProject: '',
799
+ originalConfidence: 1,
800
+ lastValidated: r.updated_at,
801
+ relatedTo: [],
802
+ isContradiction: false,
803
+ isArchived: false,
804
+ durability: 'permanent',
805
+ embeddingModel: '',
806
+ embeddingModelVersion: '',
807
+ createdAt: r.created_at,
808
+ updatedAt: r.updated_at,
809
+ domainName: r.domain,
810
+ }));
734
811
  }
735
812
  async createRelationship(sourceId, targetId, edgeType, metadata = {}) {
736
813
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/vectordb/supabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/vectordb/supabase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uDAAuD;AAEvD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAkBhE,OAAO,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACjF,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,MAAM,OAAO,sBAAsB;IACjC,8DAA8D;IACtD,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,OAGtC,EAAE;QACJ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;YAChC,MAAO,MAAM,CAAC,GAAW,CAAC,sBAAsB,EAAE;gBAChD,WAAW,EAAE,SAAS;gBACtB,UAAU,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI;gBAC/D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI;gBAClD,YAAY,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;gBACpC,YAAY,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;gBACpC,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;gBACrC,kBAAkB,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;gBAChD,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,IAAI,IAAI;gBACxD,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;aACzC,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAkB,EAAE,QAAiB;QAC/C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,SAAS,GAAG,QAAQ,IAAI,YAAY,EAAE,CAAA;QAE5C,qFAAqF;QACrF,IAAI,YAAoB,CAAA;QACxB,IAAI,cAAc,GAAG,wBAAwB,CAAA;QAC7C,IAAI,qBAAqB,GAAG,GAAG,CAAA;QAC/B,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,YAAY,GAAG,KAAK,CAAC,oBAAoB,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrD,YAAY,GAAG,0BAA0B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC3D,cAAc,GAAG,MAAM,CAAC,KAAK,CAAA;YAC7B,qBAAqB,GAAG,MAAM,CAAC,YAAY,CAAA;QAC7C,CAAC;QAED,+DAA+D;QAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,UAAU,CAAA;QACzD,MAAM,aAAa,GAAG,mBAAmB,EAAE;YACzC,mBAAmB,CAAC,cAAc,CAAC,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAA;QAC5E,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE/D,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,SAAS,EAAE;YACpB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;YAClD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,YAAY,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;YACrC,SAAS,EAAE,YAAY;YACvB,eAAe,EAAE,cAAc;YAC/B,uBAAuB,EAAE,qBAAqB;YAC9C,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,cAAc,EAAE,KAAK,CAAC,aAAa,IAAI,SAAS;YAChD,mBAAmB,EAAE,KAAK,CAAC,UAAU,IAAI,GAAG;YAC5C,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;YACjC,gBAAgB,EAAE,KAAK,CAAC,eAAe,IAAI,KAAK;YAChD,YAAY,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;YACxC,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YACnC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,WAAW;YAC3C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;YAClE,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;YAC1B,uBAAuB;YACvB,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACrC,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACrC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAChF,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;YACxE,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,KAAK;YACnB,oDAAoD;YACpD,cAAc;YACd,gBAAgB,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;YAC/C,YAAY,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK;YACxC,4CAA4C;YAC5C,iBAAiB,EAAE,SAAS,EAAE,UAAU,IAAI,IAAI;YAChD,aAAa,EAAE,SAAS,EAAE,EAAE,IAAI,IAAI;YACpC,cAAc,EAAE,SAAS,EAAE,OAAO,IAAI,IAAI;YAC1C,sBAAsB,EAAE,SAAS,EAAE,UAAU,IAAI,IAAI;YACrD,4CAA4C;YAC5C,gBAAgB,EAAE,KAAK,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC;YACtG,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;SAC/F,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,CAAC,UAAU,CAAC;aAClB,MAAM,EAAE;aACR,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;YACxD,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,CAAC,IAAiB,CAAC,CAAA;QAC7C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrB,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,mBAAmB,EAAE,KAAK,CAAC,cAAc,IAAI,UAAU;SACxD,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,UAA6D,EAAE;QACzF,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB;eAC5C,0BAA0B,CAAC,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE3E,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,+BAA+B,EAAE;gBACjF,iBAAiB,EAAE,YAAY;gBAC/B,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBACtC,gBAAgB,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;gBAC/C,UAAU,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBACpC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;gBAC5B,kBAAkB,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;gBACpD,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;gBACpD,YAAY,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;gBACvC,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;gBAC5B,sBAAsB,EAAE,OAAO,CAAC,mBAAmB,IAAI,GAAG;aAC3D,CAAC,CAAA;YAEF,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,KAAK,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAoB,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,MAAM,iBAAiB,GAAyB,OAAO,CAAC,iBAAiB;eACpE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,+BAA+B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QAEhG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,iBAAiB,EAAE;YACnE,iBAAiB,EAAE,YAAY;YAC/B,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YACtC,UAAU,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YACpC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC5B,kBAAkB,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;YACpD,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YAC5B,sBAAsB,EAAE,OAAO,CAAC,mBAAmB,IAAI,GAAG;YAC1D,aAAa,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACzC,sBAAsB;YACtB,oBAAoB,EAAE,iBAAiB;YACvC,kBAAkB,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;SACpD,CAAC,CAAA;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;YAC5D,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAoB,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;QAClF,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,WAAW,EAAE,OAAO,CAAC,MAAM;YAC3B,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,mBAAmB,EAAE,iBAAiB;YACtC,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,EAAE;aACR,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aACZ,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,IAAI,CAAA;YAC1C,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;YACxD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAA;QAC1D,OAAO,WAAW,CAAC,IAAiB,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAqB;QAC5C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,UAAU,GAA4B;YAC1C,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAA;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,8DAA8D;YAC9D,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,UAAU,CAAyB,CAAA;YACxF,MAAM,aAAa,GAAG,mBAAmB,EAAE;gBACzC,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAA;YAC/E,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAEjE,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;YAChE,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC,UAAU,CAAA;gBACnD,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,CAAA;gBACvC,UAAU,CAAC,cAAc,GAAG,SAAS,CAAC,OAAO,CAAA;gBAC7C,UAAU,CAAC,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAA;YAC1D,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAChE,UAAU,CAAC,SAAS,GAAG,0BAA0B,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;YAC5E,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC,KAAK,CAAA;YAClD,UAAU,CAAC,uBAAuB,GAAG,eAAe,CAAC,YAAY,CAAA;QACnE,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAC1E,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAC9D,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAA;QACpF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,UAAU,CAAC,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAA;QACzF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAA;QAC9E,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,UAAU,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAA;QAEhG,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3D,MAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAS,CAAC,MAAM,CAAC;gBACxD,SAAS,EAAE,EAAE;gBACb,gBAAgB,EAAE,OAAO,CAAC,OAAO;gBACjC,mBAAmB,EAAE,OAAO,CAAC,kBAAkB;gBAC/C,aAAa,EAAE,OAAO,CAAC,YAAY,IAAI,iBAAiB;aACzD,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,CAAC,UAAU,CAAC;aAClB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;YACzD,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED,OAAO,WAAW,CAAC,IAAiB,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAC5B,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,EAAE;aACR,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAEf,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;YACzD,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,CAAC;YACN,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;aACD,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAA;YAC3D,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,WAAW,CAAC,IAAiB,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAC5B,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,CAAC;YACN,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;aACD,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACf,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAC5B,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,CAAC;YACN,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;aACD,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACf,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,MAAe;QACvC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,CAAC;YACN,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,cAAc,EAAE,MAAM,IAAI,QAAQ;YAClC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;aACD,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;YAC1D,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7C,OAAO,WAAW,CAAC,IAAiB,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,YAAY,EAAE,CAAS;aAC5B,MAAM,CAAC;YACN,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;aACD,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;YAC5D,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACjE,CAAC;QAED,OAAO,WAAW,CAAC,IAAiB,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAiB;QAC/B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,IAAI,KAAK,GAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAE5D,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAA;QAEnC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;YAC5D,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,QAAQ,EAAE,GAAG,CAAC,QAAsC;YACpD,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;YACnC,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;YACtC,aAAa,EAAE,GAAG,CAAC,cAAc;YACjC,kBAAkB,EAAE,GAAG,CAAC,mBAAmB;YAC3C,aAAa,EAAE,GAAG,CAAC,cAAc;YACjC,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;YAC/B,eAAe,EAAE,GAAG,CAAC,gBAAgB;YACrC,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,SAAS;YAC9C,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;YACtC,cAAc,EAAE,GAAG,CAAC,eAAe;YACnC,qBAAqB,EAAE,GAAG,CAAC,uBAAuB;YAClD,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAwB,EAAE,QAAgB;QACzD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,MAAM,UAAU,GAAG,EAAE,CAAA;QAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAA;YAE/C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAC7C,CAAA;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC7C,OAAO,EAAE,SAAS,EAAE;gBACpB,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,SAAS,EAAE,0BAA0B,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;gBAChE,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK;gBACtC,uBAAuB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY;gBACrD,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,cAAc,EAAE,MAAM,CAAC,aAAa;gBACpC,mBAAmB,EAAE,MAAM,CAAC,kBAAkB;gBAC9C,cAAc,EAAE,MAAM,CAAC,aAAa;gBACpC,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,gBAAgB,EAAE,MAAM,CAAC,eAAe;gBACxC,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,cAAc,EAAE,MAAM,CAAC,aAAa;gBACpC,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC,CAAA;YAEH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAE/E,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,CAAC,CAAA;YAC7E,CAAC;iBAAM,CAAC;gBACN,aAAa,IAAI,KAAK,CAAC,MAAM,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,WAAoB,EAAE,MAAe;QACpE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,gBAAgB,CAAS;aAC9B,MAAM,CAAC;YACN,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE;YAC9B,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;YACpD,WAAW;YACX,SAAS,EAAE,IAAI;SAChB,CAAC;aACD,MAAM,EAAE;aACR,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;YACzD,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;YAC1C,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACpC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;SACxC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,gBAAgB,CAAS;aAC9B,MAAM,EAAE;aACR,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;aAC1D,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,IAAI,CAAA;YAC1C,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;YACxD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3D,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;YAC1C,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACpC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;SACxC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAEhC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM;aAClC,IAAI,CAAC,gBAAgB,CAAS;aAC9B,MAAM,EAAE;aACR,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;aACxB,MAAM,EAAE,CAAA;QAEX,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAA;YAChE,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACnE,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;YAC1C,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACpC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;SACxC,CAAA;IACH,CAAC;IAED,+DAA+D;IAC/D,+DAA+D;IAC/D,+DAA+D;IAE/D,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,OAGnC;QACC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,aAAa,EAAE;YAC/D,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;YACxC,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI;YACjC,UAAU,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;YACrC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YAC7B,WAAW,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;SACvC,CAAC,CAAA;QACF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YACrD,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;YAC/B,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;YACnC,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;SACzC,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,SAAe,EAAE,OAAa,EAAE,OAEnE;QACC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,YAAY,GAAG,OAAO,EAAE,oBAAoB;eAC7C,0BAA0B,CAAC,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAC3E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,iBAAiB,EAAE;YACnE,iBAAiB,EAAE,YAAY;YAC/B,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE;YACrC,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE;YACjC,YAAY,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;YACxC,sBAAsB,EAAE,OAAO,EAAE,mBAAmB,IAAI,GAAG;YAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC9B,CAAC,CAAA;QACF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;YACzD,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,iBAAiB,EAAE,GAAG,CAAC,kBAAkB;YACzC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;SAChC,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAiB,EAAE,OAEpC;QACC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,cAAc,EAAE;YAChE,UAAU,EAAE,OAAO;YACnB,YAAY,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YAChF,WAAW,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC9B,CAAC,CAAA;QACF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;YACtD,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,+DAA+D;IAC/D,oBAAoB;IACpB,+DAA+D;IAE/D,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,UAAkB;QACrD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;aAClE,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;aAC1B,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;aAC7B,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;aACxB,KAAK,CAAC,CAAC,CAAC;aACR,WAAW,EAAE,CAAA;QAChB,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAY,EAAE,UAAkB;QAC1D,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;aAClE,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;aAC1B,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;aAC1D,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;aAC7B,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;aACxB,KAAK,CAAC,CAAC,CAAC;aACR,WAAW,EAAE,CAAA;QAChB,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,YAAoB,EAAE,UAAkB,EAAE,YAAoB,IAAI;QAC5F,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,iBAAiB,EAAE;YACnE,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,SAAS,EAAE;YACtB,aAAa,EAAE,UAAU;YACzB,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,CAAC;SACX,CAAC,CAAA;QACF,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACpD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAElB;QACC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;aAClE,MAAM,CAAC;YACN,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;YACnC,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACvC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;aACD,MAAM,EAAE;aACR,MAAM,EAAE,CAAA;QACX,IAAI,KAAK,EAAE,CAAC;YACV,0EAA0E;YAC1E,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;YAC9D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;YAChE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,QAAgB;QAC5C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,4CAA4C;QAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;aAC3D,MAAM,CAAC,gBAAgB,CAAC;aACxB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;aAClB,MAAM,EAAE,CAAA;QACX,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAChD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;aAC5D,MAAM,CAAC;YACN,cAAc,EAAE,QAAQ;YACxB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;aACD,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACrB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,QAAgB,EAAE,OAAe,UAAU;QACpF,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAS;aAChE,MAAM,CAAC;YACN,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;YACnB,IAAI;SACL,CAAC,CAAA;QACJ,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,yBAAyB;YAC9D,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAe;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;aAClE,MAAM,CAAC,UAAU,CAAC;aAClB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;aAC1B,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;aACxB,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA,CAAC,iCAAiC;QAC3D,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,oDAAoD;YACpD,MAAM,OAAO,GAAmC,EAAE,CAAA;YAClD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,+BAA+B;gBAC3E,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;qBAC9D,MAAM,CAAC,UAAU,CAAC;qBAClB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;qBAC1B,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;qBACxB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;qBACnB,KAAK,CAAC,CAAC,CAAC;qBACR,WAAW,EAAE,CAAA;gBAChB,IAAI,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YACjD,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,oDAAoD;QACpD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;aAClE,MAAM,CAAC,IAAI,CAAC;aACZ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;aAC1B,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QAC3B,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QAE7B,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAS;iBAChE,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;iBAC3C,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YAC7B,IAAI,KAAK,KAAK,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAa;QACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QAC9B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAS;aAC5D,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aAC7B,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAChB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;YACnE,OAAO,CAAC,CAAA;QACV,CAAC;QACD,OAAO,GAAG,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,+DAA+D;IAC/D,2DAA2D;IAC3D,+DAA+D;IAE/D,KAAK,CAAC,MAAM,CAAC,OAAgE;QAC3E,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,IAAI,KAAK,GAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAS;aAC7C,MAAM,CAAC,wCAAwC,CAAC;aAChD,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC;aACxB,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAE5B,IAAI,OAAO,EAAE,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/D,IAAI,OAAO,EAAE,QAAQ;YAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QACrE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QAEnF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAA;QACnC,IAAI,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;YAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS;YACjC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;SAChC,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,iFAAiF;QACjF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,oBAAoB,EAAE;YACtE,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI;YAC/C,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAA;QACF,IAAI,KAAK,EAAE,CAAC;YACV,kDAAkD;YAClD,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAS;iBACxE,MAAM,CAAC;gBACN,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;iBACD,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YACf,IAAI,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC5C,OAAM;QACR,CAAC;QACD,oCAAoC;IACtC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,MAAe;QACrD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,wBAAwB,EAAE;YAC1E,kBAAkB,EAAE,SAAS;YAC7B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI;YAC/C,QAAQ,EAAE,MAAM,IAAI,iBAAiB;SACtC,CAAC,CAAA;QACF,IAAI,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,IAAI,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,yBAAyB,EAAE;YAC3E,kBAAkB,EAAE,SAAS;SAC9B,CAAC,CAAA;QACF,IAAI,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,CAAC,CAAC,WAAW;YACzB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,aAAa,EAAE,EAAE;YACjB,kBAAkB,EAAE,CAAC;YACrB,aAAa,EAAE,CAAC,CAAC,UAAU;YAC3B,SAAS,EAAE,EAAE;YACb,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,WAAW;YACvB,cAAc,EAAE,EAAE;YAClB,qBAAqB,EAAE,EAAE;YACzB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,UAAU,EAAE,CAAC,CAAC,MAAM;SACrB,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,QAAgB,EAAE,QAAgB,EAAE,QAAgB,EACpD,WAAoC,EAAE;QAEtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;YAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAS;iBACvE,MAAM,CAAC;gBACN,gBAAgB,EAAE,QAAQ;gBAC1B,gBAAgB,EAAE,QAAQ;gBAC1B,SAAS,EAAE,QAAQ;gBACnB,QAAQ;aACT,CAAC;iBACD,MAAM,CAAC,IAAI,CAAC;iBACZ,MAAM,EAAE,CAAA;YACX,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;oBAAE,OAAO,IAAI,CAAA,CAAC,YAAY;gBACpD,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;gBACnE,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,IAAI,EAAE,EAAE,IAAI,IAAI,CAAA;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY,EAAE,MAAc;QACpD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,GAAW,CAAC,uBAAuB,EAAE;YACzE,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,MAAM;SAClB,CAAC,CAAA;QACF,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,CAAA;QAC1D,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;YAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAS;iBACjE,MAAM,CAAC,SAAS,CAAC;iBACjB,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;iBACtC,KAAK,CAAC,CAAC,CAAC;iBACR,WAAW,EAAE,CAAA;YAChB,IAAI,KAAK,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YAC/B,OAAO,IAAI,CAAC,OAAO,CAAA;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;YAChC,wDAAwD;YACxD,mEAAmE;YACnE,gEAAgE;YAChE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACpF,OAAO,CAAC,KAAK,CAAA;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;CACF"}
@@ -12,6 +12,7 @@ export type MemoryClassification = 'public' | 'internal' | 'confidential' | 'res
12
12
  export type MemoryAccessLevel = 'exploration' | 'standard' | 'privileged' | 'admin';
13
13
  export declare const CLASSIFICATION_RANK: Record<MemoryClassification, number>;
14
14
  export declare const ACCESS_LEVEL_MAX_CLASSIFICATION: Record<MemoryAccessLevel, MemoryClassification>;
15
+ export type MemoryRetentionPolicy = 'permanent' | 'client_engagement' | 'session' | 'manual';
15
16
  export type MemoryType = 'fact' | 'preference' | 'pattern';
16
17
  export interface MemoryInput {
17
18
  content: string;
@@ -40,6 +41,8 @@ export interface MemoryInput {
40
41
  classification?: MemoryClassification;
41
42
  clientNamespace?: string;
42
43
  containsPii?: boolean;
44
+ retentionPolicy?: MemoryRetentionPolicy;
45
+ retentionExpiresAt?: Date;
43
46
  }
44
47
  export interface Memory {
45
48
  id: string;
@@ -83,6 +86,8 @@ export interface Memory {
83
86
  classification?: MemoryClassification;
84
87
  clientNamespace?: string;
85
88
  containsPii?: boolean;
89
+ retentionPolicy?: MemoryRetentionPolicy;
90
+ retentionExpiresAt?: Date;
86
91
  }
87
92
  export interface MemorySearchResult extends Memory {
88
93
  currentConfidence: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vectordb/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAyC;IACvE,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;CACd,CAAA;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,+BAA+B,GAAoD;IAC9F,WAAW,EAAE,UAAU,EAAM,8CAA8C;IAC3E,QAAQ,EAAE,cAAc,EAAK,qDAAqD;IAClF,UAAU,EAAE,YAAY,EAAK,+CAA+C;IAC5E,KAAK,EAAE,YAAY,EAAU,yCAAyC;CACvE,CAAA;AAwSD,8BAA8B;AAC9B,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY,EAAE,GAAG;IACjB,kBAAkB,EAAE,GAAG;IACvB,WAAW,EAAE,GAAG;IAChB,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,GAAG;IACnB,MAAM,EAAE,GAAG;IACX,EAAE,EAAE,GAAG;CACC,CAAA;AAEV,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,qBAAqB,EAAE,GAAG,EAAG,kCAAkC;IAC/D,YAAY,EAAE,GAAG,EAAY,wCAAwC;IACrE,cAAc,EAAE,GAAG,EAAU,uBAAuB;IACpD,eAAe,EAAE,IAAI,EAAQ,6BAA6B;IAC1D,iBAAiB,EAAE,GAAG;IACtB,KAAK,EAAE,GAAG;IACV,kBAAkB,EAAE,EAAE,EAAO,4CAA4C;CACjE,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vectordb/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiCH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAyC;IACvE,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;CACd,CAAA;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,+BAA+B,GAAoD;IAC9F,WAAW,EAAE,UAAU,EAAM,8CAA8C;IAC3E,QAAQ,EAAE,cAAc,EAAK,qDAAqD;IAClF,UAAU,EAAE,YAAY,EAAK,+CAA+C;IAC5E,KAAK,EAAE,YAAY,EAAU,yCAAyC;CACvE,CAAA;AAiTD,8BAA8B;AAC9B,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY,EAAE,GAAG;IACjB,kBAAkB,EAAE,GAAG;IACvB,WAAW,EAAE,GAAG;IAChB,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,GAAG;IACnB,MAAM,EAAE,GAAG;IACX,EAAE,EAAE,GAAG;CACC,CAAA;AAEV,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,qBAAqB,EAAE,GAAG,EAAG,kCAAkC;IAC/D,YAAY,EAAE,GAAG,EAAY,wCAAwC;IACrE,cAAc,EAAE,GAAG,EAAU,uBAAuB;IACpD,eAAe,EAAE,IAAI,EAAQ,6BAA6B;IAC1D,iBAAiB,EAAE,GAAG;IACtB,KAAK,EAAE,GAAG;IACV,kBAAkB,EAAE,EAAE,EAAO,4CAA4C;CACjE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@traqr/memory",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "description": "Persistent memory for AI agents. Multi-strategy retrieval (semantic + BM25 + RRF), 3-zone cosine triage, type-aware lifecycle, entity canonicalization. Postgres + pgvector.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/setup.sql CHANGED
@@ -34,7 +34,9 @@ CREATE EXTENSION IF NOT EXISTS pg_trgm;
34
34
 
35
35
  CREATE OR REPLACE FUNCTION traqr_tsvector_en(content text, summary text, tags text[])
36
36
  RETURNS tsvector
37
- LANGUAGE sql IMMUTABLE AS $$
37
+ LANGUAGE sql IMMUTABLE
38
+ SET search_path = ''
39
+ AS $$
38
40
  SELECT to_tsvector('english',
39
41
  COALESCE(content, '') || ' ' ||
40
42
  COALESCE(summary, '') || ' ' ||
@@ -44,7 +46,9 @@ $$;
44
46
 
45
47
  CREATE OR REPLACE FUNCTION traqr_tsvector_simple(content text, summary text, tags text[])
46
48
  RETURNS tsvector
47
- LANGUAGE sql IMMUTABLE AS $$
49
+ LANGUAGE sql IMMUTABLE
50
+ SET search_path = ''
51
+ AS $$
48
52
  SELECT to_tsvector('simple',
49
53
  COALESCE(content, '') || ' ' ||
50
54
  COALESCE(summary, '') || ' ' ||
@@ -494,7 +498,9 @@ CREATE OR REPLACE FUNCTION calculate_current_confidence(
494
498
  p_memory_type VARCHAR DEFAULT 'pattern'
495
499
  )
496
500
  RETURNS FLOAT
497
- LANGUAGE plpgsql STABLE AS $$
501
+ LANGUAGE plpgsql STABLE
502
+ SET search_path = ''
503
+ AS $$
498
504
  DECLARE
499
505
  years_elapsed FLOAT;
500
506
  decay_rate FLOAT;
@@ -565,7 +571,9 @@ RETURNS TABLE (
565
571
  is_latest BOOLEAN,
566
572
  source_tool VARCHAR
567
573
  )
568
- LANGUAGE plpgsql AS $$
574
+ LANGUAGE plpgsql
575
+ SET search_path = public
576
+ AS $$
569
577
  BEGIN
570
578
  RETURN QUERY
571
579
  SELECT
@@ -640,7 +648,9 @@ RETURNS TABLE (
640
648
  is_latest BOOLEAN,
641
649
  source_tool VARCHAR
642
650
  )
643
- LANGUAGE plpgsql AS $$
651
+ LANGUAGE plpgsql
652
+ SET search_path = public
653
+ AS $$
644
654
  BEGIN
645
655
  RETURN QUERY
646
656
  SELECT
@@ -688,7 +698,9 @@ RETURNS TABLE (
688
698
  times_returned INTEGER,
689
699
  reason TEXT
690
700
  )
691
- LANGUAGE plpgsql AS $$
701
+ LANGUAGE plpgsql
702
+ SET search_path = public
703
+ AS $$
692
704
  BEGIN
693
705
  RETURN QUERY
694
706
  WITH decayed AS (
@@ -747,7 +759,9 @@ RETURNS TABLE (
747
759
  category TEXT,
748
760
  memory_type TEXT
749
761
  )
750
- LANGUAGE plpgsql AS $$
762
+ LANGUAGE plpgsql
763
+ SET search_path = public
764
+ AS $$
751
765
  DECLARE
752
766
  tsquery_en tsquery;
753
767
  tsquery_simple tsquery;
@@ -787,6 +801,7 @@ END;
787
801
  $$;
788
802
 
789
803
  -- 6f. temporal_search — valid_at range + embedding similarity
804
+ -- search_path = public: references traqr_memories table
790
805
  CREATE OR REPLACE FUNCTION temporal_search(
791
806
  p_query_embedding vector(1536),
792
807
  p_date_start TIMESTAMPTZ,
@@ -803,7 +818,9 @@ RETURNS TABLE (
803
818
  temporal_proximity FLOAT,
804
819
  valid_at TIMESTAMPTZ
805
820
  )
806
- LANGUAGE plpgsql AS $$
821
+ LANGUAGE plpgsql
822
+ SET search_path = public
823
+ AS $$
807
824
  DECLARE
808
825
  date_mid TIMESTAMPTZ;
809
826
  total_days FLOAT;
@@ -833,6 +850,7 @@ END;
833
850
  $$;
834
851
 
835
852
  -- 6g. graph_search — link expansion CTE traversing memory_relationships
853
+ -- search_path = public: references traqr_memories + memory_relationships
836
854
  CREATE OR REPLACE FUNCTION graph_search(
837
855
  p_seed_ids UUID[],
838
856
  p_edge_types TEXT[] DEFAULT ARRAY['updates', 'extends', 'derives', 'related'],
@@ -847,7 +865,9 @@ RETURNS TABLE (
847
865
  edge_type TEXT,
848
866
  depth INTEGER
849
867
  )
850
- LANGUAGE plpgsql AS $$
868
+ LANGUAGE plpgsql
869
+ SET search_path = public
870
+ AS $$
851
871
  BEGIN
852
872
  RETURN QUERY
853
873
  WITH RECURSIVE graph_walk AS (
@@ -905,7 +925,9 @@ RETURNS TABLE (
905
925
  similarity FLOAT,
906
926
  mentions_count INTEGER
907
927
  )
908
- LANGUAGE plpgsql AS $$
928
+ LANGUAGE plpgsql
929
+ SET search_path = public
930
+ AS $$
909
931
  BEGIN
910
932
  RETURN QUERY
911
933
  SELECT
@@ -928,7 +950,9 @@ CREATE OR REPLACE FUNCTION count_entity_mentions(
928
950
  p_name VARCHAR
929
951
  )
930
952
  RETURNS INTEGER
931
- LANGUAGE plpgsql AS $$
953
+ LANGUAGE plpgsql
954
+ SET search_path = public
955
+ AS $$
932
956
  DECLARE
933
957
  mention_count INTEGER;
934
958
  BEGIN
@@ -945,7 +969,9 @@ $$;
945
969
  -- 6j. forget_expired_memories — daily cron function
946
970
  CREATE OR REPLACE FUNCTION forget_expired_memories()
947
971
  RETURNS INTEGER
948
- LANGUAGE plpgsql AS $$
972
+ LANGUAGE plpgsql
973
+ SET search_path = public
974
+ AS $$
949
975
  DECLARE
950
976
  forgotten_count INTEGER;
951
977
  BEGIN