@nextclaw/ui 0.13.12 → 0.14.0

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.
Files changed (430) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/assets/{api-DmxQnm30.js → api-B50yVdT8.js} +7 -7
  3. package/dist/assets/app-presenter-provider-BI-ewLbO.js +3 -0
  4. package/dist/assets/arrow-left-BOCJyLbQ.js +1 -0
  5. package/dist/assets/book-open-Bd2Xbrrc.js +1 -0
  6. package/dist/assets/channels-list-page-moJkpxtU.js +8 -0
  7. package/dist/assets/chat-page-CO27cl4v.js +105 -0
  8. package/dist/assets/config-split-page-CsQ2rIdq.js +1 -0
  9. package/dist/assets/{confirm-dialog-BWRNsRgb.js → confirm-dialog-DRSelLdI.js} +2 -2
  10. package/dist/assets/desktop-update-config-qa-SynOc.js +1 -0
  11. package/dist/assets/{dist-DzM2ZEVN.js → dist-D19wiQwB.js} +1 -1
  12. package/dist/assets/{dist-CyWdaJvr.js → dist-NZRV-BxD.js} +1 -1
  13. package/dist/assets/doc-browser-2ddUJCA0.js +1 -0
  14. package/dist/assets/doc-browser-BjHUczQb.js +1 -0
  15. package/dist/assets/doc-browser-context-C8KPbj-p.js +1 -0
  16. package/dist/assets/{ellipsis-BDgTYNDX.js → ellipsis-BYy8TP0A.js} +1 -1
  17. package/dist/assets/{es2015-WqekV0OK.js → es2015-BUIIKCNh.js} +1 -1
  18. package/dist/assets/{external-link-BLjo8z2a.js → external-link-528k6MDD.js} +1 -1
  19. package/dist/assets/host-capabilities-9bB_998Z.js +1 -0
  20. package/dist/assets/index-CMNrRhnG.js +101 -0
  21. package/dist/assets/index-UTmTW1eU.css +1 -0
  22. package/dist/assets/{key-round-Du8x3sWa.js → key-round-D3vD9dj7.js} +1 -1
  23. package/dist/assets/loader-circle-DV9TSRns.js +1 -0
  24. package/dist/assets/mcp-marketplace-page-CS5Lh3oA.js +1 -0
  25. package/dist/assets/mcp-marketplace-page-DEOMcWb0.js +40 -0
  26. package/dist/assets/model-config-page-BSc4o7pb.js +1 -0
  27. package/dist/assets/{notice-card-3a7FmAz-.js → notice-card-qqlbsOoR.js} +1 -1
  28. package/dist/assets/plus-Bf9qhPDO.js +1 -0
  29. package/dist/assets/{popover-BlJLguiZ.js → popover-BnmPOXe3.js} +1 -1
  30. package/dist/assets/provider-scoped-model-input-Ca56s475.js +1 -0
  31. package/dist/assets/providers-config-page-D8Kf4U3u.js +1 -0
  32. package/dist/assets/{react-BVjl1ZaK.js → react-Dsotw5vM.js} +1 -1
  33. package/dist/assets/{refresh-cw-DFR87zei.js → refresh-cw-Bmx4wc9P.js} +1 -1
  34. package/dist/assets/remote-DNMEy_c4.js +1 -0
  35. package/dist/assets/rotate-cw-CL0sVBel.js +1 -0
  36. package/dist/assets/runtime-config-page-CUFtKr0U.js +1 -0
  37. package/dist/assets/{save-BDmIlHvN.js → save-CHDnDTok.js} +1 -1
  38. package/dist/assets/search-D7L-TCH-.js +1 -0
  39. package/dist/assets/search-config-page-CA3RVAef.js +1 -0
  40. package/dist/assets/secrets-config-page-95yaH1fa.js +3 -0
  41. package/dist/assets/{status-dot-SVPjIyG5.js → status-dot-Dm4h-bjn.js} +1 -1
  42. package/dist/assets/tabs-CJvw5Lqp.js +1 -0
  43. package/dist/assets/{tag-chip-Cdwb3JSH.js → tag-chip-Cr8GwpRE.js} +1 -1
  44. package/dist/assets/{tooltip-CKGxLGnG.js → tooltip-Bxzi6aDL.js} +1 -1
  45. package/dist/assets/{trash-2-yLA8BEcE.js → trash-2-CSfX-BvU.js} +1 -1
  46. package/dist/assets/use-config-TzwzTgg0.js +1 -0
  47. package/dist/assets/x-fkIWvi07.js +1 -0
  48. package/dist/index.html +27 -25
  49. package/package.json +9 -8
  50. package/src/app/index.tsx +8 -4
  51. package/src/features/account/components/account-panel.tsx +3 -3
  52. package/src/features/account/hooks/{use-auth.test.ts → __tests__/use-auth.test.ts} +1 -1
  53. package/src/features/account/managers/account.manager.ts +6 -5
  54. package/src/features/agents/components/{agents-page.test.tsx → __tests__/agents-page.test.tsx} +41 -2
  55. package/src/features/agents/components/agent-dialogs.tsx +2 -2
  56. package/src/features/agents/components/agents-page.tsx +1 -1
  57. package/src/features/channels/components/config/channel-form.tsx +1 -1
  58. package/src/features/channels/pages/channels-list-page.tsx +18 -15
  59. package/src/features/channels/utils/{channel-form-fields.utils.test.ts → __tests__/channel-form-fields.utils.test.ts} +1 -1
  60. package/src/features/chat/components/{chat-welcome.test.tsx → __tests__/chat-welcome.test.tsx} +1 -1
  61. package/src/features/chat/components/conversation/{chat-conversation-header.test.tsx → __tests__/chat-conversation-header.test.tsx} +25 -32
  62. package/src/features/chat/components/conversation/{chat-conversation-panel.test.tsx → __tests__/chat-conversation-panel.test.tsx} +201 -37
  63. package/src/features/chat/components/conversation/chat-conversation-alerts.tsx +37 -0
  64. package/src/features/chat/components/conversation/chat-conversation-content.tsx +91 -0
  65. package/src/features/chat/components/conversation/chat-conversation-header-section.tsx +151 -0
  66. package/src/features/chat/components/conversation/chat-conversation-header.tsx +26 -89
  67. package/src/features/chat/components/conversation/chat-conversation-panel.tsx +13 -376
  68. package/src/features/chat/components/conversation/chat-conversation-parent-banner.tsx +16 -0
  69. package/src/features/chat/components/conversation/chat-conversation-skeleton.tsx +86 -0
  70. package/src/features/chat/components/conversation/chat-conversation-workspace-section.tsx +42 -0
  71. package/src/features/chat/components/layout/{chat-page-shell.test.tsx → __tests__/chat-page-shell.test.tsx} +1 -1
  72. package/src/features/chat/components/layout/__tests__/chat-sidebar-read-state.test.tsx +167 -0
  73. package/src/features/chat/components/layout/__tests__/chat-sidebar.test.tsx +834 -0
  74. package/src/features/chat/components/layout/chat-page-shell.tsx +11 -30
  75. package/src/features/chat/components/layout/chat-sidebar-toolbar.tsx +33 -53
  76. package/src/features/chat/components/layout/chat-sidebar-utility-menu.tsx +1 -1
  77. package/src/features/chat/components/layout/chat-sidebar.tsx +156 -202
  78. package/src/features/chat/components/providers/chat-presenter.provider.tsx +13 -44
  79. package/src/features/chat/{components/conversation → features/input/components/__tests__}/chat-attachment-upload-limit.test.ts +1 -1
  80. package/src/features/chat/{components/conversation → features/input/components}/chat-input-bar.container.tsx +133 -31
  81. package/src/features/chat/{hooks → features/input/hooks/__tests__}/use-chat-input-bar-controller.test.tsx +1 -1
  82. package/src/features/chat/{utils → features/input/utils/__tests__}/chat-composer-state.utils.test.ts +1 -1
  83. package/src/features/chat/{utils → features/input/utils/__tests__}/chat-inline-token.utils.test.ts +1 -1
  84. package/src/features/chat/{utils → features/input/utils/__tests__}/chat-input-bar.utils.test.ts +2 -2
  85. package/src/features/chat/{utils → features/input/utils/__tests__}/ncp-chat-input-availability.utils.test.ts +2 -1
  86. package/src/features/chat/{utils → features/input/utils}/ncp-chat-input-availability.utils.ts +6 -6
  87. package/src/features/chat/{components/conversation → features/message/components/__tests__}/chat-message-list.container.test.tsx +38 -3
  88. package/src/features/chat/{components/conversation → features/message/components}/chat-message-list.container.tsx +9 -13
  89. package/src/features/chat/{utils → features/message/utils/__tests__}/chat-message-invalid-tool-arguments.utils.test.ts +2 -2
  90. package/src/features/chat/{utils → features/message/utils/__tests__}/chat-message-session-spawn-tool-card.utils.test.ts +2 -2
  91. package/src/features/chat/features/message/utils/__tests__/chat-message-show-content-tool-card.utils.test.ts +54 -0
  92. package/src/features/chat/{utils → features/message/utils/__tests__}/chat-message-summary-truncation.utils.test.ts +2 -2
  93. package/src/features/chat/{utils → features/message/utils/__tests__}/chat-message-tool-agent-id.utils.test.ts +1 -1
  94. package/src/features/chat/{utils → features/message/utils/__tests__}/chat-message.utils.test.ts +2 -2
  95. package/src/features/chat/{utils → features/message/utils}/chat-message-inline-content.utils.ts +1 -1
  96. package/src/features/chat/{utils → features/message/utils}/chat-message-part.utils.ts +15 -2
  97. package/src/features/chat/{utils → features/message/utils}/chat-message-session-request-tool-card.utils.ts +1 -1
  98. package/src/features/chat/features/message/utils/chat-message-show-content-tool-card.utils.ts +165 -0
  99. package/src/features/chat/{utils → features/message/utils}/chat-message-tool-card.utils.ts +1 -1
  100. package/src/features/chat/{utils → features/message/utils}/chat-message.utils.ts +1 -1
  101. package/src/features/chat/features/ncp/hooks/__tests__/use-hydrated-ncp-agent.test.tsx +57 -0
  102. package/src/features/chat/{hooks → features/ncp/hooks/__tests__}/use-ncp-agent-runtime.test.tsx +2 -2
  103. package/src/features/chat/features/ncp/hooks/__tests__/use-ncp-chat-derived-state.test.tsx +22 -0
  104. package/src/features/chat/features/ncp/hooks/__tests__/use-ncp-chat-query-store-sync.test.tsx +101 -0
  105. package/src/features/chat/{hooks → features/ncp/hooks/__tests__}/use-ncp-session-conversation.test.tsx +1 -1
  106. package/src/features/chat/features/ncp/hooks/__tests__/use-ui-show-content-event.test.tsx +52 -0
  107. package/src/features/chat/features/ncp/hooks/use-ncp-chat-derived-state.ts +37 -0
  108. package/src/features/chat/features/ncp/hooks/use-ncp-chat-query-store-sync.ts +28 -0
  109. package/src/features/chat/{hooks → features/ncp/hooks}/use-ncp-child-session-tabs-view.ts +4 -4
  110. package/src/features/chat/{hooks → features/ncp/hooks}/use-ncp-session-conversation.ts +1 -1
  111. package/src/features/chat/{hooks → features/ncp/hooks}/use-ncp-session-list-view.ts +3 -3
  112. package/src/features/chat/features/ncp/hooks/use-ncp-session-queries.ts +32 -0
  113. package/src/features/chat/features/ncp/hooks/use-ui-show-content-event.ts +14 -0
  114. package/src/features/chat/features/ncp/utils/ncp-chat-query-derived.utils.ts +77 -0
  115. package/src/features/chat/{utils → features/runtime/utils/__tests__}/ncp-app-client-fetch.utils.test.ts +1 -1
  116. package/src/features/chat/{utils → features/runtime/utils/__tests__}/ncp-chat-runtime-availability.utils.test.ts +1 -1
  117. package/src/features/chat/{utils → features/runtime/utils}/chat-runtime.utils.ts +1 -1
  118. package/src/features/chat/{components → features/session/components}/chat-sidebar-project-groups.tsx +21 -42
  119. package/src/features/chat/{components/layout → features/session/components}/chat-sidebar-session-entry.tsx +40 -13
  120. package/src/features/chat/{components → features/session/components}/chat-sidebar-session-item.tsx +36 -44
  121. package/src/features/chat/features/session/components/chat-sidebar-session-list.tsx +78 -0
  122. package/src/features/chat/{components/session → features/session/components}/session-context-icon.tsx +1 -1
  123. package/src/features/chat/{components/conversation/session-header → features/session/components/session-header/__tests__}/chat-session-header-actions.test.tsx +3 -3
  124. package/src/features/chat/{components/conversation/session-header → features/session/components/session-header/__tests__}/chat-session-project-badge.test.tsx +3 -3
  125. package/src/features/chat/{components/conversation → features/session/components}/session-header/chat-session-header-actions.tsx +15 -27
  126. package/src/features/chat/{components/conversation → features/session/components}/session-header/chat-session-project-badge.tsx +1 -1
  127. package/src/features/chat/{hooks → features/session/hooks/__tests__}/use-chat-session-project.test.tsx +2 -2
  128. package/src/features/chat/{hooks → features/session/hooks/__tests__}/use-chat-session-update.test.tsx +1 -1
  129. package/src/features/chat/{hooks → features/session/hooks}/use-chat-session-project.ts +1 -1
  130. package/src/features/chat/{hooks → features/session/hooks}/use-chat-session-update.ts +17 -0
  131. package/src/features/chat/{hooks → features/session/hooks}/use-chat-sidebar-session-label-editor.ts +1 -1
  132. package/src/features/chat/{hooks → features/session/hooks}/use-selected-session-context-window-indicator.ts +1 -1
  133. package/src/features/chat/{utils → features/session/utils/__tests__}/chat-session-display.utils.test.ts +1 -1
  134. package/src/features/chat/{utils → features/session/utils/__tests__}/chat-session-route.utils.test.ts +1 -1
  135. package/src/features/chat/{utils → features/session/utils/__tests__}/ncp-session-adapter.utils.cancelled-tool.test.ts +2 -2
  136. package/src/features/chat/{utils → features/session/utils/__tests__}/ncp-session-adapter.utils.test.ts +2 -2
  137. package/src/features/chat/{utils → features/session/utils/__tests__}/session-context.utils.test.ts +1 -1
  138. package/src/features/chat/features/session/utils/chat-run-metadata.utils.ts +60 -0
  139. package/src/features/chat/{utils → features/session/utils}/chat-session-preference-governance.utils.ts +0 -128
  140. package/src/features/chat/features/session/utils/chat-sidebar-session-groups.utils.ts +144 -0
  141. package/src/features/chat/{components → features/session-type/components/__tests__}/chat-session-type-option-item.test.tsx +1 -1
  142. package/src/features/chat/{components → features/session-type/components}/chat-session-type-option-item.tsx +7 -16
  143. package/src/features/chat/features/session-type/components/chat-sidebar-create-menu.tsx +42 -0
  144. package/src/features/chat/{hooks → features/session-type/hooks/__tests__}/use-chat-session-type-state.test.tsx +1 -1
  145. package/src/features/chat/{hooks → features/session-type/hooks}/use-chat-session-type-state.ts +23 -94
  146. package/src/features/chat/features/session-type/utils/chat-session-type.utils.ts +105 -0
  147. package/src/features/chat/{components → features/workspace/components/__tests__}/chat-session-workspace-file-preview.test.tsx +1 -1
  148. package/src/features/chat/{components → features/workspace/components}/chat-session-workspace-file-preview.tsx +2 -2
  149. package/src/features/chat/features/workspace/components/chat-session-workspace-panel-content.tsx +156 -0
  150. package/src/features/chat/features/workspace/components/chat-session-workspace-panel-nav.tsx +84 -0
  151. package/src/features/chat/features/workspace/components/chat-session-workspace-panel.tsx +138 -0
  152. package/src/features/chat/{components/workspace → features/workspace/components}/session-cron-job-content.tsx +1 -1
  153. package/src/features/chat/features/workspace/hooks/use-chat-conversation-workspace-state.ts +63 -0
  154. package/src/features/chat/features/workspace/utils/__tests__/chat-workspace-panel-view-model.utils.test.ts +103 -0
  155. package/src/features/chat/features/workspace/utils/chat-workspace-panel-view-model.utils.ts +183 -0
  156. package/src/features/chat/index.ts +16 -6
  157. package/src/features/chat/managers/__tests__/chat-input.manager.test.ts +355 -0
  158. package/src/features/chat/managers/__tests__/chat-query.manager.test.ts +39 -0
  159. package/src/features/chat/managers/__tests__/chat-run.manager.test.ts +202 -0
  160. package/src/features/chat/managers/{chat-session-list.manager.test.ts → __tests__/chat-session-list.manager.test.ts} +98 -74
  161. package/src/features/chat/managers/{chat-session-preference-sync.manager.test.ts → __tests__/chat-session-preference-sync.manager.test.ts} +1 -1
  162. package/src/features/chat/managers/__tests__/chat-thread.manager.test.ts +622 -0
  163. package/src/features/chat/managers/__tests__/chat-ui.manager.test.ts +126 -0
  164. package/src/features/chat/managers/{recent-selection.manager.test.ts → __tests__/recent-selection.manager.test.ts} +1 -1
  165. package/src/features/chat/managers/{ncp-chat-input.manager.ts → chat-input.manager.ts} +108 -35
  166. package/src/features/chat/managers/chat-query.manager.ts +48 -0
  167. package/src/features/chat/managers/chat-run.manager.ts +107 -0
  168. package/src/features/chat/managers/chat-session-list.manager.ts +47 -15
  169. package/src/features/chat/managers/chat-session-preference-sync.manager.ts +60 -5
  170. package/src/features/chat/managers/{ncp-chat-thread.manager.ts → chat-thread.manager.ts} +210 -37
  171. package/src/features/chat/managers/chat-ui.manager.ts +55 -9
  172. package/src/features/chat/pages/{ncp-chat-page.test.ts → __tests__/ncp-chat-page.test.ts} +49 -12
  173. package/src/features/chat/pages/ncp-chat-page.tsx +123 -399
  174. package/src/features/chat/presenters/chat.presenter.ts +39 -0
  175. package/src/features/chat/stores/__tests__/chat-thread.store.test.ts +148 -0
  176. package/src/features/chat/stores/chat-input.store.ts +5 -1
  177. package/src/features/chat/stores/chat-thread.store.ts +287 -28
  178. package/src/features/chat/stores/ncp-chat-query.store.ts +25 -0
  179. package/src/features/chat/types/chat-input.types.ts +1 -0
  180. package/src/features/chat/types/chat-message.types.ts +1 -0
  181. package/src/features/chat/types/chat-run.types.ts +41 -0
  182. package/src/{shared → features/cron}/components/cron-config.tsx +1 -1
  183. package/src/features/cron/hooks/use-cron-jobs.ts +58 -0
  184. package/src/features/cron/index.ts +7 -0
  185. package/src/features/marketplace/components/{marketplace-page.test.tsx → __tests__/marketplace-page.test.tsx} +37 -1
  186. package/src/features/marketplace/components/curated-shelves/marketplace-curated-shelves.tsx +15 -61
  187. package/src/features/marketplace/components/marketplace-external-skill-source-action.tsx +14 -0
  188. package/src/features/marketplace/components/marketplace-item-list-view.tsx +167 -0
  189. package/src/features/marketplace/components/marketplace-list-card.tsx +27 -31
  190. package/src/features/marketplace/components/marketplace-page-data.ts +0 -6
  191. package/src/features/marketplace/components/marketplace-page-parts.tsx +10 -2
  192. package/src/features/marketplace/components/marketplace-page.tsx +110 -434
  193. package/src/features/marketplace/components/mcp/mcp-marketplace-card.tsx +1 -1
  194. package/src/features/marketplace/components/mcp/mcp-marketplace-dialogs.tsx +1 -1
  195. package/src/features/marketplace/components/mcp/mcp-marketplace-page.tsx +2 -1
  196. package/src/features/marketplace/hooks/__tests__/use-marketplace.test.tsx +109 -0
  197. package/src/features/marketplace/hooks/use-marketplace-item-actions.ts +101 -0
  198. package/src/features/marketplace/hooks/use-marketplace-item-detail.ts +109 -0
  199. package/src/features/marketplace/hooks/use-marketplace-list-model.ts +160 -0
  200. package/src/features/marketplace/hooks/use-marketplace.ts +3 -5
  201. package/src/features/marketplace/utils/{marketplace-installed-cache.utils.test.ts → __tests__/marketplace-installed-cache.utils.test.ts} +1 -1
  202. package/src/features/panel-apps/components/{panel-app-list-item.test.tsx → __tests__/panel-app-list-item.test.tsx} +1 -1
  203. package/src/features/panel-apps/components/{panel-app-toolbar.test.tsx → __tests__/panel-app-toolbar.test.tsx} +1 -1
  204. package/src/features/panel-apps/utils/{panel-app-view.utils.test.ts → __tests__/panel-app-view.utils.test.ts} +1 -1
  205. package/src/features/pwa/managers/{pwa-service-worker-cache.manager.test.ts → __tests__/pwa-service-worker-cache.manager.test.ts} +1 -1
  206. package/src/features/remote/components/remote-access-page.tsx +2 -2
  207. package/src/features/remote/services/{remote-access-feedback.service.test.ts → __tests__/remote-access-feedback.service.test.ts} +1 -1
  208. package/src/{shared → features/settings}/components/config/provider-form.tsx +7 -7
  209. package/src/{shared/components → features/settings/components/config}/provider-status-badge.tsx +1 -1
  210. package/src/{shared/components/model-config.test.tsx → features/settings/pages/__tests__/model-config-page.test.tsx} +40 -5
  211. package/src/{shared/components/config/providers-list.test.tsx → features/settings/pages/__tests__/providers-config-page.test.tsx} +48 -5
  212. package/src/{shared/components/search-config.test.tsx → features/settings/pages/__tests__/search-config-page.test.tsx} +3 -3
  213. package/src/{shared/components/config/secrets-config.test.tsx → features/settings/pages/__tests__/secrets-config-page.test.tsx} +3 -3
  214. package/src/{shared/components/model-config.tsx → features/settings/pages/model-config-page.tsx} +1 -1
  215. package/src/{shared/components/config/providers-list.tsx → features/settings/pages/providers-config-page.tsx} +3 -3
  216. package/src/{shared/components/search-config.tsx → features/settings/pages/search-config-page.tsx} +1 -1
  217. package/src/{shared/components/config/secrets-config.tsx → features/settings/pages/secrets-config-page.tsx} +2 -2
  218. package/src/{shared/components/config/provider-form-support.test.ts → features/settings/utils/__tests__/provider-form-support.utils.test.ts} +1 -1
  219. package/src/features/side-dock/components/{side-dock.test.tsx → __tests__/side-dock.test.tsx} +25 -0
  220. package/src/features/side-dock/components/side-dock.tsx +13 -0
  221. package/src/features/system-status/components/{runtime-control-card.test.tsx → __tests__/runtime-control-card.test.tsx} +1 -1
  222. package/src/features/system-status/components/{runtime-presence-card.test.tsx → __tests__/runtime-presence-card.test.tsx} +1 -1
  223. package/src/features/system-status/components/desktop-update-config.tsx +2 -1
  224. package/src/features/system-status/components/runtime-presence-card.tsx +2 -2
  225. package/src/features/system-status/managers/{system-status.manager.bootstrap-polling.test.ts → __tests__/system-status.manager.bootstrap-polling.test.ts} +1 -1
  226. package/src/features/system-status/managers/{system-status.manager.test.ts → __tests__/system-status.manager.test.ts} +1 -1
  227. package/src/features/system-status/utils/{system-status.utils.test.ts → __tests__/system-status.utils.test.ts} +1 -1
  228. package/src/platforms/desktop/types/desktop-update.types.ts +9 -0
  229. package/src/shared/components/actions/action-link.tsx +49 -0
  230. package/src/shared/components/common/{agent-avatar.test.tsx → __tests__/agent-avatar.test.tsx} +1 -1
  231. package/src/shared/components/common/agent-identity/use-agent-identity.ts +3 -8
  232. package/src/shared/components/common/brand-header.tsx +1 -1
  233. package/src/shared/components/common/tag-input.tsx +1 -1
  234. package/src/shared/components/doc-browser/{doc-browser-context.test.tsx → __tests__/doc-browser-context.test.tsx} +1 -1
  235. package/src/shared/components/doc-browser/doc-browser-tab-strip.tsx +64 -161
  236. package/src/shared/components/doc-browser/doc-browser.tsx +4 -4
  237. package/src/shared/components/doc-browser/managers/doc-browser.manager.ts +39 -32
  238. package/src/shared/components/resizable-right-panel/__tests__/resizable-right-panel.test.tsx +66 -0
  239. package/src/shared/components/resizable-right-panel/resizable-right-panel.tsx +11 -8
  240. package/src/shared/components/ui/actions/icon-action-button.tsx +53 -0
  241. package/src/shared/components/ui/tab-strip/__tests__/compact-tab-strip.test.tsx +52 -0
  242. package/src/shared/components/ui/tab-strip/compact-tab-strip.tsx +228 -0
  243. package/src/shared/hooks/use-app-meta.ts +10 -0
  244. package/src/shared/hooks/use-config.ts +1 -148
  245. package/src/shared/lib/api/{ncp-session.test.ts → __tests__/ncp-session.test.ts} +3 -3
  246. package/src/shared/lib/api/{raw-client.test.ts → __tests__/raw-client.test.ts} +1 -1
  247. package/src/shared/lib/api/chat-session-type.types.ts +3 -0
  248. package/src/shared/lib/cadence/services/{adaptive-cadence.service.test.ts → __tests__/adaptive-cadence.service.test.ts} +1 -1
  249. package/src/shared/lib/host-capabilities/__tests__/host-capability.manager.test.ts +50 -0
  250. package/src/shared/lib/host-capabilities/host-capability.manager.ts +62 -0
  251. package/src/shared/lib/host-capabilities/index.ts +1 -0
  252. package/src/shared/lib/i18n/README.md +16 -3
  253. package/src/shared/lib/i18n/index.ts +93 -426
  254. package/src/shared/lib/i18n/locales/en-US/agents.json +49 -0
  255. package/src/shared/lib/i18n/locales/en-US/channel-auth.json +51 -0
  256. package/src/shared/lib/i18n/locales/en-US/channels.json +50 -0
  257. package/src/shared/lib/i18n/locales/en-US/chat.json +183 -0
  258. package/src/shared/lib/i18n/locales/en-US/core.json +311 -0
  259. package/src/shared/lib/i18n/locales/en-US/cron.json +32 -0
  260. package/src/shared/lib/i18n/locales/en-US/desktop-update.json +90 -0
  261. package/src/shared/lib/i18n/locales/en-US/doc-browser.json +87 -0
  262. package/src/shared/lib/i18n/locales/en-US/marketplace.json +72 -0
  263. package/src/shared/lib/i18n/locales/en-US/path-picker.json +12 -0
  264. package/src/shared/lib/i18n/locales/en-US/pwa.json +26 -0
  265. package/src/shared/lib/i18n/locales/en-US/remote.json +168 -0
  266. package/src/shared/lib/i18n/locales/en-US/runtime-control.json +105 -0
  267. package/src/shared/lib/i18n/locales/en-US/search.json +28 -0
  268. package/src/shared/lib/i18n/locales/zh-CN/agents.json +49 -0
  269. package/src/shared/lib/i18n/locales/zh-CN/channel-auth.json +51 -0
  270. package/src/shared/lib/i18n/locales/zh-CN/channels.json +50 -0
  271. package/src/shared/lib/i18n/locales/zh-CN/chat.json +183 -0
  272. package/src/shared/lib/i18n/locales/zh-CN/core.json +311 -0
  273. package/src/shared/lib/i18n/locales/zh-CN/cron.json +32 -0
  274. package/src/shared/lib/i18n/locales/zh-CN/desktop-update.json +90 -0
  275. package/src/shared/lib/i18n/locales/zh-CN/doc-browser.json +87 -0
  276. package/src/shared/lib/i18n/locales/zh-CN/marketplace.json +72 -0
  277. package/src/shared/lib/i18n/locales/zh-CN/path-picker.json +12 -0
  278. package/src/shared/lib/i18n/locales/zh-CN/pwa.json +26 -0
  279. package/src/shared/lib/i18n/locales/zh-CN/remote.json +168 -0
  280. package/src/shared/lib/i18n/locales/zh-CN/runtime-control.json +105 -0
  281. package/src/shared/lib/i18n/locales/zh-CN/search.json +28 -0
  282. package/src/shared/lib/i18n/runtime/{i18n-language-owner.test.ts → __tests__/i18n-language-owner.test.ts} +2 -2
  283. package/src/shared/lib/navigation-history/__tests__/navigation-history.utils.test.ts +60 -0
  284. package/src/shared/lib/navigation-history/index.ts +1 -0
  285. package/src/shared/lib/navigation-history/navigation-history.utils.ts +105 -0
  286. package/src/shared/lib/provider-models/{index.test.ts → __tests__/index.test.ts} +1 -1
  287. package/src/shared/lib/transport/{app-client.test.ts → __tests__/app-client.test.ts} +3 -3
  288. package/src/shared/lib/transport/{remote.transport.test.ts → __tests__/remote.transport.test.ts} +1 -1
  289. package/src/shared/lib/transport/{sse-stream.test.ts → __tests__/sse-stream.test.ts} +1 -1
  290. package/tsconfig.json +2 -5
  291. package/vite.config.ts +4 -4
  292. package/vitest.config.ts +4 -0
  293. package/dist/assets/app-presenter-provider-CDSjiqfE.js +0 -3
  294. package/dist/assets/arrow-left-Dd45Mvr1.js +0 -1
  295. package/dist/assets/channels-list-page-D-WYFmcG.js +0 -8
  296. package/dist/assets/chat-page-D1X8YNTC.js +0 -105
  297. package/dist/assets/config-split-page-CdJEkWxv.js +0 -1
  298. package/dist/assets/desktop-update-config-DOi5R1fX.js +0 -1
  299. package/dist/assets/doc-browser-D5FJcAyz.js +0 -1
  300. package/dist/assets/doc-browser-DewXa6oX.js +0 -1
  301. package/dist/assets/doc-browser-context-CpL2m4Sp.js +0 -1
  302. package/dist/assets/index-Q891JiF_.css +0 -1
  303. package/dist/assets/index-ZDJP_uJc.js +0 -101
  304. package/dist/assets/loader-circle-Dz4FssYC.js +0 -1
  305. package/dist/assets/mcp-marketplace-page-LmMhKH5a.js +0 -1
  306. package/dist/assets/mcp-marketplace-page-RqISBSqO.js +0 -40
  307. package/dist/assets/model-config-JUsW1Khb.js +0 -1
  308. package/dist/assets/play-BziM-Y34.js +0 -1
  309. package/dist/assets/plus-DrpyArC8.js +0 -1
  310. package/dist/assets/provider-models-C_yOh6DE.js +0 -1
  311. package/dist/assets/provider-scoped-model-input-IMD4W0jD.js +0 -1
  312. package/dist/assets/providers-list-BsDpxNzy.js +0 -1
  313. package/dist/assets/remote-DjhVMpVd.js +0 -1
  314. package/dist/assets/rotate-cw-DMBnsYKm.js +0 -1
  315. package/dist/assets/runtime-config-page-DzbTVebD.js +0 -1
  316. package/dist/assets/search-CjHGYvTI.js +0 -1
  317. package/dist/assets/search-config-CJ6OPxAf.js +0 -1
  318. package/dist/assets/secrets-config-CYOHWL7P.js +0 -3
  319. package/dist/assets/tabs-Czd2mj6z.js +0 -1
  320. package/dist/assets/tabs-custom-Ix4nkp2h.js +0 -1
  321. package/dist/assets/x-dpDISboO.js +0 -1
  322. package/src/features/chat/components/chat-session-workspace-panel-nav.tsx +0 -232
  323. package/src/features/chat/components/chat-session-workspace-panel.tsx +0 -371
  324. package/src/features/chat/components/layout/chat-sidebar-read-state.test.tsx +0 -145
  325. package/src/features/chat/components/layout/chat-sidebar.test.tsx +0 -896
  326. package/src/features/chat/hooks/use-chat-session-label.ts +0 -18
  327. package/src/features/chat/hooks/use-hydrated-ncp-agent.test.tsx +0 -90
  328. package/src/features/chat/hooks/use-ncp-chat-derived-state.ts +0 -181
  329. package/src/features/chat/hooks/use-ncp-chat-page-data.test.tsx +0 -70
  330. package/src/features/chat/hooks/use-ncp-chat-page-data.ts +0 -260
  331. package/src/features/chat/managers/chat-stream-actions.manager.ts +0 -35
  332. package/src/features/chat/managers/ncp-chat-input.manager.test.ts +0 -232
  333. package/src/features/chat/managers/ncp-chat-presenter.manager.ts +0 -28
  334. package/src/features/chat/managers/ncp-chat-thread.manager.test.ts +0 -241
  335. package/src/features/chat/types/chat-stream.types.ts +0 -32
  336. package/src/features/chat/utils/chat-session-preference-governance.utils.test.tsx +0 -114
  337. package/src/features/marketplace/components/marketplace-catalog-grid.tsx +0 -114
  338. package/src/shared/components/resizable-right-panel/resizable-right-panel.test.tsx +0 -38
  339. package/src/shared/components/ui/action-link.tsx +0 -27
  340. package/src/shared/components/ui/config-card.tsx +0 -71
  341. package/src/shared/components/ui/highlight-card.tsx +0 -40
  342. package/src/shared/components/ui/tabs-custom.tsx +0 -49
  343. package/src/shared/lib/i18n/agents.ts +0 -85
  344. package/src/shared/lib/i18n/channel-auth.constants.ts +0 -87
  345. package/src/shared/lib/i18n/channels.ts +0 -53
  346. package/src/shared/lib/i18n/chat-labels.utils.ts +0 -206
  347. package/src/shared/lib/i18n/cron-labels.utils.ts +0 -32
  348. package/src/shared/lib/i18n/desktop-update-labels.utils.ts +0 -165
  349. package/src/shared/lib/i18n/marketplace-labels.utils.ts +0 -78
  350. package/src/shared/lib/i18n/pwa.ts +0 -62
  351. package/src/shared/lib/i18n/remote.ts +0 -273
  352. package/src/shared/lib/i18n/runtime/doc-browser-labels.utils.ts +0 -120
  353. package/src/shared/lib/i18n/runtime/i18n.path-picker.ts +0 -12
  354. package/src/shared/lib/i18n/runtime-control-labels.utils.ts +0 -180
  355. package/src/shared/lib/i18n/search.ts +0 -37
  356. /package/dist/assets/{config-hints-Ceiol9x4.js → config-hints-Cl2XAhzV.js} +0 -0
  357. /package/src/{app.test.tsx → __tests__/app.test.tsx} +0 -0
  358. /package/src/app/components/layout/{app-layout.test.tsx → __tests__/app-layout.test.tsx} +0 -0
  359. /package/src/app/components/layout/{runtime-status-entry.test.tsx → __tests__/runtime-status-entry.test.tsx} +0 -0
  360. /package/src/app/components/layout/{settings-entry-page.test.tsx → __tests__/settings-entry-page.test.tsx} +0 -0
  361. /package/src/app/components/layout/{sidebar.layout.test.tsx → __tests__/sidebar.layout.test.tsx} +0 -0
  362. /package/src/features/channels/components/config/{channel-form.test.tsx → __tests__/channel-form.test.tsx} +0 -0
  363. /package/src/features/channels/components/config/{weixin-channel-auth-section.test.tsx → __tests__/weixin-channel-auth-section.test.tsx} +0 -0
  364. /package/src/features/channels/pages/{channels-list-page.test.tsx → __tests__/channels-list-page.test.tsx} +0 -0
  365. /package/src/features/chat/{hooks → features/input/hooks}/use-chat-input-bar-controller.ts +0 -0
  366. /package/src/features/chat/{utils → features/input/utils}/chat-composer-state.utils.ts +0 -0
  367. /package/src/features/chat/{utils → features/input/utils}/chat-inline-token.utils.ts +0 -0
  368. /package/src/features/chat/{utils → features/input/utils}/chat-input-bar.utils.ts +0 -0
  369. /package/src/features/chat/{utils → features/input/utils}/chat-input-toolbar.utils.ts +0 -0
  370. /package/src/features/chat/{utils → features/message/utils}/chat-message-core.utils.ts +0 -0
  371. /package/src/features/chat/{utils → features/message/utils}/chat-message-partial-json.utils.ts +0 -0
  372. /package/src/features/chat/{utils → features/message/utils}/chat-message-tool-agent-id.utils.ts +0 -0
  373. /package/src/features/chat/{utils → features/message/utils}/file-operation/card.utils.ts +0 -0
  374. /package/src/features/chat/{utils → features/message/utils}/file-operation/diff.utils.ts +0 -0
  375. /package/src/features/chat/{utils → features/message/utils}/file-operation/line-builder.utils.ts +0 -0
  376. /package/src/features/chat/{utils → features/message/utils}/file-operation/parsed-block.utils.ts +0 -0
  377. /package/src/features/chat/{utils → features/message/utils}/file-operation/record-readers.utils.ts +0 -0
  378. /package/src/features/chat/{utils → features/runtime/utils}/ncp-app-client-fetch.utils.ts +0 -0
  379. /package/src/features/chat/{utils → features/runtime/utils}/ncp-chat-runtime-availability.utils.ts +0 -0
  380. /package/src/features/chat/{components/conversation → features/session/components}/session-header/chat-session-header-menu-item.tsx +0 -0
  381. /package/src/features/chat/{components/conversation → features/session/components}/session-header/chat-session-project-dialog.tsx +0 -0
  382. /package/src/features/chat/{components/session → features/session/components}/session-run-badge.tsx +0 -0
  383. /package/src/features/chat/{utils → features/session/utils}/chat-context-window-indicator.utils.ts +0 -0
  384. /package/src/features/chat/{utils → features/session/utils}/chat-session-display.utils.ts +0 -0
  385. /package/src/features/chat/{utils → features/session/utils}/chat-session-route.utils.ts +0 -0
  386. /package/src/features/chat/{utils → features/session/utils}/ncp-session-adapter.utils.ts +0 -0
  387. /package/src/features/chat/{utils → features/session/utils}/ncp-session-context-metadata.utils.ts +0 -0
  388. /package/src/features/chat/{utils → features/session/utils}/session-context.utils.ts +0 -0
  389. /package/src/features/chat/{hooks → features/session-type/hooks}/use-ncp-chat-session-types.ts +0 -0
  390. /package/src/features/chat/{components/workspace → features/workspace/components}/chat-session-workspace-file-breadcrumbs.tsx +0 -0
  391. /package/src/features/marketplace/components/{marketplace-page-detail.test.tsx → __tests__/marketplace-page-detail.test.tsx} +0 -0
  392. /package/src/features/marketplace/components/curated-shelves/{marketplace-curated-scene-route.test.tsx → __tests__/marketplace-curated-scene-route.test.tsx} +0 -0
  393. /package/src/features/marketplace/components/detail-doc/{marketplace-detail-doc.test.ts → __tests__/marketplace-detail-doc.test.ts} +0 -0
  394. /package/src/features/marketplace/components/mcp/{mcp-marketplace-page.test.tsx → __tests__/mcp-marketplace-page.test.tsx} +0 -0
  395. /package/src/features/panel-apps/managers/{panel-app-bridge.manager.test.ts → __tests__/panel-app-bridge.manager.test.ts} +0 -0
  396. /package/src/features/panel-apps/utils/{panel-app-doc-browser.utils.test.ts → __tests__/panel-app-doc-browser.utils.test.ts} +0 -0
  397. /package/src/features/pwa/components/{pwa-install-entry.test.tsx → __tests__/pwa-install-entry.test.tsx} +0 -0
  398. /package/src/features/pwa/managers/{pwa-install.manager.test.ts → __tests__/pwa-install.manager.test.ts} +0 -0
  399. /package/src/features/pwa/managers/{pwa-shell-theme.manager.test.ts → __tests__/pwa-shell-theme.manager.test.ts} +0 -0
  400. /package/src/features/remote/components/{remote-access-page.test.tsx → __tests__/remote-access-page.test.tsx} +0 -0
  401. /package/src/features/right-panel-resources/utils/{right-panel-resource-route-resolver.utils.test.ts → __tests__/right-panel-resource-route-resolver.utils.test.ts} +0 -0
  402. /package/src/features/right-panel-resources/utils/{right-panel-resource-uri.utils.test.ts → __tests__/right-panel-resource-uri.utils.test.ts} +0 -0
  403. /package/src/features/service-apps/components/{service-apps-panel.test.tsx → __tests__/service-apps-panel.test.tsx} +0 -0
  404. /package/src/{shared/components → features/settings/components/config}/provider-advanced-settings-section.tsx +0 -0
  405. /package/src/{shared/components → features/settings/components/config}/provider-auth-section.tsx +0 -0
  406. /package/src/{shared → features/settings}/components/config/provider-models-section.tsx +0 -0
  407. /package/src/{shared/components → features/settings/components/config}/provider-pill-selector.tsx +0 -0
  408. /package/src/{shared → features/settings}/components/config/secrets-config-form.tsx +0 -0
  409. /package/src/features/settings/pages/{language-settings-page.test.tsx → __tests__/language-settings-page.test.tsx} +0 -0
  410. /package/src/{shared/components/config/provider-form-support.ts → features/settings/utils/provider-form-support.utils.ts} +0 -0
  411. /package/src/features/side-dock/managers/{side-dock.manager.test.ts → __tests__/side-dock.manager.test.ts} +0 -0
  412. /package/src/features/side-dock/utils/{side-dock-item.utils.test.ts → __tests__/side-dock-item.utils.test.ts} +0 -0
  413. /package/src/features/system-status/components/{desktop-update-config.test.tsx → __tests__/desktop-update-config.test.tsx} +0 -0
  414. /package/src/features/system-status/pages/{runtime-config-page.test.tsx → __tests__/runtime-config-page.test.tsx} +0 -0
  415. /package/src/platforms/desktop/components/{desktop-app-shell.test.tsx → __tests__/desktop-app-shell.test.tsx} +0 -0
  416. /package/src/platforms/mobile/components/{mobile-app-shell.test.tsx → __tests__/mobile-app-shell.test.tsx} +0 -0
  417. /package/src/platforms/mobile/components/{mobile-bottom-nav.test.tsx → __tests__/mobile-bottom-nav.test.tsx} +0 -0
  418. /package/src/shared/components/common/{brand-header.test.tsx → __tests__/brand-header.test.tsx} +0 -0
  419. /package/src/shared/components/doc-browser/{doc-browser.test.tsx → __tests__/doc-browser.test.tsx} +0 -0
  420. /package/src/shared/components/{ui → feedback}/notice-card.tsx +0 -0
  421. /package/src/shared/components/path-picker/{server-path-picker-dialog.test.tsx → __tests__/server-path-picker-dialog.test.tsx} +0 -0
  422. /package/src/shared/components/{ui → settings}/setting-row.tsx +0 -0
  423. /package/src/shared/components/{ui → status}/status-dot.tsx +0 -0
  424. /package/src/shared/components/{ui → tags}/tag-chip.tsx +0 -0
  425. /package/src/shared/lib/api/{api-base.test.ts → __tests__/api-base.test.ts} +0 -0
  426. /package/src/shared/lib/api/{client.test.ts → __tests__/client.test.ts} +0 -0
  427. /package/src/shared/lib/api/{ncp-session-query-cache.utils.test.ts → __tests__/ncp-session-query-cache.utils.test.ts} +0 -0
  428. /package/src/shared/lib/app-resource-uri/{app-resource-uri.test.ts → __tests__/app-resource-uri.test.ts} +0 -0
  429. /package/src/shared/lib/resource-uri/utils/{resource-uri-resolver.utils.test.ts → __tests__/resource-uri-resolver.utils.test.ts} +0 -0
  430. /package/src/shared/lib/session-project/{workspace-file-breadcrumb.test.ts → __tests__/workspace-file-breadcrumb.test.ts} +0 -0
@@ -1,206 +0,0 @@
1
- export const CHAT_LABELS: Record<string, { zh: string; en: string }> = {
2
- chatPageTitle: { zh: 'Agent 对话', en: 'Agent Chat' },
3
- chatPageDescription: {
4
- zh: '在 UI 内直接与 Agent 交互,支持多会话与多 Agent 切换。',
5
- en: 'Chat with your agent directly in UI with multi-session and multi-agent switching.'
6
- },
7
- chatRefresh: { zh: '刷新', en: 'Refresh' },
8
- chatNewSession: { zh: '新会话', en: 'New Session' },
9
- chatSearchSessionPlaceholder: { zh: '搜索会话 key / 标签', en: 'Search session key / label' },
10
- chatAgentLabel: { zh: '目标 Agent', en: 'Target Agent' },
11
- chatSelectAgent: { zh: '选择 Agent', en: 'Select Agent' },
12
- chatModelLabel: { zh: '对话模型', en: 'Chat Model' },
13
- chatSelectModel: { zh: '选择模型', en: 'Select model' },
14
- chatThinkingLevelOff: { zh: '思考关闭', en: 'Thinking Off' },
15
- chatThinkingLevelMinimal: { zh: '思考 Minimal', en: 'Thinking Minimal' },
16
- chatThinkingLevelLow: { zh: '思考 Low', en: 'Thinking Low' },
17
- chatThinkingLevelMedium: { zh: '思考 Medium', en: 'Thinking Medium' },
18
- chatThinkingLevelHigh: { zh: '思考 High', en: 'Thinking High' },
19
- chatThinkingLevelAdaptive: { zh: '思考 Adaptive', en: 'Thinking Adaptive' },
20
- chatThinkingLevelXhigh: { zh: '思考 XHigh', en: 'Thinking XHigh' },
21
- chatSessionTypeLabel: { zh: '会话类型', en: 'Session Type' },
22
- chatSessionTypeNative: { zh: '原生', en: 'Native' },
23
- chatSessionTypeCodex: { zh: 'Codex', en: 'Codex' },
24
- chatSessionTypeClaude: { zh: 'Claude Code', en: 'Claude Code' },
25
- chatSessionTypeWeixin: { zh: '微信', en: 'WeChat' },
26
- chatSessionTypeFeishu: { zh: '飞书', en: 'Feishu' },
27
- chatSessionTypeCron: { zh: '定时任务', en: 'Cron' },
28
- chatSessionTypeUnavailableSuffix: {
29
- zh: '当前不可用,请启用对应运行时或新建 Native 会话。',
30
- en: 'is unavailable now. Re-enable the runtime or create a native session.'
31
- },
32
- chatModelNoOptions: { zh: '暂无可用模型,请先配置提供商。', en: 'No available models. Configure a provider first.' },
33
- chatGoConfigureProvider: { zh: '去配置提供商', en: 'Go to Providers' },
34
- chatProviderSetupTitle: { zh: '开始前先配置提供商', en: 'Configure a Provider First' },
35
- chatProviderSetupDescription: {
36
- zh: '你还没有可用模型。先在提供商页面配置并保存至少一个 Provider 后,再回来开始对话。',
37
- en: 'No models are available yet. Configure and save at least one provider, then return to start chatting.'
38
- },
39
- chatSessionLabel: { zh: '当前会话', en: 'Current Session' },
40
- chatNoSession: { zh: '未选择会话', en: 'No session selected' },
41
- chatHistoryLoading: { zh: '加载会话历史中...', en: 'Loading session history...' },
42
- chatBackToParent: { zh: '返回父会话', en: 'Back to parent' },
43
- chatSessionOpenChildSessions: { zh: '查看子会话', en: 'View child sessions' },
44
- chatSessionOpenCronJobs: { zh: '查看本会话定时任务', en: 'View session cron jobs' },
45
- chatChildSessionLoading: { zh: '正在加载子会话…', en: 'Loading child session…' },
46
- chatChildSessionEmpty: { zh: '子会话还没有消息。', en: 'No child session messages yet.' },
47
- chatWorkspaceClosePanel: { zh: '关闭工作区侧栏', en: 'Close workspace panel' },
48
- chatWorkspaceChildSessions: { zh: '子会话', en: 'Child sessions' },
49
- chatWorkspaceOpenFiles: { zh: '打开的文件', en: 'Open files' },
50
- chatWorkspacePreview: { zh: '预览', en: 'Preview' },
51
- chatWorkspaceDiff: { zh: 'Diff', en: 'Diff' },
52
- chatWorkspaceCloseFile: { zh: '关闭文件', en: 'Close file' },
53
- chatWorkspaceLoadingFile: { zh: '正在加载文件…', en: 'Loading file…' },
54
- chatWorkspacePreviewUnsupported: { zh: '该文件暂不支持在侧栏预览。', en: 'This file is not supported in the sidebar preview yet.' },
55
- chatWorkspacePreviewEmpty: { zh: '当前没有可显示的文件内容。', en: 'No file content is available for preview.' },
56
- chatWorkspaceDiffEmpty: { zh: '当前没有可显示的 diff 内容。', en: 'No diff content is available.' },
57
- chatWorkspacePreviewTruncated: { zh: '内容已截断', en: 'Preview truncated' },
58
- chatWorkspaceSessionCronJobs: { zh: '本会话定时任务', en: 'Session cron jobs' },
59
- chatWorkspaceCronJobEmpty: { zh: '这个会话暂无定时任务。', en: 'This session has no cron jobs.' },
60
- chatSessionUnread: { zh: '会话有未读更新', en: 'Session has unread updates' },
61
- chatTyping: { zh: 'Agent 正在思考...', en: 'Agent is thinking...' },
62
- chatRuntimeInitializing: {
63
- zh: '聊天能力正在初始化。你可以先输入内容,完成后即可发送。',
64
- en: 'Chat is still initializing. You can keep typing and send once startup finishes.'
65
- },
66
- chatRuntimeInitializationFailed: {
67
- zh: '聊天能力启动失败,请稍后重试或检查服务日志。',
68
- en: 'Chat startup failed. Please retry in a moment or inspect the service logs.'
69
- },
70
- chatInputPlaceholder: { zh: '输入消息,输入 / 选择技能,Enter 发送,Shift + Enter 换行', en: 'Type a message, type / to select skills, Enter to send, Shift + Enter for newline' },
71
- chatInputPlaceholderCompact: { zh: '发消息...', en: 'Message NextClaw...' },
72
- chatInputHint: { zh: '支持多轮上下文,默认走当前会话。', en: 'Multi-turn context is preserved in the current session.' },
73
- chatSlashSectionCommands: { zh: '命令', en: 'Commands' },
74
- chatSlashSectionSkills: { zh: '技能', en: 'Skills' },
75
- chatSlashTypeCommand: { zh: '命令', en: 'Command' },
76
- chatSlashTypeSkill: { zh: '技能', en: 'Skill' },
77
- chatSlashSkillSpec: { zh: '标识', en: 'Spec' },
78
- chatSlashSkillScope: { zh: '作用域', en: 'Scope' },
79
- chatSlashLoading: { zh: '加载命令与技能中…', en: 'Loading commands and skills…' },
80
- chatSlashNoResult: { zh: '无匹配项', en: 'No matches' },
81
- chatSlashHint: { zh: '输入 / 触发命令或技能选择', en: 'Type / to access commands and skills' },
82
- chatSlashCommandHint: { zh: '回车插入命令,继续输入参数后发送。', en: 'Press Enter to insert command, then add args and send.' },
83
- chatSlashSkillHint: { zh: '回车把该技能加入本轮请求。', en: 'Press Enter to add this skill for the next turn.' },
84
- chatSkillScopeBuiltin: { zh: '内建', en: 'Built-in' },
85
- chatSkillScopeProject: { zh: '项目', en: 'Project' },
86
- chatSkillScopeWorkspace: { zh: '工作区', en: 'Workspace' },
87
- chatPickerRecent: { zh: '最近使用', en: 'Recent' },
88
- chatPickerRecentModels: { zh: '最近选择', en: 'Recent' },
89
- chatPickerAllModels: { zh: '全部模型', en: 'All models' },
90
- chatPickerAllSkills: { zh: '全部技能', en: 'All skills' },
91
- chatSend: { zh: '发送', en: 'Send' },
92
- chatStop: { zh: '停止', en: 'Stop' },
93
- chatStopPreparing: { zh: '正在建立可停止会话,请稍候…', en: 'Preparing stoppable run…' },
94
- chatStopUnavailable: { zh: '当前后端引擎不支持手动停止。', en: 'Manual stop is not supported by the current backend engine.' },
95
- chatContextWindow: { zh: '上下文窗口', en: 'Context window' },
96
- chatContextWindowUsed: { zh: '预计占用', en: 'Projected use' },
97
- chatContextWindowTotal: { zh: '总窗口', en: 'Total' },
98
- chatContextWindowAvailable: { zh: '剩余', en: 'Available' },
99
- chatContextWindowPruned: { zh: '安全裁剪后', en: 'After safety pruning' },
100
- chatContextWindowDroppedHistory: { zh: '已丢弃历史消息', en: 'Dropped history' },
101
- chatContextWindowTruncatedTools: { zh: '已截断工具结果', en: 'Truncated tool results' },
102
- chatContextWindowUpdatedAt: { zh: '更新时间', en: 'Updated' },
103
- chatContextCompactionCompressing: { zh: '正在压缩较早上下文', en: 'Compressing earlier context' },
104
- chatContextCompactionCompressed: { zh: '较早上下文已自动压缩', en: 'Earlier context was auto-compacted' },
105
- chatContextCompactionCoveredMessages: { zh: '覆盖消息数', en: 'Covered messages' },
106
- chatContextCompactionOriginalTokens: { zh: '压缩前估算', en: 'Estimated before compaction' },
107
- chatContextCompactionProjectedTokens: { zh: '压缩后估算', en: 'Estimated after compaction' },
108
- chatSending: { zh: '发送中...', en: 'Sending...' },
109
- chatQueueSend: { zh: '排队发送', en: 'Queue' },
110
- chatQueuedHintPrefix: { zh: '当前有', en: 'Queued' },
111
- chatQueuedHintSuffix: { zh: '条消息待发送。', en: 'pending messages.' },
112
- chatQueueMoveFirst: { zh: '置顶到下一条', en: 'Move to Next' },
113
- chatDeleteSession: { zh: '删除会话', en: 'Delete Session' },
114
- chatDeleteSessionConfirm: { zh: '确认删除当前会话?', en: 'Delete the current session?' },
115
- chatSessionMoreActions: { zh: '更多操作', en: 'More actions' },
116
- chatSessionSetProject: { zh: '设置项目目录', en: 'Set Project Directory' },
117
- chatSessionClearProject: { zh: '清除项目目录', en: 'Clear Project Directory' },
118
- chatSessionProjectDialogTitle: { zh: '设置项目目录', en: 'Set Project Directory' },
119
- chatSessionProjectDialogDescription: {
120
- zh: '把当前会话绑定到运行 NextClaw 服务的那台机器上的一个目录,让后续消息和工具执行围绕这个目录展开。',
121
- en: 'Bind this session to a directory on the machine running the NextClaw service so future messages and tool runs work around that directory.'
122
- },
123
- chatSessionProjectPathLabel: { zh: '项目目录路径', en: 'Project Directory Path' },
124
- chatSessionProjectPathPlaceholder: { zh: '/path/to/project', en: '/path/to/project' },
125
- chatSessionProjectUpdateHint: {
126
- zh: '这里浏览和选择的是服务端机器上的目录。修改项目目录只影响后续消息和后续工具执行,不会改写历史会话。',
127
- en: 'The browser lists directories from the server machine. Changing the project directory only affects future messages and tool runs. History stays unchanged.'
128
- },
129
- chatSessionProjectUpdated: { zh: '项目目录已更新', en: 'Project directory updated' },
130
- chatSessionProjectCleared: { zh: '项目目录已清除', en: 'Project directory cleared' },
131
- chatSendFailed: { zh: '发送消息失败', en: 'Failed to send message' },
132
- chatRoleUser: { zh: '你', en: 'You' },
133
- chatRoleAssistant: { zh: '助手', en: 'Assistant' },
134
- chatRoleTool: { zh: '工具', en: 'Tool' },
135
- chatRoleSystem: { zh: '系统', en: 'System' },
136
- chatRoleMessage: { zh: '消息', en: 'Message' },
137
- chatToolCall: { zh: '工具调用', en: 'Tool Call' },
138
- chatToolResult: { zh: '工具结果', en: 'Tool Result' },
139
- chatToolInput: { zh: '输入', en: 'Input' },
140
- chatToolWorkflow: { zh: '工具工作流', en: 'Tool Workflow' },
141
- chatToolWorkflowDetails: { zh: '展开查看参数和结果', en: 'Expand to view params and results' },
142
- chatToolOutput: { zh: '输出', en: 'Output' },
143
- chatToolNoOutput: { zh: '无输出(执行完成)', en: 'No output (completed)' },
144
- chatToolStatusPreparing: { zh: '准备中', en: 'Preparing' },
145
- chatToolStatusRunning: { zh: '执行中', en: 'Running' },
146
- chatToolStatusCompleted: { zh: '已完成', en: 'Completed' },
147
- chatToolStatusFailed: { zh: '失败', en: 'Failed' },
148
- chatToolStatusCancelled: { zh: '已取消', en: 'Cancelled' },
149
- chatReasoning: { zh: '推理过程', en: 'Reasoning' },
150
- chatImageAttachment: { zh: '图片附件', en: 'Image attachment' },
151
- chatFileAttachment: { zh: '文件附件', en: 'File attachment' },
152
- chatAttachmentOpen: { zh: '打开', en: 'Open' },
153
- chatAttachmentAttached: { zh: '已附加', en: 'Attached' },
154
- chatAttachmentCategoryArchive: { zh: '压缩包', en: 'Archive' },
155
- chatAttachmentCategoryAudio: { zh: '音频', en: 'Audio' },
156
- chatAttachmentCategoryCode: { zh: '代码文件', en: 'Code file' },
157
- chatAttachmentCategoryData: { zh: '数据文件', en: 'Data file' },
158
- chatAttachmentCategoryDocument: { zh: '文档', en: 'Document' },
159
- chatAttachmentCategoryGeneric: { zh: '文件', en: 'File' },
160
- chatAttachmentCategoryImage: { zh: '图片', en: 'Image' },
161
- chatAttachmentCategoryPdf: { zh: 'PDF 文档', en: 'PDF document' },
162
- chatAttachmentCategorySheet: { zh: '表格', en: 'Spreadsheet' },
163
- chatAttachmentCategoryVideo: { zh: '视频', en: 'Video' },
164
- chatUnknownPart: { zh: '未知消息片段', en: 'Unknown message part' },
165
- chatCodeCopy: { zh: '复制代码', en: 'Copy' },
166
- chatCodeCopied: { zh: '已复制', en: 'Copied' },
167
- chatMessageCopy: { zh: '复制', en: 'Copy' },
168
- chatMessageCopied: { zh: '已复制', en: 'Copied' },
169
- chatSidebarNewTask: { zh: '新任务', en: 'New Task' },
170
- chatSidebarSearchPlaceholder: { zh: '搜索对话...', en: 'Search conversations...' },
171
- chatSidebarScheduledTasks: { zh: '定时任务', en: 'Scheduled Tasks' },
172
- chatSidebarSkills: { zh: '技能', en: 'Skills' },
173
- chatSidebarTaskRecords: { zh: '会话记录', en: 'Sessions' },
174
- chatSidebarViewTime: { zh: '时间', en: 'Time' },
175
- chatSidebarViewProject: { zh: '项目', en: 'Project' },
176
- chatSidebarToday: { zh: '今天', en: 'Today' },
177
- chatSidebarYesterday: { zh: '昨天', en: 'Yesterday' },
178
- chatSidebarPrevious7Days: { zh: '近 7 天', en: 'Previous 7 Days' },
179
- chatSidebarOlder: { zh: '更早', en: 'Older' },
180
- chatSidebarProjectViewEmpty: { zh: '还没有绑定项目的会话', en: 'No project conversations yet' },
181
- chatWelcomeTitle: { zh: '你好,有什么可以帮你的吗?', en: 'Hello, how can I help you?' },
182
- chatWelcomeSubtitle: { zh: '开始一个新任务或选择已有对话', en: 'Start a new task or select an existing conversation' },
183
- chatWelcomeCapability1Title: { zh: '智能对话', en: 'Smart Conversations' },
184
- chatWelcomeCapability1Desc: { zh: '多轮上下文对话,支持多种 AI 模型', en: 'Multi-turn context conversations with multiple AI models' },
185
- chatWelcomeCapability2Title: { zh: '技能扩展', en: 'Skill Extensions' },
186
- chatWelcomeCapability2Desc: { zh: '通过安装技能扩展 Agent 能力', en: 'Extend Agent capabilities by installing skills' },
187
- chatWelcomeCapability3Title: { zh: '定时任务', en: 'Scheduled Tasks' },
188
- chatWelcomeCapability3Desc: { zh: '设置定时执行的自动化任务', en: 'Set up scheduled automated tasks' },
189
- chatSkillsPickerTitle: { zh: '技能', en: 'Skills' },
190
- chatSkillsPickerEmpty: { zh: '暂无已安装技能', en: 'No skills installed' },
191
- chatSkillsPickerSearchPlaceholder: { zh: '搜索技能', en: 'Search skills' },
192
- chatSkillsPickerNoDescription: { zh: '暂无描述', en: 'No description' },
193
- chatSkillsPickerOfficial: { zh: '官方', en: 'Official' },
194
- chatSkillsPickerManage: { zh: '管理技能', en: 'Manage Skills' },
195
- chatInputAttach: { zh: '添加附件', en: 'Attach file' },
196
- chatInputAttachmentUnsupported: {
197
- zh: '当前上传流程不支持该文件类型。',
198
- en: 'This file type is not supported in the current upload flow.'
199
- },
200
- chatInputAttachmentTooLarge: {
201
- zh: '文件不能超过 {maxMb} MB。',
202
- en: 'Files must be {maxMb} MB or smaller.'
203
- },
204
- chatInputAttachmentReadFailed: { zh: '读取文件失败,请重试。', en: 'Failed to read the file. Please try again.' },
205
- chatInputAttachComingSoon: { zh: '即将支持', en: 'Coming soon' }
206
- };
@@ -1,32 +0,0 @@
1
- export const CRON_LABELS: Record<string, { zh: string; en: string }> = {
2
- cronPageTitle: { zh: '定时任务', en: 'Cron Jobs' },
3
- cronPageDescription: { zh: '查看与删除定时任务,关注执行时间与状态。', en: 'View and delete cron jobs, track schedule and status.' },
4
- cronSearchPlaceholder: { zh: '搜索名称 / 消息 / ID', en: 'Search name / message / ID' },
5
- cronStatusLabel: { zh: '状态', en: 'Status' },
6
- cronStatusAll: { zh: '全部', en: 'All' },
7
- cronStatusEnabled: { zh: '仅启用', en: 'Enabled' },
8
- cronStatusDisabled: { zh: '仅禁用', en: 'Disabled' },
9
- cronTotalLabel: { zh: '总数', en: 'Total' },
10
- cronLoading: { zh: '加载定时任务中...', en: 'Loading cron jobs...' },
11
- cronEmpty: { zh: '暂无定时任务。', en: 'No cron jobs yet.' },
12
- cronScheduleLabel: { zh: '计划', en: 'Schedule' },
13
- cronSessionLabel: { zh: '会话', en: 'Session' },
14
- cronDeliverTo: { zh: '投递到', en: 'Deliver to' },
15
- cronNextRun: { zh: '下次执行', en: 'Next run' },
16
- cronLastRun: { zh: '上次执行', en: 'Last run' },
17
- cronLastStatus: { zh: '上次状态', en: 'Last status' },
18
- cronDeleteConfirm: { zh: '确认删除定时任务', en: 'Delete cron job' },
19
- cronOneShot: { zh: '一次性', en: 'One-shot' },
20
- cronEnable: { zh: '启用', en: 'Enable' },
21
- cronDisable: { zh: '禁用', en: 'Disable' },
22
- cronRunNow: { zh: '立即执行', en: 'Run now' },
23
- cronEnableConfirm: { zh: '确认启用定时任务', en: 'Enable cron job' },
24
- cronDisableConfirm: { zh: '确认禁用定时任务', en: 'Disable cron job' },
25
- cronRunConfirm: { zh: '确认立即执行定时任务', en: 'Run cron job now' },
26
- cronRunForceConfirm: { zh: '任务已禁用,仍要立即执行', en: 'Cron job disabled. Force run now' },
27
- cronMoreActions: { zh: '更多操作', en: 'More actions' },
28
- cronCreatedAt: { zh: '创建时间', en: 'Created' },
29
- cronEmptyGuide: { zh: '在对话中告诉 Agent 你需要定时执行的任务', en: 'Tell your Agent about scheduled tasks in chat' },
30
- cronId: { zh: '任务 ID', en: 'Job ID' },
31
- cronUpdatedAt: { zh: '更新时间', en: 'Updated' }
32
- };
@@ -1,165 +0,0 @@
1
- export const DESKTOP_UPDATE_LABELS: Record<string, { zh: string; en: string }> = {
2
- updates: { zh: '更新', en: 'Updates' },
3
- runtimeUpdatesPageTitle: { zh: '版本更新', en: 'Runtime Updates' },
4
- runtimeUpdatesPageDescription: {
5
- zh: '自动检查并后台下载新版本,由你决定何时切换到新的运行版本。',
6
- en: 'Check and download new versions automatically, then decide when to switch to the new runtime.'
7
- },
8
- runtimeUpdatesUnavailableTitle: { zh: '当前环境暂不支持更新', en: 'Updates Are Currently Unavailable' },
9
- runtimeUpdatesUnavailableDescription: {
10
- zh: '这个运行环境暂时没有可用的更新宿主。',
11
- en: 'This runtime environment does not currently expose an update host.'
12
- },
13
- runtimeUpdatesUnavailableHint: {
14
- zh: '更新入口会在宿主支持后自动出现,不需要前端单独区分环境。',
15
- en: 'The update entry appears automatically once the host supports updates.'
16
- },
17
- runtimeUpdatesHostVersion: { zh: '宿主版本', en: 'Host Version' },
18
- runtimeUpdatesDownloadedBannerDescription: {
19
- zh: '版本 {version} 已下载完成,确认后即可切换到新版本。',
20
- en: 'Version {version} has finished downloading and is ready to switch over when you confirm.'
21
- },
22
- runtimeUpdatesActionsDescription: {
23
- zh: '支持手动检查、手动下载,以及在你准备好之后切换到已下载的新版本。',
24
- en: 'Manually check, manually download, and switch to a downloaded version whenever you are ready.'
25
- },
26
- runtimeUpdatesApplyNow: { zh: '立即更新', en: 'Update Now' },
27
- runtimeUpdatesLoadFailed: { zh: '读取更新状态失败', en: 'Failed to load update state' },
28
- runtimeUpdatesCheckFailed: { zh: '检查更新失败', en: 'Failed to check for updates' },
29
- runtimeUpdatesDownloadFailed: { zh: '下载更新失败', en: 'Failed to download update' },
30
- runtimeUpdatesApplyFailed: { zh: '应用更新失败', en: 'Failed to apply update' },
31
- runtimeUpdatesPreferencesFailed: { zh: '保存更新偏好失败', en: 'Failed to save update preferences' },
32
- runtimeUpdatesChannelChangeFailed: { zh: '切换更新通道失败', en: 'Failed to change the release channel' },
33
- runtimeUpdatesAlreadyLatest: { zh: '当前已经是最新版本。', en: 'You already have the latest version.' },
34
- runtimeUpdatesReadyToApply: { zh: '更新已下载完成,已经可以切换到新版本。', en: 'The update is ready and can be applied now.' },
35
- runtimeUpdatesAvailable: { zh: '发现新版本 {version}。', en: 'Version {version} is available.' },
36
- runtimeUpdatesUnknownVersion: { zh: '新版本', en: 'a new version' },
37
- runtimeUpdatesChannelChanged: {
38
- zh: '已切换到 {channel} 更新通道。',
39
- en: 'Switched to the {channel} release channel.'
40
- },
41
- runtimeUpdatesChannelChangedWithUpdate: {
42
- zh: '已切换到 {channel} 通道,发现版本 {version}。',
43
- en: 'Switched to the {channel} channel and found version {version}.'
44
- },
45
- desktopUpdatesPageTitle: { zh: '桌面端更新', en: 'Desktop Updates' },
46
- desktopUpdatesPageDescription: {
47
- zh: '在应用内检查、下载并决定何时应用新的桌面端版本。',
48
- en: 'Check, download, and decide when to apply new desktop versions without leaving the app.'
49
- },
50
- desktopUpdatesDesktopOnlyTitle: { zh: '当前仅桌面端可用', en: 'Currently Desktop Only' },
51
- desktopUpdatesDesktopOnlyDescription: {
52
- zh: '这个页面暂时只在 NextClaw Desktop 中可用。',
53
- en: 'This page is currently only available inside NextClaw Desktop.'
54
- },
55
- desktopUpdatesDesktopOnlyFutureHint: {
56
- zh: '网页端与其他产品形态的更新体验还在继续完善,敬请期待。',
57
- en: 'Update experiences for the web and other product surfaces are still being built. Stay tuned.'
58
- },
59
- desktopUpdatesOverviewTitle: { zh: '当前状态', en: 'Current Status' },
60
- desktopUpdatesOverviewDescription: {
61
- zh: '查看当前已运行版本、可用版本和最近一次检查结果。',
62
- en: 'Review the running version, the available version, and the latest check result.'
63
- },
64
- desktopUpdatesStatusLabel: { zh: '更新状态', en: 'Update Status' },
65
- desktopUpdatesStatusIdle: { zh: '待命', en: 'Idle' },
66
- desktopUpdatesStatusChecking: { zh: '检查中', en: 'Checking' },
67
- desktopUpdatesStatusAvailable: { zh: '有可用更新', en: 'Update Available' },
68
- desktopUpdatesStatusDownloading: { zh: '下载中', en: 'Downloading' },
69
- desktopUpdatesStatusDownloaded: { zh: '已下载待应用', en: 'Downloaded' },
70
- desktopUpdatesStatusUpToDate: { zh: '已是最新', en: 'Up to Date' },
71
- desktopUpdatesStatusBlocked: { zh: '更新被阻塞', en: 'Blocked' },
72
- desktopUpdatesStatusFailed: { zh: '更新失败', en: 'Failed' },
73
- desktopUpdatesInlineDownload: { zh: '下载', en: 'Download' },
74
- desktopUpdatesInlineDownloading: { zh: '下载中', en: 'Downloading' },
75
- desktopUpdatesInlineDownloadingPercent: { zh: '下载 {percent}%', en: '{percent}%' },
76
- desktopUpdatesInlineReady: { zh: '更新', en: 'Update' },
77
- desktopUpdatesInlineApplying: { zh: '应用中', en: 'Applying' },
78
- desktopUpdatesLauncherVersion: { zh: '桌面壳版本', en: 'Launcher Version' },
79
- desktopUpdatesCurrentBundleVersion: { zh: '当前内核版本', en: 'Current Kernel Version' },
80
- desktopUpdatesAvailableVersion: { zh: '可用版本', en: 'Available Version' },
81
- desktopUpdatesLastCheckedAt: { zh: '上次检查时间', en: 'Last Checked' },
82
- desktopUpdatesCurrentChannel: { zh: '当前更新通道', en: 'Current Release Channel' },
83
- desktopUpdatesDownloadedBannerTitle: { zh: '更新已就绪', en: 'Update Ready' },
84
- desktopUpdatesDownloadedBannerDescription: {
85
- zh: '版本 {version} 已下载完成,等你确认后即可重启应用并完成更新。',
86
- en: 'Version {version} is ready. Restart the app whenever you want to apply it.'
87
- },
88
- desktopUpdatesDownloadProgressPercent: {
89
- zh: '正在下载 {percent}%',
90
- en: 'Downloading {percent}%'
91
- },
92
- desktopUpdatesDownloadProgressUnknown: {
93
- zh: '正在下载',
94
- en: 'Downloading'
95
- },
96
- desktopUpdatesBlockedTitle: {
97
- zh: '更新暂时无法继续',
98
- en: 'Update Blocked'
99
- },
100
- desktopUpdatesBlockedDescription: {
101
- zh: '当前安装环境需要先处理阻塞项,之后才能继续更新。',
102
- en: 'Resolve the current installation requirement before continuing the update.'
103
- },
104
- 'desktopUpdatesBlockedRootCause.signature-verification-unavailable': { zh: '根因:缺少更新签名公钥,无法验证更新包来源;请安装包含正确更新配置的新版本,或由维护者配置更新公钥。', en: 'Root cause: missing update public key; install a configured build or ask the maintainer to set the key.' },
105
- 'desktopUpdatesBlockedRootCause.host-too-old': { zh: '根因:当前宿主版本太旧,不满足新运行包的最低宿主版本要求;请先升级 NextClaw 启动器。', en: 'Root cause: the host is too old for this runtime bundle; upgrade the NextClaw launcher first.' },
106
- 'desktopUpdatesBlockedRootCause.unsupported-installation': { zh: '根因:当前安装形态或更新源配置不支持自动更新;请安装支持自动更新的版本,或由维护者补齐更新源配置。', en: 'Root cause: this installation or update source does not support auto-update; use a configured build.' },
107
- desktopUpdatesPreferencesTitle: { zh: '更新偏好', en: 'Update Preferences' },
108
- desktopUpdatesPreferencesDescription: {
109
- zh: '默认自动检查更新,但是否后台下载由你决定。',
110
- en: 'Automatic checks stay on by default, while background download remains under your control.'
111
- },
112
- desktopUpdatesReleaseChannel: { zh: '更新通道', en: 'Release Channel' },
113
- desktopUpdatesReleaseChannelHelp: {
114
- zh: 'Stable 面向日常主力使用;Beta 用于提前体验新版本,但可能更不稳定。',
115
- en: 'Stable is for everyday use, while Beta lets you try newer builds earlier with more risk.'
116
- },
117
- desktopUpdatesReleaseChannelDowngradeHint: {
118
- zh: '切回 Stable 后不会立刻强制降级;只有当 Stable 追平或超过当前版本时,才会继续提供 Stable 更新。',
119
- en: 'Switching back to Stable does not force an immediate downgrade. Stable updates resume once that channel catches up with or exceeds your current version.'
120
- },
121
- desktopUpdatesChannelStable: { zh: 'Stable', en: 'Stable' },
122
- desktopUpdatesChannelBeta: { zh: 'Beta', en: 'Beta' },
123
- desktopUpdatesBetaBadgeTitle: { zh: '当前正在跟随 Beta 通道', en: 'Following the Beta Channel' },
124
- desktopUpdatesBetaBadgeDescription: {
125
- zh: '你会更早收到新版本,但也可能遇到更多变动和回归。',
126
- en: 'You will receive new versions earlier, but you may also encounter more change and regression risk.'
127
- },
128
- desktopUpdatesAutomaticChecks: { zh: '自动检查更新', en: 'Automatic Update Checks' },
129
- desktopUpdatesAutomaticChecksHelp: {
130
- zh: '启动应用后自动检查是否有新版本。',
131
- en: 'Check for new versions automatically after the app starts.'
132
- },
133
- desktopUpdatesAutoDownload: { zh: '发现更新后自动后台下载', en: 'Auto Download in Background' },
134
- desktopUpdatesAutoDownloadHelp: {
135
- zh: '检查到更新后自动把新版本下载到本地,但仍由你决定何时应用。',
136
- en: 'Download new versions automatically after detection, while still letting you decide when to apply them.'
137
- },
138
- desktopUpdatesActionsTitle: { zh: '更新操作', en: 'Update Actions' },
139
- desktopUpdatesActionsDescription: {
140
- zh: '支持手动检查、手动下载,以及在你准备好之后重启应用完成更新。',
141
- en: 'Manually check, manually download, and restart the app when you are ready to finish the update.'
142
- },
143
- desktopUpdatesCheckNow: { zh: '检查更新', en: 'Check for Updates' },
144
- desktopUpdatesDownloadNow: { zh: '下载更新', en: 'Download Update' },
145
- desktopUpdatesApplyNow: { zh: '立即重启更新', en: 'Restart to Update' },
146
- desktopUpdatesReleaseNotes: { zh: '查看更新说明', en: 'Release Notes' },
147
- desktopUpdatesLoadFailed: { zh: '读取更新状态失败', en: 'Failed to load update state' },
148
- desktopUpdatesCheckFailed: { zh: '检查更新失败', en: 'Failed to check for updates' },
149
- desktopUpdatesDownloadFailed: { zh: '下载更新失败', en: 'Failed to download update' },
150
- desktopUpdatesApplyFailed: { zh: '应用更新失败', en: 'Failed to apply update' },
151
- desktopUpdatesPreferencesFailed: { zh: '保存更新偏好失败', en: 'Failed to save update preferences' },
152
- desktopUpdatesChannelChangeFailed: { zh: '切换更新通道失败', en: 'Failed to change the release channel' },
153
- desktopUpdatesAlreadyLatest: { zh: '当前已经是最新版本。', en: 'You already have the latest version.' },
154
- desktopUpdatesReadyToApply: { zh: '更新已下载完成,可以在方便的时候重启应用。', en: 'The update is ready. Restart the app whenever you want to apply it.' },
155
- desktopUpdatesAvailable: { zh: '发现新版本 {version}。', en: 'Version {version} is available.' },
156
- desktopUpdatesUnknownVersion: { zh: '新版本', en: 'a new version' },
157
- desktopUpdatesChannelChanged: {
158
- zh: '已切换到 {channel} 更新通道。',
159
- en: 'Switched to the {channel} release channel.'
160
- },
161
- desktopUpdatesChannelChangedWithUpdate: {
162
- zh: '已切换到 {channel} 通道,发现版本 {version}。',
163
- en: 'Switched to the {channel} channel and found version {version}.'
164
- }
165
- };
@@ -1,78 +0,0 @@
1
- export const MARKETPLACE_LABELS = {
2
- marketplaceSkillsPageTitle: { zh: '技能市场', en: 'Skill Marketplace' },
3
- marketplaceSkillsPageDescription: { zh: '安装与管理技能。', en: 'Install and manage skills.' },
4
- marketplaceMcpPageTitle: { zh: 'MCP 市场', en: 'MCP Marketplace' },
5
- marketplaceMcpPageDescription: { zh: '发现、安装、诊断并管理 MCP servers。', en: 'Discover, install, diagnose, and manage MCP servers.' },
6
- marketplaceTabMarketplaceSkills: { zh: '技能市场', en: 'Skill Market' },
7
- marketplaceMcpTabCatalog: { zh: 'MCP 市场', en: 'MCP Market' },
8
- marketplaceMcpTabInstalled: { zh: '已安装 MCP', en: 'Installed MCP' },
9
- marketplaceTabInstalledSkills: { zh: '已安装技能', en: 'Installed Skills' },
10
- marketplaceSearchPlaceholderSkills: { zh: '搜索技能...', en: 'Search skills...' },
11
- marketplaceMcpSearchPlaceholder: { zh: '搜索 MCP servers...', en: 'Search MCP servers...' },
12
- marketplaceFilterSkills: { zh: '技能', en: 'Skills' },
13
- marketplaceFilterMcp: { zh: 'MCP', en: 'MCP' },
14
- marketplaceSortRelevance: { zh: '相关性', en: 'Relevance' },
15
- marketplaceSortUpdated: { zh: '最近更新', en: 'Recently Updated' },
16
- marketplaceUnknownItem: { zh: '未知项目', en: 'Unknown Item' },
17
- marketplaceInstalledLocalSummary: { zh: '已在本地安装,市场暂无详情。', en: 'Installed locally. Details are currently unavailable from marketplace.' },
18
- marketplaceTypeSkill: { zh: '技能', en: 'Skill' },
19
- marketplaceTypeMcp: { zh: 'MCP', en: 'MCP' },
20
- marketplaceInstall: { zh: '安装', en: 'Install' },
21
- marketplaceInstalling: { zh: '安装中...', en: 'Installing...' },
22
- marketplaceEnable: { zh: '启用', en: 'Enable' },
23
- marketplaceDisable: { zh: '禁用', en: 'Disable' },
24
- marketplaceEnabling: { zh: '启用中...', en: 'Enabling...' },
25
- marketplaceDisabling: { zh: '禁用中...', en: 'Disabling...' },
26
- marketplaceUninstall: { zh: '卸载', en: 'Uninstall' },
27
- marketplaceRemoving: { zh: '卸载中...', en: 'Removing...' },
28
- marketplaceUpdate: { zh: '更新', en: 'Update' },
29
- marketplaceUpdating: { zh: '更新中...', en: 'Updating...' },
30
- marketplaceSectionSkills: { zh: '技能列表', en: 'Skill Catalog' },
31
- marketplaceMcpSectionCatalog: { zh: 'MCP 列表', en: 'MCP Catalog' },
32
- marketplaceMcpSectionInstalled: { zh: '已安装 MCP', en: 'Installed MCP' },
33
- marketplaceSectionInstalledSkills: { zh: '已安装技能', en: 'Installed Skills' },
34
- marketplaceErrorLoadingSkillsData: { zh: '加载技能市场数据失败', en: 'Failed to load skill marketplace data' },
35
- marketplaceErrorLoadingInstalledSkills: { zh: '加载已安装技能失败', en: 'Failed to load installed skills' },
36
- marketplaceNoSkills: { zh: '未找到技能。', en: 'No skills found.' },
37
- marketplaceNoMcp: { zh: '未找到 MCP server。', en: 'No MCP servers found.' },
38
- marketplaceNoInstalledSkills: { zh: '未找到已安装技能。', en: 'No installed skills found.' },
39
- marketplaceNoInstalledMcp: { zh: '未找到已安装 MCP server。', en: 'No installed MCP servers found.' },
40
- marketplaceUninstallTitle: { zh: '确认卸载', en: 'Uninstall' },
41
- marketplaceUninstallDescription: {
42
- zh: '该操作会移除扩展,后续可在市场中重新安装。',
43
- en: 'This will remove the extension. You can install it again from the marketplace.'
44
- },
45
- marketplaceInstallSuccessSkill: { zh: '技能安装成功', en: 'Skill installed successfully' },
46
- marketplaceInstallSuccessMcp: { zh: 'MCP 安装成功', en: 'MCP installed successfully' },
47
- marketplaceEnableSuccess: { zh: '启用成功', en: 'Enabled successfully' },
48
- marketplaceDisableSuccess: { zh: '禁用成功', en: 'Disabled successfully' },
49
- marketplaceUninstallSuccess: { zh: '卸载成功', en: 'Uninstalled successfully' },
50
- marketplaceUpdateSuccess: { zh: '更新成功', en: 'Updated successfully' },
51
- marketplaceMcpManageSuccess: { zh: 'MCP 操作成功', en: 'MCP operation completed' },
52
- marketplaceInstallFailed: { zh: '安装失败', en: 'Install failed' },
53
- marketplaceOperationFailed: { zh: '操作失败', en: 'Operation failed' },
54
- marketplaceInstalledSkillsCountSuffix: { zh: '个已安装技能', en: 'installed skills' },
55
- marketplaceDetailPanelTitle: { zh: '详情预览', en: 'Detail Preview' },
56
- marketplaceDetailPanelEmpty: { zh: '点击左侧任意插件/技能,在这里查看详情。', en: 'Click an item on the left to preview details here.' },
57
- marketplaceDetailSummary: { zh: '摘要', en: 'Summary' },
58
- marketplaceDetailDescription: { zh: '描述', en: 'Description' },
59
- marketplaceOpenInDocBrowserTab: { zh: '新标签打开', en: 'Open in New Tab' },
60
- marketplaceMcpInstallDialogTitle: { zh: '安装 MCP Server', en: 'Install MCP Server' },
61
- marketplaceMcpServerName: { zh: 'Server 名称', en: 'Server Name' },
62
- marketplaceMcpAllAgents: { zh: '默认对全部 Agent 可用', en: 'Available to All Agents' },
63
- marketplaceMcpAllAgentsDescription: {
64
- zh: '默认作为公共资源池接入,不做 runtime 级限制。',
65
- en: 'Use the server as a shared tool source by default instead of scoping it per runtime.'
66
- },
67
- marketplaceMcpDoctor: { zh: 'Doctor', en: 'Doctor' },
68
- marketplaceMcpDoctorTitle: { zh: 'MCP Doctor', en: 'MCP Doctor' },
69
- marketplaceMcpDoctorAccessible: { zh: '可访问', en: 'Accessible' },
70
- marketplaceMcpDoctorTransport: { zh: '传输方式', en: 'Transport' },
71
- marketplaceMcpDoctorTools: { zh: '工具数', en: 'Tools' },
72
- marketplaceMcpRemove: { zh: '移除', en: 'Remove' },
73
- marketplaceMcpRemoveTitle: { zh: '确认移除', en: 'Remove MCP Server' },
74
- marketplaceMcpRemoveDescription: {
75
- zh: '该操作会删除 MCP server 配置,并通过热插拔立即从工具源中移除。',
76
- en: 'This removes the MCP server config and hot-unplugs it from the tool source immediately.'
77
- }
78
- } as const;
@@ -1,62 +0,0 @@
1
- export const PWA_LABELS: Record<string, { zh: string; en: string }> = {
2
- pwaInstallTitle: { zh: '安装为应用', en: 'Install as App' },
3
- pwaInstallDescription: {
4
- zh: '把当前 NextClaw UI 安装为独立入口,方便从桌面、启动器或任务栏直接打开。',
5
- en: 'Install this NextClaw UI as a standalone entry point you can launch from your desktop, launcher, or dock.'
6
- },
7
- pwaInstallAction: { zh: '安装 NextClaw', en: 'Install NextClaw' },
8
- pwaInstallDismiss: { zh: '不再提示', en: "Don't Ask Again" },
9
- pwaInstallAccepted: { zh: '已打开安装面板。', en: 'Install prompt opened.' },
10
- pwaInstalledToast: { zh: 'NextClaw 已安装为应用入口。', en: 'NextClaw is now installed as an app.' },
11
- pwaInstallStatusAvailable: { zh: '可安装', en: 'Installable' },
12
- pwaInstallStatusInstalled: { zh: '已安装', en: 'Installed' },
13
- pwaInstallStatusDesktopHost: { zh: '桌面宿主已接管', en: 'Desktop Host Active' },
14
- pwaInstallStatusUnavailable: { zh: '当前不可安装', en: 'Unavailable' },
15
- pwaInstallCardPrompt: {
16
- zh: '当前浏览器已经准备好安装面板。安装后,NextClaw 会以独立窗口形态打开,但仍沿用同一套 Web UI 和运行时连接逻辑。',
17
- en: 'Your browser is ready to install NextClaw. Once installed, it opens in a standalone window while keeping the same Web UI and runtime behavior.'
18
- },
19
- pwaInstallCardManual: {
20
- zh: '当前环境支持把 NextClaw 安装为应用,但浏览器没有提供即时安装弹窗。你仍可通过浏览器菜单中的“安装应用”或“添加到主屏幕”完成安装。',
21
- en: 'This environment can install NextClaw as an app, but the browser did not expose an immediate install prompt. Use your browser menu to install or add it to the home screen.'
22
- },
23
- pwaInstallCardInstalled: {
24
- zh: '当前已经以应用形态运行。浏览器访问与已安装形态共用同一套 NextClaw UI,不会分叉成第二套产品逻辑。',
25
- en: 'NextClaw is already running as an installed app. Browser access and the installed experience share the same UI and product behavior.'
26
- },
27
- pwaInstallCardSuppressed: {
28
- zh: '当前 UI 已运行在 Electron 桌面宿主中,原生桌面壳优先于 PWA 入口,因此这里不会继续展示安装入口。',
29
- en: 'This UI is already running inside the Electron desktop host. The native desktop shell takes priority, so the PWA install entry stays hidden here.'
30
- },
31
- pwaInstallCardInsecureContext: {
32
- zh: '当前地址不是浏览器允许安装 PWA 的安全上下文。请使用 `localhost`、`127.0.0.1` 或 HTTPS 域名访问。',
33
- en: 'This address is not a secure context for browser-managed app installation. Use localhost, 127.0.0.1, or an HTTPS origin instead.'
34
- },
35
- pwaInstallCardDevServer: {
36
- zh: '当前是 Vite 开发环境。为避免 service worker 缓存和 HMR 热更新互相干扰,开发态默认关闭 PWA 安装与更新能力;请使用 preview 或正式构建验证 PWA。',
37
- en: 'This is the Vite development server. PWA install and update are disabled in dev to avoid service worker caching conflicts with HMR; use preview or a production build to verify the PWA.'
38
- },
39
- pwaInstallCardUnsupported: {
40
- zh: '当前浏览器环境不支持这套安装能力,或缺少 PWA 所需的关键运行能力。',
41
- en: 'This browser environment does not support the required installation capabilities for this PWA shell.'
42
- },
43
- pwaInstallPromptHint: {
44
- zh: '安装后仍然连接当前本地或远端 NextClaw 服务,不会额外生成一套离线副本。',
45
- en: 'The installed app still connects to the same local or remote NextClaw service instead of creating an offline copy.'
46
- },
47
- pwaInstallManualHint: {
48
- zh: '如果浏览器没有弹出安装面板,请打开浏览器菜单,选择“安装应用”“安装此站点”或“添加到主屏幕”等同类入口。',
49
- en: 'If the browser does not show an install prompt, open the browser menu and look for actions such as Install App, Install Site, or Add to Home Screen.'
50
- },
51
- pwaInstallBannerTitle: { zh: '把 NextClaw 固定成桌面入口', en: 'Pin NextClaw as an App' },
52
- pwaInstallBannerDescription: {
53
- zh: '当前站点已经满足安装条件。安装后你可以像打开普通应用一样直接进入 NextClaw。',
54
- en: 'This site is ready to install. Once installed, you can launch NextClaw like a regular app.'
55
- },
56
- pwaUpdateBannerTitle: { zh: 'NextClaw 已准备好更新', en: 'NextClaw Update Ready' },
57
- pwaUpdateBannerDescription: {
58
- zh: '检测到新的 PWA 壳版本,刷新后即可切换到最新 UI 资源。',
59
- en: 'A newer PWA shell version is ready. Refresh to switch to the latest UI assets.'
60
- },
61
- pwaUpdateAction: { zh: '刷新更新', en: 'Refresh Now' }
62
- };