@integrity-labs/agt-cli 0.28.1136 → 0.28.1138

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 (29) hide show
  1. package/dist/bin/agt.js +5 -5
  2. package/dist/{chunk-AMW44JCN.js → chunk-3INFJV37.js} +4 -4
  3. package/dist/{chunk-773ZNDNR.js → chunk-EIXOI2ZB.js} +20 -1
  4. package/dist/{chunk-773ZNDNR.js.map → chunk-EIXOI2ZB.js.map} +1 -1
  5. package/dist/{chunk-PGTZFME3.js → chunk-J6ORWGUB.js} +2 -2
  6. package/dist/{claude-pair-runtime-6SJHKHRE.js → claude-pair-runtime-VQGEM5AY.js} +2 -2
  7. package/dist/lib/manager-worker.js +16 -16
  8. package/dist/mcp/augmented-admin.js +164 -54
  9. package/dist/mcp/augmented-help-kb.js +164 -54
  10. package/dist/mcp/augmented-support.js +164 -54
  11. package/dist/mcp/direct-chat-channel.js +108 -41
  12. package/dist/mcp/index.js +270 -64
  13. package/dist/mcp/origami.js +108 -41
  14. package/dist/mcp/slack-channel.js +108 -41
  15. package/dist/mcp/teams-channel.js +89 -41
  16. package/dist/mcp/telegram-channel.js +108 -41
  17. package/dist/mcp/whatsapp-channel.js +5447 -4340
  18. package/dist/mcp/whatsapp-link.js +5442 -4383
  19. package/dist/mcp/xero.js +6048 -2067
  20. package/dist/{persistent-session-6W6PZGNB.js → persistent-session-ZBKLEYUQ.js} +3 -3
  21. package/dist/{responsiveness-probe-LLYHYZR7.js → responsiveness-probe-FXDO35IT.js} +3 -3
  22. package/dist/{session-auth-dead-QZET5C3W.js → session-auth-dead-OGNOSJIB.js} +2 -2
  23. package/package.json +2 -2
  24. /package/dist/{chunk-AMW44JCN.js.map → chunk-3INFJV37.js.map} +0 -0
  25. /package/dist/{chunk-PGTZFME3.js.map → chunk-J6ORWGUB.js.map} +0 -0
  26. /package/dist/{claude-pair-runtime-6SJHKHRE.js.map → claude-pair-runtime-VQGEM5AY.js.map} +0 -0
  27. /package/dist/{persistent-session-6W6PZGNB.js.map → persistent-session-ZBKLEYUQ.js.map} +0 -0
  28. /package/dist/{responsiveness-probe-LLYHYZR7.js.map → responsiveness-probe-FXDO35IT.js.map} +0 -0
  29. /package/dist/{session-auth-dead-QZET5C3W.js.map → session-auth-dead-OGNOSJIB.js.map} +0 -0
@@ -26431,7 +26431,7 @@ function _refine(Class2, fn, _params) {
26431
26431
  return schema;
26432
26432
  }
26433
26433
 
26434
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
26434
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
26435
26435
  function isZ4Schema(s) {
26436
26436
  const schema = s;
26437
26437
  return !!schema._zod;
@@ -27189,7 +27189,7 @@ function preprocess(fn, schema) {
27189
27189
  // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v4/classic/external.js
27190
27190
  config(en_default());
27191
27191
 
27192
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
27192
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
27193
27193
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
27194
27194
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
27195
27195
  var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
@@ -27199,10 +27199,9 @@ var ProgressTokenSchema = union([string2(), number2().int()]);
27199
27199
  var CursorSchema = string2();
27200
27200
  var TaskCreationParamsSchema = looseObject({
27201
27201
  /**
27202
- * Time in milliseconds to keep task results available after completion.
27203
- * If null, the task has unlimited lifetime until manually cleaned up.
27202
+ * Requested duration in milliseconds to retain task from creation.
27204
27203
  */
27205
- ttl: union([number2(), _null3()]).optional(),
27204
+ ttl: number2().optional(),
27206
27205
  /**
27207
27206
  * Time in milliseconds to wait between task status requests.
27208
27207
  */
@@ -27502,7 +27501,11 @@ var ClientCapabilitiesSchema = object2({
27502
27501
  /**
27503
27502
  * Present if the client supports task creation.
27504
27503
  */
27505
- tasks: ClientTasksCapabilitySchema.optional()
27504
+ tasks: ClientTasksCapabilitySchema.optional(),
27505
+ /**
27506
+ * Extensions that the client supports. Keys are extension identifiers (vendor-prefix/extension-name).
27507
+ */
27508
+ extensions: record(string2(), AssertObjectSchema).optional()
27506
27509
  });
27507
27510
  var InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({
27508
27511
  /**
@@ -27563,7 +27566,11 @@ var ServerCapabilitiesSchema = object2({
27563
27566
  /**
27564
27567
  * Present if the server supports task creation.
27565
27568
  */
27566
- tasks: ServerTasksCapabilitySchema.optional()
27569
+ tasks: ServerTasksCapabilitySchema.optional(),
27570
+ /**
27571
+ * Extensions that the server supports. Keys are extension identifiers (vendor-prefix/extension-name).
27572
+ */
27573
+ extensions: record(string2(), AssertObjectSchema).optional()
27567
27574
  });
27568
27575
  var InitializeResultSchema = ResultSchema.extend({
27569
27576
  /**
@@ -27755,6 +27762,12 @@ var ResourceSchema = object2({
27755
27762
  * The MIME type of this resource, if known.
27756
27763
  */
27757
27764
  mimeType: optional(string2()),
27765
+ /**
27766
+ * The size of the raw resource content, in bytes (i.e., before base64 encoding or any tokenization), if known.
27767
+ *
27768
+ * This can be used by Hosts to display file sizes and estimate context window usage.
27769
+ */
27770
+ size: optional(number2()),
27758
27771
  /**
27759
27772
  * Optional annotations for the client.
27760
27773
  */
@@ -28695,7 +28708,7 @@ var UrlElicitationRequiredError = class extends McpError {
28695
28708
  }
28696
28709
  };
28697
28710
 
28698
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
28711
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
28699
28712
  function isTerminal(status) {
28700
28713
  return status === "completed" || status === "failed" || status === "cancelled";
28701
28714
  }
@@ -28703,7 +28716,7 @@ function isTerminal(status) {
28703
28716
  // ../../node_modules/.pnpm/zod-to-json-schema@3.25.1_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js
28704
28717
  var ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
28705
28718
 
28706
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
28719
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
28707
28720
  function getMethodLiteral(schema) {
28708
28721
  const shape = getObjectShape(schema);
28709
28722
  const methodSchema = shape?.method;
@@ -28724,7 +28737,7 @@ function parseWithCompat(schema, data) {
28724
28737
  return result.data;
28725
28738
  }
28726
28739
 
28727
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
28740
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
28728
28741
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
28729
28742
  var Protocol = class {
28730
28743
  constructor(_options) {
@@ -28765,6 +28778,9 @@ var Protocol = class {
28765
28778
  this.setRequestHandler(GetTaskPayloadRequestSchema, async (request, extra) => {
28766
28779
  const handleTaskResult = async () => {
28767
28780
  const taskId = request.params.taskId;
28781
+ if (!await this._taskStore.getTask(taskId, extra.sessionId)) {
28782
+ throw new McpError(ErrorCode.InvalidParams, `Task not found: ${taskId}`);
28783
+ }
28768
28784
  if (this._taskMessageQueue) {
28769
28785
  let queuedMessage;
28770
28786
  while (queuedMessage = await this._taskMessageQueue.dequeue(taskId, extra.sessionId)) {
@@ -28795,12 +28811,12 @@ var Protocol = class {
28795
28811
  throw new McpError(ErrorCode.InvalidParams, `Task not found: ${taskId}`);
28796
28812
  }
28797
28813
  if (!isTerminal(task.status)) {
28798
- await this._waitForTaskUpdate(taskId, extra.signal);
28814
+ await this._waitForTaskUpdate(taskId, extra.signal, extra.sessionId);
28799
28815
  return await handleTaskResult();
28800
28816
  }
28801
28817
  if (isTerminal(task.status)) {
28802
28818
  const result = await this._taskStore.getTaskResult(taskId, extra.sessionId);
28803
- this._clearTaskQueue(taskId);
28819
+ this._clearTaskQueue(taskId, extra.sessionId);
28804
28820
  return {
28805
28821
  ...result,
28806
28822
  _meta: {
@@ -28837,7 +28853,7 @@ var Protocol = class {
28837
28853
  throw new McpError(ErrorCode.InvalidParams, `Cannot cancel task in terminal status: ${task.status}`);
28838
28854
  }
28839
28855
  await this._taskStore.updateTaskStatus(request.params.taskId, "cancelled", "Client cancelled task execution.", extra.sessionId);
28840
- this._clearTaskQueue(request.params.taskId);
28856
+ this._clearTaskQueue(request.params.taskId, extra.sessionId);
28841
28857
  const cancelledTask = await this._taskStore.getTask(request.params.taskId, extra.sessionId);
28842
28858
  if (!cancelledTask) {
28843
28859
  throw new McpError(ErrorCode.InvalidParams, `Task not found after cancellation: ${request.params.taskId}`);
@@ -28936,6 +28952,10 @@ var Protocol = class {
28936
28952
  this._progressHandlers.clear();
28937
28953
  this._taskProgressTokens.clear();
28938
28954
  this._pendingDebouncedNotifications.clear();
28955
+ for (const info of this._timeoutInfo.values()) {
28956
+ clearTimeout(info.timeoutId);
28957
+ }
28958
+ this._timeoutInfo.clear();
28939
28959
  for (const controller of this._requestHandlerAbortControllers.values()) {
28940
28960
  controller.abort();
28941
28961
  }
@@ -28961,6 +28981,19 @@ var Protocol = class {
28961
28981
  const handler = this._requestHandlers.get(request.method) ?? this.fallbackRequestHandler;
28962
28982
  const capturedTransport = this._transport;
28963
28983
  const relatedTaskId = request.params?._meta?.[RELATED_TASK_META_KEY]?.taskId;
28984
+ const sessionId = capturedTransport?.sessionId;
28985
+ const store = this._taskStore;
28986
+ let relatedTaskFound = true;
28987
+ let relatedTaskLookup;
28988
+ if (relatedTaskId && store && this._taskMessageQueue && sessionId !== void 0) {
28989
+ relatedTaskFound = false;
28990
+ relatedTaskLookup = (async () => {
28991
+ if (!await store.getTask(relatedTaskId, sessionId)) {
28992
+ throw new McpError(ErrorCode.InvalidParams, `Task not found: ${relatedTaskId}`);
28993
+ }
28994
+ relatedTaskFound = true;
28995
+ })();
28996
+ }
28964
28997
  if (handler === void 0) {
28965
28998
  const errorResponse = {
28966
28999
  jsonrpc: "2.0",
@@ -28970,7 +29003,10 @@ var Protocol = class {
28970
29003
  message: "Method not found"
28971
29004
  }
28972
29005
  };
28973
- if (relatedTaskId && this._taskMessageQueue) {
29006
+ if (relatedTaskId && relatedTaskLookup) {
29007
+ const queuedError = { type: "error", message: errorResponse, timestamp: Date.now() };
29008
+ relatedTaskLookup.then(() => this._enqueueTaskMessage(relatedTaskId, queuedError, sessionId), () => capturedTransport?.send(errorResponse)).catch((error2) => this._onerror(new Error(`Failed to send an error response: ${error2}`)));
29009
+ } else if (relatedTaskId && this._taskMessageQueue) {
28974
29010
  this._enqueueTaskMessage(relatedTaskId, {
28975
29011
  type: "error",
28976
29012
  message: errorResponse,
@@ -29021,7 +29057,10 @@ var Protocol = class {
29021
29057
  closeSSEStream: extra?.closeSSEStream,
29022
29058
  closeStandaloneSSEStream: extra?.closeStandaloneSSEStream
29023
29059
  };
29024
- Promise.resolve().then(() => {
29060
+ (relatedTaskLookup ?? Promise.resolve()).then(() => {
29061
+ if (relatedTaskLookup && abortController.signal.aborted) {
29062
+ throw new McpError(ErrorCode.ConnectionClosed, "Request was cancelled");
29063
+ }
29025
29064
  if (taskCreationParams) {
29026
29065
  this.assertTaskHandlerCapability(request.method);
29027
29066
  }
@@ -29056,7 +29095,7 @@ var Protocol = class {
29056
29095
  ...error2["data"] !== void 0 && { data: error2["data"] }
29057
29096
  }
29058
29097
  };
29059
- if (relatedTaskId && this._taskMessageQueue) {
29098
+ if (relatedTaskId && this._taskMessageQueue && relatedTaskFound) {
29060
29099
  await this._enqueueTaskMessage(relatedTaskId, {
29061
29100
  type: "error",
29062
29101
  message: errorResponse,
@@ -29066,7 +29105,9 @@ var Protocol = class {
29066
29105
  await capturedTransport?.send(errorResponse);
29067
29106
  }
29068
29107
  }).catch((error2) => this._onerror(new Error(`Failed to send response: ${error2}`))).finally(() => {
29069
- this._requestHandlerAbortControllers.delete(request.id);
29108
+ if (this._requestHandlerAbortControllers.get(request.id) === abortController) {
29109
+ this._requestHandlerAbortControllers.delete(request.id);
29110
+ }
29070
29111
  });
29071
29112
  }
29072
29113
  _onprogress(notification) {
@@ -29534,7 +29575,7 @@ var Protocol = class {
29534
29575
  throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");
29535
29576
  }
29536
29577
  const maxQueueSize = this._options?.maxTaskQueueSize;
29537
- await this._taskMessageQueue.enqueue(taskId, message, sessionId, maxQueueSize);
29578
+ await this._taskMessageQueue.enqueue(taskId, message, sessionId ?? this._transport?.sessionId, maxQueueSize);
29538
29579
  }
29539
29580
  /**
29540
29581
  * Clears the message queue for a task and rejects any pending request resolvers.
@@ -29563,12 +29604,13 @@ var Protocol = class {
29563
29604
  * Uses polling to check for updates at the task's configured poll interval.
29564
29605
  * @param taskId The task ID to wait for
29565
29606
  * @param signal Abort signal to cancel the wait
29607
+ * @param sessionId Session of the request that waits, passed to the task store
29566
29608
  * @returns Promise that resolves when an update occurs or rejects if aborted
29567
29609
  */
29568
- async _waitForTaskUpdate(taskId, signal) {
29610
+ async _waitForTaskUpdate(taskId, signal, sessionId) {
29569
29611
  let interval = this._options?.defaultTaskPollInterval ?? 1e3;
29570
29612
  try {
29571
- const task = await this._taskStore?.getTask(taskId);
29613
+ const task = await this._taskStore?.getTask(taskId, sessionId);
29572
29614
  if (task?.pollInterval) {
29573
29615
  interval = task.pollInterval;
29574
29616
  }
@@ -29672,7 +29714,7 @@ function mergeCapabilities(base, additional) {
29672
29714
  return result;
29673
29715
  }
29674
29716
 
29675
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
29717
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
29676
29718
  var import_ajv = __toESM(require_ajv(), 1);
29677
29719
  var import_ajv_formats = __toESM(require_dist(), 1);
29678
29720
  function createDefaultAjvInstance() {
@@ -29740,7 +29782,7 @@ var AjvJsonSchemaValidator = class {
29740
29782
  }
29741
29783
  };
29742
29784
 
29743
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
29785
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
29744
29786
  var ExperimentalServerTasks = class {
29745
29787
  constructor(_server) {
29746
29788
  this._server = _server;
@@ -29953,7 +29995,7 @@ var ExperimentalServerTasks = class {
29953
29995
  }
29954
29996
  };
29955
29997
 
29956
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
29998
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
29957
29999
  function assertToolsCallTaskCapability(requests, method, entityName) {
29958
30000
  if (!requests) {
29959
30001
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -29988,7 +30030,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
29988
30030
  }
29989
30031
  }
29990
30032
 
29991
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
30033
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
29992
30034
  var Server = class extends Protocol {
29993
30035
  /**
29994
30036
  * Initializes this server with the given name and version information.
@@ -30054,16 +30096,7 @@ var Server = class extends Protocol {
30054
30096
  if (!methodSchema) {
30055
30097
  throw new Error("Schema is missing a method literal");
30056
30098
  }
30057
- let methodValue;
30058
- if (isZ4Schema(methodSchema)) {
30059
- const v4Schema = methodSchema;
30060
- const v4Def = v4Schema._zod?.def;
30061
- methodValue = v4Def?.value ?? v4Schema.value;
30062
- } else {
30063
- const v3Schema = methodSchema;
30064
- const legacyDef = v3Schema._def;
30065
- methodValue = legacyDef?.value ?? v3Schema.value;
30066
- }
30099
+ const methodValue = getLiteralValue(methodSchema);
30067
30100
  if (typeof methodValue !== "string") {
30068
30101
  throw new Error("Schema method literal must be a string");
30069
30102
  }
@@ -39801,6 +39834,25 @@ var FLAG_REGISTRY = [
39801
39834
  // it back on for their own org.
39802
39835
  platformAdminOnly: true
39803
39836
  },
39837
+ {
39838
+ key: "two-factor-settings",
39839
+ description: "Show Settings > Two-factor authentication, where a console user sets up or removes an authenticator app (ENG-11619). Gates SETTING UP only: anyone who already has an authenticator is asked for a code before a console page loads whatever this flag says, so switching it off never turns an existing user's two-factor off. Phase 1: console pages only, not the API.",
39840
+ flagType: "boolean",
39841
+ // PUBLIC (ADR-0022 §2): the nav reads it via usePublicBooleanFlag and the
39842
+ // page via getPublicBooleanFlagServer, so it is in the GET /flags map. No
39843
+ // env override (UI rollout, not an operator gate). Ships dark (default
39844
+ // false). The staff factor reset on the admin organization page is in
39845
+ // place, so a lost phone is recoverable.
39846
+ public: true,
39847
+ defaultValue: false,
39848
+ // Platform admin only until ENG-11619 phase 2. Phase 1 gates console PAGE
39849
+ // LOADS: an enrolled user's password-only (aal1) session is still accepted
39850
+ // by the Hono API and the webapp's /api/* handlers. An org admin switching
39851
+ // this on would reasonably believe a stolen password is now useless, and
39852
+ // it is not yet (Obi Wan be8af20e689c on #7092). Drop this once phase 2
39853
+ // refuses aal1 there too.
39854
+ platformAdminOnly: true
39855
+ },
39804
39856
  {
39805
39857
  key: "platform-maintenance-mode",
39806
39858
  description: 'Platform-wide maintenance mode (ENG-6506; widened to modes by ENG-11436). off = normal operation (ships dark; channels behave exactly as today). tools-offline = every agent KEEPS conversing but every Augmented tool that WRITES to the control plane refuses with a reason, so nothing is created during a window whose database restore would discard it; reads are untouched. fleet-offline = the previous boolean-true behaviour AND the write gate: admitted human inbound gets a "we are offline for maintenance" notice instead of being dispatched, for whole-platform downtime such as DB upgrades. The modes are CUMULATIVE \u2014 fleet-offline gates writes too, because silencing channel inbound does not stop a /loop or a scheduled task filing work. Read host-side per inbound and per tool call from the flags cache (no MCP restart). (Proactive "back online" follow-up is the ENG-6508 fast-follow, not this flag.)',
@@ -43521,12 +43573,21 @@ function buildStrandedInboundNoticeText(topic) {
43521
43573
  return "I was restarted mid-conversation and may have missed your last message. Please re-send if I didn't reply.";
43522
43574
  }
43523
43575
 
43524
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
43576
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
43525
43577
  import process2 from "process";
43526
43578
 
43527
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
43579
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
43580
+ var STDIO_DEFAULT_MAX_BUFFER_SIZE = 10 * 1024 * 1024;
43528
43581
  var ReadBuffer = class {
43582
+ constructor(options) {
43583
+ this._maxBufferSize = options?.maxBufferSize ?? STDIO_DEFAULT_MAX_BUFFER_SIZE;
43584
+ }
43529
43585
  append(chunk) {
43586
+ const newSize = (this._buffer?.length ?? 0) + chunk.length;
43587
+ if (newSize > this._maxBufferSize) {
43588
+ this.clear();
43589
+ throw new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);
43590
+ }
43530
43591
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
43531
43592
  }
43532
43593
  readMessage() {
@@ -43552,20 +43613,26 @@ function serializeMessage(message) {
43552
43613
  return JSON.stringify(message) + "\n";
43553
43614
  }
43554
43615
 
43555
- // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.27.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
43616
+ // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.32.1_zod@3.25.76/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
43556
43617
  var StdioServerTransport = class {
43557
- constructor(_stdin = process2.stdin, _stdout = process2.stdout) {
43618
+ constructor(_stdin = process2.stdin, _stdout = process2.stdout, options) {
43558
43619
  this._stdin = _stdin;
43559
43620
  this._stdout = _stdout;
43560
- this._readBuffer = new ReadBuffer();
43561
43621
  this._started = false;
43562
43622
  this._ondata = (chunk) => {
43563
- this._readBuffer.append(chunk);
43564
- this.processReadBuffer();
43623
+ try {
43624
+ this._readBuffer.append(chunk);
43625
+ this.processReadBuffer();
43626
+ } catch (error2) {
43627
+ this.onerror?.(error2);
43628
+ this.close().catch(() => {
43629
+ });
43630
+ }
43565
43631
  };
43566
43632
  this._onerror = (error2) => {
43567
43633
  this.onerror?.(error2);
43568
43634
  };
43635
+ this._readBuffer = new ReadBuffer({ maxBufferSize: options?.maxBufferSize });
43569
43636
  }
43570
43637
  /**
43571
43638
  * Starts listening for messages on stdin.