@fased/fased 0.1.39 → 0.1.41

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 (77) hide show
  1. package/dist/brand.js +1 -1
  2. package/dist/build-info.json +3 -3
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/cli/update-cli/update-command.js +15 -0
  5. package/dist/commands/onboard-non-interactive/local/gateway-config.js +1 -1
  6. package/dist/gateway/server-plugins.js +8 -3
  7. package/dist/gateway/server.impl.js +2 -2
  8. package/dist/plugin-sdk/{audio-preflight-WolqDIx8.js → audio-preflight-Chxqjwxe.js} +1 -1
  9. package/dist/plugin-sdk/{audio-preflight-DIJQAjNX.js → audio-preflight-aupYKWfa.js} +1 -1
  10. package/dist/plugin-sdk/channel-plugin-common.js +2 -2
  11. package/dist/plugin-sdk/{chunk-items-j6n1a2yQ.js → chunk-items-BDhRe_xU.js} +1 -1
  12. package/dist/plugin-sdk/command-status.js +1 -1
  13. package/dist/plugin-sdk/{config-CZaFbNZU.js → config-B6SjJFp-.js} +7 -7
  14. package/dist/plugin-sdk/{config-BxVjLTIv.js → config-C0qggNKQ.js} +7 -7
  15. package/dist/plugin-sdk/index.js +1 -1
  16. package/dist/plugin-sdk/{monitor-jztLTK6V.js → monitor-38DGeIwS.js} +3 -3
  17. package/dist/plugin-sdk/{monitor-DyW8M8cP.js → monitor-CYCSEVee.js} +3 -3
  18. package/dist/plugin-sdk/{monitor-JQsKE-Nn.js → monitor-Ceu-Wayc.js} +3 -3
  19. package/dist/plugin-sdk/{monitor-C20pbAuB.js → monitor-DCyBaUCs.js} +3 -3
  20. package/dist/plugin-sdk/{openresponses-http-DXTQURTj.js → openresponses-http-CCfimy89.js} +1 -1
  21. package/dist/plugin-sdk/{openresponses-http-81UzNEsm.js → openresponses-http-DAL_9jE-.js} +1 -1
  22. package/dist/plugin-sdk/{pi-embedded-runner-BXCGeeps.js → pi-embedded-runner-Dum71Tdo.js} +14 -9
  23. package/dist/plugin-sdk/{pi-model-discovery-runtime-DxoFm4Vd.js → pi-model-discovery-runtime-C5ssE6EW.js} +1 -1
  24. package/dist/plugin-sdk/{pi-model-discovery-runtime-BvFEoUSk.js → pi-model-discovery-runtime-DyOIGBor.js} +1 -1
  25. package/dist/plugin-sdk/{resolve-utils-4mG32lvJ.js → resolve-utils-r6ef8mj8.js} +1 -1
  26. package/dist/plugin-sdk/{slack-DRSLzWUb.js → slack-B0dLDyHM.js} +3 -3
  27. package/dist/plugin-sdk/{slack-qsR7PUPb.js → slack-Dv4zCw-x.js} +3 -3
  28. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  29. package/dist/plugin-sdk/src/plugins/loader.d.ts +3 -1
  30. package/dist/plugin-sdk/{status-Cl4MeWSg.js → status-B2vb7zNW.js} +14 -9
  31. package/dist/plugin-sdk/{sticker-cache-DjFhjSZc.js → sticker-cache-C1vOWkzA.js} +2 -2
  32. package/dist/plugin-sdk/{sticker-cache-CcER-WWu.js → sticker-cache-CJDzqowL.js} +2 -2
  33. package/dist/plugin-sdk/{telegram-actions-DfDEOBPg.js → telegram-actions-BoiC9J7L.js} +2 -2
  34. package/dist/plugin-sdk/{telegram-actions-8Rjfgf8m.js → telegram-actions-CwAsKaNz.js} +2 -2
  35. package/dist/plugin-sdk/telegram.js +2 -2
  36. package/dist/plugin-sdk/{web-BbgvbXQz.js → web-BjV7ROeA.js} +1 -1
  37. package/dist/plugin-sdk/{web-KBdzfu6K.js → web-DjTSgU98.js} +1 -1
  38. package/dist/plugins/loader.js +70 -3
  39. package/dist/wizard/onboarding.gateway-config.js +1 -1
  40. package/extensions/acpx/package.json +1 -1
  41. package/extensions/bluebubbles/package.json +1 -1
  42. package/extensions/copilot-proxy/package.json +1 -1
  43. package/extensions/diagnostics-otel/package.json +1 -1
  44. package/extensions/fased-federation/package.json +1 -1
  45. package/extensions/google-gemini-cli-auth/package.json +1 -1
  46. package/extensions/imessage/package.json +1 -1
  47. package/extensions/irc/package.json +1 -1
  48. package/extensions/line/package.json +1 -1
  49. package/extensions/llm-task/package.json +1 -1
  50. package/extensions/lobster/package.json +1 -1
  51. package/extensions/matrix/CHANGELOG.md +12 -0
  52. package/extensions/matrix/package.json +1 -1
  53. package/extensions/mattermost/package.json +1 -1
  54. package/extensions/memory-core/package.json +2 -2
  55. package/extensions/memory-lancedb/package.json +1 -1
  56. package/extensions/minimax-portal-auth/package.json +1 -1
  57. package/extensions/msteams/CHANGELOG.md +12 -0
  58. package/extensions/msteams/package.json +1 -1
  59. package/extensions/nextcloud-talk/package.json +1 -1
  60. package/extensions/nostr/CHANGELOG.md +12 -0
  61. package/extensions/nostr/package.json +1 -1
  62. package/extensions/open-prose/package.json +1 -1
  63. package/extensions/sat-mining/package.json +1 -1
  64. package/extensions/sat-mining/src/strategy-skill.ts +1 -1
  65. package/extensions/signal/package.json +1 -1
  66. package/extensions/synology-chat/package.json +1 -1
  67. package/extensions/tlon/package.json +1 -1
  68. package/extensions/twitch/CHANGELOG.md +12 -0
  69. package/extensions/twitch/package.json +1 -1
  70. package/extensions/voice-call/CHANGELOG.md +12 -0
  71. package/extensions/voice-call/package.json +1 -1
  72. package/extensions/zalo/CHANGELOG.md +12 -0
  73. package/extensions/zalo/package.json +1 -1
  74. package/extensions/zalouser/CHANGELOG.md +12 -0
  75. package/extensions/zalouser/package.json +1 -1
  76. package/package.json +3 -1
  77. package/scripts/start-managed.sh +2 -2
package/dist/brand.js CHANGED
@@ -2,7 +2,7 @@
2
2
  const FASED_BRAND_NAME = "Fased";
3
3
  const FASED_AGENT_NAME = "Fased Agent";
4
4
  const FASED_CONTROL_NAME = "Fased Control";
5
- const FASED_PRODUCT_VERSION = "0.1.39";
5
+ const FASED_PRODUCT_VERSION = "0.1.41";
6
6
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
7
7
  function formatFasedDisplayLine() {
8
8
  return `${FASED_AGENT_NAME} ${FASED_DISPLAY_VERSION}`;
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.39",
3
- "commit": "7af7c4b5a77d6b4d49c0608ff401c3b70daf8160",
4
- "builtAt": "2026-07-10T21:59:59.841Z"
2
+ "version": "0.1.41",
3
+ "commit": "5f3430c83667c9b71fc8ccf86ac70c8390309008",
4
+ "builtAt": "2026-07-11T01:19:54.229Z"
5
5
  }
@@ -1 +1 @@
1
- 567868366bb2bc698b912433b718cade53a456de8938df6d8b786de602beba8e
1
+ 78835a971b64351b964535b6e9cc20185c9f97a220d4258127582a38ea0f58de
@@ -594,6 +594,7 @@ async function updateCommand(opts) {
594
594
  let currentVersion = null;
595
595
  let targetVersion = null;
596
596
  let downgradeRisk = false;
597
+ let alreadyCurrent = false;
597
598
  let fallbackToLatest = false;
598
599
  if (updateInstallKind !== "git") {
599
600
  currentVersion = switchToPackage ? null : await readPackageVersion(root);
@@ -606,6 +607,7 @@ async function updateCommand(opts) {
606
607
  return resolved.version;
607
608
  });
608
609
  const cmp = currentVersion && targetVersion ? compareSemverStrings(currentVersion, targetVersion) : null;
610
+ alreadyCurrent = cmp === 0;
609
611
  downgradeRisk = !fallbackToLatest && currentVersion != null && (targetVersion == null || cmp != null && cmp > 0);
610
612
  installTag = targetVersion ?? tag;
611
613
  }
@@ -703,6 +705,19 @@ async function updateCommand(opts) {
703
705
  defaultRuntime.log(theme.muted(`Update channel set to ${requestedChannel}.`));
704
706
  }
705
707
  }
708
+ if (alreadyCurrent && currentVersion && targetVersion) {
709
+ if (opts.json) {
710
+ defaultRuntime.log(JSON.stringify({
711
+ status: "current",
712
+ currentVersion,
713
+ targetVersion,
714
+ channel
715
+ }, null, 2));
716
+ } else {
717
+ defaultRuntime.log(`Already current: ${currentVersion}`);
718
+ }
719
+ return;
720
+ }
706
721
  const showProgress = !opts.json && process.stdout.isTTY;
707
722
  if (!opts.json) {
708
723
  defaultRuntime.log(theme.heading("Updating FasedAgent..."));
@@ -76,7 +76,7 @@ function applyNonInteractiveGatewayConfig(params) {
76
76
  trustedProxies: hostingProfile && tailscaleMode === "serve" ? Array.from(new Set([...nextConfig.gateway?.trustedProxies ?? [], ...HOSTED_TAILSCALE_TRUSTED_PROXIES])) : nextConfig.gateway?.trustedProxies,
77
77
  controlUi: hostingProfile && tailscaleMode === "serve" ? {
78
78
  ...nextConfig.gateway?.controlUi,
79
- allowInsecureAuth: true
79
+ allowInsecureAuth: false
80
80
  } : nextConfig.gateway?.controlUi,
81
81
  tailscale: {
82
82
  ...nextConfig.gateway?.tailscale,
@@ -1,8 +1,8 @@
1
- import { loadFasedAgentPlugins } from "../plugins/loader.js";
1
+ import { loadFasedAgentPlugins, preloadNativePluginModules } from "../plugins/loader.js";
2
2
 
3
3
  //#region src/gateway/server-plugins.ts
4
- function loadGatewayPlugins(params) {
5
- const pluginRegistry = loadFasedAgentPlugins({
4
+ async function loadGatewayPlugins(params) {
5
+ const loadOptions = {
6
6
  config: params.cfg,
7
7
  workspaceDir: params.workspaceDir,
8
8
  logger: {
@@ -12,6 +12,11 @@ function loadGatewayPlugins(params) {
12
12
  debug: (msg) => params.log.debug(msg)
13
13
  },
14
14
  coreGatewayHandlers: params.coreGatewayHandlers
15
+ };
16
+ const preloadedModules = await preloadNativePluginModules(loadOptions);
17
+ const pluginRegistry = loadFasedAgentPlugins({
18
+ ...loadOptions,
19
+ preloadedModules
15
20
  });
16
21
  const pluginMethods = Object.keys(pluginRegistry.gatewayHandlers);
17
22
  const gatewayMethods = Array.from(new Set([...params.baseMethods, ...pluginMethods]));
@@ -214,7 +214,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
214
214
  let pluginRegistry = emptyPluginRegistry;
215
215
  let baseGatewayMethods = baseMethods;
216
216
  if (!minimalTestGateway && !managedFastStart) {
217
- const loadedPlugins = startupTrace.measureSync("plugins.load", () => loadGatewayPlugins({
217
+ const loadedPlugins = await startupTrace.measure("plugins.load", () => loadGatewayPlugins({
218
218
  cfg: cfgAtStart,
219
219
  workspaceDir: defaultWorkspaceDir,
220
220
  log,
@@ -369,7 +369,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
369
369
  logPlugins
370
370
  }));
371
371
  if (managedFastStart && !minimalTestGateway) {
372
- const loadedPlugins = startupTrace.measureSync("plugins.load.deferred", () => loadGatewayPlugins({
372
+ const loadedPlugins = await startupTrace.measure("plugins.load.deferred", () => loadGatewayPlugins({
373
373
  cfg: cfgAtStart,
374
374
  workspaceDir: defaultWorkspaceDir,
375
375
  log,
@@ -1,4 +1,4 @@
1
- import { At as resolveMediaAttachmentLocalRoots, Dt as createMediaAttachmentCache, Et as buildProviderRegistry, Mt as isAudioAttachment, Ot as normalizeMediaAttachments, jt as runCapability } from "./pi-embedded-runner-BXCGeeps.js";
1
+ import { At as resolveMediaAttachmentLocalRoots, Dt as createMediaAttachmentCache, Et as buildProviderRegistry, Mt as isAudioAttachment, Ot as normalizeMediaAttachments, jt as runCapability } from "./pi-embedded-runner-Dum71Tdo.js";
2
2
  import "./runtime-BPyuAmka.js";
3
3
  import "./subsystem-DBPNbQDQ.js";
4
4
  import { i as logVerbose, s as shouldLogVerbose } from "./globals-B_jjtAje.js";
@@ -14,7 +14,7 @@ import "./accounts-BwkH5bTD.js";
14
14
  import "./tokens-BK5rrwBB.js";
15
15
  import "./allow-list-CBtbuDI8.js";
16
16
  import "./paths-DTurNPnO.js";
17
- import { ct as buildProviderRegistry, ft as resolveMediaAttachmentLocalRoots, lt as createMediaAttachmentCache, mt as isAudioAttachment, pt as runCapability, ut as normalizeMediaAttachments } from "./status-Cl4MeWSg.js";
17
+ import { ct as buildProviderRegistry, ft as resolveMediaAttachmentLocalRoots, lt as createMediaAttachmentCache, mt as isAudioAttachment, pt as runCapability, ut as normalizeMediaAttachments } from "./status-B2vb7zNW.js";
18
18
  import "./runtime-dependency-B-1u41Ph.js";
19
19
  import "./ssrf-Cce6LubA.js";
20
20
  import "./skill-commands-hyZA0LE3.js";
@@ -1,4 +1,4 @@
1
- import { a as resolveImplicitProviders, c as resolveProcessScopedMap, d as expandHomePrefix, f as resolveRequiredHomeDir, h as normalizeAccountId, i as resolveImplicitCopilotProvider, l as isRecord, m as DEFAULT_ACCOUNT_ID, p as formatCliCommand, r as normalizeProviders, s as resolveFasedAgentDir, t as loadConfig, u as createSubsystemLogger } from "./config-BxVjLTIv.js";
1
+ import { a as resolveImplicitProviders, c as resolveProcessScopedMap, d as expandHomePrefix, f as resolveRequiredHomeDir, h as normalizeAccountId, i as resolveImplicitCopilotProvider, l as isRecord, m as DEFAULT_ACCOUNT_ID, p as formatCliCommand, r as normalizeProviders, s as resolveFasedAgentDir, t as loadConfig, u as createSubsystemLogger } from "./config-C0qggNKQ.js";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import os from "node:os";
@@ -856,7 +856,7 @@ async function loadContextCache() {
856
856
  await ensureFasedModelsJson(cfg);
857
857
  } catch {}
858
858
  try {
859
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-runtime-DxoFm4Vd.js");
859
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-runtime-C5ssE6EW.js");
860
860
  const agentDir = resolveFasedAgentDir();
861
861
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
862
862
  applyDiscoveredContextWindows({
@@ -1,4 +1,4 @@
1
- import { gt as wrapExternalContent } from "./pi-embedded-runner-BXCGeeps.js";
1
+ import { gt as wrapExternalContent } from "./pi-embedded-runner-Dum71Tdo.js";
2
2
 
3
3
  //#region src/security/channel-metadata.ts
4
4
  const DEFAULT_MAX_CHARS = 800;
@@ -14,7 +14,7 @@ import "./accounts-BwkH5bTD.js";
14
14
  import "./tokens-BK5rrwBB.js";
15
15
  import "./allow-list-CBtbuDI8.js";
16
16
  import "./paths-DTurNPnO.js";
17
- import { n as buildCommandsMessagePaginated, r as buildHelpMessage, t as buildCommandsMessage } from "./status-Cl4MeWSg.js";
17
+ import { n as buildCommandsMessagePaginated, r as buildHelpMessage, t as buildCommandsMessage } from "./status-B2vb7zNW.js";
18
18
  import "./runtime-dependency-B-1u41Ph.js";
19
19
  import "./ssrf-Cce6LubA.js";
20
20
  import "./skill-commands-hyZA0LE3.js";
@@ -4,7 +4,7 @@ import chalk, { Chalk } from "chalk";
4
4
  import fs, { constants } from "node:fs";
5
5
  import { Logger } from "tslog";
6
6
  import os from "node:os";
7
- import JSON5 from "json5";
7
+ import json5 from "json5";
8
8
  import util, { isDeepStrictEqual, promisify } from "node:util";
9
9
  import fs$1 from "node:fs/promises";
10
10
  import { execFile, execFileSync } from "node:child_process";
@@ -325,7 +325,7 @@ function readLoggingConfig() {
325
325
  try {
326
326
  if (!fs.existsSync(configPath)) return;
327
327
  const raw = fs.readFileSync(configPath, "utf-8");
328
- const logging = JSON5.parse(raw)?.logging;
328
+ const logging = json5.parse(raw)?.logging;
329
329
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
330
330
  return logging;
331
331
  } catch {
@@ -2807,7 +2807,7 @@ function loadPluginManifest(rootDir) {
2807
2807
  }
2808
2808
  let raw;
2809
2809
  try {
2810
- raw = JSON5.parse(fs.readFileSync(opened.fd, "utf-8"));
2810
+ raw = json5.parse(fs.readFileSync(opened.fd, "utf-8"));
2811
2811
  } catch (err) {
2812
2812
  return {
2813
2813
  ok: false,
@@ -13247,7 +13247,7 @@ const defaultResolver = {
13247
13247
  resolvedPath,
13248
13248
  rootRealDir
13249
13249
  }),
13250
- parseJson: (raw) => JSON5.parse(raw)
13250
+ parseJson: (raw) => json5.parse(raw)
13251
13251
  };
13252
13252
  /**
13253
13253
  * Resolves all $include directives in a parsed config object.
@@ -19860,7 +19860,7 @@ function resolveConfigPathForDeps(deps) {
19860
19860
  function normalizeDeps(overrides = {}) {
19861
19861
  return {
19862
19862
  fs: overrides.fs ?? fs,
19863
- json5: overrides.json5 ?? JSON5,
19863
+ json5: overrides.json5 ?? json5,
19864
19864
  env: overrides.env ?? process.env,
19865
19865
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
19866
19866
  configPath: overrides.configPath ?? "",
@@ -19871,11 +19871,11 @@ function maybeLoadDotEnvForConfig(env) {
19871
19871
  if (env !== process.env) return;
19872
19872
  loadDotEnv({ quiet: true });
19873
19873
  }
19874
- function parseConfigJson5(raw, json5 = JSON5) {
19874
+ function parseConfigJson5(raw, json5$1 = json5) {
19875
19875
  try {
19876
19876
  return {
19877
19877
  ok: true,
19878
- parsed: json5.parse(raw)
19878
+ parsed: json5$1.parse(raw)
19879
19879
  };
19880
19880
  } catch (err) {
19881
19881
  return {
@@ -4,7 +4,7 @@ import path from "node:path";
4
4
  import chalk, { Chalk } from "chalk";
5
5
  import { Logger } from "tslog";
6
6
  import os from "node:os";
7
- import json5 from "json5";
7
+ import JSON5 from "json5";
8
8
  import { isDeepStrictEqual, promisify } from "node:util";
9
9
  import fs$1 from "node:fs/promises";
10
10
  import { execFile, execFileSync } from "node:child_process";
@@ -433,7 +433,7 @@ function readLoggingConfig() {
433
433
  try {
434
434
  if (!fs.existsSync(configPath)) return;
435
435
  const raw = fs.readFileSync(configPath, "utf-8");
436
- const logging = json5.parse(raw)?.logging;
436
+ const logging = JSON5.parse(raw)?.logging;
437
437
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
438
438
  return logging;
439
439
  } catch {
@@ -2795,7 +2795,7 @@ function loadPluginManifest(rootDir) {
2795
2795
  }
2796
2796
  let raw;
2797
2797
  try {
2798
- raw = json5.parse(fs.readFileSync(opened.fd, "utf-8"));
2798
+ raw = JSON5.parse(fs.readFileSync(opened.fd, "utf-8"));
2799
2799
  } catch (err) {
2800
2800
  return {
2801
2801
  ok: false,
@@ -13235,7 +13235,7 @@ const defaultResolver = {
13235
13235
  resolvedPath,
13236
13236
  rootRealDir
13237
13237
  }),
13238
- parseJson: (raw) => json5.parse(raw)
13238
+ parseJson: (raw) => JSON5.parse(raw)
13239
13239
  };
13240
13240
  /**
13241
13241
  * Resolves all $include directives in a parsed config object.
@@ -19848,7 +19848,7 @@ function resolveConfigPathForDeps(deps) {
19848
19848
  function normalizeDeps(overrides = {}) {
19849
19849
  return {
19850
19850
  fs: overrides.fs ?? fs,
19851
- json5: overrides.json5 ?? json5,
19851
+ json5: overrides.json5 ?? JSON5,
19852
19852
  env: overrides.env ?? process.env,
19853
19853
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
19854
19854
  configPath: overrides.configPath ?? "",
@@ -19859,11 +19859,11 @@ function maybeLoadDotEnvForConfig(env) {
19859
19859
  if (env !== process.env) return;
19860
19860
  loadDotEnv({ quiet: true });
19861
19861
  }
19862
- function parseConfigJson5(raw, json5$1 = json5) {
19862
+ function parseConfigJson5(raw, json5 = JSON5) {
19863
19863
  try {
19864
19864
  return {
19865
19865
  ok: true,
19866
- parsed: json5$1.parse(raw)
19866
+ parsed: json5.parse(raw)
19867
19867
  };
19868
19868
  } catch (err) {
19869
19869
  return {
@@ -1,4 +1,4 @@
1
- import { $t as resolveToolDisplay, A as clearHistoryEntriesIfEnabled, An as DEFAULT_FEDERATION_BASE_URL, Bn as validatePushTestParams, Cn as readRequestBodyWithLimit, Cr as assertOkOrThrowHttpError, Dn as runFederationAutoConnectOnce, Dr as BLUEBUBBLES_GROUP_ACTIONS, E as DEFAULT_GROUP_HISTORY_LIMIT, En as resolveChannelMediaMaxBytes, Er as BLUEBUBBLES_ACTION_NAMES, F as recordInboundSession, G as formatInboundFromLabel, Hn as errorShape, I as removeAckReactionAfterReply, Jn as processLineMessage, Kn as resolveModel, L as shouldAckReaction, Ln as loadOrCreateDeviceIdentity, M as recordPendingHistoryEntry, Mn as resolveAgentPublicOrigin, N as recordPendingHistoryEntryIfEnabled, Nn as resolveFederationBaseUrl, O as buildPendingHistoryContextFromMap, On as startFederationAutoConnect, Or as CHANNEL_MESSAGE_ACTION_NAMES, P as formatDocsLink, Pn as resolveFederationHandle, R as shouldAckReactionForWhatsApp, Rn as publicKeyRawBase64UrlFromPem, S as detectBinary, Sn as readJsonBodyWithLimit, Sr as warnMissingProviderGroupPolicyFallbackOnce, Tr as BLUEBUBBLES_ACTIONS, Ut as optionalStringEnum, Vn as ErrorCodes, Wt as stringEnum, Xn as createReceiptCard, Yn as stripMarkdown, Zn as attachFooterText, _ as resolveDefaultLineAccountId, _n as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, _r as resolveControlCommandGate, _t as getChannelAgentToolMeta, an as getAcpSessionManager, ar as listDevicePairing, b as logInboundDrop, bn as installRequestBodyLimitGuard, br as resolveDefaultGroupPolicy, c as loadModelCatalog, cn as unregisterAcpRuntimeBackend, d as issuePairingChallenge, dr as DM_GROUP_ACCESS_REASON, er as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, f as createTypingCallbacks, fr as readStoreAllowFromForDmPolicy, g as normalizeAccountId$1, h as listLineAccountIds, hr as resolveEffectiveAllowFromLists, ir as approveDevicePairing, j as evictOldHistoryKeys, jn as normalizeHandle, k as clearHistoryEntries, ln as resolveRuntimeOptionsFromMeta, lr as extractToolSend, m as resolveMentionGatingWithBypass, mr as resolveDmGroupAccessWithLists, nr as resolveHeartbeatPrompt, o as resolveStrictAgenticRuntimeMode, on as getAcpRuntimeBackend, or as rejectDevicePairing, ot as createFasedAgentCodingTools, p as resolveMentionGating, pr as resolveDmGroupAccessWithCommandGate, qn as hasMarkdownToConvert, rr as waitForAbortSignal, sn as registerAcpRuntimeBackend, sr as createDedupeCache, st as resolveEffectiveToolPolicy, t as runEmbeddedPiAgent, tr as DEFAULT_HEARTBEAT_EVERY, u as deriveModelMetadata, un as AcpRuntimeError, ur as withTempDownloadPath, v as resolveLineAccount, vn as DEFAULT_WEBHOOK_MAX_BODY_BYTES, vr as GROUP_POLICY_BLOCKED_LABEL, vt as getPluginToolMeta, wn as requestBodyErrorToText, wr as registerPluginHttpRoute, wt as peekSystemEvents, x as logTypingFailure, xn as isRequestBodyLimitError, xr as resolveOpenProviderRuntimeGroupPolicy, y as logAckFailure, yn as RequestBodyLimitError, yr as resolveAllowlistProviderRuntimeGroupPolicy, yt as buildChannelSummary, zn as formatValidationErrors } from "./pi-embedded-runner-BXCGeeps.js";
1
+ import { $t as resolveToolDisplay, A as clearHistoryEntriesIfEnabled, An as DEFAULT_FEDERATION_BASE_URL, Bn as validatePushTestParams, Cn as readRequestBodyWithLimit, Cr as assertOkOrThrowHttpError, Dn as runFederationAutoConnectOnce, Dr as BLUEBUBBLES_GROUP_ACTIONS, E as DEFAULT_GROUP_HISTORY_LIMIT, En as resolveChannelMediaMaxBytes, Er as BLUEBUBBLES_ACTION_NAMES, F as recordInboundSession, G as formatInboundFromLabel, Hn as errorShape, I as removeAckReactionAfterReply, Jn as processLineMessage, Kn as resolveModel, L as shouldAckReaction, Ln as loadOrCreateDeviceIdentity, M as recordPendingHistoryEntry, Mn as resolveAgentPublicOrigin, N as recordPendingHistoryEntryIfEnabled, Nn as resolveFederationBaseUrl, O as buildPendingHistoryContextFromMap, On as startFederationAutoConnect, Or as CHANNEL_MESSAGE_ACTION_NAMES, P as formatDocsLink, Pn as resolveFederationHandle, R as shouldAckReactionForWhatsApp, Rn as publicKeyRawBase64UrlFromPem, S as detectBinary, Sn as readJsonBodyWithLimit, Sr as warnMissingProviderGroupPolicyFallbackOnce, Tr as BLUEBUBBLES_ACTIONS, Ut as optionalStringEnum, Vn as ErrorCodes, Wt as stringEnum, Xn as createReceiptCard, Yn as stripMarkdown, Zn as attachFooterText, _ as resolveDefaultLineAccountId, _n as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, _r as resolveControlCommandGate, _t as getChannelAgentToolMeta, an as getAcpSessionManager, ar as listDevicePairing, b as logInboundDrop, bn as installRequestBodyLimitGuard, br as resolveDefaultGroupPolicy, c as loadModelCatalog, cn as unregisterAcpRuntimeBackend, d as issuePairingChallenge, dr as DM_GROUP_ACCESS_REASON, er as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, f as createTypingCallbacks, fr as readStoreAllowFromForDmPolicy, g as normalizeAccountId$1, h as listLineAccountIds, hr as resolveEffectiveAllowFromLists, ir as approveDevicePairing, j as evictOldHistoryKeys, jn as normalizeHandle, k as clearHistoryEntries, ln as resolveRuntimeOptionsFromMeta, lr as extractToolSend, m as resolveMentionGatingWithBypass, mr as resolveDmGroupAccessWithLists, nr as resolveHeartbeatPrompt, o as resolveStrictAgenticRuntimeMode, on as getAcpRuntimeBackend, or as rejectDevicePairing, ot as createFasedAgentCodingTools, p as resolveMentionGating, pr as resolveDmGroupAccessWithCommandGate, qn as hasMarkdownToConvert, rr as waitForAbortSignal, sn as registerAcpRuntimeBackend, sr as createDedupeCache, st as resolveEffectiveToolPolicy, t as runEmbeddedPiAgent, tr as DEFAULT_HEARTBEAT_EVERY, u as deriveModelMetadata, un as AcpRuntimeError, ur as withTempDownloadPath, v as resolveLineAccount, vn as DEFAULT_WEBHOOK_MAX_BODY_BYTES, vr as GROUP_POLICY_BLOCKED_LABEL, vt as getPluginToolMeta, wn as requestBodyErrorToText, wr as registerPluginHttpRoute, wt as peekSystemEvents, x as logTypingFailure, xn as isRequestBodyLimitError, xr as resolveOpenProviderRuntimeGroupPolicy, y as logAckFailure, yn as RequestBodyLimitError, yr as resolveAllowlistProviderRuntimeGroupPolicy, yt as buildChannelSummary, zn as formatValidationErrors } from "./pi-embedded-runner-Dum71Tdo.js";
2
2
  import { Ct as resolveIMessageGroupToolPolicy, Ft as listIMessageAccountIds, It as resolveDefaultIMessageAccountId, Lt as resolveIMessageAccount, Mt as listSignalAccountIds, Nt as resolveDefaultSignalAccountId, Pt as resolveSignalAccount, St as resolveIMessageGroupRequireMention, Vt as resolveToolsBySender, _t as normalizeSignalMessagingTarget, an as logMutatingAdminRpcAudit, at as resolveMainSessionKey, bt as resolveGoogleChatGroupRequireMention, c as listAgentsForGateway, ct as listChannelPlugins, et as resolveFreshSessionTotalTokens, f as resolveContextTokensForModel, ft as looksLikeHandleOrPhoneTarget, gt as looksLikeSignalTargetId, ln as authorizeOperatorScopesForMethod, mn as listPluginCommands, on as consumeMutatingAdminRpcBudget, pn as getPluginCommandSpecs, pt as trimMessagingTarget, s as classifySessionKey, t as getActivePluginRegistry, tn as getChatChannelMeta, u as resolveSessionModelRef, vn as normalizePluginHttpPath, vt as resolveBlueBubblesGroupRequireMention, x as loadSessionStore, xt as resolveGoogleChatGroupToolPolicy, yt as resolveBlueBubblesGroupToolPolicy } from "./runtime-BPyuAmka.js";
3
3
  import { n as stripAnsi, t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
4
4
  import { g as registerLogTransport, w as resolvePreferredFasedAgentTmpDir } from "./globals-B_jjtAje.js";
@@ -1,4 +1,4 @@
1
- import { $ as formatModelsAvailableHeader, $n as resolveTelegramInlineButtonsScope, A as clearHistoryEntriesIfEnabled, C as buildPairingReply, Ct as enqueueSystemEvent, E as DEFAULT_GROUP_HISTORY_LIMIT, F as recordInboundSession, Gt as hasControlCommand, H as createInboundDebouncer, I as removeAckReactionAfterReply, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, Nt as registerUnhandledRejectionHandler, O as buildPendingHistoryContextFromMap, Q as buildModelsProviderData, Qt as formatReasoningMessage, Sn as readJsonBodyWithLimit, T as sleepWithAbort, Tt as resolveChannelConfigWrites, U as resolveInboundDebounceMs, W as formatInboundEnvelope, Yt as matchesMentionWithExplicit, Z as resolveStoredModelOverride, _r as resolveControlCommandGate, at as buildCommandsPaginationKeyboard, b as logInboundDrop, bt as buildCommandsMessagePaginated, c as loadModelCatalog, en as stripReasoningTagsFromText, et as buildModelsKeyboard, f as createTypingCallbacks, gr as resolveCommandAuthorizedFromAuthorizers, it as parseModelCallbackData, l as modelSupportsVision, m as resolveMentionGatingWithBypass, nn as isInsideCode, nt as calculateTotalPages, qt as isAbortRequestText, rr as waitForAbortSignal, rt as getModelsPageSize, s as findModelInCatalog, sr as createDedupeCache, tn as findCodeRegions, tt as buildProviderKeyboard, w as computeBackoff, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, xt as formatDurationPrecise, y as logAckFailure, z as dispatchReplyWithBufferedBlockDispatcher } from "./pi-embedded-runner-BXCGeeps.js";
1
+ import { $ as formatModelsAvailableHeader, $n as resolveTelegramInlineButtonsScope, A as clearHistoryEntriesIfEnabled, C as buildPairingReply, Ct as enqueueSystemEvent, E as DEFAULT_GROUP_HISTORY_LIMIT, F as recordInboundSession, Gt as hasControlCommand, H as createInboundDebouncer, I as removeAckReactionAfterReply, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, Nt as registerUnhandledRejectionHandler, O as buildPendingHistoryContextFromMap, Q as buildModelsProviderData, Qt as formatReasoningMessage, Sn as readJsonBodyWithLimit, T as sleepWithAbort, Tt as resolveChannelConfigWrites, U as resolveInboundDebounceMs, W as formatInboundEnvelope, Yt as matchesMentionWithExplicit, Z as resolveStoredModelOverride, _r as resolveControlCommandGate, at as buildCommandsPaginationKeyboard, b as logInboundDrop, bt as buildCommandsMessagePaginated, c as loadModelCatalog, en as stripReasoningTagsFromText, et as buildModelsKeyboard, f as createTypingCallbacks, gr as resolveCommandAuthorizedFromAuthorizers, it as parseModelCallbackData, l as modelSupportsVision, m as resolveMentionGatingWithBypass, nn as isInsideCode, nt as calculateTotalPages, qt as isAbortRequestText, rr as waitForAbortSignal, rt as getModelsPageSize, s as findModelInCatalog, sr as createDedupeCache, tn as findCodeRegions, tt as buildProviderKeyboard, w as computeBackoff, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, xt as formatDurationPrecise, y as logAckFailure, z as dispatchReplyWithBufferedBlockDispatcher } from "./pi-embedded-runner-Dum71Tdo.js";
2
2
  import { C as recordSessionMetaFromInbound, Dt as resolveTelegramAccount, Rt as resolveChannelGroupPolicy, S as readSessionUpdatedAt, fn as executePluginCommand, hn as matchPluginCommand, pn as getPluginCommandSpecs, x as loadSessionStore, zt as resolveChannelGroupRequireMention } from "./runtime-BPyuAmka.js";
3
3
  import { i as defaultRuntime, r as createNonExitingRuntime, t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
4
4
  import { i as logVerbose, l as warn, p as getChildLogger, s as shouldLogVerbose, t as danger } from "./globals-B_jjtAje.js";
@@ -51,7 +51,7 @@ import { n as recordChannelActivity } from "./channel-activity-Cf5sKkfd.js";
51
51
  import { _ as splitTelegramCaption, d as isRecoverableTelegramNetworkError, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, p as markdownToTelegramHtml, t as buildInlineKeyboard, u as wasSentByBot, v as withTelegramApiErrorLogging } from "./send-BzFdvD_i.js";
52
52
  import "./retry-policy-sM01QZT2.js";
53
53
  import { t as makeProxyFetch } from "./proxy-CKQOQYAl.js";
54
- import { i as getCachedSticker, n as describeStickerImage, t as cacheSticker } from "./sticker-cache-CcER-WWu.js";
54
+ import { i as getCachedSticker, n as describeStickerImage, t as cacheSticker } from "./sticker-cache-CJDzqowL.js";
55
55
  import { i as createStatusReactionController, n as DEFAULT_EMOJIS, t as createFinalizableDraftLifecycle } from "./draft-stream-controls-v_5gdUYG.js";
56
56
  import path from "node:path";
57
57
  import os from "node:os";
@@ -2035,7 +2035,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
2035
2035
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
2036
2036
  let preflightTranscript;
2037
2037
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
2038
- const { transcribeFirstAudio } = await import("./audio-preflight-WolqDIx8.js");
2038
+ const { transcribeFirstAudio } = await import("./audio-preflight-Chxqjwxe.js");
2039
2039
  preflightTranscript = await transcribeFirstAudio({
2040
2040
  ctx: {
2041
2041
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -16,9 +16,9 @@ import "./accounts-BRbbLNW_.js";
16
16
  import "./accounts-BwkH5bTD.js";
17
17
  import "./tokens-BK5rrwBB.js";
18
18
  import { a as resolveDiscordAllowListMatch, c as resolveDiscordMemberAccessState, d as resolveGroupDmAllow, f as shouldEmitDiscordReactionNotification, g as resolveTimestampMs, h as resolveDiscordSystemLocation, i as normalizeDiscordSlug, l as resolveDiscordOwnerAllowFrom, m as formatDiscordUserTag, n as isDiscordGroupAllowedByPolicy, o as resolveDiscordChannelConfigWithFallback, p as formatDiscordReactionEmoji, r as normalizeDiscordAllowList, s as resolveDiscordGuildEntry, t as allowListMatches, u as resolveDiscordShouldRequireMention } from "./allow-list-CBtbuDI8.js";
19
- import { a as patchAllowlistUsersInConfigEntries, c as buildUntrustedChannelMetadata, l as isDangerousNameMatchingEnabled, n as buildAllowlistResolutionSummary, o as summarizeMapping, r as canonicalizeAllowlistWithResolvedIds, s as chunkItems, t as addAllowlistUserEntriesFromConfigEntry, u as formatAllowlistMatchMeta } from "./resolve-utils-4mG32lvJ.js";
19
+ import { a as patchAllowlistUsersInConfigEntries, c as buildUntrustedChannelMetadata, l as isDangerousNameMatchingEnabled, n as buildAllowlistResolutionSummary, o as summarizeMapping, r as canonicalizeAllowlistWithResolvedIds, s as chunkItems, t as addAllowlistUserEntriesFromConfigEntry, u as formatAllowlistMatchMeta } from "./resolve-utils-r6ef8mj8.js";
20
20
  import { l as resolveStorePath } from "./paths-DTurNPnO.js";
21
- import { $ as buildModelsProviderData, $t as parseTtsDirectives, At as EmbeddedBlockChunker, B as dispatchReplyWithBufferedBlockDispatcher, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, E as resolveDefaultGroupPolicy, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Gt as stripReasoningTagsFromText, I as resolveControlCommandGate, J as createReplyDispatcherWithTyping, K as resolveEnvelopeFormatOptions, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, O as warnMissingProviderGroupPolicyFallbackOnce, Ot as matchesMentionWithExplicit, P as recordInboundSession, Q as resolveStoredModelOverride, Qt as textToSpeech, R as shouldAckReaction, S as buildPairingReply, T as GROUP_POLICY_BLOCKED_LABEL, U as createInboundDebouncer, V as dispatchReplyWithDispatcher, W as resolveInboundDebounceMs, Xt as enqueueSystemEvent, Yt as formatDurationSeconds, Zt as resolveTtsConfig, b as logInboundDrop, ct as buildProviderRegistry, dn as resolveAgentAvatar, f as createTypingCallbacks, fn as buildGatewayConnectionDetails, g as readStoreAllowFromForDmPolicy, j as buildPendingHistoryContextFromMap, lt as createMediaAttachmentCache, m as resolveMentionGatingWithBypass, pn as GatewayClient, pt as runCapability, q as dispatchInboundMessage, s as agentCommand, ut as normalizeMediaAttachments, v as resolveDmGroupAccessWithLists, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure } from "./status-Cl4MeWSg.js";
21
+ import { $ as buildModelsProviderData, $t as parseTtsDirectives, At as EmbeddedBlockChunker, B as dispatchReplyWithBufferedBlockDispatcher, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, E as resolveDefaultGroupPolicy, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Gt as stripReasoningTagsFromText, I as resolveControlCommandGate, J as createReplyDispatcherWithTyping, K as resolveEnvelopeFormatOptions, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, O as warnMissingProviderGroupPolicyFallbackOnce, Ot as matchesMentionWithExplicit, P as recordInboundSession, Q as resolveStoredModelOverride, Qt as textToSpeech, R as shouldAckReaction, S as buildPairingReply, T as GROUP_POLICY_BLOCKED_LABEL, U as createInboundDebouncer, V as dispatchReplyWithDispatcher, W as resolveInboundDebounceMs, Xt as enqueueSystemEvent, Yt as formatDurationSeconds, Zt as resolveTtsConfig, b as logInboundDrop, ct as buildProviderRegistry, dn as resolveAgentAvatar, f as createTypingCallbacks, fn as buildGatewayConnectionDetails, g as readStoreAllowFromForDmPolicy, j as buildPendingHistoryContextFromMap, lt as createMediaAttachmentCache, m as resolveMentionGatingWithBypass, pn as GatewayClient, pt as runCapability, q as dispatchInboundMessage, s as agentCommand, ut as normalizeMediaAttachments, v as resolveDmGroupAccessWithLists, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure } from "./status-B2vb7zNW.js";
22
22
  import "./runtime-dependency-B-1u41Ph.js";
23
23
  import "./ssrf-Cce6LubA.js";
24
24
  import { n as listSkillCommandsForAgents } from "./skill-commands-hyZA0LE3.js";
@@ -1405,7 +1405,7 @@ async function preflightDiscordMessage(params) {
1405
1405
  let preflightTranscript;
1406
1406
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
1407
1407
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
1408
- const { transcribeFirstAudio } = await import("./audio-preflight-DIJQAjNX.js");
1408
+ const { transcribeFirstAudio } = await import("./audio-preflight-aupYKWfa.js");
1409
1409
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
1410
1410
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
1411
1411
  ctx: {
@@ -15,7 +15,7 @@ import "./accounts-BwkH5bTD.js";
15
15
  import "./tokens-BK5rrwBB.js";
16
16
  import "./allow-list-CBtbuDI8.js";
17
17
  import { l as resolveStorePath } from "./paths-DTurNPnO.js";
18
- import { $ as buildModelsProviderData, B as dispatchReplyWithBufferedBlockDispatcher, C as computeBackoff, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, Et as isAbortRequestText, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Gt as stripReasoningTagsFromText, I as resolveControlCommandGate, Jt as formatDurationPrecise, K as resolveEnvelopeFormatOptions, Kt as findCodeRegions, L as removeAckReactionAfterReply, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, Ot as matchesMentionWithExplicit, P as recordInboundSession, Q as resolveStoredModelOverride, R as shouldAckReaction, S as buildPairingReply, U as createInboundDebouncer, W as resolveInboundDebounceMs, Wt as formatReasoningMessage, Xt as enqueueSystemEvent, Y as createDedupeCache, at as parseModelCallbackData, b as logInboundDrop, c as findModelInCatalog, et as formatModelsAvailableHeader, f as createTypingCallbacks, h as waitForAbortSignal, it as getModelsPageSize, j as buildPendingHistoryContextFromMap, jt as registerUnhandledRejectionHandler, k as DEFAULT_GROUP_HISTORY_LIMIT, l as loadModelCatalog, ln as readJsonBodyWithLimit, m as resolveMentionGatingWithBypass, n as buildCommandsMessagePaginated, nt as buildProviderKeyboard, ot as buildCommandsPaginationKeyboard, qt as isInsideCode, rt as calculateTotalPages, st as resolveChannelConfigWrites, tn as resolveTelegramInlineButtonsScope, tt as buildModelsKeyboard, u as modelSupportsVision, w as sleepWithAbort, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure } from "./status-Cl4MeWSg.js";
18
+ import { $ as buildModelsProviderData, B as dispatchReplyWithBufferedBlockDispatcher, C as computeBackoff, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, Et as isAbortRequestText, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Gt as stripReasoningTagsFromText, I as resolveControlCommandGate, Jt as formatDurationPrecise, K as resolveEnvelopeFormatOptions, Kt as findCodeRegions, L as removeAckReactionAfterReply, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, Ot as matchesMentionWithExplicit, P as recordInboundSession, Q as resolveStoredModelOverride, R as shouldAckReaction, S as buildPairingReply, U as createInboundDebouncer, W as resolveInboundDebounceMs, Wt as formatReasoningMessage, Xt as enqueueSystemEvent, Y as createDedupeCache, at as parseModelCallbackData, b as logInboundDrop, c as findModelInCatalog, et as formatModelsAvailableHeader, f as createTypingCallbacks, h as waitForAbortSignal, it as getModelsPageSize, j as buildPendingHistoryContextFromMap, jt as registerUnhandledRejectionHandler, k as DEFAULT_GROUP_HISTORY_LIMIT, l as loadModelCatalog, ln as readJsonBodyWithLimit, m as resolveMentionGatingWithBypass, n as buildCommandsMessagePaginated, nt as buildProviderKeyboard, ot as buildCommandsPaginationKeyboard, qt as isInsideCode, rt as calculateTotalPages, st as resolveChannelConfigWrites, tn as resolveTelegramInlineButtonsScope, tt as buildModelsKeyboard, u as modelSupportsVision, w as sleepWithAbort, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure } from "./status-B2vb7zNW.js";
19
19
  import "./runtime-dependency-B-1u41Ph.js";
20
20
  import "./ssrf-Cce6LubA.js";
21
21
  import { n as listSkillCommandsForAgents } from "./skill-commands-hyZA0LE3.js";
@@ -51,7 +51,7 @@ import { n as recordChannelActivity } from "./channel-activity-Cf5sKkfd.js";
51
51
  import { _ as splitTelegramCaption, d as isRecoverableTelegramNetworkError, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, p as markdownToTelegramHtml, t as buildInlineKeyboard, u as wasSentByBot, v as withTelegramApiErrorLogging } from "./send-B09HRfHN.js";
52
52
  import "./retry-policy-BLYEgIwP.js";
53
53
  import { t as makeProxyFetch } from "./proxy-CV9uL4Wi.js";
54
- import { i as getCachedSticker, n as describeStickerImage, t as cacheSticker } from "./sticker-cache-DjFhjSZc.js";
54
+ import { i as getCachedSticker, n as describeStickerImage, t as cacheSticker } from "./sticker-cache-C1vOWkzA.js";
55
55
  import { i as createStatusReactionController, n as DEFAULT_EMOJIS, t as createFinalizableDraftLifecycle } from "./draft-stream-controls-Bfbhumzv.js";
56
56
  import crypto from "node:crypto";
57
57
  import os from "node:os";
@@ -2035,7 +2035,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
2035
2035
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
2036
2036
  let preflightTranscript;
2037
2037
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
2038
- const { transcribeFirstAudio } = await import("./audio-preflight-DIJQAjNX.js");
2038
+ const { transcribeFirstAudio } = await import("./audio-preflight-aupYKWfa.js");
2039
2039
  preflightTranscript = await transcribeFirstAudio({
2040
2040
  ctx: {
2041
2041
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -1,4 +1,4 @@
1
- import { A as clearHistoryEntriesIfEnabled, B as dispatchReplyWithDispatcher, C as buildPairingReply, Ct as enqueueSystemEvent, Dt as createMediaAttachmentCache, Et as buildProviderRegistry, F as recordInboundSession, Fn as buildGatewayConnectionDetails, Gn as parseTtsDirectives, Gt as hasControlCommand, H as createInboundDebouncer, In as GatewayClient, J as createReplyDispatcherWithTyping, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, O as buildPendingHistoryContextFromMap, Ot as normalizeMediaAttachments, Q as buildModelsProviderData, Sr as warnMissingProviderGroupPolicyFallbackOnce, St as formatDurationSeconds, U as resolveInboundDebounceMs, Un as resolveTtsConfig, W as formatInboundEnvelope, Wn as textToSpeech, Y as EmbeddedBlockChunker, Yt as matchesMentionWithExplicit, Z as resolveStoredModelOverride, _r as resolveControlCommandGate, a as agentCommand, b as logInboundDrop, br as resolveDefaultGroupPolicy, en as stripReasoningTagsFromText, f as createTypingCallbacks, fr as readStoreAllowFromForDmPolicy, gr as resolveCommandAuthorizedFromAuthorizers, jt as runCapability, kn as resolveAgentAvatar, m as resolveMentionGatingWithBypass, mr as resolveDmGroupAccessWithLists, q as dispatchInboundMessage, vr as GROUP_POLICY_BLOCKED_LABEL, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, y as logAckFailure, z as dispatchReplyWithBufferedBlockDispatcher } from "./pi-embedded-runner-BXCGeeps.js";
1
+ import { A as clearHistoryEntriesIfEnabled, B as dispatchReplyWithDispatcher, C as buildPairingReply, Ct as enqueueSystemEvent, Dt as createMediaAttachmentCache, Et as buildProviderRegistry, F as recordInboundSession, Fn as buildGatewayConnectionDetails, Gn as parseTtsDirectives, Gt as hasControlCommand, H as createInboundDebouncer, In as GatewayClient, J as createReplyDispatcherWithTyping, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, O as buildPendingHistoryContextFromMap, Ot as normalizeMediaAttachments, Q as buildModelsProviderData, Sr as warnMissingProviderGroupPolicyFallbackOnce, St as formatDurationSeconds, U as resolveInboundDebounceMs, Un as resolveTtsConfig, W as formatInboundEnvelope, Wn as textToSpeech, Y as EmbeddedBlockChunker, Yt as matchesMentionWithExplicit, Z as resolveStoredModelOverride, _r as resolveControlCommandGate, a as agentCommand, b as logInboundDrop, br as resolveDefaultGroupPolicy, en as stripReasoningTagsFromText, f as createTypingCallbacks, fr as readStoreAllowFromForDmPolicy, gr as resolveCommandAuthorizedFromAuthorizers, jt as runCapability, kn as resolveAgentAvatar, m as resolveMentionGatingWithBypass, mr as resolveDmGroupAccessWithLists, q as dispatchInboundMessage, vr as GROUP_POLICY_BLOCKED_LABEL, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, y as logAckFailure, z as dispatchReplyWithBufferedBlockDispatcher } from "./pi-embedded-runner-Dum71Tdo.js";
2
2
  import { $t as GATEWAY_CLIENT_MODES, S as readSessionUpdatedAt, Yt as normalizeMessageChannel, en as GATEWAY_CLIENT_NAMES, ut as getChannelDock, x as loadSessionStore } from "./runtime-BPyuAmka.js";
3
3
  import { r as createNonExitingRuntime, t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
4
4
  import { i as logVerbose, l as warn, p as getChildLogger, s as shouldLogVerbose, t as danger, w as resolvePreferredFasedAgentTmpDir } from "./globals-B_jjtAje.js";
@@ -59,7 +59,7 @@ import { C as editMessageDiscord, Q as stripUndefinedFields, a as removeReaction
59
59
  import { i as createThreadBindingManager, r as createNoopThreadBindingManager, t as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings.lifecycle-gmHv3hc7.js";
60
60
  import { t as createReplyReferencePlanner } from "./reply-reference-DxIu2vr0.js";
61
61
  import { i as createStatusReactionController, r as DEFAULT_TIMING, t as createFinalizableDraftLifecycle } from "./draft-stream-controls-v_5gdUYG.js";
62
- import { n as buildUntrustedChannelMetadata, t as chunkItems } from "./chunk-items-j6n1a2yQ.js";
62
+ import { n as buildUntrustedChannelMetadata, t as chunkItems } from "./chunk-items-BDhRe_xU.js";
63
63
  import { t as fetchDiscordApplicationId } from "./probe-Dqx0N4uk.js";
64
64
  import { t as DiscordUiContainer } from "./ui-7sxJ-x37.js";
65
65
  import "./guilds-DmzO7n0X.js";
@@ -1390,7 +1390,7 @@ async function preflightDiscordMessage(params) {
1390
1390
  let preflightTranscript;
1391
1391
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
1392
1392
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
1393
- const { transcribeFirstAudio } = await import("./audio-preflight-WolqDIx8.js");
1393
+ const { transcribeFirstAudio } = await import("./audio-preflight-Chxqjwxe.js");
1394
1394
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
1395
1395
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
1396
1396
  ctx: {
@@ -1,4 +1,4 @@
1
- import { Bt as normalizeMimeList, Ft as DEFAULT_INPUT_IMAGE_MIMES, It as DEFAULT_INPUT_MAX_REDIRECTS, Lt as DEFAULT_INPUT_TIMEOUT_MS, Pt as DEFAULT_INPUT_IMAGE_MAX_BYTES, Rt as extractFileContentFromSource, Vt as resolveInputFileLimits, a as agentCommand, dn as createDefaultDeps, fn as resolveAgentIdForRequest, gn as writeDone, hn as setSseHeaders, i as resolveAssistantStreamDeltaText, in as onAgentEvent, mn as sendJson, n as handleGatewayPostJsonEndpoint, pn as resolveSessionKey, r as buildAgentMessageFromConversationEntries, rn as emitAgentEvent, zt as extractImageContentFromSource } from "./pi-embedded-runner-BXCGeeps.js";
1
+ import { Bt as normalizeMimeList, Ft as DEFAULT_INPUT_IMAGE_MIMES, It as DEFAULT_INPUT_MAX_REDIRECTS, Lt as DEFAULT_INPUT_TIMEOUT_MS, Pt as DEFAULT_INPUT_IMAGE_MAX_BYTES, Rt as extractFileContentFromSource, Vt as resolveInputFileLimits, a as agentCommand, dn as createDefaultDeps, fn as resolveAgentIdForRequest, gn as writeDone, hn as setSseHeaders, i as resolveAssistantStreamDeltaText, in as onAgentEvent, mn as sendJson, n as handleGatewayPostJsonEndpoint, pn as resolveSessionKey, r as buildAgentMessageFromConversationEntries, rn as emitAgentEvent, zt as extractImageContentFromSource } from "./pi-embedded-runner-Dum71Tdo.js";
2
2
  import "./runtime-BPyuAmka.js";
3
3
  import { i as defaultRuntime } from "./subsystem-DBPNbQDQ.js";
4
4
  import "./globals-B_jjtAje.js";
@@ -14,7 +14,7 @@ import "./accounts-BwkH5bTD.js";
14
14
  import "./tokens-BK5rrwBB.js";
15
15
  import "./allow-list-CBtbuDI8.js";
16
16
  import "./paths-DTurNPnO.js";
17
- import { Nt as emitAgentEvent, Pt as onAgentEvent, St as resolveInputFileLimits, _t as DEFAULT_INPUT_MAX_REDIRECTS, a as buildAgentMessageFromConversationEntries, an as sendJson, bt as extractImageContentFromSource, gt as DEFAULT_INPUT_IMAGE_MIMES, ht as DEFAULT_INPUT_IMAGE_MAX_BYTES, i as handleGatewayPostJsonEndpoint, in as resolveSessionKey, nn as createDefaultDeps, o as resolveAssistantStreamDeltaText, on as setSseHeaders, rn as resolveAgentIdForRequest, s as agentCommand, sn as writeDone, vt as DEFAULT_INPUT_TIMEOUT_MS, xt as normalizeMimeList, yt as extractFileContentFromSource } from "./status-Cl4MeWSg.js";
17
+ import { Nt as emitAgentEvent, Pt as onAgentEvent, St as resolveInputFileLimits, _t as DEFAULT_INPUT_MAX_REDIRECTS, a as buildAgentMessageFromConversationEntries, an as sendJson, bt as extractImageContentFromSource, gt as DEFAULT_INPUT_IMAGE_MIMES, ht as DEFAULT_INPUT_IMAGE_MAX_BYTES, i as handleGatewayPostJsonEndpoint, in as resolveSessionKey, nn as createDefaultDeps, o as resolveAssistantStreamDeltaText, on as setSseHeaders, rn as resolveAgentIdForRequest, s as agentCommand, sn as writeDone, vt as DEFAULT_INPUT_TIMEOUT_MS, xt as normalizeMimeList, yt as extractFileContentFromSource } from "./status-B2vb7zNW.js";
18
18
  import "./runtime-dependency-B-1u41Ph.js";
19
19
  import "./ssrf-Cce6LubA.js";
20
20
  import "./skill-commands-hyZA0LE3.js";
@@ -71,7 +71,7 @@ import { inspect, isDeepStrictEqual, promisify } from "node:util";
71
71
  import * as fs$2 from "node:fs/promises";
72
72
  import fs$1, { appendFile, mkdir, mkdtemp, rm } from "node:fs/promises";
73
73
  import { execFile, spawn, spawnSync } from "node:child_process";
74
- import { fileURLToPath } from "node:url";
74
+ import { fileURLToPath, pathToFileURL } from "node:url";
75
75
  import crypto, { X509Certificate, createDecipheriv, createHash, createHmac, createPrivateKey, randomBytes, randomUUID, scryptSync, timingSafeEqual } from "node:crypto";
76
76
  import process$1 from "node:process";
77
77
  import { createServer } from "node:http";
@@ -20339,7 +20339,7 @@ function createOutboundSendDepsFromCliSource(deps) {
20339
20339
  function createDefaultDeps() {
20340
20340
  return {
20341
20341
  sendMessageWhatsApp: async (...args) => {
20342
- const { sendMessageWhatsApp } = await import("./web-BbgvbXQz.js");
20342
+ const { sendMessageWhatsApp } = await import("./web-BjV7ROeA.js");
20343
20343
  return await sendMessageWhatsApp(...args);
20344
20344
  },
20345
20345
  sendMessageTelegram: async (...args) => {
@@ -84721,7 +84721,7 @@ const signalMessageActions = {
84721
84721
  //#region src/channels/plugins/actions/telegram.ts
84722
84722
  const providerId = "telegram";
84723
84723
  async function loadTelegramActionHandler() {
84724
- const { handleTelegramAction } = await import("./telegram-actions-8Rjfgf8m.js");
84724
+ const { handleTelegramAction } = await import("./telegram-actions-CwAsKaNz.js");
84725
84725
  return handleTelegramAction;
84726
84726
  }
84727
84727
  function readTelegramSendParams(params) {
@@ -87178,7 +87178,7 @@ function buildPairingReply(params) {
87178
87178
 
87179
87179
  //#endregion
87180
87180
  //#region src/brand.ts
87181
- const FASED_PRODUCT_VERSION = "0.1.39";
87181
+ const FASED_PRODUCT_VERSION = "0.1.41";
87182
87182
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
87183
87183
 
87184
87184
  //#endregion
@@ -91089,7 +91089,7 @@ const sendPollDiscordLazy = async (...args) => {
91089
91089
  return sendPollDiscord(...args);
91090
91090
  };
91091
91091
  const monitorDiscordProviderLazy = async (...args) => {
91092
- const { monitorDiscordProvider } = await import("./monitor-C20pbAuB.js");
91092
+ const { monitorDiscordProvider } = await import("./monitor-DCyBaUCs.js");
91093
91093
  return monitorDiscordProvider(...args);
91094
91094
  };
91095
91095
  const listSlackDirectoryGroupsLiveLazy = async (...args) => {
@@ -91117,7 +91117,7 @@ const sendMessageSlackLazy = async (...args) => {
91117
91117
  return sendMessageSlack(...args);
91118
91118
  };
91119
91119
  const monitorSlackProviderLazy = async (...args) => {
91120
- const { monitorSlackProvider } = await import("./slack-DRSLzWUb.js");
91120
+ const { monitorSlackProvider } = await import("./slack-B0dLDyHM.js");
91121
91121
  return monitorSlackProvider(...args);
91122
91122
  };
91123
91123
  const handleSlackActionLazy = async (...args) => {
@@ -91137,7 +91137,7 @@ const sendPollTelegramLazy = async (...args) => {
91137
91137
  return sendPollTelegram(...args);
91138
91138
  };
91139
91139
  const monitorTelegramProviderLazy = async (...args) => {
91140
- const { monitorTelegramProvider } = await import("./monitor-jztLTK6V.js");
91140
+ const { monitorTelegramProvider } = await import("./monitor-38DGeIwS.js");
91141
91141
  return monitorTelegramProvider(...args);
91142
91142
  };
91143
91143
  let webOutboundPromise = null;
@@ -91158,7 +91158,7 @@ function loadWebLoginQr() {
91158
91158
  return webLoginQrPromise;
91159
91159
  }
91160
91160
  function loadWebChannel() {
91161
- webChannelPromise ??= import("./web-BbgvbXQz.js");
91161
+ webChannelPromise ??= import("./web-BjV7ROeA.js");
91162
91162
  return webChannelPromise;
91163
91163
  }
91164
91164
  function loadWhatsAppActions() {
@@ -91861,8 +91861,13 @@ function loadFasedAgentPlugins(options = {}) {
91861
91861
  logger
91862
91862
  });
91863
91863
  let mod = null;
91864
+ const moduleLoadStartedAt = Date.now();
91864
91865
  try {
91865
- mod = getJiti()(safeSource);
91866
+ mod = options.preloadedModules?.get(safeSource) ?? null;
91867
+ if (!mod) {
91868
+ mod = getJiti()(safeSource);
91869
+ logger.debug?.(`[plugins] ${record.id} Jiti load ${Date.now() - moduleLoadStartedAt}ms`);
91870
+ }
91866
91871
  } catch (err) {
91867
91872
  recordPluginError({
91868
91873
  logger,
@@ -1,4 +1,4 @@
1
- import { n as normalizeProviderId, o as ensureAuthProfileStore } from "./config-BxVjLTIv.js";
1
+ import { n as normalizeProviderId, o as ensureAuthProfileStore } from "./config-C0qggNKQ.js";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import * as PiCodingAgent from "@mariozechner/pi-coding-agent";
@@ -1,4 +1,4 @@
1
- import { r as normalizeProviderId, s as ensureAuthProfileStore } from "./config-CZaFbNZU.js";
1
+ import { r as normalizeProviderId, s as ensureAuthProfileStore } from "./config-B6SjJFp-.js";
2
2
  import path from "node:path";
3
3
  import fs from "node:fs";
4
4
  import * as PiCodingAgent from "@mariozechner/pi-coding-agent";
@@ -1,4 +1,4 @@
1
- import { Ut as wrapExternalContent } from "./status-Cl4MeWSg.js";
1
+ import { Ut as wrapExternalContent } from "./status-B2vb7zNW.js";
2
2
 
3
3
  //#region src/channels/allowlist-match.ts
4
4
  function formatAllowlistMatchMeta(match) {
@@ -1,4 +1,4 @@
1
- import { A as clearHistoryEntriesIfEnabled, Ct as enqueueSystemEvent, E as DEFAULT_GROUP_HISTORY_LIMIT, F as recordInboundSession, Gt as hasControlCommand, H as createInboundDebouncer, I as removeAckReactionAfterReply, J as createReplyDispatcherWithTyping, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, O as buildPendingHistoryContextFromMap, Sr as warnMissingProviderGroupPolicyFallbackOnce, Tt as resolveChannelConfigWrites, U as resolveInboundDebounceMs, W as formatInboundEnvelope, Yt as matchesMentionWithExplicit, _r as resolveControlCommandGate, b as logInboundDrop, bn as installRequestBodyLimitGuard, br as resolveDefaultGroupPolicy, cr as pruneMapToMaxSize, d as issuePairingChallenge, dt as normalizeAllowList, f as createTypingCallbacks, fr as readStoreAllowFromForDmPolicy, ft as normalizeAllowListLower, gr as resolveCommandAuthorizedFromAuthorizers, ht as resolveSlackUserAllowed, m as resolveMentionGatingWithBypass, mt as resolveSlackAllowListMatch, pt as normalizeSlackSlug, q as dispatchInboundMessage, sr as createDedupeCache, ut as allowListMatches, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, y as logAckFailure } from "./pi-embedded-runner-BXCGeeps.js";
1
+ import { A as clearHistoryEntriesIfEnabled, Ct as enqueueSystemEvent, E as DEFAULT_GROUP_HISTORY_LIMIT, F as recordInboundSession, Gt as hasControlCommand, H as createInboundDebouncer, I as removeAckReactionAfterReply, J as createReplyDispatcherWithTyping, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, O as buildPendingHistoryContextFromMap, Sr as warnMissingProviderGroupPolicyFallbackOnce, Tt as resolveChannelConfigWrites, U as resolveInboundDebounceMs, W as formatInboundEnvelope, Yt as matchesMentionWithExplicit, _r as resolveControlCommandGate, b as logInboundDrop, bn as installRequestBodyLimitGuard, br as resolveDefaultGroupPolicy, cr as pruneMapToMaxSize, d as issuePairingChallenge, dt as normalizeAllowList, f as createTypingCallbacks, fr as readStoreAllowFromForDmPolicy, ft as normalizeAllowListLower, gr as resolveCommandAuthorizedFromAuthorizers, ht as resolveSlackUserAllowed, m as resolveMentionGatingWithBypass, mt as resolveSlackAllowListMatch, pt as normalizeSlackSlug, q as dispatchInboundMessage, sr as createDedupeCache, ut as allowListMatches, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, y as logAckFailure } from "./pi-embedded-runner-Dum71Tdo.js";
2
2
  import { K as resolveSessionKey, S as readSessionUpdatedAt, w as updateLastRoute } from "./runtime-BPyuAmka.js";
3
3
  import { r as createNonExitingRuntime } from "./subsystem-DBPNbQDQ.js";
4
4
  import { i as logVerbose, l as warn, p as getChildLogger, s as shouldLogVerbose, t as danger } from "./globals-B_jjtAje.js";
@@ -53,7 +53,7 @@ import "./tables-CJE8kB35.js";
53
53
  import { t as sendMessageSlack } from "./send-DfkPKz_0.js";
54
54
  import { r as resolveSlackWebClientOptions } from "./client-DWTXscox.js";
55
55
  import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-BrU_JMqM.js";
56
- import { n as buildUntrustedChannelMetadata, t as chunkItems } from "./chunk-items-j6n1a2yQ.js";
56
+ import { n as buildUntrustedChannelMetadata, t as chunkItems } from "./chunk-items-BDhRe_xU.js";
57
57
  import { t as createDraftStreamLoop } from "./draft-stream-loop-2KC6-8CG.js";
58
58
  import { t as resolveSlackUserAllowlist } from "./resolve-users-sv9og6yh.js";
59
59
  import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-fvzN5wnU.js";
@@ -3232,7 +3232,7 @@ async function registerSlackMonitorSlashCommands(params) {
3232
3232
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
3233
3233
  import("./resolve-route-CNhTJG_2.js").then((n) => n.r),
3234
3234
  import("./inbound-context-Daf9i2Me.js").then((n) => n.n),
3235
- import("./pi-embedded-runner-BXCGeeps.js").then((n) => n.V)
3235
+ import("./pi-embedded-runner-Dum71Tdo.js").then((n) => n.V)
3236
3236
  ]);
3237
3237
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordSessionMetaFromInbound, resolveStorePath }] = await Promise.all([
3238
3238
  import("./conversation-label-BoVqak2R.js").then((n) => n.t),
@@ -15,9 +15,9 @@ import { i as resolveSlackBotToken, r as resolveSlackAppToken, t as resolveSlack
15
15
  import "./accounts-BwkH5bTD.js";
16
16
  import "./tokens-BK5rrwBB.js";
17
17
  import { v as applyChannelMatchMeta, x as resolveChannelEntryMatchWithFallback, y as buildChannelKeyCandidates } from "./allow-list-CBtbuDI8.js";
18
- import { a as patchAllowlistUsersInConfigEntries, c as buildUntrustedChannelMetadata, i as mergeAllowlist, l as isDangerousNameMatchingEnabled, n as buildAllowlistResolutionSummary, o as summarizeMapping, s as chunkItems, t as addAllowlistUserEntriesFromConfigEntry, u as formatAllowlistMatchMeta } from "./resolve-utils-4mG32lvJ.js";
18
+ import { a as patchAllowlistUsersInConfigEntries, c as buildUntrustedChannelMetadata, i as mergeAllowlist, l as isDangerousNameMatchingEnabled, n as buildAllowlistResolutionSummary, o as summarizeMapping, s as chunkItems, t as addAllowlistUserEntriesFromConfigEntry, u as formatAllowlistMatchMeta } from "./resolve-utils-r6ef8mj8.js";
19
19
  import { l as resolveStorePath } from "./paths-DTurNPnO.js";
20
- import { Bt as normalizeSlackSlug, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, E as resolveDefaultGroupPolicy, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Ht as resolveSlackUserAllowed, I as resolveControlCommandGate, J as createReplyDispatcherWithTyping, K as resolveEnvelopeFormatOptions, L as removeAckReactionAfterReply, Lt as allowListMatches, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, O as warnMissingProviderGroupPolicyFallbackOnce, Ot as matchesMentionWithExplicit, P as recordInboundSession, R as shouldAckReaction, Rt as normalizeAllowList, U as createInboundDebouncer, Vt as resolveSlackAllowListMatch, W as resolveInboundDebounceMs, X as pruneMapToMaxSize, Xt as enqueueSystemEvent, Y as createDedupeCache, b as logInboundDrop, cn as installRequestBodyLimitGuard, d as issuePairingChallenge, f as createTypingCallbacks, g as readStoreAllowFromForDmPolicy, j as buildPendingHistoryContextFromMap, k as DEFAULT_GROUP_HISTORY_LIMIT, m as resolveMentionGatingWithBypass, q as dispatchInboundMessage, st as resolveChannelConfigWrites, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure, zt as normalizeAllowListLower } from "./status-Cl4MeWSg.js";
20
+ import { Bt as normalizeSlackSlug, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, E as resolveDefaultGroupPolicy, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Ht as resolveSlackUserAllowed, I as resolveControlCommandGate, J as createReplyDispatcherWithTyping, K as resolveEnvelopeFormatOptions, L as removeAckReactionAfterReply, Lt as allowListMatches, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, O as warnMissingProviderGroupPolicyFallbackOnce, Ot as matchesMentionWithExplicit, P as recordInboundSession, R as shouldAckReaction, Rt as normalizeAllowList, U as createInboundDebouncer, Vt as resolveSlackAllowListMatch, W as resolveInboundDebounceMs, X as pruneMapToMaxSize, Xt as enqueueSystemEvent, Y as createDedupeCache, b as logInboundDrop, cn as installRequestBodyLimitGuard, d as issuePairingChallenge, f as createTypingCallbacks, g as readStoreAllowFromForDmPolicy, j as buildPendingHistoryContextFromMap, k as DEFAULT_GROUP_HISTORY_LIMIT, m as resolveMentionGatingWithBypass, q as dispatchInboundMessage, st as resolveChannelConfigWrites, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure, zt as normalizeAllowListLower } from "./status-B2vb7zNW.js";
21
21
  import "./runtime-dependency-B-1u41Ph.js";
22
22
  import { o as normalizeHostname } from "./ssrf-Cce6LubA.js";
23
23
  import "./skill-commands-hyZA0LE3.js";
@@ -3231,7 +3231,7 @@ async function registerSlackMonitorSlashCommands(params) {
3231
3231
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
3232
3232
  import("./resolve-route-DO0WR4nB.js").then((n) => n.r),
3233
3233
  import("./inbound-context-CeJDjLk-.js").then((n) => n.n),
3234
- import("./status-Cl4MeWSg.js").then((n) => n.H)
3234
+ import("./status-B2vb7zNW.js").then((n) => n.H)
3235
3235
  ]);
3236
3236
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordSessionMetaFromInbound, resolveStorePath }] = await Promise.all([
3237
3237
  import("./conversation-label-CDH4rKMG.js").then((n) => n.t),