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.
- package/README.md +5 -5
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/{engine-cUomEg92.js → engine-DOOYh35O.js} +4 -4
- package/dist/{lifecycle-L7Y7RJl4.js → lifecycle-ClliSC-c.js} +2 -2
- package/dist/{lifecycle-BAug_A5A.js → lifecycle-D0n3hXUT.js} +2 -2
- package/dist/{lifecycle-ChPBRt6K.js → lifecycle-DrDEjx_c.js} +2 -2
- package/dist/{lifecycle-ChPBRt6K.js.map → lifecycle-DrDEjx_c.js.map} +1 -1
- package/dist/{lifecycle-BUXxiltc.js → lifecycle-Dvr3pGGG.js} +2 -2
- package/dist/{lifecycle-BUXxiltc.js.map → lifecycle-Dvr3pGGG.js.map} +1 -1
- package/dist/main.js +54 -34
- package/dist/main.js.map +1 -1
- package/dist/{paths-CTlT1nTo.js → paths-BZPgxKUl.js} +10 -10
- package/dist/{paths-CTlT1nTo.js.map → paths-BZPgxKUl.js.map} +1 -1
- package/dist/paths-CDYvyApX.js +3 -0
- package/dist/{peer-mcp-personas-BCGYWok0.js → peer-mcp-personas-BtQi-dF-.js} +112 -61
- package/dist/peer-mcp-personas-BtQi-dF-.js.map +1 -0
- package/package.json +1 -1
- package/dist/paths-DN3O54iE.js +0 -3
- package/dist/peer-mcp-personas-BCGYWok0.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as PATHS } from "./paths-
|
|
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-
|
|
3
|
-
import { i as registerExitHandlers, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-
|
|
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.
|
|
1076
|
-
* `/responses` model; the fallback chain
|
|
1077
|
-
*
|
|
1078
|
-
* "best available `/responses` model"
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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-
|
|
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`
|
|
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
|
|
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
|
|
23572
|
+
return hasOpenAi && hasOpus && hasGeminiPro;
|
|
23525
23573
|
}
|
|
23526
|
-
|
|
23527
|
-
|
|
23528
|
-
|
|
23529
|
-
|
|
23530
|
-
|
|
23531
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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-sol ≈ 1M 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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
27971
|
-
model: "gpt-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
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
30323
|
+
model: "gpt-5.6-sol",
|
|
30277
30324
|
endpoint: "/v1/responses",
|
|
30278
|
-
description: "Adversarial architecture and design critic backed by gpt-5.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 $,
|
|
31636
|
-
//# sourceMappingURL=peer-mcp-personas-
|
|
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
|