hackagent-webui 0.5.4.dev40__py3-none-any.whl → 0.5.7.dev44__py3-none-any.whl
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.
- hackagent_webui/__init__.py +1 -1
- hackagent_webui/static/404.html +1 -1
- hackagent_webui/static/VERSION +1 -1
- hackagent_webui/static/_next/static/chunks/{959-f7b708ac280ce10a.js → 130-ea2c854c99cceb32.js} +1 -1
- hackagent_webui/static/_next/static/chunks/326-0c5769668b6b2c5a.js +1 -0
- hackagent_webui/static/_next/static/chunks/511-cf97bbb465e76476.js +1 -0
- hackagent_webui/static/_next/static/chunks/921-92a9ab4120f81d51.js +1 -0
- hackagent_webui/static/_next/static/chunks/app/attacks/builder/page-0a243577272698a7.js +1 -0
- hackagent_webui/static/_next/static/chunks/app/attacks/page-5eba14258edcb542.js +1 -0
- hackagent_webui/static/_next/static/chunks/app/layout-7c1fdd2e3cdffab4.js +1 -0
- hackagent_webui/static/_next/static/chunks/app/page-44982fec817d0e96.js +1 -0
- hackagent_webui/static/_next/static/chunks/app/stats/{page-3d8df1bcc06245db.js → page-3d22606b7f9ba4b8.js} +1 -1
- hackagent_webui/static/agents.html +1 -1
- hackagent_webui/static/agents.txt +3 -3
- hackagent_webui/static/api-keys.html +1 -1
- hackagent_webui/static/api-keys.txt +3 -3
- hackagent_webui/static/attacks/builder.html +1 -1
- hackagent_webui/static/attacks/builder.txt +4 -4
- hackagent_webui/static/attacks.html +1 -1
- hackagent_webui/static/attacks.txt +4 -4
- hackagent_webui/static/index.html +1 -1
- hackagent_webui/static/index.txt +4 -4
- hackagent_webui/static/profile.html +1 -1
- hackagent_webui/static/profile.txt +4 -4
- hackagent_webui/static/reports.html +1 -1
- hackagent_webui/static/reports.txt +3 -3
- hackagent_webui/static/stats.html +1 -1
- hackagent_webui/static/stats.txt +4 -4
- {hackagent_webui-0.5.4.dev40.dist-info → hackagent_webui-0.5.7.dev44.dist-info}/METADATA +1 -1
- {hackagent_webui-0.5.4.dev40.dist-info → hackagent_webui-0.5.7.dev44.dist-info}/RECORD +33 -33
- hackagent_webui/static/_next/static/chunks/326-a9081b3f86c9dd18.js +0 -1
- hackagent_webui/static/_next/static/chunks/511-dd81e821519476da.js +0 -1
- hackagent_webui/static/_next/static/chunks/921-18103c2d5cd6c671.js +0 -1
- hackagent_webui/static/_next/static/chunks/app/attacks/builder/page-4401ce40343e7239.js +0 -1
- hackagent_webui/static/_next/static/chunks/app/attacks/page-e34de8a5ee4cf257.js +0 -1
- hackagent_webui/static/_next/static/chunks/app/layout-4f66546247356e83.js +0 -1
- hackagent_webui/static/_next/static/chunks/app/page-65cb30228b8a1502.js +0 -1
- /hackagent_webui/static/_next/static/{GDxwpqq8ntlTxnBwUZHO- → HIoXscjHtxVCsDuJEjr4J}/_buildManifest.js +0 -0
- /hackagent_webui/static/_next/static/{GDxwpqq8ntlTxnBwUZHO- → HIoXscjHtxVCsDuJEjr4J}/_ssgManifest.js +0 -0
- {hackagent_webui-0.5.4.dev40.dist-info → hackagent_webui-0.5.7.dev44.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[326],{8301:()=>{},20063:(t,e,n)=>{"use strict";var r=n(47260);n.o(r,"usePathname")&&n.d(e,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(e,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(e,{useSearchParams:function(){return r.useSearchParams}})},23718:(t,e,n)=>{"use strict";n.d(e,{h:()=>h,n:()=>s});var r=n(12115),i=n(8828);let o=t=>{let e,n=new Set,r=(t,r)=>{let i="function"==typeof t?t(e):t;if(!Object.is(i,e)){let t=e;e=(null!=r?r:"object"!=typeof i||null===i)?i:Object.assign({},e,i),n.forEach(n=>n(e,t))}},i=()=>e,o={setState:r,getState:i,getInitialState:()=>a,subscribe:t=>(n.add(t),()=>n.delete(t)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=e=t(r,i,o);return o},{useDebugValue:a}=r,{useSyncExternalStoreWithSelector:u}=i,l=t=>t;function s(t,e=l,n){let r=u(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return a(r),r}let c=(t,e)=>{let n=(t=>t?o(t):o)(t),r=(t,r=e)=>s(n,t,r);return Object.assign(r,n),r},h=(t,e)=>t?c(t,e):c},35299:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});let r=(0,n(71847).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},43621:(t,e,n)=>{"use strict";n.d(e,{A:()=>function t(e){if("string"==typeof e||"number"==typeof e)return""+e;let n="";if(Array.isArray(e))for(let r=0,i;r<e.length;r++)""!==(i=t(e[r]))&&(n+=(n&&" ")+i);else for(let t in e)e[t]&&(n+=(n&&" ")+t);return n}})},49799:(t,e,n)=>{"use strict";n.d(e,{Do:()=>u,WZ:()=>i,TG:()=>l,ny:()=>o,yX:()=>s,xN:()=>c,Qc:()=>a,I$:()=>nL,aQ:()=>nj,di:()=>nV,kO:()=>nQ,rN:()=>ns,bi:()=>nk,_s:()=>e0,_7:()=>eN,aE:()=>ek,kr:()=>eV,Hm:()=>nw,tM:()=>ey,tn:()=>ep,xc:()=>ef,us:()=>eJ,IO:()=>ez,e_:()=>ne,Fp:()=>ni,Mi:()=>eD,HF:()=>ev,Eo:()=>e3,b5:()=>nm,Tq:()=>eS,qX:()=>na,q1:()=>e8,M_:()=>nv,oj:()=>e4,aZ:()=>eE,aW:()=>n_,uD:()=>eQ,Jo:()=>eM,U$:()=>eA,X6:()=>eX,oN:()=>np,ah:()=>nc,R4:()=>eK,r8:()=>nT,ZO:()=>ed,bK:()=>em,b$:()=>ex,uj:()=>nu,v5:()=>e9,Ue:()=>eZ,Er:()=>e7,oB:()=>e_,kf:()=>ej,mW:()=>eR,Q6:()=>e2,QE:()=>eG,kM:()=>eL,No:()=>nI,Ff:()=>eq,zj:()=>eF,s_:()=>eY,vS:()=>nA,qn:()=>nB,uL:()=>n$,YN:()=>e1});var r,i,o,a,u,l,s,c,h={value:()=>{}};function f(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new d(r)}function d(t){this._=t}function p(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=h,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}function y(){}function m(t){return null==t?y:function(){return this.querySelector(t)}}function g(){return[]}function v(t){return null==t?g:function(){return this.querySelectorAll(t)}}function x(t){return function(){return this.matches(t)}}function _(t){return function(e){return e.matches(t)}}d.prototype=f.prototype={constructor:d,on:function(t,e){var n,r=this._,i=(t+"").trim().split(/^|\s+/).map(function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:e}}),o=-1,a=i.length;if(arguments.length<2){for(;++o<a;)if((n=(t=i[o]).type)&&(n=function(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}(r[n],t.name)))return n;return}if(null!=e&&"function"!=typeof e)throw Error("invalid callback: "+e);for(;++o<a;)if(n=(t=i[o]).type)r[n]=p(r[n],t.name,e);else if(null==e)for(n in r)r[n]=p(r[n],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new d(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],o=0,n=r.length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};var w=Array.prototype.find;function b(){return this.firstElementChild}var M=Array.prototype.filter;function E(){return Array.from(this.children)}function A(t){return Array(t.length)}function z(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function k(t,e,n,r,i,o){for(var a,u=0,l=e.length,s=o.length;u<s;++u)(a=e[u])?(a.__data__=o[u],r[u]=a):n[u]=new z(t,o[u]);for(;u<l;++u)(a=e[u])&&(i[u]=a)}function S(t,e,n,r,i,o,a){var u,l,s,c=new Map,h=e.length,f=o.length,d=Array(h);for(u=0;u<h;++u)(l=e[u])&&(d[u]=s=a.call(l,l.__data__,u,e)+"",c.has(s)?i[u]=l:c.set(s,l));for(u=0;u<f;++u)s=a.call(t,o[u],u,o)+"",(l=c.get(s))?(r[u]=l,l.__data__=o[u],c.delete(s)):n[u]=new z(t,o[u]);for(u=0;u<h;++u)(l=e[u])&&c.get(d[u])===l&&(i[u]=l)}function P(t){return t.__data__}function T(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}z.prototype={constructor:z,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var $="http://www.w3.org/1999/xhtml";let I={svg:"http://www.w3.org/2000/svg",xhtml:$,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function N(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),I.hasOwnProperty(e)?{space:I[e],local:t}:t}function B(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function C(t,e){return t.style.getPropertyValue(e)||B(t).getComputedStyle(t,null).getPropertyValue(e)}function H(t){return t.trim().split(/^|\s+/)}function L(t){return t.classList||new O(t)}function O(t){this._node=t,this._names=H(t.getAttribute("class")||"")}function D(t,e){for(var n=L(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function X(t,e){for(var n=L(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function R(){this.textContent=""}function j(){this.innerHTML=""}function V(){this.nextSibling&&this.parentNode.appendChild(this)}function Y(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function q(t){var e=N(t);return(e.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===$&&e.documentElement.namespaceURI===$?e.createElement(t):e.createElementNS(n,t)}})(e)}function F(){return null}function W(){var t=this.parentNode;t&&t.removeChild(this)}function K(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Z(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function U(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)(n=e[r],t.type&&n.type!==t.type||n.name!==t.name)?e[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?e.length=i:delete this.__on}}}function Q(t,e,n){return function(){var r,i=this.__on,o=function(t){e.call(this,t,this.__data__)};if(i){for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),r.value=e;return}}this.addEventListener(t.type,o,n),r={type:t.type,name:t.name,value:e,listener:o,options:n},i?i.push(r):this.__on=[r]}}function G(t,e,n){var r=B(t),i=r.CustomEvent;"function"==typeof i?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}O.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var J=[null];function tt(t,e){this._groups=t,this._parents=e}function te(){return new tt([[document.documentElement]],J)}function tn(t){return"string"==typeof t?new tt([[document.querySelector(t)]],[document.documentElement]):new tt([[t]],J)}function tr(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}tt.prototype=te.prototype={constructor:tt,select:function(t){"function"!=typeof t&&(t=m(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a,u=e[i],l=u.length,s=r[i]=Array(l),c=0;c<l;++c)(o=u[c])&&(a=t.call(o,o.__data__,c,u))&&("__data__"in o&&(a.__data__=o.__data__),s[c]=a);return new tt(r,this._parents)},selectAll:function(t){if("function"==typeof t){var e;e=t,t=function(){var t;return t=e.apply(this,arguments),null==t?[]:Array.isArray(t)?t:Array.from(t)}}else t=v(t);for(var n=this._groups,r=n.length,i=[],o=[],a=0;a<r;++a)for(var u,l=n[a],s=l.length,c=0;c<s;++c)(u=l[c])&&(i.push(t.call(u,u.__data__,c,l)),o.push(u));return new tt(i,o)},selectChild:function(t){var e;return this.select(null==t?b:(e="function"==typeof t?t:_(t),function(){return w.call(this.children,e)}))},selectChildren:function(t){var e;return this.selectAll(null==t?E:(e="function"==typeof t?t:_(t),function(){return M.call(this.children,e)}))},filter:function(t){"function"!=typeof t&&(t=x(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a=e[i],u=a.length,l=r[i]=[],s=0;s<u;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&l.push(o);return new tt(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,P);var n=e?S:k,r=this._parents,i=this._groups;"function"!=typeof t&&(v=t,t=function(){return v});for(var o=i.length,a=Array(o),u=Array(o),l=Array(o),s=0;s<o;++s){var c=r[s],h=i[s],f=h.length,d="object"==typeof(g=t.call(c,c&&c.__data__,s,r))&&"length"in g?g:Array.from(g),p=d.length,y=u[s]=Array(p),m=a[s]=Array(p);n(c,h,y,m,l[s]=Array(f),d,e);for(var g,v,x,_,w=0,b=0;w<p;++w)if(x=y[w]){for(w>=b&&(b=w+1);!(_=m[b])&&++b<p;);x._next=_||null}}return(a=new tt(a,r))._enter=u,a._exit=l,a},enter:function(){return new tt(this._enter||this._groups.map(A),this._parents)},exit:function(){return new tt(this._exit||this._groups.map(A),this._parents)},join:function(t,e,n){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),u=Array(i),l=0;l<a;++l)for(var s,c=n[l],h=r[l],f=c.length,d=u[l]=Array(f),p=0;p<f;++p)(s=c[p]||h[p])&&(d[p]=s);for(;l<i;++l)u[l]=n[l];return new tt(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=T);for(var n=this._groups,r=n.length,i=Array(r),o=0;o<r;++o){for(var a,u=n[o],l=u.length,s=i[o]=Array(l),c=0;c<l;++c)(a=u[c])&&(s[c]=a);s.sort(e)}return new tt(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(let e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,e){var n=N(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof e?n.local?function(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}:function(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}:n.local?function(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}:function(t,e){return function(){this.setAttribute(t,e)}})(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof e?function(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}:function(t,e,n){return function(){this.style.setProperty(t,e,n)}})(t,e,null==n?"":n)):C(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?function(t){return function(){delete this[t]}}:"function"==typeof e?function(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}:function(t,e){return function(){this[t]=e}})(t,e)):this.node()[t]},classed:function(t,e){var n=H(t+"");if(arguments.length<2){for(var r=L(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?function(t,e){return function(){(e.apply(this,arguments)?D:X)(this,t)}}:e?function(t){return function(){D(this,t)}}:function(t){return function(){X(this,t)}})(n,e))},text:function(t){return arguments.length?this.each(null==t?R:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?j:("function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(V)},lower:function(){return this.each(Y)},append:function(t){var e="function"==typeof t?t:q(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})},insert:function(t,e){var n="function"==typeof t?t:q(t),r=null==e?F:"function"==typeof e?e:m(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(W)},clone:function(t){return this.select(t?Z:K)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}),a=o.length;if(arguments.length<2){var u=this.node().__on;if(u){for(var l,s=0,c=u.length;s<c;++s)for(r=0,l=u[s];r<a;++r)if((i=o[r]).type===l.type&&i.name===l.name)return l.value}return}for(r=0,u=e?Q:U;r<a;++r)this.each(u(o[r],e,n));return this},dispatch:function(t,e){return this.each(("function"==typeof e?function(t,e){return function(){return G(this,t,e.apply(this,arguments))}}:function(t,e){return function(){return G(this,t,e)}})(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r,i=t[e],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};let ti={passive:!1},to={capture:!0,passive:!1};function ta(t){t.stopImmediatePropagation()}function tu(t){t.preventDefault(),t.stopImmediatePropagation()}function tl(t){var e=t.document.documentElement,n=tn(t).on("dragstart.drag",tu,to);"onselectstart"in e?n.on("selectstart.drag",tu,to):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function ts(t,e){var n=t.document.documentElement,r=tn(t).on("dragstart.drag",null);e&&(r.on("click.drag",tu,to),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}let tc=t=>()=>t;function th(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:o,x:a,y:u,dx:l,dy:s,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:s,enumerable:!0,configurable:!0},_:{value:c}})}function tf(t){return!t.ctrlKey&&!t.button}function td(){return this.parentNode}function tp(t,e){return null==e?{x:t.x,y:t.y}:e}function ty(){return navigator.maxTouchPoints||"ontouchstart"in this}function tm(t){return((t=Math.exp(t))+1/t)/2}th.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};let tg=function t(e,n,r){function i(t,i){var o,a,u=t[0],l=t[1],s=t[2],c=i[0],h=i[1],f=i[2],d=c-u,p=h-l,y=d*d+p*p;if(y<1e-12)a=Math.log(f/s)/e,o=function(t){return[u+t*d,l+t*p,s*Math.exp(e*t*a)]};else{var m=Math.sqrt(y),g=(f*f-s*s+r*y)/(2*s*n*m),v=(f*f-s*s-r*y)/(2*f*n*m),x=Math.log(Math.sqrt(g*g+1)-g);a=(Math.log(Math.sqrt(v*v+1)-v)-x)/e,o=function(t){var r,i,o=t*a,c=tm(x),h=s/(n*m)*(c*(((r=Math.exp(2*(r=e*o+x)))-1)/(r+1))-((i=Math.exp(i=x))-1/i)/2);return[u+h*d,l+h*p,s*c/tm(e*o+x)]}}return o.duration=1e3*a*e/Math.SQRT2,o}return i.rho=function(e){var n=Math.max(.001,+e),r=n*n;return t(n,r,r*r)},i}(Math.SQRT2,2,4);var tv,tx,t_=0,tw=0,tb=0,tM=0,tE=0,tA=0,tz="object"==typeof performance&&performance.now?performance:Date,tk="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function tS(){return tE||(tk(tP),tE=tz.now()+tA)}function tP(){tE=0}function tT(){this._call=this._time=this._next=null}function t$(t,e,n){var r=new tT;return r.restart(t,e,n),r}function tI(){tE=(tM=tz.now())+tA,t_=tw=0;try{tS(),++t_;for(var t,e=tv;e;)(t=tE-e._time)>=0&&e._call.call(void 0,t),e=e._next;--t_}finally{t_=0,function(){for(var t,e,n=tv,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:tv=e);tx=t,tB(r)}(),tE=0}}function tN(){var t=tz.now(),e=t-tM;e>1e3&&(tA-=e,tM=t)}function tB(t){!t_&&(tw&&(tw=clearTimeout(tw)),t-tE>24?(t<1/0&&(tw=setTimeout(tI,t-tz.now()-tA)),tb&&(tb=clearInterval(tb))):(tb||(tM=tz.now(),tb=setInterval(tN,1e3)),t_=1,tk(tI)))}function tC(t,e,n){var r=new tT;return e=null==e?0:+e,r.restart(n=>{r.stop(),t(n+e)},e,n),r}tT.prototype=t$.prototype={constructor:tT,restart:function(t,e,n){if("function"!=typeof t)throw TypeError("callback is not a function");n=(null==n?tS():+n)+(null==e?0:+e),this._next||tx===this||(tx?tx._next=this:tv=this,tx=this),this._call=t,this._time=n,tB()},stop:function(){this._call&&(this._call=null,this._time=1/0,tB())}};var tH=f("start","end","cancel","interrupt"),tL=[];function tO(t,e,n,r,i,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function o(l){var s,c,h,f;if(1!==n.state)return u();for(s in i)if((f=i[s]).name===n.name){if(3===f.state)return tC(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[s]):+s<e&&(f.state=6,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[s])}if(tC(function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(s=0,n.state=3,r=Array(h=n.tween.length),c=-1;s<h;++s)(f=n.tween[s].value.call(t,t.__data__,n.index,n.group))&&(r[++c]=f);r.length=c+1}}function a(e){for(var i=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(u),n.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){for(var r in n.state=6,n.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=n,n.timer=t$(function(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)},0,n.time)}(t,n,{name:e,index:r,group:i,on:tH,tween:tL,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function tD(t,e){var n=tR(t,e);if(n.state>0)throw Error("too late; already scheduled");return n}function tX(t,e){var n=tR(t,e);if(n.state>3)throw Error("too late; already running");return n}function tR(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw Error("transition not found");return n}function tj(t,e){var n,r,i,o=t.__transition,a=!0;if(o){for(i in e=null==e?null:e+"",o){if((n=o[i]).name!==e){a=!1;continue}r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[i]}a&&delete t.__transition}}var tV=n(71716),tY=180/Math.PI,tq={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function tF(t,e,n,r,i,o){var a,u,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*n+e*r)&&(n-=t*l,r-=e*l),(u=Math.sqrt(n*n+r*r))&&(n/=u,r/=u,l/=u),t*r<e*n&&(t=-t,e=-e,l=-l,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*tY,skewX:Math.atan(l)*tY,scaleX:a,scaleY:u}}function tW(t,e,n,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u,l,s,c,h=[],f=[];return o=t(o),a=t(a),!function(t,r,i,o,a,u){if(t!==i||r!==o){var l=a.push("translate(",null,e,null,n);u.push({i:l-4,x:(0,tV.A)(t,i)},{i:l-2,x:(0,tV.A)(r,o)})}else(i||o)&&a.push("translate("+i+e+o+n)}(o.translateX,o.translateY,a.translateX,a.translateY,h,f),u=o.rotate,l=a.rotate,u!==l?(u-l>180?l+=360:l-u>180&&(u+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:(0,tV.A)(u,l)})):l&&h.push(i(h)+"rotate("+l+r),s=o.skewX,c=a.skewX,s!==c?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:(0,tV.A)(s,c)}):c&&h.push(i(h)+"skewX("+c+r),!function(t,e,n,r,o,a){if(t!==n||e!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:(0,tV.A)(t,n)},{i:u-2,x:(0,tV.A)(e,r)})}else(1!==n||1!==r)&&o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,h,f),o=a=null,function(t){for(var e,n=-1,r=f.length;++n<r;)h[(e=f[n]).i]=e.x(t);return h.join("")}}}var tK=tW(function(t){let e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?tq:tF(e.a,e.b,e.c,e.d,e.e,e.f)},"px, ","px)","deg)"),tZ=tW(function(t){return null==t?tq:(r||(r=document.createElementNS("http://www.w3.org/2000/svg","g")),r.setAttribute("transform",t),t=r.transform.baseVal.consolidate())?tF((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):tq},", ",")",")");function tU(t,e,n){var r=t._id;return t.each(function(){var t=tX(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)}),function(t){return tR(t,r).value[e]}}var tQ=n(73690),tG=n(23767),tJ=n(8592);function t0(t,e){var n;return("number"==typeof e?tV.A:e instanceof tQ.Ay?tG.Ay:(n=(0,tQ.Ay)(e))?(e=n,tG.Ay):tJ.A)(t,e)}var t1=te.prototype.constructor;function t2(t){return function(){this.style.removeProperty(t)}}var t5=0;function t3(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}var t4=te.prototype;t3.prototype=(function(t){return te().transition(t)}).prototype={constructor:t3,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=m(t));for(var r=this._groups,i=r.length,o=Array(i),a=0;a<i;++a)for(var u,l,s=r[a],c=s.length,h=o[a]=Array(c),f=0;f<c;++f)(u=s[f])&&(l=t.call(u,u.__data__,f,s))&&("__data__"in u&&(l.__data__=u.__data__),h[f]=l,tO(h[f],e,n,f,h,tR(u,n)));return new t3(o,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=v(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var l,s=r[u],c=s.length,h=0;h<c;++h)if(l=s[h]){for(var f,d=t.call(l,l.__data__,h,s),p=tR(l,n),y=0,m=d.length;y<m;++y)(f=d[y])&&tO(f,e,n,y,d,p);o.push(d),a.push(l)}return new t3(o,a,e,n)},selectChild:t4.selectChild,selectChildren:t4.selectChildren,filter:function(t){"function"!=typeof t&&(t=x(t));for(var e=this._groups,n=e.length,r=Array(n),i=0;i<n;++i)for(var o,a=e[i],u=a.length,l=r[i]=[],s=0;s<u;++s)(o=a[s])&&t.call(o,o.__data__,s,a)&&l.push(o);return new t3(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=Array(r),u=0;u<o;++u)for(var l,s=e[u],c=n[u],h=s.length,f=a[u]=Array(h),d=0;d<h;++d)(l=s[d]||c[d])&&(f[d]=l);for(;u<r;++u)a[u]=e[u];return new t3(a,this._parents,this._name,this._id)},selection:function(){return new t1(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=++t5,r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,s=0;s<l;++s)if(a=u[s]){var c=tR(a,e);tO(a,t,n,s,u,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new t3(r,this._parents,t,n)},call:t4.call,nodes:t4.nodes,node:t4.node,size:t4.size,empty:t4.empty,each:t4.each,on:function(t,e){var n,r,i,o,a,u,l=this._id;return arguments.length<2?tR(this.node(),l).on.on(t):this.each((n=l,r=t,i=e,u=(r+"").trim().split(/^|\s+/).every(function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t})?tD:tX,function(){var t=u(this,n),e=t.on;e!==o&&(a=(o=e).copy()).on(r,i),t.on=a}))},attr:function(t,e){var n=N(t),r="transform"===n?tZ:t0;return this.attrTween(t,"function"==typeof e?(n.local?function(t,e,n){var r,i,o;return function(){var a,u,l=n(this);return null==l?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=e(r=a,l))}}:function(t,e,n){var r,i,o;return function(){var a,u,l=n(this);return null==l?void this.removeAttribute(t):(a=this.getAttribute(t))===(u=l+"")?null:a===r&&u===i?o:(i=u,o=e(r=a,l))}})(n,r,tU(this,"attr."+t,e)):null==e?(n.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(n):(n.local?function(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=e(r=a,n)}}:function(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=e(r=a,n)}})(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw Error();var r=N(t);return this.tween(n,(r.local?function(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(e){this.setAttributeNS(t.space,t.local,i.call(this,e))}),n}return i._value=e,i}:function(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(e){this.setAttribute(t,i.call(this,e))}),n}return i._value=e,i})(r,e))},style:function(t,e,n){var r,i,o,a,u,l,s,c,h,f,d,p,y,m,g,v,x,_,w,b,M,E="transform"==(t+="")?tK:t0;return null==e?this.styleTween(t,(r=t,function(){var t=C(this,r),e=(this.style.removeProperty(r),C(this,r));return t===e?null:t===i&&e===o?a:a=E(i=t,o=e)})).on("end.style."+t,t2(t)):"function"==typeof e?this.styleTween(t,(u=t,l=tU(this,"style."+t,e),function(){var t=C(this,u),e=l(this),n=e+"";return null==e&&(this.style.removeProperty(u),n=e=C(this,u)),t===n?null:t===s&&n===c?h:(c=n,h=E(s=t,e))})).each((f=this._id,x="end."+(v="style."+(d=t)),function(){var t=tX(this,f),e=t.on,n=null==t.value[v]?g||(g=t2(d)):void 0;(e!==p||m!==n)&&(y=(p=e).copy()).on(x,m=n),t.on=y})):this.styleTween(t,(_=t,M=e+"",function(){var t=C(this,_);return t===M?null:t===w?b:b=E(w=t,e)}),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw Error();return this.tween(r,function(t,e,n){var r,i;function o(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&function(e){this.style.setProperty(t,o.call(this,e),n)}),r}return o._value=e,o}(t,e,null==n?"":n))},text:function(t){var e,n;return this.tween("text","function"==typeof t?(e=tU(this,"text",t),function(){var t=e(this);this.textContent=null==t?"":t}):(n=null==t?"":t+"",function(){this.textContent=n}))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw Error();return this.tween(e,function(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&function(t){this.textContent=r.call(this,t)}),e}return r._value=t,r}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,i=tR(this.node(),n).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==e?function(t,e){var n,r;return function(){var i=tX(this,t),o=i.tween;if(o!==n){r=n=o;for(var a=0,u=r.length;a<u;++a)if(r[a].name===e){(r=r.slice()).splice(a,1);break}}i.tween=r}}:function(t,e,n){var r,i;if("function"!=typeof n)throw Error();return function(){var o=tX(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:e,value:n},l=0,s=i.length;l<s;++l)if(i[l].name===e){i[l]=u;break}l===s&&i.push(u)}o.tween=i}})(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tD(this,t).delay=+e.apply(this,arguments)}}:function(t,e){return e*=1,function(){tD(this,t).delay=e}})(e,t)):tR(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?function(t,e){return function(){tX(this,t).duration=+e.apply(this,arguments)}}:function(t,e){return e*=1,function(){tX(this,t).duration=e}})(e,t)):tR(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw Error();return function(){tX(this,t).ease=e}}(e,t)):tR(this.node(),e).ease},easeVarying:function(t){var e;if("function"!=typeof t)throw Error();return this.each((e=this._id,function(){var n=t.apply(this,arguments);if("function"!=typeof n)throw Error();tX(this,e).ease=n}))},end:function(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(o,a){var u={value:a},l={value:function(){0==--i&&o()}};n.each(function(){var n=tX(this,r),i=n.on;i!==t&&((e=(t=i).copy())._.cancel.push(u),e._.interrupt.push(u),e._.end.push(l)),n.on=e}),0===i&&o()})},[Symbol.iterator]:t4[Symbol.iterator]};var t6={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};te.prototype.interrupt=function(t){return this.each(function(){tj(this,t)})},te.prototype.transition=function(t){var e,n;t instanceof t3?(e=t._id,t=t._name):(e=++t5,(n=t6).time=tS(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],l=u.length,s=0;s<l;++s)(a=u[s])&&tO(a,t,e,s,u,n||function(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw Error(`transition ${e} not found`);return n}(a,e));return new t3(r,this._parents,t,e)};let t9=t=>()=>t;function t7(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function t8(t,e,n){this.k=t,this.x=e,this.y=n}t8.prototype={constructor:t8,scale:function(t){return 1===t?this:new t8(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new t8(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var et=new t8(1,0,0);function ee(t){for(;!t.__zoom;)if(!(t=t.parentNode))return et;return t.__zoom}function en(t){t.stopImmediatePropagation()}function er(t){t.preventDefault(),t.stopImmediatePropagation()}function ei(t){return(!t.ctrlKey||"wheel"===t.type)&&!t.button}function eo(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function ea(){return this.__zoom||et}function eu(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function el(){return navigator.maxTouchPoints||"ontouchstart"in this}function es(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function ec(){var t,e,n,r=ei,i=eo,o=es,a=eu,u=el,l=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],c=250,h=tg,d=f("start","zoom","end"),p=0,y=10;function m(t){t.property("__zoom",ea).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",A).filter(u).on("touchstart.zoom",z).on("touchmove.zoom",k).on("touchend.zoom touchcancel.zoom",S).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(t,e){return(e=Math.max(l[0],Math.min(l[1],e)))===t.k?t:new t8(e,t.x,t.y)}function v(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new t8(t.k,r,i)}function x(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function _(t,e,n,r){t.on("start.zoom",function(){w(this,arguments).event(r).start()}).on("interrupt.zoom end.zoom",function(){w(this,arguments).event(r).end()}).tween("zoom",function(){var t=arguments,o=w(this,t).event(r),a=i.apply(this,t),u=null==n?x(a):"function"==typeof n?n.apply(this,t):n,l=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),s=this.__zoom,c="function"==typeof e?e.apply(this,t):e,f=h(s.invert(u).concat(l/s.k),c.invert(u).concat(l/c.k));return function(t){if(1===t)t=c;else{var e=f(t),n=l/e[2];t=new t8(n,u[0]-e[0]*n,u[1]-e[1]*n)}o.zoom(null,t)}})}function w(t,e,n){return!n&&t.__zooming||new b(t,e)}function b(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,e),this.taps=0}function M(t,...e){if(r.apply(this,arguments)){var n=w(this,e).event(t),i=this.__zoom,u=Math.max(l[0],Math.min(l[1],i.k*Math.pow(2,a.apply(this,arguments)))),c=tr(t);if(n.wheel)(n.mouse[0][0]!==c[0]||n.mouse[0][1]!==c[1])&&(n.mouse[1]=i.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(i.k===u)return;n.mouse=[c,i.invert(c)],tj(this),n.start()}er(t),n.wheel=setTimeout(function(){n.wheel=null,n.end()},150),n.zoom("mouse",o(v(g(i,u),n.mouse[0],n.mouse[1]),n.extent,s))}}function E(t,...e){if(!n&&r.apply(this,arguments)){var i=t.currentTarget,a=w(this,e,!0).event(t),u=tn(t.view).on("mousemove.zoom",function(t){if(er(t),!a.moved){var e=t.clientX-c,n=t.clientY-h;a.moved=e*e+n*n>p}a.event(t).zoom("mouse",o(v(a.that.__zoom,a.mouse[0]=tr(t,i),a.mouse[1]),a.extent,s))},!0).on("mouseup.zoom",function(t){u.on("mousemove.zoom mouseup.zoom",null),ts(t.view,a.moved),er(t),a.event(t).end()},!0),l=tr(t,i),c=t.clientX,h=t.clientY;tl(t.view),en(t),a.mouse=[l,this.__zoom.invert(l)],tj(this),a.start()}}function A(t,...e){if(r.apply(this,arguments)){var n=this.__zoom,a=tr(t.changedTouches?t.changedTouches[0]:t,this),u=n.invert(a),l=n.k*(t.shiftKey?.5:2),h=o(v(g(n,l),a,u),i.apply(this,e),s);er(t),c>0?tn(this).transition().duration(c).call(_,h,a,t):tn(this).call(m.transform,h,a,t)}}function z(n,...i){if(r.apply(this,arguments)){var o,a,u,l,s=n.touches,c=s.length,h=w(this,i,n.changedTouches.length===c).event(n);for(en(n),a=0;a<c;++a)l=[l=tr(u=s[a],this),this.__zoom.invert(l),u.identifier],h.touch0?h.touch1||h.touch0[2]===l[2]||(h.touch1=l,h.taps=0):(h.touch0=l,o=!0,h.taps=1+!!t);t&&(t=clearTimeout(t)),o&&(h.taps<2&&(e=l[0],t=setTimeout(function(){t=null},500)),tj(this),h.start())}}function k(t,...e){if(this.__zooming){var n,r,i,a,u=w(this,e).event(t),l=t.changedTouches,c=l.length;for(er(t),n=0;n<c;++n)i=tr(r=l[n],this),u.touch0&&u.touch0[2]===r.identifier?u.touch0[0]=i:u.touch1&&u.touch1[2]===r.identifier&&(u.touch1[0]=i);if(r=u.that.__zoom,u.touch1){var h=u.touch0[0],f=u.touch0[1],d=u.touch1[0],p=u.touch1[1],y=(y=d[0]-h[0])*y+(y=d[1]-h[1])*y,m=(m=p[0]-f[0])*m+(m=p[1]-f[1])*m;r=g(r,Math.sqrt(y/m)),i=[(h[0]+d[0])/2,(h[1]+d[1])/2],a=[(f[0]+p[0])/2,(f[1]+p[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],a=u.touch0[1]}u.zoom("touch",o(v(r,i,a),u.extent,s))}}function S(t,...r){if(this.__zooming){var i,o,a=w(this,r).event(t),u=t.changedTouches,l=u.length;for(en(t),n&&clearTimeout(n),n=setTimeout(function(){n=null},500),i=0;i<l;++i)o=u[i],a.touch0&&a.touch0[2]===o.identifier?delete a.touch0:a.touch1&&a.touch1[2]===o.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(o=tr(o,this),Math.hypot(e[0]-o[0],e[1]-o[1])<y)){var s=tn(this).on("dblclick.zoom");s&&s.apply(this,arguments)}}}return m.transform=function(t,e,n,r){var i=t.selection?t.selection():t;i.property("__zoom",ea),t!==i?_(t,e,n,r):i.interrupt().each(function(){w(this,arguments).event(r).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()})},m.scaleBy=function(t,e,n,r){m.scaleTo(t,function(){var t=this.__zoom.k,n="function"==typeof e?e.apply(this,arguments):e;return t*n},n,r)},m.scaleTo=function(t,e,n,r){m.transform(t,function(){var t=i.apply(this,arguments),r=this.__zoom,a=null==n?x(t):"function"==typeof n?n.apply(this,arguments):n,u=r.invert(a),l="function"==typeof e?e.apply(this,arguments):e;return o(v(g(r,l),a,u),t,s)},n,r)},m.translateBy=function(t,e,n,r){m.transform(t,function(){return o(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),i.apply(this,arguments),s)},null,r)},m.translateTo=function(t,e,n,r,a){m.transform(t,function(){var t=i.apply(this,arguments),a=this.__zoom,u=null==r?x(t):"function"==typeof r?r.apply(this,arguments):r;return o(et.translate(u[0],u[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,s)},r,a)},b.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=tn(this.that).datum();d.call(t,this.that,new t7(t,{sourceEvent:this.sourceEvent,target:m,type:t,transform:this.that.__zoom,dispatch:d}),e)}},m.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:t9(+t),m):a},m.filter=function(t){return arguments.length?(r="function"==typeof t?t:t9(!!t),m):r},m.touchable=function(t){return arguments.length?(u="function"==typeof t?t:t9(!!t),m):u},m.extent=function(t){return arguments.length?(i="function"==typeof t?t:t9([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),m):i},m.scaleExtent=function(t){return arguments.length?(l[0]=+t[0],l[1]=+t[1],m):[l[0],l[1]]},m.translateExtent=function(t){return arguments.length?(s[0][0]=+t[0][0],s[1][0]=+t[1][0],s[0][1]=+t[0][1],s[1][1]=+t[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(t){return arguments.length?(o=t,m):o},m.duration=function(t){return arguments.length?(c=+t,m):c},m.interpolate=function(t){return arguments.length?(h=t,m):h},m.on=function(){var t=d.on.apply(d,arguments);return t===d?m:t},m.clickDistance=function(t){return arguments.length?(p=(t*=1)*t,m):Math.sqrt(p)},m.tapDistance=function(t){return arguments.length?(y=+t,m):y},m}ee.prototype=t8.prototype;var eh=n(46753);let ef={error001:(t="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${t}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:e,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${t} handle id: "${"source"===t?n:r}", edge id: ${e}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:t=>`Edge with id "${t}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},ed=[[-1/0,-1/0],[1/0,1/0]],ep=["Enter"," ","Escape"],ey={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:e,y:n})=>`Moved selected node ${t}. New position, x: ${e}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};!function(t){t.Strict="strict",t.Loose="loose"}(i||(i={})),function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"}(o||(o={})),function(t){t.Partial="partial",t.Full="full"}(a||(a={}));let em={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};!function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"}(u||(u={})),function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"}(l||(l={})),function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"}(s||(s={}));let eg={[s.Left]:s.Right,[s.Right]:s.Left,[s.Top]:s.Bottom,[s.Bottom]:s.Top};function ev(t){return null===t?null:t?"valid":"invalid"}let ex=t=>"id"in t&&"source"in t&&"target"in t,e_=t=>"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),ew=t=>"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),eb=(t,e=[0,0])=>{let{width:n,height:r}=eQ(t),i=t.origin??e,o=n*i[0],a=r*i[1];return{x:t.position.x-o,y:t.position.y-a}},eM=(t,e={nodeOrigin:[0,0]})=>0===t.length?{x:0,y:0,width:0,height:0}:eH(t.reduce((t,n)=>{let r="string"==typeof n,i=e.nodeLookup||r?void 0:n;return e.nodeLookup&&(i=r?e.nodeLookup.get(n):ew(n)?n:e.nodeLookup.get(n.id)),eB(t,i?eO(i,e.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),eE=(t,e={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return t.forEach(t=>{(void 0===e.filter||e.filter(t))&&(n=eB(n,eO(t)),r=!0)}),r?eH(n):{x:0,y:0,width:0,height:0}},eA=(t,e,[n,r,i]=[0,0,1],o=!1,a=!1)=>{let u={...eq(e,[n,r,i]),width:e.width/i,height:e.height/i},l=[];for(let e of t.values()){let{measured:t,selectable:n=!0,hidden:r=!1}=e;if(a&&!n||r)continue;let i=t.width??e.width??e.initialWidth??null,s=t.height??e.height??e.initialHeight??null,c=eX(u,eL(e)),h=(i??0)*(s??0),f=o&&c>0;(!e.internals.handleBounds||f||c>=h||e.dragging)&&l.push(e)}return l};async function ez({nodes:t,width:e,height:n,panZoom:r,minZoom:i,maxZoom:o},a){if(0===t.size)return!0;let u=eK(eE(function(t,e){let n=new Map,r=e?.nodes?new Set(e.nodes.map(t=>t.id)):null;return t.forEach(t=>{t.measured.width&&t.measured.height&&(e?.includeHiddenNodes||!t.hidden)&&(!r||r.has(t.id))&&n.set(t.id,t)}),n}(t,a)),e,n,a?.minZoom??i,a?.maxZoom??o,a?.padding??.1);return await r.setViewport(u,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),!0}function ek({nodeId:t,nextPosition:e,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:o}){let a=n.get(t),u=a.parentId?n.get(a.parentId):void 0,{x:l,y:s}=u?u.internals.positionAbsolute:{x:0,y:0},c=a.origin??r,h=a.extent||i;if("parent"!==a.extent||a.expandParent)u&&eU(a.extent)&&(h=[[a.extent[0][0]+l,a.extent[0][1]+s],[a.extent[1][0]+l,a.extent[1][1]+s]]);else if(u){let t=u.measured.width,e=u.measured.height;t&&e&&(h=[[l,s],[l+t,s+e]])}else o?.("005",ef.error005());let f=eU(h)?eT(e,h,a.measured):e;return(void 0===a.measured.width||void 0===a.measured.height)&&o?.("015",ef.error015()),{position:{x:f.x-l+(a.measured.width??0)*c[0],y:f.y-s+(a.measured.height??0)*c[1]},positionAbsolute:f}}async function eS({nodesToRemove:t=[],edgesToRemove:e=[],nodes:n,edges:r,onBeforeDelete:i}){let o=new Set(t.map(t=>t.id)),a=[];for(let t of n){if(!1===t.deletable)continue;let e=o.has(t.id),n=!e&&t.parentId&&a.find(e=>e.id===t.parentId);(e||n)&&a.push(t)}let u=new Set(e.map(t=>t.id)),l=r.filter(t=>!1!==t.deletable),s=((t,e)=>{let n=new Set;return t.forEach(t=>{n.add(t.id)}),e.filter(t=>n.has(t.source)||n.has(t.target))})(a,l);for(let t of l)u.has(t.id)&&!s.find(e=>e.id===t.id)&&s.push(t);if(!i)return{edges:s,nodes:a};let c=await i({nodes:a,edges:s});return"boolean"==typeof c?c?{edges:s,nodes:a}:{edges:[],nodes:[]}:c}let eP=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),eT=(t={x:0,y:0},e,n)=>({x:eP(t.x,e[0][0],e[1][0]-(n?.width??0)),y:eP(t.y,e[0][1],e[1][1]-(n?.height??0))});function e$(t,e,n){let{width:r,height:i}=eQ(n),{x:o,y:a}=n.internals.positionAbsolute;return eT(t,[[o,a],[o+r,a+i]],e)}let eI=(t,e,n)=>t<e?eP(Math.abs(t-e),1,e)/e:t>n?-eP(Math.abs(t-n),1,e)/e:0,eN=(t,e,n=15,r=40)=>[eI(t.x,r,e.width-r)*n,eI(t.y,r,e.height-r)*n],eB=(t,e)=>({x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x2,e.x2),y2:Math.max(t.y2,e.y2)}),eC=({x:t,y:e,width:n,height:r})=>({x:t,y:e,x2:t+n,y2:e+r}),eH=({x:t,y:e,x2:n,y2:r})=>({x:t,y:e,width:n-t,height:r-e}),eL=(t,e=[0,0])=>{let{x:n,y:r}=ew(t)?t.internals.positionAbsolute:eb(t,e);return{x:n,y:r,width:t.measured?.width??t.width??t.initialWidth??0,height:t.measured?.height??t.height??t.initialHeight??0}},eO=(t,e=[0,0])=>{let{x:n,y:r}=ew(t)?t.internals.positionAbsolute:eb(t,e);return{x:n,y:r,x2:n+(t.measured?.width??t.width??t.initialWidth??0),y2:r+(t.measured?.height??t.height??t.initialHeight??0)}},eD=(t,e)=>eH(eB(eC(t),eC(e))),eX=(t,e)=>Math.ceil(Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x))*Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y))),eR=t=>ej(t.width)&&ej(t.height)&&ej(t.x)&&ej(t.y),ej=t=>!isNaN(t)&&isFinite(t),eV=(t,e)=>(t,e)=>{},eY=(t,e=[1,1])=>({x:e[0]*Math.round(t.x/e[0]),y:e[1]*Math.round(t.y/e[1])}),eq=({x:t,y:e},[n,r,i],o=!1,a=[1,1])=>{let u={x:(t-n)/i,y:(e-r)/i};return o?eY(u,a):u},eF=({x:t,y:e},[n,r,i])=>({x:t*i+n,y:e*i+r});function eW(t,e){if("number"==typeof t)return Math.floor((e-e/(1+t))*.5);if("string"==typeof t&&t.endsWith("px")){let e=parseFloat(t);if(!Number.isNaN(e))return Math.floor(e)}if("string"==typeof t&&t.endsWith("%")){let n=parseFloat(t);if(!Number.isNaN(n))return Math.floor(e*n*.01)}return console.error(`The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let eK=(t,e,n,r,i,o)=>{let a=function(t,e,n){if("string"==typeof t||"number"==typeof t){let r=eW(t,n),i=eW(t,e);return{top:r,right:i,bottom:r,left:i,x:2*i,y:2*r}}if("object"==typeof t){let r=eW(t.top??t.y??0,n),i=eW(t.bottom??t.y??0,n),o=eW(t.left??t.x??0,e),a=eW(t.right??t.x??0,e);return{top:r,right:a,bottom:i,left:o,x:o+a,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(o,e,n),u=eP(Math.min((e-a.x)/t.width,(n-a.y)/t.height),r,i),l=t.x+t.width/2,s=t.y+t.height/2,c=e/2-l*u,h=n/2-s*u,f=function(t,e,n,r,i,o){let{x:a,y:u}=eF(t,[e,n,r]),{x:l,y:s}=eF({x:t.x+t.width,y:t.y+t.height},[e,n,r]);return{left:Math.floor(a),top:Math.floor(u),right:Math.floor(i-l),bottom:Math.floor(o-s)}}(t,c,h,u,e,n),d={left:Math.min(f.left-a.left,0),top:Math.min(f.top-a.top,0),right:Math.min(f.right-a.right,0),bottom:Math.min(f.bottom-a.bottom,0)};return{x:c-d.left+d.right,y:h-d.top+d.bottom,zoom:u}},eZ=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function eU(t){return null!=t&&"parent"!==t}function eQ(t){return{width:t.measured?.width??t.width??t.initialWidth??0,height:t.measured?.height??t.height??t.initialHeight??0}}function eG(t){return(t.measured?.width??t.width??t.initialWidth)!==void 0&&(t.measured?.height??t.height??t.initialHeight)!==void 0}function eJ(t,e={width:0,height:0},n,r,i){let o={...t},a=r.get(n);if(a){let t=a.origin||i;o.x+=a.internals.positionAbsolute.x-(e.width??0)*t[0],o.y+=a.internals.positionAbsolute.y-(e.height??0)*t[1]}return o}function e0(t,e){if(t.size!==e.size)return!1;for(let n of t)if(!e.has(n))return!1;return!0}function e1(){let t,e;return{promise:new Promise((n,r)=>{t=n,e=r}),resolve:t,reject:e}}function e2(t){return{...ey,...t||{}}}function e5(t,{snapGrid:e=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:o,y:a}=e8(t),u=eq({x:o-(i?.left??0),y:a-(i?.top??0)},r),{x:l,y:s}=n?eY(u,e):u;return{xSnapped:l,ySnapped:s,...u}}let e3=t=>({width:t.offsetWidth,height:t.offsetHeight}),e4=t=>t?.getRootNode?.()||window?.document,e6=["INPUT","SELECT","TEXTAREA"];function e9(t){let e=t.composedPath?.()?.[0]||t.target;return e?.nodeType===1&&(e6.includes(e.nodeName)||e.hasAttribute("contenteditable")||!!e.closest(".nokey"))}let e7=t=>"clientX"in t,e8=(t,e)=>{let n=e7(t),r=n?t.clientX:t.touches?.[0].clientX,i=n?t.clientY:t.touches?.[0].clientY;return{x:r-(e?.left??0),y:i-(e?.top??0)}},nt=(t,e,n,r,i)=>{let o=e.querySelectorAll(`.${t}`);return o&&o.length?Array.from(o).map(e=>{let o=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),type:t,nodeId:i,position:e.getAttribute("data-handlepos"),x:(o.left-n.left)/r,y:(o.top-n.top)/r,...e3(e)}}):null};function ne({sourceX:t,sourceY:e,targetX:n,targetY:r,sourceControlX:i,sourceControlY:o,targetControlX:a,targetControlY:u}){let l=.125*t+.375*i+.375*a+.125*n,s=.125*e+.375*o+.375*u+.125*r,c=Math.abs(l-t),h=Math.abs(s-e);return[l,s,c,h]}function nn(t,e){return t>=0?.5*t:25*e*Math.sqrt(-t)}function nr({pos:t,x1:e,y1:n,x2:r,y2:i,c:o}){switch(t){case s.Left:return[e-nn(e-r,o),n];case s.Right:return[e+nn(r-e,o),n];case s.Top:return[e,n-nn(n-i,o)];case s.Bottom:return[e,n+nn(i-n,o)]}}function ni({sourceX:t,sourceY:e,sourcePosition:n=s.Bottom,targetX:r,targetY:i,targetPosition:o=s.Top,curvature:a=.25}){let[u,l]=nr({pos:n,x1:t,y1:e,x2:r,y2:i,c:a}),[c,h]=nr({pos:o,x1:r,y1:i,x2:t,y2:e,c:a}),[f,d,p,y]=ne({sourceX:t,sourceY:e,targetX:r,targetY:i,sourceControlX:u,sourceControlY:l,targetControlX:c,targetControlY:h});return[`M${t},${e} C${u},${l} ${c},${h} ${r},${i}`,f,d,p,y]}function no({sourceX:t,sourceY:e,targetX:n,targetY:r}){let i=Math.abs(n-t)/2,o=Math.abs(r-e)/2;return[n<t?n+i:n-i,r<e?r+o:r-o,i,o]}function na({sourceNode:t,targetNode:e,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:o="basic"}){if("manual"===o)return r;let a=Math.max(t.parentId||i&&t.selected?t.internals.z:0,e.parentId||i&&e.selected?e.internals.z:0);return(i&&n?r+1e3:r)+a}function nu({sourceNode:t,targetNode:e,width:n,height:r,transform:i}){let o=eB(eO(t),eO(e));return o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1),eX({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},eH(o))>0}let nl=({source:t,sourceHandle:e,target:n,targetHandle:r})=>`xy-edge__${t}${e||""}-${n}${r||""}`,ns=(t,e,n={})=>{let r;if(!t.source||!t.target)return n.onError?.("006",ef.error006()),e;let i=n.getEdgeId||nl;return((t,e)=>e.some(e=>e.source===t.source&&e.target===t.target&&(e.sourceHandle===t.sourceHandle||!e.sourceHandle&&!t.sourceHandle)&&(e.targetHandle===t.targetHandle||!e.targetHandle&&!t.targetHandle)))(r=ex(t)?{...t}:{...t,id:i(t)},e)?e:(null===r.sourceHandle&&delete r.sourceHandle,null===r.targetHandle&&delete r.targetHandle,e.concat(r))};function nc({sourceX:t,sourceY:e,targetX:n,targetY:r}){let[i,o,a,u]=no({sourceX:t,sourceY:e,targetX:n,targetY:r});return[`M ${t},${e}L ${n},${r}`,i,o,a,u]}let nh={[s.Left]:{x:-1,y:0},[s.Right]:{x:1,y:0},[s.Top]:{x:0,y:-1},[s.Bottom]:{x:0,y:1}},nf=({source:t,sourcePosition:e=s.Bottom,target:n})=>e===s.Left||e===s.Right?t.x<n.x?{x:1,y:0}:{x:-1,y:0}:t.y<n.y?{x:0,y:1}:{x:0,y:-1},nd=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function np({sourceX:t,sourceY:e,sourcePosition:n=s.Bottom,targetX:r,targetY:i,targetPosition:o=s.Top,borderRadius:a=5,centerX:u,centerY:l,offset:c=20,stepPosition:h=.5}){let[f,d,p,y,m]=function({source:t,sourcePosition:e=s.Bottom,target:n,targetPosition:r=s.Top,center:i,offset:o,stepPosition:a}){let u,l,c=nh[e],h=nh[r],f={x:t.x+c.x*o,y:t.y+c.y*o},d={x:n.x+h.x*o,y:n.y+h.y*o},p=nf({source:f,sourcePosition:e,target:d}),y=0!==p.x?"x":"y",m=p[y],g=[],v={x:0,y:0},x={x:0,y:0},[,,_,w]=no({sourceX:t.x,sourceY:t.y,targetX:n.x,targetY:n.y});if(c[y]*h[y]==-1){"x"===y?(u=i.x??f.x+(d.x-f.x)*a,l=i.y??(f.y+d.y)/2):(u=i.x??(f.x+d.x)/2,l=i.y??f.y+(d.y-f.y)*a);let t=[{x:u,y:f.y},{x:u,y:d.y}],e=[{x:f.x,y:l},{x:d.x,y:l}];g=c[y]===m?"x"===y?t:e:"x"===y?e:t}else{let i=[{x:f.x,y:d.y}],a=[{x:d.x,y:f.y}];if(g="x"===y?c.x===m?a:i:c.y===m?i:a,e===r){let e=Math.abs(t[y]-n[y]);if(e<=o){let r=Math.min(o-1,o-e);c[y]===m?v[y]=(f[y]>t[y]?-1:1)*r:x[y]=(d[y]>n[y]?-1:1)*r}}if(e!==r){let t="x"===y?"y":"x",e=c[y]===h[t],n=f[t]>d[t],r=f[t]<d[t];(1===c[y]&&(!e&&n||e&&r)||1!==c[y]&&(!e&&r||e&&n))&&(g="x"===y?i:a)}let s={x:f.x+v.x,y:f.y+v.y},p={x:d.x+x.x,y:d.y+x.y};Math.max(Math.abs(s.x-g[0].x),Math.abs(p.x-g[0].x))>=Math.max(Math.abs(s.y-g[0].y),Math.abs(p.y-g[0].y))?(u=(s.x+p.x)/2,l=g[0].y):(u=g[0].x,l=(s.y+p.y)/2)}let b={x:f.x+v.x,y:f.y+v.y},M={x:d.x+x.x,y:d.y+x.y};return[[t,...b.x!==g[0].x||b.y!==g[0].y?[b]:[],...g,...M.x!==g[g.length-1].x||M.y!==g[g.length-1].y?[M]:[],n],u,l,_,w]}({source:{x:t,y:e},sourcePosition:n,target:{x:r,y:i},targetPosition:o,center:{x:u,y:l},offset:c,stepPosition:h}),g=`M${f[0].x} ${f[0].y}`;for(let t=1;t<f.length-1;t++)g+=function(t,e,n,r){let i=Math.min(nd(t,e)/2,nd(e,n)/2,r),{x:o,y:a}=e;if(t.x===o&&o===n.x||t.y===a&&a===n.y)return`L${o} ${a}`;if(t.y===a){let e=t.x<n.x?-1:1,r=t.y<n.y?1:-1;return`L ${o+i*e},${a}Q ${o},${a} ${o},${a+i*r}`}let u=t.x<n.x?1:-1,l=t.y<n.y?-1:1;return`L ${o},${a+i*l}Q ${o},${a} ${o+i*u},${a}`}(f[t-1],f[t],f[t+1],a);return[g+=`L${f[f.length-1].x} ${f[f.length-1].y}`,d,p,y,m]}function ny(t){return t&&!!(t.internals.handleBounds||t.handles?.length)&&!!(t.measured.width||t.width||t.initialWidth)}function nm(t){let{sourceNode:e,targetNode:n}=t;if(!ny(e)||!ny(n))return null;let r=e.internals.handleBounds||ng(e.handles),o=n.internals.handleBounds||ng(n.handles),a=nx(r?.source??[],t.sourceHandle),u=nx(t.connectionMode===i.Strict?o?.target??[]:(o?.target??[]).concat(o?.source??[]),t.targetHandle);if(!a||!u)return t.onError?.("008",ef.error008(!a?"source":"target",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;let l=a?.position||s.Bottom,c=u?.position||s.Top,h=nv(e,a,l),f=nv(n,u,c);return{sourceX:h.x,sourceY:h.y,targetX:f.x,targetY:f.y,sourcePosition:l,targetPosition:c}}function ng(t){if(!t)return null;let e=[],n=[];for(let r of t)r.width=r.width??1,r.height=r.height??1,"source"===r.type?e.push(r):"target"===r.type&&n.push(r);return{source:e,target:n}}function nv(t,e,n=s.Left,r=!1){let i=(e?.x??0)+t.internals.positionAbsolute.x,o=(e?.y??0)+t.internals.positionAbsolute.y,{width:a,height:u}=e??eQ(t);if(r)return{x:i+a/2,y:o+u/2};switch(e?.position??n){case s.Top:return{x:i+a/2,y:o};case s.Right:return{x:i+a,y:o+u/2};case s.Bottom:return{x:i+a/2,y:o+u};case s.Left:return{x:i,y:o+u/2}}}function nx(t,e){return t&&(e?t.find(t=>t.id===e):t[0])||null}function n_(t,e){if(!t)return"";if("string"==typeof t)return t;let n=e?`${e}__`:"";return`${n}${Object.keys(t).sort().map(e=>`${e}=${t[e]}`).join("&")}`}function nw(t,{id:e,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let o=new Set;return t.reduce((t,a)=>([a.markerStart||r,a.markerEnd||i].forEach(r=>{if(r&&"object"==typeof r){let i=n_(r,e);o.has(i)||(t.push({id:i,color:r.color||n,...r}),o.add(i))}}),t),[]).sort((t,e)=>t.id.localeCompare(e.id))}let nb={nodeOrigin:[0,0],nodeExtent:ed,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},nM={...nb,checkEquality:!0};function nE(t,e){let n={...t};for(let t in e)void 0!==e[t]&&(n[t]=e[t]);return n}function nA(t,e,n){let r=nE(nb,n);for(let n of t.values())if(n.parentId)nS(n,t,e,r);else{let t=eT(eb(n,r.nodeOrigin),eU(n.extent)?n.extent:r.nodeExtent,eQ(n));n.internals.positionAbsolute=t}}function nz(t){return"manual"===t}function nk(t,e,n,r={}){let i=nE(nM,r),o={i:0},a=new Map(e),u=i?.elevateNodesOnSelect&&!nz(i.zIndexMode)?1e3:0,l=t.length>0,s=!1;for(let c of(e.clear(),n.clear(),t)){let t=a.get(c.id);if(i.checkEquality&&c===t?.internals.userNode)e.set(c.id,t);else{let n=eT(eb(c,i.nodeOrigin),eU(c.extent)?c.extent:i.nodeExtent,eQ(c));t={...i.defaults,...c,measured:{width:c.measured?.width,height:c.measured?.height},internals:{positionAbsolute:n,handleBounds:function(t,e){if(!t.handles)return t.measured?e?.internals.handleBounds:void 0;let n=[],r=[];for(let e of t.handles){let i={id:e.id,width:e.width??1,height:e.height??1,nodeId:t.id,x:e.x,y:e.y,position:e.position,type:e.type};"source"===e.type?n.push(i):"target"===e.type&&r.push(i)}return{source:n,target:r}}(c,t),z:nP(c,u,i.zIndexMode),userNode:c}},e.set(c.id,t)}void 0!==t.measured&&void 0!==t.measured.width&&void 0!==t.measured.height||t.hidden||(l=!1),c.parentId&&nS(t,e,n,r,o),s||=c.selected??!1}return{nodesInitialized:l,hasSelectedNodes:s}}function nS(t,e,n,r,i){let{elevateNodesOnSelect:o,nodeOrigin:a,nodeExtent:u,zIndexMode:l}=nE(nb,r),s=t.parentId,c=e.get(s);if(!c)return void console.warn(`Parent node ${s} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(t,e){if(!t.parentId)return;let n=e.get(t.parentId);n?n.set(t.id,t):e.set(t.parentId,new Map([[t.id,t]]))}(t,n),i&&!c.parentId&&void 0===c.internals.rootParentIndex&&"auto"===l&&(c.internals.rootParentIndex=++i.i,c.internals.z=c.internals.z+10*i.i),i&&void 0!==c.internals.rootParentIndex&&(i.i=c.internals.rootParentIndex);let{x:h,y:f,z:d}=function(t,e,n,r,i,o){let{x:a,y:u}=e.internals.positionAbsolute,l=eQ(t),s=eb(t,n),c=eU(t.extent)?eT(s,t.extent,l):s,h=eT({x:a+c.x,y:u+c.y},r,l);"parent"===t.extent&&(h=e$(h,l,e));let f=nP(t,i,o),d=e.internals.z??0;return{x:h.x,y:h.y,z:d>=f?d+1:f}}(t,c,a,u,o&&!nz(l)?1e3:0,l),{positionAbsolute:p}=t.internals,y=h!==p.x||f!==p.y;(y||d!==t.internals.z)&&e.set(t.id,{...t,internals:{...t.internals,positionAbsolute:y?{x:h,y:f}:p,z:d}})}function nP(t,e,n){let r=ej(t.zIndex)?t.zIndex:0;return nz(n)?r:r+(t.selected?e:0)}function nT(t,e,n,r=[0,0]){let i=[],o=new Map;for(let n of t){let t=e.get(n.parentId);if(!t)continue;let r=eD(o.get(n.parentId)?.expandedRect??eL(t),n.rect);o.set(n.parentId,{expandedRect:r,parent:t})}return o.size>0&&o.forEach(({expandedRect:e,parent:o},a)=>{let u=o.internals.positionAbsolute,l=eQ(o),s=o.origin??r,c=e.x<u.x?Math.round(Math.abs(u.x-e.x)):0,h=e.y<u.y?Math.round(Math.abs(u.y-e.y)):0,f=Math.max(l.width,Math.round(e.width)),d=Math.max(l.height,Math.round(e.height)),p=(f-l.width)*s[0],y=(d-l.height)*s[1];(c>0||h>0||p||y)&&(i.push({id:a,type:"position",position:{x:o.position.x-c+p,y:o.position.y-h+y}}),n.get(a)?.forEach(e=>{t.some(t=>t.id===e.id)||i.push({id:e.id,type:"position",position:{x:e.position.x+c,y:e.position.y+h}})})),(l.width<e.width||l.height<e.height||c||h)&&i.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:f+(c?s[0]*c-p:0),height:d+(h?s[1]*h-y:0)}})}),i}function n$(t,e,n,r,i,o,a){let u=r?.querySelector(".xyflow__viewport"),l=!1;if(!u)return{changes:[],updatedInternals:l};let s=[],c=window.getComputedStyle(u),{m22:h}=new window.DOMMatrixReadOnly(c.transform),f=[];for(let r of t.values()){let t=e.get(r.id);if(!t)continue;if(t.hidden){e.set(t.id,{...t,internals:{...t.internals,handleBounds:void 0}}),l=!0;continue}let u=e3(r.nodeElement),c=t.measured.width!==u.width||t.measured.height!==u.height;if(u.width&&u.height&&(c||!t.internals.handleBounds||r.force)){let d=r.nodeElement.getBoundingClientRect(),p=eU(t.extent)?t.extent:o,{positionAbsolute:y}=t.internals;t.parentId&&"parent"===t.extent?y=e$(y,u,e.get(t.parentId)):p&&(y=eT(y,p,u));let m={...t,measured:u,internals:{...t.internals,positionAbsolute:y,handleBounds:{source:nt("source",r.nodeElement,d,h,t.id),target:nt("target",r.nodeElement,d,h,t.id)}}};e.set(t.id,m),t.parentId&&nS(m,e,n,{nodeOrigin:i,zIndexMode:a}),l=!0,c&&(s.push({id:t.id,type:"dimensions",dimensions:u}),t.expandParent&&t.parentId&&f.push({id:t.id,parentId:t.parentId,rect:eL(m,i)}))}}if(f.length>0){let t=nT(f,e,n,i);s.push(...t)}return{changes:s,updatedInternals:l}}async function nI({delta:t,panZoom:e,transform:n,translateExtent:r,width:i,height:o}){if(!e||!t.x&&!t.y)return!1;let a=await e.setViewportConstrained({x:n[0]+t.x,y:n[1]+t.y,zoom:n[2]},[[0,0],[i,o]],r);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}function nN(t,e,n,r,i,o){let a=i,u=r.get(a)||new Map;r.set(a,u.set(n,e)),a=`${i}-${t}`;let l=r.get(a)||new Map;if(r.set(a,l.set(n,e)),o){a=`${i}-${t}-${o}`;let u=r.get(a)||new Map;r.set(a,u.set(n,e))}}function nB(t,e,n){for(let r of(t.clear(),e.clear(),n)){let{source:n,target:i,sourceHandle:o=null,targetHandle:a=null}=r,u={edgeId:r.id,source:n,target:i,sourceHandle:o,targetHandle:a},l=`${n}-${o}--${i}-${a}`;nN("source",u,`${i}-${a}--${n}-${o}`,t,n,o),nN("target",u,l,t,i,a),e.set(r.id,r)}}function nC(t,e,n){let r=t;do{if(r?.matches?.(e))return!0;if(r===n)break;r=r?.parentElement}while(r);return!1}function nH({nodeId:t,dragItems:e,nodeLookup:n,dragging:r=!0}){let i=[];for(let[t,o]of e){let e=n.get(t)?.internals.userNode;e&&i.push({...e,position:o.position,dragging:r})}if(!t)return[i[0],i];let o=n.get(t)?.internals.userNode;return[o?{...o,position:e.get(t)?.position||o.position,dragging:r}:i[0],i]}function nL({onNodeMouseDown:t,getStoreItems:e,onDragStart:n,onDrag:r,onDragStop:i}){let o={x:null,y:null},a=0,u=new Map,l=!1,s={x:0,y:0},c=null,h=!1,d=null,p=!1,y=!1,m=null;return{update:function({noDragClassName:g,handleSelector:v,domNode:x,isSelectable:_,nodeId:w,nodeClickDistance:b=0}){function M({x:t,y:n}){let{nodeLookup:i,nodeExtent:a,snapGrid:l,snapToGrid:s,nodeOrigin:c,onNodeDrag:h,onSelectionDrag:f,onError:d,updateNodePositions:p}=e();o={x:t,y:n};let g=!1,v=u.size>1,x=v&&a?eC(eE(u)):null,_=v&&s?function({dragItems:t,snapGrid:e,x:n,y:r}){let i=t.values().next().value;if(!i)return null;let o={x:n-i.distance.x,y:r-i.distance.y},a=eY(o,e);return{x:a.x-o.x,y:a.y-o.y}}({dragItems:u,snapGrid:l,x:t,y:n}):null;for(let[e,r]of u){if(!i.has(e))continue;let o={x:t-r.distance.x,y:n-r.distance.y};s&&(o=_?{x:Math.round(o.x+_.x),y:Math.round(o.y+_.y)}:eY(o,l));let u=null;if(v&&a&&!r.extent&&x){let{positionAbsolute:t}=r.internals,e=t.x-x.x+a[0][0],n=t.x+r.measured.width-x.x2+a[1][0];u=[[e,t.y-x.y+a[0][1]],[n,t.y+r.measured.height-x.y2+a[1][1]]]}let{position:h,positionAbsolute:f}=ek({nodeId:e,nextPosition:o,nodeLookup:i,nodeExtent:u||a,nodeOrigin:c,onError:d});g=g||r.position.x!==h.x||r.position.y!==h.y,r.position=h,r.internals.positionAbsolute=f}if(y=y||g,g&&(p(u,!0),m&&(r||h||!w&&f))){let[t,e]=nH({nodeId:w,dragItems:u,nodeLookup:i});r?.(m,u,t,e),h?.(m,t,e),w||f?.(m,e)}}async function E(){if(!c)return;let{transform:t,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=e();if(!i){l=!1,cancelAnimationFrame(a);return}let[u,h]=eN(s,c,r);(0!==u||0!==h)&&(o.x=(o.x??0)-u/t[2],o.y=(o.y??0)-h/t[2],await n({x:u,y:h})&&M(o)),a=requestAnimationFrame(E)}function A(r){let{nodeLookup:i,multiSelectionActive:a,nodesDraggable:l,transform:s,snapGrid:f,snapToGrid:d,selectNodesOnDrag:p,onNodeDragStart:y,onSelectionDragStart:m,unselectNodesAndEdges:g}=e();h=!0,p&&_||a||!w||i.get(w)?.selected||g(),_&&p&&w&&t?.(w);let v=e5(r.sourceEvent,{transform:s,snapGrid:f,snapToGrid:d,containerBounds:c});if(o=v,(u=function(t,e,n,r){let i=new Map;for(let[o,a]of t)if((a.selected||a.id===r)&&(!a.parentId||!function t(e,n){if(!e.parentId)return!1;let r=n.get(e.parentId);return!!r&&(!!r.selected||t(r,n))}(a,t))&&(a.draggable||e&&void 0===a.draggable)){let e=t.get(o);e&&i.set(o,{id:o,position:e.position||{x:0,y:0},distance:{x:n.x-e.internals.positionAbsolute.x,y:n.y-e.internals.positionAbsolute.y},extent:e.extent,parentId:e.parentId,origin:e.origin,expandParent:e.expandParent,internals:{positionAbsolute:e.internals.positionAbsolute||{x:0,y:0}},measured:{width:e.measured.width??0,height:e.measured.height??0}})}return i}(i,l,v,w)).size>0&&(n||y||!w&&m)){let[t,e]=nH({nodeId:w,dragItems:u,nodeLookup:i});n?.(r.sourceEvent,u,t,e),y?.(r.sourceEvent,t,e),w||m?.(r.sourceEvent,e)}}d=tn(x);let z=(function(){var t,e,n,r,i=tf,o=td,a=tp,u=ty,l={},s=f("start","drag","end"),c=0,h=0;function d(t){t.on("mousedown.drag",p).filter(u).on("touchstart.drag",g).on("touchmove.drag",v,ti).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(a,u){if(!r&&i.call(this,a,u)){var l=_(this,o.call(this,a,u),a,u,"mouse");l&&(tn(a.view).on("mousemove.drag",y,to).on("mouseup.drag",m,to),tl(a.view),ta(a),n=!1,t=a.clientX,e=a.clientY,l("start",a))}}function y(r){if(tu(r),!n){var i=r.clientX-t,o=r.clientY-e;n=i*i+o*o>h}l.mouse("drag",r)}function m(t){tn(t.view).on("mousemove.drag mouseup.drag",null),ts(t.view,n),tu(t),l.mouse("end",t)}function g(t,e){if(i.call(this,t,e)){var n,r,a=t.changedTouches,u=o.call(this,t,e),l=a.length;for(n=0;n<l;++n)(r=_(this,u,t,e,a[n].identifier,a[n]))&&(ta(t),r("start",t,a[n]))}}function v(t){var e,n,r=t.changedTouches,i=r.length;for(e=0;e<i;++e)(n=l[r[e].identifier])&&(tu(t),n("drag",t,r[e]))}function x(t){var e,n,i=t.changedTouches,o=i.length;for(r&&clearTimeout(r),r=setTimeout(function(){r=null},500),e=0;e<o;++e)(n=l[i[e].identifier])&&(ta(t),n("end",t,i[e]))}function _(t,e,n,r,i,o){var u,h,f,p=s.copy(),y=tr(o||n,e);if(null!=(f=a.call(t,new th("beforestart",{sourceEvent:n,target:d,identifier:i,active:c,x:y[0],y:y[1],dx:0,dy:0,dispatch:p}),r)))return u=f.x-y[0]||0,h=f.y-y[1]||0,function n(o,a,s){var m,g=y;switch(o){case"start":l[i]=n,m=c++;break;case"end":delete l[i],--c;case"drag":y=tr(s||a,e),m=c}p.call(o,t,new th(o,{sourceEvent:a,subject:f,target:d,identifier:i,active:m,x:y[0]+u,y:y[1]+h,dx:y[0]-g[0],dy:y[1]-g[1],dispatch:p}),r)}}return d.filter=function(t){return arguments.length?(i="function"==typeof t?t:tc(!!t),d):i},d.container=function(t){return arguments.length?(o="function"==typeof t?t:tc(t),d):o},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:tc(t),d):a},d.touchable=function(t){return arguments.length?(u="function"==typeof t?t:tc(!!t),d):u},d.on=function(){var t=s.on.apply(s,arguments);return t===s?d:t},d.clickDistance=function(t){return arguments.length?(h=(t*=1)*t,d):Math.sqrt(h)},d})().clickDistance(b).on("start",t=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:a,snapToGrid:u}=e();c=n?.getBoundingClientRect()||null,p=!1,y=!1,m=t.sourceEvent,0===r&&A(t),o=e5(t.sourceEvent,{transform:i,snapGrid:a,snapToGrid:u,containerBounds:c}),s=e8(t.sourceEvent,c)}).on("drag",t=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:a,nodeDragThreshold:f,nodeLookup:d}=e(),y=e5(t.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a,containerBounds:c});if(m=t.sourceEvent,("touchmove"===t.sourceEvent.type&&t.sourceEvent.touches.length>1||w&&!d.has(w))&&(p=!0),!p){if(!l&&n&&h&&(l=!0,E()),!h){let e=e8(t.sourceEvent,c),n=e.x-s.x,r=e.y-s.y;Math.sqrt(n*n+r*r)>f&&A(t)}(o.x!==y.xSnapped||o.y!==y.ySnapped)&&u&&h&&(s=e8(t.sourceEvent,c),M(y))}}).on("end",t=>{if(!h||p){p&&u.size>0&&e().updateNodePositions(u,!1);return}if(l=!1,h=!1,cancelAnimationFrame(a),u.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:o,onSelectionDragStop:a}=e();if(y&&(r(u,!1),y=!1),i||o||!w&&a){let[e,r]=nH({nodeId:w,dragItems:u,nodeLookup:n,dragging:!1});i?.(t.sourceEvent,u,e,r),o?.(t.sourceEvent,e,r),w||a?.(t.sourceEvent,r)}}}).filter(t=>{let e=t.target;return!t.button&&(!g||!nC(e,`.${g}`,x))&&(!v||nC(e,v,x))});d.call(z)},destroy:function(){d?.on(".drag",null)}}}function nO(t,e,n,r,i,o=!1){let a=r.get(t);if(!a)return null;let u="strict"===i?a.internals.handleBounds?.[e]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],l=(n?u?.find(t=>t.id===n):u?.[0])??null;return l&&o?{...l,...nv(a,l,l.position,!0)}:l}function nD(t,e){return t?t:e?.classList.contains("target")?"target":e?.classList.contains("source")?"source":null}let nX=()=>!0;function nR(t,{handle:e,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:a,doc:u,lib:l,flowId:s,isValidConnection:c=nX,nodeLookup:h}){let f="target"===a,d=e?u.querySelector(`.${l}-flow__handle[data-id="${s}-${e?.nodeId}-${e?.id}-${e?.type}"]`):null,{x:p,y}=e8(t),m=u.elementFromPoint(p,y),g=m?.classList.contains(`${l}-flow__handle`)?m:d,v={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let t=nD(void 0,g),e=g.getAttribute("data-nodeid"),a=g.getAttribute("data-handleid"),u=g.classList.contains("connectable"),l=g.classList.contains("connectableend");if(!e||!t)return v;let s={source:f?e:r,sourceHandle:f?a:o,target:f?r:e,targetHandle:f?o:a};v.connection=s,v.isValid=u&&l&&(n===i.Strict?f&&"source"===t||!f&&"target"===t:e!==r||a!==o)&&c(s),v.toHandle=nO(e,t,a,h,n,!0)}return v}let nj={onPointerDown:function(t,{connectionMode:e,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:o,isTarget:a,domNode:u,nodeLookup:l,lib:c,autoPanOnConnect:h,flowId:f,panBy:d,cancelConnection:p,onConnectStart:y,onConnect:m,onConnectEnd:g,isValidConnection:v=nX,onReconnectEnd:x,updateConnection:_,getTransform:w,getFromHandle:b,autoPanSpeed:M,dragThreshold:E=1,handleDomNode:A}){let z,k=e4(t.target),S=0,{x:P,y:T}=e8(t),$=nD(o,A),I=u?.getBoundingClientRect(),N=!1;if(!I||!$)return;let B=nO(i,$,r,l,e);if(!B)return;let C=e8(t,I),H=!1,L=null,O=!1,D=null,X={...B,nodeId:i,type:$,position:B.position},R=l.get(i),j={inProgress:!0,isValid:null,from:nv(R,X,s.Left,!0),fromHandle:X,fromPosition:X.position,fromNode:R,to:C,toHandle:null,toPosition:eg[X.position],toNode:null,pointer:C};function V(){N=!0,_(j),y?.(t,{nodeId:i,handleId:r,handleType:$})}function Y(t){var o,u;let p;if(!N){let{x:e,y:n}=e8(t),r=e-P,i=n-T;if(!(r*r+i*i>E*E))return;V()}if(!b()||!X)return void q(t);let y=w();z=function(t,e,n,r){let i=[],o=1/0;for(let a of function(t,e,n){let r=[],i={x:t.x-n,y:t.y-n,width:2*n,height:2*n};for(let t of e.values())eX(i,eL(t))>0&&r.push(t);return r}(t,n,e+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(r.nodeId===n.nodeId&&r.type===n.type&&r.id===n.id)continue;let{x:u,y:l}=nv(a,n,n.position,!0),s=Math.sqrt(Math.pow(u-t.x,2)+Math.pow(l-t.y,2));s>e||(s<o?(i=[{...n,x:u,y:l}],o=s):s===o&&i.push({...n,x:u,y:l}))}if(!i.length)return null;if(i.length>1){let t="source"===r.type?"target":"source";return i.find(e=>e.type===t)??i[0]}return i[0]}(eq(C=e8(t,I),y,!1,[1,1]),n,l,X),H||(!function t(){if(!h||!I)return;let[e,n]=eN(C,I,M);d({x:e,y:n}),S=requestAnimationFrame(t)}(),H=!0);let m=nR(t,{handle:z,connectionMode:e,fromNodeId:i,fromHandleId:r,fromType:a?"target":"source",isValidConnection:v,doc:k,lib:c,flowId:f,nodeLookup:l});D=m.handleDomNode,L=m.connection,o=!!z,u=m.isValid,p=null,u?p=!0:o&&!u&&(p=!1),O=p;let g=l.get(i),x=g?nv(g,X,s.Left,!0):j.from,A={...j,from:x,isValid:O,to:m.toHandle&&O?eF({x:m.toHandle.x,y:m.toHandle.y},y):C,toHandle:m.toHandle,toPosition:O&&m.toHandle?m.toHandle.position:eg[X.position],toNode:m.toHandle?l.get(m.toHandle.nodeId):null,pointer:C};_(A),j=A}function q(t){if(!("touches"in t)||!(t.touches.length>0)){if(N){(z||D)&&L&&O&&m?.(L);let{inProgress:e,...n}=j,r={...n,toPosition:j.toHandle?j.toPosition:null};g?.(t,r),o&&x?.(t,r)}p(),cancelAnimationFrame(S),H=!1,O=!1,L=null,D=null,k.removeEventListener("mousemove",Y),k.removeEventListener("mouseup",q),k.removeEventListener("touchmove",Y),k.removeEventListener("touchend",q)}}0===E&&V(),k.addEventListener("mousemove",Y),k.addEventListener("mouseup",q),k.addEventListener("touchmove",Y),k.addEventListener("touchend",q)},isValid:nR};function nV({domNode:t,panZoom:e,getTransform:n,getViewScale:r}){let i=tn(t);return{update:function({translateExtent:t,width:o,height:a,zoomStep:u=1,pannable:l=!0,zoomable:s=!0,inversePan:c=!1}){let h=[0,0],f=ec().on("start",t=>{("mousedown"===t.sourceEvent.type||"touchstart"===t.sourceEvent.type)&&(h=[t.sourceEvent.clientX??t.sourceEvent.touches[0].clientX,t.sourceEvent.clientY??t.sourceEvent.touches[0].clientY])}).on("zoom",l?i=>{let u=n();if("mousemove"!==i.sourceEvent.type&&"touchmove"!==i.sourceEvent.type||!e)return;let l=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],s=[l[0]-h[0],l[1]-h[1]];h=l;let f=r()*Math.max(u[2],Math.log(u[2]))*(c?-1:1),d={x:u[0]-s[0]*f,y:u[1]-s[1]*f};e.setViewportConstrained({x:d.x,y:d.y,zoom:u[2]},[[0,0],[o,a]],t)}:null).on("zoom.wheel",s?t=>{if("wheel"!==t.sourceEvent.type||!e)return;let r=n(),i=t.sourceEvent.ctrlKey&&eZ()?10:1,o=-t.sourceEvent.deltaY*(1===t.sourceEvent.deltaMode?.05:t.sourceEvent.deltaMode?1:.002)*u,a=r[2]*Math.pow(2,o*i);e.scaleTo(a)}:null);i.call(f,{})},destroy:function(){i.on("zoom",null)},pointer:tr}}let nY=t=>({x:t.x,y:t.y,zoom:t.k}),nq=({x:t,y:e,zoom:n})=>et.translate(t,e).scale(n),nF=(t,e)=>t.target.closest(`.${e}`),nW=(t,e)=>2===e&&Array.isArray(t)&&t.includes(2),nK=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,nZ=(t,e=0,n=nK,r=()=>{})=>{let i="number"==typeof e&&e>0;return i||r(),i?t.transition().duration(e).ease(n).on("end",r):t},nU=t=>{let e=t.ctrlKey&&eZ()?10:1;return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*e};function nQ({domNode:t,minZoom:e,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:u,onPanZoomEnd:l,onDraggingChange:s}){let c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=t.getBoundingClientRect(),f=ec().scaleExtent([e,n]).translateExtent(r),d=tn(t).call(f);v({x:i.x,y:i.y,zoom:eP(i.zoom,e,n)},[[0,0],[h.width,h.height]],r);let p=d.on("wheel.zoom"),y=d.on("dblclick.zoom");async function m(t,e){return!!d&&new Promise(n=>{f?.interpolate(e?.interpolate==="linear"?eh.A:tg).transform(nZ(d,e?.duration,e?.ease,()=>n(!0)),t)})}function g(){f.on("zoom",null)}async function v(t,e,n){let r=nq(t),i=f?.constrain()(r,e,n);return i&&await m(i),i}return f.wheelDelta(nU),{update:function({noWheelClassName:t,noPanClassName:e,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:h,panOnScrollMode:m,panOnScrollSpeed:v,preventScrolling:x,zoomOnPinch:_,zoomOnScroll:w,zoomOnDoubleClick:b,zoomActivationKeyPressed:M,lib:E,onTransformChange:A,connectionInProgress:z,paneClickDistance:k,selectionOnDrag:S}){r&&!c.isZoomingOrPanning&&g();let P=i&&!M&&!r;f.clickDistance(S?1/0:!ej(k)||k<0?0:k);let T=P?function({zoomPanValues:t,noWheelClassName:e,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:u,onPanZoomStart:l,onPanZoom:s,onPanZoomEnd:c}){return h=>{if(nF(h,e))return h.ctrlKey&&h.preventDefault(),!1;h.preventDefault(),h.stopImmediatePropagation();let f=n.property("__zoom").k||1;if(h.ctrlKey&&u){let t=tr(h),e=f*Math.pow(2,nU(h));r.scaleTo(n,e,t,h);return}let d=1===h.deltaMode?20:1,p=i===o.Vertical?0:h.deltaX*d,y=i===o.Horizontal?0:h.deltaY*d;!eZ()&&h.shiftKey&&i!==o.Vertical&&(p=h.deltaY*d,y=0),r.translateBy(n,-(p/f)*a,-(y/f)*a,{internal:!0});let m=nY(n.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?(s?.(h,m),t.panScrollTimeout=setTimeout(()=>{c?.(h,m),t.isPanScrolling=!1},150)):(t.isPanScrolling=!0,l?.(h,m))}}({zoomPanValues:c,noWheelClassName:t,d3Selection:d,d3Zoom:f,panOnScrollMode:m,panOnScrollSpeed:v,zoomOnPinch:_,onPanZoomStart:u,onPanZoom:a,onPanZoomEnd:l}):function({noWheelClassName:t,preventScrolling:e,d3ZoomHandler:n}){return function(r,i){let o="wheel"===r.type,a=!e&&o&&!r.ctrlKey,u=nF(r,t);if(r.ctrlKey&&o&&u&&r.preventDefault(),a||u)return null;r.preventDefault(),n.call(this,r,i)}}({noWheelClassName:t,preventScrolling:x,d3ZoomHandler:p});d.on("wheel.zoom",T,{passive:!1});let $=function({zoomPanValues:t,onDraggingChange:e,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=nY(r.transform);t.mouseButton=r.sourceEvent?.button||0,t.isZoomingOrPanning=!0,t.prevViewport=i,r.sourceEvent?.type==="mousedown"&&e(!0),n&&n?.(r.sourceEvent,i)}}({zoomPanValues:c,onDraggingChange:s,onPanZoomStart:u});f.on("start",$);let I=function({zoomPanValues:t,panOnDrag:e,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return o=>{t.usedRightMouseButton=!!(n&&nW(e,t.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),i&&!o.sourceEvent?.internal&&i?.(o.sourceEvent,nY(o.transform))}}({zoomPanValues:c,panOnDrag:h,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:A});f.on("zoom",I);let N=function({zoomPanValues:t,panOnDrag:e,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal&&(t.isZoomingOrPanning=!1,o&&nW(e,t.mouseButton??0)&&!t.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),t.usedRightMouseButton=!1,r(!1),i)){let e=nY(a.transform);t.prevViewport=e,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{i?.(a.sourceEvent,e)},150*!!n)}}}({zoomPanValues:c,panOnDrag:h,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:l,onDraggingChange:s});f.on("end",N);let B=function({zoomActivationKeyPressed:t,zoomOnScroll:e,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:u,noPanClassName:l,lib:s,connectionInProgress:c}){return h=>{let f=t||e,d=n&&h.ctrlKey,p="wheel"===h.type;if(1===h.button&&"mousedown"===h.type&&(nF(h,`${s}-flow__node`)||nF(h,`${s}-flow__edge`)))return!0;if(!r&&!f&&!i&&!o&&!n||a||c&&!p||nF(h,u)&&p||nF(h,l)&&(!p||i&&p&&!t)||!n&&h.ctrlKey&&p)return!1;if(!n&&"touchstart"===h.type&&h.touches?.length>1)return h.preventDefault(),!1;if(!f&&!i&&!d&&p||!r&&("mousedown"===h.type||"touchstart"===h.type)||Array.isArray(r)&&!r.includes(h.button)&&"mousedown"===h.type)return!1;let y=Array.isArray(r)&&r.includes(h.button)||!h.button||h.button<=1;return(!h.ctrlKey||p)&&y}}({zoomActivationKeyPressed:M,panOnDrag:h,zoomOnScroll:w,panOnScroll:i,zoomOnDoubleClick:b,zoomOnPinch:_,userSelectionActive:r,noPanClassName:e,noWheelClassName:t,lib:E,connectionInProgress:z});f.filter(B),b?d.on("dblclick.zoom",y):d.on("dblclick.zoom",null)},destroy:g,setViewport:async function t(t,e){let n=nq(t);return await m(n,e),n},setViewportConstrained:v,getViewport:function(){let t=d?ee(d.node()):{x:0,y:0,k:1};return{x:t.x,y:t.y,zoom:t.k}},scaleTo:async function t(t,e){return!!d&&new Promise(n=>{f?.interpolate(e?.interpolate==="linear"?eh.A:tg).scaleTo(nZ(d,e?.duration,e?.ease,()=>n(!0)),t)})},scaleBy:async function t(t,e){return!!d&&new Promise(n=>{f?.interpolate(e?.interpolate==="linear"?eh.A:tg).scaleBy(nZ(d,e?.duration,e?.ease,()=>n(!0)),t)})},setScaleExtent:function(t){f?.scaleExtent(t)},setTranslateExtent:function(t){f?.translateExtent(t)},syncViewport:function(t){if(d){let e=nq(t),n=d.property("__zoom");(n.k!==t.zoom||n.x!==t.x||n.y!==t.y)&&f?.transform(d,e,null,{sync:!0})}},setClickDistance:function(t){let e=!ej(t)||t<0?0:t;f?.clickDistance(e)}}}!function(t){t.Line="line",t.Handle="handle"}(c||(c={}))},50803:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});let r=(0,n(71847).A)("terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]])},57459:(t,e,n)=>{"use strict";function r(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(let[n,r]of t)if(!Object.is(r,e.get(n)))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(let n of t)if(!e.has(n))return!1;return!0}let n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(e,r)||!Object.is(t[r],e[r]))return!1;return!0}n.d(e,{x:()=>r})},85408:(t,e,n)=>{"use strict";n.d(e,{b:()=>c});var r=n(12115);n(47650);var i=n(94446),o=n(95155),a=Symbol("radix.slottable");function u(t){return r.isValidElement(t)&&"function"==typeof t.type&&"__radixId"in t.type&&t.type.__radixId===a}var l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((t,e)=>{let n=function(t){let e=function(t){let e=r.forwardRef((t,e)=>{var n,o,a;let u,l,{children:s,...c}=t,h=r.isValidElement(s)?(l=(u=null==(o=Object.getOwnPropertyDescriptor((n=s).props,"ref"))?void 0:o.get)&&"isReactWarning"in u&&u.isReactWarning)?n.ref:(l=(u=null==(a=Object.getOwnPropertyDescriptor(n,"ref"))?void 0:a.get)&&"isReactWarning"in u&&u.isReactWarning)?n.props.ref:n.props.ref||n.ref:void 0,f=(0,i.s)(h,e);if(r.isValidElement(s)){let t=function(t,e){let n={...e};for(let r in e){let i=t[r],o=e[r];/^on[A-Z]/.test(r)?i&&o?n[r]=function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];let r=o(...e);return i(...e),r}:i&&(n[r]=i):"style"===r?n[r]={...i,...o}:"className"===r&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...t,...n}}(c,s.props);return s.type!==r.Fragment&&(t.ref=f),r.cloneElement(s,t)}return r.Children.count(s)>1?r.Children.only(null):null});return e.displayName="".concat(t,".SlotClone"),e}(t),n=r.forwardRef((t,n)=>{let{children:i,...a}=t,l=r.Children.toArray(i),s=l.find(u);if(s){let t=s.props.children,i=l.map(e=>e!==s?e:r.Children.count(t)>1?r.Children.only(null):r.isValidElement(t)?t.props.children:null);return(0,o.jsx)(e,{...a,ref:n,children:r.isValidElement(t)?r.cloneElement(t,void 0,i):null})}return(0,o.jsx)(e,{...a,ref:n,children:i})});return n.displayName="".concat(t,".Slot"),n}(`Primitive.${e}`),a=r.forwardRef((t,r)=>{let{asChild:i,...a}=t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,o.jsx)(i?n:e,{...a,ref:r})});return a.displayName=`Primitive.${e}`,{...t,[e]:a}},{}),s=r.forwardRef((t,e)=>(0,o.jsx)(l.label,{...t,ref:e,onMouseDown:e=>{var n;e.target.closest("button, input, select, textarea")||(null==(n=t.onMouseDown)||n.call(t,e),!e.defaultPrevented&&e.detail>1&&e.preventDefault())}}));s.displayName="Label";var c=s}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[511],{71511:(e,t,a)=>{a.d(t,{Ni:()=>r.Ni,K3:()=>b,wW:()=>r.wW,_w:()=>g});var r=a(93782);let l={type:"Baseline",label:"Baseline (template attack)",description:"Runs curated jailbreak prompt templates across categories.",fields:[{key:"template_categories",label:"Template categories",type:"string[]",default:["instruction_override","delimiter_bypass","role_play","prefix_injection","context_manipulation"]},{key:"templates_per_category",label:"Templates per category",type:"number",default:3},{key:"n_samples_per_template",label:"Samples per template",type:"number",default:1},{key:"objective",label:"Objective",type:"string",default:"jailbreak"},{key:"min_response_length",label:"Min response length",type:"number",default:10,group:"Advanced"},{key:"deduplicate_responses",label:"Deduplicate responses",type:"boolean",default:!0,group:"Advanced"},r.Ni],toConfig(e){let t={template_categories:e.template_categories,templates_per_category:e.templates_per_category,n_samples_per_template:e.n_samples_per_template,objective:e.objective,min_response_length:e.min_response_length,deduplicate_responses:e.deduplicate_responses};return(0,r.$w)(t,e)}},n={type:"PAIR",label:"PAIR (iterative refinement)",description:"Iterative jailbreak refinement using attacker-judge loop.",fields:[{key:"n_iterations",label:"Iterations",type:"number",default:5},{key:"n_streams",label:"Streams",type:"number",default:5},{key:"early_stop_on_success",label:"Early stop on success",type:"boolean",default:!0},{key:"jailbreak_threshold",label:"Jailbreak threshold",type:"number",default:8},{key:"objective",label:"Objective",type:"string",default:"jailbreak"},r.Ni],toConfig(e){let t={n_iterations:e.n_iterations,n_streams:e.n_streams,early_stop_on_success:e.early_stop_on_success,jailbreak_threshold:e.jailbreak_threshold,objective:e.objective};return(0,r.$w)(t,e)}},o={type:"FlipAttack",label:"FlipAttack (text flipping)",description:"Jailbreak via text flipping techniques to bypass safety filters.",fields:[{key:"flip_mode",label:"Flip mode",type:"enum",default:"FCS",enumValues:["FWO","FCW","FCS","FMM"]},{key:"cot",label:"Chain of thought",type:"boolean",default:!1},{key:"lang_gpt",label:"LangGPT",type:"boolean",default:!1},{key:"few_shot",label:"Few shot",type:"boolean",default:!1},r.Ni],toConfig(e){let t={flipattack_params:{flip_mode:e.flip_mode,cot:e.cot,lang_gpt:e.lang_gpt,few_shot:e.few_shot}};return(0,r.$w)(t,e)}},s={type:"TAP",label:"TAP (tree of attacks w/ pruning)",description:"Tree-search jailbreak with branching and pruning.",fields:[{key:"depth",label:"Depth",type:"number",default:3},{key:"width",label:"Width",type:"number",default:4},{key:"branching_factor",label:"Branching factor",type:"number",default:3},{key:"n_streams",label:"Streams",type:"number",default:4},{key:"early_stop_on_success",label:"Early stop on success",type:"boolean",default:!0},{key:"success_score_threshold",label:"Success score threshold",type:"number",default:10,group:"Advanced"},{key:"target_str",label:"Target string",type:"string",default:"Sure, here is",group:"Advanced"},r.Ni],toConfig(e){let t={tap_params:{depth:e.depth,width:e.width,branching_factor:e.branching_factor,n_streams:e.n_streams,early_stop_on_success:e.early_stop_on_success,success_score_threshold:e.success_score_threshold},target_str:e.target_str};return(0,r.$w)(t,e)}},i={type:"bon",label:"Best-of-N (bon)",description:"Best-of-N sampling with text perturbations to bypass safety filters.",fields:[{key:"n_steps",label:"Steps",type:"number",default:4},{key:"num_concurrent_k",label:"Concurrent K",type:"number",default:5},{key:"sigma",label:"Sigma",type:"number",default:.4},{key:"word_scrambling",label:"Word scrambling",type:"boolean",default:!0},{key:"random_capitalization",label:"Random capitalization",type:"boolean",default:!0},{key:"ascii_perturbation",label:"ASCII perturbation",type:"boolean",default:!0},r.Ni],toConfig(e){let t={bon_params:{n_steps:e.n_steps,num_concurrent_k:e.num_concurrent_k,sigma:e.sigma,word_scrambling:e.word_scrambling,random_capitalization:e.random_capitalization,ascii_perturbation:e.ascii_perturbation}};return(0,r.$w)(t,e)}},p={type:"h4rm3l",label:"h4rm3l (DSL-based)",description:"Programmatic jailbreak via the h4rm3l DSL.",fields:[{key:"program",label:"Program",type:"string",default:"refusal_suppression"},{key:"syntax_version",label:"Syntax version",type:"enum",default:"2",enumValues:["1","2"]},r.Ni],toConfig(e){let t={h4rm3l_params:{program:e.program,syntax_version:Number(e.syntax_version)}};return(0,r.$w)(t,e)}},u={type:"cipherchat",label:"CipherChat (cipher encoding)",description:"Encodes prompts using ciphers to bypass safety filters.",fields:[{key:"encode_method",label:"Encode method",type:"string",default:"caesar"},{key:"use_system_role",label:"Use system role",type:"boolean",default:!0},{key:"use_demonstrations",label:"Use demonstrations",type:"boolean",default:!0},{key:"demonstration_toxicity",label:"Demonstration toxicity",type:"string",default:"toxic"},{key:"instruction_type",label:"Instruction type",type:"string",default:"Crimes_And_Illegal_Activities"},{key:"language",label:"Language",type:"string",default:"en"},{key:"num_demonstrations",label:"Num demonstrations",type:"number",default:3},{key:"decode_response",label:"Decode response",type:"boolean",default:!0},r.Ni],toConfig(e){let t={cipherchat_params:{encode_method:e.encode_method,use_system_role:e.use_system_role,use_demonstrations:e.use_demonstrations,demonstration_toxicity:e.demonstration_toxicity,instruction_type:e.instruction_type,language:e.language,num_demonstrations:e.num_demonstrations,decode_response:e.decode_response}};return(0,r.$w)(t,e)}},_={type:"MML",label:"MML (multimodal)",description:"Multimodal jailbreak using text encoding in images.",fields:[{key:"encoding_mode",label:"Encoding mode",type:"enum",default:"word_replacement",enumValues:["word_replacement","mirror","rotate","base64","mixed"]},{key:"num_replacements",label:"Num replacements",type:"number",default:3},{key:"prompt_style",label:"Prompt style",type:"enum",default:"game",enumValues:["game","control"]},{key:"image_width",label:"Image width",type:"number",default:800,group:"Advanced"},{key:"image_height",label:"Image height",type:"number",default:400,group:"Advanced"},{key:"font_size",label:"Font size",type:"number",default:24,group:"Advanced"},r.Ni],toConfig(e){let t={mml_params:{encoding_mode:e.encoding_mode,num_replacements:e.num_replacements,prompt_style:e.prompt_style,image_width:e.image_width,image_height:e.image_height,font_size:e.font_size}};return(0,r.$w)(t,e)}},d={type:"pap",label:"PAP (persuasion-based)",description:"Persuasion-augmented prompt attack using psychological techniques.",fields:[{key:"techniques",label:"Techniques",type:"string",default:"top5"},{key:"max_techniques_per_goal",label:"Max techniques per goal",type:"number",default:0},{key:"attacker_temperature",label:"Attacker temperature",type:"number",default:1},{key:"attacker_max_tokens",label:"Attacker max tokens",type:"number",default:4096},r.Ni],toConfig(e){let t={pap_params:{techniques:e.techniques,max_techniques_per_goal:e.max_techniques_per_goal,attacker_temperature:e.attacker_temperature,attacker_max_tokens:e.attacker_max_tokens}};return(0,r.$w)(t,e)}},m={type:"AdvPrefix",label:"AdvPrefix (adversarial prefix)",description:"Generates adversarial prefixes to jailbreak a target model.",fields:[{key:"n_candidates_per_goal",label:"Candidates per goal",type:"number",default:100},{key:"meta_prefix_samples",label:"Meta-prefix samples",type:"number",default:1},{key:"max_tokens",label:"Max tokens",type:"number",default:100,group:"Advanced"},{key:"temperature",label:"Temperature",type:"number",default:.8,group:"Advanced"},{key:"n_prefixes_per_goal",label:"Prefixes per goal",type:"number",default:3,group:"Advanced"},{key:"filter_len",label:"Filter length",type:"number",default:10,group:"Advanced"},r.Ni],toConfig(e){let t={n_candidates_per_goal:e.n_candidates_per_goal,meta_prefix_samples:e.meta_prefix_samples,max_tokens:e.max_tokens,temperature:e.temperature,n_prefixes_per_goal:e.n_prefixes_per_goal,filter_len:e.filter_len};return(0,r.$w)(t,e)}},c={type:"AutoDANTurbo",label:"AutoDAN-Turbo",description:"Lifelong jailbreak strategy with automated DAN-style attacks.",fields:[{key:"epochs",label:"Epochs",type:"number",default:1},{key:"break_score",label:"Break score",type:"number",default:8.5},{key:"warm_up_iterations",label:"Warm-up iterations",type:"number",default:1,group:"Advanced"},{key:"lifelong_iterations",label:"Lifelong iterations",type:"number",default:1,group:"Advanced"},{key:"retrieval_top_k",label:"Retrieval top-k",type:"number",default:5,group:"Advanced"},{key:"skip_warm_up",label:"Skip warm-up",type:"boolean",default:!1,group:"Advanced"},r.Ni],toConfig(e){let t={autodan_turbo_params:{epochs:e.epochs,break_score:e.break_score,warm_up_iterations:e.warm_up_iterations,lifelong_iterations:e.lifelong_iterations,retrieval_top_k:e.retrieval_top_k,skip_warm_up:e.skip_warm_up}};return(0,r.$w)(t,e)}},y={type:"rag",label:"RAG injection",description:"Poisons a retrieval-augmented generation pipeline to elicit harmful outputs.",fields:[{key:"strategy",label:"Strategy",type:"string",default:"inline_context_override"},{key:"poisoned_ratio",label:"Poisoned ratio",type:"number",default:.5},{key:"benign_queries_per_goal",label:"Benign queries per goal",type:"number",default:5},{key:"poisoned_paragraphs_per_query",label:"Poisoned paragraphs per query",type:"number",default:5,group:"Advanced"},{key:"chunk_size",label:"Chunk size",type:"number",default:1e3,group:"Advanced"},{key:"chunk_overlap",label:"Chunk overlap",type:"number",default:200,group:"Advanced"},{key:"top_k",label:"Top-k",type:"number",default:5,group:"Advanced"},r.Ni],toConfig(e){let t={rag_injection_params:{documents:{include_globs:["*.txt","*.pdf"],recursive:!0},poisoning:{strategy:e.strategy,poisoned_ratio:e.poisoned_ratio},benign_queries_per_goal:e.benign_queries_per_goal,poisoned_paragraphs_per_query:e.poisoned_paragraphs_per_query,target_retrieval:{chunk_size:e.chunk_size,chunk_overlap:e.chunk_overlap,top_k:e.top_k}}};return(0,r.$w)(t,e)}},b={[l.type]:l,[n.type]:n,[o.type]:o,[s.type]:s,[i.type]:i,[p.type]:p,[u.type]:u,[_.type]:_,[d.type]:d,[m.type]:m,[c.type]:c,[y.type]:y};function g(e){return b[e]}},93782:(e,t,a)=>{a.d(t,{$w:()=>n,Ni:()=>r,wW:()=>l});let r={key:"__advancedJson",label:"Advanced (raw JSON)",type:"json",default:"",group:"Advanced",help:"Merged over the generated config. Use for params not shown above."};function l(e){let t={};for(let a of e)t[a.key]=a.default;return t}function n(e,t){let a,r=t.__advancedJson;if("string"!=typeof r||""===r.trim())return e;try{a=JSON.parse(r)}catch(e){throw Error("Advanced JSON is not valid JSON")}return Object.assign(e,a)}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[921],{2037:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){let{apiKey:t,...n}=e,r={...n,key:t},{html:u}=(0,o.GoogleMapsEmbed)(r);return(0,a.jsx)(l.default,{height:r.height||null,width:r.width||null,html:u,dataNtpc:"GoogleMapsEmbed"})};let a=n(95155),o=n(13067),l=r(n(57445))},4853:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{cancelIdleCallback:function(){return r},requestIdleCallback:function(){return n}});let n="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},r="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},13067:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.YouTubeEmbed=t.GoogleMapsEmbed=t.GoogleAnalytics=void 0;var r=n(68197);Object.defineProperty(t,"GoogleAnalytics",{enumerable:!0,get:function(){return r.GoogleAnalytics}});var a=n(55546);Object.defineProperty(t,"GoogleMapsEmbed",{enumerable:!0,get:function(){return a.GoogleMapsEmbed}});var o=n(93438);Object.defineProperty(t,"YouTubeEmbed",{enumerable:!0,get:function(){return o.YouTubeEmbed}})},15781:(e,t)=>{function n(e,t,r=!1){return t?Object.keys(e).filter(e=>r?!t.includes(e):t.includes(e)).reduce((t,n)=>(t[n]=e[n],t),{}):{}}function r(e,t,n,r){let a=r&&Object.keys(r).length>0?new URL(Object.values(r)[0],e):new URL(e);return t&&n&&t.forEach(e=>{n[e]&&a.searchParams.set(e,n[e])}),a.toString()}function a(e,t,n,a,o){var l;if(!t)return`<${e}></${e}>`;let u=(null==(l=t.src)?void 0:l.url)?Object.assign(Object.assign({},t),{src:r(t.src.url,t.src.params,a,o)}):t,i=Object.keys(Object.assign(Object.assign({},u),n)).reduce((e,t)=>{let r=null==n?void 0:n[t],a=u[t],o=null!=r?r:a,l=!0===o?t:`${t}="${o}"`;return o?e+` ${l}`:e},"");return`<${e}${i}></${e}>`}Object.defineProperty(t,"__esModule",{value:!0}),t.formatData=t.createHtml=t.formatUrl=void 0,t.formatUrl=r,t.createHtml=a,t.formatData=function(e,t){var o,l,u,i,s;let c=n(t,null==(o=e.scripts)?void 0:o.reduce((e,t)=>[...e,...Array.isArray(t.params)?t.params:[]],[])),d=n(t,null==(u=null==(l=e.html)?void 0:l.attributes.src)?void 0:u.params),f=n(t,[null==(s=null==(i=e.html)?void 0:i.attributes.src)?void 0:s.slugParam]),p=n(t,[...Object.keys(c),...Object.keys(d),...Object.keys(f)],!0);return Object.assign(Object.assign({},e),{html:e.html?a(e.html.element,e.html.attributes,p,d,f):null,scripts:e.scripts?e.scripts.map(e=>Object.assign(Object.assign({},e),{url:r(e.url,e.params,c)})):null})}},20063:(e,t,n)=>{var r=n(47260);n.o(r,"usePathname")&&n.d(t,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},23817:e=>{e.exports=JSON.parse('{"id":"google-analytics","description":"Install a Google Analytics tag on your website","website":"https://analytics.google.com/analytics/web/","scripts":[{"url":"https://www.googletagmanager.com/gtag/js","params":["id"],"strategy":"worker","location":"head","action":"append"},{"code":"window.dataLayer=window.dataLayer||[];window.gtag=function gtag(){window.dataLayer.push(arguments);};gtag(\'js\',new Date());gtag(\'config\',\'${args.id}\')","strategy":"worker","location":"head","action":"append"}]}')},26802:e=>{e.exports=JSON.parse('{"id":"google-maps-embed","description":"Embed a Google Maps embed on your webpage","website":"https://developers.google.com/maps/documentation/embed/get-started","html":{"element":"iframe","attributes":{"loading":"lazy","src":{"url":"https://www.google.com/maps/embed/v1/place","slugParam":"mode","params":["key","q","center","zoom","maptype","language","region"]},"referrerpolicy":"no-referrer-when-downgrade","frameborder":"0","style":"border:0","allowfullscreen":true,"width":null,"height":null}}}')},29001:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{ESCAPE_REGEX:function(){return r},htmlEscapeAttributeString:function(){return u},htmlEscapeJsonString:function(){return l}});let n={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},r=/[&><\u2028\u2029]/g,a={"&":"&",'"':""","'":"'","<":"<",">":">"},o=/[&"'<>]/g;function l(e){return e.replace(r,e=>n[e])}function u(e){return e.replace(o,e=>a[e])}},37577:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){let{html:t,scripts:n,stylesheets:r}=(0,l.YouTubeEmbed)(e);return(0,a.jsx)(u.default,{height:e.height||null,width:e.width||null,html:t,dataNtpc:"YouTubeEmbed",children:null==n?void 0:n.map(e=>(0,a.jsx)(o.default,{src:e.url,strategy:i[e.strategy],stylesheets:r},e.url))})};let a=n(95155),o=r(n(68321)),l=n(13067),u=r(n(57445)),i={server:"beforeInteractive",client:"afterInteractive",idle:"lazyOnload",worker:"worker"}},41402:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return h},handleClientScriptLoad:function(){return m},initScriptLoader:function(){return b}});let r=n(30943),a=n(88604),o=n(95155),l=r._(n(47650)),u=a._(n(12115)),i=n(82073),s=n(94681),c=n(4853),d=n(29001),f=new Map,p=new Set,g=e=>{let{src:t,id:n,onLoad:r=()=>{},onReady:a=null,dangerouslySetInnerHTML:o,children:u="",strategy:i="afterInteractive",onError:c,stylesheets:d}=e,g=n||t;if(g&&p.has(g))return;if(f.has(t)){p.add(g),f.get(t).then(r,c);return}let m=()=>{a&&a(),p.add(g)},b=document.createElement("script"),y=new Promise((e,t)=>{b.addEventListener("load",function(t){e(),r&&r.call(this,t),m()}),b.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});o?(b.innerHTML=o.__html||"",m()):u?(b.textContent="string"==typeof u?u:Array.isArray(u)?u.join(""):"",m()):t&&(b.src=t,f.set(t,y)),(0,s.setAttributesFromProps)(b,e),"worker"===i&&b.setAttribute("type","text/partytown"),b.setAttribute("data-nscript",i),d&&(e=>{if(l.default.preinit)return e.forEach(e=>{l.default.preinit(e,{as:"style"})});{let t=document.head;e.forEach(e=>{let n=document.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=e,t.appendChild(n)})}})(d),document.body.appendChild(b)};function m(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>g(e))}):g(e)}function b(e){e.forEach(m),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");p.add(t)})}function y(e){let{id:t,src:n="",onLoad:r=()=>{},onReady:a=null,strategy:s="afterInteractive",onError:f,stylesheets:m,...b}=e,{updateScripts:y,scripts:h,getIsSsr:_,appDir:v,nonce:w}=(0,u.useContext)(i.HeadManagerContext);w=b.nonce||w;let O=(0,u.useRef)(!1);(0,u.useEffect)(()=>{let e=t||n;O.current||(a&&e&&p.has(e)&&a(),O.current=!0)},[a,t,n]);let j=(0,u.useRef)(!1);if((0,u.useEffect)(()=>{if(!j.current){if("afterInteractive"===s)g(e);else"lazyOnload"===s&&("complete"===document.readyState?(0,c.requestIdleCallback)(()=>g(e)):window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>g(e))}));j.current=!0}},[e,s]),("beforeInteractive"===s||"worker"===s)&&(y?(h[s]=(h[s]||[]).concat([{id:t,src:n,onLoad:r,onReady:a,onError:f,...b,nonce:w}]),y(h)):_&&_()?p.add(t||n):_&&!_()&&g({...e,nonce:w})),v){if(m&&m.forEach(e=>{l.default.preinit(e,{as:"style"})}),"beforeInteractive"===s)if(!n)return b.dangerouslySetInnerHTML&&(b.children=b.dangerouslySetInnerHTML.__html,delete b.dangerouslySetInnerHTML),(0,o.jsx)("script",{nonce:w,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+(0,d.htmlEscapeJsonString)(JSON.stringify([0,{...b,id:t}]))+")"}});else return l.default.preload(n,b.integrity?{as:"script",integrity:b.integrity,nonce:w,crossOrigin:b.crossOrigin}:{as:"script",nonce:w,crossOrigin:b.crossOrigin}),(0,o.jsx)("script",{nonce:w,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+(0,d.htmlEscapeJsonString)(JSON.stringify([n,{...b,id:t}]))+")"}});"afterInteractive"===s&&n&&l.default.preload(n,b.integrity?{as:"script",integrity:b.integrity,nonce:w,crossOrigin:b.crossOrigin}:{as:"script",nonce:w,crossOrigin:b.crossOrigin})}return null}Object.defineProperty(y,"__nextScript",{value:!0});let h=y;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},55546:function(e,t,n){var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)0>t.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GoogleMapsEmbed=void 0;let o=a(n(26802)),l=n(15781);t.GoogleMapsEmbed=e=>{var t=r(e,[]);return(0,l.formatData)(o.default,t)}},57445:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){let{html:t,height:n=null,width:o=null,children:l,dataNtpc:u=""}=e;return(0,a.useEffect)(()=>{u&&performance.mark("mark_feature_usage",{detail:{feature:"next-third-parties-".concat(u)}})},[u]),(0,r.jsxs)(r.Fragment,{children:[l,t?(0,r.jsx)("div",{style:{height:null!=n?"".concat(n,"px"):"auto",width:null!=o?"".concat(o,"px"):"auto"},"data-ntpc":u,dangerouslySetInnerHTML:{__html:t}}):null]})};let r=n(95155),a=n(12115)},68197:function(e,t,n){var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)0>t.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.GoogleAnalytics=void 0;let o=a(n(23817)),l=n(15781);t.GoogleAnalytics=e=>{var t=r(e,[]);return(0,l.formatData)(o.default,t)}},68321:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a.a});var r=n(41402),a=n.n(r),o={};for(let e in r)"default"!==e&&(o[e]=()=>r[e]);n.d(t,o)},68332:(e,t,n)=>{let r;Object.defineProperty(t,"__esModule",{value:!0}),t.GoogleAnalytics=function(e){let{gaId:t,debugMode:n,dataLayerName:u="dataLayer",nonce:i}=e;return void 0===r&&(r=u),(0,o.useEffect)(()=>{performance.mark("mark_feature_usage",{detail:{feature:"next-third-parties-ga"}})},[]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.default,{id:"_next-ga-init",dangerouslySetInnerHTML:{__html:"\n window['".concat(u,"'] = window['").concat(u,"'] || [];\n function gtag(){window['").concat(u,"'].push(arguments);}\n gtag('js', new Date());\n\n gtag('config', '").concat(t,"' ").concat(n?",{ 'debug_mode': true }":"",");")},nonce:i}),(0,a.jsx)(l.default,{id:"_next-ga",src:"https://www.googletagmanager.com/gtag/js?id=".concat(t),nonce:i})]})},t.sendGAEvent=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];if(void 0===r)return void console.warn("@next/third-parties: GA has not been initialized");window[r]?window[r].push(arguments):console.warn("@next/third-parties: GA dataLayer ".concat(r," does not exist"))};let a=n(95155),o=n(12115),l=function(e){return e&&e.__esModule?e:{default:e}}(n(68321))},76784:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.sendGAEvent=t.GoogleAnalytics=t.sendGTMEvent=t.GoogleTagManager=t.YouTubeEmbed=t.GoogleMapsEmbed=void 0;var a=n(2037);Object.defineProperty(t,"GoogleMapsEmbed",{enumerable:!0,get:function(){return r(a).default}});var o=n(37577);Object.defineProperty(t,"YouTubeEmbed",{enumerable:!0,get:function(){return r(o).default}});var l=n(98202);Object.defineProperty(t,"GoogleTagManager",{enumerable:!0,get:function(){return l.GoogleTagManager}}),Object.defineProperty(t,"sendGTMEvent",{enumerable:!0,get:function(){return l.sendGTMEvent}});var u=n(68332);Object.defineProperty(t,"GoogleAnalytics",{enumerable:!0,get:function(){return u.GoogleAnalytics}}),Object.defineProperty(t,"sendGAEvent",{enumerable:!0,get:function(){return u.sendGAEvent}})},88246:e=>{e.exports=JSON.parse('{"id":"youtube-embed","description":"Embed a YouTube embed on your webpage.","website":"https://github.com/paulirish/lite-youtube-embed","html":{"element":"lite-youtube","attributes":{"videoid":null,"playlabel":null}},"stylesheets":["https://cdn.jsdelivr.net/gh/paulirish/lite-youtube-embed@master/src/lite-yt-embed.css"],"scripts":[{"url":"https://cdn.jsdelivr.net/gh/paulirish/lite-youtube-embed@master/src/lite-yt-embed.js","strategy":"idle","location":"head","action":"append"}]}')},93438:function(e,t,n){var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)0>t.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.YouTubeEmbed=void 0;let o=a(n(88246)),l=n(15781);t.YouTubeEmbed=e=>{var t=r(e,[]);return(0,l.formatData)(o.default,t)}},98202:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sendGTMEvent=void 0,t.GoogleTagManager=function(e){let{gtmId:t,gtmScriptUrl:n="https://www.googletagmanager.com/gtm.js",dataLayerName:u="dataLayer",auth:i,preview:s,dataLayer:c,nonce:d}=e;l=u;let f="dataLayer"!==u?"&l=".concat(u):"";return(0,a.useEffect)(()=>{performance.mark("mark_feature_usage",{detail:{feature:"next-third-parties-gtm"}})},[]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.default,{id:"_next-gtm-init",dangerouslySetInnerHTML:{__html:"\n (function(w,l){\n w[l]=w[l]||[];\n w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});\n ".concat(c?"w[l].push(".concat(JSON.stringify(c),")"):"","\n })(window,'").concat(u,"');")},nonce:d}),(0,r.jsx)(o.default,{id:"_next-gtm","data-ntpc":"GTM",src:"".concat(n,"?id=").concat(t).concat(f).concat(i?">m_auth=".concat(i):"").concat(s?">m_preview=".concat(s,">m_cookies_win=x"):""),nonce:d})]})};let r=n(95155),a=n(12115),o=function(e){return e&&e.__esModule?e:{default:e}}(n(68321)),l="dataLayer";t.sendGTMEvent=(e,t)=>{let n=t||l;window[n]=window[n]||[],window[n].push(e)}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60],{17739:(e,t,a)=>{Promise.resolve().then(a.bind(a,22214))},18332:(e,t,a)=>{"use strict";a.d(t,{Fc:()=>s,TN:()=>o,XL:()=>d});var n=a(95155);a(12115);var r=a(83101),l=a(64269);let i=(0,r.F)("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"}},defaultVariants:{variant:"default"}});function s(e){let{className:t,variant:a,...r}=e;return(0,n.jsx)("div",{"data-slot":"alert",role:"alert",className:(0,l.cn)(i({variant:a}),t),...r})}function d(e){let{className:t,...a}=e;return(0,n.jsx)("div",{"data-slot":"alert-title",className:(0,l.cn)("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",t),...a})}function o(e){let{className:t,...a}=e;return(0,n.jsx)("div",{"data-slot":"alert-description",className:(0,l.cn)("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",t),...a})}},22214:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>X});var n=a(95155),r=a(12115),l=a(20063),i=a(80230),s=a(22470),d=a(3998),o=a(18332),u=a(50803),c=a(35299),g=a(7831),h=a(41444),m=a(71511),x=a(93782);function f(e){var t,a;let n=[];return(null==(t=e.target)?void 0:t.agentId)||n.push("A target agent is required"),(null==(a=e.technique)?void 0:a.type)&&(0,m._w)(e.technique.type)||n.push("A technique is required"),e.goals.some(e=>""!==e.trim())||n.push("At least one goal is required"),n}let p=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function v(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,a)=>v(e,t[a]));if(p(e)&&p(t)){let a=Object.keys(e);return a.length===Object.keys(t).length&&a.every(a=>a in t&&v(e[a],t[a]))}return!1}let j={goals:[]};function y(e,t){return{draggable:!0,onDragStart:a=>{a.dataTransfer.setData("application/hackagent-component",JSON.stringify({kind:e,payload:t})),a.dataTransfer.effectAllowed="move"}}}let b="cursor-grab rounded border bg-card px-2 py-1 text-sm hover:bg-accent",N=e=>{let{agents:t}=e;return(0,n.jsxs)("div",{className:"w-48 space-y-4 border-r p-3",children:[(0,n.jsx)(k,{title:"Targets",children:t.map(e=>(0,n.jsx)("div",{className:b,...y("target",{agentId:e.id}),children:e.name},e.id))}),(0,n.jsx)(k,{title:"Techniques",children:Object.values(m.K3).map(e=>(0,n.jsx)("div",{className:b,...y("technique",{type:e.type}),children:e.label},e.type))}),(0,n.jsx)(k,{title:"Judge",children:(0,n.jsx)("div",{className:b,...y("judge",{identifier:"gemma3:4b"}),children:"Judge model"})}),(0,n.jsx)(k,{title:"Goals",children:(0,n.jsx)("div",{className:b,...y("goals",{}),children:"Goal list"})})]})},k=e=>{let{title:t,children:a}=e;return(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)("div",{className:"text-xs font-semibold uppercase text-muted-foreground",children:t}),a]})};var w=a(22539);a(8301);var q=a(49799),S=a(64269);let C=e=>{let{title:t,filled:a,summary:r,placeholder:l,selected:i,invalid:s}=e;return(0,n.jsxs)("div",{className:(0,S.cn)("w-56 rounded-md border bg-card p-3 shadow-sm transition",i&&"ring-2 ring-primary",s&&"ring-2 ring-destructive"),children:[(0,n.jsx)("div",{className:"text-xs font-semibold uppercase text-muted-foreground",children:t}),(0,n.jsx)("div",{className:"mt-1 text-sm",children:a?(0,n.jsx)("span",{className:"font-medium",children:r}):(0,n.jsx)("span",{className:"text-muted-foreground italic",children:l})})]})},A={target:"Drop a target agent",technique:"Drop a technique",judge:"Drop a judge model",goals:"Add goals"},_={target:"Target",technique:"Technique",judge:"Judge",goals:"Goals"};function T(e){let t=t=>{let{data:a}=t,{filled:r,summary:l}=function(e,t){var a,n,r;switch(e){case"target":return{filled:!!t.target,summary:null==(a=t.target)?void 0:a.agentId};case"technique":return{filled:!!t.technique,summary:t.technique?null==(n=(0,m._w)(t.technique.type))?void 0:n.label:void 0};case"judge":return{filled:!!t.judge,summary:null==(r=t.judge)?void 0:r.identifier};case"goals":return{filled:t.goals.length>0,summary:"".concat(t.goals.length," goal(s)")}}}(e,a.state);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(w.h7,{type:"target",position:q.yX.Left,style:{visibility:"hidden"}}),(0,n.jsx)(C,{title:_[e],placeholder:A[e],filled:r,summary:l,selected:a.selected,invalid:a.invalid}),(0,n.jsx)(w.h7,{type:"source",position:q.yX.Right,style:{visibility:"hidden"}})]})};return t.displayName="".concat(e,"Node"),t}let J={target:T("target"),technique:T("technique"),judge:T("judge"),goals:T("goals")},F={goals:{x:0,y:0},technique:{x:300,y:80},target:{x:620,y:0},judge:{x:300,y:260}},O=[{id:"goals-technique",source:"goals",target:"technique"},{id:"technique-target",source:"technique",target:"target"},{id:"technique-judge",source:"technique",target:"judge"}],E=e=>{let{state:t,selectedSlot:a,invalidSlots:l,onSelectSlot:i,onDropComponent:s}=e,d=(0,r.useMemo)(()=>["goals","technique","target","judge"].map(e=>({id:e,type:e,position:F[e],data:{slot:e,state:t,selected:a===e,invalid:l.includes(e)}})),[t,a,l]);return(0,n.jsx)("div",{className:"h-[520px] w-full","data-testid":"builder-canvas",children:(0,n.jsx)(w.Gc,{nodes:d,edges:O,nodeTypes:J,nodesDraggable:!1,nodesConnectable:!1,edgesReconnectable:!1,elementsSelectable:!0,fitView:!0,onNodeClick:(e,t)=>i(t.id),onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move"},onDrop:e=>{e.preventDefault();let t=e.dataTransfer.getData("application/hackagent-component");if(!t)return;let{kind:a,payload:n}=JSON.parse(t);s(a,n)},children:(0,n.jsx)(w.VS,{})})})};var D=a(65142),R=a(76444);let L=e=>{var t,a,r,l,i,s;let{slot:d,state:o,agents:u,onChange:c}=e;if(!d)return(0,n.jsx)("div",{className:"w-72 border-l p-4 text-sm text-muted-foreground",children:"Select a node to edit it."});if("goals"===d)return(0,n.jsxs)("div",{className:"w-72 border-l p-4",children:[(0,n.jsx)(R.J,{htmlFor:"goals-ta",children:"Goals (one per line)"}),(0,n.jsx)("textarea",{id:"goals-ta",className:"mt-1 h-40 w-full rounded border p-2 text-sm",value:o.goals.join("\n"),onChange:e=>c({...o,goals:e.target.value.split("\n").map(e=>e.trimEnd()).filter(e=>""!==e)})})]});if("target"===d)return(0,n.jsxs)("div",{className:"w-72 border-l p-4",children:[(0,n.jsx)(R.J,{htmlFor:"target-sel",children:"Target agent"}),(0,n.jsxs)("select",{id:"target-sel",className:"mt-1 w-full rounded border p-2 text-sm",value:null!=(a=null==(t=o.target)?void 0:t.agentId)?a:"",onChange:e=>c({...o,target:{agentId:e.target.value}}),children:[(0,n.jsx)("option",{value:"",disabled:!0,children:"Select an agent…"}),u.map(e=>(0,n.jsx)("option",{value:e.id,children:e.name},e.id))]})]});if("judge"===d)return(0,n.jsxs)("div",{className:"w-72 space-y-3 border-l p-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)(R.J,{htmlFor:"judge-id",children:"Judge model identifier"}),(0,n.jsx)(D.p,{id:"judge-id",value:null!=(i=null==(r=o.judge)?void 0:r.identifier)?i:"",onChange:e=>c({...o,judge:{...o.judge,identifier:e.target.value}})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(R.J,{htmlFor:"judge-ep",children:"Judge endpoint (optional)"}),(0,n.jsx)(D.p,{id:"judge-ep",value:null!=(s=null==(l=o.judge)?void 0:l.endpoint)?s:"",onChange:e=>{var t,a;return c({...o,judge:{identifier:null!=(a=null==(t=o.judge)?void 0:t.identifier)?a:"",endpoint:e.target.value}})}})]})]});let g=o.technique?(0,m._w)(o.technique.type):void 0;if(!g)return(0,n.jsx)("div",{className:"w-72 border-l p-4 text-sm text-muted-foreground",children:"Drop a technique to configure it."});let h=o.technique.values,x=(e,t)=>c({...o,technique:{type:o.technique.type,values:{...h,[e]:t}}});return(0,n.jsxs)("div",{className:"w-72 space-y-3 overflow-y-auto border-l p-4",children:[(0,n.jsx)("div",{className:"text-sm font-semibold",children:g.label}),g.fields.map(e=>{var t,a;let r="f-".concat(e.key),l=null!=(t=h[e.key])?t:e.default;if("boolean"===e.type)return(0,n.jsxs)("label",{className:"flex items-center gap-2 text-sm",htmlFor:r,children:[(0,n.jsx)("input",{id:r,type:"checkbox",checked:!!l,onChange:t=>x(e.key,t.target.checked)}),e.label,e.help&&(0,n.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e.help})]},e.key);if("enum"===e.type)return(0,n.jsxs)("div",{children:[(0,n.jsx)(R.J,{htmlFor:r,children:e.label}),(0,n.jsx)("select",{id:r,className:"mt-1 w-full rounded border p-2 text-sm",value:String(l),onChange:t=>x(e.key,t.target.value),children:(null!=(a=e.enumValues)?a:[]).map(e=>(0,n.jsx)("option",{value:e,children:e},e))}),e.help&&(0,n.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e.help})]},e.key);if("json"===e.type)return(0,n.jsxs)("div",{children:[(0,n.jsx)(R.J,{htmlFor:r,children:e.label}),(0,n.jsx)("textarea",{id:r,className:"mt-1 h-24 w-full rounded border p-2 font-mono text-xs",value:String(null!=l?l:""),onChange:t=>x(e.key,t.target.value)}),e.help&&(0,n.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e.help})]},e.key);let i="string[]"===e.type&&Array.isArray(l)?l.join(", "):String(null!=l?l:"");return(0,n.jsxs)("div",{children:[(0,n.jsx)(R.J,{htmlFor:r,children:e.label}),(0,n.jsx)(D.p,{id:r,value:i,onChange:t=>x(e.key,function(e,t){return"number"===e.type?""===t?"":Number(t):"string[]"===e.type?t.split(",").map(e=>e.trim()).filter(Boolean):t}(e,t.target.value))}),e.help&&(0,n.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e.help})]},e.key)})]})},I=(0,h.h)("AttackBuilder");function X(){return(0,n.jsx)(r.Suspense,{fallback:null,children:(0,n.jsx)(G,{})})}function G(){let{isAuthenticated:e,isLoading:t}=(0,i.h)(),a=(0,l.useRouter)(),h=(0,l.useSearchParams)().get("attackId"),[y,b]=(0,r.useState)([]),[k,w]=(0,r.useState)(j),[q,S]=(0,r.useState)(null),[C,A]=(0,r.useState)([]),[_,T]=(0,r.useState)([]),[J,F]=(0,r.useState)(!1),[O,D]=(0,r.useState)(null),[R,X]=(0,r.useState)(null),[G,M]=(0,r.useState)(null);(0,r.useEffect)(()=>{e&&g.in.agentList().then(e=>b(e.results||[])).catch(e=>I.error({e},"agent list failed"))},[e]),(0,r.useEffect)(()=>{if(D(null),X(null),M(null),!e||!h)return;let t=!1;return g.vm.attackRetrieve({id:h}).then(e=>{if(t)return;let a=function(e){var t;let a=(0,m._w)(e.type);if(!a)return{ok:!1,reason:'The builder has no form for technique "'.concat(e.type,'".')};let n=null!=(t=e._configuration)?t:{};if(!p(n))return{ok:!1,reason:"The configuration is not a JSON object."};let{goals:r=[],judge:l,...i}=n;if(!Array.isArray(r)||!r.every(e=>"string"==typeof e))return{ok:!1,reason:"The goals are not a list of strings."};let s=void 0===l?void 0:function(e){if(!p(e)||"string"!=typeof e.identifier||""===e.identifier)return null;let{identifier:t,endpoint:a,...n}=e;return Object.keys(n).length>0?null:void 0===a?{identifier:t}:"string"!=typeof a||""===a?null:{identifier:t,endpoint:a}}(l);if(null===s)return{ok:!1,reason:"The judge has settings the builder cannot show (only identifier and endpoint are supported)."};let d=(0,m.wW)(a.fields);for(let[e,t]of Object.entries(function(e){let t=(0,m.wW)(e.fields),a=e.toConfig({...t}),n={};for(let r of e.fields){if(r.key===m.Ni.key)continue;let l=function e(t,a){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return p(t)&&p(a)?Object.keys({...t,...a}).flatMap(r=>e(t[r],a[r],[...n,r])):v(t,a)?[]:[n]}(a,e.toConfig({...t,[r.key]:function(e){var t,a;switch(e.type){case"number":return Number(e.default)+1;case"boolean":return!e.default;case"enum":return null==(t=e.enumValues)?void 0:t.find(t=>t!==e.default);case"string[]":return[...null!=(a=e.default)?a:[],"__probe__"];default:return"".concat(String(e.default),"__probe__")}}(r)}));1===l.length&&(n[r.key]=l[0])}return n}(a))){let n=function(e,t){let a=e;for(let e of t){if(!p(a)||!(e in a))return;a=a[e]}return a}(i,t);if(void 0===n)continue;let r=a.fields.find(t=>t.key===e);d[e]="enum"===r.type?String(n):n}let o=a.toConfig({...d,[m.Ni.key]:""}),u={};for(let[e,t]of Object.entries(i))v(o[e],t)||(u[e]=t);return d[m.Ni.key]=Object.keys(u).length?JSON.stringify(u,null,2):"",{ok:!0,state:{target:e.agent?{agentId:e.agent}:void 0,technique:{type:a.type,values:d},judge:s,goals:r}}}(e);if(!a.ok)return void M(a.reason);w(a.state),D(e)}).catch(e=>{I.error({e},"attack retrieve failed"),t||X(e instanceof Error?e.message:"Failed to load the attack.")}),()=>{t=!0}},[e,h]);let V=(0,r.useCallback)((e,t)=>{w(a=>{switch(e){case"target":return{...a,target:t};case"judge":return{...a,judge:t};case"goals":return{...a,goals:a.goals.length?a.goals:[""]};case"technique":{let{type:e}=t,n=(0,m._w)(e);if(!n)return a;return{...a,technique:{type:e,values:(0,x.wW)(n.fields)}}}default:return a}}),S(e)},[]),B=e=>e.includes("target")?"target":e.includes("technique")?"technique":e.includes("goal")?"goals":null,P=(0,r.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=f(k);if(t.length){T(t),A(t.map(B).filter(e=>null!==e));return}T([]),A([]),F(!0);try{let t,{type:n,agent:r,_configuration:l}=function(e){var t;let a=f(e);if(a.length>0)throw Error(a.join("; "));let n=(0,m._w)(e.technique.type),r=e.goals.map(e=>e.trim()).filter(e=>""!==e),l={...n.toConfig(e.technique.values),goals:r};return(null==(t=e.judge)?void 0:t.identifier)&&(l.judge={identifier:e.judge.identifier,...e.judge.endpoint?{endpoint:e.judge.endpoint}:{}}),{type:n.type,agent:e.target.agentId,_configuration:l}}(k);O&&!e?(await g.vm.attackPartialUpdate({id:O.id,patchedAttackRequest:{type:n,agent:r,_configuration:l}}),t=O.id):t=(await g.vm.attackCreate({attackRequest:{type:n,agent:r,_configuration:l}})).id,await g.ME.runRunTestsCreate({runRequest:{agent:r,attack:t}}),a.push("/stats")}catch(e){I.error({e},"launch failed"),T([e instanceof Error?e.message:"Failed to save or launch the attack."])}finally{F(!1)}},[k,a,O]);if(t)return null;let $=h?"Editing attack ".concat(h).concat(O?" (".concat(O.type," on ").concat(O.agentName,")"):"",". Saving updates this attack and launches a run."):"Drag components onto the canvas to compose and launch an attack run.";return(0,n.jsx)(s.M,{title:h?"Edit Attack":"Attack Builder",description:$,children:e?(0,n.jsxs)("div",{className:"px-6",children:[h&&!O&&!R&&!G&&(0,n.jsxs)("p",{className:"mb-4 flex items-center text-sm text-muted-foreground",children:[(0,n.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"})," Loading attack…"]}),R&&(0,n.jsxs)(o.Fc,{variant:"destructive",className:"mb-4",children:[(0,n.jsx)(u.A,{className:"h-4 w-4"}),(0,n.jsx)(o.XL,{children:"Could not load the attack"}),(0,n.jsx)(o.TN,{children:R})]}),G&&h&&(0,n.jsxs)(o.Fc,{className:"mb-4",children:[(0,n.jsx)(u.A,{className:"h-4 w-4"}),(0,n.jsx)(o.XL,{children:"This attack cannot be edited in the builder"}),(0,n.jsxs)(o.TN,{children:[(0,n.jsxs)("p",{children:[G," Edit its raw JSON instead so no settings are lost."]}),(0,n.jsx)(d.$,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>a.push("/attacks?editRaw=".concat(encodeURIComponent(h))),children:"Edit raw JSON"})]})]}),_.length>0&&(0,n.jsxs)(o.Fc,{variant:"destructive",className:"mb-4",children:[(0,n.jsx)(u.A,{className:"h-4 w-4"}),(0,n.jsx)(o.XL,{children:"Cannot launch yet"}),(0,n.jsx)(o.TN,{children:(0,n.jsx)("ul",{className:"list-disc pl-4",children:_.map(e=>(0,n.jsx)("li",{children:e},e))})})]}),(0,n.jsxs)("div",{className:"flex border rounded-md overflow-hidden",children:[(0,n.jsx)(N,{agents:y}),(0,n.jsx)(E,{state:k,selectedSlot:q,invalidSlots:C,onSelectSlot:S,onDropComponent:V}),(0,n.jsx)(L,{slot:q,state:k,agents:y,onChange:w})]}),(0,n.jsx)("div",{className:"mt-4 flex justify-end gap-2",children:h?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.$,{variant:"outline",onClick:()=>P(!0),disabled:J,children:"Save as New & Launch"}),(0,n.jsxs)(d.$,{onClick:()=>P(),disabled:J||!O,children:[J&&(0,n.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"})," Save & Launch Run"]})]}):(0,n.jsxs)(d.$,{onClick:()=>P(),disabled:J,children:[J&&(0,n.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"})," Build & Launch Run"]})})]}):(0,n.jsx)("div",{className:"px-6",children:(0,n.jsxs)(o.Fc,{className:"mt-4",children:[(0,n.jsx)(u.A,{className:"h-4 w-4"}),(0,n.jsx)(o.XL,{children:"Authentication Required"}),(0,n.jsx)(o.TN,{children:"Please log in to build attacks."})]})})})}},22470:(e,t,a)=>{"use strict";a.d(t,{M:()=>r});var n=a(95155);a(12115);let r=e=>{let{title:t,description:a,action:r,children:l,maxWidth:i="full"}=e;return(0,n.jsxs)("div",{className:"w-full ".concat({full:"max-w-full","8xl":"max-w-[90rem]","7xl":"max-w-7xl","6xl":"max-w-6xl","5xl":"max-w-5xl","4xl":"max-w-4xl","3xl":"max-w-3xl","2xl":"max-w-2xl"}[i]||"max-w-full"," mx-auto py-6 space-y-6"),children:[t&&(0,n.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 px-6 pb-5 border-b",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:t}),a&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:a})]}),r&&(0,n.jsx)("div",{className:"flex-shrink-0 pt-0.5",children:r})]}),l]})}},34105:(e,t,a)=>{"use strict";a.d(t,{c:()=>n});let n=(0,a(12115).createContext)(void 0)},65142:(e,t,a)=>{"use strict";a.d(t,{p:()=>l});var n=a(95155);a(12115);var r=a(64269);function l(e){let{className:t,type:a,...l}=e;return(0,n.jsx)("input",{type:a,"data-slot":"input",className:(0,r.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...l})}},76444:(e,t,a)=>{"use strict";a.d(t,{J:()=>i});var n=a(95155);a(12115);var r=a(85408),l=a(64269);function i(e){let{className:t,...a}=e;return(0,n.jsx)(r.b,{"data-slot":"label",className:(0,l.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...a})}},80230:(e,t,a)=>{"use strict";a.d(t,{h:()=>i});var n=a(12115),r=a(34105);let l=async()=>"";function i(){let e=(0,n.useContext)(r.c);return e||{provider:"disabled",user:void 0,isAuthenticated:!1,isLoading:!0,login:void 0,logout:void 0,getAccessTokenSilently:l}}}},e=>{e.O(0,[714,862,187,144,326,924,511,441,493,358],()=>e(e.s=17739)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[80],{3549:(e,t,a)=>{Promise.resolve().then(a.bind(a,47393))},20063:(e,t,a)=>{"use strict";var n=a(47260);a.o(n,"usePathname")&&a.d(t,{usePathname:function(){return n.usePathname}}),a.o(n,"useRouter")&&a.d(t,{useRouter:function(){return n.useRouter}}),a.o(n,"useSearchParams")&&a.d(t,{useSearchParams:function(){return n.useSearchParams}})},47393:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>b});var n=a(95155),r=a(12115),s=a(80230),i=a(20063),l=a(71511),c=a(7831),o=a(41444),d=a(22470),u=a(56419),h=a(35835),g=a(87270),p=a(20243),x=a(18332),m=a(98053),j=a(50803),f=a(35299),v=a(3998),y=a(46826),N=a(18514),k=a(71360),A=a(51834),w=a(65142),C=a(76444);let E=(0,o.h)("AttacksPage"),b=()=>{var e,t;let{isAuthenticated:a,isLoading:o}=(0,s.h)(),b=(0,i.useRouter)(),[S,_]=(0,r.useState)([]),[I,D]=(0,r.useState)(!0),[R,O]=(0,r.useState)(null),[P,F]=(0,r.useState)(null),[J,T]=(0,r.useState)({open:!1,attack:null}),[$,L]=(0,r.useState)({open:!1,title:"",description:""}),V=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"default";L({open:!0,title:e,description:t,variant:a})},[q,H]=(0,r.useState)(!1),[M,U]=(0,r.useState)(!1),[X,B]=(0,r.useState)(null),[G,W]=(0,r.useState)({type:"",agent:"",_configuration:"{}"}),z=(0,r.useCallback)(async()=>{D(!0),O(null);try{let e=await c.vm.attackList();_(e.results||[])}catch(t){E.error({err:t},"Error fetching attacks");let e=t.message||"Failed to load attacks.";if(t.response){let a=t.response.status,n="Could not read error body";try{n=await t.response.text()}catch(e){}e="API Error (".concat(a,"): ").concat(n||e)}O(e),_([])}finally{D(!1)}},[]),K=()=>{W({type:"",agent:"",_configuration:"{}"}),H(!0)},Z=async()=>{let e;if(!G.type||!G.agent)return void V("Validation Error","Type and Agent ID are required.");try{e=JSON.parse(G._configuration)}catch(e){V("Validation Error","Configuration must be valid JSON.");return}D(!0);try{let t={type:G.type,agent:G.agent,_configuration:e};await c.vm.attackCreate({attackRequest:t}),z(),H(!1)}catch(t){E.error({err:t},"Error creating attack");let e=t.message||"Failed to create attack.";if(t.response){let a=t.response.status,n="Could not read error body";try{n=await t.response.text()}catch(e){}e="Create API Error (".concat(a,"): ").concat(n||e)}V("Error Creating Attack",e,"destructive")}finally{D(!1)}},Q=(0,r.useCallback)(e=>{B(e),W({type:e.type||"",agent:e.agent||"",_configuration:JSON.stringify(e._configuration||{},null,2)}),U(!0)},[]),Y=async()=>{let e;if(!X||!X.id)return void V("Invalid Attack","No attack selected for editing or ID is missing.","destructive");if(!G.type||!G.agent)return void V("Validation Error","Type and Agent ID are required.");try{e=JSON.parse(G._configuration)}catch(e){V("Validation Error","Configuration must be valid JSON.");return}D(!0);try{let t={type:G.type,agent:G.agent,_configuration:e};await c.vm.attackUpdate({id:X.id,attackRequest:t}),z(),U(!1),B(null)}catch(t){E.error({err:t},"Error updating attack");let e=t.message||"Failed to update attack.";if(t.response){let a=t.response.status,n="Could not read error body";try{n=await t.response.text()}catch(e){}e="Update API Error (".concat(a,"): ").concat(n||e)}V("Error Updating Attack",e,"destructive")}finally{D(!1)}},ee=async()=>{let e=J.attack;if(!e||!e.id)return;let t=e.id;F(t),O(null);try{await c.vm.attackDestroy({id:t}),_(e=>e.filter(e=>e.id!==t)),T({open:!1,attack:null})}catch(t){E.error({err:t},"Error deleting attack");let e=t.message||"Failed to delete attack.";if(t.response){let a=t.response.status,n="Could not read error body";try{n=await t.response.text()}catch(e){}e="Delete API Error (".concat(a,"): ").concat(n||e)}O(e)}finally{F(null)}};return((0,r.useEffect)(()=>{if(o||!a)return;let e=new URLSearchParams(window.location.search).get("editRaw");e&&(b.replace("/attacks"),c.vm.attackRetrieve({id:e}).then(Q).catch(e=>{E.error({err:e},"Error loading attack for raw edit"),L({open:!0,title:"Error Loading Attack",description:e.message||"Failed to load attack.",variant:"destructive"})}))},[o,a,b,Q]),(0,r.useEffect)(()=>{!o&&a?z():o||a||(D(!1),_([]),O(null),F(null))},[o,a,z]),o||I&&0===S.length&&!R)?(0,n.jsx)(d.M,{title:"Attacks",description:"Configure and execute adversarial attacks against your AI agents.",children:(0,n.jsx)("div",{className:"border overflow-hidden mx-6",children:(0,n.jsxs)(g.XI,{children:[(0,n.jsx)(g.A0,{children:(0,n.jsxs)(g.Hj,{children:[(0,n.jsx)(g.nd,{children:(0,n.jsx)(p.E,{className:"h-5 w-1/4"})}),(0,n.jsx)(g.nd,{children:(0,n.jsx)(p.E,{className:"h-5 w-1/4"})}),(0,n.jsx)(g.nd,{children:(0,n.jsx)(p.E,{className:"h-5 w-1/4"})}),(0,n.jsx)(g.nd,{className:"text-right",children:(0,n.jsx)(p.E,{className:"h-5 w-1/4"})})]})}),(0,n.jsx)(g.BF,{children:[void 0,void 0,void 0].map((e,t)=>(0,n.jsxs)(g.Hj,{children:[(0,n.jsx)(g.nA,{children:(0,n.jsx)(p.E,{className:"h-5 w-full"})}),(0,n.jsx)(g.nA,{children:(0,n.jsx)(p.E,{className:"h-5 w-full"})}),(0,n.jsx)(g.nA,{children:(0,n.jsx)(p.E,{className:"h-5 w-full"})}),(0,n.jsx)(g.nA,{className:"text-right",children:(0,n.jsx)(p.E,{className:"h-8 w-20"})})]},"skeleton-".concat(t)))})]})})}):(0,n.jsxs)(d.M,{title:"Attacks",description:"Configure and execute adversarial attacks against your AI agents.",action:a&&(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsxs)(v.$,{variant:"outline",onClick:()=>b.push("/attacks/builder"),children:[(0,n.jsx)(y.A,{className:"mr-2 h-4 w-4"})," Build visually"]}),(0,n.jsxs)(v.$,{onClick:K,children:[(0,n.jsx)(y.A,{className:"mr-2 h-4 w-4"})," Create Attack"]})]}),children:[(0,n.jsxs)("div",{className:"px-6 space-y-4",children:[!a&&!o&&(0,n.jsxs)(x.Fc,{className:"mt-4",children:[(0,n.jsx)(j.A,{className:"h-4 w-4"}),(0,n.jsx)(x.XL,{children:"Authentication Required"}),(0,n.jsx)(x.TN,{children:"Please log in to manage attacks."})]}),a&&R&&(0,n.jsxs)(x.Fc,{variant:"destructive",className:"my-4",children:[(0,n.jsx)(j.A,{className:"h-4 w-4"}),(0,n.jsx)(x.XL,{children:"Error"}),(0,n.jsx)(x.TN,{children:R})]}),a&&!I&&0===S.length&&!R&&(0,n.jsx)(u.p,{icon:y.A,title:"No attacks configured",description:"Get started by creating a new attack configuration.",action:(0,n.jsxs)(v.$,{onClick:K,children:[(0,n.jsx)(y.A,{className:"mr-2 h-4 w-4"})," Create Attack"]})}),a&&S.length>0&&(0,n.jsx)("div",{className:"border overflow-hidden",children:(0,n.jsxs)(g.XI,{children:[(0,n.jsx)(g.r6,{children:"A list of your configured attacks."}),(0,n.jsx)(g.A0,{children:(0,n.jsxs)(g.Hj,{children:[(0,n.jsx)(g.nd,{className:"w-[20%]",children:"ID"}),(0,n.jsx)(g.nd,{className:"w-[25%]",children:"Type"}),(0,n.jsx)(g.nd,{className:"w-[25%]",children:"Agent Name"}),(0,n.jsx)(g.nd,{className:"w-[15%]",children:"Created At"}),(0,n.jsx)(g.nd,{className:"text-right w-[15%]",children:"Actions"})]})}),(0,n.jsx)(g.BF,{children:S.map(e=>(0,n.jsxs)(g.Hj,{children:[(0,n.jsx)(g.nA,{className:"font-medium truncate max-w-[100px]",title:e.id,children:e.id}),(0,n.jsx)(g.nA,{children:e.type}),(0,n.jsx)(g.nA,{children:e.agentName}),(0,n.jsx)(g.nA,{children:e.createdAt?new Date(e.createdAt).toLocaleDateString():"N/A"}),(0,n.jsxs)(g.nA,{className:"text-right",children:[(0,n.jsx)(v.$,{variant:"ghost",size:"icon",onClick:()=>(e=>e.id?(0,l._w)(e.type)?void b.push("/attacks/builder?attackId=".concat(e.id)):void Q(e):void V("Invalid Attack","Cannot edit attack: ID is missing.","destructive"))(e),className:"mr-2",title:"Edit Attack",disabled:!!P,children:(0,n.jsx)(N.A,{className:"h-4 w-4"})}),(0,n.jsx)(v.$,{variant:"ghost",size:"icon",onClick:()=>(e=>{if(!e.id)return void O("Cannot delete attack: ID missing.");T({open:!0,attack:e})})(e),disabled:P===e.id,title:"Delete Attack",className:P===e.id?"text-destructive":"",children:P===e.id?(0,n.jsx)(f.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(k.A,{className:"h-4 w-4"})})]})]},e.id))})]})})]}),(0,n.jsx)(A.lG,{open:q,onOpenChange:H,children:(0,n.jsxs)(A.Cf,{className:"sm:max-w-[500px]",children:[(0,n.jsxs)(A.c7,{children:[(0,n.jsx)(A.L3,{children:"Create New Attack"}),(0,n.jsx)(A.rr,{children:"Enter the details for your new attack. Click save when you're done."})]}),(0,n.jsxs)("div",{className:"grid gap-4 py-4",children:[(0,n.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,n.jsx)(C.J,{htmlFor:"type",className:"text-right",children:"Type"}),(0,n.jsx)(w.p,{id:"type",value:G.type,onChange:e=>W({...G,type:e.target.value}),className:"col-span-3",placeholder:"e.g., PREFIX_GENERATION"})]}),(0,n.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,n.jsx)(C.J,{htmlFor:"agent",className:"text-right",children:"Agent ID"}),(0,n.jsx)(w.p,{id:"agent",value:G.agent,onChange:e=>W({...G,agent:e.target.value}),className:"col-span-3",placeholder:"Enter Agent ID"})]}),(0,n.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,n.jsx)(C.J,{htmlFor:"configuration",className:"text-right pt-2",children:"Configuration (JSON)"}),(0,n.jsx)("textarea",{id:"configuration",value:G._configuration,onChange:e=>W({...G,_configuration:e.target.value}),className:"col-span-3 h-32 p-2 border rounded-md text-sm font-mono",placeholder:'e.g., { "param1": "value1", "param2": true }'})]})]}),(0,n.jsxs)(A.Es,{children:[(0,n.jsx)(A.HM,{asChild:!0,children:(0,n.jsx)(v.$,{variant:"outline",children:"Cancel"})}),(0,n.jsxs)(v.$,{onClick:Z,disabled:I,children:[I&&q?(0,n.jsx)(f.A,{className:"mr-2 h-4 w-4 animate-spin"}):null,"Save Attack"]})]})]})}),(0,n.jsx)(A.lG,{open:M,onOpenChange:e=>{U(e),e||B(null)},children:(0,n.jsxs)(A.Cf,{className:"sm:max-w-[500px]",children:[(0,n.jsxs)(A.c7,{children:[(0,n.jsxs)(A.L3,{children:["Edit Attack: ",(null==X?void 0:X.id)?X.id.substring(0,8)+"...":""]}),(0,n.jsxs)(A.rr,{children:["Update the details for your attack (Type: ",null==X?void 0:X.type,", Agent: ",null==X?void 0:X.agentName,"). Click save when you're done."]})]}),(0,n.jsxs)("div",{className:"grid gap-4 py-4",children:[(0,n.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,n.jsx)(C.J,{htmlFor:"edit-type",className:"text-right",children:"Type"}),(0,n.jsx)(w.p,{id:"edit-type",value:G.type,onChange:e=>W({...G,type:e.target.value}),className:"col-span-3"})]}),(0,n.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,n.jsx)(C.J,{htmlFor:"edit-agent",className:"text-right",children:"Agent ID"}),(0,n.jsx)(w.p,{id:"edit-agent",value:G.agent,onChange:e=>W({...G,agent:e.target.value}),className:"col-span-3",placeholder:"Enter Agent ID"})]}),(0,n.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,n.jsx)(C.J,{htmlFor:"edit-configuration",className:"text-right pt-2",children:"Configuration (JSON)"}),(0,n.jsx)("textarea",{id:"edit-configuration",value:G._configuration,onChange:e=>W({...G,_configuration:e.target.value}),className:"col-span-3 h-32 p-2 border rounded-md text-sm font-mono"})]})]}),(0,n.jsxs)(A.Es,{children:[(0,n.jsx)(A.HM,{asChild:!0,children:(0,n.jsx)(v.$,{variant:"outline",onClick:()=>{B(null)},children:"Cancel"})}),(0,n.jsxs)(v.$,{onClick:Y,disabled:I,children:[I&&M?(0,n.jsx)(f.A,{className:"mr-2 h-4 w-4 animate-spin"}):null,"Save Changes"]})]})]})}),(0,n.jsx)(m.Lt,{open:$.open,onOpenChange:e=>L({...$,open:e}),children:(0,n.jsxs)(m.EO,{children:[(0,n.jsxs)(m.wd,{children:[(0,n.jsx)(m.r7,{children:$.title}),(0,n.jsx)(m.$v,{children:$.description})]}),(0,n.jsx)(m.ck,{children:(0,n.jsx)(m.Rx,{onClick:()=>L({...$,open:!1}),children:"OK"})})]})}),(0,n.jsx)(h.T,{open:J.open,onOpenChange:e=>T({...J,open:e}),title:"Delete Attack",description:'Are you sure you want to delete attack "'.concat(null==(e=J.attack)?void 0:e.type,'" on agent "').concat(null==(t=J.attack)?void 0:t.agentName,'"? This action cannot be undone.'),onConfirm:ee,confirmText:"Delete",variant:"destructive"})]})}},50803:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});let n=(0,a(71847).A)("terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]])},85408:(e,t,a)=>{"use strict";a.d(t,{b:()=>d});var n=a(12115);a(47650);var r=a(94446),s=a(95155),i=Symbol("radix.slottable");function l(e){return n.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===i}var c=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let a=function(e){let t=function(e){let t=n.forwardRef((e,t)=>{var a,s,i;let l,c,{children:o,...d}=e,u=n.isValidElement(o)?(c=(l=null==(s=Object.getOwnPropertyDescriptor((a=o).props,"ref"))?void 0:s.get)&&"isReactWarning"in l&&l.isReactWarning)?a.ref:(c=(l=null==(i=Object.getOwnPropertyDescriptor(a,"ref"))?void 0:i.get)&&"isReactWarning"in l&&l.isReactWarning)?a.props.ref:a.props.ref||a.ref:void 0,h=(0,r.s)(u,t);if(n.isValidElement(o)){let e=function(e,t){let a={...t};for(let n in t){let r=e[n],s=t[n];/^on[A-Z]/.test(n)?r&&s?a[n]=function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];let n=s(...t);return r(...t),n}:r&&(a[n]=r):"style"===n?a[n]={...r,...s}:"className"===n&&(a[n]=[r,s].filter(Boolean).join(" "))}return{...e,...a}}(d,o.props);return o.type!==n.Fragment&&(e.ref=h),n.cloneElement(o,e)}return n.Children.count(o)>1?n.Children.only(null):null});return t.displayName="".concat(e,".SlotClone"),t}(e),a=n.forwardRef((e,a)=>{let{children:r,...i}=e,c=n.Children.toArray(r),o=c.find(l);if(o){let e=o.props.children,r=c.map(t=>t!==o?t:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,s.jsx)(t,{...i,ref:a,children:n.isValidElement(e)?n.cloneElement(e,void 0,r):null})}return(0,s.jsx)(t,{...i,ref:a,children:r})});return a.displayName="".concat(e,".Slot"),a}(`Primitive.${t}`),i=n.forwardRef((e,n)=>{let{asChild:r,...i}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,s.jsx)(r?a:t,{...i,ref:n})});return i.displayName=`Primitive.${t}`,{...e,[t]:i}},{}),o=n.forwardRef((e,t)=>(0,s.jsx)(c.label,{...e,ref:t,onMouseDown:t=>{var a;t.target.closest("button, input, select, textarea")||(null==(a=e.onMouseDown)||a.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));o.displayName="Label";var d=o}},e=>{e.O(0,[187,539,292,924,905,511,441,493,358],()=>e(e.s=3549)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{6259:(e,t,a)=>{"use strict";a.d(t,{SQ:()=>o,_2:()=>c,mB:()=>d,rI:()=>s,ty:()=>l});var n=a(95155);a(12115);var r=a(24595),i=a(64269);function s(e){let{...t}=e;return(0,n.jsx)(r.bL,{"data-slot":"dropdown-menu",...t})}function l(e){let{...t}=e;return(0,n.jsx)(r.l9,{"data-slot":"dropdown-menu-trigger",...t})}function o(e){let{className:t,sideOffset:a=4,...s}=e;return(0,n.jsx)(r.ZL,{children:(0,n.jsx)(r.UC,{"data-slot":"dropdown-menu-content",sideOffset:a,className:(0,i.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",t),...s})})}function c(e){let{className:t,inset:a,variant:s="default",...l}=e;return(0,n.jsx)(r.q7,{"data-slot":"dropdown-menu-item","data-inset":a,"data-variant":s,className:(0,i.cn)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...l})}function d(e){let{className:t,...a}=e;return(0,n.jsx)(r.wv,{"data-slot":"dropdown-menu-separator",className:(0,i.cn)("bg-border -mx-1 my-1 h-px",t),...a})}},24323:(e,t,a)=>{"use strict";a.d(t,{P:()=>x,T:()=>f});var n=a(95155),r=a(12115),i=a(52619),s=a.n(i),l=a(68321),o=a(76784),c=a(7831),d=a(41444),u=a(3998),h=a(51834);let m=(0,d.h)("AnalyticsConsent");async function f(e){await c.userApi.userMeUpdate({userProfileRequest:{analyticsConsent:e}})}function x(){let[e,t]=(0,r.useState)(null),a=(0,r.useRef)(!1);(0,r.useEffect)(()=>{let e=!1;return c.userApi.userMeRetrieve().then(a=>{var n;e||t(null!=(n=a.analyticsConsent)?n:"unset")}).catch(e=>{m.debug({err:e},"Could not load analytics consent (not authenticated yet?)")}),()=>{e=!0}},[]);let i=async e=>{a.current=!0,t(e);try{await f(e)}catch(e){m.error({err:e},"Failed to save analytics consent")}};return(0,n.jsxs)(n.Fragment,{children:["accepted"===e&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.GoogleAnalytics,{gaId:"G-2P6K2HWVEE"}),(0,n.jsx)(l.default,{id:"microsoft-clarity",strategy:"afterInteractive",children:'(function(c,l,a,r,i,t,y){\n c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};\n t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;\n y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);\n })(window, document, "clarity", "script", "xowemo04qg");'})]}),(0,n.jsx)(h.lG,{open:"unset"===e,onOpenChange:e=>{e||a.current||i("declined")},children:(0,n.jsxs)(h.Cf,{children:[(0,n.jsxs)(h.c7,{children:[(0,n.jsx)(h.L3,{children:"Help us improve HackAgent"}),(0,n.jsxs)(h.rr,{children:["We'd like to use optional analytics to understand how HackAgent is used. This is separate from the cookies that keep you signed in, and you can change it anytime in Settings. See our"," ",(0,n.jsx)(s(),{href:"https://hackagent.dev/privacy-policy",target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-2 hover:text-foreground",children:"Privacy Policy"}),"."]})]}),(0,n.jsxs)(h.Es,{children:[(0,n.jsx)(u.$,{variant:"outline",onClick:()=>i("declined"),children:"Not now"}),(0,n.jsx)(u.$,{onClick:()=>i("accepted"),children:"Sounds good"})]})]})})]})}},24394:()=>{},27180:(e,t,a)=>{"use strict";a.d(t,{Authorization:()=>C});var n=a(95155),r=a(67176),i=a(20063),s=a(12115),l=a(34105),o=a(7831),c=a(41444);let d=(0,c.h)("Auth0Adapter");function u(e){let{children:t}=e,{getAccessTokenSilently:i,isAuthenticated:c,isLoading:u,loginWithRedirect:h,logout:m,user:f}=(0,r.WB)(),[x,g]=(0,s.useState)(!1),p=(0,s.useRef)(!1),v=(0,s.useCallback)(async()=>{let e=await i()||"";return(0,o.ki)(e),e},[i]);(0,s.useEffect)(()=>{let e;if(u)return;let t=!1;if(!c){(0,o.ki)(null),g(!0),p.current=!1;return}let n=async()=>{try{if(await v(),!p.current){p.current=!0;let{userApi:e}=await Promise.resolve().then(a.bind(a,7831));e.userMeRetrieve().catch(()=>d.debug("User profile synchronization deferred"))}}catch(e){d.error({err:e},"Unable to obtain Auth0 access token"),(0,o.ki)(null)}finally{t||g(!0)}};return n(),e=setInterval(()=>void n(),6e5),()=>{t=!0,e&&clearInterval(e)}},[c,u,v]);let j=(0,s.useCallback)(async()=>{await h({appState:{returnTo:"/"}})},[h]),y=(0,s.useCallback)(async()=>{(0,o.ki)(null),await m({logoutParams:{returnTo:window.location.origin}})},[m]),k=(0,s.useMemo)(()=>({provider:"auth0",user:f,isAuthenticated:c,isLoading:u||c&&!x,login:j,logout:y,getAccessTokenSilently:v}),[f,c,u,x,j,y,v]);return(0,n.jsx)(l.c.Provider,{value:k,children:t})}function h(e){let{config:t,children:a}=e,l=(0,i.useRouter)(),o=(0,s.useCallback)(e=>{l.push((null==e?void 0:e.returnTo)||"/")},[l]);if(!t.auth0Domain||!t.auth0ClientId||!t.auth0Audience)return(0,n.jsx)(m,{provider:"Auth0"});let c=t.auth0RedirectUri||window.location.origin;return(0,n.jsx)(r.y2,{domain:t.auth0Domain,clientId:t.auth0ClientId,authorizationParams:{redirect_uri:c,audience:t.auth0Audience,scope:"openid profile email"},onRedirectCallback:o,cacheLocation:"localstorage",children:(0,n.jsx)(u,{children:a})})}function m(e){let{provider:t}=e;return(0,n.jsx)("div",{role:"alert",className:"flex min-h-screen items-center justify-center p-6 text-center",children:(0,n.jsxs)("p",{children:[t," authentication is selected but its runtime configuration is incomplete."]})})}let f=async()=>"mock-dev-token";function x(e){let{children:t}=e,[a,r]=(0,s.useState)(!1);(0,s.useEffect)(()=>((0,o.ki)("mock-dev-token"),r(!0),()=>(0,o.ki)(null)),[]);let i=(0,s.useMemo)(()=>({provider:"disabled",user:{email:"dev@hackagent.local",name:"Dev User",preferred_username:"dev",picture:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><rect fill="%23ccc" width="48" height="48"/><text x="50%25" y="50%25" dominant-baseline="middle" text-anchor="middle" font-family="sans-serif" font-size="24" fill="%23666">D</text></svg>'},isAuthenticated:!0,isLoading:!a,login:void 0,logout:void 0,getAccessTokenSilently:f}),[a]);return(0,n.jsx)(l.c.Provider,{value:i,children:t})}var g=a(5313);let p=(0,c.h)("KeycloakAdapter"),v=async()=>"",j={provider:"keycloak",user:void 0,isAuthenticated:!1,isLoading:!0,login:void 0,logout:void 0,getAccessTokenSilently:v};function y(e){let{config:t,children:r}=e,[i,c]=(0,s.useState)(j);return((0,s.useEffect)(()=>{let e;if(!t.keycloakRealmUrl||!t.keycloakClientId)return;let n=new URL(t.keycloakRealmUrl),r="/realms/",i=n.pathname.indexOf(r),s=i>=0?"".concat(n.origin).concat(n.pathname.slice(0,i)):n.origin,l=i>=0?n.pathname.slice(i+r.length).split("/")[0]:n.pathname.split("/").filter(Boolean).at(-1)||"hackagent",d=new g.A({url:s,realm:l,clientId:t.keycloakClientId}),u=!1,h=async()=>{await d.updateToken(60);let e=d.token||"";return(0,o.ki)(e||null),e};return(async()=>{try{var t,n,r,i,s;let l=await d.init({onLoad:"login-required",silentCheckSsoRedirectUri:"".concat(window.location.origin,"/silent-check-sso.html"),pkceMethod:"S256"});if(u)return;if(!l){(0,o.ki)(null),c({provider:"keycloak",user:void 0,isAuthenticated:!1,isLoading:!1,login:async()=>{await d.login()},logout:void 0,getAccessTokenSilently:v});return}let m={sub:d.subject,email:null==(t=d.tokenParsed)?void 0:t.email,name:null==(n=d.tokenParsed)?void 0:n.name,given_name:null==(r=d.tokenParsed)?void 0:r.given_name,family_name:null==(i=d.tokenParsed)?void 0:i.family_name,preferred_username:null==(s=d.tokenParsed)?void 0:s.preferred_username};await h();let{userApi:f}=await Promise.resolve().then(a.bind(a,7831));f.userMeRetrieve().catch(()=>p.debug("User profile synchronization deferred")),c({provider:"keycloak",user:m,isAuthenticated:!0,isLoading:!1,login:async()=>{await d.login()},logout:async()=>{(0,o.ki)(null),await d.logout({redirectUri:window.location.origin})},getAccessTokenSilently:h}),e=setInterval(()=>{h().catch(e=>p.error({err:e},"Unable to refresh Keycloak access token"))},3e4)}catch(e){p.error({err:e},"Keycloak initialization failed"),(0,o.ki)(null),u||c({...j,isLoading:!1})}})(),()=>{u=!0,e&&clearInterval(e),(0,o.ki)(null)}},[t.keycloakClientId,t.keycloakRealmUrl]),t.keycloakRealmUrl&&t.keycloakClientId)?(0,n.jsx)(l.c.Provider,{value:i,children:r}):(0,n.jsx)("div",{role:"alert",className:"flex min-h-screen items-center justify-center p-6 text-center",children:(0,n.jsx)("p",{children:"Keycloak authentication is selected but its runtime configuration is incomplete."})})}function k(e){return{authProvider:e.disableAuth?"disabled":"auth0"===e.authProvider||"keycloak"===e.authProvider||"disabled"===e.authProvider?e.authProvider:e.auth0Domain&&e.auth0ClientId?"auth0":"keycloak",auth0Domain:e.auth0Domain||"",auth0ClientId:e.auth0ClientId||"",auth0Audience:e.auth0Audience||"",auth0RedirectUri:e.auth0RedirectUri||"",keycloakRealmUrl:e.keycloakRealmUrl||"",keycloakClientId:e.keycloakClientId||"",apiUrl:e.apiUrl||""}}a(95704);var b=a(95704);let w=(0,c.h)("useRuntimeConfig"),N=k({authProvider:b.env.NEXT_PUBLIC_AUTH_PROVIDER,auth0Domain:b.env.NEXT_PUBLIC_AUTH0_DOMAIN,auth0ClientId:b.env.NEXT_PUBLIC_AUTH0_CLIENT_ID,auth0Audience:b.env.NEXT_PUBLIC_AUTH0_AUDIENCE,auth0RedirectUri:b.env.NEXT_PUBLIC_AUTH0_REDIRECT_URI,keycloakRealmUrl:b.env.NEXT_PUBLIC_KEYCLOAK_REALM_URL||"",keycloakClientId:b.env.NEXT_PUBLIC_KEYCLOAK_CLIENT_ID||"",apiUrl:b.env.NEXT_PUBLIC_API_URL||"",disableAuth:!0});function C(e){let{children:t}=e,{config:a,isLoading:r}=function(){let[e,t]=(0,s.useState)(N),[a,n]=(0,s.useState)(!0);return(0,s.useEffect)(()=>{(async()=>{try{let e=await fetch("/config.json");if(!e.ok)throw Error("Failed to load config: ".concat(e.status));let a=k(await e.json());w.info("Runtime config loaded successfully"),t(a)}catch(e){w.warn("Failed to load runtime config, using build-time defaults"),t(N)}finally{n(!1)}})()},[]),{config:e,isLoading:a}}();if(r)return null;switch(a.authProvider){case"auth0":return(0,n.jsx)(h,{config:a,children:t});case"keycloak":return(0,n.jsx)(y,{config:a,children:t});case"disabled":return(0,n.jsx)(x,{children:t})}}},34105:(e,t,a)=>{"use strict";a.d(t,{c:()=>n});let n=(0,a(12115).createContext)(void 0)},46767:(e,t,a)=>{"use strict";a.d(t,{Bc:()=>s,ZI:()=>c,k$:()=>o,m_:()=>l});var n=a(95155);a(12115);var r=a(53583),i=a(64269);function s(e){let{delayDuration:t=0,...a}=e;return(0,n.jsx)(r.Kq,{"data-slot":"tooltip-provider",delayDuration:t,...a})}function l(e){let{...t}=e;return(0,n.jsx)(s,{children:(0,n.jsx)(r.bL,{"data-slot":"tooltip",...t})})}function o(e){let{...t}=e;return(0,n.jsx)(r.l9,{"data-slot":"tooltip-trigger",...t})}function c(e){let{className:t,sideOffset:a=0,children:s,...l}=e;return(0,n.jsx)(r.ZL,{children:(0,n.jsxs)(r.UC,{"data-slot":"tooltip-content",sideOffset:a,className:(0,i.cn)("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",t),...l,children:[s,(0,n.jsx)(r.i3,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},51834:(e,t,a)=>{"use strict";a.d(t,{Cf:()=>u,Es:()=>m,HM:()=>c,L3:()=>f,c7:()=>h,lG:()=>l,rr:()=>x});var n=a(95155);a(12115);var r=a(88292),i=a(65229),s=a(64269);function l(e){let{...t}=e;return(0,n.jsx)(r.bL,{"data-slot":"dialog",...t})}function o(e){let{...t}=e;return(0,n.jsx)(r.ZL,{"data-slot":"dialog-portal",...t})}function c(e){let{...t}=e;return(0,n.jsx)(r.bm,{"data-slot":"dialog-close",...t})}function d(e){let{className:t,...a}=e;return(0,n.jsx)(r.hJ,{"data-slot":"dialog-overlay",className:(0,s.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...a})}function u(e){let{className:t,children:a,...l}=e;return(0,n.jsxs)(o,{"data-slot":"dialog-portal",children:[(0,n.jsx)(d,{}),(0,n.jsxs)(r.UC,{"data-slot":"dialog-content",className:(0,s.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...l,children:[a,(0,n.jsxs)(r.bm,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,n.jsx)(i.A,{}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function h(e){let{className:t,...a}=e;return(0,n.jsx)("div",{"data-slot":"dialog-header",className:(0,s.cn)("flex flex-col gap-2 text-center sm:text-left",t),...a})}function m(e){let{className:t,...a}=e;return(0,n.jsx)("div",{"data-slot":"dialog-footer",className:(0,s.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...a})}function f(e){let{className:t,...a}=e;return(0,n.jsx)(r.hE,{"data-slot":"dialog-title",className:(0,s.cn)("text-lg leading-none font-semibold",t),...a})}function x(e){let{className:t,...a}=e;return(0,n.jsx)(r.VY,{"data-slot":"dialog-description",className:(0,s.cn)("text-muted-foreground text-sm",t),...a})}},63479:(e,t,a)=>{"use strict";a.d(t,{D:()=>s,N:()=>c});var n=a(95155),r=a(12115);let i=(0,r.createContext)({theme:"system",resolvedTheme:"light",setTheme:()=>{}});function s(){return(0,r.useContext)(i)}let l="hackagent-theme";function o(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function c(e){let{children:t}=e,[a,s]=(0,r.useState)("system"),[c,d]=(0,r.useState)("light"),u=e=>{let t=document.documentElement;"dark"===e?t.classList.add("dark"):t.classList.remove("dark")};return(0,r.useEffect)(()=>{var e;let t=null!=(e=localStorage.getItem(l))?e:"system";s(t);let a="system"===t?o():t;d(a),u(a)},[]),(0,r.useEffect)(()=>{let e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>{if("system"===a){let e=o();d(e),u(e)}};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[a]),(0,n.jsx)(i.Provider,{value:{theme:a,resolvedTheme:c,setTheme:e=>{localStorage.setItem(l,e),s(e);let t="system"===e?o():e;d(t),u(t)}},children:t})}},75377:(e,t,a)=>{Promise.resolve().then(a.bind(a,27180)),Promise.resolve().then(a.bind(a,96280)),Promise.resolve().then(a.t.bind(a,93836,23))},80230:(e,t,a)=>{"use strict";a.d(t,{h:()=>s});var n=a(12115),r=a(34105);let i=async()=>"";function s(){let e=(0,n.useContext)(r.c);return e||{provider:"disabled",user:void 0,isAuthenticated:!1,isLoading:!0,login:void 0,logout:void 0,getAccessTokenSilently:i}}},86259:(e,t,a)=>{"use strict";a.d(t,{w:()=>s});var n=a(95155);a(12115);var r=a(57268),i=a(64269);function s(e){let{className:t,orientation:a="horizontal",decorative:s=!0,...l}=e;return(0,n.jsx)(r.b,{"data-slot":"separator-root",decorative:s,orientation:a,className:(0,i.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...l})}},91903:()=>{},93836:()=>{},96280:(e,t,a)=>{"use strict";a.d(t,{default:()=>K});var n=a(95155),r=a(12115),i=a(52619),s=a.n(i),l=a(80230),o=a(20063),c=a(15239),d=a(3998),u=a(86259),h=a(46591),m=a(64269);function f(e){let{className:t,...a}=e;return(0,n.jsx)(h.bL,{"data-slot":"avatar",className:(0,m.cn)("relative flex size-8 shrink-0 overflow-hidden rounded-full",t),...a})}function x(e){let{className:t,...a}=e;return(0,n.jsx)(h._V,{"data-slot":"avatar-image",className:(0,m.cn)("aspect-square size-full",t),...a})}function g(e){let{className:t,...a}=e;return(0,n.jsx)(h.H4,{"data-slot":"avatar-fallback",className:(0,m.cn)("bg-muted flex size-full items-center justify-center rounded-full",t),...a})}var p=a(6259),v=a(46767);let j=(0,r.createContext)(void 0),y=e=>{let{children:t}=e,[a,i]=(0,r.useState)(!1);return(0,n.jsx)(j.Provider,{value:{isCollapsed:a,toggleSidebar:()=>{i(e=>!e)}},children:t})},k=()=>{let e=(0,r.useContext)(j);if(!e)throw Error("useSidebar must be used within a SidebarProvider");return e};var b=a(65993),w=a(78192),N=a(37397),C=a(46826),A=a(80534),_=a(89715),I=a(5370),U=a(47937);let L=[{items:[{href:"/",label:"Home",icon:b.A}]},{title:"Test",items:[{href:"/agents",label:"Agents",icon:w.A},{href:"/attacks",label:"Attacks",icon:N.A},{href:"/attacks/builder",label:"New attack",icon:C.A}]},{title:"Results",items:[{href:"/stats",label:"Runs",icon:A.A},{href:"/reports",label:"Reports",icon:_.A}]},{title:"Resources",items:[{href:"/api-keys",label:"API Keys",icon:I.A},{href:"https://docs.hackagent.dev",label:"Docs",icon:U.A,external:!0}]}];var E=a(77931),P=a(26550),R=a(12108),T=a(15870),z=a(84926);let S=()=>{let{user:e,isLoading:t,isAuthenticated:a,logout:i}=(0,l.h)(),h=(0,o.usePathname)(),{isCollapsed:j,toggleSidebar:y}=k();if(t||!a||!e)return null;let b=e.name||e.preferred_username||e.email||"User",w=(e=>{if(!e||""===e.trim())return"?";if(e.startsWith("0x")&&e.length>10)return e.substring(0,2).toUpperCase();let t=e.split(/[\s.\-_@]+/).filter(e=>e.length>0);return 0===t.length?"?":1===t.length?t[0].substring(0,2).toUpperCase():((t[0][0]||"")+(t[t.length-1][0]||"")).toUpperCase()})(b),N=function(e,t){let a=e.split(/[?#]/)[0].replace(/(.)\/+$/,"$1");return t.filter(e=>"/"===e?"/"===a:a===e||a.startsWith("".concat(e,"/"))).sort((e,t)=>t.length-e.length)[0]}(h,L.flatMap(e=>e.items.filter(e=>!e.external).map(e=>e.href))),C=e=>{let{href:t,icon:a,label:r,isActive:i}=e;return(0,n.jsxs)(v.m_,{children:[(0,n.jsx)(v.k$,{asChild:!0,children:(0,n.jsx)(s(),{href:t,"aria-current":i?"page":void 0,children:(0,n.jsxs)(d.$,{variant:i?"secondary":"ghost",className:(0,m.cn)("w-full",j?"justify-center px-2":"justify-start",i&&"font-semibold"),children:[(0,n.jsx)(a,{className:(0,m.cn)("h-4 w-4",!j&&"mr-2")}),!j&&r]})})}),j&&(0,n.jsx)(v.ZI,{side:"right",children:(0,n.jsx)("p",{children:r})})]})},A=e=>{let{href:t,icon:a,label:r}=e;return(0,n.jsxs)(v.m_,{children:[(0,n.jsx)(v.k$,{asChild:!0,children:(0,n.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"block",children:(0,n.jsxs)(d.$,{variant:"ghost",className:(0,m.cn)("w-full cursor-pointer",j?"justify-center px-2":"justify-start"),children:[(0,n.jsx)(a,{className:(0,m.cn)("h-4 w-4",!j&&"mr-2")}),!j&&r]})})}),j&&(0,n.jsx)(v.ZI,{side:"right",children:(0,n.jsx)("p",{children:r})})]})};return(0,n.jsx)(v.Bc,{delayDuration:0,children:(0,n.jsxs)("aside",{className:(0,m.cn)("flex h-screen flex-col border-r bg-background p-4 fixed left-0 top-0 transition-all duration-300",j?"w-16":"w-52"),children:[(0,n.jsxs)("div",{className:(0,m.cn)("mb-6 flex",j?"flex-col items-center gap-2 px-0":"flex-row items-center justify-between px-2"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(c.default,{src:"/raccoon.png",alt:"HackAgent Logo",width:24,height:24,className:"text-primary"}),!j&&(0,n.jsx)("h3",{className:"font-semibold text-lg",children:"HackAgent"})]}),(0,n.jsxs)(v.m_,{children:[(0,n.jsx)(v.k$,{asChild:!0,children:(0,n.jsx)(d.$,{variant:"ghost",size:"icon",onClick:y,"aria-label":j?"Expand sidebar":"Collapse sidebar",className:"h-7 w-7 shrink-0",children:j?(0,n.jsx)(E.A,{className:"h-4 w-4"}):(0,n.jsx)(P.A,{className:"h-4 w-4"})})}),(0,n.jsx)(v.ZI,{side:"right",children:(0,n.jsx)("p",{children:j?"Expand sidebar":"Collapse sidebar"})})]})]}),(0,n.jsx)("nav",{className:(0,m.cn)("flex-1 space-y-4",j?"px-0":"px-2"),children:L.map((e,t)=>{var a;return(0,n.jsxs)(r.Fragment,{children:[t>0&&(0,n.jsx)(u.w,{}),(0,n.jsxs)("div",{className:"space-y-1",children:[e.title&&!j&&(0,n.jsx)("div",{className:"px-2 py-1",children:(0,n.jsx)("p",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:e.title})}),e.items.map(e=>e.external?(0,n.jsx)(A,{href:e.href,icon:e.icon,label:e.label},e.href):(0,n.jsx)(C,{href:e.href,icon:e.icon,label:e.label,isActive:e.href===N},e.href))]})]},null!=(a=e.title)?a:t)})}),(0,n.jsx)(u.w,{className:"my-4"}),e&&(0,n.jsx)("div",{className:"mt-auto",children:(0,n.jsxs)(p.rI,{children:[(0,n.jsx)(p.ty,{asChild:!0,children:(0,n.jsxs)(d.$,{variant:"ghost",className:(0,m.cn)("w-full p-2 h-auto hover:bg-accent hover:text-accent-foreground",j?"justify-center":"justify-between"),children:[(0,n.jsxs)("div",{className:(0,m.cn)("flex items-center",j?"justify-center":"gap-3"),children:[(0,n.jsxs)(f,{className:"h-8 w-8",children:[e.picture&&(0,n.jsx)(x,{src:e.picture,alt:b}),(0,n.jsx)(g,{children:w})]}),!j&&(0,n.jsxs)("div",{className:"text-sm text-left",children:[(0,n.jsx)("p",{className:"font-medium leading-none truncate max-w-[105px]",children:b}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Account"})]})]}),!j&&(0,n.jsx)(R.A,{className:"h-4 w-4 opacity-50"})]})}),(0,n.jsxs)(p.SQ,{align:"start",className:"w-52 mb-2",side:"top",children:[(0,n.jsx)(p._2,{asChild:!0,children:(0,n.jsxs)(s(),{href:"/profile",className:"cursor-pointer",children:[(0,n.jsx)(T.A,{className:"mr-2 h-4 w-4"}),(0,n.jsx)("span",{children:"Settings"})]})}),(0,n.jsx)(p.mB,{}),i&&(0,n.jsxs)(p._2,{onClick:()=>i(),className:"cursor-pointer text-red-600 focus:text-red-600",children:[(0,n.jsx)(z.A,{className:"mr-2 h-4 w-4"}),(0,n.jsx)("span",{children:"Log Out"})]})]})]})})]})})};var D=a(35299),B=a(63479),H=a(24323);let M=(0,a(41444).h)("ClientLayout"),$=e=>{let{children:t}=e,{isCollapsed:a}=k();return(0,n.jsx)("main",{className:"flex-1 overflow-y-auto transition-all duration-300 ".concat(a?"ml-16":"ml-52"),children:t})},K=e=>{let{children:t}=e,{isAuthenticated:a,isLoading:i,user:s,provider:o}=(0,l.h)();return((0,r.useEffect)(()=>{M.info("ClientLayout initialized - provider=".concat(o,", isLoading=").concat(i,", isAuthenticated=").concat(a))},[o,i,a]),i)?(M.info("Authentication provider loading, showing spinner"),(0,n.jsx)("div",{className:"flex items-center justify-center min-h-screen",children:(0,n.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,n.jsx)(D.A,{className:"h-8 w-8 animate-spin text-muted-foreground"}),(0,n.jsx)("p",{className:"text-muted-foreground",children:"Loading Authentication..."})]})})):a?(M.info("User authenticated - provider=".concat(o,", userId=").concat(null==s?void 0:s.sub,", email=").concat(null==s?void 0:s.email)),(0,n.jsx)(B.N,{children:(0,n.jsxs)(y,{children:[(0,n.jsxs)("div",{className:"flex h-screen overflow-hidden print-layout-root",children:[(0,n.jsx)(S,{}),(0,n.jsx)($,{children:t})]}),(0,n.jsx)(H.P,{})]})})):(M.info("User not authenticated, rendering public view"),(0,n.jsx)(n.Fragment,{children:t}))}}},e=>{e.O(0,[475,330,187,539,292,619,8,9,391,921,130,924,441,493,358],()=>e(e.s=75377)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{11647:(e,t,s)=>{"use strict";s.d(t,{E:()=>c});var a=s(95155);s(12115);var n=s(32467),r=s(83101),l=s(64269);let i=(0,r.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function c(e){let{className:t,variant:s,asChild:r=!1,...c}=e,o=r?n.DX:"span";return(0,a.jsx)(o,{"data-slot":"badge",className:(0,l.cn)(i({variant:s}),t),...c})}},13406:(e,t,s)=>{"use strict";s.d(t,{Xi:()=>c,av:()=>o,j7:()=>i,tU:()=>l});var a=s(95155);s(12115);var n=s(49543),r=s(64269);function l(e){let{className:t,...s}=e;return(0,a.jsx)(n.bL,{"data-slot":"tabs",className:(0,r.cn)("flex flex-col gap-2",t),...s})}function i(e){let{className:t,...s}=e;return(0,a.jsx)(n.B8,{"data-slot":"tabs-list",className:(0,r.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",t),...s})}function c(e){let{className:t,...s}=e;return(0,a.jsx)(n.l9,{"data-slot":"tabs-trigger",className:(0,r.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 hover:bg-background/50 dark:hover:bg-input/20 data-[state=active]:hover:bg-background dark:data-[state=active]:hover:bg-input/30",t),...s})}function o(e){let{className:t,...s}=e;return(0,a.jsx)(n.UC,{"data-slot":"tabs-content",className:(0,r.cn)("flex-1 outline-none",t),...s})}},17037:(e,t,s)=>{"use strict";s.d(t,{$:()=>i,F:()=>l});var a=s(95155);s(12115);var n=s(47397),r=s(64269);function l(e){let{className:t,children:s,...l}=e;return(0,a.jsxs)(n.bL,{"data-slot":"scroll-area",className:(0,r.cn)("relative",t),...l,children:[(0,a.jsx)(n.LM,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:s}),(0,a.jsx)(i,{}),(0,a.jsx)(n.OK,{})]})}function i(e){let{className:t,orientation:s="vertical",...l}=e;return(0,a.jsx)(n.VM,{"data-slot":"scroll-area-scrollbar",orientation:s,className:(0,r.cn)("flex touch-none p-px transition-colors select-none","vertical"===s&&"h-full w-2.5 border-l border-l-transparent","horizontal"===s&&"h-2.5 flex-col border-t border-t-transparent",t),...l,children:(0,a.jsx)(n.lr,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}},20243:(e,t,s)=>{"use strict";s.d(t,{E:()=>r});var a=s(95155),n=s(64269);function r(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"skeleton",className:(0,n.cn)("bg-accent animate-pulse rounded-md",t),...s})}},22470:(e,t,s)=>{"use strict";s.d(t,{M:()=>n});var a=s(95155);s(12115);let n=e=>{let{title:t,description:s,action:n,children:r,maxWidth:l="full"}=e;return(0,a.jsxs)("div",{className:"w-full ".concat({full:"max-w-full","8xl":"max-w-[90rem]","7xl":"max-w-7xl","6xl":"max-w-6xl","5xl":"max-w-5xl","4xl":"max-w-4xl","3xl":"max-w-3xl","2xl":"max-w-2xl"}[l]||"max-w-full"," mx-auto py-6 space-y-6"),children:[t&&(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 px-6 pb-5 border-b",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:t}),s&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:s})]}),n&&(0,a.jsx)("div",{className:"flex-shrink-0 pt-0.5",children:n})]}),r]})}},29147:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>q});var a=s(95155),n=s(80230),r=s(12115),l=s(3998),i=s(86948),c=s(11647),o=s(13406),d=s(20243),m=s(17037),u=s(22470),x=s(52619),h=s.n(x),g=s(10281),p=s(56373),f=s(69386),j=s(26265),v=s(96324),b=s(68425),N=s(47734),k=s(73697),y=s(33420),w=s(86618),A=s(78192),E=s(52987),L=s(52056),S=s(7831),_=s(50113),C=s(63479),M=s(41444),R=s(87066),D=s(35795);function O(e){let{targets:t,runs:s,jailbreaks:n}=e,r=[{label:"Targets",value:t,icon:A.A,href:"/agents"},{label:"Runs",value:s,icon:R.A,href:"/stats"},{label:"Jailbreaks",value:n,icon:D.A,href:"/stats"}];return(0,a.jsx)("div",{className:"grid grid-cols-3 gap-4",children:r.map(e=>{let{label:t,value:s,icon:n,href:r}=e;return(0,a.jsx)(h(),{href:r,className:"group",children:(0,a.jsx)(i.Zp,{className:"transition-colors group-hover:bg-muted/40",children:(0,a.jsxs)(i.Wu,{className:"p-4",children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:t}),(0,a.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-md border bg-muted/40 text-muted-foreground transition-colors group-hover:text-foreground",children:(0,a.jsx)(n,{className:"h-4 w-4"})})]}),(0,a.jsx)("span",{className:"text-3xl font-semibold tracking-tight tabular-nums",children:s})]})})},t)})})}var I=s(37397),T=s(80534);let z=[{icon:A.A,title:"Add a target agent",description:"Connect the AI agent you want to probe for vulnerabilities.",cta:"Add target",href:"/agents"},{icon:I.A,title:"Build an attack",description:"Configure jailbreak and red-team techniques to run against it.",cta:"Build attack",href:"/attacks/builder"},{icon:T.A,title:"Review results",description:"See which attacks succeeded and read the risk reports.",cta:"View results",href:"/stats"}];function G(){return(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)(i.aR,{children:[(0,a.jsx)(i.ZB,{className:"text-lg",children:"Get started with HackAgent"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Three steps to your first agent security report."})]}),(0,a.jsx)(i.Wu,{children:(0,a.jsx)("ol",{className:"grid gap-4 md:grid-cols-3",children:z.map((e,t)=>{let{icon:s,title:n,description:r,cta:i,href:c}=e;return(0,a.jsxs)("li",{className:"flex flex-col gap-3 rounded-lg border bg-muted/20 p-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-full border bg-background text-xs font-semibold tabular-nums text-muted-foreground",children:t+1}),(0,a.jsx)(s,{className:"h-4 w-4 text-muted-foreground"})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("h3",{className:"text-sm font-medium",children:n}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:r})]}),(0,a.jsx)(l.$,{asChild:!0,variant:"outline",size:"sm",className:"mt-auto w-full",children:(0,a.jsxs)(h(),{href:c,children:[i,(0,a.jsx)(E.A,{className:"h-3.5 w-3.5"})]})})]},n)})})})]})}let H=(0,M.h)("HomeStats"),K={total:0,jailbreaks:0,mitigated:0,errors:0,pending:0};function P(e){return e.reduce((e,t)=>{var s,a,n,r,l;return{total:e.total+(null!=(s=t.totalResults)?s:0),jailbreaks:e.jailbreaks+(null!=(a=t.successfulJailbreaks)?a:0),mitigated:e.mitigated+(null!=(n=t.failedJailbreaks)?n:0),errors:e.errors+(null!=(r=t.errors)?r:0),pending:e.pending+(null!=(l=t.notEvaluated)?l:0)}},{...K})}function B(){let{hideEmptyState:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{resolvedTheme:t}=(0,C.D)(),s="dark"===t,n=s?_.xk:_.Ez,l=s?"#3f3f46":"#e5e7eb",[o,m]=(0,r.useState)(!0),[u,x]=(0,r.useState)([]),[M,R]=(0,r.useState)(0),[D,I]=(0,r.useState)(0),[T,z]=(0,r.useState)(0),[B,W]=(0,r.useState)("—"),[Z,F]=(0,r.useState)(K);(0,r.useEffect)(()=>{let e=!1;return(async()=>{m(!0);try{var t,s;let a=await S.ME.runList({page:1,pageSize:100});if(e)return;let n=null!=(t=a.results)?t:[],r=P(n),l=new Set(n.map(e=>e.agent).filter(Boolean));R(null!=(s=a.count)?s:n.length),I(l.size),z(r.jailbreaks),x(n.slice(0,5));let i=n[0];if(!i){W("—"),F(K);return}W(i.agentName||"".concat(i.agent.slice(0,8),"…")),F(P(n.filter(e=>e.agent===i.agent)))}catch(t){e||H.error({err:t},"Failed to load home stats")}finally{e||m(!1)}})(),()=>{e=!0}},[]);let J=(0,r.useMemo)(()=>0===Z.total?0:Math.round(100*Z.jailbreaks/Z.total),[Z]),U=Z.total>0,{level:V,label:X}=U?J>=70?{level:"critical",label:"Critical"}:J>=40?{level:"high",label:"High"}:J>=10?{level:"medium",label:"Medium"}:{level:"low",label:"Low"}:{level:"low",label:"No data"},$=_.xv[V],q=(0,r.useMemo)(()=>[{name:"Jailbreaks",value:Z.jailbreaks,color:n.vulnerable},{name:"Mitigated",value:Z.mitigated,color:n.safe},{name:"Errors",value:Z.errors,color:n.error},{name:"Pending",value:Z.pending,color:n.pending}],[Z,n]);return o?(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("div",{className:"grid grid-cols-3 gap-4",children:[0,1,2].map(e=>(0,a.jsx)(d.E,{className:"h-24 w-full"},e))}),(0,a.jsx)(d.E,{className:"h-56 w-full"})]}):0===M?e?null:(0,a.jsx)(G,{}):(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)(O,{targets:D,runs:M,jailbreaks:T}),(0,a.jsxs)(i.Zp,{children:[(0,a.jsx)(i.aR,{className:"pb-2",children:(0,a.jsxs)(i.ZB,{className:"text-lg flex flex-wrap items-center gap-2",children:["Latest Target Statistics",(0,a.jsxs)(c.E,{variant:"secondary",className:"font-mono font-normal gap-1",children:[(0,a.jsx)(A.A,{className:"h-3 w-3"}),B]})]})}),(0,a.jsx)(i.Wu,{children:U?(0,a.jsxs)("div",{className:"grid gap-6 md:grid-cols-2 items-center",children:[(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,a.jsx)("span",{className:"text-sm font-medium self-start",children:"Risk Overview"}),(0,a.jsxs)(g.r,{width:200,height:180,children:[(0,a.jsxs)(p.Fq,{data:[{name:"Risk",value:J,color:$},{name:"Remaining",value:100-J,color:l}],cx:100,cy:90,innerRadius:58,outerRadius:82,startAngle:90,endAngle:-270,dataKey:"value",isAnimationActive:!1,children:[(0,a.jsx)(f.f,{fill:$}),(0,a.jsx)(f.f,{fill:l})]}),(0,a.jsxs)("text",{x:100,y:84,textAnchor:"middle",fontSize:26,fontWeight:700,fill:$,children:[J,"%"]}),(0,a.jsx)("text",{x:100,y:106,textAnchor:"middle",fontSize:12,fill:$,children:X})]})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:"Result Distribution"}),(0,a.jsx)(j.u,{width:"100%",height:150,children:(0,a.jsxs)(v.E,{data:q,margin:{top:8,right:8,left:-16,bottom:0},children:[(0,a.jsx)(b.d,{vertical:!1,strokeDasharray:"3 3",stroke:s?"rgba(255,255,255,0.12)":"#e5e7eb"}),(0,a.jsx)(N.W,{dataKey:"name",tick:{fontSize:11},axisLine:!1,tickLine:!1}),(0,a.jsx)(k.h,{allowDecimals:!1,tick:{fontSize:11},axisLine:!1,tickLine:!1}),(0,a.jsx)(y.m,{wrapperStyle:{fontSize:12},cursor:{fill:"rgba(0,0,0,0.04)"}}),(0,a.jsx)(w.yP,{dataKey:"value",radius:[4,4,0,0],isAnimationActive:!1,children:q.map(e=>(0,a.jsx)(f.f,{fill:e.color},e.name))})]})}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:[Z.total," total results"]})]})]}):(0,a.jsx)("p",{className:"text-sm text-muted-foreground py-6 text-center",children:"No evaluated results for this target yet."})})]}),(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)(i.aR,{className:"pb-2 flex-row items-center justify-between",children:[(0,a.jsx)(i.ZB,{className:"text-base",children:"Recent Runs"}),(0,a.jsxs)(h(),{href:"/stats",className:"text-xs text-muted-foreground hover:text-foreground flex items-center gap-1",children:["View all ",(0,a.jsx)(E.A,{className:"h-3 w-3"})]})]}),(0,a.jsx)(i.Wu,{className:"p-0",children:(0,a.jsx)("div",{className:"divide-y",children:u.map(e=>{var t,s;return(0,a.jsxs)(h(),{href:"/stats",className:"flex items-center justify-between gap-3 px-4 py-2.5 hover:bg-muted/50 transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,a.jsxs)("span",{className:"font-mono text-xs text-muted-foreground shrink-0",children:[e.id.slice(0,8),"…"]}),(0,a.jsx)("span",{className:"text-sm truncate",children:e.agentName||"—"}),e.attackType&&(0,a.jsx)(c.E,{variant:"outline",className:"text-xs shrink-0",children:e.attackType})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3 shrink-0",children:[(null!=(t=e.successfulJailbreaks)?t:0)>0&&(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs",style:{color:_.Ez.vulnerable},children:[(0,a.jsx)(L.A,{className:"h-3 w-3"}),e.successfulJailbreaks]}),(0,a.jsx)(c.E,{variant:function(e){switch(e){case"COMPLETED":return"default";case"FAILED":return"destructive";case"RUNNING":return"secondary";default:return"outline"}}(e.status),className:"text-xs",children:null!=(s=e.status)?s:"PENDING"}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground w-16 text-right",children:function(e){if(!e)return"—";let t=Math.round((Date.now()-new Date(e).getTime())/1e3);if(t<60)return"just now";let s=Math.round(t/60);if(s<60)return"".concat(s,"m ago");let a=Math.round(s/60);if(a<24)return"".concat(a,"h ago");let n=Math.round(a/24);if(n<30)return"".concat(n,"d ago");let r=Math.round(n/30);return r<12?"".concat(r,"mo ago"):"".concat(Math.round(r/12),"y ago")}(e.timestamp)})]})]},e.id)})})})]})]})}var W=s(17910),Z=s(28150),F=s(50803),J=s(61362),U=s(75426),V=s(89715),X=s(85921);let $={google_adk:{name:"Google ADK",description:"Test a Google Agent Development Kit agent for jailbreaking and prompt injection. HackAgent sends adversarial goals via the ADK protocol and uses an LLM judge to evaluate whether safety guardrails were bypassed.",installCmd:"pip install hackagent",sdkCode:'from hackagent import HackAgent\n\nagent = HackAgent(\n name="my_adk_agent",\n endpoint="http://localhost:8000",\n agent_type="google-adk",\n)\n\nresults = agent.hack(attack_config={\n "attack_type": "advprefix",\n "goals": ["Bypass the agent\'s safety guidelines"],\n "generator": {\n "identifier": "gpt-4o-mini",\n "endpoint": "https://api.openai.com/v1",\n },\n "judges": [{\n "identifier": "gpt-4o-mini",\n "endpoint": "https://api.openai.com/v1",\n "type": "harmbench",\n }],\n})',riskAreas:["Jailbreaking","Prompt Injection","Goal Hijacking"]},openai_sdk:{name:"OpenAI SDK",description:"Test any OpenAI-compatible endpoint — including custom deployments, Azure OpenAI, or local models via LM Studio. HackAgent runs adversarial attack campaigns and streams results to your dashboard.",installCmd:"pip install hackagent",sdkCode:'from hackagent import HackAgent\n\nagent = HackAgent(\n name="my_openai_agent",\n endpoint="http://localhost:8000/v1", # /v1 base path\n agent_type="openai-sdk",\n)\n\nresults = agent.hack(attack_config={\n "attack_type": "pair",\n "goals": ["Extract system prompt", "Ignore previous instructions"],\n "generator": {\n "identifier": "gpt-4o-mini",\n "endpoint": "https://api.openai.com/v1",\n },\n "judges": [{\n "identifier": "gpt-4o-mini",\n "endpoint": "https://api.openai.com/v1",\n "type": "harmbench",\n }],\n})',riskAreas:["System Prompt Extraction","Instruction Override","Data Leakage"]},litellm:{name:"LiteLLM / Ollama",description:"Test any local or remote model via LiteLLM or Ollama — including Llama, Mistral, Gemma, and more. Run full jailbreak evaluations entirely offline with no external API dependencies.",installCmd:"pip install hackagent",sdkCode:'from hackagent import HackAgent\n\n# Ollama example — runs fully locally\nagent = HackAgent(\n name="llama3",\n endpoint="http://localhost:11434",\n agent_type="ollama",\n)\n\nresults = agent.hack(attack_config={\n "attack_type": "advprefix",\n "dataset": {"preset": "harmbench", "limit": 50},\n "generator": {\n "identifier": "llama2-uncensored",\n "endpoint": "http://localhost:11434",\n "agent_type": "ollama",\n },\n "judges": [{\n "identifier": "llama2-uncensored",\n "endpoint": "http://localhost:11434",\n "agent_type": "ollama",\n "type": "harmbench",\n }],\n})',riskAreas:["Jailbreaking","Safety Guardrail Bypass","Harmful Content Generation"]}};function q(){let{user:e,isAuthenticated:t,isLoading:s,login:x}=(0,n.h)(),[g,p]=(0,r.useState)("google_adk"),[f,j]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(t||s||!x)return;let e=new URLSearchParams(window.location.search);e.has("code")&&e.has("state")||x()},[s,t,x]);let v=(e,t)=>{navigator.clipboard.writeText(e),j(t),setTimeout(()=>j(null),2e3)};if(s)return(0,a.jsx)(u.M,{title:"Welcome",children:(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(d.E,{className:"h-8 w-64 mx-auto"}),(0,a.jsx)(d.E,{className:"h-5 w-96 mx-auto"})]}),(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)(i.aR,{children:[(0,a.jsx)(d.E,{className:"h-6 w-48"}),(0,a.jsx)(d.E,{className:"h-4 w-72"})]}),(0,a.jsxs)(i.Wu,{className:"space-y-4",children:[(0,a.jsx)(d.E,{className:"h-10 w-full"}),(0,a.jsx)(d.E,{className:"h-32 w-full"}),(0,a.jsx)(d.E,{className:"h-32 w-full"})]})]})]})});if(!t)return null;let b=$[g];return(0,a.jsx)(u.M,{maxWidth:"5xl",children:(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"text-center space-y-2",children:[(0,a.jsxs)("h1",{className:"text-3xl font-bold",children:["Welcome, ",e&&(e.name||e.preferred_username||e.nickname||e.email)||"User","!"]}),(0,a.jsx)("p",{className:"text-lg text-muted-foreground",children:"Get a security risk assessment for your AI agent in minutes"})]}),(0,a.jsx)(B,{hideEmptyState:!0}),(0,a.jsxs)(i.Zp,{className:"shadow-lg",children:[(0,a.jsxs)(i.aR,{className:"pb-4",children:[(0,a.jsxs)(i.ZB,{className:"text-xl flex items-center gap-2",children:[(0,a.jsx)(W.A,{className:"h-5 w-5 text-primary"}),"Quick Start: Run Your First Attack"]}),(0,a.jsx)(i.BT,{children:"Select your agent framework, then copy the Python snippet to get started"})]}),(0,a.jsx)(i.Wu,{className:"space-y-6",children:(0,a.jsxs)(o.tU,{value:g,onValueChange:e=>p(e),className:"w-full",children:[(0,a.jsxs)(o.j7,{className:"grid w-full grid-cols-3",children:[(0,a.jsxs)(o.Xi,{value:"google_adk",className:"gap-2",children:[(0,a.jsx)(A.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"hidden sm:inline",children:"Google ADK"})]}),(0,a.jsxs)(o.Xi,{value:"openai_sdk",className:"gap-2",children:[(0,a.jsx)(Z.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"hidden sm:inline",children:"OpenAI SDK"})]}),(0,a.jsxs)(o.Xi,{value:"litellm",className:"gap-2",children:[(0,a.jsx)(F.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"hidden sm:inline",children:"LiteLLM / Ollama"})]})]}),(0,a.jsxs)(o.av,{value:g,className:"mt-4 space-y-6",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground bg-muted/50 p-3 rounded-lg",children:b.description}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(c.E,{variant:"default",className:"h-7 w-7 rounded-full p-0 flex items-center justify-center",children:"1"}),(0,a.jsx)("h3",{className:"font-semibold",children:"Install HackAgent"}),(0,a.jsx)(l.$,{variant:"ghost",size:"sm",className:"ml-auto",onClick:()=>v(b.installCmd,"install"),children:"install"===f?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(J.A,{className:"h-4 w-4 text-green-500 mr-1"}),"Copied!"]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(U.A,{className:"h-4 w-4 mr-1"}),"Copy"]})})]}),(0,a.jsx)("div",{className:"ml-10 bg-muted rounded-lg p-4 font-mono text-xs",children:(0,a.jsx)("pre",{children:b.installCmd})})]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(c.E,{variant:"secondary",className:"h-7 w-7 rounded-full p-0 flex items-center justify-center",children:"2"}),(0,a.jsx)("h3",{className:"font-semibold",children:"Configure and run the attack"}),(0,a.jsx)(l.$,{variant:"ghost",size:"sm",className:"ml-auto",onClick:()=>v(b.sdkCode,"sdk"),children:"sdk"===f?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(J.A,{className:"h-4 w-4 text-green-500 mr-1"}),"Copied!"]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(U.A,{className:"h-4 w-4 mr-1"}),"Copy"]})})]}),(0,a.jsx)(m.F,{className:"ml-10",children:(0,a.jsx)("div",{className:"bg-muted rounded-lg p-4 font-mono text-xs overflow-x-auto",children:(0,a.jsx)("pre",{children:b.sdkCode})})})]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(c.E,{variant:"outline",className:"h-7 w-7 rounded-full p-0 flex items-center justify-center",children:"3"}),(0,a.jsx)("h3",{className:"font-semibold",children:"Review your risk report"})]}),(0,a.jsxs)("div",{className:"ml-10 space-y-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"Vulnerabilities tested:"}),b.riskAreas.map(e=>(0,a.jsxs)(c.E,{variant:"secondary",className:"flex items-center gap-1",children:[(0,a.jsx)(L.A,{className:"h-3 w-3"}),e]},e))]}),(0,a.jsxs)("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[(0,a.jsx)(V.A,{className:"h-4 w-4"}),"Vulnerability summary"]}),(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[(0,a.jsx)(T.A,{className:"h-4 w-4"}),"Attack success rates"]})]})]})]}),(0,a.jsxs)("div",{className:"pt-4 border-t flex flex-col sm:flex-row items-center justify-between gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Ready to test your agent?"}),(0,a.jsxs)("div",{className:"flex gap-3",children:[(0,a.jsx)(h(),{href:"/agents",children:(0,a.jsxs)(l.$,{variant:"outline",children:[(0,a.jsx)(A.A,{className:"h-4 w-4"}),"Configure Agent"]})}),(0,a.jsx)(h(),{href:"/reports",children:(0,a.jsxs)(l.$,{children:[(0,a.jsx)(X.A,{className:"h-4 w-4"}),"View Reports",(0,a.jsx)(E.A,{className:"h-4 w-4"})]})})]})]})]})]})})]})]})})}},34105:(e,t,s)=>{"use strict";s.d(t,{c:()=>a});let a=(0,s(12115).createContext)(void 0)},50113:(e,t,s)=>{"use strict";s.d(t,{CG:()=>i,Ez:()=>a,JX:()=>l,xk:()=>n,xv:()=>r});let a={vulnerable:"#ef4444",safe:"#22c55e",error:"#f59e0b",pending:"#94a3b8"},n={vulnerable:"#f87171",safe:"#4ade80",error:"#fbbf24",pending:"#cbd5e1"},r={low:"#22c55e",medium:"#eab308",high:"#f97316",critical:"#ef4444"},l={LITELLM:"LiteLLM",OPENAI_SDK:"OpenAI SDK / API",GOOGLE_ADK:"Google ADK",OTHER:"Other / Proprietary",UNKNOWN:"Unknown"},i=new Set(["attack_type","generator"])},63479:(e,t,s)=>{"use strict";s.d(t,{D:()=>l,N:()=>o});var a=s(95155),n=s(12115);let r=(0,n.createContext)({theme:"system",resolvedTheme:"light",setTheme:()=>{}});function l(){return(0,n.useContext)(r)}let i="hackagent-theme";function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function o(e){let{children:t}=e,[s,l]=(0,n.useState)("system"),[o,d]=(0,n.useState)("light"),m=e=>{let t=document.documentElement;"dark"===e?t.classList.add("dark"):t.classList.remove("dark")};return(0,n.useEffect)(()=>{var e;let t=null!=(e=localStorage.getItem(i))?e:"system";l(t);let s="system"===t?c():t;d(s),m(s)},[]),(0,n.useEffect)(()=>{let e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>{if("system"===s){let e=c();d(e),m(e)}};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[s]),(0,a.jsx)(r.Provider,{value:{theme:s,resolvedTheme:o,setTheme:e=>{localStorage.setItem(i,e),l(e);let t="system"===e?c():e;d(t),m(t)}},children:t})}},65761:(e,t,s)=>{Promise.resolve().then(s.bind(s,29147))},80230:(e,t,s)=>{"use strict";s.d(t,{h:()=>l});var a=s(12115),n=s(34105);let r=async()=>"";function l(){let e=(0,a.useContext)(n.c);return e||{provider:"disabled",user:void 0,isAuthenticated:!1,isLoading:!0,login:void 0,logout:void 0,getAccessTokenSilently:r}}},86948:(e,t,s)=>{"use strict";s.d(t,{BT:()=>c,Wu:()=>o,ZB:()=>i,Zp:()=>r,aR:()=>l});var a=s(95155);s(12115);var n=s(64269);function r(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"card",className:(0,n.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded border py-6",t),...s})}function l(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"card-header",className:(0,n.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...s})}function i(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"card-title",className:(0,n.cn)("leading-none font-semibold",t),...s})}function c(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"card-description",className:(0,n.cn)("text-muted-foreground text-sm",t),...s})}function o(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"card-content",className:(0,n.cn)("px-6",t),...s})}}},e=>{e.O(0,[187,619,144,855,532,641,816,924,441,493,358],()=>e(e.s=65761)),_N_E=e.O()}]);
|