@dotobokuri/fleet-console 1.61.0 → 1.63.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/README.md +2 -1
  2. package/dist/cli.mjs +242 -29
  3. package/dist/client/assets/{_baseUniq-9W447fNf.js → _baseUniq-CVUU389k.js} +1 -1
  4. package/dist/client/assets/{arc-hoitnVWi.js → arc-Fg3WjPoW.js} +1 -1
  5. package/dist/client/assets/{architectureDiagram-Q4EWVU46-DYd58Vfc.js → architectureDiagram-Q4EWVU46-gAB_QWIv.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-DXYQGD6D-kuFqPdP_.js → blockDiagram-DXYQGD6D-DCY_3CSv.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-AHTNJAMY-C7n41zCn.js → c4Diagram-AHTNJAMY-2ai4d9rg.js} +1 -1
  8. package/dist/client/assets/channel-DlA1BRCV.js +1 -0
  9. package/dist/client/assets/{chunk-4BX2VUAB-DrHeb54-.js → chunk-4BX2VUAB-C-sjgNCE.js} +1 -1
  10. package/dist/client/assets/{chunk-4TB4RGXK-DFjT6kwT.js → chunk-4TB4RGXK-Co7w9KaD.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-DxEzuA7W.js → chunk-55IACEB6-Dspr2174.js} +1 -1
  12. package/dist/client/assets/{chunk-EDXVE4YY-aAlF0YEo.js → chunk-EDXVE4YY-UzzG0ax3.js} +1 -1
  13. package/dist/client/assets/{chunk-FMBD7UC4-DwqRMFL1.js → chunk-FMBD7UC4-DKXcUQqJ.js} +1 -1
  14. package/dist/client/assets/{chunk-OYMX7WX6-DCkUlaRi.js → chunk-OYMX7WX6-vW--qrkP.js} +1 -1
  15. package/dist/client/assets/{chunk-QZHKN3VN-B1Dx8Zhl.js → chunk-QZHKN3VN-DyE-yBhf.js} +1 -1
  16. package/dist/client/assets/{chunk-YZCP3GAM-J2bgJmn-.js → chunk-YZCP3GAM-C7LLTO2-.js} +1 -1
  17. package/dist/client/assets/classDiagram-6PBFFD2Q-rBpGSdtk.js +1 -0
  18. package/dist/client/assets/classDiagram-v2-HSJHXN6E-rBpGSdtk.js +1 -0
  19. package/dist/client/assets/clone-_1aYWCbr.js +1 -0
  20. package/dist/client/assets/{cose-bilkent-S5V4N54A-BxzLzyJp.js → cose-bilkent-S5V4N54A-BkDNeJiw.js} +1 -1
  21. package/dist/client/assets/{dagre-KV5264BT-D1ixDJxZ.js → dagre-KV5264BT-DqeN9oF3.js} +1 -1
  22. package/dist/client/assets/{diagram-5BDNPKRD-DZPIz1Pa.js → diagram-5BDNPKRD-BXzt4-3Y.js} +1 -1
  23. package/dist/client/assets/{diagram-G4DWMVQ6-Pbcr-a5H.js → diagram-G4DWMVQ6-DbzDYVOf.js} +1 -1
  24. package/dist/client/assets/{diagram-MMDJMWI5-CBssBmPY.js → diagram-MMDJMWI5-wPQu3o7B.js} +1 -1
  25. package/dist/client/assets/{diagram-TYMM5635-cVQUs6jp.js → diagram-TYMM5635-C-vwFwzf.js} +1 -1
  26. package/dist/client/assets/{erDiagram-SMLLAGMA-ChMSAXos.js → erDiagram-SMLLAGMA-CcukuTgN.js} +1 -1
  27. package/dist/client/assets/{flowDiagram-DWJPFMVM-FEIrU5mu.js → flowDiagram-DWJPFMVM-BT8ZNr2Y.js} +1 -1
  28. package/dist/client/assets/{ganttDiagram-T4ZO3ILL-D6ELHTJY.js → ganttDiagram-T4ZO3ILL-B_wNcZrL.js} +1 -1
  29. package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-DTJ6HgV4.js → gitGraphDiagram-UUTBAWPF-dUwwvDSd.js} +1 -1
  30. package/dist/client/assets/{graph-uscjDdHm.js → graph-C4i_jr7e.js} +1 -1
  31. package/dist/client/assets/index-BXtDpU36.js +465 -0
  32. package/dist/client/assets/index-CLb_APbh.css +1 -0
  33. package/dist/client/assets/{infoDiagram-42DDH7IO-C2AlA___.js → infoDiagram-42DDH7IO-Bf2KPu0t.js} +1 -1
  34. package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-BZGfIhBp.js → ishikawaDiagram-UXIWVN3A-DjHChg2o.js} +1 -1
  35. package/dist/client/assets/{journeyDiagram-VCZTEJTY-DnGNMdvj.js → journeyDiagram-VCZTEJTY-B08epGYF.js} +1 -1
  36. package/dist/client/assets/{kanban-definition-6JOO6SKY-BkuplZGR.js → kanban-definition-6JOO6SKY-BFasXRgc.js} +1 -1
  37. package/dist/client/assets/{layout-BBayH8iU.js → layout-Q_W10VzL.js} +1 -1
  38. package/dist/client/assets/{linear-BQvaHed0.js → linear-Dy4fc5kq.js} +1 -1
  39. package/dist/client/assets/{mermaid.core-CO0f3d6Y.js → mermaid.core-OtTy8N5f.js} +4 -4
  40. package/dist/client/assets/{min-B610GdeY.js → min-DODD7JTz.js} +1 -1
  41. package/dist/client/assets/{mindmap-definition-QFDTVHPH-gwkhgCyj.js → mindmap-definition-QFDTVHPH-DMhpsiYD.js} +1 -1
  42. package/dist/client/assets/{pieDiagram-DEJITSTG-DYU2zgk8.js → pieDiagram-DEJITSTG-C5usaVgs.js} +1 -1
  43. package/dist/client/assets/{quadrantDiagram-34T5L4WZ-B5Vkk65i.js → quadrantDiagram-34T5L4WZ-B-b2NvBz.js} +1 -1
  44. package/dist/client/assets/{requirementDiagram-MS252O5E-D4EcF7kq.js → requirementDiagram-MS252O5E-D6_4jY3n.js} +1 -1
  45. package/dist/client/assets/{sankeyDiagram-XADWPNL6-DFk-RMV4.js → sankeyDiagram-XADWPNL6-B6imEhCV.js} +1 -1
  46. package/dist/client/assets/{sequenceDiagram-FGHM5R23-B-beo9e0.js → sequenceDiagram-FGHM5R23-BRHNnuqK.js} +1 -1
  47. package/dist/client/assets/{stateDiagram-FHFEXIEX-VDT0TOd7.js → stateDiagram-FHFEXIEX-RiIddIHL.js} +1 -1
  48. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-CsHfIgMa.js +1 -0
  49. package/dist/client/assets/{timeline-definition-GMOUNBTQ-By4DMNqG.js → timeline-definition-GMOUNBTQ-BhP14Blt.js} +1 -1
  50. package/dist/client/assets/{vennDiagram-DHZGUBPP-DzlBrijd.js → vennDiagram-DHZGUBPP-CtzwrBNs.js} +1 -1
  51. package/dist/client/assets/{wardley-RL74JXVD-BHSHTMU6.js → wardley-RL74JXVD-TXsee18-.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-NUSXRM2D-COB-cWHQ.js → wardleyDiagram-NUSXRM2D-CrJP7pf7.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-5P7HB3ND-C-GVSBHd.js → xychartDiagram-5P7HB3ND-rB-PigjI.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/fleet-plugins/ledger/routes.mjs +19829 -428
  56. package/dist/fleet-plugins/quota/routes.mjs +213 -15
  57. package/dist/fleet-plugins/scuttlebutt/routes.mjs +226 -26
  58. package/dist/fleet-plugins/terminal/routes.mjs +7324 -5930
  59. package/dist/fleet.mjs +6710 -6046
  60. package/package.json +2 -2
  61. package/dist/client/assets/channel-D2TsEFjE.js +0 -1
  62. package/dist/client/assets/classDiagram-6PBFFD2Q-DhjJiPic.js +0 -1
  63. package/dist/client/assets/classDiagram-v2-HSJHXN6E-DhjJiPic.js +0 -1
  64. package/dist/client/assets/clone-DwVC2-Mi.js +0 -1
  65. package/dist/client/assets/index-DMjY1OQ0.js +0 -465
  66. package/dist/client/assets/index-Ec4RaE0g.css +0 -1
  67. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-wHPBl_p1.js +0 -1
  68. /package/{AGENTS.md → CLAUDE.md} +0 -0
package/README.md CHANGED
@@ -52,6 +52,7 @@ Codex/Fleet Wiki routes preserve the migrated wiki security boundary: Host allow
52
52
  ```bash
53
53
  fleet console
54
54
  fleet console status
55
+ fleet console restart
55
56
  fleet console stop
56
57
 
57
58
  # transitional alias
@@ -81,4 +82,4 @@ pnpm --filter @dotobokuri/fleet-console build
81
82
 
82
83
  `build` emits `dist/fleet.mjs`, `dist/cli.mjs`, `dist/client/`, and `dist/fleet-plugins/terminal/routes.mjs`. There is no external embed step.
83
84
 
84
- See `AGENTS.md` for ownership, token-boundary, and streaming invariants.
85
+ See `CLAUDE.md` for ownership, token-boundary, and streaming invariants.
package/dist/cli.mjs CHANGED
@@ -8,8 +8,8 @@ import { spawn, execFileSync } from 'node:child_process';
8
8
  import process4 from 'node:process';
9
9
  import * as os4 from 'node:os';
10
10
  import os4__default, { tmpdir } from 'node:os';
11
- import crypto5, { createHash, randomUUID } from 'node:crypto';
12
11
  import { builtinModules, createRequire } from 'node:module';
12
+ import crypto5, { createHash, randomUUID } from 'node:crypto';
13
13
  import http from 'node:http';
14
14
  import https from 'node:https';
15
15
  import { mkdtemp, rm, mkdir, readdir, readFile, stat, appendFile, writeFile, rename, realpath, lstat } from 'node:fs/promises';
@@ -289,6 +289,15 @@ var ASCII_FLEET_BANNER = [
289
289
  "\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 ",
290
290
  "\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D "
291
291
  ];
292
+ function readFleetCliRelease() {
293
+ const requireFromHere = createRequire(import.meta.url);
294
+ const pkg = requireFromHere("../package.json");
295
+ const version2 = pkg.version ?? "";
296
+ if (pkg.private === true) {
297
+ return { channel: "local", version: version2 };
298
+ }
299
+ return { channel: "stable", version: version2 };
300
+ }
292
301
  var LOCK_DIR_MODE = 448;
293
302
  var LOCK_FILE_MODE = 384;
294
303
  function createConsoleLock(deps = {}) {
@@ -33762,12 +33771,12 @@ var benchmarks_default = {
33762
33771
  };
33763
33772
  var models_default = {
33764
33773
  version: 1,
33765
- updatedAt: "2026-08-15T00:00:00Z",
33774
+ updatedAt: "2026-08-17T00:00:00Z",
33766
33775
  providers: {
33767
33776
  codex: {
33768
33777
  name: "Codex",
33769
33778
  defaultModel: "gpt-5.6-sol",
33770
- source: "codex app-server model/list (codex-cli 0.147.0, 2026-08-11 \u2014 ultra advertised for sol/sol-wm/terra, luna stops at max) for model/effort/service-tier; contextWindow=272000 is codex debug models context_window/max_context_window (codex-cli 0.146.0, 2026-08-02)",
33779
+ source: "codex app-server model/list (codex-cli 0.147.0, observed 2026-08-11) for model/effort/service-tier; Fleet catalog effort ladders are capped at max because harness launch capabilities are not model rungs; contextWindow=272000 is codex debug models context_window/max_context_window (codex-cli 0.146.0, observed 2026-08-02)",
33771
33780
  models: [
33772
33781
  {
33773
33782
  modelId: "gpt-5.6-sol",
@@ -33781,8 +33790,7 @@ var models_default = {
33781
33790
  "medium",
33782
33791
  "high",
33783
33792
  "xhigh",
33784
- "max",
33785
- "ultra"
33793
+ "max"
33786
33794
  ]
33787
33795
  },
33788
33796
  aliases: [
@@ -33804,8 +33812,7 @@ var models_default = {
33804
33812
  "medium",
33805
33813
  "high",
33806
33814
  "xhigh",
33807
- "max",
33808
- "ultra"
33815
+ "max"
33809
33816
  ]
33810
33817
  },
33811
33818
  aliases: [
@@ -33825,8 +33832,7 @@ var models_default = {
33825
33832
  "medium",
33826
33833
  "high",
33827
33834
  "xhigh",
33828
- "max",
33829
- "ultra"
33835
+ "max"
33830
33836
  ]
33831
33837
  },
33832
33838
  aliases: [
@@ -33848,8 +33854,7 @@ var models_default = {
33848
33854
  "medium",
33849
33855
  "high",
33850
33856
  "xhigh",
33851
- "max",
33852
- "ultra"
33857
+ "max"
33853
33858
  ]
33854
33859
  },
33855
33860
  aliases: [
@@ -34260,6 +34265,115 @@ var models_default = {
34260
34265
  }
34261
34266
  ]
34262
34267
  }
34268
+ },
34269
+ pricing: {
34270
+ source: "openrouter",
34271
+ observedAt: "2026-08-16T00:00:00Z",
34272
+ models: {
34273
+ "openai/gpt-5.6-sol": {
34274
+ inputCostPerToken: 5e-6,
34275
+ outputCostPerToken: 3e-5,
34276
+ cacheReadInputTokenCost: 5e-7,
34277
+ cacheCreationInputTokenCost: 625e-8,
34278
+ aliases: [
34279
+ "gpt-5.6-sol"
34280
+ ]
34281
+ },
34282
+ "openai/gpt-5.6-terra": {
34283
+ inputCostPerToken: 1e-6,
34284
+ outputCostPerToken: 6e-6,
34285
+ cacheReadInputTokenCost: 1e-7,
34286
+ cacheCreationInputTokenCost: 125e-8,
34287
+ aliases: [
34288
+ "gpt-5.6-terra"
34289
+ ]
34290
+ },
34291
+ "openai/gpt-5.6-luna": {
34292
+ inputCostPerToken: 1e-7,
34293
+ outputCostPerToken: 6e-7,
34294
+ cacheReadInputTokenCost: 1e-8,
34295
+ cacheCreationInputTokenCost: 125e-9,
34296
+ aliases: [
34297
+ "gpt-5.6-luna"
34298
+ ]
34299
+ },
34300
+ "x-ai/grok-4.5": {
34301
+ inputCostPerToken: 2e-6,
34302
+ outputCostPerToken: 6e-6,
34303
+ cacheReadInputTokenCost: 3e-7,
34304
+ aliases: [
34305
+ "grok-4.5"
34306
+ ]
34307
+ },
34308
+ "x-ai/grok-4.6": {
34309
+ inputCostPerToken: 2e-6,
34310
+ outputCostPerToken: 6e-6,
34311
+ cacheReadInputTokenCost: 5e-7,
34312
+ aliases: [
34313
+ "grok-4.6"
34314
+ ]
34315
+ },
34316
+ "anthropic/claude-opus-5": {
34317
+ inputCostPerToken: 5e-6,
34318
+ outputCostPerToken: 25e-6,
34319
+ cacheReadInputTokenCost: 5e-7,
34320
+ cacheCreationInputTokenCost: 625e-8,
34321
+ aliases: [
34322
+ "claude-opus-5"
34323
+ ]
34324
+ },
34325
+ "anthropic/claude-fable-5": {
34326
+ inputCostPerToken: 1e-5,
34327
+ outputCostPerToken: 5e-5,
34328
+ cacheReadInputTokenCost: 1e-6,
34329
+ cacheCreationInputTokenCost: 125e-7,
34330
+ aliases: [
34331
+ "claude-fable-5"
34332
+ ]
34333
+ },
34334
+ "moonshotai/kimi-k3": {
34335
+ inputCostPerToken: 3e-6,
34336
+ outputCostPerToken: 15e-6,
34337
+ cacheReadInputTokenCost: 3e-7,
34338
+ aliases: [
34339
+ "k3",
34340
+ "kimi-k3"
34341
+ ]
34342
+ },
34343
+ "qwen/qwen3.8-max": {
34344
+ inputCostPerToken: 2e-6,
34345
+ outputCostPerToken: 6e-6,
34346
+ cacheReadInputTokenCost: 25e-8,
34347
+ cacheCreationInputTokenCost: 25e-7,
34348
+ aliases: [
34349
+ "qwen3.8-max"
34350
+ ]
34351
+ },
34352
+ "deepseek/deepseek-v4-flash": {
34353
+ inputCostPerToken: 14e-8,
34354
+ outputCostPerToken: 28e-8,
34355
+ cacheReadInputTokenCost: 28e-10,
34356
+ aliases: [
34357
+ "deepseek-v4-flash"
34358
+ ]
34359
+ },
34360
+ "deepseek/deepseek-v4-pro": {
34361
+ inputCostPerToken: 435e-9,
34362
+ outputCostPerToken: 87e-8,
34363
+ cacheReadInputTokenCost: 3625e-12,
34364
+ aliases: [
34365
+ "deepseek-v4-pro"
34366
+ ]
34367
+ },
34368
+ "z-ai/glm-5.2": {
34369
+ inputCostPerToken: 14e-7,
34370
+ outputCostPerToken: 44e-7,
34371
+ cacheReadInputTokenCost: 26e-8,
34372
+ aliases: [
34373
+ "glm-5.2"
34374
+ ]
34375
+ }
34376
+ }
34263
34377
  }
34264
34378
  };
34265
34379
  var GATEWAY_PROVIDERS = ["codex", "xai", "cursor", "opencode", "kimi"];
@@ -34269,8 +34383,7 @@ var GATEWAY_REASONING_EFFORTS = [
34269
34383
  "medium",
34270
34384
  "high",
34271
34385
  "xhigh",
34272
- "max",
34273
- "ultra"
34386
+ "max"
34274
34387
  ];
34275
34388
  var GatewayEffortUpstreamModelIdsSchema = external_exports.partialRecord(
34276
34389
  external_exports.enum(GATEWAY_REASONING_EFFORTS),
@@ -34322,6 +34435,18 @@ var GatewayBenchmarksRegistrySchema = external_exports.object({
34322
34435
  sources: external_exports.record(external_exports.string().min(1), GatewayBenchmarkSourceSchema),
34323
34436
  models: external_exports.record(external_exports.string().min(1), GatewayBenchmarkModelEntrySchema)
34324
34437
  }).strict();
34438
+ var GatewayModelPricingSchema = external_exports.object({
34439
+ inputCostPerToken: external_exports.number().nonnegative(),
34440
+ outputCostPerToken: external_exports.number().nonnegative(),
34441
+ cacheReadInputTokenCost: external_exports.number().nonnegative(),
34442
+ cacheCreationInputTokenCost: external_exports.number().nonnegative().optional(),
34443
+ aliases: external_exports.array(external_exports.string().min(1)).min(1)
34444
+ }).strict();
34445
+ var GatewayPricingRegistrySchema = external_exports.object({
34446
+ source: external_exports.literal("openrouter"),
34447
+ observedAt: external_exports.iso.datetime(),
34448
+ models: external_exports.record(external_exports.string().min(1), GatewayModelPricingSchema)
34449
+ }).strict();
34325
34450
  var GatewayModelEntrySchema = external_exports.object({
34326
34451
  modelId: external_exports.string().min(1),
34327
34452
  name: external_exports.string().min(1),
@@ -34352,7 +34477,8 @@ var GatewayModelsRegistrySchema = external_exports.object({
34352
34477
  kimi: GatewayProviderSchema,
34353
34478
  opencode: GatewayProviderSchema,
34354
34479
  xai: GatewayProviderSchema
34355
- }).strict()
34480
+ }).strict(),
34481
+ pricing: GatewayPricingRegistrySchema
34356
34482
  }).strict();
34357
34483
  var UNSUPPORTED_GATEWAY_MODEL_EFFORT = Object.freeze({ supported: false });
34358
34484
  var benchmarksRegistry = parseGatewayBenchmarksRegistry(benchmarks_default);
@@ -34376,6 +34502,15 @@ var registry2 = (() => {
34376
34502
  return parsed;
34377
34503
  })();
34378
34504
  var GATEWAY_MODELS_UPDATED_AT = registry2.updatedAt;
34505
+ registry2.pricing.observedAt;
34506
+ Object.freeze(
34507
+ Object.fromEntries(
34508
+ Object.entries(registry2.pricing.models).map(([modelId, pricing]) => [
34509
+ modelId,
34510
+ Object.freeze({ ...pricing, aliases: Object.freeze([...pricing.aliases]) })
34511
+ ])
34512
+ )
34513
+ );
34379
34514
  Object.entries(benchmarksRegistry.sources).map(([sourceId, source]) => `${sourceId}:${source.observedAt}`).sort().join("|");
34380
34515
  Object.freeze(
34381
34516
  Object.fromEntries(
@@ -34636,8 +34771,7 @@ var ANTHROPIC_EFFORT_RUNGS = /* @__PURE__ */ new Set([
34636
34771
  "medium",
34637
34772
  "high",
34638
34773
  "xhigh",
34639
- "max",
34640
- "ultra"
34774
+ "max"
34641
34775
  ]);
34642
34776
  function freezeGatewayModelEffort(effort) {
34643
34777
  if (!effort?.supported) return UNSUPPORTED_GATEWAY_MODEL_EFFORT;
@@ -35575,6 +35709,7 @@ var CLAUDE_GATEWAY_TURN_KEYS = Object.freeze([
35575
35709
  "allowedTools",
35576
35710
  "disallowedTools",
35577
35711
  "permissionMode",
35712
+ "canUseTool",
35578
35713
  "mcpServers",
35579
35714
  "servedMcpServers",
35580
35715
  "includePartialMessages",
@@ -35590,8 +35725,10 @@ function claudeGatewayLaunchEnv(inherited, options) {
35590
35725
  if (value !== void 0) env[key] = value;
35591
35726
  }
35592
35727
  env.ANTHROPIC_BASE_URL = options.baseUrl;
35593
- env.CLAUDE_CONFIG_DIR = options.configDir;
35594
- env.CLAUDE_SECURESTORAGE_CONFIG_DIR = "";
35728
+ if (options.homeKind !== "shared") {
35729
+ env.CLAUDE_CONFIG_DIR = options.configDir;
35730
+ env.CLAUDE_SECURESTORAGE_CONFIG_DIR = "";
35731
+ }
35595
35732
  env.CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY = "1";
35596
35733
  env.ENABLE_TOOL_SEARCH = "true";
35597
35734
  env.CLAUDE_CODE_AUTO_COMPACT_WINDOW ??= "1000000";
@@ -35606,6 +35743,18 @@ function claudeGatewayModelCache(options) {
35606
35743
  }
35607
35744
 
35608
35745
  // ../../packages/core-agent/src/claude/config-dir.ts
35746
+ function createSharedClaudeConfigHome(configDir) {
35747
+ if (typeof configDir !== "string" || !path18__default.isAbsolute(configDir)) {
35748
+ throw new TypeError("A shared Claude config home requires an absolute config directory path.");
35749
+ }
35750
+ return {
35751
+ path: configDir,
35752
+ async writeModelCache() {
35753
+ },
35754
+ async dispose() {
35755
+ }
35756
+ };
35757
+ }
35609
35758
  async function createIsolatedClaudeConfigDir(tempRoot = tmpdir()) {
35610
35759
  const root = await mkdtemp(path18__default.join(tempRoot, "core-agent-claude-"));
35611
35760
  const cachePath = path18__default.join(root, CLAUDE_GATEWAY_MODEL_CACHE_RELPATH);
@@ -35627,6 +35776,32 @@ async function createIsolatedClaudeConfigDir(tempRoot = tmpdir()) {
35627
35776
  }
35628
35777
  };
35629
35778
  }
35779
+ function readVendorContextUsage(response) {
35780
+ if (typeof response !== "object" || response === null) return null;
35781
+ const usage = response;
35782
+ if (typeof usage.totalTokens !== "number" || typeof usage.maxTokens !== "number") return null;
35783
+ const rows = Array.isArray(usage.categories) ? usage.categories : [];
35784
+ const memory = Array.isArray(usage.memoryFiles) ? usage.memoryFiles : [];
35785
+ const mcp = Array.isArray(usage.mcpTools) ? usage.mcpTools : [];
35786
+ return {
35787
+ total: usage.totalTokens,
35788
+ max: usage.maxTokens,
35789
+ model: typeof usage.model === "string" ? usage.model : "",
35790
+ compactAt: usage.isAutoCompactEnabled === true && typeof usage.autoCompactThreshold === "number" ? usage.autoCompactThreshold : null,
35791
+ categories: rows.flatMap((row) => {
35792
+ const entry = row;
35793
+ return typeof entry?.name === "string" && typeof entry.tokens === "number" ? [{ name: entry.name, tokens: entry.tokens, deferred: entry.isDeferred === true }] : [];
35794
+ }),
35795
+ memoryFiles: memory.flatMap((row) => {
35796
+ const entry = row;
35797
+ return typeof entry?.path === "string" && typeof entry.tokens === "number" ? [{ path: entry.path, tokens: entry.tokens }] : [];
35798
+ }),
35799
+ mcpTools: mcp.flatMap((row) => {
35800
+ const entry = row;
35801
+ return typeof entry?.name === "string" && typeof entry.tokens === "number" ? [{ name: entry.name, server: typeof entry.serverName === "string" ? entry.serverName : "", tokens: entry.tokens }] : [];
35802
+ })
35803
+ };
35804
+ }
35630
35805
  function runVendorQuery(input) {
35631
35806
  const run = query({
35632
35807
  prompt: input.prompt,
@@ -35634,6 +35809,14 @@ function runVendorQuery(input) {
35634
35809
  });
35635
35810
  let closed = false;
35636
35811
  return {
35812
+ async getContextUsage() {
35813
+ if (closed || typeof run.getContextUsage !== "function") return null;
35814
+ try {
35815
+ return readVendorContextUsage(await run.getContextUsage());
35816
+ } catch {
35817
+ return null;
35818
+ }
35819
+ },
35637
35820
  [Symbol.asyncIterator]() {
35638
35821
  const iterator = run[Symbol.asyncIterator]();
35639
35822
  return {
@@ -35662,7 +35845,7 @@ async function createClaudeGatewaySdk(options) {
35662
35845
  const accepted = resolveModels(options.models);
35663
35846
  const catalogModels = accepted.filter((entry) => entry.kind === "catalog").map((entry) => entry.model);
35664
35847
  const inherited = options.env ?? process.env;
35665
- const configDir = await createIsolatedClaudeConfigDir(options.tempRoot);
35848
+ const configDir = options.home?.kind === "shared" ? createSharedClaudeConfigHome(options.home.configDir) : await createIsolatedClaudeConfigDir(options.tempRoot);
35666
35849
  let disposed = false;
35667
35850
  let active = null;
35668
35851
  const sdk = {
@@ -35677,19 +35860,27 @@ async function createClaudeGatewaySdk(options) {
35677
35860
  }
35678
35861
  const model = resolveTurnModel(turn.model, accepted);
35679
35862
  await configDir.writeModelCache({ baseUrl, models: catalogModels, fetchedAt: Date.now() });
35680
- const env = claudeGatewayLaunchEnv(inherited, { baseUrl, configDir: configDir.path });
35863
+ const env = claudeGatewayLaunchEnv(inherited, {
35864
+ baseUrl,
35865
+ configDir: configDir.path,
35866
+ homeKind: options.home?.kind === "shared" ? "shared" : "isolated"
35867
+ });
35681
35868
  const run = runVendorQuery({
35682
35869
  prompt: turn.prompt,
35683
35870
  options: {
35684
35871
  env,
35685
35872
  model,
35686
35873
  ...turn.systemPrompt === void 0 ? {} : { systemPrompt: vendorSystemPrompt(turn.systemPrompt) },
35687
- // 패키지가 스스로 지어내는 지시는 없다. systemPrompt는 호출자가 것을 그대로 옮긴
35688
- // 것뿐이고, 주지 않으면 아무것도 붙지 않는다. `settingSources: []`는 사용자·프로젝트 설정과
35689
- // CLAUDE.md를 끄고, `strictMcpConfig`는 그와 별개인 ambient .mcp.json을 막는다 — 둘 다
35690
- // 세워야 호출자가 쓰지 않은 지시가 새지 않는다.
35691
- settingSources: [],
35692
- strictMcpConfig: true,
35874
+ // 패키지가 스스로 지어내는 지시는 없다 여기 실리는 것은 전부 호출자가 고른 것이고,
35875
+ // 고르지 않으면 아무것도 붙지 않는다. 기본값이 규율을 구조로 만든다:
35876
+ // `settingSources: []`가 사용자·프로젝트 설정과 CLAUDE.md를 끄고, `strictMcpConfig`가
35877
+ // 그와 별개인 ambient .mcp.json·플러그인 MCP를 막는다.
35878
+ settingSources: options.settingSources ? [...options.settingSources] : [],
35879
+ strictMcpConfig: options.allowAmbientMcpServers !== true,
35880
+ // 플러그인의 MCP 선언은 읽지 않는다 — 좌표는 호출자가 이미 소유한다.
35881
+ ...options.plugins && options.plugins.length > 0 ? { plugins: options.plugins.map((plugin) => ({ type: "local", path: plugin.path, skipMcpDiscovery: true })) } : {},
35882
+ // `--settings`와 같은 자리다. flag 소스로 병합되므로 사용자·프로젝트 설정을 대체하지 않는다.
35883
+ ...options.skillOverrides && Object.keys(options.skillOverrides).length > 0 ? { settings: { skillOverrides: { ...options.skillOverrides } } } : {},
35693
35884
  ...turn.effort === void 0 ? {} : { effort: turn.effort },
35694
35885
  ...turn.cwd === void 0 ? {} : { cwd: turn.cwd },
35695
35886
  ...turn.resume === void 0 ? {} : { resume: turn.resume },
@@ -35699,6 +35890,7 @@ async function createClaudeGatewaySdk(options) {
35699
35890
  ...turn.allowedTools === void 0 ? {} : { allowedTools: [...turn.allowedTools] },
35700
35891
  ...turn.disallowedTools === void 0 ? {} : { disallowedTools: [...turn.disallowedTools] },
35701
35892
  ...turn.permissionMode === void 0 ? {} : { permissionMode: turn.permissionMode },
35893
+ ...turn.canUseTool === void 0 ? {} : { canUseTool: vendorCanUseTool(turn.canUseTool) },
35702
35894
  ...turn.mcpServers === void 0 && turn.servedMcpServers === void 0 ? {} : { mcpServers: { ...turn.mcpServers, ...vendorServedMcpServers(turn.servedMcpServers) } },
35703
35895
  ...turn.includePartialMessages === void 0 ? {} : { includePartialMessages: turn.includePartialMessages },
35704
35896
  ...turn.abortController === void 0 ? {} : { abortController: turn.abortController },
@@ -35725,7 +35917,8 @@ async function createClaudeGatewaySdk(options) {
35725
35917
  } finally {
35726
35918
  release();
35727
35919
  }
35728
- }
35920
+ },
35921
+ getContextUsage: () => run.getContextUsage()
35729
35922
  };
35730
35923
  active = tracked;
35731
35924
  return tracked;
@@ -35794,6 +35987,22 @@ function resolveTurnModel(requested, accepted) {
35794
35987
  }
35795
35988
  return entry.id;
35796
35989
  }
35990
+ function vendorCanUseTool(canUseTool) {
35991
+ return async (toolName, input, options) => {
35992
+ try {
35993
+ const decision = await canUseTool(toolName, input, {
35994
+ toolUseId: typeof options.toolUseID === "string" ? options.toolUseID : "",
35995
+ signal: options.signal instanceof AbortSignal ? options.signal : new AbortController().signal
35996
+ });
35997
+ if (decision.behavior === "allow") {
35998
+ return decision.updatedInput === void 0 ? { behavior: "allow", updatedInput: input } : { behavior: "allow", updatedInput: { ...decision.updatedInput } };
35999
+ }
36000
+ return { behavior: "deny", message: decision.message };
36001
+ } catch (error51) {
36002
+ return { behavior: "deny", message: error51 instanceof Error ? error51.message : String(error51) };
36003
+ }
36004
+ };
36005
+ }
35797
36006
  function vendorSystemPrompt(systemPrompt) {
35798
36007
  const text = systemPrompt?.text;
35799
36008
  if (typeof text !== "string" || text.length === 0) {
@@ -42076,7 +42285,6 @@ function createConsoleStalePolicy(deps = {}) {
42076
42285
  // core/host/console-lifecycle.ts
42077
42286
  var FIXED_HOST = "127.0.0.1";
42078
42287
  var HELP_BANNER_INDENT = " ";
42079
- var DEFAULT_HELP_RELEASE = "local";
42080
42288
  var CONSOLE_HOOK_COMMANDS = /* @__PURE__ */ new Set(["capture-session", "turn-start", "turn-end", "background-report", "background-spawn", "background-stop", "attention", "auto-name"]);
42081
42289
  function parseConsoleCliMode(argv) {
42082
42290
  if (argv.length === 0) return "start";
@@ -42119,7 +42327,8 @@ function parseConsoleHookCommand(argv) {
42119
42327
  }
42120
42328
  function buildConsoleHelpText(options = {}) {
42121
42329
  const colorEnabled = resolveColorEnabled(options);
42122
- const subtitle = `Fleet Console \xB7 ${options.release ?? DEFAULT_HELP_RELEASE}`;
42330
+ const release = options.release ?? formatConsoleHelpRelease();
42331
+ const subtitle = `Fleet Console \xB7 ${release}`;
42123
42332
  const lines = [
42124
42333
  ...ASCII_FLEET_BANNER.map(
42125
42334
  (line, index) => `${HELP_BANNER_INDENT}${paint(GRADIENT_COLORS[index] ?? FLEET_COMMAND, line, colorEnabled)}`
@@ -42152,6 +42361,10 @@ function buildConsoleHelpText(options = {}) {
42152
42361
  const text = lines.join("\n");
42153
42362
  return colorEnabled ? text : stripAnsi(text);
42154
42363
  }
42364
+ function formatConsoleHelpRelease() {
42365
+ const release = readFleetCliRelease();
42366
+ return `${release.version} \xB7 ${release.channel}`;
42367
+ }
42155
42368
  function createConsoleDaemonLifecycle(deps = {}) {
42156
42369
  const env = deps.env ?? process4.env;
42157
42370
  const childEnv = env.FLEET_CONSOLE_NO_SYSTEM_CA === "1" ? env : withNodeSystemCa(env);
@@ -1 +1 @@
1
- import{aW as L,bs as ln,aG as A,aU as P,aF as W,bt as gn,bu as dn,bv as hn,bw as z,bx as pn,bn as An,by as m,aX as N,b0 as U,b3 as T,bz as _n,a_ as on,bA as wn,bq as On,aH as V,bo as vn,bB as I}from"./mermaid.core-CO0f3d6Y.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||L(n)&&ln(n)==Pn}function yn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,H=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return yn(n,k)+"";if(x(n))return H?H.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function Rn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function In(n,r,e){return r===r?Rn(n,r,e):cn(n,Tn,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&In(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Ln=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Ln.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fn=/\\(\\)?/g,Gn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Fn,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Gn(Dn(n))}function R(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[R(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var K=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(K&&n&&n[K])}function Kr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Hn=Object.prototype,Kn=Hn.propertyIsEnumerable,q=Object.getOwnPropertySymbols,qn=q?function(n){return n==null?[]:(n=Object(n),en(q(n),function(r){return Kn.call(n,r)}))}:Bn;function Zn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function Z(n){return Zn(n,M,qn)}var Xn="__lodash_hash_undefined__";function Yn(n){return this.__data__.set(n,Xn),this}function Jn(n){return this.__data__.has(n)}function y(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}y.prototype.add=y.prototype.push=Yn;y.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new y:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Qn(r,function(O,v){if(!tn(o,v)&&(p===O||f(p,O,e,i,t)))return o.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",X=P?P.prototype:void 0,S=X?X.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(S)return S.call(n)==S.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=Z(n),a=u.length,h=Z(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],v=r[d];if(i)var D=s?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(D===void 0?O===v||f(O,v,e,i,t):D)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var b=n.constructor,E=r.constructor;b!=E&&"constructor"in n&&"constructor"in r&&!(typeof b=="function"&&b instanceof b&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,Y="[object Arguments]",J="[object Array]",c="[object Object]",wr=Object.prototype,Q=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==Y?c:a,h=h==Y?c:h;var g=a==c,l=h==c,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function F(n,r,e,i,f){return n===r?!0:n==null||r==null||!L(n)&&!L(r)?n!==n&&r!==r:Or(n,r,e,i,F,f)}var vr=1,Pr=2;function yr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?F(h,a,vr|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function br(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=br(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||yr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=R(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Rr(n,r){return n!=null&&Tr(n,r,cr)}var Ir=1,Sr=2;function Lr(n,r){return $(n)&&sn(r)?un(R(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Rr(e,n):F(r,i,Ir|Sr)}}function xr(n){return function(r){return r?.[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(R(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Lr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&vn(n,r,M)}function Fr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var G=Fr(Cr);function Gr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?En:G;return e(n,Gr(r))}function Dr(n,r){var e=[];return G(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Xr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,G)}var Nr=1/0,Ur=I&&1/C(new I([,-0]))[1]==Nr?function(n){return new I(n)}:bn,Br=200;function Yr(n,r,e){var i=-1,f=Sn,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new y}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{G as a,Kr as b,an as c,yn as d,rn as e,Zn as f,qn as g,En as h,x as i,Z as j,M as k,Yr as l,Zr as m,qr as n,cn as o,Gr as p,Cr as q,Xr as r,Bn as s,Tr as t,j as u,R as v,nn as w,Rr as x,Dn as y};
1
+ import{aW as L,bs as ln,aG as A,aU as P,aF as W,bt as gn,bu as dn,bv as hn,bw as z,bx as pn,bn as An,by as m,aX as N,b0 as U,b3 as T,bz as _n,a_ as on,bA as wn,bq as On,aH as V,bo as vn,bB as I}from"./mermaid.core-OtTy8N5f.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||L(n)&&ln(n)==Pn}function yn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,H=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return yn(n,k)+"";if(x(n))return H?H.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function bn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function Rn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function In(n,r,e){return r===r?Rn(n,r,e):cn(n,Tn,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&In(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Ln=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Ln.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fn=/\\(\\)?/g,Gn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Fn,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Gn(Dn(n))}function R(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[R(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var K=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(K&&n&&n[K])}function Kr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Hn=Object.prototype,Kn=Hn.propertyIsEnumerable,q=Object.getOwnPropertySymbols,qn=q?function(n){return n==null?[]:(n=Object(n),en(q(n),function(r){return Kn.call(n,r)}))}:Bn;function Zn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function Z(n){return Zn(n,M,qn)}var Xn="__lodash_hash_undefined__";function Yn(n){return this.__data__.set(n,Xn),this}function Jn(n){return this.__data__.has(n)}function y(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}y.prototype.add=y.prototype.push=Yn;y.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new y:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Qn(r,function(O,v){if(!tn(o,v)&&(p===O||f(p,O,e,i,t)))return o.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",X=P?P.prototype:void 0,S=X?X.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(S)return S.call(n)==S.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=Z(n),a=u.length,h=Z(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],v=r[d];if(i)var D=s?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(D===void 0?O===v||f(O,v,e,i,t):D)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var b=n.constructor,E=r.constructor;b!=E&&"constructor"in n&&"constructor"in r&&!(typeof b=="function"&&b instanceof b&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,Y="[object Arguments]",J="[object Array]",c="[object Object]",wr=Object.prototype,Q=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==Y?c:a,h=h==Y?c:h;var g=a==c,l=h==c,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function F(n,r,e,i,f){return n===r?!0:n==null||r==null||!L(n)&&!L(r)?n!==n&&r!==r:Or(n,r,e,i,F,f)}var vr=1,Pr=2;function yr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?F(h,a,vr|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function br(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=br(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||yr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=R(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Rr(n,r){return n!=null&&Tr(n,r,cr)}var Ir=1,Sr=2;function Lr(n,r){return $(n)&&sn(r)?un(R(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Rr(e,n):F(r,i,Ir|Sr)}}function xr(n){return function(r){return r?.[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(R(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Lr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&vn(n,r,M)}function Fr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var G=Fr(Cr);function Gr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?En:G;return e(n,Gr(r))}function Dr(n,r){var e=[];return G(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Xr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,G)}var Nr=1/0,Ur=I&&1/C(new I([,-0]))[1]==Nr?function(n){return new I(n)}:bn,Br=200;function Yr(n,r,e){var i=-1,f=Sn,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new y}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{G as a,Kr as b,an as c,yn as d,rn as e,Zn as f,qn as g,En as h,x as i,Z as j,M as k,Yr as l,Zr as m,qr as n,cn as o,Gr as p,Cr as q,Xr as r,Bn as s,Tr as t,j as u,R as v,nn as w,Rr as x,Dn as y};
@@ -1 +1 @@
1
- import{$ as ln,a0 as an,a1 as G,a2 as q,a3 as z,a4 as un,a5 as y,a6 as tn,a7 as K,a8 as _,a9 as rn,aa as o,ab as on,ac as sn,ad as fn}from"./mermaid.core-CO0f3d6Y.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,B,a){var O=I-l,i=D-h,n=B-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function V(l,h,I,D,v,A,B){var a=l-I,O=h-D,i=(B?A:-A)/K(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,C=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*K(on(0,T*T*R-P*P)),$=(P*g-m*S)/R,j=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=$-C,e=j-t,r=w-C,F=p-t;return x*x+e*e>r*r+F*F&&($=w,j=p),{cx:$,cy:j,x01:-n,y01:-d,x11:$*(v/T-1),y11:j*(v/T-1)}}function hn(){var l=cn,h=yn,I=z(0),D=null,v=gn,A=dn,B=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,C=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(C>tn-y)a.moveTo(s*G(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*G(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=C,S=C,$=B.apply(this,arguments)/2,j=$>y&&(D?+D.apply(this,arguments):K(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(j>y){var F=sn(j/u*q($)),L=sn(j/s*q($));(P-=F*2)>y?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(S-=L*2)>y?(L*=t?1:-1,m+=L,g-=L):(S=0,m=g=(f+c)/2)}var H=s*G(m),J=s*q(m),M=u*G(T),N=u*q(T);if(w>y){var Q=s*G(g),U=s*q(g),W=u*G(R),X=u*q(R),E;if(C<an)if(E=pn(H,J,W,X,Q,U,M,N)){var Y=H-E[0],Z=J-E[1],b=Q-E[0],k=U-E[1],nn=1/q(fn((Y*b+Z*k)/(K(Y*Y+Z*Z)*K(b*b+k*k)))/2),en=K(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,m,g,!t)):a.moveTo(H,J),!(u>y)||!(P>y)?a.lineTo(M,N):p>y?(e=V(M,N,Q,U,u,-p,t),r=V(H,J,W,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[G(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:z(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:z(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{$ as ln,a0 as an,a1 as G,a2 as q,a3 as z,a4 as un,a5 as y,a6 as tn,a7 as K,a8 as _,a9 as rn,aa as o,ab as on,ac as sn,ad as fn}from"./mermaid.core-OtTy8N5f.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,B,a){var O=I-l,i=D-h,n=B-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function V(l,h,I,D,v,A,B){var a=l-I,O=h-D,i=(B?A:-A)/K(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,C=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*K(on(0,T*T*R-P*P)),$=(P*g-m*S)/R,j=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=$-C,e=j-t,r=w-C,F=p-t;return x*x+e*e>r*r+F*F&&($=w,j=p),{cx:$,cy:j,x01:-n,y01:-d,x11:$*(v/T-1),y11:j*(v/T-1)}}function hn(){var l=cn,h=yn,I=z(0),D=null,v=gn,A=dn,B=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,C=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(C>tn-y)a.moveTo(s*G(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*G(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=C,S=C,$=B.apply(this,arguments)/2,j=$>y&&(D?+D.apply(this,arguments):K(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(j>y){var F=sn(j/u*q($)),L=sn(j/s*q($));(P-=F*2)>y?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(S-=L*2)>y?(L*=t?1:-1,m+=L,g-=L):(S=0,m=g=(f+c)/2)}var H=s*G(m),J=s*q(m),M=u*G(T),N=u*q(T);if(w>y){var Q=s*G(g),U=s*q(g),W=u*G(R),X=u*q(R),E;if(C<an)if(E=pn(H,J,W,X,Q,U,M,N)){var Y=H-E[0],Z=J-E[1],b=Q-E[0],k=U-E[1],nn=1/q(fn((Y*b+Z*k)/(K(Y*Y+Z*Z)*K(b*b+k*k)))/2),en=K(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,m,g,!t)):a.moveTo(H,J),!(u>y)||!(P>y)?a.lineTo(M,N):p>y?(e=V(M,N,Q,U,u,-p,t),r=V(H,J,W,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[G(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:z(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:z(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};