chainlesschain 0.166.80 → 0.166.81
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 +8 -8
- package/package.json +2 -2
- package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
- package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-C5NtVVBN.js → AIOps-BZPs-bVl.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-CE9-HsoR.js → ActionButton-BP1iLSwn.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DRO6sI0Z.js → Analytics-WxwtPqcd.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-CuVJiyC_.js → AppLayout-DvcgeNkP.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-GNahHsyZ.js → Artifacts-CtYGOtnT.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-DWvTomfm.js → Audit-BBzFYWMk.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-k4TuA3ec.js → BackgroundAgents-Dl9wCt0Y.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-BxqN-65D.js → Backup-CAL13Eak.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-CYYLvwwD.js → BaseInput-f_lncpU_.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-CoDmZ9yb.js → Chat-DLEbkiqI.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-ChTIMWch.js → ChatBubbleRenderer-1tCmIvv1.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-CRVlfbkN.js → Checkbox-SNvgd2UG.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BttMy7rW.js → Codegen-BG0D-INl.js} +1 -1
- package/src/assets/web-panel/assets/{Col-DsdlE4QC.js → Col-DUBBZz0e.js} +1 -1
- package/src/assets/web-panel/assets/{Community-BulheyO-.js → Community-8LfuBDPs.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-BC_7wMxW.js → Compact-GWs7Ka6o.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BA3PDNLK.js → Compliance-CXRhB-KC.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-B6Y3L-GP.js → Cowork-OpW8dLKg.js} +4 -4
- package/src/assets/web-panel/assets/{Cron-DLk_CG77.js → Cron-6e47Syc_.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-CvsKV-90.js → Crosschain-D-vGH4nC.js} +1 -1
- package/src/assets/web-panel/assets/{DID-CD8K9G3F.js → DID-zEIa2jNx.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-CXNE434f.js → Dashboard-BfUbZxsl.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-C_P5mttB.js → Dropdown-BeCD8gf0.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-MxZvItNA.js → EmailListRenderer-apOBM2r2.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-DRoJQrDb.js → EvolutionSettings-C2dK36po.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-CBrz9T6T.js → FamilyGuardDashboard-DPMLWPTR.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DKlGgjNs.js → Federation-CivI2pzm.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CteicPS5.js → FormItemContext-B3zrwBDw.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-Bs10mDna.js → GenericCardRenderer-jGgdcPck.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CXwzFBIh.js → Git-Cpfkrasd.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-CYzcwfwf.js → Governance-DG8_7YS3.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-pYpCF1ws.js → Inference-TQgUqPXx.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-B0YJnOpj.js → KnowledgeGraph-By657fHZ.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-D-hJWfq-.js → Logs-CFJ_70-E.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-BPQlDtB7.js → MarkdownRenderer-BpRWpN1E.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-D5ZmI-si.js → Marketplace-BWC3xler.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DByD6jY1.js → McpTools-B0NkUzeJ.js} +3 -3
- package/src/assets/web-panel/assets/{Memory--lsjJd7Y.js → Memory-DBnXwjWD.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-GQ3vGZO9.js → MobileBridge-BNWDrEJ4.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-Dh2wq-NU.js → MobileProjects-BaE94B_N.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-uQFoRe_Z.js → Mtc-Bp3OAEYb.js} +5 -5
- package/src/assets/web-panel/assets/{MtcAudit-BUBYbvuz.js → MtcAudit-_1T24zO3.js} +4 -4
- package/src/assets/web-panel/assets/{Multisig-D790SLqM.js → Multisig-C2i6Yi0B.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-DcV9gSqn.js → NLProgramming-CBq3ujGE.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-sVl7Y_vt.js → Notes-BxRmci_W.js} +4 -4
- package/src/assets/web-panel/assets/{NotificationSettings-BHRPqBZ3.js → NotificationSettings-CqBLgOdv.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-B029pIMF.js → OrderTableRenderer-cODPlpK7.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BKrF-dtp.js → Organization-DlTnQBlp.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-DOAGxhhi.js → Overflow-Df2jS2Ep.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-7uQ4F7lh.js → P2P-BwieT0aA.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-BegpATva.js → PdhVaultBrowser-Btw816xR.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-C0qK0tAi.js → Permissions-BhVYLcqT.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-DCnfXKyb.js → PersonalDataHub-CPbNKPCA.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-D8wdVvao.js → Pipeline-B1BuhoY3.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-C-dGmb9y.js → Privacy-BWeikVbU.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-ChKvrsfc.js → ProjectInit-BVXcimHE.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-CaWnzNBi.js → ProjectSettings-CX87x3rT.js} +2 -2
- package/src/assets/web-panel/assets/Projects-3Qo2Mvxb.js +1 -0
- package/src/assets/web-panel/assets/{Providers-DTufbN-S.js → Providers-CGm0Wuer.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-CGv6QJMC.js → QrScannerModal-DJxv7J64.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-BfNcUCfG.js → QuickAsk-DOXBReRk.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-B0s5YT2K.js → Recommend--MiLwmLM.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-YCs5wa8P.js → RemoteSession-D6LoXH94.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-DBC__Ylq.js → Reputation-G2jToiqh.js} +1 -1
- package/src/assets/web-panel/assets/{Row-D_NT1ROe.js → Row-B79ZV_lZ.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-Dd9ktNRw.js → RssFeed-CHQN68w_.js} +3 -3
- package/src/assets/web-panel/assets/{Search-BsmlT4PY.js → Search-j7v5S2Fa.js} +1 -1
- package/src/assets/web-panel/assets/{Security-DN-_e3oM.js → Security-B2ykFZJH.js} +3 -3
- package/src/assets/web-panel/assets/{Services-Bm_KqSDz.js → Services-H8BK8uX0.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-BYldeYI0.js → Skeleton-XEUUrOTK.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-h7XAXSls.js → Skills-B387UJPk.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-4ArxAaMJ.js → Sla-CWWBujpe.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-B639ejZr.js → SpeechSettings-Q2AOv9DV.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-DR6RRo1O.js → SyncSettings-OSNyOUr8.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-DysrrJVE.js → Tasks-DfUDrno5.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-DyyB9L9f.js → Templates-CSTkzDRS.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-XbmWbUl1.js → Tenant-BR__gCTG.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-C5GeciJG.js → Terminal-Bv4DM5OI.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-Db-NjeVy.js → TimelineRenderer-DUnZuAtn.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Btm9pYvJ.js → Tokens-Dm0sczRV.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-BhJ35b0V.js → Trigger-DsSOp0Ob.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-C5T4GJky.js → Trust-C0HJtFwV.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-CqWxh5U0.js → UkeySign-BbqIZiX-.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-DKyI9zg1.js → VideoEditing-D7dDTt3D.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-kgvyQOtT.js → Wallet-DJGu0KWq.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-1wWucdJt.js → WebAuthn-x8OoogZU.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-rHVIbLME.js → WorkflowEditor-CC3jIUqx.js} +1 -1
- package/src/assets/web-panel/assets/{chat-DV8ZtfWQ.js → chat-Bqgv5oe8.js} +1 -1
- package/src/assets/web-panel/assets/{colors-zznFfEpj.js → colors-CbAMqLFr.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CWk10Qsu.js → compact-item-B-zIDFg3.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-CtoMW-kY.js → createContext-D_s1ZLtZ.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-QMSC9xgn.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-ieyHKAZZ.js → hasIn-Cj_J9Eb9.js} +1 -1
- package/src/assets/web-panel/assets/{index-D7yq9nAq.js → index-0je3TLmx.js} +1 -1
- package/src/assets/web-panel/assets/{index-CLeX8Qp7.js → index-3o8DjHHt.js} +1 -1
- package/src/assets/web-panel/assets/{index-CrBful_u.js → index-B6qoyCkx.js} +1 -1
- package/src/assets/web-panel/assets/{index-BrpyZMUe.js → index-BFNO6ycz.js} +1 -1
- package/src/assets/web-panel/assets/{index-D9jmNLfO.js → index-BGxI_Qxg.js} +1 -1
- package/src/assets/web-panel/assets/{index-G9bqTRu6.js → index-BLwUCYDf.js} +1 -1
- package/src/assets/web-panel/assets/{index-9fgmdiB_.js → index-BN5sO3kL.js} +1 -1
- package/src/assets/web-panel/assets/{index-CewbVIM8.js → index-BPdH-XTd.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dz1TqS34.js → index-Bi1E5h9V.js} +1 -1
- package/src/assets/web-panel/assets/{index--6zQrvYc.js → index-BivQyKes.js} +1 -1
- package/src/assets/web-panel/assets/{index-CBS8OtL2.js → index-BjfpW5s3.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cqpfzkch.js → index-BtJzqXCQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DmtyRKy8.js → index-Bw88Mk2t.js} +1 -1
- package/src/assets/web-panel/assets/{index-BG9KlVJl.js → index-C-Z13SCI.js} +1 -1
- package/src/assets/web-panel/assets/{index-DjNjO-VL.js → index-C6bAvixK.js} +3 -3
- package/src/assets/web-panel/assets/{index-BGYCtfL-.js → index-C6lO24YD.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdMho2Wr.js → index-CD_A-N7c.js} +1 -1
- package/src/assets/web-panel/assets/{index-B2WI4Jse.js → index-CSzWODfj.js} +1 -1
- package/src/assets/web-panel/assets/{index-14ADEHo7.js → index-CVPI_iIh.js} +1 -1
- package/src/assets/web-panel/assets/{index-DR1Uw5as.js → index-Cg0oYTy5.js} +1 -1
- package/src/assets/web-panel/assets/{index-B9w6Zr_O.js → index-CsHTqPTg.js} +1 -1
- package/src/assets/web-panel/assets/{index-zY56IXHj.js → index-Cu3FtpNc.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cn71LASJ.js → index-Cy3XOp7S.js} +1 -1
- package/src/assets/web-panel/assets/{index-DSnQWQ4L.js → index-Cz0blpuN.js} +1 -1
- package/src/assets/web-panel/assets/{index-esCpkxIZ.js → index-D1t2IqNU.js} +1 -1
- package/src/assets/web-panel/assets/{index-DRuSuXJh.js → index-D9CqHOgd.js} +1 -1
- package/src/assets/web-panel/assets/{index-2TTLREp7.js → index-DVjFV2mg.js} +1 -1
- package/src/assets/web-panel/assets/index-DVq7UuW0.js +1 -0
- package/src/assets/web-panel/assets/index-DYVepsIV.js +1 -0
- package/src/assets/web-panel/assets/{index-DPwOEcUt.js → index-D_igPAXH.js} +1 -1
- package/src/assets/web-panel/assets/{index-CjkiJdIX.js → index-DtplHZ5o.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdSnkhrR.js → index-DuqVIsHL.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bf9069uM.js → index-J4JLWUMK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DNlvUg0O.js → index-JdSkHz64.js} +1 -1
- package/src/assets/web-panel/assets/{index-fmwnODwg.js → index-KY7udrs-.js} +1 -1
- package/src/assets/web-panel/assets/{index-McW2cdbg.js → index-ab6FUgkq.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGZGQTF5.js → index-dg0JqQDA.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxSgg3Xc.js → index-ggeC-_dR.js} +1 -1
- package/src/assets/web-panel/assets/{index-0GSB8LOT.js → index-nEWJobH4.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CVk4LKJK.js → initDefaultProps-DDIGXQ08.js} +1 -1
- package/src/assets/web-panel/assets/{motion-IAABGXc_.js → motion-97SXSYE4.js} +1 -1
- package/src/assets/web-panel/assets/{move-B9HSYeZc.js → move-CfDQMFRe.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-CJfDtM89.js → mtc-parser-qLYCGwY8.js} +1 -1
- package/src/assets/web-panel/assets/{omit-D5dYnom7.js → omit-xVqy1mCI.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-xbUkaZdY.js → pickAttrs-DCGlFyfv.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CIUU5NKN.js → placementArrow-DYgPuMk3.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-BZpgHE8P.js → responsiveObserve-7zUIdAWH.js} +1 -1
- package/src/assets/web-panel/assets/{slide-x_8rsSKk.js → slide-TyaiZlSh.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BZyDnVJs.js → statusUtils-BPd13Fae.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-DusfWp6J.js → styleChecker-A44XGgQ0.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-022JzYAL.js → useFlexGapSupport-ZX5EUa8B.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DRDxX7-3.js → useFs-Sh_fBPqz.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DFrCp7m_.js → usePersonalDataHub-DhR6Izei.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-bCuSFOmr.js → vnode-DC8g6oRh.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-sCpZ0sw7.js → zoom-DRjJmOwj.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/data/changelog.json +13 -0
- package/src/gateways/ws/ws-approval-gate.js +7 -0
- package/src/lib/auto-mode-config.js +5 -0
- package/src/lib/plan-mode.js +15 -4
- package/src/lib/process-execution-broker/linux-generic-bwrap-runtime.js +2 -2
- package/src/lib/process-execution-broker/linux-open-flags.js +26 -0
- package/src/lib/process-execution-broker/platform-sandbox.js +5 -9
- package/src/runtime/agent-core.js +88 -2
- package/src/assets/web-panel/assets/Projects-2uNBqS05.js +0 -1
- package/src/assets/web-panel/assets/devWarning-_Wlo1cZJ.js +0 -1
- package/src/assets/web-panel/assets/index-Cj8Mcdok.js +0 -1
- package/src/assets/web-panel/assets/index-vira2aS_.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as s}from"./index-
|
|
1
|
+
import{h as s}from"./index-C6bAvixK.js";function a(n,t){const e=s({},n);for(let o=0;o<t.length;o+=1){const r=t[o];delete e[r]}return e}export{a as o};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-C6bAvixK.js";const l=`accept acceptcharset accesskey action allowfullscreen allowtransparency
|
|
2
2
|
alt async autocomplete autofocus autoplay capture cellpadding cellspacing challenge
|
|
3
3
|
charset checked classid classname colspan cols content contenteditable contextmenu
|
|
4
4
|
controls coords crossorigin data datetime default defer dir disabled download draggable
|
package/src/assets/web-panel/assets/{placementArrow-CIUU5NKN.js → placementArrow-DYgPuMk3.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-C6bAvixK.js";const L=(e,o,t,n,p)=>{const r=e/2,a=0,s=r,m=t*1/Math.sqrt(2),h=r-t*(1-1/Math.sqrt(2)),b=r-o*(1/Math.sqrt(2)),u=t*(Math.sqrt(2)-1)+o*(1/Math.sqrt(2)),g=2*r-b,w=u,d=2*r-m,c=h,A=2*r-a,x=s,v=r*Math.sqrt(2)+t*(Math.sqrt(2)-2),$=t*(Math.sqrt(2)-1);return{pointerEvents:"none",width:e,height:e,overflow:"hidden","&::after":{content:'""',position:"absolute",width:v,height:v,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${o}px 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:p,zIndex:0,background:"transparent"},"&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:e,height:e/2,background:n,clipPath:{_multi_value_:!0,value:[`polygon(${$}px 100%, 50% ${$}px, ${2*r-$}px 100%, ${$}px 100%)`,`path('M ${a} ${s} A ${t} ${t} 0 0 0 ${m} ${h} L ${b} ${u} A ${o} ${o} 0 0 1 ${g} ${w} L ${d} ${c} A ${t} ${t} 0 0 0 ${A} ${x} Z')`]},content:'""'}}},f={adjustX:1,adjustY:1},l=[0,0],j={left:{points:["cr","cl"],overflow:f,offset:[-4,0],targetOffset:l},right:{points:["cl","cr"],overflow:f,offset:[4,0],targetOffset:l},top:{points:["bc","tc"],overflow:f,offset:[0,-4],targetOffset:l},bottom:{points:["tc","bc"],overflow:f,offset:[0,4],targetOffset:l},topLeft:{points:["bl","tl"],overflow:f,offset:[0,-4],targetOffset:l},leftTop:{points:["tr","tl"],overflow:f,offset:[-4,0],targetOffset:l},topRight:{points:["br","tr"],overflow:f,offset:[0,-4],targetOffset:l},rightTop:{points:["tl","tr"],overflow:f,offset:[4,0],targetOffset:l},bottomRight:{points:["tr","br"],overflow:f,offset:[0,4],targetOffset:l},rightBottom:{points:["bl","br"],overflow:f,offset:[4,0],targetOffset:l},bottomLeft:{points:["tl","bl"],overflow:f,offset:[0,4],targetOffset:l},leftBottom:{points:["br","bl"],overflow:f,offset:[-4,0],targetOffset:l}},M={adjustX:1,adjustY:1},O={adjustX:0,adjustY:0},T=[0,0];function k(e){return typeof e=="boolean"?e?M:O:i(i({},O),e)}function Y(e){const{arrowWidth:o=4,horizontalArrowShift:t=16,verticalArrowShift:n=8,autoAdjustOverflow:p,arrowPointAtCenter:r}=e,a={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(t+o),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(n+o)]},topRight:{points:["br","tc"],offset:[t+o,-4]},rightTop:{points:["tl","cr"],offset:[4,-(n+o)]},bottomRight:{points:["tr","bc"],offset:[t+o,4]},rightBottom:{points:["bl","cr"],offset:[4,n+o]},bottomLeft:{points:["tl","bc"],offset:[-(t+o),4]},leftBottom:{points:["br","cl"],offset:[-4,n+o]}};return Object.keys(a).forEach(s=>{a[s]=r?i(i({},a[s]),{overflow:k(p),targetOffset:T}):i(i({},j[s]),{overflow:k(p)}),a[s].ignoreShake=!0}),a}function _(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return e.map(t=>`${o}${t}`).join(",")}const X=8;function B(e){const o=X,{sizePopupArrow:t,contentRadius:n,borderRadiusOuter:p,limitVerticalRadius:r}=e,a=t/2-Math.ceil(p*(Math.sqrt(2)-1)),s=(n>12?n+2:12)-a,m=r?o-a:s;return{dropdownArrowOffset:s,dropdownArrowOffsetVertical:m}}function q(e,o){const{componentCls:t,sizePopupArrow:n,marginXXS:p,borderRadiusXS:r,borderRadiusOuter:a,boxShadowPopoverArrow:s}=e,{colorBg:m,showArrowCls:h,contentRadius:b=e.borderRadiusLG,limitVerticalRadius:u}=o,{dropdownArrowOffsetVertical:g,dropdownArrowOffset:w}=B({sizePopupArrow:n,contentRadius:b,borderRadiusOuter:a,limitVerticalRadius:u}),d=n/2+p;return{[t]:{[`${t}-arrow`]:[i(i({position:"absolute",zIndex:1,display:"block"},L(n,r,a,m,s)),{"&:before":{background:m}})],[[`&-placement-top ${t}-arrow`,`&-placement-topLeft ${t}-arrow`,`&-placement-topRight ${t}-arrow`].join(",")]:{bottom:0,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft ${t}-arrow`]:{left:{_skip_check_:!0,value:w}},[`&-placement-topRight ${t}-arrow`]:{right:{_skip_check_:!0,value:w}},[[`&-placement-bottom ${t}-arrow`,`&-placement-bottomLeft ${t}-arrow`,`&-placement-bottomRight ${t}-arrow`].join(",")]:{top:0,transform:"translateY(-100%)"},[`&-placement-bottom ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},[`&-placement-bottomLeft ${t}-arrow`]:{left:{_skip_check_:!0,value:w}},[`&-placement-bottomRight ${t}-arrow`]:{right:{_skip_check_:!0,value:w}},[[`&-placement-left ${t}-arrow`,`&-placement-leftTop ${t}-arrow`,`&-placement-leftBottom ${t}-arrow`].join(",")]:{right:{_skip_check_:!0,value:0},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left ${t}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop ${t}-arrow`]:{top:g},[`&-placement-leftBottom ${t}-arrow`]:{bottom:g},[[`&-placement-right ${t}-arrow`,`&-placement-rightTop ${t}-arrow`,`&-placement-rightBottom ${t}-arrow`].join(",")]:{left:{_skip_check_:!0,value:0},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right ${t}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop ${t}-arrow`]:{top:g},[`&-placement-rightBottom ${t}-arrow`]:{bottom:g},[_(["&-placement-topLeft","&-placement-top","&-placement-topRight"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingBottom:d},[_(["&-placement-bottomLeft","&-placement-bottom","&-placement-bottomRight"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingTop:d},[_(["&-placement-leftTop","&-placement-left","&-placement-leftBottom"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingRight:{_skip_check_:!0,value:d}},[_(["&-placement-rightTop","&-placement-right","&-placement-rightBottom"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingLeft:{_skip_check_:!0,value:d}}}}}export{X as M,Y as a,B as b,q as g,j as p,L as r};
|
package/src/assets/web-panel/assets/{responsiveObserve-BZpgHE8P.js → responsiveObserve-7zUIdAWH.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{J as o,h}from"./index-
|
|
1
|
+
import{J as o,h}from"./index-C6bAvixK.js";import{b as x}from"./vendor-Bn1JzzAn.js";const v=["xxxl","xxl","xl","lg","md","sm","xs"],p=r=>({xs:`(max-width: ${r.screenXSMax}px)`,sm:`(min-width: ${r.screenSM}px)`,md:`(min-width: ${r.screenMD}px)`,lg:`(min-width: ${r.screenLG}px)`,xl:`(min-width: ${r.screenXL}px)`,xxl:`(min-width: ${r.screenXXL}px)`,xxxl:`{min-width: ${r.screenXXXL}px}`});function w(){const[,r]=o();return x(()=>{const n=p(r.value),i=new Map;let a=-1,c={};return{matchHandlers:{},dispatch(e){return c=e,i.forEach(t=>t(c)),i.size>=1},subscribe(e){return i.size||this.register(),a+=1,i.set(a,e),e(c),a},unsubscribe(e){i.delete(e),i.size||this.unregister()},unregister(){Object.keys(n).forEach(e=>{const t=n[e],s=this.matchHandlers[t];s?.mql.removeListener(s?.listener)}),i.clear()},register(){Object.keys(n).forEach(e=>{const t=n[e],s=l=>{let{matches:m}=l;this.dispatch(h(h({},c),{[e]:m}))},d=window.matchMedia(t);d.addListener(s),this.matchHandlers[t]={mql:d,listener:s},s(d)})},responsiveMap:n}})}export{v as r,w as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as n}from"./index-
|
|
1
|
+
import{K as n}from"./index-C6bAvixK.js";import{i as e}from"./motion-97SXSYE4.js";const m=new n("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),f=new n("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),c=new n("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),l=new n("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),y=new n("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),p=new n("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),O=new n("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),d=new n("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),g={"slide-up":{inKeyframes:m,outKeyframes:f},"slide-down":{inKeyframes:c,outKeyframes:l},"slide-left":{inKeyframes:y,outKeyframes:p},"slide-right":{inKeyframes:O,outKeyframes:d}},K=(t,r)=>{const{antCls:a}=t,i=`${a}-${r}`,{inKeyframes:s,outKeyframes:o}=g[r];return[e(i,s,o,t.motionDurationMid),{[`
|
|
2
2
|
${i}-enter,
|
|
3
3
|
${i}-appear
|
|
4
4
|
`]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:t.motionEaseOutQuint},[`${i}-leave`]:{animationTimingFunction:t.motionEaseInQuint}}]};export{f as a,c as b,m as c,K as i,l as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./index-
|
|
1
|
+
import{i as e}from"./index-C6bAvixK.js";function r(a,s,t){return e({[`${a}-status-success`]:s==="success",[`${a}-status-warning`]:s==="warning",[`${a}-status-error`]:s==="error",[`${a}-status-validating`]:s==="validating",[`${a}-has-feedback`]:t})}const c=(a,s)=>s||a;export{c as a,r as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as d}from"./index-
|
|
1
|
+
import{B as d}from"./index-C6bAvixK.js";const i=()=>d()&&window.document.documentElement,c=e=>{if(d()&&window.document.documentElement){const t=Array.isArray(e)?e:[e],{documentElement:n}=window.document;return t.some(r=>r in n.style)}return!1},u=(e,t)=>{if(!c(e))return!1;const n=document.createElement("div"),r=n.style[e];return n.style[e]=t,n.style[e]!==r};function s(e,t){return!Array.isArray(e)&&t!==void 0?u(e,t):c(e)}let o;const p=()=>{if(!i())return!1;if(o!==void 0)return o;const e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),o=e.scrollHeight===1,document.body.removeChild(e),o};export{i as c,p as d,s as i};
|
package/src/assets/web-panel/assets/{useFlexGapSupport-022JzYAL.js → useFlexGapSupport-ZX5EUa8B.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o,s as t}from"./vendor-Bn1JzzAn.js";import{d as s}from"./styleChecker-
|
|
1
|
+
import{o,s as t}from"./vendor-Bn1JzzAn.js";import{d as s}from"./styleChecker-A44XGgQ0.js";const r=(()=>{const e=t(!1);return o(()=>{e.value=s()}),e});export{r as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as d}from"./index-
|
|
1
|
+
import{u as d}from"./index-C6bAvixK.js";import{u as c}from"./useShellMode-CgR0wCYM.js";function u({accept:l=""}={}){return new Promise(a=>{if(typeof document>"u"){a({canceled:!0,path:null,content:null});return}const n=document.createElement("input");n.type="file",l&&(n.accept=l),n.style.display="none",document.body.appendChild(n);let o=!1;const i=()=>{n.parentNode&&n.parentNode.removeChild(n)},r=()=>{if(o)return;o=!0;const e=n.files&&n.files[0];if(!e){i(),a({canceled:!0,path:null,content:null});return}const t=new FileReader;t.onload=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:typeof t.result=="string"?t.result:""})},t.onerror=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:null,reason:"read_failed"})},t.readAsText(e)};n.addEventListener("change",r),n.click()})}function f(l,{defaultPath:a="download.txt"}={}){if(typeof document>"u")return{canceled:!0,path:null};const n=new Blob([l],{type:"text/plain"}),o=URL.createObjectURL(n),i=document.createElement("a");return i.href=o,i.download=a,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(o),{canceled:!1,path:a}}function p(l){if(!Array.isArray(l))return"";const a=[];for(const n of l)if(Array.isArray(n.extensions))for(const o of n.extensions)a.push(`.${o.replace(/^\./,"")}`);return a.join(",")}function m(){const l=d();async function a(r={}){if(c().isEmbedded){const e=await l.sendRaw({type:"fs.openDialog",title:r.title,filters:r.filters},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDialog failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,content:t.content??null,size:t.size,reason:t.reason}}return u({accept:p(r.filters)})}async function n(r,e={}){if(typeof r!="string")throw new Error("content must be a string");if(c().isEmbedded){const t=await l.sendRaw({type:"fs.saveDialog",title:e.title,defaultPath:e.defaultPath,filters:e.filters,content:r},6e4);if(t&&t.ok===!1)throw new Error(t.error||"fs.saveDialog failed");const s=t?.result??t;return{canceled:!!s.canceled,path:s.path??null}}return f(r,{defaultPath:e.defaultPath})}async function o(r,e={}){const t=JSON.stringify(r,null,2),s={...e,defaultPath:e.defaultPath||"data.json",filters:e.filters||[{name:"JSON",extensions:["json"]}]};return n(t,s)}async function i(r={}){if(!c().isEmbedded)return{canceled:!0,path:null,initialized:!1,unsupported:!0};const e=await l.sendRaw({type:"fs.openDirectory",title:r.title},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDirectory failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,initialized:!!t.initialized}}return{pickFileText:a,saveText:n,saveJson:o,pickDirectory:i}}export{m as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as v}from"./index-
|
|
1
|
+
import{u as v}from"./index-C6bAvixK.js";import{u as _}from"./useShellMode-CgR0wCYM.js";function d(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}async function p(r,s={},e=!0){try{if(e!==!0||!r||typeof r.sendRaw!="function")return{status:"unavailable",path:null};const a=await r.sendRaw({type:"fs.openDirectory",title:s.title},6e4);if(a&&(a.ok===!1||a.error))return{status:"unavailable",path:null};const t=a&&a.result!==void 0?a.result:a;return t&&(t.ok===!1||t.error||t.unsupported===!0)?{status:"unavailable",path:null}:t&&t.canceled===!0?{status:"cancelled",path:null}:t&&typeof t.path=="string"&&t.path.length>0?{status:"selected",path:t.path}:{status:"unavailable",path:null}}catch{return{status:"unavailable",path:null}}}function b(r,s,e,a,t){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:s,...e},t).then(d):new Promise((n,u)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${s}.event`,m=`${s}.end`;let c=!1,h=()=>{};const o=(i,f)=>{if(!c){c=!0,clearTimeout(g);try{h()}catch{}i(f)}},g=setTimeout(()=>{o(u,new Error(`stream timeout (${t}ms): ${s}`))},t),y=r.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof a=="function")try{a(i.event||i)}catch{}return}if(i.type===m){o(n,d(i));return}i.type==="error"&&o(u,new Error(i.message||"stream error"))}});h=typeof y=="function"?y:()=>{},Promise.resolve(r.sendRaw({id:l,type:s,...e},t)).catch(()=>{})})}function k(){const r=v(),s=_(),e=(a,t={},n=3e4)=>r.sendRaw({type:a,...t},n).then(d);return{async health(){return await e("personal-data-hub.health",{},8e3)},async stats(){return await e("personal-data-hub.stats",{},8e3)},async listAdapters(){return await e("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const t=await r.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),n=t&&t.result!==void 0?t.result:t,u=n&&typeof n.path=="string"?n.path:n&&typeof n.filePath=="string"?n.filePath:null;return n&&n.canceled!==!0&&u?u:null}catch{return null}},async pickDirectoryResult(a={}){return await p(r,a,s.isEmbedded)},async pickDirectory(a={}){const t=await p(r,a,s.isEmbedded);return t.status==="selected"?t.path:null},async adapterReadiness(a){return await e("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,t={}){return await e("personal-data-hub.sync-adapter",{name:a,options:t},6e5)},async syncAll(a={}){return await e("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:t=20,seed:n=1}={}){return await e("personal-data-hub.register-mock",{name:a,count:t,seed:n})},async unregister(a){return await e("personal-data-hub.unregister",{name:a})},async ask(a,t={}){return await e("personal-data-hub.ask",{question:a,options:t},18e4)},async queryEvents(a={}){return await e("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await e("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await e("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await e("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await e("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,t={}){return await e("personal-data-hub.register-email",{account:a,opts:t},15e3)},async unregisterEmail(a){return await e("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await e("personal-data-hub.list-email-accounts",{},5e3)},async activateEmail(a){return await e("personal-data-hub.activate-email",{email:a},5e3)},async eventDetail(a){return await e("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,t={},n){return await b(r,"personal-data-hub.sync-adapter-stream",{name:a,options:t},n,6e5)},async syncAllStream(a={},t){return await b(r,"personal-data-hub.sync-all-stream",{options:a},t,9e5)},async registerAlipay(a,t={}){return await e("personal-data-hub.register-alipay",{account:a,opts:t},15e3)},async unregisterAlipay(a){return await e("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await e("personal-data-hub.list-alipay-accounts",{},5e3)},async activateAlipay(a){return await e("personal-data-hub.activate-alipay",{email:a},5e3)},async importAlipayBill({zipPath:a,csvPath:t,zipPassword:n}={}){return await e("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:t,zipPassword:n},3e5)},async reviewQueueList(a=50){return await e("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,t){return await e("personal-data-hub.review-decision",{reviewId:a,decision:t},5e3)},async manualMerge(a,t){return await e("personal-data-hub.manual-merge",{aId:a,bId:t},5e3)},async manualUnmerge(a){return await e("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await e("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await e("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await e("personal-data-hub.skills-list",{},5e3)},async runSkill(a,t={}){return await e("personal-data-hub.run-skill",{name:a,options:t},12e4)},async openAichatLogin(a,t={}){return await e("personal-data-hub.aichat-open-login",{vendor:a,opts:t},1e4)},async probeAichatCookies(a,t){return await e("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:t},1e4)},async registerAichatVendor(a,t,n={}){return await e("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:t,opts:n},3e4)},async rotateAichatLogin(a){return await e("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await e("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await e("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await e("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await e("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l}={}){return await e("personal-data-hub.register-wechat",{account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l},45e3)},async listWechatAccounts(){return await e("personal-data-hub.list-wechat-accounts",{},5e3)},async activateWechat(a,t={}){return await e("personal-data-hub.activate-wechat",{uin:a,fridaOpts:t.fridaOpts,keyProviderOverride:t.keyProviderOverride},45e3)},async unregisterWechat(a){return await e("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await e("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await e("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await e("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await e("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await e("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await e("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await e("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await e("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{k as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as i,h as a,w as l}from"./index-
|
|
1
|
+
import{N as i,h as a,w as l}from"./index-C6bAvixK.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-Bn1JzzAn.js";function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,u=e;if(Array.isArray(e)&&(u=i(e)[0]),!u)return null;const n=o(u,r,s);return n.props=t?a(a({},n.props),r):n.props,l(typeof n.props.class!="object","class must be string"),n}function V(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(s=>c(s,r,t))}function v(e,r,t){p(o(e,a({},r)),t)}const m=e=>(e||[]).some(r=>g(r)?!(r.type===d||r.type===f&&!m(r.children)):!0)?e:null;function h(e,r,t,s){var u;const n=(u=e[r])===null||u===void 0?void 0:u.call(e,t);return m(n)?n:s?.()}export{h as a,V as b,c,v as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as o}from"./index-
|
|
1
|
+
import{K as o}from"./index-C6bAvixK.js";import{i as f}from"./motion-97SXSYE4.js";const c=new o("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),y=new o("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new o("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new o("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),g=new o("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),O=new o("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),l=new o("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),u=new o("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),p=new o("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),z=new o("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),K=new o("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),w=new o("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),I={zoom:{inKeyframes:c,outKeyframes:y},"zoom-big":{inKeyframes:a,outKeyframes:s},"zoom-big-fast":{inKeyframes:a,outKeyframes:s},"zoom-left":{inKeyframes:l,outKeyframes:u},"zoom-right":{inKeyframes:p,outKeyframes:z},"zoom-up":{inKeyframes:g,outKeyframes:O},"zoom-down":{inKeyframes:K,outKeyframes:w}},h=(n,r)=>{const{antCls:m}=n,t=`${m}-${r}`,{inKeyframes:i,outKeyframes:e}=I[r];return[f(t,i,e,r==="zoom-big-fast"?n.motionDurationFast:n.motionDurationMid),{[`
|
|
2
2
|
${t}-enter,
|
|
3
3
|
${t}-appear
|
|
4
4
|
`]:{transform:"scale(0)",opacity:0,animationTimingFunction:n.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${t}-leave`]:{animationTimingFunction:n.motionEaseInOutCirc}}]};export{h as i,c as z};
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// Injected by web-ui-server.js at serve time
|
|
9
9
|
window.__CC_CONFIG__ = __CC_CONFIG_PLACEHOLDER__;
|
|
10
10
|
</script>
|
|
11
|
-
<script type="module" crossorigin src="./assets/index-
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-C6bAvixK.js"></script>
|
|
12
12
|
<link rel="modulepreload" crossorigin href="./assets/vendor-Bn1JzzAn.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="./assets/icons-DG5UD-6K.js">
|
|
14
14
|
<link rel="stylesheet" crossorigin href="./assets/index-Cq93VfoF.css">
|
package/src/data/changelog.json
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "CHANGELOG.md",
|
|
3
3
|
"releases": [
|
|
4
|
+
{
|
|
5
|
+
"productVersion": null,
|
|
6
|
+
"cliVersion": "0.166.81",
|
|
7
|
+
"cliVersions": ["0.166.81"],
|
|
8
|
+
"date": null,
|
|
9
|
+
"title": "",
|
|
10
|
+
"sections": [
|
|
11
|
+
{
|
|
12
|
+
"heading": "Fixed - cc CLI 0.166.81: latch Plan and approval revisions during Docker egress",
|
|
13
|
+
"body": "- Bind Plan and ApprovalGate snapshots before the first asynchronous shell\n permission read. During a running Docker egress command, subscribe to their\n committed revisions and revoke the broker and target when authority changes.\n- Session Core 0.3.14 supplies the monotonic per-session ApprovalGate revision.\n This covers supported in-process policy updates; settings files, mutable host\n policy, Auto Mode state, and external writes still need a unified epoch.\n- Pair VS Code 0.37.123 and JetBrains 0.4.143 after the CLI's exact-commit\n release checks and public npm readback. JetBrains creates its Windows bridge\n lockfile with owner-only permissions before writing the bearer token."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
4
17
|
{
|
|
5
18
|
"productVersion": null,
|
|
6
19
|
"cliVersion": "0.166.80",
|
|
@@ -261,6 +261,13 @@ export async function createWsApprovalGate({
|
|
|
261
261
|
getSessionPolicy: (sid) => inner.getSessionPolicy(sid || sessionId),
|
|
262
262
|
setSessionPolicy: (sid, policy) =>
|
|
263
263
|
inner.setSessionPolicy(sid || sessionId, policy),
|
|
264
|
+
getAuthorizationPolicySnapshot: (sid) =>
|
|
265
|
+
inner.getAuthorizationPolicySnapshot?.(sid || sessionId) || null,
|
|
266
|
+
subscribePolicyRevision:
|
|
267
|
+
typeof inner.subscribePolicyRevision === "function"
|
|
268
|
+
? (sid, listener) =>
|
|
269
|
+
inner.subscribePolicyRevision(sid || sessionId, listener)
|
|
270
|
+
: undefined,
|
|
264
271
|
beginTurn: (turnId) => ledgerState.ledger.beginTurn(turnId),
|
|
265
272
|
listGrants: () => ledgerState.ledger.listGrants(),
|
|
266
273
|
revokeGrant: (grantId) => {
|
|
@@ -356,6 +356,11 @@ export function createAutoModeApprovalGate(inner, resolved, opts = {}) {
|
|
|
356
356
|
}),
|
|
357
357
|
});
|
|
358
358
|
},
|
|
359
|
+
subscribePolicyRevision:
|
|
360
|
+
typeof inner?.subscribePolicyRevision === "function"
|
|
361
|
+
? (sessionId, listener) =>
|
|
362
|
+
inner.subscribePolicyRevision(sessionId, listener)
|
|
363
|
+
: undefined,
|
|
359
364
|
consumeAuthorization(authorization, ctx) {
|
|
360
365
|
if (typeof inner?.consumeAuthorization !== "function") {
|
|
361
366
|
throw new Error("Approval authorization consumer is unavailable");
|
package/src/lib/plan-mode.js
CHANGED
|
@@ -893,8 +893,8 @@ export class PlanModeManager extends EventEmitter {
|
|
|
893
893
|
}
|
|
894
894
|
|
|
895
895
|
_commitMutation(transaction, eventType) {
|
|
896
|
+
const previousRevision = this.revision;
|
|
896
897
|
if (!this._persistence) {
|
|
897
|
-
const previousRevision = this.revision;
|
|
898
898
|
this.revision += 1;
|
|
899
899
|
this.updatedAt = Date.now();
|
|
900
900
|
this.lastEvent = this.sessionId
|
|
@@ -906,6 +906,11 @@ export class PlanModeManager extends EventEmitter {
|
|
|
906
906
|
timestamp: this.updatedAt,
|
|
907
907
|
})
|
|
908
908
|
: null;
|
|
909
|
+
this.emit("revision-changed", {
|
|
910
|
+
revision: this.revision,
|
|
911
|
+
previousRevision,
|
|
912
|
+
type: eventType,
|
|
913
|
+
});
|
|
909
914
|
if (this.lastEvent) this.emit("session-event", { ...this.lastEvent });
|
|
910
915
|
return null;
|
|
911
916
|
}
|
|
@@ -920,6 +925,11 @@ export class PlanModeManager extends EventEmitter {
|
|
|
920
925
|
this.revision = snapshot.revision;
|
|
921
926
|
this.updatedAt = snapshot.updatedAt;
|
|
922
927
|
this.lastEvent = snapshot.event;
|
|
928
|
+
this.emit("revision-changed", {
|
|
929
|
+
revision: this.revision,
|
|
930
|
+
previousRevision,
|
|
931
|
+
type: eventType,
|
|
932
|
+
});
|
|
923
933
|
this.emit("session-event", { ...this.lastEvent });
|
|
924
934
|
return null;
|
|
925
935
|
} catch (error) {
|
|
@@ -1369,7 +1379,7 @@ export class PlanModeManager extends EventEmitter {
|
|
|
1369
1379
|
/**
|
|
1370
1380
|
* Check if a tool is allowed in current state
|
|
1371
1381
|
*/
|
|
1372
|
-
isToolAllowed(toolName) {
|
|
1382
|
+
isToolAllowed(toolName, { recordBlocked = true } = {}) {
|
|
1373
1383
|
if (!this.isActive()) return true;
|
|
1374
1384
|
if (
|
|
1375
1385
|
this.state === PlanState.APPROVED ||
|
|
@@ -1377,7 +1387,8 @@ export class PlanModeManager extends EventEmitter {
|
|
|
1377
1387
|
) {
|
|
1378
1388
|
const allowed =
|
|
1379
1389
|
this.executionLock?.allowedTools.includes(toolName) === true;
|
|
1380
|
-
if (!allowed
|
|
1390
|
+
if (!allowed && recordBlocked)
|
|
1391
|
+
this._recordBlockedTool(toolName, "execution-lock");
|
|
1381
1392
|
return allowed;
|
|
1382
1393
|
}
|
|
1383
1394
|
|
|
@@ -1386,7 +1397,7 @@ export class PlanModeManager extends EventEmitter {
|
|
|
1386
1397
|
|
|
1387
1398
|
// Block write tools and log
|
|
1388
1399
|
if (WRITE_TOOLS.has(toolName)) {
|
|
1389
|
-
this._recordBlockedTool(toolName, "planning");
|
|
1400
|
+
if (recordBlocked) this._recordBlockedTool(toolName, "planning");
|
|
1390
1401
|
return false;
|
|
1391
1402
|
}
|
|
1392
1403
|
|
|
@@ -21,13 +21,13 @@ import {
|
|
|
21
21
|
buildLinuxBwrapDescriptorScrubbedLaunch,
|
|
22
22
|
LINUX_BWRAP_DESCRIPTOR_SCRUBBER_PATH,
|
|
23
23
|
} from "./linux-bwrap-descriptor-launch.js";
|
|
24
|
+
import { linuxTmpfileFlag } from "./linux-open-flags.js";
|
|
24
25
|
|
|
25
26
|
const BWRAP_PATH = "/usr/bin/bwrap";
|
|
26
27
|
const MAX_ATTESTED_FILE_BYTES = 256 * 1024 * 1024;
|
|
27
28
|
const MAX_MOUNTINFO_BYTES = 4 * 1024 * 1024;
|
|
28
29
|
const MOUNTINFO_PATH = "/proc/self/mountinfo";
|
|
29
30
|
const MOUNT_TOPOLOGY_VERSION = 1;
|
|
30
|
-
const O_TMPFILE = 0x410000;
|
|
31
31
|
const SYSTEM_DESTINATIONS = [
|
|
32
32
|
"/usr",
|
|
33
33
|
"/bin",
|
|
@@ -1085,7 +1085,7 @@ function createTrustedResources(
|
|
|
1085
1085
|
const flags =
|
|
1086
1086
|
Number(constants.O_RDWR) |
|
|
1087
1087
|
Number(constants.O_EXCL) |
|
|
1088
|
-
|
|
1088
|
+
linuxTmpfileFlag(constants) |
|
|
1089
1089
|
Number(constants.O_NOFOLLOW || 0) |
|
|
1090
1090
|
Number(constants.O_NONBLOCK || 0);
|
|
1091
1091
|
const fd = track(runtime.fs.openSync("/tmp", flags, 0o400), phase);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Linux defines O_TMPFILE as __O_TMPFILE | O_DIRECTORY. O_DIRECTORY is
|
|
2
|
+
// architecture-specific (0x4000 on ARM64, 0x10000 on x64), while Node does
|
|
3
|
+
// not expose O_TMPFILE on every supported build.
|
|
4
|
+
const LINUX_ANONYMOUS_TMPFILE_BIT = 0x400000;
|
|
5
|
+
|
|
6
|
+
export function linuxTmpfileFlag(constants) {
|
|
7
|
+
const directoryFlag = constants?.O_DIRECTORY;
|
|
8
|
+
if (
|
|
9
|
+
!Number.isSafeInteger(directoryFlag) ||
|
|
10
|
+
directoryFlag <= 0 ||
|
|
11
|
+
(directoryFlag & (directoryFlag - 1)) !== 0
|
|
12
|
+
) {
|
|
13
|
+
throw new Error("linux_o_directory_unavailable");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const fallbackFlag = LINUX_ANONYMOUS_TMPFILE_BIT | directoryFlag;
|
|
17
|
+
const tmpfileFlag = constants.O_TMPFILE ?? fallbackFlag;
|
|
18
|
+
if (
|
|
19
|
+
!Number.isSafeInteger(tmpfileFlag) ||
|
|
20
|
+
(tmpfileFlag & LINUX_ANONYMOUS_TMPFILE_BIT) === 0 ||
|
|
21
|
+
(tmpfileFlag & directoryFlag) !== directoryFlag
|
|
22
|
+
) {
|
|
23
|
+
throw new Error("linux_o_tmpfile_invalid");
|
|
24
|
+
}
|
|
25
|
+
return tmpfileFlag;
|
|
26
|
+
}
|
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
applyLinuxGenericWorkspaceSandbox,
|
|
34
34
|
isLinuxGenericWorkspaceContract,
|
|
35
35
|
} from "./linux-generic-bwrap-runtime.js";
|
|
36
|
+
import { linuxTmpfileFlag } from "./linux-open-flags.js";
|
|
36
37
|
import {
|
|
37
38
|
buildLinuxBwrapDescriptorScrubbedLaunch,
|
|
38
39
|
LINUX_BWRAP_DESCRIPTOR_SCRUBBER_PATH,
|
|
@@ -288,10 +289,7 @@ const LINUX_ELF_MACHINES = Object.freeze({
|
|
|
288
289
|
arm64: 183,
|
|
289
290
|
riscv64: 243,
|
|
290
291
|
});
|
|
291
|
-
//
|
|
292
|
-
// x64, arm64, and riscv64 use this value; unsupported seccomp architectures
|
|
293
|
-
// already fail closed before the anonymous filter is created.
|
|
294
|
-
const LINUX_O_TMPFILE = 0x410000;
|
|
292
|
+
// Anonymous snapshots and seccomp filters require the native O_TMPFILE flag.
|
|
295
293
|
const LINUX_CLONE_NEWNS = 0x00020000;
|
|
296
294
|
const LINUX_CLONE_NEWUSER = 0x10000000;
|
|
297
295
|
const LINUX_NAMESPACE_CLONE_FLAGS = LINUX_CLONE_NEWNS | LINUX_CLONE_NEWUSER;
|
|
@@ -2728,9 +2726,7 @@ function sameWindowsFileIdentity(left, right) {
|
|
|
2728
2726
|
// the deletion authority.
|
|
2729
2727
|
function sameWindowsFileObjectIdentity(left, right) {
|
|
2730
2728
|
return (
|
|
2731
|
-
left.dev === right.dev &&
|
|
2732
|
-
left.ino === right.ino &&
|
|
2733
|
-
left.mode === right.mode
|
|
2729
|
+
left.dev === right.dev && left.ino === right.ino && left.mode === right.mode
|
|
2734
2730
|
);
|
|
2735
2731
|
}
|
|
2736
2732
|
|
|
@@ -5853,7 +5849,7 @@ function createLinuxRegularFileSnapshot(
|
|
|
5853
5849
|
const writerFlags =
|
|
5854
5850
|
Number(constants.O_RDWR) |
|
|
5855
5851
|
Number(constants.O_EXCL) |
|
|
5856
|
-
|
|
5852
|
+
linuxTmpfileFlag(constants) |
|
|
5857
5853
|
Number(constants.O_NOFOLLOW || 0) |
|
|
5858
5854
|
Number(constants.O_NONBLOCK || 0);
|
|
5859
5855
|
writerFd = runtime.fs.openSync("/tmp", writerFlags, snapshotSourceMode);
|
|
@@ -7442,7 +7438,7 @@ function pinLinuxNetworkSeccompFilter(runtime, options = {}) {
|
|
|
7442
7438
|
const flags =
|
|
7443
7439
|
Number(constants.O_RDWR) |
|
|
7444
7440
|
Number(constants.O_EXCL) |
|
|
7445
|
-
|
|
7441
|
+
linuxTmpfileFlag(constants) |
|
|
7446
7442
|
Number(constants.O_NOFOLLOW || 0) |
|
|
7447
7443
|
Number(constants.O_NONBLOCK || 0);
|
|
7448
7444
|
// An anonymous inode avoids a same-UID process opening the filter by path.
|
|
@@ -2443,12 +2443,16 @@ function selectedHostToolPolicy(hostAuthority, tool) {
|
|
|
2443
2443
|
function snapshotPlanToolAuthority(planManager, tool, args) {
|
|
2444
2444
|
const active = planManager?.isActive?.() === true;
|
|
2445
2445
|
return {
|
|
2446
|
+
revision:
|
|
2447
|
+
Number.isSafeInteger(planManager?.revision) && planManager.revision >= 0
|
|
2448
|
+
? planManager.revision
|
|
2449
|
+
: null,
|
|
2446
2450
|
active,
|
|
2447
2451
|
executionLockActive: planManager?.executionLock != null,
|
|
2448
2452
|
toolAllowed:
|
|
2449
2453
|
!active || (tool === "git" && isReadOnlyGitCommand(args?.command))
|
|
2450
2454
|
? true
|
|
2451
|
-
: planManager?.isToolAllowed?.(tool) === true,
|
|
2455
|
+
: planManager?.isToolAllowed?.(tool, { recordBlocked: false }) === true,
|
|
2452
2456
|
};
|
|
2453
2457
|
}
|
|
2454
2458
|
|
|
@@ -2546,6 +2550,10 @@ function snapshotApprovalPolicyAuthority(approvalGate, sessionId) {
|
|
|
2546
2550
|
*/
|
|
2547
2551
|
export async function executeTool(name, args, context = {}) {
|
|
2548
2552
|
const liveExecutionContext = context;
|
|
2553
|
+
let admittedApprovalGate = null;
|
|
2554
|
+
let admittedApprovalPolicyDigest = null;
|
|
2555
|
+
let entryPlanManager = null;
|
|
2556
|
+
let entryPlanPolicyDigest = null;
|
|
2549
2557
|
// run_shell can cross several asynchronous permission/hook boundaries before
|
|
2550
2558
|
// reaching executeToolInner. Capture its declared tuple and working directory
|
|
2551
2559
|
// before any of them so an in-process caller cannot swap the approved command
|
|
@@ -2599,6 +2607,31 @@ export async function executeTool(name, args, context = {}) {
|
|
|
2599
2607
|
};
|
|
2600
2608
|
}
|
|
2601
2609
|
}
|
|
2610
|
+
if (name === "run_shell") {
|
|
2611
|
+
try {
|
|
2612
|
+
admittedApprovalGate = context.approvalGate || null;
|
|
2613
|
+
admittedApprovalPolicyDigest = digestPolicyAuthority(
|
|
2614
|
+
snapshotApprovalPolicyAuthority(
|
|
2615
|
+
admittedApprovalGate,
|
|
2616
|
+
context.sessionId || null,
|
|
2617
|
+
),
|
|
2618
|
+
);
|
|
2619
|
+
entryPlanManager = context.planManager || getPlanModeManager();
|
|
2620
|
+
entryPlanPolicyDigest = digestPolicyAuthority(
|
|
2621
|
+
snapshotPlanToolAuthority(entryPlanManager, name, args),
|
|
2622
|
+
);
|
|
2623
|
+
} catch (error) {
|
|
2624
|
+
return {
|
|
2625
|
+
error:
|
|
2626
|
+
"[Shell Dispatch] The initial shell policy authority could not be bound. No command side effect was started.",
|
|
2627
|
+
policy: {
|
|
2628
|
+
decision: "blocked",
|
|
2629
|
+
via: "shell-policy-authority",
|
|
2630
|
+
code: error?.code || "CC_SHELL_POLICY_AUTHORITY_UNAVAILABLE",
|
|
2631
|
+
},
|
|
2632
|
+
};
|
|
2633
|
+
}
|
|
2634
|
+
}
|
|
2602
2635
|
if (name === "run_code") {
|
|
2603
2636
|
try {
|
|
2604
2637
|
const entryProcessCwd = process.cwd();
|
|
@@ -3019,9 +3052,20 @@ export async function executeTool(name, args, context = {}) {
|
|
|
3019
3052
|
let admittedPlanPolicyDigest = null;
|
|
3020
3053
|
if (name === "run_shell") {
|
|
3021
3054
|
try {
|
|
3022
|
-
|
|
3055
|
+
const currentPlanPolicyDigest = digestPolicyAuthority(
|
|
3023
3056
|
snapshotPlanToolAuthority(planManager, name, args),
|
|
3024
3057
|
);
|
|
3058
|
+
if (
|
|
3059
|
+
planManager !== entryPlanManager ||
|
|
3060
|
+
currentPlanPolicyDigest !== entryPlanPolicyDigest
|
|
3061
|
+
) {
|
|
3062
|
+
const error = new Error(
|
|
3063
|
+
"Plan authority changed during initial permission resolution",
|
|
3064
|
+
);
|
|
3065
|
+
error.code = "CC_SHELL_POLICY_AUTHORITY_CHANGED";
|
|
3066
|
+
throw error;
|
|
3067
|
+
}
|
|
3068
|
+
admittedPlanPolicyDigest = currentPlanPolicyDigest;
|
|
3025
3069
|
} catch (error) {
|
|
3026
3070
|
return {
|
|
3027
3071
|
error:
|
|
@@ -3380,6 +3424,9 @@ export async function executeTool(name, args, context = {}) {
|
|
|
3380
3424
|
classifyAllShell: context.classifyAllShell === true,
|
|
3381
3425
|
};
|
|
3382
3426
|
if (
|
|
3427
|
+
approvalGate !== admittedApprovalGate ||
|
|
3428
|
+
digestPolicyAuthority(initialProjection.approval) !==
|
|
3429
|
+
admittedApprovalPolicyDigest ||
|
|
3383
3430
|
digestPolicyAuthority(initialProjection.permission) !==
|
|
3384
3431
|
admittedPermissionPolicyDigest ||
|
|
3385
3432
|
digestPolicyAuthority(initialProjection.host) !==
|
|
@@ -6673,6 +6720,8 @@ async function executeToolInner(
|
|
|
6673
6720
|
let dockerEgressSession = null;
|
|
6674
6721
|
let proxyFailed = false;
|
|
6675
6722
|
let authorityMonitor = null;
|
|
6723
|
+
let removePlanAuthorityListener = null;
|
|
6724
|
+
let removeApprovalAuthorityListener = null;
|
|
6676
6725
|
if (needsEgress) {
|
|
6677
6726
|
try {
|
|
6678
6727
|
const { startEgressProxyWorker } =
|
|
@@ -6742,6 +6791,41 @@ async function executeToolInner(
|
|
|
6742
6791
|
},
|
|
6743
6792
|
abortProxy: () => proxyHandle.abort(),
|
|
6744
6793
|
});
|
|
6794
|
+
if (
|
|
6795
|
+
Number.isSafeInteger(planManager?.revision) &&
|
|
6796
|
+
planManager.revision >= 0 &&
|
|
6797
|
+
typeof planManager.on === "function" &&
|
|
6798
|
+
typeof planManager.off === "function"
|
|
6799
|
+
) {
|
|
6800
|
+
const onPlanMutation = () => {
|
|
6801
|
+
const error = new Error(
|
|
6802
|
+
"Plan authority changed during Docker egress execution",
|
|
6803
|
+
);
|
|
6804
|
+
error.code = "CC_SHELL_POLICY_AUTHORITY_CHANGED";
|
|
6805
|
+
authorityMonitor.revoke(error);
|
|
6806
|
+
};
|
|
6807
|
+
planManager.on("revision-changed", onPlanMutation);
|
|
6808
|
+
removePlanAuthorityListener = () =>
|
|
6809
|
+
planManager.off("revision-changed", onPlanMutation);
|
|
6810
|
+
}
|
|
6811
|
+
if (
|
|
6812
|
+
sessionId &&
|
|
6813
|
+
typeof approvalGate?.subscribePolicyRevision === "function"
|
|
6814
|
+
) {
|
|
6815
|
+
removeApprovalAuthorityListener =
|
|
6816
|
+
approvalGate.subscribePolicyRevision(sessionId, () => {
|
|
6817
|
+
const error = new Error(
|
|
6818
|
+
"Approval policy changed during Docker egress execution",
|
|
6819
|
+
);
|
|
6820
|
+
error.code = "CC_SHELL_POLICY_AUTHORITY_CHANGED";
|
|
6821
|
+
authorityMonitor.revoke(error);
|
|
6822
|
+
});
|
|
6823
|
+
if (typeof removeApprovalAuthorityListener !== "function") {
|
|
6824
|
+
throw new TypeError(
|
|
6825
|
+
"approval policy revision subscription must return an unsubscribe function",
|
|
6826
|
+
);
|
|
6827
|
+
}
|
|
6828
|
+
}
|
|
6745
6829
|
authorityMonitor.start();
|
|
6746
6830
|
await authorityMonitor.checkNow();
|
|
6747
6831
|
} else {
|
|
@@ -6805,6 +6889,8 @@ async function executeToolInner(
|
|
|
6805
6889
|
});
|
|
6806
6890
|
}
|
|
6807
6891
|
} finally {
|
|
6892
|
+
removeApprovalAuthorityListener?.();
|
|
6893
|
+
removePlanAuthorityListener?.();
|
|
6808
6894
|
authorityMonitor?.stop();
|
|
6809
6895
|
await authorityMonitor?.awaitCleanup();
|
|
6810
6896
|
if (dockerEgressSession) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as i,J as I,U,R as s,Q as r,c as t,K as a,V as _,S as x,o as oe,b as ee,r as u,P as p,F as ne,a2 as ge}from"./vendor-Bn1JzzAn.js";import{_ as we,b as re,u as ie,d}from"./index-DjNjO-VL.js";import{u as de}from"./useShellMode-CgR0wCYM.js";import{aN as ke,aO as Fe,aP as be,f as je,a5 as Ce,a8 as xe,at as Oe,R as Se}from"./icons-DG5UD-6K.js";const Pe={__name:"Projects",setup(se,{expose:l}){l();const{t:te}=re(),e=ie(),{isEmbedded:W}=de();async function w(o,f,ye,ae=8e3){if(W){const Y=await e.sendRaw({...f,type:o},ae);if(!Y?.ok){const $=Y?.error;throw new Error(typeof $=="string"?$:$?.message||`${o} failed`)}return Y.result}return e.executeJson(ye,ae)}const B=u(!1),y=u([]),O=u(""),S=u(""),P=u(!1),v=u(null),h=u([]),k=u(!1),E=u(!1),L=u(!1),F=u({name:"",description:"",type:"document",rootPath:""}),z=[{title:"ID",key:"id",width:110},{title:"名称",key:"name"},{title:"类型",key:"project_type",width:120},{title:"状态",key:"status",width:100},{title:"同步",key:"sync_status",width:100},{title:"更新",key:"updated_at",width:160},{title:"操作",key:"actions",width:180,fixed:"right"}],V=ee(()=>{const o={active:0,draft:0,completed:0,archived:0};for(const f of y.value)o[f.status]!==void 0&&(o[f.status]+=1);return o}),J=ee(()=>y.value.filter(o=>!(O.value&&o.status!==O.value||S.value&&!o.name.toLowerCase().includes(S.value.toLowerCase()))));function g(o){switch(o){case"active":return"green";case"draft":return"default";case"completed":return"cyan";case"archived":return"gold";default:return"default"}}function K(o){switch(o){case"synced":return"green";case"pending":return"orange";case"conflict":return"red";case"error":return"red";default:return"default"}}function Q(o){return!o&&o!==0?"-":new Date(typeof o=="number"?o:parseInt(o,10)).toLocaleString("zh-CN",{hour12:!1})}async function C(){B.value=!0;try{const o=await w("project.list",{limit:500},"project list --limit 500 --json",1e4);y.value=Array.isArray(o?.projects)?o.projects:Array.isArray(o)?o:[]}catch(o){d.error("加载失败: "+(o.message||o)),y.value=[]}finally{B.value=!1}}function Z(o){return{onClick:()=>M(o)}}async function M(o){v.value=o,P.value=!0,k.value=!0,h.value=[];try{const f=await w("project.listFiles",{projectId:o.id,limit:200},`project list-files ${o.id} --json`,8e3);h.value=Array.isArray(f?.files)?f.files:[]}catch{h.value=[]}finally{k.value=!1}}async function G(o){try{(await w("project.delete",{id:o.id},`project delete ${o.id} --json`,8e3))?.ok?(d.success(`已删除项目 '${o.name}'`),P.value=!1,await C()):d.error("删除失败")}catch(f){d.error(f.message||String(f))}}function H(){F.value={name:"",description:"",type:"document",rootPath:""},E.value=!0}async function T(){if(!F.value.name.trim()){d.warning("请输入项目名称");return}L.value=!0;try{const o=await w("project.init",{name:F.value.name.trim(),description:F.value.description||null,projectType:F.value.type,rootPath:F.value.rootPath||null},`project init "${F.value.name.trim()}" --type ${F.value.type} --json`,8e3);o?.id?(d.success(`已创建项目 '${o.name}'`),E.value=!1,await C()):d.error("创建失败")}catch(o){d.error(o.message||String(o))}finally{L.value=!1}}const b=u(!1),D=u(!1),j=u({path:"",content:""}),A=u(!1),m=u(!1),R=u({path:""}),n=u(!1),c=u(null),q=u(""),X=u(!1);function ue(){j.value={path:"",content:""},b.value=!0}function ce(){R.value={path:""},A.value=!0}async function N(){if(v.value){k.value=!0;try{const o=await w("project.listFiles",{projectId:v.value.id,limit:200},`project list-files ${v.value.id} --json`,8e3);h.value=Array.isArray(o?.files)?o.files:[]}catch(o){d.error("刷新文件失败: "+(o.message||o))}finally{k.value=!1}}}async function fe(){if(!j.value.path.trim()){d.warning("请输入文件路径");return}if(v.value){D.value=!0;try{const o=await w("project.createFile",{projectId:v.value.id,filePath:j.value.path.trim(),content:j.value.content||""},`project create-file ${v.value.id} "${j.value.path.trim()}" --json`,8e3);o?.id?(d.success(`已创建文件 '${o.file_name}'`),b.value=!1,await N(),await C()):d.error("创建文件失败")}catch(o){d.error(o.message||String(o))}finally{D.value=!1}}}async function pe(){if(!R.value.path.trim()){d.warning("请输入文件夹路径");return}if(v.value){m.value=!0;try{const o=await w("project.createFolder",{projectId:v.value.id,folderPath:R.value.path.trim()},`project create-folder ${v.value.id} "${R.value.path.trim()}" --json`,8e3);o?.id?(d.success(`已创建文件夹 '${o.file_name}'`),A.value=!1,await N(),await C()):d.error("创建文件夹失败")}catch(o){d.error(o.message||String(o))}finally{m.value=!1}}}async function ve(o){try{(await w("project.deleteFile",{fileId:o.id},`project delete-file ${o.id} --json`,8e3))?.deleted?(d.success(`已删除 '${o.file_name}'`),await N(),await C()):d.error("删除失败")}catch(f){d.error(f.message||String(f))}}async function me(o){if(o.is_folder){d.info("文件夹无内容可编辑");return}try{const f=await w("project.getFile",{fileId:o.id},`project get-file ${o.id} --json`,8e3);c.value=o,q.value=f?.content||"",n.value=!0}catch(f){d.error("读取文件失败: "+(f.message||f))}}async function _e(){if(c.value){X.value=!0;try{(await w("project.writeFile",{fileId:c.value.id,content:q.value},`project write-file ${c.value.id} --json`,8e3))?.id?(d.success("已保存"),n.value=!1,await N()):d.error("保存失败")}catch(o){d.error(o.message||String(o))}finally{X.value=!1}}}oe(()=>{C()});const le={t:te,ws:e,isEmbedded:W,callProjectTopic:w,loading:B,projects:y,statusFilter:O,nameFilter:S,detailOpen:P,detail:v,files:h,filesLoading:k,createOpen:E,creating:L,newProject:F,columns:z,countByStatus:V,filteredProjects:J,statusColor:g,syncColor:K,formatTime:Q,loadAll:C,onRowClick:Z,openDetail:M,onDelete:G,onShowCreate:H,onCreate:T,createFileOpen:b,creatingFile:D,newFile:j,createFolderOpen:A,creatingFolder:m,newFolder:R,editFileOpen:n,editingFile:c,editFileContent:q,savingFile:X,openCreateFile:ue,openCreateFolder:ce,refreshFiles:N,onCreateFile:fe,onCreateFolder:pe,onDeleteFile:ve,openEditFile:me,onSaveFile:_e,ref:u,computed:ee,onMounted:oe,get ReloadOutlined(){return Se},get PlusOutlined(){return Oe},get FolderOutlined(){return xe},get FileTextOutlined(){return Ce},get CheckCircleOutlined(){return je},get CheckSquareOutlined(){return be},get FileAddOutlined(){return Fe},get FolderAddOutlined(){return ke},get message(){return d},get useI18n(){return re},get useWsStore(){return ie},get useShellMode(){return de}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}},ze={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ae={class:"page-title"},Ie={class:"page-sub"},Ue={class:"filter-bar",style:{"margin-bottom":"12px",display:"flex",gap:"12px","align-items":"center"}},he={key:0,style:{"font-size":"12px",color:"#888"}},De={key:0,style:{color:"#888","font-size":"12px"}},Re={key:0},Te={key:1,style:{color:"#888"}},Be=["onClick"],Ee={key:0,style:{color:"#888","font-size":"12px"}};function Le(se,l,te,e,W,w){const B=i("router-link"),y=i("a-button"),O=i("a-space"),S=i("a-statistic"),P=i("a-card"),v=i("a-col"),h=i("a-row"),k=i("a-radio-button"),E=i("a-radio-group"),L=i("a-input-search"),F=i("a-alert"),z=i("a-tag"),V=i("a-popconfirm"),J=i("a-table"),g=i("a-descriptions-item"),K=i("a-descriptions"),Q=i("a-divider"),C=i("a-empty"),Z=i("a-list-item"),M=i("a-list"),G=i("a-spin"),H=i("a-drawer"),T=i("a-input"),b=i("a-form-item"),D=i("a-textarea"),j=i("a-form"),A=i("a-modal"),m=i("a-select-option"),R=i("a-select");return p(),I("div",null,[U("div",ze,[U("div",null,[U("h2",Ae,s(e.t("projects.title")),1),U("p",Ie,[l[17]||(l[17]=r("桌面 / CLI / 手机 三端共享同一份项目数据,Phase 3d sync 自动同步 (",-1)),t(B,{to:"/project-init"},{default:a(()=>[...l[16]||(l[16]=[r("项目初始化 / 环境设置",-1)])]),_:1}),l[18]||(l[18]=r(")",-1))])]),t(O,null,{default:a(()=>[t(y,{loading:e.loading,onClick:e.loadAll},{icon:a(()=>[t(e.ReloadOutlined)]),default:a(()=>[l[19]||(l[19]=r(" 刷新 ",-1))]),_:1},8,["loading"]),t(y,{type:"primary",onClick:e.onShowCreate},{icon:a(()=>[t(e.PlusOutlined)]),default:a(()=>[l[20]||(l[20]=r(" 新建项目 ",-1))]),_:1})]),_:1})]),_(" Stats "),t(h,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(v,{xs:12,sm:8,lg:6},{default:a(()=>[t(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(S,{title:"总项目",value:e.projects.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(e.FolderOutlined)]),_:1},8,["value"])]),_:1})]),_:1}),t(v,{xs:12,sm:8,lg:6},{default:a(()=>[t(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(S,{title:"活跃",value:e.countByStatus.active,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(e.CheckCircleOutlined)]),_:1},8,["value"])]),_:1})]),_:1}),t(v,{xs:12,sm:8,lg:6},{default:a(()=>[t(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(S,{title:"草稿",value:e.countByStatus.draft,"value-style":{color:"#8c8c8c",fontSize:"20px"}},{prefix:a(()=>[t(e.FileTextOutlined)]),_:1},8,["value"])]),_:1})]),_:1}),t(v,{xs:12,sm:8,lg:6},{default:a(()=>[t(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(S,{title:"已完成",value:e.countByStatus.completed,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[t(e.CheckSquareOutlined)]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),_(" Filter "),U("div",Ue,[t(E,{value:e.statusFilter,"onUpdate:value":l[0]||(l[0]=n=>e.statusFilter=n),size:"small","button-style":"solid"},{default:a(()=>[t(k,{value:""},{default:a(()=>[...l[21]||(l[21]=[r("全部",-1)])]),_:1}),t(k,{value:"active"},{default:a(()=>[...l[22]||(l[22]=[r("活跃",-1)])]),_:1}),t(k,{value:"draft"},{default:a(()=>[...l[23]||(l[23]=[r("草稿",-1)])]),_:1}),t(k,{value:"completed"},{default:a(()=>[...l[24]||(l[24]=[r("已完成",-1)])]),_:1}),t(k,{value:"archived"},{default:a(()=>[...l[25]||(l[25]=[r("已归档",-1)])]),_:1})]),_:1},8,["value"]),t(L,{value:e.nameFilter,"onUpdate:value":l[1]||(l[1]=n=>e.nameFilter=n),placeholder:"按名称过滤",style:{"max-width":"260px"},"allow-clear":""},null,8,["value"])]),!e.projects.length&&!e.loading?(p(),x(F,{key:0,type:"info",message:"还没有项目",description:'运行 `cc project init <name>` 或点击右上角"新建项目"按钮创建。桌面 / CLI / 手机三端共享同一份数据。',"show-icon":"",style:{"margin-bottom":"16px"}})):_("v-if",!0),e.projects.length||e.loading?(p(),x(J,{key:1,columns:e.columns,"data-source":e.filteredProjects,loading:e.loading,pagination:{pageSize:20,showSizeChanger:!0},"row-key":"id","custom-row":e.onRowClick},{bodyCell:a(({column:n,record:c})=>[n.key==="id"?(p(),I("code",he,s(c.id.slice(0,8))+"…",1)):n.key==="name"?(p(),I(ne,{key:1},[U("strong",null,s(c.name),1),c.description?(p(),I("div",De,s(c.description),1)):_("v-if",!0)],64)):n.key==="project_type"?(p(),x(z,{key:2},{default:a(()=>[r(s(c.project_type),1)]),_:2},1024)):n.key==="status"?(p(),x(z,{key:3,color:e.statusColor(c.status)},{default:a(()=>[r(s(c.status),1)]),_:2},1032,["color"])):n.key==="sync_status"?(p(),x(z,{key:4,color:e.syncColor(c.sync_status)},{default:a(()=>[r(s(c.sync_status||"unknown"),1)]),_:2},1032,["color"])):n.key==="updated_at"?(p(),I(ne,{key:5},[r(s(e.formatTime(c.updated_at)),1)],64)):n.key==="actions"?(p(),x(O,{key:6,onClick:l[2]||(l[2]=ge(()=>{},["stop"]))},{default:a(()=>[t(y,{size:"small",onClick:q=>e.openDetail(c)},{default:a(()=>[...l[26]||(l[26]=[r("详情",-1)])]),_:1},8,["onClick"]),t(V,{title:`删除项目 '${c.name}' ?`,"ok-text":"删除","ok-type":"danger","cancel-text":"取消",onConfirm:q=>e.onDelete(c)},{default:a(()=>[t(y,{size:"small",danger:""},{default:a(()=>[...l[27]||(l[27]=[r("删除",-1)])]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):_("v-if",!0)]),_:1},8,["data-source","loading"])):_("v-if",!0),_(" Detail drawer "),t(H,{open:e.detailOpen,"onUpdate:open":l[3]||(l[3]=n=>e.detailOpen=n),title:e.detail?.name||"项目详情",width:"640",placement:"right"},{default:a(()=>[e.detail?(p(),x(K,{key:0,column:1,bordered:"",size:"small"},{default:a(()=>[t(g,{label:"ID"},{default:a(()=>[U("code",null,s(e.detail.id),1)]),_:1}),t(g,{label:"名称"},{default:a(()=>[r(s(e.detail.name),1)]),_:1}),t(g,{label:"描述"},{default:a(()=>[r(s(e.detail.description||"-"),1)]),_:1}),t(g,{label:"类型"},{default:a(()=>[t(z,null,{default:a(()=>[r(s(e.detail.project_type),1)]),_:1})]),_:1}),t(g,{label:"状态"},{default:a(()=>[t(z,{color:e.statusColor(e.detail.status)},{default:a(()=>[r(s(e.detail.status),1)]),_:1},8,["color"])]),_:1}),t(g,{label:"同步状态"},{default:a(()=>[t(z,{color:e.syncColor(e.detail.sync_status)},{default:a(()=>[r(s(e.detail.sync_status||"unknown"),1)]),_:1},8,["color"])]),_:1}),t(g,{label:"用户"},{default:a(()=>[r(s(e.detail.user_id),1)]),_:1}),t(g,{label:"根路径"},{default:a(()=>[e.detail.root_path?(p(),I("code",Re,s(e.detail.root_path),1)):(p(),I("span",Te,"(无)"))]),_:1}),t(g,{label:"文件数"},{default:a(()=>[r(s(e.detail.file_count||0),1)]),_:1}),t(g,{label:"创建"},{default:a(()=>[r(s(e.formatTime(e.detail.created_at)),1)]),_:1}),t(g,{label:"更新"},{default:a(()=>[r(s(e.formatTime(e.detail.updated_at)),1)]),_:1})]),_:1})):_("v-if",!0),t(Q,null,{default:a(()=>[...l[28]||(l[28]=[r("文件",-1)])]),_:1}),_(" Sub-phase 7.3 (2026-05-17): 文件 CRUD toolbar "),t(O,{style:{"margin-bottom":"12px"}},{default:a(()=>[t(y,{size:"small",type:"primary",disabled:!e.detail,onClick:e.openCreateFile},{default:a(()=>[t(e.FileAddOutlined),l[29]||(l[29]=r(" 新建文件 ",-1))]),_:1},8,["disabled"]),t(y,{size:"small",disabled:!e.detail,onClick:e.openCreateFolder},{default:a(()=>[t(e.FolderAddOutlined),l[30]||(l[30]=r(" 新建文件夹 ",-1))]),_:1},8,["disabled"])]),_:1}),t(G,{spinning:e.filesLoading},{default:a(()=>[!e.files.length&&!e.filesLoading?(p(),x(C,{key:0,description:"无文件 (点上方按钮新建)"})):(p(),x(M,{key:1,size:"small","data-source":e.files},{renderItem:a(({item:n})=>[t(Z,null,{extra:a(()=>[t(O,null,{default:a(()=>[n.file_size?(p(),I("span",Ee,s(n.file_size)+" B",1)):_("v-if",!0),t(V,{title:`删除 ${n.is_folder?"文件夹":"文件"} '${n.file_name}' ?`,"ok-text":"删除","ok-type":"danger","cancel-text":"取消",onConfirm:c=>e.onDeleteFile(n)},{default:a(()=>[t(y,{size:"small",danger:""},{default:a(()=>[...l[31]||(l[31]=[r("×",-1)])]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)]),default:a(()=>[U("span",{style:{cursor:"pointer"},onClick:c=>e.openEditFile(n)},s(n.is_folder?"📁":"📄")+" "+s(n.file_path),9,Be)]),_:2},1024)]),_:1},8,["data-source"]))]),_:1},8,["spinning"])]),_:1},8,["open","title"]),_(" Sub-phase 7.3: Create file modal "),t(A,{open:e.createFileOpen,"onUpdate:open":l[6]||(l[6]=n=>e.createFileOpen=n),title:"新建文件","confirm-loading":e.creatingFile,"ok-text":"创建","cancel-text":"取消",onOk:e.onCreateFile},{default:a(()=>[t(j,{layout:"vertical"},{default:a(()=>[t(b,{label:"文件路径(项目内)",required:""},{default:a(()=>[t(T,{value:e.newFile.path,"onUpdate:value":l[4]||(l[4]=n=>e.newFile.path=n),placeholder:"例如 README.md 或 src/main.kt"},null,8,["value"])]),_:1}),t(b,{label:"初始内容(可选)"},{default:a(()=>[t(D,{value:e.newFile.content,"onUpdate:value":l[5]||(l[5]=n=>e.newFile.content=n),rows:6,placeholder:"留空创建空文件"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),_(" Sub-phase 7.3: Create folder modal "),t(A,{open:e.createFolderOpen,"onUpdate:open":l[8]||(l[8]=n=>e.createFolderOpen=n),title:"新建文件夹","confirm-loading":e.creatingFolder,"ok-text":"创建","cancel-text":"取消",onOk:e.onCreateFolder},{default:a(()=>[t(j,{layout:"vertical"},{default:a(()=>[t(b,{label:"文件夹路径(项目内)",required:""},{default:a(()=>[t(T,{value:e.newFolder.path,"onUpdate:value":l[7]||(l[7]=n=>e.newFolder.path=n),placeholder:"例如 src/utils"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),_(" Sub-phase 7.3: Edit file content modal "),t(A,{open:e.editFileOpen,"onUpdate:open":l[10]||(l[10]=n=>e.editFileOpen=n),title:`编辑 ${e.editingFile?.file_name||""}`,"confirm-loading":e.savingFile,"ok-text":"保存","cancel-text":"取消",onOk:e.onSaveFile,width:"720"},{default:a(()=>[t(D,{value:e.editFileContent,"onUpdate:value":l[9]||(l[9]=n=>e.editFileContent=n),rows:18,"auto-size":{minRows:12,maxRows:24},style:{"font-family":"monospace"}},null,8,["value"])]),_:1},8,["open","title","confirm-loading"]),_(" Create modal "),t(A,{open:e.createOpen,"onUpdate:open":l[15]||(l[15]=n=>e.createOpen=n),title:"新建项目","confirm-loading":e.creating,"ok-text":"创建","cancel-text":"取消",onOk:e.onCreate},{default:a(()=>[t(j,{layout:"vertical"},{default:a(()=>[t(b,{label:"项目名称",required:""},{default:a(()=>[t(T,{value:e.newProject.name,"onUpdate:value":l[11]||(l[11]=n=>e.newProject.name=n),placeholder:"例如:旅行计划-上海"},null,8,["value"])]),_:1}),t(b,{label:"描述"},{default:a(()=>[t(D,{value:e.newProject.description,"onUpdate:value":l[12]||(l[12]=n=>e.newProject.description=n),rows:2},null,8,["value"])]),_:1}),t(b,{label:"类型"},{default:a(()=>[t(R,{value:e.newProject.type,"onUpdate:value":l[13]||(l[13]=n=>e.newProject.type=n)},{default:a(()=>[t(m,{value:"document"},{default:a(()=>[...l[32]||(l[32]=[r("文档 (document)",-1)])]),_:1}),t(m,{value:"data"},{default:a(()=>[...l[33]||(l[33]=[r("数据 (data)",-1)])]),_:1}),t(m,{value:"web"},{default:a(()=>[...l[34]||(l[34]=[r("Web",-1)])]),_:1}),t(m,{value:"app"},{default:a(()=>[...l[35]||(l[35]=[r("应用 (app)",-1)])]),_:1}),t(m,{value:"presentation"},{default:a(()=>[...l[36]||(l[36]=[r("演示文稿",-1)])]),_:1}),t(m,{value:"spreadsheet"},{default:a(()=>[...l[37]||(l[37]=[r("表格",-1)])]),_:1}),t(m,{value:"design"},{default:a(()=>[...l[38]||(l[38]=[r("设计",-1)])]),_:1}),t(m,{value:"code"},{default:a(()=>[...l[39]||(l[39]=[r("代码",-1)])]),_:1}),t(m,{value:"workflow"},{default:a(()=>[...l[40]||(l[40]=[r("工作流",-1)])]),_:1}),t(m,{value:"knowledge"},{default:a(()=>[...l[41]||(l[41]=[r("知识库",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),t(b,{label:"根路径 (可选)"},{default:a(()=>[t(T,{value:e.newProject.rootPath,"onUpdate:value":l[14]||(l[14]=n=>e.newProject.rootPath=n),placeholder:"留空则仅元数据"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])])}const We=we(Pe,[["render",Le],["__scopeId","data-v-019ac5aa"],["__file","/tmp/cc-web-panel-VvMmZ9/repo/packages/web-panel/src/views/Projects.vue"]]);export{We as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as r}from"./index-DjNjO-VL.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o}from"./Col-DsdlE4QC.js";import{a0 as t}from"./index-DjNjO-VL.js";import"./vendor-Bn1JzzAn.js";import"./index-DRuSuXJh.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row-D_NT1ROe.js";import{a0 as t}from"./index-DjNjO-VL.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-BZpgHE8P.js";import"./useFlexGapSupport-022JzYAL.js";import"./styleChecker-DusfWp6J.js";import"./index-DRuSuXJh.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
|