@ngocsangairvds/vsaf 5.1.2 → 5.1.3
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 +6 -4
- package/packages/cli/dist/index.d.ts +1 -1
- package/packages/cli/dist/index.js +1 -1
- package/packages/core/dist/index.d.ts +5 -0
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +13 -1
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/isolation/isolation-policy.d.ts +19 -0
- package/packages/core/dist/isolation/isolation-policy.d.ts.map +1 -0
- package/packages/core/dist/isolation/isolation-policy.js +52 -0
- package/packages/core/dist/isolation/isolation-policy.js.map +1 -0
- package/packages/core/dist/providers/command-provider.d.ts +32 -0
- package/packages/core/dist/providers/command-provider.d.ts.map +1 -0
- package/packages/core/dist/providers/command-provider.js +148 -0
- package/packages/core/dist/providers/command-provider.js.map +1 -0
- package/packages/core/dist/providers/default-adapters.js +2 -2
- package/packages/core/dist/providers/default-adapters.js.map +1 -1
- package/packages/core/dist/runtime/executor.d.ts +44 -0
- package/packages/core/dist/runtime/executor.d.ts.map +1 -0
- package/packages/core/dist/runtime/executor.js +123 -0
- package/packages/core/dist/runtime/executor.js.map +1 -0
- package/packages/core/dist/runtime/index.d.ts +5 -0
- package/packages/core/dist/runtime/index.d.ts.map +1 -0
- package/packages/core/dist/runtime/index.js +30 -0
- package/packages/core/dist/runtime/index.js.map +1 -0
- package/packages/core/dist/runtime/legacy-loader.d.ts +10 -0
- package/packages/core/dist/runtime/legacy-loader.d.ts.map +1 -0
- package/packages/core/dist/runtime/legacy-loader.js +110 -0
- package/packages/core/dist/runtime/legacy-loader.js.map +1 -0
- package/packages/core/dist/runtime/load-workflow.d.ts +10 -0
- package/packages/core/dist/runtime/load-workflow.d.ts.map +1 -0
- package/packages/core/dist/runtime/load-workflow.js +208 -0
- package/packages/core/dist/runtime/load-workflow.js.map +1 -0
- package/packages/core/dist/runtime/types.d.ts +28 -0
- package/packages/core/dist/runtime/types.d.ts.map +1 -0
- package/packages/core/dist/runtime/types.js +3 -0
- package/packages/core/dist/runtime/types.js.map +1 -0
- package/packages/core/dist/store/sqlite-schema.d.ts +2 -0
- package/packages/core/dist/store/sqlite-schema.d.ts.map +1 -0
- package/packages/core/dist/store/sqlite-schema.js +64 -0
- package/packages/core/dist/store/sqlite-schema.js.map +1 -0
- package/packages/core/dist/store/sqlite-workflow-store.d.ts +85 -0
- package/packages/core/dist/store/sqlite-workflow-store.d.ts.map +1 -0
- package/packages/core/dist/store/sqlite-workflow-store.js +208 -0
- package/packages/core/dist/store/sqlite-workflow-store.js.map +1 -0
- package/packages/web/dist/web/3rdpartylicenses.txt +5 -212
- package/packages/web/dist/web/browser/chunk-IPMFXW6N.js +1 -0
- package/packages/web/dist/web/browser/chunk-IX2QWMX2.js +1 -0
- package/packages/web/dist/web/browser/chunk-QMAH5NZC.js +1 -0
- package/packages/web/dist/web/browser/{chunk-7PK6Q4UU.js → chunk-RGFLNLPM.js} +1 -1
- package/packages/web/dist/web/browser/chunk-RKWDHBN3.js +5 -0
- package/packages/web/dist/web/browser/chunk-XGYEZIV4.js +1 -0
- package/packages/web/dist/web/browser/index.html +1 -1
- package/packages/web/dist/web/browser/main-IIUZVPMI.js +1 -0
- package/packages/web/dist/web/browser/chunk-2QJBTGYU.js +0 -3
- package/packages/web/dist/web/browser/chunk-3VYLP4FZ.js +0 -1
- package/packages/web/dist/web/browser/chunk-6HRQZQXD.js +0 -1
- package/packages/web/dist/web/browser/chunk-O7TQGEFF.js +0 -8
- package/packages/web/dist/web/browser/chunk-PWF76NCM.js +0 -1
- package/packages/web/dist/web/browser/main-AZU5W3KI.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as M}from"./chunk-RGFLNLPM.js";import{C as u,D as l,E,F as w,G as p,H as r,I as i,J as N,M as m,O as o,P as d,Q as _,R,c as y,ea as v,ga as b,i as S,ka as D,l as c,na as k,p as I,u as s,x as g}from"./chunk-RKWDHBN3.js";var C=class a{zone=c(I);connect(t){return new y(e=>{let n=new EventSource(`/api/runs/${t}/events`),x=["node:start","node:complete","node:skip","node:fail","run:complete","run:state"];for(let f of x)n.addEventListener(f,A=>{this.zone.run(()=>{e.next({type:f,data:JSON.parse(A.data)})})});return n.onerror=()=>{this.zone.run(()=>{e.complete()}),n.close()},()=>{n.close()}})}static \u0275fac=function(e){return new(e||a)};static \u0275prov=S({token:a,factory:a.\u0275fac,providedIn:"root"})};function $(a,t){if(a&1&&(r(0,"span",3),o(1),i()),a&2){let e=m();p("ngClass",e.typeBadgeClass),s(),d(e.type)}}function j(a,t){if(a&1&&(r(0,"span",4),o(1),i()),a&2){let e=m();s(),_("",(e.durationMs/1e3).toFixed(1),"s")}}function z(a,t){a&1&&(r(0,"span",5),o(1,"running..."),i())}function B(a,t){a&1&&(r(0,"span",6),o(1,"skipped"),i())}function P(a,t){a&1&&(r(0,"span",7),o(1,"FAILED"),i())}var h=class a{nodeId="";status="pending";type;durationMs;get statusIcon(){switch(this.status){case"completed":return"\u2713";case"running":return"\u25CF";case"failed":return"\u2717";case"skipped":return"\u2298";default:return"\u25CB"}}get statusIconClass(){switch(this.status){case"completed":return"text-green-400";case"running":return"text-blue-400 animate-pulse";case"failed":return"text-red-400";case"skipped":return"text-slate-500";default:return"text-slate-600"}}get statusTextClass(){switch(this.status){case"pending":return"text-slate-500";case"skipped":return"text-slate-500";default:return"text-slate-100"}}get typeBadgeClass(){switch(this.type){case"prompt":return"bg-purple-500/10 text-purple-400";case"bash":return"bg-amber-500/10 text-amber-400";case"command":return"bg-cyan-500/10 text-cyan-400";default:return"bg-slate-700 text-slate-400"}}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=g({type:a,selectors:[["app-node-status-row"]],inputs:{nodeId:"nodeId",status:"status",type:"type",durationMs:"durationMs"},decls:10,vars:9,consts:[[1,"flex","items-center","py-2.5","border-b","border-slate-800"],[1,"mr-3","text-sm",3,"ngClass"],[1,"flex-1",3,"ngClass"],[1,"text-xs","px-1.5","py-0.5","rounded","mr-2",3,"ngClass"],[1,"font-mono","text-xs","text-slate-400"],[1,"font-mono","text-xs","text-blue-400","animate-pulse"],[1,"text-xs","text-slate-500"],[1,"text-xs","text-red-400"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"span",1),o(2),i(),r(3,"span",2),o(4),i(),u(5,$,2,2,"span",3),u(6,j,2,1,"span",4),u(7,z,2,0,"span",5),u(8,B,2,0,"span",6),u(9,P,2,0,"span",7),i()),e&2&&(s(),p("ngClass",n.statusIconClass),s(),d(n.statusIcon),s(),p("ngClass",n.statusTextClass),s(),d(n.nodeId),s(),l(n.type?5:-1),s(),l(n.status==="completed"&&n.durationMs!==void 0?6:-1),s(),l(n.status==="running"?7:-1),s(),l(n.status==="skipped"?8:-1),s(),l(n.status==="failed"?9:-1))},dependencies:[b,v],encapsulation:2})};var J=(a,t)=>t.id;function Z(a,t){if(a&1&&(r(0,"span",6),o(1),i()),a&2){let e=m();p("ngClass",e.statusClass(e.run.status)),s(),R(" ",e.statusIcon(e.run.status)," ",e.run.status," ")}}function q(a,t){if(a&1&&N(0,"app-node-status-row",8),a&2){let e=t.$implicit;p("nodeId",e.id)("status",e.status)("durationMs",e.durationMs)}}function G(a,t){if(a&1&&(r(0,"div",9)(1,"span",10),o(2,"Elapsed: "),r(3,"span",11),o(4),i()(),r(5,"span",12),o(6,"Nodes: "),r(7,"span",13),o(8),i(),o(9,"/"),r(10,"span",14),o(11),i(),o(12," completed "),i()()),a&2){let e=m();s(4),d(e.elapsedDisplay),s(4),d(e.completedCount),s(3),d(e.nodes.length)}}var O=class a{route=c(D);api=c(M);sse=c(C);run;nodes=[];sseSub;timerInterval;startTime=Date.now();ngOnInit(){let t=this.route.snapshot.paramMap.get("runId");this.api.getRun(t).subscribe(e=>{this.run=e,this.startTime=new Date(e.startedAt).getTime(),this.rebuildNodeList()}),this.sseSub=this.sse.connect(t).subscribe(e=>{this.handleSseEvent(e)}),this.timerInterval=setInterval(()=>{},1e3)}ngOnDestroy(){this.sseSub?.unsubscribe(),this.timerInterval&&clearInterval(this.timerInterval)}handleSseEvent(t){let e=t.data,n=e.nodeId;switch(t.type){case"run:state":this.run=e,this.startTime=new Date(this.run.startedAt).getTime(),this.rebuildNodeList();break;case"node:start":this.updateNodeStatus(n,"running");break;case"node:complete":this.updateNodeStatus(n,"completed",e.durationMs);break;case"node:skip":this.updateNodeStatus(n,"skipped");break;case"node:fail":this.updateNodeStatus(n,"failed");break;case"run:complete":this.run&&(this.run.status=e.success?"completed":"failed");break}}rebuildNodeList(){this.run&&(this.nodes=Object.entries(this.run.nodes).map(([t,e])=>({id:t,status:e.status,durationMs:e.durationMs})))}updateNodeStatus(t,e,n){let x=this.nodes.find(f=>f.id===t);x?(x.status=e,n!==void 0&&(x.durationMs=n)):this.nodes.push({id:t,status:e,durationMs:n})}get completedCount(){return this.nodes.filter(t=>t.status==="completed").length}get elapsedDisplay(){let t=Math.floor((Date.now()-this.startTime)/1e3),e=Math.floor(t/60),n=t%60;return e>0?`${e}m ${n}s`:`${n}s`}statusClass(t){switch(t){case"completed":return"bg-green-500/10 text-green-400";case"failed":return"bg-red-500/10 text-red-400";case"running":return"bg-blue-500/10 text-blue-400";default:return"bg-slate-700 text-slate-400"}}statusIcon(t){switch(t){case"completed":return"\u2713";case"failed":return"\u2717";case"running":return"\u25CF";default:return"\u25CB"}}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=g({type:a,selectors:[["app-run-execution"]],decls:17,vars:4,consts:[[1,"max-w-3xl","mx-auto"],[1,"flex","items-center","mb-6","gap-2","text-sm"],["routerLink","/",1,"text-slate-500","hover:text-slate-300"],[1,"text-slate-600"],[1,"text-slate-300"],[1,"font-mono","text-slate-100"],[1,"text-xs","px-2","py-0.5","rounded","ml-2",3,"ngClass"],[1,"mb-6"],[3,"nodeId","status","durationMs"],[1,"bg-slate-800","rounded-lg","px-4","py-3","flex","items-center","text-sm"],[1,"text-slate-400"],[1,"text-slate-100","font-mono"],[1,"ml-6","text-slate-400"],[1,"text-green-400"],[1,"text-slate-100"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1)(2,"a",2),o(3,"Dashboard"),i(),r(4,"span",3),o(5,"\u203A"),i(),r(6,"span",4),o(7),i(),r(8,"span",3),o(9,"\u203A"),i(),r(10,"span",5),o(11),i(),u(12,Z,2,3,"span",6),i(),r(13,"div",7),E(14,q,1,3,"app-node-status-row",8,J),i(),u(16,G,13,3,"div",9),i()),e&2&&(s(7),d(n.run==null?null:n.run.workflow),s(4),d(n.run==null?null:n.run.runId),s(),l(n.run?12:-1),s(2),w(n.nodes),s(2),l(n.run?16:-1))},dependencies:[b,v,k,h],encapsulation:2})};export{O as RunExecutionComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as N}from"./chunk-XGYEZIV4.js";import{a as F}from"./chunk-RGFLNLPM.js";import{E as c,F as x,G as d,H as r,I as n,J as h,K as k,L as f,M as b,O as i,P as l,Q as y,R as S,X as g,Y as C,Z as D,ea as E,fa as R,ga as I,l as p,m as _,ma as T,n as v,na as W,u as o,x as w}from"./chunk-RKWDHBN3.js";var $=a=>["/workflows",a],V=a=>["/runs",a],B=(a,e)=>e.name,M=(a,e)=>e.runId;function O(a,e){if(a&1){let t=k();r(0,"div",3)(1,"a",9)(2,"div",10),i(3),n(),r(4,"div",11),i(5),n()(),r(6,"div",12)(7,"span",13),i(8),n(),r(9,"button",14),f("click",function(){let m=_(t).$implicit,u=b();return v(u.openRunDialog(m.name))}),i(10,"Run \u25B6"),n()()()}if(a&2){let t=e.$implicit;o(),d("routerLink",g(4,$,t.name)),o(2),l(t.name),o(2),l(t.description),o(3),y("",t.nodeCount," nodes")}}function A(a,e){if(a&1&&(r(0,"div",6)(1,"span",15),i(2),n(),r(3,"span",16),i(4),n(),r(5,"span")(6,"span",17),i(7),n()(),r(8,"span",13),i(9),C(10,"date"),n(),r(11,"a",18),i(12,"View \u2192"),n()()),a&2){let t=e.$implicit,s=b();o(2),l(t.runId),o(2),l(t.workflow),o(2),d("ngClass",s.statusClass(t.status)),o(),S(" ",s.statusIcon(t.status)," ",t.status," "),o(2),l(D(10,7,t.startedAt,"short")),o(2),d("routerLink",g(10,V,t.runId))}}function P(a,e){a&1&&(r(0,"div",7),i(1,'No runs yet. Click "Run \u25B6" on a workflow to start.'),n())}var L=class a{api=p(F);router=p(T);workflows=[];runs=[];showRunDialog=!1;selectedWorkflow="";ngOnInit(){this.api.getWorkflows().subscribe(e=>this.workflows=e),this.api.getRuns().subscribe(e=>this.runs=e.reverse())}openRunDialog(e){this.selectedWorkflow=e,this.showRunDialog=!0}onStartRun(e){this.showRunDialog=!1,this.api.startRun(this.selectedWorkflow,e).subscribe(t=>{this.router.navigate(["/runs",t.runId])})}statusClass(e){switch(e){case"completed":return"bg-green-500/10 text-green-400";case"failed":return"bg-red-500/10 text-red-400";case"running":return"bg-blue-500/10 text-blue-400";default:return"bg-slate-700 text-slate-400"}}statusIcon(e){switch(e){case"completed":return"\u2713";case"failed":return"\u2717";case"running":return"\u25CF";default:return"\u25CB"}}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=w({type:a,selectors:[["app-dashboard"]],decls:23,vars:3,consts:[[1,"max-w-6xl","mx-auto"],[1,"text-xs","font-semibold","text-slate-400","uppercase","tracking-wider","mb-3"],[1,"grid","grid-cols-1","md:grid-cols-2","lg:grid-cols-3","gap-3","mb-8"],[1,"bg-slate-800","rounded-lg","p-4","border","border-slate-700","hover:border-slate-600","transition-colors"],[1,"bg-slate-800","rounded-lg","border","border-slate-700","overflow-hidden"],[1,"grid","grid-cols-[1fr_1.5fr_1fr_1fr_0.5fr]","px-4","py-2","text-xs","text-slate-500","uppercase","border-b","border-slate-700"],[1,"grid","grid-cols-[1fr_1.5fr_1fr_1fr_0.5fr]","px-4","py-2.5","text-sm","border-b","border-slate-800","items-center"],[1,"px-4","py-6","text-center","text-sm","text-slate-500"],[3,"run","closed","visible","workflowName"],[1,"block",3,"routerLink"],[1,"font-semibold","text-slate-100","mb-1"],[1,"text-xs","text-slate-500","mb-3","line-clamp-2"],[1,"flex","items-center"],[1,"text-xs","text-slate-400"],[1,"ml-auto","bg-blue-600","text-white","text-xs","px-3","py-1","rounded","hover:bg-blue-500",3,"click"],[1,"font-mono","text-slate-400","text-xs"],[1,"text-slate-100"],[1,"text-xs","px-2","py-0.5","rounded",3,"ngClass"],[1,"text-xs","text-blue-400","hover:text-blue-300",3,"routerLink"]],template:function(t,s){t&1&&(r(0,"div",0)(1,"h2",1),i(2,"Workflows"),n(),r(3,"div",2),c(4,O,11,6,"div",3,B),n(),r(6,"h2",1),i(7,"Recent Runs"),n(),r(8,"div",4)(9,"div",5)(10,"span"),i(11,"Run ID"),n(),r(12,"span"),i(13,"Workflow"),n(),r(14,"span"),i(15,"Status"),n(),r(16,"span"),i(17,"Started"),n(),h(18,"span"),n(),c(19,A,13,12,"div",6,M,!1,P,2,0,"div",7),n()(),r(22,"app-run-dialog",8),f("run",function(u){return s.onStartRun(u)})("closed",function(){return s.showRunDialog=!1}),n()),t&2&&(o(4),x(s.workflows),o(15),x(s.runs),o(3),d("visible",s.showRunDialog)("workflowName",s.selectedWorkflow))},dependencies:[I,E,W,N,R],encapsulation:2})};export{L as DashboardComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as n,ia as i,l as s}from"./chunk-RKWDHBN3.js";var o=class r{http=s(i);getWorkflows(){return this.http.get("/api/workflows")}getWorkflow(t){return this.http.get(`/api/workflows/${t}`)}getRuns(){return this.http.get("/api/runs")}getRun(t){return this.http.get(`/api/runs/${t}`)}startRun(t,e){return this.http.post("/api/runs",{workflow:t,args:e})}static \u0275fac=function(e){return new(e||r)};static \u0275prov=n({token:r,factory:r.\u0275fac,providedIn:"root"})};export{o as a};
|