@futdevpro/ccap 1.1.2606 → 1.1.2617
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/client-dist/{agent-instances.module-MOBPFOVL.js → agent-instances.module-EN3TUWCP.js} +2 -2
- package/client-dist/{ca.module-DM43J2RL.js → ca.module-GORAHZS3.js} +2 -2
- package/client-dist/{cc.module-2ZVFZLKY.js → cc.module-V7UUWHNN.js} +2 -2
- package/client-dist/{chunk-GMQL62IG.js → chunk-3YVLAGRH.js} +2 -2
- package/client-dist/{chunk-YCCO4I67.js → chunk-4QEHZHVD.js} +2 -2
- package/client-dist/{chunk-5NOVUK7Q.js → chunk-5M33R74G.js} +2 -2
- package/client-dist/{chunk-OKVUXJV4.js → chunk-5MXK7YEG.js} +2 -2
- package/client-dist/{chunk-DSLYO2MW.js → chunk-6J4SX5W3.js} +2 -2
- package/client-dist/{chunk-Y7JANXA6.js → chunk-6R36KJBX.js} +2 -2
- package/client-dist/{chunk-24LHGCKT.js → chunk-6UEKWFBY.js} +2 -2
- package/client-dist/{chunk-TPJOPS2T.js → chunk-ABFHBZMB.js} +2 -2
- package/client-dist/{chunk-F3VLXQ63.js → chunk-BCGCVDWE.js} +2 -2
- package/client-dist/{chunk-CBBCF32R.js → chunk-BI53K7S7.js} +2 -2
- package/client-dist/{chunk-3BKWXHSS.js → chunk-BMPC7YQQ.js} +2 -2
- package/client-dist/{chunk-UAV7AZMZ.js → chunk-BT66EBDO.js} +2 -2
- package/client-dist/{chunk-6PGC6OS6.js → chunk-C233ZHXW.js} +2 -2
- package/client-dist/{chunk-IQQHAQGU.js → chunk-D7OQ7EDV.js} +2 -2
- package/client-dist/{chunk-55X4AMOF.js → chunk-DEIALVMK.js} +2 -2
- package/client-dist/{chunk-G6NOOKD3.js → chunk-DQRYQQIF.js} +2 -2
- package/client-dist/{chunk-S6ECM2FI.js → chunk-FQGFAUMM.js} +2 -2
- package/client-dist/{chunk-JF5GUJ3U.js → chunk-GV7SWYVG.js} +2 -2
- package/client-dist/{chunk-6RIVQBDG.js → chunk-IE4EXO7F.js} +2 -2
- package/client-dist/{chunk-4IF2BHAL.js → chunk-IVJK5V3T.js} +2 -2
- package/client-dist/{chunk-WJCXTUWX.js → chunk-IXD22FGA.js} +2 -2
- package/client-dist/{chunk-YMZG362Q.js → chunk-JA6NJ3HY.js} +2 -2
- package/client-dist/{chunk-55CP22NE.js → chunk-JB7S5KFM.js} +2 -2
- package/client-dist/{chunk-E6DXRM5G.js → chunk-JYN4W4IW.js} +2 -2
- package/client-dist/{chunk-NQZUGTQN.js → chunk-K3ABKMDH.js} +2 -2
- package/client-dist/{chunk-TPVY4LWK.js → chunk-KU3NFCE3.js} +2 -2
- package/client-dist/{chunk-7LGQEUGE.js → chunk-L65JUKSC.js} +2 -2
- package/client-dist/{chunk-2IYJPEBE.js → chunk-LVVC3ZN5.js} +2 -2
- package/client-dist/{chunk-BVHZC2R4.js → chunk-MUROLI6H.js} +2 -2
- package/client-dist/{chunk-UF4JCN2H.js → chunk-N347O4ZR.js} +2 -2
- package/client-dist/{chunk-EZKGNMOS.js → chunk-NMGB6Q45.js} +2 -2
- package/client-dist/{chunk-WQ72MWYL.js → chunk-OLBAIJHY.js} +2 -2
- package/client-dist/{chunk-TGHW5TCX.js → chunk-OMGAJHQQ.js} +2 -2
- package/client-dist/{chunk-LEB6J737.js → chunk-PEHTATOM.js} +2 -2
- package/client-dist/{chunk-AXNGKE56.js → chunk-PGMQ56NB.js} +2 -2
- package/client-dist/{chunk-M4JXLQ5L.js → chunk-PMLUJE5N.js} +2 -2
- package/client-dist/{chunk-AWOZUAJ5.js → chunk-PP73DOUH.js} +2 -2
- package/client-dist/{chunk-VR77ESZF.js → chunk-QBRWMKSU.js} +2 -2
- package/client-dist/{chunk-SAJULCYB.js → chunk-QDW4DDEH.js} +2 -2
- package/client-dist/{chunk-Q2CQL2OM.js → chunk-R7CNI5LG.js} +2 -2
- package/client-dist/{chunk-FT2VYZF2.js → chunk-RG4B2EC4.js} +2 -2
- package/client-dist/{chunk-BCFR5P4Z.js → chunk-RHEQKQT3.js} +2 -2
- package/client-dist/{chunk-FDO7MPJN.js → chunk-S6GMI7R3.js} +2 -2
- package/client-dist/{chunk-L3ZXU5BF.js → chunk-SNA7RAMU.js} +2 -2
- package/client-dist/{chunk-AWTLUF35.js → chunk-SSPO3S2C.js} +2 -2
- package/client-dist/{chunk-WYE4ZS2V.js → chunk-SUOO3ZQQ.js} +2 -2
- package/client-dist/{chunk-XTFGTT6E.js → chunk-TBE7X4MG.js} +2 -2
- package/client-dist/{chunk-6Z6BVIEO.js → chunk-TOU2FRKB.js} +2 -2
- package/client-dist/{chunk-YXSOAFPE.js → chunk-URBFZBHB.js} +2 -2
- package/client-dist/{chunk-RZPEHHDF.js → chunk-UWC76UG2.js} +2 -2
- package/client-dist/{chunk-BOOSIZMO.js → chunk-WH2RXTQX.js} +2 -2
- package/client-dist/{chunk-BOOSIZMO.js.map → chunk-WH2RXTQX.js.map} +1 -1
- package/client-dist/{chunk-T5PDX35Y.js → chunk-XWRXJ2PQ.js} +2 -2
- package/client-dist/{chunk-3D6OZYTY.js → chunk-XWWVDCIV.js} +2 -2
- package/client-dist/{chunk-QI5VQ5OL.js → chunk-Y7KI3XKP.js} +2 -2
- package/client-dist/{chunk-G4YPCSLP.js → chunk-YASHJ2WC.js} +2 -2
- package/client-dist/{chunk-X7VX4ZET.js → chunk-YSPF4PQW.js} +2 -2
- package/client-dist/{consultant.module-J3NWWDCO.js → consultant.module-YXJGRCVB.js} +2 -2
- package/client-dist/{crd.module-YQX3PO24.js → crd.module-K5IU7FAD.js} +2 -2
- package/client-dist/{dashboard.module-ZHOQ5KS4.js → dashboard.module-JZHORI36.js} +2 -2
- package/client-dist/{do.module-D3TSFGYV.js → do.module-VJDE653T.js} +2 -2
- package/client-dist/{document-library.module-4VZBDNJD.js → document-library.module-S7H4MOVL.js} +2 -2
- package/client-dist/{embedding-eval.module-ZFS7MZLL.js → embedding-eval.module-XEHPYHRV.js} +2 -2
- package/client-dist/{embedding-registry.module-6AYSLPVY.js → embedding-registry.module-RYDZNKNT.js} +2 -2
- package/client-dist/{err.module-CZTPDUZT.js → err.module-PGJZBINE.js} +2 -2
- package/client-dist/{feedback.module-D367ZC6J.js → feedback.module-LL2MRM2Q.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-SMK75GJX.js → host-runtime-mcp.module-6CUKTPUO.js} +2 -2
- package/client-dist/index.html +1 -1
- package/client-dist/{live-dev-pipeline.module-TEPDHMXK.js → live-dev-pipeline.module-HFCGROXH.js} +2 -2
- package/client-dist/{logs.module-P7XHD6NQ.js → logs.module-DHBSE2KE.js} +2 -2
- package/client-dist/{main-PV5MDVZV.js → main-XCMYEZXM.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-WNERX4QY.js → master-control-remote-poc.module-SXSUM2KX.js} +2 -2
- package/client-dist/{mobile-app.module-AQQ5JZ5D.js → mobile-app.module-VTEZJSGQ.js} +2 -2
- package/client-dist/{model-registry.module-7SUM5KSW.js → model-registry.module-AFGLVYHQ.js} +2 -2
- package/client-dist/{oc.module-BEC3URVJ.js → oc.module-46CPQK5Q.js} +2 -2
- package/client-dist/{orc.module-6Z6OA4MI.js → orc.module-AHFLHGAC.js} +2 -2
- package/client-dist/{project-management.module-HHV4PD63.js → project-management.module-IO2GKZSD.js} +2 -2
- package/client-dist/project-source-routed.module-2NWLCLTD.js +2 -0
- package/client-dist/{scheduler.module-ZPVN2TMK.js → scheduler.module-SSRON4PT.js} +2 -2
- package/client-dist/{session.module-2EWXD2LD.js → session.module-LTJ4UVWH.js} +2 -2
- package/client-dist/{set.module-MTHEX6W4.js → set.module-PVV66J2Z.js} +2 -2
- package/client-dist/{setup.module-Y7ZEG3XX.js → setup.module-RNGQCVLV.js} +2 -2
- package/client-dist/{terminals.module-3TZO3TQW.js → terminals.module-73MWV7AD.js} +2 -2
- package/client-dist/{voice-notes-poc.module-GJNFEJJI.js → voice-notes-poc.module-AQVKDVVI.js} +2 -2
- package/client-dist/{wfs.module-U56HKERK.js → wfs.module-2QEI4QBQ.js} +2 -2
- package/package.json +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts +20 -43
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js +43 -43
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js.map +1 -1
- package/client-dist/project-source-routed.module-LWPWTUCB.js +0 -2
- /package/client-dist/{agent-instances.module-MOBPFOVL.js.map → agent-instances.module-EN3TUWCP.js.map} +0 -0
- /package/client-dist/{ca.module-DM43J2RL.js.map → ca.module-GORAHZS3.js.map} +0 -0
- /package/client-dist/{cc.module-2ZVFZLKY.js.map → cc.module-V7UUWHNN.js.map} +0 -0
- /package/client-dist/{chunk-GMQL62IG.js.map → chunk-3YVLAGRH.js.map} +0 -0
- /package/client-dist/{chunk-YCCO4I67.js.map → chunk-4QEHZHVD.js.map} +0 -0
- /package/client-dist/{chunk-5NOVUK7Q.js.map → chunk-5M33R74G.js.map} +0 -0
- /package/client-dist/{chunk-OKVUXJV4.js.map → chunk-5MXK7YEG.js.map} +0 -0
- /package/client-dist/{chunk-DSLYO2MW.js.map → chunk-6J4SX5W3.js.map} +0 -0
- /package/client-dist/{chunk-Y7JANXA6.js.map → chunk-6R36KJBX.js.map} +0 -0
- /package/client-dist/{chunk-24LHGCKT.js.map → chunk-6UEKWFBY.js.map} +0 -0
- /package/client-dist/{chunk-TPJOPS2T.js.map → chunk-ABFHBZMB.js.map} +0 -0
- /package/client-dist/{chunk-F3VLXQ63.js.map → chunk-BCGCVDWE.js.map} +0 -0
- /package/client-dist/{chunk-CBBCF32R.js.map → chunk-BI53K7S7.js.map} +0 -0
- /package/client-dist/{chunk-3BKWXHSS.js.map → chunk-BMPC7YQQ.js.map} +0 -0
- /package/client-dist/{chunk-UAV7AZMZ.js.map → chunk-BT66EBDO.js.map} +0 -0
- /package/client-dist/{chunk-6PGC6OS6.js.map → chunk-C233ZHXW.js.map} +0 -0
- /package/client-dist/{chunk-IQQHAQGU.js.map → chunk-D7OQ7EDV.js.map} +0 -0
- /package/client-dist/{chunk-55X4AMOF.js.map → chunk-DEIALVMK.js.map} +0 -0
- /package/client-dist/{chunk-G6NOOKD3.js.map → chunk-DQRYQQIF.js.map} +0 -0
- /package/client-dist/{chunk-S6ECM2FI.js.map → chunk-FQGFAUMM.js.map} +0 -0
- /package/client-dist/{chunk-JF5GUJ3U.js.map → chunk-GV7SWYVG.js.map} +0 -0
- /package/client-dist/{chunk-6RIVQBDG.js.map → chunk-IE4EXO7F.js.map} +0 -0
- /package/client-dist/{chunk-4IF2BHAL.js.map → chunk-IVJK5V3T.js.map} +0 -0
- /package/client-dist/{chunk-WJCXTUWX.js.map → chunk-IXD22FGA.js.map} +0 -0
- /package/client-dist/{chunk-YMZG362Q.js.map → chunk-JA6NJ3HY.js.map} +0 -0
- /package/client-dist/{chunk-55CP22NE.js.map → chunk-JB7S5KFM.js.map} +0 -0
- /package/client-dist/{chunk-E6DXRM5G.js.map → chunk-JYN4W4IW.js.map} +0 -0
- /package/client-dist/{chunk-NQZUGTQN.js.map → chunk-K3ABKMDH.js.map} +0 -0
- /package/client-dist/{chunk-TPVY4LWK.js.map → chunk-KU3NFCE3.js.map} +0 -0
- /package/client-dist/{chunk-7LGQEUGE.js.map → chunk-L65JUKSC.js.map} +0 -0
- /package/client-dist/{chunk-2IYJPEBE.js.map → chunk-LVVC3ZN5.js.map} +0 -0
- /package/client-dist/{chunk-BVHZC2R4.js.map → chunk-MUROLI6H.js.map} +0 -0
- /package/client-dist/{chunk-UF4JCN2H.js.map → chunk-N347O4ZR.js.map} +0 -0
- /package/client-dist/{chunk-EZKGNMOS.js.map → chunk-NMGB6Q45.js.map} +0 -0
- /package/client-dist/{chunk-WQ72MWYL.js.map → chunk-OLBAIJHY.js.map} +0 -0
- /package/client-dist/{chunk-TGHW5TCX.js.map → chunk-OMGAJHQQ.js.map} +0 -0
- /package/client-dist/{chunk-LEB6J737.js.map → chunk-PEHTATOM.js.map} +0 -0
- /package/client-dist/{chunk-AXNGKE56.js.map → chunk-PGMQ56NB.js.map} +0 -0
- /package/client-dist/{chunk-M4JXLQ5L.js.map → chunk-PMLUJE5N.js.map} +0 -0
- /package/client-dist/{chunk-AWOZUAJ5.js.map → chunk-PP73DOUH.js.map} +0 -0
- /package/client-dist/{chunk-VR77ESZF.js.map → chunk-QBRWMKSU.js.map} +0 -0
- /package/client-dist/{chunk-SAJULCYB.js.map → chunk-QDW4DDEH.js.map} +0 -0
- /package/client-dist/{chunk-Q2CQL2OM.js.map → chunk-R7CNI5LG.js.map} +0 -0
- /package/client-dist/{chunk-FT2VYZF2.js.map → chunk-RG4B2EC4.js.map} +0 -0
- /package/client-dist/{chunk-BCFR5P4Z.js.map → chunk-RHEQKQT3.js.map} +0 -0
- /package/client-dist/{chunk-FDO7MPJN.js.map → chunk-S6GMI7R3.js.map} +0 -0
- /package/client-dist/{chunk-L3ZXU5BF.js.map → chunk-SNA7RAMU.js.map} +0 -0
- /package/client-dist/{chunk-AWTLUF35.js.map → chunk-SSPO3S2C.js.map} +0 -0
- /package/client-dist/{chunk-WYE4ZS2V.js.map → chunk-SUOO3ZQQ.js.map} +0 -0
- /package/client-dist/{chunk-XTFGTT6E.js.map → chunk-TBE7X4MG.js.map} +0 -0
- /package/client-dist/{chunk-6Z6BVIEO.js.map → chunk-TOU2FRKB.js.map} +0 -0
- /package/client-dist/{chunk-YXSOAFPE.js.map → chunk-URBFZBHB.js.map} +0 -0
- /package/client-dist/{chunk-RZPEHHDF.js.map → chunk-UWC76UG2.js.map} +0 -0
- /package/client-dist/{chunk-T5PDX35Y.js.map → chunk-XWRXJ2PQ.js.map} +0 -0
- /package/client-dist/{chunk-3D6OZYTY.js.map → chunk-XWWVDCIV.js.map} +0 -0
- /package/client-dist/{chunk-QI5VQ5OL.js.map → chunk-Y7KI3XKP.js.map} +0 -0
- /package/client-dist/{chunk-G4YPCSLP.js.map → chunk-YASHJ2WC.js.map} +0 -0
- /package/client-dist/{chunk-X7VX4ZET.js.map → chunk-YSPF4PQW.js.map} +0 -0
- /package/client-dist/{consultant.module-J3NWWDCO.js.map → consultant.module-YXJGRCVB.js.map} +0 -0
- /package/client-dist/{crd.module-YQX3PO24.js.map → crd.module-K5IU7FAD.js.map} +0 -0
- /package/client-dist/{dashboard.module-ZHOQ5KS4.js.map → dashboard.module-JZHORI36.js.map} +0 -0
- /package/client-dist/{do.module-D3TSFGYV.js.map → do.module-VJDE653T.js.map} +0 -0
- /package/client-dist/{document-library.module-4VZBDNJD.js.map → document-library.module-S7H4MOVL.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-ZFS7MZLL.js.map → embedding-eval.module-XEHPYHRV.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-6AYSLPVY.js.map → embedding-registry.module-RYDZNKNT.js.map} +0 -0
- /package/client-dist/{err.module-CZTPDUZT.js.map → err.module-PGJZBINE.js.map} +0 -0
- /package/client-dist/{feedback.module-D367ZC6J.js.map → feedback.module-LL2MRM2Q.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-SMK75GJX.js.map → host-runtime-mcp.module-6CUKTPUO.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-TEPDHMXK.js.map → live-dev-pipeline.module-HFCGROXH.js.map} +0 -0
- /package/client-dist/{logs.module-P7XHD6NQ.js.map → logs.module-DHBSE2KE.js.map} +0 -0
- /package/client-dist/{main-PV5MDVZV.js.map → main-XCMYEZXM.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-WNERX4QY.js.map → master-control-remote-poc.module-SXSUM2KX.js.map} +0 -0
- /package/client-dist/{mobile-app.module-AQQ5JZ5D.js.map → mobile-app.module-VTEZJSGQ.js.map} +0 -0
- /package/client-dist/{model-registry.module-7SUM5KSW.js.map → model-registry.module-AFGLVYHQ.js.map} +0 -0
- /package/client-dist/{oc.module-BEC3URVJ.js.map → oc.module-46CPQK5Q.js.map} +0 -0
- /package/client-dist/{orc.module-6Z6OA4MI.js.map → orc.module-AHFLHGAC.js.map} +0 -0
- /package/client-dist/{project-management.module-HHV4PD63.js.map → project-management.module-IO2GKZSD.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-LWPWTUCB.js.map → project-source-routed.module-2NWLCLTD.js.map} +0 -0
- /package/client-dist/{scheduler.module-ZPVN2TMK.js.map → scheduler.module-SSRON4PT.js.map} +0 -0
- /package/client-dist/{session.module-2EWXD2LD.js.map → session.module-LTJ4UVWH.js.map} +0 -0
- /package/client-dist/{set.module-MTHEX6W4.js.map → set.module-PVV66J2Z.js.map} +0 -0
- /package/client-dist/{setup.module-Y7ZEG3XX.js.map → setup.module-RNGQCVLV.js.map} +0 -0
- /package/client-dist/{terminals.module-3TZO3TQW.js.map → terminals.module-73MWV7AD.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-GJNFEJJI.js.map → voice-notes-poc.module-AQVKDVVI.js.map} +0 -0
- /package/client-dist/{wfs.module-U56HKERK.js.map → wfs.module-2QEI4QBQ.js.map} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as se}from"./chunk-GMQL62IG.js";import"./chunk-BCFR5P4Z.js";import"./chunk-7LGQEUGE.js";import"./chunk-T5PDX35Y.js";import{b as Z,c as ee,f as te,i as ne,n as ie,o as oe,p as re,v as j}from"./chunk-EO4DNTT4.js";import{a as A}from"./chunk-5UPNU54P.js";import{j as ae}from"./chunk-3D6OZYTY.js";import{I as le}from"./chunk-BOOSIZMO.js";import{C,D as R,E as q,Fa as o,Ga as F,Ha as b,Ia as N,J as u,K as m,Kb as X,L as D,M as J,Ta as Y,Z as s,a as v,aa as w,b as S,d as B,da as k,ga as g,ia as I,k as x,la as h,na as K,oa as M,p as E,pa as z,qa as i,ra as n,sa as P,ua as y,ub as V,va as c,wa as p,xb as Q,y as T,z as U}from"./chunk-TBMJSIBB.js";var de=(()=>{class l{baseUrl=`${le.api.baseUrl}/workflow`;http=C(Q);listWorkflows(e){let t=[];e?.workflowType&&t.push(`type=${e.workflowType}`),e?.isTemplate!==void 0&&t.push(`isTemplate=${e.isTemplate}`);let r=t.length?`?${t.join("&")}`:"";return E(this.http.get(`${this.baseUrl}${r}`))}createWorkflow(e){return E(this.http.post(this.baseUrl,e))}getWorkflow(e){return E(this.http.get(`${this.baseUrl}/${e}`))}updateWorkflow(e){let a=e,{id:t}=a,r=B(a,["id"]);return E(this.http.put(`${this.baseUrl}/${t}`,r))}generateWorkflow(e){return E(this.http.post(`${this.baseUrl}/generate`,{description:e.description,provider:e.provider,model:e.model}))}modifyWorkflow(e){return E(this.http.post(`${this.baseUrl}/modify`,{currentWorkflow:e.currentWorkflow,modificationDescription:e.modificationDescription,provider:e.provider,model:e.model}))}deleteWorkflow(e){return E(this.http.delete(`${this.baseUrl}/${e}`))}static \u0275fac=function(t){return new(t||l)};static \u0275prov=T({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})();var pe=(()=>{class l{workflow_AS=C(de);listWorkflows(e){return x(this,null,function*(){return(yield this.workflow_AS.listWorkflows(e)).workflows})}createWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.createWorkflow(e)).workflow})}getWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.getWorkflow(e)).workflow})}updateWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.updateWorkflow(e)).workflow})}generateWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.generateWorkflow(e)).workflow})}modifyWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.modifyWorkflow(e)).workflow})}deleteWorkflow(e){return x(this,null,function*(){return this.workflow_AS.deleteWorkflow(e)})}static \u0275fac=function(t){return new(t||l)};static \u0275prov=T({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})();var L="ccap-workflowSettingsDraft",$=class{static get(){let d=A.readJson(L,null);if(typeof d!="object"||d===null)return null;let e=d,t=typeof e.generationPrompt=="string"?e.generationPrompt:"",r=typeof e.modificationPrompt=="string"?e.modificationPrompt:"",a=typeof e.selectedProvider=="string"?e.selectedProvider:"",_=typeof e.selectedModel=="string"?e.selectedModel:"",W=typeof e.isCreating=="boolean"?e.isCreating:!1,f=e.editingWorkflow&&typeof e.editingWorkflow=="object"?e.editingWorkflow:null;return{generationPrompt:t,modificationPrompt:r,selectedProvider:a,selectedModel:_,isCreating:W,editingWorkflow:f}}static save(d){A.writeJson(L,d)}static clear(){A.remove(L)}};var me=(l,d)=>d._id,H=(l,d)=>d.id;function ce(l,d){if(l&1){let e=y();i(0,"button",5),c("click",function(){u(e);let r=p();return m(r.handleCreateNew())}),o(1," + \xDAj workflow "),n()}}function _e(l,d){l&1&&(i(0,"div",6),o(1,"Bet\xF6lt\xE9s..."),n())}function fe(l,d){l&1&&(i(0,"div",7),o(1," Nincs m\xE9g workflow. Hozz l\xE9tre egyet a gombbal. "),n())}function ge(l,d){l&1&&(i(0,"span",14),o(1," sablon "),n())}function xe(l,d){l&1&&(i(0,"span",15),o(1," Built-in "),n())}function we(l,d){if(l&1){let e=y();i(0,"button",20),c("click",function(){u(e);let r=p().$implicit,a=p(3);return m(a.handleEdit(r))}),o(1," Szerkeszt\xE9s "),n(),i(2,"button",21),c("click",function(){u(e);let r=p().$implicit,a=p(3);return m(a.handleDelete(r))}),o(3," T\xF6rl\xE9s "),n()}}function he(l,d){l&1&&(i(0,"span",19),o(1," Readonly "),n())}function ke(l,d){if(l&1&&(i(0,"div",9)(1,"div",10)(2,"div",11)(3,"span",12),o(4),n(),i(5,"span",13),o(6),n(),k(7,ge,2,0,"span",14)(8,xe,2,0,"span",15),n(),i(9,"p",16),o(10),n(),i(11,"div",17),o(12),n()(),i(13,"div",18),k(14,we,4,0)(15,he,2,0,"span",19),n()()),l&2){let e=d.$implicit;s(4),F(e.name),s(2),b(" ",e.workflowType," "),s(),h(e.isTemplate?7:-1),s(),h(e.isBuiltIn?8:-1),s(2),F(e.description),s(2),b(" ",e.phases.length," f\xE1zis "),s(2),h(e.isBuiltIn?15:14)}}function Ee(l,d){if(l&1&&(i(0,"div",8),M(1,ke,16,7,"div",9,me),n()),l&2){let e=p(2);s(),z(e.workflows_$())}}function Ce(l,d){if(l&1&&k(0,_e,2,0,"div",6)(1,fe,2,0,"div",7)(2,Ee,3,0,"div",8),l&2){let e=p();h(e.isLoading_$()?0:e.workflows_$().length===0?1:2)}}function be(l,d){l&1&&(D(),i(0,"svg",27),P(1,"polyline",52),n())}function ve(l,d){l&1&&(D(),i(0,"svg",27),P(1,"rect",53)(2,"path",54),n())}function Se(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e.provider+":"+e.modelName),s(),N(" ",e.provider," / ",e.modelName," ")}}function ye(l,d){l&1&&(i(0,"span",56),o(1,"Az LLM dolgozik a workflow-n..."),n())}function $e(l,d){if(l&1){let e=y();i(0,"div",28)(1,"div",42)(2,"span",55),o(3,"Workflow gener\xE1l\xE1s"),n(),i(4,"span",56),o(5,"\u2014 \xEDrd le egyszer\u0171en, mit szeretn\xE9l"),n()(),i(6,"textarea",57),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleGenerationPromptChange(r))}),o(7," "),n(),i(8,"div",58)(9,"div",42)(10,"label",56),o(11,"Modell:"),n(),i(12,"select",59),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModelSelectionChange(r))}),i(13,"option",60),o(14,"Alap\xE9rtelmezett"),n(),M(15,Se,2,3,"option",41,H),n()(),i(17,"button",61),c("click",function(){u(e);let r=p(2);return m(r.handleGenerate())}),o(18),n(),k(19,ye,2,0,"span",56),n()()}if(l&2){let e=p(2);s(6),g("ngModel",e.generationPrompt_$()),s(6),g("ngModel",e.selectedProvider_$()&&e.selectedModel_$()?e.selectedProvider_$()+":"+e.selectedModel_$():""),s(3),z(e.availableModels_$()),s(2),g("disabled",e.isGenerating_$()||!e.generationPrompt_$()),s(),b(" ",e.isGenerating_$()?"Gener\xE1l\xE1s...":"Gener\xE1l\xE1s"," "),s(),h(e.isGenerating_$()?19:-1)}}function We(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e.provider+":"+e.modelName),s(),N(" ",e.provider," / ",e.modelName," ")}}function Me(l,d){l&1&&(i(0,"span",56),o(1,"Az LLM m\xF3dos\xEDtja a workflow-t..."),n())}function ze(l,d){if(l&1){let e=y();i(0,"div",29)(1,"div",42)(2,"span",62),o(3,"Workflow m\xF3dos\xEDt\xE1s"),n(),i(4,"span",56),o(5,"\u2014 \xEDrd le, mit szeretn\xE9l v\xE1ltoztatni"),n()(),i(6,"textarea",63),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModificationPromptChange(r))}),o(7," "),n(),i(8,"div",58)(9,"div",42)(10,"label",56),o(11,"Modell:"),n(),i(12,"select",64),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModelSelectionChange(r))}),i(13,"option",60),o(14,"Alap\xE9rtelmezett"),n(),M(15,We,2,3,"option",41,H),n()(),i(17,"button",65),c("click",function(){u(e);let r=p(2);return m(r.handleModify())}),o(18),n(),k(19,Me,2,0,"span",56),n()()}if(l&2){let e=p(2);s(6),g("ngModel",e.modificationPrompt_$()),s(6),g("ngModel",e.selectedProvider_$()&&e.selectedModel_$()?e.selectedProvider_$()+":"+e.selectedModel_$():""),s(3),z(e.availableModels_$()),s(2),g("disabled",e.isModifying_$()||!e.modificationPrompt_$()),s(),b(" ",e.isModifying_$()?"M\xF3dos\xEDt\xE1s...":"M\xF3dos\xEDt\xE1s"," "),s(),h(e.isModifying_$()?19:-1)}}function Te(l,d){l&1&&(i(0,"div",36)(1,"div")(2,"h3",66),o(3,"Fel\xE9p\xEDt\xE9s"),n(),i(4,"p"),o(5," Egy j\xF3 workflow "),i(6,"strong",67),o(7,"f\xE1zisokra"),n(),o(8," bontja a feladatot, ahol minden f\xE1zis egyetlen, j\xF3l meghat\xE1rozott c\xE9lt k\xF6vet. A "),i(9,"strong",67),o(10,"vez\xE9rprompt"),n(),o(11," (master prompt) az eg\xE9sz workflow-ra \xE9rv\xE9nyes alapszab\xE1lyokat \xE9s kontextust tartalmazza \u2014 ez minden f\xE1zisban automatikusan megjelenik. "),n()(),i(12,"div")(13,"h3",66),o(14,"Vez\xE9rprompt (master prompt)"),n(),i(15,"ul",68)(16,"li"),o(17,"Projekt kontextus: milyen repo, milyen stack, milyen nyelven dolgozunk"),n(),i(18,"li"),o(19,"Glob\xE1lis szab\xE1lyok: k\xF3dol\xE1si konvenci\xF3k, tiltott m\u0171veletek, commit policy"),n(),i(20,"li"),o(21,'Szerepk\xF6r: milyen "szaktud\xE1s\xFA" agent hajtja v\xE9gre a workflow-t'),n(),i(22,"li"),o(23,"Ne ism\xE9telj meg f\xE1zisonk\xE9nt olyat, ami ide tartozik \u2014 a master prompt mindig jelen van"),n()()(),i(24,"div")(25,"h3",66),o(26,"F\xE1zisok tervez\xE9se"),n(),i(27,"ul",68)(28,"li")(29,"strong",67),o(30,"C\xE9l (goal):"),n(),o(31," egyetlen mondat \u2014 a f\xE1zis sikeress\xE9g\xE9nek m\xE9rc\xE9je "),n(),i(32,"li")(33,"strong",67),o(34,"F\xE1zis prompt:"),n(),o(35,' konkr\xE9t, akci\xF3-orient\xE1lt utas\xEDt\xE1s. Ker\xFCld az \xE1ltal\xE1noss\xE1gokat ("n\xE9zd \xE1t a k\xF3dot") \u2014 \xEDrd le pontosan mit kell csin\xE1lni '),n(),i(36,"li")(37,"strong",67),o(38,"Ism\xE9tl\u0151d\u0151 f\xE1zis:"),n(),o(39,' ha a f\xE1zis nem egyl\xE9p\xE9ses (pl. iterat\xEDv fejleszt\xE9s), kapcsold be az "Ism\xE9tl\u0151d\u0151" opci\xF3t \u2014 a f\xE1zis addig fut, am\xEDg PHASE_DONE jelz\xE9s nem \xE9rkezik '),n()()(),i(40,"div")(41,"h3",66),o(42,"Tipikus f\xE1zis-sorrend"),n(),i(43,"div",69)(44,"span",70),o(45,"1. T\xE1j\xE9koz\xF3d\xE1s / Clarify"),n(),i(46,"span",24),o(47,"\u2192"),n(),i(48,"span",70),o(49,"2. Tervez\xE9s / Plan"),n(),i(50,"span",24),o(51,"\u2192"),n(),i(52,"span",70),o(53,"3. Megval\xF3s\xEDt\xE1s / Dev"),n(),i(54,"span",24),o(55,"\u2192"),n(),i(56,"span",70),o(57,"4. Tesztel\xE9s / Test"),n(),i(58,"span",24),o(59,"\u2192"),n(),i(60,"span",70),o(61,"5. Review / Doc"),n()(),i(62,"p",71),o(63," Nem minden workflow-nak kell minden f\xE1zist tartalmaznia \u2014 haszn\xE1ld azt, ami relev\xE1ns. "),n()(),i(64,"div")(65,"h3",66),o(66,"Tippek"),n(),i(67,"ul",68)(68,"li"),o(69,"A "),i(70,"strong",67),o(71,"sablon (template)"),n(),o(72," workflow-kat gener\xE1l\xE1shoz is haszn\xE1ljuk \u2014 jel\xF6ld be, ha m\xE1sok sz\xE1m\xE1ra is mintak\xE9nt szolg\xE1l"),n(),i(73,"li"),o(74,"A f\xE1zis prompt-ban hivatkozhatsz f\xE1jlokra, mapp\xE1kra, specifik\xE1ci\xF3kra \u2014 min\xE9l konkr\xE9tabb, ann\xE1l jobb"),n(),i(75,"li"),o(76,"T\xF6rekedj arra, hogy egy f\xE1zis "),i(77,"strong",67),o(78,"1 felel\u0151ss\xE9gi k\xF6rrel"),n(),o(79," rendelkezzen (single responsibility)"),n(),i(80,"li"),o(81,"Ha egy f\xE1zis t\xFAl hossz\xFA lenne, bontsd kett\xE9 \u2014 ink\xE1bb legyen t\xF6bb kis f\xE1zis, mint egy nagy"),n()()()())}function De(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e),s(),F(e)}}function Pe(l,d){if(l&1){let e=y();i(0,"div",48)(1,"div",72)(2,"span",73),o(3),n(),i(4,"button",74),c("click",function(){let r=u(e).$index,a=p(2);return m(a.handleRemovePhase(r))}),o(5," Elt\xE1vol\xEDt\xE1s "),n()(),i(6,"div",75)(7,"div")(8,"label",76),o(9,"C\xEDm"),n(),i(10,"input",77),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"title",value:r}))}),n()(),i(11,"div")(12,"label",76),o(13,"C\xE9l (goal)"),n(),i(14,"input",77),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"goal",value:r}))}),n()()(),i(15,"div",78)(16,"label",76),o(17,"F\xE1zis prompt"),n(),i(18,"textarea",79),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"phasePrompt",value:r}))}),o(19," "),n()(),i(20,"div",42)(21,"input",43),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"repeatUntilDone",value:r}))}),n(),i(22,"label",80),o(23,"Ism\xE9tl\u0151d\u0151 (am\xEDg PHASE_DONE)"),n()()()}if(l&2){let e=d.$implicit,t=d.$index;s(3),b("F\xE1zis ",t+1,""),s(7),g("ngModel",e.title),s(4),g("ngModel",e.goal),s(4),g("ngModel",e.phasePrompt),s(3),g("ngModel",e.repeatUntilDone)}}function Fe(l,d){if(l&1){let e=y();i(0,"div",4)(1,"div",22)(2,"button",23),c("click",function(){u(e);let r=p();return m(r.handleCancel())}),o(3," \u2190 Vissza "),n(),i(4,"span",24),o(5,"|"),n(),i(6,"span",25),o(7),n(),i(8,"button",26),c("click",function(){u(e);let r=p();return m(r.handleCopyMarkdown())}),k(9,be,2,0,":svg:svg",27)(10,ve,3,0,":svg:svg",27),n()(),k(11,$e,20,5,"div",28)(12,ze,20,5,"div",29),i(13,"div",30)(14,"button",31),c("click",function(){u(e);let r=p();return m(r.handleToggleBestPractices())}),D(),i(15,"svg",32),P(16,"polyline",33),n(),J(),i(17,"span",34),o(18,"Workflow tervez\xE9si \xFAtmutat\xF3"),n(),i(19,"span",35),o(20,"best practices"),n()(),k(21,Te,82,0,"div",36),n(),i(22,"div",37)(23,"div")(24,"label",38),o(25,"N\xE9v"),n(),i(26,"input",39),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("name",r))}),n()(),i(27,"div")(28,"label",38),o(29,"T\xEDpus"),n(),i(30,"select",40),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("workflowType",r))}),M(31,De,2,2,"option",41,K),n()()(),i(33,"div")(34,"label",38),o(35,"Le\xEDr\xE1s"),n(),i(36,"input",39),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("description",r))}),n()(),i(37,"div",42)(38,"input",43),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("isTemplate",r))}),n(),i(39,"label",25),o(40,"Sablon (template)"),n()(),i(41,"div")(42,"label",38),o(43,"Vez\xE9rprompt (master prompt)"),n(),i(44,"textarea",44),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("masterPrompt",r))}),o(45," "),n()(),i(46,"div")(47,"div",45)(48,"h2",46),o(49,"F\xE1zisok"),n(),i(50,"button",47),c("click",function(){u(e);let r=p();return m(r.handleAddPhase())}),o(51," + F\xE1zis "),n()(),M(52,Pe,24,5,"div",48,H),n(),i(54,"div",49)(55,"button",50),c("click",function(){u(e);let r=p();return m(r.handleSave())}),o(56),n(),i(57,"button",51),c("click",function(){u(e);let r=p();return m(r.handleCancel())}),o(58," M\xE9gse "),n()()()}if(l&2){let e,t,r,a,_,W,f=p();s(7),b(" ",f.isCreating_$()?"\xDAj workflow":"Szerkeszt\xE9s"," "),s(),I("text-neutral-500",!f.isCopied_$())("hover:text-neutral-200",!f.isCopied_$())("text-green-400",f.isCopied_$()),s(),h(f.isCopied_$()?9:10),s(2),h(f.isCreating_$()?11:-1),s(),h(f.isCreating_$()?-1:12),s(3),I("-rotate-90",!f.isBestPracticesOpen_$()),s(6),h(f.isBestPracticesOpen_$()?21:-1),s(5),g("ngModel",(e=f.editingWorkflow_$())==null?null:e.name),s(4),g("ngModel",(t=f.editingWorkflow_$())==null?null:t.workflowType),s(),z(f.workflowTypes),s(5),g("ngModel",(r=f.editingWorkflow_$())==null?null:r.description),s(2),g("ngModel",(a=f.editingWorkflow_$())==null?null:a.isTemplate),s(6),g("ngModel",(_=f.editingWorkflow_$())==null?null:_.masterPrompt),s(8),z((W=f.editingWorkflow_$())==null?null:W.phases),s(3),g("disabled",f.isLoading_$()),s(),b(" ",f.isCreating_$()?"L\xE9trehoz\xE1s":"Ment\xE9s"," ")}}function ue(l){return{id:`phase-${Date.now()}-${l}`,title:"",order:l,goal:"",phasePrompt:"",constraints:[],dod:[],repeatUntilDone:!1,subWorkflowTriggers:[]}}function Ve(){return{name:"",description:"",workflowType:"development",isTemplate:!1,masterPrompt:"",phases:[ue(0)]}}var O=(()=>{class l{workflow_DS=C(pe);globalError_CS=C(ae);modelRegistry_DS=C(se);workflows_$=w([]);editingWorkflow_$=w(null);isLoading_$=w(!1);isCreating_$=w(!1);isBestPracticesOpen_$=w(!1);generationPrompt_$=w("");modificationPrompt_$=w("");isGenerating_$=w(!1);isModifying_$=w(!1);isCopied_$=w(!1);availableModels_$=w([]);selectedProvider_$=w("");selectedModel_$=w("");workflowTypes=["development","research","testing","support","onboarding","review","poc","user-input","bug-report"];ngOnInit(){this.loadWorkflows(),this.loadAvailableModels(),this.restoreDraft()}loadWorkflows(){return x(this,null,function*(){try{this.isLoading_$.set(!0);let e=yield this.workflow_DS.listWorkflows();this.workflows_$.set(e)}catch(e){this.globalError_CS.showError(e,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleCreateNew(){this.isCreating_$.set(!0),this.editingWorkflow_$.set(Ve()),this.persistDraft()}handleEdit(e){this.isCreating_$.set(!1),this.editingWorkflow_$.set(S(v({},e),{phases:[...e.phases]}))}handleCancel(){this.editingWorkflow_$.set(null),$.clear()}handleSave(){return x(this,null,function*(){let e=this.editingWorkflow_$();if(e)try{this.isLoading_$.set(!0),this.isCreating_$()?yield this.workflow_DS.createWorkflow({name:e.name,description:e.description,workflowType:e.workflowType,isTemplate:e.isTemplate,masterPrompt:e.masterPrompt,phases:e.phases,generationHistory:e.generationHistory}):e._id&&(yield this.workflow_DS.updateWorkflow({id:e._id,name:e.name,description:e.description,workflowType:e.workflowType,isTemplate:e.isTemplate,masterPrompt:e.masterPrompt,phases:e.phases,generationHistory:e.generationHistory})),this.editingWorkflow_$.set(null),$.clear(),yield this.loadWorkflows()}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleDelete(e){return x(this,null,function*(){if(e._id)try{this.isLoading_$.set(!0),yield this.workflow_DS.deleteWorkflow(e._id),yield this.loadWorkflows()}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleAddPhase(){let e=this.editingWorkflow_$();if(!e)return;let t=ue(e.phases.length);this.editingWorkflow_$.set(S(v({},e),{phases:[...e.phases,t]})),this.persistDraft()}handleRemovePhase(e){let t=this.editingWorkflow_$();if(!t)return;let r=t.phases.filter((a,_)=>_!==e);this.editingWorkflow_$.set(S(v({},t),{phases:r})),this.persistDraft()}handlePhaseFieldChange(e){let t=this.editingWorkflow_$();if(!t)return;let r=[...t.phases];r[e.index]=S(v({},r[e.index]),{[e.field]:e.value}),this.editingWorkflow_$.set(S(v({},t),{phases:r})),this.persistDraft()}handleGenerationPromptChange(e){this.generationPrompt_$.set(e),this.persistDraft()}handleGenerate(){return x(this,null,function*(){let e=this.generationPrompt_$().trim();if(e)try{this.isGenerating_$.set(!0);let t=this.selectedProvider_$(),r=this.selectedModel_$(),a=yield this.workflow_DS.generateWorkflow({description:e,provider:t||void 0,model:r||void 0}),_={type:"generation",prompt:e,timestamp:new Date().toISOString()};this.editingWorkflow_$.set({name:a.name??"",description:a.description??"",workflowType:a.workflowType??"development",isTemplate:a.isTemplate??!1,masterPrompt:a.masterPrompt??"",phases:Array.isArray(a.phases)?a.phases:[],generationHistory:[_]})}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isGenerating_$.set(!1)}})}handleModificationPromptChange(e){this.modificationPrompt_$.set(e),this.persistDraft()}handleModify(){return x(this,null,function*(){let e=this.modificationPrompt_$().trim(),t=this.editingWorkflow_$();if(!(!e||!t))try{this.isModifying_$.set(!0);let r=this.selectedProvider_$(),a=this.selectedModel_$(),_=yield this.workflow_DS.modifyWorkflow({currentWorkflow:t,modificationDescription:e,provider:r||void 0,model:a||void 0}),W={type:"modification",prompt:e,timestamp:new Date().toISOString()},f=t.generationHistory??[];this.editingWorkflow_$.set({_id:t._id,name:_.name??"",description:_.description??"",workflowType:_.workflowType??"development",isTemplate:_.isTemplate??!1,masterPrompt:_.masterPrompt??"",phases:Array.isArray(_.phases)?_.phases:[],generationHistory:[...f,W]}),this.persistDraft()}catch(r){this.globalError_CS.showError(r,"workflow-settings")}finally{this.isModifying_$.set(!1)}})}loadAvailableModels(){return x(this,null,function*(){try{let e=yield this.modelRegistry_DS.loadList({enabled:!0});this.availableModels_$.set(e)}catch(e){this.globalError_CS.showError(e,"workflow-settings")}})}handleModelSelectionChange(e){if(!e){this.selectedProvider_$.set(""),this.selectedModel_$.set("");return}let t=e.indexOf(":");t!==-1&&(this.selectedProvider_$.set(e.substring(0,t)),this.selectedModel_$.set(e.substring(t+1)),this.persistDraft())}handleToggleBestPractices(){this.isBestPracticesOpen_$.set(!this.isBestPracticesOpen_$())}handleFieldChange(e,t){let r=this.editingWorkflow_$();r&&(this.editingWorkflow_$.set(S(v({},r),{[e]:t})),this.persistDraft())}handleCopyMarkdown(){return x(this,null,function*(){let e=this.editingWorkflow_$();if(!e)return;let t=[];t.push(`# ${e.name||"N\xE9vtelen workflow"}`),t.push(""),e.description&&(t.push(`> ${e.description}`),t.push("")),t.push("| Mez\u0151 | \xC9rt\xE9k |"),t.push("|------|-------|"),t.push(`| T\xEDpus | ${e.workflowType} |`),t.push(`| Sablon | ${e.isTemplate?"igen":"nem"} |`),t.push(`| F\xE1zisok sz\xE1ma | ${e.phases.length} |`),t.push(""),e.masterPrompt&&(t.push("## Vez\xE9rprompt (master prompt)"),t.push(""),t.push(e.masterPrompt),t.push("")),t.push("## F\xE1zisok"),t.push("");for(let r of e.phases){if(t.push(`### ${r.order+1}. ${r.title||"N\xE9vtelen f\xE1zis"}`),t.push(""),r.goal&&(t.push(`**C\xE9l:** ${r.goal}`),t.push("")),r.phasePrompt&&(t.push("**F\xE1zis prompt:**"),t.push(""),t.push(r.phasePrompt),t.push("")),r.constraints.length){t.push("**Megk\xF6t\xE9sek:**");for(let a of r.constraints)t.push(`- ${a}`);t.push("")}if(r.dod.length){t.push("**Definition of Done:**");for(let a of r.dod)t.push(`- ${a}`);t.push("")}r.repeatUntilDone&&(t.push("*Ism\xE9tl\u0151d\u0151 f\xE1zis (am\xEDg PHASE_DONE)*"),t.push(""))}try{yield navigator.clipboard.writeText(t.join(`
|
|
1
|
+
import{a as se}from"./chunk-3YVLAGRH.js";import"./chunk-RHEQKQT3.js";import"./chunk-L65JUKSC.js";import"./chunk-XWRXJ2PQ.js";import{b as Z,c as ee,f as te,i as ne,n as ie,o as oe,p as re,v as j}from"./chunk-EO4DNTT4.js";import{a as A}from"./chunk-5UPNU54P.js";import{j as ae}from"./chunk-XWWVDCIV.js";import{I as le}from"./chunk-WH2RXTQX.js";import{C,D as R,E as q,Fa as o,Ga as F,Ha as b,Ia as N,J as u,K as m,Kb as X,L as D,M as J,Ta as Y,Z as s,a as v,aa as w,b as S,d as B,da as k,ga as g,ia as I,k as x,la as h,na as K,oa as M,p as E,pa as z,qa as i,ra as n,sa as P,ua as y,ub as V,va as c,wa as p,xb as Q,y as T,z as U}from"./chunk-TBMJSIBB.js";var de=(()=>{class l{baseUrl=`${le.api.baseUrl}/workflow`;http=C(Q);listWorkflows(e){let t=[];e?.workflowType&&t.push(`type=${e.workflowType}`),e?.isTemplate!==void 0&&t.push(`isTemplate=${e.isTemplate}`);let r=t.length?`?${t.join("&")}`:"";return E(this.http.get(`${this.baseUrl}${r}`))}createWorkflow(e){return E(this.http.post(this.baseUrl,e))}getWorkflow(e){return E(this.http.get(`${this.baseUrl}/${e}`))}updateWorkflow(e){let a=e,{id:t}=a,r=B(a,["id"]);return E(this.http.put(`${this.baseUrl}/${t}`,r))}generateWorkflow(e){return E(this.http.post(`${this.baseUrl}/generate`,{description:e.description,provider:e.provider,model:e.model}))}modifyWorkflow(e){return E(this.http.post(`${this.baseUrl}/modify`,{currentWorkflow:e.currentWorkflow,modificationDescription:e.modificationDescription,provider:e.provider,model:e.model}))}deleteWorkflow(e){return E(this.http.delete(`${this.baseUrl}/${e}`))}static \u0275fac=function(t){return new(t||l)};static \u0275prov=T({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})();var pe=(()=>{class l{workflow_AS=C(de);listWorkflows(e){return x(this,null,function*(){return(yield this.workflow_AS.listWorkflows(e)).workflows})}createWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.createWorkflow(e)).workflow})}getWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.getWorkflow(e)).workflow})}updateWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.updateWorkflow(e)).workflow})}generateWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.generateWorkflow(e)).workflow})}modifyWorkflow(e){return x(this,null,function*(){return(yield this.workflow_AS.modifyWorkflow(e)).workflow})}deleteWorkflow(e){return x(this,null,function*(){return this.workflow_AS.deleteWorkflow(e)})}static \u0275fac=function(t){return new(t||l)};static \u0275prov=T({token:l,factory:l.\u0275fac,providedIn:"root"})}return l})();var L="ccap-workflowSettingsDraft",$=class{static get(){let d=A.readJson(L,null);if(typeof d!="object"||d===null)return null;let e=d,t=typeof e.generationPrompt=="string"?e.generationPrompt:"",r=typeof e.modificationPrompt=="string"?e.modificationPrompt:"",a=typeof e.selectedProvider=="string"?e.selectedProvider:"",_=typeof e.selectedModel=="string"?e.selectedModel:"",W=typeof e.isCreating=="boolean"?e.isCreating:!1,f=e.editingWorkflow&&typeof e.editingWorkflow=="object"?e.editingWorkflow:null;return{generationPrompt:t,modificationPrompt:r,selectedProvider:a,selectedModel:_,isCreating:W,editingWorkflow:f}}static save(d){A.writeJson(L,d)}static clear(){A.remove(L)}};var me=(l,d)=>d._id,H=(l,d)=>d.id;function ce(l,d){if(l&1){let e=y();i(0,"button",5),c("click",function(){u(e);let r=p();return m(r.handleCreateNew())}),o(1," + \xDAj workflow "),n()}}function _e(l,d){l&1&&(i(0,"div",6),o(1,"Bet\xF6lt\xE9s..."),n())}function fe(l,d){l&1&&(i(0,"div",7),o(1," Nincs m\xE9g workflow. Hozz l\xE9tre egyet a gombbal. "),n())}function ge(l,d){l&1&&(i(0,"span",14),o(1," sablon "),n())}function xe(l,d){l&1&&(i(0,"span",15),o(1," Built-in "),n())}function we(l,d){if(l&1){let e=y();i(0,"button",20),c("click",function(){u(e);let r=p().$implicit,a=p(3);return m(a.handleEdit(r))}),o(1," Szerkeszt\xE9s "),n(),i(2,"button",21),c("click",function(){u(e);let r=p().$implicit,a=p(3);return m(a.handleDelete(r))}),o(3," T\xF6rl\xE9s "),n()}}function he(l,d){l&1&&(i(0,"span",19),o(1," Readonly "),n())}function ke(l,d){if(l&1&&(i(0,"div",9)(1,"div",10)(2,"div",11)(3,"span",12),o(4),n(),i(5,"span",13),o(6),n(),k(7,ge,2,0,"span",14)(8,xe,2,0,"span",15),n(),i(9,"p",16),o(10),n(),i(11,"div",17),o(12),n()(),i(13,"div",18),k(14,we,4,0)(15,he,2,0,"span",19),n()()),l&2){let e=d.$implicit;s(4),F(e.name),s(2),b(" ",e.workflowType," "),s(),h(e.isTemplate?7:-1),s(),h(e.isBuiltIn?8:-1),s(2),F(e.description),s(2),b(" ",e.phases.length," f\xE1zis "),s(2),h(e.isBuiltIn?15:14)}}function Ee(l,d){if(l&1&&(i(0,"div",8),M(1,ke,16,7,"div",9,me),n()),l&2){let e=p(2);s(),z(e.workflows_$())}}function Ce(l,d){if(l&1&&k(0,_e,2,0,"div",6)(1,fe,2,0,"div",7)(2,Ee,3,0,"div",8),l&2){let e=p();h(e.isLoading_$()?0:e.workflows_$().length===0?1:2)}}function be(l,d){l&1&&(D(),i(0,"svg",27),P(1,"polyline",52),n())}function ve(l,d){l&1&&(D(),i(0,"svg",27),P(1,"rect",53)(2,"path",54),n())}function Se(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e.provider+":"+e.modelName),s(),N(" ",e.provider," / ",e.modelName," ")}}function ye(l,d){l&1&&(i(0,"span",56),o(1,"Az LLM dolgozik a workflow-n..."),n())}function $e(l,d){if(l&1){let e=y();i(0,"div",28)(1,"div",42)(2,"span",55),o(3,"Workflow gener\xE1l\xE1s"),n(),i(4,"span",56),o(5,"\u2014 \xEDrd le egyszer\u0171en, mit szeretn\xE9l"),n()(),i(6,"textarea",57),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleGenerationPromptChange(r))}),o(7," "),n(),i(8,"div",58)(9,"div",42)(10,"label",56),o(11,"Modell:"),n(),i(12,"select",59),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModelSelectionChange(r))}),i(13,"option",60),o(14,"Alap\xE9rtelmezett"),n(),M(15,Se,2,3,"option",41,H),n()(),i(17,"button",61),c("click",function(){u(e);let r=p(2);return m(r.handleGenerate())}),o(18),n(),k(19,ye,2,0,"span",56),n()()}if(l&2){let e=p(2);s(6),g("ngModel",e.generationPrompt_$()),s(6),g("ngModel",e.selectedProvider_$()&&e.selectedModel_$()?e.selectedProvider_$()+":"+e.selectedModel_$():""),s(3),z(e.availableModels_$()),s(2),g("disabled",e.isGenerating_$()||!e.generationPrompt_$()),s(),b(" ",e.isGenerating_$()?"Gener\xE1l\xE1s...":"Gener\xE1l\xE1s"," "),s(),h(e.isGenerating_$()?19:-1)}}function We(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e.provider+":"+e.modelName),s(),N(" ",e.provider," / ",e.modelName," ")}}function Me(l,d){l&1&&(i(0,"span",56),o(1,"Az LLM m\xF3dos\xEDtja a workflow-t..."),n())}function ze(l,d){if(l&1){let e=y();i(0,"div",29)(1,"div",42)(2,"span",62),o(3,"Workflow m\xF3dos\xEDt\xE1s"),n(),i(4,"span",56),o(5,"\u2014 \xEDrd le, mit szeretn\xE9l v\xE1ltoztatni"),n()(),i(6,"textarea",63),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModificationPromptChange(r))}),o(7," "),n(),i(8,"div",58)(9,"div",42)(10,"label",56),o(11,"Modell:"),n(),i(12,"select",64),c("ngModelChange",function(r){u(e);let a=p(2);return m(a.handleModelSelectionChange(r))}),i(13,"option",60),o(14,"Alap\xE9rtelmezett"),n(),M(15,We,2,3,"option",41,H),n()(),i(17,"button",65),c("click",function(){u(e);let r=p(2);return m(r.handleModify())}),o(18),n(),k(19,Me,2,0,"span",56),n()()}if(l&2){let e=p(2);s(6),g("ngModel",e.modificationPrompt_$()),s(6),g("ngModel",e.selectedProvider_$()&&e.selectedModel_$()?e.selectedProvider_$()+":"+e.selectedModel_$():""),s(3),z(e.availableModels_$()),s(2),g("disabled",e.isModifying_$()||!e.modificationPrompt_$()),s(),b(" ",e.isModifying_$()?"M\xF3dos\xEDt\xE1s...":"M\xF3dos\xEDt\xE1s"," "),s(),h(e.isModifying_$()?19:-1)}}function Te(l,d){l&1&&(i(0,"div",36)(1,"div")(2,"h3",66),o(3,"Fel\xE9p\xEDt\xE9s"),n(),i(4,"p"),o(5," Egy j\xF3 workflow "),i(6,"strong",67),o(7,"f\xE1zisokra"),n(),o(8," bontja a feladatot, ahol minden f\xE1zis egyetlen, j\xF3l meghat\xE1rozott c\xE9lt k\xF6vet. A "),i(9,"strong",67),o(10,"vez\xE9rprompt"),n(),o(11," (master prompt) az eg\xE9sz workflow-ra \xE9rv\xE9nyes alapszab\xE1lyokat \xE9s kontextust tartalmazza \u2014 ez minden f\xE1zisban automatikusan megjelenik. "),n()(),i(12,"div")(13,"h3",66),o(14,"Vez\xE9rprompt (master prompt)"),n(),i(15,"ul",68)(16,"li"),o(17,"Projekt kontextus: milyen repo, milyen stack, milyen nyelven dolgozunk"),n(),i(18,"li"),o(19,"Glob\xE1lis szab\xE1lyok: k\xF3dol\xE1si konvenci\xF3k, tiltott m\u0171veletek, commit policy"),n(),i(20,"li"),o(21,'Szerepk\xF6r: milyen "szaktud\xE1s\xFA" agent hajtja v\xE9gre a workflow-t'),n(),i(22,"li"),o(23,"Ne ism\xE9telj meg f\xE1zisonk\xE9nt olyat, ami ide tartozik \u2014 a master prompt mindig jelen van"),n()()(),i(24,"div")(25,"h3",66),o(26,"F\xE1zisok tervez\xE9se"),n(),i(27,"ul",68)(28,"li")(29,"strong",67),o(30,"C\xE9l (goal):"),n(),o(31," egyetlen mondat \u2014 a f\xE1zis sikeress\xE9g\xE9nek m\xE9rc\xE9je "),n(),i(32,"li")(33,"strong",67),o(34,"F\xE1zis prompt:"),n(),o(35,' konkr\xE9t, akci\xF3-orient\xE1lt utas\xEDt\xE1s. Ker\xFCld az \xE1ltal\xE1noss\xE1gokat ("n\xE9zd \xE1t a k\xF3dot") \u2014 \xEDrd le pontosan mit kell csin\xE1lni '),n(),i(36,"li")(37,"strong",67),o(38,"Ism\xE9tl\u0151d\u0151 f\xE1zis:"),n(),o(39,' ha a f\xE1zis nem egyl\xE9p\xE9ses (pl. iterat\xEDv fejleszt\xE9s), kapcsold be az "Ism\xE9tl\u0151d\u0151" opci\xF3t \u2014 a f\xE1zis addig fut, am\xEDg PHASE_DONE jelz\xE9s nem \xE9rkezik '),n()()(),i(40,"div")(41,"h3",66),o(42,"Tipikus f\xE1zis-sorrend"),n(),i(43,"div",69)(44,"span",70),o(45,"1. T\xE1j\xE9koz\xF3d\xE1s / Clarify"),n(),i(46,"span",24),o(47,"\u2192"),n(),i(48,"span",70),o(49,"2. Tervez\xE9s / Plan"),n(),i(50,"span",24),o(51,"\u2192"),n(),i(52,"span",70),o(53,"3. Megval\xF3s\xEDt\xE1s / Dev"),n(),i(54,"span",24),o(55,"\u2192"),n(),i(56,"span",70),o(57,"4. Tesztel\xE9s / Test"),n(),i(58,"span",24),o(59,"\u2192"),n(),i(60,"span",70),o(61,"5. Review / Doc"),n()(),i(62,"p",71),o(63," Nem minden workflow-nak kell minden f\xE1zist tartalmaznia \u2014 haszn\xE1ld azt, ami relev\xE1ns. "),n()(),i(64,"div")(65,"h3",66),o(66,"Tippek"),n(),i(67,"ul",68)(68,"li"),o(69,"A "),i(70,"strong",67),o(71,"sablon (template)"),n(),o(72," workflow-kat gener\xE1l\xE1shoz is haszn\xE1ljuk \u2014 jel\xF6ld be, ha m\xE1sok sz\xE1m\xE1ra is mintak\xE9nt szolg\xE1l"),n(),i(73,"li"),o(74,"A f\xE1zis prompt-ban hivatkozhatsz f\xE1jlokra, mapp\xE1kra, specifik\xE1ci\xF3kra \u2014 min\xE9l konkr\xE9tabb, ann\xE1l jobb"),n(),i(75,"li"),o(76,"T\xF6rekedj arra, hogy egy f\xE1zis "),i(77,"strong",67),o(78,"1 felel\u0151ss\xE9gi k\xF6rrel"),n(),o(79," rendelkezzen (single responsibility)"),n(),i(80,"li"),o(81,"Ha egy f\xE1zis t\xFAl hossz\xFA lenne, bontsd kett\xE9 \u2014 ink\xE1bb legyen t\xF6bb kis f\xE1zis, mint egy nagy"),n()()()())}function De(l,d){if(l&1&&(i(0,"option",41),o(1),n()),l&2){let e=d.$implicit;g("value",e),s(),F(e)}}function Pe(l,d){if(l&1){let e=y();i(0,"div",48)(1,"div",72)(2,"span",73),o(3),n(),i(4,"button",74),c("click",function(){let r=u(e).$index,a=p(2);return m(a.handleRemovePhase(r))}),o(5," Elt\xE1vol\xEDt\xE1s "),n()(),i(6,"div",75)(7,"div")(8,"label",76),o(9,"C\xEDm"),n(),i(10,"input",77),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"title",value:r}))}),n()(),i(11,"div")(12,"label",76),o(13,"C\xE9l (goal)"),n(),i(14,"input",77),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"goal",value:r}))}),n()()(),i(15,"div",78)(16,"label",76),o(17,"F\xE1zis prompt"),n(),i(18,"textarea",79),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"phasePrompt",value:r}))}),o(19," "),n()(),i(20,"div",42)(21,"input",43),c("ngModelChange",function(r){let a=u(e).$index,_=p(2);return m(_.handlePhaseFieldChange({index:a,field:"repeatUntilDone",value:r}))}),n(),i(22,"label",80),o(23,"Ism\xE9tl\u0151d\u0151 (am\xEDg PHASE_DONE)"),n()()()}if(l&2){let e=d.$implicit,t=d.$index;s(3),b("F\xE1zis ",t+1,""),s(7),g("ngModel",e.title),s(4),g("ngModel",e.goal),s(4),g("ngModel",e.phasePrompt),s(3),g("ngModel",e.repeatUntilDone)}}function Fe(l,d){if(l&1){let e=y();i(0,"div",4)(1,"div",22)(2,"button",23),c("click",function(){u(e);let r=p();return m(r.handleCancel())}),o(3," \u2190 Vissza "),n(),i(4,"span",24),o(5,"|"),n(),i(6,"span",25),o(7),n(),i(8,"button",26),c("click",function(){u(e);let r=p();return m(r.handleCopyMarkdown())}),k(9,be,2,0,":svg:svg",27)(10,ve,3,0,":svg:svg",27),n()(),k(11,$e,20,5,"div",28)(12,ze,20,5,"div",29),i(13,"div",30)(14,"button",31),c("click",function(){u(e);let r=p();return m(r.handleToggleBestPractices())}),D(),i(15,"svg",32),P(16,"polyline",33),n(),J(),i(17,"span",34),o(18,"Workflow tervez\xE9si \xFAtmutat\xF3"),n(),i(19,"span",35),o(20,"best practices"),n()(),k(21,Te,82,0,"div",36),n(),i(22,"div",37)(23,"div")(24,"label",38),o(25,"N\xE9v"),n(),i(26,"input",39),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("name",r))}),n()(),i(27,"div")(28,"label",38),o(29,"T\xEDpus"),n(),i(30,"select",40),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("workflowType",r))}),M(31,De,2,2,"option",41,K),n()()(),i(33,"div")(34,"label",38),o(35,"Le\xEDr\xE1s"),n(),i(36,"input",39),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("description",r))}),n()(),i(37,"div",42)(38,"input",43),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("isTemplate",r))}),n(),i(39,"label",25),o(40,"Sablon (template)"),n()(),i(41,"div")(42,"label",38),o(43,"Vez\xE9rprompt (master prompt)"),n(),i(44,"textarea",44),c("ngModelChange",function(r){u(e);let a=p();return m(a.handleFieldChange("masterPrompt",r))}),o(45," "),n()(),i(46,"div")(47,"div",45)(48,"h2",46),o(49,"F\xE1zisok"),n(),i(50,"button",47),c("click",function(){u(e);let r=p();return m(r.handleAddPhase())}),o(51," + F\xE1zis "),n()(),M(52,Pe,24,5,"div",48,H),n(),i(54,"div",49)(55,"button",50),c("click",function(){u(e);let r=p();return m(r.handleSave())}),o(56),n(),i(57,"button",51),c("click",function(){u(e);let r=p();return m(r.handleCancel())}),o(58," M\xE9gse "),n()()()}if(l&2){let e,t,r,a,_,W,f=p();s(7),b(" ",f.isCreating_$()?"\xDAj workflow":"Szerkeszt\xE9s"," "),s(),I("text-neutral-500",!f.isCopied_$())("hover:text-neutral-200",!f.isCopied_$())("text-green-400",f.isCopied_$()),s(),h(f.isCopied_$()?9:10),s(2),h(f.isCreating_$()?11:-1),s(),h(f.isCreating_$()?-1:12),s(3),I("-rotate-90",!f.isBestPracticesOpen_$()),s(6),h(f.isBestPracticesOpen_$()?21:-1),s(5),g("ngModel",(e=f.editingWorkflow_$())==null?null:e.name),s(4),g("ngModel",(t=f.editingWorkflow_$())==null?null:t.workflowType),s(),z(f.workflowTypes),s(5),g("ngModel",(r=f.editingWorkflow_$())==null?null:r.description),s(2),g("ngModel",(a=f.editingWorkflow_$())==null?null:a.isTemplate),s(6),g("ngModel",(_=f.editingWorkflow_$())==null?null:_.masterPrompt),s(8),z((W=f.editingWorkflow_$())==null?null:W.phases),s(3),g("disabled",f.isLoading_$()),s(),b(" ",f.isCreating_$()?"L\xE9trehoz\xE1s":"Ment\xE9s"," ")}}function ue(l){return{id:`phase-${Date.now()}-${l}`,title:"",order:l,goal:"",phasePrompt:"",constraints:[],dod:[],repeatUntilDone:!1,subWorkflowTriggers:[]}}function Ve(){return{name:"",description:"",workflowType:"development",isTemplate:!1,masterPrompt:"",phases:[ue(0)]}}var O=(()=>{class l{workflow_DS=C(pe);globalError_CS=C(ae);modelRegistry_DS=C(se);workflows_$=w([]);editingWorkflow_$=w(null);isLoading_$=w(!1);isCreating_$=w(!1);isBestPracticesOpen_$=w(!1);generationPrompt_$=w("");modificationPrompt_$=w("");isGenerating_$=w(!1);isModifying_$=w(!1);isCopied_$=w(!1);availableModels_$=w([]);selectedProvider_$=w("");selectedModel_$=w("");workflowTypes=["development","research","testing","support","onboarding","review","poc","user-input","bug-report"];ngOnInit(){this.loadWorkflows(),this.loadAvailableModels(),this.restoreDraft()}loadWorkflows(){return x(this,null,function*(){try{this.isLoading_$.set(!0);let e=yield this.workflow_DS.listWorkflows();this.workflows_$.set(e)}catch(e){this.globalError_CS.showError(e,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleCreateNew(){this.isCreating_$.set(!0),this.editingWorkflow_$.set(Ve()),this.persistDraft()}handleEdit(e){this.isCreating_$.set(!1),this.editingWorkflow_$.set(S(v({},e),{phases:[...e.phases]}))}handleCancel(){this.editingWorkflow_$.set(null),$.clear()}handleSave(){return x(this,null,function*(){let e=this.editingWorkflow_$();if(e)try{this.isLoading_$.set(!0),this.isCreating_$()?yield this.workflow_DS.createWorkflow({name:e.name,description:e.description,workflowType:e.workflowType,isTemplate:e.isTemplate,masterPrompt:e.masterPrompt,phases:e.phases,generationHistory:e.generationHistory}):e._id&&(yield this.workflow_DS.updateWorkflow({id:e._id,name:e.name,description:e.description,workflowType:e.workflowType,isTemplate:e.isTemplate,masterPrompt:e.masterPrompt,phases:e.phases,generationHistory:e.generationHistory})),this.editingWorkflow_$.set(null),$.clear(),yield this.loadWorkflows()}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleDelete(e){return x(this,null,function*(){if(e._id)try{this.isLoading_$.set(!0),yield this.workflow_DS.deleteWorkflow(e._id),yield this.loadWorkflows()}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isLoading_$.set(!1)}})}handleAddPhase(){let e=this.editingWorkflow_$();if(!e)return;let t=ue(e.phases.length);this.editingWorkflow_$.set(S(v({},e),{phases:[...e.phases,t]})),this.persistDraft()}handleRemovePhase(e){let t=this.editingWorkflow_$();if(!t)return;let r=t.phases.filter((a,_)=>_!==e);this.editingWorkflow_$.set(S(v({},t),{phases:r})),this.persistDraft()}handlePhaseFieldChange(e){let t=this.editingWorkflow_$();if(!t)return;let r=[...t.phases];r[e.index]=S(v({},r[e.index]),{[e.field]:e.value}),this.editingWorkflow_$.set(S(v({},t),{phases:r})),this.persistDraft()}handleGenerationPromptChange(e){this.generationPrompt_$.set(e),this.persistDraft()}handleGenerate(){return x(this,null,function*(){let e=this.generationPrompt_$().trim();if(e)try{this.isGenerating_$.set(!0);let t=this.selectedProvider_$(),r=this.selectedModel_$(),a=yield this.workflow_DS.generateWorkflow({description:e,provider:t||void 0,model:r||void 0}),_={type:"generation",prompt:e,timestamp:new Date().toISOString()};this.editingWorkflow_$.set({name:a.name??"",description:a.description??"",workflowType:a.workflowType??"development",isTemplate:a.isTemplate??!1,masterPrompt:a.masterPrompt??"",phases:Array.isArray(a.phases)?a.phases:[],generationHistory:[_]})}catch(t){this.globalError_CS.showError(t,"workflow-settings")}finally{this.isGenerating_$.set(!1)}})}handleModificationPromptChange(e){this.modificationPrompt_$.set(e),this.persistDraft()}handleModify(){return x(this,null,function*(){let e=this.modificationPrompt_$().trim(),t=this.editingWorkflow_$();if(!(!e||!t))try{this.isModifying_$.set(!0);let r=this.selectedProvider_$(),a=this.selectedModel_$(),_=yield this.workflow_DS.modifyWorkflow({currentWorkflow:t,modificationDescription:e,provider:r||void 0,model:a||void 0}),W={type:"modification",prompt:e,timestamp:new Date().toISOString()},f=t.generationHistory??[];this.editingWorkflow_$.set({_id:t._id,name:_.name??"",description:_.description??"",workflowType:_.workflowType??"development",isTemplate:_.isTemplate??!1,masterPrompt:_.masterPrompt??"",phases:Array.isArray(_.phases)?_.phases:[],generationHistory:[...f,W]}),this.persistDraft()}catch(r){this.globalError_CS.showError(r,"workflow-settings")}finally{this.isModifying_$.set(!1)}})}loadAvailableModels(){return x(this,null,function*(){try{let e=yield this.modelRegistry_DS.loadList({enabled:!0});this.availableModels_$.set(e)}catch(e){this.globalError_CS.showError(e,"workflow-settings")}})}handleModelSelectionChange(e){if(!e){this.selectedProvider_$.set(""),this.selectedModel_$.set("");return}let t=e.indexOf(":");t!==-1&&(this.selectedProvider_$.set(e.substring(0,t)),this.selectedModel_$.set(e.substring(t+1)),this.persistDraft())}handleToggleBestPractices(){this.isBestPracticesOpen_$.set(!this.isBestPracticesOpen_$())}handleFieldChange(e,t){let r=this.editingWorkflow_$();r&&(this.editingWorkflow_$.set(S(v({},r),{[e]:t})),this.persistDraft())}handleCopyMarkdown(){return x(this,null,function*(){let e=this.editingWorkflow_$();if(!e)return;let t=[];t.push(`# ${e.name||"N\xE9vtelen workflow"}`),t.push(""),e.description&&(t.push(`> ${e.description}`),t.push("")),t.push("| Mez\u0151 | \xC9rt\xE9k |"),t.push("|------|-------|"),t.push(`| T\xEDpus | ${e.workflowType} |`),t.push(`| Sablon | ${e.isTemplate?"igen":"nem"} |`),t.push(`| F\xE1zisok sz\xE1ma | ${e.phases.length} |`),t.push(""),e.masterPrompt&&(t.push("## Vez\xE9rprompt (master prompt)"),t.push(""),t.push(e.masterPrompt),t.push("")),t.push("## F\xE1zisok"),t.push("");for(let r of e.phases){if(t.push(`### ${r.order+1}. ${r.title||"N\xE9vtelen f\xE1zis"}`),t.push(""),r.goal&&(t.push(`**C\xE9l:** ${r.goal}`),t.push("")),r.phasePrompt&&(t.push("**F\xE1zis prompt:**"),t.push(""),t.push(r.phasePrompt),t.push("")),r.constraints.length){t.push("**Megk\xF6t\xE9sek:**");for(let a of r.constraints)t.push(`- ${a}`);t.push("")}if(r.dod.length){t.push("**Definition of Done:**");for(let a of r.dod)t.push(`- ${a}`);t.push("")}r.repeatUntilDone&&(t.push("*Ism\xE9tl\u0151d\u0151 f\xE1zis (am\xEDg PHASE_DONE)*"),t.push(""))}try{yield navigator.clipboard.writeText(t.join(`
|
|
2
2
|
`)),this.isCopied_$.set(!0),setTimeout(()=>this.isCopied_$.set(!1),2e3)}catch{}})}persistDraft(){$.save({generationPrompt:this.generationPrompt_$(),modificationPrompt:this.modificationPrompt_$(),selectedProvider:this.selectedProvider_$(),selectedModel:this.selectedModel_$(),isCreating:this.isCreating_$(),editingWorkflow:this.editingWorkflow_$()})}restoreDraft(){let e=$.get();e&&(this.generationPrompt_$.set(e.generationPrompt),this.modificationPrompt_$.set(e.modificationPrompt),this.selectedProvider_$.set(e.selectedProvider),this.selectedModel_$.set(e.selectedModel),e.editingWorkflow&&(this.isCreating_$.set(e.isCreating),this.editingWorkflow_$.set(e.editingWorkflow)))}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=R({type:l,selectors:[["app-ccap-workflow-settings"]],standalone:!0,features:[Y],decls:7,vars:3,consts:[[1,"max-w-4xl","mx-auto","p-4","gt-xs:p-6","text-neutral-100"],[1,"flex","items-center","justify-between","mb-6"],[1,"text-2xl","font-bold"],[1,"px-4","py-2","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors","text-sm"],[1,"space-y-4"],[1,"px-4","py-2","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors","text-sm",3,"click"],[1,"text-neutral-500","text-sm"],[1,"rounded-lg","border","border-neutral-700","bg-ccapSurface/50","p-6","text-center","text-neutral-500"],[1,"space-y-3"],[1,"rounded-lg","border","border-neutral-700","bg-ccapSurface/50","p-4","flex","items-start","justify-between","gap-4"],[1,"flex-1","min-w-0"],[1,"flex","items-center","gap-2","mb-1"],[1,"font-semibold","text-neutral-100","truncate"],[1,"text-xs","px-2","py-0.5","rounded","bg-neutral-700","text-neutral-300"],[1,"text-xs","px-2","py-0.5","rounded","bg-neonDefault/20","text-neonDefault"],[1,"text-xs","px-2","py-0.5","rounded","bg-neonCyan/20","text-neonCyan"],[1,"text-neutral-400","text-sm","truncate"],[1,"text-neutral-500","text-xs","mt-1"],[1,"flex","gap-2","shrink-0"],[1,"px-3","py-1.5","text-xs","text-neutral-500","italic"],[1,"px-3","py-1.5","text-xs","border","border-neutral-600","rounded","hover:border-neonDefault","hover:text-neonDefault","transition-colors",3,"click"],[1,"px-3","py-1.5","text-xs","border","border-neutral-600","rounded","text-red-400","hover:border-red-400","transition-colors",3,"click"],[1,"flex","items-center","gap-2","mb-2"],[1,"text-sm","text-neutral-400","hover:text-neutral-200","transition-colors",3,"click"],[1,"text-neutral-600"],[1,"text-sm","text-neutral-300"],["title","Workflow markdown m\xE1sol\xE1sa v\xE1g\xF3lapra",1,"ml-auto","p-1.5","transition-colors","rounded","hover:bg-neutral-700/50",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-4","h-4"],[1,"rounded-lg","border","border-neonDefault/30","bg-neonDefault/5","p-4","space-y-3"],[1,"rounded-lg","border","border-amber-500/30","bg-amber-500/5","p-4","space-y-3"],[1,"rounded-lg","border","border-neutral-700","bg-neutral-800/40"],[1,"w-full","flex","items-center","gap-2","px-4","py-3","text-left","text-sm","text-neutral-300","hover:text-neutral-100","transition-colors",3,"click"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-3","h-3","shrink-0","transition-transform","duration-150"],["points","6 9 12 15 18 9"],[1,"font-medium"],[1,"text-xs","text-neutral-500","ml-auto"],[1,"px-4","pb-4","text-sm","text-neutral-400","space-y-4","border-t","border-neutral-700","pt-3"],[1,"grid","grid-cols-1","md:grid-cols-2","gap-4"],[1,"block","text-xs","text-neutral-400","mb-1"],["type","text",1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-neonDefault","outline-none",3,"ngModelChange","ngModel"],[1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-neonDefault","outline-none",3,"ngModelChange","ngModel"],[3,"value"],[1,"flex","items-center","gap-2"],["type","checkbox",1,"accent-neonDefault",3,"ngModelChange","ngModel"],["rows","4",1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-neonDefault","outline-none","resize-y",3,"ngModelChange","ngModel"],[1,"flex","items-center","justify-between","mb-2"],[1,"text-lg","font-semibold"],[1,"px-3","py-1","text-xs","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors",3,"click"],[1,"rounded-lg","border","border-neutral-700","bg-neutral-800/50","p-4","mb-3"],[1,"flex","gap-3","pt-2"],[1,"px-5","py-2","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors","text-sm",3,"click","disabled"],[1,"px-5","py-2","border","border-neutral-600","text-neutral-400","rounded","hover:border-neutral-400","transition-colors","text-sm",3,"click"],["points","20 6 9 17 4 12"],["x","9","y","9","width","13","height","13","rx","2","ry","2"],["d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"],[1,"text-sm","font-medium","text-neonDefault"],[1,"text-xs","text-neutral-500"],["rows","3","placeholder","Pl.: Szeretn\xE9k egy workflow-t, ami el\u0151sz\xF6r \xE1tn\xE9zi a k\xF3dot, azt\xE1n meg\xEDrja a teszteket, v\xE9g\xFCl review-olja az eg\xE9szet...",1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-neonDefault","outline-none","resize-y","placeholder:text-neutral-600",3,"ngModelChange","ngModel"],[1,"flex","items-center","gap-3"],[1,"bg-neutral-800","border","border-neutral-600","rounded","px-2","py-1.5","text-xs","text-neutral-100","focus:border-neonDefault","outline-none",3,"ngModelChange","ngModel"],["value",""],[1,"px-4","py-2","border","border-neonDefault","text-neonDefault","rounded","hover:bg-neonDefault/10","transition-colors","text-sm","disabled:opacity-40","disabled:cursor-not-allowed",3,"click","disabled"],[1,"text-sm","font-medium","text-amber-400"],["rows","3","placeholder","Pl.: Adj hozz\xE1 egy tesztel\xE9si f\xE1zist a megval\xF3s\xEDt\xE1s ut\xE1n, \xE9s tedd r\xE9szletesebb\xE9 a review f\xE1zis prompt-j\xE1t...",1,"w-full","bg-neutral-800","border","border-neutral-600","rounded","px-3","py-2","text-sm","text-neutral-100","focus:border-amber-400","outline-none","resize-y","placeholder:text-neutral-600",3,"ngModelChange","ngModel"],[1,"bg-neutral-800","border","border-neutral-600","rounded","px-2","py-1.5","text-xs","text-neutral-100","focus:border-amber-400","outline-none",3,"ngModelChange","ngModel"],[1,"px-4","py-2","border","border-amber-500","text-amber-400","rounded","hover:bg-amber-500/10","transition-colors","text-sm","disabled:opacity-40","disabled:cursor-not-allowed",3,"click","disabled"],[1,"text-neutral-200","font-semibold","mb-1"],[1,"text-neutral-300"],[1,"list-disc","list-inside","space-y-1"],[1,"flex","flex-wrap","gap-2","text-xs"],[1,"px-2","py-1","rounded","bg-neutral-700","text-neutral-300"],[1,"mt-2","text-xs","text-neutral-500"],[1,"flex","items-center","justify-between","mb-3"],[1,"text-sm","font-medium","text-neutral-300"],[1,"text-xs","text-red-400","hover:text-red-300","transition-colors",3,"click"],[1,"grid","grid-cols-1","md:grid-cols-2","gap-3","mb-3"],[1,"block","text-xs","text-neutral-500","mb-1"],["type","text",1,"w-full","bg-neutral-900","border","border-neutral-600","rounded","px-2","py-1.5","text-sm","text-neutral-100","focus:border-neonDefault","outline-none",3,"ngModelChange","ngModel"],[1,"mb-3"],["rows","3",1,"w-full","bg-neutral-900","border","border-neutral-600","rounded","px-2","py-1.5","text-sm","text-neutral-100","focus:border-neonDefault","outline-none","resize-y",3,"ngModelChange","ngModel"],[1,"text-xs","text-neutral-400"]],template:function(t,r){t&1&&(i(0,"div",0)(1,"div",1)(2,"h1",2),o(3,"Workflow be\xE1ll\xEDt\xE1sok"),n(),k(4,ce,2,0,"button",3),n(),k(5,Ce,3,1)(6,Fe,59,20,"div",4),n()),t&2&&(s(4),h(r.editingWorkflow_$()?-1:4),s(),h(r.editingWorkflow_$()?-1:5),s(),h(r.editingWorkflow_$()?6:-1))},dependencies:[V,j,oe,re,ee,Z,ie,te,ne],encapsulation:2})}return l})();var je=[{path:"",pathMatch:"full",component:O}],mt=(()=>{class l{static \u0275fac=function(t){return new(t||l)};static \u0275mod=q({type:l});static \u0275inj=U({imports:[V,j,X.forChild(je),O]})}return l})();export{mt as WorkflowSettings_Module};
|
|
3
|
-
//# sourceMappingURL=wfs.module-
|
|
3
|
+
//# sourceMappingURL=wfs.module-2QEI4QBQ.js.map
|
package/package.json
CHANGED
|
@@ -89,42 +89,27 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
|
|
|
89
89
|
* írják, a handleTerminalProcessExit kiolvassa és törli, és átadja a classifyExitStatus-nak.
|
|
90
90
|
*/
|
|
91
91
|
private pendingKillReasons;
|
|
92
|
-
/**
|
|
93
|
-
* Output callback beállítása (az adapter hívja bootstrap-kor).
|
|
94
|
-
*/
|
|
92
|
+
/** Output callback (adapter bootstrap). */
|
|
95
93
|
setOnOutput(callback: CC_OutputCallback_Type): void;
|
|
96
|
-
/**
|
|
97
|
-
* Process state callback beállítása (az adapter hívja bootstrap-kor).
|
|
98
|
-
*/
|
|
94
|
+
/** Process state callback (adapter bootstrap). */
|
|
99
95
|
setOnProcessStateChange(callback: CC_ProcessStateCallback_Type): void;
|
|
100
96
|
/**
|
|
101
|
-
* Terminal mode be/kikapcsolása (settings alapján
|
|
102
|
-
*
|
|
103
|
-
* platformon a flag mindig false marad — a spawnTerminalRunner eleve elutasítja ezeket
|
|
104
|
-
* (`CCAP-CCS-TERMINAL-PLATFORM-FALLBACK`), ezért a flag bekapcsolása sem érne semmit.
|
|
97
|
+
* Terminal mode be/kikapcsolása (settings alapján). win32/linux esetén a flag effektív;
|
|
98
|
+
* más platformon false marad (spawnTerminalRunner CCAP-CCS-TERMINAL-PLATFORM-FALLBACK).
|
|
105
99
|
*/
|
|
106
100
|
setTerminalMode(enabled: boolean): void;
|
|
107
101
|
/**
|
|
108
|
-
* Runner reconnect grace period
|
|
109
|
-
*
|
|
110
|
-
* Érvénytelen érték esetén a default marad (3600s = 1h, cycle 749 user-bump).
|
|
111
|
-
* Range: 5..14400s (REQ-CC-RUNNER-GRACE-LONG-001).
|
|
102
|
+
* Runner reconnect grace period (sec) — settings beolvasás után. Range 5..14400s
|
|
103
|
+
* (REQ-CCSESS-TR-005, REQ-CC-RUNNER-GRACE-LONG-001), invalid → default 3600s marad.
|
|
112
104
|
*/
|
|
113
105
|
setRunnerGracePeriodSec(sec: number): void;
|
|
114
|
-
/**
|
|
115
|
-
* Shared sessionConfigs map referencia beállítása (az adapter hívja bootstrap-kor).
|
|
116
|
-
* A sendInputViaTerminal és reloadSessionConfigFromDb módszerek használják.
|
|
117
|
-
*/
|
|
106
|
+
/** Shared sessionConfigs map ref (adapter bootstrap). sendInputViaTerminal + reload használja. */
|
|
118
107
|
setSessionConfigs(configs: Map<string, CC_SessionConfig_Interface>): void;
|
|
119
|
-
/**
|
|
120
|
-
* StoppedSessions set referencia beállítása (az adapter hívja bootstrap-kor).
|
|
121
|
-
* A handleTerminalProcessExit használja, hogy stop execution után waitingInput-ra váltson.
|
|
122
|
-
*/
|
|
108
|
+
/** StoppedSessions set ref (adapter bootstrap). handleTerminalProcessExit waitingInput-ra. */
|
|
123
109
|
setStoppedSessions(stoppedSessions: Set<string>): void;
|
|
124
110
|
/**
|
|
125
|
-
* REQ-CC-EXIT-REASON-001 — pendingKillReasons map
|
|
126
|
-
*
|
|
127
|
-
* is ír. A handleTerminalProcessExit használja a kill ok kiolvasásához.
|
|
111
|
+
* REQ-CC-EXIT-REASON-001 — pendingKillReasons map ref (adapter bootstrap, shared).
|
|
112
|
+
* markPendingKill ír, handleTerminalProcessExit olvas + classifyExitStatus reason-suffix.
|
|
128
113
|
*/
|
|
129
114
|
setPendingKillReasons(map: Map<string, string>): void;
|
|
130
115
|
/**
|
|
@@ -217,10 +202,8 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
|
|
|
217
202
|
sessionId: string;
|
|
218
203
|
}): boolean;
|
|
219
204
|
/**
|
|
220
|
-
* Reconnect utáni buffered output lekérése
|
|
221
|
-
*
|
|
222
|
-
* alatt összegyűjtött output-ot feldolgozza (event rögzítés, stream push).
|
|
223
|
-
* Ha nincs pending output, üres tömböt ad vissza.
|
|
205
|
+
* Reconnect utáni buffered output lekérése + törlése (manager runtimeState
|
|
206
|
+
* létrehozás után hívja a recovery flush-hoz). Üres ha nincs pending.
|
|
224
207
|
*/
|
|
225
208
|
consumePendingBufferedOutput(params: {
|
|
226
209
|
sessionId: string;
|
|
@@ -249,10 +232,9 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
|
|
|
249
232
|
terminalId: string;
|
|
250
233
|
}>;
|
|
251
234
|
/**
|
|
252
|
-
* Runner sequence state
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
* drop) NEM hívja — ott a runner ugyanaz a process, és a sequence folytatódik.
|
|
235
|
+
* Runner sequence state reset — runner full-exit (terminate / lifecycle-terminate)
|
|
236
|
+
* esetén kell hívni, mert új runner 1-től kezdi a sequence-t. Disconnect (socket
|
|
237
|
+
* drop) NEM hívja — ott ugyanaz a process, sequence folytatódik.
|
|
256
238
|
*/
|
|
257
239
|
clearRunnerSequenceState(params: {
|
|
258
240
|
sessionId: string;
|
|
@@ -271,11 +253,9 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
|
|
|
271
253
|
*/
|
|
272
254
|
private waitForTerminalRegister;
|
|
273
255
|
/**
|
|
274
|
-
* Terminal runner
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
* eltárolódik a `runnerVersions` Map-ben — később a no-ACK error context +
|
|
278
|
-
* version-info endpoint használja a verzió-mismatch detektáláshoz.
|
|
256
|
+
* Terminal runner cc:register event handler (sessionId + terminalId párral).
|
|
257
|
+
* Cycle 781: `runnerVersion` mező → `runnerVersions` Map-be (no-ACK error context
|
|
258
|
+
* + version-info endpoint mismatch-detektálás).
|
|
279
259
|
*/
|
|
280
260
|
private handleTerminalRegister;
|
|
281
261
|
/**
|
|
@@ -308,11 +288,8 @@ export declare class CC_AdapterTerminal_ControlService extends DyNTS_SingletonSe
|
|
|
308
288
|
*/
|
|
309
289
|
private handleTerminalBufferedOutput;
|
|
310
290
|
/**
|
|
311
|
-
* Runner buffer overflow
|
|
312
|
-
*
|
|
313
|
-
* runnerOverflow event-et a session event-log-jába, és az output callback-en
|
|
314
|
-
* keresztül propagálja a manager-nek (az stream-eli a kliens felé).
|
|
315
|
-
* REQ-CCSESS-TR-006.
|
|
291
|
+
* Runner buffer overflow (cc:overflow) — runnerOverflow event-et logol az event-log-ba
|
|
292
|
+
* + output callback-en továbbít a manager-nek (REQ-CCSESS-TR-006).
|
|
316
293
|
*/
|
|
317
294
|
private handleTerminalOverflow;
|
|
318
295
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cc-adapter-terminal.control-service.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cc-adapter-terminal.control-service.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CC_AdapterTerminal_ControlService = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const child_process_1 = require("child_process");
|
|
6
|
+
const fs = tslib_1.__importStar(require("fs"));
|
|
6
7
|
const path = tslib_1.__importStar(require("path"));
|
|
7
8
|
const crypto_1 = require("crypto");
|
|
8
9
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
@@ -122,57 +123,42 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
|
|
|
122
123
|
*/
|
|
123
124
|
pendingKillReasons = new Map();
|
|
124
125
|
// ── Callback setters ───────────────────────────────────────
|
|
125
|
-
/**
|
|
126
|
-
* Output callback beállítása (az adapter hívja bootstrap-kor).
|
|
127
|
-
*/
|
|
126
|
+
/** Output callback (adapter bootstrap). */
|
|
128
127
|
setOnOutput(callback) {
|
|
129
128
|
this.onOutput = callback;
|
|
130
129
|
}
|
|
131
|
-
/**
|
|
132
|
-
* Process state callback beállítása (az adapter hívja bootstrap-kor).
|
|
133
|
-
*/
|
|
130
|
+
/** Process state callback (adapter bootstrap). */
|
|
134
131
|
setOnProcessStateChange(callback) {
|
|
135
132
|
this.onProcessStateChange = callback;
|
|
136
133
|
}
|
|
137
134
|
/**
|
|
138
|
-
* Terminal mode be/kikapcsolása (settings alapján
|
|
139
|
-
*
|
|
140
|
-
* platformon a flag mindig false marad — a spawnTerminalRunner eleve elutasítja ezeket
|
|
141
|
-
* (`CCAP-CCS-TERMINAL-PLATFORM-FALLBACK`), ezért a flag bekapcsolása sem érne semmit.
|
|
135
|
+
* Terminal mode be/kikapcsolása (settings alapján). win32/linux esetén a flag effektív;
|
|
136
|
+
* más platformon false marad (spawnTerminalRunner CCAP-CCS-TERMINAL-PLATFORM-FALLBACK).
|
|
142
137
|
*/
|
|
143
138
|
setTerminalMode(enabled) {
|
|
144
139
|
const platformSupportsTerminalMode = process.platform === 'win32' || process.platform === 'linux';
|
|
145
140
|
this.isTerminalModeEnabled = enabled && platformSupportsTerminalMode;
|
|
146
141
|
}
|
|
147
142
|
/**
|
|
148
|
-
* Runner reconnect grace period
|
|
149
|
-
*
|
|
150
|
-
* Érvénytelen érték esetén a default marad (3600s = 1h, cycle 749 user-bump).
|
|
151
|
-
* Range: 5..14400s (REQ-CC-RUNNER-GRACE-LONG-001).
|
|
143
|
+
* Runner reconnect grace period (sec) — settings beolvasás után. Range 5..14400s
|
|
144
|
+
* (REQ-CCSESS-TR-005, REQ-CC-RUNNER-GRACE-LONG-001), invalid → default 3600s marad.
|
|
152
145
|
*/
|
|
153
146
|
setRunnerGracePeriodSec(sec) {
|
|
154
147
|
if (Number.isFinite(sec) && sec >= 5 && sec <= 14400) {
|
|
155
148
|
this.runnerGracePeriodSec = Math.floor(sec);
|
|
156
149
|
}
|
|
157
150
|
}
|
|
158
|
-
/**
|
|
159
|
-
* Shared sessionConfigs map referencia beállítása (az adapter hívja bootstrap-kor).
|
|
160
|
-
* A sendInputViaTerminal és reloadSessionConfigFromDb módszerek használják.
|
|
161
|
-
*/
|
|
151
|
+
/** Shared sessionConfigs map ref (adapter bootstrap). sendInputViaTerminal + reload használja. */
|
|
162
152
|
setSessionConfigs(configs) {
|
|
163
153
|
this.sessionConfigs = configs;
|
|
164
154
|
}
|
|
165
|
-
/**
|
|
166
|
-
* StoppedSessions set referencia beállítása (az adapter hívja bootstrap-kor).
|
|
167
|
-
* A handleTerminalProcessExit használja, hogy stop execution után waitingInput-ra váltson.
|
|
168
|
-
*/
|
|
155
|
+
/** StoppedSessions set ref (adapter bootstrap). handleTerminalProcessExit waitingInput-ra. */
|
|
169
156
|
setStoppedSessions(stoppedSessions) {
|
|
170
157
|
this.stoppedSessions = stoppedSessions;
|
|
171
158
|
}
|
|
172
159
|
/**
|
|
173
|
-
* REQ-CC-EXIT-REASON-001 — pendingKillReasons map
|
|
174
|
-
*
|
|
175
|
-
* is ír. A handleTerminalProcessExit használja a kill ok kiolvasásához.
|
|
160
|
+
* REQ-CC-EXIT-REASON-001 — pendingKillReasons map ref (adapter bootstrap, shared).
|
|
161
|
+
* markPendingKill ír, handleTerminalProcessExit olvas + classifyExitStatus reason-suffix.
|
|
176
162
|
*/
|
|
177
163
|
setPendingKillReasons(map) {
|
|
178
164
|
this.pendingKillReasons = map;
|
|
@@ -383,10 +369,8 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
|
|
|
383
369
|
return socket != null && socket.connected === true;
|
|
384
370
|
}
|
|
385
371
|
/**
|
|
386
|
-
* Reconnect utáni buffered output lekérése
|
|
387
|
-
*
|
|
388
|
-
* alatt összegyűjtött output-ot feldolgozza (event rögzítés, stream push).
|
|
389
|
-
* Ha nincs pending output, üres tömböt ad vissza.
|
|
372
|
+
* Reconnect utáni buffered output lekérése + törlése (manager runtimeState
|
|
373
|
+
* létrehozás után hívja a recovery flush-hoz). Üres ha nincs pending.
|
|
390
374
|
*/
|
|
391
375
|
consumePendingBufferedOutput(params) {
|
|
392
376
|
const items = this.pendingBufferedOutputs.get(params.sessionId);
|
|
@@ -422,6 +406,28 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
|
|
|
422
406
|
}),
|
|
423
407
|
});
|
|
424
408
|
}
|
|
409
|
+
// BUG-CC-TERM-SILENT-SPAWN-001 (cycle 812): pre-spawn cwd validation
|
|
410
|
+
// (REQ-SYS-SILENT-001). A `spawn(..., {cwd})` bad-cwd esetén ASYNC ENOENT-et
|
|
411
|
+
// dob — sync return mégis `spawned=true`, az async error csak DyFM_Log.info-ba
|
|
412
|
+
// megy → user 30s REG-TIMEOUT + cycle 801 queue-fallback 10×30s csendes loop-ot
|
|
413
|
+
// lát. Tipikus okozó: cross-platform stale workspacePath (`E:\TestZone\...` Linux-on).
|
|
414
|
+
if (!fs.existsSync(params.workspacePath)) {
|
|
415
|
+
throw new ccap_error_control_model_1.CCAP_Error({
|
|
416
|
+
message: `CC Session terminal workspace path does not exist: ${params.workspacePath}`
|
|
417
|
+
+ ' — terminal spawn aborted (cycle 812 pre-spawn fail-fast)',
|
|
418
|
+
errorCode: 'CCAP-CCS-WORKSPACE-NOT-FOUND',
|
|
419
|
+
status: 400,
|
|
420
|
+
error: new Error(`workspace path does not exist: ${params.workspacePath}`),
|
|
421
|
+
additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
|
|
422
|
+
additionalContext: {
|
|
423
|
+
source: 'cc-adapter-terminal | spawnTerminalRunner | pre-spawn-cwd-validation',
|
|
424
|
+
sessionId: params.sessionId,
|
|
425
|
+
workspacePath: params.workspacePath,
|
|
426
|
+
platform: process.platform,
|
|
427
|
+
},
|
|
428
|
+
}),
|
|
429
|
+
});
|
|
430
|
+
}
|
|
425
431
|
const terminalId = (0, crypto_1.randomUUID)();
|
|
426
432
|
const ccapId = instance_id_service_1.ExS_InstanceId_Service.getInstance().getInstanceId() ?? '';
|
|
427
433
|
// DB rekord létrehozása.
|
|
@@ -581,10 +587,9 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
|
|
|
581
587
|
return { terminalId: terminalId };
|
|
582
588
|
}
|
|
583
589
|
/**
|
|
584
|
-
* Runner sequence state
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
* drop) NEM hívja — ott a runner ugyanaz a process, és a sequence folytatódik.
|
|
590
|
+
* Runner sequence state reset — runner full-exit (terminate / lifecycle-terminate)
|
|
591
|
+
* esetén kell hívni, mert új runner 1-től kezdi a sequence-t. Disconnect (socket
|
|
592
|
+
* drop) NEM hívja — ott ugyanaz a process, sequence folytatódik.
|
|
588
593
|
*/
|
|
589
594
|
clearRunnerSequenceState(params) {
|
|
590
595
|
this.lastProcessedRunnerSequence.delete(params.sessionId);
|
|
@@ -826,11 +831,9 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
|
|
|
826
831
|
});
|
|
827
832
|
}
|
|
828
833
|
/**
|
|
829
|
-
* Terminal runner
|
|
830
|
-
*
|
|
831
|
-
*
|
|
832
|
-
* eltárolódik a `runnerVersions` Map-ben — később a no-ACK error context +
|
|
833
|
-
* version-info endpoint használja a verzió-mismatch detektáláshoz.
|
|
834
|
+
* Terminal runner cc:register event handler (sessionId + terminalId párral).
|
|
835
|
+
* Cycle 781: `runnerVersion` mező → `runnerVersions` Map-be (no-ACK error context
|
|
836
|
+
* + version-info endpoint mismatch-detektálás).
|
|
834
837
|
*/
|
|
835
838
|
handleTerminalRegister(params) {
|
|
836
839
|
const sessionId = (params.data.sessionId ?? '').trim();
|
|
@@ -1205,11 +1208,8 @@ class CC_AdapterTerminal_ControlService extends nts_dynamo_1.DyNTS_SingletonServ
|
|
|
1205
1208
|
}
|
|
1206
1209
|
}
|
|
1207
1210
|
/**
|
|
1208
|
-
* Runner buffer overflow
|
|
1209
|
-
*
|
|
1210
|
-
* runnerOverflow event-et a session event-log-jába, és az output callback-en
|
|
1211
|
-
* keresztül propagálja a manager-nek (az stream-eli a kliens felé).
|
|
1212
|
-
* REQ-CCSESS-TR-006.
|
|
1211
|
+
* Runner buffer overflow (cc:overflow) — runnerOverflow event-et logol az event-log-ba
|
|
1212
|
+
* + output callback-en továbbít a manager-nek (REQ-CCSESS-TR-006).
|
|
1213
1213
|
*/
|
|
1214
1214
|
handleTerminalOverflow(params) {
|
|
1215
1215
|
// A sessionId-t a socket → sessionId map-ből visszafejtjük (a socket connection idején regisztrálva).
|