@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
@@ -17492,6 +17492,11 @@ function hasClaudeOneMillionMarker(modelId) {
17492
17492
  function stripClaudeOneMillionMarker(modelId) {
17493
17493
  return modelId.replace(/\[1m\]$/i, "");
17494
17494
  }
17495
+ var CLAUDE_CLIENT_IDENTITY_SENTENCES = [
17496
+ "You are Claude Code, Anthropic's official CLI for Claude.",
17497
+ "You are a Claude agent, built on Anthropic's Claude Agent SDK."
17498
+ ];
17499
+ Math.max(...CLAUDE_CLIENT_IDENTITY_SENTENCES.map((sentence) => sentence.length)) + 16;
17495
17500
  var benchmarks_default = {
17496
17501
  version: 2,
17497
17502
  sources: {
@@ -17709,8 +17714,48 @@ var benchmarks_default = {
17709
17714
  };
17710
17715
  var models_default = {
17711
17716
  version: 1,
17712
- updatedAt: "2026-08-21T00:00:00Z",
17717
+ updatedAt: "2026-08-22T00:00:00Z",
17713
17718
  providers: {
17719
+ antigravity: {
17720
+ name: "Antigravity",
17721
+ defaultModel: "gemini-3.7-flash",
17722
+ 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",
17723
+ models: [
17724
+ {
17725
+ modelId: "gemini-3.7-flash",
17726
+ name: "Gemini-3.7-Flash",
17727
+ capabilityClass: "light",
17728
+ providerModelId: "gemini-3.7-flash-tiered",
17729
+ contextWindow: 1048576,
17730
+ effort: {
17731
+ supported: true,
17732
+ levels: [
17733
+ "low",
17734
+ "medium",
17735
+ "high"
17736
+ ]
17737
+ }
17738
+ },
17739
+ {
17740
+ modelId: "gemini-3.1-pro",
17741
+ name: "Gemini-3.1-Pro",
17742
+ capabilityClass: "flagship",
17743
+ providerModelId: "gemini-3.1-pro-low",
17744
+ contextWindow: 1048576,
17745
+ effort: {
17746
+ supported: true,
17747
+ levels: [
17748
+ "low",
17749
+ "high"
17750
+ ],
17751
+ upstreamModelIds: {
17752
+ low: "gemini-3.1-pro-low",
17753
+ high: "gemini-pro-agent"
17754
+ }
17755
+ }
17756
+ }
17757
+ ]
17758
+ },
17714
17759
  codex: {
17715
17760
  name: "Codex",
17716
17761
  defaultModel: "gpt-5.6-sol",
@@ -18120,7 +18165,7 @@ var models_default = {
18120
18165
  {
18121
18166
  modelId: "composer-2.5",
18122
18167
  name: "Composer-2.5",
18123
- capabilityClass: "flagship",
18168
+ capabilityClass: "standard",
18124
18169
  quotaScope: "auto",
18125
18170
  contextWindow: 2e5,
18126
18171
  benchmarkKey: "composer-2.5"
@@ -18128,9 +18173,11 @@ var models_default = {
18128
18173
  {
18129
18174
  modelId: "composer-2.5-fast",
18130
18175
  name: "Composer-2.5-Fast",
18131
- capabilityClass: "light",
18176
+ capabilityClass: "standard",
18177
+ variantOf: "composer-2.5",
18132
18178
  quotaScope: "auto",
18133
- contextWindow: 2e5
18179
+ contextWindow: 2e5,
18180
+ benchmarkKey: "composer-2.5"
18134
18181
  },
18135
18182
  {
18136
18183
  modelId: "grok-4.5",
@@ -18152,7 +18199,8 @@ var models_default = {
18152
18199
  {
18153
18200
  modelId: "grok-4.5-fast",
18154
18201
  name: "Grok-4.5-Fast",
18155
- capabilityClass: "light",
18202
+ capabilityClass: "flagship",
18203
+ variantOf: "grok-4.5",
18156
18204
  quotaScope: "auto",
18157
18205
  contextWindow: 256e3,
18158
18206
  effort: {
@@ -18163,7 +18211,8 @@ var models_default = {
18163
18211
  "high"
18164
18212
  ],
18165
18213
  upstreamModelIdTemplate: "cursor-grok-4.5-{effort}-fast"
18166
- }
18214
+ },
18215
+ benchmarkKey: "grok-4.5"
18167
18216
  },
18168
18217
  {
18169
18218
  modelId: "grok-4.6",
@@ -18186,7 +18235,8 @@ var models_default = {
18186
18235
  {
18187
18236
  modelId: "grok-4.6-fast",
18188
18237
  name: "Grok-4.6-Fast",
18189
- capabilityClass: "light",
18238
+ capabilityClass: "flagship",
18239
+ variantOf: "grok-4.6",
18190
18240
  quotaScope: "auto",
18191
18241
  contextWindow: 256e3,
18192
18242
  effort: {
@@ -18198,7 +18248,8 @@ var models_default = {
18198
18248
  "xhigh"
18199
18249
  ],
18200
18250
  upstreamModelIdTemplate: "cursor-grok-4.6-{effort}-fast"
18201
- }
18251
+ },
18252
+ benchmarkKey: "grok-4.6"
18202
18253
  },
18203
18254
  {
18204
18255
  modelId: "claude-opus-5",
@@ -18583,7 +18634,7 @@ var models_default = {
18583
18634
  {
18584
18635
  modelId: "grok-composer-2.5-fast",
18585
18636
  name: "Grok-Composer-2.5-Fast",
18586
- capabilityClass: "light",
18637
+ capabilityClass: "standard",
18587
18638
  wire: "responses",
18588
18639
  contextWindow: 2e5
18589
18640
  }
@@ -18700,7 +18751,7 @@ var models_default = {
18700
18751
  }
18701
18752
  }
18702
18753
  };
18703
- var GATEWAY_PROVIDERS = ["codex", "xai", "cursor", "opencode", "kimi"];
18754
+ var GATEWAY_PROVIDERS = ["codex", "xai", "cursor", "opencode", "antigravity", "kimi"];
18704
18755
  var GATEWAY_MODEL_WIRES = ["anthropic", "responses", "chat-completions"];
18705
18756
  var GATEWAY_REASONING_EFFORTS = [
18706
18757
  "low",
@@ -18778,6 +18829,14 @@ var GatewayModelEntrySchema = external_exports.object({
18778
18829
  benchmarkKey: external_exports.string().min(1).optional(),
18779
18830
  description: external_exports.string().min(1).optional(),
18780
18831
  providerModelId: external_exports.string().min(1).optional(),
18832
+ /**
18833
+ * The catalog entry this one is a serving variant of, when the provider gives
18834
+ * the variant its own wire id and `providerModelId` is therefore unavailable
18835
+ * as the lineage link. Pure provenance: it names a sibling `modelId` in the
18836
+ * same provider and never reaches a request, so the variant keeps sending its
18837
+ * own upstream id while inheriting the base's class and benchmark evidence.
18838
+ */
18839
+ variantOf: external_exports.string().min(1).optional(),
18781
18840
  serviceTier: external_exports.literal("priority").optional(),
18782
18841
  cursorMaxMode: external_exports.literal(true).optional(),
18783
18842
  quotaScope: external_exports.enum(GATEWAY_QUOTA_SCOPES).optional(),
@@ -18800,7 +18859,8 @@ var GatewayModelsRegistrySchema = external_exports.object({
18800
18859
  cursor: GatewayProviderSchema,
18801
18860
  kimi: GatewayProviderSchema,
18802
18861
  opencode: GatewayProviderSchema,
18803
- xai: GatewayProviderSchema
18862
+ xai: GatewayProviderSchema,
18863
+ antigravity: GatewayProviderSchema
18804
18864
  }).strict(),
18805
18865
  pricing: GatewayPricingRegistrySchema
18806
18866
  }).strict();
@@ -18826,7 +18886,6 @@ var registry2 = (() => {
18826
18886
  return parsed;
18827
18887
  })();
18828
18888
  var GATEWAY_MODELS_UPDATED_AT = registry2.updatedAt;
18829
- registry2.pricing.observedAt;
18830
18889
  Object.freeze(
18831
18890
  Object.fromEntries(
18832
18891
  Object.entries(registry2.pricing.models).map(([modelId, pricing]) => [
@@ -19015,8 +19074,24 @@ function validateRegistry(value) {
19015
19074
  if (!isRoutingAlias && !model.capabilityClass) {
19016
19075
  throw new Error(`Gateway model is missing a capability class: ${provider}/${model.modelId}`);
19017
19076
  }
19018
- if (!isRoutingAlias && model.providerModelId) {
19019
- const base = definition.models.find((candidate) => candidate.modelId === model.providerModelId);
19077
+ const catalogEntry = (modelId) => modelId === void 0 ? void 0 : definition.models.find((candidate) => candidate.modelId === modelId);
19078
+ const providerLinkedBase = isRoutingAlias ? void 0 : catalogEntry(model.providerModelId);
19079
+ if (model.variantOf && providerLinkedBase && model.providerModelId !== model.variantOf) {
19080
+ throw new Error(`Gateway service-tier sibling names two different bases: ${provider}/${model.modelId}`);
19081
+ }
19082
+ if (model.variantOf === model.modelId) {
19083
+ throw new Error(`Gateway service-tier sibling names itself as its base: ${provider}/${model.modelId}`);
19084
+ }
19085
+ const baseModelId = isRoutingAlias ? void 0 : model.variantOf ?? model.providerModelId;
19086
+ if (baseModelId) {
19087
+ const base = catalogEntry(baseModelId);
19088
+ if (model.variantOf && !base) {
19089
+ throw new Error(`Gateway service-tier sibling names an unknown base: ${provider}/${model.modelId} -> ${model.variantOf}`);
19090
+ }
19091
+ const baseLink = base && base.modelId !== base.providerModelId ? base.variantOf ?? base.providerModelId : base?.variantOf;
19092
+ if (base && catalogEntry(baseLink)) {
19093
+ throw new Error(`Gateway service-tier sibling names another sibling as its base: ${provider}/${model.modelId}`);
19094
+ }
19020
19095
  if (base && base.capabilityClass !== model.capabilityClass) {
19021
19096
  throw new Error(`Gateway service-tier sibling class differs from its base: ${provider}/${model.modelId}`);
19022
19097
  }
@@ -19057,8 +19132,8 @@ function validateRegistry(value) {
19057
19132
  }
19058
19133
  }
19059
19134
  if (exactModelIds) {
19060
- if (provider !== "cursor") {
19061
- throw new Error(`Gateway effort model id overrides are only supported by Cursor: ${provider}/${model.modelId}`);
19135
+ if (provider !== "cursor" && provider !== "antigravity") {
19136
+ throw new Error(`Gateway effort model id overrides are only supported by Cursor and Antigravity: ${provider}/${model.modelId}`);
19062
19137
  }
19063
19138
  for (const effort of Object.keys(exactModelIds)) {
19064
19139
  if (!model.effort.levels.includes(effort)) {
@@ -19159,6 +19234,18 @@ process.platform === "win32" ? constants.O_RDONLY : constants.O_RDONLY | constan
19159
19234
  platform: process.platform,
19160
19235
  homedir: os2.homedir,
19161
19236
  env: process.env});
19237
+ var HOUR_MS = 36e5;
19238
+ var WEEK_MS = 7 * 24 * HOUR_MS;
19239
+ var SESSION_MS = 5 * HOUR_MS;
19240
+ var BUCKETS = Object.freeze({
19241
+ "gemini-5h": { id: "session", label: "Gemini", durationMs: SESSION_MS, reported: true },
19242
+ "gemini-weekly": { id: "weekly", label: "Gemini", durationMs: WEEK_MS, reported: true },
19243
+ "3p-5h": { id: "session", label: "Claude & GPT", durationMs: SESSION_MS, reported: false },
19244
+ "3p-weekly": { id: "weekly", label: "Claude & GPT", durationMs: WEEK_MS, reported: false }
19245
+ });
19246
+ Object.freeze(
19247
+ Object.keys(BUCKETS).filter((bucketId) => BUCKETS[bucketId]?.reported === true)
19248
+ );
19162
19249
  var CURSOR_GREP_RECEIPT_PREFIX = "FLEET_CURSOR_GREP_V2:";
19163
19250
  var CURSOR_GREP_RECEIPT_SCRIPT = String.raw`
19164
19251
  const {spawn}=require("node:child_process");