opencode-graphiti 0.0.0-development
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 +358 -0
- package/esm/_dnt.polyfills.d.ts +166 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -0
- package/esm/_dnt.polyfills.js +177 -0
- package/esm/_dnt.shims.d.ts +6 -0
- package/esm/_dnt.shims.d.ts.map +1 -0
- package/esm/_dnt.shims.js +61 -0
- package/esm/deno.d.ts +45 -0
- package/esm/deno.d.ts.map +1 -0
- package/esm/deno.js +39 -0
- package/esm/mod.d.ts +3 -0
- package/esm/mod.d.ts.map +1 -0
- package/esm/mod.js +2 -0
- package/esm/package.json +3 -0
- package/esm/src/config.d.ts +20 -0
- package/esm/src/config.d.ts.map +1 -0
- package/esm/src/config.js +246 -0
- package/esm/src/handlers/chat.d.ts +14 -0
- package/esm/src/handlers/chat.d.ts.map +1 -0
- package/esm/src/handlers/chat.js +60 -0
- package/esm/src/handlers/compacting.d.ts +9 -0
- package/esm/src/handlers/compacting.d.ts.map +1 -0
- package/esm/src/handlers/compacting.js +30 -0
- package/esm/src/handlers/event.d.ts +22 -0
- package/esm/src/handlers/event.d.ts.map +1 -0
- package/esm/src/handlers/event.js +287 -0
- package/esm/src/handlers/messages.d.ts +9 -0
- package/esm/src/handlers/messages.d.ts.map +1 -0
- package/esm/src/handlers/messages.js +93 -0
- package/esm/src/index.d.ts +5 -0
- package/esm/src/index.d.ts.map +1 -0
- package/esm/src/index.js +153 -0
- package/esm/src/services/batch-drain.d.ts +23 -0
- package/esm/src/services/batch-drain.d.ts.map +1 -0
- package/esm/src/services/batch-drain.js +217 -0
- package/esm/src/services/connection-manager.d.ts +104 -0
- package/esm/src/services/connection-manager.d.ts.map +1 -0
- package/esm/src/services/connection-manager.js +621 -0
- package/esm/src/services/constants.d.ts +7 -0
- package/esm/src/services/constants.d.ts.map +1 -0
- package/esm/src/services/constants.js +6 -0
- package/esm/src/services/context-limit.d.ts +3 -0
- package/esm/src/services/context-limit.d.ts.map +1 -0
- package/esm/src/services/context-limit.js +44 -0
- package/esm/src/services/event-extractor.d.ts +29 -0
- package/esm/src/services/event-extractor.d.ts.map +1 -0
- package/esm/src/services/event-extractor.js +659 -0
- package/esm/src/services/graphiti-async.d.ts +22 -0
- package/esm/src/services/graphiti-async.d.ts.map +1 -0
- package/esm/src/services/graphiti-async.js +219 -0
- package/esm/src/services/graphiti-mcp.d.ts +57 -0
- package/esm/src/services/graphiti-mcp.d.ts.map +1 -0
- package/esm/src/services/graphiti-mcp.js +194 -0
- package/esm/src/services/logger.d.ts +9 -0
- package/esm/src/services/logger.d.ts.map +1 -0
- package/esm/src/services/logger.js +104 -0
- package/esm/src/services/opencode-warning.d.ts +8 -0
- package/esm/src/services/opencode-warning.d.ts.map +1 -0
- package/esm/src/services/opencode-warning.js +104 -0
- package/esm/src/services/redis-cache.d.ts +27 -0
- package/esm/src/services/redis-cache.d.ts.map +1 -0
- package/esm/src/services/redis-cache.js +215 -0
- package/esm/src/services/redis-client.d.ts +89 -0
- package/esm/src/services/redis-client.d.ts.map +1 -0
- package/esm/src/services/redis-client.js +906 -0
- package/esm/src/services/redis-events.d.ts +46 -0
- package/esm/src/services/redis-events.d.ts.map +1 -0
- package/esm/src/services/redis-events.js +517 -0
- package/esm/src/services/redis-snapshot.d.ts +16 -0
- package/esm/src/services/redis-snapshot.d.ts.map +1 -0
- package/esm/src/services/redis-snapshot.js +184 -0
- package/esm/src/services/render-utils.d.ts +23 -0
- package/esm/src/services/render-utils.d.ts.map +1 -0
- package/esm/src/services/render-utils.js +149 -0
- package/esm/src/services/runtime-teardown.d.ts +23 -0
- package/esm/src/services/runtime-teardown.d.ts.map +1 -0
- package/esm/src/services/runtime-teardown.js +119 -0
- package/esm/src/services/sdk-normalize.d.ts +55 -0
- package/esm/src/services/sdk-normalize.d.ts.map +1 -0
- package/esm/src/services/sdk-normalize.js +61 -0
- package/esm/src/session.d.ts +74 -0
- package/esm/src/session.d.ts.map +1 -0
- package/esm/src/session.js +694 -0
- package/esm/src/types/index.d.ts +120 -0
- package/esm/src/types/index.d.ts.map +1 -0
- package/esm/src/types/index.js +28 -0
- package/esm/src/utils.d.ts +27 -0
- package/esm/src/utils.d.ts.map +1 -0
- package/esm/src/utils.js +76 -0
- package/package.json +59 -0
- package/script/_dnt.polyfills.d.ts +166 -0
- package/script/_dnt.polyfills.d.ts.map +1 -0
- package/script/_dnt.polyfills.js +180 -0
- package/script/_dnt.shims.d.ts +6 -0
- package/script/_dnt.shims.d.ts.map +1 -0
- package/script/_dnt.shims.js +65 -0
- package/script/deno.d.ts +45 -0
- package/script/deno.d.ts.map +1 -0
- package/script/deno.js +41 -0
- package/script/mod.d.ts +3 -0
- package/script/mod.d.ts.map +1 -0
- package/script/mod.js +6 -0
- package/script/package.json +3 -0
- package/script/src/config.d.ts +20 -0
- package/script/src/config.d.ts.map +1 -0
- package/script/src/config.js +256 -0
- package/script/src/handlers/chat.d.ts +14 -0
- package/script/src/handlers/chat.d.ts.map +1 -0
- package/script/src/handlers/chat.js +63 -0
- package/script/src/handlers/compacting.d.ts +9 -0
- package/script/src/handlers/compacting.d.ts.map +1 -0
- package/script/src/handlers/compacting.js +33 -0
- package/script/src/handlers/event.d.ts +22 -0
- package/script/src/handlers/event.d.ts.map +1 -0
- package/script/src/handlers/event.js +290 -0
- package/script/src/handlers/messages.d.ts +9 -0
- package/script/src/handlers/messages.d.ts.map +1 -0
- package/script/src/handlers/messages.js +96 -0
- package/script/src/index.d.ts +5 -0
- package/script/src/index.d.ts.map +1 -0
- package/script/src/index.js +159 -0
- package/script/src/services/batch-drain.d.ts +23 -0
- package/script/src/services/batch-drain.d.ts.map +1 -0
- package/script/src/services/batch-drain.js +221 -0
- package/script/src/services/connection-manager.d.ts +104 -0
- package/script/src/services/connection-manager.d.ts.map +1 -0
- package/script/src/services/connection-manager.js +635 -0
- package/script/src/services/constants.d.ts +7 -0
- package/script/src/services/constants.d.ts.map +1 -0
- package/script/src/services/constants.js +9 -0
- package/script/src/services/context-limit.d.ts +3 -0
- package/script/src/services/context-limit.d.ts.map +1 -0
- package/script/src/services/context-limit.js +47 -0
- package/script/src/services/event-extractor.d.ts +29 -0
- package/script/src/services/event-extractor.d.ts.map +1 -0
- package/script/src/services/event-extractor.js +669 -0
- package/script/src/services/graphiti-async.d.ts +22 -0
- package/script/src/services/graphiti-async.d.ts.map +1 -0
- package/script/src/services/graphiti-async.js +223 -0
- package/script/src/services/graphiti-mcp.d.ts +57 -0
- package/script/src/services/graphiti-mcp.d.ts.map +1 -0
- package/script/src/services/graphiti-mcp.js +198 -0
- package/script/src/services/logger.d.ts +9 -0
- package/script/src/services/logger.d.ts.map +1 -0
- package/script/src/services/logger.js +142 -0
- package/script/src/services/opencode-warning.d.ts +8 -0
- package/script/src/services/opencode-warning.d.ts.map +1 -0
- package/script/src/services/opencode-warning.js +114 -0
- package/script/src/services/redis-cache.d.ts +27 -0
- package/script/src/services/redis-cache.d.ts.map +1 -0
- package/script/src/services/redis-cache.js +219 -0
- package/script/src/services/redis-client.d.ts +89 -0
- package/script/src/services/redis-client.d.ts.map +1 -0
- package/script/src/services/redis-client.js +943 -0
- package/script/src/services/redis-events.d.ts +46 -0
- package/script/src/services/redis-events.d.ts.map +1 -0
- package/script/src/services/redis-events.js +535 -0
- package/script/src/services/redis-snapshot.d.ts +16 -0
- package/script/src/services/redis-snapshot.d.ts.map +1 -0
- package/script/src/services/redis-snapshot.js +189 -0
- package/script/src/services/render-utils.d.ts +23 -0
- package/script/src/services/render-utils.d.ts.map +1 -0
- package/script/src/services/render-utils.js +165 -0
- package/script/src/services/runtime-teardown.d.ts +23 -0
- package/script/src/services/runtime-teardown.d.ts.map +1 -0
- package/script/src/services/runtime-teardown.js +155 -0
- package/script/src/services/sdk-normalize.d.ts +55 -0
- package/script/src/services/sdk-normalize.d.ts.map +1 -0
- package/script/src/services/sdk-normalize.js +67 -0
- package/script/src/session.d.ts +74 -0
- package/script/src/session.d.ts.map +1 -0
- package/script/src/session.js +698 -0
- package/script/src/types/index.d.ts +120 -0
- package/script/src/types/index.d.ts.map +1 -0
- package/script/src/types/index.js +33 -0
- package/script/src/utils.d.ts +27 -0
- package/script/src/utils.d.ts.map +1 -0
- package/script/src/utils.js +87 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unwrapSdkResponse = unwrapSdkResponse;
|
|
4
|
+
exports.extractSdkMessages = extractSdkMessages;
|
|
5
|
+
exports.extractSdkProviders = extractSdkProviders;
|
|
6
|
+
exports.normalizeEpisode = normalizeEpisode;
|
|
7
|
+
/**
|
|
8
|
+
* Normalize an SDK response that may be wrapped in `{ data: … }` or returned
|
|
9
|
+
* directly. Returns the inner value cast to `T`, or `undefined` when the
|
|
10
|
+
* response is absent.
|
|
11
|
+
*
|
|
12
|
+
* This replaces the repeated `"data" in response ? (response as
|
|
13
|
+
* { data?: … }).data : response` pattern found in session.ts and
|
|
14
|
+
* context-limit.ts.
|
|
15
|
+
*/
|
|
16
|
+
function unwrapSdkResponse(response) {
|
|
17
|
+
if (response == null)
|
|
18
|
+
return undefined;
|
|
19
|
+
if (typeof response === "object" && "data" in response) {
|
|
20
|
+
return response.data;
|
|
21
|
+
}
|
|
22
|
+
return response;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Extract the messages array from a raw `session.messages()` response.
|
|
26
|
+
* Returns an empty array when the response is missing or malformed.
|
|
27
|
+
*/
|
|
28
|
+
function extractSdkMessages(response) {
|
|
29
|
+
const payload = unwrapSdkResponse(response);
|
|
30
|
+
return Array.isArray(payload) ? payload : [];
|
|
31
|
+
}
|
|
32
|
+
function extractSdkProviders(response) {
|
|
33
|
+
// provider.list() may return `{ providers: [...] }` directly (no data wrap).
|
|
34
|
+
if (response != null && typeof response === "object") {
|
|
35
|
+
const obj = response;
|
|
36
|
+
if (Array.isArray(obj["providers"])) {
|
|
37
|
+
return obj["providers"];
|
|
38
|
+
}
|
|
39
|
+
if ("data" in obj) {
|
|
40
|
+
const data = obj["data"];
|
|
41
|
+
if (data != null && typeof data === "object") {
|
|
42
|
+
const dataObj = data;
|
|
43
|
+
if (Array.isArray(dataObj["providers"])) {
|
|
44
|
+
return dataObj["providers"];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (Array.isArray(data))
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Normalize a raw Graphiti episode object so that `sourceDescription` is
|
|
55
|
+
* always the canonical field regardless of whether the payload used
|
|
56
|
+
* camelCase (`sourceDescription`) or snake_case (`source_description`).
|
|
57
|
+
*
|
|
58
|
+
* Call this at the API boundary (e.g. inside `GraphitiClient.getEpisodes`)
|
|
59
|
+
* so all downstream consumers only need to read `episode.sourceDescription`.
|
|
60
|
+
*/
|
|
61
|
+
function normalizeEpisode(raw) {
|
|
62
|
+
const { source_description, ...rest } = raw;
|
|
63
|
+
return {
|
|
64
|
+
...rest,
|
|
65
|
+
sourceDescription: rest.sourceDescription ?? source_description,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { OpencodeClient } from "@opencode-ai/sdk";
|
|
2
|
+
import { type RedisCacheService } from "./services/redis-cache.js";
|
|
3
|
+
import type { RedisEventsService } from "./services/redis-events.js";
|
|
4
|
+
import type { RedisSnapshotService } from "./services/redis-snapshot.js";
|
|
5
|
+
import { type PreparedSessionMemory } from "./types/index.js";
|
|
6
|
+
export type SessionState = {
|
|
7
|
+
groupId: string;
|
|
8
|
+
userGroupId: string;
|
|
9
|
+
injectedMemories: boolean;
|
|
10
|
+
messageCount: number;
|
|
11
|
+
contextLimit: number;
|
|
12
|
+
isMain: boolean;
|
|
13
|
+
hotTierReady: boolean;
|
|
14
|
+
latestUserRequest?: string;
|
|
15
|
+
latestRefreshQuery?: string;
|
|
16
|
+
pendingInjection?: PreparedSessionMemory;
|
|
17
|
+
pendingInjectionGeneration: number;
|
|
18
|
+
};
|
|
19
|
+
type TimerHandle = ReturnType<typeof setTimeout> | number;
|
|
20
|
+
export interface SessionManagerOptions {
|
|
21
|
+
idleRetentionMs?: number;
|
|
22
|
+
setTimer?: (callback: () => void, delayMs: number) => TimerHandle;
|
|
23
|
+
clearTimer?: (timer: TimerHandle) => void;
|
|
24
|
+
}
|
|
25
|
+
export declare class SessionManager {
|
|
26
|
+
private readonly defaultGroupId;
|
|
27
|
+
private readonly defaultUserGroupId;
|
|
28
|
+
private readonly sdkClient;
|
|
29
|
+
private readonly redisEvents;
|
|
30
|
+
private readonly redisSnapshot;
|
|
31
|
+
private readonly redisCache;
|
|
32
|
+
private sessions;
|
|
33
|
+
private parentIdCache;
|
|
34
|
+
private canonicalSessionIdCache;
|
|
35
|
+
private temporaryRootSessionIds;
|
|
36
|
+
private pendingAssistantMessages;
|
|
37
|
+
private pendingAssistantCompletions;
|
|
38
|
+
private bufferedAssistantMessageIds;
|
|
39
|
+
private sessionLifecycles;
|
|
40
|
+
private readonly idleRetentionMs;
|
|
41
|
+
private readonly setTimerImpl;
|
|
42
|
+
private readonly clearTimerImpl;
|
|
43
|
+
constructor(defaultGroupId: string, defaultUserGroupId: string, sdkClient: OpencodeClient, redisEvents: RedisEventsService, redisSnapshot: RedisSnapshotService, redisCache: RedisCacheService, options?: SessionManagerOptions);
|
|
44
|
+
createDefaultState(groupId: string, userGroupId: string): SessionState;
|
|
45
|
+
getState(sessionId: string): SessionState | undefined;
|
|
46
|
+
setState(sessionId: string, state: SessionState): void;
|
|
47
|
+
markSessionActive(sessionId: string): void;
|
|
48
|
+
markResolvedSessionActive(sessionId: string, canonicalSessionId?: string): void;
|
|
49
|
+
private markLifecycleActive;
|
|
50
|
+
captureIdleCleanupGeneration(sessionId: string): number | null;
|
|
51
|
+
scheduleIdleSessionCleanup(sessionId: string, expectedActivityGeneration?: number): void;
|
|
52
|
+
setParentId(sessionId: string, parentId: string | null): void;
|
|
53
|
+
private mergeSessionState;
|
|
54
|
+
private migrateTemporaryRootRuntimeState;
|
|
55
|
+
resolveParentId(sessionId: string): Promise<string | null | undefined>;
|
|
56
|
+
resolveCanonicalSessionId(sessionId: string, visited?: Set<string>): Promise<string | undefined>;
|
|
57
|
+
resolveSessionState(sessionId: string): Promise<{
|
|
58
|
+
state: SessionState | null;
|
|
59
|
+
resolved: boolean;
|
|
60
|
+
canonicalSessionId?: string;
|
|
61
|
+
}>;
|
|
62
|
+
bufferAssistantPart(sessionId: string, messageId: string, text: string, sourceSessionId?: string): void;
|
|
63
|
+
isAssistantBuffered(sessionId: string, messageId: string): boolean;
|
|
64
|
+
hasPendingAssistantCompletion(sessionId: string, messageId: string): boolean;
|
|
65
|
+
finalizeAssistantMessage(_state: SessionState, sessionId: string, messageId: string, source: string): string | null;
|
|
66
|
+
deletePendingAssistant(sessionId: string, messageId: string): void;
|
|
67
|
+
clearPendingInjection(state: SessionState, prepared?: PreparedSessionMemory | null): void;
|
|
68
|
+
purgeAssistantBufferSource(sourceSessionId: string): void;
|
|
69
|
+
prepareInjection(sessionId: string, lastRequest?: string): Promise<PreparedSessionMemory | null>;
|
|
70
|
+
deleteSession(sessionId: string): void;
|
|
71
|
+
private getLifecycle;
|
|
72
|
+
}
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/src/session.ts"],"names":[],"mappings":"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"}
|