@dotobokuri/fleet-console 1.63.0 → 1.65.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/dist/cli.mjs +386 -82
- package/dist/client/assets/{_baseUniq-CVUU389k.js → _baseUniq-DyzqDsbR.js} +1 -1
- package/dist/client/assets/{arc-Fg3WjPoW.js → arc-D9PB38OE.js} +1 -1
- package/dist/client/assets/{architectureDiagram-Q4EWVU46-gAB_QWIv.js → architectureDiagram-Q4EWVU46-0L3Tlker.js} +1 -1
- package/dist/client/assets/{blockDiagram-DXYQGD6D-DCY_3CSv.js → blockDiagram-DXYQGD6D-BCAdqHmo.js} +1 -1
- package/dist/client/assets/{c4Diagram-AHTNJAMY-2ai4d9rg.js → c4Diagram-AHTNJAMY-oK3f-N6i.js} +1 -1
- package/dist/client/assets/channel-CzEHIBah.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-C-sjgNCE.js → chunk-4BX2VUAB-CIYxtKO7.js} +1 -1
- package/dist/client/assets/{chunk-4TB4RGXK-Co7w9KaD.js → chunk-4TB4RGXK-CKA_-tPR.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Dspr2174.js → chunk-55IACEB6-ArIbE5m1.js} +1 -1
- package/dist/client/assets/{chunk-EDXVE4YY-UzzG0ax3.js → chunk-EDXVE4YY-bGzMBuDL.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DKXcUQqJ.js → chunk-FMBD7UC4-CZUkX3ry.js} +1 -1
- package/dist/client/assets/{chunk-OYMX7WX6-vW--qrkP.js → chunk-OYMX7WX6-CNXmIVXX.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DyE-yBhf.js → chunk-QZHKN3VN-B3t4h1MD.js} +1 -1
- package/dist/client/assets/{chunk-YZCP3GAM-C7LLTO2-.js → chunk-YZCP3GAM-CdGF0f8H.js} +1 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-jNK4g1rr.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-jNK4g1rr.js +1 -0
- package/dist/client/assets/clone-DggrGKv8.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-BkDNeJiw.js → cose-bilkent-S5V4N54A-BESjfcni.js} +1 -1
- package/dist/client/assets/{dagre-KV5264BT-DqeN9oF3.js → dagre-KV5264BT-WpQhPw2a.js} +1 -1
- package/dist/client/assets/{diagram-5BDNPKRD-BXzt4-3Y.js → diagram-5BDNPKRD-BfAkutIX.js} +1 -1
- package/dist/client/assets/{diagram-G4DWMVQ6-DbzDYVOf.js → diagram-G4DWMVQ6-C9I16SLL.js} +1 -1
- package/dist/client/assets/{diagram-MMDJMWI5-wPQu3o7B.js → diagram-MMDJMWI5-CVJMM2zJ.js} +1 -1
- package/dist/client/assets/{diagram-TYMM5635-C-vwFwzf.js → diagram-TYMM5635-DTqr7jJ3.js} +1 -1
- package/dist/client/assets/{erDiagram-SMLLAGMA-CcukuTgN.js → erDiagram-SMLLAGMA-B09ElCdB.js} +1 -1
- package/dist/client/assets/{flowDiagram-DWJPFMVM-BT8ZNr2Y.js → flowDiagram-DWJPFMVM-C93jg-t6.js} +1 -1
- package/dist/client/assets/{ganttDiagram-T4ZO3ILL-B_wNcZrL.js → ganttDiagram-T4ZO3ILL-5Js2lpdY.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-dUwwvDSd.js → gitGraphDiagram-UUTBAWPF-BxGzg1Rc.js} +1 -1
- package/dist/client/assets/{graph-C4i_jr7e.js → graph-BkRyh4eN.js} +1 -1
- package/dist/client/assets/index-BSVaW3Ov.js +465 -0
- package/dist/client/assets/index-DxjgOu3C.css +1 -0
- package/dist/client/assets/{infoDiagram-42DDH7IO-Bf2KPu0t.js → infoDiagram-42DDH7IO-DZPp1lR6.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-DjHChg2o.js → ishikawaDiagram-UXIWVN3A-CXTuQ2Bb.js} +1 -1
- package/dist/client/assets/{journeyDiagram-VCZTEJTY-B08epGYF.js → journeyDiagram-VCZTEJTY--u6tYqhF.js} +1 -1
- package/dist/client/assets/{kanban-definition-6JOO6SKY-BFasXRgc.js → kanban-definition-6JOO6SKY-CGMEohiQ.js} +1 -1
- package/dist/client/assets/{layout-Q_W10VzL.js → layout-Bzu8ET7F.js} +1 -1
- package/dist/client/assets/{linear-Dy4fc5kq.js → linear-B6htRUTP.js} +1 -1
- package/dist/client/assets/{mermaid.core-OtTy8N5f.js → mermaid.core-CtpLAI-c.js} +4 -4
- package/dist/client/assets/{min-DODD7JTz.js → min-CEURoL5k.js} +1 -1
- package/dist/client/assets/{mindmap-definition-QFDTVHPH-DMhpsiYD.js → mindmap-definition-QFDTVHPH-B-HiXlEN.js} +1 -1
- package/dist/client/assets/{pieDiagram-DEJITSTG-C5usaVgs.js → pieDiagram-DEJITSTG-DQgiLkTU.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-34T5L4WZ-B-b2NvBz.js → quadrantDiagram-34T5L4WZ-xLh7CKRW.js} +1 -1
- package/dist/client/assets/{requirementDiagram-MS252O5E-D6_4jY3n.js → requirementDiagram-MS252O5E-O1SOxLMB.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-XADWPNL6-B6imEhCV.js → sankeyDiagram-XADWPNL6-D-mh4ZYc.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-FGHM5R23-BRHNnuqK.js → sequenceDiagram-FGHM5R23-Dp2XhLFP.js} +1 -1
- package/dist/client/assets/{stateDiagram-FHFEXIEX-RiIddIHL.js → stateDiagram-FHFEXIEX-UQkaQPQt.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-CRw5Ot78.js +1 -0
- package/dist/client/assets/{timeline-definition-GMOUNBTQ-BhP14Blt.js → timeline-definition-GMOUNBTQ-DDMfKpma.js} +1 -1
- package/dist/client/assets/{vennDiagram-DHZGUBPP-CtzwrBNs.js → vennDiagram-DHZGUBPP-DaGxBzx2.js} +1 -1
- package/dist/client/assets/{wardley-RL74JXVD-TXsee18-.js → wardley-RL74JXVD-DBNvUuF6.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-NUSXRM2D-CrJP7pf7.js → wardleyDiagram-NUSXRM2D-IbDED74Y.js} +1 -1
- package/dist/client/assets/{xychartDiagram-5P7HB3ND-rB-PigjI.js → xychartDiagram-5P7HB3ND-0RafK-TZ.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/fleet-plugins/ledger/routes.mjs +130 -1
- package/dist/fleet-plugins/quota/routes.mjs +130 -1
- package/dist/fleet-plugins/scuttlebutt/routes.mjs +376 -68
- package/dist/fleet-plugins/terminal/routes.mjs +727 -155
- package/dist/fleet.mjs +386 -82
- package/package.json +1 -1
- package/dist/client/assets/channel-DlA1BRCV.js +0 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-rBpGSdtk.js +0 -1
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-rBpGSdtk.js +0 -1
- package/dist/client/assets/clone-_1aYWCbr.js +0 -1
- package/dist/client/assets/index-BXtDpU36.js +0 -465
- package/dist/client/assets/index-CLb_APbh.css +0 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-CsHfIgMa.js +0 -1
|
@@ -18037,7 +18037,7 @@ var models_default = {
|
|
|
18037
18037
|
codex: {
|
|
18038
18038
|
name: "Codex",
|
|
18039
18039
|
defaultModel: "gpt-5.6-sol",
|
|
18040
|
-
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;
|
|
18040
|
+
source: "codex app-server model/list (codex-cli 0.147.0, observed 2026-08-11) for model/effort/service-tier and the unsuffixed 272000 defaults; Fleet catalog effort ladders are capped at max because harness launch capabilities are not model rungs; 2026-08-17 production Codex live observations added explicit 1M (1000000) variants on the same upstream bases",
|
|
18041
18041
|
models: [
|
|
18042
18042
|
{
|
|
18043
18043
|
modelId: "gpt-5.6-sol",
|
|
@@ -18164,6 +18164,135 @@ var models_default = {
|
|
|
18164
18164
|
"gpt-5.6-luna-fast"
|
|
18165
18165
|
],
|
|
18166
18166
|
benchmarkKey: "gpt-5.6-luna"
|
|
18167
|
+
},
|
|
18168
|
+
{
|
|
18169
|
+
modelId: "gpt-5.6-sol-1m",
|
|
18170
|
+
name: "GPT-5.6-Sol-1M",
|
|
18171
|
+
capabilityClass: "flagship",
|
|
18172
|
+
providerModelId: "gpt-5.6-sol",
|
|
18173
|
+
contextWindow: 1e6,
|
|
18174
|
+
effort: {
|
|
18175
|
+
supported: true,
|
|
18176
|
+
levels: [
|
|
18177
|
+
"low",
|
|
18178
|
+
"medium",
|
|
18179
|
+
"high",
|
|
18180
|
+
"xhigh",
|
|
18181
|
+
"max"
|
|
18182
|
+
]
|
|
18183
|
+
},
|
|
18184
|
+
aliases: [
|
|
18185
|
+
"gpt-5.6-sol-1m"
|
|
18186
|
+
],
|
|
18187
|
+
benchmarkKey: "gpt-5.6-sol"
|
|
18188
|
+
},
|
|
18189
|
+
{
|
|
18190
|
+
modelId: "gpt-5.6-sol-1m-fast",
|
|
18191
|
+
name: "GPT-5.6-Sol-1M-Fast",
|
|
18192
|
+
capabilityClass: "flagship",
|
|
18193
|
+
providerModelId: "gpt-5.6-sol",
|
|
18194
|
+
serviceTier: "priority",
|
|
18195
|
+
contextWindow: 1e6,
|
|
18196
|
+
effort: {
|
|
18197
|
+
supported: true,
|
|
18198
|
+
levels: [
|
|
18199
|
+
"low",
|
|
18200
|
+
"medium",
|
|
18201
|
+
"high",
|
|
18202
|
+
"xhigh",
|
|
18203
|
+
"max"
|
|
18204
|
+
]
|
|
18205
|
+
},
|
|
18206
|
+
aliases: [
|
|
18207
|
+
"gpt-5.6-sol-1m-fast"
|
|
18208
|
+
],
|
|
18209
|
+
benchmarkKey: "gpt-5.6-sol"
|
|
18210
|
+
},
|
|
18211
|
+
{
|
|
18212
|
+
modelId: "gpt-5.6-luna-1m",
|
|
18213
|
+
name: "GPT-5.6-Luna-1M",
|
|
18214
|
+
capabilityClass: "light",
|
|
18215
|
+
providerModelId: "gpt-5.6-luna",
|
|
18216
|
+
contextWindow: 1e6,
|
|
18217
|
+
effort: {
|
|
18218
|
+
supported: true,
|
|
18219
|
+
levels: [
|
|
18220
|
+
"low",
|
|
18221
|
+
"medium",
|
|
18222
|
+
"high",
|
|
18223
|
+
"xhigh",
|
|
18224
|
+
"max"
|
|
18225
|
+
]
|
|
18226
|
+
},
|
|
18227
|
+
aliases: [
|
|
18228
|
+
"gpt-5.6-luna-1m"
|
|
18229
|
+
],
|
|
18230
|
+
benchmarkKey: "gpt-5.6-luna"
|
|
18231
|
+
},
|
|
18232
|
+
{
|
|
18233
|
+
modelId: "gpt-5.6-luna-1m-fast",
|
|
18234
|
+
name: "GPT-5.6-Luna-1M-Fast",
|
|
18235
|
+
capabilityClass: "light",
|
|
18236
|
+
providerModelId: "gpt-5.6-luna",
|
|
18237
|
+
serviceTier: "priority",
|
|
18238
|
+
contextWindow: 1e6,
|
|
18239
|
+
effort: {
|
|
18240
|
+
supported: true,
|
|
18241
|
+
levels: [
|
|
18242
|
+
"low",
|
|
18243
|
+
"medium",
|
|
18244
|
+
"high",
|
|
18245
|
+
"xhigh",
|
|
18246
|
+
"max"
|
|
18247
|
+
]
|
|
18248
|
+
},
|
|
18249
|
+
aliases: [
|
|
18250
|
+
"gpt-5.6-luna-1m-fast"
|
|
18251
|
+
],
|
|
18252
|
+
benchmarkKey: "gpt-5.6-luna"
|
|
18253
|
+
},
|
|
18254
|
+
{
|
|
18255
|
+
modelId: "gpt-5.6-terra-1m",
|
|
18256
|
+
name: "GPT-5.6-Terra-1M",
|
|
18257
|
+
capabilityClass: "standard",
|
|
18258
|
+
providerModelId: "gpt-5.6-terra",
|
|
18259
|
+
contextWindow: 1e6,
|
|
18260
|
+
effort: {
|
|
18261
|
+
supported: true,
|
|
18262
|
+
levels: [
|
|
18263
|
+
"low",
|
|
18264
|
+
"medium",
|
|
18265
|
+
"high",
|
|
18266
|
+
"xhigh",
|
|
18267
|
+
"max"
|
|
18268
|
+
]
|
|
18269
|
+
},
|
|
18270
|
+
aliases: [
|
|
18271
|
+
"gpt-5.6-terra-1m"
|
|
18272
|
+
],
|
|
18273
|
+
benchmarkKey: "gpt-5.6-terra"
|
|
18274
|
+
},
|
|
18275
|
+
{
|
|
18276
|
+
modelId: "gpt-5.6-terra-1m-fast",
|
|
18277
|
+
name: "GPT-5.6-Terra-1M-Fast",
|
|
18278
|
+
capabilityClass: "standard",
|
|
18279
|
+
providerModelId: "gpt-5.6-terra",
|
|
18280
|
+
serviceTier: "priority",
|
|
18281
|
+
contextWindow: 1e6,
|
|
18282
|
+
effort: {
|
|
18283
|
+
supported: true,
|
|
18284
|
+
levels: [
|
|
18285
|
+
"low",
|
|
18286
|
+
"medium",
|
|
18287
|
+
"high",
|
|
18288
|
+
"xhigh",
|
|
18289
|
+
"max"
|
|
18290
|
+
]
|
|
18291
|
+
},
|
|
18292
|
+
aliases: [
|
|
18293
|
+
"gpt-5.6-terra-1m-fast"
|
|
18294
|
+
],
|
|
18295
|
+
benchmarkKey: "gpt-5.6-terra"
|
|
18167
18296
|
}
|
|
18168
18297
|
]
|
|
18169
18298
|
},
|
|
@@ -17714,7 +17714,7 @@ var models_default = {
|
|
|
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, 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;
|
|
17717
|
+
source: "codex app-server model/list (codex-cli 0.147.0, observed 2026-08-11) for model/effort/service-tier and the unsuffixed 272000 defaults; Fleet catalog effort ladders are capped at max because harness launch capabilities are not model rungs; 2026-08-17 production Codex live observations added explicit 1M (1000000) variants on the same upstream bases",
|
|
17718
17718
|
models: [
|
|
17719
17719
|
{
|
|
17720
17720
|
modelId: "gpt-5.6-sol",
|
|
@@ -17841,6 +17841,135 @@ var models_default = {
|
|
|
17841
17841
|
"gpt-5.6-luna-fast"
|
|
17842
17842
|
],
|
|
17843
17843
|
benchmarkKey: "gpt-5.6-luna"
|
|
17844
|
+
},
|
|
17845
|
+
{
|
|
17846
|
+
modelId: "gpt-5.6-sol-1m",
|
|
17847
|
+
name: "GPT-5.6-Sol-1M",
|
|
17848
|
+
capabilityClass: "flagship",
|
|
17849
|
+
providerModelId: "gpt-5.6-sol",
|
|
17850
|
+
contextWindow: 1e6,
|
|
17851
|
+
effort: {
|
|
17852
|
+
supported: true,
|
|
17853
|
+
levels: [
|
|
17854
|
+
"low",
|
|
17855
|
+
"medium",
|
|
17856
|
+
"high",
|
|
17857
|
+
"xhigh",
|
|
17858
|
+
"max"
|
|
17859
|
+
]
|
|
17860
|
+
},
|
|
17861
|
+
aliases: [
|
|
17862
|
+
"gpt-5.6-sol-1m"
|
|
17863
|
+
],
|
|
17864
|
+
benchmarkKey: "gpt-5.6-sol"
|
|
17865
|
+
},
|
|
17866
|
+
{
|
|
17867
|
+
modelId: "gpt-5.6-sol-1m-fast",
|
|
17868
|
+
name: "GPT-5.6-Sol-1M-Fast",
|
|
17869
|
+
capabilityClass: "flagship",
|
|
17870
|
+
providerModelId: "gpt-5.6-sol",
|
|
17871
|
+
serviceTier: "priority",
|
|
17872
|
+
contextWindow: 1e6,
|
|
17873
|
+
effort: {
|
|
17874
|
+
supported: true,
|
|
17875
|
+
levels: [
|
|
17876
|
+
"low",
|
|
17877
|
+
"medium",
|
|
17878
|
+
"high",
|
|
17879
|
+
"xhigh",
|
|
17880
|
+
"max"
|
|
17881
|
+
]
|
|
17882
|
+
},
|
|
17883
|
+
aliases: [
|
|
17884
|
+
"gpt-5.6-sol-1m-fast"
|
|
17885
|
+
],
|
|
17886
|
+
benchmarkKey: "gpt-5.6-sol"
|
|
17887
|
+
},
|
|
17888
|
+
{
|
|
17889
|
+
modelId: "gpt-5.6-luna-1m",
|
|
17890
|
+
name: "GPT-5.6-Luna-1M",
|
|
17891
|
+
capabilityClass: "light",
|
|
17892
|
+
providerModelId: "gpt-5.6-luna",
|
|
17893
|
+
contextWindow: 1e6,
|
|
17894
|
+
effort: {
|
|
17895
|
+
supported: true,
|
|
17896
|
+
levels: [
|
|
17897
|
+
"low",
|
|
17898
|
+
"medium",
|
|
17899
|
+
"high",
|
|
17900
|
+
"xhigh",
|
|
17901
|
+
"max"
|
|
17902
|
+
]
|
|
17903
|
+
},
|
|
17904
|
+
aliases: [
|
|
17905
|
+
"gpt-5.6-luna-1m"
|
|
17906
|
+
],
|
|
17907
|
+
benchmarkKey: "gpt-5.6-luna"
|
|
17908
|
+
},
|
|
17909
|
+
{
|
|
17910
|
+
modelId: "gpt-5.6-luna-1m-fast",
|
|
17911
|
+
name: "GPT-5.6-Luna-1M-Fast",
|
|
17912
|
+
capabilityClass: "light",
|
|
17913
|
+
providerModelId: "gpt-5.6-luna",
|
|
17914
|
+
serviceTier: "priority",
|
|
17915
|
+
contextWindow: 1e6,
|
|
17916
|
+
effort: {
|
|
17917
|
+
supported: true,
|
|
17918
|
+
levels: [
|
|
17919
|
+
"low",
|
|
17920
|
+
"medium",
|
|
17921
|
+
"high",
|
|
17922
|
+
"xhigh",
|
|
17923
|
+
"max"
|
|
17924
|
+
]
|
|
17925
|
+
},
|
|
17926
|
+
aliases: [
|
|
17927
|
+
"gpt-5.6-luna-1m-fast"
|
|
17928
|
+
],
|
|
17929
|
+
benchmarkKey: "gpt-5.6-luna"
|
|
17930
|
+
},
|
|
17931
|
+
{
|
|
17932
|
+
modelId: "gpt-5.6-terra-1m",
|
|
17933
|
+
name: "GPT-5.6-Terra-1M",
|
|
17934
|
+
capabilityClass: "standard",
|
|
17935
|
+
providerModelId: "gpt-5.6-terra",
|
|
17936
|
+
contextWindow: 1e6,
|
|
17937
|
+
effort: {
|
|
17938
|
+
supported: true,
|
|
17939
|
+
levels: [
|
|
17940
|
+
"low",
|
|
17941
|
+
"medium",
|
|
17942
|
+
"high",
|
|
17943
|
+
"xhigh",
|
|
17944
|
+
"max"
|
|
17945
|
+
]
|
|
17946
|
+
},
|
|
17947
|
+
aliases: [
|
|
17948
|
+
"gpt-5.6-terra-1m"
|
|
17949
|
+
],
|
|
17950
|
+
benchmarkKey: "gpt-5.6-terra"
|
|
17951
|
+
},
|
|
17952
|
+
{
|
|
17953
|
+
modelId: "gpt-5.6-terra-1m-fast",
|
|
17954
|
+
name: "GPT-5.6-Terra-1M-Fast",
|
|
17955
|
+
capabilityClass: "standard",
|
|
17956
|
+
providerModelId: "gpt-5.6-terra",
|
|
17957
|
+
serviceTier: "priority",
|
|
17958
|
+
contextWindow: 1e6,
|
|
17959
|
+
effort: {
|
|
17960
|
+
supported: true,
|
|
17961
|
+
levels: [
|
|
17962
|
+
"low",
|
|
17963
|
+
"medium",
|
|
17964
|
+
"high",
|
|
17965
|
+
"xhigh",
|
|
17966
|
+
"max"
|
|
17967
|
+
]
|
|
17968
|
+
},
|
|
17969
|
+
aliases: [
|
|
17970
|
+
"gpt-5.6-terra-1m-fast"
|
|
17971
|
+
],
|
|
17972
|
+
benchmarkKey: "gpt-5.6-terra"
|
|
17844
17973
|
}
|
|
17845
17974
|
]
|
|
17846
17975
|
},
|
|
@@ -19654,6 +19783,9 @@ var CLAUDE_GATEWAY_TURN_KEYS = Object.freeze([
|
|
|
19654
19783
|
"abortController",
|
|
19655
19784
|
"stderr"
|
|
19656
19785
|
]);
|
|
19786
|
+
var CLAUDE_GATEWAY_SESSION_KEYS = Object.freeze(
|
|
19787
|
+
CLAUDE_GATEWAY_TURN_KEYS.filter((key) => key !== "prompt")
|
|
19788
|
+
);
|
|
19657
19789
|
|
|
19658
19790
|
// ../../packages/core-agent/src/claude/launch-env.ts
|
|
19659
19791
|
var CLAUDE_GATEWAY_MODEL_CACHE_RELPATH = "cache/gateway-models.json";
|
|
@@ -19775,6 +19907,111 @@ function runVendorQuery(input) {
|
|
|
19775
19907
|
}
|
|
19776
19908
|
};
|
|
19777
19909
|
}
|
|
19910
|
+
var VendorInputQueue = class {
|
|
19911
|
+
pending = [];
|
|
19912
|
+
waiting = null;
|
|
19913
|
+
closed = false;
|
|
19914
|
+
push(message2) {
|
|
19915
|
+
if (this.closed) return;
|
|
19916
|
+
const waiting = this.waiting;
|
|
19917
|
+
if (waiting) {
|
|
19918
|
+
this.waiting = null;
|
|
19919
|
+
waiting({ done: false, value: message2 });
|
|
19920
|
+
return;
|
|
19921
|
+
}
|
|
19922
|
+
this.pending.push(message2);
|
|
19923
|
+
}
|
|
19924
|
+
close() {
|
|
19925
|
+
if (this.closed) return;
|
|
19926
|
+
this.closed = true;
|
|
19927
|
+
const waiting = this.waiting;
|
|
19928
|
+
if (waiting) {
|
|
19929
|
+
this.waiting = null;
|
|
19930
|
+
waiting({ done: true, value: void 0 });
|
|
19931
|
+
}
|
|
19932
|
+
}
|
|
19933
|
+
[Symbol.asyncIterator]() {
|
|
19934
|
+
return {
|
|
19935
|
+
next: async () => {
|
|
19936
|
+
if (this.pending.length > 0) return { done: false, value: this.pending.shift() };
|
|
19937
|
+
if (this.closed) return { done: true, value: void 0 };
|
|
19938
|
+
return await new Promise((resolve) => {
|
|
19939
|
+
this.waiting = resolve;
|
|
19940
|
+
});
|
|
19941
|
+
}
|
|
19942
|
+
};
|
|
19943
|
+
}
|
|
19944
|
+
};
|
|
19945
|
+
function vendorUserMessage(text) {
|
|
19946
|
+
return {
|
|
19947
|
+
type: "user",
|
|
19948
|
+
session_id: "",
|
|
19949
|
+
message: { role: "user", content: [{ type: "text", text }] },
|
|
19950
|
+
parent_tool_use_id: null
|
|
19951
|
+
};
|
|
19952
|
+
}
|
|
19953
|
+
function runVendorSession(input) {
|
|
19954
|
+
const queue = new VendorInputQueue();
|
|
19955
|
+
const run = query({
|
|
19956
|
+
prompt: queue,
|
|
19957
|
+
options: input.options
|
|
19958
|
+
});
|
|
19959
|
+
let closed = false;
|
|
19960
|
+
return {
|
|
19961
|
+
send(text) {
|
|
19962
|
+
if (closed) return;
|
|
19963
|
+
queue.push(vendorUserMessage(text));
|
|
19964
|
+
},
|
|
19965
|
+
async interrupt() {
|
|
19966
|
+
if (closed || typeof run.interrupt !== "function") return;
|
|
19967
|
+
await run.interrupt();
|
|
19968
|
+
},
|
|
19969
|
+
async stopTask(taskId) {
|
|
19970
|
+
if (closed) return;
|
|
19971
|
+
if (typeof run.stopTask !== "function") {
|
|
19972
|
+
throw new TypeError("This Claude Agent SDK build has no stopTask control request.");
|
|
19973
|
+
}
|
|
19974
|
+
await run.stopTask(taskId);
|
|
19975
|
+
},
|
|
19976
|
+
async backgroundTasks(toolUseId) {
|
|
19977
|
+
if (closed) return false;
|
|
19978
|
+
if (typeof run.backgroundTasks !== "function") {
|
|
19979
|
+
throw new TypeError("This Claude Agent SDK build has no background_tasks control request.");
|
|
19980
|
+
}
|
|
19981
|
+
return await run.backgroundTasks(toolUseId);
|
|
19982
|
+
},
|
|
19983
|
+
async getContextUsage() {
|
|
19984
|
+
if (closed || typeof run.getContextUsage !== "function") return null;
|
|
19985
|
+
try {
|
|
19986
|
+
return readVendorContextUsage(await run.getContextUsage());
|
|
19987
|
+
} catch {
|
|
19988
|
+
return null;
|
|
19989
|
+
}
|
|
19990
|
+
},
|
|
19991
|
+
[Symbol.asyncIterator]() {
|
|
19992
|
+
const iterator = run[Symbol.asyncIterator]();
|
|
19993
|
+
return {
|
|
19994
|
+
async next() {
|
|
19995
|
+
const result = await iterator.next();
|
|
19996
|
+
return result.done === true ? { done: true, value: void 0 } : { done: false, value: result.value };
|
|
19997
|
+
}
|
|
19998
|
+
};
|
|
19999
|
+
},
|
|
20000
|
+
close() {
|
|
20001
|
+
if (closed) return;
|
|
20002
|
+
closed = true;
|
|
20003
|
+
queue.close();
|
|
20004
|
+
try {
|
|
20005
|
+
if (typeof run.close === "function") run.close();
|
|
20006
|
+
else {
|
|
20007
|
+
const closing = run.return?.(void 0);
|
|
20008
|
+
if (closing !== void 0) void closing.catch(() => void 0);
|
|
20009
|
+
}
|
|
20010
|
+
} catch {
|
|
20011
|
+
}
|
|
20012
|
+
}
|
|
20013
|
+
};
|
|
20014
|
+
}
|
|
19778
20015
|
|
|
19779
20016
|
// ../../packages/core-agent/src/claude/sdk.ts
|
|
19780
20017
|
var NATIVE_MODEL_ALIASES = /* @__PURE__ */ new Set(["sonnet", "opus", "opus[1m]", "haiku", "fable", "fable[1m]"]);
|
|
@@ -19786,80 +20023,135 @@ async function createClaudeGatewaySdk(options) {
|
|
|
19786
20023
|
const configDir = options.home?.kind === "shared" ? createSharedClaudeConfigHome(options.home.configDir) : await createIsolatedClaudeConfigDir(options.tempRoot);
|
|
19787
20024
|
let disposed = false;
|
|
19788
20025
|
let active = null;
|
|
20026
|
+
const reserveSlot = (kind) => {
|
|
20027
|
+
if (disposed) throw new Error("This Claude gateway SDK instance has been disposed.");
|
|
20028
|
+
if (active) {
|
|
20029
|
+
throw new Error(kind === "turn" ? "A turn is already running on this instance. Await it, or create another instance." : "A turn or session is already running on this instance. Close it, or create another instance.");
|
|
20030
|
+
}
|
|
20031
|
+
const reservation = { close: () => void 0 };
|
|
20032
|
+
active = reservation;
|
|
20033
|
+
return reservation;
|
|
20034
|
+
};
|
|
20035
|
+
const prepareLaunch = async () => {
|
|
20036
|
+
await configDir.writeModelCache({ baseUrl, models: catalogModels, fetchedAt: Date.now() });
|
|
20037
|
+
return claudeGatewayLaunchEnv(inherited, {
|
|
20038
|
+
baseUrl,
|
|
20039
|
+
configDir: configDir.path,
|
|
20040
|
+
homeKind: options.home?.kind === "shared" ? "shared" : "isolated"
|
|
20041
|
+
});
|
|
20042
|
+
};
|
|
20043
|
+
const vendorRunOptions = (request, model, env) => ({
|
|
20044
|
+
env,
|
|
20045
|
+
model,
|
|
20046
|
+
...request.systemPrompt === void 0 ? {} : { systemPrompt: vendorSystemPrompt(request.systemPrompt) },
|
|
20047
|
+
// 패키지가 스스로 지어내는 지시는 없다 — 여기 실리는 것은 전부 호출자가 고른 것이고,
|
|
20048
|
+
// 고르지 않으면 아무것도 붙지 않는다. 두 기본값이 그 규율을 구조로 만든다:
|
|
20049
|
+
// `settingSources: []`가 사용자·프로젝트 설정과 CLAUDE.md를 끄고, `strictMcpConfig`가
|
|
20050
|
+
// 그와 별개인 ambient .mcp.json·플러그인 MCP를 막는다.
|
|
20051
|
+
settingSources: options.settingSources ? [...options.settingSources] : [],
|
|
20052
|
+
strictMcpConfig: options.allowAmbientMcpServers !== true,
|
|
20053
|
+
// 플러그인의 MCP 선언은 읽지 않는다 — 좌표는 호출자가 이미 소유한다.
|
|
20054
|
+
...options.plugins && options.plugins.length > 0 ? { plugins: options.plugins.map((plugin) => ({ type: "local", path: plugin.path, skipMcpDiscovery: true })) } : {},
|
|
20055
|
+
// `--settings`와 같은 자리다. flag 소스로 병합되므로 사용자·프로젝트 설정을 대체하지 않는다.
|
|
20056
|
+
// skillOverrides와 ultracode만 연다 — settings 전체를 열면 호출자가 쓰지 않은 지시가 들어온다.
|
|
20057
|
+
...vendorFlagSettings(options),
|
|
20058
|
+
...request.effort === void 0 ? {} : { effort: request.effort },
|
|
20059
|
+
...request.cwd === void 0 ? {} : { cwd: request.cwd },
|
|
20060
|
+
...request.resume === void 0 ? {} : { resume: request.resume },
|
|
20061
|
+
...request.maxTurns === void 0 ? {} : { maxTurns: request.maxTurns },
|
|
20062
|
+
...request.maxBudgetUsd === void 0 ? {} : { maxBudgetUsd: request.maxBudgetUsd },
|
|
20063
|
+
...request.tools === void 0 ? {} : { tools: [...request.tools] },
|
|
20064
|
+
...request.allowedTools === void 0 ? {} : { allowedTools: [...request.allowedTools] },
|
|
20065
|
+
...request.disallowedTools === void 0 ? {} : { disallowedTools: [...request.disallowedTools] },
|
|
20066
|
+
...request.permissionMode === void 0 ? {} : { permissionMode: request.permissionMode },
|
|
20067
|
+
...request.canUseTool === void 0 ? {} : { canUseTool: vendorCanUseTool(request.canUseTool) },
|
|
20068
|
+
...request.mcpServers === void 0 && request.servedMcpServers === void 0 ? {} : { mcpServers: { ...request.mcpServers, ...vendorServedMcpServers(request.servedMcpServers) } },
|
|
20069
|
+
...request.includePartialMessages === void 0 ? {} : { includePartialMessages: request.includePartialMessages },
|
|
20070
|
+
...request.abortController === void 0 ? {} : { abortController: request.abortController },
|
|
20071
|
+
...request.stderr === void 0 ? {} : { stderr: request.stderr }
|
|
20072
|
+
});
|
|
19789
20073
|
const sdk = {
|
|
19790
20074
|
configDir: configDir.path,
|
|
19791
20075
|
models: Object.freeze(accepted.map((entry) => entry.id)),
|
|
19792
20076
|
async startTurn(turn) {
|
|
19793
|
-
|
|
19794
|
-
|
|
19795
|
-
|
|
19796
|
-
|
|
19797
|
-
|
|
19798
|
-
}
|
|
19799
|
-
const model = resolveTurnModel(turn.model, accepted);
|
|
19800
|
-
await configDir.writeModelCache({ baseUrl, models: catalogModels, fetchedAt: Date.now() });
|
|
19801
|
-
const env = claudeGatewayLaunchEnv(inherited, {
|
|
19802
|
-
baseUrl,
|
|
19803
|
-
configDir: configDir.path,
|
|
19804
|
-
homeKind: options.home?.kind === "shared" ? "shared" : "isolated"
|
|
19805
|
-
});
|
|
19806
|
-
const run = runVendorQuery({
|
|
19807
|
-
prompt: turn.prompt,
|
|
19808
|
-
options: {
|
|
19809
|
-
env,
|
|
19810
|
-
model,
|
|
19811
|
-
...turn.systemPrompt === void 0 ? {} : { systemPrompt: vendorSystemPrompt(turn.systemPrompt) },
|
|
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 } } } : {},
|
|
19822
|
-
...turn.effort === void 0 ? {} : { effort: turn.effort },
|
|
19823
|
-
...turn.cwd === void 0 ? {} : { cwd: turn.cwd },
|
|
19824
|
-
...turn.resume === void 0 ? {} : { resume: turn.resume },
|
|
19825
|
-
...turn.maxTurns === void 0 ? {} : { maxTurns: turn.maxTurns },
|
|
19826
|
-
...turn.maxBudgetUsd === void 0 ? {} : { maxBudgetUsd: turn.maxBudgetUsd },
|
|
19827
|
-
...turn.tools === void 0 ? {} : { tools: [...turn.tools] },
|
|
19828
|
-
...turn.allowedTools === void 0 ? {} : { allowedTools: [...turn.allowedTools] },
|
|
19829
|
-
...turn.disallowedTools === void 0 ? {} : { disallowedTools: [...turn.disallowedTools] },
|
|
19830
|
-
...turn.permissionMode === void 0 ? {} : { permissionMode: turn.permissionMode },
|
|
19831
|
-
...turn.canUseTool === void 0 ? {} : { canUseTool: vendorCanUseTool(turn.canUseTool) },
|
|
19832
|
-
...turn.mcpServers === void 0 && turn.servedMcpServers === void 0 ? {} : { mcpServers: { ...turn.mcpServers, ...vendorServedMcpServers(turn.servedMcpServers) } },
|
|
19833
|
-
...turn.includePartialMessages === void 0 ? {} : { includePartialMessages: turn.includePartialMessages },
|
|
19834
|
-
...turn.abortController === void 0 ? {} : { abortController: turn.abortController },
|
|
19835
|
-
...turn.stderr === void 0 ? {} : { stderr: turn.stderr }
|
|
20077
|
+
const reservation = reserveSlot("turn");
|
|
20078
|
+
try {
|
|
20079
|
+
assertKnownTurnKeys(turn);
|
|
20080
|
+
if (typeof turn.prompt !== "string" || turn.prompt.length === 0) {
|
|
20081
|
+
throw new TypeError("turn.prompt must be a non-empty string.");
|
|
19836
20082
|
}
|
|
19837
|
-
|
|
19838
|
-
|
|
19839
|
-
|
|
19840
|
-
|
|
19841
|
-
|
|
19842
|
-
|
|
19843
|
-
|
|
19844
|
-
|
|
19845
|
-
|
|
19846
|
-
|
|
19847
|
-
|
|
19848
|
-
|
|
20083
|
+
const model = resolveTurnModel(turn.model, accepted);
|
|
20084
|
+
const env = await prepareLaunch();
|
|
20085
|
+
const run = runVendorQuery({
|
|
20086
|
+
prompt: turn.prompt,
|
|
20087
|
+
options: vendorRunOptions(turn, model, env)
|
|
20088
|
+
});
|
|
20089
|
+
const release = () => {
|
|
20090
|
+
if (active === tracked) active = null;
|
|
20091
|
+
};
|
|
20092
|
+
const tracked = {
|
|
20093
|
+
[Symbol.asyncIterator]() {
|
|
20094
|
+
const iterator = run[Symbol.asyncIterator]();
|
|
20095
|
+
return {
|
|
20096
|
+
async next() {
|
|
20097
|
+
const result = await iterator.next();
|
|
20098
|
+
if (result.done === true) release();
|
|
20099
|
+
return result;
|
|
20100
|
+
}
|
|
20101
|
+
};
|
|
20102
|
+
},
|
|
20103
|
+
close() {
|
|
20104
|
+
try {
|
|
20105
|
+
run.close();
|
|
20106
|
+
} finally {
|
|
20107
|
+
release();
|
|
20108
|
+
}
|
|
20109
|
+
},
|
|
20110
|
+
getContextUsage: () => run.getContextUsage()
|
|
20111
|
+
};
|
|
20112
|
+
if (active !== reservation) {
|
|
20113
|
+
run.close();
|
|
20114
|
+
throw new Error("This Claude gateway SDK instance has been disposed.");
|
|
20115
|
+
}
|
|
20116
|
+
active = tracked;
|
|
20117
|
+
return tracked;
|
|
20118
|
+
} catch (error51) {
|
|
20119
|
+
if (active === reservation) active = null;
|
|
20120
|
+
throw error51;
|
|
20121
|
+
}
|
|
20122
|
+
},
|
|
20123
|
+
async openSession(request) {
|
|
20124
|
+
const reservation = reserveSlot("session");
|
|
20125
|
+
try {
|
|
20126
|
+
assertKnownSessionKeys(request);
|
|
20127
|
+
const model = resolveTurnModel(request.model, accepted);
|
|
20128
|
+
const env = await prepareLaunch();
|
|
20129
|
+
const session = runVendorSession({ options: vendorRunOptions(request, model, env) });
|
|
20130
|
+
const tracked = {
|
|
20131
|
+
send: (text) => session.send(text),
|
|
20132
|
+
interrupt: () => session.interrupt(),
|
|
20133
|
+
stopTask: (taskId) => session.stopTask(taskId),
|
|
20134
|
+
backgroundTasks: (toolUseId) => session.backgroundTasks(toolUseId),
|
|
20135
|
+
getContextUsage: () => session.getContextUsage(),
|
|
20136
|
+
[Symbol.asyncIterator]: () => session[Symbol.asyncIterator](),
|
|
20137
|
+
close() {
|
|
20138
|
+
try {
|
|
20139
|
+
session.close();
|
|
20140
|
+
} finally {
|
|
20141
|
+
if (active === tracked) active = null;
|
|
19849
20142
|
}
|
|
19850
|
-
};
|
|
19851
|
-
},
|
|
19852
|
-
close() {
|
|
19853
|
-
try {
|
|
19854
|
-
run.close();
|
|
19855
|
-
} finally {
|
|
19856
|
-
release();
|
|
19857
20143
|
}
|
|
19858
|
-
}
|
|
19859
|
-
|
|
19860
|
-
|
|
19861
|
-
|
|
19862
|
-
|
|
20144
|
+
};
|
|
20145
|
+
if (active !== reservation) {
|
|
20146
|
+
session.close();
|
|
20147
|
+
throw new Error("This Claude gateway SDK instance has been disposed.");
|
|
20148
|
+
}
|
|
20149
|
+
active = tracked;
|
|
20150
|
+
return tracked;
|
|
20151
|
+
} catch (error51) {
|
|
20152
|
+
if (active === reservation) active = null;
|
|
20153
|
+
throw error51;
|
|
20154
|
+
}
|
|
19863
20155
|
},
|
|
19864
20156
|
async dispose() {
|
|
19865
20157
|
if (disposed) return;
|
|
@@ -19941,6 +20233,14 @@ function vendorCanUseTool(canUseTool) {
|
|
|
19941
20233
|
}
|
|
19942
20234
|
};
|
|
19943
20235
|
}
|
|
20236
|
+
function vendorFlagSettings(options) {
|
|
20237
|
+
const settings = {};
|
|
20238
|
+
if (options.skillOverrides && Object.keys(options.skillOverrides).length > 0) {
|
|
20239
|
+
settings.skillOverrides = { ...options.skillOverrides };
|
|
20240
|
+
}
|
|
20241
|
+
if (options.ultracode === true) settings.ultracode = true;
|
|
20242
|
+
return Object.keys(settings).length > 0 ? { settings } : {};
|
|
20243
|
+
}
|
|
19944
20244
|
function vendorSystemPrompt(systemPrompt) {
|
|
19945
20245
|
const text = systemPrompt?.text;
|
|
19946
20246
|
if (typeof text !== "string" || text.length === 0) {
|
|
@@ -19958,6 +20258,14 @@ function assertKnownTurnKeys(turn) {
|
|
|
19958
20258
|
);
|
|
19959
20259
|
}
|
|
19960
20260
|
}
|
|
20261
|
+
function assertKnownSessionKeys(request) {
|
|
20262
|
+
const unknown2 = Object.keys(request).filter((key) => !CLAUDE_GATEWAY_SESSION_KEYS.includes(key));
|
|
20263
|
+
if (unknown2.length > 0) {
|
|
20264
|
+
throw new TypeError(
|
|
20265
|
+
`Unsupported session option(s): ${unknown2.join(", ")}. Only an instruction the caller authored may reach the child, through systemPrompt; every other instruction channel is closed, so those options do not exist. A session receives its prompts through send(), never as an option.`
|
|
20266
|
+
);
|
|
20267
|
+
}
|
|
20268
|
+
}
|
|
19961
20269
|
function vendorServedMcpServers(servers) {
|
|
19962
20270
|
if (!servers?.length) return {};
|
|
19963
20271
|
return Object.fromEntries(servers.map((server) => [server.name, {
|