import { Component, For, Show, createMemo } from "solid-js" import type { Instance } from "../types/instance" import { useOptionalInstanceMetadataContext } from "../lib/contexts/instance-metadata-context" import InstanceServiceStatus from "./instance-service-status" import { useI18n } from "../lib/i18n" interface InstanceInfoProps { instance: Instance compact?: boolean } const InstanceInfo: Component = (props) => { const { t } = useI18n() const metadataContext = useOptionalInstanceMetadataContext() const isLoadingMetadata = metadataContext?.isLoading ?? (() => false) const instanceAccessor = metadataContext?.instance ?? (() => props.instance) const metadataAccessor = metadataContext?.metadata ?? (() => props.instance.metadata) const currentInstance = () => instanceAccessor() const metadata = () => metadataAccessor() const binaryVersion = () => currentInstance().binaryVersion || metadata()?.version const environmentVariables = () => currentInstance().environmentVariables const environmentEntries = createMemo(() => { const env = environmentVariables() return env ? Object.entries(env) : [] }) return (

{t("instanceInfo.title")}

{t("instanceInfo.labels.folder")}
{currentInstance().folder}
{(project) => ( <>
{t("instanceInfo.labels.project")}
{project().id}
{t("instanceInfo.labels.versionControl")}
{project().vcs}
)}
{t("instanceInfo.labels.opencodeVersion")}
v{binaryVersion()}
{t("instanceInfo.labels.binaryPath")}
{currentInstance().binaryPath}
0}>
{t("instanceInfo.labels.environmentVariables", { count: environmentEntries().length })}
{([key, value]) => (
{key} {value}
)}
{t("instanceInfo.loading")}
{t("instanceInfo.server.title")}
{t("instanceInfo.server.port")} {currentInstance().port}
{t("instanceInfo.server.pid")} {currentInstance().pid}
{t("instanceInfo.server.status")}
{currentInstance().status}
) } export default InstanceInfo