github-router 0.3.315 → 0.3.316
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-DXmmyuEE.js → attribution-settings-jcsSeVur.js} +116 -17
- package/dist/attribution-settings-jcsSeVur.js.map +1 -0
- package/dist/{auth-D8t41c5D.js → auth-JfxL9q7z.js} +3 -3
- package/dist/{auth-D8t41c5D.js.map → auth-JfxL9q7z.js.map} +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/{check-usage-BpBKOjGZ.js → check-usage-DXUEQzt_.js} +3 -3
- package/dist/{check-usage-BpBKOjGZ.js.map → check-usage-DXUEQzt_.js.map} +1 -1
- package/dist/{claude-Cmmu3-cL.js → claude-CJ4Nd2_3.js} +94 -29
- package/dist/claude-CJ4Nd2_3.js.map +1 -0
- package/dist/{codex-DqTKKoEx.js → codex-CwuLqNZF.js} +6 -6
- package/dist/codex-CwuLqNZF.js.map +1 -0
- package/dist/engine-DwrxceOS.js +2 -0
- package/dist/{gate-discovery-CPk6Z8yc.js → gate-discovery-z04ywOzB.js} +2 -2
- package/dist/{gate-discovery-CPk6Z8yc.js.map → gate-discovery-z04ywOzB.js.map} +1 -1
- package/dist/{get-copilot-usage-FSQE8szQ.js → get-copilot-usage-BMD_cJNT.js} +3 -3
- package/dist/{get-copilot-usage-FSQE8szQ.js.map → get-copilot-usage-BMD_cJNT.js.map} +1 -1
- package/dist/hooks.mjs +1 -0
- package/dist/hooks.sha256 +1 -1
- package/dist/{internal-max-dispatch-guard-l1NGYHtF.js → internal-max-dispatch-guard-BNqQ2wMc.js} +2 -2
- package/dist/{internal-max-dispatch-guard-l1NGYHtF.js.map → internal-max-dispatch-guard-BNqQ2wMc.js.map} +1 -1
- package/dist/{internal-max-dispatch-guard-BzKsY9ze.js → internal-max-dispatch-guard-Bz7a2Ntf.js} +1 -1
- package/dist/{internal-stop-hook-BKiKYeda.js → internal-stop-hook-UN1JHtjj.js} +2 -2
- package/dist/{internal-stop-hook-BKiKYeda.js.map → internal-stop-hook-UN1JHtjj.js.map} +1 -1
- package/dist/main.js +9 -9
- package/dist/{max-profile-contract-BcrMlrmo.js → max-profile-contract-Bl7I_EOC.js} +2 -2
- package/dist/{max-profile-contract-BcrMlrmo.js.map → max-profile-contract-Bl7I_EOC.js.map} +1 -1
- package/dist/{models-DgLeb-Dv.js → models-CVzyU5mJ.js} +2 -2
- package/dist/{models-DgLeb-Dv.js.map → models-CVzyU5mJ.js.map} +1 -1
- package/dist/{peer-mcp-personas-CYWJSxPK.js → peer-mcp-personas-CQ-0Piyr.js} +166 -45
- package/dist/peer-mcp-personas-CQ-0Piyr.js.map +1 -0
- package/dist/{provision-AwSjt-vR.js → provision-_R7ZMygj.js} +2 -2
- package/dist/{provision-AwSjt-vR.js.map → provision-_R7ZMygj.js.map} +1 -1
- package/dist/{serve-BG2O6Slz.js → serve-DU66K5kv.js} +7 -7
- package/dist/{serve-BG2O6Slz.js.map → serve-DU66K5kv.js.map} +1 -1
- package/dist/{server-setup-D7ABbEs1.js → server-setup-iLG8LrfL.js} +165 -27
- package/dist/server-setup-iLG8LrfL.js.map +1 -0
- package/dist/{start-Dpwpnq99.js → start-DQTcm0o_.js} +3 -3
- package/dist/{start-Dpwpnq99.js.map → start-DQTcm0o_.js.map} +1 -1
- package/dist/{state-B8adscCv.js → state-BlMpEFAt.js} +2 -1
- package/dist/{state-B8adscCv.js.map → state-BlMpEFAt.js.map} +1 -1
- package/dist/{token-ClzS23Y2.js → token-C1gthnbV.js} +2 -2
- package/dist/{token-ClzS23Y2.js.map → token-C1gthnbV.js.map} +1 -1
- package/package.json +1 -1
- package/dist/attribution-settings-DXmmyuEE.js.map +0 -1
- package/dist/claude-Cmmu3-cL.js.map +0 -1
- package/dist/codex-DqTKKoEx.js.map +0 -1
- package/dist/engine-b9XaKLp0.js +0 -2
- package/dist/peer-mcp-personas-CYWJSxPK.js.map +0 -1
- package/dist/server-setup-D7ABbEs1.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as ensurePaths, t as PATHS } from "./paths-CMxlQEfQ.js";
|
|
2
|
-
import { t as state } from "./state-
|
|
3
|
-
import { r as setupGitHubToken } from "./token-
|
|
2
|
+
import { t as state } from "./state-BlMpEFAt.js";
|
|
3
|
+
import { r as setupGitHubToken } from "./token-C1gthnbV.js";
|
|
4
4
|
import { defineCommand } from "citty";
|
|
5
5
|
import consola from "consola";
|
|
6
6
|
//#region src/auth.ts
|
|
@@ -42,4 +42,4 @@ const auth = defineCommand({
|
|
|
42
42
|
//#endregion
|
|
43
43
|
export { auth };
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=auth-
|
|
45
|
+
//# sourceMappingURL=auth-JfxL9q7z.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-
|
|
1
|
+
{"version":3,"file":"auth-JfxL9q7z.js","names":[],"sources":["../src/auth.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { PATHS, ensurePaths } from \"./lib/paths\"\nimport { state } from \"./lib/state\"\nimport { setupGitHubToken } from \"./lib/token\"\n\ninterface RunAuthOptions {\n verbose: boolean\n showToken: boolean\n}\n\nexport async function runAuth(options: RunAuthOptions): Promise<void> {\n if (options.verbose) {\n consola.level = 5\n consola.info(\"Verbose logging enabled\")\n }\n\n state.showToken = options.showToken\n\n await ensurePaths()\n await setupGitHubToken({ force: true })\n consola.success(\"GitHub token written to\", PATHS.GITHUB_TOKEN_PATH)\n}\n\nexport const auth = defineCommand({\n meta: {\n name: \"auth\",\n description: \"Run GitHub auth flow without running the server\",\n },\n args: {\n verbose: {\n alias: \"v\",\n type: \"boolean\",\n default: false,\n description: \"Enable verbose logging\",\n },\n \"show-token\": {\n type: \"boolean\",\n default: false,\n description: \"Show GitHub token on auth\",\n },\n },\n run({ args }) {\n return runAuth({\n verbose: args.verbose,\n showToken: args[\"show-token\"],\n })\n },\n})\n"],"mappings":";;;;;;AAcA,eAAsB,QAAQ,SAAwC;CACpE,IAAI,QAAQ,SAAS;EACnB,QAAQ,QAAQ;EAChB,QAAQ,KAAK,yBAAyB;CACxC;CAEA,MAAM,YAAY,QAAQ;CAE1B,MAAM,YAAY;CAClB,MAAM,iBAAiB,EAAE,OAAO,KAAK,CAAC;CACtC,QAAQ,QAAQ,2BAA2B,MAAM,iBAAiB;AACpE;AAEA,MAAa,OAAO,cAAc;CAChC,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;EACJ,SAAS;GACP,OAAO;GACP,MAAM;GACN,SAAS;GACT,aAAa;EACf;EACA,cAAc;GACZ,MAAM;GACN,SAAS;GACT,aAAa;EACf;CACF;CACA,IAAI,EAAE,QAAQ;EACZ,OAAO,QAAQ;GACb,SAAS,KAAK;GACd,WAAW,KAAK;EAClB,CAAC;CACH;AACF,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"name": "github-router browser bridge",
|
|
4
4
|
"short_name": "gh-router-browser",
|
|
5
|
-
"version": "0.3.
|
|
5
|
+
"version": "0.3.316",
|
|
6
6
|
"description": "Bridge between Claude (via github-router /mcp) and the browser. Implements tab control, navigation, clicks, form fill, downloads, screenshots, devtools eval. Blocks navigation to chrome://settings.",
|
|
7
7
|
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqJElxuBlonBS3TVW9FJN0mGTtShB3L1hoaYf6k39SOr1ogGYmF90EjRxy1i21k9wQQjPf26bcBu/9X67KrQjQV0uB38CaNukgiSeoLjfptN811u+PJHx6BP+jx3Qa6/3VenNPxHC8WEU0GXql8QSjIHEyCwKb6fMASXOK94JyB5Ywov2x8mt/+9ncqBBBMVzf6r5Sagy4PL1XnryLsuADD/vOEkPet8wXgH/Oj7v5tTsQQZ7U1JT51PoDs2BFnXc5v3TkVgZwd32k3ONh+nkDw1Hof+4zwUGOyJE6eMrlYzRlKM4Qxdf9JpavQvqfieAbTRWcyKeclnHeoIfE7cDBQIDAQAB",
|
|
8
8
|
"background": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as ensurePaths } from "./paths-CMxlQEfQ.js";
|
|
2
|
-
import { r as setupGitHubToken } from "./token-
|
|
3
|
-
import { t as getCopilotUsage } from "./get-copilot-usage-
|
|
2
|
+
import { r as setupGitHubToken } from "./token-C1gthnbV.js";
|
|
3
|
+
import { t as getCopilotUsage } from "./get-copilot-usage-BMD_cJNT.js";
|
|
4
4
|
import { defineCommand } from "citty";
|
|
5
5
|
import consola from "consola";
|
|
6
6
|
//#region src/check-usage.ts
|
|
@@ -40,4 +40,4 @@ const checkUsage = defineCommand({
|
|
|
40
40
|
//#endregion
|
|
41
41
|
export { checkUsage };
|
|
42
42
|
|
|
43
|
-
//# sourceMappingURL=check-usage-
|
|
43
|
+
//# sourceMappingURL=check-usage-DXUEQzt_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-usage-
|
|
1
|
+
{"version":3,"file":"check-usage-DXUEQzt_.js","names":[],"sources":["../src/check-usage.ts"],"sourcesContent":["import { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { ensurePaths } from \"./lib/paths\"\nimport { setupGitHubToken } from \"./lib/token\"\nimport {\n getCopilotUsage,\n type QuotaDetail,\n} from \"./services/github/get-copilot-usage\"\n\nexport const checkUsage = defineCommand({\n meta: {\n name: \"check-usage\",\n description: \"Show current GitHub Copilot usage/quota information\",\n },\n async run() {\n await ensurePaths()\n await setupGitHubToken()\n try {\n const usage = await getCopilotUsage()\n const premium = usage.quota_snapshots.premium_interactions\n const premiumTotal = premium.entitlement\n const premiumUsed = premiumTotal - premium.remaining\n const premiumPercentUsed =\n premiumTotal > 0 ? (premiumUsed / premiumTotal) * 100 : 0\n const premiumPercentRemaining = premium.percent_remaining\n\n // Helper to summarize a quota snapshot\n function summarizeQuota(name: string, snap: QuotaDetail | undefined) {\n if (!snap) return `${name}: N/A`\n const total = snap.entitlement\n const used = total - snap.remaining\n const percentUsed = total > 0 ? (used / total) * 100 : 0\n const percentRemaining = snap.percent_remaining\n return `${name}: ${used}/${total} used (${percentUsed.toFixed(1)}% used, ${percentRemaining.toFixed(1)}% remaining)`\n }\n\n const premiumLine = `Premium: ${premiumUsed}/${premiumTotal} used (${premiumPercentUsed.toFixed(1)}% used, ${premiumPercentRemaining.toFixed(1)}% remaining)`\n const chatLine = summarizeQuota(\"Chat\", usage.quota_snapshots.chat)\n const completionsLine = summarizeQuota(\n \"Completions\",\n usage.quota_snapshots.completions,\n )\n\n consola.box(\n `Copilot Usage (plan: ${usage.copilot_plan})\\n`\n + `Quota resets: ${usage.quota_reset_date}\\n`\n + `\\nQuotas:\\n`\n + ` ${premiumLine}\\n`\n + ` ${chatLine}\\n`\n + ` ${completionsLine}`,\n )\n } catch (err) {\n consola.error(\"Failed to fetch Copilot usage:\", err)\n process.exit(1)\n }\n },\n})\n"],"mappings":";;;;;;AAUA,MAAa,aAAa,cAAc;CACtC,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM,MAAM;EACV,MAAM,YAAY;EAClB,MAAM,iBAAiB;EACvB,IAAI;GACF,MAAM,QAAQ,MAAM,gBAAgB;GACpC,MAAM,UAAU,MAAM,gBAAgB;GACtC,MAAM,eAAe,QAAQ;GAC7B,MAAM,cAAc,eAAe,QAAQ;GAC3C,MAAM,qBACJ,eAAe,IAAK,cAAc,eAAgB,MAAM;GAC1D,MAAM,0BAA0B,QAAQ;GAGxC,SAAS,eAAe,MAAc,MAA+B;IACnE,IAAI,CAAC,MAAM,OAAO,GAAG,KAAK;IAC1B,MAAM,QAAQ,KAAK;IACnB,MAAM,OAAO,QAAQ,KAAK;IAC1B,MAAM,cAAc,QAAQ,IAAK,OAAO,QAAS,MAAM;IACvD,MAAM,mBAAmB,KAAK;IAC9B,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,SAAS,YAAY,QAAQ,CAAC,EAAE,UAAU,iBAAiB,QAAQ,CAAC,EAAE;GACzG;GAEA,MAAM,cAAc,YAAY,YAAY,GAAG,aAAa,SAAS,mBAAmB,QAAQ,CAAC,EAAE,UAAU,wBAAwB,QAAQ,CAAC,EAAE;GAChJ,MAAM,WAAW,eAAe,QAAQ,MAAM,gBAAgB,IAAI;GAClE,MAAM,kBAAkB,eACtB,eACA,MAAM,gBAAgB,WACxB;GAEA,QAAQ,IACN,wBAAwB,MAAM,aAAa,mBACtB,MAAM,iBAAiB,iBAEnC,YAAY,MACZ,SAAS,MACT,iBACX;EACF,SAAS,KAAK;GACZ,QAAQ,MAAM,kCAAkC,GAAG;GACnD,QAAQ,KAAK,CAAC;EAChB;CACF;AACF,CAAC"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { At as resolveGeminiReviewModel, Cn as isBudgetClaudeLead, Ct as fastReviewerModel, D as toolbeltEnabled, Dt as generalPurposeFastModel, E as buildToolbeltAwareness, Et as geminiAvailable, Ft as standInToolEnabled, Gt as unregisterLaunch, It as workerToolsEnabled, Ln as CHEAPEST_PROFILE_NATIVE_MODELS, Mt as reviewerModel, Nn as CHEAPEST_PROFILE_ADVISOR_CLIENT_MODEL, Nt as scoutModel, Ot as implementerFastModel, Pt as scribeModel, St as fastPlanModel, T as availableToolCommands, Tn as resolveLeadSlugArg, Tt as fleetToolsEnabled, Un as CHEAP_PROFILE_NATIVE_MODELS, Wt as registerLaunch, _t as fastAdvisorModel, at as agentToolsEnabled, bt as fastImplementerModel, ct as browseAgentEnabled, dn as shouldUseInsecureTls, dt as cheapAdvisorModel, ft as cheapOracleModel, gn as DEFAULT_CLAUDE_MODEL_FALLBACKS, gt as cheapestReviewerModel, ht as cheapestOracleModel, in as provisionAndIndexColbert, jt as reviewerFastModel, kt as nativeSubagentModel, lt as browserCompoundToolsEnabled, mt as cheapestAdvisorModel, o as buildPeerAwarenessSnippet, ot as artifactToolsEnabled, pt as cheapReviewerModel, r as agentNamesForToolAllowlist, rn as colbertDegradedWarning, s as buildPeerAwarenessSummary, sn as warmTreeSitterPool, st as brainstormModel, tn as provisionBrowserAssets, ut as browserToolsEnabled, vt as fastAstraModel, wn as pickClaudeDefault, wt as fastScoutModel, xt as fastOracleModel, yt as fastGeneralPurposeModel, zn as CHEAP_PROFILE_ADVISOR_CLIENT_MODEL } from "./peer-mcp-personas-CQ-0Piyr.js";
|
|
2
2
|
import { o as removeOwnClaudeConfigMirror, r as ensureClaudeConfigMirror, t as PATHS, u as writeArtifactCredsToMirror } from "./paths-CMxlQEfQ.js";
|
|
3
|
-
import { t as state } from "./state-
|
|
4
|
-
import { d as resolveModel } from "./token-
|
|
3
|
+
import { t as state } from "./state-BlMpEFAt.js";
|
|
4
|
+
import { d as resolveModel } from "./token-C1gthnbV.js";
|
|
5
5
|
import { i as parseBoolEnv } from "./exec-COUT4QsS.js";
|
|
6
|
-
import { C as
|
|
6
|
+
import { C as validateMaxProfileLaunch, E as updateClaude, S as validateFastProfilePrerequisites, T as checkClaudeVersion, _ as profileDescriptor, a as sharedServerArgs, b as validateCheapProfilePrerequisites, c as stopKeepAwake, d as enableFileLogging, g as formatFastPrerequisiteFailure, h as formatCheapestPrerequisiteFailure, i as setupAndServe, l as injectModelPickerSettingsFile, m as formatCheapPrerequisiteFailure, o as LAUNCH_SECRET_HEADER, p as formatCheap1mPrerequisiteFailure, r as parseSharedArgs, s as startKeepAwake, t as getClaudeCodeEnvVars, u as listModelsForEndpoint, v as resolveLaunchProfile, w as runSelfUpdate, x as validateCheapestProfilePrerequisites, y as validateCheap1mProfilePrerequisites } from "./server-setup-iLG8LrfL.js";
|
|
7
7
|
import { t as FAST_PROFILE_ADVISOR_CLIENT_MODEL } from "./fast-profile-contract-_DhIWank.js";
|
|
8
|
-
import { _ as maxReviewerModel, c as formatMaxPrerequisiteFailure, f as maxCodexReviewerModel, h as maxOpusModel, i as MAX_PROFILE_MODELS, m as maxGrokModel, o as MAX_PROFILE_NATIVE_EFFORTS, p as maxGeminiModel, v as maxSonnetModel } from "./max-profile-contract-
|
|
8
|
+
import { _ as maxReviewerModel, c as formatMaxPrerequisiteFailure, f as maxCodexReviewerModel, h as maxOpusModel, i as MAX_PROFILE_MODELS, m as maxGrokModel, o as MAX_PROFILE_NATIVE_EFFORTS, p as maxGeminiModel, v as maxSonnetModel } from "./max-profile-contract-Bl7I_EOC.js";
|
|
9
9
|
import { n as hookLauncherDegradedWarning, r as resolveSelfInvocation, t as buildSelfCommand } from "./self-invocation-cRl4RqfW.js";
|
|
10
|
-
import { i as launchChild, r as getCodexVersion, t as provisionToolbelt } from "./provision-
|
|
10
|
+
import { i as launchChild, r as getCodexVersion, t as provisionToolbelt } from "./provision-_R7ZMygj.js";
|
|
11
11
|
import { a as formatAicExitSummary, l as removeAicLedgerFile, n as aicSnapshot, t as aicLedgerPath, u as sweepStaleAicLedgerFiles } from "./aic-ledger-BS47yb_C.js";
|
|
12
12
|
import { i as captureLaunchBaseline, l as stopGateDisabled, n as buildSessionBindHookCommand, r as buildStopHookCommand, s as injectStopHookIntoSettingsFile, t as buildArtifactOpenHookCommand, u as stopGateId } from "./stop-gate-hook-BUCxa5Kc.js";
|
|
13
13
|
import { t as liveExec } from "./orchestration-Dc3mO0G3.js";
|
|
14
14
|
import { c as repoRoot, d as trustRepo, l as stopGateEnabledForRepo, s as repoFingerprint, t as fileBaselineStore } from "./stop-gate-policy--bpyxxXU.js";
|
|
15
15
|
import { l as guardToolMatcher, n as activeDispatchModes, r as buildWorkerGuardHookCommand } from "./worker-dispatch-DMIdrlsF.js";
|
|
16
|
-
import { C as writePeerMcpRuntimeFiles, S as workersKeyOf, a as appendPeerAwarenessToMirroredClaudeMd, b as resolveCodexCliBackend, c as buildOperatingDefaultsDirective, d as prependStyleDirectiveToMirroredClaudeMd, f as buildArtifactReviewSkill, g as planModeAllowRules, h as injectAllowRules, i as writeInjectedSkill, l as prependArtifactPanelDirectiveToMirroredClaudeMd, o as appendToolbeltAwarenessToMirroredClaudeMd, r as injectedSkillsForLaunch, s as buildOperatingDefaultsDigest, t as injectAttributionSuppressionIntoSettingsFile, u as prependOperatingDefaultsToMirroredClaudeMd, x as resolveGroupKeysFromMirror, y as injectPeerMcpIntoMirror } from "./attribution-settings-
|
|
16
|
+
import { C as writePeerMcpRuntimeFiles, S as workersKeyOf, a as appendPeerAwarenessToMirroredClaudeMd, b as resolveCodexCliBackend, c as buildOperatingDefaultsDirective, d as prependStyleDirectiveToMirroredClaudeMd, f as buildArtifactReviewSkill, g as planModeAllowRules, h as injectAllowRules, i as writeInjectedSkill, l as prependArtifactPanelDirectiveToMirroredClaudeMd, o as appendToolbeltAwarenessToMirroredClaudeMd, r as injectedSkillsForLaunch, s as buildOperatingDefaultsDigest, t as injectAttributionSuppressionIntoSettingsFile, u as prependOperatingDefaultsToMirroredClaudeMd, x as resolveGroupKeysFromMirror, y as injectPeerMcpIntoMirror } from "./attribution-settings-jcsSeVur.js";
|
|
17
17
|
import { r as hookMcpRuntimeFromEnv } from "./hook-mcp-client-DBvm9608.js";
|
|
18
18
|
import { i as planReviewEnabled, t as buildPlanReviewHookCommand } from "./plan-review-hook-BIMwWkh6.js";
|
|
19
|
-
import { a as checksForDescriptor, i as writeDiscoveredGate, n as readDiscoveredGate, o as descriptorHash, r as sourcesHash, s as parseGateDescriptor, t as discoverGateCommands } from "./gate-discovery-
|
|
19
|
+
import { a as checksForDescriptor, i as writeDiscoveredGate, n as readDiscoveredGate, o as descriptorHash, r as sourcesHash, s as parseGateDescriptor, t as discoverGateCommands } from "./gate-discovery-z04ywOzB.js";
|
|
20
20
|
import { t as buildPromptSubmitHookCommand } from "./prompt-submit-hook-BcFpjHXg.js";
|
|
21
21
|
import { i as assertShapingInstalled, n as buildFirstMateGuardHookCommand, t as FIRST_MATE_GUARD_MATCHER } from "./internal-first-mate-guard-B0rbLb0L.js";
|
|
22
22
|
import { r as FAST_DISPATCH_TOOL_MATCHER, t as buildFastDispatchGuardHookCommand } from "./internal-fast-dispatch-guard-CAwYj_Yz.js";
|
|
23
|
-
import { i as assertMaxDispatchGuardInstalled, r as MAX_DISPATCH_TOOL_MATCHER, t as buildMaxDispatchGuardHookCommand } from "./internal-max-dispatch-guard-
|
|
23
|
+
import { i as assertMaxDispatchGuardInstalled, r as MAX_DISPATCH_TOOL_MATCHER, t as buildMaxDispatchGuardHookCommand } from "./internal-max-dispatch-guard-BNqQ2wMc.js";
|
|
24
24
|
import { n as formatDiscountedCostTable, t as discountedUsdForSnapshot } from "./copilot-discount-IbXR5A28.js";
|
|
25
25
|
import { defineCommand } from "citty";
|
|
26
26
|
import consola from "consola";
|
|
@@ -164,8 +164,8 @@ function createFastLaunchCleanup(deps) {
|
|
|
164
164
|
}
|
|
165
165
|
//#endregion
|
|
166
166
|
//#region src/lib/fast-advisor-client.ts
|
|
167
|
-
const ADVISOR_FLAG$
|
|
168
|
-
function featureEnvEnabled$
|
|
167
|
+
const ADVISOR_FLAG$2 = "--advisor";
|
|
168
|
+
function featureEnvEnabled$2(value) {
|
|
169
169
|
if (value === void 0) return true;
|
|
170
170
|
return ![
|
|
171
171
|
"",
|
|
@@ -178,7 +178,7 @@ function featureEnvEnabled$1(value) {
|
|
|
178
178
|
/** Match Claude Code's hard-disable and experimental-enable opt-out semantics. */
|
|
179
179
|
function fastAdvisorClientEnabled(env = process.env) {
|
|
180
180
|
if (env.CLAUDE_CODE_DISABLE_ADVISOR_TOOL) return false;
|
|
181
|
-
return featureEnvEnabled$
|
|
181
|
+
return featureEnvEnabled$2(env.CLAUDE_CODE_ENABLE_EXPERIMENTAL_ADVISOR_TOOL);
|
|
182
182
|
}
|
|
183
183
|
/**
|
|
184
184
|
* Remove every caller-supplied Advisor option and insert the fixed fast value.
|
|
@@ -194,17 +194,17 @@ function withFixedFastAdvisorArg(args, enabled = fastAdvisorClientEnabled()) {
|
|
|
194
194
|
const sanitized = [];
|
|
195
195
|
for (let index = 0; index < args.length; index++) {
|
|
196
196
|
const token = args[index];
|
|
197
|
-
if (token === ADVISOR_FLAG$
|
|
197
|
+
if (token === ADVISOR_FLAG$2) {
|
|
198
198
|
const next = args[index + 1];
|
|
199
199
|
if (next !== void 0 && next !== "--" && !next.startsWith("-")) index++;
|
|
200
200
|
continue;
|
|
201
201
|
}
|
|
202
|
-
if (token.startsWith(`${ADVISOR_FLAG$
|
|
202
|
+
if (token.startsWith(`${ADVISOR_FLAG$2}=`)) continue;
|
|
203
203
|
sanitized.push(token);
|
|
204
204
|
}
|
|
205
205
|
if (!enabled) return sanitized;
|
|
206
206
|
const separator = sanitized.indexOf("--");
|
|
207
|
-
const fixed = [ADVISOR_FLAG$
|
|
207
|
+
const fixed = [ADVISOR_FLAG$2, FAST_PROFILE_ADVISOR_CLIENT_MODEL];
|
|
208
208
|
if (separator < 0) return [...sanitized, ...fixed];
|
|
209
209
|
return [
|
|
210
210
|
...sanitized.slice(0, separator),
|
|
@@ -214,8 +214,8 @@ function withFixedFastAdvisorArg(args, enabled = fastAdvisorClientEnabled()) {
|
|
|
214
214
|
}
|
|
215
215
|
//#endregion
|
|
216
216
|
//#region src/lib/cheap-advisor-client.ts
|
|
217
|
-
const ADVISOR_FLAG = "--advisor";
|
|
218
|
-
function featureEnvEnabled(value) {
|
|
217
|
+
const ADVISOR_FLAG$1 = "--advisor";
|
|
218
|
+
function featureEnvEnabled$1(value) {
|
|
219
219
|
if (value === void 0) return true;
|
|
220
220
|
return ![
|
|
221
221
|
"",
|
|
@@ -228,7 +228,7 @@ function featureEnvEnabled(value) {
|
|
|
228
228
|
/** Match Claude Code's hard-disable and experimental-enable opt-out semantics. */
|
|
229
229
|
function cheapAdvisorClientEnabled(env = process.env) {
|
|
230
230
|
if (env.CLAUDE_CODE_DISABLE_ADVISOR_TOOL) return false;
|
|
231
|
-
return featureEnvEnabled(env.CLAUDE_CODE_ENABLE_EXPERIMENTAL_ADVISOR_TOOL);
|
|
231
|
+
return featureEnvEnabled$1(env.CLAUDE_CODE_ENABLE_EXPERIMENTAL_ADVISOR_TOOL);
|
|
232
232
|
}
|
|
233
233
|
/**
|
|
234
234
|
* Remove every caller-supplied Advisor option and insert the fixed cheap value
|
|
@@ -238,6 +238,53 @@ function cheapAdvisorClientEnabled(env = process.env) {
|
|
|
238
238
|
* the first separator so Claude Code parses it as an option.
|
|
239
239
|
*/
|
|
240
240
|
function withFixedCheapAdvisorArg(args, enabled = cheapAdvisorClientEnabled()) {
|
|
241
|
+
const sanitized = [];
|
|
242
|
+
for (let index = 0; index < args.length; index++) {
|
|
243
|
+
const token = args[index];
|
|
244
|
+
if (token === ADVISOR_FLAG$1) {
|
|
245
|
+
const next = args[index + 1];
|
|
246
|
+
if (next !== void 0 && next !== "--" && !next.startsWith("-")) index++;
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (token.startsWith(`${ADVISOR_FLAG$1}=`)) continue;
|
|
250
|
+
sanitized.push(token);
|
|
251
|
+
}
|
|
252
|
+
if (!enabled) return sanitized;
|
|
253
|
+
const separator = sanitized.indexOf("--");
|
|
254
|
+
const fixed = [ADVISOR_FLAG$1, CHEAP_PROFILE_ADVISOR_CLIENT_MODEL];
|
|
255
|
+
if (separator < 0) return [...sanitized, ...fixed];
|
|
256
|
+
return [
|
|
257
|
+
...sanitized.slice(0, separator),
|
|
258
|
+
...fixed,
|
|
259
|
+
...sanitized.slice(separator)
|
|
260
|
+
];
|
|
261
|
+
}
|
|
262
|
+
//#endregion
|
|
263
|
+
//#region src/lib/cheapest-advisor-client.ts
|
|
264
|
+
const ADVISOR_FLAG = "--advisor";
|
|
265
|
+
function featureEnvEnabled(value) {
|
|
266
|
+
if (value === void 0) return true;
|
|
267
|
+
return ![
|
|
268
|
+
"",
|
|
269
|
+
"0",
|
|
270
|
+
"false",
|
|
271
|
+
"no",
|
|
272
|
+
"off"
|
|
273
|
+
].includes(value.trim().toLowerCase());
|
|
274
|
+
}
|
|
275
|
+
/** Match Claude Code's hard-disable and experimental-enable opt-out semantics. */
|
|
276
|
+
function cheapestAdvisorClientEnabled(env = process.env) {
|
|
277
|
+
if (env.CLAUDE_CODE_DISABLE_ADVISOR_TOOL) return false;
|
|
278
|
+
return featureEnvEnabled(env.CLAUDE_CODE_ENABLE_EXPERIMENTAL_ADVISOR_TOOL);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Remove every caller-supplied Advisor option and insert the fixed cheapest
|
|
282
|
+
* value (the BARE `gemini-3.8-flash` — 200K default window — see
|
|
283
|
+
* `CHEAPEST_PROFILE_ADVISOR_CLIENT_MODEL`). Same parser semantics as the
|
|
284
|
+
* cheap variant: keeps scanning after `--`, and the fixed option is inserted
|
|
285
|
+
* before the first separator so Claude Code parses it as an option.
|
|
286
|
+
*/
|
|
287
|
+
function withFixedCheapestAdvisorArg(args, enabled = cheapestAdvisorClientEnabled()) {
|
|
241
288
|
const sanitized = [];
|
|
242
289
|
for (let index = 0; index < args.length; index++) {
|
|
243
290
|
const token = args[index];
|
|
@@ -251,7 +298,7 @@ function withFixedCheapAdvisorArg(args, enabled = cheapAdvisorClientEnabled()) {
|
|
|
251
298
|
}
|
|
252
299
|
if (!enabled) return sanitized;
|
|
253
300
|
const separator = sanitized.indexOf("--");
|
|
254
|
-
const fixed = [ADVISOR_FLAG,
|
|
301
|
+
const fixed = [ADVISOR_FLAG, CHEAPEST_PROFILE_ADVISOR_CLIENT_MODEL];
|
|
255
302
|
if (separator < 0) return [...sanitized, ...fixed];
|
|
256
303
|
return [
|
|
257
304
|
...sanitized.slice(0, separator),
|
|
@@ -266,7 +313,7 @@ const claudeArgs = {
|
|
|
266
313
|
model: {
|
|
267
314
|
alias: "m",
|
|
268
315
|
type: "string",
|
|
269
|
-
description: "Override the default model for Claude Code. Accepts a profile alias (fast, cheap, cheap1m, max), a full slug (e.g. claude-opus-4-7), or an Opus family shorthand (e.g. 4.7, 4.8, 4.6) which expands to the best variant for that family — adding the [1m] suffix when a 1M-context backend is in the catalog."
|
|
316
|
+
description: "Override the default model for Claude Code. Accepts a profile alias (fast, cheap, cheap1m, cheapest, max), a full slug (e.g. claude-opus-4-7), or an Opus family shorthand (e.g. 4.7, 4.8, 4.6) which expands to the best variant for that family — adding the [1m] suffix when a 1M-context backend is in the catalog."
|
|
270
317
|
},
|
|
271
318
|
"codex-mcp": {
|
|
272
319
|
type: "boolean",
|
|
@@ -383,8 +430,8 @@ const claude = defineCommand({
|
|
|
383
430
|
process$1.stderr.write(`Max profile uses its fixed HTTP MCP surface; --codex-cli is not supported in max profile.\n`);
|
|
384
431
|
process$1.exit(1);
|
|
385
432
|
}
|
|
386
|
-
if ((requestedLaunchProfileId === "fast" || requestedLaunchProfileId === "max" || requestedLaunchProfileId === "cheap" || requestedLaunchProfileId === "cheap1m") && !codexMcpEnabled) {
|
|
387
|
-
const message = `github-router claude -m ${requestedLaunchProfileId === "fast" ? "fast" : requestedLaunchProfileId === "cheap" ? "cheap" : requestedLaunchProfileId === "cheap1m" ? "cheap1m" : "max"} requires codex MCP wiring for its native roster and dispatch ACL; remove --no-codex-mcp or choose a standard model.`;
|
|
433
|
+
if ((requestedLaunchProfileId === "fast" || requestedLaunchProfileId === "max" || requestedLaunchProfileId === "cheap" || requestedLaunchProfileId === "cheap1m" || requestedLaunchProfileId === "cheapest") && !codexMcpEnabled) {
|
|
434
|
+
const message = `github-router claude -m ${requestedLaunchProfileId === "fast" ? "fast" : requestedLaunchProfileId === "cheap" ? "cheap" : requestedLaunchProfileId === "cheap1m" ? "cheap1m" : requestedLaunchProfileId === "cheapest" ? "cheapest" : "max"} requires codex MCP wiring for its native roster and dispatch ACL; remove --no-codex-mcp or choose a standard model.`;
|
|
388
435
|
process$1.stderr.write(`${message}\n`);
|
|
389
436
|
process$1.exit(1);
|
|
390
437
|
}
|
|
@@ -473,6 +520,9 @@ const claude = defineCommand({
|
|
|
473
520
|
} else if (launchProfileId === "cheap" || launchProfileId === "cheap1m") {
|
|
474
521
|
const prereqCheck = launchProfileId === "cheap1m" ? validateCheap1mProfilePrerequisites(state.models) : validateCheapProfilePrerequisites(state.models);
|
|
475
522
|
if (!prereqCheck.ok) await fastFatal(launchProfileId === "cheap1m" ? formatCheap1mPrerequisiteFailure(prereqCheck.missing) : formatCheapPrerequisiteFailure(prereqCheck.missing));
|
|
523
|
+
} else if (launchProfileId === "cheapest") {
|
|
524
|
+
const prereqCheck = validateCheapestProfilePrerequisites(state.models);
|
|
525
|
+
if (!prereqCheck.ok) await fastFatal(formatCheapestPrerequisiteFailure(prereqCheck.missing));
|
|
476
526
|
}
|
|
477
527
|
let chosenSlug = requestedSlug;
|
|
478
528
|
let resolvedSlug = resolveModel(chosenSlug);
|
|
@@ -508,6 +558,7 @@ const claude = defineCommand({
|
|
|
508
558
|
let extraArgs = collectChildPassthroughArgs(rawArgs, claudeArgs);
|
|
509
559
|
if (launchProfileId === "fast") extraArgs = withFixedFastAdvisorArg(extraArgs, fastAdvisorClientEnabled(process$1.env));
|
|
510
560
|
else if (launchProfileId === "cheap" || launchProfileId === "cheap1m") extraArgs = withFixedCheapAdvisorArg(extraArgs, cheapAdvisorClientEnabled(process$1.env));
|
|
561
|
+
else if (launchProfileId === "cheapest") extraArgs = withFixedCheapestAdvisorArg(extraArgs, cheapestAdvisorClientEnabled(process$1.env));
|
|
511
562
|
if (toolbeltEnabled()) {
|
|
512
563
|
provisionToolbelt().catch((err) => consola.debug("Toolbelt provisioning failed:", err));
|
|
513
564
|
const toolbeltLine = buildToolbeltAwareness(availableToolCommands());
|
|
@@ -533,7 +584,7 @@ const claude = defineCommand({
|
|
|
533
584
|
let peerAwarenessSnippet;
|
|
534
585
|
let peerAwarenessSummary;
|
|
535
586
|
let operatingGroupKeys = {};
|
|
536
|
-
let fastWiringComplete = launchProfileId !== "fast" && !(launchProfileId === "cheap" || launchProfileId === "cheap1m");
|
|
587
|
+
let fastWiringComplete = launchProfileId !== "fast" && !(launchProfileId === "cheap" || launchProfileId === "cheap1m" || launchProfileId === "cheapest");
|
|
537
588
|
const astraAvailable = (launchProfileId === "fast" || launchProfileId === "cheap1m") && Boolean(fastAstraModel());
|
|
538
589
|
const browseAgentAvailable = browseAgentEnabled();
|
|
539
590
|
const directBrowserAvailable = browserToolsEnabled();
|
|
@@ -552,6 +603,12 @@ const claude = defineCommand({
|
|
|
552
603
|
"general-purpose": CHEAP_PROFILE_NATIVE_MODELS["general-purpose"],
|
|
553
604
|
implementer: CHEAP_PROFILE_NATIVE_MODELS.implementer,
|
|
554
605
|
reviewer: cheapReviewerModel()
|
|
606
|
+
} : launchProfileId === "cheapest" ? {
|
|
607
|
+
Explore: CHEAPEST_PROFILE_NATIVE_MODELS.Explore,
|
|
608
|
+
Plan: CHEAPEST_PROFILE_NATIVE_MODELS.Plan,
|
|
609
|
+
"general-purpose": CHEAPEST_PROFILE_NATIVE_MODELS["general-purpose"],
|
|
610
|
+
implementer: CHEAPEST_PROFILE_NATIVE_MODELS.implementer,
|
|
611
|
+
reviewer: cheapestReviewerModel()
|
|
555
612
|
} : launchProfileId === "max" ? {
|
|
556
613
|
Explore: MAX_PROFILE_MODELS.luna,
|
|
557
614
|
Plan: MAX_PROFILE_MODELS.sol,
|
|
@@ -570,7 +627,7 @@ const claude = defineCommand({
|
|
|
570
627
|
"general-purpose-fast": generalPurposeFastModel()
|
|
571
628
|
};
|
|
572
629
|
const nativeAvailability = {
|
|
573
|
-
scoutAvailable: (launchProfileId === "fast" || launchProfileId === "cheap" || launchProfileId === "cheap1m" ? nativeAgentModels.Explore : nativeAgentModels.scout) != null,
|
|
630
|
+
scoutAvailable: (launchProfileId === "fast" || launchProfileId === "cheap" || launchProfileId === "cheap1m" || launchProfileId === "cheapest" ? nativeAgentModels.Explore : nativeAgentModels.scout) != null,
|
|
574
631
|
implementerFastAvailable: nativeAgentModels["implementer-fast"] != null,
|
|
575
632
|
reviewerFastAvailable: nativeAgentModels["reviewer-fast"] != null,
|
|
576
633
|
generalPurposeFastAvailable: nativeAgentModels["general-purpose-fast"] != null,
|
|
@@ -586,7 +643,7 @@ const claude = defineCommand({
|
|
|
586
643
|
const requestedCli = args["codex-cli"] ?? false;
|
|
587
644
|
const isFastProfile = launchProfileId === "fast";
|
|
588
645
|
const isMaxProfile = launchProfileId === "max";
|
|
589
|
-
const isCheapProfile = launchProfileId === "cheap" || launchProfileId === "cheap1m";
|
|
646
|
+
const isCheapProfile = launchProfileId === "cheap" || launchProfileId === "cheap1m" || launchProfileId === "cheapest";
|
|
590
647
|
const isPinnedProfile = isFastProfile || isMaxProfile || isCheapProfile;
|
|
591
648
|
if ((isFastProfile || isCheapProfile) && requestedCli) process$1.stderr.write("Fast/cheap profile uses its fixed HTTP MCP surface; ignoring --codex-cli.\n");
|
|
592
649
|
const backend = isPinnedProfile ? "http" : resolveCodexCliBackend({
|
|
@@ -613,7 +670,8 @@ const claude = defineCommand({
|
|
|
613
670
|
if (isMaxProfile && agentToolsEnabled()) enabledGroups.push("first-mate");
|
|
614
671
|
const { keys: groupKeys, skipped: skippedGroups } = await resolveGroupKeysFromMirror(enabledGroups);
|
|
615
672
|
operatingGroupKeys = groupKeys;
|
|
616
|
-
if (isPinnedProfile && ((isCheapProfile ? cheapOracleModel() : fastOracleModel()) == null || (isCheapProfile ? cheapAdvisorModel() : fastAdvisorModel()) == null || nativeAgentModels.implementer == null)) {
|
|
673
|
+
if (isPinnedProfile && ((launchProfileId === "cheapest" ? cheapestOracleModel() : isCheapProfile ? cheapOracleModel() : fastOracleModel()) == null || (launchProfileId === "cheapest" ? cheapestAdvisorModel() : isCheapProfile ? cheapAdvisorModel() : fastAdvisorModel()) == null || nativeAgentModels.implementer == null)) {
|
|
674
|
+
if (launchProfileId === "cheapest") throw new Error("cheapest profile prerequisite drift: exact implementer, oracle (gpt-5.6-sol), or advisor (gemini-3.8-flash) model no longer resolves");
|
|
617
675
|
if (isCheapProfile) throw new Error("cheap profile prerequisite drift: exact implementer or oracle (grok-4.6) model no longer resolves");
|
|
618
676
|
throw new Error("fast profile prerequisite drift: exact Oracle, Advisor, or implementer model no longer resolves");
|
|
619
677
|
}
|
|
@@ -645,6 +703,13 @@ const claude = defineCommand({
|
|
|
645
703
|
fastGeneralPurposeModel: nativeAgentModels["general-purpose"],
|
|
646
704
|
fastImplementerModel: nativeAgentModels.implementer,
|
|
647
705
|
fastReviewerModel: nativeAgentModels.reviewer
|
|
706
|
+
} : launchProfileId === "cheapest" ? {
|
|
707
|
+
cheapestProfile: true,
|
|
708
|
+
cheapestExploreModel: nativeAgentModels.Explore,
|
|
709
|
+
cheapestPlanModel: nativeAgentModels.Plan,
|
|
710
|
+
cheapestGeneralPurposeModel: nativeAgentModels["general-purpose"],
|
|
711
|
+
cheapestImplementerModel: nativeAgentModels.implementer,
|
|
712
|
+
cheapestReviewerModel: nativeAgentModels.reviewer
|
|
648
713
|
} : isCheapProfile ? {
|
|
649
714
|
cheapProfile: true,
|
|
650
715
|
cheapExploreModel: nativeAgentModels.Explore,
|
|
@@ -991,13 +1056,13 @@ const claude = defineCommand({
|
|
|
991
1056
|
consola.warn(`Style-directive CLAUDE.md prepend failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
992
1057
|
}
|
|
993
1058
|
} catch (err) {
|
|
994
|
-
if (launchProfileId === "fast" || launchProfileId === "max" || launchProfileId === "cheap" || launchProfileId === "cheap1m") {
|
|
1059
|
+
if (launchProfileId === "fast" || launchProfileId === "max" || launchProfileId === "cheap" || launchProfileId === "cheap1m" || launchProfileId === "cheapest") {
|
|
995
1060
|
if (fastLaunchId) unregisterLaunch(fastLaunchId);
|
|
996
1061
|
await disposeFastRuntime().catch(() => {});
|
|
997
1062
|
await server.close(true).catch(() => {});
|
|
998
1063
|
await baseShutdown().catch(() => {});
|
|
999
1064
|
resetFastRuntimeOwnership();
|
|
1000
|
-
const message = `${launchProfileId === "fast" ? "Fast" : launchProfileId === "cheap" ? "Cheap" : launchProfileId === "cheap1m" ? "Cheap1m" : "Max"} profile wiring failed; refusing to launch an unguarded session: ${err instanceof Error ? err.message : String(err)}`;
|
|
1065
|
+
const message = `${launchProfileId === "fast" ? "Fast" : launchProfileId === "cheap" ? "Cheap" : launchProfileId === "cheap1m" ? "Cheap1m" : launchProfileId === "cheapest" ? "Cheapest" : "Max"} profile wiring failed; refusing to launch an unguarded session: ${err instanceof Error ? err.message : String(err)}`;
|
|
1001
1066
|
consola.error(message);
|
|
1002
1067
|
process$1.stderr.write(`${message}\n`);
|
|
1003
1068
|
process$1.exit(1);
|
|
@@ -1059,4 +1124,4 @@ const claude = defineCommand({
|
|
|
1059
1124
|
//#endregion
|
|
1060
1125
|
export { claude };
|
|
1061
1126
|
|
|
1062
|
-
//# sourceMappingURL=claude-
|
|
1127
|
+
//# sourceMappingURL=claude-CJ4Nd2_3.js.map
|