github-router 0.3.255 → 0.3.256

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 (26) hide show
  1. package/dist/{attribution-settings-CegtE0TY.js → attribution-settings-jqkXfeVr.js} +3 -3
  2. package/dist/{attribution-settings-CegtE0TY.js.map → attribution-settings-jqkXfeVr.js.map} +1 -1
  3. package/dist/browser-ext/background.js +406 -30
  4. package/dist/browser-ext/manifest.json +1 -1
  5. package/dist/{claude-BiZxoNWq.js → claude-Cpy7b9gd.js} +6 -6
  6. package/dist/{claude-BiZxoNWq.js.map → claude-Cpy7b9gd.js.map} +1 -1
  7. package/dist/{codex-ST21X3WF.js → codex-BJK_QVsI.js} +4 -4
  8. package/dist/{codex-ST21X3WF.js.map → codex-BJK_QVsI.js.map} +1 -1
  9. package/dist/engine-DXn5XmFp.js +2 -0
  10. package/dist/{gate-discovery-CepmbZnc.js → gate-discovery-Bm1nxHSU.js} +2 -2
  11. package/dist/{gate-discovery-CepmbZnc.js.map → gate-discovery-Bm1nxHSU.js.map} +1 -1
  12. package/dist/{internal-stop-hook-CNPGJm63.js → internal-stop-hook-BaBkqJyg.js} +2 -2
  13. package/dist/{internal-stop-hook-CNPGJm63.js.map → internal-stop-hook-BaBkqJyg.js.map} +1 -1
  14. package/dist/main.js +5 -5
  15. package/dist/{peer-mcp-personas-BDet588n.js → peer-mcp-personas-BPl6_V2A.js} +126 -54
  16. package/dist/{peer-mcp-personas-BDet588n.js.map → peer-mcp-personas-BPl6_V2A.js.map} +1 -1
  17. package/dist/{provision-DSkPa5hY.js → provision-DueN4M8G.js} +2 -2
  18. package/dist/{provision-DSkPa5hY.js.map → provision-DueN4M8G.js.map} +1 -1
  19. package/dist/{serve-sa_7c-yD.js → serve-GN-flJmF.js} +5 -5
  20. package/dist/{serve-sa_7c-yD.js.map → serve-GN-flJmF.js.map} +1 -1
  21. package/dist/{server-setup-DcO9qvN3.js → server-setup-BJL-X7w6.js} +3 -3
  22. package/dist/{server-setup-DcO9qvN3.js.map → server-setup-BJL-X7w6.js.map} +1 -1
  23. package/dist/{start-siGxuZhO.js → start-CE0k-weK.js} +3 -3
  24. package/dist/{start-siGxuZhO.js.map → start-CE0k-weK.js.map} +1 -1
  25. package/package.json +1 -1
  26. package/dist/engine-DNCX0Hfd.js +0 -2
@@ -16556,13 +16556,27 @@ async function runUnifiedCodeSearch(input, signal) {
16556
16556
  //#endregion
16557
16557
  //#region src/lib/browser-mcp/browser-detect.ts
16558
16558
  let cached;
16559
- function probeWindows() {
16560
- const found = [];
16561
- const probe = (subkey) => {
16559
+ function probeWindowsRegistry(subkey) {
16560
+ try {
16561
+ execFileSync("reg.exe", [
16562
+ "query",
16563
+ `HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\${subkey}`,
16564
+ "/ve"
16565
+ ], {
16566
+ windowsHide: true,
16567
+ timeout: 3e3,
16568
+ stdio: [
16569
+ "ignore",
16570
+ "pipe",
16571
+ "ignore"
16572
+ ]
16573
+ });
16574
+ return true;
16575
+ } catch {
16562
16576
  try {
16563
16577
  execFileSync("reg.exe", [
16564
16578
  "query",
16565
- `HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\${subkey}`,
16579
+ `HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\${subkey}`,
16566
16580
  "/ve"
16567
16581
  ], {
16568
16582
  windowsHide: true,
@@ -16575,43 +16589,27 @@ function probeWindows() {
16575
16589
  });
16576
16590
  return true;
16577
16591
  } catch {
16578
- try {
16579
- execFileSync("reg.exe", [
16580
- "query",
16581
- `HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\${subkey}`,
16582
- "/ve"
16583
- ], {
16584
- windowsHide: true,
16585
- timeout: 3e3,
16586
- stdio: [
16587
- "ignore",
16588
- "pipe",
16589
- "ignore"
16590
- ]
16591
- });
16592
- return true;
16593
- } catch {
16594
- return false;
16595
- }
16592
+ return false;
16596
16593
  }
16597
- };
16598
- if (probe("chrome.exe")) found.push("chrome");
16599
- if (probe("msedge.exe")) found.push("edge");
16600
- if (!found.includes("chrome")) {
16601
- const localApp = process$1.env.LOCALAPPDATA;
16602
- const pf = process$1.env["PROGRAMFILES"];
16603
- const pf86 = process$1.env["PROGRAMFILES(X86)"];
16604
- if ([
16605
- localApp ? path.join(localApp, "Google", "Chrome", "Application", "chrome.exe") : void 0,
16606
- pf ? path.join(pf, "Google", "Chrome", "Application", "chrome.exe") : void 0,
16607
- pf86 ? path.join(pf86, "Google", "Chrome", "Application", "chrome.exe") : void 0
16608
- ].filter((p) => typeof p === "string").some(existsSync)) found.push("chrome");
16609
- }
16610
- if (!found.includes("edge")) {
16611
- const pf86 = process$1.env["PROGRAMFILES(X86)"];
16612
- const pf = process$1.env["PROGRAMFILES"];
16613
- if ([pf86 ? path.join(pf86, "Microsoft", "Edge", "Application", "msedge.exe") : void 0, pf ? path.join(pf, "Microsoft", "Edge", "Application", "msedge.exe") : void 0].filter((p) => typeof p === "string").some(existsSync)) found.push("edge");
16614
16594
  }
16595
+ }
16596
+ /** Well-known install locations. Per-user installs land in LocalAppData; system installs in Program Files. */
16597
+ function windowsLiteralPaths(browser) {
16598
+ const localApp = process$1.env.LOCALAPPDATA;
16599
+ const pf = process$1.env["PROGRAMFILES"];
16600
+ const pf86 = process$1.env["PROGRAMFILES(X86)"];
16601
+ return (browser === "chrome" ? [
16602
+ localApp ? path.join(localApp, "Google", "Chrome", "Application", "chrome.exe") : void 0,
16603
+ pf ? path.join(pf, "Google", "Chrome", "Application", "chrome.exe") : void 0,
16604
+ pf86 ? path.join(pf86, "Google", "Chrome", "Application", "chrome.exe") : void 0
16605
+ ] : [pf86 ? path.join(pf86, "Microsoft", "Edge", "Application", "msedge.exe") : void 0, pf ? path.join(pf, "Microsoft", "Edge", "Application", "msedge.exe") : void 0]).filter((p) => typeof p === "string");
16606
+ }
16607
+ function probeWindows() {
16608
+ const found = [];
16609
+ if (windowsLiteralPaths("chrome").some(existsSync)) found.push("chrome");
16610
+ if (windowsLiteralPaths("edge").some(existsSync)) found.push("edge");
16611
+ if (!found.includes("chrome") && probeWindowsRegistry("chrome.exe")) found.push("chrome");
16612
+ if (!found.includes("edge") && probeWindowsRegistry("msedge.exe")) found.push("edge");
16615
16613
  return found;
16616
16614
  }
16617
16615
  function probeMacOS() {
@@ -17184,6 +17182,13 @@ function loadExpectedExtensionVersion() {
17184
17182
  */
17185
17183
  const DEV_VERSION_SENTINEL = "0.0.0";
17186
17184
  /**
17185
+ * Stand-in for `version_mismatch.loaded` when the loaded extension is
17186
+ * too old to report a version at all (it predates the `__hello__`
17187
+ * handshake). Kept human-readable because it is rendered verbatim into
17188
+ * the model-facing instructions.
17189
+ */
17190
+ const UNKNOWN_LOADED_VERSION = "unknown (extension reported no version)";
17191
+ /**
17187
17192
  * Track which `(extensionId, expectedVersion)` pairs we've already
17188
17193
  * tried to auto-reload in this process. Prevents an infinite reload
17189
17194
  * loop if the on-disk version somehow stays ahead of what the browser
@@ -17192,6 +17197,15 @@ const DEV_VERSION_SENTINEL = "0.0.0";
17192
17197
  */
17193
17198
  const attemptedReloads = /* @__PURE__ */ new Set();
17194
17199
  /**
17200
+ * `auto_installed` for the `extension_outdated` payloads below.
17201
+ *
17202
+ * Reaching those branches means the bridge is running and the extension is
17203
+ * connected, so the native-messaging manifest is provably already correct —
17204
+ * nothing was installed, and claiming otherwise would point the reader at a
17205
+ * step that is not the remedy. The remedy is reloading the extension.
17206
+ */
17207
+ const NOTHING_AUTO_INSTALLED = Object.freeze([]);
17208
+ /**
17195
17209
  * Send POST /reload to the bridge — triggers __reload__ control frame
17196
17210
  * over native messaging, which the extension's handler dispatches into
17197
17211
  * chrome.runtime.reload(). After this returns, the OLD bridge process
@@ -17236,7 +17250,10 @@ function buildInstallRequired(reason, autoInstalled, versionMismatch) {
17236
17250
  const instructions = (() => {
17237
17251
  if (reason === "no_supported_browser") return "No Chrome or Edge installation was detected on this host. Install one and restart the github-router proxy.";
17238
17252
  if (reason === "bridge_bundle_missing") return "The bridge bundle is missing. Run `bun run build` from the github-router checkout to produce dist/browser-bridge/index.js, then retry.";
17239
- if (reason === "extension_outdated" && versionMismatch) return `Your loaded github-router browser extension is version ${versionMismatch.loaded} but the github-router package shipped version ${versionMismatch.expected}. Auto-reload was attempted and did not converge — Chrome likely disabled the extension because the new manifest declares new permissions. Open chrome://extensions (or edge://extensions), find the github-router extension card, click "Enable" if it's disabled, then click the reload arrow. Retry this tool call afterwards.`;
17253
+ if (reason === "extension_outdated" && versionMismatch) {
17254
+ if (versionMismatch.loaded === UNKNOWN_LOADED_VERSION) return `Your loaded github-router browser extension did not report a version, so the proxy cannot confirm it is up to date and auto-reload could not fix it (the github-router package shipped version ${versionMismatch.expected}). This usually means the loaded extension predates the auto-reload support and has been silently running stale. Open chrome://extensions (or edge://extensions), find the github-router extension card, and click the reload arrow; if the card is missing, click "Load unpacked" and select the load_unpacked_dir above. If it still reports no version afterwards, restart the github-router proxy so the native bridge is refreshed too.`;
17255
+ return `Your loaded github-router browser extension is version ${versionMismatch.loaded} but the github-router package shipped version ${versionMismatch.expected}. Auto-reload was attempted and did not converge — Chrome likely disabled the extension because the new manifest declares new permissions. Open chrome://extensions (or edge://extensions), find the github-router extension card, click "Enable" if it's disabled, then click the reload arrow. Retry this tool call afterwards.`;
17256
+ }
17240
17257
  return "Open chrome://extensions (or edge://extensions), enable Developer Mode, click 'Load unpacked', and select the load_unpacked_dir above. Then retry this tool call. If you just updated the github-router package, an extension already loaded may need to be reloaded — click the reload arrow on its card.";
17241
17258
  })();
17242
17259
  return {
@@ -17253,6 +17270,31 @@ function buildInstallRequired(reason, autoInstalled, versionMismatch) {
17253
17270
  };
17254
17271
  }
17255
17272
  /**
17273
+ * Is the loaded extension out of date with respect to the shipped one?
17274
+ *
17275
+ * `loaded === undefined` means the extension reported no version. The
17276
+ * bridge has echoed `extension_loaded_version` since the very release
17277
+ * that added the `__hello__` handshake, so on any bridge new enough to
17278
+ * run this code, a CONNECTED extension that reports no version is one
17279
+ * that predates the handshake — the most stale state there is. Treating
17280
+ * that absence as "not checkable" failed open permanently for exactly
17281
+ * the extensions this check exists to catch: one months out of date kept
17282
+ * serving requests while silently ignoring newer arguments, and nothing
17283
+ * ever said so. Absence is a staleness signal.
17284
+ *
17285
+ * The dev sentinel is exempt on both sides: a source checkout loads at
17286
+ * "0.0.0" and is expected to diverge.
17287
+ *
17288
+ * Exported for tests — this predicate is the whole invariant, and it had
17289
+ * no coverage when it silently regressed.
17290
+ */
17291
+ function isExtensionStale(expected, loaded) {
17292
+ if (typeof expected !== "string" || expected === DEV_VERSION_SENTINEL) return false;
17293
+ if (typeof loaded !== "string") return true;
17294
+ if (loaded === DEV_VERSION_SENTINEL) return false;
17295
+ return loaded !== expected;
17296
+ }
17297
+ /**
17256
17298
  * Full pre-flight. Returns either `{install_required: false, port,
17257
17299
  * token, pid}` (bridge ready, extension connected) or an
17258
17300
  * `install_required` payload the dispatcher hands directly to the
@@ -17317,28 +17359,30 @@ async function _ensureBridgeReadyImpl() {
17317
17359
  const browsers = detectSupportedBrowsers();
17318
17360
  if (browsers.length === 0) return buildInstallRequired("no_supported_browser", []);
17319
17361
  if (!bridgeBundleExists()) return buildInstallRequired("bridge_bundle_missing", []);
17320
- const autoInstalled = installNativeHostForAll(browsers).flatMap((r) => [`nmh_manifest_${r.browser}`]);
17362
+ const installNow = () => installNativeHostForAll(browsers).map((r) => `nmh_manifest_${r.browser}`);
17321
17363
  const discovery = readBridgeDiscovery();
17322
- if (!discovery) return buildInstallRequired("bridge_not_running", autoInstalled);
17364
+ if (!discovery) return buildInstallRequired("bridge_not_running", installNow());
17323
17365
  const health = await probeHealth(discovery.port, discovery.token);
17324
- if (!health || !health.ok) return buildInstallRequired("bridge_not_running", autoInstalled);
17325
- if (!health.extension_connected) return buildInstallRequired("extension_not_loaded", autoInstalled);
17366
+ if (!health || !health.ok) return buildInstallRequired("bridge_not_running", installNow());
17367
+ if (!health.extension_connected) return buildInstallRequired("extension_not_loaded", installNow());
17326
17368
  const expectedVersion = loadExpectedExtensionVersion();
17327
17369
  const loadedVersion = health.extension_loaded_version;
17328
- if (typeof expectedVersion === "string" && typeof loadedVersion === "string" && expectedVersion !== DEV_VERSION_SENTINEL && loadedVersion !== DEV_VERSION_SENTINEL && expectedVersion !== loadedVersion) {
17370
+ const loadedUnknown = typeof loadedVersion !== "string";
17371
+ if (typeof expectedVersion === "string" && isExtensionStale(expectedVersion, loadedVersion)) {
17372
+ const loadedLabel = loadedUnknown ? UNKNOWN_LOADED_VERSION : loadedVersion;
17329
17373
  const reloadKey = `${loadStableExtensionId()}::${expectedVersion}`;
17330
- if (attemptedReloads.has(reloadKey)) return buildInstallRequired("extension_outdated", autoInstalled, {
17331
- loaded: loadedVersion,
17374
+ if (attemptedReloads.has(reloadKey)) return buildInstallRequired("extension_outdated", NOTHING_AUTO_INSTALLED, {
17375
+ loaded: loadedLabel,
17332
17376
  expected: expectedVersion
17333
17377
  });
17334
17378
  attemptedReloads.add(reloadKey);
17335
- if (!await postReload(discovery.port, discovery.token)) return buildInstallRequired("extension_outdated", autoInstalled, {
17336
- loaded: loadedVersion,
17379
+ if (!await postReload(discovery.port, discovery.token)) return buildInstallRequired("extension_outdated", NOTHING_AUTO_INSTALLED, {
17380
+ loaded: loadedLabel,
17337
17381
  expected: expectedVersion
17338
17382
  });
17339
17383
  const newDiscovery = await pollUntilExtensionVersion(expectedVersion, 3e3, 150);
17340
- if (!newDiscovery) return buildInstallRequired("extension_outdated", autoInstalled, {
17341
- loaded: loadedVersion,
17384
+ if (!newDiscovery) return buildInstallRequired("extension_outdated", NOTHING_AUTO_INSTALLED, {
17385
+ loaded: loadedLabel,
17342
17386
  expected: expectedVersion
17343
17387
  });
17344
17388
  return {
@@ -17855,6 +17899,30 @@ async function browserPreflight(tool, args) {
17855
17899
  if (ready.install_required) return { envelope: installRequiredToolResult(ready) };
17856
17900
  return { envelope: void 0 };
17857
17901
  }
17902
+ const WINDOW_POLICIES = [
17903
+ "deny",
17904
+ "restore",
17905
+ "foreground"
17906
+ ];
17907
+ const DEFAULT_WINDOW_POLICY = "foreground";
17908
+ /**
17909
+ * Resolve the window-remediation policy for pixel capture.
17910
+ *
17911
+ * `captureVisibleTab` cannot produce a frame for a window the browser
17912
+ * is not painting, so capturing against a minimized window requires
17913
+ * making it paintable first. Whether the proxy is allowed to touch the
17914
+ * user's window state is the user's call, not the model's — so it comes
17915
+ * from the environment and is injected here, rather than being an
17916
+ * argument the model chooses. Note this is a usability control, not a
17917
+ * security boundary: the default is the permissive setting, so a model
17918
+ * that simply omits the argument already gets the most intrusive
17919
+ * behavior. The lever that actually restrains the proxy is setting this
17920
+ * env var to `deny`.
17921
+ */
17922
+ function resolveWindowPolicy() {
17923
+ const raw = process.env.GH_ROUTER_BROWSER_WINDOW_POLICY?.trim().toLowerCase();
17924
+ return WINDOW_POLICIES.includes(raw ?? "") ? raw : DEFAULT_WINDOW_POLICY;
17925
+ }
17858
17926
  /**
17859
17927
  * Real dispatcher for any browser_* tool. Used by the entries in
17860
17928
  * src/lib/browser-mcp/index.ts. Returns the standard MCP tool-result
@@ -17869,10 +17937,14 @@ async function dispatchBrowserTool(tool, args, signal, opts = {}) {
17869
17937
  const { defaultMs, maxMs } = pickTimeout(tool);
17870
17938
  const callerTimeout = typeof opts.timeoutMs === "number" && opts.timeoutMs > 0 ? Math.min(opts.timeoutMs, maxMs) : defaultMs;
17871
17939
  try {
17940
+ const callArgs = tool === "browser_screenshot" ? {
17941
+ ...args,
17942
+ windowPolicy: resolveWindowPolicy()
17943
+ } : args;
17872
17944
  const resp = await bridgeCall({
17873
17945
  port: ready.port,
17874
17946
  token: ready.token
17875
- }, tool, args, callerTimeout, signal);
17947
+ }, tool, callArgs, callerTimeout, signal);
17876
17948
  if (resp.ok) {
17877
17949
  logAudit$1({
17878
17950
  tool,
@@ -19883,7 +19955,7 @@ const BROWSER_TOOLS = Object.freeze([
19883
19955
  },
19884
19956
  {
19885
19957
  toolNameHttp: "browser_screenshot",
19886
- description: "Captures a screenshot of the visible area of a tab and returns it as an image you can actually look at, plus a small text envelope of capture metadata. It takes a tab id, an optional format (PNG default, JPEG for smaller bytes), and an optional JPEG quality. The tab must be active in its window, so this tool auto-activates the tab if needed and that changes which tab is focused. If a capture is rejected for exceeding a model's image-size limit, the most reliable lever is a smaller browser window; PNG is usually SMALLER than JPEG for ordinary UI and text pages, so switching format is not a dependable way to shrink one. JPEG plus a low quality helps mainly for photographic or dense-colour content. Use screenshot for visual layout, canvas, SVG, maps, or image-only regions; prefer browser_observe when page text and actionable state are enough.",
19958
+ description: "Captures a screenshot of the visible area of a tab and returns it as an image you can actually look at, plus a small text envelope of capture metadata. It takes a tab id, an optional format (PNG default, JPEG for smaller bytes), and an optional JPEG quality. The tab must be active in its window, so this tool auto-activates the tab if needed and that changes which tab is focused. The browser does not paint a minimized window, so a capture needs one that is on screen: by default the tool un-minimizes and raises the target window, which takes focus (the operator can set GH_ROUTER_BROWSER_WINDOW_POLICY=restore to un-minimize without taking focus, or =deny to leave window state untouched and fail instead). If a capture still cannot produce a frame it fails fast with a named code rather than hanging. WINDOW_MINIMIZED and CAPTURE_STALLED mean the window is not visible (minimized, fully covered, on another virtual desktop, or a locked session) and will keep failing until that changes, so make the window visible instead of retrying; TARGET_CHANGED and QUEUE_BUSY mean another tab switch or capture got in the way and a plain retry is the right response. If a capture is rejected for exceeding a model's image-size limit, the most reliable lever is a smaller browser window; PNG is usually SMALLER than JPEG for ordinary UI and text pages, so switching format is not a dependable way to shrink one. JPEG plus a low quality helps mainly for photographic or dense-colour content. Use screenshot for visual layout, canvas, SVG, maps, or image-only regions; prefer browser_observe when page text and actionable state are enough.",
19887
19959
  inputSchema: {
19888
19960
  type: "object",
19889
19961
  required: ["tabId"],
@@ -33694,4 +33766,4 @@ function enumerateInjectedMcpToolNames(groupKeys, opts = {}) {
33694
33766
  //#endregion
33695
33767
  export { scoutModel as $, ADVISOR_INTERNAL_TOOL_NAME as A, UPSTREAM_FETCH_TIMEOUT_MS as At, relayAnthropicStream as B, buildToolbeltAwareness as C, shouldUseInsecureTls as Ct, TOOLBELT_TOOLS$1 as D, DEFAULT_CODEX_MODEL as Dt, vscodeRipgrepPath as E, DEFAULT_CLAUDE_MODEL_FALLBACKS as Et, buildAnthropicErrorEvent as F, brainstormModel as G, handleMcpPost as H, buildOpenAIErrorEvent as I, browserToolsEnabled as J, browseAgentEnabled as K, isControllerClosedError as L, buildAdvisorStream as M, generateRandomPort as Mt, injectAdvisorTool as N, pickClaudeDefault as Nt, assetFor as O, DEFAULT_CODEX_MODEL_FALLBACKS as Ot, isAdvisorRequested as P, withInstallLock as Pt, reviewerModel as Q, logStreamError as R, availableToolCommands as S, DEFINITION_OF_GREATNESS as St, toolbeltSkipSet as T, toolbeltPathOverride as Tt, agentToolsEnabled as U, handleMcpDelete as V, artifactToolsEnabled as W, geminiAvailable as X, fleetToolsEnabled as Y, nativeSubagentModel as Z, appendPlanReminder as _, provisionAndIndexColbert as _t, buildPeerAwarenessSnippet as a, createMessages as at, runWorkerAgent as b, warmTreeSitterPool as bt, personasFor as c, resolveMcpToolTimeoutMs as ct, EXPLORE_DEFAULT_MODEL as d, createChatCompletions as dt, scribeModel as et, EXPLORE_DEFAULT_THINKING as f, MAX_RESPONSE_BODY_BYTES as ft, TEST_DEFAULT_MODEL as g, hasSupportedBrowserInstalled as gt, REVIEW_DEFAULT_MODEL as h, provisionBrowserAssets as ht, buildAgentPrompt as i, countTokens as it, ADVISOR_TOOL_INSTRUCTIONS as j, UPSTREAM_INACTIVITY_TIMEOUT_MS as jt, searchWeb as k, DEFAULT_PORT as kt, BROWSE_DEFAULT_MODEL as l, pickEndpoint as lt, PLAN_DEFAULT_MODEL as m, parseJsonOrDiagnose as mt, MCP_GROUPS as n, workerToolsEnabled as nt, buildPeerAwarenessSummary as o, getTokenCount as ot, IMPLEMENT_DEFAULT_MODEL as p, readResponseBodyCapped as pt, browserCompoundToolsEnabled as q, assertMcpToolSurfaceConsistent as r, shimDefaultsToXhigh as rt, enumerateInjectedMcpToolNames as s, assembleResponsesPayload as st, GROUP_META as t, standInToolEnabled as tt, DEFAULT_MODEL as u, createResponses as ut, resolveModeDefaults as v, extractTarGzMember as vt, toolbeltEnabled as w, collapsePathKeys as wt, buildEnv as x, CONDENSED_OPERATING_SEQUENCE as xt, resolveWorkerRunOpts as y, extractZipMember as yt, readIteratorWithTimeout as z };
33696
33768
 
33697
- //# sourceMappingURL=peer-mcp-personas-BDet588n.js.map
33769
+ //# sourceMappingURL=peer-mcp-personas-BPl6_V2A.js.map