@neuralnomads/codenomad-dev 0.20.0-dev-20260907-e9e94a67 → 0.20.0-dev-20260908-e5115fe8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/assets/{App-lAZZOE--.js → App-DPj4p3An.js} +16 -16
- package/public/assets/App-DPj4p3An.js.map +1 -0
- package/public/assets/{FilesTab-CgfwF6tR.js → FilesTab-C8fnWsM4.js} +2 -2
- package/public/assets/{FilesTab-CgfwF6tR.js.map → FilesTab-C8fnWsM4.js.map} +1 -1
- package/public/assets/{GitChangesTab-r1JoAD9n.js → GitChangesTab-C3rapWwl.js} +2 -2
- package/public/assets/{GitChangesTab-r1JoAD9n.js.map → GitChangesTab-C3rapWwl.js.map} +1 -1
- package/public/assets/{SplitFilePanel-D9FfoZUZ.js → SplitFilePanel-D3S7Zfcc.js} +2 -2
- package/public/assets/{SplitFilePanel-D9FfoZUZ.js.map → SplitFilePanel-D3S7Zfcc.js.map} +1 -1
- package/public/assets/{StatusTab-DMnWj5WS.js → StatusTab-DHvQ-0to.js} +2 -2
- package/public/assets/{StatusTab-DMnWj5WS.js.map → StatusTab-DHvQ-0to.js.map} +1 -1
- package/public/assets/{align-justify-Dc1gjAkp.js → align-justify-BIN0BnZw.js} +2 -2
- package/public/assets/{align-justify-Dc1gjAkp.js.map → align-justify-BIN0BnZw.js.map} +1 -1
- package/public/assets/{bundle-full-CXK0RpEe.js → bundle-full-BfEvraVO.js} +2 -2
- package/public/assets/{bundle-full-CXK0RpEe.js.map → bundle-full-BfEvraVO.js.map} +1 -1
- package/public/assets/{client-state-DmImbmIC.js → client-state-CBKOWfhu.js} +2 -2
- package/public/assets/{client-state-DmImbmIC.js.map → client-state-CBKOWfhu.js.map} +1 -1
- package/public/assets/{diff-viewer-CbJWj99J.js → diff-viewer-6oxyPi3-.js} +2 -2
- package/public/assets/{diff-viewer-CbJWj99J.js.map → diff-viewer-6oxyPi3-.js.map} +1 -1
- package/public/assets/{index-CF7UTwOC.js → index-BJrZpSe6.js} +2 -2
- package/public/assets/{index-CF7UTwOC.js.map → index-BJrZpSe6.js.map} +1 -1
- package/public/assets/{index-UtSy15g1.js → index-B_9dhJTl.js} +2 -2
- package/public/assets/{index-UtSy15g1.js.map → index-B_9dhJTl.js.map} +1 -1
- package/public/assets/{index-xkTcWbMt.js → index-BeWVYvfJ.js} +2 -2
- package/public/assets/{index-xkTcWbMt.js.map → index-BeWVYvfJ.js.map} +1 -1
- package/public/assets/{index-C1AVy0gw.js → index-BhBg6Tnf.js} +2 -2
- package/public/assets/{index-C1AVy0gw.js.map → index-BhBg6Tnf.js.map} +1 -1
- package/public/assets/{index-Bv4cVEdt.js → index-C9znv1NB.js} +2 -2
- package/public/assets/{index-Bv4cVEdt.js.map → index-C9znv1NB.js.map} +1 -1
- package/public/assets/{index-kaTj6a0V.js → index-CD9b6FoA.js} +2 -2
- package/public/assets/{index-kaTj6a0V.js.map → index-CD9b6FoA.js.map} +1 -1
- package/public/assets/{index-D5cfewGV.js → index-CmJg6xjr.js} +2 -2
- package/public/assets/{index-D5cfewGV.js.map → index-CmJg6xjr.js.map} +1 -1
- package/public/assets/{index-C8aIk3bb.js → index-DHNlQHw2.js} +2 -2
- package/public/assets/{index-C8aIk3bb.js.map → index-DHNlQHw2.js.map} +1 -1
- package/public/assets/{index-AwBa5De4.js → index-DdklToXY.js} +2 -2
- package/public/assets/{index-AwBa5De4.js.map → index-DdklToXY.js.map} +1 -1
- package/public/assets/{index-Dggdc5Fz.js → index-Dr5L4afe.js} +2 -2
- package/public/assets/{index-Dggdc5Fz.js.map → index-Dr5L4afe.js.map} +1 -1
- package/public/assets/{index-BJSdILt0.js → index-DsmOPul3.js} +2 -2
- package/public/assets/{index-BJSdILt0.js.map → index-DsmOPul3.js.map} +1 -1
- package/public/assets/{index-BfORYhCR.js → index-ef9_CbWU.js} +3 -3
- package/public/assets/index-ef9_CbWU.js.map +1 -0
- package/public/assets/{loading-CLjF2dnt.js → loading-CanSHf7z.js} +2 -2
- package/public/assets/{loading-CLjF2dnt.js.map → loading-CanSHf7z.js.map} +1 -1
- package/public/assets/{main-CA9pw_Mr.js → main-COtTRZe6.js} +25 -25
- package/public/assets/main-COtTRZe6.js.map +1 -0
- package/public/assets/{markdown-DP0osupz.js → markdown-B04qkFuc.js} +4 -4
- package/public/assets/{markdown-DP0osupz.js.map → markdown-B04qkFuc.js.map} +1 -1
- package/public/assets/{startup-state-settings-card-Bc27wplD.js → startup-state-settings-card-DE11-Je6.js} +2 -2
- package/public/assets/{startup-state-settings-card-Bc27wplD.js.map → startup-state-settings-card-DE11-Je6.js.map} +1 -1
- package/public/assets/{terminal-square-4t6I40X6.js → terminal-square-W8UL0Uzs.js} +2 -2
- package/public/assets/{terminal-square-4t6I40X6.js.map → terminal-square-W8UL0Uzs.js.map} +1 -1
- package/public/assets/{tool-call-BIHyGWIy.js → tool-call-irc_6gLg.js} +4 -4
- package/public/assets/{tool-call-BIHyGWIy.js.map → tool-call-irc_6gLg.js.map} +1 -1
- package/public/assets/{unified-picker-CpvYPG8V.js → unified-picker-CkVc32ly.js} +2 -2
- package/public/assets/{unified-picker-CpvYPG8V.js.map → unified-picker-CkVc32ly.js.map} +1 -1
- package/public/assets/{wrap-text-Dq8UDb8D.js → wrap-text-CR-cuiJP.js} +2 -2
- package/public/assets/{wrap-text-Dq8UDb8D.js.map → wrap-text-CR-cuiJP.js.map} +1 -1
- package/public/index.html +2 -2
- package/public/loading.html +2 -2
- package/public/sw.js +1 -1
- package/public/sw.js.map +1 -1
- package/public/assets/App-lAZZOE--.js.map +0 -1
- package/public/assets/index-BfORYhCR.js.map +0 -1
- package/public/assets/main-CA9pw_Mr.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusTab-DMnWj5WS.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/grip-vertical.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/x-octagon.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/2N4PRSLE.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/UGE6PPGT.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/PYUMFHDL.jsx","../../../components/session/context-usage-panel.tsx","../../../components/session/provider-usage-panel.tsx","../../../stores/shell-store.ts","../../../stores/shells.ts","../../../components/shell-output-dialog.tsx","../../../components/instance/shell/right-panel/tabs/StatusTab.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '9', cy: '12', r: '1', key: '1vctgf' }],\n ['circle', { cx: '9', cy: '5', r: '1', key: 'hp0tcf' }],\n ['circle', { cx: '9', cy: '19', r: '1', key: 'fkjjf6' }],\n ['circle', { cx: '15', cy: '12', r: '1', key: '1tmaij' }],\n ['circle', { cx: '15', cy: '5', r: '1', key: '19l28e' }],\n ['circle', { cx: '15', cy: '19', r: '1', key: 'f4zoj3' }],\n];\nconst GripVertical = (props) => (<Icon {...props} name=\"GripVertical\" iconNode={iconNode}/>);\nexport default GripVertical;\n","import Icon from '../Icon';\nconst iconNode = [\n [\n 'polygon',\n {\n points: '7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2',\n key: 'h1p8hx',\n },\n ],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n];\nconst XOctagon = (props) => <Icon {...props} name=\"XOctagon\" iconNode={iconNode}/>;\nexport default XOctagon;\n","import {\n Popper,\n PopperArrow\n} from \"./2CTBMVJ4.jsx\";\nimport {\n DismissableLayer\n} from \"./3VFJM5NZ.jsx\";\nimport {\n createDisclosureState\n} from \"./E53DB7BS.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/tooltip/index.tsx\nvar tooltip_exports = {};\n__export(tooltip_exports, {\n Arrow: () => PopperArrow,\n Content: () => TooltipContent,\n Portal: () => TooltipPortal,\n Root: () => TooltipRoot,\n Tooltip: () => Tooltip,\n Trigger: () => TooltipTrigger,\n useTooltipContext: () => useTooltipContext\n});\n\n// src/tooltip/tooltip-content.tsx\nimport { mergeDefaultProps, mergeRefs } from \"@kobalte/utils\";\nimport {\n Show,\n createEffect,\n onCleanup,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\n\n// src/tooltip/tooltip-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar TooltipContext = createContext();\nfunction useTooltipContext() {\n const context = useContext(TooltipContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useTooltipContext` must be used within a `Tooltip` component\"\n );\n }\n return context;\n}\n\n// src/tooltip/tooltip-content.tsx\nfunction TooltipContent(props) {\n const context = useTooltipContext();\n const mergedProps = mergeDefaultProps(\n {\n id: context.generateId(\"content\")\n },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"ref\", \"style\"]);\n createEffect(() => onCleanup(context.registerContentId(others.id)));\n return <Show when={context.contentPresent()}><Popper.Positioner><DismissableLayer\n ref={mergeRefs((el) => {\n context.setContentRef(el);\n }, local.ref)}\n role=\"tooltip\"\n disableOutsidePointerEvents={false}\n style={combineStyle(\n {\n \"--kb-tooltip-content-transform-origin\": \"var(--kb-popper-content-transform-origin)\",\n position: \"relative\"\n },\n local.style\n )}\n onFocusOutside={(e) => e.preventDefault()}\n onDismiss={() => context.hideTooltip(true)}\n {...context.dataset()}\n {...others}\n /></Popper.Positioner></Show>;\n}\n\n// src/tooltip/tooltip-portal.tsx\nimport { Show as Show2 } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nfunction TooltipPortal(props) {\n const context = useTooltipContext();\n return <Show2 when={context.contentPresent()}><Portal {...props} /></Show2>;\n}\n\n// src/tooltip/tooltip-root.tsx\nimport {\n contains,\n createGenerateId,\n getDocument,\n getEventPoint,\n getWindow,\n isPointInPolygon,\n mergeDefaultProps as mergeDefaultProps2\n} from \"@kobalte/utils\";\nimport {\n createEffect as createEffect2,\n createMemo,\n createSignal,\n createUniqueId,\n onCleanup as onCleanup2,\n splitProps as splitProps2\n} from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport createPresence from \"solid-presence\";\n\n// src/tooltip/utils.ts\nfunction getTooltipSafeArea(placement, anchorEl, floatingEl) {\n const basePlacement = placement.split(\"-\")[0];\n const anchorRect = anchorEl.getBoundingClientRect();\n const floatingRect = floatingEl.getBoundingClientRect();\n const polygon = [];\n const anchorCenterX = anchorRect.left + anchorRect.width / 2;\n const anchorCenterY = anchorRect.top + anchorRect.height / 2;\n switch (basePlacement) {\n case \"top\":\n polygon.push([anchorRect.left, anchorCenterY]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([anchorRect.right, anchorCenterY]);\n break;\n case \"right\":\n polygon.push([anchorCenterX, anchorRect.top]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([anchorCenterX, anchorRect.bottom]);\n break;\n case \"bottom\":\n polygon.push([anchorRect.left, anchorCenterY]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([anchorRect.right, anchorCenterY]);\n break;\n case \"left\":\n polygon.push([anchorCenterX, anchorRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([anchorCenterX, anchorRect.bottom]);\n break;\n }\n return polygon;\n}\n\n// src/tooltip/tooltip-root.tsx\nvar tooltips = {};\nvar tooltipsCounter = 0;\nvar globalWarmedUp = false;\nvar globalWarmUpTimeout;\nvar globalCoolDownTimeout;\nvar globalSkipDelayTimeout;\nfunction TooltipRoot(props) {\n const defaultId = `tooltip-${createUniqueId()}`;\n const tooltipId = `${++tooltipsCounter}`;\n const mergedProps = mergeDefaultProps2(\n {\n id: defaultId,\n openDelay: 700,\n closeDelay: 300,\n skipDelayDuration: 300\n },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\n \"id\",\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"disabled\",\n \"triggerOnFocusOnly\",\n \"openDelay\",\n \"closeDelay\",\n \"skipDelayDuration\",\n \"ignoreSafeArea\",\n \"forceMount\"\n ]);\n let closeTimeoutId;\n const [contentId, setContentId] = createSignal();\n const [triggerRef, setTriggerRef] = createSignal();\n const [contentRef, setContentRef] = createSignal();\n const [currentPlacement, setCurrentPlacement] = createSignal(\n others.placement\n );\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const { present: contentPresent } = createPresence({\n show: () => local.forceMount || disclosureState.isOpen(),\n element: () => contentRef() ?? null\n });\n const ensureTooltipEntry = () => {\n tooltips[tooltipId] = hideTooltip;\n };\n const closeOpenTooltips = () => {\n for (const hideTooltipId in tooltips) {\n if (hideTooltipId !== tooltipId) {\n tooltips[hideTooltipId](true);\n delete tooltips[hideTooltipId];\n }\n }\n };\n const hideTooltip = (immediate = false) => {\n if (isServer) {\n return;\n }\n if (immediate || local.closeDelay && local.closeDelay <= 0) {\n window.clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n disclosureState.close();\n } else if (!closeTimeoutId) {\n closeTimeoutId = window.setTimeout(() => {\n closeTimeoutId = void 0;\n disclosureState.close();\n }, local.closeDelay);\n }\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n if (local.skipDelayDuration && local.skipDelayDuration >= 0) {\n globalSkipDelayTimeout = window.setTimeout(() => {\n window.clearTimeout(globalSkipDelayTimeout);\n globalSkipDelayTimeout = void 0;\n }, local.skipDelayDuration);\n }\n if (globalWarmedUp) {\n window.clearTimeout(globalCoolDownTimeout);\n globalCoolDownTimeout = window.setTimeout(() => {\n delete tooltips[tooltipId];\n globalCoolDownTimeout = void 0;\n globalWarmedUp = false;\n }, local.closeDelay);\n }\n };\n const showTooltip = () => {\n if (isServer) {\n return;\n }\n clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n closeOpenTooltips();\n ensureTooltipEntry();\n globalWarmedUp = true;\n disclosureState.open();\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n window.clearTimeout(globalCoolDownTimeout);\n globalCoolDownTimeout = void 0;\n window.clearTimeout(globalSkipDelayTimeout);\n globalSkipDelayTimeout = void 0;\n };\n const warmupTooltip = () => {\n if (isServer) {\n return;\n }\n closeOpenTooltips();\n ensureTooltipEntry();\n if (!disclosureState.isOpen() && !globalWarmUpTimeout && !globalWarmedUp) {\n globalWarmUpTimeout = window.setTimeout(() => {\n globalWarmUpTimeout = void 0;\n globalWarmedUp = true;\n showTooltip();\n }, local.openDelay);\n } else if (!disclosureState.isOpen()) {\n showTooltip();\n }\n };\n const openTooltip = (immediate = false) => {\n if (isServer) {\n return;\n }\n if (!immediate && local.openDelay && local.openDelay > 0 && !closeTimeoutId && !globalSkipDelayTimeout) {\n warmupTooltip();\n } else {\n showTooltip();\n }\n };\n const cancelOpening = () => {\n if (isServer) {\n return;\n }\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n globalWarmedUp = false;\n };\n const cancelClosing = () => {\n if (isServer) {\n return;\n }\n window.clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n };\n const isTargetOnTooltip = (target) => {\n return contains(triggerRef(), target) || contains(contentRef(), target);\n };\n const getPolygonSafeArea = (placement) => {\n const triggerEl = triggerRef();\n const contentEl = contentRef();\n if (!triggerEl || !contentEl) {\n return;\n }\n return getTooltipSafeArea(placement, triggerEl, contentEl);\n };\n const onHoverOutside = (event) => {\n const target = event.target;\n if (isTargetOnTooltip(target)) {\n cancelClosing();\n return;\n }\n if (!local.ignoreSafeArea) {\n const polygon = getPolygonSafeArea(currentPlacement());\n if (polygon && isPointInPolygon(getEventPoint(event), polygon)) {\n cancelClosing();\n return;\n }\n }\n if (closeTimeoutId) {\n return;\n }\n hideTooltip();\n };\n createEffect2(() => {\n if (isServer) {\n return;\n }\n if (!disclosureState.isOpen()) {\n return;\n }\n const doc = getDocument();\n doc.addEventListener(\"pointermove\", onHoverOutside, true);\n onCleanup2(() => {\n doc.removeEventListener(\"pointermove\", onHoverOutside, true);\n });\n });\n createEffect2(() => {\n const trigger = triggerRef();\n if (!trigger || !disclosureState.isOpen()) {\n return;\n }\n const handleScroll = (event) => {\n const target = event.target;\n if (contains(target, trigger)) {\n hideTooltip(true);\n }\n };\n const win = getWindow();\n win.addEventListener(\"scroll\", handleScroll, { capture: true });\n onCleanup2(() => {\n win.removeEventListener(\"scroll\", handleScroll, { capture: true });\n });\n });\n onCleanup2(() => {\n clearTimeout(closeTimeoutId);\n const tooltip = tooltips[tooltipId];\n if (tooltip) {\n delete tooltips[tooltipId];\n }\n });\n const dataset = createMemo(() => ({\n \"data-expanded\": disclosureState.isOpen() ? \"\" : void 0,\n \"data-closed\": !disclosureState.isOpen() ? \"\" : void 0\n }));\n const context = {\n dataset,\n isOpen: disclosureState.isOpen,\n isDisabled: () => local.disabled ?? false,\n triggerOnFocusOnly: () => local.triggerOnFocusOnly ?? false,\n contentId,\n contentPresent,\n openTooltip,\n hideTooltip,\n cancelOpening,\n generateId: createGenerateId(() => mergedProps.id),\n registerContentId: createRegisterId(setContentId),\n isTargetOnTooltip,\n setTriggerRef,\n setContentRef\n };\n return <TooltipContext.Provider value={context}><Popper\n anchorRef={triggerRef}\n contentRef={contentRef}\n onCurrentPlacementChange={setCurrentPlacement}\n {...others}\n /></TooltipContext.Provider>;\n}\n\n// src/tooltip/tooltip-trigger.tsx\nimport { callHandler, getDocument as getDocument2, mergeRefs as mergeRefs2 } from \"@kobalte/utils\";\nimport { onCleanup as onCleanup3, splitProps as splitProps3 } from \"solid-js\";\nimport { isServer as isServer2 } from \"solid-js/web\";\nfunction TooltipTrigger(props) {\n let ref;\n const context = useTooltipContext();\n const [local, others] = splitProps3(props, [\n \"ref\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerDown\",\n \"onClick\",\n \"onFocus\",\n \"onBlur\"\n ]);\n let isPointerDown = false;\n let isHovered = false;\n let isFocused = false;\n const handlePointerUp = () => {\n isPointerDown = false;\n };\n const handleShow = () => {\n if (!context.isOpen() && (isHovered || isFocused)) {\n context.openTooltip(isFocused);\n }\n };\n const handleHide = (immediate) => {\n if (context.isOpen() && !isHovered && !isFocused) {\n context.hideTooltip(immediate);\n }\n };\n const onPointerEnter = (e) => {\n callHandler(e, local.onPointerEnter);\n if (e.pointerType === \"touch\" || context.triggerOnFocusOnly() || context.isDisabled() || e.defaultPrevented) {\n return;\n }\n isHovered = true;\n handleShow();\n };\n const onPointerLeave = (e) => {\n callHandler(e, local.onPointerLeave);\n if (e.pointerType === \"touch\") {\n return;\n }\n isHovered = false;\n isFocused = false;\n if (context.isOpen()) {\n handleHide();\n } else {\n context.cancelOpening();\n }\n };\n const onPointerDown = (e) => {\n callHandler(e, local.onPointerDown);\n isPointerDown = true;\n getDocument2(ref).addEventListener(\"pointerup\", handlePointerUp, {\n once: true\n });\n };\n const onClick = (e) => {\n callHandler(e, local.onClick);\n isHovered = false;\n isFocused = false;\n handleHide(true);\n };\n const onFocus = (e) => {\n callHandler(e, local.onFocus);\n if (context.isDisabled() || e.defaultPrevented || isPointerDown) {\n return;\n }\n isFocused = true;\n handleShow();\n };\n const onBlur = (e) => {\n callHandler(e, local.onBlur);\n const relatedTarget = e.relatedTarget;\n if (context.isTargetOnTooltip(relatedTarget)) {\n return;\n }\n isHovered = false;\n isFocused = false;\n handleHide(true);\n };\n onCleanup3(() => {\n if (isServer2) {\n return;\n }\n getDocument2(ref).removeEventListener(\"pointerup\", handlePointerUp);\n });\n return <Polymorphic\n as=\"button\"\n ref={mergeRefs2((el) => {\n context.setTriggerRef(el);\n ref = el;\n }, local.ref)}\n aria-describedby={context.isOpen() ? context.contentId() : void 0}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n onPointerDown={onPointerDown}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n {...context.dataset()}\n {...others}\n />;\n}\n\n// src/tooltip/index.tsx\nvar Tooltip = Object.assign(TooltipRoot, {\n Arrow: PopperArrow,\n Content: TooltipContent,\n Portal: TooltipPortal,\n Trigger: TooltipTrigger\n});\n\nexport {\n useTooltipContext,\n TooltipContent,\n TooltipPortal,\n TooltipRoot,\n TooltipTrigger,\n Tooltip,\n tooltip_exports\n};\n","import {\n createDisclosureState\n} from \"./E53DB7BS.jsx\";\nimport {\n ButtonRoot\n} from \"./UKTBL2JL.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/collapsible/index.tsx\nvar collapsible_exports = {};\n__export(collapsible_exports, {\n Collapsible: () => Collapsible,\n Content: () => CollapsibleContent,\n Root: () => CollapsibleRoot,\n Trigger: () => CollapsibleTrigger,\n useCollapsibleContext: () => useCollapsibleContext\n});\n\n// src/collapsible/collapsible-content.tsx\nimport { mergeDefaultProps, mergeRefs } from \"@kobalte/utils\";\nimport {\n Show,\n createEffect,\n createSignal,\n on,\n onCleanup,\n onMount,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\nimport createPresence from \"solid-presence\";\n\n// src/collapsible/collapsible-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar CollapsibleContext = createContext();\nfunction useCollapsibleContext() {\n const context = useContext(CollapsibleContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useCollapsibleContext` must be used within a `Collapsible.Root` component\"\n );\n }\n return context;\n}\n\n// src/collapsible/collapsible-content.tsx\nfunction CollapsibleContent(props) {\n const [ref, setRef] = createSignal();\n const context = useCollapsibleContext();\n const mergedProps = mergeDefaultProps(\n { id: context.generateId(\"content\") },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"ref\", \"id\", \"style\"]);\n const { present } = createPresence({\n show: context.shouldMount,\n element: () => ref() ?? null\n });\n const [height, setHeight] = createSignal(0);\n const [width, setWidth] = createSignal(0);\n const isOpen = () => context.isOpen() || present();\n let isMountAnimationPrevented = isOpen();\n onMount(() => {\n const raf = requestAnimationFrame(() => {\n isMountAnimationPrevented = false;\n });\n onCleanup(() => {\n cancelAnimationFrame(raf);\n });\n });\n createEffect(\n on(\n /**\n * depends on `present` because it will be `false` on\n * animation end (so when close finishes). This allows us to\n * retrieve the dimensions *before* closing.\n */\n present,\n () => {\n if (!ref()) {\n return;\n }\n ref().style.transitionDuration = \"0s\";\n ref().style.animationName = \"none\";\n const rect = ref().getBoundingClientRect();\n setHeight(rect.height);\n setWidth(rect.width);\n if (!isMountAnimationPrevented) {\n ref().style.transitionDuration = \"\";\n ref().style.animationName = \"\";\n }\n }\n )\n );\n createEffect(\n on(\n context.isOpen,\n (open) => {\n if (!open && ref()) {\n ref().style.transitionDuration = \"\";\n ref().style.animationName = \"\";\n }\n },\n { defer: true }\n )\n );\n createEffect(() => onCleanup(context.registerContentId(local.id)));\n return <Show when={present()}><Polymorphic\n as=\"div\"\n ref={mergeRefs(setRef, local.ref)}\n id={local.id}\n style={combineStyle(\n {\n \"--kb-collapsible-content-height\": height() ? `${height()}px` : void 0,\n \"--kb-collapsible-content-width\": width() ? `${width()}px` : void 0\n },\n local.style\n )}\n {...context.dataset()}\n {...others}\n /></Show>;\n}\n\n// src/collapsible/collapsible-root.tsx\nimport {\n createGenerateId,\n mergeDefaultProps as mergeDefaultProps2\n} from \"@kobalte/utils\";\nimport {\n createMemo,\n createSignal as createSignal2,\n createUniqueId,\n splitProps as splitProps2\n} from \"solid-js\";\nfunction CollapsibleRoot(props) {\n const defaultId = `collapsible-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps2(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"disabled\",\n \"forceMount\"\n ]);\n const [contentId, setContentId] = createSignal2();\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const dataset = createMemo(() => ({\n \"data-expanded\": disclosureState.isOpen() ? \"\" : void 0,\n \"data-closed\": !disclosureState.isOpen() ? \"\" : void 0,\n \"data-disabled\": local.disabled ? \"\" : void 0\n }));\n const context = {\n dataset,\n isOpen: disclosureState.isOpen,\n disabled: () => local.disabled ?? false,\n shouldMount: () => local.forceMount || disclosureState.isOpen(),\n contentId,\n toggle: disclosureState.toggle,\n generateId: createGenerateId(() => others.id),\n registerContentId: createRegisterId(setContentId)\n };\n return <CollapsibleContext.Provider value={context}><Polymorphic\n as=\"div\"\n {...dataset()}\n {...others}\n /></CollapsibleContext.Provider>;\n}\n\n// src/collapsible/collapsible-trigger.tsx\nimport { callHandler } from \"@kobalte/utils\";\nimport {\n splitProps as splitProps3\n} from \"solid-js\";\nfunction CollapsibleTrigger(props) {\n const context = useCollapsibleContext();\n const [local, others] = splitProps3(props, [\"onClick\"]);\n const onClick = (e) => {\n callHandler(e, local.onClick);\n context.toggle();\n };\n return <ButtonRoot\n aria-expanded={context.isOpen()}\n aria-controls={context.isOpen() ? context.contentId() : void 0}\n disabled={context.disabled()}\n onClick={onClick}\n {...context.dataset()}\n {...others}\n />;\n}\n\n// src/collapsible/index.tsx\nvar Collapsible = Object.assign(CollapsibleRoot, {\n Content: CollapsibleContent,\n Trigger: CollapsibleTrigger\n});\n\nexport {\n useCollapsibleContext,\n CollapsibleContent,\n CollapsibleRoot,\n CollapsibleTrigger,\n Collapsible,\n collapsible_exports\n};\n","import {\n createSelectableList\n} from \"./N3GAC5SS.jsx\";\nimport {\n createListState,\n createSelectableItem\n} from \"./QZDH5R5B.jsx\";\nimport {\n CollapsibleContent,\n CollapsibleRoot,\n CollapsibleTrigger,\n useCollapsibleContext\n} from \"./UGE6PPGT.jsx\";\nimport {\n createDomCollection,\n createDomCollectionItem\n} from \"./SOM3K36D.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/accordion/index.tsx\nvar accordion_exports = {};\n__export(accordion_exports, {\n Accordion: () => Accordion,\n Content: () => AccordionContent,\n Header: () => AccordionHeader,\n Item: () => AccordionItem,\n Root: () => AccordionRoot,\n Trigger: () => AccordionTrigger,\n useAccordionContext: () => useAccordionContext\n});\n\n// src/accordion/accordion-content.tsx\nimport { mergeDefaultProps } from \"@kobalte/utils\";\nimport {\n createEffect,\n onCleanup,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\n\n// src/accordion/accordion-item-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar AccordionItemContext = createContext();\nfunction useAccordionItemContext() {\n const context = useContext(AccordionItemContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useAccordionItemContext` must be used within a `Accordion.Item` component\"\n );\n }\n return context;\n}\n\n// src/accordion/accordion-content.tsx\nfunction AccordionContent(props) {\n const itemContext = useAccordionItemContext();\n const defaultId = itemContext.generateId(\"content\");\n const mergedProps = mergeDefaultProps(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"id\", \"style\"]);\n createEffect(() => onCleanup(itemContext.registerContentId(local.id)));\n return <CollapsibleContent\n role=\"region\"\n aria-labelledby={itemContext.triggerId()}\n style={combineStyle(\n {\n \"--kb-accordion-content-height\": \"var(--kb-collapsible-content-height)\",\n \"--kb-accordion-content-width\": \"var(--kb-collapsible-content-width)\"\n },\n local.style\n )}\n {...others}\n />;\n}\n\n// src/accordion/accordion-header.tsx\nfunction AccordionHeader(props) {\n const context = useCollapsibleContext();\n return <Polymorphic\n as=\"h3\"\n {...context.dataset()}\n {...props}\n />;\n}\n\n// src/accordion/accordion-item.tsx\nimport { createGenerateId, mergeDefaultProps as mergeDefaultProps2 } from \"@kobalte/utils\";\nimport {\n createSignal,\n createUniqueId,\n splitProps as splitProps2\n} from \"solid-js\";\n\n// src/accordion/accordion-context.tsx\nimport { createContext as createContext2, useContext as useContext2 } from \"solid-js\";\nvar AccordionContext = createContext2();\nfunction useAccordionContext() {\n const context = useContext2(AccordionContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useAccordionContext` must be used within a `Accordion.Root` component\"\n );\n }\n return context;\n}\n\n// src/accordion/accordion-item.tsx\nfunction AccordionItem(props) {\n const accordionContext = useAccordionContext();\n const defaultId = `${accordionContext.generateId(\n \"item\"\n )}-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps2(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\"value\", \"disabled\"]);\n const [triggerId, setTriggerId] = createSignal();\n const [contentId, setContentId] = createSignal();\n const selectionManager = () => accordionContext.listState().selectionManager();\n const isExpanded = () => {\n return selectionManager().isSelected(local.value);\n };\n const context = {\n value: () => local.value,\n triggerId,\n contentId,\n generateId: createGenerateId(() => others.id),\n registerTriggerId: createRegisterId(setTriggerId),\n registerContentId: createRegisterId(setContentId)\n };\n return <AccordionItemContext.Provider value={context}><CollapsibleRoot\n open={isExpanded()}\n disabled={local.disabled}\n {...others}\n /></AccordionItemContext.Provider>;\n}\n\n// src/accordion/accordion-root.tsx\nimport {\n composeEventHandlers,\n createGenerateId as createGenerateId2,\n mergeDefaultProps as mergeDefaultProps3,\n mergeRefs\n} from \"@kobalte/utils\";\nimport {\n createSignal as createSignal2,\n createUniqueId as createUniqueId2,\n splitProps as splitProps3\n} from \"solid-js\";\nfunction AccordionRoot(props) {\n let ref;\n const defaultId = `accordion-${createUniqueId2()}`;\n const mergedProps = mergeDefaultProps3(\n {\n id: defaultId,\n multiple: false,\n collapsible: false,\n shouldFocusWrap: true\n },\n props\n );\n const [local, others] = splitProps3(mergedProps, [\n \"id\",\n \"ref\",\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"multiple\",\n \"collapsible\",\n \"shouldFocusWrap\",\n \"onKeyDown\",\n \"onMouseDown\",\n \"onFocusIn\",\n // TODO: remove next breaking\n \"onFocusOut\"\n ]);\n const [items, setItems] = createSignal2([]);\n const { DomCollectionProvider } = createDomCollection({\n items,\n onItemsChange: setItems\n });\n const listState = createListState({\n selectedKeys: () => local.value,\n defaultSelectedKeys: () => local.defaultValue,\n onSelectionChange: (value) => local.onChange?.(Array.from(value)),\n disallowEmptySelection: () => !local.multiple && !local.collapsible,\n selectionMode: () => local.multiple ? \"multiple\" : \"single\",\n dataSource: items\n });\n listState.selectionManager().setFocusedKey(\"item-1\");\n const selectableList = createSelectableList(\n {\n selectionManager: () => listState.selectionManager(),\n collection: () => listState.collection(),\n disallowEmptySelection: () => listState.selectionManager().disallowEmptySelection(),\n shouldFocusWrap: () => local.shouldFocusWrap,\n disallowTypeAhead: true,\n allowsTabNavigation: true\n },\n () => ref\n );\n const context = {\n listState: () => listState,\n generateId: createGenerateId2(() => local.id)\n };\n return <DomCollectionProvider><AccordionContext.Provider value={context}><Polymorphic\n as=\"div\"\n id={local.id}\n ref={mergeRefs((el) => ref = el, local.ref)}\n onKeyDown={composeEventHandlers([\n local.onKeyDown,\n selectableList.onKeyDown\n ])}\n onMouseDown={composeEventHandlers([\n local.onMouseDown,\n selectableList.onMouseDown\n ])}\n onFocusIn={composeEventHandlers([\n local.onFocusIn\n // TODO: remove next breaking\n ])}\n onFocusOut={composeEventHandlers([\n local.onFocusOut,\n selectableList.onFocusOut\n ])}\n {...others}\n /></AccordionContext.Provider></DomCollectionProvider>;\n}\n\n// src/accordion/accordion-trigger.tsx\nimport {\n callHandler,\n composeEventHandlers as composeEventHandlers2,\n mergeDefaultProps as mergeDefaultProps4,\n mergeRefs as mergeRefs2\n} from \"@kobalte/utils\";\nimport {\n createEffect as createEffect2,\n onCleanup as onCleanup2,\n splitProps as splitProps4\n} from \"solid-js\";\nfunction AccordionTrigger(props) {\n let ref;\n const accordionContext = useAccordionContext();\n const itemContext = useAccordionItemContext();\n const collapsibleContext = useCollapsibleContext();\n const defaultId = itemContext.generateId(\"trigger\");\n const mergedProps = mergeDefaultProps4(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps4(mergedProps, [\n \"ref\",\n \"onPointerDown\",\n \"onPointerUp\",\n \"onClick\",\n \"onKeyDown\",\n \"onMouseDown\",\n \"onFocus\"\n ]);\n createDomCollectionItem({\n getItem: () => ({\n ref: () => ref,\n type: \"item\",\n key: itemContext.value(),\n textValue: \"\",\n // not applicable here\n disabled: collapsibleContext.disabled()\n })\n });\n const selectableItem = createSelectableItem(\n {\n key: () => itemContext.value(),\n selectionManager: () => accordionContext.listState().selectionManager(),\n disabled: () => collapsibleContext.disabled(),\n shouldSelectOnPressUp: true\n },\n () => ref\n );\n const onKeyDown = (e) => {\n if ([\"Enter\", \" \"].includes(e.key)) {\n e.preventDefault();\n }\n callHandler(e, local.onKeyDown);\n callHandler(e, selectableItem.onKeyDown);\n };\n createEffect2(() => onCleanup2(itemContext.registerTriggerId(others.id)));\n return <CollapsibleTrigger\n ref={mergeRefs2((el) => ref = el, local.ref)}\n data-key={selectableItem.dataKey()}\n onPointerDown={composeEventHandlers2([\n local.onPointerDown,\n selectableItem.onPointerDown\n ])}\n onPointerUp={composeEventHandlers2([\n local.onPointerUp,\n selectableItem.onPointerUp\n ])}\n onClick={composeEventHandlers2([local.onClick, selectableItem.onClick])}\n onKeyDown={onKeyDown}\n onMouseDown={composeEventHandlers2([\n local.onMouseDown,\n selectableItem.onMouseDown\n ])}\n onFocus={composeEventHandlers2([local.onFocus, selectableItem.onFocus])}\n {...others}\n />;\n}\n\n// src/accordion/index.tsx\nvar Accordion = Object.assign(AccordionRoot, {\n Content: AccordionContent,\n Header: AccordionHeader,\n Item: AccordionItem,\n Trigger: AccordionTrigger\n});\n\nexport {\n AccordionContent,\n AccordionHeader,\n useAccordionContext,\n AccordionItem,\n AccordionRoot,\n AccordionTrigger,\n Accordion,\n accordion_exports\n};\n","import { createMemo, Show, type Component } from \"solid-js\"\nimport { getChildSessions, getSessionInfo, getThreadTotals } from \"../../stores/sessions\"\nimport { formatTokenTotal } from \"../../lib/formatters\"\nimport { useI18n } from \"../../lib/i18n\"\nimport { useConfig } from \"../../stores/preferences\"\n\ninterface ContextUsagePanelProps {\n instanceId: string\n sessionId: string\n class?: string\n}\n\nconst chipClass = \"inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary\"\nconst chipLabelClass = \"uppercase text-[10px] tracking-wide text-muted\"\n\nconst ContextUsagePanel: Component<ContextUsagePanelProps> = (props) => {\n const { t } = useI18n()\n const { preferences } = useConfig()\n const showUsage = createMemo(() => preferences().showUsageMetrics ?? true)\n const info = createMemo(\n () =>\n getSessionInfo(props.instanceId, props.sessionId) ?? {\n cost: 0,\n contextWindow: 0,\n isSubscriptionModel: false,\n inputTokens: 0,\n outputTokens: 0,\n reasoningTokens: 0,\n actualUsageTokens: 0,\n modelOutputLimit: 0,\n contextAvailableTokens: null,\n },\n )\n\n const children = createMemo(() => getChildSessions(props.instanceId, props.sessionId))\n const hasChildren = createMemo(() => children().length > 0)\n\n const threadTotals = createMemo(() => {\n if (!hasChildren()) return { cost: 0, inputTokens: 0, outputTokens: 0, reasoningTokens: 0 }\n return getThreadTotals(props.instanceId, props.sessionId) ?? { cost: 0, inputTokens: 0, outputTokens: 0, reasoningTokens: 0 }\n })\n\n const totalCostDisplay = createMemo(() => `$${threadTotals().cost.toFixed(2)}`)\n\n const totalInputTokens = createMemo(() => threadTotals().inputTokens)\n const totalOutputTokens = createMemo(() => threadTotals().outputTokens)\n const totalReasoningTokens = createMemo(() => threadTotals().reasoningTokens)\n\n const inputTokens = createMemo(() => info().inputTokens ?? 0)\n const outputTokens = createMemo(() => info().outputTokens ?? 0)\n const costValue = createMemo(() => {\n const value = info().isSubscriptionModel ? 0 : info().cost\n return value > 0 ? value : 0\n })\n\n const costDisplay = createMemo(() => info().isSubscriptionModel ? t(\"contextUsagePanel.included\") : `$${costValue().toFixed(2)}`)\n\n return (\n <div class={`session-context-panel px-4 py-2 ${props.class ?? \"\"}`}>\n <div class=\"flex flex-wrap items-center gap-2 text-xs text-primary\">\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.input\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(inputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.output\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(outputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.cost\")}</span>\n <span class=\"font-semibold text-primary\">{costDisplay()}</span>\n </div>\n <Show when={hasChildren() && showUsage()}>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalInput\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalInputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalOutput\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalOutputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalCost\")}</span>\n <span class=\"font-semibold text-primary\">{totalCostDisplay()}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalReasoning\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalReasoningTokens())}</span>\n </div>\n </Show>\n </div>\n </div>\n )\n}\n\nexport default ContextUsagePanel\n","import { For, Show, createEffect, createMemo, createSignal, onCleanup, type Component } from \"solid-js\"\n\nimport type { ProviderUsageResponse, ProviderUsageWindow } from \"../../../../server/src/api-types\"\nimport { serverApi } from \"../../lib/api-client\"\nimport { useI18n } from \"../../lib/i18n\"\nimport { useConfig } from \"../../stores/preferences\"\n\ninterface ProviderUsagePanelProps {\n providerId: string\n modelId: string\n}\n\nconst REFRESH_INTERVAL_MS = 60_000\nconst usageCache = new Map<string, { value: ProviderUsageResponse | null; updatedAt: number }>()\n\nexport const shouldShowProviderUsageWindow = (label: string, showCreditBalance: boolean) =>\n label !== \"credits_balance\" || showCreditBalance\n\nconst ProviderUsagePanel: Component<ProviderUsagePanelProps> = (props) => {\n const { t } = useI18n()\n const { preferences } = useConfig()\n const source = createMemo(() => {\n const providerId = props.providerId.trim()\n if (!providerId) return null\n const modelId = props.modelId.trim()\n return { providerId, modelId, key: `${providerId}\\0${modelId}` }\n })\n const initialSource = source()\n const [usage, setUsage] = createSignal<ProviderUsageResponse | null | undefined>(\n initialSource ? usageCache.get(initialSource.key)?.value : undefined,\n )\n let requestId = 0\n\n const refreshUsage = async (providerId: string, modelId: string, key: string, clear: boolean) => {\n const currentRequestId = ++requestId\n if (clear) setUsage(undefined)\n try {\n const response = await serverApi.fetchProviderUsage(providerId, modelId)\n usageCache.set(key, { value: response, updatedAt: Date.now() })\n if (currentRequestId === requestId) setUsage(response)\n } catch {\n if (currentRequestId === requestId && usage() === undefined) {\n usageCache.set(key, { value: null, updatedAt: Date.now() })\n setUsage(null)\n }\n }\n }\n\n createEffect(() => {\n const current = source()\n if (!current) {\n requestId += 1\n setUsage(undefined)\n return\n }\n const cached = usageCache.get(current.key)\n setUsage(cached?.value)\n if (!cached || Date.now() - cached.updatedAt >= REFRESH_INTERVAL_MS) {\n void refreshUsage(current.providerId, current.modelId, current.key, cached === undefined)\n }\n })\n\n const refreshTimer = setInterval(() => {\n const current = source()\n if (current) void refreshUsage(current.providerId, current.modelId, current.key, false)\n }, REFRESH_INTERVAL_MS)\n onCleanup(() => {\n requestId += 1\n clearInterval(refreshTimer)\n })\n\n const entries = createMemo(() => Object.entries(usage()?.windows ?? {}))\n const displayedEntries = createMemo(() =>\n entries().filter(([label]) => shouldShowProviderUsageWindow(label, preferences().showProviderUsageCreditBalance)),\n )\n\n const windowLabel = (label: string) => {\n const key = ({\n \"5h\": \"fiveHours\",\n \"7d\": \"sevenDays\",\n \"7d-sonnet\": \"sevenDaysSonnet\",\n \"7d-opus\": \"sevenDaysOpus\",\n weekly: \"weekly\",\n daily: \"daily\",\n monthly: \"monthly\",\n credits: \"credits\",\n credits_balance: \"credits\",\n billing_cycle: \"billingCycle\",\n session: \"session\",\n premium: \"premium\",\n chat: \"chat\",\n completions: \"completions\",\n \"mcp-tools\": \"mcpTools\",\n } as Record<string, string>)[label]\n return key ? t(`providerUsage.windows.${key}`) : label\n }\n\n const displayValue = (window: ProviderUsageWindow) => {\n if (window.valueLabel) return window.valueLabel\n if (window.usedPercent === null) return t(\"providerUsage.unavailableValue\")\n return t(\"providerUsage.usedPercent\", { percent: Math.round(window.usedPercent) })\n }\n\n const resetLabel = (resetAt: number | null) => {\n if (!resetAt) return null\n const date = new Date(resetAt)\n if (!Number.isFinite(date.getTime())) return null\n return t(\"providerUsage.resets\", { time: date.toLocaleString([], { dateStyle: \"short\", timeStyle: \"short\" }) })\n }\n\n const barColor = (percent: number | null) => {\n if (percent !== null && percent >= 80) return \"var(--status-error)\"\n if (percent !== null && percent >= 50) return \"var(--status-warning)\"\n return \"var(--status-success)\"\n }\n\n return (\n <div>\n <Show when={usage() !== undefined} fallback={<div class=\"right-panel-empty-text\">{t(\"providerUsage.loading\")}</div>}>\n <Show when={usage()} fallback={<div class=\"right-panel-empty-text\">{t(\"providerUsage.unavailable\")}</div>}>\n {(data) => (\n <Show\n when={data().supported && data().configured && data().ok && entries().length > 0}\n fallback={\n <div class=\"right-panel-empty-text\">\n {t(\n !data().supported\n ? \"providerUsage.unsupported\"\n : !data().configured\n ? \"providerUsage.notConfigured\"\n : \"providerUsage.unavailable\",\n )}\n </div>\n }\n >\n <div class=\"space-y-2\">\n <For each={displayedEntries()}>\n {([label, window]) => (\n <div>\n <div class=\"mb-1 flex items-baseline justify-between gap-2 text-[11px] text-primary\">\n <span class=\"font-medium\">{windowLabel(label)}</span>\n <div class=\"flex min-w-0 items-baseline gap-1.5 text-right\">\n <span class=\"shrink-0 font-medium\">{displayValue(window)}</span>\n <Show when={resetLabel(window.resetAt)}>\n {(reset) => (\n <>\n <span class=\"text-tertiary\" aria-hidden=\"true\">·</span>\n <span class=\"truncate text-[10px] text-tertiary\">{reset()}</span>\n </>\n )}\n </Show>\n </div>\n </div>\n <Show when={window.usedPercent !== null}>\n <div class=\"h-2 overflow-hidden border border-base\" style={{ \"background-color\": \"var(--surface-base)\" }}>\n <div\n class=\"h-full transition-[width] duration-300\"\n style={{ width: `${Math.max(0, Math.min(100, window.usedPercent ?? 0))}%`, \"background-color\": barColor(window.usedPercent) }}\n role=\"progressbar\"\n aria-label={t(\"providerUsage.progressLabel\", { window: windowLabel(label) })}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={Math.round(window.usedPercent ?? 0)}\n />\n </div>\n </Show>\n </div>\n )}\n </For>\n </div>\n </Show>\n )}\n </Show>\n </Show>\n <Show when={usage()?.supported && usage()?.configured && usage()?.ok && entries().length > 0}>\n <div class=\"mt-2 truncate text-right text-sm font-semibold text-secondary\">{usage()?.providerName ?? props.providerId}</div>\n </Show>\n </div>\n )\n}\n\nexport default ProviderUsagePanel\n","import { createSignal, untrack } from \"solid-js\"\nimport type { OpenCodeClient, ShellInfo } from \"@opencode-ai/client\"\n\nconst MAX_SHELL_OUTPUT_DISPLAY_CHARS = 4 * 1024 * 1024\n\nexport function appendShellOutput(current: string, chunk: string): { output: string; truncated: boolean } {\n const output = current + chunk\n if (output.length <= MAX_SHELL_OUTPUT_DISPLAY_CHARS) return { output, truncated: false }\n\n let start = output.length - MAX_SHELL_OUTPUT_DISPLAY_CHARS\n if (output.charCodeAt(start) >= 0xdc00 && output.charCodeAt(start) <= 0xdfff) start += 1\n if (output[start] === \"\\u001b\" && output[start + 1] === \"\\\\\") start += 2\n else if (output[start] === \"\\\\\" && output[start - 1] === \"\\u001b\") start += 1\n const escape = output.lastIndexOf(\"\\u001b\", start)\n if (escape >= 0) {\n let end = -1\n let controlSequence = false\n if (output[escape + 1] === \"[\") {\n controlSequence = true\n for (let index = escape + 2; index < output.length; index += 1) {\n const code = output.charCodeAt(index)\n if (code === 0x18 || code === 0x1a) {\n end = index + 1\n break\n }\n if (code >= 0x40 && code <= 0x7e) {\n end = index + 1\n break\n }\n }\n } else if (output[escape + 1] === \"]\") {\n controlSequence = true\n const bell = output.indexOf(\"\\u0007\", escape + 2)\n const stringTerminator = output.indexOf(\"\\u001b\\\\\", escape + 2)\n const cancel = output.slice(escape + 2).search(/[\\u0018\\u001a]/)\n const terminators = [bell < 0 ? Infinity : bell + 1, stringTerminator < 0 ? Infinity : stringTerminator + 2, cancel < 0 ? Infinity : escape + 3 + cancel]\n end = Math.min(...terminators)\n if (!Number.isFinite(end)) end = -1\n } else if ([\"P\", \"X\", \"^\", \"_\"].includes(output[escape + 1] ?? \"\")) {\n controlSequence = true\n const stringTerminator = output.indexOf(\"\\u001b\\\\\", escape + 2)\n const cancel = output.slice(escape + 2).search(/[\\u0018\\u001a]/)\n end = Math.min(stringTerminator < 0 ? Infinity : stringTerminator + 2, cancel < 0 ? Infinity : escape + 3 + cancel)\n if (!Number.isFinite(end)) end = -1\n }\n if (controlSequence && end >= start) start = end\n else if (controlSequence && end < 0 && escape < start) start = output.length\n }\n return { output: output.slice(start), truncated: true }\n}\n\nexport interface ShellApi {\n list(directory: string): Promise<ShellInfo[]>\n remove(directory: string, shellId: string): Promise<void>\n output(directory: string, shellId: string, cursor?: number): Promise<{ output: string; cursor: number; size: number; truncated: boolean }>\n}\n\nexport interface ShellState {\n items: ShellInfo[]\n loading: boolean\n failed: boolean\n}\n\nexport interface ShellRefreshEvent {\n type: string\n location?: { directory?: string }\n data?: { info?: { cwd?: string } }\n}\n\nconst EMPTY_STATE: ShellState = { items: [], loading: false, failed: false }\nconst SHELL_EVENTS = new Set([\"shell.created\", \"shell.exited\", \"shell.deleted\", \"server.connected\"])\n\nexport function createShellApi(client: OpenCodeClient): ShellApi {\n const location = (directory: string) => ({ directory })\n return {\n list: async (directory) => (await client.shell.list({ location: location(directory) })).data,\n remove: (directory, shellId) => client.shell.remove({ id: shellId, location: location(directory) }),\n output: async (directory, shellId, cursor = 0) => (await client.shell.output({\n id: shellId,\n location: location(directory),\n cursor,\n limit: 1024 * 1024,\n })).data,\n }\n}\n\nexport function createShellStore(apiForInstance: (instanceId: string) => ShellApi) {\n const [states, setStates] = createSignal<Map<string, ShellState>>(new Map())\n const generations = new Map<string, number>()\n const key = (instanceId: string, directory: string) => `${instanceId}\\0${directory}`\n const setState = (stateKey: string, state: ShellState) => setStates((current) => new Map(current).set(stateKey, state))\n const readState = (stateKey: string): ShellState => untrack(() => states().get(stateKey) ?? EMPTY_STATE)\n\n const load = async (instanceId: string, directory: string): Promise<void> => {\n if (!instanceId || !directory) return\n const stateKey = key(instanceId, directory)\n const generation = (generations.get(stateKey) ?? 0) + 1\n generations.set(stateKey, generation)\n setState(stateKey, { ...readState(stateKey), loading: true, failed: false })\n try {\n const items = await apiForInstance(instanceId).list(directory)\n if (generations.get(stateKey) === generation) setState(stateKey, { items, loading: false, failed: false })\n } catch {\n if (generations.get(stateKey) === generation) setState(stateKey, { ...readState(stateKey), loading: false, failed: true })\n }\n }\n\n const refreshForEvent = async (instanceId: string, event: ShellRefreshEvent): Promise<void> => {\n if (!SHELL_EVENTS.has(event.type)) return\n const eventDirectory = event.location?.directory ?? event.data?.info?.cwd\n const tracked = Array.from(states().keys())\n .map((stateKey) => stateKey.split(\"\\0\") as [string, string])\n .filter(([trackedInstanceId]) => trackedInstanceId === instanceId)\n const matching = eventDirectory ? tracked.filter(([, directory]) => sameDirectory(directory, eventDirectory)) : tracked\n await Promise.all((matching.length ? matching : tracked).map(([, directory]) => load(instanceId, directory)))\n }\n\n const remove = async (instanceId: string, directory: string, shellId: string): Promise<boolean> => {\n try {\n await apiForInstance(instanceId).remove(directory, shellId)\n await load(instanceId, directory)\n return true\n } catch { return false }\n }\n\n const output = (instanceId: string, directory: string, shellId: string, cursor?: number) =>\n apiForInstance(instanceId).output(directory, shellId, cursor)\n const getState = (instanceId: string, directory: string): ShellState => states().get(key(instanceId, directory)) ?? EMPTY_STATE\n return { getState, load, refreshForEvent, remove, output }\n}\n\nfunction sameDirectory(left: string, right: string): boolean {\n const normalize = (value: string) => {\n const normalized = value.replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\")\n return /^[A-Za-z]:\\//.test(normalized) || normalized.startsWith(\"//\") ? normalized.toLowerCase() : normalized\n }\n return normalize(left) === normalize(right)\n}\n","import { serverEvents } from \"../lib/server-events\"\nimport { getRootClient } from \"./opencode-client\"\nimport { createShellApi, createShellStore, type ShellRefreshEvent } from \"./shell-store\"\n\nconst shellStore = createShellStore((instanceId) => createShellApi(getRootClient(instanceId)))\n\nserverEvents.on(\"instance.event\", (event) => {\n if (event.type !== \"instance.event\" || !event.event.type.startsWith(\"shell.\")) return\n void shellStore.refreshForEvent(event.instanceId, event.event as ShellRefreshEvent)\n})\n\nserverEvents.on(\"instance.eventStatus\", (event) => {\n if (event.type !== \"instance.eventStatus\" || event.status !== \"connected\") return\n void shellStore.refreshForEvent(event.instanceId, { type: \"server.connected\" })\n})\n\nexport { shellStore }\n","import { Dialog } from \"@kobalte/core/dialog\"\nimport { Show, createEffect, createSignal, onCleanup } from \"solid-js\"\nimport type { ShellInfo } from \"@opencode-ai/client\"\n\nimport { createAnsiStreamRenderer, hasAnsi } from \"../lib/ansi\"\nimport { useI18n } from \"../lib/i18n\"\nimport { appendShellOutput } from \"../stores/shell-store\"\nimport { shellStore } from \"../stores/shells\"\n\ninterface ShellOutputDialogProps {\n open: boolean\n instanceId: string\n directory: string\n shell: ShellInfo | null\n onClose: () => void\n}\n\nexport function ShellOutputDialog(props: ShellOutputDialogProps) {\n const { t } = useI18n()\n const [output, setOutput] = createSignal(\"\")\n const [outputHtml, setOutputHtml] = createSignal(\"\")\n const [ansiEnabled, setAnsiEnabled] = createSignal(false)\n const [truncated, setTruncated] = createSignal(false)\n const [loading, setLoading] = createSignal(false)\n\n createEffect(() => {\n const shell = props.shell\n const directory = props.directory\n if (!props.open || !shell || !directory) return\n\n let active = true\n let cursor = 0\n let raw = \"\"\n let timer: ReturnType<typeof setTimeout> | undefined\n const render = () => {\n const ansi = hasAnsi(raw)\n setAnsiEnabled(ansi)\n if (!ansi) return setOutputHtml(\"\")\n const renderer = createAnsiStreamRenderer()\n setOutputHtml(renderer.render(raw))\n }\n const poll = async () => {\n try {\n const result = await shellStore.output(props.instanceId, directory, shell.id, cursor)\n if (!active) return\n cursor = result.cursor\n if (result.output) {\n const next = appendShellOutput(raw, result.output)\n raw = next.output\n setOutput(raw)\n setTruncated((current) => current || result.truncated || next.truncated)\n render()\n } else if (result.truncated) {\n setTruncated(true)\n }\n } catch {\n if (!active) return\n setOutput(t(\"backgroundProcessOutputDialog.loadErrorFallback\"))\n } finally {\n if (!active) return\n setLoading(false)\n timer = setTimeout(poll, 1000)\n }\n }\n\n setOutput(\"\")\n setOutputHtml(\"\")\n setAnsiEnabled(false)\n setTruncated(false)\n setLoading(true)\n void poll()\n onCleanup(() => {\n active = false\n if (timer) clearTimeout(timer)\n })\n })\n\n return (\n <Dialog open={props.open} onOpenChange={(open) => !open && props.onClose()} modal>\n <Dialog.Portal>\n <Dialog.Overlay class=\"modal-overlay\" />\n <div class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <Dialog.Content class=\"modal-surface flex max-h-[90vh] w-full max-w-5xl flex-col overflow-hidden\">\n <div class=\"window-header\">\n <div class=\"min-w-0 flex-1\">\n <Dialog.Title class=\"window-title\">{t(\"backgroundProcessOutputDialog.title\")}</Dialog.Title>\n <span class=\"block truncate text-xs text-secondary\" title={props.shell?.command}>{props.shell?.command}</span>\n </div>\n <button type=\"button\" class=\"button-tertiary shrink-0\" onClick={props.onClose}>\n {t(\"backgroundProcessOutputDialog.actions.close\")}\n </button>\n </div>\n <div class=\"window-body\">\n <Show when={loading()}><p class=\"text-xs text-secondary\">{t(\"backgroundProcessOutputDialog.loading\")}</p></Show>\n <Show when={truncated()}><p class=\"mb-2 text-xs text-secondary\">{t(\"backgroundProcessOutputDialog.truncatedNotice\")}</p></Show>\n <Show when={!loading()}>\n <pre\n class=\"border border-base bg-surface-secondary p-4 font-mono text-xs text-primary whitespace-pre-wrap break-all\"\n innerHTML={ansiEnabled() ? outputHtml() : undefined}\n >{ansiEnabled() ? undefined : output()}</pre>\n </Show>\n </div>\n </Dialog.Content>\n </div>\n </Dialog.Portal>\n </Dialog>\n )\n}\n","import { For, Show, createEffect, createMemo, createSignal, on, type Accessor, type Component } from \"solid-js\"\nimport type { ShellInfo } from \"@opencode-ai/client\"\nimport type { ToolState } from \"../../../../../types/tool-state\"\nimport {\n DragDropProvider,\n DragDropSensors,\n SortableProvider,\n closestCenter,\n createSortable,\n type DragEvent as SolidDndDragEvent,\n} from \"@thisbeyond/solid-dnd\"\nimport { Accordion } from \"@kobalte/core\"\nimport { Tooltip } from \"@kobalte/core/tooltip\"\nimport Switch from \"@suid/material/Switch\"\n\nimport { ChevronRight, GripVertical, Info, TerminalSquare, Trash2, XOctagon } from \"lucide-solid\"\n\nimport type { Instance } from \"../../../../../types/instance\"\nimport type { Session } from \"../../../../../types/session\"\n\nimport ContextUsagePanel from \"../../../../session/context-usage-panel\"\nimport ProviderUsagePanel from \"../../../../session/provider-usage-panel\"\nimport { TodoListView } from \"../../../../tool-call/renderers/todo\"\nimport InstanceServiceStatus from \"../../../../instance-service-status\"\nimport { togglePermissionAutoAcceptForSession } from \"../../../../../stores/instances\"\nimport { isPermissionAutoAcceptEnabled } from \"../../../../../stores/permission-auto-accept\"\nimport { applyRightPanelItemCustomization, type RightPanelCustomization, type RightPanelSectionModule } from \"../registry\"\nimport { createCoreStatusSectionManifest } from \"../core-plugin\"\nimport { shellStore } from \"../../../../../stores/shells\"\nimport { showConfirmDialog } from \"../../../../../stores/alerts\"\nimport { showToastNotification } from \"../../../../../lib/notifications\"\nimport { ShellOutputDialog } from \"../../../../shell-output-dialog\"\n\ninterface StatusTabProps {\n t: (key: string, vars?: Record<string, any>) => string\n\n instanceId: string\n instance: Instance\n\n activeSessionId: Accessor<string | null>\n activeSession: Accessor<Session | null>\n\n latestTodoState: Accessor<ToolState | null>\n\n expandedItems: Accessor<string[]>\n onExpandedItemsChange: (values: string[]) => void\n customization: Accessor<RightPanelCustomization>\n onCustomizationChange: (updater: (current: RightPanelCustomization) => RightPanelCustomization) => void\n extraSections?: readonly RightPanelSectionModule[]\n}\n\ninterface SortableStatusSectionProps {\n section: RightPanelSectionModule\n expanded: boolean\n t: (key: string, vars?: Record<string, any>) => string\n}\n\nconst SortableStatusSection: Component<SortableStatusSectionProps> = (props) => {\n const sortable = createSortable(props.section.id)\n return (\n <div ref={sortable} class={`right-panel-section-draggable ${sortable.isActiveDraggable ? \"right-panel-section-draggable-active\" : \"\"}`}>\n <Accordion.Item value={props.section.id} class=\"right-panel-accordion-item\">\n <Accordion.Header class=\"right-panel-accordion-header-row\">\n <Accordion.Trigger class=\"right-panel-accordion-trigger\">\n <span class=\"section-left\">\n <ChevronRight class=\"right-panel-accordion-chevron disclosure-chevron\" />\n <span class=\"section-label\">{props.t(props.section.labelKey)}</span>\n </span>\n </Accordion.Trigger>\n <Tooltip openDelay={200} gutter={4} placement=\"top\">\n <Tooltip.Trigger as=\"button\" type=\"button\" class=\"section-info-trigger\" aria-label={props.t(props.section.tooltipKey)}>\n <Info class=\"section-info-icon\" />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content class=\"section-info-tooltip\">{props.t(props.section.tooltipKey)}</Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip>\n <GripVertical class=\"right-panel-section-grip\" aria-hidden=\"true\" />\n </Accordion.Header>\n <Accordion.Content class=\"right-panel-accordion-content\">{props.section.render()}</Accordion.Content>\n </Accordion.Item>\n </div>\n )\n}\n\nconst StatusTab: Component<StatusTabProps> = (props) => {\n const isSectionExpanded = (id: string) => props.expandedItems().includes(id)\n const shellDirectory = createMemo(() => props.activeSession()?.location.directory ?? props.instance.folder)\n const shellState = createMemo(() => shellStore.getState(props.instanceId, shellDirectory()))\n const [outputShell, setOutputShell] = createSignal<ShellInfo | null>(null)\n\n createEffect(on(\n () => [props.instanceId, shellDirectory()] as const,\n ([instanceId, directory]) => void shellStore.load(instanceId, directory),\n ))\n\n const renderYoloModeSection = () => {\n const session = props.activeSession()\n if (!session) {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.yoloMode.noSessionSelected\")}</span>\n </div>\n )\n }\n\n return (\n <div class=\"flex items-center justify-between gap-2 border border-base bg-surface-secondary px-3 py-2\">\n <p class=\"min-w-0 text-xs leading-5 text-secondary\">{props.t(\"instanceShell.yoloMode.description\")}</p>\n <div class=\"-mr-2 shrink-0\">\n <Switch\n checked={isPermissionAutoAcceptEnabled(props.instanceId, session.id)}\n size=\"small\"\n sx={{\n \"& .MuiSwitch-switchBase.Mui-checked\": { color: \"var(--session-yolo-accent)\" },\n \"& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track\": { backgroundColor: \"var(--session-yolo-accent)\" },\n }}\n inputProps={{ \"aria-label\": props.t(\"instanceShell.yoloMode.title\") }}\n onChange={() => togglePermissionAutoAcceptForSession(props.instanceId, session.id)}\n />\n </div>\n </div>\n )\n }\n\n const renderPlanSectionContent = () => {\n const sessionId = props.activeSessionId()\n if (!sessionId || sessionId === \"info\") {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.plan.noSessionSelected\")}</span>\n </div>\n )\n }\n const todoState = props.latestTodoState()\n if (!todoState) {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.plan.empty\")}</span>\n </div>\n )\n }\n return <TodoListView state={todoState} emptyLabel={props.t(\"instanceShell.plan.empty\")} showStatusLabel={false} />\n }\n\n const removeShell = async (shellId: string, command: string, running: boolean) => {\n const confirmed = await showConfirmDialog(\n props.t(\"instanceShell.backgroundProcesses.remove.message\", { title: command }),\n {\n title: props.t(\"instanceShell.backgroundProcesses.remove.title\"),\n confirmLabel: props.t(running\n ? \"instanceShell.backgroundProcesses.actions.stopRemove\"\n : \"instanceShell.backgroundProcesses.actions.remove\"),\n },\n )\n if (confirmed && !await shellStore.remove(props.instanceId, shellDirectory(), shellId)) {\n showToastNotification({ message: props.t(\"instanceShell.backgroundProcesses.error\"), variant: \"error\" })\n }\n }\n\n const renderBackgroundProcesses = () => (\n <Show\n when={!shellState().failed}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.error\")}</span></div>}\n >\n <Show\n when={!shellState().loading || shellState().items.length > 0}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.loading\")}</span></div>}\n >\n <Show\n when={shellState().items.length > 0}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.empty\")}</span></div>}\n >\n <div class=\"flex flex-col gap-1\">\n <For each={shellState().items}>\n {(shell) => {\n const running = () => shell.status === \"running\"\n return (\n <article class=\"status-process-card\">\n <div class=\"flex items-start justify-between gap-2\">\n <div class=\"min-w-0 flex-1\">\n <h4 class=\"truncate text-xs font-medium text-primary\" title={shell.command}>{shell.command}</h4>\n <code class=\"mt-1 block truncate text-xs text-secondary\" title={shell.shell}>{shell.shell}</code>\n </div>\n </div>\n <div class=\"mt-1 flex flex-wrap gap-x-2 gap-y-1 text-xs text-tertiary\">\n <span>{props.t(`instanceShell.backgroundProcesses.status.${shell.status}`)}</span>\n <Show when={shell.pid !== undefined}>\n <span>{props.t(\"instanceShell.backgroundProcesses.pid\", { pid: shell.pid })}</span>\n </Show>\n <Show when={shell.exit !== undefined}>\n <span>{props.t(\"instanceShell.backgroundProcesses.exitCode\", { code: shell.exit })}</span>\n </Show>\n </div>\n <div class=\"mt-1 truncate text-xs text-tertiary\" title={shell.cwd}>{shell.cwd}</div>\n <div class=\"status-process-actions\">\n <button\n type=\"button\"\n class=\"button-tertiary inline-flex w-full items-center justify-center gap-1 p-1\"\n onClick={() => setOutputShell(shell)}\n >\n <TerminalSquare class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n {props.t(\"instanceShell.backgroundProcesses.actions.output\")}\n </button>\n <button\n type=\"button\"\n class=\"button-tertiary inline-flex w-full items-center justify-center gap-1 p-1\"\n disabled={shellState().loading}\n onClick={() => void removeShell(shell.id, shell.command, running())}\n >\n <Show when={running()} fallback={<Trash2 class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />}>\n <XOctagon class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n </Show>\n {props.t(running()\n ? \"instanceShell.backgroundProcesses.actions.stopRemove\"\n : \"instanceShell.backgroundProcesses.actions.remove\")}\n </button>\n </div>\n </article>\n )\n }}\n </For>\n </div>\n </Show>\n </Show>\n </Show>\n )\n\n const renderProviderUsage = () => {\n const session = props.activeSession()\n if (!session) {\n return <div class=\"right-panel-empty-text\">{props.t(\"providerUsage.noSession\")}</div>\n }\n return (\n <div class=\"border border-base bg-surface-secondary px-3 py-2\">\n <ProviderUsagePanel providerId={session.model.providerId} modelId={session.model.modelId} />\n </div>\n )\n }\n\n const allStatusSections = createMemo<RightPanelSectionModule[]>(() => {\n const sections = createCoreStatusSectionManifest({\n renderYoloModeSection,\n renderProviderUsage,\n renderPlanSectionContent,\n renderBackgroundProcesses,\n renderMcpStatus: () => <InstanceServiceStatus initialInstance={props.instance} sections={[\"mcp\"]} showSectionHeadings={false} class=\"space-y-2\" />,\n renderPluginStatus: () => (\n <InstanceServiceStatus initialInstance={props.instance} sections={[\"plugins\"]} showSectionHeadings={false} class=\"space-y-2\" />\n ),\n }).statusSections ?? []\n\n return [...sections, ...(props.extraSections ?? [])]\n })\n const statusSections = createMemo<RightPanelSectionModule[]>(() =>\n applyRightPanelItemCustomization(\n allStatusSections(),\n props.customization().statusSectionOrder,\n props.customization().hiddenStatusSectionIds,\n ),\n )\n\n const moveSection = (sourceId: string, targetId: string) => {\n if (!sourceId || sourceId === targetId) return\n const ids = statusSections().map((section) => section.id)\n const sourceIndex = ids.indexOf(sourceId)\n const targetIndex = ids.indexOf(targetId)\n if (sourceIndex === -1 || targetIndex === -1) return\n const next = [...ids]\n const [moved] = next.splice(sourceIndex, 1)\n next.splice(targetIndex, 0, moved)\n props.onCustomizationChange((current) => ({ ...current, statusSectionOrder: next }))\n }\n\n const handleSectionDragEnd = ({ draggable, droppable }: SolidDndDragEvent) => {\n if (!droppable) return\n moveSection(String(draggable.id), String(droppable.id))\n }\n\n return (\n <div class=\"status-tab-container\">\n <Show when={props.activeSession()?.id}>\n <ContextUsagePanel instanceId={props.instanceId} sessionId={props.activeSession()!.id} class=\"status-tab-context-panel\" />\n </Show>\n\n <Accordion.Root\n class=\"right-panel-accordion\"\n collapsible\n multiple\n value={props.expandedItems()}\n onChange={props.onExpandedItemsChange}\n >\n <DragDropProvider collisionDetector={closestCenter} onDragEnd={handleSectionDragEnd}>\n <DragDropSensors>\n <SortableProvider ids={statusSections().map((section) => section.id)}>\n <For each={statusSections()}>\n {(section) => <SortableStatusSection section={section} expanded={isSectionExpanded(section.id)} t={props.t} />}\n </For>\n </SortableProvider>\n </DragDropSensors>\n </DragDropProvider>\n </Accordion.Root>\n <ShellOutputDialog\n open={Boolean(outputShell())}\n instanceId={props.instanceId}\n directory={shellDirectory()}\n shell={outputShell()}\n onClose={() => setOutputShell(null)}\n />\n </div>\n )\n}\n\nexport default StatusTab\n"],"names":["iconNode","cx","cy","r","key","GripVertical","props","_$createComponent","Icon","_$mergeProps","name","points","d","XOctagon","tooltip_exports","__export","Arrow","PopperArrow","Content","TooltipContent","Portal","TooltipPortal","Root","TooltipRoot","Tooltip","Trigger","TooltipTrigger","useTooltipContext","TooltipContext","createContext","context","useContext","Error","mergedProps","mergeDefaultProps","id","generateId","local","others","splitProps","createEffect","onCleanup","registerContentId","Show","when","contentPresent","children","Popper","Positioner","DismissableLayer","ref","r$","_ref$","mergeRefs","el","setContentRef","role","disableOutsidePointerEvents","style","combineStyle","position","onFocusOutside","e","preventDefault","onDismiss","hideTooltip","dataset","Show2","getTooltipSafeArea","placement","anchorEl","floatingEl","basePlacement","split","anchorRect","getBoundingClientRect","floatingRect","polygon","anchorCenterX","left","width","anchorCenterY","top","height","push","bottom","right","tooltips","tooltipsCounter","globalWarmedUp","globalWarmUpTimeout","globalCoolDownTimeout","globalSkipDelayTimeout","defaultId","createUniqueId","tooltipId","mergeDefaultProps2","openDelay","closeDelay","skipDelayDuration","splitProps2","closeTimeoutId","contentId","setContentId","createSignal","triggerRef","setTriggerRef","contentRef","currentPlacement","setCurrentPlacement","disclosureState","createDisclosureState","open","defaultOpen","onOpenChange","isOpen","present","createPresence","show","forceMount","element","ensureTooltipEntry","closeOpenTooltips","hideTooltipId","immediate","window","clearTimeout","close","setTimeout","showTooltip","warmupTooltip","openTooltip","cancelOpening","cancelClosing","isTargetOnTooltip","target","contains","getPolygonSafeArea","triggerEl","contentEl","onHoverOutside","event","ignoreSafeArea","isPointInPolygon","getEventPoint","createEffect2","doc","getDocument","addEventListener","onCleanup2","removeEventListener","trigger","handleScroll","win","getWindow","capture","createMemo","isDisabled","disabled","triggerOnFocusOnly","createGenerateId","createRegisterId","Provider","value","anchorRef","onCurrentPlacementChange","splitProps3","isPointerDown","isHovered","isFocused","handlePointerUp","handleShow","handleHide","onPointerEnter","callHandler","pointerType","defaultPrevented","onPointerLeave","onPointerDown","getDocument2","once","onClick","onFocus","onBlur","relatedTarget","onCleanup3","Polymorphic","as","_ref$2","mergeRefs2","_$memo","Object","assign","collapsible_exports","Collapsible","CollapsibleContent","CollapsibleRoot","CollapsibleTrigger","useCollapsibleContext","CollapsibleContext","setRef","shouldMount","setHeight","setWidth","isMountAnimationPrevented","onMount","raf","requestAnimationFrame","cancelAnimationFrame","on","transitionDuration","animationName","rect","defer","createSignal2","toggle","ButtonRoot","accordion_exports","Accordion","AccordionContent","Header","AccordionHeader","Item","AccordionItem","AccordionRoot","AccordionTrigger","useAccordionContext","AccordionItemContext","useAccordionItemContext","itemContext","triggerId","AccordionContext","createContext2","useContext2","accordionContext","setTriggerId","selectionManager","listState","isExpanded","isSelected","registerTriggerId","createUniqueId2","mergeDefaultProps3","multiple","collapsible","shouldFocusWrap","items","setItems","DomCollectionProvider","createDomCollection","onItemsChange","createListState","selectedKeys","defaultSelectedKeys","defaultValue","onSelectionChange","onChange","Array","from","disallowEmptySelection","selectionMode","dataSource","setFocusedKey","selectableList","createSelectableList","collection","disallowTypeAhead","allowsTabNavigation","createGenerateId2","onKeyDown","composeEventHandlers","onMouseDown","onFocusIn","onFocusOut","collapsibleContext","mergeDefaultProps4","splitProps4","createDomCollectionItem","getItem","type","textValue","selectableItem","createSelectableItem","shouldSelectOnPressUp","includes","dataKey","composeEventHandlers2","onPointerUp","ContextUsagePanel","t","useI18n","preferences","useConfig","showUsage","showUsageMetrics","info","getSessionInfo","instanceId","sessionId","cost","contextWindow","isSubscriptionModel","inputTokens","outputTokens","reasoningTokens","actualUsageTokens","modelOutputLimit","contextAvailableTokens","getChildSessions","hasChildren","length","threadTotals","getThreadTotals","totalCostDisplay","toFixed","totalInputTokens","totalOutputTokens","totalReasoningTokens","costValue","costDisplay","_el$","_tmpl$2","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$6","_el$7","_el$8","_el$9","_el$0","_el$1","_$insert","formatTokenTotal","_el$10","_tmpl$","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_$effect","_$className","class","REFRESH_INTERVAL_MS","usageCache","Map","shouldShowProviderUsageWindow","label","showCreditBalance","ProviderUsagePanel","source","providerId","trim","modelId","initialSource","usage","setUsage","get","undefined","requestId","refreshUsage","clear","currentRequestId","response","serverApi","fetchProviderUsage","set","updatedAt","Date","now","current","cached","refreshTimer","setInterval","clearInterval","entries","windows","displayedEntries","filter","showProviderUsageCreditBalance","windowLabel","weekly","daily","monthly","credits","credits_balance","billing_cycle","session","premium","chat","completions","displayValue","valueLabel","usedPercent","percent","Math","round","resetLabel","resetAt","date","Number","isFinite","getTime","time","toLocaleString","dateStyle","timeStyle","barColor","fallback","_tmpl$3","data","supported","configured","ok","_tmpl$4","For","each","_tmpl$6","reset","_tmpl$7","_tmpl$8","_tmpl$5","_p$","_v$","max","min","_v$2","_v$3","_v$4","_$setStyleProperty","a","_$setAttribute","o","providerName","MAX_SHELL_OUTPUT_DISPLAY_CHARS","appendShellOutput","chunk","output","start","escape","end","controlSequence","index","code","bell","stringTerminator","cancel","terminators","EMPTY_STATE","SHELL_EVENTS","createShellApi","client","location","directory","shellId","cursor","createShellStore","apiForInstance","states","setStates","generations","setState","stateKey","state","readState","untrack","load","generation","eventDirectory","_a","_c","_b","tracked","trackedInstanceId","matching","sameDirectory","normalize","normalized","shellStore","getRootClient","serverEvents","ShellOutputDialog","setOutput","outputHtml","setOutputHtml","ansiEnabled","setAnsiEnabled","truncated","setTruncated","loading","setLoading","shell","active","raw","timer","render","ansi","hasAnsi","renderer","createAnsiStreamRenderer","poll","result","next","Dialog","onClose","modal","Overlay","Title","command","_$addEventListener","_c$","innerHTML","_$delegateEvents","SortableStatusSection","sortable","createSortable","section","_$use","ChevronRight","labelKey","gutter","tooltipKey","Info","isActiveDraggable","StatusTab","isSectionExpanded","expandedItems","shellDirectory","activeSession","instance","folder","shellState","getState","outputShell","setOutputShell","renderYoloModeSection","Switch","checked","isPermissionAutoAcceptEnabled","size","sx","color","backgroundColor","inputProps","togglePermissionAutoAcceptForSession","renderPlanSectionContent","activeSessionId","todoState","latestTodoState","TodoListView","emptyLabel","showStatusLabel","removeShell","running","showConfirmDialog","title","confirmLabel","remove","showToastNotification","message","variant","renderBackgroundProcesses","failed","status","_el$22","_el$23","_el$24","_el$27","_el$28","_el$29","_el$30","pid","_el$25","exit","_el$26","cwd","$$click","TerminalSquare","Trash2","renderProviderUsage","_el$32","_tmpl$9","model","_el$31","allStatusSections","createCoreStatusSectionManifest","renderMcpStatus","InstanceServiceStatus","initialInstance","sections","showSectionHeadings","renderPluginStatus","statusSections","extraSections","applyRightPanelItemCustomization","customization","statusSectionOrder","hiddenStatusSectionIds","moveSection","sourceId","targetId","ids","map","sourceIndex","indexOf","targetIndex","moved","splice","onCustomizationChange","handleSectionDragEnd","draggable","droppable","String","_el$33","_tmpl$0","onExpandedItemsChange","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","SortableProvider","expanded","Boolean"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
1
|
+
{"version":3,"file":"StatusTab-DHvQ-0to.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/grip-vertical.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/x-octagon.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/2N4PRSLE.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/UGE6PPGT.jsx","../../../../../../node_modules/@kobalte/core/dist/chunk/PYUMFHDL.jsx","../../../components/session/context-usage-panel.tsx","../../../components/session/provider-usage-panel.tsx","../../../stores/shell-store.ts","../../../stores/shells.ts","../../../components/shell-output-dialog.tsx","../../../components/instance/shell/right-panel/tabs/StatusTab.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '9', cy: '12', r: '1', key: '1vctgf' }],\n ['circle', { cx: '9', cy: '5', r: '1', key: 'hp0tcf' }],\n ['circle', { cx: '9', cy: '19', r: '1', key: 'fkjjf6' }],\n ['circle', { cx: '15', cy: '12', r: '1', key: '1tmaij' }],\n ['circle', { cx: '15', cy: '5', r: '1', key: '19l28e' }],\n ['circle', { cx: '15', cy: '19', r: '1', key: 'f4zoj3' }],\n];\nconst GripVertical = (props) => (<Icon {...props} name=\"GripVertical\" iconNode={iconNode}/>);\nexport default GripVertical;\n","import Icon from '../Icon';\nconst iconNode = [\n [\n 'polygon',\n {\n points: '7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2',\n key: 'h1p8hx',\n },\n ],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n];\nconst XOctagon = (props) => <Icon {...props} name=\"XOctagon\" iconNode={iconNode}/>;\nexport default XOctagon;\n","import {\n Popper,\n PopperArrow\n} from \"./2CTBMVJ4.jsx\";\nimport {\n DismissableLayer\n} from \"./3VFJM5NZ.jsx\";\nimport {\n createDisclosureState\n} from \"./E53DB7BS.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/tooltip/index.tsx\nvar tooltip_exports = {};\n__export(tooltip_exports, {\n Arrow: () => PopperArrow,\n Content: () => TooltipContent,\n Portal: () => TooltipPortal,\n Root: () => TooltipRoot,\n Tooltip: () => Tooltip,\n Trigger: () => TooltipTrigger,\n useTooltipContext: () => useTooltipContext\n});\n\n// src/tooltip/tooltip-content.tsx\nimport { mergeDefaultProps, mergeRefs } from \"@kobalte/utils\";\nimport {\n Show,\n createEffect,\n onCleanup,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\n\n// src/tooltip/tooltip-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar TooltipContext = createContext();\nfunction useTooltipContext() {\n const context = useContext(TooltipContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useTooltipContext` must be used within a `Tooltip` component\"\n );\n }\n return context;\n}\n\n// src/tooltip/tooltip-content.tsx\nfunction TooltipContent(props) {\n const context = useTooltipContext();\n const mergedProps = mergeDefaultProps(\n {\n id: context.generateId(\"content\")\n },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"ref\", \"style\"]);\n createEffect(() => onCleanup(context.registerContentId(others.id)));\n return <Show when={context.contentPresent()}><Popper.Positioner><DismissableLayer\n ref={mergeRefs((el) => {\n context.setContentRef(el);\n }, local.ref)}\n role=\"tooltip\"\n disableOutsidePointerEvents={false}\n style={combineStyle(\n {\n \"--kb-tooltip-content-transform-origin\": \"var(--kb-popper-content-transform-origin)\",\n position: \"relative\"\n },\n local.style\n )}\n onFocusOutside={(e) => e.preventDefault()}\n onDismiss={() => context.hideTooltip(true)}\n {...context.dataset()}\n {...others}\n /></Popper.Positioner></Show>;\n}\n\n// src/tooltip/tooltip-portal.tsx\nimport { Show as Show2 } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nfunction TooltipPortal(props) {\n const context = useTooltipContext();\n return <Show2 when={context.contentPresent()}><Portal {...props} /></Show2>;\n}\n\n// src/tooltip/tooltip-root.tsx\nimport {\n contains,\n createGenerateId,\n getDocument,\n getEventPoint,\n getWindow,\n isPointInPolygon,\n mergeDefaultProps as mergeDefaultProps2\n} from \"@kobalte/utils\";\nimport {\n createEffect as createEffect2,\n createMemo,\n createSignal,\n createUniqueId,\n onCleanup as onCleanup2,\n splitProps as splitProps2\n} from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport createPresence from \"solid-presence\";\n\n// src/tooltip/utils.ts\nfunction getTooltipSafeArea(placement, anchorEl, floatingEl) {\n const basePlacement = placement.split(\"-\")[0];\n const anchorRect = anchorEl.getBoundingClientRect();\n const floatingRect = floatingEl.getBoundingClientRect();\n const polygon = [];\n const anchorCenterX = anchorRect.left + anchorRect.width / 2;\n const anchorCenterY = anchorRect.top + anchorRect.height / 2;\n switch (basePlacement) {\n case \"top\":\n polygon.push([anchorRect.left, anchorCenterY]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([anchorRect.right, anchorCenterY]);\n break;\n case \"right\":\n polygon.push([anchorCenterX, anchorRect.top]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([anchorCenterX, anchorRect.bottom]);\n break;\n case \"bottom\":\n polygon.push([anchorRect.left, anchorCenterY]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([anchorRect.right, anchorCenterY]);\n break;\n case \"left\":\n polygon.push([anchorCenterX, anchorRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([anchorCenterX, anchorRect.bottom]);\n break;\n }\n return polygon;\n}\n\n// src/tooltip/tooltip-root.tsx\nvar tooltips = {};\nvar tooltipsCounter = 0;\nvar globalWarmedUp = false;\nvar globalWarmUpTimeout;\nvar globalCoolDownTimeout;\nvar globalSkipDelayTimeout;\nfunction TooltipRoot(props) {\n const defaultId = `tooltip-${createUniqueId()}`;\n const tooltipId = `${++tooltipsCounter}`;\n const mergedProps = mergeDefaultProps2(\n {\n id: defaultId,\n openDelay: 700,\n closeDelay: 300,\n skipDelayDuration: 300\n },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\n \"id\",\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"disabled\",\n \"triggerOnFocusOnly\",\n \"openDelay\",\n \"closeDelay\",\n \"skipDelayDuration\",\n \"ignoreSafeArea\",\n \"forceMount\"\n ]);\n let closeTimeoutId;\n const [contentId, setContentId] = createSignal();\n const [triggerRef, setTriggerRef] = createSignal();\n const [contentRef, setContentRef] = createSignal();\n const [currentPlacement, setCurrentPlacement] = createSignal(\n others.placement\n );\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const { present: contentPresent } = createPresence({\n show: () => local.forceMount || disclosureState.isOpen(),\n element: () => contentRef() ?? null\n });\n const ensureTooltipEntry = () => {\n tooltips[tooltipId] = hideTooltip;\n };\n const closeOpenTooltips = () => {\n for (const hideTooltipId in tooltips) {\n if (hideTooltipId !== tooltipId) {\n tooltips[hideTooltipId](true);\n delete tooltips[hideTooltipId];\n }\n }\n };\n const hideTooltip = (immediate = false) => {\n if (isServer) {\n return;\n }\n if (immediate || local.closeDelay && local.closeDelay <= 0) {\n window.clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n disclosureState.close();\n } else if (!closeTimeoutId) {\n closeTimeoutId = window.setTimeout(() => {\n closeTimeoutId = void 0;\n disclosureState.close();\n }, local.closeDelay);\n }\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n if (local.skipDelayDuration && local.skipDelayDuration >= 0) {\n globalSkipDelayTimeout = window.setTimeout(() => {\n window.clearTimeout(globalSkipDelayTimeout);\n globalSkipDelayTimeout = void 0;\n }, local.skipDelayDuration);\n }\n if (globalWarmedUp) {\n window.clearTimeout(globalCoolDownTimeout);\n globalCoolDownTimeout = window.setTimeout(() => {\n delete tooltips[tooltipId];\n globalCoolDownTimeout = void 0;\n globalWarmedUp = false;\n }, local.closeDelay);\n }\n };\n const showTooltip = () => {\n if (isServer) {\n return;\n }\n clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n closeOpenTooltips();\n ensureTooltipEntry();\n globalWarmedUp = true;\n disclosureState.open();\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n window.clearTimeout(globalCoolDownTimeout);\n globalCoolDownTimeout = void 0;\n window.clearTimeout(globalSkipDelayTimeout);\n globalSkipDelayTimeout = void 0;\n };\n const warmupTooltip = () => {\n if (isServer) {\n return;\n }\n closeOpenTooltips();\n ensureTooltipEntry();\n if (!disclosureState.isOpen() && !globalWarmUpTimeout && !globalWarmedUp) {\n globalWarmUpTimeout = window.setTimeout(() => {\n globalWarmUpTimeout = void 0;\n globalWarmedUp = true;\n showTooltip();\n }, local.openDelay);\n } else if (!disclosureState.isOpen()) {\n showTooltip();\n }\n };\n const openTooltip = (immediate = false) => {\n if (isServer) {\n return;\n }\n if (!immediate && local.openDelay && local.openDelay > 0 && !closeTimeoutId && !globalSkipDelayTimeout) {\n warmupTooltip();\n } else {\n showTooltip();\n }\n };\n const cancelOpening = () => {\n if (isServer) {\n return;\n }\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n globalWarmedUp = false;\n };\n const cancelClosing = () => {\n if (isServer) {\n return;\n }\n window.clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n };\n const isTargetOnTooltip = (target) => {\n return contains(triggerRef(), target) || contains(contentRef(), target);\n };\n const getPolygonSafeArea = (placement) => {\n const triggerEl = triggerRef();\n const contentEl = contentRef();\n if (!triggerEl || !contentEl) {\n return;\n }\n return getTooltipSafeArea(placement, triggerEl, contentEl);\n };\n const onHoverOutside = (event) => {\n const target = event.target;\n if (isTargetOnTooltip(target)) {\n cancelClosing();\n return;\n }\n if (!local.ignoreSafeArea) {\n const polygon = getPolygonSafeArea(currentPlacement());\n if (polygon && isPointInPolygon(getEventPoint(event), polygon)) {\n cancelClosing();\n return;\n }\n }\n if (closeTimeoutId) {\n return;\n }\n hideTooltip();\n };\n createEffect2(() => {\n if (isServer) {\n return;\n }\n if (!disclosureState.isOpen()) {\n return;\n }\n const doc = getDocument();\n doc.addEventListener(\"pointermove\", onHoverOutside, true);\n onCleanup2(() => {\n doc.removeEventListener(\"pointermove\", onHoverOutside, true);\n });\n });\n createEffect2(() => {\n const trigger = triggerRef();\n if (!trigger || !disclosureState.isOpen()) {\n return;\n }\n const handleScroll = (event) => {\n const target = event.target;\n if (contains(target, trigger)) {\n hideTooltip(true);\n }\n };\n const win = getWindow();\n win.addEventListener(\"scroll\", handleScroll, { capture: true });\n onCleanup2(() => {\n win.removeEventListener(\"scroll\", handleScroll, { capture: true });\n });\n });\n onCleanup2(() => {\n clearTimeout(closeTimeoutId);\n const tooltip = tooltips[tooltipId];\n if (tooltip) {\n delete tooltips[tooltipId];\n }\n });\n const dataset = createMemo(() => ({\n \"data-expanded\": disclosureState.isOpen() ? \"\" : void 0,\n \"data-closed\": !disclosureState.isOpen() ? \"\" : void 0\n }));\n const context = {\n dataset,\n isOpen: disclosureState.isOpen,\n isDisabled: () => local.disabled ?? false,\n triggerOnFocusOnly: () => local.triggerOnFocusOnly ?? false,\n contentId,\n contentPresent,\n openTooltip,\n hideTooltip,\n cancelOpening,\n generateId: createGenerateId(() => mergedProps.id),\n registerContentId: createRegisterId(setContentId),\n isTargetOnTooltip,\n setTriggerRef,\n setContentRef\n };\n return <TooltipContext.Provider value={context}><Popper\n anchorRef={triggerRef}\n contentRef={contentRef}\n onCurrentPlacementChange={setCurrentPlacement}\n {...others}\n /></TooltipContext.Provider>;\n}\n\n// src/tooltip/tooltip-trigger.tsx\nimport { callHandler, getDocument as getDocument2, mergeRefs as mergeRefs2 } from \"@kobalte/utils\";\nimport { onCleanup as onCleanup3, splitProps as splitProps3 } from \"solid-js\";\nimport { isServer as isServer2 } from \"solid-js/web\";\nfunction TooltipTrigger(props) {\n let ref;\n const context = useTooltipContext();\n const [local, others] = splitProps3(props, [\n \"ref\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerDown\",\n \"onClick\",\n \"onFocus\",\n \"onBlur\"\n ]);\n let isPointerDown = false;\n let isHovered = false;\n let isFocused = false;\n const handlePointerUp = () => {\n isPointerDown = false;\n };\n const handleShow = () => {\n if (!context.isOpen() && (isHovered || isFocused)) {\n context.openTooltip(isFocused);\n }\n };\n const handleHide = (immediate) => {\n if (context.isOpen() && !isHovered && !isFocused) {\n context.hideTooltip(immediate);\n }\n };\n const onPointerEnter = (e) => {\n callHandler(e, local.onPointerEnter);\n if (e.pointerType === \"touch\" || context.triggerOnFocusOnly() || context.isDisabled() || e.defaultPrevented) {\n return;\n }\n isHovered = true;\n handleShow();\n };\n const onPointerLeave = (e) => {\n callHandler(e, local.onPointerLeave);\n if (e.pointerType === \"touch\") {\n return;\n }\n isHovered = false;\n isFocused = false;\n if (context.isOpen()) {\n handleHide();\n } else {\n context.cancelOpening();\n }\n };\n const onPointerDown = (e) => {\n callHandler(e, local.onPointerDown);\n isPointerDown = true;\n getDocument2(ref).addEventListener(\"pointerup\", handlePointerUp, {\n once: true\n });\n };\n const onClick = (e) => {\n callHandler(e, local.onClick);\n isHovered = false;\n isFocused = false;\n handleHide(true);\n };\n const onFocus = (e) => {\n callHandler(e, local.onFocus);\n if (context.isDisabled() || e.defaultPrevented || isPointerDown) {\n return;\n }\n isFocused = true;\n handleShow();\n };\n const onBlur = (e) => {\n callHandler(e, local.onBlur);\n const relatedTarget = e.relatedTarget;\n if (context.isTargetOnTooltip(relatedTarget)) {\n return;\n }\n isHovered = false;\n isFocused = false;\n handleHide(true);\n };\n onCleanup3(() => {\n if (isServer2) {\n return;\n }\n getDocument2(ref).removeEventListener(\"pointerup\", handlePointerUp);\n });\n return <Polymorphic\n as=\"button\"\n ref={mergeRefs2((el) => {\n context.setTriggerRef(el);\n ref = el;\n }, local.ref)}\n aria-describedby={context.isOpen() ? context.contentId() : void 0}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n onPointerDown={onPointerDown}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n {...context.dataset()}\n {...others}\n />;\n}\n\n// src/tooltip/index.tsx\nvar Tooltip = Object.assign(TooltipRoot, {\n Arrow: PopperArrow,\n Content: TooltipContent,\n Portal: TooltipPortal,\n Trigger: TooltipTrigger\n});\n\nexport {\n useTooltipContext,\n TooltipContent,\n TooltipPortal,\n TooltipRoot,\n TooltipTrigger,\n Tooltip,\n tooltip_exports\n};\n","import {\n createDisclosureState\n} from \"./E53DB7BS.jsx\";\nimport {\n ButtonRoot\n} from \"./UKTBL2JL.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/collapsible/index.tsx\nvar collapsible_exports = {};\n__export(collapsible_exports, {\n Collapsible: () => Collapsible,\n Content: () => CollapsibleContent,\n Root: () => CollapsibleRoot,\n Trigger: () => CollapsibleTrigger,\n useCollapsibleContext: () => useCollapsibleContext\n});\n\n// src/collapsible/collapsible-content.tsx\nimport { mergeDefaultProps, mergeRefs } from \"@kobalte/utils\";\nimport {\n Show,\n createEffect,\n createSignal,\n on,\n onCleanup,\n onMount,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\nimport createPresence from \"solid-presence\";\n\n// src/collapsible/collapsible-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar CollapsibleContext = createContext();\nfunction useCollapsibleContext() {\n const context = useContext(CollapsibleContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useCollapsibleContext` must be used within a `Collapsible.Root` component\"\n );\n }\n return context;\n}\n\n// src/collapsible/collapsible-content.tsx\nfunction CollapsibleContent(props) {\n const [ref, setRef] = createSignal();\n const context = useCollapsibleContext();\n const mergedProps = mergeDefaultProps(\n { id: context.generateId(\"content\") },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"ref\", \"id\", \"style\"]);\n const { present } = createPresence({\n show: context.shouldMount,\n element: () => ref() ?? null\n });\n const [height, setHeight] = createSignal(0);\n const [width, setWidth] = createSignal(0);\n const isOpen = () => context.isOpen() || present();\n let isMountAnimationPrevented = isOpen();\n onMount(() => {\n const raf = requestAnimationFrame(() => {\n isMountAnimationPrevented = false;\n });\n onCleanup(() => {\n cancelAnimationFrame(raf);\n });\n });\n createEffect(\n on(\n /**\n * depends on `present` because it will be `false` on\n * animation end (so when close finishes). This allows us to\n * retrieve the dimensions *before* closing.\n */\n present,\n () => {\n if (!ref()) {\n return;\n }\n ref().style.transitionDuration = \"0s\";\n ref().style.animationName = \"none\";\n const rect = ref().getBoundingClientRect();\n setHeight(rect.height);\n setWidth(rect.width);\n if (!isMountAnimationPrevented) {\n ref().style.transitionDuration = \"\";\n ref().style.animationName = \"\";\n }\n }\n )\n );\n createEffect(\n on(\n context.isOpen,\n (open) => {\n if (!open && ref()) {\n ref().style.transitionDuration = \"\";\n ref().style.animationName = \"\";\n }\n },\n { defer: true }\n )\n );\n createEffect(() => onCleanup(context.registerContentId(local.id)));\n return <Show when={present()}><Polymorphic\n as=\"div\"\n ref={mergeRefs(setRef, local.ref)}\n id={local.id}\n style={combineStyle(\n {\n \"--kb-collapsible-content-height\": height() ? `${height()}px` : void 0,\n \"--kb-collapsible-content-width\": width() ? `${width()}px` : void 0\n },\n local.style\n )}\n {...context.dataset()}\n {...others}\n /></Show>;\n}\n\n// src/collapsible/collapsible-root.tsx\nimport {\n createGenerateId,\n mergeDefaultProps as mergeDefaultProps2\n} from \"@kobalte/utils\";\nimport {\n createMemo,\n createSignal as createSignal2,\n createUniqueId,\n splitProps as splitProps2\n} from \"solid-js\";\nfunction CollapsibleRoot(props) {\n const defaultId = `collapsible-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps2(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"disabled\",\n \"forceMount\"\n ]);\n const [contentId, setContentId] = createSignal2();\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const dataset = createMemo(() => ({\n \"data-expanded\": disclosureState.isOpen() ? \"\" : void 0,\n \"data-closed\": !disclosureState.isOpen() ? \"\" : void 0,\n \"data-disabled\": local.disabled ? \"\" : void 0\n }));\n const context = {\n dataset,\n isOpen: disclosureState.isOpen,\n disabled: () => local.disabled ?? false,\n shouldMount: () => local.forceMount || disclosureState.isOpen(),\n contentId,\n toggle: disclosureState.toggle,\n generateId: createGenerateId(() => others.id),\n registerContentId: createRegisterId(setContentId)\n };\n return <CollapsibleContext.Provider value={context}><Polymorphic\n as=\"div\"\n {...dataset()}\n {...others}\n /></CollapsibleContext.Provider>;\n}\n\n// src/collapsible/collapsible-trigger.tsx\nimport { callHandler } from \"@kobalte/utils\";\nimport {\n splitProps as splitProps3\n} from \"solid-js\";\nfunction CollapsibleTrigger(props) {\n const context = useCollapsibleContext();\n const [local, others] = splitProps3(props, [\"onClick\"]);\n const onClick = (e) => {\n callHandler(e, local.onClick);\n context.toggle();\n };\n return <ButtonRoot\n aria-expanded={context.isOpen()}\n aria-controls={context.isOpen() ? context.contentId() : void 0}\n disabled={context.disabled()}\n onClick={onClick}\n {...context.dataset()}\n {...others}\n />;\n}\n\n// src/collapsible/index.tsx\nvar Collapsible = Object.assign(CollapsibleRoot, {\n Content: CollapsibleContent,\n Trigger: CollapsibleTrigger\n});\n\nexport {\n useCollapsibleContext,\n CollapsibleContent,\n CollapsibleRoot,\n CollapsibleTrigger,\n Collapsible,\n collapsible_exports\n};\n","import {\n createSelectableList\n} from \"./N3GAC5SS.jsx\";\nimport {\n createListState,\n createSelectableItem\n} from \"./QZDH5R5B.jsx\";\nimport {\n CollapsibleContent,\n CollapsibleRoot,\n CollapsibleTrigger,\n useCollapsibleContext\n} from \"./UGE6PPGT.jsx\";\nimport {\n createDomCollection,\n createDomCollectionItem\n} from \"./SOM3K36D.jsx\";\nimport {\n createRegisterId\n} from \"./JNCCF6MP.jsx\";\nimport {\n Polymorphic\n} from \"./FLVHQV4A.jsx\";\nimport {\n __export\n} from \"./5WXHJDCZ.jsx\";\n\n// src/accordion/index.tsx\nvar accordion_exports = {};\n__export(accordion_exports, {\n Accordion: () => Accordion,\n Content: () => AccordionContent,\n Header: () => AccordionHeader,\n Item: () => AccordionItem,\n Root: () => AccordionRoot,\n Trigger: () => AccordionTrigger,\n useAccordionContext: () => useAccordionContext\n});\n\n// src/accordion/accordion-content.tsx\nimport { mergeDefaultProps } from \"@kobalte/utils\";\nimport {\n createEffect,\n onCleanup,\n splitProps\n} from \"solid-js\";\nimport { combineStyle } from \"@solid-primitives/props\";\n\n// src/accordion/accordion-item-context.tsx\nimport { createContext, useContext } from \"solid-js\";\nvar AccordionItemContext = createContext();\nfunction useAccordionItemContext() {\n const context = useContext(AccordionItemContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useAccordionItemContext` must be used within a `Accordion.Item` component\"\n );\n }\n return context;\n}\n\n// src/accordion/accordion-content.tsx\nfunction AccordionContent(props) {\n const itemContext = useAccordionItemContext();\n const defaultId = itemContext.generateId(\"content\");\n const mergedProps = mergeDefaultProps(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps(mergedProps, [\"id\", \"style\"]);\n createEffect(() => onCleanup(itemContext.registerContentId(local.id)));\n return <CollapsibleContent\n role=\"region\"\n aria-labelledby={itemContext.triggerId()}\n style={combineStyle(\n {\n \"--kb-accordion-content-height\": \"var(--kb-collapsible-content-height)\",\n \"--kb-accordion-content-width\": \"var(--kb-collapsible-content-width)\"\n },\n local.style\n )}\n {...others}\n />;\n}\n\n// src/accordion/accordion-header.tsx\nfunction AccordionHeader(props) {\n const context = useCollapsibleContext();\n return <Polymorphic\n as=\"h3\"\n {...context.dataset()}\n {...props}\n />;\n}\n\n// src/accordion/accordion-item.tsx\nimport { createGenerateId, mergeDefaultProps as mergeDefaultProps2 } from \"@kobalte/utils\";\nimport {\n createSignal,\n createUniqueId,\n splitProps as splitProps2\n} from \"solid-js\";\n\n// src/accordion/accordion-context.tsx\nimport { createContext as createContext2, useContext as useContext2 } from \"solid-js\";\nvar AccordionContext = createContext2();\nfunction useAccordionContext() {\n const context = useContext2(AccordionContext);\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useAccordionContext` must be used within a `Accordion.Root` component\"\n );\n }\n return context;\n}\n\n// src/accordion/accordion-item.tsx\nfunction AccordionItem(props) {\n const accordionContext = useAccordionContext();\n const defaultId = `${accordionContext.generateId(\n \"item\"\n )}-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps2(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps2(mergedProps, [\"value\", \"disabled\"]);\n const [triggerId, setTriggerId] = createSignal();\n const [contentId, setContentId] = createSignal();\n const selectionManager = () => accordionContext.listState().selectionManager();\n const isExpanded = () => {\n return selectionManager().isSelected(local.value);\n };\n const context = {\n value: () => local.value,\n triggerId,\n contentId,\n generateId: createGenerateId(() => others.id),\n registerTriggerId: createRegisterId(setTriggerId),\n registerContentId: createRegisterId(setContentId)\n };\n return <AccordionItemContext.Provider value={context}><CollapsibleRoot\n open={isExpanded()}\n disabled={local.disabled}\n {...others}\n /></AccordionItemContext.Provider>;\n}\n\n// src/accordion/accordion-root.tsx\nimport {\n composeEventHandlers,\n createGenerateId as createGenerateId2,\n mergeDefaultProps as mergeDefaultProps3,\n mergeRefs\n} from \"@kobalte/utils\";\nimport {\n createSignal as createSignal2,\n createUniqueId as createUniqueId2,\n splitProps as splitProps3\n} from \"solid-js\";\nfunction AccordionRoot(props) {\n let ref;\n const defaultId = `accordion-${createUniqueId2()}`;\n const mergedProps = mergeDefaultProps3(\n {\n id: defaultId,\n multiple: false,\n collapsible: false,\n shouldFocusWrap: true\n },\n props\n );\n const [local, others] = splitProps3(mergedProps, [\n \"id\",\n \"ref\",\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"multiple\",\n \"collapsible\",\n \"shouldFocusWrap\",\n \"onKeyDown\",\n \"onMouseDown\",\n \"onFocusIn\",\n // TODO: remove next breaking\n \"onFocusOut\"\n ]);\n const [items, setItems] = createSignal2([]);\n const { DomCollectionProvider } = createDomCollection({\n items,\n onItemsChange: setItems\n });\n const listState = createListState({\n selectedKeys: () => local.value,\n defaultSelectedKeys: () => local.defaultValue,\n onSelectionChange: (value) => local.onChange?.(Array.from(value)),\n disallowEmptySelection: () => !local.multiple && !local.collapsible,\n selectionMode: () => local.multiple ? \"multiple\" : \"single\",\n dataSource: items\n });\n listState.selectionManager().setFocusedKey(\"item-1\");\n const selectableList = createSelectableList(\n {\n selectionManager: () => listState.selectionManager(),\n collection: () => listState.collection(),\n disallowEmptySelection: () => listState.selectionManager().disallowEmptySelection(),\n shouldFocusWrap: () => local.shouldFocusWrap,\n disallowTypeAhead: true,\n allowsTabNavigation: true\n },\n () => ref\n );\n const context = {\n listState: () => listState,\n generateId: createGenerateId2(() => local.id)\n };\n return <DomCollectionProvider><AccordionContext.Provider value={context}><Polymorphic\n as=\"div\"\n id={local.id}\n ref={mergeRefs((el) => ref = el, local.ref)}\n onKeyDown={composeEventHandlers([\n local.onKeyDown,\n selectableList.onKeyDown\n ])}\n onMouseDown={composeEventHandlers([\n local.onMouseDown,\n selectableList.onMouseDown\n ])}\n onFocusIn={composeEventHandlers([\n local.onFocusIn\n // TODO: remove next breaking\n ])}\n onFocusOut={composeEventHandlers([\n local.onFocusOut,\n selectableList.onFocusOut\n ])}\n {...others}\n /></AccordionContext.Provider></DomCollectionProvider>;\n}\n\n// src/accordion/accordion-trigger.tsx\nimport {\n callHandler,\n composeEventHandlers as composeEventHandlers2,\n mergeDefaultProps as mergeDefaultProps4,\n mergeRefs as mergeRefs2\n} from \"@kobalte/utils\";\nimport {\n createEffect as createEffect2,\n onCleanup as onCleanup2,\n splitProps as splitProps4\n} from \"solid-js\";\nfunction AccordionTrigger(props) {\n let ref;\n const accordionContext = useAccordionContext();\n const itemContext = useAccordionItemContext();\n const collapsibleContext = useCollapsibleContext();\n const defaultId = itemContext.generateId(\"trigger\");\n const mergedProps = mergeDefaultProps4(\n { id: defaultId },\n props\n );\n const [local, others] = splitProps4(mergedProps, [\n \"ref\",\n \"onPointerDown\",\n \"onPointerUp\",\n \"onClick\",\n \"onKeyDown\",\n \"onMouseDown\",\n \"onFocus\"\n ]);\n createDomCollectionItem({\n getItem: () => ({\n ref: () => ref,\n type: \"item\",\n key: itemContext.value(),\n textValue: \"\",\n // not applicable here\n disabled: collapsibleContext.disabled()\n })\n });\n const selectableItem = createSelectableItem(\n {\n key: () => itemContext.value(),\n selectionManager: () => accordionContext.listState().selectionManager(),\n disabled: () => collapsibleContext.disabled(),\n shouldSelectOnPressUp: true\n },\n () => ref\n );\n const onKeyDown = (e) => {\n if ([\"Enter\", \" \"].includes(e.key)) {\n e.preventDefault();\n }\n callHandler(e, local.onKeyDown);\n callHandler(e, selectableItem.onKeyDown);\n };\n createEffect2(() => onCleanup2(itemContext.registerTriggerId(others.id)));\n return <CollapsibleTrigger\n ref={mergeRefs2((el) => ref = el, local.ref)}\n data-key={selectableItem.dataKey()}\n onPointerDown={composeEventHandlers2([\n local.onPointerDown,\n selectableItem.onPointerDown\n ])}\n onPointerUp={composeEventHandlers2([\n local.onPointerUp,\n selectableItem.onPointerUp\n ])}\n onClick={composeEventHandlers2([local.onClick, selectableItem.onClick])}\n onKeyDown={onKeyDown}\n onMouseDown={composeEventHandlers2([\n local.onMouseDown,\n selectableItem.onMouseDown\n ])}\n onFocus={composeEventHandlers2([local.onFocus, selectableItem.onFocus])}\n {...others}\n />;\n}\n\n// src/accordion/index.tsx\nvar Accordion = Object.assign(AccordionRoot, {\n Content: AccordionContent,\n Header: AccordionHeader,\n Item: AccordionItem,\n Trigger: AccordionTrigger\n});\n\nexport {\n AccordionContent,\n AccordionHeader,\n useAccordionContext,\n AccordionItem,\n AccordionRoot,\n AccordionTrigger,\n Accordion,\n accordion_exports\n};\n","import { createMemo, Show, type Component } from \"solid-js\"\nimport { getChildSessions, getSessionInfo, getThreadTotals } from \"../../stores/sessions\"\nimport { formatTokenTotal } from \"../../lib/formatters\"\nimport { useI18n } from \"../../lib/i18n\"\nimport { useConfig } from \"../../stores/preferences\"\n\ninterface ContextUsagePanelProps {\n instanceId: string\n sessionId: string\n class?: string\n}\n\nconst chipClass = \"inline-flex items-center gap-1 rounded-full border border-base px-2 py-0.5 text-xs text-primary\"\nconst chipLabelClass = \"uppercase text-[10px] tracking-wide text-muted\"\n\nconst ContextUsagePanel: Component<ContextUsagePanelProps> = (props) => {\n const { t } = useI18n()\n const { preferences } = useConfig()\n const showUsage = createMemo(() => preferences().showUsageMetrics ?? true)\n const info = createMemo(\n () =>\n getSessionInfo(props.instanceId, props.sessionId) ?? {\n cost: 0,\n contextWindow: 0,\n isSubscriptionModel: false,\n inputTokens: 0,\n outputTokens: 0,\n reasoningTokens: 0,\n actualUsageTokens: 0,\n modelOutputLimit: 0,\n contextAvailableTokens: null,\n },\n )\n\n const children = createMemo(() => getChildSessions(props.instanceId, props.sessionId))\n const hasChildren = createMemo(() => children().length > 0)\n\n const threadTotals = createMemo(() => {\n if (!hasChildren()) return { cost: 0, inputTokens: 0, outputTokens: 0, reasoningTokens: 0 }\n return getThreadTotals(props.instanceId, props.sessionId) ?? { cost: 0, inputTokens: 0, outputTokens: 0, reasoningTokens: 0 }\n })\n\n const totalCostDisplay = createMemo(() => `$${threadTotals().cost.toFixed(2)}`)\n\n const totalInputTokens = createMemo(() => threadTotals().inputTokens)\n const totalOutputTokens = createMemo(() => threadTotals().outputTokens)\n const totalReasoningTokens = createMemo(() => threadTotals().reasoningTokens)\n\n const inputTokens = createMemo(() => info().inputTokens ?? 0)\n const outputTokens = createMemo(() => info().outputTokens ?? 0)\n const costValue = createMemo(() => {\n const value = info().isSubscriptionModel ? 0 : info().cost\n return value > 0 ? value : 0\n })\n\n const costDisplay = createMemo(() => info().isSubscriptionModel ? t(\"contextUsagePanel.included\") : `$${costValue().toFixed(2)}`)\n\n return (\n <div class={`session-context-panel px-4 py-2 ${props.class ?? \"\"}`}>\n <div class=\"flex flex-wrap items-center gap-2 text-xs text-primary\">\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.input\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(inputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.output\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(outputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.cost\")}</span>\n <span class=\"font-semibold text-primary\">{costDisplay()}</span>\n </div>\n <Show when={hasChildren() && showUsage()}>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalInput\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalInputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalOutput\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalOutputTokens())}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalCost\")}</span>\n <span class=\"font-semibold text-primary\">{totalCostDisplay()}</span>\n </div>\n <div class={chipClass}>\n <span class={chipLabelClass}>{t(\"contextUsagePanel.labels.totalReasoning\")}</span>\n <span class=\"font-semibold text-primary\">{formatTokenTotal(totalReasoningTokens())}</span>\n </div>\n </Show>\n </div>\n </div>\n )\n}\n\nexport default ContextUsagePanel\n","import { For, Show, createEffect, createMemo, createSignal, onCleanup, type Component } from \"solid-js\"\n\nimport type { ProviderUsageResponse, ProviderUsageWindow } from \"../../../../server/src/api-types\"\nimport { serverApi } from \"../../lib/api-client\"\nimport { useI18n } from \"../../lib/i18n\"\nimport { useConfig } from \"../../stores/preferences\"\n\ninterface ProviderUsagePanelProps {\n providerId: string\n modelId: string\n}\n\nconst REFRESH_INTERVAL_MS = 60_000\nconst usageCache = new Map<string, { value: ProviderUsageResponse | null; updatedAt: number }>()\n\nexport const shouldShowProviderUsageWindow = (label: string, showCreditBalance: boolean) =>\n label !== \"credits_balance\" || showCreditBalance\n\nconst ProviderUsagePanel: Component<ProviderUsagePanelProps> = (props) => {\n const { t } = useI18n()\n const { preferences } = useConfig()\n const source = createMemo(() => {\n const providerId = props.providerId.trim()\n if (!providerId) return null\n const modelId = props.modelId.trim()\n return { providerId, modelId, key: `${providerId}\\0${modelId}` }\n })\n const initialSource = source()\n const [usage, setUsage] = createSignal<ProviderUsageResponse | null | undefined>(\n initialSource ? usageCache.get(initialSource.key)?.value : undefined,\n )\n let requestId = 0\n\n const refreshUsage = async (providerId: string, modelId: string, key: string, clear: boolean) => {\n const currentRequestId = ++requestId\n if (clear) setUsage(undefined)\n try {\n const response = await serverApi.fetchProviderUsage(providerId, modelId)\n usageCache.set(key, { value: response, updatedAt: Date.now() })\n if (currentRequestId === requestId) setUsage(response)\n } catch {\n if (currentRequestId === requestId && usage() === undefined) {\n usageCache.set(key, { value: null, updatedAt: Date.now() })\n setUsage(null)\n }\n }\n }\n\n createEffect(() => {\n const current = source()\n if (!current) {\n requestId += 1\n setUsage(undefined)\n return\n }\n const cached = usageCache.get(current.key)\n setUsage(cached?.value)\n if (!cached || Date.now() - cached.updatedAt >= REFRESH_INTERVAL_MS) {\n void refreshUsage(current.providerId, current.modelId, current.key, cached === undefined)\n }\n })\n\n const refreshTimer = setInterval(() => {\n const current = source()\n if (current) void refreshUsage(current.providerId, current.modelId, current.key, false)\n }, REFRESH_INTERVAL_MS)\n onCleanup(() => {\n requestId += 1\n clearInterval(refreshTimer)\n })\n\n const entries = createMemo(() => Object.entries(usage()?.windows ?? {}))\n const displayedEntries = createMemo(() =>\n entries().filter(([label]) => shouldShowProviderUsageWindow(label, preferences().showProviderUsageCreditBalance)),\n )\n\n const windowLabel = (label: string) => {\n const key = ({\n \"5h\": \"fiveHours\",\n \"7d\": \"sevenDays\",\n \"7d-sonnet\": \"sevenDaysSonnet\",\n \"7d-opus\": \"sevenDaysOpus\",\n weekly: \"weekly\",\n daily: \"daily\",\n monthly: \"monthly\",\n credits: \"credits\",\n credits_balance: \"credits\",\n billing_cycle: \"billingCycle\",\n session: \"session\",\n premium: \"premium\",\n chat: \"chat\",\n completions: \"completions\",\n \"mcp-tools\": \"mcpTools\",\n } as Record<string, string>)[label]\n return key ? t(`providerUsage.windows.${key}`) : label\n }\n\n const displayValue = (window: ProviderUsageWindow) => {\n if (window.valueLabel) return window.valueLabel\n if (window.usedPercent === null) return t(\"providerUsage.unavailableValue\")\n return t(\"providerUsage.usedPercent\", { percent: Math.round(window.usedPercent) })\n }\n\n const resetLabel = (resetAt: number | null) => {\n if (!resetAt) return null\n const date = new Date(resetAt)\n if (!Number.isFinite(date.getTime())) return null\n return t(\"providerUsage.resets\", { time: date.toLocaleString([], { dateStyle: \"short\", timeStyle: \"short\" }) })\n }\n\n const barColor = (percent: number | null) => {\n if (percent !== null && percent >= 80) return \"var(--status-error)\"\n if (percent !== null && percent >= 50) return \"var(--status-warning)\"\n return \"var(--status-success)\"\n }\n\n return (\n <div>\n <Show when={usage() !== undefined} fallback={<div class=\"right-panel-empty-text\">{t(\"providerUsage.loading\")}</div>}>\n <Show when={usage()} fallback={<div class=\"right-panel-empty-text\">{t(\"providerUsage.unavailable\")}</div>}>\n {(data) => (\n <Show\n when={data().supported && data().configured && data().ok && entries().length > 0}\n fallback={\n <div class=\"right-panel-empty-text\">\n {t(\n !data().supported\n ? \"providerUsage.unsupported\"\n : !data().configured\n ? \"providerUsage.notConfigured\"\n : \"providerUsage.unavailable\",\n )}\n </div>\n }\n >\n <div class=\"space-y-2\">\n <For each={displayedEntries()}>\n {([label, window]) => (\n <div>\n <div class=\"mb-1 flex items-baseline justify-between gap-2 text-[11px] text-primary\">\n <span class=\"font-medium\">{windowLabel(label)}</span>\n <div class=\"flex min-w-0 items-baseline gap-1.5 text-right\">\n <span class=\"shrink-0 font-medium\">{displayValue(window)}</span>\n <Show when={resetLabel(window.resetAt)}>\n {(reset) => (\n <>\n <span class=\"text-tertiary\" aria-hidden=\"true\">·</span>\n <span class=\"truncate text-[10px] text-tertiary\">{reset()}</span>\n </>\n )}\n </Show>\n </div>\n </div>\n <Show when={window.usedPercent !== null}>\n <div class=\"h-2 overflow-hidden border border-base\" style={{ \"background-color\": \"var(--surface-base)\" }}>\n <div\n class=\"h-full transition-[width] duration-300\"\n style={{ width: `${Math.max(0, Math.min(100, window.usedPercent ?? 0))}%`, \"background-color\": barColor(window.usedPercent) }}\n role=\"progressbar\"\n aria-label={t(\"providerUsage.progressLabel\", { window: windowLabel(label) })}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={Math.round(window.usedPercent ?? 0)}\n />\n </div>\n </Show>\n </div>\n )}\n </For>\n </div>\n </Show>\n )}\n </Show>\n </Show>\n <Show when={usage()?.supported && usage()?.configured && usage()?.ok && entries().length > 0}>\n <div class=\"mt-2 truncate text-right text-sm font-semibold text-secondary\">{usage()?.providerName ?? props.providerId}</div>\n </Show>\n </div>\n )\n}\n\nexport default ProviderUsagePanel\n","import { createSignal, untrack } from \"solid-js\"\nimport type { OpenCodeClient, ShellInfo } from \"@opencode-ai/client\"\n\nconst MAX_SHELL_OUTPUT_DISPLAY_CHARS = 4 * 1024 * 1024\n\nexport function appendShellOutput(current: string, chunk: string): { output: string; truncated: boolean } {\n const output = current + chunk\n if (output.length <= MAX_SHELL_OUTPUT_DISPLAY_CHARS) return { output, truncated: false }\n\n let start = output.length - MAX_SHELL_OUTPUT_DISPLAY_CHARS\n if (output.charCodeAt(start) >= 0xdc00 && output.charCodeAt(start) <= 0xdfff) start += 1\n if (output[start] === \"\\u001b\" && output[start + 1] === \"\\\\\") start += 2\n else if (output[start] === \"\\\\\" && output[start - 1] === \"\\u001b\") start += 1\n const escape = output.lastIndexOf(\"\\u001b\", start)\n if (escape >= 0) {\n let end = -1\n let controlSequence = false\n if (output[escape + 1] === \"[\") {\n controlSequence = true\n for (let index = escape + 2; index < output.length; index += 1) {\n const code = output.charCodeAt(index)\n if (code === 0x18 || code === 0x1a) {\n end = index + 1\n break\n }\n if (code >= 0x40 && code <= 0x7e) {\n end = index + 1\n break\n }\n }\n } else if (output[escape + 1] === \"]\") {\n controlSequence = true\n const bell = output.indexOf(\"\\u0007\", escape + 2)\n const stringTerminator = output.indexOf(\"\\u001b\\\\\", escape + 2)\n const cancel = output.slice(escape + 2).search(/[\\u0018\\u001a]/)\n const terminators = [bell < 0 ? Infinity : bell + 1, stringTerminator < 0 ? Infinity : stringTerminator + 2, cancel < 0 ? Infinity : escape + 3 + cancel]\n end = Math.min(...terminators)\n if (!Number.isFinite(end)) end = -1\n } else if ([\"P\", \"X\", \"^\", \"_\"].includes(output[escape + 1] ?? \"\")) {\n controlSequence = true\n const stringTerminator = output.indexOf(\"\\u001b\\\\\", escape + 2)\n const cancel = output.slice(escape + 2).search(/[\\u0018\\u001a]/)\n end = Math.min(stringTerminator < 0 ? Infinity : stringTerminator + 2, cancel < 0 ? Infinity : escape + 3 + cancel)\n if (!Number.isFinite(end)) end = -1\n }\n if (controlSequence && end >= start) start = end\n else if (controlSequence && end < 0 && escape < start) start = output.length\n }\n return { output: output.slice(start), truncated: true }\n}\n\nexport interface ShellApi {\n list(directory: string): Promise<ShellInfo[]>\n remove(directory: string, shellId: string): Promise<void>\n output(directory: string, shellId: string, cursor?: number): Promise<{ output: string; cursor: number; size: number; truncated: boolean }>\n}\n\nexport interface ShellState {\n items: ShellInfo[]\n loading: boolean\n failed: boolean\n}\n\nexport interface ShellRefreshEvent {\n type: string\n location?: { directory?: string }\n data?: { info?: { cwd?: string } }\n}\n\nconst EMPTY_STATE: ShellState = { items: [], loading: false, failed: false }\nconst SHELL_EVENTS = new Set([\"shell.created\", \"shell.exited\", \"shell.deleted\", \"server.connected\"])\n\nexport function createShellApi(client: OpenCodeClient): ShellApi {\n const location = (directory: string) => ({ directory })\n return {\n list: async (directory) => (await client.shell.list({ location: location(directory) })).data,\n remove: (directory, shellId) => client.shell.remove({ id: shellId, location: location(directory) }),\n output: async (directory, shellId, cursor = 0) => (await client.shell.output({\n id: shellId,\n location: location(directory),\n cursor,\n limit: 1024 * 1024,\n })).data,\n }\n}\n\nexport function createShellStore(apiForInstance: (instanceId: string) => ShellApi) {\n const [states, setStates] = createSignal<Map<string, ShellState>>(new Map())\n const generations = new Map<string, number>()\n const key = (instanceId: string, directory: string) => `${instanceId}\\0${directory}`\n const setState = (stateKey: string, state: ShellState) => setStates((current) => new Map(current).set(stateKey, state))\n const readState = (stateKey: string): ShellState => untrack(() => states().get(stateKey) ?? EMPTY_STATE)\n\n const load = async (instanceId: string, directory: string): Promise<void> => {\n if (!instanceId || !directory) return\n const stateKey = key(instanceId, directory)\n const generation = (generations.get(stateKey) ?? 0) + 1\n generations.set(stateKey, generation)\n setState(stateKey, { ...readState(stateKey), loading: true, failed: false })\n try {\n const items = await apiForInstance(instanceId).list(directory)\n if (generations.get(stateKey) === generation) setState(stateKey, { items, loading: false, failed: false })\n } catch {\n if (generations.get(stateKey) === generation) setState(stateKey, { ...readState(stateKey), loading: false, failed: true })\n }\n }\n\n const refreshForEvent = async (instanceId: string, event: ShellRefreshEvent): Promise<void> => {\n if (!SHELL_EVENTS.has(event.type)) return\n const eventDirectory = event.location?.directory ?? event.data?.info?.cwd\n const tracked = Array.from(states().keys())\n .map((stateKey) => stateKey.split(\"\\0\") as [string, string])\n .filter(([trackedInstanceId]) => trackedInstanceId === instanceId)\n const matching = eventDirectory ? tracked.filter(([, directory]) => sameDirectory(directory, eventDirectory)) : tracked\n await Promise.all((matching.length ? matching : tracked).map(([, directory]) => load(instanceId, directory)))\n }\n\n const remove = async (instanceId: string, directory: string, shellId: string): Promise<boolean> => {\n try {\n await apiForInstance(instanceId).remove(directory, shellId)\n await load(instanceId, directory)\n return true\n } catch { return false }\n }\n\n const output = (instanceId: string, directory: string, shellId: string, cursor?: number) =>\n apiForInstance(instanceId).output(directory, shellId, cursor)\n const getState = (instanceId: string, directory: string): ShellState => states().get(key(instanceId, directory)) ?? EMPTY_STATE\n return { getState, load, refreshForEvent, remove, output }\n}\n\nfunction sameDirectory(left: string, right: string): boolean {\n const normalize = (value: string) => {\n const normalized = value.replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\")\n return /^[A-Za-z]:\\//.test(normalized) || normalized.startsWith(\"//\") ? normalized.toLowerCase() : normalized\n }\n return normalize(left) === normalize(right)\n}\n","import { serverEvents } from \"../lib/server-events\"\nimport { getRootClient } from \"./opencode-client\"\nimport { createShellApi, createShellStore, type ShellRefreshEvent } from \"./shell-store\"\n\nconst shellStore = createShellStore((instanceId) => createShellApi(getRootClient(instanceId)))\n\nserverEvents.on(\"instance.event\", (event) => {\n if (event.type !== \"instance.event\" || !event.event.type.startsWith(\"shell.\")) return\n void shellStore.refreshForEvent(event.instanceId, event.event as ShellRefreshEvent)\n})\n\nserverEvents.on(\"instance.eventStatus\", (event) => {\n if (event.type !== \"instance.eventStatus\" || event.status !== \"connected\") return\n void shellStore.refreshForEvent(event.instanceId, { type: \"server.connected\" })\n})\n\nexport { shellStore }\n","import { Dialog } from \"@kobalte/core/dialog\"\nimport { Show, createEffect, createSignal, onCleanup } from \"solid-js\"\nimport type { ShellInfo } from \"@opencode-ai/client\"\n\nimport { createAnsiStreamRenderer, hasAnsi } from \"../lib/ansi\"\nimport { useI18n } from \"../lib/i18n\"\nimport { appendShellOutput } from \"../stores/shell-store\"\nimport { shellStore } from \"../stores/shells\"\n\ninterface ShellOutputDialogProps {\n open: boolean\n instanceId: string\n directory: string\n shell: ShellInfo | null\n onClose: () => void\n}\n\nexport function ShellOutputDialog(props: ShellOutputDialogProps) {\n const { t } = useI18n()\n const [output, setOutput] = createSignal(\"\")\n const [outputHtml, setOutputHtml] = createSignal(\"\")\n const [ansiEnabled, setAnsiEnabled] = createSignal(false)\n const [truncated, setTruncated] = createSignal(false)\n const [loading, setLoading] = createSignal(false)\n\n createEffect(() => {\n const shell = props.shell\n const directory = props.directory\n if (!props.open || !shell || !directory) return\n\n let active = true\n let cursor = 0\n let raw = \"\"\n let timer: ReturnType<typeof setTimeout> | undefined\n const render = () => {\n const ansi = hasAnsi(raw)\n setAnsiEnabled(ansi)\n if (!ansi) return setOutputHtml(\"\")\n const renderer = createAnsiStreamRenderer()\n setOutputHtml(renderer.render(raw))\n }\n const poll = async () => {\n try {\n const result = await shellStore.output(props.instanceId, directory, shell.id, cursor)\n if (!active) return\n cursor = result.cursor\n if (result.output) {\n const next = appendShellOutput(raw, result.output)\n raw = next.output\n setOutput(raw)\n setTruncated((current) => current || result.truncated || next.truncated)\n render()\n } else if (result.truncated) {\n setTruncated(true)\n }\n } catch {\n if (!active) return\n setOutput(t(\"backgroundProcessOutputDialog.loadErrorFallback\"))\n } finally {\n if (!active) return\n setLoading(false)\n timer = setTimeout(poll, 1000)\n }\n }\n\n setOutput(\"\")\n setOutputHtml(\"\")\n setAnsiEnabled(false)\n setTruncated(false)\n setLoading(true)\n void poll()\n onCleanup(() => {\n active = false\n if (timer) clearTimeout(timer)\n })\n })\n\n return (\n <Dialog open={props.open} onOpenChange={(open) => !open && props.onClose()} modal>\n <Dialog.Portal>\n <Dialog.Overlay class=\"modal-overlay\" />\n <div class=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <Dialog.Content class=\"modal-surface flex max-h-[90vh] w-full max-w-5xl flex-col overflow-hidden\">\n <div class=\"window-header\">\n <div class=\"min-w-0 flex-1\">\n <Dialog.Title class=\"window-title\">{t(\"backgroundProcessOutputDialog.title\")}</Dialog.Title>\n <span class=\"block truncate text-xs text-secondary\" title={props.shell?.command}>{props.shell?.command}</span>\n </div>\n <button type=\"button\" class=\"button-tertiary shrink-0\" onClick={props.onClose}>\n {t(\"backgroundProcessOutputDialog.actions.close\")}\n </button>\n </div>\n <div class=\"window-body\">\n <Show when={loading()}><p class=\"text-xs text-secondary\">{t(\"backgroundProcessOutputDialog.loading\")}</p></Show>\n <Show when={truncated()}><p class=\"mb-2 text-xs text-secondary\">{t(\"backgroundProcessOutputDialog.truncatedNotice\")}</p></Show>\n <Show when={!loading()}>\n <pre\n class=\"border border-base bg-surface-secondary p-4 font-mono text-xs text-primary whitespace-pre-wrap break-all\"\n innerHTML={ansiEnabled() ? outputHtml() : undefined}\n >{ansiEnabled() ? undefined : output()}</pre>\n </Show>\n </div>\n </Dialog.Content>\n </div>\n </Dialog.Portal>\n </Dialog>\n )\n}\n","import { For, Show, createEffect, createMemo, createSignal, on, type Accessor, type Component } from \"solid-js\"\nimport type { ShellInfo } from \"@opencode-ai/client\"\nimport type { ToolState } from \"../../../../../types/tool-state\"\nimport {\n DragDropProvider,\n DragDropSensors,\n SortableProvider,\n closestCenter,\n createSortable,\n type DragEvent as SolidDndDragEvent,\n} from \"@thisbeyond/solid-dnd\"\nimport { Accordion } from \"@kobalte/core\"\nimport { Tooltip } from \"@kobalte/core/tooltip\"\nimport Switch from \"@suid/material/Switch\"\n\nimport { ChevronRight, GripVertical, Info, TerminalSquare, Trash2, XOctagon } from \"lucide-solid\"\n\nimport type { Instance } from \"../../../../../types/instance\"\nimport type { Session } from \"../../../../../types/session\"\n\nimport ContextUsagePanel from \"../../../../session/context-usage-panel\"\nimport ProviderUsagePanel from \"../../../../session/provider-usage-panel\"\nimport { TodoListView } from \"../../../../tool-call/renderers/todo\"\nimport InstanceServiceStatus from \"../../../../instance-service-status\"\nimport { togglePermissionAutoAcceptForSession } from \"../../../../../stores/instances\"\nimport { isPermissionAutoAcceptEnabled } from \"../../../../../stores/permission-auto-accept\"\nimport { applyRightPanelItemCustomization, type RightPanelCustomization, type RightPanelSectionModule } from \"../registry\"\nimport { createCoreStatusSectionManifest } from \"../core-plugin\"\nimport { shellStore } from \"../../../../../stores/shells\"\nimport { showConfirmDialog } from \"../../../../../stores/alerts\"\nimport { showToastNotification } from \"../../../../../lib/notifications\"\nimport { ShellOutputDialog } from \"../../../../shell-output-dialog\"\n\ninterface StatusTabProps {\n t: (key: string, vars?: Record<string, any>) => string\n\n instanceId: string\n instance: Instance\n\n activeSessionId: Accessor<string | null>\n activeSession: Accessor<Session | null>\n\n latestTodoState: Accessor<ToolState | null>\n\n expandedItems: Accessor<string[]>\n onExpandedItemsChange: (values: string[]) => void\n customization: Accessor<RightPanelCustomization>\n onCustomizationChange: (updater: (current: RightPanelCustomization) => RightPanelCustomization) => void\n extraSections?: readonly RightPanelSectionModule[]\n}\n\ninterface SortableStatusSectionProps {\n section: RightPanelSectionModule\n expanded: boolean\n t: (key: string, vars?: Record<string, any>) => string\n}\n\nconst SortableStatusSection: Component<SortableStatusSectionProps> = (props) => {\n const sortable = createSortable(props.section.id)\n return (\n <div ref={sortable} class={`right-panel-section-draggable ${sortable.isActiveDraggable ? \"right-panel-section-draggable-active\" : \"\"}`}>\n <Accordion.Item value={props.section.id} class=\"right-panel-accordion-item\">\n <Accordion.Header class=\"right-panel-accordion-header-row\">\n <Accordion.Trigger class=\"right-panel-accordion-trigger\">\n <span class=\"section-left\">\n <ChevronRight class=\"right-panel-accordion-chevron disclosure-chevron\" />\n <span class=\"section-label\">{props.t(props.section.labelKey)}</span>\n </span>\n </Accordion.Trigger>\n <Tooltip openDelay={200} gutter={4} placement=\"top\">\n <Tooltip.Trigger as=\"button\" type=\"button\" class=\"section-info-trigger\" aria-label={props.t(props.section.tooltipKey)}>\n <Info class=\"section-info-icon\" />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content class=\"section-info-tooltip\">{props.t(props.section.tooltipKey)}</Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip>\n <GripVertical class=\"right-panel-section-grip\" aria-hidden=\"true\" />\n </Accordion.Header>\n <Accordion.Content class=\"right-panel-accordion-content\">{props.section.render()}</Accordion.Content>\n </Accordion.Item>\n </div>\n )\n}\n\nconst StatusTab: Component<StatusTabProps> = (props) => {\n const isSectionExpanded = (id: string) => props.expandedItems().includes(id)\n const shellDirectory = createMemo(() => props.activeSession()?.location.directory ?? props.instance.folder)\n const shellState = createMemo(() => shellStore.getState(props.instanceId, shellDirectory()))\n const [outputShell, setOutputShell] = createSignal<ShellInfo | null>(null)\n\n createEffect(on(\n () => [props.instanceId, shellDirectory()] as const,\n ([instanceId, directory]) => void shellStore.load(instanceId, directory),\n ))\n\n const renderYoloModeSection = () => {\n const session = props.activeSession()\n if (!session) {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.yoloMode.noSessionSelected\")}</span>\n </div>\n )\n }\n\n return (\n <div class=\"flex items-center justify-between gap-2 border border-base bg-surface-secondary px-3 py-2\">\n <p class=\"min-w-0 text-xs leading-5 text-secondary\">{props.t(\"instanceShell.yoloMode.description\")}</p>\n <div class=\"-mr-2 shrink-0\">\n <Switch\n checked={isPermissionAutoAcceptEnabled(props.instanceId, session.id)}\n size=\"small\"\n sx={{\n \"& .MuiSwitch-switchBase.Mui-checked\": { color: \"var(--session-yolo-accent)\" },\n \"& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track\": { backgroundColor: \"var(--session-yolo-accent)\" },\n }}\n inputProps={{ \"aria-label\": props.t(\"instanceShell.yoloMode.title\") }}\n onChange={() => togglePermissionAutoAcceptForSession(props.instanceId, session.id)}\n />\n </div>\n </div>\n )\n }\n\n const renderPlanSectionContent = () => {\n const sessionId = props.activeSessionId()\n if (!sessionId || sessionId === \"info\") {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.plan.noSessionSelected\")}</span>\n </div>\n )\n }\n const todoState = props.latestTodoState()\n if (!todoState) {\n return (\n <div class=\"right-panel-empty right-panel-empty--left\">\n <span class=\"text-xs\">{props.t(\"instanceShell.plan.empty\")}</span>\n </div>\n )\n }\n return <TodoListView state={todoState} emptyLabel={props.t(\"instanceShell.plan.empty\")} showStatusLabel={false} />\n }\n\n const removeShell = async (shellId: string, command: string, running: boolean) => {\n const confirmed = await showConfirmDialog(\n props.t(\"instanceShell.backgroundProcesses.remove.message\", { title: command }),\n {\n title: props.t(\"instanceShell.backgroundProcesses.remove.title\"),\n confirmLabel: props.t(running\n ? \"instanceShell.backgroundProcesses.actions.stopRemove\"\n : \"instanceShell.backgroundProcesses.actions.remove\"),\n },\n )\n if (confirmed && !await shellStore.remove(props.instanceId, shellDirectory(), shellId)) {\n showToastNotification({ message: props.t(\"instanceShell.backgroundProcesses.error\"), variant: \"error\" })\n }\n }\n\n const renderBackgroundProcesses = () => (\n <Show\n when={!shellState().failed}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.error\")}</span></div>}\n >\n <Show\n when={!shellState().loading || shellState().items.length > 0}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.loading\")}</span></div>}\n >\n <Show\n when={shellState().items.length > 0}\n fallback={<div class=\"right-panel-empty right-panel-empty--left\"><span class=\"text-xs\">{props.t(\"instanceShell.backgroundProcesses.empty\")}</span></div>}\n >\n <div class=\"flex flex-col gap-1\">\n <For each={shellState().items}>\n {(shell) => {\n const running = () => shell.status === \"running\"\n return (\n <article class=\"status-process-card\">\n <div class=\"flex items-start justify-between gap-2\">\n <div class=\"min-w-0 flex-1\">\n <h4 class=\"truncate text-xs font-medium text-primary\" title={shell.command}>{shell.command}</h4>\n <code class=\"mt-1 block truncate text-xs text-secondary\" title={shell.shell}>{shell.shell}</code>\n </div>\n </div>\n <div class=\"mt-1 flex flex-wrap gap-x-2 gap-y-1 text-xs text-tertiary\">\n <span>{props.t(`instanceShell.backgroundProcesses.status.${shell.status}`)}</span>\n <Show when={shell.pid !== undefined}>\n <span>{props.t(\"instanceShell.backgroundProcesses.pid\", { pid: shell.pid })}</span>\n </Show>\n <Show when={shell.exit !== undefined}>\n <span>{props.t(\"instanceShell.backgroundProcesses.exitCode\", { code: shell.exit })}</span>\n </Show>\n </div>\n <div class=\"mt-1 truncate text-xs text-tertiary\" title={shell.cwd}>{shell.cwd}</div>\n <div class=\"status-process-actions\">\n <button\n type=\"button\"\n class=\"button-tertiary inline-flex w-full items-center justify-center gap-1 p-1\"\n onClick={() => setOutputShell(shell)}\n >\n <TerminalSquare class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n {props.t(\"instanceShell.backgroundProcesses.actions.output\")}\n </button>\n <button\n type=\"button\"\n class=\"button-tertiary inline-flex w-full items-center justify-center gap-1 p-1\"\n disabled={shellState().loading}\n onClick={() => void removeShell(shell.id, shell.command, running())}\n >\n <Show when={running()} fallback={<Trash2 class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />}>\n <XOctagon class=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n </Show>\n {props.t(running()\n ? \"instanceShell.backgroundProcesses.actions.stopRemove\"\n : \"instanceShell.backgroundProcesses.actions.remove\")}\n </button>\n </div>\n </article>\n )\n }}\n </For>\n </div>\n </Show>\n </Show>\n </Show>\n )\n\n const renderProviderUsage = () => {\n const session = props.activeSession()\n if (!session) {\n return <div class=\"right-panel-empty-text\">{props.t(\"providerUsage.noSession\")}</div>\n }\n return (\n <div class=\"border border-base bg-surface-secondary px-3 py-2\">\n <ProviderUsagePanel providerId={session.model.providerId} modelId={session.model.modelId} />\n </div>\n )\n }\n\n const allStatusSections = createMemo<RightPanelSectionModule[]>(() => {\n const sections = createCoreStatusSectionManifest({\n renderYoloModeSection,\n renderProviderUsage,\n renderPlanSectionContent,\n renderBackgroundProcesses,\n renderMcpStatus: () => <InstanceServiceStatus initialInstance={props.instance} sections={[\"mcp\"]} showSectionHeadings={false} class=\"space-y-2\" />,\n renderPluginStatus: () => (\n <InstanceServiceStatus initialInstance={props.instance} sections={[\"plugins\"]} showSectionHeadings={false} class=\"space-y-2\" />\n ),\n }).statusSections ?? []\n\n return [...sections, ...(props.extraSections ?? [])]\n })\n const statusSections = createMemo<RightPanelSectionModule[]>(() =>\n applyRightPanelItemCustomization(\n allStatusSections(),\n props.customization().statusSectionOrder,\n props.customization().hiddenStatusSectionIds,\n ),\n )\n\n const moveSection = (sourceId: string, targetId: string) => {\n if (!sourceId || sourceId === targetId) return\n const ids = statusSections().map((section) => section.id)\n const sourceIndex = ids.indexOf(sourceId)\n const targetIndex = ids.indexOf(targetId)\n if (sourceIndex === -1 || targetIndex === -1) return\n const next = [...ids]\n const [moved] = next.splice(sourceIndex, 1)\n next.splice(targetIndex, 0, moved)\n props.onCustomizationChange((current) => ({ ...current, statusSectionOrder: next }))\n }\n\n const handleSectionDragEnd = ({ draggable, droppable }: SolidDndDragEvent) => {\n if (!droppable) return\n moveSection(String(draggable.id), String(droppable.id))\n }\n\n return (\n <div class=\"status-tab-container\">\n <Show when={props.activeSession()?.id}>\n <ContextUsagePanel instanceId={props.instanceId} sessionId={props.activeSession()!.id} class=\"status-tab-context-panel\" />\n </Show>\n\n <Accordion.Root\n class=\"right-panel-accordion\"\n collapsible\n multiple\n value={props.expandedItems()}\n onChange={props.onExpandedItemsChange}\n >\n <DragDropProvider collisionDetector={closestCenter} onDragEnd={handleSectionDragEnd}>\n <DragDropSensors>\n <SortableProvider ids={statusSections().map((section) => section.id)}>\n <For each={statusSections()}>\n {(section) => <SortableStatusSection section={section} expanded={isSectionExpanded(section.id)} t={props.t} />}\n </For>\n </SortableProvider>\n </DragDropSensors>\n </DragDropProvider>\n </Accordion.Root>\n <ShellOutputDialog\n open={Boolean(outputShell())}\n instanceId={props.instanceId}\n directory={shellDirectory()}\n shell={outputShell()}\n onClose={() => setOutputShell(null)}\n />\n </div>\n )\n}\n\nexport default StatusTab\n"],"names":["iconNode","cx","cy","r","key","GripVertical","props","_$createComponent","Icon","_$mergeProps","name","points","d","XOctagon","tooltip_exports","__export","Arrow","PopperArrow","Content","TooltipContent","Portal","TooltipPortal","Root","TooltipRoot","Tooltip","Trigger","TooltipTrigger","useTooltipContext","TooltipContext","createContext","context","useContext","Error","mergedProps","mergeDefaultProps","id","generateId","local","others","splitProps","createEffect","onCleanup","registerContentId","Show","when","contentPresent","children","Popper","Positioner","DismissableLayer","ref","r$","_ref$","mergeRefs","el","setContentRef","role","disableOutsidePointerEvents","style","combineStyle","position","onFocusOutside","e","preventDefault","onDismiss","hideTooltip","dataset","Show2","getTooltipSafeArea","placement","anchorEl","floatingEl","basePlacement","split","anchorRect","getBoundingClientRect","floatingRect","polygon","anchorCenterX","left","width","anchorCenterY","top","height","push","bottom","right","tooltips","tooltipsCounter","globalWarmedUp","globalWarmUpTimeout","globalCoolDownTimeout","globalSkipDelayTimeout","defaultId","createUniqueId","tooltipId","mergeDefaultProps2","openDelay","closeDelay","skipDelayDuration","splitProps2","closeTimeoutId","contentId","setContentId","createSignal","triggerRef","setTriggerRef","contentRef","currentPlacement","setCurrentPlacement","disclosureState","createDisclosureState","open","defaultOpen","onOpenChange","isOpen","present","createPresence","show","forceMount","element","ensureTooltipEntry","closeOpenTooltips","hideTooltipId","immediate","window","clearTimeout","close","setTimeout","showTooltip","warmupTooltip","openTooltip","cancelOpening","cancelClosing","isTargetOnTooltip","target","contains","getPolygonSafeArea","triggerEl","contentEl","onHoverOutside","event","ignoreSafeArea","isPointInPolygon","getEventPoint","createEffect2","doc","getDocument","addEventListener","onCleanup2","removeEventListener","trigger","handleScroll","win","getWindow","capture","createMemo","isDisabled","disabled","triggerOnFocusOnly","createGenerateId","createRegisterId","Provider","value","anchorRef","onCurrentPlacementChange","splitProps3","isPointerDown","isHovered","isFocused","handlePointerUp","handleShow","handleHide","onPointerEnter","callHandler","pointerType","defaultPrevented","onPointerLeave","onPointerDown","getDocument2","once","onClick","onFocus","onBlur","relatedTarget","onCleanup3","Polymorphic","as","_ref$2","mergeRefs2","_$memo","Object","assign","collapsible_exports","Collapsible","CollapsibleContent","CollapsibleRoot","CollapsibleTrigger","useCollapsibleContext","CollapsibleContext","setRef","shouldMount","setHeight","setWidth","isMountAnimationPrevented","onMount","raf","requestAnimationFrame","cancelAnimationFrame","on","transitionDuration","animationName","rect","defer","createSignal2","toggle","ButtonRoot","accordion_exports","Accordion","AccordionContent","Header","AccordionHeader","Item","AccordionItem","AccordionRoot","AccordionTrigger","useAccordionContext","AccordionItemContext","useAccordionItemContext","itemContext","triggerId","AccordionContext","createContext2","useContext2","accordionContext","setTriggerId","selectionManager","listState","isExpanded","isSelected","registerTriggerId","createUniqueId2","mergeDefaultProps3","multiple","collapsible","shouldFocusWrap","items","setItems","DomCollectionProvider","createDomCollection","onItemsChange","createListState","selectedKeys","defaultSelectedKeys","defaultValue","onSelectionChange","onChange","Array","from","disallowEmptySelection","selectionMode","dataSource","setFocusedKey","selectableList","createSelectableList","collection","disallowTypeAhead","allowsTabNavigation","createGenerateId2","onKeyDown","composeEventHandlers","onMouseDown","onFocusIn","onFocusOut","collapsibleContext","mergeDefaultProps4","splitProps4","createDomCollectionItem","getItem","type","textValue","selectableItem","createSelectableItem","shouldSelectOnPressUp","includes","dataKey","composeEventHandlers2","onPointerUp","ContextUsagePanel","t","useI18n","preferences","useConfig","showUsage","showUsageMetrics","info","getSessionInfo","instanceId","sessionId","cost","contextWindow","isSubscriptionModel","inputTokens","outputTokens","reasoningTokens","actualUsageTokens","modelOutputLimit","contextAvailableTokens","getChildSessions","hasChildren","length","threadTotals","getThreadTotals","totalCostDisplay","toFixed","totalInputTokens","totalOutputTokens","totalReasoningTokens","costValue","costDisplay","_el$","_tmpl$2","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$6","_el$7","_el$8","_el$9","_el$0","_el$1","_$insert","formatTokenTotal","_el$10","_tmpl$","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_$effect","_$className","class","REFRESH_INTERVAL_MS","usageCache","Map","shouldShowProviderUsageWindow","label","showCreditBalance","ProviderUsagePanel","source","providerId","trim","modelId","initialSource","usage","setUsage","get","undefined","requestId","refreshUsage","clear","currentRequestId","response","serverApi","fetchProviderUsage","set","updatedAt","Date","now","current","cached","refreshTimer","setInterval","clearInterval","entries","windows","displayedEntries","filter","showProviderUsageCreditBalance","windowLabel","weekly","daily","monthly","credits","credits_balance","billing_cycle","session","premium","chat","completions","displayValue","valueLabel","usedPercent","percent","Math","round","resetLabel","resetAt","date","Number","isFinite","getTime","time","toLocaleString","dateStyle","timeStyle","barColor","fallback","_tmpl$3","data","supported","configured","ok","_tmpl$4","For","each","_tmpl$6","reset","_tmpl$7","_tmpl$8","_tmpl$5","_p$","_v$","max","min","_v$2","_v$3","_v$4","_$setStyleProperty","a","_$setAttribute","o","providerName","MAX_SHELL_OUTPUT_DISPLAY_CHARS","appendShellOutput","chunk","output","start","escape","end","controlSequence","index","code","bell","stringTerminator","cancel","terminators","EMPTY_STATE","SHELL_EVENTS","createShellApi","client","location","directory","shellId","cursor","createShellStore","apiForInstance","states","setStates","generations","setState","stateKey","state","readState","untrack","load","generation","eventDirectory","_a","_c","_b","tracked","trackedInstanceId","matching","sameDirectory","normalize","normalized","shellStore","getRootClient","serverEvents","ShellOutputDialog","setOutput","outputHtml","setOutputHtml","ansiEnabled","setAnsiEnabled","truncated","setTruncated","loading","setLoading","shell","active","raw","timer","render","ansi","hasAnsi","renderer","createAnsiStreamRenderer","poll","result","next","Dialog","onClose","modal","Overlay","Title","command","_$addEventListener","_c$","innerHTML","_$delegateEvents","SortableStatusSection","sortable","createSortable","section","_$use","ChevronRight","labelKey","gutter","tooltipKey","Info","isActiveDraggable","StatusTab","isSectionExpanded","expandedItems","shellDirectory","activeSession","instance","folder","shellState","getState","outputShell","setOutputShell","renderYoloModeSection","Switch","checked","isPermissionAutoAcceptEnabled","size","sx","color","backgroundColor","inputProps","togglePermissionAutoAcceptForSession","renderPlanSectionContent","activeSessionId","todoState","latestTodoState","TodoListView","emptyLabel","showStatusLabel","removeShell","running","showConfirmDialog","title","confirmLabel","remove","showToastNotification","message","variant","renderBackgroundProcesses","failed","status","_el$22","_el$23","_el$24","_el$27","_el$28","_el$29","_el$30","pid","_el$25","exit","_el$26","cwd","$$click","TerminalSquare","Trash2","renderProviderUsage","_el$32","_tmpl$9","model","_el$31","allStatusSections","createCoreStatusSectionManifest","renderMcpStatus","InstanceServiceStatus","initialInstance","sections","showSectionHeadings","renderPluginStatus","statusSections","extraSections","applyRightPanelItemCustomization","customization","statusSectionOrder","hiddenStatusSectionIds","moveSection","sourceId","targetId","ids","map","sourceIndex","indexOf","targetIndex","moved","splice","onCustomizationChange","handleSectionDragEnd","draggable","droppable","String","_el$33","_tmpl$0","onExpandedItemsChange","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","SortableProvider","expanded","Boolean"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|