@dotobokuri/fleet-console 1.59.0 → 1.60.0

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 (68) hide show
  1. package/AGENTS.md +1 -1
  2. package/dist/cli.mjs +12 -2
  3. package/dist/client/assets/{_baseUniq-CKkDoWU8.js → _baseUniq-CA3I-KTP.js} +1 -1
  4. package/dist/client/assets/{arc-CcRdX8oF.js → arc-DOkIWugv.js} +1 -1
  5. package/dist/client/assets/{architectureDiagram-Q4EWVU46-gaFzE1W7.js → architectureDiagram-Q4EWVU46--Z_t3Gn9.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-DXYQGD6D-Bzybih30.js → blockDiagram-DXYQGD6D-CrRA5qvl.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-AHTNJAMY-Dz8bwV9j.js → c4Diagram-AHTNJAMY-DKvbMOAM.js} +1 -1
  8. package/dist/client/assets/channel-Bjfd2afp.js +1 -0
  9. package/dist/client/assets/{chunk-4BX2VUAB-DmgZtGyV.js → chunk-4BX2VUAB-D6wc2KrB.js} +1 -1
  10. package/dist/client/assets/{chunk-4TB4RGXK-DX1WxV3U.js → chunk-4TB4RGXK-B4QvYh7f.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-Bk4b3T9u.js → chunk-55IACEB6-B0VZPoad.js} +1 -1
  12. package/dist/client/assets/{chunk-EDXVE4YY-BzGadfvT.js → chunk-EDXVE4YY-BdHIgvVh.js} +1 -1
  13. package/dist/client/assets/{chunk-FMBD7UC4-44f7YyvW.js → chunk-FMBD7UC4-BAYTd_pU.js} +1 -1
  14. package/dist/client/assets/{chunk-OYMX7WX6-CyUAky9W.js → chunk-OYMX7WX6-DkZ-neug.js} +1 -1
  15. package/dist/client/assets/{chunk-QZHKN3VN-C11OUntR.js → chunk-QZHKN3VN-B5h7E8GE.js} +1 -1
  16. package/dist/client/assets/{chunk-YZCP3GAM-DVTmWawU.js → chunk-YZCP3GAM-COMJ2EwJ.js} +1 -1
  17. package/dist/client/assets/classDiagram-6PBFFD2Q-DgpHvFOU.js +1 -0
  18. package/dist/client/assets/classDiagram-v2-HSJHXN6E-DgpHvFOU.js +1 -0
  19. package/dist/client/assets/clone-sFXqwEZz.js +1 -0
  20. package/dist/client/assets/{cose-bilkent-S5V4N54A-CEatGsZv.js → cose-bilkent-S5V4N54A-JvC7pCqe.js} +1 -1
  21. package/dist/client/assets/{dagre-KV5264BT-DlrgN02H.js → dagre-KV5264BT-jZdVPQcJ.js} +1 -1
  22. package/dist/client/assets/{diagram-5BDNPKRD-BZ3hRO5t.js → diagram-5BDNPKRD-B6-u7AU2.js} +1 -1
  23. package/dist/client/assets/{diagram-G4DWMVQ6-B-izS46x.js → diagram-G4DWMVQ6-CV5G3KNM.js} +1 -1
  24. package/dist/client/assets/{diagram-MMDJMWI5-Cw-wnJGs.js → diagram-MMDJMWI5-ZLrEkNww.js} +1 -1
  25. package/dist/client/assets/{diagram-TYMM5635-BoWnyd4_.js → diagram-TYMM5635-D1tv2JX9.js} +1 -1
  26. package/dist/client/assets/{erDiagram-SMLLAGMA-BUmyXZbP.js → erDiagram-SMLLAGMA-Bta0Mt3t.js} +1 -1
  27. package/dist/client/assets/{flowDiagram-DWJPFMVM-COS3kjS0.js → flowDiagram-DWJPFMVM-C282oRLT.js} +1 -1
  28. package/dist/client/assets/{ganttDiagram-T4ZO3ILL-BTr1fdio.js → ganttDiagram-T4ZO3ILL-D9P4CVIW.js} +1 -1
  29. package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-BkGkaosN.js → gitGraphDiagram-UUTBAWPF-DLQnTjJ2.js} +1 -1
  30. package/dist/client/assets/{graph-DmbgK-mH.js → graph-Cd8Q-8WG.js} +1 -1
  31. package/dist/client/assets/index-B3gusU1E.js +465 -0
  32. package/dist/client/assets/index-_PHObHQ-.css +1 -0
  33. package/dist/client/assets/{infoDiagram-42DDH7IO-B8zI6k1l.js → infoDiagram-42DDH7IO-ClhLpons.js} +1 -1
  34. package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-cIcEzrcK.js → ishikawaDiagram-UXIWVN3A-BDeZ2vOG.js} +1 -1
  35. package/dist/client/assets/{journeyDiagram-VCZTEJTY-DhuabHCk.js → journeyDiagram-VCZTEJTY-DbJhbFKN.js} +1 -1
  36. package/dist/client/assets/{kanban-definition-6JOO6SKY-uHTkqxhX.js → kanban-definition-6JOO6SKY-CYKcE2fE.js} +1 -1
  37. package/dist/client/assets/{layout-Cfgk_duA.js → layout-CuAgTRkn.js} +1 -1
  38. package/dist/client/assets/{linear-BKvV0sr5.js → linear-3EL9MakS.js} +1 -1
  39. package/dist/client/assets/{mermaid.core-DozmrCuG.js → mermaid.core-7qKaxHEA.js} +4 -4
  40. package/dist/client/assets/{min-ke46otlW.js → min-4mJsdKjT.js} +1 -1
  41. package/dist/client/assets/{mindmap-definition-QFDTVHPH-d7xzxhzf.js → mindmap-definition-QFDTVHPH-B-Zve2OH.js} +1 -1
  42. package/dist/client/assets/{pieDiagram-DEJITSTG-C4S9Jy5A.js → pieDiagram-DEJITSTG-DlsdbAii.js} +1 -1
  43. package/dist/client/assets/{quadrantDiagram-34T5L4WZ-CoQnj3kv.js → quadrantDiagram-34T5L4WZ-Cb4h0xwt.js} +1 -1
  44. package/dist/client/assets/{requirementDiagram-MS252O5E-CdopMDtg.js → requirementDiagram-MS252O5E-CZNGYqJt.js} +1 -1
  45. package/dist/client/assets/{sankeyDiagram-XADWPNL6-DdR4zdh4.js → sankeyDiagram-XADWPNL6-DeVSGR6W.js} +1 -1
  46. package/dist/client/assets/{sequenceDiagram-FGHM5R23-NeYZWVQm.js → sequenceDiagram-FGHM5R23-Te7TkLIe.js} +1 -1
  47. package/dist/client/assets/{stateDiagram-FHFEXIEX-D0CQGKV_.js → stateDiagram-FHFEXIEX-Be-0oYyv.js} +1 -1
  48. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-BnQ2lBhr.js +1 -0
  49. package/dist/client/assets/{timeline-definition-GMOUNBTQ-Bz2b3nfQ.js → timeline-definition-GMOUNBTQ-DQyUgC-K.js} +1 -1
  50. package/dist/client/assets/{vennDiagram-DHZGUBPP-CVO2Ja80.js → vennDiagram-DHZGUBPP-BrArIWI8.js} +1 -1
  51. package/dist/client/assets/{wardley-RL74JXVD-Ba_GKs5u.js → wardley-RL74JXVD-6-sWm8kk.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-NUSXRM2D-yP3xvrPy.js → wardleyDiagram-NUSXRM2D-C4MvFXGS.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-5P7HB3ND-BLSs6w4C.js → xychartDiagram-5P7HB3ND-CGrtjhmr.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/fleet-plugins/file-explorer/routes.mjs +132 -13
  56. package/dist/fleet-plugins/ledger/routes.mjs +223 -16
  57. package/dist/fleet-plugins/quota/routes.mjs +33 -2
  58. package/dist/fleet-plugins/scuttlebutt/routes.mjs +5 -5
  59. package/dist/fleet-plugins/terminal/routes.mjs +411 -61
  60. package/dist/fleet.mjs +274 -43
  61. package/package.json +1 -1
  62. package/dist/client/assets/channel-CAhLkt5l.js +0 -1
  63. package/dist/client/assets/classDiagram-6PBFFD2Q-BSvLoE2t.js +0 -1
  64. package/dist/client/assets/classDiagram-v2-HSJHXN6E-BSvLoE2t.js +0 -1
  65. package/dist/client/assets/clone-o26VS_sk.js +0 -1
  66. package/dist/client/assets/index-C-3spb_b.js +0 -465
  67. package/dist/client/assets/index-FU1PGEfG.css +0 -1
  68. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-hM1GV37r.js +0 -1
@@ -19160,10 +19160,12 @@ function parseClaudeCredentialJson(raw, method) {
19160
19160
  const oauth = credentialRecord(parsed.claudeAiOauth);
19161
19161
  const accessToken = optionalString(oauth?.accessToken ?? parsed.accessToken);
19162
19162
  if (!accessToken) return null;
19163
+ const rateLimitTier = optionalString(oauth?.rateLimitTier ?? parsed.rateLimitTier);
19163
19164
  return {
19164
19165
  accessToken,
19165
19166
  expiresAt: optionalEpoch(oauth?.expiresAt ?? parsed.expiresAt),
19166
19167
  subscriptionType: optionalString(oauth?.subscriptionType ?? parsed.subscriptionType),
19168
+ ...rateLimitTier === void 0 ? {} : { rateLimitTier },
19167
19169
  method
19168
19170
  };
19169
19171
  } catch {
@@ -19192,6 +19194,13 @@ async function resolveClaudeCredentials(deps) {
19192
19194
  }
19193
19195
  }
19194
19196
  var CLAUDE_SESSION_MS = 5 * HOUR_MS;
19197
+ function formatClaudePlan(subscriptionType, rateLimitTier) {
19198
+ const base = titleCase(subscriptionType);
19199
+ if (!base) return void 0;
19200
+ if (base.toLowerCase() !== "max" || typeof rateLimitTier !== "string") return base;
19201
+ const match = /\d+x/i.exec(rateLimitTier.trim());
19202
+ return match ? titleCase(`${base} ${match[0].toLowerCase()}`) : base;
19203
+ }
19195
19204
  function firstClaudePercent(row) {
19196
19205
  for (const key of ["percent", "used_percentage", "utilization"]) {
19197
19206
  const value = row[key];
@@ -19275,7 +19284,7 @@ async function fetchClaudeUsage(deps = {}) {
19275
19284
  return {
19276
19285
  status: "ok",
19277
19286
  method: credentials.method,
19278
- plan: titleCase(credentials.subscriptionType),
19287
+ plan: formatClaudePlan(credentials.subscriptionType, credentials.rateLimitTier),
19279
19288
  windows: parsed.windows,
19280
19289
  fetchedAt: (deps.now ?? Date.now)()
19281
19290
  };
@@ -19320,6 +19329,17 @@ function codexWindow(source, fallbackId) {
19320
19329
  ...period ? { period } : {}
19321
19330
  };
19322
19331
  }
19332
+ function formatCodexPlan(value) {
19333
+ if (typeof value !== "string") return titleCase(value);
19334
+ switch (value.trim().toLowerCase()) {
19335
+ case "prolite":
19336
+ return "Pro 5x";
19337
+ case "pro":
19338
+ return "Pro 20x";
19339
+ default:
19340
+ return titleCase(value);
19341
+ }
19342
+ }
19323
19343
  function parseCodexUsage(payload) {
19324
19344
  const root = object2(payload) ?? {};
19325
19345
  const rateLimit = object2(root.rate_limit) ?? {};
@@ -19328,7 +19348,7 @@ function parseCodexUsage(payload) {
19328
19348
  codexWindow(rateLimit.primary_window, "session"),
19329
19349
  codexWindow(rateLimit.secondary_window, "weekly")
19330
19350
  ].filter((row) => row !== null),
19331
- plan: titleCase(root.plan_type)
19351
+ plan: formatCodexPlan(root.plan_type)
19332
19352
  };
19333
19353
  }
19334
19354
  function parseResetCredits(payload) {
@@ -19788,6 +19808,7 @@ async function resolveXaiCliAuth(deps, options = {}) {
19788
19808
  }
19789
19809
  }
19790
19810
  var XAI_CLI_CREDITS_URL = "https://cli-chat-proxy.grok.com/v1/billing?format=credits";
19811
+ var XAI_CLI_SETTINGS_URL = "https://cli-chat-proxy.grok.com/v1/settings";
19791
19812
  var WEEKLY_PERIOD = "USAGE_PERIOD_TYPE_WEEKLY";
19792
19813
  function parseXaiCredits(payload) {
19793
19814
  const root = object2(payload);
@@ -19821,6 +19842,9 @@ function parseXaiCredits(payload) {
19821
19842
  }
19822
19843
  };
19823
19844
  }
19845
+ function parseXaiPlan(payload) {
19846
+ return titleCase(object2(payload)?.subscription_tier_display);
19847
+ }
19824
19848
  function creditsHeaders(credentials) {
19825
19849
  const headers = {
19826
19850
  Accept: "application/json",
@@ -19865,8 +19889,15 @@ async function fetchXaiUsage(deps = {}) {
19865
19889
  }
19866
19890
  const parsed = parseXaiCredits(payload);
19867
19891
  if (!parsed) throw new Error("Grok returned an unsupported quota response");
19892
+ let plan;
19893
+ try {
19894
+ plan = parseXaiPlan(await getJson(fetchImpl, XAI_CLI_SETTINGS_URL, creditsHeaders(credentials)));
19895
+ } catch {
19896
+ plan = void 0;
19897
+ }
19868
19898
  return {
19869
19899
  status: "ok",
19900
+ ...plan ? { plan } : {},
19870
19901
  windows: parsed.status === "weekly" ? [parsed.window] : [],
19871
19902
  fetchedAt: now()
19872
19903
  };
@@ -20177,7 +20177,7 @@ fact interesting without decorating it.`,
20177
20177
  function buildAdmiralSystemPrompt(name, species, bearing, voice) {
20178
20178
  return `# Role
20179
20179
 
20180
- You are Admiral ${name}, ${species} of the Fleet Console \u2014 a small uniformed bird
20180
+ You are Aide ${name}, ${species} of the Fleet Console \u2014 a small uniformed bird
20181
20181
  who keeps station at the scuttlebutt, where the crew stops for water and quick
20182
20182
  talk. You are a quick-answer companion, not a coding agent: no project of your
20183
20183
  own, no repository checked out, no engineering assignment. You are who the crew
@@ -20186,9 +20186,9 @@ asks when they want an answer without leaving what they were doing.
20186
20186
  # Who you are talking to
20187
20187
 
20188
20188
  The person writing to you is the Admiral of the Navy \u2014 your commanding officer,
20189
- several ranks above you. Take their questions as orders and answer promptly,
20190
- with the respect the rank is due. Writing in Korean, call them \uB300\uC6D0\uC218 \u2014 never
20191
- \uC81C\uB3C5, which is your own rank and would put them at your level.
20189
+ far above you. Take their questions as orders and answer promptly, with the
20190
+ respect the rank is due. Writing in Korean, call them \uB300\uC6D0\uC218 \u2014 never
20191
+ \uBD80\uAD00, which is your own rank and would put them at your level.
20192
20192
 
20193
20193
  Respect means telling them the truth: if they are working from a wrong premise,
20194
20194
  say so and give them the right one. Never flatter, and never claim to have
@@ -20221,7 +20221,7 @@ ${bearing}
20221
20221
  is not reading this machine; the ban above is about local files and shell,
20222
20222
  nothing else.
20223
20223
  - Never describe yourself as a coding assistant or list software-engineering
20224
- capabilities. If asked what you are, answer as Admiral ${name} in a sentence or two.
20224
+ capabilities. If asked what you are, answer as Aide ${name} in a sentence or two.
20225
20225
  - Never disclose file paths, directory names, session identifiers, or details of
20226
20226
  the machine you run on.
20227
20227
  - Answer in the language the user wrote in.