@schlenkr/ragents 0.1.7 → 0.1.8

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.
@@ -74,8 +74,9 @@ export const withFolderAssets = (plugin: RAgentsPlugin): RAgentsPlugin => ({
74
74
  if (skillPaths.length === 0) return;
75
75
  host.skills({
76
76
  id: `${plugin.manifest.id}.folder-skills`,
77
+ // Ein ausdrücklich angemeldeter Pfad gehört in jedem Run dem ausdrücklichen Beitrag, auch wo der ihn für diesen Run weglässt.
77
78
  paths: async (context) => {
78
- const explicit = await Promise.all(explicitSkills.map((skill) => skill.paths(context)));
79
+ const explicit = await Promise.all(explicitSkills.flatMap((skill) => [skill.paths(undefined), skill.paths(context)]));
79
80
  const taken = new Set(explicit.flat());
80
81
  return skillPaths.filter((skillPath) => !taken.has(skillPath));
81
82
  },
@@ -271,32 +271,39 @@ export const createEngine = async (options: EngineOptions): Promise<Engine> => {
271
271
  });
272
272
  const boundToTools = (entry: PublicPromptContribution, toolNames: readonly string[]): boolean =>
273
273
  entry.requiresTools.some((name) => toolNames.includes(name));
274
- /** Ein Beitrag darf je Run anders lauten, etwa die Shell-Plattform des Executors, der den Run ausführt. */
275
- const contentFor = (runId: string | null): ((entry: PublicPromptContribution) => string) => {
274
+ /** Ein Beitrag darf je Run anders lauten oder fehlen, etwa die Shell-Plattform des Executors oder ein Plugin, dessen Laufbedingung nicht zutrifft; das gilt auch für die gewählten Systemprompts. */
275
+ const contentFor = (runId: string | null, texts: () => readonly string[]): ((entry: PublicPromptContribution) => string) => {
276
276
  const overrides = runId === null ? undefined : options.plugins.prompts.runOverrides(runId);
277
- return (entry) => overrides?.get(entry.id) ?? entry.content;
277
+ return (entry) => overrides?.get(entry.id)
278
+ ?? (systemPromptSelectionPromptIds.has(entry.id) ? texts().join("\n\n") : entry.content);
278
279
  };
279
280
  const composeWith = (runId: string | null, texts: readonly string[], toolNames: readonly string[] | null): string => {
280
- const content = contentFor(runId);
281
+ const content = contentFor(runId, () => texts);
281
282
  return baseSnapshot
282
283
  .contributions
283
284
  .filter((entry) => entry.delivery === "initial")
284
285
  .filter((entry) => toolNames === null || entry.requiresTools.length === 0 || boundToTools(entry, toolNames))
285
- .map((entry) => systemPromptSelectionPromptIds.has(entry.id) ? texts.join("\n\n") : content(entry))
286
+ .map(content)
286
287
  .filter(Boolean)
287
288
  .join("\n\n");
288
289
  };
289
- const chaptersFor = async (toolNames: readonly string[]): Promise<string> => {
290
+ const chaptersFor = async (runId: string, toolNames: readonly string[]): Promise<string> => {
290
291
  const chapters = await options.plugins.prompts.describe({
291
292
  }, { delivery: "on-demand", toolNames });
292
- return chapters.map((entry) => entry.content).filter(Boolean).join("\n\n");
293
+ const content = contentFor(runId, () => []);
294
+ return chapters.map(content).filter(Boolean).join("\n\n");
293
295
  };
294
296
  const systemPromptFor = (runId: string): string => globalChat?.isCoordinator(runId)
295
297
  ? globalChat.prompt : composeWith(runId, textsFor(runId), null);
296
298
  const coordinatorPromptFor = (runId: string, toolNames: readonly string[]): string =>
297
299
  composeWith(runId, textsFor(runId), toolNames);
298
- const agentPromptFor = (runId: string): string =>
299
- storedSystemPrompt(journal.stateOf(runId)).shareWithAgents ? textsFor(runId).join("\n\n") : "";
300
+ const selectionPrompts = baseSnapshot.contributions.filter((entry) => systemPromptSelectionPromptIds.has(entry.id));
301
+ const agentPromptFor = (runId: string): string => {
302
+ if (!storedSystemPrompt(journal.stateOf(runId)).shareWithAgents) return "";
303
+ if (selectionPrompts.length === 0) return textsFor(runId).join("\n\n");
304
+ const content = contentFor(runId, () => textsFor(runId));
305
+ return selectionPrompts.map(content).filter(Boolean).join("\n\n");
306
+ };
300
307
  const systemPrompt = composeWith(
301
308
  null,
302
309
  selectedSystemPrompts(promptCatalog, promptCatalog.defaultIds).map((option) => optionTexts.get(option.id) ?? ""),
@@ -309,7 +316,7 @@ export const createEngine = async (options: EngineOptions): Promise<Engine> => {
309
316
  : [agentPromptFor(runId), actor.kind === "agent" ? actor.prompt : "",
310
317
  ...baseSnapshot.contributions
311
318
  .filter((entry) => entry.delivery === "initial" && boundToTools(entry, toolNames))
312
- .map(contentFor(runId)),
319
+ .map(contentFor(runId, () => textsFor(runId))),
313
320
  ].filter(Boolean).join("\n\n");
314
321
  return [prompt, productRuntime.contract(role), outputContractFor(role)]
315
322
  .filter(Boolean)
@@ -331,7 +338,7 @@ export const createEngine = async (options: EngineOptions): Promise<Engine> => {
331
338
  ...(workspaceToolNaming ? { workspaceToolNaming } : {}),
332
339
  basePrompt: basePromptFor,
333
340
  contract: (actor) => coreContractFor(actor),
334
- toolChapters: (_runId, _actor, toolNames) => chaptersFor(toolNames),
341
+ toolChapters: (runId, _actor, toolNames) => chaptersFor(runId, toolNames),
335
342
  onError: (error) => console.error(`Turn fehlgeschlagen: ${error instanceof Error ? error.stack ?? error.message : String(error)}`),
336
343
  });
337
344
  const stopExternal: RunStopBoundary = (runId, stopJournal) => scheduler.haltRun(runId, async (
@@ -1 +1 @@
1
- import{r,S as d,E as p,j as E,c as f}from"./mermaid-HWGCJPDP-kxkB991i.js";var j=({code:i,language:e,maxHeight:o,raw:a,className:u,startLine:m,lineNumbers:n,...h})=>{let{shikiTheme:l}=r.useContext(d),t=p(),[c,s]=r.useState(a);return r.useEffect(()=>{if(!t){s(a);return}let g=t.highlight({code:i,language:e,themes:l},x=>{s(x)});g&&s(g)},[i,e,l,t,a]),E.jsx(f,{className:u,language:e,lineNumbers:n,maxHeight:o,result:c,startLine:m,...h})};export{j as HighlightedCodeBlockBody};
1
+ import{r,S as d,E as p,j as E,c as f}from"./mermaid-HWGCJPDP-DfsU5ofC.js";var j=({code:i,language:e,maxHeight:o,raw:a,className:u,startLine:m,lineNumbers:n,...h})=>{let{shikiTheme:l}=r.useContext(d),t=p(),[c,s]=r.useState(a);return r.useEffect(()=>{if(!t){s(a);return}let g=t.highlight({code:i,language:e,themes:l},x=>{s(x)});g&&s(g)},[i,e,l,t,a]),E.jsx(f,{className:u,language:e,lineNumbers:n,maxHeight:o,result:c,startLine:m,...h})};export{j as HighlightedCodeBlockBody};
@@ -1,4 +1,4 @@
1
- import{a as De,r as t,j as e,D as oe,b as ce,d as G,B as b,X as Le,M as Pe,C as de,e as Me,f as Oe,g as He,h as Ie,u as Be,i as _e,k as Fe,l as Ue,m as Ke,A as Te,n as qe,o as We,p as $e,U as Qe,P as Ve,W as Ge,R as Xe,q as ae,s as V,t as Je,v as Ye,w as Ze,x as et,y as tt,z as st,F as nt,Q as rt,G as at,H as it}from"./mermaid-HWGCJPDP-kxkB991i.js";/**
1
+ import{a as De,r as t,j as e,D as oe,b as ce,d as G,B as b,X as Le,M as Pe,C as de,e as Me,f as Oe,g as He,h as Ie,u as Be,i as _e,k as Fe,l as Ue,m as Ke,A as Te,n as qe,o as We,p as $e,U as Qe,P as Ve,W as Ge,R as Xe,q as ae,s as V,t as Je,v as Ye,w as Ze,x as et,y as tt,z as st,F as nt,Q as rt,G as at,H as it}from"./mermaid-HWGCJPDP-DfsU5ofC.js";/**
2
2
  * @license lucide-react v1.46.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -396,7 +396,7 @@ ${e}</tr>
396
396
  `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${ao(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=ND(e);if(i===null)return r;e=i;let a='<a href="'+e+'"';return t&&(a+=' title="'+ao(t)+'"'),a+=">"+r+"</a>",a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=ND(e);if(i===null)return ao(n);e=i;let a=`<img src="${e}" alt="${ao(n)}"`;return t&&(a+=` title="${ao(t)}"`),a+=">",a}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:ao(e.text)}},Uk=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},Ps=class _w{constructor(t){at(this,"options");at(this,"renderer");at(this,"textRenderer");this.options=t||xd,this.options.renderer=this.options.renderer||new w1,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Uk}static parse(t,n){return new _w(n).parse(t)}static parseInline(t,n){return new _w(n).parseInline(t)}parse(t){var r,i;this.renderer.parser=this;let n="";for(let a=0;a<t.length;a++){let o=t[a];if((i=(r=this.options.extensions)==null?void 0:r.renderers)!=null&&i[o.type]){let u=o,d=this.options.extensions.renderers[u.type].call({parser:this},u);if(d!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(u.type)){n+=d||"";continue}}let c=o;switch(c.type){case"space":{n+=this.renderer.space(c);break}case"hr":{n+=this.renderer.hr(c);break}case"heading":{n+=this.renderer.heading(c);break}case"code":{n+=this.renderer.code(c);break}case"table":{n+=this.renderer.table(c);break}case"blockquote":{n+=this.renderer.blockquote(c);break}case"list":{n+=this.renderer.list(c);break}case"checkbox":{n+=this.renderer.checkbox(c);break}case"html":{n+=this.renderer.html(c);break}case"def":{n+=this.renderer.def(c);break}case"paragraph":{n+=this.renderer.paragraph(c);break}case"text":{n+=this.renderer.text(c);break}default:{let u='Token with "'+c.type+'" type was not found.';if(this.options.silent)return console.error(u),"";throw new Error(u)}}}return n}parseInline(t,n=this.renderer){var i,a;this.renderer.parser=this;let r="";for(let o=0;o<t.length;o++){let c=t[o];if((a=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&a[c.type]){let d=this.options.extensions.renderers[c.type].call({parser:this},c);if(d!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(c.type)){r+=d||"";continue}}let u=c;switch(u.type){case"escape":{r+=n.text(u);break}case"html":{r+=n.html(u);break}case"link":{r+=n.link(u);break}case"image":{r+=n.image(u);break}case"checkbox":{r+=n.checkbox(u);break}case"strong":{r+=n.strong(u);break}case"em":{r+=n.em(u);break}case"codespan":{r+=n.codespan(u);break}case"br":{r+=n.br(u);break}case"del":{r+=n.del(u);break}case"text":{r+=n.text(u);break}default:{let d='Token with "'+u.type+'" type was not found.';if(this.options.silent)return console.error(d),"";throw new Error(d)}}}return r}},y0,Ih=(y0=class{constructor(e){at(this,"options");at(this,"block");this.options=e||xd}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?ps.lex:ps.lexInline}provideParser(e=this.block){return e?Ps.parse:Ps.parseInline}},at(y0,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),at(y0,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),y0),oSe=class{constructor(...t){at(this,"defaults",Dk());at(this,"options",this.setOptions);at(this,"parse",this.parseMarkdown(!0));at(this,"parseInline",this.parseMarkdown(!1));at(this,"Parser",Ps);at(this,"Renderer",w1);at(this,"TextRenderer",Uk);at(this,"Lexer",ps);at(this,"Tokenizer",T1);at(this,"Hooks",Ih);this.use(...t)}walkTokens(t,n){var i,a;let r=[];for(let o of t)switch(r=r.concat(n.call(this,o)),o.type){case"table":{let c=o;for(let u of c.header)r=r.concat(this.walkTokens(u.tokens,n));for(let u of c.rows)for(let d of u)r=r.concat(this.walkTokens(d.tokens,n));break}case"list":{let c=o;r=r.concat(this.walkTokens(c.items,n));break}default:{let c=o;(a=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&a[c.type]?this.defaults.extensions.childTokens[c.type].forEach(u=>{let d=c[u].flat(1/0);r=r.concat(this.walkTokens(d,n))}):c.tokens&&(r=r.concat(this.walkTokens(c.tokens,n)))}}return r}use(...t){let n=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{let i={...r};if(i.async=this.defaults.async||i.async||!1,r.extensions&&(r.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let o=n.renderers[a.name];o?n.renderers[a.name]=function(...c){let u=a.renderer.apply(this,c);return u===!1&&(u=o.apply(this,c)),u}:n.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=n[a.level];o?o.unshift(a.tokenizer):n[a.level]=[a.tokenizer],a.start&&(a.level==="block"?n.startBlock?n.startBlock.push(a.start):n.startBlock=[a.start]:a.level==="inline"&&(n.startInline?n.startInline.push(a.start):n.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(n.childTokens[a.name]=a.childTokens)}),i.extensions=n),r.renderer){let a=this.defaults.renderer||new w1(this.defaults);for(let o in r.renderer){if(!(o in a))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let c=o,u=r.renderer[c],d=a[c];a[c]=(...p)=>{let h=u.apply(a,p);return h===!1&&(h=d.apply(a,p)),h||""}}i.renderer=a}if(r.tokenizer){let a=this.defaults.tokenizer||new T1(this.defaults);for(let o in r.tokenizer){if(!(o in a))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let c=o,u=r.tokenizer[c],d=a[c];a[c]=(...p)=>{let h=u.apply(a,p);return h===!1&&(h=d.apply(a,p)),h}}i.tokenizer=a}if(r.hooks){let a=this.defaults.hooks||new Ih;for(let o in r.hooks){if(!(o in a))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let c=o,u=r.hooks[c],d=a[c];Ih.passThroughHooks.has(o)?a[c]=p=>{if(this.defaults.async&&Ih.passThroughHooksRespectAsync.has(o))return(async()=>{let y=await u.call(a,p);return d.call(a,y)})();let h=u.call(a,p);return d.call(a,h)}:a[c]=(...p)=>{if(this.defaults.async)return(async()=>{let y=await u.apply(a,p);return y===!1&&(y=await d.apply(a,p)),y})();let h=u.apply(a,p);return h===!1&&(h=d.apply(a,p)),h}}i.hooks=a}if(r.walkTokens){let a=this.defaults.walkTokens,o=r.walkTokens;i.walkTokens=function(c){let u=[];return u.push(o.call(this,c)),a&&(u=u.concat(a.call(this,c))),u}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,n){return ps.lex(t,n??this.defaults)}parser(t,n){return Ps.parse(t,n??this.defaults)}parseMarkdown(t){return(n,r)=>{let i={...r},a={...this.defaults,...i},o=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&i.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof n>"u"||n===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(a.hooks&&(a.hooks.options=a,a.hooks.block=t),a.async)return(async()=>{let c=a.hooks?await a.hooks.preprocess(n):n,u=await(a.hooks?await a.hooks.provideLexer(t):t?ps.lex:ps.lexInline)(c,a),d=a.hooks?await a.hooks.processAllTokens(u):u;a.walkTokens&&await Promise.all(this.walkTokens(d,a.walkTokens));let p=await(a.hooks?await a.hooks.provideParser(t):t?Ps.parse:Ps.parseInline)(d,a);return a.hooks?await a.hooks.postprocess(p):p})().catch(o);try{a.hooks&&(n=a.hooks.preprocess(n));let c=(a.hooks?a.hooks.provideLexer(t):t?ps.lex:ps.lexInline)(n,a);a.hooks&&(c=a.hooks.processAllTokens(c)),a.walkTokens&&this.walkTokens(c,a.walkTokens);let u=(a.hooks?a.hooks.provideParser(t):t?Ps.parse:Ps.parseInline)(c,a);return a.hooks&&(u=a.hooks.postprocess(u)),u}catch(c){return o(c)}}}onError(t,n){return r=>{if(r.message+=`
397
397
  Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error occurred:</p><pre>"+ao(r.message+"",!0)+"</pre>";return n?Promise.resolve(i):i}if(n)return Promise.reject(r);throw r}}},ad=new oSe;function fr(e,t){return ad.parse(e,t)}fr.options=fr.setOptions=function(e){return ad.setOptions(e),fr.defaults=ad.defaults,aU(fr.defaults),fr};fr.getDefaults=Dk;fr.defaults=xd;fr.use=function(...e){return ad.use(...e),fr.defaults=ad.defaults,aU(fr.defaults),fr};fr.walkTokens=function(e,t){return ad.walkTokens(e,t)};fr.parseInline=ad.parseInline;fr.Parser=Ps;fr.parser=Ps.parse;fr.Renderer=w1;fr.TextRenderer=Uk;fr.Lexer=ps;fr.lexer=ps.lex;fr.Tokenizer=T1;fr.Hooks=Ih;fr.parse=fr;fr.options;fr.setOptions;fr.use;fr.walkTokens;fr.parseInline;Ps.parse;ps.lex;var lSe=300,cSe="300px",uSe=500;function dSe(e={}){let{immediate:t=!1,debounceDelay:n=lSe,rootMargin:r=cSe,idleTimeout:i=uSe}=e,[a,o]=x.useState(!1),c=x.useRef(null),u=x.useRef(null),d=x.useRef(null),p=x.useMemo(()=>b=>{let v=Date.now();return window.setTimeout(()=>{b({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-v))})},1)},[]),h=x.useMemo(()=>typeof window<"u"&&window.requestIdleCallback?(b,v)=>window.requestIdleCallback(b,v):p,[p]),y=x.useMemo(()=>typeof window<"u"&&window.cancelIdleCallback?b=>window.cancelIdleCallback(b):b=>{clearTimeout(b)},[]);return x.useEffect(()=>{if(t){o(!0);return}let b=c.current;if(!b)return;u.current&&(clearTimeout(u.current),u.current=null),d.current&&(y(d.current),d.current=null);let v=()=>{u.current&&(clearTimeout(u.current),u.current=null),d.current&&(y(d.current),d.current=null)},T=k=>{d.current=h(R=>{R.timeRemaining()>0||R.didTimeout?(o(!0),k.disconnect()):d.current=h(()=>{o(!0),k.disconnect()},{timeout:i/2})},{timeout:i})},A=k=>{v(),u.current=window.setTimeout(()=>{var R,O;let N=k.takeRecords();(N.length===0||(O=(R=N.at(-1))==null?void 0:R.isIntersecting)!=null&&O)&&T(k)},n)},S=(k,R)=>{k.isIntersecting?A(R):v()},C=new IntersectionObserver(k=>{for(let R of k)S(R,C)},{rootMargin:r,threshold:0});return C.observe(b),()=>{u.current&&clearTimeout(u.current),d.current&&y(d.current),C.disconnect()}},[t,n,r,i,y,h]),{shouldRender:a,containerRef:c}}var fSe=320,pSe=4,mU=()=>typeof performance>"u"?Date.now():performance.now();function ID(e){var t,n;let r=(t=e==null?void 0:e.now)!=null?t:mU,i=(n=e==null?void 0:e.maxBacklogMs)!=null?n:fSe,a=0,o=0;return{now:r,beginPass(c){o=Math.min(Math.max(a,c),c+i)},mark(){return o},rewind(c){o=c},take(c,u,d){if(c<=0)return{baseDelay:0,step:Math.max(0,u)};let p=Math.max(0,u),h=p===0?0:Math.min(p,pSe),y=Math.max(o,d),b=d+i,v=y+Math.max(0,c-1)*p,T=p;if(v>b&&c>1)if(y<b){let S=b-y;T=Math.max(h,S/(c-1))}else T=h;let A=Math.max(0,Math.round(y-d));return o=y+c*T,{baseDelay:A,step:T}},commitPass(){a=o}}}var gU=/\s/,Hk=/^\s+$/,hSe=new Set(["pre","svg","math","annotation"]),mSe=new Set(["img","hr"]),Sg=e=>typeof e=="object"&&e!==null&&"type"in e&&e.type==="element",qk=e=>e.some(t=>Sg(t)&&hSe.has(t.tagName)),gSe=e=>{for(let t=e.length-1;t>=0;t--){let n=e[t];if(Sg(n)&&n.tagName==="li")return n}},bSe=(e,t,n,r)=>{e.properties!=null||(e.properties={}),e.properties["data-sd-animate-marker"]=!0;let i=typeof e.properties.style=="string"?`${e.properties.style};`:"";e.properties.style=`${i}--sd-marker-duration:${t}ms;--sd-marker-delay:${Math.round(n)}ms;--sd-marker-easing:${r}`},ySe=new Set(["ul","ol","li"]),bU=e=>{for(let t of e.children)if(Sg(t)){if(t.tagName==="input")return t;if(ySe.has(t.tagName))continue;let n=bU(t);if(n)return n}},yU=(e,t,n,r)=>{e.properties!=null||(e.properties={}),e.properties["data-sd-animate"]=!0;let i=typeof e.properties.style=="string"?`${e.properties.style};`:"";e.properties.style=`${i}--sd-animation:sd-${t.animation};--sd-duration:${n}ms;--sd-easing:${t.easing};--sd-delay:${Math.round(r)}ms`},xSe=(e,t,n,r)=>{let i=bU(e);i&&yU(i,t,n,r)},vSe=(e,t,n,r,i,a)=>{if(qk(t))return;let o=r.prevContentLength,c=i.count;i.count+=1;let u=o>0&&c<o,d=u?0:a.baseDelay+i.newIndex++*a.step;yU(e,n,u?0:n.duration,d)},ESe=e=>{var t;for(let n=e.length-1;n>=0;n-=1){let r=e[n];if(Sg(r)){if((t=r.properties)!=null&&t["data-sd-animated"])break;r.properties={...r.properties,"data-sd-animated":!0}}}},xU=e=>{let t=[],n="",r=!1;for(let i of e){let a=gU.test(i);if(a!==r&&n){if(a){n+=i,r=!0;continue}t.push(n),n=""}n+=i,r=a}return n&&t.push(n),t},vU=e=>{let t=[],n="";for(let r of e)gU.test(r)?t.length>0&&!Hk.test(t.at(-1))?t[t.length-1]+=r:n+=r:(n&&(t.push(n),n=""),t.push(r));return n&&(t.length>0?t[t.length-1]+=n:t.push(n)),t},TSe=(e,t,n,r,i,a)=>{let o=`--sd-animation:sd-${t};--sd-duration:${i?0:n}ms;--sd-easing:${r}`;return a&&(o+=`;--sd-delay:${Math.round(a)}ms`),{type:"element",tagName:"span",properties:{"data-sd-animate":!0,style:o},children:[{type:"text",value:e}]}},MD=(e,t)=>!(e>0&&t<e),kw=e=>Sg(e)&&mSe.has(e.tagName),wSe=(e,t,n)=>{let r=0,i=0;return bx(e,a=>a.type==="text"||kw(a),(a,o)=>{if(qk(o))return Mu;if(kw(a)){MD(n,i)&&(r+=1),i+=1;return}let c=a.value;if(!c.trim()){i+=c.length;return}let u=t.sep==="char"?vU(c):xU(c);for(let d of u){let p=i;i+=d.length,!Hk.test(d)&&MD(n,p)&&(r+=1)}}),r},SSe=(e,t,n,r,i,a)=>{var o;let c=t.at(-1);if(!(c&&"children"in c))return;if(qk(t))return Mu;let u=c,d=u.children.indexOf(e);if(d===-1)return;let p=e.value;if(!p.trim()){i.count+=p.length;return}let h=n.sep==="char"?vU(p):xU(p),y=r.prevContentLength,b=!1,v=gSe(t),T=!!(v&&!((o=v.properties)!=null&&o["data-sd-animate-marker"])),A=!1,S=h.map(C=>{let k=i.count;if(i.count+=C.length,Hk.test(C))return{type:"text",value:C};let R=y>0&&k<y,O=R?0:a.baseDelay+i.newIndex++*a.step;if(b=!0,v&&T&&!A){let N=R?0:n.duration;bSe(v,N,O,n.easing),xSe(v,n,N,O),A=!0}return TSe(C,n.animation,n.duration,n.easing,R,O)});return b&&ESe(t),u.children.splice(d,1,...S),d+S.length},ASe=0;function EU(e){var t,n,r,i,a;let o={animation:(t=e==null?void 0:e.animation)!=null?t:"fadeIn",duration:(n=e==null?void 0:e.duration)!=null?n:150,easing:(r=e==null?void 0:e.easing)!=null?r:"ease",sep:(i=e==null?void 0:e.sep)!=null?i:"word",stagger:(a=e==null?void 0:e.stagger)!=null?a:40,timeline:e==null?void 0:e.timeline},c={committedCharCount:0,prevContentLength:0,lastRenderCharCount:0,pendingMark:null},u=ASe++,d=()=>p=>{var h;let y={count:0,newIndex:0};c.prevContentLength=c.committedCharCount;let b=o.timeline,v=(h=b==null?void 0:b.now())!=null?h:mU();b&&(c.pendingMark===null?c.pendingMark=b.mark():b.rewind(c.pendingMark));let T=b?b.take(wSe(p,o,c.prevContentLength),o.stagger,v):{baseDelay:0,step:o.stagger};bx(p,A=>A.type==="text"||kw(A),(A,S)=>{if(A.type==="text")return SSe(A,S,o,c,y,T);vSe(A,S,o,c,y,T)}),c.lastRenderCharCount=y.count,c.prevContentLength=0};return Object.defineProperty(d,"name",{value:`rehypeAnimate$${u}`}),{name:"animate",type:"animate",rehypePlugin:d,setPrevContentLength(p){c.committedCharCount=p,c.prevContentLength=p},getLastRenderCharCount(){return c.lastRenderCharCount},commit(){c.committedCharCount=c.lastRenderCharCount,c.pendingMark=null}}}EU();var TU=x.createContext(!1),_Se=()=>x.useContext(TU),Rx=(...e)=>YF(iS(e)),kSe=(e,t)=>{if(!e||!t)return t;let n=`${e}:`;return t.split(/\s+/).filter(Boolean).map(r=>r.startsWith(n)?r:`${e}:${r}`).join(" ")},CSe=e=>e?(...t)=>kSe(e,YF(iS(t))):Rx,Sf=(e,t,n)=>{let r=typeof t=="string"&&n.startsWith("text/csv")?"\uFEFF":"",i=typeof t=="string"?new Blob([r+t],{type:n}):t,a=URL.createObjectURL(i),o=document.createElement("a");o.href=a,o.download=e,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a)},Cw=x.createContext(Rx),fn=()=>x.useContext(Cw),NSe=8,wU=e=>{if(!(e===void 0||e===0||e===Number.POSITIVE_INFINITY)){if(typeof e=="number")return Number.isFinite(e)&&e>0?`${e}px`:void 0;if(!(e==="0"||e==="none"||e==="Infinity"))return e}},SU=(e,t,n)=>{let r=x.useRef(null),i=x.useRef(!0),a=x.useRef(!1);return x.useEffect(()=>{let o=r.current;if(!(o&&t))return;let c=()=>{let u=o.scrollHeight-o.scrollTop-o.clientHeight<NSe;i.current=u};return o.addEventListener("scroll",c,{passive:!0}),()=>o.removeEventListener("scroll",c)},[t]),x.useEffect(()=>{e&&!a.current&&(i.current=!0),e||(i.current=!0),a.current=e},[e]),x.useEffect(()=>{let o=r.current;o&&t&&e&&i.current&&o.scrollTo({top:o.scrollHeight,behavior:"instant"})},[e,t,n]),r},RSe=Rx("block"),OSe=Rx("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),ISe=e=>{let t={};for(let n of e.split(";")){let r=n.indexOf(":");if(r>0){let i=n.slice(0,r).trim(),a=n.slice(r+1).trim();i&&a&&(t[i]=a)}}return t},MSe=x.memo(({children:e,result:t,language:n,className:r,maxHeight:i,startLine:a,lineNumbers:o=!0,...c})=>{let u=fn(),{isAnimating:d}=x.useContext(_i),p=wU(i),h=SU(d,!!p,t),y=x.useMemo(()=>u(OSe),[u]),b=x.useMemo(()=>u(RSe),[u]),v=x.useMemo(()=>{let T={};return t.bg&&(T["--sdm-bg"]=t.bg),t.fg&&(T["--sdm-fg"]=t.fg),t.rootStyle&&Object.assign(T,ISe(t.rootStyle)),T},[t.bg,t.fg,t.rootStyle]);return m.jsx("div",{className:u(r,p?"overflow-y-auto":null,"overflow-x-auto rounded-md border border-border bg-background p-4 text-sm"),"data-language":n,"data-streamdown":"code-block-body",ref:h,style:p?{maxHeight:p}:void 0,...c,children:m.jsx("pre",{className:u(r,"bg-[var(--sdm-bg,inherit)]","dark:bg-[var(--shiki-dark-bg,var(--sdm-bg,inherit))]"),style:v,children:m.jsx("code",{className:o?u("[counter-increment:line_0] [counter-reset:line]"):void 0,style:o&&a&&a>1?{counterReset:`line ${a-1}`}:void 0,children:t.tokens.map((T,A)=>m.jsx("span",{className:o?y:b,children:T.length===0||T.length===1&&T[0].content===""?`
398
398
  `:T.map((S,C)=>{let k={},R=!!S.bgColor;if(S.color&&(k["--sdm-c"]=S.color),S.bgColor&&(k["--sdm-tbg"]=S.bgColor),S.htmlStyle)for(let[O,N]of Object.entries(S.htmlStyle))O==="color"?k["--sdm-c"]=N:O==="background-color"?(k["--sdm-tbg"]=N,R=!0):k[O]=N;return m.jsx("span",{className:u("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",R&&"bg-[var(--sdm-tbg)]",R&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:k,...S.htmlAttrs,children:S.content},C)})},A))})})})}),DSe=({className:e,language:t,style:n,isIncomplete:r,...i})=>{let a=fn();return m.jsx("div",{className:a("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",e),"data-incomplete":r||void 0,"data-language":t,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...n},...i})},AU=x.createContext({code:""}),_U=()=>x.useContext(AU),LSe=({language:e})=>{let t=fn();return m.jsx("div",{className:t("flex h-8 items-center text-muted-foreground text-xs"),"data-language":e,"data-streamdown":"code-block-header",children:m.jsx("span",{className:t("ml-1 font-mono lowercase"),children:e})})},PSe=e=>{let t=e.length;for(;t>0&&e[t-1]===`
399
- `;)t--;return e.slice(0,t)},jSe=x.lazy(()=>FB(()=>import("./highlighted-body-KPVGNVTW-CFhTJEmH.js"),[]).then(e=>({default:e.HighlightedCodeBlockBody}))),$Se=({code:e,language:t,className:n,children:r,isIncomplete:i=!1,startLine:a,lineNumbers:o,...c})=>{let u=fn(),{codeBlockMaxHeight:d}=x.useContext(_i),p=x.useMemo(()=>PSe(e),[e]),h=x.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:p.split(`
399
+ `;)t--;return e.slice(0,t)},jSe=x.lazy(()=>FB(()=>import("./highlighted-body-KPVGNVTW-xXXhTDbh.js"),[]).then(e=>({default:e.HighlightedCodeBlockBody}))),$Se=({code:e,language:t,className:n,children:r,isIncomplete:i=!1,startLine:a,lineNumbers:o,...c})=>{let u=fn(),{codeBlockMaxHeight:d}=x.useContext(_i),p=x.useMemo(()=>PSe(e),[e]),h=x.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:p.split(`
400
400
  `).map(y=>[{content:y,color:"inherit",bgColor:"transparent",htmlStyle:{},offset:0}])}),[p]);return m.jsx(AU.Provider,{value:{code:e},children:m.jsxs(DSe,{dir:"ltr",isIncomplete:i,language:t,children:[m.jsx(LSe,{language:t}),r?m.jsx("div",{className:u("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:m.jsx("div",{className:u("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"code-block-actions",children:r})}):null,m.jsx(x.Suspense,{fallback:m.jsx(MSe,{className:n,language:t,lineNumbers:o,maxHeight:d,result:h,startLine:a,...c}),children:m.jsx(jSe,{className:n,code:p,language:t,lineNumbers:o,maxHeight:d,raw:h,startLine:a,...c})})]})})},BSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z",fill:"currentColor",fillRule:"evenodd"})}),zSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z",fill:"currentColor",fillRule:"evenodd"})}),FSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z",fill:"currentColor",fillRule:"evenodd"})}),USe=e=>m.jsxs("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:[m.jsx("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),m.jsx("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),HSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M1 5.25V6H2.5V5.25V2.5H5.25H6V1H5.25H2C1.44772 1 1 1.44772 1 2V5.25ZM5.25 14.9994H6V13.4994H5.25H2.5V10.7494V9.99939H1V10.7494V13.9994C1 14.5517 1.44772 14.9994 2 14.9994H5.25ZM15 10V10.75V14C15 14.5523 14.5523 15 14 15H10.75H10V13.5H10.75H13.5V10.75V10H15ZM10.75 1H10V2.5H10.75H13.5V5.25V6H15V5.25V2C15 1.44772 14.5523 1 14 1H10.75Z",fill:"currentColor",fillRule:"evenodd"})}),qSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M13.5 8C13.5 4.96643 11.0257 2.5 7.96452 2.5C5.42843 2.5 3.29365 4.19393 2.63724 6.5H5.25H6V8H5.25H0.75C0.335787 8 0 7.66421 0 7.25V2.75V2H1.5V2.75V5.23347C2.57851 2.74164 5.06835 1 7.96452 1C11.8461 1 15 4.13001 15 8C15 11.87 11.8461 15 7.96452 15C5.62368 15 3.54872 13.8617 2.27046 12.1122L1.828 11.5066L3.03915 10.6217L3.48161 11.2273C4.48831 12.6051 6.12055 13.5 7.96452 13.5C11.0257 13.5 13.5 11.0336 13.5 8Z",fill:"currentColor",fillRule:"evenodd"})}),VSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z",fill:"currentColor",fillRule:"evenodd"})}),GSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M13.5 10.25V13.25C13.5 13.3881 13.3881 13.5 13.25 13.5H2.75C2.61193 13.5 2.5 13.3881 2.5 13.25L2.5 2.75C2.5 2.61193 2.61193 2.5 2.75 2.5H5.75H6.5V1H5.75H2.75C1.7835 1 1 1.7835 1 2.75V13.25C1 14.2165 1.7835 15 2.75 15H13.25C14.2165 15 15 14.2165 15 13.25V10.25V9.5H13.5V10.25ZM9 1H9.75H14.2495C14.6637 1 14.9995 1.33579 14.9995 1.75V6.25V7H13.4995V6.25V3.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L12.4388 2.5H9.75H9V1Z",fill:"currentColor",fillRule:"evenodd"})}),KSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H5.875V4.75V4.125H7.125V4.75V5.875H8.25H8.875V7.125H8.25H7.125V8.25V8.875H5.875V8.25V7.125H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),YSe=e=>m.jsx("svg",{"aria-hidden":"true",color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:m.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H8.25H8.875V7.125H8.25H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),Mh={CheckIcon:BSe,CopyIcon:zSe,DownloadIcon:FSe,ExternalLinkIcon:GSe,Loader2Icon:USe,Maximize2Icon:HSe,RotateCcwIcon:qSe,XIcon:VSe,ZoomInIcon:KSe,ZoomOutIcon:YSe},kU=x.createContext(Mh),WSe=(e,t)=>{if(e===t)return!0;if(!(e&&t))return e===t;let n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(i=>e[i]===t[i])},DD=({icons:e,children:t})=>{let n=x.useRef(e),r=x.useRef(e?{...Mh,...e}:Mh);WSe(n.current,e)||(n.current=e,r.current=e?{...Mh,...e}:Mh);let i=r.current;return m.jsx(kU.Provider,{value:i,children:t})},Ys=()=>x.useContext(kU),CU={copyCode:"Copy Code",downloadFile:"Download file",downloadDiagram:"Download diagram",downloadDiagramAsSvg:"Download diagram as SVG",downloadDiagramAsPng:"Download diagram as PNG",downloadDiagramAsMmd:"Download diagram as MMD",viewFullscreen:"View fullscreen",exitFullscreen:"Exit fullscreen",mermaidFormatSvg:"SVG",mermaidFormatPng:"PNG",mermaidFormatMmd:"MMD",zoomIn:"Zoom in",zoomOut:"Zoom out",resetView:"Reset zoom and pan",copyTable:"Copy table",copyTableAsMarkdown:"Copy table as Markdown",copyTableAsCsv:"Copy table as CSV",copyTableAsTsv:"Copy table as TSV",downloadTable:"Download table",downloadTableAsCsv:"Download table as CSV",downloadTableAsMarkdown:"Download table as Markdown",tableFormatMarkdown:"Markdown",tableFormatCsv:"CSV",tableFormatTsv:"TSV",imageNotAvailable:"Image not available",downloadImage:"Download image",openExternalLink:"Open external link?",externalLinkWarning:"You're about to visit an external website.",close:"Close",copyLink:"Copy link",copied:"Copied",openLink:"Open link"},Nw=x.createContext(CU),Io=()=>x.useContext(Nw),Rw=({onCopy:e,onError:t,timeout:n=2e3,children:r,className:i,code:a,...o})=>{let c=fn(),[u,d]=x.useState(!1),p=x.useRef(0),{code:h}=_U(),{isAnimating:y}=x.useContext(_i),b=Io(),v=a??h,T=async()=>{var C;if(typeof window>"u"||!((C=navigator==null?void 0:navigator.clipboard)!=null&&C.writeText)){t==null||t(new Error("Clipboard API not available"));return}try{u||(await navigator.clipboard.writeText(v),d(!0),e==null||e(),p.current=window.setTimeout(()=>d(!1),n))}catch(k){t==null||t(k)}};x.useEffect(()=>()=>{window.clearTimeout(p.current)},[]);let A=Ys(),S=u?A.CheckIcon:A.CopyIcon;return m.jsxs(m.Fragment,{children:[m.jsx("button",{"aria-label":b.copyCode,className:c("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),"data-streamdown":"code-block-copy-button",disabled:y,onClick:T,title:b.copyCode,type:"button",...o,children:r??m.jsx(S,{"aria-hidden":"true",size:14})}),u&&m.jsx("output",{"aria-live":"polite",className:"sr-only",children:b.copied})]})},Vk=(e,t,n)=>{if(typeof e=="boolean")return n;let r=e[t];if(typeof r!="object")return n;let i=r.download;return typeof i!="object"?n:i.filename||n},LD={"1c":"1c","1c-query":"1cq",abap:"abap","actionscript-3":"as",ada:"ada",adoc:"adoc","angular-html":"html","angular-ts":"ts",apache:"conf",apex:"cls",apl:"apl",applescript:"applescript",ara:"ara",asciidoc:"adoc",asm:"asm",astro:"astro",awk:"awk",ballerina:"bal",bash:"sh",bat:"bat",batch:"bat",be:"be",beancount:"beancount",berry:"berry",bibtex:"bib",bicep:"bicep",blade:"blade.php",bsl:"bsl",c:"c","c#":"cs","c++":"cpp",cadence:"cdc",cairo:"cairo",cdc:"cdc",clarity:"clar",clj:"clj",clojure:"clj","closure-templates":"soy",cmake:"cmake",cmd:"cmd",cobol:"cob",codeowners:"CODEOWNERS",codeql:"ql",coffee:"coffee",coffeescript:"coffee","common-lisp":"lisp",console:"sh",coq:"v",cpp:"cpp",cql:"cql",crystal:"cr",cs:"cs",csharp:"cs",css:"css",csv:"csv",cue:"cue",cypher:"cql",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",docker:"dockerfile",dockerfile:"dockerfile",dotenv:"env","dream-maker":"dm",edge:"edge",elisp:"el",elixir:"ex",elm:"elm","emacs-lisp":"el",erb:"erb",erl:"erl",erlang:"erl",f:"f","f#":"fs",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"f90",f95:"f95",fennel:"fnl",fish:"fish",fluent:"ftl",for:"for","fortran-fixed-form":"f","fortran-free-form":"f90",fs:"fs",fsharp:"fs",fsl:"fsl",ftl:"ftl",gdresource:"tres",gdscript:"gd",gdshader:"gdshader",genie:"gs",gherkin:"feature","git-commit":"gitcommit","git-rebase":"gitrebase",gjs:"js",gleam:"gleam","glimmer-js":"js","glimmer-ts":"ts",glsl:"glsl",gnuplot:"plt",go:"go",gql:"gql",graphql:"graphql",groovy:"groovy",gts:"gts",hack:"hack",haml:"haml",handlebars:"hbs",haskell:"hs",haxe:"hx",hbs:"hbs",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",hs:"hs",html:"html","html-derivative":"html",http:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",jade:"jade",java:"java",javascript:"js",jinja:"jinja",jison:"jison",jl:"jl",js:"js",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",julia:"jl",kotlin:"kt",kql:"kql",kt:"kt",kts:"kts",kusto:"kql",latex:"tex",lean:"lean",lean4:"lean",less:"less",liquid:"liquid",lisp:"lisp",lit:"lit",llvm:"ll",log:"log",logo:"logo",lua:"lua",luau:"luau",make:"mak",makefile:"mak",markdown:"md",marko:"marko",matlab:"m",md:"md",mdc:"mdc",mdx:"mdx",mediawiki:"wiki",mermaid:"mmd",mips:"s",mipsasm:"s",mmd:"mmd",mojo:"mojo",move:"move",nar:"nar",narrat:"narrat",nextflow:"nf",nf:"nf",nginx:"conf",nim:"nim",nix:"nix",nu:"nu",nushell:"nu",objc:"m","objective-c":"m","objective-cpp":"mm",ocaml:"ml",pascal:"pas",perl:"pl",perl6:"p6",php:"php",plsql:"pls",po:"po",polar:"polar",postcss:"pcss",pot:"pot",potx:"potx",powerquery:"pq",powershell:"ps1",prisma:"prisma",prolog:"pl",properties:"properties",proto:"proto",protobuf:"proto",ps:"ps",ps1:"ps1",pug:"pug",puppet:"pp",purescript:"purs",py:"py",python:"py",ql:"ql",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",racket:"rkt",raku:"raku",razor:"cshtml",rb:"rb",reg:"reg",regex:"regex",regexp:"regexp",rel:"rel",riscv:"s",rs:"rs",rst:"rst",ruby:"rb",rust:"rs",sas:"sas",sass:"sass",scala:"scala",scheme:"scm",scss:"scss",sdbl:"sdbl",sh:"sh",shader:"shader",shaderlab:"shader",shell:"sh",shellscript:"sh",shellsession:"sh",smalltalk:"st",solidity:"sol",soy:"soy",sparql:"rq",spl:"spl",splunk:"spl",sql:"sql","ssh-config":"config",stata:"do",styl:"styl",stylus:"styl",svelte:"svelte",swift:"swift","system-verilog":"sv",systemd:"service",talon:"talon",talonscript:"talon",tasl:"tasl",tcl:"tcl",templ:"templ",terraform:"tf",tex:"tex",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"ts","ts-tags":"ts",tsp:"tsp",tsv:"tsv",tsx:"tsx",turtle:"ttl",twig:"twig",typ:"typ",typescript:"ts",typespec:"tsp",typst:"typ",v:"v",vala:"vala",vb:"vb",verilog:"v",vhdl:"vhdl",vim:"vim",viml:"vim",vimscript:"vim",vue:"vue","vue-html":"html","vue-vine":"vine",vy:"vy",vyper:"vy",wasm:"wasm",wenyan:"wy",wgsl:"wgsl",wiki:"wiki",wikitext:"wiki",wit:"wit",wl:"wl",wolfram:"wl",xml:"xml",xsl:"xsl",yaml:"yaml",yml:"yml",zenscript:"zs",zig:"zig",zsh:"zsh",文言:"wy"},XSe=({onDownload:e,onError:t,language:n,children:r,className:i,code:a,...o})=>{let c=fn(),{code:u}=_U(),{isAnimating:d,controls:p}=x.useContext(_i),h=Io(),y=Ys(),b=a??u,v=n&&n in LD?LD[n]:"txt",T=`${Vk(p,"code","file")}.${v}`,A="text/plain",S=()=>{try{Sf(T,b,A),e==null||e()}catch(C){t==null||t(C)}};return m.jsx("button",{"aria-label":h.downloadFile,className:c("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),"data-streamdown":"code-block-download-button",disabled:d,onClick:S,title:h.downloadFile,type:"button",...o,children:r??m.jsx(y.DownloadIcon,{size:14})})},PD=()=>{let{Loader2Icon:e}=Ys(),t=fn();return m.jsxs("div",{className:t("w-full divide-y divide-border overflow-hidden rounded-xl border border-border"),children:[m.jsx("div",{className:t("h-[46px] w-full bg-muted/80")}),m.jsx("div",{className:t("flex w-full items-center justify-center p-4"),children:m.jsx(e,{className:t("size-4 animate-spin")})})]})},QSe=/\.[^/.]+$/,ZSe=({node:e,className:t,src:n,alt:r,onLoad:i,onError:a,showControls:o=!0,showDownloadControl:c=!0,...u})=>{let{DownloadIcon:d}=Ys(),p=fn(),h=x.useRef(null),[y,b]=x.useState(!1),[v,T]=x.useState(!1),A=Io(),S=u.width!=null||u.height!=null,C=(y||S)&&!v&&o&&c,k=v&&!S;x.useEffect(()=>{let D=h.current;if(D!=null&&D.complete){let L=D.naturalWidth>0;b(L),T(!L)}},[]);let R=x.useCallback(D=>{b(!0),T(!1),i==null||i(D)},[i]),O=x.useCallback(D=>{b(!1),T(!0),a==null||a(D)},[a]),N=async()=>{if(n)try{let D=await(await fetch(n)).blob(),L=new URL(n,window.location.origin).pathname.split("/").pop()||"",$=L.split(".").pop(),P=L.includes(".")&&$!==void 0&&$.length<=4,F="";if(P)F=L;else{let H=D.type,q="png";H.includes("jpeg")||H.includes("jpg")?q="jpg":H.includes("png")?q="png":H.includes("svg")?q="svg":H.includes("gif")?q="gif":H.includes("webp")&&(q="webp"),F=`${(r||L||"image").replace(QSe,"")}.${q}`}Sf(F,D,D.type)}catch{window.open(n,"_blank")}};return n?m.jsxs("div",{className:p("group relative my-4 inline-block"),"data-streamdown":"image-wrapper",children:[m.jsx("img",{alt:r,className:p("max-w-full rounded-lg",k&&"hidden",t),"data-streamdown":"image",onError:O,onLoad:R,ref:h,src:n,...u}),k&&m.jsx("span",{className:p("text-muted-foreground text-xs italic"),"data-streamdown":"image-fallback",children:A.imageNotAvailable}),o&&m.jsx("div",{className:p("pointer-events-none absolute inset-0 hidden rounded-lg bg-black/10 group-hover:block"),"data-streamdown":"image-overlay"}),C&&m.jsx("button",{className:p("absolute right-2 bottom-2 flex h-8 w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 hover:bg-background","opacity-0 group-hover:opacity-100"),onClick:N,title:A.downloadImage,type:"button",children:m.jsx(d,{size:14})})]}):null},Wh=0,Gk=()=>{Wh+=1,Wh===1&&(document.body.style.overflow="hidden")},Kk=()=>{Wh=Math.max(0,Wh-1),Wh===0&&(document.body.style.overflow="")},JSe=({url:e,isOpen:t,onClose:n,onConfirm:r})=>{let{CheckIcon:i,CopyIcon:a,ExternalLinkIcon:o,XIcon:c}=Ys(),u=fn(),[d,p]=x.useState(!1),h=Io(),y=x.useCallback(async()=>{try{await navigator.clipboard.writeText(e),p(!0),setTimeout(()=>p(!1),2e3)}catch{}},[e]),b=x.useCallback(()=>{r(),n()},[r,n]);if(x.useEffect(()=>{if(t){Gk();let T=A=>{A.key==="Escape"&&n()};return document.addEventListener("keydown",T),()=>{document.removeEventListener("keydown",T),Kk()}}},[t,n]),!t||typeof document>"u")return null;let v=m.jsx("div",{className:u("fixed inset-0 z-50 flex items-center justify-center bg-background/50 backdrop-blur-sm"),"data-streamdown":"link-safety-modal",onClick:n,onKeyDown:T=>{T.key==="Escape"&&n()},role:"button",tabIndex:0,children:m.jsxs("div",{className:u("relative mx-4 flex w-full max-w-md flex-col gap-4 rounded-xl border bg-background p-6 shadow-lg"),onClick:T=>T.stopPropagation(),onKeyDown:T=>T.stopPropagation(),role:"presentation",children:[m.jsx("button",{className:u("absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:n,title:h.close,type:"button",children:m.jsx(c,{size:16})}),m.jsxs("div",{className:u("flex flex-col gap-2"),children:[m.jsxs("div",{className:u("flex items-center gap-2 font-semibold text-lg"),children:[m.jsx(o,{size:20}),m.jsx("span",{children:h.openExternalLink})]}),m.jsx("p",{className:u("text-muted-foreground text-sm"),children:h.externalLinkWarning})]}),m.jsx("div",{className:u("break-all rounded-md bg-muted p-3 font-mono text-sm",e.length>100&&"max-h-32 overflow-y-auto"),children:e}),m.jsxs("div",{className:u("flex gap-2"),children:[m.jsx("button",{className:u("flex flex-1 items-center justify-center gap-2 rounded-md border bg-background px-4 py-2 font-medium text-sm transition-all hover:bg-muted"),onClick:y,type:"button",children:d?m.jsxs(m.Fragment,{children:[m.jsx(i,{size:14}),m.jsx("span",{children:h.copied})]}):m.jsxs(m.Fragment,{children:[m.jsx(a,{size:14}),m.jsx("span",{children:h.copyLink})]})}),m.jsxs("button",{className:u("flex flex-1 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 font-medium text-primary-foreground text-sm transition-all hover:bg-primary/90"),onClick:b,type:"button",children:[m.jsx(o,{size:14}),m.jsx("span",{children:h.openLink})]})]})]})});return ei.createPortal(v,document.body)},Ow=x.createContext(null),Yk=()=>x.useContext(Ow),SDe=()=>{var e;let t=Yk();return(e=t==null?void 0:t.code)!=null?e:null},Wk=()=>{var e;let t=Yk();return(e=t==null?void 0:t.mermaid)!=null?e:null},eAe=e=>{var t;let n=Yk();return n!=null&&n.renderers&&e&&(t=n.renderers.find(r=>Array.isArray(r.language)?r.language.includes(e):r.language===e))!=null?t:null},tAe=e=>{if(typeof DOMParser>"u"||typeof XMLSerializer>"u")return e;let t=new DOMParser().parseFromString(e,"text/html").querySelector("svg");return t?new XMLSerializer().serializeToString(t):e},nAe=(e,t)=>{var n;let r=(n=void 0)!=null?n:5;return new Promise((i,a)=>{let o="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(e))),c=new Image;c.crossOrigin="anonymous",c.onload=()=>{let u=document.createElement("canvas"),d=c.width*r,p=c.height*r;u.width=d,u.height=p;let h=u.getContext("2d");if(!h){a(new Error("Failed to create 2D canvas context for PNG export"));return}h.drawImage(c,0,0,d,p),u.toBlob(y=>{if(!y){a(new Error("Failed to create PNG blob"));return}i(y)},"image/png")},c.onerror=()=>a(new Error("Failed to load SVG image")),c.src=o})},NU=({chart:e,children:t,className:n,onDownload:r,config:i,onError:a})=>{let o=fn(),[c,u]=x.useState(!1),d=x.useRef(null),{isAnimating:p,controls:h}=x.useContext(_i),y=Ys(),b=Wk(),v=Io(),T=Vk(h,"mermaid","diagram"),A=async S=>{try{if(S==="mmd"){let D=`${T}.mmd`;Sf(D,e,"text/plain"),u(!1),r==null||r(S);return}if(!b){a==null||a(new Error("Mermaid plugin not available"));return}let C=b.getMermaid(i),k=e.split("").reduce((D,L)=>(D<<5)-D+L.charCodeAt(0)|0,0),R=`mermaid-${Math.abs(k)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:O}=await C.render(R,e);if(!O){a==null||a(new Error("SVG not found. Please wait for the diagram to render."));return}let N=tAe(O);if(S==="svg"){let D=`${T}.svg`;Sf(D,N,"image/svg+xml"),u(!1),r==null||r(S);return}if(S==="png"){let D=await nAe(N);Sf(`${T}.png`,D,"image/png"),r==null||r(S),u(!1);return}}catch(C){a==null||a(C)}};return x.useEffect(()=>{let S=C=>{let k=C.composedPath();d.current&&!k.includes(d.current)&&u(!1)};return document.addEventListener("mousedown",S),()=>{document.removeEventListener("mousedown",S)}},[]),m.jsxs("div",{className:o("relative"),ref:d,children:[m.jsx("button",{"aria-label":v.downloadDiagram,className:o("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",n),disabled:p,onClick:()=>u(!c),title:v.downloadDiagram,type:"button",children:t??m.jsx(y.DownloadIcon,{"aria-hidden":"true",size:14})}),c?m.jsxs("div",{className:o("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[m.jsx("button",{"aria-label":v.downloadDiagramAsSvg,className:o("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>A("svg"),title:v.downloadDiagramAsSvg,type:"button",children:v.mermaidFormatSvg}),m.jsx("button",{"aria-label":v.downloadDiagramAsPng,className:o("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>A("png"),title:v.downloadDiagramAsPng,type:"button",children:v.mermaidFormatPng}),m.jsx("button",{"aria-label":v.downloadDiagramAsMmd,className:o("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>A("mmd"),title:v.downloadDiagramAsMmd,type:"button",children:v.mermaidFormatMmd})]}):null]})},rAe=({chart:e,config:t,onFullscreen:n,onExit:r,className:i,...a})=>{let{Maximize2Icon:o,XIcon:c}=Ys(),u=fn(),[d,p]=x.useState(!1),{isAnimating:h,controls:y}=x.useContext(_i),b=Io(),v=(()=>{if(typeof y=="boolean")return y;let C=y.mermaid;return C===!1?!1:C===!0||C===void 0?!0:C.panZoom!==!1})(),T=(()=>{if(typeof y=="boolean")return y;let C=y.mermaid;return C===!1?!1:C===!0||C===void 0?!0:C.download!==!1})(),A=(()=>{if(typeof y=="boolean")return y;let C=y.mermaid;return C===!1?!1:C===!0||C===void 0?!0:C.copy!==!1})(),S=()=>{p(!d)};return x.useEffect(()=>{if(d){Gk();let C=k=>{k.key==="Escape"&&p(!1)};return document.addEventListener("keydown",C),()=>{document.removeEventListener("keydown",C),Kk()}}},[d]),x.useEffect(()=>{d?n==null||n():r&&r()},[d,n,r]),m.jsxs(m.Fragment,{children:[m.jsx("button",{className:u("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),disabled:h,onClick:S,title:b.viewFullscreen,type:"button",...a,"aria-label":b.viewFullscreen,children:m.jsx(o,{"aria-hidden":"true",size:14})}),d?ei.createPortal(m.jsxs("div",{"aria-label":b.viewFullscreen,"aria-modal":"true",className:u("fixed inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-sm"),"data-streamdown":"mermaid-fullscreen",onClick:S,onKeyDown:C=>{C.key==="Escape"&&S()},role:"dialog",children:[m.jsxs("div",{className:u("absolute top-4 right-4 z-10 flex items-center gap-1"),onClick:C=>C.stopPropagation(),onKeyDown:C=>C.stopPropagation(),role:"presentation",children:[T?m.jsx(NU,{chart:e,config:t}):null,A?m.jsx(Rw,{code:e}):null,m.jsx("button",{"aria-label":b.exitFullscreen,className:u("rounded-md p-2 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:S,title:b.exitFullscreen,type:"button",children:m.jsx(c,{"aria-hidden":"true",size:20})})]}),m.jsx("div",{className:u("flex size-full items-center justify-center p-4"),onClick:C=>C.stopPropagation(),onKeyDown:C=>C.stopPropagation(),role:"presentation",children:m.jsx(m7,{chart:e,className:u("size-full [&_svg]:h-auto [&_svg]:w-auto"),config:t,fullscreen:!0,showControls:v})})]}),document.body):null]})};function Iw(e){var t;if(e.nodeType===Node.TEXT_NODE)return(t=e.textContent)!=null?t:"";if(e.nodeType!==Node.ELEMENT_NODE)return"";let n=e;return n.tagName==="BR"?`
401
401
  `:Array.from(n.childNodes).map(Iw).join("")}var RU=e=>{let t=[],n=[],r=e.querySelectorAll("thead th");for(let a of r)t.push(Iw(a).trim());let i=e.querySelectorAll("tbody tr");for(let a of i){let o=[],c=a.querySelectorAll("td");for(let u of c)o.push(Iw(u).trim());n.push(o)}return{headers:t,rows:n}},OU=e=>{var t;if(typeof e!="object")return",";let n=e.table;return typeof n!="object"?",":(t=n.csvSeparator)!=null?t:","},IU=(e,t=",")=>{let n;t==="auto"?Intl.NumberFormat().format(1.1).includes(",")?n=";":n=",":n=t;let{headers:r,rows:i}=e,a=d=>{let p=!1;for(let h of d)if(h===n||h==='"'||h===`
402
402
  `||h==="\r"){p=!0;break}return p?`"${d.replace(/"/g,'""')}"`:d},o=r.length>0?i.length+1:i.length,c=new Array(o),u=0;r.length>0&&(c[u]=r.map(a).join(n),u+=1);for(let d of i)c[u]=d.map(a).join(n),u+=1;return c.join(`
@@ -439,7 +439,7 @@ ${u.text}`).join(`
439
439
 
440
440
  `);return{text:r?`Nutze den Skill ${r} für diesen Auftrag.
441
441
 
442
- ${c}`:c,attachments:o.length?o:void 0}}async function dke(e,t,n,r,i=tr){await i.call(hi.chat.send,{runId:e,text:t,attachments:n,userLocation:r})}async function dH(e,t,n,r,i=tr){await i.call(hi.chat.send,{runId:e,text:n,attachments:r,entry:t})}async function fH(e,t,n,r=tr){await r.call(hi.chat.start,{runId:e,entry:t,input:n})}const fke=(e,t,n,r=tr)=>t.action==="script"?fH(e,t.id,n,r):dH(e,t.id,uH([],t.prompt,void 0,t.skill).text,void 0,r);function pH(e,t,n=!0){const[r,i]=x.useReducer(kB,[]),[a,o]=x.useState(!1),[c,u]=x.useState(!1),[d,p]=x.useState(),h=x.useRef(t);h.current=t,x.useEffect(()=>{if(u(!1),!!n)return tr.subscribe(hi.channels.chat,{runId:e},T=>{var A;T.kind==="replay-end"&&u(!0),T.kind==="status"&&(o(T.running),p(T.startup)),(A=h.current)==null||A.call(h,T),i(T)},()=>u(!1))},[e,n]);const y=x.useCallback((T,A,S)=>dke(e,T,A,S),[e]),b=x.useCallback((T,A,S)=>dH(e,T,A,S),[e]),v=x.useCallback((T,A)=>fH(e,T,A),[e]);return{messages:r,running:a,connected:c,startup:d,send:y,startSkill:b,start:v}}const pke=Object.freeze(Object.defineProperty({__proto__:null,useChat:pH},Symbol.toStringTag,{value:"Module"}));function hke(e,t,n,r,i){var a;return{runId:e,tab:r?((a=n.find(o=>o.id===t))==null?void 0:a.label)??null:null,selection:i?{type:i.type,id:i.id}:null}}function ADe(e,t,n){const r=e!==void 0&&(n==null?void 0:n.runId)===e?n:void 0;return{page:t?"overview":e===void 0?"home":"run",runId:e??null,tab:!t&&r?r.tab:null,selection:!t&&(r!=null&&r.selection)?{type:r.selection.type,id:r.selection.id}:null}}function mke(e,t=!0,n=!1){const[r,i]=x.useState(),[a,o]=x.useState(),[c,u]=x.useState();return x.useEffect(()=>{if(i(void 0),o(void 0),u(void 0),!!t)return gke(e,i,o,n?u:void 0)},[t,n,e]),{error:a,view:r,conversations:c}}function gke(e,t,n,r){let i=!1,a=!1,o=!1;const c=async()=>{if(!i){if(a){o=!0;return}a=!0;do{o=!1;try{const h=await yB(e);if(i)return;if(r){const y=h===void 0?void 0:await xB(e);if(i)return;r(y)}t(h),n(void 0)}catch(h){if(i)return;n(h instanceof Error?h.message:String(h))}}while(o);a=!1}};c();let u;const d=()=>{i||u!==void 0||(u=window.setTimeout(()=>{u=void 0,c()},250))},p=tr.subscribe(hi.channels.run,{runId:e},h=>{i||(h.kind==="ready"&&n(void 0),d())},()=>{i||n("Der Live-Stream des Runs ist nicht erreichbar")});return()=>{i||(i=!0,u!==void 0&&window.clearTimeout(u),p())}}const sL=140,bke=["path","file_path","filePath","command","cmd","pattern","query","url","handle","title","name","body","text","message","prompt"],ph=e=>{const t=e.replace(/\s+/g," ").trim();return t.length>sL?`${t.slice(0,sL)} ...`:t},yke=e=>{for(const t of bke){const n=e[t];if(typeof n=="string"&&n.trim()!=="")return n}},hH=e=>{const t=(e.arguments??"").trim();if(t===""||t==="{}")return"";let n;try{n=JSON.parse(t)}catch{return ph(t)}if(typeof n=="string")return ph(n);if(typeof n!="object"||n===null||Array.isArray(n))return ph(t);const r=n,i=yke(r);if(i!==void 0)return ph(i);const a=Object.entries(r).filter(([,o])=>typeof o!="object"||o===null).map(([o,c])=>`${o}=${String(c)}`);return ph(a.length>0?a.join(" "):t)},mH=(e,t)=>{const n=t!==void 0&&t.trim()!==""?t:e.name,r=hH(e);return r===""?n:`${n} ${r}`},R1=e=>e.map(t=>t.tool?{...t,text:mH(t.tool,t.text)}:t),xke=Object.freeze(Object.defineProperty({__proto__:null,toolLine:mH,toolSummary:hH,withToolSummaries:R1},Symbol.toStringTag,{value:"Module"})),qu="ragents-model-defaults-changed",gH=x.createContext("server"),vke=gH.Provider,Eke=()=>x.useContext(gH),bH=Object.freeze({options:[],errors:new Map,pending:!1,set:async()=>{}}),yH=x.createContext(bH),Fw=e=>e instanceof Error?e.message:String(e),Tke=(e,t)=>e.filter(n=>n.selectable&&!n.locked&&Object.hasOwn(t,n.id)).map(n=>[n.id,t[n.id]]),_De=(e,t)=>Object.fromEntries(Object.entries(e).filter(([n])=>!t||!Object.hasOwn(t,n))),wke=(e,t)=>e.flatMap(n=>Object.hasOwn(t,n.id)?[{option:{...n,value:t[n.id],selectable:!1},fixed:!0}]:n.selectable&&!n.locked?[{option:n,fixed:!1}]:[]),Uw=(e,t)=>{if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((r,i)=>Uw(r,t[i]));if(typeof e!="object"||typeof t!="object"||e===null||t===null)return e===t;const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(r=>Object.hasOwn(t,r)&&Uw(e[r],t[r]))},xH=(e,t)=>e.filter(n=>n.chosen&&!n.locked&&Object.hasOwn(t,n.id)&&!Uw(n.value,t[n.id])),Ske=Object.freeze({});function Ake({children:e,connected:t,initialValues:n,messageCount:r,sessionId:i}){const o=$i().can("runs.create"),c=r>0,[u,d]=x.useState(()=>({sessionId:i,options:[],errors:new Map,pending:!0,loadedStarted:!1})),p=x.useRef(null),h=x.useRef(n?{sessionId:i,values:n}:null),[y,b]=x.useState(h.current!==null),v=x.useRef(null),[T,A]=x.useState(0);x.useEffect(()=>{const k=()=>A(R=>R+1);return window.addEventListener(qu,k),()=>window.removeEventListener(qu,k)},[]),x.useEffect(()=>{if(!o)return;const k=new AbortController,R={sessionId:i,pending:!0,controller:k};return p.current=R,d(O=>O.sessionId===i?{...O,pending:!0}:{sessionId:i,options:[],errors:new Map,pending:!0,loadedStarted:!1}),(async()=>{var O;try{if(((O=v.current)==null?void 0:O.sessionId)===i&&await v.current.done,k.signal.aborted)return;const N=await sw(i,k.signal);if(k.signal.aborted)return;d(D=>{const L=new Map(D.errors);return L.delete(""),{sessionId:i,options:N,errors:L,pending:!1,loadedStarted:c}})}catch(N){k.signal.aborted||d(D=>({...D,errors:new Map(D.errors).set("",Fw(N)),pending:!1}))}finally{R.pending=!1}})(),()=>{k.abort(),p.current===R&&(p.current=null)}},[o,t,i,c,T]);const S=x.useCallback(async(k,R)=>{var L;const O=p.current;if(!O||O.sessionId!==i||O.controller.signal.aborted)return;if(O.pending||((L=v.current)==null?void 0:L.sessionId)===i){d($=>({...$,errors:new Map($.errors).set(k,"Die Startoptionen werden noch geladen oder gespeichert. Bitte versuche es danach erneut.")}));return}O.pending=!0,d($=>{const P=new Map($.errors);return P.delete(k),{...$,errors:P,pending:!0}});const N=(async()=>{var P;let $=!1;try{if(await vB(i,k,R),$=!0,p.current!==O)return;const F=await sw(i,O.controller.signal);p.current===O&&d(H=>({...H,options:F}))}catch(F){((P=p.current)==null?void 0:P.sessionId)===i&&(!$||p.current===O)&&d(H=>({...H,errors:new Map(H.errors).set(k,Fw(F))}))}finally{p.current===O&&(O.pending=!1,d(F=>({...F,pending:!1})))}})(),D={sessionId:i,done:N};v.current=D;try{await N}finally{v.current===D&&(v.current=null)}},[i]);x.useEffect(()=>{const k=h.current;if(k){if(!o||k.sessionId!==i){h.current=null,b(!1);return}u.sessionId!==i||u.pending||(h.current=null,(async()=>{for(const[R,O]of Tke(u.options,k.values))await S(R,O);b(!1)})())}},[o,i,S,u]);const C=x.useMemo(()=>({options:u.sessionId===i?u.options.map(k=>({...k,locked:k.locked||c&&!u.loadedStarted})):[],errors:u.sessionId===i?u.errors:new Map,pending:u.sessionId!==i||u.pending||y,set:S}),[y,u,i,c,S]);return m.jsx(yH.Provider,{value:o?C:bH,children:e})}const Ag=()=>x.useContext(yH),vH=({disabled:e,error:t,option:n,setValue:r})=>{const i=x.useMemo(()=>{try{const a=ipe(n.presentation,n.id);return a?typeof n.value!="string"?{message:`Der Wert der Startoption ${n.id} ist keine Kennung`}:{presentation:a,value:n.value}:{message:`Die Startoption ${n.id} hat weder eine Web-Komponente noch eine Auswahl-Darstellung`}}catch(a){return{message:Fw(a)}}},[n]);return"message"in i?m.jsx("p",{className:"text-[0.75rem] text-destructive",role:"alert",children:i.message}):m.jsxs("div",{className:"flex flex-col items-start gap-2",children:[m.jsxs(Nc,{disabled:e,items:i.presentation.options,value:i.value,onValueChange:a=>{a!==null&&r(a)},children:[m.jsx(Oc,{"aria-label":i.presentation.label,size:"sm",children:m.jsx(Rc,{})}),m.jsx(Ic,{children:i.presentation.options.map(a=>m.jsx(Mc,{value:a.value,children:a.label},a.value))})]}),t&&m.jsx("p",{className:"text-[0.75rem] text-destructive",role:"alert",children:t})]})},_ke=async()=>{};function kke({conflict:e,machines:t,option:n,registry:r}){var a;const i=((a=r.startOptions.get(n.id))==null?void 0:a.Control)??vH;return m.jsx("span",{className:"contents","data-start-option-fixed":n.id,title:"Von der Vorlage festgelegt",children:m.jsx(i,{disabled:!0,error:e?"Gewählt ist ein anderer Wert; die Vorlage legt diesen fest.":void 0,machines:t,option:n,setValue:_ke})})}function Hw({disabled:e,registry:t,placement:n="page",fixed:r=Ske}){const i=$i(),a=Ag(),o=Eke(),c=a.errors.get("");if(!i.can("runs.create"))return null;const u=a.options.filter(p=>{var h;return(((h=t.startOptions.get(p.id))==null?void 0:h.placement)??"page")===n}),d=new Set(xH(u,r).map(p=>p.id));return m.jsxs(m.Fragment,{children:[n==="page"&&c&&m.jsx("p",{className:"text-[0.75rem] text-destructive",role:"alert",children:c}),wke(u,r).map(({option:p,fixed:h})=>{var b;if(h)return m.jsx(kke,{conflict:d.has(p.id),machines:o,option:p,registry:t},p.id);const y=((b=t.startOptions.get(p.id))==null?void 0:b.Control)??vH;return m.jsx(y,{disabled:e||a.pending||!i.can("runs.write"),error:a.errors.get(p.id),machines:o,option:p,setValue:v=>a.set(p.id,v)},p.id)})]})}function EH({registry:e,session:t}){const n=Ag();return m.jsx(m.Fragment,{children:n.options.map(r=>{var a;const i=(a=e.startOptions.get(r.id))==null?void 0:a.Badge;return i?m.jsx(i,{option:r,session:t},r.id):null})})}async function TH(e,t="primary",n,r=tr){const i=await r.call(hi.chat.capabilities,{runId:e,actor:t},{signal:n});if(typeof i.model!="string"||!Array.isArray(i.input)||!i.input.every(a=>typeof a=="string"))throw new Error("Ungültige Angaben zur Unterstützung für Anhänge");return{model:i.model,input:i.input}}function dC(e,t="primary",n=""){const[r,i]=x.useState(!1),a=JSON.stringify([e,t,n]),[o,c]=x.useState();return x.useEffect(()=>{if(!r)return;const u=new AbortController;return TH(e,t,u.signal).then(d=>c({key:a,capabilities:d}),d=>{u.signal.aborted||c({key:a,error:d instanceof Error?d.message:String(d)})}),()=>u.abort()},[r,t,a,e]),{attachmentCapabilities:(o==null?void 0:o.key)===a?o.capabilities:void 0,attachmentCapabilitiesError:(o==null?void 0:o.key)===a?o.error:r?"Anhänge werden geprüft ...":void 0,onAttachmentsChange:i}}const Cke=Object.freeze(Object.defineProperty({__proto__:null,getAttachmentCapabilities:TH,useAttachmentCapabilities:dC},Symbol.toStringTag,{value:"Module"}));async function Nke(e,t,n,r,i=tr){const a=await i.call(hi.prepare,{runId:e,messages:t,...r?{skillName:r}:{}},{signal:n});if(a.kind==="start"){if(!a.input||typeof a.input.text!="string"||!a.input.text.trim())throw new Error("Der vorbereitete Startauftrag fehlt.");return a}if(a.kind!=="reply"||typeof a.text!="string"||!a.text.trim())throw new Error("Die Vorbereitung hat keine Antwort geliefert.");return a}const Rke="flex min-h-0 min-w-0 flex-1 *:flex-1 max-md:[&_[data-chat=composer]]:px-2 max-md:[&_[data-chat=composer]]:pb-2",Oke="[&_[data-chat=composer]]:top-1/2 [&_[data-chat=composer]]:bottom-auto [&_[data-chat=composer]]:-translate-y-1/2 [@media(max-height:600px)]:[&_[data-chat=composer]]:top-auto [@media(max-height:600px)]:[&_[data-chat=composer]]:bottom-0 [@media(max-height:600px)]:[&_[data-chat=composer]]:translate-y-0",oL=e=>({message:e,at:new Date().toISOString()});function Ike({initialPrompt:e,entry:t,registry:n,sessionRef:r}){const i=t.skill,a=t.fixedStartOptions,[o,c]=x.useState([]),[u,d]=x.useState(),[p,h]=x.useState(),[y,b]=x.useState(e),[v,T]=x.useState(!1),A=x.useRef(null),S=x.useRef(null),C=x.useRef(!1),k=x.useRef(!1),R=uC(r.current.session.id,"preparation","coordinator"),O=Ag(),N=r.current.session.id,D=dC(N,"primary",JSON.stringify(O.options.map(({id:Y,value:V})=>[Y,V])));x.useEffect(()=>{var Y;return C.current=!0,(Y=A.current)==null||Y.focus(),()=>{var V;C.current=!1,(V=S.current)==null||V.abort()}},[]);const L=async(Y,V)=>{if(k.current)throw new Error("Die vorherige Anfrage läuft noch.");k.current=!0;const U=new AbortController;S.current=U;const W=oL({role:"user",text:Y,...V!=null&&V.length?{attachments:V}:{}}),K=[...o,W];h("preparing"),d(W);try{const te=await Nke(N,K.map(({message:I})=>I),U.signal,i);if(!C.current||U.signal.aborted)return;te.kind==="start"?(h("starting"),await r.current.send(te.input.text,te.input.attachments,t.id)):c([...K,oL({role:"assistant",text:te.text})])}catch(te){throw U.signal.aborted?new Error("Besprechung gestoppt. Deine Eingabe bleibt erhalten."):te}finally{S.current=null,k.current=!1,C.current&&(h(void 0),d(void 0))}},$=async(Y,V)=>{if(k.current)throw new Error("Die vorherige Anfrage läuft noch.");k.current=!0,h("starting");try{const U=uH(o.map(({message:W})=>W),Y,V,i);await r.current.send(U.text,U.attachments,t.id)}finally{k.current=!1,C.current&&h(void 0)}},P=[...o,...u?[u]:[]].map(({message:Y,at:V},U)=>{var W;return{key:`preparation-${U}`,role:Y.role,text:Y.text,closed:!0,at:V,attachments:(W=Y.attachments)==null?void 0:W.map(K=>({name:K.name,mediaType:K.mediaType,size:Math.floor(K.data.length*3/4)-(K.data.endsWith("==")?2:K.data.endsWith("=")?1:0),url:`data:${K.mediaType};base64,${K.data}`}))}}),F=p!==void 0||O.pending,H=xH(O.options,a??{}),q=async()=>{for(const Y of H)await O.set(Y.id,a==null?void 0:a[Y.id])};return m.jsx("section",{"aria-label":"Auftrag besprechen",className:Ie(Rke,P.length===0&&Oke),"data-preparation":P.length===0?"empty":"active",children:m.jsx(sC,{composer:m.jsxs("div",{children:[m.jsx(oC,{...D,disabled:p==="starting",sendDisabled:F,initialValue:e,onDraftChange:b,onAttachmentsChange:T,handleRef:A,rows:3,maxRows:8,running:p==="preparing",onStop:()=>{var Y;return(Y=S.current)==null?void 0:Y.abort()},onSend:L,texts:{placeholder:"Ergänzungen oder Fragen zum Auftrag ...",send:"Auftrag besprechen",stop:"Besprechung stoppen"},toolbarLeft:m.jsx(Qh,{settings:R}),toolbarRight:m.jsx(Hw,{disabled:F,fixed:a,placement:"composer",registry:n})}),H.length>0&&m.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-between gap-2.5","data-start-option-conflicts":"",role:"alert",children:[m.jsxs("span",{className:"text-[0.75rem] text-destructive",children:["Vor dem Öffnen der Vorlage war bei ",H.length===1?"einer Startoption":`${H.length} Startoptionen`," etwas anderes gewählt, als sie festlegt. So lässt sich der Run nicht erstellen."]}),m.jsx(pr,{disabled:F,size:"sm",variant:"outline",onClick:()=>{q()},children:"Werte der Vorlage übernehmen"})]}),m.jsxs("div",{className:"my-3 flex flex-wrap items-center justify-between gap-2.5",children:[m.jsx("span",{className:"text-[0.75rem] text-muted-foreground",children:'Gib im Chat Dein Go zum Starten oder wähle "Run erstellen".'}),m.jsx(pr,{disabled:F||H.length>0||!o.length&&!y.trim()&&!v,onClick:()=>{var Y;(Y=A.current)==null||Y.submit($,{allowEmpty:o.length>0})},children:p==="starting"?"Run wird erstellt ...":"Run erstellen"})]}),m.jsx("div",{"aria-label":"Startoptionen",className:"flex flex-wrap items-center gap-x-3 gap-y-2 empty:hidden",children:m.jsx(Hw,{disabled:F,fixed:a,registry:n})})]}),children:P.length>0&&m.jsx(aC,{detailMode:R.detailMode,messages:P,running:p==="preparing",showTimestamps:R.showTimestamps,stepsExpandable:R.stepsExpandable})})})}const Mke={category:"Ohne Vorlage",title:"Neuer Chat",description:"Leerer Run, der Auftrag entsteht im Chat."},Dke="flex items-baseline gap-2 text-[0.66rem] font-bold uppercase tracking-[0.06em] text-muted-foreground",Lke="font-mono text-[0.62rem] font-normal tracking-normal opacity-80",Pke="group/tile flex h-full min-w-0 flex-col gap-1.5 rounded-[12px] border border-border-soft bg-card p-2.5 text-left [--tone:var(--primary)] enabled:hover:border-border enabled:hover:bg-accent/40 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring/60 disabled:opacity-60",lL=e=>e.kind==="skill"?m.jsx(AW,{"aria-hidden":!0,className:"size-3.5"}):m.jsx(OW,{"aria-hidden":!0,className:"size-3.5"});function jke({title:e,count:t,children:n}){return m.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[m.jsxs("h2",{className:Dke,children:[e,t!==void 0&&m.jsx("span",{className:Lke,children:t})]}),n]})}function YT({category:e,title:t,description:n,icon:r,standard:i,guided:a,disabled:o,onClick:c}){return m.jsx("li",{className:"min-w-0",children:m.jsxs("button",{className:Pke,disabled:o,onClick:c,title:t,type:"button",children:[m.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 text-(--tone)",children:[r,m.jsx("span",{className:"truncate text-[0.58rem] font-semibold uppercase tracking-[0.06em] text-muted-foreground",children:e}),i&&m.jsx("span",{className:"ml-auto flex-none rounded-sm border border-current px-1 text-[0.52rem] font-semibold uppercase tracking-[0.06em] leading-[1.5] opacity-70",children:"Standard"})]}),m.jsx("span",{className:"text-[0.76rem] font-semibold leading-snug [overflow-wrap:anywhere]",children:t}),m.jsx("span",{className:"line-clamp-2 text-[0.66rem] leading-[1.45] text-muted-foreground",children:n}),m.jsxs("span",{className:"mt-auto flex items-center gap-0.5 pt-1.5 text-[0.62rem] font-semibold text-(--tone) opacity-50 group-enabled/tile:group-hover/tile:opacity-100",children:[a?"Einrichten":"Starten",m.jsx(Y1,{"aria-hidden":!0,className:"size-3"})]})]})})}const $ke=(e,t,n)=>e.length+(t===void 0&&n?1:0);function Bke({entries:e,defaultEntry:t,label:n,disabled:r=!1,onNewChat:i,onStart:a}){const o=e.find(u=>u.id===t),c=e.filter(u=>u.id!==t);return m.jsxs("ul",{"aria-label":n,className:"grid grid-cols-[repeat(auto-fill,minmax(182px,1fr))] gap-2",children:[o?m.jsx(YT,{category:o.category,description:o.description,disabled:r,guided:o.guided,icon:lL(o),onClick:()=>a(o.id),standard:!0,title:o.title}):i&&m.jsx(YT,{...Mke,disabled:r,icon:m.jsx(IP,{"aria-hidden":!0,className:"size-3.5"}),onClick:i}),c.map(u=>m.jsx(YT,{category:u.category,description:u.description,disabled:r,guided:u.guided,icon:lL(u),onClick:()=>a(u.id),title:u.title},u.id))]})}const zke=(e,t,n)=>({id:e.id,title:e.title,description:e.description,kind:e.action,category:e.category??(n?"Run-Scripts":"Abläufe"),...t?{guided:!0}:{}});function Fke({registry:e,session:t,initialEntryId:n,onOpen:r}){const i=$i(),a=Spe(),[o,c]=x.useState(),[u,d]=x.useState(!1),p=x.useRef(!1),h=x.useRef(!1),y=x.useRef(t);y.current=t;const b=Ag(),v=u||b.pending,T=i.can("runs.inspect"),A=i.can("runs.create"),S=e.startEntries.filter(N=>bT(i,N.id)&&(N.action==="script"||A)),C=S.map(N=>zke(N,e.guideFor(N)!==void 0,T)),k=S.some(N=>N.id===e.defaultStartEntry)?e.defaultStartEntry:void 0,R=x.useCallback(async(N,D)=>{if(!(p.current||!bT(i,N.id))){p.current=!0,d(!0),c(void 0);try{await fke(y.current.session.id,N,D),r()}catch(L){c(`${N.title}: ${L instanceof Error?L.message:String(L)}`)}finally{p.current=!1,d(!1)}}},[i,r]),O=x.useCallback(N=>{const D=e.startEntries.find(L=>L.id===N);if(!D||!bT(i,D.id)){c("Diese Vorlage ist im aktuellen Profil nicht verfügbar.");return}Uke(D,e,a,y,R)},[i,R,a,e]);return x.useEffect(()=>{!n||v||h.current||(h.current=!0,O(n))},[v,n,O]),m.jsx("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col overflow-auto px-10 pt-6 pb-5 max-md:px-3 max-md:pt-11 max-md:pb-4",children:m.jsxs("section",{"aria-label":"Startauswahl",className:"mx-auto grid w-full max-w-composer grid-cols-1 gap-1.5",children:[m.jsx(jke,{count:$ke(C,k,A),title:"Neu"}),o&&m.jsx("p",{className:"text-[0.8rem] text-destructive",role:"alert",children:o}),C.length===0&&!A?m.jsx("p",{className:"text-[0.75rem] text-muted-foreground",role:"status",children:"Für dieses Benutzerkonto ist keine Vorlage freigegeben."}):m.jsx(Bke,{defaultEntry:k,disabled:v,entries:C,label:"Vorlagen",onNewChat:A?r:void 0,onStart:O})]})})}function Uke(e,t,n,r,i){const a=t.guideFor(e);if(!a){i(e,null);return}let o=!1;n.open({title:e.title,subtitle:e.description,render:c=>m.jsx(a.Guide,{entry:e,session:r.current,onCancel:c.back,onComplete:u=>{if(o)return;if(e.action==="script"){o=!0,c.back(),i(e,u);return}if(typeof u!="string"||!u.trim())throw new Error(`Der Leitfaden für ${e.title} muss einen nicht leeren Auftrag liefern.`);const d=u;o=!0,c.back(),n.open({title:"Auftrag vorbereiten",subtitle:e.title,render:()=>m.jsx(Ike,{entry:e,initialPrompt:d,registry:t,sessionRef:r})})}})})}function Hke(e){const t=`ragents.workspacePanelState:${encodeURIComponent(e)}`,[n,r]=x.useState(()=>localStorage.getItem(t)==="collapsed"?"collapsed":"expanded"),i=x.useCallback(a=>{localStorage.setItem(t,a),r(a)},[t]);return[n,i]}const qke="flex min-h-9 min-w-9 flex-shrink-0 cursor-pointer items-center justify-center gap-1.5 rounded-lg px-[7px] py-[5px] text-[0.72rem] [&_[data-slot=badge]]:size-[5px] [&_[data-slot=badge]]:min-w-[5px] [&_[data-slot=badge]]:border-0 [&_[data-slot=badge]]:bg-current [&_[data-slot=badge]]:p-0 [&_[data-slot=badge]]:text-[0px]",Vke=560,a0=360,hh=960;function Gke(e){const t=`ragents.workspacePanelWidth:${encodeURIComponent(e.session.session.id)}`,n=x.useRef(null),[r,i]=x.useState([]),a=x.useRef(void 0),[o,c]=x.useState(()=>{const $=Number(localStorage.getItem(t));return $>=a0&&$<=hh?$:Vke}),[u,d]=x.useState({min:a0,max:hh}),p=x.useRef(o),h=e.state==="collapsed",y=e.tabs,b=y.find($=>$.id===e.navigation.activeTabId)??y[0],v=b==null?void 0:b.id,T=h?"Leiste aufklappen":"Leiste einklappen";x.useLayoutEffect(()=>{var q;const $=n.current,P=(q=e.headerContainer)==null?void 0:q.parentElement;if(!$||!P)return;const F=()=>P.style.setProperty("--workspace-panel-width",`${$.getBoundingClientRect().width}px`),H=new ResizeObserver(F);return H.observe($),F(),()=>{H.disconnect(),P.style.removeProperty("--workspace-panel-width")}},[e.headerContainer]),x.useEffect(()=>{v!==void 0&&i($=>$.includes(v)?$:[...$,v])},[v]),x.useEffect(()=>{var H;const $=(H=n.current)==null?void 0:H.parentElement;if(!$)return;const P=()=>{const q=A($.clientWidth);d(Y=>Y.min===q.min&&Y.max===q.max?Y:q)},F=new ResizeObserver(P);return F.observe($),P(),()=>F.disconnect()},[]),x.useEffect(()=>()=>{var $;return($=a.current)==null?void 0:$.call(a)},[]),x.useEffect(()=>{var $;h&&(($=a.current)==null||$.call(a))},[h]);const A=$=>{const P=$<=960?52:360,F=Math.min(hh,Math.max(0,$-P));return{min:Math.min(a0,F),max:F}},S=()=>{var P,F;const $=((F=(P=n.current)==null?void 0:P.parentElement)==null?void 0:F.clientWidth)??hh;return A($).max},C=$=>{var H,q;const P=((q=(H=n.current)==null?void 0:H.parentElement)==null?void 0:q.clientWidth)??hh,F=A(P);return Math.min(F.max,Math.max(F.min,$))},k=$=>{var P;(P=n.current)==null||P.style.setProperty("--workspace-panel-width",`${$}px`)},R=$=>{p.current=$,c($),localStorage.setItem(t,String($))},O=$=>{var G;$.preventDefault(),(G=a.current)==null||G.call(a);const P=n.current,F=P==null?void 0:P.parentElement,H=$.currentTarget,q=$.clientX,Y=(P==null?void 0:P.getBoundingClientRect().width)??p.current;let V=Y,U,W=!0;F==null||F.setAttribute("data-resizing","true"),H.setPointerCapture($.pointerId);function K(){W&&(W=!1,U!==void 0&&cancelAnimationFrame(U),window.removeEventListener("pointermove",te),window.removeEventListener("pointerup",I),window.removeEventListener("pointercancel",z),F==null||F.removeAttribute("data-resizing"),H.hasPointerCapture($.pointerId)&&H.releasePointerCapture($.pointerId),a.current=void 0)}function te(B){B.pointerId===$.pointerId&&(V=C(Y+q-B.clientX),U===void 0&&(U=requestAnimationFrame(()=>{U=void 0,k(V),H.setAttribute("aria-valuenow",String(Math.round(V))),H.setAttribute("aria-valuetext",`${Math.round(V)} Pixel`)})))}function I(B){B.pointerId===$.pointerId&&(V=C(Y+q-B.clientX),K(),k(V),R(V))}function z(B){if(B&&B.pointerId!==$.pointerId)return;K(),k(p.current);const J=C(p.current);H.setAttribute("aria-valuenow",String(Math.round(J))),H.setAttribute("aria-valuetext",`${Math.round(J)} Pixel`)}window.addEventListener("pointermove",te),window.addEventListener("pointerup",I),window.addEventListener("pointercancel",z),a.current=z},N=$=>{var H;const P=((H=n.current)==null?void 0:H.getBoundingClientRect().width)??p.current,F=$.key==="ArrowLeft"?C(P+16):$.key==="ArrowRight"?C(P-16):$.key==="Home"?C(a0):$.key==="End"?S():void 0;F!==void 0&&($.preventDefault(),k(F),R(F))},D=Math.min(u.max,Math.max(u.min,o)),L=u.max>u.min;return m.jsxs("aside",{"aria-label":"Leiste",className:Ie("relative z-20 flex min-h-0 min-w-0 flex-col @max-[960px]/chat-content:absolute @max-[960px]/chat-content:inset-y-0 @max-[960px]/chat-content:right-0 @max-[960px]/chat-content:left-auto",h?"w-0 max-w-0 flex-[0_0_0]":"w-[var(--workspace-panel-width,560px)] max-w-[calc(100%-360px)] flex-[0_0_var(--workspace-panel-width,560px)] border-l border-border-strong bg-shell shadow-workspace @max-[960px]/chat-content:w-[min(var(--workspace-panel-width,560px),calc(100%-var(--spacing-header)))] @max-[960px]/chat-content:max-w-none @max-[960px]/chat-content:flex-none"),id:"workspace-panel",ref:n,style:{"--workspace-panel-width":`${o}px`},children:[!h&&m.jsx("div",{"aria-controls":"workspace-panel","aria-disabled":!L,"aria-label":"Breite der Leiste","aria-orientation":"vertical","aria-valuemax":Math.round(u.max),"aria-valuemin":Math.round(u.min),"aria-valuenow":Math.round(D),"aria-valuetext":`${Math.round(D)} Pixel`,className:Ie("absolute inset-y-0 right-auto -left-1 z-30 w-2 touch-none",L?"cursor-col-resize after:absolute after:top-[calc(50%-18px)] after:left-[3px] after:h-9 after:w-[3px] after:rounded-[3px] after:bg-border-strong after:content-[''] hover:bg-primary/25 in-data-[resizing=true]:bg-primary/25 focus-visible:outline-2 focus-visible:outline-primary/58 focus-visible:outline-offset-2":"cursor-default"),onKeyDown:L?N:void 0,onPointerDown:L?O:void 0,role:"separator",tabIndex:L?0:-1,title:"Breite ziehen"}),e.headerContainer&&ei.createPortal(m.jsx(uA,{children:m.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden pr-[7px] pl-[9px]","data-workspace-state":e.state,children:[m.jsx("nav",{"aria-label":"Leiste",className:"flex min-w-0 flex-1 flex-nowrap gap-[3px] overflow-x-auto no-scrollbar",hidden:h,role:"tablist",children:y.map($=>m.jsxs(e1,{children:[m.jsxs(t1,{"aria-label":$.label,"aria-controls":"workspace-panel-content","aria-selected":(b==null?void 0:b.id)===$.id,className:Ie(qke,(b==null?void 0:b.id)===$.id?"bg-accent text-primary":"text-muted-foreground hover:bg-foreground/6 hover:text-foreground"),onClick:()=>e.navigation.openTab($.id),role:"tab",type:"button",children:[m.jsx($.Icon,{}),e.pendingTabIds.includes($.id)?m.jsx("span",{"aria-hidden":!0,className:"size-1.5 flex-none rounded-full bg-primary"}):$.Badge&&m.jsx($.Badge,{active:(b==null?void 0:b.id)===$.id,navigation:e.navigation,selection:e.navigation.selectionFor($.id),session:e.session})]}),m.jsx(n1,{side:"bottom",children:e.pendingTabIds.includes($.id)?`${$.label} - es gibt Neues`:$.label})]},$.id))}),m.jsxs(e1,{children:[m.jsx(t1,{"aria-controls":"workspace-panel-content","aria-expanded":!h,"aria-label":T,className:"relative flex-shrink-0",onClick:e.onToggleState,render:m.jsx(pr,{size:"icon-lg",variant:"ghost"}),children:m.jsx(Kke,{state:e.state})}),m.jsx(n1,{side:"bottom",children:T})]})]})}),e.headerContainer),m.jsx("div",{className:"relative min-h-0 flex-1 overflow-hidden",hidden:h,inert:h,id:"workspace-panel-content",children:wH(y,v,r).map($=>m.jsx("div",{className:Ie("absolute inset-0 flex min-h-0 flex-col",$.id!==v&&"pointer-events-none invisible"),children:m.jsx($.Panel,{active:!h&&$.id===v,navigation:e.navigation,selection:e.navigation.selectionFor($.id),session:e.session})},$.id))})]})}const wH=(e,t,n)=>e.filter(r=>r.id===t||r.keepMounted===!0&&n.includes(r.id));function Kke({state:e}){return m.jsxs("svg",{"aria-hidden":!0,fill:"none",height:"22",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.8",viewBox:"0 0 24 24",width:"22",children:[m.jsx("rect",{height:"16",rx:"2",width:"18",x:"3",y:"4"}),m.jsx("path",{d:"M16 4v16"}),e==="collapsed"&&m.jsx("path",{d:"m13 8-4 4 4 4"}),e==="expanded"&&m.jsx("path",{d:"m7 8 4 4-4 4"})]})}function SH({children:e,container:t,label:n,order:r}){return t?ei.createPortal(m.jsx("div",{"aria-label":n,className:"relative z-[70] flex h-full min-w-0 flex-none items-stretch after:pointer-events-none after:absolute after:top-1.5 after:right-0 after:bottom-1.5 after:w-px after:bg-muted-foreground after:opacity-45 after:content-['']",role:"group",style:{order:r},children:e}),t):null}const Yke=Object.freeze(Object.defineProperty({__proto__:null,StatusGroup:SH},Symbol.toStringTag,{value:"Module"}));function Wke({children:e}){const t=x.useRef(null),n=x.useRef(null),r=x.useRef(null),i=x.useId(),[a,o]=x.useState({overflow:!1,left:!1,right:!1});x.useEffect(()=>{const u=t.current,d=n.current,p=r.current,h=()=>{const v={overflow:p.scrollWidth>u.clientWidth+1,left:d.scrollLeft>1,right:d.scrollLeft+d.clientWidth<d.scrollWidth-1};o(T=>T.overflow===v.overflow&&T.left===v.left&&T.right===v.right?T:v)},y=v=>{if(v.defaultPrevented||v.ctrlKey||d.scrollWidth<=d.clientWidth+1||v.target instanceof Element&&v.target.closest("[data-surface-scroll]"))return;v.preventDefault();const T=Math.abs(v.deltaX)>Math.abs(v.deltaY)?v.deltaX:v.deltaY,A=v.deltaMode===WheelEvent.DOM_DELTA_LINE?16:v.deltaMode===WheelEvent.DOM_DELTA_PAGE?d.clientWidth:1;d.scrollLeft+=T*A},b=new ResizeObserver(h);return b.observe(u),b.observe(d),b.observe(p),d.addEventListener("scroll",h),d.addEventListener("wheel",y,{passive:!1}),h(),()=>{b.disconnect(),d.removeEventListener("scroll",h),d.removeEventListener("wheel",y)}},[]);const c=u=>{const d=n.current,p=Array.from(r.current.children).find(y=>y.getBoundingClientRect().width>0),h=p?p.getBoundingClientRect().width:d.clientWidth/3;d.scrollBy({left:u*h,behavior:window.matchMedia("(prefers-reduced-motion: reduce)").matches?"instant":"smooth"})};return m.jsxs("div",{className:"flex min-w-0 flex-1",ref:t,children:[a.overflow&&m.jsx(js,{as:"button","aria-controls":i,"aria-label":"Apps und Actors nach links",className:"w-8 justify-center px-0",disabled:!a.left,onClick:()=>c(-1),title:"Nach links blättern",type:"button",children:m.jsx(wI,{size:18})}),m.jsx("div",{"aria-label":"Apps und Actors durchblättern",className:"flex min-w-0 flex-1 items-stretch overflow-x-auto no-scrollbar focus-visible:outline-2 focus-visible:outline-ring/60 focus-visible:-outline-offset-3",id:i,ref:n,role:"group",tabIndex:0,children:m.jsx("div",{className:"flex w-max flex-none items-stretch",ref:r,children:e})}),a.overflow&&m.jsx(js,{as:"button","aria-controls":i,"aria-label":"Apps und Actors nach rechts",className:"w-8 justify-center border-r-0 border-l border-border px-0 [&>svg]:rotate-180",disabled:!a.right,onClick:()=>c(1),title:"Nach rechts blättern",type:"button",children:m.jsx(wI,{size:18})})]})}const Xke="flex h-[30px] min-w-0 flex-1 cursor-pointer items-center gap-2 self-center rounded-md px-1.5 text-left hover:bg-accent aria-expanded:bg-accent focus-visible:outline-2 focus-visible:outline-ring/60 focus-visible:-outline-offset-2";function Qke({attention:e,contributions:t,navigation:n,registry:r,runError:i,session:a,working:o}){const[c,u]=x.useState(!1),d=x.useRef(null),p=x.useId(),h=a.session.title||"Neuer Run",y=b=>{var v;return b.reason==="outside-press"&&b.event.target instanceof Node&&((v=d.current)==null?void 0:v.contains(b.event.target))===!0};return m.jsxs("div",{className:"flex min-w-0 flex-1 items-stretch",children:[m.jsxs("button",{"aria-controls":c?p:void 0,"aria-expanded":c,"aria-haspopup":"dialog",className:Xke,onClick:()=>u(b=>!b),ref:d,title:`${h}. Klick zeigt die Run-Details`,type:"button",children:[m.jsx("strong",{className:"min-w-0 truncate text-[0.82rem] font-semibold",children:h}),o&&m.jsx("span",{"aria-label":"Bearbeitung läuft",className:"size-1.5 flex-none rounded-full bg-primary animate-fade-pulse motion-reduce:animate-none",role:"status"}),i&&m.jsx("span",{className:"flex-none text-[0.68rem] font-medium text-destructive",title:i,children:"Run nicht erreichbar"}),e&&m.jsx("span",{className:"flex-none truncate rounded-full bg-primary/10 px-2 py-0.5 text-[0.66rem] font-semibold text-primary",role:"status",children:e.label}),m.jsx($m,{"aria-hidden":!0,className:"size-3.5 flex-none text-muted-foreground"})]}),m.jsx(eA,{onOpenChange:(b,v)=>{!b&&y(v)||u(b)},open:c,children:m.jsx(tA,{align:"start",anchor:d,"aria-label":"Run-Details",className:"max-h-[70vh] w-[calc(100vw-16px)] gap-0 overflow-auto rounded-md p-0 text-[0.76rem]",collisionPadding:8,dim:!0,id:p,role:"dialog",side:"bottom",children:m.jsxs("div",{className:"flex flex-wrap items-stretch [&>*]:border-b [&>*]:border-border-soft",children:[r.sessionMetadata.map(({id:b,Metadata:v})=>m.jsx(v,{placement:"header",session:a.session},b)),m.jsx(EH,{registry:r,session:a}),t.map(({id:b,Header:v})=>m.jsx(v,{navigation:n,session:a},b))]})})})]})}const AH="run-panel-workspace",Zke=Object.freeze({tab:null}),_H=e=>`ragents.run-panel.workspace-tab:${e}`;function Jke(e){if(e===null)return Zke;const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).some(n=>n!=="tab")||!("tab"in t)||!(t.tab===null||typeof t.tab=="string"))throw new Error("Der gespeicherte Zustand der Leiste ist ungültig.");return t}const eCe=(e,t)=>e.tab!==null&&t.some(n=>n.id===e.tab)?e.tab:"",kH=Ix({changeEvent:"ragents-run-panel-workspace-change",matchesKey:e=>e.startsWith("ragents.run-panel.workspace-tab:"),parse:Jke,serialize:JSON.stringify});function tCe(e){return kH.useValue(_H(e))}function cL(e,t){kH.save(_H(e),t)}const nCe="relative aria-pressed:bg-accent aria-pressed:text-primary [&_[data-slot=badge]]:absolute [&_[data-slot=badge]]:-top-0.5 [&_[data-slot=badge]]:-right-0.5 [&_[data-slot=badge]]:h-3.5 [&_[data-slot=badge]]:min-w-3.5 [&_[data-slot=badge]]:px-1 [&_[data-slot=badge]]:py-0 [&_[data-slot=badge]]:text-[0.58rem] [&_[data-slot=badge]]:leading-none";function rCe({navigation:e,onClose:t,open:n,pendingTabIds:r,session:i,tabs:a}){return m.jsx(uA,{children:m.jsx("nav",{"aria-label":"Reiter der Leiste",className:"flex w-9 flex-none flex-col items-center gap-1 border-l border-border bg-shell py-1.5",children:a.map(o=>{const c=n&&o.id===e.activeTabId,u=r.includes(o.id);return m.jsxs(e1,{children:[m.jsxs(t1,{"aria-controls":AH,"aria-label":o.label,"aria-pressed":c,className:nCe,onClick:()=>c?t():e.openTab(o.id),render:m.jsx(pr,{size:"icon",variant:"ghost"}),children:[m.jsx(o.Icon,{}),o.Badge&&m.jsx(o.Badge,{active:c,navigation:e,selection:e.selectionFor(o.id),session:i}),u&&m.jsx("span",{"aria-hidden":!0,className:"absolute right-1 bottom-1 size-1.5 rounded-full bg-primary"})]}),m.jsx(n1,{side:"left",sideOffset:8,children:u?`${o.label} - es gibt Neues`:o.label})]},o.id)})})})}function iCe({navigation:e,onClose:t,open:n,session:r,tabs:i}){const a=x.useRef(null),[o,c]=x.useState([]),u=n?e.activeTabId:void 0,d=i.find(p=>p.id===u);return x.useEffect(()=>{if(u===void 0)return;c(h=>h.includes(u)?h:[...h,u]);const p=a.current;p&&!p.contains(document.activeElement)&&p.focus({preventScroll:!0})},[u]),m.jsxs(m.Fragment,{children:[n&&m.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 z-[60] bg-backdrop duration-200 animate-in fade-in-0",onClick:t}),m.jsxs("section",{"aria-label":"Leiste",className:"absolute inset-2 z-[70] flex flex-col overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 animate-in fade-in-0 zoom-in-95 @min-[960px]/chat-content:left-[40%]",hidden:!n,id:AH,inert:!n,onKeyDown:p=>{p.key!=="Escape"||p.defaultPrevented||(p.preventDefault(),t())},ref:a,tabIndex:-1,children:[m.jsxs("header",{className:"flex h-8 flex-none items-center gap-2 border-b border-border px-2.5",children:[m.jsx("h2",{className:"min-w-0 flex-1 truncate text-[0.76rem] font-semibold",children:d==null?void 0:d.label}),m.jsx(pr,{"aria-label":"Leiste schließen",onClick:t,size:"icon-xs",title:"Leiste schließen",variant:"ghost",children:m.jsx(Gf,{})})]}),m.jsx("div",{className:"relative min-h-0 flex-1 overflow-hidden",children:wH(i,u,o).map(p=>m.jsx("div",{className:Ie("absolute inset-0 flex min-h-0 flex-col",p.id!==u&&"pointer-events-none invisible"),children:m.jsx(p.Panel,{active:p.id===u,navigation:e,selection:e.selectionFor(p.id),session:r})},p.id))})]})]})}const aCe="flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden rounded-lg border border-border-soft/60 bg-card/55";function kDe({autoFocusChat:e,onAutoFocusChatSettled:t,layout:n="workspace",headerContainer:r,toolbarContainer:i,workspaceHeaderContainer:a,statusContainer:o,initialStartOptions:c,onStarted:u,onLocationChange:d,onViewed:p,viewing:h=!1,registry:y,session:b,startDialog:v}){const T=$i(),A=v!==void 0,[S,C]=x.useState(null),[k,R]=x.useState(null),[O,N]=x.useState([]),D=x.useCallback(Ee=>{if(Ee.kind==="reset"&&N([]),Ee.kind!=="plugin")return;const{pluginId:Fe,type:Pe,payload:Z,at:de}=Ee;N(pe=>[...pe,{pluginId:Fe,type:Pe,payload:Z,at:de}])},[]),{messages:L,running:$,connected:P,startup:F,send:H,startSkill:q,start:Y}=pH(b.id,D,!A),V=x.useCallback((Ee,Fe,Pe)=>Pe===void 0?H(Ee,Fe):q(Pe,Ee,Fe),[H,q]),U=mke(b.id,A||y.needsRunView||p!==void 0,!A);x.useEffect(()=>{const Ee=U.view;if(!h||!p||U.error||!bn(Ee)||Ee.id!==b.id||typeof Ee.revision!="number")return;const Fe=Ee.revision,Pe=()=>{document.visibilityState==="visible"&&p(b.id,Fe)};return Pe(),document.addEventListener("visibilitychange",Pe),()=>document.removeEventListener("visibilitychange",Pe)},[h,p,U.view,U.error,b.id]);const W=x.useRef(!1),K=x.useRef(!1);x.useEffect(()=>(K.current=!0,()=>{K.current=!1}),[]);const te=x.useCallback(()=>{!K.current||W.current||(W.current=!0,u==null||u())},[u]),I=U.view!==void 0;x.useEffect(()=>{A&&I&&te()},[te,I,A]);const[z,G]=x.useState({}),[B,J]=x.useState([]),ie=x.useRef(new Set),ne=x.useMemo(()=>({connected:P,pluginEvents:O,messages:L,actorConversations:U.conversations,conversationError:U.error,runView:U.view,running:$,startup:F,send:V,session:b,start:Y}),[P,O,L,U.view,U.conversations,U.error,$,F,V,b,Y]),me=x.useMemo(()=>y.registeredTabs(ne,T),[T,y,ne]),he=x.useMemo(()=>y.availableTabs(ne,T),[T,y,ne]),{activeTabId:ve,panelState:Le,showTab:He,togglePanel:ke}=sCe(b.id,n,he),Oe=x.useCallback((Ee,Fe)=>{if(!me.some(Pe=>Pe.id===Ee))throw new Error("Reiter der Leiste ist nicht registriert: "+Ee);Fe!==void 0&&G(Pe=>({...Pe,[Ee]:Fe})),He(Ee)},[me,He]),ye=x.useCallback(Ee=>z[Ee],[z]),ue=x.useCallback(Ee=>{const Fe=y.targetForEntity(Ee,ne);return!Fe||!me.some(Pe=>Pe.id===Fe.tabId)?!1:(Oe(Fe.tabId,Fe.selection),!0)},[Oe,me,y,ne]),ge=x.useMemo(()=>({activeTabId:ve,openTab:Oe,revealEntity:ue,selectionFor:ye}),[ve,Oe,ue,ye]);return x.useEffect(()=>{var Fe,Pe;const Ee=[];for(const Z of L){const de=Z.tool;if(!de||ie.current.has(de.id))continue;const pe=(Pe=(Fe=y.presenterFor(de))==null?void 0:Fe.reveal)==null?void 0:Pe.call(Fe,de,ne);pe&&Ee.push({callId:de.id,tabId:pe.tabId})}for(const Z of Ee)ie.current.add(Z.callId);Ee.length!==0&&J(Z=>{const de=Ee.map(pe=>pe.tabId).filter(pe=>pe!==ve&&!Z.includes(pe));return de.length===0?Z:[...new Set([...Z,...de])]})},[ve,L,y,ne]),x.useEffect(()=>{J(Ee=>Ee.includes(ve)?Ee.filter(Fe=>Fe!==ve):Ee)},[ve]),m.jsx(FS.Provider,{value:A?null:S,children:m.jsx(US.Provider,{value:A?null:k,children:m.jsx(eH,{policy:y.chatDisplayPolicy,children:m.jsx(Ake,{connected:P,initialValues:c,messageCount:L.length,sessionId:b.id,children:m.jsxs(cH,{navigation:ge,registry:y,session:ne,children:[!A&&d&&m.jsx(oCe,{activeTabId:ge.activeTabId,onChange:d,panelVisible:Le==="expanded",runId:b.id,tabs:he}),m.jsx(lCe,{autoFocusChat:e,onAutoFocusChatSettled:t,layout:n,toolbarContainer:i,panelState:Le,onTogglePanel:ke,headerContainer:r,workspaceHeaderContainer:a,statusContainer:o,onModalContainer:C,onSurfaceModalContainer:R,onStarted:te,startDialog:v,navigation:ge,pendingTabIds:B,registry:y,runError:U.error,session:ne,tabs:he})]})})})})})}function sCe(e,t,n){var v,T;const[r,i]=x.useState(),[a,o]=Hke(e),c=tCe(e),u=t==="panel",d=u?eCe(c,n):r!==void 0&&n.some(A=>A.id===r)?r:((v=n[0])==null?void 0:v.id)??"",p=u?d===""?"collapsed":"expanded":a,h=((T=n[0])==null?void 0:T.id)??null,y=x.useCallback(A=>{if(u){cL(e,{...c,tab:A});return}i(A),o("expanded")},[e,u,c,o]),b=x.useCallback(()=>{if(u){cL(e,{...c,tab:p==="expanded"?null:c.tab??h});return}o(p==="expanded"?"collapsed":"expanded")},[h,p,e,u,c,o]);return{activeTabId:d,panelState:p,showTab:y,togglePanel:b}}function oCe({activeTabId:e,onChange:t,panelVisible:n,runId:r,tabs:i}){const a=iH(),o=hke(r,e,i,n,a==null?void 0:a.selection),{tab:c,selection:u}=o,d=u==null?void 0:u.type,p=u==null?void 0:u.id;return x.useLayoutEffect(()=>{t({runId:r,tab:c,selection:d!==void 0&&p!==void 0?{type:d,id:p}:null})},[t,r,c,d,p]),null}function lCe({autoFocusChat:e,onAutoFocusChatSettled:t,layout:n,toolbarContainer:r=null,panelState:i,onTogglePanel:a,headerContainer:o,workspaceHeaderContainer:c,statusContainer:u=null,onModalContainer:d,onSurfaceModalContainer:p,onStarted:h,startDialog:y,navigation:b,pendingTabIds:v,registry:T,runError:A,session:S,tabs:C}){var te,I;const k=$i(),[R,O]=x.useState(null),N=T.headersFor(S,k,"header"),D=T.headersFor(S,k,"surface"),L=x.useMemo(()=>{const z=async G=>{await G(),h()};return{...S,send:(G,B,J)=>z(()=>S.send(G,B,J)),start:(G,B)=>z(()=>S.start(G,B))}},[h,S]),$=T.attention.map(z=>z.assess(S)).find(z=>z!==void 0),P=$!==void 0;x.useEffect(()=>{if(!P)return;const z=document.title;return document.title="● "+z,()=>{document.title=z}},[P]);const F=!y&&C.length>0,H=(te=T.surface)==null?void 0:te.Center,q=(I=T.surface)==null?void 0:I.RunPanel,Y=x.useCallback(z=>{d(z),p(z)},[p,d]),V=sH(),U=(z={})=>m.jsx(uCe,{autoFocus:e,onAutoFocusSettled:t,options:z,registry:T,renderTool:V,session:S});if(y)return m.jsxs(Ape,{className:"gap-0 p-0 [&_[data-slot=dialog-body]:has([data-preparation])]:overflow-hidden",nextBehavior:"push",onClose:y.onClose,scope:"page",showCloseButton:!0,size:"full",children:[m.jsx(Qm,{className:"sr-only",children:"Neuer Run"}),m.jsx(Fke,{registry:T,session:L,initialEntryId:y.initialEntryId,onOpen:h})]});const W=T.sessionStatus.filter(z=>!z.readRight||k.can(z.readRight)).map(({id:z,order:G,Status:B})=>m.jsx(SH,{container:u,label:"Run-Aktionen",order:G,children:m.jsx(B,{navigation:b,session:S})},z)),K=o&&ei.createPortal(n==="panel"?m.jsx(Qke,{attention:$,contributions:N,navigation:b,registry:T,runError:A,session:S,working:S.running}):m.jsxs("div",{className:"flex min-w-0 flex-[1_0_auto] items-stretch",children:[m.jsxs("div",{className:"flex min-w-0 flex-none items-stretch text-[0.82rem] font-semibold text-foreground",children:[m.jsx(js,{className:"min-w-[140px] max-w-[260px] justify-start font-semibold max-md:min-w-[120px] max-md:max-w-[180px]",title:S.session.title,children:m.jsx(yc,{children:S.session.title||"Neuer Run"})}),T.sessionMetadata.map(({id:z,Metadata:G})=>m.jsx(G,{placement:"header",session:S.session},z)),m.jsx(EH,{registry:T,session:S}),S.running&&m.jsxs(js,{className:"text-[0.72rem] font-normal text-muted-foreground",children:[m.jsx(qc,{"aria-hidden":!0,className:"size-2.5"}),m.jsx(yc,{children:"Bearbeitung läuft"})]}),A&&m.jsx(js,{className:"text-[0.72rem] font-medium text-destructive",title:A,children:m.jsx(yc,{children:"Run nicht erreichbar"})})]}),N.length>0&&m.jsx("div",{className:"flex min-w-0 flex-none items-stretch overflow-visible",children:N.map(({id:z,Header:G})=>m.jsx(G,{navigation:b,session:S},z))}),$&&m.jsx(js,{as:"div",className:"bg-primary/10 text-[0.72rem] font-semibold text-primary",role:"status",children:m.jsx(yc,{children:$.label})})]}),o);return n!=="workspace"?m.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[W,K,m.jsx("div",{className:"relative isolate flex min-h-0 min-w-0 flex-1",ref:Y,children:typeof n=="object"?m.jsx(cCe,{elementId:n.element,navigation:b,registry:T,session:S}):m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"relative flex min-h-0 min-w-0 flex-1 flex-col",children:[q?m.jsx(q,{toolbarContainer:r,runToolbarContainer:null,statusContainer:u,cardSections:T.cardSections,surfaceElements:T.surfaceElements,navigation:b,renderChat:U,session:S,tabIds:C.map(z=>z.id)}):m.jsx(uL,{renderChat:U}),F&&m.jsx(iCe,{navigation:b,onClose:a,open:i==="expanded",session:S,tabs:C})]}),F&&m.jsx(rCe,{navigation:b,onClose:a,open:i==="expanded",pendingTabIds:v,session:S,tabs:C})]})})]}):m.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[W,K,m.jsxs("div",{className:"relative flex min-h-0 min-w-0 flex-1 data-[resizing=true]:cursor-col-resize data-[resizing=true]:select-none",ref:d,children:[m.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[(H||D.length>0)&&m.jsxs("div",{"aria-label":"Apps und Actors",className:"flex min-h-[52px] min-w-0 flex-none items-stretch border-b border-border bg-[color-mix(in_srgb,var(--surface)_55%,var(--card))]",role:"region",children:[m.jsx("div",{className:"flex flex-none items-stretch empty:hidden",ref:O}),m.jsx(Wke,{children:D.map(({id:z,Header:G})=>m.jsx(G,{navigation:b,session:S},z))},S.session.id)]}),m.jsx("div",{className:"relative isolate flex min-h-0 min-w-0 flex-1",ref:p,children:H?m.jsx(H,{toolbarContainer:r,runToolbarContainer:R,statusContainer:u,cardSections:T.cardSections,surfaceElements:T.surfaceElements,navigation:b,renderChat:U,session:S,tabIds:C.map(z=>z.id)}):m.jsx(uL,{renderChat:U})})]}),F&&m.jsx(Gke,{headerContainer:c??null,navigation:b,onToggleState:a,pendingTabIds:v,session:S,state:i,tabs:C})]})]})}function uL({renderChat:e}){return m.jsx("div",{className:"relative flex min-h-0 min-w-0 flex-1",children:m.jsx("div",{className:"relative flex min-h-0 min-w-0 flex-1 overflow-hidden","data-view":"chat",children:e()})})}function cCe({elementId:e,navigation:t,registry:n,session:r}){const i=n.surfaceElements.flatMap(a=>a.select(r).filter(o=>o.id===e&&o.visible!==!1).map(o=>({Element:a.Element,definition:o})))[0];return i?m.jsx("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col","data-view":"element",children:m.jsx(i.Element,{definition:i.definition,navigation:t,session:r})}):m.jsx("div",{className:"m-auto max-w-[420px] p-6 text-center text-muted-foreground",role:"status",children:r.runView===void 0?"Der Run wird geladen ...":"Diese Mini-App gibt es in dem Run nicht mehr."})}function uCe({autoFocus:e,onAutoFocusSettled:t,options:n,registry:r,renderTool:i,session:a}){const c=$i().can("runs.write"),u=lH(),d=uC(a.session.id,tH(a.runView),"coordinator"),[p,h]=x.useState(),y=Ag(),b=dC(a.session.id,"primary",JSON.stringify(y.options.map(({id:S,value:C})=>[S,C]))),v=x.useMemo(()=>R1(a.messages),[a.messages]),T=a.connected&&(a.running||X7(a.runView,a.session.id)),A=K7(a.runView,a.session.id,a.running);return m.jsx(sC,{className:Ie(aCe,n.chatElementClassName),composer:W7(a.runView,a.session.id)?m.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[m.jsx("p",{className:"text-muted-foreground",children:Y7}),m.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[n.toolbarLeft,m.jsx(Qh,{collapsible:!1,settings:d})]})]}):A.kind==="stopped"?m.jsx("div",{className:"[--qsl-input-card-radius:var(--radius-lg)]",children:m.jsx(Q7,{actor:A.actor,runId:a.session.id,toolbar:m.jsxs(m.Fragment,{children:[n.toolbarLeft,m.jsx(Qh,{collapsible:!1,settings:d})]})})}):m.jsxs("div",{className:"[--qsl-input-card-radius:var(--radius-lg)]",children:[p&&m.jsx("p",{className:"text-[0.8rem] text-destructive",role:"alert",children:p}),m.jsx(oC,{...b,autoFocus:e,onAutoFocusSettled:t,disabled:!a.connected||!c,maxRows:4,texts:c?void 0:{placeholder:"Lesezugriff auf diesen Run"},onSend:(S,C)=>(h(void 0),a.send(S,C)),onStop:c&&A.kind==="active"&&A.turnRunning?()=>{h(void 0),mB(a.session.id,A.actorId).catch(S=>h(S instanceof Error?S.message:String(S)))}:void 0,rows:1,running:T,toolbarLeft:m.jsxs(m.Fragment,{children:[n.toolbarLeft,m.jsx(Qh,{collapsible:!1,settings:d})]}),toolbarRight:m.jsx(Hw,{disabled:!a.connected||!c,placement:"composer",registry:r})})]}),children:n.notice??m.jsx(aC,{detailMode:d.detailMode,messages:v,onDismissAction:c?S=>void bB(a.session.id,S):void 0,renderAction:u,renderTool:i,running:T,scrollerRef:n.chatScrollerRef,showTimestamps:d.showTimestamps,stepsExpandable:d.stepsExpandable})})}var WT,dL;function dCe(){if(dL)return WT;dL=1;function e(ee){return ee instanceof Map?ee.clear=ee.delete=ee.set=function(){throw new Error("map is read-only")}:ee instanceof Set&&(ee.add=ee.clear=ee.delete=function(){throw new Error("set is read-only")}),Object.freeze(ee),Object.getOwnPropertyNames(ee).forEach(Ne=>{const le=ee[Ne],Be=typeof le;(Be==="object"||Be==="function")&&!Object.isFrozen(le)&&e(le)}),ee}class t{constructor(Ne){Ne.data===void 0&&(Ne.data={}),this.data=Ne.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function n(ee){return ee.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function r(ee,...Ne){const le=Object.create(null);for(const Be in ee)le[Be]=ee[Be];return Ne.forEach(function(Be){for(const ot in Be)le[ot]=Be[ot]}),le}const i="</span>",a=ee=>!!ee.scope,o=(ee,{prefix:Ne})=>{if(ee.startsWith("language:"))return ee.replace("language:","language-");if(ee.includes(".")){const le=ee.split(".");return[`${Ne}${le.shift()}`,...le.map((Be,ot)=>`${Be}${"_".repeat(ot+1)}`)].join(" ")}return`${Ne}${ee}`};class c{constructor(Ne,le){this.buffer="",this.classPrefix=le.classPrefix,Ne.walk(this)}addText(Ne){this.buffer+=n(Ne)}openNode(Ne){if(!a(Ne))return;const le=o(Ne.scope,{prefix:this.classPrefix});this.span(le)}closeNode(Ne){a(Ne)&&(this.buffer+=i)}value(){return this.buffer}span(Ne){this.buffer+=`<span class="${Ne}">`}}const u=(ee={})=>{const Ne={children:[]};return Object.assign(Ne,ee),Ne};class d{constructor(){this.rootNode=u(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Ne){this.top.children.push(Ne)}openNode(Ne){const le=u({scope:Ne});this.add(le),this.stack.push(le)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Ne){return this.constructor._walk(Ne,this.rootNode)}static _walk(Ne,le){return typeof le=="string"?Ne.addText(le):le.children&&(Ne.openNode(le),le.children.forEach(Be=>this._walk(Ne,Be)),Ne.closeNode(le)),Ne}static _collapse(Ne){typeof Ne!="string"&&Ne.children&&(Ne.children.every(le=>typeof le=="string")?Ne.children=[Ne.children.join("")]:Ne.children.forEach(le=>{d._collapse(le)}))}}class p extends d{constructor(Ne){super(),this.options=Ne}addText(Ne){Ne!==""&&this.add(Ne)}startScope(Ne){this.openNode(Ne)}endScope(){this.closeNode()}__addSublanguage(Ne,le){const Be=Ne.root;le&&(Be.scope=`language:${le}`),this.add(Be)}toHTML(){return new c(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(ee){return ee?typeof ee=="string"?ee:ee.source:null}function y(ee){return T("(?=",ee,")")}function b(ee){return T("(?:",ee,")*")}function v(ee){return T("(?:",ee,")?")}function T(...ee){return ee.map(le=>h(le)).join("")}function A(ee){const Ne=ee[ee.length-1];return typeof Ne=="object"&&Ne.constructor===Object?(ee.splice(ee.length-1,1),Ne):{}}function S(...ee){return"("+(A(ee).capture?"":"?:")+ee.map(Be=>h(Be)).join("|")+")"}function C(ee){return new RegExp(ee.toString()+"|").exec("").length-1}function k(ee,Ne){const le=ee&&ee.exec(Ne);return le&&le.index===0}const R=new RegExp(S(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function O(ee,{joinWith:Ne}){let le=0;return ee.map(Be=>{le+=1;const ot=le;let yt=h(Be),Xe="";for(;yt.length>0;){const et=R.exec(yt);if(!et){Xe+=yt;break}Xe+=yt.substring(0,et.index),yt=yt.substring(et.index+et[0].length),et[0][0]==="\\"&&et[1]?Xe+="\\"+String(Number(et[1])+ot):(Xe+=et[0],(et[0]==="("||/^\(\?[<']/.test(et[0]))&&le++)}return Xe}).map(Be=>`(${Be})`).join(Ne)}const N=/\b\B/,D="[a-zA-Z]\\w*",L="[a-zA-Z_]\\w*",$="\\b\\d+(\\.\\d+)?",P="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",F="\\b(0b[01]+)",H="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",q=(ee={})=>{const Ne=/^#![ ]*\//;return ee.binary&&(ee.begin=T(Ne,/.*\b/,ee.binary,/\b.*/)),r({scope:"meta",begin:Ne,end:/$/,relevance:0,"on:begin":(le,Be)=>{le.index!==0&&Be.ignoreMatch()}},ee)},Y={begin:"\\\\[\\s\\S]",relevance:0},V={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},U={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},W={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/},K=function(ee,Ne,le={}){const Be=r({scope:"comment",begin:ee,end:Ne,contains:[]},le);Be.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const ot=S("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 Be.contains.push({begin:T(/[ ]+/,"(",ot,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Be},te=K("//","$"),I=K("/\\*","\\*/"),z=K("#","$"),G={scope:"number",begin:$,relevance:0},B={scope:"number",begin:P,relevance:0},J={scope:"number",begin:F,relevance:0},ie={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},ne={scope:"title",begin:D,relevance:0},me={scope:"title",begin:L,relevance:0},he={begin:"\\.\\s*"+L,relevance:0};var Le=Object.freeze({__proto__:null,APOS_STRING_MODE:V,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:J,BINARY_NUMBER_RE:F,COMMENT:K,C_BLOCK_COMMENT_MODE:I,C_LINE_COMMENT_MODE:te,C_NUMBER_MODE:B,C_NUMBER_RE:P,END_SAME_AS_BEGIN:function(ee){return Object.assign(ee,{"on:begin":(Ne,le)=>{le.data._beginMatch=Ne[1]},"on:end":(Ne,le)=>{le.data._beginMatch!==Ne[1]&&le.ignoreMatch()}})},HASH_COMMENT_MODE:z,IDENT_RE:D,MATCH_NOTHING_RE:N,METHOD_GUARD:he,NUMBER_MODE:G,NUMBER_RE:$,PHRASAL_WORDS_MODE:W,QUOTE_STRING_MODE:U,REGEXP_MODE:ie,RE_STARTERS_RE:H,SHEBANG:q,TITLE_MODE:ne,UNDERSCORE_IDENT_RE:L,UNDERSCORE_TITLE_MODE:me});function He(ee,Ne){ee.input[ee.index-1]==="."&&Ne.ignoreMatch()}function ke(ee,Ne){ee.className!==void 0&&(ee.scope=ee.className,delete ee.className)}function Oe(ee,Ne){Ne&&ee.beginKeywords&&(ee.begin="\\b("+ee.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",ee.__beforeBegin=He,ee.keywords=ee.keywords||ee.beginKeywords,delete ee.beginKeywords,ee.relevance===void 0&&(ee.relevance=0))}function ye(ee,Ne){Array.isArray(ee.illegal)&&(ee.illegal=S(...ee.illegal))}function ue(ee,Ne){if(ee.match){if(ee.begin||ee.end)throw new Error("begin & end are not supported with match");ee.begin=ee.match,delete ee.match}}function ge(ee,Ne){ee.relevance===void 0&&(ee.relevance=1)}const Ee=(ee,Ne)=>{if(!ee.beforeMatch)return;if(ee.starts)throw new Error("beforeMatch cannot be used with starts");const le=Object.assign({},ee);Object.keys(ee).forEach(Be=>{delete ee[Be]}),ee.keywords=le.keywords,ee.begin=T(le.beforeMatch,y(le.begin)),ee.starts={relevance:0,contains:[Object.assign(le,{endsParent:!0})]},ee.relevance=0,delete le.beforeMatch},Fe=["of","and","for","in","not","or","if","then","parent","list","value"],Pe="keyword";function Z(ee,Ne,le=Pe){const Be=Object.create(null);return typeof ee=="string"?ot(le,ee.split(" ")):Array.isArray(ee)?ot(le,ee):Object.keys(ee).forEach(function(yt){Object.assign(Be,Z(ee[yt],Ne,yt))}),Be;function ot(yt,Xe){Ne&&(Xe=Xe.map(et=>et.toLowerCase())),Xe.forEach(function(et){const Ye=et.split("|");Be[Ye[0]]=[yt,de(Ye[0],Ye[1])]})}}function de(ee,Ne){return Ne?Number(Ne):pe(ee)?0:1}function pe(ee){return Fe.includes(ee.toLowerCase())}const ze={},xe=ee=>{console.error(ee)},Ke=(ee,...Ne)=>{console.log(`WARN: ${ee}`,...Ne)},ae=(ee,Ne)=>{ze[`${ee}/${Ne}`]||(console.log(`Deprecated as of ${ee}. ${Ne}`),ze[`${ee}/${Ne}`]=!0)},oe=new Error;function $e(ee,Ne,{key:le}){let Be=0;const ot=ee[le],yt={},Xe={};for(let et=1;et<=Ne.length;et++)Xe[et+Be]=ot[et],yt[et+Be]=!0,Be+=C(Ne[et-1]);ee[le]=Xe,ee[le]._emit=yt,ee[le]._multi=!0}function Qe(ee){if(Array.isArray(ee.begin)){if(ee.skip||ee.excludeBegin||ee.returnBegin)throw xe("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),oe;if(typeof ee.beginScope!="object"||ee.beginScope===null)throw xe("beginScope must be object"),oe;$e(ee,ee.begin,{key:"beginScope"}),ee.begin=O(ee.begin,{joinWith:""})}}function ct(ee){if(Array.isArray(ee.end)){if(ee.skip||ee.excludeEnd||ee.returnEnd)throw xe("skip, excludeEnd, returnEnd not compatible with endScope: {}"),oe;if(typeof ee.endScope!="object"||ee.endScope===null)throw xe("endScope must be object"),oe;$e(ee,ee.end,{key:"endScope"}),ee.end=O(ee.end,{joinWith:""})}}function qt(ee){ee.scope&&typeof ee.scope=="object"&&ee.scope!==null&&(ee.beginScope=ee.scope,delete ee.scope)}function Kt(ee){qt(ee),typeof ee.beginScope=="string"&&(ee.beginScope={_wrap:ee.beginScope}),typeof ee.endScope=="string"&&(ee.endScope={_wrap:ee.endScope}),Qe(ee),ct(ee)}function it(ee){function Ne(Xe,et){return new RegExp(h(Xe),"m"+(ee.case_insensitive?"i":"")+(ee.unicodeRegex?"u":"")+(et?"g":""))}class le{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(et,Ye){Ye.position=this.position++,this.matchIndexes[this.matchAt]=Ye,this.regexes.push([Ye,et]),this.matchAt+=C(et)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const et=this.regexes.map(Ye=>Ye[1]);this.matcherRe=Ne(O(et,{joinWith:"|"}),!0),this.lastIndex=0}exec(et){this.matcherRe.lastIndex=this.lastIndex;const Ye=this.matcherRe.exec(et);if(!Ye)return null;const vt=Ye.findIndex((mr,nr)=>nr>0&&mr!==void 0),Dt=this.matchIndexes[vt];return Ye.splice(0,vt),Object.assign(Ye,Dt)}}class Be{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(et){if(this.multiRegexes[et])return this.multiRegexes[et];const Ye=new le;return this.rules.slice(et).forEach(([vt,Dt])=>Ye.addRule(vt,Dt)),Ye.compile(),this.multiRegexes[et]=Ye,Ye}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(et,Ye){this.rules.push([et,Ye]),Ye.type==="begin"&&this.count++}exec(et){const Ye=this.getMatcher(this.regexIndex);Ye.lastIndex=this.lastIndex;let vt=Ye.exec(et);if(this.resumingScanAtSamePosition()&&!(vt&&vt.index===this.lastIndex)){const Dt=this.getMatcher(0);Dt.lastIndex=this.lastIndex+1,vt=Dt.exec(et)}return vt&&(this.regexIndex+=vt.position+1,this.regexIndex===this.count&&this.considerAll()),vt}}function ot(Xe){const et=new Be;return Xe.contains.forEach(Ye=>et.addRule(Ye.begin,{rule:Ye,type:"begin"})),Xe.terminatorEnd&&et.addRule(Xe.terminatorEnd,{type:"end"}),Xe.illegal&&et.addRule(Xe.illegal,{type:"illegal"}),et}function yt(Xe,et){const Ye=Xe;if(Xe.isCompiled)return Ye;[ke,ue,Kt,Ee].forEach(Dt=>Dt(Xe,et)),ee.compilerExtensions.forEach(Dt=>Dt(Xe,et)),Xe.__beforeBegin=null,[Oe,ye,ge].forEach(Dt=>Dt(Xe,et)),Xe.isCompiled=!0;let vt=null;return typeof Xe.keywords=="object"&&Xe.keywords.$pattern&&(Xe.keywords=Object.assign({},Xe.keywords),vt=Xe.keywords.$pattern,delete Xe.keywords.$pattern),vt=vt||/\w+/,Xe.keywords&&(Xe.keywords=Z(Xe.keywords,ee.case_insensitive)),Ye.keywordPatternRe=Ne(vt,!0),et&&(Xe.begin||(Xe.begin=/\B|\b/),Ye.beginRe=Ne(Ye.begin),!Xe.end&&!Xe.endsWithParent&&(Xe.end=/\B|\b/),Xe.end&&(Ye.endRe=Ne(Ye.end)),Ye.terminatorEnd=h(Ye.end)||"",Xe.endsWithParent&&et.terminatorEnd&&(Ye.terminatorEnd+=(Xe.end?"|":"")+et.terminatorEnd)),Xe.illegal&&(Ye.illegalRe=Ne(Xe.illegal)),Xe.contains||(Xe.contains=[]),Xe.contains=[].concat(...Xe.contains.map(function(Dt){return Mt(Dt==="self"?Xe:Dt)})),Xe.contains.forEach(function(Dt){yt(Dt,Ye)}),Xe.starts&&yt(Xe.starts,et),Ye.matcher=ot(Ye),Ye}if(ee.compilerExtensions||(ee.compilerExtensions=[]),ee.contains&&ee.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return ee.classNameAliases=r(ee.classNameAliases||{}),yt(ee)}function pt(ee){return ee?ee.endsWithParent||pt(ee.starts):!1}function Mt(ee){return ee.variants&&!ee.cachedVariants&&(ee.cachedVariants=ee.variants.map(function(Ne){return r(ee,{variants:null},Ne)})),ee.cachedVariants?ee.cachedVariants:pt(ee)?r(ee,{starts:ee.starts?r(ee.starts):null}):Object.isFrozen(ee)?r(ee):ee}var _t="11.12.0";class Jt extends Error{constructor(Ne,le){super(Ne),this.name="HTMLInjectionError",this.html=le}}const dt=n,Hn=r,Wt=Symbol("nomatch"),Mn=7,$n=function(ee){const Ne=Object.create(null),le=Object.create(null),Be=[];let ot=!0;const yt="Could not find the language '{}', did you forget to load/include a language module?",Xe={disableAutodetect:!0,name:"Plain text",contains:[]};let et={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:p};function Ye(Ze){return et.noHighlightRe.test(Ze)}function vt(Ze){let xt=Ze.className+" ";xt+=Ze.parentNode?Ze.parentNode.className:"";const Xt=et.languageDetectRe.exec(xt);if(Xt){const kn=ni(Xt[1]);return kn||(Ke(yt.replace("{}",Xt[1])),Ke("Falling back to no-highlight mode for this block.",Ze)),kn?Xt[1]:"no-highlight"}return xt.split(/\s+/).find(kn=>Ye(kn)||ni(kn))}function Dt(Ze,xt,Xt){let kn="",Er="";typeof xt=="object"?(kn=Ze,Xt=xt.ignoreIllegals,Er=xt.language):(ae("10.7.0","highlight(lang, code, ...args) has been deprecated."),ae("10.7.0",`Please use highlight(code, options) instead.
442
+ ${c}`:c,attachments:o.length?o:void 0}}async function dke(e,t,n,r,i=tr){await i.call(hi.chat.send,{runId:e,text:t,attachments:n,userLocation:r})}async function dH(e,t,n,r,i=tr){await i.call(hi.chat.send,{runId:e,text:n,attachments:r,entry:t})}async function fH(e,t,n,r=tr){await r.call(hi.chat.start,{runId:e,entry:t,input:n})}const fke=(e,t,n,r=tr)=>t.action==="script"?fH(e,t.id,n,r):dH(e,t.id,uH([],t.prompt,void 0,t.skill).text,void 0,r);function pH(e,t,n=!0){const[r,i]=x.useReducer(kB,[]),[a,o]=x.useState(!1),[c,u]=x.useState(!1),[d,p]=x.useState(),h=x.useRef(t);h.current=t,x.useEffect(()=>{if(u(!1),!!n)return tr.subscribe(hi.channels.chat,{runId:e},T=>{var A;T.kind==="replay-end"&&u(!0),T.kind==="status"&&(o(T.running),p(T.startup)),(A=h.current)==null||A.call(h,T),i(T)},()=>u(!1))},[e,n]);const y=x.useCallback((T,A,S)=>dke(e,T,A,S),[e]),b=x.useCallback((T,A,S)=>dH(e,T,A,S),[e]),v=x.useCallback((T,A)=>fH(e,T,A),[e]);return{messages:r,running:a,connected:c,startup:d,send:y,startSkill:b,start:v}}const pke=Object.freeze(Object.defineProperty({__proto__:null,useChat:pH},Symbol.toStringTag,{value:"Module"}));function hke(e,t,n,r,i){var a;return{runId:e,tab:r?((a=n.find(o=>o.id===t))==null?void 0:a.label)??null:null,selection:i?{type:i.type,id:i.id}:null}}function ADe(e,t,n){const r=e!==void 0&&(n==null?void 0:n.runId)===e?n:void 0;return{page:t?"overview":e===void 0?"home":"run",runId:e??null,tab:!t&&r?r.tab:null,selection:!t&&(r!=null&&r.selection)?{type:r.selection.type,id:r.selection.id}:null}}function mke(e,t=!0,n=!1){const[r,i]=x.useState(),[a,o]=x.useState(),[c,u]=x.useState();return x.useEffect(()=>{if(i(void 0),o(void 0),u(void 0),!!t)return gke(e,i,o,n?u:void 0)},[t,n,e]),{error:a,view:r,conversations:c}}function gke(e,t,n,r){let i=!1,a=!1,o=!1;const c=async()=>{if(!i){if(a){o=!0;return}a=!0;do{o=!1;try{const h=await yB(e);if(i)return;if(r){const y=h===void 0?void 0:await xB(e);if(i)return;r(y)}t(h),n(void 0)}catch(h){if(i)return;n(h instanceof Error?h.message:String(h))}}while(o);a=!1}};c();let u;const d=()=>{i||u!==void 0||(u=window.setTimeout(()=>{u=void 0,c()},250))},p=tr.subscribe(hi.channels.run,{runId:e},h=>{i||(h.kind==="ready"&&n(void 0),d())},()=>{i||n("Der Live-Stream des Runs ist nicht erreichbar")});return()=>{i||(i=!0,u!==void 0&&window.clearTimeout(u),p())}}const sL=140,bke=["path","file_path","filePath","command","cmd","pattern","query","url","handle","title","name","body","text","message","prompt"],ph=e=>{const t=e.replace(/\s+/g," ").trim();return t.length>sL?`${t.slice(0,sL)} ...`:t},yke=e=>{for(const t of bke){const n=e[t];if(typeof n=="string"&&n.trim()!=="")return n}},hH=e=>{const t=(e.arguments??"").trim();if(t===""||t==="{}")return"";let n;try{n=JSON.parse(t)}catch{return ph(t)}if(typeof n=="string")return ph(n);if(typeof n!="object"||n===null||Array.isArray(n))return ph(t);const r=n,i=yke(r);if(i!==void 0)return ph(i);const a=Object.entries(r).filter(([,o])=>typeof o!="object"||o===null).map(([o,c])=>`${o}=${String(c)}`);return ph(a.length>0?a.join(" "):t)},mH=(e,t)=>{const n=t!==void 0&&t.trim()!==""?t:e.name,r=hH(e);return r===""?n:`${n} ${r}`},R1=e=>e.map(t=>t.tool?{...t,text:mH(t.tool,t.text)}:t),xke=Object.freeze(Object.defineProperty({__proto__:null,toolLine:mH,toolSummary:hH,withToolSummaries:R1},Symbol.toStringTag,{value:"Module"})),qu="ragents-model-defaults-changed",gH=x.createContext("server"),vke=gH.Provider,Eke=()=>x.useContext(gH),bH=Object.freeze({options:[],errors:new Map,pending:!1,set:async()=>{}}),yH=x.createContext(bH),Fw=e=>e instanceof Error?e.message:String(e),Tke=(e,t)=>e.filter(n=>n.selectable&&!n.locked&&Object.hasOwn(t,n.id)).map(n=>[n.id,t[n.id]]),_De=(e,t)=>Object.fromEntries(Object.entries(e).filter(([n])=>!t||!Object.hasOwn(t,n))),wke=(e,t)=>e.flatMap(n=>Object.hasOwn(t,n.id)?[{option:{...n,value:t[n.id],selectable:!1},fixed:!0}]:n.selectable&&!n.locked?[{option:n,fixed:!1}]:[]),Uw=(e,t)=>{if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((r,i)=>Uw(r,t[i]));if(typeof e!="object"||typeof t!="object"||e===null||t===null)return e===t;const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(r=>Object.hasOwn(t,r)&&Uw(e[r],t[r]))},xH=(e,t)=>e.filter(n=>n.chosen&&!n.locked&&Object.hasOwn(t,n.id)&&!Uw(n.value,t[n.id])),Ske=Object.freeze({});function Ake({children:e,connected:t,initialValues:n,messageCount:r,sessionId:i}){const o=$i().can("runs.create"),c=r>0,[u,d]=x.useState(()=>({sessionId:i,options:[],errors:new Map,pending:!0,loadedStarted:!1})),p=x.useRef(null),h=x.useRef(n?{sessionId:i,values:n}:null),[y,b]=x.useState(h.current!==null),v=x.useRef(null),[T,A]=x.useState(0);x.useEffect(()=>{const k=()=>A(R=>R+1);return window.addEventListener(qu,k),()=>window.removeEventListener(qu,k)},[]),x.useEffect(()=>{if(!o)return;const k=new AbortController,R={sessionId:i,pending:!0,controller:k};return p.current=R,d(O=>O.sessionId===i?{...O,pending:!0}:{sessionId:i,options:[],errors:new Map,pending:!0,loadedStarted:!1}),(async()=>{var O;try{if(((O=v.current)==null?void 0:O.sessionId)===i&&await v.current.done,k.signal.aborted)return;const N=await sw(i,k.signal);if(k.signal.aborted)return;d(D=>{const L=new Map(D.errors);return L.delete(""),{sessionId:i,options:N,errors:L,pending:!1,loadedStarted:c}})}catch(N){k.signal.aborted||d(D=>({...D,errors:new Map(D.errors).set("",Fw(N)),pending:!1}))}finally{R.pending=!1}})(),()=>{k.abort(),p.current===R&&(p.current=null)}},[o,t,i,c,T]);const S=x.useCallback(async(k,R)=>{var L;const O=p.current;if(!O||O.sessionId!==i||O.controller.signal.aborted)return;if(O.pending||((L=v.current)==null?void 0:L.sessionId)===i){d($=>({...$,errors:new Map($.errors).set(k,"Die Startoptionen werden noch geladen oder gespeichert. Bitte versuche es danach erneut.")}));return}O.pending=!0,d($=>{const P=new Map($.errors);return P.delete(k),{...$,errors:P,pending:!0}});const N=(async()=>{var P;let $=!1;try{if(await vB(i,k,R),$=!0,p.current!==O)return;const F=await sw(i,O.controller.signal);p.current===O&&d(H=>({...H,options:F}))}catch(F){((P=p.current)==null?void 0:P.sessionId)===i&&(!$||p.current===O)&&d(H=>({...H,errors:new Map(H.errors).set(k,Fw(F))}))}finally{p.current===O&&(O.pending=!1,d(F=>({...F,pending:!1})))}})(),D={sessionId:i,done:N};v.current=D;try{await N}finally{v.current===D&&(v.current=null)}},[i]);x.useEffect(()=>{const k=h.current;if(k){if(!o||k.sessionId!==i){h.current=null,b(!1);return}u.sessionId!==i||u.pending||(h.current=null,(async()=>{for(const[R,O]of Tke(u.options,k.values))await S(R,O);b(!1)})())}},[o,i,S,u]);const C=x.useMemo(()=>({options:u.sessionId===i?u.options.map(k=>({...k,locked:k.locked||c&&!u.loadedStarted})):[],errors:u.sessionId===i?u.errors:new Map,pending:u.sessionId!==i||u.pending||y,set:S}),[y,u,i,c,S]);return m.jsx(yH.Provider,{value:o?C:bH,children:e})}const Ag=()=>x.useContext(yH),vH=({disabled:e,error:t,option:n,setValue:r})=>{const i=x.useMemo(()=>{try{const a=ipe(n.presentation,n.id);return a?typeof n.value!="string"?{message:`Der Wert der Startoption ${n.id} ist keine Kennung`}:{presentation:a,value:n.value}:{message:`Die Startoption ${n.id} hat weder eine Web-Komponente noch eine Auswahl-Darstellung`}}catch(a){return{message:Fw(a)}}},[n]);return"message"in i?m.jsx("p",{className:"text-[0.75rem] text-destructive",role:"alert",children:i.message}):m.jsxs("div",{className:"flex flex-col items-start gap-2",children:[m.jsxs(Nc,{disabled:e,items:i.presentation.options,value:i.value,onValueChange:a=>{a!==null&&r(a)},children:[m.jsx(Oc,{"aria-label":i.presentation.label,size:"sm",children:m.jsx(Rc,{})}),m.jsx(Ic,{children:i.presentation.options.map(a=>m.jsx(Mc,{value:a.value,children:a.label},a.value))})]}),t&&m.jsx("p",{className:"text-[0.75rem] text-destructive",role:"alert",children:t})]})},_ke=async()=>{};function kke({conflict:e,machines:t,option:n,registry:r}){var a;const i=((a=r.startOptions.get(n.id))==null?void 0:a.Control)??vH;return m.jsx("span",{className:"contents","data-start-option-fixed":n.id,title:"Von der Vorlage festgelegt",children:m.jsx(i,{disabled:!0,error:e?"Gewählt ist ein anderer Wert; die Vorlage legt diesen fest.":void 0,machines:t,option:n,setValue:_ke})})}function Hw({disabled:e,registry:t,placement:n="page",fixed:r=Ske}){const i=$i(),a=Ag(),o=Eke(),c=a.errors.get("");if(!i.can("runs.create"))return null;const u=a.options.filter(p=>{var h;return(((h=t.startOptions.get(p.id))==null?void 0:h.placement)??"page")===n}),d=new Set(xH(u,r).map(p=>p.id));return m.jsxs(m.Fragment,{children:[n==="page"&&c&&m.jsx("p",{className:"text-[0.75rem] text-destructive",role:"alert",children:c}),wke(u,r).map(({option:p,fixed:h})=>{var b;if(h)return m.jsx(kke,{conflict:d.has(p.id),machines:o,option:p,registry:t},p.id);const y=((b=t.startOptions.get(p.id))==null?void 0:b.Control)??vH;return m.jsx(y,{disabled:e||a.pending||!i.can("runs.write"),error:a.errors.get(p.id),machines:o,option:p,setValue:v=>a.set(p.id,v)},p.id)})]})}function EH({registry:e,session:t}){const n=Ag();return m.jsx(m.Fragment,{children:n.options.map(r=>{var a;const i=(a=e.startOptions.get(r.id))==null?void 0:a.Badge;return i?m.jsx(i,{option:r,session:t},r.id):null})})}async function TH(e,t="primary",n,r=tr){const i=await r.call(hi.chat.capabilities,{runId:e,actor:t},{signal:n});if(typeof i.model!="string"||!Array.isArray(i.input)||!i.input.every(a=>typeof a=="string"))throw new Error("Ungültige Angaben zur Unterstützung für Anhänge");return{model:i.model,input:i.input}}function dC(e,t="primary",n=""){const[r,i]=x.useState(!1),a=JSON.stringify([e,t,n]),[o,c]=x.useState();return x.useEffect(()=>{if(!r)return;const u=new AbortController;return TH(e,t,u.signal).then(d=>c({key:a,capabilities:d}),d=>{u.signal.aborted||c({key:a,error:d instanceof Error?d.message:String(d)})}),()=>u.abort()},[r,t,a,e]),{attachmentCapabilities:(o==null?void 0:o.key)===a?o.capabilities:void 0,attachmentCapabilitiesError:(o==null?void 0:o.key)===a?o.error:r?"Anhänge werden geprüft ...":void 0,onAttachmentsChange:i}}const Cke=Object.freeze(Object.defineProperty({__proto__:null,getAttachmentCapabilities:TH,useAttachmentCapabilities:dC},Symbol.toStringTag,{value:"Module"}));async function Nke(e,t,n,r,i=tr){const a=await i.call(hi.prepare,{runId:e,messages:t,...r?{skillName:r}:{}},{signal:n});if(a.kind==="start"){if(!a.input||typeof a.input.text!="string"||!a.input.text.trim())throw new Error("Der vorbereitete Startauftrag fehlt.");return a}if(a.kind!=="reply"||typeof a.text!="string"||!a.text.trim())throw new Error("Die Vorbereitung hat keine Antwort geliefert.");return a}const Rke="flex min-h-0 min-w-0 flex-1 *:flex-1 max-md:[&_[data-chat=composer]]:px-2 max-md:[&_[data-chat=composer]]:pb-2",Oke="[&_[data-chat=composer]]:top-1/2 [&_[data-chat=composer]]:bottom-auto [&_[data-chat=composer]]:-translate-y-1/2 [@media(max-height:600px)]:[&_[data-chat=composer]]:top-auto [@media(max-height:600px)]:[&_[data-chat=composer]]:bottom-0 [@media(max-height:600px)]:[&_[data-chat=composer]]:translate-y-0",oL=e=>({message:e,at:new Date().toISOString()});function Ike({initialPrompt:e,entry:t,registry:n,sessionRef:r}){const i=t.skill,a=t.fixedStartOptions,[o,c]=x.useState([]),[u,d]=x.useState(),[p,h]=x.useState(),[y,b]=x.useState(e),[v,T]=x.useState(!1),A=x.useRef(null),S=x.useRef(null),C=x.useRef(!1),k=x.useRef(!1),R=uC(r.current.session.id,"preparation","coordinator"),O=Ag(),N=r.current.session.id,D=dC(N,"primary",JSON.stringify(O.options.map(({id:Y,value:V})=>[Y,V])));x.useEffect(()=>{var Y;return C.current=!0,(Y=A.current)==null||Y.focus(),()=>{var V;C.current=!1,(V=S.current)==null||V.abort()}},[]);const L=async(Y,V)=>{if(k.current)throw new Error("Die vorherige Anfrage läuft noch.");k.current=!0;const U=new AbortController;S.current=U;const W=oL({role:"user",text:Y,...V!=null&&V.length?{attachments:V}:{}}),K=[...o,W];h("preparing"),d(W);try{const te=await Nke(N,K.map(({message:I})=>I),U.signal,i);if(!C.current||U.signal.aborted)return;te.kind==="start"?(h("starting"),await r.current.send(te.input.text,te.input.attachments,t.id)):c([...K,oL({role:"assistant",text:te.text})])}catch(te){throw U.signal.aborted?new Error("Besprechung gestoppt. Deine Eingabe bleibt erhalten."):te}finally{S.current=null,k.current=!1,C.current&&(h(void 0),d(void 0))}},$=async(Y,V)=>{if(k.current)throw new Error("Die vorherige Anfrage läuft noch.");k.current=!0,h("starting");try{const U=uH(o.map(({message:W})=>W),Y,V,i);await r.current.send(U.text,U.attachments,t.id)}finally{k.current=!1,C.current&&h(void 0)}},P=[...o,...u?[u]:[]].map(({message:Y,at:V},U)=>{var W;return{key:`preparation-${U}`,role:Y.role,text:Y.text,closed:!0,at:V,attachments:(W=Y.attachments)==null?void 0:W.map(K=>({name:K.name,mediaType:K.mediaType,size:Math.floor(K.data.length*3/4)-(K.data.endsWith("==")?2:K.data.endsWith("=")?1:0),url:`data:${K.mediaType};base64,${K.data}`}))}}),F=p!==void 0||O.pending,H=xH(O.options,a??{}),q=async()=>{for(const Y of H)await O.set(Y.id,a==null?void 0:a[Y.id])};return m.jsx("section",{"aria-label":"Auftrag besprechen",className:Ie(Rke,P.length===0&&Oke),"data-preparation":P.length===0?"empty":"active",children:m.jsx(sC,{composer:m.jsxs("div",{children:[m.jsx(oC,{...D,disabled:p==="starting",sendDisabled:F,initialValue:e,onDraftChange:b,onAttachmentsChange:T,handleRef:A,rows:3,maxRows:8,running:p==="preparing",onStop:()=>{var Y;return(Y=S.current)==null?void 0:Y.abort()},onSend:L,texts:{placeholder:"Ergänzungen oder Fragen zum Auftrag ...",send:"Auftrag besprechen",stop:"Besprechung stoppen"},toolbarLeft:m.jsx(Qh,{settings:R}),toolbarRight:m.jsx(Hw,{disabled:F,fixed:a,placement:"composer",registry:n})}),H.length>0&&m.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-between gap-2.5","data-start-option-conflicts":"",role:"alert",children:[m.jsxs("span",{className:"text-[0.75rem] text-destructive",children:["Vor dem Öffnen der Vorlage war bei ",H.length===1?"einer Startoption":`${H.length} Startoptionen`," etwas anderes gewählt, als sie festlegt. So lässt sich der Run nicht erstellen."]}),m.jsx(pr,{disabled:F,size:"sm",variant:"outline",onClick:()=>{q()},children:"Werte der Vorlage übernehmen"})]}),m.jsxs("div",{className:"my-3 flex flex-wrap items-center justify-between gap-2.5",children:[m.jsx("span",{className:"text-[0.75rem] text-muted-foreground",children:'Gib im Chat Dein Go zum Starten oder wähle "Run erstellen".'}),m.jsx(pr,{disabled:F||H.length>0||!o.length&&!y.trim()&&!v,onClick:()=>{var Y;(Y=A.current)==null||Y.submit($,{allowEmpty:o.length>0})},children:p==="starting"?"Run wird erstellt ...":"Run erstellen"})]}),m.jsx("div",{"aria-label":"Startoptionen",className:"flex flex-wrap items-center gap-x-3 gap-y-2 empty:hidden",children:m.jsx(Hw,{disabled:F,fixed:a,registry:n})})]}),children:P.length>0&&m.jsx(aC,{detailMode:R.detailMode,messages:P,running:p==="preparing",showTimestamps:R.showTimestamps,stepsExpandable:R.stepsExpandable})})})}const Mke={category:"Ohne Vorlage",title:"Neuer Chat",description:"Leerer Run, der Auftrag entsteht im Chat."},Dke="flex items-baseline gap-2 text-[0.66rem] font-bold uppercase tracking-[0.06em] text-muted-foreground",Lke="font-mono text-[0.62rem] font-normal tracking-normal opacity-80",Pke="group/tile flex h-full w-full min-w-0 flex-col gap-1.5 rounded-[12px] border border-border-soft bg-card p-2.5 text-left [--tone:var(--primary)] enabled:hover:border-border enabled:hover:bg-accent/40 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring/60 disabled:opacity-60",lL=e=>e.kind==="skill"?m.jsx(AW,{"aria-hidden":!0,className:"size-3.5"}):m.jsx(OW,{"aria-hidden":!0,className:"size-3.5"});function jke({title:e,count:t,children:n}){return m.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[m.jsxs("h2",{className:Dke,children:[e,t!==void 0&&m.jsx("span",{className:Lke,children:t})]}),n]})}function YT({category:e,title:t,description:n,icon:r,standard:i,guided:a,disabled:o,onClick:c}){return m.jsx("li",{className:"min-w-0",children:m.jsxs("button",{className:Pke,disabled:o,onClick:c,title:t,type:"button",children:[m.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 text-(--tone)",children:[r,m.jsx("span",{className:"truncate text-[0.58rem] font-semibold uppercase tracking-[0.06em] text-muted-foreground",children:e}),i&&m.jsx("span",{className:"ml-auto flex-none rounded-sm border border-current px-1 text-[0.52rem] font-semibold uppercase tracking-[0.06em] leading-[1.5] opacity-70",children:"Standard"})]}),m.jsx("span",{className:"text-[0.76rem] font-semibold leading-snug [overflow-wrap:anywhere]",children:t}),m.jsx("span",{className:"line-clamp-2 text-[0.66rem] leading-[1.45] text-muted-foreground",children:n}),m.jsxs("span",{className:"mt-auto flex items-center gap-0.5 pt-1.5 text-[0.62rem] font-semibold text-(--tone) opacity-50 group-enabled/tile:group-hover/tile:opacity-100",children:[a?"Einrichten":"Starten",m.jsx(Y1,{"aria-hidden":!0,className:"size-3"})]})]})})}const $ke=(e,t,n)=>e.length+(t===void 0&&n?1:0);function Bke({entries:e,defaultEntry:t,label:n,disabled:r=!1,onNewChat:i,onStart:a}){const o=e.find(u=>u.id===t),c=e.filter(u=>u.id!==t);return m.jsxs("ul",{"aria-label":n,className:"grid grid-cols-[repeat(auto-fill,minmax(182px,1fr))] gap-2",children:[o?m.jsx(YT,{category:o.category,description:o.description,disabled:r,guided:o.guided,icon:lL(o),onClick:()=>a(o.id),standard:!0,title:o.title}):i&&m.jsx(YT,{...Mke,disabled:r,icon:m.jsx(IP,{"aria-hidden":!0,className:"size-3.5"}),onClick:i}),c.map(u=>m.jsx(YT,{category:u.category,description:u.description,disabled:r,guided:u.guided,icon:lL(u),onClick:()=>a(u.id),title:u.title},u.id))]})}const zke=(e,t,n)=>({id:e.id,title:e.title,description:e.description,kind:e.action,category:e.category??(n?"Run-Scripts":"Abläufe"),...t?{guided:!0}:{}});function Fke({registry:e,session:t,initialEntryId:n,onOpen:r}){const i=$i(),a=Spe(),[o,c]=x.useState(),[u,d]=x.useState(!1),p=x.useRef(!1),h=x.useRef(!1),y=x.useRef(t);y.current=t;const b=Ag(),v=u||b.pending,T=i.can("runs.inspect"),A=i.can("runs.create"),S=e.startEntries.filter(N=>bT(i,N.id)&&(N.action==="script"||A)),C=S.map(N=>zke(N,e.guideFor(N)!==void 0,T)),k=S.some(N=>N.id===e.defaultStartEntry)?e.defaultStartEntry:void 0,R=x.useCallback(async(N,D)=>{if(!(p.current||!bT(i,N.id))){p.current=!0,d(!0),c(void 0);try{await fke(y.current.session.id,N,D),r()}catch(L){c(`${N.title}: ${L instanceof Error?L.message:String(L)}`)}finally{p.current=!1,d(!1)}}},[i,r]),O=x.useCallback(N=>{const D=e.startEntries.find(L=>L.id===N);if(!D||!bT(i,D.id)){c("Diese Vorlage ist im aktuellen Profil nicht verfügbar.");return}Uke(D,e,a,y,R)},[i,R,a,e]);return x.useEffect(()=>{!n||v||h.current||(h.current=!0,O(n))},[v,n,O]),m.jsx("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col overflow-auto px-10 pt-6 pb-5 max-md:px-3 max-md:pt-11 max-md:pb-4",children:m.jsxs("section",{"aria-label":"Startauswahl",className:"mx-auto grid w-full max-w-composer grid-cols-1 gap-1.5",children:[m.jsx(jke,{count:$ke(C,k,A),title:"Neu"}),o&&m.jsx("p",{className:"text-[0.8rem] text-destructive",role:"alert",children:o}),C.length===0&&!A?m.jsx("p",{className:"text-[0.75rem] text-muted-foreground",role:"status",children:"Für dieses Benutzerkonto ist keine Vorlage freigegeben."}):m.jsx(Bke,{defaultEntry:k,disabled:v,entries:C,label:"Vorlagen",onNewChat:A?r:void 0,onStart:O})]})})}function Uke(e,t,n,r,i){const a=t.guideFor(e);if(!a){i(e,null);return}let o=!1;n.open({title:e.title,subtitle:e.description,render:c=>m.jsx(a.Guide,{entry:e,session:r.current,onCancel:c.back,onComplete:u=>{if(o)return;if(e.action==="script"){o=!0,c.back(),i(e,u);return}if(typeof u!="string"||!u.trim())throw new Error(`Der Leitfaden für ${e.title} muss einen nicht leeren Auftrag liefern.`);const d=u;o=!0,c.back(),n.open({title:"Auftrag vorbereiten",subtitle:e.title,render:()=>m.jsx(Ike,{entry:e,initialPrompt:d,registry:t,sessionRef:r})})}})})}function Hke(e){const t=`ragents.workspacePanelState:${encodeURIComponent(e)}`,[n,r]=x.useState(()=>localStorage.getItem(t)==="collapsed"?"collapsed":"expanded"),i=x.useCallback(a=>{localStorage.setItem(t,a),r(a)},[t]);return[n,i]}const qke="flex min-h-9 min-w-9 flex-shrink-0 cursor-pointer items-center justify-center gap-1.5 rounded-lg px-[7px] py-[5px] text-[0.72rem] [&_[data-slot=badge]]:size-[5px] [&_[data-slot=badge]]:min-w-[5px] [&_[data-slot=badge]]:border-0 [&_[data-slot=badge]]:bg-current [&_[data-slot=badge]]:p-0 [&_[data-slot=badge]]:text-[0px]",Vke=560,a0=360,hh=960;function Gke(e){const t=`ragents.workspacePanelWidth:${encodeURIComponent(e.session.session.id)}`,n=x.useRef(null),[r,i]=x.useState([]),a=x.useRef(void 0),[o,c]=x.useState(()=>{const $=Number(localStorage.getItem(t));return $>=a0&&$<=hh?$:Vke}),[u,d]=x.useState({min:a0,max:hh}),p=x.useRef(o),h=e.state==="collapsed",y=e.tabs,b=y.find($=>$.id===e.navigation.activeTabId)??y[0],v=b==null?void 0:b.id,T=h?"Leiste aufklappen":"Leiste einklappen";x.useLayoutEffect(()=>{var q;const $=n.current,P=(q=e.headerContainer)==null?void 0:q.parentElement;if(!$||!P)return;const F=()=>P.style.setProperty("--workspace-panel-width",`${$.getBoundingClientRect().width}px`),H=new ResizeObserver(F);return H.observe($),F(),()=>{H.disconnect(),P.style.removeProperty("--workspace-panel-width")}},[e.headerContainer]),x.useEffect(()=>{v!==void 0&&i($=>$.includes(v)?$:[...$,v])},[v]),x.useEffect(()=>{var H;const $=(H=n.current)==null?void 0:H.parentElement;if(!$)return;const P=()=>{const q=A($.clientWidth);d(Y=>Y.min===q.min&&Y.max===q.max?Y:q)},F=new ResizeObserver(P);return F.observe($),P(),()=>F.disconnect()},[]),x.useEffect(()=>()=>{var $;return($=a.current)==null?void 0:$.call(a)},[]),x.useEffect(()=>{var $;h&&(($=a.current)==null||$.call(a))},[h]);const A=$=>{const P=$<=960?52:360,F=Math.min(hh,Math.max(0,$-P));return{min:Math.min(a0,F),max:F}},S=()=>{var P,F;const $=((F=(P=n.current)==null?void 0:P.parentElement)==null?void 0:F.clientWidth)??hh;return A($).max},C=$=>{var H,q;const P=((q=(H=n.current)==null?void 0:H.parentElement)==null?void 0:q.clientWidth)??hh,F=A(P);return Math.min(F.max,Math.max(F.min,$))},k=$=>{var P;(P=n.current)==null||P.style.setProperty("--workspace-panel-width",`${$}px`)},R=$=>{p.current=$,c($),localStorage.setItem(t,String($))},O=$=>{var G;$.preventDefault(),(G=a.current)==null||G.call(a);const P=n.current,F=P==null?void 0:P.parentElement,H=$.currentTarget,q=$.clientX,Y=(P==null?void 0:P.getBoundingClientRect().width)??p.current;let V=Y,U,W=!0;F==null||F.setAttribute("data-resizing","true"),H.setPointerCapture($.pointerId);function K(){W&&(W=!1,U!==void 0&&cancelAnimationFrame(U),window.removeEventListener("pointermove",te),window.removeEventListener("pointerup",I),window.removeEventListener("pointercancel",z),F==null||F.removeAttribute("data-resizing"),H.hasPointerCapture($.pointerId)&&H.releasePointerCapture($.pointerId),a.current=void 0)}function te(B){B.pointerId===$.pointerId&&(V=C(Y+q-B.clientX),U===void 0&&(U=requestAnimationFrame(()=>{U=void 0,k(V),H.setAttribute("aria-valuenow",String(Math.round(V))),H.setAttribute("aria-valuetext",`${Math.round(V)} Pixel`)})))}function I(B){B.pointerId===$.pointerId&&(V=C(Y+q-B.clientX),K(),k(V),R(V))}function z(B){if(B&&B.pointerId!==$.pointerId)return;K(),k(p.current);const J=C(p.current);H.setAttribute("aria-valuenow",String(Math.round(J))),H.setAttribute("aria-valuetext",`${Math.round(J)} Pixel`)}window.addEventListener("pointermove",te),window.addEventListener("pointerup",I),window.addEventListener("pointercancel",z),a.current=z},N=$=>{var H;const P=((H=n.current)==null?void 0:H.getBoundingClientRect().width)??p.current,F=$.key==="ArrowLeft"?C(P+16):$.key==="ArrowRight"?C(P-16):$.key==="Home"?C(a0):$.key==="End"?S():void 0;F!==void 0&&($.preventDefault(),k(F),R(F))},D=Math.min(u.max,Math.max(u.min,o)),L=u.max>u.min;return m.jsxs("aside",{"aria-label":"Leiste",className:Ie("relative z-20 flex min-h-0 min-w-0 flex-col @max-[960px]/chat-content:absolute @max-[960px]/chat-content:inset-y-0 @max-[960px]/chat-content:right-0 @max-[960px]/chat-content:left-auto",h?"w-0 max-w-0 flex-[0_0_0]":"w-[var(--workspace-panel-width,560px)] max-w-[calc(100%-360px)] flex-[0_0_var(--workspace-panel-width,560px)] border-l border-border-strong bg-shell shadow-workspace @max-[960px]/chat-content:w-[min(var(--workspace-panel-width,560px),calc(100%-var(--spacing-header)))] @max-[960px]/chat-content:max-w-none @max-[960px]/chat-content:flex-none"),id:"workspace-panel",ref:n,style:{"--workspace-panel-width":`${o}px`},children:[!h&&m.jsx("div",{"aria-controls":"workspace-panel","aria-disabled":!L,"aria-label":"Breite der Leiste","aria-orientation":"vertical","aria-valuemax":Math.round(u.max),"aria-valuemin":Math.round(u.min),"aria-valuenow":Math.round(D),"aria-valuetext":`${Math.round(D)} Pixel`,className:Ie("absolute inset-y-0 right-auto -left-1 z-30 w-2 touch-none",L?"cursor-col-resize after:absolute after:top-[calc(50%-18px)] after:left-[3px] after:h-9 after:w-[3px] after:rounded-[3px] after:bg-border-strong after:content-[''] hover:bg-primary/25 in-data-[resizing=true]:bg-primary/25 focus-visible:outline-2 focus-visible:outline-primary/58 focus-visible:outline-offset-2":"cursor-default"),onKeyDown:L?N:void 0,onPointerDown:L?O:void 0,role:"separator",tabIndex:L?0:-1,title:"Breite ziehen"}),e.headerContainer&&ei.createPortal(m.jsx(uA,{children:m.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden pr-[7px] pl-[9px]","data-workspace-state":e.state,children:[m.jsx("nav",{"aria-label":"Leiste",className:"flex min-w-0 flex-1 flex-nowrap gap-[3px] overflow-x-auto no-scrollbar",hidden:h,role:"tablist",children:y.map($=>m.jsxs(e1,{children:[m.jsxs(t1,{"aria-label":$.label,"aria-controls":"workspace-panel-content","aria-selected":(b==null?void 0:b.id)===$.id,className:Ie(qke,(b==null?void 0:b.id)===$.id?"bg-accent text-primary":"text-muted-foreground hover:bg-foreground/6 hover:text-foreground"),onClick:()=>e.navigation.openTab($.id),role:"tab",type:"button",children:[m.jsx($.Icon,{}),e.pendingTabIds.includes($.id)?m.jsx("span",{"aria-hidden":!0,className:"size-1.5 flex-none rounded-full bg-primary"}):$.Badge&&m.jsx($.Badge,{active:(b==null?void 0:b.id)===$.id,navigation:e.navigation,selection:e.navigation.selectionFor($.id),session:e.session})]}),m.jsx(n1,{side:"bottom",children:e.pendingTabIds.includes($.id)?`${$.label} - es gibt Neues`:$.label})]},$.id))}),m.jsxs(e1,{children:[m.jsx(t1,{"aria-controls":"workspace-panel-content","aria-expanded":!h,"aria-label":T,className:"relative flex-shrink-0",onClick:e.onToggleState,render:m.jsx(pr,{size:"icon-lg",variant:"ghost"}),children:m.jsx(Kke,{state:e.state})}),m.jsx(n1,{side:"bottom",children:T})]})]})}),e.headerContainer),m.jsx("div",{className:"relative min-h-0 flex-1 overflow-hidden",hidden:h,inert:h,id:"workspace-panel-content",children:wH(y,v,r).map($=>m.jsx("div",{className:Ie("absolute inset-0 flex min-h-0 flex-col",$.id!==v&&"pointer-events-none invisible"),children:m.jsx($.Panel,{active:!h&&$.id===v,navigation:e.navigation,selection:e.navigation.selectionFor($.id),session:e.session})},$.id))})]})}const wH=(e,t,n)=>e.filter(r=>r.id===t||r.keepMounted===!0&&n.includes(r.id));function Kke({state:e}){return m.jsxs("svg",{"aria-hidden":!0,fill:"none",height:"22",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.8",viewBox:"0 0 24 24",width:"22",children:[m.jsx("rect",{height:"16",rx:"2",width:"18",x:"3",y:"4"}),m.jsx("path",{d:"M16 4v16"}),e==="collapsed"&&m.jsx("path",{d:"m13 8-4 4 4 4"}),e==="expanded"&&m.jsx("path",{d:"m7 8 4 4-4 4"})]})}function SH({children:e,container:t,label:n,order:r}){return t?ei.createPortal(m.jsx("div",{"aria-label":n,className:"relative z-[70] flex h-full min-w-0 flex-none items-stretch after:pointer-events-none after:absolute after:top-1.5 after:right-0 after:bottom-1.5 after:w-px after:bg-muted-foreground after:opacity-45 after:content-['']",role:"group",style:{order:r},children:e}),t):null}const Yke=Object.freeze(Object.defineProperty({__proto__:null,StatusGroup:SH},Symbol.toStringTag,{value:"Module"}));function Wke({children:e}){const t=x.useRef(null),n=x.useRef(null),r=x.useRef(null),i=x.useId(),[a,o]=x.useState({overflow:!1,left:!1,right:!1});x.useEffect(()=>{const u=t.current,d=n.current,p=r.current,h=()=>{const v={overflow:p.scrollWidth>u.clientWidth+1,left:d.scrollLeft>1,right:d.scrollLeft+d.clientWidth<d.scrollWidth-1};o(T=>T.overflow===v.overflow&&T.left===v.left&&T.right===v.right?T:v)},y=v=>{if(v.defaultPrevented||v.ctrlKey||d.scrollWidth<=d.clientWidth+1||v.target instanceof Element&&v.target.closest("[data-surface-scroll]"))return;v.preventDefault();const T=Math.abs(v.deltaX)>Math.abs(v.deltaY)?v.deltaX:v.deltaY,A=v.deltaMode===WheelEvent.DOM_DELTA_LINE?16:v.deltaMode===WheelEvent.DOM_DELTA_PAGE?d.clientWidth:1;d.scrollLeft+=T*A},b=new ResizeObserver(h);return b.observe(u),b.observe(d),b.observe(p),d.addEventListener("scroll",h),d.addEventListener("wheel",y,{passive:!1}),h(),()=>{b.disconnect(),d.removeEventListener("scroll",h),d.removeEventListener("wheel",y)}},[]);const c=u=>{const d=n.current,p=Array.from(r.current.children).find(y=>y.getBoundingClientRect().width>0),h=p?p.getBoundingClientRect().width:d.clientWidth/3;d.scrollBy({left:u*h,behavior:window.matchMedia("(prefers-reduced-motion: reduce)").matches?"instant":"smooth"})};return m.jsxs("div",{className:"flex min-w-0 flex-1",ref:t,children:[a.overflow&&m.jsx(js,{as:"button","aria-controls":i,"aria-label":"Apps und Actors nach links",className:"w-8 justify-center px-0",disabled:!a.left,onClick:()=>c(-1),title:"Nach links blättern",type:"button",children:m.jsx(wI,{size:18})}),m.jsx("div",{"aria-label":"Apps und Actors durchblättern",className:"flex min-w-0 flex-1 items-stretch overflow-x-auto no-scrollbar focus-visible:outline-2 focus-visible:outline-ring/60 focus-visible:-outline-offset-3",id:i,ref:n,role:"group",tabIndex:0,children:m.jsx("div",{className:"flex w-max flex-none items-stretch",ref:r,children:e})}),a.overflow&&m.jsx(js,{as:"button","aria-controls":i,"aria-label":"Apps und Actors nach rechts",className:"w-8 justify-center border-r-0 border-l border-border px-0 [&>svg]:rotate-180",disabled:!a.right,onClick:()=>c(1),title:"Nach rechts blättern",type:"button",children:m.jsx(wI,{size:18})})]})}const Xke="flex h-[30px] min-w-0 flex-1 cursor-pointer items-center gap-2 self-center rounded-md px-1.5 text-left hover:bg-accent aria-expanded:bg-accent focus-visible:outline-2 focus-visible:outline-ring/60 focus-visible:-outline-offset-2";function Qke({attention:e,contributions:t,navigation:n,registry:r,runError:i,session:a,working:o}){const[c,u]=x.useState(!1),d=x.useRef(null),p=x.useId(),h=a.session.title||"Neuer Run",y=b=>{var v;return b.reason==="outside-press"&&b.event.target instanceof Node&&((v=d.current)==null?void 0:v.contains(b.event.target))===!0};return m.jsxs("div",{className:"flex min-w-0 flex-1 items-stretch",children:[m.jsxs("button",{"aria-controls":c?p:void 0,"aria-expanded":c,"aria-haspopup":"dialog",className:Xke,onClick:()=>u(b=>!b),ref:d,title:`${h}. Klick zeigt die Run-Details`,type:"button",children:[m.jsx("strong",{className:"min-w-0 truncate text-[0.82rem] font-semibold",children:h}),o&&m.jsx("span",{"aria-label":"Bearbeitung läuft",className:"size-1.5 flex-none rounded-full bg-primary animate-fade-pulse motion-reduce:animate-none",role:"status"}),i&&m.jsx("span",{className:"flex-none text-[0.68rem] font-medium text-destructive",title:i,children:"Run nicht erreichbar"}),e&&m.jsx("span",{className:"flex-none truncate rounded-full bg-primary/10 px-2 py-0.5 text-[0.66rem] font-semibold text-primary",role:"status",children:e.label}),m.jsx($m,{"aria-hidden":!0,className:"size-3.5 flex-none text-muted-foreground"})]}),m.jsx(eA,{onOpenChange:(b,v)=>{!b&&y(v)||u(b)},open:c,children:m.jsx(tA,{align:"start",anchor:d,"aria-label":"Run-Details",className:"max-h-[70vh] w-[calc(100vw-16px)] gap-0 overflow-auto rounded-md p-0 text-[0.76rem]",collisionPadding:8,dim:!0,id:p,role:"dialog",side:"bottom",children:m.jsxs("div",{className:"flex flex-wrap items-stretch [&>*]:border-b [&>*]:border-border-soft",children:[r.sessionMetadata.map(({id:b,Metadata:v})=>m.jsx(v,{placement:"header",session:a.session},b)),m.jsx(EH,{registry:r,session:a}),t.map(({id:b,Header:v})=>m.jsx(v,{navigation:n,session:a},b))]})})})]})}const AH="run-panel-workspace",Zke=Object.freeze({tab:null}),_H=e=>`ragents.run-panel.workspace-tab:${e}`;function Jke(e){if(e===null)return Zke;const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).some(n=>n!=="tab")||!("tab"in t)||!(t.tab===null||typeof t.tab=="string"))throw new Error("Der gespeicherte Zustand der Leiste ist ungültig.");return t}const eCe=(e,t)=>e.tab!==null&&t.some(n=>n.id===e.tab)?e.tab:"",kH=Ix({changeEvent:"ragents-run-panel-workspace-change",matchesKey:e=>e.startsWith("ragents.run-panel.workspace-tab:"),parse:Jke,serialize:JSON.stringify});function tCe(e){return kH.useValue(_H(e))}function cL(e,t){kH.save(_H(e),t)}const nCe="relative aria-pressed:bg-accent aria-pressed:text-primary [&_[data-slot=badge]]:absolute [&_[data-slot=badge]]:-top-0.5 [&_[data-slot=badge]]:-right-0.5 [&_[data-slot=badge]]:h-3.5 [&_[data-slot=badge]]:min-w-3.5 [&_[data-slot=badge]]:px-1 [&_[data-slot=badge]]:py-0 [&_[data-slot=badge]]:text-[0.58rem] [&_[data-slot=badge]]:leading-none";function rCe({navigation:e,onClose:t,open:n,pendingTabIds:r,session:i,tabs:a}){return m.jsx(uA,{children:m.jsx("nav",{"aria-label":"Reiter der Leiste",className:"flex w-9 flex-none flex-col items-center gap-1 border-l border-border bg-shell py-1.5",children:a.map(o=>{const c=n&&o.id===e.activeTabId,u=r.includes(o.id);return m.jsxs(e1,{children:[m.jsxs(t1,{"aria-controls":AH,"aria-label":o.label,"aria-pressed":c,className:nCe,onClick:()=>c?t():e.openTab(o.id),render:m.jsx(pr,{size:"icon",variant:"ghost"}),children:[m.jsx(o.Icon,{}),o.Badge&&m.jsx(o.Badge,{active:c,navigation:e,selection:e.selectionFor(o.id),session:i}),u&&m.jsx("span",{"aria-hidden":!0,className:"absolute right-1 bottom-1 size-1.5 rounded-full bg-primary"})]}),m.jsx(n1,{side:"left",sideOffset:8,children:u?`${o.label} - es gibt Neues`:o.label})]},o.id)})})})}function iCe({navigation:e,onClose:t,open:n,session:r,tabs:i}){const a=x.useRef(null),[o,c]=x.useState([]),u=n?e.activeTabId:void 0,d=i.find(p=>p.id===u);return x.useEffect(()=>{if(u===void 0)return;c(h=>h.includes(u)?h:[...h,u]);const p=a.current;p&&!p.contains(document.activeElement)&&p.focus({preventScroll:!0})},[u]),m.jsxs(m.Fragment,{children:[n&&m.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 z-[60] bg-backdrop duration-200 animate-in fade-in-0",onClick:t}),m.jsxs("section",{"aria-label":"Leiste",className:"absolute inset-2 z-[70] flex flex-col overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 animate-in fade-in-0 zoom-in-95 @min-[960px]/chat-content:left-[40%]",hidden:!n,id:AH,inert:!n,onKeyDown:p=>{p.key!=="Escape"||p.defaultPrevented||(p.preventDefault(),t())},ref:a,tabIndex:-1,children:[m.jsxs("header",{className:"flex h-8 flex-none items-center gap-2 border-b border-border px-2.5",children:[m.jsx("h2",{className:"min-w-0 flex-1 truncate text-[0.76rem] font-semibold",children:d==null?void 0:d.label}),m.jsx(pr,{"aria-label":"Leiste schließen",onClick:t,size:"icon-xs",title:"Leiste schließen",variant:"ghost",children:m.jsx(Gf,{})})]}),m.jsx("div",{className:"relative min-h-0 flex-1 overflow-hidden",children:wH(i,u,o).map(p=>m.jsx("div",{className:Ie("absolute inset-0 flex min-h-0 flex-col",p.id!==u&&"pointer-events-none invisible"),children:m.jsx(p.Panel,{active:p.id===u,navigation:e,selection:e.selectionFor(p.id),session:r})},p.id))})]})]})}const aCe="flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden rounded-lg border border-border-soft/60 bg-card/55";function kDe({autoFocusChat:e,onAutoFocusChatSettled:t,layout:n="workspace",headerContainer:r,toolbarContainer:i,workspaceHeaderContainer:a,statusContainer:o,initialStartOptions:c,onStarted:u,onLocationChange:d,onViewed:p,viewing:h=!1,registry:y,session:b,startDialog:v}){const T=$i(),A=v!==void 0,[S,C]=x.useState(null),[k,R]=x.useState(null),[O,N]=x.useState([]),D=x.useCallback(Ee=>{if(Ee.kind==="reset"&&N([]),Ee.kind!=="plugin")return;const{pluginId:Fe,type:Pe,payload:Z,at:de}=Ee;N(pe=>[...pe,{pluginId:Fe,type:Pe,payload:Z,at:de}])},[]),{messages:L,running:$,connected:P,startup:F,send:H,startSkill:q,start:Y}=pH(b.id,D,!A),V=x.useCallback((Ee,Fe,Pe)=>Pe===void 0?H(Ee,Fe):q(Pe,Ee,Fe),[H,q]),U=mke(b.id,A||y.needsRunView||p!==void 0,!A);x.useEffect(()=>{const Ee=U.view;if(!h||!p||U.error||!bn(Ee)||Ee.id!==b.id||typeof Ee.revision!="number")return;const Fe=Ee.revision,Pe=()=>{document.visibilityState==="visible"&&p(b.id,Fe)};return Pe(),document.addEventListener("visibilitychange",Pe),()=>document.removeEventListener("visibilitychange",Pe)},[h,p,U.view,U.error,b.id]);const W=x.useRef(!1),K=x.useRef(!1);x.useEffect(()=>(K.current=!0,()=>{K.current=!1}),[]);const te=x.useCallback(()=>{!K.current||W.current||(W.current=!0,u==null||u())},[u]),I=U.view!==void 0;x.useEffect(()=>{A&&I&&te()},[te,I,A]);const[z,G]=x.useState({}),[B,J]=x.useState([]),ie=x.useRef(new Set),ne=x.useMemo(()=>({connected:P,pluginEvents:O,messages:L,actorConversations:U.conversations,conversationError:U.error,runView:U.view,running:$,startup:F,send:V,session:b,start:Y}),[P,O,L,U.view,U.conversations,U.error,$,F,V,b,Y]),me=x.useMemo(()=>y.registeredTabs(ne,T),[T,y,ne]),he=x.useMemo(()=>y.availableTabs(ne,T),[T,y,ne]),{activeTabId:ve,panelState:Le,showTab:He,togglePanel:ke}=sCe(b.id,n,he),Oe=x.useCallback((Ee,Fe)=>{if(!me.some(Pe=>Pe.id===Ee))throw new Error("Reiter der Leiste ist nicht registriert: "+Ee);Fe!==void 0&&G(Pe=>({...Pe,[Ee]:Fe})),He(Ee)},[me,He]),ye=x.useCallback(Ee=>z[Ee],[z]),ue=x.useCallback(Ee=>{const Fe=y.targetForEntity(Ee,ne);return!Fe||!me.some(Pe=>Pe.id===Fe.tabId)?!1:(Oe(Fe.tabId,Fe.selection),!0)},[Oe,me,y,ne]),ge=x.useMemo(()=>({activeTabId:ve,openTab:Oe,revealEntity:ue,selectionFor:ye}),[ve,Oe,ue,ye]);return x.useEffect(()=>{var Fe,Pe;const Ee=[];for(const Z of L){const de=Z.tool;if(!de||ie.current.has(de.id))continue;const pe=(Pe=(Fe=y.presenterFor(de))==null?void 0:Fe.reveal)==null?void 0:Pe.call(Fe,de,ne);pe&&Ee.push({callId:de.id,tabId:pe.tabId})}for(const Z of Ee)ie.current.add(Z.callId);Ee.length!==0&&J(Z=>{const de=Ee.map(pe=>pe.tabId).filter(pe=>pe!==ve&&!Z.includes(pe));return de.length===0?Z:[...new Set([...Z,...de])]})},[ve,L,y,ne]),x.useEffect(()=>{J(Ee=>Ee.includes(ve)?Ee.filter(Fe=>Fe!==ve):Ee)},[ve]),m.jsx(FS.Provider,{value:A?null:S,children:m.jsx(US.Provider,{value:A?null:k,children:m.jsx(eH,{policy:y.chatDisplayPolicy,children:m.jsx(Ake,{connected:P,initialValues:c,messageCount:L.length,sessionId:b.id,children:m.jsxs(cH,{navigation:ge,registry:y,session:ne,children:[!A&&d&&m.jsx(oCe,{activeTabId:ge.activeTabId,onChange:d,panelVisible:Le==="expanded",runId:b.id,tabs:he}),m.jsx(lCe,{autoFocusChat:e,onAutoFocusChatSettled:t,layout:n,toolbarContainer:i,panelState:Le,onTogglePanel:ke,headerContainer:r,workspaceHeaderContainer:a,statusContainer:o,onModalContainer:C,onSurfaceModalContainer:R,onStarted:te,startDialog:v,navigation:ge,pendingTabIds:B,registry:y,runError:U.error,session:ne,tabs:he})]})})})})})}function sCe(e,t,n){var v,T;const[r,i]=x.useState(),[a,o]=Hke(e),c=tCe(e),u=t==="panel",d=u?eCe(c,n):r!==void 0&&n.some(A=>A.id===r)?r:((v=n[0])==null?void 0:v.id)??"",p=u?d===""?"collapsed":"expanded":a,h=((T=n[0])==null?void 0:T.id)??null,y=x.useCallback(A=>{if(u){cL(e,{...c,tab:A});return}i(A),o("expanded")},[e,u,c,o]),b=x.useCallback(()=>{if(u){cL(e,{...c,tab:p==="expanded"?null:c.tab??h});return}o(p==="expanded"?"collapsed":"expanded")},[h,p,e,u,c,o]);return{activeTabId:d,panelState:p,showTab:y,togglePanel:b}}function oCe({activeTabId:e,onChange:t,panelVisible:n,runId:r,tabs:i}){const a=iH(),o=hke(r,e,i,n,a==null?void 0:a.selection),{tab:c,selection:u}=o,d=u==null?void 0:u.type,p=u==null?void 0:u.id;return x.useLayoutEffect(()=>{t({runId:r,tab:c,selection:d!==void 0&&p!==void 0?{type:d,id:p}:null})},[t,r,c,d,p]),null}function lCe({autoFocusChat:e,onAutoFocusChatSettled:t,layout:n,toolbarContainer:r=null,panelState:i,onTogglePanel:a,headerContainer:o,workspaceHeaderContainer:c,statusContainer:u=null,onModalContainer:d,onSurfaceModalContainer:p,onStarted:h,startDialog:y,navigation:b,pendingTabIds:v,registry:T,runError:A,session:S,tabs:C}){var te,I;const k=$i(),[R,O]=x.useState(null),N=T.headersFor(S,k,"header"),D=T.headersFor(S,k,"surface"),L=x.useMemo(()=>{const z=async G=>{await G(),h()};return{...S,send:(G,B,J)=>z(()=>S.send(G,B,J)),start:(G,B)=>z(()=>S.start(G,B))}},[h,S]),$=T.attention.map(z=>z.assess(S)).find(z=>z!==void 0),P=$!==void 0;x.useEffect(()=>{if(!P)return;const z=document.title;return document.title="● "+z,()=>{document.title=z}},[P]);const F=!y&&C.length>0,H=(te=T.surface)==null?void 0:te.Center,q=(I=T.surface)==null?void 0:I.RunPanel,Y=x.useCallback(z=>{d(z),p(z)},[p,d]),V=sH(),U=(z={})=>m.jsx(uCe,{autoFocus:e,onAutoFocusSettled:t,options:z,registry:T,renderTool:V,session:S});if(y)return m.jsxs(Ape,{className:"gap-0 p-0 [&_[data-slot=dialog-body]:has([data-preparation])]:overflow-hidden",nextBehavior:"push",onClose:y.onClose,scope:"page",showCloseButton:!0,size:"full",children:[m.jsx(Qm,{className:"sr-only",children:"Neuer Run"}),m.jsx(Fke,{registry:T,session:L,initialEntryId:y.initialEntryId,onOpen:h})]});const W=T.sessionStatus.filter(z=>!z.readRight||k.can(z.readRight)).map(({id:z,order:G,Status:B})=>m.jsx(SH,{container:u,label:"Run-Aktionen",order:G,children:m.jsx(B,{navigation:b,session:S})},z)),K=o&&ei.createPortal(n==="panel"?m.jsx(Qke,{attention:$,contributions:N,navigation:b,registry:T,runError:A,session:S,working:S.running}):m.jsxs("div",{className:"flex min-w-0 flex-[1_0_auto] items-stretch",children:[m.jsxs("div",{className:"flex min-w-0 flex-none items-stretch text-[0.82rem] font-semibold text-foreground",children:[m.jsx(js,{className:"min-w-[140px] max-w-[260px] justify-start font-semibold max-md:min-w-[120px] max-md:max-w-[180px]",title:S.session.title,children:m.jsx(yc,{children:S.session.title||"Neuer Run"})}),T.sessionMetadata.map(({id:z,Metadata:G})=>m.jsx(G,{placement:"header",session:S.session},z)),m.jsx(EH,{registry:T,session:S}),S.running&&m.jsxs(js,{className:"text-[0.72rem] font-normal text-muted-foreground",children:[m.jsx(qc,{"aria-hidden":!0,className:"size-2.5"}),m.jsx(yc,{children:"Bearbeitung läuft"})]}),A&&m.jsx(js,{className:"text-[0.72rem] font-medium text-destructive",title:A,children:m.jsx(yc,{children:"Run nicht erreichbar"})})]}),N.length>0&&m.jsx("div",{className:"flex min-w-0 flex-none items-stretch overflow-visible",children:N.map(({id:z,Header:G})=>m.jsx(G,{navigation:b,session:S},z))}),$&&m.jsx(js,{as:"div",className:"bg-primary/10 text-[0.72rem] font-semibold text-primary",role:"status",children:m.jsx(yc,{children:$.label})})]}),o);return n!=="workspace"?m.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[W,K,m.jsx("div",{className:"relative isolate flex min-h-0 min-w-0 flex-1",ref:Y,children:typeof n=="object"?m.jsx(cCe,{elementId:n.element,navigation:b,registry:T,session:S}):m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"relative flex min-h-0 min-w-0 flex-1 flex-col",children:[q?m.jsx(q,{toolbarContainer:r,runToolbarContainer:null,statusContainer:u,cardSections:T.cardSections,surfaceElements:T.surfaceElements,navigation:b,renderChat:U,session:S,tabIds:C.map(z=>z.id)}):m.jsx(uL,{renderChat:U}),F&&m.jsx(iCe,{navigation:b,onClose:a,open:i==="expanded",session:S,tabs:C})]}),F&&m.jsx(rCe,{navigation:b,onClose:a,open:i==="expanded",pendingTabIds:v,session:S,tabs:C})]})})]}):m.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[W,K,m.jsxs("div",{className:"relative flex min-h-0 min-w-0 flex-1 data-[resizing=true]:cursor-col-resize data-[resizing=true]:select-none",ref:d,children:[m.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[(H||D.length>0)&&m.jsxs("div",{"aria-label":"Apps und Actors",className:"flex min-h-[52px] min-w-0 flex-none items-stretch border-b border-border bg-[color-mix(in_srgb,var(--surface)_55%,var(--card))]",role:"region",children:[m.jsx("div",{className:"flex flex-none items-stretch empty:hidden",ref:O}),m.jsx(Wke,{children:D.map(({id:z,Header:G})=>m.jsx(G,{navigation:b,session:S},z))},S.session.id)]}),m.jsx("div",{className:"relative isolate flex min-h-0 min-w-0 flex-1",ref:p,children:H?m.jsx(H,{toolbarContainer:r,runToolbarContainer:R,statusContainer:u,cardSections:T.cardSections,surfaceElements:T.surfaceElements,navigation:b,renderChat:U,session:S,tabIds:C.map(z=>z.id)}):m.jsx(uL,{renderChat:U})})]}),F&&m.jsx(Gke,{headerContainer:c??null,navigation:b,onToggleState:a,pendingTabIds:v,session:S,state:i,tabs:C})]})]})}function uL({renderChat:e}){return m.jsx("div",{className:"relative flex min-h-0 min-w-0 flex-1",children:m.jsx("div",{className:"relative flex min-h-0 min-w-0 flex-1 overflow-hidden","data-view":"chat",children:e()})})}function cCe({elementId:e,navigation:t,registry:n,session:r}){const i=n.surfaceElements.flatMap(a=>a.select(r).filter(o=>o.id===e&&o.visible!==!1).map(o=>({Element:a.Element,definition:o})))[0];return i?m.jsx("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col","data-view":"element",children:m.jsx(i.Element,{definition:i.definition,navigation:t,session:r})}):m.jsx("div",{className:"m-auto max-w-[420px] p-6 text-center text-muted-foreground",role:"status",children:r.runView===void 0?"Der Run wird geladen ...":"Diese Mini-App gibt es in dem Run nicht mehr."})}function uCe({autoFocus:e,onAutoFocusSettled:t,options:n,registry:r,renderTool:i,session:a}){const c=$i().can("runs.write"),u=lH(),d=uC(a.session.id,tH(a.runView),"coordinator"),[p,h]=x.useState(),y=Ag(),b=dC(a.session.id,"primary",JSON.stringify(y.options.map(({id:S,value:C})=>[S,C]))),v=x.useMemo(()=>R1(a.messages),[a.messages]),T=a.connected&&(a.running||X7(a.runView,a.session.id)),A=K7(a.runView,a.session.id,a.running);return m.jsx(sC,{className:Ie(aCe,n.chatElementClassName),composer:W7(a.runView,a.session.id)?m.jsxs("div",{className:"flex min-w-0 flex-col gap-1.5",children:[m.jsx("p",{className:"text-muted-foreground",children:Y7}),m.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[n.toolbarLeft,m.jsx(Qh,{collapsible:!1,settings:d})]})]}):A.kind==="stopped"?m.jsx("div",{className:"[--qsl-input-card-radius:var(--radius-lg)]",children:m.jsx(Q7,{actor:A.actor,runId:a.session.id,toolbar:m.jsxs(m.Fragment,{children:[n.toolbarLeft,m.jsx(Qh,{collapsible:!1,settings:d})]})})}):m.jsxs("div",{className:"[--qsl-input-card-radius:var(--radius-lg)]",children:[p&&m.jsx("p",{className:"text-[0.8rem] text-destructive",role:"alert",children:p}),m.jsx(oC,{...b,autoFocus:e,onAutoFocusSettled:t,disabled:!a.connected||!c,maxRows:4,texts:c?void 0:{placeholder:"Lesezugriff auf diesen Run"},onSend:(S,C)=>(h(void 0),a.send(S,C)),onStop:c&&A.kind==="active"&&A.turnRunning?()=>{h(void 0),mB(a.session.id,A.actorId).catch(S=>h(S instanceof Error?S.message:String(S)))}:void 0,rows:1,running:T,toolbarLeft:m.jsxs(m.Fragment,{children:[n.toolbarLeft,m.jsx(Qh,{collapsible:!1,settings:d})]}),toolbarRight:m.jsx(Hw,{disabled:!a.connected||!c,placement:"composer",registry:r})})]}),children:n.notice??m.jsx(aC,{detailMode:d.detailMode,messages:v,onDismissAction:c?S=>void bB(a.session.id,S):void 0,renderAction:u,renderTool:i,running:T,scrollerRef:n.chatScrollerRef,showTimestamps:d.showTimestamps,stepsExpandable:d.stepsExpandable})})}var WT,dL;function dCe(){if(dL)return WT;dL=1;function e(ee){return ee instanceof Map?ee.clear=ee.delete=ee.set=function(){throw new Error("map is read-only")}:ee instanceof Set&&(ee.add=ee.clear=ee.delete=function(){throw new Error("set is read-only")}),Object.freeze(ee),Object.getOwnPropertyNames(ee).forEach(Ne=>{const le=ee[Ne],Be=typeof le;(Be==="object"||Be==="function")&&!Object.isFrozen(le)&&e(le)}),ee}class t{constructor(Ne){Ne.data===void 0&&(Ne.data={}),this.data=Ne.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function n(ee){return ee.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function r(ee,...Ne){const le=Object.create(null);for(const Be in ee)le[Be]=ee[Be];return Ne.forEach(function(Be){for(const ot in Be)le[ot]=Be[ot]}),le}const i="</span>",a=ee=>!!ee.scope,o=(ee,{prefix:Ne})=>{if(ee.startsWith("language:"))return ee.replace("language:","language-");if(ee.includes(".")){const le=ee.split(".");return[`${Ne}${le.shift()}`,...le.map((Be,ot)=>`${Be}${"_".repeat(ot+1)}`)].join(" ")}return`${Ne}${ee}`};class c{constructor(Ne,le){this.buffer="",this.classPrefix=le.classPrefix,Ne.walk(this)}addText(Ne){this.buffer+=n(Ne)}openNode(Ne){if(!a(Ne))return;const le=o(Ne.scope,{prefix:this.classPrefix});this.span(le)}closeNode(Ne){a(Ne)&&(this.buffer+=i)}value(){return this.buffer}span(Ne){this.buffer+=`<span class="${Ne}">`}}const u=(ee={})=>{const Ne={children:[]};return Object.assign(Ne,ee),Ne};class d{constructor(){this.rootNode=u(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Ne){this.top.children.push(Ne)}openNode(Ne){const le=u({scope:Ne});this.add(le),this.stack.push(le)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Ne){return this.constructor._walk(Ne,this.rootNode)}static _walk(Ne,le){return typeof le=="string"?Ne.addText(le):le.children&&(Ne.openNode(le),le.children.forEach(Be=>this._walk(Ne,Be)),Ne.closeNode(le)),Ne}static _collapse(Ne){typeof Ne!="string"&&Ne.children&&(Ne.children.every(le=>typeof le=="string")?Ne.children=[Ne.children.join("")]:Ne.children.forEach(le=>{d._collapse(le)}))}}class p extends d{constructor(Ne){super(),this.options=Ne}addText(Ne){Ne!==""&&this.add(Ne)}startScope(Ne){this.openNode(Ne)}endScope(){this.closeNode()}__addSublanguage(Ne,le){const Be=Ne.root;le&&(Be.scope=`language:${le}`),this.add(Be)}toHTML(){return new c(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(ee){return ee?typeof ee=="string"?ee:ee.source:null}function y(ee){return T("(?=",ee,")")}function b(ee){return T("(?:",ee,")*")}function v(ee){return T("(?:",ee,")?")}function T(...ee){return ee.map(le=>h(le)).join("")}function A(ee){const Ne=ee[ee.length-1];return typeof Ne=="object"&&Ne.constructor===Object?(ee.splice(ee.length-1,1),Ne):{}}function S(...ee){return"("+(A(ee).capture?"":"?:")+ee.map(Be=>h(Be)).join("|")+")"}function C(ee){return new RegExp(ee.toString()+"|").exec("").length-1}function k(ee,Ne){const le=ee&&ee.exec(Ne);return le&&le.index===0}const R=new RegExp(S(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function O(ee,{joinWith:Ne}){let le=0;return ee.map(Be=>{le+=1;const ot=le;let yt=h(Be),Xe="";for(;yt.length>0;){const et=R.exec(yt);if(!et){Xe+=yt;break}Xe+=yt.substring(0,et.index),yt=yt.substring(et.index+et[0].length),et[0][0]==="\\"&&et[1]?Xe+="\\"+String(Number(et[1])+ot):(Xe+=et[0],(et[0]==="("||/^\(\?[<']/.test(et[0]))&&le++)}return Xe}).map(Be=>`(${Be})`).join(Ne)}const N=/\b\B/,D="[a-zA-Z]\\w*",L="[a-zA-Z_]\\w*",$="\\b\\d+(\\.\\d+)?",P="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",F="\\b(0b[01]+)",H="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",q=(ee={})=>{const Ne=/^#![ ]*\//;return ee.binary&&(ee.begin=T(Ne,/.*\b/,ee.binary,/\b.*/)),r({scope:"meta",begin:Ne,end:/$/,relevance:0,"on:begin":(le,Be)=>{le.index!==0&&Be.ignoreMatch()}},ee)},Y={begin:"\\\\[\\s\\S]",relevance:0},V={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},U={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},W={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/},K=function(ee,Ne,le={}){const Be=r({scope:"comment",begin:ee,end:Ne,contains:[]},le);Be.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const ot=S("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 Be.contains.push({begin:T(/[ ]+/,"(",ot,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Be},te=K("//","$"),I=K("/\\*","\\*/"),z=K("#","$"),G={scope:"number",begin:$,relevance:0},B={scope:"number",begin:P,relevance:0},J={scope:"number",begin:F,relevance:0},ie={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},ne={scope:"title",begin:D,relevance:0},me={scope:"title",begin:L,relevance:0},he={begin:"\\.\\s*"+L,relevance:0};var Le=Object.freeze({__proto__:null,APOS_STRING_MODE:V,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:J,BINARY_NUMBER_RE:F,COMMENT:K,C_BLOCK_COMMENT_MODE:I,C_LINE_COMMENT_MODE:te,C_NUMBER_MODE:B,C_NUMBER_RE:P,END_SAME_AS_BEGIN:function(ee){return Object.assign(ee,{"on:begin":(Ne,le)=>{le.data._beginMatch=Ne[1]},"on:end":(Ne,le)=>{le.data._beginMatch!==Ne[1]&&le.ignoreMatch()}})},HASH_COMMENT_MODE:z,IDENT_RE:D,MATCH_NOTHING_RE:N,METHOD_GUARD:he,NUMBER_MODE:G,NUMBER_RE:$,PHRASAL_WORDS_MODE:W,QUOTE_STRING_MODE:U,REGEXP_MODE:ie,RE_STARTERS_RE:H,SHEBANG:q,TITLE_MODE:ne,UNDERSCORE_IDENT_RE:L,UNDERSCORE_TITLE_MODE:me});function He(ee,Ne){ee.input[ee.index-1]==="."&&Ne.ignoreMatch()}function ke(ee,Ne){ee.className!==void 0&&(ee.scope=ee.className,delete ee.className)}function Oe(ee,Ne){Ne&&ee.beginKeywords&&(ee.begin="\\b("+ee.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",ee.__beforeBegin=He,ee.keywords=ee.keywords||ee.beginKeywords,delete ee.beginKeywords,ee.relevance===void 0&&(ee.relevance=0))}function ye(ee,Ne){Array.isArray(ee.illegal)&&(ee.illegal=S(...ee.illegal))}function ue(ee,Ne){if(ee.match){if(ee.begin||ee.end)throw new Error("begin & end are not supported with match");ee.begin=ee.match,delete ee.match}}function ge(ee,Ne){ee.relevance===void 0&&(ee.relevance=1)}const Ee=(ee,Ne)=>{if(!ee.beforeMatch)return;if(ee.starts)throw new Error("beforeMatch cannot be used with starts");const le=Object.assign({},ee);Object.keys(ee).forEach(Be=>{delete ee[Be]}),ee.keywords=le.keywords,ee.begin=T(le.beforeMatch,y(le.begin)),ee.starts={relevance:0,contains:[Object.assign(le,{endsParent:!0})]},ee.relevance=0,delete le.beforeMatch},Fe=["of","and","for","in","not","or","if","then","parent","list","value"],Pe="keyword";function Z(ee,Ne,le=Pe){const Be=Object.create(null);return typeof ee=="string"?ot(le,ee.split(" ")):Array.isArray(ee)?ot(le,ee):Object.keys(ee).forEach(function(yt){Object.assign(Be,Z(ee[yt],Ne,yt))}),Be;function ot(yt,Xe){Ne&&(Xe=Xe.map(et=>et.toLowerCase())),Xe.forEach(function(et){const Ye=et.split("|");Be[Ye[0]]=[yt,de(Ye[0],Ye[1])]})}}function de(ee,Ne){return Ne?Number(Ne):pe(ee)?0:1}function pe(ee){return Fe.includes(ee.toLowerCase())}const ze={},xe=ee=>{console.error(ee)},Ke=(ee,...Ne)=>{console.log(`WARN: ${ee}`,...Ne)},ae=(ee,Ne)=>{ze[`${ee}/${Ne}`]||(console.log(`Deprecated as of ${ee}. ${Ne}`),ze[`${ee}/${Ne}`]=!0)},oe=new Error;function $e(ee,Ne,{key:le}){let Be=0;const ot=ee[le],yt={},Xe={};for(let et=1;et<=Ne.length;et++)Xe[et+Be]=ot[et],yt[et+Be]=!0,Be+=C(Ne[et-1]);ee[le]=Xe,ee[le]._emit=yt,ee[le]._multi=!0}function Qe(ee){if(Array.isArray(ee.begin)){if(ee.skip||ee.excludeBegin||ee.returnBegin)throw xe("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),oe;if(typeof ee.beginScope!="object"||ee.beginScope===null)throw xe("beginScope must be object"),oe;$e(ee,ee.begin,{key:"beginScope"}),ee.begin=O(ee.begin,{joinWith:""})}}function ct(ee){if(Array.isArray(ee.end)){if(ee.skip||ee.excludeEnd||ee.returnEnd)throw xe("skip, excludeEnd, returnEnd not compatible with endScope: {}"),oe;if(typeof ee.endScope!="object"||ee.endScope===null)throw xe("endScope must be object"),oe;$e(ee,ee.end,{key:"endScope"}),ee.end=O(ee.end,{joinWith:""})}}function qt(ee){ee.scope&&typeof ee.scope=="object"&&ee.scope!==null&&(ee.beginScope=ee.scope,delete ee.scope)}function Kt(ee){qt(ee),typeof ee.beginScope=="string"&&(ee.beginScope={_wrap:ee.beginScope}),typeof ee.endScope=="string"&&(ee.endScope={_wrap:ee.endScope}),Qe(ee),ct(ee)}function it(ee){function Ne(Xe,et){return new RegExp(h(Xe),"m"+(ee.case_insensitive?"i":"")+(ee.unicodeRegex?"u":"")+(et?"g":""))}class le{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(et,Ye){Ye.position=this.position++,this.matchIndexes[this.matchAt]=Ye,this.regexes.push([Ye,et]),this.matchAt+=C(et)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const et=this.regexes.map(Ye=>Ye[1]);this.matcherRe=Ne(O(et,{joinWith:"|"}),!0),this.lastIndex=0}exec(et){this.matcherRe.lastIndex=this.lastIndex;const Ye=this.matcherRe.exec(et);if(!Ye)return null;const vt=Ye.findIndex((mr,nr)=>nr>0&&mr!==void 0),Dt=this.matchIndexes[vt];return Ye.splice(0,vt),Object.assign(Ye,Dt)}}class Be{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(et){if(this.multiRegexes[et])return this.multiRegexes[et];const Ye=new le;return this.rules.slice(et).forEach(([vt,Dt])=>Ye.addRule(vt,Dt)),Ye.compile(),this.multiRegexes[et]=Ye,Ye}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(et,Ye){this.rules.push([et,Ye]),Ye.type==="begin"&&this.count++}exec(et){const Ye=this.getMatcher(this.regexIndex);Ye.lastIndex=this.lastIndex;let vt=Ye.exec(et);if(this.resumingScanAtSamePosition()&&!(vt&&vt.index===this.lastIndex)){const Dt=this.getMatcher(0);Dt.lastIndex=this.lastIndex+1,vt=Dt.exec(et)}return vt&&(this.regexIndex+=vt.position+1,this.regexIndex===this.count&&this.considerAll()),vt}}function ot(Xe){const et=new Be;return Xe.contains.forEach(Ye=>et.addRule(Ye.begin,{rule:Ye,type:"begin"})),Xe.terminatorEnd&&et.addRule(Xe.terminatorEnd,{type:"end"}),Xe.illegal&&et.addRule(Xe.illegal,{type:"illegal"}),et}function yt(Xe,et){const Ye=Xe;if(Xe.isCompiled)return Ye;[ke,ue,Kt,Ee].forEach(Dt=>Dt(Xe,et)),ee.compilerExtensions.forEach(Dt=>Dt(Xe,et)),Xe.__beforeBegin=null,[Oe,ye,ge].forEach(Dt=>Dt(Xe,et)),Xe.isCompiled=!0;let vt=null;return typeof Xe.keywords=="object"&&Xe.keywords.$pattern&&(Xe.keywords=Object.assign({},Xe.keywords),vt=Xe.keywords.$pattern,delete Xe.keywords.$pattern),vt=vt||/\w+/,Xe.keywords&&(Xe.keywords=Z(Xe.keywords,ee.case_insensitive)),Ye.keywordPatternRe=Ne(vt,!0),et&&(Xe.begin||(Xe.begin=/\B|\b/),Ye.beginRe=Ne(Ye.begin),!Xe.end&&!Xe.endsWithParent&&(Xe.end=/\B|\b/),Xe.end&&(Ye.endRe=Ne(Ye.end)),Ye.terminatorEnd=h(Ye.end)||"",Xe.endsWithParent&&et.terminatorEnd&&(Ye.terminatorEnd+=(Xe.end?"|":"")+et.terminatorEnd)),Xe.illegal&&(Ye.illegalRe=Ne(Xe.illegal)),Xe.contains||(Xe.contains=[]),Xe.contains=[].concat(...Xe.contains.map(function(Dt){return Mt(Dt==="self"?Xe:Dt)})),Xe.contains.forEach(function(Dt){yt(Dt,Ye)}),Xe.starts&&yt(Xe.starts,et),Ye.matcher=ot(Ye),Ye}if(ee.compilerExtensions||(ee.compilerExtensions=[]),ee.contains&&ee.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return ee.classNameAliases=r(ee.classNameAliases||{}),yt(ee)}function pt(ee){return ee?ee.endsWithParent||pt(ee.starts):!1}function Mt(ee){return ee.variants&&!ee.cachedVariants&&(ee.cachedVariants=ee.variants.map(function(Ne){return r(ee,{variants:null},Ne)})),ee.cachedVariants?ee.cachedVariants:pt(ee)?r(ee,{starts:ee.starts?r(ee.starts):null}):Object.isFrozen(ee)?r(ee):ee}var _t="11.12.0";class Jt extends Error{constructor(Ne,le){super(Ne),this.name="HTMLInjectionError",this.html=le}}const dt=n,Hn=r,Wt=Symbol("nomatch"),Mn=7,$n=function(ee){const Ne=Object.create(null),le=Object.create(null),Be=[];let ot=!0;const yt="Could not find the language '{}', did you forget to load/include a language module?",Xe={disableAutodetect:!0,name:"Plain text",contains:[]};let et={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:p};function Ye(Ze){return et.noHighlightRe.test(Ze)}function vt(Ze){let xt=Ze.className+" ";xt+=Ze.parentNode?Ze.parentNode.className:"";const Xt=et.languageDetectRe.exec(xt);if(Xt){const kn=ni(Xt[1]);return kn||(Ke(yt.replace("{}",Xt[1])),Ke("Falling back to no-highlight mode for this block.",Ze)),kn?Xt[1]:"no-highlight"}return xt.split(/\s+/).find(kn=>Ye(kn)||ni(kn))}function Dt(Ze,xt,Xt){let kn="",Er="";typeof xt=="object"?(kn=Ze,Xt=xt.ignoreIllegals,Er=xt.language):(ae("10.7.0","highlight(lang, code, ...args) has been deprecated."),ae("10.7.0",`Please use highlight(code, options) instead.
443
443
  https://github.com/highlightjs/highlight.js/issues/2277`),Er=Ze,kn=xt),Xt===void 0&&(Xt=!0);const $r={code:kn,language:Er};ri("before:highlight",$r);const Hi=$r.result?$r.result:mr($r.language,$r.code,Xt);return Hi.code=$r.code,ri("after:highlight",Hi),Hi}function mr(Ze,xt,Xt,kn){const Er=Object.create(null);function $r(st,ht){return st.keywords[ht]}function Hi(){if(!lt.keywords){pn.addText(Bt);return}let st=0;lt.keywordPatternRe.lastIndex=0;let ht=lt.keywordPatternRe.exec(Bt),Ft="";for(;ht;){Ft+=Bt.substring(st,ht.index);const nn=Ht.case_insensitive?ht[0].toLowerCase():ht[0],xn=$r(lt,nn);if(xn){const[Tr,_s]=xn;if(pn.addText(Ft),Ft="",Er[nn]=(Er[nn]||0)+1,Er[nn]<=Mn&&(yi+=_s),Tr.startsWith("_"))Ft+=ht[0];else{const Jc=Ht.classNameAliases[Tr]||Tr;bi(ht[0],Jc)}}else Ft+=ht[0];st=lt.keywordPatternRe.lastIndex,ht=lt.keywordPatternRe.exec(Bt)}Ft+=Bt.substring(st),pn.addText(Ft)}function Ci(){if(Bt==="")return;let st=null;if(typeof lt.subLanguage=="string"){if(!Ne[lt.subLanguage]){pn.addText(Bt);return}st=mr(lt.subLanguage,Bt,!0,Or[lt.subLanguage]),Or[lt.subLanguage]=st._top}else st=Rr(Bt,lt.subLanguage.length?lt.subLanguage:null);lt.relevance>0&&(yi+=st.relevance),pn.__addSublanguage(st._emitter,st.language)}function rr(){lt.subLanguage!=null?Ci():Hi(),Bt=""}function bi(st,ht){st!==""&&(pn.startScope(ht),pn.addText(st),pn.endScope())}function fp(st,ht){let Ft=1;const nn=ht.length-1;for(;Ft<=nn;){if(!st._emit[Ft]){Ft++;continue}const xn=Ht.classNameAliases[st[Ft]]||st[Ft],Tr=ht[Ft];xn?bi(Tr,xn):(Bt=Tr,Hi(),Bt=""),Ft++}}function _e(st,ht){return st.scope&&typeof st.scope=="string"&&pn.openNode(Ht.classNameAliases[st.scope]||st.scope),st.beginScope&&(st.beginScope._wrap?(bi(Bt,Ht.classNameAliases[st.beginScope._wrap]||st.beginScope._wrap),Bt=""):st.beginScope._multi&&(fp(st.beginScope,ht),Bt="")),lt=Object.create(st,{parent:{value:lt}}),lt}function Ve(st,ht,Ft){let nn=k(st.endRe,Ft);if(nn){if(st["on:end"]){const xn=new t(st);st["on:end"](ht,xn),xn.isMatchIgnored&&(nn=!1)}if(nn){for(;st.endsParent&&st.parent;)st=st.parent;return st}}if(st.endsWithParent)return Ve(st.parent,ht,Ft)}function tt(st){return lt.matcher.regexIndex===0?(Bt+=st[0],1):(ts=!0,0)}function At(st){const ht=st[0],Ft=st.rule,nn=new t(Ft),xn=[Ft.__beforeBegin,Ft["on:begin"]];for(const Tr of xn)if(Tr&&(Tr(st,nn),nn.isMatchIgnored))return tt(ht);return Ft.skip?Bt+=ht:(Ft.excludeBegin&&(Bt+=ht),rr(),!Ft.returnBegin&&!Ft.excludeBegin&&(Bt=ht)),_e(Ft,st),Ft.returnBegin?0:ht.length}function kt(st){const ht=st[0],Ft=xt.substring(st.index),nn=Ve(lt,st,Ft);if(!nn)return Wt;const xn=lt;lt.endScope&&lt.endScope._wrap?(rr(),bi(ht,lt.endScope._wrap)):lt.endScope&&lt.endScope._multi?(rr(),fp(lt.endScope,st)):xn.skip?Bt+=ht:(xn.returnEnd||xn.excludeEnd||(Bt+=ht),rr(),xn.excludeEnd&&(Bt=ht));do lt.scope&&pn.closeNode(),!lt.skip&&!lt.subLanguage&&(yi+=lt.relevance),lt=lt.parent;while(lt!==nn.parent);return nn.starts&&_e(nn.starts,st),xn.returnEnd?0:ht.length}function Pt(){const st=[];for(let ht=lt;ht!==Ht;ht=ht.parent)ht.scope&&st.unshift(ht.scope);st.forEach(ht=>pn.openNode(ht))}let en={};function ir(st,ht){const Ft=ht&&ht[0];if(Bt+=st,Ft==null)return rr(),0;if(en.type==="begin"&&ht.type==="end"&&en.index===ht.index&&Ft===""){if(Bt+=xt.slice(ht.index,ht.index+1),!ot){const nn=new Error(`0 width match regex (${Ze})`);throw nn.languageName=Ze,nn.badRule=en.rule,nn}return 1}if(en=ht,ht.type==="begin")return At(ht);if(ht.type==="illegal"&&!Xt){const nn=new Error('Illegal lexeme "'+Ft+'" for mode "'+(lt.scope||"<unnamed>")+'"');throw nn.mode=lt,nn}else if(ht.type==="end"){const nn=kt(ht);if(nn!==Wt)return nn}if(ht.type==="illegal"&&Ft==="")return ht.index===xt.length||(Bt+=`
444
444
  `),1;if(es>1e5&&es>ht.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Bt+=Ft,Ft.length}const Ht=ni(Ze);if(!Ht)throw xe(yt.replace("{}",Ze)),new Error('Unknown language: "'+Ze+'"');const Rt=it(Ht);let zt="",lt=kn||Rt;const Or={},pn=new et.__emitter(et);Pt();let Bt="",yi=0,Kr=0,es=0,ts=!1;try{if(Ht.__emitTokens)Ht.__emitTokens(xt,pn);else{for(lt.matcher.considerAll();;){es++,ts?ts=!1:lt.matcher.considerAll(),lt.matcher.lastIndex=Kr;const st=lt.matcher.exec(xt);if(!st)break;const ht=xt.substring(Kr,st.index),Ft=ir(ht,st);Kr=st.index+Ft}ir(xt.substring(Kr))}return pn.finalize(),zt=pn.toHTML(),{language:Ze,value:zt,relevance:yi,illegal:!1,_emitter:pn,_top:lt}}catch(st){if(st.message&&st.message.includes("Illegal"))return{language:Ze,value:dt(xt),illegal:!0,relevance:0,_illegalBy:{message:st.message,index:Kr,context:xt.slice(Kr-100,Kr+100),mode:st.mode,resultSoFar:zt},_emitter:pn};if(ot)return{language:Ze,value:dt(xt),illegal:!1,relevance:0,errorRaised:st,_emitter:pn,_top:lt};throw st}}function nr(Ze){const xt={value:dt(Ze),illegal:!1,relevance:0,_top:Xe,_emitter:new et.__emitter(et)};return xt._emitter.addText(Ze),xt}function Rr(Ze,xt){xt=xt||et.languages||Object.keys(Ne);const Xt=nr(Ze),kn=xt.filter(ni).filter(wa).map(rr=>mr(rr,Ze,!1));kn.unshift(Xt);const Er=kn.sort((rr,bi)=>{if(rr.relevance!==bi.relevance)return bi.relevance-rr.relevance;if(rr.language&&bi.language){if(ni(rr.language).supersetOf===bi.language)return 1;if(ni(bi.language).supersetOf===rr.language)return-1}return 0}),[$r,Hi]=Er,Ci=$r;return Ci.secondBest=Hi,Ci}function Yn(Ze,xt,Xt){const kn=xt&&le[xt]||Xt;Ze.classList.add("hljs"),Ze.classList.add(`language-${kn}`)}function Ut(Ze){let xt=null;const Xt=vt(Ze);if(Ye(Xt))return;if(ri("before:highlightElement",{el:Ze,language:Xt}),Ze.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",Ze);return}if(Ze.children.length>0&&(et.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(Ze)),et.throwUnescapedHTML))throw new Jt("One of your code blocks includes unescaped HTML.",Ze.innerHTML);xt=Ze;const kn=xt.textContent,Er=Xt?Dt(kn,{language:Xt,ignoreIllegals:!0}):Rr(kn);Ze.innerHTML=Er.value,Ze.dataset.highlighted="yes",Yn(Ze,Xt,Er.language),Ze.result={language:Er.language,re:Er.relevance,relevance:Er.relevance},Er.secondBest&&(Ze.secondBest={language:Er.secondBest.language,relevance:Er.secondBest.relevance}),ri("after:highlightElement",{el:Ze,result:Er,text:kn})}function Bn(Ze){et=Hn(et,Ze)}const Gr=()=>{As(),ae("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Za(){As(),ae("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let ki=!1;function As(){function Ze(){As()}if(document.readyState==="loading"){ki||window.addEventListener("DOMContentLoaded",Ze,!1),ki=!0;return}document.querySelectorAll(et.cssSelector).forEach(Ut)}function Ws(Ze,xt){let Xt=null;try{Xt=xt(ee)}catch(kn){if(xe("Language definition for '{}' could not be registered.".replace("{}",Ze)),ot)xe(kn);else throw kn;Xt=Xe}Xt.name||(Xt.name=Ze),Ne[Ze]=Xt,Xt.rawDefinition=xt.bind(null,ee),Xt.aliases&&na(Xt.aliases,{languageName:Ze})}function Ja(Ze){delete Ne[Ze];for(const xt of Object.keys(le))le[xt]===Ze&&delete le[xt]}function ta(){return Object.keys(Ne)}function ni(Ze){return Ze=(Ze||"").toLowerCase(),Ne[Ze]||Ne[le[Ze]]}function na(Ze,{languageName:xt}){typeof Ze=="string"&&(Ze=[Ze]),Ze.forEach(Xt=>{le[Xt.toLowerCase()]=xt})}function wa(Ze){const xt=ni(Ze);return xt&&!xt.disableAutodetect}function gi(Ze){Ze["before:highlightBlock"]&&!Ze["before:highlightElement"]&&(Ze["before:highlightElement"]=xt=>{Ze["before:highlightBlock"](Object.assign({block:xt.el},xt))}),Ze["after:highlightBlock"]&&!Ze["after:highlightElement"]&&(Ze["after:highlightElement"]=xt=>{Ze["after:highlightBlock"](Object.assign({block:xt.el},xt))})}function Wn(Ze){gi(Ze),Be.push(Ze)}function Mo(Ze){const xt=Be.indexOf(Ze);xt!==-1&&Be.splice(xt,1)}function ri(Ze,xt){const Xt=Ze;Be.forEach(function(kn){kn[Xt]&&kn[Xt](xt)})}function Ui(Ze){return ae("10.7.0","highlightBlock will be removed entirely in v12.0"),ae("10.7.0","Please use highlightElement now."),Ut(Ze)}Object.assign(ee,{highlight:Dt,highlightAuto:Rr,highlightAll:As,highlightElement:Ut,highlightBlock:Ui,configure:Bn,initHighlighting:Gr,initHighlightingOnLoad:Za,registerLanguage:Ws,unregisterLanguage:Ja,listLanguages:ta,getLanguage:ni,registerAliases:na,autoDetection:wa,inherit:Hn,addPlugin:Wn,removePlugin:Mo}),ee.debugMode=function(){ot=!1},ee.safeMode=function(){ot=!0},ee.versionString=_t,ee.regex={concat:T,lookahead:y,either:S,optional:v,anyNumberOfTimes:b};for(const Ze in Le)typeof Le[Ze]=="object"&&e(Le[Ze]);return Object.assign(ee,Le),ee},$t=$n({});return $t.newInstance=()=>$n({}),WT=$t,$t.HighlightJS=$t,$t.default=$t,WT}var fCe=dCe();const Rn=zf(fCe);function pCe(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(c);const u={match:/\\"/},d={className:"string",begin:/'/,end:/'/},p={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},y=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],b=e.SHEBANG({binary:`(${y.join("|")})`,relevance:10}),v={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},T=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],A=["true","false"],S={match:/(\/[a-z._-]+)+/},C=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],k=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],R=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],O=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:T,literal:A,built_in:[...C,...k,"set","shopt",...R,...O]},contains:[b,e.SHEBANG(),v,h,a,o,S,c,u,d,p,n]}}function hCe(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",c=t.concat(/\batomic_/,t.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),u={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:c}]},p={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},h={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},y={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},p,{scope:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},b={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(p,{className:"string"}),n,e.C_BLOCK_COMMENT_MODE]},v=[y,b],T={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},A=t.optional(i)+e.IDENT_RE+"\\s*\\(",S=12,R={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},O=[...v,u,n,e.C_BLOCK_COMMENT_MODE,h,p],N={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:R,contains:O.concat([{begin:/\(/,end:/\)/,keywords:R,contains:O.concat(["self"]),relevance:0}]),relevance:0},D={begin:"("+o+"[\\*&\\s]+){1,"+S+"}"+A,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:R,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:R,relevance:0},{begin:A,returnBegin:!0,contains:[e.inherit(T,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:R,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,p,h,u,{begin:/\(/,end:/\)/,keywords:R,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,p,h,u]}]},u,n,e.C_BLOCK_COMMENT_MODE,...v]};return{name:"C",aliases:["h"],keywords:R,disableAutodetect:!0,illegal:"</",contains:[].concat(N,D,O,[...v,{begin:e.IDENT_RE+"::",keywords:R},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:b,strings:p,keywords:R}}}function mCe(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},p={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},d,{scope:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},y={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(d,{className:"string"}),n,e.C_BLOCK_COMMENT_MODE]},b=[h,y],v={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},T=t.optional(i)+e.IDENT_RE+"\\s*\\(",A=12,S=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],C=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],k=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],R=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],D={type:C,keyword:S,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:k},L={className:"function.dispatch",relevance:0,keywords:{_hint:R},begin:t.concat(/\b/,`(?!${S.join("|")})`,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},$=[L,...b,c,n,e.C_BLOCK_COMMENT_MODE,p,d],P={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:D,contains:$.concat([{begin:/\(/,end:/\)/,keywords:D,contains:$.concat(["self"]),relevance:0}]),relevance:0},F={className:"function",begin:"("+o+"[\\*&\\s]+){1,"+A+"}"+T,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:D,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:D,relevance:0},{begin:T,returnBegin:!0,contains:[v],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[d,p]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:D,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,d,p,c,{begin:/\(/,end:/\)/,keywords:D,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,d,p,c]}]},c,n,e.C_BLOCK_COMMENT_MODE,...b]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:D,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(P,F,L,$,[...b,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:D,contains:["self",c]},{begin:e.IDENT_RE+"::",keywords:D},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function gCe(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],a=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(a),built_in:t,literal:r},c=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),u="\\d(_*\\d)*",d="([uU][lL]?|[lL][uU]?)?",h={className:"number",variants:[{begin:"\\b0[bB]_*[01](_*[01])*"+d},{begin:"(-?)\\b0[xX]_*[a-fA-F0-9](_*[a-fA-F0-9])*"+d},{begin:"(-?)(\\b"+u+"(\\.("+u+")?)?|\\."+u+")([eE][-+]?"+u+")?"+"([fFdDmM]|[uU][lL]?|[lL][uU]?)?"}],relevance:0},y={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},b={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},v=e.inherit(b,{illegal:/\n/}),T={className:"subst",begin:/\{/,end:/\}/,keywords:o},A=e.inherit(T,{illegal:/\n/}),S={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,A]},C={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},T]},k=e.inherit(C,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},A]});T.contains=[C,S,b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,e.C_BLOCK_COMMENT_MODE],A.contains=[k,S,v,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const R={variants:[y,C,S,b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},O={begin:"<",end:">",contains:[{beginKeywords:"in out"},c]},N=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",D={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},R,h,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},c,O,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[c,O,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+N+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,O],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[R,h,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},D]}}const bCe=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),yCe=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],xCe=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],vCe=[...yCe,...xCe],ECe=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),TCe=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),wCe=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),SCe=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function ACe(e){const t=e.regex,n=bCe(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",a=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",c=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+TCe.join("|")+")"},{begin:":(:)?("+wCe.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+SCe.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,n.UNICODE_RANGE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:a},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:ECe.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+vCe.join("|")+")\\b"}]}}function _Ce(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function kCe(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}function CCe(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function CH(e){return e?typeof e=="string"?e:e.source:null}function mh(e){return Os("(?=",e,")")}function Os(...e){return e.map(n=>CH(n)).join("")}function NCe(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function uc(...e){return"("+(NCe(e).capture?"":"?:")+e.map(r=>CH(r)).join("|")+")"}new RegExp(uc(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function RCe(e){const t=["abstract","and","as","assert","base","begin","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","extern","finally","fixed","for","fun","function","global","if","in","inherit","inline","interface","internal","lazy","let","match","member","module","mutable","namespace","new","of","open","or","override","private","public","rec","return","static","struct","then","to","try","type","upcast","use","val","void","when","while","with","yield"],n={scope:"keyword",match:/\b(yield|return|let|do|match|use)!/},r=["if","else","endif","line","nowarn","light","r","i","I","load","time","help","quit"],i=["true","false","null","Some","None","Ok","Error","infinity","infinityf","nan","nanf"],a=["__LINE__","__SOURCE_DIRECTORY__","__SOURCE_FILE__"],o=["bool","byte","sbyte","int8","int16","int32","uint8","uint16","uint32","int","uint","int64","uint64","nativeint","unativeint","decimal","float","double","float32","single","char","string","unit","bigint","option","voption","list","array","seq","byref","exn","inref","nativeptr","obj","outref","voidptr","Result"],u={keyword:t,literal:i,built_in:["not","ref","raise","reraise","dict","readOnlyDict","set","get","enum","sizeof","typeof","typedefof","nameof","nullArg","invalidArg","invalidOp","id","fst","snd","ignore","lock","using","box","unbox","tryUnbox","printf","printfn","sprintf","eprintf","eprintfn","fprintf","fprintfn","failwith","failwithf"],"variable.constant":a},p={variants:[e.COMMENT(/\(\*(?!\))/,/\*\)/,{contains:["self"]}),e.C_LINE_COMMENT_MODE]},h=/[a-zA-Z_](\w|')*/,y={scope:"variable",begin:/``/,end:/``/},b=/\B('|\^)/,v={scope:"symbol",variants:[{match:Os(b,/``.*?``/)},{match:Os(b,e.UNDERSCORE_IDENT_RE)}],relevance:0},T=function({includeEqual:K}){let te;K?te="!%&*+-/<=>@^|~?":te="!%&*+-/<>@^|~?";const I=Array.from(te),z=Os("[",...I.map(CCe),"]"),G=uc(z,/\./),B=Os(G,mh(G)),J=uc(Os(B,G,"*"),Os(z,"+"));return{scope:"operator",match:uc(J,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/),relevance:0}},A=T({includeEqual:!0}),S=T({includeEqual:!1}),C=function(K,te){return{begin:Os(K,mh(Os(/\s*/,uc(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),beginScope:te,end:mh(uc(/\n/,/=/)),relevance:0,keywords:e.inherit(u,{type:o}),contains:[p,v,e.inherit(y,{scope:null}),S]}},k=C(/:/,"operator"),R=C(/\bof\b/,"keyword"),O={begin:[/(^|\s+)/,/type/,/\s+/,h],beginScope:{2:"keyword",4:"title.class"},end:mh(/\(|=|$/),keywords:u,contains:[p,e.inherit(y,{scope:null}),v,{scope:"operator",match:/<|>/},k]},N={scope:"computation-expression",match:/\b[_a-z]\w*(?=\s*\{)/},D={begin:[/^\s*/,Os(/#/,uc(...r)),/\b/],beginScope:{2:"meta"},end:mh(/\s|$/)},L={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},$={scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},P={scope:"string",begin:/@"/,end:/"/,contains:[{match:/""/},e.BACKSLASH_ESCAPE]},F={scope:"string",begin:/"""/,end:/"""/,relevance:2},H={scope:"subst",begin:/\{/,end:/\}/,keywords:u},q={scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},e.BACKSLASH_ESCAPE,H]},Y={scope:"string",begin:/(\$@|@\$)"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},e.BACKSLASH_ESCAPE,H]},V={scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/},H],relevance:2},U={scope:"string",match:Os(/'/,uc(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/)};return H.contains=[Y,q,P,$,U,n,p,y,k,N,D,L,v,A],{name:"F#",aliases:["fs","f#"],keywords:u,illegal:/\/\*/,classNameAliases:{"computation-expression":"keyword"},contains:[n,{variants:[V,Y,q,F,P,$,U]},p,y,O,{scope:"meta",begin:/\[</,end:/>\]/,relevance:2,contains:[y,F,P,$,U,L]},R,k,N,D,L,v,A]}}function OCe(e){const a={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:a,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:a,illegal:/["']/}]}]}}function ICe(e){const t=e.regex,n=/[_A-Za-z][_0-9A-Za-z]*/;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],literal:["true","false","null"]},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{scope:"symbol",begin:t.concat(n,t.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}function MCe(e){const t=e.regex,n={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},a={className:"literal",begin:/\bon|off|true|false|yes|no\b/},o={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[r,a,i,o,n,"self"],relevance:0},u=/[A-Za-z0-9_-]+/,d=/"(\\"|[^"])*"/,p=/'[^']*'/,h=t.either(u,d,p),y=t.concat(h,"(\\s*\\.\\s*",h,")*",t.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[r,{className:"section",begin:/\[+/,end:/\]+/},{begin:y,className:"attr",starts:{end:/$/,contains:[r,c,a,i,o,n]}}]}}var lf="[0-9](_*[0-9])*",s0=`\\.(${lf})`,o0="[0-9a-fA-F](_*[0-9a-fA-F])*",fL={className:"number",variants:[{begin:`(\\b(${lf})((${s0})|\\.)?|(${s0}))[eE][+-]?(${lf})[fFdD]?\\b`},{begin:`\\b(${lf})((${s0})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${s0})[fFdD]?\\b`},{begin:`\\b(${lf})[fFdD]\\b`},{begin:`\\b0[xX]((${o0})\\.?|(${o0})?\\.(${o0}))[pP][+-]?(${lf})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${o0})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function NH(e,t,n){return n===-1?"":e.replace(t,r=>NH(e,t,n-1))}function DCe(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r="(?:(?:\\s*\\[\\s*])+)?",i=n+"<@@@>"+r,o="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+i+")?")+"|"+i+")",c=NH("(?:\\s*<\\s*"+o+"(?:\\s*,\\s*"+o+")*\\s*>)?",/<@@@>/g,2),y={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},b={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},v={className:"params",begin:/\(/,end:/\)/,keywords:y,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:y,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[n,t.concat(c,r,/\s+/),n,r,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[v,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:[n,t.concat(c,r,/\s+/),n,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:y,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:y,relevance:0,contains:[b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,fL,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},fL,b]}}const pL="[A-Za-z$_][0-9A-Za-z$_]*",LCe=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],PCe=["true","false","null","undefined","NaN","Infinity"],RH=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],OH=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],IH=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],jCe=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],$Ce=[].concat(IH,RH,OH);function BCe(e){const t=e.regex,n=(K,{after:te})=>{const I="</"+K[0].slice(1);return K.input.indexOf(I,te)!==-1},r=pL,i={begin:"<>",end:"</>"},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(K,te)=>{const I=K[0].length+K.index,z=K.input[I];if(z==="<"||z===","){te.ignoreMatch();return}z===">"&&(n(K,{after:I})||te.ignoreMatch());let G;const B=K.input.substring(I);if(G=B.match(/^\s*=/)){te.ignoreMatch();return}if((G=B.match(/^\s+extends\s+/))&&G.index===0){te.ignoreMatch();return}}},c={$pattern:pL,keyword:LCe,literal:PCe,built_in:$Ce,"variable.language":jCe},u="[0-9](_?[0-9])*",d=`\\.(${u})`,p="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${p})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${p})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},y={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},b={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,y],subLanguage:"xml"}},v={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,y],subLanguage:"css"}},T={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,y],subLanguage:"graphql"}},A={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,y]},C={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},k=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,b,v,T,A,{match:/\$\d+/},h];y.contains=k.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(k)});const R=[].concat(C,y.contains),O=R.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(R)}]),N={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:O},D={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...RH,...OH]}},$={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},P={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[N],illegal:/%/},F={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function H(K){return t.concat("(?!",K.join("|"),")")}const q={match:t.concat(/\b/,H([...IH,"super","import","await"].map(K=>`${K}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},V={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},N]},U="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",W={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(U)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[N]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:O,CLASS_REFERENCE:L},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),$,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,b,v,T,A,C,{match:/\$\d+/},h,L,{scope:"attr",match:r+t.lookahead(":"),relevance:0},W,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[C,e.REGEXP_MODE,{className:"function",begin:U,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:O}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:a},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},P,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[N,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[N]},q,F,D,V,{match:/\$[(.]/}]}}const zCe="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",FCe={scope:"number",match:zCe,relevance:0};function UCe(e){const t={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:r},contains:[t,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,FCe,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var cf="[0-9](_*[0-9])*",l0=`\\.(${cf})`,c0="[0-9a-fA-F](_*[0-9a-fA-F])*",HCe={className:"number",variants:[{begin:`(\\b(${cf})((${l0})|\\.)?|(${l0}))[eE][+-]?(${cf})[fFdD]?\\b`},{begin:`\\b(${cf})((${l0})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${l0})[fFdD]?\\b`},{begin:`\\b(${cf})[fFdD]\\b`},{begin:`\\b0[xX]((${c0})\\.?|(${c0})?\\.(${c0}))[pP][+-]?(${cf})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${c0})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function qCe(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},a={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[a,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,a,i]}]};i.contains.push(o);const c={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},u={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},d=HCe,p=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},y=h;return y.variants[1].contains=[h],h.variants[1].contains=[y],{name:"Kotlin",aliases:["kt","kts","ktm","ktx"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,p,n,r,c,u,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,e.C_LINE_COMMENT_MODE,p],relevance:0},e.C_LINE_COMMENT_MODE,p,c,u,o,e.C_NUMBER_MODE]},p]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},c,u]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
445
445
  `},d]}}const VCe=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),GCe=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],KCe=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],YCe=[...GCe,...KCe],WCe=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),MH=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),DH=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),XCe=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),QCe=MH.concat(DH).sort().reverse();function ZCe(e){const t=VCe(e),n=QCe,r="and or not only",i="[\\w-]+",a="("+i+"|@\\{"+i+"\\})",o=[],c=[],u=function(k){return{className:"string",begin:"~?"+k+".*?"+k}},d=function(k,R,O){return{className:k,begin:R,relevance:O}},p={$pattern:/[a-z-]+/,keyword:r,attribute:WCe.join(" ")},h={begin:"\\(",end:"\\)",contains:c,keywords:p,relevance:0};c.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u("'"),u('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.UNICODE_RANGE,t.HEXCOLOR,h,d("variable","@@?"+i,10),d("variable","@\\{"+i+"\\}"),d("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const y=c.concat({begin:/\{/,end:/\}/,contains:o}),b={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(c)},v={begin:a+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+XCe.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:c}}]},T={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:p,returnEnd:!0,contains:c,relevance:0}},A={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:y}},S={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:a,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,d("keyword","all\\b"),d("variable","@\\{"+i+"\\}"),{begin:"\\b("+YCe.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,d("selector-tag",a,0),d("selector-id","#"+a),d("selector-class","\\."+a,0),d("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+MH.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+DH.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:y},{begin:"!important"},t.FUNCTION_DISPATCH]},C={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[S]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,T,A,C,v,S,b,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function JCe(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[t,n]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},a={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},o={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[t]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[e.HASH_COMMENT_MODE,t,n,r,i,a,o]}}function eNe(e){const t=e.regex,n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},r={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},a={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},c=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,c,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},d={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},p={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=e.inherit(d,{contains:[]}),y=e.inherit(p,{contains:[]});d.contains.push(y),p.contains.push(h);let b=[n,u];return[d,p,h,y].forEach(S=>{S.contains=S.contains.concat(b)}),b=b.concat(d,p),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:b},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:b}]}]},n,a,r,d,p,{className:"quote",begin:"^>\\s+",contains:b,end:"$"},i,u,o,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function tNe(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a=t.concat(/[A-Z]+/,n),o={scope:"variable",match:"\\$+"+r},c={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},u={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},d=e.inherit(e.APOS_STRING_MODE,{illegal:null}),p=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(u)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(u),"on:begin":(Y,V)=>{V.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,V)=>{V.data._beginMatch!==Y[1]&&V.ignoreMatch()}},y=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),b=`[
@@ -1,4 +1,4 @@
1
- import{a as M,I as H,u as Z,r as i,j as e,B as y,J as De,K as Ae,w as ze,l as Fe,m as Te,v as _e,k as Me,P as He,H as ce,L as Ue,q as K,s as de,i as Be,N as ue,O as re,T as Ve,V as $e,A as ie,Y as qe,Z as Ke,_ as Ze,$ as Ge,t as Je,a0 as We,e as Qe,a1 as Ye,a2 as Xe,y as et,z as tt,a3 as nt,a4 as st,a5 as rt,F as it,Q as ot,a6 as at,a7 as lt,G as ct}from"./mermaid-HWGCJPDP-kxkB991i.js";/**
1
+ import{a as M,I as H,u as Z,r as i,j as e,B as y,J as De,K as Ae,w as ze,l as Fe,m as Te,v as _e,k as Me,P as He,H as ce,L as Ue,q as K,s as de,i as Be,N as ue,O as re,T as Ve,V as $e,A as ie,Y as qe,Z as Ke,_ as Ze,$ as Ge,t as Je,a0 as We,e as Qe,a1 as Ye,a2 as Xe,y as et,z as tt,a3 as nt,a4 as st,a5 as rt,F as it,Q as ot,a6 as at,a7 as lt,G as ct}from"./mermaid-HWGCJPDP-DfsU5ofC.js";/**
2
2
  * @license lucide-react v1.46.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -82,7 +82,7 @@
82
82
  "apps/web/src/SourceCode.tsx": "bc80927cba80ac589dd89c8e0f9d1108dcf48d88a78e650051b084b9364c5001",
83
83
  "apps/web/src/StartOptions.tsx": "bd2fd16712e378d345ea15b95464fd469aba8645f5ace300ddeec298a001a2f4",
84
84
  "apps/web/src/StartSelection.tsx": "9dd864da06ef31c40186844a95bef2859111390654e84dde5cc9cfecc14bcb5c",
85
- "apps/web/src/StartTiles.tsx": "d836ec958a55428c6d34d90cbba64814478243ce38aafee9cffcd7db4b5d4819",
85
+ "apps/web/src/StartTiles.tsx": "63b3c5f462c6db759203856d81272ff985bb097f3933404e6fd093dcd5ce0ead",
86
86
  "apps/web/src/StatusGroup.tsx": "e4638f895a6b03381b1927adadfef28c5c6c11d9291fb46af5d6136663e7dc98",
87
87
  "apps/web/src/SurfaceShortcuts.tsx": "b05fbcb3d89ca185caec1b3ab3cec0383e5cd8fb6d55066b1660340f1f2e8126",
88
88
  "apps/web/src/theme.ts": "5752186de98b10b18c9aeb7c63aeae1901021b9ac1fb5b2e7548e27287de318e",
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <link rel="stylesheet" href="/ragents.css" />
7
7
  <title>RAgents</title>
8
- <script type="module" crossorigin src="/assets/main-DlzW4t4c.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/mermaid-HWGCJPDP-kxkB991i.js">
8
+ <script type="module" crossorigin src="/assets/main-C7JeZFjs.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/mermaid-HWGCJPDP-DfsU5ofC.js">
10
10
  <link rel="stylesheet" crossorigin href="/assets/mermaid-HWGCJPDP-BPn4aV2r.css">
11
11
  </head>
12
12
  <body>
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <link rel="stylesheet" href="/ragents.css" />
7
7
  <title>RAgents Panel</title>
8
- <script type="module" crossorigin src="/assets/runPanel-BJEFQ__w.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/mermaid-HWGCJPDP-kxkB991i.js">
8
+ <script type="module" crossorigin src="/assets/runPanel-ZT6TPDLM.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/mermaid-HWGCJPDP-DfsU5ofC.js">
10
10
  <link rel="stylesheet" crossorigin href="/assets/mermaid-HWGCJPDP-BPn4aV2r.css">
11
11
  </head>
12
12
  <body>
@@ -6,7 +6,7 @@ const NEW_CHAT = { category: "Ohne Vorlage", title: "Neuer Chat", description: "
6
6
 
7
7
  const sectionClass = "flex items-baseline gap-2 text-[0.66rem] font-bold uppercase tracking-[0.06em] text-muted-foreground";
8
8
  const countClass = "font-mono text-[0.62rem] font-normal tracking-normal opacity-80";
9
- const tileClass = "group/tile flex h-full min-w-0 flex-col gap-1.5 rounded-[12px] border border-border-soft bg-card p-2.5 text-left [--tone:var(--primary)]"
9
+ const tileClass = "group/tile flex h-full w-full min-w-0 flex-col gap-1.5 rounded-[12px] border border-border-soft bg-card p-2.5 text-left [--tone:var(--primary)]"
10
10
  + " enabled:hover:border-border enabled:hover:bg-accent/40 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring/60 disabled:opacity-60";
11
11
  const entryIcon = (entry: ConnectionEntry): ReactNode => entry.kind === "skill"
12
12
  ? <BookIcon aria-hidden className="size-3.5" />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schlenkr/ragents",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "RAgents-Host: Server, Engine, Plugins und Werkzeuge ohne Quell-Checkout",
5
5
  "keywords": [
6
6
  "agents",
@@ -70,6 +70,6 @@
70
70
  "yaml": "2.9.0"
71
71
  },
72
72
  "ragents": {
73
- "hostVersion": "765802e9cb0252b2a312b2b1b09a557ef8bf13cc"
73
+ "hostVersion": "3634c32d41f5905b3880737716052b3c28f90ced"
74
74
  }
75
75
  }
@@ -19,6 +19,8 @@ export type ToolContributor = {
19
19
  name: string;
20
20
  descriptors: readonly ToolDescriptor[];
21
21
  dynamic?: boolean;
22
+ /** Ob die Werkzeuge in einem Run gelten; ohne Angabe in jedem, sonst fehlen sie dort ganz. */
23
+ runCondition?: (runId: string) => boolean;
22
24
  tools: (context: PluginContext) => readonly RunFunction[] | Promise<readonly RunFunction[]>;
23
25
  };
24
26
 
@@ -74,6 +76,9 @@ export class ToolRegistry implements ToolProvider {
74
76
  const taken = new Set(agentTools.map((entry) => entry.name));
75
77
 
76
78
  for (const plugin of this.#plugins) {
79
+ if (plugin.runCondition && !plugin.runCondition(context.runId))
80
+ continue;
81
+
77
82
  const tools = await plugin.tools(context);
78
83
  this.#assertDescriptors(plugin, tools);
79
84
 
@@ -27,6 +27,7 @@ export {
27
27
  PluginHost,
28
28
  ProfileContributionRegistry,
29
29
  PromptContributionRegistry,
30
+ RunConditionRegistry,
30
31
  SessionMetadataContributionRegistry,
31
32
  SkillContributionRegistry,
32
33
  StartEntryContributionRegistry,
@@ -41,6 +41,7 @@ import type {
41
41
  RAgentsPlugin,
42
42
  ServiceToken,
43
43
  RegisteredStartOption,
44
+ RunCondition,
44
45
  SessionLifecycleContribution,
45
46
  SessionMetadata,
46
47
  SessionStartedContext,
@@ -86,6 +87,24 @@ class ContributionRegistry<T extends { id: string }> {
86
87
  }
87
88
  }
88
89
 
90
+ /** Die Laufbedingung je Plugin; ein Plugin ohne gilt in jedem Run. */
91
+ export class RunConditionRegistry {
92
+ readonly #conditions = new Map<string, RunCondition>();
93
+
94
+ register(owner: string, condition: RunCondition): void {
95
+ if (this.#conditions.has(owner)) throw new Error(`Plugin ${owner} hat bereits eine Laufbedingung`);
96
+ this.#conditions.set(owner, condition);
97
+ }
98
+
99
+ has(owner: string): boolean {
100
+ return this.#conditions.has(owner);
101
+ }
102
+
103
+ applies(owner: string, runId: string): boolean {
104
+ return this.#conditions.get(owner)?.(runId) ?? true;
105
+ }
106
+ }
107
+
89
108
  export class MethodContributionRegistry {
90
109
  readonly #methods = new ContributionRegistry<{ id: string; contribution: MethodContribution }>("Methode");
91
110
 
@@ -219,6 +238,11 @@ export class OperationContributionRegistry {
219
238
 
220
239
  export class AgentContributionRegistry {
221
240
  readonly #contributions = new ContributionRegistry<AgentContribution>("Agent-Beitrag");
241
+ readonly #conditions: RunConditionRegistry;
242
+
243
+ constructor(conditions = new RunConditionRegistry()) {
244
+ this.#conditions = conditions;
245
+ }
222
246
 
223
247
  register(owner: string, contributions: readonly AgentContribution[]): void {
224
248
  for (const contribution of contributions) {
@@ -230,7 +254,9 @@ export class AgentContributionRegistry {
230
254
  }
231
255
 
232
256
  resolve(context: AgentContributionContext): readonly AgentHook[] {
233
- return this.#contributions.entries().map(({ value }) => agentHookOf(value, context));
257
+ return this.#contributions.entries()
258
+ .filter(({ owner }) => this.#conditions.applies(owner, context.runId))
259
+ .map(({ value }) => agentHookOf(value, context));
234
260
  }
235
261
 
236
262
  describe(): readonly PublicAgentHookContribution[] {
@@ -246,6 +272,11 @@ export class AgentContributionRegistry {
246
272
 
247
273
  export class ToolContributionRegistry {
248
274
  readonly #contributors: Owned<ToolContributor>[] = [];
275
+ readonly #conditions: RunConditionRegistry;
276
+
277
+ constructor(conditions = new RunConditionRegistry()) {
278
+ this.#conditions = conditions;
279
+ }
249
280
 
250
281
  register(owner: string, contributors: readonly ToolContributor[]): void {
251
282
  for (const contributor of contributors) {
@@ -278,7 +309,9 @@ export class ToolContributionRegistry {
278
309
  }
279
310
 
280
311
  entries(): readonly ToolContributor[] {
281
- return this.#contributors.map(({ value }) => value);
312
+ return this.#contributors.map(({ owner, value }) => this.#conditions.has(owner)
313
+ ? { ...value, runCondition: (runId: string) => this.#conditions.applies(owner, runId) }
314
+ : value);
282
315
  }
283
316
 
284
317
  describe(): readonly PublicToolDescriptor[] {
@@ -295,6 +328,11 @@ export class ToolContributionRegistry {
295
328
 
296
329
  export class PromptContributionRegistry {
297
330
  readonly #prompts = new ContributionRegistry<PromptContribution>("Prompt-Beitrag");
331
+ readonly #conditions: RunConditionRegistry;
332
+
333
+ constructor(conditions = new RunConditionRegistry()) {
334
+ this.#conditions = conditions;
335
+ }
298
336
 
299
337
  register(owner: string, prompts: readonly PromptContribution[]): void {
300
338
  this.#prompts.register(owner, prompts);
@@ -330,10 +368,13 @@ export class PromptContributionRegistry {
330
368
  })));
331
369
  }
332
370
 
333
- /** Die Beiträge, die für diesen Run anders lauten als im Schnappschuss; alles andere bleibt der gerenderte Text. */
371
+ /** Die Beiträge, die für diesen Run anders lauten als im Schnappschuss; ein leerer Text fehlt dort, alles andere bleibt der gerenderte Text. */
334
372
  runOverrides(runId: string): ReadonlyMap<string, string> {
335
- return new Map([...this.#prompts.entries()].flatMap(({ value }) =>
336
- value.renderForRun ? [[value.id, value.renderForRun(runId).trim()] as const] : []));
373
+ return new Map([...this.#prompts.entries()].flatMap(({ owner, value }) => {
374
+ if (!this.#conditions.applies(owner, runId)) return [[value.id, ""] as const];
375
+ const text = value.renderForRun?.(runId);
376
+ return text === undefined ? [] : [[value.id, text.trim()] as const];
377
+ }));
337
378
  }
338
379
 
339
380
  static handlebarsContext(context: PromptRenderContext): Record<string, unknown> {
@@ -343,6 +384,11 @@ export class PromptContributionRegistry {
343
384
 
344
385
  export class SkillContributionRegistry {
345
386
  readonly #skills = new ContributionRegistry<SkillContribution>("Skill-Beitrag");
387
+ readonly #conditions: RunConditionRegistry;
388
+
389
+ constructor(conditions = new RunConditionRegistry()) {
390
+ this.#conditions = conditions;
391
+ }
346
392
 
347
393
  register(owner: string, skills: readonly SkillContribution[]): void {
348
394
  for (const skill of skills) {
@@ -385,7 +431,7 @@ export class SkillContributionRegistry {
385
431
  id: value.id,
386
432
  owner,
387
433
  audiences: value.audiences ?? allAudiences,
388
- paths: await value.paths(context),
434
+ paths: context && !this.#conditions.applies(owner, context.runId) ? [] : await value.paths(context),
389
435
  })));
390
436
  }
391
437
  }
@@ -1068,10 +1114,11 @@ export class PluginHost {
1068
1114
  readonly channels = new ChannelContributionRegistry();
1069
1115
  readonly http = new HttpContributionRegistry();
1070
1116
  readonly operations = new OperationContributionRegistry();
1071
- readonly agentRuntime = new AgentContributionRegistry();
1072
- readonly tools = new ToolContributionRegistry();
1073
- readonly prompts = new PromptContributionRegistry();
1074
- readonly skills = new SkillContributionRegistry();
1117
+ readonly runConditions = new RunConditionRegistry();
1118
+ readonly agentRuntime = new AgentContributionRegistry(this.runConditions);
1119
+ readonly tools = new ToolContributionRegistry(this.runConditions);
1120
+ readonly prompts = new PromptContributionRegistry(this.runConditions);
1121
+ readonly skills = new SkillContributionRegistry(this.runConditions);
1075
1122
  readonly startEntries = new StartEntryContributionRegistry();
1076
1123
  readonly profiles = new ProfileContributionRegistry();
1077
1124
  readonly script = new ScriptContributionRegistry();
@@ -1121,6 +1168,7 @@ export class PluginHost {
1121
1168
  agentRuntime: (...entries) => this.agentRuntime.register(manifest.id, entries),
1122
1169
  profiles: (...entries) => this.profiles.register(manifest.id, entries),
1123
1170
  prompts: (...entries) => this.prompts.register(manifest.id, entries),
1171
+ runCondition: (condition) => this.runConditions.register(manifest.id, condition),
1124
1172
  provide: (token, service) => this.#services.provide(manifest.id, token, service),
1125
1173
  service: (token) => this.#services.require(token),
1126
1174
  optionalService: (token) => this.#services.optional(token),
@@ -277,10 +277,13 @@ export interface PromptContribution {
277
277
  delivery?: "initial" | "on-demand";
278
278
  requiresTools?: readonly string[];
279
279
  render: (context: PromptRenderContext) => string | Promise<string>;
280
- /** Hängt der Beitrag am einzelnen Run, ersetzt dieser Text den von `render` - synchron, damit der Turn ihn ohne Warten hat. */
281
- renderForRun?: (runId: string) => string;
280
+ /** Hängt der Beitrag am einzelnen Run, ersetzt dieser Text den von `render`, undefined behält ihn - synchron, damit der Turn ihn ohne Warten hat. */
281
+ renderForRun?: (runId: string) => string | undefined;
282
282
  }
283
283
 
284
+ /** Ob die laufbezogenen Beiträge eines Plugins in einem Run gelten; der Host fragt je Run, ein Wurf lässt dessen Turn mit dieser Ursache scheitern. */
285
+ export type RunCondition = (runId: string) => boolean;
286
+
284
287
  export type ModelProviderConfig = Parameters<ModelRuntime["registerProvider"]>[1];
285
288
 
286
289
  export interface ModelProviderRegistration {
@@ -420,6 +423,8 @@ export interface PluginRegistration {
420
423
  agentRuntime: (...contributions: readonly AgentContribution[]) => void;
421
424
  profiles: (...contributions: readonly ProfileContribution[]) => void;
422
425
  prompts: (...contributions: readonly PromptContribution[]) => void;
426
+ /** Prompts, Funktionen, Skills und Agent-Hooks dieses Plugins gelten nur in Runs, für die die Bedingung zutrifft; höchstens eine je Plugin. */
427
+ runCondition: (condition: RunCondition) => void;
423
428
  provide: <T>(token: ServiceToken<T>, service: T) => void;
424
429
  service: <T>(token: ServiceToken<T>) => T;
425
430
  optionalService: <T>(token: ServiceToken<T>) => T | undefined;
@@ -1,7 +1,7 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import path from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
- import { compareVersions, nextVersion, readVersion, versionLine, writeHostPackageVersion, writeVersion } from "../publish-version.ts";
4
+ import { compareVersions, readVersion, releaseVersion, versionLine, writeHostPackageVersion, writeVersion } from "../publish-version.ts";
5
5
  import { buildPackage, PACKAGE_FOLDER, PACKAGE_NAME } from "./build-package.ts";
6
6
 
7
7
  const repositoryRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
@@ -121,11 +121,12 @@ const main = async (): Promise<void> => {
121
121
  if (!token) throw new Error(`npm_key fehlt: der npm-Token mit Schreibrecht auf ${PACKAGE_NAME}.\n${usage}`);
122
122
  const manifestFile = path.join(repositoryRoot, "package.json");
123
123
  const published = publishedVersions(PACKAGE_NAME, runNpm);
124
- const next = nextVersion(readVersion(manifestFile), published);
125
- console.log(versionLine(next));
126
124
  const extensionManifestFile = path.join(repositoryRoot, "apps", "vscode", "package.json");
125
+ const next = releaseVersion([readVersion(manifestFile), readVersion(extensionManifestFile)], published);
126
+ console.log(versionLine(next));
127
127
  if (!dryRun) {
128
128
  writeVersion(manifestFile, next.version);
129
+ writeVersion(extensionManifestFile, next.version);
129
130
  writeHostPackageVersion(extensionManifestFile, next.version);
130
131
  }
131
132
  const built = await buildPackage(path.join(repositoryRoot, "dist", PACKAGE_FOLDER));