@dotobokuri/fleet-console 1.62.0 → 1.64.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 +1 -0
- package/dist/cli.mjs +571 -96
- package/dist/client/assets/{_baseUniq-B6CLI4cf.js → _baseUniq-DurhRkUz.js} +1 -1
- package/dist/client/assets/{arc-r3CRqUQ5.js → arc-CRs5BdYr.js} +1 -1
- package/dist/client/assets/{architectureDiagram-Q4EWVU46-CJfgw2eJ.js → architectureDiagram-Q4EWVU46-Djo8uCUV.js} +1 -1
- package/dist/client/assets/{blockDiagram-DXYQGD6D-CkBuOBUs.js → blockDiagram-DXYQGD6D-hQdc3yPb.js} +1 -1
- package/dist/client/assets/{c4Diagram-AHTNJAMY-Ln5TenJL.js → c4Diagram-AHTNJAMY-Czv6wUeb.js} +1 -1
- package/dist/client/assets/channel-DluRfcgW.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-BiYTw90k.js → chunk-4BX2VUAB-DXjqdOUQ.js} +1 -1
- package/dist/client/assets/{chunk-4TB4RGXK-nPQaGu1w.js → chunk-4TB4RGXK-vvWT5R7G.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-BU2oCJkl.js → chunk-55IACEB6-DMDBDn4n.js} +1 -1
- package/dist/client/assets/{chunk-EDXVE4YY-Ej7y6KOv.js → chunk-EDXVE4YY-CvZM4UpD.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-hOkBpfhE.js → chunk-FMBD7UC4-BArng_V9.js} +1 -1
- package/dist/client/assets/{chunk-OYMX7WX6-Cv43HwvT.js → chunk-OYMX7WX6-DwNWyoK7.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-Bi7AEJxb.js → chunk-QZHKN3VN--guvcrYz.js} +1 -1
- package/dist/client/assets/{chunk-YZCP3GAM-CBwmJdga.js → chunk-YZCP3GAM-BqxZQZyX.js} +1 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-CwNh44Lk.js +1 -0
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-CwNh44Lk.js +1 -0
- package/dist/client/assets/clone-ClWdaAWG.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-ERDn7bly.js → cose-bilkent-S5V4N54A-BMg_LOnu.js} +1 -1
- package/dist/client/assets/{dagre-KV5264BT-DapcbnEu.js → dagre-KV5264BT-Dr7w5bQR.js} +1 -1
- package/dist/client/assets/{diagram-5BDNPKRD-DbRBVaVH.js → diagram-5BDNPKRD-B3mTbXqP.js} +1 -1
- package/dist/client/assets/{diagram-G4DWMVQ6-CLP0MwBH.js → diagram-G4DWMVQ6-qb3u5_YF.js} +1 -1
- package/dist/client/assets/{diagram-MMDJMWI5-BMZ9AsEI.js → diagram-MMDJMWI5-CBBgto41.js} +1 -1
- package/dist/client/assets/{diagram-TYMM5635-DtPPkZ2y.js → diagram-TYMM5635-Cmo3cjOQ.js} +1 -1
- package/dist/client/assets/{erDiagram-SMLLAGMA-DIvbhhTb.js → erDiagram-SMLLAGMA-HeqZPhtI.js} +1 -1
- package/dist/client/assets/{flowDiagram-DWJPFMVM-C_R3RpTk.js → flowDiagram-DWJPFMVM-C34ZouQN.js} +1 -1
- package/dist/client/assets/{ganttDiagram-T4ZO3ILL-eaIqpHsY.js → ganttDiagram-T4ZO3ILL-BL2_YoJe.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-UUTBAWPF-CYCsHY_E.js → gitGraphDiagram-UUTBAWPF-DSC8Gr0E.js} +1 -1
- package/dist/client/assets/{graph-HfvOsgk2.js → graph-C4jsVwYI.js} +1 -1
- package/dist/client/assets/index-BuMY4qU-.js +465 -0
- package/dist/client/assets/index-DxjgOu3C.css +1 -0
- package/dist/client/assets/{infoDiagram-42DDH7IO-rmDH5YRZ.js → infoDiagram-42DDH7IO-BX_lYqHx.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-EAZO3mIY.js → ishikawaDiagram-UXIWVN3A-CsXWVwyY.js} +1 -1
- package/dist/client/assets/{journeyDiagram-VCZTEJTY-4vWYlXOF.js → journeyDiagram-VCZTEJTY-ETPWVMNg.js} +1 -1
- package/dist/client/assets/{kanban-definition-6JOO6SKY-CkkSfsbD.js → kanban-definition-6JOO6SKY-m7hLIKgZ.js} +1 -1
- package/dist/client/assets/{layout-DWbhbrdO.js → layout-DrRXjJzL.js} +1 -1
- package/dist/client/assets/{linear-BjRBsqi0.js → linear-DzDd2m9j.js} +1 -1
- package/dist/client/assets/{mermaid.core-RuG-kUU2.js → mermaid.core-BHkit2JY.js} +4 -4
- package/dist/client/assets/{min-D--jZrv5.js → min-DtwEer1D.js} +1 -1
- package/dist/client/assets/{mindmap-definition-QFDTVHPH-fLwhQBcX.js → mindmap-definition-QFDTVHPH-BO-uheb7.js} +1 -1
- package/dist/client/assets/{pieDiagram-DEJITSTG-DJkWnAQK.js → pieDiagram-DEJITSTG-B_4VqNKt.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-34T5L4WZ-Kd4q9kEz.js → quadrantDiagram-34T5L4WZ-HhtqXdkD.js} +1 -1
- package/dist/client/assets/{requirementDiagram-MS252O5E-Bgrtq8Kh.js → requirementDiagram-MS252O5E-CSotIpLH.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-XADWPNL6-BW9BdQ-8.js → sankeyDiagram-XADWPNL6-a8krBcEy.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-FGHM5R23-KpgcxIJb.js → sequenceDiagram-FGHM5R23-D9Tlp8oT.js} +1 -1
- package/dist/client/assets/{stateDiagram-FHFEXIEX-CNaCHtL2.js → stateDiagram-FHFEXIEX-CbEP_Jmm.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-B9iCjiGH.js +1 -0
- package/dist/client/assets/{timeline-definition-GMOUNBTQ-MGPKEXGI.js → timeline-definition-GMOUNBTQ-CxAJtY22.js} +1 -1
- package/dist/client/assets/{vennDiagram-DHZGUBPP-bDOCVDJ1.js → vennDiagram-DHZGUBPP-BSTXi411.js} +1 -1
- package/dist/client/assets/{wardley-RL74JXVD-DuvLJQPg.js → wardley-RL74JXVD-BipCMOcx.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-NUSXRM2D-BdBIEtIl.js → wardleyDiagram-NUSXRM2D-BudrJ8a1.js} +1 -1
- package/dist/client/assets/{xychartDiagram-5P7HB3ND-vycMI6c3.js → xychartDiagram-5P7HB3ND-BYlMZf2g.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/fleet-plugins/ledger/routes.mjs +265 -12
- package/dist/fleet-plugins/quota/routes.mjs +265 -12
- package/dist/fleet-plugins/scuttlebutt/routes.mjs +545 -79
- package/dist/fleet-plugins/terminal/routes.mjs +1150 -237
- package/dist/fleet.mjs +954 -300
- package/package.json +1 -1
- package/dist/client/assets/channel-DBCxCWtI.js +0 -1
- package/dist/client/assets/classDiagram-6PBFFD2Q-QQSWiJjR.js +0 -1
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-QQSWiJjR.js +0 -1
- package/dist/client/assets/clone-vom5rXcJ.js +0 -1
- package/dist/client/assets/index-C2erdgSj.css +0 -1
- package/dist/client/assets/index-CrEYBugN.js +0 -465
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-D3k4sLJ4.js +0 -1
|
@@ -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 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 512K (524288) and explicit 1M (1000000) variants on the same upstream bases",
|
|
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: [
|
|
@@ -17845,6 +17841,264 @@ var models_default = {
|
|
|
17845
17841
|
"gpt-5.6-luna-fast"
|
|
17846
17842
|
],
|
|
17847
17843
|
benchmarkKey: "gpt-5.6-luna"
|
|
17844
|
+
},
|
|
17845
|
+
{
|
|
17846
|
+
modelId: "gpt-5.6-sol-512k",
|
|
17847
|
+
name: "GPT-5.6-Sol-512K",
|
|
17848
|
+
capabilityClass: "flagship",
|
|
17849
|
+
providerModelId: "gpt-5.6-sol",
|
|
17850
|
+
contextWindow: 524288,
|
|
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-512k"
|
|
17863
|
+
],
|
|
17864
|
+
benchmarkKey: "gpt-5.6-sol"
|
|
17865
|
+
},
|
|
17866
|
+
{
|
|
17867
|
+
modelId: "gpt-5.6-sol-512k-fast",
|
|
17868
|
+
name: "GPT-5.6-Sol-512K-Fast",
|
|
17869
|
+
capabilityClass: "flagship",
|
|
17870
|
+
providerModelId: "gpt-5.6-sol",
|
|
17871
|
+
serviceTier: "priority",
|
|
17872
|
+
contextWindow: 524288,
|
|
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-512k-fast"
|
|
17885
|
+
],
|
|
17886
|
+
benchmarkKey: "gpt-5.6-sol"
|
|
17887
|
+
},
|
|
17888
|
+
{
|
|
17889
|
+
modelId: "gpt-5.6-luna-512k",
|
|
17890
|
+
name: "GPT-5.6-Luna-512K",
|
|
17891
|
+
capabilityClass: "light",
|
|
17892
|
+
providerModelId: "gpt-5.6-luna",
|
|
17893
|
+
contextWindow: 524288,
|
|
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-512k"
|
|
17906
|
+
],
|
|
17907
|
+
benchmarkKey: "gpt-5.6-luna"
|
|
17908
|
+
},
|
|
17909
|
+
{
|
|
17910
|
+
modelId: "gpt-5.6-luna-512k-fast",
|
|
17911
|
+
name: "GPT-5.6-Luna-512K-Fast",
|
|
17912
|
+
capabilityClass: "light",
|
|
17913
|
+
providerModelId: "gpt-5.6-luna",
|
|
17914
|
+
serviceTier: "priority",
|
|
17915
|
+
contextWindow: 524288,
|
|
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-512k-fast"
|
|
17928
|
+
],
|
|
17929
|
+
benchmarkKey: "gpt-5.6-luna"
|
|
17930
|
+
},
|
|
17931
|
+
{
|
|
17932
|
+
modelId: "gpt-5.6-terra-512k",
|
|
17933
|
+
name: "GPT-5.6-Terra-512K",
|
|
17934
|
+
capabilityClass: "standard",
|
|
17935
|
+
providerModelId: "gpt-5.6-terra",
|
|
17936
|
+
contextWindow: 524288,
|
|
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-512k"
|
|
17949
|
+
],
|
|
17950
|
+
benchmarkKey: "gpt-5.6-terra"
|
|
17951
|
+
},
|
|
17952
|
+
{
|
|
17953
|
+
modelId: "gpt-5.6-terra-512k-fast",
|
|
17954
|
+
name: "GPT-5.6-Terra-512K-Fast",
|
|
17955
|
+
capabilityClass: "standard",
|
|
17956
|
+
providerModelId: "gpt-5.6-terra",
|
|
17957
|
+
serviceTier: "priority",
|
|
17958
|
+
contextWindow: 524288,
|
|
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-512k-fast"
|
|
17971
|
+
],
|
|
17972
|
+
benchmarkKey: "gpt-5.6-terra"
|
|
17973
|
+
},
|
|
17974
|
+
{
|
|
17975
|
+
modelId: "gpt-5.6-sol-1m",
|
|
17976
|
+
name: "GPT-5.6-Sol-1M",
|
|
17977
|
+
capabilityClass: "flagship",
|
|
17978
|
+
providerModelId: "gpt-5.6-sol",
|
|
17979
|
+
contextWindow: 1e6,
|
|
17980
|
+
effort: {
|
|
17981
|
+
supported: true,
|
|
17982
|
+
levels: [
|
|
17983
|
+
"low",
|
|
17984
|
+
"medium",
|
|
17985
|
+
"high",
|
|
17986
|
+
"xhigh",
|
|
17987
|
+
"max"
|
|
17988
|
+
]
|
|
17989
|
+
},
|
|
17990
|
+
aliases: [
|
|
17991
|
+
"gpt-5.6-sol-1m"
|
|
17992
|
+
],
|
|
17993
|
+
benchmarkKey: "gpt-5.6-sol"
|
|
17994
|
+
},
|
|
17995
|
+
{
|
|
17996
|
+
modelId: "gpt-5.6-sol-1m-fast",
|
|
17997
|
+
name: "GPT-5.6-Sol-1M-Fast",
|
|
17998
|
+
capabilityClass: "flagship",
|
|
17999
|
+
providerModelId: "gpt-5.6-sol",
|
|
18000
|
+
serviceTier: "priority",
|
|
18001
|
+
contextWindow: 1e6,
|
|
18002
|
+
effort: {
|
|
18003
|
+
supported: true,
|
|
18004
|
+
levels: [
|
|
18005
|
+
"low",
|
|
18006
|
+
"medium",
|
|
18007
|
+
"high",
|
|
18008
|
+
"xhigh",
|
|
18009
|
+
"max"
|
|
18010
|
+
]
|
|
18011
|
+
},
|
|
18012
|
+
aliases: [
|
|
18013
|
+
"gpt-5.6-sol-1m-fast"
|
|
18014
|
+
],
|
|
18015
|
+
benchmarkKey: "gpt-5.6-sol"
|
|
18016
|
+
},
|
|
18017
|
+
{
|
|
18018
|
+
modelId: "gpt-5.6-luna-1m",
|
|
18019
|
+
name: "GPT-5.6-Luna-1M",
|
|
18020
|
+
capabilityClass: "light",
|
|
18021
|
+
providerModelId: "gpt-5.6-luna",
|
|
18022
|
+
contextWindow: 1e6,
|
|
18023
|
+
effort: {
|
|
18024
|
+
supported: true,
|
|
18025
|
+
levels: [
|
|
18026
|
+
"low",
|
|
18027
|
+
"medium",
|
|
18028
|
+
"high",
|
|
18029
|
+
"xhigh",
|
|
18030
|
+
"max"
|
|
18031
|
+
]
|
|
18032
|
+
},
|
|
18033
|
+
aliases: [
|
|
18034
|
+
"gpt-5.6-luna-1m"
|
|
18035
|
+
],
|
|
18036
|
+
benchmarkKey: "gpt-5.6-luna"
|
|
18037
|
+
},
|
|
18038
|
+
{
|
|
18039
|
+
modelId: "gpt-5.6-luna-1m-fast",
|
|
18040
|
+
name: "GPT-5.6-Luna-1M-Fast",
|
|
18041
|
+
capabilityClass: "light",
|
|
18042
|
+
providerModelId: "gpt-5.6-luna",
|
|
18043
|
+
serviceTier: "priority",
|
|
18044
|
+
contextWindow: 1e6,
|
|
18045
|
+
effort: {
|
|
18046
|
+
supported: true,
|
|
18047
|
+
levels: [
|
|
18048
|
+
"low",
|
|
18049
|
+
"medium",
|
|
18050
|
+
"high",
|
|
18051
|
+
"xhigh",
|
|
18052
|
+
"max"
|
|
18053
|
+
]
|
|
18054
|
+
},
|
|
18055
|
+
aliases: [
|
|
18056
|
+
"gpt-5.6-luna-1m-fast"
|
|
18057
|
+
],
|
|
18058
|
+
benchmarkKey: "gpt-5.6-luna"
|
|
18059
|
+
},
|
|
18060
|
+
{
|
|
18061
|
+
modelId: "gpt-5.6-terra-1m",
|
|
18062
|
+
name: "GPT-5.6-Terra-1M",
|
|
18063
|
+
capabilityClass: "standard",
|
|
18064
|
+
providerModelId: "gpt-5.6-terra",
|
|
18065
|
+
contextWindow: 1e6,
|
|
18066
|
+
effort: {
|
|
18067
|
+
supported: true,
|
|
18068
|
+
levels: [
|
|
18069
|
+
"low",
|
|
18070
|
+
"medium",
|
|
18071
|
+
"high",
|
|
18072
|
+
"xhigh",
|
|
18073
|
+
"max"
|
|
18074
|
+
]
|
|
18075
|
+
},
|
|
18076
|
+
aliases: [
|
|
18077
|
+
"gpt-5.6-terra-1m"
|
|
18078
|
+
],
|
|
18079
|
+
benchmarkKey: "gpt-5.6-terra"
|
|
18080
|
+
},
|
|
18081
|
+
{
|
|
18082
|
+
modelId: "gpt-5.6-terra-1m-fast",
|
|
18083
|
+
name: "GPT-5.6-Terra-1M-Fast",
|
|
18084
|
+
capabilityClass: "standard",
|
|
18085
|
+
providerModelId: "gpt-5.6-terra",
|
|
18086
|
+
serviceTier: "priority",
|
|
18087
|
+
contextWindow: 1e6,
|
|
18088
|
+
effort: {
|
|
18089
|
+
supported: true,
|
|
18090
|
+
levels: [
|
|
18091
|
+
"low",
|
|
18092
|
+
"medium",
|
|
18093
|
+
"high",
|
|
18094
|
+
"xhigh",
|
|
18095
|
+
"max"
|
|
18096
|
+
]
|
|
18097
|
+
},
|
|
18098
|
+
aliases: [
|
|
18099
|
+
"gpt-5.6-terra-1m-fast"
|
|
18100
|
+
],
|
|
18101
|
+
benchmarkKey: "gpt-5.6-terra"
|
|
17848
18102
|
}
|
|
17849
18103
|
]
|
|
17850
18104
|
},
|
|
@@ -18325,8 +18579,7 @@ var GATEWAY_REASONING_EFFORTS = [
|
|
|
18325
18579
|
"medium",
|
|
18326
18580
|
"high",
|
|
18327
18581
|
"xhigh",
|
|
18328
|
-
"max"
|
|
18329
|
-
"ultra"
|
|
18582
|
+
"max"
|
|
18330
18583
|
];
|
|
18331
18584
|
var GatewayEffortUpstreamModelIdsSchema = external_exports.partialRecord(
|
|
18332
18585
|
external_exports.enum(GATEWAY_REASONING_EFFORTS),
|
|
@@ -18714,8 +18967,7 @@ var ANTHROPIC_EFFORT_RUNGS = /* @__PURE__ */ new Set([
|
|
|
18714
18967
|
"medium",
|
|
18715
18968
|
"high",
|
|
18716
18969
|
"xhigh",
|
|
18717
|
-
"max"
|
|
18718
|
-
"ultra"
|
|
18970
|
+
"max"
|
|
18719
18971
|
]);
|
|
18720
18972
|
function freezeGatewayModelEffort(effort) {
|
|
18721
18973
|
if (!effort?.supported) return UNSUPPORTED_GATEWAY_MODEL_EFFORT;
|
|
@@ -19660,6 +19912,9 @@ var CLAUDE_GATEWAY_TURN_KEYS = Object.freeze([
|
|
|
19660
19912
|
"abortController",
|
|
19661
19913
|
"stderr"
|
|
19662
19914
|
]);
|
|
19915
|
+
var CLAUDE_GATEWAY_SESSION_KEYS = Object.freeze(
|
|
19916
|
+
CLAUDE_GATEWAY_TURN_KEYS.filter((key) => key !== "prompt")
|
|
19917
|
+
);
|
|
19663
19918
|
|
|
19664
19919
|
// ../../packages/core-agent/src/claude/launch-env.ts
|
|
19665
19920
|
var CLAUDE_GATEWAY_MODEL_CACHE_RELPATH = "cache/gateway-models.json";
|
|
@@ -19720,6 +19975,32 @@ async function createIsolatedClaudeConfigDir(tempRoot = tmpdir()) {
|
|
|
19720
19975
|
}
|
|
19721
19976
|
};
|
|
19722
19977
|
}
|
|
19978
|
+
function readVendorContextUsage(response) {
|
|
19979
|
+
if (typeof response !== "object" || response === null) return null;
|
|
19980
|
+
const usage = response;
|
|
19981
|
+
if (typeof usage.totalTokens !== "number" || typeof usage.maxTokens !== "number") return null;
|
|
19982
|
+
const rows = Array.isArray(usage.categories) ? usage.categories : [];
|
|
19983
|
+
const memory = Array.isArray(usage.memoryFiles) ? usage.memoryFiles : [];
|
|
19984
|
+
const mcp = Array.isArray(usage.mcpTools) ? usage.mcpTools : [];
|
|
19985
|
+
return {
|
|
19986
|
+
total: usage.totalTokens,
|
|
19987
|
+
max: usage.maxTokens,
|
|
19988
|
+
model: typeof usage.model === "string" ? usage.model : "",
|
|
19989
|
+
compactAt: usage.isAutoCompactEnabled === true && typeof usage.autoCompactThreshold === "number" ? usage.autoCompactThreshold : null,
|
|
19990
|
+
categories: rows.flatMap((row) => {
|
|
19991
|
+
const entry = row;
|
|
19992
|
+
return typeof entry?.name === "string" && typeof entry.tokens === "number" ? [{ name: entry.name, tokens: entry.tokens, deferred: entry.isDeferred === true }] : [];
|
|
19993
|
+
}),
|
|
19994
|
+
memoryFiles: memory.flatMap((row) => {
|
|
19995
|
+
const entry = row;
|
|
19996
|
+
return typeof entry?.path === "string" && typeof entry.tokens === "number" ? [{ path: entry.path, tokens: entry.tokens }] : [];
|
|
19997
|
+
}),
|
|
19998
|
+
mcpTools: mcp.flatMap((row) => {
|
|
19999
|
+
const entry = row;
|
|
20000
|
+
return typeof entry?.name === "string" && typeof entry.tokens === "number" ? [{ name: entry.name, server: typeof entry.serverName === "string" ? entry.serverName : "", tokens: entry.tokens }] : [];
|
|
20001
|
+
})
|
|
20002
|
+
};
|
|
20003
|
+
}
|
|
19723
20004
|
function runVendorQuery(input) {
|
|
19724
20005
|
const run = query({
|
|
19725
20006
|
prompt: input.prompt,
|
|
@@ -19727,6 +20008,14 @@ function runVendorQuery(input) {
|
|
|
19727
20008
|
});
|
|
19728
20009
|
let closed = false;
|
|
19729
20010
|
return {
|
|
20011
|
+
async getContextUsage() {
|
|
20012
|
+
if (closed || typeof run.getContextUsage !== "function") return null;
|
|
20013
|
+
try {
|
|
20014
|
+
return readVendorContextUsage(await run.getContextUsage());
|
|
20015
|
+
} catch {
|
|
20016
|
+
return null;
|
|
20017
|
+
}
|
|
20018
|
+
},
|
|
19730
20019
|
[Symbol.asyncIterator]() {
|
|
19731
20020
|
const iterator = run[Symbol.asyncIterator]();
|
|
19732
20021
|
return {
|
|
@@ -19747,6 +20036,111 @@ function runVendorQuery(input) {
|
|
|
19747
20036
|
}
|
|
19748
20037
|
};
|
|
19749
20038
|
}
|
|
20039
|
+
var VendorInputQueue = class {
|
|
20040
|
+
pending = [];
|
|
20041
|
+
waiting = null;
|
|
20042
|
+
closed = false;
|
|
20043
|
+
push(message2) {
|
|
20044
|
+
if (this.closed) return;
|
|
20045
|
+
const waiting = this.waiting;
|
|
20046
|
+
if (waiting) {
|
|
20047
|
+
this.waiting = null;
|
|
20048
|
+
waiting({ done: false, value: message2 });
|
|
20049
|
+
return;
|
|
20050
|
+
}
|
|
20051
|
+
this.pending.push(message2);
|
|
20052
|
+
}
|
|
20053
|
+
close() {
|
|
20054
|
+
if (this.closed) return;
|
|
20055
|
+
this.closed = true;
|
|
20056
|
+
const waiting = this.waiting;
|
|
20057
|
+
if (waiting) {
|
|
20058
|
+
this.waiting = null;
|
|
20059
|
+
waiting({ done: true, value: void 0 });
|
|
20060
|
+
}
|
|
20061
|
+
}
|
|
20062
|
+
[Symbol.asyncIterator]() {
|
|
20063
|
+
return {
|
|
20064
|
+
next: async () => {
|
|
20065
|
+
if (this.pending.length > 0) return { done: false, value: this.pending.shift() };
|
|
20066
|
+
if (this.closed) return { done: true, value: void 0 };
|
|
20067
|
+
return await new Promise((resolve) => {
|
|
20068
|
+
this.waiting = resolve;
|
|
20069
|
+
});
|
|
20070
|
+
}
|
|
20071
|
+
};
|
|
20072
|
+
}
|
|
20073
|
+
};
|
|
20074
|
+
function vendorUserMessage(text) {
|
|
20075
|
+
return {
|
|
20076
|
+
type: "user",
|
|
20077
|
+
session_id: "",
|
|
20078
|
+
message: { role: "user", content: [{ type: "text", text }] },
|
|
20079
|
+
parent_tool_use_id: null
|
|
20080
|
+
};
|
|
20081
|
+
}
|
|
20082
|
+
function runVendorSession(input) {
|
|
20083
|
+
const queue = new VendorInputQueue();
|
|
20084
|
+
const run = query({
|
|
20085
|
+
prompt: queue,
|
|
20086
|
+
options: input.options
|
|
20087
|
+
});
|
|
20088
|
+
let closed = false;
|
|
20089
|
+
return {
|
|
20090
|
+
send(text) {
|
|
20091
|
+
if (closed) return;
|
|
20092
|
+
queue.push(vendorUserMessage(text));
|
|
20093
|
+
},
|
|
20094
|
+
async interrupt() {
|
|
20095
|
+
if (closed || typeof run.interrupt !== "function") return;
|
|
20096
|
+
await run.interrupt();
|
|
20097
|
+
},
|
|
20098
|
+
async stopTask(taskId) {
|
|
20099
|
+
if (closed) return;
|
|
20100
|
+
if (typeof run.stopTask !== "function") {
|
|
20101
|
+
throw new TypeError("This Claude Agent SDK build has no stopTask control request.");
|
|
20102
|
+
}
|
|
20103
|
+
await run.stopTask(taskId);
|
|
20104
|
+
},
|
|
20105
|
+
async backgroundTasks(toolUseId) {
|
|
20106
|
+
if (closed) return false;
|
|
20107
|
+
if (typeof run.backgroundTasks !== "function") {
|
|
20108
|
+
throw new TypeError("This Claude Agent SDK build has no background_tasks control request.");
|
|
20109
|
+
}
|
|
20110
|
+
return await run.backgroundTasks(toolUseId);
|
|
20111
|
+
},
|
|
20112
|
+
async getContextUsage() {
|
|
20113
|
+
if (closed || typeof run.getContextUsage !== "function") return null;
|
|
20114
|
+
try {
|
|
20115
|
+
return readVendorContextUsage(await run.getContextUsage());
|
|
20116
|
+
} catch {
|
|
20117
|
+
return null;
|
|
20118
|
+
}
|
|
20119
|
+
},
|
|
20120
|
+
[Symbol.asyncIterator]() {
|
|
20121
|
+
const iterator = run[Symbol.asyncIterator]();
|
|
20122
|
+
return {
|
|
20123
|
+
async next() {
|
|
20124
|
+
const result = await iterator.next();
|
|
20125
|
+
return result.done === true ? { done: true, value: void 0 } : { done: false, value: result.value };
|
|
20126
|
+
}
|
|
20127
|
+
};
|
|
20128
|
+
},
|
|
20129
|
+
close() {
|
|
20130
|
+
if (closed) return;
|
|
20131
|
+
closed = true;
|
|
20132
|
+
queue.close();
|
|
20133
|
+
try {
|
|
20134
|
+
if (typeof run.close === "function") run.close();
|
|
20135
|
+
else {
|
|
20136
|
+
const closing = run.return?.(void 0);
|
|
20137
|
+
if (closing !== void 0) void closing.catch(() => void 0);
|
|
20138
|
+
}
|
|
20139
|
+
} catch {
|
|
20140
|
+
}
|
|
20141
|
+
}
|
|
20142
|
+
};
|
|
20143
|
+
}
|
|
19750
20144
|
|
|
19751
20145
|
// ../../packages/core-agent/src/claude/sdk.ts
|
|
19752
20146
|
var NATIVE_MODEL_ALIASES = /* @__PURE__ */ new Set(["sonnet", "opus", "opus[1m]", "haiku", "fable", "fable[1m]"]);
|
|
@@ -19758,79 +20152,135 @@ async function createClaudeGatewaySdk(options) {
|
|
|
19758
20152
|
const configDir = options.home?.kind === "shared" ? createSharedClaudeConfigHome(options.home.configDir) : await createIsolatedClaudeConfigDir(options.tempRoot);
|
|
19759
20153
|
let disposed = false;
|
|
19760
20154
|
let active = null;
|
|
20155
|
+
const reserveSlot = (kind) => {
|
|
20156
|
+
if (disposed) throw new Error("This Claude gateway SDK instance has been disposed.");
|
|
20157
|
+
if (active) {
|
|
20158
|
+
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.");
|
|
20159
|
+
}
|
|
20160
|
+
const reservation = { close: () => void 0 };
|
|
20161
|
+
active = reservation;
|
|
20162
|
+
return reservation;
|
|
20163
|
+
};
|
|
20164
|
+
const prepareLaunch = async () => {
|
|
20165
|
+
await configDir.writeModelCache({ baseUrl, models: catalogModels, fetchedAt: Date.now() });
|
|
20166
|
+
return claudeGatewayLaunchEnv(inherited, {
|
|
20167
|
+
baseUrl,
|
|
20168
|
+
configDir: configDir.path,
|
|
20169
|
+
homeKind: options.home?.kind === "shared" ? "shared" : "isolated"
|
|
20170
|
+
});
|
|
20171
|
+
};
|
|
20172
|
+
const vendorRunOptions = (request, model, env) => ({
|
|
20173
|
+
env,
|
|
20174
|
+
model,
|
|
20175
|
+
...request.systemPrompt === void 0 ? {} : { systemPrompt: vendorSystemPrompt(request.systemPrompt) },
|
|
20176
|
+
// 패키지가 스스로 지어내는 지시는 없다 — 여기 실리는 것은 전부 호출자가 고른 것이고,
|
|
20177
|
+
// 고르지 않으면 아무것도 붙지 않는다. 두 기본값이 그 규율을 구조로 만든다:
|
|
20178
|
+
// `settingSources: []`가 사용자·프로젝트 설정과 CLAUDE.md를 끄고, `strictMcpConfig`가
|
|
20179
|
+
// 그와 별개인 ambient .mcp.json·플러그인 MCP를 막는다.
|
|
20180
|
+
settingSources: options.settingSources ? [...options.settingSources] : [],
|
|
20181
|
+
strictMcpConfig: options.allowAmbientMcpServers !== true,
|
|
20182
|
+
// 플러그인의 MCP 선언은 읽지 않는다 — 좌표는 호출자가 이미 소유한다.
|
|
20183
|
+
...options.plugins && options.plugins.length > 0 ? { plugins: options.plugins.map((plugin) => ({ type: "local", path: plugin.path, skipMcpDiscovery: true })) } : {},
|
|
20184
|
+
// `--settings`와 같은 자리다. flag 소스로 병합되므로 사용자·프로젝트 설정을 대체하지 않는다.
|
|
20185
|
+
// skillOverrides와 ultracode만 연다 — settings 전체를 열면 호출자가 쓰지 않은 지시가 들어온다.
|
|
20186
|
+
...vendorFlagSettings(options),
|
|
20187
|
+
...request.effort === void 0 ? {} : { effort: request.effort },
|
|
20188
|
+
...request.cwd === void 0 ? {} : { cwd: request.cwd },
|
|
20189
|
+
...request.resume === void 0 ? {} : { resume: request.resume },
|
|
20190
|
+
...request.maxTurns === void 0 ? {} : { maxTurns: request.maxTurns },
|
|
20191
|
+
...request.maxBudgetUsd === void 0 ? {} : { maxBudgetUsd: request.maxBudgetUsd },
|
|
20192
|
+
...request.tools === void 0 ? {} : { tools: [...request.tools] },
|
|
20193
|
+
...request.allowedTools === void 0 ? {} : { allowedTools: [...request.allowedTools] },
|
|
20194
|
+
...request.disallowedTools === void 0 ? {} : { disallowedTools: [...request.disallowedTools] },
|
|
20195
|
+
...request.permissionMode === void 0 ? {} : { permissionMode: request.permissionMode },
|
|
20196
|
+
...request.canUseTool === void 0 ? {} : { canUseTool: vendorCanUseTool(request.canUseTool) },
|
|
20197
|
+
...request.mcpServers === void 0 && request.servedMcpServers === void 0 ? {} : { mcpServers: { ...request.mcpServers, ...vendorServedMcpServers(request.servedMcpServers) } },
|
|
20198
|
+
...request.includePartialMessages === void 0 ? {} : { includePartialMessages: request.includePartialMessages },
|
|
20199
|
+
...request.abortController === void 0 ? {} : { abortController: request.abortController },
|
|
20200
|
+
...request.stderr === void 0 ? {} : { stderr: request.stderr }
|
|
20201
|
+
});
|
|
19761
20202
|
const sdk = {
|
|
19762
20203
|
configDir: configDir.path,
|
|
19763
20204
|
models: Object.freeze(accepted.map((entry) => entry.id)),
|
|
19764
20205
|
async startTurn(turn) {
|
|
19765
|
-
|
|
19766
|
-
|
|
19767
|
-
|
|
19768
|
-
|
|
19769
|
-
|
|
19770
|
-
}
|
|
19771
|
-
const model = resolveTurnModel(turn.model, accepted);
|
|
19772
|
-
await configDir.writeModelCache({ baseUrl, models: catalogModels, fetchedAt: Date.now() });
|
|
19773
|
-
const env = claudeGatewayLaunchEnv(inherited, {
|
|
19774
|
-
baseUrl,
|
|
19775
|
-
configDir: configDir.path,
|
|
19776
|
-
homeKind: options.home?.kind === "shared" ? "shared" : "isolated"
|
|
19777
|
-
});
|
|
19778
|
-
const run = runVendorQuery({
|
|
19779
|
-
prompt: turn.prompt,
|
|
19780
|
-
options: {
|
|
19781
|
-
env,
|
|
19782
|
-
model,
|
|
19783
|
-
...turn.systemPrompt === void 0 ? {} : { systemPrompt: vendorSystemPrompt(turn.systemPrompt) },
|
|
19784
|
-
// 패키지가 스스로 지어내는 지시는 없다 — 여기 실리는 것은 전부 호출자가 고른 것이고,
|
|
19785
|
-
// 고르지 않으면 아무것도 붙지 않는다. 두 기본값이 그 규율을 구조로 만든다:
|
|
19786
|
-
// `settingSources: []`가 사용자·프로젝트 설정과 CLAUDE.md를 끄고, `strictMcpConfig`가
|
|
19787
|
-
// 그와 별개인 ambient .mcp.json·플러그인 MCP를 막는다.
|
|
19788
|
-
settingSources: options.settingSources ? [...options.settingSources] : [],
|
|
19789
|
-
strictMcpConfig: options.allowAmbientMcpServers !== true,
|
|
19790
|
-
// 플러그인의 MCP 선언은 읽지 않는다 — 좌표는 호출자가 이미 소유한다.
|
|
19791
|
-
...options.plugins && options.plugins.length > 0 ? { plugins: options.plugins.map((plugin) => ({ type: "local", path: plugin.path, skipMcpDiscovery: true })) } : {},
|
|
19792
|
-
// `--settings`와 같은 자리다. flag 소스로 병합되므로 사용자·프로젝트 설정을 대체하지 않는다.
|
|
19793
|
-
...options.skillOverrides && Object.keys(options.skillOverrides).length > 0 ? { settings: { skillOverrides: { ...options.skillOverrides } } } : {},
|
|
19794
|
-
...turn.effort === void 0 ? {} : { effort: turn.effort },
|
|
19795
|
-
...turn.cwd === void 0 ? {} : { cwd: turn.cwd },
|
|
19796
|
-
...turn.resume === void 0 ? {} : { resume: turn.resume },
|
|
19797
|
-
...turn.maxTurns === void 0 ? {} : { maxTurns: turn.maxTurns },
|
|
19798
|
-
...turn.maxBudgetUsd === void 0 ? {} : { maxBudgetUsd: turn.maxBudgetUsd },
|
|
19799
|
-
...turn.tools === void 0 ? {} : { tools: [...turn.tools] },
|
|
19800
|
-
...turn.allowedTools === void 0 ? {} : { allowedTools: [...turn.allowedTools] },
|
|
19801
|
-
...turn.disallowedTools === void 0 ? {} : { disallowedTools: [...turn.disallowedTools] },
|
|
19802
|
-
...turn.permissionMode === void 0 ? {} : { permissionMode: turn.permissionMode },
|
|
19803
|
-
...turn.canUseTool === void 0 ? {} : { canUseTool: vendorCanUseTool(turn.canUseTool) },
|
|
19804
|
-
...turn.mcpServers === void 0 && turn.servedMcpServers === void 0 ? {} : { mcpServers: { ...turn.mcpServers, ...vendorServedMcpServers(turn.servedMcpServers) } },
|
|
19805
|
-
...turn.includePartialMessages === void 0 ? {} : { includePartialMessages: turn.includePartialMessages },
|
|
19806
|
-
...turn.abortController === void 0 ? {} : { abortController: turn.abortController },
|
|
19807
|
-
...turn.stderr === void 0 ? {} : { stderr: turn.stderr }
|
|
20206
|
+
const reservation = reserveSlot("turn");
|
|
20207
|
+
try {
|
|
20208
|
+
assertKnownTurnKeys(turn);
|
|
20209
|
+
if (typeof turn.prompt !== "string" || turn.prompt.length === 0) {
|
|
20210
|
+
throw new TypeError("turn.prompt must be a non-empty string.");
|
|
19808
20211
|
}
|
|
19809
|
-
|
|
19810
|
-
|
|
19811
|
-
|
|
19812
|
-
|
|
19813
|
-
|
|
19814
|
-
|
|
19815
|
-
|
|
19816
|
-
|
|
19817
|
-
|
|
19818
|
-
|
|
19819
|
-
|
|
19820
|
-
|
|
20212
|
+
const model = resolveTurnModel(turn.model, accepted);
|
|
20213
|
+
const env = await prepareLaunch();
|
|
20214
|
+
const run = runVendorQuery({
|
|
20215
|
+
prompt: turn.prompt,
|
|
20216
|
+
options: vendorRunOptions(turn, model, env)
|
|
20217
|
+
});
|
|
20218
|
+
const release = () => {
|
|
20219
|
+
if (active === tracked) active = null;
|
|
20220
|
+
};
|
|
20221
|
+
const tracked = {
|
|
20222
|
+
[Symbol.asyncIterator]() {
|
|
20223
|
+
const iterator = run[Symbol.asyncIterator]();
|
|
20224
|
+
return {
|
|
20225
|
+
async next() {
|
|
20226
|
+
const result = await iterator.next();
|
|
20227
|
+
if (result.done === true) release();
|
|
20228
|
+
return result;
|
|
20229
|
+
}
|
|
20230
|
+
};
|
|
20231
|
+
},
|
|
20232
|
+
close() {
|
|
20233
|
+
try {
|
|
20234
|
+
run.close();
|
|
20235
|
+
} finally {
|
|
20236
|
+
release();
|
|
20237
|
+
}
|
|
20238
|
+
},
|
|
20239
|
+
getContextUsage: () => run.getContextUsage()
|
|
20240
|
+
};
|
|
20241
|
+
if (active !== reservation) {
|
|
20242
|
+
run.close();
|
|
20243
|
+
throw new Error("This Claude gateway SDK instance has been disposed.");
|
|
20244
|
+
}
|
|
20245
|
+
active = tracked;
|
|
20246
|
+
return tracked;
|
|
20247
|
+
} catch (error51) {
|
|
20248
|
+
if (active === reservation) active = null;
|
|
20249
|
+
throw error51;
|
|
20250
|
+
}
|
|
20251
|
+
},
|
|
20252
|
+
async openSession(request) {
|
|
20253
|
+
const reservation = reserveSlot("session");
|
|
20254
|
+
try {
|
|
20255
|
+
assertKnownSessionKeys(request);
|
|
20256
|
+
const model = resolveTurnModel(request.model, accepted);
|
|
20257
|
+
const env = await prepareLaunch();
|
|
20258
|
+
const session = runVendorSession({ options: vendorRunOptions(request, model, env) });
|
|
20259
|
+
const tracked = {
|
|
20260
|
+
send: (text) => session.send(text),
|
|
20261
|
+
interrupt: () => session.interrupt(),
|
|
20262
|
+
stopTask: (taskId) => session.stopTask(taskId),
|
|
20263
|
+
backgroundTasks: (toolUseId) => session.backgroundTasks(toolUseId),
|
|
20264
|
+
getContextUsage: () => session.getContextUsage(),
|
|
20265
|
+
[Symbol.asyncIterator]: () => session[Symbol.asyncIterator](),
|
|
20266
|
+
close() {
|
|
20267
|
+
try {
|
|
20268
|
+
session.close();
|
|
20269
|
+
} finally {
|
|
20270
|
+
if (active === tracked) active = null;
|
|
19821
20271
|
}
|
|
19822
|
-
};
|
|
19823
|
-
},
|
|
19824
|
-
close() {
|
|
19825
|
-
try {
|
|
19826
|
-
run.close();
|
|
19827
|
-
} finally {
|
|
19828
|
-
release();
|
|
19829
20272
|
}
|
|
20273
|
+
};
|
|
20274
|
+
if (active !== reservation) {
|
|
20275
|
+
session.close();
|
|
20276
|
+
throw new Error("This Claude gateway SDK instance has been disposed.");
|
|
19830
20277
|
}
|
|
19831
|
-
|
|
19832
|
-
|
|
19833
|
-
|
|
20278
|
+
active = tracked;
|
|
20279
|
+
return tracked;
|
|
20280
|
+
} catch (error51) {
|
|
20281
|
+
if (active === reservation) active = null;
|
|
20282
|
+
throw error51;
|
|
20283
|
+
}
|
|
19834
20284
|
},
|
|
19835
20285
|
async dispose() {
|
|
19836
20286
|
if (disposed) return;
|
|
@@ -19912,6 +20362,14 @@ function vendorCanUseTool(canUseTool) {
|
|
|
19912
20362
|
}
|
|
19913
20363
|
};
|
|
19914
20364
|
}
|
|
20365
|
+
function vendorFlagSettings(options) {
|
|
20366
|
+
const settings = {};
|
|
20367
|
+
if (options.skillOverrides && Object.keys(options.skillOverrides).length > 0) {
|
|
20368
|
+
settings.skillOverrides = { ...options.skillOverrides };
|
|
20369
|
+
}
|
|
20370
|
+
if (options.ultracode === true) settings.ultracode = true;
|
|
20371
|
+
return Object.keys(settings).length > 0 ? { settings } : {};
|
|
20372
|
+
}
|
|
19915
20373
|
function vendorSystemPrompt(systemPrompt) {
|
|
19916
20374
|
const text = systemPrompt?.text;
|
|
19917
20375
|
if (typeof text !== "string" || text.length === 0) {
|
|
@@ -19929,6 +20387,14 @@ function assertKnownTurnKeys(turn) {
|
|
|
19929
20387
|
);
|
|
19930
20388
|
}
|
|
19931
20389
|
}
|
|
20390
|
+
function assertKnownSessionKeys(request) {
|
|
20391
|
+
const unknown2 = Object.keys(request).filter((key) => !CLAUDE_GATEWAY_SESSION_KEYS.includes(key));
|
|
20392
|
+
if (unknown2.length > 0) {
|
|
20393
|
+
throw new TypeError(
|
|
20394
|
+
`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.`
|
|
20395
|
+
);
|
|
20396
|
+
}
|
|
20397
|
+
}
|
|
19932
20398
|
function vendorServedMcpServers(servers) {
|
|
19933
20399
|
if (!servers?.length) return {};
|
|
19934
20400
|
return Object.fromEntries(servers.map((server) => [server.name, {
|