cli-link 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -14
- package/dist/client/assets/History-D2xDopni.js +4 -0
- package/dist/client/assets/ImageViewer-DuegU_fC.js +1 -0
- package/dist/client/assets/MarkdownRenderer-CsyizEL3.js +1 -0
- package/dist/client/assets/{PageTopBar-C8j-5s_3.js → PageTopBar-CQwjO6Af.js} +1 -1
- package/dist/client/assets/Session-B0s5zBGg.js +7 -0
- package/dist/client/assets/Settings-CfHFmJdV.js +1 -0
- package/dist/client/assets/Workspace-Cfl0mbNE.js +4 -0
- package/dist/client/assets/WorkspaceLinkedText-DCVYd9x-.js +2 -0
- package/dist/client/assets/c-BIGW1oBm.js +1 -0
- package/dist/client/assets/cpp-DIPi6g--.js +1 -0
- package/dist/client/assets/csharp-DSvCPggb.js +1 -0
- package/dist/client/assets/dart-bE4Kk8sk.js +1 -0
- package/dist/client/assets/dotenv-Da5cRb03.js +1 -0
- package/dist/client/assets/go-C27-OAKa.js +1 -0
- package/dist/client/assets/graphql-pNE0_Gx8.js +1 -0
- package/dist/client/assets/groovy-gcz8RCvz.js +1 -0
- package/dist/client/assets/index-BCg3ymV3.css +1 -0
- package/dist/client/assets/index-CrJqHlc8.js +2 -0
- package/dist/client/assets/java-VnEXKtx_.js +148 -0
- package/dist/client/assets/jsx-g9-lgVsj.js +1 -0
- package/dist/client/assets/kotlin-BdnUsdx6.js +1 -0
- package/dist/client/assets/less-B1dDrJ26.js +1 -0
- package/dist/client/assets/lua-BaeVxFsk.js +1 -0
- package/dist/client/assets/makefile-CHLpvVh8.js +1 -0
- package/dist/client/assets/php-BcCyJq-p.js +1 -0
- package/dist/client/assets/properties-DTPjHERo.js +1 -0
- package/dist/client/assets/ruby-BwImf3Ka.js +1 -0
- package/dist/client/assets/rust-B1yitclQ.js +1 -0
- package/dist/client/assets/scss-lMagJa-5.js +1 -0
- package/dist/client/assets/sql-CRqJ_cUM.js +1 -0
- package/dist/client/assets/svelte-B4a9v_or.js +1 -0
- package/dist/client/assets/swift-D82vCrfD.js +1 -0
- package/dist/client/assets/toml-vGWfd6FD.js +1 -0
- package/dist/client/assets/{vendor-icons-CNN4EKVi.js → vendor-icons-CMXJHDEv.js} +125 -65
- package/dist/client/assets/vendor-markdown--d-T3AbU.js +37 -0
- package/dist/client/assets/{vendor-motion-n6Lx6G4a.js → vendor-motion-D0ZmPdi9.js} +1 -1
- package/dist/client/assets/{vendor-react-DSV5aFEg.js → vendor-react-CcDXZHn_.js} +1 -1
- package/dist/client/assets/{vendor-virtual-CcftJrIC.js → vendor-virtual-DJI7OicV.js} +1 -1
- package/dist/client/assets/vue-DBXACu8K.js +1 -0
- package/dist/client/assets/workspace-return-FrQUv7g3.js +1 -0
- package/dist/client/index.html +4 -4
- package/dist/server/cli-manager.js +151 -26
- package/dist/server/codex-history.js +119 -17
- package/dist/server/index.js +906 -57
- package/dist/server/store.js +369 -27
- package/package.json +3 -3
- package/dist/client/assets/History-BxJVDFpN.js +0 -3
- package/dist/client/assets/MarkdownRenderer-BO-KS_L1.js +0 -1
- package/dist/client/assets/Session-CQFXA2Sr.js +0 -11
- package/dist/client/assets/Settings-DYmjRmoN.js +0 -1
- package/dist/client/assets/Workspace-D8kv9euM.js +0 -8
- package/dist/client/assets/WorkspaceLinkedText-DQyPLk-X.js +0 -2
- package/dist/client/assets/code-highlight-CEcsuMpw.js +0 -1
- package/dist/client/assets/index-BXT2BylN.css +0 -1
- package/dist/client/assets/index-DOgH1Kf3.js +0 -2
- package/dist/client/assets/vendor-markdown-BDwu-Ux6.js +0 -35
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Session-CQFXA2Sr.js","assets/vendor-react-DSV5aFEg.js","assets/vendor-virtual-CcftJrIC.js","assets/WorkspaceLinkedText-DQyPLk-X.js","assets/PageTopBar-C8j-5s_3.js","assets/vendor-icons-CNN4EKVi.js","assets/History-BxJVDFpN.js","assets/vendor-motion-n6Lx6G4a.js","assets/Workspace-D8kv9euM.js","assets/code-highlight-CEcsuMpw.js","assets/vendor-markdown-BDwu-Ux6.js","assets/Settings-DYmjRmoN.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
var Ze=Object.defineProperty;var et=(e,t,r)=>t in e?Ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var L=(e,t,r)=>et(e,typeof t!="symbol"?t+"":t,r);import{u as tt,b as rt,j as f,r as h,O as ot,R as de,B as nt,d as st,e as B,N as Te,f as it}from"./vendor-react-DSV5aFEg.js";import{M as at,C as ct,a as lt,S as dt}from"./vendor-icons-CNN4EKVi.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=r(i);fetch(i.href,s)}})();const ut="modulepreload",pt=function(e){return"/"+e},Ie={},we=function(t,r,n){let i=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),c=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=Promise.allSettled(r.map(p=>{if(p=pt(p),p in Ie)return;Ie[p]=!0;const w=p.endsWith(".css"),I=w?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${I}`))return;const g=document.createElement("link");if(g.rel=w?"stylesheet":ut,w||(g.as="script"),g.crossOrigin="",g.href=p,c&&g.setAttribute("nonce",c),document.head.appendChild(g),w)return new Promise((A,R)=>{g.addEventListener("load",A),g.addEventListener("error",()=>R(new Error(`Unable to preload CSS for ${p}`)))})}))}function s(a){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=a,window.dispatchEvent(c),!c.defaultPrevented)throw a}return i.then(a=>{for(const c of a||[])c.status==="rejected"&&s(c.reason);return t().catch(s)})};function Pe(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(r=Pe(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function ft(){for(var e,t,r=0,n="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=Pe(e))&&(n&&(n+=" "),n+=t);return n}const Se="-";function ht(e){const t=mt(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;function i(a){const c=a.split(Se);return c[0]===""&&c.length!==1&&c.shift(),je(c,t)||gt(a)}function s(a,c){const p=r[a]||[];return c&&n[a]?[...p,...n[a]]:p}return{getClassGroupId:i,getConflictingClassGroupIds:s}}function je(e,t){var a;if(e.length===0)return t.classGroupId;const r=e[0],n=t.nextPart.get(r),i=n?je(e.slice(1),n):void 0;if(i)return i;if(t.validators.length===0)return;const s=e.join(Se);return(a=t.validators.find(({validator:c})=>c(s)))==null?void 0:a.classGroupId}const Re=/^\[(.+)\]$/;function gt(e){if(Re.test(e)){const t=Re.exec(e)[1],r=t==null?void 0:t.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}}function mt(e){const{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return yt(Object.entries(e.classGroups),r).forEach(([s,a])=>{xe(a,n,s,t)}),n}function xe(e,t,r,n){e.forEach(i=>{if(typeof i=="string"){const s=i===""?t:_e(t,i);s.classGroupId=r;return}if(typeof i=="function"){if(bt(i)){xe(i(n),t,r,n);return}t.validators.push({validator:i,classGroupId:r});return}Object.entries(i).forEach(([s,a])=>{xe(a,_e(t,s),r,n)})})}function _e(e,t){let r=e;return t.split(Se).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r}function bt(e){return e.isThemeGetter}function yt(e,t){return t?e.map(([r,n])=>{const i=n.map(s=>typeof s=="string"?t+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([a,c])=>[t+a,c])):s);return[r,i]}):e}function wt(e){if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=new Map,n=new Map;function i(s,a){r.set(s,a),t++,t>e&&(t=0,n=r,r=new Map)}return{get(s){let a=r.get(s);if(a!==void 0)return a;if((a=n.get(s))!==void 0)return i(s,a),a},set(s,a){r.has(s)?r.set(s,a):i(s,a)}}}const Ue="!";function kt(e){const t=e.separator,r=t.length===1,n=t[0],i=t.length;return function(a){const c=[];let p=0,w=0,I;for(let _=0;_<a.length;_++){let m=a[_];if(p===0){if(m===n&&(r||a.slice(_,_+i)===t)){c.push(a.slice(w,_)),w=_+i;continue}if(m==="/"){I=_;continue}}m==="["?p++:m==="]"&&p--}const g=c.length===0?a:a.substring(w),A=g.startsWith(Ue),R=A?g.substring(1):g,j=I&&I>w?I-w:void 0;return{modifiers:c,hasImportantModifier:A,baseClassName:R,maybePostfixModifierPosition:j}}}function xt(e){if(e.length<=1)return e;const t=[];let r=[];return e.forEach(n=>{n[0]==="["?(t.push(...r.sort(),n),r=[]):r.push(n)}),t.push(...r.sort()),t}function vt(e){return{cache:wt(e.cacheSize),splitModifiers:kt(e),...ht(e)}}const St=/\s+/;function Ct(e,t){const{splitModifiers:r,getClassGroupId:n,getConflictingClassGroupIds:i}=t,s=new Set;return e.trim().split(St).map(a=>{const{modifiers:c,hasImportantModifier:p,baseClassName:w,maybePostfixModifierPosition:I}=r(a);let g=n(I?w.substring(0,I):w),A=!!I;if(!g){if(!I)return{isTailwindClass:!1,originalClassName:a};if(g=n(w),!g)return{isTailwindClass:!1,originalClassName:a};A=!1}const R=xt(c).join(":");return{isTailwindClass:!0,modifierId:p?R+Ue:R,classGroupId:g,originalClassName:a,hasPostfixModifier:A}}).reverse().filter(a=>{if(!a.isTailwindClass)return!0;const{modifierId:c,classGroupId:p,hasPostfixModifier:w}=a,I=c+p;return s.has(I)?!1:(s.add(I),i(p,w).forEach(g=>s.add(c+g)),!0)}).reverse().map(a=>a.originalClassName).join(" ")}function Tt(){let e=0,t,r,n="";for(;e<arguments.length;)(t=arguments[e++])&&(r=We(t))&&(n&&(n+=" "),n+=r);return n}function We(e){if(typeof e=="string")return e;let t,r="";for(let n=0;n<e.length;n++)e[n]&&(t=We(e[n]))&&(r&&(r+=" "),r+=t);return r}function It(e,...t){let r,n,i,s=a;function a(p){const w=t.reduce((I,g)=>g(I),e());return r=vt(w),n=r.cache.get,i=r.cache.set,s=c,c(p)}function c(p){const w=n(p);if(w)return w;const I=Ct(p,r);return i(p,I),I}return function(){return s(Tt.apply(null,arguments))}}function T(e){const t=r=>r[e]||[];return t.isThemeGetter=!0,t}const Oe=/^\[(?:([a-z-]+):)?(.+)\]$/i,Rt=/^\d+\/\d+$/,_t=new Set(["px","full","screen"]),Et=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,qt=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Mt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,At=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Lt=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;function z(e){return V(e)||_t.has(e)||Rt.test(e)}function G(e){return ee(e,"length",Gt)}function V(e){return!!e&&!Number.isNaN(Number(e))}function ge(e){return ee(e,"number",V)}function ae(e){return!!e&&Number.isInteger(Number(e))}function Nt(e){return e.endsWith("%")&&V(e.slice(0,-1))}function l(e){return Oe.test(e)}function $(e){return Et.test(e)}const Pt=new Set(["length","size","percentage"]);function jt(e){return ee(e,Pt,ze)}function Ut(e){return ee(e,"position",ze)}const Wt=new Set(["image","url"]);function Ot(e){return ee(e,Wt,Ht)}function zt(e){return ee(e,"",$t)}function ce(){return!0}function ee(e,t,r){const n=Oe.exec(e);return n?n[1]?typeof t=="string"?n[1]===t:t.has(n[1]):r(n[2]):!1}function Gt(e){return qt.test(e)&&!Mt.test(e)}function ze(){return!1}function $t(e){return At.test(e)}function Ht(e){return Lt.test(e)}function Dt(){const e=T("colors"),t=T("spacing"),r=T("blur"),n=T("brightness"),i=T("borderColor"),s=T("borderRadius"),a=T("borderSpacing"),c=T("borderWidth"),p=T("contrast"),w=T("grayscale"),I=T("hueRotate"),g=T("invert"),A=T("gap"),R=T("gradientColorStops"),j=T("gradientColorStopPositions"),_=T("inset"),m=T("margin"),M=T("opacity"),P=T("padding"),K=T("saturate"),D=T("scale"),U=T("sepia"),W=T("skew"),te=T("space"),ue=T("translate"),re=()=>["auto","contain","none"],oe=()=>["auto","hidden","clip","visible","scroll"],ne=()=>["auto",l,t],S=()=>[l,t],pe=()=>["",z,G],Y=()=>["auto",V,l],fe=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],X=()=>["solid","dashed","dotted","double","none"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],se=()=>["start","end","center","between","around","evenly","stretch"],F=()=>["","0",l],d=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>[V,ge],b=()=>[V,l];return{cacheSize:500,separator:":",theme:{colors:[ce],spacing:[z,G],blur:["none","",$,l],brightness:k(),borderColor:[e],borderRadius:["none","","full",$,l],borderSpacing:S(),borderWidth:pe(),contrast:k(),grayscale:F(),hueRotate:b(),invert:F(),gap:S(),gradientColorStops:[e],gradientColorStopPositions:[Nt,G],inset:ne(),margin:ne(),opacity:k(),padding:S(),saturate:k(),scale:k(),sepia:F(),skew:b(),space:S(),translate:S()},classGroups:{aspect:[{aspect:["auto","square","video",l]}],container:["container"],columns:[{columns:[$]}],"break-after":[{"break-after":d()}],"break-before":[{"break-before":d()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...fe(),l]}],overflow:[{overflow:oe()}],"overflow-x":[{"overflow-x":oe()}],"overflow-y":[{"overflow-y":oe()}],overscroll:[{overscroll:re()}],"overscroll-x":[{"overscroll-x":re()}],"overscroll-y":[{"overscroll-y":re()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[_]}],"inset-x":[{"inset-x":[_]}],"inset-y":[{"inset-y":[_]}],start:[{start:[_]}],end:[{end:[_]}],top:[{top:[_]}],right:[{right:[_]}],bottom:[{bottom:[_]}],left:[{left:[_]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ae,l]}],basis:[{basis:ne()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",l]}],grow:[{grow:F()}],shrink:[{shrink:F()}],order:[{order:["first","last","none",ae,l]}],"grid-cols":[{"grid-cols":[ce]}],"col-start-end":[{col:["auto",{span:["full",ae,l]},l]}],"col-start":[{"col-start":Y()}],"col-end":[{"col-end":Y()}],"grid-rows":[{"grid-rows":[ce]}],"row-start-end":[{row:["auto",{span:[ae,l]},l]}],"row-start":[{"row-start":Y()}],"row-end":[{"row-end":Y()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",l]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",l]}],gap:[{gap:[A]}],"gap-x":[{"gap-x":[A]}],"gap-y":[{"gap-y":[A]}],"justify-content":[{justify:["normal",...se()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...se(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...se(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[P]}],px:[{px:[P]}],py:[{py:[P]}],ps:[{ps:[P]}],pe:[{pe:[P]}],pt:[{pt:[P]}],pr:[{pr:[P]}],pb:[{pb:[P]}],pl:[{pl:[P]}],m:[{m:[m]}],mx:[{mx:[m]}],my:[{my:[m]}],ms:[{ms:[m]}],me:[{me:[m]}],mt:[{mt:[m]}],mr:[{mr:[m]}],mb:[{mb:[m]}],ml:[{ml:[m]}],"space-x":[{"space-x":[te]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[te]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",l,t]}],"min-w":[{"min-w":[l,t,"min","max","fit"]}],"max-w":[{"max-w":[l,t,"none","full","min","max","fit","prose",{screen:[$]},$]}],h:[{h:[l,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[l,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[l,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[l,t,"auto","min","max","fit"]}],"font-size":[{text:["base",$,G]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",ge]}],"font-family":[{font:[ce]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",l]}],"line-clamp":[{"line-clamp":["none",V,ge]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",z,l]}],"list-image":[{"list-image":["none",l]}],"list-style-type":[{list:["none","disc","decimal",l]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[M]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[M]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...X(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",z,G]}],"underline-offset":[{"underline-offset":["auto",z,l]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",l]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",l]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[M]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...fe(),Ut]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",jt]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Ot]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[j]}],"gradient-via-pos":[{via:[j]}],"gradient-to-pos":[{to:[j]}],"gradient-from":[{from:[R]}],"gradient-via":[{via:[R]}],"gradient-to":[{to:[R]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[c]}],"border-w-x":[{"border-x":[c]}],"border-w-y":[{"border-y":[c]}],"border-w-s":[{"border-s":[c]}],"border-w-e":[{"border-e":[c]}],"border-w-t":[{"border-t":[c]}],"border-w-r":[{"border-r":[c]}],"border-w-b":[{"border-b":[c]}],"border-w-l":[{"border-l":[c]}],"border-opacity":[{"border-opacity":[M]}],"border-style":[{border:[...X(),"hidden"]}],"divide-x":[{"divide-x":[c]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[c]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[M]}],"divide-style":[{divide:X()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...X()]}],"outline-offset":[{"outline-offset":[z,l]}],"outline-w":[{outline:[z,G]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:pe()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[M]}],"ring-offset-w":[{"ring-offset":[z,G]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",$,zt]}],"shadow-color":[{shadow:[ce]}],opacity:[{opacity:[M]}],"mix-blend":[{"mix-blend":[...he(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":he()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[n]}],contrast:[{contrast:[p]}],"drop-shadow":[{"drop-shadow":["","none",$,l]}],grayscale:[{grayscale:[w]}],"hue-rotate":[{"hue-rotate":[I]}],invert:[{invert:[g]}],saturate:[{saturate:[K]}],sepia:[{sepia:[U]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[p]}],"backdrop-grayscale":[{"backdrop-grayscale":[w]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[I]}],"backdrop-invert":[{"backdrop-invert":[g]}],"backdrop-opacity":[{"backdrop-opacity":[M]}],"backdrop-saturate":[{"backdrop-saturate":[K]}],"backdrop-sepia":[{"backdrop-sepia":[U]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",l]}],duration:[{duration:b()}],ease:[{ease:["linear","in","out","in-out",l]}],delay:[{delay:b()}],animate:[{animate:["none","spin","ping","pulse","bounce",l]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[D]}],"scale-x":[{"scale-x":[D]}],"scale-y":[{"scale-y":[D]}],rotate:[{rotate:[ae,l]}],"translate-x":[{"translate-x":[ue]}],"translate-y":[{"translate-y":[ue]}],"skew-x":[{"skew-x":[W]}],"skew-y":[{"skew-y":[W]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",l]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",l]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",l]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[z,G,ge]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}const Ft=It(Dt);function Bt(...e){return Ft(ft(e))}const Vt=()=>{const e=tt(),t=rt(),r=[{id:"session",path:"/session",icon:at,label:"对话"},{id:"history",path:"/history",icon:ct,label:"记录"},{id:"workspace",path:"/workspace",icon:lt,label:"代码"},{id:"settings",path:"/settings",icon:dt,label:"设置"}];return f.jsxs("div",{className:"flex flex-col h-screen w-full bg-gray-50 dark:bg-gray-950 overflow-hidden",children:[f.jsx("div",{className:"flex-1 overflow-hidden relative",children:f.jsx(h.Suspense,{fallback:f.jsx(Jt,{}),children:f.jsx(ot,{})})}),f.jsx("div",{className:"h-[60px] bg-white dark:bg-gray-900 border-t border-gray-200 dark:border-gray-800 flex items-center justify-around px-2 pb-safe flex-shrink-0",children:r.map(n=>{const i=t.pathname.startsWith(n.path);return f.jsxs("button",{onClick:()=>e(n.path+t.search),className:Bt("flex flex-col items-center justify-center w-16 h-full gap-1 transition-colors",i?"text-primary-600":"text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200"),children:[f.jsx(n.icon,{className:"w-6 h-6"}),f.jsx("span",{className:"text-[10px] font-medium",children:n.label})]},n.id)})})]})};function Jt(){return f.jsx("div",{className:"flex h-full items-center justify-center bg-gray-50 dark:bg-gray-950 text-xs text-gray-400 dark:text-gray-600",children:"加载中..."})}const Ge=["token","agentpilot_token"],$e="agentpilot_auth_token";function Kt(e){var t;for(const r of Ge){const n=(t=e.searchParams.get(r))==null?void 0:t.trim();if(n)return n}return null}function Yt(e){let t=!1;for(const r of Ge)e.searchParams.has(r)&&(e.searchParams.delete(r),t=!0);return t}function Xt(){const e=new URL(window.location.href),t=Kt(e);if(t&&sessionStorage.setItem($e,t),Yt(e)){const r=`${e.pathname}${e.search}${e.hash}`;window.history.replaceState(null,"",r)}}function He(){return sessionStorage.getItem($e)}function Qt(){const e=He();return e?{"X-AgentPilot-Token":e}:{}}function De(e){const t=He();if(!t)return e;const r=new URL(e,window.location.href);return r.searchParams.set("token",t),r.toString()}const Zt=3e3,er=10,Ee="agentpilot_client_id";function tr(){let e=localStorage.getItem(Ee);return e||(e=`client-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,localStorage.setItem(Ee,e)),e}class rr{constructor(t){L(this,"ws",null);L(this,"url");L(this,"handlers",new Set);L(this,"_status","disconnected");L(this,"reconnectAttempts",0);L(this,"reconnectTimer",null);L(this,"intentionalClose",!1);L(this,"statusHandlers",new Set);L(this,"requestIdCounter",0);L(this,"pendingRequests",new Map);L(this,"REQUEST_TIMEOUT",1e4);L(this,"clientId");this.url=t||this.getDefaultUrl(),this.clientId=tr()}getDefaultUrl(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}`}get status(){return this._status}setStatus(t){this._status=t,this.statusHandlers.forEach(r=>r(t))}onStatusChange(t){return this.statusHandlers.add(t),()=>this.statusHandlers.delete(t)}onMessage(t){return this.handlers.add(t),()=>this.handlers.delete(t)}connect(){var t,r;((t=this.ws)==null?void 0:t.readyState)===WebSocket.OPEN||((r=this.ws)==null?void 0:r.readyState)===WebSocket.CONNECTING||(this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.intentionalClose=!1,this.reconnectAttempts=0,this.doConnect())}doConnect(){var t,r;if(!(((t=this.ws)==null?void 0:t.readyState)===WebSocket.OPEN||((r=this.ws)==null?void 0:r.readyState)===WebSocket.CONNECTING)){this.setStatus("connecting");try{this.ws=new WebSocket(De(this.url))}catch{this.setStatus("disconnected"),this.scheduleReconnect();return}this.ws.onopen=()=>{console.log("[WS] Connected to server"),this.reconnectAttempts=0,this.setStatus("connected")},this.ws.onmessage=n=>{try{const i=JSON.parse(n.data);if(i.requestId&&this.pendingRequests.has(i.requestId)){const s=this.pendingRequests.get(i.requestId);clearTimeout(s.timer),this.pendingRequests.delete(i.requestId),s.resolve(i)}this.handlers.forEach(s=>s(i))}catch(i){console.error("[WS] Failed to parse message:",i)}},this.ws.onclose=n=>{console.log(`[WS] Disconnected from ${this.url} (code=${n.code}, reason=${n.reason||"none"})`),this.setStatus("disconnected"),this.intentionalClose||this.scheduleReconnect()},this.ws.onerror=n=>{console.error(`[WS] Error connecting to ${this.url}:`,n)}}}scheduleReconnect(){if(!this.intentionalClose){if(this.reconnectAttempts>=er){console.log("[WS] Max reconnect attempts reached");return}this.setStatus("reconnecting"),this.reconnectAttempts++,console.log(`[WS] Reconnecting... attempt ${this.reconnectAttempts}`),this.reconnectTimer=setTimeout(()=>{this.doConnect()},Zt)}}disconnect(){this.intentionalClose=!0,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws&&(this.ws.onopen=null,this.ws.onmessage=null,this.ws.onclose=null,this.ws.onerror=null,this.ws.close(),this.ws=null);for(const[t,r]of this.pendingRequests)clearTimeout(r.timer),r.reject(new Error("Disconnected"));this.pendingRequests.clear(),this.setStatus("disconnected")}send(t){var r;((r=this.ws)==null?void 0:r.readyState)===WebSocket.OPEN?this.ws.send(JSON.stringify(t)):console.warn("[WS] Cannot send, not connected")}waitUntilConnected(t){var r;return((r=this.ws)==null?void 0:r.readyState)===WebSocket.OPEN?Promise.resolve():(this.connect(),new Promise((n,i)=>{var c;let s=()=>{};const a=setTimeout(()=>{s(),i(new Error("Not connected"))},t);s=this.onStatusChange(()=>{var p;((p=this.ws)==null?void 0:p.readyState)===WebSocket.OPEN&&(clearTimeout(a),s(),n())}),((c=this.ws)==null?void 0:c.readyState)===WebSocket.OPEN&&(clearTimeout(a),s(),n())}))}async sendRequest(t,r=this.REQUEST_TIMEOUT){return await this.waitUntilConnected(r),new Promise((n,i)=>{var p;const s=`req_${++this.requestIdCounter}_${Date.now()}`,a={...t,requestId:s,clientId:this.clientId},c=setTimeout(()=>{this.pendingRequests.delete(s),i(new Error(`Request timeout: ${t}`))},r);this.pendingRequests.set(s,{resolve:n,reject:i,timer:c}),((p=this.ws)==null?void 0:p.readyState)===WebSocket.OPEN?this.ws.send(JSON.stringify(a)):(clearTimeout(c),this.pendingRequests.delete(s),i(new Error("Not connected")))})}sendMessage(t){this.send({type:"send_message",content:t})}sendConfirmResponse(t){this.send({type:"confirm_response",approved:t})}sendQuestionResponse(t,r){this.send({type:"question_response",answer:t,toolUseId:r})}sendInterrupt(){this.send({type:"interrupt"})}sendStartCLI(t){this.send({type:"start_cli",...t})}sendRestartCLI(){this.send({type:"restart_cli"})}sendSetConfirmMode(t){this.send({type:"set_confirm_mode",mode:t})}sendGetConfig(){this.send({type:"get_config"})}sendGetSkills(){return this.sendRequest({type:"get_skills"})}sendGetSession(t={}){return this.sendRequest({type:"get_session",...t})}sendGetHistory(){return this.sendRequest({type:"get_history"})}sendGetHistoryTask(t){return this.sendRequest({type:"get_history_task",id:t})}sendResumeHistory(t,r){return this.sendRequest({type:"resume_history",id:t,content:r})}sendEditUserMessage(t,r){return this.sendRequest({type:"edit_user_message",messageId:t,content:r})}sendDeleteHistory(t){return this.sendRequest({type:"delete_history",id:t})}sendClearHistory(){return this.sendRequest({type:"clear_history"})}sendMigrateLocalData(t,r){return this.sendRequest({type:"migrate_local_data",messages:t,historyTasks:r})}sendListDir(t){return this.sendRequest({type:"list_dir",dir:t})}sendListFiles(t){return this.sendRequest({type:"list_dir",dir:t,includeFiles:!0})}sendListWorkdir(t=""){return this.sendRequest({type:"list_workdir",path:t})}sendReadWorkdirFile(t){return this.sendRequest({type:"read_workdir_file",path:t})}sendGetWorkdirChanges(t){return this.sendRequest({type:"get_workdir_changes",path:t})}sendTrackWorkdirFile(t){return this.sendRequest({type:"track_workdir_file",path:t})}sendGenerateWorkdirCommitMessage(){return this.sendRequest({type:"generate_workdir_commit_message"},12e4)}sendCommitWorkdirChanges(t){return this.sendRequest({type:"commit_workdir_changes",message:t},3e4)}destroy(){this.disconnect(),this.handlers.clear(),this.statusHandlers.clear()}}let ke=null;function Fe(){return ke||(ke=new rr),ke}function or(){return window.location.origin}const Be=or();function H(e,t){const r=new URLSearchParams;for(const[i,s]of Object.entries(t))s!==void 0&&s!==""&&r.set(i,String(s));const n=r.toString();return n?`${e}?${n}`:e}async function N(e,t={}){const r=await fetch(`${Be}${e}`,{...t,headers:{...t.body?{"Content-Type":"application/json"}:{},...Qt(),...t.headers}}),n=await r.text(),i=n?JSON.parse(n):{};if(!r.ok)throw new Error(i.error||`HTTP ${r.status}`);return i}function Q(e,t){return N(e,{method:"POST",body:JSON.stringify(t)})}function qe(e,t=!1){return N(H("/api/dir",{dir:e,includeFiles:t}))}const Z={getConfig(){return N("/api/config")},getSkills(){return N("/api/skills")},fetchSession(e={}){return N(H("/api/session",{afterSeq:e.afterSeq,beforeSeq:e.beforeSeq,limit:e.limit}))},fetchHistory(){return N("/api/history")},fetchHistoryTask(e){return N(`/api/history/${encodeURIComponent(e)}`)},deleteHistoryTask(e){return N(`/api/history/${encodeURIComponent(e)}`,{method:"DELETE"})},clearHistory(){return N("/api/history",{method:"DELETE"})},migrateLocalData(e,t){return Q("/api/migrate-local-data",{messages:e,historyTasks:t})},listDir:qe,listFiles(e){return qe(e,!0)},listWorkdir(e=""){return N(H("/api/workdir/tree",{path:e}))},readWorkdirFile(e){return N(H("/api/workdir/file",{path:e}))},getWorkdirFileDownloadUrl(e){return De(`${Be}${H("/api/workdir/download",{path:e})}`)},getWorkdirCommits(e=50){return N(H("/api/workdir/commits",{limit:e}))},getWorkdirCommit(e){return N(H("/api/workdir/commit",{hash:e}))},getWorkdirChanges(e){return N(H("/api/workdir/changes",{path:e}))},trackWorkdirFile(e){return Q("/api/workdir/track",{path:e})},stageWorkdirChanges(e){return Q("/api/workdir/stage",{path:e})},unstageWorkdirChanges(e){return Q("/api/workdir/unstage",{path:e})},generateWorkdirCommitMessage(){return Q("/api/workdir/commit-message",{})},commitWorkdirChanges(e){return Q("/api/workdir/commit",{message:e})}};function Ve(e){return{id:String(e.id),seq:typeof e.seq=="number"?e.seq:void 0,type:e.type,content:e.content||"",time:e.time||"",status:e.status||void 0,toolName:e.toolName||void 0,toolDetails:e.toolDetails||void 0,toolUseId:e.toolUseId||void 0,toolResult:e.toolResult||void 0,permission:e.permission||void 0,question:e.question||void 0,details:e.details||void 0}}function Me(e){const t=Array.isArray(e.messages);return{id:e.id,workDir:e.workDir||e.work_dir||void 0,status:e.status,title:e.title,confirmCount:e.confirmCount||e.confirm_count||0,toolCount:e.toolCount||e.tool_count||0,duration:e.duration||void 0,startTime:e.startTime||e.start_time||0,endTime:e.endTime||e.end_time||0,canResume:!!e.canResume,messagesLoaded:t,messages:t?e.messages.map(Ve):[]}}const me={async fetchSession(e={}){const t=await Z.fetchSession(e),r=(t.messages||[]).map(Ve);return{sessionId:t.sessionId,messages:r,lastSeq:t.lastSeq||0,firstSeq:t.firstSeq||0,hasMoreBefore:!!t.hasMoreBefore,tokenUsage:t.tokenUsage||{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,costUsd:0}}},async fetchHistory(){return((await Z.fetchHistory()).tasks||[]).map(Me)},async fetchHistoryTask(e){const t=await Z.fetchHistoryTask(e);return t.task?Me(t.task):null},async resumeHistoryTask(e,t){const n=await Fe().sendResumeHistory(e,t);if(!n.success)throw new Error(n.error||"恢复会话记录失败")},async deleteHistoryTask(e){await Z.deleteHistoryTask(e)},async clearHistory(){await Z.clearHistory()},async migrateFromLocal(e,t){try{return(await Z.migrateLocalData(e,t)).success}catch(r){return console.error("[Storage] Migration failed:",r),!1}}};function nr(e){return e.reduce((t,r)=>{var n;return r.type!=="system"||((n=r.details)==null?void 0:n.subtype)!=="result"?t:{inputTokens:t.inputTokens+Number(r.details.inputTokens||0),outputTokens:t.outputTokens+Number(r.details.outputTokens||0),cacheReadTokens:t.cacheReadTokens+Number(r.details.cacheReadTokens||0),cacheCreationTokens:t.cacheCreationTokens+Number(r.details.cacheCreationTokens||0),costUsd:t.costUsd+Number(r.details.costUsd||0)}},{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,costUsd:0})}const sr=["idle","running","confirm","question","disconnected"];function be(e){return typeof e=="string"&&sr.includes(e)?e:"disconnected"}function y(e,t=""){return typeof e=="string"?e:t}const Je="agentpilot_messages",Ke="agentpilot_history",Ae=80,ir=80;function ar(){try{const e=localStorage.getItem(Je);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function cr(){try{const e=localStorage.getItem(Ke);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function lr(){localStorage.removeItem(Je),localStorage.removeItem(Ke)}const Ye=h.createContext(null);function Cr(){const e=h.useContext(Ye);if(!e)throw new Error("useSession must be used within SessionProvider");return e}class dr extends h.Component{constructor(){super(...arguments);L(this,"state",{hasError:!1,error:null})}static getDerivedStateFromError(r){return{hasError:!0,error:r}}render(){var r;return this.state.hasError?f.jsxs("div",{className:"flex flex-col items-center justify-center h-screen bg-gray-50 p-6 text-center",children:[f.jsx("div",{className:"text-red-500 text-lg font-semibold mb-2",children:"渲染错误"}),f.jsx("div",{className:"text-gray-600 text-sm mb-4",children:(r=this.state.error)==null?void 0:r.message}),f.jsx("button",{onClick:()=>this.setState({hasError:!1,error:null}),className:"px-4 py-2 bg-primary-600 text-white rounded-lg text-sm",children:"重试"})]}):this.props.children}}function ur({children:e}){const t=h.useRef(Fe()),[r,n]=h.useState("disconnected"),[i,s]=h.useState([]),[a,c]=h.useState("disconnected"),[p,w]=h.useState(null),[I,g]=h.useState({inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,costUsd:0}),[A,R]=h.useState(!1),[j,_]=h.useState(!1),m=h.useRef(0),M=h.useRef(!0),P=h.useRef(0),K=h.useRef(!1),D=h.useRef(!1),U=h.useCallback(d=>{const k=typeof d.id=="string"&&d.id?d.id:void 0;k||(m.current+=1);const b={...d,id:k||String(m.current),content:y(d.content),time:y(d.time)},o=parseInt(b.id,10);return Number.isNaN(o)||(m.current=Math.max(m.current,o)),s(O=>[...O,b]),b},[]),W=h.useCallback(d=>{const k=[];for(const b of d){const o=k[k.length-1];(o==null?void 0:o.type)==="ai"&&b.type==="ai"||(o==null?void 0:o.type)==="thinking"&&b.type==="thinking"?o.content+=b.content:k.push({...b})}return k},[]),te=h.useCallback(async()=>{try{const d=await me.fetchSession({limit:Ae});if(!M.current)return;if(d.messages.length>0){const k=W(d.messages);s(k),g(d.tokenUsage),R(d.hasMoreBefore);const b=Math.max(...k.map(o=>parseInt(o.id,10)||0));m.current=b}else if(K.current)R(!1);else{const k=ar(),b=cr();if(k.length>0||b.length>0){if(await me.migrateFromLocal(k,b)){lr(),K.current=!0;const O=await me.fetchSession({limit:Ae});if(M.current&&O.messages.length>0){const u=W(O.messages);s(u),g(O.tokenUsage),R(O.hasMoreBefore);const C=Math.max(...u.map(q=>parseInt(q.id,10)||0));m.current=C}}}else K.current=!0,R(!1),g({inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,costUsd:0})}P.current=d.lastSeq,D.current=!0}catch(d){console.error("[Session] Failed to load session from server:",d)}},[W]),ue=h.useCallback(async()=>{var k;if(j||!A)return;const d=(k=i.find(b=>typeof b.seq=="number"))==null?void 0:k.seq;if(!d){R(!1);return}_(!0);try{const b=await me.fetchSession({beforeSeq:d,limit:ir});if(!M.current)return;if(b.messages.length===0){R(!1);return}s(o=>W([...b.messages,...o])),R(b.hasMoreBefore)}catch(b){console.error("[Session] Failed to load older messages:",b)}finally{M.current&&_(!1)}},[A,j,W,i]);h.useEffect(()=>{M.current=!0;const d=t.current,k=d.onStatusChange(o=>{M.current&&(c(o),o==="disconnected"&&n("disconnected"))}),b=d.onMessage(o=>{var O;if(M.current)try{switch(o.type){case"connected":o.config&&w(o.config),n(be(o.status)),te();break;case"config":o.config&&w(o.config),n(be(o.status));break;case"status":n(be(o.status));break;case"session_reset":s([]),m.current=0,P.current=0,D.current=!0,R(!1),n("idle"),g({inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,costUsd:0}),o.config&&w(o.config);break;case"session_restored":{const u=W(Array.isArray(o.messages)?o.messages:[]);s(u);const C=u.length>0?Math.max(...u.map(q=>parseInt(q.id,10)||0)):0;m.current=C,P.current=typeof o.lastSeq=="number"?o.lastSeq:0,D.current=!0,R(!1),g(nr(u)),o.config&&w(o.config),n(be(o.status||"idle"));break}case"user_message":U({id:typeof o.id=="string"?o.id:void 0,seq:typeof o.seq=="number"?o.seq:void 0,type:"user",content:y(o.content),time:y(o.time)});break;case"ai_message":{const u=y(o.content),C=typeof o.id=="string"&&o.id?o.id:void 0;C||(m.current+=1);const q=C||String(m.current);s(E=>{const x=E[E.length-1];return(x==null?void 0:x.type)==="ai"?E.map((v,ie)=>ie===E.length-1?{...v,content:v.content+u}:v):[...E,{id:q,seq:typeof o.seq=="number"?o.seq:void 0,type:"ai",content:u,time:y(o.time)}]});break}case"thinking_message":{const u=y(o.content),C=typeof o.id=="string"&&o.id?o.id:void 0;C||(m.current+=1);const q=C||String(m.current);s(E=>{const x=E[E.length-1];return(x==null?void 0:x.type)==="thinking"?E.map((v,ie)=>ie===E.length-1?{...v,content:v.content+u}:v):[...E,{id:q,seq:typeof o.seq=="number"?o.seq:void 0,type:"thinking",content:u,time:y(o.time)}]});break}case"tool_call":{const u=y(o.toolUseId,void 0),C=o.status;u&&(C==="success"||C==="failed")?s(q=>{const E=q.findIndex(v=>v.toolUseId===u&&v.status==="running");if(E!==-1)return q.map((v,ie)=>ie===E?{...v,status:C,toolResult:y(o.details,void 0)}:v);const x=typeof o.id=="string"&&o.id?o.id:void 0;return x||(m.current+=1),[...q,{id:x||String(m.current),seq:typeof o.seq=="number"?o.seq:void 0,type:"tool",content:y(o.content),toolName:y(o.toolName),status:C,toolDetails:y(o.details,void 0),toolUseId:u,time:y(o.time)}]}):u&&C==="running"?s(q=>{const E=q.find(v=>v.toolUseId===u&&v.type==="tool");if(E)return!E.toolDetails&&o.details?q.map(v=>v.id===E.id?{...v,toolDetails:y(o.details,void 0)}:v):q;const x=typeof o.id=="string"&&o.id?o.id:void 0;return x||(m.current+=1),[...q,{id:x||String(m.current),seq:typeof o.seq=="number"?o.seq:void 0,type:"tool",content:y(o.content),toolName:y(o.toolName),status:C,toolDetails:y(o.details,void 0),toolUseId:u,time:y(o.time)}]}):U({id:typeof o.id=="string"?o.id:void 0,seq:typeof o.seq=="number"?o.seq:void 0,type:"tool",content:y(o.content),toolName:y(o.toolName),status:C,toolDetails:y(o.details,void 0),toolUseId:u,time:y(o.time)});break}case"confirm_request":U({id:typeof o.id=="string"?o.id:void 0,seq:typeof o.seq=="number"?o.seq:void 0,type:"confirm",content:y(o.content),time:y(o.time),status:"pending",permission:o.permission||void 0});break;case"confirm_result":s(u=>u.map(C=>C.type==="confirm"&&C.status==="pending"?{...C,status:o.approved?"approved":"rejected"}:C));break;case"ask_question":U({id:typeof o.id=="string"?o.id:void 0,seq:typeof o.seq=="number"?o.seq:void 0,type:"question",content:y(o.content),time:y(o.time),status:"pending",question:{questions:o.questions||[],toolUseId:o.toolUseId}});break;case"ask_question_result":s(u=>{var E;const C=typeof o.toolUseId=="string"?o.toolUseId:void 0;if(C)return u.map(x=>{var v;return x.type==="question"&&x.status==="pending"&&((v=x.question)==null?void 0:v.toolUseId)===C?{...x,status:"answered"}:x});const q=(E=u.map((x,v)=>({m:x,i:v})).filter(({m:x})=>x.type==="question"&&x.status==="pending").pop())==null?void 0:E.i;return u.map((x,v)=>v===q?{...x,status:"answered"}:x)});break;case"confirm_mode_changed":w(u=>u&&{...u,confirmMode:o.mode==="auto"?"auto":"key"});break;case"system":U({id:typeof o.id=="string"?o.id:void 0,seq:typeof o.seq=="number"?o.seq:void 0,type:"system",content:y(o.content),time:y(o.time),details:o.details||void 0}),((O=o.details)==null?void 0:O.subtype)==="result"&&g(u=>({inputTokens:u.inputTokens+(o.details.inputTokens||0),outputTokens:u.outputTokens+(o.details.outputTokens||0),cacheReadTokens:u.cacheReadTokens+(o.details.cacheReadTokens||0),cacheCreationTokens:u.cacheCreationTokens+(o.details.cacheCreationTokens||0),costUsd:u.costUsd+(o.details.costUsd||0)}));break;case"error":U({id:typeof o.id=="string"?o.id:void 0,seq:typeof o.seq=="number"?o.seq:void 0,type:"error",content:y(o.content),time:y(o.time)});break;case"session_data":case"history_resumed":case"user_message_edited":case"history_data":case"history_deleted":case"history_cleared":case"migration_done":break}}catch(u){console.error("[Session] Error handling message:",u,o)}});return d.connect(),()=>{M.current=!1,k(),b(),d.disconnect()}},[U,te]);const re=h.useCallback(d=>{t.current.sendMessage(d)},[]),oe=h.useCallback(d=>{t.current.sendConfirmResponse(d)},[]),ne=h.useCallback((d,k)=>{t.current.sendQuestionResponse(d,k)},[]),S=h.useCallback(()=>{t.current.sendInterrupt()},[]),pe=h.useCallback(d=>{t.current.sendStartCLI(d||{})},[]),Y=h.useCallback(()=>{s([]),m.current=0,R(!1),g({inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,costUsd:0}),t.current.sendRestartCLI()},[]),fe=h.useCallback(d=>{t.current.sendSetConfirmMode(d)},[]),X=h.useCallback(()=>{s([]),R(!1)},[]),he=h.useCallback(()=>{s([]),m.current=0,R(!1),g({inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,costUsd:0}),t.current.sendRestartCLI()},[]),se=h.useCallback(async(d,k)=>{const b=await t.current.sendEditUserMessage(d,k);if(!b.success)throw new Error(b.error||"编辑消息失败")},[]),F={status:r,messages:i,connectionStatus:a,cliConfig:p,tokenUsage:I,hasMoreMessagesBefore:A,isLoadingOlderMessages:j,loadOlderMessages:ue,sendMessage:re,confirmResponse:oe,questionResponse:ne,interrupt:S,startCLI:pe,restartCLI:Y,newSession:he,editUserMessage:se,setConfirmMode:fe,clearMessages:X};return f.jsx(dr,{children:f.jsx(Ye.Provider,{value:F,children:e})})}const Xe=h.createContext({theme:"dark",toggleTheme:()=>{}}),pr=({children:e})=>{const[t,r]=h.useState(()=>{const i=localStorage.getItem("theme");return i==="light"||i==="dark"?i:"dark"});h.useLayoutEffect(()=>{const i=document.documentElement;t==="dark"?i.classList.add("dark"):i.classList.remove("dark"),localStorage.setItem("theme",t)},[t]);const n=()=>{r(i=>i==="dark"?"light":"dark")};return f.jsx(Xe.Provider,{value:{theme:t,toggleTheme:n},children:e})},Tr=()=>h.useContext(Xe),fr=de.lazy(()=>we(()=>import("./Session-CQFXA2Sr.js"),__vite__mapDeps([0,1,2,3,4,5])).then(e=>({default:e.Session}))),hr=de.lazy(()=>we(()=>import("./History-BxJVDFpN.js"),__vite__mapDeps([6,1,3,4,5,7])).then(e=>({default:e.History}))),gr=de.lazy(()=>we(()=>import("./Workspace-D8kv9euM.js"),__vite__mapDeps([8,1,9,10,4,5,7])).then(e=>({default:e.Workspace}))),mr=de.lazy(()=>we(()=>import("./Settings-DYmjRmoN.js"),__vite__mapDeps([11,1,7,5,4])).then(e=>({default:e.Settings}))),br=()=>f.jsx(pr,{children:f.jsx(ur,{children:f.jsx(nt,{children:f.jsxs(st,{children:[f.jsxs(B,{path:"/",element:f.jsx(Vt,{}),children:[f.jsx(B,{index:!0,element:f.jsx(Te,{to:"/session",replace:!0})}),f.jsx(B,{path:"session",element:f.jsx(fr,{})}),f.jsx(B,{path:"history",element:f.jsx(hr,{})}),f.jsx(B,{path:"workspace",element:f.jsx(gr,{})}),f.jsx(B,{path:"settings",element:f.jsx(mr,{})})]}),f.jsx(B,{path:"*",element:f.jsx(Te,{to:"/session",replace:!0})})]})})})});let J=null,ye=!1,Le=!1;const ve=new Set;function Ce(){return typeof window<"u"&&typeof window.matchMedia=="function"}function yr(){return Ce()?window.matchMedia("(display-mode: standalone)").matches||window.matchMedia("(display-mode: fullscreen)").matches||window.navigator.standalone===!0:!1}function wr(){return Ce()?/iphone|ipad|ipod/i.test(window.navigator.userAgent):!1}function le(){ve.forEach(e=>e())}function Ne(e,t){var n;if(typeof e.addEventListener=="function")return e.addEventListener("change",t),()=>e.removeEventListener("change",t);const r=e;return(n=r.addListener)==null||n.call(r,t),()=>{var i;return(i=r.removeListener)==null?void 0:i.call(r,t)}}function Qe(){if(!Ce()||Le)return;Le=!0;const e=()=>{le()},t=n=>{n.preventDefault(),J=n,le()},r=()=>{J=null,le()};window.addEventListener("beforeinstallprompt",t),window.addEventListener("appinstalled",r),Ne(window.matchMedia("(display-mode: standalone)"),e),Ne(window.matchMedia("(display-mode: fullscreen)"),e)}function Ir(){const e=yr();return{canPromptInstall:!!J&&!e,isInstalled:e,isInstalling:ye,isIos:wr()}}function Rr(e){return Qe(),ve.add(e),()=>{ve.delete(e)}}async function _r(){if(!J||ye)return"unavailable";ye=!0,le();try{await J.prompt();const e=await J.userChoice;return J=null,e.outcome}finally{ye=!1,le()}}function kr(){"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js",{scope:"/"}).catch(e=>{console.warn("[PWA] Service worker registration failed:",e)})})}Qe();Xt();kr();it.createRoot(document.getElementById("root")).render(f.jsx(de.StrictMode,{children:f.jsx(br,{})}));export{we as _,Z as a,Ir as b,Bt as c,Rr as d,Tr as e,Fe as g,_r as p,me as s,Cr as u};
|