@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.
- package/README.md +2 -1
- package/dist/cli.mjs +242 -29
- package/dist/client/assets/{_baseUniq-9W447fNf.js → _baseUniq-CVUU389k.js} +1 -1
- package/dist/client/assets/{arc-hoitnVWi.js → arc-Fg3WjPoW.js} +1 -1
- package/dist/client/assets/{architectureDiagram-Q4EWVU46-DYd58Vfc.js → architectureDiagram-Q4EWVU46-gAB_QWIv.js} +1 -1
- package/dist/client/assets/{blockDiagram-DXYQGD6D-kuFqPdP_.js → blockDiagram-DXYQGD6D-DCY_3CSv.js} +1 -1
- package/dist/client/assets/{c4Diagram-AHTNJAMY-C7n41zCn.js → c4Diagram-AHTNJAMY-2ai4d9rg.js} +1 -1
- package/dist/client/assets/channel-DlA1BRCV.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-DrHeb54-.js → chunk-4BX2VUAB-C-sjgNCE.js} +1 -1
- package/dist/client/assets/{chunk-4TB4RGXK-DFjT6kwT.js → chunk-4TB4RGXK-Co7w9KaD.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-DxEzuA7W.js → chunk-55IACEB6-Dspr2174.js} +1 -1
- package/dist/client/assets/{chunk-EDXVE4YY-aAlF0YEo.js → chunk-EDXVE4YY-UzzG0ax3.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DwqRMFL1.js → chunk-FMBD7UC4-DKXcUQqJ.js} +1 -1
- package/dist/client/assets/{chunk-OYMX7WX6-DCkUlaRi.js → chunk-OYMX7WX6-vW--qrkP.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-B1Dx8Zhl.js → chunk-QZHKN3VN-DyE-yBhf.js} +1 -1
- package/dist/client/assets/{chunk-YZCP3GAM-J2bgJmn-.js → chunk-YZCP3GAM-C7LLTO2-.js} +1 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-rBpGSdtk.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-rBpGSdtk.js +1 -0
- package/dist/client/assets/clone-_1aYWCbr.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-BxzLzyJp.js → cose-bilkent-S5V4N54A-BkDNeJiw.js} +1 -1
- package/dist/client/assets/{dagre-KV5264BT-D1ixDJxZ.js → dagre-KV5264BT-DqeN9oF3.js} +1 -1
- package/dist/client/assets/{diagram-5BDNPKRD-DZPIz1Pa.js → diagram-5BDNPKRD-BXzt4-3Y.js} +1 -1
- package/dist/client/assets/{diagram-G4DWMVQ6-Pbcr-a5H.js → diagram-G4DWMVQ6-DbzDYVOf.js} +1 -1
- package/dist/client/assets/{diagram-MMDJMWI5-CBssBmPY.js → diagram-MMDJMWI5-wPQu3o7B.js} +1 -1
- package/dist/client/assets/{diagram-TYMM5635-cVQUs6jp.js → diagram-TYMM5635-C-vwFwzf.js} +1 -1
- package/dist/client/assets/{erDiagram-SMLLAGMA-ChMSAXos.js → erDiagram-SMLLAGMA-CcukuTgN.js} +1 -1
- package/dist/client/assets/{flowDiagram-DWJPFMVM-FEIrU5mu.js → flowDiagram-DWJPFMVM-BT8ZNr2Y.js} +1 -1
- package/dist/client/assets/{ganttDiagram-T4ZO3ILL-D6ELHTJY.js → ganttDiagram-T4ZO3ILL-B_wNcZrL.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-DTJ6HgV4.js → gitGraphDiagram-UUTBAWPF-dUwwvDSd.js} +1 -1
- package/dist/client/assets/{graph-uscjDdHm.js → graph-C4i_jr7e.js} +1 -1
- package/dist/client/assets/index-BXtDpU36.js +465 -0
- package/dist/client/assets/index-CLb_APbh.css +1 -0
- package/dist/client/assets/{infoDiagram-42DDH7IO-C2AlA___.js → infoDiagram-42DDH7IO-Bf2KPu0t.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-BZGfIhBp.js → ishikawaDiagram-UXIWVN3A-DjHChg2o.js} +1 -1
- package/dist/client/assets/{journeyDiagram-VCZTEJTY-DnGNMdvj.js → journeyDiagram-VCZTEJTY-B08epGYF.js} +1 -1
- package/dist/client/assets/{kanban-definition-6JOO6SKY-BkuplZGR.js → kanban-definition-6JOO6SKY-BFasXRgc.js} +1 -1
- package/dist/client/assets/{layout-BBayH8iU.js → layout-Q_W10VzL.js} +1 -1
- package/dist/client/assets/{linear-BQvaHed0.js → linear-Dy4fc5kq.js} +1 -1
- package/dist/client/assets/{mermaid.core-CO0f3d6Y.js → mermaid.core-OtTy8N5f.js} +4 -4
- package/dist/client/assets/{min-B610GdeY.js → min-DODD7JTz.js} +1 -1
- package/dist/client/assets/{mindmap-definition-QFDTVHPH-gwkhgCyj.js → mindmap-definition-QFDTVHPH-DMhpsiYD.js} +1 -1
- package/dist/client/assets/{pieDiagram-DEJITSTG-DYU2zgk8.js → pieDiagram-DEJITSTG-C5usaVgs.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-34T5L4WZ-B5Vkk65i.js → quadrantDiagram-34T5L4WZ-B-b2NvBz.js} +1 -1
- package/dist/client/assets/{requirementDiagram-MS252O5E-D4EcF7kq.js → requirementDiagram-MS252O5E-D6_4jY3n.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-XADWPNL6-DFk-RMV4.js → sankeyDiagram-XADWPNL6-B6imEhCV.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-FGHM5R23-B-beo9e0.js → sequenceDiagram-FGHM5R23-BRHNnuqK.js} +1 -1
- package/dist/client/assets/{stateDiagram-FHFEXIEX-VDT0TOd7.js → stateDiagram-FHFEXIEX-RiIddIHL.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-CsHfIgMa.js +1 -0
- package/dist/client/assets/{timeline-definition-GMOUNBTQ-By4DMNqG.js → timeline-definition-GMOUNBTQ-BhP14Blt.js} +1 -1
- package/dist/client/assets/{vennDiagram-DHZGUBPP-DzlBrijd.js → vennDiagram-DHZGUBPP-CtzwrBNs.js} +1 -1
- package/dist/client/assets/{wardley-RL74JXVD-BHSHTMU6.js → wardley-RL74JXVD-TXsee18-.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-NUSXRM2D-COB-cWHQ.js → wardleyDiagram-NUSXRM2D-CrJP7pf7.js} +1 -1
- package/dist/client/assets/{xychartDiagram-5P7HB3ND-C-GVSBHd.js → xychartDiagram-5P7HB3ND-rB-PigjI.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/fleet-plugins/ledger/routes.mjs +19829 -428
- package/dist/fleet-plugins/quota/routes.mjs +213 -15
- package/dist/fleet-plugins/scuttlebutt/routes.mjs +226 -26
- package/dist/fleet-plugins/terminal/routes.mjs +7324 -5930
- package/dist/fleet.mjs +6710 -6046
- package/package.json +2 -2
- package/dist/client/assets/channel-D2TsEFjE.js +0 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-DhjJiPic.js +0 -1
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-DhjJiPic.js +0 -1
- package/dist/client/assets/clone-DwVC2-Mi.js +0 -1
- package/dist/client/assets/index-DMjY1OQ0.js +0 -465
- package/dist/client/assets/index-Ec4RaE0g.css +0 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-wHPBl_p1.js +0 -1
- /package/{AGENTS.md → CLAUDE.md} +0 -0
|
@@ -17709,12 +17709,12 @@ var benchmarks_default = {
|
|
|
17709
17709
|
};
|
|
17710
17710
|
var models_default = {
|
|
17711
17711
|
version: 1,
|
|
17712
|
-
updatedAt: "2026-08-
|
|
17712
|
+
updatedAt: "2026-08-17T00:00:00Z",
|
|
17713
17713
|
providers: {
|
|
17714
17714
|
codex: {
|
|
17715
17715
|
name: "Codex",
|
|
17716
17716
|
defaultModel: "gpt-5.6-sol",
|
|
17717
|
-
source: "codex app-server model/list (codex-cli 0.147.0, 2026-08-11
|
|
17717
|
+
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)",
|
|
17718
17718
|
models: [
|
|
17719
17719
|
{
|
|
17720
17720
|
modelId: "gpt-5.6-sol",
|
|
@@ -17728,8 +17728,7 @@ var models_default = {
|
|
|
17728
17728
|
"medium",
|
|
17729
17729
|
"high",
|
|
17730
17730
|
"xhigh",
|
|
17731
|
-
"max"
|
|
17732
|
-
"ultra"
|
|
17731
|
+
"max"
|
|
17733
17732
|
]
|
|
17734
17733
|
},
|
|
17735
17734
|
aliases: [
|
|
@@ -17751,8 +17750,7 @@ var models_default = {
|
|
|
17751
17750
|
"medium",
|
|
17752
17751
|
"high",
|
|
17753
17752
|
"xhigh",
|
|
17754
|
-
"max"
|
|
17755
|
-
"ultra"
|
|
17753
|
+
"max"
|
|
17756
17754
|
]
|
|
17757
17755
|
},
|
|
17758
17756
|
aliases: [
|
|
@@ -17772,8 +17770,7 @@ var models_default = {
|
|
|
17772
17770
|
"medium",
|
|
17773
17771
|
"high",
|
|
17774
17772
|
"xhigh",
|
|
17775
|
-
"max"
|
|
17776
|
-
"ultra"
|
|
17773
|
+
"max"
|
|
17777
17774
|
]
|
|
17778
17775
|
},
|
|
17779
17776
|
aliases: [
|
|
@@ -17795,8 +17792,7 @@ var models_default = {
|
|
|
17795
17792
|
"medium",
|
|
17796
17793
|
"high",
|
|
17797
17794
|
"xhigh",
|
|
17798
|
-
"max"
|
|
17799
|
-
"ultra"
|
|
17795
|
+
"max"
|
|
17800
17796
|
]
|
|
17801
17797
|
},
|
|
17802
17798
|
aliases: [
|
|
@@ -18207,6 +18203,115 @@ var models_default = {
|
|
|
18207
18203
|
}
|
|
18208
18204
|
]
|
|
18209
18205
|
}
|
|
18206
|
+
},
|
|
18207
|
+
pricing: {
|
|
18208
|
+
source: "openrouter",
|
|
18209
|
+
observedAt: "2026-08-16T00:00:00Z",
|
|
18210
|
+
models: {
|
|
18211
|
+
"openai/gpt-5.6-sol": {
|
|
18212
|
+
inputCostPerToken: 5e-6,
|
|
18213
|
+
outputCostPerToken: 3e-5,
|
|
18214
|
+
cacheReadInputTokenCost: 5e-7,
|
|
18215
|
+
cacheCreationInputTokenCost: 625e-8,
|
|
18216
|
+
aliases: [
|
|
18217
|
+
"gpt-5.6-sol"
|
|
18218
|
+
]
|
|
18219
|
+
},
|
|
18220
|
+
"openai/gpt-5.6-terra": {
|
|
18221
|
+
inputCostPerToken: 1e-6,
|
|
18222
|
+
outputCostPerToken: 6e-6,
|
|
18223
|
+
cacheReadInputTokenCost: 1e-7,
|
|
18224
|
+
cacheCreationInputTokenCost: 125e-8,
|
|
18225
|
+
aliases: [
|
|
18226
|
+
"gpt-5.6-terra"
|
|
18227
|
+
]
|
|
18228
|
+
},
|
|
18229
|
+
"openai/gpt-5.6-luna": {
|
|
18230
|
+
inputCostPerToken: 1e-7,
|
|
18231
|
+
outputCostPerToken: 6e-7,
|
|
18232
|
+
cacheReadInputTokenCost: 1e-8,
|
|
18233
|
+
cacheCreationInputTokenCost: 125e-9,
|
|
18234
|
+
aliases: [
|
|
18235
|
+
"gpt-5.6-luna"
|
|
18236
|
+
]
|
|
18237
|
+
},
|
|
18238
|
+
"x-ai/grok-4.5": {
|
|
18239
|
+
inputCostPerToken: 2e-6,
|
|
18240
|
+
outputCostPerToken: 6e-6,
|
|
18241
|
+
cacheReadInputTokenCost: 3e-7,
|
|
18242
|
+
aliases: [
|
|
18243
|
+
"grok-4.5"
|
|
18244
|
+
]
|
|
18245
|
+
},
|
|
18246
|
+
"x-ai/grok-4.6": {
|
|
18247
|
+
inputCostPerToken: 2e-6,
|
|
18248
|
+
outputCostPerToken: 6e-6,
|
|
18249
|
+
cacheReadInputTokenCost: 5e-7,
|
|
18250
|
+
aliases: [
|
|
18251
|
+
"grok-4.6"
|
|
18252
|
+
]
|
|
18253
|
+
},
|
|
18254
|
+
"anthropic/claude-opus-5": {
|
|
18255
|
+
inputCostPerToken: 5e-6,
|
|
18256
|
+
outputCostPerToken: 25e-6,
|
|
18257
|
+
cacheReadInputTokenCost: 5e-7,
|
|
18258
|
+
cacheCreationInputTokenCost: 625e-8,
|
|
18259
|
+
aliases: [
|
|
18260
|
+
"claude-opus-5"
|
|
18261
|
+
]
|
|
18262
|
+
},
|
|
18263
|
+
"anthropic/claude-fable-5": {
|
|
18264
|
+
inputCostPerToken: 1e-5,
|
|
18265
|
+
outputCostPerToken: 5e-5,
|
|
18266
|
+
cacheReadInputTokenCost: 1e-6,
|
|
18267
|
+
cacheCreationInputTokenCost: 125e-7,
|
|
18268
|
+
aliases: [
|
|
18269
|
+
"claude-fable-5"
|
|
18270
|
+
]
|
|
18271
|
+
},
|
|
18272
|
+
"moonshotai/kimi-k3": {
|
|
18273
|
+
inputCostPerToken: 3e-6,
|
|
18274
|
+
outputCostPerToken: 15e-6,
|
|
18275
|
+
cacheReadInputTokenCost: 3e-7,
|
|
18276
|
+
aliases: [
|
|
18277
|
+
"k3",
|
|
18278
|
+
"kimi-k3"
|
|
18279
|
+
]
|
|
18280
|
+
},
|
|
18281
|
+
"qwen/qwen3.8-max": {
|
|
18282
|
+
inputCostPerToken: 2e-6,
|
|
18283
|
+
outputCostPerToken: 6e-6,
|
|
18284
|
+
cacheReadInputTokenCost: 25e-8,
|
|
18285
|
+
cacheCreationInputTokenCost: 25e-7,
|
|
18286
|
+
aliases: [
|
|
18287
|
+
"qwen3.8-max"
|
|
18288
|
+
]
|
|
18289
|
+
},
|
|
18290
|
+
"deepseek/deepseek-v4-flash": {
|
|
18291
|
+
inputCostPerToken: 14e-8,
|
|
18292
|
+
outputCostPerToken: 28e-8,
|
|
18293
|
+
cacheReadInputTokenCost: 28e-10,
|
|
18294
|
+
aliases: [
|
|
18295
|
+
"deepseek-v4-flash"
|
|
18296
|
+
]
|
|
18297
|
+
},
|
|
18298
|
+
"deepseek/deepseek-v4-pro": {
|
|
18299
|
+
inputCostPerToken: 435e-9,
|
|
18300
|
+
outputCostPerToken: 87e-8,
|
|
18301
|
+
cacheReadInputTokenCost: 3625e-12,
|
|
18302
|
+
aliases: [
|
|
18303
|
+
"deepseek-v4-pro"
|
|
18304
|
+
]
|
|
18305
|
+
},
|
|
18306
|
+
"z-ai/glm-5.2": {
|
|
18307
|
+
inputCostPerToken: 14e-7,
|
|
18308
|
+
outputCostPerToken: 44e-7,
|
|
18309
|
+
cacheReadInputTokenCost: 26e-8,
|
|
18310
|
+
aliases: [
|
|
18311
|
+
"glm-5.2"
|
|
18312
|
+
]
|
|
18313
|
+
}
|
|
18314
|
+
}
|
|
18210
18315
|
}
|
|
18211
18316
|
};
|
|
18212
18317
|
var GATEWAY_PROVIDERS = ["codex", "xai", "cursor", "opencode", "kimi"];
|
|
@@ -18216,8 +18321,7 @@ var GATEWAY_REASONING_EFFORTS = [
|
|
|
18216
18321
|
"medium",
|
|
18217
18322
|
"high",
|
|
18218
18323
|
"xhigh",
|
|
18219
|
-
"max"
|
|
18220
|
-
"ultra"
|
|
18324
|
+
"max"
|
|
18221
18325
|
];
|
|
18222
18326
|
var GatewayEffortUpstreamModelIdsSchema = external_exports.partialRecord(
|
|
18223
18327
|
external_exports.enum(GATEWAY_REASONING_EFFORTS),
|
|
@@ -18269,6 +18373,18 @@ var GatewayBenchmarksRegistrySchema = external_exports.object({
|
|
|
18269
18373
|
sources: external_exports.record(external_exports.string().min(1), GatewayBenchmarkSourceSchema),
|
|
18270
18374
|
models: external_exports.record(external_exports.string().min(1), GatewayBenchmarkModelEntrySchema)
|
|
18271
18375
|
}).strict();
|
|
18376
|
+
var GatewayModelPricingSchema = external_exports.object({
|
|
18377
|
+
inputCostPerToken: external_exports.number().nonnegative(),
|
|
18378
|
+
outputCostPerToken: external_exports.number().nonnegative(),
|
|
18379
|
+
cacheReadInputTokenCost: external_exports.number().nonnegative(),
|
|
18380
|
+
cacheCreationInputTokenCost: external_exports.number().nonnegative().optional(),
|
|
18381
|
+
aliases: external_exports.array(external_exports.string().min(1)).min(1)
|
|
18382
|
+
}).strict();
|
|
18383
|
+
var GatewayPricingRegistrySchema = external_exports.object({
|
|
18384
|
+
source: external_exports.literal("openrouter"),
|
|
18385
|
+
observedAt: external_exports.iso.datetime(),
|
|
18386
|
+
models: external_exports.record(external_exports.string().min(1), GatewayModelPricingSchema)
|
|
18387
|
+
}).strict();
|
|
18272
18388
|
var GatewayModelEntrySchema = external_exports.object({
|
|
18273
18389
|
modelId: external_exports.string().min(1),
|
|
18274
18390
|
name: external_exports.string().min(1),
|
|
@@ -18299,7 +18415,8 @@ var GatewayModelsRegistrySchema = external_exports.object({
|
|
|
18299
18415
|
kimi: GatewayProviderSchema,
|
|
18300
18416
|
opencode: GatewayProviderSchema,
|
|
18301
18417
|
xai: GatewayProviderSchema
|
|
18302
|
-
}).strict()
|
|
18418
|
+
}).strict(),
|
|
18419
|
+
pricing: GatewayPricingRegistrySchema
|
|
18303
18420
|
}).strict();
|
|
18304
18421
|
var UNSUPPORTED_GATEWAY_MODEL_EFFORT = Object.freeze({ supported: false });
|
|
18305
18422
|
var benchmarksRegistry = parseGatewayBenchmarksRegistry(benchmarks_default);
|
|
@@ -18323,6 +18440,15 @@ var registry2 = (() => {
|
|
|
18323
18440
|
return parsed;
|
|
18324
18441
|
})();
|
|
18325
18442
|
var GATEWAY_MODELS_UPDATED_AT = registry2.updatedAt;
|
|
18443
|
+
registry2.pricing.observedAt;
|
|
18444
|
+
Object.freeze(
|
|
18445
|
+
Object.fromEntries(
|
|
18446
|
+
Object.entries(registry2.pricing.models).map(([modelId, pricing]) => [
|
|
18447
|
+
modelId,
|
|
18448
|
+
Object.freeze({ ...pricing, aliases: Object.freeze([...pricing.aliases]) })
|
|
18449
|
+
])
|
|
18450
|
+
)
|
|
18451
|
+
);
|
|
18326
18452
|
Object.entries(benchmarksRegistry.sources).map(([sourceId, source]) => `${sourceId}:${source.observedAt}`).sort().join("|");
|
|
18327
18453
|
Object.freeze(
|
|
18328
18454
|
Object.fromEntries(
|
|
@@ -18583,8 +18709,7 @@ var ANTHROPIC_EFFORT_RUNGS = /* @__PURE__ */ new Set([
|
|
|
18583
18709
|
"medium",
|
|
18584
18710
|
"high",
|
|
18585
18711
|
"xhigh",
|
|
18586
|
-
"max"
|
|
18587
|
-
"ultra"
|
|
18712
|
+
"max"
|
|
18588
18713
|
]);
|
|
18589
18714
|
function freezeGatewayModelEffort(effort) {
|
|
18590
18715
|
if (!effort?.supported) return UNSUPPORTED_GATEWAY_MODEL_EFFORT;
|
|
@@ -19522,6 +19647,7 @@ var CLAUDE_GATEWAY_TURN_KEYS = Object.freeze([
|
|
|
19522
19647
|
"allowedTools",
|
|
19523
19648
|
"disallowedTools",
|
|
19524
19649
|
"permissionMode",
|
|
19650
|
+
"canUseTool",
|
|
19525
19651
|
"mcpServers",
|
|
19526
19652
|
"servedMcpServers",
|
|
19527
19653
|
"includePartialMessages",
|
|
@@ -19537,8 +19663,10 @@ function claudeGatewayLaunchEnv(inherited, options) {
|
|
|
19537
19663
|
if (value !== void 0) env[key] = value;
|
|
19538
19664
|
}
|
|
19539
19665
|
env.ANTHROPIC_BASE_URL = options.baseUrl;
|
|
19540
|
-
|
|
19541
|
-
|
|
19666
|
+
if (options.homeKind !== "shared") {
|
|
19667
|
+
env.CLAUDE_CONFIG_DIR = options.configDir;
|
|
19668
|
+
env.CLAUDE_SECURESTORAGE_CONFIG_DIR = "";
|
|
19669
|
+
}
|
|
19542
19670
|
env.CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY = "1";
|
|
19543
19671
|
env.ENABLE_TOOL_SEARCH = "true";
|
|
19544
19672
|
env.CLAUDE_CODE_AUTO_COMPACT_WINDOW ??= "1000000";
|
|
@@ -19553,6 +19681,18 @@ function claudeGatewayModelCache(options) {
|
|
|
19553
19681
|
}
|
|
19554
19682
|
|
|
19555
19683
|
// ../../packages/core-agent/src/claude/config-dir.ts
|
|
19684
|
+
function createSharedClaudeConfigHome(configDir) {
|
|
19685
|
+
if (typeof configDir !== "string" || !path3__default.isAbsolute(configDir)) {
|
|
19686
|
+
throw new TypeError("A shared Claude config home requires an absolute config directory path.");
|
|
19687
|
+
}
|
|
19688
|
+
return {
|
|
19689
|
+
path: configDir,
|
|
19690
|
+
async writeModelCache() {
|
|
19691
|
+
},
|
|
19692
|
+
async dispose() {
|
|
19693
|
+
}
|
|
19694
|
+
};
|
|
19695
|
+
}
|
|
19556
19696
|
async function createIsolatedClaudeConfigDir(tempRoot = tmpdir()) {
|
|
19557
19697
|
const root = await mkdtemp(path3__default.join(tempRoot, "core-agent-claude-"));
|
|
19558
19698
|
const cachePath = path3__default.join(root, CLAUDE_GATEWAY_MODEL_CACHE_RELPATH);
|
|
@@ -19574,6 +19714,32 @@ async function createIsolatedClaudeConfigDir(tempRoot = tmpdir()) {
|
|
|
19574
19714
|
}
|
|
19575
19715
|
};
|
|
19576
19716
|
}
|
|
19717
|
+
function readVendorContextUsage(response) {
|
|
19718
|
+
if (typeof response !== "object" || response === null) return null;
|
|
19719
|
+
const usage = response;
|
|
19720
|
+
if (typeof usage.totalTokens !== "number" || typeof usage.maxTokens !== "number") return null;
|
|
19721
|
+
const rows = Array.isArray(usage.categories) ? usage.categories : [];
|
|
19722
|
+
const memory = Array.isArray(usage.memoryFiles) ? usage.memoryFiles : [];
|
|
19723
|
+
const mcp = Array.isArray(usage.mcpTools) ? usage.mcpTools : [];
|
|
19724
|
+
return {
|
|
19725
|
+
total: usage.totalTokens,
|
|
19726
|
+
max: usage.maxTokens,
|
|
19727
|
+
model: typeof usage.model === "string" ? usage.model : "",
|
|
19728
|
+
compactAt: usage.isAutoCompactEnabled === true && typeof usage.autoCompactThreshold === "number" ? usage.autoCompactThreshold : null,
|
|
19729
|
+
categories: rows.flatMap((row) => {
|
|
19730
|
+
const entry = row;
|
|
19731
|
+
return typeof entry?.name === "string" && typeof entry.tokens === "number" ? [{ name: entry.name, tokens: entry.tokens, deferred: entry.isDeferred === true }] : [];
|
|
19732
|
+
}),
|
|
19733
|
+
memoryFiles: memory.flatMap((row) => {
|
|
19734
|
+
const entry = row;
|
|
19735
|
+
return typeof entry?.path === "string" && typeof entry.tokens === "number" ? [{ path: entry.path, tokens: entry.tokens }] : [];
|
|
19736
|
+
}),
|
|
19737
|
+
mcpTools: mcp.flatMap((row) => {
|
|
19738
|
+
const entry = row;
|
|
19739
|
+
return typeof entry?.name === "string" && typeof entry.tokens === "number" ? [{ name: entry.name, server: typeof entry.serverName === "string" ? entry.serverName : "", tokens: entry.tokens }] : [];
|
|
19740
|
+
})
|
|
19741
|
+
};
|
|
19742
|
+
}
|
|
19577
19743
|
function runVendorQuery(input) {
|
|
19578
19744
|
const run = query({
|
|
19579
19745
|
prompt: input.prompt,
|
|
@@ -19581,6 +19747,14 @@ function runVendorQuery(input) {
|
|
|
19581
19747
|
});
|
|
19582
19748
|
let closed = false;
|
|
19583
19749
|
return {
|
|
19750
|
+
async getContextUsage() {
|
|
19751
|
+
if (closed || typeof run.getContextUsage !== "function") return null;
|
|
19752
|
+
try {
|
|
19753
|
+
return readVendorContextUsage(await run.getContextUsage());
|
|
19754
|
+
} catch {
|
|
19755
|
+
return null;
|
|
19756
|
+
}
|
|
19757
|
+
},
|
|
19584
19758
|
[Symbol.asyncIterator]() {
|
|
19585
19759
|
const iterator = run[Symbol.asyncIterator]();
|
|
19586
19760
|
return {
|
|
@@ -19609,7 +19783,7 @@ async function createClaudeGatewaySdk(options) {
|
|
|
19609
19783
|
const accepted = resolveModels(options.models);
|
|
19610
19784
|
const catalogModels = accepted.filter((entry) => entry.kind === "catalog").map((entry) => entry.model);
|
|
19611
19785
|
const inherited = options.env ?? process.env;
|
|
19612
|
-
const configDir = await createIsolatedClaudeConfigDir(options.tempRoot);
|
|
19786
|
+
const configDir = options.home?.kind === "shared" ? createSharedClaudeConfigHome(options.home.configDir) : await createIsolatedClaudeConfigDir(options.tempRoot);
|
|
19613
19787
|
let disposed = false;
|
|
19614
19788
|
let active = null;
|
|
19615
19789
|
const sdk = {
|
|
@@ -19624,19 +19798,27 @@ async function createClaudeGatewaySdk(options) {
|
|
|
19624
19798
|
}
|
|
19625
19799
|
const model = resolveTurnModel(turn.model, accepted);
|
|
19626
19800
|
await configDir.writeModelCache({ baseUrl, models: catalogModels, fetchedAt: Date.now() });
|
|
19627
|
-
const env = claudeGatewayLaunchEnv(inherited, {
|
|
19801
|
+
const env = claudeGatewayLaunchEnv(inherited, {
|
|
19802
|
+
baseUrl,
|
|
19803
|
+
configDir: configDir.path,
|
|
19804
|
+
homeKind: options.home?.kind === "shared" ? "shared" : "isolated"
|
|
19805
|
+
});
|
|
19628
19806
|
const run = runVendorQuery({
|
|
19629
19807
|
prompt: turn.prompt,
|
|
19630
19808
|
options: {
|
|
19631
19809
|
env,
|
|
19632
19810
|
model,
|
|
19633
19811
|
...turn.systemPrompt === void 0 ? {} : { systemPrompt: vendorSystemPrompt(turn.systemPrompt) },
|
|
19634
|
-
// 패키지가 스스로 지어내는 지시는
|
|
19635
|
-
//
|
|
19636
|
-
// CLAUDE.md를 끄고, `strictMcpConfig
|
|
19637
|
-
//
|
|
19638
|
-
settingSources: [],
|
|
19639
|
-
strictMcpConfig: true,
|
|
19812
|
+
// 패키지가 스스로 지어내는 지시는 없다 — 여기 실리는 것은 전부 호출자가 고른 것이고,
|
|
19813
|
+
// 고르지 않으면 아무것도 붙지 않는다. 두 기본값이 그 규율을 구조로 만든다:
|
|
19814
|
+
// `settingSources: []`가 사용자·프로젝트 설정과 CLAUDE.md를 끄고, `strictMcpConfig`가
|
|
19815
|
+
// 그와 별개인 ambient .mcp.json·플러그인 MCP를 막는다.
|
|
19816
|
+
settingSources: options.settingSources ? [...options.settingSources] : [],
|
|
19817
|
+
strictMcpConfig: options.allowAmbientMcpServers !== true,
|
|
19818
|
+
// 플러그인의 MCP 선언은 읽지 않는다 — 좌표는 호출자가 이미 소유한다.
|
|
19819
|
+
...options.plugins && options.plugins.length > 0 ? { plugins: options.plugins.map((plugin) => ({ type: "local", path: plugin.path, skipMcpDiscovery: true })) } : {},
|
|
19820
|
+
// `--settings`와 같은 자리다. flag 소스로 병합되므로 사용자·프로젝트 설정을 대체하지 않는다.
|
|
19821
|
+
...options.skillOverrides && Object.keys(options.skillOverrides).length > 0 ? { settings: { skillOverrides: { ...options.skillOverrides } } } : {},
|
|
19640
19822
|
...turn.effort === void 0 ? {} : { effort: turn.effort },
|
|
19641
19823
|
...turn.cwd === void 0 ? {} : { cwd: turn.cwd },
|
|
19642
19824
|
...turn.resume === void 0 ? {} : { resume: turn.resume },
|
|
@@ -19646,6 +19828,7 @@ async function createClaudeGatewaySdk(options) {
|
|
|
19646
19828
|
...turn.allowedTools === void 0 ? {} : { allowedTools: [...turn.allowedTools] },
|
|
19647
19829
|
...turn.disallowedTools === void 0 ? {} : { disallowedTools: [...turn.disallowedTools] },
|
|
19648
19830
|
...turn.permissionMode === void 0 ? {} : { permissionMode: turn.permissionMode },
|
|
19831
|
+
...turn.canUseTool === void 0 ? {} : { canUseTool: vendorCanUseTool(turn.canUseTool) },
|
|
19649
19832
|
...turn.mcpServers === void 0 && turn.servedMcpServers === void 0 ? {} : { mcpServers: { ...turn.mcpServers, ...vendorServedMcpServers(turn.servedMcpServers) } },
|
|
19650
19833
|
...turn.includePartialMessages === void 0 ? {} : { includePartialMessages: turn.includePartialMessages },
|
|
19651
19834
|
...turn.abortController === void 0 ? {} : { abortController: turn.abortController },
|
|
@@ -19672,7 +19855,8 @@ async function createClaudeGatewaySdk(options) {
|
|
|
19672
19855
|
} finally {
|
|
19673
19856
|
release();
|
|
19674
19857
|
}
|
|
19675
|
-
}
|
|
19858
|
+
},
|
|
19859
|
+
getContextUsage: () => run.getContextUsage()
|
|
19676
19860
|
};
|
|
19677
19861
|
active = tracked;
|
|
19678
19862
|
return tracked;
|
|
@@ -19741,6 +19925,22 @@ function resolveTurnModel(requested, accepted) {
|
|
|
19741
19925
|
}
|
|
19742
19926
|
return entry.id;
|
|
19743
19927
|
}
|
|
19928
|
+
function vendorCanUseTool(canUseTool) {
|
|
19929
|
+
return async (toolName, input, options) => {
|
|
19930
|
+
try {
|
|
19931
|
+
const decision = await canUseTool(toolName, input, {
|
|
19932
|
+
toolUseId: typeof options.toolUseID === "string" ? options.toolUseID : "",
|
|
19933
|
+
signal: options.signal instanceof AbortSignal ? options.signal : new AbortController().signal
|
|
19934
|
+
});
|
|
19935
|
+
if (decision.behavior === "allow") {
|
|
19936
|
+
return decision.updatedInput === void 0 ? { behavior: "allow", updatedInput: input } : { behavior: "allow", updatedInput: { ...decision.updatedInput } };
|
|
19937
|
+
}
|
|
19938
|
+
return { behavior: "deny", message: decision.message };
|
|
19939
|
+
} catch (error51) {
|
|
19940
|
+
return { behavior: "deny", message: error51 instanceof Error ? error51.message : String(error51) };
|
|
19941
|
+
}
|
|
19942
|
+
};
|
|
19943
|
+
}
|
|
19744
19944
|
function vendorSystemPrompt(systemPrompt) {
|
|
19745
19945
|
const text = systemPrompt?.text;
|
|
19746
19946
|
if (typeof text !== "string" || text.length === 0) {
|