chainlesschain 0.162.109 → 0.162.110
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/package.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-DOMx_gkg.js → AIOps-BxhyZq9J.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-C3V6-KN7.js → ActionButton-BNUhIcPN.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DhcH00zB.js → Analytics-DpE1LQXz.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-DxaARGVc.js → AppLayout-D-vd98us.js} +5 -5
- package/src/assets/web-panel/assets/{Audit-B5v_yPs_.js → Audit-Bnfg0nUP.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-y0trXy2c.js → Backup-84Ryr92i.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BKmOrsWP.js → BaseInput-BHl2VN49.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-YxvzoXfA.js → Chat-C-XyRbZ_.js} +6 -6
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-BT502wFg.js → ChatBubbleRenderer-BQuS_MfK.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-CWlobcH7.js → Checkbox-gJpyQ5hV.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DyDnpB9x.js → Codegen-NIwk76Jx.js} +1 -1
- package/src/assets/web-panel/assets/{Col-vSk5m8e6.js → Col-Dy7-G7ei.js} +1 -1
- package/src/assets/web-panel/assets/{Community-ms1KDyit.js → Community-DGPF1QLB.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-CgOlMunA.js → Compact-Dg2jm5mx.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BtmnlvkF.js → Compliance-BGaJDYow.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-oEgcjamv.js → Cowork-CZiec6-_.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-C45dOmbZ.js → Cron-C5plyjhD.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-COCW4N4S.js → Crosschain-CGMz-rIE.js} +1 -1
- package/src/assets/web-panel/assets/{DID-D6L3jdjB.js → DID-BLMcsumG.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-CZO_nWR9.js → Dashboard-DEntKWjF.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BHogrwxg.js → Dropdown-DyRaZqrS.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DVU5KA6Y.js → EmailListRenderer-DX_Wu_uV.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-BpJuZRlS.js → FamilyGuardDashboard-PX0U_pH5.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-C8XUIu9h.js → Federation-DVgF8ZdM.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-Dkv__07L.js → FormItemContext-BRaX9vyC.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-PI4Hv6J7.js → GenericCardRenderer-Dy_c9ccI.js} +1 -1
- package/src/assets/web-panel/assets/{Git-DwoiOK7x.js → Git-Dv8Fh1_w.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-CZMrVnKF.js → Governance-D5vw7D8q.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DGMCR5fY.js → Inference-Dbt861U-.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CHnyTP7N.js → KnowledgeGraph-DgkYyYYk.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-aHwf1vTL.js → Logs-Bi7BMh2S.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-DrrJWlYy.js → Marketplace-Cu4tyI-N.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-FsvEQItl.js → McpTools-DhOo6KRf.js} +5 -5
- package/src/assets/web-panel/assets/{Memory-BaLEbZZU.js → Memory-M6jr41rl.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-Cbpe-UlH.js → MobileBridge-mB45yYre.js} +2 -2
- package/src/assets/web-panel/assets/{MobileProjects-WpHJ6m0I.js → MobileProjects-pQO0ZS_8.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-B2-MRjt7.js → Mtc-DIT60RG6.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-BPKg4478.js → MtcAudit-DV16w59B.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-DL-OMvg9.js → Multisig-DzXEXej1.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-BFbo7QJF.js → NLProgramming-ClR96m-f.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-DxlawFPj.js → Notes-Cqd3TQ9N.js} +4 -4
- package/src/assets/web-panel/assets/{NotificationSettings-mXTgzIC1.js → NotificationSettings-Ctzz5cx5.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-DlEZYyLt.js +1 -0
- package/src/assets/web-panel/assets/{Organization-FeID8_Wf.js → Organization-0HyOJovw.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-DTFS4Vaz.js → Overflow-BInoQKwn.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BkylEhA8.js → P2P-DSMX8d_q.js} +2 -2
- package/src/assets/web-panel/assets/PdhVaultBrowser-Dn8Utbaw.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-BSQ09sRI.js → Permissions-Dd_GAUT-.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-Ba5iRuIi.js → PersonalDataHub-CgZ2qfLH.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-DmL3Gpxg.js → Pipeline-Bh4OTBfH.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DAvd_DSh.js → Privacy-DRdhoeaJ.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-AxBuFwBR.js → ProjectInit-bifrkI6i.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-BZ40fAt5.js → ProjectSettings-RJ2xbAx3.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-BHNbHuBF.js → Projects-DPMre_Vt.js} +1 -1
- package/src/assets/web-panel/assets/Providers-DXR9-uVd.js +1 -0
- package/src/assets/web-panel/assets/{QuickAsk-CzKbOUkP.js → QuickAsk-VkUau5yj.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-D82aHoFt.js → Recommend-D9NMPNb6.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-zpuCi7ft.js → Reputation-D7-6naYX.js} +1 -1
- package/src/assets/web-panel/assets/{Row-BDq7p96-.js → Row-BX2i0Cmv.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-pAo6EJPy.js → RssFeed-Byb5WDNx.js} +3 -3
- package/src/assets/web-panel/assets/Search-CZyeEQAc.js +1 -0
- package/src/assets/web-panel/assets/{Security-Gn-HnKp5.js → Security-BWR_hUCv.js} +3 -3
- package/src/assets/web-panel/assets/{Services-BlfMJ4ZL.js → Services-NSc_9EF_.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-Q8cKUNTJ.js → Skeleton-BlAIlPnB.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BjOLODy1.js → Skills-CaU0R1CL.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-TbklgbfG.js → Sla-BnV-Fro4.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DzKKyV6J.js → SpeechSettings-CBHGfr4p.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-Bq-76qhL.js → SyncSettings-BwthnPiP.js} +2 -2
- package/src/assets/web-panel/assets/Tasks-KdXnN3nt.js +1 -0
- package/src/assets/web-panel/assets/{Templates-CS77urAR.js → Templates-BN4WwLUS.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-B1hx8tjz.js → Tenant-CZ24n54K.js} +1 -1
- package/src/assets/web-panel/assets/Terminal-BelzaRsd.js +3 -0
- package/src/assets/web-panel/assets/{TimelineRenderer-CS_iGXXB.js → TimelineRenderer-DhkqTGFa.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-CPfe_Ndx.js → Tokens-46_v1nkV.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-DARLZ6w5.js → Trigger-DogUmIqL.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-R_mlmd7H.js → Trust-BRByKmic.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-CysEd--z.js → UkeySign-BZmDgBR1.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-eQ46o05K.js → VideoEditing-DVvG6VSG.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-C5788NxS.js → Wallet-ChxdrDjz.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-CK_CPM4k.js → WebAuthn-BkX-jd9_.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-DhvdLkE6.js → WorkflowEditor-DtWPAhrj.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CcKQhy1e.js → chat-FLdS_X89.js} +1 -1
- package/src/assets/web-panel/assets/{colors-B4d3_MCE.js → colors-CdqVIbAc.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DC-Xf92z.js → compact-item-B1em0FOh.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-KBHDmwRY.js → createContext-xqQveKVc.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-FuXjMk0L.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-DEuYFeVL.js → hasIn-C2Ooy3F5.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdabmsmR.js → index-2N63y-3V.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cyb-NAiR.js → index-6x_TEnAx.js} +1 -1
- package/src/assets/web-panel/assets/{index-B4RknAfS.js → index-7hThnUln.js} +1 -1
- package/src/assets/web-panel/assets/{index-N4xZOl6m.js → index-B4vllS2j.js} +1 -1
- package/src/assets/web-panel/assets/{index-BwD3FKsC.js → index-B7MunZX_.js} +1 -1
- package/src/assets/web-panel/assets/{index-2Csz0FGD.js → index-BENOufkM.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4Ose5wC.js → index-BI7hFUhB.js} +1 -1
- package/src/assets/web-panel/assets/{index-DE0-JQay.js → index-BIDq5ivM.js} +1 -1
- package/src/assets/web-panel/assets/{index-ZbZ9FKyc.js → index-BINmnZLO.js} +1 -1
- package/src/assets/web-panel/assets/{index-DQXNz0yD.js → index-BP7jquLi.js} +1 -1
- package/src/assets/web-panel/assets/index-B_D6g2oc.js +1 -0
- package/src/assets/web-panel/assets/{index-CCnk_-ug.js → index-BcWe6vyc.js} +1 -1
- package/src/assets/web-panel/assets/{index-gOIec6-U.js → index-BfcxX38y.js} +1 -1
- package/src/assets/web-panel/assets/{index-ChJ_B7b9.js → index-BhuXJoB0.js} +1 -1
- package/src/assets/web-panel/assets/{index-Tcf8b4Dr.js → index-Bkyb8UQL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DhGYNT5Y.js → index-BqXBDJNB.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cl0As6V5.js → index-Br134Y_p.js} +1 -1
- package/src/assets/web-panel/assets/index-C-2_nxKI.js +1 -0
- package/src/assets/web-panel/assets/{index-8BCBAwoA.js → index-C0YSl1cy.js} +3 -3
- package/src/assets/web-panel/assets/{index-tW1RyKbL.js → index-CDK13Wi9.js} +1 -1
- package/src/assets/web-panel/assets/{index-CTgs-ddr.js → index-CPsgpARa.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxlEfskb.js → index-C_4O2sqg.js} +1 -1
- package/src/assets/web-panel/assets/{index-p5OuYAoC.js → index-CevlY-ti.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bm39r2a4.js → index-CtJcdcSi.js} +1 -1
- package/src/assets/web-panel/assets/{index-B5cOdkHy.js → index-Cw90dIiq.js} +1 -1
- package/src/assets/web-panel/assets/{index-JXP0mbdx.js → index-D1Y0w9Bp.js} +1 -1
- package/src/assets/web-panel/assets/{index-BZjC0VTy.js → index-D62oOPYQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DQMDCc8g.js → index-DBcAYh1Z.js} +1 -1
- package/src/assets/web-panel/assets/{index-VkeJvcgx.js → index-DBemh8BC.js} +1 -1
- package/src/assets/web-panel/assets/{index-BK8vM7es.js → index-DC2j3ZH1.js} +1 -1
- package/src/assets/web-panel/assets/{index-BJbBr6_l.js → index-DDoQxg20.js} +1 -1
- package/src/assets/web-panel/assets/{index-DSXxbnHU.js → index-DJsz-ISP.js} +1 -1
- package/src/assets/web-panel/assets/{index-BB9f50Gt.js → index-DaiNFrXW.js} +1 -1
- package/src/assets/web-panel/assets/{index-DZN3yAE2.js → index-I3PgXyCp.js} +1 -1
- package/src/assets/web-panel/assets/{index-DTudiivg.js → index-XI6xtz_p.js} +1 -1
- package/src/assets/web-panel/assets/{index-BCbc993k.js → index-dZPaczgC.js} +1 -1
- package/src/assets/web-panel/assets/{index-DkoDAyug.js → index-vPuKHNG_.js} +1 -1
- package/src/assets/web-panel/assets/{index-EnBI6ILp.js → index-wAA_52rV.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxtHBFqA.js → index-yjlraVSz.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-BSjGxzmn.js → initDefaultProps-DAa9deN1.js} +1 -1
- package/src/assets/web-panel/assets/{motion-B5_Cszlm.js → motion-DrpdeaZb.js} +1 -1
- package/src/assets/web-panel/assets/{move-Zi4ZApRv.js → move-Tqv8fQ0W.js} +1 -1
- package/src/assets/web-panel/assets/{omit-BNHsjZx4.js → omit-DHA5fID2.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-GzJRqTuY.js → pickAttrs-bsvBPVv5.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CXfzbh2d.js → placementArrow-Cl6kkCqO.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-lhENMtmd.js → responsiveObserve-BEFo1aZl.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BaUzfEHc.js → slide-J59l_i_x.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-ZYc611Fn.js → statusUtils-CgXZ-Y0K.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-CaymUbb1.js → styleChecker-CGQqxIef.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-9EAy_UPY.js → useFlexGapSupport-CgO0iWFX.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-CUqinWaA.js → useFs-DzTO2udE.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-eOXrcae-.js → usePersonalDataHub-Brihie_5.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-gBQTchDv.js → vnode-BSsmn1zK.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CCC5-LNi.js → zoom-Dofbccho.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/lib/repl-bang-memorize.js +27 -1
- package/src/lib/runnable-provider.js +12 -0
- package/src/lib/settings-loader.cjs +29 -1
- package/src/repl/agent-repl.js +22 -2
- package/src/assets/web-panel/assets/OrderTableRenderer-BUcf5CYv.js +0 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-D8bxEEcj.js +0 -7
- package/src/assets/web-panel/assets/Providers-CDkzXPon.js +0 -1
- package/src/assets/web-panel/assets/Search-BXv5RRMM.js +0 -1
- package/src/assets/web-panel/assets/Tasks-DWBUnqic.js +0 -1
- package/src/assets/web-panel/assets/Terminal-CNX2SAIP.js +0 -3
- package/src/assets/web-panel/assets/devWarning-Da3Hdd0q.js +0 -1
- package/src/assets/web-panel/assets/index-BMeXnsEn.js +0 -1
- package/src/assets/web-panel/assets/index-BdqPeWvV.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as n}from"./index-
|
|
1
|
+
import{K as n}from"./index-C0YSl1cy.js";import{i as e}from"./motion-DrpdeaZb.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-C0YSl1cy.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{A as d}from"./index-
|
|
1
|
+
import{A as d}from"./index-C0YSl1cy.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-9EAy_UPY.js → useFlexGapSupport-CgO0iWFX.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o,s as t}from"./vendor-BvqAck49.js";import{d as s}from"./styleChecker-
|
|
1
|
+
import{o,s as t}from"./vendor-BvqAck49.js";import{d as s}from"./styleChecker-CGQqxIef.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-C0YSl1cy.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 f}from"./index-
|
|
1
|
+
import{u as f}from"./index-C0YSl1cy.js";function d(n){if(!n)return n;if(n.error)throw new Error(n.error);return n.result!==void 0?n.result:n}function p(n,t,a,e,r){return typeof n.onMessage!="function"||typeof n.sendRaw!="function"?n.sendRaw({type:t,...a},r).then(d):new Promise((u,s)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${t}.event`,g=`${t}.end`;let c=!1,y=()=>{};const o=(i,b)=>{if(!c){c=!0,clearTimeout(m);try{y()}catch{}i(b)}},m=setTimeout(()=>{o(s,new Error(`stream timeout (${r}ms): ${t}`))},r),h=n.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof e=="function")try{e(i.event||i)}catch{}return}if(i.type===g){o(u,d(i));return}i.type==="error"&&o(s,new Error(i.message||"stream error"))}});y=typeof h=="function"?h:()=>{},Promise.resolve(n.sendRaw({id:l,type:t,...a},r)).catch(()=>{})})}function D(){const n=f(),t=(a,e={},r=3e4)=>n.sendRaw({type:a,...e},r).then(d);return{async health(){return await t("personal-data-hub.health",{},8e3)},async stats(){return await t("personal-data-hub.stats",{},8e3)},async listAdapters(){return await t("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const e=await n.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),r=e&&e.result!==void 0?e.result:e;return r&&r.ok&&typeof r.filePath=="string"?r.filePath:null}catch{return null}},async adapterReadiness(a){return await t("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,e={}){return await t("personal-data-hub.sync-adapter",{name:a,options:e},12e4)},async syncAll(a={}){return await t("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:e=20,seed:r=1}={}){return await t("personal-data-hub.register-mock",{name:a,count:e,seed:r})},async unregister(a){return await t("personal-data-hub.unregister",{name:a})},async ask(a,e={}){return await t("personal-data-hub.ask",{question:a,options:e},18e4)},async queryEvents(a={}){return await t("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await t("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await t("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await t("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await t("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,e={}){return await t("personal-data-hub.register-email",{account:a,opts:e},15e3)},async unregisterEmail(a){return await t("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await t("personal-data-hub.list-email-accounts",{},5e3)},async eventDetail(a){return await t("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,e={},r){return await p(n,"personal-data-hub.sync-adapter-stream",{name:a,options:e},r,6e5)},async syncAllStream(a={},e){return await p(n,"personal-data-hub.sync-all-stream",{options:a},e,9e5)},async registerAlipay(a,e={}){return await t("personal-data-hub.register-alipay",{account:a,opts:e},15e3)},async unregisterAlipay(a){return await t("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await t("personal-data-hub.list-alipay-accounts",{},5e3)},async importAlipayBill({zipPath:a,csvPath:e,zipPassword:r}={}){return await t("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:e,zipPassword:r},3e5)},async reviewQueueList(a=50){return await t("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,e){return await t("personal-data-hub.review-decision",{reviewId:a,decision:e},5e3)},async manualMerge(a,e){return await t("personal-data-hub.manual-merge",{aId:a,bId:e},5e3)},async manualUnmerge(a){return await t("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await t("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await t("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await t("personal-data-hub.skills-list",{},5e3)},async runSkill(a,e={}){return await t("personal-data-hub.run-skill",{name:a,options:e},12e4)},async openAichatLogin(a,e={}){return await t("personal-data-hub.aichat-open-login",{vendor:a,opts:e},1e4)},async probeAichatCookies(a,e){return await t("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:e},1e4)},async registerAichatVendor(a,e,r={}){return await t("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:e,opts:r},3e4)},async rotateAichatLogin(a){return await t("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await t("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await t("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await t("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await t("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:e,wechatDataPath:r,fridaOpts:u,keyProviderOverride:s}={}){return await t("personal-data-hub.register-wechat",{account:a,dbPath:e,wechatDataPath:r,fridaOpts:u,keyProviderOverride:s},45e3)},async listWechatAccounts(){return await t("personal-data-hub.list-wechat-accounts",{},5e3)},async unregisterWechat(a){return await t("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await t("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await t("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await t("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await t("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await t("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await t("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await t("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await t("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{D as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as i,h as a,w as l}from"./index-
|
|
1
|
+
import{M as i,h as a,w as l}from"./index-C0YSl1cy.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-BvqAck49.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 N(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,N as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as o}from"./index-
|
|
1
|
+
import{K as o}from"./index-C0YSl1cy.js";import{i as f}from"./motion-DrpdeaZb.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-C0YSl1cy.js"></script>
|
|
12
12
|
<link rel="modulepreload" crossorigin href="./assets/vendor-BvqAck49.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="./assets/icons-DP3uiYxy.js">
|
|
14
14
|
<link rel="stylesheet" crossorigin href="./assets/index-Cq93VfoF.css">
|
|
@@ -67,7 +67,9 @@ export function runBangCommand(line, opts = {}) {
|
|
|
67
67
|
const spawnSync = opts.deps?.spawnSync || _deps.spawnSync;
|
|
68
68
|
const cwd = opts.cwd || process.cwd();
|
|
69
69
|
const isWin =
|
|
70
|
-
opts.platform != null
|
|
70
|
+
opts.platform != null
|
|
71
|
+
? opts.platform === "win32"
|
|
72
|
+
: process.platform === "win32";
|
|
71
73
|
const cmd = String(line).replace(/^!/, "").trim();
|
|
72
74
|
|
|
73
75
|
const res = isWin
|
|
@@ -101,6 +103,30 @@ export function runBangCommand(line, opts = {}) {
|
|
|
101
103
|
};
|
|
102
104
|
}
|
|
103
105
|
|
|
106
|
+
/**
|
|
107
|
+
* Whether a `!command` in the REPL should auto-trigger an assistant response to
|
|
108
|
+
* its output (Claude-Code 2.1.186 `respondToBashCommands`). Opt-IN — default
|
|
109
|
+
* OFF: by default the command output is folded into context but no LLM turn
|
|
110
|
+
* fires, so a quick `!ls` / `!git status` never spends a turn. (cc intentionally
|
|
111
|
+
* diverges from upstream's default-on here.)
|
|
112
|
+
*
|
|
113
|
+
* Precedence: `CC_RESPOND_TO_BASH` env (1/true/yes/on → on, else off) overrides
|
|
114
|
+
* the settings.json `respondToBashCommands` boolean, which overrides the default
|
|
115
|
+
* (false). Pure — the caller passes the resolved settings value + env.
|
|
116
|
+
*
|
|
117
|
+
* @param {{ settingValue?: boolean, env?: object }} [opts]
|
|
118
|
+
* @returns {boolean}
|
|
119
|
+
*/
|
|
120
|
+
export function shouldRespondToBashCommands(opts = {}) {
|
|
121
|
+
const env = opts.env || process.env;
|
|
122
|
+
const raw = env.CC_RESPOND_TO_BASH;
|
|
123
|
+
if (raw != null && String(raw).trim() !== "") {
|
|
124
|
+
return /^(1|true|yes|on)$/i.test(String(raw).trim());
|
|
125
|
+
}
|
|
126
|
+
if (typeof opts.settingValue === "boolean") return opts.settingValue;
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
|
|
104
130
|
/**
|
|
105
131
|
* Append a `#` note to the project cc.md (created at the git root — falls
|
|
106
132
|
* back to cwd outside a repo). Inserts under a `## Notes` heading, creating
|
|
@@ -124,6 +124,18 @@ export function makeRunnableProviderFallback(
|
|
|
124
124
|
},
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
+
// Cross-provider env-keyed fallback fires ONLY when the configured provider
|
|
128
|
+
// is itself unrunnable (no key present). If the user EXPLICITLY configured a
|
|
129
|
+
// provider WITH a key and it returned an auth error, that key is bad/expired
|
|
130
|
+
// — surface it instead of silently switching VENDORS and spending on a
|
|
131
|
+
// different account's key. This is the recurring "configured volcengine but
|
|
132
|
+
// it ran Claude/haiku" trap: a volcengine 401 must never hijack the turn
|
|
133
|
+
// onto anthropic just because ANTHROPIC_API_KEY happens to be in the env.
|
|
134
|
+
// (The baseUrl-mismatch path above still relabels a mislabeled config using
|
|
135
|
+
// the SAME key, which is always safe.)
|
|
136
|
+
if (hasUsableKey(failed, { apiKey: options.apiKey, isActive: true, env })) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
127
139
|
for (const [name, def] of Object.entries(BUILT_IN_PROVIDERS)) {
|
|
128
140
|
if (name === failed) continue;
|
|
129
141
|
if (def.apiKeyEnv && nonEmpty(env[def.apiKeyEnv])) {
|
|
@@ -187,7 +187,9 @@ function addRule({ cwd = process.cwd(), kind, rule, scope = "project" } = {}) {
|
|
|
187
187
|
try {
|
|
188
188
|
data = JSON.parse(text) || {};
|
|
189
189
|
} catch (err) {
|
|
190
|
-
throw new Error(
|
|
190
|
+
throw new Error(
|
|
191
|
+
`refusing to overwrite malformed ${file} (${err.message})`,
|
|
192
|
+
);
|
|
191
193
|
}
|
|
192
194
|
}
|
|
193
195
|
if (!data.permissions || typeof data.permissions !== "object") {
|
|
@@ -237,10 +239,36 @@ function loadSettingsConfig(opts = {}) {
|
|
|
237
239
|
return { model, env, files };
|
|
238
240
|
}
|
|
239
241
|
|
|
242
|
+
/**
|
|
243
|
+
* Read a top-level boolean setting across the layered `.claude/settings.json`
|
|
244
|
+
* files (last/closest layer wins — same precedence as the permission rules).
|
|
245
|
+
* Non-boolean values are ignored. Returns `undefined` when no layer sets it, so
|
|
246
|
+
* a caller can distinguish "unset" from an explicit `false`.
|
|
247
|
+
*
|
|
248
|
+
* @param {string} key top-level settings key (e.g. "respondToBashCommands")
|
|
249
|
+
* @param {object} [opts]
|
|
250
|
+
* @param {string} [opts.cwd=process.cwd()]
|
|
251
|
+
* @param {string} [opts.settingsFile]
|
|
252
|
+
* @param {(msg:string)=>void} [opts.onWarn]
|
|
253
|
+
* @returns {boolean|undefined}
|
|
254
|
+
*/
|
|
255
|
+
function readBooleanSetting(key, opts = {}) {
|
|
256
|
+
const cwd = opts.cwd || process.cwd();
|
|
257
|
+
let value;
|
|
258
|
+
for (const file of settingsPaths(cwd, opts.settingsFile)) {
|
|
259
|
+
const data = readSettingsFile(file, { onWarn: opts.onWarn });
|
|
260
|
+
if (data && typeof data[key] === "boolean") {
|
|
261
|
+
value = data[key]; // last (closest) layer wins
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return value;
|
|
265
|
+
}
|
|
266
|
+
|
|
240
267
|
module.exports = {
|
|
241
268
|
loadSettings,
|
|
242
269
|
loadSettingsConfig,
|
|
243
270
|
readSettingsFile,
|
|
271
|
+
readBooleanSetting,
|
|
244
272
|
settingsPaths,
|
|
245
273
|
parseEnvList,
|
|
246
274
|
ruleSource,
|
package/src/repl/agent-repl.js
CHANGED
|
@@ -112,6 +112,10 @@ let _permissionRules = null;
|
|
|
112
112
|
let _permissionConfirm = null;
|
|
113
113
|
// .claude/settings.json `hooks` block (decision-capable PreToolUse/PostToolUse).
|
|
114
114
|
let _settingsHooks = null;
|
|
115
|
+
// .claude/settings.json `respondToBashCommands` (Claude-Code 2.1.186): whether a
|
|
116
|
+
// `!command` auto-triggers an assistant response to its output. undefined =
|
|
117
|
+
// unset → defaults OFF (opt-in) in shouldRespondToBashCommands.
|
|
118
|
+
let _respondToBash;
|
|
115
119
|
|
|
116
120
|
/**
|
|
117
121
|
* Fire settings.json Notification hooks (observe-only) — the agent needs the
|
|
@@ -444,8 +448,13 @@ export async function startAgentRepl(options = {}) {
|
|
|
444
448
|
// Load .claude/settings.json permission rules + wire an interactive confirmer
|
|
445
449
|
// so `ask` rules prompt (rather than fall closed like headless does).
|
|
446
450
|
try {
|
|
447
|
-
const { loadSettings } =
|
|
451
|
+
const { loadSettings, readBooleanSetting } =
|
|
452
|
+
await import("../lib/settings-loader.cjs");
|
|
448
453
|
const loaded = loadSettings({ cwd: process.cwd() });
|
|
454
|
+
// Claude-Code 2.1.186 respondToBashCommands (default OFF / opt-in when unset).
|
|
455
|
+
_respondToBash = readBooleanSetting("respondToBashCommands", {
|
|
456
|
+
cwd: process.cwd(),
|
|
457
|
+
});
|
|
449
458
|
const total =
|
|
450
459
|
loaded.rules.allow.length +
|
|
451
460
|
loaded.rules.ask.length +
|
|
@@ -1253,7 +1262,8 @@ export async function startAgentRepl(options = {}) {
|
|
|
1253
1262
|
// no LLM round-trip — and fold the output into the conversation context.
|
|
1254
1263
|
if (trimmed.startsWith("!") && trimmed.slice(1).trim()) {
|
|
1255
1264
|
try {
|
|
1256
|
-
const { runBangCommand } =
|
|
1265
|
+
const { runBangCommand, shouldRespondToBashCommands } =
|
|
1266
|
+
await import("../lib/repl-bang-memorize.js");
|
|
1257
1267
|
const res = runBangCommand(trimmed, { cwd: process.cwd() });
|
|
1258
1268
|
logger.log(chalk.gray(`$ ${res.cmd}`));
|
|
1259
1269
|
if (res.stdout)
|
|
@@ -1268,6 +1278,16 @@ export async function startAgentRepl(options = {}) {
|
|
|
1268
1278
|
);
|
|
1269
1279
|
if (res.error) logger.error(`shell error: ${res.error.message}`);
|
|
1270
1280
|
logger.log(chalk.gray(`(exit ${res.exitCode})`));
|
|
1281
|
+
// Claude-Code 2.1.186 `respondToBashCommands` (opt-in, default OFF):
|
|
1282
|
+
// when enabled, the assistant automatically responds to the command
|
|
1283
|
+
// output. Re-dispatch the captured <bash-input>/<bash-output> as a
|
|
1284
|
+
// normal user turn so the FULL turn machinery (streaming render, tools,
|
|
1285
|
+
// session persistence) is reused — the bash-tagged content can't
|
|
1286
|
+
// re-trigger the `!` branch.
|
|
1287
|
+
if (shouldRespondToBashCommands({ settingValue: _respondToBash })) {
|
|
1288
|
+
await handleLine(res.contextMessage.content);
|
|
1289
|
+
return; // the nested turn already re-prompted
|
|
1290
|
+
}
|
|
1271
1291
|
messages.push(res.contextMessage);
|
|
1272
1292
|
} catch (err) {
|
|
1273
1293
|
logger.error(`! command failed: ${err.message}`);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as h,P as l,J as u,U as s,R as n,c as i,K as v,Q as _,V as y,b as a}from"./vendor-BvqAck49.js";import{_ as w}from"./index-8BCBAwoA.js";import"./icons-DP3uiYxy.js";const k={__name:"OrderTableRenderer",props:{event:{type:Object,required:!0}},setup(p,{expose:r}){r();const o=p,e=a(()=>o.event.content||{}),d=a(()=>o.event.extra||{}),m=a(()=>d.value.merchant||e.value.merchant||e.value.counterparty||"—"),c=a(()=>e.value.title||e.value.name||e.value.itemName||e.value.text||"—"),g=a(()=>{const t=e.value.amount??e.value.price??e.value.total;return t==null?"—":`${e.value.currency||"¥"} ${typeof t=="number"?t.toFixed(2):t}`}),T=a(()=>d.value.orderNo||e.value.orderNo||e.value.orderId),f=a(()=>e.value.status||e.value.state),S=a(()=>{const t=(f.value||"").toLowerCase();return t.includes("成功")||t.includes("succe")||t.includes("paid")?"green":t.includes("退")||t.includes("refund")?"orange":t.includes("失败")||t.includes("fail")?"red":"default"}),b=a(()=>{if(!o.event.occurredAt)return"";const t=new Date(o.event.occurredAt);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}),x={props:o,c:e,e:d,merchantText:m,itemText:c,amountText:g,orderNo:T,statusText:f,statusColor:S,formattedTime:b,computed:a};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}},N={class:"order-card"},C={class:"head"},O={class:"time"},V={class:"row"},R={class:"val"},B={class:"row"},D={class:"val"},F={class:"row amount-row"},I={class:"val amount"},j={key:0,class:"row"},A={class:"val mono"},L={key:1,class:"row"};function M(p,r,o,e,d,m){const c=h("a-tag");return l(),u("div",N,[s("div",C,[s("span",O,n(e.formattedTime),1),i(c,{color:"gold"},{default:v(()=>[_(n(o.event.source.adapter),1)]),_:1}),i(c,null,{default:v(()=>[_(n(o.event.subtype),1)]),_:1})]),s("div",V,[r[0]||(r[0]=s("span",{class:"key"},"商户",-1)),s("span",R,n(e.merchantText),1)]),s("div",B,[r[1]||(r[1]=s("span",{class:"key"},"商品/项目",-1)),s("span",D,n(e.itemText),1)]),s("div",F,[r[2]||(r[2]=s("span",{class:"key"},"金额",-1)),s("span",I,n(e.amountText),1)]),e.orderNo?(l(),u("div",j,[r[3]||(r[3]=s("span",{class:"key"},"单号",-1)),s("span",A,n(e.orderNo),1)])):y("v-if",!0),e.statusText?(l(),u("div",L,[r[4]||(r[4]=s("span",{class:"key"},"状态",-1)),i(c,{color:e.statusColor},{default:v(()=>[_(n(e.statusText),1)]),_:1},8,["color"])])):y("v-if",!0)])}const J=w(k,[["render",M],["__scopeId","data-v-5ed5524d"],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/components/pdh/renderers/OrderTableRenderer.vue"]]);export{J as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ChatBubbleRenderer-BT502wFg.js","./vendor-BvqAck49.js","./index-8BCBAwoA.js","./icons-DP3uiYxy.js","./index-Cq93VfoF.css","./ChatBubbleRenderer-gy5SDGw2.css","./OrderTableRenderer-BUcf5CYv.js","./OrderTableRenderer-CfrDjSHT.css","./TimelineRenderer-CS_iGXXB.js","./TimelineRenderer-BlTAtkOc.css","./EmailListRenderer-DVU5KA6Y.js","./EmailListRenderer-DTPZPx_S.css","./GenericCardRenderer-PI4Hv6J7.js","./GenericCardRenderer-o85VDYQS.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{E as ue,r as E,b as w,I as g,P as u,J as O,U as v,c,S as C,V as x,_ as M,F as V,Z as se,a0 as le,R,K as m,Q as b,W as j,o as J}from"./vendor-BvqAck49.js";import{u as U}from"./usePersonalDataHub-eOXrcae-.js";import{_ as D,e as A,d as P}from"./index-8BCBAwoA.js";import{a9 as q,af as z,M as Q,aH as G,u as Z,aG as H,ap as K,ab as W,e as de,d as fe,k as pe,ah as me,az as _e,R as ye}from"./icons-DP3uiYxy.js";const I=Object.freeze({q:"",category:null,adapter:null,subtype:null,since:null,until:null}),B=50,Y=300,X=ue("pdhBrowser",()=>{const r=E({...I}),t=E([]),n=E(null),e=E(!1),o=E(!1),l=E(null),a=E(null),s=E(!1),i=E({byCategory:{},byAdapter:{},bySubtype:{},total:0});let d=0,_=null;const L=w(()=>t.value.length>0),F=w(()=>n.value!=null);function h(S={}){const p={},f=r.value;return f.q&&f.q.trim()&&(p.q=f.q.trim()),f.category&&(p.category=f.category),f.adapter&&(p.adapter=f.adapter),f.subtype&&(p.subtype=f.subtype),Number.isFinite(f.since)&&(p.since=f.since),Number.isFinite(f.until)&&(p.until=f.until),{...p,...S}}async function y(){const S=++d;e.value=!0,l.value=null;const p=U();try{const[f,T]=await Promise.all([p.searchEvents(h({limit:B})),p.facetCounts({...r.value.q&&r.value.q.trim()?{q:r.value.q.trim()}:{},...Number.isFinite(r.value.since)?{since:r.value.since}:{},...Number.isFinite(r.value.until)?{until:r.value.until}:{}})]);if(S!==d)return;t.value=f.rows||[],n.value=f.nextCursor||null,a.value=f.mode||"like",s.value=!!f.shortQuery,i.value={byCategory:T.byCategory||{},byAdapter:T.byAdapter||{},bySubtype:T.bySubtype||{},total:T.total||0}}catch(f){if(S!==d)return;l.value=f&&f.message?f.message:String(f),t.value=[],n.value=null}finally{S===d&&(e.value=!1)}}async function k(){if(!n.value||o.value)return;o.value=!0,l.value=null;const S=U();try{const p=await S.searchEvents(h({cursor:n.value,limit:B}));t.value=t.value.concat(p.rows||[]),n.value=p.nextCursor||null,a.value=p.mode||a.value}catch(p){l.value=p&&p.message?p.message:String(p)}finally{o.value=!1}}function ae(S,p){if(!(S in I))throw new Error(`pdhBrowser.setFilter: unknown key "${S}"`);r.value={...r.value,[S]:p},_&&clearTimeout(_),_=setTimeout(()=>{_=null,y()},Y)}function ie(S){return r.value={...I,...S},_&&(clearTimeout(_),_=null),y()}function ce(){r.value={...I},t.value=[],n.value=null,l.value=null,i.value={byCategory:{},byAdapter:{},bySubtype:{},total:0}}return{filters:r,results:t,cursor:n,isLoading:e,isAppending:o,error:l,mode:a,shortQuery:s,facets:i,hasResults:L,canLoadMore:F,search:y,loadMore:k,setFilter:ae,setFilters:ie,reset:ce,PAGE_SIZE:B,SEARCH_DEBOUNCE_MS:Y}}),ge=Object.freeze(["chat","social","email","shopping","travel","system","ai-chat","other"]),ve=Object.freeze({chat:"社交聊天",social:"内容平台",email:"邮件",shopping:"支付订单",travel:"出行",system:"系统数据","ai-chat":"AI 对话",other:"其他"});function N(r){return ve[r]||r||"未知"}const be=Object.freeze([["wechat","chat"],["messaging-","chat"],["social-","social"],["email-","email"],["shopping-","shopping"],["alipay-","shopping"],["travel-","travel"],["system-data","system"],["browser-","system"],["vscode","system"],["win-recent","system"],["git-activity","system"],["shell-history","system"],["local-files","system"],["ai-chat-","ai-chat"]]);function $(r){if(typeof r!="string"||r.length===0)return"other";for(const[t,n]of be)if(t.endsWith("-")||t==="system-data"){if(r.startsWith(t))return n}else if(r===t)return n;return"other"}const he={__name:"CategorySidebar",props:{selected:{type:String,default:null},facets:{type:Object,default:()=>({byCategory:{},total:0})}},emits:["select"],setup(r,{expose:t}){t();const n=r,e=w(()=>n.facets.total||0),o={chat:W,social:K,email:H,shopping:Z,travel:G,system:Q,"ai-chat":z,other:q};function l(i){return o[i]||q}function a(i){return i?{backgroundColor:"#fff",color:"#1677ff"}:{backgroundColor:"#f0f0f0",color:"#666"}}const s={props:n,total:e,ICONS:o,iconFor:l,badgeStyle:a,computed:w,get AppstoreOutlined(){return q},get MessageOutlined(){return W},get PlayCircleOutlined(){return K},get MailOutlined(){return H},get ShoppingOutlined(){return Z},get CarOutlined(){return G},get MobileOutlined(){return Q},get RobotOutlined(){return z},get CATEGORIES(){return ge},get categoryLabel(){return N}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}},Se={class:"pdh-sidebar"},Oe=["onClick"],we={class:"label"};function Ce(r,t,n,e,o,l){const a=g("a-badge");return u(),O("div",Se,[t[2]||(t[2]=v("div",{class:"sidebar-title"},"数据类型",-1)),v("div",{class:M(["cat-item",{active:n.selected===null}]),onClick:t[0]||(t[0]=s=>r.$emit("select",null))},[c(e.AppstoreOutlined,{class:"icon"}),t[1]||(t[1]=v("span",{class:"label"},"全部",-1)),e.total>0?(u(),C(a,{key:0,count:e.total,"number-style":e.badgeStyle(n.selected===null),"overflow-count":9999},null,8,["count","number-style"])):x("v-if",!0)],2),(u(!0),O(V,null,se(e.CATEGORIES,s=>(u(),O("div",{key:s,class:M(["cat-item",{active:n.selected===s,dim:!n.facets.byCategory[s]}]),onClick:i=>r.$emit("select",s)},[(u(),C(le(e.iconFor(s)),{class:"icon"})),v("span",we,R(e.categoryLabel(s)),1),n.facets.byCategory[s]?(u(),C(a,{key:0,count:n.facets.byCategory[s],"number-style":e.badgeStyle(n.selected===s),"overflow-count":9999},null,8,["count","number-style"])):x("v-if",!0)],10,Oe))),128))])}const ke=D(he,[["render",Ce],["__scopeId","data-v-6b62a22e"],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/components/pdh/CategorySidebar.vue"]]),xe={__name:"SearchFilterBar",props:{filters:{type:Object,required:!0},facets:{type:Object,default:()=>({byAdapter:{}})},isLoading:{type:Boolean,default:!1},mode:{type:String,default:null},shortQuery:{type:Boolean,default:!1}},emits:["set-filter","reset"],setup(r,{expose:t,emit:n}){t();const e=r,o=n,l=w(()=>e.filters.category?`在「${e.filters.category}」类目内搜索…`:"搜索关键词(如:支付宝、罗技、Kotlin)…"),a=w(()=>Object.entries(e.facets.byAdapter||{}).sort((y,k)=>k[1]-y[1]).map(([y,k])=>({value:y,label:`${y} (${k})`}))),s=w(()=>!e.filters.since&&!e.filters.until?null:[e.filters.since?new Date(e.filters.since):null,e.filters.until?new Date(e.filters.until):null]),i=w(()=>!!(e.filters.q||e.filters.adapter||e.filters.subtype||e.filters.since||e.filters.until));function d(h){o("set-filter","q",h||"")}function _(h){o("set-filter","q",h||"")}function L(h){if(!h||h.length===0){o("set-filter","since",null),o("set-filter","until",null);return}const[y,k]=h;o("set-filter","since",y?+y:null),o("set-filter","until",k?+k:null)}const F={props:e,emit:o,placeholderText:l,adapterOptions:a,dateRangeValue:s,hasActiveFilters:i,onQInput:d,onSearch:_,onDateChange:L,computed:w,get SearchOutlined(){return pe},get CloseCircleOutlined(){return fe},get InfoCircleOutlined(){return de}};return Object.defineProperty(F,"__isScriptSetup",{enumerable:!1,value:!0}),F}},Ee={class:"pdh-filter-bar"},Re={key:1,class:"hint"},Le={key:2,class:"hint"};function Fe(r,t,n,e,o,l){const a=g("a-input-search"),s=g("a-select"),i=g("a-range-picker"),d=g("a-button");return u(),O("div",Ee,[c(a,{value:n.filters.q,placeholder:e.placeholderText,"enter-button":"搜索","allow-clear":"",loading:n.isLoading,style:{flex:"1","max-width":"480px"},"onUpdate:value":e.onQInput,onSearch:e.onSearch},{prefix:m(()=>[c(e.SearchOutlined)]),_:1},8,["value","placeholder","loading"]),c(s,{value:n.filters.adapter,placeholder:"所有 adapter","allow-clear":"",options:e.adapterOptions,style:{width:"200px"},"onUpdate:value":t[0]||(t[0]=_=>r.$emit("set-filter","adapter",_||null))},null,8,["value","options"]),c(i,{value:e.dateRangeValue,placeholder:["开始日期","结束日期"],style:{width:"280px"},"onUpdate:value":e.onDateChange},null,8,["value"]),e.hasActiveFilters?(u(),C(d,{key:0,type:"link",danger:"",onClick:t[1]||(t[1]=_=>r.$emit("reset"))},{icon:m(()=>[c(e.CloseCircleOutlined)]),default:m(()=>[t[2]||(t[2]=b(" 清空筛选 ",-1))]),_:1})):x("v-if",!0),n.shortQuery?(u(),O("span",Re,[c(e.InfoCircleOutlined),t[3]||(t[3]=b(" 关键词需至少 3 字 (FTS5 trigram 限制) ",-1))])):n.mode==="like"?(u(),O("span",Le,[c(e.InfoCircleOutlined),t[4]||(t[4]=b(" 当前为 LIKE 兜底模式 ",-1))])):x("v-if",!0)])}const je=D(xe,[["render",Fe],["__scopeId","data-v-d7cce6e9"],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/components/pdh/SearchFilterBar.vue"]]),Ae={__name:"RendererDispatcher",props:{event:{type:Object,required:!0}},setup(r,{expose:t}){t();const n=j(()=>A(()=>import("./ChatBubbleRenderer-BT502wFg.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)),e=j(()=>A(()=>import("./OrderTableRenderer-BUcf5CYv.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)),o=j(()=>A(()=>import("./TimelineRenderer-CS_iGXXB.js"),__vite__mapDeps([8,1,2,3,4,9]),import.meta.url)),l=j(()=>A(()=>import("./EmailListRenderer-DVU5KA6Y.js"),__vite__mapDeps([10,1,2,3,4,11]),import.meta.url)),a=j(()=>A(()=>import("./GenericCardRenderer-PI4Hv6J7.js"),__vite__mapDeps([12,1,2,3,4,13]),import.meta.url));function s(d){const _=d&&d.source&&d.source.adapter;switch($(_)){case"chat":case"ai-chat":return n;case"shopping":return e;case"travel":return o;case"email":return l;default:return a}}const i={ChatBubbleRenderer:n,OrderTableRenderer:e,TimelineRenderer:o,EmailListRenderer:l,GenericCardRenderer:a,rendererFor:s,defineAsyncComponent:j,get getCategory(){return $}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}};function De(r,t,n,e,o,l){return u(),C(le(e.rendererFor(n.event)),{event:n.event},null,8,["event"])}const Te=D(Ae,[["render",De],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/components/pdh/renderers/RendererDispatcher.vue"]]);function ee(r){return JSON.stringify(r,null,2)}function te(r){return r.map(t=>JSON.stringify(t)).join(`
|
|
3
|
-
`)+`
|
|
4
|
-
`}function ne(r){const n=["id","subtype","occurredAt","occurredAtIso","actor","place","adapter","summary","contentJson","extraJson"].join(","),e=r.map(o=>{const l=Number.isFinite(o.occurredAt)?o.occurredAt:null,a=l?new Date(l).toISOString():"",s=o.source&&o.source.adapter||"",i=o.content&&(o.content.text||o.content.title||o.content.subject)||"";return[o.id||"",o.subtype||"",l!=null?String(l):"",a,o.actor||"",o.place||"",s,i,o.content?JSON.stringify(o.content):"",o.extra?JSON.stringify(o.extra):""].map(Ie).join(",")});return[n,...e].join(`
|
|
5
|
-
`)+`
|
|
6
|
-
`}function Ie(r){const t=String(r??"");return t.includes(",")||t.includes('"')||t.includes(`
|
|
7
|
-
`)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function re(r,t,n="application/octet-stream"){if(typeof window>"u"||typeof document>"u")return t;const e=new Blob([r],{type:n}),o=URL.createObjectURL(e),l=document.createElement("a");return l.href=o,l.download=t,document.body.appendChild(l),l.click(),document.body.removeChild(l),setTimeout(()=>URL.revokeObjectURL(o),1e3),t}function oe(r,t=null){const n=new Date,e=n.getFullYear(),o=String(n.getMonth()+1).padStart(2,"0"),l=String(n.getDate()).padStart(2,"0"),a=r==="ndjson"?"ndjson":r,s=t?`-${t}`:"";return`pdh-events-${e}-${o}-${l}${s}.${a}`}const Pe={__name:"ExportDropdown",props:{events:{type:Array,required:!0},category:{type:String,default:null}},setup(r,{expose:t}){t();const n=r,e=w(()=>n.events.length>0),o={json:"application/json;charset=utf-8",ndjson:"application/x-ndjson;charset=utf-8",csv:"text/csv;charset=utf-8"};function l(i){switch(i){case"json":return ee(n.events);case"ndjson":return te(n.events);case"csv":return ne(n.events);default:throw new Error(`unknown format: ${i}`)}}function a({key:i}){try{const d=l(i),_=oe(i,n.category);re(d,_,o[i]),P.success(`已导出 ${n.events.length} 条到 ${_}`)}catch(d){P.error(`导出失败: ${d.message||d}`)}}const s={props:n,hasResults:e,MIME:o,serialize:l,onClick:a,computed:w,get DownloadOutlined(){return _e},get DownOutlined(){return me},get message(){return P},get eventsToJson(){return ee},get eventsToNdjson(){return te},get eventsToCsv(){return ne},get downloadAs(){return re},get suggestFilename(){return oe}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}};function qe(r,t,n,e,o,l){const a=g("a-button"),s=g("a-menu-item"),i=g("a-menu"),d=g("a-dropdown");return u(),C(d,{disabled:!e.hasResults},{overlay:m(()=>[c(i,{onClick:e.onClick},{default:m(()=>[c(s,{key:"json"},{default:m(()=>[...t[0]||(t[0]=[b("JSON (.json)",-1)])]),_:1}),c(s,{key:"ndjson"},{default:m(()=>[...t[1]||(t[1]=[b("NDJSON (.ndjson)",-1)])]),_:1}),c(s,{key:"csv"},{default:m(()=>[...t[2]||(t[2]=[b("CSV (.csv)",-1)])]),_:1})]),_:1})]),default:m(()=>[c(a,{disabled:!e.hasResults},{icon:m(()=>[c(e.DownloadOutlined)]),default:m(()=>[b(" 导出 ("+R(n.events.length)+") ",1),c(e.DownOutlined)]),_:1},8,["disabled"])]),_:1},8,["disabled"])}const Be=D(Pe,[["render",qe],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/components/pdh/ExportDropdown.vue"]]),Ve={__name:"PdhVaultBrowser",setup(r,{expose:t}){t();const n=X(),e=w(()=>n.filters.q?`没有匹配 "${n.filters.q}" 的事件 — 试试更短的关键词或换个类目`:n.filters.category?`「${N(n.filters.category)}」类目下还没有数据 — 去采集页同步对应 adapter`:"Vault 里还没有数据 — 去「个人数据中台」页面同步任意 adapter");function o(s){n.filters.category=s,n.search()}function l(s,i){n.setFilter(s,i)}J(()=>{!n.hasResults&&!n.isLoading&&n.search()});const a={store:n,emptyHint:e,onCategorySelect:o,onSetFilter:l,onMounted:J,computed:w,get ReloadOutlined(){return ye},get usePdhBrowserStore(){return X},get categoryLabel(){return N},CategorySidebar:ke,SearchFilterBar:je,RendererDispatcher:Te,ExportDropdown:Be};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}},Ne={class:"pdh-browser-page"},Me={class:"page-header"},Je={class:"main-pane"},Ue={class:"results-summary"},ze={key:0},Qe={key:0},Ge={key:1},Ze={class:"loaded-of"},He={class:"results-list"},Ke={key:2,class:"load-more"};function We(r,t,n,e,o,l){const a=g("a-tag"),s=g("a-button"),i=g("a-space"),d=g("a-col"),_=g("a-spin"),L=g("a-alert"),F=g("a-empty"),h=g("a-row");return u(),O("div",Ne,[v("div",Me,[t[6]||(t[6]=v("div",null,[v("h2",{class:"page-title"},"数据浏览器"),v("p",{class:"page-sub"}," Vault 里所有已采集的数据,按类目浏览 / 全文检索 / 时间窗口筛选。 完全离线,不外传。 ")],-1)),c(i,null,{default:m(()=>[e.store.mode==="fts5"?(u(),C(a,{key:0,color:"green"},{default:m(()=>[...t[3]||(t[3]=[b("FTS5 trigram",-1)])]),_:1})):e.store.mode==="like"?(u(),C(a,{key:1,color:"orange"},{default:m(()=>[...t[4]||(t[4]=[b("LIKE 兜底",-1)])]),_:1})):x("v-if",!0),c(e.ExportDropdown,{events:e.store.results,category:e.store.filters.category},null,8,["events","category"]),c(s,{onClick:t[0]||(t[0]=y=>e.store.search()),loading:e.store.isLoading},{icon:m(()=>[c(e.ReloadOutlined)]),default:m(()=>[t[5]||(t[5]=b(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),c(h,{gutter:16,class:"browser-layout"},{default:m(()=>[c(d,{xs:24,sm:24,md:6,lg:5,xl:4},{default:m(()=>[c(e.CategorySidebar,{selected:e.store.filters.category,facets:e.store.facets,onSelect:e.onCategorySelect},null,8,["selected","facets"])]),_:1}),c(d,{xs:24,sm:24,md:18,lg:19,xl:20},{default:m(()=>[v("div",Je,[c(e.SearchFilterBar,{filters:e.store.filters,facets:e.store.facets,"is-loading":e.store.isLoading,mode:e.store.mode,"short-query":e.store.shortQuery,onSetFilter:e.onSetFilter,onReset:t[1]||(t[1]=y=>{e.store.reset(),e.store.search()})},null,8,["filters","facets","is-loading","mode","short-query"]),v("div",Ue,[e.store.isLoading&&e.store.results.length===0?(u(),O("span",ze,[c(_,{size:"small"}),t[7]||(t[7]=b(" 载入中… ",-1))])):(u(),O(V,{key:1},[v("strong",null,R(e.store.facets.total),1),t[11]||(t[11]=b(" 条事件 ",-1)),e.store.filters.category?(u(),O("span",Qe,[t[8]||(t[8]=b(" / 当前类目 ",-1)),v("strong",null,R(e.categoryLabel(e.store.filters.category)),1),v("strong",null,R(e.store.facets.byCategory[e.store.filters.category]||0),1)])):x("v-if",!0),e.store.filters.q?(u(),O("span",Ge,[t[9]||(t[9]=b(' / 关键词 "',-1)),v("em",null,R(e.store.filters.q),1),t[10]||(t[10]=b('"',-1))])):x("v-if",!0),v("span",Ze," / 已显示 "+R(e.store.results.length),1)],64))]),e.store.error?(u(),C(L,{key:0,type:"error","show-icon":"",message:e.store.error,closable:"",style:{margin:"12px 0"}},null,8,["message"])):x("v-if",!0),!e.store.isLoading&&e.store.results.length===0&&!e.store.error?(u(),C(F,{key:1,description:e.emptyHint,style:{"margin-top":"40px"}},null,8,["description"])):x("v-if",!0),v("div",He,[(u(!0),O(V,null,se(e.store.results,(y,k)=>(u(),C(e.RendererDispatcher,{key:`r-${k}-${y.id}`,event:y},null,8,["event"]))),128))]),e.store.canLoadMore?(u(),O("div",Ke,[c(s,{loading:e.store.isAppending,onClick:t[2]||(t[2]=y=>e.store.loadMore()),block:""},{default:m(()=>[...t[12]||(t[12]=[b(" 加载下一页 (50 条) ",-1)])]),_:1},8,["loading"])])):x("v-if",!0)])]),_:1})]),_:1})])}const tt=D(Ve,[["render",We],["__scopeId","data-v-0f7c02cd"],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/views/PdhVaultBrowser.vue"]]);export{tt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as N,r as k,I as m,J as T,U as d,c as i,K as l,V as u,S as P,F as R,Z as q,o as I,a as A,P as g,Q as _,R as C,_ as E}from"./vendor-BvqAck49.js";import{u as M,_ as H,d as x}from"./index-8BCBAwoA.js";import{a as D,b as W,c as j}from"./parsers-UEvh_ShA.js";import{R as Z}from"./icons-DP3uiYxy.js";const B=N("providers",()=>{const L=k(!1),o=k(null),v=k([]),e=k([]),w=k(null);async function U(){const s=M();L.value=!0;try{const{output:f}=await s.execute("llm providers",15e3);v.value=D(f);const p=v.value.find(h=>h.active);p&&(w.value=p.name);const{output:b}=await s.execute("llm models",15e3);e.value=W(b)}catch(f){console.error("Failed to load providers:",f)}finally{L.value=!1}}async function y(s){await M().execute(`llm switch ${s}`,1e4),v.value.forEach(p=>p.active=p.name===s),w.value=s}async function a(s){const f=M();o.value=s;try{const{output:p,exitCode:b}=await f.execute("llm test",3e4),h=v.value.find(F=>F.name===s);return h&&(h.status=b===0?"ok":"error"),b===0}catch{const p=v.value.find(b=>b.name===s);return p&&(p.status="error"),!1}finally{o.value=null}}return{loading:L,testing:o,providers:v,localModels:e,activeProvider:w,loadProviders:U,switchProvider:y,testProvider:a}}),J={__name:"Providers",setup(L,{expose:o}){o();const v=B(),e=M(),w=k(!1),U=k(!1),y=k(!1),a=A({provider:void 0,model:"",apiKey:"",baseUrl:"",temperature:.7,maxTokens:4096});let s={};const f=["ollama","openai","anthropic","volcengine","deepseek","gemini","groq","mistral","custom","zhipu"],p={ollama:"Ollama(本地)",openai:"OpenAI",anthropic:"Anthropic",volcengine:"火山引擎(豆包)",deepseek:"DeepSeek",gemini:"Google Gemini",groq:"Groq",mistral:"Mistral",custom:"Custom(自定义)",zhipu:"智谱 AI"},b=f.map(n=>({value:n,label:p[n]||n}));async function h(n){try{await v.switchProvider(n),x.success(`已切换到 ${n}`)}catch(t){x.error(`切换失败: ${t.message}`)}}async function F(n){await v.testProvider(n)?x.success(`${n} 连接正常`):x.warning(`${n} 连接失败,请检查配置`)}async function z(){w.value=!0;try{const{output:n}=await e.execute("config list",15e3),t=j(n);t.provider&&(a.provider=t.provider),t.model&&(a.model=t.model),t.apiKey&&(a.apiKey=t.apiKey),t.baseUrl&&(a.baseUrl=t.baseUrl),t.temperature!==void 0&&(a.temperature=t.temperature),t.maxTokens!==void 0&&(a.maxTokens=t.maxTokens),s={provider:t.provider??"",model:t.model??"",apiKey:t.apiKey??"",baseUrl:t.baseUrl??"",temperature:t.temperature??a.temperature,maxTokens:t.maxTokens??a.maxTokens},x.success("配置已加载")}catch(n){x.error(`加载配置失败: ${n.message}`)}finally{w.value=!1}}async function O(){U.value=!0;const n=[],t=[];try{if(a.provider&&a.provider!==s.provider)try{await e.execute(`config set llm.provider ${a.provider}`,1e4),t.push("provider")}catch(c){n.push(`provider: ${c.message}`)}if(a.model&&a.model!==s.model)try{await e.execute(`config set llm.model ${a.model}`,1e4),t.push("model")}catch(c){n.push(`model: ${c.message}`)}if(a.apiKey&&a.apiKey!==s.apiKey)try{await e.execute(`config set llm.apiKey ${a.apiKey}`,1e4),t.push("apiKey")}catch(c){n.push(`apiKey: ${c.message}`)}if(a.baseUrl!==void 0&&a.baseUrl!==s.baseUrl)try{await e.execute(`config set llm.baseUrl ${a.baseUrl}`,1e4),t.push("baseUrl")}catch(c){n.push(`baseUrl: ${c.message}`)}if(a.temperature!==s.temperature)try{await e.execute(`config set llm.temperature ${a.temperature}`,1e4),t.push("temperature")}catch(c){n.push(`temperature: ${c.message}`)}if(a.maxTokens!==s.maxTokens)try{await e.execute(`config set llm.maxTokens ${a.maxTokens}`,1e4),t.push("maxTokens")}catch(c){n.push(`maxTokens: ${c.message}`)}n.length>0?x.warning(`部分配置保存失败: ${n.join("; ")}`):t.length>0?(x.success(`已保存 ${t.length} 项配置`),s={...a},(t.includes("apiKey")||t.includes("provider")||t.includes("baseUrl")||t.includes("model"))&&(y.value=!0),t.includes("provider")&&v.loadProviders()):x.info("没有检测到配置变更")}catch(c){x.error(`保存配置失败: ${c.message}`)}finally{U.value=!1}}function S(){a.provider=s.provider||void 0,a.model=s.model||"",a.apiKey=s.apiKey||"",a.baseUrl=s.baseUrl||"",a.temperature=s.temperature??.7,a.maxTokens=s.maxTokens??4096}I(()=>{v.loadProviders(),z()});const K={providersStore:v,ws:e,configLoading:w,configSaving:U,showRestartHint:y,configForm:a,get loadedConfig(){return s},set loadedConfig(n){s=n},knownProviders:f,providerLabels:p,providerOptions:b,switchProvider:h,test:F,loadConfig:z,saveConfig:O,resetForm:S,onMounted:I,reactive:A,ref:k,get ReloadOutlined(){return Z},get message(){return x},get useProvidersStore(){return B},get useWsStore(){return M},get parseLlmConfigOutput(){return j}};return Object.defineProperty(K,"__isScriptSetup",{enumerable:!1,value:!0}),K}},Q={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},X={key:1,style:{"text-align":"center",padding:"60px"}},Y={class:"providers-grid"},$={style:{display:"flex","align-items":"center",gap:"12px","margin-bottom":"12px"}},ee={style:{"font-size":"24px"}},oe={style:{flex:"1"}},ae={style:{color:"#e0e0e0","font-weight":"500"}},te={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},re={style:{display:"flex",gap:"8px","justify-content":"flex-end"}},se={key:0,style:{"margin-top":"24px"}},ne={style:{color:"#ccc","font-family":"monospace","font-size":"13px"}},ie={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"16px"}},le={class:"config-grid"},de={style:{display:"flex","align-items":"center",gap:"12px"}},ce={style:{display:"flex",gap:"12px","justify-content":"flex-end","margin-top":"16px"}};function me(L,o,v,e,w,U){const y=m("a-button"),a=m("a-alert"),s=m("a-spin"),f=m("a-tag"),p=m("a-badge"),b=m("a-card"),h=m("a-list-item"),F=m("a-list"),z=m("a-divider"),O=m("a-select"),S=m("a-form-item"),K=m("a-input"),n=m("a-input-password"),t=m("a-slider"),c=m("a-input-number"),V=m("a-form");return g(),T("div",null,[d("div",Q,[o[10]||(o[10]=d("div",null,[d("h2",{class:"page-title"},"LLM 配置"),d("p",{class:"page-sub"},"管理 AI 服务提供商")],-1)),i(y,{type:"primary",ghost:"",loading:e.providersStore.loading,onClick:o[0]||(o[0]=r=>e.providersStore.loadProviders())},{icon:l(()=>[i(e.ReloadOutlined)]),default:l(()=>[o[9]||(o[9]=_(" 刷新 ",-1))]),_:1},8,["loading"])]),u(" Active Provider Banner "),e.providersStore.activeProvider?(g(),P(a,{key:0,type:"success",style:{"margin-bottom":"20px",background:"rgba(41,162,112,.08)","border-color":"rgba(41,162,112,.3)"},"show-icon":""},{message:l(()=>[d("span",null,[o[11]||(o[11]=_("当前激活:",-1)),d("strong",null,C(e.providersStore.activeProvider),1)])]),_:1})):u("v-if",!0),u(" Loading "),e.providersStore.loading?(g(),T("div",X,[i(s,{size:"large"}),o[12]||(o[12]=d("div",{style:{color:"var(--text-muted)","margin-top":"12px"}},"加载 LLM 信息中...",-1))])):(g(),T(R,{key:2},[u(" Providers Grid "),d("div",null,[d("div",Y,[(g(!0),T(R,null,q(e.providersStore.providers,r=>(g(),P(b,{key:r.name,class:E(["provider-card",{active:r.active}]),style:{background:"var(--bg-card)"},size:"small"},{default:l(()=>[d("div",$,[d("span",ee,C(r.icon),1),d("div",oe,[d("div",ae,C(r.label),1),d("div",te,C(r.name),1)]),d("div",null,[r.active?(g(),P(f,{key:0,color:"green"},{default:l(()=>[...o[13]||(o[13]=[_("活跃",-1)])]),_:1})):r.status==="ok"?(g(),P(p,{key:1,status:"success",text:""})):r.status==="error"?(g(),P(p,{key:2,status:"error",text:""})):u("v-if",!0)])]),d("div",re,[i(y,{size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"},loading:e.providersStore.testing===r.name,onClick:G=>e.test(r.name)},{default:l(()=>[...o[14]||(o[14]=[_(" 测试 ",-1)])]),_:1},8,["loading","onClick"]),r.active?(g(),P(f,{key:1,color:"green",style:{margin:"0","line-height":"24px"}},{default:l(()=>[...o[16]||(o[16]=[_("当前",-1)])]),_:1})):(g(),P(y,{key:0,size:"small",type:"primary",ghost:"",onClick:G=>e.switchProvider(r.name)},{default:l(()=>[...o[15]||(o[15]=[_(" 切换 ",-1)])]),_:1},8,["onClick"]))])]),_:2},1032,["class"]))),128))]),u(" Local Models (Ollama) "),e.providersStore.localModels.length?(g(),T("div",se,[o[17]||(o[17]=d("h3",{style:{color:"#ccc","font-size":"15px","margin-bottom":"12px"}}," 本地模型(Ollama) ",-1)),i(F,{"data-source":e.providersStore.localModels,size:"small",style:{background:"var(--bg-card)","border-radius":"8px",border:"1px solid var(--border-color)"}},{renderItem:l(({item:r})=>[i(h,{style:{padding:"10px 16px","border-color":"#252525"}},{actions:l(()=>[i(f,{color:"cyan",style:{"font-size":"10px"}},{default:l(()=>[_(C(r.size||"local"),1)]),_:2},1024)]),default:l(()=>[d("span",ne,C(r.name),1)]),_:2},1024)]),_:1},8,["data-source"])])):u("v-if",!0),u(" LLM Parameter Settings "),i(z,{style:{"border-color":"var(--border-color)",margin:"32px 0 24px"}}),e.showRestartHint?(g(),P(a,{key:1,type:"warning","show-icon":"",closable:"",style:{"margin-bottom":"16px"},message:"配置已保存,但当前聊天会话仍在用旧 key",description:"桌面端的 LLM 会话只在新建会话时重读配置。请新建一个 Chat,或重启应用,新 key/Provider 才会生效。",onClose:o[1]||(o[1]=r=>e.showRestartHint=!1)})):u("v-if",!0),d("div",ie,[o[19]||(o[19]=d("h3",{class:"section-title"},"LLM 参数设置",-1)),i(y,{size:"small",loading:e.configLoading,onClick:e.loadConfig,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:l(()=>[i(e.ReloadOutlined)]),default:l(()=>[o[18]||(o[18]=_(" 加载配置 ",-1))]),_:1},8,["loading"])]),i(b,{class:"config-card",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[i(V,{model:e.configForm,layout:"vertical",class:"config-form"},{default:l(()=>[d("div",le,[u(" Provider "),i(S,{label:"Provider(提供商)"},{default:l(()=>[i(O,{value:e.configForm.provider,"onUpdate:value":o[2]||(o[2]=r=>e.configForm.provider=r),placeholder:"选择 LLM 提供商",options:e.providerOptions,style:{width:"100%"},disabled:e.configSaving},null,8,["value","options","disabled"])]),_:1}),u(" Model "),i(S,{label:"Model(模型名称)"},{default:l(()=>[i(K,{value:e.configForm.model,"onUpdate:value":o[3]||(o[3]=r=>e.configForm.model=r),placeholder:"例如 doubao-seed-1-6-251015","allow-clear":"",disabled:e.configSaving},null,8,["value","disabled"])]),_:1}),u(" API Key "),i(S,{label:"API Key"},{default:l(()=>[i(n,{value:e.configForm.apiKey,"onUpdate:value":o[4]||(o[4]=r=>e.configForm.apiKey=r),placeholder:"输入 API Key",disabled:e.configSaving},null,8,["value","disabled"])]),_:1}),u(" Base URL "),i(S,{label:"Base URL"},{default:l(()=>[i(K,{value:e.configForm.baseUrl,"onUpdate:value":o[5]||(o[5]=r=>e.configForm.baseUrl=r),placeholder:"例如 https://ark.cn-beijing.volces.com/api/v3","allow-clear":"",disabled:e.configSaving},null,8,["value","disabled"])]),_:1}),u(" Temperature "),i(S,{label:"Temperature(温度)"},{default:l(()=>[d("div",de,[i(t,{value:e.configForm.temperature,"onUpdate:value":o[6]||(o[6]=r=>e.configForm.temperature=r),min:0,max:2,step:.1,style:{flex:"1"},disabled:e.configSaving},null,8,["value","disabled"]),i(c,{value:e.configForm.temperature,"onUpdate:value":o[7]||(o[7]=r=>e.configForm.temperature=r),min:0,max:2,step:.1,precision:1,style:{width:"80px"},disabled:e.configSaving},null,8,["value","disabled"])])]),_:1}),u(" Max Tokens "),i(S,{label:"Max Tokens(最大输出长度)"},{default:l(()=>[i(c,{value:e.configForm.maxTokens,"onUpdate:value":o[8]||(o[8]=r=>e.configForm.maxTokens=r),min:256,max:128e3,step:256,style:{width:"100%"},placeholder:"4096",disabled:e.configSaving},null,8,["value","disabled"])]),_:1})]),d("div",ce,[i(y,{onClick:e.resetForm,disabled:e.configSaving,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{default:l(()=>[...o[20]||(o[20]=[_(" 重置 ",-1)])]),_:1},8,["disabled"]),i(y,{type:"primary",loading:e.configSaving,onClick:e.saveConfig},{default:l(()=>[...o[21]||(o[21]=[_(" 保存配置 ",-1)])]),_:1},8,["loading"])])]),_:1},8,["model"])]),_:1})])],2112))])}const ge=H(J,[["render",me],["__scopeId","data-v-64155d06"],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/views/Providers.vue"]]);export{ge as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as u,J as g,U as m,R as c,c as r,K as t,V as f,S,r as v,o as se,a as ie,b as j,P as d,Q as _,a2 as Se,F as O,Z as L}from"./vendor-BvqAck49.js";import{_ as ke,b as ce,u as de,E as ue,d as I}from"./index-8BCBAwoA.js";import{s as ye}from"./community-parser-CO25nZFt.js";import{at as Ce,l as Te,a4 as Ne,a_ as Ae,a9 as Oe,a2 as ze,$ as we,k as Ee,R as Me}from"./icons-DP3uiYxy.js";function ae(n){const o=ye(n);if(!o)return null;try{return JSON.parse(o)}catch{}const s=o.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const Fe=Object.freeze(["bm25","vector","hybrid"]);function Ie(n,o=0){return typeof n=="number"&&Number.isFinite(n)?n:o}function Re(n){if(Array.isArray(n))return n.filter(o=>typeof o=="string");if(typeof n!="string")return[];try{const o=JSON.parse(n);if(Array.isArray(o))return o.filter(s=>typeof s=="string")}catch{}return[]}function J(n){if(!n)return{noDb:!1,error:""};const o=ye(n),s=/Database not available/i.test(o);return{noDb:s,error:s?"Database not available":""}}function De(n,o=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,score:Ie(n.score,0),title:String(n.title||""),category:String(n.category||"general"),createdAt:n.created_at??n.createdAt??"",snippet:String(n.snippet||""),_idx:o}:null}function fe(n){const o=ae(n);return Array.isArray(o)?o.map(De).filter(Boolean):[]}function he(n,o=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,title:String(n.title||""),content:n.content??"",tags:Re(n.tags),category:String(n.category||"general"),createdAt:n.created_at??n.createdAt??"",updatedAt:n.updated_at??n.updatedAt??"",_idx:o}:null}function ge(n){const o=ae(n);return Array.isArray(o)?o.map(he).filter(Boolean):[]}function me(n){const o=ae(n);return!o||typeof o!="object"||Array.isArray(o)?null:he(o,0)}function _e(n){if(!Array.isArray(n)||n.length===0)return{total:0,categories:[],tags:[]};const o=new Map,s=new Map;for(const e of n){o.set(e.category,(o.get(e.category)||0)+1);for(const x of e.tags)s.set(x,(s.get(x)||0)+1)}return{total:n.length,categories:[...o.entries()].map(([e,x])=>({name:e,count:x})).sort((e,x)=>x.count-e.count),tags:[...s.entries()].map(([e,x])=>({name:e,count:x})).sort((e,x)=>x.count-e.count)}}function Le(n){if(n==null||n==="")return"—";const o=String(n),s=o.includes(" ")&&!o.includes("T")?o.replace(" ","T")+"Z":o,e=new Date(s);return isNaN(e.getTime())?o:e.toLocaleString("zh-CN",{hour12:!1})}const G="cc.web-panel.search.recent",re=8,Pe={__name:"Search",setup(n,{expose:o}){o();const{t:s}=ce(),e=de(),x=ue.PRESENTED_IMAGE_SIMPLE,q=v(!1),C=v(!1),P=v(!1),B=v(!1),z=v([]),h=v([]),A=v({noDb:!1,error:""}),T=ie({query:"",mode:"hybrid",topK:10}),Q=v(""),w=v(U()),K=v("results"),k=v(""),N=v(""),E=v(!1),M=v(null),V=j(()=>_e(z.value)),Y=j(()=>h.value.length?Math.max(...h.value.map(l=>l.score)):0),Z=j(()=>[{title:s("search.noteColumns.title"),key:"title"},{title:s("search.noteColumns.category"),key:"category",width:"120px"},{title:s("search.noteColumns.tags"),key:"tags",width:"240px"},{title:s("search.noteColumns.createdAt"),key:"createdAt",width:"180px"},{title:s("search.noteColumns.action"),key:"action",width:"180px"}]),W=j(()=>{let l=z.value;if(k.value&&(l=l.filter(i=>i.category===k.value)),N.value.trim()){const i=N.value.trim().toLowerCase();l=l.filter(y=>y.tags.some(b=>b.toLowerCase().includes(i)))}return l});function H(l){const i=`search.mode.${l}`,y=s(i);return y===i?l:y}function X(l){const i=["blue","green","purple","orange","cyan","magenta","gold","volcano"];let y=0;for(let b=0;b<(l||"").length;b++)y=y*31+l.charCodeAt(b)>>>0;return i[y%i.length]}function $(l){return l>=.7?"#52c41a":l>=.5?"#1677ff":l>=.3?"#faad14":"#ff4d4f"}function R(l){return String(l).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function F(l,i){if(!i||!l)return R(l);const y=i.split(/\s+/).filter(Boolean);let b=R(l);for(const be of y){const xe=new RegExp(`(${be.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");b=b.replace(xe,"<mark>$1</mark>")}return b}function ee(l,i){return i?F(l,i):R(l)}function U(){try{const l=localStorage.getItem(G);if(l){const i=JSON.parse(l);if(Array.isArray(i))return i.filter(y=>typeof y=="string").slice(0,re)}}catch{}return[]}function a(l){const i=l.trim();if(!i)return;const y=[i,...w.value.filter(b=>b!==i)];w.value=y.slice(0,re);try{localStorage.setItem(G,JSON.stringify(w.value))}catch{}}function p(){w.value=[];try{localStorage.removeItem(G)}catch{}}function D(l){T.query=l,te()}async function oe(){q.value=!0,A.value={noDb:!1,error:""};try{const{output:l}=await e.execute("note list -n 500 --json",12e3).catch(()=>({output:""})),i=J(l);if(i.noDb){A.value=i,z.value=[];return}z.value=ge(l)}catch(l){I.error(s("search.messages.loadIndexFailed",{err:l?.message||l}))}finally{q.value=!1}}async function te(){const l=T.query.trim();if(!l){I.warning(s("search.messages.queryRequired"));return}P.value=!0,A.value={noDb:!1,error:""};try{const i=[`search ${ne(l)}`,`--mode ${T.mode}`,`--top-k ${T.topK||10}`,"--json"],{output:y}=await e.execute(i.join(" "),15e3),b=J(y);if(b.noDb){A.value=b,h.value=[],B.value=!0,Q.value=l;return}h.value=fe(y),Q.value=l,B.value=!0,a(l),K.value="results"}catch(i){I.error(s("search.messages.searchFailed",{err:i?.message||i}))}finally{P.value=!1}}function ne(l){return`"${String(l).replace(/"/g,'\\"')}"`}function pe(l){T.query=l.title,T.mode="vector",te()}async function ve(l){E.value=!0,C.value=!0,M.value=null;try{const{output:i}=await e.execute(`note show ${l} --json`,8e3);if(J(i).noDb){I.error(s("search.messages.needInit"));return}M.value=me(i),M.value||I.error(s("search.messages.noteLoadFailed"))}catch(i){I.error(s("search.messages.loadFailed",{err:i?.message||i}))}finally{C.value=!1}}se(oe);const le={t:s,ws:e,EMPTY_IMG:x,RECENT_LS:G,RECENT_MAX:re,loadingIndex:q,loadingNote:C,searching:P,searched:B,notes:z,results:h,errorState:A,form:T,currentQuery:Q,recentQueries:w,activeTab:K,indexCategoryFilter:k,indexTagFilter:N,showNoteModal:E,currentNote:M,indexSummary:V,topScore:Y,noteColumns:Z,filteredNotes:W,modeLabel:H,categoryColor:X,scoreColor:$,escapeHtml:R,highlightSnippet:F,highlightContent:ee,loadRecent:U,pushRecent:a,clearRecent:p,rerunQuery:D,loadIndex:oe,runSearch:te,shellQuote:ne,searchSimilar:pe,viewNote:ve,ref:v,computed:j,onMounted:se,reactive:ie,get useI18n(){return ce},get ReloadOutlined(){return Me},get SearchOutlined(){return Ee},get ThunderboltOutlined(){return we},get BookOutlined(){return ze},get AppstoreOutlined(){return Oe},get TagsOutlined(){return Ae},get FileTextOutlined(){return Ne},get TrophyOutlined(){return Te},get EyeOutlined(){return Ce},get message(){return I},get Empty(){return ue},get useWsStore(){return de},get parseSearchResults(){return fe},get parseNotes(){return ge},get parseNote(){return me},get buildIndexSummary(){return _e},get detectSearchError(){return J},get formatSearchTime(){return Le},get SEARCH_MODES(){return Fe}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}},Be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Qe={class:"page-title"},je={class:"page-sub"},qe={key:0,class:"recent-row"},Ke={class:"recent-label"},He={class:"score-block"},Ue={class:"result-title"},Je={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},Ge={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"11px"}},Ve={key:0,class:"result-snippet"},Ye=["innerHTML"],Ze={class:"filter-bar"},We={key:0,class:"tag-row"},Xe={class:"tag-row-label"},$e={class:"tag-count"},et={style:{color:"var(--text-primary)","font-weight":"500"}},tt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-muted)","font-size":"11px"}},at={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},ot={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},nt={key:0,style:{padding:"40px","text-align":"center"}},lt={key:1,style:{"padding-top":"8px"}},st={style:{"font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"var(--text-muted)"}},ct={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},dt={key:0,class:"note-content"},ut=["innerHTML"];function ft(n,o,s,e,x,q){const C=u("a-button"),P=u("a-space"),B=u("a-alert"),z=u("a-input"),h=u("a-col"),A=u("a-radio-button"),T=u("a-radio-group"),Q=u("a-input-number"),w=u("a-row"),K=u("a-form"),k=u("a-tag"),N=u("a-card"),E=u("a-statistic"),M=u("a-empty"),V=u("a-progress"),Y=u("a-list-item-meta"),Z=u("a-list-item"),W=u("a-list"),H=u("a-tab-pane"),X=u("a-table"),$=u("a-tabs"),R=u("a-spin"),F=u("a-descriptions-item"),ee=u("a-descriptions"),U=u("a-modal");return d(),g("div",null,[m("div",Be,[m("div",null,[m("h2",Qe,c(e.t("search.title")),1),m("p",je,c(e.t("search.subtitle")),1)]),r(P,null,{default:t(()=>[r(C,{loading:e.loadingIndex,onClick:e.loadIndex},{icon:t(()=>[r(e.ReloadOutlined)]),default:t(()=>[_(" "+c(e.t("search.refreshIndex")),1)]),_:1},8,["loading"])]),_:1})]),f(" noDb banner "),e.errorState.noDb?(d(),S(B,{key:0,type:"info","show-icon":"",message:e.t("search.noDb.message"),description:e.t("search.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):f("v-if",!0),f(" Search bar "),r(N,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},"body-style":{padding:"14px 16px"}},{default:t(()=>[r(K,{layout:"vertical",model:e.form,onSubmit:Se(e.runSearch,["prevent"])},{default:t(()=>[r(w,{gutter:12},{default:t(()=>[r(h,{span:14},{default:t(()=>[r(z,{value:e.form.query,"onUpdate:value":o[0]||(o[0]=a=>e.form.query=a),size:"large",placeholder:e.t("search.form.queryPlaceholder"),"allow-clear":"",onPressEnter:e.runSearch},{prefix:t(()=>[r(e.SearchOutlined)]),_:1},8,["value","placeholder"])]),_:1}),r(h,{span:4},{default:t(()=>[r(T,{value:e.form.mode,"onUpdate:value":o[1]||(o[1]=a=>e.form.mode=a),size:"large","button-style":"solid"},{default:t(()=>[(d(!0),g(O,null,L(e.SEARCH_MODES,a=>(d(),S(A,{key:a,value:a},{default:t(()=>[_(c(e.modeLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),r(h,{span:3},{default:t(()=>[r(Q,{value:e.form.topK,"onUpdate:value":o[2]||(o[2]=a=>e.form.topK=a),min:1,max:50,placeholder:e.t("search.form.topKPlaceholder"),size:"large",style:{width:"100%"}},null,8,["value","placeholder"])]),_:1}),r(h,{span:3},{default:t(()=>[r(C,{type:"primary",size:"large",loading:e.searching,block:"",onClick:e.runSearch},{icon:t(()=>[r(e.ThunderboltOutlined)]),default:t(()=>[_(" "+c(e.t("search.form.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model"]),f(" Recent queries chips "),e.recentQueries.length?(d(),g("div",qe,[m("span",Ke,c(e.t("search.recent.label")),1),(d(!0),g(O,null,L(e.recentQueries,a=>(d(),S(k,{key:a,color:"blue",class:"recent-chip",onClick:p=>e.rerunQuery(a)},{default:t(()=>[_(c(a),1)]),_:2},1032,["onClick"]))),128)),r(C,{size:"small",type:"link",danger:"",onClick:e.clearRecent},{default:t(()=>[_(c(e.t("search.recent.clear")),1)]),_:1})])):f("v-if",!0)]),_:1}),f(" Stat cards "),r(w,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.indexedNotes"),value:e.indexSummary.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[r(e.BookOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.categories"),value:e.indexSummary.categories.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:t(()=>[r(e.AppstoreOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.tags"),value:e.indexSummary.tags.length,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:t(()=>[r(e.TagsOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.results"),value:e.results.length,"value-style":{color:e.results.length>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:t(()=>[r(e.FileTextOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),r(h,{xs:24,sm:8,lg:4},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.topScore"),value:e.topScore,precision:3,"value-style":{color:e.scoreColor(e.topScore),fontSize:"20px"}},{prefix:t(()=>[r(e.TrophyOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),f(" Tabs "),r($,{activeKey:e.activeTab,"onUpdate:activeKey":o[5]||(o[5]=a=>e.activeTab=a),class:"search-tabs"},{default:t(()=>[f(" ── Results tab ───────────────────────────────────────── "),r(H,{key:"results",tab:e.t("search.tabs.results")},{default:t(()=>[e.searched?e.results.length?(d(),S(W,{key:2,"data-source":e.results,"item-layout":"vertical",size:"large"},{renderItem:t(({item:a})=>[r(Z,{class:"result-row"},{actions:t(()=>[r(C,{type:"link",size:"small",onClick:p=>e.viewNote(a.id)},{icon:t(()=>[r(e.EyeOutlined)]),default:t(()=>[_(" "+c(e.t("search.results.viewFull")),1)]),_:1},8,["onClick"])]),extra:t(()=>[m("div",He,[r(V,{type:"circle",percent:Math.round(Math.min(1,a.score)*100),"stroke-color":e.scoreColor(a.score),format:()=>a.score.toFixed(3),width:60},null,8,["percent","stroke-color","format"])])]),default:t(()=>[r(Y,null,{title:t(()=>[m("span",Ue,c(a.title||e.t("search.results.noTitle")),1),r(k,{color:e.categoryColor(a.category),style:{"margin-left":"8px"}},{default:t(()=>[_(c(a.category),1)]),_:2},1032,["color"])]),description:t(()=>[m("span",Je,c(a.id.slice(0,16)),1),m("span",Ge,c(e.formatSearchTime(a.createdAt)),1)]),_:2},1024),a.snippet?(d(),g("div",Ve,[m("span",{innerHTML:e.highlightSnippet(a.snippet,e.currentQuery)},null,8,Ye)])):f("v-if",!0)]),_:2},1024)]),_:1},8,["data-source"])):(d(),S(M,{key:1,description:e.t("search.results.noMatch",{query:e.currentQuery}),image:e.EMPTY_IMG,style:{padding:"40px 0"}},null,8,["description","image"])):(d(),S(M,{key:0,description:e.t("search.results.promptEmpty"),image:e.EMPTY_IMG,style:{padding:"40px 0"}},null,8,["description","image"]))]),_:1},8,["tab"]),f(" ── Index browser tab ────────────────────────────────── "),r(H,{key:"index",tab:e.t("search.tabs.index")},{default:t(()=>[m("div",Ze,[r(T,{value:e.indexCategoryFilter,"onUpdate:value":o[3]||(o[3]=a=>e.indexCategoryFilter=a),size:"small","button-style":"solid"},{default:t(()=>[r(A,{value:""},{default:t(()=>[_(c(e.t("search.index.allCategories")),1)]),_:1}),(d(!0),g(O,null,L(e.indexSummary.categories.slice(0,6),a=>(d(),S(A,{key:a.name,value:a.name},{default:t(()=>[_(c(a.name)+" ("+c(a.count)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),r(z,{value:e.indexTagFilter,"onUpdate:value":o[4]||(o[4]=a=>e.indexTagFilter=a),placeholder:e.t("search.index.tagFilterPlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"])]),f(" Top tags chips "),e.indexSummary.tags.length?(d(),g("div",We,[m("span",Xe,c(e.t("search.index.topTagsLabel")),1),(d(!0),g(O,null,L(e.indexSummary.tags.slice(0,12),a=>(d(),S(k,{key:a.name,color:e.indexTagFilter===a.name?"blue":"default",class:"tag-chip",onClick:p=>e.indexTagFilter=e.indexTagFilter===a.name?"":a.name},{default:t(()=>[_(c(a.name)+" ",1),m("span",$e,c(a.count),1)]),_:2},1032,["color","onClick"]))),128))])):f("v-if",!0),r(X,{columns:e.noteColumns,"data-source":e.filteredNotes,pagination:{pageSize:20,showTotal:a=>e.t("search.totals.rows",{count:a})},size:"small",loading:e.loadingIndex,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:a,record:p})=>[a.key==="title"?(d(),g(O,{key:0},[m("span",et,c(p.title||e.t("search.results.noTitle")),1),m("div",tt,c(p.id.slice(0,16)),1)],64)):f("v-if",!0),a.key==="category"?(d(),S(k,{key:1,color:e.categoryColor(p.category)},{default:t(()=>[_(c(p.category),1)]),_:2},1032,["color"])):f("v-if",!0),a.key==="tags"?(d(),g(O,{key:2},[(d(!0),g(O,null,L(p.tags.slice(0,4),D=>(d(),S(k,{key:D,color:"default",style:{"font-size":"11px"}},{default:t(()=>[_(c(D),1)]),_:2},1024))),128)),p.tags.length>4?(d(),g("span",rt,"+"+c(p.tags.length-4),1)):f("v-if",!0)],64)):f("v-if",!0),a.key==="createdAt"?(d(),g("span",at,c(e.formatSearchTime(p.createdAt)),1)):f("v-if",!0),a.key==="action"?(d(),g(O,{key:4},[r(C,{size:"small",type:"link",onClick:D=>e.viewNote(p.id)},{default:t(()=>[_(c(e.t("search.index.rowAction.view")),1)]),_:1},8,["onClick"]),r(C,{size:"small",type:"link",onClick:D=>e.searchSimilar(p)},{default:t(()=>[_(c(e.t("search.index.rowAction.similar")),1)]),_:1},8,["onClick"])],64)):f("v-if",!0)]),emptyText:t(()=>[m("div",ot,[r(e.BookOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),_(" "+c(e.indexCategoryFilter||e.indexTagFilter?e.t("search.empty.filtered"):e.t("search.empty.noNotes")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),f(" ── Note detail modal ─────────────────────────────────── "),r(U,{open:e.showNoteModal,"onUpdate:open":o[6]||(o[6]=a=>e.showNoteModal=a),title:e.t("search.note.title",{title:e.currentNote?.title||""}),width:780,footer:null},{default:t(()=>[e.loadingNote?(d(),g("div",nt,[r(R)])):e.currentNote?(d(),g("div",lt,[r(ee,{column:2,size:"small",bordered:""},{default:t(()=>[r(F,{label:e.t("search.note.id"),span:2},{default:t(()=>[m("span",st,c(e.currentNote.id),1)]),_:1},8,["label"]),r(F,{label:e.t("search.note.category")},{default:t(()=>[r(k,{color:e.categoryColor(e.currentNote.category)},{default:t(()=>[_(c(e.currentNote.category),1)]),_:1},8,["color"])]),_:1},8,["label"]),r(F,{label:e.t("search.note.tags")},{default:t(()=>[(d(!0),g(O,null,L(e.currentNote.tags,a=>(d(),S(k,{key:a,color:"default"},{default:t(()=>[_(c(a),1)]),_:2},1024))),128)),e.currentNote.tags.length?f("v-if",!0):(d(),g("span",it,"—"))]),_:1},8,["label"]),r(F,{label:e.t("search.note.createdAt")},{default:t(()=>[_(c(e.formatSearchTime(e.currentNote.createdAt)),1)]),_:1},8,["label"]),r(F,{label:e.t("search.note.updatedAt")},{default:t(()=>[_(c(e.formatSearchTime(e.currentNote.updatedAt)),1)]),_:1},8,["label"])]),_:1}),m("h4",ct,c(e.t("search.note.content")),1),e.currentNote.content?(d(),g("div",dt,[m("span",{innerHTML:e.highlightContent(e.currentNote.content,e.currentQuery)},null,8,ut)])):(d(),S(M,{key:1,description:e.t("search.note.emptyContent"),image:e.EMPTY_IMG},null,8,["description","image"]))])):f("v-if",!0)]),_:1},8,["open","title"])])}const ht=ke(Pe,[["render",ft],["__scopeId","data-v-d2b94ce3"],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/views/Search.vue"]]);export{ht as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as B,b as D,r as R,I as p,J as c,U as _,c as n,K as a,S as C,V as x,o as F,x as I,P as i,Q as k,R as r,F as T,Z as O}from"./vendor-BvqAck49.js";import{u as P,_ as E}from"./index-8BCBAwoA.js";import{R as L}from"./icons-DP3uiYxy.js";const V=B("tasks",()=>{const y=R([]),l=R(!1);let u=null,t=null,d=null;const b=D(()=>y.value.filter(e=>e.status==="running")),v=D(()=>y.value.filter(e=>e.status==="pending")),w=D(()=>y.value.filter(e=>e.status==="completed"||e.status==="failed"||e.status==="timeout"));async function s(){const e=P();l.value=!0;try{const g=await e.sendRaw({type:"tasks-list"});g&&Array.isArray(g.tasks)&&(y.value=g.tasks)}catch{}finally{l.value=!1}}async function m(e){const g=P();try{await g.sendRaw({type:"tasks-stop",taskId:e})}catch{}finally{await s()}}const f=R(null);function h(e=5e3){N(),s(),u=setInterval(s,e),S()}function N(){u&&(clearInterval(u),u=null),t&&(t(),t=null),d&&(clearTimeout(d),d=null)}function S(){const e=P();if(t)return;const g=z=>{z.type==="task:notification"&&z.payload?.task&&(f.value=z.payload.task,s(),d&&clearTimeout(d),d=setTimeout(()=>{f.value=null,d=null},8e3))};t=e.onRuntimeEvent(g)}function A(e){return!e||e<0?"-":e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${(e/6e4).toFixed(1)}m`}function o(e){switch(e){case"running":return"processing";case"pending":return"default";case"completed":return"success";case"failed":return"error";case"timeout":return"warning";default:return"default"}}return{tasks:y,loading:l,running:b,pending:v,completed:w,lastNotification:f,fetchTasks:s,stopTask:m,startPolling:h,stopPolling:N,formatDuration:A,getStatusColor:o}}),U={__name:"Tasks",setup(y,{expose:l}){l();const u=V(),t=[{title:"状态",key:"status",width:90},{title:"描述",key:"description",ellipsis:!0},{title:"类型",dataIndex:"type",width:100},{title:"耗时",key:"duration",width:90},{title:"创建时间",key:"createdAt",width:180},{title:"结果",key:"result",ellipsis:!0},{title:"操作",key:"action",width:80}];function d(s){return s.status==="running"&&s.startedAt?u.formatDuration(Date.now()-s.startedAt):s.completedAt&&s.startedAt?u.formatDuration(s.completedAt-s.startedAt):"-"}function b(s){return s?new Date(s).toLocaleString():"-"}function v(s,m){return s?s.length>m?`${s.slice(0,m)}...`:s:""}F(()=>u.startPolling(5e3)),I(()=>u.stopPolling());const w={store:u,columns:t,getDuration:d,formatTime:b,truncate:v,onMounted:F,onUnmounted:I,get ReloadOutlined(){return L},get useTasksStore(){return V}};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}},Z={class:"page-header"},j={key:0,class:"error-text"},J={key:1},K={class:"task-header"},M={class:"task-desc"},Q={class:"task-id"},W={class:"task-meta"},q=["title"],G={key:0,class:"error-text"},H={key:1,class:"success-text"},X={key:2,class:"muted-text"};function Y(y,l,u,t,d,b){const v=p("a-button"),w=p("a-space"),s=p("a-alert"),m=p("a-statistic"),f=p("a-card"),h=p("a-col"),N=p("a-row"),S=p("a-tag"),A=p("a-table");return i(),c("div",null,[_("div",Z,[l[3]||(l[3]=_("div",null,[_("h2",{class:"page-title"},"后台任务"),_("p",{class:"page-sub"},"查看后台任务队列、实时通知和任务执行结果。")],-1)),n(w,null,{default:a(()=>[n(v,{ghost:"",loading:t.store.loading,onClick:l[0]||(l[0]=o=>t.store.fetchTasks())},{icon:a(()=>[n(t.ReloadOutlined)]),default:a(()=>[l[2]||(l[2]=k(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),t.store.lastNotification?(i(),C(s,{key:0,type:t.store.lastNotification.status==="completed"?"success":"error","show-icon":"",closable:"",class:"banner",onClose:l[1]||(l[1]=o=>t.store.lastNotification=null)},{message:a(()=>[k(" 任务"+r(t.store.lastNotification.status==="completed"?"完成":"结束")+": "+r(t.store.lastNotification.description||t.store.lastNotification.id.slice(0,16)),1)]),description:a(()=>[t.store.lastNotification.error?(i(),c("span",j,r(t.store.lastNotification.error),1)):t.store.lastNotification.result?(i(),c("span",J,r(t.truncate(String(t.store.lastNotification.result),120)),1)):x("v-if",!0)]),_:1},8,["type"])):x("v-if",!0),n(N,{gutter:[16,16],class:"stats-row"},{default:a(()=>[n(h,{xs:12,sm:6},{default:a(()=>[n(f,{class:"stat-card",size:"small"},{default:a(()=>[n(m,{title:"全部任务",value:t.store.tasks.length},null,8,["value"])]),_:1})]),_:1}),n(h,{xs:12,sm:6},{default:a(()=>[n(f,{class:"stat-card",size:"small"},{default:a(()=>[n(m,{title:"运行中",value:t.store.running.length},null,8,["value"])]),_:1})]),_:1}),n(h,{xs:12,sm:6},{default:a(()=>[n(f,{class:"stat-card",size:"small"},{default:a(()=>[n(m,{title:"等待中",value:t.store.pending.length},null,8,["value"])]),_:1})]),_:1}),n(h,{xs:12,sm:6},{default:a(()=>[n(f,{class:"stat-card",size:"small"},{default:a(()=>[n(m,{title:"已完成",value:t.store.completed.length},null,8,["value"])]),_:1})]),_:1})]),_:1}),t.store.running.length>0?(i(),C(f,{key:1,title:"运行中的任务",class:"panel-card",size:"small"},{default:a(()=>[(i(!0),c(T,null,O(t.store.running,o=>(i(),c("div",{key:o.id,class:"task-item running"},[_("div",K,[n(S,{color:t.store.getStatusColor(o.status)},{default:a(()=>[k(r(o.status.toUpperCase()),1)]),_:2},1032,["color"]),_("span",M,r(o.description),1),_("span",Q,r(o.id.slice(0,16)),1)]),_("div",W,[_("span",null,"类型: "+r(o.type||"-"),1),_("span",null,"已运行: "+r(t.store.formatDuration(Date.now()-o.startedAt)),1),n(v,{size:"small",danger:"",onClick:e=>t.store.stopTask(o.id)},{default:a(()=>[...l[4]||(l[4]=[k("停止",-1)])]),_:1},8,["onClick"])])]))),128))]),_:1})):x("v-if",!0),n(f,{class:"panel-card"},{default:a(()=>[n(A,{columns:t.columns,"data-source":t.store.tasks,pagination:{pageSize:15,size:"small"},loading:t.store.loading,"row-key":"id",size:"small"},{bodyCell:a(({column:o,record:e})=>[o.key==="status"?(i(),C(S,{key:0,color:t.store.getStatusColor(e.status)},{default:a(()=>[k(r(e.status),1)]),_:2},1032,["color"])):o.key==="description"?(i(),c("span",{key:1,title:e.command},r(e.description),9,q)):o.key==="duration"?(i(),c(T,{key:2},[k(r(t.getDuration(e)),1)],64)):o.key==="createdAt"?(i(),c(T,{key:3},[k(r(t.formatTime(e.createdAt)),1)],64)):o.key==="result"?(i(),c(T,{key:4},[e.error?(i(),c("span",G,r(t.truncate(e.error,60)),1)):e.result?(i(),c("span",H,r(t.truncate(String(e.result),60)),1)):(i(),c("span",X,"-"))],64)):o.key==="action"?(i(),c(T,{key:5},[e.status==="running"?(i(),C(v,{key:0,size:"small",danger:"",onClick:g=>t.store.stopTask(e.id)},{default:a(()=>[...l[5]||(l[5]=[k(" 停止 ",-1)])]),_:1},8,["onClick"])):x("v-if",!0)],64)):x("v-if",!0)]),_:1},8,["data-source","loading"])]),_:1})])}const st=E(U,[["render",Y],["__scopeId","data-v-da5ff6a2"],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/views/Tasks.vue"]]);export{st as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./xterm-BZcWGsqw.js","./markdown-CsiA8-E5.js","./markdown-Dfs9RUU9.css","./addon-fit-CK6X9sAG.js","./xterm-DFuMZ0ql.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{u as fe,_ as me,d as V,e as U}from"./index-8BCBAwoA.js";import{I as z,J as x,U as y,Q as D,S as K,K as T,V as R,c as A,F as Q,Z as Y,R as E,o as G,f as H,w as $,n as q,b as ee,r as S,P as _,_ as ve,a2 as we,a3 as he,a4 as ye}from"./vendor-BvqAck49.js";import{R as _e,b as pe,as as ge}from"./icons-DP3uiYxy.js";const k=new Map,C=new Map,F=new Set,N=new Set;let te=!1;function xe(c){te||(te=!0,c.onMessage(o=>{if(!(!o||typeof o.type!="string")){if(o.type==="terminal.stdout"){const{sessionId:s,data:e,seq:i}=o.payload||{};if(!s)return;let w;try{const d=atob(e||""),f=new Uint8Array(d.length);for(let n=0;n<d.length;n++)f[n]=d.charCodeAt(n);w=new TextDecoder("utf-8").decode(f)}catch{w=""}const u={sessionId:s,data:w,seq:i};k.get(s)?.forEach(d=>d(u)),F.forEach(d=>d(u))}else if(o.type==="terminal.exit"){const{sessionId:s,exitCode:e,signal:i}=o.payload||{};if(!s)return;const w={sessionId:s,exitCode:e,signal:i};C.get(s)?.forEach(u=>u(w)),N.forEach(u=>u(w))}}}))}function ne(c){const o=new TextEncoder().encode(c);let s="";for(let e=0;e<o.length;e++)s+=String.fromCharCode(o[e]);return btoa(s)}function ae(c){const o=atob(c||""),s=new Uint8Array(o.length);for(let e=0;e<o.length;e++)s[e]=o.charCodeAt(e);return new TextDecoder("utf-8").decode(s)}function oe(){const c=fe();xe(c);async function o(n={}){const a=await c.sendRaw({type:"terminal.create",payload:{shell:n.shell,cwd:n.cwd,env:n.env,cols:n.cols,rows:n.rows}});if(a.ok===!1)throw new Error(a.error||"terminal_create_failed");return a.result??a}async function s(){const n=await c.sendRaw({type:"terminal.list",payload:{}});if(n.ok===!1)throw new Error(n.error||"terminal_list_failed");const a=n.result??n;return Array.isArray(a.sessions)?a.sessions:[]}async function e(n,a){const r=await c.sendRaw({type:"terminal.stdin",payload:{sessionId:n,data:ne(String(a))}});if(r.ok===!1)throw new Error(r.error||"terminal_stdin_failed");return r.result??r}async function i(n,a,r){const h=await c.sendRaw({type:"terminal.resize",payload:{sessionId:n,cols:a,rows:r}});if(h.ok===!1)throw new Error(h.error||"terminal_resize_failed");return h.result??h}async function w(n){const a=await c.sendRaw({type:"terminal.close",payload:{sessionId:n}});if(a.ok===!1)throw new Error(a.error||"terminal_close_failed");return a.result??a}async function u(n,a=0){const r=await c.sendRaw({type:"terminal.history",payload:{sessionId:n,fromSeq:a}});if(r.ok===!1)throw new Error(r.error||"terminal_history_failed");const h=r.result??r;return{truncated:!!h.truncated,chunks:(h.chunks||[]).map(L=>({seq:L.seq,data:ae(L.data)}))}}function d(n,a){return n?(k.has(n)||k.set(n,new Set),k.get(n).add(a),()=>{k.get(n)?.delete(a),k.get(n)?.size===0&&k.delete(n)}):(F.add(a),()=>F.delete(a))}function f(n,a){return n?(C.has(n)||C.set(n,new Set),C.get(n).add(a),()=>{C.get(n)?.delete(a),C.get(n)?.size===0&&C.delete(n)}):(N.add(a),()=>N.delete(a))}return{create:o,list:s,stdin:e,resize:i,close:w,history:u,onStdout:d,onExit:f,_internal:{stdoutSubs:k,exitSubs:C,toBase64Utf8:ne,fromBase64Utf8:ae}}}const Se={__name:"Terminal",setup(c,{expose:o}){o();const s=oe(),e=S([]),i=S(null),w=S("pwsh"),u=S(!1),d=S(!1),f=S(""),n=S(""),a=S([]),r=[{value:"pwsh",label:"PowerShell"},{value:"cmd",label:"CMD"},{value:"bash",label:"Bash"},{value:"wsl",label:"WSL"}],h=ee(()=>e.value.find(t=>t.id===i.value));function L(t){return t?t.slice(0,8):""}let O=null,M=null;async function I(){if(O)return{xtermMod:O,fitAddonMod:M};try{O=await U(()=>import("./xterm-BZcWGsqw.js").then(t=>t.x),__vite__mapDeps([0,1,2]),import.meta.url),M=await U(()=>import("./addon-fit-CK6X9sAG.js").then(t=>t.a),__vite__mapDeps([3,1,2]),import.meta.url),await U(()=>Promise.resolve({}),__vite__mapDeps([4]),import.meta.url)}catch(t){throw n.value="xterm 资源加载失败:"+(t?.message||"未知错误"),t}return{xtermMod:O,fitAddonMod:M}}async function B(t){await q();const{xtermMod:l,fitAddonMod:p}=await I(),b=a.value.find(v=>v?.dataset?.sessionId===t.id);if(!b)return;const m=new l.Terminal({cursorBlink:!0,fontFamily:'Consolas, "Courier New", monospace',fontSize:13,theme:{background:"#1e1e1e",foreground:"#d4d4d4"},convertEol:!1}),P=new p.FitAddon;m.loadAddon(P),m.open(b);try{P.fit()}catch{}t.xterm=m,t.fitAddon=P;const ie=m.onData(v=>{s.stdin(t.id,v).catch(g=>{String(g?.message||"").includes("dangerous_keyword_blocked")?V.warning("该命令被桌面端拦截(高危关键字)"):V.error("stdin 失败: "+(g?.message||g))})}),ce=s.onStdout(t.id,({data:v,seq:g})=>{t.lastSeq=g,m.write(v)}),de=s.onExit(t.id,({exitCode:v,signal:g})=>{t.alive=!1,t.exitCode=v,t.signal=g,m.writeln(`\r
|
|
3
|
-
\x1B[33m[session exited, code=${v}, signal=${g??"-"}]\x1B[0m`)});t.offs=()=>{try{ie.dispose?.()}catch{}ce(),de()};try{const{chunks:v,truncated:g}=await s.history(t.id,0);g&&m.writeln("\x1B[2m[history truncated — earlier output was evicted]\x1B[0m");for(const J of v)m.write(J.data),t.lastSeq=J.seq}catch(v){m.writeln(`\x1B[31m[history fetch failed: ${v?.message||v}]\x1B[0m`)}const j=new ResizeObserver(()=>{try{P.fit(),s.resize(t.id,m.cols,m.rows).catch(()=>{})}catch{}});j.observe(b);const ue=t.offs;t.offs=()=>{try{j.disconnect()}catch{}ue()}}async function re(){u.value=!0,f.value="";try{const t=await s.create({shell:w.value,cols:80,rows:24}),l={id:t.sessionId,shell:t.shell,cwd:"",alive:!0,lastSeq:0,exitCode:null,xterm:null,fitAddon:null,offs:()=>{}};e.value.push(l),i.value=l.id,await B(l)}catch(t){f.value=t?.message||String(t)}finally{u.value=!1}}async function se(t){try{await s.close(t)}catch(l){f.value=l?.message||String(l)}setTimeout(()=>W(t),500)}function W(t){const l=e.value.findIndex(b=>b.id===t);if(l===-1)return;const p=e.value[l];try{p.offs?.()}catch{}try{p.xterm?.dispose?.()}catch{}e.value.splice(l,1),i.value===t&&(i.value=e.value[0]?.id||null)}function le(t){i.value=t,q(()=>{const l=e.value.find(p=>p.id===t);try{l?.fitAddon?.fit()}catch{}})}async function X(){d.value=!0,f.value="";try{const t=await s.list();for(const l of t){const p=e.value.find(m=>m.id===l.id);if(p){p.alive=l.alive,p.lastSeq=l.lastSeq;continue}const b={id:l.id,shell:l.shell,cwd:l.cwd,alive:l.alive,lastSeq:l.lastSeq,exitCode:null,xterm:null,fitAddon:null,offs:()=>{}};e.value.push(b),await B(b)}!i.value&&e.value.length>0&&(i.value=e.value[0].id)}catch(t){f.value=t?.message||String(t)}finally{d.value=!1}}G(async()=>{await X()}),H(()=>{for(const t of e.value){try{t.offs?.()}catch{}try{t.xterm?.dispose?.()}catch{}}}),$(i,()=>{q(()=>{const t=h.value;try{t?.fitAddon?.fit()}catch{}})});const Z={term:s,sessions:e,activeId:i,newShell:w,creating:u,loadingList:d,error:f,warning:n,xtermContainers:a,shellOptions:r,active:h,shortId:L,get xtermMod(){return O},set xtermMod(t){O=t},get fitAddonMod(){return M},set fitAddonMod(t){M=t},loadXterm:I,mountXterm:B,onCreate:re,onClose:se,removeSession:W,activate:le,refreshList:X,ref:S,computed:ee,onMounted:G,onBeforeUnmount:H,nextTick:q,watch:$,get message(){return V},get PlusOutlined(){return ge},get CloseOutlined(){return pe},get ReloadOutlined(){return _e},get useTerminal(){return oe}};return Object.defineProperty(Z,"__isScriptSetup",{enumerable:!1,value:!0}),Z}},be={class:"terminal-page"},ke={class:"terminal-header"},Ce={class:"page-sub"},Ae={class:"terminal-body"},Ee={class:"session-tabs"},Oe=["onClick"],Te={class:"session-shell"},Re={class:"session-id"},Me={key:0,class:"session-empty"},ze={class:"xterm-host"},Le=["data-session-id"],Pe={key:0,class:"xterm-placeholder"},De={key:1,class:"terminal-footer"},qe={key:0,class:"footer-exit"};function Be(c,o,s,e,i,w){const u=z("a-tag"),d=z("a-select"),f=z("a-button"),n=z("a-space"),a=z("a-alert");return _(),x("div",be,[y("div",ke,[y("div",null,[o[3]||(o[3]=y("h2",{class:"page-title"},"远程终端",-1)),y("p",Ce,[o[2]||(o[2]=D(" 桌面端托管的 PTY 会话;Android 端可远程操控同一通道 ",-1)),e.warning?(_(),K(u,{key:0,color:"orange",style:{"margin-left":"8px"}},{default:T(()=>[D(E(e.warning),1)]),_:1})):R("v-if",!0)])]),A(n,null,{default:T(()=>[A(d,{value:e.newShell,"onUpdate:value":o[0]||(o[0]=r=>e.newShell=r),style:{width:"130px"},size:"small",options:e.shellOptions},null,8,["value"]),A(f,{type:"primary",size:"small",loading:e.creating,onClick:e.onCreate},{icon:T(()=>[A(e.PlusOutlined)]),default:T(()=>[o[4]||(o[4]=D(" 新会话 ",-1))]),_:1},8,["loading"]),A(f,{size:"small",loading:e.loadingList,onClick:e.refreshList},{icon:T(()=>[A(e.ReloadOutlined)]),default:T(()=>[o[5]||(o[5]=D(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),e.error?(_(),K(a,{key:0,message:e.error,type:"error","show-icon":"",closable:"",style:{"margin-bottom":"12px"},onClose:o[1]||(o[1]=r=>e.error="")},null,8,["message"])):R("v-if",!0),y("div",Ae,[y("div",Ee,[(_(!0),x(Q,null,Y(e.sessions,r=>(_(),x("div",{key:r.id,class:ve(["session-tab",{active:r.id===e.activeId,dead:!r.alive}]),onClick:h=>e.activate(r.id)},[y("span",Te,E(r.shell),1),y("span",Re,E(e.shortId(r.id)),1),A(e.CloseOutlined,{class:"session-close",onClick:we(h=>e.onClose(r.id),["stop"])},null,8,["onClick"])],10,Oe))),128)),e.sessions.length===0?(_(),x("div",Me,' 点击 "新会话" 创建第一个终端 ')):R("v-if",!0)]),y("div",ze,[(_(!0),x(Q,null,Y(e.sessions,r=>he((_(),x("div",{key:r.id,ref_for:!0,ref:"xtermContainers","data-session-id":r.id,class:"xterm-container"},null,8,Le)),[[ye,r.id===e.activeId]])),128)),e.sessions.length===0?(_(),x("div",Pe,[...o[6]||(o[6]=[y("span",null,"无活跃会话",-1)])])):R("v-if",!0)])]),e.active?(_(),x("div",De,[y("span",null,E(e.active.shell)+" · "+E(e.active.cwd||"(默认 cwd)")+" · seq "+E(e.active.lastSeq),1),e.active.alive?R("v-if",!0):(_(),x("span",qe,"已退出 (code="+E(e.active.exitCode??"-")+")",1))])):R("v-if",!0)])}const Ne=me(Se,[["render",Be],["__scopeId","data-v-65366a29"],["__file","/tmp/cc-web-panel-yxZFLS/repo/packages/web-panel/src/views/Terminal.vue"]]);export{Ne as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{O as r}from"./index-8BCBAwoA.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row-BDq7p96-.js";import{U as t}from"./index-8BCBAwoA.js";import"./vendor-BvqAck49.js";import"./responsiveObserve-lhENMtmd.js";import"./useFlexGapSupport-9EAy_UPY.js";import"./styleChecker-CaymUbb1.js";import"./index-BCbc993k.js";import"./icons-DP3uiYxy.js";const l=t(o);export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o}from"./Col-vSk5m8e6.js";import{U as t}from"./index-8BCBAwoA.js";import"./vendor-BvqAck49.js";import"./index-BCbc993k.js";import"./icons-DP3uiYxy.js";const s=t(o);export{s as default};
|