@traqr/memory 0.2.8 → 0.2.10
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 +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/context.d.ts +1 -0
- package/dist/lib/context.js +10 -1
- package/dist/lib/context.js.map +1 -1
- package/dist/lib/encryption.d.ts +24 -0
- package/dist/lib/encryption.js +68 -0
- package/dist/lib/encryption.js.map +1 -0
- package/dist/lib/pii-detection.d.ts +26 -0
- package/dist/lib/pii-detection.js +85 -0
- package/dist/lib/pii-detection.js.map +1 -0
- package/dist/routes/forget-cron.d.ts +4 -2
- package/dist/routes/forget-cron.js +27 -8
- package/dist/routes/forget-cron.js.map +1 -1
- package/dist/routes/search.js +24 -0
- package/dist/routes/search.js.map +1 -1
- package/dist/routes/store.js +14 -0
- package/dist/routes/store.js.map +1 -1
- package/dist/vectordb/converters.d.ts +9 -0
- package/dist/vectordb/converters.js +23 -1
- package/dist/vectordb/converters.js.map +1 -1
- package/dist/vectordb/supabase.d.ts +3 -0
- package/dist/vectordb/supabase.js +137 -11
- package/dist/vectordb/supabase.js.map +1 -1
- package/dist/vectordb/types.d.ts +18 -0
- package/dist/vectordb/types.js +14 -0
- package/dist/vectordb/types.js.map +1 -1
- package/package.json +1 -1
- package/setup.sql +38 -12
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;
|
|
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"}
|
package/dist/lib/context.d.ts
CHANGED
|
@@ -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;
|
package/dist/lib/context.js
CHANGED
|
@@ -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;
|
package/dist/lib/context.js.map
CHANGED
|
@@ -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,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PII Detection Pipeline (TD-714)
|
|
3
|
+
*
|
|
4
|
+
* Scans memory content for personally identifiable information before storage.
|
|
5
|
+
* Auto-classifies and flags memories containing PII.
|
|
6
|
+
*
|
|
7
|
+
* Part of Glasswing Red Alert security infrastructure.
|
|
8
|
+
*/
|
|
9
|
+
import type { MemoryClassification } from '../vectordb/types.js';
|
|
10
|
+
export interface PiiDetectionResult {
|
|
11
|
+
containsPii: boolean;
|
|
12
|
+
piiTypes: string[];
|
|
13
|
+
suggestedClassification: MemoryClassification;
|
|
14
|
+
redactedContent?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Detect PII in memory content.
|
|
18
|
+
* Returns detection result with types found and suggested classification.
|
|
19
|
+
*/
|
|
20
|
+
export declare function detectPii(content: string): PiiDetectionResult;
|
|
21
|
+
/**
|
|
22
|
+
* Generate a redacted version of content for embedding generation.
|
|
23
|
+
* PII is replaced with type-specific placeholders so semantic meaning is preserved
|
|
24
|
+
* but actual values are not embedded in vector space.
|
|
25
|
+
*/
|
|
26
|
+
export declare function redactForEmbedding(content: string): string;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PII Detection Pipeline (TD-714)
|
|
3
|
+
*
|
|
4
|
+
* Scans memory content for personally identifiable information before storage.
|
|
5
|
+
* Auto-classifies and flags memories containing PII.
|
|
6
|
+
*
|
|
7
|
+
* Part of Glasswing Red Alert security infrastructure.
|
|
8
|
+
*/
|
|
9
|
+
// Regex patterns for structured PII
|
|
10
|
+
const PII_PATTERNS = {
|
|
11
|
+
// US phone numbers (various formats)
|
|
12
|
+
phone: /\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b/g,
|
|
13
|
+
// Email addresses
|
|
14
|
+
email: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g,
|
|
15
|
+
// SSN (with or without dashes)
|
|
16
|
+
ssn: /\b\d{3}[-\s]?\d{2}[-\s]?\d{4}\b/g,
|
|
17
|
+
// Dollar amounts over $100
|
|
18
|
+
financialAmount: /\$\d{1,3}(?:,\d{3})*(?:\.\d{2})?\b|\$\d{3,}(?:\.\d{2})?\b/g,
|
|
19
|
+
// Physical addresses (basic heuristic: number + street name + type)
|
|
20
|
+
address: /\b\d{1,5}\s+(?:[A-Z][a-z]+\s+){1,3}(?:St|Street|Ave|Avenue|Blvd|Boulevard|Rd|Road|Dr|Drive|Ln|Lane|Ct|Court|Way|Pl|Place)\b/gi,
|
|
21
|
+
// Credit card numbers (basic: 4 groups of 4 digits)
|
|
22
|
+
creditCard: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g,
|
|
23
|
+
};
|
|
24
|
+
// Sensitive topic keywords that suggest restricted classification
|
|
25
|
+
const RESTRICTED_KEYWORDS = [
|
|
26
|
+
'psychoanalysis', 'addictive personality', 'medication',
|
|
27
|
+
'therapy', 'mental health', 'diagnosis',
|
|
28
|
+
'salary', 'compensation', 'ssn', 'social security',
|
|
29
|
+
'password', 'api key', 'secret key', 'private key',
|
|
30
|
+
];
|
|
31
|
+
// Confidential topic keywords
|
|
32
|
+
const CONFIDENTIAL_KEYWORDS = [
|
|
33
|
+
'pipeline', 'revenue', 'pricing', 'client list',
|
|
34
|
+
'inherited opps', 'discovery call', 'consulting fee',
|
|
35
|
+
'trust tier', 'foxhole',
|
|
36
|
+
];
|
|
37
|
+
/**
|
|
38
|
+
* Detect PII in memory content.
|
|
39
|
+
* Returns detection result with types found and suggested classification.
|
|
40
|
+
*/
|
|
41
|
+
export function detectPii(content) {
|
|
42
|
+
const piiTypes = [];
|
|
43
|
+
let suggestedClassification = 'internal';
|
|
44
|
+
// Check regex patterns
|
|
45
|
+
for (const [type, pattern] of Object.entries(PII_PATTERNS)) {
|
|
46
|
+
// Reset lastIndex for global regex
|
|
47
|
+
pattern.lastIndex = 0;
|
|
48
|
+
if (pattern.test(content)) {
|
|
49
|
+
piiTypes.push(type);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Check restricted keywords
|
|
53
|
+
const contentLower = content.toLowerCase();
|
|
54
|
+
const hasRestricted = RESTRICTED_KEYWORDS.some(kw => contentLower.includes(kw));
|
|
55
|
+
const hasConfidential = CONFIDENTIAL_KEYWORDS.some(kw => contentLower.includes(kw));
|
|
56
|
+
// Determine classification
|
|
57
|
+
if (hasRestricted) {
|
|
58
|
+
suggestedClassification = 'restricted';
|
|
59
|
+
}
|
|
60
|
+
else if (piiTypes.length > 0 || hasConfidential) {
|
|
61
|
+
suggestedClassification = 'confidential';
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
containsPii: piiTypes.length > 0,
|
|
65
|
+
piiTypes,
|
|
66
|
+
suggestedClassification,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Generate a redacted version of content for embedding generation.
|
|
71
|
+
* PII is replaced with type-specific placeholders so semantic meaning is preserved
|
|
72
|
+
* but actual values are not embedded in vector space.
|
|
73
|
+
*/
|
|
74
|
+
export function redactForEmbedding(content) {
|
|
75
|
+
let redacted = content;
|
|
76
|
+
// Replace in order of specificity (more specific patterns first)
|
|
77
|
+
redacted = redacted.replace(PII_PATTERNS.creditCard, '[CREDIT_CARD]');
|
|
78
|
+
redacted = redacted.replace(PII_PATTERNS.ssn, '[SSN]');
|
|
79
|
+
redacted = redacted.replace(PII_PATTERNS.phone, '[PHONE]');
|
|
80
|
+
redacted = redacted.replace(PII_PATTERNS.email, '[EMAIL]');
|
|
81
|
+
redacted = redacted.replace(PII_PATTERNS.financialAmount, '[AMOUNT]');
|
|
82
|
+
redacted = redacted.replace(PII_PATTERNS.address, '[ADDRESS]');
|
|
83
|
+
return redacted;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=pii-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pii-detection.js","sourceRoot":"","sources":["../../src/lib/pii-detection.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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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 =
|
|
20
|
+
const forgotten = forgottenData ?? 0;
|
|
19
21
|
if (forgotten > 0) {
|
|
20
22
|
console.log(`[forget-cron] Soft-deleted ${forgotten} expired memories`);
|
|
21
23
|
}
|
|
22
|
-
|
|
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
|
|
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"}
|
package/dist/routes/search.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
import { Hono } from 'hono';
|
|
7
7
|
import { searchMemories } from '../lib/memory.js';
|
|
8
8
|
import { searchMemoriesV2 } from '../lib/retrieval.js';
|
|
9
|
+
const VALID_CLASSIFICATIONS = ['public', 'internal', 'confidential', 'restricted'];
|
|
10
|
+
const VALID_ACCESS_LEVELS = ['exploration', 'standard', 'privileged', 'admin'];
|
|
9
11
|
const VALID_CATEGORIES = ['gotcha', 'pattern', 'fix', 'insight', 'question', 'preference', 'convention'];
|
|
10
12
|
const MAX_LIMIT = 50;
|
|
11
13
|
const DEFAULT_LIMIT = 10;
|
|
@@ -61,6 +63,24 @@ app.get('/', async (c) => {
|
|
|
61
63
|
// v2: lifecycle filters
|
|
62
64
|
const latestOnly = c.req.query('latestOnly') !== 'false';
|
|
63
65
|
const memoryType = c.req.query('memoryType');
|
|
66
|
+
// v3: security filters (Glasswing Red Alert)
|
|
67
|
+
const maxClassificationParam = c.req.query('maxClassification');
|
|
68
|
+
let maxClassification;
|
|
69
|
+
if (maxClassificationParam) {
|
|
70
|
+
if (!VALID_CLASSIFICATIONS.includes(maxClassificationParam)) {
|
|
71
|
+
return c.json({ success: false, error: `maxClassification must be one of: ${VALID_CLASSIFICATIONS.join(', ')}` }, 400);
|
|
72
|
+
}
|
|
73
|
+
maxClassification = maxClassificationParam;
|
|
74
|
+
}
|
|
75
|
+
const accessLevelParam = c.req.query('accessLevel');
|
|
76
|
+
let accessLevel;
|
|
77
|
+
if (accessLevelParam) {
|
|
78
|
+
if (!VALID_ACCESS_LEVELS.includes(accessLevelParam)) {
|
|
79
|
+
return c.json({ success: false, error: `accessLevel must be one of: ${VALID_ACCESS_LEVELS.join(', ')}` }, 400);
|
|
80
|
+
}
|
|
81
|
+
accessLevel = accessLevelParam;
|
|
82
|
+
}
|
|
83
|
+
const clientNamespace = c.req.query('clientNamespace') || undefined;
|
|
64
84
|
const options = {
|
|
65
85
|
limit,
|
|
66
86
|
category,
|
|
@@ -73,6 +93,10 @@ app.get('/', async (c) => {
|
|
|
73
93
|
includeUniversal: crossProject || !!projectParam,
|
|
74
94
|
latestOnly,
|
|
75
95
|
memoryType: memoryType || undefined,
|
|
96
|
+
// Security
|
|
97
|
+
maxClassification,
|
|
98
|
+
accessLevel,
|
|
99
|
+
clientNamespace,
|
|
76
100
|
};
|
|
77
101
|
// Fetch more results than requested if domain filter is active (post-filter)
|
|
78
102
|
const domainParam = c.req.query('domain');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/routes/search.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/routes/search.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/store.js
CHANGED
|
@@ -7,6 +7,9 @@ import { Hono } from 'hono';
|
|
|
7
7
|
import { storeMemory } from '../lib/memory.js';
|
|
8
8
|
import { passesIngestionGate } from '../lib/quality-gate.js';
|
|
9
9
|
import { deriveAll } from '../lib/auto-derive.js';
|
|
10
|
+
import { detectPii } from '../lib/pii-detection.js';
|
|
11
|
+
import { CLASSIFICATION_RANK } from '../vectordb/types.js';
|
|
12
|
+
const VALID_CLASSIFICATIONS = ['public', 'internal', 'confidential', 'restricted'];
|
|
10
13
|
const VALID_CATEGORIES = ['gotcha', 'pattern', 'fix', 'insight', 'question', 'preference', 'convention'];
|
|
11
14
|
const VALID_SOURCE_TYPES = ['pr', 'manual', 'extracted', 'bootstrap', 'advisor_session', 'plan', 'web_research', 'session', 'codebase_analysis'];
|
|
12
15
|
const VALID_DURABILITIES = ['permanent', 'temporary', 'session'];
|
|
@@ -46,6 +49,13 @@ app.post('/', async (c) => {
|
|
|
46
49
|
return c.json({ success: false, error: 'expiresAt must be a valid ISO date string' }, 400);
|
|
47
50
|
}
|
|
48
51
|
}
|
|
52
|
+
// PII detection — auto-classify before storage (TD-714)
|
|
53
|
+
const piiResult = detectPii(body.content.trim());
|
|
54
|
+
const requestedClassification = (VALID_CLASSIFICATIONS.includes(body.classification) ? body.classification : 'internal');
|
|
55
|
+
// PII detection can ELEVATE classification but never lower it
|
|
56
|
+
const finalClassification = CLASSIFICATION_RANK[piiResult.suggestedClassification] > CLASSIFICATION_RANK[requestedClassification]
|
|
57
|
+
? piiResult.suggestedClassification
|
|
58
|
+
: requestedClassification;
|
|
49
59
|
// Auto-derive missing fields from content
|
|
50
60
|
const content = body.content.trim();
|
|
51
61
|
const derived = deriveAll(content, {
|
|
@@ -75,6 +85,10 @@ app.post('/', async (c) => {
|
|
|
75
85
|
topic: derived.topic,
|
|
76
86
|
memoryType: derived.memoryType,
|
|
77
87
|
sourceTool: derived.sourceTool,
|
|
88
|
+
// v3: Security classification (Glasswing Red Alert)
|
|
89
|
+
classification: finalClassification,
|
|
90
|
+
clientNamespace: body.clientNamespace?.trim() || undefined,
|
|
91
|
+
containsPii: piiResult.containsPii || body.containsPii || false,
|
|
78
92
|
};
|
|
79
93
|
const memory = await storeMemory(input);
|
|
80
94
|
return c.json({ success: true, memory });
|
package/dist/routes/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/routes/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/routes/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,15 @@ export interface MemoryRow {
|
|
|
48
48
|
forgotten_at?: string | null;
|
|
49
49
|
forget_after?: string | null;
|
|
50
50
|
source_tool?: string | null;
|
|
51
|
+
classification?: string | null;
|
|
52
|
+
client_namespace?: string | null;
|
|
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;
|
|
51
60
|
}
|
|
52
61
|
export interface SearchResultRow extends MemoryRow {
|
|
53
62
|
current_confidence: number;
|