@oro.ad/nuxt-claude-devtools 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +149 -13
  2. package/dist/client/200.html +1 -1
  3. package/dist/client/404.html +1 -1
  4. package/dist/client/_nuxt/{Dgh4EhoJ.js → BRCY8pHC.js} +1 -1
  5. package/dist/client/_nuxt/BVHVIm9H.js +12 -0
  6. package/dist/client/_nuxt/BZrcCMrf.js +1 -0
  7. package/dist/client/_nuxt/BbEuL4Z6.js +1 -0
  8. package/dist/client/_nuxt/BmjlsnUc.js +1 -0
  9. package/dist/client/_nuxt/D2NL8Xro.js +7 -0
  10. package/dist/client/_nuxt/D9qGFoJm.js +4 -0
  11. package/dist/client/_nuxt/DImlDIT-.js +59 -0
  12. package/dist/client/_nuxt/{B6Pm7LNk.js → DV075BoS.js} +1 -1
  13. package/dist/client/_nuxt/{BngXb2T5.js → DYNukx3V.js} +1 -1
  14. package/dist/client/_nuxt/Dbw96V2H.js +7 -0
  15. package/dist/client/_nuxt/FllXIyfS.js +8 -0
  16. package/dist/client/_nuxt/MarkdownContent.WwTYmYZK.css +1 -0
  17. package/dist/client/_nuxt/TvBJGid1.js +1 -0
  18. package/dist/client/_nuxt/XJ4dJUK2.js +1 -0
  19. package/dist/client/_nuxt/builds/latest.json +1 -1
  20. package/dist/client/_nuxt/builds/meta/e8ae4dbb-462d-47a2-9aa2-50bed9498ab2.json +1 -0
  21. package/dist/client/_nuxt/e7kgpy_n.js +4 -0
  22. package/dist/client/_nuxt/entry.DwDQaFYc.css +1 -0
  23. package/dist/client/_nuxt/error-404.2GhCpCfF.css +1 -0
  24. package/dist/client/_nuxt/error-500.DqdIhFrl.css +1 -0
  25. package/dist/client/_nuxt/index.Bomb3OYy.css +1 -0
  26. package/dist/client/agents/index.html +1 -0
  27. package/dist/client/commands/index.html +1 -0
  28. package/dist/client/docs/index.html +1 -0
  29. package/dist/client/index.html +1 -1
  30. package/dist/client/mcp/index.html +1 -1
  31. package/dist/client/skills/index.html +1 -0
  32. package/dist/module.json +1 -1
  33. package/dist/module.mjs +22 -13
  34. package/dist/runtime/logger.d.ts +5 -0
  35. package/dist/runtime/logger.js +12 -0
  36. package/dist/runtime/server/agents-manager.d.ts +31 -0
  37. package/dist/runtime/server/agents-manager.js +193 -0
  38. package/dist/runtime/server/claude-session.d.ts +21 -4
  39. package/dist/runtime/server/claude-session.js +467 -25
  40. package/dist/runtime/server/commands-manager.d.ts +24 -0
  41. package/dist/runtime/server/commands-manager.js +132 -0
  42. package/dist/runtime/server/docs-manager.d.ts +48 -0
  43. package/dist/runtime/server/docs-manager.js +189 -0
  44. package/dist/runtime/server/history-manager.d.ts +24 -0
  45. package/dist/runtime/server/history-manager.js +184 -0
  46. package/dist/runtime/server/plugins/socket.io.d.ts +2 -0
  47. package/dist/runtime/server/plugins/socket.io.js +48 -0
  48. package/dist/runtime/server/skills-manager.d.ts +36 -0
  49. package/dist/runtime/server/skills-manager.js +210 -0
  50. package/dist/runtime/types.d.ts +156 -0
  51. package/dist/runtime/types.js +0 -0
  52. package/package.json +17 -1
  53. package/dist/client/_nuxt/BWmwj9se.js +0 -1
  54. package/dist/client/_nuxt/CRwOrvc3.js +0 -1
  55. package/dist/client/_nuxt/DMBGVttU.js +0 -1
  56. package/dist/client/_nuxt/DYOOVyPh.js +0 -1
  57. package/dist/client/_nuxt/JxSLzYFz.js +0 -4
  58. package/dist/client/_nuxt/builds/meta/f2b44466-6d7e-4b5c-bf6b-f6c7cf9e0d59.json +0 -1
  59. package/dist/client/_nuxt/entry.Ci1n7Rlt.css +0 -1
  60. package/dist/client/_nuxt/error-404.BLrjNXsr.css +0 -1
  61. package/dist/client/_nuxt/error-500.DLkAwcfL.css +0 -1
@@ -0,0 +1 @@
1
+ :root{--nui-c-context:125,125,125}html{background-color:#fff}html.dark{background-color:#151515;color:#fff;color-scheme:dark}::-moz-selection{background:#8884}::selection{background:#8884}.shiki .line{display:inline-block;position:relative;width:100%}.shiki.diff .line>span{filter:saturate(.75);opacity:.75}.shiki.diff .line-added,.shiki.diff .line-removed{scroll-margin:5em}.shiki.diff .line-added>span,.shiki.diff .line-removed>span{opacity:1!important;position:inherit;scroll-margin:20px;z-index:100}.shiki.diff .line-added>span{color:#218c3b!important}.shiki.diff .line-removed>span{color:#d15547!important}.shiki .line-added:after{background-color:#43885420}.shiki .line-added:after,.shiki .line-removed:after{content:"";display:block;inset:0;position:absolute}.shiki .line-removed:after{background-color:#8f4c3926}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2147483646}.dark::view-transition-old(root){z-index:2147483646}.dark::view-transition-new(root){z-index:1}*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthSQBK6PYK3EXw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthqQBK6PYK0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRR232RmYJp8I5zzw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRSW32RmYJp8I5.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.carbon\:add{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17 15V8h-2v7H8v2h7v7h2v-7h7v-2z'/%3E%3C/svg%3E")}.carbon\:add,.carbon\:application{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:application{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 18H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2M6 6v10h10V6zm20 6v4h-4v-4zm0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m0 12v4h-4v-4zm0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m-10 2v4h-4v-4zm0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2'/%3E%3C/svg%3E")}.carbon\:bot{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M18 10h2v2h-2zm-6 0h2v2h-2z'/%3E%3Cpath fill='currentColor' d='M26 20h-5v-2h1a2 2 0 0 0 2-2v-4h2v-2h-2V8a2 2 0 0 0-2-2h-2V2h-2v4h-4V2h-2v4h-2a2 2 0 0 0-2 2v2H6v2h2v4a2 2 0 0 0 2 2h1v2H6a2 2 0 0 0-2 2v8h2v-8h20v8h2v-8a2 2 0 0 0-2-2M10 8h12v8H10Zm3 10h6v2h-6Z'/%3E%3C/svg%3E")}.carbon\:bot,.carbon\:chat{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:chat{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17.74 30L16 29l4-7h6a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h9v2H6a4 4 0 0 1-4-4V8a4 4 0 0 1 4-4h20a4 4 0 0 1 4 4v12a4 4 0 0 1-4 4h-4.84Z'/%3E%3Cpath fill='currentColor' d='M8 10h16v2H8zm0 6h10v2H8z'/%3E%3C/svg%3E")}.carbon\:chevron-down{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 22L6 12l1.4-1.4l8.6 8.6l8.6-8.6L26 12z'/%3E%3C/svg%3E")}.carbon\:chevron-down,.carbon\:chevron-right{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:chevron-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M22 16L12 26l-1.4-1.4l8.6-8.6l-8.6-8.6L12 6z'/%3E%3C/svg%3E")}.carbon\:circle-filled{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Ccircle cx='16' cy='16' r='10' fill='currentColor'/%3E%3Cpath fill='currentColor' d='M16 30a14 14 0 1 1 14-14a14.016 14.016 0 0 1-14 14m0-26a12 12 0 1 0 12 12A12.014 12.014 0 0 0 16 4'/%3E%3C/svg%3E")}.carbon\:circle-filled,.carbon\:close{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:close{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17.414 16L24 9.414L22.586 8L16 14.586L9.414 8L8 9.414L14.586 16L8 22.586L9.414 24L16 17.414L22.586 24L24 22.586z'/%3E%3C/svg%3E")}.carbon\:cloud{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 7a7.7 7.7 0 0 1 1.51.15a8 8 0 0 1 6.35 6.34l.26 1.35l1.35.24a5.5 5.5 0 0 1-1 10.92H7.5a5.5 5.5 0 0 1-1-10.92l1.34-.24l.26-1.35A8 8 0 0 1 16 7m0-2a10 10 0 0 0-9.83 8.12A7.5 7.5 0 0 0 7.49 28h17a7.5 7.5 0 0 0 1.32-14.88a10 10 0 0 0-7.94-7.94A10.3 10.3 0 0 0 16 5'/%3E%3C/svg%3E")}.carbon\:cloud,.carbon\:document{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:document{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m25.7 9.3l-7-7c-.2-.2-.4-.3-.7-.3H8c-1.1 0-2 .9-2 2v24c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V10c0-.3-.1-.5-.3-.7M18 4.4l5.6 5.6H18zM24 28H8V4h8v6c0 1.1.9 2 2 2h6z'/%3E%3Cpath fill='currentColor' d='M10 22h12v2H10zm0-6h12v2H10z'/%3E%3C/svg%3E")}.carbon\:document-add{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M30 24h-4v-4h-2v4h-4v2h4v4h2v-4h4z'/%3E%3Cpath fill='currentColor' d='M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v4h2v-6a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6l5.6 5.6H18Z'/%3E%3C/svg%3E")}.carbon\:document-add,.carbon\:document-tasks{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:document-tasks{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m22 27.18l-2.59-2.59L18 26l4 4l8-8l-1.41-1.41z'/%3E%3Cpath fill='currentColor' d='M15 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v6h2v-8a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h7Zm3-23.6l5.6 5.6H18Z'/%3E%3C/svg%3E")}.carbon\:edit{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M2 26h28v2H2zM25.4 9c.8-.8.8-2 0-2.8l-3.6-3.6c-.8-.8-2-.8-2.8 0l-15 15V24h6.4zm-5-5L24 7.6l-3 3L17.4 7zM6 22v-3.6l10-10l3.6 3.6l-10 10z'/%3E%3C/svg%3E")}.carbon\:edit,.carbon\:folder{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:folder{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m11.17 6l3.42 3.41l.58.59H28v16H4V6zm0-2H4a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2H16l-3.41-3.41A2 2 0 0 0 11.17 4'/%3E%3C/svg%3E")}.carbon\:help{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m0 26a12 12 0 1 1 12-12a12 12 0 0 1-12 12'/%3E%3Ccircle cx='16' cy='23.5' r='1.5' fill='currentColor'/%3E%3Cpath fill='currentColor' d='M17 8h-1.5a4.49 4.49 0 0 0-4.5 4.5v.5h2v-.5a2.5 2.5 0 0 1 2.5-2.5H17a2.5 2.5 0 0 1 0 5h-2v4.5h2V17a4.5 4.5 0 0 0 0-9'/%3E%3C/svg%3E")}.carbon\:help,.carbon\:idea{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:idea{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M11 24h10v2H11zm2 4h6v2h-6zm3-26A10 10 0 0 0 6 12a9.19 9.19 0 0 0 3.46 7.62c1 .93 1.54 1.46 1.54 2.38h2c0-1.84-1.11-2.87-2.19-3.86A7.2 7.2 0 0 1 8 12a8 8 0 0 1 16 0a7.2 7.2 0 0 1-2.82 6.14c-1.07 1-2.18 2-2.18 3.86h2c0-.92.53-1.45 1.54-2.39A9.18 9.18 0 0 0 26 12A10 10 0 0 0 16 2'/%3E%3C/svg%3E")}.carbon\:information{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17 22v-8h-4v2h2v6h-3v2h8v-2zM16 8a1.5 1.5 0 1 0 1.5 1.5A1.5 1.5 0 0 0 16 8'/%3E%3Cpath fill='currentColor' d='M16 30a14 14 0 1 1 14-14a14 14 0 0 1-14 14m0-26a12 12 0 1 0 12 12A12 12 0 0 0 16 4'/%3E%3C/svg%3E")}.carbon\:information,.carbon\:lightning{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:lightning{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M11.61 29.92a1 1 0 0 1-.6-1.07L12.83 17H8a1 1 0 0 1-1-1.23l3-13A1 1 0 0 1 11 2h10a1 1 0 0 1 .78.37a1 1 0 0 1 .2.85L20.25 11H25a1 1 0 0 1 .9.56a1 1 0 0 1-.11 1l-13 17A1 1 0 0 1 12 30a1.1 1.1 0 0 1-.39-.08M17.75 13l2-9H11.8L9.26 15h5.91l-1.59 10.28L23 13Z'/%3E%3C/svg%3E")}.carbon\:link{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M29.25 6.76a6 6 0 0 0-8.5 0l1.42 1.42a4 4 0 1 1 5.67 5.67l-8 8a4 4 0 1 1-5.67-5.66l1.41-1.42l-1.41-1.42l-1.42 1.42a6 6 0 0 0 0 8.5A6 6 0 0 0 17 25a6 6 0 0 0 4.27-1.76l8-8a6 6 0 0 0-.02-8.48'/%3E%3Cpath fill='currentColor' d='M4.19 24.82a4 4 0 0 1 0-5.67l8-8a4 4 0 0 1 5.67 0A3.94 3.94 0 0 1 19 14a4 4 0 0 1-1.17 2.85L15.71 19l1.42 1.42l2.12-2.12a6 6 0 0 0-8.51-8.51l-8 8a6 6 0 0 0 0 8.51A6 6 0 0 0 7 28a6.07 6.07 0 0 0 4.28-1.76l-1.42-1.42a4 4 0 0 1-5.67 0'/%3E%3C/svg%3E")}.carbon\:link,.carbon\:list-checked{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:list-checked{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 22h14v2H16zm-2-2.6L12.6 18L6 24.6L3.4 22L2 23.4l4 4zM16 8h14v2H16zm-2-2.6L12.6 4L6 10.6L3.4 8L2 9.4l4 4z'/%3E%3C/svg%3E")}.carbon\:machine-learning-model{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M27 19c1.654 0 3-1.346 3-3s-1.346-3-3-3a2.995 2.995 0 0 0-2.816 2h-5.77l7.3-7.3c.392.187.824.3 1.286.3c1.654 0 3-1.346 3-3s-1.346-3-3-3s-3 1.346-3 3c0 .462.114.894.3 1.285L16 14.586V8c0-1.102.897-2 2-2h2V4h-2c-1.2 0-2.266.543-3 1.382A3.98 3.98 0 0 0 12 4h-1c-4.962 0-9 4.037-9 9v6c0 4.963 4.038 9 9 9h1c1.2 0 2.266-.542 3-1.382c.734.84 1.8 1.382 3 1.382h2v-2h-2c-1.103 0-2-.897-2-2v-6.586l8.3 8.301c-.187.391-.3.823-.3 1.285c0 1.655 1.346 3 3 3s3-1.345 3-3s-1.346-3-3-3a2.96 2.96 0 0 0-1.285.301l-7.301-7.3h5.77A2.995 2.995 0 0 0 27 19m0-4a1 1 0 0 1 0 2a1 1 0 0 1 0-2m0-11a1.001 1.001 0 0 1 0 2a1 1 0 0 1 0-2m-13 8h-2v2h2v4h-2c-1.654 0-3 1.346-3 3v2h2v-2a1 1 0 0 1 1-1h2v4c0 1.103-.897 2-2 2h-1c-3.52 0-6.432-2.613-6.92-6H6v-2H4v-4h3c1.654 0 3-1.346 3-3V9H8v2a1 1 0 0 1-1 1H4.08c.488-3.387 3.4-6 6.92-6h1c1.103 0 2 .898 2 2zm14 15a1.001 1.001 0 0 1-2 0c0-.551.449-1 1-1s1 .449 1 1'/%3E%3C/svg%3E")}.carbon\:machine-learning-model,.carbon\:microphone{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:microphone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M23 14v3a7 7 0 0 1-14 0v-3H7v3a9 9 0 0 0 8 8.94V28h-4v2h10v-2h-4v-2.06A9 9 0 0 0 25 17v-3Z'/%3E%3Cpath fill='currentColor' d='M16 22a5 5 0 0 0 5-5V7a5 5 0 0 0-10 0v10a5 5 0 0 0 5 5M13 7a3 3 0 0 1 6 0v10a3 3 0 0 1-6 0Z'/%3E%3C/svg%3E")}.carbon\:overflow-menu-horizontal{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Ccircle cx='8' cy='16' r='2' fill='currentColor'/%3E%3Ccircle cx='16' cy='16' r='2' fill='currentColor'/%3E%3Ccircle cx='24' cy='16' r='2' fill='currentColor'/%3E%3C/svg%3E")}.carbon\:overflow-menu-horizontal,.carbon\:plug{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:plug{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M22 8h-1V2h-2v6h-6V2h-2v6h-1a2 2 0 0 0-2 2v6a8.01 8.01 0 0 0 7 7.93V30h2v-6.07A8.01 8.01 0 0 0 24 16v-6a2 2 0 0 0-2-2m0 8a6 6 0 0 1-12 0v-6h12Z'/%3E%3C/svg%3E")}.carbon\:recently-viewed{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M20.59 22L15 16.41V7h2v8.58l5 5.01z'/%3E%3Cpath fill='currentColor' d='M16 2A13.94 13.94 0 0 0 6 6.23V2H4v8h8V8H7.08A12 12 0 1 1 4 16H2A14 14 0 1 0 16 2'/%3E%3C/svg%3E")}.carbon\:recently-viewed,.carbon\:restart{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:restart{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26 18A10 10 0 1 1 16 8h6.182l-3.584 3.585L20 13l6-6l-6-6l-1.402 1.414L22.185 6H16a12 12 0 1 0 12 12Z'/%3E%3C/svg%3E")}.carbon\:save{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m27.71 9.29l-5-5A1 1 0 0 0 22 4H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V10a1 1 0 0 0-.29-.71M12 6h8v4h-8Zm8 20h-8v-8h8Zm2 0v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8H6V6h4v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V6.41l4 4V26Z'/%3E%3C/svg%3E")}.carbon\:save,.carbon\:search{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:search{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m29 27.586l-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29ZM4 13a9 9 0 1 1 9 9a9.01 9.01 0 0 1-9-9'/%3E%3C/svg%3E")}.carbon\:search-locate{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m30 28.586l-4.688-4.688a8.028 8.028 0 1 0-1.415 1.414L28.586 30zM19 25a6 6 0 1 1 6-6a6.007 6.007 0 0 1-6 6M2 12h8v2H2zM2 2h16v2H2zm0 5h16v2H2z'/%3E%3C/svg%3E")}.carbon\:search-locate,.carbon\:stop-filled{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:stop-filled{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m6 18a2 2 0 0 1-2 2h-8a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2Z'/%3E%3C/svg%3E")}.carbon\:task{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m14 20.18l-3.59-3.59L9 18l5 5l9-9l-1.41-1.42z'/%3E%3Cpath fill='currentColor' d='M25 5h-3V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v1H7a2 2 0 0 0-2 2v21a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2M12 4h8v4h-8Zm13 24H7V7h3v3h12V7h3Z'/%3E%3C/svg%3E")}.carbon\:task,.carbon\:terminal{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:terminal{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26 4.01H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-20a2 2 0 0 0-2-2m0 2v4H6v-4Zm-20 20v-14h20v14Z'/%3E%3Cpath fill='currentColor' d='m10.76 16.18l2.82 2.83l-2.82 2.83l1.41 1.41l4.24-4.24l-4.24-4.24z'/%3E%3C/svg%3E")}.carbon\:tool-box{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M27 9h-3V6a2 2 0 0 0-2-2H10a2 2 0 0 0-2 2v3H5a3 3 0 0 0-3 3v14a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V12a3 3 0 0 0-3-3M10 6h12v3H10Zm18 20H4v-9h8v5h8v-5h8Zm-14-9h4v3h-4ZM4 15v-3a1 1 0 0 1 1-1h22a1 1 0 0 1 1 1v3Z'/%3E%3C/svg%3E")}.carbon\:tool-box,.carbon\:touch-1{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:touch-1{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M20 8h-2A5 5 0 0 0 8 8H6a7 7 0 0 1 14 0'/%3E%3Cpath fill='currentColor' d='M25 15a2.94 2.94 0 0 0-1.47.4A3 3 0 0 0 21 14a2.94 2.94 0 0 0-1.47.4A3 3 0 0 0 16 13.18V8a3 3 0 0 0-6 0v11.1l-2.23-1.52A2.93 2.93 0 0 0 6 17a3 3 0 0 0-2.12 5.13l8 7.3A6.16 6.16 0 0 0 16 31h5a7 7 0 0 0 7-7v-6a3 3 0 0 0-3-3m1 9a5 5 0 0 1-5 5h-5a4.17 4.17 0 0 1-2.76-1l-7.95-7.3A1 1 0 0 1 5 20a1 1 0 0 1 1.6-.8l5.4 3.7V8a1 1 0 0 1 2 0v11h2v-3a1 1 0 0 1 2 0v3h2v-2a1 1 0 0 1 2 0v2h2v-1a1 1 0 0 1 2 0Z'/%3E%3C/svg%3E")}.carbon\:trash-can{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M12 12h2v12h-2zm6 0h2v12h-2z'/%3E%3Cpath fill='currentColor' d='M4 6v2h2v20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8h2V6zm4 22V8h16v20zm4-26h8v2h-8z'/%3E%3C/svg%3E")}.carbon\:trash-can,.carbon\:warning{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:warning{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m0 26a12 12 0 1 1 12-12a12 12 0 0 1-12 12'/%3E%3Cpath fill='currentColor' d='M15 8h2v11h-2zm1 14a1.5 1.5 0 1 0 1.5 1.5A1.5 1.5 0 0 0 16 22'/%3E%3C/svg%3E")}[carbon\:chevron-right~="carbon:idea"]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M13.5 30.815a1 1 0 0 1-.493-.13l-8.5-4.815A1 1 0 0 1 4 25V15a1 1 0 0 1 .507-.87l8.5-4.815a1 1 0 0 1 .986 0l8.5 4.815A1 1 0 0 1 23 15v10a1 1 0 0 1-.507.87l-8.5 4.815a1 1 0 0 1-.493.13M6 24.417l7.5 4.249l7.5-4.249v-8.834l-7.5-4.248L6 15.583Z'/%3E%3Cpath fill='currentColor' d='M28 17h-2V7.583l-7.5-4.248l-8.007 4.535l-.986-1.74l8.5-4.815a1 1 0 0 1 .986 0l8.5 4.815A1 1 0 0 1 28 7Z'/%3E%3C/svg%3E");background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.n-badge{background-color:rgba(var(--nui-c-context),.1);border-radius:.25rem;font-size:.75rem;line-height:1rem;margin-left:.125rem;margin-right:.125rem;padding:.125rem .375rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity))}.n-button-icon{font-size:1.1em;margin-left:-.2em;margin-right:.2em}.n-icon-button{aspect-ratio:1/1;height:1.6em;justify-content:center;opacity:.5;width:1.6em}.n-icon-button,.n-tip-base{align-items:center;border-radius:.25rem;display:flex}.n-tip-base{background-color:rgba(var(--nui-c-context),.04);gap:.5rem;padding:.4em 1em;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity))}.n-button-base{align-items:center;border-color:#9ca3af33;border-radius:.25rem;border-width:1px;display:inline-flex;gap:.25rem;opacity:.8;padding:.25em 1em;touch-action:manipulation;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color,rgba(0,0,0,.05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);outline:2px solid transparent!important;outline-offset:2px!important}.n-icon{flex:none}.n-border-base{border-color:#9ca3af33}.hover\:n-button-hover:hover{--un-border-opacity:1!important;border-color:rgba(var(--nui-c-context),var(--un-border-opacity))!important;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity));opacity:1}.n-bg-active{background-color:#9ca3af0d}.dark .n-bg-base{--un-bg-opacity:1;background-color:rgb(21 21 21/var(--un-bg-opacity))}.n-bg-base{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.dark .n-tip-base{background-color:rgba(var(--nui-c-context),.12)}.hover\:n-bg-active:hover,.n-icon-button:hover{background-color:#9ca3af0d}.n-icon-button:hover{opacity:1}.active\:n-button-active:active{background-color:rgba(var(--nui-c-context),.05);--un-ring-width:3px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.1)}.focus-within\:n-focus-base:focus-within{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.5)}.focus-visible\:n-focus-base:focus-visible{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.5)}.n-transition{transition-duration:.15s;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.visible,[visible=""]{visibility:visible}.absolute{position:absolute}.relative{position:relative}.bottom-full{bottom:100%}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-50{z-index:50}.grid{display:grid}[rows~="1"]{grid-template-rows:repeat(1,minmax(0,1fr))}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.-mt-\[6px\]{margin-top:-6px}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-0\.3em{margin-left:.3em}.ml-0\.4em{margin-left:.4em}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-0\.1em{margin-right:.1em}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block,[block=""]{display:block}.hidden{display:none}.h-\[42px\]{height:42px}.h-2,.h2{height:.5rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h1{height:.25rem}.h3{height:.75rem}.max-h-48{max-height:12rem}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-w-\[300px\]{max-width:300px}.max-w-\[85\%\]{max-width:85%}.max-w-520px{max-width:520px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.min-h-\[200px\]{min-height:200px}.min-h-\[300px\]{min-height:300px}.min-h-screen{min-height:100vh}.min-w-\[160px\]{min-width:160px}.min-w-0{min-width:0}.w-2{width:.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-full{width:100%}.flex{display:flex}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-shrink-0{flex-shrink:0}[flex-shrink-0~="8,"],[flex-shrink-0~="["],[flex-shrink-0~="},"],[flex-shrink-0~="null,"]{flex-shrink:1}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--un-translate-y:-50%}.-translate-y-1\/2,.rotate-180{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.rotate-180{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:180deg}[rotate-180~="default:"]:default{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:180deg;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer,[cursor-pointer=""]{cursor:pointer}.resize-y{resize:vertical}.resize-none{resize:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(.25rem*var(--un-space-y-reverse));margin-top:calc(.25rem*(1 - var(--un-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(.5rem*var(--un-space-y-reverse));margin-top:calc(.5rem*(1 - var(--un-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(1rem*var(--un-space-y-reverse));margin-top:calc(1rem*(1 - var(--un-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate,[truncate=""]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.b,.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2,[border-l-2=""]{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-blue-500{--un-border-opacity:1;border-color:rgb(59 130 246/var(--un-border-opacity))}.border-gray-100{--un-border-opacity:1;border-color:rgb(243 244 246/var(--un-border-opacity))}.border-gray-200{--un-border-opacity:1;border-color:rgb(229 231 235/var(--un-border-opacity))}.border-green-500{--un-border-opacity:1;border-color:rgb(34 197 94/var(--un-border-opacity))}.border-neutral-200{--un-border-opacity:1;border-color:rgb(229 229 229/var(--un-border-opacity))}.border-neutral-300{--un-border-opacity:1;border-color:rgb(212 212 212/var(--un-border-opacity))}.border-purple-200{--un-border-opacity:1;border-color:rgb(233 213 255/var(--un-border-opacity))}.border-purple-500{--un-border-opacity:1;border-color:rgb(168 85 247/var(--un-border-opacity))}.dark .dark\:border-gray-700{--un-border-opacity:1;border-color:rgb(55 65 81/var(--un-border-opacity))}.dark .dark\:border-gray-800{--un-border-opacity:1;border-color:rgb(31 41 55/var(--un-border-opacity))}.dark .dark\:border-neutral-600{--un-border-opacity:1;border-color:rgb(82 82 82/var(--un-border-opacity))}.dark .dark\:border-neutral-700{--un-border-opacity:1;border-color:rgb(64 64 64/var(--un-border-opacity))}.dark .dark\:border-neutral-800{--un-border-opacity:1;border-color:rgb(38 38 38/var(--un-border-opacity))}.dark .dark\:border-purple-800{--un-border-opacity:1;border-color:rgb(107 33 168/var(--un-border-opacity))}.focus-within\:border-context:focus-within{--un-border-opacity:1;border-color:rgba(var(--nui-c-context),var(--un-border-opacity))}.focus\:border-transparent:focus{border-color:transparent}.border-l-blue-500{--un-border-opacity:1;--un-border-left-opacity:var(--un-border-opacity);border-left-color:rgb(59 130 246/var(--un-border-left-opacity))}.rounded,[rounded=""]{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-green-500\/20{background-color:#22c55e33}.bg-neutral-100{--un-bg-opacity:1;background-color:rgb(245 245 245/var(--un-bg-opacity))}.bg-neutral-200{--un-bg-opacity:1;background-color:rgb(229 229 229/var(--un-bg-opacity))}.bg-orange-500{--un-bg-opacity:1;background-color:rgb(249 115 22/var(--un-bg-opacity))}.bg-purple-500\/20{background-color:#a855f733}.bg-purple-500\/5{background-color:#a855f70d}.bg-red-500{--un-bg-opacity:1;background-color:rgb(239 68 68/var(--un-bg-opacity))}.bg-red-500\/5{background-color:#ef44440d}.bg-transparent{background-color:transparent}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.bg-yellow-500\/20{background-color:#eab30833}.dark .dark\:bg-\[\#020420\]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark .dark\:bg-neutral-700{--un-bg-opacity:1;background-color:rgb(64 64 64/var(--un-bg-opacity))}.dark .dark\:bg-neutral-800{--un-bg-opacity:1;background-color:rgb(38 38 38/var(--un-bg-opacity))}[bg-blue-500=""]{--un-bg-opacity:1;background-color:rgb(59 130 246/var(--un-bg-opacity))}[bg-green-500=""]{--un-bg-opacity:1;background-color:rgb(34 197 94/var(--un-bg-opacity))}[bg-yellow-500=""]{--un-bg-opacity:1;background-color:rgb(234 179 8/var(--un-bg-opacity))}.dark .dark\:hover\:bg-gray-800:hover{--un-bg-opacity:1;background-color:rgb(31 41 55/var(--un-bg-opacity))}.dark .dark\:hover\:bg-neutral-800:hover{--un-bg-opacity:1;background-color:rgb(38 38 38/var(--un-bg-opacity))}.dark .dark\:hover\:bg-red-900\/20:hover{background-color:#7f1d1d33}.dark [dark\:hover\:bg-red-900=""]:hover{--un-bg-opacity:1;background-color:rgb(127 29 29/var(--un-bg-opacity))}.hover\:bg-gray-100:hover{--un-bg-opacity:1;background-color:rgb(243 244 246/var(--un-bg-opacity))}.hover\:bg-gray-50:hover{--un-bg-opacity:1;background-color:rgb(249 250 251/var(--un-bg-opacity))}.hover\:bg-neutral-100:hover{--un-bg-opacity:1;background-color:rgb(245 245 245/var(--un-bg-opacity))}.hover\:bg-purple-500\/10:hover{background-color:#a855f71a}.hover\:bg-red-100:hover,[hover\:bg-red-100=""]:hover{--un-bg-opacity:1;background-color:rgb(254 226 226/var(--un-bg-opacity))}.p-0{padding:0}.p-1,[p-1=""]{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px,.px-4,[px=""]{padding-left:1rem;padding-right:1rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-2{padding-bottom:.5rem}.pl-1{padding-left:.25rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-2{padding-right:.5rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-\[80px\]{font-size:80px}.text-1\.1em{font-size:1.1em}.text-2xl,[text-2xl=""]{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs,[text-xs=""]{font-size:.75rem;line-height:1rem}.dark .dark\:text-blue-400,.dark [dark\:text-blue-400=""],.text-blue{--un-text-opacity:1;color:rgb(96 165 250/var(--un-text-opacity))}.dark .dark\:text-green-100{--un-text-opacity:1;color:rgb(220 252 231/var(--un-text-opacity))}.dark .dark\:text-green-400,.text-green{--un-text-opacity:1;color:rgb(74 222 128/var(--un-text-opacity))}.dark .dark\:text-purple-200{--un-text-opacity:1;color:rgb(233 213 255/var(--un-text-opacity))}.dark .dark\:text-purple-300{--un-text-opacity:1;color:rgb(216 180 254/var(--un-text-opacity))}.dark .dark\:text-purple-400,.text-purple{--un-text-opacity:1;color:rgb(192 132 252/var(--un-text-opacity))}.dark .dark\:text-white,.text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}.dark .dark\:text-yellow-200,.dark [dark\:text-yellow-200=""]{--un-text-opacity:1;color:rgb(254 240 138/var(--un-text-opacity))}.text-\[\#020420\]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.text-blue-500,[text-blue-500=""]{--un-text-opacity:1;color:rgb(59 130 246/var(--un-text-opacity))}.text-blue-500\/70{color:#3b82f6b3}.text-blue-600,[text-blue-600=""]{--un-text-opacity:1;color:rgb(37 99 235/var(--un-text-opacity))}.text-green-500{--un-text-opacity:1;color:rgb(34 197 94/var(--un-text-opacity))}.text-green-500\/70{color:#22c55eb3}.text-green-600{--un-text-opacity:1;color:rgb(22 163 74/var(--un-text-opacity))}.text-green-800,[text-green-800=""]{--un-text-opacity:1;color:rgb(22 101 52/var(--un-text-opacity))}.text-orange{--un-text-opacity:1;color:rgb(251 146 60/var(--un-text-opacity))}.text-orange-500{--un-text-opacity:1;color:rgb(249 115 22/var(--un-text-opacity))}.text-purple-500{--un-text-opacity:1;color:rgb(168 85 247/var(--un-text-opacity))}.text-purple-600{--un-text-opacity:1;color:rgb(147 51 234/var(--un-text-opacity))}.text-purple-700{--un-text-opacity:1;color:rgb(126 34 206/var(--un-text-opacity))}.text-purple-800{--un-text-opacity:1;color:rgb(107 33 168/var(--un-text-opacity))}.text-red-500,[text-red-500=""]{--un-text-opacity:1;color:rgb(239 68 68/var(--un-text-opacity))}.text-yellow-800,[text-yellow-800=""]{--un-text-opacity:1;color:rgb(133 77 14/var(--un-text-opacity))}.hover\:text-\[\#00DC82\]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.hover\:text-red-500:hover{--un-text-opacity:1;color:rgb(239 68 68/var(--un-text-opacity))}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.font-mono,[font-mono=""]{font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.hover\:underline:hover,.underline,[hover\:underline=""]:hover{text-decoration-line:underline}.underline-offset-3{text-underline-offset:3px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tab,[tab=""]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.op50,.opacity-50{opacity:.5}.opacity-0,[opacity-0=""]{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.group:hover .group-hover\:opacity-100,.group:hover [group-hover\:opacity-100=""],.hover\:opacity-100:hover{opacity:1}.shadow-lg{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color,rgba(0,0,0,.1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color,rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.\!outline-none{outline:2px solid transparent!important;outline-offset:2px!important}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.ring-1{--un-ring-width:1px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color)}.focus\:ring-2:focus,.ring-1{box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.focus\:ring-2:focus{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color)}.ring-green-500{--un-ring-opacity:1;--un-ring-color:rgb(34 197 94/var(--un-ring-opacity))}.ring-orange-500{--un-ring-opacity:1;--un-ring-color:rgb(249 115 22/var(--un-ring-opacity))}.ring-purple-500{--un-ring-opacity:1;--un-ring-color:rgb(168 85 247/var(--un-ring-opacity))}.focus\:ring-blue-500:focus{--un-ring-opacity:1;--un-ring-color:rgb(59 130 246/var(--un-ring-opacity))}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}[n~=blue]{--nui-c-context:96,165,250}[n~=gray]{--nui-c-context:156,163,175}[n~=green]{--nui-c-context:74,222,128}[n~=orange]{--nui-c-context:251,146,60}[n~=purple]{--nui-c-context:192,132,252}[n~=red]{--nui-c-context:248,113,113}[n~=yellow]{--nui-c-context:250,204,21}[n~=xs]{font-size:.75rem}.n-disabled\:n-disabled[disabled],[disabled] .n-disabled\:n-disabled{filter:saturate(0);opacity:.6;pointer-events:none}@media(min-width:640px){.sm\:inline{display:inline}.sm\:text-\[110px\]{font-size:110px}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}.page-enter-active,.page-leave-active{transition:opacity .15s ease}.page-enter-from,.page-leave-to{opacity:0}
@@ -0,0 +1 @@
1
+ .grid[data-v-8c88d9ea]{display:grid}.mb-2[data-v-8c88d9ea]{margin-bottom:.5rem}.mb-4[data-v-8c88d9ea]{margin-bottom:1rem}.max-w-520px[data-v-8c88d9ea]{max-width:520px}.min-h-screen[data-v-8c88d9ea]{min-height:100vh}.w-full[data-v-8c88d9ea]{width:100%}.flex[data-v-8c88d9ea]{display:flex}.place-content-center[data-v-8c88d9ea]{place-content:center}.items-center[data-v-8c88d9ea]{align-items:center}.justify-center[data-v-8c88d9ea]{justify-content:center}.overflow-hidden[data-v-8c88d9ea]{overflow:hidden}.bg-white[data-v-8c88d9ea]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-8c88d9ea]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-8c88d9ea]{text-align:center}.text-\[80px\][data-v-8c88d9ea]{font-size:80px}.text-2xl[data-v-8c88d9ea]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-8c88d9ea]{font-size:.875rem;line-height:1.25rem}.text-\[\#020420\][data-v-8c88d9ea]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-8c88d9ea]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.hover\:text-\[\#00DC82\][data-v-8c88d9ea]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-medium[data-v-8c88d9ea]{font-weight:500}.font-semibold[data-v-8c88d9ea]{font-weight:600}.leading-none[data-v-8c88d9ea]{line-height:1}.tracking-wide[data-v-8c88d9ea]{letter-spacing:.025em}.font-sans[data-v-8c88d9ea]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-8c88d9ea]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline[data-v-8c88d9ea]{text-decoration-line:underline}.underline-offset-3[data-v-8c88d9ea]{text-underline-offset:3px}.antialiased[data-v-8c88d9ea]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-8c88d9ea]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-8c88d9ea]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-8c88d9ea]{font-size:110px}.sm\:text-3xl[data-v-8c88d9ea]{font-size:1.875rem;line-height:2.25rem}}
@@ -0,0 +1 @@
1
+ .grid[data-v-c415ba6a]{display:grid}.mb-2[data-v-c415ba6a]{margin-bottom:.5rem}.mb-4[data-v-c415ba6a]{margin-bottom:1rem}.max-w-520px[data-v-c415ba6a]{max-width:520px}.min-h-screen[data-v-c415ba6a]{min-height:100vh}.place-content-center[data-v-c415ba6a]{place-content:center}.overflow-hidden[data-v-c415ba6a]{overflow:hidden}.bg-white[data-v-c415ba6a]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-c415ba6a]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-c415ba6a]{text-align:center}.text-\[80px\][data-v-c415ba6a]{font-size:80px}.text-2xl[data-v-c415ba6a]{font-size:1.5rem;line-height:2rem}.text-\[\#020420\][data-v-c415ba6a]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-c415ba6a]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-c415ba6a]{font-weight:600}.leading-none[data-v-c415ba6a]{line-height:1}.tracking-wide[data-v-c415ba6a]{letter-spacing:.025em}.font-sans[data-v-c415ba6a]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-c415ba6a]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-c415ba6a]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-c415ba6a]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-c415ba6a]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-c415ba6a]{font-size:110px}.sm\:text-3xl[data-v-c415ba6a]{font-size:1.875rem;line-height:2.25rem}}
@@ -0,0 +1 @@
1
+ .slide-enter-active[data-v-797cdae6],.slide-leave-active[data-v-797cdae6]{transition:transform .2s ease}.slide-enter-from[data-v-797cdae6],.slide-leave-to[data-v-797cdae6]{transform:translate(-100%)}.dropdown-enter-active[data-v-9157fee2],.dropdown-leave-active[data-v-9157fee2]{transition:all .15s ease}.dropdown-enter-from[data-v-9157fee2],.dropdown-leave-to[data-v-9157fee2]{opacity:0;transform:translateY(8px)}.dropdown-enter-active[data-v-58ca4e57],.dropdown-leave-active[data-v-58ca4e57]{transition:all .15s ease}.dropdown-enter-from[data-v-58ca4e57],.dropdown-leave-to[data-v-58ca4e57]{opacity:0;transform:translateY(8px)}
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.DwDQaFYc.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/e7kgpy_n.js"><script type="module" src="/__claude-devtools/_nuxt/e7kgpy_n.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{claudeDevtoolsBc:{tunnel:""}},app:{baseURL:"/__claude-devtools",buildId:"e8ae4dbb-462d-47a2-9aa2-50bed9498ab2",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1768962606352,false]</script></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.DwDQaFYc.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/e7kgpy_n.js"><script type="module" src="/__claude-devtools/_nuxt/e7kgpy_n.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{claudeDevtoolsBc:{tunnel:""}},app:{baseURL:"/__claude-devtools",buildId:"e8ae4dbb-462d-47a2-9aa2-50bed9498ab2",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1768962606352,false]</script></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.DwDQaFYc.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/e7kgpy_n.js"><script type="module" src="/__claude-devtools/_nuxt/e7kgpy_n.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{claudeDevtoolsBc:{tunnel:""}},app:{baseURL:"/__claude-devtools",buildId:"e8ae4dbb-462d-47a2-9aa2-50bed9498ab2",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1768962606352,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.Ci1n7Rlt.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/JxSLzYFz.js"><script type="module" src="/__claude-devtools/_nuxt/JxSLzYFz.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__claude-devtools",buildId:"f2b44466-6d7e-4b5c-bf6b-f6c7cf9e0d59",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1767989031179,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.DwDQaFYc.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/e7kgpy_n.js"><script type="module" src="/__claude-devtools/_nuxt/e7kgpy_n.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{claudeDevtoolsBc:{tunnel:""}},app:{baseURL:"/__claude-devtools",buildId:"e8ae4dbb-462d-47a2-9aa2-50bed9498ab2",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1768962606353,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.Ci1n7Rlt.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/JxSLzYFz.js"><script type="module" src="/__claude-devtools/_nuxt/JxSLzYFz.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__claude-devtools",buildId:"f2b44466-6d7e-4b5c-bf6b-f6c7cf9e0d59",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1767989031178,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.DwDQaFYc.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/e7kgpy_n.js"><script type="module" src="/__claude-devtools/_nuxt/e7kgpy_n.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{claudeDevtoolsBc:{tunnel:""}},app:{baseURL:"/__claude-devtools",buildId:"e8ae4dbb-462d-47a2-9aa2-50bed9498ab2",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1768962606351,false]</script></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__claude-devtools/_nuxt/entry.DwDQaFYc.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__claude-devtools/_nuxt/e7kgpy_n.js"><script type="module" src="/__claude-devtools/_nuxt/e7kgpy_n.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{claudeDevtoolsBc:{tunnel:""}},app:{baseURL:"/__claude-devtools",buildId:"e8ae4dbb-462d-47a2-9aa2-50bed9498ab2",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1768962606352,false]</script></body></html>
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oro.ad/nuxt-claude-devtools",
3
3
  "configKey": "claudeDevtools",
4
- "version": "1.0.6",
4
+ "version": "1.1.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -1,6 +1,8 @@
1
- import { defineNuxtModule, createResolver } from '@nuxt/kit';
1
+ import { defineNuxtModule, createResolver, addServerPlugin } from '@nuxt/kit';
2
+ import { getTunnelConfig } from '@oro.ad/nuxt-claude-devtools-bc/tunnel';
3
+ import { createLogger } from '../dist/runtime/logger.js';
2
4
  import { existsSync } from 'node:fs';
3
- import { SOCKET_PORT, getClaudeSession, destroyClaudeSession } from '../dist/runtime/server/claude-session.js';
5
+ import { SOCKET_PATH, destroyClaudeSession } from '../dist/runtime/server/claude-session.js';
4
6
 
5
7
  const DEVTOOLS_UI_ROUTE = "/__claude-devtools";
6
8
  const DEVTOOLS_UI_LOCAL_PORT = 3300;
@@ -40,6 +42,7 @@ function setupDevToolsUI(nuxt, resolver) {
40
42
  });
41
43
  }
42
44
 
45
+ const log = createLogger("module");
43
46
  const module$1 = defineNuxtModule({
44
47
  meta: {
45
48
  name: "@oro.ad/nuxt-claude-devtools",
@@ -57,21 +60,27 @@ const module$1 = defineNuxtModule({
57
60
  return;
58
61
  }
59
62
  const resolver = createResolver(import.meta.url);
63
+ const tunnel = getTunnelConfig();
64
+ if (tunnel) {
65
+ log(`Tunnel detected: ${tunnel.origin}`);
66
+ }
67
+ nuxt.options.nitro = nuxt.options.nitro || {};
68
+ nuxt.options.nitro.experimental = nuxt.options.nitro.experimental || {};
69
+ nuxt.options.nitro.experimental.websocket = true;
70
+ log("Enabled Nitro experimental WebSocket support");
60
71
  nuxt.options.runtimeConfig.claudeDevtools = {
61
72
  claude: options.claude,
62
- rootDir: nuxt.options.rootDir
73
+ rootDir: nuxt.options.rootDir,
74
+ tunnelOrigin: tunnel?.origin || null
63
75
  };
64
- nuxt.hook("ready", () => {
65
- console.log(`[claude-devtools] Starting Socket.IO server on port ${SOCKET_PORT}`);
66
- const session = getClaudeSession({
67
- command: options.claude.command,
68
- args: options.claude.args,
69
- rootDir: nuxt.options.rootDir
70
- });
71
- session.startSocketServer();
72
- });
76
+ nuxt.options.runtimeConfig.public.claudeDevtools = {
77
+ socketPath: SOCKET_PATH,
78
+ tunnelOrigin: tunnel?.origin || null
79
+ };
80
+ addServerPlugin(resolver.resolve("./runtime/server/plugins/socket.io"));
81
+ log("Added Socket.IO Nitro plugin");
73
82
  nuxt.hook("close", () => {
74
- console.log("[claude-devtools] Cleaning up Claude session");
83
+ log("Cleaning up Claude session");
75
84
  destroyClaudeSession();
76
85
  });
77
86
  setupDevToolsUI(nuxt, resolver);
@@ -0,0 +1,5 @@
1
+ interface LoggerOptions {
2
+ timestamp?: boolean;
3
+ }
4
+ export declare function createLogger(subsystem: string, options?: LoggerOptions): (message: string, data?: unknown) => void;
5
+ export {};
@@ -0,0 +1,12 @@
1
+ const PREFIX = "[nuxt-claude-devtools]";
2
+ export function createLogger(subsystem, options = {}) {
3
+ const tag = `${PREFIX} [${subsystem}]`;
4
+ return function log(message, data) {
5
+ const ts = options.timestamp ? ` [${(/* @__PURE__ */ new Date()).toISOString()}]` : "";
6
+ if (data !== void 0) {
7
+ console.log(`${tag}${ts} ${message}`, data);
8
+ } else {
9
+ console.log(`${tag}${ts} ${message}`);
10
+ }
11
+ };
12
+ }
@@ -0,0 +1,31 @@
1
+ export interface Agent {
2
+ name: string;
3
+ description: string;
4
+ prompt: string;
5
+ rawContent: string;
6
+ tools?: string[];
7
+ disallowedTools?: string[];
8
+ model?: string;
9
+ permissionMode?: 'default' | 'acceptEdits' | 'dontAsk' | 'bypassPermissions' | 'plan';
10
+ skills?: string[];
11
+ updatedAt: string;
12
+ }
13
+ export declare class AgentsManager {
14
+ private agentsDir;
15
+ constructor(projectPath: string);
16
+ private parseFrontmatter;
17
+ private buildFrontmatter;
18
+ getAgents(): Agent[];
19
+ getAgent(name: string): Agent | null;
20
+ saveAgent(agent: {
21
+ name: string;
22
+ description: string;
23
+ prompt: string;
24
+ tools?: string[];
25
+ disallowedTools?: string[];
26
+ model?: string;
27
+ permissionMode?: Agent['permissionMode'];
28
+ skills?: string[];
29
+ }): Agent;
30
+ deleteAgent(name: string): boolean;
31
+ }
@@ -0,0 +1,193 @@
1
+ import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "node:fs";
2
+ import { basename, join } from "node:path";
3
+ import { createLogger } from "../logger.js";
4
+ const log = createLogger("agents", { timestamp: true });
5
+ export class AgentsManager {
6
+ agentsDir;
7
+ constructor(projectPath) {
8
+ this.agentsDir = join(projectPath, ".claude", "agents");
9
+ if (!existsSync(this.agentsDir)) {
10
+ mkdirSync(this.agentsDir, { recursive: true });
11
+ log("Created agents directory", { path: this.agentsDir });
12
+ }
13
+ }
14
+ // Parse YAML frontmatter from markdown content
15
+ parseFrontmatter(content) {
16
+ const frontmatterRegex = /^---\n([\s\S]*?)\n---\n([\s\S]*)$/;
17
+ const match = content.match(frontmatterRegex);
18
+ if (!match) {
19
+ return { frontmatter: {}, body: content.trim() };
20
+ }
21
+ const [, yaml, body] = match;
22
+ const frontmatter = {};
23
+ let inSkillsArray = false;
24
+ const skillsList = [];
25
+ for (const line of yaml.split("\n")) {
26
+ if (inSkillsArray) {
27
+ const trimmed = line.trim();
28
+ if (trimmed.startsWith("- ")) {
29
+ skillsList.push(trimmed.slice(2).trim());
30
+ continue;
31
+ } else if (trimmed && !trimmed.startsWith("-")) {
32
+ inSkillsArray = false;
33
+ } else {
34
+ continue;
35
+ }
36
+ }
37
+ const colonIndex = line.indexOf(":");
38
+ if (colonIndex === -1) continue;
39
+ const key = line.slice(0, colonIndex).trim();
40
+ const value = line.slice(colonIndex + 1).trim();
41
+ switch (key) {
42
+ case "name":
43
+ frontmatter.name = value;
44
+ break;
45
+ case "description":
46
+ frontmatter.description = value;
47
+ break;
48
+ case "tools":
49
+ frontmatter.tools = value;
50
+ break;
51
+ case "disallowedTools":
52
+ frontmatter.disallowedTools = value;
53
+ break;
54
+ case "model":
55
+ frontmatter.model = value;
56
+ break;
57
+ case "permissionMode":
58
+ frontmatter.permissionMode = value;
59
+ break;
60
+ case "skills":
61
+ if (value) {
62
+ frontmatter.skills = value.split(",").map((s) => s.trim()).filter((s) => s);
63
+ } else {
64
+ inSkillsArray = true;
65
+ }
66
+ break;
67
+ }
68
+ }
69
+ if (skillsList.length > 0) {
70
+ frontmatter.skills = skillsList;
71
+ }
72
+ return { frontmatter, body: body.trim() };
73
+ }
74
+ // Build frontmatter string
75
+ buildFrontmatter(agent) {
76
+ const lines = ["---"];
77
+ if (agent.name) {
78
+ lines.push(`name: ${agent.name}`);
79
+ }
80
+ if (agent.description) {
81
+ lines.push(`description: ${agent.description}`);
82
+ }
83
+ if (agent.tools && agent.tools.length > 0) {
84
+ lines.push(`tools: ${agent.tools.join(", ")}`);
85
+ }
86
+ if (agent.disallowedTools && agent.disallowedTools.length > 0) {
87
+ lines.push(`disallowedTools: ${agent.disallowedTools.join(", ")}`);
88
+ }
89
+ if (agent.model) {
90
+ lines.push(`model: ${agent.model}`);
91
+ }
92
+ if (agent.permissionMode) {
93
+ lines.push(`permissionMode: ${agent.permissionMode}`);
94
+ }
95
+ if (agent.skills && agent.skills.length > 0) {
96
+ lines.push("skills:");
97
+ for (const skill of agent.skills) {
98
+ lines.push(` - ${skill}`);
99
+ }
100
+ }
101
+ lines.push("---");
102
+ return lines.join("\n");
103
+ }
104
+ // Get all agents
105
+ getAgents() {
106
+ const agents = [];
107
+ if (!existsSync(this.agentsDir)) return agents;
108
+ const entries = readdirSync(this.agentsDir);
109
+ for (const entry of entries) {
110
+ if (!entry.endsWith(".md")) continue;
111
+ const fullPath = join(this.agentsDir, entry);
112
+ const stat = statSync(fullPath);
113
+ if (stat.isDirectory()) continue;
114
+ const rawContent = readFileSync(fullPath, "utf-8");
115
+ const { frontmatter, body } = this.parseFrontmatter(rawContent);
116
+ agents.push({
117
+ name: frontmatter.name || basename(entry, ".md"),
118
+ description: frontmatter.description || "",
119
+ prompt: body,
120
+ rawContent,
121
+ tools: frontmatter.tools ? frontmatter.tools.split(",").map((s) => s.trim()) : void 0,
122
+ disallowedTools: frontmatter.disallowedTools ? frontmatter.disallowedTools.split(",").map((s) => s.trim()) : void 0,
123
+ model: frontmatter.model,
124
+ permissionMode: frontmatter.permissionMode,
125
+ skills: frontmatter.skills,
126
+ updatedAt: stat.mtime.toISOString()
127
+ });
128
+ }
129
+ return agents.sort((a, b) => a.name.localeCompare(b.name));
130
+ }
131
+ // Get single agent
132
+ getAgent(name) {
133
+ const fileName = name.endsWith(".md") ? name : `${name}.md`;
134
+ const fullPath = join(this.agentsDir, fileName);
135
+ if (!existsSync(fullPath)) return null;
136
+ const stat = statSync(fullPath);
137
+ const rawContent = readFileSync(fullPath, "utf-8");
138
+ const { frontmatter, body } = this.parseFrontmatter(rawContent);
139
+ return {
140
+ name: frontmatter.name || basename(fileName, ".md"),
141
+ description: frontmatter.description || "",
142
+ prompt: body,
143
+ rawContent,
144
+ tools: frontmatter.tools ? frontmatter.tools.split(",").map((s) => s.trim()) : void 0,
145
+ disallowedTools: frontmatter.disallowedTools ? frontmatter.disallowedTools.split(",").map((s) => s.trim()) : void 0,
146
+ model: frontmatter.model,
147
+ permissionMode: frontmatter.permissionMode,
148
+ skills: frontmatter.skills,
149
+ updatedAt: stat.mtime.toISOString()
150
+ };
151
+ }
152
+ // Create or update agent
153
+ saveAgent(agent) {
154
+ const safeName = agent.name.replace(/[^\w-]/g, "-").toLowerCase();
155
+ const fileName = `${safeName}.md`;
156
+ const fullPath = join(this.agentsDir, fileName);
157
+ const frontmatter = this.buildFrontmatter({
158
+ name: safeName,
159
+ description: agent.description,
160
+ tools: agent.tools,
161
+ disallowedTools: agent.disallowedTools,
162
+ model: agent.model,
163
+ permissionMode: agent.permissionMode,
164
+ skills: agent.skills
165
+ });
166
+ const rawContent = `${frontmatter}
167
+
168
+ ${agent.prompt}`;
169
+ writeFileSync(fullPath, rawContent, "utf-8");
170
+ log("Saved agent", { name: safeName, path: fullPath });
171
+ return {
172
+ name: safeName,
173
+ description: agent.description,
174
+ prompt: agent.prompt,
175
+ rawContent,
176
+ tools: agent.tools,
177
+ disallowedTools: agent.disallowedTools,
178
+ model: agent.model,
179
+ permissionMode: agent.permissionMode,
180
+ skills: agent.skills,
181
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
182
+ };
183
+ }
184
+ // Delete agent
185
+ deleteAgent(name) {
186
+ const fileName = name.endsWith(".md") ? name : `${name}.md`;
187
+ const fullPath = join(this.agentsDir, fileName);
188
+ if (!existsSync(fullPath)) return false;
189
+ unlinkSync(fullPath);
190
+ log("Deleted agent", { name });
191
+ return true;
192
+ }
193
+ }
@@ -1,22 +1,39 @@
1
- export declare const SOCKET_PORT = 3355;
1
+ import type { Server as SocketServer } from 'socket.io';
2
+ export declare const SOCKET_PATH = "/__claude_devtools_socket";
2
3
  export interface ClaudeSessionConfig {
3
4
  command: string;
4
5
  args: string[];
5
6
  rootDir: string;
7
+ tunnelOrigin?: string | null;
6
8
  }
7
9
  export declare class ClaudeSession {
8
10
  private config;
9
11
  private io;
10
- private httpServer;
11
12
  private isProcessing;
12
13
  private continueSession;
14
+ private historyManager;
15
+ private docsManager;
16
+ private commandsManager;
17
+ private agentsManager;
18
+ private skillsManager;
19
+ private claudeSessionId;
20
+ private parseBuffer;
21
+ private currentContentBlocks;
22
+ private currentMessageId;
23
+ private currentModel;
24
+ private accumulatedText;
13
25
  constructor(config: ClaudeSessionConfig);
14
- startSocketServer(): void;
26
+ attachSocketIO(io: SocketServer): void;
15
27
  destroy(): void;
28
+ private resetStreamState;
29
+ private buildSystemPrompt;
30
+ private parseStreamChunk;
31
+ private processStreamEvent;
16
32
  private sendMessage;
17
33
  private getMcpServers;
18
34
  private addMcpServer;
19
35
  private removeMcpServer;
20
36
  }
21
- export declare function getClaudeSession(config: ClaudeSessionConfig): ClaudeSession;
37
+ export declare function initClaudeSession(config: ClaudeSessionConfig): ClaudeSession;
38
+ export declare function getClaudeSessionInstance(): ClaudeSession | null;
22
39
  export declare function destroyClaudeSession(): void;