@minimaxclaw/cli 1.0.41 → 1.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +19 -17
  2. package/bin/dscode.exe +4 -0
  3. package/install.cjs +15 -0
  4. package/package.json +9 -9
  5. package/web/dist/assets/AssistantsView-Y4TXobGE.js +1 -0
  6. package/web/dist/assets/AutomationView-DfAF2L92.js +3 -0
  7. package/web/dist/assets/Button-D-g7PgYh.js +1 -0
  8. package/web/dist/assets/ChannelConfigView-WJ-zUV8p.js +12 -0
  9. package/web/dist/assets/ChartsView-CSAfGqTC.js +1 -0
  10. package/web/dist/assets/ConnectorsView-DaHmxnGE.js +2 -0
  11. package/web/dist/assets/{MessageBubble-CV16DZMG.js → DiffPreview-D8tIj_aF.js} +64 -67
  12. package/web/dist/assets/FileContextMenu-C5WYeBNu.js +1 -0
  13. package/web/dist/assets/FileTreeView-B7IN0KmE.js +1 -0
  14. package/web/dist/assets/HookConfigView-9gqvrRhQ.js +2 -0
  15. package/web/dist/assets/InboxView-BcEfijbj.js +1 -0
  16. package/web/dist/assets/InputArea-D5F91Uwk.js +14 -0
  17. package/web/dist/assets/Install-Cuelo0If.js +2 -0
  18. package/web/dist/assets/MemoryView-BvZSh5-T.js +1 -0
  19. package/web/dist/assets/ModelsView-BgvMN8xv.js +1 -0
  20. package/web/dist/assets/PluginsView-C3d6e8vV.js +1 -0
  21. package/web/dist/assets/ProjectsView-CM7GOsoK.js +1 -0
  22. package/web/dist/assets/SessionGrid-BQSrCDqQ.js +4 -0
  23. package/web/dist/assets/SettingsModal-BvGXq5EE.js +4 -0
  24. package/web/dist/assets/SkillsView-87kGRliE.js +1 -0
  25. package/web/dist/assets/TemplatesTab-8MLwVNwV.js +1 -0
  26. package/web/dist/assets/ToolsView-CjdYiaNz.js +1 -0
  27. package/web/dist/assets/{agentIconSet-Btsb_SC4.js → agentIconSet-CDeMxTHf.js} +1 -1
  28. package/web/dist/assets/api-ZQf0Ys8y.js +1 -0
  29. package/web/dist/assets/channelMeta-BO645sjD.js +1 -0
  30. package/web/dist/assets/common-CPZxdYLs.js +304 -0
  31. package/web/dist/assets/icons-B8Ngx6rM.js +1 -0
  32. package/web/dist/assets/imageUrl-CrQM4gmf.js +74 -0
  33. package/web/dist/assets/index-Bm7r92T3.css +1 -0
  34. package/web/dist/assets/index-STsyoFCk.js +145 -0
  35. package/web/dist/assets/installDiagnosis-ZYUVgJIJ.js +3 -0
  36. package/web/dist/assets/{markdown-DAQZeY5V.js → markdown-Cps-36Z5.js} +1 -1
  37. package/web/dist/assets/{panels-DYiQiVWh.js → panels-DCwx2Pbu.js} +1 -1
  38. package/web/dist/assets/{react-vendor-BlngCquv.js → react-vendor-CXI113IS.js} +1 -1
  39. package/web/dist/assets/sessionKind-CZ1kQQII.js +1 -0
  40. package/web/dist/assets/settingsStore-BSdi9gNd.js +1 -0
  41. package/web/dist/assets/src-BK8SoTFV.js +1 -0
  42. package/web/dist/assets/{state-_ZfNVAsd.js → state-pOTP5BEk.js} +1 -1
  43. package/web/dist/assets/statusAxesRefresh--2evRuAU.js +1 -0
  44. package/web/dist/assets/sttLanguages-BPcOF0nQ.js +2 -0
  45. package/web/dist/assets/{types-JssxRFJn.js → threads-lr33dwqg.js} +1 -1
  46. package/web/dist/assets/useConfirm-CQjBnYuP.js +1 -0
  47. package/web/dist/assets/{useTranslation-BGmCDuQI.js → useTranslation-gGKZZfux.js} +1 -1
  48. package/web/dist/assets/websocket-CeKJTCdp.js +1 -0
  49. package/web/dist/assets/whatsNewStore-C0hbStfc.js +1 -0
  50. package/web/dist/assets/{workspaceSemantics-RaIRer76.js → workspaceSemantics-CW8ytHq2.js} +3 -3
  51. package/web/dist/favicon.svg +31 -14
  52. package/web/dist/icons/icon-1024.png +0 -0
  53. package/web/dist/icons/icon-180.png +0 -0
  54. package/web/dist/icons/icon-192.png +0 -0
  55. package/web/dist/icons/icon-512.png +0 -0
  56. package/web/dist/icons/icon-maskable-512.png +0 -0
  57. package/web/dist/index.html +38 -35
  58. package/web/dist/logo.svg +42 -20
  59. package/web/dist/manifest.webmanifest +2 -2
  60. package/web/dist/vendor/MANIFEST.json +24 -0
  61. package/web/dist/vendor/d3.min.js +2 -0
  62. package/web/dist/vendor/echarts.min.js +45 -0
  63. package/web/dist/assets/AssistantsView-dhdYVIy0.js +0 -1
  64. package/web/dist/assets/AutomationView-D1dU5ZV7.js +0 -1
  65. package/web/dist/assets/ChannelConfigView-CEPVZntU.js +0 -8
  66. package/web/dist/assets/ChartsView-DdN-beHW.js +0 -1
  67. package/web/dist/assets/ConnectorsView-CseCss9C.js +0 -1
  68. package/web/dist/assets/FileTreeView-Dnc3-gRF.js +0 -1
  69. package/web/dist/assets/HookConfigView-DA2h4HdJ.js +0 -1
  70. package/web/dist/assets/InputArea-DAgOOjOc.js +0 -14
  71. package/web/dist/assets/MemoryView-D6OUBi4-.js +0 -1
  72. package/web/dist/assets/ModelsView-BuqD9vWl.js +0 -1
  73. package/web/dist/assets/PluginsView-CIziDHFJ.js +0 -2
  74. package/web/dist/assets/ProjectsView-c6faWy32.js +0 -1
  75. package/web/dist/assets/SessionGrid-BZJHcklh.js +0 -4
  76. package/web/dist/assets/SettingsModal-BqdGEGW-.js +0 -4
  77. package/web/dist/assets/SkillsView-CB6CKkmb.js +0 -1
  78. package/web/dist/assets/TemplatesTab-B8efVwVZ.js +0 -1
  79. package/web/dist/assets/ThreadsView-CDoM0aNb.js +0 -2
  80. package/web/dist/assets/ToolsView-BG-xsWsO.js +0 -1
  81. package/web/dist/assets/api-CCt9DRQm.js +0 -1
  82. package/web/dist/assets/channelMeta-BGQXQxgj.js +0 -1
  83. package/web/dist/assets/cn-rx4uumOJ.js +0 -1
  84. package/web/dist/assets/common-BHXgEvgk.js +0 -192
  85. package/web/dist/assets/icons-BvYhTENi.js +0 -1
  86. package/web/dist/assets/index-BNI6CNsY.css +0 -1
  87. package/web/dist/assets/index-BX-d2OBW.js +0 -130
  88. package/web/dist/assets/settingsStore-RLUAWgIk.js +0 -1
  89. package/web/dist/assets/src-49LUQhkG.js +0 -1
  90. package/web/dist/assets/sttLanguages-aqoVC79g.js +0 -2
  91. package/web/dist/assets/ttsSettings-DHo3OsOq.js +0 -15
  92. package/web/dist/assets/websocket-C9e3h7VU.js +0 -1
  93. package/web/dist/assets/whatsNewStore-Bf_7lW8o.js +0 -1
  94. /package/web/dist/assets/{MessageBubble-CCTRbIMZ.css → DiffPreview-CCTRbIMZ.css} +0 -0
@@ -1 +0,0 @@
1
- import{n as e}from"./state-_ZfNVAsd.js";import"./src-49LUQhkG.js";var t=e()(e=>({serverVersion:null,protocolVersion:null,capabilities:[],setHelloAck:t=>e({serverVersion:t.serverVersion||null,protocolVersion:t.protocolVersion||null,capabilities:t.capabilities})}));function n(){return`err-${Date.now()}-${Math.random().toString(36).slice(2,7)}`}var r=e(e=>({errors:[],push:(t,r,i,a,o)=>{let s=``;return e(e=>{let c=e.errors.find(e=>!e.dismissed&&!e.action&&e.level===t&&e.title===r);if(c)return s=c.id,{errors:e.errors.map(e=>e.id===c.id?{...e,count:e.count+1,timestamp:Date.now()}:e)};let l=n();s=l;let u={id:l,level:t,title:r,detail:i,action:a,timestamp:Date.now(),dismissed:!1,durationMs:o,count:1};return{errors:[...e.errors.slice(-49),u]}}),s},dismiss:t=>e(e=>({errors:e.errors.map(e=>e.id===t?{...e,dismissed:!0}:e)})),clearAll:()=>e({errors:[]})})),i={info:(e,t,n)=>r.getState().push(`info`,e,t,void 0,n),warn:(e,t,n)=>r.getState().push(`warning`,e,t,void 0,n),error:(e,t,n)=>r.getState().push(`error`,e,t,void 0,n),critical:(e,t,n)=>r.getState().push(`critical`,e,t,void 0,n)},a=20,o=15e3,s=[500,1e3,2e3,5e3,1e4,o],c=3,l=`dscode_pending_frames`,u=new Set([`question_answer`,`hook_allow`,`hook_deny`,`form_answer`]);function d(){try{let e=localStorage.getItem(l);if(!e)return[];let t=JSON.parse(e);if(!Array.isArray(t))return[];let n=Date.now()-6e5;return t.filter(e=>!!e&&typeof e.type==`string`&&u.has(e.type)&&typeof e.queuedAt==`number`&&e.queuedAt>=n)}catch{return[]}}function f(e){try{localStorage.setItem(l,JSON.stringify(e.slice(-20)))}catch{}}var p=()=>{let e=window.location.protocol===`https:`?`wss:`:`ws:`,t=window.location.hostname,n=window.location.port,r=n?String(Number(n)+1):``;return`${e}//${r?`${t}:${r}`:t}/ws`},m=p(),h=`dscode_client_id`;function g(){try{let e=localStorage.getItem(h);if(e)return e;let t=`web-${typeof crypto<`u`&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,10)}`;return localStorage.setItem(h,t),t}catch{return`web-${Math.random().toString(36).slice(2,10)}`}}var _=new class e{ws=null;url;clientId=g();messageHandlers=new Set;openHandlers=new Set;closeHandlers=new Set;errorHandlers=new Set;reconnectAttempts=0;reconnectHandlers=new Set;reconnectSuccessHandlers=new Set;reconnectGiveUpHandlers=new Set;isManualClose=!1;authenticated=!1;bfCached=!1;sessionId=null;visibleSessions=new Set;pendingFrames=d();heartbeatInterval=null;reconnectTimer=null;awaitingPong=0;HEARTBEAT_INTERVAL=15e3;MAX_MISSED_PONGS=3;static FOREGROUND_PROBE_TIMEOUT_MS=3e3;constructor(e){this.url=e||m,typeof window<`u`&&(window.addEventListener(`pagehide`,e=>{e.persisted&&this.enterBfCache()}),window.addEventListener(`pageshow`,e=>{e.persisted&&this.exitBfCache()}),window.addEventListener(`online`,()=>this.retryImmediately(`网络恢复`)),document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&this.probeOnForeground()}))}setSessionId(e){this.sessionId=e}setVisibleSessions(e){let t=new Set;for(let n of e)n&&t.add(n);if(t.size===this.visibleSessions.size){let e=!0;for(let n of t)if(!this.visibleSessions.has(n)){e=!1;break}if(e)return}this.visibleSessions=t,this.sendSubscribeSessions()}sendSubscribeSessions(){if(this.visibleSessions.size!==0&&this.ws?.readyState===WebSocket.OPEN)try{this.ws.send(JSON.stringify({type:`subscribe_sessions`,data:JSON.stringify({sessionIds:[...this.visibleSessions]})}))}catch{}}getSessionId(){return this.sessionId}getPendingFrameCount(){return this.pendingFrames.length}getPendingFrameIds(){return this.pendingFrames.map(e=>e.id||e.type).filter(Boolean)}clearPendingQueue(){this.pendingFrames=[],f([])}enqueueReliableFrame(e){let t=(()=>{try{return e.data?JSON.parse(e.data):{}}catch{return{}}})(),n={type:e.type,sessionId:e.sessionId,data:e.data,id:typeof t.questionId==`string`?t.questionId:typeof t.approvalId==`string`?t.approvalId:typeof t.formId==`string`?t.formId:void 0,queuedAt:Date.now()},r=n.id?this.pendingFrames.filter(e=>e.id!==n.id||e.type!==n.type):this.pendingFrames;this.pendingFrames=[...r,n].slice(-20),f(this.pendingFrames),console.warn(`[WS] reliable frame queued (awaiting ack) ${e.type}${n.id?` (${n.id})`:``}`)}ackReliableFrame(e){if(!e)return;let t=this.pendingFrames.filter(t=>t.id!==e);t.length!==this.pendingFrames.length&&(this.pendingFrames=t,f(t))}flushPendingFrames(){if(this.ws?.readyState!==WebSocket.OPEN)return;let e=d(),t=[...this.pendingFrames];for(let n of e){let e=t.findIndex(e=>e.id===n.id&&e.type===n.type);e>=0?t[e]=n:t.push(n)}if(t.length!==0){this.pendingFrames=t.slice(-20),f(this.pendingFrames);for(let e of this.pendingFrames){if(this.ws?.readyState!==WebSocket.OPEN)break;try{this.ws.send(JSON.stringify({type:e.type,sessionId:e.sessionId,data:e.data}))}catch(t){console.warn(`[WS] Failed to replay pending frame`,e.type,String(t));break}}}}getReconnectState(){return{attempts:this.reconnectAttempts,maxAttempts:a,reconnecting:this.reconnectAttempts>0&&this.ws?.readyState!==WebSocket.OPEN}}onReconnectAttempt(e){return this.reconnectHandlers.add(e),()=>this.reconnectHandlers.delete(e)}onReconnectSuccess(e){return this.reconnectSuccessHandlers.add(e),()=>this.reconnectSuccessHandlers.delete(e)}onReconnectGiveUp(e){return this.reconnectGiveUpHandlers.add(e),()=>this.reconnectGiveUpHandlers.delete(e)}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;this.isManualClose=!1;let e=new URLSearchParams;this.sessionId&&e.set(`sessionId`,this.sessionId),e.set(`clientId`,this.clientId);let t=e.toString()?`${this.url}?${e.toString()}`:this.url;this.ws=new WebSocket(t),this.ws.binaryType=`arraybuffer`,this.ws.onopen=()=>{let e=this.reconnectAttempts>0;if(this.reconnectAttempts=0,this.awaitingPong=0,e&&this.reconnectSuccessHandlers.forEach(e=>e()),this.ws?.readyState===WebSocket.OPEN)try{this.ws.send(JSON.stringify({type:`hello`,clientType:`web`,protocolVersion:1,capabilities:[]}))}catch{}this.startHeartbeat(),this.ws?.readyState===WebSocket.OPEN&&(this.awaitingPong=1,this.ws.send(JSON.stringify({type:`ping`}))),this.flushPendingFrames(),this.sendSubscribeSessions(),this.openHandlers.forEach(e=>e())},this.ws.onclose=()=>{this.stopHeartbeat(),this.closeHandlers.forEach(e=>e()),!this.isManualClose&&!this.bfCached&&this.scheduleReconnect()},this.ws.onerror=e=>{this.reportConnectionTrouble(e.message||`Connection failed`),this.errorHandlers.forEach(e=>e())},this.ws.onmessage=e=>{this._onMessage(e)}}async _onMessage(e){try{let n;if(n=e.data instanceof Blob?await e.data.text():e.data instanceof ArrayBuffer?new TextDecoder().decode(e.data):typeof e.data==`string`?e.data:String(e.data),n=n.trim(),!n)return;let r=JSON.parse(n);if((r.type===`pong`||r.type===`ping`)&&(this.awaitingPong=0,r.type===`pong`))return;if(r.type===`hello_ack`){try{let e=typeof r.data==`string`?JSON.parse(r.data):r.data;e&&typeof e==`object`&&t.getState().setHelloAck({serverVersion:typeof e.serverVersion==`string`?e.serverVersion:``,protocolVersion:typeof e.protocolVersion==`number`?e.protocolVersion:0,capabilities:Array.isArray(e.capabilities)?e.capabilities.filter(e=>typeof e==`string`):[]})}catch{}return}if(r.seq!==void 0&&r.seq>=0&&this.send({type:`message_ack`,data:JSON.stringify({seq:r.seq})}),r.type===`question_answer_ack`||r.type===`hook_response_ack`)try{let e=(typeof r.data==`string`?JSON.parse(r.data):r.data)||{};this.ackReliableFrame(typeof e.questionId==`string`?e.questionId:typeof e.approvalId==`string`?e.approvalId:void 0)}catch{}this.messageHandlers.forEach(e=>e(r))}catch(t){let n=e.data?.constructor?.name||typeof e.data,r;if(r=e.data instanceof Blob?`[Blob ${e.data.size} bytes]`:e.data instanceof ArrayBuffer?`[ArrayBuffer ${e.data.byteLength} bytes]`:String(e.data).slice(0,500),typeof e.data==`string`&&e.data.trim()){let t=e.data.trim();try{this.messageHandlers.forEach(e=>e({type:`log`,data:JSON.stringify({level:`info`,message:t})}));return}catch{}}i.error(`Failed to parse WebSocket message`,`type=${n} data=${r} error=${t}`)}}startHeartbeat(){this.stopHeartbeat(),this.awaitingPong=0,this.heartbeatInterval=setInterval(()=>{this.bfCached||(this.awaitingPong>=this.MAX_MISSED_PONGS?this.forceReconnect(`Heartbeat timeout (${this.awaitingPong} missed pongs)`):this.ws?.readyState===WebSocket.OPEN&&(this.awaitingPong+=1,this.send({type:`ping`})))},this.HEARTBEAT_INTERVAL)}stopHeartbeat(){this.heartbeatInterval&&=(clearInterval(this.heartbeatInterval),null),this.awaitingPong=0}enterBfCache(){this.bfCached=!0,this.stopHeartbeat(),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null)}exitBfCache(){this.bfCached=!1,this.reconnectAttempts=0,this.ws?.readyState!==WebSocket.OPEN&&this.ws?.readyState!==WebSocket.CONNECTING&&this.connect()}scheduleReconnect(){if(this.reconnectAttempts++,this.reconnectAttempts>a){console.error(`[WS] Max reconnect attempts (${a}) reached — giving up.`),i.error(`WebSocket`,`Connection lost — max reconnect attempts (${a}) reached. Refresh the page to try again.`),this.reconnectGiveUpHandlers.forEach(e=>e());return}let e=s[Math.min(this.reconnectAttempts-1,s.length-1)]??o,t=Math.max(100,Math.round(e*(.8+Math.random()*.4)));this.reconnectHandlers.forEach(e=>e(this.reconnectAttempts,a)),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}reportConnectionTrouble(e){let t=Math.min(this.reconnectAttempts+1,a);this.reconnectAttempts<c?console.debug(`[WS] connection error (attempt ${t}/${a}): ${e}`):i.warn(`WebSocket 连接不稳定`,`正在重连(第 ${t}/${a} 次):${e}`)}retryImmediately(e){if(this.bfCached)return;let t=this.ws?.readyState;t!==WebSocket.OPEN&&t!==WebSocket.CONNECTING&&(this.reconnectAttempts!==0||this.reconnectTimer!==null)&&(console.debug(`[WS] ${e} → 立即重连(重置退避)`),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.reconnectAttempts=0,this.connect())}forceReconnect(e){console.warn(`[WS] ${e}, reconnecting...`),this.stopHeartbeat(),this.isManualClose=!0,this.ws?.close(),this.ws=null,this.scheduleReconnect()}probeOnForeground(){if(this.bfCached)return;let t=this.ws?.readyState;if(t===WebSocket.CONNECTING)return;if(t!==WebSocket.OPEN){this.retryImmediately(`标签页恢复可见`);return}if(this.awaitingPong<=0)return;this.awaitingPong+=1,this.send({type:`ping`});let n=this.awaitingPong;setTimeout(()=>{this.bfCached||this.ws?.readyState===WebSocket.OPEN&&this.awaitingPong>=n&&this.forceReconnect(`前台探活无应答(半开连接)`)},e.FOREGROUND_PROBE_TIMEOUT_MS)}disconnect(){this.isManualClose=!0,this.reconnectAttempts=0,this.stopHeartbeat(),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.ws?.close(),this.ws=null}send(e){if(e.type&&u.has(e.type)){if(this.enqueueReliableFrame(e),this.ws?.readyState===WebSocket.OPEN)try{this.ws.send(JSON.stringify(e))}catch{}return!0}if(this.ws?.readyState===WebSocket.OPEN){let t=JSON.stringify(e);return this.ws.send(t),!0}return console.warn(`[WS] NOT CONNECTED — dropping:`,e.type,e.sessionId,`readyState=`,this.ws?.readyState),!1}onMessage(e){return this.messageHandlers.add(e),()=>this.messageHandlers.delete(e)}onOpen(e){return this.openHandlers.add(e),()=>this.openHandlers.delete(e)}onClose(e){return this.closeHandlers.add(e),()=>this.closeHandlers.delete(e)}onError(e){return this.errorHandlers.add(e),()=>this.errorHandlers.delete(e)}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}setToken(e){try{sessionStorage.setItem(`auth_token`,e)}catch{}}get isAuthenticated(){return this.authenticated}setAuthenticated(e){this.authenticated=e}};export{r as i,_ as n,i as r,p as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./state-_ZfNVAsd.js";var t=e(e=>({isOpen:!1,entries:null,openWhatsNew:t=>e({isOpen:!0,entries:t??null}),closeWhatsNew:()=>e({isOpen:!1})}));export{t};