github-router 0.3.175 → 0.3.177

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-CTlT1nTo.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-ChPBRt6K.js";
3
- import { i as registerExitHandlers, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-BUXxiltc.js";
1
+ import { t as PATHS } from "./paths-BZPgxKUl.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-DrDEjx_c.js";
3
+ import { i as registerExitHandlers, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-Dvr3pGGG.js";
4
4
  import { createRequire } from "node:module";
5
5
  import consola from "consola";
6
6
  import { createHash, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
@@ -603,7 +603,7 @@ function filterBetaHeader(value) {
603
603
  * dashes, insert dash at letter→digit boundaries, and collapse repeated
604
604
  * dashes. E.g. "gpt5.3-codex" → "gpt-5-3-codex", "GPT-5.3-Codex" → "gpt-5-3-codex".
605
605
  */
606
- function normalizeModelId(id) {
606
+ function normalizeModelId$1(id) {
607
607
  return id.toLowerCase().replace(/\./g, "-").replace(/([a-z])(\d)/g, "$1-$2").replace(/-{2,}/g, "-");
608
608
  }
609
609
  /**
@@ -651,8 +651,8 @@ function resolveModel(modelId) {
651
651
  return codexModels[0].id;
652
652
  }
653
653
  }
654
- const normalized = normalizeModelId(modelId);
655
- const normMatch = models.find((m) => normalizeModelId(m.id) === normalized);
654
+ const normalized = normalizeModelId$1(modelId);
655
+ const normMatch = models.find((m) => normalizeModelId$1(m.id) === normalized);
656
656
  if (normMatch) return normMatch.id;
657
657
  const dateStripped = modelId.replace(/^(claude-[\w.-]+)-20\d{6}$/i, "$1");
658
658
  if (dateStripped !== modelId) {
@@ -1072,13 +1072,15 @@ function pickClaudeDefault(opusFamily = DEFAULT_OPUS_FAMILY) {
1072
1072
  return bareSlug;
1073
1073
  }
1074
1074
  /**
1075
- * Default model for `github-router codex`. `gpt-5.5` is the new flagship
1076
- * `/responses` model; the fallback chain handles older Copilot tiers where
1077
- * 5.5 hasn't rolled out yet. `resolveCodexModel` provides a final
1078
- * "best available `/responses` model" safety net beyond this list.
1075
+ * Default model for `github-router codex`. `gpt-5.6-sol` is the flagship
1076
+ * `/responses` model; the fallback chain (led by `gpt-5.5`) handles older
1077
+ * Copilot tiers or a rollout-lag window where sol hasn't appeared yet.
1078
+ * `resolveCodexModel` provides a final "best available `/responses` model"
1079
+ * safety net beyond this list.
1079
1080
  */
1080
- const DEFAULT_CODEX_MODEL = "gpt-5.5";
1081
+ const DEFAULT_CODEX_MODEL = "gpt-5.6-sol";
1081
1082
  const DEFAULT_CODEX_MODEL_FALLBACKS = [
1083
+ "gpt-5.5",
1082
1084
  "gpt-5.4",
1083
1085
  "gpt-5.3-codex",
1084
1086
  "gpt-5.2-codex"
@@ -6079,10 +6081,12 @@ const T0_MODEL_CHAIN = [
6079
6081
  const T1_MODEL_CHAIN = [
6080
6082
  "gpt-5.4-mini",
6081
6083
  "gpt-5-mini",
6084
+ "gpt-5.6-sol",
6082
6085
  "gpt-5.5",
6083
6086
  "gemini-3.1-pro-preview"
6084
6087
  ];
6085
6088
  const T2_MODEL_CHAIN = [
6089
+ "gpt-5.6-sol",
6086
6090
  "gpt-5.5",
6087
6091
  "claude-opus-4.8",
6088
6092
  "gemini-3.1-pro-preview"
@@ -6984,7 +6988,7 @@ async function observeUnit(unit) {
6984
6988
  * present — an explicitly-chosen model that Copilot can't serve THROWS rather
6985
6989
  * than being silently swapped for a fallback (a silent class-switch could send
6986
6990
  * the task to a weaker/wrong model the operator never asked for).
6987
- * - `chosen` unset: default to {@link DEFAULT_CODEX_MODEL} (gpt-5.5), walking
6991
+ * - `chosen` unset: default to {@link DEFAULT_CODEX_MODEL} (gpt-5.6-sol), walking
6988
6992
  * {@link DEFAULT_CODEX_MODEL_FALLBACKS} only when a catalog says the preferred
6989
6993
  * default is absent (older Copilot tiers).
6990
6994
  *
@@ -9324,7 +9328,7 @@ function buildRoleAgent(role) {
9324
9328
  "Verification commands and outcomes",
9325
9329
  "Risks and follow-ups"
9326
9330
  ],
9327
- model: "gpt-5.5"
9331
+ model: "gpt-5.6-sol"
9328
9332
  },
9329
9333
  reviewer: {
9330
9334
  description: "Adversarial code reviewer for concrete diffs; reports real findings with severity and file:line.",
@@ -9404,7 +9408,7 @@ function buildRoleAgent(role) {
9404
9408
  "Commands run and outcomes",
9405
9409
  "Failures that require implementation work"
9406
9410
  ],
9407
- model: "gpt-5.5"
9411
+ model: "gpt-5.6-sol"
9408
9412
  }
9409
9413
  }[role];
9410
9414
  const modelLine = spec.model === void 0 ? "" : `model: ${spec.model}\n`;
@@ -10469,7 +10473,7 @@ function createFirstMateTools(depsOverride = {}) {
10469
10473
  acceptance_criteria: stringProp("User-blessed acceptance criteria for the mission."),
10470
10474
  priority: numberProp("Optional numeric priority; higher values are handled by controller policy."),
10471
10475
  house_rules: stringProp("Optional repository or operator constraints."),
10472
- default_model: stringProp("Model the GitHub cloud coding agent uses for this mission's tasks; defaults to gpt-5.5."),
10476
+ default_model: stringProp("Model the GitHub cloud coding agent uses for this mission's tasks; defaults to gpt-5.6-sol."),
10473
10477
  plan_gate: enumProp(["hard", "soft"], "Plan-review gate. hard (default) requires the flow's review before build and re-plans on a rejecting review; soft auto-advances a passing plan review to build without human approval but escalates a rejecting review to a human."),
10474
10478
  ci_required: boolProp("When true, refuse merge approval if the repository reports no CI for the PR head.")
10475
10479
  }, [
@@ -16877,7 +16881,7 @@ function logAudit$1(record) {
16877
16881
  try {
16878
16882
  const fs$2 = await import("node:fs/promises");
16879
16883
  const path$1 = await import("node:path");
16880
- const { PATHS: PATHS$1 } = await import("./paths-DN3O54iE.js");
16884
+ const { PATHS: PATHS$1 } = await import("./paths-CDYvyApX.js");
16881
16885
  const dir = path$1.join(PATHS$1.APP_DIR, "browser-mcp");
16882
16886
  await fs$2.mkdir(dir, { recursive: true });
16883
16887
  const line = JSON.stringify({
@@ -23487,6 +23491,33 @@ async function countTokens(body, extraHeaders, callerSignal, retryTransient = fa
23487
23491
  return response;
23488
23492
  }
23489
23493
 
23494
+ //#endregion
23495
+ //#region src/lib/openai-frontier.ts
23496
+ /**
23497
+ * OpenAI frontier models + shim effort policy.
23498
+ *
23499
+ * Dependency-free leaf so BOTH `mcp-capabilities.ts` (model SELECTION) and the
23500
+ * hot `anthropic-translate` shim path (effort POLICY) can import without pulling
23501
+ * the heavy mcp-capabilities transitive deps (colbert/browser/worker) into the
23502
+ * shim. The selection list and the effort-policy set are deliberately SEPARATE
23503
+ * constants (same members today) so a future frontier model added for selection
23504
+ * does not silently inherit the xhigh effort default.
23505
+ */
23506
+ /** Preference-ordered OpenAI frontier reasoning models (SELECTION list). */
23507
+ const OPENAI_FRONTIER_MODELS = ["gpt-5.6-sol", "gpt-5.5"];
23508
+ /** Models whose shim DEFAULT reasoning effort is xhigh (effort POLICY set). */
23509
+ const XHIGH_DEFAULT_SHIM_MODELS = ["gpt-5.6-sol", "gpt-5.5"];
23510
+ /** Normalize a model id for policy comparison: strip a leading `vendor/`
23511
+ * prefix and any trailing `[...]` decoration(s) (e.g. `[1m]`, `[1m][beta]`)
23512
+ * plus trailing whitespace. */
23513
+ function normalizeModelId(id) {
23514
+ return (id.includes("/") ? id.slice(id.lastIndexOf("/") + 1) : id).replace(/(?:\[[^\]]*\])+\s*$/, "");
23515
+ }
23516
+ /** True iff `id` (after normalization) is in the xhigh effort-policy set. */
23517
+ function shimDefaultsToXhigh(id) {
23518
+ return XHIGH_DEFAULT_SHIM_MODELS.includes(normalizeModelId(id));
23519
+ }
23520
+
23490
23521
  //#endregion
23491
23522
  //#region src/lib/mcp-capabilities.ts
23492
23523
  /**
@@ -23494,7 +23525,8 @@ async function countTokens(body, extraHeaders, callerSignal, retryTransient = fa
23494
23525
  *
23495
23526
  * Returns true iff Copilot's live catalog (`state.models?.data`) contains
23496
23527
  * ALL THREE peer models the consensus protocol needs:
23497
- * - `gpt-5.5` (codex_critic's model)
23528
+ * - an OpenAI frontier model (`gpt-5.6-sol`, else `gpt-5.5` — see
23529
+ * `resolveOpenAiFrontier`)
23498
23530
  * - `claude-opus-4-7` (opus_critic's model)
23499
23531
  * - any `gemini-3.X.*pro` (gemini_critic's model family — matches the
23500
23532
  * same regex `geminiAvailable()` uses, so the gate stays in sync if
@@ -23515,22 +23547,36 @@ function geminiAvailable(source = state) {
23515
23547
  if (!models) return false;
23516
23548
  return models.some((m) => /^gemini-3\..*pro/i.test(m.id));
23517
23549
  }
23550
+ /**
23551
+ * First available OpenAI frontier model in the live catalog (prefer
23552
+ * `gpt-5.6-sol`, fall back to `gpt-5.5`). Returns undefined when neither is
23553
+ * present. With `requireToolCalls`, only returns a model whose catalog entry
23554
+ * advertises `tool_calls`.
23555
+ */
23556
+ function resolveOpenAiFrontier(opts) {
23557
+ const models = state.models?.data;
23558
+ if (!models) return void 0;
23559
+ for (const id of OPENAI_FRONTIER_MODELS) {
23560
+ const found = models.find((m) => m.id === id);
23561
+ if (!found) continue;
23562
+ if (opts?.requireToolCalls && found.capabilities?.supports?.tool_calls !== true) continue;
23563
+ return id;
23564
+ }
23565
+ }
23518
23566
  function standInToolEnabled() {
23519
23567
  const models = state.models?.data;
23520
23568
  if (!models) return false;
23521
- const hasGpt55 = models.some((m) => m.id === "gpt-5.5");
23569
+ const hasOpenAi = resolveOpenAiFrontier() != null;
23522
23570
  const hasOpus = models.some((m) => m.id === "claude-opus-4-7" || m.id === "claude-opus-4.7");
23523
23571
  const hasGeminiPro = geminiAvailable();
23524
- return hasGpt55 && hasOpus && hasGeminiPro;
23572
+ return hasOpenAi && hasOpus && hasGeminiPro;
23525
23573
  }
23526
- const IMPLEMENTER_SUBAGENT_MODEL = "gpt-5.5";
23527
- /** Return the native implementer subagent model iff it is live with tool calls. */
23528
- function implementerSubagentModel() {
23529
- const models = state.models?.data;
23530
- if (!models) return void 0;
23531
- const found = models.find((m) => m.id === IMPLEMENTER_SUBAGENT_MODEL);
23532
- if (!found) return void 0;
23533
- return found.capabilities?.supports?.tool_calls === true ? IMPLEMENTER_SUBAGENT_MODEL : void 0;
23574
+ /** Return the model for the native OpenAI subagents (implementer, debugger,
23575
+ * qa-engineer) iff it is live with tool calls. Prefers `gpt-5.6-sol`, falls
23576
+ * back to `gpt-5.5`. One gate governs all three — they need the same frontier
23577
+ * model. */
23578
+ function nativeSubagentModel() {
23579
+ return resolveOpenAiFrontier({ requireToolCalls: true });
23534
23580
  }
23535
23581
  /**
23536
23582
  * Gate for the worker tools (`explore`, `review`, `implement`).
@@ -23542,7 +23588,7 @@ function implementerSubagentModel() {
23542
23588
  * true`. The worker loop is function-calling; a model that can't
23543
23589
  * emit tool_calls is unusable, so dormant-register (omit from
23544
23590
  * `tools/list`) keeps the surface honest. (The implement default
23545
- * `gpt-5.5` is NOT gated here — if it's absent, implement calls
23591
+ * `gpt-5.6-sol` is NOT gated here — if it's absent, implement calls
23546
23592
  * surface a clean resolve error rather than disabling all worker
23547
23593
  * tools, since explore/review still work.)
23548
23594
  * 2. The operator hasn't set `GH_ROUTER_DISABLE_WORKER_TOOLS=1`
@@ -23801,7 +23847,7 @@ function checkAuth(c) {
23801
23847
  /**
23802
23848
  * The 1M-context Opus 4.6 variant (`claude-opus-4.6-1m`, `max_prompt_tokens`
23803
23849
  * 936K). opus_critic prefers it so it can take large artifacts in one shot
23804
- * (the whole point of pairing it with gpt-5.5 as the big-window peers);
23850
+ * (the whole point of pairing it with gpt-5.6-sol as the big-window peers);
23805
23851
  * falls back to the 200K `claude-opus-4-6` when the catalog doesn't carry
23806
23852
  * a 1M 4.6 slug. The regex is version-anchored to 4.6 AND requires a
23807
23853
  * `-1m` suffix boundary (not a permissive `.*1m`), so it does NOT
@@ -24011,7 +24057,7 @@ async function predictedWindowOverflow(persona, prompt, context) {
24011
24057
  }
24012
24058
  if (tokens <= budget) return void 0;
24013
24059
  const opusHint = OPUS_1M_RE.test(id) ? "" : " / `opus_critic` (Opus-4.7 1M ≈ 936K tokens, when the enterprise catalog carries it)";
24014
- return `pre-flight rejected: this ${persona.toolNameHttp} brief is ≈${tokens} tokens, over the ${budget}-token budget for ${persona.model} (its ${maxPromptTokens}-token prompt window minus a ${PEER_PROMPT_TOKEN_RESERVE}-token framing reserve). Do NOT summarize or truncate the artifact to fit. Route the full artifact to a larger-window peer — \`codex_critic\` (gpt-5.5922K tokens)${opusHint} — or split it into focused sub-calls BY CONCERN and call them in parallel, then aggregate.`;
24060
+ return `pre-flight rejected: this ${persona.toolNameHttp} brief is ≈${tokens} tokens, over the ${budget}-token budget for ${persona.model} (its ${maxPromptTokens}-token prompt window minus a ${PEER_PROMPT_TOKEN_RESERVE}-token framing reserve). Do NOT summarize or truncate the artifact to fit. Route the full artifact to a larger-window peer — \`codex_critic\` (gpt-5.6-sol1M tokens)${opusHint} — or split it into focused sub-calls BY CONCERN and call them in parallel, then aggregate.`;
24015
24061
  }
24016
24062
  /**
24017
24063
  * JSON-path pre-flight predictedTooLong gate. Returns a JSON-RPC result
@@ -24070,7 +24116,7 @@ function jsonPathPreflightCap(body, scope) {
24070
24116
  * the `stand_in` orchestrator in `src/lib/stand-in.ts` — can reuse the
24071
24117
  * same per-endpoint request shaping without re-implementing it. The
24072
24118
  * stand_in tool needs to drive its own per-round system prompts across
24073
- * three concrete models (gpt-5.5, claude-opus-4-7, gemini-3.1-pro-preview),
24119
+ * three concrete models (gpt-5.6-sol, claude-opus-4-7, gemini-3.1-pro-preview),
24074
24120
  * each on a different endpoint; doing that with a `PersonaSpec` would
24075
24121
  * require either inventing throwaway personas per round or duplicating
24076
24122
  * the dispatch switch.
@@ -24761,13 +24807,13 @@ const ADVISOR_CLIENT_TOOL_NAME = "advisor";
24761
24807
  * times per session per cc-backup ADVISOR_TOOL_INSTRUCTIONS. */
24762
24808
  const ADVISOR_MAX_TURNS = 16;
24763
24809
  /** Default advisor model + reasoning effort. Per gemini-critic + user
24764
- * direction: hardcode to a cross-lab model (gpt-5.5 — Copilot's
24810
+ * direction: hardcode to a cross-lab model (gpt-5.6-sol — Copilot's
24765
24811
  * /responses-only flagship) at xhigh effort. The cross-lab choice
24766
24812
  * gives a true "second set of eyes" instead of the main model
24767
24813
  * reviewing itself; xhigh effort buys the deep-dive reasoning that
24768
24814
  * matches Anthropic's own ADVISOR (which uses a stronger reviewer
24769
24815
  * model — Opus 4.6/Sonnet 4.6 typically). */
24770
- const ADVISOR_DEFAULT_MODEL = "gpt-5.5";
24816
+ const ADVISOR_DEFAULT_MODEL = "gpt-5.6-sol";
24771
24817
  const ADVISOR_DEFAULT_EFFORT = "xhigh";
24772
24818
  /** ADVISOR_TOOL_INSTRUCTIONS verbatim from cc-backup
24773
24819
  * src/utils/advisor.ts — describes when the model should invoke
@@ -24864,7 +24910,7 @@ const ADVISOR_FALLBACK_MAX_TOKENS = 24e4;
24864
24910
  * budget is `max_prompt_tokens - reserve`. Generous on purpose: a 400
24865
24911
  * `model_max_prompt_tokens_exceeded` degrades to a silent advisor
24866
24912
  * fallback, and the marginal window we give up is irrelevant next to
24867
- * gpt-5.5's 922K. */
24913
+ * gpt-5.6-sol's ~1M. */
24868
24914
  const ADVISOR_PROMPT_TOKEN_RESERVE = 8e3;
24869
24915
  /**
24870
24916
  * Derive the TOKEN budget for the rendered transcript from the advisor
@@ -24883,7 +24929,7 @@ function resolveAdvisorMaxTokens(advisorModel) {
24883
24929
  /**
24884
24930
  * Render an Anthropic-shape conversation (messages array with
24885
24931
  * role/content blocks) as a single human-readable text blob. Used
24886
- * as the input to the advisor model (gpt-5.5 via /v1/responses
24932
+ * as the input to the advisor model (gpt-5.6-sol via /v1/responses
24887
24933
  * doesn't have a 1:1 mapping for Anthropic's tool_use/tool_result
24888
24934
  * blocks; serializing to text preserves the semantics — the advisor
24889
24935
  * just needs to READ the conversation, not produce more of it).
@@ -24965,7 +25011,7 @@ function truncateTailToUnits(text, maxUnits, measure) {
24965
25011
  * Routes by model family:
24966
25012
  * - gpt-5.x / codex / o-series (have `/responses` in supported_endpoints):
24967
25013
  * use createResponses with `reasoning.effort` set. This is the
24968
- * default path — gpt-5.5 at xhigh effort.
25014
+ * default path — gpt-5.6-sol at xhigh effort.
24969
25015
  * - claude-* (no `/responses`): fall back to createMessages.
24970
25016
  *
24971
25017
  * The conversation is serialized to text via renderConversationAsText
@@ -27068,7 +27114,7 @@ function advisorTool(getMessages) {
27068
27114
  return {
27069
27115
  name: "advisor",
27070
27116
  label: "Advisor",
27071
- description: "Consult a stronger reviewer model (cross-lab: gpt-5.5 xhigh by default) on a specific concern. Use BEFORE substantive work, WHEN stuck, or WHEN considering a change of approach. The advisor automatically receives the recent conversation transcript as context — give it a focused `concern`, not background.",
27117
+ description: "Consult a stronger reviewer model (cross-lab: gpt-5.6-sol xhigh by default) on a specific concern. Use BEFORE substantive work, WHEN stuck, or WHEN considering a change of approach. The advisor automatically receives the recent conversation transcript as context — give it a focused `concern`, not background.",
27072
27118
  parameters: ADVISOR_PARAMS,
27073
27119
  async execute(_toolCallId, params, signal) {
27074
27120
  if (networkDisabled()) throw new Error("rejected: network disabled");
@@ -27563,7 +27609,7 @@ const DEFAULT_THINKING = "xhigh";
27563
27609
  * (via `DEFAULT_THINKING`) — a strong, NATIVE (no-shim) tool-caller for repo
27564
27610
  * research. Native Claude models run as workers over `/chat/completions`, the
27565
27611
  * same path proven by `PLAN_DEFAULT_MODEL` (claude-opus-4.8). Like `implement`'s
27566
- * gpt-5.5 this is NOT a `workerToolsEnabled` gate input — if absent (e.g. a
27612
+ * gpt-5.6-sol this is NOT a `workerToolsEnabled` gate input — if absent (e.g. a
27567
27613
  * non-enterprise tier) `explore` errors helpfully at call time rather than
27568
27614
  * vanishing the whole worker surface. The caller (the main model) overrides
27569
27615
  * BOTH the model and the reasoning per call via the `model` / `thinking` args. */
@@ -27571,7 +27617,7 @@ const EXPLORE_DEFAULT_MODEL = "claude-sonnet-5";
27571
27617
  /** Default model + thinking for the READ-ONLY `review` mode.
27572
27618
  * `gemini-3.1-pro-preview` at `xhigh` (clamped to `high` at call time — gemini
27573
27619
  * advertises no xhigh). DELIBERATELY DECORRELATED FROM THE IMPLEMENTER: bounded
27574
- * implementation now defaults to gpt-5.5 (OpenAI) — both the `implement` worker
27620
+ * implementation now defaults to gpt-5.6-sol (OpenAI) — both the `implement` worker
27575
27621
  * and the native `implementer` subagent — and the main orchestrator is Opus
27576
27622
  * (Anthropic), so review runs on a THIRD lab (Google) to maximize blind-spot
27577
27623
  * diversity. A reviewer sharing the implementer's lab catches a correlated slice
@@ -27582,12 +27628,12 @@ const EXPLORE_DEFAULT_MODEL = "claude-sonnet-5";
27582
27628
  * `model` arg (e.g. `claude-opus-4.8` for an Anthropic-lab reviewer). */
27583
27629
  const REVIEW_DEFAULT_MODEL = "gemini-3.1-pro-preview";
27584
27630
  const REVIEW_DEFAULT_THINKING = "xhigh";
27585
- /** Default model + thinking for the READ+WRITE `implement` mode. `gpt-5.5`
27631
+ /** Default model + thinking for the READ+WRITE `implement` mode. `gpt-5.6-sol`
27586
27632
  * at `xhigh` — the strongest reasoning tier in the catalog, 1M+ context,
27587
27633
  * routed through `/responses` by the stream-fn endpoint split. Coding edits
27588
27634
  * benefit from maximum reasoning; the higher per-call cost is justified for
27589
27635
  * autonomous implementation. An explicit `opts.model` still wins. */
27590
- const IMPLEMENT_DEFAULT_MODEL = "gpt-5.5";
27636
+ const IMPLEMENT_DEFAULT_MODEL = "gpt-5.6-sol";
27591
27637
  const IMPLEMENT_DEFAULT_THINKING = "xhigh";
27592
27638
  /** Default model for `browse` mode. `gpt-5.4-mini` — the Gate-B-winning
27593
27639
  * browse model (small + fast enough to drive a tab at human pace, with
@@ -27612,7 +27658,7 @@ const BROWSE_DEFAULT_THINKING = "high";
27612
27658
  * Copilot catalog id (the worker resolver exact-matches `catalog.id`, it does
27613
27659
  * NOT translate the Anthropic dashed slug). Falls back to a helpful
27614
27660
  * unknown-model error at call time if opus-4.8 isn't in the catalog (e.g. a
27615
- * non-enterprise tier), exactly like `implement`'s `gpt-5.5`. Caller's `model`
27661
+ * non-enterprise tier), exactly like `implement`'s `gpt-5.6-sol`. Caller's `model`
27616
27662
  * arg still wins. */
27617
27663
  const PLAN_DEFAULT_MODEL = "claude-opus-4.8";
27618
27664
  const PLAN_DEFAULT_THINKING = "xhigh";
@@ -27967,8 +28013,8 @@ function appendPlanReminder(messages, planState) {
27967
28013
  */
27968
28014
  const STAND_IN_MODELS = Object.freeze([
27969
28015
  {
27970
- key: "gpt-5.5",
27971
- model: "gpt-5.5",
28016
+ key: "gpt-5.6-sol",
28017
+ model: "gpt-5.6-sol",
27972
28018
  endpoint: "/v1/responses",
27973
28019
  effort: "xhigh"
27974
28020
  },
@@ -28093,10 +28139,11 @@ async function runStandIn(input, signal) {
28093
28139
  };
28094
28140
  }
28095
28141
  async function callAndParse(cfg, instructions, userText, signal) {
28142
+ const model = cfg.key === "gpt-5.6-sol" ? resolveOpenAiFrontier() ?? cfg.model : cfg.model;
28096
28143
  let raw;
28097
28144
  try {
28098
28145
  raw = await dispatchModelCall({
28099
- model: cfg.model,
28146
+ model,
28100
28147
  endpoint: cfg.endpoint,
28101
28148
  instructions,
28102
28149
  userText,
@@ -28120,7 +28167,7 @@ async function callAndParse(cfg, instructions, userText, signal) {
28120
28167
  let retryRaw;
28121
28168
  try {
28122
28169
  retryRaw = await dispatchModelCall({
28123
- model: cfg.model,
28170
+ model,
28124
28171
  endpoint: cfg.endpoint,
28125
28172
  instructions,
28126
28173
  userText: userText + RETRY_PROMPT_SUFFIX,
@@ -29659,7 +29706,7 @@ async function decideStopHook(input) {
29659
29706
  * `markReviewed` runs BEFORE the spawn so a crashing spawn still records the
29660
29707
  * debounce (an identical tree won't re-trigger on the next stop). The review is
29661
29708
  * gated on the diff CHANGING since the last review — without it, every stop of
29662
- * an unchanged tree would re-spend a background gpt-5.5 review.
29709
+ * an unchanged tree would re-spend a background gpt-5.6-sol review.
29663
29710
  *
29664
29711
  * The whole body is bounded by a short timeout (the stores are local temp files
29665
29712
  * that complete in well under a millisecond in practice, so the timeout never
@@ -29945,7 +29992,7 @@ const CRITIC_INSTRUCTIONS = "You are a cross-lab code reviewer. Review the diff
29945
29992
  function labPersona(lab) {
29946
29993
  switch (lab.toLowerCase()) {
29947
29994
  case "openai": return {
29948
- model: "gpt-5.5",
29995
+ model: "gpt-5.6-sol",
29949
29996
  endpoint: "/v1/responses",
29950
29997
  effort: "high"
29951
29998
  };
@@ -30172,7 +30219,7 @@ Cold-start contract for the lead orchestrator (Opus):
30172
30219
  (c) any prior decisions I should not relitigate.
30173
30220
  If your brief lacks (a), I will reply with a one-line request for the artifact instead of speculating.
30174
30221
  `.trim();
30175
- const CRITIC_BASE = `You are codex-critic, an adversarial reviewer running on gpt-5.5. Your single job is to overcome the lead orchestrator's blind spots — assumptions it didn't notice it was making, failure modes it didn't enumerate, alternatives it didn't consider.
30222
+ const CRITIC_BASE = `You are codex-critic, an adversarial reviewer running on gpt-5.6-sol. Your single job is to overcome the lead orchestrator's blind spots — assumptions it didn't notice it was making, failure modes it didn't enumerate, alternatives it didn't consider.
30176
30223
 
30177
30224
  You are NOT a helpful assistant. You are NOT a coach. Sycophancy is the failure mode you exist to fight. Manufactured contrarianism is a different failure of the same shape — silence on good work is a valid and welcome answer.
30178
30225
 
@@ -30262,7 +30309,7 @@ Resilience reminder:
30262
30309
  If your session terminates abnormally before "Status: complete", the lead will retry once. On recovery, ask the lead to confirm what's already been done before re-applying changes — duplicate edits are worse than a slow restart.`;
30263
30310
  const OPUS_CRITIC_BASE = `You are opus-critic, a fresh-context same-lab adversarial reviewer running on Opus 4.6. The lead orchestrator that just delegated to you runs newer Opus-family context, but you are NOT the lead. You did not see the lead's reasoning trace. You only see the brief.
30264
30311
 
30265
- Your job is to spot what the lead missed because of cognitive momentum, sunk-cost on a plan, or motivated reasoning toward a particular fix. Your blind-spot diversification is LIMITED compared to codex-critic (gpt-5.5) and gemini-critic (gemini-3.1-pro), same lab, adjacent model family, related priors. Use that honestly: don't pretend to find a different perspective when the obvious read is "the lead got it right." Silence on good work is a valid and welcome answer.
30312
+ Your job is to spot what the lead missed because of cognitive momentum, sunk-cost on a plan, or motivated reasoning toward a particular fix. Your blind-spot diversification is LIMITED compared to codex-critic (gpt-5.6-sol) and gemini-critic (gemini-3.1-pro), same lab, adjacent model family, related priors. Use that honestly: don't pretend to find a different perspective when the obvious read is "the lead got it right." Silence on good work is a valid and welcome answer.
30266
30313
 
30267
30314
  Sycophancy is the failure mode you exist to fight. Manufactured contrarianism is a different failure of the same shape — do neither.
30268
30315
 
@@ -30273,9 +30320,9 @@ const PERSONAS_READ = Object.freeze([
30273
30320
  {
30274
30321
  agentName: "codex-critic",
30275
30322
  toolNameHttp: "codex_critic",
30276
- model: "gpt-5.5",
30323
+ model: "gpt-5.6-sol",
30277
30324
  endpoint: "/v1/responses",
30278
- description: "Adversarial architecture and design critic backed by gpt-5.5 (OpenAI, ≈922K-token input window), the strongest cross-lab reasoning critic in this surface. It reviews plans, designs, tradeoffs, and large code-change proposals for unsound assumptions, missing failure modes, and overlooked alternatives, then returns a calibrated objection or `no material objection`. Use when a decision or design needs a different-lab strategic challenge before implementation or merge. Not for line-level bug finding in a concrete diff or file, use codex_reviewer or gemini_reviewer; pass the artifact and constraints verbatim.",
30325
+ description: "Adversarial architecture and design critic backed by gpt-5.6-sol (OpenAI, ~1M-token input window), the strongest cross-lab reasoning critic in this surface. It reviews plans, designs, tradeoffs, and large code-change proposals for unsound assumptions, missing failure modes, and overlooked alternatives, then returns a calibrated objection or `no material objection`. Use when a decision or design needs a different-lab strategic challenge before implementation or merge. Not for line-level bug finding in a concrete diff or file, use codex_reviewer or gemini_reviewer; pass the artifact and constraints verbatim.",
30279
30326
  baseInstructions: CRITIC_BASE,
30280
30327
  agentPrompt: "",
30281
30328
  writeCapable: false,
@@ -30466,6 +30513,9 @@ function buildAgentPrompt(persona, opts) {
30466
30513
  * of the live catalog). The raw `mcp__<workers>__*` tools are named only
30467
30514
  * as the guarded plumbing the dispatchers call, never as a main-agent
30468
30515
  * interface.
30516
+ * - Always names the implementer/debugger/qa-engineer native subagents
30517
+ * (they are injected unconditionally); the implementer-vs-`worker-implement`
30518
+ * contrast is added only when worker tools are available.
30469
30519
  * - Conditionally lists stand_in only when `standInAvailable`
30470
30520
  * (mirrors `standInToolEnabled()`).
30471
30521
  * - Conditionally lists gh-first-mate only when `agentToolsAvailable`
@@ -30488,7 +30538,7 @@ function buildPeerAwarenessSnippet(opts) {
30488
30538
  const fleetKey = key("fleet");
30489
30539
  const compoundBrowseAvailable = opts.browseAvailable && opts.compoundBrowseAvailable;
30490
30540
  const powerBrowseAvailable = opts.browseAvailable && opts.powerBrowseAvailable === true;
30491
- const criticList = ["`codex_critic` (gpt-5.5)", "`codex_reviewer` (gpt-5.3-codex)"];
30541
+ const criticList = ["`codex_critic` (gpt-5.6-sol)", "`codex_reviewer` (gpt-5.3-codex)"];
30492
30542
  if (opts.geminiAvailable) {
30493
30543
  criticList.push("`gemini_reviewer` (gemini-3.1-pro, line-level code review)");
30494
30544
  criticList.push("`gemini_critic` (gemini-3.1-pro)");
@@ -30497,7 +30547,8 @@ function buildPeerAwarenessSnippet(opts) {
30497
30547
  const codexCliClause = opts.codexCli ? " `mcp__codex-cli__codex` dispatches to `codex-implementer` (gpt-5.3-codex with workspace-write) for end-to-end coding tasks." : "";
30498
30548
  const para2Parts = [`\`mcp__${searchKey}__code\` is the one-stop code search (no extra model call). Its DEFAULT mode (or \`mode:"semantic"\`) ranks by MEANING via ColBERT over a per-workspace index, the first thing to reach for on intent/concept questions ("where is retry/backoff handled", "how does auth work"); when that index isn't ready it transparently falls back to lexical (the response \`source\` says which engine ran). Forced modes cover the rest: \`lexical\` (BM25F-ranked + tree-sitter, best for exact symbols), \`exact\`, \`regex\`, \`complete\` (exhaustive set), \`ast_pattern\`+\`ast_lang\` for multi-line AST shapes, \`scan\` for a whole-workspace symbol outline, \`multiline\` for cross-line regex. Multiple queries can run in a single turn. The index covers code-shaped files; for unstructured files (logs, \`.csv\`, \`.env*\`, config-only wiring), \`grep\`/\`glob\` still apply.`];
30499
30549
  if (opts.workerToolsAvailable) para2Parts.push(`\`worker-*\` are background Agent subagents (subagent_type) that run the matching worker in its own context and deliver the result as a completion notification, so a long run never blocks the turn: \`worker-explore\` (read-only research), \`worker-review\` (reads the code to verify a change or claim), \`worker-plan\` (ordered implementation plan), \`worker-implement\` (edit/write/bash; \`worktree: true\` isolates in a git worktree and returns the diff), \`worker-test\` (independent test author). The raw \`mcp__${workersKey}__*\` tools they call are guarded (a direct main-thread call is redirected to the matching agent); Workers themselves have \`code_search\`.`);
30500
- if (opts.workerToolsAvailable && opts.implementerAvailable) para2Parts.push(`For a bounded, well-scoped implementation, prefer the \`implementer\` subagent (Task, runs on gpt-5.5) over \`worker-implement\`; reach for \`worker-implement\` only when you specifically need git-worktree isolation, parallel variants, or a throwaway experiment.`);
30550
+ para2Parts.push(`Three native subagents are always available (Task): \`implementer\` (bounded implementation), \`debugger\` (reproduce + isolate a failure's root cause), and \`qa-engineer\` (review + author/run tests), each in its own context so the lead's context stays free; on gpt-5.6-sol when in the catalog, else the lead's model.`);
30551
+ if (opts.workerToolsAvailable) para2Parts.push(`For a bounded, well-scoped implementation, prefer the \`implementer\` subagent over \`worker-implement\`; reach for \`worker-implement\` only when you specifically need git-worktree isolation, parallel variants, or a throwaway experiment.`);
30501
30552
  if (opts.workerToolsAvailable) para2Parts.push(`\`mcp__${orchestrateKey}__decompose\` composes an open-ended ask into a typed, VERIFIED workflow IR (a strong driver decorrelated by a cross-lab critic, so the decompose step isn't a single point of failure), and \`mcp__${orchestrateKey}__run_workflow\` executes that IR through a frozen kernel delivering max(orchestrated, baseline) over a sealed executable gate, so it never ships worse than a plain single-model run. \`mcp__${orchestrateKey}__verify_workflow\` checks an IR's floor invariants before you run it, and \`mcp__${orchestrateKey}__attest_step\` audits that a finished run's producers were each checked by a different lab. They suit non-trivial, role-separated asks; a trivial ask does not need them.`);
30502
30553
  else para2Parts.push(`\`mcp__${orchestrateKey}__verify_workflow\` statically checks a workflow IR's floor invariants and \`mcp__${orchestrateKey}__attest_step\` audits a run's cross-lab lineage (the \`decompose\`/\`run_workflow\` composer + kernel need the worker backend, unavailable here).`);
30503
30554
  if (opts.workerToolsAvailable) {
@@ -30808,7 +30859,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
30808
30859
  toolNameHttp: "implement",
30809
30860
  group: "workers",
30810
30861
  capability: "worker",
30811
- description: "Runs as the background `worker-implement` agent. Dispatch via the Agent tool (subagent_type: worker-implement) so the turn is never blocked; the result arrives as a completion notification. Delegates a scoped coding task to 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`). It has the explore read-only tools plus edit, write, bash, and codex_review, and it returns its final text with any changed files or worktree diff. Use for bounded implementation work that may take a while or benefits from isolated worker context. Not for pure research, planning, review, or independent test authoring; use explore, plan, review, or test for those scopes. With `worktree: false` (default) edits happen in place, so concurrent implement calls and lead edits to the same files can race. With `worktree: true` it runs in an isolated git worktree and returns the diff; this errors if the workspace is not a git repository.",
30862
+ description: "Runs as the background `worker-implement` agent. Dispatch via the Agent tool (subagent_type: worker-implement) so the turn is never blocked; the result arrives as a completion notification. Delegates a scoped coding task to an autonomous worker (Pi runtime; default model `gpt-5.6-sol` at xhigh reasoning, override via `model` with any Copilot-catalog model that advertises `tool_calls`). It has the explore read-only tools plus edit, write, bash, and codex_review, and it returns its final text with any changed files or worktree diff. Use for bounded implementation work that may take a while or benefits from isolated worker context. Not for pure research, planning, review, or independent test authoring; use explore, plan, review, or test for those scopes. With `worktree: false` (default) edits happen in place, so concurrent implement calls and lead edits to the same files can race. With `worktree: true` it runs in an isolated git worktree and returns the diff; this errors if the workspace is not a git repository.",
30812
30863
  inputSchema: {
30813
30864
  type: "object",
30814
30865
  required: ["prompt"],
@@ -30824,7 +30875,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
30824
30875
  },
30825
30876
  model: {
30826
30877
  type: "string",
30827
- 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."
30878
+ description: "Optional Copilot catalog model id (defaults to gpt-5.6-sol). Must advertise tool_calls support; the engine emits an isError envelope listing the eligible catalog models on mismatch."
30828
30879
  },
30829
30880
  thinking: {
30830
30881
  type: "string",
@@ -30956,7 +31007,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
30956
31007
  toolNameHttp: "test",
30957
31008
  group: "workers",
30958
31009
  capability: "worker",
30959
- description: "Runs as the background `worker-test` agent. Dispatch via the Agent tool (subagent_type: worker-test) so the turn is never blocked; the result arrives as a completion notification. Independent adversarial test authoring 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`). It has the same read/write toolset as implement and writes tests that try to break the implementation through edge cases, error paths, and acceptance criteria, then runs them and reports pass/fail. Use when a separate test author should challenge an implementation without modifying the production code to make tests pass. Not for implementing fixes, broad research, or code review; use implement, explore, or review for those scopes. With `worktree: true` it runs in an isolated git worktree and returns the test diff; this errors if the workspace is not a git repository.",
31010
+ description: "Runs as the background `worker-test` agent. Dispatch via the Agent tool (subagent_type: worker-test) so the turn is never blocked; the result arrives as a completion notification. Independent adversarial test authoring by an autonomous worker (Pi runtime; default model `gpt-5.6-sol` at xhigh reasoning, override via `model` with any Copilot-catalog model that advertises `tool_calls`). It has the same read/write toolset as implement and writes tests that try to break the implementation through edge cases, error paths, and acceptance criteria, then runs them and reports pass/fail. Use when a separate test author should challenge an implementation without modifying the production code to make tests pass. Not for implementing fixes, broad research, or code review; use implement, explore, or review for those scopes. With `worktree: true` it runs in an isolated git worktree and returns the test diff; this errors if the workspace is not a git repository.",
30960
31011
  inputSchema: {
30961
31012
  type: "object",
30962
31013
  required: ["prompt"],
@@ -30972,7 +31023,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
30972
31023
  },
30973
31024
  model: {
30974
31025
  type: "string",
30975
- 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."
31026
+ description: "Optional Copilot catalog model id (defaults to gpt-5.6-sol). Must advertise tool_calls support; the engine emits an isError envelope listing the eligible catalog models on mismatch."
30976
31027
  },
30977
31028
  thinking: {
30978
31029
  type: "string",
@@ -31238,7 +31289,7 @@ const NON_PERSONA_MCP_TOOLS = Object.freeze([
31238
31289
  toolNameHttp: "stand_in",
31239
31290
  group: "decide",
31240
31291
  capability: "stand_in",
31241
- description: "Three-lab away-mode decision tiebreak advisor for moments when the user is unavailable and the agent is stuck between two or more concrete options. It polls gpt-5.5, Opus 4.7, and gemini-3.1-pro-preview across blind and informed voting rounds, then returns a ranked-choice verdict such as consensus, majority, no_consensus, or need_more_info. Use when work would otherwise halt on a bounded choice the user would normally make. Not for code review, open-ended exploration, single-model second opinions, or bypassing confirmation on irreversible actions such as push, delete, drop, or deploy; use peer-review-coordinator or the individual critics for review and still ask the user for destructive actions.",
31292
+ description: "Three-lab away-mode decision tiebreak advisor for moments when the user is unavailable and the agent is stuck between two or more concrete options. It polls gpt-5.6-sol, Opus 4.7, and gemini-3.1-pro-preview across blind and informed voting rounds, then returns a ranked-choice verdict such as consensus, majority, no_consensus, or need_more_info. Use when work would otherwise halt on a bounded choice the user would normally make. Not for code review, open-ended exploration, single-model second opinions, or bypassing confirmation on irreversible actions such as push, delete, drop, or deploy; use peer-review-coordinator or the individual critics for review and still ask the user for destructive actions.",
31242
31293
  inputSchema: {
31243
31294
  type: "object",
31244
31295
  required: ["decision", "options"],
@@ -31632,5 +31683,5 @@ async function runStandInToolCall(args, signal) {
31632
31683
  }
31633
31684
 
31634
31685
  //#endregion
31635
- export { isAdvisorRequested as $, cacheModels as $t, liveExec as A, hasSupportedBrowserInstalled as At, withNoOutputRetry as B, DEFAULT_CODEX_MODEL_FALLBACKS as Bt, fileReviewDebounce as C, pickEndpoint as Ct, stopGateEnabledForRepo as D, readResponseBodyCapped as Dt, repoRoot as E, MAX_RESPONSE_BODY_BYTES as Et, IMPLEMENT_DEFAULT_MODEL as F, ArtifactClient as Ft, vscodeRipgrepPath as G, pickClaudeDefault as Gt, buildToolbeltAwareness as H, UPSTREAM_FETCH_TIMEOUT_MS as Ht, PLAN_DEFAULT_MODEL as I, collapsePathKeys as It, searchWeb as J, setupCopilotToken as Jt, TOOLBELT_TOOLS$1 as K, getPackageVersion as Kt, REVIEW_DEFAULT_MODEL as L, toolbeltPathOverride as Lt, BROWSE_DEFAULT_MODEL as M, extractTarGzMember as Mt, DEFAULT_MODEL as N, extractZipMember as Nt, stopReviewStateDir as O, parseJsonOrDiagnose as Ot, EXPLORE_DEFAULT_MODEL as P, shouldUseInsecureTls as Pt, injectAdvisorTool as Q, cacheCopilotVersion as Qt, appendPlanReminder as R, DEFAULT_CLAUDE_MODEL_FALLBACKS as Rt, fileLastPromptStore as S, resolveMcpToolTimeoutMs as St, repoFingerprint as T, createChatCompletions as Tt, toolbeltEnabled as U, UPSTREAM_INACTIVITY_TIMEOUT_MS as Ut, availableToolCommands as V, DEFAULT_PORT as Vt, toolbeltSkipSet as W, generateRandomPort as Wt, ADVISOR_TOOL_INSTRUCTIONS as X, setupGitHubToken as Xt, ADVISOR_INTERNAL_TOOL_NAME as Y, setupGitHubAgentToken as Yt, buildAdvisorStream as Z, tryRefreshAndRetry as Zt, stopGateId as _, workerToolsEnabled as _t, buildPeerAwarenessSnippet as a, sleep as an, relayAnthropicStream as at, fileBaselineStore as b, getTokenCount as bt, buildArtifactOpenHookCommand as c, HTTPError as cn, agentToolsEnabled as ct, captureLaunchBaseline as d, copilotBaseUrl as dn, browserCompoundToolsEnabled as dt, cacheVSCodeVersion as en, buildAnthropicErrorEvent as et, decideStopHook as f, copilotHeaders as fn, browserToolsEnabled as ft, stopGateDisabled as g, standInToolEnabled as gt, launchBaselineKey as h, implementerSubagentModel as ht, buildAgentPrompt as i, resolveModel as in, readIteratorWithTimeout as it, resolveSealedGate as j, provisionAndIndexColbert as jt, trustRepo as k, provisionBrowserAssets as kt, buildSessionBindHookCommand as l, forwardError as ln, artifactToolsEnabled as lt, injectStopHookIntoSettingsFile as m, state as mn, geminiAvailable as mt, MCP_GROUPS as n, isNullish as nn, isControllerClosedError as nt, buildPeerAwarenessSummary as o, getModels as on, handleMcpDelete as ot, fileBlockBudget as p, githubHeaders as pn, fleetToolsEnabled as pt, assetFor as q, withInstallLock as qt, assertMcpToolSurfaceConsistent as r, resolveCodexModel as rn, logStreamError as rt, personasFor as s, fetchWithTransientRetry as sn, handleMcpPost as st, GROUP_META as t, filterBetaHeader as tn, buildOpenAIErrorEvent as tt, buildStopHookCommand as u, GITHUB_API_BASE_URL as un, browseAgentEnabled as ut, stopGatePlanMode as v, countTokens as vt, isSubagentContext as w, createResponses as wt, fileFindingsStore as x, assembleResponsesPayload as xt, stopReviewEnabled as y, createMessages as yt, runWorkerAgent as z, DEFAULT_CODEX_MODEL as zt };
31636
- //# sourceMappingURL=peer-mcp-personas-BCGYWok0.js.map
31686
+ export { isAdvisorRequested as $, cacheCopilotVersion as $t, liveExec as A, provisionBrowserAssets as At, withNoOutputRetry as B, DEFAULT_CODEX_MODEL as Bt, fileReviewDebounce as C, resolveMcpToolTimeoutMs as Ct, stopGateEnabledForRepo as D, MAX_RESPONSE_BODY_BYTES as Dt, repoRoot as E, createChatCompletions as Et, IMPLEMENT_DEFAULT_MODEL as F, shouldUseInsecureTls as Ft, vscodeRipgrepPath as G, generateRandomPort as Gt, buildToolbeltAwareness as H, DEFAULT_PORT as Ht, PLAN_DEFAULT_MODEL as I, ArtifactClient as It, searchWeb as J, withInstallLock as Jt, TOOLBELT_TOOLS$1 as K, pickClaudeDefault as Kt, REVIEW_DEFAULT_MODEL as L, collapsePathKeys as Lt, BROWSE_DEFAULT_MODEL as M, provisionAndIndexColbert as Mt, DEFAULT_MODEL as N, extractTarGzMember as Nt, stopReviewStateDir as O, readResponseBodyCapped as Ot, EXPLORE_DEFAULT_MODEL as P, extractZipMember as Pt, injectAdvisorTool as Q, tryRefreshAndRetry as Qt, appendPlanReminder as R, toolbeltPathOverride as Rt, fileLastPromptStore as S, assembleResponsesPayload as St, repoFingerprint as T, createResponses as Tt, toolbeltEnabled as U, UPSTREAM_FETCH_TIMEOUT_MS as Ut, availableToolCommands as V, DEFAULT_CODEX_MODEL_FALLBACKS as Vt, toolbeltSkipSet as W, UPSTREAM_INACTIVITY_TIMEOUT_MS as Wt, ADVISOR_TOOL_INSTRUCTIONS as X, setupGitHubAgentToken as Xt, ADVISOR_INTERNAL_TOOL_NAME as Y, setupCopilotToken as Yt, buildAdvisorStream as Z, setupGitHubToken as Zt, stopGateId as _, workerToolsEnabled as _t, buildPeerAwarenessSnippet as a, resolveModel as an, relayAnthropicStream as at, fileBaselineStore as b, createMessages as bt, buildArtifactOpenHookCommand as c, fetchWithTransientRetry as cn, agentToolsEnabled as ct, captureLaunchBaseline as d, GITHUB_API_BASE_URL as dn, browserCompoundToolsEnabled as dt, cacheModels as en, buildAnthropicErrorEvent as et, decideStopHook as f, copilotBaseUrl as fn, browserToolsEnabled as ft, stopGateDisabled as g, standInToolEnabled as gt, launchBaselineKey as h, state as hn, nativeSubagentModel as ht, buildAgentPrompt as i, resolveCodexModel as in, readIteratorWithTimeout as it, resolveSealedGate as j, hasSupportedBrowserInstalled as jt, trustRepo as k, parseJsonOrDiagnose as kt, buildSessionBindHookCommand as l, HTTPError as ln, artifactToolsEnabled as lt, injectStopHookIntoSettingsFile as m, githubHeaders as mn, geminiAvailable as mt, MCP_GROUPS as n, filterBetaHeader as nn, isControllerClosedError as nt, buildPeerAwarenessSummary as o, sleep as on, handleMcpDelete as ot, fileBlockBudget as p, copilotHeaders as pn, fleetToolsEnabled as pt, assetFor as q, getPackageVersion as qt, assertMcpToolSurfaceConsistent as r, isNullish as rn, logStreamError as rt, personasFor as s, getModels as sn, handleMcpPost as st, GROUP_META as t, cacheVSCodeVersion as tn, buildOpenAIErrorEvent as tt, buildStopHookCommand as u, forwardError as un, browseAgentEnabled as ut, stopGatePlanMode as v, shimDefaultsToXhigh as vt, isSubagentContext as w, pickEndpoint as wt, fileFindingsStore as x, getTokenCount as xt, stopReviewEnabled as y, countTokens as yt, runWorkerAgent as z, DEFAULT_CLAUDE_MODEL_FALLBACKS as zt };
31687
+ //# sourceMappingURL=peer-mcp-personas-BtQi-dF-.js.map