github-router 0.3.306 → 0.3.309

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/{attribution-settings-C5ScaOmz.js → attribution-settings-Ce6s_01h.js} +62 -63
  2. package/dist/attribution-settings-Ce6s_01h.js.map +1 -0
  3. package/dist/{auth-D9kUMR37.js → auth-O_UG1ABO.js} +3 -3
  4. package/dist/{auth-D9kUMR37.js.map → auth-O_UG1ABO.js.map} +1 -1
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/{check-usage-C7MfBexN.js → check-usage-dicJOWML.js} +4 -4
  7. package/dist/{check-usage-C7MfBexN.js.map → check-usage-dicJOWML.js.map} +1 -1
  8. package/dist/{claude-CsGXL12X.js → claude-i4L8GZbI.js} +33 -30
  9. package/dist/claude-i4L8GZbI.js.map +1 -0
  10. package/dist/{codex-DpwyLLTp.js → codex-GZGqYj0M.js} +5 -5
  11. package/dist/{codex-DpwyLLTp.js.map → codex-GZGqYj0M.js.map} +1 -1
  12. package/dist/{debug-CDu4RIgW.js → debug-2PgImRnr.js} +2 -2
  13. package/dist/{debug-CDu4RIgW.js.map → debug-2PgImRnr.js.map} +1 -1
  14. package/dist/engine-DMnMGgeZ.js +2 -0
  15. package/dist/{fast-profile-contract-OuZQaGif.js → fast-profile-contract-BWCJy6iL.js} +6 -4
  16. package/dist/fast-profile-contract-BWCJy6iL.js.map +1 -0
  17. package/dist/{gate-discovery-BVLZH7-6.js → gate-discovery-DkJf7d-y.js} +5 -5
  18. package/dist/{gate-discovery-BVLZH7-6.js.map → gate-discovery-DkJf7d-y.js.map} +1 -1
  19. package/dist/{get-copilot-usage-CNMvWsMD.js → get-copilot-usage-Cjy8TiFf.js} +2 -2
  20. package/dist/{get-copilot-usage-CNMvWsMD.js.map → get-copilot-usage-Cjy8TiFf.js.map} +1 -1
  21. package/dist/hooks.mjs +28 -12
  22. package/dist/hooks.sha256 +1 -1
  23. package/dist/{internal-artifact-open-wYwuChib.js → internal-artifact-open-CxeIfsW_.js} +2 -2
  24. package/dist/{internal-artifact-open-wYwuChib.js.map → internal-artifact-open-CxeIfsW_.js.map} +1 -1
  25. package/dist/{internal-fast-dispatch-guard-CXs4ympz.js → internal-fast-dispatch-guard-CrsZI0pO.js} +1 -1
  26. package/dist/{internal-fast-dispatch-guard-u3vxgazZ.js → internal-fast-dispatch-guard-kzSKB0yV.js} +3 -3
  27. package/dist/{internal-fast-dispatch-guard-u3vxgazZ.js.map → internal-fast-dispatch-guard-kzSKB0yV.js.map} +1 -1
  28. package/dist/{internal-first-mate-guard-C8GG8i5H.js → internal-first-mate-guard-BuweUgjb.js} +3 -3
  29. package/dist/{internal-first-mate-guard-C8GG8i5H.js.map → internal-first-mate-guard-BuweUgjb.js.map} +1 -1
  30. package/dist/{internal-first-mate-guard-BGaGGIBS.js → internal-first-mate-guard-Nf1H0mCK.js} +1 -1
  31. package/dist/{internal-max-dispatch-guard-B-n687ho.js → internal-max-dispatch-guard-DF-f8VwE.js} +1 -1
  32. package/dist/{internal-max-dispatch-guard-Cw_9Qx-9.js → internal-max-dispatch-guard-lS4usOV5.js} +12 -5
  33. package/dist/internal-max-dispatch-guard-lS4usOV5.js.map +1 -0
  34. package/dist/{internal-plan-review-DCbxSIUR.js → internal-plan-review-DLduDz41.js} +3 -3
  35. package/dist/{internal-plan-review-DCbxSIUR.js.map → internal-plan-review-DLduDz41.js.map} +1 -1
  36. package/dist/{internal-prompt-submit-DIn8b_Zt.js → internal-prompt-submit-DG94f8E-.js} +4 -4
  37. package/dist/{internal-prompt-submit-DIn8b_Zt.js.map → internal-prompt-submit-DG94f8E-.js.map} +1 -1
  38. package/dist/{internal-session-bind-DXosxciQ.js → internal-session-bind-D6Hpl-84.js} +2 -2
  39. package/dist/{internal-session-bind-DXosxciQ.js.map → internal-session-bind-D6Hpl-84.js.map} +1 -1
  40. package/dist/{internal-stop-hook-C2lMgQuU.js → internal-stop-hook-XRtB33hW.js} +5 -5
  41. package/dist/{internal-stop-hook-C2lMgQuU.js.map → internal-stop-hook-XRtB33hW.js.map} +1 -1
  42. package/dist/{internal-stop-review-CnYqJTiC.js → internal-stop-review-DlKzZgFm.js} +2 -2
  43. package/dist/{internal-stop-review-CnYqJTiC.js.map → internal-stop-review-DlKzZgFm.js.map} +1 -1
  44. package/dist/{internal-worker-guard-DdwLtAMn.js → internal-worker-guard-D7sfByyo.js} +2 -2
  45. package/dist/{internal-worker-guard-DdwLtAMn.js.map → internal-worker-guard-D7sfByyo.js.map} +1 -1
  46. package/dist/{internal-workspace-header-B4qymRDb.js → internal-workspace-header-CU5OjLCB.js} +2 -2
  47. package/dist/{internal-workspace-header-B4qymRDb.js.map → internal-workspace-header-CU5OjLCB.js.map} +1 -1
  48. package/dist/lifecycle-B0USSJvd.js +2 -0
  49. package/dist/{lifecycle-DOvQozrm.js → lifecycle-BCnarXJV.js} +2 -2
  50. package/dist/{lifecycle-DOvQozrm.js.map → lifecycle-BCnarXJV.js.map} +1 -1
  51. package/dist/lifecycle-CQFjaQc0.js +2 -0
  52. package/dist/{lifecycle-CSHU91pP.js → lifecycle-CtRA3Y7p.js} +2 -2
  53. package/dist/{lifecycle-CSHU91pP.js.map → lifecycle-CtRA3Y7p.js.map} +1 -1
  54. package/dist/main.js +19 -19
  55. package/dist/max-profile-contract-v2Q6eN5w.js +355 -0
  56. package/dist/max-profile-contract-v2Q6eN5w.js.map +1 -0
  57. package/dist/{mcp-workspace-header-Cv4QWFVV.js → mcp-workspace-header-B60WSR1Y.js} +2 -2
  58. package/dist/{mcp-workspace-header-Cv4QWFVV.js.map → mcp-workspace-header-B60WSR1Y.js.map} +1 -1
  59. package/dist/{models-BDhlItXr.js → models-COuMOfM6.js} +3 -3
  60. package/dist/{models-BDhlItXr.js.map → models-COuMOfM6.js.map} +1 -1
  61. package/dist/{orchestration-C2Q_Qynl.js → orchestration-DjLA-lxB.js} +2 -2
  62. package/dist/{orchestration-C2Q_Qynl.js.map → orchestration-DjLA-lxB.js.map} +1 -1
  63. package/dist/{paths-D6SI5bmY.js → paths-De1Qh9Q9.js} +4 -4
  64. package/dist/{paths-D6SI5bmY.js.map → paths-De1Qh9Q9.js.map} +1 -1
  65. package/dist/paths-DyX6SEnd.js +2 -0
  66. package/dist/{peer-mcp-personas-DXOdPbev.js → peer-mcp-personas-C_38ckts.js} +130 -360
  67. package/dist/peer-mcp-personas-C_38ckts.js.map +1 -0
  68. package/dist/{plan-review-hook-CnRRttwl.js → plan-review-hook-vL6BYmA8.js} +3 -3
  69. package/dist/{plan-review-hook-CnRRttwl.js.map → plan-review-hook-vL6BYmA8.js.map} +1 -1
  70. package/dist/{prompt-submit-hook-G84QAm_F.js → prompt-submit-hook-DfqufWC1.js} +3 -3
  71. package/dist/{prompt-submit-hook-G84QAm_F.js.map → prompt-submit-hook-DfqufWC1.js.map} +1 -1
  72. package/dist/{provision-CfB_DkuL.js → provision-BoOza223.js} +4 -4
  73. package/dist/{provision-CfB_DkuL.js.map → provision-BoOza223.js.map} +1 -1
  74. package/dist/{self-invocation-Da5gSWen.js → self-invocation-B84JCHps.js} +2 -2
  75. package/dist/{self-invocation-Da5gSWen.js.map → self-invocation-B84JCHps.js.map} +1 -1
  76. package/dist/{serve-Bfw7xEkR.js → serve-DpS_lCbm.js} +12 -12
  77. package/dist/{serve-Bfw7xEkR.js.map → serve-DpS_lCbm.js.map} +1 -1
  78. package/dist/{server-setup-Cbuq2-Bi.js → server-setup-3nCFVn79.js} +301 -11
  79. package/dist/server-setup-3nCFVn79.js.map +1 -0
  80. package/dist/{start-CLSlFGUF.js → start-CX92d6cy.js} +3 -3
  81. package/dist/{start-CLSlFGUF.js.map → start-CX92d6cy.js.map} +1 -1
  82. package/dist/{stop-gate-hook-rjDyq1lk.js → stop-gate-hook-BEU8qQrC.js} +3 -3
  83. package/dist/{stop-gate-hook-rjDyq1lk.js.map → stop-gate-hook-BEU8qQrC.js.map} +1 -1
  84. package/dist/{stop-gate-policy-m3dvbV10.js → stop-gate-policy-qzqXfRxE.js} +2 -2
  85. package/dist/{stop-gate-policy-m3dvbV10.js.map → stop-gate-policy-qzqXfRxE.js.map} +1 -1
  86. package/dist/{token-DnTZlcc6.js → token-CCg-Ov5q.js} +2 -2
  87. package/dist/{token-DnTZlcc6.js.map → token-CCg-Ov5q.js.map} +1 -1
  88. package/dist/{worker-dispatch-CQ2y0aBP.js → worker-dispatch-CH-NN5FW.js} +2 -2
  89. package/dist/{worker-dispatch-CQ2y0aBP.js.map → worker-dispatch-CH-NN5FW.js.map} +1 -1
  90. package/package.json +1 -1
  91. package/dist/attribution-settings-C5ScaOmz.js.map +0 -1
  92. package/dist/claude-CsGXL12X.js.map +0 -1
  93. package/dist/engine-j34DK_PM.js +0 -2
  94. package/dist/fast-profile-contract-OuZQaGif.js.map +0 -1
  95. package/dist/internal-max-dispatch-guard-Cw_9Qx-9.js.map +0 -1
  96. package/dist/lifecycle-B4DDf-Me.js +0 -2
  97. package/dist/lifecycle-D0BpTV9A.js +0 -2
  98. package/dist/max-profile-contract-CiD5wyET.js +0 -276
  99. package/dist/max-profile-contract-CiD5wyET.js.map +0 -1
  100. package/dist/paths-Bmj5b7PS.js +0 -2
  101. package/dist/peer-mcp-personas-DXOdPbev.js.map +0 -1
  102. package/dist/server-setup-Cbuq2-Bi.js.map +0 -1
@@ -1,17 +1,17 @@
1
1
  import { n as explicitPackageRoot } from "./package-root-B-osctCk.js";
2
2
  import { t as getPackageVersion } from "./version-C8x2hQrZ.js";
3
- import { t as PATHS } from "./paths-D6SI5bmY.js";
3
+ import { t as PATHS } from "./paths-De1Qh9Q9.js";
4
4
  import { t as state } from "./state-B8adscCv.js";
5
- import { C as GITHUB_GRAPHQL_URL, D as githubAgentGraphQLHeaders, E as copilotVersion, O as githubAgentHeaders, S as GITHUB_API_BASE_URL, T as copilotHeaders, b as sanitizeTransportText, d as resolveModel, f as sleep$2, g as HTTPError, h as isAllowedCopilotHost, i as tryRefreshAndRetry, v as classifyTransportError, w as copilotBaseUrl, x as withTransientRetry, y as fetchWithTransientRetry } from "./token-DnTZlcc6.js";
5
+ import { C as GITHUB_GRAPHQL_URL, D as githubAgentGraphQLHeaders, E as copilotVersion, O as githubAgentHeaders, S as GITHUB_API_BASE_URL, T as copilotHeaders, b as sanitizeTransportText, d as resolveModel, f as sleep$2, g as HTTPError, h as isAllowedCopilotHost, i as tryRefreshAndRetry, v as classifyTransportError, w as copilotBaseUrl, x as withTransientRetry, y as fetchWithTransientRetry } from "./token-CCg-Ov5q.js";
6
6
  import { a as resolveExecutable, c as runManagedExeCapture, i as parseIntEnv, l as spawnTaskkillBestEffort, r as parseBoolEnv } from "./exec-y8C_MU8A.js";
7
- import { a as FAST_PROFILE_MODELS, c as FAST_PROFILE_NATIVE_MODELS, l as FAST_PROFILE_ORACLE_EFFORT, n as FAST_PROFILE_ADVISOR_EFFORT, o as FAST_PROFILE_NATIVE_AGENT_NAMES, r as FAST_PROFILE_ADVISOR_MODEL, s as FAST_PROFILE_NATIVE_EFFORTS, u as FAST_PROFILE_ORACLE_MODEL } from "./fast-profile-contract-OuZQaGif.js";
8
- import { _ as validateMaxProfilePrerequisites, a as MAX_PROFILE_NATIVE_AGENT_NAMES, b as normalizeTrailingOneMSuffix, f as maxGeminiModel, h as maxProReplacementModel, i as MAX_PROFILE_MODELS, m as maxOpusModel, p as maxGrokModel, r as MAX_PROFILE_LEAD_MODEL, v as fastEndpointForCatalogId, x as stripTrailingOneMSuffix, y as fastEndpointForModel } from "./max-profile-contract-CiD5wyET.js";
9
- import { i as registerExitHandlers$1, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-DOvQozrm.js";
10
- import { t as MCP_WORKSPACE_HEADER } from "./mcp-workspace-header-Cv4QWFVV.js";
7
+ import { a as FAST_PROFILE_MODELS, c as FAST_PROFILE_NATIVE_MODELS, l as FAST_PROFILE_ORACLE_EFFORT, n as FAST_PROFILE_ADVISOR_EFFORT, r as FAST_PROFILE_ADVISOR_MODEL, s as FAST_PROFILE_NATIVE_EFFORTS, u as FAST_PROFILE_ORACLE_MODEL } from "./fast-profile-contract-BWCJy6iL.js";
8
+ import { A as normalizeTrailingOneMSuffix, D as maxPeerInstructions, E as maxPeerDescription, O as fastEndpointForCatalogId, b as MAX_ADVISOR_SYSTEM_PROMPT, f as maxCodexReviewerModel, g as maxProReplacementModel, h as maxOpusModel, i as MAX_PROFILE_MODELS, k as fastEndpointForModel, m as maxGrokModel, p as maxGeminiModel, r as MAX_PROFILE_LEAD_MODEL, v as maxSonnetModel } from "./max-profile-contract-v2Q6eN5w.js";
9
+ import { i as registerExitHandlers$1, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-BCnarXJV.js";
10
+ import { t as MCP_WORKSPACE_HEADER } from "./mcp-workspace-header-B60WSR1Y.js";
11
11
  import { n as ArtifactError, r as applyInsecureTls, t as ArtifactClient } from "./client-CQMfroGV.js";
12
- import { n as isPidAlive$1, r as registerColbertExitHandlers, s as trackChild, t as getColbertInstanceUuid } from "./lifecycle-CSHU91pP.js";
13
- import { f as resolveSealedGate, m as runGateChecks, p as sealedGateIds } from "./stop-gate-hook-rjDyq1lk.js";
14
- import { t as liveExec } from "./orchestration-C2Q_Qynl.js";
12
+ import { n as isPidAlive$1, r as registerColbertExitHandlers, s as trackChild, t as getColbertInstanceUuid } from "./lifecycle-CtRA3Y7p.js";
13
+ import { f as resolveSealedGate, m as runGateChecks, p as sealedGateIds } from "./stop-gate-hook-BEU8qQrC.js";
14
+ import { t as liveExec } from "./orchestration-DjLA-lxB.js";
15
15
  import { createRequire } from "node:module";
16
16
  import consola from "consola";
17
17
  import { chmodSync, closeSync, constants, cpSync, existsSync, mkdirSync, openSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync, writeSync } from "node:fs";
@@ -99,297 +99,6 @@ async function tryCreateLock(p) {
99
99
  }
100
100
  }
101
101
  //#endregion
102
- //#region src/lib/launch-profile.ts
103
- const STANDARD_PROFILE = Object.freeze({
104
- id: "standard",
105
- hasCoordinator: true
106
- });
107
- /**
108
- * The `-m fast` roster: exactly five native agents (`Explore`, `Plan`,
109
- * `general-purpose`, `implementer`, `reviewer`), the fast-only `oracle` peer
110
- * tool, no coordinator, and `peers`/`search` plus optional browser and
111
- * browse-only worker groups. Core workers, `orchestrate`, `decide`, `fleet`,
112
- * and `first-mate` remain hard denies even when their standard gates pass.
113
- */
114
- const FAST_PROFILE = Object.freeze({
115
- id: "fast",
116
- nativeRoster: new Set(FAST_PROFILE_NATIVE_AGENT_NAMES),
117
- personaAllowlist: /* @__PURE__ */ new Set(["oracle"]),
118
- allowedGroups: /* @__PURE__ */ new Set([
119
- "peers",
120
- "search",
121
- "workers",
122
- "browser"
123
- ]),
124
- hasCoordinator: false
125
- });
126
- /**
127
- * The `-m max` profile: Sol/Luna-led, browse-only workers, and explicit
128
- * cross-lab peer names. The descriptor is a hard projection for bound launch
129
- * requests; unbound/BYO traffic remains standard because it has no registry
130
- * entry carrying this allow-list.
131
- */
132
- const MAX_PROFILE = Object.freeze({
133
- id: "max",
134
- nativeRoster: new Set(MAX_PROFILE_NATIVE_AGENT_NAMES),
135
- personaAllowlist: /* @__PURE__ */ new Set([
136
- "sol_critic",
137
- "luna_reviewer",
138
- "opus_critic",
139
- "gemini_critic",
140
- "gemini_reviewer",
141
- "grok_critic",
142
- "grok_reviewer"
143
- ]),
144
- allowedGroups: /* @__PURE__ */ new Set([
145
- "peers",
146
- "search",
147
- "workers",
148
- "browser",
149
- "decide",
150
- "fleet",
151
- "first-mate"
152
- ]),
153
- hasCoordinator: true
154
- });
155
- function profileDescriptor(id) {
156
- if (id === "fast") return FAST_PROFILE;
157
- if (id === "max") return MAX_PROFILE;
158
- return STANDARD_PROFILE;
159
- }
160
- /**
161
- * Resolve the parsed `-m` argument to a launch profile.
162
- *
163
- * Deliberately keyed on the RAW alias string (trimmed, case-insensitive
164
- * `"fast"`), never on a resolved model id: `resolveLeadSlugArg` maps `fast`
165
- * to `FAST_LEAD_MODEL` (`./port`) before this is of any use to a caller who
166
- * only has the resolved id, so callers that already resolved the lead must
167
- * pass the ORIGINAL `-m` value here, not the resolved one. This is what
168
- * keeps `-m gpt-5.6-luna` (a direct pin of the same underlying model) a
169
- * standard-surface launch — only the literal alias narrows the surface.
170
- */
171
- function resolveLaunchProfile(modelArg) {
172
- const arg = modelArg?.trim().toLowerCase();
173
- if (arg === "fast") return "fast";
174
- if (arg === "max") return "max";
175
- return "standard";
176
- }
177
- function validateMaxProfileLaunch(catalog) {
178
- return validateMaxProfilePrerequisites(catalog);
179
- }
180
- /**
181
- * Router-owned alias id for the fast profile's Sonnet-tier row
182
- * (`ANTHROPIC_DEFAULT_SONNET_MODEL`). Never sent upstream — canonicalized to
183
- * `LUNA_REAL_MODEL_ID` by `canonicalizeAliasModel` before the request
184
- * reaches Copilot.
185
- */
186
- const LUNA_DRIVER_ALIAS_ID = "gh-router-luna-driver-max";
187
- /** Fast Explore alias preserves its high-effort provenance until the
188
- * authenticated request boundary. Bare Luna remains the max-effort lead and
189
- * `general-purpose` model. */
190
- const LUNA_SCOUT_ALIAS_ID = "gh-router-luna-scout-high";
191
- /** Retired Fast aliases remain recognizable only so old running clients fail
192
- * with an explicit stale-alias error instead of silently changing semantics. */
193
- const LUNA_IMPLEMENTER_ALIAS_ID = "gh-router-luna-implementer-max";
194
- const FAST_CRITIC_ALIAS_ID = "gh-router-fast-critic-medium";
195
- const LUNA_SONNET_ALIAS_ID = "gh-router-luna-sonnet-xhigh";
196
- /**
197
- * Router-owned alias id for the fast profile's Haiku-tier row
198
- * (`ANTHROPIC_DEFAULT_HAIKU_MODEL` / `ANTHROPIC_SMALL_FAST_MODEL`).
199
- */
200
- const LUNA_HAIKU_ALIAS_ID = "gh-router-luna-haiku-high";
201
- /** Max-profile aliases are intentionally separate from the fast aliases. They
202
- * preserve the fixed max role effort until the authenticated max request
203
- * boundary and are never valid on standard or fast launches. */
204
- const MAX_LUNA_HIGH_ALIAS_ID = "gh-router-max-luna-high";
205
- const MAX_LUNA_MAX_ALIAS_ID = "gh-router-max-luna-max";
206
- /** The real Copilot catalog id every Luna alias (including the driver
207
- * itself) canonicalizes to. */
208
- const LUNA_REAL_MODEL_ID = FAST_PROFILE_MODELS.luna;
209
- const MAX_ALIAS_IDS = /* @__PURE__ */ new Set([MAX_LUNA_HIGH_ALIAS_ID, MAX_LUNA_MAX_ALIAS_ID]);
210
- function isMaxModelAlias(id) {
211
- return MAX_ALIAS_IDS.has(stripTrailingOneMSuffix(id).base);
212
- }
213
- function maxAliasEffort(id) {
214
- const base = stripTrailingOneMSuffix(id).base;
215
- if (base === "gh-router-max-luna-high") return "high";
216
- if (base === "gh-router-max-luna-max") return "max";
217
- }
218
- function maxAliasModel(id) {
219
- return isMaxModelAlias(id) ? LUNA_REAL_MODEL_ID : void 0;
220
- }
221
- /**
222
- * The full alias table, keyed by `aliasId`. A simpler model-id-only table is
223
- * rejected by design: the driver, the Sonnet tier, and the Haiku tier all
224
- * resolve to the SAME Luna catalog id, while the fast critic alias resolves
225
- * to Gemini. After early canonicalization a table keyed on the real id could
226
- * no longer tell which absent-effort default applies. Alias provenance is the
227
- * minimum discriminator that survives from tier selection through to request
228
- * preprocessing, which is why canonicalization must happen LAST (in the
229
- * `/v1/messages` identity preflight), after the effort default has already
230
- * been read off the alias.
231
- */
232
- const RETIRED_FAST_ALIAS_IDS = /* @__PURE__ */ new Set([LUNA_IMPLEMENTER_ALIAS_ID, FAST_CRITIC_ALIAS_ID]);
233
- const MODEL_ALIAS_TABLE = /* @__PURE__ */ new Map([
234
- [LUNA_DRIVER_ALIAS_ID, {
235
- aliasId: LUNA_DRIVER_ALIAS_ID,
236
- realModel: LUNA_REAL_MODEL_ID,
237
- absentEffortDefault: "max"
238
- }],
239
- [MAX_LUNA_HIGH_ALIAS_ID, {
240
- aliasId: MAX_LUNA_HIGH_ALIAS_ID,
241
- realModel: LUNA_REAL_MODEL_ID,
242
- absentEffortDefault: "high"
243
- }],
244
- [MAX_LUNA_MAX_ALIAS_ID, {
245
- aliasId: MAX_LUNA_MAX_ALIAS_ID,
246
- realModel: LUNA_REAL_MODEL_ID,
247
- absentEffortDefault: "max"
248
- }],
249
- [LUNA_SCOUT_ALIAS_ID, {
250
- aliasId: LUNA_SCOUT_ALIAS_ID,
251
- realModel: LUNA_REAL_MODEL_ID,
252
- absentEffortDefault: "high"
253
- }],
254
- [LUNA_SONNET_ALIAS_ID, {
255
- aliasId: LUNA_SONNET_ALIAS_ID,
256
- realModel: LUNA_REAL_MODEL_ID,
257
- absentEffortDefault: "xhigh"
258
- }],
259
- [LUNA_HAIKU_ALIAS_ID, {
260
- aliasId: LUNA_HAIKU_ALIAS_ID,
261
- realModel: LUNA_REAL_MODEL_ID,
262
- absentEffortDefault: "high"
263
- }]
264
- ]);
265
- /**
266
- * Look up the alias descriptor for a wire-facing model id (with or without
267
- * a trailing `[1m]` bracket — the bracket is stripped before the table
268
- * lookup and is orthogonal to alias identity). Returns undefined for any
269
- * id that isn't one of the registered aliases (including bare `claude-*`
270
- * ids and every other real Copilot catalog id).
271
- */
272
- function resolveModelAlias(id) {
273
- const { base } = stripTrailingOneMSuffix(id);
274
- return MODEL_ALIAS_TABLE.get(base);
275
- }
276
- function isRetiredFastModelAlias(id) {
277
- return RETIRED_FAST_ALIAS_IDS.has(stripTrailingOneMSuffix(id).base);
278
- }
279
- /**
280
- * Strip alias provenance and return the real catalog id to send upstream.
281
- * Idempotent passthrough for any id that isn't a registered alias (a bare
282
- * `claude-*` slug, an already-real Copilot id, or anything else) — this is
283
- * safe to call unconditionally on every `body.model` at the outbound
284
- * boundary. Preserves a trailing `[1m]` bracket: canonicalization only
285
- * erases ALIAS identity, not the 1M-context accounting decoration.
286
- */
287
- function canonicalizeAliasModel(id) {
288
- const { base, hadSuffix } = stripTrailingOneMSuffix(id);
289
- const alias = MODEL_ALIAS_TABLE.get(base);
290
- if (!alias) return normalizeTrailingOneMSuffix(id);
291
- return hadSuffix ? `${alias.realModel}[1m]` : alias.realModel;
292
- }
293
- const FAST_REQUIRED_CONTEXT_TOKENS = 1e6;
294
- function findModel(catalog, id) {
295
- return catalog?.data?.find((m) => m.id === id);
296
- }
297
- function hasToolCalls(model) {
298
- return model?.capabilities?.supports?.tool_calls === true;
299
- }
300
- function hasContextAtLeast(model, tokens) {
301
- return (model?.capabilities?.limits?.max_context_window_tokens ?? 0) >= tokens;
302
- }
303
- function supportsEffort(model, effort) {
304
- const list = model?.capabilities?.supports?.reasoning_effort;
305
- return Array.isArray(list) && list.includes(effort);
306
- }
307
- const FAST_REVIEWER_MIN_PROMPT_TOKENS = 2e5;
308
- function supportsEndpoint(model, endpoint) {
309
- return model !== void 0 && fastEndpointForModel(model) === endpoint;
310
- }
311
- function hasUsablePromptMetadata(model) {
312
- const prompt = model?.capabilities?.limits?.max_prompt_tokens;
313
- return typeof prompt === "number" && Number.isFinite(prompt) && prompt > 0;
314
- }
315
- function hasPromptAtLeast(model, tokens) {
316
- const prompt = model?.capabilities?.limits?.max_prompt_tokens;
317
- return typeof prompt === "number" && Number.isFinite(prompt) && prompt >= tokens;
318
- }
319
- /**
320
- * Validate the live Copilot catalog carries every model the fast profile's
321
- * EXACT roster depends on, with the specific capabilities each assignment
322
- * needs. These are capability-availability PREREQUISITES for constructing
323
- * the roster — not an allowlist of models the user may select later in the
324
- * session — so a partial catalog fails the whole `-m fast` launch rather
325
- * than silently substituting or dropping an agent.
326
- *
327
- * Checks, per the fast-launch-profile design:
328
- * - Luna lead/Explore/general-purpose: tool calls, >=1M, high+max, Responses.
329
- * - Sol Plan: tool calls, >=1M, high, Responses.
330
- * - Grok reviewer: tool calls, medium, Responses, usable prompt metadata.
331
- * - Gemini implementer/Advisor: tool calls, >=1M, high, chat-completions.
332
- * - Opus Oracle: exact Opus 5, >=1M, adaptive/high, Messages, prompt metadata.
333
- *
334
- * Pure over the passed-in catalog snapshot so it's unit-testable without
335
- * `state` — callers pass `state.models` at call time.
336
- */
337
- function validateFastProfilePrerequisites(catalog) {
338
- const missing = [];
339
- const luna = findModel(catalog, LUNA_REAL_MODEL_ID);
340
- if (!luna) missing.push(`${LUNA_REAL_MODEL_ID}: absent from the live catalog`);
341
- else {
342
- if (!hasToolCalls(luna)) missing.push(`${LUNA_REAL_MODEL_ID}: does not advertise tool_calls`);
343
- if (!hasContextAtLeast(luna, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(`${LUNA_REAL_MODEL_ID}: advertised context window is below 1M`);
344
- if (!supportsEffort(luna, "high") || !supportsEffort(luna, "max")) missing.push(`${LUNA_REAL_MODEL_ID}: does not advertise both "high" and "max" reasoning effort`);
345
- if (!supportsEndpoint(luna, "responses")) missing.push(`${LUNA_REAL_MODEL_ID}: does not advertise a supported Responses endpoint`);
346
- }
347
- const sol = findModel(catalog, FAST_PROFILE_MODELS.plan);
348
- if (!sol) missing.push(`${FAST_PROFILE_MODELS.plan}: absent from the live catalog`);
349
- else {
350
- if (!hasToolCalls(sol)) missing.push(`${FAST_PROFILE_MODELS.plan}: does not advertise tool_calls`);
351
- if (!hasContextAtLeast(sol, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(`${FAST_PROFILE_MODELS.plan}: advertised context window is below 1M`);
352
- if (!supportsEffort(sol, "high")) missing.push(`${FAST_PROFILE_MODELS.plan}: does not advertise a "high" reasoning effort`);
353
- if (!supportsEndpoint(sol, "responses")) missing.push(`${FAST_PROFILE_MODELS.plan}: does not advertise a supported Responses endpoint`);
354
- }
355
- const grok = findModel(catalog, FAST_PROFILE_MODELS.reviewer);
356
- if (!grok) missing.push(`${FAST_PROFILE_MODELS.reviewer}: absent from the live catalog`);
357
- else {
358
- if (!hasToolCalls(grok)) missing.push(`${FAST_PROFILE_MODELS.reviewer}: does not advertise tool_calls`);
359
- if (!supportsEffort(grok, "medium")) missing.push(`${FAST_PROFILE_MODELS.reviewer}: does not advertise a "medium" reasoning effort`);
360
- if (!hasPromptAtLeast(grok, 2e5)) missing.push(`${FAST_PROFILE_MODELS.reviewer}: advertised max_prompt_tokens is below ${FAST_REVIEWER_MIN_PROMPT_TOKENS}`);
361
- if (!supportsEndpoint(grok, "responses")) missing.push(`${FAST_PROFILE_MODELS.reviewer}: does not advertise a supported Responses endpoint`);
362
- }
363
- const gemini = findModel(catalog, FAST_PROFILE_MODELS.advisor);
364
- if (!gemini) missing.push(`${FAST_PROFILE_MODELS.advisor}: absent from the live catalog`);
365
- else {
366
- if (!hasToolCalls(gemini)) missing.push(`${FAST_PROFILE_MODELS.advisor}: does not advertise tool_calls`);
367
- if (!hasContextAtLeast(gemini, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(`${FAST_PROFILE_MODELS.advisor}: advertised context window is below 1M`);
368
- if (!supportsEffort(gemini, "high")) missing.push(`${FAST_PROFILE_MODELS.advisor}: does not advertise a "high" reasoning effort`);
369
- if (!supportsEndpoint(gemini, "chat")) missing.push(`${FAST_PROFILE_MODELS.advisor}: does not advertise a supported chat-completions endpoint`);
370
- }
371
- const opus = findModel(catalog, FAST_PROFILE_MODELS.oracle);
372
- if (!opus) missing.push(`${FAST_PROFILE_MODELS.oracle}: absent from the live catalog`);
373
- else {
374
- if (!hasContextAtLeast(opus, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(`${FAST_PROFILE_MODELS.oracle}: advertised context window is below 1M`);
375
- if (!supportsEffort(opus, "high")) missing.push(`${FAST_PROFILE_MODELS.oracle}: does not advertise a "high" reasoning effort`);
376
- if (opus.capabilities?.supports?.adaptive_thinking !== true) missing.push(`${FAST_PROFILE_MODELS.oracle}: does not advertise adaptive_thinking`);
377
- if (!hasUsablePromptMetadata(opus)) missing.push(`${FAST_PROFILE_MODELS.oracle}: no usable max_prompt_tokens metadata`);
378
- if (!supportsEndpoint(opus, "messages")) missing.push(`${FAST_PROFILE_MODELS.oracle}: does not advertise a supported Messages endpoint`);
379
- }
380
- return {
381
- ok: missing.length === 0,
382
- missing
383
- };
384
- }
385
- /**
386
- * Format `validateFastProfilePrerequisites`'s failure list into the launch
387
- * error message: every missing/invalid model, plus the rollback command.
388
- */
389
- function formatFastPrerequisiteFailure(missing) {
390
- return "github-router claude -m fast requires the following live-catalog capabilities, which this account's catalog does not fully provide:\n" + missing.map((m) => ` - ${m}`).join("\n") + "\n\nFalling back or silently dropping an agent is not supported for the fast profile's exact roster. Run plain `github-router claude` instead.";
391
- }
392
- //#endregion
393
102
  //#region src/lib/one-m-context.ts
394
103
  /**
395
104
  * Context-window threshold at which Claude Code's `[1m]` accounting unlock is
@@ -747,16 +456,10 @@ const DEFAULT_CLAUDE_MODEL_FALLBACKS = [
747
456
  */
748
457
  const DEFAULT_OPUS_FAMILY = "5";
749
458
  /**
750
- * The lead `-m fast` selects. `gpt-5.6-luna` — a distinct Luna-driven
751
- * profile (see `./launch-profile`), NOT a Claude Sonnet budget lead. This
752
- * REPLACES the earlier `-m fast` → `claude-sonnet-5` mapping: `fast` now
753
- * names a deliberately lean Luna surface (five native agents, one peer
754
- * persona, `peers`/`search` MCP groups only), not "budget Sonnet with the
755
- * full standard surface". `resolveLaunchProfile` in `./launch-profile`
756
- * keys off the same raw `-m` argument this constant is selected by, so the
757
- * two can never disagree about which launches count as "fast".
459
+ * The lead `-m fast` selects. `gemini-3.8-flash` [1m] at high effort — a fast
460
+ * Gemini-driven profile (see `./launch-profile`).
758
461
  */
759
- const FAST_LEAD_MODEL = FAST_PROFILE_MODELS.luna;
462
+ const FAST_LEAD_MODEL = FAST_PROFILE_MODELS.lead;
760
463
  /** Small/fast tier for a budget lead, in the two forms this codebase needs.
761
464
  *
762
465
  * `SLUG` is the Anthropic-published DASHED form and is what goes into
@@ -19255,7 +18958,7 @@ function logAudit$1(record) {
19255
18958
  try {
19256
18959
  const fs = await import("node:fs/promises");
19257
18960
  const path = await import("node:path");
19258
- const { PATHS } = await import("./paths-Bmj5b7PS.js");
18961
+ const { PATHS } = await import("./paths-DyX6SEnd.js");
19259
18962
  const dir = path.join(PATHS.APP_DIR, "browser-mcp");
19260
18963
  await fs.mkdir(dir, { recursive: true });
19261
18964
  const line = JSON.stringify({
@@ -28089,27 +27792,29 @@ function fastImplementerModel() {
28089
27792
  if (!Array.isArray(efforts) || !efforts.includes(FAST_IMPLEMENTER_EFFORT)) return void 0;
28090
27793
  return found && fastEndpointForModel(found) === "chat" ? id : void 0;
28091
27794
  }
28092
- /** Gate Grok on the prompt limit that actually constrains pasted review input. */
27795
+ /** Sonnet 5 1M xhigh reviewer for Fast profile. */
28093
27796
  function fastReviewerModel() {
28094
27797
  const models = state.models?.data;
28095
27798
  if (!models) return void 0;
28096
27799
  const found = models.find((m) => m.id === FAST_REVIEWER_MODEL);
28097
27800
  if (!found) return void 0;
28098
27801
  if (found.capabilities?.supports?.tool_calls !== true) return void 0;
27802
+ if ((found.capabilities?.limits?.max_context_window_tokens ?? 0) < 1e6) return void 0;
28099
27803
  const efforts = found.capabilities?.supports?.reasoning_effort;
28100
27804
  if (!Array.isArray(efforts) || !efforts.includes(FAST_REVIEWER_EFFORT)) return void 0;
28101
- if ((found.capabilities?.limits?.max_prompt_tokens ?? 0) < 2e5) return void 0;
28102
- if (fastEndpointForModel(found) !== "responses") return void 0;
27805
+ if (found.capabilities?.supports?.adaptive_thinking !== true) return void 0;
27806
+ if (fastEndpointForModel(found) !== "messages") return void 0;
28103
27807
  return FAST_REVIEWER_MODEL;
28104
27808
  }
28105
- /** Dedicated Gemini 3.8 Flash Advisor check. */
27809
+ /** Dedicated GPT-5.6 Sol Advisor check. */
28106
27810
  function fastAdvisorModel() {
28107
27811
  const found = state.models?.data.find((m) => m.id === FAST_ADVISOR_MODEL);
28108
27812
  if (!found) return void 0;
28109
27813
  if ((found.capabilities?.limits?.max_context_window_tokens ?? 0) < 1e6) return void 0;
27814
+ if (found.capabilities?.supports?.tool_calls !== true) return void 0;
28110
27815
  const efforts = found.capabilities?.supports?.reasoning_effort;
28111
27816
  if (!Array.isArray(efforts) || !efforts.includes(FAST_ADVISOR_EFFORT)) return void 0;
28112
- if (fastEndpointForModel(found) !== "chat") return void 0;
27817
+ if (fastEndpointForModel(found) !== "responses") return void 0;
28113
27818
  return FAST_ADVISOR_MODEL;
28114
27819
  }
28115
27820
  /** Exact Opus 5 only: the fast Oracle never inherits standard opus_critic's
@@ -28397,7 +28102,8 @@ function resolveOpusCriticModel() {
28397
28102
  function activePersonas(launch) {
28398
28103
  if (launch?.profileId === "max") return maxPersonasFor({
28399
28104
  solModel: MAX_PROFILE_MODELS.sol,
28400
- lunaModel: MAX_PROFILE_MODELS.luna,
28105
+ codexModel: maxCodexReviewerModel(),
28106
+ sonnetModel: maxSonnetModel(),
28401
28107
  opusModel: maxOpusModel(),
28402
28108
  geminiModel: maxGeminiModel(),
28403
28109
  grokModel: maxGrokModel()
@@ -28422,7 +28128,7 @@ function activePersonas(launch) {
28422
28128
  function oracleToolEntry() {
28423
28129
  return {
28424
28130
  name: "oracle",
28425
- description: "Fast-profile last-resort guidance from exact Opus 5 (1M context) at high effort. Available only to the lead and Plan: pass complete context plus one precise consequential question when repository evidence cannot settle it. It is stateless and tool-less; it cannot inspect the repo, execute, merge, or authorize actions.",
28131
+ description: "Fast-profile expert consultant (Opus 5 1M context at high effort) available to the lead and Plan. Stateless and cold-start: it sees only what you paste, with no repo access, tools, or prior history.\n\nWhen to invoke: preferred for difficult conceptual, algorithmic, spec/protocol, or architectural tradeoffs when repository evidence alone cannot settle them, or when multiple viable designs conflict. Preferred over advisor for substantive technical decisions that can be evaluated in a self-contained brief.\n\nWhen NOT to invoke: not for routine code lookup, web search, execution, approval, or mechanical facts verifiable by tests.\n\nPass complete context, constraints, minimal code excerpts with path:line, and one precise unresolved question.",
28426
28132
  inputSchema: {
28427
28133
  type: "object",
28428
28134
  required: ["query", "context"],
@@ -28430,11 +28136,11 @@ function oracleToolEntry() {
28430
28136
  properties: {
28431
28137
  query: {
28432
28138
  type: "string",
28433
- description: "One precise unresolved question."
28139
+ description: "One precise, consequential unresolved question or architectural decision."
28434
28140
  },
28435
28141
  context: {
28436
28142
  type: "string",
28437
- description: "Complete evidence and constraints needed to answer cold-start."
28143
+ description: "Complete self-contained evidence, constraints, code excerpts with path:line, and ruled-out alternatives needed to evaluate cold-start."
28438
28144
  }
28439
28145
  }
28440
28146
  }
@@ -29000,7 +28706,7 @@ async function handleToolsCall(body, scope, launch, sessionWorkspace) {
29000
28706
  model: "claude-opus-5",
29001
28707
  endpoint: "/v1/messages",
29002
28708
  description: "Fast-profile Oracle",
29003
- baseInstructions: "You are Oracle, a stateless last-resort consultant. You have no tools or repository access. Answer only from the supplied context. Give focused guidance or ask for the exact missing information. Never claim to execute, approve, merge, or authorize an action.",
28709
+ baseInstructions: "You are Oracle, an expert architectural and technical consultant running on Opus 5. You have no tools or repository access. Answer from the supplied context and state assumptions explicitly, noting which facts would change the recommendation. Never claim to execute, verify, approve, merge, or authorize an action.",
29004
28710
  agentPrompt: "",
29005
28711
  writeCapable: false,
29006
28712
  requiresHttp: true,
@@ -30085,16 +29791,16 @@ const ADVISOR_MIN_EFFORT = "high";
30085
29791
  * the decorrelation instrument and are untouched. `GH_ROUTER_ADVISOR_MODEL`
30086
29792
  * keeps a cross-lab advisor one env var away for anyone who wants it back. */
30087
29793
  const ADVISOR_ESCALATION_MODEL = "claude-opus-5";
30088
- /** The Advisor model for an authenticated fast primary lead. Gemini 3.8 Flash
30089
- * is cross-lab from the OpenAI-backed Luna/Sol leads and is selected only when
30090
- * its live catalog entry advertises the required Chat endpoint. Kept distinct
29794
+ /** The Advisor model for an authenticated fast primary lead. GPT-5.6 Sol
29795
+ * is cross-lab from the Google-backed Gemini lead and is selected only when
29796
+ * its live catalog entry advertises the required Responses endpoint. Kept distinct
30091
29797
  * from `ADVISOR_DEFAULT_MODEL` so standard launches remain unchanged. */
30092
29798
  const ADVISOR_FAST_PROFILE_MODEL = FAST_PROFILE_ADVISOR_MODEL;
30093
- /** True only when the live Gemini entry satisfies the fixed fast transport.
29799
+ /** True only when the live entry satisfies the fixed fast transport.
30094
29800
  * An ID-only presence check is insufficient: selecting a model whose catalog
30095
- * row lost Chat support would silently degrade every fast Advisor call. */
29801
+ * row lost Responses support would silently degrade every fast Advisor call. */
30096
29802
  function fastProfileAdvisorAvailable() {
30097
- return fastEndpointForCatalogId(ADVISOR_FAST_PROFILE_MODEL, state.models?.data) === "chat";
29803
+ return fastEndpointForCatalogId(ADVISOR_FAST_PROFILE_MODEL, state.models?.data) === "responses";
30098
29804
  }
30099
29805
  /** Output cap for the Anthropic-branch advisor call when the catalog carries no
30100
29806
  * limits for the resolved model. The value the branch used unconditionally
@@ -30223,7 +29929,7 @@ function normalizeAdvisorPin(pinned) {
30223
29929
  }
30224
29930
  function resolveAdvisorModel(leadModel, fastProfile = false) {
30225
29931
  if (fastProfile) {
30226
- if (!fastProfileAdvisorAvailable()) throw new Error(`fast Advisor invariant failed: ${ADVISOR_FAST_PROFILE_MODEL} must advertise the Chat endpoint`);
29932
+ if (!fastProfileAdvisorAvailable()) throw new Error(`fast Advisor invariant failed: ${ADVISOR_FAST_PROFILE_MODEL} must advertise the Responses endpoint`);
30227
29933
  return {
30228
29934
  model: ADVISOR_FAST_PROFILE_MODEL,
30229
29935
  escalated: false,
@@ -30316,11 +30022,21 @@ const FAST_ADVISOR_TOOL_INSTRUCTIONS = `# Advisor Tool
30316
30022
 
30317
30023
  You have access to an optional, transcript-aware \`advisor\` tool. It takes no parameters and returns non-binding consultation. You remain responsible for every decision.
30318
30024
 
30319
- Use advisor only when a focused, consequential uncertainty remains after direct investigation: conflicting evidence, a materially changed assumption, a genuinely non-converging approach, a hard-to-reverse trade-off, or an explicit request for a fresh perspective. State the precise uncertainty in your response immediately before calling it.
30025
+ When to consult advisor:
30026
+ - Framing or assumption drift: when you suspect session momentum may have drifted from the user's core intent.
30027
+ - Trajectory guidance: when evaluating overall approach direction or when an approach is not converging.
30028
+ - Conflicting signals: when tool outputs or user feedback conflict and transcript context is required to evaluate why.
30029
+
30030
+ Discriminator vs. Oracle:
30031
+ - If the question requires knowing what happened in this session -> consult Advisor.
30032
+ - If the question is a technical, algorithmic, spec/protocol, or architectural fork that can be evaluated from a self-contained brief -> prefer Oracle.
30320
30033
 
30321
- Do not call advisor for routine progress, while waiting on a subagent, after ordinary tool output, for a fact that code or a command can verify, to obtain planner approval or reviewer verification, or as a ritual before implementation or completion.
30034
+ When NOT to consult advisor:
30035
+ - For simple routine progress updates.
30036
+ - For factual questions that code search, tests, or compiler/linter commands can settle.
30037
+ - As a ritual or mandatory gate before trivial edits or completion.
30322
30038
 
30323
- Treat the result as advice, not authority. Weigh it against the user's intent, verified repository evidence, planner output, and reviewer findings. You may consult again when materially new evidence creates a different question or directly conflicts with earlier advice.`;
30039
+ Treat the result as advisory guidance and direction, not dictation. Weigh it against verified repository evidence. You may consult again when materially new evidence creates a distinct question.`;
30324
30040
  const ADVISOR_OPT_OUT_ENV = "CLAUDE_CODE_DISABLE_ADVISOR_TOOL";
30325
30041
  /**
30326
30042
  * Detect whether the request asked for ADVISOR (incoming
@@ -30518,7 +30234,7 @@ function truncateTailToUnits(text, maxUnits, measure) {
30518
30234
  * every result").
30519
30235
  */
30520
30236
  function advisorSystemPrompt(advisorEscalated = false, fastProfile = false, maxProfile = false) {
30521
- if (maxProfile) return "You are a non-binding consultant to the primary lead. The transcript is context for one focused consequential uncertainty, not an invitation to supervise the whole session. Offer a concise recommendation with its assumptions, material risks, credible alternatives, confidence, and any evidence gap that would change it. Cite relevant transcript evidence. Do not approve, veto, dictate, or take ownership; the lead weighs your advice against the user's intent and verified evidence.";
30237
+ if (maxProfile) return MAX_ADVISOR_SYSTEM_PROMPT;
30522
30238
  return "You are an expert advisor reviewing an in-progress Claude Code session. The transcript below is the work-in-progress (turns numbered, with tool calls and results inlined). Read carefully and provide concrete, actionable advice on the next step or course-correction. Be specific — cite the parts of the transcript you're responding to. If the assistant is on the right track, say so explicitly. If they're stuck or off-track, name the specific assumption or step to revisit. Aim for 2-5 paragraphs of substantive guidance." + (fastProfile ? " You are a non-binding consultant to the primary lead. Address the focused uncertainty that prompted this call with a recommendation, its assumptions, material risks, credible alternatives, confidence, and any evidence gap that would change the recommendation. Do not approve, veto, dictate, or take ownership; the lead will weigh your advice against the user's intent and verified evidence." : "") + (advisorEscalated && !fastProfile && !maxProfile ? " The requesting agent is running a lighter, faster model than you. Give a directive recommendation and commit to the decision rather than laying out options for it to weigh." : "");
30523
30239
  }
30524
30240
  async function runAdvisor(conversation, advisorModel, advisorEffort, signal, advisorEscalated = false, fastProfile = false, maxProfile = false) {
@@ -36069,8 +35785,12 @@ function buildPeerAwarenessSnippet(opts) {
36069
35785
  return [
36070
35786
  "## Peer review and advisor",
36071
35787
  "",
36072
- `Max launch profile. The native roster is a menu of complementary capabilities rather than a required workflow: \`Explore\` for broad discovery, \`brainstorm\` for open design choices, \`Plan\` when sequencing or acceptance criteria benefit from a separate view, \`implementer\` for bounded coding, \`general-purpose\` for mixed work, and \`reviewer\` for repository-aware verification. Their frontmatter models are intentional defaults chosen for role fit and cross-lab diversity; overrides are most useful after a concrete mismatch and remain within the max allowlist. Independent work can run in parallel when it improves context isolation or latency. Fresh-context peers can reduce correlated blind spots where deterministic evidence does not settle the issue; \`peer-review-coordinator\` can combine max-profile \`sol_critic\`, \`luna_reviewer\`, and catalog-present \`opus_critic\`, \`gemini_critic\`/\`gemini_reviewer\`, and \`grok_critic\`/\`grok_reviewer\` when the risk merits several lenses. Small or obvious tasks are often better handled directly, and model output remains evidence to synthesize rather than a vote.`,
36073
- `\`mcp__${searchKey}__code\` provides semantic-first code search and \`mcp__${searchKey}__web\` provides citable web sources. Advisor is optional, non-binding, primary-lead-only counsel for a focused consequential uncertainty that direct evidence, Plan, reviewer, or peers cannot settle. It is not a supervisor, approver, or routine workflow/completion gate; consult again only when materially new evidence creates a different question. It remains available across controlled max lead switches, while native subagents and browse workers do not receive it.${opts.standInAvailable ? " Max stand_in uses Sol + Opus 5 + Grok 4.6/high when available, otherwise Gemini 3.8 Flash 1M/high; it never uses Gemini 3.1 Pro." : ""}${opts.agentToolsAvailable ? " Max first-mate replaces any Gemini 3.1 Pro model choice with the same Grok/high → Gemini 3.8 Flash/high fallback." : ""}${browserClause}${workerClause}${decideClause}${fleetClause}${agentsClause}${artifactClause}`
35788
+ "Max native roster: `Explore` discovers broadly; `Plan` structures cross-boundary changes; `general-purpose` owns bounded mixed execution; `implementer` writes a settled change; `reviewer` verifies against the repository and runtime; `brainstorm` explores materially different approaches; `peer-review-coordinator` synthesizes multiple distinct fresh-context lenses. Configured models are deliberate role defaults.",
35789
+ `Available cold-start peers under \`mcp__${peersKey}__*\`: ${(opts.maxPersonaNames ?? maxPersonasFor({
35790
+ solModel: MAX_PROFILE_MODELS.sol,
35791
+ sonnetModel: MAX_PROFILE_MODELS.sonnet
35792
+ }).map((persona) => persona.toolNameHttp)).map((name) => `\`${name}\``).join(", ") || "none"}. They cannot inspect the repository or transcript and evaluate only the supplied artifact, constraints, and images. Their tool descriptions state the exact lens and boundary. Use the native \`reviewer\` when navigation, commands, tests, or reproduction are required; a peer suits a self-contained artifact. The coordinator has peer tools only and cannot gather missing repository context.`,
35793
+ `\`mcp__${searchKey}__code\` provides semantic-first code search and \`mcp__${searchKey}__web\` provides citable web sources. Advisor is transcript-aware, primary-lead-only, and unavailable to native subagents and browse workers; it can detect framing drift but is not independent verification.${browserClause}${workerClause}${decideClause}${fleetClause}${agentsClause}${artifactClause}`
36074
35794
  ].join("\n");
36075
35795
  }
36076
35796
  if (opts.profile === "fast") {
@@ -36084,9 +35804,9 @@ function buildPeerAwarenessSnippet(opts) {
36084
35804
  return [
36085
35805
  "## Peer review and advisor",
36086
35806
  "",
36087
- `This is the fast launch profile. Advisor is an optional, non-binding, lead-only transcript-aware sounding board for consequential unresolved uncertainty, conflicting evidence, or a genuinely stuck path, not routine progress, waiting, verification, or completion. \`mcp__${fastPeersKey}__oracle\` is exact Opus 5 (1M/high), a stateless last-resort consultant available to the lead and \`Plan\` when required; \`reviewer\` and other subagents cannot call Oracle.`,
35807
+ `This is the fast launch profile. Advisor is an optional, non-binding, lead-only transcript-aware sounding board for trajectory guidance, framing checks, or conflicting signals (direction, not dictation), not routine progress, waiting, verification, or completion. \`mcp__${fastPeersKey}__oracle\` is exact Opus 5 (1M/high), an expert consultant available to the lead and \`Plan\`, preferred over advisor for difficult conceptual, algorithmic, spec/protocol, or architectural tradeoffs evaluated in a self-contained brief; \`reviewer\` and other subagents cannot call Oracle.`,
36088
35808
  "",
36089
- `\`mcp__${fastSearchKey}__code\` is semantic-first code search and \`mcp__${fastSearchKey}__web\` surfaces citable sources. Native Task roster: \`Explore\` (broad discovery), \`Plan\` (sequencing, interfaces, migration risk, acceptance criteria), \`general-purpose\` (mixed execution), \`implementer\` (bounded coding), and \`reviewer\` (repo-aware verification/reproduction). \`Plan\` is an advisory planning capability, not an approval gate. Verify claims with concrete repository evidence and tests before declaring done.${browserClause}${workerBrowseClause}${artifactClause}`,
35809
+ `\`mcp__${fastSearchKey}__code\` is semantic-first code search and \`mcp__${fastSearchKey}__web\` surfaces citable sources. Native Task roster: \`Explore\` (cheap broad discovery, launch in parallel), \`Plan\` (sequencing, interfaces, migration risk, acceptance criteria in plan mode), \`general-purpose\` (mixed execution), \`implementer\` (bounded coding), and \`reviewer\` (repo-aware verification after non-trivial changes). In plan mode, delegate planning to \`Plan\` and do not edit files. Verify claims with concrete repository evidence and tests before declaring done.${browserClause}${workerBrowseClause}${artifactClause}`,
36090
35810
  "Native delegation is ACL-scoped: the lead may invoke all five; `Plan` may invoke `Explore` and `reviewer`; `implementer` and `general-purpose` may invoke `reviewer`; `Explore`, `reviewer`, and `worker-browse` cannot invoke native subagents."
36091
35811
  ].join("\n");
36092
35812
  }
@@ -36143,24 +35863,21 @@ function buildPeerAwarenessSnippet(opts) {
36143
35863
  */
36144
35864
  function buildPeerAwarenessSummary(opts) {
36145
35865
  const key = (g) => opts.groupKeys?.[g] ?? GROUP_META[g].preferredKey;
36146
- if (opts.profile === "max") {
36147
- const directBrowserAvailable = opts.browserToolsAvailable ?? opts.browseAvailable;
36148
- return [
36149
- "## Injected capabilities (summary)",
36150
- "",
36151
- "Max launch profile. The roster offers complementary capabilities: `Explore` for broad discovery, `brainstorm` for open choices, `Plan` for a separate planning view, `implementer` and `general-purpose` for execution, and `reviewer` for repository-aware verification. Small or obvious tasks can be handled directly; independent work can run in parallel. Configured models are the default best fit, and a fresh-context peer or `peer-review-coordinator` can reduce correlated blind spots when risk and uncertainty justify it. Model output is evidence to synthesize, not a vote. Advisor is optional, non-binding, and primary-lead-only counsel for a focused consequential uncertainty the normal evidence and roles cannot settle; it has no approval or workflow authority. The lead decides. On every retained max path, replace Gemini 3.1 Pro with Grok 4.6/high when available, otherwise Gemini 3.8 Flash 1M/high.",
36152
- `\`mcp__${key("search")}__code\` and \`mcp__${key("search")}__web\` provide code and web search.${directBrowserAvailable ? ` \`mcp__${key("browser")}__*\` provides browser control.` : ""}${opts.browseAvailable ? ` \`worker-browse\` dispatches the browse-only worker through \`mcp__${key("workers")}__browse\`.` : ""}${opts.standInAvailable ? ` \`mcp__${key("decide")}__stand_in\` provides deterministic decision tiebreak.` : ""}${opts.fleetAvailable ? ` \`mcp__${key("fleet")}__*\` provides gated remote sessions.` : ""}${opts.agentToolsAvailable ? " First-mate remains available when its own gate passes." : ""}${opts.artifactToolsAvailable ? ` \`mcp__${key("peers")}__artifact_*\` provides human review with plan auto-open.` : ""}`
36153
- ].join("\n");
36154
- }
35866
+ if (opts.profile === "max") return [
35867
+ "## Injected capabilities (summary)",
35868
+ "",
35869
+ "Max native roster: `Explore` for broad discovery; `Plan` for interfaces, sequencing, risks, and acceptance criteria; `general-purpose` for bounded mixed execution; `implementer` for settled coding changes; `reviewer` for repository-aware verification and reproduction; `brainstorm` for materially different open approaches; and `peer-review-coordinator` for several distinct fresh-context review lenses. Configured models are deliberate role defaults.",
35870
+ "Native roles can inspect the repository within their listed tools. Fresh-context peers see only the artifact and constraints supplied to them. Advisor is transcript-aware, optional, non-binding, and primary-lead-only; it can identify framing drift but is not independent verification or an approval gate. Detailed routing lives in each role or tool description, and the full gated capability inventory lives in CLAUDE.md."
35871
+ ].join("\n");
36155
35872
  if (opts.profile === "fast") {
36156
35873
  const browserClause = opts.browserToolsAvailable ?? opts.browseAvailable ? ` \`mcp__${key("browser")}__*\` provides the opt-in browser.` : "";
36157
35874
  const workerBrowseClause = opts.browseAvailable ? ` \`worker-browse\` runs delegated browsing tasks through \`mcp__${key("workers")}__browse\`.` : "";
36158
35875
  return [
36159
35876
  "## Injected capabilities (summary)",
36160
35877
  "",
36161
- "Fast launch profile. Task roster: `Explore`, `Plan`, `general-purpose`, `implementer`, `reviewer`. `Plan` is an advisory planning capability, not an approval gate. Verify claims with concrete repository evidence and tests before declaring done.",
35878
+ "Fast launch profile. Task roster: `Explore` (cheap discovery in parallel), `Plan` (planning in plan mode), `general-purpose`, `implementer`, `reviewer` (verification after implementation). Verify claims with concrete repository evidence and tests before declaring done.",
36162
35879
  "Native delegation is ACL-scoped: the lead may invoke all five; `Plan` may invoke `Explore` and `reviewer`; `implementer` and `general-purpose` may invoke `reviewer`; `Explore`, `reviewer`, and `worker-browse` cannot invoke native subagents.",
36163
- `Advisor is optional, non-binding, transcript-aware, and lead-only; use it for consequential unresolved uncertainty, not routine progress or workflow gates. \`mcp__${key("peers")}__oracle\` is exact Opus 5 (1M/high), stateless and last resort for the lead and \`Plan\`. \`mcp__${key("search")}__code\` and \`mcp__${key("search")}__web\` provide search.${browserClause}${workerBrowseClause}${opts.artifactToolsAvailable ? ` \`mcp__${key("peers")}__artifact_*\` provides human review with plan auto-open.` : ""}`
35880
+ `Advisor is optional, non-binding, transcript-aware, and lead-only for trajectory guidance or framing checks (direction, not dictation). \`mcp__${key("peers")}__oracle\` is exact Opus 5 (1M/high), an expert consultant for the lead and \`Plan\`, preferred over advisor for substantive trade-offs. \`mcp__${key("search")}__code\` and \`mcp__${key("search")}__web\` provide search.${browserClause}${workerBrowseClause}${opts.artifactToolsAvailable ? ` \`mcp__${key("peers")}__artifact_*\` provides human review with plan auto-open.` : ""}`
36164
35881
  ].join("\n");
36165
35882
  }
36166
35883
  const renderNative = (name) => {
@@ -36254,14 +35971,19 @@ function personasFor(opts) {
36254
35971
  }
36255
35972
  return result;
36256
35973
  }
36257
- function maxPersona(agentName, toolNameHttp, model, endpoint, description, baseInstructions, allowedEfforts, defaultEffort) {
35974
+ function maxPersona(agentName, toolNameHttp, model, endpoint, copy, allowedEfforts, defaultEffort) {
35975
+ const promptOpts = {
35976
+ ...copy,
35977
+ name: toolNameHttp,
35978
+ model
35979
+ };
36258
35980
  return {
36259
35981
  agentName,
36260
35982
  toolNameHttp,
36261
35983
  model,
36262
35984
  endpoint,
36263
- description,
36264
- baseInstructions,
35985
+ description: maxPeerDescription(promptOpts),
35986
+ baseInstructions: maxPeerInstructions(promptOpts),
36265
35987
  agentPrompt: "",
36266
35988
  writeCapable: false,
36267
35989
  requiresHttp: true,
@@ -36272,40 +35994,88 @@ function maxPersona(agentName, toolNameHttp, model, endpoint, description, baseI
36272
35994
  /** Max-only peer registry. It never changes the standard persona registry. */
36273
35995
  function maxPersonasFor(opts) {
36274
35996
  const sol = opts.solModel ?? MAX_PROFILE_MODELS.sol;
36275
- const luna = opts.lunaModel ?? MAX_PROFILE_MODELS.luna;
35997
+ const codex = opts.codexModel;
35998
+ const sonnet = opts.sonnetModel ?? MAX_PROFILE_MODELS.sonnet;
36276
35999
  const opus = opts.opusModel;
36277
36000
  const gemini = opts.geminiModel;
36278
36001
  const grok = opts.grokModel;
36279
- const result = [maxPersona("sol-critic", "sol_critic", sol, "/v1/responses", `Max-profile strategic critic backed by ${sol} (OpenAI). Reviews plans, designs, tradeoffs, and large artifacts for unsound assumptions and missing failure modes.`, `You are sol_critic, a fresh-context adversarial architecture critic running on ${sol}. Review the complete artifact and constraints, report concrete assumptions and failure modes, and do not invent objections.`, [
36002
+ const result = [maxPersona("sol-critic", "sol_critic", sol, "/v1/responses", {
36003
+ kind: "strategic critic",
36004
+ lens: "architecture, assumptions, alternatives, and system-level failure modes",
36005
+ useWhen: "a self-contained plan or design needs adversarial review before a consequential decision",
36006
+ notFor: "line-level code review or claims a repository check can settle"
36007
+ }, [
36008
+ "low",
36009
+ "medium",
36010
+ "high",
36011
+ "xhigh"
36012
+ ], "xhigh")];
36013
+ if (codex) result.push(maxPersona("codex-reviewer", "codex_reviewer", codex, "/v1/responses", {
36014
+ kind: "line-level reviewer",
36015
+ lens: "correctness, edge cases, security, concurrency, and resource handling",
36016
+ useWhen: "a concrete code excerpt or diff needs a focused implementation review",
36017
+ notFor: "open architecture decisions, repository exploration, or executing tests"
36018
+ }, [
36280
36019
  "low",
36281
36020
  "medium",
36282
36021
  "high",
36283
36022
  "xhigh"
36284
- ], "xhigh"), maxPersona("luna-reviewer", "luna_reviewer", luna, "/v1/responses", `Max-profile line-level reviewer backed by ${luna} (OpenAI). Reviews concrete diffs and files for bugs, edge cases, security, concurrency, and resource issues.`, `You are luna_reviewer, a fresh-context line-level code reviewer running on ${luna}. Cite real file:line locations and report severity-ranked findings with minimal fixes.`, [
36023
+ ], "xhigh"));
36024
+ else if (sonnet) result.push(maxPersona("sonnet-reviewer", "sonnet_reviewer", sonnet, "/v1/messages", {
36025
+ kind: "line-level reviewer",
36026
+ lens: "correctness, edge cases, security, concurrency, and resource handling",
36027
+ useWhen: "a concrete code excerpt or diff needs a focused implementation review",
36028
+ notFor: "open architecture decisions, repository exploration, or executing tests"
36029
+ }, [
36285
36030
  "low",
36286
36031
  "medium",
36287
36032
  "high",
36288
36033
  "xhigh"
36289
- ], "high")];
36290
- if (opus) result.push(maxPersona("opus-critic", "opus_critic", opus, "/v1/messages", `Max-profile same-lab critic backed by ${opus} (Anthropic). Provides a fresh-context sanity check for plans, designs, and code tradeoffs.`, `You are opus_critic, a fresh-context adversarial reviewer running on ${opus}. Find cognitive momentum and unsupported assumptions in the supplied artifact; silence on sound work is valid.`, [
36034
+ ], "xhigh"));
36035
+ if (opus) result.push(maxPersona("opus-critic", "opus_critic", opus, "/v1/messages", {
36036
+ kind: "strategic critic",
36037
+ lens: "coherence, requirement drift, overcomplication, and cognitive momentum",
36038
+ useWhen: "a self-contained design or decision needs a fresh Anthropic-family sanity check",
36039
+ notFor: "independent repository verification or line-level defect discovery"
36040
+ }, [
36291
36041
  "low",
36292
36042
  "medium",
36293
36043
  "high"
36294
36044
  ], "high"));
36295
- if (gemini) result.push(maxPersona("gemini-critic", "gemini_critic", gemini, "/v1/chat/completions", `Max-profile third-lab strategic critic backed by ${gemini} (Google). Reviews plans, invariants, proofs, and formal tradeoffs.`, `You are gemini_critic, a fresh-context strategic critic running on ${gemini}. Review the artifact against its constraints and report only concrete invariant or assumption failures.`, [
36045
+ if (gemini) result.push(maxPersona("gemini-critic", "gemini_critic", gemini, "/v1/chat/completions", {
36046
+ kind: "strategic critic",
36047
+ lens: "invariants, formal consistency, proofs, and constraint violations",
36048
+ useWhen: "a self-contained plan or argument depends on subtle logical invariants",
36049
+ notFor: "line-level implementation review, repository exploration, or executing tests"
36050
+ }, [
36296
36051
  "low",
36297
36052
  "medium",
36298
36053
  "high"
36299
- ], "high"), maxPersona("gemini-reviewer", "gemini_reviewer", gemini, "/v1/chat/completions", `Max-profile line-level reviewer backed by ${gemini} (Google). Provides an independent second-lab review of concrete code.`, `You are gemini_reviewer, a fresh-context line-level code reviewer running on ${gemini}. Cite real file:line locations and report severity-ranked findings.`, [
36054
+ ], "high"), maxPersona("gemini-reviewer", "gemini_reviewer", gemini, "/v1/chat/completions", {
36055
+ kind: "line-level reviewer",
36056
+ lens: "boundary conditions, state transitions, and concrete implementation defects",
36057
+ useWhen: "a supplied code excerpt or diff needs an independent Google-family review",
36058
+ notFor: "architecture ideation, repository exploration, or executing tests"
36059
+ }, [
36300
36060
  "low",
36301
36061
  "medium",
36302
36062
  "high"
36303
36063
  ], "high"));
36304
- if (grok) result.push(maxPersona("grok-critic", "grok_critic", grok, "/v1/responses", `Max-profile strategic critic backed by ${grok} (xAI). Challenges plans, designs, and decisions with a fresh context.`, `You are grok_critic, a fresh-context strategic critic running on ${grok}. Challenge the supplied artifact against its constraints and report concrete findings only.`, [
36064
+ if (grok) result.push(maxPersona("grok-critic", "grok_critic", grok, "/v1/responses", {
36065
+ kind: "strategic critic",
36066
+ lens: "operational counterexamples, hidden assumptions, and alternate strategies",
36067
+ useWhen: "a self-contained plan or decision needs a distinct xAI-family challenge",
36068
+ notFor: "line-level implementation review, repository exploration, or executing tests"
36069
+ }, [
36305
36070
  "low",
36306
36071
  "medium",
36307
36072
  "high"
36308
- ], "medium"), maxPersona("grok-reviewer", "grok_reviewer", grok, "/v1/responses", `Max-profile line-level reviewer backed by ${grok} (xAI). Reviews concrete code and diffs at medium effort.`, `You are grok_reviewer, a fresh-context line-level code reviewer running on ${grok}. Cite real file:line locations and report severity-ranked findings.`, [
36073
+ ], "medium"), maxPersona("grok-reviewer", "grok_reviewer", grok, "/v1/responses", {
36074
+ kind: "line-level reviewer",
36075
+ lens: "runtime behavior, concurrency, resources, and operational edge cases",
36076
+ useWhen: "a supplied code excerpt or diff needs an xAI-family implementation review",
36077
+ notFor: "open design work, repository exploration, or executing tests"
36078
+ }, [
36309
36079
  "low",
36310
36080
  "medium",
36311
36081
  "high"
@@ -37492,6 +37262,6 @@ function enumerateInjectedMcpToolNames(groupKeys, opts = {}) {
37492
37262
  return [...new Set(names)];
37493
37263
  }
37494
37264
  //#endregion
37495
- export { UNKNOWN_EFFORT_ANCHOR as $, warmTreeSitterPool as $t, TOOLBELT_TOOLS$1 as A, MAX_LUNA_HIGH_ALIAS_ID as An, countTokens as At, resolveAdvisorEffort as B, resolveModelAlias as Bn, resolveMcpToolTimeoutMs as Bt, runWorkerAgent as C, withOneMSuffix as Cn, reviewerFastModel as Ct, toolbeltEnabled as D, LUNA_REAL_MODEL_ID as Dn, standInToolEnabled as Dt, buildToolbeltAwareness as E, LUNA_HAIKU_ALIAS_ID as En, scribeModel as Et, ADVISOR_TOOL_INSTRUCTIONS as F, isRetiredFastModelAlias as Fn, findLaunchBySecret as Ft, repairRejectedThinkingHistory as G, parseJsonOrDiagnose as Gt, formatThinkingRepairDecline as H, validateMaxProfileLaunch as Hn, createChatCompletions as Ht, FAST_ADVISOR_TOOL_INSTRUCTIONS as I, maxAliasEffort as In, registerLaunch as It, isControllerClosedError as J, hasSupportedBrowserInstalled as Jt, buildAnthropicErrorEvent as K, normalizeOpenAIUsage as Kt, buildAdvisorStream as L, maxAliasModel as Ln, unregisterLaunch as Lt, satisfiesMinVersion as M, canonicalizeAliasModel as Mn, getTextTokenCount as Mt, searchWeb as N, formatFastPrerequisiteFailure as Nn, getTokenCount as Nt, toolbeltSkipSet as O, LUNA_SCOUT_ALIAS_ID as On, workerToolsEnabled as Ot, ADVISOR_INTERNAL_TOOL_NAME as P, isMaxModelAlias as Pn, getTokenizerFromModel as Pt, EFFORT_ORDER as Q, extractZipMember as Qt, injectAdvisorTool as R, profileDescriptor as Rn, assembleResponsesPayload as Rt, resolveWorkerRunOpts as S, oneMContextDisabled as Sn, resolveGeminiReviewModel as St, availableToolCommands as T, LUNA_DRIVER_ALIAS_ID as Tn, scoutModel as Tt, rememberThinkingHistoryRepair as U, withInstallLock as Un, MAX_RESPONSE_BODY_BYTES as Ut, resolveAdvisorModel as V, validateFastProfilePrerequisites as Vn, createResponses as Vt, repairKnownThinkingHistory as W, readResponseBodyCapped as Wt, readIteratorWithTimeout as X, provisionAndIndexColbert as Xt, logStreamError as Y, colbertDegradedWarning as Yt, relayAnthropicStream as Z, extractTarGzMember as Zt, REVIEW_DEFAULT_MODEL as _, resolveLeadSlugArg as _n, fleetToolsEnabled as _t, buildAgentPrompt as a, toolbeltPathOverride as an, artifactToolsEnabled as at, resolveDefaultModel as b, classifyMessagesRoute as bn, implementerFastModel as bt, enumerateInjectedMcpToolNames as c, DEFAULT_CLAUDE_MODEL_FALLBACKS as cn, browserCompoundToolsEnabled as ct, BROWSE_DEFAULT_MODEL as d, DEFAULT_PORT as dn, fastGeneralPurposeModel as dt, provisionTreeSitterAssets as en, bucketEffort as et, DEFAULT_MODEL_CHAIN as f, UPSTREAM_FETCH_TIMEOUT_MS as fn, fastImplementerModel as ft, PLAN_DEFAULT_MODEL as g, pickClaudeDefault as gn, fastScoutModel as gt, IMPLEMENT_DEFAULT_MODEL as h, isBudgetClaudeLead as hn, fastReviewerModel as ht, assertMcpToolSurfaceConsistent as i, collapsePathKeys as in, agentToolsEnabled as it, assetFor as j, MAX_LUNA_MAX_ALIAS_ID as jn, createMessages as jt, vscodeRipgrepPath as k, LUNA_SONNET_ALIAS_ID as kn, shimDefaultsToXhigh as kt, maxPersonasFor as l, DEFAULT_CODEX_MODEL as ln, browserToolsEnabled as lt, EXPLORE_DEFAULT_THINKING as m, generateRandomPort as mn, fastPlanModel as mt, MCP_GROUPS as n, DEFINITION_OF_GREATNESS as nn, handleMcpDelete as nt, buildPeerAwarenessSnippet as o, BUDGET_SMALL_FAST_CATALOG_ID as on, brainstormModel as ot, EXPLORE_DEFAULT_MODEL as p, UPSTREAM_INACTIVITY_TIMEOUT_MS as pn, fastOracleModel as pt, buildOpenAIErrorEvent as q, provisionBrowserAssets as qt, agentNamesForToolAllowlist as r, shouldUseInsecureTls as rn, handleMcpPost as rt, buildPeerAwarenessSummary as s, BUDGET_SMALL_FAST_SLUG as sn, browseAgentEnabled as st, GROUP_META as t, CONDENSED_OPERATING_SEQUENCE as tn, clampEffort as tt, personasFor as u, DEFAULT_CODEX_MODEL_FALLBACKS as un, fastAdvisorModel as ut, TEST_DEFAULT_MODEL as v, upstreamAllowH2 as vn, geminiAvailable as vt, buildEnv as w, withOneMSuffixForLead as wn, reviewerModel as wt, resolveModeDefaults as x, catalogAdvertises1M as xn, nativeSubagentModel as xt, appendPlanReminder as y, upstreamMaxConnections as yn, generalPurposeFastModel as yt, isAdvisorRequested as z, resolveLaunchProfile as zn, warnOnTokenPriceDrift as zt };
37265
+ export { UNKNOWN_EFFORT_ANCHOR as $, warmTreeSitterPool as $t, TOOLBELT_TOOLS$1 as A, countTokens as At, resolveAdvisorEffort as B, resolveMcpToolTimeoutMs as Bt, runWorkerAgent as C, withOneMSuffix as Cn, reviewerFastModel as Ct, toolbeltEnabled as D, standInToolEnabled as Dt, buildToolbeltAwareness as E, scribeModel as Et, ADVISOR_TOOL_INSTRUCTIONS as F, findLaunchBySecret as Ft, repairRejectedThinkingHistory as G, parseJsonOrDiagnose as Gt, formatThinkingRepairDecline as H, createChatCompletions as Ht, FAST_ADVISOR_TOOL_INSTRUCTIONS as I, registerLaunch as It, isControllerClosedError as J, hasSupportedBrowserInstalled as Jt, buildAnthropicErrorEvent as K, normalizeOpenAIUsage as Kt, buildAdvisorStream as L, unregisterLaunch as Lt, satisfiesMinVersion as M, getTextTokenCount as Mt, searchWeb as N, getTokenCount as Nt, toolbeltSkipSet as O, workerToolsEnabled as Ot, ADVISOR_INTERNAL_TOOL_NAME as P, getTokenizerFromModel as Pt, EFFORT_ORDER as Q, extractZipMember as Qt, injectAdvisorTool as R, assembleResponsesPayload as Rt, resolveWorkerRunOpts as S, oneMContextDisabled as Sn, resolveGeminiReviewModel as St, availableToolCommands as T, withInstallLock as Tn, scoutModel as Tt, rememberThinkingHistoryRepair as U, MAX_RESPONSE_BODY_BYTES as Ut, resolveAdvisorModel as V, createResponses as Vt, repairKnownThinkingHistory as W, readResponseBodyCapped as Wt, readIteratorWithTimeout as X, provisionAndIndexColbert as Xt, logStreamError as Y, colbertDegradedWarning as Yt, relayAnthropicStream as Z, extractTarGzMember as Zt, REVIEW_DEFAULT_MODEL as _, resolveLeadSlugArg as _n, fleetToolsEnabled as _t, buildAgentPrompt as a, toolbeltPathOverride as an, artifactToolsEnabled as at, resolveDefaultModel as b, classifyMessagesRoute as bn, implementerFastModel as bt, enumerateInjectedMcpToolNames as c, DEFAULT_CLAUDE_MODEL_FALLBACKS as cn, browserCompoundToolsEnabled as ct, BROWSE_DEFAULT_MODEL as d, DEFAULT_PORT as dn, fastGeneralPurposeModel as dt, provisionTreeSitterAssets as en, bucketEffort as et, DEFAULT_MODEL_CHAIN as f, UPSTREAM_FETCH_TIMEOUT_MS as fn, fastImplementerModel as ft, PLAN_DEFAULT_MODEL as g, pickClaudeDefault as gn, fastScoutModel as gt, IMPLEMENT_DEFAULT_MODEL as h, isBudgetClaudeLead as hn, fastReviewerModel as ht, assertMcpToolSurfaceConsistent as i, collapsePathKeys as in, agentToolsEnabled as it, assetFor as j, createMessages as jt, vscodeRipgrepPath as k, shimDefaultsToXhigh as kt, maxPersonasFor as l, DEFAULT_CODEX_MODEL as ln, browserToolsEnabled as lt, EXPLORE_DEFAULT_THINKING as m, generateRandomPort as mn, fastPlanModel as mt, MCP_GROUPS as n, DEFINITION_OF_GREATNESS as nn, handleMcpDelete as nt, buildPeerAwarenessSnippet as o, BUDGET_SMALL_FAST_CATALOG_ID as on, brainstormModel as ot, EXPLORE_DEFAULT_MODEL as p, UPSTREAM_INACTIVITY_TIMEOUT_MS as pn, fastOracleModel as pt, buildOpenAIErrorEvent as q, provisionBrowserAssets as qt, agentNamesForToolAllowlist as r, shouldUseInsecureTls as rn, handleMcpPost as rt, buildPeerAwarenessSummary as s, BUDGET_SMALL_FAST_SLUG as sn, browseAgentEnabled as st, GROUP_META as t, CONDENSED_OPERATING_SEQUENCE as tn, clampEffort as tt, personasFor as u, DEFAULT_CODEX_MODEL_FALLBACKS as un, fastAdvisorModel as ut, TEST_DEFAULT_MODEL as v, upstreamAllowH2 as vn, geminiAvailable as vt, buildEnv as w, withOneMSuffixForLead as wn, reviewerModel as wt, resolveModeDefaults as x, catalogAdvertises1M as xn, nativeSubagentModel as xt, appendPlanReminder as y, upstreamMaxConnections as yn, generalPurposeFastModel as yt, isAdvisorRequested as z, warnOnTokenPriceDrift as zt };
37496
37266
 
37497
- //# sourceMappingURL=peer-mcp-personas-DXOdPbev.js.map
37267
+ //# sourceMappingURL=peer-mcp-personas-C_38ckts.js.map