@ngocsangairvds/vsaf 5.1.18 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +55 -1
  2. package/package.json +1 -1
  3. package/packages/cli/dist/commands/abandon.d.ts +6 -0
  4. package/packages/cli/dist/commands/abandon.d.ts.map +1 -0
  5. package/packages/cli/dist/commands/abandon.js +42 -0
  6. package/packages/cli/dist/commands/abandon.js.map +1 -0
  7. package/packages/cli/dist/commands/ai.d.ts +21 -0
  8. package/packages/cli/dist/commands/ai.d.ts.map +1 -0
  9. package/packages/cli/dist/commands/ai.js +76 -0
  10. package/packages/cli/dist/commands/ai.js.map +1 -0
  11. package/packages/cli/dist/commands/approve.d.ts +19 -0
  12. package/packages/cli/dist/commands/approve.d.ts.map +1 -0
  13. package/packages/cli/dist/commands/approve.js +115 -0
  14. package/packages/cli/dist/commands/approve.js.map +1 -0
  15. package/packages/cli/dist/commands/chat.d.ts +41 -0
  16. package/packages/cli/dist/commands/chat.d.ts.map +1 -0
  17. package/packages/cli/dist/commands/chat.js +129 -0
  18. package/packages/cli/dist/commands/chat.js.map +1 -0
  19. package/packages/cli/dist/commands/isolation.d.ts +20 -0
  20. package/packages/cli/dist/commands/isolation.d.ts.map +1 -0
  21. package/packages/cli/dist/commands/isolation.js +104 -0
  22. package/packages/cli/dist/commands/isolation.js.map +1 -0
  23. package/packages/cli/dist/commands/run.d.ts +37 -1
  24. package/packages/cli/dist/commands/run.d.ts.map +1 -1
  25. package/packages/cli/dist/commands/run.js +165 -15
  26. package/packages/cli/dist/commands/run.js.map +1 -1
  27. package/packages/cli/dist/commands/telemetry.d.ts +10 -0
  28. package/packages/cli/dist/commands/telemetry.d.ts.map +1 -0
  29. package/packages/cli/dist/commands/telemetry.js +51 -0
  30. package/packages/cli/dist/commands/telemetry.js.map +1 -0
  31. package/packages/cli/dist/commands/validate.d.ts +12 -0
  32. package/packages/cli/dist/commands/validate.d.ts.map +1 -0
  33. package/packages/cli/dist/commands/validate.js +83 -0
  34. package/packages/cli/dist/commands/validate.js.map +1 -0
  35. package/packages/cli/dist/commands/workflow.d.ts +29 -0
  36. package/packages/cli/dist/commands/workflow.d.ts.map +1 -0
  37. package/packages/cli/dist/commands/workflow.js +147 -0
  38. package/packages/cli/dist/commands/workflow.js.map +1 -0
  39. package/packages/cli/dist/index.js +253 -6
  40. package/packages/cli/dist/index.js.map +1 -1
  41. package/packages/cli/dist/mcp/server.d.ts +9 -0
  42. package/packages/cli/dist/mcp/server.d.ts.map +1 -1
  43. package/packages/cli/dist/mcp/server.js +40 -2
  44. package/packages/cli/dist/mcp/server.js.map +1 -1
  45. package/packages/cli/dist/server/app.d.ts.map +1 -1
  46. package/packages/cli/dist/server/app.js +2 -0
  47. package/packages/cli/dist/server/app.js.map +1 -1
  48. package/packages/cli/dist/server/routes/conversations.d.ts +6 -0
  49. package/packages/cli/dist/server/routes/conversations.d.ts.map +1 -0
  50. package/packages/cli/dist/server/routes/conversations.js +145 -0
  51. package/packages/cli/dist/server/routes/conversations.js.map +1 -0
  52. package/packages/cli/dist/server/routes/runs.d.ts.map +1 -1
  53. package/packages/cli/dist/server/routes/runs.js +15 -3
  54. package/packages/cli/dist/server/routes/runs.js.map +1 -1
  55. package/packages/cli/dist/server/services/execution-manager.d.ts +25 -0
  56. package/packages/cli/dist/server/services/execution-manager.d.ts.map +1 -1
  57. package/packages/cli/dist/server/services/execution-manager.js +257 -95
  58. package/packages/cli/dist/server/services/execution-manager.js.map +1 -1
  59. package/packages/core/dist/config/ai-config.d.ts +24 -0
  60. package/packages/core/dist/config/ai-config.d.ts.map +1 -0
  61. package/packages/core/dist/config/ai-config.js +170 -0
  62. package/packages/core/dist/config/ai-config.js.map +1 -0
  63. package/packages/core/dist/engine/dag-executor.d.ts +29 -1
  64. package/packages/core/dist/engine/dag-executor.d.ts.map +1 -1
  65. package/packages/core/dist/engine/dag-executor.js +210 -8
  66. package/packages/core/dist/engine/dag-executor.js.map +1 -1
  67. package/packages/core/dist/engine/dag-parser.d.ts.map +1 -1
  68. package/packages/core/dist/engine/dag-parser.js +32 -1
  69. package/packages/core/dist/engine/dag-parser.js.map +1 -1
  70. package/packages/core/dist/engine/loop-signal.d.ts +7 -0
  71. package/packages/core/dist/engine/loop-signal.d.ts.map +1 -0
  72. package/packages/core/dist/engine/loop-signal.js +21 -0
  73. package/packages/core/dist/engine/loop-signal.js.map +1 -0
  74. package/packages/core/dist/engine/node-runner.d.ts +4 -1
  75. package/packages/core/dist/engine/node-runner.d.ts.map +1 -1
  76. package/packages/core/dist/engine/node-runner.js +14 -6
  77. package/packages/core/dist/engine/node-runner.js.map +1 -1
  78. package/packages/core/dist/index.d.ts +5 -2
  79. package/packages/core/dist/index.d.ts.map +1 -1
  80. package/packages/core/dist/index.js +25 -1
  81. package/packages/core/dist/index.js.map +1 -1
  82. package/packages/core/dist/providers/default-adapters.d.ts.map +1 -1
  83. package/packages/core/dist/providers/default-adapters.js +9 -1
  84. package/packages/core/dist/providers/default-adapters.js.map +1 -1
  85. package/packages/core/dist/runtime/executor.d.ts +1 -1
  86. package/packages/core/dist/runtime/executor.d.ts.map +1 -1
  87. package/packages/core/dist/runtime/executor.js +14 -8
  88. package/packages/core/dist/runtime/executor.js.map +1 -1
  89. package/packages/core/dist/schema/workflow-schema.d.ts +94 -14
  90. package/packages/core/dist/schema/workflow-schema.d.ts.map +1 -1
  91. package/packages/core/dist/schema/workflow-schema.js +38 -6
  92. package/packages/core/dist/schema/workflow-schema.js.map +1 -1
  93. package/packages/core/dist/store/recovery.d.ts.map +1 -1
  94. package/packages/core/dist/store/recovery.js +7 -0
  95. package/packages/core/dist/store/recovery.js.map +1 -1
  96. package/packages/core/dist/store/run-store.d.ts +5 -3
  97. package/packages/core/dist/store/run-store.d.ts.map +1 -1
  98. package/packages/core/dist/store/run-store.js +12 -4
  99. package/packages/core/dist/store/run-store.js.map +1 -1
  100. package/packages/core/dist/store/sqlite-schema.d.ts +1 -1
  101. package/packages/core/dist/store/sqlite-schema.d.ts.map +1 -1
  102. package/packages/core/dist/store/sqlite-schema.js +20 -0
  103. package/packages/core/dist/store/sqlite-schema.js.map +1 -1
  104. package/packages/core/dist/store/sqlite-workflow-store.d.ts +26 -0
  105. package/packages/core/dist/store/sqlite-workflow-store.d.ts.map +1 -1
  106. package/packages/core/dist/store/sqlite-workflow-store.js +106 -0
  107. package/packages/core/dist/store/sqlite-workflow-store.js.map +1 -1
  108. package/packages/core/dist/store/types.d.ts +17 -0
  109. package/packages/core/dist/store/types.d.ts.map +1 -1
  110. package/packages/core/dist/store/types.js.map +1 -1
  111. package/packages/core/dist/telemetry/telemetry.d.ts +31 -0
  112. package/packages/core/dist/telemetry/telemetry.d.ts.map +1 -0
  113. package/packages/core/dist/telemetry/telemetry.js +177 -0
  114. package/packages/core/dist/telemetry/telemetry.js.map +1 -0
  115. package/packages/core/dist/types/dag.d.ts +16 -0
  116. package/packages/core/dist/types/dag.d.ts.map +1 -1
  117. package/packages/core/dist/types/provider.d.ts +4 -0
  118. package/packages/core/dist/types/provider.d.ts.map +1 -1
  119. package/packages/core/dist/types/workflow.d.ts +18 -1
  120. package/packages/core/dist/types/workflow.d.ts.map +1 -1
  121. package/packages/web/dist/web/browser/chunk-2JHYGCCN.js +1 -0
  122. package/packages/web/dist/web/browser/chunk-BMQT4ZPK.js +1 -0
  123. package/packages/web/dist/web/browser/chunk-GWHJRWJM.js +1 -0
  124. package/packages/web/dist/web/browser/chunk-OZ6BRCXC.js +1 -0
  125. package/packages/web/dist/web/browser/chunk-Q7N6DAKT.js +1 -0
  126. package/packages/web/dist/web/browser/chunk-SEBU2SK7.js +1 -0
  127. package/packages/web/dist/web/browser/chunk-SOS4TH5D.js +4 -0
  128. package/packages/web/dist/web/browser/chunk-WSAVMPNK.js +5 -0
  129. package/packages/web/dist/web/browser/index.html +1 -1
  130. package/packages/web/dist/web/browser/main-UPZIVGM6.js +1 -0
  131. package/packages/web/dist/web/browser/chunk-5WD7R336.js +0 -1
  132. package/packages/web/dist/web/browser/chunk-FXYDTGOX.js +0 -1
  133. package/packages/web/dist/web/browser/chunk-K4DHLOOA.js +0 -1
  134. package/packages/web/dist/web/browser/chunk-V2CDNNWN.js +0 -1
  135. package/packages/web/dist/web/browser/chunk-WJT4QH2P.js +0 -4
  136. package/packages/web/dist/web/browser/chunk-WMJLW2L6.js +0 -5
  137. package/packages/web/dist/web/browser/chunk-XHOL7AER.js +0 -1
  138. package/packages/web/dist/web/browser/chunk-YBYFKZWR.js +0 -1
  139. package/packages/web/dist/web/browser/main-SYHKSBNJ.js +0 -1
@@ -1 +0,0 @@
1
- import{A as b,C as he,D as A,E as s,G as X,H as l,I as h,K as fe,L as ge,_ as M,a as u,b as d,ca as Y,d as se,e as ae,g as le,h as ue,k as P,l as p,la as _,n as Z,o as m,p as R,ra as f,sa as F,u as de,ua as K,v as V,va as pe,wa as J,x as D,y as ce,z as k}from"./chunk-WMJLW2L6.js";var Ae=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(s(A),s(b))};static \u0275dir=l({type:n})}return n})(),te=(()=>{class n extends Ae{static \u0275fac=(()=>{let e;return function(r){return(e||(e=k(n)))(r||n)}})();static \u0275dir=l({type:n,features:[h]})}return n})(),W=new m("");var Ue={provide:W,useExisting:p(()=>Me),multi:!0};function He(){let n=J()?J().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var Le=new m(""),Me=(()=>{class n extends Ae{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!He())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(s(A),s(b),s(Le,8))};static \u0275dir=l({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&M("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[_([Ue]),h]})}return n})();var Fe=new m(""),Ee=new m("");function we(n){return n!=null}function Ie(n){return fe(n)?ae(n):n}function Se(n){let t={};return n.forEach(e=>{t=e!=null?u(u({},t),e):t}),Object.keys(t).length===0?null:t}function Ne(n,t){return t.map(e=>e(n))}function $e(n){return!n.validate}function Oe(n){return n.map(t=>$e(t)?t:e=>t.validate(e))}function We(n){if(!n)return null;let t=n.filter(we);return t.length==0?null:function(e){return Se(Ne(e,t))}}function ne(n){return n!=null?We(Oe(n)):null}function qe(n){if(!n)return null;let t=n.filter(we);return t.length==0?null:function(e){let i=Ne(e,t).map(Ie);return ue(i).pipe(le(Se))}}function ie(n){return n!=null?qe(Oe(n)):null}function me(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function ze(n){return n._rawValidators}function Ze(n){return n._rawAsyncValidators}function Q(n){return n?Array.isArray(n)?n:[n]:[]}function G(n,t){return Array.isArray(n)?n.includes(t):n===t}function _e(n,t){let e=Q(t);return Q(n).forEach(r=>{G(e,r)||e.push(r)}),e}function ve(n,t){return Q(t).filter(e=>!G(n,e))}var T=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=ne(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=ie(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control?.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},C=class extends T{name;get formDirective(){return null}get path(){return null}},O=class extends T{_parent=null;name=null;valueAccessor=null},B=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}};var Tt=(()=>{class n extends B{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(s(O,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&Y("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[h]})}return n})(),Bt=(()=>{class n extends B{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(s(C,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&Y("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},standalone:!1,features:[h]})}return n})();var E="VALID",j="INVALID",v="PENDING",w="DISABLED",g=class{},U=class extends g{value;source;constructor(t,e){super(),this.value=t,this.source=e}},S=class extends g{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},N=class extends g{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},y=class extends g{status;source;constructor(t,e){super(),this.status=t,this.source=e}},ee=class extends g{source;constructor(t){super(),this.source=t}},H=class extends g{source;constructor(t){super(),this.source=t}};function xe(n){return(q(n)?n.validators:n)||null}function Xe(n){return Array.isArray(n)?ne(n):n||null}function Pe(n,t){return(q(t)?t.asyncValidators:n)||null}function Ye(n){return Array.isArray(n)?ie(n):n||null}function q(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function Ke(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new P(1e3,"");if(!i[e])throw new P(1001,"")}function Je(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new P(-1002,"")})}var L=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return f(this.statusReactive)}set status(t){f(()=>this.statusReactive.set(t))}_status=F(()=>this.statusReactive());statusReactive=D(void 0);get valid(){return this.status===E}get invalid(){return this.status===j}get pending(){return this.status===v}get disabled(){return this.status===w}get enabled(){return this.status!==w}errors;get pristine(){return f(this.pristineReactive)}set pristine(t){f(()=>this.pristineReactive.set(t))}_pristine=F(()=>this.pristineReactive());pristineReactive=D(!0);get dirty(){return!this.pristine}get touched(){return f(this.touchedReactive)}set touched(t){f(()=>this.touchedReactive.set(t))}_touched=F(()=>this.touchedReactive());touchedReactive=D(!1);get untouched(){return!this.touched}_events=new se;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(_e(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(_e(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(ve(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(ve(t,this._rawAsyncValidators))}hasValidator(t){return G(this._rawValidators,t)}hasAsyncValidator(t){return G(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;t.onlySelf||this._parent?.markAsTouched(d(u({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new N(!0,i))}markAllAsDirty(t={}){this.markAsDirty({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(t))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),t.onlySelf||this._parent?._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new N(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;t.onlySelf||this._parent?.markAsDirty(d(u({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new S(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),t.onlySelf||this._parent?._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new S(!0,i))}markAsPending(t={}){this.status=v;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new y(this.status,e)),this.statusChanges.emit(this.status)),t.onlySelf||this._parent?.markAsPending(d(u({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=w,this.errors=null,this._forEachChild(r=>{r.disable(d(u({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new U(this.value,i)),this._events.next(new y(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(d(u({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=E,this._forEachChild(i=>{i.enable(d(u({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(d(u({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){t.onlySelf||(this._parent?.updateValueAndValidity(t),t.skipPristineCheck||this._parent?._updatePristine({},e),this._parent?._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===E||this.status===v)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new U(this.value,e)),this._events.next(new y(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),t.onlySelf||this._parent?.updateValueAndValidity(d(u({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?w:E}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=v,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1,shouldHaveEmitted:t!==!1};let i=Ie(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i?.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new y(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new V,this.statusChanges=new V}_calculateStatus(){return this._allControlsDisabled()?w:this.errors?j:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(v)?v:this._anyControlsHaveStatus(j)?j:E}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,t.onlySelf||this._parent?._updatePristine(t,e),r&&this._events.next(new S(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new N(this.touched,e)),t.onlySelf||this._parent?._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){q(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!!this._parent?.dirty&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=Xe(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=Ye(this._rawAsyncValidators)}},$=class extends L{constructor(t,e,i){super(xe(e),Pe(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){Je(this,!0,t),Object.keys(t).forEach(i=>{Ke(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,d(u({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new H(this))}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,o)=>{i=e(i,r,o)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var re=new m("",{factory:()=>oe}),oe="always";function Qe(n,t){return[...t.path,n]}function Re(n,t,e=oe){ke(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),tt(n,t),it(n,t),nt(n,t),et(n,t)}function ye(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function et(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function ke(n,t){let e=ze(n);t.validator!==null?n.setValidators(me(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=Ze(n);t.asyncValidator!==null?n.setAsyncValidators(me(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();ye(t._rawValidators,r),ye(t._rawAsyncValidators,r)}function tt(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&je(n,t)})}function nt(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&je(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function je(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function it(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function rt(n,t){n==null,ke(n,t)}function ot(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function st(n){return Object.getPrototypeOf(n.constructor)===te}function at(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function lt(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(o=>{o.constructor===Me?e=o:st(o)?i=o:r=o}),r||i||e||null}var ut={provide:C,useExisting:p(()=>dt)},I=Promise.resolve(),dt=(()=>{class n extends C{callSetDisabledState;get submitted(){return f(this.submittedReactive)}_submitted=F(()=>this.submittedReactive());submittedReactive=D(!1);_directives=new Set;form;ngSubmit=new V;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new $({},ne(e),ie(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){I.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Re(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){I.then(()=>{this._findContainer(e.path)?.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){I.then(()=>{let i=this._findContainer(e.path),r=new $({});rt(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){I.then(()=>{this._findContainer(e.path)?.removeControl?.(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){I.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),at(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new ee(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(s(Fe,10),s(Ee,10),s(re,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&M("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[_([ut]),h]})}return n})();function Ce(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function Ve(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var ct=class extends L{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(xe(e),Pe(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),q(e)&&(e.nonNullable||e.initialValueIsDefault)&&(Ve(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,e?.emitEvent!==!1&&this._events.next(new H(this))}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Ce(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Ce(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){Ve(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}};var ht={provide:O,useExisting:p(()=>ft)},De=Promise.resolve(),ft=(()=>{class n extends O{_changeDetectorRef;callSetDisabledState;control=new ct;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new V;constructor(e,i,r,o,a,c){super(),this._changeDetectorRef=a,this.callSetDisabledState=c,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=lt(this,o)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),ot(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective?.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){Re(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){De.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&pe(i);De.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?Qe(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(s(C,9),s(Fe,10),s(Ee,10),s(W,10),s(K,8),s(re,8))};static \u0275dir=l({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[_([ht]),h,ce]})}return n})();var Ht=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return n})();var gt={provide:W,useExisting:p(()=>Te),multi:!0};function Ge(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function pt(n){return n.split(":")[0]}var Te=(()=>{class n extends te{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;appRefInjector=R(ge).injector;destroyRef=R(de);cdr=R(K);_queuedWrite=!1;_writeValueAfterRender(){this._queuedWrite||this.appRefInjector.destroyed||(this._queuedWrite=!0,he({write:()=>{this.destroyRef.destroyed||(this._queuedWrite=!1,this.writeValue(this.value))}},{injector:this.appRefInjector}))}writeValue(e){this.cdr.markForCheck(),this.value=e;let i=this._getOptionId(e),r=Ge(i,e);this.setProperty("value",r)}registerOnChange(e){this.onChange=i=>{this.value=this._getOptionValue(i),e(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),e))return i;return null}_getOptionValue(e){let i=pt(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=k(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){i&1&&M("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[_([gt]),h]})}return n})(),Lt=(()=>{class n{_element;_renderer;_select;id;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(e){this._select!=null&&(this._select._optionMap.set(this.id,e),this._setElementValue(Ge(this.id,e)),this._select._writeValueAfterRender())}set value(e){this._setElementValue(e),this._select?._writeValueAfterRender()}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select?._optionMap.delete(this.id),this._select?._writeValueAfterRender()}static \u0275fac=function(i){return new(i||n)(s(b),s(A),s(Te,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),mt={provide:W,useExisting:p(()=>Be),multi:!0};function be(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function _t(n){return n.split(":")[0]}var Be=(()=>{class n extends te{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i;if(Array.isArray(e)){let r=e.map(o=>this._getOptionId(o));i=(o,a)=>{o._setSelected(r.indexOf(a)>-1)}}else i=r=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(e){this.onChange=i=>{let r=[],o=i.selectedOptions;if(o!==void 0){let a=o;for(let c=0;c<a.length;c++){let x=a[c],z=this._getOptionValue(x.value);r.push(z)}}else{let a=i.options;for(let c=0;c<a.length;c++){let x=a[c];if(x.selected){let z=this._getOptionValue(x.value);r.push(z)}}}this.value=r,e(r)}}_registerOption(e){let i=(this._idCounter++).toString();return this._optionMap.set(i,e),i}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i)._value,e))return i;return null}_getOptionValue(e){let i=_t(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=k(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&M("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[_([mt]),h]})}return n})(),$t=(()=>{class n{_element;_renderer;_select;id;_value;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(e){this._select!=null&&(this._value=e,this._setElementValue(be(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue(be(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}_setSelected(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(s(b),s(A),s(Be,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();var vt=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Z({})}return n})();var Wt=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:re,useValue:e.callSetDisabledState??oe}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Z({imports:[vt]})}return n})();export{Me as a,Tt as b,Bt as c,dt as d,ft as e,Ht as f,Te as g,Lt as h,$t as i,Wt as j};
@@ -1 +0,0 @@
1
- import{a as V}from"./chunk-V2CDNNWN.js";import{$ as l,B as a,Ca as h,F as g,Ga as j,Ja as L,Ma as B,N as u,O as p,Q as O,R as A,S as f,T as r,U as o,Z as $,_,c as T,ca as P,ea as s,fa as m,ga as v,ha as I,m as N,p as x,q as M,r as k,v as D,w as F,xa as C}from"./chunk-WMJLW2L6.js";var b=class i{zone=x(F);projectService=x(B);connect(t){return new T(e=>{let n=this.projectService.currentId,d=n?`?project=${encodeURIComponent(n)}`:"",c=new EventSource(`/api/runs/${t}/events${d}`),E=["node:start","node:complete","node:skip","node:fail","run:complete","run:state"];for(let R of E)c.addEventListener(R,G=>{this.zone.run(()=>{e.next({type:R,data:JSON.parse(G.data)})})});return c.onerror=()=>{this.zone.run(()=>{e.complete()}),c.close()},()=>{c.close()}})}static \u0275fac=function(e){return new(e||i)};static \u0275prov=N({token:i,factory:i.\u0275fac,providedIn:"root"})};function Q(i,t){if(i&1&&(r(0,"span",1),s(1),o()),i&2){let e=l();a(),m(e.expanded?"\u25BE":"\u25B8")}}function W(i,t){if(i&1&&(r(0,"span",4),s(1),o()),i&2){let e=l();a(),m(e.providerBadge)}}function X(i,t){if(i&1&&(r(0,"span",5),s(1),o()),i&2){let e=l();f("ngClass",e.typeBadgeClass),a(),m(e.type)}}function Y(i,t){if(i&1&&(r(0,"span",6),s(1),o()),i&2){let e=l();a(),v("",(e.durationMs/1e3).toFixed(1),"s")}}function ee(i,t){i&1&&(r(0,"span",7),s(1,"running..."),o())}function te(i,t){i&1&&(r(0,"span",8),s(1,"skipped"),o())}function ne(i,t){i&1&&(r(0,"span",9),s(1,"FAILED"),o())}var S=class i{nodeId="";status="pending";type;durationMs;provider;model;expandable=!1;expanded=!1;toggled=new D;onRowClick(){this.expandable&&this.toggled.emit()}get providerBadge(){return this.provider?this.model?`${this.provider}/${this.model}`:this.provider:""}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||i)};static \u0275cmp=g({type:i,selectors:[["app-node-status-row"]],inputs:{nodeId:"nodeId",status:"status",type:"type",durationMs:"durationMs",provider:"provider",model:"model",expandable:"expandable",expanded:"expanded"},outputs:{toggled:"toggled"},decls:12,vars:15,consts:[[1,"flex","items-center","py-2.5","border-b","border-slate-800",3,"click"],[1,"mr-2","text-xs","text-slate-500","w-3","inline-block"],[1,"mr-3","text-sm",3,"ngClass"],[1,"flex-1",3,"ngClass"],[1,"text-xs","px-1.5","py-0.5","rounded","mr-2","bg-indigo-500/10","text-indigo-300","font-mono"],[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),_("click",function(){return n.onRowClick()}),u(1,Q,2,1,"span",1),r(2,"span",2),s(3),o(),r(4,"span",3),s(5),o(),u(6,W,2,1,"span",4),u(7,X,2,2,"span",5),u(8,Y,2,1,"span",6),u(9,ee,2,0,"span",7),u(10,te,2,0,"span",8),u(11,ne,2,0,"span",9),o()),e&2&&(P("cursor-pointer",n.expandable)("select-none",n.expandable),a(),p(n.expandable?1:-1),a(),f("ngClass",n.statusIconClass),a(),m(n.statusIcon),a(),f("ngClass",n.statusTextClass),a(),m(n.nodeId),a(),p(n.provider?6:-1),a(),p(n.type?7:-1),a(),p(n.status==="completed"&&n.durationMs!==void 0?8:-1),a(),p(n.status==="running"?9:-1),a(),p(n.status==="skipped"?10:-1),a(),p(n.status==="failed"?11:-1))},dependencies:[h,C],encapsulation:2})};var ie=new Set(["completed","failed","cancelled"]);function w(i){return i!==void 0&&ie.has(i)}function U(i,t=new Date().toISOString()){w(i.status)&&!i.completedAt&&(i.completedAt=t)}function q(i,t=Date.now()){let e=new Date(i.startedAt).getTime(),n=i.completedAt?new Date(i.completedAt).getTime():t;return Math.max(0,n-e)}function J(i){let t=Math.floor(i/1e3),e=Math.floor(t/60),n=t%60;return e>0?`${e}m ${n}s`:`${n}s`}var y=class{entries=new Map;toggle(t,e){let n=this.entry(t);return n.expanded=!n.expanded,!n.expanded||n.fetchedStatus===e&&(n.phase==="loaded"||n.phase==="loading")?!1:(n.phase="loading",n.fetchedStatus=e,n.error=void 0,!0)}statusChanged(t,e){let n=this.entries.get(t);return!n||n.fetchedStatus===void 0||n.fetchedStatus===e?!1:n.expanded?(n.phase="loading",n.fetchedStatus=e,n.error=void 0,!0):(n.phase="idle",n.data=void 0,n.error=void 0,n.fetchedStatus=void 0,!1)}resolve(t,e,n){let d=this.entries.get(t);!d||d.fetchedStatus!==e||(d.phase="loaded",d.data=n,d.error=void 0)}fail(t,e,n){let d=this.entries.get(t);!d||d.fetchedStatus!==e||(d.phase="error",d.error=n,d.data=void 0)}isExpanded(t){return this.entries.get(t)?.expanded??!1}phase(t){let e=this.entries.get(t);return!e||!e.expanded?"collapsed":e.phase==="idle"?"loading":e.phase}data(t){return this.entries.get(t)?.data}errorMessage(t){return this.entries.get(t)?.error}entry(t){let e=this.entries.get(t);return e||(e={expanded:!1,phase:"idle"},this.entries.set(t,e)),e}};var ae=(i,t)=>t.id;function oe(i,t){if(i&1&&(r(0,"span",6),s(1),o()),i&2){let e=l();f("ngClass",e.statusClass(e.run.status)),a(),I(" ",e.statusIcon(e.run.status)," ",e.run.status," ")}}function re(i,t){i&1&&(r(0,"div",11),s(1,"Loading output\u2026"),o())}function se(i,t){if(i&1&&(r(0,"div",12),s(1),o()),i&2){let e=l(2).$implicit,n=l();a(),m(n.panels.errorMessage(e.id))}}function de(i,t){if(i&1&&(r(0,"span",14),s(1),o()),i&2){let e=l();a(),I(" ",e.provider,"",e.model?"/"+e.model:""," ")}}function le(i,t){if(i&1&&(r(0,"span",15),s(1),o()),i&2){let e=l();a(),v("",(e.durationMs/1e3).toFixed(1),"s")}}function ue(i,t){if(i&1&&(r(0,"pre",16),s(1),o()),i&2){let e=l();a(),m(e.error)}}function pe(i,t){if(i&1&&(r(0,"pre",17),s(1),o()),i&2){let e=l();a(),m(e.output)}}function ce(i,t){i&1&&(r(0,"div",18),s(1,"No output"),o())}function me(i,t){if(i&1&&(r(0,"div",13),u(1,de,2,2,"span",14),u(2,le,2,1,"span",15),o(),u(3,ue,2,1,"pre",16),u(4,pe,2,1,"pre",17)(5,ce,2,0,"div",18)),i&2){let e=t;a(),p(e.provider?1:-1),a(),p(e.durationMs!==null?2:-1),a(),p(e.error?3:-1),a(),p(e.output?4:e.error?-1:5)}}function xe(i,t){if(i&1&&u(0,me,6,4),i&2){let e,n=l(2).$implicit,d=l();p((e=d.panels.data(n.id))?0:-1,e)}}function fe(i,t){if(i&1&&(r(0,"div",10),u(1,re,2,0,"div",11)(2,se,2,1,"div",12)(3,xe,1,1),o()),i&2){let e,n=l().$implicit,d=l();a(),p((e=d.panels.phase(n.id))==="loading"?1:e==="error"?2:e==="loaded"?3:-1)}}function ge(i,t){if(i&1){let e=$();r(0,"app-node-status-row",9),_("toggled",function(){let d=M(e).$implicit,c=l();return k(c.togglePanel(d))}),o(),u(1,fe,4,1,"div",10)}if(i&2){let e=t.$implicit,n=l();f("nodeId",e.id)("status",e.status)("durationMs",e.durationMs)("provider",e.provider)("model",e.model)("expandable",!0)("expanded",n.panels.isExpanded(e.id)),a(),p(n.panels.isExpanded(e.id)?1:-1)}}function _e(i,t){if(i&1&&(r(0,"div",8)(1,"span",19),s(2,"Elapsed: "),r(3,"span",20),s(4),o()(),r(5,"span",21),s(6,"Nodes: "),r(7,"span",22),s(8),o(),s(9,"/"),r(10,"span",23),s(11),o(),s(12," completed "),o()()),i&2){let e=l();a(4),m(e.elapsedDisplay),a(4),m(e.completedCount),a(3),m(e.nodes.length)}}var Z=class i{route=x(j);api=x(V);sse=x(b);run;nodes=[];panels=new y;runId="";sseSub;timerInterval;ngOnInit(){this.runId=this.route.snapshot.paramMap.get("runId"),this.api.getRun(this.runId).subscribe(t=>{this.run=t,this.rebuildNodeList(),this.stopTimerIfFinished()}),this.sseSub=this.sse.connect(this.runId).subscribe(t=>{this.handleSseEvent(t)}),this.timerInterval=setInterval(()=>{},1e3)}ngOnDestroy(){this.sseSub?.unsubscribe(),this.timerInterval&&clearInterval(this.timerInterval)}togglePanel(t){this.panels.toggle(t.id,t.status)&&this.fetchOutput(t.id,t.status)}fetchOutput(t,e){this.api.getNodeOutput(this.runId,t).subscribe({next:n=>this.panels.resolve(t,e,n),error:n=>this.panels.fail(t,e,n?.error?.error??"Failed to load node output.")})}handleSseEvent(t){let e=t.data,n=e.nodeId;switch(t.type){case"run:state":this.run=e,this.rebuildNodeList(),this.stopTimerIfFinished();break;case"node:start":this.updateNodeStatus(n,"running",void 0,{provider:e.provider,model:e.model});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"),this.stopTimerIfFinished();break}}rebuildNodeList(){if(!this.run)return;let t=new Map(this.nodes.map(e=>[e.id,e]));this.nodes=Object.entries(this.run.nodes).map(([e,n])=>({id:e,status:n.status,durationMs:n.durationMs,provider:t.get(e)?.provider,model:t.get(e)?.model}));for(let e of this.nodes)this.noteStatus(e)}updateNodeStatus(t,e,n,d){let c=this.nodes.find(E=>E.id===t);c?(c.status=e,n!==void 0&&(c.durationMs=n)):(c={id:t,status:e,durationMs:n},this.nodes.push(c)),d?.provider&&(c.provider=d.provider),d?.model&&(c.model=d.model),this.noteStatus(c)}noteStatus(t){this.panels.statusChanged(t.id,t.status)&&this.fetchOutput(t.id,t.status)}get completedCount(){return this.nodes.filter(t=>t.status==="completed").length}get elapsedDisplay(){return this.run?J(q(this.run)):"0s"}stopTimerIfFinished(){!this.run||!w(this.run.status)||(U(this.run),this.timerInterval&&(clearInterval(this.timerInterval),this.timerInterval=void 0))}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||i)};static \u0275cmp=g({type:i,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"],[1,"bg-slate-800","rounded-lg","px-4","py-3","flex","items-center","text-sm"],[3,"toggled","nodeId","status","durationMs","provider","model","expandable","expanded"],[1,"border-b","border-slate-800","bg-slate-900/40","px-4","py-3"],[1,"text-xs","text-slate-500","animate-pulse"],[1,"text-xs","text-red-400"],[1,"flex","items-center","gap-3","mb-2","text-xs"],[1,"px-1.5","py-0.5","rounded","bg-indigo-500/10","text-indigo-300","font-mono"],[1,"font-mono","text-slate-400"],[1,"font-mono","text-xs","text-red-300","bg-red-500/10","border","border-red-500/30","rounded","p-3","mb-2","max-h-80","overflow-auto","whitespace-pre-wrap","break-words"],[1,"font-mono","text-xs","text-slate-300","bg-slate-950","border","border-slate-800","rounded","p-3","max-h-80","overflow-auto","whitespace-pre-wrap","break-words"],[1,"text-xs","text-slate-500","italic"],[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),s(3,"Dashboard"),o(),r(4,"span",3),s(5,"\u203A"),o(),r(6,"span",4),s(7),o(),r(8,"span",3),s(9,"\u203A"),o(),r(10,"span",5),s(11),o(),u(12,oe,2,3,"span",6),o(),r(13,"div",7),O(14,ge,2,8,null,null,ae),o(),u(16,_e,13,3,"div",8),o()),e&2&&(a(7),m(n.run==null?null:n.run.workflow),a(4),m(n.run==null?null:n.run.runId),a(),p(n.run?12:-1),a(2),A(n.nodes),a(2),p(n.run?16:-1))},dependencies:[h,C,L,S],encapsulation:2})};export{Z as RunExecutionComponent};
@@ -1 +0,0 @@
1
- import{$ as c,B as a,Da as j,F as g,Fa as P,Ha as M,Ja as O,Ka as S,La as A,Ma as E,N as x,O as u,Q as h,R as C,S as d,T as n,U as o,V as b,Z as v,_,ea as r,fa as k,ma as y,p as s,q as m,r as f,ta as w}from"./chunk-WMJLW2L6.js";var L=[{path:"",loadComponent:()=>import("./chunk-FXYDTGOX.js").then(e=>e.DashboardComponent)},{path:"workflows",loadComponent:()=>import("./chunk-5WD7R336.js").then(e=>e.WorkflowsComponent)},{path:"workflows/builder",loadComponent:()=>import("./chunk-WJT4QH2P.js").then(e=>e.WorkflowBuilderComponent)},{path:"workflows/detail",loadComponent:()=>import("./chunk-K4DHLOOA.js").then(e=>e.WorkflowDetailComponent)},{path:"runs/:runId",loadComponent:()=>import("./chunk-YBYFKZWR.js").then(e=>e.RunExecutionComponent)}];var z={providers:[w({eventCoalescing:!0}),A(L),P()]};var R=()=>({exact:!0}),T=(e,i)=>i.id;function V(e,i){if(e&1&&(n(0,"option",12),r(1),o()),e&2){let t=i.$implicit,p=c(2);d("value",t.id)("selected",t.id===p.selectedId()),a(),k(t.name)}}function F(e,i){if(e&1){let t=v();n(0,"select",11),_("change",function(D){m(t);let I=c();return f(I.onProjectChange(D))}),h(1,V,2,3,"option",12,T),o()}if(e&2){let t=c();a(),C(t.projects())}}var l=class e{projectService=s(E);projects=this.projectService.projects;selectedId=this.projectService.selectedId;constructor(){this.projectService.load()}onProjectChange(i){let t=i.target.value;!t||t===this.selectedId()||(this.projectService.select(t),document.location.reload())}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=g({type:e,selectors:[["app-root"]],decls:17,vars:3,consts:[[1,"app-shell"],[1,"app-nav"],["routerLink","/",1,"brand-link"],[1,"brand-icon"],[1,"brand-name"],["routerLink","/","routerLinkActive","border-primary text-primary",1,"nav-link",3,"routerLinkActiveOptions"],["routerLink","/workflows","routerLinkActive","border-primary text-primary",1,"nav-link"],[1,"nav-spacer"],["aria-label","Project","title","Switch project",1,"project-select"],[1,"version-pill"],[1,"app-main"],["aria-label","Project","title","Switch project",1,"project-select",3,"change"],[3,"value","selected"]],template:function(t,p){t&1&&(n(0,"div",0)(1,"nav",1)(2,"a",2)(3,"span",3),r(4,"V"),o(),n(5,"span",4),r(6,"VSAF"),o()(),n(7,"a",5),r(8," Dashboard "),o(),n(9,"a",6),r(10," Workflows "),o(),n(11,"div",7),x(12,F,3,0,"select",8),n(13,"span",9),r(14,"v0.2.0"),o()()(),n(15,"main",10),b(16,"router-outlet"),o()()),t&2&&(a(7),d("routerLinkActiveOptions",y(2,R)),a(5),u(p.projects().length>1?12:-1))},dependencies:[M,O,S],styles:["[_nghost-%COMP%]{display:block;min-height:100vh;background:#101114;color:#e7e7ea}.app-shell[_ngcontent-%COMP%]{min-height:100vh;background:#101114;color:#e7e7ea}.app-nav[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;height:56px;border-bottom:1px solid #2b2d33;background:#17181d;padding:0 16px;box-sizing:border-box}.brand-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:9px;margin-right:18px;color:#f4f4f5;text-decoration:none}.brand-link[_ngcontent-%COMP%]:hover{opacity:.82}.brand-icon[_ngcontent-%COMP%]{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#6366f1;color:#fff;font-size:14px;font-weight:800}.brand-name[_ngcontent-%COMP%]{font-size:14px;font-weight:800}.nav-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:56px;border-bottom:2px solid transparent;padding:0 13px;color:#a1a1aa;font-size:14px;font-weight:650;text-decoration:none;box-sizing:border-box}.nav-link[_ngcontent-%COMP%]:hover{color:#f4f4f5}.nav-link.border-primary[_ngcontent-%COMP%], .nav-link.text-primary[_ngcontent-%COMP%]{border-bottom-color:#6366f1;color:#a5b4fc}.nav-spacer[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:12px}.project-select[_ngcontent-%COMP%]{border:1px solid #2b2d33;border-radius:7px;background:#20222a;color:#e7e7ea;padding:5px 8px;font:inherit;font-size:12px;max-width:220px;cursor:pointer}.project-select[_ngcontent-%COMP%]:focus{outline:none;border-color:#6366f1}.version-pill[_ngcontent-%COMP%]{border:1px solid #2b2d33;border-radius:7px;background:#20222a;color:#a1a1aa;padding:5px 8px;font-size:12px}.app-main[_ngcontent-%COMP%]{min-height:calc(100vh - 56px);overflow:auto;background:#101114}"]})};j(l,z).catch(e=>console.error(e));