@pikku/cli 0.12.88 → 0.12.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/console-app/assets/{index-C3FPwdl7.js → index-BaOGIr2O.js} +1 -1
- package/console-app/index.html +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
- package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/bin/pikku-bin.mjs +2 -2
- package/dist/bin/pikku.js +16 -1
- package/dist/src/functions/db/sqlite/sqlite-runtime-node.js +14 -1
- package/package.json +1 -1
|
@@ -251,7 +251,7 @@ Previous: [${e.join(`, `)}]\nIncoming: [${t.join(`, `)}]`);for(let n=0;n<e.lengt
|
|
|
251
251
|
`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:`
|
|
252
252
|
`,...a.current()});return/^[\t ]/.test(l)&&(l=Imn(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}Hmn.peek=Umn;function Hmn(e){return e.value||``}function Umn(){return`<`}Wmn.peek=Gmn;function Wmn(e,t,n,r){let i=Nmn(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function Gmn(){return`!`}Kmn.peek=qmn;function Kmn(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function qmn(){return`!`}Jmn.peek=Ymn;function Jmn(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e),i;if(e.atBreak)for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function Ymn(){return"`"}function Xmn(e,t){let n=Ncn(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type===`text`&&(n===e.url||`mailto:`+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}Zmn.peek=Qmn;function Zmn(e,t,n,r){let i=Nmn(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(Xmn(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function Qmn(e,t,n){return Xmn(e,n)?`<`:`[`}$mn.peek=ehn;function $mn(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function ehn(){return`[`}function thn(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function nhn(e){let t=thn(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function rhn(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function ihn(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function ahn(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?rhn(n):thn(n),s=e.ordered?o===`.`?`)`:`.`:nhn(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),ihn(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function ohn(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function shn(e,t,n,r){let i=ohn(n),a=n.bulletCurrent||thn(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function chn(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var lhn=hfn([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function uhn(e,t,n,r){return(e.children.some(function(e){return lhn(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function dhn(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}fhn.peek=phn;function fhn(e,t,n,r){let i=dhn(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=Lmn(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=Imn(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=Lmn(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+Imn(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function phn(e,t,n){return n.options.strong||`*`}function mhn(e,t,n,r){return n.safe(e.value,r)}function hhn(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function ghn(e,t,n){let r=(ihn(n)+(n.options.ruleSpaces?` `:``)).repeat(hhn(n));return n.options.ruleSpaces?r.slice(0,-1):r}var _hn={blockquote:Cmn,break:Dmn,code:jmn,definition:Pmn,emphasis:Rmn,hardBreak:Dmn,heading:Vmn,html:Hmn,image:Wmn,imageReference:Kmn,inlineCode:Jmn,link:Zmn,linkReference:$mn,list:ahn,listItem:shn,paragraph:chn,root:uhn,strong:fhn,text:mhn,thematicBreak:ghn};function vhn(){return{enter:{table:yhn,tableData:Chn,tableHeader:Chn,tableRow:xhn},exit:{codeText:whn,table:bhn,tableData:Shn,tableHeader:Shn,tableRow:Shn}}}function yhn(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function bhn(e){this.exit(e),this.data.inTable=void 0}function xhn(e){this.enter({type:`tableRow`,children:[]},e)}function Shn(e){this.exit(e)}function Chn(e){this.enter({type:`tableCell`,children:[]},e)}function whn(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Thn));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Thn(e,t){return t===`|`?t:e}function Ehn(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
|
|
253
253
|
`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
|
|
254
|
-
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return bmn(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=_hn.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function Dhn(){return{exit:{taskListCheckValueChecked:khn,taskListCheckValueUnchecked:khn,paragraph:Ahn}}}function Ohn(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:jhn}}}function khn(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function Ahn(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function jhn(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=_hn.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function Mhn(){return[Rpn(),cmn(),pmn(),vhn(),Dhn()]}function Nhn(e){return{extensions:[zpn(),lmn(e),mmn(),Ehn(e),Ohn()]}}var Phn={tokenize:Khn,partial:!0},Fhn={tokenize:qhn,partial:!0},Ihn={tokenize:Jhn,partial:!0},Lhn={tokenize:Yhn,partial:!0},Rhn={tokenize:Xhn,partial:!0},zhn={name:`wwwAutolink`,tokenize:Whn,previous:Zhn},Bhn={name:`protocolAutolink`,tokenize:Ghn,previous:Qhn},Q9={name:`emailAutolink`,tokenize:Uhn,previous:$hn},$9={};function Vhn(){return{text:$9}}for(var Hhn=48;Hhn<123;)$9[Hhn]=Q9,Hhn++,Hhn===58?Hhn=65:Hhn===91&&(Hhn=97);$9[43]=Q9,$9[45]=Q9,$9[46]=Q9,$9[95]=Q9,$9[72]=[Q9,Bhn],$9[104]=[Q9,Bhn],$9[87]=[Q9,zhn],$9[119]=[Q9,zhn];function Uhn(e,t,n){let r=this,i,a;return o;function o(t){return!egn(t)||!$hn.call(r,r.previous)||tgn(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return egn(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(Rhn,u,l)(t):t===45||t===95||U9(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&H9(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function Whn(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!Zhn.call(r,r.previous)||tgn(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(Phn,e.attempt(Fhn,e.attempt(Ihn,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function Ghn(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&Qhn.call(r,r.previous)&&!tgn(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(H9(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Gcn(t)||G9(t)||Xcn(t)||Ycn(t)?n(t):e.attempt(Fhn,e.attempt(Ihn,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function Khn(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function qhn(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(Lhn,c,s)(t):t===null||G9(t)||Xcn(t)||t!==45&&Ycn(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function Jhn(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(Lhn,t,a)(o):o===null||G9(o)||Xcn(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function Yhn(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||G9(o)||Xcn(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||G9(e)||Xcn(e)?t(e):r(e)}function a(e){return H9(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):H9(t)?(e.consume(t),o):n(t)}}function Xhn(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return U9(e)?n(e):t(e)}}function Zhn(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||G9(e)}function Qhn(e){return!H9(e)}function $hn(e){return!(e===47||egn(e))}function egn(e){return e===43||e===45||e===46||e===95||U9(e)}function tgn(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var ngn={tokenize:ugn,partial:!0};function rgn(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:sgn,continuation:{tokenize:cgn},exit:lgn}},text:{91:{name:`gfmFootnoteCall`,tokenize:ogn},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:ign,resolveTo:agn}}}}function ign(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=V9(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function agn(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function ogn(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||G9(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(V9(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return G9(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function sgn(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||G9(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=V9(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return G9(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),J9(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function cgn(e,t,n){return e.check(fln,t,e.attempt(ngn,t,n))}function lgn(e){e.exit(`gfmFootnoteDefinition`)}function ugn(e,t,n){let r=this;return J9(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function dgn(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&z9(o,o.length,0,aln(s,e.slice(r+1,n),t)),z9(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),z9(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=iln(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=iln(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var fgn=class{constructor(){this.map=[]}add(e,t,n){pgn(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function pgn(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function mgn(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function hgn(){return{flow:{null:{name:`table`,tokenize:ggn,resolveAll:_gn}}}}function ggn(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):W9(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):K9(t)?J9(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||G9(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,K9(t)?J9(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return K9(t)?J9(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||W9(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return K9(t)?J9(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||W9(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||W9(n)?(e.exit(`tableRow`),t(n)):K9(n)?J9(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||G9(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function _gn(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new fgn;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(ygn(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=vgn(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=vgn(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=vgn(f,t,o,i,n,d)):(o[0]=o[1],d=vgn(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&ygn(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=mgn(t.events,n))}return e}function vgn(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},bgn(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=bgn(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=bgn(t.events,n[2]),a=bgn(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},bgn(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function ygn(e,t,n,r,i){let a=[],o=bgn(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function bgn(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var xgn={name:`tasklistCheck`,tokenize:Cgn};function Sgn(){return{text:{91:xgn}}}function Cgn(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return G9(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return W9(r)?t(r):K9(r)?e.check({tokenize:wgn},t,n)(r):n(r)}}function wgn(e,t,n){return J9(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Tgn(e){return Bcn([Vhn(),rgn(),dgn(e),hgn(),Sgn()])}var Egn={};function Dgn(e){let t=this,n=e||Egn,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Tgn(n)),a.push(Mhn()),o.push(Nhn(n))}var Ogn=({toolCallId:e,toolName:t,args:n,result:r,status:i,addResult:a})=>{let[o,s]=(0,g.useState)(!1);_e();let{handleApproval:c,pendingApprovals:l}=$on(),u=(()=>{if(!r)return null;let e=typeof r==`string`?(()=>{try{return JSON.parse(r)}catch{return null}})():r;return e&&typeof e==`object`&&e.__credentialRequired?e:null})(),d=l.find(t=>t.toolCallId===e&&t.type===`credential-request`),f=!!u||!!d,p=i.type===`requires-action`&&!f,m=n?.__approvalReason??l.find(t=>t.toolCallId===e&&t.type!==`credential-request`)?.reason,h={...n};delete h.__approvalReason;let[_,v]=(0,g.useState)(null),[y,b]=(0,g.useState)(!1),x=(0,g.useRef)(null);(0,g.useEffect)(()=>()=>{x.current&&=(clearInterval(x.current),null)},[]);let S=async()=>{v(`approved`),await c(e,!0)&&a?.({approved:!0})},C=async()=>{v(`denied`),await c(e,!1)&&a?.({approved:!1})};if(p&&!_)return(0,A.jsxs)(wl,{withBorder:!0,radius:`sm`,p:`sm`,my:4,bg:`var(--mantine-color-yellow-light)`,children:[(0,A.jsxs)(Gl,{gap:`xs`,mb:`xs`,children:[(0,A.jsx)(cw,{size:14,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{size:`xs`,fw:600,children:K.agent_approval_required()})]}),m&&(0,A.jsx)(z,{size:`xs`,mb:4,children:B(m)}),(0,A.jsxs)(j,{component:`p`,style:{fontSize:`var(--mantine-font-size-xs)`,color:`var(--mantine-color-dimmed)`,margin:`0 0 4px`},children:[K.agent_approval_agent_wants_to_call(),` `,(0,A.jsx)(dd,{children:B(t)})]}),(0,A.jsx)(dd,{block:!0,style:{fontSize:11,marginBottom:8},children:B(JSON.stringify(h,null,2))}),(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(cv,{size:`xs`,color:`green`,variant:`light`,onClick:S,children:K.agent_approval_approve()}),(0,A.jsx)(cv,{size:`xs`,color:`red`,variant:`light`,onClick:C,children:K.agent_approval_deny()})]})]});if(p&&_)return(0,A.jsx)(wl,{withBorder:!0,radius:`sm`,p:`sm`,my:4,children:(0,A.jsxs)(Gl,{gap:`xs`,mb:`xs`,children:[(0,A.jsx)(cw,{size:14,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{size:`xs`,fw:600,children:B(t)}),(0,A.jsx)(vT,{type:`label`,color:_===`approved`?`green`:`red`,children:_===`approved`?K.agent_status_approved():K.agent_status_denied()})]})});if(f&&!_){let n=u??d,r=Mg(),i=n?.connectUrl,o=i?.startsWith(`/`)?`${r}${i}`:i,s=async()=>{v(`approved`),await c(e,!0)&&a?.({approved:!0})};return(0,A.jsxs)(wl,{withBorder:!0,radius:`sm`,p:`sm`,my:4,bg:`var(--mantine-color-orange-light)`,children:[(0,A.jsxs)(Gl,{gap:`xs`,mb:`xs`,children:[(0,A.jsx)(gw,{size:14,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{size:`xs`,fw:600,children:B(t)}),(0,A.jsx)(vT,{type:`label`,color:`orange`,children:K.agent_credential_required()})]}),(0,A.jsxs)(j,{component:`p`,style:{fontSize:`var(--mantine-font-size-sm)`,margin:`0 0 var(--mantine-spacing-xs)`},children:[K.agent_credential_action_requires(),` `,(0,A.jsx)(`strong`,{children:B(n?.credentialName??`OAuth`)}),` `,K.agent_credential_to_be_connected()]}),y&&(0,A.jsx)(z,{size:`xs`,c:`red`,mb:`xs`,children:B(`Popup blocked — allow popups for this site, then click Connect again.`)}),(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(cv,{size:`xs`,variant:`light`,onClick:()=>{if(n?.credentialType===`oauth2`&&o){let e=window.open(o,`oauth-connect`,`width=600,height=700`);if(!e){b(!0);return}x.current=setInterval(()=>{e.closed&&(clearInterval(x.current),x.current=null,s())},500)}else s()},children:B(`Connect ${n?.credentialName??`OAuth`}`)}),(0,A.jsx)(cv,{size:`xs`,color:`gray`,variant:`light`,onClick:async()=>{v(`denied`),await c(e,!1)&&a?.({approved:!1})},children:K.agent_credential_ignore()})]})]})}return f&&_?(0,A.jsx)(wl,{withBorder:!0,radius:`sm`,p:`sm`,my:4,children:(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(gw,{size:14,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{size:`xs`,fw:600,children:B(t)}),(0,A.jsx)(vT,{type:`label`,color:_===`approved`?`green`:`gray`,children:_===`approved`?K.agent_credential_connected():K.agent_credential_ignored()})]})}):(0,A.jsxs)(wl,{withBorder:!0,radius:`sm`,p:`xs`,my:4,children:[(0,A.jsx)(Cl,{onClick:()=>s(e=>!e),style:{width:`100%`},children:(0,A.jsxs)(Gl,{gap:`xs`,children:[o?(0,A.jsx)(TC,{size:12}):(0,A.jsx)(DC,{size:12}),(0,A.jsx)(gw,{size:12}),(0,A.jsx)(z,{size:`xs`,fw:500,ff:`monospace`,children:B(t)}),i.type===`running`&&(0,A.jsx)(zl,{size:10}),i.type===`error`&&(0,A.jsx)(vT,{type:`label`,color:`red`,children:K.agent_toolcall_error()}),i.type===`denied`&&(0,A.jsx)(vT,{type:`label`,color:`red`,children:K.agent_toolcall_denied()}),i.type===`completed`&&(0,A.jsx)(vT,{type:`label`,color:`green`,children:K.agent_toolcall_done()})]})}),(0,A.jsx)(Ko,{expanded:o,children:(0,A.jsxs)(Ip,{gap:4,mt:`xs`,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.agent_toolcall_arguments()}),(0,A.jsx)(dd,{block:!0,style:{fontSize:11},children:B(JSON.stringify(h,null,2))}),r!==void 0&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.agent_toolcall_result()}),(0,A.jsx)(dd,{block:!0,style:{fontSize:11},children:B(typeof r==`string`?r:JSON.stringify(r,null,2))})]})]})})]})},kgn=()=>(_e(),(0,A.jsx)(j,{className:qw.chatMessageRight,children:(0,A.jsxs)(j,{maw:`80%`,children:[(0,A.jsxs)(Gl,{gap:6,mb:4,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.agent_message_you()}),(0,A.jsx)(YUe,{size:14,color:`var(--mantine-color-dimmed)`})]}),(0,A.jsx)(wl,{p:`sm`,radius:`md`,style:{backgroundColor:`var(--mantine-color-default-hover)`},children:(0,A.jsx)(h8t.Content,{components:{Text:({text:e})=>(0,A.jsx)(z,{size:`sm`,style:{whiteSpace:`pre-wrap`},children:B(e)})}})})]})})),Agn=()=>(_e(),(0,A.jsx)(j,{"data-testid":`assistant-block`,className:qw.chatMessageLeft,children:(0,A.jsxs)(j,{maw:`80%`,children:[(0,A.jsxs)(Gl,{gap:6,mb:4,children:[(0,A.jsx)(CC,{size:14,color:`var(--mantine-color-dimmed)`}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.agent_message_assistant()})]}),(0,A.jsxs)(wl,{p:`sm`,radius:`md`,bg:`var(--mantine-color-default-hover)`,children:[(0,A.jsx)(h8t.Content,{components:{Text:({text:e})=>(0,A.jsx)(cm,{p:0,m:0,fz:`sm`,children:(0,A.jsx)(Cpn,{remarkPlugins:[Dgn],children:e})}),tools:{Fallback:e=>(0,A.jsx)(Ogn,{toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,result:e.result,status:nsn(e.status,e.result),argsText:e.argsText,addResult:e.addResult})}}}),(0,A.jsx)(h8t.If,{last:!0,children:(0,A.jsx)(Z8t.If,{running:!0,children:(0,A.jsxs)(Gl,{gap:`xs`,mt:`xs`,children:[(0,A.jsx)(zl,{size:12}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.agent_message_thinking()})]})})})]})]})})),jgn=({disabled:e})=>(_e(),(0,A.jsx)(j,{py:`sm`,pb:`md`,children:(0,A.jsx)(Td,{size:`md`,children:(0,A.jsx)(kpn,{component:g6t.Root,input:(0,A.jsx)(g6t.Input,{className:Opn.composerInput,placeholder:e?K.agent_composer_approval_placeholder():K.agent_composer_message_placeholder(),rows:1,disabled:e??!1}),send:(0,A.jsx)(g6t.Send,{className:Opn.sendButton,disabled:e??!1,children:(0,A.jsx)(UHe,{size:15})})})})})),Mgn=()=>{_e();let{agentId:e,threadId:t,refetchThreads:n,model:r,temperature:i,dbMessages:a}=iHt(),o=(0,g.useMemo)(()=>a&&a.length?rsn(a):void 0,[a]),s=(0,g.useCallback)(()=>{n()},[n]),c=`${Mg()}/rpc/agent`,l=pbe(),u=(0,g.useMemo)(()=>l?.target?{[tv]:l.target.id}:void 0,[l?.target]),d=(0,g.useMemo)(()=>crypto.randomUUID(),[]),{runtime:f,isAwaitingApproval:p,pendingApprovals:m,handleApproval:h}=osn({api:c,agentName:e,threadId:t??d,resourceId:`default`,onFinish:s,model:r,temperature:i,headers:u,credentials:`include`,initialMessages:o});return(0,A.jsx)(Qon.Provider,{value:{pendingApprovals:m,handleApproval:h},children:(0,A.jsx)(n4t,{runtime:f,children:(0,A.jsx)(Ip,{gap:0,className:qw.flexColumn,children:(0,A.jsxs)(Z8t.Root,{style:{display:`flex`,flexDirection:`column`,flex:1,minHeight:0},children:[(0,A.jsx)(Z8t.Viewport,{asChild:!0,children:(0,A.jsx)(Sl,{style:{flex:1,minHeight:0},type:`auto`,children:(0,A.jsx)(Td,{size:`md`,p:`md`,pb:`xl`,children:(0,A.jsxs)(Ip,{gap:`md`,children:[(0,A.jsx)(Z8t.Empty,{children:(0,A.jsx)(ud,{style:{flex:1,minHeight:300},children:(0,A.jsxs)(Ip,{align:`center`,gap:`xs`,children:[(0,A.jsx)(CC,{size:40,color:`var(--mantine-color-default-border)`}),(0,A.jsx)(z,{c:`dimmed`,ta:`center`,children:t?K.agent_empty_send_message():K.agent_empty_start_conversation()})]})})}),(0,A.jsx)(Z8t.Messages,{components:{UserMessage:kgn,AssistantMessage:Agn}})]})})})}),(0,A.jsx)(jgn,{disabled:p})]})})})})};function Ngn(e){let t=Ng(),n=Sr(),r=Fr({queryKey:[`agent-credentials`,e],queryFn:async()=>await t.invoke(`console:agentCredentialCheck`,{agentName:e}),enabled:!!e});return{requirements:r.data?.requirements??[],allConnected:r.data?.allConnected??!0,loading:r.isLoading,error:r.error,isError:r.isError,refetch:()=>{n.invalidateQueries({queryKey:[`agent-credentials`,e]})}}}var Pgn=({requirements:e,onRefresh:t})=>{_e();let n=Mg(),r=e.filter(e=>!e.connected),i=e=>{let r=`${n}/credentials/${e}/connect`,i=window.open(r,`oauth-connect`,`width=600,height=700`),a=setInterval(()=>{(!i||i.closed)&&(clearInterval(a),t())},500)};return(0,A.jsx)(ud,{h:`100%`,p:`xl`,children:(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`xl`,maw:480,w:`100%`,children:(0,A.jsxs)(Ip,{gap:`md`,align:`center`,children:[(0,A.jsx)(WC,{size:32,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{fw:600,size:`lg`,ta:`center`,children:K.agent_playground_connect_accounts()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ta:`center`,children:K.agent_playground_credentials_required()}),(0,A.jsx)(Ip,{gap:`xs`,w:`100%`,children:r.map(e=>(0,A.jsxs)(Gl,{justify:`space-between`,p:`sm`,style:{border:`1px solid var(--mantine-color-default-border)`,borderRadius:`var(--mantine-radius-sm)`},children:[(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(qC,{size:16,color:`var(--mantine-color-dimmed)`}),(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e.displayName)})]}),(0,A.jsx)(cv,{size:`xs`,variant:`light`,onClick:()=>i(e.credentialName),children:K.agent_playground_connect()})]},e.credentialName))})]})})})},Fgn=({agentId:e,agentData:t,agentItems:n,onAgentSelect:r})=>{_e();let{openAgent:i}=mT(),{threadId:a,setThreadId:o,threads:s,createNewThread:c,refetchThreads:l,dbMessages:u}=iHt(),d=v2(),[f,p]=(0,g.useState)(!1),[m,h]=(0,g.useState)(``),{requirements:_,allConnected:v,loading:y,refetch:b}=Ngn(e);(0,g.useEffect)(()=>{t&&i(e,t)},[e,t,i]);let x=e=>{d.mutate(e,{onSuccess:()=>{a===e&&o(null),l()}})},S=(0,g.useMemo)(()=>{if(!m)return n;let e=m.toLowerCase();return n.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[n,m]),C=e=>{p(!1),h(``),r(e)},w=(0,A.jsxs)(Ll,{opened:f,onChange:p,width:280,position:`bottom-start`,shadow:`md`,zIndex:1e4,children:[(0,A.jsx)(Ll.Target,{children:(0,A.jsxs)(Cl,{px:`xs`,py:4,style:{maxWidth:260,display:`flex`,alignItems:`center`,gap:4,borderRadius:6},onClick:()=>p(e=>!e),children:[(0,A.jsx)(z,{size:`sm`,fw:600,style:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:B(e)}),(0,A.jsx)(TC,{size:14,style:{flexShrink:0}})]})}),(0,A.jsxs)(Ll.Dropdown,{p:0,children:[(0,A.jsx)(_v,{placeholder:K.agent_playground_search_agents(),leftSection:(0,A.jsx)(ow,{size:14}),value:m,onChange:e=>h(e.currentTarget.value),styles:{input:{border:`none`,borderBottom:`1px solid var(--mantine-color-default-border)`,borderRadius:0}}}),(0,A.jsx)(Sl.Autosize,{mah:300,children:(0,A.jsxs)(Ip,{gap:0,children:[S.map(t=>(0,A.jsxs)(Cl,{onClick:()=>C(t.name),py:`xs`,px:`sm`,style:{display:`flex`,alignItems:`center`,gap:8,backgroundColor:t.name===e?`var(--mantine-color-green-light)`:void 0},children:[t.name===e?(0,A.jsx)(wC,{size:14,color:`var(--mantine-color-green-6)`}):(0,A.jsx)(j,{w:14}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(z,{size:`sm`,fw:t.name===e?500:400,children:B(t.name)}),t.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(t.description)})]})]},t.name)),S.length===0&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ta:`center`,py:`md`,children:K.common_no_results()})]})})]})]}),T=(0,A.jsx)(JHt,{title:`Conversations`,runs:s,selectedId:a,onSelect:o,onClear:()=>o(null),onNewClick:c,newButtonLabel:K.agent_playground_new_conversation(),emptyMessage:K.agent_playground_no_conversations(),statusFilters:[],onDelete:x});return(0,A.jsx)(YHt,{lead:w,storageKey:`agent`,listLabel:K.pane_conversations(),runsPanel:T,runsPanelVisible:!0,emptyPanelMessage:K.agent_playground_panel_message(),children:(0,A.jsx)(j,{style:{height:`100%`,display:`flex`,flexDirection:`column`},children:(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:!y&&!v?(0,A.jsx)(Pgn,{requirements:_,onRefresh:b}):a!=null&&u===void 0?(0,A.jsx)(ud,{h:`100%`,children:(0,A.jsx)(zl,{})}):(0,A.jsx)(Mgn,{},`${e}-${a}`)})})})},Ign=()=>{_e();let[e]=sv(),t=ov(),n=e.get(`id`)||``,{meta:r,loading:i}=Vw(),a=r.agentsMeta?.[n],o=(0,g.useMemo)(()=>r.agentsMeta?Object.entries(r.agentsMeta).map(([e,t])=>({name:e,description:t?.summary})):[],[r.agentsMeta]);return i?(0,A.jsx)(ud,{h:`100vh`,children:(0,A.jsx)(zl,{})}):!n||!a?(0,A.jsx)(A2,{icon:CC,title:n?B(`Agent "${n}" not found`):K.agent_playground_no_agent_selected(),description:n?K.agent_playground_agent_not_found_description():K.agent_playground_select_agent_description(),docsHref:`https://pikku.dev/docs/core-features/agents`}):(0,A.jsx)(hT,{children:(0,A.jsx)(y2,{agentId:n,children:(0,A.jsx)(Fgn,{agentId:n,agentData:a,agentItems:o,onAgentSelect:e=>{t(`/agents/playground?id=${encodeURIComponent(e)}`)}})})})},Lgn=({icon:e,category:t,docsHref:n,categoryPath:r,currentItem:i,items:a,onItemSelect:o,subtitle:s,tabs:c,rightSection:l})=>{let u=av();_e();let[d,f]=(0,g.useState)(!1),[p,m]=(0,g.useState)(``),h=(0,g.useMemo)(()=>{if(!a)return[];if(!p)return a;let e=p.toLowerCase();return a.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[a,p]),_=e=>{f(!1),m(``),o?.(e)};return(0,A.jsxs)(Gl,{gap:`xs`,px:`md`,h:50,className:qw.noShrink,style:{zIndex:9999,borderBottom:`1px solid var(--mantine-color-default-border)`,backgroundColor:`var(--mantine-color-body)`},children:[r?(0,A.jsx)(u,{to:r,style:{textDecoration:`none`},children:(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(t)})}):i?(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(t)}):null,i&&!a&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:K.detail_header_separator()}),(0,A.jsx)(z,{size:`md`,fw:500,children:B(i)})]}),i&&a&&o&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:K.detail_header_separator()}),(0,A.jsxs)(Ll,{opened:d,onChange:f,width:300,position:`bottom-start`,shadow:`md`,zIndex:1e4,children:[(0,A.jsx)(Ll.Target,{children:(0,A.jsxs)(Cl,{onClick:()=>f(e=>!e),style:{display:`flex`,alignItems:`center`,gap:4},children:[(0,A.jsx)(z,{size:`md`,fw:500,children:B(i)}),(0,A.jsx)(TC,{size:14})]})}),(0,A.jsxs)(Ll.Dropdown,{p:0,children:[(0,A.jsx)(_v,{placeholder:B(`Search ${t.toLowerCase()}...`),leftSection:(0,A.jsx)(ow,{size:14}),value:p,onChange:e=>m(e.currentTarget.value),styles:{input:{border:`none`,borderBottom:`1px solid var(--mantine-color-default-border)`,borderRadius:0}}}),(0,A.jsx)(Sl.Autosize,{mah:300,children:(0,A.jsxs)(Ip,{gap:0,children:[h.map(e=>(0,A.jsxs)(Cl,{onClick:()=>_(e.name),py:`xs`,px:`sm`,style:{display:`flex`,alignItems:`center`,gap:8,backgroundColor:e.name===i?`var(--mantine-color-green-light)`:void 0},children:[e.name===i&&(0,A.jsx)(wC,{size:14,color:`var(--mantine-color-green-6)`}),(0,A.jsxs)(`div`,{style:{marginLeft:e.name===i?0:22},children:[(0,A.jsx)(z,{size:`sm`,fw:e.name===i?500:400,children:B(e.name)}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description)})]})]},e.name)),h.length===0&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ta:`center`,py:`md`,children:K.detail_header_no_results()})]})})]})]})]}),s,c&&(0,A.jsx)(j,{ml:`md`,children:c}),(0,A.jsxs)(Gl,{ml:`auto`,gap:`sm`,children:[l,(0,A.jsx)(fv,{label:B(`${t} docs`),children:(0,A.jsx)(dv,{component:`a`,href:n,target:`_blank`,rel:`noopener noreferrer`,variant:`subtle`,color:`gray`,size:`sm`,children:(0,A.jsx)(RC,{size:14})})})]})]})},Rgn=({functions:e,functionUsedBy:t})=>{let{openFunction:n}=mT(),{functionUsedBy:r}=Vw(),i=t??r;return(0,A.jsx)(j2,{title:`Functions`,icon:dw,docsHref:`https://pikku.dev/docs/core-features/functions`,data:(0,g.useMemo)(()=>e?e.filter(e=>{let t=e.pikkuFuncId;return(!e.functionType||e.functionType===`user`)&&!t?.startsWith(`pikku`)}):[],[e]),columns:(0,g.useMemo)(()=>[{key:`name`,header:`NAME`,render:e=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{fw:500,truncate:!0,children:B(e.pikkuFuncName||e.pikkuFuncId)}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,truncate:!0,style:!e.summary&&!e.description?{opacity:.4}:void 0,children:B(e.summary||e.description||`No description`)})]})},{key:`type`,header:`TYPE`,width:160,render:e=>(0,A.jsxs)(Gl,{gap:6,wrap:`nowrap`,children:[XWe[e.funcWrapper]&&(0,A.jsx)(vT,{type:`funcWrapper`,value:e.funcWrapper}),e.expose===!0&&(0,A.jsx)(vT,{type:`flag`,flag:`exposed`}),e.internal===!0&&(0,A.jsx)(vT,{type:`flag`,flag:`internal`})]})},{key:`auth`,header:`AUTH`,width:70,render:e=>e.sessionless===!0?null:(0,A.jsx)(vT,{type:`flag`,flag:`auth`})},{key:`permissions`,header:`PERMISSIONS`,width:110,render:e=>e.permissions?.length>0?(0,A.jsx)(vT,{type:`flag`,flag:`permissioned`}):null},{key:`wirings`,header:`WIRINGS`,width:130,render:e=>{let t=e.pikkuFuncName||e.pikkuFuncId,n=i.get(t),r=n?n.transports.length+n.jobs.length:0;return r===0?null:(0,A.jsx)(vT,{type:`dynamic`,badge:`wirings`,value:r})}}],[i]),getKey:e=>e.pikkuFuncName||e.pikkuFuncId,onRowClick:e=>n(e.pikkuFuncName||e.pikkuFuncId,e),searchPlaceholder:B(`Search functions...`),searchFilter:(e,t)=>e.pikkuFuncId?.toLowerCase().includes(t)||e.summary?.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t),emptyMessage:B(`No functions found.`)})},zgn=`addon-setup-cred-status`,Bgn=({credentials:e,secrets:t,credentialOverrides:n,secretOverrides:r})=>{_e();let i=Ng(),a=e=>n?.[e]??e,o=e=>r?.[e]??e,s=Object.values(e??{}).filter(e=>!!e.oauth2),c=Object.values(t??{}),l=s.map(e=>a(e.name)),{data:u}=Fr({queryKey:[zgn,[...l].sort()],queryFn:async()=>(await i.invoke(`console:credentialStatus`,{names:l})).statuses??{},enabled:s.length>0});return s.length===0&&c.length===0?(0,A.jsx)(j,{p:`md`,children:(0,A.jsx)(z,{c:`dimmed`,size:`sm`,children:K.addon_setup_none()})}):(0,A.jsx)(j,{p:`md`,children:(0,A.jsxs)(Ip,{gap:`lg`,children:[(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.addon_setup_intro()}),s.length>0&&(0,A.jsxs)(Ip,{gap:`sm`,children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:K.addon_setup_oauth_heading()}),(0,A.jsx)(Tp,{cols:{base:1,sm:2},spacing:`md`,children:s.map(e=>{let t=a(e.name);return(0,A.jsx)(Hgn,{credential:e,resolvedName:t,isConnected:u?.[t]===!0},e.name)})})]}),c.length>0&&(0,A.jsxs)(Ip,{gap:`sm`,children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:K.addon_setup_secrets_heading()}),(0,A.jsx)(Tp,{cols:{base:1,sm:2},spacing:`md`,children:c.map(e=>(0,A.jsx)(Ugn,{secret:e,resolvedSecretId:o(e.secretId)},e.name))})]})]})})},Vgn=({ok:e,okLabel:t,badLabel:n})=>(0,A.jsxs)(Gl,{gap:6,children:[e?(0,A.jsx)(kC,{size:8,fill:`var(--mantine-color-teal-6)`,color:`var(--mantine-color-teal-6)`}):(0,A.jsx)(kC,{size:8,color:`var(--mantine-color-gray-5)`}),(0,A.jsx)(z,{size:`sm`,c:e?`teal.6`:`dimmed`,children:e?t:n})]}),Hgn=({credential:e,resolvedName:t,isConnected:n})=>{_e();let r=Ng(),i=ev(),a=Sr(),o=t!==e.name,s=Ir({mutationFn:async()=>{let{data:e,error:n}=await i.client.$fetch(`/credential-oauth/link`,{method:`POST`,body:{providerId:t,callbackURL:window.location.href}});if(n)throw Error(n.message??K.credentials_connect_failed());if(!e?.url)throw Error(K.credentials_connect_failed());window.location.href=e.url}}),c=Ir({mutationFn:async()=>{await r.invoke(`console:credentialDelete`,{name:t})},onSuccess:()=>{a.invalidateQueries({queryKey:[zgn]})}});return(0,A.jsx)(ld,{shadow:`xs`,padding:`lg`,radius:`md`,withBorder:!0,children:(0,A.jsxs)(Ip,{gap:`xs`,children:[(0,A.jsxs)(Gl,{justify:`space-between`,children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:B(e.displayName??e.name)}),(0,A.jsx)(qC,{size:16,color:`var(--mantine-color-dimmed)`})]}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,lineClamp:2,children:B(e.description)}),o&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(t)}),(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`violet`,children:K.credentials_type_oauth2()}),(0,A.jsx)(Vgn,{ok:n,okLabel:K.credentials_connected(),badLabel:K.credentials_not_connected()}),(0,A.jsx)(j,{mt:4,children:n?(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,disabled:!i?.user,onClick:()=>s.mutate(),loading:s.isPending,children:K.credentials_reconnect()}),(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,color:`red`,onClick:()=>c.mutate(),loading:c.isPending,children:K.credentials_disconnect()})]}):(0,A.jsx)(cv,{size:`compact-xs`,disabled:!i?.user,onClick:()=>s.mutate(),loading:s.isPending,leftSection:(0,A.jsx)(qC,{size:12}),children:K.credentials_connect()})}),s.isError&&(0,A.jsx)(gv,{color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:14}),children:B(String(s.error?.message??``))})]})})},Ugn=({secret:e,resolvedSecretId:t})=>{_e();let n=Ng(),r=C2(),[i,a]=(0,g.useState)(!1),[o,s]=(0,g.useState)(``),{data:c}=Fr({queryKey:[`addon-setup-secret-status`,t],queryFn:async()=>({exists:(await n.invoke(`pikkuConsoleGetSecret`,{secretId:t}))?.exists===!0})}),l=c?.exists===!0;return(0,A.jsx)(ld,{shadow:`xs`,padding:`lg`,radius:`md`,withBorder:!0,children:(0,A.jsxs)(Ip,{gap:`xs`,children:[(0,A.jsxs)(Gl,{justify:`space-between`,children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:B(e.displayName??e.name)}),(0,A.jsx)(WC,{size:16,color:`var(--mantine-color-dimmed)`})]}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,lineClamp:2,children:B(e.description)}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(t)}),(0,A.jsx)(Vgn,{ok:l,okLabel:K.addon_setup_secret_set(),badLabel:K.addon_setup_secret_not_set()}),i?(0,A.jsxs)(Ip,{gap:`xs`,mt:4,children:[(0,A.jsx)(_v,{size:`xs`,type:`password`,value:o,placeholder:K.addon_setup_secret_placeholder(),onChange:e=>s(e.currentTarget.value),autoFocus:!0}),(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(cv,{size:`compact-xs`,onClick:()=>{r.mutate({secretId:t,value:o},{onSuccess:()=>{a(!1),s(``)}})},loading:r.isPending,disabled:o.length===0,leftSection:(0,A.jsx)(wC,{size:12}),children:K.addon_setup_secret_save()}),(0,A.jsx)(cv,{size:`compact-xs`,variant:`subtle`,color:`gray`,onClick:()=>{a(!1),s(``)},children:K.common_cancel()})]})]}):(0,A.jsx)(j,{mt:4,children:(0,A.jsx)(cv,{size:`compact-xs`,variant:l?`light`:void 0,onClick:()=>a(!0),leftSection:(0,A.jsx)(WC,{size:12}),children:l?K.addon_setup_secret_update_action():K.addon_setup_secret_set_action()})}),r.isError&&(0,A.jsx)(gv,{color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:14}),children:B(String(r.error?.message??``))})]})})},Wgn=({icon:e,name:t,size:n=72})=>e?(0,A.jsx)(`img`,{src:e.startsWith(`<`)?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`:e,width:n,height:n,alt:t,style:{objectFit:`contain`,display:`block`}}):(0,A.jsx)(rm,{size:n,radius:`md`,variant:`light`,color:`gray`,children:(0,A.jsx)($C,{size:n*.5})}),Ggn=({headers:e,rows:t})=>(0,A.jsxs)(Zp,{highlightOnHover:!0,withRowBorders:!0,children:[(0,A.jsx)(Zp.Thead,{children:(0,A.jsx)(Zp.Tr,{children:e.map((t,n)=>(0,A.jsx)(Zp.Th,{pl:n===0?`md`:void 0,pr:n===e.length-1?`md`:void 0,c:`dimmed`,fw:500,fz:`xs`,children:t},t))})}),(0,A.jsx)(Zp.Tbody,{children:t.map((e,t)=>(0,A.jsx)(Zp.Tr,{style:{height:`3.75rem`},children:e.map((t,n)=>(0,A.jsx)(Zp.Td,{pl:n===0?`md`:void 0,pr:n===e.length-1?`md`:void 0,children:t},n))},t))})]}),Kgn=({httpRoutes:e})=>{let t=[];for(let[n,r]of Object.entries(e??{}))for(let[,e]of Object.entries(r))n!==`options`&&t.push({method:n.toUpperCase(),route:e.route,sse:e.sse});return _e(),(0,A.jsx)(Ggn,{headers:[`METHOD`,`ROUTE`,``],rows:t.map(e=>[(0,A.jsx)(dd,{children:e.method},`m`),(0,A.jsx)(z,{size:`sm`,fw:500,ff:`monospace`,children:B(e.route)},`r`),e.sse?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`teal`,children:K.package_detail_sse()},`s`):null])})},qgn=({channels:e})=>(0,A.jsx)(Ggn,{headers:[`NAME`,`ROUTE`],rows:Object.entries(e??{}).map(([e,t])=>[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e)},`n`),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,c:`dimmed`,children:B(t.route)},`r`)])}),Jgn=({cli:e})=>{let t=[];for(let[n,r]of Object.entries(e??{}))for(let[e,i]of Object.entries(r.commands??{}))t.push({program:n,command:e,description:i.description});return(0,A.jsx)(Ggn,{headers:[`PROGRAM`,`COMMAND`,`DESCRIPTION`],rows:t.map(e=>[(0,A.jsx)(dd,{children:e.program},`p`),(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e.command)},`c`),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description??``)},`d`)])})},Ygn=({mcp:e})=>{let t=[];for(let[n,r]of Object.entries(e.toolsMeta??{}))t.push({type:`Tool`,name:n,description:r.description});for(let[n,r]of Object.entries(e.resourcesMeta??{}))t.push({type:`Resource`,name:n,description:r.description});for(let[n]of Object.entries(e.promptsMeta??{}))t.push({type:`Prompt`,name:n});return(0,A.jsx)(Ggn,{headers:[`TYPE`,`NAME`,`DESCRIPTION`],rows:t.map(e=>[(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:e.type===`Tool`?`blue`:e.type===`Resource`?`violet`:`orange`,children:B(e.type)},`t`),(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e.name)},`n`),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description??``)},`d`)])})},Xgn=({id:e,source:t,onBack:n})=>{let r=Ng(),i=x2(),a=Sr();_e();let[o,s]=g.useState(null),[c]=g.useState(()=>Date.now()),[l,u]=g.useState(!1);g.useEffect(()=>{let e=setTimeout(()=>u(!0),2e4);return()=>clearTimeout(e)},[]);let{data:d}=Fr({queryKey:[`installed-addons`],queryFn:async()=>await r.invoke(`console:getInstalledAddons`)??[],staleTime:60*1e3}),f=(d??[]).find(t=>t.packageName===e),p=t===`installed`||!!f,{data:m}=Fr({queryKey:[`addon-instances`,e],queryFn:async()=>await r.invoke(`console:getAddonInstances`,{packageName:e}),enabled:p,staleTime:60*1e3}),h=m??[],[_,v]=g.useState(null),y=h.find(e=>e.namespace===_)??h[0],{data:b}=Fr({queryKey:[`addon`,`installed`,e],queryFn:async()=>await r.invoke(`console:getAddonInstalledPackage`,{packageName:e}),enabled:p&&t===`community`}),x=Ir({mutationFn:async({packageName:e,namespace:t,version:n})=>r.invoke(`console:installAddon`,{packageName:e,namespace:t,version:n}),onSuccess:()=>{a.invalidateQueries({queryKey:[`installed-addons`]}),a.invalidateQueries({queryKey:[`allMeta`]})}}),S=Ir({mutationFn:async({name:e,swaggerUrl:t,credential:n})=>r.invoke(`console:installOpenapiAddon`,{name:e,swaggerUrl:t,credential:n}),onSuccess:()=>{a.invalidateQueries({queryKey:[`installed-addons`]}),a.invalidateQueries({queryKey:[`allMeta`]})}}),{data:C}=Fr({queryKey:[`openapi-detail`,e],queryFn:async()=>{let t=a.getQueriesData({queryKey:[`openapis`]});for(let[,n]of t){let t=n?.apis?.find(t=>t.name===e);if(t)return t}return(await r.invoke(`console:getOpenapis`,{limit:2600,offset:0})).apis?.find(t=>t.name===e)??null},enabled:t===`api`}),{data:w,isLoading:T}=Fr({queryKey:[`addon`,t,e],queryFn:async()=>{let n=await(t===`installed`?r.invoke(`console:getAddonInstalledPackage`,{packageName:e}):r.invoke(`console:getAddonCommunityPackage`,{id:e}));if(n?.schemas)for(let[e,t]of Object.entries(n.schemas))a.setQueryData([`schema`,e],t);return n},enabled:t!==`api`,refetchInterval:e=>t!==`installed`||e.state.data||l?!1:Date.now()-c<2e4?1500:!1}),E=t===`installed`&&!w&&!l;if(t===`api`){let e=C;return e?(0,A.jsx)(k2,{header:(0,A.jsx)(Lgn,{icon:UC,category:`APIs`,categoryPath:`/addons`,docsHref:`https://pikku.dev/docs/external-packages`}),hidePanel:!0,children:(0,A.jsx)(j,{p:`xl`,children:(0,A.jsxs)(Ip,{gap:`lg`,children:[(0,A.jsxs)(Gl,{gap:`md`,children:[e.logo&&(0,A.jsx)(`img`,{src:e.logo,width:48,height:48,alt:e.title,style:{objectFit:`contain`,borderRadius:6}}),(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(z,{size:`xl`,fw:700,children:B(e.title||e.name)}),(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:B(e.openapiVer)}),(0,A.jsx)(uv,{size:`sm`,variant:`light`,children:B(`v${e.version}`)})]}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(`${e.provider}${e.service?` / ${e.service}`:``}`)})]})]}),e.description&&(0,A.jsx)(z,{size:`sm`,children:B(e.description)}),(e.categories?.length>0||e.tags?.length>0)&&(0,A.jsxs)(Gl,{gap:6,children:[e.categories?.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`blue`,children:B(e)},e)),e.tags?.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`dot`,children:B(e)},e))]}),e.totalOperations>0&&(0,A.jsxs)(j,{children:[(0,A.jsx)(z,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:K.package_detail_operations({count:e.totalOperations})}),(0,A.jsxs)(Gl,{gap:6,children:[e.opsGet>0&&(0,A.jsx)(uv,{size:`sm`,color:`blue`,children:B(`GET ${e.opsGet}`)}),e.opsPost>0&&(0,A.jsx)(uv,{size:`sm`,color:`green`,children:B(`POST ${e.opsPost}`)}),e.opsPut>0&&(0,A.jsx)(uv,{size:`sm`,color:`yellow`,children:B(`PUT ${e.opsPut}`)}),e.opsPatch>0&&(0,A.jsx)(uv,{size:`sm`,color:`orange`,children:B(`PATCH ${e.opsPatch}`)}),e.opsDelete>0&&(0,A.jsx)(uv,{size:`sm`,color:`red`,children:B(`DELETE ${e.opsDelete}`)})]})]}),e.servers?.length>0&&(0,A.jsxs)(j,{children:[(0,A.jsx)(z,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:K.package_detail_servers()}),e.servers.map(e=>(0,A.jsx)(dd,{block:!0,style:{fontSize:`12px`},children:e},e))]}),e.securitySchemes?.length>0&&(0,A.jsxs)(j,{children:[(0,A.jsx)(z,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:K.package_detail_authentication()}),(0,A.jsx)(Gl,{gap:6,children:e.securitySchemes.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`outline`,color:`gray`,children:B(e)},e))})]}),e.contentTypes?.length>0&&(0,A.jsxs)(j,{children:[(0,A.jsx)(z,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:K.package_detail_content_types()}),(0,A.jsx)(Gl,{gap:6,children:e.contentTypes.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`outline`,color:`gray`,children:B(e)},e))})]}),(0,A.jsxs)(Gl,{gap:`xs`,children:[e.swaggerUrl&&(0,A.jsx)(cv,{size:`sm`,variant:`light`,component:`a`,href:e.swaggerUrl,target:`_blank`,leftSection:(0,A.jsx)(SC,{size:13}),children:K.package_detail_openapi_json()}),e.swaggerYamlUrl&&(0,A.jsx)(cv,{size:`sm`,variant:`light`,component:`a`,href:e.swaggerYamlUrl,target:`_blank`,leftSection:(0,A.jsx)(SC,{size:13}),children:K.package_detail_openapi_yaml()}),i&&(0,A.jsx)(cv,{size:`sm`,leftSection:(0,A.jsx)(IC,{size:13}),loading:S.isPending,onClick:()=>{let t=e.name.replace(/[^a-zA-Z0-9-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``);/^[0-9]/.test(t)&&(t=`x${t}`);let n=e.securitySchemes?.includes(`oauth2`)?`oauth2`:e.securitySchemes?.includes(`bearer`)?`bearer`:e.securitySchemes?.includes(`apiKey`)?`apikey`:void 0;S.mutate({name:t,swaggerUrl:e.swaggerUrl,credential:n})},children:K.package_detail_generate_install_addon()})]}),S.isSuccess&&(0,A.jsx)(gv,{color:`green`,icon:(0,A.jsx)(wC,{size:16}),children:K.package_detail_addon_installed_success()}),S.error&&(0,A.jsx)(gv,{color:`red`,children:B(S.error.message)})]})})}):(0,A.jsx)(ud,{h:`100vh`,children:(0,A.jsx)(zl,{})})}if(T||E)return(0,A.jsx)(ud,{h:`100vh`,children:(0,A.jsx)(zl,{})});if(!w)return(0,A.jsx)(k2,{header:(0,A.jsx)(Lgn,{icon:$C,category:`Addons`,categoryPath:`/addons`,docsHref:`https://pikku.dev/docs/external-packages`}),hidePanel:!0,children:(0,A.jsx)(j,{p:`xl`,children:(0,A.jsx)(z,{c:`dimmed`,children:K.package_detail_not_found()})})});let D=Object.entries(w.functions??{}),O=Object.entries(w.agents??{}),ee=Object.entries(w.secrets??{}),k=Object.entries(w.credentials??{}).filter(([,e])=>!!e.oauth2).length>0||ee.length>0,te=Object.entries(w.variables??{}),ne=Object.values(w.httpRoutes??{}).reduce((e,t)=>e+Object.keys(t).length,0),re=Object.entries(w.channels??{}),ie=Object.values(w.cli??{}).reduce((e,t)=>e+Object.keys(t.commands??{}).length,0),ae=Object.keys(w.mcp?.toolsMeta??{}).length+Object.keys(w.mcp?.resourcesMeta??{}).length+Object.keys(w.mcp?.promptsMeta??{}).length,oe=k?`setup`:w.readme?`readme`:D.length>0?`functions`:O.length>0?`agents`:ne>0?`http`:re.length>0?`channels`:ie>0?`cli`:ae>0?`mcp`:ee.length>0?`secrets`:`variables`,se=o??oe,ce=[`functions`,`secrets`,`variables`].includes(se),le=se===`secrets`?K.package_detail_select_secret():se===`variables`?K.package_detail_select_variable():K.package_detail_select_function();return(0,A.jsx)(k2,{header:(0,A.jsx)(Lgn,{icon:$C,category:`Addons`,categoryPath:`/addons`,docsHref:`https://pikku.dev/docs/external-packages`,subtitle:(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(`/`)}),(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(w.displayName)}),(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(`/`)}),(0,A.jsx)(z,{size:`md`,fw:500,children:B(w.version)})]})}),hidePanel:!ce,emptyPanelMessage:le,children:(0,A.jsxs)(Ip,{gap:0,children:[(0,A.jsx)(j,{px:`md`,py:`md`,style:{borderBottom:`1px solid var(--mantine-color-default-border)`},children:(0,A.jsxs)(Gl,{align:`flex-start`,gap:`md`,wrap:`nowrap`,children:[(0,A.jsx)(Wgn,{icon:w.icon,name:w.displayName,size:48}),(0,A.jsxs)(Ip,{gap:4,className:qw.flexGrow,children:[(0,A.jsxs)(Gl,{gap:`sm`,align:`center`,justify:`space-between`,children:[(0,A.jsxs)(Gl,{gap:`xs`,align:`center`,children:[(0,A.jsx)(z,{fw:600,size:`lg`,children:B(w.displayName)}),w.author&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(`by ${w.author}`)}),w.license&&(0,A.jsx)(uv,{size:`sm`,variant:`outline`,color:`gray`,children:B(w.license)}),w.repository&&(0,A.jsx)(lv,{size:`sm`,href:w.repository,target:`_blank`,rel:`noopener noreferrer`,c:`dimmed`,children:B(w.repository.replace(/^https?:\/\//,``))})]}),i&&(()=>{let e=w.version,t=b?.version;return p&&t&&e&&t!==e?(0,A.jsx)(cv,{size:`sm`,color:`yellow`,leftSection:(0,A.jsx)(UHe,{size:13}),loading:x.isPending,onClick:()=>x.mutate({packageName:w.name,namespace:f?.namespace??w.name.replace(`@pikku/addon-`,``).replace(/^@.*\//,``),version:e}),children:B(`Update to ${e}`)}):p?(0,A.jsx)(cv,{size:`sm`,variant:`light`,color:`green`,leftSection:(0,A.jsx)(wC,{size:13}),disabled:!0,children:K.package_detail_installed()}):(0,A.jsx)(cv,{size:`sm`,leftSection:(0,A.jsx)(IC,{size:13}),loading:x.isPending,onClick:()=>x.mutate({packageName:w.name,namespace:w.name.replace(`@pikku/addon-`,``).replace(/^@.*\//,``),version:e}),children:K.package_detail_install()})})()]}),w.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(w.description)}),(w.tags??[]).length>0&&(0,A.jsx)(Gl,{gap:`xs`,children:w.tags.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`dot`,children:B(e)},e))})]})]})}),(0,A.jsxs)(Cv,{value:se,onChange:s,children:[(0,A.jsx)(j,{style:{borderBottom:`1px solid var(--mantine-color-default-border)`},children:(0,A.jsxs)(Cv.List,{style:{borderBottom:`none`},children:[k&&(0,A.jsx)(Cv.Tab,{value:`setup`,leftSection:(0,A.jsx)(gw,{size:14}),children:K.package_detail_tab_setup()}),w.readme&&(0,A.jsx)(Cv.Tab,{value:`readme`,leftSection:(0,A.jsx)(SC,{size:14}),children:K.package_detail_tab_readme()}),D.length>0&&(0,A.jsx)(Cv.Tab,{value:`functions`,leftSection:(0,A.jsx)(jC,{size:14}),children:B(`Functions (${D.length})`)}),O.length>0&&(0,A.jsx)(Cv.Tab,{value:`agents`,leftSection:(0,A.jsx)(CC,{size:14}),children:B(`Agents (${O.length})`)}),ne>0&&(0,A.jsx)(Cv.Tab,{value:`http`,leftSection:(0,A.jsx)(UC,{size:14}),children:B(`HTTP Routes (${ne})`)}),re.length>0&&(0,A.jsx)(Cv.Tab,{value:`channels`,leftSection:(0,A.jsx)(nw,{size:14}),children:B(`Channels (${re.length})`)}),ie>0&&(0,A.jsx)(Cv.Tab,{value:`cli`,leftSection:(0,A.jsx)(fw,{size:14}),children:B(`CLI (${ie})`)}),ae>0&&(0,A.jsx)(Cv.Tab,{value:`mcp`,leftSection:(0,A.jsx)(PC,{size:14}),children:B(`MCP (${ae})`)}),(0,A.jsx)(Cv.Tab,{value:`secrets`,leftSection:(0,A.jsx)(WC,{size:14}),disabled:ee.length===0,children:B(`Secrets (${ee.length})`)}),(0,A.jsx)(Cv.Tab,{value:`variables`,leftSection:(0,A.jsx)(DUe,{size:14}),disabled:te.length===0,children:B(`Variables (${te.length})`)})]})}),k&&(0,A.jsxs)(Cv.Panel,{value:`setup`,children:[h.length>1&&(0,A.jsx)(j,{px:`md`,pt:`md`,children:(0,A.jsx)(bv,{label:K.package_detail_instance_label(),description:K.package_detail_instance_description(),data:h.map(e=>e.namespace),value:y?.namespace??null,onChange:v,allowDeselect:!1,maw:320})}),(0,A.jsx)(Bgn,{credentials:w.credentials??{},secrets:w.secrets??{},credentialOverrides:y?.credentialOverrides,secretOverrides:y?.secretOverrides})]}),w.readme&&(0,A.jsx)(Cv.Panel,{value:`readme`,children:(0,A.jsx)(cm,{px:`xl`,py:`md`,style:{maxHeight:`calc(100vh - 280px)`,overflow:`auto`},children:(0,A.jsx)(Cpn,{remarkPlugins:[Dgn],children:w.readme})})}),D.length>0&&(0,A.jsx)(Cv.Panel,{value:`functions`,children:(0,A.jsx)(Rgn,{functions:D.map(([e,t])=>({...t,pikkuFuncId:e})),functionUsedBy:new Map})}),O.length>0&&(0,A.jsx)(Cv.Panel,{value:`agents`,children:(0,A.jsx)(Ggn,{headers:[`NAME`],rows:O.map(([e])=>[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e)},e)])})}),ne>0&&(0,A.jsx)(Cv.Panel,{value:`http`,children:(0,A.jsx)(Kgn,{httpRoutes:w.httpRoutes})}),re.length>0&&(0,A.jsx)(Cv.Panel,{value:`channels`,children:(0,A.jsx)(qgn,{channels:w.channels})}),ie>0&&(0,A.jsx)(Cv.Panel,{value:`cli`,children:(0,A.jsx)(Jgn,{cli:w.cli})}),ae>0&&w.mcp&&(0,A.jsx)(Cv.Panel,{value:`mcp`,children:(0,A.jsx)(Ygn,{mcp:w.mcp})}),(0,A.jsx)(Cv.Panel,{value:`secrets`,children:(0,A.jsx)(zqt,{secrets:ee.map(([,e])=>e),installed:!1})}),(0,A.jsx)(Cv.Panel,{value:`variables`,children:(0,A.jsx)(Hqt,{variables:te.map(([,e])=>e),installed:!1})})]})]})})},Zgn={auth:{icon:WC,color:`violet`},payments:{icon:QHe,color:`green`},database:{icon:FC,color:`blue`},agents:{icon:CC,color:`orange`},ai:{icon:CC,color:`orange`},email:{icon:ZC,color:`cyan`},storage:{icon:sw,color:`grape`},analytics:{icon:HUe,color:`teal`},observability:{icon:yC,color:`red`},observe:{icon:yC,color:`red`},realtime:{icon:nw,color:`cyan`},search:{icon:ow,color:`yellow`},devtools:{icon:gw,color:`gray`}},Qgn={icon:$C,color:`gray`};function $gn(e){return e?Zgn[e.toLowerCase()]??Qgn:Qgn}function e_n(e){return e.replace(/[-_]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function t_n(e){return/^@pikku(fabric)?\//.test(e)}function n_n(e){return e.categories?.[0]}function r_n(e){return Object.entries(e).filter(([e])=>!!e).map(([e,t])=>({id:e,label:e_n(e),count:t})).sort((e,t)=>t.count-e.count||e.label.localeCompare(t.label))}var i_n=({categories:e,active:t,total:n,onPick:r})=>(_e(),(0,A.jsxs)(j,{component:`nav`,style:{position:`sticky`,top:0,alignSelf:`flex-start`},children:[(0,A.jsx)(z,{size:`xs`,fw:700,tt:`uppercase`,c:`dimmed`,px:`xs`,mb:6,style:{letterSpacing:`0.06em`},children:K.packages_browse()}),(0,A.jsx)(xbe,{active:t===`all`,label:K.packages_all_addons(),leftSection:(0,A.jsx)(rm,{size:22,radius:`sm`,variant:`light`,color:`gray`,children:(0,A.jsx)($C,{size:14})}),rightSection:(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(String(n))}),onClick:()=>r(`all`),styles:{root:{borderRadius:`var(--mantine-radius-sm)`}}}),e.map(e=>{let{icon:n,color:i}=$gn(e.id);return(0,A.jsx)(xbe,{active:t===e.id,label:B(e.label),leftSection:(0,A.jsx)(rm,{size:22,radius:`sm`,variant:`light`,color:i,children:(0,A.jsx)(n,{size:14})}),rightSection:(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(String(e.count))}),onClick:()=>r(e.id),styles:{root:{borderRadius:`var(--mantine-radius-sm)`}}},e.id)})]})),a_n=({icon:e,value:t})=>(0,A.jsxs)(Gl,{gap:5,wrap:`nowrap`,children:[(0,A.jsx)(e,{size:13,color:`var(--mantine-color-dimmed)`}),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,c:`dimmed`,children:B(String(t))})]}),o_n=({addon:e,installed:t,kind:n=`addon`,onOpen:r})=>{_e();let[i,a]=(0,g.useState)(!1),o=n===`api`,{icon:s,color:c}=$gn(n_n(e)),l=!o&&t_n(e.name),u=Object.keys(e.functions??{}).length,d=Object.keys(e.agents??{}).length,f=e.icon?e.icon.startsWith(`<`)?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e.icon)}`:e.icon:null;return(0,A.jsxs)(ld,{withBorder:!0,radius:`md`,padding:0,onClick:()=>r(e),onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),style:{cursor:`pointer`,display:`flex`,flexDirection:`column`,transform:i?`translateY(-2px)`:`none`,boxShadow:i?`var(--mantine-shadow-md)`:void 0,borderColor:i?`var(--mantine-color-default-border)`:void 0,transition:`transform 140ms ease, box-shadow 140ms ease`},children:[(0,A.jsxs)(Ip,{gap:`sm`,p:`md`,style:{flex:1},children:[(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,align:`flex-start`,children:[f?(0,A.jsx)(`img`,{src:f,width:44,height:44,alt:e.displayName,style:{objectFit:`contain`,borderRadius:10,display:`block`}}):(0,A.jsx)(rm,{size:44,radius:`md`,variant:`light`,color:c,children:(0,A.jsx)(s,{size:22})}),(0,A.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,A.jsx)(z,{fw:600,size:`sm`,truncate:!0,children:B(e.displayName||e.name)}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,truncate:!0,children:B(e.name)})]}),o?e.author&&(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,tt:`none`,style:{flexShrink:0},children:B(e.author)}):l?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`blue`,leftSection:(0,A.jsx)(lw,{size:11}),style:{flexShrink:0},children:K.packages_official()}):(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,style:{flexShrink:0},children:K.packages_community()})]}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,lineClamp:2,style:{minHeight:`2.6em`},children:B(e.description)}),(e.tags??[]).length>0&&(0,A.jsx)(Gl,{gap:6,children:e.tags.slice(0,3).map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,tt:`none`,ff:`monospace`,fw:400,children:B(e)},e))})]}),(0,A.jsxs)(Gl,{justify:`space-between`,wrap:`nowrap`,px:`md`,py:`sm`,style:{borderTop:`1px solid var(--mantine-color-default-border)`,background:`var(--mantine-color-default-hover)`},children:[(0,A.jsx)(Gl,{gap:`lg`,wrap:`nowrap`,children:o?(0,A.jsx)(a_n,{icon:UC,value:e.totalOperations??0}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(a_n,{icon:dw,value:u}),(0,A.jsx)(a_n,{icon:CC,value:d})]})}),t&&(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`green`,leftSection:(0,A.jsx)(wC,{size:11}),children:o?K.packages_imported():K.packages_added()})]})]})},s_n=`https://pikku.dev/docs/external-packages`,c_n=()=>(_e(),(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`lg`,style:{borderStyle:`dashed`},children:(0,A.jsxs)(Gl,{gap:`md`,wrap:`nowrap`,children:[(0,A.jsx)(rm,{size:42,radius:`md`,variant:`light`,color:`blue`,children:(0,A.jsx)($C,{size:20})}),(0,A.jsxs)(Ip,{gap:2,style:{flex:1,minWidth:0},children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:K.packages_publish_title()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.packages_publish_subtext()})]}),(0,A.jsx)(cv,{component:`a`,href:s_n,target:`_blank`,rel:`noopener noreferrer`,variant:`default`,rightSection:(0,A.jsx)(VHe,{size:14}),children:K.packages_publish_cta()})]})})),l_n=({icon:e,label:t,value:n})=>(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`sm`,children:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(rm,{size:34,radius:`md`,variant:`default`,color:`gray`,children:(0,A.jsx)(e,{size:16})}),(0,A.jsxs)(Ip,{gap:0,children:[(0,A.jsx)(z,{size:`lg`,fw:700,ff:`monospace`,lh:1,children:B(String(n))}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:t})]})]})}),u_n=e=>{let t=e.replace(`@pikku/addon-`,``).replace(/^@[^/]+\//,``).toLowerCase().replace(/[^a-z0-9-]+/g,`-`).replace(/^-+|-+$/g,``);if(!t)throw Error(`Unable to derive namespace from package name: ${e}`);return t},d_n=e=>/^[a-z0-9-]+$/.test(e),f_n=e=>Object.values(e??{}).reduce((e,t)=>e+Object.keys(t??{}).length,0),p_n=({addon:e,installed:t,installing:n,editable:r,installedNamespaces:i=[],error:a,kind:o=`addon`,onClose:s,onInstall:c})=>{_e();let l=Ng(),[u,d]=(0,g.useState)(`overview`),f=o===`api`,[p,m]=(0,g.useState)(``);(0,g.useEffect)(()=>{e&&(d(`overview`),m(f?``:u_n(e.name)))},[e?.id]);let h=f||d_n(p),{data:_}=Fr({queryKey:[`addon`,`community`,e?.id],queryFn:async()=>await l.invoke(`console:getAddonCommunityPackage`,{id:e.id}),enabled:!f&&!!e}),{data:v}=Fr({queryKey:[`api`,`detail`,e?.id],queryFn:async()=>await l.invoke(`console:getOpenapiDetail`,{name:e.name}),enabled:f&&!!e}),y=!!e,b=!f&&e?t_n(e.name):!1,{icon:x,color:S}=$gn(e?n_n(e):void 0),C=_?.functions??e?.functions??{},w=Object.keys(C),T=_?.secrets??{},E=_?.variables??{},D=_?.channels??{},O=Object.entries(_?.httpRoutes??{}).flatMap(([e,t])=>Object.keys(t??{}).map(t=>({method:e,route:t}))),ee=Object.keys(T),k=Object.keys(E),te=Object.keys(D),ne=f?[{icon:UC,label:K.packages_surface_operations(),value:v?.totalOperations??e?.totalOperations??0}]:[{icon:dw,label:K.packages_surface_functions(),value:w.length},{icon:UC,label:K.packages_surface_http(),value:f_n(_?.httpRoutes)},{icon:nw,label:K.packages_surface_channels(),value:Object.keys(_?.channels??{}).length},{icon:WC,label:K.packages_surface_secrets(),value:Object.keys(_?.secrets??{}).length},{icon:DUe,label:K.packages_surface_variables(),value:Object.keys(_?.variables??{}).length},{icon:CC,label:K.packages_surface_agents(),value:Object.keys(_?.agents??e?.agents??{}).length}],re=_?.displayName??e?.displayName??e?.name,ie=_?.description??e?.description,ae=_?.tags??e?.tags??[],oe=_?.author??e?.author,se=_?.version??e?.version,ce=_?.icon??e?.icon,le=ce&&ce.startsWith(`<`)?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(ce)}`:ce,ue=f?v?.swaggerUrl??e?.swaggerUrl??`https://pikku.dev/docs/external-packages`:`https://pikku.dev/docs/external-packages`,de=e&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,mb:`sm`,children:K.packages_whats_included()}),(0,A.jsx)(Tp,{cols:{base:2,sm:3},spacing:`sm`,children:ne.map(e=>(0,A.jsx)(l_n,{icon:e.icon,label:e.label,value:e.value},String(e.label)))}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,mt:`xl`,mb:`sm`,children:K.packages_published_by()}),(0,A.jsxs)(Gl,{gap:`md`,wrap:`nowrap`,children:[(0,A.jsx)(Cbe,{radius:`md`,color:b?`blue`:`gray`,children:(oe??e.name).slice(0,1).toUpperCase()}),(0,A.jsxs)(Gl,{gap:6,children:[(0,A.jsx)(z,{size:`sm`,fw:600,children:B(oe??e.name)}),b&&(0,A.jsx)(lw,{size:14,color:`var(--mantine-color-blue-5)`})]})]})]});return(0,A.jsx)(hv,{opened:y,onClose:s,position:`right`,size:620,title:e?(0,A.jsxs)(Gl,{gap:6,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,children:K.packages_community()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(`/`)}),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,fw:500,children:B(e.name)})]}):void 0,styles:{body:{padding:0}},children:e&&(0,A.jsxs)(Ip,{gap:0,children:[(0,A.jsxs)(j,{p:`lg`,children:[(0,A.jsxs)(Gl,{gap:`md`,wrap:`nowrap`,align:`flex-start`,children:[le?(0,A.jsx)(`img`,{src:le,width:56,height:56,alt:e.displayName,style:{objectFit:`contain`,borderRadius:12}}):(0,A.jsx)(rm,{size:56,radius:`md`,variant:`light`,color:S,children:(0,A.jsx)(x,{size:28})}),(0,A.jsxs)(Ip,{gap:4,style:{flex:1,minWidth:0},children:[(0,A.jsxs)(Gl,{gap:`xs`,align:`center`,children:[(0,A.jsx)(Sbe,{order:3,fw:700,children:B(re||e.name)}),f?oe&&(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,tt:`none`,children:B(oe)}):b?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`blue`,leftSection:(0,A.jsx)(lw,{size:11}),children:K.packages_official()}):(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:K.packages_community()})]}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(e.name)})]})]}),ie&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,mt:`md`,children:B(ie)}),ae.length>0&&(0,A.jsx)(Gl,{gap:6,mt:`sm`,children:ae.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,tt:`none`,ff:`monospace`,fw:400,children:B(e)},e))}),!f&&i.length>0&&(0,A.jsxs)(Gl,{gap:`xs`,mt:`lg`,align:`center`,children:[(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.packages_installed_as()}),i.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`green`,tt:`none`,ff:`monospace`,fw:400,children:B(e)},e))]}),!t&&!f&&r&&(0,A.jsx)(_v,{mt:i.length>0?`sm`:`lg`,label:K.packages_install_name_label(),description:K.packages_install_name_description(),value:p,onChange:e=>m(e.currentTarget.value),error:p.length>0&&!h?K.packages_install_name_invalid():null,styles:{input:{fontFamily:`monospace`}}}),(0,A.jsxs)(Gl,{gap:`sm`,mt:!t&&!f&&r?`sm`:`lg`,children:[t?(0,A.jsx)(cv,{variant:`light`,color:`green`,leftSection:(0,A.jsx)(wC,{size:15}),disabled:!0,children:f?K.packages_imported_to_project():K.packages_added_to_project()}):r&&(0,A.jsx)(cv,{leftSection:(0,A.jsx)(IC,{size:15}),loading:n,disabled:!h,onClick:()=>c(e,f?void 0:p),children:f?K.packages_import_to_project():K.packages_add_to_project()}),(0,A.jsx)(cv,{component:`a`,href:ue,target:`_blank`,rel:`noopener noreferrer`,variant:`default`,leftSection:(0,A.jsx)(RC,{size:15}),children:K.packages_docs()})]}),a&&(0,A.jsx)(gv,{mt:`sm`,color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:15}),children:(0,A.jsx)(z,{size:`sm`,children:f?K.packages_import_error({name:e.displayName||e.name,message:a}):K.packages_install_error({name:e.displayName||e.name,message:a})})}),(0,A.jsx)(pv,{my:`md`}),(0,A.jsxs)(Gl,{gap:`xl`,children:[(0,A.jsxs)(Ip,{gap:2,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,children:K.packages_meta_version()}),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,children:B(se??`—`)})]}),_?.license&&(0,A.jsxs)(Ip,{gap:2,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,children:K.packages_meta_license()}),(0,A.jsx)(z,{size:`sm`,children:B(_.license)})]}),oe&&(0,A.jsxs)(Ip,{gap:2,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,children:K.packages_meta_author()}),(0,A.jsx)(z,{size:`sm`,children:B(oe)})]})]})]}),f?(0,A.jsx)(j,{p:`lg`,style:{borderTop:`1px solid var(--mantine-color-default-border)`},children:de}):(0,A.jsxs)(Cv,{value:u,onChange:d,children:[(0,A.jsx)(j,{style:{borderBottom:`1px solid var(--mantine-color-default-border)`,borderTop:`1px solid var(--mantine-color-default-border)`},children:(0,A.jsxs)(Cv.List,{style:{borderBottom:`none`,paddingLeft:`var(--mantine-spacing-md)`},children:[(0,A.jsx)(Cv.Tab,{value:`overview`,children:K.packages_tab_overview()}),(0,A.jsx)(Cv.Tab,{value:`functions`,children:B(`${K.packages_tab_functions()} (${w.length})`)}),O.length>0&&(0,A.jsx)(Cv.Tab,{value:`http`,children:B(`${K.packages_surface_http()} (${O.length})`)}),te.length>0&&(0,A.jsx)(Cv.Tab,{value:`channels`,children:B(`${K.packages_surface_channels()} (${te.length})`)}),ee.length>0&&(0,A.jsx)(Cv.Tab,{value:`secrets`,children:B(`${K.packages_surface_secrets()} (${ee.length})`)}),k.length>0&&(0,A.jsx)(Cv.Tab,{value:`variables`,children:B(`${K.packages_surface_variables()} (${k.length})`)})]})}),(0,A.jsx)(Cv.Panel,{value:`overview`,p:`lg`,children:de}),(0,A.jsx)(Cv.Panel,{value:`functions`,p:`lg`,children:w.length===0?(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.packages_no_functions()}):(0,A.jsx)(Ip,{gap:0,style:{border:`1px solid var(--mantine-color-default-border)`,borderRadius:`var(--mantine-radius-md)`,overflow:`hidden`},children:w.map((e,t)=>{let n=C[e];return(0,A.jsxs)(Gl,{justify:`space-between`,px:`md`,py:`xs`,wrap:`nowrap`,style:{borderTop:t===0?void 0:`1px solid var(--mantine-color-default-border)`},children:[(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(n?.title??e)}),n?.title&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(e)})]}),n?.description&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,lineClamp:2,children:B(n.description)})]}),n?.category&&(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:B(n.category)})]},e)})})}),O.length>0&&(0,A.jsx)(Cv.Panel,{value:`http`,p:`lg`,children:(0,A.jsx)(m_n,{children:O.map(({method:e,route:t},n)=>(0,A.jsx)(h_n,{first:n===0,children:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`blue`,w:64,ta:`center`,children:B(e.toUpperCase())}),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,children:B(t)})]})},`${e} ${t}`))})}),te.length>0&&(0,A.jsx)(Cv.Panel,{value:`channels`,p:`lg`,children:(0,A.jsx)(m_n,{children:te.map((e,t)=>(0,A.jsx)(h_n,{first:t===0,children:(0,A.jsx)(z,{size:`sm`,fw:500,ff:`monospace`,children:B(e)})},e))})}),ee.length>0&&(0,A.jsx)(Cv.Panel,{value:`secrets`,p:`lg`,children:(0,A.jsx)(m_n,{children:ee.map((e,t)=>{let n=T[e];return(0,A.jsx)(h_n,{first:t===0,children:(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(n?.displayName??e)}),n?.secretId&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(n.secretId)})]}),n?.description&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,lineClamp:2,children:B(n.description)})]})},e)})})}),k.length>0&&(0,A.jsx)(Cv.Panel,{value:`variables`,p:`lg`,children:(0,A.jsx)(m_n,{children:k.map((e,t)=>{let n=E[e];return(0,A.jsx)(h_n,{first:t===0,children:(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(n?.displayName??e)}),n?.variableId&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(n.variableId)})]}),n?.description&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,lineClamp:2,children:B(n.description)})]})},e)})})})]})]})})},m_n=({children:e})=>(0,A.jsx)(Ip,{gap:0,style:{border:`1px solid var(--mantine-color-default-border)`,borderRadius:`var(--mantine-radius-md)`,overflow:`hidden`},children:e}),h_n=({first:e,children:t})=>(0,A.jsx)(Gl,{justify:`space-between`,px:`md`,py:`xs`,wrap:`nowrap`,style:{borderTop:e?void 0:`1px solid var(--mantine-color-default-border)`},children:t}),g_n=({addons:e,searchQuery:t,installedNames:n,installedNamespaces:r,editable:i,installingName:a,actionError:o,kind:s=`addon`,categoryCounts:c,catalogueTotal:l,total:u,category:d,onCategoryChange:f,sort:p,onSortChange:m,hasMore:h,loadingMore:_,onLoadMore:v,onInstall:y,onOpenInstalled:b})=>{_e();let[x,S]=(0,g.useState)(null),C=e=>{b&&n.has(e.name)?b(e):S(e)},w=(0,g.useMemo)(()=>r_n(c),[c]),T=(0,g.useMemo)(()=>[{value:`name`,label:K.packages_sort_name()},{value:`functions`,label:K.packages_sort_functions()},{value:`agents`,label:K.packages_sort_agents()}],[]),E=(0,g.useRef)(null),D=(0,g.useRef)(v);D.current=v,(0,g.useEffect)(()=>{let e=E.current;if(!e||!h||_)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&D.current()},{rootMargin:`400px`});return t.observe(e),()=>t.disconnect()},[h,_]);let O=d===`all`?t.trim()?K.packages_results():s===`api`?K.packages_all_apis():K.packages_all_addons():B(w.find(e=>e.id===d)?.label??d);return(0,A.jsxs)(Ip,{gap:`lg`,style:{minHeight:`100%`},children:[(0,A.jsxs)(j,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 210px) minmax(0, 1fr)`,gap:`var(--mantine-spacing-xl)`,alignItems:`stretch`,flex:1,minHeight:0},children:[(0,A.jsx)(i_n,{categories:w,active:d,total:l,onPick:f}),(0,A.jsxs)(Ip,{gap:`md`,style:{minWidth:0,minHeight:`100%`},children:[(0,A.jsxs)(Gl,{justify:`space-between`,wrap:`nowrap`,children:[(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(z,{fw:700,size:`sm`,children:O}),(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:B(String(u))})]}),p&&m&&(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(rm,{size:`sm`,variant:`transparent`,color:`gray`,children:(0,A.jsx)(NUe,{size:14})}),(0,A.jsx)(_p,{size:`xs`,value:p,onChange:e=>m(e),data:T})]})]}),(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:e.length===0?(0,A.jsxs)(Ip,{align:`center`,justify:`center`,gap:6,h:`100%`,children:[(0,A.jsx)(rm,{size:48,radius:`md`,variant:`light`,color:`gray`,children:(0,A.jsx)(ow,{size:22})}),(0,A.jsx)(z,{fw:600,size:`sm`,children:K.packages_no_matches()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.packages_no_matches_hint()})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(Tp,{cols:{base:1,sm:2,lg:3},spacing:`md`,children:e.map(e=>(0,A.jsx)(o_n,{addon:e,installed:n.has(e.name),kind:s,onOpen:C},e.id))}),h&&(0,A.jsx)(j,{ref:E,py:`lg`,children:(0,A.jsx)(ud,{children:(0,A.jsx)(zl,{size:`sm`})})})]})}),s===`addon`&&i&&(0,A.jsx)(c_n,{})]})]}),(0,A.jsx)(p_n,{addon:x,installed:x?n.has(x.name):!1,installing:!!x&&a===x.name,installedNamespaces:x?r?.[x.name]??[]:[],error:x&&o?.name===x.name?o.message:null,editable:i,kind:s,onClose:()=>S(null),onInstall:y})]})},__n=e=>({id:e.packageName,name:e.packageName,displayName:e.namespace||e.packageName,description:``,version:``,author:``,icon:e.icon,tags:e.tags??[],categories:[],functions:{},agents:{}}),v_n=500,y_n=(e,t)=>{let n=t.toLowerCase();return e.name.toLowerCase().includes(n)||e.displayName.toLowerCase().includes(n)||e.description.toLowerCase().includes(n)||e.tags.some(e=>e.toLowerCase().includes(n))},b_n=({searchQuery:e,filter:t,onSelect:n})=>{let r=Ng();_e();let i=x2(),a=Sr(),[o,s]=(0,g.useState)(`all`),[c,l]=(0,g.useState)(`name`),{data:u}=Fr({queryKey:[`installed-addons`],queryFn:async()=>await r.invoke(`console:getInstalledAddons`)??[],staleTime:60*1e3}),d=t===`installed`,f=!d||!!u,p=(0,g.useMemo)(()=>new Set((u??[]).map(e=>e.packageName)),[u]),m=(0,g.useMemo)(()=>{let e={};for(let t of u??[])(e[t.packageName]??=[]).push(t.namespace);return e},[u]),h=e.trim(),_=(0,g.useMemo)(()=>d?{names:[...p].join(`,`)}:{...h?{search:h}:{},...o===`all`?{}:{category:o},...t===`official`?{official:!0}:{},sort:c},[d,p,h,o,t,c]),v=d?Math.min(Math.max(p.size,1),v_n):50,{data:y,isPending:b,isError:x,fetchNextPage:S,hasNextPage:C,isFetchingNextPage:w}=Ate({queryKey:[`addons`,_,v],initialPageParam:void 0,queryFn:async({pageParam:e})=>await r.invoke(`console:getAddonMeta`,{..._,limit:v,...e==null?{}:{cursor:e}}),getNextPageParam:e=>e.nextCursor??void 0,enabled:f,staleTime:60*1e3,retry:!1}),{data:T}=Fr({queryKey:[`addon-categories`],queryFn:async()=>await r.invoke(`console:getAddonCategories`),staleTime:300*1e3,retry:!1}),{data:E}=Fr({queryKey:[`addons`,`total`],queryFn:async()=>(await r.invoke(`console:getAddonMeta`,{limit:1})).total??0,staleTime:300*1e3,retry:!1}),D=(0,g.useMemo)(()=>(y?.pages??[]).flatMap(e=>e.packages??[]),[y]),O=(0,g.useMemo)(()=>{if(!d)return D;let e=new Map(D.map(e=>[e.name,e])),t=(u??[]).map(t=>e.get(t.packageName)??__n(t));return h&&(t=t.filter(e=>y_n(e,h))),o!==`all`&&(t=t.filter(e=>e.categories.includes(o))),t},[d,D,u,h,o]),ee=Ir({mutationFn:async({addon:e,namespace:t})=>r.invoke(`console:installAddon`,{packageName:e.name,namespace:t?.trim()||u_n(e.name),version:e.version}),onSuccess:(e,{addon:t})=>{a.invalidateQueries({queryKey:[`installed-addons`]}),a.invalidateQueries({queryKey:[`allMeta`]}),n(t.name,`installed`)}});return b?(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:(0,A.jsx)(ud,{h:`100%`,children:(0,A.jsx)(zl,{})})}):x||!y?(0,A.jsx)(A2,{icon:$C,title:K.packages_registry_unavailable_title(),description:K.packages_registry_unavailable_description(),docsHref:`https://pikku.dev/docs/external-packages`}):(0,A.jsx)(g_n,{addons:O,searchQuery:e,categoryCounts:T??{},catalogueTotal:E??0,total:d?O.length:y.pages[0]?.total??0,category:o,onCategoryChange:s,sort:d?void 0:c,onSortChange:d?void 0:l,hasMore:!d&&!!C,loadingMore:w,onLoadMore:S,installedNames:p,installedNamespaces:m,editable:i,installingName:ee.isPending?ee.variables?.addon.name??null:null,actionError:ee.isError?{name:ee.variables?.addon.name??``,message:ee.error instanceof Error?ee.error.message:String(ee.error)}:null,onInstall:(e,t)=>ee.mutate({addon:e,namespace:t}),onOpenInstalled:e=>n(e.name,`installed`)})},x_n=e=>({id:e.name,name:e.name,displayName:e.title||e.name,description:e.description,version:e.version,author:e.provider,icon:e.logo??void 0,tags:e.tags??[],categories:e.categories??[],functions:{},agents:{},swaggerUrl:e.swaggerUrl,totalOperations:e.totalOperations}),S_n=({searchQuery:e})=>{let t=Ng();_e();let n=x2(),r=Sr(),[i,a]=(0,g.useState)(`all`),{data:o,isPending:s,isError:c,fetchNextPage:l,hasNextPage:u,isFetchingNextPage:d}=Ate({queryKey:[`openapis`,{search:e.trim(),category:i}],initialPageParam:0,queryFn:async({pageParam:n})=>await t.invoke(`console:getOpenapis`,{limit:50,offset:n,...e.trim()?{search:e.trim()}:{},...i===`all`?{}:{category:i}}),getNextPageParam:e=>e.nextCursor??void 0,staleTime:60*1e3,retry:!1}),{data:f}=Fr({queryKey:[`openapi-categories`],queryFn:async()=>await t.invoke(`console:getOpenapiCategories`),staleTime:300*1e3,retry:!1}),{data:p}=Fr({queryKey:[`openapis`,`total`],queryFn:async()=>(await t.invoke(`console:getOpenapis`,{limit:1,offset:0})).total??0,staleTime:300*1e3,retry:!1}),{data:m}=Fr({queryKey:[`installed-addons`],queryFn:async()=>await t.invoke(`console:getInstalledAddons`)??[],staleTime:60*1e3}),h=Ir({mutationFn:async e=>t.invoke(`console:installOpenapiAddon`,{name:u_n(e.name),swaggerUrl:e.swaggerUrl}),onSuccess:()=>{r.invalidateQueries({queryKey:[`installed-addons`]}),r.invalidateQueries({queryKey:[`allMeta`]})}}),_=(0,g.useMemo)(()=>new Set((m??[]).filter(e=>e.packageName.startsWith(`@pikku/addon-`)).map(e=>e.packageName.slice(13))),[m]),v=(0,g.useMemo)(()=>(o?.pages??[]).flatMap(e=>(e.apis??[]).map(x_n)),[o]),y=(0,g.useMemo)(()=>new Set(v.filter(e=>_.has(u_n(e.name))).map(e=>e.name)),[v,_]);return s?(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:(0,A.jsx)(ud,{h:`100%`,children:(0,A.jsx)(zl,{})})}):c||!o?(0,A.jsx)(A2,{icon:UC,title:K.packages_no_apis_title(),description:K.packages_no_apis_description(),docsHref:`https://pikku.dev/docs/external-packages`}):(0,A.jsx)(g_n,{addons:v,searchQuery:e,categoryCounts:f??{},catalogueTotal:p??0,total:o.pages[0]?.total??0,category:i,onCategoryChange:a,hasMore:!!u,loadingMore:d,onLoadMore:l,installedNames:y,editable:n,kind:`api`,installingName:h.isPending?h.variables?.name??null:null,actionError:h.isError?{name:h.variables?.name??``,message:h.error instanceof Error?h.error.message:String(h.error)}:null,onInstall:e=>h.mutate(e)})},C_n=({onSelect:e})=>{let[t,n]=(0,g.useState)(`addons`),[r,i]=(0,g.useState)(`all`),[a,o]=(0,g.useState)(``),s=x2();_e();let c=s?r:`installed`,l=e=>{o(``),n(e)},u=[{value:`addons`,label:K.packages_tab_addons()},{value:`apis`,label:K.packages_tab_apis()}],d=[{value:`all`,label:K.packages_filter_all()},{value:`official`,label:K.packages_filter_official()},{value:`installed`,label:K.packages_filter_installed()}];return(0,A.jsx)(k2,{hidePanel:!0,header:(0,A.jsx)(lT,{title:K.packages_title(),description:K.packages_description(),docsHref:`https://pikku.dev/docs/external-packages`,filters:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(_v,{placeholder:t===`apis`?K.packages_search_apis_placeholder():K.packages_search_addons_placeholder(),leftSection:(0,A.jsx)(ow,{size:14}),value:a,onChange:e=>o(e.target.value),size:`xs`,style:{width:240}}),t===`addons`&&s&&(0,A.jsx)(_p,{size:`xs`,value:r,onChange:e=>i(e),data:d}),(0,A.jsx)(_p,{size:`xs`,value:t,onChange:l,data:u})]})}),children:t===`apis`?(0,A.jsx)(S_n,{searchQuery:a}):(0,A.jsx)(b_n,{searchQuery:a,filter:c,onSelect:e})})},w_n=()=>{let[e,t]=sv(),n=e.get(`id`),r=e.get(`source`)??`community`;return n?(0,A.jsx)(Xgn,{id:n,source:r,onBack:()=>t({})}):(0,A.jsx)(C_n,{onSelect:(e,n)=>t({id:e,source:n})})},T_n=()=>(0,A.jsx)(hT,{children:(0,A.jsx)(w_n,{})}),E_n=({searchQuery:e=``,emptyHero:t})=>{_e();let{meta:n}=Vw(),r=Ng(),i=ov(),a=(0,g.useMemo)(()=>{let e=n.credentialsMeta??{};return Object.entries(e).filter(([,e])=>(e.type||`singleton`)===`singleton`).map(([e,t])=>({name:e,displayName:t.displayName||e,description:t.description,type:`singleton`,isOAuth2:!!t.oauth2}))},[n]),{data:o}=Fr({queryKey:[`credential-owners`],queryFn:async()=>{let e=await r.invoke(`console:getInstalledAddons`),t={};return await Promise.all((e??[]).map(async e=>{let n=await r.invoke(`console:getAddonInstalledPackage`,{packageName:e.packageName});for(let r of Object.keys(n?.credentials??{}))t[r]={packageName:e.packageName,namespace:e.namespace}})),t},enabled:a.length>0,staleTime:60*1e3}),s=(0,g.useMemo)(()=>{if(!e)return a;let t=e.toLowerCase();return a.filter(e=>e.name.toLowerCase().includes(t)||e.displayName.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||o?.[e.name]?.namespace.toLowerCase().includes(t))},[a,e,o]),c=(0,g.useMemo)(()=>new Map(s.map(e=>[e.name,e])),[s]),{data:l}=Fr({queryKey:[`credential-global-status`],queryFn:async()=>{let e=a.filter(e=>e.type===`singleton`);if(e.length===0)return{};try{return(await r.invoke(`console:credentialStatus`,{names:e.map(e=>e.name)})).statuses??{}}catch{return{}}},enabled:a.length>0});return(0,A.jsx)(j,{p:`md`,children:(0,A.jsx)(Z2,{items:(0,g.useMemo)(()=>s.map(e=>{let t=o?.[e.name];return{name:e.name,displayName:e.displayName,description:e.description,badges:[{label:e.isOAuth2?K.credentials_type_oauth2():K.credentials_type_api_key(),tone:e.isOAuth2?`accent`:`neutral`}],tags:t?[t.namespace]:void 0}}),[s,o]),loading:!1,icon:WC,emptyHero:t,emptyTitle:K.credentials_empty_title(),emptyDescription:K.credentials_empty_description(),docsHref:`https://pikku.dev/docs/core-features/credentials`,onOpen:e=>{let t=o?.[e];t&&i(`/addons?id=${encodeURIComponent(t.packageName)}&source=installed`)},metricSlot:e=>{let t=c.get(e);return t?(0,A.jsx)(D_n,{credential:t,isConnected:l?.[e]===!0}):null}})})},D_n=({credential:e,isConnected:t})=>{_e();let n=Ng(),r=ev(),i=Sr(),a=Ir({mutationFn:async()=>{let{data:t,error:n}=await r.client.$fetch(`/credential-oauth/link`,{method:`POST`,body:{providerId:e.name,callbackURL:window.location.href}});if(n)throw Error(n.message??K.credentials_connect_failed());if(!t?.url)throw Error(K.credentials_connect_failed());window.location.href=t.url}}),o=Ir({mutationFn:async()=>{await n.invoke(`console:credentialDelete`,{name:e.name})},onSuccess:()=>{i.invalidateQueries({queryKey:[`credential-global-status`]})}});return(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,onClick:e=>e.stopPropagation(),children:[(0,A.jsxs)(Gl,{gap:6,wrap:`nowrap`,children:[t?(0,A.jsx)(kC,{size:8,fill:`var(--mantine-color-teal-6)`,color:`var(--mantine-color-teal-6)`}):(0,A.jsx)(kC,{size:8,color:`var(--mantine-color-gray-5)`}),(0,A.jsx)(z,{size:`sm`,c:t?`teal.6`:`dimmed`,children:t?K.credentials_connected():K.credentials_not_connected()})]}),e.isOAuth2&&(t?(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,disabled:!r?.user,onClick:()=>a.mutate(),loading:a.isPending,children:K.credentials_reconnect()}),(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,color:`red`,onClick:()=>o.mutate(),loading:o.isPending,children:K.credentials_disconnect()})]}):(0,A.jsx)(cv,{size:`compact-xs`,disabled:!r?.user,onClick:()=>a.mutate(),loading:a.isPending,leftSection:(0,A.jsx)(qC,{size:12}),children:K.credentials_connect()})),a.isError&&(0,A.jsx)(gv,{color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:14}),p:`xs`,children:B(String(a.error?.message||a.error))})]})},O_n=({searchQuery:e=``})=>{let{meta:t,loading:n}=Vw(),r=Ng();_e();let{openCredentialUser:i}=mT(),a=(0,g.useMemo)(()=>{let e=t.credentialsMeta??{};return Object.entries(e).map(([e,t])=>({name:e,displayName:t.displayName||e,type:t.type||`singleton`,isOAuth2:!!t.oauth2}))},[t]),o=(0,g.useMemo)(()=>a.filter(e=>e.type===`wire`),[a]),{data:s,isLoading:c}=Fr({queryKey:[`credential-list-users`],queryFn:async()=>(await r.invoke(`console:credentialListUsers`)).users??[],enabled:o.length>0}),l=n||c,u=(0,g.useMemo)(()=>{if(!s)return[];let e=o.length;return s.map(t=>{let n=Object.values(t.credentials).filter(Boolean).length;return{...t,connectedCount:n,totalCount:e,isComplete:n===e}})},[s,o]),d=(0,g.useMemo)(()=>{if(!e)return u;let t=e.toLowerCase();return u.filter(e=>e.userId.toLowerCase().includes(t))},[u,e]),f=(0,g.useMemo)(()=>[{key:`userId`,header:`USER`,render:e=>(0,A.jsx)(z,{size:`sm`,ff:`monospace`,fw:500,children:B(e.userId)})},{key:`credentials`,header:`CREDENTIALS`,render:e=>(0,A.jsx)(Gl,{gap:6,wrap:`wrap`,children:o.map(t=>e.credentials[t.name]?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`teal`,leftSection:(0,A.jsx)(wC,{size:10}),children:B(t.displayName)},t.name):(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:B(t.displayName)},t.name))})},{key:`status`,header:`STATUS`,width:80,render:e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:e.isComplete?`teal`:`orange`,children:B(`${e.connectedCount}/${e.totalCount}`)})}],[o]);return l?(0,A.jsx)(ud,{h:`100%`,children:(0,A.jsx)(zl,{})}):o.length===0?(0,A.jsx)(A2,{icon:hw,title:K.credential_users_empty_title(),description:K.credential_users_empty_description(),docsHref:`https://pikku.dev/docs/core-features/credentials`}):(0,A.jsx)(j2,{title:`Credential Users`,icon:hw,docsHref:`https://pikku.dev/docs/core-features/credentials`,data:d,columns:f,getKey:e=>e.userId,onRowClick:e=>i(e.userId,{credentials:e.credentials,credentialsMeta:o.map(e=>({name:e.name,displayName:e.displayName,isOAuth2:e.isOAuth2}))}),emptyMessage:K.credential_users_empty_message()})},k_n=({searchQuery:e=``,emptyHero:t})=>{_e();let{meta:n}=Vw(),r=Ng(),i=ev(),a=ov(),o=(0,g.useMemo)(()=>{let e=n.credentialsMeta??{};return Object.entries(e).filter(([,e])=>e.type===`wire`&&!!e.oauth2).map(([e,t])=>({name:e,displayName:t.displayName||e,description:t.description}))},[n]),{data:s}=Fr({queryKey:[`credential-owners`],queryFn:async()=>{let e=await r.invoke(`console:getInstalledAddons`),t={};return await Promise.all((e??[]).map(async e=>{let n=await r.invoke(`console:getAddonInstalledPackage`,{packageName:e.packageName});for(let r of Object.keys(n?.credentials??{}))t[r]={packageName:e.packageName,namespace:e.namespace}})),t},enabled:o.length>0,staleTime:60*1e3}),c=(0,g.useMemo)(()=>{if(!e)return o;let t=e.toLowerCase();return o.filter(e=>e.name.toLowerCase().includes(t)||e.displayName.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||s?.[e.name]?.namespace.toLowerCase().includes(t))},[o,e,s]),l=(0,g.useMemo)(()=>new Map(c.map(e=>[e.name,e])),[c]),{data:u}=Fr({queryKey:[`linked-accounts`,i?.user?.id],enabled:!!i?.user,queryFn:async()=>{let{data:e}=await i.client.listAccounts();return new Set((e??[]).map(e=>e.providerId))}}),d=(0,g.useMemo)(()=>c.map(e=>{let t=s?.[e.name];return{name:e.name,displayName:e.displayName,description:e.description,badges:[{label:K.credentials_type_oauth2(),tone:`accent`}],tags:t?[t.namespace]:void 0}}),[c,s]);return(0,A.jsx)(j,{p:`md`,children:(0,A.jsxs)(Ip,{gap:`md`,children:[!i?.user&&(0,A.jsx)(gv,{color:`yellow`,variant:`light`,children:K.credentials_connections_signed_out()}),(0,A.jsx)(Z2,{items:d,loading:!1,icon:qC,emptyHero:t,emptyTitle:K.credentials_connections_empty_title(),emptyDescription:K.credentials_connections_empty_description(),docsHref:`https://pikku.dev/docs/core-features/credentials`,onOpen:e=>{let t=s?.[e];t&&a(`/addons?id=${encodeURIComponent(t.packageName)}&source=installed`)},metricSlot:e=>{let t=l.get(e);return t?(0,A.jsx)(A_n,{credential:t,isConnected:u?.has(e)??!1,disabled:!i?.user}):null}})]})})},A_n=({credential:e,isConnected:t,disabled:n})=>{_e();let r=ev(),i=Sr(),a=()=>i.invalidateQueries({queryKey:[`linked-accounts`]}),o=Ir({mutationFn:async()=>{let{data:t,error:n}=await r.client.$fetch(`/credential-oauth/link`,{method:`POST`,body:{providerId:e.name,callbackURL:window.location.href}});if(n)throw Error(n.message??K.credentials_connect_failed());if(!t?.url)throw Error(K.credentials_connect_failed());window.location.href=t.url}}),s=Ir({mutationFn:async()=>{let{error:t}=await r.client.unlinkAccount({providerId:e.name});if(t)throw Error(t.message??K.credentials_disconnect_failed())},onSuccess:a}),c=o.error??s.error;return(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,onClick:e=>e.stopPropagation(),children:[(0,A.jsxs)(Gl,{gap:6,wrap:`nowrap`,children:[t?(0,A.jsx)(kC,{size:8,fill:`var(--mantine-color-teal-6)`,color:`var(--mantine-color-teal-6)`}):(0,A.jsx)(kC,{size:8,color:`var(--mantine-color-gray-5)`}),(0,A.jsx)(z,{size:`sm`,c:t?`teal.6`:`dimmed`,children:t?K.credentials_connected():K.credentials_not_connected()})]}),t?(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,disabled:n,onClick:()=>o.mutate(),loading:o.isPending,children:K.credentials_reconnect()}),(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,color:`red`,disabled:n,onClick:()=>s.mutate(),loading:s.isPending,children:K.credentials_disconnect()})]}):(0,A.jsx)(cv,{size:`compact-xs`,disabled:n,onClick:()=>o.mutate(),loading:o.isPending,leftSection:(0,A.jsx)(qC,{size:12}),children:K.credentials_connect()}),c&&(0,A.jsx)(gv,{color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:14}),p:`xs`,children:B(String(c?.message||c))})]})},j_n=({emptyHero:e})=>{_e();let[t,n]=sv(),[r,i]=(0,g.useState)(``),a=t.get(`tab`),o=a===`users`||a===`connections`||a===`credentials`?a:`credentials`;return(0,A.jsx)(hT,{children:(0,A.jsx)(k2,{header:(0,A.jsx)(lT,{title:K.credentials_title(),description:K.credentials_description(),docsHref:`https://pikku.dev/docs/core-features/credentials`,search:{placeholder:o===`users`?K.credentials_search_users():o===`connections`?K.credentials_search_connections():K.credentials_search_credentials(),value:r,onChange:i,width:240},selection:{ariaLabel:K.credentials_tab_aria(),value:o,onChange:e=>{i(``),n({tab:e})},options:[{value:`credentials`,label:K.credentials_tab_global()},{value:`connections`,label:K.credentials_tab_connections()},{value:`users`,label:K.credentials_tab_users()}]}}),emptyPanelMessage:K.credentials_select_user(),hidePanel:o!==`users`,children:o===`users`?(0,A.jsx)(O_n,{searchQuery:r}):o===`connections`?(0,A.jsx)(k_n,{searchQuery:r,emptyHero:e}):(0,A.jsx)(E_n,{searchQuery:r,emptyHero:e})})})},M_n=[`scope-roles`],N_n=[`scope-declared`],P_n=e=>[`scope-user-roles`,e];function F_n(e,t){return{onMutate:async n=>{let r=P_n(n.userId);await e.cancelQueries({queryKey:r});let i=e.getQueryData(r);return i&&e.setQueryData(r,t(i,n)),{key:r,previous:i}},onError:(t,n,r)=>{r?.previous&&e.setQueryData(r.key,r.previous)},onSettled:(t,n,r)=>e.invalidateQueries({queryKey:P_n(r.userId)})}}var I_n=(e,t)=>e.includes(t)?e:[...e,t];function L_n(){let e=Ng();return Fr({queryKey:N_n,queryFn:async()=>await e.invoke(`console:scopeListDeclared`)})}function R_n(){let e=Ng();return Fr({queryKey:M_n,queryFn:async()=>await e.invoke(`console:scopeListRoles`)})}function z_n(e,t){let n=Ng();return Fr({queryKey:P_n(e??``),queryFn:async()=>await n.invoke(`console:scopeListUserRoles`,{userId:e}),enabled:!!e&&t})}function B_n(){let e=Ng(),t=Sr();return Ir({mutationFn:t=>e.invoke(`console:scopeCreateRole`,t),onSuccess:()=>t.invalidateQueries({queryKey:M_n})})}function V_n(){let e=Ng(),t=Sr();return Ir({mutationFn:t=>e.invoke(`console:scopeSetRoleScopes`,t),onSuccess:()=>t.invalidateQueries({queryKey:M_n})})}function H_n(){let e=Ng(),t=Sr();return Ir({mutationFn:t=>e.invoke(`console:scopeDeleteRole`,{name:t}),onSuccess:()=>t.invalidateQueries({queryKey:M_n})})}function U_n(){let e=Ng();return Ir({mutationFn:t=>e.invoke(`console:scopeAddUserToRole`,t),...F_n(Sr(),(e,{role:t})=>({...e,roles:e.roles.includes(t)?e.roles:[...e.roles,t]}))})}function W_n(){let e=Ng();return Ir({mutationFn:t=>e.invoke(`console:scopeRemoveUserFromRole`,t),...F_n(Sr(),(e,{role:t})=>({...e,roles:e.roles.filter(e=>e!==t)}))})}function G_n(){let e=Ng();return Ir({mutationFn:t=>e.invoke(`console:scopeAddScopeToUser`,t),...F_n(Sr(),(e,{scope:t})=>({...e,directScopes:I_n(e.directScopes,t),scopes:I_n(e.scopes,t)}))})}function K_n(){let e=Ng();return Ir({mutationFn:t=>e.invoke(`console:scopeRemoveScopeFromUser`,t),...F_n(Sr(),(e,{scope:t})=>({...e,directScopes:e.directScopes.filter(e=>e!==t)}))})}var q_n=(e,t,n)=>n||!e.declared&&!t,J_n=(e,t)=>t.startsWith(`${e}:`),Y_n=(e,t)=>e.some(e=>e===t||J_n(e,t)),X_n=(e,t)=>e.some(e=>e!==t&&J_n(e,t)),Z_n=(e,t)=>X_n(e,t)?e:e.includes(t)?e.filter(e=>e!==t):[...e.filter(e=>!J_n(t,e)),t],Q_n=(e,t)=>{let n=new Set(e),r=new Set(t);return{added:t.filter(e=>!n.has(e)),removed:e.filter(e=>!r.has(e))}},$_n=e=>e.map(t=>{let n=t.id.split(`:`),r=`${t.id}:`;return{...t,depth:n.length-1,segment:n[n.length-1],hasChildren:e.some(e=>e.id.startsWith(r))}}),evn=({scopes:e,selected:t,onChange:n,disabled:r=!1})=>{let i=$_n(e);return i.length===0?(0,A.jsx)(z,{c:`dimmed`,size:`sm`,py:`sm`,children:K.scopes_none_declared()}):(0,A.jsx)(Ip,{gap:2,children:i.map(e=>{let i=Y_n(t,e.id),a=X_n(t,e.id);return(0,A.jsx)(j,{pl:e.depth*20,children:(0,A.jsx)(Ebe,{checked:i,onChange:()=>n(Z_n(t,e.id)),disabled:q_n(e,i,r)||a,"aria-label":e.description?`${e.id} — ${e.description}`:e.id,label:(0,A.jsxs)(Gl,{gap:8,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,fw:e.hasChildren?600:400,children:B(e.segment)}),e.description&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:B(e.description)}),!e.declared&&(0,A.jsx)(z,{size:`xs`,c:`orange`,children:K.scopes_state_stale()})]})})},e.id)})})},tvn=({opened:e,onClose:t,userId:n,userLabel:r})=>{let i=z_n(n,e),a=R_n(),o=L_n(),s=U_n(),c=W_n(),l=G_n(),u=K_n(),d=i.data?.roles??[],f=i.data?.scopes??[],p=i.data?.directScopes??[],m=o.data?.scopes??[],h=(a.data?.roles??[]).map(e=>e.name).filter(e=>!d.includes(e)),g=l.error||u.error||s.error||c.error;return(0,A.jsx)(hv,{opened:e,onClose:t,position:`right`,size:420,title:K.scopes_user_roles_title({label:r}),children:i.isLoading?(0,A.jsx)(ud,{py:`xl`,children:(0,A.jsx)(zl,{})}):(0,A.jsxs)(Ip,{gap:`md`,children:[g&&(0,A.jsx)(gv,{color:`red`,variant:`light`,title:K.scopes_grant_failed(),children:B(g.message)}),(0,A.jsx)(z,{size:`sm`,fw:500,children:K.scopes_roles_title()}),d.length===0?(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.scopes_user_no_roles()}):(0,A.jsx)(Gl,{gap:8,children:d.map(e=>(0,A.jsx)(uv,{variant:`light`,size:`lg`,rightSection:(0,A.jsx)(bbe,{size:`xs`,"aria-label":K.scopes_revoke_role({role:e}),disabled:!n,onClick:()=>{n&&c.mutate({userId:n,role:e})}}),children:B(e)},e))}),(0,A.jsxs)(Sv,{position:`bottom-start`,disabled:h.length===0,children:[(0,A.jsx)(Sv.Target,{children:(0,A.jsx)(cv,{variant:`light`,size:`sm`,leftSection:(0,A.jsx)(CUe,{size:14}),disabled:h.length===0,w:`fit-content`,children:K.scopes_add_role()})}),(0,A.jsx)(Sv.Dropdown,{children:h.map(e=>(0,A.jsx)(Sv.Item,{onClick:()=>n&&s.mutate({userId:n,role:e}),children:B(e)},e))})]}),(0,A.jsx)(pv,{label:K.scopes_direct_scopes(),labelPosition:`left`}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.scopes_direct_scopes_hint()}),(0,A.jsx)(j,{mah:360,style:{overflowY:`auto`},children:(0,A.jsx)(evn,{scopes:m,selected:p,onChange:e=>{if(!n)return;let{added:t,removed:r}=Q_n(p,e);t.forEach(e=>l.mutate({userId:n,scope:e})),r.forEach(e=>u.mutate({userId:n,scope:e}))},disabled:!n})}),(0,A.jsx)(pv,{label:K.scopes_resolved_scopes(),labelPosition:`left`}),f.length===0?(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.scopes_no_resolved()}):(0,A.jsx)(j,{children:(0,A.jsx)(Gl,{gap:6,children:f.map(e=>(0,A.jsx)(uv,{variant:`outline`,color:`gray`,size:`sm`,styles:{label:{fontFamily:`monospace`}},children:B(e)},e))})})]})})},nvn=({user:e})=>e.banned===void 0?null:e.banned?(0,A.jsx)(uv,{color:`red`,variant:`light`,size:`sm`,children:K.users_status_banned()}):(0,A.jsx)(uv,{color:`gray`,variant:`light`,size:`sm`,children:K.users_status_active()}),rvn={ban:`admin:users:ban`,unban:`admin:users:ban`,revoke:`admin:users:sessions`,password:`admin:users:password`,remove:`admin:users:remove`},ivn=({user:e,onAction:t,onUnbanned:n})=>{let{can:r,setUserBanned:i}=$_(),a=r(rvn.ban),o=r(rvn.revoke),s=r(rvn.password),c=r(rvn.remove);return!a&&!o&&!s&&!c?null:(0,A.jsxs)(Sv,{position:`bottom-end`,withinPortal:!0,children:[(0,A.jsx)(Sv.Target,{children:(0,A.jsx)(dv,{variant:`subtle`,color:`gray`,"aria-label":K.users_more_actions(),children:(0,A.jsx)(LC,{size:16})})}),(0,A.jsxs)(Sv.Dropdown,{children:[a&&(e.banned?(0,A.jsx)(Sv.Item,{leftSection:(0,A.jsx)(WUe,{size:14}),onClick:async()=>{await i({userId:e.id,banned:!1}),n()},children:K.users_unban_action()}):(0,A.jsx)(Sv.Item,{leftSection:(0,A.jsx)(xC,{size:14}),onClick:()=>t(`ban`),children:K.users_ban_action()})),o&&(0,A.jsx)(Sv.Item,{leftSection:(0,A.jsx)(pUe,{size:14}),onClick:()=>t(`revoke`),children:K.users_revoke_sessions_action()}),s&&(0,A.jsx)(Sv.Item,{leftSection:(0,A.jsx)(WC,{size:14}),onClick:()=>t(`password`),children:K.users_set_password_action()}),c&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(Sv.Divider,{}),(0,A.jsx)(Sv.Item,{color:`red`,leftSection:(0,A.jsx)(VUe,{size:14}),onClick:()=>t(`remove`),children:K.users_remove_action()})]})]})]})},avn=({action:e,user:t,onClose:n,onDone:r})=>{let{setUserBanned:i,removeUser:a,revokeUserSessions:o,setUserPassword:s}=$_(),[c,l]=(0,g.useState)(``),[u,d]=(0,g.useState)(``),[f,p]=(0,g.useState)(null),[m,h]=(0,g.useState)(!1);(0,g.useEffect)(()=>{e&&(l(``),d(``),p(null))},[e,t?.id]);let _=t?.email??``,v=async()=>{if(t){h(!0),p(null);try{e===`ban`?await i({userId:t.id,banned:!0,...c.trim()?{reason:c.trim()}:{}}):e===`remove`?await a(t.id):e===`revoke`?await o(t.id):e===`password`&&await s(t.id,u),r(),n()}catch(e){p(e.message||K.users_action_failed())}finally{h(!1)}}},y=e===`ban`?K.users_ban_confirm_title():e===`remove`?K.users_remove_confirm_title():e===`revoke`?K.users_revoke_confirm_title():K.users_set_password_title(),b=e===`ban`?K.users_ban_confirm_body({email:_}):e===`remove`?K.users_remove_confirm_body({email:_}):e===`revoke`?K.users_revoke_confirm_body({email:_}):K.users_set_password_body({email:_}),x=e===`ban`?K.users_ban_action():e===`remove`?K.users_remove_action():e===`revoke`?K.users_revoke_sessions_action():K.users_set_password_action();return(0,A.jsx)(hv,{opened:e!==null&&t!==null,onClose:n,position:`right`,size:420,title:y,children:(0,A.jsxs)(Ip,{gap:`md`,children:[(0,A.jsx)(z,{size:`sm`,children:b}),e===`ban`&&(0,A.jsx)(yv,{label:K.users_ban_reason_label(),value:c,onChange:e=>l(e.currentTarget.value),autosize:!0,minRows:2}),e===`password`&&(0,A.jsx)(vv,{label:K.users_set_password_label(),value:u,onChange:e=>d(e.currentTarget.value)}),f&&(0,A.jsx)(gv,{color:`red`,variant:`light`,children:(0,A.jsx)(z,{size:`sm`,children:B(f)})}),(0,A.jsxs)(Gl,{justify:`flex-end`,gap:`sm`,children:[(0,A.jsx)(cv,{variant:`subtle`,onClick:n,disabled:m,children:K.common_cancel()}),(0,A.jsx)(cv,{color:e===`password`?void 0:`red`,loading:m,disabled:e===`password`&&u.length===0,onClick:v,children:x})]})]})})},ovn=({opened:e,onClose:t,onDone:n})=>{let{createUser:r}=$_(),[i,a]=(0,g.useState)(``),[o,s]=(0,g.useState)(``),[c,l]=(0,g.useState)(``),[u,d]=(0,g.useState)(null),[f,p]=(0,g.useState)(!1);return(0,g.useEffect)(()=>{e&&(a(``),s(``),l(``),d(null))},[e]),(0,A.jsx)(hv,{opened:e,onClose:t,position:`right`,size:420,title:K.users_create_title(),children:(0,A.jsxs)(Ip,{gap:`md`,children:[(0,A.jsx)(z,{size:`sm`,children:K.users_create_body()}),(0,A.jsx)(_v,{label:K.users_create_email_label(),value:i,onChange:e=>a(e.currentTarget.value),"data-testid":`create-user-email`}),(0,A.jsx)(_v,{label:K.users_create_name_label(),value:o,onChange:e=>s(e.currentTarget.value),"data-testid":`create-user-name`}),(0,A.jsx)(vv,{label:K.users_create_password_label(),value:c,onChange:e=>l(e.currentTarget.value),"data-testid":`create-user-password`}),u&&(0,A.jsx)(gv,{color:`red`,variant:`light`,children:(0,A.jsx)(z,{size:`sm`,children:B(u)})}),(0,A.jsxs)(Gl,{justify:`flex-end`,gap:`sm`,children:[(0,A.jsx)(cv,{variant:`subtle`,onClick:t,disabled:f,children:K.common_cancel()}),(0,A.jsx)(cv,{loading:f,disabled:i.trim().length===0||c.length===0,onClick:async()=>{p(!0),d(null);try{await r({email:i.trim(),password:c,...o.trim()?{name:o.trim()}:{}}),n(),t()}catch(e){d(e.message||K.users_action_failed())}finally{p(!1)}},"data-testid":`create-user-submit`,children:K.users_create_action()})]})]})})},svn=()=>{_e();let{listUsers:e,can:t}=$_(),[n,r]=(0,g.useState)(``),[i,a]=(0,g.useState)(!1),[o]=bi(n,250),[s,c]=(0,g.useState)(null),[l,u]=(0,g.useState)(null),d=Fr({queryKey:[`admin-users`,o],queryFn:()=>e(o||void 0)}),f=d.data??[],p=()=>{d.refetch()};return(0,A.jsxs)(uT,{header:(0,A.jsx)(lT,{title:K.users_title(),docsHref:`https://pikku.dev/docs/core-features/permission-guards`,search:{placeholder:K.users_search_placeholder(),value:n,onChange:r,width:240},lead:t(`admin:users:create`)?(0,A.jsx)(cv,{size:`compact-sm`,leftSection:(0,A.jsx)(qUe,{size:14}),onClick:()=>a(!0),"data-testid":`create-user`,children:K.users_create_action()}):void 0}),children:[d.error?(0,A.jsx)(gv,{icon:(0,A.jsx)(pw,{size:16}),color:`red`,variant:`light`,children:(0,A.jsx)(z,{size:`sm`,children:B(d.error.message)})}):(0,A.jsx)(j2,{icon:mw,title:K.users_title(),docsHref:`https://pikku.dev/docs/core-features/permission-guards`,data:f,getKey:e=>e.id,loading:d.isLoading,externalSearch:n,emptyTitle:K.users_empty(),columns:[{key:`user`,header:K.users_col_user(),render:e=>(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(Cbe,{src:e.image??void 0,radius:`xl`,size:`sm`,children:(e.name??e.email).slice(0,1).toUpperCase()}),(0,A.jsxs)(j,{style:{minWidth:0},children:[e.name&&(0,A.jsx)(z,{size:`sm`,fw:500,truncate:!0,children:B(e.name)}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,truncate:!0,children:B(e.email)})]})]})},...f.some(e=>e.banned!==void 0)?[{key:`status`,header:K.users_col_status(),render:e=>(0,A.jsx)(nvn,{user:e})}]:[],{key:`created`,header:K.users_col_created(),render:e=>(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:e.createdAt?B(new Date(e.createdAt).toLocaleDateString()):K.users_empty_created()})},{key:`actions`,header:``,align:`right`,render:e=>(0,A.jsxs)(Gl,{gap:6,justify:`flex-end`,wrap:`nowrap`,children:[(0,A.jsx)(cv,{size:`compact-sm`,variant:`subtle`,leftSection:(0,A.jsx)(lw,{size:14}),onClick:()=>c({id:e.id,label:e.email??e.id}),children:K.users_roles_action()}),(0,A.jsx)(ivn,{user:e,onAction:t=>u({action:t,user:e}),onUnbanned:p})]})}]}),(0,A.jsx)(tvn,{opened:s!==null,onClose:()=>c(null),userId:s?.id,userLabel:s?.label??``}),(0,A.jsx)(ovn,{opened:i,onClose:()=>a(!1),onDone:p}),(0,A.jsx)(avn,{action:l?.action??null,user:l?.user??null,onClose:()=>u(null),onDone:p})]})},cvn=({opened:e,onClose:t,role:n,declaredScopes:r})=>{let i=n===null,[a,o]=(0,g.useState)(``),[s,c]=(0,g.useState)(``),[l,u]=(0,g.useState)([]),[d,f]=(0,g.useState)(!1),[p,m]=(0,g.useState)(null),h=B_n(),_=V_n(),v=H_n();(0,g.useEffect)(()=>{e&&(o(n?.name??``),c(n?.description??``),u(n?.scopes??[]),f(!1),m(null))},[e,n]);let y=h.isPending||_.isPending||v.isPending,b=async()=>{if(i){if(a.trim().length===0){m(K.scopes_name_required());return}await h.mutateAsync({name:a.trim(),description:s.trim()||void 0,scopes:l})}else await _.mutateAsync({name:n.name,scopes:l});t()},x=async()=>{if(!i){if(!d){f(!0);return}await v.mutateAsync(n.name),t()}},S=h.error||_.error||v.error;return(0,A.jsx)(hv,{opened:e,onClose:t,position:`right`,size:480,title:i?K.scopes_create_role():K.scopes_edit_role({name:n.name}),children:(0,A.jsxs)(Ip,{gap:`md`,children:[(0,A.jsx)(_v,{label:K.scopes_name(),placeholder:K.scopes_name_placeholder(),value:a,onChange:e=>{o(e.currentTarget.value),p&&m(null)},disabled:!i,withAsterisk:i,error:p,"data-autofocus":i}),(0,A.jsx)(yv,{label:K.scopes_col_description(),placeholder:K.scopes_description_placeholder(),value:s,onChange:e=>c(e.currentTarget.value),disabled:!i,description:i?void 0:K.scopes_description_locked(),autosize:!0,minRows:1}),(0,A.jsx)(pv,{label:K.scopes_in_this_role(),labelPosition:`left`}),(0,A.jsx)(j,{mah:360,style:{overflowY:`auto`},children:(0,A.jsx)(evn,{scopes:r,selected:l,onChange:u})}),S&&(0,A.jsx)(z,{c:`red`,size:`sm`,children:B(S.message)}),(0,A.jsxs)(Gl,{justify:`space-between`,mt:`sm`,children:[i?(0,A.jsx)(`span`,{}):(0,A.jsx)(cv,{color:`red`,variant:d?`filled`:`subtle`,leftSection:(0,A.jsx)(VUe,{size:14}),onClick:x,loading:v.isPending,children:d?K.scopes_delete_confirm({name:n.name}):K.scopes_delete_role()}),(0,A.jsx)(cv,{onClick:b,loading:y&&!v.isPending,children:K.common_save()})]})]})})},lvn=e=>e instanceof Eg&&e.status===403,uvn=`https://pikku.dev/docs/authentication/scopes`,dvn=({search:e,editing:t,drawerOpen:n,onOpenRole:r,onCloseDrawer:i})=>{let a=R_n(),o=L_n(),s=a.data?.roles??[],c=o.data?.scopes??[],l=a.error||o.error;return l?lvn(l)?(0,A.jsx)(gv,{color:`yellow`,title:K.scopes_roles_forbidden_title(),children:K.scopes_roles_forbidden_body()}):(0,A.jsx)(gv,{color:`red`,title:K.scopes_roles_load_error(),children:l instanceof Error?B(l.message):null}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(j2,{icon:XUe,title:K.scopes_roles_title(),docsHref:uvn,data:s,getKey:e=>e.name,onRowClick:e=>r(e),loading:a.isLoading,externalSearch:e,searchFilter:(e,t)=>e.name.toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t),emptyTitle:K.scopes_no_roles_title(),emptyDescription:K.scopes_no_roles_description(),columns:[{key:`name`,header:K.scopes_col_role(),render:e=>(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e.name)})},{key:`description`,header:K.scopes_col_description(),render:e=>(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description||`—`)})},{key:`scopes`,header:K.scopes_col_scopes(),align:`right`,width:100,render:e=>(0,A.jsx)(uv,{variant:`light`,color:`gray`,size:`sm`,children:e.scopes.length})}]}),(0,A.jsx)(cvn,{opened:n,onClose:i,role:t,declaredScopes:c})]})},fvn=`https://pikku.dev/docs/authentication/scopes`,pvn=({search:e})=>{let t=L_n(),n=$_n(t.data?.scopes??[]);if(t.isError){let e=t.error;return lvn(e)?(0,A.jsx)(gv,{color:`yellow`,title:K.scopes_vocab_forbidden_title(),children:K.scopes_vocab_forbidden_body()}):(0,A.jsx)(gv,{color:`red`,title:K.scopes_vocab_load_error(),children:e instanceof Error?B(e.message):null})}return(0,A.jsx)(j2,{icon:uw,title:K.scopes_vocab_title(),docsHref:fvn,data:n,getKey:e=>e.id,loading:t.isLoading,externalSearch:e,searchFilter:(e,t)=>e.id.toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t),emptyTitle:K.scopes_no_declared_title(),emptyDescription:K.scopes_no_declared_description(),columns:[{key:`id`,header:K.scopes_col_scope(),render:e=>(0,A.jsx)(z,{size:`sm`,ff:`monospace`,fw:e.hasChildren?600:400,c:e.declared?void 0:`dimmed`,children:B(e.id)})},{key:`description`,header:K.scopes_col_description(),render:e=>(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description||`—`)})},{key:`state`,header:K.scopes_col_state(),align:`right`,width:120,render:e=>e.declared?(0,A.jsx)(Gl,{justify:`flex-end`,gap:6,children:(0,A.jsx)(uv,{variant:`dot`,color:`green`,size:`sm`,children:K.scopes_state_declared()})}):(0,A.jsx)(uv,{variant:`light`,color:`orange`,size:`sm`,children:K.scopes_state_stale()})}]})},mvn=()=>{_e();let[e,t]=(0,g.useState)(`roles`),[n,r]=(0,g.useState)(``),[i,a]=(0,g.useState)(null),[o,s]=(0,g.useState)(!1),c=e=>{a(e),s(!0)},l=e=>{t(e),r(``)};return(0,A.jsx)(uT,{header:(0,A.jsx)(lT,{title:K.scopes_page_title(),description:e===`roles`?K.scopes_page_desc_roles():K.scopes_page_desc_vocab(),docsHref:`https://pikku.dev/docs/core-features/permission-guards`,lead:e===`roles`?(0,A.jsx)(cv,{size:`xs`,leftSection:(0,A.jsx)(CUe,{size:14}),onClick:()=>c(null),children:K.scopes_create_role()}):void 0,filters:(0,A.jsx)(_p,{size:`sm`,value:e,onChange:e=>l(e),data:[{label:K.scopes_tab_roles(),value:`roles`},{label:K.scopes_tab_scopes(),value:`scopes`}]}),search:{placeholder:e===`roles`?K.scopes_search_roles():K.scopes_search_scopes(),value:n,onChange:r,width:240}}),children:e===`roles`?(0,A.jsx)(dvn,{search:n,editing:i,drawerOpen:o,onOpenRole:c,onCloseDrawer:()=>s(!1)}):(0,A.jsx)(pvn,{search:n})})},hvn={functionNode:JN,wiringNode:tit,channelNode:git,decisionNode:_it,sleepNode:vit,inlineNode:bit,genericNode:Rit,branchNode:YN,fanoutNode:XN,returnNode:Cit,cancelNode:Tit,switchNode:Dit,arrayPredicateNode:kit,filterNode:jit,parallelNode:ZN,channelWiringNode:Pit,setNode:Iit},gvn={elk:Bit},_vn=({workflow:e})=>{let{fitView:t}=Ztt(),{nodes:n,edges:r}=(0,g.useMemo)(()=>Wit(e),[e]),i=Jit(n,r),[a,o]=xrt([]),[s,c]=Srt([]);return(0,g.useEffect)(()=>{i.nodes.length>0&&(o(i.nodes),c(i.edges),setTimeout(()=>{t({padding:.2}),setTimeout(()=>{window.__PIKKU_RENDER_READY__=!0},100)},50))},[i,o,c,t]),(0,A.jsx)(LN,{nodes:a,edges:s,nodeTypes:hvn,edgeTypes:gvn,defaultEdgeOptions:{style:{stroke:`#c0c0c0`,strokeWidth:1.5,strokeDasharray:`6 4`},animated:!1,markerEnd:{type:eN.ArrowClosed,color:`#c0c0c0`,width:16,height:16}},zoomOnScroll:!1,preventScrolling:!0,nodesConnectable:!1,nodesDraggable:!1,panOnDrag:!1,proOptions:{hideAttribution:!0},children:(0,A.jsx)(Jrt,{color:`transparent`,variant:VN.Dots,size:0})})},vvn=()=>{let[e,t]=(0,g.useState)(null);return(0,g.useEffect)(()=>{window.__PIKKU_RENDER_DATA__&&t(window.__PIKKU_RENDER_DATA__);let e=()=>{window.__PIKKU_RENDER_DATA__&&t(window.__PIKKU_RENDER_DATA__)};return window.addEventListener(`pikku-render-data`,e),()=>window.removeEventListener(`pikku-render-data`,e)},[]),e?(0,A.jsx)(ao,{defaultColorScheme:`dark`,theme:{primaryColor:`violet`},children:(0,A.jsxs)(j,{style:{width:`100vw`,height:`100vh`,background:`#1a1b1e`},children:[(0,A.jsx)(`style`,{children:`
|
|
254
|
+
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return bmn(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=_hn.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function Dhn(){return{exit:{taskListCheckValueChecked:khn,taskListCheckValueUnchecked:khn,paragraph:Ahn}}}function Ohn(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:jhn}}}function khn(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function Ahn(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function jhn(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=_hn.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function Mhn(){return[Rpn(),cmn(),pmn(),vhn(),Dhn()]}function Nhn(e){return{extensions:[zpn(),lmn(e),mmn(),Ehn(e),Ohn()]}}var Phn={tokenize:Khn,partial:!0},Fhn={tokenize:qhn,partial:!0},Ihn={tokenize:Jhn,partial:!0},Lhn={tokenize:Yhn,partial:!0},Rhn={tokenize:Xhn,partial:!0},zhn={name:`wwwAutolink`,tokenize:Whn,previous:Zhn},Bhn={name:`protocolAutolink`,tokenize:Ghn,previous:Qhn},Q9={name:`emailAutolink`,tokenize:Uhn,previous:$hn},$9={};function Vhn(){return{text:$9}}for(var Hhn=48;Hhn<123;)$9[Hhn]=Q9,Hhn++,Hhn===58?Hhn=65:Hhn===91&&(Hhn=97);$9[43]=Q9,$9[45]=Q9,$9[46]=Q9,$9[95]=Q9,$9[72]=[Q9,Bhn],$9[104]=[Q9,Bhn],$9[87]=[Q9,zhn],$9[119]=[Q9,zhn];function Uhn(e,t,n){let r=this,i,a;return o;function o(t){return!egn(t)||!$hn.call(r,r.previous)||tgn(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return egn(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(Rhn,u,l)(t):t===45||t===95||U9(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&H9(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function Whn(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!Zhn.call(r,r.previous)||tgn(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(Phn,e.attempt(Fhn,e.attempt(Ihn,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function Ghn(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&Qhn.call(r,r.previous)&&!tgn(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(H9(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Gcn(t)||G9(t)||Xcn(t)||Ycn(t)?n(t):e.attempt(Fhn,e.attempt(Ihn,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function Khn(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function qhn(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(Lhn,c,s)(t):t===null||G9(t)||Xcn(t)||t!==45&&Ycn(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function Jhn(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(Lhn,t,a)(o):o===null||G9(o)||Xcn(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function Yhn(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||G9(o)||Xcn(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||G9(e)||Xcn(e)?t(e):r(e)}function a(e){return H9(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):H9(t)?(e.consume(t),o):n(t)}}function Xhn(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return U9(e)?n(e):t(e)}}function Zhn(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||G9(e)}function Qhn(e){return!H9(e)}function $hn(e){return!(e===47||egn(e))}function egn(e){return e===43||e===45||e===46||e===95||U9(e)}function tgn(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var ngn={tokenize:ugn,partial:!0};function rgn(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:sgn,continuation:{tokenize:cgn},exit:lgn}},text:{91:{name:`gfmFootnoteCall`,tokenize:ogn},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:ign,resolveTo:agn}}}}function ign(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=V9(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function agn(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function ogn(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||G9(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(V9(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return G9(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function sgn(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||G9(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=V9(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return G9(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),J9(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function cgn(e,t,n){return e.check(fln,t,e.attempt(ngn,t,n))}function lgn(e){e.exit(`gfmFootnoteDefinition`)}function ugn(e,t,n){let r=this;return J9(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function dgn(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&z9(o,o.length,0,aln(s,e.slice(r+1,n),t)),z9(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),z9(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=iln(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=iln(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var fgn=class{constructor(){this.map=[]}add(e,t,n){pgn(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function pgn(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function mgn(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function hgn(){return{flow:{null:{name:`table`,tokenize:ggn,resolveAll:_gn}}}}function ggn(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):W9(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):K9(t)?J9(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||G9(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,K9(t)?J9(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return K9(t)?J9(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||W9(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return K9(t)?J9(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||W9(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||W9(n)?(e.exit(`tableRow`),t(n)):K9(n)?J9(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||G9(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function _gn(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new fgn;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(ygn(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=vgn(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=vgn(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=vgn(f,t,o,i,n,d)):(o[0]=o[1],d=vgn(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&ygn(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=mgn(t.events,n))}return e}function vgn(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},bgn(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=bgn(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=bgn(t.events,n[2]),a=bgn(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},bgn(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function ygn(e,t,n,r,i){let a=[],o=bgn(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function bgn(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var xgn={name:`tasklistCheck`,tokenize:Cgn};function Sgn(){return{text:{91:xgn}}}function Cgn(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return G9(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return W9(r)?t(r):K9(r)?e.check({tokenize:wgn},t,n)(r):n(r)}}function wgn(e,t,n){return J9(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Tgn(e){return Bcn([Vhn(),rgn(),dgn(e),hgn(),Sgn()])}var Egn={};function Dgn(e){let t=this,n=e||Egn,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Tgn(n)),a.push(Mhn()),o.push(Nhn(n))}var Ogn=({toolCallId:e,toolName:t,args:n,result:r,status:i,addResult:a})=>{let[o,s]=(0,g.useState)(!1);_e();let{handleApproval:c,pendingApprovals:l}=$on(),u=(()=>{if(!r)return null;let e=typeof r==`string`?(()=>{try{return JSON.parse(r)}catch{return null}})():r;return e&&typeof e==`object`&&e.__credentialRequired?e:null})(),d=l.find(t=>t.toolCallId===e&&t.type===`credential-request`),f=!!u||!!d,p=i.type===`requires-action`&&!f,m=n?.__approvalReason??l.find(t=>t.toolCallId===e&&t.type!==`credential-request`)?.reason,h={...n};delete h.__approvalReason;let[_,v]=(0,g.useState)(null),[y,b]=(0,g.useState)(!1),x=(0,g.useRef)(null);(0,g.useEffect)(()=>()=>{x.current&&=(clearInterval(x.current),null)},[]);let S=async()=>{v(`approved`),await c(e,!0)&&a?.({approved:!0})},C=async()=>{v(`denied`),await c(e,!1)&&a?.({approved:!1})};if(p&&!_)return(0,A.jsxs)(wl,{withBorder:!0,radius:`sm`,p:`sm`,my:4,bg:`var(--mantine-color-yellow-light)`,children:[(0,A.jsxs)(Gl,{gap:`xs`,mb:`xs`,children:[(0,A.jsx)(cw,{size:14,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{size:`xs`,fw:600,children:K.agent_approval_required()})]}),m&&(0,A.jsx)(z,{size:`xs`,mb:4,children:B(m)}),(0,A.jsxs)(j,{component:`p`,style:{fontSize:`var(--mantine-font-size-xs)`,color:`var(--mantine-color-dimmed)`,margin:`0 0 4px`},children:[K.agent_approval_agent_wants_to_call(),` `,(0,A.jsx)(dd,{children:B(t)})]}),(0,A.jsx)(dd,{block:!0,style:{fontSize:11,marginBottom:8},children:B(JSON.stringify(h,null,2))}),(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(cv,{size:`xs`,color:`green`,variant:`light`,onClick:S,children:K.agent_approval_approve()}),(0,A.jsx)(cv,{size:`xs`,color:`red`,variant:`light`,onClick:C,children:K.agent_approval_deny()})]})]});if(p&&_)return(0,A.jsx)(wl,{withBorder:!0,radius:`sm`,p:`sm`,my:4,children:(0,A.jsxs)(Gl,{gap:`xs`,mb:`xs`,children:[(0,A.jsx)(cw,{size:14,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{size:`xs`,fw:600,children:B(t)}),(0,A.jsx)(vT,{type:`label`,color:_===`approved`?`green`:`red`,children:_===`approved`?K.agent_status_approved():K.agent_status_denied()})]})});if(f&&!_){let n=u??d,r=Mg(),i=n?.connectUrl,o=i?.startsWith(`/`)?`${r}${i}`:i,s=async()=>{v(`approved`),await c(e,!0)&&a?.({approved:!0})};return(0,A.jsxs)(wl,{withBorder:!0,radius:`sm`,p:`sm`,my:4,bg:`var(--mantine-color-orange-light)`,children:[(0,A.jsxs)(Gl,{gap:`xs`,mb:`xs`,children:[(0,A.jsx)(gw,{size:14,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{size:`xs`,fw:600,children:B(t)}),(0,A.jsx)(vT,{type:`label`,color:`orange`,children:K.agent_credential_required()})]}),(0,A.jsxs)(j,{component:`p`,style:{fontSize:`var(--mantine-font-size-sm)`,margin:`0 0 var(--mantine-spacing-xs)`},children:[K.agent_credential_action_requires(),` `,(0,A.jsx)(`strong`,{children:B(n?.credentialName??`OAuth`)}),` `,K.agent_credential_to_be_connected()]}),y&&(0,A.jsx)(z,{size:`xs`,c:`red`,mb:`xs`,children:B(`Popup blocked — allow popups for this site, then click Connect again.`)}),(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(cv,{size:`xs`,variant:`light`,onClick:()=>{if(n?.credentialType===`oauth2`&&o){let e=window.open(o,`oauth-connect`,`width=600,height=700`);if(!e){b(!0);return}x.current=setInterval(()=>{e.closed&&(clearInterval(x.current),x.current=null,s())},500)}else s()},children:B(`Connect ${n?.credentialName??`OAuth`}`)}),(0,A.jsx)(cv,{size:`xs`,color:`gray`,variant:`light`,onClick:async()=>{v(`denied`),await c(e,!1)&&a?.({approved:!1})},children:K.agent_credential_ignore()})]})]})}return f&&_?(0,A.jsx)(wl,{withBorder:!0,radius:`sm`,p:`sm`,my:4,children:(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(gw,{size:14,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{size:`xs`,fw:600,children:B(t)}),(0,A.jsx)(vT,{type:`label`,color:_===`approved`?`green`:`gray`,children:_===`approved`?K.agent_credential_connected():K.agent_credential_ignored()})]})}):(0,A.jsxs)(wl,{withBorder:!0,radius:`sm`,p:`xs`,my:4,children:[(0,A.jsx)(Cl,{onClick:()=>s(e=>!e),style:{width:`100%`},children:(0,A.jsxs)(Gl,{gap:`xs`,children:[o?(0,A.jsx)(TC,{size:12}):(0,A.jsx)(DC,{size:12}),(0,A.jsx)(gw,{size:12}),(0,A.jsx)(z,{size:`xs`,fw:500,ff:`monospace`,children:B(t)}),i.type===`running`&&(0,A.jsx)(zl,{size:10}),i.type===`error`&&(0,A.jsx)(vT,{type:`label`,color:`red`,children:K.agent_toolcall_error()}),i.type===`denied`&&(0,A.jsx)(vT,{type:`label`,color:`red`,children:K.agent_toolcall_denied()}),i.type===`completed`&&(0,A.jsx)(vT,{type:`label`,color:`green`,children:K.agent_toolcall_done()})]})}),(0,A.jsx)(Ko,{expanded:o,children:(0,A.jsxs)(Ip,{gap:4,mt:`xs`,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.agent_toolcall_arguments()}),(0,A.jsx)(dd,{block:!0,style:{fontSize:11},children:B(JSON.stringify(h,null,2))}),r!==void 0&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.agent_toolcall_result()}),(0,A.jsx)(dd,{block:!0,style:{fontSize:11},children:B(typeof r==`string`?r:JSON.stringify(r,null,2))})]})]})})]})},kgn=()=>(_e(),(0,A.jsx)(j,{className:qw.chatMessageRight,children:(0,A.jsxs)(j,{maw:`80%`,children:[(0,A.jsxs)(Gl,{gap:6,mb:4,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.agent_message_you()}),(0,A.jsx)(YUe,{size:14,color:`var(--mantine-color-dimmed)`})]}),(0,A.jsx)(wl,{p:`sm`,radius:`md`,style:{backgroundColor:`var(--mantine-color-default-hover)`},children:(0,A.jsx)(h8t.Content,{components:{Text:({text:e})=>(0,A.jsx)(z,{size:`sm`,style:{whiteSpace:`pre-wrap`},children:B(e)})}})})]})})),Agn=()=>(_e(),(0,A.jsx)(j,{"data-testid":`assistant-block`,className:qw.chatMessageLeft,children:(0,A.jsxs)(j,{maw:`80%`,children:[(0,A.jsxs)(Gl,{gap:6,mb:4,children:[(0,A.jsx)(CC,{size:14,color:`var(--mantine-color-dimmed)`}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.agent_message_assistant()})]}),(0,A.jsxs)(wl,{p:`sm`,radius:`md`,bg:`var(--mantine-color-default-hover)`,children:[(0,A.jsx)(h8t.Content,{components:{Text:({text:e})=>(0,A.jsx)(cm,{p:0,m:0,fz:`sm`,children:(0,A.jsx)(Cpn,{remarkPlugins:[Dgn],children:e})}),tools:{Fallback:e=>(0,A.jsx)(Ogn,{toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,result:e.result,status:nsn(e.status,e.result),argsText:e.argsText,addResult:e.addResult})}}}),(0,A.jsx)(h8t.If,{last:!0,children:(0,A.jsx)(Z8t.If,{running:!0,children:(0,A.jsxs)(Gl,{gap:`xs`,mt:`xs`,children:[(0,A.jsx)(zl,{size:12}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.agent_message_thinking()})]})})})]})]})})),jgn=({disabled:e})=>(_e(),(0,A.jsx)(j,{py:`sm`,pb:`md`,children:(0,A.jsx)(Td,{size:`md`,children:(0,A.jsx)(kpn,{component:g6t.Root,input:(0,A.jsx)(g6t.Input,{className:Opn.composerInput,placeholder:e?K.agent_composer_approval_placeholder():K.agent_composer_message_placeholder(),rows:1,disabled:e??!1}),send:(0,A.jsx)(g6t.Send,{className:Opn.sendButton,disabled:e??!1,children:(0,A.jsx)(UHe,{size:15})})})})})),Mgn=()=>{_e();let{agentId:e,threadId:t,refetchThreads:n,model:r,temperature:i,dbMessages:a}=iHt(),o=(0,g.useMemo)(()=>a&&a.length?rsn(a):void 0,[a]),s=(0,g.useCallback)(()=>{n()},[n]),c=`${Mg()}/rpc/agent`,l=pbe(),u=(0,g.useMemo)(()=>l?.target?{[tv]:l.target.id}:void 0,[l?.target]),d=(0,g.useMemo)(()=>crypto.randomUUID(),[]),{runtime:f,isAwaitingApproval:p,pendingApprovals:m,handleApproval:h}=osn({api:c,agentName:e,threadId:t??d,resourceId:`default`,onFinish:s,model:r,temperature:i,headers:u,credentials:`include`,initialMessages:o});return(0,A.jsx)(Qon.Provider,{value:{pendingApprovals:m,handleApproval:h},children:(0,A.jsx)(n4t,{runtime:f,children:(0,A.jsx)(Ip,{gap:0,className:qw.flexColumn,children:(0,A.jsxs)(Z8t.Root,{style:{display:`flex`,flexDirection:`column`,flex:1,minHeight:0},children:[(0,A.jsx)(Z8t.Viewport,{asChild:!0,children:(0,A.jsx)(Sl,{style:{flex:1,minHeight:0},type:`auto`,children:(0,A.jsx)(Td,{size:`md`,p:`md`,pb:`xl`,children:(0,A.jsxs)(Ip,{gap:`md`,children:[(0,A.jsx)(Z8t.Empty,{children:(0,A.jsx)(ud,{style:{flex:1,minHeight:300},children:(0,A.jsxs)(Ip,{align:`center`,gap:`xs`,children:[(0,A.jsx)(CC,{size:40,color:`var(--mantine-color-default-border)`}),(0,A.jsx)(z,{c:`dimmed`,ta:`center`,children:t?K.agent_empty_send_message():K.agent_empty_start_conversation()})]})})}),(0,A.jsx)(Z8t.Messages,{components:{UserMessage:kgn,AssistantMessage:Agn}})]})})})}),(0,A.jsx)(jgn,{disabled:p})]})})})})};function Ngn(e){let t=Ng(),n=Sr(),r=Fr({queryKey:[`agent-credentials`,e],queryFn:async()=>await t.invoke(`console:agentCredentialCheck`,{agentName:e}),enabled:!!e});return{requirements:r.data?.requirements??[],allConnected:r.data?.allConnected??!0,loading:r.isLoading,error:r.error,isError:r.isError,refetch:()=>{n.invalidateQueries({queryKey:[`agent-credentials`,e]})}}}var Pgn=({requirements:e,onRefresh:t})=>{_e();let n=Mg(),r=e.filter(e=>!e.connected),i=e=>{let r=`${n}/credentials/${e}/connect`,i=window.open(r,`oauth-connect`,`width=600,height=700`),a=setInterval(()=>{(!i||i.closed)&&(clearInterval(a),t())},500)};return(0,A.jsx)(ud,{h:`100%`,p:`xl`,children:(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`xl`,maw:480,w:`100%`,children:(0,A.jsxs)(Ip,{gap:`md`,align:`center`,children:[(0,A.jsx)(WC,{size:32,color:`var(--mantine-color-orange-6)`}),(0,A.jsx)(z,{fw:600,size:`lg`,ta:`center`,children:K.agent_playground_connect_accounts()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ta:`center`,children:K.agent_playground_credentials_required()}),(0,A.jsx)(Ip,{gap:`xs`,w:`100%`,children:r.map(e=>(0,A.jsxs)(Gl,{justify:`space-between`,p:`sm`,style:{border:`1px solid var(--mantine-color-default-border)`,borderRadius:`var(--mantine-radius-sm)`},children:[(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(qC,{size:16,color:`var(--mantine-color-dimmed)`}),(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e.displayName)})]}),(0,A.jsx)(cv,{size:`xs`,variant:`light`,onClick:()=>i(e.credentialName),children:K.agent_playground_connect()})]},e.credentialName))})]})})})},Fgn=({agentId:e,agentData:t,agentItems:n,onAgentSelect:r})=>{_e();let{openAgent:i}=mT(),{threadId:a,setThreadId:o,threads:s,createNewThread:c,refetchThreads:l,dbMessages:u}=iHt(),d=v2(),[f,p]=(0,g.useState)(!1),[m,h]=(0,g.useState)(``),{requirements:_,allConnected:v,loading:y,refetch:b}=Ngn(e);(0,g.useEffect)(()=>{t&&i(e,t)},[e,t,i]);let x=e=>{d.mutate(e,{onSuccess:()=>{a===e&&o(null),l()}})},S=(0,g.useMemo)(()=>{if(!m)return n;let e=m.toLowerCase();return n.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[n,m]),C=e=>{p(!1),h(``),r(e)},w=(0,A.jsxs)(Ll,{opened:f,onChange:p,width:280,position:`bottom-start`,shadow:`md`,zIndex:1e4,children:[(0,A.jsx)(Ll.Target,{children:(0,A.jsxs)(Cl,{px:`xs`,py:4,style:{maxWidth:260,display:`flex`,alignItems:`center`,gap:4,borderRadius:6},onClick:()=>p(e=>!e),children:[(0,A.jsx)(z,{size:`sm`,fw:600,style:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:B(e)}),(0,A.jsx)(TC,{size:14,style:{flexShrink:0}})]})}),(0,A.jsxs)(Ll.Dropdown,{p:0,children:[(0,A.jsx)(_v,{placeholder:K.agent_playground_search_agents(),leftSection:(0,A.jsx)(ow,{size:14}),value:m,onChange:e=>h(e.currentTarget.value),styles:{input:{border:`none`,borderBottom:`1px solid var(--mantine-color-default-border)`,borderRadius:0}}}),(0,A.jsx)(Sl.Autosize,{mah:300,children:(0,A.jsxs)(Ip,{gap:0,children:[S.map(t=>(0,A.jsxs)(Cl,{onClick:()=>C(t.name),py:`xs`,px:`sm`,style:{display:`flex`,alignItems:`center`,gap:8,backgroundColor:t.name===e?`var(--mantine-color-green-light)`:void 0},children:[t.name===e?(0,A.jsx)(wC,{size:14,color:`var(--mantine-color-green-6)`}):(0,A.jsx)(j,{w:14}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(z,{size:`sm`,fw:t.name===e?500:400,children:B(t.name)}),t.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(t.description)})]})]},t.name)),S.length===0&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ta:`center`,py:`md`,children:K.common_no_results()})]})})]})]}),T=(0,A.jsx)(JHt,{title:`Conversations`,runs:s,selectedId:a,onSelect:o,onClear:()=>o(null),onNewClick:c,newButtonLabel:K.agent_playground_new_conversation(),emptyMessage:K.agent_playground_no_conversations(),statusFilters:[],onDelete:x});return(0,A.jsx)(YHt,{lead:w,storageKey:`agent`,listLabel:K.pane_conversations(),runsPanel:T,runsPanelVisible:!0,emptyPanelMessage:K.agent_playground_panel_message(),children:(0,A.jsx)(j,{style:{height:`100%`,display:`flex`,flexDirection:`column`},children:(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:!y&&!v?(0,A.jsx)(Pgn,{requirements:_,onRefresh:b}):a!=null&&u===void 0?(0,A.jsx)(ud,{h:`100%`,children:(0,A.jsx)(zl,{})}):(0,A.jsx)(Mgn,{},`${e}-${a}`)})})})},Ign=()=>{_e();let[e]=sv(),t=ov(),n=e.get(`id`)||``,{meta:r,loading:i}=Vw(),a=r.agentsMeta?.[n],o=(0,g.useMemo)(()=>r.agentsMeta?Object.entries(r.agentsMeta).map(([e,t])=>({name:e,description:t?.summary})):[],[r.agentsMeta]);return i?(0,A.jsx)(ud,{h:`100vh`,children:(0,A.jsx)(zl,{})}):!n||!a?(0,A.jsx)(A2,{icon:CC,title:n?B(`Agent "${n}" not found`):K.agent_playground_no_agent_selected(),description:n?K.agent_playground_agent_not_found_description():K.agent_playground_select_agent_description(),docsHref:`https://pikku.dev/docs/core-features/agents`}):(0,A.jsx)(hT,{children:(0,A.jsx)(y2,{agentId:n,children:(0,A.jsx)(Fgn,{agentId:n,agentData:a,agentItems:o,onAgentSelect:e=>{t(`/agents/playground?id=${encodeURIComponent(e)}`)}})})})},Lgn=({icon:e,category:t,docsHref:n,categoryPath:r,currentItem:i,items:a,onItemSelect:o,subtitle:s,tabs:c,rightSection:l})=>{let u=av();_e();let[d,f]=(0,g.useState)(!1),[p,m]=(0,g.useState)(``),h=(0,g.useMemo)(()=>{if(!a)return[];if(!p)return a;let e=p.toLowerCase();return a.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))},[a,p]),_=e=>{f(!1),m(``),o?.(e)};return(0,A.jsxs)(Gl,{gap:`xs`,px:`md`,h:50,className:qw.noShrink,style:{zIndex:9999,borderBottom:`1px solid var(--mantine-color-default-border)`,backgroundColor:`var(--mantine-color-body)`},children:[r?(0,A.jsx)(u,{to:r,style:{textDecoration:`none`},children:(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(t)})}):i?(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(t)}):null,i&&!a&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:K.detail_header_separator()}),(0,A.jsx)(z,{size:`md`,fw:500,children:B(i)})]}),i&&a&&o&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:K.detail_header_separator()}),(0,A.jsxs)(Ll,{opened:d,onChange:f,width:300,position:`bottom-start`,shadow:`md`,zIndex:1e4,children:[(0,A.jsx)(Ll.Target,{children:(0,A.jsxs)(Cl,{onClick:()=>f(e=>!e),style:{display:`flex`,alignItems:`center`,gap:4},children:[(0,A.jsx)(z,{size:`md`,fw:500,children:B(i)}),(0,A.jsx)(TC,{size:14})]})}),(0,A.jsxs)(Ll.Dropdown,{p:0,children:[(0,A.jsx)(_v,{placeholder:B(`Search ${t.toLowerCase()}...`),leftSection:(0,A.jsx)(ow,{size:14}),value:p,onChange:e=>m(e.currentTarget.value),styles:{input:{border:`none`,borderBottom:`1px solid var(--mantine-color-default-border)`,borderRadius:0}}}),(0,A.jsx)(Sl.Autosize,{mah:300,children:(0,A.jsxs)(Ip,{gap:0,children:[h.map(e=>(0,A.jsxs)(Cl,{onClick:()=>_(e.name),py:`xs`,px:`sm`,style:{display:`flex`,alignItems:`center`,gap:8,backgroundColor:e.name===i?`var(--mantine-color-green-light)`:void 0},children:[e.name===i&&(0,A.jsx)(wC,{size:14,color:`var(--mantine-color-green-6)`}),(0,A.jsxs)(`div`,{style:{marginLeft:e.name===i?0:22},children:[(0,A.jsx)(z,{size:`sm`,fw:e.name===i?500:400,children:B(e.name)}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description)})]})]},e.name)),h.length===0&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ta:`center`,py:`md`,children:K.detail_header_no_results()})]})})]})]})]}),s,c&&(0,A.jsx)(j,{ml:`md`,children:c}),(0,A.jsxs)(Gl,{ml:`auto`,gap:`sm`,children:[l,(0,A.jsx)(fv,{label:B(`${t} docs`),children:(0,A.jsx)(dv,{component:`a`,href:n,target:`_blank`,rel:`noopener noreferrer`,variant:`subtle`,color:`gray`,size:`sm`,children:(0,A.jsx)(RC,{size:14})})})]})]})},Rgn=({functions:e,functionUsedBy:t})=>{let{openFunction:n}=mT(),{functionUsedBy:r}=Vw(),i=t??r;return(0,A.jsx)(j2,{title:`Functions`,icon:dw,docsHref:`https://pikku.dev/docs/core-features/functions`,data:(0,g.useMemo)(()=>e?e.filter(e=>{let t=e.pikkuFuncId;return(!e.functionType||e.functionType===`user`)&&!t?.startsWith(`pikku`)}):[],[e]),columns:(0,g.useMemo)(()=>[{key:`name`,header:`NAME`,render:e=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{fw:500,truncate:!0,children:B(e.pikkuFuncName||e.pikkuFuncId)}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,truncate:!0,style:!e.summary&&!e.description?{opacity:.4}:void 0,children:B(e.summary||e.description||`No description`)})]})},{key:`type`,header:`TYPE`,width:160,render:e=>(0,A.jsxs)(Gl,{gap:6,wrap:`nowrap`,children:[XWe[e.funcWrapper]&&(0,A.jsx)(vT,{type:`funcWrapper`,value:e.funcWrapper}),e.expose===!0&&(0,A.jsx)(vT,{type:`flag`,flag:`exposed`}),e.internal===!0&&(0,A.jsx)(vT,{type:`flag`,flag:`internal`})]})},{key:`auth`,header:`AUTH`,width:70,render:e=>e.sessionless===!0?null:(0,A.jsx)(vT,{type:`flag`,flag:`auth`})},{key:`permissions`,header:`PERMISSIONS`,width:110,render:e=>e.permissions?.length>0?(0,A.jsx)(vT,{type:`flag`,flag:`permissioned`}):null},{key:`wirings`,header:`WIRINGS`,width:130,render:e=>{let t=e.pikkuFuncName||e.pikkuFuncId,n=i.get(t),r=n?n.transports.length+n.jobs.length:0;return r===0?null:(0,A.jsx)(vT,{type:`dynamic`,badge:`wirings`,value:r})}}],[i]),getKey:e=>e.pikkuFuncName||e.pikkuFuncId,onRowClick:e=>n(e.pikkuFuncName||e.pikkuFuncId,e),searchPlaceholder:B(`Search functions...`),searchFilter:(e,t)=>e.pikkuFuncId?.toLowerCase().includes(t)||e.summary?.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t),emptyMessage:B(`No functions found.`)})},zgn=`addon-setup-cred-status`,Bgn=({credentials:e,secrets:t,credentialOverrides:n,secretOverrides:r})=>{_e();let i=Ng(),a=e=>n?.[e]??e,o=e=>r?.[e]??e,s=Object.values(e??{}).filter(e=>!!e.oauth2),c=Object.values(t??{}),l=s.map(e=>a(e.name)),{data:u}=Fr({queryKey:[zgn,[...l].sort()],queryFn:async()=>(await i.invoke(`console:credentialStatus`,{names:l})).statuses??{},enabled:s.length>0});return s.length===0&&c.length===0?(0,A.jsx)(j,{p:`md`,children:(0,A.jsx)(z,{c:`dimmed`,size:`sm`,children:K.addon_setup_none()})}):(0,A.jsx)(j,{p:`md`,children:(0,A.jsxs)(Ip,{gap:`lg`,children:[(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.addon_setup_intro()}),s.length>0&&(0,A.jsxs)(Ip,{gap:`sm`,children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:K.addon_setup_oauth_heading()}),(0,A.jsx)(Tp,{cols:{base:1,sm:2},spacing:`md`,children:s.map(e=>{let t=a(e.name);return(0,A.jsx)(Hgn,{credential:e,resolvedName:t,isConnected:u?.[t]===!0},e.name)})})]}),c.length>0&&(0,A.jsxs)(Ip,{gap:`sm`,children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:K.addon_setup_secrets_heading()}),(0,A.jsx)(Tp,{cols:{base:1,sm:2},spacing:`md`,children:c.map(e=>(0,A.jsx)(Ugn,{secret:e,resolvedSecretId:o(e.secretId)},e.name))})]})]})})},Vgn=({ok:e,okLabel:t,badLabel:n})=>(0,A.jsxs)(Gl,{gap:6,children:[e?(0,A.jsx)(kC,{size:8,fill:`var(--mantine-color-teal-6)`,color:`var(--mantine-color-teal-6)`}):(0,A.jsx)(kC,{size:8,color:`var(--mantine-color-gray-5)`}),(0,A.jsx)(z,{size:`sm`,c:e?`teal.6`:`dimmed`,children:e?t:n})]}),Hgn=({credential:e,resolvedName:t,isConnected:n})=>{_e();let r=Ng(),i=ev(),a=Sr(),o=t!==e.name,s=Ir({mutationFn:async()=>{let{data:e,error:n}=await i.client.$fetch(`/credential-oauth/link`,{method:`POST`,body:{providerId:t,callbackURL:window.location.href}});if(n)throw Error(n.message??K.credentials_connect_failed());if(!e?.url)throw Error(K.credentials_connect_failed());window.location.href=e.url}}),c=Ir({mutationFn:async()=>{await r.invoke(`console:credentialDelete`,{name:t})},onSuccess:()=>{a.invalidateQueries({queryKey:[zgn]})}});return(0,A.jsx)(ld,{shadow:`xs`,padding:`lg`,radius:`md`,withBorder:!0,children:(0,A.jsxs)(Ip,{gap:`xs`,children:[(0,A.jsxs)(Gl,{justify:`space-between`,children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:B(e.displayName??e.name)}),(0,A.jsx)(qC,{size:16,color:`var(--mantine-color-dimmed)`})]}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,lineClamp:2,children:B(e.description)}),o&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(t)}),(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`violet`,children:K.credentials_type_oauth2()}),(0,A.jsx)(Vgn,{ok:n,okLabel:K.credentials_connected(),badLabel:K.credentials_not_connected()}),(0,A.jsx)(j,{mt:4,children:n?(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,disabled:!i?.user,onClick:()=>s.mutate(),loading:s.isPending,children:K.credentials_reconnect()}),(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,color:`red`,onClick:()=>c.mutate(),loading:c.isPending,children:K.credentials_disconnect()})]}):(0,A.jsx)(cv,{size:`compact-xs`,disabled:!i?.user,onClick:()=>s.mutate(),loading:s.isPending,leftSection:(0,A.jsx)(qC,{size:12}),children:K.credentials_connect()})}),s.isError&&(0,A.jsx)(gv,{color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:14}),children:B(String(s.error?.message??``))})]})})},Ugn=({secret:e,resolvedSecretId:t})=>{_e();let n=Ng(),r=C2(),[i,a]=(0,g.useState)(!1),[o,s]=(0,g.useState)(``),{data:c}=Fr({queryKey:[`addon-setup-secret-status`,t],queryFn:async()=>({exists:(await n.invoke(`pikkuConsoleGetSecret`,{secretId:t}))?.exists===!0})}),l=c?.exists===!0;return(0,A.jsx)(ld,{shadow:`xs`,padding:`lg`,radius:`md`,withBorder:!0,children:(0,A.jsxs)(Ip,{gap:`xs`,children:[(0,A.jsxs)(Gl,{justify:`space-between`,children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:B(e.displayName??e.name)}),(0,A.jsx)(WC,{size:16,color:`var(--mantine-color-dimmed)`})]}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,lineClamp:2,children:B(e.description)}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(t)}),(0,A.jsx)(Vgn,{ok:l,okLabel:K.addon_setup_secret_set(),badLabel:K.addon_setup_secret_not_set()}),i?(0,A.jsxs)(Ip,{gap:`xs`,mt:4,children:[(0,A.jsx)(_v,{size:`xs`,type:`password`,value:o,placeholder:K.addon_setup_secret_placeholder(),onChange:e=>s(e.currentTarget.value),autoFocus:!0}),(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(cv,{size:`compact-xs`,onClick:()=>{r.mutate({secretId:t,value:o},{onSuccess:()=>{a(!1),s(``)}})},loading:r.isPending,disabled:o.length===0,leftSection:(0,A.jsx)(wC,{size:12}),children:K.addon_setup_secret_save()}),(0,A.jsx)(cv,{size:`compact-xs`,variant:`subtle`,color:`gray`,onClick:()=>{a(!1),s(``)},children:K.common_cancel()})]})]}):(0,A.jsx)(j,{mt:4,children:(0,A.jsx)(cv,{size:`compact-xs`,variant:l?`light`:void 0,onClick:()=>a(!0),leftSection:(0,A.jsx)(WC,{size:12}),children:l?K.addon_setup_secret_update_action():K.addon_setup_secret_set_action()})}),r.isError&&(0,A.jsx)(gv,{color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:14}),children:B(String(r.error?.message??``))})]})})},Wgn=({icon:e,name:t,size:n=72})=>e?(0,A.jsx)(`img`,{src:e.startsWith(`<`)?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`:e,width:n,height:n,alt:t,style:{objectFit:`contain`,display:`block`}}):(0,A.jsx)(rm,{size:n,radius:`md`,variant:`light`,color:`gray`,children:(0,A.jsx)($C,{size:n*.5})}),Ggn=({headers:e,rows:t})=>(0,A.jsxs)(Zp,{highlightOnHover:!0,withRowBorders:!0,children:[(0,A.jsx)(Zp.Thead,{children:(0,A.jsx)(Zp.Tr,{children:e.map((t,n)=>(0,A.jsx)(Zp.Th,{pl:n===0?`md`:void 0,pr:n===e.length-1?`md`:void 0,c:`dimmed`,fw:500,fz:`xs`,children:t},t))})}),(0,A.jsx)(Zp.Tbody,{children:t.map((e,t)=>(0,A.jsx)(Zp.Tr,{style:{height:`3.75rem`},children:e.map((t,n)=>(0,A.jsx)(Zp.Td,{pl:n===0?`md`:void 0,pr:n===e.length-1?`md`:void 0,children:t},n))},t))})]}),Kgn=({httpRoutes:e})=>{let t=[];for(let[n,r]of Object.entries(e??{}))for(let[,e]of Object.entries(r))n!==`options`&&t.push({method:n.toUpperCase(),route:e.route,sse:e.sse});return _e(),(0,A.jsx)(Ggn,{headers:[`METHOD`,`ROUTE`,``],rows:t.map(e=>[(0,A.jsx)(dd,{children:e.method},`m`),(0,A.jsx)(z,{size:`sm`,fw:500,ff:`monospace`,children:B(e.route)},`r`),e.sse?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`teal`,children:K.package_detail_sse()},`s`):null])})},qgn=({channels:e})=>(0,A.jsx)(Ggn,{headers:[`NAME`,`ROUTE`],rows:Object.entries(e??{}).map(([e,t])=>[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e)},`n`),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,c:`dimmed`,children:B(t.route)},`r`)])}),Jgn=({cli:e})=>{let t=[];for(let[n,r]of Object.entries(e??{}))for(let[e,i]of Object.entries(r.commands??{}))t.push({program:n,command:e,description:i.description});return(0,A.jsx)(Ggn,{headers:[`PROGRAM`,`COMMAND`,`DESCRIPTION`],rows:t.map(e=>[(0,A.jsx)(dd,{children:e.program},`p`),(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e.command)},`c`),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description??``)},`d`)])})},Ygn=({mcp:e})=>{let t=[];for(let[n,r]of Object.entries(e.toolsMeta??{}))t.push({type:`Tool`,name:n,description:r.description});for(let[n,r]of Object.entries(e.resourcesMeta??{}))t.push({type:`Resource`,name:n,description:r.description});for(let[n]of Object.entries(e.promptsMeta??{}))t.push({type:`Prompt`,name:n});return(0,A.jsx)(Ggn,{headers:[`TYPE`,`NAME`,`DESCRIPTION`],rows:t.map(e=>[(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:e.type===`Tool`?`blue`:e.type===`Resource`?`violet`:`orange`,children:B(e.type)},`t`),(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e.name)},`n`),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description??``)},`d`)])})},Xgn=({id:e,source:t,onBack:n})=>{let r=Ng(),i=x2(),a=Sr();_e();let[o,s]=g.useState(null),[c]=g.useState(()=>Date.now()),[l,u]=g.useState(!1);g.useEffect(()=>{let e=setTimeout(()=>u(!0),2e4);return()=>clearTimeout(e)},[]);let{data:d}=Fr({queryKey:[`installed-addons`],queryFn:async()=>await r.invoke(`console:getInstalledAddons`)??[],staleTime:60*1e3}),f=(d??[]).find(t=>t.packageName===e),p=t===`installed`||!!f,{data:m}=Fr({queryKey:[`addon-instances`,e],queryFn:async()=>await r.invoke(`console:getAddonInstances`,{packageName:e}),enabled:p,staleTime:60*1e3}),h=m??[],[_,v]=g.useState(null),y=h.find(e=>e.namespace===_)??h[0],{data:b}=Fr({queryKey:[`addon`,`installed`,e],queryFn:async()=>await r.invoke(`console:getAddonInstalledPackage`,{packageName:e}),enabled:p&&t===`community`}),x=Ir({mutationFn:async({packageName:e,namespace:t,version:n})=>r.invoke(`console:installAddon`,{packageName:e,namespace:t,version:n}),onSuccess:()=>{a.invalidateQueries({queryKey:[`installed-addons`]}),a.invalidateQueries({queryKey:[`allMeta`]})}}),S=Ir({mutationFn:async({name:e,swaggerUrl:t,credential:n})=>r.invoke(`console:installOpenapiAddon`,{name:e,swaggerUrl:t,credential:n}),onSuccess:()=>{a.invalidateQueries({queryKey:[`installed-addons`]}),a.invalidateQueries({queryKey:[`allMeta`]})}}),{data:C}=Fr({queryKey:[`openapi-detail`,e],queryFn:async()=>{let t=a.getQueriesData({queryKey:[`openapis`]});for(let[,n]of t){let t=n?.apis?.find(t=>t.name===e);if(t)return t}return(await r.invoke(`console:getOpenapis`,{limit:2600,offset:0})).apis?.find(t=>t.name===e)??null},enabled:t===`api`}),{data:w,isLoading:T}=Fr({queryKey:[`addon`,t,e],queryFn:async()=>{let n=await(t===`installed`?r.invoke(`console:getAddonInstalledPackage`,{packageName:e}):r.invoke(`console:getAddonCommunityPackage`,{id:e}));if(n?.schemas)for(let[e,t]of Object.entries(n.schemas))a.setQueryData([`schema`,e],t);return n},enabled:t!==`api`,refetchInterval:e=>t!==`installed`||e.state.data||l?!1:Date.now()-c<2e4?1500:!1}),E=t===`installed`&&!w&&!l;if(t===`api`){let e=C;return e?(0,A.jsx)(k2,{header:(0,A.jsx)(Lgn,{icon:UC,category:`APIs`,categoryPath:`/addons`,docsHref:`https://pikku.dev/docs/external-packages`}),hidePanel:!0,children:(0,A.jsx)(j,{p:`xl`,children:(0,A.jsxs)(Ip,{gap:`lg`,children:[(0,A.jsxs)(Gl,{gap:`md`,children:[e.logo&&(0,A.jsx)(`img`,{src:e.logo,width:48,height:48,alt:e.title,style:{objectFit:`contain`,borderRadius:6}}),(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(z,{size:`xl`,fw:700,children:B(e.title||e.name)}),(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:B(e.openapiVer)}),(0,A.jsx)(uv,{size:`sm`,variant:`light`,children:B(`v${e.version}`)})]}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(`${e.provider}${e.service?` / ${e.service}`:``}`)})]})]}),e.description&&(0,A.jsx)(z,{size:`sm`,children:B(e.description)}),(e.categories?.length>0||e.tags?.length>0)&&(0,A.jsxs)(Gl,{gap:6,children:[e.categories?.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`blue`,children:B(e)},e)),e.tags?.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`dot`,children:B(e)},e))]}),e.totalOperations>0&&(0,A.jsxs)(j,{children:[(0,A.jsx)(z,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:K.package_detail_operations({count:e.totalOperations})}),(0,A.jsxs)(Gl,{gap:6,children:[e.opsGet>0&&(0,A.jsx)(uv,{size:`sm`,color:`blue`,children:B(`GET ${e.opsGet}`)}),e.opsPost>0&&(0,A.jsx)(uv,{size:`sm`,color:`green`,children:B(`POST ${e.opsPost}`)}),e.opsPut>0&&(0,A.jsx)(uv,{size:`sm`,color:`yellow`,children:B(`PUT ${e.opsPut}`)}),e.opsPatch>0&&(0,A.jsx)(uv,{size:`sm`,color:`orange`,children:B(`PATCH ${e.opsPatch}`)}),e.opsDelete>0&&(0,A.jsx)(uv,{size:`sm`,color:`red`,children:B(`DELETE ${e.opsDelete}`)})]})]}),e.servers?.length>0&&(0,A.jsxs)(j,{children:[(0,A.jsx)(z,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:K.package_detail_servers()}),e.servers.map(e=>(0,A.jsx)(dd,{block:!0,style:{fontSize:`12px`},children:e},e))]}),e.securitySchemes?.length>0&&(0,A.jsxs)(j,{children:[(0,A.jsx)(z,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:K.package_detail_authentication()}),(0,A.jsx)(Gl,{gap:6,children:e.securitySchemes.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`outline`,color:`gray`,children:B(e)},e))})]}),e.contentTypes?.length>0&&(0,A.jsxs)(j,{children:[(0,A.jsx)(z,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:K.package_detail_content_types()}),(0,A.jsx)(Gl,{gap:6,children:e.contentTypes.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`outline`,color:`gray`,children:B(e)},e))})]}),(0,A.jsxs)(Gl,{gap:`xs`,children:[e.swaggerUrl&&(0,A.jsx)(cv,{size:`sm`,variant:`light`,component:`a`,href:e.swaggerUrl,target:`_blank`,leftSection:(0,A.jsx)(SC,{size:13}),children:K.package_detail_openapi_json()}),e.swaggerYamlUrl&&(0,A.jsx)(cv,{size:`sm`,variant:`light`,component:`a`,href:e.swaggerYamlUrl,target:`_blank`,leftSection:(0,A.jsx)(SC,{size:13}),children:K.package_detail_openapi_yaml()}),i&&(0,A.jsx)(cv,{size:`sm`,leftSection:(0,A.jsx)(IC,{size:13}),loading:S.isPending,onClick:()=>{let t=e.name.replace(/[^a-zA-Z0-9-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``);/^[0-9]/.test(t)&&(t=`x${t}`);let n=e.securitySchemes?.includes(`oauth2`)?`oauth2`:e.securitySchemes?.includes(`bearer`)?`bearer`:e.securitySchemes?.includes(`apiKey`)?`apikey`:void 0;S.mutate({name:t,swaggerUrl:e.swaggerUrl,credential:n})},children:K.package_detail_generate_install_addon()})]}),S.isSuccess&&(0,A.jsx)(gv,{color:`green`,icon:(0,A.jsx)(wC,{size:16}),children:K.package_detail_addon_installed_success()}),S.error&&(0,A.jsx)(gv,{color:`red`,children:B(S.error.message)})]})})}):(0,A.jsx)(ud,{h:`100vh`,children:(0,A.jsx)(zl,{})})}if(T||E)return(0,A.jsx)(ud,{h:`100vh`,children:(0,A.jsx)(zl,{})});if(!w)return(0,A.jsx)(k2,{header:(0,A.jsx)(Lgn,{icon:$C,category:`Addons`,categoryPath:`/addons`,docsHref:`https://pikku.dev/docs/external-packages`}),hidePanel:!0,children:(0,A.jsx)(j,{p:`xl`,children:(0,A.jsx)(z,{c:`dimmed`,children:K.package_detail_not_found()})})});let D=Object.entries(w.functions??{}),O=Object.entries(w.agents??{}),ee=Object.entries(w.secrets??{}),k=Object.entries(w.credentials??{}).filter(([,e])=>!!e.oauth2).length>0||ee.length>0,te=Object.entries(w.variables??{}),ne=Object.values(w.httpRoutes??{}).reduce((e,t)=>e+Object.keys(t).length,0),re=Object.entries(w.channels??{}),ie=Object.values(w.cli??{}).reduce((e,t)=>e+Object.keys(t.commands??{}).length,0),ae=Object.keys(w.mcp?.toolsMeta??{}).length+Object.keys(w.mcp?.resourcesMeta??{}).length+Object.keys(w.mcp?.promptsMeta??{}).length,oe=k?`setup`:w.readme?`readme`:D.length>0?`functions`:O.length>0?`agents`:ne>0?`http`:re.length>0?`channels`:ie>0?`cli`:ae>0?`mcp`:ee.length>0?`secrets`:`variables`,se=o??oe,ce=[`functions`,`secrets`,`variables`].includes(se),le=se===`secrets`?K.package_detail_select_secret():se===`variables`?K.package_detail_select_variable():K.package_detail_select_function();return(0,A.jsx)(k2,{header:(0,A.jsx)(Lgn,{icon:$C,category:`Addons`,categoryPath:`/addons`,docsHref:`https://pikku.dev/docs/external-packages`,subtitle:(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(`/`)}),(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(w.displayName)}),(0,A.jsx)(z,{size:`md`,c:`dimmed`,children:B(`/`)}),(0,A.jsx)(z,{size:`md`,fw:500,children:B(w.version)})]})}),hidePanel:!ce,emptyPanelMessage:le,children:(0,A.jsxs)(Ip,{gap:0,children:[(0,A.jsx)(j,{px:`md`,py:`md`,style:{borderBottom:`1px solid var(--mantine-color-default-border)`},children:(0,A.jsxs)(Gl,{align:`flex-start`,gap:`md`,wrap:`nowrap`,children:[(0,A.jsx)(Wgn,{icon:w.icon,name:w.displayName,size:48}),(0,A.jsxs)(Ip,{gap:4,className:qw.flexGrow,children:[(0,A.jsxs)(Gl,{gap:`sm`,align:`center`,justify:`space-between`,children:[(0,A.jsxs)(Gl,{gap:`xs`,align:`center`,children:[(0,A.jsx)(z,{fw:600,size:`lg`,children:B(w.displayName)}),w.author&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(`by ${w.author}`)}),w.license&&(0,A.jsx)(uv,{size:`sm`,variant:`outline`,color:`gray`,children:B(w.license)}),w.repository&&(0,A.jsx)(lv,{size:`sm`,href:w.repository,target:`_blank`,rel:`noopener noreferrer`,c:`dimmed`,children:B(w.repository.replace(/^https?:\/\//,``))})]}),i&&(()=>{let e=w.version,t=b?.version;return p&&t&&e&&t!==e?(0,A.jsx)(cv,{size:`sm`,color:`yellow`,leftSection:(0,A.jsx)(UHe,{size:13}),loading:x.isPending,onClick:()=>x.mutate({packageName:w.name,namespace:f?.namespace??w.name.replace(`@pikku/addon-`,``).replace(/^@.*\//,``),version:e}),children:B(`Update to ${e}`)}):p?(0,A.jsx)(cv,{size:`sm`,variant:`light`,color:`green`,leftSection:(0,A.jsx)(wC,{size:13}),disabled:!0,children:K.package_detail_installed()}):(0,A.jsx)(cv,{size:`sm`,leftSection:(0,A.jsx)(IC,{size:13}),loading:x.isPending,onClick:()=>x.mutate({packageName:w.name,namespace:w.name.replace(`@pikku/addon-`,``).replace(/^@.*\//,``),version:e}),children:K.package_detail_install()})})()]}),w.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(w.description)}),(w.tags??[]).length>0&&(0,A.jsx)(Gl,{gap:`xs`,children:w.tags.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`dot`,children:B(e)},e))})]})]})}),(0,A.jsxs)(Cv,{value:se,onChange:s,children:[(0,A.jsx)(j,{style:{borderBottom:`1px solid var(--mantine-color-default-border)`},children:(0,A.jsxs)(Cv.List,{style:{borderBottom:`none`},children:[k&&(0,A.jsx)(Cv.Tab,{value:`setup`,leftSection:(0,A.jsx)(gw,{size:14}),children:K.package_detail_tab_setup()}),w.readme&&(0,A.jsx)(Cv.Tab,{value:`readme`,leftSection:(0,A.jsx)(SC,{size:14}),children:K.package_detail_tab_readme()}),D.length>0&&(0,A.jsx)(Cv.Tab,{value:`functions`,leftSection:(0,A.jsx)(jC,{size:14}),children:B(`Functions (${D.length})`)}),O.length>0&&(0,A.jsx)(Cv.Tab,{value:`agents`,leftSection:(0,A.jsx)(CC,{size:14}),children:B(`Agents (${O.length})`)}),ne>0&&(0,A.jsx)(Cv.Tab,{value:`http`,leftSection:(0,A.jsx)(UC,{size:14}),children:B(`HTTP Routes (${ne})`)}),re.length>0&&(0,A.jsx)(Cv.Tab,{value:`channels`,leftSection:(0,A.jsx)(nw,{size:14}),children:B(`Channels (${re.length})`)}),ie>0&&(0,A.jsx)(Cv.Tab,{value:`cli`,leftSection:(0,A.jsx)(fw,{size:14}),children:B(`CLI (${ie})`)}),ae>0&&(0,A.jsx)(Cv.Tab,{value:`mcp`,leftSection:(0,A.jsx)(PC,{size:14}),children:B(`MCP (${ae})`)}),(0,A.jsx)(Cv.Tab,{value:`secrets`,leftSection:(0,A.jsx)(WC,{size:14}),disabled:ee.length===0,children:B(`Secrets (${ee.length})`)}),(0,A.jsx)(Cv.Tab,{value:`variables`,leftSection:(0,A.jsx)(DUe,{size:14}),disabled:te.length===0,children:B(`Variables (${te.length})`)})]})}),k&&(0,A.jsxs)(Cv.Panel,{value:`setup`,children:[h.length>1&&(0,A.jsx)(j,{px:`md`,pt:`md`,children:(0,A.jsx)(bv,{label:K.package_detail_instance_label(),description:K.package_detail_instance_description(),data:h.map(e=>e.namespace),value:y?.namespace??null,onChange:v,allowDeselect:!1,maw:320})}),(0,A.jsx)(Bgn,{credentials:w.credentials??{},secrets:w.secrets??{},credentialOverrides:y?.credentialOverrides,secretOverrides:y?.secretOverrides})]}),w.readme&&(0,A.jsx)(Cv.Panel,{value:`readme`,children:(0,A.jsx)(cm,{px:`xl`,py:`md`,style:{maxHeight:`calc(100vh - 280px)`,overflow:`auto`},children:(0,A.jsx)(Cpn,{remarkPlugins:[Dgn],children:w.readme})})}),D.length>0&&(0,A.jsx)(Cv.Panel,{value:`functions`,children:(0,A.jsx)(Rgn,{functions:D.map(([e,t])=>({...t,pikkuFuncId:e})),functionUsedBy:new Map})}),O.length>0&&(0,A.jsx)(Cv.Panel,{value:`agents`,children:(0,A.jsx)(Ggn,{headers:[`NAME`],rows:O.map(([e])=>[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e)},e)])})}),ne>0&&(0,A.jsx)(Cv.Panel,{value:`http`,children:(0,A.jsx)(Kgn,{httpRoutes:w.httpRoutes})}),re.length>0&&(0,A.jsx)(Cv.Panel,{value:`channels`,children:(0,A.jsx)(qgn,{channels:w.channels})}),ie>0&&(0,A.jsx)(Cv.Panel,{value:`cli`,children:(0,A.jsx)(Jgn,{cli:w.cli})}),ae>0&&w.mcp&&(0,A.jsx)(Cv.Panel,{value:`mcp`,children:(0,A.jsx)(Ygn,{mcp:w.mcp})}),(0,A.jsx)(Cv.Panel,{value:`secrets`,children:(0,A.jsx)(zqt,{secrets:ee.map(([,e])=>e),installed:!1})}),(0,A.jsx)(Cv.Panel,{value:`variables`,children:(0,A.jsx)(Hqt,{variables:te.map(([,e])=>e),installed:!1})})]})]})})},Zgn={auth:{icon:WC,color:`violet`},payments:{icon:QHe,color:`green`},database:{icon:FC,color:`blue`},agents:{icon:CC,color:`orange`},ai:{icon:CC,color:`orange`},email:{icon:ZC,color:`cyan`},storage:{icon:sw,color:`grape`},analytics:{icon:HUe,color:`teal`},observability:{icon:yC,color:`red`},observe:{icon:yC,color:`red`},realtime:{icon:nw,color:`cyan`},search:{icon:ow,color:`yellow`},devtools:{icon:gw,color:`gray`}},Qgn={icon:$C,color:`gray`};function $gn(e){return e?Zgn[e.toLowerCase()]??Qgn:Qgn}function e_n(e){return e.replace(/[-_]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function t_n(e){return/^@pikku(fabric)?\//.test(e)}function n_n(e){return e.categories?.[0]}function r_n(e){return Object.entries(e).filter(([e])=>!!e).map(([e,t])=>({id:e,label:e_n(e),count:t})).sort((e,t)=>t.count-e.count||e.label.localeCompare(t.label))}var i_n=({categories:e,active:t,total:n,onPick:r})=>(_e(),(0,A.jsxs)(j,{component:`nav`,style:{position:`sticky`,top:0,alignSelf:`flex-start`},children:[(0,A.jsx)(z,{size:`xs`,fw:700,tt:`uppercase`,c:`dimmed`,px:`xs`,mb:6,style:{letterSpacing:`0.06em`},children:K.packages_browse()}),(0,A.jsx)(xbe,{active:t===`all`,label:K.packages_all_addons(),leftSection:(0,A.jsx)(rm,{size:22,radius:`sm`,variant:`light`,color:`gray`,children:(0,A.jsx)($C,{size:14})}),rightSection:(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(String(n))}),onClick:()=>r(`all`),styles:{root:{borderRadius:`var(--mantine-radius-sm)`}}}),e.map(e=>{let{icon:n,color:i}=$gn(e.id);return(0,A.jsx)(xbe,{active:t===e.id,label:B(e.label),leftSection:(0,A.jsx)(rm,{size:22,radius:`sm`,variant:`light`,color:i,children:(0,A.jsx)(n,{size:14})}),rightSection:(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(String(e.count))}),onClick:()=>r(e.id),styles:{root:{borderRadius:`var(--mantine-radius-sm)`}}},e.id)})]})),a_n=({icon:e,value:t})=>(0,A.jsxs)(Gl,{gap:5,wrap:`nowrap`,children:[(0,A.jsx)(e,{size:13,color:`var(--mantine-color-dimmed)`}),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,c:`dimmed`,children:B(String(t))})]}),o_n=({addon:e,installed:t,kind:n=`addon`,onOpen:r})=>{_e();let[i,a]=(0,g.useState)(!1),o=n===`api`,{icon:s,color:c}=$gn(n_n(e)),l=!o&&t_n(e.name),u=Object.keys(e.functions??{}).length,d=Object.keys(e.agents??{}).length,f=e.icon?e.icon.startsWith(`<`)?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e.icon)}`:e.icon:null;return(0,A.jsxs)(ld,{withBorder:!0,radius:`md`,padding:0,onClick:()=>r(e),onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),style:{cursor:`pointer`,display:`flex`,flexDirection:`column`,transform:i?`translateY(-2px)`:`none`,boxShadow:i?`var(--mantine-shadow-md)`:void 0,borderColor:i?`var(--mantine-color-default-border)`:void 0,transition:`transform 140ms ease, box-shadow 140ms ease`},children:[(0,A.jsxs)(Ip,{gap:`sm`,p:`md`,style:{flex:1},children:[(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,align:`flex-start`,children:[f?(0,A.jsx)(`img`,{src:f,width:44,height:44,alt:e.displayName,style:{objectFit:`contain`,borderRadius:10,display:`block`}}):(0,A.jsx)(rm,{size:44,radius:`md`,variant:`light`,color:c,children:(0,A.jsx)(s,{size:22})}),(0,A.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,A.jsx)(z,{fw:600,size:`sm`,truncate:!0,children:B(e.displayName||e.name)}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,truncate:!0,children:B(e.name)})]}),o?e.author&&(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,tt:`none`,style:{flexShrink:0},children:B(e.author)}):l?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`blue`,leftSection:(0,A.jsx)(lw,{size:11}),style:{flexShrink:0},children:K.packages_official()}):(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,style:{flexShrink:0},children:K.packages_community()})]}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,lineClamp:2,style:{minHeight:`2.6em`},children:B(e.description)}),(e.tags??[]).length>0&&(0,A.jsx)(Gl,{gap:6,children:e.tags.slice(0,3).map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,tt:`none`,ff:`monospace`,fw:400,children:B(e)},e))})]}),(0,A.jsxs)(Gl,{justify:`space-between`,wrap:`nowrap`,px:`md`,py:`sm`,style:{borderTop:`1px solid var(--mantine-color-default-border)`,background:`var(--mantine-color-default-hover)`},children:[(0,A.jsx)(Gl,{gap:`lg`,wrap:`nowrap`,children:o?(0,A.jsx)(a_n,{icon:UC,value:e.totalOperations??0}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(a_n,{icon:dw,value:u}),(0,A.jsx)(a_n,{icon:CC,value:d})]})}),t&&(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`green`,leftSection:(0,A.jsx)(wC,{size:11}),children:o?K.packages_imported():K.packages_added()})]})]})},s_n=`https://pikku.dev/docs/external-packages`,c_n=()=>(_e(),(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`lg`,style:{borderStyle:`dashed`},children:(0,A.jsxs)(Gl,{gap:`md`,wrap:`nowrap`,children:[(0,A.jsx)(rm,{size:42,radius:`md`,variant:`light`,color:`blue`,children:(0,A.jsx)($C,{size:20})}),(0,A.jsxs)(Ip,{gap:2,style:{flex:1,minWidth:0},children:[(0,A.jsx)(z,{fw:600,size:`sm`,children:K.packages_publish_title()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.packages_publish_subtext()})]}),(0,A.jsx)(cv,{component:`a`,href:s_n,target:`_blank`,rel:`noopener noreferrer`,variant:`default`,rightSection:(0,A.jsx)(VHe,{size:14}),children:K.packages_publish_cta()})]})})),l_n=({icon:e,label:t,value:n})=>(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`sm`,children:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(rm,{size:34,radius:`md`,variant:`default`,color:`gray`,children:(0,A.jsx)(e,{size:16})}),(0,A.jsxs)(Ip,{gap:0,children:[(0,A.jsx)(z,{size:`lg`,fw:700,ff:`monospace`,lh:1,children:B(String(n))}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:t})]})]})}),u_n=e=>{let t=e.replace(`@pikku/addon-`,``).replace(/^@[^/]+\//,``).toLowerCase().replace(/[^a-z0-9-]+/g,`-`).replace(/^-+|-+$/g,``);if(!t)throw Error(`Unable to derive namespace from package name: ${e}`);return t},d_n=e=>/^[a-z0-9-]+$/.test(e),f_n=e=>Object.values(e??{}).reduce((e,t)=>e+Object.keys(t??{}).length,0),p_n=({addon:e,installed:t,installing:n,editable:r,installedNamespaces:i=[],error:a,kind:o=`addon`,onClose:s,onInstall:c})=>{_e();let l=Ng(),[u,d]=(0,g.useState)(`overview`),f=o===`api`,[p,m]=(0,g.useState)(``);(0,g.useEffect)(()=>{e&&(d(`overview`),m(f?``:u_n(e.name)))},[e?.id]);let h=f||d_n(p),{data:_}=Fr({queryKey:[`addon`,`community`,e?.id],queryFn:async()=>await l.invoke(`console:getAddonCommunityPackage`,{id:e.id}),enabled:!f&&!!e}),{data:v}=Fr({queryKey:[`api`,`detail`,e?.id],queryFn:async()=>await l.invoke(`console:getOpenapiDetail`,{name:e.name}),enabled:f&&!!e}),y=!!e,b=!f&&e?t_n(e.name):!1,{icon:x,color:S}=$gn(e?n_n(e):void 0),C=_?.functions??e?.functions??{},w=Object.keys(C),T=_?.secrets??{},E=_?.variables??{},D=_?.channels??{},O=Object.entries(_?.httpRoutes??{}).flatMap(([e,t])=>Object.keys(t??{}).map(t=>({method:e,route:t}))),ee=Object.keys(T),k=Object.keys(E),te=Object.keys(D),ne=f?[{icon:UC,label:K.packages_surface_operations(),value:v?.totalOperations??e?.totalOperations??0}]:[{icon:dw,label:K.packages_surface_functions(),value:w.length},{icon:UC,label:K.packages_surface_http(),value:f_n(_?.httpRoutes)},{icon:nw,label:K.packages_surface_channels(),value:Object.keys(_?.channels??{}).length},{icon:WC,label:K.packages_surface_secrets(),value:Object.keys(_?.secrets??{}).length},{icon:DUe,label:K.packages_surface_variables(),value:Object.keys(_?.variables??{}).length},{icon:CC,label:K.packages_surface_agents(),value:Object.keys(_?.agents??e?.agents??{}).length}],re=_?.displayName??e?.displayName??e?.name,ie=_?.description??e?.description,ae=_?.tags??e?.tags??[],oe=_?.author??e?.author,se=_?.version??e?.version,ce=_?.icon??e?.icon,le=ce&&ce.startsWith(`<`)?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(ce)}`:ce,ue=f?v?.swaggerUrl??e?.swaggerUrl??`https://pikku.dev/docs/external-packages`:`https://pikku.dev/docs/external-packages`,de=e&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,mb:`sm`,children:K.packages_whats_included()}),(0,A.jsx)(Tp,{cols:{base:2,sm:3},spacing:`sm`,children:ne.map(e=>(0,A.jsx)(l_n,{icon:e.icon,label:e.label,value:e.value},String(e.label)))}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,mt:`xl`,mb:`sm`,children:K.packages_published_by()}),(0,A.jsxs)(Gl,{gap:`md`,wrap:`nowrap`,children:[(0,A.jsx)(Cbe,{radius:`md`,color:b?`blue`:`gray`,children:(oe??e.name).slice(0,1).toUpperCase()}),(0,A.jsxs)(Gl,{gap:6,children:[(0,A.jsx)(z,{size:`sm`,fw:600,children:B(oe??e.name)}),b&&(0,A.jsx)(lw,{size:14,color:`var(--mantine-color-blue-5)`})]})]})]});return(0,A.jsx)(hv,{opened:y,onClose:s,position:`right`,size:620,title:e?(0,A.jsxs)(Gl,{gap:6,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,children:K.packages_community()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(`/`)}),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,fw:500,children:B(e.name)})]}):void 0,styles:{body:{padding:0}},children:e&&(0,A.jsxs)(Ip,{gap:0,children:[(0,A.jsxs)(j,{p:`lg`,children:[(0,A.jsxs)(Gl,{gap:`md`,wrap:`nowrap`,align:`flex-start`,children:[le?(0,A.jsx)(`img`,{src:le,width:56,height:56,alt:e.displayName,style:{objectFit:`contain`,borderRadius:12}}):(0,A.jsx)(rm,{size:56,radius:`md`,variant:`light`,color:S,children:(0,A.jsx)(x,{size:28})}),(0,A.jsxs)(Ip,{gap:4,style:{flex:1,minWidth:0},children:[(0,A.jsxs)(Gl,{gap:`xs`,align:`center`,children:[(0,A.jsx)(Sbe,{order:3,fw:700,children:B(re||e.name)}),f?oe&&(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,tt:`none`,children:B(oe)}):b?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`blue`,leftSection:(0,A.jsx)(lw,{size:11}),children:K.packages_official()}):(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:K.packages_community()})]}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(e.name)})]})]}),ie&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,mt:`md`,children:B(ie)}),ae.length>0&&(0,A.jsx)(Gl,{gap:6,mt:`sm`,children:ae.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,tt:`none`,ff:`monospace`,fw:400,children:B(e)},e))}),!f&&i.length>0&&(0,A.jsxs)(Gl,{gap:`xs`,mt:`lg`,align:`center`,children:[(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.packages_installed_as()}),i.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`green`,tt:`none`,ff:`monospace`,fw:400,children:B(e)},e))]}),!t&&!f&&r&&(0,A.jsx)(_v,{mt:i.length>0?`sm`:`lg`,label:K.packages_install_name_label(),description:K.packages_install_name_description(),value:p,onChange:e=>m(e.currentTarget.value),error:p.length>0&&!h?K.packages_install_name_invalid():null,styles:{input:{fontFamily:`monospace`}}}),(0,A.jsxs)(Gl,{gap:`sm`,mt:!t&&!f&&r?`sm`:`lg`,children:[t?(0,A.jsx)(cv,{variant:`light`,color:`green`,leftSection:(0,A.jsx)(wC,{size:15}),disabled:!0,children:f?K.packages_imported_to_project():K.packages_added_to_project()}):r&&(0,A.jsx)(cv,{leftSection:(0,A.jsx)(IC,{size:15}),loading:n,disabled:!h,onClick:()=>c(e,f?void 0:p),children:f?K.packages_import_to_project():K.packages_add_to_project()}),(0,A.jsx)(cv,{component:`a`,href:ue,target:`_blank`,rel:`noopener noreferrer`,variant:`default`,leftSection:(0,A.jsx)(RC,{size:15}),children:K.packages_docs()})]}),a&&(0,A.jsx)(gv,{mt:`sm`,color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:15}),children:(0,A.jsx)(z,{size:`sm`,children:f?K.packages_import_error({name:e.displayName||e.name,message:a}):K.packages_install_error({name:e.displayName||e.name,message:a})})}),(0,A.jsx)(pv,{my:`md`}),(0,A.jsxs)(Gl,{gap:`xl`,children:[(0,A.jsxs)(Ip,{gap:2,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,children:K.packages_meta_version()}),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,children:B(se??`—`)})]}),_?.license&&(0,A.jsxs)(Ip,{gap:2,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,children:K.packages_meta_license()}),(0,A.jsx)(z,{size:`sm`,children:B(_.license)})]}),oe&&(0,A.jsxs)(Ip,{gap:2,children:[(0,A.jsx)(z,{size:`xs`,c:`dimmed`,tt:`uppercase`,fw:700,children:K.packages_meta_author()}),(0,A.jsx)(z,{size:`sm`,children:B(oe)})]})]})]}),f?(0,A.jsx)(j,{p:`lg`,style:{borderTop:`1px solid var(--mantine-color-default-border)`},children:de}):(0,A.jsxs)(Cv,{value:u,onChange:d,children:[(0,A.jsx)(j,{style:{borderBottom:`1px solid var(--mantine-color-default-border)`,borderTop:`1px solid var(--mantine-color-default-border)`},children:(0,A.jsxs)(Cv.List,{style:{borderBottom:`none`,paddingLeft:`var(--mantine-spacing-md)`},children:[(0,A.jsx)(Cv.Tab,{value:`overview`,children:K.packages_tab_overview()}),(0,A.jsx)(Cv.Tab,{value:`functions`,children:B(`${K.packages_tab_functions()} (${w.length})`)}),O.length>0&&(0,A.jsx)(Cv.Tab,{value:`http`,children:B(`${K.packages_surface_http()} (${O.length})`)}),te.length>0&&(0,A.jsx)(Cv.Tab,{value:`channels`,children:B(`${K.packages_surface_channels()} (${te.length})`)}),ee.length>0&&(0,A.jsx)(Cv.Tab,{value:`secrets`,children:B(`${K.packages_surface_secrets()} (${ee.length})`)}),k.length>0&&(0,A.jsx)(Cv.Tab,{value:`variables`,children:B(`${K.packages_surface_variables()} (${k.length})`)})]})}),(0,A.jsx)(Cv.Panel,{value:`overview`,p:`lg`,children:de}),(0,A.jsx)(Cv.Panel,{value:`functions`,p:`lg`,children:w.length===0?(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.packages_no_functions()}):(0,A.jsx)(Ip,{gap:0,style:{border:`1px solid var(--mantine-color-default-border)`,borderRadius:`var(--mantine-radius-md)`,overflow:`hidden`},children:w.map((e,t)=>{let n=C[e];return(0,A.jsxs)(Gl,{justify:`space-between`,px:`md`,py:`xs`,wrap:`nowrap`,style:{borderTop:t===0?void 0:`1px solid var(--mantine-color-default-border)`},children:[(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(n?.title??e)}),n?.title&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(e)})]}),n?.description&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,lineClamp:2,children:B(n.description)})]}),n?.category&&(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:B(n.category)})]},e)})})}),O.length>0&&(0,A.jsx)(Cv.Panel,{value:`http`,p:`lg`,children:(0,A.jsx)(m_n,{children:O.map(({method:e,route:t},n)=>(0,A.jsx)(h_n,{first:n===0,children:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`blue`,w:64,ta:`center`,children:B(e.toUpperCase())}),(0,A.jsx)(z,{size:`sm`,ff:`monospace`,children:B(t)})]})},`${e} ${t}`))})}),te.length>0&&(0,A.jsx)(Cv.Panel,{value:`channels`,p:`lg`,children:(0,A.jsx)(m_n,{children:te.map((e,t)=>(0,A.jsx)(h_n,{first:t===0,children:(0,A.jsx)(z,{size:`sm`,fw:500,ff:`monospace`,children:B(e)})},e))})}),ee.length>0&&(0,A.jsx)(Cv.Panel,{value:`secrets`,p:`lg`,children:(0,A.jsx)(m_n,{children:ee.map((e,t)=>{let n=T[e];return(0,A.jsx)(h_n,{first:t===0,children:(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(n?.displayName??e)}),n?.secretId&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(n.secretId)})]}),n?.description&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,lineClamp:2,children:B(n.description)})]})},e)})})}),k.length>0&&(0,A.jsx)(Cv.Panel,{value:`variables`,p:`lg`,children:(0,A.jsx)(m_n,{children:k.map((e,t)=>{let n=E[e];return(0,A.jsx)(h_n,{first:t===0,children:(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(n?.displayName??e)}),n?.variableId&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,ff:`monospace`,children:B(n.variableId)})]}),n?.description&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,lineClamp:2,children:B(n.description)})]})},e)})})})]})]})})},m_n=({children:e})=>(0,A.jsx)(Ip,{gap:0,style:{border:`1px solid var(--mantine-color-default-border)`,borderRadius:`var(--mantine-radius-md)`,overflow:`hidden`},children:e}),h_n=({first:e,children:t})=>(0,A.jsx)(Gl,{justify:`space-between`,px:`md`,py:`xs`,wrap:`nowrap`,style:{borderTop:e?void 0:`1px solid var(--mantine-color-default-border)`},children:t}),g_n=({addons:e,searchQuery:t,installedNames:n,installedNamespaces:r,editable:i,installingName:a,actionError:o,kind:s=`addon`,categoryCounts:c,catalogueTotal:l,total:u,category:d,onCategoryChange:f,sort:p,onSortChange:m,hasMore:h,loadingMore:_,onLoadMore:v,onInstall:y,onOpenInstalled:b})=>{_e();let[x,S]=(0,g.useState)(null),C=e=>{b&&n.has(e.name)?b(e):S(e)},w=(0,g.useMemo)(()=>r_n(c),[c]),T=(0,g.useMemo)(()=>[{value:`name`,label:K.packages_sort_name()},{value:`functions`,label:K.packages_sort_functions()},{value:`agents`,label:K.packages_sort_agents()}],[]),E=(0,g.useRef)(null),D=(0,g.useRef)(v);D.current=v,(0,g.useEffect)(()=>{let e=E.current;if(!e||!h||_)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&D.current()},{rootMargin:`400px`});return t.observe(e),()=>t.disconnect()},[h,_]);let O=d===`all`?t.trim()?K.packages_results():s===`api`?K.packages_all_apis():K.packages_all_addons():B(w.find(e=>e.id===d)?.label??d);return(0,A.jsxs)(Ip,{gap:`lg`,style:{minHeight:`100%`},children:[(0,A.jsxs)(j,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 210px) minmax(0, 1fr)`,gap:`var(--mantine-spacing-xl)`,alignItems:`stretch`,flex:1,minHeight:0},children:[(0,A.jsx)(i_n,{categories:w,active:d,total:l,onPick:f}),(0,A.jsxs)(Ip,{gap:`md`,style:{minWidth:0,minHeight:`100%`},children:[(0,A.jsxs)(Gl,{justify:`space-between`,wrap:`nowrap`,children:[(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(z,{fw:700,size:`sm`,children:O}),(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:B(String(u))})]}),p&&m&&(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(rm,{size:`sm`,variant:`transparent`,color:`gray`,children:(0,A.jsx)(NUe,{size:14})}),(0,A.jsx)(_p,{size:`xs`,value:p,onChange:e=>m(e),data:T})]})]}),(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:e.length===0?(0,A.jsxs)(Ip,{align:`center`,justify:`center`,gap:6,h:`100%`,children:[(0,A.jsx)(rm,{size:48,radius:`md`,variant:`light`,color:`gray`,children:(0,A.jsx)(ow,{size:22})}),(0,A.jsx)(z,{fw:600,size:`sm`,children:K.packages_no_matches()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.packages_no_matches_hint()})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(Tp,{cols:{base:1,sm:2,lg:3},spacing:`md`,children:e.map(e=>(0,A.jsx)(o_n,{addon:e,installed:n.has(e.name),kind:s,onOpen:C},e.id))}),h&&(0,A.jsx)(j,{ref:E,py:`lg`,children:(0,A.jsx)(ud,{children:(0,A.jsx)(zl,{size:`sm`})})})]})}),s===`addon`&&i&&(0,A.jsx)(c_n,{})]})]}),(0,A.jsx)(p_n,{addon:x,installed:x?n.has(x.name):!1,installing:!!x&&a===x.name,installedNamespaces:x?r?.[x.name]??[]:[],error:x&&o?.name===x.name?o.message:null,editable:i,kind:s,onClose:()=>S(null),onInstall:y})]})},__n=e=>({id:e.packageName,name:e.packageName,displayName:e.namespace||e.packageName,description:``,version:``,author:``,icon:e.icon,tags:e.tags??[],categories:[],functions:{},agents:{}}),v_n=500,y_n=(e,t)=>{let n=t.toLowerCase();return e.name.toLowerCase().includes(n)||e.displayName.toLowerCase().includes(n)||e.description.toLowerCase().includes(n)||e.tags.some(e=>e.toLowerCase().includes(n))},b_n=({searchQuery:e,filter:t,onSelect:n})=>{let r=Ng();_e();let i=x2(),a=Sr(),[o,s]=(0,g.useState)(`all`),[c,l]=(0,g.useState)(`name`),{data:u}=Fr({queryKey:[`installed-addons`],queryFn:async()=>await r.invoke(`console:getInstalledAddons`)??[],staleTime:60*1e3}),d=t===`installed`,f=!d||!!u,p=(0,g.useMemo)(()=>new Set((u??[]).map(e=>e.packageName)),[u]),m=(0,g.useMemo)(()=>{let e={};for(let t of u??[])(e[t.packageName]??=[]).push(t.namespace);return e},[u]),h=e.trim(),_=(0,g.useMemo)(()=>d?{names:[...p].join(`,`)}:{...h?{search:h}:{},...o===`all`?{}:{category:o},...t===`official`?{official:!0}:{},sort:c},[d,p,h,o,t,c]),v=d?Math.min(Math.max(p.size,1),v_n):50,{data:y,isPending:b,isError:x,fetchNextPage:S,hasNextPage:C,isFetchingNextPage:w}=Ate({queryKey:[`addons`,_,v],initialPageParam:void 0,queryFn:async({pageParam:e})=>await r.invoke(`console:getAddonMeta`,{..._,limit:v,...e==null?{}:{cursor:e}}),getNextPageParam:e=>e.nextCursor??void 0,enabled:f,staleTime:60*1e3,retry:!1}),{data:T}=Fr({queryKey:[`addon-categories`],queryFn:async()=>await r.invoke(`console:getAddonCategories`),staleTime:300*1e3,retry:!1}),{data:E}=Fr({queryKey:[`addons`,`total`],queryFn:async()=>(await r.invoke(`console:getAddonMeta`,{limit:1})).total??0,staleTime:300*1e3,retry:!1}),D=(0,g.useMemo)(()=>(y?.pages??[]).flatMap(e=>e.packages??[]),[y]),O=(0,g.useMemo)(()=>{if(!d)return D;let e=new Map(D.map(e=>[e.name,e])),t=(u??[]).map(t=>e.get(t.packageName)??__n(t));return h&&(t=t.filter(e=>y_n(e,h))),o!==`all`&&(t=t.filter(e=>e.categories.includes(o))),t},[d,D,u,h,o]),ee=Ir({mutationFn:async({addon:e,namespace:t})=>r.invoke(`console:installAddon`,{packageName:e.name,namespace:t?.trim()||u_n(e.name),version:e.version}),onSuccess:(e,{addon:t})=>{a.invalidateQueries({queryKey:[`installed-addons`]}),a.invalidateQueries({queryKey:[`allMeta`]}),n(t.name,`installed`)}});return b?(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:(0,A.jsx)(ud,{h:`100%`,children:(0,A.jsx)(zl,{})})}):x||!y?(0,A.jsx)(A2,{icon:$C,title:K.packages_registry_unavailable_title(),description:K.packages_registry_unavailable_description(),docsHref:`https://pikku.dev/docs/external-packages`}):(0,A.jsx)(g_n,{addons:O,searchQuery:e,categoryCounts:T??{},catalogueTotal:E??0,total:d?O.length:y.pages[0]?.total??0,category:o,onCategoryChange:s,sort:d?void 0:c,onSortChange:d?void 0:l,hasMore:!d&&!!C,loadingMore:w,onLoadMore:S,installedNames:p,installedNamespaces:m,editable:i,installingName:ee.isPending?ee.variables?.addon.name??null:null,actionError:ee.isError?{name:ee.variables?.addon.name??``,message:ee.error instanceof Error?ee.error.message:String(ee.error)}:null,onInstall:(e,t)=>ee.mutate({addon:e,namespace:t}),onOpenInstalled:e=>n(e.name,`installed`)})},x_n=e=>({id:e.name,name:e.name,displayName:e.title||e.name,description:e.description,version:e.version,author:e.provider,icon:e.logo??void 0,tags:e.tags??[],categories:e.categories??[],functions:{},agents:{},swaggerUrl:e.swaggerUrl,totalOperations:e.totalOperations}),S_n=({searchQuery:e})=>{let t=Ng();_e();let n=x2(),r=Sr(),[i,a]=(0,g.useState)(`all`),{data:o,isPending:s,isError:c,fetchNextPage:l,hasNextPage:u,isFetchingNextPage:d}=Ate({queryKey:[`openapis`,{search:e.trim(),category:i}],initialPageParam:0,queryFn:async({pageParam:n})=>await t.invoke(`console:getOpenapis`,{limit:50,offset:n,...e.trim()?{search:e.trim()}:{},...i===`all`?{}:{category:i}}),getNextPageParam:e=>e.nextCursor??void 0,staleTime:60*1e3,retry:!1}),{data:f}=Fr({queryKey:[`openapi-categories`],queryFn:async()=>await t.invoke(`console:getOpenapiCategories`),staleTime:300*1e3,retry:!1}),{data:p}=Fr({queryKey:[`openapis`,`total`],queryFn:async()=>(await t.invoke(`console:getOpenapis`,{limit:1,offset:0})).total??0,staleTime:300*1e3,retry:!1}),{data:m}=Fr({queryKey:[`installed-addons`],queryFn:async()=>await t.invoke(`console:getInstalledAddons`)??[],staleTime:60*1e3}),h=Ir({mutationFn:async e=>t.invoke(`console:installOpenapiAddon`,{name:u_n(e.name),swaggerUrl:e.swaggerUrl}),onSuccess:()=>{r.invalidateQueries({queryKey:[`installed-addons`]}),r.invalidateQueries({queryKey:[`allMeta`]})}}),_=(0,g.useMemo)(()=>new Set((m??[]).filter(e=>e.packageName.startsWith(`@pikku/addon-`)).map(e=>e.packageName.slice(13))),[m]),v=(0,g.useMemo)(()=>(o?.pages??[]).flatMap(e=>(e.apis??[]).map(x_n)),[o]),y=(0,g.useMemo)(()=>new Set(v.filter(e=>_.has(u_n(e.name))).map(e=>e.name)),[v,_]);return s?(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:(0,A.jsx)(ud,{h:`100%`,children:(0,A.jsx)(zl,{})})}):c||!o?(0,A.jsx)(A2,{icon:UC,title:K.packages_no_apis_title(),description:K.packages_no_apis_description(),docsHref:`https://pikku.dev/docs/external-packages`}):(0,A.jsx)(g_n,{addons:v,searchQuery:e,categoryCounts:f??{},catalogueTotal:p??0,total:o.pages[0]?.total??0,category:i,onCategoryChange:a,hasMore:!!u,loadingMore:d,onLoadMore:l,installedNames:y,editable:n,kind:`api`,installingName:h.isPending?h.variables?.name??null:null,actionError:h.isError?{name:h.variables?.name??``,message:h.error instanceof Error?h.error.message:String(h.error)}:null,onInstall:e=>h.mutate(e)})},C_n=({onSelect:e})=>{let[t,n]=(0,g.useState)(`addons`),[r,i]=(0,g.useState)(`all`),[a,o]=(0,g.useState)(``);_e();let s=e=>{o(``),n(e)},c=[{value:`addons`,label:K.packages_tab_addons()},{value:`apis`,label:K.packages_tab_apis()}],l=[{value:`all`,label:K.packages_filter_all()},{value:`official`,label:K.packages_filter_official()},{value:`installed`,label:K.packages_filter_installed()}];return(0,A.jsx)(k2,{hidePanel:!0,header:(0,A.jsx)(lT,{title:K.packages_title(),description:K.packages_description(),docsHref:`https://pikku.dev/docs/external-packages`,filters:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(_v,{placeholder:t===`apis`?K.packages_search_apis_placeholder():K.packages_search_addons_placeholder(),leftSection:(0,A.jsx)(ow,{size:14}),value:a,onChange:e=>o(e.target.value),size:`xs`,style:{width:240}}),t===`addons`&&(0,A.jsx)(_p,{size:`xs`,value:r,onChange:e=>i(e),data:l}),(0,A.jsx)(_p,{size:`xs`,value:t,onChange:s,data:c})]})}),children:t===`apis`?(0,A.jsx)(S_n,{searchQuery:a}):(0,A.jsx)(b_n,{searchQuery:a,filter:r,onSelect:e})})},w_n=()=>{let[e,t]=sv(),n=e.get(`id`),r=e.get(`source`)??`community`;return n?(0,A.jsx)(Xgn,{id:n,source:r,onBack:()=>t({})}):(0,A.jsx)(C_n,{onSelect:(e,n)=>t({id:e,source:n})})},T_n=()=>(0,A.jsx)(hT,{children:(0,A.jsx)(w_n,{})}),E_n=({searchQuery:e=``,emptyHero:t})=>{_e();let{meta:n}=Vw(),r=Ng(),i=ov(),a=(0,g.useMemo)(()=>{let e=n.credentialsMeta??{};return Object.entries(e).filter(([,e])=>(e.type||`singleton`)===`singleton`).map(([e,t])=>({name:e,displayName:t.displayName||e,description:t.description,type:`singleton`,isOAuth2:!!t.oauth2}))},[n]),{data:o}=Fr({queryKey:[`credential-owners`],queryFn:async()=>{let e=await r.invoke(`console:getInstalledAddons`),t={};return await Promise.all((e??[]).map(async e=>{let n=await r.invoke(`console:getAddonInstalledPackage`,{packageName:e.packageName});for(let r of Object.keys(n?.credentials??{}))t[r]={packageName:e.packageName,namespace:e.namespace}})),t},enabled:a.length>0,staleTime:60*1e3}),s=(0,g.useMemo)(()=>{if(!e)return a;let t=e.toLowerCase();return a.filter(e=>e.name.toLowerCase().includes(t)||e.displayName.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||o?.[e.name]?.namespace.toLowerCase().includes(t))},[a,e,o]),c=(0,g.useMemo)(()=>new Map(s.map(e=>[e.name,e])),[s]),{data:l}=Fr({queryKey:[`credential-global-status`],queryFn:async()=>{let e=a.filter(e=>e.type===`singleton`);if(e.length===0)return{};try{return(await r.invoke(`console:credentialStatus`,{names:e.map(e=>e.name)})).statuses??{}}catch{return{}}},enabled:a.length>0});return(0,A.jsx)(j,{p:`md`,children:(0,A.jsx)(Z2,{items:(0,g.useMemo)(()=>s.map(e=>{let t=o?.[e.name];return{name:e.name,displayName:e.displayName,description:e.description,badges:[{label:e.isOAuth2?K.credentials_type_oauth2():K.credentials_type_api_key(),tone:e.isOAuth2?`accent`:`neutral`}],tags:t?[t.namespace]:void 0}}),[s,o]),loading:!1,icon:WC,emptyHero:t,emptyTitle:K.credentials_empty_title(),emptyDescription:K.credentials_empty_description(),docsHref:`https://pikku.dev/docs/core-features/credentials`,onOpen:e=>{let t=o?.[e];t&&i(`/addons?id=${encodeURIComponent(t.packageName)}&source=installed`)},metricSlot:e=>{let t=c.get(e);return t?(0,A.jsx)(D_n,{credential:t,isConnected:l?.[e]===!0}):null}})})},D_n=({credential:e,isConnected:t})=>{_e();let n=Ng(),r=ev(),i=Sr(),a=Ir({mutationFn:async()=>{let{data:t,error:n}=await r.client.$fetch(`/credential-oauth/link`,{method:`POST`,body:{providerId:e.name,callbackURL:window.location.href}});if(n)throw Error(n.message??K.credentials_connect_failed());if(!t?.url)throw Error(K.credentials_connect_failed());window.location.href=t.url}}),o=Ir({mutationFn:async()=>{await n.invoke(`console:credentialDelete`,{name:e.name})},onSuccess:()=>{i.invalidateQueries({queryKey:[`credential-global-status`]})}});return(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,onClick:e=>e.stopPropagation(),children:[(0,A.jsxs)(Gl,{gap:6,wrap:`nowrap`,children:[t?(0,A.jsx)(kC,{size:8,fill:`var(--mantine-color-teal-6)`,color:`var(--mantine-color-teal-6)`}):(0,A.jsx)(kC,{size:8,color:`var(--mantine-color-gray-5)`}),(0,A.jsx)(z,{size:`sm`,c:t?`teal.6`:`dimmed`,children:t?K.credentials_connected():K.credentials_not_connected()})]}),e.isOAuth2&&(t?(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,disabled:!r?.user,onClick:()=>a.mutate(),loading:a.isPending,children:K.credentials_reconnect()}),(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,color:`red`,onClick:()=>o.mutate(),loading:o.isPending,children:K.credentials_disconnect()})]}):(0,A.jsx)(cv,{size:`compact-xs`,disabled:!r?.user,onClick:()=>a.mutate(),loading:a.isPending,leftSection:(0,A.jsx)(qC,{size:12}),children:K.credentials_connect()})),a.isError&&(0,A.jsx)(gv,{color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:14}),p:`xs`,children:B(String(a.error?.message||a.error))})]})},O_n=({searchQuery:e=``})=>{let{meta:t,loading:n}=Vw(),r=Ng();_e();let{openCredentialUser:i}=mT(),a=(0,g.useMemo)(()=>{let e=t.credentialsMeta??{};return Object.entries(e).map(([e,t])=>({name:e,displayName:t.displayName||e,type:t.type||`singleton`,isOAuth2:!!t.oauth2}))},[t]),o=(0,g.useMemo)(()=>a.filter(e=>e.type===`wire`),[a]),{data:s,isLoading:c}=Fr({queryKey:[`credential-list-users`],queryFn:async()=>(await r.invoke(`console:credentialListUsers`)).users??[],enabled:o.length>0}),l=n||c,u=(0,g.useMemo)(()=>{if(!s)return[];let e=o.length;return s.map(t=>{let n=Object.values(t.credentials).filter(Boolean).length;return{...t,connectedCount:n,totalCount:e,isComplete:n===e}})},[s,o]),d=(0,g.useMemo)(()=>{if(!e)return u;let t=e.toLowerCase();return u.filter(e=>e.userId.toLowerCase().includes(t))},[u,e]),f=(0,g.useMemo)(()=>[{key:`userId`,header:`USER`,render:e=>(0,A.jsx)(z,{size:`sm`,ff:`monospace`,fw:500,children:B(e.userId)})},{key:`credentials`,header:`CREDENTIALS`,render:e=>(0,A.jsx)(Gl,{gap:6,wrap:`wrap`,children:o.map(t=>e.credentials[t.name]?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`teal`,leftSection:(0,A.jsx)(wC,{size:10}),children:B(t.displayName)},t.name):(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`gray`,children:B(t.displayName)},t.name))})},{key:`status`,header:`STATUS`,width:80,render:e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:e.isComplete?`teal`:`orange`,children:B(`${e.connectedCount}/${e.totalCount}`)})}],[o]);return l?(0,A.jsx)(ud,{h:`100%`,children:(0,A.jsx)(zl,{})}):o.length===0?(0,A.jsx)(A2,{icon:hw,title:K.credential_users_empty_title(),description:K.credential_users_empty_description(),docsHref:`https://pikku.dev/docs/core-features/credentials`}):(0,A.jsx)(j2,{title:`Credential Users`,icon:hw,docsHref:`https://pikku.dev/docs/core-features/credentials`,data:d,columns:f,getKey:e=>e.userId,onRowClick:e=>i(e.userId,{credentials:e.credentials,credentialsMeta:o.map(e=>({name:e.name,displayName:e.displayName,isOAuth2:e.isOAuth2}))}),emptyMessage:K.credential_users_empty_message()})},k_n=({searchQuery:e=``,emptyHero:t})=>{_e();let{meta:n}=Vw(),r=Ng(),i=ev(),a=ov(),o=(0,g.useMemo)(()=>{let e=n.credentialsMeta??{};return Object.entries(e).filter(([,e])=>e.type===`wire`&&!!e.oauth2).map(([e,t])=>({name:e,displayName:t.displayName||e,description:t.description}))},[n]),{data:s}=Fr({queryKey:[`credential-owners`],queryFn:async()=>{let e=await r.invoke(`console:getInstalledAddons`),t={};return await Promise.all((e??[]).map(async e=>{let n=await r.invoke(`console:getAddonInstalledPackage`,{packageName:e.packageName});for(let r of Object.keys(n?.credentials??{}))t[r]={packageName:e.packageName,namespace:e.namespace}})),t},enabled:o.length>0,staleTime:60*1e3}),c=(0,g.useMemo)(()=>{if(!e)return o;let t=e.toLowerCase();return o.filter(e=>e.name.toLowerCase().includes(t)||e.displayName.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||s?.[e.name]?.namespace.toLowerCase().includes(t))},[o,e,s]),l=(0,g.useMemo)(()=>new Map(c.map(e=>[e.name,e])),[c]),{data:u}=Fr({queryKey:[`linked-accounts`,i?.user?.id],enabled:!!i?.user,queryFn:async()=>{let{data:e}=await i.client.listAccounts();return new Set((e??[]).map(e=>e.providerId))}}),d=(0,g.useMemo)(()=>c.map(e=>{let t=s?.[e.name];return{name:e.name,displayName:e.displayName,description:e.description,badges:[{label:K.credentials_type_oauth2(),tone:`accent`}],tags:t?[t.namespace]:void 0}}),[c,s]);return(0,A.jsx)(j,{p:`md`,children:(0,A.jsxs)(Ip,{gap:`md`,children:[!i?.user&&(0,A.jsx)(gv,{color:`yellow`,variant:`light`,children:K.credentials_connections_signed_out()}),(0,A.jsx)(Z2,{items:d,loading:!1,icon:qC,emptyHero:t,emptyTitle:K.credentials_connections_empty_title(),emptyDescription:K.credentials_connections_empty_description(),docsHref:`https://pikku.dev/docs/core-features/credentials`,onOpen:e=>{let t=s?.[e];t&&a(`/addons?id=${encodeURIComponent(t.packageName)}&source=installed`)},metricSlot:e=>{let t=l.get(e);return t?(0,A.jsx)(A_n,{credential:t,isConnected:u?.has(e)??!1,disabled:!i?.user}):null}})]})})},A_n=({credential:e,isConnected:t,disabled:n})=>{_e();let r=ev(),i=Sr(),a=()=>i.invalidateQueries({queryKey:[`linked-accounts`]}),o=Ir({mutationFn:async()=>{let{data:t,error:n}=await r.client.$fetch(`/credential-oauth/link`,{method:`POST`,body:{providerId:e.name,callbackURL:window.location.href}});if(n)throw Error(n.message??K.credentials_connect_failed());if(!t?.url)throw Error(K.credentials_connect_failed());window.location.href=t.url}}),s=Ir({mutationFn:async()=>{let{error:t}=await r.client.unlinkAccount({providerId:e.name});if(t)throw Error(t.message??K.credentials_disconnect_failed())},onSuccess:a}),c=o.error??s.error;return(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,onClick:e=>e.stopPropagation(),children:[(0,A.jsxs)(Gl,{gap:6,wrap:`nowrap`,children:[t?(0,A.jsx)(kC,{size:8,fill:`var(--mantine-color-teal-6)`,color:`var(--mantine-color-teal-6)`}):(0,A.jsx)(kC,{size:8,color:`var(--mantine-color-gray-5)`}),(0,A.jsx)(z,{size:`sm`,c:t?`teal.6`:`dimmed`,children:t?K.credentials_connected():K.credentials_not_connected()})]}),t?(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,disabled:n,onClick:()=>o.mutate(),loading:o.isPending,children:K.credentials_reconnect()}),(0,A.jsx)(cv,{size:`compact-xs`,variant:`light`,color:`red`,disabled:n,onClick:()=>s.mutate(),loading:s.isPending,children:K.credentials_disconnect()})]}):(0,A.jsx)(cv,{size:`compact-xs`,disabled:n,onClick:()=>o.mutate(),loading:o.isPending,leftSection:(0,A.jsx)(qC,{size:12}),children:K.credentials_connect()}),c&&(0,A.jsx)(gv,{color:`red`,variant:`light`,icon:(0,A.jsx)(pw,{size:14}),p:`xs`,children:B(String(c?.message||c))})]})},j_n=({emptyHero:e})=>{_e();let[t,n]=sv(),[r,i]=(0,g.useState)(``),a=t.get(`tab`),o=a===`users`||a===`connections`||a===`credentials`?a:`credentials`;return(0,A.jsx)(hT,{children:(0,A.jsx)(k2,{header:(0,A.jsx)(lT,{title:K.credentials_title(),description:K.credentials_description(),docsHref:`https://pikku.dev/docs/core-features/credentials`,search:{placeholder:o===`users`?K.credentials_search_users():o===`connections`?K.credentials_search_connections():K.credentials_search_credentials(),value:r,onChange:i,width:240},selection:{ariaLabel:K.credentials_tab_aria(),value:o,onChange:e=>{i(``),n({tab:e})},options:[{value:`credentials`,label:K.credentials_tab_global()},{value:`connections`,label:K.credentials_tab_connections()},{value:`users`,label:K.credentials_tab_users()}]}}),emptyPanelMessage:K.credentials_select_user(),hidePanel:o!==`users`,children:o===`users`?(0,A.jsx)(O_n,{searchQuery:r}):o===`connections`?(0,A.jsx)(k_n,{searchQuery:r,emptyHero:e}):(0,A.jsx)(E_n,{searchQuery:r,emptyHero:e})})})},M_n=[`scope-roles`],N_n=[`scope-declared`],P_n=e=>[`scope-user-roles`,e];function F_n(e,t){return{onMutate:async n=>{let r=P_n(n.userId);await e.cancelQueries({queryKey:r});let i=e.getQueryData(r);return i&&e.setQueryData(r,t(i,n)),{key:r,previous:i}},onError:(t,n,r)=>{r?.previous&&e.setQueryData(r.key,r.previous)},onSettled:(t,n,r)=>e.invalidateQueries({queryKey:P_n(r.userId)})}}var I_n=(e,t)=>e.includes(t)?e:[...e,t];function L_n(){let e=Ng();return Fr({queryKey:N_n,queryFn:async()=>await e.invoke(`console:scopeListDeclared`)})}function R_n(){let e=Ng();return Fr({queryKey:M_n,queryFn:async()=>await e.invoke(`console:scopeListRoles`)})}function z_n(e,t){let n=Ng();return Fr({queryKey:P_n(e??``),queryFn:async()=>await n.invoke(`console:scopeListUserRoles`,{userId:e}),enabled:!!e&&t})}function B_n(){let e=Ng(),t=Sr();return Ir({mutationFn:t=>e.invoke(`console:scopeCreateRole`,t),onSuccess:()=>t.invalidateQueries({queryKey:M_n})})}function V_n(){let e=Ng(),t=Sr();return Ir({mutationFn:t=>e.invoke(`console:scopeSetRoleScopes`,t),onSuccess:()=>t.invalidateQueries({queryKey:M_n})})}function H_n(){let e=Ng(),t=Sr();return Ir({mutationFn:t=>e.invoke(`console:scopeDeleteRole`,{name:t}),onSuccess:()=>t.invalidateQueries({queryKey:M_n})})}function U_n(){let e=Ng();return Ir({mutationFn:t=>e.invoke(`console:scopeAddUserToRole`,t),...F_n(Sr(),(e,{role:t})=>({...e,roles:e.roles.includes(t)?e.roles:[...e.roles,t]}))})}function W_n(){let e=Ng();return Ir({mutationFn:t=>e.invoke(`console:scopeRemoveUserFromRole`,t),...F_n(Sr(),(e,{role:t})=>({...e,roles:e.roles.filter(e=>e!==t)}))})}function G_n(){let e=Ng();return Ir({mutationFn:t=>e.invoke(`console:scopeAddScopeToUser`,t),...F_n(Sr(),(e,{scope:t})=>({...e,directScopes:I_n(e.directScopes,t),scopes:I_n(e.scopes,t)}))})}function K_n(){let e=Ng();return Ir({mutationFn:t=>e.invoke(`console:scopeRemoveScopeFromUser`,t),...F_n(Sr(),(e,{scope:t})=>({...e,directScopes:e.directScopes.filter(e=>e!==t)}))})}var q_n=(e,t,n)=>n||!e.declared&&!t,J_n=(e,t)=>t.startsWith(`${e}:`),Y_n=(e,t)=>e.some(e=>e===t||J_n(e,t)),X_n=(e,t)=>e.some(e=>e!==t&&J_n(e,t)),Z_n=(e,t)=>X_n(e,t)?e:e.includes(t)?e.filter(e=>e!==t):[...e.filter(e=>!J_n(t,e)),t],Q_n=(e,t)=>{let n=new Set(e),r=new Set(t);return{added:t.filter(e=>!n.has(e)),removed:e.filter(e=>!r.has(e))}},$_n=e=>e.map(t=>{let n=t.id.split(`:`),r=`${t.id}:`;return{...t,depth:n.length-1,segment:n[n.length-1],hasChildren:e.some(e=>e.id.startsWith(r))}}),evn=({scopes:e,selected:t,onChange:n,disabled:r=!1})=>{let i=$_n(e);return i.length===0?(0,A.jsx)(z,{c:`dimmed`,size:`sm`,py:`sm`,children:K.scopes_none_declared()}):(0,A.jsx)(Ip,{gap:2,children:i.map(e=>{let i=Y_n(t,e.id),a=X_n(t,e.id);return(0,A.jsx)(j,{pl:e.depth*20,children:(0,A.jsx)(Ebe,{checked:i,onChange:()=>n(Z_n(t,e.id)),disabled:q_n(e,i,r)||a,"aria-label":e.description?`${e.id} — ${e.description}`:e.id,label:(0,A.jsxs)(Gl,{gap:8,wrap:`nowrap`,children:[(0,A.jsx)(z,{size:`sm`,fw:e.hasChildren?600:400,children:B(e.segment)}),e.description&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:B(e.description)}),!e.declared&&(0,A.jsx)(z,{size:`xs`,c:`orange`,children:K.scopes_state_stale()})]})})},e.id)})})},tvn=({opened:e,onClose:t,userId:n,userLabel:r})=>{let i=z_n(n,e),a=R_n(),o=L_n(),s=U_n(),c=W_n(),l=G_n(),u=K_n(),d=i.data?.roles??[],f=i.data?.scopes??[],p=i.data?.directScopes??[],m=o.data?.scopes??[],h=(a.data?.roles??[]).map(e=>e.name).filter(e=>!d.includes(e)),g=l.error||u.error||s.error||c.error;return(0,A.jsx)(hv,{opened:e,onClose:t,position:`right`,size:420,title:K.scopes_user_roles_title({label:r}),children:i.isLoading?(0,A.jsx)(ud,{py:`xl`,children:(0,A.jsx)(zl,{})}):(0,A.jsxs)(Ip,{gap:`md`,children:[g&&(0,A.jsx)(gv,{color:`red`,variant:`light`,title:K.scopes_grant_failed(),children:B(g.message)}),(0,A.jsx)(z,{size:`sm`,fw:500,children:K.scopes_roles_title()}),d.length===0?(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.scopes_user_no_roles()}):(0,A.jsx)(Gl,{gap:8,children:d.map(e=>(0,A.jsx)(uv,{variant:`light`,size:`lg`,rightSection:(0,A.jsx)(bbe,{size:`xs`,"aria-label":K.scopes_revoke_role({role:e}),disabled:!n,onClick:()=>{n&&c.mutate({userId:n,role:e})}}),children:B(e)},e))}),(0,A.jsxs)(Sv,{position:`bottom-start`,disabled:h.length===0,children:[(0,A.jsx)(Sv.Target,{children:(0,A.jsx)(cv,{variant:`light`,size:`sm`,leftSection:(0,A.jsx)(CUe,{size:14}),disabled:h.length===0,w:`fit-content`,children:K.scopes_add_role()})}),(0,A.jsx)(Sv.Dropdown,{children:h.map(e=>(0,A.jsx)(Sv.Item,{onClick:()=>n&&s.mutate({userId:n,role:e}),children:B(e)},e))})]}),(0,A.jsx)(pv,{label:K.scopes_direct_scopes(),labelPosition:`left`}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:K.scopes_direct_scopes_hint()}),(0,A.jsx)(j,{mah:360,style:{overflowY:`auto`},children:(0,A.jsx)(evn,{scopes:m,selected:p,onChange:e=>{if(!n)return;let{added:t,removed:r}=Q_n(p,e);t.forEach(e=>l.mutate({userId:n,scope:e})),r.forEach(e=>u.mutate({userId:n,scope:e}))},disabled:!n})}),(0,A.jsx)(pv,{label:K.scopes_resolved_scopes(),labelPosition:`left`}),f.length===0?(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.scopes_no_resolved()}):(0,A.jsx)(j,{children:(0,A.jsx)(Gl,{gap:6,children:f.map(e=>(0,A.jsx)(uv,{variant:`outline`,color:`gray`,size:`sm`,styles:{label:{fontFamily:`monospace`}},children:B(e)},e))})})]})})},nvn=({user:e})=>e.banned===void 0?null:e.banned?(0,A.jsx)(uv,{color:`red`,variant:`light`,size:`sm`,children:K.users_status_banned()}):(0,A.jsx)(uv,{color:`gray`,variant:`light`,size:`sm`,children:K.users_status_active()}),rvn={ban:`admin:users:ban`,unban:`admin:users:ban`,revoke:`admin:users:sessions`,password:`admin:users:password`,remove:`admin:users:remove`},ivn=({user:e,onAction:t,onUnbanned:n})=>{let{can:r,setUserBanned:i}=$_(),a=r(rvn.ban),o=r(rvn.revoke),s=r(rvn.password),c=r(rvn.remove);return!a&&!o&&!s&&!c?null:(0,A.jsxs)(Sv,{position:`bottom-end`,withinPortal:!0,children:[(0,A.jsx)(Sv.Target,{children:(0,A.jsx)(dv,{variant:`subtle`,color:`gray`,"aria-label":K.users_more_actions(),children:(0,A.jsx)(LC,{size:16})})}),(0,A.jsxs)(Sv.Dropdown,{children:[a&&(e.banned?(0,A.jsx)(Sv.Item,{leftSection:(0,A.jsx)(WUe,{size:14}),onClick:async()=>{await i({userId:e.id,banned:!1}),n()},children:K.users_unban_action()}):(0,A.jsx)(Sv.Item,{leftSection:(0,A.jsx)(xC,{size:14}),onClick:()=>t(`ban`),children:K.users_ban_action()})),o&&(0,A.jsx)(Sv.Item,{leftSection:(0,A.jsx)(pUe,{size:14}),onClick:()=>t(`revoke`),children:K.users_revoke_sessions_action()}),s&&(0,A.jsx)(Sv.Item,{leftSection:(0,A.jsx)(WC,{size:14}),onClick:()=>t(`password`),children:K.users_set_password_action()}),c&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(Sv.Divider,{}),(0,A.jsx)(Sv.Item,{color:`red`,leftSection:(0,A.jsx)(VUe,{size:14}),onClick:()=>t(`remove`),children:K.users_remove_action()})]})]})]})},avn=({action:e,user:t,onClose:n,onDone:r})=>{let{setUserBanned:i,removeUser:a,revokeUserSessions:o,setUserPassword:s}=$_(),[c,l]=(0,g.useState)(``),[u,d]=(0,g.useState)(``),[f,p]=(0,g.useState)(null),[m,h]=(0,g.useState)(!1);(0,g.useEffect)(()=>{e&&(l(``),d(``),p(null))},[e,t?.id]);let _=t?.email??``,v=async()=>{if(t){h(!0),p(null);try{e===`ban`?await i({userId:t.id,banned:!0,...c.trim()?{reason:c.trim()}:{}}):e===`remove`?await a(t.id):e===`revoke`?await o(t.id):e===`password`&&await s(t.id,u),r(),n()}catch(e){p(e.message||K.users_action_failed())}finally{h(!1)}}},y=e===`ban`?K.users_ban_confirm_title():e===`remove`?K.users_remove_confirm_title():e===`revoke`?K.users_revoke_confirm_title():K.users_set_password_title(),b=e===`ban`?K.users_ban_confirm_body({email:_}):e===`remove`?K.users_remove_confirm_body({email:_}):e===`revoke`?K.users_revoke_confirm_body({email:_}):K.users_set_password_body({email:_}),x=e===`ban`?K.users_ban_action():e===`remove`?K.users_remove_action():e===`revoke`?K.users_revoke_sessions_action():K.users_set_password_action();return(0,A.jsx)(hv,{opened:e!==null&&t!==null,onClose:n,position:`right`,size:420,title:y,children:(0,A.jsxs)(Ip,{gap:`md`,children:[(0,A.jsx)(z,{size:`sm`,children:b}),e===`ban`&&(0,A.jsx)(yv,{label:K.users_ban_reason_label(),value:c,onChange:e=>l(e.currentTarget.value),autosize:!0,minRows:2}),e===`password`&&(0,A.jsx)(vv,{label:K.users_set_password_label(),value:u,onChange:e=>d(e.currentTarget.value)}),f&&(0,A.jsx)(gv,{color:`red`,variant:`light`,children:(0,A.jsx)(z,{size:`sm`,children:B(f)})}),(0,A.jsxs)(Gl,{justify:`flex-end`,gap:`sm`,children:[(0,A.jsx)(cv,{variant:`subtle`,onClick:n,disabled:m,children:K.common_cancel()}),(0,A.jsx)(cv,{color:e===`password`?void 0:`red`,loading:m,disabled:e===`password`&&u.length===0,onClick:v,children:x})]})]})})},ovn=({opened:e,onClose:t,onDone:n})=>{let{createUser:r}=$_(),[i,a]=(0,g.useState)(``),[o,s]=(0,g.useState)(``),[c,l]=(0,g.useState)(``),[u,d]=(0,g.useState)(null),[f,p]=(0,g.useState)(!1);return(0,g.useEffect)(()=>{e&&(a(``),s(``),l(``),d(null))},[e]),(0,A.jsx)(hv,{opened:e,onClose:t,position:`right`,size:420,title:K.users_create_title(),children:(0,A.jsxs)(Ip,{gap:`md`,children:[(0,A.jsx)(z,{size:`sm`,children:K.users_create_body()}),(0,A.jsx)(_v,{label:K.users_create_email_label(),value:i,onChange:e=>a(e.currentTarget.value),"data-testid":`create-user-email`}),(0,A.jsx)(_v,{label:K.users_create_name_label(),value:o,onChange:e=>s(e.currentTarget.value),"data-testid":`create-user-name`}),(0,A.jsx)(vv,{label:K.users_create_password_label(),value:c,onChange:e=>l(e.currentTarget.value),"data-testid":`create-user-password`}),u&&(0,A.jsx)(gv,{color:`red`,variant:`light`,children:(0,A.jsx)(z,{size:`sm`,children:B(u)})}),(0,A.jsxs)(Gl,{justify:`flex-end`,gap:`sm`,children:[(0,A.jsx)(cv,{variant:`subtle`,onClick:t,disabled:f,children:K.common_cancel()}),(0,A.jsx)(cv,{loading:f,disabled:i.trim().length===0||c.length===0,onClick:async()=>{p(!0),d(null);try{await r({email:i.trim(),password:c,...o.trim()?{name:o.trim()}:{}}),n(),t()}catch(e){d(e.message||K.users_action_failed())}finally{p(!1)}},"data-testid":`create-user-submit`,children:K.users_create_action()})]})]})})},svn=()=>{_e();let{listUsers:e,can:t}=$_(),[n,r]=(0,g.useState)(``),[i,a]=(0,g.useState)(!1),[o]=bi(n,250),[s,c]=(0,g.useState)(null),[l,u]=(0,g.useState)(null),d=Fr({queryKey:[`admin-users`,o],queryFn:()=>e(o||void 0)}),f=d.data??[],p=()=>{d.refetch()};return(0,A.jsxs)(uT,{header:(0,A.jsx)(lT,{title:K.users_title(),docsHref:`https://pikku.dev/docs/core-features/permission-guards`,search:{placeholder:K.users_search_placeholder(),value:n,onChange:r,width:240},lead:t(`admin:users:create`)?(0,A.jsx)(cv,{size:`compact-sm`,leftSection:(0,A.jsx)(qUe,{size:14}),onClick:()=>a(!0),"data-testid":`create-user`,children:K.users_create_action()}):void 0}),children:[d.error?(0,A.jsx)(gv,{icon:(0,A.jsx)(pw,{size:16}),color:`red`,variant:`light`,children:(0,A.jsx)(z,{size:`sm`,children:B(d.error.message)})}):(0,A.jsx)(j2,{icon:mw,title:K.users_title(),docsHref:`https://pikku.dev/docs/core-features/permission-guards`,data:f,getKey:e=>e.id,loading:d.isLoading,externalSearch:n,emptyTitle:K.users_empty(),columns:[{key:`user`,header:K.users_col_user(),render:e=>(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(Cbe,{src:e.image??void 0,radius:`xl`,size:`sm`,children:(e.name??e.email).slice(0,1).toUpperCase()}),(0,A.jsxs)(j,{style:{minWidth:0},children:[e.name&&(0,A.jsx)(z,{size:`sm`,fw:500,truncate:!0,children:B(e.name)}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,truncate:!0,children:B(e.email)})]})]})},...f.some(e=>e.banned!==void 0)?[{key:`status`,header:K.users_col_status(),render:e=>(0,A.jsx)(nvn,{user:e})}]:[],{key:`created`,header:K.users_col_created(),render:e=>(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:e.createdAt?B(new Date(e.createdAt).toLocaleDateString()):K.users_empty_created()})},{key:`actions`,header:``,align:`right`,render:e=>(0,A.jsxs)(Gl,{gap:6,justify:`flex-end`,wrap:`nowrap`,children:[(0,A.jsx)(cv,{size:`compact-sm`,variant:`subtle`,leftSection:(0,A.jsx)(lw,{size:14}),onClick:()=>c({id:e.id,label:e.email??e.id}),children:K.users_roles_action()}),(0,A.jsx)(ivn,{user:e,onAction:t=>u({action:t,user:e}),onUnbanned:p})]})}]}),(0,A.jsx)(tvn,{opened:s!==null,onClose:()=>c(null),userId:s?.id,userLabel:s?.label??``}),(0,A.jsx)(ovn,{opened:i,onClose:()=>a(!1),onDone:p}),(0,A.jsx)(avn,{action:l?.action??null,user:l?.user??null,onClose:()=>u(null),onDone:p})]})},cvn=({opened:e,onClose:t,role:n,declaredScopes:r})=>{let i=n===null,[a,o]=(0,g.useState)(``),[s,c]=(0,g.useState)(``),[l,u]=(0,g.useState)([]),[d,f]=(0,g.useState)(!1),[p,m]=(0,g.useState)(null),h=B_n(),_=V_n(),v=H_n();(0,g.useEffect)(()=>{e&&(o(n?.name??``),c(n?.description??``),u(n?.scopes??[]),f(!1),m(null))},[e,n]);let y=h.isPending||_.isPending||v.isPending,b=async()=>{if(i){if(a.trim().length===0){m(K.scopes_name_required());return}await h.mutateAsync({name:a.trim(),description:s.trim()||void 0,scopes:l})}else await _.mutateAsync({name:n.name,scopes:l});t()},x=async()=>{if(!i){if(!d){f(!0);return}await v.mutateAsync(n.name),t()}},S=h.error||_.error||v.error;return(0,A.jsx)(hv,{opened:e,onClose:t,position:`right`,size:480,title:i?K.scopes_create_role():K.scopes_edit_role({name:n.name}),children:(0,A.jsxs)(Ip,{gap:`md`,children:[(0,A.jsx)(_v,{label:K.scopes_name(),placeholder:K.scopes_name_placeholder(),value:a,onChange:e=>{o(e.currentTarget.value),p&&m(null)},disabled:!i,withAsterisk:i,error:p,"data-autofocus":i}),(0,A.jsx)(yv,{label:K.scopes_col_description(),placeholder:K.scopes_description_placeholder(),value:s,onChange:e=>c(e.currentTarget.value),disabled:!i,description:i?void 0:K.scopes_description_locked(),autosize:!0,minRows:1}),(0,A.jsx)(pv,{label:K.scopes_in_this_role(),labelPosition:`left`}),(0,A.jsx)(j,{mah:360,style:{overflowY:`auto`},children:(0,A.jsx)(evn,{scopes:r,selected:l,onChange:u})}),S&&(0,A.jsx)(z,{c:`red`,size:`sm`,children:B(S.message)}),(0,A.jsxs)(Gl,{justify:`space-between`,mt:`sm`,children:[i?(0,A.jsx)(`span`,{}):(0,A.jsx)(cv,{color:`red`,variant:d?`filled`:`subtle`,leftSection:(0,A.jsx)(VUe,{size:14}),onClick:x,loading:v.isPending,children:d?K.scopes_delete_confirm({name:n.name}):K.scopes_delete_role()}),(0,A.jsx)(cv,{onClick:b,loading:y&&!v.isPending,children:K.common_save()})]})]})})},lvn=e=>e instanceof Eg&&e.status===403,uvn=`https://pikku.dev/docs/authentication/scopes`,dvn=({search:e,editing:t,drawerOpen:n,onOpenRole:r,onCloseDrawer:i})=>{let a=R_n(),o=L_n(),s=a.data?.roles??[],c=o.data?.scopes??[],l=a.error||o.error;return l?lvn(l)?(0,A.jsx)(gv,{color:`yellow`,title:K.scopes_roles_forbidden_title(),children:K.scopes_roles_forbidden_body()}):(0,A.jsx)(gv,{color:`red`,title:K.scopes_roles_load_error(),children:l instanceof Error?B(l.message):null}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(j2,{icon:XUe,title:K.scopes_roles_title(),docsHref:uvn,data:s,getKey:e=>e.name,onRowClick:e=>r(e),loading:a.isLoading,externalSearch:e,searchFilter:(e,t)=>e.name.toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t),emptyTitle:K.scopes_no_roles_title(),emptyDescription:K.scopes_no_roles_description(),columns:[{key:`name`,header:K.scopes_col_role(),render:e=>(0,A.jsx)(z,{size:`sm`,fw:500,children:B(e.name)})},{key:`description`,header:K.scopes_col_description(),render:e=>(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description||`—`)})},{key:`scopes`,header:K.scopes_col_scopes(),align:`right`,width:100,render:e=>(0,A.jsx)(uv,{variant:`light`,color:`gray`,size:`sm`,children:e.scopes.length})}]}),(0,A.jsx)(cvn,{opened:n,onClose:i,role:t,declaredScopes:c})]})},fvn=`https://pikku.dev/docs/authentication/scopes`,pvn=({search:e})=>{let t=L_n(),n=$_n(t.data?.scopes??[]);if(t.isError){let e=t.error;return lvn(e)?(0,A.jsx)(gv,{color:`yellow`,title:K.scopes_vocab_forbidden_title(),children:K.scopes_vocab_forbidden_body()}):(0,A.jsx)(gv,{color:`red`,title:K.scopes_vocab_load_error(),children:e instanceof Error?B(e.message):null})}return(0,A.jsx)(j2,{icon:uw,title:K.scopes_vocab_title(),docsHref:fvn,data:n,getKey:e=>e.id,loading:t.isLoading,externalSearch:e,searchFilter:(e,t)=>e.id.toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t),emptyTitle:K.scopes_no_declared_title(),emptyDescription:K.scopes_no_declared_description(),columns:[{key:`id`,header:K.scopes_col_scope(),render:e=>(0,A.jsx)(z,{size:`sm`,ff:`monospace`,fw:e.hasChildren?600:400,c:e.declared?void 0:`dimmed`,children:B(e.id)})},{key:`description`,header:K.scopes_col_description(),render:e=>(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description||`—`)})},{key:`state`,header:K.scopes_col_state(),align:`right`,width:120,render:e=>e.declared?(0,A.jsx)(Gl,{justify:`flex-end`,gap:6,children:(0,A.jsx)(uv,{variant:`dot`,color:`green`,size:`sm`,children:K.scopes_state_declared()})}):(0,A.jsx)(uv,{variant:`light`,color:`orange`,size:`sm`,children:K.scopes_state_stale()})}]})},mvn=()=>{_e();let[e,t]=(0,g.useState)(`roles`),[n,r]=(0,g.useState)(``),[i,a]=(0,g.useState)(null),[o,s]=(0,g.useState)(!1),c=e=>{a(e),s(!0)},l=e=>{t(e),r(``)};return(0,A.jsx)(uT,{header:(0,A.jsx)(lT,{title:K.scopes_page_title(),description:e===`roles`?K.scopes_page_desc_roles():K.scopes_page_desc_vocab(),docsHref:`https://pikku.dev/docs/core-features/permission-guards`,lead:e===`roles`?(0,A.jsx)(cv,{size:`xs`,leftSection:(0,A.jsx)(CUe,{size:14}),onClick:()=>c(null),children:K.scopes_create_role()}):void 0,filters:(0,A.jsx)(_p,{size:`sm`,value:e,onChange:e=>l(e),data:[{label:K.scopes_tab_roles(),value:`roles`},{label:K.scopes_tab_scopes(),value:`scopes`}]}),search:{placeholder:e===`roles`?K.scopes_search_roles():K.scopes_search_scopes(),value:n,onChange:r,width:240}}),children:e===`roles`?(0,A.jsx)(dvn,{search:n,editing:i,drawerOpen:o,onOpenRole:c,onCloseDrawer:()=>s(!1)}):(0,A.jsx)(pvn,{search:n})})},hvn={functionNode:JN,wiringNode:tit,channelNode:git,decisionNode:_it,sleepNode:vit,inlineNode:bit,genericNode:Rit,branchNode:YN,fanoutNode:XN,returnNode:Cit,cancelNode:Tit,switchNode:Dit,arrayPredicateNode:kit,filterNode:jit,parallelNode:ZN,channelWiringNode:Pit,setNode:Iit},gvn={elk:Bit},_vn=({workflow:e})=>{let{fitView:t}=Ztt(),{nodes:n,edges:r}=(0,g.useMemo)(()=>Wit(e),[e]),i=Jit(n,r),[a,o]=xrt([]),[s,c]=Srt([]);return(0,g.useEffect)(()=>{i.nodes.length>0&&(o(i.nodes),c(i.edges),setTimeout(()=>{t({padding:.2}),setTimeout(()=>{window.__PIKKU_RENDER_READY__=!0},100)},50))},[i,o,c,t]),(0,A.jsx)(LN,{nodes:a,edges:s,nodeTypes:hvn,edgeTypes:gvn,defaultEdgeOptions:{style:{stroke:`#c0c0c0`,strokeWidth:1.5,strokeDasharray:`6 4`},animated:!1,markerEnd:{type:eN.ArrowClosed,color:`#c0c0c0`,width:16,height:16}},zoomOnScroll:!1,preventScrolling:!0,nodesConnectable:!1,nodesDraggable:!1,panOnDrag:!1,proOptions:{hideAttribution:!0},children:(0,A.jsx)(Jrt,{color:`transparent`,variant:VN.Dots,size:0})})},vvn=()=>{let[e,t]=(0,g.useState)(null);return(0,g.useEffect)(()=>{window.__PIKKU_RENDER_DATA__&&t(window.__PIKKU_RENDER_DATA__);let e=()=>{window.__PIKKU_RENDER_DATA__&&t(window.__PIKKU_RENDER_DATA__)};return window.addEventListener(`pikku-render-data`,e),()=>window.removeEventListener(`pikku-render-data`,e)},[]),e?(0,A.jsx)(ao,{defaultColorScheme:`dark`,theme:{primaryColor:`violet`},children:(0,A.jsxs)(j,{style:{width:`100vw`,height:`100vh`,background:`#1a1b1e`},children:[(0,A.jsx)(`style`,{children:`
|
|
255
255
|
.react-flow__handle { opacity: 0; pointer-events: none; }
|
|
256
256
|
`}),(0,A.jsx)(hT,{children:(0,A.jsx)(FN,{children:(0,A.jsx)(_vn,{workflow:e})})})]})}):null};function yvn(e,t){let n=Ng();return Fr({queryKey:[`state-diff`,e,t],queryFn:async()=>{if(!e)return null;let r={basePath:e};return t&&(r.oursPath=t),await n.invoke(`console:getStateDiff`,r)},enabled:!!e,staleTime:5e3})}var bvn={functions:`Functions`,http:`HTTP`,scheduler:`Schedulers`,queue:`Queues`,channel:`Channels`,trigger:`Triggers`,mcp:`MCP`,agent:`Agents`,cli:`CLI`,middleware:`Middleware`,variables:`Variables`,secrets:`Secrets`},xvn={added:`green`,removed:`red`,modified:`yellow`,unchanged:`gray`},Svn={added:`+`,removed:`−`,modified:`~`,unchanged:`·`},Cvn=`pikku-changes-base-path`,wvn=({status:e})=>(0,A.jsx)(uv,{size:`sm`,color:xvn[e],variant:`light`,style:{fontFamily:`monospace`,minWidth:20,textAlign:`center`},children:B(Svn[e])}),Tvn=({method:e})=>{let t=JWe[e.toUpperCase()]??{color:`gray`,label:e.toUpperCase()};return(0,A.jsx)(uv,{size:`sm`,color:t.color,variant:`light`,style:{fontFamily:`monospace`,minWidth:44,textAlign:`center`},children:B(t.label)})},Evn=({wrapper:e})=>{if(!e)return null;let t=XWe[e]??{color:`gray`,label:e};return(0,A.jsx)(uv,{size:`sm`,color:t.color,variant:`outline`,children:B(t.label)})},Dvn=({entry:e,category:t})=>{let n=e.ours??e.base??{};if(t===`http`){let[t,...r]=e.id.split(`:`),i=r.join(`:`),a=String(n.pikkuFuncId??``),o=Array.isArray(n.params)?n.params:[];return(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,style:{flex:1,minWidth:0},children:[(0,A.jsx)(Tvn,{method:t}),(0,A.jsx)(z,{size:`sm`,c:`var(--app-meta-value)`,ff:`monospace`,style:{flex:1,minWidth:0},truncate:!0,children:B(i)}),o.length>0&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,children:B(`params: ${o.join(`, `)}`)}),a&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,truncate:!0,style:{maxWidth:240},children:B(`→ ${a}`)})]})}if(t===`functions`){let t=String(n.funcWrapper??``),r=n.inputSchemaName?String(n.inputSchemaName):null,i=n.outputSchemaName?String(n.outputSchemaName):null,a=n.sessionless===!0;return(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,style:{flex:1,minWidth:0},children:[(0,A.jsx)(z,{size:`sm`,c:`var(--app-meta-value)`,ff:`monospace`,fw:500,style:{minWidth:0},truncate:!0,children:B(e.id)}),(0,A.jsx)(Evn,{wrapper:t}),a&&(0,A.jsx)(uv,{size:`sm`,color:`gray`,variant:`light`,children:B(`sessionless`)}),(r||i)&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,truncate:!0,style:{flex:1,minWidth:0},children:B(`${r??`·`} → ${i??`void`}`)})]})}let r=n.route?String(n.route):null,i=n.queueName?String(n.queueName):null,a=n.cron??n.schedule,o=typeof a==`string`?a:null;return(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,style:{flex:1,minWidth:0},children:[(0,A.jsx)(z,{size:`sm`,c:`var(--app-meta-value)`,ff:`monospace`,fw:500,style:{minWidth:0},truncate:!0,children:B(e.id)}),r&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,children:B(r)}),i&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,children:B(`queue: ${i}`)}),o&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,children:B(`cron: ${o}`)})]})},Ovn=({ours:e,base:t})=>{_e();let n=Array.from(new Set([...Object.keys(e??{}),...Object.keys(t??{})])).sort();return(0,A.jsxs)(j,{style:{borderRadius:4,border:`1px solid var(--app-row-border)`,background:`var(--app-surface, var(--mantine-color-body))`,overflow:`hidden`},children:[(0,A.jsxs)(Gl,{gap:0,style:{borderBottom:`1px solid var(--app-row-border)`,background:`var(--mantine-color-default-hover)`},children:[(0,A.jsx)(z,{size:`sm`,c:`dimmed`,fw:600,tt:`uppercase`,style:{width:180,padding:`6px 12px`},children:K.changes_field()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,fw:600,tt:`uppercase`,style:{flex:1,padding:`6px 12px`,borderLeft:`1px solid var(--app-row-border)`},children:K.changes_base()}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,fw:600,tt:`uppercase`,style:{flex:1,padding:`6px 12px`,borderLeft:`1px solid var(--app-row-border)`},children:K.changes_ours()})]}),n.map(n=>{let r=e?.[n],i=t?.[n],a=JSON.stringify(r)===JSON.stringify(i);return(0,A.jsxs)(Gl,{gap:0,wrap:`nowrap`,style:{borderBottom:`1px solid var(--app-row-border)`,background:a?`transparent`:`var(--mantine-color-default-hover)`},children:[(0,A.jsx)(z,{size:`sm`,c:a?`dimmed`:`yellow`,ff:`monospace`,style:{width:180,padding:`6px 12px`},children:B(n)}),(0,A.jsx)(j,{style:{flex:1,padding:`6px 12px`,borderLeft:`1px solid var(--app-row-border)`,background:!a&&i!==void 0?`rgba(255, 80, 80, 0.06)`:void 0},children:(0,A.jsx)(dd,{style:{background:`transparent`,fontSize:11,color:i===void 0?`var(--mantine-color-dimmed)`:void 0},children:i===void 0?`—`:JSON.stringify(i)})}),(0,A.jsx)(j,{style:{flex:1,padding:`6px 12px`,borderLeft:`1px solid var(--app-row-border)`,background:!a&&r!==void 0?`rgba(80, 200, 120, 0.06)`:void 0},children:(0,A.jsx)(dd,{style:{background:`transparent`,fontSize:11,color:r===void 0?`var(--mantine-color-dimmed)`:void 0},children:r===void 0?`—`:JSON.stringify(r)})})]},n)})]})},kvn=({entry:e,category:t})=>{let[n,r]=(0,g.useState)(e.status===`modified`);return(0,A.jsxs)(j,{style:{borderBottom:`1px solid var(--app-row-border)`},children:[(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,px:`md`,py:`xs`,style:{cursor:`pointer`},onClick:()=>r(e=>!e),children:[(0,A.jsx)(j,{style:{width:14},children:n?(0,A.jsx)(TC,{size:14}):(0,A.jsx)(DC,{size:14})}),(0,A.jsx)(wvn,{status:e.status}),(0,A.jsx)(Dvn,{entry:e,category:t})]}),n&&(0,A.jsx)(j,{px:`lg`,pb:`md`,pt:4,children:(0,A.jsx)(Ovn,{ours:e.ours,base:e.base})})]})},Avn=({entries:e,category:t})=>{_e();let n=e.filter(e=>e.status!==`unchanged`);return n.length===0?(0,A.jsx)(ud,{p:`xl`,children:(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.changes_no_changes_in_category()})}):(0,A.jsx)(Ip,{gap:0,children:n.map(e=>(0,A.jsx)(kvn,{entry:e,category:t},e.id))})},jvn=({diff:e})=>{let t=Object.values(e.summary).reduce((e,t)=>(e.added+=t.added,e.modified+=t.modified,e.removed+=t.removed,e),{added:0,modified:0,removed:0}),n=t.added+t.modified+t.removed;return(0,A.jsxs)(Gl,{gap:`md`,px:`md`,py:6,style:{borderBottom:`1px solid var(--app-row-border)`,background:`var(--app-surface, var(--mantine-color-body))`},children:[(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(`${n} change${n===1?``:`s`}`)}),t.added>0&&(0,A.jsxs)(Gl,{gap:4,children:[(0,A.jsx)(wvn,{status:`added`}),(0,A.jsx)(z,{size:`sm`,c:`green.4`,children:B(`${t.added} added`)})]}),t.modified>0&&(0,A.jsxs)(Gl,{gap:4,children:[(0,A.jsx)(wvn,{status:`modified`}),(0,A.jsx)(z,{size:`sm`,c:`yellow.4`,children:B(`${t.modified} modified`)})]}),t.removed>0&&(0,A.jsxs)(Gl,{gap:4,children:[(0,A.jsx)(wvn,{status:`removed`}),(0,A.jsx)(z,{size:`sm`,c:`red.4`,children:B(`${t.removed} removed`)})]}),(0,A.jsx)(j,{style:{flex:1}}),(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,truncate:!0,style:{maxWidth:380},children:B(`base: ${e.basePath.split(`/`).slice(-3).join(`/`)}`)})]})},Mvn=({diff:e})=>{_e();let t=(0,g.useMemo)(()=>Object.entries(e.categories).map(([e,t])=>({key:e,label:bvn[e]??e,added:t.added,removed:t.removed,modified:t.modified,entries:t.entries})).filter(e=>e.added+e.removed+e.modified>0),[e]),[n,r]=(0,g.useState)(t[0]?.key??null);return(0,g.useEffect)(()=>{!n&&t[0]&&r(t[0].key)},[t,n]),t.length===0?(0,A.jsx)(ud,{p:`xl`,children:(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:K.changes_no_changes()})}):(0,A.jsxs)(j,{style:{display:`flex`,flexDirection:`column`,flex:1,minHeight:0},children:[(0,A.jsx)(jvn,{diff:e}),(0,A.jsxs)(Cv,{value:n,onChange:r,keepMounted:!1,style:{display:`flex`,flexDirection:`column`,flex:1,minHeight:0},children:[(0,A.jsx)(Cv.List,{px:`md`,pt:`sm`,style:{flexShrink:0},children:t.map(e=>(0,A.jsx)(Cv.Tab,{value:e.key,children:(0,A.jsxs)(Gl,{gap:4,children:[(0,A.jsx)(z,{size:`sm`,children:B(e.label)}),e.added>0&&(0,A.jsx)(uv,{size:`sm`,color:`green`,variant:`light`,children:B(`+${e.added}`)}),e.modified>0&&(0,A.jsx)(uv,{size:`sm`,color:`yellow`,variant:`light`,children:B(`~${e.modified}`)}),e.removed>0&&(0,A.jsx)(uv,{size:`sm`,color:`red`,variant:`light`,children:B(`−${e.removed}`)})]})},e.key))}),(0,A.jsx)(j,{style:{flex:1,minHeight:0},children:(0,A.jsx)(Sl,{h:`100%`,children:t.map(e=>(0,A.jsx)(Cv.Panel,{value:e.key,children:(0,A.jsx)(Avn,{entries:e.entries,category:e.key})},e.key))})})]})]})},Nvn=()=>{_e();let[e]=sv(),t=e.get(`base`),n=e.get(`ours`),r=(0,g.useRef)(null),[i,a]=(0,g.useState)(()=>t??localStorage.getItem(Cvn)??``),[o,s]=(0,g.useState)(()=>t??localStorage.getItem(Cvn));(0,g.useEffect)(()=>{r.current&&r.current.setAttribute(`webkitdirectory`,``)},[]),(0,g.useEffect)(()=>{t&&t!==o&&(a(t),s(t))},[t]);let{data:c,isLoading:l,error:u}=yvn(o,n),d=()=>{let e=i.trim();e?(localStorage.setItem(Cvn,e),s(e)):(localStorage.removeItem(Cvn),s(null))};return(0,A.jsx)(hT,{children:(0,A.jsx)(k2,{hidePanel:!0,header:(0,A.jsx)(lT,{title:K.changes_title(),description:K.changes_description(),lead:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(_v,{placeholder:B(`../worktree-to-compare/.pikku`),value:i,onChange:e=>a(e.currentTarget.value),onKeyDown:e=>e.key===`Enter`&&d(),rightSection:(0,A.jsx)(dv,{variant:`subtle`,size:`sm`,onClick:()=>r.current?.click(),children:(0,A.jsx)(tUe,{size:14})}),size:`xs`,style:{width:360}}),(0,A.jsx)(`input`,{ref:r,type:`file`,style:{display:`none`},onChange:e=>{let t=e.target.files?.[0];if(!t)return;let n=t.path;n&&a(n.split(`/`).slice(0,-1).join(`/`))}}),(0,A.jsx)(cv,{size:`xs`,leftSection:(0,A.jsx)(HC,{size:14}),onClick:d,disabled:i.trim()===(o??``),children:K.changes_compare()})]})}),children:(0,A.jsxs)(j,{className:qw.listSurfaceCard,style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`},children:[!o&&(0,A.jsx)(A2,{icon:HC,title:K.changes_no_base_path_title(),description:K.changes_no_base_path_description(),docsHref:`https://pikku.dev/docs`}),o&&l&&(0,A.jsx)(ud,{p:`xl`,children:(0,A.jsx)(zl,{})}),o&&u&&(0,A.jsx)(ud,{p:`xl`,children:(0,A.jsx)(z,{size:`sm`,c:`red`,children:B(u.message)})}),o&&c&&!c.baseExists&&(0,A.jsx)(ud,{p:`xl`,children:(0,A.jsxs)(z,{size:`sm`,c:`red`,children:[B(`Base path does not exist: `),(0,A.jsx)(dd,{children:c.basePath})]})}),o&&c&&c.baseExists&&(0,A.jsx)(Mvn,{diff:c})]})})})},Pvn=({cast:e,size:t=26})=>(0,A.jsx)(Gl,{gap:0,wrap:`nowrap`,children:e.map((e,n)=>(0,A.jsx)(j,{style:{marginLeft:n===0?0:-t*.32,borderRadius:`50%`,border:`2px solid var(--app-surface, var(--mantine-color-body))`},children:(0,A.jsx)(rat,{personaKey:e.key,jobTitle:e.jobTitle,name:e.name,size:t})},e.key))}),Fvn=e=>{if(!e)return``;let t=new Date(e).getTime();if(Number.isNaN(t))return``;let n=Math.round((Date.now()-t)/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.round(n/60);return r<24?`${r}h ago`:`${Math.round(r/24)}d ago`},Ivn={completed:{tone:`green`,label:`passed`,Icon:wC},failed:{tone:`red`,label:`failed`,Icon:_w},cancelled:{tone:`red`,label:`cancelled`,Icon:_w},running:{tone:`blue`,label:`running`,Icon:uUe},suspended:{tone:`yellow`,label:`suspended`,Icon:bUe}},Lvn=({flow:e,onOpen:t})=>{let[n,r]=(0,g.useState)(!1),{data:i}=e6e(e.name),{lastRun:a,count:o}=(0,g.useMemo)(()=>{let e=i??[];return{lastRun:[...e].sort((e,t)=>new Date(t.startedAt??0).getTime()-new Date(e.startedAt??0).getTime())[0],count:e.length}},[i]),s=a?Ivn[a.status]:void 0;return(0,A.jsx)(j,{"data-testid":`flow-card-${e.name}`,onClick:()=>t(e.name),onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),style:{background:n?`var(--mantine-color-default-hover)`:`var(--app-surface, var(--mantine-color-body))`,border:`1px solid var(--mantine-color-default-border)`,borderRadius:14,cursor:`pointer`,transition:`background 100ms`,padding:`18px 22px`},children:(0,A.jsxs)(Gl,{gap:18,wrap:`nowrap`,align:`center`,children:[(0,A.jsx)(j,{style:{width:46,height:46,borderRadius:12,flexShrink:0,display:`grid`,placeItems:`center`,background:`var(--mantine-color-cyan-light)`,color:`var(--mantine-color-cyan-light-color)`},children:(0,A.jsx)(iw,{size:22,strokeWidth:1.8})}),(0,A.jsxs)(Ip,{gap:4,style:{flex:1,minWidth:0},children:[(0,A.jsx)(z,{size:`md`,fw:600,style:{lineHeight:1.2},children:B(e.displayName)}),e.description&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,lineClamp:2,children:B(e.description)})]}),e.cast.length>0&&(0,A.jsx)(Pvn,{cast:e.cast}),(0,A.jsxs)(Ip,{gap:6,align:`flex-end`,style:{flexShrink:0,minWidth:92},children:[s&&(0,A.jsx)(uv,{variant:`light`,color:s.tone,radius:`xl`,tt:`none`,fw:500,leftSection:(0,A.jsx)(s.Icon,{size:11,strokeWidth:2.4}),children:B(`${s.label} · ${Fvn(a?.startedAt)}`)}),o>0?(0,A.jsx)(z,{size:`xs`,ff:`monospace`,c:`dimmed`,children:B(`${o} ${o===1?`run`:`runs`}`)}):(0,A.jsx)(z,{size:`xs`,ff:`monospace`,c:`dimmed`,children:B(`${e.stepCount} ${e.stepCount===1?`step`:`steps`}`)})]})]})})},Rvn=({flows:e,onOpen:t,loading:n=!1})=>(_e(),n?(0,A.jsxs)(Ip,{gap:12,p:`md`,children:[(0,A.jsx)(Op,{height:84,radius:14}),(0,A.jsx)(Op,{height:84,radius:14})]}):e.length===0?(0,A.jsx)(A2,{icon:iw,title:K.scenarios_empty_title(),description:K.scenarios_empty_description(),docsHref:`https://pikku.dev/docs/wiring/workflows`}):(0,A.jsx)(Ip,{gap:12,children:e.map(e=>(0,A.jsx)(Lvn,{flow:e,onOpen:t},e.name))})),zvn=({persona:e,onOpen:t})=>{let[n,r]=(0,g.useState)(!1),{color:i}=nP(e.key,e.jobTitle,e.name);return(0,A.jsx)(j,{"data-testid":`persona-card-${e.key}`,role:t?`button`:void 0,tabIndex:t?0:void 0,onClick:()=>t?.(e.key),onKeyDown:n=>{t&&(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),t(e.key))},onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),style:{background:n?`var(--mantine-color-default-hover)`:`var(--app-surface, var(--mantine-color-body))`,border:`1px solid var(--mantine-color-default-border)`,borderRadius:14,cursor:t?`pointer`:`default`,transition:`background 100ms`,padding:`18px 22px`},children:(0,A.jsxs)(Gl,{gap:18,wrap:`nowrap`,align:`center`,children:[(0,A.jsx)(rat,{personaKey:e.key,jobTitle:e.jobTitle,name:e.name,size:48}),(0,A.jsxs)(Ip,{gap:2,style:{flex:1,minWidth:0},children:[(0,A.jsx)(z,{size:`md`,fw:600,style:{lineHeight:1.2},children:B(e.name)}),(0,A.jsx)(z,{size:`xs`,ff:`monospace`,c:`dimmed`,children:B(e.email)}),e.personality&&(0,A.jsx)(z,{size:`sm`,c:`dimmed`,fs:`italic`,lineClamp:2,mt:4,children:B(`“${e.personality}”`)})]}),(0,A.jsxs)(Ip,{gap:8,align:`flex-end`,style:{flexShrink:0,maxWidth:260},children:[e.jobTitle&&(0,A.jsx)(uv,{variant:`light`,color:i,radius:`sm`,tt:`none`,fw:500,children:B(e.jobTitle)}),e.flows.length>0?(0,A.jsxs)(Gl,{gap:6,justify:`flex-end`,wrap:`wrap`,children:[e.flows.slice(0,3).map(e=>(0,A.jsx)(uv,{variant:`default`,radius:`sm`,tt:`none`,fw:500,leftSection:(0,A.jsx)(iw,{size:11}),children:B(e.displayName)},e.name)),e.flows.length>3&&(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:B(`+${e.flows.length-3}`)})]}):(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:B(`in no flows`)})]})]})})},Bvn=({persona:e,opened:t,onClose:n,onOpenFlow:r})=>(0,A.jsx)(hv,{opened:t,onClose:n,position:`right`,size:440,title:e?(0,A.jsxs)(Gl,{gap:12,wrap:`nowrap`,children:[(0,A.jsx)(rat,{personaKey:e.key,jobTitle:e.jobTitle,name:e.name,size:40}),(0,A.jsxs)(Ip,{gap:0,children:[(0,A.jsx)(z,{fw:600,size:`md`,children:B(e.name)}),(0,A.jsx)(z,{ff:`monospace`,size:`xs`,c:`dimmed`,children:B(`actors.${e.key}`)})]})]}):null,children:e&&(0,A.jsxs)(Ip,{gap:`md`,pt:`xs`,children:[(0,A.jsx)(pv,{}),(0,A.jsx)(_v,{label:B(`Name`),value:e.name,readOnly:!0,variant:`filled`}),(0,A.jsx)(_v,{label:B(`Email`),value:e.email,readOnly:!0,variant:`filled`,styles:{input:{fontFamily:`var(--mantine-font-family-monospace)`}}}),(0,A.jsx)(_v,{label:B(`Role label`),value:e.jobTitle??`—`,readOnly:!0,variant:`filled`}),(0,A.jsx)(yv,{label:B(`Personality — drives converse`),value:e.personality??`—`,readOnly:!0,variant:`filled`,autosize:!0,minRows:3}),(0,A.jsxs)(Ip,{gap:6,children:[(0,A.jsx)(z,{size:`sm`,fw:600,children:B(`Appears in ${e.flows.length} ${e.flows.length===1?`flow`:`flows`}`)}),e.flows.length===0?(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:B(`Not cast in any scenario yet.`)}):e.flows.map(e=>(0,A.jsx)(Cl,{onClick:()=>r?.(e.name),style:{borderRadius:8,border:`1px solid var(--mantine-color-default-border)`,padding:`8px 12px`},children:(0,A.jsxs)(Gl,{gap:10,wrap:`nowrap`,children:[(0,A.jsx)(rm,{variant:`light`,color:`cyan`,size:`sm`,radius:`sm`,children:(0,A.jsx)(iw,{size:13})}),(0,A.jsx)(z,{size:`sm`,style:{flex:1,minWidth:0},children:B(e.displayName)}),(0,A.jsx)(DC,{size:15,color:`var(--mantine-color-dimmed)`})]})},e.name))]}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,children:B(`Personas are defined in pikku.config.json under scenarios.actors.`)})]})}),Vvn=({personas:e,loading:t=!1,onOpenFlow:n})=>{_e();let[r,i]=(0,g.useState)(null),a=e.find(e=>e.key===r)??null;return t?(0,A.jsxs)(Ip,{gap:12,p:`md`,children:[(0,A.jsx)(Op,{height:92,radius:14}),(0,A.jsx)(Op,{height:92,radius:14})]}):e.length===0?(0,A.jsx)(A2,{icon:JUe,title:K.personas_empty_title(),description:K.personas_empty_description(),docsHref:`https://pikku.dev/docs/wiring/workflows`}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(Ip,{gap:12,children:e.map(e=>(0,A.jsx)(zvn,{persona:e,onOpen:i},e.key))}),(0,A.jsx)(Bvn,{persona:a,opened:a!==null,onClose:()=>i(null),onOpenFlow:n})]})},Hvn=`/scenarios`,Uvn=()=>{_e();let{scenarioId:e,navigateTo:t}=$Ht(),{meta:n,loading:r}=Vw(),[i,a]=(0,g.useState)(`scenarios`),[o,s]=(0,g.useState)(``),c=(0,g.useMemo)(()=>{let e=n.scenarioActors??{};return Object.values(n.workflows??{}).filter(e=>e.source===`scenario`||e.scenario===!0).filter(e=>!(e.tags??[]).includes(`test-fixture`)).map(t=>({name:t.name,displayName:fT(t.name),description:t.description??t.summary,stepCount:t.nodes?Object.keys(t.nodes).length:t.steps?.length??0,cast:(t.actors??[]).map(t=>({key:t,name:e[t]?.name,jobTitle:e[t]?.jobTitle}))})).sort((e,t)=>e.name.localeCompare(t.name))},[n.workflows,n.scenarioActors]),l=(0,g.useMemo)(()=>{let e=n.scenarioActors??{},t=new Map;for(let e of Object.values(n.workflows??{}))if((e.source===`scenario`||e.scenario===!0)&&!(e.tags??[]).includes(`test-fixture`))for(let n of e.actors??[]){let r=t.get(n)??[];r.push({name:e.name,displayName:fT(e.name)}),t.set(n,r)}return Object.entries(e).map(([e,n])=>({key:e,name:n.name??e,email:n.email,jobTitle:n.jobTitle,personality:n.personality,flows:t.get(e)??[]})).sort((e,t)=>e.name.localeCompare(t.name))},[n.scenarioActors,n.workflows]),u=(0,g.useMemo)(()=>{let e=o.toLowerCase();return e?c.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e)):c},[c,o]),d=(0,g.useMemo)(()=>{let e=o.toLowerCase();return e?l.filter(t=>t.key.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)||t.email.toLowerCase().includes(e)||t.personality?.toLowerCase().includes(e)):l},[l,o]);return e?(0,A.jsx)(eUt,{immersiveDetail:!0,readOnly:!0,entityId:e}):(0,A.jsx)(hT,{children:(0,A.jsx)(k2,{hidePanel:!0,header:(0,A.jsx)(lT,{title:B(`Scenarios`),description:B(`End-to-end scenario tests and the personas that run them`),docsHref:`https://pikku.dev/docs/wiring/workflows`,filters:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,children:[(0,A.jsx)(_p,{size:`xs`,value:i,onChange:e=>a(e),data:[{label:B(`Flows`),value:`scenarios`},{label:B(`Personas`),value:`personas`}]}),(0,A.jsx)(_v,{placeholder:B(i===`personas`?`Search personas…`:`Search flows…`),leftSection:(0,A.jsx)(ow,{size:14}),value:o,onChange:e=>s(e.target.value),size:`xs`,style:{width:240}})]})}),children:i===`personas`?(0,A.jsx)(Vvn,{personas:d,loading:r,onOpenFlow:e=>t(`scenarios`,e)}):(0,A.jsx)(Rvn,{flows:u,onOpen:e=>t(`scenarios`,e),loading:r})})})},Wvn=()=>{let e=(0,g.useContext)(Y2),t=(0,A.jsx)(g.Suspense,{fallback:(0,A.jsx)(ud,{h:`100vh`,children:(0,A.jsx)(zl,{})}),children:(0,A.jsx)(Uvn,{})});return e?t:(0,A.jsx)(X2,{basePath:Hvn,children:t})},Gvn={public:(0,A.jsx)(UC,{size:10,color:`var(--mantine-color-teal-5)`}),private:(0,A.jsx)(uw,{size:10,color:`var(--mantine-color-orange-5)`}),pii:(0,A.jsx)(KUe,{size:10,color:`var(--mantine-color-violet-5)`}),secret:(0,A.jsx)(dUe,{size:10,color:`var(--mantine-color-red-5)`})},Kvn=(0,g.memo)(function({data:e,id:t}){let n=e.label?.trim()||t,{colorScheme:r}=Ba(),{openDbColumn:i}=mT(),a=r===`dark`,o=`transparent`,s=a?`var(--mantine-color-dark-5)`:`var(--mantine-color-blue-0, #e7f5ff)`,c=a?`var(--mantine-color-dark-4)`:`#f0f0f0`,l=a?`var(--mantine-color-dark-1)`:`#888`,u=a?`var(--mantine-color-dark-4)`:`#f5f5f5`,d=a?`var(--mantine-color-dark-1)`:`#888`,f=a?`var(--mantine-color-dark-2)`:`#aaa`,p={opacity:0,pointerEvents:`none`,width:8,height:8,minWidth:0,minHeight:0};return(0,A.jsxs)(`div`,{style:{minWidth:260,border:`1px solid ${o}`,borderRadius:8,backgroundColor:`var(--mantine-color-body)`,boxShadow:a?`0 1px 4px rgba(0,0,0,.4)`:`0 1px 4px rgba(0,0,0,.08)`},children:[(0,A.jsxs)(`div`,{style:{padding:`8px 12px`,background:s,borderBottom:`1px solid ${o}`,display:`flex`,alignItems:`center`,gap:8},children:[(0,A.jsx)(zUe,{size:14}),(0,A.jsx)(`span`,{style:{flex:1,minWidth:0,fontFamily:`monospace`,fontWeight:600,fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:n}),(0,A.jsx)(`span`,{style:{fontSize:11,color:l,backgroundColor:c,padding:`1px 6px`,borderRadius:10,flexShrink:0},children:e.columns.length})]}),(0,A.jsx)(`div`,{style:{padding:`4px 0`},children:e.columns.map(e=>(0,A.jsxs)(`div`,{onClick:()=>i(n,e.name,e),style:{display:`flex`,alignItems:`center`,gap:6,padding:`4px 12px`,borderBottom:`1px solid transparent`,cursor:`pointer`},children:[(0,A.jsxs)(`div`,{style:{flex:1,minWidth:0,display:`flex`,alignItems:`center`,gap:4},children:[e.isPrimaryKey&&(0,A.jsx)(GC,{size:11,color:`var(--mantine-color-yellow-6)`}),e.foreignKey&&!e.isPrimaryKey&&(0,A.jsx)(JC,{size:11,color:`var(--mantine-color-blue-5)`}),(0,A.jsx)(`span`,{style:{fontFamily:`monospace`,fontSize:12,fontWeight:e.isPrimaryKey?600:500,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name})]}),(0,A.jsx)(`span`,{style:{fontFamily:`monospace`,fontSize:11,color:d,backgroundColor:u,padding:`1px 5px`,borderRadius:4,flexShrink:0},children:e.type}),e.nullable&&(0,A.jsx)(`span`,{style:{fontSize:11,color:f,flexShrink:0},children:`?`}),(0,A.jsx)(`span`,{style:{flexShrink:0,display:`flex`,alignItems:`center`},children:Gvn[e.classification]})]},e.name))}),(0,A.jsx)(lN,{type:`target`,position:tN.Left,style:p}),(0,A.jsx)(lN,{type:`source`,position:tN.Right,style:p})]})});(0,g.memo)(function({data:e,id:t}){let n=e.label?.trim()||t,{colorScheme:r}=Ba(),i=r===`dark`,a=`transparent`,o=i?`var(--mantine-color-violet-9)`:`var(--mantine-color-violet-1)`,s=i?`var(--mantine-color-dark-1)`:`#555`;return(0,A.jsxs)(`div`,{style:{minWidth:180,border:`1px solid ${a}`,borderRadius:8,backgroundColor:`var(--mantine-color-body)`,boxShadow:i?`0 1px 4px rgba(0,0,0,.4)`:`0 1px 4px rgba(0,0,0,.08)`},children:[(0,A.jsxs)(`div`,{style:{padding:`8px 12px`,background:o,borderBottom:`1px solid ${a}`,display:`flex`,alignItems:`center`,gap:8},children:[(0,A.jsx)(`span`,{style:{fontSize:10,fontWeight:700,color:`var(--mantine-color-violet-5)`,letterSpacing:1},children:`ENUM`}),(0,A.jsx)(`span`,{style:{flex:1,minWidth:0,fontFamily:`monospace`,fontWeight:600,fontSize:13,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:n})]}),(0,A.jsx)(`div`,{style:{padding:`4px 0`},children:(Array.isArray(e.values)?e.values:[]).map(e=>(0,A.jsx)(`div`,{style:{padding:`4px 12px`,borderBottom:`1px solid transparent`,fontFamily:`monospace`,fontSize:12,color:s},children:e},e))}),(0,A.jsx)(lN,{type:`target`,position:tN.Left,style:{opacity:0,pointerEvents:`none`,width:8,height:8,minWidth:0,minHeight:0}})]})});var qvn=300,Jvn=44,Yvn=30,Xvn=80,Zvn=new Git.default,Qvn={"elk.algorithm":`layered`,"elk.direction":`DOWN`,"elk.spacing.nodeNode":`40`,"elk.layered.spacing.nodeNodeBetweenLayers":`50`,"elk.padding":`[top=40,left=40,bottom=40,right=40]`,"elk.separateConnectedComponents":`true`,"elk.layered.nodePlacement.strategy":`BRANDES_KOEPF`};function $vn(e){return e.isPrimaryKey?0:e.foreignKey?1:2}function eyn(e){return[...e].sort((e,t)=>$vn(e)-$vn(t))}function tyn(e){return Math.max(Xvn,Jvn+e.length*Yvn)}async function nyn(e){let t=[],n=new Set,r=[],i=new Set(e.tables.map(e=>e.name));for(let a of e.tables)for(let e of a.columns)if(e.foreignKey){let o=e.foreignKey.table;if(!i.has(o))continue;let s=`${a.name}.${e.name}->${o}`;n.has(s)||(n.add(s),t.push({id:s,source:a.name,target:o,label:e.name,type:`smoothstep`,markerEnd:{type:eN.ArrowClosed},style:{stroke:`var(--mantine-color-blue-5)`,strokeWidth:1.5},labelStyle:{fontSize:10,fill:`var(--mantine-color-blue-5)`},labelBgStyle:{fill:`transparent`}}),r.push({id:s,sources:[a.name],targets:[o]}))}let a=e.tables.map((e,t)=>({id:e.name,type:`databaseSchema`,position:{x:t%3*360,y:Math.floor(t/3)*320},data:{label:e.name,columns:eyn(e.columns)}}));try{let n=await Zvn.layout({id:`schema`,layoutOptions:Qvn,children:[...e.tables.map(e=>({id:e.name,width:qvn,height:tyn(eyn(e.columns))}))],edges:r}),i=new Map((n.children??[]).map(e=>[e.id,{x:e.x??0,y:e.y??0}]));return{nodes:e.tables.map((e,t)=>({id:e.name,type:`databaseSchema`,position:i.get(e.name)??a[t]?.position??{x:0,y:0},data:{label:e.name,columns:eyn(e.columns)}})),edges:t}}catch(e){return console.error(`[ELK layout error]`,e),{nodes:a,edges:t}}}var ryn={databaseSchema:Kvn},iyn=[`workflow_`,`ai_`,`pikku_`],ayn=new Set([`migrations`,`sql_migrations`,`pgmigrations`]);function oyn(e,t){let n=e.includes(`.`)?e.split(`.`).pop():e;return ayn.has(n)?!1:t?!iyn.some(e=>n.startsWith(e)):!0}function syn({schema:e,loading:t,onRefresh:n,refreshing:r,hideInternal:i,classificationFilter:a,search:o}){_e();let{colorScheme:s}=Ba(),c=s===`dark`,[l,u,d]=xrt([]),[f,p,m]=Srt([]),[h,_]=(0,g.useState)(!1),v=(0,g.useRef)(null);return(0,g.useEffect)(()=>{let t=!1;async function n(){if(!e?.tables?.length){u([]),p([]);return}let n=o.trim().toLowerCase(),r=e.tables.filter(e=>!(!oyn(e.name,i)||a!==`all`&&!e.columns.some(e=>e.classification===a)||n&&!e.name.toLowerCase().includes(n)&&!e.columns.some(e=>e.name.toLowerCase().includes(n)))).map(e=>{let t=a===`all`?e.columns:e.columns.filter(e=>e.classification===a),r=n&&!e.name.toLowerCase().includes(n)?t.filter(e=>e.name.toLowerCase().includes(n)):t;return{...e,columns:r}});if(!r.length){u([]),p([]);return}_(!0);try{let n=await nyn({tables:r,enums:e.enums??[]});if(t)return;u(n.nodes),p(n.edges),setTimeout(()=>{t||v.current?.fitView({padding:.15,duration:300,minZoom:.4})},50)}catch{t||(u([]),p([]))}finally{t||_(!1)}}return n(),()=>{t=!0}},[e,i,a,o,p,u]),t||h&&l.length===0?(0,A.jsx)(ud,{h:`60vh`,children:(0,A.jsx)(zl,{size:`sm`})}):e?l.length===0?(0,A.jsx)(A2,{icon:FC,title:i?K.database_no_visible_tables():K.database_no_tables_found(),description:i?K.database_no_visible_tables_description():void 0,docsHref:`https://pikku.dev/docs/core-features/database`}):(0,A.jsx)(j,{className:qw.listSurfaceCard,style:{flex:1,minHeight:0},children:(0,A.jsxs)(LN,{onInit:e=>{v.current=e},nodes:l,edges:f,onNodesChange:d,onEdgesChange:m,nodeTypes:ryn,fitView:!0,minZoom:.2,maxZoom:2,style:{background:`transparent`,height:`100%`},children:[(0,A.jsx)(Jrt,{variant:VN.Dots,gap:20,size:1,color:c?`var(--mantine-color-dark-4)`:`var(--mantine-color-gray-4)`}),(0,A.jsx)(Vrt,{style:{"--xy-controls-button-background-color":c?`var(--mantine-color-dark-6)`:`#fff`,"--xy-controls-button-background-color-hover":c?`var(--mantine-color-dark-5)`:`#f4f4f5`,"--xy-controls-button-color":c?`var(--mantine-color-dark-0)`:`#333`,"--xy-controls-button-border-color":c?`var(--mantine-color-dark-4)`:`#d1d5db`}}),(0,A.jsx)(Nrt,{nodeColor:c?`var(--mantine-color-dark-3)`:`#ccc`,maskColor:c?`rgba(0,0,0,0.6)`:`rgba(240,240,240,0.7)`,style:{background:c?`var(--mantine-color-dark-7)`:`#f8f9fa`,border:`1px solid ${c?`var(--mantine-color-dark-4)`:`#e5e7eb`}`}})]})}):(0,A.jsx)(A2,{icon:FC,title:K.database_no_db_title(),description:K.database_no_db_description(),docsHref:`https://pikku.dev/docs/core-features/database`})}var cyn=({header:e,children:t})=>{let{activePanel:n}=mT();return(0,A.jsx)(k2,{hidePanel:!n,header:e,children:t})};function lyn(){_e();let e=Ng(),[t,n]=(0,g.useState)(!0),[r,i]=(0,g.useState)(`all`),[a,o]=(0,g.useState)(``),{data:s,isLoading:c,isFetching:l,error:u,refetch:d}=Fr({queryKey:[`console:getDbSchema`],queryFn:()=>e.invoke(`console:getDbSchema`)});return(0,A.jsx)(hT,{children:(0,A.jsx)(cyn,{header:(0,A.jsx)(lT,{title:K.database_title(),description:K.database_description(),view:(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,children:[(0,A.jsx)(_v,{size:`xs`,placeholder:K.database_search_placeholder(),leftSection:(0,A.jsx)(ow,{size:12}),value:a,onChange:e=>o(e.currentTarget.value),style:{width:200}}),(0,A.jsx)(_p,{size:`xs`,value:r,onChange:e=>i(e),data:[{label:`All`,value:`all`},{label:(0,A.jsxs)(Gl,{gap:4,wrap:`nowrap`,children:[(0,A.jsx)(UC,{size:14,color:`var(--mantine-color-teal-5)`}),`Public`]}),value:`public`},{label:(0,A.jsxs)(Gl,{gap:4,wrap:`nowrap`,children:[(0,A.jsx)(uw,{size:14,color:`var(--mantine-color-orange-5)`}),`Private`]}),value:`private`},{label:(0,A.jsxs)(Gl,{gap:4,wrap:`nowrap`,children:[(0,A.jsx)(KUe,{size:14,color:`var(--mantine-color-violet-5)`}),`PII`]}),value:`pii`},{label:(0,A.jsxs)(Gl,{gap:4,wrap:`nowrap`,children:[(0,A.jsx)(dUe,{size:14,color:`var(--mantine-color-red-5)`}),`Secret`]}),value:`secret`}]}),(0,A.jsx)(THt,{checked:!t,onChange:e=>n(!e),tooltip:K.database_show_internal_tables()}),(0,A.jsx)(fv,{label:K.common_refresh(),children:(0,A.jsx)(dv,{variant:`subtle`,color:`gray`,size:`sm`,loading:l,onClick:()=>void d(),children:(0,A.jsx)(wUe,{size:14})})})]})}),children:(0,A.jsx)(j,{style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`},children:u?(0,A.jsx)(A2,{icon:FC,title:K.database_setup_title(),description:K.database_setup_description(),code:`pikku db migrate`,docsHref:`https://pikku.dev/docs/core-features/database`}):(0,A.jsx)(syn,{schema:s,loading:c,onRefresh:()=>void d(),refreshing:l,hideInternal:t,classificationFilter:r,search:a})})})})}function uyn(){return(0,A.jsx)(FN,{children:(0,A.jsx)(lyn,{})})}var dyn=({configured:e,testId:t})=>e?(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`teal`,"data-testid":t,children:B(`Configured`)}):(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(`Not configured`)}),fyn=({plugins:e})=>e.length===0?null:(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(z,{size:`sm`,fw:500,children:B(`Plugins`)}),e.map(e=>(0,A.jsx)(uv,{size:`sm`,variant:`light`,color:`grape`,"data-testid":`auth-plugin-${e.id}`,children:B(e.displayName)},e.id))]}),pyn={providers:[],plugins:[],hasCredentials:!1};function myn(){let e=Ng(),{data:t,isLoading:n}=Fr({queryKey:[`auth-providers`],queryFn:async()=>await e.invoke(`console:getAuthProviders`),placeholderData:pyn});return{meta:t??pyn,isLoading:n}}var hyn=[{id:`github`,name:`GitHub`,callbackId:`github`,description:`Sign in with GitHub OAuth.`,setupUrl:`https://github.com/settings/applications/new`,setupLabel:`New OAuth App on GitHub`,fields:[{key:`AUTH_GITHUB_ID`,label:`Client ID`},{key:`AUTH_GITHUB_SECRET`,label:`Client Secret`}],featured:!0},{id:`google`,name:`Google`,callbackId:`google`,description:`Sign in with Google OAuth.`,setupUrl:`https://console.cloud.google.com/apis/credentials`,setupLabel:`Create credentials on Google Cloud`,fields:[{key:`AUTH_GOOGLE_ID`,label:`Client ID`},{key:`AUTH_GOOGLE_SECRET`,label:`Client Secret`}],featured:!0},{id:`apple`,name:`Apple`,callbackId:`apple`,description:`Sign in with Apple ID.`,setupUrl:`https://developer.apple.com/account/resources/identifiers/list/serviceId`,setupLabel:`Configure Service ID on Apple Developer`,fields:[{key:`AUTH_APPLE_ID`,label:`Service ID (Client ID)`},{key:`AUTH_APPLE_TEAM_ID`,label:`Team ID`},{key:`AUTH_APPLE_PRIVATE_KEY`,label:`Private Key (.p8)`}],featured:!0},{id:`bitbucket`,name:`Bitbucket`,callbackId:`bitbucket`,description:`Sign in with Bitbucket OAuth.`,setupUrl:`https://bitbucket.org/account/settings/app-passwords/`,setupLabel:`Create OAuth consumer on Bitbucket`,fields:[{key:`AUTH_BITBUCKET_ID`,label:`Client ID (Key)`},{key:`AUTH_BITBUCKET_SECRET`,label:`Client Secret`}],featured:!0},{id:`discord`,name:`Discord`,callbackId:`discord`,description:`Sign in with Discord.`,setupUrl:`https://discord.com/developers/applications`,setupLabel:`Create application on Discord Developer Portal`,fields:[{key:`AUTH_DISCORD_ID`,label:`Client ID`},{key:`AUTH_DISCORD_SECRET`,label:`Client Secret`}]},{id:`twitter`,name:`X / Twitter`,callbackId:`twitter`,description:`Sign in with X (formerly Twitter).`,setupUrl:`https://developer.twitter.com/en/portal/dashboard`,setupLabel:`Create project on Twitter Developer Portal`,fields:[{key:`AUTH_TWITTER_ID`,label:`Client ID`},{key:`AUTH_TWITTER_SECRET`,label:`Client Secret`}]},{id:`linkedin`,name:`LinkedIn`,callbackId:`linkedin`,description:`Sign in with LinkedIn.`,setupUrl:`https://www.linkedin.com/developers/apps`,setupLabel:`Create app on LinkedIn Developer Portal`,fields:[{key:`AUTH_LINKEDIN_ID`,label:`Client ID`},{key:`AUTH_LINKEDIN_SECRET`,label:`Client Secret`}]},{id:`spotify`,name:`Spotify`,callbackId:`spotify`,description:`Sign in with Spotify.`,setupUrl:`https://developer.spotify.com/dashboard`,setupLabel:`Create app on Spotify Developer Dashboard`,fields:[{key:`AUTH_SPOTIFY_ID`,label:`Client ID`},{key:`AUTH_SPOTIFY_SECRET`,label:`Client Secret`}]},{id:`facebook`,name:`Facebook`,callbackId:`facebook`,description:`Sign in with Facebook.`,setupUrl:`https://developers.facebook.com/apps`,setupLabel:`Create app on Facebook for Developers`,fields:[{key:`AUTH_FACEBOOK_ID`,label:`App ID`},{key:`AUTH_FACEBOOK_SECRET`,label:`App Secret`}]},{id:`slack`,name:`Slack`,callbackId:`slack`,description:`Sign in with Slack.`,setupUrl:`https://api.slack.com/apps`,setupLabel:`Create app on Slack API`,fields:[{key:`AUTH_SLACK_ID`,label:`Client ID`},{key:`AUTH_SLACK_SECRET`,label:`Client Secret`}]},{id:`microsoft-entra-id`,name:`Microsoft / Azure AD`,callbackId:`microsoft`,description:`Sign in with Microsoft Entra ID (Azure AD).`,setupUrl:`https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade`,setupLabel:`Register app on Azure Portal`,fields:[{key:`AUTH_MICROSOFT_ENTRA_ID_ID`,label:`Client ID`},{key:`AUTH_MICROSOFT_ENTRA_ID_SECRET`,label:`Client Secret`},{key:`AUTH_MICROSOFT_ENTRA_ID_TENANT_ID`,label:`Tenant ID`}]},{id:`notion`,name:`Notion`,callbackId:`notion`,description:`Sign in with Notion.`,setupUrl:`https://www.notion.so/my-integrations`,setupLabel:`Create integration on Notion`,fields:[{key:`AUTH_NOTION_ID`,label:`OAuth Client ID`},{key:`AUTH_NOTION_SECRET`,label:`OAuth Client Secret`}]},{id:`okta`,name:`Okta`,callbackId:`okta`,description:`Sign in with Okta.`,setupUrl:`https://developer.okta.com/`,setupLabel:`Create app integration on Okta`,fields:[{key:`AUTH_OKTA_ID`,label:`Client ID`},{key:`AUTH_OKTA_SECRET`,label:`Client Secret`},{key:`AUTH_OKTA_ISSUER`,label:`Issuer URL`}]}],gyn={id:`credentials`,name:`Credentials`,callbackId:`credentials`,description:`Email and password sign-in.`,setupUrl:`https://www.better-auth.com/docs/authentication/email-password`,setupLabel:`Better Auth email & password docs`,fields:[]},_yn=({searchQuery:e})=>{let{openAuthProvider:t}=mT();_e();let{meta:n}=myn(),r=(0,g.useMemo)(()=>new Set(n.providers.map(e=>e.id)),[n.providers]),i=e=>e.id===gyn.id?n.hasCredentials:r.has(e.callbackId);return(0,A.jsx)(j2,{icon:WC,title:`Auth Providers`,docsHref:`https://www.better-auth.com/docs/concepts/oauth`,data:(0,g.useMemo)(()=>[gyn,...hyn],[]),columns:(0,g.useMemo)(()=>[{key:`name`,header:`PROVIDER`,render:e=>(0,A.jsxs)(Gl,{gap:`xs`,children:[(0,A.jsx)(WC,{size:14}),(0,A.jsx)(z,{fw:500,children:B(e.name)}),e.featured&&(0,A.jsx)(uv,{size:`xs`,variant:`light`,color:`blue`,children:K.auth_providers_popular()})]})},{key:`status`,header:`STATUS`,render:e=>(0,A.jsx)(dyn,{configured:i(e),testId:`auth-provider-configured-${e.name.toLowerCase()}`})},{key:`description`,header:`DESCRIPTION`,render:e=>(0,A.jsx)(z,{size:`sm`,c:`dimmed`,children:B(e.description)})},{key:`fields`,header:`ENV VARS`,render:e=>(0,A.jsx)(z,{size:`sm`,c:`dimmed`,ff:`monospace`,children:B(`${e.fields.length} secret${e.fields.length===1?``:`s`}`)})}],[n]),getKey:e=>e.id,onRowClick:e=>t(e.id,e),externalSearch:e,searchFilter:(e,t)=>e.name.toLowerCase().includes(t)||e.description.toLowerCase().includes(t),description:n.plugins.length>0?(0,A.jsx)(fyn,{plugins:n.plugins}):void 0,emptyMessage:K.auth_providers_empty_message()})},vyn=()=>{let[e,t]=(0,g.useState)(``);return _e(),(0,A.jsx)(hT,{children:(0,A.jsx)(k2,{header:(0,A.jsx)(lT,{title:K.auth_providers_title(),description:K.auth_providers_description(),docsHref:`https://www.better-auth.com/docs/concepts/oauth`,filters:(0,A.jsx)(_v,{placeholder:K.auth_providers_search_placeholder(),leftSection:(0,A.jsx)(ow,{size:14}),value:e,onChange:e=>t(e.target.value),size:`xs`,style:{width:240}})}),emptyPanelMessage:K.auth_providers_select_provider(),children:(0,A.jsx)(_yn,{searchQuery:e})})})},yyn=[`critical`,`high`,`moderate`,`low`,`info`],byn={critical:`red`,high:`orange`,moderate:`yellow`,low:`gray`,info:`blue`},xyn={critical:K.security_severity_critical,high:K.security_severity_high,moderate:K.security_severity_moderate,low:K.security_severity_low,info:K.security_severity_info},Syn={major:`red`,minor:`yellow`,patch:`green`,unknown:`gray`},Cyn={major:K.security_update_major,minor:K.security_update_minor,patch:K.security_update_patch,unknown:K.security_update_unknown},wyn={codeInjection:K.security_cat_code_injection,prototypePollution:K.security_cat_prototype_pollution,ssrf:K.security_cat_ssrf,credentialLeak:K.security_cat_credential_leak,headerInjection:K.security_cat_header_injection,csrf:K.security_cat_csrf,redos:K.security_cat_redos,dos:K.security_cat_dos,nullByte:K.security_cat_null_byte,other:K.security_cat_other},Tyn={codeInjection:K.security_cat_code_injection_why,prototypePollution:K.security_cat_prototype_pollution_why,ssrf:K.security_cat_ssrf_why,credentialLeak:K.security_cat_credential_leak_why,headerInjection:K.security_cat_header_injection_why,csrf:K.security_cat_csrf_why,redos:K.security_cat_redos_why,dos:K.security_cat_dos_why,nullByte:K.security_cat_null_byte_why,other:K.security_cat_other_why};function Eyn(){return{critical:0,high:0,moderate:0,low:0,info:0}}function Dyn(e){let t=new Map,n=e=>{let n=t.get(e);return n||(n={name:e,level:`unknown`,counts:Eyn(),total:0},t.set(e,n)),n};for(let t of e.updates){let e=n(t.package);e.current=t.current,e.latest=t.latest,e.level=t.level}for(let t of e.issues){let e=n(t.package);e.counts[t.severity]++,e.total++,!e.latest&&t.recommendedVersion&&(e.latest=t.recommendedVersion)}return[...t.values()].sort((e,t)=>t.counts.critical-e.counts.critical||t.counts.high-e.counts.high||t.total-e.total||e.name.localeCompare(t.name))}var Oyn=({sev:e})=>(0,A.jsx)(j,{style:{width:8,height:8,borderRadius:2,flexShrink:0,background:`var(--mantine-color-${byn[e]}-6)`}}),kyn=[[/command injection|code injection|_\.template/i,`codeInjection`],[/prototype pollution|__proto__/i,`prototypePollution`],[/ssrf|server-side request forgery|no_proxy|absolute url|cloud metadata|proxy bypass/i,`ssrf`],[/credential (leak|theft|leakage)|proxy-authorization|forwards secure headers|xsrf token cross-origin/i,`credentialLeak`],[/header injection/i,`headerInjection`],[/cross-site request forgery|csrf/i,`csrf`],[/redos|regular expression|inefficient regular/i,`redos`],[/denial of service|dos|unbounded recursion|maxbodylength|maxcontentlength/i,`dos`],[/null byte/i,`nullByte`]];function Ayn(e){for(let[t,n]of kyn)if(t.test(e))return n;return`other`}var jyn=({issue:e,latest:t,itemValue:n,renderRemediation:r})=>{let i=Ayn(e.title),a=e.severity,o=e.recommendedVersion??t,s=t??e.recommendedVersion;return(0,A.jsxs)(yu.Item,{value:n,children:[(0,A.jsxs)(j,{style:{display:`flex`,alignItems:`center`,gap:8},pr:`sm`,children:[(0,A.jsx)(yu.Control,{style:{flex:1,minWidth:0},children:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,align:`center`,children:[(0,A.jsx)(uv,{color:byn[a],variant:`light`,size:`sm`,children:xyn[a]()}),(0,A.jsx)(z,{span:!0,size:`sm`,fw:600,ff:`monospace`,style:{flexShrink:0},children:B(e.package)}),(0,A.jsx)(z,{span:!0,size:`sm`,c:`dimmed`,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:B(e.title)})]})}),(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,align:`center`,style:{flexShrink:0},children:[e.url&&(0,A.jsx)(lv,{href:e.url,target:`_blank`,rel:`noreferrer`,size:`xs`,children:(0,A.jsxs)(Gl,{gap:4,align:`center`,wrap:`nowrap`,children:[(0,A.jsx)(RC,{size:12}),K.security_view_advisory()]})}),s&&r({pkg:e.package,version:s,issue:e})]})]}),(0,A.jsx)(yu.Panel,{children:(0,A.jsxs)(Ip,{gap:`md`,px:`md`,pb:`md`,pt:`xs`,children:[(0,A.jsxs)(Gl,{gap:`xs`,wrap:`wrap`,children:[(0,A.jsx)(uv,{variant:`default`,size:`sm`,leftSection:(0,A.jsx)($C,{size:11}),children:K.security_detected_by({tool:`bun`})}),e.cwe.map(e=>(0,A.jsx)(uv,{variant:`default`,size:`sm`,ff:`monospace`,children:B(e)},e)),(0,A.jsx)(uv,{color:byn[a],variant:`light`,size:`sm`,children:wyn[i]()}),e.cvssScore!=null&&(0,A.jsx)(uv,{color:byn[a],variant:`light`,size:`sm`,ff:`monospace`,children:K.security_cvss({score:e.cvssScore})})]}),(0,A.jsxs)(j,{style:{maxWidth:760},children:[(0,A.jsx)(z,{span:!0,size:`sm`,fw:600,children:K.security_why_matters()}),` `,(0,A.jsx)(z,{span:!0,size:`sm`,c:`dimmed`,style:{lineHeight:1.6},children:Tyn[i]()})]}),o&&(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`sm`,style:{borderColor:`var(--mantine-color-green-4)`,background:`var(--mantine-color-green-light)`},children:(0,A.jsxs)(Gl,{gap:`sm`,wrap:`nowrap`,align:`flex-start`,children:[(0,A.jsx)(lw,{size:17,color:`var(--mantine-color-green-7)`,style:{flexShrink:0,marginTop:1}}),(0,A.jsx)(z,{size:`xs`,c:`dimmed`,style:{lineHeight:1.5},children:K.security_fixed_summary({package:e.package,fixed:o,current:e.vulnerableVersions,latest:s??o})})]})})]})})]})};function Myn(){let e=Ng(),{data:t,isLoading:n}=Fr({queryKey:[`security-audit`],queryFn:async()=>await e.invoke(`console:getSecurityAudit`)});return{report:t??null,isLoading:n}}function Nyn(){let e=Ng(),t=Sr();return Ir({mutationFn:async()=>await e.invoke(`console:runSecurityAudit`),onSuccess:e=>{e&&t.setQueryData([`security-audit`],e)}})}function Pyn(){let e=Ng(),t=Sr();return Ir({mutationFn:async t=>await e.invoke(`console:updateDependency`,t),onSuccess:e=>{e&&t.setQueryData([`security-audit`],e)}})}var Fyn=({dep:e,first:t})=>{let n=Pyn(),r=n.isPending;return(0,A.jsxs)(Gl,{gap:`md`,wrap:`nowrap`,p:`sm`,style:{borderTop:t?void 0:`1px solid var(--mantine-color-default-border)`},children:[(0,A.jsx)(j,{style:{width:34,height:34,borderRadius:8,flexShrink:0,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,border:`1px solid var(--mantine-color-default-border)`},children:(0,A.jsx)($C,{size:16})}),(0,A.jsxs)(j,{style:{minWidth:190},children:[(0,A.jsx)(z,{size:`sm`,fw:600,ff:`monospace`,children:B(e.name)}),(0,A.jsxs)(Gl,{gap:6,align:`center`,mt:2,children:[(0,A.jsx)(z,{span:!0,size:`xs`,c:`dimmed`,ff:`monospace`,children:B(e.current&&e.latest?`${e.current} → ${e.latest}`:e.latest??e.current??``)}),(0,A.jsx)(uv,{size:`xs`,variant:`light`,color:Syn[e.level],children:Cyn[e.level]()})]})]}),(0,A.jsx)(Gl,{gap:6,style:{flex:1},wrap:`wrap`,children:e.total===0?(0,A.jsxs)(Gl,{gap:6,align:`center`,children:[(0,A.jsx)(lw,{size:13,color:`var(--mantine-color-green-7)`}),(0,A.jsx)(z,{span:!0,size:`xs`,c:`green`,children:K.security_dep_no_vulns()})]}):yyn.filter(t=>e.counts[t]>0).map(t=>(0,A.jsx)(uv,{size:`xs`,variant:`light`,color:byn[t],ff:`monospace`,children:B(`${e.counts[t]} ${xyn[t]()}`)},t))}),e.total>0&&e.latest&&(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,align:`center`,children:[n.isError&&(0,A.jsx)(z,{span:!0,size:`xs`,c:`red`,"data-testid":`security-dep-update-error`,children:K.security_update_dep_error()}),(0,A.jsx)(cv,{size:`xs`,variant:`default`,leftSection:r?(0,A.jsx)(zl,{size:12}):(0,A.jsx)(HHe,{size:14}),disabled:r,loading:r,onClick:()=>n.mutate({package:e.name,version:e.latest}),children:K.security_dep_update()})]})]})},Iyn=({label:e})=>(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`xl`,style:{borderStyle:`dashed`},children:(0,A.jsxs)(Ip,{align:`center`,gap:`sm`,py:`lg`,children:[(0,A.jsx)(lw,{size:28,color:`var(--mantine-color-green-7)`}),(0,A.jsx)(z,{c:`dimmed`,ta:`center`,children:B(e)})]})}),Lyn=({pkg:e,version:t})=>{let n=Pyn(),r=n.isPending;return(0,A.jsxs)(Gl,{gap:`xs`,wrap:`nowrap`,align:`center`,children:[n.isError&&(0,A.jsx)(z,{span:!0,size:`xs`,c:`red`,"data-testid":`security-update-error`,children:K.security_update_dep_error()}),(0,A.jsx)(fv,{label:K.security_update_dep_desc({package:e,version:t}),multiline:!0,w:260,withArrow:!0,position:`bottom-end`,children:(0,A.jsx)(cv,{size:`xs`,variant:`default`,"data-testid":`security-update-dep`,leftSection:r?(0,A.jsx)(zl,{size:12}):(0,A.jsx)(HHe,{size:14}),disabled:r,loading:r,onClick:()=>n.mutate({package:e,version:t}),children:K.security_update_dep_btn({version:t})})})]})},Ryn=({pkg:e,version:t})=>(0,A.jsx)(Lyn,{pkg:e,version:t}),zyn=(e,t)=>`${e.package}@${e.advisoryId||e.url||t}`,Byn=({report:e,lens:t,query:n,renderRemediation:r=Ryn})=>{let[i,a]=(0,g.useState)(!0),o=(0,g.useMemo)(()=>Dyn(e),[e]),s=(0,g.useMemo)(()=>{let e=new Map;return o.forEach(t=>e.set(t.name,t.latest)),e},[o]),c=(0,g.useMemo)(()=>{let t=Eyn();return e.issues.forEach(e=>t[e.severity]++),t},[e]);if(e.note)return(0,A.jsxs)(Ip,{gap:`xs`,"data-testid":`security-audit`,children:[(0,A.jsx)(uv,{color:`yellow`,variant:`light`,"data-testid":`security-not-run`,children:K.security_not_run()}),(0,A.jsx)(z,{c:`dimmed`,"data-testid":`security-note`,children:B(e.note)})]});let l=n.trim().toLowerCase(),u=e.issues.filter(e=>!l||e.package.toLowerCase().includes(l)||e.title.toLowerCase().includes(l)||e.advisoryId.toLowerCase().includes(l)||e.cwe.some(e=>e.toLowerCase().includes(l))),d=yyn.map(e=>({sev:e,items:u.filter(t=>t.severity===e)})).filter(e=>e.items.length>0),f=o.filter(e=>(!i||e.total>0)&&(!l||e.name.toLowerCase().includes(l))),p=o.filter(e=>e.total>0).length;return(0,A.jsxs)(Ip,{gap:`lg`,"data-testid":`security-audit`,children:[(0,A.jsx)(wl,{withBorder:!0,radius:`md`,p:`sm`,children:(0,A.jsxs)(Gl,{gap:`md`,justify:`space-between`,wrap:`wrap`,children:[(0,A.jsxs)(Gl,{gap:8,align:`center`,children:[(0,A.jsx)($C,{size:14}),(0,A.jsx)(z,{span:!0,size:`sm`,c:`dimmed`,children:K.security_audited_by({tool:e.tool})}),(0,A.jsx)(z,{span:!0,size:`sm`,c:`dimmed`,ff:`monospace`,children:K.security_advisories_count({count:e.issues.length})}),(0,A.jsx)(z,{span:!0,size:`sm`,c:`dimmed`,ff:`monospace`,children:K.security_packages_affected({affected:p,total:o.length})})]}),(0,A.jsx)(Gl,{gap:6,align:`center`,children:yyn.filter(e=>c[e]>0).map(e=>(0,A.jsx)(uv,{color:byn[e],variant:`light`,leftSection:(0,A.jsx)(Oyn,{sev:e}),children:B(`${c[e]} ${xyn[e]()}`)},e))})]})}),t===`issues`?d.length===0?(0,A.jsx)(Iyn,{label:K.security_no_match_issues()}):(0,A.jsx)(Ip,{gap:`xl`,children:d.map(({sev:e,items:t})=>(0,A.jsxs)(Ip,{gap:`xs`,children:[(0,A.jsxs)(Gl,{gap:8,align:`center`,children:[(0,A.jsx)(Oyn,{sev:e}),(0,A.jsx)(z,{span:!0,fw:700,size:`sm`,children:xyn[e]()}),(0,A.jsx)(z,{span:!0,size:`xs`,c:`dimmed`,ff:`monospace`,children:B(String(t.length))})]}),(0,A.jsx)(yu,{variant:`separated`,chevronPosition:`right`,radius:`md`,children:t.map((e,t)=>{let n=zyn(e,t);return(0,A.jsx)(jyn,{itemValue:n,issue:e,latest:s.get(e.package),renderRemediation:r},n)})})]},e))}):(0,A.jsxs)(Ip,{gap:`sm`,children:[(0,A.jsx)(Gl,{justify:`flex-end`,children:(0,A.jsx)(xv,{size:`sm`,checked:i,onChange:e=>a(e.currentTarget.checked),label:K.security_vulnerable_only()})}),f.length===0?(0,A.jsx)(Iyn,{label:K.security_no_match_deps()}):(0,A.jsx)(wl,{withBorder:!0,radius:`md`,style:{overflow:`hidden`},children:f.map((e,t)=>(0,A.jsx)(Fyn,{dep:e,first:t===0},e.name))})]})]})},Vyn=({emptyHero:e})=>{_e();let{report:t,isLoading:n}=Myn(),r=Nyn(),i=r.isPending,[a,o]=(0,g.useState)(`issues`),[s,c]=(0,g.useState)(``),l=!!t&&!t.note&&t.issues.length+t.updates.length>0,u=(0,A.jsx)(cv,{type:`button`,size:`xs`,"data-testid":`security-run-audit`,leftSection:i?(0,A.jsx)(zl,{size:12,color:`white`}):(0,A.jsx)(tw,{size:14}),onClick:()=>r.mutate(),disabled:i,loading:i,children:i?K.security_running():K.security_run_audit()});return(0,A.jsxs)(Ip,{gap:0,style:{height:`100%`},children:[(0,A.jsx)(lT,{title:K.security_title(),description:K.security_description(),docsHref:`https://pikku.dev/docs`,lead:u,search:l?{placeholder:a===`issues`?K.security_search_issues():K.security_search_deps(),value:s,onChange:c,width:240}:void 0,selection:l?{ariaLabel:K.security_lens_aria(),value:a,onChange:o,options:[{value:`issues`,label:K.security_lens_issues()},{value:`dependencies`,label:K.security_lens_dependencies()}]}:void 0}),n?(0,A.jsx)(ud,{style:{flex:1},children:(0,A.jsx)(zl,{})}):t?(0,A.jsx)(Sl,{style:{flex:1},children:(0,A.jsxs)(j,{p:`lg`,children:[r.isError&&(0,A.jsx)(z,{c:`red`,mb:`sm`,"data-testid":`security-run-error`,children:K.security_run_error()}),(0,A.jsx)(Byn,{report:t,lens:a,query:s})]})}):(0,A.jsx)(A2,{icon:lw,hero:e,title:K.security_empty_title(),description:r.isError?K.security_empty_error_description():K.security_empty_description(),docsHref:`https://pikku.dev/docs`})]})},Hyn=()=>(0,A.jsxs)(See,{children:[(0,A.jsx)(nn,{path:`/render/workflow`,element:(0,A.jsx)(vvn,{})}),(0,A.jsxs)(nn,{element:(0,A.jsxs)(RWe,{children:[(0,A.jsx)(zWe,{}),(0,A.jsx)(AWe,{children:(0,A.jsx)(xee,{})})]}),children:[(0,A.jsx)(nn,{path:`/`,element:(0,A.jsx)(tn,{to:`/overview`,replace:!0})}),(0,A.jsx)(nn,{path:`/overview`,element:(0,A.jsx)(qWe,{})}),(0,A.jsx)(nn,{path:`/functions`,element:(0,A.jsx)(kHt,{})}),(0,A.jsx)(nn,{path:`/workflow`,element:(0,A.jsx)(nUt,{})}),(0,A.jsx)(nn,{path:`/agents`,element:(0,A.jsx)(Gqt,{})}),(0,A.jsx)(nn,{path:`/agents/playground`,element:(0,A.jsx)(Ign,{})}),(0,A.jsx)(nn,{path:`/changes`,element:(0,A.jsx)(Nvn,{})}),(0,A.jsx)(nn,{path:`/scenarios`,element:(0,A.jsx)(Wvn,{})}),(0,A.jsx)(nn,{path:`/database`,element:(0,A.jsx)(uyn,{})}),(0,A.jsx)(nn,{path:`/apis`,element:(0,A.jsx)(xUt,{})}),(0,A.jsx)(nn,{path:`/jobs`,element:(0,A.jsx)(kUt,{})}),(0,A.jsx)(nn,{path:`/runtime`,element:(0,A.jsx)(FUt,{})}),(0,A.jsx)(nn,{path:`/emails`,element:(0,A.jsx)(Iqt,{})}),(0,A.jsx)(nn,{path:`/webhooks`,element:(0,A.jsx)(Rqt,{})}),(0,A.jsx)(nn,{path:`/secrets`,element:(0,A.jsx)(Vqt,{})}),(0,A.jsx)(nn,{path:`/variables`,element:(0,A.jsx)(Wqt,{})}),(0,A.jsx)(nn,{path:`/security`,element:(0,A.jsx)(Vyn,{})}),(0,A.jsx)(nn,{path:`/config`,element:(0,A.jsx)(tn,{to:`/secrets`,replace:!0})}),(0,A.jsx)(nn,{path:`/credentials`,element:(0,A.jsx)(j_n,{})}),(0,A.jsx)(nn,{path:`/users`,element:(0,A.jsx)(svn,{})}),(0,A.jsx)(nn,{path:`/scopes`,element:(0,A.jsx)(mvn,{})}),(0,A.jsx)(nn,{path:`/auth-providers`,element:(0,A.jsx)(vyn,{})}),(0,A.jsx)(nn,{path:`/addons`,element:(0,A.jsx)(T_n,{})}),(0,A.jsx)(nn,{path:`*`,element:(0,A.jsx)(tT,{})})]})]}),Uyn=s(((e,t)=>{function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw Error(`map is read-only`)}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw Error(`set is read-only`)}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let r=e[t],i=typeof r;(i===`object`||i===`function`)&&!Object.isFrozen(r)&&n(r)}),e}var r=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function i(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function a(e,...t){let n=Object.create(null);for(let t in e)n[t]=e[t];return t.forEach(function(e){for(let t in e)n[t]=e[t]}),n}var o=`</span>`,s=e=>!!e.scope,c=(e,{prefix:t})=>{if(e.startsWith(`language:`))return e.replace(`language:`,`language-`);if(e.includes(`.`)){let n=e.split(`.`);return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${`_`.repeat(t+1)}`)].join(` `)}return`${t}${e}`},l=class{constructor(e,t){this.buffer=``,this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=i(e)}openNode(e){if(!s(e))return;let t=c(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){s(e)&&(this.buffer+=o)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}},u=(e={})=>{let t={children:[]};return Object.assign(t,e),t},d=class e{constructor(){this.rootNode=u(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=u({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t==`string`?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(t){typeof t!=`string`&&t.children&&(t.children.every(e=>typeof e==`string`)?t.children=[t.children.join(``)]:t.children.forEach(t=>{e._collapse(t)}))}},f=class extends d{constructor(e){super(),this.options=e}addText(e){e!==``&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new l(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function p(e){return e?typeof e==`string`?e:e.source:null}function m(e){return _(`(?=`,e,`)`)}function h(e){return _(`(?:`,e,`)*`)}function g(e){return _(`(?:`,e,`)?`)}function _(...e){return e.map(e=>p(e)).join(``)}function v(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function y(...e){return`(`+(v(e).capture?``:`?:`)+e.map(e=>p(e)).join(`|`)+`)`}function b(e){return RegExp(e.toString()+`|`).exec(``).length-1}function x(e,t){let n=e&&e.exec(t);return n&&n.index===0}var S=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function C(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;let t=n,r=p(e),i=``;for(;r.length>0;){let e=S.exec(r);if(!e){i+=r;break}i+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),e[0][0]===`\\`&&e[1]?i+=`\\`+String(Number(e[1])+t):(i+=e[0],e[0]===`(`&&n++)}return i}).map(e=>`(${e})`).join(t)}var w=/\b\B/,T=`[a-zA-Z]\\w*`,E=`[a-zA-Z_]\\w*`,D=`\\b\\d+(\\.\\d+)?`,O=`(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)`,ee=`\\b(0b[01]+)`,k=`!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~`,te=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=_(t,/.*\b/,e.binary,/\b.*/)),a({scope:`meta`,begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{e.index!==0&&t.ignoreMatch()}},e)},ne={begin:`\\\\[\\s\\S]`,relevance:0},re={scope:`string`,begin:`'`,end:`'`,illegal:`\\n`,contains:[ne]},ie={scope:`string`,begin:`"`,end:`"`,illegal:`\\n`,contains:[ne]},ae={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},oe=function(e,t,n={}){let r=a({scope:`comment`,begin:e,end:t,contains:[]},n);r.contains.push({scope:`doctag`,begin:`[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)`,end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let i=y(`I`,`a`,`is`,`so`,`us`,`to`,`at`,`if`,`in`,`it`,`on`,/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:_(/[ ]+/,`(`,i,/[.]?[:]?([.][ ]|[ ])/,`){3}`)}),r},se=oe(`//`,`$`),ce=oe(`/\\*`,`\\*/`),le=oe(`#`,`$`),ue=Object.freeze({__proto__:null,APOS_STRING_MODE:re,BACKSLASH_ESCAPE:ne,BINARY_NUMBER_MODE:{scope:`number`,begin:ee,relevance:0},BINARY_NUMBER_RE:ee,COMMENT:oe,C_BLOCK_COMMENT_MODE:ce,C_LINE_COMMENT_MODE:se,C_NUMBER_MODE:{scope:`number`,begin:O,relevance:0},C_NUMBER_RE:O,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:le,IDENT_RE:T,MATCH_NOTHING_RE:w,METHOD_GUARD:{begin:`\\.\\s*[a-zA-Z_]\\w*`,relevance:0},NUMBER_MODE:{scope:`number`,begin:D,relevance:0},NUMBER_RE:D,PHRASAL_WORDS_MODE:ae,QUOTE_STRING_MODE:ie,REGEXP_MODE:{scope:`regexp`,begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ne,{begin:/\[/,end:/\]/,relevance:0,contains:[ne]}]},RE_STARTERS_RE:k,SHEBANG:te,TITLE_MODE:{scope:`title`,begin:T,relevance:0},UNDERSCORE_IDENT_RE:E,UNDERSCORE_TITLE_MODE:{scope:`title`,begin:E,relevance:0}});function de(e,t){e.input[e.index-1]===`.`&&t.ignoreMatch()}function fe(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function pe(e,t){t&&e.beginKeywords&&(e.begin=`\\b(`+e.beginKeywords.split(` `).join(`|`)+`)(?!\\.)(?=\\b|\\s)`,e.__beforeBegin=de,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function me(e,t){Array.isArray(e.illegal)&&(e.illegal=y(...e.illegal))}function he(e,t){if(e.match){if(e.begin||e.end)throw Error(`begin & end are not supported with match`);e.begin=e.match,delete e.match}}function ge(e,t){e.relevance===void 0&&(e.relevance=1)}var _e=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error(`beforeMatch cannot be used with starts`);let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=_(n.beforeMatch,m(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},ve=[`of`,`and`,`for`,`in`,`not`,`or`,`if`,`then`,`parent`,`list`,`value`],ye=`keyword`;function be(e,t,n=ye){let r=Object.create(null);return typeof e==`string`?i(n,e.split(` `)):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(n){Object.assign(r,be(e[n],t,n))}),r;function i(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(t){let n=t.split(`|`);r[n[0]]=[e,xe(n[0],n[1])]})}}function xe(e,t){return t?Number(t):+!Se(e)}function Se(e){return ve.includes(e.toLowerCase())}var Ce={},we=e=>{console.error(e)},Te=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ee=(e,t)=>{Ce[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Ce[`${e}/${t}`]=!0)},De=Error();function Oe(e,t,{key:n}){let r=0,i=e[n],a={},o={};for(let e=1;e<=t.length;e++)o[e+r]=i[e],a[e+r]=!0,r+=b(t[e-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function ke(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw we(`skip, excludeBegin, returnBegin not compatible with beginScope: {}`),De;if(typeof e.beginScope!=`object`||e.beginScope===null)throw we(`beginScope must be object`),De;Oe(e,e.begin,{key:`beginScope`}),e.begin=C(e.begin,{joinWith:``})}}function Ae(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw we(`skip, excludeEnd, returnEnd not compatible with endScope: {}`),De;if(typeof e.endScope!=`object`||e.endScope===null)throw we(`endScope must be object`),De;Oe(e,e.end,{key:`endScope`}),e.end=C(e.end,{joinWith:``})}}function je(e){e.scope&&typeof e.scope==`object`&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Me(e){je(e),typeof e.beginScope==`string`&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope==`string`&&(e.endScope={_wrap:e.endScope}),ke(e),Ae(e)}function Ne(e){function t(t,n){return new RegExp(p(t),`m`+(e.case_insensitive?`i`:``)+(e.unicodeRegex?`u`:``)+(n?`g`:``))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=b(e)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let e=this.regexes.map(e=>e[1]);this.matcherRe=t(C(e,{joinWith:`|`}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&e!==void 0),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new n;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),t.type===`begin`&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition()&&!(n&&n.index===this.lastIndex)){let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function i(e){let t=new r;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:`begin`})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:`end`}),e.illegal&&t.addRule(e.illegal,{type:`illegal`}),t}function o(n,r){let a=n;if(n.isCompiled)return a;[fe,he,Me,_e].forEach(e=>e(n,r)),e.compilerExtensions.forEach(e=>e(n,r)),n.__beforeBegin=null,[pe,me,ge].forEach(e=>e(n,r)),n.isCompiled=!0;let s=null;return typeof n.keywords==`object`&&n.keywords.$pattern&&(n.keywords=Object.assign({},n.keywords),s=n.keywords.$pattern,delete n.keywords.$pattern),s||=/\w+/,n.keywords&&=be(n.keywords,e.case_insensitive),a.keywordPatternRe=t(s,!0),r&&(n.begin||=/\B|\b/,a.beginRe=t(a.begin),!n.end&&!n.endsWithParent&&(n.end=/\B|\b/),n.end&&(a.endRe=t(a.end)),a.terminatorEnd=p(a.end)||``,n.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(n.end?`|`:``)+r.terminatorEnd)),n.illegal&&(a.illegalRe=t(n.illegal)),n.contains||=[],n.contains=[].concat(...n.contains.map(function(e){return Fe(e===`self`?n:e)})),n.contains.forEach(function(e){o(e,a)}),n.starts&&o(n.starts,r),a.matcher=i(a),a}if(e.compilerExtensions||=[],e.contains&&e.contains.includes(`self`))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=a(e.classNameAliases||{}),o(e)}function Pe(e){return e?e.endsWithParent||Pe(e.starts):!1}function Fe(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return a(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:Pe(e)?a(e,{starts:e.starts?a(e.starts):null}):Object.isFrozen(e)?a(e):e}var Ie=`11.11.1`,Le=class extends Error{constructor(e,t){super(e),this.name=`HTMLInjectionError`,this.html=t}},Re=i,ze=a,Be=Symbol(`nomatch`),Ve=7,He=function(e){let t=Object.create(null),i=Object.create(null),a=[],o=!0,s=`Could not find the language '{}', did you forget to load/include a language module?`,c={disableAutodetect:!0,name:`Plain text`,contains:[]},l={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:`hljs-`,cssSelector:`pre code`,languages:null,__emitter:f};function u(e){return l.noHighlightRe.test(e)}function d(e){let t=e.className+` `;t+=e.parentNode?e.parentNode.className:``;let n=l.languageDetectRe.exec(t);if(n){let t=re(n[1]);return t||(Te(s.replace(`{}`,n[1])),Te(`Falling back to no-highlight mode for this block.`,e)),t?n[1]:`no-highlight`}return t.split(/\s+/).find(e=>u(e)||re(e))}function p(e,t,n){let r=``,i=``;typeof t==`object`?(r=e,n=t.ignoreIllegals,i=t.language):(Ee(`10.7.0`,`highlight(lang, code, ...args) has been deprecated.`),Ee(`10.7.0`,`Please use highlight(code, options) instead.
|
|
257
257
|
https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(n=!0);let a={code:r,language:i};le(`before:highlight`,a);let o=a.result?a.result:v(a.language,a.code,n);return o.code=a.code,le(`after:highlight`,o),o}function v(e,n,i,a){let c=Object.create(null);function u(e,t){return e.keywords[t]}function d(){if(!k.keywords){ne.addText(ie);return}let e=0;k.keywordPatternRe.lastIndex=0;let t=k.keywordPatternRe.exec(ie),n=``;for(;t;){n+=ie.substring(e,t.index);let r=D.case_insensitive?t[0].toLowerCase():t[0],i=u(k,r);if(i){let[e,a]=i;if(ne.addText(n),n=``,c[r]=(c[r]||0)+1,c[r]<=Ve&&(ae+=a),e.startsWith(`_`))n+=t[0];else{let n=D.classNameAliases[e]||e;m(t[0],n)}}else n+=t[0];e=k.keywordPatternRe.lastIndex,t=k.keywordPatternRe.exec(ie)}n+=ie.substring(e),ne.addText(n)}function f(){if(ie===``)return;let e=null;if(typeof k.subLanguage==`string`){if(!t[k.subLanguage]){ne.addText(ie);return}e=v(k.subLanguage,ie,!0,te[k.subLanguage]),te[k.subLanguage]=e._top}else e=S(ie,k.subLanguage.length?k.subLanguage:null);k.relevance>0&&(ae+=e.relevance),ne.__addSublanguage(e._emitter,e.language)}function p(){k.subLanguage==null?d():f(),ie=``}function m(e,t){e!==``&&(ne.startScope(t),ne.addText(e),ne.endScope())}function h(e,t){let n=1,r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}let r=D.classNameAliases[e[n]]||e[n],i=t[n];r?m(i,r):(ie=i,d(),ie=``),n++}}function g(e,t){return e.scope&&typeof e.scope==`string`&&ne.openNode(D.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(m(ie,D.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),ie=``):e.beginScope._multi&&(h(e.beginScope,t),ie=``)),k=Object.create(e,{parent:{value:k}}),k}function _(e,t,n){let i=x(e.endRe,n);if(i){if(e[`on:end`]){let n=new r(e);e[`on:end`](t,n),n.isMatchIgnored&&(i=!1)}if(i){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return _(e.parent,t,n)}function y(e){return k.matcher.regexIndex===0?(ie+=e[0],1):(ce=!0,0)}function b(e){let t=e[0],n=e.rule,i=new r(n),a=[n.__beforeBegin,n[`on:begin`]];for(let n of a)if(n&&(n(e,i),i.isMatchIgnored))return y(t);return n.skip?ie+=t:(n.excludeBegin&&(ie+=t),p(),!n.returnBegin&&!n.excludeBegin&&(ie=t)),g(n,e),n.returnBegin?0:t.length}function C(e){let t=e[0],r=n.substring(e.index),i=_(k,e,r);if(!i)return Be;let a=k;k.endScope&&k.endScope._wrap?(p(),m(t,k.endScope._wrap)):k.endScope&&k.endScope._multi?(p(),h(k.endScope,e)):a.skip?ie+=t:(a.returnEnd||a.excludeEnd||(ie+=t),p(),a.excludeEnd&&(ie=t));do k.scope&&ne.closeNode(),!k.skip&&!k.subLanguage&&(ae+=k.relevance),k=k.parent;while(k!==i.parent);return i.starts&&g(i.starts,e),a.returnEnd?0:t.length}function w(){let e=[];for(let t=k;t!==D;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>ne.openNode(e))}let T={};function E(t,r){let a=r&&r[0];if(ie+=t,a==null)return p(),0;if(T.type===`begin`&&r.type===`end`&&T.index===r.index&&a===``){if(ie+=n.slice(r.index,r.index+1),!o){let t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=T.rule,t}return 1}if(T=r,r.type===`begin`)return b(r);if(r.type===`illegal`&&!i){let e=Error(`Illegal lexeme "`+a+`" for mode "`+(k.scope||`<unnamed>`)+`"`);throw e.mode=k,e}else if(r.type===`end`){let e=C(r);if(e!==Be)return e}if(r.type===`illegal`&&a===``)return ie+=`
|