@nextclaw/ui 0.20.1 → 0.20.3
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/CHANGELOG.md +30 -0
- package/dist/assets/{api-BBFMpRGl.js → api-iMkU_o5P.js} +3 -3
- package/dist/assets/{appearance-settings-page-C1Erayzl.js → appearance-settings-page-CU5k4b-M.js} +1 -1
- package/dist/assets/{book-open-BhTIpBKg.js → book-open-nD8gdMhA.js} +1 -1
- package/dist/assets/channels-list-page-Drlt62kY.js +8 -0
- package/dist/assets/{config-split-page-By7p-4X-.js → config-split-page-BtJZp1E5.js} +1 -1
- package/dist/assets/{confirm-dialog-xpl1Yl7r.js → confirm-dialog-k2-Jq_x3.js} +1 -1
- package/dist/assets/{createLucideIcon-B_8khHn8.js → createLucideIcon-DxlwKLr-.js} +1 -1
- package/dist/assets/{desktop-update-config-CGFfa7-Z.js → desktop-update-config-BiZmy7FC.js} +1 -1
- package/dist/assets/{dist-CXN62DSs.js → dist-Cy_e4kNb.js} +1 -1
- package/dist/assets/{dist-DdE-kCbi.js → dist-m08DUswB.js} +1 -1
- package/dist/assets/doc-browser-CPsPHh12.js +1 -0
- package/dist/assets/{doc-browser-context-B8NCuMv5.js → doc-browser-context-jiy-O4F8.js} +1 -1
- package/dist/assets/doc-browser-npOvWtgf.js +1 -0
- package/dist/assets/{extensions-CMctxyTf.js → extensions-CIb17__o.js} +1 -1
- package/dist/assets/{form-actions-BFgTdxqI.js → form-actions-DGf5zUg_.js} +1 -1
- package/dist/assets/index-C86hxgv5.css +1 -0
- package/dist/assets/index-CYBXR7zN.js +109 -0
- package/dist/assets/loader-circle-BlLuRFVW.js +1 -0
- package/dist/assets/mcp-marketplace-page-B12JNh7Q.js +1 -0
- package/dist/assets/mcp-marketplace-page-kLWW6kzt.js +9 -0
- package/dist/assets/model-config-page-DSeAjVT_.js +1 -0
- package/dist/assets/{navigation-link-BwWrm4k1.js → navigation-link-DAfwFCj4.js} +1 -1
- package/dist/assets/plus-D4LtWtTk.js +1 -0
- package/dist/assets/privacy-settings-page-tN0Mt15x.js +1 -0
- package/dist/assets/providers-config-page-CgPrXR1u.js +1 -0
- package/dist/assets/react-8iBFECZE.js +8 -0
- package/dist/assets/{refresh-cw-B7NmPJ_Z.js → refresh-cw-D_Eibznw.js} +1 -1
- package/dist/assets/remote-Derr_AQp.js +1 -0
- package/dist/assets/{rotate-cw-B0ajMaHu.js → rotate-cw-QQjmoWuq.js} +1 -1
- package/dist/assets/runtime-config-page-Crq96Jjq.js +1 -0
- package/dist/assets/{save-DWnYYpgQ.js → save-W2xthJJ2.js} +1 -1
- package/dist/assets/{search-D6pX7FC-.js → search-Vih1R2BD.js} +1 -1
- package/dist/assets/{search-config-page-Cx3o_675.js → search-config-page-CtBcL2uc.js} +1 -1
- package/dist/assets/{secrets-config-page-tyFl7Rvt.js → secrets-config-page-Q6XfIj0h.js} +2 -2
- package/dist/assets/security-config-CE9rkQvq.js +1 -0
- package/dist/assets/{select-qEtFTWB5.js → select-lNdozU4o.js} +1 -1
- package/dist/assets/skeleton-B__aTcly.js +1 -0
- package/dist/assets/{tag-chip-vcjAYdV_.js → tag-chip-gdaU9bE7.js} +1 -1
- package/dist/assets/x-CWdWBu_U.js +1 -0
- package/dist/index.html +21 -21
- package/package.json +7 -7
- package/src/app/components/layout/sidebar.tsx +7 -0
- package/src/features/apps/components/app-package-card.tsx +29 -7
- package/src/features/apps/components/app-packages-panel.tsx +4 -0
- package/src/features/chat/components/conversation/chat-conversation-content.tsx +18 -2
- package/src/features/chat/components/conversation/chat-conversation-workspace-section.tsx +6 -0
- package/src/features/chat/components/layout/__tests__/chat-sidebar-read-state.test.tsx +4 -3
- package/src/features/chat/components/layout/__tests__/chat-sidebar-session-area.test.tsx +27 -6
- package/src/features/chat/components/layout/__tests__/chat-sidebar.test.tsx +17 -17
- package/src/features/chat/components/layout/chat-page-shell.tsx +19 -2
- package/src/features/chat/components/layout/chat-sidebar-desktop-layout.tsx +33 -5
- package/src/features/chat/components/layout/chat-sidebar.tsx +31 -21
- package/src/features/chat/features/conversation/hooks/__tests__/use-session-conversation-controller.test.tsx +41 -1
- package/src/features/chat/features/conversation/hooks/use-session-pending-input-actions.ts +22 -4
- package/src/features/chat/features/message/utils/__tests__/chat-message-timeline-compaction.utils.test.ts +2 -2
- package/src/features/chat/features/message/utils/__tests__/chat-message-trigger-details.utils.test.ts +35 -0
- package/src/features/chat/features/message/utils/chat-message-timeline.utils.ts +2 -2
- package/src/features/chat/features/ncp/hooks/__tests__/use-ncp-agent-runtime-queue.test.tsx +50 -0
- package/src/features/chat/features/ncp/hooks/__tests__/use-ncp-session-list-view.test.tsx +35 -6
- package/src/features/chat/features/ncp/hooks/use-ncp-session-list-view.ts +43 -20
- package/src/features/chat/features/ncp/hooks/use-ncp-session-queries.ts +15 -1
- package/src/features/chat/features/session/components/__tests__/chat-sidebar-project-groups.test.tsx +26 -2
- package/src/features/chat/features/session/components/__tests__/chat-sidebar-session-item.test.tsx +55 -27
- package/src/features/chat/features/session/components/chat-sidebar-context-card.tsx +60 -0
- package/src/features/chat/features/session/components/chat-sidebar-project-groups.tsx +95 -54
- package/src/features/chat/features/session/components/chat-sidebar-session-entry.tsx +9 -8
- package/src/features/chat/features/session/components/chat-sidebar-session-item.tsx +141 -95
- package/src/features/chat/features/session/components/chat-sidebar-session-list.tsx +11 -2
- package/src/features/chat/features/session/hooks/use-chat-sidebar-context-counts.ts +40 -0
- package/src/features/chat/features/workspace/components/__tests__/chat-session-token-usage.test.tsx +4 -1
- package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-file-preview.scroll-restoration.test.tsx +182 -0
- package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-file-preview.test.tsx +16 -9
- package/src/features/chat/features/workspace/components/__tests__/session-cron-job-content.test.tsx +78 -0
- package/src/features/chat/features/workspace/components/__tests__/workspace-markdown-outline.test.tsx +128 -0
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-breadcrumbs.tsx +3 -0
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-preview.tsx +65 -2
- package/src/features/chat/features/workspace/components/chat-session-workspace-panel-content.tsx +14 -1
- package/src/features/chat/features/workspace/components/chat-session-workspace-panel.tsx +9 -0
- package/src/features/chat/features/workspace/components/overview/chat-session-token-usage.tsx +17 -0
- package/src/features/chat/features/workspace/components/session-cron-job-content.tsx +269 -75
- package/src/features/chat/features/workspace/components/workspace-markdown-outline.tsx +156 -0
- package/src/features/chat/features/workspace/hooks/use-chat-conversation-workspace-state.ts +5 -0
- package/src/features/cron/components/__tests__/cron-config.test.tsx +16 -5
- package/src/features/cron/components/cron-config.tsx +20 -46
- package/src/features/cron/components/cron-job-row.tsx +1 -1
- package/src/features/cron/hooks/__tests__/use-cron-job-actions.test.tsx +95 -0
- package/src/features/cron/hooks/use-cron-job-actions.ts +109 -0
- package/src/features/cron/index.ts +2 -0
- package/src/features/inbox/pages/inbox-page.tsx +18 -2
- package/src/features/marketplace/components/marketplace-page.tsx +7 -0
- package/src/features/panel-apps/pages/panel-app-main-page.tsx +8 -0
- package/src/features/settings/pages/__tests__/privacy-settings-page.test.tsx +14 -5
- package/src/features/settings/pages/privacy-settings-page.tsx +38 -2
- package/src/platforms/desktop/components/desktop-app-shell.tsx +10 -1
- package/src/shared/components/doc-browser/doc-browser.tsx +0 -1
- package/src/shared/components/doc-browser/hooks/use-doc-browser-scroll-restoration.ts +9 -113
- package/src/shared/components/ui/actions/icon-action-button.tsx +1 -8
- package/src/shared/components/ui/tooltip.tsx +16 -1
- package/src/shared/hooks/use-config.ts +11 -0
- package/src/shared/hooks/use-panel-app-scroll-restoration.test.tsx +66 -0
- package/src/shared/hooks/use-panel-app-scroll-restoration.ts +107 -0
- package/src/shared/hooks/use-scroll-restoration.test.tsx +62 -0
- package/src/shared/hooks/use-scroll-restoration.ts +61 -0
- package/src/shared/lib/api/ncp-session-query-cache.utils.ts +1 -0
- package/src/shared/lib/api/ncp-session.types.ts +3 -0
- package/src/shared/lib/api/types.ts +9 -0
- package/src/shared/lib/api/utils/config.utils.ts +5 -0
- package/src/shared/lib/api/utils/ncp-session.utils.ts +3 -0
- package/src/shared/lib/i18n/locales/en-US/chat.json +15 -5
- package/src/shared/lib/i18n/locales/en-US/core.json +17 -9
- package/src/shared/lib/i18n/locales/en-US/cron.json +4 -2
- package/src/shared/lib/i18n/locales/en-US/doc-browser.json +1 -0
- package/src/shared/lib/i18n/locales/zh-CN/chat.json +15 -5
- package/src/shared/lib/i18n/locales/zh-CN/core.json +17 -9
- package/src/shared/lib/i18n/locales/zh-CN/cron.json +4 -2
- package/src/shared/lib/i18n/locales/zh-CN/doc-browser.json +1 -0
- package/src/shared/lib/navigation-history/index.ts +1 -0
- package/src/shared/lib/navigation-history/scroll-restoration.manager.test.ts +37 -0
- package/src/shared/lib/navigation-history/scroll-restoration.manager.ts +60 -0
- package/dist/assets/channels-list-page-OTCkjMOW.js +0 -8
- package/dist/assets/doc-browser-5xrHcQ2z.js +0 -1
- package/dist/assets/doc-browser-c2yO477-.js +0 -1
- package/dist/assets/index-DUCA8m2w.js +0 -109
- package/dist/assets/index-QrdUWHfm.css +0 -1
- package/dist/assets/loader-circle-CbdTrSp3.js +0 -1
- package/dist/assets/mcp-marketplace-page-DGve0muV.js +0 -9
- package/dist/assets/mcp-marketplace-page-_37VzG2q.js +0 -1
- package/dist/assets/model-config-page-DyC5H0bu.js +0 -1
- package/dist/assets/plus-DbeE4r-Q.js +0 -1
- package/dist/assets/privacy-settings-page--MOnhAZ6.js +0 -1
- package/dist/assets/providers-config-page-ChL3FUvK.js +0 -1
- package/dist/assets/react-DVMmnPWz.js +0 -8
- package/dist/assets/remote-DFoxj4ls.js +0 -1
- package/dist/assets/runtime-config-page-BQdT3nmd.js +0 -1
- package/dist/assets/security-config-CUTUm6JT.js +0 -1
- package/dist/assets/skeleton-7MYPzn8w.js +0 -1
- package/dist/assets/x-DThaS5ZL.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ot as e}from"./index-DUCA8m2w.js";export{e as RemoteAccessPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./chunk-DseTPa7n.js";import{B as t,H as n,a as r}from"./react-DVMmnPWz.js";import{Qt as i,Yt as a,Zt as o,cn as s,in as c,ln as l,mn as u,nn as d,qt as f,rn as p,tn as m,zt as h}from"./api-BBFMpRGl.js";import{g}from"./mcp-marketplace-page-DGve0muV.js";import{a as _,i as v,n as y,r as b,t as x}from"./select-qEtFTWB5.js";import{t as S}from"./loader-circle-CbdTrSp3.js";import{t as C}from"./plus-DbeE4r-Q.js";import{t as w}from"./rotate-cw-B0ajMaHu.js";import{t as T}from"./save-DWnYYpgQ.js";import{D as ee,i as E,l as D,lt as O,mt as k,o as A,r as j,ut as M}from"./index-DUCA8m2w.js";import{t as N}from"./form-actions-BFgTdxqI.js";var P=e(n(),1),F=t(),I={healthy:`runtimeControlHealthy`,"starting-service":`runtimeControlStartingService`,"restarting-service":`runtimeControlRestartingService`,"stopping-service":`runtimeControlStoppingService`,"restarting-app":`runtimeControlRestartingApp`,recovering:`runtimeControlRecovering`,failed:`runtimeControlFailed`},L={running:`runtimeControlServiceRunning`,stopped:`runtimeControlServiceStopped`,starting:`runtimeControlServiceStarting`,stopping:`runtimeControlServiceStopping`,restarting:`runtimeControlServiceRestarting`},R={"desktop-embedded":`runtimeControlEnvironmentDesktop`,"managed-local-service":`runtimeControlEnvironmentManagedService`,"self-hosted-web":`runtimeControlEnvironmentSelfHosted`,"shared-web":`runtimeControlEnvironmentSharedWeb`};function z(e){return r(I[e]??`runtimeControlUnavailable`)}function B(e){return r(L[e]??`runtimeControlServiceUnknown`)}function V(e){return r(R[e.environment])}function H(e,t){return t===`start-service`?e?.canStartService:t===`stop-service`?e?.canStopService:e?.canRestartService}function U(e){return e?[{action:`start-service`,capability:e.canStartService,label:r(`runtimeControlStartService`),icon:`play`},{action:`restart-service`,capability:e.canRestartService,label:r(`runtimeControlRestartService`),icon:`rotate`},{action:`stop-service`,capability:e.canStopService,label:r(`runtimeControlStopService`),icon:`square`,variant:`destructive`},{action:`restart-app`,capability:e.canRestartApp,label:r(`runtimeControlRestartApp`),icon:`rotate`,variant:`secondary`}].filter(e=>e.capability.available||!!e.capability.reasonIfUnavailable):[]}function W(e){let{busy:t,icon:n}=e;return t?(0,F.jsx)(S,{className:`mr-2 h-4 w-4 animate-spin`}):n===`play`?(0,F.jsx)(k,{className:`mr-2 h-4 w-4`}):n===`square`?(0,F.jsx)(M,{className:`mr-2 h-4 w-4`}):(0,F.jsx)(w,{className:`mr-2 h-4 w-4`})}function G(){let{busy:e,busyAction:t,controlView:n,errorMessage:a,pendingRestart:s,visibleLifecycle:c,visibleMessage:m,visibleServiceState:h}=f(),g=U(n??void 0),_=async e=>{let t=H(n,e);if(!t?.available){u.error(i(t?.reasonIfUnavailable)??r(`runtimeControlLoadFailed`));return}if(!(e===`stop-service`&&t.requiresConfirmation&&!window.confirm(r(`runtimeControlStopServiceConfirm`))))try{let t=await o.runRuntimeControlAction(e);u.success(i(t.message)??t.message)}catch(e){let t=e instanceof Error?e.message:r(`runtimeControlActionFailed`);u.error(`${r(`runtimeControlActionFailed`)}: ${t}`)}},v=async()=>{if(!n?.canRestartApp.available){u.error(i(n?.canRestartApp.reasonIfUnavailable)??r(`runtimeRestartAppUnavailable`));return}if(window.confirm(r(`runtimeControlRestartAppConfirm`)))try{let e=await o.runRuntimeControlAction(`restart-app`);u.success(i(e.message)??e.message)}catch(e){let t=e instanceof Error?e.message:r(`runtimeControlActionFailed`);u.error(`${r(`runtimeControlActionFailed`)}: ${t}`)}};return(0,F.jsx)(p,{title:r(`runtimeControlTitle`),description:r(`runtimeControlDescription`),children:(0,F.jsxs)(d,{children:[(0,F.jsxs)(`div`,{className:`space-y-3 p-4`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col gap-1 md:flex-row md:items-center md:justify-between`,children:[(0,F.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:B(h)}),(0,F.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:n?V(n):r(`runtimeControlLoading`)})]}),(0,F.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m}),(0,F.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:z(c)}),n?.managementHint?(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(n.managementHint)}):null,a&&!e?(0,F.jsx)(`p`,{className:`text-sm text-amber-700`,children:a}):null]}),s?(0,F.jsxs)(`div`,{className:`space-y-3 bg-amber-50/75 p-4 dark:bg-amber-950/20`,children:[(0,F.jsx)(`div`,{className:`text-sm font-medium text-amber-900`,children:r(`runtimeControlPendingRestartTitle`)}),(0,F.jsx)(`p`,{className:`text-sm text-amber-800`,children:r(`runtimeControlPendingRestartDescription`)}),s.changedPaths.length>0?(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-[0.08em] text-amber-700`,children:r(`runtimeControlPendingRestartPaths`)}),(0,F.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:s.changedPaths.map(e=>(0,F.jsx)(`span`,{className:`rounded-full bg-background/80 px-2.5 py-1 text-xs text-amber-800 dark:text-amber-300`,children:e},e))})]}):null]}):null,(0,F.jsxs)(`div`,{className:`space-y-3 p-4`,children:[(0,F.jsx)(`div`,{className:`flex flex-col gap-3 md:flex-row md:flex-wrap`,children:g.map(n=>(0,F.jsxs)(l,{type:`button`,variant:n.variant??`default`,onClick:()=>{if(n.action===`restart-app`){v();return}_(n.action)},disabled:!n.capability.available||e,children:[(0,F.jsx)(W,{icon:n.icon,busy:t===n.action}),n.label]},n.action))}),g.filter(e=>!e.capability.available&&e.capability.reasonIfUnavailable).map(e=>(0,F.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(e.capability.reasonIfUnavailable)},`${e.action}-reason`))]})]})})}function K(e){let{description:t,title:n}=e;return(0,F.jsx)(g,{tone:`neutral`,title:n,description:t})}function q(e){let{children:t}=e;return(0,F.jsx)(p,{title:r(`runtimePresenceTitle`),description:r(`runtimePresenceDescription`),children:(0,F.jsx)(d,{children:t})})}function te(){let e=a().runtimeControlView?.environment,t=E(e=>e.supported),n=E(e=>e.initialized),i=E(e=>e.busyAction),o=E(e=>e.snapshot);return(0,P.useEffect)(()=>{if(e===`desktop-embedded`){j.start();return}j.markUnsupported()},[e]),e===`desktop-embedded`?(0,F.jsxs)(q,{children:[(0,F.jsx)(`div`,{className:`p-4`,children:(0,F.jsx)(g,{tone:`neutral`,title:r(`runtimePresenceBehaviorLabel`),description:o?.closeToBackground?r(`runtimePresenceBehaviorBackground`):r(`runtimePresenceBehaviorQuit`),className:`rounded-xl`})}),!n||t&&!o?(0,F.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:r(`runtimePresenceLoading`)}):null,o?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(m,{title:r(`runtimePresenceCloseToBackground`),description:r(`runtimePresenceCloseToBackgroundHelp`),control:(0,F.jsx)(h,{id:`runtime-presence-close-background`,"aria-label":r(`runtimePresenceCloseToBackground`),checked:o.closeToBackground,disabled:i===`saving-preferences`,onCheckedChange:e=>{j.updatePreferences({closeToBackground:e})}})}),(0,F.jsx)(m,{title:r(`runtimePresenceLaunchAtLogin`),description:o.supportsLaunchAtLogin?r(`runtimePresenceLaunchAtLoginHelp`):o.launchAtLoginReason??r(`runtimePresenceLaunchAtLoginUnavailable`),control:(0,F.jsx)(h,{id:`runtime-presence-launch-login`,"aria-label":r(`runtimePresenceLaunchAtLogin`),checked:o.launchAtLogin,disabled:!o.supportsLaunchAtLogin||i===`saving-preferences`,onCheckedChange:e=>{j.updatePreferences({launchAtLogin:e})}})})]}):null]}):e===`managed-local-service`?(0,F.jsx)(q,{children:(0,F.jsx)(`div`,{className:`p-4`,children:(0,F.jsx)(K,{title:r(`runtimePresenceManagedLocalTitle`),description:r(`runtimePresenceManagedLocalDescription`)})})}):e===`self-hosted-web`?(0,F.jsx)(q,{children:(0,F.jsx)(`div`,{className:`p-4`,children:(0,F.jsx)(K,{title:r(`runtimePresenceSelfHostedTitle`),description:r(`runtimePresenceSelfHostedDescription`)})})}):e===`shared-web`?(0,F.jsx)(q,{children:(0,F.jsx)(`div`,{className:`p-4`,children:(0,F.jsx)(K,{title:r(`runtimePresenceSharedTitle`),description:r(`runtimePresenceSharedDescription`)})})}):(0,F.jsx)(q,{children:(0,F.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:r(`runtimePresenceLoading`)})})}function J(){return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(G,{}),(0,F.jsx)(te,{}),(0,F.jsx)(A,{})]})}var Y={wireDialect:`acp`,processScope:`per-session`,command:``,args:[`acp`],env:{},cwd:``,startupTimeoutMs:8e3,probeTimeoutMs:3e3,requestTimeoutMs:12e4};function X(){return{id:``,default:!1,workspace:``,model:``,runtime:``,contextTokens:void 0,maxToolIterations:void 0}}function Z(){return{agentId:``,match:{channel:``,accountId:``}}}function Q(){return{id:``,enabled:!0,label:``,type:`narp-stdio`,config:Y,configText:JSON.stringify(Y,null,2)}}function ne(e){return{id:e.id??``,default:!!e.default,displayName:e.displayName??``,description:e.description??``,avatar:e.avatar??``,workspace:e.workspace??``,model:e.model??``,runtime:e.runtime??e.engine??``,contextTokens:e.contextTokens,maxToolIterations:e.maxToolIterations}}function re(e){return{agentId:e.agentId??``,match:{channel:e.match?.channel??``,accountId:e.match?.accountId??``,peer:e.match?.peer?{kind:e.match.peer.kind,id:e.match.peer.id}:void 0}}}function $(e){let t=e.trim();if(!t)return;let n=Number.parseInt(t,10);return Number.isFinite(n)?n:void 0}function ie(e){return{companionEnabled:e.companion?.enabled===!0,agents:(e.agents.list??[]).map(ne),bindings:(e.bindings??[]).map(re),runtimeEntries:Object.entries(e.agents.runtimes?.entries??{}).map(([e,t])=>({id:e,enabled:t.enabled!==!1,label:t.label??``,type:t.type,config:t.config??{},configText:JSON.stringify(t.config??{},null,2)})),dmScope:e.session?.dmScope??`per-channel-peer`,defaultContextTokens:e.agents.defaults.contextTokens??2e5,defaultEngine:e.agents.defaults.engine??`native`}}function ae(e){let t={id:e.id.trim()};e.default&&(t.default=!0),e.displayName?.trim()&&(t.displayName=e.displayName.trim()),e.description?.trim()&&(t.description=e.description.trim()),e.avatar?.trim()&&(t.avatar=e.avatar.trim()),e.workspace?.trim()&&(t.workspace=e.workspace.trim()),e.model?.trim()&&(t.model=e.model.trim());let n=e.runtime?.trim()??e.engine?.trim();return n&&(t.engine=n),typeof e.contextTokens==`number`&&(t.contextTokens=Math.max(1e3,e.contextTokens)),typeof e.maxToolIterations==`number`&&(t.maxToolIterations=e.maxToolIterations),t}function oe(e){let t=e.agents.map((e,t)=>{if(!e.id.trim())throw Error(r(`agentIdRequiredError`).replace(`{index}`,String(t)));return ae(e)}),n=t.map(e=>e.id).filter((e,t,n)=>n.indexOf(e)!==t);if(n.length>0)throw Error(`${r(`duplicateAgentId`)}: ${n[0]}`);let i=e.bindings.map((t,n)=>{let i=t.agentId.trim(),a=t.match.channel.trim(),o=t.match.accountId?.trim()??``,s=t.match.peer?.kind,c=t.match.peer?.id?.trim()??``;if(!i)throw Error(r(`bindingAgentIdRequired`).replace(`{index}`,String(n)));if(!e.knownAgentIds.has(i))throw Error(`${r(`bindingAgentIdNotFound`).replace(`{index}`,String(n))}: ${i}`);if(!a)throw Error(r(`bindingChannelRequired`).replace(`{index}`,String(n)));let l={agentId:i,match:{channel:a}};if(o&&(l.match.accountId=o),s){if(!c)throw Error(r(`bindingPeerIdRequired`).replace(`{index}`,String(n)));l.match.peer={kind:s,id:c}}return l}),a=e.runtimeEntries.reduce((e,t,n)=>{let i=t.id.trim(),a=t.type.trim();if(!i)throw Error(r(`runtimeEntryIdRequired`).replace(`{index}`,String(n)));if(!a)throw Error(r(`runtimeEntryTypeRequired`).replace(`{id}`,i));if(e[i])throw Error(`${r(`runtimeEntryDuplicate`)}: ${i}`);let o=t.configText.trim()?JSON.parse(t.configText):{};if(o&&(typeof o!=`object`||Array.isArray(o)))throw Error(r(`runtimeEntryConfigObjectRequired`).replace(`{id}`,i));return e[i]={enabled:t.enabled!==!1,...t.label?.trim()?{label:t.label.trim()}:{},type:a,config:o??{}},e},{});return{companion:{enabled:e.companionEnabled},agents:{defaults:{contextTokens:Math.max(1e3,e.defaultContextTokens),engine:e.defaultEngine.trim()||`native`},list:t,runtimes:{entries:a}},bindings:i,session:{dmScope:e.dmScope}}}function se({agents:e,onAddAgent:t,onRemoveAgent:n,onSetDefaultAgent:i,onUpdateAgent:a}){return(0,F.jsx)(p,{title:r(`agentList`),description:r(`agentListHelp`),actions:(0,F.jsxs)(l,{type:`button`,variant:`ghost`,size:`sm`,onClick:t,children:[(0,F.jsx)(C,{className:`mr-2 h-4 w-4`}),r(`addAgent`)]}),children:(0,F.jsx)(d,{children:e.map((e,t)=>(0,F.jsxs)(`div`,{className:`space-y-3 p-4`,children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,F.jsx)(s,{value:e.id,onChange:e=>a(t,{id:e.target.value}),placeholder:r(`agentIdPlaceholder`)}),(0,F.jsx)(s,{value:e.workspace??``,onChange:e=>a(t,{workspace:e.target.value}),placeholder:r(`workspaceOverridePlaceholder`)}),(0,F.jsx)(s,{value:e.model??``,onChange:e=>a(t,{model:e.target.value}),placeholder:r(`modelOverridePlaceholder`)}),(0,F.jsx)(s,{value:e.runtime??e.engine??``,onChange:e=>a(t,{runtime:e.target.value}),placeholder:r(`engineOverridePlaceholder`)}),(0,F.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-2`,children:[(0,F.jsx)(s,{type:`number`,min:1e3,step:1e3,value:e.contextTokens??``,onChange:e=>a(t,{contextTokens:$(e.target.value)}),placeholder:r(`contextTokensPlaceholder`)}),(0,F.jsx)(s,{type:`number`,min:1,value:e.maxToolIterations??``,onChange:e=>a(t,{maxToolIterations:$(e.target.value)}),placeholder:r(`maxToolsPlaceholder`)})]})]}),(0,F.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,F.jsx)(h,{checked:!!e.default,onCheckedChange:e=>i(t,e)}),(0,F.jsx)(`span`,{children:r(`defaultAgent`)})]}),(0,F.jsxs)(l,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>n(t),children:[(0,F.jsx)(O,{className:`h-4 w-4 mr-1`}),r(`remove`)]})]})]},`${t}-${e.id}`))})})}function ce({bindings:e,onAddBinding:t,onRemoveBinding:n,onUpdateBinding:i}){return(0,F.jsx)(p,{title:r(`bindings`),description:r(`bindingsHelp`),actions:(0,F.jsxs)(l,{type:`button`,variant:`ghost`,size:`sm`,onClick:t,children:[(0,F.jsx)(C,{className:`mr-2 h-4 w-4`}),r(`addBinding`)]}),children:(0,F.jsx)(d,{children:e.map((e,t)=>{let a=e.match.peer?.kind??``;return(0,F.jsxs)(`div`,{className:`space-y-3 p-4`,children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3`,children:[(0,F.jsx)(s,{value:e.agentId,onChange:n=>i(t,{...e,agentId:n.target.value}),placeholder:r(`targetAgentIdPlaceholder`)}),(0,F.jsx)(s,{value:e.match.channel,onChange:n=>i(t,{...e,match:{...e.match,channel:n.target.value}}),placeholder:r(`channelPlaceholder`)}),(0,F.jsx)(s,{value:e.match.accountId??``,onChange:n=>i(t,{...e,match:{...e.match,accountId:n.target.value}}),placeholder:r(`accountIdOptionalPlaceholder`)}),(0,F.jsxs)(x,{value:a||`__none__`,onValueChange:n=>{let r=n===`__none__`?``:n;i(t,r?{...e,match:{...e.match,peer:{kind:r,id:e.match.peer?.id??``}}}:{...e,match:{...e.match,peer:void 0}})},children:[(0,F.jsx)(v,{children:(0,F.jsx)(_,{})}),(0,F.jsxs)(y,{children:[(0,F.jsx)(b,{value:`__none__`,children:r(`peerKindOptional`)}),(0,F.jsx)(b,{value:`direct`,children:r(`peerKindDirect`)}),(0,F.jsx)(b,{value:`group`,children:r(`peerKindGroup`)}),(0,F.jsx)(b,{value:`channel`,children:r(`peerKindChannel`)})]})]}),(0,F.jsx)(s,{value:e.match.peer?.id??``,onChange:n=>i(t,{...e,match:{...e.match,peer:a?{kind:a,id:n.target.value}:void 0}}),placeholder:r(`peerIdPlaceholder`)})]}),(0,F.jsx)(`div`,{className:`flex justify-end`,children:(0,F.jsxs)(l,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>n(t),children:[(0,F.jsx)(O,{className:`h-4 w-4 mr-1`}),r(`remove`)]})})]},`${t}-${e.agentId}`)})})})}function le({entries:e,onAddEntry:t,onRemoveEntry:n,onUpdateEntry:i}){return(0,F.jsx)(p,{title:r(`runtimeEntries`),description:r(`runtimeEntriesHelp`),actions:(0,F.jsxs)(l,{type:`button`,variant:`ghost`,size:`sm`,onClick:t,children:[(0,F.jsx)(C,{className:`mr-2 h-4 w-4`}),r(`addRuntimeEntry`)]}),children:(0,F.jsx)(d,{children:e.map((e,t)=>(0,F.jsxs)(`div`,{className:`space-y-3 p-4`,children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,F.jsx)(s,{value:e.id,onChange:e=>i(t,{id:e.target.value}),placeholder:r(`runtimeEntryIdPlaceholder`)}),(0,F.jsx)(s,{value:e.label??``,onChange:e=>i(t,{label:e.target.value}),placeholder:r(`runtimeEntryLabelPlaceholder`)}),(0,F.jsx)(s,{value:e.type,onChange:e=>i(t,{type:e.target.value}),placeholder:r(`runtimeEntryTypePlaceholder`)}),(0,F.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg bg-background/65 px-3 py-2`,children:[(0,F.jsx)(`span`,{className:`text-sm text-foreground`,children:r(`enabled`)}),(0,F.jsx)(h,{checked:e.enabled!==!1,onCheckedChange:e=>i(t,{enabled:e})})]})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(`label`,{className:`text-sm font-medium text-foreground`,children:r(`runtimeEntryConfigJson`)}),(0,F.jsx)(`textarea`,{className:`min-h-32 w-full rounded-md border border-input bg-background px-3 py-2 font-mono text-sm`,value:e.configText,onChange:e=>i(t,{configText:e.target.value}),spellCheck:!1})]}),(0,F.jsx)(`div`,{className:`flex justify-end`,children:(0,F.jsxs)(l,{type:`button`,variant:`outline`,onClick:()=>n(t),children:[(0,F.jsx)(O,{className:`mr-2 h-4 w-4`}),r(`delete`)]})})]},`${t}-${e.id||`runtime-entry`}`))})})}var ue=[{value:`main`,labelKey:`dmScopeMain`},{value:`per-peer`,labelKey:`dmScopePerPeer`},{value:`per-channel-peer`,labelKey:`dmScopePerChannelPeer`},{value:`per-account-channel-peer`,labelKey:`dmScopePerAccountChannelPeer`}];function de({companionEnabled:e,defaultContextTokens:t,defaultEngine:n,dmScope:i,onCompanionEnabledChange:a,onDefaultContextTokensChange:o,onDefaultEngineChange:c,onDmScopeChange:l}){return(0,F.jsx)(p,{title:r(`dmScope`),description:r(`dmScopeHelp`),children:(0,F.jsxs)(d,{children:[(0,F.jsx)(m,{title:r(`runtimeCompanionEnabled`),description:r(`runtimeCompanionEnabledHelp`),control:(0,F.jsx)(h,{checked:e,onCheckedChange:a})}),(0,F.jsx)(m,{title:r(`defaultContextTokens`),description:r(`defaultContextTokensHelp`),control:(0,F.jsx)(s,{type:`number`,min:1e3,step:1e3,value:t,onChange:e=>o(Math.max(1e3,Number.parseInt(e.target.value,10)||1e3)),className:`w-36`})}),(0,F.jsx)(m,{title:r(`defaultEngine`),description:r(`defaultEngineHelp`),control:(0,F.jsx)(s,{value:n,onChange:e=>c(e.target.value),placeholder:r(`defaultEnginePlaceholder`),className:`w-56`})}),(0,F.jsx)(m,{title:r(`dmScope`),control:(0,F.jsxs)(x,{value:i,onValueChange:e=>l(e),children:[(0,F.jsx)(v,{className:`w-56`,children:(0,F.jsx)(_,{})}),(0,F.jsx)(y,{children:ue.map(e=>(0,F.jsx)(b,{value:e.value,children:r(e.labelKey)},e.value))})]})})]})})}function fe({config:e,updateRuntime:t}){let n=(0,P.useMemo)(()=>ie(e),[e]),[i,a]=(0,P.useState)(n.agents),[o,s]=(0,P.useState)(n.bindings),[d,f]=(0,P.useState)(n.runtimeEntries),[p,m]=(0,P.useState)(n.dmScope),[h,g]=(0,P.useState)(n.companionEnabled),[_,v]=(0,P.useState)(n.defaultContextTokens),[y,b]=(0,P.useState)(n.defaultEngine),x=(0,P.useMemo)(()=>{let e=new Set([`main`]);return i.forEach(t=>{let n=t.id.trim();n&&e.add(n)}),e},[i]);return(0,F.jsxs)(c,{title:r(`runtimePageTitle`),description:r(`runtimePageDescription`),children:[(0,F.jsx)(J,{}),(0,F.jsx)(de,{companionEnabled:h,dmScope:p,defaultContextTokens:_,defaultEngine:y,onCompanionEnabledChange:g,onDmScopeChange:m,onDefaultContextTokensChange:v,onDefaultEngineChange:b}),(0,F.jsx)(le,{entries:d,onUpdateEntry:(e,t)=>f(n=>n.map((n,r)=>r===e?{...n,...t}:n)),onRemoveEntry:e=>f(t=>t.filter((t,n)=>n!==e)),onAddEntry:()=>f(e=>[...e,Q()])}),(0,F.jsx)(se,{agents:i,onUpdateAgent:(e,t)=>{a(n=>n.map((n,r)=>r===e?{...n,...t}:n))},onRemoveAgent:e=>a(t=>t.filter((t,n)=>n!==e)),onAddAgent:()=>a(e=>[...e,X()]),onSetDefaultAgent:(e,t)=>a(n=>t?n.map((t,n)=>({...t,default:n===e})):n.map((t,n)=>n===e?{...t,default:!1}:t))}),(0,F.jsx)(ce,{bindings:o,onUpdateBinding:(e,t)=>{s(n=>n.map((n,r)=>r===e?t:n))},onRemoveBinding:e=>s(t=>t.filter((t,n)=>n!==e)),onAddBinding:()=>s(e=>[...e,Z()])}),(0,F.jsx)(N,{children:(0,F.jsxs)(l,{type:`button`,size:`sm`,onClick:()=>{try{let e=oe({companionEnabled:h,agents:i,bindings:o,runtimeEntries:d,dmScope:p,defaultContextTokens:_,defaultEngine:y,knownAgentIds:x});t.mutate({data:e})}catch(e){u.error(e instanceof Error?e.message:String(e))}},disabled:t.isPending,children:[(0,F.jsx)(T,{className:`mr-1.5 h-3.5 w-3.5`}),t.isPending?r(`saving`):r(`saveRuntimeSettings`)]})})]})}function pe(){let{data:e,isLoading:t}=D(),n=ee();return t||!e?(0,F.jsx)(c,{title:r(`runtimePageTitle`),description:r(`runtimePageDescription`),children:(0,F.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:r(`runtimeLoading`)})}):(0,F.jsx)(fe,{config:e,updateRuntime:n})}export{pe as RuntimeConfig};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ft as e}from"./api-BBFMpRGl.js";export{e as SecurityConfig};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e,L as t}from"./react-DVMmnPWz.js";var n=e();function r({className:e,...r}){return(0,n.jsx)(`div`,{className:t(`animate-pulse rounded-md bg-slate-200`,e),...r})}export{r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-B_8khHn8.js";var t=e(`X`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};
|