github-router 0.3.295 → 0.3.297
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{attribution-settings-pkIop1NU.js → attribution-settings-B70GmZ68.js} +10 -9
- package/dist/attribution-settings-B70GmZ68.js.map +1 -0
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/{claude-DNmxk-Rm.js → claude-DMMfvfns.js} +96 -44
- package/dist/claude-DMMfvfns.js.map +1 -0
- package/dist/{codex-Dl4gpHn-.js → codex-DVOyVv2B.js} +4 -4
- package/dist/{codex-Dl4gpHn-.js.map → codex-DVOyVv2B.js.map} +1 -1
- package/dist/engine-BkGRuUNs.js +2 -0
- package/dist/fast-profile-contract-K3P58nj3.js +57 -0
- package/dist/fast-profile-contract-K3P58nj3.js.map +1 -0
- package/dist/{gate-discovery-WcduofL4.js → gate-discovery-G6PAG61j.js} +2 -2
- package/dist/{gate-discovery-WcduofL4.js.map → gate-discovery-G6PAG61j.js.map} +1 -1
- package/dist/hooks.mjs +64 -16
- package/dist/hooks.sha256 +1 -1
- package/dist/{internal-fast-dispatch-guard-Xyu17k9X.js → internal-fast-dispatch-guard-Bkr_iGOu.js} +21 -17
- package/dist/internal-fast-dispatch-guard-Bkr_iGOu.js.map +1 -0
- package/dist/{internal-fast-dispatch-guard-CPlCrTlU.js → internal-fast-dispatch-guard-N-RaLrOn.js} +1 -1
- package/dist/{internal-stop-hook-DJFtGCsE.js → internal-stop-hook-BjzrF1zd.js} +2 -2
- package/dist/{internal-stop-hook-DJFtGCsE.js.map → internal-stop-hook-BjzrF1zd.js.map} +1 -1
- package/dist/main.js +6 -6
- package/dist/{peer-mcp-personas-BwNtC8jt.js → peer-mcp-personas-ce6_YMnX.js} +77 -76
- package/dist/peer-mcp-personas-ce6_YMnX.js.map +1 -0
- package/dist/{provision-DeNqzvSM.js → provision-BhCtm3md.js} +2 -2
- package/dist/{provision-DeNqzvSM.js.map → provision-BhCtm3md.js.map} +1 -1
- package/dist/{serve-BS5EmCpM.js → serve-Blj_dRSr.js} +5 -5
- package/dist/{serve-BS5EmCpM.js.map → serve-Blj_dRSr.js.map} +1 -1
- package/dist/{server-setup-DsGJnJ_O.js → server-setup-DhG3YZPj.js} +62 -11
- package/dist/server-setup-DhG3YZPj.js.map +1 -0
- package/dist/{start-vJdt2MiM.js → start-8QaqICtd.js} +3 -3
- package/dist/{start-vJdt2MiM.js.map → start-8QaqICtd.js.map} +1 -1
- package/package.json +1 -1
- package/dist/attribution-settings-pkIop1NU.js.map +0 -1
- package/dist/claude-DNmxk-Rm.js.map +0 -1
- package/dist/engine-XnluJUs6.js +0 -2
- package/dist/internal-fast-dispatch-guard-Xyu17k9X.js.map +0 -1
- package/dist/peer-mcp-personas-BwNtC8jt.js.map +0 -1
- package/dist/server-setup-DsGJnJ_O.js.map +0 -1
package/dist/main.js
CHANGED
|
@@ -47,14 +47,14 @@ const main = defineCommand({
|
|
|
47
47
|
},
|
|
48
48
|
subCommands: {
|
|
49
49
|
auth: () => import("./auth-CluG5e-l.js").then((m) => m.auth),
|
|
50
|
-
start: () => import("./start-
|
|
51
|
-
claude: () => import("./claude-
|
|
52
|
-
codex: () => import("./codex-
|
|
53
|
-
serve: () => import("./serve-
|
|
50
|
+
start: () => import("./start-8QaqICtd.js").then((m) => m.start),
|
|
51
|
+
claude: () => import("./claude-DMMfvfns.js").then((m) => m.claude),
|
|
52
|
+
codex: () => import("./codex-DVOyVv2B.js").then((m) => m.codex),
|
|
53
|
+
serve: () => import("./serve-Blj_dRSr.js").then((m) => m.serve),
|
|
54
54
|
models: () => import("./models-DZ4hYsR7.js").then((m) => m.models),
|
|
55
55
|
"check-usage": () => import("./check-usage-iOzfnKJe.js").then((m) => m.checkUsage),
|
|
56
56
|
debug: () => import("./debug-DsEwleGg.js").then((m) => m.debug),
|
|
57
|
-
"internal-stop-hook": () => import("./internal-stop-hook-
|
|
57
|
+
"internal-stop-hook": () => import("./internal-stop-hook-BjzrF1zd.js").then((m) => m.internalStopHook),
|
|
58
58
|
"internal-prompt-submit": () => import("./internal-prompt-submit-C3KovHQG.js").then((m) => m.internalPromptSubmit),
|
|
59
59
|
"internal-stop-review": () => import("./internal-stop-review-YtDUGXpX.js").then((m) => m.internalStopReview),
|
|
60
60
|
"internal-plan-review": () => import("./internal-plan-review-t3PuNfuL.js").then((m) => m.internalPlanReview),
|
|
@@ -63,7 +63,7 @@ const main = defineCommand({
|
|
|
63
63
|
"internal-artifact-open": () => import("./internal-artifact-open-D6tKMg8v.js").then((m) => m.internalArtifactOpen),
|
|
64
64
|
"internal-first-mate-guard": () => import("./internal-first-mate-guard-WJApyc8j.js").then((m) => m.internalFirstMateGuard),
|
|
65
65
|
"internal-worker-guard": () => import("./internal-worker-guard-CdkeS9PN.js").then((m) => m.internalWorkerGuard),
|
|
66
|
-
"internal-fast-dispatch-guard": () => import("./internal-fast-dispatch-guard-
|
|
66
|
+
"internal-fast-dispatch-guard": () => import("./internal-fast-dispatch-guard-N-RaLrOn.js").then((m) => m.internalFastDispatchGuard)
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
/**
|
|
@@ -3,6 +3,7 @@ import { t as getPackageVersion } from "./version-C8x2hQrZ.js";
|
|
|
3
3
|
import { t as PATHS } from "./paths-Ci485qSJ.js";
|
|
4
4
|
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-BtJhjXXu.js";
|
|
5
5
|
import { a as resolveExecutable, c as runManagedExeCapture, i as parseIntEnv, l as spawnTaskkillBestEffort, r as parseBoolEnv } from "./exec-y8C_MU8A.js";
|
|
6
|
+
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-K3P58nj3.js";
|
|
6
7
|
import { i as registerExitHandlers$1, n as getInstanceUuid, r as recordWorkerRepo, t as WorktreeRegistry } from "./lifecycle-Bg6doY3-.js";
|
|
7
8
|
import { t as MCP_WORKSPACE_HEADER } from "./mcp-workspace-header-dERl2YTT.js";
|
|
8
9
|
import { n as ArtifactError, r as applyInsecureTls, t as ArtifactClient } from "./client-CQMfroGV.js";
|
|
@@ -520,7 +521,7 @@ const DEFAULT_OPUS_FAMILY = "5";
|
|
|
520
521
|
* keys off the same raw `-m` argument this constant is selected by, so the
|
|
521
522
|
* two can never disagree about which launches count as "fast".
|
|
522
523
|
*/
|
|
523
|
-
const FAST_LEAD_MODEL =
|
|
524
|
+
const FAST_LEAD_MODEL = FAST_PROFILE_MODELS.luna;
|
|
524
525
|
/** Small/fast tier for a budget lead, in the two forms this codebase needs.
|
|
525
526
|
*
|
|
526
527
|
* `SLUG` is the Anthropic-published DASHED form and is what goes into
|
|
@@ -27523,7 +27524,7 @@ const STANDARD_PROFILE = Object.freeze({
|
|
|
27523
27524
|
hasCoordinator: true
|
|
27524
27525
|
});
|
|
27525
27526
|
/**
|
|
27526
|
-
* The `-m fast` roster: exactly five native agents (`
|
|
27527
|
+
* The `-m fast` roster: exactly five native agents (`Explore`, `implementer`,
|
|
27527
27528
|
* `reviewer`, `planner`, `critic`), the fast-only `oracle` peer tool, no coordinator,
|
|
27528
27529
|
* and only `peers`/`search` plus the ordinary opt-in `browser` group.
|
|
27529
27530
|
* `workers`/`orchestrate`/`decide`/`fleet`/`first-mate` are hard denies even
|
|
@@ -27531,13 +27532,7 @@ const STANDARD_PROFILE = Object.freeze({
|
|
|
27531
27532
|
*/
|
|
27532
27533
|
const FAST_PROFILE = Object.freeze({
|
|
27533
27534
|
id: "fast",
|
|
27534
|
-
nativeRoster:
|
|
27535
|
-
"scout",
|
|
27536
|
-
"implementer",
|
|
27537
|
-
"reviewer",
|
|
27538
|
-
"planner",
|
|
27539
|
-
"critic"
|
|
27540
|
-
]),
|
|
27535
|
+
nativeRoster: new Set(FAST_PROFILE_NATIVE_AGENT_NAMES),
|
|
27541
27536
|
personaAllowlist: /* @__PURE__ */ new Set(["oracle"]),
|
|
27542
27537
|
allowedGroups: /* @__PURE__ */ new Set([
|
|
27543
27538
|
"peers",
|
|
@@ -27572,7 +27567,7 @@ function resolveLaunchProfile(modelArg) {
|
|
|
27572
27567
|
const LUNA_DRIVER_ALIAS_ID = "gh-router-luna-driver-max";
|
|
27573
27568
|
/** Fast native-agent alias ids preserve role-specific effort provenance until
|
|
27574
27569
|
* the authenticated request boundary. They both canonicalize to Luna, but the
|
|
27575
|
-
*
|
|
27570
|
+
* Explore is fixed high while the implementer is fixed max. */
|
|
27576
27571
|
const LUNA_SCOUT_ALIAS_ID = "gh-router-luna-scout-high";
|
|
27577
27572
|
const LUNA_IMPLEMENTER_ALIAS_ID = "gh-router-luna-implementer-max";
|
|
27578
27573
|
/** Fast-profile critic alias. It preserves Gemini's fixed medium effort until
|
|
@@ -27587,7 +27582,7 @@ const LUNA_SONNET_ALIAS_ID = "gh-router-luna-sonnet-xhigh";
|
|
|
27587
27582
|
const LUNA_HAIKU_ALIAS_ID = "gh-router-luna-haiku-high";
|
|
27588
27583
|
/** The real Copilot catalog id every Luna alias (including the driver
|
|
27589
27584
|
* itself) canonicalizes to. */
|
|
27590
|
-
const LUNA_REAL_MODEL_ID =
|
|
27585
|
+
const LUNA_REAL_MODEL_ID = FAST_PROFILE_MODELS.luna;
|
|
27591
27586
|
/**
|
|
27592
27587
|
* The full alias table, keyed by `aliasId`. A simpler model-id-only table is
|
|
27593
27588
|
* rejected by design: the driver, the Sonnet tier, and the Haiku tier all
|
|
@@ -27617,7 +27612,7 @@ const MODEL_ALIAS_TABLE = /* @__PURE__ */ new Map([
|
|
|
27617
27612
|
}],
|
|
27618
27613
|
[FAST_CRITIC_ALIAS_ID, {
|
|
27619
27614
|
aliasId: FAST_CRITIC_ALIAS_ID,
|
|
27620
|
-
realModel:
|
|
27615
|
+
realModel: FAST_PROFILE_MODELS.critic,
|
|
27621
27616
|
absentEffortDefault: "medium"
|
|
27622
27617
|
}],
|
|
27623
27618
|
[LUNA_SONNET_ALIAS_ID, {
|
|
@@ -27691,7 +27686,7 @@ function hasPromptAtLeast(model, tokens) {
|
|
|
27691
27686
|
* than silently substituting or dropping an agent.
|
|
27692
27687
|
*
|
|
27693
27688
|
* Checks, per the fast-launch-profile design:
|
|
27694
|
-
* - Luna lead/
|
|
27689
|
+
* - Luna lead/Explore/implementer: tool calls, >=1M, high+max, Responses.
|
|
27695
27690
|
* - Sol planner: tool calls, >=1M, high, Responses.
|
|
27696
27691
|
* - Grok reviewer: tool calls, medium, Responses, usable prompt metadata.
|
|
27697
27692
|
* - Gemini Advisor: >=1M, high, chat-completions.
|
|
@@ -27711,39 +27706,39 @@ function validateFastProfilePrerequisites(catalog) {
|
|
|
27711
27706
|
if (!supportsEffort(luna, "high") || !supportsEffort(luna, "max")) missing.push(`${LUNA_REAL_MODEL_ID}: does not advertise both "high" and "max" reasoning effort`);
|
|
27712
27707
|
if (!supportsEndpoint(luna, "responses")) missing.push(`${LUNA_REAL_MODEL_ID}: does not advertise a supported Responses endpoint`);
|
|
27713
27708
|
}
|
|
27714
|
-
const sol = findModel(catalog,
|
|
27715
|
-
if (!sol) missing.push(
|
|
27709
|
+
const sol = findModel(catalog, FAST_PROFILE_MODELS.planner);
|
|
27710
|
+
if (!sol) missing.push(`${FAST_PROFILE_MODELS.planner}: absent from the live catalog`);
|
|
27716
27711
|
else {
|
|
27717
|
-
if (!hasToolCalls(sol)) missing.push(
|
|
27718
|
-
if (!hasContextAtLeast(sol, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(
|
|
27719
|
-
if (!supportsEffort(sol, "high")) missing.push(
|
|
27720
|
-
if (!supportsEndpoint(sol, "responses")) missing.push(
|
|
27712
|
+
if (!hasToolCalls(sol)) missing.push(`${FAST_PROFILE_MODELS.planner}: does not advertise tool_calls`);
|
|
27713
|
+
if (!hasContextAtLeast(sol, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(`${FAST_PROFILE_MODELS.planner}: advertised context window is below 1M`);
|
|
27714
|
+
if (!supportsEffort(sol, "high")) missing.push(`${FAST_PROFILE_MODELS.planner}: does not advertise a "high" reasoning effort`);
|
|
27715
|
+
if (!supportsEndpoint(sol, "responses")) missing.push(`${FAST_PROFILE_MODELS.planner}: does not advertise a supported Responses endpoint`);
|
|
27721
27716
|
}
|
|
27722
|
-
const grok = findModel(catalog,
|
|
27723
|
-
if (!grok) missing.push(
|
|
27717
|
+
const grok = findModel(catalog, FAST_PROFILE_MODELS.reviewer);
|
|
27718
|
+
if (!grok) missing.push(`${FAST_PROFILE_MODELS.reviewer}: absent from the live catalog`);
|
|
27724
27719
|
else {
|
|
27725
|
-
if (!hasToolCalls(grok)) missing.push(
|
|
27726
|
-
if (!supportsEffort(grok, "medium")) missing.push(
|
|
27727
|
-
if (!hasPromptAtLeast(grok, 2e5)) missing.push(
|
|
27728
|
-
if (!supportsEndpoint(grok, "responses")) missing.push(
|
|
27720
|
+
if (!hasToolCalls(grok)) missing.push(`${FAST_PROFILE_MODELS.reviewer}: does not advertise tool_calls`);
|
|
27721
|
+
if (!supportsEffort(grok, "medium")) missing.push(`${FAST_PROFILE_MODELS.reviewer}: does not advertise a "medium" reasoning effort`);
|
|
27722
|
+
if (!hasPromptAtLeast(grok, 2e5)) missing.push(`${FAST_PROFILE_MODELS.reviewer}: advertised max_prompt_tokens is below ${FAST_REVIEWER_MIN_PROMPT_TOKENS}`);
|
|
27723
|
+
if (!supportsEndpoint(grok, "responses")) missing.push(`${FAST_PROFILE_MODELS.reviewer}: does not advertise a supported Responses endpoint`);
|
|
27729
27724
|
}
|
|
27730
|
-
const gemini = findModel(catalog,
|
|
27731
|
-
if (!gemini) missing.push(
|
|
27725
|
+
const gemini = findModel(catalog, FAST_PROFILE_MODELS.critic);
|
|
27726
|
+
if (!gemini) missing.push(`${FAST_PROFILE_MODELS.critic}: absent from the live catalog`);
|
|
27732
27727
|
else {
|
|
27733
|
-
if (!hasToolCalls(gemini)) missing.push(
|
|
27734
|
-
if (!hasContextAtLeast(gemini, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(
|
|
27735
|
-
if (!supportsEffort(gemini, "high")) missing.push(
|
|
27736
|
-
if (!supportsEffort(gemini, "medium")) missing.push(
|
|
27737
|
-
if (!supportsEndpoint(gemini, "chat")) missing.push(
|
|
27738
|
-
}
|
|
27739
|
-
const opus = findModel(catalog,
|
|
27740
|
-
if (!opus) missing.push(
|
|
27728
|
+
if (!hasToolCalls(gemini)) missing.push(`${FAST_PROFILE_MODELS.critic}: does not advertise tool_calls for the native critic`);
|
|
27729
|
+
if (!hasContextAtLeast(gemini, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(`${FAST_PROFILE_MODELS.critic}: advertised context window is below 1M`);
|
|
27730
|
+
if (!supportsEffort(gemini, "high")) missing.push(`${FAST_PROFILE_MODELS.critic}: does not advertise a "high" reasoning effort for Advisor`);
|
|
27731
|
+
if (!supportsEffort(gemini, "medium")) missing.push(`${FAST_PROFILE_MODELS.critic}: does not advertise a "medium" reasoning effort for the native critic`);
|
|
27732
|
+
if (!supportsEndpoint(gemini, "chat")) missing.push(`${FAST_PROFILE_MODELS.critic}: does not advertise a supported chat-completions endpoint`);
|
|
27733
|
+
}
|
|
27734
|
+
const opus = findModel(catalog, FAST_PROFILE_MODELS.oracle);
|
|
27735
|
+
if (!opus) missing.push(`${FAST_PROFILE_MODELS.oracle}: absent from the live catalog`);
|
|
27741
27736
|
else {
|
|
27742
|
-
if (!hasContextAtLeast(opus, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(
|
|
27743
|
-
if (!supportsEffort(opus, "high")) missing.push(
|
|
27744
|
-
if (opus.capabilities?.supports?.adaptive_thinking !== true) missing.push(
|
|
27745
|
-
if (!hasUsablePromptMetadata(opus)) missing.push(
|
|
27746
|
-
if (!supportsEndpoint(opus, "messages")) missing.push(
|
|
27737
|
+
if (!hasContextAtLeast(opus, FAST_REQUIRED_CONTEXT_TOKENS)) missing.push(`${FAST_PROFILE_MODELS.oracle}: advertised context window is below 1M`);
|
|
27738
|
+
if (!supportsEffort(opus, "high")) missing.push(`${FAST_PROFILE_MODELS.oracle}: does not advertise a "high" reasoning effort`);
|
|
27739
|
+
if (opus.capabilities?.supports?.adaptive_thinking !== true) missing.push(`${FAST_PROFILE_MODELS.oracle}: does not advertise adaptive_thinking`);
|
|
27740
|
+
if (!hasUsablePromptMetadata(opus)) missing.push(`${FAST_PROFILE_MODELS.oracle}: no usable max_prompt_tokens metadata`);
|
|
27741
|
+
if (!supportsEndpoint(opus, "messages")) missing.push(`${FAST_PROFILE_MODELS.oracle}: does not advertise a supported Messages endpoint`);
|
|
27747
27742
|
}
|
|
27748
27743
|
return {
|
|
27749
27744
|
ok: missing.length === 0,
|
|
@@ -28005,19 +28000,22 @@ function generalPurposeFastModel() {
|
|
|
28005
28000
|
minContextTokens: ONE_M_TOKENS
|
|
28006
28001
|
});
|
|
28007
28002
|
}
|
|
28008
|
-
|
|
28009
|
-
const
|
|
28003
|
+
/** @deprecated Fast `scout` was renamed to capitalized `Explore`. */
|
|
28004
|
+
const FAST_SCOUT_MODEL = FAST_PROFILE_NATIVE_MODELS.Explore;
|
|
28005
|
+
const FAST_IMPLEMENTER_MODEL = FAST_PROFILE_NATIVE_MODELS.implementer;
|
|
28010
28006
|
/** Grok 4.6 advertises 500K total context / 372K max prompt, so it remains bare
|
|
28011
28007
|
* and is gated by max_prompt_tokens rather than the 1M floor. */
|
|
28012
|
-
const FAST_REVIEWER_MODEL =
|
|
28013
|
-
const FAST_PLANNER_MODEL =
|
|
28014
|
-
const FAST_CRITIC_MODEL =
|
|
28015
|
-
const FAST_ORACLE_MODEL =
|
|
28016
|
-
/**
|
|
28017
|
-
const FAST_SCOUT_EFFORT =
|
|
28018
|
-
const
|
|
28019
|
-
const
|
|
28020
|
-
const
|
|
28008
|
+
const FAST_REVIEWER_MODEL = FAST_PROFILE_NATIVE_MODELS.reviewer;
|
|
28009
|
+
const FAST_PLANNER_MODEL = FAST_PROFILE_NATIVE_MODELS.planner;
|
|
28010
|
+
const FAST_CRITIC_MODEL = FAST_PROFILE_NATIVE_MODELS.critic;
|
|
28011
|
+
const FAST_ORACLE_MODEL = FAST_PROFILE_ORACLE_MODEL;
|
|
28012
|
+
/** @deprecated Fast `scout` was renamed to capitalized `Explore`. */
|
|
28013
|
+
const FAST_SCOUT_EFFORT = FAST_PROFILE_NATIVE_EFFORTS.Explore;
|
|
28014
|
+
const FAST_IMPLEMENTER_EFFORT = FAST_PROFILE_NATIVE_EFFORTS.implementer;
|
|
28015
|
+
const FAST_REVIEWER_EFFORT = FAST_PROFILE_NATIVE_EFFORTS.reviewer;
|
|
28016
|
+
const FAST_PLANNER_EFFORT = FAST_PROFILE_NATIVE_EFFORTS.planner;
|
|
28017
|
+
const FAST_CRITIC_EFFORT = FAST_PROFILE_NATIVE_EFFORTS.critic;
|
|
28018
|
+
const FAST_ORACLE_EFFORT = FAST_PROFILE_ORACLE_EFFORT;
|
|
28021
28019
|
function fastScoutModel() {
|
|
28022
28020
|
const id = firstPresentInCatalog([FAST_SCOUT_MODEL], {
|
|
28023
28021
|
requireToolCalls: true,
|
|
@@ -28044,7 +28042,7 @@ function fastPlannerModel() {
|
|
|
28044
28042
|
if (!id) return void 0;
|
|
28045
28043
|
const found = state.models?.data.find((m) => m.id === id);
|
|
28046
28044
|
const efforts = found?.capabilities?.supports?.reasoning_effort;
|
|
28047
|
-
if (!Array.isArray(efforts) || !efforts.includes(
|
|
28045
|
+
if (!Array.isArray(efforts) || !efforts.includes(FAST_PLANNER_EFFORT)) return void 0;
|
|
28048
28046
|
if (!found || fastEndpointForModel(found) !== "responses") return void 0;
|
|
28049
28047
|
return id;
|
|
28050
28048
|
}
|
|
@@ -28056,7 +28054,7 @@ function fastReviewerModel() {
|
|
|
28056
28054
|
if (!found) return void 0;
|
|
28057
28055
|
if (found.capabilities?.supports?.tool_calls !== true) return void 0;
|
|
28058
28056
|
const efforts = found.capabilities?.supports?.reasoning_effort;
|
|
28059
|
-
if (!Array.isArray(efforts) || !efforts.includes(
|
|
28057
|
+
if (!Array.isArray(efforts) || !efforts.includes(FAST_REVIEWER_EFFORT)) return void 0;
|
|
28060
28058
|
if ((found.capabilities?.limits?.max_prompt_tokens ?? 0) < 2e5) return void 0;
|
|
28061
28059
|
if (fastEndpointForModel(found) !== "responses") return void 0;
|
|
28062
28060
|
return FAST_REVIEWER_MODEL;
|
|
@@ -28069,7 +28067,7 @@ function fastCriticModel() {
|
|
|
28069
28067
|
if (found.capabilities?.supports?.tool_calls !== true) return void 0;
|
|
28070
28068
|
if ((found.capabilities?.limits?.max_context_window_tokens ?? 0) < 1e6) return void 0;
|
|
28071
28069
|
const efforts = found.capabilities?.supports?.reasoning_effort;
|
|
28072
|
-
if (!Array.isArray(efforts) || !efforts.includes(
|
|
28070
|
+
if (!Array.isArray(efforts) || !efforts.includes(FAST_CRITIC_EFFORT)) return void 0;
|
|
28073
28071
|
if (fastEndpointForModel(found) !== "chat") return void 0;
|
|
28074
28072
|
return FAST_CRITIC_MODEL;
|
|
28075
28073
|
}
|
|
@@ -28081,7 +28079,7 @@ function fastOracleModel() {
|
|
|
28081
28079
|
if ((found.capabilities?.limits?.max_context_window_tokens ?? 0) < 1e6) return void 0;
|
|
28082
28080
|
if ((found.capabilities?.limits?.max_prompt_tokens ?? 0) <= 0) return void 0;
|
|
28083
28081
|
const efforts = found.capabilities?.supports?.reasoning_effort;
|
|
28084
|
-
if (!Array.isArray(efforts) || !efforts.includes(
|
|
28082
|
+
if (!Array.isArray(efforts) || !efforts.includes(FAST_ORACLE_EFFORT)) return void 0;
|
|
28085
28083
|
if (found.capabilities?.supports?.adaptive_thinking !== true) return void 0;
|
|
28086
28084
|
if (fastEndpointForModel(found) !== "messages") return void 0;
|
|
28087
28085
|
return FAST_ORACLE_MODEL;
|
|
@@ -29930,7 +29928,7 @@ const ADVISOR_ESCALATION_MODEL = "claude-opus-5";
|
|
|
29930
29928
|
* is cross-lab from the OpenAI-backed Luna/Sol leads and is selected only when
|
|
29931
29929
|
* its live catalog entry advertises the required Chat endpoint. Kept distinct
|
|
29932
29930
|
* from `ADVISOR_DEFAULT_MODEL` so standard launches remain unchanged. */
|
|
29933
|
-
const ADVISOR_FAST_PROFILE_MODEL =
|
|
29931
|
+
const ADVISOR_FAST_PROFILE_MODEL = FAST_PROFILE_ADVISOR_MODEL;
|
|
29934
29932
|
/** True only when the live Gemini entry satisfies the fixed fast transport.
|
|
29935
29933
|
* An ID-only presence check is insufficient: selecting a model whose catalog
|
|
29936
29934
|
* row lost Chat support would silently degrade every fast Advisor call. */
|
|
@@ -30029,14 +30027,13 @@ function shouldEscalateAdvisor(leadModel) {
|
|
|
30029
30027
|
* fast selection follows launch identity instead, so changing among the fixed
|
|
30030
30028
|
* fast lead models never removes Gemini Advisor.
|
|
30031
30029
|
*
|
|
30032
|
-
*
|
|
30033
|
-
*
|
|
30034
|
-
*
|
|
30035
|
-
*
|
|
30036
|
-
* 3.
|
|
30037
|
-
* 4. The literal `ADVISOR_DEFAULT_MODEL`.
|
|
30030
|
+
* Fast profile is a separate fixed contract: it requires Gemini's Chat endpoint
|
|
30031
|
+
* and ignores standard operator pins. Standard-profile precedence remains:
|
|
30032
|
+
* 1. `GH_ROUTER_ADVISOR_MODEL` (trimmed).
|
|
30033
|
+
* 2. A lighter Claude lead with Opus escalation available.
|
|
30034
|
+
* 3. The literal `ADVISOR_DEFAULT_MODEL`.
|
|
30038
30035
|
*
|
|
30039
|
-
* Step
|
|
30036
|
+
* Step 3 deliberately does not walk the OpenAI frontier chain. That would
|
|
30040
30037
|
* silently change the standard Opus-lead path when Sol is absent.
|
|
30041
30038
|
*/
|
|
30042
30039
|
/**
|
|
@@ -30064,17 +30061,20 @@ function normalizeAdvisorPin(pinned) {
|
|
|
30064
30061
|
return bare !== pinned && models.some((m) => m.id === bare) ? bare : pinned;
|
|
30065
30062
|
}
|
|
30066
30063
|
function resolveAdvisorModel(leadModel, fastProfile = false) {
|
|
30064
|
+
if (fastProfile) {
|
|
30065
|
+
if (!fastProfileAdvisorAvailable()) throw new Error(`fast Advisor invariant failed: ${ADVISOR_FAST_PROFILE_MODEL} must advertise the Chat endpoint`);
|
|
30066
|
+
return {
|
|
30067
|
+
model: ADVISOR_FAST_PROFILE_MODEL,
|
|
30068
|
+
escalated: false,
|
|
30069
|
+
fastProfile: true
|
|
30070
|
+
};
|
|
30071
|
+
}
|
|
30067
30072
|
const pinned = process.env.GH_ROUTER_ADVISOR_MODEL?.trim();
|
|
30068
30073
|
if (pinned) return {
|
|
30069
30074
|
model: normalizeAdvisorPin(pinned),
|
|
30070
30075
|
escalated: false,
|
|
30071
30076
|
fastProfile: false
|
|
30072
30077
|
};
|
|
30073
|
-
if (fastProfile && fastProfileAdvisorAvailable()) return {
|
|
30074
|
-
model: ADVISOR_FAST_PROFILE_MODEL,
|
|
30075
|
-
escalated: false,
|
|
30076
|
-
fastProfile: true
|
|
30077
|
-
};
|
|
30078
30078
|
if (leadModel && shouldEscalateAdvisor(leadModel)) return {
|
|
30079
30079
|
model: ADVISOR_ESCALATION_MODEL,
|
|
30080
30080
|
escalated: true,
|
|
@@ -30114,7 +30114,7 @@ function resolveAdvisorModel(leadModel, fastProfile = false) {
|
|
|
30114
30114
|
* something it accepts.
|
|
30115
30115
|
*/
|
|
30116
30116
|
function resolveAdvisorEffort(rawRequestBody, advisorModel, fastProfile = false) {
|
|
30117
|
-
let requested = fastProfile ?
|
|
30117
|
+
let requested = fastProfile ? FAST_PROFILE_ADVISOR_EFFORT : ADVISOR_DEFAULT_EFFORT;
|
|
30118
30118
|
if (rawRequestBody) try {
|
|
30119
30119
|
const body = JSON.parse(rawRequestBody);
|
|
30120
30120
|
const oc = body.output_config;
|
|
@@ -30123,7 +30123,7 @@ function resolveAdvisorEffort(rawRequestBody, advisorModel, fastProfile = false)
|
|
|
30123
30123
|
if (typeof explicit === "string" && EFFORT_ORDER.includes(explicit)) requested = explicit;
|
|
30124
30124
|
else if (thinking && typeof thinking === "object" && thinking.type === "enabled") requested = bucketEffort(thinking.budget_tokens);
|
|
30125
30125
|
} catch {}
|
|
30126
|
-
if (fastProfile) requested =
|
|
30126
|
+
if (fastProfile) requested = FAST_PROFILE_ADVISOR_EFFORT;
|
|
30127
30127
|
else if (EFFORT_ORDER.indexOf(requested) < EFFORT_ORDER.indexOf(ADVISOR_MIN_EFFORT)) requested = ADVISOR_MIN_EFFORT;
|
|
30128
30128
|
const supported = state.models?.data?.find((m) => m.id === resolveModel(advisorModel))?.capabilities?.supports?.reasoning_effort;
|
|
30129
30129
|
if (!Array.isArray(supported) || supported.length === 0) return requested;
|
|
@@ -30374,6 +30374,7 @@ async function runAdvisor(conversation, advisorModel, advisorEffort, signal, adv
|
|
|
30374
30374
|
}
|
|
30375
30375
|
const conversationText = renderConversationAsText(conversation, maxUnits, measure);
|
|
30376
30376
|
const transport = advisorTransport(resolvedAdvisorModel, fastProfile);
|
|
30377
|
+
if (fastProfile) consola.warn(`fast Advisor dispatch: model=${resolvedAdvisorModel} transport=${transport} effort=${advisorEffort}`);
|
|
30377
30378
|
if (transport === "responses") {
|
|
30378
30379
|
const payload = applyResponsesCachePolicy({
|
|
30379
30380
|
model: resolvedAdvisorModel,
|
|
@@ -35883,8 +35884,8 @@ function buildPeerAwarenessSnippet(opts) {
|
|
|
35883
35884
|
"",
|
|
35884
35885
|
`This is the fast launch profile. Advisor is an optional, non-binding, lead-only transcript-aware sounding board for consequential unresolved uncertainty or a genuinely stuck path, not routine progress, waiting, verification, approval, or completion. \`mcp__${fastPeersKey}__oracle\` is exact Opus 5 (1M/high), a stateless last-resort consultant available to the lead, reviewer, and planner.`,
|
|
35885
35886
|
"",
|
|
35886
|
-
`\`mcp__${fastSearchKey}__code\` is semantic-first code search and \`mcp__${fastSearchKey}__web\` surfaces citable sources. Native Task roster: \`
|
|
35887
|
-
"Native delegation is ACL-scoped: the lead may invoke all five; planner may invoke reviewer,
|
|
35887
|
+
`\`mcp__${fastSearchKey}__code\` is semantic-first code search and \`mcp__${fastSearchKey}__web\` surfaces citable sources. Native Task roster: \`Explore\` (broad discovery), \`implementer\` (mechanical implementation), \`reviewer\` (repo-aware verification/reproduction), \`planner\` (Sol plan consultant/approver after Luna's draft), and \`critic\` (fresh-context cross-lab review). Before implementation obtain planner approval; before declaring done run relevant tests and ask reviewer to verify.${opts.browseAvailable ? ` \`mcp__${key("browser")}__*\` is the opt-in browser surface.` : ""}`,
|
|
35888
|
+
"Native delegation is ACL-scoped: the lead may invoke all five; planner may invoke reviewer, Explore, and critic; implementer may invoke reviewer and critic; reviewer, Explore, and critic cannot invoke native subagents."
|
|
35888
35889
|
].join("\n");
|
|
35889
35890
|
}
|
|
35890
35891
|
const peersKey = key("peers");
|
|
@@ -35943,8 +35944,8 @@ function buildPeerAwarenessSummary(opts) {
|
|
|
35943
35944
|
if (opts.profile === "fast") return [
|
|
35944
35945
|
"## Injected capabilities (summary)",
|
|
35945
35946
|
"",
|
|
35946
|
-
"Fast launch profile. Task roster: `
|
|
35947
|
-
"Native delegation is ACL-scoped: the lead may invoke all five; `planner` may invoke `reviewer`, `
|
|
35947
|
+
"Fast launch profile. Task roster: `Explore`, `implementer`, `reviewer`, `planner`, `critic`. Luna investigates and drafts; `planner` must approve before implementation. Before declaring done, run relevant tests and ask `reviewer` to verify.",
|
|
35948
|
+
"Native delegation is ACL-scoped: the lead may invoke all five; `planner` may invoke `reviewer`, `Explore`, and `critic`; `implementer` may invoke `reviewer` and `critic`; `reviewer`, `Explore`, and `critic` cannot invoke native subagents.",
|
|
35948
35949
|
`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, reviewer, and planner. \`mcp__${key("search")}__code\` and \`mcp__${key("search")}__web\` provide search.${opts.browseAvailable ? ` \`mcp__${key("browser")}__*\` provides the opt-in browser.` : ""}`
|
|
35949
35950
|
].join("\n");
|
|
35950
35951
|
const renderNative = (name) => {
|
|
@@ -37218,6 +37219,6 @@ function enumerateInjectedMcpToolNames(groupKeys, opts = {}) {
|
|
|
37218
37219
|
return [...new Set(names)];
|
|
37219
37220
|
}
|
|
37220
37221
|
//#endregion
|
|
37221
|
-
export { bucketEffort as $,
|
|
37222
|
+
export { bucketEffort as $, unregisterLaunch as $t, assetFor as A, generateRandomPort as An, standInToolEnabled as At, resolveAdvisorModel as B, withOneMSuffixForLead as Bn, formatFastPrerequisiteFailure as Bt, buildEnv as C, BUDGET_SMALL_FAST_SLUG as Cn, implementerFastModel as Ct, toolbeltSkipSet as D, DEFAULT_PORT as Dn, reviewerModel as Dt, toolbeltEnabled as E, DEFAULT_CODEX_MODEL_FALLBACKS as En, reviewerFastModel as Et, FAST_ADVISOR_TOOL_INSTRUCTIONS as F, upstreamMaxConnections as Fn, LUNA_IMPLEMENTER_ALIAS_ID as Ft, buildAnthropicErrorEvent as G, shimDefaultsToXhigh as Gt, rememberThinkingHistoryRepair as H, withInstallLock as Hn, resolveLaunchProfile as Ht, buildAdvisorStream as I, classifyMessagesRoute as In, LUNA_REAL_MODEL_ID as It, logStreamError as J, getTextTokenCount as Jt, buildOpenAIErrorEvent as K, countTokens as Kt, injectAdvisorTool as L, catalogAdvertises1M as Ln, LUNA_SCOUT_ALIAS_ID as Lt, searchWeb as M, pickClaudeDefault as Mn, FAST_CRITIC_ALIAS_ID as Mt, ADVISOR_INTERNAL_TOOL_NAME as N, resolveLeadSlugArg as Nn, LUNA_DRIVER_ALIAS_ID as Nt, vscodeRipgrepPath as O, UPSTREAM_FETCH_TIMEOUT_MS as On, scoutModel as Ot, ADVISOR_TOOL_INSTRUCTIONS as P, upstreamAllowH2 as Pn, LUNA_HAIKU_ALIAS_ID as Pt, UNKNOWN_EFFORT_ANCHOR as Q, registerLaunch as Qt, isAdvisorRequested as R, oneMContextDisabled as Rn, LUNA_SONNET_ALIAS_ID as Rt, runWorkerAgent as S, BUDGET_SMALL_FAST_CATALOG_ID as Sn, generalPurposeFastModel as St, buildToolbeltAwareness as T, DEFAULT_CODEX_MODEL as Tn, resolveGeminiReviewModel as Tt, repairKnownThinkingHistory as U, resolveModelAlias as Ut, formatThinkingRepairDecline as V, stripTrailingOneMSuffix as Vn, profileDescriptor as Vt, repairRejectedThinkingHistory as W, validateFastProfilePrerequisites as Wt, relayAnthropicStream as X, getTokenizerFromModel as Xt, readIteratorWithTimeout as Y, getTokenCount as Yt, EFFORT_ORDER as Z, findLaunchBySecret as Zt, TEST_DEFAULT_MODEL as _, CONDENSED_OPERATING_SEQUENCE as _n, fastPlannerModel as _t, buildAgentPrompt as a, MAX_RESPONSE_BODY_BYTES as an, FAST_PLANNER_EFFORT as at, resolveModeDefaults as b, collapsePathKeys as bn, fleetToolsEnabled as bt, enumerateInjectedMcpToolNames as c, normalizeOpenAIUsage as cn, agentToolsEnabled as ct, DEFAULT_MODEL_CHAIN as d, colbertDegradedWarning as dn, browseAgentEnabled as dt, assembleResponsesPayload as en, clampEffort as et, EXPLORE_DEFAULT_MODEL as f, provisionAndIndexColbert as fn, browserCompoundToolsEnabled as ft, REVIEW_DEFAULT_MODEL as g, provisionTreeSitterAssets as gn, fastOracleModel as gt, PLAN_DEFAULT_MODEL as h, warmTreeSitterPool as hn, fastImplementerModel as ht, assertMcpToolSurfaceConsistent as i, createChatCompletions as in, FAST_IMPLEMENTER_EFFORT as it, satisfiesMinVersion as j, isBudgetClaudeLead as jn, workerToolsEnabled as jt, TOOLBELT_TOOLS$1 as k, UPSTREAM_INACTIVITY_TIMEOUT_MS as kn, scribeModel as kt, personasFor as l, provisionBrowserAssets as ln, artifactToolsEnabled as lt, IMPLEMENT_DEFAULT_MODEL as m, extractZipMember as mn, fastCriticModel as mt, MCP_GROUPS as n, resolveMcpToolTimeoutMs as nn, handleMcpPost as nt, buildPeerAwarenessSnippet as o, readResponseBodyCapped as on, FAST_REVIEWER_EFFORT as ot, EXPLORE_DEFAULT_THINKING as p, extractTarGzMember as pn, browserToolsEnabled as pt, isControllerClosedError as q, createMessages as qt, agentNamesForToolAllowlist as r, createResponses as rn, FAST_CRITIC_EFFORT as rt, buildPeerAwarenessSummary as s, parseJsonOrDiagnose as sn, FAST_SCOUT_EFFORT as st, GROUP_META as t, warnOnTokenPriceDrift as tn, handleMcpDelete as tt, BROWSE_DEFAULT_MODEL as u, hasSupportedBrowserInstalled as un, brainstormModel as ut, appendPlanReminder as v, DEFINITION_OF_GREATNESS as vn, fastReviewerModel as vt, availableToolCommands as w, DEFAULT_CLAUDE_MODEL_FALLBACKS as wn, nativeSubagentModel as wt, resolveWorkerRunOpts as x, toolbeltPathOverride as xn, geminiAvailable as xt, resolveDefaultModel as y, shouldUseInsecureTls as yn, fastScoutModel as yt, resolveAdvisorEffort as z, withOneMSuffix as zn, canonicalizeAliasModel as zt };
|
|
37222
37223
|
|
|
37223
|
-
//# sourceMappingURL=peer-mcp-personas-
|
|
37224
|
+
//# sourceMappingURL=peer-mcp-personas-ce6_YMnX.js.map
|