{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "dist/kitn-chat.es.js",
      "declarations": [
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-artifact",
          "name": "KcArtifactElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "undefined | string"
              },
              "description": "URL the preview iframe frames. Consumer-controlled.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "files",
              "type": {
                "text": "{ path: string; url?: undefined | string; code?: undefined | string; language?: undefined | string; type?: undefined | \"html\" | \"pdf\" | \"image\" | \"other\" }[]"
              },
              "description": "Files for the Code tab tree + each file's preview `url`. Set as a JS property (array).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "tab",
              "type": {
                "text": "undefined | \"preview\" | \"code\""
              },
              "description": "Active tab: `preview` (default) or `code`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "activeFile",
              "type": {
                "text": "undefined | string"
              },
              "description": "Selected file path — syncs the tree highlight, Code source, and preview.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "sandbox",
              "type": {
                "text": "undefined | string"
              },
              "description": "iframe `sandbox` override. Secure default `allow-scripts allow-forms` (NOT `allow-same-origin`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "iframeTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "Accessible title for the preview iframe.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "maximized",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Reflects the artifact's own maximized view-state (usually driven by the protocol).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "expandable",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the expand-to-fill button (OPT-IN).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "openInTab",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the open-in-new-tab button (OPT-IN).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "noNav",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide back/forward.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "noReload",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide reload.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "noHome",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide home.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "noPathField",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide the address field.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "noTabs",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide the Preview|Code toggle.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "standalone",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Standalone chrome: rounded corners + border (else square, borderless in-panel).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "readonlyPath",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the address but make it read-only (visible, nav-tracking, non-editable).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "src",
              "fieldName": "src",
              "type": {
                "text": "undefined | string"
              },
              "description": "URL the preview iframe frames. Consumer-controlled."
            },
            {
              "name": "tab",
              "fieldName": "tab",
              "type": {
                "text": "undefined | \"preview\" | \"code\""
              },
              "description": "Active tab: `preview` (default) or `code`."
            },
            {
              "name": "active-file",
              "fieldName": "activeFile",
              "type": {
                "text": "undefined | string"
              },
              "description": "Selected file path — syncs the tree highlight, Code source, and preview."
            },
            {
              "name": "sandbox",
              "fieldName": "sandbox",
              "type": {
                "text": "undefined | string"
              },
              "description": "iframe `sandbox` override. Secure default `allow-scripts allow-forms` (NOT `allow-same-origin`)."
            },
            {
              "name": "iframe-title",
              "fieldName": "iframeTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "Accessible title for the preview iframe."
            },
            {
              "name": "maximized",
              "fieldName": "maximized",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Reflects the artifact's own maximized view-state (usually driven by the protocol)."
            },
            {
              "name": "expandable",
              "fieldName": "expandable",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the expand-to-fill button (OPT-IN)."
            },
            {
              "name": "open-in-tab",
              "fieldName": "openInTab",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the open-in-new-tab button (OPT-IN)."
            },
            {
              "name": "no-nav",
              "fieldName": "noNav",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide back/forward."
            },
            {
              "name": "no-reload",
              "fieldName": "noReload",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide reload."
            },
            {
              "name": "no-home",
              "fieldName": "noHome",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide home."
            },
            {
              "name": "no-path-field",
              "fieldName": "noPathField",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide the address field."
            },
            {
              "name": "no-tabs",
              "fieldName": "noTabs",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide the Preview|Code toggle."
            },
            {
              "name": "standalone",
              "fieldName": "standalone",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Standalone chrome: rounded corners + border (else square, borderless in-panel)."
            },
            {
              "name": "readonly-path",
              "fieldName": "readonlyPath",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the address but make it read-only (visible, nav-tracking, non-editable)."
            }
          ],
          "events": [
            {
              "name": "kc-file-select",
              "type": {
                "text": "CustomEvent<{ path: string }>"
              },
              "description": "Fired when a file is selected. `detail.path`."
            },
            {
              "name": "kc-maximize-change",
              "type": {
                "text": "CustomEvent<{ maximized: false | true }>"
              },
              "description": "Artifact's own maximize button toggled (consumer-observable; non-bubbling)."
            },
            {
              "name": "kc-navigate",
              "type": {
                "text": "CustomEvent<{ url: string }>"
              },
              "description": "Fired when the preview navigates. `detail.url` = the new location."
            },
            {
              "name": "kc-tab-change",
              "type": {
                "text": "CustomEvent<{ tab: \"preview\" | \"code\" }>"
              },
              "description": "Fired when the Preview|Code tab changes. `detail.tab`."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-attachments",
          "name": "KcAttachmentsElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "items",
              "type": {
                "text": "{ id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]"
              },
              "description": "The attachments to render. Set as a JS property (array).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "undefined | \"grid\" | \"inline\" | \"list\""
              },
              "description": "Layout: `grid` = visual tiles, `inline` = icon + label chips, `list` = rows.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "hoverCard",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Wrap each item in a hover card that previews its details.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "removable",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a remove button per item; clicking it fires a `kc-remove` event.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "showMediaType",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Also show the media type beneath the filename (non-grid variants).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "emptyText",
              "type": {
                "text": "undefined | string"
              },
              "description": "Text shown when `items` is empty.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "type": {
                "text": "undefined | \"grid\" | \"inline\" | \"list\""
              },
              "description": "Layout: `grid` = visual tiles, `inline` = icon + label chips, `list` = rows."
            },
            {
              "name": "hover-card",
              "fieldName": "hoverCard",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Wrap each item in a hover card that previews its details."
            },
            {
              "name": "removable",
              "fieldName": "removable",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a remove button per item; clicking it fires a `kc-remove` event."
            },
            {
              "name": "show-media-type",
              "fieldName": "showMediaType",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Also show the media type beneath the filename (non-grid variants)."
            },
            {
              "name": "empty-text",
              "fieldName": "emptyText",
              "type": {
                "text": "undefined | string"
              },
              "description": "Text shown when `items` is empty."
            }
          ],
          "events": [
            {
              "name": "kc-remove",
              "type": {
                "text": "CustomEvent<{ id: string }>"
              },
              "description": "A remove button was clicked."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-card",
          "name": "KcCardElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "description",
              "type": {
                "text": "undefined | string"
              },
              "description": "Supporting text under the heading. Attribute: `description`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "errorMessage",
              "type": {
                "text": "undefined | string"
              },
              "description": "When set, the card renders its inline error state instead of the body. Attribute: `error-message`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "dense",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Compact spacing for dense lists. Attribute: `dense`.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "heading",
              "fieldName": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`."
            },
            {
              "name": "description",
              "fieldName": "description",
              "type": {
                "text": "undefined | string"
              },
              "description": "Supporting text under the heading. Attribute: `description`."
            },
            {
              "name": "error-message",
              "fieldName": "errorMessage",
              "type": {
                "text": "undefined | string"
              },
              "description": "When set, the card renders its inline error state instead of the body. Attribute: `error-message`."
            },
            {
              "name": "dense",
              "fieldName": "dense",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Compact spacing for dense lists. Attribute: `dense`."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-cards",
          "name": "KcCardsElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "cards",
              "type": {
                "text": "undefined | { type: string; id: string; data: unknown; title?: undefined | string; resolution?: undefined | { kind: \"action\"; action: string; payload?: unknown; at?: undefined | string } | { kind: \"submit\"; data: unknown; at?: undefined | string } }[]"
              },
              "description": "The stream of card envelopes to render. Set as a JS PROPERTY: `el.cards = [...]`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "types",
              "type": {
                "text": "undefined | Record<string, string>"
              },
              "description": "Optional type→tag overrides/additions (merged over the built-ins). Property: `el.types`. Typed as a plain string map (not the `CardTagMap` alias) so the generated React wrapper inlines it instead of emitting an unresolved named type.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "policy",
              "type": {
                "text": "undefined | { onSubmit?: undefined | (cardId: string, data: unknown) => void; onAction?: undefined | (cardId: string, action: string, payload?: unknown) => void; onSendPrompt?: undefined | (text: string, opts: { mode: \"compose\" | \"send\"; context?: unknown; }) => void; onOpen?: undefined | (url: string, target: \"tab\" | \"artifact\") => void; onState?: undefined | (cardId: string, patch: unknown) => void; onDismiss?: undefined | (cardId: string) => void; onError?: undefined | (cardId: string, message: string) => void; maxSendPromptMode?: undefined | \"compose\" | \"send\" }"
              },
              "description": "Optional CardPolicy handling child events. Property: `el.policy`.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-chain-of-thought",
          "name": "KcChainOfThoughtElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "steps",
              "type": {
                "text": "{ label: string; content?: undefined | string }[]"
              },
              "description": "The reasoning steps. Set as a JS property. Compound sub-parts collapse to this one data model (Route 1).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-chat",
          "name": "KcChatElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "messages",
              "type": {
                "text": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }[]"
              },
              "description": "The full message thread to render, newest last. Each entry carries its role, content, and optional reasoning/tools/attachments/actions. Set as a JS property (`el.messages = [...]`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "undefined | string"
              },
              "description": "Controlled value of the input. When set, the host owns the input text and must update it on `kc-value-change`; leave unset for uncontrolled behavior.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "undefined | string"
              },
              "description": "Placeholder text shown in the empty input.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When true, shows the loading/streaming state and disables submit (use while awaiting the assistant's reply).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "suggestions",
              "type": {
                "text": "undefined | string[]"
              },
              "description": "Starter prompts shown above the input when the thread is empty. Clicking one follows `suggestionMode`. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "suggestionMode",
              "type": {
                "text": "undefined | \"submit\" | \"fill\""
              },
              "description": "What clicking a suggestion does: `'submit'` (default) sends it immediately as if typed and submitted; `'fill'` just places it in the input.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "persistSuggestions",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Keep suggestions visible after the conversation starts. By default suggestions are conversation starters and hide once `messages` is non-empty; set this to keep them always shown. Default false.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "Body/prose font scale for rendered markdown (`'xs' | 'sm' | 'base' | 'lg'`). Defaults to `'sm'`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "Shiki theme name for syntax-highlighted code blocks (e.g. `'github-dark-dimmed'`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Enable Shiki syntax highlighting in code blocks. Turn off to render plain `<pre>` blocks (lighter, no highlighter load). Default true.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "chatTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "Optional header title shown on the left of the header.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "models",
              "type": {
                "text": "undefined | { id: string; name: string; provider?: undefined | string; description?: undefined | string; group?: undefined | string }[]"
              },
              "description": "Optional model list. When set (>1 model) a ModelSwitcher is shown in the header and a `kc-model-change` event fires on selection.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "currentModel",
              "type": {
                "text": "undefined | string"
              },
              "description": "The currently selected model id (pairs with `models`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "context",
              "type": {
                "text": "undefined | { usedTokens: number; maxTokens: number; inputTokens?: undefined | number; outputTokens?: undefined | number; estimatedCost?: undefined | number }"
              },
              "description": "Optional context-window token usage. When set, a Context token meter is shown in the header.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "scrollButton",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the scroll-to-bottom button inside the scroll area. Default true.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "headerStart",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Whether the host has `slot=\"header-start\"` content (left of the title) — set by the `<kc-chat>` facade so a custom control forces the header open.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "headerEnd",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Whether the host has `slot=\"header-end\"` content (right of the controls).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "search",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a Search (Globe) button in the input toolbar; fires a `search` event.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "voice",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a Voice (Mic) button in the input toolbar; fires a `voice` event.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashCommands",
              "type": {
                "text": "undefined | { id: string; label: string; description?: undefined | string; category?: undefined | string }[]"
              },
              "description": "Slash commands — when set, typing `/` in the input opens the command palette and fires `kc-slash-select`. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashActiveIds",
              "type": {
                "text": "undefined | string[]"
              },
              "description": "Command ids to highlight as active in the palette.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashCompact",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Single-line palette rows.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "actionsReveal",
              "type": {
                "text": "undefined | \"always\" | \"hover\""
              },
              "description": "Whether each message's action bar is always visible (`'always'`, default) or only revealed on hover of that message row (`'hover'`).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "undefined | string"
              },
              "description": "Controlled value of the input. When set, the host owns the input text and must update it on `kc-value-change`; leave unset for uncontrolled behavior."
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "type": {
                "text": "undefined | string"
              },
              "description": "Placeholder text shown in the empty input."
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When true, shows the loading/streaming state and disables submit (use while awaiting the assistant's reply)."
            },
            {
              "name": "suggestion-mode",
              "fieldName": "suggestionMode",
              "type": {
                "text": "undefined | \"submit\" | \"fill\""
              },
              "description": "What clicking a suggestion does: `'submit'` (default) sends it immediately as if typed and submitted; `'fill'` just places it in the input."
            },
            {
              "name": "persist-suggestions",
              "fieldName": "persistSuggestions",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Keep suggestions visible after the conversation starts. By default suggestions are conversation starters and hide once `messages` is non-empty; set this to keep them always shown. Default false."
            },
            {
              "name": "prose-size",
              "fieldName": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "Body/prose font scale for rendered markdown (`'xs' | 'sm' | 'base' | 'lg'`). Defaults to `'sm'`."
            },
            {
              "name": "code-theme",
              "fieldName": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "Shiki theme name for syntax-highlighted code blocks (e.g. `'github-dark-dimmed'`)."
            },
            {
              "name": "code-highlight",
              "fieldName": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Enable Shiki syntax highlighting in code blocks. Turn off to render plain `<pre>` blocks (lighter, no highlighter load). Default true."
            },
            {
              "name": "chat-title",
              "fieldName": "chatTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "Optional header title shown on the left of the header."
            },
            {
              "name": "current-model",
              "fieldName": "currentModel",
              "type": {
                "text": "undefined | string"
              },
              "description": "The currently selected model id (pairs with `models`)."
            },
            {
              "name": "scroll-button",
              "fieldName": "scrollButton",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the scroll-to-bottom button inside the scroll area. Default true."
            },
            {
              "name": "header-start",
              "fieldName": "headerStart",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Whether the host has `slot=\"header-start\"` content (left of the title) — set by the `<kc-chat>` facade so a custom control forces the header open."
            },
            {
              "name": "header-end",
              "fieldName": "headerEnd",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Whether the host has `slot=\"header-end\"` content (right of the controls)."
            },
            {
              "name": "search",
              "fieldName": "search",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a Search (Globe) button in the input toolbar; fires a `search` event."
            },
            {
              "name": "voice",
              "fieldName": "voice",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a Voice (Mic) button in the input toolbar; fires a `voice` event."
            },
            {
              "name": "slash-compact",
              "fieldName": "slashCompact",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Single-line palette rows."
            },
            {
              "name": "actions-reveal",
              "fieldName": "actionsReveal",
              "type": {
                "text": "undefined | \"always\" | \"hover\""
              },
              "description": "Whether each message's action bar is always visible (`'always'`, default) or only revealed on hover of that message row (`'hover'`)."
            }
          ],
          "events": [
            {
              "name": "kc-message-action",
              "type": {
                "text": "CustomEvent<{ messageId: string; action: string }>"
              },
              "description": "An action button on a message was clicked. `action` is the built-in name or custom id."
            },
            {
              "name": "kc-model-change",
              "type": {
                "text": "CustomEvent<{ modelId: string }>"
              },
              "description": "The header model switcher changed."
            },
            {
              "name": "kc-search",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The Search button was clicked."
            },
            {
              "name": "kc-slash-select",
              "type": {
                "text": "CustomEvent<{ command: { id: string; label: string; description?: undefined | string; category?: undefined | string } }>"
              },
              "description": "A slash command was chosen from the palette."
            },
            {
              "name": "kc-submit",
              "type": {
                "text": "CustomEvent<{ value: string; attachments: { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[] }>"
              },
              "description": "User submitted a message."
            },
            {
              "name": "kc-suggestion-click",
              "type": {
                "text": "CustomEvent<{ value: string }>"
              },
              "description": "A suggestion chip was clicked (only in `suggestion-mode=\"fill\"`)."
            },
            {
              "name": "kc-value-change",
              "type": {
                "text": "CustomEvent<{ value: string }>"
              },
              "description": "Fired on every input change."
            },
            {
              "name": "kc-voice",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The Mic / voice button was clicked."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-checkpoint",
          "name": "KcCheckpointElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Optional text beside the icon.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "tooltip",
              "type": {
                "text": "undefined | string"
              },
              "description": "Tooltip on hover.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "undefined | \"ghost\" | \"default\" | \"outline\""
              },
              "description": "Visual button style.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "undefined | \"sm\" | \"lg\" | \"md\" | \"icon\" | \"icon-sm\""
              },
              "description": "Button size (use an `icon*` size for an icon-only checkpoint).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Optional text beside the icon."
            },
            {
              "name": "tooltip",
              "fieldName": "tooltip",
              "type": {
                "text": "undefined | string"
              },
              "description": "Tooltip on hover."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "type": {
                "text": "undefined | \"ghost\" | \"default\" | \"outline\""
              },
              "description": "Visual button style."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "undefined | \"sm\" | \"lg\" | \"md\" | \"icon\" | \"icon-sm\""
              },
              "description": "Button size (use an `icon*` size for an icon-only checkpoint)."
            }
          ],
          "events": [
            {
              "name": "kc-select",
              "type": {
                "text": "CustomEvent"
              },
              "description": "The checkpoint was clicked."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-choice",
          "name": "KcChoiceElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "data",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "The choice definition (the CardEnvelope.data). Set as a JS PROPERTY: `el.data = { prompt, options:[…], allowOther?, submitLabel? }`. Import `ChoiceCardData` from `@kitn.ai/chat` for the full shape.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted CardEvent. Attribute: `card-id`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "resolution",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "Set when the user resolved this card; renders the read-only view. Property: `el.resolution = { kind:'action', action:'…' }`.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "card-id",
              "fieldName": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted CardEvent. Attribute: `card-id`."
            },
            {
              "name": "heading",
              "fieldName": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-code-block",
          "name": "KcCodeBlockElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "code",
              "type": {
                "text": "string"
              },
              "description": "The source code to render.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "language",
              "type": {
                "text": "undefined | string"
              },
              "description": "Language grammar (e.g. `js`, `python`). Defaults to `tsx`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "Shiki theme name.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable syntax highlighting (renders plain text, no Shiki).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "Code text sizing.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "code",
              "fieldName": "code",
              "type": {
                "text": "string"
              },
              "description": "The source code to render."
            },
            {
              "name": "language",
              "fieldName": "language",
              "type": {
                "text": "undefined | string"
              },
              "description": "Language grammar (e.g. `js`, `python`). Defaults to `tsx`."
            },
            {
              "name": "code-theme",
              "fieldName": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "Shiki theme name."
            },
            {
              "name": "code-highlight",
              "fieldName": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable syntax highlighting (renders plain text, no Shiki)."
            },
            {
              "name": "prose-size",
              "fieldName": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "Code text sizing."
            }
          ],
          "events": [],
          "cssProperties": [
            {
              "name": "--color-code-foreground"
            }
          ]
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-confirm",
          "name": "KcConfirmElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "data",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "The confirm definition (the CardEnvelope.data). Set as a JS PROPERTY: `el.data = { body, tone, actions:[…] }`. Import `ConfirmCardData` from `@kitn.ai/chat` for the full shape.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted CardEvent. Attribute: `card-id`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "autofocus",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Focus the default action on mount (off by default — no focus-stealing). Attribute: `autofocus`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "resolution",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "Set when the user resolved this card; renders the read-only view. Property: `el.resolution = { kind:'action', action:'…' }`.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "card-id",
              "fieldName": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted CardEvent. Attribute: `card-id`."
            },
            {
              "name": "heading",
              "fieldName": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`."
            },
            {
              "name": "autofocus",
              "fieldName": "autofocus",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Focus the default action on mount (off by default — no focus-stealing). Attribute: `autofocus`."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-context",
          "name": "KcContextElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "context",
              "type": {
                "text": "undefined | { usedTokens: number; maxTokens: number; inputTokens?: undefined | number; outputTokens?: undefined | number; reasoningTokens?: undefined | number; cacheTokens?: undefined | number; estimatedCost?: undefined | number }"
              },
              "description": "Token-usage data. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "warnThreshold",
              "type": {
                "text": "undefined | number"
              },
              "description": "Fraction (0–1) above which the meter turns yellow. Defaults to `0.7` (70%).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "dangerThreshold",
              "type": {
                "text": "undefined | number"
              },
              "description": "Fraction (0–1) above which the meter turns red. Defaults to `0.9` (90%).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "warn-threshold",
              "fieldName": "warnThreshold",
              "type": {
                "text": "undefined | number"
              },
              "description": "Fraction (0–1) above which the meter turns yellow. Defaults to `0.7` (70%)."
            },
            {
              "name": "danger-threshold",
              "fieldName": "dangerThreshold",
              "type": {
                "text": "undefined | number"
              },
              "description": "Fraction (0–1) above which the meter turns red. Defaults to `0.9` (90%)."
            }
          ],
          "events": [
            {
              "name": "kc-threshold-change",
              "type": {
                "text": "CustomEvent<{ level: \"ok\" | \"warn\" | \"danger\" }>"
              },
              "description": "Fires when the computed severity level changes (ok → warn → danger or back). `detail.level` is `'ok'`, `'warn'`, or `'danger'`."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-conversations",
          "name": "KcConversationsElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "groups",
              "type": {
                "text": "{ id: string; userId?: undefined | string; teamId?: undefined | string; name: string; sortOrder: number; createdAt: string }[]"
              },
              "description": "Pre-bucketed conversation groups (e.g. \"Today\", \"Yesterday\"), each with its own conversations. Use this when you want to control the grouping/headers yourself; otherwise pass a flat `conversations` array. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "conversations",
              "type": {
                "text": "{ id: string; title: string; groupId?: undefined | string; scope: { type: \"document\" | \"collection\"; documentId?: undefined | string; filters?: undefined | { tags?: undefined | string[]; authors?: undefined | string[]; contentType?: undefined | \"transcript\" | \"markdown\"; dateRange?: undefined | { from: string; to: string } } }; messageCount: number; lastMessageAt: string; updatedAt: string }[]"
              },
              "description": "A flat list of conversation summaries; the component buckets them by recency for you. Ignored when `groups` is provided. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "activeId",
              "type": {
                "text": "undefined | string"
              },
              "description": "The id of the currently-open conversation, highlighted in the list.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "active-id",
              "fieldName": "activeId",
              "type": {
                "text": "undefined | string"
              },
              "description": "The id of the currently-open conversation, highlighted in the list."
            }
          ],
          "events": [
            {
              "name": "kc-conversation-select",
              "type": {
                "text": "CustomEvent<{ id: string }>"
              },
              "description": "A conversation was selected."
            },
            {
              "name": "kc-new-chat",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The \"New chat\" button was clicked."
            },
            {
              "name": "kc-toggle-sidebar",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The sidebar toggle was clicked."
            }
          ],
          "cssProperties": [
            {
              "name": "--color-sidebar"
            },
            {
              "name": "--color-scrollbar-thumb"
            }
          ]
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-embed",
          "name": "KcEmbedElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted event. Set as an attribute or property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "data",
              "type": {
                "text": "undefined | { provider: \"youtube\" | \"vimeo\" | \"generic\"; id?: undefined | string; url?: undefined | string; title?: undefined | string; poster?: undefined | string; start?: undefined | number; aspectRatio?: undefined | \"16:9\" | \"4:3\" | \"1:1\" | \"9:16\" }"
              },
              "description": "The embed payload (provider + id/url + options). Set as a JS **property** (object).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "card-id",
              "fieldName": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted event. Set as an attribute or property."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-empty",
          "name": "KcEmptyElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "emptyTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "Title text. Attribute: `empty-title` (`title` is a global HTML attribute).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "description",
              "type": {
                "text": "undefined | string"
              },
              "description": "Description text.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "empty-title",
              "fieldName": "emptyTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "Title text. Attribute: `empty-title` (`title` is a global HTML attribute)."
            },
            {
              "name": "description",
              "fieldName": "description",
              "type": {
                "text": "undefined | string"
              },
              "description": "Description text."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-feedback-bar",
          "name": "KcFeedbackBarElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "barTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "The banner label (e.g. \"Was this helpful?\"). Attribute: `bar-title` (`title` is avoided — it's a global HTML attribute).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "collectDetail",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When set, a not-helpful vote opens an optional detail form before the thank-you confirmation. Attribute: `collect-detail`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "categories",
              "type": {
                "text": "undefined | string[]"
              },
              "description": "Optional category chips for the detail form. Set as a JS property (array).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "detailTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading for the detail form. Attribute: `detail-title`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "detailPlaceholder",
              "type": {
                "text": "undefined | string"
              },
              "description": "Placeholder for the detail comment box. Attribute: `detail-placeholder`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "submitLabel",
              "type": {
                "text": "undefined | string"
              },
              "description": "Submit button label in the detail form. Attribute: `submit-label`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "thanksMessage",
              "type": {
                "text": "undefined | string"
              },
              "description": "Confirmation copy shown after a vote/submit. Attribute: `thanks-message`.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "bar-title",
              "fieldName": "barTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "The banner label (e.g. \"Was this helpful?\"). Attribute: `bar-title` (`title` is avoided — it's a global HTML attribute)."
            },
            {
              "name": "collect-detail",
              "fieldName": "collectDetail",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When set, a not-helpful vote opens an optional detail form before the thank-you confirmation. Attribute: `collect-detail`."
            },
            {
              "name": "detail-title",
              "fieldName": "detailTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading for the detail form. Attribute: `detail-title`."
            },
            {
              "name": "detail-placeholder",
              "fieldName": "detailPlaceholder",
              "type": {
                "text": "undefined | string"
              },
              "description": "Placeholder for the detail comment box. Attribute: `detail-placeholder`."
            },
            {
              "name": "submit-label",
              "fieldName": "submitLabel",
              "type": {
                "text": "undefined | string"
              },
              "description": "Submit button label in the detail form. Attribute: `submit-label`."
            },
            {
              "name": "thanks-message",
              "fieldName": "thanksMessage",
              "type": {
                "text": "undefined | string"
              },
              "description": "Confirmation copy shown after a vote/submit. Attribute: `thanks-message`."
            }
          ],
          "events": [
            {
              "name": "kc-close",
              "type": {
                "text": "CustomEvent"
              },
              "description": "The user dismissed the banner."
            },
            {
              "name": "kc-feedback",
              "type": {
                "text": "CustomEvent<{ value: \"helpful\" | \"not-helpful\" }>"
              },
              "description": "The user rated the response. `value` is `'helpful'` or `'not-helpful'`."
            },
            {
              "name": "kc-feedback-detail",
              "type": {
                "text": "CustomEvent<{ value: \"helpful\" | \"not-helpful\"; category?: undefined | string; comment?: undefined | string }>"
              },
              "description": "The user submitted the optional detail form (`collect-detail`)."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-file-tree",
          "name": "KcFileTreeElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "files",
              "type": {
                "text": "{ path: string; url?: undefined | string; code?: undefined | string; language?: undefined | string; type?: undefined | \"html\" | \"pdf\" | \"image\" | \"other\" }[]"
              },
              "description": "The files to render. Set as a JS property (array of `{ path, url?, code?, language?, type? }`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "activeFile",
              "type": {
                "text": "undefined | string"
              },
              "description": "Selected file path — highlighted in the tree.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "defaultExpanded",
              "type": {
                "text": "undefined | string[]"
              },
              "description": "Folder paths expanded initially. Omit to start with all folders open.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "active-file",
              "fieldName": "activeFile",
              "type": {
                "text": "undefined | string"
              },
              "description": "Selected file path — highlighted in the tree."
            }
          ],
          "events": [
            {
              "name": "kc-select",
              "type": {
                "text": "CustomEvent<{ path: string }>"
              },
              "description": "Fired when a file is selected. `detail.path` = the file's path."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-file-upload",
          "name": "KcFileUploadElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "multiple",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Allow selecting multiple files (default true).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "accept",
              "type": {
                "text": "undefined | string"
              },
              "description": "`accept` attribute for the file picker (e.g. `image/*`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable the dropzone — no clicking, no drag-and-drop.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Default dropzone label (overridable via the default slot).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "multiple",
              "fieldName": "multiple",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Allow selecting multiple files (default true)."
            },
            {
              "name": "accept",
              "fieldName": "accept",
              "type": {
                "text": "undefined | string"
              },
              "description": "`accept` attribute for the file picker (e.g. `image/*`)."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable the dropzone — no clicking, no drag-and-drop."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Default dropzone label (overridable via the default slot)."
            }
          ],
          "events": [
            {
              "name": "kc-files-added",
              "type": {
                "text": "CustomEvent<{ files: File[] }>"
              },
              "description": "Files were picked or dropped."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-form",
          "name": "KcFormElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "data",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "The form definition — a JSON Schema (`type:'object'`) + `x-kc-*` UI hints (the CardEnvelope.data). Set as a JS PROPERTY: `el.data = { type:'object', properties:{…} }`. Import the `FormDefinition` type from `@kitn.ai/chat` for the full shape (it is self-referential, so the element types it loosely).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted CardEvent. Attribute: `card-id`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "resolution",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "Set when the user resolved this card; renders the read-only view. Property: `el.resolution = { kind:'submit', data:{…} }`.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "card-id",
              "fieldName": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted CardEvent. Attribute: `card-id`."
            },
            {
              "name": "heading",
              "fieldName": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-image",
          "name": "KcImageElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "base64",
              "type": {
                "text": "undefined | string"
              },
              "description": "Base64-encoded image data (pair with `media-type`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "bytes",
              "type": {
                "text": "undefined | Uint8Array<ArrayBufferLike>"
              },
              "description": "Raw image bytes (set as a JS property).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "alt",
              "type": {
                "text": "undefined | string"
              },
              "description": "Alt text.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "mediaType",
              "type": {
                "text": "undefined | string"
              },
              "description": "MIME type (default `image/png`).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "base64",
              "fieldName": "base64",
              "type": {
                "text": "undefined | string"
              },
              "description": "Base64-encoded image data (pair with `media-type`)."
            },
            {
              "name": "alt",
              "fieldName": "alt",
              "type": {
                "text": "undefined | string"
              },
              "description": "Alt text."
            },
            {
              "name": "media-type",
              "fieldName": "mediaType",
              "type": {
                "text": "undefined | string"
              },
              "description": "MIME type (default `image/png`)."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-link-preview",
          "name": "KcLinkPreviewElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted event. Set as an attribute or property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "data",
              "type": {
                "text": "undefined | { url: string; title?: undefined | string; description?: undefined | string; image?: undefined | string; imageAlt?: undefined | string; favicon?: undefined | string; domain?: undefined | string; siteName?: undefined | string }"
              },
              "description": "The link payload (OG metadata). Set as a JS **property** (object).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "card-id",
              "fieldName": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted event. Set as an attribute or property."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-loader",
          "name": "KcLoaderElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "undefined | \"circular\" | \"classic\" | \"pulse\" | \"pulse-dot\" | \"dots\" | \"typing\" | \"wave\" | \"bars\" | \"terminal\" | \"text-blink\" | \"text-shimmer\" | \"loading-dots\""
              },
              "description": "The animation style: `'circular' | 'classic' | 'pulse' | 'pulse-dot' | 'dots' | 'typing' | 'wave' | 'bars' | 'terminal' | 'text-blink' | 'text-shimmer' | 'loading-dots'`. Defaults to `'circular'`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "undefined | \"sm\" | \"lg\" | \"md\""
              },
              "description": "Loader size: `'sm' | 'md' | 'lg'`. Defaults to `'md'`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "text",
              "type": {
                "text": "undefined | string"
              },
              "description": "Label for the text-based variants.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "type": {
                "text": "undefined | \"circular\" | \"classic\" | \"pulse\" | \"pulse-dot\" | \"dots\" | \"typing\" | \"wave\" | \"bars\" | \"terminal\" | \"text-blink\" | \"text-shimmer\" | \"loading-dots\""
              },
              "description": "The animation style: `'circular' | 'classic' | 'pulse' | 'pulse-dot' | 'dots' | 'typing' | 'wave' | 'bars' | 'terminal' | 'text-blink' | 'text-shimmer' | 'loading-dots'`. Defaults to `'circular'`."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "undefined | \"sm\" | \"lg\" | \"md\""
              },
              "description": "Loader size: `'sm' | 'md' | 'lg'`. Defaults to `'md'`."
            },
            {
              "name": "text",
              "fieldName": "text",
              "type": {
                "text": "undefined | string"
              },
              "description": "Label for the text-based variants."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-markdown",
          "name": "KcMarkdownElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "content",
              "type": {
                "text": "string"
              },
              "description": "The markdown source to render.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "Text/markdown sizing.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "Shiki theme for fenced code blocks.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable syntax highlighting (no Shiki loads).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "content",
              "fieldName": "content",
              "type": {
                "text": "string"
              },
              "description": "The markdown source to render."
            },
            {
              "name": "prose-size",
              "fieldName": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "Text/markdown sizing."
            },
            {
              "name": "code-theme",
              "fieldName": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "Shiki theme for fenced code blocks."
            },
            {
              "name": "code-highlight",
              "fieldName": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable syntax highlighting (no Shiki loads)."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-message",
          "name": "KcMessageElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "message",
              "type": {
                "text": "undefined | { id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }"
              },
              "description": "The full message object. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "role",
              "type": {
                "text": "undefined | \"user\" | \"assistant\""
              },
              "description": "Convenience for simple cases when not passing a `message` object.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "content",
              "type": {
                "text": "undefined | string"
              },
              "description": "Convenience content (used when `message` is not set).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "markdown",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Force markdown on/off. Defaults to on for assistant, off for user.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "Text/markdown sizing for the message body.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "Shiki theme name used for fenced code blocks in the content.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable syntax highlighting for code blocks (no Shiki loads).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "actionsReveal",
              "type": {
                "text": "undefined | \"always\" | \"hover\""
              },
              "description": "Whether the action bar is always visible (`'always'`, default) or only revealed on hover of the message row (`'hover'`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "avatarSrc",
              "type": {
                "text": "undefined | string"
              },
              "description": "Convenience avatar image URL (used when `message.avatar` is not set).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "avatarFallback",
              "type": {
                "text": "undefined | string"
              },
              "description": "Convenience avatar fallback text (used when `message.avatar` is not set).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "role",
              "fieldName": "role",
              "type": {
                "text": "undefined | \"user\" | \"assistant\""
              },
              "description": "Convenience for simple cases when not passing a `message` object."
            },
            {
              "name": "content",
              "fieldName": "content",
              "type": {
                "text": "undefined | string"
              },
              "description": "Convenience content (used when `message` is not set)."
            },
            {
              "name": "markdown",
              "fieldName": "markdown",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Force markdown on/off. Defaults to on for assistant, off for user."
            },
            {
              "name": "prose-size",
              "fieldName": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "Text/markdown sizing for the message body."
            },
            {
              "name": "code-theme",
              "fieldName": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "Shiki theme name used for fenced code blocks in the content."
            },
            {
              "name": "code-highlight",
              "fieldName": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable syntax highlighting for code blocks (no Shiki loads)."
            },
            {
              "name": "actions-reveal",
              "fieldName": "actionsReveal",
              "type": {
                "text": "undefined | \"always\" | \"hover\""
              },
              "description": "Whether the action bar is always visible (`'always'`, default) or only revealed on hover of the message row (`'hover'`)."
            },
            {
              "name": "avatar-src",
              "fieldName": "avatarSrc",
              "type": {
                "text": "undefined | string"
              },
              "description": "Convenience avatar image URL (used when `message.avatar` is not set)."
            },
            {
              "name": "avatar-fallback",
              "fieldName": "avatarFallback",
              "type": {
                "text": "undefined | string"
              },
              "description": "Convenience avatar fallback text (used when `message.avatar` is not set)."
            }
          ],
          "events": [
            {
              "name": "kc-message-action",
              "type": {
                "text": "CustomEvent<{ messageId: string; action: string }>"
              },
              "description": "An action button was clicked. `action` is the built-in name or custom id."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-model-switcher",
          "name": "KcModelSwitcherElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "models",
              "type": {
                "text": "{ id: string; name: string; provider?: undefined | string; description?: undefined | string; group?: undefined | string }[]"
              },
              "description": "The selectable models. Set as a JS property (array).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "currentModel",
              "type": {
                "text": "undefined | string"
              },
              "description": "The currently-selected model id. Defaults to the first model.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "current-model",
              "fieldName": "currentModel",
              "type": {
                "text": "undefined | string"
              },
              "description": "The currently-selected model id. Defaults to the first model."
            }
          ],
          "events": [
            {
              "name": "kc-model-change",
              "type": {
                "text": "CustomEvent<{ modelId: string }>"
              },
              "description": "A model was selected."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-popover",
          "name": "KcPopoverElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "placement",
              "type": {
                "text": "undefined | \"top\" | \"right\" | \"bottom\" | \"left\" | \"top-start\" | \"top-end\" | \"right-start\" | \"right-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\""
              },
              "description": "Floating placement relative to the trigger (floating-ui placement).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "gutter",
              "type": {
                "text": "undefined | number"
              },
              "description": "Gap in px between the trigger and the panel.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Controlled open state. Set as a JS property (`el.open = true`) to drive the popover from your app; omit for the default click-to-toggle behaviour.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "placement",
              "fieldName": "placement",
              "type": {
                "text": "undefined | \"top\" | \"right\" | \"bottom\" | \"left\" | \"top-start\" | \"top-end\" | \"right-start\" | \"right-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\""
              },
              "description": "Floating placement relative to the trigger (floating-ui placement)."
            },
            {
              "name": "gutter",
              "fieldName": "gutter",
              "type": {
                "text": "undefined | number"
              },
              "description": "Gap in px between the trigger and the panel."
            },
            {
              "name": "open",
              "fieldName": "open",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Controlled open state. Set as a JS property (`el.open = true`) to drive the popover from your app; omit for the default click-to-toggle behaviour."
            }
          ],
          "events": [
            {
              "name": "kc-open-change",
              "type": {
                "text": "CustomEvent<{ open: false | true }>"
              },
              "description": "The popover wants to open or close (click, Escape, or outside-click)."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-prompt-input",
          "name": "KcPromptInputElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "undefined | string"
              },
              "description": "Controlled value of the input. When set, the host owns the text and must update it on `kc-value-change`; leave unset for uncontrolled behavior.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "undefined | string"
              },
              "description": "Placeholder text shown in the empty input.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable the input and submit button entirely (non-interactive).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the loading/streaming state and block submit (use while awaiting a reply).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "suggestions",
              "type": {
                "text": "undefined | string[]"
              },
              "description": "Starter prompts shown above the input. Clicking one follows `suggestionMode`. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "suggestionMode",
              "type": {
                "text": "undefined | \"submit\" | \"fill\""
              },
              "description": "What clicking a suggestion does: `'submit'` (default) sends it immediately as if typed and submitted; `'fill'` just places it in the input.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashCommands",
              "type": {
                "text": "undefined | { id: string; label: string; description?: undefined | string; category?: undefined | string }[]"
              },
              "description": "Slash commands — when set, typing `/` opens the command palette. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashActiveIds",
              "type": {
                "text": "undefined | string[]"
              },
              "description": "Command ids to highlight as active.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashCompact",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Single-line palette rows.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "search",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a Search (Globe) button in the left toolbar; clicking it fires a `search` event.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "voice",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a Voice (Mic) button in the left toolbar; clicking it fires a `voice` event.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "stoppable",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When set and `loading` is true, the send button is replaced by a Stop button (square icon, \"Stop\" aria-label). Clicking it fires `kc-stop`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "attachments",
              "type": {
                "text": "undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]"
              },
              "description": "Attachments to seed the input with (so a consumer can pre-populate staged files without an upload). Set as a JS property; the element then manages its own attachment state from there (add via the paperclip, remove per chip).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "undefined | string"
              },
              "description": "Controlled value of the input. When set, the host owns the text and must update it on `kc-value-change`; leave unset for uncontrolled behavior."
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "type": {
                "text": "undefined | string"
              },
              "description": "Placeholder text shown in the empty input."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable the input and submit button entirely (non-interactive)."
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the loading/streaming state and block submit (use while awaiting a reply)."
            },
            {
              "name": "suggestion-mode",
              "fieldName": "suggestionMode",
              "type": {
                "text": "undefined | \"submit\" | \"fill\""
              },
              "description": "What clicking a suggestion does: `'submit'` (default) sends it immediately as if typed and submitted; `'fill'` just places it in the input."
            },
            {
              "name": "slash-compact",
              "fieldName": "slashCompact",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Single-line palette rows."
            },
            {
              "name": "search",
              "fieldName": "search",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a Search (Globe) button in the left toolbar; clicking it fires a `search` event."
            },
            {
              "name": "voice",
              "fieldName": "voice",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show a Voice (Mic) button in the left toolbar; clicking it fires a `voice` event."
            },
            {
              "name": "stoppable",
              "fieldName": "stoppable",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When set and `loading` is true, the send button is replaced by a Stop button (square icon, \"Stop\" aria-label). Clicking it fires `kc-stop`."
            }
          ],
          "events": [
            {
              "name": "kc-search",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The Search (Globe) toolbar button was clicked."
            },
            {
              "name": "kc-slash-select",
              "type": {
                "text": "CustomEvent<{ command: { id: string; label: string; description?: undefined | string; category?: undefined | string } }>"
              },
              "description": "A slash command was chosen from the palette."
            },
            {
              "name": "kc-stop",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The Stop button was clicked while `stoppable` and `loading` are both true."
            },
            {
              "name": "kc-submit",
              "type": {
                "text": "CustomEvent<{ value: string; attachments: { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[] }>"
              },
              "description": "The user submitted the prompt (Enter or send button) with its attachments."
            },
            {
              "name": "kc-suggestion-click",
              "type": {
                "text": "CustomEvent<{ value: string }>"
              },
              "description": "A suggestion was clicked while `suggestion-mode=\"fill\"`."
            },
            {
              "name": "kc-toolbar-action",
              "type": {
                "text": "CustomEvent<{ action: string }>"
              },
              "description": "A custom `<kc-action>` toolbar button was clicked. `action` is the `id` of the `<kc-action>` element that was clicked."
            },
            {
              "name": "kc-value-change",
              "type": {
                "text": "CustomEvent<{ value: string }>"
              },
              "description": "The input text changed (fires on every keystroke)."
            },
            {
              "name": "kc-voice",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The Voice (Mic) toolbar button was clicked."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-reasoning",
          "name": "KcReasoningElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "text",
              "type": {
                "text": "string"
              },
              "description": "The reasoning text to display.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Trigger label.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Controlled open state — set as a property (`el.open = true`). Omit for uncontrolled (the trigger toggles it).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "streaming",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "While true, auto-expands (and re-collapses when it flips false).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "markdown",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Render `text` as markdown.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "text",
              "fieldName": "text",
              "type": {
                "text": "string"
              },
              "description": "The reasoning text to display."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Trigger label."
            },
            {
              "name": "open",
              "fieldName": "open",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Controlled open state — set as a property (`el.open = true`). Omit for uncontrolled (the trigger toggles it)."
            },
            {
              "name": "streaming",
              "fieldName": "streaming",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "While true, auto-expands (and re-collapses when it flips false)."
            },
            {
              "name": "markdown",
              "fieldName": "markdown",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Render `text` as markdown."
            }
          ],
          "events": [
            {
              "name": "kc-open-change",
              "type": {
                "text": "CustomEvent<{ open: false | true }>"
              },
              "description": "Open state changed (via the trigger or streaming auto-open)."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-remote",
          "name": "KcRemoteElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "undefined | string"
              },
              "description": "The remote card URL. Attribute: `src`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "providerOrigin",
              "type": {
                "text": "undefined | string"
              },
              "description": "Exact provider origin (https: or http://localhost for dev). Attribute: `provider-origin`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "envelope",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "The card envelope to render. JS property only.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "policy",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "Optional routing policy. JS property only.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "src",
              "fieldName": "src",
              "type": {
                "text": "undefined | string"
              },
              "description": "The remote card URL. Attribute: `src`."
            },
            {
              "name": "provider-origin",
              "fieldName": "providerOrigin",
              "type": {
                "text": "undefined | string"
              },
              "description": "Exact provider origin (https: or http://localhost for dev). Attribute: `provider-origin`."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-resizable",
          "name": "KcResizableElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "orientation",
              "type": {
                "text": "undefined | \"horizontal\" | \"vertical\""
              },
              "description": "Layout axis: `horizontal` (row, default) or `vertical` (column).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "maximizedIndex",
              "type": {
                "text": "undefined | null | number"
              },
              "description": "Which item index is maximized (null = none). Declarative source of truth.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "type": {
                "text": "undefined | \"horizontal\" | \"vertical\""
              },
              "description": "Layout axis: `horizontal` (row, default) or `vertical` (column)."
            }
          ],
          "events": [
            {
              "name": "kc-change",
              "type": {
                "text": "CustomEvent<{ sizes: number[] }>"
              },
              "description": "Fired on drag-end / keyboard resize / visibility change. `detail.sizes` = panel sizes in percent."
            },
            {
              "name": "kc-maximize-change",
              "type": {
                "text": "CustomEvent<{ maximized: false | true; index: null | number }>"
              },
              "description": "Observe layout maximize state."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-resizable-item",
          "name": "KcResizableItemElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "undefined | string"
              },
              "description": "Initial main-axis size: `\"280px\"` (fixed) or `\"25%\"`/`25` (percent). Omitted → flexible.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "min",
              "type": {
                "text": "undefined | string"
              },
              "description": "Minimum size during resize (px or %).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "max",
              "type": {
                "text": "undefined | string"
              },
              "description": "Maximum size during resize (px or %).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "locked",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Fix this panel's size; adjacent dividers become non-draggable.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "hidden",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide this panel; its divider is dropped and the rest reflow.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "undefined | string"
              },
              "description": "Initial main-axis size: `\"280px\"` (fixed) or `\"25%\"`/`25` (percent). Omitted → flexible."
            },
            {
              "name": "min",
              "fieldName": "min",
              "type": {
                "text": "undefined | string"
              },
              "description": "Minimum size during resize (px or %)."
            },
            {
              "name": "max",
              "fieldName": "max",
              "type": {
                "text": "undefined | string"
              },
              "description": "Maximum size during resize (px or %)."
            },
            {
              "name": "locked",
              "fieldName": "locked",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Fix this panel's size; adjacent dividers become non-draggable."
            },
            {
              "name": "hidden",
              "fieldName": "hidden",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Hide this panel; its divider is dropped and the rest reflow."
            }
          ],
          "events": [
            {
              "name": "kc-change",
              "type": {
                "text": "CustomEvent<unknown>"
              },
              "description": ""
            },
            {
              "name": "kc-maximize-change",
              "type": {
                "text": "CustomEvent<unknown>"
              },
              "description": ""
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-response-stream",
          "name": "KcResponseStreamElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "text",
              "type": {
                "text": "undefined | string | AsyncIterable<string>"
              },
              "description": "Text to stream. A string, or an `AsyncIterable<string>` (set as a JS property — async iterables can't be HTML attributes).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "mode",
              "type": {
                "text": "undefined | \"typewriter\" | \"fade\""
              },
              "description": "Reveal animation.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "speed",
              "type": {
                "text": "undefined | number"
              },
              "description": "Characters/segments per tick.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "as",
              "type": {
                "text": "undefined | string"
              },
              "description": "Element tag to render as.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "mode",
              "fieldName": "mode",
              "type": {
                "text": "undefined | \"typewriter\" | \"fade\""
              },
              "description": "Reveal animation."
            },
            {
              "name": "speed",
              "fieldName": "speed",
              "type": {
                "text": "undefined | number"
              },
              "description": "Characters/segments per tick."
            },
            {
              "name": "as",
              "fieldName": "as",
              "type": {
                "text": "undefined | string"
              },
              "description": "Element tag to render as."
            }
          ],
          "events": [
            {
              "name": "kc-complete",
              "type": {
                "text": "CustomEvent"
              },
              "description": "Streaming finished."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-scope-picker",
          "name": "KcScopePickerElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "availableAuthors",
              "type": {
                "text": "string[]"
              },
              "description": "Authors to offer as scope filters. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "availableTags",
              "type": {
                "text": "string[]"
              },
              "description": "Tags to offer as scope filters. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "currentLabel",
              "type": {
                "text": "undefined | string"
              },
              "description": "The label shown on the trigger for the active scope.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "current-label",
              "fieldName": "currentLabel",
              "type": {
                "text": "undefined | string"
              },
              "description": "The label shown on the trigger for the active scope."
            }
          ],
          "events": [
            {
              "name": "kc-scope-change",
              "type": {
                "text": "CustomEvent<{ filters: undefined | { tags?: undefined | string[]; authors?: undefined | string[]; contentType?: undefined | \"transcript\" | \"markdown\"; dateRange?: undefined | { from: string; to: string } } }>"
              },
              "description": "A scope was chosen (`undefined` filters = \"All Content\")."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-scroll-button",
          "name": "KcScrollButtonElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "for",
              "type": {
                "text": "undefined | string"
              },
              "description": "CSS id of the scroll container to control. When omitted the element walks up the DOM (outside its own shadow root) to find the nearest scrollable ancestor. Mirrors the `for` convention of `<label for=\"...\">`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "undefined | \"ghost\" | \"default\" | \"outline\""
              },
              "description": "Button visual variant: `'outline' | 'ghost' | 'default'`. Defaults to `'outline'`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "undefined | \"sm\" | \"lg\" | \"md\" | \"icon\" | \"icon-sm\""
              },
              "description": "Button size token. Defaults to `'icon'` (square).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "for",
              "fieldName": "for",
              "type": {
                "text": "undefined | string"
              },
              "description": "CSS id of the scroll container to control. When omitted the element walks up the DOM (outside its own shadow root) to find the nearest scrollable ancestor. Mirrors the `for` convention of `<label for=\"...\">`."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "type": {
                "text": "undefined | \"ghost\" | \"default\" | \"outline\""
              },
              "description": "Button visual variant: `'outline' | 'ghost' | 'default'`. Defaults to `'outline'`."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "undefined | \"sm\" | \"lg\" | \"md\" | \"icon\" | \"icon-sm\""
              },
              "description": "Button size token. Defaults to `'icon'` (square)."
            }
          ],
          "events": [
            {
              "name": "kc-scroll",
              "type": {
                "text": "CustomEvent"
              },
              "description": "Emitted when the user clicks the button and `scrollToBottom()` is called. Carries no detail — consumers use it to know a manual scroll occurred."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-skills",
          "name": "KcSkillsElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "skills",
              "type": {
                "text": "{ id: string; name: string }[]"
              },
              "description": "The active skills to badge. Set as a JS property.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-source",
          "name": "KcSourceElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "undefined | string"
              },
              "description": "The URL this citation links to (the domain also seeds the default label/favicon).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Trigger label (defaults to the domain).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "headline",
              "type": {
                "text": "undefined | string"
              },
              "description": "Hover-card headline. Attribute: `headline` (`title` is avoided — it's a global HTML attribute that reflects in a CE constructor and breaks it).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "description",
              "type": {
                "text": "undefined | string"
              },
              "description": "Hover-card body text describing the source.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "showFavicon",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the source's favicon next to the trigger label.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "href",
              "fieldName": "href",
              "type": {
                "text": "undefined | string"
              },
              "description": "The URL this citation links to (the domain also seeds the default label/favicon)."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Trigger label (defaults to the domain)."
            },
            {
              "name": "headline",
              "fieldName": "headline",
              "type": {
                "text": "undefined | string"
              },
              "description": "Hover-card headline. Attribute: `headline` (`title` is avoided — it's a global HTML attribute that reflects in a CE constructor and breaks it)."
            },
            {
              "name": "description",
              "fieldName": "description",
              "type": {
                "text": "undefined | string"
              },
              "description": "Hover-card body text describing the source."
            },
            {
              "name": "show-favicon",
              "fieldName": "showFavicon",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show the source's favicon next to the trigger label."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-sources",
          "name": "KcSourcesElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "sources",
              "type": {
                "text": "{ href: string; title?: undefined | string; description?: undefined | string; label?: undefined | string; showFavicon?: undefined | false | true }[]"
              },
              "description": "The sources to render. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "showFavicon",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show favicons on all items (per-item `showFavicon` overrides).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "numbered",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When true, each citation chip is labelled with its 1-based index in the merged (prop + declarative-children) list (`[1]`, `[2]`, …) instead of the per-item `label` or domain fallback. HTML attribute: `numbered` (boolean — bare attribute or `numbered=\"true\"`). JS property: `el.numbered = true`.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "show-favicon",
              "fieldName": "showFavicon",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Show favicons on all items (per-item `showFavicon` overrides)."
            },
            {
              "name": "numbered",
              "fieldName": "numbered",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When true, each citation chip is labelled with its 1-based index in the merged (prop + declarative-children) list (`[1]`, `[2]`, …) instead of the per-item `label` or domain fallback. HTML attribute: `numbered` (boolean — bare attribute or `numbered=\"true\"`). JS property: `el.numbered = true`."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-suggestions",
          "name": "KcSuggestionsElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "suggestions",
              "type": {
                "text": "(string | { label: string; value?: undefined | string })[]"
              },
              "description": "The suggestions. Strings, or `{ label, value }` when the displayed text and the emitted value differ. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "undefined | \"ghost\" | \"default\" | \"outline\""
              },
              "description": "Chip style: `'outline'` (default), `'ghost'`, or `'default'` (filled).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "undefined | \"sm\" | \"lg\" | \"md\" | \"icon\" | \"icon-sm\""
              },
              "description": "Size preset for each chip. Defaults to the pill default (`'lg'`); pass `'sm'` for smaller pills (or `'md'`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "block",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Full-width left-aligned rows instead of pills.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "highlight",
              "type": {
                "text": "undefined | string"
              },
              "description": "Substring to highlight within each suggestion.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "type": {
                "text": "undefined | \"ghost\" | \"default\" | \"outline\""
              },
              "description": "Chip style: `'outline'` (default), `'ghost'`, or `'default'` (filled)."
            },
            {
              "name": "size",
              "fieldName": "size",
              "type": {
                "text": "undefined | \"sm\" | \"lg\" | \"md\" | \"icon\" | \"icon-sm\""
              },
              "description": "Size preset for each chip. Defaults to the pill default (`'lg'`); pass `'sm'` for smaller pills (or `'md'`)."
            },
            {
              "name": "block",
              "fieldName": "block",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Full-width left-aligned rows instead of pills."
            },
            {
              "name": "highlight",
              "fieldName": "highlight",
              "type": {
                "text": "undefined | string"
              },
              "description": "Substring to highlight within each suggestion."
            }
          ],
          "events": [
            {
              "name": "kc-select",
              "type": {
                "text": "CustomEvent<{ value: string }>"
              },
              "description": "A suggestion was clicked."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-switch",
          "name": "KcSwitchElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Initial checked state. Bare attribute (`<kc-switch checked>`) turns it on.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable interaction.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Accessible label.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "checked",
              "fieldName": "checked",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Initial checked state. Bare attribute (`<kc-switch checked>`) turns it on."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable interaction."
            },
            {
              "name": "label",
              "fieldName": "label",
              "type": {
                "text": "undefined | string"
              },
              "description": "Accessible label."
            }
          ],
          "events": [
            {
              "name": "kc-change",
              "type": {
                "text": "CustomEvent<{ checked: false | true }>"
              },
              "description": "The toggle changed."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-tasks",
          "name": "KcTasksElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "data",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "The tasks definition (the CardEnvelope.data). Set as a JS PROPERTY: `el.data = { tasks:[…], selectAll, confirmLabel, … }`. Import `TasksCardData` from `@kitn.ai/chat` for the full shape.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted CardEvent. Attribute: `card-id`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "resolution",
              "type": {
                "text": "undefined | Record<string, unknown>"
              },
              "description": "Set when the user resolved this card; renders the read-only view. Property: `el.resolution = { kind:'submit', data:{ selected:[…] } }`.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "card-id",
              "fieldName": "cardId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Stable card id correlating every emitted CardEvent. Attribute: `card-id`."
            },
            {
              "name": "heading",
              "fieldName": "heading",
              "type": {
                "text": "undefined | string"
              },
              "description": "Heading rendered in the card chrome (= CardEnvelope.title). Attribute: `heading`."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-text-shimmer",
          "name": "KcTextShimmerElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "text",
              "type": {
                "text": "undefined | string"
              },
              "description": "The text to shimmer.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "as",
              "type": {
                "text": "undefined | string"
              },
              "description": "Element tag to render as (default `span`).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "duration",
              "type": {
                "text": "undefined | number"
              },
              "description": "Animation duration in seconds.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "spread",
              "type": {
                "text": "undefined | number"
              },
              "description": "Gradient spread (5–45).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "text",
              "fieldName": "text",
              "type": {
                "text": "undefined | string"
              },
              "description": "The text to shimmer."
            },
            {
              "name": "as",
              "fieldName": "as",
              "type": {
                "text": "undefined | string"
              },
              "description": "Element tag to render as (default `span`)."
            },
            {
              "name": "duration",
              "fieldName": "duration",
              "type": {
                "text": "undefined | number"
              },
              "description": "Animation duration in seconds."
            },
            {
              "name": "spread",
              "fieldName": "spread",
              "type": {
                "text": "undefined | number"
              },
              "description": "Gradient spread (5–45)."
            }
          ],
          "events": [],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-thinking-bar",
          "name": "KcThinkingBarElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "text",
              "type": {
                "text": "undefined | string"
              },
              "description": "The shimmering label, e.g. \"Thinking…\".",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "stoppable",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When true, show a \"stop\" affordance that fires a `stop` event.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "stopLabel",
              "type": {
                "text": "undefined | string"
              },
              "description": "Label for the stop affordance.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "text",
              "fieldName": "text",
              "type": {
                "text": "undefined | string"
              },
              "description": "The shimmering label, e.g. \"Thinking…\"."
            },
            {
              "name": "stoppable",
              "fieldName": "stoppable",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "When true, show a \"stop\" affordance that fires a `stop` event."
            },
            {
              "name": "stop-label",
              "fieldName": "stopLabel",
              "type": {
                "text": "undefined | string"
              },
              "description": "Label for the stop affordance."
            }
          ],
          "events": [
            {
              "name": "kc-stop",
              "type": {
                "text": "CustomEvent"
              },
              "description": "The \"stop / answer now\" affordance was clicked."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-tool",
          "name": "KcToolElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "tool",
              "type": {
                "text": "undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }"
              },
              "description": "The tool-call to display. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Start expanded.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "open",
              "fieldName": "open",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Start expanded."
            }
          ],
          "events": [],
          "cssProperties": [
            {
              "name": "--color-tool-blue"
            },
            {
              "name": "--color-tool-amber"
            },
            {
              "name": "--color-tool-green"
            },
            {
              "name": "--color-tool-red"
            }
          ]
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-voice-input",
          "name": "KcVoiceInputElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "transcribe",
              "type": {
                "text": "undefined | (audio: Blob) => Promise<string>"
              },
              "description": "Transcriber the host supplies — records audio, returns the text. This is a **function-valued property** (`el.transcribe = async blob => '...'`) because a value-returning callback can't be modelled as a fire-and-forget event.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable the mic button (non-interactive).",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Disable the mic button (non-interactive)."
            }
          ],
          "events": [
            {
              "name": "kc-audio-captured",
              "type": {
                "text": "CustomEvent<{ blob: Blob }>"
              },
              "description": "Raw audio captured (before transcription) — for hosts that prefer to handle transcription themselves instead of via the `transcribe` property."
            },
            {
              "name": "kc-transcription",
              "type": {
                "text": "CustomEvent<{ text: string }>"
              },
              "description": "Transcription completed (the `transcribe` property resolved)."
            }
          ],
          "cssProperties": []
        },
        {
          "kind": "class",
          "customElement": true,
          "tagName": "kc-workspace",
          "name": "KcWorkspaceElement",
          "description": "",
          "members": [
            {
              "kind": "field",
              "name": "groups",
              "type": {
                "text": "{ id: string; userId?: undefined | string; teamId?: undefined | string; name: string; sortOrder: number; createdAt: string }[]"
              },
              "description": "Pre-bucketed conversation groups for the sidebar. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "conversations",
              "type": {
                "text": "{ id: string; title: string; groupId?: undefined | string; scope: { type: \"document\" | \"collection\"; documentId?: undefined | string; filters?: undefined | { tags?: undefined | string[]; authors?: undefined | string[]; contentType?: undefined | \"transcript\" | \"markdown\"; dateRange?: undefined | { from: string; to: string } } }; messageCount: number; lastMessageAt: string; updatedAt: string }[]"
              },
              "description": "Flat conversation list (auto-bucketed if `groups` is empty). Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "activeId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Id of the open conversation, highlighted in the sidebar.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "messages",
              "type": {
                "text": "{ id: string; role: \"user\" | \"assistant\"; content: string; reasoning?: undefined | { text: string; label?: undefined | string }; tools?: undefined | { type: string; state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\"; input?: undefined | Record<string, unknown>; output?: undefined | Record<string, unknown>; toolCallId?: undefined | string; errorText?: undefined | string }[]; attachments?: undefined | { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[]; actions?: undefined | (\"copy\" | \"like\" | \"dislike\" | \"regenerate\" | \"edit\" | { id: string; label: string; icon?: undefined | string; tooltip?: undefined | string })[]; avatar?: undefined | { src?: undefined | string; fallback?: undefined | string; alt?: undefined | string } }[]"
              },
              "description": "The active conversation's message thread, newest last. Set as a JS property.",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "undefined | string"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "undefined | string"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "suggestions",
              "type": {
                "text": "undefined | string[]"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "suggestionMode",
              "type": {
                "text": "undefined | \"submit\" | \"fill\""
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "chatTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "models",
              "type": {
                "text": "undefined | { id: string; name: string; provider?: undefined | string; description?: undefined | string; group?: undefined | string }[]"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "currentModel",
              "type": {
                "text": "undefined | string"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "context",
              "type": {
                "text": "undefined | { usedTokens: number; maxTokens: number; inputTokens?: undefined | number; outputTokens?: undefined | number; estimatedCost?: undefined | number }"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "scrollButton",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "search",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "voice",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashCommands",
              "type": {
                "text": "undefined | { id: string; label: string; description?: undefined | string; category?: undefined | string }[]"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashActiveIds",
              "type": {
                "text": "undefined | string[]"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "slashCompact",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "sidebarWidth",
              "type": {
                "text": "undefined | number"
              },
              "description": "Sidebar default width as a percent of the workspace (default 22).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "sidebarMinWidth",
              "type": {
                "text": "undefined | number"
              },
              "description": "Sidebar min width in px (default 200).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "sidebarMaxWidth",
              "type": {
                "text": "undefined | number"
              },
              "description": "Sidebar max width in px (default 420).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "sidebarCollapsed",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Controlled collapsed state. Set this as a JS property (`el.sidebarCollapsed = true`) to drive the sidebar from your app, updating it in response to the `kc-sidebar-toggle` event. Omit for uncontrolled (the element manages it).",
              "privacy": "public"
            },
            {
              "kind": "field",
              "name": "defaultSidebarCollapsed",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Initial collapsed state when uncontrolled (default false). Use the `default-sidebar-collapsed` attribute to start collapsed in plain HTML.",
              "privacy": "public"
            }
          ],
          "attributes": [
            {
              "name": "theme",
              "type": {
                "text": "'light' | 'dark' | 'auto'"
              },
              "description": "Color mode (auto follows prefers-color-scheme)."
            },
            {
              "name": "active-id",
              "fieldName": "activeId",
              "type": {
                "text": "undefined | string"
              },
              "description": "Id of the open conversation, highlighted in the sidebar."
            },
            {
              "name": "value",
              "fieldName": "value",
              "type": {
                "text": "undefined | string"
              },
              "description": ""
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "type": {
                "text": "undefined | string"
              },
              "description": ""
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "type": {
                "text": "undefined | false | true"
              },
              "description": ""
            },
            {
              "name": "suggestion-mode",
              "fieldName": "suggestionMode",
              "type": {
                "text": "undefined | \"submit\" | \"fill\""
              },
              "description": ""
            },
            {
              "name": "prose-size",
              "fieldName": "proseSize",
              "type": {
                "text": "undefined | \"xs\" | \"sm\" | \"base\" | \"lg\""
              },
              "description": ""
            },
            {
              "name": "code-theme",
              "fieldName": "codeTheme",
              "type": {
                "text": "undefined | string"
              },
              "description": ""
            },
            {
              "name": "code-highlight",
              "fieldName": "codeHighlight",
              "type": {
                "text": "undefined | false | true"
              },
              "description": ""
            },
            {
              "name": "chat-title",
              "fieldName": "chatTitle",
              "type": {
                "text": "undefined | string"
              },
              "description": ""
            },
            {
              "name": "current-model",
              "fieldName": "currentModel",
              "type": {
                "text": "undefined | string"
              },
              "description": ""
            },
            {
              "name": "scroll-button",
              "fieldName": "scrollButton",
              "type": {
                "text": "undefined | false | true"
              },
              "description": ""
            },
            {
              "name": "search",
              "fieldName": "search",
              "type": {
                "text": "undefined | false | true"
              },
              "description": ""
            },
            {
              "name": "voice",
              "fieldName": "voice",
              "type": {
                "text": "undefined | false | true"
              },
              "description": ""
            },
            {
              "name": "slash-compact",
              "fieldName": "slashCompact",
              "type": {
                "text": "undefined | false | true"
              },
              "description": ""
            },
            {
              "name": "sidebar-width",
              "fieldName": "sidebarWidth",
              "type": {
                "text": "undefined | number"
              },
              "description": "Sidebar default width as a percent of the workspace (default 22)."
            },
            {
              "name": "sidebar-min-width",
              "fieldName": "sidebarMinWidth",
              "type": {
                "text": "undefined | number"
              },
              "description": "Sidebar min width in px (default 200)."
            },
            {
              "name": "sidebar-max-width",
              "fieldName": "sidebarMaxWidth",
              "type": {
                "text": "undefined | number"
              },
              "description": "Sidebar max width in px (default 420)."
            },
            {
              "name": "sidebar-collapsed",
              "fieldName": "sidebarCollapsed",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Controlled collapsed state. Set this as a JS property (`el.sidebarCollapsed = true`) to drive the sidebar from your app, updating it in response to the `kc-sidebar-toggle` event. Omit for uncontrolled (the element manages it)."
            },
            {
              "name": "default-sidebar-collapsed",
              "fieldName": "defaultSidebarCollapsed",
              "type": {
                "text": "undefined | false | true"
              },
              "description": "Initial collapsed state when uncontrolled (default false). Use the `default-sidebar-collapsed` attribute to start collapsed in plain HTML."
            }
          ],
          "events": [
            {
              "name": "kc-conversation-select",
              "type": {
                "text": "CustomEvent<{ id: string }>"
              },
              "description": "A conversation was selected in the sidebar."
            },
            {
              "name": "kc-message-action",
              "type": {
                "text": "CustomEvent<{ messageId: string; action: string }>"
              },
              "description": "An action button on a message was clicked."
            },
            {
              "name": "kc-model-change",
              "type": {
                "text": "CustomEvent<{ modelId: string }>"
              },
              "description": "The header model switcher changed."
            },
            {
              "name": "kc-new-chat",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The \"New chat\" button was clicked."
            },
            {
              "name": "kc-search",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The Search button was clicked."
            },
            {
              "name": "kc-sidebar-toggle",
              "type": {
                "text": "CustomEvent<{ collapsed: false | true }>"
              },
              "description": "The sidebar was collapsed or expanded."
            },
            {
              "name": "kc-slash-select",
              "type": {
                "text": "CustomEvent<{ command: { id: string; label: string; description?: undefined | string; category?: undefined | string } }>"
              },
              "description": "A slash command was chosen from the palette."
            },
            {
              "name": "kc-submit",
              "type": {
                "text": "CustomEvent<{ value: string; attachments: { id: string; type: \"file\" | \"source-document\"; filename?: undefined | string; mediaType?: undefined | string; url?: undefined | string; title?: undefined | string }[] }>"
              },
              "description": "User submitted a message."
            },
            {
              "name": "kc-suggestion-click",
              "type": {
                "text": "CustomEvent<{ value: string }>"
              },
              "description": "A suggestion chip was clicked (only in `suggestion-mode=\"fill\"`)."
            },
            {
              "name": "kc-value-change",
              "type": {
                "text": "CustomEvent<{ value: string }>"
              },
              "description": "Fired on every input change."
            },
            {
              "name": "kc-voice",
              "type": {
                "text": "CustomEvent<Record<string, never>>"
              },
              "description": "The Mic / voice button was clicked."
            }
          ],
          "cssProperties": []
        }
      ]
    }
  ]
}
