@vibe-forge/client 2.0.0 → 3.0.0-alpha.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 (351) hide show
  1. package/AGENTS.md +4 -1
  2. package/dist/assets/{arc-CbOXL0l9.js → arc-1JbypnRY.js} +1 -1
  3. package/dist/assets/{blockDiagram-c4efeb88-CqxINvsS.js → blockDiagram-c4efeb88-jT5b9nId.js} +1 -1
  4. package/dist/assets/{c4Diagram-c83219d4-BKazU0hb.js → c4Diagram-c83219d4-KNPh-1ta.js} +1 -1
  5. package/dist/assets/channel-pzvjJnfd.js +1 -0
  6. package/dist/assets/{classDiagram-beda092f-fAFX5BpB.js → classDiagram-beda092f-vvXuOT3F.js} +1 -1
  7. package/dist/assets/{classDiagram-v2-2358418a-w1VkNGJj.js → classDiagram-v2-2358418a-vH4j7skr.js} +1 -1
  8. package/dist/assets/clone-CtWwIeUb.js +1 -0
  9. package/dist/assets/{createText-1719965b-CEinakVP.js → createText-1719965b-COeSYnf3.js} +1 -1
  10. package/dist/assets/{cssMode-DPqRki4y.js → cssMode-Doc7QRKn.js} +1 -1
  11. package/dist/assets/{edges-96097737-Cb0F1_3K.js → edges-96097737-D09v6R_r.js} +1 -1
  12. package/dist/assets/{erDiagram-0228fc6a-C-N2fx-J.js → erDiagram-0228fc6a-CbZ6rfxl.js} +1 -1
  13. package/dist/assets/{flowDb-c6c81e3f-D1Xz_8Gf.js → flowDb-c6c81e3f-CnZOzhdk.js} +1 -1
  14. package/dist/assets/{flowDiagram-50d868cf-DyPSZyAj.js → flowDiagram-50d868cf-jv-xWM2p.js} +1 -1
  15. package/dist/assets/flowDiagram-v2-4f6560a1-BiyrkIKs.js +1 -0
  16. package/dist/assets/{flowchart-elk-definition-6af322e1-Dr1DDXwE.js → flowchart-elk-definition-6af322e1-D8pf677G.js} +1 -1
  17. package/dist/assets/{freemarker2-C3DvPFaK.js → freemarker2-CL0o23Gj.js} +1 -1
  18. package/dist/assets/{ganttDiagram-a2739b55-DmvY1GRj.js → ganttDiagram-a2739b55-BAPQzC4u.js} +1 -1
  19. package/dist/assets/{gitGraphDiagram-82fe8481-CoXfPYYi.js → gitGraphDiagram-82fe8481-BI2x71m0.js} +1 -1
  20. package/dist/assets/{graph-BkDQy7Qt.js → graph-CZK4Bjpq.js} +1 -1
  21. package/dist/assets/{handlebars-BcTFdqjl.js → handlebars-CCG38Pg6.js} +1 -1
  22. package/dist/assets/{html-Dg-O6XFr.js → html-BddshTWG.js} +1 -1
  23. package/dist/assets/{htmlMode-B_wqYWvn.js → htmlMode-xKXiYcDz.js} +1 -1
  24. package/dist/assets/{index-5325376f-kxPTR3_e.js → index-5325376f-BWMTD8RU.js} +1 -1
  25. package/dist/assets/{index-wkhI4dr6.js → index-CBe7kDkV.js} +398 -377
  26. package/dist/assets/index-MWOwVzqE.css +32 -0
  27. package/dist/assets/{infoDiagram-8eee0895-BEvqkwPI.js → infoDiagram-8eee0895-CR78btIF.js} +1 -1
  28. package/dist/assets/{javascript-DhlOH8_z.js → javascript-BPlRHPjg.js} +1 -1
  29. package/dist/assets/{journeyDiagram-c64418c1-gKtLYmmp.js → journeyDiagram-c64418c1-DZRv6FKz.js} +1 -1
  30. package/dist/assets/{jsonMode-DxTbF9OD.js → jsonMode-BYLVfdkf.js} +1 -1
  31. package/dist/assets/{layout-CDaZEk6E.js → layout-BtudyPU2.js} +1 -1
  32. package/dist/assets/{line-DNRQu8iq.js → line-DgHXrIhS.js} +1 -1
  33. package/dist/assets/{linear-Cph9Z6_j.js → linear-DtBoKICx.js} +1 -1
  34. package/dist/assets/{liquid-ByZ6JgRG.js → liquid-DxBlJk0W.js} +1 -1
  35. package/dist/assets/{lspLanguageFeatures-DzvhkgnM.js → lspLanguageFeatures-DmKVpmeH.js} +1 -1
  36. package/dist/assets/{mdx-D8RGHTl6.js → mdx-DrScsd-w.js} +1 -1
  37. package/dist/assets/{mermaid.core-BgcryF__.js → mermaid.core-Cj_NJ_lZ.js} +4 -4
  38. package/dist/assets/{mindmap-definition-8da855dc-WrxK0FcB.js → mindmap-definition-8da855dc-CMXbwtsc.js} +1 -1
  39. package/dist/assets/{pieDiagram-a8764435-VsZBsiQy.js → pieDiagram-a8764435-Bd6rfpJv.js} +1 -1
  40. package/dist/assets/{python-CXVtk_cg.js → python-Crbi7B7n.js} +1 -1
  41. package/dist/assets/{quadrantDiagram-1e28029f-BVlgwOvU.js → quadrantDiagram-1e28029f-H-FdBQn6.js} +1 -1
  42. package/dist/assets/{razor-0tind7h2.js → razor-DHyrzIfE.js} +1 -1
  43. package/dist/assets/{requirementDiagram-08caed73-CpPMPoYp.js → requirementDiagram-08caed73-BSyCVDSG.js} +1 -1
  44. package/dist/assets/{sankeyDiagram-a04cb91d-Cm5nnRmc.js → sankeyDiagram-a04cb91d-S6E6BReg.js} +1 -1
  45. package/dist/assets/{sequenceDiagram-c5b8d532-DpMlJvJB.js → sequenceDiagram-c5b8d532-BMHY4KMj.js} +1 -1
  46. package/dist/assets/{stateDiagram-1ecb1508-DU1zc7vq.js → stateDiagram-1ecb1508-BMrMw6XR.js} +1 -1
  47. package/dist/assets/{stateDiagram-v2-c2b004d7-D-0RgmAp.js → stateDiagram-v2-c2b004d7-B5SIFUb_.js} +1 -1
  48. package/dist/assets/{styles-b4e223ce-BSO-yNWV.js → styles-b4e223ce-DqiXwnx3.js} +1 -1
  49. package/dist/assets/{styles-ca3715f6-CHnsn2Ro.js → styles-ca3715f6-jNxW2Db8.js} +1 -1
  50. package/dist/assets/{styles-d45a18b0-B-rVGjEq.js → styles-d45a18b0-C4nlfLcZ.js} +1 -1
  51. package/dist/assets/{svgDrawCommon-b86b1483-CA3Pl89f.js → svgDrawCommon-b86b1483-FIWFuZfb.js} +1 -1
  52. package/dist/assets/{timeline-definition-faaaa080-BcihLR6s.js → timeline-definition-faaaa080-CEQDoqdf.js} +1 -1
  53. package/dist/assets/{tsMode-D9GGa5Ur.js → tsMode-DnNy3rE9.js} +1 -1
  54. package/dist/assets/{typescript-BT9CK_EL.js → typescript-YBZ4vw5B.js} +1 -1
  55. package/dist/assets/{xml-DNO75J-T.js → xml-BJGGYD70.js} +1 -1
  56. package/dist/assets/{xychartDiagram-f5964ef8-DJTwe32X.js → xychartDiagram-f5964ef8-DUNOFOk0.js} +1 -1
  57. package/dist/assets/{yaml-7CVzhiP2.js → yaml-BMY4mu5s.js} +1 -1
  58. package/dist/index.html +8 -3
  59. package/dist/manifest.webmanifest +30 -0
  60. package/dist/pwa-icon-192.png +0 -0
  61. package/dist/pwa-icon-512.png +0 -0
  62. package/dist/sw.js +105 -0
  63. package/index.html +6 -1
  64. package/package.json +13 -13
  65. package/public/manifest.webmanifest +30 -0
  66. package/public/pwa-icon-192.png +0 -0
  67. package/public/pwa-icon-512.png +0 -0
  68. package/public/sw.js +105 -0
  69. package/src/App.tsx +13 -1
  70. package/src/api/README.md +1 -0
  71. package/src/api/adapters.ts +63 -0
  72. package/src/api/auth-token.ts +51 -0
  73. package/src/api/auth.ts +46 -0
  74. package/src/api/automation.ts +10 -0
  75. package/src/api/base.ts +20 -17
  76. package/src/api/config.ts +5 -1
  77. package/src/api/knowledge.ts +59 -0
  78. package/src/api/sessions.ts +35 -3
  79. package/src/api/skill-hub.ts +126 -0
  80. package/src/api/workspace.ts +33 -1
  81. package/src/api/worktree-environments.ts +53 -0
  82. package/src/api.ts +62 -7
  83. package/src/client-build-info.ts +19 -0
  84. package/src/components/ConfigView.scss +596 -28
  85. package/src/components/ConfigView.tsx +569 -138
  86. package/src/components/NavRail.scss +1 -2
  87. package/src/components/NavRail.tsx +33 -3
  88. package/src/components/Sidebar.scss +0 -44
  89. package/src/components/Sidebar.tsx +110 -37
  90. package/src/components/auth/AuthGate.scss +79 -0
  91. package/src/components/auth/AuthGate.tsx +174 -0
  92. package/src/components/automation-view/@components/AutomationTaskComposer.tsx +220 -0
  93. package/src/components/automation-view/@components/AutomationTriggerRow.tsx +192 -0
  94. package/src/components/automation-view/@hooks/use-automation-startup-options-data.tsx +289 -0
  95. package/src/components/automation-view/@hooks/use-automation-startup-static-options.ts +51 -0
  96. package/src/components/automation-view/@utils/sender-model-options.tsx +52 -0
  97. package/src/components/automation-view/@utils/startup-options.ts +26 -0
  98. package/src/components/automation-view/AutomationEmptyGuide.tsx +61 -0
  99. package/src/components/automation-view/AutomationEmptyLanding.scss +165 -0
  100. package/src/components/automation-view/AutomationEmptyLanding.tsx +211 -0
  101. package/src/components/automation-view/AutomationRuleDetailPreview.tsx +179 -0
  102. package/src/components/automation-view/PanelTitleActions.tsx +66 -0
  103. package/src/components/automation-view/RuleFormPanel.scss +172 -49
  104. package/src/components/automation-view/RuleFormPanel.tsx +196 -91
  105. package/src/components/automation-view/RuleSidebar.scss +128 -41
  106. package/src/components/automation-view/RuleSidebar.tsx +173 -89
  107. package/src/components/automation-view/RunHistoryPanel.scss +307 -72
  108. package/src/components/automation-view/RunHistoryPanel.tsx +185 -165
  109. package/src/components/automation-view/TaskList.scss +130 -64
  110. package/src/components/automation-view/TaskList.tsx +15 -31
  111. package/src/components/automation-view/TriggerList.scss +87 -8
  112. package/src/components/automation-view/TriggerList.tsx +14 -173
  113. package/src/components/automation-view/index.scss +165 -37
  114. package/src/components/automation-view/index.tsx +174 -87
  115. package/src/components/automation-view/types.ts +13 -0
  116. package/src/components/chat/AGENTS.md +3 -1
  117. package/src/components/chat/ChatHeader.tsx +56 -33
  118. package/src/components/chat/ChatHistoryView.tsx +254 -123
  119. package/src/components/chat/NewSessionGuide.scss +274 -204
  120. package/src/components/chat/NewSessionGuide.tsx +46 -111
  121. package/src/components/chat/NewSessionGuideStarterList.tsx +190 -0
  122. package/src/components/chat/NewSessionGuideStarterSection.tsx +121 -0
  123. package/src/components/chat/bottom-dock-constants.ts +4 -0
  124. package/src/components/chat/conversation-starter-apply.ts +181 -0
  125. package/src/components/chat/git-controls/ChatGitControls.scss +65 -0
  126. package/src/components/chat/git-controls/DraftGitControls.tsx +14 -0
  127. package/src/components/chat/git-controls/DraftWorktreeEnvironmentDropdown.tsx +115 -0
  128. package/src/components/chat/messages/MessageItem.tsx +21 -6
  129. package/src/components/chat/messages/MessageStatusNotice.tsx +12 -4
  130. package/src/components/chat/messages/build-chat-history-status-notices.ts +18 -13
  131. package/src/components/chat/messages/message-action-utils.ts +29 -0
  132. package/src/components/chat/new-session-guide-config.ts +19 -0
  133. package/src/components/chat/new-session-guide-items.ts +172 -0
  134. package/src/components/chat/new-session-guide-list-order.ts +58 -0
  135. package/src/components/chat/sender/@components/account-select/AccountSelectControl.scss +112 -0
  136. package/src/components/chat/sender/@components/account-select/AccountSelectControl.tsx +280 -0
  137. package/src/components/chat/sender/@components/account-select/AccountSelectDropdown.scss +155 -0
  138. package/src/components/chat/sender/@components/adapter-select/AdapterSelectControl.scss +51 -12
  139. package/src/components/chat/sender/@components/adapter-select/AdapterSelectDropdown.scss +14 -0
  140. package/src/components/chat/sender/@components/effort-select/EffortSelectControl.scss +36 -0
  141. package/src/components/chat/sender/@components/effort-select/EffortSelectControl.tsx +17 -12
  142. package/src/components/chat/sender/@components/model-select/ModelSelectControl.scss +62 -0
  143. package/src/components/chat/sender/@components/model-select/ModelSelectControl.tsx +17 -12
  144. package/src/components/chat/sender/@components/model-select/ModelSelectMenu.scss +2 -0
  145. package/src/components/chat/sender/@components/model-select/ModelSelectMenuLabels.scss +24 -0
  146. package/src/components/chat/sender/@components/permission-mode-control/PermissionModeControl.scss +199 -0
  147. package/src/components/chat/sender/@components/permission-mode-control/PermissionModeControl.tsx +172 -0
  148. package/src/components/chat/sender/@components/reference-actions/ReferenceActionsControl.scss +1 -10
  149. package/src/components/chat/sender/@components/reference-actions/ReferenceActionsControl.tsx +16 -65
  150. package/src/components/chat/sender/@components/sender-body/SenderBody.tsx +13 -1
  151. package/src/components/chat/sender/@components/sender-header-controls/SenderHeaderControls.tsx +157 -0
  152. package/src/components/chat/sender/@components/sender-monaco-editor/monaco-runtime.ts +1 -17
  153. package/src/components/chat/sender/@components/sender-toolbar/SenderSelectBase.scss +18 -2
  154. package/src/components/chat/sender/@components/sender-toolbar/SenderSelectShared.scss +18 -1
  155. package/src/components/chat/sender/@components/sender-toolbar/SenderToolbar.scss +2 -0
  156. package/src/components/chat/sender/@components/sender-toolbar/SenderToolbar.tsx +40 -40
  157. package/src/components/chat/sender/@components/session-target/SenderSessionTargetBar.scss +215 -0
  158. package/src/components/chat/sender/@components/session-target/SenderSessionTargetBar.tsx +185 -0
  159. package/src/components/chat/sender/@core/build-sender-toolbar.ts +6 -0
  160. package/src/components/chat/sender/@core/create-sender-toolbar-handlers.ts +21 -1
  161. package/src/components/chat/sender/@core/get-sender-runtime-state.ts +3 -2
  162. package/src/components/chat/sender/@core/sender-toolbar-bindings.ts +12 -0
  163. package/src/components/chat/sender/@hooks/use-sender-controller.ts +56 -1
  164. package/src/components/chat/sender/@hooks/use-sender-reference-actions.ts +9 -66
  165. package/src/components/chat/sender/@types/sender-props.ts +18 -0
  166. package/src/components/chat/sender/@types/sender-toolbar-types.ts +8 -1
  167. package/src/components/chat/sender/@types/sender-types.ts +1 -3
  168. package/src/components/chat/sender/@utils/sender-constants.ts +1 -1
  169. package/src/components/chat/sender/Sender.scss +257 -2
  170. package/src/components/chat/sender/Sender.tsx +1 -0
  171. package/src/components/chat/status-bar/ChatStatusBar.scss +85 -0
  172. package/src/components/chat/status-bar/ChatStatusBar.tsx +48 -0
  173. package/src/components/chat/terminal/@components/TerminalManagerList.tsx +191 -0
  174. package/src/components/chat/terminal/@components/TerminalPane.scss +71 -0
  175. package/src/components/chat/terminal/@components/TerminalPane.tsx +137 -0
  176. package/src/components/chat/terminal/@components/TerminalPanelActions.tsx +75 -0
  177. package/src/components/chat/terminal/@hooks/use-terminal-instance.ts +36 -0
  178. package/src/components/chat/terminal/@hooks/use-terminal-session.ts +18 -21
  179. package/src/components/chat/terminal/@hooks/use-terminal-title-editor.ts +72 -0
  180. package/src/components/chat/terminal/@utils/terminal-keyboard.ts +141 -0
  181. package/src/components/chat/terminal/@utils/terminal-panes.ts +123 -0
  182. package/src/components/chat/terminal/ChatTerminalView.scss +310 -38
  183. package/src/components/chat/terminal/ChatTerminalView.tsx +151 -79
  184. package/src/components/chat/tools/core/ToolDiffViewer.tsx +3 -17
  185. package/src/components/chat/workspace-drawer/ChatWorkspaceDrawer.scss +778 -0
  186. package/src/components/chat/workspace-drawer/ChatWorkspaceDrawer.tsx +112 -0
  187. package/src/components/chat/workspace-drawer/ChatWorkspaceDrawerToolbar.tsx +183 -0
  188. package/src/components/chat/workspace-drawer/WorkspaceDrawerChangedFileRow.tsx +75 -0
  189. package/src/components/chat/workspace-drawer/WorkspaceDrawerChangedFiles.tsx +161 -0
  190. package/src/components/chat/workspace-drawer/WorkspaceDrawerChangedFolderTree.tsx +191 -0
  191. package/src/components/chat/workspace-drawer/WorkspaceDrawerTree.tsx +35 -0
  192. package/src/components/chat/workspace-drawer/WorkspaceDrawerTreeState.tsx +17 -0
  193. package/src/components/chat/workspace-drawer/changed-files-model.ts +152 -0
  194. package/src/components/chat/workspace-drawer/workspace-drawer-icons.ts +110 -0
  195. package/src/components/chat/workspace-file-editor/WorkspaceFileBreadcrumb.tsx +17 -0
  196. package/src/components/chat/workspace-file-editor/WorkspaceFileEditorView.scss +283 -0
  197. package/src/components/chat/workspace-file-editor/WorkspaceFileEditorView.tsx +165 -0
  198. package/src/components/chat/workspace-file-editor/WorkspaceFileTabs.tsx +135 -0
  199. package/src/components/chat/workspace-file-editor/use-workspace-file-editor-state.ts +113 -0
  200. package/src/components/chat/workspace-file-editor/workspace-file-editor-language.ts +55 -0
  201. package/src/components/composer-landing/ComposerLanding.scss +75 -0
  202. package/src/components/composer-landing/ComposerLanding.tsx +47 -0
  203. package/src/components/config/AGENTS.md +45 -0
  204. package/src/components/config/AdapterAccountsManager.scss +540 -0
  205. package/src/components/config/AdapterAccountsManager.tsx +846 -0
  206. package/src/components/config/AppSettingsPanel.tsx +85 -9
  207. package/src/components/config/ConfigAboutSection.scss +7 -1
  208. package/src/components/config/ConfigAboutSection.tsx +21 -3
  209. package/src/components/config/ConfigEditors.scss +12 -0
  210. package/src/components/config/ConfigFieldRow.scss +88 -4
  211. package/src/components/config/ConfigSectionForm.scss +88 -3
  212. package/src/components/config/ConfigSectionForm.tsx +948 -138
  213. package/src/components/config/ConfigSectionPanel.tsx +188 -12
  214. package/src/components/config/ConfigSourceSwitch.tsx +32 -18
  215. package/src/components/config/DetailCollectionFieldActions.tsx +63 -0
  216. package/src/components/config/DetailListField.tsx +413 -0
  217. package/src/components/config/McpServerItemEditor.tsx +154 -0
  218. package/src/components/config/RecommendedModelsItemEditor.tsx +146 -0
  219. package/src/components/config/WorktreeEnvironmentDetailView.tsx +126 -0
  220. package/src/components/config/WorktreeEnvironmentListView.tsx +126 -0
  221. package/src/components/config/WorktreeEnvironmentPanel.scss +430 -0
  222. package/src/components/config/WorktreeEnvironmentPanel.tsx +147 -0
  223. package/src/components/config/WorktreeEnvironmentScriptEditorCard.tsx +125 -0
  224. package/src/components/config/WorktreeEnvironmentScriptEditors.tsx +189 -0
  225. package/src/components/config/configConflict.ts +41 -0
  226. package/src/components/config/configDetail.ts +381 -0
  227. package/src/components/config/configSchema.ts +850 -179
  228. package/src/components/config/configUtils.ts +1 -1
  229. package/src/components/config/record-editors/RecordEditors.scss +187 -2
  230. package/src/components/config/record-editors/RecordJsonEditor.tsx +27 -2
  231. package/src/components/config/record-editors/SchemaObjectEditor.tsx +183 -0
  232. package/src/components/config/record-editors/SchemaRecordEditor.tsx +184 -0
  233. package/src/components/config/record-editors/index.tsx +2 -1
  234. package/src/components/config/record-editors/schemaRecordUtils.ts +55 -0
  235. package/src/components/config/use-worktree-environment-auto-save.ts +386 -0
  236. package/src/components/config/worktree-environment-panel-model.ts +108 -0
  237. package/src/components/dock-panel/DockPanel.scss +84 -17
  238. package/src/components/dock-panel/DockPanel.tsx +37 -34
  239. package/src/components/dock-panel/DockPanelHeader.tsx +65 -0
  240. package/src/components/dock-panel/use-dock-panel-fullscreen.ts +51 -0
  241. package/src/components/knowledge-base/KnowledgeBaseView.scss +276 -38
  242. package/src/components/knowledge-base/KnowledgeBaseView.tsx +252 -46
  243. package/src/components/knowledge-base/components/@hooks/use-skills-cli-modal-controller.ts +157 -0
  244. package/src/components/knowledge-base/components/@hooks/use-skills-tab-actions.ts +63 -0
  245. package/src/components/knowledge-base/components/ActionButton.scss +30 -4
  246. package/src/components/knowledge-base/components/ActionButton.tsx +13 -3
  247. package/src/components/knowledge-base/components/CreateSkillModal.tsx +59 -0
  248. package/src/components/knowledge-base/components/EmptyState.scss +4 -2
  249. package/src/components/knowledge-base/components/EntitiesTab.tsx +20 -20
  250. package/src/components/knowledge-base/components/EntityList.scss +3 -0
  251. package/src/components/knowledge-base/components/FilterBar.scss +1 -0
  252. package/src/components/knowledge-base/components/FilterBar.tsx +12 -8
  253. package/src/components/knowledge-base/components/FlowsTab.tsx +20 -20
  254. package/src/components/knowledge-base/components/KnowledgeBaseHeader.tsx +7 -6
  255. package/src/components/knowledge-base/components/KnowledgeContentControls.tsx +35 -0
  256. package/src/components/knowledge-base/components/KnowledgeList.scss +14 -3
  257. package/src/components/knowledge-base/components/KnowledgeMobilePanel.tsx +122 -0
  258. package/src/components/knowledge-base/components/KnowledgeSidebar.tsx +97 -0
  259. package/src/components/knowledge-base/components/LoadingState.scss +2 -1
  260. package/src/components/knowledge-base/components/ProjectSkillsList.tsx +79 -0
  261. package/src/components/knowledge-base/components/RuleList.scss +3 -0
  262. package/src/components/knowledge-base/components/RulesTab.tsx +31 -30
  263. package/src/components/knowledge-base/components/SectionHeader.scss +13 -1
  264. package/src/components/knowledge-base/components/SectionHeader.tsx +5 -3
  265. package/src/components/knowledge-base/components/SkillArchiveInput.tsx +43 -0
  266. package/src/components/knowledge-base/components/SkillHubResultItem.tsx +112 -0
  267. package/src/components/knowledge-base/components/SkillMarketResults.tsx +98 -0
  268. package/src/components/knowledge-base/components/SkillMarketView.tsx +198 -0
  269. package/src/components/knowledge-base/components/SkillMarketView.types.ts +28 -0
  270. package/src/components/knowledge-base/components/SkillRegistryErrors.tsx +21 -0
  271. package/src/components/knowledge-base/components/SkillRegistryModal.tsx +74 -0
  272. package/src/components/knowledge-base/components/SkillsCliModal.tsx +154 -0
  273. package/src/components/knowledge-base/components/SkillsTab.scss +424 -0
  274. package/src/components/knowledge-base/components/SkillsTab.tsx +166 -35
  275. package/src/components/knowledge-base/components/SkillsTabActions.tsx +88 -0
  276. package/src/components/knowledge-base/components/SpecList.scss +3 -0
  277. package/src/components/knowledge-base/components/TabContent.scss +4 -3
  278. package/src/components/knowledge-base/components/skill-hub-utils.ts +108 -0
  279. package/src/components/knowledge-base/components/use-skill-market-filters.ts +37 -0
  280. package/src/components/knowledge-base/components/use-skill-market-query-input.ts +44 -0
  281. package/src/components/knowledge-base/components/use-skill-market-search.ts +49 -0
  282. package/src/components/knowledge-base/components/use-skill-registry-modal.ts +68 -0
  283. package/src/components/monaco/monaco-runtime.ts +44 -0
  284. package/src/components/monaco/use-monaco-theme.ts +63 -0
  285. package/src/components/nav-rail-account-actions.tsx +104 -0
  286. package/src/components/server-connection/ServerConnectionGate.scss +356 -0
  287. package/src/components/server-connection/ServerConnectionGate.tsx +238 -0
  288. package/src/components/server-connection/ServerConnectionProfileModal.tsx +145 -0
  289. package/src/components/server-connection/ServerConnectionProfiles.tsx +113 -0
  290. package/src/components/server-connection/ServerConnectionUrlInput.tsx +85 -0
  291. package/src/components/sidebar/SidebarHeader.scss +5 -41
  292. package/src/components/sidebar/SidebarHeader.tsx +117 -91
  293. package/src/components/sidebar/SidebarHeaderSearchActions.tsx +24 -28
  294. package/src/components/sidebar/sidebar-search-visibility.ts +18 -0
  295. package/src/components/sidebar-list/SidebarListHeader.scss +246 -0
  296. package/src/components/sidebar-list/SidebarListHeader.tsx +146 -0
  297. package/src/components/workspace/ContextFilePicker.scss +9 -26
  298. package/src/components/workspace/ContextFilePicker.tsx +31 -113
  299. package/src/components/workspace/context-file-types.ts +36 -0
  300. package/src/components/workspace/project-file-tree/ProjectFileTree.scss +298 -0
  301. package/src/components/workspace/project-file-tree/ProjectFileTree.tsx +138 -0
  302. package/src/components/workspace/project-file-tree/ProjectFileTreeRow.tsx +167 -0
  303. package/src/components/workspace/project-file-tree/ProjectFileTreeRowContextMenu.tsx +106 -0
  304. package/src/components/workspace/project-file-tree/ProjectFileTreeRows.tsx +139 -0
  305. package/src/components/workspace/project-file-tree/project-file-tree-helpers.ts +101 -0
  306. package/src/components/workspace/project-file-tree/project-file-tree-icons.ts +93 -0
  307. package/src/components/workspace/project-file-tree/project-file-tree-types.ts +27 -0
  308. package/src/components/workspace/project-file-tree/use-project-file-tree-data.ts +197 -0
  309. package/src/components/workspace/project-file-tree/use-project-file-tree-selection.ts +144 -0
  310. package/src/hooks/chat/chat-session-target.ts +69 -0
  311. package/src/hooks/chat/chat-session-workspace-draft.ts +11 -4
  312. package/src/hooks/chat/interaction-state.ts +1 -0
  313. package/src/hooks/chat/optimistic-session-creation.ts +189 -0
  314. package/src/hooks/chat/use-chat-adapter-account-selection.tsx +156 -0
  315. package/src/hooks/chat/use-chat-route-bottom-panel.ts +181 -0
  316. package/src/hooks/chat/use-chat-route-deep-link-view.ts +33 -0
  317. package/src/hooks/chat/use-chat-session-actions.ts +259 -65
  318. package/src/hooks/chat/use-chat-session-messages.ts +71 -4
  319. package/src/hooks/chat/use-chat-session.ts +36 -1
  320. package/src/hooks/chat/workspace-file-panel-state.ts +43 -0
  321. package/src/hooks/session-subscription-cache.ts +25 -0
  322. package/src/hooks/use-chat-layout-query-state.ts +29 -0
  323. package/src/hooks/use-sender-header-query-state.ts +35 -0
  324. package/src/hooks/use-session-subscription.ts +17 -8
  325. package/src/hooks/useQueryParams.ts +91 -23
  326. package/src/i18n-resources.ts +44 -0
  327. package/src/i18n.ts +21 -6
  328. package/src/main.tsx +8 -0
  329. package/src/pwa.ts +46 -0
  330. package/src/resources/locales/en.json +741 -24
  331. package/src/resources/locales/zh.json +743 -26
  332. package/src/routes/ChatRoute.scss +110 -7
  333. package/src/routes/ChatRoute.tsx +11 -165
  334. package/src/routes/ChatRouteBottomPanel.tsx +47 -0
  335. package/src/routes/ChatRouteView.tsx +199 -0
  336. package/src/runtime-config.ts +155 -2
  337. package/src/server-connection-history.ts +179 -0
  338. package/src/store/index.ts +151 -3
  339. package/src/styles/global.scss +3 -0
  340. package/src/utils/mobile-viewport.ts +67 -0
  341. package/src/version-compatibility.ts +37 -0
  342. package/src/vite-env.d.ts +9 -0
  343. package/src/ws.ts +20 -9
  344. package/vite.config.ts +23 -1
  345. package/dist/assets/channel-Dnopc5A6.js +0 -1
  346. package/dist/assets/clone-sQthahUA.js +0 -1
  347. package/dist/assets/flowDiagram-v2-4f6560a1-OazrdWQO.js +0 -1
  348. package/dist/assets/index-o93dlo92.css +0 -32
  349. package/src/components/chat/NewSessionGuideCompactPanel.tsx +0 -130
  350. package/src/components/chat/NewSessionGuideGrid.tsx +0 -141
  351. package/src/components/chat/sender/@components/reference-actions/ReferencePermissionActionsPopover.tsx +0 -114
@@ -50,6 +50,8 @@
50
50
  "deselectAll": "取消全选",
51
51
  "collapse": "收起侧边栏",
52
52
  "close": "关闭",
53
+ "enterFullscreen": "全屏",
54
+ "exitFullscreen": "退出全屏",
53
55
  "sort": "排序规则",
54
56
  "allTags": "全部标签",
55
57
  "allAdapters": "全部适配器",
@@ -85,22 +87,86 @@
85
87
  "waiting_input": "等待输入"
86
88
  }
87
89
  },
90
+ "auth": {
91
+ "title": "登录 Vibe Forge",
92
+ "subtitle": "请输入已配置的账号,继续进入当前工作区。",
93
+ "username": "账号",
94
+ "usernamePlaceholder": "请输入账号",
95
+ "usernameRequired": "请输入账号",
96
+ "password": "密码",
97
+ "passwordPlaceholder": "请输入密码",
98
+ "passwordRequired": "请输入密码",
99
+ "rememberDevice": "记住此设备",
100
+ "login": "登录",
101
+ "loginFailed": "登录失败",
102
+ "statusFailed": "无法读取登录状态",
103
+ "accountMenu": "账号与连接",
104
+ "changeServer": "切换后端服务",
105
+ "logout": "退出当前连接登录",
106
+ "logoutFailed": "退出登录失败",
107
+ "generatedPasswordTitle": "当前使用自动生成的本地密码",
108
+ "generatedPasswordDescription": "请从本地密码文件获取密码;也可以在 webAuth.accounts 中配置固定账号。",
109
+ "generatedPasswordHint": "默认密码文件:{{path}}"
110
+ },
111
+ "serverConnection": {
112
+ "title": "连接你的后端服务",
113
+ "subtitle": "先在运行 Vibe Forge 的电脑上启动后端,再把终端里显示的服务地址填到下面。",
114
+ "desktopTitle": "切换后端服务",
115
+ "desktopSubtitle": "桌面应用已经启动了本机服务。你也可以连接其他 Vibe Forge 服务端,通过同一个 Electron 应用切换和控制不同执行环境。",
116
+ "setupTitle": "在电脑上执行",
117
+ "setupDescription": "复制终端里显示的 http 或 https 地址。复杂网络方案看 ",
118
+ "docsLink": "PWA 部署文档",
119
+ "localServiceTitle": "本机内置服务",
120
+ "localServiceBannerDescription": "这是 Electron 在当前设备上自动启动的本地服务,不需要额外鉴权。",
121
+ "localServiceAlias": "此设备",
122
+ "localServiceProfileDescription": "Electron 自动启动的本机服务",
123
+ "serverUrl": "后端服务地址",
124
+ "serverScheme": "后端服务协议",
125
+ "serverUrlPlaceholder": "粘贴终端显示的服务地址",
126
+ "serverUrlRequired": "请输入后端服务地址",
127
+ "invalidUrl": "请输入有效的 http 或 https 地址",
128
+ "connectionFailed": "无法连接到这个后端服务,请确认服务已启动并允许跨域访问",
129
+ "unsupportedServerVersion": "不支持这个后端版本。当前 PWA 版本是 {{clientVersion}},后端版本是 {{serverVersion}}。",
130
+ "recentTitle": "已保存的后端服务",
131
+ "manageProfile": "管理后端服务",
132
+ "serverVersion": "后端 {{version}}",
133
+ "serverVersionUnknown": "未知版本",
134
+ "profileAlias": "别名",
135
+ "profileAliasPlaceholder": "例如家里的电脑",
136
+ "profileDescription": "介绍",
137
+ "profileDescriptionPlaceholder": "例如 Tailscale 私有网络、家用台式机",
138
+ "loginState": "登录态",
139
+ "loginSaved": "已保存登录态",
140
+ "loginMissing": "未登录",
141
+ "clearLoginState": "清除登录态",
142
+ "clearLoginStateConfirm": "仅清除当前浏览器保存的登录态。",
143
+ "removeProfile": "移除记录",
144
+ "removeProfileConfirm": "移除这条记录和它的本地登录态。",
145
+ "connect": "连接"
146
+ },
88
147
  "automation": {
89
148
  "title": "自动化任务",
90
149
  "newRule": "新建规则",
91
150
  "creatingRule": "正在新建",
92
151
  "editRule": "编辑规则",
152
+ "createMode": "创建方式",
153
+ "createModeForm": "表单创建",
154
+ "createModeChat": "对话创建",
93
155
  "searchRule": "搜索规则",
94
156
  "favorite": "收藏",
95
157
  "unfavorite": "取消收藏",
96
158
  "toggleEnabled": "启用/停用",
97
159
  "noDescription": "暂无说明",
98
160
  "runSearch": "搜索运行记录",
161
+ "runFilters": "筛选运行记录",
162
+ "runOptions": "运行记录选项",
99
163
  "statusAll": "全部状态",
164
+ "timeRange": "时间范围",
100
165
  "timeAll": "全部时间",
101
166
  "time24h": "近 24 小时",
102
167
  "time7d": "近 7 天",
103
168
  "time30d": "近 30 天",
169
+ "sortOrder": "排序",
104
170
  "sortDesc": "时间最新",
105
171
  "sortAsc": "时间最早",
106
172
  "triggerCount": "{{count}} 个触发条件",
@@ -108,9 +174,49 @@
108
174
  "sectionBasic": "基本信息",
109
175
  "sectionTriggers": "触发条件",
110
176
  "sectionTasks": "任务内容",
177
+ "sectionStartup": "启动参数",
178
+ "startupSummaryDefault": "使用默认启动参数",
179
+ "startupDefault": "默认",
180
+ "startupAdapter": "适配器",
181
+ "startupDefaultAdapter": "使用默认适配器",
182
+ "startupModel": "模型",
183
+ "startupDefaultModel": "使用默认模型",
184
+ "defaultModelLabel": "默认模型",
185
+ "startupNoModels": "暂无可用模型",
186
+ "startupEffort": "推理强度",
187
+ "startupPermissionMode": "权限模式",
188
+ "startupWorkspace": "工作区",
189
+ "startupBranchAction": "分支动作",
190
+ "startupBranchKind": "分支来源",
191
+ "startupBranchName": "分支名称",
192
+ "startupBranchNameRequired": "请输入分支名称",
193
+ "startupBranchNamePlaceholder": "例如:codex/automation-nightly",
194
+ "startupUseManagedWorktree": "创建托管 worktree",
195
+ "startupUseCurrentWorkspace": "使用当前工作区",
196
+ "startupBranchDefault": "不指定分支",
197
+ "startupBranchCheckout": "切换到已有分支",
198
+ "startupBranchCreate": "创建新分支",
199
+ "startupBranchKindLocal": "本地分支",
200
+ "startupBranchKindRemote": "远程分支",
201
+ "startupSummaryAdapter": "适配器:{{value}}",
202
+ "startupSummaryModel": "模型:{{value}}",
203
+ "startupSummaryEffort": "推理:{{value}}",
204
+ "startupSummaryPermission": "权限:{{value}}",
205
+ "startupSummaryCheckoutBranch": "切换:{{value}}",
206
+ "startupSummaryCreateBranch": "新分支:{{value}}",
207
+ "startupSummaryBranchKind": "分支来源:{{value}}",
208
+ "effortLow": "低",
209
+ "effortMedium": "中",
210
+ "effortHigh": "高",
211
+ "effortMax": "最高",
212
+ "permissionAcceptEdits": "接受编辑",
213
+ "permissionPlan": "计划",
214
+ "permissionDontAsk": "不询问",
215
+ "permissionBypassPermissions": "跳过权限",
111
216
  "ruleName": "规则名称",
112
217
  "ruleNameRequired": "请输入规则名称",
113
218
  "ruleDescription": "规则介绍",
219
+ "ruleDescriptionPlaceholder": "请输入规则介绍",
114
220
  "immediateRun": "立即触发",
115
221
  "ruleType": "触发类型",
116
222
  "ruleTypeRequired": "请选择触发类型",
@@ -150,6 +256,8 @@
150
256
  "taskDefaultTitle": "任务 {{index}}",
151
257
  "taskTitle": "任务标题",
152
258
  "taskTitlePlaceholder": "可选,用于区分多个任务",
259
+ "collapseTask": "折叠任务内容",
260
+ "expandTask": "展开任务内容",
153
261
  "taskIndex": "第 {{index}} 个任务",
154
262
  "taskCount": "{{count}} 个任务",
155
263
  "taskUnknown": "未命名任务",
@@ -160,14 +268,18 @@
160
268
  "webhookTrigger": "Webhook",
161
269
  "intervalEvery": "每 {{minutes}} 分钟",
162
270
  "enabled": "启用",
271
+ "enabledStatus": "启用状态",
163
272
  "ruleStatus": "规则状态",
164
273
  "lastRunLabel": "最近运行",
165
274
  "lastRun": "最近运行",
166
275
  "lastRunAt": "最近运行:{{time}}",
167
276
  "noRunYet": "暂无运行记录",
168
277
  "emptyRules": "暂无自动化任务",
278
+ "createRuleLink": "新建自动化任务",
169
279
  "mobileRules": "规则",
170
280
  "mobileDetails": "详情",
281
+ "collapseRulePanel": "收起规则列表",
282
+ "expandRulePanel": "展开规则列表",
171
283
  "selectRule": "请选择一个自动化任务",
172
284
  "ruleId": "规则 ID",
173
285
  "createdAt": "创建时间",
@@ -196,7 +308,25 @@
196
308
  "deleteFailed": "删除失败",
197
309
  "toggleFailed": "更新失败",
198
310
  "runStarted": "已启动任务",
199
- "runFailed": "启动失败"
311
+ "runFailed": "启动失败",
312
+ "emptyLandingEyebrow": "AI 创建自动化",
313
+ "emptyLandingTitle": "让 AI 帮你创建自动化任务",
314
+ "emptyLandingDescription": "选择一个常见任务填入下方输入框,或直接描述触发条件和要执行的任务。发送后会进入会话,由 AI 调用工具完成创建。",
315
+ "emptyLandingPlaceholder": "描述你想创建的自动化任务",
316
+ "emptyLandingSendInstruction": "请根据下面的需求创建自动化任务。请优先调用可用的自动化任务工具完成创建;如果信息不足,先追问缺失配置。\n\n需求:\n{{request}}",
317
+ "emptyLandingAttachmentInstruction": "请根据我附带的上下文创建自动化任务。请优先调用可用的自动化任务工具完成创建;如果信息不足,先追问缺失配置。",
318
+ "starterDailyTitle": "每日项目简报",
319
+ "starterDailyDescription": "每天固定时间总结进展、风险和下一步。",
320
+ "starterDailyPrompt": "请帮我创建一个自动化任务:每天工作日上午 9 点检查当前项目状态,汇总昨天完成的工作、今天需要关注的风险和下一步建议。请通过可用的自动化任务工具完成创建。",
321
+ "starterHealthTitle": "定时健康检查",
322
+ "starterHealthDescription": "周期性运行检查,发现异常后提醒。",
323
+ "starterHealthPrompt": "请帮我创建一个自动化任务:每 30 分钟检查当前项目是否有失败的测试、构建错误或服务异常。如果发现问题,创建会话说明原因并给出修复建议。请通过可用的自动化任务工具完成创建。",
324
+ "starterWeeklyTitle": "每周复盘",
325
+ "starterWeeklyDescription": "每周固定时间整理进展、遗留问题和计划。",
326
+ "starterWeeklyPrompt": "请帮我创建一个自动化任务:每周五 17:30 总结本周开发进展、已解决的问题、未完成事项和下周建议。请通过可用的自动化任务工具完成创建。",
327
+ "starterReminderTitle": "重要事项提醒",
328
+ "starterReminderDescription": "到点提醒或检查特定事项。",
329
+ "starterReminderPrompt": "请帮我创建一个自动化任务:每个工作日 18:00 检查是否还有未处理的待办、等待输入或失败任务,并创建会话提醒我处理。请通过可用的自动化任务工具完成创建。"
200
330
  },
201
331
  "benchmark": {
202
332
  "title": "评测",
@@ -262,6 +392,7 @@
262
392
  "rules": "规则"
263
393
  },
264
394
  "actions": {
395
+ "new": "新建",
265
396
  "refresh": "刷新",
266
397
  "refreshed": "已刷新",
267
398
  "import": "导入",
@@ -270,6 +401,7 @@
270
401
  },
271
402
  "filters": {
272
403
  "search": "搜索名称、描述或参数",
404
+ "searchActive": "搜索当前列表",
273
405
  "tags": "按标签过滤",
274
406
  "noResults": "没有匹配的结果"
275
407
  },
@@ -285,9 +417,84 @@
285
417
  "title": "技能库",
286
418
  "desc": "维护可复用的技能定义与调用说明。",
287
419
  "empty": "暂未发现技能。",
420
+ "project": "项目技能",
421
+ "sourceProject": "项目",
422
+ "sourcePlugin": "插件",
423
+ "sourceHome": "本地",
424
+ "market": "市场",
288
425
  "create": "新建技能",
426
+ "createSuccess": "技能已创建",
427
+ "createFailed": "新建技能失败",
289
428
  "createHint": "请在 .ai/skills 中创建技能文件,保存后刷新页面。",
290
- "importHint": "请将技能文件导入至 .ai/skills,保存后刷新页面。"
429
+ "importHint": "请将技能文件导入至 .ai/skills,保存后刷新页面。",
430
+ "importSuccess": "已导入 {{count}} 个文件",
431
+ "importFailed": "导入技能失败",
432
+ "searchProject": "搜索项目技能",
433
+ "searchHub": "搜索 skills hub",
434
+ "marketActions": "源与筛选",
435
+ "allRegistries": "全部源",
436
+ "registryFilter": "筛选市场源",
437
+ "allSources": "全部仓库",
438
+ "sourceFilter": "筛选仓库来源",
439
+ "installFilter": "筛选安装状态",
440
+ "allStatuses": "全部状态",
441
+ "installedOnly": "仅已安装",
442
+ "notInstalled": "仅未安装",
443
+ "sort": "排序",
444
+ "sortDefault": "默认排序",
445
+ "sortInstallsDesc": "安装量优先",
446
+ "sortNameAsc": "名称 A-Z",
447
+ "sortNameDesc": "名称 Z-A",
448
+ "addRegistry": "添加源",
449
+ "openConfig": "打开源配置",
450
+ "noRegistry": "暂未配置源。",
451
+ "emptyHub": "输入至少 2 个字符搜索 skills.sh。",
452
+ "install": "安装",
453
+ "openOfficialSite": "打开官网",
454
+ "loadMore": "加载更多",
455
+ "loadingMore": "正在加载",
456
+ "reinstall": "重新安装",
457
+ "installSuccess": "已安装",
458
+ "installFailed": "安装失败",
459
+ "installed": "已安装",
460
+ "installs": "{{value}} 次安装",
461
+ "scope": "作用域",
462
+ "hooks": "Hooks",
463
+ "registrySaved": "源已保存",
464
+ "registryExists": "源已存在",
465
+ "registryName": "名称",
466
+ "registryNameRequired": "请输入源名称",
467
+ "registryNamePlaceholder": "team-tools",
468
+ "registrySource": "来源",
469
+ "registryValue": "源地址",
470
+ "registryValueRequired": "请输入源地址",
471
+ "registryUrl": "URL",
472
+ "registryDirectory": "目录",
473
+ "registryGithub": "GitHub",
474
+ "registryGit": "Git",
475
+ "registryUrlPlaceholder": "https://example.com/marketplace.json",
476
+ "registryPathPlaceholder": "/path/to/marketplace",
477
+ "registryGithubPlaceholder": "owner/repo",
478
+ "registryGitPlaceholder": "https://example.com/repo.git",
479
+ "installViaSkillsCli": "通过 Skills CLI 安装",
480
+ "skillsCliSource": "Source",
481
+ "skillsCliSourceRequired": "请输入 skills source",
482
+ "skillsCliSourcePlaceholder": "example-source/default/public",
483
+ "skillsCliRegistry": "Registry(可选)",
484
+ "skillsCliRegistryPlaceholder": "https://registry.example.com(仅特殊环境需要)",
485
+ "skillsCliQuery": "搜索",
486
+ "skillsCliQueryPlaceholder": "筛选这个 source 里的 skills",
487
+ "skillsCliSearch": "搜索",
488
+ "skillsCliSearchFailed": "Skills CLI 搜索失败",
489
+ "skillsCliHint": "输入完整 source path(例如 example-source/default/public)后即可直接通过 skills CLI 搜索并安装 skill;Registry 仅在需要切换 CLI 安装源时填写。",
490
+ "skillsCliEmpty": "这个 source 下没有匹配的 skill。",
491
+ "skillName": "名称",
492
+ "skillNameRequired": "请输入技能名称",
493
+ "skillNamePlaceholder": "review-checklist",
494
+ "skillDescription": "描述",
495
+ "skillDescriptionPlaceholder": "用于代码审查的检查清单",
496
+ "skillBody": "内容",
497
+ "skillBodyPlaceholder": "写下这个技能的使用方式"
291
498
  },
292
499
  "entities": {
293
500
  "title": "实体库",
@@ -321,11 +528,12 @@
321
528
  "clickToEditTitle": "点击编辑标题",
322
529
  "inputPlaceholder": "输入消息...",
323
530
  "send": "发送",
324
- "thinking": "思考中...",
531
+ "thinking": "正在思考",
325
532
  "stop": "停止",
326
533
  "result": "结果",
327
534
  "sessionActive": "会话进行中",
328
535
  "selectModel": "选择模型开始聊天",
536
+ "adapterSelectPlaceholder": "选择适配器",
329
537
  "modelSelectPlaceholder": "选择模型",
330
538
  "modelSearchPlaceholder": "搜索模型或服务",
331
539
  "modelUnavailable": "暂无可用模型",
@@ -335,13 +543,18 @@
335
543
  "connectionErrorTitle": "连接异常",
336
544
  "connectionClosedTitle": "连接已断开",
337
545
  "sessionErrorTitle": "任务失败",
546
+ "sessionCreateFailedTitle": "会话创建失败",
338
547
  "connectionError": "WebSocket 连接失败,请检查服务状态后重试",
339
548
  "connectionClosed": "WebSocket 连接已关闭,请重试",
340
549
  "connectionErrorHelp": "当前流式更新还没恢复就中断了。重试连接后可以重新订阅这个会话的实时输出。",
341
550
  "connectionClosedHelp": "当前消息流意外结束了。重试连接后,可以继续接收这个会话后续的新消息。",
342
551
  "sessionErrorHelp": "可以先检查最近一次工具输出或终端日志,再决定是否从最近一条用户消息继续。",
552
+ "sessionCreateFailedHelp": "首条消息已经保留在当前页面。修复问题后,点击下方按钮会使用同一条消息重新创建会话。",
553
+ "sessionCreateFailedMessage": "会话创建失败",
343
554
  "sessionErrorCode": "错误码:{{code}}",
344
555
  "retryConnection": "重试连接",
556
+ "retrySessionCreation": "重试创建会话",
557
+ "retrySessionCreationRequired": "请先点击错误提示中的重试创建按钮",
345
558
  "debugMockLabel": "调试预览",
346
559
  "debugMockConnectionErrorMessage": "无法连上当前会话的消息流,WebSocket 握手在收到任何更新前就超时了。",
347
560
  "debugMockConnectionClosedMessage": "assistant 已经开始回复,但连接中途断开;在重新连接前,不会再收到新的 token。",
@@ -394,6 +607,28 @@
394
607
  "stopShortcutConfirm": "再按一次 Esc 停止当前执行"
395
608
  },
396
609
  "adapterLockedTooltip": "创建会话后适配器会锁定",
610
+ "sessionTarget": {
611
+ "title": "会话目标",
612
+ "lockedHint": "创建后已固定",
613
+ "creatingHint": "正在创建会话",
614
+ "missingResourceWarning": "请先选择当前模式下的资源",
615
+ "modes": {
616
+ "default": "默认",
617
+ "workspace": "Workspace",
618
+ "entity": "Agent",
619
+ "spec": "Spec"
620
+ },
621
+ "placeholders": {
622
+ "workspace": "选择 workspace",
623
+ "entity": "选择 agent",
624
+ "spec": "选择 spec"
625
+ },
626
+ "empty": {
627
+ "workspace": "暂无 workspace",
628
+ "entity": "暂无 agent",
629
+ "spec": "暂无 spec"
630
+ }
631
+ },
397
632
  "referenceActionsShort": "更多",
398
633
  "referenceActionsTitle": "更多",
399
634
  "referenceActionsDescription": "添加照片、文件和权限相关设置。",
@@ -401,10 +636,21 @@
401
636
  "referenceAttachmentsDescription": "选择图片或项目文件作为引用内容。",
402
637
  "referencePermission": "权限模式",
403
638
  "referencePermissionDescription": "控制工具执行前的授权策略。",
639
+ "collapseHeaderControls": "收起顶部栏",
640
+ "expandHeaderControls": "展开顶部栏",
404
641
  "referenceImage": "图片",
405
642
  "referenceImageDescription": "从本地选择图片并附在消息中。",
406
643
  "referenceFile": "文件",
407
644
  "referenceFileDescription": "从当前项目目录树中选择要引用的文件。",
645
+ "accountSelectPlaceholder": "选择账号",
646
+ "accountSelectCreateAccount": "快速创建 {{adapter}} 账号",
647
+ "accountSelectCreateTitle": "接入 {{adapter}} 账号",
648
+ "accountSelectCreateWaiting": "等待账号接入完成",
649
+ "accountSelectCreateDescription": "请在 Codex 打开的浏览器登录流程中完成认证。完成前请保持此弹窗打开;如果不再继续,可以主动取消。",
650
+ "accountSelectCreateCanceling": "取消中…",
651
+ "accountSelectCreateCanceled": "已取消账号接入",
652
+ "accountSelectOpenAdapterConfig": "打开 {{adapter}} 配置",
653
+ "accountSelectOpenAccountConfig": "打开 {{account}} 设置",
408
654
  "effortSelectPlaceholder": "推理强度",
409
655
  "effortLabels": {
410
656
  "default": "默认",
@@ -428,12 +674,66 @@
428
674
  "imageReadFailed": "图片读取失败",
429
675
  "imageNotSupportedInInteraction": "当前交互不支持图片",
430
676
  "fileNotSupportedInInteraction": "当前交互不支持文件上下文",
431
- "contextPickerTitle": "引用文件",
432
- "contextPickerDescription": "从当前项目目录树中选择一个或多个文件。",
433
- "contextPickerConfirm": "引用文件",
677
+ "contextPickerTitle": "引用文件或文件夹",
678
+ "contextPickerDescription": "从当前项目目录树中选择一个或多个文件或文件夹。",
679
+ "contextPickerConfirm": "引用",
434
680
  "contextPickerLoading": "正在加载项目目录树...",
435
- "contextPickerEmpty": "当前目录下没有可选文件",
681
+ "contextPickerEmpty": "当前目录下没有可选项目",
436
682
  "contextPickerLoadFailed": "项目目录树加载失败",
683
+ "workspaceDrawerToggle": "工作区抽屉",
684
+ "workspaceDrawerTitle": "工作区",
685
+ "workspaceDrawerRefresh": "刷新工作区",
686
+ "workspaceDrawerForceSync": "强制同步",
687
+ "workspaceDrawerDisplayMode": "展示模式",
688
+ "workspaceDrawerLocateFile": "定位文件",
689
+ "workspaceDrawerExpandAll": "展开",
690
+ "workspaceDrawerCollapseAll": "折叠",
691
+ "workspaceDrawerToggleSection": "展开或折叠分栏",
692
+ "workspaceFileOpen": "打开文件",
693
+ "workspaceTreeReferenceToInput": "引用到输入框",
694
+ "workspaceTreeTargetMissing": "目标不存在",
695
+ "workspaceTreeTargetMissingState": "(目标不存在)",
696
+ "workspaceTreeExternalLinkState": "(外部链接)",
697
+ "workspaceTreeNodeLinkTitle": "{{path}} -> {{target}}{{state}}",
698
+ "workspaceTreeLinkTargetMissing": "链接目标不存在:{{target}}",
699
+ "workspaceTreeLinkTarget": "链接目标:{{target}}",
700
+ "workspaceFileCopyPath": "复制路径",
701
+ "workspaceFilePathCopied": "路径已复制",
702
+ "workspaceFileCloseOthers": "关闭其他",
703
+ "workspaceFileCloseRight": "关闭右侧",
704
+ "workspaceFileCloseAll": "关闭全部",
705
+ "workspaceDrawerChangedFiles": "改动文件",
706
+ "workspaceDrawerChangedCount": "{{count}} 个",
707
+ "workspaceDrawerLoadingGit": "正在读取 Git 状态...",
708
+ "workspaceDrawerGitUnavailable": "当前工作区不可用 Git。",
709
+ "workspaceDrawerNoChangedFiles": "暂无改动文件",
710
+ "workspaceDrawerTree": "目录树",
711
+ "workspaceDrawerChangedFolders": "按文件夹展示",
712
+ "workspaceDrawerChangedFlat": "平铺展示",
713
+ "workspaceDrawerChangedSection": {
714
+ "staged": "已暂存",
715
+ "tracked": "已跟踪",
716
+ "untracked": "未跟踪"
717
+ },
718
+ "workspaceDrawerSubmodule": "子模块",
719
+ "workspaceDrawerSubmoduleCommit": "提交已变化",
720
+ "workspaceDrawerSubmoduleTracked": "已跟踪改动",
721
+ "workspaceDrawerSubmoduleUntracked": "未跟踪改动",
722
+ "workspaceFileEditorTitle": "文件",
723
+ "workspaceFileEditorLoading": "正在读取文件...",
724
+ "workspaceFileEditorLoadFailed": "文件读取失败",
725
+ "workspaceImagePreviewLoadFailed": "图片加载失败",
726
+ "workspaceFileEditorSave": "保存",
727
+ "workspaceFileEditorSaved": "已保存",
728
+ "workspaceFileEditorRevert": "还原",
729
+ "workspaceFileEditorResizePanel": "拖拽调整文件编辑器高度",
730
+ "workspaceDrawerFileStatus": {
731
+ "staged": "已暂存",
732
+ "tracked": "已跟踪改动",
733
+ "unstaged": "未暂存",
734
+ "untracked": "未跟踪",
735
+ "mixed": "混合"
736
+ },
437
737
  "modelGroupRecommended": "推荐模型",
438
738
  "modelMoreModels": "更多模型",
439
739
  "availableTools": "可用工具",
@@ -469,6 +769,7 @@
469
769
  "viewTimeline": "时序",
470
770
  "viewTerminal": "终端",
471
771
  "viewSettings": "配置",
772
+ "newSessionTitle": "新会话",
472
773
  "gitBranchSwitcher": "切换分支",
473
774
  "gitOperations": "Git 操作",
474
775
  "gitWorktree": "Worktree",
@@ -503,6 +804,11 @@
503
804
  "sessionWorkspaceBaseRef": "基线引用",
504
805
  "sessionWorkspaceCurrentSession": "当前会话",
505
806
  "sessionWorkspaceRepositoryWorktrees": "仓库 worktree",
807
+ "sessionWorkspaceEnvironment": "worktree 环境",
808
+ "sessionWorkspaceEnvironmentDefault": "默认环境",
809
+ "sessionWorkspaceEnvironmentProject": "项目",
810
+ "sessionWorkspaceEnvironmentLocal": "本地",
811
+ "sessionWorkspaceNoEnvironments": "暂无环境",
506
812
  "sessionWorkspaceStateReady": "就绪",
507
813
  "sessionWorkspaceStateProvisioning": "创建中",
508
814
  "sessionWorkspaceStateDeleting": "删除中",
@@ -656,9 +962,23 @@
656
962
  "hint": "按 Enter 发送,Shift + Enter 换行,输入 / @ # 触发补全",
657
963
  "newSessionGuide": {
658
964
  "loading": "正在加载...",
965
+ "searchPlaceholder": "搜索动作、提示词或目标",
966
+ "favoriteTitle": "收藏",
967
+ "recentTitle": "最近使用",
968
+ "emptySearch": "没有匹配的动作",
969
+ "showMore": "展开剩余 {{count}} 项",
970
+ "showLess": "收起列表",
971
+ "favoriteAction": "收藏动作",
972
+ "unfavoriteAction": "取消收藏",
973
+ "fallbackPresetPrefix": "预设",
974
+ "fallbackActionPrefix": "动作",
659
975
  "announcements": {
660
976
  "title": "最新公告"
661
977
  },
978
+ "workspaces": {
979
+ "title": "已有 Workspace",
980
+ "empty": "暂未发现 workspace,请在 .ai.config.json 中配置 workspaces。"
981
+ },
662
982
  "moreCount": "还有 {{count}} 项",
663
983
  "specs": {
664
984
  "title": "已有流程",
@@ -668,17 +988,10 @@
668
988
  "createToast": "请在 .ai/specs 下创建流程文件,保存后刷新页面。"
669
989
  },
670
990
  "entities": {
671
- "title": "已有实体",
672
- "empty": "暂未发现实体,加入实体定义文件后即可展示。",
673
- "create": "快速创建实体",
991
+ "title": "已有 Agent",
992
+ "empty": "暂未发现 Agent,加入实体定义文件后即可展示。",
993
+ "create": "快速创建 Agent",
674
994
  "createToast": "请创建实体定义文件,保存后刷新页面。"
675
- },
676
- "help": {
677
- "title": "一些帮助",
678
- "item1": "流程文件支持 name/description/params 等元信息,便于识别和调用",
679
- "item2": "实体可使用 index.json 或 README.md 描述能力与职责",
680
- "item3": "创建完成后刷新页面即可出现在这里",
681
- "footer": "需要更多引导时,可在流程描述中写明使用方式"
682
995
  }
683
996
  },
684
997
  "attachments": {
@@ -791,9 +1104,31 @@
791
1104
  "unknown": "未知工具"
792
1105
  },
793
1106
  "terminal": {
1107
+ "addSession": "新建终端",
1108
+ "closeNamedSession": "关闭 {{title}}",
1109
+ "closeSession": "关闭终端 {{index}}",
794
1110
  "connectionError": "终端连接失败,请检查服务状态后重试",
1111
+ "dragSession": "拖拽调整终端顺序",
1112
+ "enterFullscreen": "全屏",
1113
+ "exited": "已退出",
1114
+ "exitFullscreen": "退出全屏",
795
1115
  "exitSummary": "终端已退出,exitCode={{code}},signal={{signal}}",
796
- "resizePanel": "拖动调整终端高度"
1116
+ "hideManager": "隐藏终端列表",
1117
+ "manageTerminals": "管理终端",
1118
+ "paneTitle": "终端 {{index}}",
1119
+ "renameSession": "重命名 {{title}}",
1120
+ "selectShell": "选择终端类型",
1121
+ "sessionCount": "{{count}} 个终端",
1122
+ "resizePanel": "拖动调整终端高度",
1123
+ "shellTooltip": "Shell:{{shell}}",
1124
+ "shellTooltipExited": "Shell:{{shell}},已退出",
1125
+ "showManager": "显示终端列表",
1126
+ "shell": {
1127
+ "bash": "Bash",
1128
+ "default": "默认 Shell",
1129
+ "sh": "sh",
1130
+ "zsh": "Zsh"
1131
+ }
797
1132
  },
798
1133
  "sessionSettings": "会话设置",
799
1134
  "enterTitle": "输入会话标题...",
@@ -820,6 +1155,10 @@
820
1155
  "projectMissing": "项目(未创建)",
821
1156
  "userMissing": "用户(未创建)"
822
1157
  },
1158
+ "navigation": {
1159
+ "search": "搜索配置分类",
1160
+ "noResults": "没有匹配的配置分类"
1161
+ },
823
1162
  "actions": {
824
1163
  "edit": "编辑",
825
1164
  "save": "保存",
@@ -827,21 +1166,31 @@
827
1166
  "format": "格式化",
828
1167
  "copy": "复制"
829
1168
  },
1169
+ "conflict": {
1170
+ "title": "配置正在被其他地方修改",
1171
+ "description": "{{source}} / {{target}} 在当前页面之外已经发生更新,而你这里还有未保存的编辑。",
1172
+ "instructions": "请先选择保留哪一份,再继续编辑,避免两边互相覆盖。",
1173
+ "keepLocal": "保留当前编辑",
1174
+ "useRemote": "采用外部修改"
1175
+ },
830
1176
  "editor": {
831
1177
  "addField": "添加字段",
832
1178
  "addItem": "添加项",
833
1179
  "remove": "移除",
1180
+ "removeItemConfirmTitle": "确认删除这个条目?",
834
1181
  "collapse": "折叠",
835
1182
  "expand": "展开",
836
1183
  "addAdapter": "添加适配器",
837
1184
  "addPlugin": "添加插件",
838
1185
  "addMcpServer": "添加 MCP 服务",
839
1186
  "addModelService": "添加模型服务",
840
- "addMarketplace": "添加市场",
1187
+ "addMarketplace": "添加源",
841
1188
  "addEnvVar": "添加环境变量",
842
1189
  "addHeader": "添加请求头",
843
1190
  "addEntry": "添加条目",
844
- "newModelSelectorName": "新增模型选择器",
1191
+ "newModelSelectorName": "新增模型元数据",
1192
+ "moveUp": "上移",
1193
+ "moveDown": "下移",
845
1194
  "shortcutPlaceholder": "按下快捷键",
846
1195
  "clearShortcut": "清除快捷键",
847
1196
  "newModelServiceName": "新增模型服务名称",
@@ -849,7 +1198,7 @@
849
1198
  "newAdapterName": "新增适配器名称",
850
1199
  "newPluginName": "新增插件名称",
851
1200
  "newMcpServerName": "新增 MCP 服务名称",
852
- "newMarketplaceName": "新增市场名称",
1201
+ "newMarketplaceName": "新增源名称",
853
1202
  "newEnvVarName": "新增环境变量名称",
854
1203
  "newHeaderName": "新增请求头名称",
855
1204
  "fieldKey": "字段名",
@@ -863,6 +1212,7 @@
863
1212
  "defaultAdapterPlaceholder": "请选择适配器",
864
1213
  "defaultModelServicePlaceholder": "请选择模型服务",
865
1214
  "defaultModelPlaceholder": "请选择模型",
1215
+ "worktreeEnvironmentPlaceholder": "请选择 worktree 环境",
866
1216
  "titlePlaceholder": "请输入标题",
867
1217
  "descriptionPlaceholder": "请输入描述",
868
1218
  "channelType": "频道类型",
@@ -877,12 +1227,81 @@
877
1227
  "array": "数组"
878
1228
  },
879
1229
  "effort": {
1230
+ "default": "默认",
880
1231
  "low": "低",
881
1232
  "medium": "中",
882
1233
  "high": "高",
883
1234
  "max": "最高"
884
1235
  }
885
1236
  },
1237
+ "detail": {
1238
+ "back": "返回",
1239
+ "override": "覆盖到当前配置",
1240
+ "inheritedReadonly": "这个值来自 extends 继承配置。先覆盖到当前配置,再进行编辑。",
1241
+ "inheritedAppendOnly": "这个条目来自 extends 继承配置。当前集合按追加方式合并,不能直接在这里改这个继承条目;需要去源配置修改,或者整体覆盖当前集合。",
1242
+ "partialOverride": "这个条目正在覆盖一份继承配置。未在本地设置的字段仍然来自继承层。",
1243
+ "inheritedBadge": "继承",
1244
+ "overrideBadge": "覆盖",
1245
+ "localBadge": "本地"
1246
+ },
1247
+ "accounts": {
1248
+ "title": "账号",
1249
+ "back": "返回账号列表",
1250
+ "backToAdapter": "返回适配器",
1251
+ "empty": "暂无可用账号",
1252
+ "detailMissing": "暂时无法读取账号详情。",
1253
+ "default": "默认",
1254
+ "count": "{{count}} 个账号",
1255
+ "readyCount": "{{count}} 个可用",
1256
+ "defaultHint": "默认:{{account}}",
1257
+ "quotaTitle": "额度",
1258
+ "settingsTitle": "账号配置",
1259
+ "settingsDescription": "这里编辑的是 adapter 配置里的账号字段;如果 adapter 支持,会覆盖 workspace 保存的登录快照。",
1260
+ "adapterKeyHint": "适配器:{{adapter}}",
1261
+ "searchPlaceholder": "搜索账号",
1262
+ "searchEmpty": "没有匹配的账号",
1263
+ "deleteConfirmTitle": "确定删除 {{account}} 的工作区登录快照吗?",
1264
+ "rowActions": {
1265
+ "setDefault": "设为默认账号",
1266
+ "clearDefault": "取消默认账号",
1267
+ "delete": "删除账号快照"
1268
+ },
1269
+ "facts": {
1270
+ "email": "邮箱",
1271
+ "type": "类型",
1272
+ "plan": "套餐"
1273
+ },
1274
+ "status": {
1275
+ "ready": "可用",
1276
+ "missing": "缺失",
1277
+ "error": "异常"
1278
+ },
1279
+ "actions": {
1280
+ "add": {
1281
+ "label": "接入账号",
1282
+ "description": "触发 adapter 的登录接入动作,并把凭据保存到当前工作区。"
1283
+ },
1284
+ "refresh": {
1285
+ "label": "刷新额度",
1286
+ "description": "重新拉取这个账号的套餐和额度信息。"
1287
+ },
1288
+ "remove": {
1289
+ "label": "删除快照",
1290
+ "description": "移除当前工作区里保存的这个账号快照。"
1291
+ }
1292
+ },
1293
+ "actionSuccess": {
1294
+ "add": "账号接入成功",
1295
+ "refresh": "额度已刷新",
1296
+ "remove": "账号快照已删除"
1297
+ },
1298
+ "actionFailed": {
1299
+ "add": "账号接入失败",
1300
+ "refresh": "刷新额度失败",
1301
+ "remove": "删除账号快照失败"
1302
+ },
1303
+ "authFileDefaultLookup": "留空时默认读取 {{path}}。"
1304
+ },
886
1305
  "fields": {
887
1306
  "general": {
888
1307
  "baseDir": {
@@ -907,7 +1326,29 @@
907
1326
  },
908
1327
  "recommendedModels": {
909
1328
  "label": "建议模型",
910
- "desc": "用于模型下拉推荐展示的列表"
1329
+ "desc": "用于模型下拉推荐展示的列表",
1330
+ "item": {
1331
+ "service": {
1332
+ "label": "模型服务",
1333
+ "desc": "可选,指定模型所属的服务"
1334
+ },
1335
+ "model": {
1336
+ "label": "模型",
1337
+ "desc": "推荐展示的模型标识"
1338
+ },
1339
+ "title": {
1340
+ "label": "标题",
1341
+ "desc": "推荐项展示标题,可选"
1342
+ },
1343
+ "description": {
1344
+ "label": "描述",
1345
+ "desc": "推荐项展示描述,可选"
1346
+ },
1347
+ "placement": {
1348
+ "label": "展示位置",
1349
+ "desc": "推荐项出现的界面位置"
1350
+ }
1351
+ }
911
1352
  },
912
1353
  "interfaceLanguage": {
913
1354
  "label": "界面交互语言",
@@ -950,6 +1391,25 @@
950
1391
  "desc": "0-1 或 0-100,0 为静音"
951
1392
  },
952
1393
  "events": {
1394
+ "label": "事件通知",
1395
+ "desc": "分别配置每一种会话状态通知",
1396
+ "item": {
1397
+ "enabled": {
1398
+ "label": "启用通知"
1399
+ },
1400
+ "title": {
1401
+ "label": "标题",
1402
+ "desc": "留空使用默认标题"
1403
+ },
1404
+ "description": {
1405
+ "label": "消息内容",
1406
+ "desc": "留空使用默认文案"
1407
+ },
1408
+ "sound": {
1409
+ "label": "提示音",
1410
+ "desc": "音频文件路径,留空使用默认音效"
1411
+ }
1412
+ },
953
1413
  "completed": {
954
1414
  "label": "完成通知",
955
1415
  "desc": "会话完成时触发",
@@ -1042,14 +1502,113 @@
1042
1502
  "label": "新建会话时创建工作树",
1043
1503
  "desc": "默认给新会话分配一个托管 worktree"
1044
1504
  },
1505
+ "worktreeEnvironment": {
1506
+ "label": "默认 worktree 环境",
1507
+ "desc": "新建、启动和销毁托管 worktree 时执行的环境脚本"
1508
+ },
1045
1509
  "customInstructions": {
1046
1510
  "label": "自定义指令",
1047
1511
  "desc": "为对话提供额外的提示与约束"
1512
+ },
1513
+ "startupPresets": {
1514
+ "label": "启动预设",
1515
+ "desc": "在新会话页展示一组可一键应用的启动环境预设"
1516
+ },
1517
+ "builtinActions": {
1518
+ "label": "内置开发动作",
1519
+ "desc": "在新会话页展示一组可直接套用的开发动作模板"
1520
+ },
1521
+ "starterItem": {
1522
+ "title": {
1523
+ "label": "标题",
1524
+ "desc": "列表中展示的名称"
1525
+ },
1526
+ "description": {
1527
+ "label": "说明",
1528
+ "desc": "列表中展示的补充描述"
1529
+ },
1530
+ "icon": {
1531
+ "label": "图标",
1532
+ "desc": "Material Symbols 图标名称,例如 `rocket_launch`"
1533
+ },
1534
+ "mode": {
1535
+ "label": "启动模式",
1536
+ "desc": "新会话默认切换到的目标模式"
1537
+ },
1538
+ "target": {
1539
+ "label": "目标资源",
1540
+ "desc": "Workspace 使用 id,Agent / 实体 / 流程使用名称"
1541
+ },
1542
+ "targetLabel": {
1543
+ "label": "目标展示名",
1544
+ "desc": "可选的列表展示名称;留空时使用目标资源值"
1545
+ },
1546
+ "targetDescription": {
1547
+ "label": "目标说明",
1548
+ "desc": "可选的目标补充说明"
1549
+ },
1550
+ "model": {
1551
+ "label": "模型",
1552
+ "desc": "模型值,支持 `service,model` 形式"
1553
+ },
1554
+ "adapter": {
1555
+ "label": "适配器",
1556
+ "desc": "启动时切换到的 adapter"
1557
+ },
1558
+ "account": {
1559
+ "label": "账号",
1560
+ "desc": "启动时切换到的账号"
1561
+ },
1562
+ "effort": {
1563
+ "label": "推理强度",
1564
+ "desc": "启动时应用的推理强度"
1565
+ },
1566
+ "permissionMode": {
1567
+ "label": "权限模式",
1568
+ "desc": "启动时应用的权限模式"
1569
+ },
1570
+ "worktreeCreate": {
1571
+ "label": "使用工作树",
1572
+ "desc": "是否默认给这个预设启用托管 worktree"
1573
+ },
1574
+ "worktreeEnvironment": {
1575
+ "label": "工作树环境",
1576
+ "desc": "该预设使用的 worktree 环境 id"
1577
+ },
1578
+ "branchName": {
1579
+ "label": "分支名",
1580
+ "desc": "启动时预填的目标分支名"
1581
+ },
1582
+ "branchKind": {
1583
+ "label": "分支来源",
1584
+ "desc": "分支来自本地还是远端"
1585
+ },
1586
+ "branchMode": {
1587
+ "label": "分支动作",
1588
+ "desc": "切换已有分支还是创建新分支"
1589
+ },
1590
+ "prompt": {
1591
+ "label": "预置提示词",
1592
+ "desc": "点击后预填到 sender 的提示词"
1593
+ },
1594
+ "files": {
1595
+ "label": "关联文件",
1596
+ "desc": "点击后附带到 sender 的文件路径列表"
1597
+ },
1598
+ "rules": {
1599
+ "label": "关联规则",
1600
+ "desc": "规则文件路径或规则标识;会尽量转换为上下文附件"
1601
+ },
1602
+ "skills": {
1603
+ "label": "关联技能",
1604
+ "desc": "技能文件路径或技能标识;会尽量转换为上下文附件"
1605
+ },
1606
+ "worktreeEnabledBadge": "工作树"
1048
1607
  }
1049
1608
  },
1050
1609
  "models": {
1051
1610
  "items": {
1052
- "label": "模型选择器明细",
1611
+ "label": "模型元数据明细",
1053
1612
  "desc": "按 `service` 或 `service,model` 配置模型元信息;展示元数据如 alias/title/description 仅在 `model` 或 `service,model` 精确匹配时生效"
1054
1613
  }
1055
1614
  },
@@ -1094,11 +1653,41 @@
1094
1653
  }
1095
1654
  },
1096
1655
  "adapters": {
1656
+ "defaultModel": {
1657
+ "label": "默认模型",
1658
+ "desc": "这个适配器优先使用的模型。"
1659
+ },
1660
+ "includeModels": {
1661
+ "label": "允许模型",
1662
+ "desc": "限制这个适配器仅可使用的模型列表。"
1663
+ },
1664
+ "excludeModels": {
1665
+ "label": "禁用模型",
1666
+ "desc": "禁止这个适配器使用的模型列表。"
1667
+ },
1668
+ "defaultAccount": {
1669
+ "label": "默认账号",
1670
+ "desc": "这个适配器默认选中的账号 key。"
1671
+ },
1097
1672
  "items": {
1098
1673
  "label": "适配器明细",
1099
1674
  "desc": "按适配器名称平铺配置,公共字段包括 `defaultModel`、`includeModels` 和 `excludeModels`"
1100
1675
  }
1101
1676
  },
1677
+ "adapterAccount": {
1678
+ "title": {
1679
+ "label": "显示名称",
1680
+ "desc": "这个账号在界面里的展示标题。"
1681
+ },
1682
+ "description": {
1683
+ "label": "描述",
1684
+ "desc": "补充说明这个账号的用途或来源。"
1685
+ },
1686
+ "authFile": {
1687
+ "label": "认证文件",
1688
+ "desc": "显式指定这个账号对应的 auth.json 路径。"
1689
+ }
1690
+ },
1102
1691
  "plugins": {
1103
1692
  "items": {
1104
1693
  "label": "插件配置",
@@ -1109,8 +1698,8 @@
1109
1698
  "desc": "控制插件启用状态"
1110
1699
  },
1111
1700
  "marketplaces": {
1112
- "label": "额外插件源",
1113
- "desc": "新增可用的插件市场来源"
1701
+ "label": "技能源",
1702
+ "desc": "可搜索的 skills hub 来源"
1114
1703
  }
1115
1704
  },
1116
1705
  "mcp": {
@@ -1205,14 +1794,47 @@
1205
1794
  "friendly": "友好",
1206
1795
  "programmatic": "程序化"
1207
1796
  },
1797
+ "conversationStarterMode": {
1798
+ "default": "默认",
1799
+ "workspace": "Workspace",
1800
+ "agent": "Agent",
1801
+ "entity": "实体",
1802
+ "spec": "流程"
1803
+ },
1804
+ "permissionMode": {
1805
+ "default": "默认",
1806
+ "acceptEdits": "接受编辑",
1807
+ "plan": "计划",
1808
+ "dontAsk": "不询问",
1809
+ "bypassPermissions": "跳过权限"
1810
+ },
1811
+ "branchKind": {
1812
+ "local": "本地分支",
1813
+ "remote": "远端分支"
1814
+ },
1815
+ "branchMode": {
1816
+ "checkout": "切换",
1817
+ "create": "创建"
1818
+ },
1208
1819
  "mcp": {
1209
1820
  "command": "命令",
1210
1821
  "sse": "SSE",
1211
1822
  "http": "HTTP"
1823
+ },
1824
+ "recommendedModels": {
1825
+ "modelSelector": "模型元数据"
1212
1826
  }
1213
1827
  },
1214
1828
  "sectionGroups": {
1215
1829
  "base": "基础配置",
1830
+ "models": "模型配置",
1831
+ "advanced": "进阶配置",
1832
+ "advancedModels": "高阶模型配置",
1833
+ "advancedRuntime": "运行时选项",
1834
+ "advancedSandbox": "沙箱配置",
1835
+ "advancedClient": "客户端标识",
1836
+ "advancedOverrides": "原始覆盖",
1837
+ "advancedMisc": "其他配置",
1216
1838
  "permissions": "工具权限",
1217
1839
  "env": "环境变量",
1218
1840
  "items": "明细配置",
@@ -1222,9 +1844,85 @@
1222
1844
  "config": "配置",
1223
1845
  "app": "应用"
1224
1846
  },
1847
+ "environments": {
1848
+ "newPlaceholder": "例如 env-node-20",
1849
+ "newLocalPlaceholder": "例如 env-node-20",
1850
+ "create": "新建",
1851
+ "created": "环境已创建",
1852
+ "empty": "暂无 worktree 环境",
1853
+ "searchEmpty": "没有匹配的 worktree 环境",
1854
+ "searchPlaceholder": "搜索环境",
1855
+ "exists": "环境名称已存在",
1856
+ "createFailed": "创建环境失败",
1857
+ "saveFailed": "保存环境失败",
1858
+ "edit": "编辑",
1859
+ "name": "名称",
1860
+ "createTitle": "创建环境",
1861
+ "createDescription": "",
1862
+ "projectListTitle": "项目环境",
1863
+ "projectListDescription": "",
1864
+ "localListTitle": "本地环境",
1865
+ "localListDescription": "",
1866
+ "detailTitle": "环境详细信息",
1867
+ "baseScript": "脚本",
1868
+ "availableEnvVars": "可用环境变量",
1869
+ "platformOverrides": "平台覆盖",
1870
+ "platformOverridesDescription": "覆盖特定操作系统的默认脚本。",
1871
+ "platformScriptDescription": "只在 {{platform}} 下运行。",
1872
+ "sources": {
1873
+ "project": "项目",
1874
+ "user": "本地"
1875
+ },
1876
+ "platforms": {
1877
+ "macos": "macOS",
1878
+ "linux": "Linux",
1879
+ "windows": "Windows"
1880
+ },
1881
+ "operationSections": {
1882
+ "create": {
1883
+ "title": "创建脚本",
1884
+ "description": "此脚本会在 worktree 创建完成后运行。"
1885
+ },
1886
+ "start": {
1887
+ "title": "启动脚本",
1888
+ "description": "此脚本会在 adapter 进程启动前运行。"
1889
+ },
1890
+ "destroy": {
1891
+ "title": "清理脚本",
1892
+ "description": "此脚本会在删除托管 worktree 前运行。"
1893
+ }
1894
+ },
1895
+ "baseScriptDescriptions": {
1896
+ "create": "在新 worktree 中运行。",
1897
+ "start": "在会话工作区中运行。",
1898
+ "destroy": "在将要删除的 worktree 中运行。"
1899
+ },
1900
+ "operations": {
1901
+ "create": "创建",
1902
+ "start": "启动",
1903
+ "destroy": "销毁"
1904
+ },
1905
+ "scripts": {
1906
+ "create": "create.sh",
1907
+ "create.macos": "create.macos.sh",
1908
+ "create.linux": "create.linux.sh",
1909
+ "create.windows": "create.windows.ps1",
1910
+ "start": "start.sh",
1911
+ "start.macos": "start.macos.sh",
1912
+ "start.linux": "start.linux.sh",
1913
+ "start.windows": "start.windows.ps1",
1914
+ "destroy": "destroy.sh",
1915
+ "destroy.macos": "destroy.macos.sh",
1916
+ "destroy.linux": "destroy.linux.sh",
1917
+ "destroy.windows": "destroy.windows.ps1"
1918
+ }
1919
+ },
1225
1920
  "about": {
1226
1921
  "software": "软件信息",
1227
1922
  "version": "版本",
1923
+ "clientVersion": "Client 版本",
1924
+ "serverVersion": "Server 版本",
1925
+ "commitHash": "构建 Commit",
1228
1926
  "lastRelease": "最后发布时间",
1229
1927
  "checkUpdate": "检查更新",
1230
1928
  "docs": "帮助文档",
@@ -1235,11 +1933,12 @@
1235
1933
  "sections": {
1236
1934
  "general": "通用",
1237
1935
  "conversation": "会话",
1238
- "models": "模型选择器",
1936
+ "models": "模型元数据",
1239
1937
  "modelServices": "模型服务",
1240
1938
  "channels": "频道",
1241
1939
  "adapters": "适配器",
1242
1940
  "plugins": "插件",
1941
+ "environments": "环境",
1243
1942
  "mcp": "MCP",
1244
1943
  "shortcuts": "快捷键",
1245
1944
  "appearance": "外观",
@@ -1247,9 +1946,27 @@
1247
1946
  "about": "关于"
1248
1947
  },
1249
1948
  "appSettings": {
1949
+ "themeMode": {
1950
+ "label": "主题模式",
1951
+ "desc": "切换浅色、深色或跟随系统的界面主题"
1952
+ },
1953
+ "senderHeaderDisplay": {
1954
+ "label": "输入区顶栏默认展示",
1955
+ "desc": "链接未显式指定时,默认展开或折叠输入区顶栏",
1956
+ "expanded": "默认展开",
1957
+ "collapsed": "默认折叠"
1958
+ },
1959
+ "sessionListSearchThreshold": {
1960
+ "label": "会话列表搜索展示阈值",
1961
+ "desc": "只有会话数量超过该值时才展示搜索和筛选区域,0 表示始终展示"
1962
+ },
1250
1963
  "announcements": {
1251
1964
  "label": "显示公告",
1252
1965
  "desc": "新建会话时展示公告信息"
1966
+ },
1967
+ "recommendedActions": {
1968
+ "label": "显示推荐操作",
1969
+ "desc": "新建会话时展示推荐操作列表"
1253
1970
  }
1254
1971
  }
1255
1972
  }