@vpxa/aikit 0.1.56 → 0.1.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vpxa/aikit",
3
- "version": "0.1.56",
3
+ "version": "0.1.58",
4
4
  "type": "module",
5
5
  "description": "Local-first AI developer toolkit — knowledge base, code analysis, context management, and developer tools for LLM agents",
6
6
  "license": "MIT",
@@ -116,6 +116,10 @@ Load them: \`tool_search_tool_regex({ pattern: "aikit" })\`
116
116
  | Architecture diagrams | \`c4-architecture\` | When documenting or reviewing architecture — C4 Mermaid diagrams. |
117
117
  | Architecture decisions | \`adr-skill\` | When making non-trivial technical decisions — executable ADRs. |
118
118
  | Rich presentation | \`present\` | When presenting dashboards, charts, tables, or complex visual content to users. |
119
+ | TypeScript patterns | \`typescript\` | Before TypeScript implementation — type system, compiler config, advanced types. |
120
+ | React patterns | \`react\` | Before React work — component architecture, React 19 APIs, Server Components. |
121
+ | Frontend design | \`frontend-design\` | Before UI/UX work — visual design, typography, color, layout, accessibility. |
122
+ | Multi-agent orchestration | \`multi-agents-development\` | Before delegating to multiple agents — task decomposition, dispatch, review pipelines. |
119
123
 
120
124
  ### Tool Categories
121
125
 
@@ -35,8 +35,8 @@
35
35
  --aikit-warning: var(--color-text-warning, var(--warning));
36
36
  --aikit-error: var(--color-text-danger, var(--error));
37
37
  --aikit-info: var(--color-text-info, var(--accent));
38
- --aikit-code-bg: var(--color-background-inverse, var(--code-bg));
39
- --aikit-code-fg: var(--color-text-inverse, var(--code-fg));
38
+ --aikit-code-bg: var(--code-bg);
39
+ --aikit-code-fg: var(--code-fg);
40
40
  --aikit-font-sans: var(--font-sans);
41
41
  --aikit-font-mono: var(--font-mono);
42
42
  --aikit-radius: var(--border-radius-md, var(--radius));
@@ -241,7 +241,7 @@
241
241
  justify-content: space-between;
242
242
  align-items: center;
243
243
  padding: 6px 12px;
244
- background: rgba(255,255,255,0.05);
244
+ background: color-mix(in srgb, var(--fg) 5%, transparent);
245
245
  font-size: 0.75rem;
246
246
  color: var(--accent-light);
247
247
  }
@@ -254,7 +254,7 @@
254
254
  cursor: pointer;
255
255
  font-size: 0.75rem;
256
256
  }
257
- .block-code .copy-btn:hover { background: rgba(255,255,255,0.1); }
257
+ .block-code .copy-btn:hover { background: color-mix(in srgb, var(--fg) 10%, transparent); }
258
258
  .block-code pre { padding: 12px 16px; margin: 0; font-size: 0.85em; overflow-x: auto; }
259
259
 
260
260
  /* Tree view */
@@ -280,7 +280,7 @@
280
280
  box-shadow: var(--shadow);
281
281
  transition: box-shadow 0.15s;
282
282
  }
283
- .card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.12); }
283
+ .card:hover { box-shadow: 0 4px 12px color-mix(in srgb, var(--fg) 12%, transparent); }
284
284
  .card-title { font-weight: 600; margin-bottom: 6px; }
285
285
  .card-body { font-size: 0.9rem; opacity: 0.85; }
286
286
  .card-badge {
@@ -431,10 +431,10 @@
431
431
  @keyframes spin { to { transform: rotate(360deg); } }
432
432
 
433
433
  /* Display mode toolbar */
434
- .display-mode-toolbar { position: fixed; bottom: 12px; right: 12px; display: flex; gap: 4px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.15); z-index: 1000; }
434
+ .display-mode-toolbar { position: fixed; bottom: 12px; right: 12px; display: flex; gap: 4px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 4px; box-shadow: 0 2px 8px color-mix(in srgb, var(--fg) 15%, transparent); z-index: 1000; }
435
435
  .dm-btn { border: none; background: transparent; color: var(--fg); cursor: pointer; padding: 4px 8px; border-radius: 4px; font-size: 14px; line-height: 1; }
436
436
  .dm-btn:hover { background: var(--border); }
437
- .dm-btn.dm-active { background: var(--accent); color: #fff; }
437
+ .dm-btn.dm-active { background: var(--accent); color: var(--bg); }
438
438
  </style>
439
439
  <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),l=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},u=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var l=r(i),u=0,d=l.length,f;u<d;u++)f=l[u],!a.call(e,f)&&f!==o&&t(e,f,{get:(e=>i[e]).bind(null,f),enumerable:!(s=n(i,f))||s.enumerable});return e},d=(e,t,n)=>(u(e,t,`default`),n&&u(n,t,`default`)),f=(n,r,a)=>(a=n==null?{}:e(i(n)),u(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),p=e=>a.call(e,`module.exports`)?e[`module.exports`]:u(t({},`__esModule`,{value:!0}),e);(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),Object.freeze({status:`aborted`});function m(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var h=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},g=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},_={};function v(e){return e&&Object.assign(_,e),_}function y(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function b(e,t){return typeof t==`bigint`?t.toString():t}function x(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function S(e){return e==null}function C(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function w(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}var T=Symbol(`evaluating`);function E(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==T)return r===void 0&&(r=T,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function D(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function O(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function k(e){return JSON.stringify(e)}function A(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var j=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function M(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var N=x(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function P(e){if(M(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(M(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function F(e){return P(e)?{...e}:Array.isArray(e)?[...e]:e}var I=new Set([`string`,`number`,`symbol`]);function L(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function R(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function z(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function ee(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var te={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function B(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return R(e,O(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return D(this,`shape`,e),e},checks:[]}))}function ne(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return R(e,O(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return D(this,`shape`,r),r},checks:[]}))}function re(e,t){if(!P(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return R(e,O(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return D(this,`shape`,n),n}}))}function ie(e,t){if(!P(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return R(e,O(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return D(this,`shape`,n),n}}))}function ae(e,t){return R(e,O(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return D(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function oe(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return R(t,O(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return D(this,`shape`,i),i},checks:[]}))}function se(e,t,n){return R(t,O(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return D(this,`shape`,i),i}}))}function ce(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function le(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function ue(e){return typeof e==`string`?e:e?.message}function de(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=ue(e.inst?._zod.def?.error?.(e))??ue(t?.error?.(e))??ue(n.customError?.(e))??ue(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function fe(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function pe(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var me=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,b,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},he=m(`$ZodError`,me),ge=m(`$ZodError`,me,{Parent:Error});function _e(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function ve(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}var ye=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new h;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>de(e,a,v())));throw j(t,i?.callee),t}return o.value},be=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>de(e,a,v())));throw j(t,i?.callee),t}return o.value},xe=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new h;return a.issues.length?{success:!1,error:new(e??he)(a.issues.map(e=>de(e,i,v())))}:{success:!0,data:a.value}},Se=xe(ge),Ce=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>de(e,i,v())))}:{success:!0,data:a.value}},we=Ce(ge),Te=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return ye(e)(t,n,i)},Ee=e=>(t,n,r)=>ye(e)(t,n,r),De=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return be(e)(t,n,i)},Oe=e=>async(t,n,r)=>be(e)(t,n,r),ke=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return xe(e)(t,n,i)},Ae=e=>(t,n,r)=>xe(e)(t,n,r),je=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return Ce(e)(t,n,i)},Me=e=>async(t,n,r)=>Ce(e)(t,n,r),Ne=/^[cC][^\s-]{8,}$/,Pe=/^[0-9a-z]+$/,Fe=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Ie=/^[0-9a-vA-V]{20}$/,Le=/^[A-Za-z0-9]{27}$/,Re=/^[a-zA-Z0-9_-]{21}$/,ze=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Be=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ve=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,He=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Ue=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function We(){return new RegExp(Ue,`u`)}var Ge=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ke=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,qe=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Je=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ye=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Xe=/^[A-Za-z0-9_-]*$/,Ze=/^\+[1-9]\d{6,14}$/,Qe=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,$e=RegExp(`^${Qe}$`);function et(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function tt(e){return RegExp(`^${et(e)}$`)}function nt(e){let t=et({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${Qe}T(?:${r})$`)}var rt=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},it=/^-?\d+$/,at=/^-?\d+(?:\.\d+)?$/,ot=/^(?:true|false)$/i,st=/^null$/i,ct=/^undefined$/i,lt=/^[^A-Z]*$/,ut=/^[^a-z]*$/,dt=m(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),ft={number:`number`,bigint:`bigint`,object:`date`},pt=m(`$ZodCheckLessThan`,(e,t)=>{dt.init(e,t);let n=ft[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),mt=m(`$ZodCheckGreaterThan`,(e,t)=>{dt.init(e,t);let n=ft[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ht=m(`$ZodCheckMultipleOf`,(e,t)=>{dt.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):w(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),gt=m(`$ZodCheckNumberFormat`,(e,t)=>{dt.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=te[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=it)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),_t=m(`$ZodCheckMaxLength`,(e,t)=>{var n;dt.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!S(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=fe(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),eee=m(`$ZodCheckMinLength`,(e,t)=>{var n;dt.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!S(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=fe(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),tee=m(`$ZodCheckLengthEquals`,(e,t)=>{var n;dt.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!S(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=fe(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),vt=m(`$ZodCheckStringFormat`,(e,t)=>{var n,r;dt.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),nee=m(`$ZodCheckRegex`,(e,t)=>{vt.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),ree=m(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=lt,vt.init(e,t)}),iee=m(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=ut,vt.init(e,t)}),aee=m(`$ZodCheckIncludes`,(e,t)=>{dt.init(e,t);let n=L(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),oee=m(`$ZodCheckStartsWith`,(e,t)=>{dt.init(e,t);let n=RegExp(`^${L(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),see=m(`$ZodCheckEndsWith`,(e,t)=>{dt.init(e,t);let n=RegExp(`.*${L(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),cee=m(`$ZodCheckOverwrite`,(e,t)=>{dt.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),lee=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
440
440
  `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
@@ -3722,7 +3722,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3722
3722
  ${Ttt}
3723
3723
  </iframe>`,`putIntoIFrame`),k9=V((e,t,n,r,i)=>{let a=e.append(`div`);a.attr(`id`,n),r&&a.attr(`style`,r);let o=a.append(`svg`).attr(`id`,t).attr(`width`,`100%`).attr(`xmlns`,_tt);return i&&o.attr(`xmlns:xlink`,i),o.append(`g`),e},`appendDivSvgG`),V(G7,`sandboxedIframe`),Mtt=V((e,t,n,r)=>{e.getElementById(t)?.remove(),e.getElementById(n)?.remove(),e.getElementById(r)?.remove()},`removeExistingElements`),Ntt=V(async function(e,t,n){T9();let r=W7(t);t=r.code;let i=Pu();H.debug(i),t.length>(i?.maxTextSize??ptt)&&(t=mtt);let a=`#`+e,o=`i`+e,s=`#`+o,l=`d`+e,u=`#`+l,d=V(()=>{let e=af(p?s:u).node();e&&`remove`in e&&e.remove()},`removeTempElements`),f=af(`body`),p=i.securityLevel===htt,m=i.securityLevel===gtt,h=i.fontFamily;n===void 0?(Mtt(document,e,l,o),p?(f=af(G7(af(`body`),o).nodes()[0].contentDocument.body),f.node().style.margin=0):f=af(`body`),k9(f,e,l)):(n&&(n.innerHTML=``),p?(f=af(G7(af(n),o).nodes()[0].contentDocument.body),f.node().style.margin=0):f=af(n),k9(f,e,l,`font-family: ${h}`,vtt));let g,_;try{g=await E9.fromText(t,{title:r.title})}catch(e){if(i.suppressErrorRendering)throw d(),e;g=await E9.fromText(`error`),_=e}let v=f.select(u).node(),y=g.type,b=v.firstChild,x=b.firstChild,S=g.renderer.getClasses?.(t,g),C=ktt(i,y,S,a),w=document.createElement(`style`);w.innerHTML=C,b.insertBefore(w,x);try{await g.renderer.draw(t,e,`11.14.0`,g)}catch(n){throw i.suppressErrorRendering?d():Wet.draw(t,e,`11.14.0`),n}let T=f.select(`${u} svg`),E=g.db.getAccTitle?.(),D=g.db.getAccDescription?.();Eet(y,T,E,D),f.select(`[id="${e}"]`).selectAll(`foreignobject > *`).attr(`xmlns`,ytt);let O=f.select(u).node().innerHTML;if(H.debug(`config.arrowMarkerAbsolute`,i.arrowMarkerAbsolute),O=Att(O,p,Eu(i.arrowMarkerAbsolute)),p){let e=f.select(u+` svg`).node();O=jtt(O,e)}else m||(O=na.sanitize(O,{ADD_TAGS:Ett,ADD_ATTR:Dtt,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(ctt(),_)throw _;return d(),{diagramType:y,svg:O,bindFunctions:g.db.bindFunctions}},`render`),V(Tet,`initialize`),A9=V((e,t={})=>{let{code:n}=U7(e);return E9.fromText(n,t)},`getDiagramFromText`),V(Eet,`addA11yInfo`),j9=Object.freeze({render:Ntt,parse:wet,getDiagramFromText:A9,initialize:Tet,getConfig:Pu,setConfig:Nu,getSiteConfig:Mu,updateSiteConfig:ule,reset:V(()=>{Iu()},`reset`),globalReset:V(()=>{Iu(Tu)},`globalReset`),defaultConfig:Tu}),qr(Pu().logLevel),Iu(Pu()),Ptt=V((e,t,n)=>{H.warn(e),Qx(e)?(n&&n(e.str,e.hash),t.push({...e,message:e.str,error:e})):(n&&n(e),e instanceof Error&&t.push({str:e.message,message:e.message,hash:e.name,error:e}))},`handleError`),M9=V(async function(e={querySelector:`.mermaid`}){try{await Ftt(e)}catch(t){if(Qx(t)&&H.error(t.str),z9.parseError&&z9.parseError(t),!e.suppressErrors)throw H.error(`Use the suppressErrors option to suppress these errors`),t}},`run`),Ftt=V(async function({postRenderCallback:e,querySelector:t,nodes:n}={querySelector:`.mermaid`}){let r=j9.getConfig();H.debug(`${e?``:`No `}Callback function found`);let i;if(n)i=n;else if(t)i=document.querySelectorAll(t);else throw Error(`Nodes and querySelector are both undefined`);H.debug(`Found ${i.length} diagrams`),r?.startOnLoad!==void 0&&(H.debug(`Start On Load: `+r?.startOnLoad),j9.updateSiteConfig({startOnLoad:r?.startOnLoad}));let a=new dS.InitIDGenerator(r.deterministicIds,r.deterministicIDSeed),o,s=[];for(let t of Array.from(i)){if(H.info(`Rendering diagram: `+t.id),t.getAttribute(`data-processed`))continue;t.setAttribute(`data-processed`,`true`);let n=`mermaid-${a.next()}`;o=t.innerHTML,o=fEe(dS.entityDecode(o)).trim().replace(/<br\s*\/?>/gi,`<br/>`);let r=dS.detectInit(o);r&&H.debug(`Detected early reinit: `,r);try{let{svg:r,bindFunctions:i}=await R9(n,o,t);t.innerHTML=r,e&&await e(n),i&&i(t)}catch(e){Ptt(e,s,z9.parseError)}}if(s.length>0)throw s[0]},`runThrowsErrors`),N9=V(function(e){j9.initialize(e)},`initialize`),Itt=V(async function(e,t,n){H.warn(`mermaid.init is deprecated. Please use run instead.`),e&&N9(e);let r={postRenderCallback:n,querySelector:`.mermaid`};typeof t==`string`?r.querySelector=t:t&&(t instanceof HTMLElement?r.nodes=[t]:r.nodes=t),await M9(r)},`init`),Ltt=V(async(e,{lazyLoad:t=!0}={})=>{T9(),du(...e),t===!1&&await ott()},`registerExternalDiagrams`),P9=V(function(){if(z9.startOnLoad){let{startOnLoad:e}=j9.getConfig();e&&z9.run().catch(e=>H.error(`Mermaid failed to initialize`,e))}},`contentLoaded`),typeof document<`u`&&window.addEventListener(`load`,P9,!1),Rtt=V(function(e){z9.parseError=e},`setParseErrorHandler`),F9=[],I9=!1,L9=V(async()=>{if(!I9){for(I9=!0;F9.length>0;){let e=F9.shift();if(e)try{await e()}catch(e){H.error(`Error executing queue`,e)}}I9=!1}},`executeQueue`),ztt=V(async(e,t)=>new Promise((n,r)=>{let i=V(()=>new Promise((i,a)=>{j9.parse(e,t).then(e=>{i(e),n(e)},e=>{H.error(`Error parsing`,e),z9.parseError?.(e),a(e),r(e)})}),`performCall`);F9.push(i),L9().catch(r)}),`parse`),R9=V((e,t,n)=>new Promise((r,i)=>{let a=V(()=>new Promise((a,o)=>{j9.render(e,t,n).then(e=>{a(e),r(e)},e=>{H.error(`Error parsing`,e),z9.parseError?.(e),o(e),i(e)})}),`performCall`);F9.push(a),L9().catch(i)}),`render`),z9={startOnLoad:!0,mermaidAPI:j9,parse:ztt,render:R9,init:Itt,run:M9,registerExternalDiagrams:Ltt,registerLayoutLoaders:wW,initialize:N9,parseError:void 0,contentLoaded:P9,setParseErrorHandler:Rtt,detectType:uu,registerIconPacks:TC,getRegisteredDiagramsMetadata:V(()=>Object.keys(lu).map(e=>({id:e})),`getRegisteredDiagramsMetadata`)},Btt=z9}));Vr();function B9(e){if(typeof e==`string`)return Htt(e);if(Array.isArray(e))return e.length===0?V9(`*Empty array*`):typeof e[0]==`object`&&e[0]!==null?U9(e):V9(e.map(e=>`- ${String(e)}`).join(`
3724
3724
  `));if(typeof e==`object`&&e){let t=e;return Array.isArray(t.nodes)&&Array.isArray(t.edges)?$tt(t):Array.isArray(t.metrics)?Qtt(t.metrics):W9(t)}return V9(String(e))}function Htt(e){let t=e.trim();if(/^(graph|flowchart|sequenceDiagram|classDiagram|stateDiagram|erDiagram|gantt|pie|gitGraph)\b/i.test(t))return H9(t);if(/^#{1,6}\s|^\s*[-*]\s|\*\*|__|\[.*\]\(|```/.test(t))return V9(t);if((t.startsWith(`{`)||t.startsWith(`[`))&&(t.endsWith(`}`)||t.endsWith(`]`)))try{return B9(JSON.parse(t))}catch{}return V9(t)}function Utt(e,t,n){let r=vr(`div`,`comparison-side ${n}`),i=e&&typeof e==`object`&&!Array.isArray(e)?e:null,a=String(i?.label??i?.title??t),o=Array.isArray(i?.items)?i.items:Array.isArray(e)?e:e==null?[]:[e];r.appendChild(vr(`div`,`comparison-label`,a));let s=vr(`ul`,`comparison-items`);for(let e of o)s.appendChild(vr(`li`,``,br(e)));return r.appendChild(s),r}function Wtt(e){let t=vr(`div`,`actions`);for(let n of e){if(n.type===`select`&&n.options){let e=document.createElement(`select`);e.className=`action-select`;let r=document.createElement(`option`);r.textContent=n.label,r.disabled=!0,r.selected=!0,e.appendChild(r);for(let t of n.options){let n=document.createElement(`option`);typeof t==`string`?(n.value=t,n.textContent=t):(n.value=t.value,n.textContent=t.label),e.appendChild(n)}t.appendChild(e);continue}let e=document.createElement(`button`);e.className=`action-btn ${n.variant??`default`}`,e.textContent=n.label,t.appendChild(e)}return t}function Gtt(e,t){switch(e.type){case`markdown`:return V9(String(e.value??``));case`mermaid`:return H9(String(e.value??``));case`table`:{let t=e.value;if(Array.isArray(t)){if(t.length>0&&Array.isArray(t[0])){let e=t,n=e[0].map(String);return U9(e.slice(1).map(e=>Object.fromEntries(n.map((t,n)=>[t,e[n]]))))}return U9(t)}if(t&&typeof t==`object`&&`headers`in t&&`rows`in t){let{headers:e,rows:n}=t;return U9(n.map(t=>Object.fromEntries(e.map((e,n)=>[e,t[n]]))))}return U9([])}case`code`:return Xtt(String(e.value??``),e.language);case`tree`:return W9(e.value);case`cards`:return Ztt(e.value);case`metrics`:return Qtt(e.value);case`graph`:return $tt(e.value);case`chart`:return Foe(e);case`kv`:{let t=e.value;return t&&typeof t==`object`&&!Array.isArray(t)?U9(Object.entries(t).map(([e,t])=>({Key:e,Value:t}))):V9(JSON.stringify(t,null,2))}case`comparison`:{let t=e.value;if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(`left`in e||`right`in e){let t=vr(`div`,`block block-comparison`);return t.appendChild(Utt(e.left,`Left`,`comparison-left`)),t.appendChild(Utt(e.right,`Right`,`comparison-right`)),t}if(Array.isArray(e.headers)&&Array.isArray(e.rows)){let t=e.headers;return U9(e.rows.map(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]]))))}if(Array.isArray(e.columns)){let t=e.columns,n=Math.max(...t.map(e=>e.items?.length??0)),r=[];for(let e=0;e<n;e++){let n={};for(let r of t)n[r.name]=r.items?.[e]??``;r.push(n)}return U9(r)}}return V9(JSON.stringify(t,null,2))}case`actions`:{let n=Array.isArray(e.value)?e.value:[],r=t?ent(n,t):Wtt(n);return r.classList.add(`block`,`block-actions`),r}case`timeline`:{let t=e.value;return Array.isArray(t)?U9(t.map(e=>{if(e&&typeof e==`object`){let t=e;return{Status:t.status??t.state??``,Time:t.time??t.date??t.timestamp??``,Description:t.label??t.description??t.title??t.text??``}}return{Status:``,Time:``,Description:String(e)}})):V9(JSON.stringify(t,null,2))}case`heading`:return V9(`## ${String(e.value??``)}`);default:return V9(JSON.stringify(e.value,null,2))}}function Ktt(e,t){let n=Gtt(e,t);return e.title&&n.insertBefore(vr(`div`,`block-title`,e.title),n.firstChild),n}function V9(e){let t=vr(`div`,`block block-markdown`);return t.innerHTML=Aoe(e),t}var qtt=null;function Jtt(){return qtt||=Br(()=>Promise.resolve().then(()=>(Vtt(),vet)).then(e=>(e.default.initialize({startOnLoad:!1,theme:`default`}),e.default)),void 0,import.meta.url),qtt}var Ytt=0;function H9(e){let t=vr(`div`,`block block-mermaid`),n=vr(`pre`,`mermaid-source`,e);t.appendChild(n);let r=`mermaid-${++Ytt}`;return Jtt().then(t=>t.render(r,e)).then(({svg:e})=>{t.innerHTML=e}).catch(()=>{n.classList.add(`mermaid-fallback`)}),t}function U9(e){let t=vr(`div`,`block block-table`);if(e.length===0)return V9(`*Empty table*`);let n=Object.keys(e[0]),r=-1,i=!0,a=[...e],o=``,s=document.createElement(`input`);s.className=`table-filter`,s.placeholder=`Filter...`,s.addEventListener(`input`,()=>{o=s.value.toLowerCase(),p()}),t.appendChild(s);let l=document.createElement(`table`),u=document.createElement(`thead`),d=document.createElement(`tr`);n.forEach((e,t)=>{let n=document.createElement(`th`);n.textContent=e;let a=vr(`span`,`sort-icon`,`⇅`);n.appendChild(a),n.addEventListener(`click`,()=>{r===t?i=!i:(r=t,i=!0),p()}),d.appendChild(n)}),u.appendChild(d),l.appendChild(u);let f=document.createElement(`tbody`);l.appendChild(f),t.appendChild(l);function p(){if(a=[...e],o&&(a=a.filter(e=>n.some(t=>String(e[t]??``).toLowerCase().includes(o)))),r>=0){let e=n[r];a.sort((t,n)=>{let r=String(t[e]??``),a=String(n[e]??``),o=r.localeCompare(a,void 0,{numeric:!0});return i?o:-o})}f.innerHTML=``;for(let e of a){let t=document.createElement(`tr`);for(let r of n){let n=document.createElement(`td`);n.textContent=String(e[r]??``),t.appendChild(n)}f.appendChild(t)}}return p(),t}function Xtt(e,t){let n=vr(`div`,`block block-code`),r=vr(`div`,`code-header`);r.appendChild(vr(`span`,``,t??`code`));let i=document.createElement(`button`);i.className=`copy-btn`,i.textContent=`Copy`,i.addEventListener(`click`,()=>{navigator.clipboard.writeText(e).then(()=>{i.textContent=`Copied!`,setTimeout(()=>{i.textContent=`Copy`},1500)})}),r.appendChild(i),n.appendChild(r);let a=document.createElement(`pre`),o=document.createElement(`code`);return o.textContent=e,a.appendChild(o),n.appendChild(a),n}function W9(e,t=0){let n=vr(`div`,t===0?`block block-tree`:``),r=typeof e.name==`string`?e.name:typeof e.label==`string`?e.label:null,i=Array.isArray(e.children)?e.children:null;if(r&&i){if(i.length===0)return vr(`div`,`tree-leaf`,`📄 ${r}`);let a=vr(`div`,`tree-node`),o=vr(`span`,`tree-toggle`,`▼`),s=vr(`div`,`tree-children`),l=!0;s.style.display=``,o.addEventListener(`click`,()=>{l=!l,o.textContent=l?`▼`:`▶`,s.style.display=l?``:`none`}),a.appendChild(o),a.appendChild(document.createTextNode(` ${r}`));for(let e of i)typeof e==`object`&&e&&!Array.isArray(e)?s.appendChild(W9(e,t+1)):s.appendChild(vr(`div`,`tree-leaf`,`📄 ${br(e)}`));for(let[n,r]of Object.entries(e))if(!(n===`name`||n===`label`||n===`children`))if(typeof r==`object`&&r&&!Array.isArray(r))s.appendChild(W9({[n]:r},t+1));else{let e=vr(`div`,`tree-leaf`);e.innerHTML=`<strong>${yr(n)}:</strong> ${yr(br(r))}`,s.appendChild(e)}return a.appendChild(s),n.appendChild(a),n}if(r)return n.appendChild(vr(`div`,`tree-leaf`,`📄 ${r}`)),n;for(let[r,i]of Object.entries(e))if(typeof i==`object`&&i&&!Array.isArray(i)){let e=vr(`div`,`tree-node`),a=vr(`span`,`tree-toggle`,`▼`),o=W9(i,t+1);o.className=`tree-children`;let s=!0;a.addEventListener(`click`,()=>{s=!s,a.textContent=s?`▼`:`▶`,o.style.display=s?``:`none`}),e.appendChild(a),e.appendChild(document.createTextNode(` ${r}`)),e.appendChild(o),n.appendChild(e)}else{let e=vr(`div`,`tree-leaf`);e.innerHTML=`<strong>${yr(r)}:</strong> ${yr(br(i))}`,n.appendChild(e)}return n}function Ztt(e){let t=vr(`div`,`block block-cards`);for(let n of e){let e=vr(`div`,`card`);if(n.title&&e.appendChild(vr(`div`,`card-title`,String(n.title))),(n.body||n.description)&&e.appendChild(vr(`div`,`card-body`,String(n.body??n.description))),n.badge||n.status){let t=String(n.variant??n.status??`default`).toLowerCase(),r=[`success`,`warning`,`error`].includes(t)?t:``;e.appendChild(vr(`span`,`card-badge ${r}`,String(n.badge??n.status)))}t.appendChild(e)}return t}function Qtt(e){let t=vr(`div`,`block block-metrics`);for(let n of e){let e=vr(`div`,`metric`);e.appendChild(vr(`div`,`metric-value`,String(n.value))),e.appendChild(vr(`div`,`metric-label`,n.label)),t.appendChild(e)}return t}function $tt(e){let t=[`graph LR`],n=new Map;for(let r of e.nodes){let e=String(r.id??r.name??``),i=String(r.label??r.name??e);n.set(e,i),t.push(` ${xr(e)}["${yr(i)}"]`)}for(let n of e.edges){let e=xr(String(n.source??n.from??``)),r=xr(String(n.target??n.to??``)),i=n.label?`|${yr(String(n.label))}|`:``;t.push(` ${e} -->${i} ${r}`)}return H9(t.join(`
3725
- `))}function ent(e,t){let n=vr(`div`,`actions`);for(let r of e)if(r.type===`select`&&r.options){let e=document.createElement(`select`);e.className=`action-select`;let i=document.createElement(`option`);i.textContent=r.label,i.disabled=!0,i.selected=!0,e.appendChild(i);for(let t of r.options){let n=document.createElement(`option`);typeof t==`string`?(n.value=t,n.textContent=t):(n.value=t.value,n.textContent=t.label),e.appendChild(n)}e.addEventListener(`change`,()=>{t.emitAction(r,e.value)}),n.appendChild(e)}else{let e=document.createElement(`button`);e.className=`action-btn ${r.variant??`default`}`,e.textContent=r.label,e.addEventListener(`click`,()=>t.emitAction(r)),n.appendChild(e)}return n}function tnt(e){return function(t,n){let r=n??t.label;e.updateModelContext({content:[{type:`text`,text:`Latest UI action: ${t.label}${n?` → ${n}`:``}`}],structuredContent:{actionId:t.id,actionType:t.type,label:t.label,value:r,timestamp:new Date().toISOString()}}),e.sendMessage({role:`user`,content:[{type:`text`,text:`User selected: ${t.label}${n?` → ${n}`:``}`}]})}}function nnt(e){return{callTool:(t,n)=>e.callServerTool({name:t,arguments:n}),sendMessage:async t=>{await e.sendMessage({role:`user`,content:[{type:`text`,text:t}]})},updateContext:async t=>{await e.updateModelContext({content:[{type:`text`,text:t}]})}}}var rnt=class{app;currentMode=`inline`;availableModes=[];toolbar=null;constructor(e){this.app=e}apply(e){e.displayMode&&(this.currentMode=e.displayMode),e.availableDisplayModes&&(this.availableModes=e.availableDisplayModes),this.updateToolbar()}async requestMode(e){try{let t=await this.app.requestDisplayMode({mode:e});return this.currentMode=t.mode,document.documentElement.dataset.display=t.mode,this.updateToolbar(),t.mode}catch{return this.currentMode}}updateToolbar(){if(this.availableModes.length<=1){this.toolbar?.remove(),this.toolbar=null;return}this.toolbar||=this.createToolbar(),this.renderButtons()}createToolbar(){let e=document.createElement(`div`);return e.className=`display-mode-toolbar`,document.body.appendChild(e),e}renderButtons(){if(!this.toolbar)return;this.toolbar.innerHTML=``;let e={inline:`▣`,fullscreen:`⛶`,pip:`◱`};for(let t of this.availableModes){let n=document.createElement(`button`);n.className=`dm-btn${t===this.currentMode?` dm-active`:``}`,n.textContent=e[t]??t,n.title=t,n.addEventListener(`click`,()=>this.requestMode(t)),this.toolbar.appendChild(n)}}},int=[[400,`compact`],[800,`comfortable`]],ant=class{root;displayMode=`inline`;sizeClass=`comfortable`;constructor(e){this.root=e??document.documentElement}apply(e){this.applyDisplayMode(e),this.applyContainerDimensions(e),this.applySafeArea(e),this.applyPlatform(e),this.applyDeviceCapabilities(e)}getDisplayMode(){return this.displayMode}getSize(){return this.sizeClass}applyDisplayMode(e){e.displayMode&&(this.displayMode=e.displayMode,this.root.dataset.display=e.displayMode)}applyContainerDimensions(e){let t=e.containerDimensions;if(!t)return;let n=this.root.style,r=`width`in t?t.width:`maxWidth`in t?t.maxWidth:void 0,i=`height`in t?t.height:`maxHeight`in t?t.maxHeight:void 0;r!==void 0&&(n.setProperty(`--aikit-container-w`,`${r}px`),this.sizeClass=this.deriveSizeClass(r),this.root.dataset.size=this.sizeClass,n.setProperty(`--aikit-content-max-width`,this.deriveMaxWidth(r)),n.setProperty(`--aikit-body-pad-x`,this.derivePadX()),n.setProperty(`--aikit-grid-cols`,this.deriveGridCols()),n.setProperty(`--aikit-card-min`,this.deriveCardMin()),n.setProperty(`--aikit-metric-min`,this.deriveMetricMin())),i!==void 0&&(n.setProperty(`--aikit-container-h`,`${i}px`),n.setProperty(`--aikit-body-pad-y`,this.derivePadY()))}applySafeArea(e){let t=e.safeAreaInsets;if(!t)return;let n=this.root.style;n.setProperty(`--aikit-safe-top`,`${t.top}px`),n.setProperty(`--aikit-safe-right`,`${t.right}px`),n.setProperty(`--aikit-safe-bottom`,`${t.bottom}px`),n.setProperty(`--aikit-safe-left`,`${t.left}px`)}applyPlatform(e){e.platform&&(this.root.dataset.platform=e.platform)}applyDeviceCapabilities(e){let t=e.deviceCapabilities;t&&(t.touch!==void 0&&(this.root.dataset.touch=String(t.touch)),t.hover!==void 0&&(this.root.dataset.hover=String(t.hover)))}deriveSizeClass(e){for(let[t,n]of int)if(e<t)return n;return`full`}deriveMaxWidth(e){return this.displayMode===`pip`?`100%`:this.displayMode===`fullscreen`?`none`:e<960?`100%`:`900px`}derivePadX(){return this.sizeClass===`compact`?`8px`:`16px`}derivePadY(){return this.sizeClass===`compact`?`8px`:`16px`}deriveGridCols(){switch(this.sizeClass){case`compact`:return`1`;case`comfortable`:return`2`;case`full`:return`3`}}deriveCardMin(){return this.sizeClass===`compact`?`100%`:`250px`}deriveMetricMin(){return this.sizeClass===`compact`?`100px`:`150px`}},ont=class{templates=new Map;register(e){this.templates.set(e.name,e)}get(e){return this.templates.get(e)}detect(e){let t,n=0;for(let r of this.templates.values()){let i=r.detect(e);i>n&&(n=i,t=r)}return n>0?t:void 0}getAll(){return[...this.templates.values()]}},snt={"--color-background-primary":`--aikit-bg`,"--color-background-secondary":`--aikit-surface`,"--color-background-tertiary":`--aikit-surface2`,"--color-text-primary":`--aikit-text`,"--color-text-secondary":`--aikit-muted`,"--color-border-primary":`--aikit-border`,"--color-ring-primary":`--aikit-accent`,"--color-text-success":`--aikit-success`,"--color-text-danger":`--aikit-error`,"--color-text-warning":`--aikit-warning`,"--color-text-info":`--aikit-info`,"--color-background-inverse":`--aikit-code-bg`,"--color-text-inverse":`--aikit-code-fg`,"--font-sans":`--aikit-font-sans`,"--font-mono":`--aikit-font-mono`,"--border-radius-md":`--aikit-radius`,"--shadow-sm":`--aikit-shadow`},cnt={"--aikit-bg":`--bg`,"--aikit-text":`--fg`,"--aikit-surface":`--surface`,"--aikit-border":`--border`,"--aikit-accent":`--accent`,"--aikit-success":`--success`,"--aikit-warning":`--warning`,"--aikit-error":`--error`,"--aikit-code-bg":`--code-bg`,"--aikit-code-fg":`--code-fg`,"--aikit-font-sans":`--font-sans`,"--aikit-font-mono":`--font-mono`,"--aikit-radius":`--radius`,"--aikit-shadow":`--shadow`},lnt=class{root;constructor(e){this.root=e??document.documentElement}apply(e){e.theme&&Eoe(e.theme),e.styles?.variables&&(Doe(e.styles.variables),this.mapTokens(e.styles.variables)),e.styles?.css?.fonts&&this.injectFonts(e.styles.css.fonts)}getTheme(){return Toe()}mapTokens(e){let t=this.root.style;for(let[n,r]of Object.entries(snt)){let i=e[n];if(i){t.setProperty(r,i);let e=cnt[r];e&&t.setProperty(e,i)}}let n=e[`--color-ring-primary`];n&&(t.setProperty(`--aikit-accent-light`,n),t.setProperty(`--accent-light`,n),t.setProperty(`--aikit-hover-bg`,`color-mix(in srgb, ${n} 10%, transparent)`))}injectFonts(e){let t=`aikit-host-fonts`;if(document.getElementById(t))return;let n=document.createElement(`style`);n.id=t,n.textContent=e,document.head.appendChild(n)}},unt=`
3725
+ `))}function ent(e,t){let n=vr(`div`,`actions`);for(let r of e)if(r.type===`select`&&r.options){let e=document.createElement(`select`);e.className=`action-select`;let i=document.createElement(`option`);i.textContent=r.label,i.disabled=!0,i.selected=!0,e.appendChild(i);for(let t of r.options){let n=document.createElement(`option`);typeof t==`string`?(n.value=t,n.textContent=t):(n.value=t.value,n.textContent=t.label),e.appendChild(n)}e.addEventListener(`change`,()=>{t.emitAction(r,e.value)}),n.appendChild(e)}else{let e=document.createElement(`button`);e.className=`action-btn ${r.variant??`default`}`,e.textContent=r.label,e.addEventListener(`click`,()=>t.emitAction(r)),n.appendChild(e)}return n}function tnt(e){return function(t,n){let r=n??t.label;e.updateModelContext({content:[{type:`text`,text:`Latest UI action: ${t.label}${n?` → ${n}`:``}`}],structuredContent:{actionId:t.id,actionType:t.type,label:t.label,value:r,timestamp:new Date().toISOString()}}),e.sendMessage({role:`user`,content:[{type:`text`,text:`User selected: ${t.label}${n?` → ${n}`:``}`}]})}}function nnt(e){return{callTool:(t,n)=>e.callServerTool({name:t,arguments:n}),sendMessage:async t=>{await e.sendMessage({role:`user`,content:[{type:`text`,text:t}]})},updateContext:async t=>{await e.updateModelContext({content:[{type:`text`,text:t}]})}}}var rnt=class{app;currentMode=`inline`;availableModes=[];toolbar=null;constructor(e){this.app=e}apply(e){e.displayMode&&(this.currentMode=e.displayMode),e.availableDisplayModes&&(this.availableModes=e.availableDisplayModes),this.updateToolbar()}async requestMode(e){try{let t=await this.app.requestDisplayMode({mode:e});return this.currentMode=t.mode,document.documentElement.dataset.display=t.mode,this.updateToolbar(),t.mode}catch{return this.currentMode}}updateToolbar(){if(this.availableModes.length<=1){this.toolbar?.remove(),this.toolbar=null;return}this.toolbar||=this.createToolbar(),this.renderButtons()}createToolbar(){let e=document.createElement(`div`);return e.className=`display-mode-toolbar`,document.body.appendChild(e),e}renderButtons(){if(!this.toolbar)return;this.toolbar.innerHTML=``;let e={inline:`▣`,fullscreen:`⛶`,pip:`◱`};for(let t of this.availableModes){let n=document.createElement(`button`);n.className=`dm-btn${t===this.currentMode?` dm-active`:``}`,n.textContent=e[t]??t,n.title=t,n.addEventListener(`click`,()=>this.requestMode(t)),this.toolbar.appendChild(n)}}},int=[[400,`compact`],[800,`comfortable`]],ant=class{root;displayMode=`inline`;sizeClass=`comfortable`;constructor(e){this.root=e??document.documentElement}apply(e){this.applyDisplayMode(e),this.applyContainerDimensions(e),this.applySafeArea(e),this.applyPlatform(e),this.applyDeviceCapabilities(e)}getDisplayMode(){return this.displayMode}getSize(){return this.sizeClass}applyDisplayMode(e){e.displayMode&&(this.displayMode=e.displayMode,this.root.dataset.display=e.displayMode)}applyContainerDimensions(e){let t=e.containerDimensions;if(!t)return;let n=this.root.style,r=`width`in t?t.width:`maxWidth`in t?t.maxWidth:void 0,i=`height`in t?t.height:`maxHeight`in t?t.maxHeight:void 0;r!==void 0&&(n.setProperty(`--aikit-container-w`,`${r}px`),this.sizeClass=this.deriveSizeClass(r),this.root.dataset.size=this.sizeClass,n.setProperty(`--aikit-content-max-width`,this.deriveMaxWidth(r)),n.setProperty(`--aikit-body-pad-x`,this.derivePadX()),n.setProperty(`--aikit-grid-cols`,this.deriveGridCols()),n.setProperty(`--aikit-card-min`,this.deriveCardMin()),n.setProperty(`--aikit-metric-min`,this.deriveMetricMin())),i!==void 0&&(n.setProperty(`--aikit-container-h`,`${i}px`),n.setProperty(`--aikit-body-pad-y`,this.derivePadY()))}applySafeArea(e){let t=e.safeAreaInsets;if(!t)return;let n=this.root.style;n.setProperty(`--aikit-safe-top`,`${t.top}px`),n.setProperty(`--aikit-safe-right`,`${t.right}px`),n.setProperty(`--aikit-safe-bottom`,`${t.bottom}px`),n.setProperty(`--aikit-safe-left`,`${t.left}px`)}applyPlatform(e){e.platform&&(this.root.dataset.platform=e.platform)}applyDeviceCapabilities(e){let t=e.deviceCapabilities;t&&(t.touch!==void 0&&(this.root.dataset.touch=String(t.touch)),t.hover!==void 0&&(this.root.dataset.hover=String(t.hover)))}deriveSizeClass(e){for(let[t,n]of int)if(e<t)return n;return`full`}deriveMaxWidth(e){return this.displayMode===`pip`?`100%`:this.displayMode===`fullscreen`?`none`:e<960?`100%`:`900px`}derivePadX(){return this.sizeClass===`compact`?`8px`:`16px`}derivePadY(){return this.sizeClass===`compact`?`8px`:`16px`}deriveGridCols(){switch(this.sizeClass){case`compact`:return`1`;case`comfortable`:return`2`;case`full`:return`3`}}deriveCardMin(){return this.sizeClass===`compact`?`100%`:`250px`}deriveMetricMin(){return this.sizeClass===`compact`?`100px`:`150px`}},ont=class{templates=new Map;register(e){this.templates.set(e.name,e)}get(e){return this.templates.get(e)}detect(e){let t,n=0;for(let r of this.templates.values()){let i=r.detect(e);i>n&&(n=i,t=r)}return n>0?t:void 0}getAll(){return[...this.templates.values()]}},snt={"--color-background-primary":`--aikit-bg`,"--color-background-secondary":`--aikit-surface`,"--color-background-tertiary":`--aikit-surface2`,"--color-text-primary":`--aikit-text`,"--color-text-secondary":`--aikit-muted`,"--color-border-primary":`--aikit-border`,"--color-ring-primary":`--aikit-accent`,"--color-text-success":`--aikit-success`,"--color-text-danger":`--aikit-error`,"--color-text-warning":`--aikit-warning`,"--color-text-info":`--aikit-info`,"--font-sans":`--aikit-font-sans`,"--font-mono":`--aikit-font-mono`,"--border-radius-md":`--aikit-radius`,"--shadow-sm":`--aikit-shadow`},cnt={"--aikit-bg":`--bg`,"--aikit-text":`--fg`,"--aikit-surface":`--surface`,"--aikit-border":`--border`,"--aikit-accent":`--accent`,"--aikit-success":`--success`,"--aikit-warning":`--warning`,"--aikit-error":`--error`,"--aikit-font-sans":`--font-sans`,"--aikit-font-mono":`--font-mono`,"--aikit-radius":`--radius`,"--aikit-shadow":`--shadow`},lnt=class{root;constructor(e){this.root=e??document.documentElement}apply(e){e.theme&&Eoe(e.theme),e.styles?.variables&&(Doe(e.styles.variables),this.mapTokens(e.styles.variables)),e.styles?.css?.fonts&&this.injectFonts(e.styles.css.fonts)}getTheme(){return Toe()}mapTokens(e){let t=this.root.style;for(let[n,r]of Object.entries(snt)){let i=e[n];if(i){t.setProperty(r,i);let e=cnt[r];e&&t.setProperty(e,i)}}this.getTheme()===`dark`?(t.setProperty(`--code-bg`,e[`--color-background-tertiary`]??`#0f0f1a`),t.setProperty(`--code-fg`,`#cdd6f4`)):(t.setProperty(`--code-bg`,`#f0f0f5`),t.setProperty(`--code-fg`,`#1a1a2e`)),t.setProperty(`--aikit-code-bg`,t.getPropertyValue(`--code-bg`)),t.setProperty(`--aikit-code-fg`,t.getPropertyValue(`--code-fg`));let n=e[`--color-ring-primary`];n&&(t.setProperty(`--aikit-accent-light`,n),t.setProperty(`--accent-light`,n),t.setProperty(`--aikit-hover-bg`,`color-mix(in srgb, ${n} 10%, transparent)`))}injectFonts(e){let t=`aikit-host-fonts`;if(document.getElementById(t))return;let n=document.createElement(`style`);n.id=t,n.textContent=e,document.head.appendChild(n)}},unt=`
3726
3726
  .tpl-dashboard { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
3727
3727
  .db-card { min-height: 136px; padding: 14px; border: 1px solid var(--aikit-border, #3c3c3c);
3728
3728
  border-left-width: 4px; border-radius: var(--aikit-radius, 10px); background: var(--aikit-surface, #252526);
@@ -3765,7 +3765,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3765
3765
  color: var(--aikit-muted, #858585); cursor: pointer; user-select: none; white-space: nowrap; }
3766
3766
  .dt-table th:hover { color: var(--aikit-text, #ccc); }
3767
3767
  .dt-table td { padding: 7px 12px; border-bottom: 1px solid var(--aikit-border, #3c3c3c); color: var(--aikit-text, #ccc); }
3768
- .dt-table tr:hover td { background: rgba(255,255,255,0.03); }
3768
+ .dt-table tr:hover td { background: color-mix(in srgb, var(--aikit-text, #ccc) 3%, transparent); }
3769
3769
  .sort-icon { margin-left: 4px; font-size: 10px; opacity: 0.4; }
3770
3770
  `,pnt={name:`data-table`,label:`Data Table`,detect(e){if(typeof e!=`object`||!e||Array.isArray(e))return 0;let t=e;return t.columns&&t.rows&&Array.isArray(t.columns)&&Array.isArray(t.rows)?.9:0},render(e,t,n){let r=t,i=vr(`div`,`block tpl-data-table`);if(r.stats?.length){let e=vr(`div`,`dt-stats`);for(let t of r.stats){let n=vr(`div`,`dt-stat`),r=vr(`div`,`dt-stat-value`,String(t.value));t.color&&(r.style.color=t.color),n.appendChild(r),n.appendChild(vr(`div`,`dt-stat-label`,t.label)),e.appendChild(n)}i.appendChild(e)}let a=vr(`div`,`dt-filter-bar`),o=document.createElement(`input`);o.className=`dt-search`,o.placeholder=`Search...`,a.appendChild(o);let s=vr(`span`,`dt-count`,`${r.rows.length} rows`);a.appendChild(s);let l=document.createElement(`button`);l.className=`action-btn default dt-export`,l.textContent=`Export`,l.addEventListener(`click`,()=>{n.emitAction({type:`button`,id:`export`,label:`Export`},JSON.stringify(g))}),a.appendChild(l),i.appendChild(a);let u=document.createElement(`table`);u.className=`dt-table`;let d=document.createElement(`thead`),f=document.createElement(`tr`),p=``,m=!0;for(let e of r.columns){let t=document.createElement(`th`);t.textContent=e.label;let n=vr(`span`,`sort-icon`,`⇅`);t.appendChild(n),t.addEventListener(`click`,()=>{p===e.key?m=!m:(p=e.key,m=!0),_()}),f.appendChild(t)}d.appendChild(f),u.appendChild(d);let h=document.createElement(`tbody`);u.appendChild(h),i.appendChild(u);let g=[...r.rows];o.addEventListener(`input`,()=>_());function _(){let e=o.value.toLowerCase();g=r.rows.filter(t=>e?r.columns.some(n=>String(t[n.key]??``).toLowerCase().includes(e)):!0),p&&g.sort((e,t)=>{let n=String(e[p]??``),r=String(t[p]??``),i=n.localeCompare(r,void 0,{numeric:!0});return m?i:-i}),h.innerHTML=``;for(let e of g){let t=document.createElement(`tr`);for(let n of r.columns){let r=document.createElement(`td`);r.textContent=String(e[n.key]??``),t.appendChild(r)}h.appendChild(t)}s.textContent=`${g.length} rows`}_(),_r(`tpl-data-table`,fnt),e.appendChild(i)},styles(){return fnt}},mnt=`
3771
3771
  .tpl-diff-view { display: grid; gap: 14px; }
@@ -3814,11 +3814,11 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3814
3814
  .fg-bar { height: 22px; border-radius: 3px; display: flex; align-items: center;
3815
3815
  padding: 0 6px; min-width: 24px; transition: filter 0.1s; }
3816
3816
  .fg-bar:hover { filter: brightness(1.2); }
3817
- .fg-bar-label { font-size: 11px; color: #000; white-space: nowrap; overflow: hidden;
3817
+ .fg-bar-label { font-size: 11px; color: var(--aikit-bg, #fff); white-space: nowrap; overflow: hidden;
3818
3818
  text-overflow: ellipsis; font-weight: 500; }
3819
3819
  .fg-info { font-size: 12px; color: var(--aikit-muted, #858585); padding: 8px 0;
3820
3820
  border-top: 1px solid var(--aikit-border, #3c3c3c); margin-top: 8px; }
3821
- `;function vnt(e){return{name:String(e.name??``),total:typeof e.total==`number`?e.total:typeof e.value==`number`?e.value:0,self:typeof e.self==`number`?e.self:void 0,children:Array.isArray(e.children)?e.children.map(e=>vnt(e)):void 0}}var ynt={name:`flame-graph`,label:`Flame Graph`,detect(e){if(typeof e!=`object`||!e||Array.isArray(e))return 0;let t=e.profile;return t&&typeof t==`object`&&t.children?.9:0},render(e,t,n){let r=t,i=vr(`div`,`block tpl-flame-graph`),a=vnt(r.profile),o=a,s=[a],l=vr(`div`,`fg-breadcrumb`);i.appendChild(l);let u=vr(`div`,`fg-canvas`);i.appendChild(u);let d=vr(`div`,`fg-info`);i.appendChild(d);function f(){l.innerHTML=``;for(let e=0;e<s.length;e++){let t=s[e],n=document.createElement(`button`);n.className=`fg-crumb`,n.textContent=t.name,n.addEventListener(`click`,()=>{s.splice(e+1),o=t,f()}),l.appendChild(n),e<s.length-1&&l.appendChild(vr(`span`,`fg-sep`,`›`))}u.innerHTML=``,p(u,o,0,o.total),d.textContent=`${o.name} — total: ${o.total}${o.self==null?``:`, self: ${o.self}`}`}function p(e,t,r,i){let a=vr(`div`,`fg-row`);a.style.paddingLeft=`${r*2}px`;let l=vr(`div`,`fg-bar`),u=Math.max(2,t.total/i*100);l.style.width=`${u}%`,l.style.background=m(r),l.title=`${t.name}: ${t.total}${t.self==null?``:` (self: ${t.self})`}`;let h=vr(`span`,`fg-bar-label`,`${t.name} (${t.total})`);if(l.appendChild(h),t.children?.length&&(l.style.cursor=`pointer`,l.addEventListener(`click`,()=>{o=t,s.push(t),f(),n.emitAction({type:`button`,id:`zoom`,label:`Zoom`},JSON.stringify({name:t.name,total:t.total}))})),l.addEventListener(`mouseenter`,()=>{d.textContent=`${t.name} — total: ${t.total}${t.self==null?``:`, self: ${t.self}`}`}),a.appendChild(l),e.appendChild(a),t.children)for(let n of t.children)p(e,n,r+1,i)}function m(e){let t=[`#e24d28`,`#e8602a`,`#edad2a`,`#f5c842`,`#fce94f`,`#c4a000`,`#e07028`,`#d45500`];return t[e%t.length]}f(),_r(`tpl-flame-graph`,_nt),e.appendChild(i)},styles(){return _nt}},bnt=`
3821
+ `;function vnt(e){return{name:String(e.name??``),total:typeof e.total==`number`?e.total:typeof e.value==`number`?e.value:0,self:typeof e.self==`number`?e.self:void 0,children:Array.isArray(e.children)?e.children.map(e=>vnt(e)):void 0}}var ynt={name:`flame-graph`,label:`Flame Graph`,detect(e){if(typeof e!=`object`||!e||Array.isArray(e))return 0;let t=e.profile;return t&&typeof t==`object`&&t.children?.9:0},render(e,t,n){let r=t,i=vr(`div`,`block tpl-flame-graph`),a=vnt(r.profile),o=a,s=[a],l=vr(`div`,`fg-breadcrumb`);i.appendChild(l);let u=vr(`div`,`fg-canvas`);i.appendChild(u);let d=vr(`div`,`fg-info`);i.appendChild(d);function f(){l.innerHTML=``;for(let e=0;e<s.length;e++){let t=s[e],n=document.createElement(`button`);n.className=`fg-crumb`,n.textContent=t.name,n.addEventListener(`click`,()=>{s.splice(e+1),o=t,f()}),l.appendChild(n),e<s.length-1&&l.appendChild(vr(`span`,`fg-sep`,`›`))}u.innerHTML=``,p(u,o,0,o.total),d.textContent=`${o.name} — total: ${o.total}${o.self==null?``:`, self: ${o.self}`}`}function p(e,t,r,i){let a=vr(`div`,`fg-row`);a.style.paddingLeft=`${r*2}px`;let l=vr(`div`,`fg-bar`),u=Math.max(2,t.total/i*100);l.style.width=`${u}%`,l.style.background=m(r),l.title=`${t.name}: ${t.total}${t.self==null?``:` (self: ${t.self})`}`;let h=vr(`span`,`fg-bar-label`,`${t.name} (${t.total})`);if(l.appendChild(h),t.children?.length&&(l.style.cursor=`pointer`,l.addEventListener(`click`,()=>{o=t,s.push(t),f(),n.emitAction({type:`button`,id:`zoom`,label:`Zoom`},JSON.stringify({name:t.name,total:t.total}))})),l.addEventListener(`mouseenter`,()=>{d.textContent=`${t.name} — total: ${t.total}${t.self==null?``:`, self: ${t.self}`}`}),a.appendChild(l),e.appendChild(a),t.children)for(let n of t.children)p(e,n,r+1,i)}function m(e){let t=getComputedStyle(document.documentElement),n=[t.getPropertyValue(`--chart-5`).trim()||`#e24d28`,t.getPropertyValue(`--chart-9`).trim()||`#e8602a`,t.getPropertyValue(`--chart-4`).trim()||`#edad2a`,t.getPropertyValue(`--chart-1`).trim()||`#f5c842`,t.getPropertyValue(`--chart-3`).trim()||`#fce94f`,t.getPropertyValue(`--chart-6`).trim()||`#c4a000`,t.getPropertyValue(`--chart-7`).trim()||`#e07028`,t.getPropertyValue(`--chart-8`).trim()||`#d45500`];return n[e%n.length]}f(),_r(`tpl-flame-graph`,_nt),e.appendChild(i)},styles(){return _nt}},bnt=`
3822
3822
  .tpl-form { display: grid; grid-template-columns: 1fr 280px; gap: 20px; }
3823
3823
  @media (max-width: 640px) { .tpl-form { grid-template-columns: 1fr; } }
3824
3824
  .fm-fields { display: flex; flex-direction: column; gap: 14px; }
@@ -3872,7 +3872,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3872
3872
  border-radius: 6px; cursor: grab; transition: all 0.15s; }
3873
3873
  .sort-item:hover { border-color: var(--aikit-accent, #0078d4); }
3874
3874
  .sort-item.dragging { opacity: 0.4; }
3875
- .sort-item.drag-over { border-color: var(--aikit-accent, #0078d4); background: rgba(0,120,212,0.1); }
3875
+ .sort-item.drag-over { border-color: var(--aikit-accent, #0078d4); background: color-mix(in srgb, var(--aikit-accent, #0078d4) 10%, transparent); }
3876
3876
  .drag-handle { font-size: 18px; color: var(--aikit-muted, #858585); cursor: grab; user-select: none; }
3877
3877
  .sort-label { flex: 1; color: var(--aikit-text, #ccc); }
3878
3878
  .sort-pos { font-size: 12px; color: var(--aikit-muted, #858585); font-variant-numeric: tabular-nums; }
@@ -3881,7 +3881,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3881
3881
  border-radius: 8px; margin-bottom: 10px; overflow-x: auto; }
3882
3882
  .pk-tab { padding: 6px 14px; border: none; background: transparent; color: var(--aikit-muted, #858585);
3883
3883
  border-radius: 6px; cursor: pointer; font-size: 12px; white-space: nowrap; }
3884
- .pk-tab.active { background: var(--aikit-accent, #0078d4); color: #fff; }
3884
+ .pk-tab.active { background: var(--aikit-accent, #0078d4); color: var(--aikit-bg, #1a1a2e); }
3885
3885
  .pk-search { width: 100%; padding: 8px 12px; margin-bottom: 8px;
3886
3886
  background: var(--aikit-surface, #252526); border: 1px solid var(--aikit-border, #3c3c3c);
3887
3887
  border-radius: 6px; color: var(--aikit-text, #ccc); font-size: 13px; outline: none; box-sizing: border-box; }
@@ -3890,12 +3890,12 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3890
3890
  .pk-list { max-height: 320px; overflow-y: auto; }
3891
3891
  .pk-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px;
3892
3892
  border-bottom: 1px solid var(--aikit-border, #3c3c3c); }
3893
- .pk-item:hover { background: rgba(255,255,255,0.03); }
3893
+ .pk-item:hover { background: color-mix(in srgb, var(--aikit-text, #ccc) 3%, transparent); }
3894
3894
  .pk-item input[type=checkbox] { accent-color: var(--aikit-accent, #0078d4); }
3895
3895
  .pk-item-label { flex: 1; color: var(--aikit-text, #ccc); font-size: 13px; }
3896
3896
  .pk-item-status { font-size: 11px; padding: 2px 8px; border-radius: 10px;
3897
3897
  background: var(--aikit-surface2, #2d2d30); color: var(--aikit-muted, #858585); }
3898
- .pk-item-status.success { background: rgba(78,201,176,0.15); color: var(--aikit-success, #4ec9b0); }
3898
+ .pk-item-status.success { background: color-mix(in srgb, var(--aikit-success, #4ec9b0) 15%, transparent); color: var(--aikit-success, #4ec9b0); }
3899
3899
  .pk-tags { display: flex; gap: 4px; }
3900
3900
  .pk-tag { font-size: 10px; padding: 1px 6px; border-radius: 4px;
3901
3901
  background: var(--aikit-surface2, #2d2d30); color: var(--aikit-muted, #858585); }
@@ -184,13 +184,14 @@ ${FLOWS_SECTION}
184
184
  // ─── Prompt file generator ────────────────────────────────────────────────
185
185
 
186
186
  function generatePrompt(_name, def) {
187
- const kbTools = (def.tools || []).map((t) => `aikit/${t}`);
188
- const toolsYaml = kbTools.map((t) => ` - ${t}`).join('\n');
187
+ // NOTE: Do NOT emit a `tools:` field in prompt files.
188
+ // Prompt `tools:` is an exclusive allowlist in VS Code — it replaces the
189
+ // agent's tools entirely. Since prompts only list aikit/* MCP tools (which
190
+ // are all deferred), the API rejects with "All tools cannot be deferred."
191
+ // Omitting `tools:` lets the prompt inherit the full tool set from `agent:`.
189
192
  return `---
190
193
  description: "${def.description}"
191
194
  agent: "${def.agent}"
192
- tools:
193
- ${toolsYaml}
194
195
  ---
195
196
 
196
197
  ${def.content}
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  description: "Quick research question — find answer using AI Kit + web search"
3
3
  agent: "Researcher-Alpha"
4
- tools:
5
- - aikit/search
6
- - aikit/web_search
7
- - aikit/web_fetch
8
- - aikit/compact
9
- - aikit/file_summary
10
- - aikit/remember
11
- - aikit/present
12
4
  ---
13
5
 
14
6
  ## Quick Research
@@ -1,17 +1,6 @@
1
1
  ---
2
2
  description: "Systematic error diagnosis: reproduce → trace → diagnose → fix → verify"
3
3
  agent: "Debugger"
4
- tools:
5
- - aikit/search
6
- - aikit/symbol
7
- - aikit/trace
8
- - aikit/blast_radius
9
- - aikit/check
10
- - aikit/test_run
11
- - aikit/parse_output
12
- - aikit/compact
13
- - aikit/remember
14
- - aikit/present
15
4
  ---
16
5
 
17
6
  ## Debug Workflow
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  description: "Collaborative design session — explore ideas, refine requirements, produce a design spec"
3
3
  agent: "Orchestrator"
4
- tools:
5
- - aikit/search
6
- - aikit/scope_map
7
- - aikit/file_summary
8
- - aikit/compact
9
- - aikit/remember
10
- - aikit/forge_classify
11
- - aikit/present
12
4
  ---
13
5
 
14
6
  ## Design Session
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  description: "Install a new flow from a git URL or local path — with interactive error recovery"
3
3
  agent: "Orchestrator"
4
- tools:
5
- - aikit/flow_add
6
- - aikit/flow_list
7
- - aikit/flow_info
8
- - aikit/search
9
- - aikit/compact
10
- - aikit/file_summary
11
- - aikit/present
12
4
  ---
13
5
 
14
6
  ## Flow Installation Assistant
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  description: "Create a new flow from scratch or migrate an existing workflow to aikit format"
3
3
  agent: "Orchestrator"
4
- tools:
5
- - aikit/flow_add
6
- - aikit/flow_list
7
- - aikit/flow_info
8
- - aikit/search
9
- - aikit/compact
10
- - aikit/file_summary
11
- - aikit/present
12
4
  ---
13
5
 
14
6
  ## Flow Creation Assistant
@@ -1,15 +1,6 @@
1
1
  ---
2
2
  description: "List, inspect, update, and remove installed flows"
3
3
  agent: "Orchestrator"
4
- tools:
5
- - aikit/flow_list
6
- - aikit/flow_info
7
- - aikit/flow_status
8
- - aikit/flow_update
9
- - aikit/flow_remove
10
- - aikit/flow_start
11
- - aikit/flow_reset
12
- - aikit/present
13
4
  ---
14
5
 
15
6
  ## Flow Management
@@ -1,16 +1,6 @@
1
1
  ---
2
2
  description: "Full lifecycle implementation: plan → build → review → commit"
3
3
  agent: "Orchestrator"
4
- tools:
5
- - aikit/search
6
- - aikit/scope_map
7
- - aikit/forge_ground
8
- - aikit/check
9
- - aikit/test_run
10
- - aikit/blast_radius
11
- - aikit/remember
12
- - aikit/audit
13
- - aikit/present
14
4
  ---
15
5
 
16
6
  ## Implementation Pipeline
@@ -1,16 +1,6 @@
1
1
  ---
2
2
  description: "Create a detailed TDD implementation plan without executing it"
3
3
  agent: "Planner"
4
- tools:
5
- - aikit/search
6
- - aikit/scope_map
7
- - aikit/forge_ground
8
- - aikit/forge_classify
9
- - aikit/file_summary
10
- - aikit/analyze_structure
11
- - aikit/analyze_dependencies
12
- - aikit/remember
13
- - aikit/present
14
4
  ---
15
5
 
16
6
  ## Planning Workflow
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  description: "Dual-model code + architecture review pipeline"
3
3
  agent: "Orchestrator"
4
- tools:
5
- - aikit/search
6
- - aikit/blast_radius
7
- - aikit/check
8
- - aikit/test_run
9
- - aikit/analyze_dependencies
10
- - aikit/remember
11
- - aikit/present
12
4
  ---
13
5
 
14
6
  ## Review Pipeline