coding-tool-x 3.8.7 → 3.8.9
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 +2 -2
- package/dist/web/assets/{AgentsDrawer-C7ePByZx.js → AgentsDrawer-Cj5CJ4d9.js} +1 -1
- package/dist/web/assets/Analytics-1doS-8uC.js +1 -0
- package/dist/web/assets/AssetPathField-C9TOPl7o.js +1 -0
- package/dist/web/assets/{ChatHistoryDrawer-Ccl4rhdz.js → ChatHistoryDrawer-BTmQ1aQr.js} +1 -1
- package/dist/web/assets/{CollapseItem-MxG_UD4o.js → CollapseItem-CwqJk3bE.js} +1 -1
- package/dist/web/assets/{CommandsDrawer-DWbaxHRZ.js → CommandsDrawer-CaZWDI_G.js} +1 -1
- package/dist/web/assets/ConfigExportDrawer-C3vSZEsS.js +1 -0
- package/dist/web/assets/{ConfigTemplates-AiRPv2cd.js → ConfigTemplates-gyERg9iC.js} +1 -1
- package/dist/web/assets/{ConfigTemplatesDrawer-CKMFsfEF.js → ConfigTemplatesDrawer-B17RqFi4.js} +1 -1
- package/dist/web/assets/{ConfigTemplatesPanel-Cvbnkvpt.js → ConfigTemplatesPanel-DKIC_FqG.js} +1 -1
- package/dist/web/assets/{Divider-D28g1gwj.js → Divider-DsdbkHrG.js} +1 -1
- package/dist/web/assets/{FavoritesDrawer-DA-dR_vP.js → FavoritesDrawer-DaziQmBp.js} +1 -1
- package/dist/web/assets/Forward-DLCL7aMY.js +1 -0
- package/dist/web/assets/{GatewayConvertDrawer-402_raGb.js → GatewayConvertDrawer-OMgWUUSc.js} +1 -1
- package/dist/web/assets/Home-DOSUTfrE.js +1 -0
- package/dist/web/assets/{MarkdownEditor-BvkDECwH.js → MarkdownEditor-9TTwTS-U.js} +1 -1
- package/dist/web/assets/McpDrawer-I8rl8lGH.js +1 -0
- package/dist/web/assets/{McpFormDrawer-DPMnyt5L.js → McpFormDrawer-DEP3C7ut.js} +1 -1
- package/dist/web/assets/{PluginManager-FKVeugr4.js → PluginManager-BuRcWuBj.js} +1 -1
- package/dist/web/assets/{PluginsDrawer-MvM1R55d.js → PluginsDrawer-_zZENaQn.js} +1 -1
- package/dist/web/assets/PluginsPanel-Bs5qZ-TK.js +1 -0
- package/dist/web/assets/PluginsPanel-CzGMK-Ap.css +1 -0
- package/dist/web/assets/ProjectList-BSxuL2td.js +1 -0
- package/dist/web/assets/{ProjectList-677RLZ8O.css → ProjectList-VbIYSHbH.css} +1 -1
- package/dist/web/assets/PromptsDrawer-CoZ-ZtsY.js +1 -0
- package/dist/web/assets/RecentSessionsDrawer-B_17aJBG.js +1 -0
- package/dist/web/assets/RecentSessionsDrawer-yrAD4p1A.css +1 -0
- package/dist/web/assets/SessionCard-BL_x0d3t.js +1 -0
- package/dist/web/assets/SessionList-DhRYZ6vl.js +1 -0
- package/dist/web/assets/SessionList-qG_XpPBJ.css +1 -0
- package/dist/web/assets/{SettingsDrawer-lMjttbkD.js → SettingsDrawer-fYb0DU7X.js} +1 -1
- package/dist/web/assets/SkillManager-S698Hns8.js +1 -0
- package/dist/web/assets/{SkillsDrawer-DF6JsSyj.js → SkillsDrawer-Ms4lPCow.js} +1 -1
- package/dist/web/assets/{SkillsPanel-B3Nm5j32.css → SkillsPanel-C4ke56nF.css} +1 -1
- package/dist/web/assets/SkillsPanel-rqnqAOGL.js +1 -0
- package/dist/web/assets/{SpeedTestDrawer-BaZkZqPP.js → SpeedTestDrawer-Bbn38SfV.js} +1 -1
- package/dist/web/assets/Upload-CdyVHxCI.js +1 -0
- package/dist/web/assets/{WorkspaceDrawer-BFSwZ5yU.js → WorkspaceDrawer-L7HJRc6u.js} +1 -1
- package/dist/web/assets/{WorkspaceManager-BHL1uYct.js → WorkspaceManager-DsoNg2z8.js} +1 -1
- package/dist/web/assets/{WorkspacePanel-B5PooBtg.js → WorkspacePanel-Be8PVZah.js} +1 -1
- package/dist/web/assets/{headers-cf-QapUq.js → headers-B5JWGn3v.js} +1 -1
- package/dist/web/assets/{icons-B2Vg-IOC.js → icons-DmFe4b5j.js} +1 -1
- package/dist/web/assets/{index-BohDDAy_.css → index-3Lp6z8TQ.css} +1 -1
- package/dist/web/assets/index-BKlAWTH-.js +2 -0
- package/dist/web/assets/{light-Cp0t7v32.js → light-0eavxNvt.js} +1 -1
- package/dist/web/assets/platforms-BmzzwnSw.js +1 -0
- package/dist/web/assets/platforms-DWXgmy2w.js +1 -0
- package/dist/web/assets/session-visibility-BAmxh3cK.js +1 -0
- package/dist/web/assets/sessions-CC0j-KH_.js +1 -0
- package/dist/web/assets/sessions-D4yQtfKb.js +1 -0
- package/dist/web/assets/use-message-DqCwefG6.js +1 -0
- package/dist/web/assets/{useResponsiveDrawer-D-DDpbnI.js → useResponsiveDrawer-V_onl9NV.js} +1 -1
- package/dist/web/index.html +7 -7
- package/package.json +1 -1
- package/src/commands/daemon.js +27 -4
- package/src/commands/search.js +17 -2
- package/src/config/paths.js +2 -0
- package/src/platforms/channel-auth-registry.js +36 -6
- package/src/platforms/channel-auth-service.js +12 -2
- package/src/platforms/driver-registry.js +9 -1
- package/src/platforms/drivers/claude/session-history-adapter.js +72 -1
- package/src/platforms/drivers/claude/sessions-implementation.js +49 -7
- package/src/platforms/drivers/claude/sessions.js +30 -6
- package/src/platforms/drivers/codex/parser.js +57 -1
- package/src/platforms/drivers/codex/session-history-adapter.js +8 -2
- package/src/platforms/drivers/codex/sessions-implementation.js +25 -3
- package/src/platforms/drivers/codex/sessions.js +18 -1
- package/src/platforms/drivers/dsh/api-operations.js +396 -0
- package/src/platforms/drivers/dsh/channels-implementation.js +458 -0
- package/src/platforms/drivers/dsh/channels.js +191 -0
- package/src/platforms/drivers/dsh/common.js +571 -0
- package/src/platforms/drivers/dsh/native-config.js +93 -0
- package/src/platforms/drivers/dsh/native-logs.js +116 -0
- package/src/platforms/drivers/dsh/plugin-manager.js +117 -0
- package/src/platforms/drivers/dsh/projects.js +23 -0
- package/src/platforms/drivers/dsh/proxy-implementation.js +260 -0
- package/src/platforms/drivers/dsh/proxy.js +23 -0
- package/src/platforms/drivers/dsh/resources.js +346 -0
- package/src/platforms/drivers/dsh/sessions.js +587 -0
- package/src/platforms/drivers/dsh/statistics-implementation.js +238 -0
- package/src/platforms/drivers/dsh/statistics.js +24 -0
- package/src/platforms/drivers/gemini/session-history-adapter.js +49 -1
- package/src/platforms/drivers/gemini/sessions-implementation.js +46 -1
- package/src/platforms/drivers/gemini/sessions.js +2 -1
- package/src/platforms/drivers/omp/prompts.js +58 -2
- package/src/platforms/drivers/omp/proxy-implementation.js +25 -1
- package/src/platforms/drivers/omp/session-history-adapter.js +42 -1
- package/src/platforms/drivers/omp/sessions-implementation.js +51 -3
- package/src/platforms/drivers/omp/sessions.js +33 -2
- package/src/platforms/drivers/opencode/channels-implementation.js +25 -22
- package/src/platforms/drivers/opencode/channels.js +6 -1
- package/src/platforms/drivers/opencode/sessions-implementation.js +89 -9
- package/src/platforms/drivers/opencode/sessions.js +37 -1
- package/src/platforms/manifest-schema.js +43 -3
- package/src/platforms/manifests/dsh.json +542 -0
- package/src/platforms/manifests/omp.json +2 -1
- package/src/platforms/manifests/opencode.json +28 -0
- package/src/platforms/native-oauth-adapters.js +318 -18
- package/src/platforms/oauth-credentials-service.js +344 -13
- package/src/platforms/path-resolver.js +2 -0
- package/src/platforms/platform-path-context.js +12 -2
- package/src/platforms/registry.js +16 -1
- package/src/platforms/runtime.js +5 -0
- package/src/platforms/session-history-adapters.js +1 -0
- package/src/server/api/platform-api-config.js +23 -2
- package/src/server/api/platform-route-factory.js +9 -2
- package/src/server/api/platforms.js +19 -1
- package/src/server/api/plugins.js +108 -13
- package/src/server/index.js +35 -1
- package/src/server/services/config-registry-service.js +10 -1
- package/src/server/services/config-templates-service.js +1 -0
- package/src/server/services/plugins-service.js +474 -103
- package/src/server/services/session-history-index.js +900 -140
- package/src/server/services/session-history-worker.js +3 -1
- package/src/server/services/skill-service.js +214 -7
- package/src/server/services/usage-log-utils.js +1 -0
- package/src/server/services/workspace-service.js +39 -10
- package/src/shared/driver-factories/api.js +22 -6
- package/src/shared/driver-factories/projects.js +8 -0
- package/dist/web/assets/Analytics-BVG6ehFv.js +0 -1
- package/dist/web/assets/AssetPathField-BZI9NvEr.js +0 -1
- package/dist/web/assets/ConfigExportDrawer-DrawKwxE.js +0 -1
- package/dist/web/assets/Home-CTF8ZWKW.js +0 -1
- package/dist/web/assets/McpDrawer-DZGHkuDm.js +0 -1
- package/dist/web/assets/PluginsPanel-CKuBs38B.js +0 -1
- package/dist/web/assets/PluginsPanel-D6ZqITcR.css +0 -1
- package/dist/web/assets/ProjectList-tsjwjXV1.js +0 -1
- package/dist/web/assets/PromptsDrawer-B-X9ci8n.js +0 -1
- package/dist/web/assets/RecentSessionsDrawer-CKFsOYDM.css +0 -1
- package/dist/web/assets/RecentSessionsDrawer-wLktMF_c.js +0 -1
- package/dist/web/assets/SessionCard-DkJPy0TY.js +0 -1
- package/dist/web/assets/SessionList-BpYRz1cX.css +0 -1
- package/dist/web/assets/SessionList-Gzhh4FOZ.js +0 -1
- package/dist/web/assets/SkillManager-CzFxWxx-.js +0 -1
- package/dist/web/assets/SkillsPanel--lLEts9y.js +0 -1
- package/dist/web/assets/Upload-BEQ-3Kqq.js +0 -1
- package/dist/web/assets/index-BFInlZGI.js +0 -2
- package/dist/web/assets/platforms-CBkB45JP.js +0 -1
- package/dist/web/assets/platforms-FTpjxAT6.js +0 -1
- package/dist/web/assets/sessions-Cmy31slD.js +0 -1
- package/dist/web/assets/sessions-yC_oVVh8.js +0 -1
- package/dist/web/assets/use-message-DoLM8C1C.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,j as t,o as s,s as o,st as a}from"./vue-vendor-BqZbbXHA.js";import{n,r}from"./client-UDwXBP9i.js";import{Dt as i,Z as l,a as c,f as p,k as u,lt as f}from"./icons-B2Vg-IOC.js";import{r as m}from"./platforms-FTpjxAT6.js";async function d(){return(await n.get("/ui-config")).data}async function y(e){return(await n.post("/ui-config",{config:e})).data}async function g(e,t){return(await n.put(`/ui-config/${e}`,{value:t})).data}async function b(e,t,s){return(await n.put(`/ui-config/${e}/${t}`,{value:s})).data}var h=Object.freeze({claude:i,code:f,codex:f,gemini:p,opencode:l,omp:u,terminal:c});function k(e){return h[String(e||"").trim().toLowerCase()]||c}var C=["claude","codex","opencode","omp"],v=[{key:"claude",label:"Claude Code",capabilities:{channels:!0,projects:!0,sessions:!0,proxy:!0,statistics:!0,resourceSync:!0,skills:!0,commands:!0,agents:!0,nativeConfig:!0}},{key:"codex",label:"Codex",capabilities:{channels:!0,projects:!0,sessions:!0,proxy:!0,statistics:!0,resourceSync:!0,skills:!0,commands:!0,agents:!0,nativeConfig:!0}},{key:"gemini",label:"Gemini",capabilities:{channels:!0,projects:!0,sessions:!0,proxy:!0,statistics:!0,resourceSync:!0,skills:!0,commands:!0,agents:!0,nativeConfig:!0}},{key:"opencode",label:"OpenCode",capabilities:{channels:!0,projects:!0,sessions:!0,proxy:!0,statistics:!0,resourceSync:!0,skills:!0,commands:!0,agents:!0,nativeConfig:!0}},{key:"omp",label:"OMP",capabilities:{channels:!0,projects:!0,sessions:!0,proxy:!0,statistics:!0,resourceSync:!0,skills:!0,commands:!0,plugins:!0,agents:!1,nativeConfig:!0}}];function P(e={}){if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=String(e?.key||"").trim().toLowerCase(),s=function(e={}){return e?.capabilities&&"object"==typeof e.capabilities&&!Array.isArray(e.capabilities)?{...e.capabilities}:Object.fromEntries(Object.entries({proxy:"supportsProxy",projects:"supportsProjects",sessions:"supportsSessions",skills:"supportsSkills",commands:"supportsCommands",plugins:"supportsPlugins",agents:"supportsAgents"}).map(([t,s])=>[t,!1!==e?.[s]]))}(e),o=String(e?.iconToken||e?.icon||"terminal").trim();return{key:t,label:String(e?.label||e?.name||e?.title||t).trim(),title:String(e?.title||e?.label||e?.name||t).trim(),command:String(e?.command||t).trim(),iconToken:o,icon:k(o),color:String(e?.color||"#64748b").trim(),defaultVisible:!1!==e?.defaultVisible,defaultEnabled:void 0===e?.defaultEnabled?void 0:!1!==e.defaultEnabled,sortOrder:Number.isFinite(e?.sortOrder)?e.sortOrder:0,portKey:"string"==typeof e?.portKey?e.portKey:"",defaultPort:Number.isFinite(e?.defaultPort)?e.defaultPort:null,portLabel:"string"==typeof e?.portLabel?e.portLabel:"",apiPrefix:"string"==typeof e?.apiPrefix?e.apiPrefix:"",modelCatalogKey:"string"==typeof e?.modelCatalogKey?e.modelCatalogKey:t,enabled:!1!==e?.enabled,custom:!0===e?.custom,capabilities:s,resourceTypes:(a=e.resourceTypes,!a||"object"!=typeof a||Array.isArray(a)?{}:Object.fromEntries(Object.entries(a).filter(([,e])=>"boolean"==typeof e))),promptLabel:"string"==typeof e?.promptLabel?e.promptLabel.trim():"",supportsProxy:!0===s.proxy,supportsProjects:!0===s.projects,supportsSessions:!0===s.sessions,supportsSkills:!0===s.skills,supportsCommands:!0===s.commands,supportsPlugins:!0===s.plugins,supportsAgents:!0===s.agents};var a}function j(e=[]){const t=new Set;return Array.isArray(e)?e.map(P).filter(e=>!(!e||!e.key||t.has(e.key))&&(t.add(e.key),!0)):[]}function w(e,t=[]){const s=String(e||"").trim().toLowerCase();return j(t).find(e=>e.key===s)||P({key:s,capabilities:{}})}var S=a({theme:"light",panelVisibility:{showChannels:!0,showLogs:!0},channelBalance:{showRemaining:!1},channelLocks:{claude:!1,codex:!1,gemini:!1,opencode:!1,omp:!1},channelCollapse:{claude:[],codex:[],gemini:[],opencode:[],omp:[]},channelOrder:{claude:[],codex:[],gemini:[],opencode:[],omp:[]},enabledCliPlatforms:[...C]}),x=!1,O=!1,A=null;async function L({force:e=!1}={}){return e||!x&&!O?A||(A=(async()=>{try{const e=await d();e.success&&e.config&&(S.value=e.config,x=!0),O=!0}catch(e){O=!0}finally{A=null}return S.value})()):S.value}function E(){return x||L(),{uiConfig:S,loadUIConfig:L,saveConfig:async function(e){try{const t=await y(e);return!!t.success&&(S.value=t.config,!0)}catch(t){return!1}},updateConfig:async function(e,t){try{const s=await g(e,t);return!!s.success&&(S.value=s.config,!0)}catch(s){return!1}},updateNestedConfig:async function(e,t,s){try{const o=await b(e,t,s);return!!o.success&&(S.value=o.config,!0)}catch(o){return!1}}}}function T(e){if(Array.isArray(e))return j(e);const t=j(e);if(t.length>0)return t;const s=new Map(j(v).map(e=>[e.key,e]));return C.map(e=>s.get(e)).filter(Boolean)}function K(e){return String(e??"").trim().toLowerCase()}function $({catalog:e,enabledCliPlatforms:t}={}){const s=T(e),o=new Set(s.map(e=>e.key)),a=s.some(e=>void 0!==e.defaultEnabled),n=Array.isArray(t)?t:a?s.filter(e=>!1!==e.defaultEnabled).sort((e,t)=>(e.sortOrder||0)-(t.sortOrder||0)).map(e=>e.key):C,r=new Set,i=[];for(const l of n){const e=K(l);e&&!r.has(e)&&o.has(e)&&(r.add(e),i.push(e))}return i}function B(e){return T(e).map(e=>{const t=K(e.iconToken),s=Object.prototype.hasOwnProperty.call(h,t)?t:"terminal";return{key:e.key,label:e.label||e.title||e.key,title:e.title||e.label||e.key,iconToken:s,icon:k(s),color:e.color||"#64748b",capabilities:e.capabilities}})}function M(e){return K(e?.params?.platform||e?.meta?.channel)}var N=new Set(C),V=v.filter(e=>N.has(e.key));r(V);var F=s("platforms",{state:()=>({platforms:j(V),loaded:!1,loading:!1,error:null,loadPromise:null}),getters:{all:e=>e.platforms,enabled:e=>{const{uiConfig:t}=E(),s=$({catalog:e.platforms,enabledCliPlatforms:t.value.enabledCliPlatforms}),o=new Map(e.platforms.map(e=>[e.key,e]));return s.map(e=>o.get(e)).filter(Boolean)}},actions:{fetchPlatforms:async()=>m(),async load({force:e=!1}={}){return!e&&this.loaded?this.platforms:(this.loadPromise||(this.loading=!0,this.error=null,this.loadPromise=this.fetchPlatforms().then(e=>{const t=j(e);return t.length>0&&(this.platforms=t),r(this.platforms),this.loaded=!0,this.platforms}).catch(e=>(this.error=e,this.loaded=!0,this.platforms)).finally(()=>{this.loading=!1,this.loadPromise=null})),this.loadPromise)},get(e){const t=String(e||"").trim().toLowerCase();return this.platforms.find(e=>e.key===t)||null},hasCapability(e,t){const s=this.get(e);return!0===s?.capabilities?.[t]||!0===s?.resourceTypes?.[t]}}}),z=null;function D(s){const a=s||function(){const e=t();if(!e)return o();const s=e.appContext?.provides||{};for(const t of Object.getOwnPropertySymbols(s)){const e=s[t];if(e&&e._s&&"function"==typeof e.install)return e}return null}()||(z||=e());return F(a)}D.$id=F.$id;export{E as a,d as c,g as d,$ as i,y as l,B as n,C as o,M as r,w as s,D as t,b as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as a,o as s,s as t}from"./client-UDwXBP9i.js";async function r(){const s=await a.get("/platforms");return Array.isArray(s.data?.platforms)?s.data.platforms:[]}async function n(t,r={}){return(await a.get(`${s(t)}/projects`,{params:r.fresh?{fresh:"1"}:void 0})).data}async function o(t,r,n={}){const o=n.fresh?{fresh:"1"}:void 0;return(await a.get(`${s(t)}/sessions/${encodeURIComponent(r)}`,{params:o})).data}function e(a){return t(a)}export{e as i,o as n,r,n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a,n as s}from"./client-UDwXBP9i.js";import{i as t,n}from"./platforms-FTpjxAT6.js";import{t as e}from"./clipboard-B46yyoz_.js";async function o(e,o="claude",c={}){if(!t(o))return n(o,e,c);const r=a(o),i={};return c.fresh&&(i.fresh="1"),(await s.get(`${r}/sessions/${e}`,{params:i})).data}async function c(a,t){return(await s.post("/aliases",{sessionId:a,alias:t})).data}async function r(a){return(await s.delete(`/aliases/${a}`)).data}async function i(t,n,e="claude"){const o=a(e);return(await s.delete(`${o}/sessions/${t}/${n}`)).data}async function u(t,n,e="claude"){const o=a(e);return(await s.post(`${o}/sessions/${t}/batch-delete`,{sessionIds:n})).data}async function d(t,n,e="claude",o={}){const c=a(e);return(await s.post(`${c}/sessions/${t}/${n}/fork`,o)).data}async function f(t,n,e="claude"){const o=a(e);return(await s.post(`${o}/sessions/${t}/order`,{order:n})).data}async function $(t,n,e=15,o="claude"){const c=a(o);return(await s.get(`${c}/sessions/${t}/search`,{params:{keyword:n,context:e}})).data}async function l(t,n=35,e="claude"){const o=a(e);return(await s.get(`${o}/sessions/search/global`,{params:{keyword:t,context:n}})).data}function m(a){if(!a||"object"!=typeof a)return"";if("string"==typeof a.copyCommand&&a.copyCommand.trim())return a.copyCommand;const s="string"==typeof a.command?a.command.trim():"";if(!s)return"";const t="string"==typeof a.cwd?a.cwd.trim():"";return t?`cd ${n=t,`"${String(n).replace(/"/g,'\\"')}"`} && ${s}`:s;var n}async function p(t,n,o="claude"){const c=await async function(t,n,e="claude"){const o=a(e);return(await s.post(`${o}/sessions/${t}/${n}/launch`)).data}(t,n,o),r=m(c);if(!r)throw new Error("未获取到可复制的启动命令");return{text:r,data:c,copyResult:await e(r)}}async function y(t,n,e=1,o=20,c="desc",r="claude"){const i=a(r);return(await s.get(`${i}/sessions/${t}/${n}/messages`,{params:{page:e,limit:o,order:c}})).data}async function w(t,n,e="claude"){const o=a(e);return(await s.get(`${o}/sessions/${t}/${n}/outline`)).data}async function g(t,n,e="claude"){const o=a(e);return(await s.get(`${o}/sessions/${t}/${n}/status`)).data}async function h(t=5,n="claude"){const e=a(n);return(await s.get(`${e}/sessions/recent/list?limit=${t}`)).data}export{d as a,w as c,f as d,$ as f,u as i,g as l,c as m,r as n,h as o,l as p,i as r,y as s,p as t,o as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as e,o as a,st as l}from"./vue-vendor-BqZbbXHA.js";import{a as t,n}from"./client-UDwXBP9i.js";import{i as s,t as r}from"./platforms-FTpjxAT6.js";import{a as u,d as o,i,m as v,n as c,r as f,u as m}from"./sessions-Cmy31slD.js";var d=new Map,h=new Map,p=new Map,y=new Map,g=[1500,3500,7e3,12e3],w=[2500,5e3,1e4,15e3],j=new Map,S=new Map;function I(e,a){return`${e}:${a}`}function A(e){const a=d.get(e);return a?Date.now()-a.timestamp>2e4?(d.delete(e),null):a.payload:null}function k(e,a){d.set(e,{timestamp:Date.now(),payload:a})}function b(e,a){const l=I(e,a),t=h.get(l);return t?Date.now()-t.timestamp>2e4?(h.delete(l),null):t.payload:null}function P(e,a,l){h.set(I(e,a),{timestamp:Date.now(),payload:l})}function B(e,a){a?h.delete(I(e,a)):Array.from(h.keys()).filter(a=>a.startsWith(`${e}:`)).forEach(e=>h.delete(e))}function M(e,a){const l=e.get(a);l&&(clearTimeout(l),e.delete(a))}function z(e,a,l){M(e,l),a.delete(l)}function $(e,a,l,t,n,s,r){M(e,l);const u=a.get(l)||Date.now();a.set(l,u);const o=185e3-(Date.now()-u);if(o<=0)return a.delete(l),void r?.();const i=Math.min(t[Math.min(n,t.length-1)],o),v=setTimeout(()=>{e.delete(l),s()},i);e.set(l,v)}var D=a("sessions",()=>{const a=l([]),h=l(null),D=l(null),E=l(null),O=l(null),W=l([]),C=l({}),F=l(0),R=l(!1),T=l(null),U=l("claude"),x=new Map,N=e(()=>W.value.map(e=>({...e,alias:C.value[e.sessionId]||null}))),q=e(()=>Boolean(E.value?.refreshing)),G=e(()=>Boolean(O.value?.refreshing)),H=e(()=>Boolean(E.value?.fallback||E.value?.stale)),J=e(()=>Boolean(O.value?.fallback||O.value?.stale)),K=e(()=>Boolean(E.value?.refreshing&&E.value?.fallback&&0===a.value.length)),L=e(()=>Boolean(O.value?.refreshing&&O.value?.fallback&&0===W.value.length));function Q(){h.value&&(F.value=W.value.reduce((e,a)=>e+(Number(a.size)||0),0),P(U.value,h.value,{sessions:W.value,aliases:C.value,totalSize:F.value,projectInfo:D.value,meta:O.value}))}function V(e){z(p,j,e)}function X(e,a){z(y,S,I(e,a))}async function Y({force:e=!1,silent:l=!1,pollAttempt:u=0,fresh:o=!1}={}){l||(R.value=!0),T.value=null;try{const i=U.value;if(!e&&!o){const e=A(i);if(e&&!e.meta?.refreshing)return a.value=e.projects||[],h.value=e.currentProject||a.value[0]?.name||null,E.value=e.meta||null,void(l||(R.value=!1))}const v=!e&&!o;let c,f=v?x.get(i):null;f||(f=async function(e="claude",a={}){if(!s(e))return r(e,a);const l=t(e);return(await n.get(`${l}/projects`,{params:a.fresh?{fresh:"1"}:void 0})).data}(i,{fresh:e||o}),v&&x.set(i,f));try{c=await f}finally{v&&x.get(i)===f&&x.delete(i)}if(U.value!==i)return;const m=Array.isArray(c.projects)?c.projects:[],d=m.length>0||0===a.value.length||!0!==c.meta?.fallback;E.value=c.meta||null,c.meta?.error&&(T.value=c.meta.error),d&&(a.value=m,h.value=c.currentProject||m[0]?.name||null,!0!==c.meta?.fallback&&(B(i),k(i,{projects:m,currentProject:h.value,meta:c.meta||null}))),c.meta?.refreshing?function(e,a=0){$(p,j,e,g,a,()=>{U.value===e&&Y({force:!0,silent:!0,pollAttempt:a+1}).catch(()=>{})},()=>{U.value===e&&(E.value={...E.value||{},refreshing:!1,stale:!0,error:E.value?.error||"项目列表生成超时,请重试"},T.value=E.value.error)})}(i,u):V(i)}catch(i){T.value=i.message}finally{l||(R.value=!1)}}async function Z(e,{force:a=!1,silent:l=!1,pollAttempt:t=0,fresh:n=!1}={}){l||(R.value=!0),T.value=null;try{const s=U.value;if(h.value===e||b(s,e)||(W.value=[],C.value={},F.value=0,D.value=null,O.value=null),!a){const a=b(s,e);if(a)return W.value=a.sessions||[],C.value=a.aliases||{},F.value=a.totalSize||0,h.value=e,D.value=a.projectInfo||null,O.value=a.meta||null,void(l||(R.value=!1))}h.value=e;const r=await m(e,s,{fresh:n});if(U.value!==s||h.value!==e)return;const u=Array.isArray(r.sessions)?r.sessions:[],o=u.length>0||0===W.value.length||!0!==r.meta?.fallback;O.value=r.meta||null,r.meta?.error&&(T.value=r.meta.error),h.value=e,o&&(W.value=u,C.value=r.aliases||{},F.value=r.totalSize||0,D.value=r.projectInfo||null,!0!==r.meta?.fallback&&P(s,e,{sessions:u,aliases:r.aliases||{},totalSize:r.totalSize||0,projectInfo:r.projectInfo||null,meta:r.meta||null})),r.meta?.refreshing?function(e,a,l=0){const t=I(e,a);$(y,S,t,w,l,()=>{U.value===e&&h.value===a&&Z(a,{force:!0,silent:!0,pollAttempt:l+1}).catch(()=>{})},()=>{U.value===e&&h.value===a&&(O.value={...O.value||{},refreshing:!1,stale:!0,error:O.value?.error||"会话列表生成超时,请重试"},T.value=O.value.error)})}(s,e,t):X(s,e)}catch(s){T.value=s.message}finally{l||(R.value=!1)}}return{projects:a,currentProject:h,currentProjectInfo:D,projectsMeta:E,sessionsMeta:O,sessions:W,aliases:C,totalSize:F,loading:R,error:T,currentChannel:U,sessionsWithAlias:N,projectsRefreshing:q,sessionsRefreshing:G,projectsUsingFallback:H,sessionsUsingFallback:J,projectsPending:K,sessionsPending:L,setChannel:function(e){if(U.value===e)return;const l=U.value;!function(e){M(p,e)}(l),j.delete(l),Array.from(y.keys()).filter(e=>e.startsWith(`${l}:`)).forEach(e=>z(y,S,e)),U.value=e,a.value=[],h.value=null,E.value=null,W.value=[],C.value={},F.value=0,D.value=null,O.value=null,T.value=null;const t=A(e);t&&(a.value=t.projects||[],h.value=t.currentProject||a.value[0]?.name||null,E.value=t.meta||null)},fetchProjects:Y,fetchSessions:Z,retryProjects:async function(){return V(U.value),Y({force:!0,fresh:Boolean(E.value?.error)})},retrySessions:async function(e=h.value){if(e)return X(U.value,e),Z(e,{force:!0,fresh:Boolean(O.value?.error)})},setAlias:async function(e,a){try{await v(e,a),C.value[e]=a}catch(l){throw T.value=l.message,l}},deleteAlias:async function(e){try{await c(e),delete C.value[e]}catch(a){throw T.value=a.message,a}},deleteSession:async function(e){try{await f(h.value,e,U.value),W.value=W.value.filter(a=>a.sessionId!==e),C.value[e]&&delete C.value[e],Q()}catch(a){throw T.value=a.message,a}},deleteSessions:async function(e=[]){const a=Array.from(new Set((e||[]).filter(Boolean)));if(0===a.length)return{deletedSessionIds:[],failed:[]};let l=[],t=[];try{const e=await i(h.value,a,U.value);l=Array.isArray(e?.deletedSessionIds)?e.deletedSessionIds:[],t=Array.isArray(e?.failed)?e.failed.map(e=>({sessionId:e.sessionId,error:new Error(e.error||"删除失败")})):[]}catch(n){throw T.value=n.message,n}if(l.length>0){const e=new Set(l);W.value=W.value.filter(a=>!e.has(a.sessionId)),Object.keys(C.value).forEach(a=>{e.has(a)&&delete C.value[a]}),Q()}return t.length>0&&0===l.length&&(T.value=t[0].error.message),{deletedSessionIds:l,failed:t}},forkSession:async function(e,a={}){try{const l=await u(h.value,e,U.value,a);return await Z(h.value,{force:!0,fresh:!0}),l.newSessionId}catch(l){throw T.value=l.message,l}},saveProjectOrder:async function(e){try{await async function(e,a="claude"){const l=t(a);return(await n.post(`${l}/projects/order`,{order:e})).data}(e,U.value);const l=e.map(e=>a.value.find(a=>a.name===e)).filter(Boolean),s=a.value.filter(a=>!e.includes(a.name));a.value=[...l,...s],k(U.value,{projects:a.value,currentProject:h.value,meta:E.value})}catch(l){throw T.value=l.message,l}},saveSessionOrder:async function(e){try{await o(h.value,e,U.value);const a=e.map(e=>W.value.find(a=>a.sessionId===e)).filter(Boolean),l=W.value.filter(a=>!e.includes(a.sessionId));W.value=[...a,...l],P(U.value,h.value,{sessions:W.value,aliases:C.value,totalSize:F.value,projectInfo:D.value,meta:O.value})}catch(a){throw T.value=a.message,a}},deleteProject:async function(e){try{await async function(e,a="claude"){const l=t(a);return(await n.delete(`${l}/projects/${e}`)).data}(e,U.value),a.value=a.value.filter(a=>a.name!==e),h.value===e&&(h.value=null),l=U.value,d.delete(l),B(U.value,e)}catch(s){throw T.value=s.message,s}var l}}});export{D as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o,Dt as r,F as e,M as i,Ot as n,Yt as a,_ as l,an as t,hn as s,x as d}from"./_plugin-vue_export-helper-BeLZJZij.js";import{D as p,N as c,g,h as u,j as h}from"./vue-vendor-BqZbbXHA.js";function x(){return null!==h()}var C="undefined"!=typeof window;function f(o,r=!0,e=[]){return o.forEach(o=>{if(null!==o)if("object"==typeof o)if(Array.isArray(o))f(o,r,e);else if(o.type===g){if(null===o.children)return;Array.isArray(o.children)&&f(o.children,r,e)}else{if(o.type===u&&r)return;e.push(o)}else"string"!=typeof o&&"number"!=typeof o||e.push(p(String(o)))}),e}function b(o,r="default",e=void 0){const i=o[r];if(!i)return n("getFirstSlotVNode",`slot[${r}] is empty`),null;const a=f(i(e));return 1===a.length?a[0]:(n("getFirstSlotVNode",`slot[${r}] should have exactly one child`),null)}function m(o,r,e){if(!r)return null;const i=f(r(e));return 1===i.length?i[0]:(n("getFirstSlotVNode",`slot[${o}] should have exactly one child`),null)}function S(o,r=[],e){const i={};return r.forEach(r=>{i[r]=o[r]}),Object.assign(i,e)}function v(o,...r){return"function"==typeof o?o(...r):"string"==typeof o?p(o):"number"==typeof o?p(String(o)):null}var $={height:"calc(var(--n-option-height) * 7.6)",paddingTiny:"4px 0",paddingSmall:"4px 0",paddingMedium:"4px 0",paddingLarge:"4px 0",paddingHuge:"4px 0",optionPaddingTiny:"0 12px",optionPaddingSmall:"0 12px",optionPaddingMedium:"0 12px",optionPaddingLarge:"0 12px",optionPaddingHuge:"0 12px",loadingSize:"18px"};function y(o){const{borderRadius:r,popoverColor:e,textColor3:i,dividerColor:n,textColor2:a,primaryColorPressed:l,textColorDisabled:t,primaryColor:s,opacityDisabled:d,hoverColor:p,fontSizeTiny:c,fontSizeSmall:g,fontSizeMedium:u,fontSizeLarge:h,fontSizeHuge:x,heightTiny:C,heightSmall:f,heightMedium:b,heightLarge:m,heightHuge:S}=o;return Object.assign(Object.assign({},$),{optionFontSizeTiny:c,optionFontSizeSmall:g,optionFontSizeMedium:u,optionFontSizeLarge:h,optionFontSizeHuge:x,optionHeightTiny:C,optionHeightSmall:f,optionHeightMedium:b,optionHeightLarge:m,optionHeightHuge:S,borderRadius:r,color:e,groupHeaderTextColor:i,actionDividerColor:n,optionTextColor:a,optionTextColorPressed:l,optionTextColorDisabled:t,optionTextColorActive:s,optionOpacityDisabled:d,optionCheckColor:s,optionColorPending:p,optionColorActive:"rgba(0, 0, 0, 0)",optionColorActivePending:p,actionTextColor:a,loadingColor:s})}var H=i({name:"InternalSelectMenu",common:o,peers:{Scrollbar:d,Empty:l},self:y}),{cubicBezierEaseIn:w,cubicBezierEaseOut:z}=e;function T({transformOrigin:o="inherit",duration:r=".2s",enterScale:e=".9",originalTransform:i="",originalTransition:n=""}={}){return[s("&.fade-in-scale-up-transition-leave-active",{transformOrigin:o,transition:`opacity ${r} ${w}, transform ${r} ${w} ${n&&`,${n}`}`}),s("&.fade-in-scale-up-transition-enter-active",{transformOrigin:o,transition:`opacity ${r} ${z}, transform ${r} ${z} ${n&&`,${n}`}`}),s("&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to",{opacity:0,transform:`${i} scale(${e})`}),s("&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to",{opacity:1,transform:`${i} scale(1)`})]}var D={space:"6px",spaceArrow:"10px",arrowOffset:"10px",arrowOffsetVertical:"10px",arrowHeight:"6px",padding:"8px 14px"};function F(o){const{boxShadow2:r,popoverColor:e,textColor2:i,borderRadius:n,fontSize:a,dividerColor:l}=o;return Object.assign(Object.assign({},D),{fontSize:a,borderRadius:n,color:e,dividerColor:l,textColor:i,boxShadow:r})}var E=i({name:"Popover",common:o,peers:{Scrollbar:d},self:F}),M={paddingSingle:"0 26px 0 12px",paddingMultiple:"3px 26px 0 12px",clearSize:"16px",arrowSize:"16px"};var W=i({name:"InternalSelection",common:o,peers:{Popover:E},self:function(o){const{borderRadius:r,textColor2:e,textColorDisabled:i,inputColor:n,inputColorDisabled:a,primaryColor:l,primaryColorHover:s,warningColor:d,warningColorHover:p,errorColor:c,errorColorHover:g,borderColor:u,iconColor:h,iconColorDisabled:x,clearColor:C,clearColorHover:f,clearColorPressed:b,placeholderColor:m,placeholderColorDisabled:S,fontSizeTiny:v,fontSizeSmall:$,fontSizeMedium:y,fontSizeLarge:H,heightTiny:w,heightSmall:z,heightMedium:T,heightLarge:D,fontWeight:F}=o;return Object.assign(Object.assign({},M),{fontSizeTiny:v,fontSizeSmall:$,fontSizeMedium:y,fontSizeLarge:H,heightTiny:w,heightSmall:z,heightMedium:T,heightLarge:D,borderRadius:r,fontWeight:F,textColor:e,textColorDisabled:i,placeholderColor:m,placeholderColorDisabled:S,color:n,colorDisabled:a,colorActive:n,border:`1px solid ${u}`,borderHover:`1px solid ${s}`,borderActive:`1px solid ${l}`,borderFocus:`1px solid ${s}`,boxShadowHover:"none",boxShadowActive:`0 0 0 2px ${t(l,{alpha:.2})}`,boxShadowFocus:`0 0 0 2px ${t(l,{alpha:.2})}`,caretColor:l,arrowColor:h,arrowColorDisabled:x,loadingColor:l,borderWarning:`1px solid ${d}`,borderHoverWarning:`1px solid ${p}`,borderActiveWarning:`1px solid ${d}`,borderFocusWarning:`1px solid ${p}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 0 2px ${t(d,{alpha:.2})}`,boxShadowFocusWarning:`0 0 0 2px ${t(d,{alpha:.2})}`,colorActiveWarning:n,caretColorWarning:d,borderError:`1px solid ${c}`,borderHoverError:`1px solid ${g}`,borderActiveError:`1px solid ${c}`,borderFocusError:`1px solid ${g}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 0 2px ${t(c,{alpha:.2})}`,boxShadowFocusError:`0 0 0 2px ${t(c,{alpha:.2})}`,colorActiveError:n,caretColorError:c,clearColor:C,clearColorHover:f,clearColorPressed:b})}}),A={paddingTiny:"0 8px",paddingSmall:"0 10px",paddingMedium:"0 12px",paddingLarge:"0 14px",clearSize:"16px"};var L=i({name:"Input",common:o,peers:{Scrollbar:d},self:function(o){const{textColor2:r,textColor3:e,textColorDisabled:i,primaryColor:n,primaryColorHover:a,inputColor:l,inputColorDisabled:s,borderColor:d,warningColor:p,warningColorHover:c,errorColor:g,errorColorHover:u,borderRadius:h,lineHeight:x,fontSizeTiny:C,fontSizeSmall:f,fontSizeMedium:b,fontSizeLarge:m,heightTiny:S,heightSmall:v,heightMedium:$,heightLarge:y,actionColor:H,clearColor:w,clearColorHover:z,clearColorPressed:T,placeholderColor:D,placeholderColorDisabled:F,iconColor:E,iconColorDisabled:M,iconColorHover:W,iconColorPressed:L,fontWeight:O}=o;return Object.assign(Object.assign({},A),{fontWeight:O,countTextColorDisabled:i,countTextColor:e,heightTiny:S,heightSmall:v,heightMedium:$,heightLarge:y,fontSizeTiny:C,fontSizeSmall:f,fontSizeMedium:b,fontSizeLarge:m,lineHeight:x,lineHeightTextarea:x,borderRadius:h,iconSize:"16px",groupLabelColor:H,groupLabelTextColor:r,textColor:r,textColorDisabled:i,textDecorationColor:r,caretColor:n,placeholderColor:D,placeholderColorDisabled:F,color:l,colorDisabled:s,colorFocus:l,groupLabelBorder:`1px solid ${d}`,border:`1px solid ${d}`,borderHover:`1px solid ${a}`,borderDisabled:`1px solid ${d}`,borderFocus:`1px solid ${a}`,boxShadowFocus:`0 0 0 2px ${t(n,{alpha:.2})}`,loadingColor:n,loadingColorWarning:p,borderWarning:`1px solid ${p}`,borderHoverWarning:`1px solid ${c}`,colorFocusWarning:l,borderFocusWarning:`1px solid ${c}`,boxShadowFocusWarning:`0 0 0 2px ${t(p,{alpha:.2})}`,caretColorWarning:p,loadingColorError:g,borderError:`1px solid ${g}`,borderHoverError:`1px solid ${u}`,colorFocusError:l,borderFocusError:`1px solid ${u}`,boxShadowFocusError:`0 0 0 2px ${t(g,{alpha:.2})}`,caretColorError:g,clearColor:w,clearColorHover:z,clearColorPressed:T,iconColor:E,iconColorDisabled:M,iconColorHover:W,iconColorPressed:L,suffixTextColor:r})}});function O(o){const{boxShadow2:r}=o;return{menuBoxShadow:r}}var P=i({name:"Select",common:o,peers:{InternalSelection:W,InternalSelectMenu:H},self:O}),j=a("n-message-api"),R=a("n-message-provider");function I(){const o=c(j,null);return null===o&&r("use-message","No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),o}export{b as _,O as a,x as b,W as c,F as d,T as f,S as g,v as h,P as i,M as l,y as m,j as n,L as o,H as p,R as r,A as s,I as t,E as u,m as v,C as x,f as y};
|