github-router 0.3.130 → 0.3.135

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.
@@ -1,6 +1,6 @@
1
- import { t as PATHS } from "./paths-CNgpeaWd.js";
2
- import { d as runCommandCapture, l as parseBoolEnv, n as isPidAlive, o as trackChild, p as runManagedExeCapture, r as registerColbertExitHandlers, t as getColbertInstanceUuid, u as resolveExecutable } from "./lifecycle-DTJ2Ugqf.js";
3
- import { i as registerExitHandlers, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-Cyxwmj1c.js";
1
+ import { t as PATHS } from "./paths-Cn5OzmYL.js";
2
+ import { d as runCommandCapture, l as parseBoolEnv, n as isPidAlive, o as trackChild, p as runManagedExeCapture, r as registerColbertExitHandlers, t as getColbertInstanceUuid, u as resolveExecutable } from "./lifecycle-Cqe8OQVX.js";
3
+ import { i as registerExitHandlers, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-CeVDX6av.js";
4
4
  import { createRequire } from "node:module";
5
5
  import consola from "consola";
6
6
  import { createHash, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
@@ -1047,6 +1047,24 @@ function collapsePathKeys(env) {
1047
1047
  return env;
1048
1048
  }
1049
1049
 
1050
+ //#endregion
1051
+ //#region src/lib/insecure-tls.ts
1052
+ const IS_BUN = typeof globalThis.Bun !== "undefined";
1053
+ let sharedInsecureDispatcher;
1054
+ function insecureDispatcher() {
1055
+ return sharedInsecureDispatcher ??= new Agent({ connect: { rejectUnauthorized: false } });
1056
+ }
1057
+ /**
1058
+ * Attach the runtime-correct TLS-verification-off mechanism to a fetch init for a
1059
+ * single self-signed direct-HTTPS instance: Bun → `tls`, Node → an undici
1060
+ * `dispatcher`. Exported so BOTH runtime branches are unit-testable under one
1061
+ * interpreter (the untested Node branch is exactly what shipped broken).
1062
+ */
1063
+ function applyInsecureTls(init, isBun = IS_BUN) {
1064
+ if (isBun) init.tls = { rejectUnauthorized: false };
1065
+ else init.dispatcher = insecureDispatcher();
1066
+ }
1067
+
1050
1068
  //#endregion
1051
1069
  //#region src/lib/artifact/client.ts
1052
1070
  var ArtifactError = class extends Error {
@@ -1068,11 +1086,13 @@ var ArtifactClient = class {
1068
1086
  token;
1069
1087
  sessionId;
1070
1088
  fetchFn;
1089
+ insecureTLS;
1071
1090
  constructor(options) {
1072
1091
  this.baseUrl = options.baseUrl.replace(/\/+$/, "");
1073
1092
  this.token = options.token;
1074
1093
  this.sessionId = options.sessionId;
1075
1094
  this.fetchFn = options.fetchFn ?? globalThis.fetch.bind(globalThis);
1095
+ this.insecureTLS = options.insecureTLS ?? false;
1076
1096
  }
1077
1097
  open(file, signal) {
1078
1098
  return this.request("POST", `/api/artifact/${encodeURIComponent(this.sessionId)}/open`, { file }, signal);
@@ -1101,7 +1121,7 @@ var ArtifactClient = class {
1101
1121
  const timeout = combineSignalAndTimeout(signal, timeoutMsHint);
1102
1122
  let response;
1103
1123
  try {
1104
- response = await this.fetchFn(url.toString(), {
1124
+ const init = {
1105
1125
  method,
1106
1126
  headers: {
1107
1127
  Authorization: `Bearer ${this.token}`,
@@ -1110,7 +1130,9 @@ var ArtifactClient = class {
1110
1130
  body: body === void 0 ? void 0 : JSON.stringify(body),
1111
1131
  redirect: "error",
1112
1132
  signal: timeout.signal
1113
- });
1133
+ };
1134
+ if (this.insecureTLS) applyInsecureTls(init);
1135
+ response = await this.fetchFn(url.toString(), init);
1114
1136
  } catch (err) {
1115
1137
  throw mapNetworkError$1(err);
1116
1138
  } finally {
@@ -1308,10 +1330,29 @@ function readArtifactEnv() {
1308
1330
  return {
1309
1331
  baseUrl,
1310
1332
  token,
1311
- sessionId
1333
+ sessionId,
1334
+ insecureTLS: shouldUseInsecureTls(baseUrl)
1312
1335
  };
1313
1336
  }
1337
+ function shouldUseInsecureTls(baseUrl) {
1338
+ let url;
1339
+ try {
1340
+ url = new URL(baseUrl);
1341
+ } catch {
1342
+ return false;
1343
+ }
1344
+ if (url.protocol !== "https:") return false;
1345
+ const explicit = (process.env.AIORDIE_INSECURE_TLS ?? "").trim().toLowerCase();
1346
+ if (explicit === "0" || explicit === "false" || explicit === "off") return false;
1347
+ if (isLoopbackIp(url.hostname)) return true;
1348
+ return url.hostname === "localhost" && (explicit === "1" || explicit === "true");
1349
+ }
1350
+ function isLoopbackIp(hostname) {
1351
+ const host = hostname.replace(/^\[|\]$/g, "");
1352
+ return host === "::1" || /^127(?:\.\d{1,3}){3}$/.test(host);
1353
+ }
1314
1354
  function clientFromEnv(env) {
1355
+ consola.debug(`ARTIFACT_ENV: token present=${env.token.length > 0}, insecureTLS=${env.insecureTLS}`);
1315
1356
  return new ArtifactClient(env);
1316
1357
  }
1317
1358
  async function pollUntilReady(client, signal) {
@@ -1644,21 +1685,6 @@ function createTunnelTokenProvider(runner = realDevtunnelRunner()) {
1644
1685
 
1645
1686
  //#endregion
1646
1687
  //#region src/lib/fleet/client.ts
1647
- const IS_BUN = typeof globalThis.Bun !== "undefined";
1648
- let sharedInsecureDispatcher;
1649
- function insecureDispatcher() {
1650
- return sharedInsecureDispatcher ??= new Agent({ connect: { rejectUnauthorized: false } });
1651
- }
1652
- /**
1653
- * Attach the runtime-correct TLS-verification-off mechanism to a fetch init for a
1654
- * single self-signed direct-HTTPS instance: Bun → `tls`, Node → an undici
1655
- * `dispatcher`. Exported so BOTH runtime branches are unit-testable under one
1656
- * interpreter (the untested Node branch is exactly what shipped broken).
1657
- */
1658
- function applyInsecureTls(init, isBun = IS_BUN) {
1659
- if (isBun) init.tls = { rejectUnauthorized: false };
1660
- else init.dispatcher = insecureDispatcher();
1661
- }
1662
1688
  var FleetError = class extends Error {
1663
1689
  code;
1664
1690
  retryable;
@@ -8420,7 +8446,7 @@ function logAudit$1(record) {
8420
8446
  try {
8421
8447
  const fs$2 = await import("node:fs/promises");
8422
8448
  const path$1 = await import("node:path");
8423
- const { PATHS: PATHS$1 } = await import("./paths-B-ATynF7.js");
8449
+ const { PATHS: PATHS$1 } = await import("./paths-Bljq3UJC.js");
8424
8450
  const dir = path$1.join(PATHS$1.APP_DIR, "browser-mcp");
8425
8451
  await fs$2.mkdir(dir, { recursive: true });
8426
8452
  const line = JSON.stringify({
@@ -14868,7 +14894,7 @@ function standInToolEnabled() {
14868
14894
  *
14869
14895
  * Returns true iff BOTH:
14870
14896
  * 1. Copilot's live catalog (`state.models?.data`) contains the
14871
- * worker default model (`gemini-3.5-flash`, used by explore/review)
14897
+ * worker default model (`gpt-5.4-mini`, used by explore)
14872
14898
  * AND that entry advertises `capabilities.supports.tool_calls ===
14873
14899
  * true`. The worker loop is function-calling; a model that can't
14874
14900
  * emit tool_calls is unusable, so dormant-register (omit from
@@ -18822,22 +18848,31 @@ async function createWorktree(workspaceAbs, opts) {
18822
18848
  */
18823
18849
  const WORKTREE_REGISTRY = new WorktreeRegistry();
18824
18850
  registerExitHandlers(WORKTREE_REGISTRY);
18825
- /** Default model + thinking for the READ-ONLY worker modes (`explore`,
18826
- * `review`). `gemini-3.5-flash` at `high` (its top reasoning tier) — fast,
18827
- * 1M-context, tool-call-capable.
18851
+ /** Default model + thinking for the `explore` mode. `gpt-5.4-mini` at
18852
+ * `xhigh` fast, cheap, 400k-context, tool-call-capable, with tight
18853
+ * function-calling-loop discipline.
18828
18854
  *
18829
- * HISTORY / CAVEAT: an earlier iteration moved OFF flash to
18830
- * `gemini-3.1-pro-preview` because *that* flash early-stopped with empty
18831
- * turns on the function-calling loop. `gemini-3.5-flash` is a NEWER model
18832
- * and is being re-evaluated for the read-only workload, where parallel
18833
- * read/search batches and sound stop/continue decisions matter. If it
18834
- * regresses to early-stopping, revert this to `gemini-3.1-pro-preview`.
18855
+ * HISTORY / CAVEAT: earlier iterations used `gemini-3.1-pro-preview` then
18856
+ * `gemini-3.5-flash`; both flash defaults early-stopped with empty turns
18857
+ * on the function-calling loop (read a file then end the turn with no
18858
+ * summary), which the single no-output retry couldn't reliably recover.
18859
+ * `gpt-5.4-mini` does not show that pathology and is the proven `browse`
18860
+ * default. Routed through `/responses` by the stream-fn endpoint split.
18835
18861
  *
18836
18862
  * Exported so the MCP handler + the gate (`workerToolsEnabled`) read the
18837
18863
  * same constant — drift would ship a tool whose docs/gate disagree with
18838
18864
  * its runtime default. Caller can override per call via the `model` arg. */
18839
- const DEFAULT_MODEL = "gemini-3.5-flash";
18840
- const DEFAULT_THINKING = "high";
18865
+ const DEFAULT_MODEL = "gpt-5.4-mini";
18866
+ const DEFAULT_THINKING = "xhigh";
18867
+ /** Default model + thinking for the READ-ONLY `review` mode. `gpt-5.5` at
18868
+ * `xhigh` — the strongest reasoning tier, 1M+ context, so the reviewer
18869
+ * has full headroom to verify correctness against the actual code. Same
18870
+ * model as `implement`; like it, this is NOT a `workerToolsEnabled` gate
18871
+ * input — if absent (e.g. a non-enterprise tier) `review` errors helpfully
18872
+ * at call time rather than vanishing the whole worker surface. Caller can
18873
+ * override per call via the `model` arg. */
18874
+ const REVIEW_DEFAULT_MODEL = "gpt-5.5";
18875
+ const REVIEW_DEFAULT_THINKING = "xhigh";
18841
18876
  /** Default model + thinking for the READ+WRITE `implement` mode. `gpt-5.5`
18842
18877
  * at `xhigh` — the strongest reasoning tier in the catalog, 1M+ context,
18843
18878
  * routed through `/responses` by the stream-fn endpoint split. Coding edits
@@ -18964,9 +18999,10 @@ async function runWorkerAgentOnce(opts) {
18964
18999
  try {
18965
19000
  const isBrowse = opts.mode === "browse";
18966
19001
  const isPlan = opts.mode === "plan";
19002
+ const isReview = opts.mode === "review";
18967
19003
  const isWriteCapable = opts.mode === "implement" || opts.mode === "test";
18968
- const defaultModel = isBrowse ? BROWSE_DEFAULT_MODEL : isPlan ? PLAN_DEFAULT_MODEL : isWriteCapable ? IMPLEMENT_DEFAULT_MODEL : DEFAULT_MODEL;
18969
- const defaultThinking = isBrowse ? BROWSE_DEFAULT_THINKING : isPlan ? PLAN_DEFAULT_THINKING : isWriteCapable ? IMPLEMENT_DEFAULT_THINKING : DEFAULT_THINKING;
19004
+ const defaultModel = isBrowse ? BROWSE_DEFAULT_MODEL : isPlan ? PLAN_DEFAULT_MODEL : isReview ? REVIEW_DEFAULT_MODEL : isWriteCapable ? IMPLEMENT_DEFAULT_MODEL : DEFAULT_MODEL;
19005
+ const defaultThinking = isBrowse ? BROWSE_DEFAULT_THINKING : isPlan ? PLAN_DEFAULT_THINKING : isReview ? REVIEW_DEFAULT_THINKING : isWriteCapable ? IMPLEMENT_DEFAULT_THINKING : DEFAULT_THINKING;
18970
19006
  const resolved = resolveModelAndThinking({
18971
19007
  model: opts.model ?? defaultModel,
18972
19008
  thinking: opts.thinking ?? defaultThinking
@@ -20689,7 +20725,7 @@ function entryHasCommand(entry, command) {
20689
20725
  * other entries. Returns a new object (never mutates the input). Re-running the
20690
20726
  * launcher with the same command+event does not duplicate the hook.
20691
20727
  */
20692
- function mergeStopHookIntoSettings(existing, command, event = "Stop", timeoutSec) {
20728
+ function mergeStopHookIntoSettings(existing, command, event = "Stop", timeoutSec, matcher) {
20693
20729
  const base = existing && typeof existing === "object" ? { ...existing } : {};
20694
20730
  const hooks = base.hooks && typeof base.hooks === "object" ? { ...base.hooks } : {};
20695
20731
  const arr = Array.isArray(hooks[event]) ? [...hooks[event]] : [];
@@ -20699,7 +20735,10 @@ function mergeStopHookIntoSettings(existing, command, event = "Stop", timeoutSec
20699
20735
  command
20700
20736
  };
20701
20737
  if (typeof timeoutSec === "number" && Number.isFinite(timeoutSec) && timeoutSec > 0) hook.timeout = timeoutSec;
20702
- arr.push({ hooks: [hook] });
20738
+ arr.push(matcher ? {
20739
+ matcher,
20740
+ hooks: [hook]
20741
+ } : { hooks: [hook] });
20703
20742
  }
20704
20743
  hooks[event] = arr;
20705
20744
  base.hooks = hooks;
@@ -20905,6 +20944,12 @@ function buildSessionBindHookCommand(execPath, scriptPath, outPath) {
20905
20944
  const q = (s) => `"${s}"`;
20906
20945
  return `${scriptPath && scriptPath !== execPath ? `${q(execPath)} ${q(scriptPath)}` : q(execPath)} internal-session-bind --out ${q(outPath)}`;
20907
20946
  }
20947
+ /** Command for the `internal-artifact-open` hook (no args — token comes from the
20948
+ * mirror creds file, plan from the plans dir; nothing secret in argv). */
20949
+ function buildArtifactOpenHookCommand(execPath, scriptPath) {
20950
+ const q = (s) => `"${s}"`;
20951
+ return `${scriptPath && scriptPath !== execPath ? `${q(execPath)} ${q(scriptPath)}` : q(execPath)} internal-artifact-open`;
20952
+ }
20908
20953
  /**
20909
20954
  * Read-merge-atomic-write the Stop hook into a Claude Code `settings.json` file
20910
20955
  * (the mirrored one). A MISSING file (ENOENT) starts from `{}`; any OTHER read or
@@ -20913,7 +20958,7 @@ function buildSessionBindHookCommand(execPath, scriptPath, outPath) {
20913
20958
  * other setting, is idempotent, and uses temp+rename so Claude Code's mtime
20914
20959
  * watcher never sees a half-written file. Returns the merged object.
20915
20960
  */
20916
- async function injectStopHookIntoSettingsFile(settingsPath, command, event = "Stop", timeoutSec) {
20961
+ async function injectStopHookIntoSettingsFile(settingsPath, command, event = "Stop", timeoutSec, matcher) {
20917
20962
  let existing = {};
20918
20963
  let raw;
20919
20964
  try {
@@ -20927,7 +20972,7 @@ async function injectStopHookIntoSettingsFile(settingsPath, command, event = "St
20927
20972
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) existing = parsed;
20928
20973
  else throw new Error(`settings.json at ${settingsPath} is not a JSON object; refusing to overwrite`);
20929
20974
  }
20930
- const merged = mergeStopHookIntoSettings(existing, command, event, timeoutSec);
20975
+ const merged = mergeStopHookIntoSettings(existing, command, event, timeoutSec, matcher);
20931
20976
  const tmp = `${settingsPath}.${process.pid}.tmp`;
20932
20977
  await promises.writeFile(tmp, `${JSON.stringify(merged, null, 2)}\n`, { mode: 384 });
20933
20978
  await promises.rename(tmp, settingsPath);
@@ -21865,7 +21910,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
21865
21910
  toolNameHttp: "explore",
21866
21911
  group: "workers",
21867
21912
  capability: "worker",
21868
- description: "Read-only investigation by an autonomous worker (Pi runtime; default model `gemini-3.5-flash` at high reasoning, override via the `model` arg with any Copilot-catalog model that advertises `tool_calls`). Tools: read, glob, grep, code_search (semantic-first), web_search, fetch_url, advisor (consult a stronger cross-lab model), update_plan (planning checklist), and toolbelt (run a read-only analysis CLI: rg/fd/jq/yq/sg/gron/tokei/difft/git). The worker's system prompt sandboxes it and gives one-line descriptions of each tool, so brief it on the investigation, not on tool semantics. Offloads bounded research that would otherwise eat your context window — the worker plans its own tool calls and returns a single text answer. Examples: \"find files matching X then summarize\", \"how does library Y handle Z\", \"survey this codebase for usages of deprecated API\".",
21913
+ description: "Read-only investigation by an autonomous worker (Pi runtime; default model `gpt-5.4-mini` at xhigh reasoning, override via the `model` arg with any Copilot-catalog model that advertises `tool_calls`). Tools: read, glob, grep, code_search (semantic-first), web_search, fetch_url, advisor (consult a stronger cross-lab model), update_plan (planning checklist), and toolbelt (run a read-only analysis CLI: rg/fd/jq/yq/sg/gron/tokei/difft/git). The worker's system prompt sandboxes it and gives one-line descriptions of each tool, so brief it on the investigation, not on tool semantics. Offloads bounded research that would otherwise eat your context window — the worker plans its own tool calls and returns a single text answer. Examples: \"find files matching X then summarize\", \"how does library Y handle Z\", \"survey this codebase for usages of deprecated API\".",
21869
21914
  inputSchema: {
21870
21915
  type: "object",
21871
21916
  required: ["prompt"],
@@ -21877,7 +21922,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
21877
21922
  },
21878
21923
  model: {
21879
21924
  type: "string",
21880
- description: "Optional Copilot catalog model id (defaults to gemini-3.5-flash). Must advertise tool_calls support; the engine emits an isError envelope listing the eligible catalog models on mismatch."
21925
+ description: "Optional Copilot catalog model id (defaults to gpt-5.4-mini). Must advertise tool_calls support; the engine emits an isError envelope listing the eligible catalog models on mismatch."
21881
21926
  },
21882
21927
  thinking: {
21883
21928
  type: "string",
@@ -21957,7 +22002,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
21957
22002
  toolNameHttp: "review",
21958
22003
  group: "workers",
21959
22004
  capability: "worker",
21960
- description: "Read-only code review by an autonomous worker (Pi runtime; default model `gemini-3.5-flash`, override via `model` with any Copilot-catalog model that advertises `tool_calls`). Same read-only toolset as `explore` (read, glob, grep, code_search, web_search, fetch_url, advisor, update_plan, toolbelt) — it CANNOT edit — but the worker is framed as a reviewer: it verifies correctness against the actual code itself rather than trusting a claim, and reports findings (bugs, edge cases, security / concurrency / resource risks, missing handling) with a severity and `file:line`. Brief it with the change / diff / claim to verify (paste it, or name the files) — it reads the code to confirm, so you get a self-verifying second opinion that doesn't depend on you having pre-extracted the relevant code. Unlike the `peers` critics (single stateless model calls on the artifact you paste), this worker can navigate the repo to check surrounding context for itself.",
22005
+ description: "Read-only code review by an autonomous worker (Pi runtime; default model `gpt-5.5` at xhigh reasoning, override via `model` with any Copilot-catalog model that advertises `tool_calls`). Same read-only toolset as `explore` (read, glob, grep, code_search, web_search, fetch_url, advisor, update_plan, toolbelt) — it CANNOT edit — but the worker is framed as a reviewer: it verifies correctness against the actual code itself rather than trusting a claim, and reports findings (bugs, edge cases, security / concurrency / resource risks, missing handling) with a severity and `file:line`. Brief it with the change / diff / claim to verify (paste it, or name the files) — it reads the code to confirm, so you get a self-verifying second opinion that doesn't depend on you having pre-extracted the relevant code. Unlike the `peers` critics (single stateless model calls on the artifact you paste), this worker can navigate the repo to check surrounding context for itself.",
21961
22006
  inputSchema: {
21962
22007
  type: "object",
21963
22008
  required: ["prompt"],
@@ -21969,7 +22014,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
21969
22014
  },
21970
22015
  model: {
21971
22016
  type: "string",
21972
- description: "Optional Copilot catalog model id (defaults to gemini-3.5-flash). Must advertise tool_calls support; the engine emits an isError envelope listing the eligible catalog models on mismatch."
22017
+ description: "Optional Copilot catalog model id (defaults to gpt-5.5). Must advertise tool_calls support; the engine emits an isError envelope listing the eligible catalog models on mismatch."
21973
22018
  },
21974
22019
  thinking: {
21975
22020
  type: "string",
@@ -22001,7 +22046,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
22001
22046
  toolNameHttp: "plan",
22002
22047
  group: "workers",
22003
22048
  capability: "worker",
22004
- description: "Read-only implementation planning by an autonomous worker (Pi runtime; default model `gemini-3.5-flash`, override via `model` with any Copilot-catalog model that advertises `tool_calls`). Same read-only toolset as `explore` (read, glob, grep, code_search, web_search, fetch_url, advisor, update_plan, toolbelt) — it CANNOT edit — but the worker is framed as a planner: from the task and acceptance criteria it produces a concrete, ordered implementation plan (the files to change, the approach, the key risks, and how each acceptance criterion will be verified), grounded by reading the actual code. Brief it with the task and any acceptance criteria; it returns a single plan, not code.",
22049
+ description: "Read-only implementation planning by an autonomous worker (Pi runtime; default model `claude-opus-4.8`, override via `model` with any Copilot-catalog model that advertises `tool_calls`). Same read-only toolset as `explore` (read, glob, grep, code_search, web_search, fetch_url, advisor, update_plan, toolbelt) — it CANNOT edit — but the worker is framed as a planner: from the task and acceptance criteria it produces a concrete, ordered implementation plan (the files to change, the approach, the key risks, and how each acceptance criterion will be verified), grounded by reading the actual code. Brief it with the task and any acceptance criteria; it returns a single plan, not code.",
22005
22050
  inputSchema: {
22006
22051
  type: "object",
22007
22052
  required: ["prompt"],
@@ -22013,7 +22058,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
22013
22058
  },
22014
22059
  model: {
22015
22060
  type: "string",
22016
- description: "Optional Copilot catalog model id (defaults to gemini-3.5-flash). Must advertise tool_calls support; the engine emits an isError envelope listing the eligible catalog models on mismatch."
22061
+ description: "Optional Copilot catalog model id (defaults to claude-opus-4.8). Must advertise tool_calls support; the engine emits an isError envelope listing the eligible catalog models on mismatch."
22017
22062
  },
22018
22063
  thinking: {
22019
22064
  type: "string",
@@ -22695,5 +22740,5 @@ async function runStandInToolCall(args, signal) {
22695
22740
  }
22696
22741
 
22697
22742
  //#endregion
22698
- export { handleMcpDelete as $, IMPLEMENT_DEFAULT_MODEL as A, setupCopilotToken as At, TOOLBELT_TOOLS$1 as B, sleep as Bt, stopGateEnabledForRepo as C, DEFAULT_PORT as Ct, liveExec as D, pickClaudeDefault as Dt, resolveSealedGate as E, generateRandomPort as Et, availableToolCommands as F, cacheVSCodeVersion as Ft, buildAdvisorStream as G, GITHUB_API_BASE_URL as Gt, searchWeb as H, fetchWithTransientRetry as Ht, buildToolbeltAwareness as I, filterBetaHeader as It, buildOpenAIErrorEvent as J, githubHeaders as Jt, injectAdvisorTool as K, copilotBaseUrl as Kt, toolbeltEnabled as L, isNullish as Lt, appendPlanReminder as M, tryRefreshAndRetry as Mt, runWorkerAgent as N, cacheCopilotVersion as Nt, BROWSE_DEFAULT_MODEL as O, getPackageVersion as Ot, withNoOutputRetry as P, cacheModels as Pt, relayAnthropicStream as Q, toolbeltSkipSet as R, resolveCodexModel as Rt, repoRoot as S, DEFAULT_CODEX_MODEL_FALLBACKS as St, trustRepo as T, UPSTREAM_INACTIVITY_TIMEOUT_MS as Tt, ADVISOR_INTERNAL_TOOL_NAME as U, HTTPError as Ut, assetFor as V, getModels as Vt, ADVISOR_TOOL_INSTRUCTIONS as W, forwardError as Wt, logStreamError as X, isControllerClosedError as Y, state as Yt, readIteratorWithTimeout as Z, fileFindingsStore as _, extractZipMember as _t, buildPeerAwarenessSnippet as a, countTokens as at, isSubagentContext as b, DEFAULT_CLAUDE_MODEL_FALLBACKS as bt, buildStopHookCommand as c, createResponses as ct, fileBlockBudget as d, readResponseBodyCapped as dt, handleMcpPost as et, injectStopHookIntoSettingsFile as f, parseJsonOrDiagnose as ft, fileBaselineStore as g, extractTarGzMember as gt, stopReviewEnabled as h, provisionAndIndexColbert as ht, buildAgentPrompt as i, workerToolsEnabled as it, PLAN_DEFAULT_MODEL as j, setupGitHubToken as jt, DEFAULT_MODEL as k, withInstallLock as kt, captureLaunchBaseline as l, createChatCompletions as lt, stopGateId as m, hasSupportedBrowserInstalled as mt, MCP_GROUPS as n, fleetToolsEnabled as nt, personasFor as o, createMessages as ot, launchBaselineKey as p, provisionBrowserAssets as pt, isAdvisorRequested as q, copilotHeaders as qt, assertMcpToolSurfaceConsistent as r, standInToolEnabled as rt, buildSessionBindHookCommand as s, getTokenCount as st, GROUP_META as t, browserToolsEnabled as tt, decideStopHook as u, MAX_RESPONSE_BODY_BYTES as ut, fileLastPromptStore as v, collapsePathKeys as vt, stopReviewStateDir as w, UPSTREAM_FETCH_TIMEOUT_MS as wt, repoFingerprint as x, DEFAULT_CODEX_MODEL as xt, fileReviewDebounce as y, toolbeltPathOverride as yt, vscodeRipgrepPath as z, resolveModel as zt };
22699
- //# sourceMappingURL=peer-mcp-personas-YFzQuogX.js.map
22743
+ export { readIteratorWithTimeout as $, state as $t, DEFAULT_MODEL as A, generateRandomPort as At, toolbeltSkipSet as B, filterBetaHeader as Bt, repoRoot as C, toolbeltPathOverride as Ct, resolveSealedGate as D, DEFAULT_PORT as Dt, trustRepo as E, DEFAULT_CODEX_MODEL_FALLBACKS as Et, runWorkerAgent as F, setupGitHubToken as Ft, ADVISOR_INTERNAL_TOOL_NAME as G, getModels as Gt, TOOLBELT_TOOLS$1 as H, resolveCodexModel as Ht, withNoOutputRetry as I, tryRefreshAndRetry as It, injectAdvisorTool as J, forwardError as Jt, ADVISOR_TOOL_INSTRUCTIONS as K, fetchWithTransientRetry as Kt, availableToolCommands as L, cacheCopilotVersion as Lt, PLAN_DEFAULT_MODEL as M, getPackageVersion as Mt, REVIEW_DEFAULT_MODEL as N, withInstallLock as Nt, liveExec as O, UPSTREAM_FETCH_TIMEOUT_MS as Ot, appendPlanReminder as P, setupCopilotToken as Pt, logStreamError as Q, githubHeaders as Qt, buildToolbeltAwareness as R, cacheModels as Rt, repoFingerprint as S, collapsePathKeys as St, stopReviewStateDir as T, DEFAULT_CODEX_MODEL as Tt, assetFor as U, resolveModel as Ut, vscodeRipgrepPath as V, isNullish as Vt, searchWeb as W, sleep as Wt, buildOpenAIErrorEvent as X, copilotBaseUrl as Xt, isAdvisorRequested as Y, GITHUB_API_BASE_URL as Yt, isControllerClosedError as Z, copilotHeaders as Zt, fileBaselineStore as _, provisionAndIndexColbert as _t, buildPeerAwarenessSnippet as a, standInToolEnabled as at, fileReviewDebounce as b, shouldUseInsecureTls as bt, buildSessionBindHookCommand as c, createMessages as ct, decideStopHook as d, createChatCompletions as dt, relayAnthropicStream as et, fileBlockBudget as f, MAX_RESPONSE_BODY_BYTES as ft, stopReviewEnabled as g, hasSupportedBrowserInstalled as gt, stopGateId as h, provisionBrowserAssets as ht, buildAgentPrompt as i, fleetToolsEnabled as it, IMPLEMENT_DEFAULT_MODEL as j, pickClaudeDefault as jt, BROWSE_DEFAULT_MODEL as k, UPSTREAM_INACTIVITY_TIMEOUT_MS as kt, buildStopHookCommand as l, getTokenCount as lt, launchBaselineKey as m, parseJsonOrDiagnose as mt, MCP_GROUPS as n, handleMcpPost as nt, personasFor as o, workerToolsEnabled as ot, injectStopHookIntoSettingsFile as p, readResponseBodyCapped as pt, buildAdvisorStream as q, HTTPError as qt, assertMcpToolSurfaceConsistent as r, browserToolsEnabled as rt, buildArtifactOpenHookCommand as s, countTokens as st, GROUP_META as t, handleMcpDelete as tt, captureLaunchBaseline as u, createResponses as ut, fileFindingsStore as v, extractTarGzMember as vt, stopGateEnabledForRepo as w, DEFAULT_CLAUDE_MODEL_FALLBACKS as wt, isSubagentContext as x, ArtifactClient as xt, fileLastPromptStore as y, extractZipMember as yt, toolbeltEnabled as z, cacheVSCodeVersion as zt };
22744
+ //# sourceMappingURL=peer-mcp-personas-ClyKATAD.js.map