blade-code 0.10.14 → 0.10.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/blade.js +2 -2
  2. package/dist/{chunk-4hawehmd.js → chunk-0ndm72az.js} +2 -2
  3. package/dist/{chunk-gav4hxcv.js → chunk-1n60pgsq.js} +2 -2
  4. package/dist/{chunk-dpt56hah.js → chunk-2c3zavy2.js} +1 -1
  5. package/dist/{chunk-321n9hem.js → chunk-2e03enfb.js} +1 -1
  6. package/dist/chunk-2g41y2tz.js +1 -0
  7. package/dist/chunk-334jhwxz.js +160 -0
  8. package/dist/chunk-3qhqbj09.js +2 -0
  9. package/dist/{chunk-mcqe9km3.js → chunk-3wbheq1y.js} +1 -1
  10. package/dist/chunk-4k615fx6.js +1 -0
  11. package/dist/chunk-4svjvyyd.js +1 -0
  12. package/dist/chunk-4twtqram.js +22 -0
  13. package/dist/chunk-51hjqrt8.js +1 -0
  14. package/dist/{chunk-8j01ssaf.js → chunk-5chec8rs.js} +1 -1
  15. package/dist/{chunk-4dq9y7zn.js → chunk-6207mbmr.js} +2 -2
  16. package/dist/{chunk-g11hq0e5.js → chunk-6g5k5de1.js} +1 -1
  17. package/dist/{chunk-vmq248m7.js → chunk-6pa6c2n0.js} +1 -1
  18. package/dist/{chunk-heqs3xan.js → chunk-6sb7cg95.js} +1 -1
  19. package/dist/chunk-87vsgqvy.js +1 -0
  20. package/dist/chunk-88639hse.js +1 -0
  21. package/dist/chunk-8brheywa.js +1 -0
  22. package/dist/{chunk-kvx3sb3z.js → chunk-96h588rd.js} +1 -1
  23. package/dist/{chunk-8zr7h97n.js → chunk-9m1ayjve.js} +1 -1
  24. package/dist/chunk-ajy99edp.js +100 -0
  25. package/dist/{chunk-j7k5x43d.js → chunk-as56atkw.js} +2 -2
  26. package/dist/chunk-bcxbrbvd.js +1 -0
  27. package/dist/{chunk-732n8xj6.js → chunk-d9k98jy2.js} +1 -1
  28. package/dist/chunk-djktk1az.js +1 -0
  29. package/dist/{chunk-se1tfys3.js → chunk-dskgbv7c.js} +2 -2
  30. package/dist/{chunk-74shfpve.js → chunk-entmz5b1.js} +1 -1
  31. package/dist/chunk-f2qj464t.js +1 -0
  32. package/dist/{chunk-z8c5rhdh.js → chunk-fa6313dv.js} +1 -1
  33. package/dist/{chunk-xx1d9kfd.js → chunk-fvj1mzgs.js} +1 -1
  34. package/dist/{chunk-9ajyeqa7.js → chunk-gc9wfvfd.js} +2 -2
  35. package/dist/chunk-gwx7jz87.js +3 -0
  36. package/dist/chunk-h1kgh7xz.js +10 -0
  37. package/dist/{chunk-hrmfhv8k.js → chunk-h37yw6g3.js} +2 -2
  38. package/dist/{chunk-s5666ta0.js → chunk-jpwfq49n.js} +2 -2
  39. package/dist/{chunk-ktf3bpmw.js → chunk-k3nkcaap.js} +2 -2
  40. package/dist/{chunk-2mzcxq6c.js → chunk-kbpc97n3.js} +2 -2
  41. package/dist/{chunk-2z6261pz.js → chunk-kn8xx8ng.js} +2 -2
  42. package/dist/{chunk-zvt8ngpt.js → chunk-ky0v990x.js} +3 -3
  43. package/dist/{chunk-0hbvc51n.js → chunk-mbrevmbp.js} +2 -2
  44. package/dist/{chunk-rbph12qe.js → chunk-mcr47s40.js} +4 -4
  45. package/dist/chunk-n2hwfw7v.js +200 -0
  46. package/dist/{chunk-wznyzdtg.js → chunk-n6jjfyqn.js} +1 -1
  47. package/dist/{chunk-5s123nbs.js → chunk-prgh321y.js} +1 -1
  48. package/dist/{chunk-7wjy6kgt.js → chunk-q3c07kb4.js} +1 -1
  49. package/dist/{chunk-afkhzdfc.js → chunk-qkrssft1.js} +1 -1
  50. package/dist/{chunk-p4zt7ts9.js → chunk-qt114yth.js} +1 -1
  51. package/dist/chunk-qwpbwhmn.js +1 -0
  52. package/dist/{chunk-9tnaads5.js → chunk-r1jxbx1h.js} +1 -1
  53. package/dist/{chunk-snv4bpbv.js → chunk-s31msata.js} +2 -2
  54. package/dist/{chunk-8y2zs0p0.js → chunk-sxj3psy3.js} +2 -2
  55. package/dist/{chunk-mtk2tf9n.js → chunk-t3b689pm.js} +1 -1
  56. package/dist/chunk-vhxarqb0.js +6 -0
  57. package/dist/{chunk-632rgzcf.js → chunk-wt7gy9bm.js} +2 -2
  58. package/dist/{chunk-pt0en61h.js → chunk-wxvkrxf4.js} +2 -2
  59. package/dist/chunk-xet98pc1.js +5 -0
  60. package/dist/chunk-xzhk0smg.js +4 -0
  61. package/dist/chunk-y26ngyc2.js +1 -0
  62. package/dist/{chunk-3aqdjrtm.js → chunk-y2g5a5bp.js} +1 -1
  63. package/dist/chunk-y61ne49f.js +1 -0
  64. package/dist/{chunk-xq403rac.js → chunk-y78smk7g.js} +4 -4
  65. package/dist/chunk-ynncadtz.js +1 -0
  66. package/dist/{chunk-dsj62dcg.js → chunk-yqfqj7mh.js} +1 -1
  67. package/dist/{chunk-363pgv1e.js → chunk-yvf4nmds.js} +2 -2
  68. package/dist/{chunk-ybvdac8k.js → chunk-yz2bsntj.js} +1 -1
  69. package/dist/{chunk-r76wc1cn.js → chunk-zdkc4kj1.js} +1 -1
  70. package/dist/{chunk-4zs5r4n4.js → chunk-zt5wq0qj.js} +1 -1
  71. package/dist/web/assets/{ChatView-CxSysoN5.js → ChatView-YFotW0KS.js} +5 -5
  72. package/dist/web/assets/{CodeBlockHighlighter-a5UaDQQg.js → CodeBlockHighlighter-DYuOTwXS.js} +1 -1
  73. package/dist/web/assets/{FilePreview-CvGTS9CJ.js → FilePreview-CWOBOnzz.js} +1 -1
  74. package/dist/web/assets/{MarkdownRenderer-D50Cw9OM.js → MarkdownRenderer-YiYvkN2w.js} +3 -3
  75. package/dist/web/assets/{SettingsModal-DtREOjs-.js → SettingsModal-BT-oFKGN.js} +1 -1
  76. package/dist/web/assets/{TaskSwitcher-BlMvq8mt.js → TaskSwitcher-D5Gd6FN9.js} +1 -1
  77. package/dist/web/assets/{TerminalPanel-B8LccKzq.js → TerminalPanel-C1hLHq_K.js} +1 -1
  78. package/dist/web/assets/index-DuYx6fkN.js +11 -0
  79. package/dist/web/assets/{session-events-_Kir2HH_.js → session-events-K_9Lexp8.js} +5 -5
  80. package/dist/web/index.html +2 -2
  81. package/package.json +1 -1
  82. package/dist/chunk-2cgcht30.js +0 -1
  83. package/dist/chunk-3be2feze.js +0 -1
  84. package/dist/chunk-3jnhd81j.js +0 -3
  85. package/dist/chunk-4rn3r12e.js +0 -200
  86. package/dist/chunk-99tdg2ny.js +0 -1
  87. package/dist/chunk-avsv4e5g.js +0 -1
  88. package/dist/chunk-cyhmfcqq.js +0 -160
  89. package/dist/chunk-e0y9nb0a.js +0 -1
  90. package/dist/chunk-f4z3gkbs.js +0 -2
  91. package/dist/chunk-fvrmjhz5.js +0 -1
  92. package/dist/chunk-g3w00xb7.js +0 -5
  93. package/dist/chunk-h6w3ggx9.js +0 -1
  94. package/dist/chunk-hpbyvwhm.js +0 -1
  95. package/dist/chunk-hxp5qs1x.js +0 -1
  96. package/dist/chunk-k5fw5abr.js +0 -1
  97. package/dist/chunk-kesgbws4.js +0 -100
  98. package/dist/chunk-m088381q.js +0 -1
  99. package/dist/chunk-m2b2w90y.js +0 -1
  100. package/dist/chunk-qb076ca2.js +0 -6
  101. package/dist/chunk-r6bha0vm.js +0 -1
  102. package/dist/chunk-sntbbkbf.js +0 -22
  103. package/dist/chunk-wj4cjb73.js +0 -10
  104. package/dist/chunk-xk7svrdb.js +0 -4
  105. package/dist/chunk-z5zcwwfm.js +0 -1
  106. package/dist/web/assets/index-CQP8XT9a.js +0 -11
@@ -1,4 +1,4 @@
1
- import{ed as D}from"./chunk-vmq248m7.js";import{fd as G0}from"./chunk-ybvdac8k.js";import{Se as U0,he as H0}from"./chunk-hrmfhv8k.js";import{if as $0}from"./chunk-5s123nbs.js";import{nf as A}from"./chunk-s5666ta0.js";import{nanoid as J0}from"nanoid";import{devtools as v0,subscribeWithSelector as k0}from"zustand/middleware";import{createStore as f0}from"zustand/vanilla";var _0={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)"}},K0={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)"}},W0={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)"}},q0={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)"}},O0={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)"}},w0={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)"}},B0={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)"}},D0={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)"}},x0={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)"}},E0={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)"}},L0={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)"}},A0={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)"}},P0={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)"}},l=[{id:"ayu-dark",label:"Ayu Dark",theme:_0,tags:["dark","popular"]},{id:"dracula",label:"Dracula",theme:K0,tags:["dark","popular"]},{id:"monokai",label:"Monokai",theme:W0,tags:["dark","classic"]},{id:"nord",label:"Nord",theme:q0,tags:["dark","minimal"]},{id:"solarized-light",label:"Solarized Light",theme:O0,tags:["light"]},{id:"solarized-dark",label:"Solarized Dark",theme:w0,tags:["dark"]},{id:"tokyo-night",label:"Tokyo Night",theme:B0,tags:["dark","popular"]},{id:"github",label:"GitHub",theme:D0,tags:["light","minimal"]},{id:"gruvbox",label:"Gruvbox",theme:x0,tags:["dark","warm"]},{id:"one-dark",label:"One Dark",theme:E0,tags:["dark","popular"]},{id:"catppuccin",label:"Catppuccin",theme:L0,tags:["dark","pastel"]},{id:"rose-pine",label:"Rose Pine",theme:A0,tags:["dark","elegant"]},{id:"kanagawa",label:"Kanagawa",theme:P0,tags:["dark","japanese"]}];var i={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"}},v={name:"default",colors:i,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)"}},N0={...v,name:"dark",colors:{...i,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 n{currentTheme=v;themes=new Map;constructor(){this.themes.set("default",v),this.themes.set("dark",N0);for(let X of l)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 o=new n;var R0={initializationStatus:"idle",initializationError:null,activeModal:"none",sessionSelectorData:void 0,modelEditorTarget:null,tasks:[],awaitingSecondCtrlC:!1,thinkingModeEnabled:!1,reasoningEffort:"off",serviceTier:"auto",responseVerbosity:"auto",communicationStyle:"auto",subagentProgress:null,subagentProgresses:{}},k=(X)=>({...R0,actions:{setInitializationStatus:(Z)=>{X((Y)=>({app:{...Y.app,initializationStatus:Z}}))},setInitializationError:(Z)=>{X((Y)=>({app:{...Y.app,initializationError:Z}}))},setActiveModal:(Z)=>{X((Y)=>({app:{...Y.app,activeModal:Z}}))},showSessionSelector:(Z,Y="resume")=>{X((Q)=>({app:{...Q.app,activeModal:"sessionSelector",sessionSelectorData:{intent:Y,sessions:Z}}}))},showModelEditWizard:(Z)=>{X((Y)=>({app:{...Y.app,activeModal:"modelEditWizard",modelEditorTarget:Z}}))},closeModal:()=>{X((Z)=>({app:{...Z.app,activeModal:"none",sessionSelectorData:void 0,modelEditorTarget:null}}))},setTasks:(Z)=>{X((Y)=>({app:{...Y.app,tasks:Z}}))},updateTask:(Z)=>{X((Y)=>({app:{...Y.app,tasks:Y.app.tasks.map((Q)=>Q.id===Z.id?Z:Q)}}))},setAwaitingSecondCtrlC:(Z)=>{X((Y)=>({app:{...Y.app,awaitingSecondCtrlC:Z}}))},setReasoningEffort:(Z)=>{X((Y)=>({app:{...Y.app,reasoningEffort:Z,thinkingModeEnabled:Z!=="off"}}))},setServiceTier:(Z)=>{X((Y)=>({app:{...Y.app,serviceTier:Z}}))},setResponseVerbosity:(Z)=>{X((Y)=>({app:{...Y.app,responseVerbosity:Z}}))},setCommunicationStyle:(Z)=>{X((Y)=>({app:{...Y.app,communicationStyle:Z}}))},setThinkingModeEnabled:(Z)=>{X((Y)=>({app:{...Y.app,thinkingModeEnabled:Z,reasoningEffort:Z?"auto":"off"}}))},toggleThinkingMode:()=>{X((Z)=>({app:{...Z.app,thinkingModeEnabled:!Z.app.thinkingModeEnabled,reasoningEffort:Z.app.thinkingModeEnabled?"off":"auto"}}))},startSubagentProgress:(Z,Y,Q)=>{X(($)=>({app:{...$.app,subagentProgresses:{...$.app.subagentProgresses,[Z]:{id:Z,type:Y,description:Q,status:"running",startTime:Date.now()}},subagentProgress:{id:Z,type:Y,description:Q,status:"running",startTime:Date.now()}}}))},updateSubagentTool:(Z,Y)=>{X((Q)=>{let $=Q.app.subagentProgresses[Z];if(!$)return Q;let G={...$,currentTool:Y};return{app:{...Q.app,subagentProgresses:{...Q.app.subagentProgresses,[Z]:G},subagentProgress:Q.app.subagentProgress?.id===Z?G:Q.app.subagentProgress}}})},completeSubagentProgress:(Z,Y)=>{X((Q)=>{let $=Q.app.subagentProgresses[Z];if(!$)return Q;let G={...$,status:Y?"completed":"failed",currentTool:void 0};return{app:{...Q.app,subagentProgresses:{...Q.app.subagentProgresses,[Z]:G},subagentProgress:Q.app.subagentProgress?.id===Z?G:Q.app.subagentProgress}}}),setTimeout(()=>{X((Q)=>{let $=Q.app.subagentProgresses[Z];if(!$||$.status==="running")return Q;let G={...Q.app.subagentProgresses};delete G[Z];let V=Object.values(G);return{app:{...Q.app,subagentProgresses:G,subagentProgress:Q.app.subagentProgress?.id===Z?V[V.length-1]??null:Q.app.subagentProgress}}})},1500)}}});var y0={isProcessing:!1,abortController:null,pendingCommands:[],recoveredSteeringCount:0},f=(X,Z)=>({...y0,actions:{setProcessing:(Y)=>{X((Q)=>({command:{...Q.command,isProcessing:Y},...!Y?{session:{...Q.session,providerRetry:null}}:{}}))},createAbortController:()=>{let Y=Z().command.abortController;if(Y&&!Y.signal.aborted)Y.abort("interrupted-by-new-command");let Q=new AbortController;return X(($)=>({command:{...$.command,abortController:Q}})),Q},getAbortController:()=>{return Z().command.abortController},clearAbortController:(Y)=>{let Q=Z().command.abortController;if(Y!==void 0&&Q!==Y)return;X(($)=>({command:{...$.command,abortController:null}}))},abort:(Y)=>{let{abortController:Q}=Z().command;if(Q&&!Q.signal.aborted)Q.abort(Y??"user-cancel");X(($)=>({command:{...$.command,isProcessing:!1,pendingCommands:[]},session:{...$.session,providerRetry:null}}))},enqueueCommand:(Y)=>{X((Q)=>({command:{...Q.command,pendingCommands:[...Q.command.pendingCommands,Y]}}))},dequeueCommand:()=>{let{pendingCommands:Y}=Z().command;if(Y.length===0)return;let[Q,...$]=Y;return X((G)=>({command:{...G.command,pendingCommands:$}})),Q},clearQueue:()=>{X((Y)=>({command:{...Y.command,pendingCommands:[]}}))},setRecoveredSteeringCount:(Y)=>{X((Q)=>({command:{...Q.command,recoveredSteeringCount:Math.max(0,Y)}}))}}});var T0={config:null},u=(X,Z)=>({...T0,actions:{setConfig:(Y)=>{A().configureModelProviders(Y.modelProviders,Y.models),X((Q)=>({config:{...Q.config,config:Y}}))},updateConfig:(Y)=>{let Q=Z().config.config;if(!Q)throw Error(`[ConfigSlice] Config not initialized. Cannot update: ${JSON.stringify(Y)}`);let $={...Q,...Y};if(Y.modelProviders||Y.models)A().configureModelProviders($.modelProviders,$.models);X((G)=>({config:{...G.config,config:$}}))}}});var S0={currentFocus:"main-input",previousFocus:null},p=(X)=>({...S0,actions:{setFocus:(Z)=>{X((Y)=>({focus:{...Y.focus,currentFocus:Z,previousFocus:Y.focus.currentFocus}}))},restorePreviousFocus:()=>{X((Z)=>({focus:{...Z.focus,currentFocus:Z.focus.previousFocus||"main-input",previousFocus:null}}))}}});function m(X,Z,Y,Q){let $=X.messages.find((V)=>V.id===Z);if($)return $;let G={id:Z,role:Y,content:"",timestamp:Q};return X.messages.push(G),G}function a(X,Z){let Y=Date.parse(Z.timestamp)||Date.now();switch(Z.type){case"message_created":return m(X,Z.data.messageId,Z.data.role,Y),X;case"part_created":case"part_updated":{let{messageId:Q,partType:$,payload:G,partId:V}=Z.data,J=X.messages.find((F)=>F.id===Q)??m(X,Q,"assistant",Y);if($==="text"){let F=G.text??"";X.streamingText.delete(V),J.content=F}else if($==="image")J.content=J.content?`${J.content}
1
+ import{gd as D}from"./chunk-6pa6c2n0.js";import{hd as G0}from"./chunk-yz2bsntj.js";import{We as U0,le as H0}from"./chunk-h37yw6g3.js";import{mf as $0}from"./chunk-prgh321y.js";import{rf as A}from"./chunk-jpwfq49n.js";import{nanoid as J0}from"nanoid";import{devtools as v0,subscribeWithSelector as k0}from"zustand/middleware";import{createStore as f0}from"zustand/vanilla";var _0={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)"}},K0={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)"}},W0={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)"}},q0={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)"}},O0={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)"}},w0={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)"}},B0={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)"}},D0={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)"}},x0={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)"}},E0={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)"}},L0={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)"}},A0={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)"}},P0={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)"}},l=[{id:"ayu-dark",label:"Ayu Dark",theme:_0,tags:["dark","popular"]},{id:"dracula",label:"Dracula",theme:K0,tags:["dark","popular"]},{id:"monokai",label:"Monokai",theme:W0,tags:["dark","classic"]},{id:"nord",label:"Nord",theme:q0,tags:["dark","minimal"]},{id:"solarized-light",label:"Solarized Light",theme:O0,tags:["light"]},{id:"solarized-dark",label:"Solarized Dark",theme:w0,tags:["dark"]},{id:"tokyo-night",label:"Tokyo Night",theme:B0,tags:["dark","popular"]},{id:"github",label:"GitHub",theme:D0,tags:["light","minimal"]},{id:"gruvbox",label:"Gruvbox",theme:x0,tags:["dark","warm"]},{id:"one-dark",label:"One Dark",theme:E0,tags:["dark","popular"]},{id:"catppuccin",label:"Catppuccin",theme:L0,tags:["dark","pastel"]},{id:"rose-pine",label:"Rose Pine",theme:A0,tags:["dark","elegant"]},{id:"kanagawa",label:"Kanagawa",theme:P0,tags:["dark","japanese"]}];var i={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"}},v={name:"default",colors:i,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)"}},N0={...v,name:"dark",colors:{...i,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 n{currentTheme=v;themes=new Map;constructor(){this.themes.set("default",v),this.themes.set("dark",N0);for(let X of l)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 o=new n;var R0={initializationStatus:"idle",initializationError:null,activeModal:"none",sessionSelectorData:void 0,modelEditorTarget:null,tasks:[],awaitingSecondCtrlC:!1,thinkingModeEnabled:!1,reasoningEffort:"off",serviceTier:"auto",responseVerbosity:"auto",communicationStyle:"auto",subagentProgress:null,subagentProgresses:{}},k=(X)=>({...R0,actions:{setInitializationStatus:(Z)=>{X((Y)=>({app:{...Y.app,initializationStatus:Z}}))},setInitializationError:(Z)=>{X((Y)=>({app:{...Y.app,initializationError:Z}}))},setActiveModal:(Z)=>{X((Y)=>({app:{...Y.app,activeModal:Z}}))},showSessionSelector:(Z,Y="resume")=>{X((Q)=>({app:{...Q.app,activeModal:"sessionSelector",sessionSelectorData:{intent:Y,sessions:Z}}}))},showModelEditWizard:(Z)=>{X((Y)=>({app:{...Y.app,activeModal:"modelEditWizard",modelEditorTarget:Z}}))},closeModal:()=>{X((Z)=>({app:{...Z.app,activeModal:"none",sessionSelectorData:void 0,modelEditorTarget:null}}))},setTasks:(Z)=>{X((Y)=>({app:{...Y.app,tasks:Z}}))},updateTask:(Z)=>{X((Y)=>({app:{...Y.app,tasks:Y.app.tasks.map((Q)=>Q.id===Z.id?Z:Q)}}))},setAwaitingSecondCtrlC:(Z)=>{X((Y)=>({app:{...Y.app,awaitingSecondCtrlC:Z}}))},setReasoningEffort:(Z)=>{X((Y)=>({app:{...Y.app,reasoningEffort:Z,thinkingModeEnabled:Z!=="off"}}))},setServiceTier:(Z)=>{X((Y)=>({app:{...Y.app,serviceTier:Z}}))},setResponseVerbosity:(Z)=>{X((Y)=>({app:{...Y.app,responseVerbosity:Z}}))},setCommunicationStyle:(Z)=>{X((Y)=>({app:{...Y.app,communicationStyle:Z}}))},setThinkingModeEnabled:(Z)=>{X((Y)=>({app:{...Y.app,thinkingModeEnabled:Z,reasoningEffort:Z?"auto":"off"}}))},toggleThinkingMode:()=>{X((Z)=>({app:{...Z.app,thinkingModeEnabled:!Z.app.thinkingModeEnabled,reasoningEffort:Z.app.thinkingModeEnabled?"off":"auto"}}))},startSubagentProgress:(Z,Y,Q)=>{X(($)=>({app:{...$.app,subagentProgresses:{...$.app.subagentProgresses,[Z]:{id:Z,type:Y,description:Q,status:"running",startTime:Date.now()}},subagentProgress:{id:Z,type:Y,description:Q,status:"running",startTime:Date.now()}}}))},updateSubagentTool:(Z,Y)=>{X((Q)=>{let $=Q.app.subagentProgresses[Z];if(!$)return Q;let G={...$,currentTool:Y};return{app:{...Q.app,subagentProgresses:{...Q.app.subagentProgresses,[Z]:G},subagentProgress:Q.app.subagentProgress?.id===Z?G:Q.app.subagentProgress}}})},completeSubagentProgress:(Z,Y)=>{X((Q)=>{let $=Q.app.subagentProgresses[Z];if(!$)return Q;let G={...$,status:Y?"completed":"failed",currentTool:void 0};return{app:{...Q.app,subagentProgresses:{...Q.app.subagentProgresses,[Z]:G},subagentProgress:Q.app.subagentProgress?.id===Z?G:Q.app.subagentProgress}}}),setTimeout(()=>{X((Q)=>{let $=Q.app.subagentProgresses[Z];if(!$||$.status==="running")return Q;let G={...Q.app.subagentProgresses};delete G[Z];let V=Object.values(G);return{app:{...Q.app,subagentProgresses:G,subagentProgress:Q.app.subagentProgress?.id===Z?V[V.length-1]??null:Q.app.subagentProgress}}})},1500)}}});var y0={isProcessing:!1,abortController:null,pendingCommands:[],recoveredSteeringCount:0},f=(X,Z)=>({...y0,actions:{setProcessing:(Y)=>{X((Q)=>({command:{...Q.command,isProcessing:Y},...!Y?{session:{...Q.session,providerRetry:null,providerStall:null}}:{}}))},createAbortController:()=>{let Y=Z().command.abortController;if(Y&&!Y.signal.aborted)Y.abort("interrupted-by-new-command");let Q=new AbortController;return X(($)=>({command:{...$.command,abortController:Q}})),Q},getAbortController:()=>{return Z().command.abortController},clearAbortController:(Y)=>{let Q=Z().command.abortController;if(Y!==void 0&&Q!==Y)return;X(($)=>({command:{...$.command,abortController:null}}))},abort:(Y)=>{let{abortController:Q}=Z().command;if(Q&&!Q.signal.aborted)Q.abort(Y??"user-cancel");X(($)=>({command:{...$.command,isProcessing:!1,pendingCommands:[]},session:{...$.session,providerRetry:null,providerStall:null}}))},enqueueCommand:(Y)=>{X((Q)=>({command:{...Q.command,pendingCommands:[...Q.command.pendingCommands,Y]}}))},dequeueCommand:()=>{let{pendingCommands:Y}=Z().command;if(Y.length===0)return;let[Q,...$]=Y;return X((G)=>({command:{...G.command,pendingCommands:$}})),Q},clearQueue:()=>{X((Y)=>({command:{...Y.command,pendingCommands:[]}}))},setRecoveredSteeringCount:(Y)=>{X((Q)=>({command:{...Q.command,recoveredSteeringCount:Math.max(0,Y)}}))}}});var T0={config:null},u=(X,Z)=>({...T0,actions:{setConfig:(Y)=>{A().configureModelProviders(Y.modelProviders,Y.models),X((Q)=>({config:{...Q.config,config:Y}}))},updateConfig:(Y)=>{let Q=Z().config.config;if(!Q)throw Error(`[ConfigSlice] Config not initialized. Cannot update: ${JSON.stringify(Y)}`);let $={...Q,...Y};if(Y.modelProviders||Y.models)A().configureModelProviders($.modelProviders,$.models);X((G)=>({config:{...G.config,config:$}}))}}});var S0={currentFocus:"main-input",previousFocus:null},p=(X)=>({...S0,actions:{setFocus:(Z)=>{X((Y)=>({focus:{...Y.focus,currentFocus:Z,previousFocus:Y.focus.currentFocus}}))},restorePreviousFocus:()=>{X((Z)=>({focus:{...Z.focus,currentFocus:Z.focus.previousFocus||"main-input",previousFocus:null}}))}}});function m(X,Z,Y,Q){let $=X.messages.find((V)=>V.id===Z);if($)return $;let G={id:Z,role:Y,content:"",timestamp:Q};return X.messages.push(G),G}function a(X,Z){let Y=Date.parse(Z.timestamp)||Date.now();switch(Z.type){case"message_created":return m(X,Z.data.messageId,Z.data.role,Y),X;case"part_created":case"part_updated":{let{messageId:Q,partType:$,payload:G,partId:V}=Z.data,J=X.messages.find((F)=>F.id===Q)??m(X,Q,"assistant",Y);if($==="text"){let F=G.text??"";X.streamingText.delete(V),J.content=F}else if($==="image")J.content=J.content?`${J.content}
2
2
  [Image]`:"[Image]";return X}default:return X}}function s(X,Z){if(Z.channel!=="content")return X;let Y=X.messages.find((G)=>G.id===Z.messageId)??m(X,Z.messageId,"assistant",Date.now()),$=(X.streamingText.get(Z.partId)?.text??"")+Z.delta;return X.streamingText.set(Z.partId,{messageId:Z.messageId,text:$}),Y.content=$,X}function t(X,Z,Y,Q=0,$=0,G){let V=A(),J=G?V.models.getModel(G,X):V.models.getModels().find((K)=>K.id===X);if(!J)return 0;let F=J.cost,z=Z/1e6*F.input+Y/1e6*F.output+Q/1e6*F.cacheRead+$/1e6*F.cacheWrite;return Math.round(z*1e6)/1e6}var W={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 t0(X){let Z=[],Y=X.split(/\r?\n/),Q=!1,$=[],G=null,V=0,J=!1,F=[],z=[],K=!1,w=[],E=!1,j=[],H=0,U=!0;for(let O=0;O<Y.length;O++){let q=Y[O];if(K){if(q.match(W.diffEnd)){try{let B=JSON.parse(w.join(`
3
3
  `));Z.push({type:"diff",content:"",diffData:{patch:B.patch,startLine:B.startLine,matchLine:B.matchLine}})}catch(B){Z.push({type:"text",content:w.join(`
4
4
  `)})}K=!1,w=[],U=!1;continue}w.push(q);continue}if(q.match(W.diffStart)){K=!0,w=[],U=!1;continue}if(Q){let B=q.match(W.codeBlock),L=q.trim()==="```";if(B&&B[1])V++,$.push(q);else if(L)if(V>0)V--,$.push(q);else{let j0=$.join(`
@@ -13,8 +13,8 @@ import{ed as D}from"./chunk-vmq248m7.js";import{fd as G0}from"./chunk-ybvdac8k.j
13
13
  `)})}Q.inDiff=!1,Q.diffContent=[],Q.lastLineEmpty=!1;return}Q.diffContent.push(X);return}if(X.match(W.diffStart)){Q.inDiff=!0,Q.diffContent=[],Q.lastLineEmpty=!1;return}if(Q.inCodeBlock){let H=X.match(W.codeBlock),U=X.trim()==="```";if(H&&H[1])Q.codeBlockDepth++,Q.codeBlockContent.push(X);else if(U)if(Q.codeBlockDepth>0)Q.codeBlockDepth--,Q.codeBlockContent.push(X);else X0(Q,$);else Q.codeBlockContent.push(X);return}let G=X.match(W.codeBlock);if(G){Q.inCodeBlock=!0,Q.codeBlockLang=G[1]||null,Q.codeBlockDepth=0,Q.lastLineEmpty=!1;return}let V=X.match(W.table),J=X.match(W.tableSeparator);if(V&&!Q.inTable){Q.pendingTableHeader=X;return}if(Q.inTable&&J)return;if(Q.inTable&&V){let H=V[1].split("|").map((U)=>U.trim()).filter((U)=>U.length>0);while(H.length<Q.tableHeaders.length)H.push("");if(H.length>Q.tableHeaders.length)H.length=Q.tableHeaders.length;Q.tableRows.push(H);return}if(Q.inTable&&!V){if(Q0(Q,$),Y){c(X,Z,!1);return}}let F=X.match(W.blockquote);if(F){let H=F[1].length,U=F[2]||"";if(Q.inBlockquote&&H===Q.blockquoteLevel)Q.blockquoteLines.push(U);else{if(Q.inBlockquote)g(Q,$);Q.inBlockquote=!0,Q.blockquoteLevel=H,Q.blockquoteLines=[U]}Q.lastLineEmpty=!1;return}if(Q.inBlockquote)g(Q,$);let z=X.match(W.heading);if(z){$.push({type:"heading",content:z[2],level:z[1].length}),Q.lastLineEmpty=!1;return}let K=X.match(W.ulItem);if(K){$.push({type:"list",content:K[3],listType:"ul",marker:K[2],indentation:K[1].length}),Q.lastLineEmpty=!1;return}let w=X.match(W.olItem);if(w){$.push({type:"list",content:w[3],listType:"ol",marker:w[2],indentation:w[1].length}),Q.lastLineEmpty=!1;return}if(X.match(W.hr)){$.push({type:"hr",content:""}),Q.lastLineEmpty=!1;return}if(X.trim().length===0){if(!Q.lastLineEmpty)$.push({type:"empty",content:""}),Q.lastLineEmpty=!0;return}let j=X.match(W.commandMessage);if(j){$.push({type:"command-message",content:j[1]}),Q.lastLineEmpty=!1;return}$.push({type:"text",content:X}),Q.lastLineEmpty=!1}function X1(X,Z){if(!X||!Z)return;let Y=C0(X);if(Y.finalized)return;let Q=Y.pendingLine+Z,$=Q.split(`
14
14
  `),G=Q.endsWith(`
15
15
  `),V=G?$:$.slice(0,-1);Y.pendingLine=G?"":$[$.length-1]??"";for(let J of V)c(e(J),Y)}function Y1(X){let Z=P.get(X);if(!Z||Z.finalized)return;if(Z.pendingLine)c(e(Z.pendingLine),Z),Z.pendingLine="";if(Z.state.pendingTableHeader!==null)Z.blocks.push({type:"text",content:Z.state.pendingTableHeader}),Z.state.pendingTableHeader=null;if(Z.state.inCodeBlock)X0(Z.state,Z.blocks);if(Z.state.inTable)Q0(Z.state,Z.blocks);if(Z.state.inBlockquote)g(Z.state,Z.blocks);if(Z.state.inDiff)Z.blocks.push({type:"text",content:Z.state.diffContent.join(`
16
- `)}),Z.state.inDiff=!1,Z.state.diffContent=[];while(Z.blocks.length>0&&Z.blocks[Z.blocks.length-1].type==="empty")Z.blocks.pop();Z.finalized=!0}function Z1(X){let Z=P.get(X);if(!Z||!Z.finalized)return null;return Z.blocks}function $1(X){let Z=P.get(X);if(!Z)return null;return Z.blocks}function b0(X){let Z=P.get(X);if(!Z)return null;let Y=[],Q=Z.state;if(Q.inDiff)Y.push("<<<DIFF>>>"),Y.push(...Q.diffContent);else if(Q.inCodeBlock){let $=Q.codeBlockLang?`\`\`\`${Q.codeBlockLang}`:"```";Y.push($),Y.push(...Q.codeBlockContent)}else if(Q.inTable){if(Q.tableHeaders.length>0){Y.push(`| ${Q.tableHeaders.join(" | ")} |`),Y.push(`| ${Q.tableHeaders.map(()=>"---").join(" | ")} |`);for(let $ of Q.tableRows)Y.push(`| ${$.join(" | ")} |`)}}else if(Q.inBlockquote){let $=">".repeat(Q.blockquoteLevel)+" ";for(let G of Q.blockquoteLines)Y.push($+G)}else if(Q.pendingTableHeader)Y.push(Q.pendingTableHeader);if(Z.pendingLine)Y.push(Z.pendingLine);return Y.length>0?Y:null}function G1(X){let Z=P.get(X);if(!Z)return null;let Y="text";if(Z.state.inDiff)Y="diff";else if(Z.state.inCodeBlock)Y="code";else if(Z.state.inTable||Z.state.pendingTableHeader)Y="table";let Q=b0(X);if(!Q||Q.length===0)return null;return{lines:Q,mode:Y}}function V1(X){P.delete(X)}function b(){P.clear()}var Y0=2000,T=[];function h0(){let X=T;return T=[],X}var y={messages:[],streamingText:new Map};function M0(){y={messages:[],streamingText:new Map}}var V0={inputTokens:0,outputTokens:0,totalTokens:0,maxContextTokens:0,totalInputTokens:0,totalOutputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,turnCount:0,estimatedCostUsd:0},Z0={sessionId:G0("tui"),workspaceRoot:$0(),messages:[],restoredContextMessages:null,restoredVisibleMessageCount:0,isCompacting:!1,currentCommand:null,error:null,isActive:!0,tokenUsage:{...V0},currentThinkingContent:null,thinkingExpanded:!1,clearCount:0,historyExpanded:!1,expandedMessageCount:100,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,finalizingStreamingMessageId:null,providerRetry:null},r=(X,Z)=>({...Z0,actions:{addMessage:(Y)=>{X((Q)=>({session:{...Q.session,messages:[...Q.session.messages,Y],error:null}}))},addUserMessage:(Y)=>{let Q={id:`user-${Date.now()}-${Math.random()}`,role:"user",content:Y,timestamp:Date.now()};Z().session.actions.addMessage(Q)},addAssistantMessage:(Y,Q)=>{let $={id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:Y,timestamp:Date.now(),thinkingContent:Q};Z().session.actions.addMessage($)},replaceLastAssistantMessage:(Y)=>{X((Q)=>{let $=Q.session.messages.findLastIndex((G)=>G.role==="assistant");if($<0)return{session:{...Q.session,messages:[...Q.session.messages,{id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:Y,timestamp:Date.now()}]}};return{session:{...Q.session,messages:Q.session.messages.map((G,V)=>V===$?{...G,content:Y}:G)}}})},addAssistantMessageAndClearThinking:(Y)=>{let Q=Z().session.currentThinkingContent,$={id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:Y,timestamp:Date.now(),thinkingContent:Q||void 0};X((G)=>({session:{...G.session,messages:[...G.session.messages,$],currentThinkingContent:null,error:null}}))},addToolMessage:(Y,Q)=>{let $={id:`tool-${Date.now()}-${Math.random()}`,role:"tool",content:Y,timestamp:Date.now(),metadata:Q};Z().session.actions.addMessage($)},setCompacting:(Y)=>{X((Q)=>({session:{...Q.session,isCompacting:Y}}))},setCommand:(Y)=>{X((Q)=>({session:{...Q.session,currentCommand:Y}}))},setError:(Y)=>{X((Q)=>({session:{...Q.session,error:Y}}))},clearMessages:()=>{b(),X((Y)=>({session:{...Y.session,messages:[],restoredContextMessages:null,restoredVisibleMessageCount:0,error:null,clearCount:Y.session.clearCount+1}}))},setCompactedContext:(Y)=>{X((Q)=>({session:{...Q.session,restoredContextMessages:[...Y],restoredVisibleMessageCount:Q.session.messages.length}}))},resetSession:()=>{b(),X((Y)=>({session:{...Y.session,...Z0,sessionId:Y.session.sessionId,isActive:!0}}))},restoreSession:(Y,Q,$,G)=>{b(),X((V)=>({session:{...V.session,sessionId:Y,workspaceRoot:G??V.session.workspaceRoot,messages:Q,restoredContextMessages:$??null,restoredVisibleMessageCount:$?Q.length:0,error:null,isActive:!0}}))},updateTokenUsage:(Y)=>{X((Q)=>{let $=Q.session.tokenUsage,{costUsd:G,...V}=Y,J=Math.max(0,Y.inputTokens??0),F=Math.max(0,Y.outputTokens??0),z=Math.max(0,Y.cacheReadTokens??0),K=Math.max(0,Y.cacheWriteTokens??0),w=$.totalInputTokens+J,E=$.totalOutputTokens+F,j=$.cacheReadTokens+z,H=$.cacheWriteTokens+K,U=Q.config?.config,O=U?.models?.find((N)=>N.id===U.currentModelId),q=O?.model??"",S=G??t(q,Math.max(0,J-z-K),F,z,K,O?.provider);return{session:{...Q.session,tokenUsage:{...$,...V,totalInputTokens:w,totalOutputTokens:E,cacheReadTokens:j,cacheWriteTokens:H,estimatedCostUsd:$.estimatedCostUsd+Math.max(0,S)}}}})},resetContextUsage:()=>{X((Y)=>({session:{...Y.session,tokenUsage:{...Y.session.tokenUsage,inputTokens:0,outputTokens:0,totalTokens:0}}}))},resetTokenUsage:()=>{X((Y)=>({session:{...Y.session,tokenUsage:{...V0}}}))},setCurrentThinkingContent:(Y)=>{if(Z().session.currentThinkingContent===Y)return;X((Q)=>({session:{...Q.session,currentThinkingContent:Y}}))},appendThinkingContent:(Y)=>{X((Q)=>({session:{...Q.session,currentThinkingContent:(Q.session.currentThinkingContent||"")+Y}}))},setThinkingExpanded:(Y)=>{X((Q)=>({session:{...Q.session,thinkingExpanded:Y}}))},toggleThinkingExpanded:()=>{X((Y)=>({session:{...Y.session,thinkingExpanded:!Y.session.thinkingExpanded}}))},setHistoryExpanded:(Y)=>{X((Q)=>({session:{...Q.session,historyExpanded:Y}}))},toggleHistoryExpanded:()=>{X((Y)=>({session:{...Y.session,historyExpanded:!Y.session.historyExpanded}}))},setExpandedMessageCount:(Y)=>{X((Q)=>({session:{...Q.session,expandedMessageCount:Y}}))},incrementClearCount:()=>{X((Y)=>({session:{...Y.session,clearCount:Y.session.clearCount+1}}))},startStreamingAssistantMessage:()=>{let Y=`assistant-${Date.now()}-${Math.random()}`,Q={id:Y,role:"assistant",content:"",timestamp:Date.now()};return T=[],X(($)=>({session:{...$.session,messages:[...$.session.messages,Q],currentStreamingMessageId:Y,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,error:null}})),Y},appendAssistantContent:(Y)=>{let Q=Z().session.currentStreamingMessageId,$=Q??`assistant-${Date.now()}-${Math.random()}`;return T.push(Y),X((G)=>{let V=(O)=>O.endsWith("\r")?O.slice(0,-1):O,J=Q?G.session.currentStreamingLines:[],F=Q?G.session.currentStreamingTail:"",z=Q?G.session.currentStreamingLineCount:0,K=Q?G.session.currentStreamingVersion:0,E=(F+Y).split(`
17
- `),j=E.slice(0,-1).map(V),H=V(E[E.length-1]??""),U=J;if(j.length>0){if(U=[...J,...j],U.length>Y0){let O=U.length-Y0;U=U.slice(O)}}return{session:{...G.session,currentStreamingMessageId:$,currentStreamingLines:U,currentStreamingTail:H,currentStreamingLineCount:z+j.length,currentStreamingVersion:K+1,error:null}}}),$},finalizeStreamingMessage:(Y,Q)=>{let $=h0();X((G)=>{let V=G.session.currentStreamingMessageId,F=$.join("")+(Y||""),z=(G.session.currentThinkingContent||"")+(Q||"");if(F.length>0){let K={id:V||`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:F,timestamp:Date.now(),thinkingContent:z||void 0};return{session:{...G.session,messages:[...G.session.messages,K],currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,currentThinkingContent:null,finalizingStreamingMessageId:K.id}}}return{session:{...G.session,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,currentThinkingContent:null,finalizingStreamingMessageId:null}}})},clearFinalizingStreamingMessageId:()=>{X((Y)=>({session:{...Y.session,finalizingStreamingMessageId:null}}))},discardStreamingMessage:()=>{T=[],X((Y)=>({session:{...Y.session,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,finalizingStreamingMessageId:null}}))},setProviderRetry:(Y)=>{X((Q)=>({session:{...Q.session,providerRetry:Y}}))},applyCommittedEvent:(Y)=>{a(y,Y),X((Q)=>({session:{...Q.session,messages:[...y.messages],error:null}}))},applyStreamingDelta:(Y)=>{s(y,Y),X((Q)=>({session:{...Q.session,messages:[...y.messages]}}))},resetConversationProjection:()=>{M0()}}});var u0=f0()(v0(k0((...X)=>({session:r(...X),app:k(...X),config:u(...X),focus:p(...X),command:f(...X)})),{name:"BladeStore",enabled:!0})),_=()=>u0.getState(),y1=()=>_().session.actions,T1=()=>_().app.actions,S1=()=>_().session.messages,x=()=>_().config.config,R=null;async function I1(){if(x()!==null)return;if(R)return R;return R=(async()=>{try{let Y=await U0.getInstance().initialize();_().config.actions.setConfig(Y)}catch(Z){throw R=null,Error(`[FAIL] Store 未初始化且无法自动初始化
16
+ `)}),Z.state.inDiff=!1,Z.state.diffContent=[];while(Z.blocks.length>0&&Z.blocks[Z.blocks.length-1].type==="empty")Z.blocks.pop();Z.finalized=!0}function Z1(X){let Z=P.get(X);if(!Z||!Z.finalized)return null;return Z.blocks}function $1(X){let Z=P.get(X);if(!Z)return null;return Z.blocks}function b0(X){let Z=P.get(X);if(!Z)return null;let Y=[],Q=Z.state;if(Q.inDiff)Y.push("<<<DIFF>>>"),Y.push(...Q.diffContent);else if(Q.inCodeBlock){let $=Q.codeBlockLang?`\`\`\`${Q.codeBlockLang}`:"```";Y.push($),Y.push(...Q.codeBlockContent)}else if(Q.inTable){if(Q.tableHeaders.length>0){Y.push(`| ${Q.tableHeaders.join(" | ")} |`),Y.push(`| ${Q.tableHeaders.map(()=>"---").join(" | ")} |`);for(let $ of Q.tableRows)Y.push(`| ${$.join(" | ")} |`)}}else if(Q.inBlockquote){let $=">".repeat(Q.blockquoteLevel)+" ";for(let G of Q.blockquoteLines)Y.push($+G)}else if(Q.pendingTableHeader)Y.push(Q.pendingTableHeader);if(Z.pendingLine)Y.push(Z.pendingLine);return Y.length>0?Y:null}function G1(X){let Z=P.get(X);if(!Z)return null;let Y="text";if(Z.state.inDiff)Y="diff";else if(Z.state.inCodeBlock)Y="code";else if(Z.state.inTable||Z.state.pendingTableHeader)Y="table";let Q=b0(X);if(!Q||Q.length===0)return null;return{lines:Q,mode:Y}}function V1(X){P.delete(X)}function b(){P.clear()}var Y0=2000,T=[];function h0(){let X=T;return T=[],X}var y={messages:[],streamingText:new Map};function M0(){y={messages:[],streamingText:new Map}}var V0={inputTokens:0,outputTokens:0,totalTokens:0,maxContextTokens:0,totalInputTokens:0,totalOutputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,turnCount:0,estimatedCostUsd:0},Z0={sessionId:G0("tui"),workspaceRoot:$0(),messages:[],restoredContextMessages:null,restoredVisibleMessageCount:0,isCompacting:!1,currentCommand:null,error:null,isActive:!0,tokenUsage:{...V0},currentThinkingContent:null,thinkingExpanded:!1,clearCount:0,historyExpanded:!1,expandedMessageCount:100,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,finalizingStreamingMessageId:null,providerRetry:null,providerStall:null},r=(X,Z)=>({...Z0,actions:{addMessage:(Y)=>{X((Q)=>({session:{...Q.session,messages:[...Q.session.messages,Y],error:null}}))},addUserMessage:(Y)=>{let Q={id:`user-${Date.now()}-${Math.random()}`,role:"user",content:Y,timestamp:Date.now()};Z().session.actions.addMessage(Q)},addAssistantMessage:(Y,Q)=>{let $={id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:Y,timestamp:Date.now(),thinkingContent:Q};Z().session.actions.addMessage($)},replaceLastAssistantMessage:(Y)=>{X((Q)=>{let $=Q.session.messages.findLastIndex((G)=>G.role==="assistant");if($<0)return{session:{...Q.session,messages:[...Q.session.messages,{id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:Y,timestamp:Date.now()}]}};return{session:{...Q.session,messages:Q.session.messages.map((G,V)=>V===$?{...G,content:Y}:G)}}})},addAssistantMessageAndClearThinking:(Y)=>{let Q=Z().session.currentThinkingContent,$={id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:Y,timestamp:Date.now(),thinkingContent:Q||void 0};X((G)=>({session:{...G.session,messages:[...G.session.messages,$],currentThinkingContent:null,error:null}}))},addToolMessage:(Y,Q)=>{let $={id:`tool-${Date.now()}-${Math.random()}`,role:"tool",content:Y,timestamp:Date.now(),metadata:Q};Z().session.actions.addMessage($)},setCompacting:(Y)=>{X((Q)=>({session:{...Q.session,isCompacting:Y}}))},setCommand:(Y)=>{X((Q)=>({session:{...Q.session,currentCommand:Y}}))},setError:(Y)=>{X((Q)=>({session:{...Q.session,error:Y}}))},clearMessages:()=>{b(),X((Y)=>({session:{...Y.session,messages:[],restoredContextMessages:null,restoredVisibleMessageCount:0,error:null,clearCount:Y.session.clearCount+1}}))},setCompactedContext:(Y)=>{X((Q)=>({session:{...Q.session,restoredContextMessages:[...Y],restoredVisibleMessageCount:Q.session.messages.length}}))},resetSession:()=>{b(),X((Y)=>({session:{...Y.session,...Z0,sessionId:Y.session.sessionId,isActive:!0}}))},restoreSession:(Y,Q,$,G)=>{b(),X((V)=>({session:{...V.session,sessionId:Y,workspaceRoot:G??V.session.workspaceRoot,messages:Q,restoredContextMessages:$??null,restoredVisibleMessageCount:$?Q.length:0,error:null,isActive:!0}}))},updateTokenUsage:(Y)=>{X((Q)=>{let $=Q.session.tokenUsage,{costUsd:G,...V}=Y,J=Math.max(0,Y.inputTokens??0),F=Math.max(0,Y.outputTokens??0),z=Math.max(0,Y.cacheReadTokens??0),K=Math.max(0,Y.cacheWriteTokens??0),w=$.totalInputTokens+J,E=$.totalOutputTokens+F,j=$.cacheReadTokens+z,H=$.cacheWriteTokens+K,U=Q.config?.config,O=U?.models?.find((N)=>N.id===U.currentModelId),q=O?.model??"",S=G??t(q,Math.max(0,J-z-K),F,z,K,O?.provider);return{session:{...Q.session,tokenUsage:{...$,...V,totalInputTokens:w,totalOutputTokens:E,cacheReadTokens:j,cacheWriteTokens:H,estimatedCostUsd:$.estimatedCostUsd+Math.max(0,S)}}}})},resetContextUsage:()=>{X((Y)=>({session:{...Y.session,tokenUsage:{...Y.session.tokenUsage,inputTokens:0,outputTokens:0,totalTokens:0}}}))},resetTokenUsage:()=>{X((Y)=>({session:{...Y.session,tokenUsage:{...V0}}}))},setCurrentThinkingContent:(Y)=>{if(Z().session.currentThinkingContent===Y)return;X((Q)=>({session:{...Q.session,currentThinkingContent:Y}}))},appendThinkingContent:(Y)=>{X((Q)=>({session:{...Q.session,currentThinkingContent:(Q.session.currentThinkingContent||"")+Y}}))},setThinkingExpanded:(Y)=>{X((Q)=>({session:{...Q.session,thinkingExpanded:Y}}))},toggleThinkingExpanded:()=>{X((Y)=>({session:{...Y.session,thinkingExpanded:!Y.session.thinkingExpanded}}))},setHistoryExpanded:(Y)=>{X((Q)=>({session:{...Q.session,historyExpanded:Y}}))},toggleHistoryExpanded:()=>{X((Y)=>({session:{...Y.session,historyExpanded:!Y.session.historyExpanded}}))},setExpandedMessageCount:(Y)=>{X((Q)=>({session:{...Q.session,expandedMessageCount:Y}}))},incrementClearCount:()=>{X((Y)=>({session:{...Y.session,clearCount:Y.session.clearCount+1}}))},startStreamingAssistantMessage:()=>{let Y=`assistant-${Date.now()}-${Math.random()}`,Q={id:Y,role:"assistant",content:"",timestamp:Date.now()};return T=[],X(($)=>({session:{...$.session,messages:[...$.session.messages,Q],currentStreamingMessageId:Y,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,error:null}})),Y},appendAssistantContent:(Y)=>{let Q=Z().session.currentStreamingMessageId,$=Q??`assistant-${Date.now()}-${Math.random()}`;return T.push(Y),X((G)=>{let V=(O)=>O.endsWith("\r")?O.slice(0,-1):O,J=Q?G.session.currentStreamingLines:[],F=Q?G.session.currentStreamingTail:"",z=Q?G.session.currentStreamingLineCount:0,K=Q?G.session.currentStreamingVersion:0,E=(F+Y).split(`
17
+ `),j=E.slice(0,-1).map(V),H=V(E[E.length-1]??""),U=J;if(j.length>0){if(U=[...J,...j],U.length>Y0){let O=U.length-Y0;U=U.slice(O)}}return{session:{...G.session,currentStreamingMessageId:$,currentStreamingLines:U,currentStreamingTail:H,currentStreamingLineCount:z+j.length,currentStreamingVersion:K+1,error:null}}}),$},finalizeStreamingMessage:(Y,Q)=>{let $=h0();X((G)=>{let V=G.session.currentStreamingMessageId,F=$.join("")+(Y||""),z=(G.session.currentThinkingContent||"")+(Q||"");if(F.length>0){let K={id:V||`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:F,timestamp:Date.now(),thinkingContent:z||void 0};return{session:{...G.session,messages:[...G.session.messages,K],currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,currentThinkingContent:null,finalizingStreamingMessageId:K.id}}}return{session:{...G.session,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,currentThinkingContent:null,finalizingStreamingMessageId:null}}})},clearFinalizingStreamingMessageId:()=>{X((Y)=>({session:{...Y.session,finalizingStreamingMessageId:null}}))},discardStreamingMessage:()=>{T=[],X((Y)=>({session:{...Y.session,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,finalizingStreamingMessageId:null}}))},setProviderRetry:(Y)=>{X((Q)=>({session:{...Q.session,providerRetry:Y}}))},setProviderStall:(Y)=>{X((Q)=>({session:{...Q.session,providerStall:Y}}))},applyCommittedEvent:(Y)=>{a(y,Y),X((Q)=>({session:{...Q.session,messages:[...y.messages],error:null}}))},applyStreamingDelta:(Y)=>{s(y,Y),X((Q)=>({session:{...Q.session,messages:[...y.messages]}}))},resetConversationProjection:()=>{M0()}}});var u0=f0()(v0(k0((...X)=>({session:r(...X),app:k(...X),config:u(...X),focus:p(...X),command:f(...X)})),{name:"BladeStore",enabled:!0})),_=()=>u0.getState(),y1=()=>_().session.actions,T1=()=>_().app.actions,S1=()=>_().session.messages,x=()=>_().config.config,R=null;async function I1(){if(x()!==null)return;if(R)return R;return R=(async()=>{try{let Y=await U0.getInstance().initialize();_().config.actions.setConfig(Y)}catch(Z){throw R=null,Error(`[FAIL] Store 未初始化且无法自动初始化
18
18
 
19
19
  `+`原因: ${Z instanceof Error?Z.message:"未知错误"}
20
20
 
@@ -22,4 +22,4 @@ import{ed as D}from"./chunk-vmq248m7.js";import{fd as G0}from"./chunk-ybvdac8k.j
22
22
  `+`1. 配置文件格式正确 (~/.blade/config.json)
23
23
  `+`2. 运行 blade 进行首次配置
24
24
  `+"3. 配置文件权限正确")}finally{R=null}})(),R}var C1=()=>_().config.config?.models??[],b1=()=>{let X=x();if(!X)return;let Z=X.currentModelId;return X.models.find((Q)=>Q.id===Z)??X.models[0]},h1=(X)=>{let Z=x();if(!Z)return;return Z.models.find((Y)=>Y.id===X)},M1=()=>_().config.config?.mcpServers??{},v1=()=>_().app.thinkingModeEnabled,k1=()=>_().app.reasoningEffort,f1=()=>_().app.serviceTier,u1=()=>_().app.responseVerbosity,p1=()=>_().app.communicationStyle,F0=()=>({setPermissionMode:async(X)=>{_().config.actions.updateConfig({permissionMode:X})},setTheme:async(X,Z={})=>{try{o.setTheme(X)}catch{return}_().config.actions.updateConfig({theme:X}),await D().save({theme:X},{scope:"global",...Z})},setLanguage:async(X,Z={})=>{_().config.actions.updateConfig({language:X}),await D().save({language:X},{scope:"global",...Z})},setDebug:async(X,Z={})=>{_().config.actions.updateConfig({debug:X}),await D().save({debug:X},{scope:"global",...Z})},setTemperature:async(X,Z={})=>{_().config.actions.updateConfig({temperature:X}),await D().save({temperature:X},{scope:"global",...Z})},updateConfig:async(X,Z={})=>{let Y=x();if(!Y)throw Error("Config not initialized");let Q={...Y};_().config.actions.updateConfig(X);try{await D().save(X,Z)}catch($){throw _().config.actions.setConfig(Q),$}},flush:async()=>{await D().flush()},appendPermissionAllowRule:async(X,Z={})=>{let Y=x();if(!Y)throw Error("Config not initialized");let Q=Y.permissions?.allow||[];if(!Q.includes(X)){let $=[...Q,X];_().config.actions.updateConfig({permissions:{...Y.permissions,allow:$}})}await D().appendPermissionRule(X,Z)},appendLocalPermissionAllowRule:async(X,Z={})=>{let Y=x();if(!Y)throw Error("Config not initialized");let Q=Y.permissions?.allow||[];if(!Q.includes(X)){let $=[...Q,X];_().config.actions.updateConfig({permissions:{...Y.permissions,allow:$}})}await D().appendLocalPermissionRule(X,Z)},setCurrentModel:async(X,Z={})=>{let Y=x();if(!Y)throw Error("Config not initialized");if(!Y.models.find(($)=>$.id===X))throw Error(`Model not found: ${X}`);_().config.actions.updateConfig({currentModelId:X}),await D().save({currentModelId:X},{scope:"global",...Z})},addModel:async(X,Z={})=>{let Y=x();if(!Y)throw Error("Config not initialized");let Q="id"in X?X:{id:J0(),...X};if(Y.models.find((J)=>J.provider===Q.provider&&J.model===Q.model))throw Error(`Model already configured: ${Q.provider}/${Q.model}`);let V={models:[...Y.models,Q]};if(Y.models.length===0)V.currentModelId=Q.id;return _().config.actions.updateConfig(V),await D().save(V,{scope:"global",...Z}),Q},addModelWithProvider:async(X,Z,Y={})=>{let Q=x();if(!Q)throw Error("Config not initialized");let $=X.provider;if(Q.modelProviders[$])throw Error(`Model provider already configured: ${$}`);let G="id"in X?X:{id:J0(),...X};if(Q.models.find((K)=>K.provider===$&&K.model===G.model))throw Error(`Model already configured: ${$}/${G.model}`);let J=Q,F=[...Q.models,G],z={modelProviders:{...Q.modelProviders,[$]:Z},models:F};if(Q.models.length===0)z.currentModelId=G.id;A().registerModelProvider($,Z,[G.model]),_().config.actions.updateConfig(z);try{return await D().save(z,{scope:"global",...Y}),G}catch(K){throw _().config.actions.setConfig(J),A().configureModelProviders(J.modelProviders,J.models),K}},updateModelWithProvider:async(X,Z,Y,Q={})=>{let $=x();if(!$)throw Error("Config not initialized");let G=Z.provider;if(!G)throw Error("Model provider is required");if($.modelProviders[G])throw Error(`Model provider already configured: ${G}`);let V=$.models.findIndex((w)=>w.id===X);if(V===-1)throw Error(`Model not found: ${X}`);let J={...$.models[V],...Z};if(!J.model)throw Error("Model ID is required");let F=$,z=[...$.models];z[V]=J;let K={modelProviders:{...$.modelProviders,[G]:Y},models:z};A().registerModelProvider(G,Y,[J.model]),_().config.actions.updateConfig(K);try{await D().save(K,{scope:"global",...Q})}catch(w){throw _().config.actions.setConfig(F),A().configureModelProviders(F.modelProviders,F.models),w}},updateModelProvider:async(X,Z,Y={})=>{let Q=x();if(!Q)throw Error("Config not initialized");if(!Q.modelProviders[X])throw Error(`Model provider not found: ${X}`);let $=Q.models.filter((G)=>G.provider===X).map((G)=>G.model);A().registerModelProvider(X,Z,$),await F0().updateConfig({modelProviders:{...Q.modelProviders,[X]:Z}},{scope:"global",immediate:!0,...Y})},removeModelProvider:async(X,Z={})=>{let Y=x();if(!Y)throw Error("Config not initialized");if(!Y.modelProviders[X])throw Error(`Model provider not found: ${X}`);let Q=Y.models.filter((j)=>j.provider===X),$=Y.models.filter((j)=>j.fallbackModels?.some((H)=>H.provider===X));if(!Z.removeModels&&(Q.length>0||$.length>0))throw Error(`Model provider is still referenced by ${Q.length} model(s) and ${$.length} fallback configuration(s)`);let G=Q.map((j)=>j.id),V=Y.models.filter((j)=>j.provider!==X).map((j)=>{let H=j.fallbackModels?.filter((q)=>q.provider!==X),{fallbackModels:U,...O}=j;return H?.length?{...O,fallbackModels:H}:O});if(V.length===0)throw Error("Cannot remove the provider that owns the only model");let J={...Y.modelProviders};delete J[X];let F={modelProviders:J,models:V};if(G.includes(Y.currentModelId))F.currentModelId=V[0].id;let z=A(),K=await z.credentials.read(X);await z.credentials.delete(X);let{removeModels:w,...E}=Z;try{return await F0().updateConfig(F,{scope:"global",immediate:!0,...E}),{removedModelIds:G}}catch(j){if(K)await z.credentials.modify(X,async()=>K);throw j}},updateModel:async(X,Z,Y={})=>{let Q=x();if(!Q)throw Error("Config not initialized");let $=Q.models.findIndex((V)=>V.id===X);if($===-1)throw Error(`Model not found: ${X}`);let G=[...Q.models];G[$]={...G[$],...Z},_().config.actions.updateConfig({models:G}),await D().save({models:G},{scope:"global",...Y})},removeModel:async(X,Z={})=>{let Y=x();if(!Y)throw Error("Config not initialized");if(Y.models.length===1)throw Error("Cannot remove the only model");let Q=Y.models.filter((G)=>G.id!==X),$={models:Q};if(Y.currentModelId===X)$.currentModelId=Q[0].id;_().config.actions.updateConfig($),await D().save($,{scope:"global",...Z})},addMcpServer:async(X,Z,Y={})=>{let Q=x();if(!Q)throw Error("Config not initialized");let $=Q.mcpServers??{},G=H0(Z),V={...Z,...G?{oauth:G}:{}},J={...$,[X]:V};_().config.actions.updateConfig({mcpServers:J}),await D().save({mcpServers:J},{scope:"project",...Y})},removeMcpServer:async(X,Z={})=>{let Y=x();if(!Y)throw Error("Config not initialized");let $={...Y.mcpServers??{}};delete $[X],_().config.actions.updateConfig({mcpServers:$}),await D().save({mcpServers:$},{scope:"project",...Z})}});
25
- export{l as Fc,o as Gc,W as Hc,t0 as Ic,X1 as Jc,Y1 as Kc,Z1 as Lc,$1 as Mc,G1 as Nc,V1 as Oc,u0 as Pc,_ as Qc,y1 as Rc,T1 as Sc,S1 as Tc,x as Uc,I1 as Vc,C1 as Wc,b1 as Xc,h1 as Yc,M1 as Zc,v1 as _c,k1 as $c,f1 as ad,u1 as bd,p1 as cd,F0 as dd};
25
+ export{l as Hc,o as Ic,W as Jc,t0 as Kc,X1 as Lc,Y1 as Mc,Z1 as Nc,$1 as Oc,G1 as Pc,V1 as Qc,u0 as Rc,_ as Sc,y1 as Tc,T1 as Uc,S1 as Vc,x as Wc,I1 as Xc,C1 as Yc,b1 as Zc,h1 as _c,M1 as $c,v1 as ad,k1 as bd,f1 as cd,u1 as dd,p1 as ed,F0 as fd};
@@ -0,0 +1 @@
1
+ import{Af as c,Bf as d,Cf as e,Df as f,yf as a,zf as b}from"./chunk-dskgbv7c.js";import"./chunk-6g5k5de1.js";export{b as getVersion,c as getPackageName,a as getPackageInfo,e as getFormattedVersion,d as getDescription,f as getCopyright};
@@ -1,2 +1,2 @@
1
1
  var t=["auto","low","medium","high"],s=new Set(["openai-completions","openai-responses","openai-codex-responses","azure-openai-responses"]);function n(e){return/(?:^|[/.:_-])gpt-5(?:$|[/.:_-])/i.test(e.id)}function f(e){return typeof e==="string"&&t.includes(e)}function p(e){if(e.api==="openai-codex-responses"||s.has(e.api)&&n(e))return["low","medium","high"];return[]}function u(e,r){let i=p(e);if(r!=="auto"&&!i.includes(r))throw Error(`Response verbosity ${r} is not supported by ${e.name}`);if(r==="auto")return{selection:r,effective:"provider-default",supported:i};return{selection:r,effective:r,supported:i,providerValue:r}}var a=["auto","standard","fast","flex"],o=new Set(["openai-completions","openai-responses","openai-codex-responses","azure-openai-responses"]);function S(e){return typeof e==="string"&&a.includes(e)}function c(e){if(o.has(e.api))return["standard","fast","flex"];if(e.api==="anthropic-messages"&&/(?:^|-)claude-opus-4-6(?:-|$)/i.test(e.id))return["standard","fast"];return["standard"]}function l(e,r){let i=c(e);if(r!=="auto"&&!i.includes(r))throw Error(`Service tier ${r} is not supported by ${e.name}`);if(r==="auto")return{selection:r,effective:"provider-default",supported:i};if(r==="standard")return{selection:r,effective:"standard",supported:i,...o.has(e.api)?{providerValue:"default"}:{}};if(r==="fast")return{selection:r,effective:"fast",supported:i,providerValue:e.api==="anthropic-messages"?"fast":"priority"};return{selection:r,effective:"flex",supported:i,providerValue:"flex"}}
2
- export{f as of,p as pf,u as qf,S as rf,c as sf,l as tf};
2
+ export{f as sf,p as tf,u as uf,S as vf,c as wf,l as xf};
@@ -1,2 +1,2 @@
1
- import{Mf as F}from"./chunk-g11hq0e5.js";import{execSync as G}from"node:child_process";import*as C from"node:os";import*as v from"node:path";function H(k){return v.resolve(k).replace(/[/\\]/g,"-").replace(/:/g,"_")}function M(k){let q=k.replace(/_/g,":");if(q.startsWith("-"))q="/"+q.slice(1);return q.replace(/-/g,"/")}function z(k){let q=H(k);return v.join(E(),"projects",q)}function J(k){return typeof k==="string"&&k!=="."&&k!==".."&&/^[A-Za-z0-9_-][A-Za-z0-9._-]{0,199}$/.test(k)}function A(k){if(!J(k))throw Error(`Invalid session ID: ${k}`)}function N(k,q){return A(q),v.join(z(k),`${q}.jsonl`)}function O(k,q){return A(q),v.join(z(k),`${q}.inbox.json`)}function Q(k,q){return A(q),v.join(z(k),`${q}.goal.json`)}function T(k){try{return G("git rev-parse --abbrev-ref HEAD",{cwd:k,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||void 0}catch{return}}function E(){return process.env.BLADE_STORAGE_ROOT||v.join(C.homedir(),".blade")}async function U(){let{readdir:k}=await import("node:fs/promises");try{let q=v.join(E(),"projects");return(await k(q,{withFileTypes:!0})).filter((w)=>w.isDirectory()).map((w)=>w.name)}catch{return[]}}
2
- export{M as Cf,z as Df,J as Ef,A as Ff,N as Gf,O as Hf,Q as If,T as Jf,E as Kf,U as Lf};
1
+ import{Qf as F}from"./chunk-6g5k5de1.js";import{execSync as G}from"node:child_process";import*as C from"node:os";import*as v from"node:path";function H(k){return v.resolve(k).replace(/[/\\]/g,"-").replace(/:/g,"_")}function M(k){let q=k.replace(/_/g,":");if(q.startsWith("-"))q="/"+q.slice(1);return q.replace(/-/g,"/")}function z(k){let q=H(k);return v.join(E(),"projects",q)}function J(k){return typeof k==="string"&&k!=="."&&k!==".."&&/^[A-Za-z0-9_-][A-Za-z0-9._-]{0,199}$/.test(k)}function A(k){if(!J(k))throw Error(`Invalid session ID: ${k}`)}function N(k,q){return A(q),v.join(z(k),`${q}.jsonl`)}function O(k,q){return A(q),v.join(z(k),`${q}.inbox.json`)}function Q(k,q){return A(q),v.join(z(k),`${q}.goal.json`)}function T(k){try{return G("git rev-parse --abbrev-ref HEAD",{cwd:k,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||void 0}catch{return}}function E(){return process.env.BLADE_STORAGE_ROOT||v.join(C.homedir(),".blade")}async function U(){let{readdir:k}=await import("node:fs/promises");try{let q=v.join(E(),"projects");return(await k(q,{withFileTypes:!0})).filter((w)=>w.isDirectory()).map((w)=>w.name)}catch{return[]}}
2
+ export{M as Gf,z as Hf,J as If,A as Jf,N as Kf,O as Lf,Q as Mf,T as Nf,E as Of,U as Pf};
@@ -1,2 +1,2 @@
1
1
  import{nanoid as q}from"nanoid";var u=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;function B(j="session",m=21){if(!u.test(j))throw Error(`Invalid session ID prefix: ${j}`);return`${j}-${q(m)}`}
2
- export{B as fd};
2
+ export{B as hd};
@@ -1,2 +1,2 @@
1
- import{nf as o}from"./chunk-s5666ta0.js";async function e(){return o().listProviders()}async function i(r){return o().listModels(r)}
1
+ import{rf as o}from"./chunk-jpwfq49n.js";async function e(){return o().listProviders()}async function i(r){return o().listModels(r)}
2
2
  export{e as j,i as k};
@@ -1 +1 @@
1
- import{Ea as J,la as V,na as W,oa as O}from"./chunk-p4zt7ts9.js";import"./chunk-4dq9y7zn.js";import"./chunk-kvx3sb3z.js";import"./chunk-f4z3gkbs.js";import{if as Q}from"./chunk-5s123nbs.js";import"./chunk-363pgv1e.js";import"./chunk-g11hq0e5.js";import F from"chalk";var K=(f)=>typeof f==="string"&&f.length>0?f:void 0;function X(f){let z=K(f.cron),G=K(f.every),H=K(f.at);if([z,G,H].filter(Boolean).length!==1)throw Error("Provide exactly one of --cron, --every, or --at");if(z)return{kind:"cron",cron:z};if(G){let P=V(G);if(!P)throw Error(`Invalid --every value "${G}" (use e.g. 30m, 2h, 1d)`);return{kind:"interval",intervalMs:P}}let N=new Date(H);if(Number.isNaN(N.getTime()))throw Error(`Invalid --at value "${H}" (use an ISO timestamp)`);return{kind:"once",runAt:N.toISOString()}}var Y={command:"create <prompt>",describe:"创建定时任务",builder:(f)=>f.positional("prompt",{type:"string",describe:"定时任务运行时发送给 Agent 的提示词",demandOption:!0}).option("cron",{type:"string",describe:"5 段 cron 表达式(本地时区)"}).option("every",{type:"string",describe:"间隔(如 30m、2h、1d)"}).option("at",{type:"string",describe:"一次性运行的 ISO 时间点"}).option("project-path",{alias:["projectPath","project"],type:"string",describe:"目标项目路径(默认当前目录)"}).option("title",{type:"string",describe:"定时任务标题"}).option("model",{alias:"m",type:"string",describe:"模型 ID"}).option("permission-mode",{type:"string",choices:["default","autoEdit","yolo","plan"],default:"default",describe:"权限模式"}).option("isolation",{type:"string",choices:["local","worktree"],default:"worktree",describe:"执行隔离方式"}).example([['$0 schedule create "跑测试并汇报失败" --every 1h',"每小时运行一次"],['$0 schedule create "生成每日站会摘要" --cron "0 9 * * 1-5"',"工作日 9 点运行"]]),handler:async(f)=>{try{let z=X(f),G=W(z);if(G)throw Error(G);let H={prompt:f.prompt,projectPath:K(f.projectPath)??Q(),title:K(f.title),trigger:z,modelId:K(f.model),isolation:K(f.isolation)??"worktree",permissionMode:K(f.permissionMode)??"default",enabled:!0},B=await J.create(H);console.log(F.green(`✓ 已创建定时任务 ${B.id}`)),console.log(` ${O(B.trigger)}`),console.log(` 项目: ${B.projectPath}`),console.log(` 下次运行: ${B.nextRunAt?new Date(B.nextRunAt).toLocaleString():"(无)"}`),process.exit(0)}catch(z){console.error(F.red(`创建定时任务失败: ${z instanceof Error?z.message:z}`)),process.exit(1)}}},Z={command:"list",aliases:["ls"],describe:"列出所有定时任务",handler:async()=>{let f=await J.list();if(f.length===0)console.log(F.dim("尚无定时任务。使用 `blade schedule create` 创建。")),process.exit(0);for(let z of f){let G=z.enabled?F.green("启用"):F.dim("停用"),H=z.nextRunAt?new Date(z.nextRunAt).toLocaleString():"—",B=z.lastRunAt?`${new Date(z.lastRunAt).toLocaleString()} (${z.lastStatus??"?"})`:"从未";console.log(`${F.cyan(z.id)} [${G}] ${z.title??z.prompt.slice(0,40)}`),console.log(` ${O(z.trigger)} · 下次: ${H} · 上次: ${B} · 运行 ${z.runCount} 次`),console.log(F.dim(` 项目: ${z.projectPath}`))}process.exit(0)}},_={command:"show <id>",describe:"查看定时任务详情",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}),handler:async(f)=>{let z=await J.get(f.id);if(!z)console.error(F.red(`未找到定时任务 ${f.id}`)),process.exit(1);console.log(JSON.stringify(z,null,2)),process.exit(0)}},$={command:"remove <id>",aliases:["rm"],describe:"删除定时任务",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}),handler:async(f)=>{if(!await J.remove(f.id))console.error(F.red(`未找到定时任务 ${f.id}`)),process.exit(1);console.log(F.green(`✓ 已删除定时任务 ${f.id}`)),process.exit(0)}},q={command:"enable <id>",describe:"启用定时任务",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}),handler:async(f)=>{if(!await J.setEnabled(f.id,!0))console.error(F.red(`未找到定时任务 ${f.id}`)),process.exit(1);console.log(F.green(`✓ 已启用定时任务 ${f.id}`)),process.exit(0)}},x={command:"disable <id>",describe:"停用定时任务",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}),handler:async(f)=>{if(!await J.setEnabled(f.id,!1))console.error(F.red(`未找到定时任务 ${f.id}`)),process.exit(1);console.log(F.green(`✓ 已停用定时任务 ${f.id}`)),process.exit(0)}},D={command:"run <id>",describe:"立即运行定时任务(需要 blade serve)",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}).option("server",{type:"string",default:process.env.BLADE_SERVER_URL??"http://127.0.0.1:4097",describe:"Blade server 地址"}),handler:async(f)=>{let z=f.id,G=(K(f.server)??"http://127.0.0.1:4097").replace(/\/$/,""),H={};if(process.env.BLADE_SERVER_PASSWORD){let B=process.env.BLADE_SERVER_USERNAME??"blade";H.Authorization=`Basic ${Buffer.from(`${B}:${process.env.BLADE_SERVER_PASSWORD}`).toString("base64")}`}try{let B=await fetch(`${G}/schedules/${encodeURIComponent(z)}/run`,{method:"POST",headers:H});if(!B.ok){let N=await B.json().catch(()=>{return});throw Error(N?.error?.message??`Schedule run failed (${B.status})`)}console.log(F.green(`✓ 已触发定时任务 ${z}`)),process.exit(0)}catch(B){console.error(F.red(`运行定时任务失败: ${B instanceof Error?B.message:B}`)),process.exit(1)}}},R={command:"schedule",describe:"管理定时任务",builder:(f)=>f.command(Y).command(Z).command(_).command($).command(q).command(x).command(D).demandCommand(1,"请提供子命令:create | list | show | remove | enable | disable | run"),handler:()=>{}};export{R as scheduleCommands};
1
+ import{Ea as J,la as V,na as W,oa as O}from"./chunk-qt114yth.js";import"./chunk-6207mbmr.js";import"./chunk-96h588rd.js";import"./chunk-3qhqbj09.js";import{mf as Q}from"./chunk-prgh321y.js";import"./chunk-yvf4nmds.js";import"./chunk-6g5k5de1.js";import F from"chalk";var K=(f)=>typeof f==="string"&&f.length>0?f:void 0;function X(f){let z=K(f.cron),G=K(f.every),H=K(f.at);if([z,G,H].filter(Boolean).length!==1)throw Error("Provide exactly one of --cron, --every, or --at");if(z)return{kind:"cron",cron:z};if(G){let P=V(G);if(!P)throw Error(`Invalid --every value "${G}" (use e.g. 30m, 2h, 1d)`);return{kind:"interval",intervalMs:P}}let N=new Date(H);if(Number.isNaN(N.getTime()))throw Error(`Invalid --at value "${H}" (use an ISO timestamp)`);return{kind:"once",runAt:N.toISOString()}}var Y={command:"create <prompt>",describe:"创建定时任务",builder:(f)=>f.positional("prompt",{type:"string",describe:"定时任务运行时发送给 Agent 的提示词",demandOption:!0}).option("cron",{type:"string",describe:"5 段 cron 表达式(本地时区)"}).option("every",{type:"string",describe:"间隔(如 30m、2h、1d)"}).option("at",{type:"string",describe:"一次性运行的 ISO 时间点"}).option("project-path",{alias:["projectPath","project"],type:"string",describe:"目标项目路径(默认当前目录)"}).option("title",{type:"string",describe:"定时任务标题"}).option("model",{alias:"m",type:"string",describe:"模型 ID"}).option("permission-mode",{type:"string",choices:["default","autoEdit","yolo","plan"],default:"default",describe:"权限模式"}).option("isolation",{type:"string",choices:["local","worktree"],default:"worktree",describe:"执行隔离方式"}).example([['$0 schedule create "跑测试并汇报失败" --every 1h',"每小时运行一次"],['$0 schedule create "生成每日站会摘要" --cron "0 9 * * 1-5"',"工作日 9 点运行"]]),handler:async(f)=>{try{let z=X(f),G=W(z);if(G)throw Error(G);let H={prompt:f.prompt,projectPath:K(f.projectPath)??Q(),title:K(f.title),trigger:z,modelId:K(f.model),isolation:K(f.isolation)??"worktree",permissionMode:K(f.permissionMode)??"default",enabled:!0},B=await J.create(H);console.log(F.green(`✓ 已创建定时任务 ${B.id}`)),console.log(` ${O(B.trigger)}`),console.log(` 项目: ${B.projectPath}`),console.log(` 下次运行: ${B.nextRunAt?new Date(B.nextRunAt).toLocaleString():"(无)"}`),process.exit(0)}catch(z){console.error(F.red(`创建定时任务失败: ${z instanceof Error?z.message:z}`)),process.exit(1)}}},Z={command:"list",aliases:["ls"],describe:"列出所有定时任务",handler:async()=>{let f=await J.list();if(f.length===0)console.log(F.dim("尚无定时任务。使用 `blade schedule create` 创建。")),process.exit(0);for(let z of f){let G=z.enabled?F.green("启用"):F.dim("停用"),H=z.nextRunAt?new Date(z.nextRunAt).toLocaleString():"—",B=z.lastRunAt?`${new Date(z.lastRunAt).toLocaleString()} (${z.lastStatus??"?"})`:"从未";console.log(`${F.cyan(z.id)} [${G}] ${z.title??z.prompt.slice(0,40)}`),console.log(` ${O(z.trigger)} · 下次: ${H} · 上次: ${B} · 运行 ${z.runCount} 次`),console.log(F.dim(` 项目: ${z.projectPath}`))}process.exit(0)}},_={command:"show <id>",describe:"查看定时任务详情",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}),handler:async(f)=>{let z=await J.get(f.id);if(!z)console.error(F.red(`未找到定时任务 ${f.id}`)),process.exit(1);console.log(JSON.stringify(z,null,2)),process.exit(0)}},$={command:"remove <id>",aliases:["rm"],describe:"删除定时任务",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}),handler:async(f)=>{if(!await J.remove(f.id))console.error(F.red(`未找到定时任务 ${f.id}`)),process.exit(1);console.log(F.green(`✓ 已删除定时任务 ${f.id}`)),process.exit(0)}},q={command:"enable <id>",describe:"启用定时任务",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}),handler:async(f)=>{if(!await J.setEnabled(f.id,!0))console.error(F.red(`未找到定时任务 ${f.id}`)),process.exit(1);console.log(F.green(`✓ 已启用定时任务 ${f.id}`)),process.exit(0)}},x={command:"disable <id>",describe:"停用定时任务",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}),handler:async(f)=>{if(!await J.setEnabled(f.id,!1))console.error(F.red(`未找到定时任务 ${f.id}`)),process.exit(1);console.log(F.green(`✓ 已停用定时任务 ${f.id}`)),process.exit(0)}},D={command:"run <id>",describe:"立即运行定时任务(需要 blade serve)",builder:(f)=>f.positional("id",{type:"string",describe:"定时任务 ID",demandOption:!0}).option("server",{type:"string",default:process.env.BLADE_SERVER_URL??"http://127.0.0.1:4097",describe:"Blade server 地址"}),handler:async(f)=>{let z=f.id,G=(K(f.server)??"http://127.0.0.1:4097").replace(/\/$/,""),H={};if(process.env.BLADE_SERVER_PASSWORD){let B=process.env.BLADE_SERVER_USERNAME??"blade";H.Authorization=`Basic ${Buffer.from(`${B}:${process.env.BLADE_SERVER_PASSWORD}`).toString("base64")}`}try{let B=await fetch(`${G}/schedules/${encodeURIComponent(z)}/run`,{method:"POST",headers:H});if(!B.ok){let N=await B.json().catch(()=>{return});throw Error(N?.error?.message??`Schedule run failed (${B.status})`)}console.log(F.green(`✓ 已触发定时任务 ${z}`)),process.exit(0)}catch(B){console.error(F.red(`运行定时任务失败: ${B instanceof Error?B.message:B}`)),process.exit(1)}}},R={command:"schedule",describe:"管理定时任务",builder:(f)=>f.command(Y).command(Z).command(_).command($).command(q).command(x).command(D).demandCommand(1,"请提供子命令:create | list | show | remove | enable | disable | run"),handler:()=>{}};export{R as scheduleCommands};