opencode-graphiti 0.2.1 → 0.2.2-canary.2a69f50.20260403031412

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 (35) hide show
  1. package/esm/_dnt.shims.d.ts +1 -5
  2. package/esm/_dnt.shims.d.ts.map +1 -1
  3. package/esm/_dnt.shims.js +1 -5
  4. package/esm/src/config.js +2 -2
  5. package/esm/src/services/connection-manager.d.ts.map +1 -1
  6. package/esm/src/services/connection-manager.js +47 -10
  7. package/esm/src/services/logger.js +2 -2
  8. package/esm/src/services/redis-events.js +1 -1
  9. package/esm/src/services/runtime-teardown.d.ts +5 -0
  10. package/esm/src/services/runtime-teardown.d.ts.map +1 -1
  11. package/esm/src/services/runtime-teardown.js +22 -1
  12. package/esm/src/services/session-corpus.d.ts.map +1 -1
  13. package/esm/src/services/session-corpus.js +10 -4
  14. package/esm/src/services/session-executor.d.ts.map +1 -1
  15. package/esm/src/services/session-executor.js +52 -18
  16. package/esm/src/services/session-mcp-runtime.d.ts.map +1 -1
  17. package/esm/src/services/session-mcp-runtime.js +2 -2
  18. package/package.json +3 -5
  19. package/script/_dnt.shims.d.ts +1 -5
  20. package/script/_dnt.shims.d.ts.map +1 -1
  21. package/script/_dnt.shims.js +2 -7
  22. package/script/src/config.js +2 -2
  23. package/script/src/services/connection-manager.d.ts.map +1 -1
  24. package/script/src/services/connection-manager.js +80 -10
  25. package/script/src/services/logger.js +5 -35
  26. package/script/src/services/redis-events.js +1 -1
  27. package/script/src/services/runtime-teardown.d.ts +5 -0
  28. package/script/src/services/runtime-teardown.d.ts.map +1 -1
  29. package/script/src/services/runtime-teardown.js +22 -1
  30. package/script/src/services/session-corpus.d.ts.map +1 -1
  31. package/script/src/services/session-corpus.js +10 -4
  32. package/script/src/services/session-executor.d.ts.map +1 -1
  33. package/script/src/services/session-executor.js +52 -51
  34. package/script/src/services/session-mcp-runtime.d.ts.map +1 -1
  35. package/script/src/services/session-mcp-runtime.js +2 -35
@@ -1,6 +1,2 @@
1
- import { Deno } from "@deno/shim-deno";
2
- export { Deno } from "@deno/shim-deno";
3
- export declare const dntGlobalThis: Omit<typeof globalThis, "Deno"> & {
4
- Deno: typeof Deno;
5
- };
1
+ export declare const dntGlobalThis: Omit<typeof globalThis, never>;
6
2
  //# sourceMappingURL=_dnt.shims.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_dnt.shims.d.ts","sourceRoot":"","sources":["../src/_dnt.shims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,eAAO,MAAM,aAAa;;CAA2C,CAAC"}
1
+ {"version":3,"file":"_dnt.shims.d.ts","sourceRoot":"","sources":["../src/_dnt.shims.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,gCAA2C,CAAC"}
package/esm/_dnt.shims.js CHANGED
@@ -1,8 +1,4 @@
1
- import { Deno } from "@deno/shim-deno";
2
- export { Deno } from "@deno/shim-deno";
3
- const dntGlobals = {
4
- Deno,
5
- };
1
+ const dntGlobals = {};
6
2
  export const dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
7
3
  function createMergeProxy(baseObj, extObj) {
8
4
  return new Proxy(baseObj, {
package/esm/src/config.js CHANGED
@@ -42,7 +42,7 @@ export class ConfigLoadError extends Error {
42
42
  }
43
43
  }
44
44
  }
45
- const require = createRequire(globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url);
45
+ const nodeRequire = createRequire(globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url);
46
46
  const isRecord = (value) => !!value && typeof value === "object" && !Array.isArray(value);
47
47
  const readString = (value, key) => typeof value[key] === "string" ? value[key] : undefined;
48
48
  const readTrimmedString = (value, key) => {
@@ -226,7 +226,7 @@ const resolveConfig = (value) => {
226
226
  };
227
227
  };
228
228
  const createCosmiconfigAdapter = () => {
229
- const { cosmiconfigSync } = require("cosmiconfig");
229
+ const { cosmiconfigSync } = nodeRequire("cosmiconfig");
230
230
  const explorer = cosmiconfigSync("graphiti", { searchStrategy: "global" });
231
231
  return {
232
232
  search(from) {
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../src/src/services/connection-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../src/src/services/connection-manager.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,28 @@
1
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
- import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
1
+ import { createRequire } from "node:module";
2
+ import { pathToFileURL } from "node:url";
3
3
  import manifest from "../../deno.js";
4
4
  import { isAbortError } from "../utils.js";
5
5
  import { redactEndpointUserInfo } from "./endpoint-redaction.js";
6
6
  import { logger } from "./logger.js";
7
+ const nodeRequire = createRequire(globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url);
8
+ let mcpRuntimeModulesPromise = null;
9
+ const importResolvedModule = async (specifier) => {
10
+ const resolvedPath = nodeRequire.resolve(specifier);
11
+ return await import(pathToFileURL(resolvedPath).href);
12
+ };
13
+ const loadMcpRuntimeModules = async () => {
14
+ if (mcpRuntimeModulesPromise) {
15
+ return await mcpRuntimeModulesPromise;
16
+ }
17
+ mcpRuntimeModulesPromise = Promise.all([
18
+ importResolvedModule("@modelcontextprotocol/sdk/client/index.js"),
19
+ importResolvedModule("@modelcontextprotocol/sdk/client/streamableHttp.js"),
20
+ ]).then(([clientModule, transportModule]) => ({
21
+ Client: clientModule.Client,
22
+ StreamableHTTPClientTransport: transportModule.StreamableHTTPClientTransport,
23
+ }));
24
+ return await mcpRuntimeModulesPromise;
25
+ };
7
26
  export class GraphitiOfflineError extends Error {
8
27
  constructor(state, message) {
9
28
  super(message ??
@@ -103,15 +122,33 @@ const validateEndpoint = (endpoint) => {
103
122
  return normalized;
104
123
  };
105
124
  function createMcpConnection(endpoint) {
106
- const client = new Client({
107
- name: manifest.name,
108
- version: manifest.version,
109
- });
110
- const transport = new StreamableHTTPClientTransport(new URL(endpoint));
125
+ let runtimePromise = null;
126
+ const getRuntime = async () => {
127
+ if (runtimePromise) {
128
+ return await runtimePromise;
129
+ }
130
+ runtimePromise = loadMcpRuntimeModules().then(({ Client, StreamableHTTPClientTransport }) => ({
131
+ client: new Client({
132
+ name: manifest.name,
133
+ version: manifest.version,
134
+ }),
135
+ transport: new StreamableHTTPClientTransport(new URL(endpoint)),
136
+ }));
137
+ return await runtimePromise;
138
+ };
111
139
  return {
112
- connect: () => client.connect(transport),
113
- close: () => client.close(),
114
- callTool: (request, options) => client.callTool(request, undefined, options),
140
+ connect: async () => {
141
+ const { client, transport } = await getRuntime();
142
+ await client.connect(transport);
143
+ },
144
+ close: async () => {
145
+ const { client } = await getRuntime();
146
+ await client.close();
147
+ },
148
+ callTool: async (request, options) => {
149
+ const { client } = await getRuntime();
150
+ return await client.callTool(request, undefined, options);
151
+ },
115
152
  };
116
153
  }
117
154
  function getErrorMessage(err) {
@@ -1,4 +1,4 @@
1
- import * as dntShim from "../../_dnt.shims.js";
1
+ import process from "node:process";
2
2
  import { logStructuredWarning, shouldSuppressConsoleWarningsDuringTests, } from "./opencode-warning.js";
3
3
  const console = globalThis.console;
4
4
  const PREFIX = "[graphiti]";
@@ -56,7 +56,7 @@ const isDebugEnabled = () => {
56
56
  if (debugOverride !== undefined)
57
57
  return debugOverride;
58
58
  try {
59
- return !!dntShim.Deno.env.get("GRAPHITI_DEBUG");
59
+ return !!process.env.GRAPHITI_DEBUG;
60
60
  }
61
61
  catch {
62
62
  return false;
@@ -482,7 +482,7 @@ export class RedisEventsService {
482
482
  await this.redis.deleteKey(drainClaimCheckpointKey(groupId, claimToken));
483
483
  await this.redis.deleteKeyIfValue(drainClaimActiveKey(groupId), claimToken);
484
484
  await this.redis.deleteKeyIfValue(drainClaimLockKey(groupId), claimToken);
485
- await this.redis.setString(drainCursorKey(groupId), entries.at(-1)?.event.id ?? "", DRAIN_TTL_SECONDS);
485
+ await this.redis.setString(drainCursorKey(groupId), entries[entries.length - 1]?.event.id ?? "", DRAIN_TTL_SECONDS);
486
486
  }
487
487
  async moveBatchToDeadLetter(groupId, entries) {
488
488
  for (const entry of entries) {
@@ -17,6 +17,11 @@ type ShutdownRegistrationAdapter = {
17
17
  removeSignalListener?: (signal: "SIGINT" | "SIGTERM", handler: () => void) => void;
18
18
  exit?: (code?: number) => never;
19
19
  };
20
+ process?: {
21
+ on?: (event: string, handler: () => void) => void;
22
+ off?: (event: string, handler: () => void) => void;
23
+ exitCode?: number;
24
+ };
20
25
  };
21
26
  export declare function registerRuntimeTeardown(tasks: RuntimeTeardownTask[], runtime?: ShutdownRegistrationAdapter): RuntimeTeardownRegistration;
22
27
  export {};
@@ -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,MAAM,WAAW,2BAA2B;IAC1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD,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;CACH,CAAC;AAwBF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,2BAAmD,GAC3D,2BAA2B,CAyI7B"}
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;AAMD,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,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAwBF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,2BAC6C,GACrD,2BAA2B,CAqK7B"}
@@ -24,6 +24,7 @@ export function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis)
24
24
  let gracefulShutdownStarted = false;
25
25
  const eventListeners = [];
26
26
  const signalListeners = [];
27
+ const processEventListeners = [];
27
28
  const disposeEventListeners = () => {
28
29
  if (eventListenersDisposed)
29
30
  return;
@@ -38,6 +39,10 @@ export function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis)
38
39
  signalListenersDisposed = true;
39
40
  for (const { signal, handler } of signalListeners) {
40
41
  runtime.Deno?.removeSignalListener?.(signal, handler);
42
+ runtime.process?.off?.(signal, handler);
43
+ }
44
+ for (const { event, handler } of processEventListeners) {
45
+ runtime.process?.off?.(event, handler);
41
46
  }
42
47
  };
43
48
  const releaseRegistration = () => {
@@ -62,7 +67,13 @@ export function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis)
62
67
  return;
63
68
  exitRequested = true;
64
69
  dispose();
65
- runtime.Deno?.exit?.(SHUTDOWN_EXIT_CODE[signal]);
70
+ const exitCode = SHUTDOWN_EXIT_CODE[signal];
71
+ if (runtime.Deno?.exit) {
72
+ runtime.Deno.exit(exitCode);
73
+ }
74
+ if (runtime.process) {
75
+ runtime.process.exitCode = exitCode;
76
+ }
66
77
  };
67
78
  const run = () => {
68
79
  if (teardownPromise)
@@ -128,8 +139,18 @@ export function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis)
128
139
  beginGracefulShutdown({ kind: "signal", signal });
129
140
  };
130
141
  runtime.Deno?.addSignalListener?.(signal, handler);
142
+ runtime.process?.on?.(signal, handler);
131
143
  signalListeners.push({ signal, handler });
132
144
  }
145
+ const beforeExitHandler = () => {
146
+ beginGracefulShutdown({ kind: "event", type: "beforeunload" });
147
+ };
148
+ const exitHandler = () => {
149
+ beginGracefulShutdown({ kind: "event", type: "unload" });
150
+ };
151
+ runtime.process?.on?.("beforeExit", beforeExitHandler);
152
+ runtime.process?.on?.("exit", exitHandler);
153
+ processEventListeners.push({ event: "beforeExit", handler: beforeExitHandler }, { event: "exit", handler: exitHandler });
133
154
  const registrations = activeRegistrations.get(runtimeKey) ?? new Set();
134
155
  registrations.add(dispose);
135
156
  activeRegistrations.set(runtimeKey, registrations);
@@ -1 +1 @@
1
- {"version":3,"file":"session-corpus.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-corpus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAevE,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAupBF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,0BAA0B,CAClC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,oBAAoB;iBAu1BjD,UAAU;mBA9oBlB,MAAM;oBACL,MAAM;oBACN,MAAM,EAAE;mBACT,OAAO;qBACL,MAAM;;;yBAgqBQ,kBAAkB;;;;;;;;;;;;;;;;;yBAmDlB,kBAAkB;;;;;;kBAmDzB,WAAW,GAAG,OAAO,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC;QACb,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;4BAyR4B,MAAM;;;;;;;;+BAanB,MAAM,UACb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;mDAhyBX,MAAM,uBACN,MAAM,KAC1B,OAAO,CAAC,IAAI,CAAC;mBATI,OAAO,CAAC,IAAI,CAAC;CA+yBlC,CAAC"}
1
+ {"version":3,"file":"session-corpus.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-corpus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAevE,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAupBF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,0BAA0B,CAClC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,oBAAoB;iBAy1BjD,UAAU;mBA9oBlB,MAAM;oBACL,MAAM;oBACN,MAAM,EAAE;mBACT,OAAO;qBACL,MAAM;;;yBAiqBQ,kBAAkB;;;;;;;;;;;;;;;;;yBAmDlB,kBAAkB;;;;;;kBAsDzB,WAAW,GAAG,OAAO,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC;QACb,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;4BAyR4B,MAAM;;;;;;;;+BAanB,MAAM,UACb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;mDApyBX,MAAM,uBACN,MAAM,KAC1B,OAAO,CAAC,IAAI,CAAC;mBATI,OAAO,CAAC,IAAI,CAAC;CAmzBlC,CAAC"}
@@ -58,7 +58,7 @@ const stemToken = (token) => {
58
58
  };
59
59
  const containsVowel = (value) => [...value].some((_char, index) => !isConsonant(value, index));
60
60
  const endsWithDoubleConsonant = (value) => value.length >= 2 &&
61
- value.at(-1) === value.at(-2) &&
61
+ value[value.length - 1] === value[value.length - 2] &&
62
62
  isConsonant(value, value.length - 1);
63
63
  const cvc = (value) => {
64
64
  if (value.length < 3)
@@ -564,7 +564,9 @@ export const createSessionCorpusService = (options) => {
564
564
  const sourcePrefix = `${sessionPrefix(sourceRootSessionId)}:corpus:`;
565
565
  if (!corpusRef.startsWith(sourcePrefix))
566
566
  return corpusRef;
567
- const sourceCorpusId = corpusRef.split(":").at(-2) ?? "";
567
+ const sourceCorpusParts = corpusRef.split(":");
568
+ const sourceCorpusId = sourceCorpusParts[sourceCorpusParts.length - 2] ??
569
+ "";
568
570
  const targetCorpusId = corpusIdMap.get(sourceCorpusId);
569
571
  return targetCorpusId
570
572
  ? corpusRefFor(targetRootSessionId, targetCorpusId)
@@ -1080,7 +1082,8 @@ export const createSessionCorpusService = (options) => {
1080
1082
  }
1081
1083
  const result = await writeCorpus(input, "index");
1082
1084
  if (input.source && input.label) {
1083
- const corpusId = result.corpusRef.split(":").at(-2) ?? "";
1085
+ const corpusRefParts = result.corpusRef.split(":");
1086
+ const corpusId = corpusRefParts[corpusRefParts.length - 2] ?? "";
1084
1087
  await options.redis.setString(identityKey(input.rootSessionId, input.source, input.label), corpusId, options.ttlSeconds);
1085
1088
  }
1086
1089
  return { status: "ok", ...result };
@@ -1147,7 +1150,10 @@ export const createSessionCorpusService = (options) => {
1147
1150
  artifact_count: 1,
1148
1151
  bytes_saved_estimate: encoder.encode(input.body).byteLength,
1149
1152
  });
1150
- await refreshCorpusFamily(input.rootSessionId, corpus.corpusRef.split(":").at(-2) ?? "");
1153
+ await refreshCorpusFamily(input.rootSessionId, (() => {
1154
+ const corpusRefParts = corpus.corpusRef.split(":");
1155
+ return corpusRefParts[corpusRefParts.length - 2] ?? "";
1156
+ })());
1151
1157
  return {
1152
1158
  status: "ok",
1153
1159
  artifactRef,
@@ -1 +1 @@
1
- {"version":3,"file":"session-executor.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-executor.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-executor.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import * as dntShim from "../../_dnt.shims.js";
2
1
  import path from "node:path";
2
+ import { spawn } from "node:child_process";
3
+ import { readFile as readFileNode } from "node:fs/promises";
4
+ import process from "node:process";
3
5
  import { createAbortError, isAbortError } from "../utils.js";
4
6
  export const SESSION_EXECUTOR_RESPONSE_BUDGET_BYTES = 8 * 1024;
5
7
  export const SESSION_EXECUTOR_DEFAULT_COMMAND_TIMEOUT_SECONDS = 30;
@@ -11,30 +13,62 @@ const textDecoder = new TextDecoder();
11
13
  const byteLength = (value) => textEncoder.encode(value).byteLength;
12
14
  const serialize = (value) => JSON.stringify(value);
13
15
  const clampTimeoutSeconds = (timeoutSeconds, defaults) => Math.min(timeoutSeconds ?? defaults.defaultCommandTimeoutSeconds, defaults.maxCommandTimeoutSeconds);
16
+ const concatChunks = (chunks) => {
17
+ const totalBytes = chunks.reduce((sum, chunk) => sum + chunk.byteLength, 0);
18
+ const combined = new Uint8Array(totalBytes);
19
+ let offset = 0;
20
+ for (const chunk of chunks) {
21
+ combined.set(chunk, offset);
22
+ offset += chunk.byteLength;
23
+ }
24
+ return combined;
25
+ };
14
26
  const defaultRunCommand = async ({ command, cwd, signal }) => {
15
- const shell = dntShim.Deno.build.os === "windows"
27
+ const shell = process.platform === "win32"
16
28
  ? { executable: "cmd", args: ["/d", "/s", "/c", command] }
17
29
  : { executable: "/bin/sh", args: ["-lc", command] };
18
- const DenoWithCommand = dntShim.Deno;
19
- const output = await new DenoWithCommand.Command(shell.executable, {
20
- args: shell.args,
21
- cwd,
22
- stdin: "null",
23
- stdout: "piped",
24
- stderr: "piped",
25
- signal,
26
- }).output();
27
- return {
28
- exitCode: output.code,
29
- stdout: textDecoder.decode(output.stdout),
30
- stderr: textDecoder.decode(output.stderr),
31
- };
30
+ return await new Promise((resolve, reject) => {
31
+ const stdoutChunks = [];
32
+ const stderrChunks = [];
33
+ let settled = false;
34
+ const child = spawn(shell.executable, shell.args, {
35
+ cwd,
36
+ stdio: ["ignore", "pipe", "pipe"],
37
+ signal,
38
+ });
39
+ const rejectOnce = (error) => {
40
+ if (settled)
41
+ return;
42
+ settled = true;
43
+ reject(error);
44
+ };
45
+ const resolveOnce = (value) => {
46
+ if (settled)
47
+ return;
48
+ settled = true;
49
+ resolve(value);
50
+ };
51
+ child.stdout.on("data", (chunk) => {
52
+ stdoutChunks.push(typeof chunk === "string" ? textEncoder.encode(chunk) : chunk);
53
+ });
54
+ child.stderr.on("data", (chunk) => {
55
+ stderrChunks.push(typeof chunk === "string" ? textEncoder.encode(chunk) : chunk);
56
+ });
57
+ child.on("error", rejectOnce);
58
+ child.on("close", (code) => {
59
+ resolveOnce({
60
+ exitCode: code ?? (signal.aborted ? -1 : 1),
61
+ stdout: textDecoder.decode(concatChunks(stdoutChunks)),
62
+ stderr: textDecoder.decode(concatChunks(stderrChunks)),
63
+ });
64
+ });
65
+ });
32
66
  };
33
- const defaultReadFile = (filePath) => dntShim.Deno.readTextFile(filePath);
67
+ const defaultReadFile = (filePath) => readFileNode(filePath, "utf8");
34
68
  const defaultStoreArtifact = ({ body }) => Promise.resolve({
35
69
  artifactRef: `inline://payload/${encodeURIComponent(body)}`,
36
70
  });
37
- const resolveCwd = (context) => context.worktree ?? context.directory ?? dntShim.Deno.cwd();
71
+ const resolveCwd = (context) => context.worktree ?? context.directory ?? process.cwd();
38
72
  const isWithinRoot = (rootPath, targetPath) => {
39
73
  const relative = path.relative(rootPath, targetPath);
40
74
  return relative === "" ||
@@ -1 +1 @@
1
- {"version":3,"file":"session-mcp-runtime.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-mcp-runtime.ts"],"names":[],"mappings":"AACA,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;AAGjE,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"}
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"}
@@ -1,8 +1,8 @@
1
- import * as dntShim from "../../_dnt.shims.js";
2
1
  import { tool, } from "@opencode-ai/plugin";
3
2
  import { createSessionCorpusService, } from "./session-corpus.js";
4
3
  import { createSessionExecutor, SESSION_EXECUTOR_DEFAULT_COMMAND_TIMEOUT_SECONDS, SESSION_EXECUTOR_MAX_COMMAND_TIMEOUT_SECONDS, SESSION_EXECUTOR_MAX_NORMALIZED_INDEXED_BODY_BYTES, } from "./session-executor.js";
5
4
  import { SESSION_MCP_TOOL_NAMES, sessionMcpRequestSchemas, sessionMcpResponseSchemas, } from "./session-mcp-types.js";
5
+ import { readFile as readFileNode } from "node:fs/promises";
6
6
  import path from "node:path";
7
7
  export const SESSION_MCP_RESPONSE_BUDGET_BYTES = 8 * 1024;
8
8
  const pluginSchema = tool.schema;
@@ -122,7 +122,7 @@ const extractInlineArtifactPayload = (artifactRef) => {
122
122
  }
123
123
  };
124
124
  const byteLength = (value) => textEncoder.encode(value).byteLength;
125
- const readTextFile = (filePath) => dntShim.Deno.readTextFile(filePath);
125
+ const readTextFile = (filePath) => readFileNode(filePath, "utf8");
126
126
  const createBoundedSessionIndexError = (code, message) => Object.assign(new Error(message), { code, bounded: true });
127
127
  const isWithinBudget = (value) => byteLength(value) <= SESSION_MCP_RESPONSE_BUDGET_BYTES;
128
128
  const resolveSessionIndexPath = (requestPath, context) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-graphiti",
3
- "version": "0.2.1",
3
+ "version": "0.2.2-canary.2a69f50.20260403031412",
4
4
  "description": "OpenCode plugin for persistent memory via Graphiti knowledge graph",
5
5
  "keywords": [
6
6
  "opencode",
@@ -45,16 +45,14 @@
45
45
  ]
46
46
  },
47
47
  "dependencies": {
48
- "@modelcontextprotocol/sdk": "^1.25.2",
49
48
  "@opencode-ai/plugin": "1.2.26",
50
49
  "@opencode-ai/sdk": "1.2.26",
51
- "cosmiconfig": "9.0.0",
52
50
  "ioredis": "^5.7.0",
53
51
  "zod": "4.3.6",
54
- "@deno/shim-deno": "~0.18.0"
52
+ "cosmiconfig": "^9.0.0"
55
53
  },
56
54
  "devDependencies": {
57
- "@types/node": "^20.9.0"
55
+ "@types/node": "^20.0.0"
58
56
  },
59
57
  "_generatedBy": "dnt@dev"
60
58
  }
@@ -1,6 +1,2 @@
1
- import { Deno } from "@deno/shim-deno";
2
- export { Deno } from "@deno/shim-deno";
3
- export declare const dntGlobalThis: Omit<typeof globalThis, "Deno"> & {
4
- Deno: typeof Deno;
5
- };
1
+ export declare const dntGlobalThis: Omit<typeof globalThis, never>;
6
2
  //# sourceMappingURL=_dnt.shims.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_dnt.shims.d.ts","sourceRoot":"","sources":["../src/_dnt.shims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,eAAO,MAAM,aAAa;;CAA2C,CAAC"}
1
+ {"version":3,"file":"_dnt.shims.d.ts","sourceRoot":"","sources":["../src/_dnt.shims.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,gCAA2C,CAAC"}
@@ -1,12 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dntGlobalThis = exports.Deno = void 0;
4
- const shim_deno_1 = require("@deno/shim-deno");
5
- var shim_deno_2 = require("@deno/shim-deno");
6
- Object.defineProperty(exports, "Deno", { enumerable: true, get: function () { return shim_deno_2.Deno; } });
7
- const dntGlobals = {
8
- Deno: shim_deno_1.Deno,
9
- };
3
+ exports.dntGlobalThis = void 0;
4
+ const dntGlobals = {};
10
5
  exports.dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
11
6
  function createMergeProxy(baseObj, extObj) {
12
7
  return new Proxy(baseObj, {
@@ -50,7 +50,7 @@ class ConfigLoadError extends Error {
50
50
  }
51
51
  }
52
52
  exports.ConfigLoadError = ConfigLoadError;
53
- const require = (0, node_module_1.createRequire)(globalThis[Symbol.for("import-meta-ponyfill-commonjs")](require, module).url);
53
+ const nodeRequire = (0, node_module_1.createRequire)(globalThis[Symbol.for("import-meta-ponyfill-commonjs")](require, module).url);
54
54
  const isRecord = (value) => !!value && typeof value === "object" && !Array.isArray(value);
55
55
  const readString = (value, key) => typeof value[key] === "string" ? value[key] : undefined;
56
56
  const readTrimmedString = (value, key) => {
@@ -234,7 +234,7 @@ const resolveConfig = (value) => {
234
234
  };
235
235
  };
236
236
  const createCosmiconfigAdapter = () => {
237
- const { cosmiconfigSync } = require("cosmiconfig");
237
+ const { cosmiconfigSync } = nodeRequire("cosmiconfig");
238
238
  const explorer = cosmiconfigSync("graphiti", { searchStrategy: "global" });
239
239
  return {
240
240
  search(from) {
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../src/src/services/connection-manager.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,uBAAuB,GAC/B,YAAY,GACZ,WAAW,GACX,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,MAAM,CAAC;AAE1D,qBAAa,oBAAqB,SAAQ,KAAK;IAI3C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAHnD,QAAQ,CAAC,IAAI,aAAa;gBAGf,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,MAAM;CAYnB;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,mBAAmB;gBAG9B,OAAO,SAA4D;CAKtE;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,IAAI,qBAAqB;gBAEtB,OAAO,SAA+B;CAInD;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,uBAAuB;gBAExB,OAAO,SAA+B;CAInD;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,IAAI,qBAAqB;gBAEtB,OAAO,SAA6B;CAIjD;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,oBAAoB,CAE7B;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,yBAAyB,GAAG,2BAA2B,CAGhE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CACN,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAWD,KAAK,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,kBAAkB,CAAC;AA4BlE,KAAK,gCAAgC,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,WAAW,CAAC;IAClE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C,CAAC;AAuEF,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGZ;IACjB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAE9D,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,wBAAwB,CAA8B;gBAElD,OAAO,EAAE,gCAAgC;IAoBrD,QAAQ,IAAI,uBAAuB;IAInC,KAAK,IAAI,IAAI;IAcP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDrB,KAAK,CAAC,SAAS,SAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB1D,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,SAAyB,GAClC,OAAO,CAAC,OAAO,CAAC;IA0Bb,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;YAerB,gBAAgB;YAoDhB,kCAAkC;YA0ElC,uCAAuC;IAyBrD,OAAO,CAAC,sBAAsB;YAIhB,uBAAuB;IASrC,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,cAAc;YAyCR,iBAAiB;IAgC/B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,mBAAmB;CAO5B"}
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../src/src/services/connection-manager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -6,12 +39,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.GraphitiConnectionManager = exports.GraphitiSessionExpiredError = exports.GraphitiTransportError = exports.GraphitiRequestTimeoutError = exports.GraphitiQueueTimeoutError = exports.GraphitiOfflineError = void 0;
7
40
  exports.isGraphitiOfflineError = isGraphitiOfflineError;
8
41
  exports.isGraphitiTimeoutError = isGraphitiTimeoutError;
9
- const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
10
- const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
42
+ const node_module_1 = require("node:module");
43
+ const node_url_1 = require("node:url");
11
44
  const deno_js_1 = __importDefault(require("../../deno.js"));
12
45
  const utils_js_1 = require("../utils.js");
13
46
  const endpoint_redaction_js_1 = require("./endpoint-redaction.js");
14
47
  const logger_js_1 = require("./logger.js");
48
+ const nodeRequire = (0, node_module_1.createRequire)(globalThis[Symbol.for("import-meta-ponyfill-commonjs")](require, module).url);
49
+ let mcpRuntimeModulesPromise = null;
50
+ const importResolvedModule = async (specifier) => {
51
+ const resolvedPath = nodeRequire.resolve(specifier);
52
+ return await Promise.resolve(`${(0, node_url_1.pathToFileURL)(resolvedPath).href}`).then(s => __importStar(require(s)));
53
+ };
54
+ const loadMcpRuntimeModules = async () => {
55
+ if (mcpRuntimeModulesPromise) {
56
+ return await mcpRuntimeModulesPromise;
57
+ }
58
+ mcpRuntimeModulesPromise = Promise.all([
59
+ importResolvedModule("@modelcontextprotocol/sdk/client/index.js"),
60
+ importResolvedModule("@modelcontextprotocol/sdk/client/streamableHttp.js"),
61
+ ]).then(([clientModule, transportModule]) => ({
62
+ Client: clientModule.Client,
63
+ StreamableHTTPClientTransport: transportModule.StreamableHTTPClientTransport,
64
+ }));
65
+ return await mcpRuntimeModulesPromise;
66
+ };
15
67
  class GraphitiOfflineError extends Error {
16
68
  constructor(state, message) {
17
69
  super(message ??
@@ -116,15 +168,33 @@ const validateEndpoint = (endpoint) => {
116
168
  return normalized;
117
169
  };
118
170
  function createMcpConnection(endpoint) {
119
- const client = new index_js_1.Client({
120
- name: deno_js_1.default.name,
121
- version: deno_js_1.default.version,
122
- });
123
- const transport = new streamableHttp_js_1.StreamableHTTPClientTransport(new URL(endpoint));
171
+ let runtimePromise = null;
172
+ const getRuntime = async () => {
173
+ if (runtimePromise) {
174
+ return await runtimePromise;
175
+ }
176
+ runtimePromise = loadMcpRuntimeModules().then(({ Client, StreamableHTTPClientTransport }) => ({
177
+ client: new Client({
178
+ name: deno_js_1.default.name,
179
+ version: deno_js_1.default.version,
180
+ }),
181
+ transport: new StreamableHTTPClientTransport(new URL(endpoint)),
182
+ }));
183
+ return await runtimePromise;
184
+ };
124
185
  return {
125
- connect: () => client.connect(transport),
126
- close: () => client.close(),
127
- callTool: (request, options) => client.callTool(request, undefined, options),
186
+ connect: async () => {
187
+ const { client, transport } = await getRuntime();
188
+ await client.connect(transport);
189
+ },
190
+ close: async () => {
191
+ const { client } = await getRuntime();
192
+ await client.close();
193
+ },
194
+ callTool: async (request, options) => {
195
+ const { client } = await getRuntime();
196
+ return await client.callTool(request, undefined, options);
197
+ },
128
198
  };
129
199
  }
130
200
  function getErrorMessage(err) {
@@ -1,40 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.logger = exports.setLoggerSilentOverride = exports.setLoggerDebugOverride = void 0;
37
- const dntShim = __importStar(require("../../_dnt.shims.js"));
7
+ const node_process_1 = __importDefault(require("node:process"));
38
8
  const opencode_warning_js_1 = require("./opencode-warning.js");
39
9
  const console = globalThis.console;
40
10
  const PREFIX = "[graphiti]";
@@ -92,7 +62,7 @@ const isDebugEnabled = () => {
92
62
  if (debugOverride !== undefined)
93
63
  return debugOverride;
94
64
  try {
95
- return !!dntShim.Deno.env.get("GRAPHITI_DEBUG");
65
+ return !!node_process_1.default.env.GRAPHITI_DEBUG;
96
66
  }
97
67
  catch {
98
68
  return false;
@@ -500,7 +500,7 @@ class RedisEventsService {
500
500
  await this.redis.deleteKey((0, exports.drainClaimCheckpointKey)(groupId, claimToken));
501
501
  await this.redis.deleteKeyIfValue((0, exports.drainClaimActiveKey)(groupId), claimToken);
502
502
  await this.redis.deleteKeyIfValue((0, exports.drainClaimLockKey)(groupId), claimToken);
503
- await this.redis.setString((0, exports.drainCursorKey)(groupId), entries.at(-1)?.event.id ?? "", DRAIN_TTL_SECONDS);
503
+ await this.redis.setString((0, exports.drainCursorKey)(groupId), entries[entries.length - 1]?.event.id ?? "", DRAIN_TTL_SECONDS);
504
504
  }
505
505
  async moveBatchToDeadLetter(groupId, entries) {
506
506
  for (const entry of entries) {
@@ -17,6 +17,11 @@ type ShutdownRegistrationAdapter = {
17
17
  removeSignalListener?: (signal: "SIGINT" | "SIGTERM", handler: () => void) => void;
18
18
  exit?: (code?: number) => never;
19
19
  };
20
+ process?: {
21
+ on?: (event: string, handler: () => void) => void;
22
+ off?: (event: string, handler: () => void) => void;
23
+ exitCode?: number;
24
+ };
20
25
  };
21
26
  export declare function registerRuntimeTeardown(tasks: RuntimeTeardownTask[], runtime?: ShutdownRegistrationAdapter): RuntimeTeardownRegistration;
22
27
  export {};
@@ -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,MAAM,WAAW,2BAA2B;IAC1C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD,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;CACH,CAAC;AAwBF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,2BAAmD,GAC3D,2BAA2B,CAyI7B"}
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;AAMD,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,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAwBF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,2BAC6C,GACrD,2BAA2B,CAqK7B"}
@@ -60,6 +60,7 @@ function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis) {
60
60
  let gracefulShutdownStarted = false;
61
61
  const eventListeners = [];
62
62
  const signalListeners = [];
63
+ const processEventListeners = [];
63
64
  const disposeEventListeners = () => {
64
65
  if (eventListenersDisposed)
65
66
  return;
@@ -74,6 +75,10 @@ function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis) {
74
75
  signalListenersDisposed = true;
75
76
  for (const { signal, handler } of signalListeners) {
76
77
  runtime.Deno?.removeSignalListener?.(signal, handler);
78
+ runtime.process?.off?.(signal, handler);
79
+ }
80
+ for (const { event, handler } of processEventListeners) {
81
+ runtime.process?.off?.(event, handler);
77
82
  }
78
83
  };
79
84
  const releaseRegistration = () => {
@@ -98,7 +103,13 @@ function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis) {
98
103
  return;
99
104
  exitRequested = true;
100
105
  dispose();
101
- runtime.Deno?.exit?.(SHUTDOWN_EXIT_CODE[signal]);
106
+ const exitCode = SHUTDOWN_EXIT_CODE[signal];
107
+ if (runtime.Deno?.exit) {
108
+ runtime.Deno.exit(exitCode);
109
+ }
110
+ if (runtime.process) {
111
+ runtime.process.exitCode = exitCode;
112
+ }
102
113
  };
103
114
  const run = () => {
104
115
  if (teardownPromise)
@@ -164,8 +175,18 @@ function registerRuntimeTeardown(tasks, runtime = dntShim.dntGlobalThis) {
164
175
  beginGracefulShutdown({ kind: "signal", signal });
165
176
  };
166
177
  runtime.Deno?.addSignalListener?.(signal, handler);
178
+ runtime.process?.on?.(signal, handler);
167
179
  signalListeners.push({ signal, handler });
168
180
  }
181
+ const beforeExitHandler = () => {
182
+ beginGracefulShutdown({ kind: "event", type: "beforeunload" });
183
+ };
184
+ const exitHandler = () => {
185
+ beginGracefulShutdown({ kind: "event", type: "unload" });
186
+ };
187
+ runtime.process?.on?.("beforeExit", beforeExitHandler);
188
+ runtime.process?.on?.("exit", exitHandler);
189
+ processEventListeners.push({ event: "beforeExit", handler: beforeExitHandler }, { event: "exit", handler: exitHandler });
169
190
  const registrations = activeRegistrations.get(runtimeKey) ?? new Set();
170
191
  registrations.add(dispose);
171
192
  activeRegistrations.set(runtimeKey, registrations);
@@ -1 +1 @@
1
- {"version":3,"file":"session-corpus.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-corpus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAevE,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAupBF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,0BAA0B,CAClC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,oBAAoB;iBAu1BjD,UAAU;mBA9oBlB,MAAM;oBACL,MAAM;oBACN,MAAM,EAAE;mBACT,OAAO;qBACL,MAAM;;;yBAgqBQ,kBAAkB;;;;;;;;;;;;;;;;;yBAmDlB,kBAAkB;;;;;;kBAmDzB,WAAW,GAAG,OAAO,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC;QACb,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;4BAyR4B,MAAM;;;;;;;;+BAanB,MAAM,UACb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;mDAhyBX,MAAM,uBACN,MAAM,KAC1B,OAAO,CAAC,IAAI,CAAC;mBATI,OAAO,CAAC,IAAI,CAAC;CA+yBlC,CAAC"}
1
+ {"version":3,"file":"session-corpus.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-corpus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAevE,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAupBF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAC3C,OAAO,0BAA0B,CAClC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,oBAAoB;iBAy1BjD,UAAU;mBA9oBlB,MAAM;oBACL,MAAM;oBACN,MAAM,EAAE;mBACT,OAAO;qBACL,MAAM;;;yBAiqBQ,kBAAkB;;;;;;;;;;;;;;;;;yBAmDlB,kBAAkB;;;;;;kBAsDzB,WAAW,GAAG,OAAO,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC;QACb,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;4BAyR4B,MAAM;;;;;;;;+BAanB,MAAM,UACb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;mDApyBX,MAAM,uBACN,MAAM,KAC1B,OAAO,CAAC,IAAI,CAAC;mBATI,OAAO,CAAC,IAAI,CAAC;CAmzBlC,CAAC"}
@@ -61,7 +61,7 @@ const stemToken = (token) => {
61
61
  };
62
62
  const containsVowel = (value) => [...value].some((_char, index) => !isConsonant(value, index));
63
63
  const endsWithDoubleConsonant = (value) => value.length >= 2 &&
64
- value.at(-1) === value.at(-2) &&
64
+ value[value.length - 1] === value[value.length - 2] &&
65
65
  isConsonant(value, value.length - 1);
66
66
  const cvc = (value) => {
67
67
  if (value.length < 3)
@@ -567,7 +567,9 @@ const createSessionCorpusService = (options) => {
567
567
  const sourcePrefix = `${sessionPrefix(sourceRootSessionId)}:corpus:`;
568
568
  if (!corpusRef.startsWith(sourcePrefix))
569
569
  return corpusRef;
570
- const sourceCorpusId = corpusRef.split(":").at(-2) ?? "";
570
+ const sourceCorpusParts = corpusRef.split(":");
571
+ const sourceCorpusId = sourceCorpusParts[sourceCorpusParts.length - 2] ??
572
+ "";
571
573
  const targetCorpusId = corpusIdMap.get(sourceCorpusId);
572
574
  return targetCorpusId
573
575
  ? corpusRefFor(targetRootSessionId, targetCorpusId)
@@ -1083,7 +1085,8 @@ const createSessionCorpusService = (options) => {
1083
1085
  }
1084
1086
  const result = await writeCorpus(input, "index");
1085
1087
  if (input.source && input.label) {
1086
- const corpusId = result.corpusRef.split(":").at(-2) ?? "";
1088
+ const corpusRefParts = result.corpusRef.split(":");
1089
+ const corpusId = corpusRefParts[corpusRefParts.length - 2] ?? "";
1087
1090
  await options.redis.setString(identityKey(input.rootSessionId, input.source, input.label), corpusId, options.ttlSeconds);
1088
1091
  }
1089
1092
  return { status: "ok", ...result };
@@ -1150,7 +1153,10 @@ const createSessionCorpusService = (options) => {
1150
1153
  artifact_count: 1,
1151
1154
  bytes_saved_estimate: encoder.encode(input.body).byteLength,
1152
1155
  });
1153
- await refreshCorpusFamily(input.rootSessionId, corpus.corpusRef.split(":").at(-2) ?? "");
1156
+ await refreshCorpusFamily(input.rootSessionId, (() => {
1157
+ const corpusRefParts = corpus.corpusRef.split(":");
1158
+ return corpusRefParts[corpusRefParts.length - 2] ?? "";
1159
+ })());
1154
1160
  return {
1155
1161
  status: "ok",
1156
1162
  artifactRef,
@@ -1 +1 @@
1
- {"version":3,"file":"session-executor.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-executor.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-executor.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,13 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
38
5
  Object.defineProperty(exports, "__esModule", { value: true });
39
6
  exports.createSessionExecutor = exports.SESSION_EXECUTOR_OUT_OF_WORKSPACE_MESSAGE = exports.SESSION_EXECUTOR_MAX_NORMALIZED_INDEXED_BODY_BYTES = exports.SESSION_EXECUTOR_MAX_COMMAND_TIMEOUT_SECONDS = exports.SESSION_EXECUTOR_DEFAULT_COMMAND_TIMEOUT_SECONDS = exports.SESSION_EXECUTOR_RESPONSE_BUDGET_BYTES = void 0;
40
- const dntShim = __importStar(require("../../_dnt.shims.js"));
41
7
  const node_path_1 = __importDefault(require("node:path"));
8
+ const node_child_process_1 = require("node:child_process");
9
+ const promises_1 = require("node:fs/promises");
10
+ const node_process_1 = __importDefault(require("node:process"));
42
11
  const utils_js_1 = require("../utils.js");
43
12
  exports.SESSION_EXECUTOR_RESPONSE_BUDGET_BYTES = 8 * 1024;
44
13
  exports.SESSION_EXECUTOR_DEFAULT_COMMAND_TIMEOUT_SECONDS = 30;
@@ -50,30 +19,62 @@ const textDecoder = new TextDecoder();
50
19
  const byteLength = (value) => textEncoder.encode(value).byteLength;
51
20
  const serialize = (value) => JSON.stringify(value);
52
21
  const clampTimeoutSeconds = (timeoutSeconds, defaults) => Math.min(timeoutSeconds ?? defaults.defaultCommandTimeoutSeconds, defaults.maxCommandTimeoutSeconds);
22
+ const concatChunks = (chunks) => {
23
+ const totalBytes = chunks.reduce((sum, chunk) => sum + chunk.byteLength, 0);
24
+ const combined = new Uint8Array(totalBytes);
25
+ let offset = 0;
26
+ for (const chunk of chunks) {
27
+ combined.set(chunk, offset);
28
+ offset += chunk.byteLength;
29
+ }
30
+ return combined;
31
+ };
53
32
  const defaultRunCommand = async ({ command, cwd, signal }) => {
54
- const shell = dntShim.Deno.build.os === "windows"
33
+ const shell = node_process_1.default.platform === "win32"
55
34
  ? { executable: "cmd", args: ["/d", "/s", "/c", command] }
56
35
  : { executable: "/bin/sh", args: ["-lc", command] };
57
- const DenoWithCommand = dntShim.Deno;
58
- const output = await new DenoWithCommand.Command(shell.executable, {
59
- args: shell.args,
60
- cwd,
61
- stdin: "null",
62
- stdout: "piped",
63
- stderr: "piped",
64
- signal,
65
- }).output();
66
- return {
67
- exitCode: output.code,
68
- stdout: textDecoder.decode(output.stdout),
69
- stderr: textDecoder.decode(output.stderr),
70
- };
36
+ return await new Promise((resolve, reject) => {
37
+ const stdoutChunks = [];
38
+ const stderrChunks = [];
39
+ let settled = false;
40
+ const child = (0, node_child_process_1.spawn)(shell.executable, shell.args, {
41
+ cwd,
42
+ stdio: ["ignore", "pipe", "pipe"],
43
+ signal,
44
+ });
45
+ const rejectOnce = (error) => {
46
+ if (settled)
47
+ return;
48
+ settled = true;
49
+ reject(error);
50
+ };
51
+ const resolveOnce = (value) => {
52
+ if (settled)
53
+ return;
54
+ settled = true;
55
+ resolve(value);
56
+ };
57
+ child.stdout.on("data", (chunk) => {
58
+ stdoutChunks.push(typeof chunk === "string" ? textEncoder.encode(chunk) : chunk);
59
+ });
60
+ child.stderr.on("data", (chunk) => {
61
+ stderrChunks.push(typeof chunk === "string" ? textEncoder.encode(chunk) : chunk);
62
+ });
63
+ child.on("error", rejectOnce);
64
+ child.on("close", (code) => {
65
+ resolveOnce({
66
+ exitCode: code ?? (signal.aborted ? -1 : 1),
67
+ stdout: textDecoder.decode(concatChunks(stdoutChunks)),
68
+ stderr: textDecoder.decode(concatChunks(stderrChunks)),
69
+ });
70
+ });
71
+ });
71
72
  };
72
- const defaultReadFile = (filePath) => dntShim.Deno.readTextFile(filePath);
73
+ const defaultReadFile = (filePath) => (0, promises_1.readFile)(filePath, "utf8");
73
74
  const defaultStoreArtifact = ({ body }) => Promise.resolve({
74
75
  artifactRef: `inline://payload/${encodeURIComponent(body)}`,
75
76
  });
76
- const resolveCwd = (context) => context.worktree ?? context.directory ?? dntShim.Deno.cwd();
77
+ const resolveCwd = (context) => context.worktree ?? context.directory ?? node_process_1.default.cwd();
77
78
  const isWithinRoot = (rootPath, targetPath) => {
78
79
  const relative = node_path_1.default.relative(rootPath, targetPath);
79
80
  return relative === "" ||
@@ -1 +1 @@
1
- {"version":3,"file":"session-mcp-runtime.d.ts","sourceRoot":"","sources":["../../../src/src/services/session-mcp-runtime.ts"],"names":[],"mappings":"AACA,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;AAGjE,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"}
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"}
@@ -1,47 +1,14 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
38
5
  Object.defineProperty(exports, "__esModule", { value: true });
39
6
  exports.createSessionMcpRuntime = exports.SESSION_MCP_RESPONSE_BUDGET_BYTES = void 0;
40
- const dntShim = __importStar(require("../../_dnt.shims.js"));
41
7
  const plugin_1 = require("@opencode-ai/plugin");
42
8
  const session_corpus_js_1 = require("./session-corpus.js");
43
9
  const session_executor_js_1 = require("./session-executor.js");
44
10
  const session_mcp_types_js_1 = require("./session-mcp-types.js");
11
+ const promises_1 = require("node:fs/promises");
45
12
  const node_path_1 = __importDefault(require("node:path"));
46
13
  exports.SESSION_MCP_RESPONSE_BUDGET_BYTES = 8 * 1024;
47
14
  const pluginSchema = plugin_1.tool.schema;
@@ -161,7 +128,7 @@ const extractInlineArtifactPayload = (artifactRef) => {
161
128
  }
162
129
  };
163
130
  const byteLength = (value) => textEncoder.encode(value).byteLength;
164
- const readTextFile = (filePath) => dntShim.Deno.readTextFile(filePath);
131
+ const readTextFile = (filePath) => (0, promises_1.readFile)(filePath, "utf8");
165
132
  const createBoundedSessionIndexError = (code, message) => Object.assign(new Error(message), { code, bounded: true });
166
133
  const isWithinBudget = (value) => byteLength(value) <= exports.SESSION_MCP_RESPONSE_BUDGET_BYTES;
167
134
  const resolveSessionIndexPath = (requestPath, context) => {