@dotobokuri/fleet-console 1.59.0 → 1.61.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.
- package/AGENTS.md +1 -1
- package/dist/cli.d.ts +13 -2
- package/dist/cli.mjs +126 -30
- package/dist/client/assets/{_baseUniq-CKkDoWU8.js → _baseUniq-9W447fNf.js} +1 -1
- package/dist/client/assets/{arc-CcRdX8oF.js → arc-hoitnVWi.js} +1 -1
- package/dist/client/assets/{architectureDiagram-Q4EWVU46-gaFzE1W7.js → architectureDiagram-Q4EWVU46-DYd58Vfc.js} +1 -1
- package/dist/client/assets/{blockDiagram-DXYQGD6D-Bzybih30.js → blockDiagram-DXYQGD6D-kuFqPdP_.js} +1 -1
- package/dist/client/assets/{c4Diagram-AHTNJAMY-Dz8bwV9j.js → c4Diagram-AHTNJAMY-C7n41zCn.js} +1 -1
- package/dist/client/assets/channel-D2TsEFjE.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-DmgZtGyV.js → chunk-4BX2VUAB-DrHeb54-.js} +1 -1
- package/dist/client/assets/{chunk-4TB4RGXK-DX1WxV3U.js → chunk-4TB4RGXK-DFjT6kwT.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Bk4b3T9u.js → chunk-55IACEB6-DxEzuA7W.js} +1 -1
- package/dist/client/assets/{chunk-EDXVE4YY-BzGadfvT.js → chunk-EDXVE4YY-aAlF0YEo.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-44f7YyvW.js → chunk-FMBD7UC4-DwqRMFL1.js} +1 -1
- package/dist/client/assets/{chunk-OYMX7WX6-CyUAky9W.js → chunk-OYMX7WX6-DCkUlaRi.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-C11OUntR.js → chunk-QZHKN3VN-B1Dx8Zhl.js} +1 -1
- package/dist/client/assets/{chunk-YZCP3GAM-DVTmWawU.js → chunk-YZCP3GAM-J2bgJmn-.js} +1 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-DhjJiPic.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-DhjJiPic.js +1 -0
- package/dist/client/assets/clone-DwVC2-Mi.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-CEatGsZv.js → cose-bilkent-S5V4N54A-BxzLzyJp.js} +1 -1
- package/dist/client/assets/{dagre-KV5264BT-DlrgN02H.js → dagre-KV5264BT-D1ixDJxZ.js} +1 -1
- package/dist/client/assets/{diagram-5BDNPKRD-BZ3hRO5t.js → diagram-5BDNPKRD-DZPIz1Pa.js} +1 -1
- package/dist/client/assets/{diagram-G4DWMVQ6-B-izS46x.js → diagram-G4DWMVQ6-Pbcr-a5H.js} +1 -1
- package/dist/client/assets/{diagram-MMDJMWI5-Cw-wnJGs.js → diagram-MMDJMWI5-CBssBmPY.js} +1 -1
- package/dist/client/assets/{diagram-TYMM5635-BoWnyd4_.js → diagram-TYMM5635-cVQUs6jp.js} +1 -1
- package/dist/client/assets/{erDiagram-SMLLAGMA-BUmyXZbP.js → erDiagram-SMLLAGMA-ChMSAXos.js} +1 -1
- package/dist/client/assets/{flowDiagram-DWJPFMVM-COS3kjS0.js → flowDiagram-DWJPFMVM-FEIrU5mu.js} +1 -1
- package/dist/client/assets/{ganttDiagram-T4ZO3ILL-BTr1fdio.js → ganttDiagram-T4ZO3ILL-D6ELHTJY.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-BkGkaosN.js → gitGraphDiagram-UUTBAWPF-DTJ6HgV4.js} +1 -1
- package/dist/client/assets/{graph-DmbgK-mH.js → graph-uscjDdHm.js} +1 -1
- package/dist/client/assets/index-DMjY1OQ0.js +465 -0
- package/dist/client/assets/index-Ec4RaE0g.css +1 -0
- package/dist/client/assets/{infoDiagram-42DDH7IO-B8zI6k1l.js → infoDiagram-42DDH7IO-C2AlA___.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-cIcEzrcK.js → ishikawaDiagram-UXIWVN3A-BZGfIhBp.js} +1 -1
- package/dist/client/assets/{journeyDiagram-VCZTEJTY-DhuabHCk.js → journeyDiagram-VCZTEJTY-DnGNMdvj.js} +1 -1
- package/dist/client/assets/{kanban-definition-6JOO6SKY-uHTkqxhX.js → kanban-definition-6JOO6SKY-BkuplZGR.js} +1 -1
- package/dist/client/assets/{layout-Cfgk_duA.js → layout-BBayH8iU.js} +1 -1
- package/dist/client/assets/{linear-BKvV0sr5.js → linear-BQvaHed0.js} +1 -1
- package/dist/client/assets/{mermaid.core-DozmrCuG.js → mermaid.core-CO0f3d6Y.js} +4 -4
- package/dist/client/assets/{min-ke46otlW.js → min-B610GdeY.js} +1 -1
- package/dist/client/assets/{mindmap-definition-QFDTVHPH-d7xzxhzf.js → mindmap-definition-QFDTVHPH-gwkhgCyj.js} +1 -1
- package/dist/client/assets/{pieDiagram-DEJITSTG-C4S9Jy5A.js → pieDiagram-DEJITSTG-DYU2zgk8.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-34T5L4WZ-CoQnj3kv.js → quadrantDiagram-34T5L4WZ-B5Vkk65i.js} +1 -1
- package/dist/client/assets/{requirementDiagram-MS252O5E-CdopMDtg.js → requirementDiagram-MS252O5E-D4EcF7kq.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-XADWPNL6-DdR4zdh4.js → sankeyDiagram-XADWPNL6-DFk-RMV4.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-FGHM5R23-NeYZWVQm.js → sequenceDiagram-FGHM5R23-B-beo9e0.js} +1 -1
- package/dist/client/assets/{stateDiagram-FHFEXIEX-D0CQGKV_.js → stateDiagram-FHFEXIEX-VDT0TOd7.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-wHPBl_p1.js +1 -0
- package/dist/client/assets/{timeline-definition-GMOUNBTQ-Bz2b3nfQ.js → timeline-definition-GMOUNBTQ-By4DMNqG.js} +1 -1
- package/dist/client/assets/{vennDiagram-DHZGUBPP-CVO2Ja80.js → vennDiagram-DHZGUBPP-DzlBrijd.js} +1 -1
- package/dist/client/assets/{wardley-RL74JXVD-Ba_GKs5u.js → wardley-RL74JXVD-BHSHTMU6.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-NUSXRM2D-yP3xvrPy.js → wardleyDiagram-NUSXRM2D-COB-cWHQ.js} +1 -1
- package/dist/client/assets/{xychartDiagram-5P7HB3ND-BLSs6w4C.js → xychartDiagram-5P7HB3ND-C-GVSBHd.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/fleet-plugins/file-explorer/routes.mjs +132 -13
- package/dist/fleet-plugins/ledger/routes.mjs +223 -16
- package/dist/fleet-plugins/quota/routes.mjs +33 -2
- package/dist/fleet-plugins/scuttlebutt/routes.mjs +5 -5
- package/dist/fleet-plugins/terminal/routes.mjs +653 -79
- package/dist/fleet.mjs +383 -66
- package/package.json +1 -1
- package/dist/client/assets/channel-CAhLkt5l.js +0 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-BSvLoE2t.js +0 -1
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-BSvLoE2t.js +0 -1
- package/dist/client/assets/clone-o26VS_sk.js +0 -1
- package/dist/client/assets/index-C-3spb_b.js +0 -465
- package/dist/client/assets/index-FU1PGEfG.css +0 -1
- 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:
|
|
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:
|
|
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
|
|
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
|
-
|
|
20190
|
-
|
|
20191
|
-
\
|
|
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
|
|
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.
|