@dotobokuri/fleet-console 1.71.0 → 1.72.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 (67) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.md +13 -0
  3. package/dist/cli.mjs +437 -350
  4. package/dist/client/assets/{_baseUniq--GYoaiDn.js → _baseUniq-D_AjNlwO.js} +1 -1
  5. package/dist/client/assets/{arc-ioTPutEb.js → arc-DiscagS3.js} +1 -1
  6. package/dist/client/assets/{architectureDiagram-Q4EWVU46-DLfH6cdt.js → architectureDiagram-Q4EWVU46-PGPwULb9.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-DXYQGD6D-ZM6X_dlD.js → blockDiagram-DXYQGD6D-DLexJaxZ.js} +1 -1
  8. package/dist/client/assets/{c4Diagram-AHTNJAMY-DDPTnZGS.js → c4Diagram-AHTNJAMY-D9Ye73ny.js} +1 -1
  9. package/dist/client/assets/channel-CR5OWwKU.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-0ShpcAto.js → chunk-4BX2VUAB-B7YgJYL4.js} +1 -1
  11. package/dist/client/assets/{chunk-4TB4RGXK-CvMAl5bA.js → chunk-4TB4RGXK-CEEQcTWi.js} +1 -1
  12. package/dist/client/assets/{chunk-55IACEB6-CgV8t6TS.js → chunk-55IACEB6-B8AcnGT7.js} +1 -1
  13. package/dist/client/assets/{chunk-EDXVE4YY-DQkbYjs9.js → chunk-EDXVE4YY-DjZ88S2h.js} +1 -1
  14. package/dist/client/assets/{chunk-FMBD7UC4-D4Pm3UM-.js → chunk-FMBD7UC4-io3C2TDz.js} +1 -1
  15. package/dist/client/assets/{chunk-OYMX7WX6-BrWIgOQ6.js → chunk-OYMX7WX6-s0DPD-0B.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-BC-GEuDl.js → chunk-QZHKN3VN-DGcrSXIn.js} +1 -1
  17. package/dist/client/assets/{chunk-YZCP3GAM-Dst--QPc.js → chunk-YZCP3GAM-Dp1DewA_.js} +1 -1
  18. package/dist/client/assets/classDiagram-6PBFFD2Q-BxfrF-vv.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-HSJHXN6E-BxfrF-vv.js +1 -0
  20. package/dist/client/assets/clone-BH8tX1wM.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-D87Ru6Nw.js → cose-bilkent-S5V4N54A-D9PZkL8M.js} +1 -1
  22. package/dist/client/assets/{dagre-KV5264BT-CUG8AIPS.js → dagre-KV5264BT-M-8Bl0QN.js} +1 -1
  23. package/dist/client/assets/{diagram-5BDNPKRD-DrhhXUdy.js → diagram-5BDNPKRD-CbFVI18N.js} +1 -1
  24. package/dist/client/assets/{diagram-G4DWMVQ6-DgGQFVlD.js → diagram-G4DWMVQ6-Bofydoge.js} +1 -1
  25. package/dist/client/assets/{diagram-MMDJMWI5-DEyFyzNg.js → diagram-MMDJMWI5-BZQV1jqh.js} +1 -1
  26. package/dist/client/assets/{diagram-TYMM5635-ari8AKd5.js → diagram-TYMM5635-v_pX67fP.js} +1 -1
  27. package/dist/client/assets/{erDiagram-SMLLAGMA-Aywt-vx8.js → erDiagram-SMLLAGMA-DA8k24I7.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-DWJPFMVM-FO46vDh_.js → flowDiagram-DWJPFMVM-CA3Jm5mj.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-T4ZO3ILL-C0m3r6C5.js → ganttDiagram-T4ZO3ILL-B6YPlixu.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-CTUKGfIc.js → gitGraphDiagram-UUTBAWPF-3BjoRhTq.js} +1 -1
  31. package/dist/client/assets/{graph-PzhNFXt_.js → graph-CjQR1bpo.js} +1 -1
  32. package/dist/client/assets/index-B21kBRWF.js +467 -0
  33. package/dist/client/assets/{index-Bcc3Exng.css → index-DKMT7UVt.css} +1 -1
  34. package/dist/client/assets/{infoDiagram-42DDH7IO-CFry6eYn.js → infoDiagram-42DDH7IO-Cz8NXcwy.js} +1 -1
  35. package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-BBJvVjTh.js → ishikawaDiagram-UXIWVN3A-dJiEc4oW.js} +1 -1
  36. package/dist/client/assets/{journeyDiagram-VCZTEJTY-glHJeITG.js → journeyDiagram-VCZTEJTY-D0e9gSNl.js} +1 -1
  37. package/dist/client/assets/{kanban-definition-6JOO6SKY-Dp7IjAmS.js → kanban-definition-6JOO6SKY-DJ-tyN1D.js} +1 -1
  38. package/dist/client/assets/{layout-PhtOMDDE.js → layout-By8oq65c.js} +1 -1
  39. package/dist/client/assets/{linear-B3pjuRWl.js → linear-Bgvt1y1F.js} +1 -1
  40. package/dist/client/assets/{mermaid.core-DDurtDWt.js → mermaid.core-BzUsxrJd.js} +4 -4
  41. package/dist/client/assets/{min-ZS3oLuaq.js → min-C5LKMAsm.js} +1 -1
  42. package/dist/client/assets/{mindmap-definition-QFDTVHPH-D67iQI4K.js → mindmap-definition-QFDTVHPH-BVEgUjPO.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-DEJITSTG-B95nftHb.js → pieDiagram-DEJITSTG-H6ERErU1.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-34T5L4WZ-BbBVDSwm.js → quadrantDiagram-34T5L4WZ-B3Y2XYCJ.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-MS252O5E-Dbtcs04o.js → requirementDiagram-MS252O5E-NgcHrVQM.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-XADWPNL6-BuqmxYyX.js → sankeyDiagram-XADWPNL6-DtmwsCxU.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-FGHM5R23-DmLihX3U.js → sequenceDiagram-FGHM5R23-Rd0S2w1n.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-FHFEXIEX-D3Z_iYXj.js → stateDiagram-FHFEXIEX-Cpag_fk7.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-Cbjujcp-.js +1 -0
  50. package/dist/client/assets/{timeline-definition-GMOUNBTQ-witmATQr.js → timeline-definition-GMOUNBTQ-C8yS2XLP.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-DHZGUBPP-BDI4z0F-.js → vennDiagram-DHZGUBPP-Bj7SvZFm.js} +1 -1
  52. package/dist/client/assets/{wardley-RL74JXVD-oYmBD5eO.js → wardley-RL74JXVD-DZhhw2v9.js} +1 -1
  53. package/dist/client/assets/{wardleyDiagram-NUSXRM2D-DhnyRjSq.js → wardleyDiagram-NUSXRM2D-DgpBbIN3.js} +1 -1
  54. package/dist/client/assets/{xychartDiagram-5P7HB3ND-DUY-bU_6.js → xychartDiagram-5P7HB3ND-CUq82Sal.js} +1 -1
  55. package/dist/client/index.html +2 -2
  56. package/dist/fleet-plugins/ledger/routes.mjs +103 -16
  57. package/dist/fleet-plugins/quota/routes.mjs +662 -148
  58. package/dist/fleet-plugins/scuttlebutt/routes.mjs +103 -16
  59. package/dist/fleet-plugins/terminal/routes.mjs +1394 -488
  60. package/dist/fleet.mjs +3468 -1329
  61. package/package.json +1 -1
  62. package/dist/client/assets/channel-BvAoE0IP.js +0 -1
  63. package/dist/client/assets/classDiagram-6PBFFD2Q-BeVFxENS.js +0 -1
  64. package/dist/client/assets/classDiagram-v2-HSJHXN6E-BeVFxENS.js +0 -1
  65. package/dist/client/assets/clone-TnYsvJuQ.js +0 -1
  66. package/dist/client/assets/index-DkOT93yC.js +0 -467
  67. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-BbUn16lr.js +0 -1
@@ -17863,6 +17863,11 @@ var REASONING_EFFORTS = [
17863
17863
  new Map(
17864
17864
  REASONING_EFFORTS.map((effort, index) => [effort, index])
17865
17865
  );
17866
+ var CLAUDE_CLIENT_IDENTITY_SENTENCES = [
17867
+ "You are Claude Code, Anthropic's official CLI for Claude.",
17868
+ "You are a Claude agent, built on Anthropic's Claude Agent SDK."
17869
+ ];
17870
+ Math.max(...CLAUDE_CLIENT_IDENTITY_SENTENCES.map((sentence) => sentence.length)) + 16;
17866
17871
  var benchmarks_default = {
17867
17872
  version: 2,
17868
17873
  sources: {
@@ -18080,8 +18085,48 @@ var benchmarks_default = {
18080
18085
  };
18081
18086
  var models_default = {
18082
18087
  version: 1,
18083
- updatedAt: "2026-08-21T00:00:00Z",
18088
+ updatedAt: "2026-08-22T00:00:00Z",
18084
18089
  providers: {
18090
+ antigravity: {
18091
+ name: "Antigravity",
18092
+ defaultModel: "gemini-3.7-flash",
18093
+ source: "live POST https://daily-cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels read with the credential the Antigravity CLI (agy 1.1.18) owns, 2026-08-22; the same read reported defaultAgentModelId gemini-3.7-flash-high and a deprecatedModelIds entry mapping gemini-3.1-pro-high to gemini-pro-agent, and a live streamGenerateContent probe on that date confirmed gemini-3.1-pro-high is refused with INVALID_ARGUMENT while gemini-pro-agent answers. Effort spelling was measured per model on one fixed prompt: gemini-3.7-flash-tiered honours generationConfig.thinkingConfig.thinkingLevel (343 / 407 / 434 reasoning tokens at low / medium / high) so its ladder is a request field, while Gemini 3.1 Pro encodes the rung in the wire id. thinkingLevel accepts low, medium, and high only: minimal and max are both refused. Claude and GPT-OSS models are served by the same subscription but are deliberately not exposed here",
18094
+ models: [
18095
+ {
18096
+ modelId: "gemini-3.7-flash",
18097
+ name: "Gemini-3.7-Flash",
18098
+ capabilityClass: "light",
18099
+ providerModelId: "gemini-3.7-flash-tiered",
18100
+ contextWindow: 1048576,
18101
+ effort: {
18102
+ supported: true,
18103
+ levels: [
18104
+ "low",
18105
+ "medium",
18106
+ "high"
18107
+ ]
18108
+ }
18109
+ },
18110
+ {
18111
+ modelId: "gemini-3.1-pro",
18112
+ name: "Gemini-3.1-Pro",
18113
+ capabilityClass: "flagship",
18114
+ providerModelId: "gemini-3.1-pro-low",
18115
+ contextWindow: 1048576,
18116
+ effort: {
18117
+ supported: true,
18118
+ levels: [
18119
+ "low",
18120
+ "high"
18121
+ ],
18122
+ upstreamModelIds: {
18123
+ low: "gemini-3.1-pro-low",
18124
+ high: "gemini-pro-agent"
18125
+ }
18126
+ }
18127
+ }
18128
+ ]
18129
+ },
18085
18130
  codex: {
18086
18131
  name: "Codex",
18087
18132
  defaultModel: "gpt-5.6-sol",
@@ -18491,7 +18536,7 @@ var models_default = {
18491
18536
  {
18492
18537
  modelId: "composer-2.5",
18493
18538
  name: "Composer-2.5",
18494
- capabilityClass: "flagship",
18539
+ capabilityClass: "standard",
18495
18540
  quotaScope: "auto",
18496
18541
  contextWindow: 2e5,
18497
18542
  benchmarkKey: "composer-2.5"
@@ -18499,9 +18544,11 @@ var models_default = {
18499
18544
  {
18500
18545
  modelId: "composer-2.5-fast",
18501
18546
  name: "Composer-2.5-Fast",
18502
- capabilityClass: "light",
18547
+ capabilityClass: "standard",
18548
+ variantOf: "composer-2.5",
18503
18549
  quotaScope: "auto",
18504
- contextWindow: 2e5
18550
+ contextWindow: 2e5,
18551
+ benchmarkKey: "composer-2.5"
18505
18552
  },
18506
18553
  {
18507
18554
  modelId: "grok-4.5",
@@ -18523,7 +18570,8 @@ var models_default = {
18523
18570
  {
18524
18571
  modelId: "grok-4.5-fast",
18525
18572
  name: "Grok-4.5-Fast",
18526
- capabilityClass: "light",
18573
+ capabilityClass: "flagship",
18574
+ variantOf: "grok-4.5",
18527
18575
  quotaScope: "auto",
18528
18576
  contextWindow: 256e3,
18529
18577
  effort: {
@@ -18534,7 +18582,8 @@ var models_default = {
18534
18582
  "high"
18535
18583
  ],
18536
18584
  upstreamModelIdTemplate: "cursor-grok-4.5-{effort}-fast"
18537
- }
18585
+ },
18586
+ benchmarkKey: "grok-4.5"
18538
18587
  },
18539
18588
  {
18540
18589
  modelId: "grok-4.6",
@@ -18557,7 +18606,8 @@ var models_default = {
18557
18606
  {
18558
18607
  modelId: "grok-4.6-fast",
18559
18608
  name: "Grok-4.6-Fast",
18560
- capabilityClass: "light",
18609
+ capabilityClass: "flagship",
18610
+ variantOf: "grok-4.6",
18561
18611
  quotaScope: "auto",
18562
18612
  contextWindow: 256e3,
18563
18613
  effort: {
@@ -18569,7 +18619,8 @@ var models_default = {
18569
18619
  "xhigh"
18570
18620
  ],
18571
18621
  upstreamModelIdTemplate: "cursor-grok-4.6-{effort}-fast"
18572
- }
18622
+ },
18623
+ benchmarkKey: "grok-4.6"
18573
18624
  },
18574
18625
  {
18575
18626
  modelId: "claude-opus-5",
@@ -18954,7 +19005,7 @@ var models_default = {
18954
19005
  {
18955
19006
  modelId: "grok-composer-2.5-fast",
18956
19007
  name: "Grok-Composer-2.5-Fast",
18957
- capabilityClass: "light",
19008
+ capabilityClass: "standard",
18958
19009
  wire: "responses",
18959
19010
  contextWindow: 2e5
18960
19011
  }
@@ -19071,7 +19122,7 @@ var models_default = {
19071
19122
  }
19072
19123
  }
19073
19124
  };
19074
- var GATEWAY_PROVIDERS = ["codex", "xai", "cursor", "opencode", "kimi"];
19125
+ var GATEWAY_PROVIDERS = ["codex", "xai", "cursor", "opencode", "antigravity", "kimi"];
19075
19126
  var GATEWAY_MODEL_WIRES = ["anthropic", "responses", "chat-completions"];
19076
19127
  var GATEWAY_REASONING_EFFORTS = [
19077
19128
  "low",
@@ -19149,6 +19200,14 @@ var GatewayModelEntrySchema = external_exports.object({
19149
19200
  benchmarkKey: external_exports.string().min(1).optional(),
19150
19201
  description: external_exports.string().min(1).optional(),
19151
19202
  providerModelId: external_exports.string().min(1).optional(),
19203
+ /**
19204
+ * The catalog entry this one is a serving variant of, when the provider gives
19205
+ * the variant its own wire id and `providerModelId` is therefore unavailable
19206
+ * as the lineage link. Pure provenance: it names a sibling `modelId` in the
19207
+ * same provider and never reaches a request, so the variant keeps sending its
19208
+ * own upstream id while inheriting the base's class and benchmark evidence.
19209
+ */
19210
+ variantOf: external_exports.string().min(1).optional(),
19152
19211
  serviceTier: external_exports.literal("priority").optional(),
19153
19212
  cursorMaxMode: external_exports.literal(true).optional(),
19154
19213
  quotaScope: external_exports.enum(GATEWAY_QUOTA_SCOPES).optional(),
@@ -19171,7 +19230,8 @@ var GatewayModelsRegistrySchema = external_exports.object({
19171
19230
  cursor: GatewayProviderSchema,
19172
19231
  kimi: GatewayProviderSchema,
19173
19232
  opencode: GatewayProviderSchema,
19174
- xai: GatewayProviderSchema
19233
+ xai: GatewayProviderSchema,
19234
+ antigravity: GatewayProviderSchema
19175
19235
  }).strict(),
19176
19236
  pricing: GatewayPricingRegistrySchema
19177
19237
  }).strict();
@@ -19197,7 +19257,6 @@ var registry2 = (() => {
19197
19257
  return parsed;
19198
19258
  })();
19199
19259
  registry2.updatedAt;
19200
- registry2.pricing.observedAt;
19201
19260
  var GATEWAY_MODEL_PRICING = Object.freeze(
19202
19261
  Object.fromEntries(
19203
19262
  Object.entries(registry2.pricing.models).map(([modelId, pricing]) => [
@@ -19347,8 +19406,24 @@ function validateRegistry(value) {
19347
19406
  if (!isRoutingAlias && !model.capabilityClass) {
19348
19407
  throw new Error(`Gateway model is missing a capability class: ${provider}/${model.modelId}`);
19349
19408
  }
19350
- if (!isRoutingAlias && model.providerModelId) {
19351
- const base = definition.models.find((candidate) => candidate.modelId === model.providerModelId);
19409
+ const catalogEntry = (modelId) => modelId === void 0 ? void 0 : definition.models.find((candidate) => candidate.modelId === modelId);
19410
+ const providerLinkedBase = isRoutingAlias ? void 0 : catalogEntry(model.providerModelId);
19411
+ if (model.variantOf && providerLinkedBase && model.providerModelId !== model.variantOf) {
19412
+ throw new Error(`Gateway service-tier sibling names two different bases: ${provider}/${model.modelId}`);
19413
+ }
19414
+ if (model.variantOf === model.modelId) {
19415
+ throw new Error(`Gateway service-tier sibling names itself as its base: ${provider}/${model.modelId}`);
19416
+ }
19417
+ const baseModelId = isRoutingAlias ? void 0 : model.variantOf ?? model.providerModelId;
19418
+ if (baseModelId) {
19419
+ const base = catalogEntry(baseModelId);
19420
+ if (model.variantOf && !base) {
19421
+ throw new Error(`Gateway service-tier sibling names an unknown base: ${provider}/${model.modelId} -> ${model.variantOf}`);
19422
+ }
19423
+ const baseLink = base && base.modelId !== base.providerModelId ? base.variantOf ?? base.providerModelId : base?.variantOf;
19424
+ if (base && catalogEntry(baseLink)) {
19425
+ throw new Error(`Gateway service-tier sibling names another sibling as its base: ${provider}/${model.modelId}`);
19426
+ }
19352
19427
  if (base && base.capabilityClass !== model.capabilityClass) {
19353
19428
  throw new Error(`Gateway service-tier sibling class differs from its base: ${provider}/${model.modelId}`);
19354
19429
  }
@@ -19389,8 +19464,8 @@ function validateRegistry(value) {
19389
19464
  }
19390
19465
  }
19391
19466
  if (exactModelIds) {
19392
- if (provider !== "cursor") {
19393
- throw new Error(`Gateway effort model id overrides are only supported by Cursor: ${provider}/${model.modelId}`);
19467
+ if (provider !== "cursor" && provider !== "antigravity") {
19468
+ throw new Error(`Gateway effort model id overrides are only supported by Cursor and Antigravity: ${provider}/${model.modelId}`);
19394
19469
  }
19395
19470
  for (const effort of Object.keys(exactModelIds)) {
19396
19471
  if (!model.effort.levels.includes(effort)) {
@@ -19440,6 +19515,18 @@ process.platform === "win32" ? constants.O_RDONLY : constants.O_RDONLY | constan
19440
19515
  platform: process.platform,
19441
19516
  homedir: os2.homedir,
19442
19517
  env: process.env});
19518
+ var HOUR_MS = 36e5;
19519
+ var WEEK_MS = 7 * 24 * HOUR_MS;
19520
+ var SESSION_MS = 5 * HOUR_MS;
19521
+ var BUCKETS = Object.freeze({
19522
+ "gemini-5h": { id: "session", label: "Gemini", durationMs: SESSION_MS, reported: true },
19523
+ "gemini-weekly": { id: "weekly", label: "Gemini", durationMs: WEEK_MS, reported: true },
19524
+ "3p-5h": { id: "session", label: "Claude & GPT", durationMs: SESSION_MS, reported: false },
19525
+ "3p-weekly": { id: "weekly", label: "Claude & GPT", durationMs: WEEK_MS, reported: false }
19526
+ });
19527
+ Object.freeze(
19528
+ Object.keys(BUCKETS).filter((bucketId) => BUCKETS[bucketId]?.reported === true)
19529
+ );
19443
19530
  var CURSOR_GREP_RECEIPT_PREFIX = "FLEET_CURSOR_GREP_V2:";
19444
19531
  var CURSOR_GREP_RECEIPT_SCRIPT = String.raw`
19445
19532
  const {spawn}=require("node:child_process");