blade-code 0.11.1 → 0.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blade.js +2 -2
- package/dist/{chunk-s1cch8tt.js → chunk-0759ckbc.js} +1 -1
- package/dist/{chunk-4cdk4mds.js → chunk-0eajnhrj.js} +1 -1
- package/dist/{chunk-2ftyzk83.js → chunk-0pcrccgp.js} +1 -1
- package/dist/{chunk-5034apfz.js → chunk-0wxnrjes.js} +2 -2
- package/dist/{chunk-vbjgcn49.js → chunk-1cy4ab77.js} +1 -1
- package/dist/{chunk-a74ynw4t.js → chunk-33w0b9r4.js} +1 -1
- package/dist/chunk-3d4wgfkr.js +1 -0
- package/dist/chunk-3rxs9vxm.js +6 -0
- package/dist/{chunk-30p7aff1.js → chunk-45xdp95z.js} +1 -1
- package/dist/{chunk-9ydrwcpy.js → chunk-4e4qtpca.js} +2 -2
- package/dist/{chunk-ts5xzefm.js → chunk-5qrw9g8c.js} +2 -2
- package/dist/{chunk-0wcnkxe8.js → chunk-5s2x98rx.js} +2 -2
- package/dist/{chunk-8sth12hd.js → chunk-6v23hdt8.js} +1 -1
- package/dist/{chunk-06hkf59s.js → chunk-7ajvrtb3.js} +1 -1
- package/dist/chunk-7p8r4q6f.js +1 -0
- package/dist/{chunk-gzbb747a.js → chunk-a95jmx2j.js} +1 -1
- package/dist/{chunk-n8qg68y2.js → chunk-amabfzc8.js} +1 -1
- package/dist/{chunk-m30qwpe9.js → chunk-b22ab7yw.js} +1 -1
- package/dist/chunk-b3kvf23h.js +357 -0
- package/dist/chunk-b7pn03pb.js +1 -0
- package/dist/chunk-b8hm4td5.js +1 -0
- package/dist/{chunk-xz7dddaj.js → chunk-cmpxdek8.js} +1 -1
- package/dist/{chunk-8n3jythp.js → chunk-crbt25b4.js} +2 -2
- package/dist/{chunk-0b83mt1c.js → chunk-crv3sghv.js} +2 -2
- package/dist/{chunk-7eset766.js → chunk-dv5ts9ae.js} +6 -6
- package/dist/{chunk-g0hhqxpg.js → chunk-dyf12wbv.js} +2 -2
- package/dist/chunk-fa5sebe2.js +1 -0
- package/dist/{chunk-hmw99nm1.js → chunk-faedrfhd.js} +27 -27
- package/dist/chunk-ffq1k7q5.js +10 -0
- package/dist/chunk-fnvh22vc.js +1 -0
- package/dist/{chunk-xcy45yxx.js → chunk-g0xtk1yy.js} +2 -2
- package/dist/{chunk-h8w3ahnk.js → chunk-g2295k8s.js} +2 -2
- package/dist/chunk-gfhb2h6z.js +1 -0
- package/dist/chunk-gqypt03h.js +1 -0
- package/dist/chunk-hn2p1296.js +1 -0
- package/dist/chunk-hnnhpv75.js +1 -0
- package/dist/{chunk-ms0wve9g.js → chunk-hzz27w5w.js} +2 -2
- package/dist/{chunk-ta99scbr.js → chunk-jbpasjg9.js} +1 -1
- package/dist/{chunk-2vrsfb8p.js → chunk-jm1chm6x.js} +55 -55
- package/dist/{chunk-pm5ssr7m.js → chunk-kb4hwa5a.js} +1 -1
- package/dist/{chunk-sa9fxss4.js → chunk-kdtj92em.js} +1 -1
- package/dist/{chunk-3kszepm6.js → chunk-kehgewqh.js} +1 -1
- package/dist/{chunk-wcps5gjm.js → chunk-kkzznz4w.js} +1 -1
- package/dist/chunk-m2x6pb4f.js +2 -0
- package/dist/chunk-mmpcq1yh.js +1 -0
- package/dist/{chunk-xzva8y4e.js → chunk-mqfayxf7.js} +3 -3
- package/dist/{chunk-tqt5c2f5.js → chunk-n30najxq.js} +2 -2
- package/dist/{chunk-9yn01a90.js → chunk-nts19h6v.js} +1 -1
- package/dist/{chunk-v1k6nvth.js → chunk-nvj4da2w.js} +1 -1
- package/dist/{chunk-80946c9a.js → chunk-p36k2e96.js} +1 -1
- package/dist/{chunk-a1tt14a2.js → chunk-pbckwd41.js} +2 -2
- package/dist/{chunk-zfxcef0z.js → chunk-pm163dfm.js} +1 -1
- package/dist/{chunk-1beqtjsw.js → chunk-prqtwzxd.js} +1 -1
- package/dist/{chunk-zjezws85.js → chunk-px45q235.js} +2 -2
- package/dist/{chunk-5bc4hwt9.js → chunk-q6sr4979.js} +2 -2
- package/dist/{chunk-m8te4s8f.js → chunk-qvew5nk3.js} +2 -2
- package/dist/{chunk-yrr9mdjn.js → chunk-qy6p8bpr.js} +2 -2
- package/dist/{chunk-xseh3f4m.js → chunk-r5svk833.js} +1 -1
- package/dist/{chunk-25s0c8km.js → chunk-r9nyzqzb.js} +5 -5
- package/dist/{chunk-27bjk35b.js → chunk-s3pnhdqk.js} +1 -1
- package/dist/{chunk-f552hzcx.js → chunk-sdapqhj0.js} +1 -1
- package/dist/{chunk-a731hdwa.js → chunk-skktstg8.js} +1 -1
- package/dist/chunk-sqsfztrv.js +1 -0
- package/dist/{chunk-xcj23spc.js → chunk-t0swttvj.js} +2 -2
- package/dist/{chunk-m70cnaeg.js → chunk-v0eanse2.js} +1 -1
- package/dist/{chunk-dxq7462e.js → chunk-wan9q99y.js} +2 -2
- package/dist/{chunk-f6hc7t65.js → chunk-wnzr9h84.js} +1 -1
- package/dist/{chunk-447ps2te.js → chunk-x2crj6jq.js} +2 -2
- package/dist/{chunk-5yyp6njq.js → chunk-x6k5ye1z.js} +1 -1
- package/dist/{chunk-fqxzzsgr.js → chunk-yeandcre.js} +1 -1
- package/dist/{chunk-3y2x6fb6.js → chunk-ys8gysg8.js} +1 -1
- package/dist/chunk-yw3achrm.js +1 -0
- package/dist/{chunk-rt3f4xjz.js → chunk-zc8erdkc.js} +14 -6
- package/dist/web/assets/ChatView-CvuKp3Yl.js +17 -0
- package/dist/web/assets/{CodeBlockHighlighter-B5kcdVCA.js → CodeBlockHighlighter-CYiAdOLs.js} +1 -1
- package/dist/web/assets/FilePreview-DGolvoH6.js +8 -0
- package/dist/web/assets/KanbanBoard-DdwrLpvb.js +1 -0
- package/dist/web/assets/{MarkdownRenderer-d7DdyYdx.js → MarkdownRenderer-fJny7W8J.js} +3 -3
- package/dist/web/assets/{ScrollArea-D1tPWHKZ.js → ScrollArea-CSCl8r35.js} +1 -1
- package/dist/web/assets/{SessionHistorySurface-Cv_jRoJr.js → SessionHistorySurface-dttyHhtN.js} +1 -1
- package/dist/web/assets/SettingsModal-Bn9m-F-v.js +5 -0
- package/dist/web/assets/Sidebar-JYvLuHTi.js +1 -0
- package/dist/web/assets/{TaskSwitcher-C9AKJrl-.js → TaskSwitcher-InE9ArQH.js} +1 -1
- package/dist/web/assets/{TerminalPanel-BxBGcuB9.js → TerminalPanel-BLRAlQoa.js} +1 -1
- package/dist/web/assets/{archive-DNa9b1YE.js → archive-D3alcPOa.js} +1 -1
- package/dist/web/assets/{arrow-left-BQh8jlfT.js → arrow-left-CNfcSdE2.js} +1 -1
- package/dist/web/assets/{calendar-clock-CC7FeYTg.js → calendar-clock-BoRTfsxW.js} +1 -1
- package/dist/web/assets/chevron-right-B8JH5N50.js +1 -0
- package/dist/web/assets/{clock-3-P2q6i6vm.js → clock-3-BGymk4sE.js} +1 -1
- package/dist/web/assets/{copy-C-KvzjCC.js → copy-CLG3LQ2v.js} +1 -1
- package/dist/web/assets/{dist-DiQNoDMg.js → dist-BtGkS2rG.js} +1 -1
- package/dist/web/assets/{download-CJHn20x1.js → download-DxK6pukC.js} +1 -1
- package/dist/web/assets/{folder-DmyFehXD.js → folder-B0xRimYH.js} +1 -1
- package/dist/web/assets/index-BJdxoBtv.css +1 -0
- package/dist/web/assets/{index-D-oma3Je.js → index-DkwePtIh.js} +4 -4
- package/dist/web/assets/{pause-D2FxNG-w.js → pause-CKNq9DgJ.js} +1 -1
- package/dist/web/assets/{pencil-D6HI7KC8.js → pencil-CMjIwtk5.js} +1 -1
- package/dist/web/assets/{play-4jKCDYR-.js → play-BOz9Sqzf.js} +1 -1
- package/dist/web/assets/plus-BJIEQjD7.js +1 -0
- package/dist/web/assets/preload-helper-HI3NtP3B.js +1 -0
- package/dist/web/assets/{session-events-CvFfHkFA.js → session-events-B-hnDC4L.js} +7 -7
- package/dist/web/assets/{settings-fWlqCZ-U.js → settings-CP6ArjQ7.js} +1 -1
- package/dist/web/assets/team-BHlihaeV.js +1 -0
- package/dist/web/assets/{teamService-DfIvlI2_.js → teamService-DDfifLYm.js} +1 -1
- package/dist/web/assets/{terminal-DZkEoiSb.js → terminal-BYHhWXe-.js} +1 -1
- package/dist/web/assets/tooltip-DJBQZhJD.js +1 -0
- package/dist/web/assets/triangle-alert-BCJaJaVj.js +1 -0
- package/dist/web/assets/{vendor-radix-CHeA_3Pt.js → vendor-radix-BCAvgfOW.js} +1 -1
- package/dist/web/assets/{vendor-react-hNfZDUf2.js → vendor-react-DQwAdeyS.js} +1 -1
- package/dist/web/index.html +5 -5
- package/package.json +1 -1
- package/dist/chunk-1kxpnt9q.js +0 -1
- package/dist/chunk-2g3v9qpz.js +0 -1
- package/dist/chunk-43gg1wdc.js +0 -1
- package/dist/chunk-72wn385d.js +0 -1
- package/dist/chunk-7vzz3rsx.js +0 -332
- package/dist/chunk-8emp6ysb.js +0 -1
- package/dist/chunk-8evyh5t0.js +0 -1
- package/dist/chunk-8hdtssvs.js +0 -1
- package/dist/chunk-b36egepz.js +0 -1
- package/dist/chunk-hrtf7dba.js +0 -2
- package/dist/chunk-j7dx054r.js +0 -1
- package/dist/chunk-j9ppeg6v.js +0 -1
- package/dist/chunk-jemb0vwa.js +0 -1
- package/dist/chunk-r9m3b170.js +0 -1
- package/dist/chunk-tf1qz4q6.js +0 -1
- package/dist/chunk-v17q4bsd.js +0 -6
- package/dist/chunk-y0wc0hef.js +0 -10
- package/dist/web/assets/ChatView-BA3kB_z1.js +0 -17
- package/dist/web/assets/FilePreview-BQid6G2-.js +0 -8
- package/dist/web/assets/KanbanBoard-CTR7bMLa.js +0 -1
- package/dist/web/assets/SettingsModal-CFa2uCzI.js +0 -5
- package/dist/web/assets/Sidebar-DrRNJOgU.js +0 -1
- package/dist/web/assets/chevron-right-6ZTOJE0p.js +0 -1
- package/dist/web/assets/index-BVEiHNFk.css +0 -1
- package/dist/web/assets/message-square-plus-CKu9bFq3.js +0 -1
- package/dist/web/assets/plus-C4p8E1Nk.js +0 -1
- package/dist/web/assets/preload-helper-BC9Zf9qO.js +0 -1
- package/dist/web/assets/team-qGS2kixH.js +0 -1
- package/dist/web/assets/triangle-alert-Detl9fRQ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$f as h,Uf as a,Vf as b,Wf as c,Xf as d,Yf as e,Zf as f,_f as g,ag as i,bg as j,cg as k,dg as l,eg as m}from"./chunk-dv5ts9ae.js";import"./chunk-x6k5ye1z.js";import"./chunk-v508x7cg.js";import"./chunk-qy6p8bpr.js";import"./chunk-b22ab7yw.js";import"./chunk-amabfzc8.js";import"./chunk-m2x6pb4f.js";import"./chunk-4e4qtpca.js";import"./chunk-5s2x98rx.js";import"./chunk-0eajnhrj.js";import"./chunk-pbckwd41.js";import"./chunk-px45q235.js";import"./chunk-a95jmx2j.js";import"./chunk-sdapqhj0.js";export{a as vanillaStore,c as sessionActions,l as getThinkingModeEnabled,b as getState,j as getModelById,e as getMessages,k as getMcpServers,i as getCurrentModel,f as getConfig,h as getAllModels,g as ensureStoreInitialized,m as configActions,d as appActions};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$g as i,Tg as a,Ug as b,Vg as c,Wg as d,Xg as e,Yg as f,Zg as g,_g as h,ah as j,bh as k}from"./chunk-crbt25b4.js";import"./chunk-kehgewqh.js";import"./chunk-kkzznz4w.js";import"./chunk-1cy4ab77.js";import"./chunk-7ajvrtb3.js";import"./chunk-mqfayxf7.js";import"./chunk-ys8gysg8.js";import"./chunk-qy6p8bpr.js";import"./chunk-b22ab7yw.js";import"./chunk-amabfzc8.js";import"./chunk-m2x6pb4f.js";import"./chunk-4e4qtpca.js";import"./chunk-5s2x98rx.js";import"./chunk-0eajnhrj.js";import"./chunk-pbckwd41.js";import"./chunk-px45q235.js";import"./chunk-a95jmx2j.js";import"./chunk-sdapqhj0.js";export{g as withWorkspaceAgentResources,i as snapshotWorkspaceAgentResources,f as resolveWorkspaceAgentResources,k as resetWorkspaceAgentResources,d as refreshWorkspaceCommunicationStyles,h as getWorkspaceAgentResourceCacheStats,j as createEmptySessionAgentResources,e as configureInvocationPluginDirs,c as WorkspaceAgentResourceCapacityError,a as MAX_RESIDENT_WORKSPACE_AGENT_RESOURCES,b as MAX_ACTIVE_WORKSPACE_AGENT_RESOURCES};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Ea as I,Ga as K}from"./chunk-
|
|
1
|
+
import{Ea as I,Ga as K}from"./chunk-r9nyzqzb.js";import{de as l,fe as V,ne as q}from"./chunk-faedrfhd.js";import{Yg as z}from"./chunk-crbt25b4.js";import{Zi as x}from"./chunk-b22ab7yw.js";async function J(){await z(x())}async function N(y){let R=y.message||y._?.[0];if(typeof R==="string"&&R.trim())return R;let G=y.stdin??process.stdin;if(!G.isTTY){let b=[];for await(let F of G)b.push(F);return Buffer.concat(b).toString("utf-8").trim()}if(y.defaultMessage!==void 0)return y.defaultMessage;throw Error("No input provided")}async function W(y){let R=y.message||y._?.[0];if(typeof R==="string"&&R.trim())return R;let G=y.stdin??process.stdin;if(G.isTTY)return;let b=[];for await(let O of G)b.push(Buffer.isBuffer(O)?O:Buffer.from(O));return Buffer.concat(b).toString("utf-8").trim()||void 0}async function X(y){if(!I(y))return{mode:"agent",content:y};let R=await K(y,{cwd:x(),surface:"headless",workspaceRoot:x()});if(!R.success)return{mode:"output",content:`Error: ${R.error||"未知错误"}`,exitCode:1};let G=R.data;if(G?.action==="invoke_skill"){let{skillName:b,skillArgs:F}=G;return{mode:"agent",content:F?`Please use the "${b}" skill to help me with: ${F}`:`Please use the "${b}" skill.`}}if(G?.action==="invoke_custom_command"||G?.action==="invoke_plugin_command"){let b=G.processedContent;return{mode:"agent",content:`# Custom Command: /${G.commandName}
|
|
2
2
|
|
|
3
3
|
${b}`}}return{mode:"output",content:R.content||R.message||"",exitCode:0}}async function m(y,R){let G=R&&y.getPendingSteeringCount()>0,b=R&&!G?await y.getGoal():null,F=b?.status==="active"||b?.status==="verifying",O=R&&!G&&!F,v=y.getTurnRecoveryAssessment?.()??{state:"none"},Z=O&&v.state!=="requires_attention"?await y.getRecoveredFinalResponse():void 0;return{pendingInputOnly:G,resumedGoal:b,goalContinuationOnly:F,finalRecovery:O,recoveryAssessment:v,recoveredFinalResponse:Z}}import{readFile as $,stat as L}from"node:fs/promises";import f from"node:path";function Q(y,R){let G;try{G=JSON.parse(y)}catch(b){throw Error(`Invalid JSON output schema from ${R}`,{cause:b})}return V(G).schema}async function _(y){if(y.jsonSchema!==void 0&&y.outputSchema!==void 0)throw Error("--json-schema cannot be combined with --output-schema");if(y.jsonSchema!==void 0)return Q(y.jsonSchema,"--json-schema");if(y.outputSchema===void 0)return;let R=f.resolve(y.outputSchema),G=await L(R);if(!G.isFile())throw Error(`Output schema path is not a regular file: ${R}`);if(G.size>l)throw Error(`Output schema exceeds ${l} bytes: ${R}`);return Q(await $(R,"utf8"),R)}function j(y){if(!(y instanceof Error))return!1;return y.message.includes("未找到会话")||y.message.includes("ENOENT")||y.message.includes("no such file")}async function A(y){try{return await q.loadSessionModelContext(y,x())}catch(R){if(j(R))return null;throw R}}async function C(y){if(y.resume===!0||y.resume==="true")throw Error("--resume without a session ID is only supported in interactive UI mode");if(typeof y.resume==="string"&&y.resume.length>0){if(y.forkSession){let b=x(),F=await q.forkSession(y.resume,{newSessionId:y.sessionId,sourceProjectPath:b,targetProjectPath:b});return{...F,messages:await q.loadSessionModelContext(F.sessionId,b)}}let[R,G]=await Promise.all([q.loadSessionModelContext(y.resume),q.findSessionMetadata(y.resume)]);return{sessionId:y.resume,messages:R,metadata:G}}if(y.continue){let R=y.forkSession?await q.listSessions({cwd:x()}):await q.listSessions();if(R.length>0){let G=R[0].sessionId;if(y.forkSession){let b=x(),F=await q.forkSession(G,{newSessionId:y.sessionId,sourceProjectPath:b,targetProjectPath:b});return{...F,messages:await q.loadSessionModelContext(F.sessionId,b)}}return{sessionId:G,messages:await q.loadSessionModelContext(G),metadata:R[0]}}if(y.forkSession)throw Error("Cannot fork: no sessions are available to continue")}if(y.sessionId){let R=await A(y.sessionId);return{sessionId:y.sessionId,messages:R??[],...R?{metadata:await q.findSessionMetadata(y.sessionId,x())}:{}}}return{sessionId:`${y.fallbackSessionPrefix}-${Date.now()}`,messages:[]}}
|
|
4
4
|
export{J as p,N as q,W as r,X as s,m as t,_ as u,C as v};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ch as FO,dh as $b,eh as JO}from"./chunk-kehgewqh.js";import{kh as wb}from"./chunk-kkzznz4w.js";import{th as Z0,uh as $O}from"./chunk-1cy4ab77.js";import{xh as BO}from"./chunk-7ajvrtb3.js";import{Ah as bb,yh as Ab}from"./chunk-mqfayxf7.js";import{Pi as Zb,Qi as G0,Ui as Wb}from"./chunk-qy6p8bpr.js";import{Zi as B}from"./chunk-b22ab7yw.js";import{Ej as k,Fj as A,Gj as m,Ij as U,Lj as pO}from"./chunk-4e4qtpca.js";import{Yj as Eb}from"./chunk-pbckwd41.js";import{ek as _}from"./chunk-px45q235.js";import{zk as O0}from"./chunk-a95jmx2j.js";import xb from"node:path";import I0 from"node:path";import Db from"node:fs";import WO from"node:os";import E from"node:path";import k0 from"yaml";var GO=`# Goal Completion Verifier
|
|
2
2
|
|
|
3
3
|
You are a fresh, independent, adversarial verifier. The parent Agent has claimed
|
|
4
4
|
that a persisted goal is complete. Your job is to refute that claim unless the
|
|
@@ -730,4 +730,4 @@ ${L.join(`
|
|
|
730
730
|
`)}
|
|
731
731
|
</${S}>`:"";return{content:I,files:[...b],references:b.map(a1),triggerPaths:[...O],contentBytes:Buffer.byteLength(I,"utf8"),provenanceSha256:bO(b.map(($)=>`${$.id}:${$.contentSha256}`).join(`
|
|
732
732
|
`))}}function X0(b,O){let S=O,L=[];for(let G=b.length-1;G>=0;G-=1){let I=b[G];if(!I)continue;let $=Buffer.byteLength(I.content,"utf8");if($>S)continue;L.push(I),S-=$}return L.reverse()}class y{projectRoot;definitions;byId;constructor(b,O=[]){this.projectRoot=b;this.projectRoot=ab(b),this.definitions=Object.freeze([...O].sort(rb).map((S)=>Object.freeze({...S}))),this.byId=new Map(this.definitions.map((S)=>[S.id,S]))}static empty(b){return new y(b)}list(){return this.definitions.map((b)=>({id:b.id,relativePath:b.relativePath,source:b.source,kind:b.kind,conditional:b.conditional,contentSha256:b.contentSha256}))}snapshot(){return new y(this.projectRoot,this.definitions.map((b)=>({...b,patterns:b.patterns?[...b.patterns]:void 0})))}staticRules(b,O=p1){if(this.definitions.length===0)return Ob([],[],"project-instructions");let S=this.relativeSourcePath(b),L=this.definitions.filter((G)=>!G.conditional&&eb(G.scopeDirectory,S));return Ob(X0(L,O),[],"project-instructions")}contextualRules(b,O,S,L=c1){if(this.definitions.length===0)return Ob([],[],"contextual-project-instructions");let G=this.relativeSourcePath(b),I=[...new Set(O.map((q)=>OO(W.relative(this.projectRoot,ab(q)))).filter(SO))].sort(),$=new Map;for(let q of I)for(let K of this.definitions){if(S.has(K.id))continue;if(!eb(K.scopeDirectory,q))continue;if(K.conditional){let Q=W.posix.relative(K.scopeDirectory||".",q);if(!K.patterns?.some((Z)=>V0(Z,{dot:!0})(Q)))continue}else if(eb(K.scopeDirectory,G))continue;$.set(K.id,K)}let T=X0([...$.values()].sort(rb),L);return Ob(T,I,"contextual-project-instructions")}hydrate(b){let O=b.map((S)=>{let L=this.byId.get(S.id);if(!L||L.contentSha256!==S.contentSha256||L.relativePath!==S.relativePath||L.source!==S.source)throw Error(`Project rule provenance mismatch: ${S.relativePath}`);return L});return Ob([...new Map(O.map((S)=>[S.id,S])).values()].sort(rb),[],"contextual-project-instructions")}relativeSourcePath(b){let O=OO(W.relative(this.projectRoot,ab(b)));if(O&&!SO(O))throw Error("Project instruction source is outside the catalog root");return O}}async function e1(b,O){let S=await R.lstat(O);if(!S.isFile()||S.isSymbolicLink())throw Error("Project rule must be a regular file");if(S.size>W0)throw Error(`Project rule exceeds ${W0} bytes`);let L=await R.realpath(O),G=OO(W.relative(b,L));if(!SO(G))throw Error("Project rule escapes its repository root");let I=await R.readFile(L,"utf8");if(M0(I))throw Error("Project rule contains hidden control characters");let $=d1(I),T=$.content.trim();if(!T)throw Error("Project rule content must not be empty");let q=i1($.data.paths),K=t1(G),Q=bO(JSON.stringify({relativePath:G,patterns:q??[],content:T}));return{id:`${K.source}:${bO(G).slice(0,20)}`,relativePath:G,source:K.source,kind:K.kind,scopeDirectory:K.scopeDirectory,priority:K.priority,conditional:Boolean(q),...q?{patterns:q}:{},content:T,contentSha256:Q}}async function x0(b,O){let S=o1(b);if(!O.projectTrusted)return y.empty(S);let L=await R.realpath(S),G=P1.stream([...s1],{cwd:L,absolute:!0,dot:!0,deep:u1,onlyFiles:!0,followSymbolicLinks:!1,unique:!0,ignore:[...n1]}),I=[];for await(let K of G)if(I.push(K.toString()),I.length>Y0)throw Error(`Project rule catalog exceeds ${Y0} files`);I.sort();let $=new Set(I.filter((K)=>W.basename(K)==="AGENTS.override.md").map((K)=>W.dirname(K))),T=[],q=0;for(let K of I){if(W.basename(K)==="AGENTS.md"&&$.has(W.dirname(K)))continue;try{let Q=await e1(L,K);if(q+=Buffer.byteLength(Q.content,"utf8"),q>A0)throw Error(`Project rule catalog exceeds ${A0} bytes`);T.push(Q)}catch(Q){l1.warn(`[ProjectRules] Ignoring rule: ${Q instanceof Error?Q.message:String(Q)}`)}}return new y(L,T)}var z0=32,Mb=64;class w0 extends Error{capacity=Mb;constructor(){super(`Workspace agent resource capacity is full (${Mb})`);this.name="WorkspaceAgentResourceCapacityError"}}var V=new Map,LO=0,_0=[];async function r1(b){let O=await _.getInstance().getStatus(b.workspaceRoot);b.communicationStyles=await tb(b.workspaceRoot,{projectTrusted:O.state==="trusted",plugins:b.plugins.getActive()})}function bS(b){let O={...b};for(let S of Object.values(Ab))O[S]=(b[S]??[]).map((L)=>({...L,matcher:L.matcher?{...L.matcher}:void 0,hooks:L.hooks.map((G)=>({...G}))}));return O}function b4(b){_0=[...new Set(b.map((O)=>xb.resolve(O)))]}function D0(b,O){q0(b,O.plugins),x.releaseInstance(b,O.subagents),v.releaseInstance({cwd:b},O.skills),X.releaseInstance(b,O.commands),w.releaseInstance(b,O.plugins)}function N0(b){D0(b.workspaceRoot,b)}function Sb(){while(V.size>z0){let b=!1;for(let[O,S]of V){if(!S.resources||S.users>0)continue;if(V.get(O)!==S)continue;V.delete(O),N0(S.resources),b=!0;break}if(!b)return}}function OS(b){setImmediate(()=>{b.users=Math.max(0,b.users-1),Sb()}).unref?.()}async function SS(b,O){let S=await _.getInstance().getStatus(b),L=Ib(b),G=s({cwd:b}),I=X.getInstance(b),$=e(b);try{if(L.getAllNames().length===0)L.loadFromStandardLocations(S.state==="trusted");await Promise.all([G.initialize(),I.isInitialized()?void 0:I.initialize(b),$.isInitialized()?void 0:$.initialize(b,[...O.cliPluginDirs??_0])]),Fb(b),await ob(b);let T=await tb(b,{projectTrusted:S.state==="trusted",plugins:$.getActive()}),q=await x0(b,{projectTrusted:S.state==="trusted"});return{workspaceRoot:b,subagents:L,skills:G,commands:I,plugins:$,communicationStyles:T,projectRules:q}}catch(T){throw D0(b,{subagents:L,skills:G,commands:I,plugins:$}),T}}function LS(b,O){let S={generation:LO,users:0};return S.promise=SS(b,O).then((L)=>{if(S.generation!==LO||V.get(b)!==S)return N0(L),L;return S.resources=L,Sb(),L},(L)=>{if(V.get(b)===S)V.delete(b);throw L}),V.set(b,S),S}async function C0(b,O){let S=xb.resolve(b),L=V.get(S);if(!L){if(Sb(),V.size>=Mb)throw new w0;L=LS(S,O)}else V.delete(S),V.set(S,L);L.users++;let G;try{G=await L.promise}catch(I){throw L.users=Math.max(0,L.users-1),Sb(),I}return{entry:L,resources:G}}async function h0(b,O){if(!O)return;Fb(b.workspaceRoot),await ob(b.workspaceRoot),await r1(b)}async function O4(b,O={}){let S=await C0(b,O);try{return await h0(S.resources,O.reconcilePlugins),S.resources}finally{OS(S.entry)}}async function S4(b,O,S={}){let L=await C0(b,S);try{return await h0(L.resources,S.reconcilePlugins),await O(L.resources)}finally{L.entry.users=Math.max(0,L.entry.users-1),Sb()}}function L4(){let b=0,O=0;for(let S of V.values()){if(S.resources)b++;O+=S.users}return{capacity:z0,activeCapacity:Mb,entries:V.size,initialized:b,inFlight:V.size-b,activeUsers:O}}function $4(b){let O="projectRoot"in b?b.projectRoot:b.workspaceRoot;return{projectRoot:xb.resolve(O),subagents:b.subagents.snapshot(),skills:b.skills.snapshot(),commands:b.commands.snapshot(),communicationStyles:b.communicationStyles?.snapshot()??$O.snapshot(),projectRules:b.projectRules?.snapshot()??y.empty(O),hooks:bS("hooks"in b&&b.hooks?b.hooks:bb.getInstance().getConfig(O))}}function G4(b){let O=xb.resolve(b);return{projectRoot:O,subagents:new x,skills:new v,commands:X.empty(O),hooks:{enabled:!1},communicationStyles:$O.snapshot(),projectRules:y.empty(O)}}function I4(){LO++;for(let[b,O]of V)if(O.resources)Fb(b);V.clear(),x.resetInstances(),v.resetInstance(),X.resetInstance(),w.resetInstance()}
|
|
733
|
-
export{qS as
|
|
733
|
+
export{qS as Dg,TS as Eg,KS as Fg,ZO as Gg,FS as Hg,BS as Ig,Ib as Jg,s as Kg,X as Lg,ub as Mg,Yb as Ng,w as Og,e as Pg,ob as Qg,Fb as Rg,y as Sg,z0 as Tg,Mb as Ug,w0 as Vg,r1 as Wg,b4 as Xg,O4 as Yg,S4 as Zg,L4 as _g,$4 as $g,G4 as ah,I4 as bh};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Wi as L,Zi as _}from"./chunk-b22ab7yw.js";import{execSync as F}from"child_process";import{existsSync as Q,readFileSync as O,realpathSync as b}from"fs";import*as V from"os";import*as H from"path";import{basename as J,isAbsolute as j,resolve as R}from"path";function G(z=_()){let q=z,M=f(q);return{workingDirectory:q,projectRoot:M,platform:`${V.platform()} (${V.arch()})`,nodeVersion:process.version,currentDate:new Date().toISOString().split("T")[0],homeDirectory:V.homedir()}}function Y(z,q){try{return F(q,{cwd:z,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()}catch{return null}}function v(z={}){let{includeGitSnapshot:q=!0,includeDirectoryListing:M=!0,workingDirectory:W}=z,B=G(W),$=Q(H.join(B.projectRoot,".git")),T=J(process.env.SHELL||"unknown"),A=["package.json","tsconfig.json","BLADE.md",".env.example"].filter((K)=>Q(H.join(B.projectRoot,K))).map((K)=>`- \`${H.join(B.projectRoot,K)}\``),N=`# Environment
|
|
2
2
|
You have been invoked in the following environment:
|
|
3
3
|
- Primary working directory: ${B.workingDirectory}
|
|
4
4
|
- Is a git repository: ${$?"true":"false"}
|
|
@@ -25,4 +25,4 @@ ${I.join(`
|
|
|
25
25
|
|
|
26
26
|
Project root directory listing:
|
|
27
27
|
${K}`}return N}function f(z){let q=z,M=null;while(q!==H.dirname(q)){if(Q(H.join(q,".git")))return q;if(Q(H.join(q,".blade")))return q;if(Q(H.join(q,".claude")))return q;if(!M&&Q(H.join(q,"package.json")))M=q;q=H.dirname(q)}return M??z}function x(z,q){let M=j(z)?z:R(q||process.cwd(),z),W;try{W=b(M)}catch{W=M}L(W)}
|
|
28
|
-
export{v as
|
|
28
|
+
export{v as Hf,f as If,x as Jf};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import{eg as G0}from"./chunk-5yyp6njq.js";import{Gh as Y0,Qi as l,Ti as Z0,ri as W}from"./chunk-yrr9mdjn.js";import{Yi as z0}from"./chunk-m30qwpe9.js";import{Pj as u}from"./chunk-0wcnkxe8.js";import{devtools as B0,subscribeWithSelector as q0}from"zustand/middleware";import{createStore as D0}from"zustand/vanilla";var a=[{id:"ayu-dark",label:"Ayu Dark",theme:{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)"}},tags:["dark","popular"]},{id:"dracula",label:"Dracula",theme:{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)"}},tags:["dark","popular"]},{id:"monokai",label:"Monokai",theme:{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)"}},tags:["dark","classic"]},{id:"nord",label:"Nord",theme:{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)"}},tags:["dark","minimal"]},{id:"solarized-light",label:"Solarized Light",theme:{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)"}},tags:["light"]},{id:"solarized-dark",label:"Solarized Dark",theme:{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)"}},tags:["dark"]},{id:"tokyo-night",label:"Tokyo Night",theme:{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)"}},tags:["dark","popular"]},{id:"github",label:"GitHub",theme:{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)"}},tags:["light","minimal"]},{id:"gruvbox",label:"Gruvbox",theme:{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)"}},tags:["dark","warm"]},{id:"one-dark",label:"One Dark",theme:{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)"}},tags:["dark","popular"]},{id:"catppuccin",label:"Catppuccin",theme:{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)"}},tags:["dark","pastel"]},{id:"rose-pine",label:"Rose Pine",theme:{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)"}},tags:["dark","elegant"]},{id:"kanagawa",label:"Kanagawa",theme:{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)"}},tags:["dark","japanese"]}];var o=a;var n={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"}},S={name:"default",colors:n,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)"}},V0={...S,name:"dark",colors:{...n,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 s{currentTheme=S;themes=new Map;constructor(){this.themes.set("default",S),this.themes.set("dark",V0);for(let f of o)this.themes.set(f.id,f.theme)}setTheme(f){let y=this.themes.get(f);if(y)this.currentTheme=y;else throw Error(`Theme '${f}' not found`)}getTheme(){return this.currentTheme}getAvailableThemes(){return Array.from(this.themes.keys())}getCurrentThemeName(){return this.currentTheme.name}getThemeByName(f){return this.themes.get(f)}hasTheme(f){return this.themes.has(f)}}var e=new s;var H0={initializationStatus:"idle",initializationError:null,activeModal:"none",sessionSelectorData:void 0,sessionHistoryViewerData:void 0,taskAttentionStatus:"idle",taskAttentionUnreadKeys:[],followUpQueue:null,followUpQueueOwner:null,followUpQueueMutation:{pending:!1,supersededVersions:[]},modelEditorTarget:null,tasks:[],awaitingSecondCtrlC:!1,reasoningEffort:"off",serviceTier:"auto",responseVerbosity:"auto",communicationStyle:"auto",subagentProgress:null,subagentProgresses:{},sideConversation:null,teams:[]},g=(f)=>({...H0,actions:{setInitializationStatus:(y)=>{f((b)=>({app:{...b.app,initializationStatus:y}}))},setInitializationError:(y)=>{f((b)=>({app:{...b.app,initializationError:y}}))},setActiveModal:(y)=>{f((b)=>({app:{...b.app,activeModal:y}}))},showSessionSelector:(y,b="resume")=>{f((x)=>({app:{...x.app,activeModal:"sessionSelector",sessionSelectorData:{intent:b,sessions:y},sessionHistoryViewerData:void 0}}))},showSessionHistoryViewer:(y,b="resume")=>{f((x)=>({app:{...x.app,activeModal:"sessionHistoryViewer",sessionSelectorData:void 0,sessionHistoryViewerData:{intent:b,session:y}}}))},showModelEditWizard:(y)=>{f((b)=>({app:{...b.app,activeModal:"modelEditWizard",modelEditorTarget:y}}))},closeModal:()=>{f((y)=>({app:{...y.app,activeModal:"none",sessionSelectorData:void 0,sessionHistoryViewerData:void 0,modelEditorTarget:null}}))},setTasks:(y)=>{f((b)=>({app:{...b.app,tasks:y}}))},updateTask:(y)=>{f((b)=>({app:{...b.app,tasks:b.app.tasks.map((x)=>x.id===y.id?y:x)}}))},setAwaitingSecondCtrlC:(y)=>{f((b)=>({app:{...b.app,awaitingSecondCtrlC:y}}))},projectTaskAttentionState:(y,b,x)=>{f((p)=>({app:{...p.app,taskAttentionStatus:y,taskAttentionUnreadKeys:[...b],sessionSelectorData:y==="ready"&&p.app.activeModal==="sessionSelector"&&p.app.sessionSelectorData?{...p.app.sessionSelectorData,sessions:[...x]}:p.app.sessionSelectorData}}))},projectFollowUpQueue:(y,b)=>{f((x)=>{let p=[x.session.workspaceRoot,x.session.sessionId,""].join("\x00");if(b!==void 0&&!b.startsWith(p))return x;if(b!==void 0&&x.app.followUpQueueOwner!==null&&x.app.followUpQueueOwner!==b)return x;let h=x.app.followUpQueueMutation.supersededVersions??[];if(h.includes(y.version))return x;let F=x.app.followUpQueue&&x.app.followUpQueue.version!==y.version?[...h,x.app.followUpQueue.version].slice(-16):h;return{app:{...x.app,followUpQueue:y,followUpQueueOwner:b??x.app.followUpQueueOwner,followUpQueueMutation:{pending:x.app.followUpQueueMutation.pending,...x.app.followUpQueueMutation.messageId?{messageId:x.app.followUpQueueMutation.messageId}:{},supersededVersions:F}},command:{...x.command,followUpPresentations:Object.fromEntries(Object.entries(x.command.followUpPresentations).filter(([z])=>y.items.some((G)=>G.id===z)))}}})},claimFollowUpQueueOwner:(y)=>{f((b)=>{let x=[b.session.workspaceRoot,b.session.sessionId,""].join("\x00");if(!y.startsWith(x))return b;if(b.app.followUpQueueOwner===y)return b;return{app:{...b.app,followUpQueue:null,followUpQueueOwner:y,followUpQueueMutation:{pending:!1,supersededVersions:[]}},command:{...b.command,followUpPresentations:{}}}})},setFollowUpQueueMutation:(y,b)=>{f((x)=>{let p=[x.session.workspaceRoot,x.session.sessionId,""].join("\x00");if(b!==void 0&&!b.startsWith(p))return x;if(b!==void 0&&x.app.followUpQueueOwner!==null&&x.app.followUpQueueOwner!==b)return x;return{app:{...x.app,followUpQueueMutation:{...y,supersededVersions:y.supersededVersions??x.app.followUpQueueMutation.supersededVersions}}}})},clearFollowUpQueue:(y)=>{f((b)=>{if(y!==void 0&&b.app.followUpQueueOwner!==y)return b;return{app:{...b.app,followUpQueue:null,followUpQueueOwner:null,followUpQueueMutation:{pending:!1,supersededVersions:[]}},command:{...b.command,followUpPresentations:{}}}})},setReasoningEffort:(y)=>{f((b)=>({app:{...b.app,reasoningEffort:y}}))},setServiceTier:(y)=>{f((b)=>({app:{...b.app,serviceTier:y}}))},setResponseVerbosity:(y)=>{f((b)=>({app:{...b.app,responseVerbosity:y}}))},setCommunicationStyle:(y)=>{f((b)=>({app:{...b.app,communicationStyle:y}}))},setThinkingModeEnabled:(y)=>{f((b)=>({app:{...b.app,reasoningEffort:y?"auto":"off"}}))},toggleThinkingMode:()=>{f((y)=>({app:{...y.app,reasoningEffort:y.app.reasoningEffort==="off"?"auto":"off"}}))},startSubagentProgress:(y,b,x)=>{f((p)=>({app:{...p.app,subagentProgresses:{...p.app.subagentProgresses,[y]:{id:y,type:b,description:x,status:"running",startTime:Date.now()}},subagentProgress:{id:y,type:b,description:x,status:"running",startTime:Date.now()}}}))},updateSubagentTool:(y,b)=>{f((x)=>{let p=x.app.subagentProgresses[y];if(!p)return x;let h={...p,currentTool:b};return{app:{...x.app,subagentProgresses:{...x.app.subagentProgresses,[y]:h},subagentProgress:x.app.subagentProgress?.id===y?h:x.app.subagentProgress}}})},completeSubagentProgress:(y,b,x)=>{f((p)=>{let h=p.app.subagentProgresses[y];if(!h)return p;let F=x?.trim(),z={...h,status:b?"completed":"failed",currentTool:void 0,...!b&&F?{terminalSummary:F.slice(0,200)}:{}};return{app:{...p.app,subagentProgresses:{...p.app.subagentProgresses,[y]:z},subagentProgress:p.app.subagentProgress?.id===y?z:p.app.subagentProgress}}}),setTimeout(()=>{f((p)=>{let h=p.app.subagentProgresses[y];if(!h||h.status==="running")return p;let F={...p.app.subagentProgresses};delete F[y];let z=Object.values(F);return{app:{...p.app,subagentProgresses:F,subagentProgress:p.app.subagentProgress?.id===y?z[z.length-1]??null:p.app.subagentProgress}}})},1500)},startSideConversation:(y,b)=>{f((x)=>({app:{...x.app,sideConversation:{requestId:y,question:b,status:"loading"}}}))},completeSideConversation:(y,b)=>{f((x)=>{if(x.app.sideConversation?.requestId!==y)return x;return{app:{...x.app,sideConversation:{requestId:y,question:x.app.sideConversation.question,status:"completed",response:b.response,durationMs:b.durationMs}}}})},failSideConversation:(y,b)=>{f((x)=>{if(x.app.sideConversation?.requestId!==y)return x;return{app:{...x.app,sideConversation:{requestId:y,question:x.app.sideConversation.question,status:"error",error:b}}}})},dismissSideConversation:()=>{f((y)=>({app:{...y.app,sideConversation:null}}))},setTeams:(y)=>{f((b)=>({app:{...b.app,teams:y}}))}}});var U0={isProcessing:!1,abortController:null,followUpPresentations:{},recoveredSteeringCount:0},T=(f,y)=>({...U0,actions:{setProcessing:(b)=>{f((x)=>({command:{...x.command,isProcessing:b},...!b?{session:{...x.session,providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,providerRecovery:null,turnActivity:null,actionStationarity:null}}:{}}))},createAbortController:()=>{let b=y().command.abortController;if(b&&!b.signal.aborted)b.abort("interrupted-by-new-command");let x=new AbortController;return f((p)=>({command:{...p.command,abortController:x}})),x},getAbortController:()=>{return y().command.abortController},clearAbortController:(b)=>{let x=y().command.abortController;if(b!==void 0&&x!==b)return;f((p)=>({command:{...p.command,abortController:null}}))},abort:(b)=>{let{abortController:x}=y().command;if(x&&!x.signal.aborted)x.abort(b??"user-cancel");f((p)=>({command:{...p.command,isProcessing:!1},session:{...p.session,providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,providerRecovery:null,turnActivity:null,actionStationarity:null}}))},rememberFollowUpPresentation:(b,x)=>{f((p)=>({command:{...p.command,followUpPresentations:Object.fromEntries([...Object.entries(p.command.followUpPresentations),[b,x]].slice(-20))}}))},takeFollowUpPresentation:(b)=>{let x=y().command.followUpPresentations[b];if(!x)return;return f((p)=>({command:{...p.command,followUpPresentations:Object.fromEntries(Object.entries(p.command.followUpPresentations).filter(([h])=>h!==b))}})),x},clearFollowUpPresentations:()=>{f((b)=>({command:{...b.command,followUpPresentations:{}}}))},setRecoveredSteeringCount:(b)=>{f((x)=>({command:{...x.command,recoveredSteeringCount:Math.max(0,b)}}))}}});var j0={config:null},C=(f,y)=>({...j0,actions:{setConfig:(b)=>{u().configureModelProviders(b.modelProviders,b.models),f((x)=>({config:{...x.config,config:b}}))},updateConfig:(b)=>{let x=y().config.config;if(!x)throw Error(`[ConfigSlice] Config not initialized. Cannot update: ${JSON.stringify(b)}`);let p={...x,...b};if(b.modelProviders||b.models)u().configureModelProviders(p.modelProviders,p.models);f((h)=>({config:{...h.config,config:p}}))}}});var _0={currentFocus:"main-input",previousFocus:null},v=(f)=>({..._0,actions:{setFocus:(y)=>{f((b)=>({focus:{...b.focus,currentFocus:y,previousFocus:b.focus.currentFocus}}))},restorePreviousFocus:()=>{f((y)=>({focus:{...y.focus,currentFocus:y.focus.previousFocus||"main-input",previousFocus:null}}))}}});function I(f,y,b,x){let p=f.messages.find((F)=>F.id===y);if(p)return p;let h={id:y,role:b,content:"",timestamp:x};return f.messages.push(h),h}function t(f,y){let b=Date.parse(y.timestamp)||Date.now();switch(y.type){case"message_created":return I(f,y.data.messageId,y.data.role,b),f;case"part_created":case"part_updated":{let{messageId:x,partType:p,payload:h,partId:F}=y.data,z=f.messages.find((G)=>G.id===x)??I(f,x,"assistant",b);if(p==="text"){let G=h.text??"";f.streamingText.delete(F),z.content=G}else if(p==="image")z.content=z.content?`${z.content}
|
|
1
|
+
import{fg as G0}from"./chunk-x6k5ye1z.js";import{Hh as Y0,Ri as l,Ui as Z0,si as W}from"./chunk-qy6p8bpr.js";import{Zi as z0}from"./chunk-b22ab7yw.js";import{Qj as u}from"./chunk-5s2x98rx.js";import{devtools as B0,subscribeWithSelector as q0}from"zustand/middleware";import{createStore as D0}from"zustand/vanilla";var o=[{id:"ayu-dark",label:"Ayu Dark",theme:{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)"}},tags:["dark","popular"]},{id:"dracula",label:"Dracula",theme:{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)"}},tags:["dark","popular"]},{id:"monokai",label:"Monokai",theme:{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)"}},tags:["dark","classic"]},{id:"nord",label:"Nord",theme:{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)"}},tags:["dark","minimal"]},{id:"solarized-light",label:"Solarized Light",theme:{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)"}},tags:["light"]},{id:"solarized-dark",label:"Solarized Dark",theme:{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)"}},tags:["dark"]},{id:"tokyo-night",label:"Tokyo Night",theme:{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)"}},tags:["dark","popular"]},{id:"github",label:"GitHub",theme:{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)"}},tags:["light","minimal"]},{id:"gruvbox",label:"Gruvbox",theme:{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)"}},tags:["dark","warm"]},{id:"one-dark",label:"One Dark",theme:{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)"}},tags:["dark","popular"]},{id:"catppuccin",label:"Catppuccin",theme:{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)"}},tags:["dark","pastel"]},{id:"rose-pine",label:"Rose Pine",theme:{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)"}},tags:["dark","elegant"]},{id:"kanagawa",label:"Kanagawa",theme:{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)"}},tags:["dark","japanese"]}];var a=o;var n={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"}},S={name:"default",colors:n,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)"}},V0={...S,name:"dark",colors:{...n,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 s{currentTheme=S;themes=new Map;constructor(){this.themes.set("default",S),this.themes.set("dark",V0);for(let f of a)this.themes.set(f.id,f.theme)}setTheme(f){let y=this.themes.get(f);if(y)this.currentTheme=y;else throw Error(`Theme '${f}' not found`)}getTheme(){return this.currentTheme}getAvailableThemes(){return Array.from(this.themes.keys())}getCurrentThemeName(){return this.currentTheme.name}getThemeByName(f){return this.themes.get(f)}hasTheme(f){return this.themes.has(f)}}var e=new s;var H0={initializationStatus:"idle",initializationError:null,activeModal:"none",sessionSelectorData:void 0,sessionHistoryViewerData:void 0,taskAttentionStatus:"idle",taskAttentionUnreadKeys:[],followUpQueue:null,followUpQueueOwner:null,followUpQueueMutation:{pending:!1,supersededVersions:[]},modelEditorTarget:null,tasks:[],awaitingSecondCtrlC:!1,reasoningEffort:"off",serviceTier:"auto",responseVerbosity:"auto",communicationStyle:"auto",subagentProgress:null,subagentProgresses:{},sideConversation:null,teams:[]},g=(f)=>({...H0,actions:{setInitializationStatus:(y)=>{f((b)=>({app:{...b.app,initializationStatus:y}}))},setInitializationError:(y)=>{f((b)=>({app:{...b.app,initializationError:y}}))},setActiveModal:(y)=>{f((b)=>({app:{...b.app,activeModal:y}}))},showSessionSelector:(y,b="resume")=>{f((x)=>({app:{...x.app,activeModal:"sessionSelector",sessionSelectorData:{intent:b,sessions:y},sessionHistoryViewerData:void 0}}))},showSessionHistoryViewer:(y,b="resume")=>{f((x)=>({app:{...x.app,activeModal:"sessionHistoryViewer",sessionSelectorData:void 0,sessionHistoryViewerData:{intent:b,session:y}}}))},showModelEditWizard:(y)=>{f((b)=>({app:{...b.app,activeModal:"modelEditWizard",modelEditorTarget:y}}))},closeModal:()=>{f((y)=>({app:{...y.app,activeModal:"none",sessionSelectorData:void 0,sessionHistoryViewerData:void 0,modelEditorTarget:null}}))},setTasks:(y)=>{f((b)=>({app:{...b.app,tasks:y}}))},updateTask:(y)=>{f((b)=>({app:{...b.app,tasks:b.app.tasks.map((x)=>x.id===y.id?y:x)}}))},setAwaitingSecondCtrlC:(y)=>{f((b)=>({app:{...b.app,awaitingSecondCtrlC:y}}))},projectTaskAttentionState:(y,b,x)=>{f((p)=>({app:{...p.app,taskAttentionStatus:y,taskAttentionUnreadKeys:[...b],sessionSelectorData:y==="ready"&&p.app.activeModal==="sessionSelector"&&p.app.sessionSelectorData?{...p.app.sessionSelectorData,sessions:[...x]}:p.app.sessionSelectorData}}))},projectFollowUpQueue:(y,b)=>{f((x)=>{let p=[x.session.workspaceRoot,x.session.sessionId,""].join("\x00");if(b!==void 0&&!b.startsWith(p))return x;if(b!==void 0&&x.app.followUpQueueOwner!==null&&x.app.followUpQueueOwner!==b)return x;let h=x.app.followUpQueueMutation.supersededVersions??[];if(h.includes(y.version))return x;let F=x.app.followUpQueue&&x.app.followUpQueue.version!==y.version?[...h,x.app.followUpQueue.version].slice(-16):h;return{app:{...x.app,followUpQueue:y,followUpQueueOwner:b??x.app.followUpQueueOwner,followUpQueueMutation:{pending:x.app.followUpQueueMutation.pending,...x.app.followUpQueueMutation.messageId?{messageId:x.app.followUpQueueMutation.messageId}:{},supersededVersions:F}},command:{...x.command,followUpPresentations:Object.fromEntries(Object.entries(x.command.followUpPresentations).filter(([z])=>y.items.some((G)=>G.id===z)))}}})},claimFollowUpQueueOwner:(y)=>{f((b)=>{let x=[b.session.workspaceRoot,b.session.sessionId,""].join("\x00");if(!y.startsWith(x))return b;if(b.app.followUpQueueOwner===y)return b;return{app:{...b.app,followUpQueue:null,followUpQueueOwner:y,followUpQueueMutation:{pending:!1,supersededVersions:[]}},command:{...b.command,followUpPresentations:{}}}})},setFollowUpQueueMutation:(y,b)=>{f((x)=>{let p=[x.session.workspaceRoot,x.session.sessionId,""].join("\x00");if(b!==void 0&&!b.startsWith(p))return x;if(b!==void 0&&x.app.followUpQueueOwner!==null&&x.app.followUpQueueOwner!==b)return x;return{app:{...x.app,followUpQueueMutation:{...y,supersededVersions:y.supersededVersions??x.app.followUpQueueMutation.supersededVersions}}}})},clearFollowUpQueue:(y)=>{f((b)=>{if(y!==void 0&&b.app.followUpQueueOwner!==y)return b;return{app:{...b.app,followUpQueue:null,followUpQueueOwner:null,followUpQueueMutation:{pending:!1,supersededVersions:[]}},command:{...b.command,followUpPresentations:{}}}})},setReasoningEffort:(y)=>{f((b)=>({app:{...b.app,reasoningEffort:y}}))},setServiceTier:(y)=>{f((b)=>({app:{...b.app,serviceTier:y}}))},setResponseVerbosity:(y)=>{f((b)=>({app:{...b.app,responseVerbosity:y}}))},setCommunicationStyle:(y)=>{f((b)=>({app:{...b.app,communicationStyle:y}}))},setThinkingModeEnabled:(y)=>{f((b)=>({app:{...b.app,reasoningEffort:y?"auto":"off"}}))},toggleThinkingMode:()=>{f((y)=>({app:{...y.app,reasoningEffort:y.app.reasoningEffort==="off"?"auto":"off"}}))},startSubagentProgress:(y,b,x)=>{f((p)=>({app:{...p.app,subagentProgresses:{...p.app.subagentProgresses,[y]:{id:y,type:b,description:x,status:"running",startTime:Date.now()}},subagentProgress:{id:y,type:b,description:x,status:"running",startTime:Date.now()}}}))},updateSubagentTool:(y,b)=>{f((x)=>{let p=x.app.subagentProgresses[y];if(!p)return x;let h={...p,currentTool:b};return{app:{...x.app,subagentProgresses:{...x.app.subagentProgresses,[y]:h},subagentProgress:x.app.subagentProgress?.id===y?h:x.app.subagentProgress}}})},completeSubagentProgress:(y,b,x)=>{f((p)=>{let h=p.app.subagentProgresses[y];if(!h)return p;let F=x?.trim(),z={...h,status:b?"completed":"failed",currentTool:void 0,...!b&&F?{terminalSummary:F.slice(0,200)}:{}};return{app:{...p.app,subagentProgresses:{...p.app.subagentProgresses,[y]:z},subagentProgress:p.app.subagentProgress?.id===y?z:p.app.subagentProgress}}}),setTimeout(()=>{f((p)=>{let h=p.app.subagentProgresses[y];if(!h||h.status==="running")return p;let F={...p.app.subagentProgresses};delete F[y];let z=Object.values(F);return{app:{...p.app,subagentProgresses:F,subagentProgress:p.app.subagentProgress?.id===y?z[z.length-1]??null:p.app.subagentProgress}}})},1500)},startSideConversation:(y,b)=>{f((x)=>({app:{...x.app,sideConversation:{requestId:y,question:b,status:"loading"}}}))},completeSideConversation:(y,b)=>{f((x)=>{if(x.app.sideConversation?.requestId!==y)return x;return{app:{...x.app,sideConversation:{requestId:y,question:x.app.sideConversation.question,status:"completed",response:b.response,durationMs:b.durationMs}}}})},failSideConversation:(y,b)=>{f((x)=>{if(x.app.sideConversation?.requestId!==y)return x;return{app:{...x.app,sideConversation:{requestId:y,question:x.app.sideConversation.question,status:"error",error:b}}}})},dismissSideConversation:()=>{f((y)=>({app:{...y.app,sideConversation:null}}))},setTeams:(y)=>{f((b)=>({app:{...b.app,teams:y}}))}}});var U0={isProcessing:!1,abortController:null,followUpPresentations:{},recoveredSteeringCount:0},T=(f,y)=>({...U0,actions:{setProcessing:(b)=>{f((x)=>({command:{...x.command,isProcessing:b},...!b?{session:{...x.session,providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,providerRecovery:null,turnActivity:null,actionStationarity:null}}:{}}))},createAbortController:()=>{let b=y().command.abortController;if(b&&!b.signal.aborted)b.abort("interrupted-by-new-command");let x=new AbortController;return f((p)=>({command:{...p.command,abortController:x}})),x},getAbortController:()=>{return y().command.abortController},clearAbortController:(b)=>{let x=y().command.abortController;if(b!==void 0&&x!==b)return;f((p)=>({command:{...p.command,abortController:null}}))},abort:(b)=>{let{abortController:x}=y().command;if(x&&!x.signal.aborted)x.abort(b??"user-cancel");f((p)=>({command:{...p.command,isProcessing:!1},session:{...p.session,providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,providerRecovery:null,turnActivity:null,actionStationarity:null}}))},rememberFollowUpPresentation:(b,x)=>{f((p)=>({command:{...p.command,followUpPresentations:Object.fromEntries([...Object.entries(p.command.followUpPresentations),[b,x]].slice(-20))}}))},takeFollowUpPresentation:(b)=>{let x=y().command.followUpPresentations[b];if(!x)return;return f((p)=>({command:{...p.command,followUpPresentations:Object.fromEntries(Object.entries(p.command.followUpPresentations).filter(([h])=>h!==b))}})),x},clearFollowUpPresentations:()=>{f((b)=>({command:{...b.command,followUpPresentations:{}}}))},setRecoveredSteeringCount:(b)=>{f((x)=>({command:{...x.command,recoveredSteeringCount:Math.max(0,b)}}))}}});var j0={config:null},C=(f,y)=>({...j0,actions:{setConfig:(b)=>{u().configureModelProviders(b.modelProviders,b.models),f((x)=>({config:{...x.config,config:b}}))},updateConfig:(b)=>{let x=y().config.config;if(!x)throw Error(`[ConfigSlice] Config not initialized. Cannot update: ${JSON.stringify(b)}`);let p={...x,...b};if(b.modelProviders||b.models)u().configureModelProviders(p.modelProviders,p.models);f((h)=>({config:{...h.config,config:p}}))}}});var _0={currentFocus:"main-input",previousFocus:null},v=(f)=>({..._0,actions:{setFocus:(y)=>{f((b)=>({focus:{...b.focus,currentFocus:y,previousFocus:b.focus.currentFocus}}))},restorePreviousFocus:()=>{f((y)=>({focus:{...y.focus,currentFocus:y.focus.previousFocus||"main-input",previousFocus:null}}))}}});function I(f,y,b,x){let p=f.messages.find((F)=>F.id===y);if(p)return p;let h={id:y,role:b,content:"",timestamp:x};return f.messages.push(h),h}function t(f,y){let b=Date.parse(y.timestamp)||Date.now();switch(y.type){case"message_created":{let x=I(f,y.data.messageId,y.data.role,b),p=y.data.metadata;if(p&&typeof p==="object"&&!Array.isArray(p))x.metadata=p;return f}case"part_created":case"part_updated":{let{messageId:x,partType:p,payload:h,partId:F}=y.data,z=f.messages.find((G)=>G.id===x)??I(f,x,"assistant",b);if(p==="text"){let G=h.text??"";f.streamingText.delete(F),z.content=G}else if(p==="image")z.content=z.content?`${z.content}
|
|
2
2
|
[Image]`:"[Image]";return f}default:return f}}function x0(f,y){if(y.channel!=="content")return f;let b=f.messages.find((h)=>h.id===y.messageId)??I(f,y.messageId,"assistant",Date.now()),p=(f.streamingText.get(y.partId)?.text??"")+y.delta;return f.streamingText.set(y.partId,{messageId:y.messageId,text:p}),b.content=p,f}function b0(f,y,b,x=0,p=0,h){let F=u(),z=h?F.models.getModel(h,f):F.models.getModels().find(($)=>$.id===f);if(!z)return 0;let G=z.cost,Z=y/1e6*G.input+b/1e6*G.output+x/1e6*G.cacheRead+p/1e6*G.cacheWrite;return Math.round(Z*1e6)/1e6}var J={codeBlock:/^```(\w+)?\s*$/,heading:/^ *(#{1,4}) +(.+)/,blockquote:/^(>+)\s?(.*)/,ulItem:/^([ \t]*)([-*+]) +(.+)/,olItem:/^([ \t]*)(\d+)\. +(.+)/,hr:/^ *([-*_] *){3,} *$/,table:/^\|(.+)\|$/,tableSeparator:/^\|[\s]*:?-+:?[\s]*(\|[\s]*:?-+:?[\s]*)+\|?$/,diffStart:/^<<<DIFF>>>$/,diffEnd:/^<<<\/DIFF>>>$/,commandMessage:/<command-message>(.*?)<\/command-message>/};function M0(f){let y=[],b=f.split(/\r?\n/),x=!1,p=[],h=null,F=0,z=!1,G=[],Z=[],$=!1,U=[],w=!1,Y=[],Q=0,X=!0;for(let j=0;j<b.length;j++){let H=b[j];if($){if(H.match(J.diffEnd)){try{let _=JSON.parse(U.join(`
|
|
3
3
|
`));y.push({type:"diff",content:"",diffData:{patch:_.patch,startLine:_.startLine,matchLine:_.matchLine}})}catch(_){y.push({type:"text",content:U.join(`
|
|
4
4
|
`)})}$=!1,U=[],X=!1;continue}U.push(H);continue}if(H.match(J.diffStart)){$=!0,U=[],X=!1;continue}if(x){let _=H.match(J.codeBlock),O=H.trim()==="```";if(_&&_[1])F++,p.push(H);else if(O)if(F>0)F--,p.push(H);else{let $0=p.join(`
|
|
5
|
-
`);y.push({type:"code",content:$0,language:h||void 0}),x=!1,p=[],h=null,F=0,X=!1}else p.push(H);continue}let
|
|
5
|
+
`);y.push({type:"code",content:$0,language:h||void 0}),x=!1,p=[],h=null,F=0,X=!1}else p.push(H);continue}let P=H.match(J.codeBlock);if(P){x=!0,h=P[1]||null,F=0,X=!1;continue}let q=H.match(J.table),r=H.match(J.tableSeparator);if(q&&!z){if(j+1<b.length){if(b[j+1].match(J.tableSeparator)){z=!0,G=q[1].split("|").map((O)=>O.trim()).filter((O)=>O.length>0),Z=[],X=!1;continue}}}if(z&&r)continue;if(z&&q){let _=q[1].split("|").map((O)=>O.trim()).filter((O)=>O.length>0);while(_.length<G.length)_.push("");if(_.length>G.length)_.length=G.length;Z.push(_);continue}if(z&&!q){if(G.length>0&&Z.length>0)y.push({type:"table",content:"",tableData:{headers:G,rows:Z}});z=!1,G=[],Z=[]}let N=H.match(J.blockquote);if(N){let _=N[1].length,O=N[2]||"";if(w&&_===Q)Y.push(O);else{if(w)y.push({type:"blockquote",content:Y.join(`
|
|
6
6
|
`),blockquoteLevel:Q,blockquoteLines:[...Y]});w=!0,Q=_,Y=[O]}X=!1;continue}if(w)y.push({type:"blockquote",content:Y.join(`
|
|
7
|
-
`),blockquoteLevel:Q,blockquoteLines:[...Y]}),w=!1,Y=[],Q=0;let R=H.match(J.heading);if(R){y.push({type:"heading",content:R[2],level:R[1].length}),X=!1;continue}let
|
|
7
|
+
`),blockquoteLevel:Q,blockquoteLines:[...Y]}),w=!1,Y=[],Q=0;let R=H.match(J.heading);if(R){y.push({type:"heading",content:R[2],level:R[1].length}),X=!1;continue}let m=H.match(J.ulItem);if(m){y.push({type:"list",content:m[3],listType:"ul",marker:m[2],indentation:m[1].length}),X=!1;continue}let k=H.match(J.olItem);if(k){y.push({type:"list",content:k[3],listType:"ol",marker:k[2],indentation:k[1].length}),X=!1;continue}if(H.match(J.hr)){y.push({type:"hr",content:""}),X=!1;continue}if(H.trim().length===0){if(!X)y.push({type:"empty",content:""}),X=!0;continue}let i=H.match(J.commandMessage);if(i){y.push({type:"command-message",content:i[1]}),X=!1;continue}y.push({type:"text",content:H}),X=!1}if(x){let j=p.join(`
|
|
8
8
|
`);y.push({type:"code",content:j,language:h||void 0})}if(z&&G.length>0&&Z.length>0)y.push({type:"table",content:"",tableData:{headers:G,rows:Z}});if(w&&Y.length>0)y.push({type:"blockquote",content:Y.join(`
|
|
9
9
|
`),blockquoteLevel:Q,blockquoteLines:[...Y]});while(y.length>0&&y[y.length-1].type==="empty")y.pop();return y}var B=new Map;function W0(){return{inCodeBlock:!1,codeBlockContent:[],codeBlockLang:null,codeBlockDepth:0,inTable:!1,tableHeaders:[],tableRows:[],inDiff:!1,diffContent:[],inBlockquote:!1,blockquoteLines:[],blockquoteLevel:0,lastLineEmpty:!0,pendingTableHeader:null}}function K0(f){let y=B.get(f);if(y)return y;let b={state:W0(),blocks:[],pendingLine:"",finalized:!1};return B.set(f,b),b}function f0(f){return f.endsWith("\r")?f.slice(0,-1):f}function y0(f,y){if(f.tableHeaders.length>0&&f.tableRows.length>0)y.push({type:"table",content:"",tableData:{headers:f.tableHeaders,rows:f.tableRows}});f.inTable=!1,f.tableHeaders=[],f.tableRows=[]}function M(f,y){if(f.blockquoteLines.length>0)y.push({type:"blockquote",content:f.blockquoteLines.join(`
|
|
10
10
|
`),blockquoteLevel:f.blockquoteLevel,blockquoteLines:[...f.blockquoteLines]});f.inBlockquote=!1,f.blockquoteLines=[],f.blockquoteLevel=0}function p0(f,y){let b=f.codeBlockContent.join(`
|
|
@@ -13,8 +13,8 @@ import{eg as G0}from"./chunk-5yyp6njq.js";import{Gh as Y0,Qi as l,Ti as Z0,ri as
|
|
|
13
13
|
`)})}x.inDiff=!1,x.diffContent=[],x.lastLineEmpty=!1;return}x.diffContent.push(f);return}if(f.match(J.diffStart)){x.inDiff=!0,x.diffContent=[],x.lastLineEmpty=!1;return}if(x.inCodeBlock){let Q=f.match(J.codeBlock),X=f.trim()==="```";if(Q&&Q[1])x.codeBlockDepth++,x.codeBlockContent.push(f);else if(X)if(x.codeBlockDepth>0)x.codeBlockDepth--,x.codeBlockContent.push(f);else p0(x,p);else x.codeBlockContent.push(f);return}let h=f.match(J.codeBlock);if(h){x.inCodeBlock=!0,x.codeBlockLang=h[1]||null,x.codeBlockDepth=0,x.lastLineEmpty=!1;return}let F=f.match(J.table),z=f.match(J.tableSeparator);if(F&&!x.inTable){x.pendingTableHeader=f;return}if(x.inTable&&z)return;if(x.inTable&&F){let Q=F[1].split("|").map((X)=>X.trim()).filter((X)=>X.length>0);while(Q.length<x.tableHeaders.length)Q.push("");if(Q.length>x.tableHeaders.length)Q.length=x.tableHeaders.length;x.tableRows.push(Q);return}if(x.inTable&&!F){if(y0(x,p),b){c(f,y,!1);return}}let G=f.match(J.blockquote);if(G){let Q=G[1].length,X=G[2]||"";if(x.inBlockquote&&Q===x.blockquoteLevel)x.blockquoteLines.push(X);else{if(x.inBlockquote)M(x,p);x.inBlockquote=!0,x.blockquoteLevel=Q,x.blockquoteLines=[X]}x.lastLineEmpty=!1;return}if(x.inBlockquote)M(x,p);let Z=f.match(J.heading);if(Z){p.push({type:"heading",content:Z[2],level:Z[1].length}),x.lastLineEmpty=!1;return}let $=f.match(J.ulItem);if($){p.push({type:"list",content:$[3],listType:"ul",marker:$[2],indentation:$[1].length}),x.lastLineEmpty=!1;return}let U=f.match(J.olItem);if(U){p.push({type:"list",content:U[3],listType:"ol",marker:U[2],indentation:U[1].length}),x.lastLineEmpty=!1;return}if(f.match(J.hr)){p.push({type:"hr",content:""}),x.lastLineEmpty=!1;return}if(f.trim().length===0){if(!x.lastLineEmpty)p.push({type:"empty",content:""}),x.lastLineEmpty=!0;return}let Y=f.match(J.commandMessage);if(Y){p.push({type:"command-message",content:Y[1]}),x.lastLineEmpty=!1;return}p.push({type:"text",content:f}),x.lastLineEmpty=!1}function l0(f,y){if(!f||!y)return;let b=K0(f);if(b.finalized)return;let x=b.pendingLine+y,p=x.split(`
|
|
14
14
|
`),h=x.endsWith(`
|
|
15
15
|
`),F=h?p:p.slice(0,-1);b.pendingLine=h?"":p[p.length-1]??"";for(let z of F)c(f0(z),b)}function i0(f){let y=B.get(f);if(!y||y.finalized)return;if(y.pendingLine)c(f0(y.pendingLine),y),y.pendingLine="";if(y.state.pendingTableHeader!==null)y.blocks.push({type:"text",content:y.state.pendingTableHeader}),y.state.pendingTableHeader=null;if(y.state.inCodeBlock)p0(y.state,y.blocks);if(y.state.inTable)y0(y.state,y.blocks);if(y.state.inBlockquote)M(y.state,y.blocks);if(y.state.inDiff)y.blocks.push({type:"text",content:y.state.diffContent.join(`
|
|
16
|
-
`)}),y.state.inDiff=!1,y.state.diffContent=[];while(y.blocks.length>0&&y.blocks[y.blocks.length-1].type==="empty")y.blocks.pop();y.finalized=!0}function
|
|
17
|
-
`),Y=w.slice(0,-1).map(F),Q=F(w[w.length-1]??""),X=z;if(Y.length>0){if(X=[...z,...Y],X.length>h0){let j=X.length-h0;X=X.slice(j)}}return{session:{...h.session,currentStreamingMessageId:p,currentStreamingLines:X,currentStreamingTail:Q,currentStreamingLineCount:Z+Y.length,currentStreamingVersion:$+1,error:null}}}),p},finalizeStreamingMessage:(b,x)=>{let p=O0();f((h)=>{let F=h.session.currentStreamingMessageId,G=p.join("")+(b||""),Z=(h.session.currentThinkingContent||"")+(x||"");if(G.length>0){let $={id:F||`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:G,timestamp:Date.now(),thinkingContent:Z||void 0};return{session:{...h.session,messages:[...h.session.messages,$],currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,currentThinkingContent:null,finalizingStreamingMessageId:$.id}}}return{session:{...h.session,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,currentThinkingContent:null,finalizingStreamingMessageId:h.session.finalizingStreamingMessageId}}})},clearFinalizingStreamingMessageId:()=>{f((b)=>({session:{...b.session,finalizingStreamingMessageId:null}}))},discardStreamingMessage:()=>{
|
|
16
|
+
`)}),y.state.inDiff=!1,y.state.diffContent=[];while(y.blocks.length>0&&y.blocks[y.blocks.length-1].type==="empty")y.blocks.pop();y.finalized=!0}function o0(f){let y=B.get(f);if(!y||!y.finalized)return null;return y.blocks}function a0(f){let y=B.get(f);if(!y)return null;return y.blocks}function w0(f){let y=B.get(f);if(!y)return null;let b=[],x=y.state;if(x.inDiff)b.push("<<<DIFF>>>"),b.push(...x.diffContent);else if(x.inCodeBlock){let p=x.codeBlockLang?`\`\`\`${x.codeBlockLang}`:"```";b.push(p),b.push(...x.codeBlockContent)}else if(x.inTable){if(x.tableHeaders.length>0){b.push(`| ${x.tableHeaders.join(" | ")} |`),b.push(`| ${x.tableHeaders.map(()=>"---").join(" | ")} |`);for(let p of x.tableRows)b.push(`| ${p.join(" | ")} |`)}}else if(x.inBlockquote){let p=">".repeat(x.blockquoteLevel)+" ";for(let h of x.blockquoteLines)b.push(p+h)}else if(x.pendingTableHeader)b.push(x.pendingTableHeader);if(y.pendingLine)b.push(y.pendingLine);return b.length>0?b:null}function n0(f){let y=B.get(f);if(!y)return null;let b="text";if(y.state.inDiff)b="diff";else if(y.state.inCodeBlock)b="code";else if(y.state.inTable||y.state.pendingTableHeader)b="table";let x=w0(f);if(!x||x.length===0)return null;return{lines:x,mode:b}}function s0(f){B.delete(f)}function A(){B.clear()}var h0=2000,L=[];function O0(){let f=L;return L=[],f}var E={messages:[],streamingText:new Map};function u0(){E={messages:[],streamingText:new Map}}var Q0={inputTokens:0,outputTokens:0,totalTokens:0,maxContextTokens:0,totalInputTokens:0,totalOutputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,turnCount:0,estimatedCostUsd:0},F0={sessionId:G0("tui"),workspaceRoot:z0(),messages:[],restoredContextMessages:null,restoredVisibleMessageCount:0,isCompacting:!1,currentCommand:null,error:null,isActive:!0,tokenUsage:{...Q0},currentThinkingContent:null,thinkingExpanded:!1,clearCount:0,historyExpanded:!1,expandedMessageCount:100,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,finalizingStreamingMessageId:null,providerAdmission:null,providerCircuit:null,providerRetry:null,providerStall:null,providerRecovery:null,turnActivity:null,actionStationarity:null},d=(f,y)=>({...F0,actions:{addMessage:(b)=>{f((x)=>({session:{...x.session,messages:[...x.session.messages,b],error:null}}))},addUserMessage:(b)=>{let x={id:`user-${Date.now()}-${Math.random()}`,role:"user",content:b,timestamp:Date.now()};y().session.actions.addMessage(x)},addAssistantMessage:(b,x)=>{let p={id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:b,timestamp:Date.now(),thinkingContent:x};y().session.actions.addMessage(p)},replaceLastAssistantMessage:(b)=>{f((x)=>{let p=x.session.messages.findLastIndex((h)=>h.role==="assistant");if(p<0)return{session:{...x.session,messages:[...x.session.messages,{id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:b,timestamp:Date.now()}]}};return{session:{...x.session,messages:x.session.messages.map((h,F)=>F===p?{...h,content:b}:h)}}})},addAssistantMessageAndClearThinking:(b)=>{let x=y().session.currentThinkingContent,p={id:`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:b,timestamp:Date.now(),thinkingContent:x||void 0};f((h)=>({session:{...h.session,messages:[...h.session.messages,p],currentThinkingContent:null,error:null}}))},addToolMessage:(b,x)=>{let p={id:`tool-${Date.now()}-${Math.random()}`,role:"tool",content:b,timestamp:Date.now(),metadata:x};y().session.actions.addMessage(p)},setCompacting:(b)=>{f((x)=>({session:{...x.session,isCompacting:b}}))},setCommand:(b)=>{f((x)=>({session:{...x.session,currentCommand:b}}))},setError:(b)=>{f((x)=>({session:{...x.session,error:b}}))},clearMessages:()=>{A(),f((b)=>({session:{...b.session,messages:[],restoredContextMessages:null,restoredVisibleMessageCount:0,error:null,clearCount:b.session.clearCount+1}}))},setCompactedContext:(b)=>{f((x)=>({session:{...x.session,restoredContextMessages:[...b],restoredVisibleMessageCount:x.session.messages.length}}))},resetSession:()=>{A(),f((b)=>({session:{...b.session,...F0,sessionId:b.session.sessionId,isActive:!0},app:{...b.app,followUpQueue:null,followUpQueueOwner:null,followUpQueueMutation:{pending:!1,supersededVersions:[]}},command:{...b.command,followUpPresentations:{}}}))},restoreSession:(b,x,p,h)=>{A(),f((F)=>({session:{...F.session,sessionId:b,workspaceRoot:h??F.session.workspaceRoot,messages:x,restoredContextMessages:p??null,restoredVisibleMessageCount:p?x.length:0,error:null,isActive:!0},app:{...F.app,followUpQueue:null,followUpQueueOwner:null,followUpQueueMutation:{pending:!1,supersededVersions:[]}},command:{...F.command,followUpPresentations:{}}}))},updateTokenUsage:(b)=>{f((x)=>{let p=x.session.tokenUsage,{costUsd:h,scope:F,...z}=b,G=Math.max(0,b.inputTokens??0),Z=Math.max(0,b.outputTokens??0),$=Math.max(0,b.cacheReadTokens??0),U=Math.max(0,b.cacheWriteTokens??0),w=p.totalInputTokens+G,Y=p.totalOutputTokens+Z,Q=p.cacheReadTokens+$,X=p.cacheWriteTokens+U,j=x.config?.config,H=j?.models?.find((r)=>r.id===j.currentModelId),P=H?.model??"",q=h??b0(P,Math.max(0,G-$-U),Z,$,U,H?.provider);return{session:{...x.session,tokenUsage:{...p,...F==="auxiliary"?{}:z,totalInputTokens:w,totalOutputTokens:Y,cacheReadTokens:Q,cacheWriteTokens:X,estimatedCostUsd:p.estimatedCostUsd+Math.max(0,q)}}}})},resetContextUsage:()=>{f((b)=>({session:{...b.session,tokenUsage:{...b.session.tokenUsage,inputTokens:0,outputTokens:0,totalTokens:0}}}))},resetTokenUsage:()=>{f((b)=>({session:{...b.session,tokenUsage:{...Q0}}}))},setCurrentThinkingContent:(b)=>{if(y().session.currentThinkingContent===b)return;f((x)=>({session:{...x.session,currentThinkingContent:b}}))},appendThinkingContent:(b)=>{f((x)=>({session:{...x.session,currentThinkingContent:(x.session.currentThinkingContent||"")+b}}))},setThinkingExpanded:(b)=>{f((x)=>({session:{...x.session,thinkingExpanded:b}}))},toggleThinkingExpanded:()=>{f((b)=>({session:{...b.session,thinkingExpanded:!b.session.thinkingExpanded}}))},setHistoryExpanded:(b)=>{f((x)=>({session:{...x.session,historyExpanded:b}}))},toggleHistoryExpanded:()=>{f((b)=>({session:{...b.session,historyExpanded:!b.session.historyExpanded}}))},setExpandedMessageCount:(b)=>{f((x)=>({session:{...x.session,expandedMessageCount:b}}))},incrementClearCount:()=>{f((b)=>({session:{...b.session,clearCount:b.session.clearCount+1}}))},startStreamingAssistantMessage:()=>{let b=`assistant-${Date.now()}-${Math.random()}`,x={id:b,role:"assistant",content:"",timestamp:Date.now()};return L=[],f((p)=>({session:{...p.session,messages:[...p.session.messages,x],currentStreamingMessageId:b,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,error:null}})),b},appendAssistantContent:(b)=>{let x=y().session.currentStreamingMessageId,p=x??`assistant-${Date.now()}-${Math.random()}`;return L.push(b),f((h)=>{let F=(j)=>j.endsWith("\r")?j.slice(0,-1):j,z=x?h.session.currentStreamingLines:[],G=x?h.session.currentStreamingTail:"",Z=x?h.session.currentStreamingLineCount:0,$=x?h.session.currentStreamingVersion:0,w=(G+b).split(`
|
|
17
|
+
`),Y=w.slice(0,-1).map(F),Q=F(w[w.length-1]??""),X=z;if(Y.length>0){if(X=[...z,...Y],X.length>h0){let j=X.length-h0;X=X.slice(j)}}return{session:{...h.session,currentStreamingMessageId:p,currentStreamingLines:X,currentStreamingTail:Q,currentStreamingLineCount:Z+Y.length,currentStreamingVersion:$+1,error:null}}}),p},finalizeStreamingMessage:(b,x)=>{let p=O0();f((h)=>{let F=h.session.currentStreamingMessageId,G=p.join("")+(b||""),Z=(h.session.currentThinkingContent||"")+(x||"");if(G.length>0){let $={id:F||`assistant-${Date.now()}-${Math.random()}`,role:"assistant",content:G,timestamp:Date.now(),thinkingContent:Z||void 0};return{session:{...h.session,messages:[...h.session.messages,$],currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,currentThinkingContent:null,finalizingStreamingMessageId:$.id}}}return{session:{...h.session,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,currentThinkingContent:null,finalizingStreamingMessageId:h.session.finalizingStreamingMessageId}}})},clearFinalizingStreamingMessageId:()=>{f((b)=>({session:{...b.session,finalizingStreamingMessageId:null}}))},discardStreamingMessage:()=>{L=[],f((b)=>({session:{...b.session,currentStreamingMessageId:null,currentStreamingChunks:[],currentStreamingLines:[],currentStreamingTail:"",currentStreamingLineCount:0,currentStreamingVersion:0,finalizingStreamingMessageId:null}}))},setProviderAdmission:(b)=>{f((x)=>({session:{...x.session,providerAdmission:b}}))},setProviderCircuit:(b)=>{f((x)=>({session:{...x.session,providerCircuit:b}}))},setProviderRetry:(b)=>{f((x)=>({session:{...x.session,providerRetry:b}}))},setProviderStall:(b)=>{f((x)=>({session:{...x.session,providerStall:b}}))},setProviderRecovery:(b)=>{f((x)=>({session:{...x.session,providerRecovery:b}}))},setTurnActivity:(b)=>{f((x)=>({session:{...x.session,turnActivity:b}}))},setActionStationarity:(b)=>{f((x)=>({session:{...x.session,actionStationarity:b}}))},applyCommittedEvent:(b)=>{t(E,b),f((x)=>({session:{...x.session,messages:[...E.messages],error:null}}))},applyStreamingDelta:(b)=>{x0(E,b),f((x)=>({session:{...x.session,messages:[...E.messages]}}))},resetConversationProjection:()=>{u0()}}});var E0=D0()(B0(q0((...f)=>({session:d(...f),app:g(...f),config:C(...f),focus:v(...f),command:T(...f)})),{name:"BladeStore",enabled:!0})),V=()=>E0.getState(),_2=()=>V().session.actions,W2=()=>V().app.actions,K2=()=>V().session.messages,K=()=>V().config.config,D=null;async function w2(){if(K()!==null)return;if(D)return D;return D=(async()=>{try{let b=await Z0.getInstance().initialize();V().config.actions.setConfig(b)}catch(y){throw D=null,Error(`[FAIL] Store 未初始化且无法自动初始化
|
|
18
18
|
|
|
19
19
|
`+`原因: ${y instanceof Error?y.message:"未知错误"}
|
|
20
20
|
|
|
@@ -22,4 +22,4 @@ import{eg as G0}from"./chunk-5yyp6njq.js";import{Gh as Y0,Qi as l,Ti as Z0,ri as
|
|
|
22
22
|
`+`1. 配置文件格式正确 (~/.blade/config.json)
|
|
23
23
|
`+`2. 运行 blade 进行首次配置
|
|
24
24
|
`+"3. 配置文件权限正确")}finally{D=null}})(),D}var O2=()=>V().config.config?.models??[],u2=()=>{let f=K();if(!f)return;let y=f.currentModelId;return f.models.find((x)=>x.id===y)??f.models[0]},B2=(f)=>{let y=K();if(!y)return;return y.models.find((b)=>b.id===f)},q2=()=>V().config.config?.mcpServers??{},D2=()=>V().app.reasoningEffort!=="off",X0=()=>({setPermissionMode:async(f)=>{V().config.actions.updateConfig({permissionMode:f})},setTheme:async(f,y={})=>{try{e.setTheme(f)}catch{return}V().config.actions.updateConfig({codeTheme:f}),await W().save({codeTheme:f},{scope:"global",...y})},setLanguage:async(f,y={})=>{V().config.actions.updateConfig({language:f}),await W().save({language:f},{scope:"global",...y})},setDebug:async(f,y={})=>{V().config.actions.updateConfig({debug:f}),await W().save({debug:f},{scope:"global",...y})},setTemperature:async(f,y={})=>{V().config.actions.updateConfig({temperature:f}),await W().save({temperature:f},{scope:"global",...y})},updateConfig:async(f,y={})=>{let b=K();if(!b)throw Error("Config not initialized");let x={...b};V().config.actions.updateConfig(f);try{await W().save(f,y)}catch(p){throw V().config.actions.setConfig(x),p}},flush:async()=>{await W().flush()},appendPermissionAllowRule:async(f,y={})=>{let b=K();if(!b)throw Error("Config not initialized");let x=b.permissions?.allow||[];if(!x.includes(f)){let p=[...x,f];V().config.actions.updateConfig({permissions:{...b.permissions,allow:p}})}await W().appendPermissionRule(f,y)},appendLocalPermissionAllowRule:async(f,y={})=>{let b=K();if(!b)throw Error("Config not initialized");let x=b.permissions?.allow||[];if(!x.includes(f)){let p=[...x,f];V().config.actions.updateConfig({permissions:{...b.permissions,allow:p}})}await W().appendLocalPermissionRule(f,y)},setCurrentModel:async(f,y={})=>{let b=K();if(!b)throw Error("Config not initialized");if(!b.models.find((p)=>p.id===f))throw Error(`Model not found: ${f}`);V().config.actions.updateConfig({currentModelId:f}),await W().save({currentModelId:f},{scope:"global",...y})},addModel:async(f,y={})=>{let b=K();if(!b)throw Error("Config not initialized");let x="id"in f?f:{id:l(f,b.models),...f};if(b.models.find((z)=>z.provider===x.provider&&z.model===x.model))throw Error(`Model already configured: ${x.provider}/${x.model}`);let F={models:[...b.models,x]};if(b.models.length===0)F.currentModelId=x.id;return V().config.actions.updateConfig(F),await W().save(F,{scope:"global",...y}),x},addModelWithProvider:async(f,y,b={})=>{let x=K();if(!x)throw Error("Config not initialized");let p=f.provider;if(x.modelProviders[p])throw Error(`Model provider already configured: ${p}`);let h="id"in f?f:{id:l(f,x.models),...f};if(x.models.find(($)=>$.provider===p&&$.model===h.model))throw Error(`Model already configured: ${p}/${h.model}`);let z=x,G=[...x.models,h],Z={modelProviders:{...x.modelProviders,[p]:y},models:G};if(x.models.length===0)Z.currentModelId=h.id;u().registerModelProvider(p,y,[h.model]),V().config.actions.updateConfig(Z);try{return await W().save(Z,{scope:"global",...b}),h}catch($){throw V().config.actions.setConfig(z),u().configureModelProviders(z.modelProviders,z.models),$}},updateModelWithProvider:async(f,y,b,x={})=>{let p=K();if(!p)throw Error("Config not initialized");let h=y.provider;if(!h)throw Error("Model provider is required");if(p.modelProviders[h])throw Error(`Model provider already configured: ${h}`);let F=p.models.findIndex((U)=>U.id===f);if(F===-1)throw Error(`Model not found: ${f}`);let z={...p.models[F],...y};if(!z.model)throw Error("Model ID is required");let G=p,Z=[...p.models];Z[F]=z;let $={modelProviders:{...p.modelProviders,[h]:b},models:Z};u().registerModelProvider(h,b,[z.model]),V().config.actions.updateConfig($);try{await W().save($,{scope:"global",...x})}catch(U){throw V().config.actions.setConfig(G),u().configureModelProviders(G.modelProviders,G.models),U}},updateModelProvider:async(f,y,b={})=>{let x=K();if(!x)throw Error("Config not initialized");if(!x.modelProviders[f])throw Error(`Model provider not found: ${f}`);let p=x.models.filter((h)=>h.provider===f).map((h)=>h.model);u().registerModelProvider(f,y,p),await X0().updateConfig({modelProviders:{...x.modelProviders,[f]:y}},{scope:"global",immediate:!0,...b})},removeModelProvider:async(f,y={})=>{let b=K();if(!b)throw Error("Config not initialized");if(!b.modelProviders[f])throw Error(`Model provider not found: ${f}`);let x=b.models.filter((Y)=>Y.provider===f),p=b.models.filter((Y)=>Y.fallbackModels?.some((Q)=>Q.provider===f));if(!y.removeModels&&(x.length>0||p.length>0))throw Error(`Model provider is still referenced by ${x.length} model(s) and ${p.length} fallback configuration(s)`);let h=x.map((Y)=>Y.id),F=b.models.filter((Y)=>Y.provider!==f).map((Y)=>{let Q=Y.fallbackModels?.filter((H)=>H.provider!==f),{fallbackModels:X,...j}=Y;return Q?.length?{...j,fallbackModels:Q}:j});if(F.length===0)throw Error("Cannot remove the provider that owns the only model");let z={...b.modelProviders};delete z[f];let G={modelProviders:z,models:F};if(h.includes(b.currentModelId))G.currentModelId=F[0].id;let Z=u(),$=await Z.credentials.read(f);await Z.credentials.delete(f);let{removeModels:U,...w}=y;try{return await X0().updateConfig(G,{scope:"global",immediate:!0,...w}),{removedModelIds:h}}catch(Y){if($)await Z.credentials.modify(f,async()=>$);throw Y}},updateModel:async(f,y,b={})=>{let x=K();if(!x)throw Error("Config not initialized");let p=x.models.findIndex((F)=>F.id===f);if(p===-1)throw Error(`Model not found: ${f}`);let h=[...x.models];h[p]={...h[p],...y},V().config.actions.updateConfig({models:h}),await W().save({models:h},{scope:"global",...b})},removeModel:async(f,y={})=>{let b=K();if(!b)throw Error("Config not initialized");if(b.models.length===1)throw Error("Cannot remove the only model");let x=b.models.filter((h)=>h.id!==f),p={models:x};if(b.currentModelId===f)p.currentModelId=x[0].id;V().config.actions.updateConfig(p),await W().save(p,{scope:"global",...y})},addMcpServer:async(f,y,b={})=>{let x=K();if(!x)throw Error("Config not initialized");let p=x.mcpServers??{},h=Y0(y),F={...y,...h?{oauth:h}:{}},z={...p,[f]:F};V().config.actions.updateConfig({mcpServers:z}),await W().save({mcpServers:z},{scope:"project",...b})},removeMcpServer:async(f,y={})=>{let b=K();if(!b)throw Error("Config not initialized");let p={...b.mcpServers??{}};delete p[f],V().config.actions.updateConfig({mcpServers:p}),await W().save({mcpServers:p},{scope:"project",...y})}});
|
|
25
|
-
export{
|
|
25
|
+
export{a as Kf,e as Lf,J as Mf,M0 as Nf,l0 as Of,i0 as Pf,o0 as Qf,a0 as Rf,n0 as Sf,s0 as Tf,E0 as Uf,V as Vf,_2 as Wf,W2 as Xf,K2 as Yf,K as Zf,w2 as _f,O2 as $f,u2 as ag,B2 as bg,q2 as cg,D2 as dg,X0 as eg};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
export{D as
|
|
1
|
+
import{Ui as I}from"./chunk-qy6p8bpr.js";import{Pj as G,Qj as H}from"./chunk-5s2x98rx.js";import B from"node:path";function A(b){if(Array.isArray(b))return b.map((q)=>A(q));if(b!==null&&typeof b==="object"&&Object.getPrototypeOf(b)===Object.prototype)return Object.fromEntries(Object.entries(b).map(([q,w])=>[q,A(w)]));return b}function D(b){return A(b)}function E(b,q){let w=new G(q?.credentials??H().credentials);return w.configureModelProviders(b.modelProviders,b.models),w}async function Q(b,q){let w=B.resolve(b),x=I.getInstance(),[J,K]=await Promise.all([x.loadWorkspaceModelConfig(w,q),x.loadWorkspaceRuntimeSettings(w,q)]),z={...D(q),...J,...K},F=E(z);return x.validateConfig(z,F),{projectRoot:w,config:z,catalog:F}}function T(b){let q=D(b.config);return{projectRoot:B.resolve(b.projectRoot),config:q,catalog:E(q,b.catalog)}}function U(b,q){let w=D(q);return{projectRoot:B.resolve(b),config:w,catalog:E(w)}}
|
|
2
|
+
export{D as zg,Q as Ag,T as Bg,U as Cg};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Af as b,Bf as c,zf as a}from"./chunk-qvew5nk3.js";import"./chunk-0wxnrjes.js";import"./chunk-dv5ts9ae.js";import"./chunk-x6k5ye1z.js";import"./chunk-v508x7cg.js";import"./chunk-7ajvrtb3.js";import"./chunk-qy6p8bpr.js";import"./chunk-b22ab7yw.js";import"./chunk-amabfzc8.js";import"./chunk-m2x6pb4f.js";import"./chunk-4e4qtpca.js";import"./chunk-5s2x98rx.js";import"./chunk-0eajnhrj.js";import"./chunk-pbckwd41.js";import"./chunk-px45q235.js";import"./chunk-a95jmx2j.js";import"./chunk-sdapqhj0.js";export{a as validatePermissions,c as validateOutput,b as loadConfiguration};
|