cli-jaw 1.7.34 → 1.7.36

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 (169) hide show
  1. package/dist/bin/cli-jaw.js +5 -1
  2. package/dist/bin/cli-jaw.js.map +1 -1
  3. package/dist/bin/commands/dashboard.js +78 -0
  4. package/dist/bin/commands/dashboard.js.map +1 -0
  5. package/dist/lib/quota-copilot.js +5 -0
  6. package/dist/lib/quota-copilot.js.map +1 -1
  7. package/dist/src/agent/args.js +2 -4
  8. package/dist/src/agent/args.js.map +1 -1
  9. package/dist/src/agent/events.js +43 -1
  10. package/dist/src/agent/events.js.map +1 -1
  11. package/dist/src/manager/constants.js +9 -0
  12. package/dist/src/manager/constants.js.map +1 -0
  13. package/dist/src/manager/metadata.js +35 -0
  14. package/dist/src/manager/metadata.js.map +1 -0
  15. package/dist/src/manager/proxy.js +134 -0
  16. package/dist/src/manager/proxy.js.map +1 -0
  17. package/dist/src/manager/scan.js +111 -0
  18. package/dist/src/manager/scan.js.map +1 -0
  19. package/dist/src/manager/server.js +85 -0
  20. package/dist/src/manager/server.js.map +1 -0
  21. package/dist/src/manager/types.js +2 -0
  22. package/dist/src/manager/types.js.map +1 -0
  23. package/dist/src/routes/quota.js +134 -3
  24. package/dist/src/routes/quota.js.map +1 -1
  25. package/dist/src/routes/settings.js +5 -4
  26. package/dist/src/routes/settings.js.map +1 -1
  27. package/package.json +6 -1
  28. package/public/css/chat.css +27 -0
  29. package/public/css/diagram.css +48 -2
  30. package/public/dist/assets/api-Cl2oljO1.js +1 -0
  31. package/public/dist/assets/{index-wUWc2M5K.js → app-58Z9R8qM.js} +4 -4
  32. package/public/dist/assets/app-DWH_NZRE.css +1 -0
  33. package/public/dist/assets/architecture-YZFGNWBL-D4g_rKok.js +1 -0
  34. package/public/dist/assets/architectureDiagram-Q4EWVU46-DVbii_Pt.js +1 -0
  35. package/public/dist/assets/blockDiagram-DXYQGD6D-BStipezp.js +1 -0
  36. package/public/dist/assets/c4Diagram-AHTNJAMY-BYno4Snw.js +1 -0
  37. package/public/dist/assets/classDiagram-6PBFFD2Q-QzqRo_9X.js +1 -0
  38. package/public/dist/assets/classDiagram-v2-HSJHXN6E-CchGqJUH.js +1 -0
  39. package/public/dist/assets/{constants-BU8a_R5s.js → constants-fUXYKkoK.js} +1 -1
  40. package/public/dist/assets/cose-bilkent-S5V4N54A-TJS1iaqp.js +1 -0
  41. package/public/dist/assets/dagre-KV5264BT-C_DCJZ7t.js +1 -0
  42. package/public/dist/assets/diagram-5BDNPKRD-CKix1NRO.js +1 -0
  43. package/public/dist/assets/diagram-G4DWMVQ6-CoDTDNnx.js +1 -0
  44. package/public/dist/assets/diagram-MMDJMWI5-DYx0PwrY.js +1 -0
  45. package/public/dist/assets/diagram-TYMM5635-Bx1779dG.js +1 -0
  46. package/public/dist/assets/{employees-p53cgGmH.js → employees-CnA_uLbJ.js} +1 -1
  47. package/public/dist/assets/erDiagram-SMLLAGMA-C0INYE-d.js +1 -0
  48. package/public/dist/assets/flowDiagram-DWJPFMVM-DfQIgEdB.js +1 -0
  49. package/public/dist/assets/ganttDiagram-T4ZO3ILL-B8o_Hblo.js +1 -0
  50. package/public/dist/assets/gitGraph-7Q5UKJZL-DBMf1L33.js +1 -0
  51. package/public/dist/assets/gitGraphDiagram-UUTBAWPF-B2nqnLHi.js +1 -0
  52. package/public/dist/assets/idb-cache-C5ilDI6r.js +1 -0
  53. package/public/dist/assets/info-OMHHGYJF-C3gtg5Od.js +1 -0
  54. package/public/dist/assets/infoDiagram-42DDH7IO-Brz9iwrL.js +1 -0
  55. package/public/dist/assets/ishikawaDiagram-UXIWVN3A-C0YeQJh0.js +1 -0
  56. package/public/dist/assets/journeyDiagram-VCZTEJTY-BypDthzR.js +1 -0
  57. package/public/dist/assets/kanban-definition-6JOO6SKY-LkyDUgUP.js +1 -0
  58. package/public/dist/assets/katex-BL3z5Bli.js +1 -0
  59. package/public/dist/assets/manager-D4L7R_7R.css +1 -0
  60. package/public/dist/assets/manager-DtTAKPgY.js +9 -0
  61. package/public/dist/assets/memory-BN3grLR7.js +1 -0
  62. package/public/dist/assets/{memory-C2i7ZIvv.js → memory-RKpZbPTW.js} +1 -1
  63. package/public/dist/assets/mermaid.core-D6PDYVgC.js +1 -0
  64. package/public/dist/assets/mindmap-definition-QFDTVHPH-rV1Hipx-.js +1 -0
  65. package/public/dist/assets/packet-4T2RLAQJ-BuK6y2B7.js +1 -0
  66. package/public/dist/assets/pie-ZZUOXDRM-x8CPu972.js +1 -0
  67. package/public/dist/assets/pieDiagram-DEJITSTG-DpxKH4h4.js +1 -0
  68. package/public/dist/assets/quadrantDiagram-34T5L4WZ-BkRLuqoa.js +1 -0
  69. package/public/dist/assets/radar-PYXPWWZC-CsTAKlcV.js +1 -0
  70. package/public/dist/assets/render-D9bnLVR_.js +30 -0
  71. package/public/dist/assets/requirementDiagram-MS252O5E-BdqZlJ0O.js +1 -0
  72. package/public/dist/assets/sankeyDiagram-XADWPNL6-b3SwMAxC.js +1 -0
  73. package/public/dist/assets/sequenceDiagram-FGHM5R23-BmjI6n81.js +1 -0
  74. package/public/dist/assets/{settings-BUEiZgkm.js → settings-B8oUfDm4.js} +8 -8
  75. package/public/dist/assets/settings-DvGS6X_5.js +1 -0
  76. package/public/dist/assets/{skills-CSuSbBWa.js → skills-CHB_WsxF.js} +1 -1
  77. package/public/dist/assets/skills-WhnGcvvJ.js +1 -0
  78. package/public/dist/assets/{slash-commands-D-v0DlbY.js → slash-commands-CbsN2LqT.js} +1 -1
  79. package/public/dist/assets/slash-commands-DOh3zvJ7.js +1 -0
  80. package/public/dist/assets/stateDiagram-FHFEXIEX-DRsIDvF8.js +1 -0
  81. package/public/dist/assets/stateDiagram-v2-QKLJ7IA2-IJMg9fYC.js +1 -0
  82. package/public/dist/assets/timeline-definition-GMOUNBTQ-B-0E30rh.js +1 -0
  83. package/public/dist/assets/treeView-SZITEDCU-CRgtpI0K.js +1 -0
  84. package/public/dist/assets/treemap-W4RFUUIX-DB5B-smF.js +1 -0
  85. package/public/dist/assets/ui-Cg8zuDaT.js +131 -0
  86. package/public/dist/assets/ui-HckqJaBX.js +1 -0
  87. package/public/dist/assets/{vendor-mermaid-UktBx7L0.js → vendor-mermaid-DHVxHqbi.js} +6 -6
  88. package/public/dist/assets/{vendor-render-D2YP6GiF.js → vendor-render-BaFgDHeH.js} +1 -1
  89. package/public/dist/assets/vennDiagram-DHZGUBPP-BBd9TC4D.js +1 -0
  90. package/public/dist/assets/wardley-RL74JXVD-BzCH0WF9.js +1 -0
  91. package/public/dist/assets/wardleyDiagram-NUSXRM2D-DgenAPEz.js +1 -0
  92. package/public/dist/assets/ws-DSntry14.js +14 -0
  93. package/public/dist/assets/xychartDiagram-5P7HB3ND-BmvcJ6sg.js +1 -0
  94. package/public/dist/index.html +2 -2
  95. package/public/dist/manager/index.html +14 -0
  96. package/public/js/diagram/iframe-renderer.ts +196 -77
  97. package/public/js/features/process-block.ts +2 -2
  98. package/public/js/features/settings-cli-status.ts +20 -1
  99. package/public/js/features/settings-types.ts +1 -1
  100. package/public/js/render.ts +16 -3
  101. package/public/js/ui.ts +42 -0
  102. package/public/js/ws.ts +20 -4
  103. package/public/manager/index.html +13 -0
  104. package/public/manager/src/App.tsx +185 -0
  105. package/public/manager/src/InstancePreview.tsx +72 -0
  106. package/public/manager/src/api.ts +8 -0
  107. package/public/manager/src/main.tsx +9 -0
  108. package/public/manager/src/preview.ts +35 -0
  109. package/public/manager/src/styles.css +309 -0
  110. package/public/manager/src/types.ts +44 -0
  111. package/public/dist/assets/api-COrKYKcO.js +0 -1
  112. package/public/dist/assets/architecture-YZFGNWBL-B2Nc8YC_.js +0 -1
  113. package/public/dist/assets/architectureDiagram-Q4EWVU46-EML5rtmP.js +0 -1
  114. package/public/dist/assets/blockDiagram-DXYQGD6D-Ds9bBl-N.js +0 -1
  115. package/public/dist/assets/c4Diagram-AHTNJAMY-BVpUT3Om.js +0 -1
  116. package/public/dist/assets/classDiagram-6PBFFD2Q-DG8IYzhr.js +0 -1
  117. package/public/dist/assets/classDiagram-v2-HSJHXN6E-B5j0d5gs.js +0 -1
  118. package/public/dist/assets/cose-bilkent-S5V4N54A-kNrexiHE.js +0 -1
  119. package/public/dist/assets/dagre-KV5264BT-Ylb1W0yQ.js +0 -1
  120. package/public/dist/assets/diagram-5BDNPKRD-CPxqMVrp.js +0 -1
  121. package/public/dist/assets/diagram-G4DWMVQ6-Dm1xfj8I.js +0 -1
  122. package/public/dist/assets/diagram-MMDJMWI5-VsjfxFEK.js +0 -1
  123. package/public/dist/assets/diagram-TYMM5635-CrMZri_r.js +0 -1
  124. package/public/dist/assets/erDiagram-SMLLAGMA-Felxus25.js +0 -1
  125. package/public/dist/assets/flowDiagram-DWJPFMVM-kQrkSkw2.js +0 -1
  126. package/public/dist/assets/ganttDiagram-T4ZO3ILL-CulD-LkD.js +0 -1
  127. package/public/dist/assets/gitGraph-7Q5UKJZL-DbbbZYM5.js +0 -1
  128. package/public/dist/assets/gitGraphDiagram-UUTBAWPF-oTUYJsKL.js +0 -1
  129. package/public/dist/assets/idb-cache-C7z4qE00.js +0 -1
  130. package/public/dist/assets/index-CLKLbGzn.css +0 -1
  131. package/public/dist/assets/info-OMHHGYJF-auV0JwD8.js +0 -1
  132. package/public/dist/assets/infoDiagram-42DDH7IO-B2XOJXrL.js +0 -1
  133. package/public/dist/assets/ishikawaDiagram-UXIWVN3A-CsmszxH_.js +0 -1
  134. package/public/dist/assets/journeyDiagram-VCZTEJTY-MmzEBROj.js +0 -1
  135. package/public/dist/assets/kanban-definition-6JOO6SKY-DcbxzAKu.js +0 -1
  136. package/public/dist/assets/katex-Bh3QhMKY.js +0 -1
  137. package/public/dist/assets/memory-6zLEr-qI.js +0 -1
  138. package/public/dist/assets/mermaid.core-CoRN09Dx.js +0 -1
  139. package/public/dist/assets/mindmap-definition-QFDTVHPH-CMqZWcUf.js +0 -1
  140. package/public/dist/assets/packet-4T2RLAQJ-C_PFKo5G.js +0 -1
  141. package/public/dist/assets/pie-ZZUOXDRM-CcqLxwbG.js +0 -1
  142. package/public/dist/assets/pieDiagram-DEJITSTG-C9r3BQ9f.js +0 -1
  143. package/public/dist/assets/quadrantDiagram-34T5L4WZ-Du4pEL4T.js +0 -1
  144. package/public/dist/assets/radar-PYXPWWZC-BWOF5omS.js +0 -1
  145. package/public/dist/assets/render-CulTuvJs.js +0 -30
  146. package/public/dist/assets/requirementDiagram-MS252O5E-Dyz9eEFP.js +0 -1
  147. package/public/dist/assets/sankeyDiagram-XADWPNL6-DLgUCKs2.js +0 -1
  148. package/public/dist/assets/sequenceDiagram-FGHM5R23-c0nA9K_Q.js +0 -1
  149. package/public/dist/assets/settings-BhrOslae.js +0 -1
  150. package/public/dist/assets/skills-CgwxEvFx.js +0 -1
  151. package/public/dist/assets/slash-commands-Bo8jvBfI.js +0 -1
  152. package/public/dist/assets/stateDiagram-FHFEXIEX-D2aVOdby.js +0 -1
  153. package/public/dist/assets/stateDiagram-v2-QKLJ7IA2-DuwdzBLR.js +0 -1
  154. package/public/dist/assets/timeline-definition-GMOUNBTQ-PuaZYI31.js +0 -1
  155. package/public/dist/assets/treeView-SZITEDCU-D8mODguI.js +0 -1
  156. package/public/dist/assets/treemap-W4RFUUIX-DqqBuiM1.js +0 -1
  157. package/public/dist/assets/ui-4JiRyxJy.js +0 -131
  158. package/public/dist/assets/ui-Dx0MwI23.js +0 -1
  159. package/public/dist/assets/vennDiagram-DHZGUBPP-4blQ8E1z.js +0 -1
  160. package/public/dist/assets/wardley-RL74JXVD-Dn1IRCw2.js +0 -1
  161. package/public/dist/assets/wardleyDiagram-NUSXRM2D-OUBAKNJu.js +0 -1
  162. package/public/dist/assets/ws-DKtFfZsY.js +0 -14
  163. package/public/dist/assets/xychartDiagram-5P7HB3ND-CyZD7ovz.js +0 -1
  164. /package/public/dist/assets/{api-DygAf_G_.js → api-CnBOYa3F.js} +0 -0
  165. /package/public/dist/assets/{idb-cache-DbK81tgv.js → idb-cache-CjnC_K0x.js} +0 -0
  166. /package/public/dist/assets/{locale-CxI5nTcf.js → locale-heAuYK-3.js} +0 -0
  167. /package/public/dist/assets/{rolldown-runtime-FhOqtrmT.js → rolldown-runtime-DE9SaGGd.js} +0 -0
  168. /package/public/dist/assets/{state-O6NVkWcL.js → state-CPF7TImo.js} +0 -0
  169. /package/public/dist/assets/{vendor-icons-Bs4t7RP2.js → vendor-icons-D2l6ddC0.js} +0 -0
@@ -0,0 +1,85 @@
1
+ import express from 'express';
2
+ import helmet from 'helmet';
3
+ import { existsSync } from 'node:fs';
4
+ import { join, dirname } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { spawn } from 'node:child_process';
7
+ import { DASHBOARD_DEFAULT_PORT, MANAGED_INSTANCE_PORT_COUNT, MANAGED_INSTANCE_PORT_FROM, } from './constants.js';
8
+ import { scanDashboardInstances } from './scan.js';
9
+ import { installDashboardProxy } from './proxy.js';
10
+ const __dirname = dirname(fileURLToPath(import.meta.url));
11
+ const serverRoot = join(__dirname, '..', '..');
12
+ const projectRoot = existsSync(join(serverRoot, 'package.json'))
13
+ ? serverRoot
14
+ : join(serverRoot, '..');
15
+ const app = express();
16
+ const port = Number(process.env.DASHBOARD_PORT || DASHBOARD_DEFAULT_PORT);
17
+ const scanFrom = Number(process.env.DASHBOARD_SCAN_FROM || MANAGED_INSTANCE_PORT_FROM);
18
+ const scanCount = Number(process.env.DASHBOARD_SCAN_COUNT || MANAGED_INSTANCE_PORT_COUNT);
19
+ app.use(helmet({
20
+ contentSecurityPolicy: false,
21
+ crossOriginEmbedderPolicy: false,
22
+ }));
23
+ app.get('/api/dashboard/health', (_req, res) => {
24
+ res.json({
25
+ ok: true,
26
+ port,
27
+ rangeFrom: scanFrom,
28
+ rangeTo: scanFrom + scanCount - 1,
29
+ });
30
+ });
31
+ app.get('/api/dashboard/instances', async (req, res) => {
32
+ try {
33
+ const from = Number(req.query.from || scanFrom);
34
+ const count = Number(req.query.count || scanCount);
35
+ const result = await scanDashboardInstances({ from, count, managerPort: port });
36
+ res.json(result);
37
+ }
38
+ catch (error) {
39
+ res.status(500).json({ ok: false, error: error.message });
40
+ }
41
+ });
42
+ const distRoot = join(projectRoot, 'public', 'dist');
43
+ const sourceRoot = join(projectRoot, 'public');
44
+ const managerHtmlCandidates = [
45
+ join(distRoot, 'manager', 'index.html'),
46
+ join(distRoot, 'public', 'manager', 'index.html'),
47
+ join(distRoot, 'manager.html'),
48
+ join(sourceRoot, 'manager', 'index.html'),
49
+ ];
50
+ const server = app.listen(port, '127.0.0.1', () => {
51
+ const url = `http://localhost:${port}`;
52
+ console.log(`\n Jaw Manager — ${url}`);
53
+ console.log(` Scanning: ${scanFrom}-${scanFrom + scanCount - 1}\n`);
54
+ if (process.env.JAW_DASHBOARD_OPEN === '1') {
55
+ const openCmd = process.platform === 'darwin' ? 'open'
56
+ : process.platform === 'win32' ? 'cmd'
57
+ : 'xdg-open';
58
+ const openArgs = process.platform === 'win32'
59
+ ? ['/c', 'start', '', url]
60
+ : [url];
61
+ const opener = spawn(openCmd, openArgs, { detached: true, stdio: 'ignore' });
62
+ opener.unref();
63
+ }
64
+ });
65
+ installDashboardProxy(app, server, { from: scanFrom, count: scanCount });
66
+ app.use('/dist', express.static(distRoot));
67
+ app.use('/assets', express.static(join(distRoot, 'assets')));
68
+ app.use('/manager', express.static(join(sourceRoot, 'manager')));
69
+ app.get('/{*splat}', (_req, res) => {
70
+ const htmlPath = managerHtmlCandidates.find(candidate => existsSync(candidate));
71
+ if (!htmlPath) {
72
+ return res.status(500).send('manager dashboard has not been built');
73
+ }
74
+ res.sendFile(htmlPath);
75
+ });
76
+ server.on('error', (error) => {
77
+ if (error.code === 'EADDRINUSE') {
78
+ console.error(`[dashboard] port ${port} already in use`);
79
+ }
80
+ else {
81
+ console.error(`[dashboard] listen error: ${error.message}`);
82
+ }
83
+ process.exit(1);
84
+ });
85
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/manager/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/manager/types.ts"],"names":[],"mappings":""}
@@ -3,6 +3,51 @@ import { execSync } from 'child_process';
3
3
  import fs from 'fs';
4
4
  import os from 'os';
5
5
  import { join } from 'path';
6
+ const GEMINI_CODE_ASSIST_ENDPOINT = 'https://cloudcode-pa.googleapis.com/v1internal';
7
+ const GEMINI_OAUTH_TOKEN_ENDPOINT = 'https://oauth2.googleapis.com/token';
8
+ const GEMINI_TOKEN_EXPIRY_SKEW_MS = 60_000;
9
+ function clampPercent(value) {
10
+ return Math.max(0, Math.min(100, value));
11
+ }
12
+ export function classifyGeminiQuotaTier(modelId) {
13
+ if (modelId.includes('flash-lite'))
14
+ return 'flash-lite';
15
+ if (modelId.includes('pro'))
16
+ return 'pro';
17
+ if (modelId.includes('flash'))
18
+ return 'flash';
19
+ return null;
20
+ }
21
+ export function normalizeGeminiQuotaBuckets(buckets) {
22
+ const selected = new Map();
23
+ for (const bucket of buckets) {
24
+ if (!bucket.modelId || bucket.remainingFraction == null)
25
+ continue;
26
+ const tier = classifyGeminiQuotaTier(bucket.modelId);
27
+ if (tier !== 'flash' && tier !== 'pro')
28
+ continue;
29
+ const remainingFraction = Math.max(0, Math.min(1, bucket.remainingFraction));
30
+ const percent = clampPercent(Math.round((1 - remainingFraction) * 100));
31
+ const existing = selected.get(tier);
32
+ if (existing && remainingFraction >= existing.remainingFraction)
33
+ continue;
34
+ selected.set(tier, {
35
+ label: tier === 'pro' ? 'P' : 'F',
36
+ percent,
37
+ resetsAt: bucket.resetTime ?? null,
38
+ modelId: bucket.modelId,
39
+ remainingFraction,
40
+ });
41
+ }
42
+ const order = ['flash', 'pro'];
43
+ return order.flatMap((tier) => {
44
+ const window = selected.get(tier);
45
+ if (!window)
46
+ return [];
47
+ const { remainingFraction: _remainingFraction, ...publicWindow } = window;
48
+ return [publicWindow];
49
+ });
50
+ }
6
51
  // macOS-only: reads Claude Code OAuth token from system keychain.
7
52
  // On Linux/WSL: returns null → classified as { authenticated: false } by /api/quota.
8
53
  export function readClaudeCreds() {
@@ -109,12 +154,98 @@ export function readGeminiAccount() {
109
154
  try {
110
155
  const credsPath = join(os.homedir(), '.gemini', 'oauth_creds.json');
111
156
  const creds = JSON.parse(fs.readFileSync(credsPath, 'utf8'));
112
- if (creds?.id_token) {
113
- const payload = JSON.parse(Buffer.from(creds.id_token.split('.')[1], 'base64url').toString());
114
- return { account: { email: payload.email ?? null }, windows: [] };
157
+ const token = typeof creds.access_token === 'string' ? creds.access_token : '';
158
+ const idTokenPayload = typeof creds.id_token === 'string' ? creds.id_token.split('.')[1] : undefined;
159
+ if (token && idTokenPayload) {
160
+ const payload = JSON.parse(Buffer.from(idTokenPayload, 'base64url').toString());
161
+ return {
162
+ token,
163
+ refreshToken: typeof creds.refresh_token === 'string' ? creds.refresh_token : undefined,
164
+ expiresAt: typeof creds.expiry_date === 'number' ? creds.expiry_date : undefined,
165
+ account: { email: payload.email ?? null },
166
+ };
115
167
  }
116
168
  }
117
169
  catch { /* expected: gemini creds may not exist */ }
118
170
  return null;
119
171
  }
172
+ async function refreshGeminiAccessToken(account) {
173
+ if (!account.refreshToken)
174
+ return null;
175
+ const clientId = process.env.GEMINI_OAUTH_CLIENT_ID;
176
+ const clientSecret = process.env.GEMINI_OAUTH_CLIENT_SECRET;
177
+ if (!clientId || !clientSecret)
178
+ return null;
179
+ const params = new URLSearchParams({
180
+ client_id: clientId,
181
+ client_secret: clientSecret,
182
+ refresh_token: account.refreshToken,
183
+ grant_type: 'refresh_token',
184
+ });
185
+ const resp = await fetch(GEMINI_OAUTH_TOKEN_ENDPOINT, {
186
+ method: 'POST',
187
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
188
+ body: params.toString(),
189
+ signal: AbortSignal.timeout(8000),
190
+ });
191
+ if (!resp.ok)
192
+ return null;
193
+ const data = await resp.json();
194
+ return typeof data.access_token === 'string' ? data.access_token : null;
195
+ }
196
+ async function getGeminiAccessToken(account) {
197
+ const expiresAt = account.expiresAt ?? 0;
198
+ if (account.token && (!expiresAt || expiresAt - Date.now() > GEMINI_TOKEN_EXPIRY_SKEW_MS)) {
199
+ return account.token;
200
+ }
201
+ return refreshGeminiAccessToken(account);
202
+ }
203
+ async function geminiCodeAssistPost(method, token, body) {
204
+ const resp = await fetch(`${GEMINI_CODE_ASSIST_ENDPOINT}:${method}`, {
205
+ method: 'POST',
206
+ headers: {
207
+ 'Authorization': `Bearer ${token}`,
208
+ 'Content-Type': 'application/json',
209
+ },
210
+ body: JSON.stringify(body),
211
+ signal: AbortSignal.timeout(8000),
212
+ });
213
+ if (!resp.ok) {
214
+ if (resp.status === 401 || resp.status === 403)
215
+ throw new Error('auth');
216
+ throw new Error(`status_${resp.status}`);
217
+ }
218
+ return resp.json();
219
+ }
220
+ export async function fetchGeminiUsage(account) {
221
+ if (!account)
222
+ return null;
223
+ try {
224
+ const token = await getGeminiAccessToken(account);
225
+ if (!token)
226
+ return { authenticated: false };
227
+ const metadata = {
228
+ ideType: 'IDE_UNSPECIFIED',
229
+ platform: 'PLATFORM_UNSPECIFIED',
230
+ pluginType: 'GEMINI',
231
+ };
232
+ const loadRes = await geminiCodeAssistPost('loadCodeAssist', token, {
233
+ metadata,
234
+ });
235
+ const project = loadRes.cloudaicompanionProject;
236
+ if (!project)
237
+ return { account: account.account, windows: [] };
238
+ const quota = await geminiCodeAssistPost('retrieveUserQuota', token, { project });
239
+ return {
240
+ account: account.account,
241
+ windows: normalizeGeminiQuotaBuckets(quota.buckets ?? []),
242
+ raw: quota,
243
+ };
244
+ }
245
+ catch (e) {
246
+ if (e.message === 'auth')
247
+ return { authenticated: false };
248
+ return { account: account.account, windows: [], error: true };
249
+ }
250
+ }
120
251
  //# sourceMappingURL=quota.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/routes/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/routes/quota.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { regenerateB, A2_PATH, HEARTBEAT_PATH } from '../prompt/builder.js';
8
8
  import { clearTemplateCache, getTemplateDir } from '../prompt/template-loader.js';
9
9
  import { loadUnifiedMcp, saveUnifiedMcp, syncToAll, initMcpConfig, } from '../../lib/mcp-sync.js';
10
10
  import { CLI_REGISTRY } from '../cli/registry.js';
11
- import { readClaudeCreds, readCodexTokens, fetchClaudeUsage, fetchCodexUsage, readGeminiAccount } from './quota.js';
11
+ import { readClaudeCreds, readCodexTokens, fetchClaudeUsage, fetchCodexUsage, readGeminiAccount, fetchGeminiUsage } from './quota.js';
12
12
  import { fetchCopilotQuota, refreshCopilotFromKeychain } from '../../lib/quota-copilot.js';
13
13
  export function registerSettingsRoutes(app, requireAuth, applySettings, projectRoot) {
14
14
  app.get('/api/settings', (_, res) => {
@@ -143,17 +143,18 @@ export function registerSettingsRoutes(app, requireAuth, applySettings, projectR
143
143
  app.get('/api/quota', async (_, res) => {
144
144
  const claudeCreds = readClaudeCreds();
145
145
  const codexTokens = readCodexTokens();
146
- const [claudeResult, codexResult, copilotResult] = await Promise.all([
146
+ const geminiAccount = readGeminiAccount();
147
+ const [claudeResult, codexResult, geminiResult, copilotResult] = await Promise.all([
147
148
  fetchClaudeUsage(claudeCreds),
148
149
  fetchCodexUsage(codexTokens),
150
+ fetchGeminiUsage(geminiAccount),
149
151
  fetchCopilotQuota(),
150
152
  ]);
151
- const geminiResult = readGeminiAccount();
152
153
  const classify = (result, hasCreds) => result ?? (hasCreds ? { error: true } : { authenticated: false });
153
154
  res.json({
154
155
  claude: classify(claudeResult, !!claudeCreds),
155
156
  codex: classify(codexResult, !!codexTokens),
156
- gemini: geminiResult ?? { authenticated: false },
157
+ gemini: classify(geminiResult, !!geminiAccount),
157
158
  opencode: { authenticated: true },
158
159
  copilot: copilotResult ?? { authenticated: false },
159
160
  });
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/routes/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/routes/settings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cli-jaw",
3
- "version": "1.7.34",
3
+ "version": "1.7.36",
4
4
  "description": "Personal AI assistant powered by 5 engines (Claude, Codex, Gemini, OpenCode, Copilot) — Web, Terminal, Telegram, and Discord interfaces with 107 built-in skills",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -91,6 +91,8 @@
91
91
  "mermaid": "^11.14.0",
92
92
  "node-fetch": "^3.3.2",
93
93
  "playwright-core": "^1.58.2",
94
+ "react": "^19.2.5",
95
+ "react-dom": "^19.2.5",
94
96
  "ws": "^8.18.0"
95
97
  },
96
98
  "devDependencies": {
@@ -98,7 +100,10 @@
98
100
  "@types/dompurify": "^3.0.5",
99
101
  "@types/express": "^5.0.6",
100
102
  "@types/node": "^25.5.2",
103
+ "@types/react": "^19.2.14",
104
+ "@types/react-dom": "^19.2.3",
101
105
  "@types/ws": "^8.5.0",
106
+ "@vitejs/plugin-react": "^5.2.0",
102
107
  "tsx": "^4.21.0",
103
108
  "typescript": "^6.0.2",
104
109
  "vite": "^8.0.3"
@@ -133,6 +133,33 @@
133
133
  gap: 0;
134
134
  }
135
135
 
136
+ .chat-restore-indicator {
137
+ position: absolute;
138
+ left: 50%;
139
+ bottom: var(--space-4);
140
+ z-index: 3;
141
+ display: inline-flex;
142
+ align-items: center;
143
+ gap: var(--space-2);
144
+ transform: translateX(-50%);
145
+ padding: 6px 10px;
146
+ border: 1px solid var(--border);
147
+ border-radius: var(--radius-md);
148
+ background: color-mix(in oklch, var(--surface) 88%, transparent);
149
+ color: var(--text-dim);
150
+ box-shadow: var(--shadow-md);
151
+ font-size: var(--text-xs);
152
+ pointer-events: none;
153
+ }
154
+
155
+ .chat-restore-dot {
156
+ width: 6px;
157
+ height: 6px;
158
+ border-radius: 50%;
159
+ background: var(--accent);
160
+ animation: processDotPulse 1.2s ease-in-out infinite;
161
+ }
162
+
136
163
  /* Inner container provides scrollbar range via its height */
137
164
  .chat-messages.vs-active > .vs-inner {
138
165
  position: relative;
@@ -133,8 +133,10 @@
133
133
  z-index: 2;
134
134
  }
135
135
 
136
- /* Widget: copy rightmost, save left of copy */
137
- .diagram-widget .diagram-save-btn { right: calc(var(--space-2) + 36px); }
136
+ /* Widget: zoom rightmost, copy middle, save leftmost */
137
+ .diagram-widget .diagram-zoom-btn { right: var(--space-2); }
138
+ .diagram-widget .diagram-copy-btn { right: calc(var(--space-2) + 36px); }
139
+ .diagram-widget .diagram-save-btn { right: calc(var(--space-2) + 72px); }
138
140
 
139
141
  /* SVG: zoom rightmost, copy middle, save leftmost */
140
142
  .diagram-svg .diagram-copy-btn { right: calc(var(--space-2) + 36px); }
@@ -189,6 +191,50 @@
189
191
  max-width: 1200px;
190
192
  }
191
193
 
194
+ .diagram-widget-overlay .diagram-overlay-content {
195
+ width: min(1100px, 94vw);
196
+ }
197
+
198
+ .diagram-widget-overlay.maximized .diagram-overlay-content {
199
+ width: min(1500px, 98vw);
200
+ height: min(1000px, 94vh);
201
+ }
202
+
203
+ .diagram-widget-expanded {
204
+ margin: 0;
205
+ }
206
+
207
+ .diagram-widget-expanded iframe {
208
+ min-height: 420px;
209
+ }
210
+
211
+ .diagram-widget-overlay.maximized .diagram-widget-expanded,
212
+ .diagram-widget-overlay.maximized .diagram-widget-expanded iframe {
213
+ height: 100%;
214
+ }
215
+
216
+ .diagram-size-toggle-btn {
217
+ position: absolute;
218
+ top: var(--space-4);
219
+ right: calc(var(--space-4) + 48px);
220
+ width: 40px;
221
+ height: 40px;
222
+ display: flex;
223
+ align-items: center;
224
+ justify-content: center;
225
+ background: var(--surface);
226
+ border: 1px solid var(--border);
227
+ border-radius: 50%;
228
+ color: var(--text);
229
+ font-size: 18px;
230
+ cursor: pointer;
231
+ z-index: 10000;
232
+ }
233
+
234
+ .diagram-size-toggle-btn:hover {
235
+ background: var(--bg);
236
+ }
237
+
192
238
  .diagram-overlay-close {
193
239
  position: absolute;
194
240
  top: var(--space-4);
@@ -0,0 +1 @@
1
+ import{t as e}from"./api-CnBOYa3F.js";export{e as api};