@bitkyc08/opencodex 2.67.0 → 2.68.0-preview.20260927
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/bin/ocx.mjs +3 -0
- package/gui/dist/assets/App-B5-cAEd2.js +51 -0
- package/gui/dist/assets/App-DCBismRi.css +1 -0
- package/gui/dist/assets/Tray-DFnMiyD0.js +1 -0
- package/gui/dist/assets/{index-DtNmX7hW.css → index-BDUBS8PW.css} +1 -1
- package/gui/dist/assets/index-BcXblvem.js +86 -0
- package/gui/dist/assets/quota-summary-i84eOU3o.js +1 -0
- package/gui/dist/index.html +21 -2
- package/package.json +1 -1
- package/src/adapters/anthropic-image-guard.ts +13 -1
- package/src/adapters/anthropic-image-normalize.ts +3 -2
- package/src/adapters/anthropic-output-schema.ts +36 -0
- package/src/adapters/anthropic.ts +10 -2
- package/src/adapters/base.ts +7 -0
- package/src/adapters/codebuddy/live-models.ts +180 -0
- package/src/adapters/coding-agent/protocol.ts +91 -12
- package/src/adapters/coding-agent/turn.ts +32 -27
- package/src/adapters/devin/cloud-direct/index.ts +1 -0
- package/src/adapters/devin/cloud-direct/stated-reset-retry.ts +18 -4
- package/src/adapters/devin.ts +9 -6
- package/src/adapters/google-http.ts +4 -4
- package/src/adapters/google.ts +93 -3
- package/src/adapters/kiro/adapter.ts +6 -2
- package/src/adapters/kiro/stream.ts +12 -2
- package/src/adapters/kiro/usage.ts +3 -1
- package/src/adapters/kiro-errors.ts +11 -1
- package/src/adapters/kiro-events.ts +27 -1
- package/src/adapters/kiro-refusal.ts +30 -0
- package/src/adapters/kiro-retry.ts +71 -31
- package/src/adapters/openai-chat/deepseek-artifact-schema.ts +45 -0
- package/src/adapters/openai-chat/messages.ts +31 -4
- package/src/adapters/openai-chat/serialized-tool-call-content.ts +52 -7
- package/src/adapters/openai-chat/tool-call-id-remint.ts +65 -0
- package/src/adapters/openai-chat/tool-schema.ts +6 -2
- package/src/adapters/openai-chat.ts +2 -2
- package/src/adapters/openai-responses/muse-tool-choice.ts +31 -0
- package/src/adapters/openai-responses/passthrough.ts +9 -3
- package/src/adapters/opencode-go-additional-tools.ts +19 -10
- package/src/adapters/physical-send.ts +10 -3
- package/src/adapters/registry.ts +2 -1
- package/src/adapters/responses-tool-schema.ts +31 -3
- package/src/adapters/run-turn-queue.ts +63 -23
- package/src/adapters/unique-tool-call-ids.ts +63 -0
- package/src/adapters/xai-web-search.ts +32 -2
- package/src/bridge/sse.ts +14 -2
- package/src/chat/inbound.ts +20 -6
- package/src/claude/agents-inject.ts +4 -0
- package/src/claude/desktop-3p.ts +53 -13
- package/src/claude/desktop-profile.ts +41 -4
- package/src/claude/inbound-model-options.ts +14 -2
- package/src/claude/inbound.ts +1 -1
- package/src/claude/intercept/connect-proxy.ts +17 -1
- package/src/claude/intercept/local-ca.ts +7 -1
- package/src/claude/message-threads.ts +28 -0
- package/src/cli/account-api.ts +13 -0
- package/src/cli/account-auth.ts +49 -2
- package/src/cli/account-extended.ts +4 -2
- package/src/cli/account.ts +4 -2
- package/src/cli/capabilities.ts +17 -0
- package/src/cli/claude.ts +3 -1
- package/src/cli/dispatch.ts +62 -5
- package/src/cli/index.ts +84 -79
- package/src/cli/minimax.ts +4 -2
- package/src/cli/opencode.ts +6 -1
- package/src/cli/restart-handoff.ts +110 -0
- package/src/cli/status.ts +51 -0
- package/src/client/connect.ts +34 -15
- package/src/client/link-ingress.ts +102 -0
- package/src/client/link-join.ts +37 -16
- package/src/client/link-relay.ts +228 -45
- package/src/client/link-state.ts +54 -0
- package/src/client/link-status.ts +39 -0
- package/src/client/link-teardown.ts +2 -2
- package/src/client/link-tunnel.ts +615 -86
- package/src/client/machine-api.ts +10 -4
- package/src/client/machine-listener.ts +57 -10
- package/src/client/runtime.ts +210 -35
- package/src/clients/config-export/constants.ts +1 -12
- package/src/clients/config-export/contracts.ts +2 -0
- package/src/clients/config-export/model-metadata.ts +9 -3
- package/src/clients/config-export/omp.ts +1 -1
- package/src/clients/config-export/zcode-store.ts +2 -2
- package/src/clients/config-export.ts +36 -3
- package/src/codex/app-server-processes.ts +32 -0
- package/src/codex/app-server-restart-service.ts +20 -3
- package/src/codex/catalog/access-programs.ts +50 -0
- package/src/codex/catalog/build-entries.ts +13 -0
- package/src/codex/catalog/derive-entry.ts +1 -0
- package/src/codex/catalog/model-hints.ts +11 -0
- package/src/codex/catalog/parsing.ts +6 -2
- package/src/codex/catalog/provider-models.ts +81 -0
- package/src/codex/catalog/retained-sync.ts +3 -0
- package/src/codex/codex-write-lock.ts +2 -2
- package/src/codex/convergence.ts +2 -0
- package/src/codex/desired-state.ts +14 -4
- package/src/codex/home.ts +21 -3
- package/src/codex/inject/restore.ts +17 -0
- package/src/codex/inject/routing-classify.ts +3 -2
- package/src/codex/inject-coordination.ts +4 -1
- package/src/codex/inject.ts +8 -1
- package/src/codex/journal.ts +6 -2
- package/src/codex/management-convergence.ts +9 -0
- package/src/codex/model-entitlements.ts +28 -5
- package/src/codex/routing/idle-window.ts +58 -0
- package/src/codex/routing-drift.ts +134 -0
- package/src/codex/routing-healer.ts +419 -0
- package/src/codex/routing.ts +10 -0
- package/src/codex/runtime.ts +188 -57
- package/src/codex/sibling-handoff.ts +71 -0
- package/src/codex/sibling-start.ts +139 -0
- package/src/codex/sync.ts +5 -3
- package/src/combos/failover.ts +32 -5
- package/src/combos/request.ts +11 -3
- package/src/combos/reset-window.ts +10 -5
- package/src/combos/resolve.ts +36 -6
- package/src/config/diagnostics.ts +2 -1
- package/src/config/load-degrade.ts +2 -0
- package/src/config/paths.ts +7 -1
- package/src/config/process-state.ts +10 -1
- package/src/config/schema/compaction-recovery.ts +15 -0
- package/src/config/schema/config-schema.ts +2 -0
- package/src/config/schema/leaf-validators.ts +9 -3
- package/src/generated/compatibility-version.json +360 -204
- package/src/images/loop.ts +47 -32
- package/src/integrations/catalog-refresh.ts +4 -0
- package/src/integrations/omp-yaml-source.ts +1 -0
- package/src/lib/claude-request-projection.ts +101 -0
- package/src/lib/local-account-switch-capability.ts +48 -0
- package/src/lib/local-upstream.ts +146 -0
- package/src/lib/package-tree-integrity.ts +25 -3
- package/src/lib/package-tree-retarget.ts +130 -0
- package/src/lib/process-control.ts +4 -1
- package/src/lib/system-restart-contract.ts +106 -0
- package/src/lib/upstream-retry.ts +57 -1
- package/src/link/ports.ts +9 -0
- package/src/link/ssh-argv.ts +16 -0
- package/src/link/ssh-runner.ts +70 -2
- package/src/link/tunnel-state.ts +58 -9
- package/src/oauth/account-quota-rank.ts +29 -18
- package/src/oauth/generic-account-failover.ts +179 -22
- package/src/oauth/index.ts +17 -4
- package/src/oauth/kiro-account-load.ts +107 -0
- package/src/oauth/kiro-device-login.ts +312 -0
- package/src/oauth/kiro-terminal-failover.ts +28 -0
- package/src/oauth/login-flow-state.ts +7 -1
- package/src/oauth/pool-settings-capability.ts +23 -14
- package/src/oauth/store.ts +56 -3
- package/src/oauth/types.ts +4 -0
- package/src/plugins/loader.ts +350 -0
- package/src/plugins/upstream-hooks.ts +119 -0
- package/src/protocols/encoders/adapter-events.ts +9 -2
- package/src/providers/account-quota-disk.ts +42 -4
- package/src/providers/codebuddy-models.ts +6 -2
- package/src/providers/command-code-efforts.ts +33 -10
- package/src/providers/kiro-account-state-disk.ts +44 -0
- package/src/providers/kiro-model-catalog.ts +162 -0
- package/src/providers/kiro-models.ts +5 -4
- package/src/providers/kiro-quota-metrics.ts +35 -0
- package/src/providers/kiro-usage.ts +118 -14
- package/src/providers/quota/account-cache.ts +43 -7
- package/src/providers/quota/antigravity.ts +8 -3
- package/src/providers/quota/kiro-account-probe.ts +12 -0
- package/src/providers/quota/vendor-probes-key.ts +31 -26
- package/src/providers/quota/vendor-probes-oauth.ts +16 -7
- package/src/providers/quota-types.ts +14 -0
- package/src/providers/quota.ts +21 -21
- package/src/providers/registry/entries-extended.ts +5 -3
- package/src/providers/request-pacing.ts +410 -12
- package/src/remote-control/workspace-codex-runtime.ts +4 -3
- package/src/responses/citation-markers.ts +132 -65
- package/src/responses/hosted-tool-policy.ts +14 -3
- package/src/responses/parser-content.ts +3 -2
- package/src/responses/parser.ts +4 -1
- package/src/responses/schema.ts +4 -0
- package/src/responses/visualization-directives.ts +182 -0
- package/src/server/chat-native-sse.ts +24 -12
- package/src/server/chat-native.ts +137 -68
- package/src/server/claude-messages.ts +147 -12
- package/src/server/index/link-listener.ts +7 -0
- package/src/server/index/optional-listeners.ts +4 -1
- package/src/server/index/package-tree-guard.ts +35 -16
- package/src/server/index/serve-options.ts +4 -2
- package/src/server/index/startup-warnings.ts +6 -0
- package/src/server/index.ts +7 -7
- package/src/server/inference/client-encoder-delivery.ts +3 -0
- package/src/server/inference/context.ts +30 -2
- package/src/server/local-account-switch-auth.ts +79 -0
- package/src/server/management/agent-settings-routes.ts +11 -3
- package/src/server/management/config-routes.ts +28 -11
- package/src/server/management/context.ts +2 -0
- package/src/server/management/link-routes.ts +123 -39
- package/src/server/management/logs-usage-routes.ts +9 -42
- package/src/server/management/model-rows.ts +1 -0
- package/src/server/management/oauth-account-routes.ts +67 -12
- package/src/server/management/route-registry.ts +5 -5
- package/src/server/management/sibling-guard.ts +60 -0
- package/src/server/management/storage-log-guard-routes.ts +72 -6
- package/src/server/management/system-restart.ts +92 -135
- package/src/server/management/system-routes.ts +1 -1
- package/src/server/management-api.ts +31 -3
- package/src/server/management-auth.ts +3 -0
- package/src/server/port-reclaim.ts +111 -1
- package/src/server/proxy-liveness.ts +16 -0
- package/src/server/relay.ts +16 -15
- package/src/server/request-log-filter.ts +28 -27
- package/src/server/request-log.ts +7 -3
- package/src/server/request-metrics.ts +28 -0
- package/src/server/responses/adapter-continuation.ts +151 -21
- package/src/server/responses/adapter-delivery.ts +21 -7
- package/src/server/responses/adapter-dispatch.ts +239 -51
- package/src/server/responses/codex-ws-pool.ts +5 -4
- package/src/server/responses/codex-ws-request.ts +4 -1
- package/src/server/responses/compact.ts +8 -4
- package/src/server/responses/compaction-recovery-policy.ts +116 -0
- package/src/server/responses/compaction-recovery.ts +330 -0
- package/src/server/responses/core-combo-failure.ts +1 -0
- package/src/server/responses/core-combo.ts +5 -1
- package/src/server/responses/core-lifetime.ts +22 -0
- package/src/server/responses/core-options.ts +16 -1
- package/src/server/responses/core.ts +14 -4
- package/src/server/responses/empty-completion-guard.ts +2 -0
- package/src/server/responses/fetch-helpers.ts +82 -31
- package/src/server/responses/passthrough-delivery.ts +3 -2
- package/src/server/responses/passthrough-dispatch.ts +12 -2
- package/src/server/responses/passthrough-execution.ts +2 -2
- package/src/server/responses/request-send-budget.ts +21 -5
- package/src/server/responses/request-transport.ts +116 -18
- package/src/server/responses/reset-replay.ts +32 -0
- package/src/server/responses/run-turn-execution.ts +136 -19
- package/src/server/responses/sidecar-execution.ts +41 -8
- package/src/server/responses/terminal-guard.ts +2 -0
- package/src/server/responses/ws-upstream.ts +44 -4
- package/src/server/restart-replacement.ts +382 -0
- package/src/server/startup-health-cache.ts +23 -4
- package/src/server/stop-teardown.ts +35 -1
- package/src/server/system-env.ts +3 -0
- package/src/service/windows-taskxml.ts +11 -7
- package/src/service/windows-wrapper-exit.ts +8 -0
- package/src/stall-timeout.ts +35 -10
- package/src/storage/policy-job.ts +4 -0
- package/src/storage/scanner.ts +177 -29
- package/src/storage/storage-mutation-coordinator.ts +17 -0
- package/src/tray/windows-tray.ps1 +50 -23
- package/src/types/config.ts +4 -0
- package/src/types/provider.ts +5 -1
- package/src/types/request.ts +13 -2
- package/src/update/index.ts +3 -1
- package/src/update/job.ts +6 -2
- package/src/update/mise-launcher-target.ts +100 -0
- package/src/update/worker-launch.ts +46 -0
- package/src/usage/log.ts +2 -0
- package/src/web-search/loop.ts +5 -2
- package/gui/dist/assets/App-BJsT8Icc.css +0 -1
- package/gui/dist/assets/App-D3pNGiN4.js +0 -51
- package/gui/dist/assets/Tray-yb05wCjb.js +0 -1
- package/gui/dist/assets/index-CouvvtMV.js +0 -86
- package/gui/dist/assets/tray-data-CYGdjCJ7.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as e,T as t,n,v as r}from"./index-CouvvtMV.js";import{S as i,a,c as o,d as s,h as c,i as l,l as u,m as d,n as f,o as p,r as m,s as h,t as g,w as _}from"./tray-data-CYGdjCJ7.js";var v=e(t(),1),y=n(),b=e=>e?.usageIncomplete||e?.historyTruncated||e?.entriesTruncated;function x(){let{t:e,locale:t}=r(),[n,x]=(0,v.useState)(null),[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)([null,null]),[E,D]=(0,v.useState)(!1),[O,k]=(0,v.useState)([]),[A,j]=(0,v.useState)(!1),[M,N]=(0,v.useState)(null),[P,F]=(0,v.useState)(!1),[I,L]=(0,v.useState)(null),[R,z]=(0,v.useState)(!1),[B,V]=(0,v.useState)(0),H=()=>V(e=>e+1);(0,v.useEffect)(()=>{document.documentElement.classList.add(`tray-document`);let e=null,t=!1,n=!0,r=!1,i=()=>!document.hidden&&(window.__OPENCODEX_TRAY_VISIBLE__??n),o=async()=>{if(!i()||t)return;t=!0,z(!0);let n=!1,s=new AbortController;e=s;let l=e=>g(e,s.signal),u=()=>!r&&!s.signal.aborted;try{let e=(async()=>{try{let e=h(await l(`/api/config`)),t=await Promise.all(e.map(async e=>{if(!e.path)return{name:e.name,accounts:[]};try{let t=await l(e.path);if(e.name===`openai`)try{t.activeCodexAccountId=(await l(`/api/codex-auth/active`)).activeCodexAccountId??`__main__`}catch{}return{name:e.name,accounts:a(t)}}catch{return{name:e.name,accounts:[],unavailable:!0}}}));u()&&(k(t),j(!1),n=!0)}catch{u()&&(k([]),j(!0))}})(),t=(async()=>{let e;try{if(e=(await l(`/api/companion/settings`)).settings,!e||!Array.isArray(e.hiddenProviders)||!(e.models===null||Array.isArray(e.models)))throw Error(`Invalid settings`);u()&&(x(e),C(!1))}catch{u()&&C(!0);return}let t=Promise.allSettled([`/api/usage?range=today`,`/api/usage?range=30d`].map(async t=>{let n=p(await l(t));return f(n,e)})).then(e=>{u()&&(n||=e.some(e=>e.status===`fulfilled`),T(e.map(e=>e.status===`fulfilled`?e.value:null)),D(e.some(e=>e.status===`rejected`)))}),r=(async()=>{if(!e.showChart)return;let t=c(e);try{let n=await l(`/api/usage/timeline?${t}`);u()&&(N(d(n,e)),F(!1))}catch{u()&&(N(null),F(!0))}})();await Promise.allSettled([t,r])})();await Promise.allSettled([e,t])}finally{t=!1,u()&&(z(!1),n&&L(Date.now())),!r&&s.signal.aborted&&i()&&o()}},s=()=>{i()?o():e?.abort()},l=()=>{n=!1,s()},u=()=>{n=!0,s()},m=e=>{let t=e.detail;typeof t==`boolean`&&(window.__OPENCODEX_TRAY_VISIBLE__=t),s()};o();let _=setInterval(()=>void o(),6e4);return document.addEventListener(`visibilitychange`,s),window.addEventListener(`blur`,l),window.addEventListener(`focus`,u),window.addEventListener(`opencodex:tray-visibility`,m),()=>{r=!0,e?.abort(),clearInterval(_),document.documentElement.classList.remove(`tray-document`),document.removeEventListener(`visibilitychange`,s),window.removeEventListener(`blur`,l),window.removeEventListener(`focus`,u),window.removeEventListener(`opencodex:tray-visibility`,m)}},[B]);let U=e=>m(e)?i(e,t):`—`,W=r=>{let i=r?l(r):void 0,a=i?.cacheReadInputTokens??i?.cachedInputTokens,o=m(a)&&m(i?.inputTokens)&&i.inputTokens>0?`${Math.round(a/i.inputTokens*100)}%`:`—`;return(0,y.jsxs)(`dl`,{children:[(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`dt`,{children:e(`usage.card.totalTokens`)}),(0,y.jsx)(`dd`,{children:U(i?.totalTokens)})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`dt`,{children:e(`tray.input`)}),(0,y.jsxs)(`dd`,{children:[U(i?.inputTokens),` `,(0,y.jsx)(`small`,{title:e(`usage.card.cachedTokens`),children:e(`tray.cached`,{percent:o})})]})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`dt`,{children:e(`tray.output`)}),(0,y.jsx)(`dd`,{children:U(i?.outputTokens)})]}),n?.showCost&&(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`dt`,{title:e(`logs.metric.estimatedCostTitle`),children:e(`tray.cost`)}),(0,y.jsx)(`dd`,{title:m(i?.requests)&&m(i?.pricedRequests)&&i.pricedRequests<i.requests?e(`usage.cost.unpricedNote`,{count:i.requests-i.pricedRequests}):e(`logs.metric.estimatedCostTitle`),children:m(i?.estimatedCostUsd)?new Intl.NumberFormat(t,{style:`currency`,currency:`USD`,maximumFractionDigits:2}).format(i.estimatedCostUsd)+(m(i.pricedRequests)&&m(i.requests)&&i.pricedRequests<i.requests?`*`:``):`—`})]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`dt`,{children:e(`usage.card.requests`)}),(0,y.jsx)(`dd`,{children:U(i?.requests)})]}),m(i?.requests)&&i.requests>0&&m(i.measuredRequests)&&i.measuredRequests<i.requests&&(0,y.jsxs)(`div`,{className:`tray-coverage`,title:e(`usage.coverage.note`),children:[(0,y.jsx)(`dt`,{children:e(`usage.card.coverage`)}),(0,y.jsxs)(`dd`,{children:[Math.round(i.measuredRequests/i.requests*100),`%`]})]})]})},G=new Set(n?.hiddenProviders??[]);return(0,y.jsxs)(`main`,{className:`tray-page`,children:[(0,y.jsxs)(`header`,{children:[(0,y.jsx)(`strong`,{children:`OpenCodex`}),(0,y.jsx)(`a`,{href:`/?desktop=open#/usage`,"aria-label":e(`sub.settings`),title:e(`sub.settings`),children:`⚙`})]}),S&&(0,y.jsxs)(`p`,{role:`alert`,className:`tray-error`,children:[e(`usage.companion.settingsUnavailable`),` `,(0,y.jsx)(`button`,{onClick:H,children:e(`common.retry`)})]}),!n&&!S&&(0,y.jsx)(`p`,{role:`status`,children:e(`common.loading`)}),n&&(0,y.jsxs)(`section`,{className:`tray-totals`,children:[n.showToday&&(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`h2`,{children:[e(`tray.today`),b(w[0])&&(0,y.jsx)(`span`,{title:e(`usage.incomplete`),"aria-label":e(`usage.incomplete`),children:` *`})]}),W(w[0]?.summary)]}),(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`h2`,{children:[e(`usage.range.30d`),b(w[1])&&(0,y.jsx)(`span`,{title:e(`usage.incomplete`),"aria-label":e(`usage.incomplete`),children:` *`})]}),W(w[1]?.summary)]})]}),E&&(0,y.jsxs)(`p`,{role:`alert`,className:`tray-error`,children:[e(`usage.loadError`),` `,(0,y.jsx)(`button`,{onClick:H,children:e(`common.retry`)})]}),n?.showChart&&(0,y.jsx)(`section`,{className:`tray-chart`,children:(0,y.jsx)(s,{timeline:M,chartStyle:n.chartStyle,hours:n.chartHours,loading:!M&&!P,error:P?e(`usage.companion.timelineUnavailable`):null,onRetry:H,locale:t,t:e})}),n?.showModels&&!!w[0]?.models.length&&(0,y.jsx)(`section`,{className:`tray-models`,"aria-label":e(`usage.section.models`),children:w[0].models.map(t=>(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`span`,{title:`${t.provider}/${t.model}`,children:t.model}),(0,y.jsxs)(`span`,{className:`tray-model-metrics`,children:[(0,y.jsx)(`span`,{title:e(`usage.card.requests`),children:e(`pws.dashboard.requests`,{count:U(t.requests)})}),(0,y.jsx)(`span`,{title:e(`usage.card.totalTokens`),children:U(l(t).totalTokens)})]})]},`${t.provider}/${t.model}`))}),(n?.showAccounts??!0)&&(0,y.jsxs)(`section`,{className:`tray-providers`,"aria-label":e(`usage.section.providers`),children:[A&&(0,y.jsxs)(`p`,{role:`alert`,className:`tray-error`,children:[e(`startup.tray.unavailable`),` `,(0,y.jsx)(`button`,{onClick:H,children:e(`common.retry`)})]}),O.filter(e=>!G.has(e.name)).map(n=>(0,y.jsxs)(`div`,{className:`tray-provider`,children:[(0,y.jsx)(`h2`,{children:_(n.name,e)}),!n.accounts.length&&(0,y.jsx)(`div`,{className:`tray-missing`,children:e(n.unavailable?`startup.tray.unavailable`:`pws.dashboard.noQuota`)}),n.accounts.map(n=>(0,y.jsxs)(`div`,{className:`tray-account`,children:[(0,y.jsxs)(`div`,{className:`tray-account-name`,title:n.label,children:[n.label,(0,y.jsxs)(`span`,{className:`tray-account-meta`,children:[n.plan,n.active&&(0,y.jsx)(`span`,{title:e(`prov.activeBadge`),"aria-label":e(`prov.activeBadge`),children:` ●`})]})]}),n.email&&n.email!==n.label&&(0,y.jsx)(`div`,{className:`tray-account-email`,children:n.email}),!o(n.quota).length&&(0,y.jsx)(`div`,{className:`tray-missing`,children:e(n.unavailable?`startup.tray.unavailable`:`pws.dashboard.noQuota`)}),o(n.quota).map(n=>{let r=`key`in n?e(n.key):n.label,i=u(n.reset,t),a=m(n.percent)?Math.min(100,n.percent):null;return(0,y.jsxs)(`div`,{className:`tray-quota`,children:[(0,y.jsx)(`span`,{title:r,children:r}),(0,y.jsx)(`span`,{children:a===null?`—`:`${Math.round(a)}%`}),(0,y.jsx)(`span`,{className:`tray-bar`,role:a===null?`img`:`meter`,"aria-label":a===null?`${r}: ${e(`pws.dashboard.noQuota`)}`:r,"aria-valuemin":a===null?void 0:0,"aria-valuemax":a===null?void 0:100,"aria-valuenow":a??void 0,"aria-valuetext":a===null?void 0:`${Math.round(a)}%`,children:(0,y.jsx)(`i`,{style:{width:a===null?`0%`:`${a}%`}})}),(0,y.jsx)(`time`,{title:i.exact,children:i.text})]},n.id)})]},n.id))]},n.name))]}),(0,y.jsxs)(`div`,{className:`tray-refresh`,children:[(0,y.jsx)(`button`,{type:`button`,onClick:H,disabled:R,children:e(`startup.refresh`)}),(0,y.jsx)(`span`,{role:`status`,children:e(`tray.updated`,{time:I===null?`—`:new Date(I).toLocaleTimeString(t,{hour:`2-digit`,minute:`2-digit`})})})]}),(0,y.jsx)(`footer`,{children:(0,y.jsxs)(`a`,{href:`/?desktop=open#/usage`,children:[e(`nav.dashboard`),` `,(0,y.jsx)(`span`,{"aria-hidden":`true`,children:`↗`})]})})]})}export{x as default};
|