github-router 0.3.275 → 0.3.276

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 (72) hide show
  1. package/dist/{attribution-settings-ZOaCUrYY.js → attribution-settings-VOPvSn6v.js} +64 -48
  2. package/dist/attribution-settings-VOPvSn6v.js.map +1 -0
  3. package/dist/{auth-Q1tfmfCT.js → auth-CYoRwhC9.js} +3 -3
  4. package/dist/{auth-Q1tfmfCT.js.map → auth-CYoRwhC9.js.map} +1 -1
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/{check-usage-CHLz4tU_.js → check-usage-DDUyg8ZB.js} +4 -4
  7. package/dist/{check-usage-CHLz4tU_.js.map → check-usage-DDUyg8ZB.js.map} +1 -1
  8. package/dist/{claude-Cl4gYoOZ.js → claude-OTHh7iKz.js} +26 -16
  9. package/dist/claude-OTHh7iKz.js.map +1 -0
  10. package/dist/{codex-D_IXUgKf.js → codex-tCxK30Su.js} +5 -5
  11. package/dist/{codex-D_IXUgKf.js.map → codex-tCxK30Su.js.map} +1 -1
  12. package/dist/{debug-CuuxCk_J.js → debug-CJgsxoVw.js} +2 -2
  13. package/dist/{debug-CuuxCk_J.js.map → debug-CJgsxoVw.js.map} +1 -1
  14. package/dist/engine-BKJKMAzh.js +2 -0
  15. package/dist/{gate-discovery-Br448Md6.js → gate-discovery-nf7PGgnS.js} +5 -5
  16. package/dist/{gate-discovery-Br448Md6.js.map → gate-discovery-nf7PGgnS.js.map} +1 -1
  17. package/dist/{get-copilot-usage-BRN18uMJ.js → get-copilot-usage-D1OAH0EU.js} +2 -2
  18. package/dist/{get-copilot-usage-BRN18uMJ.js.map → get-copilot-usage-D1OAH0EU.js.map} +1 -1
  19. package/dist/{internal-artifact-open-CDqPfegE.js → internal-artifact-open-BCz9lnq0.js} +2 -2
  20. package/dist/{internal-artifact-open-CDqPfegE.js.map → internal-artifact-open-BCz9lnq0.js.map} +1 -1
  21. package/dist/{internal-plan-review-CH9qTHoZ.js → internal-plan-review-jRMpHu68.js} +3 -3
  22. package/dist/{internal-plan-review-CH9qTHoZ.js.map → internal-plan-review-jRMpHu68.js.map} +1 -1
  23. package/dist/{internal-prompt-submit-Bve1s4z_.js → internal-prompt-submit-CqWRFCuv.js} +4 -4
  24. package/dist/{internal-prompt-submit-Bve1s4z_.js.map → internal-prompt-submit-CqWRFCuv.js.map} +1 -1
  25. package/dist/{internal-session-bind-Cc8bMXHK.js → internal-session-bind-BiHWDxuC.js} +2 -2
  26. package/dist/{internal-session-bind-Cc8bMXHK.js.map → internal-session-bind-BiHWDxuC.js.map} +1 -1
  27. package/dist/{internal-stop-hook-DMLQ8vRZ.js → internal-stop-hook-Ds9LwmZA.js} +5 -5
  28. package/dist/{internal-stop-hook-DMLQ8vRZ.js.map → internal-stop-hook-Ds9LwmZA.js.map} +1 -1
  29. package/dist/{internal-stop-review-CWE7_QVv.js → internal-stop-review-BOFj7R3q.js} +2 -2
  30. package/dist/{internal-stop-review-CWE7_QVv.js.map → internal-stop-review-BOFj7R3q.js.map} +1 -1
  31. package/dist/{lifecycle-AgNOtFRv.js → lifecycle-AGXnd-ZY.js} +2 -2
  32. package/dist/{lifecycle-AgNOtFRv.js.map → lifecycle-AGXnd-ZY.js.map} +1 -1
  33. package/dist/lifecycle-DCrKbaIU.js +2 -0
  34. package/dist/lifecycle-KKSTKwd6.js +2 -0
  35. package/dist/{lifecycle-0XrazT05.js → lifecycle-LA4rAuAL.js} +2 -2
  36. package/dist/{lifecycle-0XrazT05.js.map → lifecycle-LA4rAuAL.js.map} +1 -1
  37. package/dist/main.js +14 -14
  38. package/dist/{models-d0gkuYGy.js → models-4Q45Q2Dw.js} +3 -3
  39. package/dist/{models-d0gkuYGy.js.map → models-4Q45Q2Dw.js.map} +1 -1
  40. package/dist/{orchestration-B_Q3ncXI.js → orchestration-CpkG8ScN.js} +2 -2
  41. package/dist/{orchestration-B_Q3ncXI.js.map → orchestration-CpkG8ScN.js.map} +1 -1
  42. package/dist/paths-DN3Nio42.js +2 -0
  43. package/dist/{paths-Bg1_DWhi.js → paths-j2B7b0DZ.js} +4 -4
  44. package/dist/{paths-Bg1_DWhi.js.map → paths-j2B7b0DZ.js.map} +1 -1
  45. package/dist/{peer-mcp-personas-TMOZJhfy.js → peer-mcp-personas-DRL_xT4h.js} +96 -17
  46. package/dist/{peer-mcp-personas-TMOZJhfy.js.map → peer-mcp-personas-DRL_xT4h.js.map} +1 -1
  47. package/dist/{plan-review-hook-BKOcW5s4.js → plan-review-hook-Dk5zTNke.js} +2 -2
  48. package/dist/{plan-review-hook-BKOcW5s4.js.map → plan-review-hook-Dk5zTNke.js.map} +1 -1
  49. package/dist/{prompt-submit-hook-F7Zih_au.js → prompt-submit-hook-lvTWwaTV.js} +2 -2
  50. package/dist/{prompt-submit-hook-F7Zih_au.js.map → prompt-submit-hook-lvTWwaTV.js.map} +1 -1
  51. package/dist/{provision-BJ5vUpmp.js → provision-HzZ547dW.js} +4 -4
  52. package/dist/{provision-BJ5vUpmp.js.map → provision-HzZ547dW.js.map} +1 -1
  53. package/dist/{serve-DMA82DFJ.js → serve-CM3OmF4I.js} +21 -12
  54. package/dist/serve-CM3OmF4I.js.map +1 -0
  55. package/dist/{server-setup-CVfqSkh_.js → server-setup-C9r7jYnz.js} +6 -6
  56. package/dist/{server-setup-CVfqSkh_.js.map → server-setup-C9r7jYnz.js.map} +1 -1
  57. package/dist/{start-BGze5TnZ.js → start-KAUCsDao.js} +3 -3
  58. package/dist/{start-BGze5TnZ.js.map → start-KAUCsDao.js.map} +1 -1
  59. package/dist/{stop-gate-hook-BqpumJtl.js → stop-gate-hook-CaUrldLh.js} +2 -2
  60. package/dist/{stop-gate-hook-BqpumJtl.js.map → stop-gate-hook-CaUrldLh.js.map} +1 -1
  61. package/dist/{stop-gate-policy-C0XOBZhB.js → stop-gate-policy-lAabj_pP.js} +2 -2
  62. package/dist/{stop-gate-policy-C0XOBZhB.js.map → stop-gate-policy-lAabj_pP.js.map} +1 -1
  63. package/dist/{token-Bz6HoH2H.js → token-CxPaBEUS.js} +2 -2
  64. package/dist/{token-Bz6HoH2H.js.map → token-CxPaBEUS.js.map} +1 -1
  65. package/package.json +1 -1
  66. package/dist/attribution-settings-ZOaCUrYY.js.map +0 -1
  67. package/dist/claude-Cl4gYoOZ.js.map +0 -1
  68. package/dist/engine-Drs3cxLW.js +0 -2
  69. package/dist/lifecycle-2M0IThRr.js +0 -2
  70. package/dist/lifecycle-C8kFsAj-.js +0 -2
  71. package/dist/paths-BbHtQAOs.js +0 -2
  72. package/dist/serve-DMA82DFJ.js.map +0 -1
@@ -1,13 +1,13 @@
1
1
  import { t as getPackageVersion } from "./version-_Q1WpsQp.js";
2
- import { t as PATHS } from "./paths-Bg1_DWhi.js";
3
- import { A as state, 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-Bz6HoH2H.js";
2
+ import { t as PATHS } from "./paths-j2B7b0DZ.js";
3
+ import { A as state, 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-CxPaBEUS.js";
4
4
  import { a as resolveExecutable, c as runManagedExeCapture, i as parseIntEnv, l as spawnTaskkillBestEffort, r as parseBoolEnv } from "./exec-y8C_MU8A.js";
5
- import { i as registerExitHandlers$1, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-0XrazT05.js";
5
+ import { i as registerExitHandlers$1, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-LA4rAuAL.js";
6
6
  import { t as MCP_WORKSPACE_HEADER } from "./mcp-workspace-header-CGJbNeHb.js";
7
7
  import { n as ArtifactError, r as applyInsecureTls, t as ArtifactClient } from "./client-CQMfroGV.js";
8
- import { n as isPidAlive$1, r as registerColbertExitHandlers, s as trackChild, t as getColbertInstanceUuid } from "./lifecycle-AgNOtFRv.js";
9
- import { h as runGateChecks, m as sealedGateIds, p as resolveSealedGate } from "./stop-gate-hook-BqpumJtl.js";
10
- import { t as liveExec } from "./orchestration-B_Q3ncXI.js";
8
+ import { n as isPidAlive$1, r as registerColbertExitHandlers, s as trackChild, t as getColbertInstanceUuid } from "./lifecycle-AGXnd-ZY.js";
9
+ import { h as runGateChecks, m as sealedGateIds, p as resolveSealedGate } from "./stop-gate-hook-CaUrldLh.js";
10
+ import { t as liveExec } from "./orchestration-CpkG8ScN.js";
11
11
  import { createRequire } from "node:module";
12
12
  import consola from "consola";
13
13
  import { chmodSync, closeSync, constants, cpSync, existsSync, mkdirSync, openSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync, writeSync } from "node:fs";
@@ -18470,7 +18470,7 @@ function logAudit$1(record) {
18470
18470
  try {
18471
18471
  const fs = await import("node:fs/promises");
18472
18472
  const path = await import("node:path");
18473
- const { PATHS } = await import("./paths-BbHtQAOs.js");
18473
+ const { PATHS } = await import("./paths-DN3Nio42.js");
18474
18474
  const dir = path.join(PATHS.APP_DIR, "browser-mcp");
18475
18475
  await fs.mkdir(dir, { recursive: true });
18476
18476
  const line = JSON.stringify({
@@ -26501,13 +26501,23 @@ function geminiAvailable(source = state) {
26501
26501
  /**
26502
26502
  * First id in `chain` that is present in the live catalog. With
26503
26503
  * `requireToolCalls`, skips an entry whose catalog record does not advertise
26504
- * `tool_calls` (strict `!== true`, so absent metadata fails closed). Returns
26505
- * undefined when the catalog is unavailable or nothing in the chain matches, so
26506
- * every caller degrades gracefully rather than throwing on a thin catalog.
26504
+ * `tool_calls` (strict `!== true`, so absent metadata fails closed). With
26505
+ * `minContextTokens`, skips an entry whose advertised context window is below
26506
+ * that floor (absent metadata likewise fails closed). Returns undefined when
26507
+ * the catalog is unavailable or nothing in the chain matches, so every caller
26508
+ * degrades gracefully rather than throwing on a thin catalog.
26507
26509
  *
26508
26510
  * Extracted from `resolveOpenAiFrontier` so the per-agent resolvers below share
26509
26511
  * one walk instead of hand-copying it. Ids are matched EXACTLY against
26510
26512
  * `catalog.id` — no slug translation, matching the pre-existing behavior.
26513
+ *
26514
+ * `minContextTokens` is OPT-IN because the two constraints are genuinely
26515
+ * per-agent: the `generic*` chains promise 1M end to end, while `scoutModel`
26516
+ * deliberately keeps a 400K last resort for its wider availability. Enforcing
26517
+ * the floor here rather than by comment is what stops a chain silently
26518
+ * degrading when an id's advertised window shrinks upstream — `withOneMSuffix`
26519
+ * would then just omit the `[1m]` bracket, and the agent would be budgeted at
26520
+ * Claude Code's 200K default with no signal that anything changed.
26511
26521
  */
26512
26522
  function firstPresentInCatalog(chain, opts) {
26513
26523
  const models = state.models?.data;
@@ -26516,6 +26526,7 @@ function firstPresentInCatalog(chain, opts) {
26516
26526
  const found = models.find((m) => m.id === id);
26517
26527
  if (!found) continue;
26518
26528
  if (opts?.requireToolCalls && found.capabilities?.supports?.tool_calls !== true) continue;
26529
+ if (opts?.minContextTokens != null && (found.capabilities?.limits?.max_context_window_tokens ?? 0) < opts.minContextTokens) continue;
26519
26530
  return id;
26520
26531
  }
26521
26532
  }
@@ -26595,9 +26606,66 @@ function scribeModel() {
26595
26606
  * caller drop the agent instead, so the lead falls back to the CLI's `Explore`
26596
26607
  * (same behavior as before `scout` existed) rather than to an expensive
26597
26608
  * impostor wearing the cheap agent's name.
26609
+ *
26610
+ * `gpt-5.6-luna` sits between the two originals because the old chain fell
26611
+ * straight from a 1M model to 400K `gpt-5.4-mini`, which loses the `[1m]`
26612
+ * bracket and drops Claude Code's accounting to its 200K default. Luna is
26613
+ * cheaper than mini, keeps 1M, and is cross-vendor from the primary, so it
26614
+ * covers a Gemini-side outage that a same-vendor entry would not.
26615
+ *
26616
+ * Deliberately NO `minContextTokens` floor, unlike the `generic*` resolvers:
26617
+ * `gpt-5.4-mini` is retained as the last resort precisely BECAUSE it is the
26618
+ * widest-availability id here (its `restricted_to` includes `individual_trial`
26619
+ * and `edu`, which neither flash nor luna does). On a thin non-enterprise
26620
+ * catalog a 400K scout beats no scout.
26598
26621
  */
26599
26622
  function scoutModel() {
26600
- return firstPresentInCatalog([EXPLORE_DEFAULT_MODEL, DEFAULT_MODEL], { requireToolCalls: true });
26623
+ return firstPresentInCatalog([
26624
+ EXPLORE_DEFAULT_MODEL,
26625
+ "gpt-5.6-luna",
26626
+ DEFAULT_MODEL
26627
+ ], { requireToolCalls: true });
26628
+ }
26629
+ /** Model for `generic` — the mid-tier catch-all. Absent → the agent is dropped.
26630
+ *
26631
+ * `gpt-5.6-sol` is deliberately NOT in this chain: the OpenAI frontier coder is
26632
+ * already `implementer`'s job, and a catch-all that quietly costs frontier
26633
+ * rates is the opposite of what this agent is for. Both entries are 1M+ and
26634
+ * mid-to-high capability, which is the most the description may claim. */
26635
+ function genericModel() {
26636
+ return firstPresentInCatalog(["gpt-5.6-terra", REVIEW_DEFAULT_MODEL], {
26637
+ requireToolCalls: true,
26638
+ minContextTokens: ONE_M_TOKENS
26639
+ });
26640
+ }
26641
+ /** Model for `generic-fast` — the Gemini flash tier. Absent → dropped.
26642
+ *
26643
+ * Both entries are the same vendor, context, price point and `minimal..high`
26644
+ * effort ladder, so the agent's identity survives the fallback intact. That is
26645
+ * why the fallback is `gemini-3.5-flash` and not `gpt-5.6-luna`, which would
26646
+ * otherwise be the natural cross-vendor choice: luna is `genericCheapModel`'s
26647
+ * only entry, and using it in both places would collapse two roster entries
26648
+ * onto one model in the degraded case. */
26649
+ function genericFastModel() {
26650
+ return firstPresentInCatalog([EXPLORE_DEFAULT_MODEL, "gemini-3.5-flash"], {
26651
+ requireToolCalls: true,
26652
+ minContextTokens: ONE_M_TOKENS
26653
+ });
26654
+ }
26655
+ /** Model for `generic-cheap` — the cheapest catch-all. Absent → dropped.
26656
+ *
26657
+ * Single-entry by design (see `genericFastModel` for why luna is not shared).
26658
+ * `gpt-5.6-luna` is the cheapest id in the catalog and undercuts even the 400K
26659
+ * `gpt-5.4-mini`, while carrying 1.05M context and the full `none..max` effort
26660
+ * ladder — so unlike the flash tier it propagates a CLI effort pick above
26661
+ * `high` rather than clamping it. No `-mini`/`-lite`/`-haiku` model in the
26662
+ * catalog serves 1M, which is why the cheap catch-all is a `gpt-5.6-*` slug
26663
+ * rather than a mini one. */
26664
+ function genericCheapModel() {
26665
+ return firstPresentInCatalog(["gpt-5.6-luna"], {
26666
+ requireToolCalls: true,
26667
+ minContextTokens: ONE_M_TOKENS
26668
+ });
26601
26669
  }
26602
26670
  /**
26603
26671
  * Gate for the worker tools (`explore`, `review`, `implement`).
@@ -33843,8 +33911,14 @@ function buildPeerAwarenessSnippet(opts) {
33843
33911
  criticList.push("`opus_critic` (Opus 5)");
33844
33912
  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." : "";
33845
33913
  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.`];
33846
- 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; ALWAYS runs in an isolated git worktree and returns the diff via a saved patch file; for in-place edits use the \`implementer\` subagent), \`worker-test\` (independent test author; also always worktree-isolated). 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\`.`);
33847
- para2Parts.push(`Native subagents (Task), each in its own context so heavy work never fills yours: \`implementer\` (you know what to build), \`reviewer\` (something exists and you want it assessed, including reproducing and root-causing a failure), \`brainstorm\` (you do not yet know which approach to take)${opts.scoutAvailable === false ? "" : ", `scout` (find or understand something in the repo, cheap)"}, \`scribe\` (docs and ADRs that trail the code).`);
33914
+ 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; ALWAYS runs in an isolated git worktree and returns the diff via a saved patch file; for in-place edits use the \`implementer\` subagent), \`worker-test\` (independent test author; also always worktree-isolated)${opts.browseAvailable ? ", `worker-browse` (autonomous browser agent driving a real browser)" : ""}. 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\`.`);
33915
+ const catchAllNames = [
33916
+ opts.genericAvailable === false ? void 0 : "`generic`",
33917
+ opts.genericFastAvailable === false ? void 0 : "`generic-fast`",
33918
+ opts.genericCheapAvailable === false ? void 0 : "`generic-cheap`"
33919
+ ].filter((n) => n != null);
33920
+ const catchAllClause = catchAllNames.length > 0 ? ` Catch-alls on non-lead models, for work no specialist fits, cheapest last: ${catchAllNames.join(", ")}.` : "";
33921
+ para2Parts.push(`Native subagents (Task), each in its own context so heavy work never fills yours: \`implementer\` (you know what to build), \`reviewer\` (something exists and you want it assessed, including reproducing and root-causing a failure), \`brainstorm\` (you do not yet know which approach to take)${opts.scoutAvailable === false ? "" : ", `scout` (find or understand something in the repo, cheap)"}, \`scribe\` (docs and ADRs that trail the code).${catchAllClause}`);
33848
33922
  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.`);
33849
33923
  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.`);
33850
33924
  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).`);
@@ -33877,13 +33951,18 @@ function buildPeerAwarenessSnippet(opts) {
33877
33951
  */
33878
33952
  function buildPeerAwarenessSummary(opts) {
33879
33953
  const key = (g) => opts.groupKeys?.[g] ?? GROUP_META[g].preferredKey;
33954
+ const summaryCatchAlls = [
33955
+ opts.genericAvailable === false ? void 0 : "`generic`",
33956
+ opts.genericFastAvailable === false ? void 0 : "`generic-fast`",
33957
+ opts.genericCheapAvailable === false ? void 0 : "`generic-cheap`"
33958
+ ].filter((n) => n != null);
33880
33959
  const lines = [
33881
33960
  "## Injected capabilities (summary)",
33882
33961
  "",
33883
- `Native subagents (Task), each in its own context: \`implementer\` (you know what to build), \`reviewer\` (something exists and you want it assessed, including reproducing and root-causing a failure), \`brainstorm\` (you do not yet know which approach to take), \`scout\` (find or understand something in the repo, cheap), \`scribe\` (docs and ADRs that trail the code). They read the repo and can run things; the peer critics below cannot, so reach for \`reviewer\` when an assessment needs execution or repo context and for a critic when you already hold the artifact.`,
33962
+ `Native subagents (Task), each in its own context: \`implementer\` (you know what to build), \`reviewer\` (something exists and you want it assessed, including reproducing and root-causing a failure), \`brainstorm\` (you do not yet know which approach to take)${opts.scoutAvailable === false ? "" : ", `scout` (find or understand something in the repo, cheap)"}, \`scribe\` (docs and ADRs that trail the code).${summaryCatchAlls.length > 0 ? ` Catch-alls on non-lead models for work no specialist fits, cheapest last: ${summaryCatchAlls.join(", ")}.` : ""} They read the repo and can run things; the peer critics below cannot, so reach for \`reviewer\` when an assessment needs execution or repo context and for a critic when you already hold the artifact.`,
33884
33963
  `A layer of MCP tools, background workers, and skills is injected into this session. Cross-lab peer critics under \`mcp__${key("peers")}__*\` (plus the \`peer-review-coordinator\` subagent) review plans and diffs adversarially, and Claude Code's built-in \`advisor\` catches approach drift. \`mcp__${key("search")}__code\` is meaning-first code search and \`mcp__${key("search")}__web\` returns citable web sources.`
33885
33964
  ];
33886
- if (opts.workerToolsAvailable) lines.push(`Background \`worker-*\` agents (explore, review, plan, implement, test) run delegated work in their own context without blocking your turn, and \`mcp__${key("orchestrate")}__*\` composes, verifies, and runs floor-raising workflows.`);
33965
+ if (opts.workerToolsAvailable) lines.push(`Background \`worker-*\` agents (explore, review, plan, implement, test${opts.browseAvailable ? ", browse" : ""}) run delegated work in their own context without blocking your turn, and \`mcp__${key("orchestrate")}__*\` composes, verifies, and runs floor-raising workflows.`);
33887
33966
  if (opts.standInAvailable) lines.push(`\`mcp__${key("decide")}__stand_in\` returns a three-lab consensus for a decision when the user is unavailable.`);
33888
33967
  if (opts.browseAvailable) lines.push(`\`mcp__${key("browser")}__*\` drives a real Chrome or Edge browser.`);
33889
33968
  if (opts.fleetAvailable) lines.push(`\`mcp__${key("fleet")}__*\` drives remote ai-or-die coding sessions.`);
@@ -35057,6 +35136,6 @@ function enumerateInjectedMcpToolNames(groupKeys, opts = {}) {
35057
35136
  return [...new Set(names)];
35058
35137
  }
35059
35138
  //#endregion
35060
- export { browserToolsEnabled as $, searchWeb as A, collapsePathKeys as At, buildAnthropicErrorEvent as B, upstreamAllowH2 as Bt, buildToolbeltAwareness as C, provisionAndIndexColbert as Ct, TOOLBELT_TOOLS$1 as D, CONDENSED_OPERATING_SEQUENCE as Dt, vscodeRipgrepPath as E, warmTreeSitterPool as Et, isAdvisorRequested as F, DEFAULT_PORT as Ft, relayAnthropicStream as G, isControllerClosedError as H, withOneMSuffix as Ht, formatThinkingRepairDecline as I, UPSTREAM_FETCH_TIMEOUT_MS as It, agentToolsEnabled as J, handleMcpDelete as K, rememberThinkingHistoryRepair as L, UPSTREAM_INACTIVITY_TIMEOUT_MS as Lt, ADVISOR_TOOL_INSTRUCTIONS as M, DEFAULT_CLAUDE_MODEL_FALLBACKS as Mt, buildAdvisorStream as N, DEFAULT_CODEX_MODEL as Nt, assetFor as O, DEFINITION_OF_GREATNESS as Ot, injectAdvisorTool as P, DEFAULT_CODEX_MODEL_FALLBACKS as Pt, browserCompoundToolsEnabled as Q, repairKnownThinkingHistory as R, generateRandomPort as Rt, availableToolCommands as S, colbertDegradedWarning as St, toolbeltSkipSet as T, extractZipMember as Tt, logStreamError as U, withInstallLock as Ut, buildOpenAIErrorEvent as V, upstreamMaxConnections as Vt, readIteratorWithTimeout as W, brainstormModel as X, artifactToolsEnabled as Y, browseAgentEnabled as Z, appendPlanReminder as _, MAX_RESPONSE_BODY_BYTES as _t, buildPeerAwarenessSnippet as a, scribeModel as at, runWorkerAgent as b, provisionBrowserAssets as bt, personasFor as c, shimDefaultsToXhigh as ct, EXPLORE_DEFAULT_MODEL as d, getTokenCount as dt, fleetToolsEnabled as et, EXPLORE_DEFAULT_THINKING as f, assembleResponsesPayload as ft, TEST_DEFAULT_MODEL as g, createChatCompletions as gt, REVIEW_DEFAULT_MODEL as h, createResponses as ht, buildAgentPrompt as i, scoutModel as it, ADVISOR_INTERNAL_TOOL_NAME as j, toolbeltPathOverride as jt, satisfiesMinVersion as k, shouldUseInsecureTls as kt, BROWSE_DEFAULT_MODEL as l, countTokens as lt, PLAN_DEFAULT_MODEL as m, pickEndpoint as mt, MCP_GROUPS as n, nativeSubagentModel as nt, buildPeerAwarenessSummary as o, standInToolEnabled as ot, IMPLEMENT_DEFAULT_MODEL as p, resolveMcpToolTimeoutMs as pt, handleMcpPost as q, assertMcpToolSurfaceConsistent as r, reviewerModel as rt, enumerateInjectedMcpToolNames as s, workerToolsEnabled as st, GROUP_META as t, geminiAvailable as tt, DEFAULT_MODEL as u, createMessages as ut, resolveModeDefaults as v, readResponseBodyCapped as vt, toolbeltEnabled as w, extractTarGzMember as wt, buildEnv as x, hasSupportedBrowserInstalled as xt, resolveWorkerRunOpts as y, parseJsonOrDiagnose as yt, repairRejectedThinkingHistory as z, pickClaudeDefault as zt };
35139
+ export { browserToolsEnabled as $, searchWeb as A, CONDENSED_OPERATING_SEQUENCE as At, buildAnthropicErrorEvent as B, UPSTREAM_INACTIVITY_TIMEOUT_MS as Bt, buildToolbeltAwareness as C, provisionBrowserAssets as Ct, TOOLBELT_TOOLS$1 as D, extractTarGzMember as Dt, vscodeRipgrepPath as E, provisionAndIndexColbert as Et, isAdvisorRequested as F, DEFAULT_CLAUDE_MODEL_FALLBACKS as Ft, relayAnthropicStream as G, withOneMSuffix as Gt, isControllerClosedError as H, pickClaudeDefault as Ht, formatThinkingRepairDecline as I, DEFAULT_CODEX_MODEL as It, agentToolsEnabled as J, handleMcpDelete as K, withInstallLock as Kt, rememberThinkingHistoryRepair as L, DEFAULT_CODEX_MODEL_FALLBACKS as Lt, ADVISOR_TOOL_INSTRUCTIONS as M, shouldUseInsecureTls as Mt, buildAdvisorStream as N, collapsePathKeys as Nt, assetFor as O, extractZipMember as Ot, injectAdvisorTool as P, toolbeltPathOverride as Pt, browserCompoundToolsEnabled as Q, repairKnownThinkingHistory as R, DEFAULT_PORT as Rt, availableToolCommands as S, parseJsonOrDiagnose as St, toolbeltSkipSet as T, colbertDegradedWarning as Tt, logStreamError as U, upstreamAllowH2 as Ut, buildOpenAIErrorEvent as V, generateRandomPort as Vt, readIteratorWithTimeout as W, upstreamMaxConnections as Wt, brainstormModel as X, artifactToolsEnabled as Y, browseAgentEnabled as Z, appendPlanReminder as _, pickEndpoint as _t, buildPeerAwarenessSnippet as a, nativeSubagentModel as at, runWorkerAgent as b, MAX_RESPONSE_BODY_BYTES as bt, personasFor as c, scribeModel as ct, EXPLORE_DEFAULT_MODEL as d, shimDefaultsToXhigh as dt, fleetToolsEnabled as et, EXPLORE_DEFAULT_THINKING as f, countTokens as ft, TEST_DEFAULT_MODEL as g, resolveMcpToolTimeoutMs as gt, REVIEW_DEFAULT_MODEL as h, assembleResponsesPayload as ht, buildAgentPrompt as i, genericModel as it, ADVISOR_INTERNAL_TOOL_NAME as j, DEFINITION_OF_GREATNESS as jt, satisfiesMinVersion as k, warmTreeSitterPool as kt, BROWSE_DEFAULT_MODEL as l, standInToolEnabled as lt, PLAN_DEFAULT_MODEL as m, getTokenCount as mt, MCP_GROUPS as n, genericCheapModel as nt, buildPeerAwarenessSummary as o, reviewerModel as ot, IMPLEMENT_DEFAULT_MODEL as p, createMessages as pt, handleMcpPost as q, assertMcpToolSurfaceConsistent as r, genericFastModel as rt, enumerateInjectedMcpToolNames as s, scoutModel as st, GROUP_META as t, geminiAvailable as tt, DEFAULT_MODEL as u, workerToolsEnabled as ut, resolveModeDefaults as v, createResponses as vt, toolbeltEnabled as w, hasSupportedBrowserInstalled as wt, buildEnv as x, readResponseBodyCapped as xt, resolveWorkerRunOpts as y, createChatCompletions as yt, repairRejectedThinkingHistory as z, UPSTREAM_FETCH_TIMEOUT_MS as zt };
35061
35140
 
35062
- //# sourceMappingURL=peer-mcp-personas-TMOZJhfy.js.map
35141
+ //# sourceMappingURL=peer-mcp-personas-DRL_xT4h.js.map