@neuralnomads/codenomad-dev 1.0.0-dev-20261021-da0dc279 → 1.0.0-dev-20261021-3be331df
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-CV7a_XIb.js +166 -0
- package/public/assets/App-CV7a_XIb.js.map +1 -0
- package/public/assets/{FilesPanel-fldoLwjR.js → FilesPanel-DR1y0J8k.js} +2 -2
- package/public/assets/{FilesPanel-fldoLwjR.js.map → FilesPanel-DR1y0J8k.js.map} +1 -1
- package/public/assets/{StatusTab-BsieSz5T.js → StatusTab-CvArOQfz.js} +2 -2
- package/public/assets/{StatusTab-BsieSz5T.js.map → StatusTab-CvArOQfz.js.map} +1 -1
- package/public/assets/{client-state-DUiczYN_.js → client-state-DseolAb6.js} +2 -2
- package/public/assets/{client-state-DUiczYN_.js.map → client-state-DseolAb6.js.map} +1 -1
- package/public/assets/{client-state-8wzlVD60.js → client-state-Pknghd0N.js} +2 -2
- package/public/assets/{client-state-8wzlVD60.js.map → client-state-Pknghd0N.js.map} +1 -1
- package/public/assets/client-state-owner-commands-we9M_k_R.js +2 -0
- package/public/assets/{client-state-owner-commands-BbTnX6L9.js.map → client-state-owner-commands-we9M_k_R.js.map} +1 -1
- package/public/assets/{diff-viewer-c2DdbKd2.js → diff-viewer-DzwcL4Zt.js} +2 -2
- package/public/assets/{diff-viewer-c2DdbKd2.js.map → diff-viewer-DzwcL4Zt.js.map} +1 -1
- package/public/assets/{main-DIArqqxb.js → main-RhkO2_V4.js} +4 -4
- package/public/assets/{main-DIArqqxb.js.map → main-RhkO2_V4.js.map} +1 -1
- package/public/assets/{markdown-Bm3WjLUn.js → markdown-f7gFxms-.js} +2 -2
- package/public/assets/{markdown-Bm3WjLUn.js.map → markdown-f7gFxms-.js.map} +1 -1
- package/public/assets/{opener-startup-state-settings-card-B1CLwWxr.js → opener-startup-state-settings-card-6qWuvtuQ.js} +2 -2
- package/public/assets/{opener-startup-state-settings-card-B1CLwWxr.js.map → opener-startup-state-settings-card-6qWuvtuQ.js.map} +1 -1
- package/public/assets/{startup-state-settings-card-CApBOz_c.js → startup-state-settings-card-C31YnCd3.js} +2 -2
- package/public/assets/{startup-state-settings-card-CApBOz_c.js.map → startup-state-settings-card-C31YnCd3.js.map} +1 -1
- package/public/assets/{startup-state-settings-view-WgJn7GgZ.js → startup-state-settings-view-DeTncAxc.js} +2 -2
- package/public/assets/{startup-state-settings-view-WgJn7GgZ.js.map → startup-state-settings-view-DeTncAxc.js.map} +1 -1
- package/public/assets/{terminal-square-BuJcmlSz.js → terminal-square-CskZtmJl.js} +2 -2
- package/public/assets/{terminal-square-BuJcmlSz.js.map → terminal-square-CskZtmJl.js.map} +1 -1
- package/public/assets/{tool-call-HuawLUrB.js → tool-call-ct3UTaYa.js} +4 -4
- package/public/assets/{tool-call-HuawLUrB.js.map → tool-call-ct3UTaYa.js.map} +1 -1
- package/public/assets/{unified-picker-BUCAtNPn.js → unified-picker-DLAIy-T3.js} +2 -2
- package/public/assets/{unified-picker-BUCAtNPn.js.map → unified-picker-DLAIy-T3.js.map} +1 -1
- package/public/index.html +2 -2
- package/public/loading.html +1 -1
- package/public/sw.js +1 -1
- package/public/sw.js.map +1 -1
- package/public/assets/App-6cgf1_Fi.js +0 -166
- package/public/assets/App-6cgf1_Fi.js.map +0 -1
- package/public/assets/client-state-owner-commands-BbTnX6L9.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusTab-BsieSz5T.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-state.ts","../../../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, For, Show, type Component } from \"solid-js\"\nimport { getChildSessions, getSessionInfo, getThreadTotals } from \"../../stores/sessions\"\nimport { formatTokenTotal } from \"../../lib/formatters\"\nimport { useI18n } from \"../../lib/i18n\"\n\ninterface ContextUsagePanelProps {\n instanceId: string\n sessionId: string\n class?: string\n summary?: boolean\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 info = createMemo(() => getSessionInfo(props.instanceId, props.sessionId))\n const hasChildren = createMemo(() => getChildSessions(props.instanceId, props.sessionId).length > 0)\n const threadTotals = createMemo(() => getThreadTotals(props.instanceId, props.sessionId))\n const tokenMetric = (label: string, value = 0) => ({ label: t(`contextUsagePanel.labels.${label}`), value: formatTokenTotal(value), full: String(value) })\n const costMetric = (label: string, value: string) => ({ label: t(`contextUsagePanel.labels.${label}`), value, full: value })\n const sessionMetrics = createMemo(() => {\n const session = info()\n const cost = session?.cost ?? 0\n return [\n tokenMetric(\"input\", session?.inputTokens),\n tokenMetric(\"output\", session?.outputTokens),\n costMetric(\"cost\", session?.isSubscriptionModel ? t(\"contextUsagePanel.included\") : `$${(cost > 0 ? cost : 0).toFixed(2)}`),\n ]\n })\n const totalMetrics = createMemo(() => [\n tokenMetric(\"totalInput\", threadTotals()?.inputTokens),\n tokenMetric(\"totalOutput\", threadTotals()?.outputTokens),\n costMetric(\"totalCost\", `$${(threadTotals()?.cost ?? 0).toFixed(2)}`),\n tokenMetric(\"totalReasoning\", threadTotals()?.reasoningTokens),\n ])\n const summaryLabel = createMemo(() => sessionMetrics().map(metric => `${metric.label}: ${metric.full}`).join(\" · \"))\n const renderMetrics = (metrics: ReturnType<typeof sessionMetrics>) => (\n <For each={metrics}>\n {(metric) => (\n <span class={props.summary ? \"status-token-metric\" : chipClass} title={`${metric.label}: ${metric.full}`}>\n <span class={props.summary ? \"status-token-label\" : chipLabelClass}>{metric.label}</span>\n <span class={props.summary ? \"\" : \"font-semibold text-primary\"}>{metric.value}</span>\n </span>\n )}\n </For>\n )\n\n return (\n <Show when={props.summary} fallback={\n <div class={`session-context-panel status-token-groups py-2 text-xs text-primary opacity-50 ${props.class ?? \"\"}`}>\n <div class=\"status-token-group\" data-token-group=\"session\">{renderMetrics(sessionMetrics())}</div>\n <Show when={hasChildren()}>\n <div class=\"status-token-group\" data-token-group=\"thread\">{renderMetrics(totalMetrics())}</div>\n </Show>\n </div>\n }>\n <span class=\"status-token-summary\" title={summaryLabel()} aria-label={summaryLabel()}>{renderMetrics(sessionMetrics())}</span>\n </Show>\n )\n}\n\nexport default ContextUsagePanel\n","import type { ProviderUsageResponse } from \"../../../../server/src/api-types\"\n\nexport interface ProviderUsageSource {\n instanceId: string\n sessionId: string\n directory: string\n providerId: string\n modelId: string\n}\n\nexport const providerUsageKey = (source: ProviderUsageSource) => JSON.stringify([\n source.instanceId, source.sessionId, source.directory, source.providerId, source.modelId,\n])\n\nexport const shouldShowProviderUsageWindow = (label: string, showCreditBalance: boolean) =>\n label !== \"credits_balance\" || showCreditBalance\n\n// The display snapshot is local to the mounted panel. Do not restore a global\n// browser cache before the server can revalidate the native selected account.\nexport function createProviderUsageState(\n fetchUsage: (source: ProviderUsageSource) => Promise<ProviderUsageResponse>,\n publish: (value: ProviderUsageResponse | null | undefined) => void,\n) {\n let current: ProviderUsageSource | null = null\n let generation = 0\n let running: { generation: number; again: boolean; promise: Promise<void> } | null = null\n const invalidate = () => { generation++; running = null; publish(undefined) }\n const refresh = (): Promise<void> => {\n const source = current\n if (!source) return Promise.resolve()\n if (running) {\n running.again = true\n return running.promise\n }\n const request = { generation, again: false, promise: Promise.resolve() }\n running = request\n request.promise = (async () => {\n try {\n do {\n request.again = false\n try {\n const value = await fetchUsage(source)\n if (generation === request.generation) publish(value)\n } catch {\n if (generation === request.generation) publish(null)\n }\n } while (request.again && generation === request.generation)\n } finally {\n if (running === request) running = null\n }\n })()\n return request.promise\n }\n return {\n select(source: ProviderUsageSource | null) {\n if (source && current && providerUsageKey(source) === providerUsageKey(current)) return\n current = source\n invalidate()\n },\n invalidate,\n refresh,\n dispose() { current = null; generation++; running = null },\n }\n}\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\"\nimport { serverEvents } from \"../../lib/server-events\"\nimport { createProviderUsageState, providerUsageKey, shouldShowProviderUsageWindow, type ProviderUsageSource } from \"./provider-usage-state\"\n\ninterface ProviderUsagePanelProps {\n instanceId: string\n sessionId: string\n directory: string\n active: boolean\n providerId: string\n modelId: string\n}\n\nconst REFRESH_INTERVAL_MS = 60_000\n\nconst ProviderUsagePanel: Component<ProviderUsagePanelProps> = (props) => {\n const { t } = useI18n()\n const { preferences } = useConfig()\n const source = createMemo<ProviderUsageSource | null>(() => {\n if (!props.active) return null\n const providerId = props.providerId.trim()\n if (!providerId) return null\n const modelId = props.modelId.trim()\n return { instanceId: props.instanceId, sessionId: props.sessionId, directory: props.directory, providerId, modelId }\n }, null, { equals: (a, b) => a === b || Boolean(a && b && providerUsageKey(a) === providerUsageKey(b)) })\n const [usage, setUsage] = createSignal<ProviderUsageResponse | null | undefined>()\n const state = createProviderUsageState(current => serverApi.fetchProviderUsage(\n current.instanceId, current.sessionId, current.providerId, current.modelId,\n ), value => setUsage(value))\n\n createEffect(() => {\n state.select(source())\n void state.refresh()\n })\n\n const revalidate = () => { state.invalidate(); if (source()) void state.refresh() }\n const unsubscribeEvents = serverEvents.on(\"instance.event\", event => {\n if (event.type !== \"instance.event\" || event.instanceId !== props.instanceId) return\n if (event.event.type === \"provider.updated\") {\n // Catalogue churn is not a credential switch. Revalidate in place only\n // for this native location; account/config/connection boundaries below\n // still revoke the display immediately and fence pending reads.\n if (source() && (!event.event.location || event.event.location.directory === props.directory)) void state.refresh()\n } else if ([\"credential.updated\", \"credential.switched\", \"integration.updated\", \"config.updated\", \"server.connected\"].includes(event.event.type)) revalidate()\n })\n let lastInstanceStatus: string | undefined\n let lastTransportStatus: string | undefined\n const unsubscribeStatus = serverEvents.on(\"instance.eventStatus\", event => {\n if (event.type !== \"instance.eventStatus\" || event.instanceId !== props.instanceId) return\n // Repeated status snapshots are not reconnects. Include the native stream\n // generation so a new connection still fences quotas if its loss was missed.\n const key = JSON.stringify([event.instanceId, event.status, event.generation])\n if (key === lastInstanceStatus) return\n lastInstanceStatus = key\n state.invalidate()\n if (event.status === \"connected\" && source()) void state.refresh()\n })\n const unsubscribeTransport = serverEvents.onTransportStatus(status => {\n if (status === lastTransportStatus) return\n lastTransportStatus = status\n state.invalidate()\n if (status === \"connected\" && source()) void state.refresh()\n })\n const refreshTimer = setInterval(() => { if (source()) void state.refresh() }, REFRESH_INTERVAL_MS)\n onCleanup(() => {\n state.dispose()\n clearInterval(refreshTimer)\n unsubscribeEvents()\n unsubscribeStatus()\n unsubscribeTransport()\n })\n\n const entries = createMemo(() => Object.entries(usage()?.windows ?? {}))\n const displayedLabels = createMemo(() =>\n entries().map(([label]) => label).filter(label => shouldShowProviderUsageWindow(label, preferences().showProviderUsageCreditBalance)),\n )\n\n const windowLabel = (label: string): string => {\n // Model-scoped limits arrive as `window:Model`, e.g. `7d:Opus`.\n const scope = label.indexOf(\":\")\n if (scope > 0) return `${windowLabel(label.slice(0, scope))} · ${label.slice(scope + 1)}`\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 : data().unavailableReason === \"openai-token-sharing-unsupported\"\n ? \"providerUsage.openaiTokenSharingUnsupported\"\n : \"providerUsage.unavailable\",\n )}\n </div>\n }\n >\n <div class=\"space-y-2\">\n <For each={displayedLabels()}>\n {(label) => {\n // Retain this row's value until For reconciles a removed\n // label; its effects must not read an absent window.\n const window = createMemo<ProviderUsageWindow>(previous => usage()?.windows[label] ?? previous, usage()!.windows[label])\n return (\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-inset)\" }}>\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 }}\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-inset 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 <Show when={!props.expanded && props.section.renderSummary}>\n {(summary) => <span class=\"right-panel-section-summary\">{summary()()}</span>}\n </Show>\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({ category: \"sessions\", 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 <Show when={props.activeSession()} fallback={<div class=\"right-panel-empty-text\">{props.t(\"providerUsage.noSession\")}</div>}>\n {(session) => (\n <div class=\"border border-base bg-surface-secondary px-3 py-2\">\n <ProviderUsagePanel instanceId={props.instanceId} sessionId={session().id} directory={session().location.directory}\n providerId={session().model.providerId} modelId={session().model.modelId}\n active={props.isActive() && props.expandedItems().includes(\"provider-usage\")} />\n </div>\n )}\n </Show>\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 renderTokensSummary: () => (\n <Show when={props.activeSession()?.id}>\n <ContextUsagePanel instanceId={props.instanceId} sessionId={props.activeSession()!.id} summary />\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","chipClass","chipLabelClass","ContextUsagePanel","t","useI18n","info","getSessionInfo","instanceId","sessionId","hasChildren","getChildSessions","length","threadTotals","getThreadTotals","tokenMetric","label","formatTokenTotal","full","String","costMetric","sessionMetrics","session","cost","inputTokens","outputTokens","isSubscriptionModel","toFixed","totalMetrics","reasoningTokens","summaryLabel","map","metric","join","renderMetrics","metrics","For","each","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$insert","_$effect","_p$","_v$","summary","_v$2","_v$3","_v$4","_$className","_$setAttribute","a","o","undefined","fallback","_el$5","_tmpl$4","_el$6","_el$7","_tmpl$3","class","_el$4","_tmpl$2","_v$5","_v$6","providerUsageKey","source","shouldShowProviderUsageWindow","showCreditBalance","createProviderUsageState","fetchUsage","publish","current","generation","running","invalidate","request","REFRESH_INTERVAL_MS","ProviderUsagePanel","preferences","useConfig","active","providerId","trim","modelId","directory","equals","b","Boolean","usage","setUsage","state","serverApi","fetchProviderUsage","select","refresh","revalidate","unsubscribeEvents","serverEvents","event","location","lastInstanceStatus","lastTransportStatus","unsubscribeStatus","JSON","stringify","status","unsubscribeTransport","onTransportStatus","refreshTimer","setInterval","dispose","clearInterval","entries","windows","displayedLabels","filter","showProviderUsageCreditBalance","windowLabel","scope","indexOf","slice","weekly","daily","monthly","credits","credits_balance","billing_cycle","premium","chat","completions","displayValue","window","valueLabel","usedPercent","percent","Math","round","resetLabel","resetAt","date","Date","Number","isFinite","getTime","time","toLocaleString","dateStyle","timeStyle","barColor","data","supported","configured","ok","unavailableReason","previous","_tmpl$6","_el$8","_el$9","_el$0","_el$1","reset","_tmpl$7","_el$13","_tmpl$8","_el$10","_tmpl$5","_el$11","max","min","_$setStyleProperty","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","workspaceID","requestLocationOptions","shellId","cursor","createShellStore","apiForInstance","states","setStates","requests","setState","stateKey","readState","untrack","load","pending","eventDirectory","_a","_c","_b","tracked","trackedInstanceId","matching","sameDirectory","left","right","normalize","normalized","shellStore","getRootClient","ShellOutputDialog","setOutput","outputHtml","setOutputHtml","ansiEnabled","setAnsiEnabled","truncated","setTruncated","loading","setLoading","shell","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","expanded","renderSummary","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","showConfirmDialog","title","confirmLabel","remove","showToastNotification","category","message","variant","renderBackgroundProcesses","failed","_el$12","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_el$24","_el$25","_el$26","_el$27","pid","_el$22","exit","_el$23","cwd","$$click","TerminalSquare","Trash2","renderProviderUsage","_el$28","_tmpl$9","_el$29","_tmpl$0","model","isActive","allStatusSections","createCoreStatusSectionManifest","renderTokens","renderTokensSummary","renderMcpStatus","InstanceServiceStatus","initialInstance","sections","showSectionHeadings","renderPluginStatus","pluginsActive","statusSections","extraSections","applyRightPanelItemCustomization","customization","statusSectionOrder","hiddenStatusSectionIds","moveSection","sourceId","targetId","ids","sourceIndex","targetIndex","moved","splice","onCustomizationChange","handleSectionDragEnd","draggable","droppable","_el$30","_tmpl$1","onExpandedItemsChange","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","SortableProvider"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
1
|
+
{"version":3,"file":"StatusTab-CvArOQfz.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-state.ts","../../../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, For, Show, type Component } from \"solid-js\"\nimport { getChildSessions, getSessionInfo, getThreadTotals } from \"../../stores/sessions\"\nimport { formatTokenTotal } from \"../../lib/formatters\"\nimport { useI18n } from \"../../lib/i18n\"\n\ninterface ContextUsagePanelProps {\n instanceId: string\n sessionId: string\n class?: string\n summary?: boolean\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 info = createMemo(() => getSessionInfo(props.instanceId, props.sessionId))\n const hasChildren = createMemo(() => getChildSessions(props.instanceId, props.sessionId).length > 0)\n const threadTotals = createMemo(() => getThreadTotals(props.instanceId, props.sessionId))\n const tokenMetric = (label: string, value = 0) => ({ label: t(`contextUsagePanel.labels.${label}`), value: formatTokenTotal(value), full: String(value) })\n const costMetric = (label: string, value: string) => ({ label: t(`contextUsagePanel.labels.${label}`), value, full: value })\n const sessionMetrics = createMemo(() => {\n const session = info()\n const cost = session?.cost ?? 0\n return [\n tokenMetric(\"input\", session?.inputTokens),\n tokenMetric(\"output\", session?.outputTokens),\n costMetric(\"cost\", session?.isSubscriptionModel ? t(\"contextUsagePanel.included\") : `$${(cost > 0 ? cost : 0).toFixed(2)}`),\n ]\n })\n const totalMetrics = createMemo(() => [\n tokenMetric(\"totalInput\", threadTotals()?.inputTokens),\n tokenMetric(\"totalOutput\", threadTotals()?.outputTokens),\n costMetric(\"totalCost\", `$${(threadTotals()?.cost ?? 0).toFixed(2)}`),\n tokenMetric(\"totalReasoning\", threadTotals()?.reasoningTokens),\n ])\n const summaryLabel = createMemo(() => sessionMetrics().map(metric => `${metric.label}: ${metric.full}`).join(\" · \"))\n const renderMetrics = (metrics: ReturnType<typeof sessionMetrics>) => (\n <For each={metrics}>\n {(metric) => (\n <span class={props.summary ? \"status-token-metric\" : chipClass} title={`${metric.label}: ${metric.full}`}>\n <span class={props.summary ? \"status-token-label\" : chipLabelClass}>{metric.label}</span>\n <span class={props.summary ? \"\" : \"font-semibold text-primary\"}>{metric.value}</span>\n </span>\n )}\n </For>\n )\n\n return (\n <Show when={props.summary} fallback={\n <div class={`session-context-panel status-token-groups py-2 text-xs text-primary opacity-50 ${props.class ?? \"\"}`}>\n <div class=\"status-token-group\" data-token-group=\"session\">{renderMetrics(sessionMetrics())}</div>\n <Show when={hasChildren()}>\n <div class=\"status-token-group\" data-token-group=\"thread\">{renderMetrics(totalMetrics())}</div>\n </Show>\n </div>\n }>\n <span class=\"status-token-summary\" title={summaryLabel()} aria-label={summaryLabel()}>{renderMetrics(sessionMetrics())}</span>\n </Show>\n )\n}\n\nexport default ContextUsagePanel\n","import type { ProviderUsageResponse } from \"../../../../server/src/api-types\"\n\nexport interface ProviderUsageSource {\n instanceId: string\n sessionId: string\n directory: string\n providerId: string\n modelId: string\n}\n\nexport const providerUsageKey = (source: ProviderUsageSource) => JSON.stringify([\n source.instanceId, source.sessionId, source.directory, source.providerId, source.modelId,\n])\n\nexport const shouldShowProviderUsageWindow = (label: string, showCreditBalance: boolean) =>\n label !== \"credits_balance\" || showCreditBalance\n\n// The display snapshot is local to the mounted panel. Do not restore a global\n// browser cache before the server can revalidate the native selected account.\nexport function createProviderUsageState(\n fetchUsage: (source: ProviderUsageSource) => Promise<ProviderUsageResponse>,\n publish: (value: ProviderUsageResponse | null | undefined) => void,\n) {\n let current: ProviderUsageSource | null = null\n let generation = 0\n let running: { generation: number; again: boolean; promise: Promise<void> } | null = null\n const invalidate = () => { generation++; running = null; publish(undefined) }\n const refresh = (): Promise<void> => {\n const source = current\n if (!source) return Promise.resolve()\n if (running) {\n running.again = true\n return running.promise\n }\n const request = { generation, again: false, promise: Promise.resolve() }\n running = request\n request.promise = (async () => {\n try {\n do {\n request.again = false\n try {\n const value = await fetchUsage(source)\n if (generation === request.generation) publish(value)\n } catch {\n if (generation === request.generation) publish(null)\n }\n } while (request.again && generation === request.generation)\n } finally {\n if (running === request) running = null\n }\n })()\n return request.promise\n }\n return {\n select(source: ProviderUsageSource | null) {\n if (source && current && providerUsageKey(source) === providerUsageKey(current)) return\n current = source\n invalidate()\n },\n invalidate,\n refresh,\n dispose() { current = null; generation++; running = null },\n }\n}\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\"\nimport { serverEvents } from \"../../lib/server-events\"\nimport { createProviderUsageState, providerUsageKey, shouldShowProviderUsageWindow, type ProviderUsageSource } from \"./provider-usage-state\"\n\ninterface ProviderUsagePanelProps {\n instanceId: string\n sessionId: string\n directory: string\n active: boolean\n providerId: string\n modelId: string\n}\n\nconst REFRESH_INTERVAL_MS = 60_000\n\nconst ProviderUsagePanel: Component<ProviderUsagePanelProps> = (props) => {\n const { t } = useI18n()\n const { preferences } = useConfig()\n const source = createMemo<ProviderUsageSource | null>(() => {\n if (!props.active) return null\n const providerId = props.providerId.trim()\n if (!providerId) return null\n const modelId = props.modelId.trim()\n return { instanceId: props.instanceId, sessionId: props.sessionId, directory: props.directory, providerId, modelId }\n }, null, { equals: (a, b) => a === b || Boolean(a && b && providerUsageKey(a) === providerUsageKey(b)) })\n const [usage, setUsage] = createSignal<ProviderUsageResponse | null | undefined>()\n const state = createProviderUsageState(current => serverApi.fetchProviderUsage(\n current.instanceId, current.sessionId, current.providerId, current.modelId,\n ), value => setUsage(value))\n\n createEffect(() => {\n state.select(source())\n void state.refresh()\n })\n\n const revalidate = () => { state.invalidate(); if (source()) void state.refresh() }\n const unsubscribeEvents = serverEvents.on(\"instance.event\", event => {\n if (event.type !== \"instance.event\" || event.instanceId !== props.instanceId) return\n if (event.event.type === \"provider.updated\") {\n // Catalogue churn is not a credential switch. Revalidate in place only\n // for this native location; account/config/connection boundaries below\n // still revoke the display immediately and fence pending reads.\n if (source() && (!event.event.location || event.event.location.directory === props.directory)) void state.refresh()\n } else if ([\"credential.updated\", \"credential.switched\", \"integration.updated\", \"config.updated\", \"server.connected\"].includes(event.event.type)) revalidate()\n })\n let lastInstanceStatus: string | undefined\n let lastTransportStatus: string | undefined\n const unsubscribeStatus = serverEvents.on(\"instance.eventStatus\", event => {\n if (event.type !== \"instance.eventStatus\" || event.instanceId !== props.instanceId) return\n // Repeated status snapshots are not reconnects. Include the native stream\n // generation so a new connection still fences quotas if its loss was missed.\n const key = JSON.stringify([event.instanceId, event.status, event.generation])\n if (key === lastInstanceStatus) return\n lastInstanceStatus = key\n state.invalidate()\n if (event.status === \"connected\" && source()) void state.refresh()\n })\n const unsubscribeTransport = serverEvents.onTransportStatus(status => {\n if (status === lastTransportStatus) return\n lastTransportStatus = status\n state.invalidate()\n if (status === \"connected\" && source()) void state.refresh()\n })\n const refreshTimer = setInterval(() => { if (source()) void state.refresh() }, REFRESH_INTERVAL_MS)\n onCleanup(() => {\n state.dispose()\n clearInterval(refreshTimer)\n unsubscribeEvents()\n unsubscribeStatus()\n unsubscribeTransport()\n })\n\n const entries = createMemo(() => Object.entries(usage()?.windows ?? {}))\n const displayedLabels = createMemo(() =>\n entries().map(([label]) => label).filter(label => shouldShowProviderUsageWindow(label, preferences().showProviderUsageCreditBalance)),\n )\n\n const windowLabel = (label: string): string => {\n // Model-scoped limits arrive as `window:Model`, e.g. `7d:Opus`.\n const scope = label.indexOf(\":\")\n if (scope > 0) return `${windowLabel(label.slice(0, scope))} · ${label.slice(scope + 1)}`\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 : data().unavailableReason === \"openai-token-sharing-unsupported\"\n ? \"providerUsage.openaiTokenSharingUnsupported\"\n : \"providerUsage.unavailable\",\n )}\n </div>\n }\n >\n <div class=\"space-y-2\">\n <For each={displayedLabels()}>\n {(label) => {\n // Retain this row's value until For reconciles a removed\n // label; its effects must not read an absent window.\n const window = createMemo<ProviderUsageWindow>(previous => usage()?.windows[label] ?? previous, usage()!.windows[label])\n return (\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-inset)\" }}>\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 }}\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-inset 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 <Show when={!props.expanded && props.section.renderSummary}>\n {(summary) => <span class=\"right-panel-section-summary\">{summary()()}</span>}\n </Show>\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({ category: \"sessions\", 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 <Show when={props.activeSession()} fallback={<div class=\"right-panel-empty-text\">{props.t(\"providerUsage.noSession\")}</div>}>\n {(session) => (\n <div class=\"border border-base bg-surface-secondary px-3 py-2\">\n <ProviderUsagePanel instanceId={props.instanceId} sessionId={session().id} directory={session().location.directory}\n providerId={session().model.providerId} modelId={session().model.modelId}\n active={props.isActive() && props.expandedItems().includes(\"provider-usage\")} />\n </div>\n )}\n </Show>\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 renderTokensSummary: () => (\n <Show when={props.activeSession()?.id}>\n <ContextUsagePanel instanceId={props.instanceId} sessionId={props.activeSession()!.id} summary />\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","chipClass","chipLabelClass","ContextUsagePanel","t","useI18n","info","getSessionInfo","instanceId","sessionId","hasChildren","getChildSessions","length","threadTotals","getThreadTotals","tokenMetric","label","formatTokenTotal","full","String","costMetric","sessionMetrics","session","cost","inputTokens","outputTokens","isSubscriptionModel","toFixed","totalMetrics","reasoningTokens","summaryLabel","map","metric","join","renderMetrics","metrics","For","each","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$insert","_$effect","_p$","_v$","summary","_v$2","_v$3","_v$4","_$className","_$setAttribute","a","o","undefined","fallback","_el$5","_tmpl$4","_el$6","_el$7","_tmpl$3","class","_el$4","_tmpl$2","_v$5","_v$6","providerUsageKey","source","shouldShowProviderUsageWindow","showCreditBalance","createProviderUsageState","fetchUsage","publish","current","generation","running","invalidate","request","REFRESH_INTERVAL_MS","ProviderUsagePanel","preferences","useConfig","active","providerId","trim","modelId","directory","equals","b","Boolean","usage","setUsage","state","serverApi","fetchProviderUsage","select","refresh","revalidate","unsubscribeEvents","serverEvents","event","location","lastInstanceStatus","lastTransportStatus","unsubscribeStatus","JSON","stringify","status","unsubscribeTransport","onTransportStatus","refreshTimer","setInterval","dispose","clearInterval","entries","windows","displayedLabels","filter","showProviderUsageCreditBalance","windowLabel","scope","indexOf","slice","weekly","daily","monthly","credits","credits_balance","billing_cycle","premium","chat","completions","displayValue","window","valueLabel","usedPercent","percent","Math","round","resetLabel","resetAt","date","Date","Number","isFinite","getTime","time","toLocaleString","dateStyle","timeStyle","barColor","data","supported","configured","ok","unavailableReason","previous","_tmpl$6","_el$8","_el$9","_el$0","_el$1","reset","_tmpl$7","_el$13","_tmpl$8","_el$10","_tmpl$5","_el$11","max","min","_$setStyleProperty","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","workspaceID","requestLocationOptions","shellId","cursor","createShellStore","apiForInstance","states","setStates","requests","setState","stateKey","readState","untrack","load","pending","eventDirectory","_a","_c","_b","tracked","trackedInstanceId","matching","sameDirectory","left","right","normalize","normalized","shellStore","getRootClient","ShellOutputDialog","setOutput","outputHtml","setOutputHtml","ansiEnabled","setAnsiEnabled","truncated","setTruncated","loading","setLoading","shell","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","expanded","renderSummary","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","showConfirmDialog","title","confirmLabel","remove","showToastNotification","category","message","variant","renderBackgroundProcesses","failed","_el$12","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$20","_el$21","_el$24","_el$25","_el$26","_el$27","pid","_el$22","exit","_el$23","cwd","$$click","TerminalSquare","Trash2","renderProviderUsage","_el$28","_tmpl$9","_el$29","_tmpl$0","model","isActive","allStatusSections","createCoreStatusSectionManifest","renderTokens","renderTokensSummary","renderMcpStatus","InstanceServiceStatus","initialInstance","sections","showSectionHeadings","renderPluginStatus","pluginsActive","statusSections","extraSections","applyRightPanelItemCustomization","customization","statusSectionOrder","hiddenStatusSectionIds","moveSection","sourceId","targetId","ids","sourceIndex","targetIndex","moved","splice","onCustomizationChange","handleSectionDragEnd","draggable","droppable","_el$30","_tmpl$1","onExpandedItemsChange","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","SortableProvider"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|