blade-code 0.8.0 → 0.8.2
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/blade.js +2 -2
- package/dist/{chunk-hjx5n3dw.js → chunk-0g9cb41d.js} +2 -2
- package/dist/{chunk-ctqf59q1.js → chunk-0z5qe4m2.js} +1 -1
- package/dist/{chunk-d4ex0qvs.js → chunk-11s7t9dp.js} +2 -2
- package/dist/{chunk-nned222j.js → chunk-1evg2hdd.js} +2 -2
- package/dist/{chunk-xhnyy54e.js → chunk-1x3846v7.js} +1 -1
- package/dist/chunk-3wghk9bp.js +1 -0
- package/dist/{chunk-twem6p0g.js → chunk-4fye39a8.js} +2 -2
- package/dist/chunk-510rwhx6.js +1 -0
- package/dist/{chunk-kawv31m3.js → chunk-5ad4qmfj.js} +1 -1
- package/dist/{chunk-0dj326ms.js → chunk-5fw9k1ff.js} +2 -2
- package/dist/{chunk-1pt090dg.js → chunk-6avkjdjc.js} +3 -3
- package/dist/{chunk-e4a240t7.js → chunk-6jq8h5s9.js} +2 -2
- package/dist/{chunk-1smf2dj3.js → chunk-6x6zqjcs.js} +1 -1
- package/dist/{chunk-jt62ctz7.js → chunk-81p4kz0b.js} +1 -1
- package/dist/chunk-83dkggbx.js +1 -0
- package/dist/{chunk-6es6av6j.js → chunk-887qxhn5.js} +2 -2
- package/dist/{chunk-syj3anec.js → chunk-8epvwyg8.js} +2 -2
- package/dist/{chunk-tv4r86ez.js → chunk-8fp3q919.js} +2 -2
- package/dist/{chunk-yhpm9azy.js → chunk-9b297mzh.js} +1 -1
- package/dist/chunk-9jkbykwq.js +1 -0
- package/dist/{chunk-34pdtz4q.js → chunk-9xvnrq7m.js} +2 -2
- package/dist/chunk-a83s9mww.js +1 -0
- package/dist/{chunk-06h100e2.js → chunk-a90mfxv9.js} +1 -1
- package/dist/chunk-btst30by.js +6 -0
- package/dist/chunk-e9t5ga1b.js +1 -0
- package/dist/chunk-eycs00af.js +1577 -0
- package/dist/{chunk-49g067ek.js → chunk-f3pvwxp8.js} +3 -3
- package/dist/{chunk-ychj0e5q.js → chunk-fkaebj8c.js} +1 -1
- package/dist/{chunk-bm8vwfez.js → chunk-fpdqvnmq.js} +2 -2
- package/dist/chunk-gvf4gff0.js +9 -0
- package/dist/{chunk-qwdbqjh7.js → chunk-j14rn2dx.js} +2 -2
- package/dist/{chunk-ydb9myhe.js → chunk-j77gyhpf.js} +1 -1
- package/dist/chunk-kcjgbbec.js +1 -0
- package/dist/{chunk-9ad7tt9s.js → chunk-kne7h7p5.js} +1 -1
- package/dist/{chunk-9xkjb87h.js → chunk-p4yrmzyr.js} +1 -1
- package/dist/chunk-q223bq79.js +1 -0
- package/dist/chunk-qwfqp465.js +2 -0
- package/dist/{chunk-gsfkrr25.js → chunk-rxjt7ma7.js} +1 -1
- package/dist/{chunk-wmes2tt9.js → chunk-s1y8w68s.js} +1 -1
- package/dist/{chunk-yqxw7zz4.js → chunk-w11ht6f9.js} +2 -2
- package/dist/{chunk-dr06x0cw.js → chunk-w4xcmzjm.js} +1 -1
- package/dist/chunk-x83a97eh.js +1 -0
- package/dist/{chunk-jqr2pknb.js → chunk-y08szyf9.js} +32 -32
- package/dist/chunk-yfcfx0zk.js +6 -0
- package/dist/chunk-zns65xsy.js +2 -0
- package/dist/web/assets/{CodeBlockHighlighter-C1cp8dDv.js → CodeBlockHighlighter-D8_cOYpG.js} +1 -1
- package/dist/web/assets/FilePreview-60E51igH.js +7 -0
- package/dist/web/assets/{MarkdownRenderer-e1ZUy6jV.js → MarkdownRenderer-DU7jPn9K.js} +1 -1
- package/dist/web/assets/{McpModal-Raois2g1.js → McpModal-CAMU6yrS.js} +2 -2
- package/dist/web/assets/{SettingsModal-Dzuatoea.js → SettingsModal-Cjj8NUQy.js} +1 -1
- package/dist/web/assets/{SettingsStore-BxDA0Usw.js → SettingsStore-CjvkbtuZ.js} +1 -1
- package/dist/web/assets/{SkillsModal-Cg2-befH.js → SkillsModal-Cyc2JAFj.js} +1 -1
- package/dist/web/assets/{TerminalPanel-CEoQI9Lu.js → TerminalPanel-DI-Ls-U8.js} +1 -1
- package/dist/web/assets/index-BC0ssrep.js +16 -0
- package/dist/web/assets/index-Ci6gCUjf.css +1 -0
- package/dist/web/assets/{useRequest-DITGl55G.js → useRequest-B4kP-cmG.js} +1 -1
- package/dist/web/assets/{vendor-icons-BuFpOlRn.js → vendor-icons-DBM55KTG.js} +71 -41
- package/dist/web/assets/{vendor-markdown-Bo4W9Tae.js → vendor-markdown-b9iCqZWK.js} +1 -1
- package/dist/web/assets/vendor-radix-DyP_DOwV.js +45 -0
- package/dist/web/assets/{vendor-react-BalntB5F.js → vendor-react-FPIC4Czm.js} +2 -2
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunk-07jvw0kn.js +0 -1
- package/dist/chunk-14erxdhd.js +0 -1
- package/dist/chunk-3gw66r7a.js +0 -2
- package/dist/chunk-a12tmmfr.js +0 -1
- package/dist/chunk-bggvft3z.js +0 -1
- package/dist/chunk-bxbagv76.js +0 -9
- package/dist/chunk-d08wbxjr.js +0 -1
- package/dist/chunk-gytwh5y1.js +0 -6
- package/dist/chunk-hrnd3wjg.js +0 -6
- package/dist/chunk-j39q2kx7.js +0 -1
- package/dist/chunk-jakzknh3.js +0 -1570
- package/dist/chunk-n8ymp6nd.js +0 -1
- package/dist/chunk-v3ctg84r.js +0 -1
- package/dist/chunk-v5rn5r1h.js +0 -1
- package/dist/web/assets/FilePreview-DvgnEspB.js +0 -7
- package/dist/web/assets/index-BvGeIa_-.js +0 -16
- package/dist/web/assets/index-DDJnZJcp.css +0 -1
- package/dist/web/assets/vendor-radix-CESj0OOY.js +0 -45
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Ea as Y0,Ga as x}from"./chunk-qwdbqjh7.js";import{Cb as Q0}from"./chunk-jt62ctz7.js";import{dc as l}from"./chunk-hjx5n3dw.js";import{nanoid as I0}from"nanoid";import{devtools as N0,subscribeWithSelector as R0}from"zustand/middleware";import{createStore as y0}from"zustand/vanilla";var V0={name:"ayu-dark",colors:{primary:"#ffcc66",secondary:"#bae67e",accent:"#73d0ff",success:"#bae67e",warning:"#ffcc66",error:"#ff3333",info:"#73d0ff",light:"#f0f0f0",dark:"#000000",muted:"#5c6773",highlight:"#2d323b",text:{primary:"#e6e1cf",secondary:"#bae67e",muted:"#5c6773",light:"#ffffff"},background:{primary:"#0f1419",secondary:"#14191f",dark:"#000000"},border:{light:"#2d323b",dark:"#000000"},syntax:{comment:"#5c6773",string:"#bae67e",number:"#ffcc66",keyword:"#ff8f40",function:"#73d0ff",variable:"#e6e1cf",operator:"#f29e74",type:"#73d0ff",tag:"#ff8f40",attr:"#ffd580",default:"#e6e1cf"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(0, 0, 0, 0.2)",base:"0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px 0 rgba(0, 0, 0, 0.2)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2)"}},G0={name:"dracula",colors:{primary:"#bd93f9",secondary:"#ffb86c",accent:"#ff79c6",success:"#50fa7b",warning:"#f1fa8c",error:"#ff5555",info:"#8be9fd",light:"#f8f8f2",dark:"#282a36",muted:"#6272a4",highlight:"#44475a",text:{primary:"#f8f8f2",secondary:"#f1fa8c",muted:"#6272a4",light:"#ffffff"},background:{primary:"#282a36",secondary:"#44475a",dark:"#21222c"},border:{light:"#44475a",dark:"#000000"},syntax:{comment:"#6272a4",string:"#f1fa8c",number:"#bd93f9",keyword:"#ff79c6",function:"#50fa7b",variable:"#f8f8f2",operator:"#ff79c6",type:"#8be9fd",tag:"#ff79c6",attr:"#50fa7b",default:"#f8f8f2"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(40, 42, 54, 0.2)",base:"0 1px 3px 0 rgba(40, 42, 54, 0.3), 0 1px 2px 0 rgba(40, 42, 54, 0.2)",lg:"0 10px 15px -3px rgba(40, 42, 54, 0.3), 0 4px 6px -2px rgba(40, 42, 54, 0.2)"}},F0={name:"monokai",colors:{primary:"#66d9ef",secondary:"#a6e22e",accent:"#f92672",success:"#a6e22e",warning:"#e6db74",error:"#f92672",info:"#66d9ef",light:"#f8f8f2",dark:"#272822",muted:"#75715e",highlight:"#3e3d32",text:{primary:"#f8f8f2",secondary:"#e6db74",muted:"#75715e",light:"#ffffff"},background:{primary:"#272822",secondary:"#3e3d32",dark:"#1e1f1c"},border:{light:"#3e3d32",dark:"#000000"},syntax:{comment:"#75715e",string:"#e6db74",number:"#ae81ff",keyword:"#f92672",function:"#a6e22e",variable:"#f8f8f2",operator:"#f92672",type:"#66d9ef",tag:"#f92672",attr:"#a6e22e",default:"#f8f8f2"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(39, 40, 34, 0.2)",base:"0 1px 3px 0 rgba(39, 40, 34, 0.3), 0 1px 2px 0 rgba(39, 40, 34, 0.2)",lg:"0 10px 15px -3px rgba(39, 40, 34, 0.3), 0 4px 6px -2px rgba(39, 40, 34, 0.2)"}},J0={name:"nord",colors:{primary:"#88c0d0",secondary:"#81a1c1",accent:"#b48ead",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",info:"#88c0d0",light:"#eceff4",dark:"#2e3440",muted:"#4c566a",highlight:"#434c5e",text:{primary:"#eceff4",secondary:"#d8dee9",muted:"#4c566a",light:"#ffffff"},background:{primary:"#2e3440",secondary:"#3b4252",dark:"#242933"},border:{light:"#434c5e",dark:"#000000"},syntax:{comment:"#616e88",string:"#a3be8c",number:"#b48ead",keyword:"#81a1c1",function:"#88c0d0",variable:"#d8dee9",operator:"#81a1c1",type:"#8fbcbb",tag:"#81a1c1",attr:"#8fbcbb",default:"#eceff4"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(46, 52, 64, 0.2)",base:"0 1px 3px 0 rgba(46, 52, 64, 0.3), 0 1px 2px 0 rgba(46, 52, 64, 0.2)",lg:"0 10px 15px -3px rgba(46, 52, 64, 0.3), 0 4px 6px -2px rgba(46, 52, 64, 0.2)"}},j0={name:"solarized-light",colors:{primary:"#268bd2",secondary:"#2aa198",accent:"#d33682",success:"#859900",warning:"#cb4b16",error:"#dc322f",info:"#268bd2",light:"#fdf6e3",dark:"#073642",muted:"#93a1a1",highlight:"#eee8d5",text:{primary:"#586e75",secondary:"#657b83",muted:"#93a1a1",light:"#002b36"},background:{primary:"#fdf6e3",secondary:"#eee8d5",dark:"#073642"},border:{light:"#eee8d5",dark:"#073642"},syntax:{comment:"#93a1a1",string:"#2aa198",number:"#d33682",keyword:"#859900",function:"#268bd2",variable:"#657b83",operator:"#859900",type:"#b58900",tag:"#268bd2",attr:"#93a1a1",default:"#657b83"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(253, 246, 227, 0.2)",base:"0 1px 3px 0 rgba(253, 246, 227, 0.3), 0 1px 2px 0 rgba(253, 246, 227, 0.2)",lg:"0 10px 15px -3px rgba(253, 246, 227, 0.3), 0 4px 6px -2px rgba(253, 246, 227, 0.2)"}},U0={name:"solarized-dark",colors:{primary:"#268bd2",secondary:"#2aa198",accent:"#d33682",success:"#859900",warning:"#b58900",error:"#dc322f",info:"#268bd2",light:"#fdf6e3",dark:"#073642",muted:"#586e75",highlight:"#073642",text:{primary:"#839496",secondary:"#93a1a1",muted:"#586e75",light:"#fdf6e3"},background:{primary:"#002b36",secondary:"#073642",dark:"#001f29"},border:{light:"#073642",dark:"#000000"},syntax:{comment:"#586e75",string:"#2aa198",number:"#d33682",keyword:"#859900",function:"#268bd2",variable:"#839496",operator:"#859900",type:"#b58900",tag:"#268bd2",attr:"#93a1a1",default:"#839496"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(0, 43, 54, 0.2)",base:"0 1px 3px 0 rgba(0, 43, 54, 0.3), 0 1px 2px 0 rgba(0, 43, 54, 0.2)",lg:"0 10px 15px -3px rgba(0, 43, 54, 0.3), 0 4px 6px -2px rgba(0, 43, 54, 0.2)"}},H0={name:"tokyo-night",colors:{primary:"#7aa2f7",secondary:"#7dcfff",accent:"#bb9af7",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",info:"#7aa2f7",light:"#c0caf5",dark:"#1a1b26",muted:"#565f89",highlight:"#292e42",text:{primary:"#a9b1d6",secondary:"#c0caf5",muted:"#565f89",light:"#ffffff"},background:{primary:"#1a1b26",secondary:"#292e42",dark:"#16161e"},border:{light:"#292e42",dark:"#000000"},syntax:{comment:"#565f89",string:"#9ece6a",number:"#ff9e64",keyword:"#bb9af7",function:"#7aa2f7",variable:"#c0caf5",operator:"#89ddff",type:"#7dcfff",tag:"#f7768e",attr:"#7aa2f7",default:"#a9b1d6"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(26, 27, 38, 0.2)",base:"0 1px 3px 0 rgba(26, 27, 38, 0.3), 0 1px 2px 0 rgba(26, 27, 38, 0.2)",lg:"0 10px 15px -3px rgba(26, 27, 38, 0.3), 0 4px 6px -2px rgba(26, 27, 38, 0.2)"}},z0={name:"github",colors:{primary:"#0969da",secondary:"#8250df",accent:"#bc4c00",success:"#1a7f37",warning:"#bc4c00",error:"#d1242f",info:"#0969da",light:"#f6f8fa",dark:"#24292f",muted:"#6e7781",highlight:"#ddf4ff",text:{primary:"#24292f",secondary:"#57606a",muted:"#6e7781",light:"#ffffff"},background:{primary:"#ffffff",secondary:"#f6f8fa",dark:"#24292f"},border:{light:"#d0d7de",dark:"#24292f"},syntax:{comment:"#6e7781",string:"#0a3069",number:"#0550ae",keyword:"#cf222e",function:"#8250df",variable:"#24292f",operator:"#cf222e",type:"#0550ae",tag:"#116329",attr:"#0550ae",default:"#24292f"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(255, 255, 255, 0.2)",base:"0 1px 3px 0 rgba(255, 255, 255, 0.3), 0 1px 2px 0 rgba(255, 255, 255, 0.2)",lg:"0 10px 15px -3px rgba(255, 255, 255, 0.3), 0 4px 6px -2px rgba(255, 255, 255, 0.2)"}},_0={name:"gruvbox",colors:{primary:"#83a598",secondary:"#8ec07c",accent:"#d3869b",success:"#b8bb26",warning:"#fabd2f",error:"#fb4934",info:"#83a598",light:"#fbf1c7",dark:"#282828",muted:"#928374",highlight:"#3c3836",text:{primary:"#ebdbb2",secondary:"#d5c4a1",muted:"#928374",light:"#ffffff"},background:{primary:"#282828",secondary:"#3c3836",dark:"#1d2021"},border:{light:"#3c3836",dark:"#000000"},syntax:{comment:"#928374",string:"#b8bb26",number:"#d3869b",keyword:"#fb4934",function:"#8ec07c",variable:"#ebdbb2",operator:"#fe8019",type:"#fabd2f",tag:"#fb4934",attr:"#b8bb26",default:"#ebdbb2"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(40, 40, 40, 0.2)",base:"0 1px 3px 0 rgba(40, 40, 40, 0.3), 0 1px 2px 0 rgba(40, 40, 40, 0.2)",lg:"0 10px 15px -3px rgba(40, 40, 40, 0.3), 0 4px 6px -2px rgba(40, 40, 40, 0.2)"}},K0={name:"one-dark",colors:{primary:"#61afef",secondary:"#c678dd",accent:"#e5c07b",success:"#98c379",warning:"#e5c07b",error:"#e06c75",info:"#56b6c2",light:"#abb2bf",dark:"#282c34",muted:"#5c6370",highlight:"#3e4451",text:{primary:"#abb2bf",secondary:"#c6c8d0",muted:"#5c6370",light:"#ffffff"},background:{primary:"#282c34",secondary:"#3e4451",dark:"#21252b"},border:{light:"#3e4451",dark:"#000000"},syntax:{comment:"#5c6370",string:"#98c379",number:"#d19a66",keyword:"#c678dd",function:"#61afef",variable:"#e06c75",operator:"#56b6c2",type:"#e5c07b",tag:"#e06c75",attr:"#d19a66",default:"#abb2bf"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(40, 44, 52, 0.2)",base:"0 1px 3px 0 rgba(40, 44, 52, 0.3), 0 1px 2px 0 rgba(40, 44, 52, 0.2)",lg:"0 10px 15px -3px rgba(40, 44, 52, 0.3), 0 4px 6px -2px rgba(40, 44, 52, 0.2)"}},W0={name:"catppuccin",colors:{primary:"#89b4fa",secondary:"#cba6f7",accent:"#f5c2e7",success:"#a6e3a1",warning:"#f9e2af",error:"#f38ba8",info:"#89dceb",light:"#cdd6f4",dark:"#11111b",muted:"#6c7086",highlight:"#181825",text:{primary:"#cdd6f4",secondary:"#bac2de",muted:"#6c7086",light:"#ffffff"},background:{primary:"#1e1e2e",secondary:"#181825",dark:"#11111b"},border:{light:"#181825",dark:"#000000"},syntax:{comment:"#6c7086",string:"#a6e3a1",number:"#fab387",keyword:"#cba6f7",function:"#89b4fa",variable:"#cdd6f4",operator:"#89dceb",type:"#f5c2e7",tag:"#f38ba8",attr:"#89b4fa",default:"#cdd6f4"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(30, 30, 46, 0.2)",base:"0 1px 3px 0 rgba(30, 30, 46, 0.3), 0 1px 2px 0 rgba(30, 30, 46, 0.2)",lg:"0 10px 15px -3px rgba(30, 30, 46, 0.3), 0 4px 6px -2px rgba(30, 30, 46, 0.2)"}},O0={name:"rose-pine",colors:{primary:"#9ccfd8",secondary:"#c4a7e7",accent:"#f6c177",success:"#31748f",warning:"#f6c177",error:"#eb6f92",info:"#9ccfd8",light:"#e0def4",dark:"#191724",muted:"#6e6a86",highlight:"#1f1d2e",text:{primary:"#e0def4",secondary:"#cecacd",muted:"#6e6a86",light:"#ffffff"},background:{primary:"#191724",secondary:"#1f1d2e",dark:"#12101a"},border:{light:"#1f1d2e",dark:"#000000"},syntax:{comment:"#6e6a86",string:"#9ccfd8",number:"#ea9a97",keyword:"#c4a7e7",function:"#31748f",variable:"#e0def4",operator:"#f6c177",type:"#9ccfd8",tag:"#eb6f92",attr:"#f6c177",default:"#e0def4"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(25, 23, 36, 0.2)",base:"0 1px 3px 0 rgba(25, 23, 36, 0.3), 0 1px 2px 0 rgba(25, 23, 36, 0.2)",lg:"0 10px 15px -3px rgba(25, 23, 36, 0.3), 0 4px 6px -2px rgba(25, 23, 36, 0.2)"}},q0={name:"kanagawa",colors:{primary:"#8ba4b0",secondary:"#a292a3",accent:"#c47fd5",success:"#76946a",warning:"#c0a36e",error:"#c34043",info:"#7e9cd8",light:"#dcd7ba",dark:"#1f1f28",muted:"#727169",highlight:"#2a2a37",text:{primary:"#dcd7ba",secondary:"#c8c093",muted:"#727169",light:"#ffffff"},background:{primary:"#1f1f28",secondary:"#2a2a37",dark:"#16161d"},border:{light:"#2a2a37",dark:"#000000"},syntax:{comment:"#727169",string:"#98bb6c",number:"#d27e99",keyword:"#957fb8",function:"#7e9cd8",variable:"#dcd7ba",operator:"#c0a36e",type:"#7aa89f",tag:"#c34043",attr:"#7fb4ca",default:"#dcd7ba"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(31, 31, 40, 0.2)",base:"0 1px 3px 0 rgba(31, 31, 40, 0.3), 0 1px 2px 0 rgba(31, 31, 40, 0.2)",lg:"0 10px 15px -3px rgba(31, 31, 40, 0.3), 0 4px 6px -2px rgba(31, 31, 40, 0.2)"}},d=[{id:"ayu-dark",label:"Ayu Dark",theme:V0,tags:["dark","popular"]},{id:"dracula",label:"Dracula",theme:G0,tags:["dark","popular"]},{id:"monokai",label:"Monokai",theme:F0,tags:["dark","classic"]},{id:"nord",label:"Nord",theme:J0,tags:["dark","minimal"]},{id:"solarized-light",label:"Solarized Light",theme:j0,tags:["light"]},{id:"solarized-dark",label:"Solarized Dark",theme:U0,tags:["dark"]},{id:"tokyo-night",label:"Tokyo Night",theme:H0,tags:["dark","popular"]},{id:"github",label:"GitHub",theme:z0,tags:["light","minimal"]},{id:"gruvbox",label:"Gruvbox",theme:_0,tags:["dark","warm"]},{id:"one-dark",label:"One Dark",theme:K0,tags:["dark","popular"]},{id:"catppuccin",label:"Catppuccin",theme:W0,tags:["dark","pastel"]},{id:"rose-pine",label:"Rose Pine",theme:O0,tags:["dark","elegant"]},{id:"kanagawa",label:"Kanagawa",theme:q0,tags:["dark","japanese"]}];var r={primary:"#0066cc",secondary:"#6c757d",accent:"#e83e8c",success:"#28a745",warning:"#ffc107",error:"#dc3545",info:"#17a2b8",light:"#f8f9fa",dark:"#343a40",muted:"#6c757d",highlight:"#fff3cd",text:{primary:"#212529",secondary:"#6c757d",muted:"#6c757d",light:"#ffffff"},background:{primary:"#ffffff",secondary:"#f8f9fa",dark:"#343a40"},border:{light:"#dee2e6",dark:"#495057"},syntax:{comment:"#6c757d",string:"#28a745",number:"#e83e8c",keyword:"#007bff",function:"#17a2b8",variable:"#495057",operator:"#ffc107",type:"#007bff",tag:"#dc3545",attr:"#ffc107",default:"#212529"}},M={name:"default",colors:r,spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",base:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)"}},w0={...M,name:"dark",colors:{...r,text:{primary:"#ffffff",secondary:"#e2e8f0",muted:"#94a3b8",light:"#000000"},background:{primary:"#1e293b",secondary:"#334155",dark:"#0f172a"},border:{light:"#475569",dark:"#64748b"},syntax:{comment:"#94a3b8",string:"#34d399",number:"#f472b6",keyword:"#60a5fa",function:"#06b6d4",variable:"#e2e8f0",operator:"#fbbf24",type:"#60a5fa",tag:"#fb7185",attr:"#fbbf24",default:"#ffffff"}}};class c{currentTheme=M;themes=new Map;constructor(){this.themes.set("default",M),this.themes.set("dark",w0);for(let X of d)this.themes.set(X.id,X.theme)}setTheme(X){let Z=this.themes.get(X);if(Z)this.currentTheme=Z;else throw Error(`Theme '${X}' not found`)}getTheme(){return this.currentTheme}getAvailableThemes(){return Array.from(this.themes.keys())}getCurrentThemeName(){return this.currentTheme.name}getThemeByName(X){return this.themes.get(X)}hasTheme(X){return this.themes.has(X)}}var i=new c;var x0={initializationStatus:"idle",initializationError:null,activeModal:"none",sessionSelectorData:void 0,modelEditorTarget:null,tasks:[],awaitingSecondCtrlC:!1,thinkingModeEnabled:!1,subagentProgress:null},f=(X)=>({...x0,actions:{setInitializationStatus:(Z)=>{X((Q)=>({app:{...Q.app,initializationStatus:Z}}))},setInitializationError:(Z)=>{X((Q)=>({app:{...Q.app,initializationError:Z}}))},setActiveModal:(Z)=>{X((Q)=>({app:{...Q.app,activeModal:Z}}))},showSessionSelector:(Z,Q="resume")=>{X((Y)=>({app:{...Y.app,activeModal:"sessionSelector",sessionSelectorData:{intent:Q,sessions:Z}}}))},showModelEditWizard:(Z)=>{X((Q)=>({app:{...Q.app,activeModal:"modelEditWizard",modelEditorTarget:Z}}))},closeModal:()=>{X((Z)=>({app:{...Z.app,activeModal:"none",sessionSelectorData:void 0,modelEditorTarget:null}}))},setTasks:(Z)=>{X((Q)=>({app:{...Q.app,tasks:Z}}))},updateTask:(Z)=>{X((Q)=>({app:{...Q.app,tasks:Q.app.tasks.map((Y)=>Y.id===Z.id?Z:Y)}}))},setAwaitingSecondCtrlC:(Z)=>{X((Q)=>({app:{...Q.app,awaitingSecondCtrlC:Z}}))},setThinkingModeEnabled:(Z)=>{X((Q)=>({app:{...Q.app,thinkingModeEnabled:Z}}))},toggleThinkingMode:()=>{X((Z)=>({app:{...Z.app,thinkingModeEnabled:!Z.app.thinkingModeEnabled}}))},startSubagentProgress:(Z,Q,Y)=>{X(($)=>({app:{...$.app,subagentProgress:{id:Z,type:Q,description:Y,status:"running",startTime:Date.now()}}}))},updateSubagentTool:(Z)=>{X((Q)=>{if(!Q.app.subagentProgress)return Q;return{app:{...Q.app,subagentProgress:{...Q.app.subagentProgress,currentTool:Z}}}})},completeSubagentProgress:(Z)=>{X((Q)=>{if(!Q.app.subagentProgress)return Q;return{app:{...Q.app,subagentProgress:{...Q.app.subagentProgress,status:Z?"completed":"failed",currentTool:void 0}}}}),setTimeout(()=>{X((Q)=>({app:{...Q.app,subagentProgress:null}}))},1500)}}});var P0={isProcessing:!1,abortController:null,pendingCommands:[],recoveredSteeringCount:0},b=(X,Z)=>({...P0,actions:{setProcessing:(Q)=>{X((Y)=>({command:{...Y.command,isProcessing:Q}}))},createAbortController:()=>{let Q=Z().command.abortController;if(Q&&!Q.signal.aborted)Q.abort("interrupted-by-new-command");let Y=new AbortController;return X(($)=>({command:{...$.command,abortController:Y}})),Y},getAbortController:()=>{return Z().command.abortController},clearAbortController:(Q)=>{let Y=Z().command.abortController;if(Q!==void 0&&Y!==Q)return;X(($)=>({command:{...$.command,abortController:null}}))},abort:(Q)=>{let{abortController:Y}=Z().command;if(Y&&!Y.signal.aborted)Y.abort(Q??"user-cancel");X(($)=>({command:{...$.command,isProcessing:!1,pendingCommands:[]}}))},enqueueCommand:(Q)=>{X((Y)=>({command:{...Y.command,pendingCommands:[...Y.command.pendingCommands,Q]}}))},dequeueCommand:()=>{let{pendingCommands:Q}=Z().command;if(Q.length===0)return;let[Y,...$]=Q;return X((V)=>({command:{...V.command,pendingCommands:$}})),Y},clearQueue:()=>{X((Q)=>({command:{...Q.command,pendingCommands:[]}}))},setRecoveredSteeringCount:(Q)=>{X((Y)=>({command:{...Y.command,recoveredSteeringCount:Math.max(0,Q)}}))}}});var v0={config:null},h=(X)=>({...v0,actions:{setConfig:(Z)=>{X((Q)=>({config:{...Q.config,config:Z}}))},updateConfig:(Z)=>{X((Q)=>{if(!Q.config.config)throw Error(`[ConfigSlice] Config not initialized. Cannot update: ${JSON.stringify(Z)}`);return{config:{...Q.config,config:{...Q.config.config,...Z}}}})}}});var D0={currentFocus:"main-input",previousFocus:null},p=(X)=>({...D0,actions:{setFocus:(Z)=>{X((Q)=>({focus:{...Q.focus,currentFocus:Z,previousFocus:Q.focus.currentFocus}}))},restorePreviousFocus:()=>{X((Z)=>({focus:{...Z.focus,currentFocus:Z.focus.previousFocus||"main-input",previousFocus:null}}))}}});function o(X,Z,Q,Y=0,$=0,V){let J=l(),H=V?J.models.getModel(V,X):J.models.getModels().find((W)=>W.id===X);if(!H)return 0;let U=H.cost,_=Z/1e6*U.input+Q/1e6*U.output+Y/1e6*U.cacheRead+$/1e6*U.cacheWrite;return Math.round(_*1e6)/1e6}var j={codeBlock:/^```(\w+)?\s*$/,heading:/^ *(#{1,4}) +(.+)/,blockquote:/^(>+)\s?(.*)/,ulItem:/^([ \t]*)([-*+]) +(.+)/,olItem:/^([ \t]*)(\d+)\. +(.+)/,hr:/^ *([-*_] *){3,} *$/,table:/^\|(.+)\|$/,tableSeparator:/^\|[\s]*:?-+:?[\s]*(\|[\s]*:?-+:?[\s]*)+\|?$/,diffStart:/^<<<DIFF>>>$/,diffEnd:/^<<<\/DIFF>>>$/,commandMessage:/<command-message>(.*?)<\/command-message>/};function g0(X){let Z=[],Q=X.split(/\r?\n/),Y=!1,$=[],V=null,J=0,H=!1,U=[],_=[],W=!1,P=[],v=!1,O=[],F=0,G=!0;for(let w=0;w<Q.length;w++){let K=Q[w];if(W){if(K.match(j.diffEnd)){try{let q=JSON.parse(P.join(`
|
|
1
|
+
import{Ga as Y0,Ia as x}from"./chunk-j14rn2dx.js";import{Eb as Q0}from"./chunk-81p4kz0b.js";import{fc as l}from"./chunk-0g9cb41d.js";import{nanoid as I0}from"nanoid";import{devtools as N0,subscribeWithSelector as R0}from"zustand/middleware";import{createStore as y0}from"zustand/vanilla";var V0={name:"ayu-dark",colors:{primary:"#ffcc66",secondary:"#bae67e",accent:"#73d0ff",success:"#bae67e",warning:"#ffcc66",error:"#ff3333",info:"#73d0ff",light:"#f0f0f0",dark:"#000000",muted:"#5c6773",highlight:"#2d323b",text:{primary:"#e6e1cf",secondary:"#bae67e",muted:"#5c6773",light:"#ffffff"},background:{primary:"#0f1419",secondary:"#14191f",dark:"#000000"},border:{light:"#2d323b",dark:"#000000"},syntax:{comment:"#5c6773",string:"#bae67e",number:"#ffcc66",keyword:"#ff8f40",function:"#73d0ff",variable:"#e6e1cf",operator:"#f29e74",type:"#73d0ff",tag:"#ff8f40",attr:"#ffd580",default:"#e6e1cf"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(0, 0, 0, 0.2)",base:"0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px 0 rgba(0, 0, 0, 0.2)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2)"}},G0={name:"dracula",colors:{primary:"#bd93f9",secondary:"#ffb86c",accent:"#ff79c6",success:"#50fa7b",warning:"#f1fa8c",error:"#ff5555",info:"#8be9fd",light:"#f8f8f2",dark:"#282a36",muted:"#6272a4",highlight:"#44475a",text:{primary:"#f8f8f2",secondary:"#f1fa8c",muted:"#6272a4",light:"#ffffff"},background:{primary:"#282a36",secondary:"#44475a",dark:"#21222c"},border:{light:"#44475a",dark:"#000000"},syntax:{comment:"#6272a4",string:"#f1fa8c",number:"#bd93f9",keyword:"#ff79c6",function:"#50fa7b",variable:"#f8f8f2",operator:"#ff79c6",type:"#8be9fd",tag:"#ff79c6",attr:"#50fa7b",default:"#f8f8f2"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(40, 42, 54, 0.2)",base:"0 1px 3px 0 rgba(40, 42, 54, 0.3), 0 1px 2px 0 rgba(40, 42, 54, 0.2)",lg:"0 10px 15px -3px rgba(40, 42, 54, 0.3), 0 4px 6px -2px rgba(40, 42, 54, 0.2)"}},F0={name:"monokai",colors:{primary:"#66d9ef",secondary:"#a6e22e",accent:"#f92672",success:"#a6e22e",warning:"#e6db74",error:"#f92672",info:"#66d9ef",light:"#f8f8f2",dark:"#272822",muted:"#75715e",highlight:"#3e3d32",text:{primary:"#f8f8f2",secondary:"#e6db74",muted:"#75715e",light:"#ffffff"},background:{primary:"#272822",secondary:"#3e3d32",dark:"#1e1f1c"},border:{light:"#3e3d32",dark:"#000000"},syntax:{comment:"#75715e",string:"#e6db74",number:"#ae81ff",keyword:"#f92672",function:"#a6e22e",variable:"#f8f8f2",operator:"#f92672",type:"#66d9ef",tag:"#f92672",attr:"#a6e22e",default:"#f8f8f2"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(39, 40, 34, 0.2)",base:"0 1px 3px 0 rgba(39, 40, 34, 0.3), 0 1px 2px 0 rgba(39, 40, 34, 0.2)",lg:"0 10px 15px -3px rgba(39, 40, 34, 0.3), 0 4px 6px -2px rgba(39, 40, 34, 0.2)"}},J0={name:"nord",colors:{primary:"#88c0d0",secondary:"#81a1c1",accent:"#b48ead",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",info:"#88c0d0",light:"#eceff4",dark:"#2e3440",muted:"#4c566a",highlight:"#434c5e",text:{primary:"#eceff4",secondary:"#d8dee9",muted:"#4c566a",light:"#ffffff"},background:{primary:"#2e3440",secondary:"#3b4252",dark:"#242933"},border:{light:"#434c5e",dark:"#000000"},syntax:{comment:"#616e88",string:"#a3be8c",number:"#b48ead",keyword:"#81a1c1",function:"#88c0d0",variable:"#d8dee9",operator:"#81a1c1",type:"#8fbcbb",tag:"#81a1c1",attr:"#8fbcbb",default:"#eceff4"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(46, 52, 64, 0.2)",base:"0 1px 3px 0 rgba(46, 52, 64, 0.3), 0 1px 2px 0 rgba(46, 52, 64, 0.2)",lg:"0 10px 15px -3px rgba(46, 52, 64, 0.3), 0 4px 6px -2px rgba(46, 52, 64, 0.2)"}},j0={name:"solarized-light",colors:{primary:"#268bd2",secondary:"#2aa198",accent:"#d33682",success:"#859900",warning:"#cb4b16",error:"#dc322f",info:"#268bd2",light:"#fdf6e3",dark:"#073642",muted:"#93a1a1",highlight:"#eee8d5",text:{primary:"#586e75",secondary:"#657b83",muted:"#93a1a1",light:"#002b36"},background:{primary:"#fdf6e3",secondary:"#eee8d5",dark:"#073642"},border:{light:"#eee8d5",dark:"#073642"},syntax:{comment:"#93a1a1",string:"#2aa198",number:"#d33682",keyword:"#859900",function:"#268bd2",variable:"#657b83",operator:"#859900",type:"#b58900",tag:"#268bd2",attr:"#93a1a1",default:"#657b83"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(253, 246, 227, 0.2)",base:"0 1px 3px 0 rgba(253, 246, 227, 0.3), 0 1px 2px 0 rgba(253, 246, 227, 0.2)",lg:"0 10px 15px -3px rgba(253, 246, 227, 0.3), 0 4px 6px -2px rgba(253, 246, 227, 0.2)"}},U0={name:"solarized-dark",colors:{primary:"#268bd2",secondary:"#2aa198",accent:"#d33682",success:"#859900",warning:"#b58900",error:"#dc322f",info:"#268bd2",light:"#fdf6e3",dark:"#073642",muted:"#586e75",highlight:"#073642",text:{primary:"#839496",secondary:"#93a1a1",muted:"#586e75",light:"#fdf6e3"},background:{primary:"#002b36",secondary:"#073642",dark:"#001f29"},border:{light:"#073642",dark:"#000000"},syntax:{comment:"#586e75",string:"#2aa198",number:"#d33682",keyword:"#859900",function:"#268bd2",variable:"#839496",operator:"#859900",type:"#b58900",tag:"#268bd2",attr:"#93a1a1",default:"#839496"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(0, 43, 54, 0.2)",base:"0 1px 3px 0 rgba(0, 43, 54, 0.3), 0 1px 2px 0 rgba(0, 43, 54, 0.2)",lg:"0 10px 15px -3px rgba(0, 43, 54, 0.3), 0 4px 6px -2px rgba(0, 43, 54, 0.2)"}},H0={name:"tokyo-night",colors:{primary:"#7aa2f7",secondary:"#7dcfff",accent:"#bb9af7",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",info:"#7aa2f7",light:"#c0caf5",dark:"#1a1b26",muted:"#565f89",highlight:"#292e42",text:{primary:"#a9b1d6",secondary:"#c0caf5",muted:"#565f89",light:"#ffffff"},background:{primary:"#1a1b26",secondary:"#292e42",dark:"#16161e"},border:{light:"#292e42",dark:"#000000"},syntax:{comment:"#565f89",string:"#9ece6a",number:"#ff9e64",keyword:"#bb9af7",function:"#7aa2f7",variable:"#c0caf5",operator:"#89ddff",type:"#7dcfff",tag:"#f7768e",attr:"#7aa2f7",default:"#a9b1d6"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(26, 27, 38, 0.2)",base:"0 1px 3px 0 rgba(26, 27, 38, 0.3), 0 1px 2px 0 rgba(26, 27, 38, 0.2)",lg:"0 10px 15px -3px rgba(26, 27, 38, 0.3), 0 4px 6px -2px rgba(26, 27, 38, 0.2)"}},z0={name:"github",colors:{primary:"#0969da",secondary:"#8250df",accent:"#bc4c00",success:"#1a7f37",warning:"#bc4c00",error:"#d1242f",info:"#0969da",light:"#f6f8fa",dark:"#24292f",muted:"#6e7781",highlight:"#ddf4ff",text:{primary:"#24292f",secondary:"#57606a",muted:"#6e7781",light:"#ffffff"},background:{primary:"#ffffff",secondary:"#f6f8fa",dark:"#24292f"},border:{light:"#d0d7de",dark:"#24292f"},syntax:{comment:"#6e7781",string:"#0a3069",number:"#0550ae",keyword:"#cf222e",function:"#8250df",variable:"#24292f",operator:"#cf222e",type:"#0550ae",tag:"#116329",attr:"#0550ae",default:"#24292f"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(255, 255, 255, 0.2)",base:"0 1px 3px 0 rgba(255, 255, 255, 0.3), 0 1px 2px 0 rgba(255, 255, 255, 0.2)",lg:"0 10px 15px -3px rgba(255, 255, 255, 0.3), 0 4px 6px -2px rgba(255, 255, 255, 0.2)"}},_0={name:"gruvbox",colors:{primary:"#83a598",secondary:"#8ec07c",accent:"#d3869b",success:"#b8bb26",warning:"#fabd2f",error:"#fb4934",info:"#83a598",light:"#fbf1c7",dark:"#282828",muted:"#928374",highlight:"#3c3836",text:{primary:"#ebdbb2",secondary:"#d5c4a1",muted:"#928374",light:"#ffffff"},background:{primary:"#282828",secondary:"#3c3836",dark:"#1d2021"},border:{light:"#3c3836",dark:"#000000"},syntax:{comment:"#928374",string:"#b8bb26",number:"#d3869b",keyword:"#fb4934",function:"#8ec07c",variable:"#ebdbb2",operator:"#fe8019",type:"#fabd2f",tag:"#fb4934",attr:"#b8bb26",default:"#ebdbb2"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(40, 40, 40, 0.2)",base:"0 1px 3px 0 rgba(40, 40, 40, 0.3), 0 1px 2px 0 rgba(40, 40, 40, 0.2)",lg:"0 10px 15px -3px rgba(40, 40, 40, 0.3), 0 4px 6px -2px rgba(40, 40, 40, 0.2)"}},K0={name:"one-dark",colors:{primary:"#61afef",secondary:"#c678dd",accent:"#e5c07b",success:"#98c379",warning:"#e5c07b",error:"#e06c75",info:"#56b6c2",light:"#abb2bf",dark:"#282c34",muted:"#5c6370",highlight:"#3e4451",text:{primary:"#abb2bf",secondary:"#c6c8d0",muted:"#5c6370",light:"#ffffff"},background:{primary:"#282c34",secondary:"#3e4451",dark:"#21252b"},border:{light:"#3e4451",dark:"#000000"},syntax:{comment:"#5c6370",string:"#98c379",number:"#d19a66",keyword:"#c678dd",function:"#61afef",variable:"#e06c75",operator:"#56b6c2",type:"#e5c07b",tag:"#e06c75",attr:"#d19a66",default:"#abb2bf"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(40, 44, 52, 0.2)",base:"0 1px 3px 0 rgba(40, 44, 52, 0.3), 0 1px 2px 0 rgba(40, 44, 52, 0.2)",lg:"0 10px 15px -3px rgba(40, 44, 52, 0.3), 0 4px 6px -2px rgba(40, 44, 52, 0.2)"}},W0={name:"catppuccin",colors:{primary:"#89b4fa",secondary:"#cba6f7",accent:"#f5c2e7",success:"#a6e3a1",warning:"#f9e2af",error:"#f38ba8",info:"#89dceb",light:"#cdd6f4",dark:"#11111b",muted:"#6c7086",highlight:"#181825",text:{primary:"#cdd6f4",secondary:"#bac2de",muted:"#6c7086",light:"#ffffff"},background:{primary:"#1e1e2e",secondary:"#181825",dark:"#11111b"},border:{light:"#181825",dark:"#000000"},syntax:{comment:"#6c7086",string:"#a6e3a1",number:"#fab387",keyword:"#cba6f7",function:"#89b4fa",variable:"#cdd6f4",operator:"#89dceb",type:"#f5c2e7",tag:"#f38ba8",attr:"#89b4fa",default:"#cdd6f4"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(30, 30, 46, 0.2)",base:"0 1px 3px 0 rgba(30, 30, 46, 0.3), 0 1px 2px 0 rgba(30, 30, 46, 0.2)",lg:"0 10px 15px -3px rgba(30, 30, 46, 0.3), 0 4px 6px -2px rgba(30, 30, 46, 0.2)"}},O0={name:"rose-pine",colors:{primary:"#9ccfd8",secondary:"#c4a7e7",accent:"#f6c177",success:"#31748f",warning:"#f6c177",error:"#eb6f92",info:"#9ccfd8",light:"#e0def4",dark:"#191724",muted:"#6e6a86",highlight:"#1f1d2e",text:{primary:"#e0def4",secondary:"#cecacd",muted:"#6e6a86",light:"#ffffff"},background:{primary:"#191724",secondary:"#1f1d2e",dark:"#12101a"},border:{light:"#1f1d2e",dark:"#000000"},syntax:{comment:"#6e6a86",string:"#9ccfd8",number:"#ea9a97",keyword:"#c4a7e7",function:"#31748f",variable:"#e0def4",operator:"#f6c177",type:"#9ccfd8",tag:"#eb6f92",attr:"#f6c177",default:"#e0def4"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(25, 23, 36, 0.2)",base:"0 1px 3px 0 rgba(25, 23, 36, 0.3), 0 1px 2px 0 rgba(25, 23, 36, 0.2)",lg:"0 10px 15px -3px rgba(25, 23, 36, 0.3), 0 4px 6px -2px rgba(25, 23, 36, 0.2)"}},q0={name:"kanagawa",colors:{primary:"#8ba4b0",secondary:"#a292a3",accent:"#c47fd5",success:"#76946a",warning:"#c0a36e",error:"#c34043",info:"#7e9cd8",light:"#dcd7ba",dark:"#1f1f28",muted:"#727169",highlight:"#2a2a37",text:{primary:"#dcd7ba",secondary:"#c8c093",muted:"#727169",light:"#ffffff"},background:{primary:"#1f1f28",secondary:"#2a2a37",dark:"#16161d"},border:{light:"#2a2a37",dark:"#000000"},syntax:{comment:"#727169",string:"#98bb6c",number:"#d27e99",keyword:"#957fb8",function:"#7e9cd8",variable:"#dcd7ba",operator:"#c0a36e",type:"#7aa89f",tag:"#c34043",attr:"#7fb4ca",default:"#dcd7ba"}},spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(31, 31, 40, 0.2)",base:"0 1px 3px 0 rgba(31, 31, 40, 0.3), 0 1px 2px 0 rgba(31, 31, 40, 0.2)",lg:"0 10px 15px -3px rgba(31, 31, 40, 0.3), 0 4px 6px -2px rgba(31, 31, 40, 0.2)"}},d=[{id:"ayu-dark",label:"Ayu Dark",theme:V0,tags:["dark","popular"]},{id:"dracula",label:"Dracula",theme:G0,tags:["dark","popular"]},{id:"monokai",label:"Monokai",theme:F0,tags:["dark","classic"]},{id:"nord",label:"Nord",theme:J0,tags:["dark","minimal"]},{id:"solarized-light",label:"Solarized Light",theme:j0,tags:["light"]},{id:"solarized-dark",label:"Solarized Dark",theme:U0,tags:["dark"]},{id:"tokyo-night",label:"Tokyo Night",theme:H0,tags:["dark","popular"]},{id:"github",label:"GitHub",theme:z0,tags:["light","minimal"]},{id:"gruvbox",label:"Gruvbox",theme:_0,tags:["dark","warm"]},{id:"one-dark",label:"One Dark",theme:K0,tags:["dark","popular"]},{id:"catppuccin",label:"Catppuccin",theme:W0,tags:["dark","pastel"]},{id:"rose-pine",label:"Rose Pine",theme:O0,tags:["dark","elegant"]},{id:"kanagawa",label:"Kanagawa",theme:q0,tags:["dark","japanese"]}];var r={primary:"#0066cc",secondary:"#6c757d",accent:"#e83e8c",success:"#28a745",warning:"#ffc107",error:"#dc3545",info:"#17a2b8",light:"#f8f9fa",dark:"#343a40",muted:"#6c757d",highlight:"#fff3cd",text:{primary:"#212529",secondary:"#6c757d",muted:"#6c757d",light:"#ffffff"},background:{primary:"#ffffff",secondary:"#f8f9fa",dark:"#343a40"},border:{light:"#dee2e6",dark:"#495057"},syntax:{comment:"#6c757d",string:"#28a745",number:"#e83e8c",keyword:"#007bff",function:"#17a2b8",variable:"#495057",operator:"#ffc107",type:"#007bff",tag:"#dc3545",attr:"#ffc107",default:"#212529"}},M={name:"default",colors:r,spacing:{xs:0.25,sm:0.5,md:1,lg:1.5,xl:2},typography:{fontSize:{xs:0.75,sm:0.875,base:1,lg:1.125,xl:1.25,"2xl":1.5,"3xl":1.875},fontWeight:{light:300,normal:400,medium:500,semibold:600,bold:700}},borderRadius:{sm:0.125,base:0.25,lg:0.5,xl:0.75},boxShadow:{sm:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",base:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)"}},w0={...M,name:"dark",colors:{...r,text:{primary:"#ffffff",secondary:"#e2e8f0",muted:"#94a3b8",light:"#000000"},background:{primary:"#1e293b",secondary:"#334155",dark:"#0f172a"},border:{light:"#475569",dark:"#64748b"},syntax:{comment:"#94a3b8",string:"#34d399",number:"#f472b6",keyword:"#60a5fa",function:"#06b6d4",variable:"#e2e8f0",operator:"#fbbf24",type:"#60a5fa",tag:"#fb7185",attr:"#fbbf24",default:"#ffffff"}}};class c{currentTheme=M;themes=new Map;constructor(){this.themes.set("default",M),this.themes.set("dark",w0);for(let X of d)this.themes.set(X.id,X.theme)}setTheme(X){let Z=this.themes.get(X);if(Z)this.currentTheme=Z;else throw Error(`Theme '${X}' not found`)}getTheme(){return this.currentTheme}getAvailableThemes(){return Array.from(this.themes.keys())}getCurrentThemeName(){return this.currentTheme.name}getThemeByName(X){return this.themes.get(X)}hasTheme(X){return this.themes.has(X)}}var i=new c;var x0={initializationStatus:"idle",initializationError:null,activeModal:"none",sessionSelectorData:void 0,modelEditorTarget:null,tasks:[],awaitingSecondCtrlC:!1,thinkingModeEnabled:!1,subagentProgress:null},f=(X)=>({...x0,actions:{setInitializationStatus:(Z)=>{X((Q)=>({app:{...Q.app,initializationStatus:Z}}))},setInitializationError:(Z)=>{X((Q)=>({app:{...Q.app,initializationError:Z}}))},setActiveModal:(Z)=>{X((Q)=>({app:{...Q.app,activeModal:Z}}))},showSessionSelector:(Z,Q="resume")=>{X((Y)=>({app:{...Y.app,activeModal:"sessionSelector",sessionSelectorData:{intent:Q,sessions:Z}}}))},showModelEditWizard:(Z)=>{X((Q)=>({app:{...Q.app,activeModal:"modelEditWizard",modelEditorTarget:Z}}))},closeModal:()=>{X((Z)=>({app:{...Z.app,activeModal:"none",sessionSelectorData:void 0,modelEditorTarget:null}}))},setTasks:(Z)=>{X((Q)=>({app:{...Q.app,tasks:Z}}))},updateTask:(Z)=>{X((Q)=>({app:{...Q.app,tasks:Q.app.tasks.map((Y)=>Y.id===Z.id?Z:Y)}}))},setAwaitingSecondCtrlC:(Z)=>{X((Q)=>({app:{...Q.app,awaitingSecondCtrlC:Z}}))},setThinkingModeEnabled:(Z)=>{X((Q)=>({app:{...Q.app,thinkingModeEnabled:Z}}))},toggleThinkingMode:()=>{X((Z)=>({app:{...Z.app,thinkingModeEnabled:!Z.app.thinkingModeEnabled}}))},startSubagentProgress:(Z,Q,Y)=>{X(($)=>({app:{...$.app,subagentProgress:{id:Z,type:Q,description:Y,status:"running",startTime:Date.now()}}}))},updateSubagentTool:(Z)=>{X((Q)=>{if(!Q.app.subagentProgress)return Q;return{app:{...Q.app,subagentProgress:{...Q.app.subagentProgress,currentTool:Z}}}})},completeSubagentProgress:(Z)=>{X((Q)=>{if(!Q.app.subagentProgress)return Q;return{app:{...Q.app,subagentProgress:{...Q.app.subagentProgress,status:Z?"completed":"failed",currentTool:void 0}}}}),setTimeout(()=>{X((Q)=>({app:{...Q.app,subagentProgress:null}}))},1500)}}});var P0={isProcessing:!1,abortController:null,pendingCommands:[],recoveredSteeringCount:0},b=(X,Z)=>({...P0,actions:{setProcessing:(Q)=>{X((Y)=>({command:{...Y.command,isProcessing:Q}}))},createAbortController:()=>{let Q=Z().command.abortController;if(Q&&!Q.signal.aborted)Q.abort("interrupted-by-new-command");let Y=new AbortController;return X(($)=>({command:{...$.command,abortController:Y}})),Y},getAbortController:()=>{return Z().command.abortController},clearAbortController:(Q)=>{let Y=Z().command.abortController;if(Q!==void 0&&Y!==Q)return;X(($)=>({command:{...$.command,abortController:null}}))},abort:(Q)=>{let{abortController:Y}=Z().command;if(Y&&!Y.signal.aborted)Y.abort(Q??"user-cancel");X(($)=>({command:{...$.command,isProcessing:!1,pendingCommands:[]}}))},enqueueCommand:(Q)=>{X((Y)=>({command:{...Y.command,pendingCommands:[...Y.command.pendingCommands,Q]}}))},dequeueCommand:()=>{let{pendingCommands:Q}=Z().command;if(Q.length===0)return;let[Y,...$]=Q;return X((V)=>({command:{...V.command,pendingCommands:$}})),Y},clearQueue:()=>{X((Q)=>({command:{...Q.command,pendingCommands:[]}}))},setRecoveredSteeringCount:(Q)=>{X((Y)=>({command:{...Y.command,recoveredSteeringCount:Math.max(0,Q)}}))}}});var v0={config:null},h=(X)=>({...v0,actions:{setConfig:(Z)=>{X((Q)=>({config:{...Q.config,config:Z}}))},updateConfig:(Z)=>{X((Q)=>{if(!Q.config.config)throw Error(`[ConfigSlice] Config not initialized. Cannot update: ${JSON.stringify(Z)}`);return{config:{...Q.config,config:{...Q.config.config,...Z}}}})}}});var D0={currentFocus:"main-input",previousFocus:null},p=(X)=>({...D0,actions:{setFocus:(Z)=>{X((Q)=>({focus:{...Q.focus,currentFocus:Z,previousFocus:Q.focus.currentFocus}}))},restorePreviousFocus:()=>{X((Z)=>({focus:{...Z.focus,currentFocus:Z.focus.previousFocus||"main-input",previousFocus:null}}))}}});function o(X,Z,Q,Y=0,$=0,V){let J=l(),H=V?J.models.getModel(V,X):J.models.getModels().find((W)=>W.id===X);if(!H)return 0;let U=H.cost,_=Z/1e6*U.input+Q/1e6*U.output+Y/1e6*U.cacheRead+$/1e6*U.cacheWrite;return Math.round(_*1e6)/1e6}var j={codeBlock:/^```(\w+)?\s*$/,heading:/^ *(#{1,4}) +(.+)/,blockquote:/^(>+)\s?(.*)/,ulItem:/^([ \t]*)([-*+]) +(.+)/,olItem:/^([ \t]*)(\d+)\. +(.+)/,hr:/^ *([-*_] *){3,} *$/,table:/^\|(.+)\|$/,tableSeparator:/^\|[\s]*:?-+:?[\s]*(\|[\s]*:?-+:?[\s]*)+\|?$/,diffStart:/^<<<DIFF>>>$/,diffEnd:/^<<<\/DIFF>>>$/,commandMessage:/<command-message>(.*?)<\/command-message>/};function g0(X){let Z=[],Q=X.split(/\r?\n/),Y=!1,$=[],V=null,J=0,H=!1,U=[],_=[],W=!1,P=[],v=!1,O=[],F=0,G=!0;for(let w=0;w<Q.length;w++){let K=Q[w];if(W){if(K.match(j.diffEnd)){try{let q=JSON.parse(P.join(`
|
|
2
2
|
`));Z.push({type:"diff",content:"",diffData:{patch:q.patch,startLine:q.startLine,matchLine:q.matchLine}})}catch(q){Z.push({type:"text",content:P.join(`
|
|
3
3
|
`)})}W=!1,P=[],G=!1;continue}P.push(K);continue}if(K.match(j.diffStart)){W=!0,P=[],G=!1;continue}if(Y){let q=K.match(j.codeBlock),D=K.trim()==="```";if(q&&q[1])J++,$.push(K);else if(D)if(J>0)J--,$.push(K);else{let $0=$.join(`
|
|
4
4
|
`);Z.push({type:"code",content:$0,language:V||void 0}),Y=!1,$=[],V=null,J=0,G=!1}else $.push(K);continue}let N=K.match(j.codeBlock);if(N){Y=!0,V=N[1]||null,J=0,G=!1;continue}let A=K.match(j.table),Z0=K.match(j.tableSeparator);if(A&&!H){if(w+1<Q.length){if(Q[w+1].match(j.tableSeparator)){H=!0,U=A[1].split("|").map((D)=>D.trim()).filter((D)=>D.length>0),_=[],G=!1;continue}}}if(H&&Z0)continue;if(H&&A){let q=A[1].split("|").map((D)=>D.trim()).filter((D)=>D.length>0);while(q.length<U.length)q.push("");if(q.length>U.length)q.length=U.length;_.push(q);continue}if(H&&!A){if(U.length>0&&_.length>0)Z.push({type:"table",content:"",tableData:{headers:U,rows:_}});H=!1,U=[],_=[]}let S=K.match(j.blockquote);if(S){let q=S[1].length,D=S[2]||"";if(v&&q===F)O.push(D);else{if(v)Z.push({type:"blockquote",content:O.join(`
|
|
@@ -21,4 +21,4 @@ import{Ea as Y0,Ga as x}from"./chunk-qwdbqjh7.js";import{Cb as Q0}from"./chunk-j
|
|
|
21
21
|
`+`1. 配置文件格式正确 (~/.blade/config.json)
|
|
22
22
|
`+`2. 运行 blade 进行首次配置
|
|
23
23
|
`+"3. 配置文件权限正确")}finally{L=null}})(),L}var w1=()=>z().config.config?.models??[],x1=()=>{let X=B();if(!X)return;let Z=X.currentModelId;return X.models.find((Y)=>Y.id===Z)??X.models[0]},P1=(X)=>{let Z=B();if(!Z)return;return Z.models.find((Q)=>Q.id===X)},v1=()=>z().config.config?.mcpServers??{},D1=()=>z().app.thinkingModeEnabled,B1=()=>({setPermissionMode:async(X)=>{z().config.actions.updateConfig({permissionMode:X})},setTheme:async(X,Z={})=>{try{i.setTheme(X)}catch{return}z().config.actions.updateConfig({theme:X}),await x().save({theme:X},{scope:"global",...Z})},setLanguage:async(X,Z={})=>{z().config.actions.updateConfig({language:X}),await x().save({language:X},{scope:"global",...Z})},setDebug:async(X,Z={})=>{z().config.actions.updateConfig({debug:X}),await x().save({debug:X},{scope:"global",...Z})},setTemperature:async(X,Z={})=>{z().config.actions.updateConfig({temperature:X}),await x().save({temperature:X},{scope:"global",...Z})},updateConfig:async(X,Z={})=>{let Q=B();if(!Q)throw Error("Config not initialized");let Y={...Q};z().config.actions.updateConfig(X);try{await x().save(X,Z)}catch($){throw z().config.actions.setConfig(Y),$}},flush:async()=>{await x().flush()},appendPermissionAllowRule:async(X,Z={})=>{let Q=B();if(!Q)throw Error("Config not initialized");let Y=Q.permissions?.allow||[];if(!Y.includes(X)){let $=[...Y,X];z().config.actions.updateConfig({permissions:{...Q.permissions,allow:$}})}await x().appendPermissionRule(X,Z)},appendLocalPermissionAllowRule:async(X,Z={})=>{let Q=B();if(!Q)throw Error("Config not initialized");let Y=Q.permissions?.allow||[];if(!Y.includes(X)){let $=[...Y,X];z().config.actions.updateConfig({permissions:{...Q.permissions,allow:$}})}await x().appendLocalPermissionRule(X,Z)},setCurrentModel:async(X,Z={})=>{let Q=B();if(!Q)throw Error("Config not initialized");if(!Q.models.find(($)=>$.id===X))throw Error(`Model not found: ${X}`);z().config.actions.updateConfig({currentModelId:X}),await x().save({currentModelId:X},{scope:"global",...Z})},addModel:async(X,Z={})=>{let Q=B();if(!Q)throw Error("Config not initialized");let Y="id"in X?X:{id:I0(),...X};if(Q.models.find((H)=>H.provider===Y.provider&&H.model===Y.model))throw Error(`Model already configured: ${Y.provider}/${Y.model}`);let J={models:[...Q.models,Y]};if(Q.models.length===0)J.currentModelId=Y.id;return z().config.actions.updateConfig(J),await x().save(J,{scope:"global",...Z}),Y},updateModel:async(X,Z,Q={})=>{let Y=B();if(!Y)throw Error("Config not initialized");let $=Y.models.findIndex((J)=>J.id===X);if($===-1)throw Error(`Model not found: ${X}`);let V=[...Y.models];V[$]={...V[$],...Z},z().config.actions.updateConfig({models:V}),await x().save({models:V},{scope:"global",...Q})},removeModel:async(X,Z={})=>{let Q=B();if(!Q)throw Error("Config not initialized");if(Q.models.length===1)throw Error("Cannot remove the only model");let Y=Q.models.filter((V)=>V.id!==X),$={models:Y};if(Q.currentModelId===X)$.currentModelId=Y[0].id;z().config.actions.updateConfig($),await x().save($,{scope:"global",...Z})},addMcpServer:async(X,Z,Q={})=>{let Y=B();if(!Y)throw Error("Config not initialized");let V={...Y.mcpServers??{},[X]:Z};z().config.actions.updateConfig({mcpServers:V}),await x().save({mcpServers:V},{scope:"project",...Q})},removeMcpServer:async(X,Z={})=>{let Q=B();if(!Q)throw Error("Config not initialized");let $={...Q.mcpServers??{}};delete $[X],z().config.actions.updateConfig({mcpServers:$}),await x().save({mcpServers:$},{scope:"project",...Z})}});
|
|
24
|
-
export{d as
|
|
24
|
+
export{d as ia,i as ja,j as ka,g0 as la,c0 as ma,i0 as na,l0 as oa,o0 as pa,n0 as qa,a0 as ra,C0 as sa,z as ta,K1 as ua,W1 as va,O1 as wa,B as xa,q1 as ya,w1 as za,x1 as Aa,P1 as Ba,v1 as Ca,D1 as Da,B1 as Ea};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as o}from"./chunk-
|
|
1
|
+
import{g as o}from"./chunk-6x6zqjcs.js";import"./chunk-w4xcmzjm.js";import{execSync as r}from"child_process";var l={command:"update",describe:"Check for updates and install if available",handler:async()=>{console.log("Checking for updates...");try{let e=await o(!0);if(console.log(`Current version: ${e.currentVersion}`),e.error){console.log(`Warning: ${e.error}`);return}if(e.latestVersion)console.log(`Latest version: ${e.latestVersion}`);if(e.hasUpdate&&e.latestVersion){console.log(""),console.log(`\x1B[33mUpdate available: ${e.currentVersion} -> ${e.latestVersion}\x1B[0m`),console.log(""),console.log("Updating...");try{r("npm install -g blade-code@latest --registry https://registry.npmjs.org",{stdio:"inherit"}),console.log(""),console.log("Update complete!")}catch(t){console.error("Error: Update failed. Please run manually:"),console.error(" npm install -g blade-code@latest"),process.exit(1)}}else console.log("You are running the latest version of Blade")}catch(e){console.error(`Error: Failed to check for updates: ${e instanceof Error?e.message:"未知错误"}`),process.exit(1)}}};export{l as updateCommands};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as a,v as b}from"./chunk-1evg2hdd.js";import"./chunk-887qxhn5.js";import"./chunk-w4xcmzjm.js";export{a as globalOptions,b as cliConfig};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{dc as j}from"./chunk-0g9cb41d.js";import{appendFileSync as E,existsSync as O,mkdirSync as R,readdirSync as U,statSync as B,unlinkSync as k}from"node:fs";import W from"node:path";var X;((H)=>{H[H.DEBUG=0]="DEBUG";H[H.INFO=1]="INFO";H[H.WARN=2]="WARN";H[H.ERROR=3]="ERROR"})(X||={});var T=null,_=null,$=!1;function m(q){if(T!==q)T=q}async function I(){}function w(){if($)return _;$=!0;try{let q=W.join(j(),"logs");if(!O(q))R(q,{recursive:!0,mode:493});if(B(q).uid===0&&process.getuid&&process.getuid()!==0)return console.error(""),console.error("[FAIL] 权限错误:~/.blade/logs 目录属于 root 用户"),console.error(""),console.error("这通常是因为您曾经使用 sudo 运行过 blade。"),console.error(""),console.error("解决方法:"),console.error(" sudo chown -R $USER:$USER ~/.blade/"),console.error(""),console.error("然后重新运行 blade(不要使用 sudo)"),console.error(""),null;return z(q,30),_=q,q}catch(q){return console.error("[Logger] 无法创建日志目录:",q),null}}function z(q,G){try{let J=U(q),K=Date.now(),H=G*24*60*60*1000;for(let Q of J){if(!Q.startsWith("blade-")||!Q.endsWith(".log")&&!Q.endsWith(".jsonl"))continue;let Y=W.join(q,Q);try{let Z=B(Y);if(K-Z.mtimeMs>H)k(Y)}catch(Z){}}}catch(J){}}function F(){let q=w();if(!q)return null;let G=T||"default";return W.join(q,`blade-${G}.jsonl`)}function A(q,G,J){let K=F();if(!K)return;try{let H={timestamp:new Date().toISOString(),level:X[G],category:q,message:J};E(K,JSON.stringify(H)+`
|
|
2
2
|
`)}catch(H){}}class M{static globalDebugConfig=null;enabled;minLevel;category;constructor(q={}){if(q.enabled!==void 0)this.enabled=q.enabled;else if(M.globalDebugConfig!==null)this.enabled=Boolean(M.globalDebugConfig);else this.enabled=!1;this.minLevel=q.minLevel??0,this.category=q.category??"General"}static setGlobalDebug(q){M.globalDebugConfig=q}static clearGlobalDebug(){M.globalDebugConfig=null}setEnabled(q){this.enabled=q}parseDebugFilter(q){if(!q)return{enabled:!1};if(q===!0||q==="true"||q==="1")return{enabled:!0};let G=String(q).trim();if(!G)return{enabled:!0};if(G.startsWith("!"))return{enabled:!0,filter:{mode:"exclude",categories:G.split(",").map((H)=>H.trim().replace(/^!/,"")).filter(Boolean)}};return{enabled:!0,filter:{mode:"include",categories:G.split(",").map((K)=>K.trim()).filter(Boolean)}}}shouldLogCategory(q){if(!q)return!0;let G=this.category.toLowerCase();if(q.mode==="include")return q.categories.some((J)=>G.includes(J.toLowerCase()));return!q.categories.some((J)=>G.includes(J.toLowerCase()))}shouldLogToConsole(q){if(M.globalDebugConfig!==null){let{enabled:G,filter:J}=this.parseDebugFilter(M.globalDebugConfig);if(!G)return!1;if(q<this.minLevel)return!1;return this.shouldLogCategory(J)}return this.enabled&&q>=this.minLevel}log(q,...G){let J=G.map((K)=>typeof K==="object"?JSON.stringify(K):String(K)).join(" ");if(A(this.category,q,J),this.shouldLogToConsole(q)){let K=X[q],H=`[${this.category}] [${K}]`;console.error(H,...G)}}debug(...q){this.log(0,...q)}info(...q){this.log(1,...q)}warn(...q){this.log(2,...q)}error(...q){this.log(3,...q)}}function V(q,G){return new M({...G,category:q})}var h=new M({category:"General"});
|
|
3
|
-
export{m as
|
|
3
|
+
export{m as Sb,I as Tb,M as Ub,V as Vb,h as Wb};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as y,b as A,c as C,d as D}from"./chunk-zns65xsy.js";import"./chunk-1x3846v7.js";import"./chunk-qwfqp465.js";import"./chunk-eycs00af.js";import"./chunk-kne7h7p5.js";import"./chunk-6jq8h5s9.js";import"./chunk-fpdqvnmq.js";import{ya as q}from"./chunk-8fp3q919.js";import"./chunk-j14rn2dx.js";import"./chunk-11s7t9dp.js";import"./chunk-887qxhn5.js";import"./chunk-6avkjdjc.js";import"./chunk-p4yrmzyr.js";import"./chunk-f3pvwxp8.js";import"./chunk-0z5qe4m2.js";import"./chunk-81p4kz0b.js";import"./chunk-rxjt7ma7.js";import"./chunk-5fw9k1ff.js";import"./chunk-9xvnrq7m.js";import"./chunk-0g9cb41d.js";import"./chunk-w4xcmzjm.js";import H from"chalk";var R={command:"serve",describe:"Start a headless Blade server (no browser)",builder:y,handler:async(E)=>{let f=A(E);if(await q(),!process.env.BLADE_SERVER_PASSWORD)console.log(H.yellow("Warning: BLADE_SERVER_PASSWORD is not set; server is unsecured."));let b=await D.listenAsync(f);if(console.log(`Blade server listening on http://${b.hostname}:${b.port}`),f.hostname==="0.0.0.0"){let F=C();for(let G of F)console.log(` Network: http://${G}:${b.port}`)}await new Promise(()=>{}),await b.stop()}};export{R as serveCommand};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Ga as t}from"./chunk-j14rn2dx.js";import{Kb as r}from"./chunk-rxjt7ma7.js";import"./chunk-9xvnrq7m.js";import"./chunk-0g9cb41d.js";import{gc as s}from"./chunk-w4xcmzjm.js";var m={command:"doctor",describe:"Check the health of your Blade installation",handler:async()=>{console.log(`Running Blade health check...
|
|
2
2
|
`);let e=0;try{await t.getInstance().initialize(),console.log("[OK] Configuration: OK")}catch(o){console.log("[FAIL] Configuration: FAILED"),console.log(` Error: ${o instanceof Error?o.message:"未知错误"}`),e++}let n=process.version;if(parseInt(n.slice(1).split(".")[0])>=18)console.log(`[OK] Node.js version: ${n}`);else console.log(`[WARN] Node.js version: ${n} (recommended: v18+)`),e++;try{let o=await import("fs/promises"),i=r();await o.access(i,(await import("fs")).constants.R_OK|(await import("fs")).constants.W_OK),console.log("[OK] File system permissions: OK")}catch(o){console.log("[FAIL] File system permissions: FAILED"),console.log(" Error: Cannot read/write in current directory"),e++}try{await import("ink"),console.log("[OK] Dependencies: OK")}catch(o){console.log("[FAIL] Dependencies: FAILED"),console.log(" Error: Missing required dependencies"),e++}if(console.log(`
|
|
3
3
|
Health Check Summary:`),e===0)console.log("All checks passed! Blade is ready to use.");else console.log(`Warning: Found ${e} issue(s). Please resolve them for optimal performance.`),process.exit(1)}};export{m as doctorCommands};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{p as r}from"./chunk-qwfqp465.js";import{q as s,r as n,s as o,t as a}from"./chunk-w11ht6f9.js";import{u as m}from"./chunk-1evg2hdd.js";import{w as l,x as p,y as i}from"./chunk-8epvwyg8.js";import{z as u}from"./chunk-4fye39a8.js";import{P as d,Q as v,R as y,T as O,U as T}from"./chunk-eycs00af.js";import"./chunk-kne7h7p5.js";import"./chunk-6jq8h5s9.js";import"./chunk-fpdqvnmq.js";import"./chunk-8fp3q919.js";import"./chunk-j14rn2dx.js";import"./chunk-11s7t9dp.js";import"./chunk-887qxhn5.js";import{cb as g}from"./chunk-6avkjdjc.js";import"./chunk-p4yrmzyr.js";import"./chunk-f3pvwxp8.js";import{Ab as q,Bb as W,Db as _,yb as S}from"./chunk-0z5qe4m2.js";import"./chunk-81p4kz0b.js";import{Jb as k,Kb as J,Lb as c}from"./chunk-rxjt7ma7.js";import"./chunk-5fw9k1ff.js";import"./chunk-9xvnrq7m.js";import"./chunk-0g9cb41d.js";import"./chunk-w4xcmzjm.js";import Iq from"yargs";import{hideBin as Jq}from"yargs/helpers";var F=1;function K(Y){return q.Object({event_version:q.Literal(F),...Y})}var Gq=K({type:q.Literal("content_delta"),delta:q.String()}),Xq=K({type:q.Literal("thinking_delta"),delta:q.String()}),Bq=K({type:q.Literal("thinking"),content:q.String()}),Uq=K({type:q.Literal("stream_end")}),Vq=K({type:q.Literal("content"),content:q.String()}),w=_(["readonly","write","execute"]),Dq=K({type:q.Literal("tool_start"),tool_name:q.String(),summary:q.String(),target:q.Optional(q.String()),tool_kind:q.Optional(w)}),Kq=K({type:q.Literal("tool_result"),tool_name:q.String(),summary:q.String(),target:q.Optional(q.String()),tool_kind:q.Optional(w),success:q.Optional(q.Boolean()),error_type:q.Optional(q.String()),error_message:q.Optional(q.String())}),bq=K({type:q.Literal("phase"),phase:_(["turn","searching","inspecting","target_hit","executing","completed"]),status:_(["ongoing","hit","done"]),message:q.String(),turn:q.Optional(q.Number()),tool_name:q.Optional(q.String()),target:q.Optional(q.String())}),jq=K({type:q.Literal("tool_detail"),tool_name:q.String(),detail:q.String()}),_q=K({type:q.Literal("task_update"),tasks:q.Array(O)}),zq=K({type:q.Literal("subagent"),state:_(["spawned","completed"]),session_id:q.String(),subagent_type:q.Optional(q.String()),success:q.Optional(q.Boolean()),summary:q.Optional(q.String()),resumed_from:q.Optional(q.String()),root_agent_id:q.Optional(q.String()),resume_depth:q.Optional(q.Integer({minimum:0}))}),Aq=K({type:q.Literal("token_usage"),input_tokens:q.Number(),output_tokens:q.Number(),total_tokens:q.Number(),max_context_tokens:q.Number(),cache_read_tokens:q.Optional(q.Number()),cache_write_tokens:q.Optional(q.Number()),cost_usd:q.Optional(q.Number())}),Mq=K({type:q.Literal("compacting"),state:_(["started","completed"])}),Hq=K({type:q.Literal("turn_limit"),turns_count:q.Number(),action:q.Literal("continue")}),Rq=K({type:q.Literal("task_session"),session_id:q.String(),project_path:q.String(),source_project_path:q.String(),isolation:_(["local","worktree"]),worktree_branch:q.Optional(q.String()),base_commit:q.Optional(q.String())}),fq=K({type:q.Literal("output"),content:q.String(),exit_code:q.Number()}),xq=K({type:q.Literal("error"),message:q.String()}),vq=W(q.Union([Gq,Xq,Bq,Uq,Vq,Dq,Kq,bq,jq,_q,zq,Aq,Mq,Hq,Rq,fq,xq]));function E(Y,$){return{event_version:F,type:Y,...$}}function Pq(Y){if(Y?.signal)return{signal:Y.signal,dispose:()=>{return}};let $=new AbortController,G=()=>$.abort("interrupt");return process.once("SIGINT",G),process.once("SIGTERM",G),{signal:$.signal,dispose:()=>{process.removeListener("SIGINT",G),process.removeListener("SIGTERM",G)}}}var Lq=_(["text","jsonl"]),Nq=q.Object({headless:q.Optional(q.Boolean()),message:q.Optional(q.String()),_:q.Optional(q.Array(q.Union([q.String(),q.Number()]))),model:q.Optional(q.String()),systemPrompt:q.Optional(q.String()),appendSystemPrompt:q.Optional(q.String()),maxTurns:q.Optional(q.Refine(q.Integer({maximum:c}),(Y)=>Y===-1||Y>0,()=>"must be -1 or a positive integer")),permissionMode:q.Optional(q.Enum(k)),mcpConfig:q.Optional(q.Array(q.String())),strictMcpConfig:q.Optional(q.Boolean()),sessionId:q.Optional(q.String()),allowedTools:q.Optional(q.Array(q.String())),disallowedTools:q.Optional(q.Array(q.String())),agents:q.Optional(q.String()),continue:q.Optional(q.Boolean()),resume:q.Optional(q.Union([q.String(),q.Boolean()])),forkSession:q.Optional(q.Boolean()),taskIsolation:q.Optional(_(["local","worktree"])),outputFormat:q.Optional(Lq)});class t{openedThinking=!1;wroteAssistantContent=!1;markAssistantContent(){this.wroteAssistantContent=!0}setThinkingOpened(Y){this.openedThinking=Y}hasOpenThinking(){return this.openedThinking}completeStream(){let Y={openedThinking:this.openedThinking,wroteAssistantContent:this.wroteAssistantContent};return this.openedThinking=!1,this.wroteAssistantContent=!1,Y}}function Wq(Y){return Y.issues.map(($)=>`${$.path.join(".")||"options"}: ${$.message}`).join("; ")}function Oq(Y){let $=S(Nq,Y);if(!$.success)throw Error(`Invalid headless options: ${Wq($.error)}`);return $.data}function Fq(Y){return Y.command("* [message]","Run full agent loop without Ink UI and print events to the terminal",($)=>$.positional("message",{describe:"Message to process",type:"string"}).option("headless",{type:"boolean",describe:"Run full agent loop without Ink UI and print events to the terminal"}).option("model",{describe:"Model ID for this run",type:"string"}).option("system-prompt",{describe:"Replace the default system prompt",type:"string"}).option("append-system-prompt",{describe:"Append a system prompt to the default system prompt",type:"string"}).option("max-turns",{alias:["maxTurns"],describe:"Maximum conversation turns (-1: unlimited, N>0: limit to N turns)",type:"number"}).option("output-format",{alias:["outputFormat"],choices:["text","jsonl"],describe:"Headless output format",type:"string"}).option("task-isolation",{alias:["taskIsolation"],choices:["local","worktree"],describe:"Dispatch a new durable task in the selected workspace mode",type:"string"}),async($)=>{if(!$.headless)return;let G=await Sq($);process.exit(G)})}function b(Y,$=""){Y.write(`${$}
|
|
2
|
+
`)}function wq(Y){return`[task] [${Y.status}] ${Y.subject}`}function Eq(){return{requestConfirmation:async(Y)=>({approved:!0,reason:"headless-auto-approved",scope:"session"})}}function Cq(Y){if(!(Y instanceof Error))return"Unknown error";let Q=Y.lastError??Y;if(Q.responseBody)try{let U=JSON.parse(Q.responseBody)?.error?.message;if(U)return Q.statusCode?`${U} (HTTP ${Q.statusCode})`:U}catch{}let Z=Y.message.match(/Last error:\s*(.+)$/);if(Z)return Z[1];return Y.message}function hq(Y){return Y==="jsonl"?"jsonl":"text"}function C(Y,$){let G=(...Q)=>{for(let Z of Q){let D=$[Z];if(typeof D==="string"&&D.trim()!=="")return D}return};switch(Y){case"Read":case"Edit":case"Write":case"UndoEdit":return G("file_path");case"NotebookEdit":return G("notebook_path");case"Grep":return G("path","pattern");case"Glob":return G("pattern");case"WebFetch":return G("url");case"WebSearch":return G("query");case"Bash":return G("command","description");case"Task":return G("description");case"LSP":return G("filePath","operation");case"EnterWorktree":return G("name");case"ExitWorktree":return G("action");default:return}}function kq(Y,$,G,Q){let Z=new Set(["Glob","Grep","WebSearch","LS"]),D=new Set(["Read","WebFetch"]);if(new Set(["Edit","Write","NotebookEdit","Bash","LSP","UndoEdit","EnterWorktree","ExitWorktree"]).has(Y)&&!Q.targetLocked)return{phase:"target_hit",status:"hit",message:`Target locked: ${$}`,shouldLockTarget:!0};if(Q.targetLocked)return{phase:"executing",status:"hit",message:G?`Working within target: ${$}`:`Executing: ${$}`,shouldLockTarget:!1};if(Z.has(Y))return{phase:"searching",status:"ongoing",message:`Still searching: ${$}`,shouldLockTarget:!1};if(D.has(Y))return{phase:"inspecting",status:"ongoing",message:`Inspecting candidate: ${$}`,shouldLockTarget:!1};return{phase:"executing",status:Q.targetLocked?"hit":"ongoing",message:`Executing: ${$}`,shouldLockTarget:!1}}function h(Y,$){let G=(Q,Z)=>{Y.stdout.write(`${JSON.stringify(E(Q,Z))}
|
|
3
|
+
`)};return{contentDelta(Q){if($==="jsonl"){G("content_delta",{delta:Q});return}Y.stdout.write(Q)},thinkingDelta(Q,Z){if($==="jsonl")return G("thinking_delta",{delta:Q}),Z;if(!Z)Y.stderr.write("[thinking] ");return Y.stderr.write(Q),!0},thinking(Q){if($==="jsonl"){G("thinking",{content:Q});return}b(Y.stderr,`[thinking] ${Q}`)},streamEnd(Q,Z){if($==="jsonl"){G("stream_end",{});return}if(Z)Y.stderr.write(`
|
|
4
|
+
`);if(Q)Y.stdout.write(`
|
|
5
|
+
`)},content(Q){if($==="jsonl"){G("content",{content:Q});return}b(Y.stdout,Q)},toolStart(Q,Z,D,U){if($==="jsonl"){G("tool_start",{tool_name:Q,summary:Z,target:D,tool_kind:U});return}b(Y.stderr,`[tool:start] ${Z}`)},toolResult(Q,Z,D,U,j){if($==="jsonl"){G("tool_result",{tool_name:Q,summary:Z,target:D,tool_kind:U,success:j?.success,error_type:j?.errorType,error_message:j?.errorMessage});return}b(Y.stderr,`[tool:result] ${Z}`)},phase(Q,Z,D,U={}){if($==="jsonl"){G("phase",{phase:Q,status:Z,message:D,turn:U.turn,tool_name:U.toolName,target:U.target});return}b(Y.stderr,`[phase:${Q}] ${D}`)},toolDetail(Q,Z){if($==="jsonl"){G("tool_detail",{tool_name:Q,detail:Z});return}b(Y.stderr,Z)},taskUpdate(Q){if($==="jsonl"){G("task_update",{tasks:Q});return}for(let Z of Q)b(Y.stderr,wq(Z))},subagent(Q){let Z=Q.kind==="subagent_spawned";if($==="jsonl"){G("subagent",{state:Z?"spawned":"completed",session_id:Q.sessionId,subagent_type:Z?Q.type:void 0,success:Z?void 0:Q.success,summary:Z?void 0:Q.summary,resumed_from:Q.resumedFrom,root_agent_id:Q.rootAgentId,resume_depth:Q.resumeDepth});return}b(Y.stderr,`[subagent:${Z?"spawned":"completed"}] ${Q.sessionId}${Q.resumedFrom?` resumed from ${Q.resumedFrom}`:""}`)},tokenUsage(Q){if($==="jsonl"){G("token_usage",{input_tokens:Q.inputTokens,output_tokens:Q.outputTokens,total_tokens:Q.totalTokens,max_context_tokens:Q.maxContextTokens,cache_read_tokens:Q.cacheReadTokens,cache_write_tokens:Q.cacheWriteTokens,cost_usd:Q.costUsd});return}b(Y.stderr,`[tokens] in=${Q.inputTokens} out=${Q.outputTokens} total=${Q.totalTokens} / ${Q.maxContextTokens}`)},compacting(Q){if($==="jsonl"){G("compacting",{state:Q?"started":"completed"});return}b(Y.stderr,Q?"[context] compacting started":"[context] compacting completed")},turnLimit(Q){if($==="jsonl"){G("turn_limit",{turns_count:Q,action:"continue"});return}b(Y.stderr,`[turn-limit] continuing after ${Q} turns`)},taskSession(Q){if($==="jsonl"){G("task_session",{session_id:Q.sessionId,project_path:Q.projectPath,source_project_path:Q.sourceProjectPath,isolation:Q.isolation,worktree_branch:Q.worktreeBranch,base_commit:Q.baseCommit});return}b(Y.stderr,`[task:${Q.isolation}] ${Q.sessionId} ${Q.sourceProjectPath} -> ${Q.projectPath}${Q.worktreeBranch?` (${Q.worktreeBranch})`:""}`)},output(Q,Z=0){if($==="jsonl"){G("output",{content:Q,exit_code:Z});return}b(Z===0?Y.stdout:Y.stderr,Q)},error(Q){if($==="jsonl"){G("error",{message:Q});return}b(Y.stderr,Q)}}}async function Sq(Y,$={stdout:process.stdout,stderr:process.stderr},G){let Q="text",Z=h($,Q),D=new t,U={targetLocked:!1},j,M=Pq(G);try{let X=Oq(Y);Q=hq(X.outputFormat),Z=h($,Q),await s();let e=await n(X),A=await o(e);if(A.mode==="output"){if(A.content)Z.output(A.content,A.exitCode??0);return A.exitCode??0}let N=X.permissionMode??"yolo";if(X.taskIsolation&&(X.continue||X.resume||X.forkSession))throw Error("--task-isolation cannot be combined with --continue, --resume, or --fork-session");let{sessionId:f,messages:qq}=await a({sessionId:X.sessionId,continue:X.continue,resume:X.resume,forkSession:X.forkSession,fallbackSessionPrefix:"headless"}),z=X.taskIsolation?await r.createSessionTask({sessionId:f,prompt:A.content,sourceProjectPath:J(),isolation:X.taskIsolation}):void 0,P=z?.metadata.projectPath??J();if(z)Z.taskSession({sessionId:f,projectPath:P,sourceProjectPath:z.metadata.taskSourceProjectPath??J(),isolation:X.taskIsolation,worktreeBranch:z.metadata.taskWorktreeBranch,baseCommit:z.metadata.taskBaseCommit});let Qq={messages:[...qq],userId:"cli-user",sessionId:f,workspaceRoot:P,permissionMode:N,signal:M.signal,...z?.taskWorktree?{worktreeActive:!0}:{},confirmationHandler:Eq()};j=await d.create({sessionId:f,workspaceRoot:P,modelId:X.model,mcpConfig:X.mcpConfig,strictMcpConfig:X.strictMcpConfig,agents:X.agents?u(X.agents):void 0,...z?.taskWorktree?{taskWorktree:z.taskWorktree}:{}});let Yq=X.maxTurns??j.getConfig().maxTurns,Zq=z?.taskWorktree?[...new Set([...X.disallowedTools??[],"EnterWorktree","ExitWorktree"])]:X.disallowedTools,$q=await T.createWithRuntime(j,{sessionId:f,systemPrompt:X.systemPrompt,appendSystemPrompt:X.appendSystemPrompt,maxTurns:X.maxTurns,modelId:X.model,permissionMode:N,toolWhitelist:X.allowedTools,toolBlacklist:Zq,mcpConfig:X.mcpConfig,strictMcpConfig:X.strictMcpConfig}),L=await g($q.chatStream(A.content,Qq,{stream:!0,signal:M.signal,maxTurns:X.maxTurns,...Yq===-1?{onTurnLimitReached:async(V)=>{return Z.turnLimit(V.turnsCount),{continue:!0,reason:"headless-auto-continue"}}}:{}}),async(V)=>{switch(V.kind){case"content_delta":D.markAssistantContent(),Z.contentDelta(V.delta);break;case"thinking_delta":D.setThinkingOpened(Z.thinkingDelta(V.delta,D.hasOpenThinking()));break;case"stream_end":{let B=D.completeStream();Z.streamEnd(B.wroteAssistantContent,B.openedThinking);break}case"tool_start":{let B=V.toolCall;if(!("function"in B))break;if(["TaskCreate","TaskUpdate","TaskList"].includes(B.function.name))break;try{let H=JSON.parse(B.function.arguments),R=v(B.function.name,H),x=C(B.function.name,H),I=kq(B.function.name,R,x,U);if(I.shouldLockTarget)U.targetLocked=!0;Z.phase(I.phase,I.status,I.message,{toolName:B.function.name,target:x}),Z.toolStart(B.function.name,R,x,V.toolKind)}catch{Z.phase(U.targetLocked?"executing":"searching",U.targetLocked?"hit":"ongoing",U.targetLocked?`Working within target: ${B.function.name}`:`Still searching: ${B.function.name}`,{toolName:B.function.name}),Z.toolStart(B.function.name,B.function.name,void 0,V.toolKind)}break}case"tool_result":{let B=V.toolCall;if(!("function"in B))break;let H;try{let x=JSON.parse(B.function.arguments);H=C(B.function.name,x)}catch{H=void 0}let R=y(B.function.name,V.result);if(Z.toolResult(B.function.name,R.summary,H,void 0,{success:V.result.success,errorType:V.result.error?.type,errorMessage:V.result.error?.message}),R.detail)Z.toolDetail(B.function.name,R.detail);break}case"token_usage":Z.tokenUsage(V.usage);break;case"compaction":Z.compacting(V.phase==="start");break;case"task_update":Z.taskUpdate(V.tasks);break;case"steering_applied":case"follow_up_started":case"goal_updated":case"goal_continuation_started":break;case"subagent_spawned":case"subagent_completed":Z.subagent(V);break;case"model_fallback":break;case"turn_start":if(V.turn===1)U.targetLocked=!1;Z.phase("turn",U.targetLocked?"hit":"ongoing",`Turn ${V.turn} started`,{turn:V.turn});break;default:{let B=V}}});if(L.metadata?.outputTruncated)Z.error("[warning] 输出因达到 token 上限被截断,部分内容可能不完整。");if(!L.success)return Z.error(`Error: ${L.error?.message??"Agent execution failed"}`),1;return Z.phase("completed","done","Headless run completed"),0}catch(X){if(D.hasOpenThinking()&&Q==="text")$.stderr.write(`
|
|
6
|
+
`);return Z.error(`Error: ${Cq(X)}`),1}finally{try{await j?.dispose()}finally{M.dispose()}}}async function $Q(){if(!process.argv.slice(2).includes("--headless"))return!1;let{headless:G,"output-format":Q,"system-prompt":Z,"append-system-prompt":D,"max-turns":U,...j}=m,M=Iq(Jq(process.argv)).scriptName("blade").strict(!1).options(j).middleware([p,l,i]);return Fq(M),await M.parse(),!0}export{Sq as runHeadless,$Q as handleHeadlessMode,Nq as HeadlessOptionsSchema};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as a,x as b,y as c}from"./chunk-8epvwyg8.js";import"./chunk-4fye39a8.js";import"./chunk-kne7h7p5.js";import"./chunk-8fp3q919.js";import"./chunk-j14rn2dx.js";import"./chunk-0z5qe4m2.js";import"./chunk-81p4kz0b.js";import"./chunk-rxjt7ma7.js";import"./chunk-9xvnrq7m.js";import"./chunk-0g9cb41d.js";import"./chunk-w4xcmzjm.js";export{a as validatePermissions,c as validateOutput,b as loadConfiguration};
|