github-router 0.3.288 → 0.3.292

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 (87) hide show
  1. package/dist/{attribution-settings-CofaqSzw.js → attribution-settings-CpLUCi8R.js} +124 -34
  2. package/dist/attribution-settings-CpLUCi8R.js.map +1 -0
  3. package/dist/{auth-DG4vh8-F.js → auth-BwUHopJz.js} +3 -3
  4. package/dist/{auth-DG4vh8-F.js.map → auth-BwUHopJz.js.map} +1 -1
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/{check-usage-BqN7mBYv.js → check-usage-BTda5753.js} +4 -4
  7. package/dist/{check-usage-BqN7mBYv.js.map → check-usage-BTda5753.js.map} +1 -1
  8. package/dist/{claude-CoZKRNB8.js → claude-_DYGKCw8.js} +101 -49
  9. package/dist/claude-_DYGKCw8.js.map +1 -0
  10. package/dist/{codex-y2OyLIdv.js → codex-rTJ8jW5G.js} +5 -5
  11. package/dist/{codex-y2OyLIdv.js.map → codex-rTJ8jW5G.js.map} +1 -1
  12. package/dist/{debug-B5TjPTTH.js → debug-B3UrZTHQ.js} +2 -2
  13. package/dist/{debug-B5TjPTTH.js.map → debug-B3UrZTHQ.js.map} +1 -1
  14. package/dist/engine-C9axTIu7.js +2 -0
  15. package/dist/{gate-discovery-LQZ-enJa.js → gate-discovery-Bjar5dgv.js} +5 -5
  16. package/dist/{gate-discovery-LQZ-enJa.js.map → gate-discovery-Bjar5dgv.js.map} +1 -1
  17. package/dist/{get-copilot-usage-BjA0nyGR.js → get-copilot-usage-CRrf1ZSC.js} +2 -2
  18. package/dist/{get-copilot-usage-BjA0nyGR.js.map → get-copilot-usage-CRrf1ZSC.js.map} +1 -1
  19. package/dist/{internal-artifact-open-BskmUpnb.js → internal-artifact-open-BsEQRvDi.js} +2 -2
  20. package/dist/{internal-artifact-open-BskmUpnb.js.map → internal-artifact-open-BsEQRvDi.js.map} +1 -1
  21. package/dist/{internal-first-mate-guard-5XEHMaqy.js → internal-first-mate-guard-CVFFJriA.js} +3 -3
  22. package/dist/{internal-first-mate-guard-5XEHMaqy.js.map → internal-first-mate-guard-CVFFJriA.js.map} +1 -1
  23. package/dist/{internal-first-mate-guard-DHDQ6hFz.js → internal-first-mate-guard-DJdX6t48.js} +1 -1
  24. package/dist/{internal-plan-review-BUuMx4ku.js → internal-plan-review-8TKDLco6.js} +3 -3
  25. package/dist/{internal-plan-review-BUuMx4ku.js.map → internal-plan-review-8TKDLco6.js.map} +1 -1
  26. package/dist/{internal-prompt-submit-CQQ15xdO.js → internal-prompt-submit-Da7pxqua.js} +4 -4
  27. package/dist/{internal-prompt-submit-CQQ15xdO.js.map → internal-prompt-submit-Da7pxqua.js.map} +1 -1
  28. package/dist/{internal-session-bind-D04W2yWI.js → internal-session-bind-BOFytA1f.js} +2 -2
  29. package/dist/{internal-session-bind-D04W2yWI.js.map → internal-session-bind-BOFytA1f.js.map} +1 -1
  30. package/dist/{internal-stop-hook-DSbaDb_m.js → internal-stop-hook-DrX2xlj0.js} +5 -5
  31. package/dist/{internal-stop-hook-DSbaDb_m.js.map → internal-stop-hook-DrX2xlj0.js.map} +1 -1
  32. package/dist/{internal-stop-review-CdByyJLc.js → internal-stop-review-CdouacHL.js} +2 -2
  33. package/dist/{internal-stop-review-CdByyJLc.js.map → internal-stop-review-CdouacHL.js.map} +1 -1
  34. package/dist/{internal-worker-guard-BIPN6Rv9.js → internal-worker-guard-Bx-itoP8.js} +2 -2
  35. package/dist/{internal-worker-guard-BIPN6Rv9.js.map → internal-worker-guard-Bx-itoP8.js.map} +1 -1
  36. package/dist/{internal-workspace-header-BKqejstG.js → internal-workspace-header-8WT0iB5K.js} +2 -2
  37. package/dist/{internal-workspace-header-BKqejstG.js.map → internal-workspace-header-8WT0iB5K.js.map} +1 -1
  38. package/dist/lifecycle-C8fOsQke.js +2 -0
  39. package/dist/lifecycle-D4Yc1aap.js +2 -0
  40. package/dist/{lifecycle-SXaWssN9.js → lifecycle-LeSfa7wH.js} +2 -2
  41. package/dist/{lifecycle-SXaWssN9.js.map → lifecycle-LeSfa7wH.js.map} +1 -1
  42. package/dist/{lifecycle-DbM29FLK.js → lifecycle-nuOHfwgj.js} +2 -2
  43. package/dist/{lifecycle-DbM29FLK.js.map → lifecycle-nuOHfwgj.js.map} +1 -1
  44. package/dist/main.js +17 -17
  45. package/dist/{mcp-workspace-header-DRCCWlOi.js → mcp-workspace-header-q34H_4wL.js} +2 -2
  46. package/dist/{mcp-workspace-header-DRCCWlOi.js.map → mcp-workspace-header-q34H_4wL.js.map} +1 -1
  47. package/dist/{models-Dz8d_SnI.js → models-hhJcrZhr.js} +3 -3
  48. package/dist/{models-Dz8d_SnI.js.map → models-hhJcrZhr.js.map} +1 -1
  49. package/dist/{orchestration-BrJwZxMN.js → orchestration-pzbrKkgD.js} +2 -2
  50. package/dist/{orchestration-BrJwZxMN.js.map → orchestration-pzbrKkgD.js.map} +1 -1
  51. package/dist/{paths-D7_SAaIQ.js → paths-BH4J7slC.js} +4 -4
  52. package/dist/{paths-D7_SAaIQ.js.map → paths-BH4J7slC.js.map} +1 -1
  53. package/dist/paths-DJZoXfAS.js +2 -0
  54. package/dist/{peer-mcp-personas-B5Wp6wIn.js → peer-mcp-personas-CHbl6MwM.js} +927 -147
  55. package/dist/peer-mcp-personas-CHbl6MwM.js.map +1 -0
  56. package/dist/{plan-review-hook-CVZsG9MZ.js → plan-review-hook-CfcanA7_.js} +3 -3
  57. package/dist/{plan-review-hook-CVZsG9MZ.js.map → plan-review-hook-CfcanA7_.js.map} +1 -1
  58. package/dist/{prompt-submit-hook-BW92FX2D.js → prompt-submit-hook-Bqf9ORgb.js} +3 -3
  59. package/dist/{prompt-submit-hook-BW92FX2D.js.map → prompt-submit-hook-Bqf9ORgb.js.map} +1 -1
  60. package/dist/{provision-CUqPki1z.js → provision-BYFd9nPK.js} +4 -4
  61. package/dist/{provision-CUqPki1z.js.map → provision-BYFd9nPK.js.map} +1 -1
  62. package/dist/{self-invocation-CP_SOkrr.js → self-invocation-DhO1Z8iD.js} +2 -2
  63. package/dist/{self-invocation-CP_SOkrr.js.map → self-invocation-DhO1Z8iD.js.map} +1 -1
  64. package/dist/{serve-BASqoXb3.js → serve-BWMxDLnD.js} +12 -12
  65. package/dist/{serve-BASqoXb3.js.map → serve-BWMxDLnD.js.map} +1 -1
  66. package/dist/{server-setup-D5hilphf.js → server-setup-CqlaZukJ.js} +852 -160
  67. package/dist/server-setup-CqlaZukJ.js.map +1 -0
  68. package/dist/{start-Rfim4TeF.js → start-5MgGT4IF.js} +3 -3
  69. package/dist/{start-Rfim4TeF.js.map → start-5MgGT4IF.js.map} +1 -1
  70. package/dist/{stop-gate-hook-DriRc9xN.js → stop-gate-hook-BiBp5aGm.js} +3 -3
  71. package/dist/{stop-gate-hook-DriRc9xN.js.map → stop-gate-hook-BiBp5aGm.js.map} +1 -1
  72. package/dist/{stop-gate-policy-DMPanpoR.js → stop-gate-policy-BGd6b5hR.js} +2 -2
  73. package/dist/{stop-gate-policy-DMPanpoR.js.map → stop-gate-policy-BGd6b5hR.js.map} +1 -1
  74. package/dist/{token-BGCjZwtj.js → token-8drORhXg.js} +33 -3
  75. package/dist/token-8drORhXg.js.map +1 -0
  76. package/dist/{worker-dispatch-BCTMyNE-.js → worker-dispatch-D5fGroNr.js} +2 -2
  77. package/dist/{worker-dispatch-BCTMyNE-.js.map → worker-dispatch-D5fGroNr.js.map} +1 -1
  78. package/package.json +2 -1
  79. package/dist/attribution-settings-CofaqSzw.js.map +0 -1
  80. package/dist/claude-CoZKRNB8.js.map +0 -1
  81. package/dist/engine-B5nVGH4b.js +0 -2
  82. package/dist/lifecycle-BTodQvn4.js +0 -2
  83. package/dist/lifecycle-C7JYNz-F.js +0 -2
  84. package/dist/paths-CTr59UC6.js +0 -2
  85. package/dist/peer-mcp-personas-B5Wp6wIn.js.map +0 -1
  86. package/dist/server-setup-D5hilphf.js.map +0 -1
  87. package/dist/token-BGCjZwtj.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { i as ensurePaths, t as PATHS } from "./paths-D7_SAaIQ.js";
2
- import { A as state, r as setupGitHubToken } from "./token-BGCjZwtj.js";
1
+ import { i as ensurePaths, t as PATHS } from "./paths-BH4J7slC.js";
2
+ import { A as state, r as setupGitHubToken } from "./token-8drORhXg.js";
3
3
  import { defineCommand } from "citty";
4
4
  import consola from "consola";
5
5
  //#region src/auth.ts
@@ -41,4 +41,4 @@ const auth = defineCommand({
41
41
  //#endregion
42
42
  export { auth };
43
43
 
44
- //# sourceMappingURL=auth-DG4vh8-F.js.map
44
+ //# sourceMappingURL=auth-BwUHopJz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-DG4vh8-F.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-BwUHopJz.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.288",
5
+ "version": "0.3.292",
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-D7_SAaIQ.js";
2
- import { r as setupGitHubToken } from "./token-BGCjZwtj.js";
3
- import { t as getCopilotUsage } from "./get-copilot-usage-BjA0nyGR.js";
1
+ import { i as ensurePaths } from "./paths-BH4J7slC.js";
2
+ import { r as setupGitHubToken } from "./token-8drORhXg.js";
3
+ import { t as getCopilotUsage } from "./get-copilot-usage-CRrf1ZSC.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-BqN7mBYv.js.map
43
+ //# sourceMappingURL=check-usage-BTda5753.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-usage-BqN7mBYv.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-BTda5753.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,20 +1,20 @@
1
- import { C as availableToolCommands, Ft as provisionAndIndexColbert, Ht as shouldUseInsecureTls, Mt as provisionBrowserAssets, Pt as colbertDegradedWarning, Rt as warmTreeSitterPool, T as toolbeltEnabled, _t as scribeModel, a as buildPeerAwarenessSnippet, at as browseAgentEnabled, ct as fleetToolsEnabled, dt as implementerFastModel, en as isBudgetClaudeLead, ft as nativeSubagentModel, gt as scoutModel, ht as reviewerModel, it as brainstormModel, lt as geminiAvailable, mt as reviewerFastModel, nn as resolveLeadSlugArg, nt as agentToolsEnabled, o as buildPeerAwarenessSummary, ot as browserCompoundToolsEnabled, pt as resolveGeminiReviewModel, qt as DEFAULT_CLAUDE_MODEL_FALLBACKS, rt as artifactToolsEnabled, st as browserToolsEnabled, tn as pickClaudeDefault, ut as generalPurposeFastModel, vt as standInToolEnabled, w as buildToolbeltAwareness, yt as workerToolsEnabled } from "./peer-mcp-personas-B5Wp6wIn.js";
2
- import { o as removeOwnClaudeConfigMirror, r as ensureClaudeConfigMirror, t as PATHS, u as writeArtifactCredsToMirror } from "./paths-D7_SAaIQ.js";
3
- import { A as state, d as resolveModel } from "./token-BGCjZwtj.js";
1
+ import { Ct as reviewerFastModel, Dt as standInToolEnabled, E as toolbeltEnabled, Et as scribeModel, Ft as unregisterLaunch, Gt as provisionBrowserAssets, Jt as provisionAndIndexColbert, Ot as workerToolsEnabled, Pt as registerLaunch, St as resolveGeminiReviewModel, T as buildToolbeltAwareness, Tt as scoutModel, Zt as warmTreeSitterPool, _t as fleetToolsEnabled, at as FAST_SCOUT_EFFORT, bt as implementerFastModel, ct as brainstormModel, dt as browserToolsEnabled, ft as fastImplementerModel, gt as fastScoutModel, hn as resolveLeadSlugArg, ht as fastReviewerModel, it as FAST_REVIEWER_EFFORT, lt as browseAgentEnabled, mn as pickClaudeDefault, mt as fastPlannerModel, o as buildPeerAwarenessSnippet, on as DEFAULT_CLAUDE_MODEL_FALLBACKS, ot as agentToolsEnabled, pn as isBudgetClaudeLead, pt as fastOracleModel, qt as colbertDegradedWarning, r as agentNamesForToolAllowlist, rt as FAST_PLANNER_EFFORT, s as buildPeerAwarenessSummary, st as artifactToolsEnabled, tn as shouldUseInsecureTls, ut as browserCompoundToolsEnabled, vt as geminiAvailable, w as availableToolCommands, wt as reviewerModel, xt as nativeSubagentModel, yt as generalPurposeFastModel } from "./peer-mcp-personas-CHbl6MwM.js";
2
+ import { o as removeOwnClaudeConfigMirror, r as ensureClaudeConfigMirror, t as PATHS, u as writeArtifactCredsToMirror } from "./paths-BH4J7slC.js";
3
+ import { A as state, d as resolveModel } from "./token-8drORhXg.js";
4
4
  import { r as parseBoolEnv } from "./exec-y8C_MU8A.js";
5
- import { a as sharedServerArgs, c as listModelsForEndpoint, d as checkClaudeVersion, f as updateClaude, i as setupAndServe, l as enableFileLogging, o as startKeepAwake, r as parseSharedArgs, s as stopKeepAwake, t as getClaudeCodeEnvVars, u as runSelfUpdate } from "./server-setup-D5hilphf.js";
6
- import { n as hookLauncherDegradedWarning, r as resolveSelfInvocation } from "./self-invocation-CP_SOkrr.js";
7
- import { i as launchChild, r as getCodexVersion, t as provisionToolbelt } from "./provision-CUqPki1z.js";
8
- 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-DriRc9xN.js";
9
- import { t as liveExec } from "./orchestration-BrJwZxMN.js";
10
- import { c as repoRoot, d as trustRepo, l as stopGateEnabledForRepo, s as repoFingerprint, t as fileBaselineStore } from "./stop-gate-policy-DMPanpoR.js";
11
- import { l as guardToolMatcher, n as activeDispatchModes, r as buildWorkerGuardHookCommand } from "./worker-dispatch-BCTMyNE-.js";
12
- import { _ as injectPeerMcpIntoMirror, a as appendPeerAwarenessToMirroredClaudeMd, b as workersKeyOf, c as prependArtifactPanelDirectiveToMirroredClaudeMd, i as OPERATING_DEFAULTS_DIGEST, l as prependOperatingDefaultsToMirroredClaudeMd, m as planModeAllowRules, n as INJECTED_SKILLS, o as appendToolbeltAwarenessToMirroredClaudeMd, p as injectAllowRules, r as writeInjectedSkill, s as buildOperatingDefaultsDirective, t as injectAttributionSuppressionIntoSettingsFile, u as prependStyleDirectiveToMirroredClaudeMd, v as resolveCodexCliBackend, x as writePeerMcpRuntimeFiles, y as resolveGroupKeysFromMirror } from "./attribution-settings-CofaqSzw.js";
5
+ import { _ as validateFastProfilePrerequisites, a as sharedServerArgs, b as updateClaude, c as stopKeepAwake, d as LUNA_DRIVER_ALIAS_ID, g as resolveLaunchProfile, h as profileDescriptor, i as setupAndServe, l as listModelsForEndpoint, m as formatFastPrerequisiteFailure, o as LAUNCH_SECRET_HEADER, r as parseSharedArgs, s as startKeepAwake, t as getClaudeCodeEnvVars, u as enableFileLogging, v as runSelfUpdate, y as checkClaudeVersion } from "./server-setup-CqlaZukJ.js";
6
+ import { n as hookLauncherDegradedWarning, r as resolveSelfInvocation } from "./self-invocation-DhO1Z8iD.js";
7
+ import { i as launchChild, r as getCodexVersion, t as provisionToolbelt } from "./provision-BYFd9nPK.js";
8
+ 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-BiBp5aGm.js";
9
+ import { t as liveExec } from "./orchestration-pzbrKkgD.js";
10
+ import { c as repoRoot, d as trustRepo, l as stopGateEnabledForRepo, s as repoFingerprint, t as fileBaselineStore } from "./stop-gate-policy-BGd6b5hR.js";
11
+ import { l as guardToolMatcher, n as activeDispatchModes, r as buildWorkerGuardHookCommand } from "./worker-dispatch-D5fGroNr.js";
12
+ import { _ as injectPeerMcpIntoMirror, a as appendPeerAwarenessToMirroredClaudeMd, b as workersKeyOf, c as prependArtifactPanelDirectiveToMirroredClaudeMd, i as OPERATING_DEFAULTS_DIGEST, l as prependOperatingDefaultsToMirroredClaudeMd, m as planModeAllowRules, n as INJECTED_SKILLS, o as appendToolbeltAwarenessToMirroredClaudeMd, p as injectAllowRules, r as writeInjectedSkill, s as buildOperatingDefaultsDirective, t as injectAttributionSuppressionIntoSettingsFile, u as prependStyleDirectiveToMirroredClaudeMd, v as resolveCodexCliBackend, x as writePeerMcpRuntimeFiles, y as resolveGroupKeysFromMirror } from "./attribution-settings-CpLUCi8R.js";
13
13
  import { r as hookMcpRuntimeFromEnv } from "./hook-mcp-client-DBvm9608.js";
14
- import { i as planReviewEnabled, t as buildPlanReviewHookCommand } from "./plan-review-hook-CVZsG9MZ.js";
15
- 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-LQZ-enJa.js";
16
- import { t as buildPromptSubmitHookCommand } from "./prompt-submit-hook-BW92FX2D.js";
17
- import { i as assertShapingInstalled, n as buildFirstMateGuardHookCommand, t as FIRST_MATE_GUARD_MATCHER } from "./internal-first-mate-guard-5XEHMaqy.js";
14
+ import { i as planReviewEnabled, t as buildPlanReviewHookCommand } from "./plan-review-hook-CfcanA7_.js";
15
+ 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-Bjar5dgv.js";
16
+ import { t as buildPromptSubmitHookCommand } from "./prompt-submit-hook-Bqf9ORgb.js";
17
+ import { i as assertShapingInstalled, n as buildFirstMateGuardHookCommand, t as FIRST_MATE_GUARD_MATCHER } from "./internal-first-mate-guard-CVFFJriA.js";
18
18
  import { defineCommand } from "citty";
19
19
  import consola from "consola";
20
20
  import path from "node:path";
@@ -208,7 +208,8 @@ const claude = defineCommand({
208
208
  },
209
209
  args: claudeArgs,
210
210
  async run({ args, rawArgs }) {
211
- if (!process.stdout.isTTY) {
211
+ const headlessProbeRequested = process.env.GH_ROUTER_ALLOW_HEADLESS_CLAUDE === "1" && rawArgs.includes("--print") && rawArgs.includes("--input-format") && rawArgs.includes("--output-format") && rawArgs.filter((arg) => arg === "stream-json").length >= 2;
212
+ if (!process.stdout.isTTY && !headlessProbeRequested) {
212
213
  consola.error("The claude subcommand requires a TTY (interactive terminal).");
213
214
  process.exit(1);
214
215
  }
@@ -254,8 +255,19 @@ const claude = defineCommand({
254
255
  }
255
256
  enableFileLogging();
256
257
  const usingDefault = !args.model?.trim();
257
- let chosenSlug = resolveLeadSlugArg(args.model);
258
- let resolvedSlug = resolveModel(chosenSlug);
258
+ const requestedSlug = resolveLeadSlugArg(args.model);
259
+ const launchProfileId = resolveLaunchProfile(args.model);
260
+ if (launchProfileId === "fast") {
261
+ const prereqCheck = validateFastProfilePrerequisites(state.models);
262
+ if (!prereqCheck.ok) {
263
+ const message = formatFastPrerequisiteFailure(prereqCheck.missing);
264
+ consola.error(message);
265
+ process.stderr.write(`${message}\n`);
266
+ process.exit(1);
267
+ }
268
+ }
269
+ let chosenSlug = launchProfileId === "fast" ? requestedSlug.endsWith("[1m]") ? `${LUNA_DRIVER_ALIAS_ID}[1m]` : LUNA_DRIVER_ALIAS_ID : requestedSlug;
270
+ let resolvedSlug = launchProfileId === "fast" ? resolveModel(requestedSlug) : resolveModel(chosenSlug);
259
271
  if (usingDefault && state.models) {
260
272
  const inCache = (slug) => state.models?.data.some((m) => m.id === resolveModel(slug)) ?? false;
261
273
  if (!inCache(chosenSlug)) {
@@ -275,7 +287,7 @@ const claude = defineCommand({
275
287
  }
276
288
  const banner = chosenSlug === resolvedSlug ? chosenSlug : `${chosenSlug} → ${resolvedSlug}`;
277
289
  process.stderr.write(`Server ready on ${serverUrl}, launching Claude Code (${banner})...\n`);
278
- const envVars = getClaudeCodeEnvVars(serverUrl, chosenSlug);
290
+ const envVars = getClaudeCodeEnvVars(serverUrl, chosenSlug, launchProfileId);
279
291
  const extraArgs = collectChildPassthroughArgs(rawArgs, claudeArgs);
280
292
  if (toolbeltEnabled()) {
281
293
  provisionToolbelt().catch((err) => consola.debug("Toolbelt provisioning failed:", err));
@@ -300,7 +312,13 @@ const claude = defineCommand({
300
312
  let onShutdown = baseShutdown;
301
313
  let peerAwarenessSnippet;
302
314
  let peerAwarenessSummary;
303
- const nativeAgentModels = {
315
+ let fastRuntimeWired = launchProfileId !== "fast";
316
+ const nativeAgentModels = launchProfileId === "fast" ? {
317
+ scout: fastScoutModel(),
318
+ implementer: fastImplementerModel(),
319
+ reviewer: fastReviewerModel(),
320
+ planner: fastPlannerModel()
321
+ } : {
304
322
  implementer: nativeSubagentModel(),
305
323
  "implementer-fast": implementerFastModel(),
306
324
  reviewer: reviewerModel(),
@@ -315,7 +333,8 @@ const claude = defineCommand({
315
333
  implementerFastAvailable: nativeAgentModels["implementer-fast"] != null,
316
334
  reviewerFastAvailable: nativeAgentModels["reviewer-fast"] != null,
317
335
  generalPurposeFastAvailable: nativeAgentModels["general-purpose-fast"] != null,
318
- budgetLead: isBudgetClaudeLead(chosenSlug)
336
+ budgetLead: isBudgetClaudeLead(chosenSlug),
337
+ profile: launchProfileId
319
338
  };
320
339
  const codexMcpEnabled = args["codex-mcp"] !== false;
321
340
  const selfInvocation = await resolveSelfInvocation();
@@ -325,31 +344,36 @@ const claude = defineCommand({
325
344
  }
326
345
  if (codexMcpEnabled) try {
327
346
  const requestedCli = args["codex-cli"] ?? false;
328
- const backend = resolveCodexCliBackend({
347
+ const isFastProfile = launchProfileId === "fast";
348
+ if (isFastProfile && requestedCli) process.stderr.write("Fast profile uses its fixed HTTP MCP surface; ignoring --codex-cli.\n");
349
+ const backend = isFastProfile ? "http" : resolveCodexCliBackend({
329
350
  requested: requestedCli,
330
351
  codexInfo: requestedCli ? getCodexVersion() : null
331
352
  });
332
353
  const geminiModelsAvailable = geminiAvailable();
333
354
  if (!geminiModelsAvailable) consola.info("gemini-3.1-pro-preview not found in your Copilot model catalog; gemini-critic persona will not be registered.");
334
- const enabledGroups = [
355
+ const fastDescriptor = profileDescriptor(launchProfileId);
356
+ const baseGroups = [
335
357
  "peers",
336
358
  "search",
337
359
  "orchestrate"
338
360
  ];
339
- if (workerToolsEnabled()) enabledGroups.push("workers");
340
- if (standInToolEnabled()) enabledGroups.push("decide");
341
- if (browserToolsEnabled()) enabledGroups.push("browser");
342
- if (fleetToolsEnabled()) enabledGroups.push("fleet");
343
- if (agentToolsEnabled()) enabledGroups.push("first-mate");
361
+ if (workerToolsEnabled()) baseGroups.push("workers");
362
+ const enabledGroups = fastDescriptor.allowedGroups ? baseGroups.filter((g) => fastDescriptor.allowedGroups.has(g)) : baseGroups;
363
+ if (!isFastProfile && standInToolEnabled()) enabledGroups.push("decide");
364
+ if (browserToolsEnabled() && (!fastDescriptor.allowedGroups || fastDescriptor.allowedGroups.has("browser"))) enabledGroups.push("browser");
365
+ if (!isFastProfile && fleetToolsEnabled()) enabledGroups.push("fleet");
366
+ if (!isFastProfile && agentToolsEnabled()) enabledGroups.push("first-mate");
344
367
  const { keys: groupKeys, skipped: skippedGroups } = await resolveGroupKeysFromMirror(enabledGroups);
368
+ if (isFastProfile && fastOracleModel() == null) throw new Error("fast profile prerequisite drift: exact claude-opus-5 Oracle no longer resolves");
345
369
  const runtime = await writePeerMcpRuntimeFiles(serverUrl, {
346
370
  codexCli: backend === "cli",
347
371
  selfInvocation,
348
372
  geminiAvailable: geminiModelsAvailable,
349
373
  geminiModel: resolveGeminiReviewModel(),
350
374
  groupKeys,
351
- workerToolsAvailable: workerToolsEnabled(),
352
- browseAvailable: browseAgentEnabled(),
375
+ workerToolsAvailable: !isFastProfile && workerToolsEnabled(),
376
+ browseAvailable: !isFastProfile && browseAgentEnabled(),
353
377
  nativeSubagentModel: nativeAgentModels.implementer,
354
378
  reviewerModel: nativeAgentModels.reviewer,
355
379
  reviewerFastModel: nativeAgentModels["reviewer-fast"],
@@ -357,12 +381,33 @@ const claude = defineCommand({
357
381
  scoutModel: nativeAgentModels.scout,
358
382
  scribeModel: nativeAgentModels.scribe,
359
383
  implementerFastModel: nativeAgentModels["implementer-fast"],
360
- generalPurposeFastModel: nativeAgentModels["general-purpose-fast"]
384
+ generalPurposeFastModel: nativeAgentModels["general-purpose-fast"],
385
+ nativeRoster: fastDescriptor.nativeRoster,
386
+ personaAllowlist: isFastProfile ? void 0 : fastDescriptor.personaAllowlist ? agentNamesForToolAllowlist(fastDescriptor.personaAllowlist) : void 0,
387
+ includeCoordinator: fastDescriptor.hasCoordinator,
388
+ ...isFastProfile ? {
389
+ fastProfile: true,
390
+ plannerModel: nativeAgentModels.planner,
391
+ scoutEffort: FAST_SCOUT_EFFORT,
392
+ implementerEffort: "max",
393
+ reviewerEffort: FAST_REVIEWER_EFFORT,
394
+ plannerEffort: FAST_PLANNER_EFFORT
395
+ } : {}
396
+ });
397
+ fastRuntimeWired = true;
398
+ const launchSecret = randomBytes(32).toString("hex");
399
+ const launchEntry = registerLaunch({
400
+ profileId: launchProfileId,
401
+ nonce: runtime.nonce,
402
+ secret: launchSecret,
403
+ allowedGroups: fastDescriptor.allowedGroups,
404
+ allowedPersonas: fastDescriptor.personaAllowlist
361
405
  });
362
- state.peerMcpNonce = runtime.nonce;
406
+ envVars.ANTHROPIC_CUSTOM_HEADERS = envVars.ANTHROPIC_CUSTOM_HEADERS ? `${envVars.ANTHROPIC_CUSTOM_HEADERS}\n${LAUNCH_SECRET_HEADER}: ${launchSecret}` : `${LAUNCH_SECRET_HEADER}: ${launchSecret}`;
363
407
  envVars.GH_ROUTER_HOOK_MCP_URL = serverUrl;
364
408
  envVars.GH_ROUTER_HOOK_NONCE = runtime.nonce;
365
409
  onShutdown = async () => {
410
+ unregisterLaunch(launchEntry.launchId);
366
411
  await runtime.cleanup();
367
412
  await baseShutdown();
368
413
  };
@@ -382,9 +427,11 @@ const claude = defineCommand({
382
427
  const skippedNote = skippedGroups.length > 0 ? ` WARNING: groups [${skippedGroups.join(", ")}] skipped — both the bare and \`gh-router-<group>\` keys collide with your own mcpServers; those tools are unavailable this session (rename the user-side server to re-enable).` : "";
383
428
  process.stderr.write(`Peer MCP wired (backend=${backend}, personas=[${personaNames}], subagent .md files=${runtime.agentMdPaths.length}, ${subagentVisibility}).${skippedNote}\n`);
384
429
  const sessionCwd = process.cwd();
385
- if (workerToolsEnabled()) {
386
- const skillsToWrite = INJECTED_SKILLS.filter((s) => !isFirstMateSkillName(s.name) || agentToolsEnabled());
387
- let skillsWritten = 0;
430
+ const workerSkillsActive = workerToolsEnabled() && !isFastProfile;
431
+ let skillsWritten = 0;
432
+ let skillsToWrite = [];
433
+ if (workerSkillsActive) {
434
+ skillsToWrite = INJECTED_SKILLS.filter((s) => !isFirstMateSkillName(s.name) || agentToolsEnabled());
388
435
  for (const s of skillsToWrite) if ((await writeInjectedSkill(s.name, s.md).catch(() => ({ written: false }))).written) skillsWritten++;
389
436
  try {
390
437
  const settingsPath = path.join(PATHS.CLAUDE_CONFIG_DIR, "settings.json");
@@ -393,14 +440,16 @@ const claude = defineCommand({
393
440
  } catch (err) {
394
441
  consola.warn(`Could not register the UserPromptSubmit hook: ${String(err)}`);
395
442
  }
396
- try {
397
- const settingsPath = path.join(PATHS.CLAUDE_CONFIG_DIR, "settings.json");
398
- const injectedServerKeys = injected.ok ? injected.serversAdded : [...Object.values(groupKeys).filter((k) => Boolean(k)), ...backend === "cli" ? ["codex-cli"] : []];
399
- const res = await injectAllowRules(settingsPath, planModeAllowRules(injectedServerKeys));
400
- if (res.added.length) consola.debug(`Auto-approved for plan mode: ${res.added.join(", ")}`);
401
- } catch (err) {
402
- consola.warn(`Could not auto-approve injected tools: ${String(err)}`);
403
- }
443
+ }
444
+ try {
445
+ const settingsPath = path.join(PATHS.CLAUDE_CONFIG_DIR, "settings.json");
446
+ const injectedServerKeys = injected.ok ? injected.serversAdded : [...Object.values(groupKeys).filter((k) => Boolean(k)), ...backend === "cli" ? ["codex-cli"] : []];
447
+ const res = await injectAllowRules(settingsPath, planModeAllowRules(injectedServerKeys));
448
+ if (res.added.length) consola.debug(`Auto-approved for plan mode: ${res.added.join(", ")}`);
449
+ } catch (err) {
450
+ consola.warn(`Could not auto-approve injected tools: ${String(err)}`);
451
+ }
452
+ if (workerSkillsActive) {
404
453
  if (!injected.ok) consola.warn("Workers non-blocking guard NOT registered: subagent MCP injection fell back to parent-only (--mcp-config), so worker-* dispatchers cannot reach the workers server. Raw (blocking) worker tools remain usable on the main thread this session.");
405
454
  else if (process.env.GH_ROUTER_DISABLE_WORKER_GUARD === "1") consola.info("Workers non-blocking guard disabled via GH_ROUTER_DISABLE_WORKER_GUARD=1 — raw mcp__workers__* is callable on the main thread (blocking); the worker-* background agents remain the steered, non-blocking default.");
406
455
  else try {
@@ -447,7 +496,7 @@ const claude = defineCommand({
447
496
  } catch (err) {
448
497
  consola.warn(`Artifact-panel directive prepend failed: ${String(err)}`);
449
498
  }
450
- try {
499
+ if (!isFastProfile) try {
451
500
  await writeArtifactCredsToMirror(shouldUseInsecureTls(process.env.AIORDIE_BASE_URL ?? ""));
452
501
  const settingsPath = path.join(PATHS.CLAUDE_CONFIG_DIR, "settings.json");
453
502
  const cmd = buildArtifactOpenHookCommand(selfInvocation);
@@ -456,20 +505,20 @@ const claude = defineCommand({
456
505
  consola.warn(`Could not register the artifact auto-open hook: ${String(err)}`);
457
506
  }
458
507
  }
459
- if (hookMcpRuntimeFromEnv(envVars) && planReviewEnabled()) try {
508
+ if (!isFastProfile && hookMcpRuntimeFromEnv(envVars) && planReviewEnabled()) try {
460
509
  const settingsPath = path.join(PATHS.CLAUDE_CONFIG_DIR, "settings.json");
461
510
  const command = buildPlanReviewHookCommand(selfInvocation);
462
511
  await injectStopHookIntoSettingsFile(settingsPath, command, "PostToolUse", void 0, "ExitPlanMode");
463
512
  } catch (err) {
464
513
  consola.warn(`Could not register the advisory plan-review hook: ${String(err)}`);
465
514
  }
466
- if (args["trust-gate"] === true) try {
515
+ if (!isFastProfile && args["trust-gate"] === true) try {
467
516
  const root = await trustRepo(sessionCwd);
468
517
  process.stderr.write(`Structural gate trusted for this repo (${root}); it will run on launch here from now on.\n`);
469
518
  } catch (err) {
470
519
  consola.warn(`Could not record gate trust: ${String(err)}`);
471
520
  }
472
- const gateDisabled = stopGateDisabled(args);
521
+ const gateDisabled = isFastProfile || stopGateDisabled(args);
473
522
  const forceEnabled = parseBoolEnv(process.env.GH_ROUTER_ENABLE_STOP_GATE) === true;
474
523
  const includeTests = parseBoolEnv(process.env.GH_ROUTER_STOP_GATE_RUN_TESTS) === true;
475
524
  const gateRoot = await repoRoot(sessionCwd).catch(() => sessionCwd);
@@ -604,7 +653,10 @@ const claude = defineCommand({
604
653
  }
605
654
  extraArgs.push("--append-system-prompt", peerAwarenessSnippet && peerAwarenessSummary ? `${OPERATING_DEFAULTS_DIGEST}\n\n${peerAwarenessSummary}` : OPERATING_DEFAULTS_DIGEST);
606
655
  try {
607
- await prependOperatingDefaultsToMirroredClaudeMd(buildOperatingDefaultsDirective(nativeAvailability));
656
+ await prependOperatingDefaultsToMirroredClaudeMd(buildOperatingDefaultsDirective({
657
+ ...nativeAvailability,
658
+ fastRuntimeAvailable: fastRuntimeWired
659
+ }));
608
660
  } catch (err) {
609
661
  consola.warn(`Operating-defaults CLAUDE.md prepend failed: ${err instanceof Error ? err.message : String(err)}`);
610
662
  }
@@ -625,4 +677,4 @@ const claude = defineCommand({
625
677
  //#endregion
626
678
  export { claude };
627
679
 
628
- //# sourceMappingURL=claude-CoZKRNB8.js.map
680
+ //# sourceMappingURL=claude-_DYGKCw8.js.map