switchroom 0.15.37 → 0.15.38

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 (72) hide show
  1. package/dist/agent-scheduler/index.js +89 -89
  2. package/dist/auth-broker/index.js +89 -89
  3. package/dist/cli/autoaccept-poll.js +13 -7
  4. package/dist/cli/drive-write-pretool.mjs +10 -10
  5. package/dist/cli/notion-write-pretool.mjs +91 -91
  6. package/dist/cli/skill-validate-pretool.mjs +72 -72
  7. package/dist/cli/switchroom.js +821 -572
  8. package/dist/cli/ui/index.html +87 -17
  9. package/dist/host-control/main.js +158 -158
  10. package/dist/vault/approvals/kernel-server.js +91 -91
  11. package/dist/vault/broker/server.js +92 -92
  12. package/package.json +1 -1
  13. package/profiles/_base/cron-session.sh.hbs +1 -1
  14. package/profiles/_base/start.sh.hbs +1 -1
  15. package/skills/switchroom-manage/SKILL.md +1 -1
  16. package/skills/switchroom-runtime/SKILL.md +1 -1
  17. package/telegram-plugin/answer-stream.ts +1 -1
  18. package/telegram-plugin/bridge/bridge.ts +18 -1
  19. package/telegram-plugin/bridge/ipc-client.ts +4 -1
  20. package/telegram-plugin/bridge/tool-filter.ts +77 -0
  21. package/telegram-plugin/chat-lock.ts +1 -1
  22. package/telegram-plugin/credits-watch.ts +1 -1
  23. package/telegram-plugin/dist/bridge/bridge.js +141 -115
  24. package/telegram-plugin/dist/gateway/gateway.js +318 -207
  25. package/telegram-plugin/dist/server.js +193 -164
  26. package/telegram-plugin/gateway/auto-classify-mid-turn.ts +1 -1
  27. package/telegram-plugin/gateway/boot-card.ts +5 -1
  28. package/telegram-plugin/gateway/boot-probes.ts +62 -0
  29. package/telegram-plugin/gateway/cron-session.ts +1 -1
  30. package/telegram-plugin/gateway/gateway.ts +133 -12
  31. package/telegram-plugin/gateway/grant-restart.ts +1 -1
  32. package/telegram-plugin/gateway/inbound-delivery-machine-dispatch.ts +1 -1
  33. package/telegram-plugin/gateway/inbound-delivery-machine-shadow.ts +1 -1
  34. package/telegram-plugin/gateway/inbound-delivery-machine.ts +1 -1
  35. package/telegram-plugin/gateway/interrupt-defer.ts +1 -1
  36. package/telegram-plugin/gateway/ipc-protocol.ts +12 -0
  37. package/telegram-plugin/gateway/permission-card-origin.ts +62 -0
  38. package/telegram-plugin/gateway/permission-timeout.ts +70 -0
  39. package/telegram-plugin/gateway/prefix-warmup.ts +1 -1
  40. package/telegram-plugin/gateway/webhook-ingest-server.test.ts +1 -1
  41. package/telegram-plugin/gateway/webhook-ingest-server.ts +1 -1
  42. package/telegram-plugin/hooks/subagent-tracker-pretool.mjs +1 -1
  43. package/telegram-plugin/interrupt-marker.ts +1 -1
  44. package/telegram-plugin/over-ping-safety-net.ts +1 -1
  45. package/telegram-plugin/scoped-approval.ts +1 -1
  46. package/telegram-plugin/secret-detect/vault-error.ts +1 -1
  47. package/telegram-plugin/silence-poke.ts +2 -2
  48. package/telegram-plugin/silent-reply-anchor.ts +1 -1
  49. package/telegram-plugin/slot-banner-driver.ts +1 -1
  50. package/telegram-plugin/startup-reset.ts +1 -1
  51. package/telegram-plugin/tests/boot-probes-connections.test.ts +66 -0
  52. package/telegram-plugin/tests/gateway-startup-reset.test.ts +1 -1
  53. package/telegram-plugin/tests/inbound-delivery-machine.test.ts +1 -1
  54. package/telegram-plugin/tests/permission-card-origin.test.ts +97 -0
  55. package/telegram-plugin/tests/permission-card-routing.test.ts +23 -0
  56. package/telegram-plugin/tests/permission-no-repeat-wiring.test.ts +76 -0
  57. package/telegram-plugin/tests/permission-timeout.test.ts +87 -0
  58. package/telegram-plugin/tests/scoped-approval.test.ts +1 -1
  59. package/telegram-plugin/tests/silence-poke.test.ts +1 -1
  60. package/telegram-plugin/tests/tool-filter.test.ts +87 -0
  61. package/telegram-plugin/tests/turn-flush-safety.test.ts +1 -1
  62. package/telegram-plugin/turn-flush-safety.ts +1 -1
  63. package/telegram-plugin/uat/assertions.ts +1 -1
  64. package/telegram-plugin/uat/scenarios/bg-sub-agent-dispatch-dm.test.ts +1 -1
  65. package/telegram-plugin/uat/scenarios/fuzz-extended-dm.test.ts +1 -1
  66. package/telegram-plugin/uat/scenarios/jtbd-fast-ack-dm.test.ts +1 -1
  67. package/telegram-plugin/uat/scenarios/jtbd-fast-trivial-dm.test.ts +2 -2
  68. package/telegram-plugin/uat/scenarios/jtbd-forwarded-burst-dm.test.ts +1 -1
  69. package/telegram-plugin/uat/scenarios/jtbd-memory-survives-restart-dm.test.ts +1 -1
  70. package/telegram-plugin/uat/scenarios/jtbd-rapid-followup-dm.test.ts +1 -1
  71. package/telegram-plugin/uat/scenarios/jtbd-reflective-status-reaction-dm.test.ts +1 -1
  72. package/telegram-plugin/uat/scenarios/jtbd-wake-audit-content-dm.test.ts +1 -1
@@ -66,7 +66,7 @@ var __export = (target, all) => {
66
66
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
67
67
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
68
68
 
69
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/filter.js
69
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/filter.js
70
70
  var require_filter = __commonJS((exports) => {
71
71
  Object.defineProperty(exports, "__esModule", { value: true });
72
72
  exports.matchFilter = matchFilter;
@@ -430,7 +430,7 @@ var require_filter = __commonJS((exports) => {
430
430
  };
431
431
  });
432
432
 
433
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/context.js
433
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/context.js
434
434
  var require_context = __commonJS((exports) => {
435
435
  Object.defineProperty(exports, "__esModule", { value: true });
436
436
  exports.Context = undefined;
@@ -1457,7 +1457,7 @@ var require_context = __commonJS((exports) => {
1457
1457
  }
1458
1458
  });
1459
1459
 
1460
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/composer.js
1460
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/composer.js
1461
1461
  var require_composer = __commonJS((exports) => {
1462
1462
  Object.defineProperty(exports, "__esModule", { value: true });
1463
1463
  exports.Composer = exports.BotError = undefined;
@@ -1619,7 +1619,7 @@ var require_composer = __commonJS((exports) => {
1619
1619
  exports.Composer = Composer;
1620
1620
  });
1621
1621
 
1622
- // ../../switchroom-sec-1417/node_modules/.bun/ms@2.1.3/node_modules/ms/index.js
1622
+ // ../node_modules/.bun/ms@2.1.3/node_modules/ms/index.js
1623
1623
  var require_ms = __commonJS((exports, module) => {
1624
1624
  var s = 1000;
1625
1625
  var m = s * 60;
@@ -1729,7 +1729,7 @@ var require_ms = __commonJS((exports, module) => {
1729
1729
  }
1730
1730
  });
1731
1731
 
1732
- // ../../switchroom-sec-1417/node_modules/.bun/debug@4.4.3/node_modules/debug/src/common.js
1732
+ // ../node_modules/.bun/debug@4.4.3/node_modules/debug/src/common.js
1733
1733
  var require_common = __commonJS((exports, module) => {
1734
1734
  function setup(env) {
1735
1735
  createDebug.debug = createDebug;
@@ -1904,7 +1904,7 @@ var require_common = __commonJS((exports, module) => {
1904
1904
  module.exports = setup;
1905
1905
  });
1906
1906
 
1907
- // ../../switchroom-sec-1417/node_modules/.bun/debug@4.4.3/node_modules/debug/src/browser.js
1907
+ // ../node_modules/.bun/debug@4.4.3/node_modules/debug/src/browser.js
1908
1908
  var require_browser = __commonJS((exports, module) => {
1909
1909
  exports.formatArgs = formatArgs;
1910
1910
  exports.save = save;
@@ -2064,7 +2064,7 @@ var require_browser = __commonJS((exports, module) => {
2064
2064
  };
2065
2065
  });
2066
2066
 
2067
- // ../../switchroom-sec-1417/node_modules/.bun/has-flag@4.0.0/node_modules/has-flag/index.js
2067
+ // ../node_modules/.bun/has-flag@4.0.0/node_modules/has-flag/index.js
2068
2068
  var require_has_flag = __commonJS((exports, module) => {
2069
2069
  module.exports = (flag, argv = process.argv) => {
2070
2070
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
@@ -2074,7 +2074,7 @@ var require_has_flag = __commonJS((exports, module) => {
2074
2074
  };
2075
2075
  });
2076
2076
 
2077
- // ../../switchroom-sec-1417/node_modules/.bun/supports-color@7.2.0/node_modules/supports-color/index.js
2077
+ // ../node_modules/.bun/supports-color@7.2.0/node_modules/supports-color/index.js
2078
2078
  var require_supports_color = __commonJS((exports, module) => {
2079
2079
  var os = __require("os");
2080
2080
  var tty = __require("tty");
@@ -2173,7 +2173,7 @@ var require_supports_color = __commonJS((exports, module) => {
2173
2173
  };
2174
2174
  });
2175
2175
 
2176
- // ../../switchroom-sec-1417/node_modules/.bun/debug@4.4.3/node_modules/debug/src/node.js
2176
+ // ../node_modules/.bun/debug@4.4.3/node_modules/debug/src/node.js
2177
2177
  var require_node = __commonJS((exports, module) => {
2178
2178
  var tty = __require("tty");
2179
2179
  var util = __require("util");
@@ -2344,7 +2344,7 @@ var require_node = __commonJS((exports, module) => {
2344
2344
  };
2345
2345
  });
2346
2346
 
2347
- // ../../switchroom-sec-1417/node_modules/.bun/debug@4.4.3/node_modules/debug/src/index.js
2347
+ // ../node_modules/.bun/debug@4.4.3/node_modules/debug/src/index.js
2348
2348
  var require_src = __commonJS((exports, module) => {
2349
2349
  if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) {
2350
2350
  module.exports = require_browser();
@@ -2353,7 +2353,7 @@ var require_src = __commonJS((exports, module) => {
2353
2353
  }
2354
2354
  });
2355
2355
 
2356
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/platform.node.js
2356
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/platform.node.js
2357
2357
  var require_platform_node = __commonJS((exports) => {
2358
2358
  Object.defineProperty(exports, "__esModule", { value: true });
2359
2359
  exports.defaultAdapter = exports.itrToStream = exports.debug = undefined;
@@ -2393,7 +2393,7 @@ var require_platform_node = __commonJS((exports) => {
2393
2393
  exports.defaultAdapter = "express";
2394
2394
  });
2395
2395
 
2396
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/core/error.js
2396
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/core/error.js
2397
2397
  var require_error = __commonJS((exports) => {
2398
2398
  Object.defineProperty(exports, "__esModule", { value: true });
2399
2399
  exports.HttpError = exports.GrammyError = undefined;
@@ -2449,10 +2449,10 @@ var require_error = __commonJS((exports) => {
2449
2449
  }
2450
2450
  });
2451
2451
 
2452
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+types@3.26.0/node_modules/@grammyjs/types/mod.js
2452
+ // ../node_modules/.bun/@grammyjs+types@3.26.0/node_modules/@grammyjs/types/mod.js
2453
2453
  var exports_mod = {};
2454
2454
 
2455
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/types.node.js
2455
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/types.node.js
2456
2456
  var require_types_node = __commonJS((exports) => {
2457
2457
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
2458
2458
  if (k2 === undefined)
@@ -2543,7 +2543,7 @@ var require_types_node = __commonJS((exports) => {
2543
2543
  }
2544
2544
  });
2545
2545
 
2546
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/types.js
2546
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/types.js
2547
2547
  var require_types = __commonJS((exports) => {
2548
2548
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
2549
2549
  if (k2 === undefined)
@@ -2569,7 +2569,7 @@ var require_types = __commonJS((exports) => {
2569
2569
  __exportStar(require_types_node(), exports);
2570
2570
  });
2571
2571
 
2572
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/core/payload.js
2572
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/core/payload.js
2573
2573
  var require_payload = __commonJS((exports) => {
2574
2574
  Object.defineProperty(exports, "__esModule", { value: true });
2575
2575
  exports.requiresFormDataUpload = requiresFormDataUpload;
@@ -2709,7 +2709,7 @@ content-type:application/octet-stream\r
2709
2709
  }
2710
2710
  });
2711
2711
 
2712
- // ../../switchroom-sec-1417/node_modules/.bun/event-target-shim@5.0.1/node_modules/event-target-shim/dist/event-target-shim.js
2712
+ // ../node_modules/.bun/event-target-shim@5.0.1/node_modules/event-target-shim/dist/event-target-shim.js
2713
2713
  var require_event_target_shim = __commonJS((exports, module) => {
2714
2714
  Object.defineProperty(exports, "__esModule", { value: true });
2715
2715
  var privateData = new WeakMap;
@@ -3149,7 +3149,7 @@ var require_event_target_shim = __commonJS((exports, module) => {
3149
3149
  module.exports.defineEventAttribute = defineEventAttribute;
3150
3150
  });
3151
3151
 
3152
- // ../../switchroom-sec-1417/node_modules/.bun/abort-controller@3.0.0/node_modules/abort-controller/dist/abort-controller.js
3152
+ // ../node_modules/.bun/abort-controller@3.0.0/node_modules/abort-controller/dist/abort-controller.js
3153
3153
  var require_abort_controller = __commonJS((exports, module) => {
3154
3154
  Object.defineProperty(exports, "__esModule", { value: true });
3155
3155
  var eventTargetShim = require_event_target_shim();
@@ -3229,7 +3229,7 @@ var require_abort_controller = __commonJS((exports, module) => {
3229
3229
  module.exports.AbortSignal = AbortSignal2;
3230
3230
  });
3231
3231
 
3232
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/shim.node.js
3232
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/shim.node.js
3233
3233
  var require_shim_node = __commonJS((exports) => {
3234
3234
  Object.defineProperty(exports, "__esModule", { value: true });
3235
3235
  exports.fetch = exports.AbortController = undefined;
@@ -3243,7 +3243,7 @@ var require_shim_node = __commonJS((exports) => {
3243
3243
  } });
3244
3244
  });
3245
3245
 
3246
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/core/client.js
3246
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/core/client.js
3247
3247
  var require_client = __commonJS((exports) => {
3248
3248
  Object.defineProperty(exports, "__esModule", { value: true });
3249
3249
  exports.createRawApi = createRawApi;
@@ -3423,7 +3423,7 @@ If you want to prevent such mistakes in the future, consider using TypeScript. h
3423
3423
  var shim_node_js_1 = require_shim_node();
3424
3424
  });
3425
3425
 
3426
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/core/api.js
3426
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/core/api.js
3427
3427
  var require_api = __commonJS((exports) => {
3428
3428
  Object.defineProperty(exports, "__esModule", { value: true });
3429
3429
  exports.Api = undefined;
@@ -4041,7 +4041,7 @@ var require_api = __commonJS((exports) => {
4041
4041
  exports.Api = Api;
4042
4042
  });
4043
4043
 
4044
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/bot.js
4044
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/bot.js
4045
4045
  var require_bot = __commonJS((exports) => {
4046
4046
  Object.defineProperty(exports, "__esModule", { value: true });
4047
4047
  exports.Bot = exports.BotError = exports.DEFAULT_UPDATE_TYPES = undefined;
@@ -4370,7 +4370,7 @@ On the other hand, if you actually know what you're doing and you do need to ins
4370
4370
  var shim_node_js_1 = require_shim_node();
4371
4371
  });
4372
4372
 
4373
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/constants.js
4373
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/constants.js
4374
4374
  var require_constants = __commonJS((exports) => {
4375
4375
  Object.defineProperty(exports, "__esModule", { value: true });
4376
4376
  exports.API_CONSTANTS = undefined;
@@ -4406,7 +4406,7 @@ var require_constants = __commonJS((exports) => {
4406
4406
  Object.freeze(exports.API_CONSTANTS);
4407
4407
  });
4408
4408
 
4409
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/inline_query.js
4409
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/inline_query.js
4410
4410
  var require_inline_query = __commonJS((exports) => {
4411
4411
  Object.defineProperty(exports, "__esModule", { value: true });
4412
4412
  exports.InlineQueryResultBuilder = undefined;
@@ -4604,7 +4604,7 @@ var require_inline_query = __commonJS((exports) => {
4604
4604
  };
4605
4605
  });
4606
4606
 
4607
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/input_media.js
4607
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/input_media.js
4608
4608
  var require_input_media = __commonJS((exports) => {
4609
4609
  Object.defineProperty(exports, "__esModule", { value: true });
4610
4610
  exports.InputMediaBuilder = undefined;
@@ -4627,7 +4627,7 @@ var require_input_media = __commonJS((exports) => {
4627
4627
  };
4628
4628
  });
4629
4629
 
4630
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/keyboard.js
4630
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/keyboard.js
4631
4631
  var require_keyboard = __commonJS((exports) => {
4632
4632
  Object.defineProperty(exports, "__esModule", { value: true });
4633
4633
  exports.InlineKeyboard = exports.Keyboard = undefined;
@@ -4985,7 +4985,7 @@ var require_keyboard = __commonJS((exports) => {
4985
4985
  }
4986
4986
  });
4987
4987
 
4988
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/session.js
4988
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/session.js
4989
4989
  var require_session = __commonJS((exports) => {
4990
4990
  Object.defineProperty(exports, "__esModule", { value: true });
4991
4991
  exports.MemorySessionStorage = undefined;
@@ -5285,7 +5285,7 @@ var require_session = __commonJS((exports) => {
5285
5285
  }
5286
5286
  });
5287
5287
 
5288
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/frameworks.js
5288
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/frameworks.js
5289
5289
  var require_frameworks = __commonJS((exports) => {
5290
5290
  Object.defineProperty(exports, "__esModule", { value: true });
5291
5291
  exports.adapters = undefined;
@@ -5653,7 +5653,7 @@ var require_frameworks = __commonJS((exports) => {
5653
5653
  };
5654
5654
  });
5655
5655
 
5656
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/webhook.js
5656
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/convenience/webhook.js
5657
5657
  var require_webhook = __commonJS((exports) => {
5658
5658
  Object.defineProperty(exports, "__esModule", { value: true });
5659
5659
  exports.webhookCallback = webhookCallback;
@@ -5747,7 +5747,7 @@ var require_webhook = __commonJS((exports) => {
5747
5747
  }
5748
5748
  });
5749
5749
 
5750
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/mod.js
5750
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/mod.js
5751
5751
  var require_mod = __commonJS((exports) => {
5752
5752
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
5753
5753
  if (k2 === undefined)
@@ -5813,7 +5813,7 @@ var require_mod = __commonJS((exports) => {
5813
5813
  } });
5814
5814
  });
5815
5815
 
5816
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/platform.node.js
5816
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/platform.node.js
5817
5817
  var require_platform_node2 = __commonJS((exports) => {
5818
5818
  Object.defineProperty(exports, "__esModule", { value: true });
5819
5819
  exports.parentThread = exports.createThread = undefined;
@@ -5844,7 +5844,7 @@ var require_platform_node2 = __commonJS((exports) => {
5844
5844
  exports.parentThread = parentThread;
5845
5845
  });
5846
5846
 
5847
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/distribute.js
5847
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/distribute.js
5848
5848
  var require_distribute = __commonJS((exports) => {
5849
5849
  Object.defineProperty(exports, "__esModule", { value: true });
5850
5850
  exports.distribute = undefined;
@@ -5889,7 +5889,7 @@ var require_distribute = __commonJS((exports) => {
5889
5889
  exports.distribute = distribute;
5890
5890
  });
5891
5891
 
5892
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/queue.js
5892
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/queue.js
5893
5893
  var require_queue = __commonJS((exports) => {
5894
5894
  Object.defineProperty(exports, "__esModule", { value: true });
5895
5895
  exports.DecayingDeque = undefined;
@@ -6033,7 +6033,7 @@ var require_queue = __commonJS((exports) => {
6033
6033
  exports.DecayingDeque = DecayingDeque;
6034
6034
  });
6035
6035
 
6036
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/sink.js
6036
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/sink.js
6037
6037
  var require_sink = __commonJS((exports) => {
6038
6038
  Object.defineProperty(exports, "__esModule", { value: true });
6039
6039
  exports.createConcurrentSink = exports.createBatchSink = exports.createSequentialSink = undefined;
@@ -6078,7 +6078,7 @@ var require_sink = __commonJS((exports) => {
6078
6078
  exports.createConcurrentSink = createConcurrentSink;
6079
6079
  });
6080
6080
 
6081
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/node-shim.js
6081
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/node-shim.js
6082
6082
  var require_node_shim = __commonJS((exports) => {
6083
6083
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
6084
6084
  if (k2 === undefined)
@@ -6104,7 +6104,7 @@ var require_node_shim = __commonJS((exports) => {
6104
6104
  __exportStar(require_abort_controller(), exports);
6105
6105
  });
6106
6106
 
6107
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/source.js
6107
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/source.js
6108
6108
  var require_source = __commonJS((exports) => {
6109
6109
  Object.defineProperty(exports, "__esModule", { value: true });
6110
6110
  exports.createSource = undefined;
@@ -6184,7 +6184,7 @@ var require_source = __commonJS((exports) => {
6184
6184
  var node_shim_js_1 = require_node_shim();
6185
6185
  });
6186
6186
 
6187
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/runner.js
6187
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/runner.js
6188
6188
  var require_runner = __commonJS((exports) => {
6189
6189
  Object.defineProperty(exports, "__esModule", { value: true });
6190
6190
  exports.createRunner = exports.createUpdateFetcher = exports.run = undefined;
@@ -6336,7 +6336,7 @@ var require_runner = __commonJS((exports) => {
6336
6336
  }
6337
6337
  });
6338
6338
 
6339
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/sequentialize.js
6339
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/sequentialize.js
6340
6340
  var require_sequentialize = __commonJS((exports) => {
6341
6341
  Object.defineProperty(exports, "__esModule", { value: true });
6342
6342
  exports.sequentialize = undefined;
@@ -6379,7 +6379,7 @@ var require_sequentialize = __commonJS((exports) => {
6379
6379
  exports.sequentialize = sequentialize;
6380
6380
  });
6381
6381
 
6382
- // ../../switchroom-sec-1417/node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/mod.js
6382
+ // ../node_modules/.bun/grammy@1.42.0/node_modules/grammy/out/mod.js
6383
6383
  var require_mod2 = __commonJS((exports) => {
6384
6384
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
6385
6385
  if (k2 === undefined)
@@ -6445,7 +6445,7 @@ var require_mod2 = __commonJS((exports) => {
6445
6445
  } });
6446
6446
  });
6447
6447
 
6448
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/deps.node.js
6448
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/deps.node.js
6449
6449
  var require_deps_node = __commonJS((exports) => {
6450
6450
  Object.defineProperty(exports, "__esModule", { value: true });
6451
6451
  exports.BotError = exports.Bot = undefined;
@@ -6458,7 +6458,7 @@ var require_deps_node = __commonJS((exports) => {
6458
6458
  } });
6459
6459
  });
6460
6460
 
6461
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/worker.js
6461
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/worker.js
6462
6462
  var require_worker = __commonJS((exports) => {
6463
6463
  Object.defineProperty(exports, "__esModule", { value: true });
6464
6464
  exports.BotWorker = undefined;
@@ -6500,7 +6500,7 @@ var require_worker = __commonJS((exports) => {
6500
6500
  exports.BotWorker = BotWorker;
6501
6501
  });
6502
6502
 
6503
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/mod.js
6503
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/mod.js
6504
6504
  var require_mod3 = __commonJS((exports) => {
6505
6505
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
6506
6506
  if (k2 === undefined)
@@ -6587,7 +6587,7 @@ function cleanWorkerResultParagraph(s) {
6587
6587
  return kept.join(" ").replace(/\s+/g, " ").trim();
6588
6588
  }
6589
6589
 
6590
- // ../../switchroom-sec-1417/node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/mod.js
6590
+ // ../node_modules/.bun/@grammyjs+runner@2.0.3+c6be0243b1bbec89/node_modules/@grammyjs/runner/out/mod.js
6591
6591
  var require_mod4 = __commonJS((exports) => {
6592
6592
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
6593
6593
  if (k2 === undefined)
@@ -6619,7 +6619,7 @@ var require_mod4 = __commonJS((exports) => {
6619
6619
  __exportStar(require_worker(), exports);
6620
6620
  });
6621
6621
 
6622
- // ../../switchroom-sec-1417/node_modules/.bun/@xterm+headless@6.0.0/node_modules/@xterm/headless/lib-headless/xterm-headless.js
6622
+ // ../node_modules/.bun/@xterm+headless@6.0.0/node_modules/@xterm/headless/lib-headless/xterm-headless.js
6623
6623
  var require_xterm_headless = __commonJS((exports2) => {
6624
6624
  (() => {
6625
6625
  var e = { 5639: (e2, t2, s2) => {
@@ -12174,7 +12174,7 @@ ${i3.join(`
12174
12174
  })();
12175
12175
  });
12176
12176
 
12177
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/util.js
12177
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/util.js
12178
12178
  var util, objectUtil, ZodParsedType, getParsedType = (data) => {
12179
12179
  const t = typeof data;
12180
12180
  switch (t) {
@@ -12305,7 +12305,7 @@ var init_util = __esm(() => {
12305
12305
  ]);
12306
12306
  });
12307
12307
 
12308
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/ZodError.js
12308
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/ZodError.js
12309
12309
  var ZodIssueCode, quotelessJson = (obj) => {
12310
12310
  const json = JSON.stringify(obj, null, 2);
12311
12311
  return json.replace(/"([^"]+)":/g, "$1:");
@@ -12426,7 +12426,7 @@ var init_ZodError = __esm(() => {
12426
12426
  };
12427
12427
  });
12428
12428
 
12429
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/locales/en.js
12429
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/locales/en.js
12430
12430
  var errorMap = (issue, _ctx) => {
12431
12431
  let message;
12432
12432
  switch (issue.code) {
@@ -12533,7 +12533,7 @@ var init_en = __esm(() => {
12533
12533
  en_default = errorMap;
12534
12534
  });
12535
12535
 
12536
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/errors.js
12536
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/errors.js
12537
12537
  function setErrorMap(map) {
12538
12538
  overrideErrorMap = map;
12539
12539
  }
@@ -12546,7 +12546,7 @@ var init_errors = __esm(() => {
12546
12546
  overrideErrorMap = en_default;
12547
12547
  });
12548
12548
 
12549
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js
12549
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js
12550
12550
  function addIssueToContext(ctx, issueData) {
12551
12551
  const overrideMap = getErrorMap();
12552
12552
  const issue = makeIssue({
@@ -12651,10 +12651,10 @@ var init_parseUtil = __esm(() => {
12651
12651
  });
12652
12652
  });
12653
12653
 
12654
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.js
12654
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.js
12655
12655
  var init_typeAliases = () => {};
12656
12656
 
12657
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js
12657
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js
12658
12658
  var errorUtil;
12659
12659
  var init_errorUtil = __esm(() => {
12660
12660
  (function(errorUtil2) {
@@ -12663,7 +12663,7 @@ var init_errorUtil = __esm(() => {
12663
12663
  })(errorUtil || (errorUtil = {}));
12664
12664
  });
12665
12665
 
12666
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/types.js
12666
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/types.js
12667
12667
  class ParseInputLazyPath {
12668
12668
  constructor(parent, value, path, key) {
12669
12669
  this._cachedPath = [];
@@ -16014,7 +16014,7 @@ var init_types = __esm(() => {
16014
16014
  NEVER = INVALID;
16015
16015
  });
16016
16016
 
16017
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/v3/external.js
16017
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/external.js
16018
16018
  var exports_external = {};
16019
16019
  __export(exports_external, {
16020
16020
  void: () => voidType,
@@ -16134,7 +16134,7 @@ var init_external = __esm(() => {
16134
16134
  init_ZodError();
16135
16135
  });
16136
16136
 
16137
- // ../../switchroom-sec-1417/node_modules/.bun/zod@3.25.76/node_modules/zod/index.js
16137
+ // ../node_modules/.bun/zod@3.25.76/node_modules/zod/index.js
16138
16138
  var init_zod = __esm(() => {
16139
16139
  init_external();
16140
16140
  init_external();
@@ -16837,7 +16837,7 @@ var init_vault = __esm(() => {
16837
16837
  };
16838
16838
  });
16839
16839
 
16840
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/identity.js
16840
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/identity.js
16841
16841
  var require_identity = __commonJS((exports2) => {
16842
16842
  var ALIAS = Symbol.for("yaml.alias");
16843
16843
  var DOC = Symbol.for("yaml.document");
@@ -16891,7 +16891,7 @@ var require_identity = __commonJS((exports2) => {
16891
16891
  exports2.isSeq = isSeq;
16892
16892
  });
16893
16893
 
16894
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/visit.js
16894
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/visit.js
16895
16895
  var require_visit = __commonJS((exports2) => {
16896
16896
  var identity = require_identity();
16897
16897
  var BREAK = Symbol("break visit");
@@ -17046,7 +17046,7 @@ var require_visit = __commonJS((exports2) => {
17046
17046
  exports2.visitAsync = visitAsync;
17047
17047
  });
17048
17048
 
17049
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/directives.js
17049
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/directives.js
17050
17050
  var require_directives = __commonJS((exports2) => {
17051
17051
  var identity = require_identity();
17052
17052
  var visit = require_visit();
@@ -17198,7 +17198,7 @@ var require_directives = __commonJS((exports2) => {
17198
17198
  exports2.Directives = Directives;
17199
17199
  });
17200
17200
 
17201
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/anchors.js
17201
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/anchors.js
17202
17202
  var require_anchors = __commonJS((exports2) => {
17203
17203
  var identity = require_identity();
17204
17204
  var visit = require_visit();
@@ -17260,7 +17260,7 @@ var require_anchors = __commonJS((exports2) => {
17260
17260
  exports2.findNewAnchor = findNewAnchor;
17261
17261
  });
17262
17262
 
17263
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/applyReviver.js
17263
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/applyReviver.js
17264
17264
  var require_applyReviver = __commonJS((exports2) => {
17265
17265
  function applyReviver(reviver, obj, key, val) {
17266
17266
  if (val && typeof val === "object") {
@@ -17307,7 +17307,7 @@ var require_applyReviver = __commonJS((exports2) => {
17307
17307
  exports2.applyReviver = applyReviver;
17308
17308
  });
17309
17309
 
17310
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/toJS.js
17310
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/toJS.js
17311
17311
  var require_toJS = __commonJS((exports2) => {
17312
17312
  var identity = require_identity();
17313
17313
  function toJS(value, arg, ctx) {
@@ -17334,7 +17334,7 @@ var require_toJS = __commonJS((exports2) => {
17334
17334
  exports2.toJS = toJS;
17335
17335
  });
17336
17336
 
17337
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Node.js
17337
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Node.js
17338
17338
  var require_Node = __commonJS((exports2) => {
17339
17339
  var applyReviver = require_applyReviver();
17340
17340
  var identity = require_identity();
@@ -17371,7 +17371,7 @@ var require_Node = __commonJS((exports2) => {
17371
17371
  exports2.NodeBase = NodeBase;
17372
17372
  });
17373
17373
 
17374
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Alias.js
17374
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Alias.js
17375
17375
  var require_Alias = __commonJS((exports2) => {
17376
17376
  var anchors = require_anchors();
17377
17377
  var visit = require_visit();
@@ -17479,7 +17479,7 @@ var require_Alias = __commonJS((exports2) => {
17479
17479
  exports2.Alias = Alias;
17480
17480
  });
17481
17481
 
17482
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Scalar.js
17482
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Scalar.js
17483
17483
  var require_Scalar = __commonJS((exports2) => {
17484
17484
  var identity = require_identity();
17485
17485
  var Node = require_Node();
@@ -17507,7 +17507,7 @@ var require_Scalar = __commonJS((exports2) => {
17507
17507
  exports2.isScalarValue = isScalarValue;
17508
17508
  });
17509
17509
 
17510
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/createNode.js
17510
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/createNode.js
17511
17511
  var require_createNode = __commonJS((exports2) => {
17512
17512
  var Alias = require_Alias();
17513
17513
  var identity = require_identity();
@@ -17579,7 +17579,7 @@ var require_createNode = __commonJS((exports2) => {
17579
17579
  exports2.createNode = createNode;
17580
17580
  });
17581
17581
 
17582
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Collection.js
17582
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Collection.js
17583
17583
  var require_Collection = __commonJS((exports2) => {
17584
17584
  var createNode = require_createNode();
17585
17585
  var identity = require_identity();
@@ -17694,7 +17694,7 @@ var require_Collection = __commonJS((exports2) => {
17694
17694
  exports2.isEmptyPath = isEmptyPath;
17695
17695
  });
17696
17696
 
17697
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyComment.js
17697
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyComment.js
17698
17698
  var require_stringifyComment = __commonJS((exports2) => {
17699
17699
  var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
17700
17700
  function indentComment(comment, indent) {
@@ -17711,7 +17711,7 @@ var require_stringifyComment = __commonJS((exports2) => {
17711
17711
  exports2.stringifyComment = stringifyComment;
17712
17712
  });
17713
17713
 
17714
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/foldFlowLines.js
17714
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/foldFlowLines.js
17715
17715
  var require_foldFlowLines = __commonJS((exports2) => {
17716
17716
  var FOLD_FLOW = "flow";
17717
17717
  var FOLD_BLOCK = "block";
@@ -17848,7 +17848,7 @@ ${indent}${text.slice(fold + 1, end2)}`;
17848
17848
  exports2.foldFlowLines = foldFlowLines;
17849
17849
  });
17850
17850
 
17851
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyString.js
17851
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyString.js
17852
17852
  var require_stringifyString = __commonJS((exports2) => {
17853
17853
  var Scalar = require_Scalar();
17854
17854
  var foldFlowLines = require_foldFlowLines();
@@ -18146,7 +18146,7 @@ ${indent}`);
18146
18146
  exports2.stringifyString = stringifyString;
18147
18147
  });
18148
18148
 
18149
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringify.js
18149
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringify.js
18150
18150
  var require_stringify = __commonJS((exports2) => {
18151
18151
  var anchors = require_anchors();
18152
18152
  var identity = require_identity();
@@ -18267,7 +18267,7 @@ ${ctx.indent}${str}`;
18267
18267
  exports2.stringify = stringify;
18268
18268
  });
18269
18269
 
18270
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyPair.js
18270
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyPair.js
18271
18271
  var require_stringifyPair = __commonJS((exports2) => {
18272
18272
  var identity = require_identity();
18273
18273
  var Scalar = require_Scalar();
@@ -18403,7 +18403,7 @@ ${ctx.indent}`;
18403
18403
  exports2.stringifyPair = stringifyPair;
18404
18404
  });
18405
18405
 
18406
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/log.js
18406
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/log.js
18407
18407
  var require_log = __commonJS((exports2) => {
18408
18408
  var node_process = __require("process");
18409
18409
  function debug(logLevel, ...messages) {
@@ -18422,7 +18422,7 @@ var require_log = __commonJS((exports2) => {
18422
18422
  exports2.warn = warn;
18423
18423
  });
18424
18424
 
18425
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/merge.js
18425
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/merge.js
18426
18426
  var require_merge = __commonJS((exports2) => {
18427
18427
  var identity = require_identity();
18428
18428
  var Scalar = require_Scalar();
@@ -18476,7 +18476,7 @@ var require_merge = __commonJS((exports2) => {
18476
18476
  exports2.merge = merge;
18477
18477
  });
18478
18478
 
18479
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/addPairToJSMap.js
18479
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/addPairToJSMap.js
18480
18480
  var require_addPairToJSMap = __commonJS((exports2) => {
18481
18481
  var log = require_log();
18482
18482
  var merge = require_merge();
@@ -18537,7 +18537,7 @@ var require_addPairToJSMap = __commonJS((exports2) => {
18537
18537
  exports2.addPairToJSMap = addPairToJSMap;
18538
18538
  });
18539
18539
 
18540
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Pair.js
18540
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/Pair.js
18541
18541
  var require_Pair = __commonJS((exports2) => {
18542
18542
  var createNode = require_createNode();
18543
18543
  var stringifyPair = require_stringifyPair();
@@ -18575,7 +18575,7 @@ var require_Pair = __commonJS((exports2) => {
18575
18575
  exports2.createPair = createPair;
18576
18576
  });
18577
18577
 
18578
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyCollection.js
18578
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyCollection.js
18579
18579
  var require_stringifyCollection = __commonJS((exports2) => {
18580
18580
  var identity = require_identity();
18581
18581
  var stringify = require_stringify();
@@ -18727,7 +18727,7 @@ ${indent}${end}`;
18727
18727
  exports2.stringifyCollection = stringifyCollection;
18728
18728
  });
18729
18729
 
18730
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLMap.js
18730
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLMap.js
18731
18731
  var require_YAMLMap = __commonJS((exports2) => {
18732
18732
  var stringifyCollection = require_stringifyCollection();
18733
18733
  var addPairToJSMap = require_addPairToJSMap();
@@ -18854,7 +18854,7 @@ var require_YAMLMap = __commonJS((exports2) => {
18854
18854
  exports2.findPair = findPair;
18855
18855
  });
18856
18856
 
18857
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/common/map.js
18857
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/common/map.js
18858
18858
  var require_map = __commonJS((exports2) => {
18859
18859
  var identity = require_identity();
18860
18860
  var YAMLMap = require_YAMLMap();
@@ -18873,7 +18873,7 @@ var require_map = __commonJS((exports2) => {
18873
18873
  exports2.map = map;
18874
18874
  });
18875
18875
 
18876
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLSeq.js
18876
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLSeq.js
18877
18877
  var require_YAMLSeq = __commonJS((exports2) => {
18878
18878
  var createNode = require_createNode();
18879
18879
  var stringifyCollection = require_stringifyCollection();
@@ -18966,7 +18966,7 @@ var require_YAMLSeq = __commonJS((exports2) => {
18966
18966
  exports2.YAMLSeq = YAMLSeq;
18967
18967
  });
18968
18968
 
18969
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/common/seq.js
18969
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/common/seq.js
18970
18970
  var require_seq = __commonJS((exports2) => {
18971
18971
  var identity = require_identity();
18972
18972
  var YAMLSeq = require_YAMLSeq();
@@ -18985,7 +18985,7 @@ var require_seq = __commonJS((exports2) => {
18985
18985
  exports2.seq = seq;
18986
18986
  });
18987
18987
 
18988
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/common/string.js
18988
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/common/string.js
18989
18989
  var require_string = __commonJS((exports2) => {
18990
18990
  var stringifyString = require_stringifyString();
18991
18991
  var string = {
@@ -19001,7 +19001,7 @@ var require_string = __commonJS((exports2) => {
19001
19001
  exports2.string = string;
19002
19002
  });
19003
19003
 
19004
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/common/null.js
19004
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/common/null.js
19005
19005
  var require_null = __commonJS((exports2) => {
19006
19006
  var Scalar = require_Scalar();
19007
19007
  var nullTag = {
@@ -19016,7 +19016,7 @@ var require_null = __commonJS((exports2) => {
19016
19016
  exports2.nullTag = nullTag;
19017
19017
  });
19018
19018
 
19019
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/core/bool.js
19019
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/core/bool.js
19020
19020
  var require_bool = __commonJS((exports2) => {
19021
19021
  var Scalar = require_Scalar();
19022
19022
  var boolTag = {
@@ -19037,7 +19037,7 @@ var require_bool = __commonJS((exports2) => {
19037
19037
  exports2.boolTag = boolTag;
19038
19038
  });
19039
19039
 
19040
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyNumber.js
19040
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyNumber.js
19041
19041
  var require_stringifyNumber = __commonJS((exports2) => {
19042
19042
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
19043
19043
  if (typeof value === "bigint")
@@ -19061,7 +19061,7 @@ var require_stringifyNumber = __commonJS((exports2) => {
19061
19061
  exports2.stringifyNumber = stringifyNumber;
19062
19062
  });
19063
19063
 
19064
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/core/float.js
19064
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/core/float.js
19065
19065
  var require_float = __commonJS((exports2) => {
19066
19066
  var Scalar = require_Scalar();
19067
19067
  var stringifyNumber = require_stringifyNumber();
@@ -19104,7 +19104,7 @@ var require_float = __commonJS((exports2) => {
19104
19104
  exports2.floatNaN = floatNaN;
19105
19105
  });
19106
19106
 
19107
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/core/int.js
19107
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/core/int.js
19108
19108
  var require_int = __commonJS((exports2) => {
19109
19109
  var stringifyNumber = require_stringifyNumber();
19110
19110
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -19146,7 +19146,7 @@ var require_int = __commonJS((exports2) => {
19146
19146
  exports2.intOct = intOct;
19147
19147
  });
19148
19148
 
19149
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/core/schema.js
19149
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/core/schema.js
19150
19150
  var require_schema = __commonJS((exports2) => {
19151
19151
  var map = require_map();
19152
19152
  var _null = require_null();
@@ -19171,7 +19171,7 @@ var require_schema = __commonJS((exports2) => {
19171
19171
  exports2.schema = schema;
19172
19172
  });
19173
19173
 
19174
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/json/schema.js
19174
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/json/schema.js
19175
19175
  var require_schema2 = __commonJS((exports2) => {
19176
19176
  var Scalar = require_Scalar();
19177
19177
  var map = require_map();
@@ -19235,7 +19235,7 @@ var require_schema2 = __commonJS((exports2) => {
19235
19235
  exports2.schema = schema;
19236
19236
  });
19237
19237
 
19238
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/binary.js
19238
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/binary.js
19239
19239
  var require_binary = __commonJS((exports2) => {
19240
19240
  var node_buffer = __require("buffer");
19241
19241
  var Scalar = require_Scalar();
@@ -19290,7 +19290,7 @@ var require_binary = __commonJS((exports2) => {
19290
19290
  exports2.binary = binary;
19291
19291
  });
19292
19292
 
19293
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
19293
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
19294
19294
  var require_pairs = __commonJS((exports2) => {
19295
19295
  var identity = require_identity();
19296
19296
  var Pair = require_Pair();
@@ -19365,7 +19365,7 @@ ${cn.comment}` : item.comment;
19365
19365
  exports2.resolvePairs = resolvePairs;
19366
19366
  });
19367
19367
 
19368
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/omap.js
19368
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/omap.js
19369
19369
  var require_omap = __commonJS((exports2) => {
19370
19370
  var identity = require_identity();
19371
19371
  var toJS = require_toJS();
@@ -19437,7 +19437,7 @@ var require_omap = __commonJS((exports2) => {
19437
19437
  exports2.omap = omap;
19438
19438
  });
19439
19439
 
19440
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/bool.js
19440
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/bool.js
19441
19441
  var require_bool2 = __commonJS((exports2) => {
19442
19442
  var Scalar = require_Scalar();
19443
19443
  function boolStringify({ value, source }, ctx) {
@@ -19466,7 +19466,7 @@ var require_bool2 = __commonJS((exports2) => {
19466
19466
  exports2.trueTag = trueTag;
19467
19467
  });
19468
19468
 
19469
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/float.js
19469
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/float.js
19470
19470
  var require_float2 = __commonJS((exports2) => {
19471
19471
  var Scalar = require_Scalar();
19472
19472
  var stringifyNumber = require_stringifyNumber();
@@ -19512,7 +19512,7 @@ var require_float2 = __commonJS((exports2) => {
19512
19512
  exports2.floatNaN = floatNaN;
19513
19513
  });
19514
19514
 
19515
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/int.js
19515
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/int.js
19516
19516
  var require_int2 = __commonJS((exports2) => {
19517
19517
  var stringifyNumber = require_stringifyNumber();
19518
19518
  var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -19588,7 +19588,7 @@ var require_int2 = __commonJS((exports2) => {
19588
19588
  exports2.intOct = intOct;
19589
19589
  });
19590
19590
 
19591
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/set.js
19591
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/set.js
19592
19592
  var require_set = __commonJS((exports2) => {
19593
19593
  var identity = require_identity();
19594
19594
  var Pair = require_Pair();
@@ -19671,7 +19671,7 @@ var require_set = __commonJS((exports2) => {
19671
19671
  exports2.set = set;
19672
19672
  });
19673
19673
 
19674
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
19674
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
19675
19675
  var require_timestamp = __commonJS((exports2) => {
19676
19676
  var stringifyNumber = require_stringifyNumber();
19677
19677
  function parseSexagesimal(str, asBigInt) {
@@ -19753,7 +19753,7 @@ var require_timestamp = __commonJS((exports2) => {
19753
19753
  exports2.timestamp = timestamp;
19754
19754
  });
19755
19755
 
19756
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/schema.js
19756
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/schema.js
19757
19757
  var require_schema3 = __commonJS((exports2) => {
19758
19758
  var map = require_map();
19759
19759
  var _null = require_null();
@@ -19794,7 +19794,7 @@ var require_schema3 = __commonJS((exports2) => {
19794
19794
  exports2.schema = schema;
19795
19795
  });
19796
19796
 
19797
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/tags.js
19797
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/tags.js
19798
19798
  var require_tags = __commonJS((exports2) => {
19799
19799
  var map = require_map();
19800
19800
  var _null = require_null();
@@ -19885,7 +19885,7 @@ var require_tags = __commonJS((exports2) => {
19885
19885
  exports2.getTags = getTags;
19886
19886
  });
19887
19887
 
19888
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/Schema.js
19888
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/schema/Schema.js
19889
19889
  var require_Schema = __commonJS((exports2) => {
19890
19890
  var identity = require_identity();
19891
19891
  var map = require_map();
@@ -19915,7 +19915,7 @@ var require_Schema = __commonJS((exports2) => {
19915
19915
  exports2.Schema = Schema;
19916
19916
  });
19917
19917
 
19918
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyDocument.js
19918
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyDocument.js
19919
19919
  var require_stringifyDocument = __commonJS((exports2) => {
19920
19920
  var identity = require_identity();
19921
19921
  var stringify = require_stringify();
@@ -19995,7 +19995,7 @@ var require_stringifyDocument = __commonJS((exports2) => {
19995
19995
  exports2.stringifyDocument = stringifyDocument;
19996
19996
  });
19997
19997
 
19998
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/Document.js
19998
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/doc/Document.js
19999
19999
  var require_Document = __commonJS((exports2) => {
20000
20000
  var Alias = require_Alias();
20001
20001
  var Collection = require_Collection();
@@ -20230,7 +20230,7 @@ var require_Document = __commonJS((exports2) => {
20230
20230
  exports2.Document = Document;
20231
20231
  });
20232
20232
 
20233
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/errors.js
20233
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/errors.js
20234
20234
  var require_errors = __commonJS((exports2) => {
20235
20235
  class YAMLError extends Error {
20236
20236
  constructor(name, pos, code, message) {
@@ -20295,7 +20295,7 @@ ${pointer}
20295
20295
  exports2.prettifyError = prettifyError;
20296
20296
  });
20297
20297
 
20298
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-props.js
20298
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-props.js
20299
20299
  var require_resolve_props = __commonJS((exports2) => {
20300
20300
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
20301
20301
  let spaceBefore = false;
@@ -20425,7 +20425,7 @@ var require_resolve_props = __commonJS((exports2) => {
20425
20425
  exports2.resolveProps = resolveProps;
20426
20426
  });
20427
20427
 
20428
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/util-contains-newline.js
20428
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/util-contains-newline.js
20429
20429
  var require_util_contains_newline = __commonJS((exports2) => {
20430
20430
  function containsNewline(key) {
20431
20431
  if (!key)
@@ -20465,7 +20465,7 @@ var require_util_contains_newline = __commonJS((exports2) => {
20465
20465
  exports2.containsNewline = containsNewline;
20466
20466
  });
20467
20467
 
20468
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/util-flow-indent-check.js
20468
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/util-flow-indent-check.js
20469
20469
  var require_util_flow_indent_check = __commonJS((exports2) => {
20470
20470
  var utilContainsNewline = require_util_contains_newline();
20471
20471
  function flowIndentCheck(indent, fc, onError) {
@@ -20480,7 +20480,7 @@ var require_util_flow_indent_check = __commonJS((exports2) => {
20480
20480
  exports2.flowIndentCheck = flowIndentCheck;
20481
20481
  });
20482
20482
 
20483
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/util-map-includes.js
20483
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/util-map-includes.js
20484
20484
  var require_util_map_includes = __commonJS((exports2) => {
20485
20485
  var identity = require_identity();
20486
20486
  function mapIncludes(ctx, items, search) {
@@ -20493,7 +20493,7 @@ var require_util_map_includes = __commonJS((exports2) => {
20493
20493
  exports2.mapIncludes = mapIncludes;
20494
20494
  });
20495
20495
 
20496
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-map.js
20496
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-map.js
20497
20497
  var require_resolve_block_map = __commonJS((exports2) => {
20498
20498
  var Pair = require_Pair();
20499
20499
  var YAMLMap = require_YAMLMap();
@@ -20600,7 +20600,7 @@ var require_resolve_block_map = __commonJS((exports2) => {
20600
20600
  exports2.resolveBlockMap = resolveBlockMap;
20601
20601
  });
20602
20602
 
20603
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-seq.js
20603
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-seq.js
20604
20604
  var require_resolve_block_seq = __commonJS((exports2) => {
20605
20605
  var YAMLSeq = require_YAMLSeq();
20606
20606
  var resolveProps = require_resolve_props();
@@ -20648,7 +20648,7 @@ var require_resolve_block_seq = __commonJS((exports2) => {
20648
20648
  exports2.resolveBlockSeq = resolveBlockSeq;
20649
20649
  });
20650
20650
 
20651
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-end.js
20651
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-end.js
20652
20652
  var require_resolve_end = __commonJS((exports2) => {
20653
20653
  function resolveEnd(end, offset, reqSpace, onError) {
20654
20654
  let comment = "";
@@ -20688,7 +20688,7 @@ var require_resolve_end = __commonJS((exports2) => {
20688
20688
  exports2.resolveEnd = resolveEnd;
20689
20689
  });
20690
20690
 
20691
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-collection.js
20691
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-collection.js
20692
20692
  var require_resolve_flow_collection = __commonJS((exports2) => {
20693
20693
  var identity = require_identity();
20694
20694
  var Pair = require_Pair();
@@ -20879,7 +20879,7 @@ var require_resolve_flow_collection = __commonJS((exports2) => {
20879
20879
  exports2.resolveFlowCollection = resolveFlowCollection;
20880
20880
  });
20881
20881
 
20882
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/compose-collection.js
20882
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/compose-collection.js
20883
20883
  var require_compose_collection = __commonJS((exports2) => {
20884
20884
  var identity = require_identity();
20885
20885
  var Scalar = require_Scalar();
@@ -20941,7 +20941,7 @@ var require_compose_collection = __commonJS((exports2) => {
20941
20941
  exports2.composeCollection = composeCollection;
20942
20942
  });
20943
20943
 
20944
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-scalar.js
20944
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-scalar.js
20945
20945
  var require_resolve_block_scalar = __commonJS((exports2) => {
20946
20946
  var Scalar = require_Scalar();
20947
20947
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -21134,7 +21134,7 @@ var require_resolve_block_scalar = __commonJS((exports2) => {
21134
21134
  exports2.resolveBlockScalar = resolveBlockScalar;
21135
21135
  });
21136
21136
 
21137
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-scalar.js
21137
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-scalar.js
21138
21138
  var require_resolve_flow_scalar = __commonJS((exports2) => {
21139
21139
  var Scalar = require_Scalar();
21140
21140
  var resolveEnd = require_resolve_end();
@@ -21350,7 +21350,7 @@ var require_resolve_flow_scalar = __commonJS((exports2) => {
21350
21350
  exports2.resolveFlowScalar = resolveFlowScalar;
21351
21351
  });
21352
21352
 
21353
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/compose-scalar.js
21353
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/compose-scalar.js
21354
21354
  var require_compose_scalar = __commonJS((exports2) => {
21355
21355
  var identity = require_identity();
21356
21356
  var Scalar = require_Scalar();
@@ -21428,7 +21428,7 @@ var require_compose_scalar = __commonJS((exports2) => {
21428
21428
  exports2.composeScalar = composeScalar;
21429
21429
  });
21430
21430
 
21431
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/util-empty-scalar-position.js
21431
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/util-empty-scalar-position.js
21432
21432
  var require_util_empty_scalar_position = __commonJS((exports2) => {
21433
21433
  function emptyScalarPosition(offset, before, pos) {
21434
21434
  if (before) {
@@ -21455,7 +21455,7 @@ var require_util_empty_scalar_position = __commonJS((exports2) => {
21455
21455
  exports2.emptyScalarPosition = emptyScalarPosition;
21456
21456
  });
21457
21457
 
21458
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/compose-node.js
21458
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/compose-node.js
21459
21459
  var require_compose_node = __commonJS((exports2) => {
21460
21460
  var Alias = require_Alias();
21461
21461
  var identity = require_identity();
@@ -21558,7 +21558,7 @@ var require_compose_node = __commonJS((exports2) => {
21558
21558
  exports2.composeNode = composeNode;
21559
21559
  });
21560
21560
 
21561
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/compose-doc.js
21561
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/compose-doc.js
21562
21562
  var require_compose_doc = __commonJS((exports2) => {
21563
21563
  var Document = require_Document();
21564
21564
  var composeNode = require_compose_node();
@@ -21598,7 +21598,7 @@ var require_compose_doc = __commonJS((exports2) => {
21598
21598
  exports2.composeDoc = composeDoc;
21599
21599
  });
21600
21600
 
21601
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/composer.js
21601
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/compose/composer.js
21602
21602
  var require_composer2 = __commonJS((exports2) => {
21603
21603
  var node_process = __require("process");
21604
21604
  var directives = require_directives();
@@ -21787,7 +21787,7 @@ ${end.comment}` : end.comment;
21787
21787
  exports2.Composer = Composer;
21788
21788
  });
21789
21789
 
21790
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/cst-scalar.js
21790
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/cst-scalar.js
21791
21791
  var require_cst_scalar = __commonJS((exports2) => {
21792
21792
  var resolveBlockScalar = require_resolve_block_scalar();
21793
21793
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -21977,7 +21977,7 @@ var require_cst_scalar = __commonJS((exports2) => {
21977
21977
  exports2.setScalarValue = setScalarValue;
21978
21978
  });
21979
21979
 
21980
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/cst-stringify.js
21980
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/cst-stringify.js
21981
21981
  var require_cst_stringify = __commonJS((exports2) => {
21982
21982
  var stringify = (cst) => ("type" in cst) ? stringifyToken(cst) : stringifyItem(cst);
21983
21983
  function stringifyToken(token) {
@@ -22035,7 +22035,7 @@ var require_cst_stringify = __commonJS((exports2) => {
22035
22035
  exports2.stringify = stringify;
22036
22036
  });
22037
22037
 
22038
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/cst-visit.js
22038
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/cst-visit.js
22039
22039
  var require_cst_visit = __commonJS((exports2) => {
22040
22040
  var BREAK = Symbol("break visit");
22041
22041
  var SKIP = Symbol("skip children");
@@ -22094,7 +22094,7 @@ var require_cst_visit = __commonJS((exports2) => {
22094
22094
  exports2.visit = visit;
22095
22095
  });
22096
22096
 
22097
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/cst.js
22097
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/cst.js
22098
22098
  var require_cst = __commonJS((exports2) => {
22099
22099
  var cstScalar = require_cst_scalar();
22100
22100
  var cstStringify = require_cst_stringify();
@@ -22195,7 +22195,7 @@ var require_cst = __commonJS((exports2) => {
22195
22195
  exports2.tokenType = tokenType;
22196
22196
  });
22197
22197
 
22198
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/lexer.js
22198
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/lexer.js
22199
22199
  var require_lexer = __commonJS((exports2) => {
22200
22200
  var cst = require_cst();
22201
22201
  function isEmpty2(ch) {
@@ -22781,7 +22781,7 @@ var require_lexer = __commonJS((exports2) => {
22781
22781
  exports2.Lexer = Lexer;
22782
22782
  });
22783
22783
 
22784
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/line-counter.js
22784
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/line-counter.js
22785
22785
  var require_line_counter = __commonJS((exports2) => {
22786
22786
  class LineCounter {
22787
22787
  constructor() {
@@ -22809,7 +22809,7 @@ var require_line_counter = __commonJS((exports2) => {
22809
22809
  exports2.LineCounter = LineCounter;
22810
22810
  });
22811
22811
 
22812
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/parser.js
22812
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/parse/parser.js
22813
22813
  var require_parser = __commonJS((exports2) => {
22814
22814
  var node_process = __require("process");
22815
22815
  var cst = require_cst();
@@ -23658,7 +23658,7 @@ var require_parser = __commonJS((exports2) => {
23658
23658
  exports2.Parser = Parser;
23659
23659
  });
23660
23660
 
23661
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/public-api.js
23661
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/public-api.js
23662
23662
  var require_public_api = __commonJS((exports2) => {
23663
23663
  var composer = require_composer2();
23664
23664
  var Document = require_Document();
@@ -23752,7 +23752,7 @@ var require_public_api = __commonJS((exports2) => {
23752
23752
  exports2.stringify = stringify;
23753
23753
  });
23754
23754
 
23755
- // ../../switchroom-sec-1417/node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/index.js
23755
+ // ../node_modules/.bun/yaml@2.8.3/node_modules/yaml/dist/index.js
23756
23756
  var composer, Document, Schema, errors2, Alias, identity, Pair, Scalar, YAMLMap, YAMLSeq, cst, lexer, lineCounter, parser, publicApi, visit, $Composer, $Document, $Schema, $YAMLError, $YAMLParseError, $YAMLWarning, $Alias, $isAlias, $isCollection, $isDocument, $isMap, $isNode, $isPair, $isScalar, $isSeq, $Pair, $Scalar, $YAMLMap, $YAMLSeq, $Lexer, $LineCounter, $Parser, $parse, $parseAllDocuments, $parseDocument, $stringify, $visit, $visitAsync;
23757
23757
  var init_dist = __esm(() => {
23758
23758
  composer = require_composer2();
@@ -23847,7 +23847,7 @@ var init_schema = __esm(() => {
23847
23847
  ScheduleEntrySchema = exports_external.object({
23848
23848
  cron: exports_external.string().describe("Cron expression (e.g., '0 8 * * *')"),
23849
23849
  prompt: exports_external.string().optional().describe("Prompt to send at the scheduled time (the escalation prompt when " + "kind=poll; templated with {{diff}}). Required for kind prompt/poll; " + "absent for kind=action (an action has no model fire, so no prompt)."),
23850
- kind: exports_external.enum(["poll", "prompt", "action"]).optional().describe("Tier-0 routing (docs/rfcs/cheap-cron-sessions.md). 'prompt' (default) " + "fires a model turn every tick (Tier 1/2 per `context`). 'poll' runs a " + "model-free deterministic check (requires `poll`) and only escalates to " + "a model fire on a hit. 'action' runs a model-free deterministic verb " + "(requires `action`) that COMPLETES the work and never escalates \u2014 zero " + "tokens, no session. poll/prompt tiering is on by default " + "(SWITCHROOM_CHEAP_CRON=0 is the kill-switch); an action is model-free " + "regardless (the kill-switch governs model tiering, not deterministic " + "actions)."),
23850
+ kind: exports_external.enum(["poll", "prompt", "action"]).optional().describe("Tier-0 routing (reference/rfcs/cheap-cron-sessions.md). 'prompt' (default) " + "fires a model turn every tick (Tier 1/2 per `context`). 'poll' runs a " + "model-free deterministic check (requires `poll`) and only escalates to " + "a model fire on a hit. 'action' runs a model-free deterministic verb " + "(requires `action`) that COMPLETES the work and never escalates \u2014 zero " + "tokens, no session. poll/prompt tiering is on by default " + "(SWITCHROOM_CHEAP_CRON=0 is the kill-switch); an action is model-free " + "regardless (the kill-switch governs model tiering, not deterministic " + "actions)."),
23851
23851
  poll: PollSpecSchema.optional().describe("Required iff kind=poll. The declarative poll spec."),
23852
23852
  action: ActionSpecSchema.optional().describe("Required iff kind=action. The declarative action spec (telegram-message or webhook)."),
23853
23853
  model: exports_external.string().optional().describe("Cron model hint. Reactivated by SWITCHROOM_CHEAP_CRON (was DEPRECATED/" + "IGNORED in v0.8). A known-cheap id (sonnet/haiku family) routes the " + "fire to a fresh cheap cron session (Tier 1, `context: fresh`); 'opus', " + "a custom id, or unset routes to the agent's live session (Tier 2, " + "`context: agent`) \u2014 the conservative default that preserves pre-v0.8 " + "behaviour. Note: a live session's model is fixed at launch, so on Tier " + "2 this is informational. See docs/scheduling.md."),
@@ -23856,7 +23856,7 @@ var init_schema = __esm(() => {
23856
23856
  topic: exports_external.union([
23857
23857
  exports_external.string().min(1, "topic alias must be non-empty"),
23858
23858
  exports_external.number().int().positive("topic ID must be a positive integer")
23859
- ]).optional().describe("Forum topic this cron fires into when the owning agent is in " + "supergroup-owned mode (channels.telegram.chat_id set). Either a " + 'string alias resolved against `topic_aliases` (e.g. "planning") ' + "or a numeric topic ID. Falls back to the agent's `default_topic_id` " + "when unset. Ignored for agents in fleet-shared or dm_only mode. " + "Alias-resolution happens at config-load \u2014 typos surface immediately. " + "See docs/rfcs/supergroup-mode.md.")
23859
+ ]).optional().describe("Forum topic this cron fires into when the owning agent is in " + "supergroup-owned mode (channels.telegram.chat_id set). Either a " + 'string alias resolved against `topic_aliases` (e.g. "planning") ' + "or a numeric topic ID. Falls back to the agent's `default_topic_id` " + "when unset. Ignored for agents in fleet-shared or dm_only mode. " + "Alias-resolution happens at config-load \u2014 typos surface immediately. " + "See reference/rfcs/supergroup-mode.md.")
23860
23860
  }).superRefine((entry, ctx) => {
23861
23861
  const kind = entry.kind ?? "prompt";
23862
23862
  if (kind === "poll" && !entry.poll) {
@@ -24029,15 +24029,15 @@ var init_schema = __esm(() => {
24029
24029
  webhook_rate_limit: exports_external.object({
24030
24030
  rpm: exports_external.number().int().positive()
24031
24031
  }).optional().describe("Per-source rate limit for the webhook ingest path (#714). " + "Off by default \u2014 when this key is absent the handler skips " + "rate-limit checks entirely. Opt in by setting `rpm` to an " + "integer requests-per-minute (token bucket per (agent, source); " + "burst equal to rpm). When enabled, exceeding the limit returns " + "429 with Retry-After header; first throttle event per " + "(agent, source) per 60s window is written to " + "<agent>/telegram/issues.jsonl. " + "Cascades from defaults.channels.telegram.webhook_rate_limit."),
24032
- webhook_via_gateway: exports_external.boolean().optional().describe("Route verified webhook events to the agent's in-container gateway " + "over a peercred-gated UDS (<agent>/telegram/webhook.sock) instead " + "of having the host-side web receiver write the agent dir directly. " + "Required under the Docker runtime: the receiver runs as the host " + "operator UID and cannot write the per-agent-UID-owned agent dir " + "(EACCES 500) nor connect the gateway socket. When true the gateway " + "(running as the agent UID) becomes the sole writer of " + "webhook-events.jsonl + dedup/cooldown state and also fires " + "webhook_dispatch. Off by default for back-compat with host-runtime " + "installs. See docs/rfcs/webhook-via-gateway-socket.md."),
24033
- webhook_require_edge: exports_external.boolean().optional().describe("Cloudflare-only edge lock: require the X-Switchroom-Edge header " + "(injected by a Cloudflare Transform Rule on hooks.switchroom.ai) to " + "match the operator's edge secret at ~/.switchroom/webhook-edge-secret " + "before any HMAC verification; reject 403 otherwise. Proves the " + "request entered through our Cloudflare edge \u2014 the per-agent HMAC " + "alone can't (it proves body provenance, not network path). Stacks " + "on the GitHub-IP WAF + per-agent HMAC. Fail-closed: when required " + "but the secret file is missing/empty every request is rejected. Off " + "by default. See docs/rfcs/webhook-cloudflare-edge-lock.md."),
24032
+ webhook_via_gateway: exports_external.boolean().optional().describe("Route verified webhook events to the agent's in-container gateway " + "over a peercred-gated UDS (<agent>/telegram/webhook.sock) instead " + "of having the host-side web receiver write the agent dir directly. " + "Required under the Docker runtime: the receiver runs as the host " + "operator UID and cannot write the per-agent-UID-owned agent dir " + "(EACCES 500) nor connect the gateway socket. When true the gateway " + "(running as the agent UID) becomes the sole writer of " + "webhook-events.jsonl + dedup/cooldown state and also fires " + "webhook_dispatch. Off by default for back-compat with host-runtime " + "installs. See reference/rfcs/webhook-via-gateway-socket.md."),
24033
+ webhook_require_edge: exports_external.boolean().optional().describe("Cloudflare-only edge lock: require the X-Switchroom-Edge header " + "(injected by a Cloudflare Transform Rule on hooks.switchroom.ai) to " + "match the operator's edge secret at ~/.switchroom/webhook-edge-secret " + "before any HMAC verification; reject 403 otherwise. Proves the " + "request entered through our Cloudflare edge \u2014 the per-agent HMAC " + "alone can't (it proves body provenance, not network path). Stacks " + "on the GitHub-IP WAF + per-agent HMAC. Fail-closed: when required " + "but the secret file is missing/empty every request is rejected. Off " + "by default. See reference/rfcs/webhook-cloudflare-edge-lock.md."),
24034
24034
  linear_agent: exports_external.object({
24035
24035
  enabled: exports_external.boolean(),
24036
24036
  token: exports_external.string().describe("vault:<key> reference to the Linear OAuth app token (actor=app). " + "Resolved at runtime via the vault broker (canonically " + "vault:linear/<agent>/token). Never an inline literal."),
24037
24037
  workspace_id: exports_external.string().optional().describe("Optional Linear workspace (organization) id this agent is " + "installed into. Informational \u2014 used for setup hints and " + "multi-workspace disambiguation; the token already scopes the " + "app to its workspace."),
24038
24038
  default_team_id: exports_external.string().optional().describe("Optional Linear team id new captured issues file into when the " + "agent doesn't pass an explicit team_id. Unnecessary for a " + "single-team workspace (auto-resolved); set it only when the " + "workspace has multiple teams. Manage via " + "`switchroom linear-agent set-team <agent> <team>`.")
24039
24039
  }).optional().describe("Linear first-class agent integration (#2298). When enabled, the " + "agent appears in a Linear workspace as an app actor (own name/" + "avatar, @-mentionable, delegate-assignable). Linear AgentSessionEvent " + "webhooks (mention / delegation) wake the agent instantly via the " + "same gateway inject path as webhook_dispatch, tagged " + 'meta.source="linear" with the agent_session_id, and the agent ' + "responds with structured AgentActivity (thought/message/complete/" + "error) via the linear_agent_activity MCP tool. Builds the " + "session-lifecycle layer on top of the plain webhook_sources:[linear] " + "+ webhook_dispatch support (#2272). The OAuth app token is stored in " + "the vault and referenced here as vault:linear/<agent>/token; run " + "`switchroom linear-agent setup <agent>` to provision it. Off by " + "default \u2014 opt in per agent. Cascades from " + "defaults.channels.telegram.linear_agent."),
24040
- chat_id: exports_external.string().regex(/^-\d+$/, 'supergroup chat_id must be a negative integer as a string (e.g. "-1001234567890")').optional().describe("Per-agent supergroup ID \u2014 overrides fleet `telegram.forum_chat_id`. " + "When set, requires `default_topic_id`. Negative integer as string. " + "Forbidden when `dm_only: true`. See docs/rfcs/supergroup-mode.md."),
24040
+ chat_id: exports_external.string().regex(/^-\d+$/, 'supergroup chat_id must be a negative integer as a string (e.g. "-1001234567890")').optional().describe("Per-agent supergroup ID \u2014 overrides fleet `telegram.forum_chat_id`. " + "When set, requires `default_topic_id`. Negative integer as string. " + "Forbidden when `dm_only: true`. See reference/rfcs/supergroup-mode.md."),
24041
24041
  default_topic_id: exports_external.number().int().positive().optional().describe("Forum topic ID this agent's automated outbounds default to when " + "no more-specific alias resolves. Defaults to General (topic 1) when " + "`chat_id` is set and this is omitted \u2014 set it only to pin a different " + "fallback topic. " + "Telegram's General topic is `id=1` at MTProto but sends omit the " + "field \u2014 the outbound wrapper strips `message_thread_id === 1` " + "on send. Forbidden when `dm_only: true`."),
24042
24042
  topic_aliases: exports_external.record(exports_external.string(), exports_external.number().int().positive()).optional().describe("Operator-friendly names for forum topic IDs (e.g. " + "`{ general: 1, planning: 17, cron: 23, admin: 31, alerts: 41 }`). " + "Referenced from per-cron `topic:` fields and the outbound router " + "for autonomous events (boot \u2192 alerts, hostd \u2192 admin, etc.). " + "Cascades per-key through defaults \u2192 profile \u2192 agent.")
24043
24043
  }).optional().superRefine((tg, ctx) => {
@@ -24263,7 +24263,7 @@ var init_schema = __esm(() => {
24263
24263
  drive: AgentGoogleWorkspaceConfigSchema.describe("RFC D legacy key \u2014 use `google_workspace:` instead. Per-agent " + "google_workspace overrides (currently approvers + tier). When set, " + "replaces the top-level approvers list for this agent. " + "google_client_id/secret are not per-agent \u2014 they live at the top level."),
24264
24264
  google_workspace: AgentGoogleWorkspaceConfigSchema.describe("RFC G canonical key. Per-agent Google Workspace overrides \u2014 currently " + "approvers (replaces, does not extend the top-level list) and tier " + "(`core` | `extended` | `complete`, replaces top-level default). " + "google_client_id/secret are not per-agent \u2014 they live at the top level. " + "Mutually exclusive with `drive:` on the same agent (loader fails fast " + "if both are set)."),
24265
24265
  microsoft_workspace: AgentMicrosoftWorkspaceConfigSchema.describe("RFC #1873 (Microsoft 365 integration). Per-agent Microsoft Workspace " + "override \u2014 pins the Microsoft account this agent reads via the " + "auth-broker (must be a key in top-level `microsoft_accounts:` with " + "this agent in its `enabled_for[]`) and optionally overrides org_mode. " + "microsoft_client_id/secret are not per-agent."),
24266
- notion_workspace: AgentNotionWorkspaceConfigSchema.describe("RFC docs/rfcs/notion-integration.md. Per-agent Notion access. " + "Presence opts the agent IN (launcher scaffolded, MCP entry emitted, " + "broker grants the integration token). Optional `databases:` filter " + "narrows which DBs this agent may read/write \u2014 names must resolve in " + "top-level notion_workspace.databases. Absence opts the agent OUT."),
24266
+ notion_workspace: AgentNotionWorkspaceConfigSchema.describe("RFC reference/rfcs/notion-integration.md. Per-agent Notion access. " + "Presence opts the agent IN (launcher scaffolded, MCP entry emitted, " + "broker grants the integration token). Optional `databases:` filter " + "narrows which DBs this agent may read/write \u2014 names must resolve in " + "top-level notion_workspace.databases. Absence opts the agent OUT."),
24267
24267
  repos: exports_external.record(exports_external.string().regex(/^[a-z0-9][a-z0-9-]*$/, "Repo slug must be kebab-case ASCII: start with a lowercase letter or digit, contain only lowercase letters, digits, and hyphens"), exports_external.object({
24268
24268
  url: exports_external.string().min(1).describe("Git remote URL for the repo (e.g. 'git@github.com:org/repo.git' or " + "'https://github.com/org/repo.git'). Used verbatim for git clone."),
24269
24269
  branch_default: exports_external.string().optional().describe("Default branch to track (defaults to the remote's HEAD, typically 'main'). " + "The per-agent branch 'agent/<agentName>/main' fast-forwards to this branch " + "when the worktree is clean on session start.")
@@ -24398,9 +24398,9 @@ var init_schema = __esm(() => {
24398
24398
  drive: GoogleWorkspaceConfigSchema.describe("RFC D legacy key \u2014 use `google_workspace:` instead. Optional Google " + "Workspace onboarding configuration. When set, supplies Google OAuth " + "client credentials, the approver allowlist for `switchroom drive " + "connect`, and the optional tier knob. Env vars " + "(SWITCHROOM_GOOGLE_CLIENT_ID, SWITCHROOM_GOOGLE_CLIENT_SECRET, " + "SWITCHROOM_APPROVER_USER_ID) take precedence over this block when " + "set, preserving back-compat with the env-only flow shipped in #766."),
24399
24399
  google_workspace: GoogleWorkspaceConfigSchema.describe("RFC G canonical key. Top-level Google Workspace configuration \u2014 " + "OAuth client credentials, approver allowlist, and tier knob (`core` " + "| `extended` | `complete`, default `core`). Mutually exclusive with " + "`drive:` at the top level (loader fails fast if both are set)."),
24400
24400
  microsoft_workspace: MicrosoftWorkspaceConfigSchema.describe("RFC #1873 (Microsoft 365 integration). Top-level Microsoft Workspace " + "configuration \u2014 OAuth client credentials (Entra app), authority " + "endpoint (defaults to /common for personal MSA + work), and the " + "org_mode opt-in for Teams/SharePoint surfaces. Block is optional; " + "when omitted the broker does not register the Microsoft provider."),
24401
- notion_workspace: NotionWorkspaceConfigSchema.describe("RFC docs/rfcs/notion-integration.md. Top-level Notion integration " + "config \u2014 vault key for the integration token, friendly-name \u2192 " + "database UUID map, optional MCP-package version pin, and optional " + "global rate-limit override (default 3 rps, Notion's documented " + "public-API limit). Block is optional; when omitted no agent gets a " + "Notion MCP entry regardless of per-agent config."),
24401
+ notion_workspace: NotionWorkspaceConfigSchema.describe("RFC reference/rfcs/notion-integration.md. Top-level Notion integration " + "config \u2014 vault key for the integration token, friendly-name \u2192 " + "database UUID map, optional MCP-package version pin, and optional " + "global rate-limit override (default 3 rps, Notion's documented " + "public-API limit). Block is optional; when omitted no agent gets a " + "Notion MCP entry regardless of per-agent config."),
24402
24402
  quota: QuotaConfigSchema.optional().describe("Optional weekly/monthly USD spend budgets rendered in the session " + "greeting. Usage is read from ccusage at runtime; no network calls."),
24403
- host_control: HostControlConfigSchema.default({}).describe("Host-control daemon configuration. Defaults to enabled=true since " + "RFC C Phase 2 (docs/rfcs/host-control-daemon.md). Omit the block " + "to accept defaults; set `enabled: false` only on legacy systemd-" + "mode installs (removal tracked as RFC C Phase 3)."),
24403
+ host_control: HostControlConfigSchema.default({}).describe("Host-control daemon configuration. Defaults to enabled=true since " + "RFC C Phase 2 (reference/rfcs/host-control-daemon.md). Omit the block " + "to accept defaults; set `enabled: false` only on legacy systemd-" + "mode installs (removal tracked as RFC C Phase 3)."),
24404
24404
  hostd: HostdConfigSchema.default({}).describe("hostd verb-level knobs (RFC admin-agent-config-edit). Distinct " + "from `host_control:` which governs whether the daemon runs at " + "all. Scopes the opt-in flag and rate cap for the " + "`config_propose_edit` verb (disabled by default)."),
24405
24405
  web_service: WebServiceConfigSchema.default({}).describe("Web-service container (dashboard + GitHub-webhook receiver) config. " + "Defaults to managed=false so existing systemd-mode installs are " + "untouched. Set managed: true after cutting over to the " + "`switchroom-web` container \u2014 then `switchroom update` keeps it " + "refreshed. See `switchroom webd install`."),
24406
24406
  google_accounts: exports_external.record(exports_external.string().regex(/^[^@\s:]+@[^@\s:]+\.[^@\s:]+$/, {
@@ -24422,7 +24422,7 @@ var init_schema = __esm(() => {
24422
24422
  agents: exports_external.record(exports_external.string().regex(/^[a-z0-9][a-z0-9_-]{0,50}$/, {
24423
24423
  message: "Agent name must start with a letter/digit, contain only lowercase letters/digits/hyphens/underscores, and be at most 51 characters (Telegram callback_data byte limit)"
24424
24424
  }), AgentSchema).describe("Map of agent name to agent configuration"),
24425
- cron: CronConfigSchema.optional().describe("Cheap-cron settings (docs/rfcs/cheap-cron-sessions.md). Operator-owned " + "egress allowlist + host-pinned secret bindings for Tier-0 http-diff " + "polls (\u00a76.1). Required to enable any http-diff poll; not agent-writable.")
24425
+ cron: CronConfigSchema.optional().describe("Cheap-cron settings (reference/rfcs/cheap-cron-sessions.md). Operator-owned " + "egress allowlist + host-pinned secret bindings for Tier-0 http-diff " + "polls (\u00a76.1). Required to enable any http-diff poll; not agent-writable.")
24426
24426
  });
24427
24427
  });
24428
24428
 
@@ -26271,7 +26271,7 @@ var init_url_redact = __esm(() => {
26271
26271
  URL_RE = /\b(?:https?|wss?|ftp):\/\/[^\s<>"']+/gi;
26272
26272
  });
26273
26273
 
26274
- // ../../switchroom-sec-1417/node_modules/.bun/boundary@2.0.0/node_modules/boundary/lib/index.js
26274
+ // ../node_modules/.bun/boundary@2.0.0/node_modules/boundary/lib/index.js
26275
26275
  var require_lib = __commonJS((exports2) => {
26276
26276
  Object.defineProperty(exports2, "__esModule", { value: true });
26277
26277
  exports2.binarySearch = exports2.upperBound = exports2.lowerBound = exports2.compare = undefined;
@@ -26318,7 +26318,7 @@ var require_lib = __commonJS((exports2) => {
26318
26318
  exports2.binarySearch = binarySearch;
26319
26319
  });
26320
26320
 
26321
- // ../../switchroom-sec-1417/node_modules/.bun/structured-source@4.0.0/node_modules/structured-source/lib/structured-source.js
26321
+ // ../node_modules/.bun/structured-source@4.0.0/node_modules/structured-source/lib/structured-source.js
26322
26322
  var require_structured_source = __commonJS((exports2) => {
26323
26323
  Object.defineProperty(exports2, "__esModule", { value: true });
26324
26324
  exports2.StructuredSource = undefined;
@@ -26373,13 +26373,13 @@ var require_structured_source = __commonJS((exports2) => {
26373
26373
  }
26374
26374
  exports2.StructuredSource = StructuredSource;
26375
26375
  });
26376
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/SecretLintSourceCodeImpl.js
26376
+ // ../node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/SecretLintSourceCodeImpl.js
26377
26377
  var import_structured_source;
26378
26378
  var init_SecretLintSourceCodeImpl = __esm(() => {
26379
26379
  import_structured_source = __toESM(require_structured_source(), 1);
26380
26380
  });
26381
26381
 
26382
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/helper/promise-event-emitter.js
26382
+ // ../node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/helper/promise-event-emitter.js
26383
26383
  class EventEmitter {
26384
26384
  #listeners = new Map;
26385
26385
  on(type, listener) {
@@ -26418,9 +26418,9 @@ class EventEmitter {
26418
26418
  return Array.from(this.#listeners.get(type) ?? []);
26419
26419
  }
26420
26420
  }
26421
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/RuleContext.js
26421
+ // ../node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/RuleContext.js
26422
26422
  var init_RuleContext = () => {};
26423
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+profiler@12.2.0/node_modules/@secretlint/profiler/module/index.js
26423
+ // ../node_modules/.bun/@secretlint+profiler@12.2.0/node_modules/@secretlint/profiler/module/index.js
26424
26424
  class SecretLintProfiler {
26425
26425
  perf;
26426
26426
  entries = [];
@@ -26477,7 +26477,7 @@ class SecretLintProfiler {
26477
26477
  }
26478
26478
  }
26479
26479
 
26480
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+profiler@12.2.0/node_modules/@secretlint/profiler/module/node.js
26480
+ // ../node_modules/.bun/@secretlint+profiler@12.2.0/node_modules/@secretlint/profiler/module/node.js
26481
26481
  import perf_hooks from "node:perf_hooks";
26482
26482
 
26483
26483
  class NullPerformanceObserver {
@@ -26492,19 +26492,19 @@ var init_node = __esm(() => {
26492
26492
  });
26493
26493
  });
26494
26494
 
26495
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/RunningEvents.js
26495
+ // ../node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/RunningEvents.js
26496
26496
  var init_RunningEvents = __esm(() => {
26497
26497
  init_node();
26498
26498
  });
26499
26499
 
26500
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/RulePresetContext.js
26500
+ // ../node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/RulePresetContext.js
26501
26501
  var init_RulePresetContext = __esm(() => {
26502
26502
  init_RuleContext();
26503
26503
  });
26504
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/messages/index.js
26504
+ // ../node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/messages/index.js
26505
26505
  var init_messages = () => {};
26506
26506
 
26507
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/index.js
26507
+ // ../node_modules/.bun/@secretlint+core@12.2.0/node_modules/@secretlint/core/module/index.js
26508
26508
  var import_debug, debug;
26509
26509
  var init_module = __esm(() => {
26510
26510
  init_SecretLintSourceCodeImpl();
@@ -26517,7 +26517,7 @@ var init_module = __esm(() => {
26517
26517
  debug = import_debug.default("@secretlint/core");
26518
26518
  });
26519
26519
 
26520
- // ../../switchroom-sec-1417/node_modules/.bun/@secretlint+secretlint-rule-preset-recommend@12.2.0/node_modules/@secretlint/secretlint-rule-preset-recommend/module/index.js
26520
+ // ../node_modules/.bun/@secretlint+secretlint-rule-preset-recommend@12.2.0/node_modules/@secretlint/secretlint-rule-preset-recommend/module/index.js
26521
26521
  function requireLodash_uniq() {
26522
26522
  if (hasRequiredLodash_uniq)
26523
26523
  return lodash_uniq;
@@ -29729,6 +29729,33 @@ function renderBucketedSkills(switchroom, agent) {
29729
29729
  parts.push(`Agent: ${agent.join(", ")}`);
29730
29730
  return parts.length === 0 ? "none resolved" : parts.join(" \u00b7 ");
29731
29731
  }
29732
+ async function probeConnections(agentDir, opts = {}) {
29733
+ return withTimeout("Connections", (async () => {
29734
+ const path = join24(agentDir, ".claude", "connection-health.json");
29735
+ const read = opts.readFileImpl ?? ((p) => readFileSync25(p, "utf8"));
29736
+ let issues = [];
29737
+ try {
29738
+ const parsed = JSON.parse(read(path));
29739
+ issues = Array.isArray(parsed.issues) ? parsed.issues : [];
29740
+ } catch {
29741
+ return { status: "ok", label: "Connections", detail: "no issues" };
29742
+ }
29743
+ if (issues.length === 0) {
29744
+ return { status: "ok", label: "Connections", detail: "all authed" };
29745
+ }
29746
+ const servers = [...new Set(issues.map((i) => i.server))];
29747
+ const named = servers.slice(0, 4).join(", ");
29748
+ const more = servers.length > 4 ? ` +${servers.length - 4} more` : "";
29749
+ const first = issues[0];
29750
+ const extra = issues.length > 1 ? ` (+${issues.length - 1} more \u2014 run \`switchroom doctor\`)` : "";
29751
+ return {
29752
+ status: "degraded",
29753
+ label: "Connections",
29754
+ detail: `${servers.length} integration(s) configured but not authed: ${named}${more}`,
29755
+ nextStep: `${first.fix}${extra}`
29756
+ };
29757
+ })());
29758
+ }
29732
29759
  var execFile3, PROBE_TIMEOUT_MS = 2000, QUOTA_BROKER_TIMEOUT_MS = 7000, QUOTA_DIRECT_FALLBACK_TIMEOUT_MS = 5000, QUOTA_PROBE_OUTER_TIMEOUT_MS = 9000, TOKEN_EXPIRING_SOON_DAYS = 7, AGENT_RETRY_INTERVAL_MS = 1500, AGENT_RETRY_MAX_MS = 12000, AGENT_LIVE_WINDOW_MS = 45000, AGENT_LIVE_POLL_INTERVAL_MS = 2000, AGENT_LIVE_FOLLOWUP_REPOLL_MS = 30000, realProcFs, SCHEDULER_LOCK_PATH_DEFAULT = "/state/agent/scheduler.lock", SCHEDULER_JSONL_PATH_DEFAULT = "/state/agent/scheduler.jsonl", SCHEDULER_FRESH_BOOT_MS = 30000, realSchedulerFs, realSkillsFs;
29733
29760
  var init_boot_probes = __esm(() => {
29734
29761
  init_quota_cache();
@@ -30164,6 +30191,9 @@ async function runAllProbes(opts) {
30164
30191
  }),
30165
30192
  probeSkills(opts.agentDir, { agentName: opts.agentSlug ?? opts.agentName }).then((r) => {
30166
30193
  probes.skills = r;
30194
+ }),
30195
+ probeConnections(opts.agentDir).then((r) => {
30196
+ probes.connections = r;
30167
30197
  })
30168
30198
  ]);
30169
30199
  return probes;
@@ -30404,7 +30434,8 @@ var init_boot_card = __esm(() => {
30404
30434
  scheduler: "Scheduler",
30405
30435
  broker: "Broker",
30406
30436
  kernel: "Kernel",
30407
- skills: "Skills"
30437
+ skills: "Skills",
30438
+ connections: "Connections"
30408
30439
  };
30409
30440
  PROBE_KEYS = [
30410
30441
  "account",
@@ -30415,7 +30446,8 @@ var init_boot_card = __esm(() => {
30415
30446
  "scheduler",
30416
30447
  "broker",
30417
30448
  "kernel",
30418
- "skills"
30449
+ "skills",
30450
+ "connections"
30419
30451
  ];
30420
30452
  REASON_EMOJI = {
30421
30453
  planned: "\u2705",
@@ -32953,6 +32985,32 @@ function parseSourceMessageId(raw) {
32953
32985
  return n;
32954
32986
  }
32955
32987
 
32988
+ // gateway/permission-timeout.ts
32989
+ var SIGNATURE_SEP = String.fromCharCode(0);
32990
+ function permissionSignature(toolName, inputPreview) {
32991
+ return toolName + SIGNATURE_SEP + inputPreview;
32992
+ }
32993
+ function timeoutDenyMessage(timeoutMinutes) {
32994
+ return `No operator responded within ${timeoutMinutes} minutes, so this request timed out. ` + `This is a TIMEOUT, not a denial \u2014 the operator is likely away. ` + `Do NOT retry this exact action automatically. Tell the user it is still ` + `awaiting their approval, then continue with other work or stop.`;
32995
+ }
32996
+ var duplicateDenyMessage = `This exact action already timed out awaiting the operator, and they have not ` + `responded since. Do NOT keep re-requesting it \u2014 tell the user it needs their ` + `approval when they are back, and move on to other work or stop.`;
32997
+ function isRecentTimeoutDuplicate(timeouts, sig, now, windowMs) {
32998
+ const at = timeouts.get(sig);
32999
+ return at != null && now - at <= windowMs;
33000
+ }
33001
+
33002
+ // gateway/permission-card-origin.ts
33003
+ function pickRecoveredPermissionOrigin(recentTurns, now, maxAgeMs) {
33004
+ let best = null;
33005
+ for (const t of recentTurns) {
33006
+ if (now - t.startedAt > maxAgeMs)
33007
+ continue;
33008
+ if (best == null || t.startedAt >= best.startedAt)
33009
+ best = t;
33010
+ }
33011
+ return best == null ? null : { chatId: best.sessionChatId, threadId: best.sessionThreadId };
33012
+ }
33013
+
32956
33014
  // tool-names.ts
32957
33015
  var TELEGRAM_TOOL_PREFIX_RE = /^mcp__[^_].*?telegram__/;
32958
33016
  function stripPrefix(toolName) {
@@ -34459,7 +34517,7 @@ function clear(key) {
34459
34517
  state.delete(key);
34460
34518
  }
34461
34519
 
34462
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
34520
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
34463
34521
  import { dirname as dirname2, posix, sep as sep2 } from "path";
34464
34522
  function createModulerModifier() {
34465
34523
  const getModuleFromFileName = createGetModuleFromFilename();
@@ -34495,7 +34553,7 @@ function normalizeWindowsPath(path) {
34495
34553
  return path.replace(/^[A-Z]:/, "").replace(/\\/g, "/");
34496
34554
  }
34497
34555
 
34498
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/featureFlagUtils.mjs
34556
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/featureFlagUtils.mjs
34499
34557
  var normalizeFlagsResponse = (flagsResponse) => {
34500
34558
  if ("flags" in flagsResponse) {
34501
34559
  const featureFlags = getFlagValuesFromFlags(flagsResponse.flags);
@@ -34566,7 +34624,7 @@ var parsePayload = (response) => {
34566
34624
  }
34567
34625
  };
34568
34626
 
34569
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/gzip.mjs
34627
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/gzip.mjs
34570
34628
  function isGzipSupported() {
34571
34629
  return "CompressionStream" in globalThis;
34572
34630
  }
@@ -34586,7 +34644,7 @@ async function gzipCompress(input, isDebug = true) {
34586
34644
  }
34587
34645
  }
34588
34646
 
34589
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/vendor/uuidv7.mjs
34647
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/vendor/uuidv7.mjs
34590
34648
  /*! For license information please see uuidv7.mjs.LICENSE.txt */
34591
34649
  var DIGITS = "0123456789abcdef";
34592
34650
 
@@ -34764,7 +34822,7 @@ var defaultGenerator;
34764
34822
  var uuidv7 = () => uuidv7obj().toString();
34765
34823
  var uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator)).generate();
34766
34824
 
34767
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/types.mjs
34825
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/types.mjs
34768
34826
  var types_PostHogPersistedProperty = /* @__PURE__ */ function(PostHogPersistedProperty) {
34769
34827
  PostHogPersistedProperty["AnonymousId"] = "anonymous_id";
34770
34828
  PostHogPersistedProperty["DistinctId"] = "distinct_id";
@@ -34797,7 +34855,7 @@ var types_PostHogPersistedProperty = /* @__PURE__ */ function(PostHogPersistedPr
34797
34855
  return PostHogPersistedProperty;
34798
34856
  }({});
34799
34857
 
34800
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/bot-detection.mjs
34858
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/bot-detection.mjs
34801
34859
  var DEFAULT_BLOCKED_UA_STRS = [
34802
34860
  "amazonbot",
34803
34861
  "amazonproductbot",
@@ -34886,7 +34944,7 @@ var isBlockedUA = function(ua, customBlockedUserAgents = []) {
34886
34944
  return uaLower.indexOf(blockedUaLower) !== -1;
34887
34945
  });
34888
34946
  };
34889
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/type-utils.mjs
34947
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/type-utils.mjs
34890
34948
  var nativeIsArray = Array.isArray;
34891
34949
  var ObjProto = Object.prototype;
34892
34950
  var type_utils_hasOwnProperty = ObjProto.hasOwnProperty;
@@ -34923,7 +34981,7 @@ function isInstanceOf(candidate, base) {
34923
34981
  }
34924
34982
  }
34925
34983
 
34926
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/number-utils.mjs
34984
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/number-utils.mjs
34927
34985
  function clampToRange(value, min, max, logger, fallbackValue) {
34928
34986
  if (min > max) {
34929
34987
  logger.warn("min cannot be greater than max.");
@@ -34943,7 +35001,7 @@ function clampToRange(value, min, max, logger, fallbackValue) {
34943
35001
  return clampToRange(fallbackValue || max, min, max, logger);
34944
35002
  }
34945
35003
 
34946
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/bucketed-rate-limiter.mjs
35004
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/bucketed-rate-limiter.mjs
34947
35005
  var ONE_DAY_IN_MS = 86400000;
34948
35006
 
34949
35007
  class BucketedRateLimiter {
@@ -34987,7 +35045,7 @@ class BucketedRateLimiter {
34987
35045
  this._buckets = {};
34988
35046
  }
34989
35047
  }
34990
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/promise-queue.mjs
35048
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/promise-queue.mjs
34991
35049
  class PromiseQueue {
34992
35050
  add(promise) {
34993
35051
  const promiseUUID = uuidv7();
@@ -35013,7 +35071,7 @@ class PromiseQueue {
35013
35071
  this.promiseByIds = {};
35014
35072
  }
35015
35073
  }
35016
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/logger.mjs
35074
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/logger.mjs
35017
35075
  function createConsole(consoleLike = console) {
35018
35076
  const lockedMethods = {
35019
35077
  log: consoleLike.log.bind(consoleLike),
@@ -35051,7 +35109,7 @@ var passThrough = (fn) => fn();
35051
35109
  function createLogger(prefix, maybeCall = passThrough) {
35052
35110
  return _createLogger(prefix, maybeCall, createConsole());
35053
35111
  }
35054
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/user-agent-utils.mjs
35112
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/user-agent-utils.mjs
35055
35113
  var MOBILE = "Mobile";
35056
35114
  var IOS = "iOS";
35057
35115
  var ANDROID = "Android";
@@ -35308,7 +35366,7 @@ var osMatchers = [
35308
35366
  ]
35309
35367
  ];
35310
35368
 
35311
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/index.mjs
35369
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/utils/index.mjs
35312
35370
  var STRING_FORMAT = "utf8";
35313
35371
  function assert(truthyValue, message) {
35314
35372
  if (!truthyValue || typeof truthyValue != "string" || isEmpty(truthyValue))
@@ -35356,7 +35414,7 @@ function allSettled(promises) {
35356
35414
  reason
35357
35415
  }))));
35358
35416
  }
35359
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/eventemitter.mjs
35417
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/eventemitter.mjs
35360
35418
  class SimpleEventEmitter {
35361
35419
  constructor() {
35362
35420
  this.events = {};
@@ -35378,7 +35436,7 @@ class SimpleEventEmitter {
35378
35436
  }
35379
35437
  }
35380
35438
 
35381
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/posthog-core-stateless.mjs
35439
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/posthog-core-stateless.mjs
35382
35440
  class PostHogFetchHttpError extends Error {
35383
35441
  constructor(response, reqByteLength) {
35384
35442
  super("HTTP error while fetching PostHog: status=" + response.status + ", reqByteLength=" + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.name = "PostHogFetchHttpError";
@@ -36093,7 +36151,7 @@ class PostHogCoreStateless {
36093
36151
  return this.shutdownPromise;
36094
36152
  }
36095
36153
  }
36096
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/index.mjs
36154
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/index.mjs
36097
36155
  var exports_error_tracking = {};
36098
36156
  __export(exports_error_tracking, {
36099
36157
  winjsStackLineParser: () => winjsStackLineParser,
@@ -36117,7 +36175,7 @@ __export(exports_error_tracking, {
36117
36175
  DOMExceptionCoercer: () => DOMExceptionCoercer
36118
36176
  });
36119
36177
 
36120
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/chunk-ids.mjs
36178
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/chunk-ids.mjs
36121
36179
  var parsedStackResults;
36122
36180
  var lastKeysCount;
36123
36181
  var cachedFilenameChunkIds;
@@ -36156,7 +36214,7 @@ function getFilenameToChunkIdMap(stackParser) {
36156
36214
  return cachedFilenameChunkIds;
36157
36215
  }
36158
36216
 
36159
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/error-properties-builder.mjs
36217
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/error-properties-builder.mjs
36160
36218
  var MAX_CAUSE_RECURSION = 4;
36161
36219
 
36162
36220
  class ErrorPropertiesBuilder {
@@ -36278,7 +36336,7 @@ class ErrorPropertiesBuilder {
36278
36336
  return context;
36279
36337
  }
36280
36338
  }
36281
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/base.mjs
36339
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/base.mjs
36282
36340
  var UNKNOWN_FUNCTION = "?";
36283
36341
  function createFrame(platform, filename, func, lineno, colno) {
36284
36342
  const frame = {
@@ -36294,7 +36352,7 @@ function createFrame(platform, filename, func, lineno, colno) {
36294
36352
  return frame;
36295
36353
  }
36296
36354
 
36297
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/safari.mjs
36355
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/safari.mjs
36298
36356
  var extractSafariExtensionDetails = (func, filename) => {
36299
36357
  const isSafariExtension = func.indexOf("safari-extension") !== -1;
36300
36358
  const isSafariWebExtension = func.indexOf("safari-web-extension") !== -1;
@@ -36307,7 +36365,7 @@ var extractSafariExtensionDetails = (func, filename) => {
36307
36365
  ];
36308
36366
  };
36309
36367
 
36310
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/chrome.mjs
36368
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/chrome.mjs
36311
36369
  var chromeRegexNoFnName = /^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i;
36312
36370
  var chromeRegex = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
36313
36371
  var chromeEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;
@@ -36333,7 +36391,7 @@ var chromeStackLineParser = (line, platform) => {
36333
36391
  }
36334
36392
  };
36335
36393
 
36336
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/gecko.mjs
36394
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/gecko.mjs
36337
36395
  var geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
36338
36396
  var geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
36339
36397
  var geckoStackLineParser = (line, platform) => {
@@ -36356,14 +36414,14 @@ var geckoStackLineParser = (line, platform) => {
36356
36414
  }
36357
36415
  };
36358
36416
 
36359
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/winjs.mjs
36417
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/winjs.mjs
36360
36418
  var winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
36361
36419
  var winjsStackLineParser = (line, platform) => {
36362
36420
  const parts = winjsRegex.exec(line);
36363
36421
  return parts ? createFrame(platform, parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined) : undefined;
36364
36422
  };
36365
36423
 
36366
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/opera.mjs
36424
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/opera.mjs
36367
36425
  var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;
36368
36426
  var opera10StackLineParser = (line, platform) => {
36369
36427
  const parts = opera10Regex.exec(line);
@@ -36375,7 +36433,7 @@ var opera11StackLineParser = (line, platform) => {
36375
36433
  return parts ? createFrame(platform, parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;
36376
36434
  };
36377
36435
 
36378
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/node.mjs
36436
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/node.mjs
36379
36437
  var FILENAME_MATCH = /^\s*[-]{4,}$/;
36380
36438
  var FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/;
36381
36439
  var nodeStackLineParser = (line, platform) => {
@@ -36444,7 +36502,7 @@ function _parseIntOrUndefined(input) {
36444
36502
  return parseInt(input || "", 10) || undefined;
36445
36503
  }
36446
36504
 
36447
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/index.mjs
36505
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/parsers/index.mjs
36448
36506
  var WEBPACK_ERROR_REGEXP = /\(error: (.*)\)/;
36449
36507
  var STACKTRACE_FRAME_LIMIT = 50;
36450
36508
  function reverseAndStripFrames(stack) {
@@ -36489,7 +36547,7 @@ function createStackParser(platform, ...parsers) {
36489
36547
  return reverseAndStripFrames(frames);
36490
36548
  };
36491
36549
  }
36492
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/dom-exception-coercer.mjs
36550
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/dom-exception-coercer.mjs
36493
36551
  class DOMExceptionCoercer {
36494
36552
  match(err) {
36495
36553
  return this.isDOMException(err) || this.isDOMError(err);
@@ -36519,7 +36577,7 @@ class DOMExceptionCoercer {
36519
36577
  return isBuiltin(err, "DOMError");
36520
36578
  }
36521
36579
  }
36522
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/error-coercer.mjs
36580
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/error-coercer.mjs
36523
36581
  class ErrorCoercer {
36524
36582
  match(err) {
36525
36583
  return isPlainError(err);
@@ -36546,7 +36604,7 @@ class ErrorCoercer {
36546
36604
  return err.stacktrace || err.stack || undefined;
36547
36605
  }
36548
36606
  }
36549
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/error-event-coercer.mjs
36607
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/error-event-coercer.mjs
36550
36608
  class ErrorEventCoercer {
36551
36609
  constructor() {}
36552
36610
  match(err) {
@@ -36564,7 +36622,7 @@ class ErrorEventCoercer {
36564
36622
  return exceptionLike;
36565
36623
  }
36566
36624
  }
36567
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/string-coercer.mjs
36625
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/string-coercer.mjs
36568
36626
  var ERROR_TYPES_PATTERN = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
36569
36627
 
36570
36628
  class StringCoercer {
@@ -36594,7 +36652,7 @@ class StringCoercer {
36594
36652
  ];
36595
36653
  }
36596
36654
  }
36597
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/types.mjs
36655
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/types.mjs
36598
36656
  var severityLevels = [
36599
36657
  "fatal",
36600
36658
  "error",
@@ -36604,7 +36662,7 @@ var severityLevels = [
36604
36662
  "debug"
36605
36663
  ];
36606
36664
 
36607
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/utils.mjs
36665
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/utils.mjs
36608
36666
  function extractExceptionKeysForMessage(err, maxLength = 40) {
36609
36667
  const keys = Object.keys(err);
36610
36668
  keys.sort();
@@ -36621,7 +36679,7 @@ function extractExceptionKeysForMessage(err, maxLength = 40) {
36621
36679
  return "";
36622
36680
  }
36623
36681
 
36624
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/object-coercer.mjs
36682
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/object-coercer.mjs
36625
36683
  class ObjectCoercer {
36626
36684
  match(candidate) {
36627
36685
  return typeof candidate == "object" && candidate !== null;
@@ -36674,7 +36732,7 @@ class ObjectCoercer {
36674
36732
  }
36675
36733
  }
36676
36734
  }
36677
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/event-coercer.mjs
36735
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/event-coercer.mjs
36678
36736
  class EventCoercer {
36679
36737
  match(err) {
36680
36738
  return isEvent(err);
@@ -36689,7 +36747,7 @@ class EventCoercer {
36689
36747
  };
36690
36748
  }
36691
36749
  }
36692
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/primitive-coercer.mjs
36750
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/primitive-coercer.mjs
36693
36751
  class PrimitiveCoercer {
36694
36752
  match(candidate) {
36695
36753
  return isPrimitive(candidate);
@@ -36703,7 +36761,7 @@ class PrimitiveCoercer {
36703
36761
  };
36704
36762
  }
36705
36763
  }
36706
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/promise-rejection-event.mjs
36764
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/coercers/promise-rejection-event.mjs
36707
36765
  class PromiseRejectionEventCoercer {
36708
36766
  match(err) {
36709
36767
  return isBuiltin(err, "PromiseRejectionEvent") || this.isCustomEventWrappingRejection(err);
@@ -36739,7 +36797,7 @@ class PromiseRejectionEventCoercer {
36739
36797
  return error;
36740
36798
  }
36741
36799
  }
36742
- // ../../switchroom-sec-1417/node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/utils.mjs
36800
+ // ../node_modules/.bun/@posthog+core@1.25.2/node_modules/@posthog/core/dist/error-tracking/utils.mjs
36743
36801
  class ReduceableCache {
36744
36802
  constructor(_maxSize) {
36745
36803
  this._maxSize = _maxSize;
@@ -36764,7 +36822,7 @@ class ReduceableCache {
36764
36822
  }
36765
36823
  }
36766
36824
  }
36767
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs
36825
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/context-lines.node.mjs
36768
36826
  import { createReadStream } from "node:fs";
36769
36827
  import { createInterface } from "node:readline";
36770
36828
  var LRU_FILE_CONTENTS_CACHE = new exports_error_tracking.ReduceableCache(25);
@@ -36982,7 +37040,7 @@ function snipLine(line, colno) {
36982
37040
  return newLine;
36983
37041
  }
36984
37042
 
36985
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/error-tracking/autocapture.mjs
37043
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/error-tracking/autocapture.mjs
36986
37044
  function makeUncaughtExceptionHandler(captureFn, onFatalFn) {
36987
37045
  let calledFatalError = false;
36988
37046
  return Object.assign((error) => {
@@ -37014,7 +37072,7 @@ function addUnhandledRejectionListener(captureFn) {
37014
37072
  }));
37015
37073
  }
37016
37074
 
37017
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/error-tracking/index.mjs
37075
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/error-tracking/index.mjs
37018
37076
  var SHUTDOWN_TIMEOUT = 2000;
37019
37077
 
37020
37078
  class ErrorTracking {
@@ -37083,10 +37141,10 @@ class ErrorTracking {
37083
37141
  }
37084
37142
  }
37085
37143
 
37086
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/version.mjs
37144
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/version.mjs
37087
37145
  var version = "5.29.2";
37088
37146
 
37089
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/types.mjs
37147
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/types.mjs
37090
37148
  var FeatureFlagError2 = {
37091
37149
  ERRORS_WHILE_COMPUTING: "errors_while_computing_flags",
37092
37150
  FLAG_MISSING: "flag_missing",
@@ -37094,7 +37152,7 @@ var FeatureFlagError2 = {
37094
37152
  UNKNOWN_ERROR: "unknown_error"
37095
37153
  };
37096
37154
 
37097
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/feature-flags/crypto.mjs
37155
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/feature-flags/crypto.mjs
37098
37156
  async function hashSHA1(text) {
37099
37157
  const subtle = globalThis.crypto?.subtle;
37100
37158
  if (!subtle)
@@ -37104,7 +37162,7 @@ async function hashSHA1(text) {
37104
37162
  return hashArray.map((byte) => byte.toString(16).padStart(2, "0")).join("");
37105
37163
  }
37106
37164
 
37107
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/feature-flags/feature-flags.mjs
37165
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/feature-flags/feature-flags.mjs
37108
37166
  var SIXTY_SECONDS = 60000;
37109
37167
  var LONG_SCALE = 1152921504606847000;
37110
37168
  var NULL_VALUES_ALLOWED_OPERATORS = [
@@ -37978,7 +38036,7 @@ function relativeDateParseForFeatureFlagMatching(value) {
37978
38036
  }
37979
38037
  }
37980
38038
 
37981
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/storage-memory.mjs
38039
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/storage-memory.mjs
37982
38040
  class PostHogMemoryStorage {
37983
38041
  getProperty(key) {
37984
38042
  return this._memoryStorage[key];
@@ -37991,7 +38049,7 @@ class PostHogMemoryStorage {
37991
38049
  }
37992
38050
  }
37993
38051
 
37994
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/client.mjs
38052
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/client.mjs
37995
38053
  var MINIMUM_POLLING_INTERVAL = 100;
37996
38054
  var THIRTY_SECONDS = 30000;
37997
38055
  var MAX_CACHE_SIZE = 50000;
@@ -38779,7 +38837,7 @@ class PostHogBackendClient extends PostHogCoreStateless {
38779
38837
  }
38780
38838
  }
38781
38839
 
38782
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/context/context.mjs
38840
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/context/context.mjs
38783
38841
  import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
38784
38842
 
38785
38843
  class PostHogContext {
@@ -38810,7 +38868,7 @@ class PostHogContext {
38810
38868
  }
38811
38869
  }
38812
38870
 
38813
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/sentry-integration.mjs
38871
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/extensions/sentry-integration.mjs
38814
38872
  var NAME = "posthog-node";
38815
38873
  function createEventProcessor(_posthog, { organization, projectId, prefix, severityAllowList = [
38816
38874
  "error"
@@ -38878,7 +38936,7 @@ class PostHogSentryIntegration {
38878
38936
  };
38879
38937
  }
38880
38938
  }
38881
- // ../../switchroom-sec-1417/node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/entrypoints/index.node.mjs
38939
+ // ../node_modules/.bun/posthog-node@5.29.2/node_modules/posthog-node/dist/entrypoints/index.node.mjs
38882
38940
  ErrorTracking.errorPropertiesBuilder = new exports_error_tracking.ErrorPropertiesBuilder([
38883
38941
  new exports_error_tracking.EventCoercer,
38884
38942
  new exports_error_tracking.ErrorCoercer,
@@ -54461,11 +54519,11 @@ function readTurnActiveMarkerAgeMs(stateDir, now) {
54461
54519
  }
54462
54520
 
54463
54521
  // ../src/build-info.ts
54464
- var VERSION = "0.15.37";
54465
- var COMMIT_SHA = "bc83a0a6";
54466
- var COMMIT_DATE = "2026-06-16T10:59:11Z";
54467
- var LATEST_PR = 2398;
54468
- var COMMITS_AHEAD_OF_TAG = 0;
54522
+ var VERSION = "0.15.38";
54523
+ var COMMIT_SHA = "d28a331f";
54524
+ var COMMIT_DATE = "2026-06-18T11:43:40+10:00";
54525
+ var LATEST_PR = null;
54526
+ var COMMITS_AHEAD_OF_TAG = 13;
54469
54527
 
54470
54528
  // gateway/boot-version.ts
54471
54529
  function formatRelativeAgo(iso) {
@@ -56997,6 +57055,14 @@ function resolvePermissionCardTargets() {
56997
57055
  if (turn != null) {
56998
57056
  return [{ chatId: turn.sessionChatId, threadId: turn.sessionThreadId }];
56999
57057
  }
57058
+ if (PERMISSION_CARD_ORIGIN_RECOVERY_ENABLED) {
57059
+ const recovered = pickRecoveredPermissionOrigin(recentTurnsById.values(), Date.now(), PERMISSION_CARD_ORIGIN_MAX_AGE_MS);
57060
+ if (recovered != null) {
57061
+ process.stderr.write(`telegram gateway: permission-card origin recovered from recent turn chat=${recovered.chatId} thread=${recovered.threadId ?? "-"} ` + `(currentTurn was null \u2014 force-closed turn)
57062
+ `);
57063
+ return [recovered];
57064
+ }
57065
+ }
57000
57066
  const sg = resolveAgentSupergroupChatId();
57001
57067
  const topic = resolveAgentOutboundTopic({
57002
57068
  kind: "permission",
@@ -57233,6 +57299,19 @@ var STATUS_QUERY_RE = /^\s*status\??\s*$/i;
57233
57299
  var PERMISSION_REPLY_RE = /^\s*(y|yes|n|no)\s+([a-km-z]{5})\s*$/i;
57234
57300
  var pendingPermissions = new Map;
57235
57301
  var PERMISSION_TTL_MS = 600000;
57302
+ var PERMISSION_NO_REPEAT_ENABLED = process.env.SWITCHROOM_PERMISSION_NO_REPEAT !== "0";
57303
+ var PERMISSION_DUPLICATE_WINDOW_MS = 3600000;
57304
+ var permissionTimeoutSignatures = new Map;
57305
+ function clearPermissionTimeoutSuppression(reason) {
57306
+ if (permissionTimeoutSignatures.size === 0)
57307
+ return;
57308
+ const n = permissionTimeoutSignatures.size;
57309
+ permissionTimeoutSignatures.clear();
57310
+ process.stderr.write(`telegram gateway: permission no-repeat suppression cleared (${n} sig(s)) \u2014 ${reason}
57311
+ `);
57312
+ }
57313
+ var PERMISSION_CARD_ORIGIN_RECOVERY_ENABLED = process.env.SWITCHROOM_PERMISSION_CARD_ORIGIN_RECOVERY !== "0";
57314
+ var PERMISSION_CARD_ORIGIN_MAX_AGE_MS = 1800000;
57236
57315
  var pendingAlwaysAllowCorrelations = new Map;
57237
57316
  var ALWAYS_ALLOW_CORRELATION_TTL_MS = 30000;
57238
57317
  function sweepStaleAlwaysAllowCorrelations(now = Date.now()) {
@@ -57462,18 +57541,31 @@ var pendingStateReaper = setInterval(() => {
57462
57541
  }
57463
57542
  for (const [k, v] of pendingPermissions) {
57464
57543
  if (now - v.startedAt > PERMISSION_TTL_MS) {
57465
- dispatchPermissionVerdict({ type: "permission", requestId: k, behavior: "deny" });
57544
+ const timeoutMinutes = Math.round(PERMISSION_TTL_MS / 60000);
57545
+ dispatchPermissionVerdict({
57546
+ type: "permission",
57547
+ requestId: k,
57548
+ behavior: "deny",
57549
+ message: timeoutDenyMessage(timeoutMinutes)
57550
+ });
57466
57551
  resumeReactionAfterVerdict();
57467
57552
  postPermissionResumeMessage({
57468
57553
  behavior: "deny",
57469
57554
  action: naturalAction(v.tool_name, v.input_preview),
57470
- timeoutMinutes: Math.round(PERMISSION_TTL_MS / 60000)
57555
+ timeoutMinutes
57471
57556
  });
57472
- process.stderr.write(`telegram gateway: permission TTL expired \u2014 auto-deny request=${k} tool=${v.tool_name} (no operator response in ${Math.round(PERMISSION_TTL_MS / 60000)}m)
57557
+ if (PERMISSION_NO_REPEAT_ENABLED) {
57558
+ permissionTimeoutSignatures.set(permissionSignature(v.tool_name, v.input_preview), now);
57559
+ }
57560
+ process.stderr.write(`telegram gateway: permission TTL expired \u2014 auto-deny request=${k} tool=${v.tool_name} (no operator response in ${timeoutMinutes}m)
57473
57561
  `);
57474
57562
  pendingPermissions.delete(k);
57475
57563
  }
57476
57564
  }
57565
+ for (const [sig, at] of permissionTimeoutSignatures) {
57566
+ if (now - at > PERMISSION_DUPLICATE_WINDOW_MS)
57567
+ permissionTimeoutSignatures.delete(sig);
57568
+ }
57477
57569
  for (const [k, v] of vaultPassphraseCache) {
57478
57570
  if (now > v.expiresAt)
57479
57571
  vaultPassphraseCache.delete(k);
@@ -58264,6 +58356,20 @@ var ipcServer = createIpcServer({
58264
58356
  if (hit) {
58265
58357
  dispatchPermissionVerdict({ type: "permission", requestId, behavior: "allow" });
58266
58358
  process.stderr.write(`telegram gateway: scoped-approval auto-allow tool=${toolName} rule="${hit}" request=${requestId} (time-boxed window)
58359
+ `);
58360
+ return;
58361
+ }
58362
+ }
58363
+ if (PERMISSION_NO_REPEAT_ENABLED) {
58364
+ const sig = permissionSignature(toolName, inputPreview);
58365
+ if (isRecentTimeoutDuplicate(permissionTimeoutSignatures, sig, Date.now(), PERMISSION_DUPLICATE_WINDOW_MS)) {
58366
+ dispatchPermissionVerdict({
58367
+ type: "permission",
58368
+ requestId,
58369
+ behavior: "deny",
58370
+ message: duplicateDenyMessage
58371
+ });
58372
+ process.stderr.write(`telegram gateway: permission no-repeat short-circuit \u2014 duplicate of a ` + `timed-out request tool=${toolName} request=${requestId} (no card posted)
58267
58373
  `);
58268
58374
  return;
58269
58375
  }
@@ -61407,6 +61513,7 @@ async function handleInbound(ctx, text2, downloadImage, attachment, extraAttachm
61407
61513
  /telegram:access pair ${result.code}`);
61408
61514
  return;
61409
61515
  }
61516
+ clearPermissionTimeoutSuppression("operator inbound");
61410
61517
  const inboundReceivedAt = Date.now();
61411
61518
  const _shadowKey = statusKey(ctx.chat?.id != null ? String(ctx.chat.id) : "0", ctx.message?.message_thread_id);
61412
61519
  const machineInTurnAtReceipt = isDeliveryCutoverEnabled() ? isMachineInTurn() : null;
@@ -62895,7 +63002,8 @@ async function buildLiveProbeRows(agentName3) {
62895
63002
  "scheduler",
62896
63003
  "broker",
62897
63004
  "kernel",
62898
- "skills"
63005
+ "skills",
63006
+ "connections"
62899
63007
  ];
62900
63008
  for (const k of order) {
62901
63009
  const r = probes[k];
@@ -63491,6 +63599,7 @@ async function handlePermissionSlash(ctx, behavior) {
63491
63599
  await switchroomReply(ctx, `No pending permission for id <code>${escapeHtmlForTg(request_id)}</code>. It may have already been answered or timed out.`, { html: true });
63492
63600
  return;
63493
63601
  }
63602
+ clearPermissionTimeoutSuppression("operator answered via /approve|/deny");
63494
63603
  dispatchPermissionVerdict({ type: "permission", requestId: request_id, behavior });
63495
63604
  resumeReactionAfterVerdict();
63496
63605
  postPermissionResumeMessage({
@@ -66289,6 +66398,7 @@ ${editLabel}` : editLabel,
66289
66398
  });
66290
66399
  return;
66291
66400
  }
66401
+ clearPermissionTimeoutSuppression("operator answered a permission card");
66292
66402
  const pd = pendingPermissions.get(request_id);
66293
66403
  const resumeAction = pd ? naturalAction(pd.tool_name, pd.input_preview) : "";
66294
66404
  const scopedTtl = scopedApprovalTtlMs();
@@ -67095,6 +67205,7 @@ async function shutdown(signal) {
67095
67205
  pendingReauthFlows.clear();
67096
67206
  pendingVaultOps.clear();
67097
67207
  pendingPermissions.clear();
67208
+ permissionTimeoutSignatures.clear();
67098
67209
  try {
67099
67210
  await ipcServer.close();
67100
67211
  } catch (err) {