github-router 0.3.313 → 0.3.315
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/aic-ledger-BS47yb_C.js +298 -0
- package/dist/aic-ledger-BS47yb_C.js.map +1 -0
- package/dist/{attribution-settings-Dnt04Iyn.js → attribution-settings-DXmmyuEE.js} +8 -8
- package/dist/{attribution-settings-Dnt04Iyn.js.map → attribution-settings-DXmmyuEE.js.map} +1 -1
- package/dist/{auth-O_UG1ABO.js → auth-D8t41c5D.js} +3 -3
- package/dist/{auth-O_UG1ABO.js.map → auth-D8t41c5D.js.map} +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/{check-usage-dicJOWML.js → check-usage-BpBKOjGZ.js} +4 -4
- package/dist/{check-usage-dicJOWML.js.map → check-usage-BpBKOjGZ.js.map} +1 -1
- package/dist/{claude-D_Me80Yi.js → claude-Cmmu3-cL.js} +140 -20
- package/dist/claude-Cmmu3-cL.js.map +1 -0
- package/dist/{codex-CE7zZm-M.js → codex-DqTKKoEx.js} +5 -5
- package/dist/{codex-CE7zZm-M.js.map → codex-DqTKKoEx.js.map} +1 -1
- package/dist/copilot-discount-IbXR5A28.js +220 -0
- package/dist/copilot-discount-IbXR5A28.js.map +1 -0
- package/dist/{debug-2PgImRnr.js → debug-CA7pg8V9.js} +2 -2
- package/dist/{debug-2PgImRnr.js.map → debug-CA7pg8V9.js.map} +1 -1
- package/dist/engine-b9XaKLp0.js +2 -0
- package/dist/{exec-y8C_MU8A.js → exec-COUT4QsS.js} +2 -2
- package/dist/{exec-y8C_MU8A.js.map → exec-COUT4QsS.js.map} +1 -1
- package/dist/{gate-discovery-_flEdhYo.js → gate-discovery-CPk6Z8yc.js} +6 -6
- package/dist/{gate-discovery-_flEdhYo.js.map → gate-discovery-CPk6Z8yc.js.map} +1 -1
- package/dist/{get-copilot-usage-Cjy8TiFf.js → get-copilot-usage-FSQE8szQ.js} +2 -2
- package/dist/{get-copilot-usage-Cjy8TiFf.js.map → get-copilot-usage-FSQE8szQ.js.map} +1 -1
- package/dist/hooks.mjs +615 -15
- package/dist/hooks.sha256 +1 -1
- package/dist/internal-aic-status-BN0xRLSF.js +432 -0
- package/dist/internal-aic-status-BN0xRLSF.js.map +1 -0
- package/dist/{internal-artifact-open-CxeIfsW_.js → internal-artifact-open-B3stUu74.js} +2 -2
- package/dist/{internal-artifact-open-CxeIfsW_.js.map → internal-artifact-open-B3stUu74.js.map} +1 -1
- package/dist/{internal-fast-dispatch-guard-D8YNlnuQ.js → internal-fast-dispatch-guard-2QjUlhqO.js} +1 -1
- package/dist/{internal-fast-dispatch-guard-19xQEouu.js → internal-fast-dispatch-guard-CAwYj_Yz.js} +2 -2
- package/dist/{internal-fast-dispatch-guard-19xQEouu.js.map → internal-fast-dispatch-guard-CAwYj_Yz.js.map} +1 -1
- package/dist/{internal-first-mate-guard-BuweUgjb.js → internal-first-mate-guard-B0rbLb0L.js} +3 -3
- package/dist/{internal-first-mate-guard-BuweUgjb.js.map → internal-first-mate-guard-B0rbLb0L.js.map} +1 -1
- package/dist/{internal-first-mate-guard-Nf1H0mCK.js → internal-first-mate-guard-VgnHBp0s.js} +1 -1
- package/dist/{internal-max-dispatch-guard-_Pp4LltM.js → internal-max-dispatch-guard-BzKsY9ze.js} +1 -1
- package/dist/{internal-max-dispatch-guard-DZ7KLWxP.js → internal-max-dispatch-guard-l1NGYHtF.js} +2 -2
- package/dist/{internal-max-dispatch-guard-DZ7KLWxP.js.map → internal-max-dispatch-guard-l1NGYHtF.js.map} +1 -1
- package/dist/{internal-plan-review-DLduDz41.js → internal-plan-review-QUvNZmMR.js} +3 -3
- package/dist/{internal-plan-review-DLduDz41.js.map → internal-plan-review-QUvNZmMR.js.map} +1 -1
- package/dist/{internal-prompt-submit-DG94f8E-.js → internal-prompt-submit-fj5ccft_.js} +5 -5
- package/dist/{internal-prompt-submit-DG94f8E-.js.map → internal-prompt-submit-fj5ccft_.js.map} +1 -1
- package/dist/{internal-session-bind-D6Hpl-84.js → internal-session-bind-0Hmak8PR.js} +2 -2
- package/dist/{internal-session-bind-D6Hpl-84.js.map → internal-session-bind-0Hmak8PR.js.map} +1 -1
- package/dist/{internal-stop-hook-BJ3o61-L.js → internal-stop-hook-BKiKYeda.js} +6 -6
- package/dist/{internal-stop-hook-BJ3o61-L.js.map → internal-stop-hook-BKiKYeda.js.map} +1 -1
- package/dist/{internal-stop-review-DlKzZgFm.js → internal-stop-review-8v2llYDB.js} +2 -2
- package/dist/{internal-stop-review-DlKzZgFm.js.map → internal-stop-review-8v2llYDB.js.map} +1 -1
- package/dist/{internal-worker-guard-D7sfByyo.js → internal-worker-guard-BI4Pl0Ew.js} +2 -2
- package/dist/{internal-worker-guard-D7sfByyo.js.map → internal-worker-guard-BI4Pl0Ew.js.map} +1 -1
- package/dist/{internal-workspace-header-CU5OjLCB.js → internal-workspace-header-kg9FoNXK.js} +2 -2
- package/dist/{internal-workspace-header-CU5OjLCB.js.map → internal-workspace-header-kg9FoNXK.js.map} +1 -1
- package/dist/lifecycle-BpqAyaAj.js +2 -0
- package/dist/lifecycle-CL2WiyeQ.js +2 -0
- package/dist/{lifecycle-CtRA3Y7p.js → lifecycle-Cx1wVrLb.js} +3 -3
- package/dist/{lifecycle-CtRA3Y7p.js.map → lifecycle-Cx1wVrLb.js.map} +1 -1
- package/dist/{lifecycle-BCnarXJV.js → lifecycle-IwotwedG.js} +2 -2
- package/dist/{lifecycle-BCnarXJV.js.map → lifecycle-IwotwedG.js.map} +1 -1
- package/dist/main.js +21 -20
- package/dist/main.js.map +1 -1
- package/dist/{mcp-workspace-header-B60WSR1Y.js → mcp-workspace-header-BYgWioLH.js} +2 -2
- package/dist/{mcp-workspace-header-B60WSR1Y.js.map → mcp-workspace-header-BYgWioLH.js.map} +1 -1
- package/dist/{models-COuMOfM6.js → models-DgLeb-Dv.js} +3 -3
- package/dist/{models-COuMOfM6.js.map → models-DgLeb-Dv.js.map} +1 -1
- package/dist/{orchestration-DjLA-lxB.js → orchestration-Dc3mO0G3.js} +3 -3
- package/dist/{orchestration-DjLA-lxB.js.map → orchestration-Dc3mO0G3.js.map} +1 -1
- package/dist/paths-BXXCVFvA.js +2 -0
- package/dist/{paths-De1Qh9Q9.js → paths-CMxlQEfQ.js} +3 -3
- package/dist/{paths-De1Qh9Q9.js.map → paths-CMxlQEfQ.js.map} +1 -1
- package/dist/{peer-mcp-personas-DklYru_1.js → peer-mcp-personas-CYWJSxPK.js} +40 -13
- package/dist/{peer-mcp-personas-DklYru_1.js.map → peer-mcp-personas-CYWJSxPK.js.map} +1 -1
- package/dist/{plan-review-hook-vL6BYmA8.js → plan-review-hook-BIMwWkh6.js} +4 -4
- package/dist/{plan-review-hook-vL6BYmA8.js.map → plan-review-hook-BIMwWkh6.js.map} +1 -1
- package/dist/{prompt-submit-hook-DfqufWC1.js → prompt-submit-hook-BcFpjHXg.js} +3 -3
- package/dist/{prompt-submit-hook-DfqufWC1.js.map → prompt-submit-hook-BcFpjHXg.js.map} +1 -1
- package/dist/{provision-BYdIsKcp.js → provision-AwSjt-vR.js} +9 -5
- package/dist/provision-AwSjt-vR.js.map +1 -0
- package/dist/{self-invocation-B84JCHps.js → self-invocation-cRl4RqfW.js} +2 -2
- package/dist/{self-invocation-B84JCHps.js.map → self-invocation-cRl4RqfW.js.map} +1 -1
- package/dist/{serve-DI4QgSSB.js → serve-BG2O6Slz.js} +13 -13
- package/dist/{serve-DI4QgSSB.js.map → serve-BG2O6Slz.js.map} +1 -1
- package/dist/{server-setup-s2Os8RfG.js → server-setup-D7ABbEs1.js} +109 -10
- package/dist/server-setup-D7ABbEs1.js.map +1 -0
- package/dist/{start-DV5iDhbP.js → start-Dpwpnq99.js} +3 -3
- package/dist/{start-DV5iDhbP.js.map → start-Dpwpnq99.js.map} +1 -1
- package/dist/{stop-gate-hook-BEU8qQrC.js → stop-gate-hook-BUCxa5Kc.js} +4 -4
- package/dist/{stop-gate-hook-BEU8qQrC.js.map → stop-gate-hook-BUCxa5Kc.js.map} +1 -1
- package/dist/{stop-gate-policy-qzqXfRxE.js → stop-gate-policy--bpyxxXU.js} +3 -3
- package/dist/{stop-gate-policy-qzqXfRxE.js.map → stop-gate-policy--bpyxxXU.js.map} +1 -1
- package/dist/{token-CCg-Ov5q.js → token-ClzS23Y2.js} +2 -2
- package/dist/{token-CCg-Ov5q.js.map → token-ClzS23Y2.js.map} +1 -1
- package/dist/{worker-dispatch-CH-NN5FW.js → worker-dispatch-DMIdrlsF.js} +2 -2
- package/dist/{worker-dispatch-CH-NN5FW.js.map → worker-dispatch-DMIdrlsF.js.map} +1 -1
- package/package.json +1 -1
- package/dist/claude-D_Me80Yi.js.map +0 -1
- package/dist/engine-DyzGsCUb.js +0 -2
- package/dist/lifecycle-B0USSJvd.js +0 -2
- package/dist/lifecycle-CQFjaQc0.js +0 -2
- package/dist/paths-DyX6SEnd.js +0 -2
- package/dist/provision-BYdIsKcp.js.map +0 -1
- package/dist/server-setup-s2Os8RfG.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as ensurePaths, t as PATHS } from "./paths-
|
|
1
|
+
import { i as ensurePaths, t as PATHS } from "./paths-CMxlQEfQ.js";
|
|
2
2
|
import { t as state } from "./state-B8adscCv.js";
|
|
3
|
-
import { r as setupGitHubToken } from "./token-
|
|
3
|
+
import { r as setupGitHubToken } from "./token-ClzS23Y2.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-D8t41c5D.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-
|
|
1
|
+
{"version":3,"file":"auth-D8t41c5D.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.315",
|
|
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
|
-
import { i as ensurePaths } from "./paths-
|
|
2
|
-
import { r as setupGitHubToken } from "./token-
|
|
3
|
-
import { t as getCopilotUsage } from "./get-copilot-usage-
|
|
1
|
+
import { i as ensurePaths } from "./paths-CMxlQEfQ.js";
|
|
2
|
+
import { r as setupGitHubToken } from "./token-ClzS23Y2.js";
|
|
3
|
+
import { t as getCopilotUsage } from "./get-copilot-usage-FSQE8szQ.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-BpBKOjGZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-usage-
|
|
1
|
+
{"version":3,"file":"check-usage-BpBKOjGZ.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,29 +1,32 @@
|
|
|
1
|
-
import { $t as colbertDegradedWarning, At as scribeModel, Bt as registerLaunch, Ct as generalPurposeFastModel, D as toolbeltEnabled, Dt as reviewerFastModel, E as buildToolbeltAwareness, Et as resolveGeminiReviewModel, Mt as workerToolsEnabled, Nn as CHEAP_PROFILE_NATIVE_MODELS, Ot as reviewerModel, St as geminiAvailable, T as availableToolCommands, Tt as nativeSubagentModel, Vt as unregisterLaunch, Zt as provisionBrowserAssets, _t as fastOracleModel, at as artifactToolsEnabled, bn as pickClaudeDefault, bt as fastScoutModel, ct as browserCompoundToolsEnabled, dt as cheapOracleModel, en as provisionAndIndexColbert, fn as DEFAULT_CLAUDE_MODEL_FALLBACKS, ft as cheapReviewerModel, gt as fastImplementerModel, ht as fastGeneralPurposeModel, it as agentToolsEnabled, jt as standInToolEnabled, kn as CHEAP_PROFILE_ADVISOR_CLIENT_MODEL, kt as scoutModel, lt as browserToolsEnabled, mt as fastAstraModel, o as buildPeerAwarenessSnippet, ot as brainstormModel, pt as fastAdvisorModel, r as agentNamesForToolAllowlist, rn as warmTreeSitterPool, s as buildPeerAwarenessSummary, sn as shouldUseInsecureTls, st as browseAgentEnabled, ut as cheapAdvisorModel, vt as fastPlanModel, wt as implementerFastModel, xn as resolveLeadSlugArg, xt as fleetToolsEnabled, yn as isBudgetClaudeLead, yt as fastReviewerModel } from "./peer-mcp-personas-
|
|
2
|
-
import { o as removeOwnClaudeConfigMirror, r as ensureClaudeConfigMirror, t as PATHS, u as writeArtifactCredsToMirror } from "./paths-
|
|
1
|
+
import { $t as colbertDegradedWarning, At as scribeModel, Bt as registerLaunch, Ct as generalPurposeFastModel, D as toolbeltEnabled, Dt as reviewerFastModel, E as buildToolbeltAwareness, Et as resolveGeminiReviewModel, Mt as workerToolsEnabled, Nn as CHEAP_PROFILE_NATIVE_MODELS, Ot as reviewerModel, St as geminiAvailable, T as availableToolCommands, Tt as nativeSubagentModel, Vt as unregisterLaunch, Zt as provisionBrowserAssets, _t as fastOracleModel, at as artifactToolsEnabled, bn as pickClaudeDefault, bt as fastScoutModel, ct as browserCompoundToolsEnabled, dt as cheapOracleModel, en as provisionAndIndexColbert, fn as DEFAULT_CLAUDE_MODEL_FALLBACKS, ft as cheapReviewerModel, gt as fastImplementerModel, ht as fastGeneralPurposeModel, it as agentToolsEnabled, jt as standInToolEnabled, kn as CHEAP_PROFILE_ADVISOR_CLIENT_MODEL, kt as scoutModel, lt as browserToolsEnabled, mt as fastAstraModel, o as buildPeerAwarenessSnippet, ot as brainstormModel, pt as fastAdvisorModel, r as agentNamesForToolAllowlist, rn as warmTreeSitterPool, s as buildPeerAwarenessSummary, sn as shouldUseInsecureTls, st as browseAgentEnabled, ut as cheapAdvisorModel, vt as fastPlanModel, wt as implementerFastModel, xn as resolveLeadSlugArg, xt as fleetToolsEnabled, yn as isBudgetClaudeLead, yt as fastReviewerModel } from "./peer-mcp-personas-CYWJSxPK.js";
|
|
2
|
+
import { o as removeOwnClaudeConfigMirror, r as ensureClaudeConfigMirror, t as PATHS, u as writeArtifactCredsToMirror } from "./paths-CMxlQEfQ.js";
|
|
3
3
|
import { t as state } from "./state-B8adscCv.js";
|
|
4
|
-
import { d as resolveModel } from "./token-
|
|
5
|
-
import {
|
|
6
|
-
import { C as checkClaudeVersion, S as runSelfUpdate, _ as resolveLaunchProfile, a as sharedServerArgs, b as validateFastProfilePrerequisites, c as stopKeepAwake, d as enableFileLogging, g as profileDescriptor, h as formatFastPrerequisiteFailure, 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 validateCheap1mProfilePrerequisites, w as updateClaude, x as validateMaxProfileLaunch, y as validateCheapProfilePrerequisites } from "./server-setup-
|
|
4
|
+
import { d as resolveModel } from "./token-ClzS23Y2.js";
|
|
5
|
+
import { i as parseBoolEnv } from "./exec-COUT4QsS.js";
|
|
6
|
+
import { C as checkClaudeVersion, S as runSelfUpdate, _ as resolveLaunchProfile, a as sharedServerArgs, b as validateFastProfilePrerequisites, c as stopKeepAwake, d as enableFileLogging, g as profileDescriptor, h as formatFastPrerequisiteFailure, 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 validateCheap1mProfilePrerequisites, w as updateClaude, x as validateMaxProfileLaunch, y as validateCheapProfilePrerequisites } from "./server-setup-D7ABbEs1.js";
|
|
7
7
|
import { t as FAST_PROFILE_ADVISOR_CLIENT_MODEL } from "./fast-profile-contract-_DhIWank.js";
|
|
8
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-BcrMlrmo.js";
|
|
9
|
-
import { n as hookLauncherDegradedWarning, r as resolveSelfInvocation } from "./self-invocation-
|
|
10
|
-
import { i as launchChild, r as getCodexVersion, t as provisionToolbelt } from "./provision-
|
|
11
|
-
import {
|
|
12
|
-
import { t as
|
|
13
|
-
import {
|
|
14
|
-
import { l as
|
|
15
|
-
import {
|
|
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-AwSjt-vR.js";
|
|
11
|
+
import { a as formatAicExitSummary, l as removeAicLedgerFile, n as aicSnapshot, t as aicLedgerPath, u as sweepStaleAicLedgerFiles } from "./aic-ledger-BS47yb_C.js";
|
|
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
|
+
import { t as liveExec } from "./orchestration-Dc3mO0G3.js";
|
|
14
|
+
import { c as repoRoot, d as trustRepo, l as stopGateEnabledForRepo, s as repoFingerprint, t as fileBaselineStore } from "./stop-gate-policy--bpyxxXU.js";
|
|
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-DXmmyuEE.js";
|
|
16
17
|
import { r as hookMcpRuntimeFromEnv } from "./hook-mcp-client-DBvm9608.js";
|
|
17
|
-
import { i as planReviewEnabled, t as buildPlanReviewHookCommand } from "./plan-review-hook-
|
|
18
|
-
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 { t as buildPromptSubmitHookCommand } from "./prompt-submit-hook-
|
|
20
|
-
import { i as assertShapingInstalled, n as buildFirstMateGuardHookCommand, t as FIRST_MATE_GUARD_MATCHER } from "./internal-first-mate-guard-
|
|
21
|
-
import { r as FAST_DISPATCH_TOOL_MATCHER, t as buildFastDispatchGuardHookCommand } from "./internal-fast-dispatch-guard-
|
|
22
|
-
import { i as assertMaxDispatchGuardInstalled, r as MAX_DISPATCH_TOOL_MATCHER, t as buildMaxDispatchGuardHookCommand } from "./internal-max-dispatch-guard-
|
|
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-CPk6Z8yc.js";
|
|
20
|
+
import { t as buildPromptSubmitHookCommand } from "./prompt-submit-hook-BcFpjHXg.js";
|
|
21
|
+
import { i as assertShapingInstalled, n as buildFirstMateGuardHookCommand, t as FIRST_MATE_GUARD_MATCHER } from "./internal-first-mate-guard-B0rbLb0L.js";
|
|
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-l1NGYHtF.js";
|
|
24
|
+
import { n as formatDiscountedCostTable, t as discountedUsdForSnapshot } from "./copilot-discount-IbXR5A28.js";
|
|
23
25
|
import { defineCommand } from "citty";
|
|
24
26
|
import consola from "consola";
|
|
25
27
|
import path from "node:path";
|
|
26
28
|
import { randomBytes } from "node:crypto";
|
|
29
|
+
import fs from "node:fs/promises";
|
|
27
30
|
import { tmpdir } from "node:os";
|
|
28
31
|
import process$1 from "node:process";
|
|
29
32
|
//#region src/lib/orchestration/fast-dispatch-hook.ts
|
|
@@ -40,6 +43,103 @@ function assertFastDispatchGuardInstalled(fastProfile, installationSucceeded) {
|
|
|
40
43
|
}
|
|
41
44
|
/** This module is intentionally stateless; callers own launch cleanup. */
|
|
42
45
|
//#endregion
|
|
46
|
+
//#region src/lib/aic-statusline-settings.ts
|
|
47
|
+
/**
|
|
48
|
+
* Claude Code `statusLine` injection for the per-session AIC total + rich
|
|
49
|
+
* default session line.
|
|
50
|
+
*
|
|
51
|
+
* `github-router claude` writes `{ statusLine: { type: "command", command } }`
|
|
52
|
+
* into the mirrored settings.json so the status bar shows
|
|
53
|
+
* `[AIC 12.42] [####------] 42% | model | dir (branch) | ...`,
|
|
54
|
+
* updating as the ledger file grows. The command itself
|
|
55
|
+
* (`internal-aic-status`) reads the ledger path from `GH_ROUTER_AIC_LEDGER`
|
|
56
|
+
* in the spawned child's env — never a path baked into settings — so the
|
|
57
|
+
* same mirror mechanics work for concurrent launches. AIC is pinned: it
|
|
58
|
+
* renders even when the terminal is too narrow for any other segment.
|
|
59
|
+
*
|
|
60
|
+
* Wrap-don't-clobber: when the user's own config already defines `statusLine`
|
|
61
|
+
* as a `{type:"command", command:string}` shape, that command is preserved via
|
|
62
|
+
* `GH_ROUTER_AIC_USER_STATUSLINE` (set by the caller from the returned
|
|
63
|
+
* `userCommand`) and the hook composes one line: `[AIC x.xx] <user line>`.
|
|
64
|
+
* Any other pre-existing `statusLine` shape is left untouched
|
|
65
|
+
* (`reason: "unrecognized"`) rather than risk breaking an exotic config.
|
|
66
|
+
*
|
|
67
|
+
* Failure model matches the sibling settings writers: a transient read error
|
|
68
|
+
* or a non-object settings.json throws (never clobber a file we don't
|
|
69
|
+
* understand); the caller wraps this in warn-and-continue so a settings-write
|
|
70
|
+
* hiccup never blocks launch. Writes use a same-directory temp file, mode
|
|
71
|
+
* 0o600, then rename.
|
|
72
|
+
*/
|
|
73
|
+
/** Env var carrying the ledger snapshot path into the spawned child. */
|
|
74
|
+
const AIC_LEDGER_ENV = "GH_ROUTER_AIC_LEDGER";
|
|
75
|
+
/** Env var carrying the user's own statusLine command (wrap mode only). */
|
|
76
|
+
const AIC_USER_STATUSLINE_ENV = "GH_ROUTER_AIC_USER_STATUSLINE";
|
|
77
|
+
function buildAicStatusHookCommand(invocation) {
|
|
78
|
+
return buildSelfCommand(invocation, "internal-aic-status");
|
|
79
|
+
}
|
|
80
|
+
function isCommandStatusLine(value) {
|
|
81
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
82
|
+
const record = value;
|
|
83
|
+
return record.type === "command" && typeof record.command === "string" && record.command.length > 0;
|
|
84
|
+
}
|
|
85
|
+
async function injectAicStatusLineIntoSettingsFile(settingsPath, statusCommand) {
|
|
86
|
+
let existing = {};
|
|
87
|
+
let raw;
|
|
88
|
+
try {
|
|
89
|
+
raw = await fs.readFile(settingsPath, "utf8");
|
|
90
|
+
} catch (err) {
|
|
91
|
+
if (err.code !== "ENOENT") throw err;
|
|
92
|
+
raw = void 0;
|
|
93
|
+
}
|
|
94
|
+
if (raw !== void 0) {
|
|
95
|
+
const parsed = JSON.parse(raw);
|
|
96
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) existing = parsed;
|
|
97
|
+
else throw new Error(`settings.json at ${settingsPath} is not a JSON object; refusing to overwrite`);
|
|
98
|
+
}
|
|
99
|
+
const current = existing.statusLine;
|
|
100
|
+
if (current !== void 0) {
|
|
101
|
+
if (isCommandStatusLine(current) && current.command.includes("internal-aic-status")) return {
|
|
102
|
+
written: false,
|
|
103
|
+
reason: "already-set"
|
|
104
|
+
};
|
|
105
|
+
if (isCommandStatusLine(current)) {
|
|
106
|
+
const userCommand = current.command;
|
|
107
|
+
await writeSettingsAtomically(settingsPath, {
|
|
108
|
+
...existing,
|
|
109
|
+
statusLine: {
|
|
110
|
+
type: "command",
|
|
111
|
+
command: statusCommand
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
return {
|
|
115
|
+
written: true,
|
|
116
|
+
mode: "wrapped",
|
|
117
|
+
userCommand
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
written: false,
|
|
122
|
+
reason: "unrecognized"
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
await writeSettingsAtomically(settingsPath, {
|
|
126
|
+
...existing,
|
|
127
|
+
statusLine: {
|
|
128
|
+
type: "command",
|
|
129
|
+
command: statusCommand
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
return {
|
|
133
|
+
written: true,
|
|
134
|
+
mode: "injected"
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
async function writeSettingsAtomically(settingsPath, merged) {
|
|
138
|
+
const tmp = `${settingsPath}.${process.pid}.aicstatus.tmp`;
|
|
139
|
+
await fs.writeFile(tmp, `${JSON.stringify(merged, null, 2)}\n`, { mode: 384 });
|
|
140
|
+
await fs.rename(tmp, settingsPath);
|
|
141
|
+
}
|
|
142
|
+
//#endregion
|
|
43
143
|
//#region src/lib/fast-launch-cleanup.ts
|
|
44
144
|
function createFastLaunchCleanup(deps) {
|
|
45
145
|
let cleanupPromise;
|
|
@@ -427,6 +527,7 @@ const claude = defineCommand({
|
|
|
427
527
|
const baseShutdown = async () => {
|
|
428
528
|
await stopKeepAwake();
|
|
429
529
|
await removeOwnClaudeConfigMirror();
|
|
530
|
+
await removeAicLedgerFile();
|
|
430
531
|
};
|
|
431
532
|
let onShutdown = baseShutdown;
|
|
432
533
|
let peerAwarenessSnippet;
|
|
@@ -928,15 +1029,34 @@ const claude = defineCommand({
|
|
|
928
1029
|
} catch (err) {
|
|
929
1030
|
consola.warn(`No-attribution settings backstop skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
930
1031
|
}
|
|
1032
|
+
if (process$1.env.GH_ROUTER_DISABLE_AIC_STATUSLINE !== "1") try {
|
|
1033
|
+
sweepStaleAicLedgerFiles();
|
|
1034
|
+
const injected = await injectAicStatusLineIntoSettingsFile(path.join(PATHS.CLAUDE_CONFIG_DIR, "settings.json"), buildAicStatusHookCommand(selfInvocation));
|
|
1035
|
+
if (injected.written) {
|
|
1036
|
+
envVars[AIC_LEDGER_ENV] = aicLedgerPath();
|
|
1037
|
+
if (injected.mode === "wrapped" && injected.userCommand) envVars[AIC_USER_STATUSLINE_ENV] = injected.userCommand;
|
|
1038
|
+
}
|
|
1039
|
+
} catch (err) {
|
|
1040
|
+
consola.warn(`AIC status line skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
1041
|
+
}
|
|
931
1042
|
launchChild({
|
|
932
1043
|
kind: "claude-code",
|
|
933
1044
|
envVars,
|
|
934
1045
|
extraArgs,
|
|
935
1046
|
model: chosenSlug
|
|
936
|
-
}, server, {
|
|
1047
|
+
}, server, {
|
|
1048
|
+
onShutdown,
|
|
1049
|
+
onExitSummary: () => {
|
|
1050
|
+
const snapshot = aicSnapshot();
|
|
1051
|
+
if (snapshot.requests === 0 || snapshot.totalNanoAiu <= 0) return;
|
|
1052
|
+
const summary = formatAicExitSummary(snapshot, { verbose: consola.level >= 4 });
|
|
1053
|
+
const table = formatDiscountedCostTable(snapshot, discountedUsdForSnapshot(snapshot));
|
|
1054
|
+
return table ? `${summary}\n${table}` : summary;
|
|
1055
|
+
}
|
|
1056
|
+
});
|
|
937
1057
|
}
|
|
938
1058
|
});
|
|
939
1059
|
//#endregion
|
|
940
1060
|
export { claude };
|
|
941
1061
|
|
|
942
|
-
//# sourceMappingURL=claude-
|
|
1062
|
+
//# sourceMappingURL=claude-Cmmu3-cL.js.map
|