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.
Files changed (102) hide show
  1. package/dist/aic-ledger-BS47yb_C.js +298 -0
  2. package/dist/aic-ledger-BS47yb_C.js.map +1 -0
  3. package/dist/{attribution-settings-Dnt04Iyn.js → attribution-settings-DXmmyuEE.js} +8 -8
  4. package/dist/{attribution-settings-Dnt04Iyn.js.map → attribution-settings-DXmmyuEE.js.map} +1 -1
  5. package/dist/{auth-O_UG1ABO.js → auth-D8t41c5D.js} +3 -3
  6. package/dist/{auth-O_UG1ABO.js.map → auth-D8t41c5D.js.map} +1 -1
  7. package/dist/browser-ext/manifest.json +1 -1
  8. package/dist/{check-usage-dicJOWML.js → check-usage-BpBKOjGZ.js} +4 -4
  9. package/dist/{check-usage-dicJOWML.js.map → check-usage-BpBKOjGZ.js.map} +1 -1
  10. package/dist/{claude-D_Me80Yi.js → claude-Cmmu3-cL.js} +140 -20
  11. package/dist/claude-Cmmu3-cL.js.map +1 -0
  12. package/dist/{codex-CE7zZm-M.js → codex-DqTKKoEx.js} +5 -5
  13. package/dist/{codex-CE7zZm-M.js.map → codex-DqTKKoEx.js.map} +1 -1
  14. package/dist/copilot-discount-IbXR5A28.js +220 -0
  15. package/dist/copilot-discount-IbXR5A28.js.map +1 -0
  16. package/dist/{debug-2PgImRnr.js → debug-CA7pg8V9.js} +2 -2
  17. package/dist/{debug-2PgImRnr.js.map → debug-CA7pg8V9.js.map} +1 -1
  18. package/dist/engine-b9XaKLp0.js +2 -0
  19. package/dist/{exec-y8C_MU8A.js → exec-COUT4QsS.js} +2 -2
  20. package/dist/{exec-y8C_MU8A.js.map → exec-COUT4QsS.js.map} +1 -1
  21. package/dist/{gate-discovery-_flEdhYo.js → gate-discovery-CPk6Z8yc.js} +6 -6
  22. package/dist/{gate-discovery-_flEdhYo.js.map → gate-discovery-CPk6Z8yc.js.map} +1 -1
  23. package/dist/{get-copilot-usage-Cjy8TiFf.js → get-copilot-usage-FSQE8szQ.js} +2 -2
  24. package/dist/{get-copilot-usage-Cjy8TiFf.js.map → get-copilot-usage-FSQE8szQ.js.map} +1 -1
  25. package/dist/hooks.mjs +615 -15
  26. package/dist/hooks.sha256 +1 -1
  27. package/dist/internal-aic-status-BN0xRLSF.js +432 -0
  28. package/dist/internal-aic-status-BN0xRLSF.js.map +1 -0
  29. package/dist/{internal-artifact-open-CxeIfsW_.js → internal-artifact-open-B3stUu74.js} +2 -2
  30. package/dist/{internal-artifact-open-CxeIfsW_.js.map → internal-artifact-open-B3stUu74.js.map} +1 -1
  31. package/dist/{internal-fast-dispatch-guard-D8YNlnuQ.js → internal-fast-dispatch-guard-2QjUlhqO.js} +1 -1
  32. package/dist/{internal-fast-dispatch-guard-19xQEouu.js → internal-fast-dispatch-guard-CAwYj_Yz.js} +2 -2
  33. package/dist/{internal-fast-dispatch-guard-19xQEouu.js.map → internal-fast-dispatch-guard-CAwYj_Yz.js.map} +1 -1
  34. package/dist/{internal-first-mate-guard-BuweUgjb.js → internal-first-mate-guard-B0rbLb0L.js} +3 -3
  35. package/dist/{internal-first-mate-guard-BuweUgjb.js.map → internal-first-mate-guard-B0rbLb0L.js.map} +1 -1
  36. package/dist/{internal-first-mate-guard-Nf1H0mCK.js → internal-first-mate-guard-VgnHBp0s.js} +1 -1
  37. package/dist/{internal-max-dispatch-guard-_Pp4LltM.js → internal-max-dispatch-guard-BzKsY9ze.js} +1 -1
  38. package/dist/{internal-max-dispatch-guard-DZ7KLWxP.js → internal-max-dispatch-guard-l1NGYHtF.js} +2 -2
  39. package/dist/{internal-max-dispatch-guard-DZ7KLWxP.js.map → internal-max-dispatch-guard-l1NGYHtF.js.map} +1 -1
  40. package/dist/{internal-plan-review-DLduDz41.js → internal-plan-review-QUvNZmMR.js} +3 -3
  41. package/dist/{internal-plan-review-DLduDz41.js.map → internal-plan-review-QUvNZmMR.js.map} +1 -1
  42. package/dist/{internal-prompt-submit-DG94f8E-.js → internal-prompt-submit-fj5ccft_.js} +5 -5
  43. package/dist/{internal-prompt-submit-DG94f8E-.js.map → internal-prompt-submit-fj5ccft_.js.map} +1 -1
  44. package/dist/{internal-session-bind-D6Hpl-84.js → internal-session-bind-0Hmak8PR.js} +2 -2
  45. package/dist/{internal-session-bind-D6Hpl-84.js.map → internal-session-bind-0Hmak8PR.js.map} +1 -1
  46. package/dist/{internal-stop-hook-BJ3o61-L.js → internal-stop-hook-BKiKYeda.js} +6 -6
  47. package/dist/{internal-stop-hook-BJ3o61-L.js.map → internal-stop-hook-BKiKYeda.js.map} +1 -1
  48. package/dist/{internal-stop-review-DlKzZgFm.js → internal-stop-review-8v2llYDB.js} +2 -2
  49. package/dist/{internal-stop-review-DlKzZgFm.js.map → internal-stop-review-8v2llYDB.js.map} +1 -1
  50. package/dist/{internal-worker-guard-D7sfByyo.js → internal-worker-guard-BI4Pl0Ew.js} +2 -2
  51. package/dist/{internal-worker-guard-D7sfByyo.js.map → internal-worker-guard-BI4Pl0Ew.js.map} +1 -1
  52. package/dist/{internal-workspace-header-CU5OjLCB.js → internal-workspace-header-kg9FoNXK.js} +2 -2
  53. package/dist/{internal-workspace-header-CU5OjLCB.js.map → internal-workspace-header-kg9FoNXK.js.map} +1 -1
  54. package/dist/lifecycle-BpqAyaAj.js +2 -0
  55. package/dist/lifecycle-CL2WiyeQ.js +2 -0
  56. package/dist/{lifecycle-CtRA3Y7p.js → lifecycle-Cx1wVrLb.js} +3 -3
  57. package/dist/{lifecycle-CtRA3Y7p.js.map → lifecycle-Cx1wVrLb.js.map} +1 -1
  58. package/dist/{lifecycle-BCnarXJV.js → lifecycle-IwotwedG.js} +2 -2
  59. package/dist/{lifecycle-BCnarXJV.js.map → lifecycle-IwotwedG.js.map} +1 -1
  60. package/dist/main.js +21 -20
  61. package/dist/main.js.map +1 -1
  62. package/dist/{mcp-workspace-header-B60WSR1Y.js → mcp-workspace-header-BYgWioLH.js} +2 -2
  63. package/dist/{mcp-workspace-header-B60WSR1Y.js.map → mcp-workspace-header-BYgWioLH.js.map} +1 -1
  64. package/dist/{models-COuMOfM6.js → models-DgLeb-Dv.js} +3 -3
  65. package/dist/{models-COuMOfM6.js.map → models-DgLeb-Dv.js.map} +1 -1
  66. package/dist/{orchestration-DjLA-lxB.js → orchestration-Dc3mO0G3.js} +3 -3
  67. package/dist/{orchestration-DjLA-lxB.js.map → orchestration-Dc3mO0G3.js.map} +1 -1
  68. package/dist/paths-BXXCVFvA.js +2 -0
  69. package/dist/{paths-De1Qh9Q9.js → paths-CMxlQEfQ.js} +3 -3
  70. package/dist/{paths-De1Qh9Q9.js.map → paths-CMxlQEfQ.js.map} +1 -1
  71. package/dist/{peer-mcp-personas-DklYru_1.js → peer-mcp-personas-CYWJSxPK.js} +40 -13
  72. package/dist/{peer-mcp-personas-DklYru_1.js.map → peer-mcp-personas-CYWJSxPK.js.map} +1 -1
  73. package/dist/{plan-review-hook-vL6BYmA8.js → plan-review-hook-BIMwWkh6.js} +4 -4
  74. package/dist/{plan-review-hook-vL6BYmA8.js.map → plan-review-hook-BIMwWkh6.js.map} +1 -1
  75. package/dist/{prompt-submit-hook-DfqufWC1.js → prompt-submit-hook-BcFpjHXg.js} +3 -3
  76. package/dist/{prompt-submit-hook-DfqufWC1.js.map → prompt-submit-hook-BcFpjHXg.js.map} +1 -1
  77. package/dist/{provision-BYdIsKcp.js → provision-AwSjt-vR.js} +9 -5
  78. package/dist/provision-AwSjt-vR.js.map +1 -0
  79. package/dist/{self-invocation-B84JCHps.js → self-invocation-cRl4RqfW.js} +2 -2
  80. package/dist/{self-invocation-B84JCHps.js.map → self-invocation-cRl4RqfW.js.map} +1 -1
  81. package/dist/{serve-DI4QgSSB.js → serve-BG2O6Slz.js} +13 -13
  82. package/dist/{serve-DI4QgSSB.js.map → serve-BG2O6Slz.js.map} +1 -1
  83. package/dist/{server-setup-s2Os8RfG.js → server-setup-D7ABbEs1.js} +109 -10
  84. package/dist/server-setup-D7ABbEs1.js.map +1 -0
  85. package/dist/{start-DV5iDhbP.js → start-Dpwpnq99.js} +3 -3
  86. package/dist/{start-DV5iDhbP.js.map → start-Dpwpnq99.js.map} +1 -1
  87. package/dist/{stop-gate-hook-BEU8qQrC.js → stop-gate-hook-BUCxa5Kc.js} +4 -4
  88. package/dist/{stop-gate-hook-BEU8qQrC.js.map → stop-gate-hook-BUCxa5Kc.js.map} +1 -1
  89. package/dist/{stop-gate-policy-qzqXfRxE.js → stop-gate-policy--bpyxxXU.js} +3 -3
  90. package/dist/{stop-gate-policy-qzqXfRxE.js.map → stop-gate-policy--bpyxxXU.js.map} +1 -1
  91. package/dist/{token-CCg-Ov5q.js → token-ClzS23Y2.js} +2 -2
  92. package/dist/{token-CCg-Ov5q.js.map → token-ClzS23Y2.js.map} +1 -1
  93. package/dist/{worker-dispatch-CH-NN5FW.js → worker-dispatch-DMIdrlsF.js} +2 -2
  94. package/dist/{worker-dispatch-CH-NN5FW.js.map → worker-dispatch-DMIdrlsF.js.map} +1 -1
  95. package/package.json +1 -1
  96. package/dist/claude-D_Me80Yi.js.map +0 -1
  97. package/dist/engine-DyzGsCUb.js +0 -2
  98. package/dist/lifecycle-B0USSJvd.js +0 -2
  99. package/dist/lifecycle-CQFjaQc0.js +0 -2
  100. package/dist/paths-DyX6SEnd.js +0 -2
  101. package/dist/provision-BYdIsKcp.js.map +0 -1
  102. package/dist/server-setup-s2Os8RfG.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { i as ensurePaths, t as PATHS } from "./paths-De1Qh9Q9.js";
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-CCg-Ov5q.js";
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-O_UG1ABO.js.map
45
+ //# sourceMappingURL=auth-D8t41c5D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-O_UG1ABO.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"}
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.313",
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-De1Qh9Q9.js";
2
- import { r as setupGitHubToken } from "./token-CCg-Ov5q.js";
3
- import { t as getCopilotUsage } from "./get-copilot-usage-Cjy8TiFf.js";
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-dicJOWML.js.map
43
+ //# sourceMappingURL=check-usage-BpBKOjGZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-usage-dicJOWML.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
+ {"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-DklYru_1.js";
2
- import { o as removeOwnClaudeConfigMirror, r as ensureClaudeConfigMirror, t as PATHS, u as writeArtifactCredsToMirror } from "./paths-De1Qh9Q9.js";
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-CCg-Ov5q.js";
5
- import { r as parseBoolEnv } from "./exec-y8C_MU8A.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-s2Os8RfG.js";
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-B84JCHps.js";
10
- import { i as launchChild, r as getCodexVersion, t as provisionToolbelt } from "./provision-BYdIsKcp.js";
11
- 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-BEU8qQrC.js";
12
- import { t as liveExec } from "./orchestration-DjLA-lxB.js";
13
- import { c as repoRoot, d as trustRepo, l as stopGateEnabledForRepo, s as repoFingerprint, t as fileBaselineStore } from "./stop-gate-policy-qzqXfRxE.js";
14
- import { l as guardToolMatcher, n as activeDispatchModes, r as buildWorkerGuardHookCommand } from "./worker-dispatch-CH-NN5FW.js";
15
- 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-Dnt04Iyn.js";
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-vL6BYmA8.js";
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-_flEdhYo.js";
19
- import { t as buildPromptSubmitHookCommand } from "./prompt-submit-hook-DfqufWC1.js";
20
- import { i as assertShapingInstalled, n as buildFirstMateGuardHookCommand, t as FIRST_MATE_GUARD_MATCHER } from "./internal-first-mate-guard-BuweUgjb.js";
21
- import { r as FAST_DISPATCH_TOOL_MATCHER, t as buildFastDispatchGuardHookCommand } from "./internal-fast-dispatch-guard-19xQEouu.js";
22
- import { i as assertMaxDispatchGuardInstalled, r as MAX_DISPATCH_TOOL_MATCHER, t as buildMaxDispatchGuardHookCommand } from "./internal-max-dispatch-guard-DZ7KLWxP.js";
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, { onShutdown });
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-D_Me80Yi.js.map
1062
+ //# sourceMappingURL=claude-Cmmu3-cL.js.map