@neuralnomads/codenomad-dev 0.20.0-dev-20260927-a77e37ef → 0.20.0-dev-20260929-0b348e86
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-Bt-tnQXl.js → App-CH6cfB0g.js} +8 -8
- package/public/assets/{App-Bt-tnQXl.js.map → App-CH6cfB0g.js.map} +1 -1
- package/public/assets/{FilesTab-fonqwqxm.js → FilesTab-D8siBvjz.js} +2 -2
- package/public/assets/{FilesTab-fonqwqxm.js.map → FilesTab-D8siBvjz.js.map} +1 -1
- package/public/assets/{GitChangesTab-DsU2QupN.js → GitChangesTab-vQDkJfb1.js} +2 -2
- package/public/assets/{GitChangesTab-DsU2QupN.js.map → GitChangesTab-vQDkJfb1.js.map} +1 -1
- package/public/assets/{SplitFilePanel-DVyHD97U.js → SplitFilePanel-45-ssHhd.js} +2 -2
- package/public/assets/{SplitFilePanel-DVyHD97U.js.map → SplitFilePanel-45-ssHhd.js.map} +1 -1
- package/public/assets/{StatusTab-BYOUdsmS.js → StatusTab-CUlz3uGG.js} +2 -2
- package/public/assets/{StatusTab-BYOUdsmS.js.map → StatusTab-CUlz3uGG.js.map} +1 -1
- package/public/assets/{align-justify-DmcKEWsB.js → align-justify-DjlaBdyk.js} +2 -2
- package/public/assets/{align-justify-DmcKEWsB.js.map → align-justify-DjlaBdyk.js.map} +1 -1
- package/public/assets/{bundle-full-CV_LTEPl.js → bundle-full-DpHg2UyZ.js} +2 -2
- package/public/assets/{bundle-full-CV_LTEPl.js.map → bundle-full-DpHg2UyZ.js.map} +1 -1
- package/public/assets/{client-state-9tEzHtfW.js → client-state-C2XNu_km.js} +2 -2
- package/public/assets/{client-state-9tEzHtfW.js.map → client-state-C2XNu_km.js.map} +1 -1
- package/public/assets/{diff-viewer-CXCXiyRO.js → diff-viewer-CiYhl2x9.js} +2 -2
- package/public/assets/{diff-viewer-CXCXiyRO.js.map → diff-viewer-CiYhl2x9.js.map} +1 -1
- package/public/assets/{index-CuhtAbYJ.js → index-6oDOgk2Z.js} +3 -3
- package/public/assets/index-6oDOgk2Z.js.map +1 -0
- package/public/assets/{index-Ropj5M3p.js → index-B4_MU-br.js} +2 -2
- package/public/assets/index-B4_MU-br.js.map +1 -0
- package/public/assets/{index-DqE-g5em.js → index-BaZoOnmA.js} +2 -2
- package/public/assets/{index-DqE-g5em.js.map → index-BaZoOnmA.js.map} +1 -1
- package/public/assets/{index-B-_YmFJc.js → index-C9fWE_Zp.js} +2 -2
- package/public/assets/index-C9fWE_Zp.js.map +1 -0
- package/public/assets/{index-XQu8RsTR.js → index-CLLdccpq.js} +2 -2
- package/public/assets/index-CLLdccpq.js.map +1 -0
- package/public/assets/{index-97B_EqpY.js → index-CRYXivNH.js} +2 -2
- package/public/assets/index-CRYXivNH.js.map +1 -0
- package/public/assets/{index-CDY1e4Uc.js → index-CVF0ij-F.js} +2 -2
- package/public/assets/{index-CDY1e4Uc.js.map → index-CVF0ij-F.js.map} +1 -1
- package/public/assets/{index-DY9ZO9ld.js → index-CaF2oDiU.js} +2 -2
- package/public/assets/{index-DY9ZO9ld.js.map → index-CaF2oDiU.js.map} +1 -1
- package/public/assets/index-DT_2SeHL.css +1 -0
- package/public/assets/{index-CvKnyKel.js → index-Do13J2Ow.js} +2 -2
- package/public/assets/index-Do13J2Ow.js.map +1 -0
- package/public/assets/{index-DX4zzTPL.js → index-DuOitl8E.js} +2 -2
- package/public/assets/{index-DX4zzTPL.js.map → index-DuOitl8E.js.map} +1 -1
- package/public/assets/{index-C5ZxyV3U.js → index-bDfFMW09.js} +2 -2
- package/public/assets/index-bDfFMW09.js.map +1 -0
- package/public/assets/{index-QXZuSZ1s.js → index-v8DVuyeN.js} +2 -2
- package/public/assets/index-v8DVuyeN.js.map +1 -0
- package/public/assets/{loading-DMhZHPMZ.js → loading-Cf2WxCXs.js} +2 -2
- package/public/assets/{loading-DMhZHPMZ.js.map → loading-Cf2WxCXs.js.map} +1 -1
- package/public/assets/main-C6k-tEZT.js +43 -0
- package/public/assets/main-C6k-tEZT.js.map +1 -0
- package/public/assets/{markdown-ChsQ8753.js → markdown-UiScYuQW.js} +4 -4
- package/public/assets/{markdown-ChsQ8753.js.map → markdown-UiScYuQW.js.map} +1 -1
- package/public/assets/{startup-state-settings-card-DlwE2O3S.js → startup-state-settings-card-DVUiMY1X.js} +2 -2
- package/public/assets/{startup-state-settings-card-DlwE2O3S.js.map → startup-state-settings-card-DVUiMY1X.js.map} +1 -1
- package/public/assets/{terminal-square-Br2FaCdg.js → terminal-square-DiZ6HdRj.js} +2 -2
- package/public/assets/{terminal-square-Br2FaCdg.js.map → terminal-square-DiZ6HdRj.js.map} +1 -1
- package/public/assets/{tool-call-DNxCNLt7.js → tool-call-C3mOLsxT.js} +4 -4
- package/public/assets/{tool-call-DNxCNLt7.js.map → tool-call-C3mOLsxT.js.map} +1 -1
- package/public/assets/{unified-picker-CPPucpt3.js → unified-picker-CQHMwv72.js} +2 -2
- package/public/assets/{unified-picker-CPPucpt3.js.map → unified-picker-CQHMwv72.js.map} +1 -1
- package/public/assets/{wrap-text-BJW9yImb.js → wrap-text-DZtPfwI6.js} +2 -2
- package/public/assets/{wrap-text-BJW9yImb.js.map → wrap-text-DZtPfwI6.js.map} +1 -1
- package/public/index.html +3 -3
- package/public/loading.html +3 -3
- package/public/sw.js +1 -1
- package/public/sw.js.map +1 -1
- package/public/assets/index-97B_EqpY.js.map +0 -1
- package/public/assets/index-B-_YmFJc.js.map +0 -1
- package/public/assets/index-C5ZxyV3U.js.map +0 -1
- package/public/assets/index-CuhtAbYJ.js.map +0 -1
- package/public/assets/index-CvKnyKel.js.map +0 -1
- package/public/assets/index-NCKXobfr.css +0 -1
- package/public/assets/index-QXZuSZ1s.js.map +0 -1
- package/public/assets/index-Ropj5M3p.js.map +0 -1
- package/public/assets/index-XQu8RsTR.js.map +0 -1
- package/public/assets/main-Y9fQI3c9.js +0 -43
- package/public/assets/main-Y9fQI3c9.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusTab-BYOUdsmS.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/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 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 = \"badge-shape inline-flex items-center gap-1 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 opacity-50\">\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/client\"\nimport { requestLocationOptions } from \"./request-locations\"\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, workspaceID?: string): Promise<ShellInfo[]>\n remove(directory: string, shellId: string, workspaceID?: string): Promise<void>\n output(directory: string, shellId: string, cursor?: number, workspaceID?: string): 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; workspaceID?: 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, workspaceID) => (await client.shell.list({ location: location(directory) }, requestLocationOptions({ directory, workspaceID }))).data,\n remove: (directory, shellId, workspaceID) => client.shell.remove({ id: shellId, location: location(directory) }, requestLocationOptions({ directory, workspaceID })),\n output: async (directory, shellId, cursor = 0, workspaceID) => (await client.shell.output({\n id: shellId,\n location: location(directory),\n cursor,\n limit: 1024 * 1024,\n }, requestLocationOptions({ directory, workspaceID }))).data,\n }\n}\n\nexport function createShellStore(apiForInstance: (instanceId: string) => ShellApi) {\n const [states, setStates] = createSignal<Map<string, ShellState>>(new Map())\n const requests = new Map<string, { promise: Promise<void>; dirty: boolean }>()\n const key = (instanceId: string, directory: string, workspaceID?: string) => JSON.stringify([instanceId, directory, workspaceID])\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, workspaceID?: string, refresh = false): Promise<void> => {\n if (!instanceId || !directory) return\n const stateKey = key(instanceId, directory, workspaceID)\n const pending = requests.get(stateKey)\n if (pending) {\n if (refresh) pending.dirty = true\n return pending.promise\n }\n const request = { promise: Promise.resolve(), dirty: false }\n requests.set(stateKey, request)\n setState(stateKey, { ...readState(stateKey), loading: true, failed: false })\n request.promise = Promise.resolve().then(async () => {\n do {\n request.dirty = false\n try {\n const items = await apiForInstance(instanceId).list(directory, workspaceID)\n if (!request.dirty) setState(stateKey, { items, loading: false, failed: false })\n } catch {\n if (!request.dirty) setState(stateKey, { ...readState(stateKey), loading: false, failed: true })\n }\n } while (request.dirty)\n }).finally(() => requests.delete(stateKey))\n return request.promise\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(untrack(states).keys())\n .map((stateKey): [string, string, string | null] => JSON.parse(stateKey))\n .filter(([trackedInstanceId]) => trackedInstanceId === instanceId)\n const matching = eventDirectory ? tracked.filter(([, directory, workspaceID]) => sameDirectory(directory, eventDirectory)\n && (event.location?.workspaceID === undefined || event.location.workspaceID === workspaceID)) : tracked\n await Promise.all((matching.length ? matching : tracked).map(([, directory, workspaceID]) => load(instanceId, directory, workspaceID ?? undefined, true)))\n }\n\n const remove = async (instanceId: string, directory: string, shellId: string, workspaceID?: string): Promise<boolean> => {\n try {\n await apiForInstance(instanceId).remove(directory, shellId, workspaceID)\n await load(instanceId, directory, workspaceID, true)\n return true\n } catch { return false }\n }\n\n const output = (instanceId: string, directory: string, shellId: string, cursor?: number, workspaceID?: string) =>\n apiForInstance(instanceId).output(directory, shellId, cursor, workspaceID)\n const getState = (instanceId: string, directory: string, workspaceID?: string): ShellState => states().get(key(instanceId, directory, workspaceID)) ?? 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/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 workspaceID?: 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 const workspaceID = props.workspaceID\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, workspaceID)\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 { LocationRef, ShellInfo } from \"@opencode/client\"\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 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 activeSession: Accessor<Session | null>\n\n isActive: Accessor<boolean>\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 shellLocation = createMemo(() => props.activeSession()?.location ?? { directory: props.instance.folder })\n const shellState = createMemo(() => shellStore.getState(props.instanceId, shellLocation().directory, shellLocation().workspaceID))\n const [outputShell, setOutputShell] = createSignal<{ shell: ShellInfo; location: LocationRef; instanceId: string } | null>(null)\n\n createEffect(on(\n () => [props.instanceId, shellLocation().directory, shellLocation().workspaceID] as const,\n ([instanceId, directory, workspaceID]) => void shellStore.load(instanceId, directory, workspaceID),\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 class=\"yolo-mode-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 removeShell = async (shellId: string, command: string, running: boolean) => {\n const instanceId = props.instanceId\n const location = { ...shellLocation() }\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(instanceId, location.directory, shellId, location.workspaceID)) {\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, location: { ...shellLocation() }, instanceId: props.instanceId })}\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 renderTokens: () => (\n <Show when={props.activeSession()?.id}>\n <ContextUsagePanel instanceId={props.instanceId} sessionId={props.activeSession()!.id} />\n </Show>\n ),\n renderYoloModeSection,\n renderProviderUsage,\n renderBackgroundProcesses,\n renderMcpStatus: () => <InstanceServiceStatus initialInstance={props.instance} sections={[\"mcp\"]} showSectionHeadings={false} class=\"space-y-2\" />,\n renderPluginStatus: () => (\n <InstanceServiceStatus\n initialInstance={props.instance}\n sections={[\"plugins\"]}\n showSectionHeadings={false}\n pluginsActive={props.isActive() && isSectionExpanded(\"plugins\")}\n class=\"space-y-2\"\n />\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 <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={outputShell()?.instanceId ?? props.instanceId}\n directory={outputShell()?.location.directory ?? shellLocation().directory}\n workspaceID={outputShell()?.location.workspaceID}\n shell={outputShell()?.shell ?? null}\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","collapsible_exports","__export","Collapsible","Content","CollapsibleContent","Root","CollapsibleRoot","Trigger","CollapsibleTrigger","useCollapsibleContext","CollapsibleContext","createContext","context","useContext","Error","ref","setRef","createSignal","mergedProps","mergeDefaultProps","id","generateId","local","others","splitProps","present","createPresence","show","shouldMount","element","height","setHeight","width","setWidth","isMountAnimationPrevented","isOpen","onMount","raf","requestAnimationFrame","onCleanup","cancelAnimationFrame","createEffect","on","style","transitionDuration","animationName","rect","getBoundingClientRect","open","defer","registerContentId","Show","when","children","Polymorphic","as","r$","_ref$","mergeRefs","combineStyle","dataset","defaultId","createUniqueId","mergeDefaultProps2","splitProps2","contentId","setContentId","createSignal2","disclosureState","createDisclosureState","defaultOpen","onOpenChange","createMemo","disabled","forceMount","toggle","createGenerateId","createRegisterId","Provider","value","splitProps3","ButtonRoot","_$memo","onClick","e","callHandler","Object","assign","accordion_exports","Accordion","AccordionContent","Header","AccordionHeader","Item","AccordionItem","AccordionRoot","AccordionTrigger","useAccordionContext","AccordionItemContext","useAccordionItemContext","itemContext","role","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","el","onKeyDown","composeEventHandlers","onMouseDown","onFocusIn","onFocusOut","collapsibleContext","mergeDefaultProps4","splitProps4","createDomCollectionItem","getItem","type","textValue","selectableItem","createSelectableItem","shouldSelectOnPressUp","includes","preventDefault","createEffect2","onCleanup2","_ref$2","mergeRefs2","dataKey","onPointerDown","composeEventHandlers2","onPointerUp","onFocus","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","window","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","workspaceID","requestLocationOptions","shellId","cursor","createShellStore","apiForInstance","states","setStates","requests","setState","stateKey","state","readState","untrack","load","refresh","pending","request","event","eventDirectory","_a","_c","_b","tracked","trackedInstanceId","matching","sameDirectory","left","right","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","setTimeout","Dialog","onClose","modal","Portal","Overlay","Title","command","_$addEventListener","_c$","innerHTML","_$delegateEvents","SortableStatusSection","sortable","createSortable","section","_$use","ChevronRight","labelKey","Tooltip","openDelay","gutter","placement","tooltipKey","Info","isActiveDraggable","StatusTab","isSectionExpanded","expandedItems","shellLocation","activeSession","instance","folder","shellState","getState","outputShell","setOutputShell","renderYoloModeSection","Switch","checked","isPermissionAutoAcceptEnabled","size","sx","color","backgroundColor","inputProps","togglePermissionAutoAcceptForSession","removeShell","running","showConfirmDialog","title","confirmLabel","remove","showToastNotification","message","variant","renderBackgroundProcesses","failed","status","_el$23","_el$24","_el$25","_el$26","pid","exit","_el$22","cwd","$$click","TerminalSquare","Trash2","renderProviderUsage","_el$28","_tmpl$9","model","_el$27","allStatusSections","createCoreStatusSectionManifest","renderTokens","renderMcpStatus","InstanceServiceStatus","initialInstance","sections","showSectionHeadings","renderPluginStatus","pluginsActive","isActive","statusSections","extraSections","applyRightPanelItemCustomization","customization","statusSectionOrder","hiddenStatusSectionIds","moveSection","sourceId","targetId","ids","map","sourceIndex","indexOf","targetIndex","moved","splice","onCustomizationChange","handleSectionDragEnd","draggable","droppable","String","_el$29","_tmpl$0","onExpandedItemsChange","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","SortableProvider","expanded","Boolean"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
1
|
+
{"version":3,"file":"StatusTab-CUlz3uGG.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/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 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 = \"badge-shape inline-flex items-center gap-1 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 opacity-50\">\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/client\"\nimport { requestLocationOptions } from \"./request-locations\"\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, workspaceID?: string): Promise<ShellInfo[]>\n remove(directory: string, shellId: string, workspaceID?: string): Promise<void>\n output(directory: string, shellId: string, cursor?: number, workspaceID?: string): 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; workspaceID?: 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, workspaceID) => (await client.shell.list({ location: location(directory) }, requestLocationOptions({ directory, workspaceID }))).data,\n remove: (directory, shellId, workspaceID) => client.shell.remove({ id: shellId, location: location(directory) }, requestLocationOptions({ directory, workspaceID })),\n output: async (directory, shellId, cursor = 0, workspaceID) => (await client.shell.output({\n id: shellId,\n location: location(directory),\n cursor,\n limit: 1024 * 1024,\n }, requestLocationOptions({ directory, workspaceID }))).data,\n }\n}\n\nexport function createShellStore(apiForInstance: (instanceId: string) => ShellApi) {\n const [states, setStates] = createSignal<Map<string, ShellState>>(new Map())\n const requests = new Map<string, { promise: Promise<void>; dirty: boolean }>()\n const key = (instanceId: string, directory: string, workspaceID?: string) => JSON.stringify([instanceId, directory, workspaceID])\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, workspaceID?: string, refresh = false): Promise<void> => {\n if (!instanceId || !directory) return\n const stateKey = key(instanceId, directory, workspaceID)\n const pending = requests.get(stateKey)\n if (pending) {\n if (refresh) pending.dirty = true\n return pending.promise\n }\n const request = { promise: Promise.resolve(), dirty: false }\n requests.set(stateKey, request)\n setState(stateKey, { ...readState(stateKey), loading: true, failed: false })\n request.promise = Promise.resolve().then(async () => {\n do {\n request.dirty = false\n try {\n const items = await apiForInstance(instanceId).list(directory, workspaceID)\n if (!request.dirty) setState(stateKey, { items, loading: false, failed: false })\n } catch {\n if (!request.dirty) setState(stateKey, { ...readState(stateKey), loading: false, failed: true })\n }\n } while (request.dirty)\n }).finally(() => requests.delete(stateKey))\n return request.promise\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(untrack(states).keys())\n .map((stateKey): [string, string, string | null] => JSON.parse(stateKey))\n .filter(([trackedInstanceId]) => trackedInstanceId === instanceId)\n const matching = eventDirectory ? tracked.filter(([, directory, workspaceID]) => sameDirectory(directory, eventDirectory)\n && (event.location?.workspaceID === undefined || event.location.workspaceID === workspaceID)) : tracked\n await Promise.all((matching.length ? matching : tracked).map(([, directory, workspaceID]) => load(instanceId, directory, workspaceID ?? undefined, true)))\n }\n\n const remove = async (instanceId: string, directory: string, shellId: string, workspaceID?: string): Promise<boolean> => {\n try {\n await apiForInstance(instanceId).remove(directory, shellId, workspaceID)\n await load(instanceId, directory, workspaceID, true)\n return true\n } catch { return false }\n }\n\n const output = (instanceId: string, directory: string, shellId: string, cursor?: number, workspaceID?: string) =>\n apiForInstance(instanceId).output(directory, shellId, cursor, workspaceID)\n const getState = (instanceId: string, directory: string, workspaceID?: string): ShellState => states().get(key(instanceId, directory, workspaceID)) ?? 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/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 workspaceID?: 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 const workspaceID = props.workspaceID\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, workspaceID)\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 { LocationRef, ShellInfo } from \"@opencode/client\"\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 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 activeSession: Accessor<Session | null>\n\n isActive: Accessor<boolean>\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 shellLocation = createMemo(() => props.activeSession()?.location ?? { directory: props.instance.folder })\n const shellState = createMemo(() => shellStore.getState(props.instanceId, shellLocation().directory, shellLocation().workspaceID))\n const [outputShell, setOutputShell] = createSignal<{ shell: ShellInfo; location: LocationRef; instanceId: string } | null>(null)\n\n createEffect(on(\n () => [props.instanceId, shellLocation().directory, shellLocation().workspaceID] as const,\n ([instanceId, directory, workspaceID]) => void shellStore.load(instanceId, directory, workspaceID),\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 class=\"yolo-mode-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 removeShell = async (shellId: string, command: string, running: boolean) => {\n const instanceId = props.instanceId\n const location = { ...shellLocation() }\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(instanceId, location.directory, shellId, location.workspaceID)) {\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, location: { ...shellLocation() }, instanceId: props.instanceId })}\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 renderTokens: () => (\n <Show when={props.activeSession()?.id}>\n <ContextUsagePanel instanceId={props.instanceId} sessionId={props.activeSession()!.id} />\n </Show>\n ),\n renderYoloModeSection,\n renderProviderUsage,\n renderBackgroundProcesses,\n renderMcpStatus: () => <InstanceServiceStatus initialInstance={props.instance} sections={[\"mcp\"]} showSectionHeadings={false} class=\"space-y-2\" />,\n renderPluginStatus: () => (\n <InstanceServiceStatus\n initialInstance={props.instance}\n sections={[\"plugins\"]}\n showSectionHeadings={false}\n pluginsActive={props.isActive() && isSectionExpanded(\"plugins\")}\n class=\"space-y-2\"\n />\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 <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={outputShell()?.instanceId ?? props.instanceId}\n directory={outputShell()?.location.directory ?? shellLocation().directory}\n workspaceID={outputShell()?.location.workspaceID}\n shell={outputShell()?.shell ?? null}\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","collapsible_exports","__export","Collapsible","Content","CollapsibleContent","Root","CollapsibleRoot","Trigger","CollapsibleTrigger","useCollapsibleContext","CollapsibleContext","createContext","context","useContext","Error","ref","setRef","createSignal","mergedProps","mergeDefaultProps","id","generateId","local","others","splitProps","present","createPresence","show","shouldMount","element","height","setHeight","width","setWidth","isMountAnimationPrevented","isOpen","onMount","raf","requestAnimationFrame","onCleanup","cancelAnimationFrame","createEffect","on","style","transitionDuration","animationName","rect","getBoundingClientRect","open","defer","registerContentId","Show","when","children","Polymorphic","as","r$","_ref$","mergeRefs","combineStyle","dataset","defaultId","createUniqueId","mergeDefaultProps2","splitProps2","contentId","setContentId","createSignal2","disclosureState","createDisclosureState","defaultOpen","onOpenChange","createMemo","disabled","forceMount","toggle","createGenerateId","createRegisterId","Provider","value","splitProps3","ButtonRoot","_$memo","onClick","e","callHandler","Object","assign","accordion_exports","Accordion","AccordionContent","Header","AccordionHeader","Item","AccordionItem","AccordionRoot","AccordionTrigger","useAccordionContext","AccordionItemContext","useAccordionItemContext","itemContext","role","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","el","onKeyDown","composeEventHandlers","onMouseDown","onFocusIn","onFocusOut","collapsibleContext","mergeDefaultProps4","splitProps4","createDomCollectionItem","getItem","type","textValue","selectableItem","createSelectableItem","shouldSelectOnPressUp","includes","preventDefault","createEffect2","onCleanup2","_ref$2","mergeRefs2","dataKey","onPointerDown","composeEventHandlers2","onPointerUp","onFocus","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","window","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","workspaceID","requestLocationOptions","shellId","cursor","createShellStore","apiForInstance","states","setStates","requests","setState","stateKey","state","readState","untrack","load","refresh","pending","request","event","eventDirectory","_a","_c","_b","tracked","trackedInstanceId","matching","sameDirectory","left","right","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","setTimeout","Dialog","onClose","modal","Portal","Overlay","Title","command","_$addEventListener","_c$","innerHTML","_$delegateEvents","SortableStatusSection","sortable","createSortable","section","_$use","ChevronRight","labelKey","Tooltip","openDelay","gutter","placement","tooltipKey","Info","isActiveDraggable","StatusTab","isSectionExpanded","expandedItems","shellLocation","activeSession","instance","folder","shellState","getState","outputShell","setOutputShell","renderYoloModeSection","Switch","checked","isPermissionAutoAcceptEnabled","size","sx","color","backgroundColor","inputProps","togglePermissionAutoAcceptForSession","removeShell","running","showConfirmDialog","title","confirmLabel","remove","showToastNotification","message","variant","renderBackgroundProcesses","failed","status","_el$23","_el$24","_el$25","_el$26","pid","exit","_el$22","cwd","$$click","TerminalSquare","Trash2","renderProviderUsage","_el$28","_tmpl$9","model","_el$27","allStatusSections","createCoreStatusSectionManifest","renderTokens","renderMcpStatus","InstanceServiceStatus","initialInstance","sections","showSectionHeadings","renderPluginStatus","pluginsActive","isActive","statusSections","extraSections","applyRightPanelItemCustomization","customization","statusSectionOrder","hiddenStatusSectionIds","moveSection","sourceId","targetId","ids","map","sourceIndex","indexOf","targetIndex","moved","splice","onCustomizationChange","handleSectionDragEnd","draggable","droppable","String","_el$29","_tmpl$0","onExpandedItemsChange","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","SortableProvider","expanded","Boolean"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{I as n}from"./main-
|
|
2
|
-
//# sourceMappingURL=align-justify-
|
|
1
|
+
import{I as n}from"./main-C6k-tEZT.js";import{k as o,p as y}from"./git-diff-vendor-CT8HfOQw.js";const i=[["line",{x1:"3",x2:"21",y1:"6",y2:"6",key:"4m8b97"}],["line",{x1:"3",x2:"21",y1:"12",y2:"12",key:"10d38w"}],["line",{x1:"3",x2:"21",y1:"18",y2:"18",key:"kwyyxn"}]],m=e=>o(n,y(e,{name:"AlignJustify",iconNode:i}));export{m as A};
|
|
2
|
+
//# sourceMappingURL=align-justify-DjlaBdyk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"align-justify-
|
|
1
|
+
{"version":3,"file":"align-justify-DjlaBdyk.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/align-justify.jsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['line', { x1: '3', x2: '21', y1: '6', y2: '6', key: '4m8b97' }],\n ['line', { x1: '3', x2: '21', y1: '12', y2: '12', key: '10d38w' }],\n ['line', { x1: '3', x2: '21', y1: '18', y2: '18', key: 'kwyyxn' }],\n];\nconst AlignJustify = (props) => (<Icon {...props} name=\"AlignJustify\" iconNode={iconNode}/>);\nexport default AlignJustify;\n"],"names":["iconNode","x1","x2","y1","y2","key","AlignJustify","props","_$createComponent","Icon","_$mergeProps","name"],"mappings":"gGACA,MAAMA,EAAW,CACb,CAAC,OAAQ,CAAEC,GAAI,IAAKC,GAAI,KAAMC,GAAI,IAAKC,GAAI,IAAKC,IAAK,QAAS,CAAC,EAC/D,CAAC,OAAQ,CAAEJ,GAAI,IAAKC,GAAI,KAAMC,GAAI,KAAMC,GAAI,KAAMC,IAAK,QAAS,CAAC,EACjE,CAAC,OAAQ,CAAEJ,GAAI,IAAKC,GAAI,KAAMC,GAAI,KAAMC,GAAI,KAAMC,IAAK,QAAS,CAAC,CAAC,EAEhEC,EAAgBC,GAAKC,EAAOC,EAAIC,EAAKH,EAAK,CAAEI,KAAI,eAAgBX,SAAAA,CAAkB,CAAA,CAAA","x_google_ignoreList":[0]}
|