opencode-graphiti 0.2.4-canary.ff69c1e.20260510125244 → 0.2.4

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.
Files changed (85) hide show
  1. package/esm/src/handlers/chat.js +2 -2
  2. package/esm/src/handlers/compacting.d.ts.map +1 -1
  3. package/esm/src/handlers/compacting.js +3 -3
  4. package/esm/src/handlers/messages.d.ts.map +1 -1
  5. package/esm/src/handlers/messages.js +8 -15
  6. package/esm/src/index.d.ts.map +1 -1
  7. package/esm/src/index.js +14 -86
  8. package/esm/src/services/opencode-warning.d.ts +0 -1
  9. package/esm/src/services/opencode-warning.d.ts.map +1 -1
  10. package/esm/src/services/opencode-warning.js +0 -3
  11. package/esm/src/services/redis-snapshot.d.ts +0 -8
  12. package/esm/src/services/redis-snapshot.d.ts.map +1 -1
  13. package/esm/src/services/redis-snapshot.js +0 -12
  14. package/esm/src/services/runtime-teardown.d.ts +0 -1
  15. package/esm/src/services/runtime-teardown.d.ts.map +1 -1
  16. package/esm/src/services/runtime-teardown.js +4 -13
  17. package/esm/src/services/session-mcp-runtime.d.ts +1 -11
  18. package/esm/src/services/session-mcp-runtime.d.ts.map +1 -1
  19. package/esm/src/services/session-mcp-runtime.js +30 -169
  20. package/esm/src/services/session-mcp-types.d.ts +21 -171
  21. package/esm/src/services/session-mcp-types.d.ts.map +1 -1
  22. package/esm/src/services/session-mcp-types.js +5 -47
  23. package/esm/src/session.d.ts +1 -7
  24. package/esm/src/session.d.ts.map +1 -1
  25. package/esm/src/session.js +13 -36
  26. package/esm/src/types/index.d.ts +0 -14
  27. package/esm/src/types/index.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/script/src/handlers/chat.js +2 -2
  30. package/script/src/handlers/compacting.d.ts.map +1 -1
  31. package/script/src/handlers/compacting.js +3 -3
  32. package/script/src/handlers/messages.d.ts.map +1 -1
  33. package/script/src/handlers/messages.js +8 -15
  34. package/script/src/index.d.ts.map +1 -1
  35. package/script/src/index.js +12 -84
  36. package/script/src/services/opencode-warning.d.ts +0 -1
  37. package/script/src/services/opencode-warning.d.ts.map +1 -1
  38. package/script/src/services/opencode-warning.js +1 -5
  39. package/script/src/services/redis-snapshot.d.ts +0 -8
  40. package/script/src/services/redis-snapshot.d.ts.map +1 -1
  41. package/script/src/services/redis-snapshot.js +1 -14
  42. package/script/src/services/runtime-teardown.d.ts +0 -1
  43. package/script/src/services/runtime-teardown.d.ts.map +1 -1
  44. package/script/src/services/runtime-teardown.js +4 -15
  45. package/script/src/services/session-mcp-runtime.d.ts +1 -11
  46. package/script/src/services/session-mcp-runtime.d.ts.map +1 -1
  47. package/script/src/services/session-mcp-runtime.js +31 -170
  48. package/script/src/services/session-mcp-types.d.ts +21 -171
  49. package/script/src/services/session-mcp-types.d.ts.map +1 -1
  50. package/script/src/services/session-mcp-types.js +5 -47
  51. package/script/src/session.d.ts +1 -7
  52. package/script/src/session.d.ts.map +1 -1
  53. package/script/src/session.js +13 -36
  54. package/script/src/types/index.d.ts +0 -14
  55. package/script/src/types/index.d.ts.map +1 -1
  56. package/esm/src/services/dream-store.d.ts +0 -21
  57. package/esm/src/services/dream-store.d.ts.map +0 -1
  58. package/esm/src/services/dream-store.js +0 -96
  59. package/esm/src/services/exact-history.d.ts +0 -10
  60. package/esm/src/services/exact-history.d.ts.map +0 -1
  61. package/esm/src/services/exact-history.js +0 -3
  62. package/esm/src/services/memory-results.d.ts +0 -6
  63. package/esm/src/services/memory-results.d.ts.map +0 -1
  64. package/esm/src/services/memory-results.js +0 -23
  65. package/esm/src/services/memory-search.d.ts +0 -29
  66. package/esm/src/services/memory-search.d.ts.map +0 -1
  67. package/esm/src/services/memory-search.js +0 -53
  68. package/esm/src/services/session-notes.d.ts +0 -70
  69. package/esm/src/services/session-notes.d.ts.map +0 -1
  70. package/esm/src/services/session-notes.js +0 -438
  71. package/script/src/services/dream-store.d.ts +0 -21
  72. package/script/src/services/dream-store.d.ts.map +0 -1
  73. package/script/src/services/dream-store.js +0 -100
  74. package/script/src/services/exact-history.d.ts +0 -10
  75. package/script/src/services/exact-history.d.ts.map +0 -1
  76. package/script/src/services/exact-history.js +0 -7
  77. package/script/src/services/memory-results.d.ts +0 -6
  78. package/script/src/services/memory-results.d.ts.map +0 -1
  79. package/script/src/services/memory-results.js +0 -28
  80. package/script/src/services/memory-search.d.ts +0 -29
  81. package/script/src/services/memory-search.d.ts.map +0 -1
  82. package/script/src/services/memory-search.js +0 -58
  83. package/script/src/services/session-notes.d.ts +0 -70
  84. package/script/src/services/session-notes.d.ts.map +0 -1
  85. package/script/src/services/session-notes.js +0 -443
@@ -34,7 +34,7 @@ export function createChatHandler(deps) {
34
34
  if (prepared) {
35
35
  state.injectedMemories = true;
36
36
  }
37
- logger.info("Prepared local memory for chat transform", {
37
+ logger.info("Prepared local session memory for chat transform", {
38
38
  sessionID: canonicalSessionId,
39
39
  sourceSessionID: sessionID,
40
40
  hotTierReady: state.hotTierReady,
@@ -48,7 +48,7 @@ export function createChatHandler(deps) {
48
48
  }
49
49
  }
50
50
  catch (error) {
51
- logger.warn("Unable to prepare local memory for chat transform", {
51
+ logger.warn("Unable to prepare local session memory for chat transform", {
52
52
  sessionID,
53
53
  error,
54
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"compacting.d.ts","sourceRoot":"","sources":["../../../src/src/handlers/compacting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,KAAK,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAI5E,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,qBAAqB,GAC1B,cAAc,CAqChB"}
1
+ {"version":3,"file":"compacting.d.ts","sourceRoot":"","sources":["../../../src/src/handlers/compacting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,KAAK,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAI5E,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,qBAAqB,GAC1B,cAAc,CAmChB"}
@@ -9,19 +9,19 @@ export function createCompactingHandler(deps) {
9
9
  if (!state?.isMain)
10
10
  return;
11
11
  sessionManager.markResolvedSessionActive(sessionID, canonicalSessionId);
12
- const prepared = await sessionManager.prepareInjection(canonicalSessionId, undefined, { forCompaction: true });
12
+ const prepared = await sessionManager.prepareInjection(canonicalSessionId);
13
13
  if (!prepared?.envelope)
14
14
  return;
15
15
  output.context.push(prepared.envelope);
16
16
  sessionManager.clearPendingInjection(state, prepared);
17
- logger.info("Injected local memory into compaction context", {
17
+ logger.info("Injected local session_memory into compaction context", {
18
18
  sessionID: canonicalSessionId,
19
19
  sourceSessionID: sessionID,
20
20
  hotTierReady: state.hotTierReady,
21
21
  });
22
22
  }
23
23
  catch (error) {
24
- logger.warn("Unable to prepare local memory for compaction", {
24
+ logger.warn("Unable to prepare local session memory for compaction", {
25
25
  sessionID,
26
26
  error,
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/src/handlers/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAQjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,KAAK,qBAAqB,GAAG,WAAW,CACtC,KAAK,CAAC,sCAAsC,CAAC,CAC9C,CAAC;AAIF,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,cAAc,CAAC;CAChC;AAuGD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,GACxB,qBAAqB,CAmEvB"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/src/handlers/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAQjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,KAAK,qBAAqB,GAAG,WAAW,CACtC,KAAK,CAAC,sCAAsC,CAAC,CAC9C,CAAC;AAIF,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,cAAc,CAAC;CAChC;AAyFD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,GACxB,qBAAqB,CAmEvB"}
@@ -9,24 +9,16 @@ const getTransformMessage = (input) => {
9
9
  return typeof message === "string" ? message : undefined;
10
10
  };
11
11
  const LEADING_SESSION_MEMORY_BLOCK = /^<session_memory\b[^>]*>[\s\S]*?<\/session_memory>(?:\r?\n){0,2}/;
12
- const LEADING_MEMORY_BLOCK = /^<memory\b[^>]*>[\s\S]*?<\/memory>(?:\r?\n){0,2}/;
12
+ const LEADING_INJECTED_LEGACY_MEMORY_BLOCK_WITH_UUIDS = /^<memory\b(?=[^>]*\bdata-uuids=(["'])(?:[^"']*)\1)[^>]*>[\s\S]*?<\/memory>(?:\r?\n){0,2}/;
13
+ const LEADING_INJECTED_EMPTY_LEGACY_MEMORY_BLOCK = /^<memory\b(?![^>]*\bdata-uuids=)[^>]*>\s*<\/memory>(?:\r?\n){0,2}/;
13
14
  const LEADING_PERSISTENT_MEMORY_BLOCK = /^<persistent_memory\b[^>]*>[\s\S]*?<\/persistent_memory>(?:\r?\n){0,2}/;
14
15
  const SESSION_MEMORY_SOURCE_ATTR_PATTERN = /<session_memory\b[^>]*\bsource=(['"])[^'"]+\1/i;
15
16
  const SESSION_MEMORY_GENERATED_SECTION_PATTERN = /<(?:session_snapshot|persistent_memory)\b/i;
16
- const MEMORY_VERSION_ATTR_PATTERN = /<memory\b[^>]*\bversion=(['"])2\1/i;
17
- const LEGACY_MEMORY_UUID_ATTR_PATTERN = /<memory\b[^>]*\bdata-uuids=(['"])(?:[^'"]*)\1/i;
18
- const EMPTY_MEMORY_BLOCK_PATTERN = /^<memory\b[^>]*>\s*<\/memory>$/i;
19
- const MEMORY_GENERATED_SECTION_PATTERN = /<(?:session_snapshot|persistent_memory)\b/i;
20
17
  const PERSISTENT_MEMORY_GENERATED_CONTENT_PATTERN = /<(?:node|fact|episode)\b/i;
21
18
  const USER_MEMORY_ENVELOPE_TAG_PATTERN = /<\/?(?:session_memory|memory|persistent_memory)\b[^>]*>/gi;
22
19
  const looksLikeInjectedSessionMemoryBlock = (block, allowAttrlessFollowup) => SESSION_MEMORY_SOURCE_ATTR_PATTERN.test(block) ||
23
20
  SESSION_MEMORY_GENERATED_SECTION_PATTERN.test(block) ||
24
21
  allowAttrlessFollowup;
25
- const looksLikeInjectedMemoryBlock = (block, allowAttrlessFollowup) => MEMORY_VERSION_ATTR_PATTERN.test(block) ||
26
- LEGACY_MEMORY_UUID_ATTR_PATTERN.test(block) ||
27
- EMPTY_MEMORY_BLOCK_PATTERN.test(block) ||
28
- MEMORY_GENERATED_SECTION_PATTERN.test(block) ||
29
- allowAttrlessFollowup;
30
22
  const looksLikeInjectedPersistentMemoryBlock = (block) => PERSISTENT_MEMORY_GENERATED_CONTENT_PATTERN.test(block);
31
23
  const scrubPromptMemoryText = (text) => {
32
24
  let scrubbed = text;
@@ -41,10 +33,11 @@ const scrubPromptMemoryText = (text) => {
41
33
  scrubbedInjectedPrefix = true;
42
34
  continue;
43
35
  }
44
- const leadingMemory = scrubbed.match(LEADING_MEMORY_BLOCK)?.[0];
45
- if (leadingMemory &&
46
- looksLikeInjectedMemoryBlock(leadingMemory, scrubbedInjectedPrefix)) {
47
- scrubbed = scrubbed.slice(leadingMemory.length);
36
+ const next = scrubbed
37
+ .replace(LEADING_INJECTED_LEGACY_MEMORY_BLOCK_WITH_UUIDS, "")
38
+ .replace(LEADING_INJECTED_EMPTY_LEGACY_MEMORY_BLOCK, "");
39
+ if (next !== scrubbed) {
40
+ scrubbed = next;
48
41
  scrubbedInjectedPrefix = true;
49
42
  continue;
50
43
  }
@@ -90,7 +83,7 @@ export function createMessagesHandler(deps) {
90
83
  return;
91
84
  }
92
85
  textPart.text = `${prepared.envelope}\n\n${effectiveUserText}`;
93
- logger.info("Injected canonical memory block", {
86
+ logger.info("Injected canonical session_memory block", {
94
87
  sessionID: canonicalSessionId,
95
88
  sourceSessionID,
96
89
  rewroteExistingMemory: scrubbedUserText !== latestUserText,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,MAAM,EAAe,MAAM,qBAAqB,CAAC;AA6GtE,eAAO,MAAM,gCAAgC,GAC3C,WAAW,OAAO,EAClB,UAAU,MAAM,KACf,IAOF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,WAAW,OAAO,EAClB,UAAU,MAAM,KACf,IAOF,CAAC;AAmCF,eAAO,MAAM,QAAQ,EAAE,MAkTtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAsE/D,eAAO,MAAM,gCAAgC,GAC3C,WAAW,OAAO,EAClB,UAAU,MAAM,KACf,IAOF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,WAAW,OAAO,EAClB,UAAU,MAAM,KACf,IAOF,CAAC;AA+BF,eAAO,MAAM,QAAQ,EAAE,MA0OtB,CAAC"}
package/esm/src/index.js CHANGED
@@ -11,32 +11,18 @@ import { GraphitiConnectionManager } from "./services/connection-manager.js";
11
11
  import { GraphitiAsyncService } from "./services/graphiti-async.js";
12
12
  import { GraphitiMcpClient } from "./services/graphiti-mcp.js";
13
13
  import { redactEndpointUserInfo } from "./services/endpoint-redaction.js";
14
- import { notifyDreamShutdownDelay, notifyGraphitiAvailabilityIssue, setOpenCodeClient, } from "./services/opencode-warning.js";
14
+ import { notifyGraphitiAvailabilityIssue, setOpenCodeClient, } from "./services/opencode-warning.js";
15
15
  import { RedisCacheService } from "./services/redis-cache.js";
16
16
  import { RedisClient } from "./services/redis-client.js";
17
17
  import { RedisEventsService } from "./services/redis-events.js";
18
- import { DreamStore } from "./services/dream-store.js";
19
18
  import { logger } from "./services/logger.js";
20
- import { SessionNotesService } from "./services/session-notes.js";
21
19
  import { RedisSnapshotService } from "./services/redis-snapshot.js";
22
20
  import { registerRuntimeTeardown } from "./services/runtime-teardown.js";
23
21
  import { createSessionExecutor } from "./services/session-executor.js";
24
- import { createSessionMcpRuntime, SESSION_SEARCH_STRENGTHENED_DESCRIPTION, } from "./services/session-mcp-runtime.js";
22
+ import { createSessionMcpRuntime } from "./services/session-mcp-runtime.js";
25
23
  import { ToolGuidanceCache } from "./services/tool-guidance-cache.js";
26
24
  import { ToolRoutingOutcomeCache } from "./services/tool-routing-outcome-cache.js";
27
25
  import { makeGroupId, makeUserGroupId } from "./utils.js";
28
- const getTrackedRootSessionIds = (sessionManager) => {
29
- const manager = sessionManager;
30
- const tracked = manager.getTrackedRootSessionIds;
31
- if (typeof tracked === "function") {
32
- return tracked.call(sessionManager);
33
- }
34
- if (!(manager.sessions instanceof Map))
35
- return [];
36
- return [...manager.sessions.entries()]
37
- .filter(([, state]) => state?.isMain)
38
- .map(([sessionId]) => sessionId);
39
- };
40
26
  let activeRuntimeTeardown = null;
41
27
  let runtimeInitialization = Promise.resolve();
42
28
  export const warnOnGraphitiStartupUnavailable = (connected, endpoint) => {
@@ -54,7 +40,6 @@ export const warnOnRedisStartupUnavailable = (connected, endpoint) => {
54
40
  const defaultGraphitiDependencies = {
55
41
  loadConfig,
56
42
  setOpenCodeClient,
57
- notifyDreamShutdownDelay,
58
43
  warnOnGraphitiStartupUnavailable,
59
44
  warnOnRedisStartupUnavailable,
60
45
  GraphitiConnectionManager,
@@ -64,8 +49,6 @@ const defaultGraphitiDependencies = {
64
49
  RedisEventsService,
65
50
  RedisSnapshotService,
66
51
  RedisCacheService,
67
- DreamStore,
68
- SessionNotesService,
69
52
  BatchDrainService,
70
53
  GraphitiAsyncService,
71
54
  createSessionExecutor,
@@ -81,7 +64,6 @@ const defaultGraphitiDependencies = {
81
64
  ToolRoutingOutcomeCache,
82
65
  makeGroupId,
83
66
  makeUserGroupId,
84
- now: () => new Date().toISOString(),
85
67
  };
86
68
  export const graphiti = (input, dependencies = defaultGraphitiDependencies) => {
87
69
  const setup = runtimeInitialization.then(async () => {
@@ -155,17 +137,13 @@ export const graphiti = (input, dependencies = defaultGraphitiDependencies) => {
155
137
  ttlSeconds: config.redis.cacheTtlSeconds,
156
138
  driftThreshold: config.graphiti.driftThreshold,
157
139
  });
158
- const dreamStore = new dependencies.DreamStore(redisClient);
159
- const defaultGroupId = dependencies.makeGroupId(config.graphiti.groupIdPrefix, input.directory);
160
- const defaultUserGroupId = dependencies.makeUserGroupId(config.graphiti.groupIdPrefix, input.directory);
161
- const notesService = new dependencies.SessionNotesService(redisClient, {
162
- groupId: defaultGroupId,
163
- });
164
140
  const batchDrain = new dependencies.BatchDrainService(redisClient, redisEvents, {
165
141
  batchSize: config.redis.batchSize,
166
142
  batchMaxBytes: config.redis.batchMaxBytes,
167
143
  drainRetryMax: config.redis.drainRetryMax,
168
144
  });
145
+ const defaultGroupId = dependencies.makeGroupId(config.graphiti.groupIdPrefix, input.directory);
146
+ const defaultUserGroupId = dependencies.makeUserGroupId(config.graphiti.groupIdPrefix, input.directory);
169
147
  const graphitiAsync = new dependencies.GraphitiAsyncService(graphitiClient, redisCache, batchDrain);
170
148
  startupCleanupTasks.unshift({
171
149
  name: "graphiti-async",
@@ -175,7 +153,6 @@ export const graphiti = (input, dependencies = defaultGraphitiDependencies) => {
175
153
  const sessionMcpRuntime = dependencies.createSessionMcpRuntime({
176
154
  redisClient,
177
155
  graphitiCache: redisCache,
178
- notesService,
179
156
  sessionTtlSeconds: config.redis.sessionTtlSeconds,
180
157
  groupId: defaultGroupId,
181
158
  sessionExecutor,
@@ -187,37 +164,12 @@ export const graphiti = (input, dependencies = defaultGraphitiDependencies) => {
187
164
  });
188
165
  const sessionManager = new dependencies.SessionManager(defaultGroupId, defaultUserGroupId, input.client, redisEvents, redisSnapshot, redisCache, {
189
166
  idleRetentionMs: config.redis.sessionTtlSeconds * 1000,
190
- notesService,
191
167
  runtimeStateMigrator: sessionMcpRuntime,
192
168
  });
193
169
  sessionMcpRuntime.setSessionCanonicalizer(sessionManager);
194
170
  const toolGuidanceCache = new dependencies.ToolGuidanceCache();
195
171
  const toolRoutingOutcomes = new dependencies.ToolRoutingOutcomeCache();
196
- const sessionBiasState = new Map();
197
- const chatHandler = dependencies.createChatHandler({
198
- sessionManager,
199
- redisEvents,
200
- graphitiAsync,
201
- drainTriggerSize: config.redis.batchSize,
202
- });
203
- const compactingHandler = dependencies
204
- .createCompactingHandler({
205
- sessionManager,
206
- });
207
172
  startupTeardown = dependencies.registerRuntimeTeardown([
208
- {
209
- name: "dream-shutdown-warning",
210
- run: async () => {
211
- const targetWatermark = dependencies.now();
212
- for (const rootSessionId of getTrackedRootSessionIds(sessionManager)) {
213
- const watermark = await dreamStore.getWatermark(rootSessionId);
214
- if (watermark === null || watermark < targetWatermark) {
215
- dependencies.notifyDreamShutdownDelay();
216
- return;
217
- }
218
- }
219
- },
220
- },
221
173
  {
222
174
  name: "graphiti-drain-flush",
223
175
  run: () => graphitiAsync.flushPendingGroups(sessionManager.getTrackedGroupIds()),
@@ -252,45 +204,21 @@ export const graphiti = (input, dependencies = defaultGraphitiDependencies) => {
252
204
  sdkClient: input.client,
253
205
  directory: input.directory,
254
206
  }),
255
- "chat.message": async (hookInput, output) => {
256
- const canonicalSessionId = sessionManager.getCachedCanonicalSessionId(hookInput.sessionID) ??
257
- await sessionManager.resolveCanonicalSessionId(hookInput.sessionID);
258
- if (canonicalSessionId && !sessionBiasState.has(canonicalSessionId)) {
259
- const priorEvents = await redisEvents.getRecentSessionEvents(canonicalSessionId, 1, false);
260
- if (priorEvents.length === 0) {
261
- sessionBiasState.set(canonicalSessionId, "new-session");
262
- }
263
- }
264
- await chatHandler(hookInput, output);
265
- },
266
- "experimental.session.compacting": async (hookInput, output) => {
267
- const canonicalSessionId = sessionManager.getCachedCanonicalSessionId(hookInput.sessionID) ??
268
- await sessionManager.resolveCanonicalSessionId(hookInput.sessionID);
269
- if (canonicalSessionId) {
270
- sessionBiasState.set(canonicalSessionId, "post-compaction");
271
- }
272
- await compactingHandler(hookInput, output);
273
- },
207
+ "chat.message": dependencies.createChatHandler({
208
+ sessionManager,
209
+ redisEvents,
210
+ graphitiAsync,
211
+ drainTriggerSize: config.redis.batchSize,
212
+ }),
213
+ "experimental.session.compacting": dependencies
214
+ .createCompactingHandler({
215
+ sessionManager,
216
+ }),
274
217
  "experimental.chat.messages.transform": dependencies
275
218
  .createMessagesHandler({
276
219
  sessionManager,
277
220
  }),
278
221
  tool: sessionMcpRuntime.tools,
279
- "tool.definition": (hookInput, output) => {
280
- if (hookInput.toolID !== "session_search")
281
- return Promise.resolve();
282
- let anyBiased = false;
283
- for (const [sessionId, state] of sessionBiasState) {
284
- if (state === "normal")
285
- continue;
286
- anyBiased = true;
287
- sessionBiasState.delete(sessionId);
288
- }
289
- if (anyBiased) {
290
- output.description = SESSION_SEARCH_STRENGTHENED_DESCRIPTION;
291
- }
292
- return Promise.resolve();
293
- },
294
222
  "tool.execute.before": dependencies.createToolBeforeHandler({
295
223
  sessionCanonicalizer: sessionManager,
296
224
  guidanceThrottle: toolGuidanceCache,
@@ -6,5 +6,4 @@ export declare const logStructuredWarning: (message: string, extra?: unknown) =>
6
6
  export declare const showWarningToast: (message: string, extra?: unknown) => boolean;
7
7
  export declare const notifyPluginWarning: (message: string, extra?: unknown) => void;
8
8
  export declare const notifyGraphitiAvailabilityIssue: (message: string, extra?: unknown) => void;
9
- export declare const notifyDreamShutdownDelay: () => void;
10
9
  //# sourceMappingURL=opencode-warning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-warning.d.ts","sourceRoot":"","sources":["../../../src/src/services/opencode-warning.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,wCAAwC,QAAO,OAM3D,CAAC;AA6FF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,OAAO,KACd,IAEF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,KACtD,IAIF,CAAC;AAEF,eAAO,MAAM,6CAA6C,GACxD,OAAO,OAAO,GAAG,SAAS,KACzB,IAEF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,QAAQ,OAAO,KACd,OAEF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,EAAE,QAAQ,OAAO,KAAG,OAEnE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,QAAQ,OAAO,KACd,IAMF,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,SAAS,MAAM,EACf,QAAQ,OAAO,KACd,IAEF,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,IAI3C,CAAC"}
1
+ {"version":3,"file":"opencode-warning.d.ts","sourceRoot":"","sources":["../../../src/src/services/opencode-warning.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,wCAAwC,QAAO,OAM3D,CAAC;AA6FF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,OAAO,KACd,IAEF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,KACtD,IAIF,CAAC;AAEF,eAAO,MAAM,6CAA6C,GACxD,OAAO,OAAO,GAAG,SAAS,KACzB,IAEF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,QAAQ,OAAO,KACd,OAEF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,EAAE,QAAQ,OAAO,KAAG,OAEnE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,QAAQ,OAAO,KACd,IAMF,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,SAAS,MAAM,EACf,QAAQ,OAAO,KACd,IAEF,CAAC"}
@@ -105,6 +105,3 @@ export const notifyPluginWarning = (message, extra) => {
105
105
  export const notifyGraphitiAvailabilityIssue = (message, extra) => {
106
106
  notifyPluginWarning(message, extra);
107
107
  };
108
- export const notifyDreamShutdownDelay = () => {
109
- notifyPluginWarning("Dreaming is still in progress; keep OpenCode open and wait for dreaming to complete before exiting.");
110
- };
@@ -1,13 +1,5 @@
1
1
  import { type SessionEvent } from "../types/index.js";
2
2
  import type { RedisClient } from "./redis-client.js";
3
- import type { NormalizedMemoryResult } from "../types/index.js";
4
- export declare const createSnapshotSummaryResult: (input: {
5
- rootSessionId: string;
6
- created_at: string;
7
- snippet: string;
8
- id?: string;
9
- granularity?: string;
10
- }) => NormalizedMemoryResult;
11
3
  export declare const buildSessionSnapshotXml: (sessionId: string, events: SessionEvent[]) => string;
12
4
  export interface RedisSnapshotServiceOptions {
13
5
  ttlSeconds: number;
@@ -1 +1 @@
1
- {"version":3,"file":"redis-snapshot.d.ts","sourceRoot":"","sources":["../../../src/src/services/redis-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAKhE,eAAO,MAAM,2BAA2B,GAAI,OAAO;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAG,sBAaF,CAAC;AAoBH,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,EACjB,QAAQ,YAAY,EAAE,KACrB,MAiOF,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,2BAA2B;IAGjD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAItD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EAAE,GACrB,OAAO,CAAC,MAAM,CAAC;CAKnB"}
1
+ {"version":3,"file":"redis-snapshot.d.ts","sourceRoot":"","sources":["../../../src/src/services/redis-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgCrD,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,EACjB,QAAQ,YAAY,EAAE,KACrB,MAiOF,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,2BAA2B;IAGjD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAItD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EAAE,GACrB,OAAO,CAAC,MAAM,CAAC;CAKnB"}
@@ -3,18 +3,6 @@ import { sessionSnapshotKey } from "./redis-events.js";
3
3
  import { escapeXml, normalizeMemoryText, renderXmlListSection, renderXmlSingleSection, sanitizeMemoryInput, uniqueNormalizedValues, } from "./render-utils.js";
4
4
  const SNAPSHOT_BUDGET = 3_000;
5
5
  const BLOCKER_PATTERN = /\b(blocker|blocked|blocking)\b/i;
6
- export const createSnapshotSummaryResult = (input) => ({
7
- type: "summary",
8
- ref: `session:${input.rootSessionId}:summary:snapshot:${input.id ?? input.created_at}`,
9
- snippet: input.snippet,
10
- score: 1,
11
- created_at: input.created_at,
12
- id: input.id ?? input.created_at,
13
- root_session_id: input.rootSessionId,
14
- scope: "session",
15
- granularity: input.granularity ?? "session",
16
- source: "snapshot",
17
- });
18
6
  const selectRecent = (events, predicate, map, limit, excludedNormalized = new Set()) => uniqueNormalizedValues(events.flatMap((event) => {
19
7
  if (!predicate(event))
20
8
  return [];
@@ -2,7 +2,6 @@ export type RuntimeTeardownTask = {
2
2
  name: string;
3
3
  run: () => void | Promise<void>;
4
4
  };
5
- export declare const createRuntimeTeardownTask: (name: string, run: () => void | Promise<void>) => RuntimeTeardownTask;
6
5
  export interface RuntimeTeardownRegistration {
7
6
  run(): Promise<void>;
8
7
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-teardown.d.ts","sourceRoot":"","sources":["../../../src/src/services/runtime-teardown.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,EACZ,KAAK,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAC9B,mBAAsC,CAAC;AAE1C,MAAM,WAAW,2BAA2B;IAC1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CACjB;AAUD,KAAK,2BAA2B,GAAG;IACjC,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,EACjC,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KACtD,IAAI,CAAC;IACV,mBAAmB,CAAC,EAAE,CACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,EACjC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,KACrC,IAAI,CAAC;IACV,IAAI,CAAC,EAAE;QACL,iBAAiB,CAAC,EAAE,CAClB,MAAM,EAAE,QAAQ,GAAG,SAAS,EAC5B,OAAO,EAAE,MAAM,IAAI,KAChB,IAAI,CAAC;QACV,oBAAoB,CAAC,EAAE,CACrB,MAAM,EAAE,QAAQ,GAAG,SAAS,EAC5B,OAAO,EAAE,MAAM,IAAI,KAChB,IAAI,CAAC;QACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;KACjC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QAClD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QACnD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAwBF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,2BAC6C,GACrD,2BAA2B,CAgL7B"}
1
+ {"version":3,"file":"runtime-teardown.d.ts","sourceRoot":"","sources":["../../../src/src/services/runtime-teardown.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CACjB;AAUD,KAAK,2BAA2B,GAAG;IACjC,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,EACjC,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KACtD,IAAI,CAAC;IACV,mBAAmB,CAAC,EAAE,CACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,EACjC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,KACrC,IAAI,CAAC;IACV,IAAI,CAAC,EAAE;QACL,iBAAiB,CAAC,EAAE,CAClB,MAAM,EAAE,QAAQ,GAAG,SAAS,EAC5B,OAAO,EAAE,MAAM,IAAI,KAChB,IAAI,CAAC;QACV,oBAAoB,CAAC,EAAE,CACrB,MAAM,EAAE,QAAQ,GAAG,SAAS,EAC5B,OAAO,EAAE,MAAM,IAAI,KAChB,IAAI,CAAC;QACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;KACjC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QAClD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QACnD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAwBF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,2BAC6C,GACrD,2BAA2B,CA0K7B"}
@@ -1,6 +1,5 @@
1
1
  import * as dntShim from "../../_dnt.shims.js";
2
2
  import { logger } from "./logger.js";
3
- export const createRuntimeTeardownTask = (name, run) => ({ name, run });
4
3
  const SHUTDOWN_EVENTS = ["unload", "beforeunload"];
5
4
  const SHUTDOWN_SIGNALS = ["SIGINT", "SIGTERM"];
6
5
  const SHUTDOWN_EXIT_CODE = {
@@ -39,12 +38,8 @@ export function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis)
39
38
  return;
40
39
  signalListenersDisposed = true;
41
40
  for (const { signal, handler } of signalListeners) {
42
- if (runtime.Deno?.removeSignalListener) {
43
- runtime.Deno.removeSignalListener(signal, handler);
44
- }
45
- else {
46
- runtime.process?.off?.(signal, handler);
47
- }
41
+ runtime.Deno?.removeSignalListener?.(signal, handler);
42
+ runtime.process?.off?.(signal, handler);
48
43
  }
49
44
  for (const { event, handler } of processEventListeners) {
50
45
  runtime.process?.off?.(event, handler);
@@ -148,12 +143,8 @@ export function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis)
148
143
  }
149
144
  beginGracefulShutdown({ kind: "signal", signal });
150
145
  };
151
- if (runtime.Deno?.addSignalListener) {
152
- runtime.Deno.addSignalListener(signal, handler);
153
- }
154
- else {
155
- runtime.process?.on?.(signal, handler);
156
- }
146
+ runtime.Deno?.addSignalListener?.(signal, handler);
147
+ runtime.process?.on?.(signal, handler);
157
148
  signalListeners.push({ signal, handler });
158
149
  }
159
150
  const beforeExitHandler = () => {
@@ -1,18 +1,11 @@
1
1
  import { type ToolContext, type ToolDefinition } from "@opencode-ai/plugin";
2
- import { RedisClient } from "./redis-client.js";
2
+ import type { RedisClient } from "./redis-client.js";
3
3
  import type { RedisCacheService } from "./redis-cache.js";
4
4
  import { createSessionCorpusService } from "./session-corpus.js";
5
5
  import { createSessionExecutor, type SessionExecutor } from "./session-executor.js";
6
- import { type ExactHistoryAdapter } from "./exact-history.js";
7
- import { type SummarySearchAdapter } from "./memory-search.js";
8
6
  import { type SessionMcpRequestMap, type SessionMcpResponseMap, type SessionMcpToolName } from "./session-mcp-types.js";
9
- import { SessionNotesService } from "./session-notes.js";
10
7
  import type { RuntimeRootSessionValidator } from "../session.js";
11
8
  export declare const SESSION_MCP_RESPONSE_BUDGET_BYTES: number;
12
- export declare const SESSION_NOTES_WRITE_DESCRIPTION: string;
13
- export declare const SESSION_NOTES_READ_DESCRIPTION: string;
14
- export declare const SESSION_SEARCH_BASELINE_DESCRIPTION: string;
15
- export declare const SESSION_SEARCH_STRENGTHENED_DESCRIPTION: string;
16
9
  type SessionMcpHandler<TToolName extends SessionMcpToolName> = (request: SessionMcpRequestMap[TToolName], context: ToolContext) => Promise<SessionMcpResponseMap[TToolName]>;
17
10
  type SessionMcpHandlerMap = {
18
11
  [K in SessionMcpToolName]: SessionMcpHandler<K>;
@@ -21,14 +14,11 @@ type SessionMcpRuntimeOptions = {
21
14
  handlers?: Partial<SessionMcpHandlerMap>;
22
15
  redisClient?: RedisClient;
23
16
  graphitiCache?: RedisCacheService | object;
24
- notesService?: SessionNotesService;
25
17
  sessionTtlSeconds?: number;
26
18
  groupId?: string;
27
19
  createSessionCorpusService?: typeof createSessionCorpusService;
28
20
  createSessionExecutor?: typeof createSessionExecutor;
29
21
  sessionExecutor?: SessionExecutor;
30
- exactHistoryAdapter?: ExactHistoryAdapter;
31
- summarySearchAdapter?: SummarySearchAdapter;
32
22
  sessionCanonicalizer?: RuntimeRootSessionValidator;
33
23
  readSessionIndexFile?: (filePath: string) => Promise<string>;
34
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"session-mcp-runtime.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-mcp-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EAIrB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,qBAAqB,EAE1B,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAKjE,eAAO,MAAM,iCAAiC,QAAW,CAAC;AAI1D,eAAO,MAAM,+BAA+B,QAoChC,CAAC;AAEb,eAAO,MAAM,8BAA8B,QAW/B,CAAC;AAEb,eAAO,MAAM,mCAAmC,QAkBpC,CAAC;AAEb,eAAO,MAAM,uCAAuC,QAStC,CAAC;AAqEf,KAAK,iBAAiB,CAAC,SAAS,SAAS,kBAAkB,IAAI,CAC7D,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,EACxC,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;AAE/C,KAAK,oBAAoB,GAAG;KACzB,CAAC,IAAI,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAC3C,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B,CAAC,EAAE,OAAO,0BAA0B,CAAC;IAC/D,qBAAqB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACrD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D,CAAC;AAkBF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,uBAAuB,EAAE,CACvB,oBAAoB,EAAE,2BAA2B,GAAG,SAAS,KAC1D,IAAI,CAAC;IACV,uBAAuB,EAAE,CACvB,mBAAmB,EAAE,MAAM,EAC3B,mBAAmB,EAAE,MAAM,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AA0OF,eAAO,MAAM,uBAAuB,GAClC,UAAS,wBAA6B,KACrC,iBA2pBF,CAAC"}
1
+ {"version":3,"file":"session-mcp-runtime.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-mcp-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EAIrB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,qBAAqB,EAE1B,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAIjE,eAAO,MAAM,iCAAiC,QAAW,CAAC;AA8D1D,KAAK,iBAAiB,CAAC,SAAS,SAAS,kBAAkB,IAAI,CAC7D,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,EACxC,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;AAE/C,KAAK,oBAAoB,GAAG;KACzB,CAAC,IAAI,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0BAA0B,CAAC,EAAE,OAAO,0BAA0B,CAAC;IAC/D,qBAAqB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACrD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D,CAAC;AAkBF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,uBAAuB,EAAE,CACvB,oBAAoB,EAAE,2BAA2B,GAAG,SAAS,KAC1D,IAAI,CAAC;IACV,uBAAuB,EAAE,CACvB,mBAAmB,EAAE,MAAM,EAC3B,mBAAmB,EAAE,MAAM,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AA0MF,eAAO,MAAM,uBAAuB,GAClC,UAAS,wBAA6B,KACrC,iBA6mBF,CAAC"}