om-memory-system 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +587 -0
- package/dist/adapters/opencode/auto-capture-host.d.ts +3 -0
- package/dist/adapters/opencode/auto-capture-host.js +29 -0
- package/dist/adapters/opencode/auto-capture-summary.d.ts +4 -0
- package/dist/adapters/opencode/auto-capture-summary.js +147 -0
- package/dist/adapters/opencode/conversation.d.ts +2 -0
- package/dist/adapters/opencode/conversation.js +50 -0
- package/dist/adapters/opencode/user-prompt.d.ts +9 -0
- package/dist/adapters/opencode/user-prompt.js +26 -0
- package/dist/adapters/pi/capture.d.ts +41 -0
- package/dist/adapters/pi/capture.js +91 -0
- package/dist/adapters/pi/conversation.d.ts +38 -0
- package/dist/adapters/pi/conversation.js +118 -0
- package/dist/adapters/pi/extension.d.ts +18 -0
- package/dist/adapters/pi/extension.js +234 -0
- package/dist/adapters/pi/import-command.d.ts +29 -0
- package/dist/adapters/pi/import-command.js +232 -0
- package/dist/adapters/pi/profile.d.ts +39 -0
- package/dist/adapters/pi/profile.js +148 -0
- package/dist/adapters/pi/provider.d.ts +50 -0
- package/dist/adapters/pi/provider.js +77 -0
- package/dist/config.d.ts +290 -0
- package/dist/config.js +742 -0
- package/dist/core/capture-context.d.ts +4 -0
- package/dist/core/capture-context.js +132 -0
- package/dist/core/capture.d.ts +15 -0
- package/dist/core/capture.js +68 -0
- package/dist/core/extraction.d.ts +80 -0
- package/dist/core/extraction.js +140 -0
- package/dist/core/host.d.ts +52 -0
- package/dist/core/host.js +1 -0
- package/dist/core/memory-operations.d.ts +27 -0
- package/dist/core/memory-operations.js +247 -0
- package/dist/core/retrieval.d.ts +12 -0
- package/dist/core/retrieval.js +72 -0
- package/dist/importer/discovery.d.ts +31 -0
- package/dist/importer/discovery.js +88 -0
- package/dist/importer/importer.d.ts +87 -0
- package/dist/importer/importer.js +260 -0
- package/dist/importer/ledger.d.ts +44 -0
- package/dist/importer/ledger.js +137 -0
- package/dist/importer/session-loader.d.ts +19 -0
- package/dist/importer/session-loader.js +12 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +601 -0
- package/dist/plugin.d.ts +9 -0
- package/dist/plugin.js +11 -0
- package/dist/services/ai/ai-provider-factory.d.ts +7 -0
- package/dist/services/ai/ai-provider-factory.js +41 -0
- package/dist/services/ai/api-key-placeholder.d.ts +1 -0
- package/dist/services/ai/api-key-placeholder.js +14 -0
- package/dist/services/ai/internal-capture-sessions.d.ts +6 -0
- package/dist/services/ai/internal-capture-sessions.js +33 -0
- package/dist/services/ai/opencode-diagnostics.d.ts +7 -0
- package/dist/services/ai/opencode-diagnostics.js +36 -0
- package/dist/services/ai/opencode-host-config.d.ts +10 -0
- package/dist/services/ai/opencode-host-config.js +51 -0
- package/dist/services/ai/opencode-provider-loader.d.ts +3 -0
- package/dist/services/ai/opencode-provider-loader.js +4 -0
- package/dist/services/ai/opencode-provider.d.ts +92 -0
- package/dist/services/ai/opencode-provider.js +419 -0
- package/dist/services/ai/opencode-sdk-client.d.ts +6 -0
- package/dist/services/ai/opencode-sdk-client.js +38 -0
- package/dist/services/ai/profile-llm-client.d.ts +2 -0
- package/dist/services/ai/profile-llm-client.js +27 -0
- package/dist/services/ai/provider-config.d.ts +17 -0
- package/dist/services/ai/provider-config.js +30 -0
- package/dist/services/ai/providers/anthropic-messages.d.ts +34 -0
- package/dist/services/ai/providers/anthropic-messages.js +220 -0
- package/dist/services/ai/providers/base-provider.d.ts +24 -0
- package/dist/services/ai/providers/base-provider.js +24 -0
- package/dist/services/ai/providers/google-gemini.d.ts +15 -0
- package/dist/services/ai/providers/google-gemini.js +228 -0
- package/dist/services/ai/providers/minimax.d.ts +35 -0
- package/dist/services/ai/providers/minimax.js +55 -0
- package/dist/services/ai/providers/openai-chat-completion.d.ts +22 -0
- package/dist/services/ai/providers/openai-chat-completion.js +387 -0
- package/dist/services/ai/providers/openai-responses.d.ts +13 -0
- package/dist/services/ai/providers/openai-responses.js +182 -0
- package/dist/services/ai/providers/orcarouter.d.ts +51 -0
- package/dist/services/ai/providers/orcarouter.js +66 -0
- package/dist/services/ai/session/ai-session-manager.d.ts +24 -0
- package/dist/services/ai/session/ai-session-manager.js +211 -0
- package/dist/services/ai/session/session-types.d.ts +42 -0
- package/dist/services/ai/session/session-types.js +1 -0
- package/dist/services/ai/tools/tool-schema.d.ts +40 -0
- package/dist/services/ai/tools/tool-schema.js +24 -0
- package/dist/services/ai/validators/user-profile-validator.d.ts +12 -0
- package/dist/services/ai/validators/user-profile-validator.js +114 -0
- package/dist/services/api-handlers.d.ts +186 -0
- package/dist/services/api-handlers.js +1284 -0
- package/dist/services/auth-token.d.ts +14 -0
- package/dist/services/auth-token.js +59 -0
- package/dist/services/auto-capture.d.ts +3 -0
- package/dist/services/auto-capture.js +127 -0
- package/dist/services/cleanup-service.d.ts +22 -0
- package/dist/services/cleanup-service.js +109 -0
- package/dist/services/client.d.ts +134 -0
- package/dist/services/client.js +327 -0
- package/dist/services/context.d.ts +10 -0
- package/dist/services/context.js +27 -0
- package/dist/services/cors.d.ts +12 -0
- package/dist/services/cors.js +52 -0
- package/dist/services/deduplication-service.d.ts +28 -0
- package/dist/services/deduplication-service.js +111 -0
- package/dist/services/embedding.d.ts +36 -0
- package/dist/services/embedding.js +200 -0
- package/dist/services/jsonc.d.ts +6 -0
- package/dist/services/jsonc.js +76 -0
- package/dist/services/language-detector.d.ts +2 -0
- package/dist/services/language-detector.js +33 -0
- package/dist/services/legacy-migration.d.ts +77 -0
- package/dist/services/legacy-migration.js +343 -0
- package/dist/services/logger.d.ts +1 -0
- package/dist/services/logger.js +119 -0
- package/dist/services/memory-portability-service.d.ts +37 -0
- package/dist/services/memory-portability-service.js +340 -0
- package/dist/services/memory-scope.d.ts +16 -0
- package/dist/services/memory-scope.js +43 -0
- package/dist/services/migration-service.d.ts +42 -0
- package/dist/services/migration-service.js +307 -0
- package/dist/services/onnxruntime-resolve.d.ts +24 -0
- package/dist/services/onnxruntime-resolve.js +174 -0
- package/dist/services/privacy.d.ts +26 -0
- package/dist/services/privacy.js +69 -0
- package/dist/services/request-timeouts.d.ts +9 -0
- package/dist/services/request-timeouts.js +11 -0
- package/dist/services/runtime-require.d.ts +17 -0
- package/dist/services/runtime-require.js +75 -0
- package/dist/services/secret-resolver.d.ts +1 -0
- package/dist/services/secret-resolver.js +65 -0
- package/dist/services/shard-inventory-service.d.ts +69 -0
- package/dist/services/shard-inventory-service.js +315 -0
- package/dist/services/shard-path-migration-service.d.ts +31 -0
- package/dist/services/shard-path-migration-service.js +367 -0
- package/dist/services/tag-prefix-migration.d.ts +60 -0
- package/dist/services/tag-prefix-migration.js +439 -0
- package/dist/services/tag-prefix-scan.d.ts +26 -0
- package/dist/services/tag-prefix-scan.js +91 -0
- package/dist/services/tags.d.ts +29 -0
- package/dist/services/tags.js +251 -0
- package/dist/services/turso/connection-manager.d.ts +15 -0
- package/dist/services/turso/connection-manager.js +163 -0
- package/dist/services/turso/cross-process-write-lock.d.ts +1 -0
- package/dist/services/turso/cross-process-write-lock.js +89 -0
- package/dist/services/turso/legacy-migrator.d.ts +1 -0
- package/dist/services/turso/legacy-migrator.js +540 -0
- package/dist/services/turso/lifecycle.d.ts +1 -0
- package/dist/services/turso/lifecycle.js +14 -0
- package/dist/services/turso/operation-lock.d.ts +2 -0
- package/dist/services/turso/operation-lock.js +61 -0
- package/dist/services/turso/ready.d.ts +2 -0
- package/dist/services/turso/ready.js +36 -0
- package/dist/services/turso/shard-manager.d.ts +38 -0
- package/dist/services/turso/shard-manager.js +496 -0
- package/dist/services/turso/sqlite-handle-release.d.ts +16 -0
- package/dist/services/turso/sqlite-handle-release.js +56 -0
- package/dist/services/turso/turso-db.d.ts +18 -0
- package/dist/services/turso/turso-db.js +53 -0
- package/dist/services/turso/types.d.ts +42 -0
- package/dist/services/turso/types.js +1 -0
- package/dist/services/turso/vector-search.d.ts +41 -0
- package/dist/services/turso/vector-search.js +384 -0
- package/dist/services/turso/vector-utils.d.ts +7 -0
- package/dist/services/turso/vector-utils.js +67 -0
- package/dist/services/user-memory-learning.d.ts +97 -0
- package/dist/services/user-memory-learning.js +673 -0
- package/dist/services/user-profile/ai-cleanup.d.ts +58 -0
- package/dist/services/user-profile/ai-cleanup.js +486 -0
- package/dist/services/user-profile/profile-context.d.ts +1 -0
- package/dist/services/user-profile/profile-context.js +105 -0
- package/dist/services/user-profile/profile-utils.d.ts +2 -0
- package/dist/services/user-profile/profile-utils.js +45 -0
- package/dist/services/user-profile/types.d.ts +92 -0
- package/dist/services/user-profile/types.js +1 -0
- package/dist/services/user-profile/user-profile-manager.d.ts +65 -0
- package/dist/services/user-profile/user-profile-manager.js +1660 -0
- package/dist/services/user-prompt/user-prompt-manager.d.ts +53 -0
- package/dist/services/user-prompt/user-prompt-manager.js +303 -0
- package/dist/services/web-api-auth.d.ts +3 -0
- package/dist/services/web-api-auth.js +25 -0
- package/dist/services/web-auth.d.ts +46 -0
- package/dist/services/web-auth.js +105 -0
- package/dist/services/web-server.d.ts +57 -0
- package/dist/services/web-server.js +659 -0
- package/dist/shared/api/index.d.ts +4 -0
- package/dist/shared/api/index.js +2 -0
- package/dist/shared/api/portability-schemas.d.ts +56 -0
- package/dist/shared/api/portability-schemas.js +39 -0
- package/dist/shared/api/schemas.d.ts +295 -0
- package/dist/shared/api/schemas.js +134 -0
- package/dist/shared/api/types.d.ts +28 -0
- package/dist/shared/api/types.js +1 -0
- package/dist/types/index.d.ts +27 -0
- package/dist/types/index.js +1 -0
- package/dist/utils/context-limit.d.ts +10 -0
- package/dist/utils/context-limit.js +43 -0
- package/dist/utils/math.d.ts +7 -0
- package/dist/utils/math.js +48 -0
- package/dist/utils/profile.d.ts +2 -0
- package/dist/utils/profile.js +15 -0
- package/dist/v2/adapter.d.ts +5 -0
- package/dist/v2/adapter.js +218 -0
- package/dist/v2/legacy-client.d.ts +15 -0
- package/dist/v2/legacy-client.js +257 -0
- package/dist/v2/memory-bridge.d.ts +18 -0
- package/dist/v2/memory-bridge.js +29 -0
- package/dist/v2/plugin.d.ts +3 -0
- package/dist/v2/plugin.js +24 -0
- package/dist/web/assets/index-DPjEpD1h.css +2 -0
- package/dist/web/assets/index-do26c4JJ.js +122 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/dist/web/favicon.ico +0 -0
- package/dist/web/index.html +14 -0
- package/dist/web/omms-icon.png +0 -0
- package/package.json +138 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export const safeArray = (arr) => {
|
|
2
|
+
if (!arr)
|
|
3
|
+
return [];
|
|
4
|
+
let result = arr;
|
|
5
|
+
if (typeof result === "string") {
|
|
6
|
+
try {
|
|
7
|
+
result = JSON.parse(result);
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
try {
|
|
11
|
+
result = JSON.parse(result.trim().replace(/,$/, ""));
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (!Array.isArray(result))
|
|
19
|
+
return [];
|
|
20
|
+
const flattened = [];
|
|
21
|
+
const walk = (item) => {
|
|
22
|
+
if (Array.isArray(item)) {
|
|
23
|
+
item.forEach(walk);
|
|
24
|
+
}
|
|
25
|
+
else if (item) {
|
|
26
|
+
flattened.push(item);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
walk(result);
|
|
30
|
+
return flattened;
|
|
31
|
+
};
|
|
32
|
+
export const safeObject = (obj, fallback) => {
|
|
33
|
+
if (!obj)
|
|
34
|
+
return fallback;
|
|
35
|
+
let result = obj;
|
|
36
|
+
if (typeof result === "string") {
|
|
37
|
+
try {
|
|
38
|
+
result = JSON.parse(result);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return fallback;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return result && typeof result === "object" && !Array.isArray(result) ? result : fallback;
|
|
45
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export interface UserProfilePreference {
|
|
2
|
+
category: string;
|
|
3
|
+
description: string;
|
|
4
|
+
confidence: number;
|
|
5
|
+
frequency: number;
|
|
6
|
+
evidence: string[];
|
|
7
|
+
lastSeen: number;
|
|
8
|
+
centroid?: number[];
|
|
9
|
+
anchor?: number[];
|
|
10
|
+
weakHitCount?: number;
|
|
11
|
+
lastWeakHitAt?: number;
|
|
12
|
+
driftBelowCount?: number;
|
|
13
|
+
alpha?: number;
|
|
14
|
+
beta?: number;
|
|
15
|
+
weakAlpha?: number;
|
|
16
|
+
weakBeta?: number;
|
|
17
|
+
pendingValidation?: boolean;
|
|
18
|
+
lastMatchTime?: number;
|
|
19
|
+
firstSeen?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface UserProfilePattern {
|
|
22
|
+
category: string;
|
|
23
|
+
description: string;
|
|
24
|
+
confidence: number;
|
|
25
|
+
frequency: number;
|
|
26
|
+
evidence: string[];
|
|
27
|
+
lastSeen: number;
|
|
28
|
+
centroid?: number[];
|
|
29
|
+
anchor?: number[];
|
|
30
|
+
weakHitCount?: number;
|
|
31
|
+
lastWeakHitAt?: number;
|
|
32
|
+
driftBelowCount?: number;
|
|
33
|
+
alpha?: number;
|
|
34
|
+
beta?: number;
|
|
35
|
+
weakAlpha?: number;
|
|
36
|
+
weakBeta?: number;
|
|
37
|
+
pendingValidation?: boolean;
|
|
38
|
+
lastMatchTime?: number;
|
|
39
|
+
firstSeen?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface UserProfileWorkflow {
|
|
42
|
+
description: string;
|
|
43
|
+
steps: string[];
|
|
44
|
+
confidence: number;
|
|
45
|
+
frequency: number;
|
|
46
|
+
evidence: string[];
|
|
47
|
+
lastSeen: number;
|
|
48
|
+
centroid?: number[];
|
|
49
|
+
anchor?: number[];
|
|
50
|
+
weakHitCount?: number;
|
|
51
|
+
lastWeakHitAt?: number;
|
|
52
|
+
driftBelowCount?: number;
|
|
53
|
+
alpha?: number;
|
|
54
|
+
beta?: number;
|
|
55
|
+
weakAlpha?: number;
|
|
56
|
+
weakBeta?: number;
|
|
57
|
+
pendingValidation?: boolean;
|
|
58
|
+
lastMatchTime?: number;
|
|
59
|
+
firstSeen?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface UserProfileData {
|
|
62
|
+
preferences: UserProfilePreference[];
|
|
63
|
+
patterns: UserProfilePattern[];
|
|
64
|
+
workflows: UserProfileWorkflow[];
|
|
65
|
+
learning_paths?: {
|
|
66
|
+
topic: string;
|
|
67
|
+
chain: string[];
|
|
68
|
+
description: string;
|
|
69
|
+
}[];
|
|
70
|
+
}
|
|
71
|
+
export interface UserProfile {
|
|
72
|
+
id: string;
|
|
73
|
+
userId: string;
|
|
74
|
+
displayName: string;
|
|
75
|
+
userName: string;
|
|
76
|
+
userEmail: string;
|
|
77
|
+
profileData: string;
|
|
78
|
+
version: number;
|
|
79
|
+
createdAt: number;
|
|
80
|
+
lastAnalyzedAt: number;
|
|
81
|
+
totalPromptsAnalyzed: number;
|
|
82
|
+
isActive: boolean;
|
|
83
|
+
}
|
|
84
|
+
export interface UserProfileChangelog {
|
|
85
|
+
id: string;
|
|
86
|
+
profileId: string;
|
|
87
|
+
version: number;
|
|
88
|
+
changeType: string;
|
|
89
|
+
changeSummary: string;
|
|
90
|
+
profileDataSnapshot: string;
|
|
91
|
+
createdAt: number;
|
|
92
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { UserProfile, UserProfileChangelog, UserProfileData } from "./types.js";
|
|
2
|
+
import { EmbeddingService } from "../embedding.js";
|
|
3
|
+
export declare class UserProfileManager {
|
|
4
|
+
private db;
|
|
5
|
+
private dbPath;
|
|
6
|
+
private initPromise;
|
|
7
|
+
private coldBuffers;
|
|
8
|
+
private coldBufferPath;
|
|
9
|
+
private dedupCheckedCache;
|
|
10
|
+
constructor();
|
|
11
|
+
reset(): void;
|
|
12
|
+
private initialize;
|
|
13
|
+
private ready;
|
|
14
|
+
private emptyColdBuffer;
|
|
15
|
+
private getColdBuffer;
|
|
16
|
+
private loadColdBuffers;
|
|
17
|
+
private saveColdBuffers;
|
|
18
|
+
private initDatabase;
|
|
19
|
+
getActiveProfile(userId: string): Promise<UserProfile | null>;
|
|
20
|
+
createProfile(userId: string, displayName: string, userName: string, userEmail: string, profileData: UserProfileData, promptsAnalyzed: number): Promise<string>;
|
|
21
|
+
updateProfile(profileId: string, profileData: UserProfileData, additionalPromptsAnalyzed: number, changeSummary: string): Promise<boolean>;
|
|
22
|
+
private addChangelog;
|
|
23
|
+
private cleanupOldChangelogs;
|
|
24
|
+
getProfileChangelogs(profileId: string, limit?: number): Promise<UserProfileChangelog[]>;
|
|
25
|
+
getChangelogById(id: string): Promise<UserProfileChangelog | undefined>;
|
|
26
|
+
decayInMemory(data: UserProfileData): {
|
|
27
|
+
data: UserProfileData;
|
|
28
|
+
hasChanges: boolean;
|
|
29
|
+
};
|
|
30
|
+
private decayItems;
|
|
31
|
+
deleteProfile(profileId: string): Promise<void>;
|
|
32
|
+
getProfileById(profileId: string): Promise<UserProfile | null>;
|
|
33
|
+
getAllActiveProfiles(): Promise<UserProfile[]>;
|
|
34
|
+
private rowToProfile;
|
|
35
|
+
private rowToChangelog;
|
|
36
|
+
mergeProfileData(existing: UserProfileData, updates: Partial<UserProfileData>, embedService?: EmbeddingService, profileId?: string): Promise<UserProfileData>;
|
|
37
|
+
private mergeItems;
|
|
38
|
+
/**
|
|
39
|
+
* Merge a new confirmed observation into an existing profile entry.
|
|
40
|
+
* ONLY call for confirmed matches (exact, strong sameCat/crossCat, Thompson upgrade).
|
|
41
|
+
* Do NOT call for forced merge or cross-validation — those handle fields directly.
|
|
42
|
+
*/
|
|
43
|
+
private mergeConfirmedMatch;
|
|
44
|
+
private initItem;
|
|
45
|
+
/**
|
|
46
|
+
* Three-way merge: item1 + item2 + newItem → single combined entry.
|
|
47
|
+
* Called when top-1 and top-2 both strongly match the same new observation
|
|
48
|
+
* within the same category, confirming they describe the same behavior.
|
|
49
|
+
*/
|
|
50
|
+
private combineThree;
|
|
51
|
+
private ensureArray;
|
|
52
|
+
private isMilestone;
|
|
53
|
+
private minEvidenceForEvolve;
|
|
54
|
+
syncConfidence(item: any): void;
|
|
55
|
+
private lazyMigrateAlpha;
|
|
56
|
+
private detectConflicts;
|
|
57
|
+
private checkSemanticDuplicate;
|
|
58
|
+
private deduplicateItems;
|
|
59
|
+
private checkConflict;
|
|
60
|
+
private evolveDescription;
|
|
61
|
+
evolveAndUpdate(item: any, itemType: string, profileId?: string): Promise<void>;
|
|
62
|
+
private callOpencodeProvider;
|
|
63
|
+
private callExternalAPI;
|
|
64
|
+
}
|
|
65
|
+
export declare const userProfileManager: UserProfileManager;
|