@vibe-forge/client 3.0.0-alpha.6 → 3.0.0-alpha.7

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 (612) hide show
  1. package/cli.cjs +55 -12
  2. package/dist/assets/{arc-CKcDlk7m.js → arc-BSmt4B2L.js} +1 -1
  3. package/dist/assets/{blockDiagram-c4efeb88-Si9lNhiR.js → blockDiagram-c4efeb88-CMloXPoq.js} +1 -1
  4. package/dist/assets/{c4Diagram-c83219d4-CRTN1Bme.js → c4Diagram-c83219d4-Cylc1eLZ.js} +1 -1
  5. package/dist/assets/channel-m79NtBIL.js +1 -0
  6. package/dist/assets/{classDiagram-beda092f-Cn0JFKaM.js → classDiagram-beda092f-BKPTtrKA.js} +1 -1
  7. package/dist/assets/{classDiagram-v2-2358418a-CCRguPFP.js → classDiagram-v2-2358418a-DDp5VQdl.js} +1 -1
  8. package/dist/assets/clone-BWgcAtDw.js +1 -0
  9. package/dist/assets/{createText-1719965b-B7ypMies.js → createText-1719965b-B4dHTOBF.js} +1 -1
  10. package/dist/assets/{cssMode-CGqPieqo.js → cssMode-DiwCtD5c.js} +1 -1
  11. package/dist/assets/{edges-96097737-DQTQ3TTh.js → edges-96097737-ytyiKXTw.js} +1 -1
  12. package/dist/assets/{erDiagram-0228fc6a-RWH9OCKP.js → erDiagram-0228fc6a-DmL6zY48.js} +1 -1
  13. package/dist/assets/{flowDb-c6c81e3f-ChBIZfFE.js → flowDb-c6c81e3f-BCSZkN1T.js} +1 -1
  14. package/dist/assets/{flowDiagram-50d868cf-B5L7Tbzq.js → flowDiagram-50d868cf-uwjrIJD-.js} +1 -1
  15. package/dist/assets/flowDiagram-v2-4f6560a1-cwXzaLSf.js +1 -0
  16. package/dist/assets/{flowchart-elk-definition-6af322e1-B7X89gyf.js → flowchart-elk-definition-6af322e1-W_vSjYDz.js} +1 -1
  17. package/dist/assets/{freemarker2-DG-xlAsn.js → freemarker2-BQf1HvOR.js} +1 -1
  18. package/dist/assets/{ganttDiagram-a2739b55-BedUmaPf.js → ganttDiagram-a2739b55-CGeIfDSH.js} +1 -1
  19. package/dist/assets/{gitGraphDiagram-82fe8481-B8HGnn-5.js → gitGraphDiagram-82fe8481-26OgN5Ry.js} +1 -1
  20. package/dist/assets/{graph-D9-QnVc7.js → graph-2CS6-29E.js} +1 -1
  21. package/dist/assets/{handlebars-D3MqxNWf.js → handlebars-DFgyCEY2.js} +1 -1
  22. package/dist/assets/{html-DufmGZMV.js → html-BV8g5c9v.js} +1 -1
  23. package/dist/assets/{htmlMode-CUM_1bUX.js → htmlMode-JyRqPjN0.js} +1 -1
  24. package/dist/assets/{index-5325376f-DvDnB8Ym.js → index-5325376f-ClAEncJa.js} +1 -1
  25. package/dist/assets/{index-CFwJnHev.js → index-CZrkUnI3.js} +5 -5
  26. package/dist/assets/{infoDiagram-8eee0895-CEkPslG6.js → infoDiagram-8eee0895-CSgc-EfH.js} +1 -1
  27. package/dist/assets/{javascript-B6reuW3Q.js → javascript-BqCcEQX1.js} +1 -1
  28. package/dist/assets/{journeyDiagram-c64418c1-c8XBdi4a.js → journeyDiagram-c64418c1-DT-HZm5B.js} +1 -1
  29. package/dist/assets/{jsonMode-srNnX9pn.js → jsonMode-COyDpXxP.js} +1 -1
  30. package/dist/assets/{layout-XKv3I9bs.js → layout-CWQTznjY.js} +1 -1
  31. package/dist/assets/{line-BUKiwgio.js → line-D9dEs7Yu.js} +1 -1
  32. package/dist/assets/{linear-Dfad58q_.js → linear-B_kP7XTY.js} +1 -1
  33. package/dist/assets/{liquid-CEkxMSzk.js → liquid-Bz_nlZQO.js} +1 -1
  34. package/dist/assets/{lspLanguageFeatures-0mffeVGX.js → lspLanguageFeatures-Bfs5KZ7t.js} +1 -1
  35. package/dist/assets/{mdx-B-Qq5FgQ.js → mdx-DREXNfTL.js} +1 -1
  36. package/dist/assets/{mermaid.core-DDK6pwbH.js → mermaid.core-Qb_9exf_.js} +4 -4
  37. package/dist/assets/{mindmap-definition-8da855dc-CyIw0Vtn.js → mindmap-definition-8da855dc-BVneYgpV.js} +1 -1
  38. package/dist/assets/{pieDiagram-a8764435-DCdqfk2w.js → pieDiagram-a8764435-BnFEaAoD.js} +1 -1
  39. package/dist/assets/{python-CMoFKB7x.js → python-BaegM-qN.js} +1 -1
  40. package/dist/assets/{quadrantDiagram-1e28029f-mXna6sR0.js → quadrantDiagram-1e28029f-DwwRhwu5.js} +1 -1
  41. package/dist/assets/{razor-B6DD072n.js → razor-EZlNrkt1.js} +1 -1
  42. package/dist/assets/{requirementDiagram-08caed73-DgC33PUx.js → requirementDiagram-08caed73-CrOXjwl9.js} +1 -1
  43. package/dist/assets/{sankeyDiagram-a04cb91d-6DjDiGF1.js → sankeyDiagram-a04cb91d-BmrPbz9p.js} +1 -1
  44. package/dist/assets/{sequenceDiagram-c5b8d532-BHEC8MLz.js → sequenceDiagram-c5b8d532-KIdevHfA.js} +1 -1
  45. package/dist/assets/{stateDiagram-1ecb1508-CnQIc7IJ.js → stateDiagram-1ecb1508-Bvt_x0JW.js} +1 -1
  46. package/dist/assets/{stateDiagram-v2-c2b004d7-DyYVXqRY.js → stateDiagram-v2-c2b004d7-Ch7JhULG.js} +1 -1
  47. package/dist/assets/{styles-b4e223ce-BCRMXdaJ.js → styles-b4e223ce-CGsc8vM4.js} +1 -1
  48. package/dist/assets/{styles-ca3715f6-B0Uke183.js → styles-ca3715f6-D-kXthxO.js} +1 -1
  49. package/dist/assets/{styles-d45a18b0-CTIOlm5f.js → styles-d45a18b0-ByiElCZx.js} +1 -1
  50. package/dist/assets/{svgDrawCommon-b86b1483-DIsUSZPw.js → svgDrawCommon-b86b1483-BBAC26Ym.js} +1 -1
  51. package/dist/assets/{timeline-definition-faaaa080-Dioszvxi.js → timeline-definition-faaaa080-yHkv8c9O.js} +1 -1
  52. package/dist/assets/{tsMode-C8qimCsh.js → tsMode-CxUP_h7m.js} +1 -1
  53. package/dist/assets/{typescript-DIHO7TTQ.js → typescript-DK75tgf9.js} +1 -1
  54. package/dist/assets/{xml-DE5CGUCp.js → xml-CKJB1DbG.js} +1 -1
  55. package/dist/assets/{xychartDiagram-f5964ef8-bhTIJLJy.js → xychartDiagram-f5964ef8-BBHC7Rzd.js} +1 -1
  56. package/dist/assets/{yaml-Cac2zjUM.js → yaml-CJFgfFzM.js} +1 -1
  57. package/dist/index.html +1 -1
  58. package/package.json +22 -16
  59. package/preview-runtime.cjs +128 -0
  60. package/preview-server.cjs +198 -0
  61. package/AGENTS.md +0 -115
  62. package/dist/assets/channel-_Q_52ef7.js +0 -1
  63. package/dist/assets/clone-BicNByr8.js +0 -1
  64. package/dist/assets/flowDiagram-v2-4f6560a1-CWSRSwc1.js +0 -1
  65. package/index.html +0 -18
  66. package/public/favicon.svg +0 -5
  67. package/public/manifest.webmanifest +0 -30
  68. package/public/pwa-icon-192.png +0 -0
  69. package/public/pwa-icon-512.png +0 -0
  70. package/public/sw.js +0 -105
  71. package/src/App.tsx +0 -40
  72. package/src/api/README.md +0 -27
  73. package/src/api/adapters.ts +0 -63
  74. package/src/api/auth-token.ts +0 -51
  75. package/src/api/auth.ts +0 -46
  76. package/src/api/automation.ts +0 -98
  77. package/src/api/base.ts +0 -166
  78. package/src/api/benchmark.ts +0 -50
  79. package/src/api/config.ts +0 -29
  80. package/src/api/git.ts +0 -90
  81. package/src/api/knowledge.ts +0 -131
  82. package/src/api/projects.ts +0 -15
  83. package/src/api/sessions.ts +0 -281
  84. package/src/api/skill-hub.ts +0 -126
  85. package/src/api/types.ts +0 -21
  86. package/src/api/workspace.ts +0 -51
  87. package/src/api/worktree-environments.ts +0 -53
  88. package/src/api.ts +0 -142
  89. package/src/assets/fonts/material-symbols-rounded.woff2 +0 -0
  90. package/src/client-build-info.ts +0 -19
  91. package/src/components/ArchiveView.scss +0 -257
  92. package/src/components/ArchiveView.tsx +0 -313
  93. package/src/components/CodeBlock.scss +0 -92
  94. package/src/components/CodeBlock.tsx +0 -181
  95. package/src/components/ConfigView.scss +0 -864
  96. package/src/components/ConfigView.tsx +0 -788
  97. package/src/components/MarkdownContent.tsx +0 -50
  98. package/src/components/NavRail.scss +0 -317
  99. package/src/components/NavRail.tsx +0 -198
  100. package/src/components/NavRailCompact.tsx +0 -107
  101. package/src/components/NavRailCompactMoreSheet.tsx +0 -141
  102. package/src/components/ShortcutDisplay.scss +0 -38
  103. package/src/components/ShortcutDisplay.tsx +0 -37
  104. package/src/components/ShortcutTooltip.scss +0 -36
  105. package/src/components/ShortcutTooltip.tsx +0 -86
  106. package/src/components/Sidebar.scss +0 -161
  107. package/src/components/Sidebar.tsx +0 -480
  108. package/src/components/auth/AuthGate.scss +0 -79
  109. package/src/components/auth/AuthGate.tsx +0 -174
  110. package/src/components/automation-view/@components/AutomationTaskComposer.tsx +0 -220
  111. package/src/components/automation-view/@components/AutomationTriggerRow.tsx +0 -192
  112. package/src/components/automation-view/@hooks/use-automation-startup-options-data.tsx +0 -289
  113. package/src/components/automation-view/@hooks/use-automation-startup-static-options.ts +0 -51
  114. package/src/components/automation-view/@utils/sender-model-options.tsx +0 -52
  115. package/src/components/automation-view/@utils/startup-options.ts +0 -26
  116. package/src/components/automation-view/AutomationEmptyGuide.tsx +0 -61
  117. package/src/components/automation-view/AutomationEmptyLanding.scss +0 -165
  118. package/src/components/automation-view/AutomationEmptyLanding.tsx +0 -211
  119. package/src/components/automation-view/AutomationRuleDetailPreview.tsx +0 -179
  120. package/src/components/automation-view/PanelTitleActions.tsx +0 -66
  121. package/src/components/automation-view/RuleFormPanel.scss +0 -279
  122. package/src/components/automation-view/RuleFormPanel.tsx +0 -365
  123. package/src/components/automation-view/RuleSidebar.scss +0 -332
  124. package/src/components/automation-view/RuleSidebar.tsx +0 -338
  125. package/src/components/automation-view/RunHistoryPanel.scss +0 -649
  126. package/src/components/automation-view/RunHistoryPanel.tsx +0 -382
  127. package/src/components/automation-view/TaskList.scss +0 -223
  128. package/src/components/automation-view/TaskList.tsx +0 -67
  129. package/src/components/automation-view/TriggerList.scss +0 -267
  130. package/src/components/automation-view/TriggerList.tsx +0 -68
  131. package/src/components/automation-view/index.scss +0 -230
  132. package/src/components/automation-view/index.tsx +0 -369
  133. package/src/components/automation-view/types.ts +0 -34
  134. package/src/components/benchmark-view/BenchmarkCasePanel.scss +0 -287
  135. package/src/components/benchmark-view/BenchmarkCasePanel.tsx +0 -309
  136. package/src/components/benchmark-view/BenchmarkSidebar.scss +0 -206
  137. package/src/components/benchmark-view/BenchmarkSidebar.tsx +0 -269
  138. package/src/components/benchmark-view/BenchmarkView.scss +0 -121
  139. package/src/components/benchmark-view/index.tsx +0 -237
  140. package/src/components/benchmark-view/types.ts +0 -11
  141. package/src/components/benchmark-view/utils.ts +0 -20
  142. package/src/components/chat/AGENTS.md +0 -177
  143. package/src/components/chat/ChatComposerCard.scss +0 -77
  144. package/src/components/chat/ChatComposerCard.tsx +0 -59
  145. package/src/components/chat/ChatHeader.scss +0 -865
  146. package/src/components/chat/ChatHeader.tsx +0 -832
  147. package/src/components/chat/ChatHistoryView.tsx +0 -887
  148. package/src/components/chat/ChatSettingsView.tsx +0 -24
  149. package/src/components/chat/ChatTimelineView.scss +0 -147
  150. package/src/components/chat/ChatTimelineView.tsx +0 -200
  151. package/src/components/chat/CurrentTodoList.scss +0 -256
  152. package/src/components/chat/CurrentTodoList.tsx +0 -171
  153. package/src/components/chat/NewSessionGuide.scss +0 -416
  154. package/src/components/chat/NewSessionGuide.tsx +0 -69
  155. package/src/components/chat/NewSessionGuideStarterList.tsx +0 -190
  156. package/src/components/chat/NewSessionGuideStarterSection.tsx +0 -121
  157. package/src/components/chat/QueuedMessagesCard.scss +0 -195
  158. package/src/components/chat/QueuedMessagesCard.tsx +0 -170
  159. package/src/components/chat/bottom-dock-constants.ts +0 -4
  160. package/src/components/chat/conversation-starter-apply.ts +0 -181
  161. package/src/components/chat/git-controls/BranchSwitcherDropdown.tsx +0 -162
  162. package/src/components/chat/git-controls/BranchSwitcherResults.tsx +0 -167
  163. package/src/components/chat/git-controls/BranchTreeEntries.tsx +0 -99
  164. package/src/components/chat/git-controls/ChatGitControls.scss +0 -1113
  165. package/src/components/chat/git-controls/ChatGitControls.tsx +0 -178
  166. package/src/components/chat/git-controls/DraftGitControls.tsx +0 -105
  167. package/src/components/chat/git-controls/DraftWorktreeEnvironmentDropdown.tsx +0 -115
  168. package/src/components/chat/git-controls/GitCommitModal.tsx +0 -199
  169. package/src/components/chat/git-controls/GitCommitModalParts.tsx +0 -151
  170. package/src/components/chat/git-controls/GitOperationsDropdown.tsx +0 -131
  171. package/src/components/chat/git-controls/GitPushModal.tsx +0 -106
  172. package/src/components/chat/git-controls/GitWorktreeDropdown.tsx +0 -341
  173. package/src/components/chat/git-controls/git-branch-tree.ts +0 -148
  174. package/src/components/chat/git-controls/git-branch-utils.ts +0 -88
  175. package/src/components/chat/git-controls/git-commit-utils.ts +0 -79
  176. package/src/components/chat/git-controls/git-mutation-utils.ts +0 -69
  177. package/src/components/chat/git-controls/git-operation-utils.ts +0 -98
  178. package/src/components/chat/git-controls/git-worktree-utils.ts +0 -49
  179. package/src/components/chat/git-controls/use-chat-draft-git-controls.ts +0 -168
  180. package/src/components/chat/git-controls/use-chat-git-commit.ts +0 -185
  181. package/src/components/chat/git-controls/use-chat-git-controls.ts +0 -273
  182. package/src/components/chat/git-controls/use-chat-git-push-state.ts +0 -19
  183. package/src/components/chat/git-controls/use-chat-git-worktrees.ts +0 -39
  184. package/src/components/chat/messages/MessageContextMenu.scss +0 -145
  185. package/src/components/chat/messages/MessageContextMenu.tsx +0 -110
  186. package/src/components/chat/messages/MessageContextMenuContent.tsx +0 -87
  187. package/src/components/chat/messages/MessageFooter.tsx +0 -68
  188. package/src/components/chat/messages/MessageItem.scss +0 -486
  189. package/src/components/chat/messages/MessageItem.tsx +0 -529
  190. package/src/components/chat/messages/MessageStatusNotice.scss +0 -163
  191. package/src/components/chat/messages/MessageStatusNotice.tsx +0 -56
  192. package/src/components/chat/messages/build-chat-history-status-notices.ts +0 -143
  193. package/src/components/chat/messages/build-message-context-menu-entries.ts +0 -166
  194. package/src/components/chat/messages/message-action-utils.ts +0 -29
  195. package/src/components/chat/messages/message-content-utils.ts +0 -121
  196. package/src/components/chat/messages/message-turns.ts +0 -88
  197. package/src/components/chat/messages/message-utils.ts +0 -189
  198. package/src/components/chat/new-session-guide-config.ts +0 -19
  199. package/src/components/chat/new-session-guide-items.ts +0 -172
  200. package/src/components/chat/new-session-guide-list-order.ts +0 -58
  201. package/src/components/chat/sender/@components/account-select/AccountSelectControl.scss +0 -112
  202. package/src/components/chat/sender/@components/account-select/AccountSelectControl.tsx +0 -280
  203. package/src/components/chat/sender/@components/account-select/AccountSelectDropdown.scss +0 -155
  204. package/src/components/chat/sender/@components/adapter-select/AdapterSelectControl.scss +0 -148
  205. package/src/components/chat/sender/@components/adapter-select/AdapterSelectControl.tsx +0 -54
  206. package/src/components/chat/sender/@components/adapter-select/AdapterSelectDropdown.scss +0 -56
  207. package/src/components/chat/sender/@components/effort-select/EffortSelectControl.scss +0 -104
  208. package/src/components/chat/sender/@components/effort-select/EffortSelectControl.tsx +0 -142
  209. package/src/components/chat/sender/@components/effort-select/EffortSelectDropdown.scss +0 -96
  210. package/src/components/chat/sender/@components/model-select/ModelSelectControl.scss +0 -144
  211. package/src/components/chat/sender/@components/model-select/ModelSelectControl.tsx +0 -176
  212. package/src/components/chat/sender/@components/model-select/ModelSelectMenu.scss +0 -97
  213. package/src/components/chat/sender/@components/model-select/ModelSelectMenuLabels.scss +0 -168
  214. package/src/components/chat/sender/@components/model-select/ModelSelectOptionLabel.tsx +0 -109
  215. package/src/components/chat/sender/@components/permission-mode-control/PermissionModeControl.scss +0 -199
  216. package/src/components/chat/sender/@components/permission-mode-control/PermissionModeControl.tsx +0 -172
  217. package/src/components/chat/sender/@components/reference-actions/ReferenceActionsControl.scss +0 -114
  218. package/src/components/chat/sender/@components/reference-actions/ReferenceActionsControl.tsx +0 -107
  219. package/src/components/chat/sender/@components/reference-actions/ReferenceActionsOption.scss +0 -34
  220. package/src/components/chat/sender/@components/sender-attachments/SenderAttachments.scss +0 -240
  221. package/src/components/chat/sender/@components/sender-attachments/SenderAttachments.tsx +0 -119
  222. package/src/components/chat/sender/@components/sender-body/SenderBody.tsx +0 -135
  223. package/src/components/chat/sender/@components/sender-header-controls/SenderHeaderControls.tsx +0 -157
  224. package/src/components/chat/sender/@components/sender-interaction-panel/SenderInteractionPanel.scss +0 -294
  225. package/src/components/chat/sender/@components/sender-interaction-panel/SenderInteractionPanel.tsx +0 -384
  226. package/src/components/chat/sender/@components/sender-monaco-editor/SenderMonacoEditor.scss +0 -47
  227. package/src/components/chat/sender/@components/sender-monaco-editor/SenderMonacoEditor.tsx +0 -139
  228. package/src/components/chat/sender/@components/sender-monaco-editor/monaco-runtime.ts +0 -83
  229. package/src/components/chat/sender/@components/sender-monaco-editor/use-sender-editor-handle.ts +0 -48
  230. package/src/components/chat/sender/@components/sender-monaco-editor/use-sender-monaco-editor.ts +0 -286
  231. package/src/components/chat/sender/@components/sender-monaco-editor/use-sender-monaco-theme.ts +0 -73
  232. package/src/components/chat/sender/@components/sender-submit-action/SenderSubmitAction.scss +0 -163
  233. package/src/components/chat/sender/@components/sender-submit-action/SenderSubmitAction.tsx +0 -200
  234. package/src/components/chat/sender/@components/sender-toolbar/SenderSelectBase.scss +0 -108
  235. package/src/components/chat/sender/@components/sender-toolbar/SenderSelectShared.scss +0 -156
  236. package/src/components/chat/sender/@components/sender-toolbar/SenderToolbar.scss +0 -164
  237. package/src/components/chat/sender/@components/sender-toolbar/SenderToolbar.tsx +0 -93
  238. package/src/components/chat/sender/@components/session-target/SenderSessionTargetBar.scss +0 -215
  239. package/src/components/chat/sender/@components/session-target/SenderSessionTargetBar.tsx +0 -185
  240. package/src/components/chat/sender/@core/build-sender-controller-result.ts +0 -119
  241. package/src/components/chat/sender/@core/build-sender-toolbar.ts +0 -151
  242. package/src/components/chat/sender/@core/content-attachments.ts +0 -76
  243. package/src/components/chat/sender/@core/create-sender-toolbar-handlers.ts +0 -142
  244. package/src/components/chat/sender/@core/get-sender-interaction-state.ts +0 -18
  245. package/src/components/chat/sender/@core/get-sender-runtime-state.ts +0 -15
  246. package/src/components/chat/sender/@core/interaction-request.ts +0 -5
  247. package/src/components/chat/sender/@core/sender-toolbar-bindings.ts +0 -191
  248. package/src/components/chat/sender/@hooks/use-model-select-browser.tsx +0 -191
  249. package/src/components/chat/sender/@hooks/use-sender-attachments.ts +0 -143
  250. package/src/components/chat/sender/@hooks/use-sender-autofocus.ts +0 -34
  251. package/src/components/chat/sender/@hooks/use-sender-completion.ts +0 -62
  252. package/src/components/chat/sender/@hooks/use-sender-composer-state.ts +0 -34
  253. package/src/components/chat/sender/@hooks/use-sender-controller.ts +0 -291
  254. package/src/components/chat/sender/@hooks/use-sender-focus-restore.ts +0 -72
  255. package/src/components/chat/sender/@hooks/use-sender-history.ts +0 -79
  256. package/src/components/chat/sender/@hooks/use-sender-keydown.ts +0 -177
  257. package/src/components/chat/sender/@hooks/use-sender-reference-actions.ts +0 -134
  258. package/src/components/chat/sender/@hooks/use-sender-reference-focus-restore.ts +0 -21
  259. package/src/components/chat/sender/@hooks/use-sender-refs.ts +0 -19
  260. package/src/components/chat/sender/@hooks/use-sender-select-overlays.ts +0 -83
  261. package/src/components/chat/sender/@hooks/use-sender-shortcuts.ts +0 -93
  262. package/src/components/chat/sender/@hooks/use-sender-submit.ts +0 -89
  263. package/src/components/chat/sender/@types/sender-composer.ts +0 -19
  264. package/src/components/chat/sender/@types/sender-editor.ts +0 -12
  265. package/src/components/chat/sender/@types/sender-props.ts +0 -82
  266. package/src/components/chat/sender/@types/sender-toolbar-types.ts +0 -101
  267. package/src/components/chat/sender/@types/sender-types.ts +0 -19
  268. package/src/components/chat/sender/@utils/sender-completion.ts +0 -164
  269. package/src/components/chat/sender/@utils/sender-constants.ts +0 -18
  270. package/src/components/chat/sender/@utils/sender-utils.ts +0 -45
  271. package/src/components/chat/sender/Sender.scss +0 -299
  272. package/src/components/chat/sender/Sender.tsx +0 -55
  273. package/src/components/chat/session-metadata.ts +0 -55
  274. package/src/components/chat/session-timeline-panel/EventList.scss +0 -146
  275. package/src/components/chat/session-timeline-panel/EventList.tsx +0 -264
  276. package/src/components/chat/session-timeline-panel/gantt.ts +0 -193
  277. package/src/components/chat/session-timeline-panel/git-graph.ts +0 -530
  278. package/src/components/chat/session-timeline-panel/index.scss +0 -41
  279. package/src/components/chat/session-timeline-panel/index.tsx +0 -197
  280. package/src/components/chat/session-timeline-panel/mermaid.ts +0 -4
  281. package/src/components/chat/session-timeline-panel/types.ts +0 -68
  282. package/src/components/chat/session-timeline-panel/utils.ts +0 -20
  283. package/src/components/chat/status-bar/ChatStatusBar.scss +0 -112
  284. package/src/components/chat/status-bar/ChatStatusBar.tsx +0 -87
  285. package/src/components/chat/terminal/@components/TerminalManagerList.tsx +0 -191
  286. package/src/components/chat/terminal/@components/TerminalPane.scss +0 -71
  287. package/src/components/chat/terminal/@components/TerminalPane.tsx +0 -137
  288. package/src/components/chat/terminal/@components/TerminalPanelActions.tsx +0 -75
  289. package/src/components/chat/terminal/@hooks/use-terminal-instance.ts +0 -188
  290. package/src/components/chat/terminal/@hooks/use-terminal-session.ts +0 -193
  291. package/src/components/chat/terminal/@hooks/use-terminal-title-editor.ts +0 -72
  292. package/src/components/chat/terminal/@utils/terminal-keyboard.ts +0 -141
  293. package/src/components/chat/terminal/@utils/terminal-panes.ts +0 -123
  294. package/src/components/chat/terminal/ChatTerminalView.scss +0 -334
  295. package/src/components/chat/terminal/ChatTerminalView.tsx +0 -192
  296. package/src/components/chat/tools/DefaultTool.tsx +0 -102
  297. package/src/components/chat/tools/adapter-claude/BashTool.scss +0 -87
  298. package/src/components/chat/tools/adapter-claude/BashTool.tsx +0 -116
  299. package/src/components/chat/tools/adapter-claude/ClaudeEditDiff.tsx +0 -30
  300. package/src/components/chat/tools/adapter-claude/GenericClaudeTool.scss +0 -128
  301. package/src/components/chat/tools/adapter-claude/GenericClaudeTool.tsx +0 -119
  302. package/src/components/chat/tools/adapter-claude/GlobTool.scss +0 -9
  303. package/src/components/chat/tools/adapter-claude/GlobTool.tsx +0 -65
  304. package/src/components/chat/tools/adapter-claude/GrepTool.scss +0 -9
  305. package/src/components/chat/tools/adapter-claude/GrepTool.tsx +0 -95
  306. package/src/components/chat/tools/adapter-claude/LSTool.scss +0 -6
  307. package/src/components/chat/tools/adapter-claude/LSTool.tsx +0 -94
  308. package/src/components/chat/tools/adapter-claude/ReadTool.scss +0 -1
  309. package/src/components/chat/tools/adapter-claude/ReadTool.tsx +0 -65
  310. package/src/components/chat/tools/adapter-claude/TodoTool.scss +0 -63
  311. package/src/components/chat/tools/adapter-claude/TodoTool.tsx +0 -73
  312. package/src/components/chat/tools/adapter-claude/WriteTool.scss +0 -44
  313. package/src/components/chat/tools/adapter-claude/WriteTool.tsx +0 -50
  314. package/src/components/chat/tools/adapter-claude/claude-tool-edit-builders.ts +0 -109
  315. package/src/components/chat/tools/adapter-claude/claude-tool-field-sections.tsx +0 -83
  316. package/src/components/chat/tools/adapter-claude/claude-tool-operation-builders.ts +0 -135
  317. package/src/components/chat/tools/adapter-claude/claude-tool-presentation.ts +0 -61
  318. package/src/components/chat/tools/adapter-claude/claude-tool-shared.ts +0 -185
  319. package/src/components/chat/tools/adapter-claude/claude-tool-summary.ts +0 -76
  320. package/src/components/chat/tools/adapter-claude/claude-tool-system-builders.ts +0 -125
  321. package/src/components/chat/tools/adapter-claude/claude-tool-task-builders.ts +0 -148
  322. package/src/components/chat/tools/adapter-claude/components/FileList.scss +0 -67
  323. package/src/components/chat/tools/adapter-claude/components/FileList.tsx +0 -185
  324. package/src/components/chat/tools/adapter-claude/index.ts +0 -31
  325. package/src/components/chat/tools/adapter-claude/utils.ts +0 -54
  326. package/src/components/chat/tools/core/ToolCallBox.scss +0 -700
  327. package/src/components/chat/tools/core/ToolCallBox.tsx +0 -77
  328. package/src/components/chat/tools/core/ToolDiffViewer.scss +0 -138
  329. package/src/components/chat/tools/core/ToolDiffViewer.tsx +0 -166
  330. package/src/components/chat/tools/core/ToolGroup.scss +0 -171
  331. package/src/components/chat/tools/core/ToolGroup.tsx +0 -156
  332. package/src/components/chat/tools/core/ToolRenderer.tsx +0 -47
  333. package/src/components/chat/tools/core/ToolResultContent.tsx +0 -66
  334. package/src/components/chat/tools/core/ToolSummaryHeader.tsx +0 -67
  335. package/src/components/chat/tools/core/generic-tool-presentation.ts +0 -661
  336. package/src/components/chat/tools/core/tool-content-presence.ts +0 -57
  337. package/src/components/chat/tools/core/tool-display.ts +0 -203
  338. package/src/components/chat/tools/core/tool-field-sections.tsx +0 -132
  339. package/src/components/chat/tools/core/tool-result-content-utils.ts +0 -171
  340. package/src/components/chat/tools/core/tool-summary.ts +0 -206
  341. package/src/components/chat/tools/defineToolRender.ts +0 -28
  342. package/src/components/chat/tools/plugin-chrome-devtools/ChromeDevtoolsTool.scss +0 -11
  343. package/src/components/chat/tools/plugin-chrome-devtools/ChromeDevtoolsTool.tsx +0 -81
  344. package/src/components/chat/tools/plugin-chrome-devtools/index.ts +0 -45
  345. package/src/components/chat/tools/task/GetTaskInfoTool.scss +0 -25
  346. package/src/components/chat/tools/task/GetTaskInfoTool.tsx +0 -115
  347. package/src/components/chat/tools/task/ListTasksTool.scss +0 -31
  348. package/src/components/chat/tools/task/ListTasksTool.tsx +0 -99
  349. package/src/components/chat/tools/task/StartTasksTool.scss +0 -31
  350. package/src/components/chat/tools/task/StartTasksTool.tsx +0 -106
  351. package/src/components/chat/tools/task/components/TaskRow.scss +0 -105
  352. package/src/components/chat/tools/task/components/TaskRow.tsx +0 -163
  353. package/src/components/chat/tools/task/components/TaskToolCard.scss +0 -185
  354. package/src/components/chat/tools/task/components/TaskToolCard.tsx +0 -179
  355. package/src/components/chat/tools/task/index.ts +0 -15
  356. package/src/components/chat/workspace-drawer/ChatWorkspaceDrawer.scss +0 -778
  357. package/src/components/chat/workspace-drawer/ChatWorkspaceDrawer.tsx +0 -112
  358. package/src/components/chat/workspace-drawer/ChatWorkspaceDrawerToolbar.tsx +0 -183
  359. package/src/components/chat/workspace-drawer/WorkspaceDrawerChangedFileRow.tsx +0 -75
  360. package/src/components/chat/workspace-drawer/WorkspaceDrawerChangedFiles.tsx +0 -161
  361. package/src/components/chat/workspace-drawer/WorkspaceDrawerChangedFolderTree.tsx +0 -191
  362. package/src/components/chat/workspace-drawer/WorkspaceDrawerTree.tsx +0 -35
  363. package/src/components/chat/workspace-drawer/WorkspaceDrawerTreeState.tsx +0 -17
  364. package/src/components/chat/workspace-drawer/changed-files-model.ts +0 -152
  365. package/src/components/chat/workspace-drawer/workspace-drawer-icons.ts +0 -110
  366. package/src/components/chat/workspace-file-editor/WorkspaceFileBreadcrumb.tsx +0 -17
  367. package/src/components/chat/workspace-file-editor/WorkspaceFileEditorView.scss +0 -283
  368. package/src/components/chat/workspace-file-editor/WorkspaceFileEditorView.tsx +0 -165
  369. package/src/components/chat/workspace-file-editor/WorkspaceFileTabs.tsx +0 -135
  370. package/src/components/chat/workspace-file-editor/use-workspace-file-editor-state.ts +0 -113
  371. package/src/components/chat/workspace-file-editor/workspace-file-editor-language.ts +0 -55
  372. package/src/components/composer-landing/ComposerLanding.scss +0 -75
  373. package/src/components/composer-landing/ComposerLanding.tsx +0 -47
  374. package/src/components/config/AGENTS.md +0 -45
  375. package/src/components/config/AdapterAccountsManager.scss +0 -540
  376. package/src/components/config/AdapterAccountsManager.tsx +0 -846
  377. package/src/components/config/AppSettingsPanel.tsx +0 -109
  378. package/src/components/config/ConfigAboutSection.scss +0 -117
  379. package/src/components/config/ConfigAboutSection.tsx +0 -104
  380. package/src/components/config/ConfigDisplayValue.scss +0 -22
  381. package/src/components/config/ConfigDisplayValue.tsx +0 -62
  382. package/src/components/config/ConfigEditors.scss +0 -91
  383. package/src/components/config/ConfigEditors.tsx +0 -98
  384. package/src/components/config/ConfigFieldRow.scss +0 -221
  385. package/src/components/config/ConfigFieldRow.tsx +0 -36
  386. package/src/components/config/ConfigSectionForm.scss +0 -185
  387. package/src/components/config/ConfigSectionForm.tsx +0 -1264
  388. package/src/components/config/ConfigSectionPanel.tsx +0 -250
  389. package/src/components/config/ConfigShortcutInput.scss +0 -11
  390. package/src/components/config/ConfigShortcutInput.tsx +0 -59
  391. package/src/components/config/ConfigSourceSwitch.tsx +0 -49
  392. package/src/components/config/DetailCollectionFieldActions.tsx +0 -63
  393. package/src/components/config/DetailListField.tsx +0 -413
  394. package/src/components/config/McpServerItemEditor.tsx +0 -154
  395. package/src/components/config/RecommendedModelsItemEditor.tsx +0 -146
  396. package/src/components/config/WorktreeEnvironmentDetailView.tsx +0 -126
  397. package/src/components/config/WorktreeEnvironmentListView.tsx +0 -126
  398. package/src/components/config/WorktreeEnvironmentPanel.scss +0 -430
  399. package/src/components/config/WorktreeEnvironmentPanel.tsx +0 -147
  400. package/src/components/config/WorktreeEnvironmentScriptEditorCard.tsx +0 -125
  401. package/src/components/config/WorktreeEnvironmentScriptEditors.tsx +0 -189
  402. package/src/components/config/channelDefinitions.ts +0 -6
  403. package/src/components/config/configConflict.ts +0 -41
  404. package/src/components/config/configDetail.ts +0 -381
  405. package/src/components/config/configSchema.ts +0 -1017
  406. package/src/components/config/configUtils.ts +0 -83
  407. package/src/components/config/index.tsx +0 -5
  408. package/src/components/config/record-editors/BooleanRecordEditor.scss +0 -1
  409. package/src/components/config/record-editors/BooleanRecordEditor.tsx +0 -75
  410. package/src/components/config/record-editors/ChannelRecordEditor.scss +0 -1
  411. package/src/components/config/record-editors/ChannelRecordEditor.tsx +0 -397
  412. package/src/components/config/record-editors/KeyValueEditor.scss +0 -1
  413. package/src/components/config/record-editors/KeyValueEditor.tsx +0 -97
  414. package/src/components/config/record-editors/McpServersRecordEditor.scss +0 -1
  415. package/src/components/config/record-editors/McpServersRecordEditor.tsx +0 -260
  416. package/src/components/config/record-editors/ModelServicesRecordEditor.scss +0 -1
  417. package/src/components/config/record-editors/ModelServicesRecordEditor.tsx +0 -265
  418. package/src/components/config/record-editors/RecordEditors.scss +0 -335
  419. package/src/components/config/record-editors/RecordJsonEditor.scss +0 -1
  420. package/src/components/config/record-editors/RecordJsonEditor.tsx +0 -140
  421. package/src/components/config/record-editors/SchemaObjectEditor.tsx +0 -183
  422. package/src/components/config/record-editors/SchemaRecordEditor.tsx +0 -184
  423. package/src/components/config/record-editors/index.tsx +0 -7
  424. package/src/components/config/record-editors/schemaRecordUtils.ts +0 -55
  425. package/src/components/config/use-worktree-environment-auto-save.ts +0 -386
  426. package/src/components/config/worktree-environment-panel-model.ts +0 -108
  427. package/src/components/dock-panel/DockPanel.scss +0 -223
  428. package/src/components/dock-panel/DockPanel.tsx +0 -194
  429. package/src/components/dock-panel/DockPanelHeader.tsx +0 -65
  430. package/src/components/dock-panel/use-dock-panel-fullscreen.ts +0 -51
  431. package/src/components/knowledge-base/KnowledgeBaseView.scss +0 -431
  432. package/src/components/knowledge-base/KnowledgeBaseView.tsx +0 -512
  433. package/src/components/knowledge-base/components/@hooks/use-skills-cli-modal-controller.ts +0 -157
  434. package/src/components/knowledge-base/components/@hooks/use-skills-tab-actions.ts +0 -63
  435. package/src/components/knowledge-base/components/ActionButton.scss +0 -35
  436. package/src/components/knowledge-base/components/ActionButton.tsx +0 -19
  437. package/src/components/knowledge-base/components/CreateSkillModal.tsx +0 -59
  438. package/src/components/knowledge-base/components/EmptyState.scss +0 -18
  439. package/src/components/knowledge-base/components/EmptyState.tsx +0 -42
  440. package/src/components/knowledge-base/components/EntitiesTab.scss +0 -5
  441. package/src/components/knowledge-base/components/EntitiesTab.tsx +0 -86
  442. package/src/components/knowledge-base/components/EntityItem.scss +0 -89
  443. package/src/components/knowledge-base/components/EntityItem.tsx +0 -79
  444. package/src/components/knowledge-base/components/EntityList.scss +0 -8
  445. package/src/components/knowledge-base/components/EntityList.tsx +0 -70
  446. package/src/components/knowledge-base/components/FilterBar.scss +0 -33
  447. package/src/components/knowledge-base/components/FilterBar.tsx +0 -55
  448. package/src/components/knowledge-base/components/FlowsTab.scss +0 -5
  449. package/src/components/knowledge-base/components/FlowsTab.tsx +0 -86
  450. package/src/components/knowledge-base/components/KnowledgeBaseHeader.scss +0 -6
  451. package/src/components/knowledge-base/components/KnowledgeBaseHeader.tsx +0 -25
  452. package/src/components/knowledge-base/components/KnowledgeContentControls.tsx +0 -35
  453. package/src/components/knowledge-base/components/KnowledgeList.scss +0 -39
  454. package/src/components/knowledge-base/components/KnowledgeList.tsx +0 -19
  455. package/src/components/knowledge-base/components/KnowledgeMobilePanel.tsx +0 -122
  456. package/src/components/knowledge-base/components/KnowledgeSidebar.tsx +0 -97
  457. package/src/components/knowledge-base/components/LoadingState.scss +0 -10
  458. package/src/components/knowledge-base/components/LoadingState.tsx +0 -11
  459. package/src/components/knowledge-base/components/MetaList.scss +0 -19
  460. package/src/components/knowledge-base/components/MetaList.tsx +0 -18
  461. package/src/components/knowledge-base/components/ProjectSkillsList.tsx +0 -79
  462. package/src/components/knowledge-base/components/RuleItem.scss +0 -86
  463. package/src/components/knowledge-base/components/RuleItem.tsx +0 -81
  464. package/src/components/knowledge-base/components/RuleList.scss +0 -8
  465. package/src/components/knowledge-base/components/RuleList.tsx +0 -70
  466. package/src/components/knowledge-base/components/RulesTab.scss +0 -5
  467. package/src/components/knowledge-base/components/RulesTab.tsx +0 -81
  468. package/src/components/knowledge-base/components/SectionHeader.scss +0 -19
  469. package/src/components/knowledge-base/components/SectionHeader.tsx +0 -19
  470. package/src/components/knowledge-base/components/SkillArchiveInput.tsx +0 -43
  471. package/src/components/knowledge-base/components/SkillHubResultItem.tsx +0 -112
  472. package/src/components/knowledge-base/components/SkillMarketResults.tsx +0 -98
  473. package/src/components/knowledge-base/components/SkillMarketView.tsx +0 -198
  474. package/src/components/knowledge-base/components/SkillMarketView.types.ts +0 -28
  475. package/src/components/knowledge-base/components/SkillRegistryErrors.tsx +0 -21
  476. package/src/components/knowledge-base/components/SkillRegistryModal.tsx +0 -74
  477. package/src/components/knowledge-base/components/SkillsCliModal.tsx +0 -154
  478. package/src/components/knowledge-base/components/SkillsTab.scss +0 -429
  479. package/src/components/knowledge-base/components/SkillsTab.tsx +0 -185
  480. package/src/components/knowledge-base/components/SkillsTabActions.tsx +0 -88
  481. package/src/components/knowledge-base/components/SpecItem.scss +0 -147
  482. package/src/components/knowledge-base/components/SpecItem.tsx +0 -131
  483. package/src/components/knowledge-base/components/SpecList.scss +0 -8
  484. package/src/components/knowledge-base/components/SpecList.tsx +0 -70
  485. package/src/components/knowledge-base/components/TabContent.scss +0 -9
  486. package/src/components/knowledge-base/components/TabContent.tsx +0 -17
  487. package/src/components/knowledge-base/components/TabLabel.scss +0 -10
  488. package/src/components/knowledge-base/components/TabLabel.tsx +0 -15
  489. package/src/components/knowledge-base/components/skill-hub-utils.ts +0 -108
  490. package/src/components/knowledge-base/components/use-skill-market-filters.ts +0 -37
  491. package/src/components/knowledge-base/components/use-skill-market-query-input.ts +0 -44
  492. package/src/components/knowledge-base/components/use-skill-market-search.ts +0 -49
  493. package/src/components/knowledge-base/components/use-skill-registry-modal.ts +0 -68
  494. package/src/components/knowledge-base/index.tsx +0 -1
  495. package/src/components/layout/@hooks/use-mobile-sidebar-modal.ts +0 -190
  496. package/src/components/layout/AppShell.scss +0 -157
  497. package/src/components/layout/AppShell.tsx +0 -168
  498. package/src/components/layout/PageShell.scss +0 -41
  499. package/src/components/layout/PageShell.tsx +0 -32
  500. package/src/components/layout/mobile-sidebar-constants.ts +0 -1
  501. package/src/components/monaco/monaco-runtime.ts +0 -44
  502. package/src/components/monaco/use-monaco-theme.ts +0 -63
  503. package/src/components/nav-rail-account-actions.tsx +0 -104
  504. package/src/components/nav-rail-compact-config.ts +0 -114
  505. package/src/components/nav-rail-items.tsx +0 -181
  506. package/src/components/server-connection/ServerConnectionGate.scss +0 -356
  507. package/src/components/server-connection/ServerConnectionGate.tsx +0 -238
  508. package/src/components/server-connection/ServerConnectionProfileModal.tsx +0 -145
  509. package/src/components/server-connection/ServerConnectionProfiles.tsx +0 -113
  510. package/src/components/server-connection/ServerConnectionUrlInput.tsx +0 -85
  511. package/src/components/sidebar/SessionContextMenu.scss +0 -143
  512. package/src/components/sidebar/SessionContextMenu.tsx +0 -198
  513. package/src/components/sidebar/SessionContextMenuContent.tsx +0 -89
  514. package/src/components/sidebar/SessionItem.scss +0 -417
  515. package/src/components/sidebar/SessionItem.tsx +0 -367
  516. package/src/components/sidebar/SessionList.scss +0 -122
  517. package/src/components/sidebar/SessionList.tsx +0 -187
  518. package/src/components/sidebar/SidebarHeader.scss +0 -372
  519. package/src/components/sidebar/SidebarHeader.tsx +0 -198
  520. package/src/components/sidebar/SidebarHeaderBatchActions.tsx +0 -85
  521. package/src/components/sidebar/SidebarHeaderSearchActions.tsx +0 -175
  522. package/src/components/sidebar/SidebarHeaderSelectField.tsx +0 -24
  523. package/src/components/sidebar/SidebarUtilityFooter.tsx +0 -69
  524. package/src/components/sidebar/filter-utils.ts +0 -23
  525. package/src/components/sidebar/sidebar-search-visibility.ts +0 -18
  526. package/src/components/sidebar-list/SidebarListHeader.scss +0 -246
  527. package/src/components/sidebar-list/SidebarListHeader.tsx +0 -146
  528. package/src/components/workspace/ContextFilePicker.scss +0 -47
  529. package/src/components/workspace/ContextFilePicker.tsx +0 -97
  530. package/src/components/workspace/context-file-types.ts +0 -36
  531. package/src/components/workspace/project-file-tree/ProjectFileTree.scss +0 -298
  532. package/src/components/workspace/project-file-tree/ProjectFileTree.tsx +0 -138
  533. package/src/components/workspace/project-file-tree/ProjectFileTreeRow.tsx +0 -167
  534. package/src/components/workspace/project-file-tree/ProjectFileTreeRowContextMenu.tsx +0 -106
  535. package/src/components/workspace/project-file-tree/ProjectFileTreeRows.tsx +0 -139
  536. package/src/components/workspace/project-file-tree/project-file-tree-helpers.ts +0 -101
  537. package/src/components/workspace/project-file-tree/project-file-tree-icons.ts +0 -93
  538. package/src/components/workspace/project-file-tree/project-file-tree-types.ts +0 -27
  539. package/src/components/workspace/project-file-tree/use-project-file-tree-data.ts +0 -197
  540. package/src/components/workspace/project-file-tree/use-project-file-tree-selection.ts +0 -144
  541. package/src/connectionManager.ts +0 -174
  542. package/src/hooks/chat/chat-session-target.ts +0 -69
  543. package/src/hooks/chat/chat-session-workspace-draft.ts +0 -32
  544. package/src/hooks/chat/interaction-state.ts +0 -125
  545. package/src/hooks/chat/model-selector-data-builders.ts +0 -146
  546. package/src/hooks/chat/model-selector-data-option-utils.ts +0 -62
  547. package/src/hooks/chat/model-selector-data-types.ts +0 -27
  548. package/src/hooks/chat/model-selector-data.ts +0 -109
  549. package/src/hooks/chat/model-selector-recommendations.ts +0 -69
  550. package/src/hooks/chat/model-selector.ts +0 -153
  551. package/src/hooks/chat/optimistic-session-creation.ts +0 -189
  552. package/src/hooks/chat/session-view-cache.ts +0 -83
  553. package/src/hooks/chat/use-chat-adapter-account-selection.tsx +0 -156
  554. package/src/hooks/chat/use-chat-adapter.ts +0 -97
  555. package/src/hooks/chat/use-chat-effort.ts +0 -55
  556. package/src/hooks/chat/use-chat-interaction.ts +0 -31
  557. package/src/hooks/chat/use-chat-model-adapter-selection.tsx +0 -562
  558. package/src/hooks/chat/use-chat-models.tsx +0 -347
  559. package/src/hooks/chat/use-chat-permission-mode.ts +0 -55
  560. package/src/hooks/chat/use-chat-route-bottom-panel.ts +0 -181
  561. package/src/hooks/chat/use-chat-route-deep-link-view.ts +0 -33
  562. package/src/hooks/chat/use-chat-scroll.ts +0 -68
  563. package/src/hooks/chat/use-chat-session-actions.ts +0 -520
  564. package/src/hooks/chat/use-chat-session-messages.ts +0 -607
  565. package/src/hooks/chat/use-chat-session.ts +0 -183
  566. package/src/hooks/chat/use-chat-view.ts +0 -59
  567. package/src/hooks/chat/use-composer-control-shortcuts.ts +0 -69
  568. package/src/hooks/chat/use-terminal-dock-visibility.ts +0 -39
  569. package/src/hooks/chat/workspace-file-panel-state.ts +0 -43
  570. package/src/hooks/session-subscription-cache.ts +0 -25
  571. package/src/hooks/use-app-preferences.ts +0 -51
  572. package/src/hooks/use-chat-layout-query-state.ts +0 -29
  573. package/src/hooks/use-responsive-layout.ts +0 -115
  574. package/src/hooks/use-roving-focus-list.ts +0 -104
  575. package/src/hooks/use-sender-header-query-state.ts +0 -35
  576. package/src/hooks/use-session-subscription.ts +0 -144
  577. package/src/hooks/use-sidebar-navigation.ts +0 -40
  578. package/src/hooks/use-sidebar-query-state.ts +0 -79
  579. package/src/hooks/useGlobalShortcut.ts +0 -26
  580. package/src/hooks/useQueryParams.ts +0 -124
  581. package/src/i18n-resources.ts +0 -44
  582. package/src/i18n.ts +0 -37
  583. package/src/main.tsx +0 -60
  584. package/src/pwa.ts +0 -46
  585. package/src/resources/adapters.ts +0 -46
  586. package/src/resources/locales/en.json +0 -1972
  587. package/src/resources/locales/zh.json +0 -1973
  588. package/src/routes/AppRoutes.tsx +0 -22
  589. package/src/routes/ArchiveRoute.tsx +0 -5
  590. package/src/routes/AutomationRoute.tsx +0 -5
  591. package/src/routes/BenchmarkRoute.tsx +0 -5
  592. package/src/routes/ChatRoute.scss +0 -529
  593. package/src/routes/ChatRoute.tsx +0 -40
  594. package/src/routes/ChatRouteBottomPanel.tsx +0 -47
  595. package/src/routes/ChatRouteView.tsx +0 -199
  596. package/src/routes/ConfigRoute.tsx +0 -5
  597. package/src/routes/KnowledgeRoute.tsx +0 -5
  598. package/src/runtime-config.ts +0 -239
  599. package/src/server-connection-history.ts +0 -179
  600. package/src/store/index.ts +0 -173
  601. package/src/styles/global.scss +0 -113
  602. package/src/styles/material-symbols-rounded.scss +0 -23
  603. package/src/utils/chat-links.ts +0 -21
  604. package/src/utils/copy.ts +0 -18
  605. package/src/utils/mobile-viewport.ts +0 -67
  606. package/src/utils/safe-serialize.ts +0 -84
  607. package/src/utils/shortcutUtils.ts +0 -198
  608. package/src/utils/strip-ansi.ts +0 -26
  609. package/src/version-compatibility.ts +0 -37
  610. package/src/vite-env.d.ts +0 -33
  611. package/src/ws.ts +0 -47
  612. package/vite.config.ts +0 -127
@@ -0,0 +1,198 @@
1
+ const { createReadStream } = require('node:fs')
2
+ const { readFile, stat } = require('node:fs/promises')
3
+ const { createServer } = require('node:http')
4
+ const path = require('node:path')
5
+
6
+ const {
7
+ DEFAULT_BASE_PLACEHOLDER,
8
+ DEFAULT_CLIENT_BASE,
9
+ createRuntimeScript,
10
+ formatOriginHost,
11
+ getContentType,
12
+ normalizeBase,
13
+ replaceBase,
14
+ resolveStaticFile,
15
+ trimTrailingSlash
16
+ } = require('./preview-runtime.cjs')
17
+
18
+ const sendText = (req, res, statusCode, body, contentType) => {
19
+ res.writeHead(statusCode, { 'Content-Type': contentType })
20
+ if (req.method === 'HEAD') {
21
+ res.end()
22
+ return
23
+ }
24
+ res.end(body)
25
+ }
26
+
27
+ const sendFile = async (req, res, filePath, extraHeaders = {}) => {
28
+ const fileStat = await stat(filePath).catch(() => null)
29
+ if (fileStat == null || !fileStat.isFile()) {
30
+ return false
31
+ }
32
+
33
+ res.writeHead(200, {
34
+ 'Content-Length': fileStat.size,
35
+ 'Content-Type': getContentType(filePath),
36
+ ...extraHeaders
37
+ })
38
+
39
+ if (req.method === 'HEAD') {
40
+ res.end()
41
+ return true
42
+ }
43
+
44
+ await new Promise((resolve, reject) => {
45
+ const stream = createReadStream(filePath)
46
+ stream.on('error', reject)
47
+ stream.on('end', resolve)
48
+ stream.pipe(res)
49
+ })
50
+ return true
51
+ }
52
+
53
+ const createPreviewRequestHandler = ({
54
+ base,
55
+ basePlaceholder = DEFAULT_BASE_PLACEHOLDER,
56
+ distPath,
57
+ runtimeEnv = {}
58
+ }) => {
59
+ const normalizedBase = normalizeBase(base)
60
+ const normalizedPlaceholderBase = normalizeBase(basePlaceholder)
61
+ const supportedBases = Array.from(new Set([normalizedBase, normalizedPlaceholderBase]))
62
+ let cachedIndexHtmlPromise
63
+
64
+ const loadIndexHtml = () => {
65
+ if (cachedIndexHtmlPromise == null) {
66
+ cachedIndexHtmlPromise = readFile(path.join(distPath, 'index.html'), 'utf8')
67
+ .then((content) => {
68
+ const replacedBase = replaceBase(content, normalizedBase, normalizedPlaceholderBase)
69
+ return replacedBase.replace(
70
+ '</head>',
71
+ `${createRuntimeScript(normalizedBase, runtimeEnv)}</head>`
72
+ )
73
+ })
74
+ }
75
+ return cachedIndexHtmlPromise
76
+ }
77
+
78
+ return async (req, res) => {
79
+ if (req.method !== 'GET' && req.method !== 'HEAD') {
80
+ res.writeHead(405, { Allow: 'GET, HEAD' })
81
+ res.end()
82
+ return
83
+ }
84
+
85
+ const requestPath = new URL(req.url ?? '/', 'http://127.0.0.1').pathname
86
+ const trimmedBase = trimTrailingSlash(normalizedBase)
87
+ const trimmedPlaceholderBase = trimTrailingSlash(normalizedPlaceholderBase)
88
+
89
+ if (normalizedBase !== '/') {
90
+ if (requestPath === '/' || requestPath === trimmedBase || requestPath === trimmedPlaceholderBase) {
91
+ res.writeHead(308, { Location: normalizedBase })
92
+ res.end()
93
+ return
94
+ }
95
+ }
96
+
97
+ const matchedBase = supportedBases.find((candidate) => candidate === '/' || requestPath.startsWith(candidate))
98
+ if (matchedBase == null) {
99
+ sendText(req, res, 404, 'Not Found', 'text/plain; charset=utf-8')
100
+ return
101
+ }
102
+
103
+ const relativePath = matchedBase === '/'
104
+ ? requestPath.replace(/^\/+/, '')
105
+ : requestPath.slice(matchedBase.length)
106
+
107
+ if (!relativePath || relativePath === 'index.html') {
108
+ const html = await loadIndexHtml()
109
+ sendText(req, res, 200, html, 'text/html; charset=utf-8')
110
+ return
111
+ }
112
+
113
+ const resolvedStaticFile = resolveStaticFile(distPath, relativePath)
114
+ if (resolvedStaticFile != null) {
115
+ const extraHeaders = resolvedStaticFile.relativePath === 'sw.js'
116
+ ? { 'Cache-Control': 'no-cache' }
117
+ : {}
118
+ if (await sendFile(req, res, resolvedStaticFile.absolutePath, extraHeaders)) {
119
+ return
120
+ }
121
+ }
122
+
123
+ const html = await loadIndexHtml()
124
+ sendText(req, res, 200, html, 'text/html; charset=utf-8')
125
+ }
126
+ }
127
+
128
+ const listen = (server, port, host) =>
129
+ new Promise((resolve, reject) => {
130
+ function onListening() {
131
+ server.off('error', onError)
132
+ resolve(server.address())
133
+ }
134
+ function onError(error) {
135
+ server.off('listening', onListening)
136
+ reject(error)
137
+ }
138
+
139
+ server.once('error', onError)
140
+ server.once('listening', onListening)
141
+ server.listen(port, host)
142
+ })
143
+
144
+ const close = (server) =>
145
+ new Promise((resolve, reject) => {
146
+ server.close((error) => {
147
+ if (error) {
148
+ reject(error)
149
+ return
150
+ }
151
+ resolve()
152
+ })
153
+ })
154
+
155
+ const startPreviewServer = async ({
156
+ base = DEFAULT_CLIENT_BASE,
157
+ basePlaceholder = DEFAULT_BASE_PLACEHOLDER,
158
+ distPath = path.resolve(__dirname, './dist'),
159
+ host = '127.0.0.1',
160
+ port = 4173,
161
+ runtimeEnv = {}
162
+ } = {}) => {
163
+ await stat(path.join(distPath, 'index.html'))
164
+
165
+ const normalizedBase = normalizeBase(base)
166
+ const server = createServer(
167
+ createPreviewRequestHandler({
168
+ base: normalizedBase,
169
+ basePlaceholder,
170
+ distPath,
171
+ runtimeEnv
172
+ })
173
+ )
174
+
175
+ const address = await listen(server, port, host)
176
+ if (address == null || typeof address === 'string') {
177
+ throw new Error('Failed to resolve preview server address')
178
+ }
179
+
180
+ const originHost = formatOriginHost(address.address)
181
+ const origin = `http://${originHost}:${address.port}`
182
+ return {
183
+ base: normalizedBase,
184
+ close: () => close(server),
185
+ origin,
186
+ server,
187
+ url: `${origin}${normalizedBase === '/' ? '/' : normalizedBase}`
188
+ }
189
+ }
190
+
191
+ module.exports = {
192
+ DEFAULT_BASE_PLACEHOLDER,
193
+ createPreviewRequestHandler,
194
+ createRuntimeScript,
195
+ normalizeBase,
196
+ replaceBase,
197
+ startPreviewServer
198
+ }
package/AGENTS.md DELETED
@@ -1,115 +0,0 @@
1
- # Client 目录说明
2
-
3
- - `src/App.tsx`:客户端根入口,负责挂载主题、全局订阅、侧边栏导航和应用壳。
4
- - `src/routes/`:页面级 route 入口,只处理 URL、路由参数、页面装配和少量 route 级数据获取。
5
- - `src/components/layout/`:全局布局组件,当前放置 `AppShell` 这类应用骨架。
6
- - `src/components/`:可复用视图组件和页面内部面板,不承担路由匹配职责。
7
- - `src/components/config/`:配置页编辑器、worktree environment 面板与配置冲突处理逻辑。
8
- - 涉及配置页自动保存、热更新、外部配置变更或冲突提示时,先读 `src/components/config/AGENTS.md`。
9
- - `src/components/chat/`:聊天页子视图,包含 header、history、timeline、settings、sender 和工具渲染。
10
- - 消息级 `编辑 / 撤回 / 分叉 / 复制原文` 的更细维护说明见 `src/components/chat/AGENTS.md`。
11
- - `src/hooks/`:跨页面通用 hooks;`src/hooks/chat/` 专门承载聊天会话相关状态和交互逻辑。
12
- - `src/api/`:HTTP API 封装与响应类型,页面和 hooks 统一通过这里访问后端。
13
- - `src/store/`:全局状态原子。
14
- - `src/resources/`:静态资源、适配器元数据和 i18n 文案。
15
- - `src/styles/`:全局样式入口。
16
-
17
- ## 约定
18
-
19
- 路由分层:
20
-
21
- - 新增页面入口时,优先放在 `src/routes/`。
22
- - route 组件可以读取 `useParams`、`useNavigate`、query params,并做页面级数据装配。
23
- - 纯展示或可复用 UI 不要放在 `src/routes/`,应放回 `src/components/`。
24
-
25
- 布局分层:
26
-
27
- - 全局布局和页面外壳统一放在 `src/components/layout/`。
28
- - 不要再创建 `components/app/routes` 这类把布局和路由混放的目录。
29
-
30
- 聊天页约定:
31
-
32
- - 聊天页面入口统一由 route 组件承接,当前为 `src/routes/ChatRoute.tsx`。
33
- - `ChatRoute` 负责 `/` 与 `/session/:sessionId` 的合并入口、会话解析和空态处理。
34
- - `src/components/chat/` 只保留聊天页面内部视图,不再单独维护旧式 route wrapper。
35
- - 会话列表的“搜索 / 筛选 / 排序 / 收起态”已写入 URL query;后续新增 session 级 UI 状态时,优先先判断是否也应落到 query,而不是只放组件本地 state。
36
- - 会话卡片支持右键上下文菜单;涉及 `收藏 / 重命名 / 归档 / 复制链接 / 复制 ID / 复制控制台指令` 时,优先沿着右键菜单扩展,不要再把所有能力塞回 hover 按钮。
37
-
38
- 数据流约定:
39
-
40
- - 页面级列表或详情拉取优先放在 route 或对应页面 hook 中,不要散落在纯展示组件内。
41
- - API 请求统一走 `src/api/`,避免在组件里直接手写 `fetch`。
42
- - 能复用的状态逻辑优先抽到 hooks,不在 route 和 view 间复制业务逻辑。
43
- - 配置页收到 `config_updated` 后,订阅层只负责刷新缓存;本地草稿和远端配置的冲突判断必须留在配置编辑器内部完成,避免静默覆盖用户正在编辑的内容。
44
-
45
- 组件与 hook 归档约定:
46
-
47
- - 前端业务模块统一遵循 `../../.ai/rules/frontend-standard/module-organization.md`,这不是 sender 私有约定。
48
- - 模块目录不要长期平铺文件;优先拆成 `@components / @core / @hooks / @types / @utils / @store`。
49
- - 模块私有 hooks、utils、types、store 放在模块自己的 `@*` 目录中,不和全局 `src/hooks`、`src/utils`、`src/store` 混用。
50
- - 只有跨模块复用的 hooks、components、utils、store,才提升到 `src/hooks/`、`src/components/`、`src/utils/`、`src/store/`。
51
- - 如果一个组件明显可被其他页面/模块复用,应放到更公共的 `src/components/` 子目录,而不是继续留在某个页面私有目录。
52
- - 当前例子:
53
- - sender 私有编排逻辑在 `src/components/chat/sender/@hooks/`
54
- - sender 私有核心逻辑在 `src/components/chat/sender/@core/`
55
- - 聊天共用状态提示在 `src/components/chat/`
56
- - 工作区文件选择器和可复用项目目录树在 `src/components/workspace/`
57
-
58
- import 约定:
59
-
60
- - 遵循 `.ai/rules/CODING-STYLE.md` 的 group 顺序,并在 group 之间保留一个空行。
61
- - `#~/` 用于 client 包内跨目录引用;不要在组件里持续叠加 `../../`。
62
- - 模块入口引用自己的 `@components / @core / @hooks / @types / @utils` 时,可以使用模块内相对路径。
63
- - 子模块内部如果只是引用同子模块兄弟文件,继续用相对路径;跨到别的子模块或更上层职责目录时,优先保证路径语义清晰,不要为了省几层目录把结构打平。
64
-
65
- 前端调试入口:
66
-
67
- - 如果任务涉及 tooltip / popover / select / theme / sender / focus / hover / 样式回归 / 真实 Chrome 验证 / CDP 调试,开始修改前必须先读 `../../.ai/rules/frontend-standard/debugging.md`。
68
- - 需要通过 Chrome DevTools Protocol 调试页面时,必须使用独立 profile 和冷启动的调试 Chrome,不要直接复用用户已经打开的日常浏览器实例。
69
- - 样式和交互问题不要只看代码;至少做一次真实 Chrome 的 computed style、open state 和 focus 回归。
70
-
71
- ## 聊天消息操作维护
72
-
73
- 如果任务涉及聊天消息级交互,优先读这些入口:
74
-
75
- - `src/components/chat/ChatHistoryView.tsx`
76
- - 列表级状态,包含 `editingMessageId`、编辑冲突提示、编辑期间隐藏底部 sender。
77
- - `src/components/chat/messages/MessageItem.tsx`
78
- - 单条消息的 `编辑 / 撤回 / 分叉 / 复制原文` UI,以及 inline edit 挂载点。
79
- - `src/components/chat/sender/Sender.tsx`
80
- - 底部 sender 和 inline edit 共用的 composer;图片上传和资源型输入都从这里走。
81
- - 如果涉及 sender / 浮层组合,还要同步看 `src/components/chat/AGENTS.md` 里的 sender 调试经验。
82
- - `src/hooks/chat/use-chat-session-actions.ts`
83
- - 消息操作的前端 action 入口。
84
- - `src/api/sessions.ts`
85
- - 会话/消息分支相关 API 封装。
86
-
87
- 进一步经验与工具说明:
88
-
89
- - 经验沉淀:`../../.ai/rules/maintenance/message-actions.md`
90
- - 工具与使用法:`../../.ai/rules/maintenance/tooling.md`
91
-
92
- ## 消息级调试与回归
93
-
94
- 推荐先跑:
95
-
96
- ```bash
97
- pnpm tools message-actions verify
98
- ```
99
-
100
- 这个命令会串行执行:
101
-
102
- - `eslint`
103
- - `dprint check`
104
- - `pnpm typecheck`
105
- - 消息级操作相关回归测试
106
- - 真实 Chrome 手工验证清单输出
107
-
108
- 真实 Chrome 最低回归项:
109
-
110
- 1. 编辑态替换原消息,不允许“原消息 + 编辑器”并存。
111
- 2. 编辑确认按钮文案是 `发送`。
112
- 3. 同时只能编辑一条消息;再次点编辑会提示已有编辑中的消息。
113
- 4. 编辑时底部 sender 隐藏,取消后恢复。
114
- 5. assistant 消息不允许 fork,`复制原文` 复制的是原始 markdown/text。
115
- 6. `edit / recall / fork` 后新分支会继续触发 assistant 回复。
@@ -1 +0,0 @@
1
- import{al as o,am as n}from"./mermaid.core-DDK6pwbH.js";const l=(a,r)=>o.lang.round(n.parse(a)[r]);export{l as c};
@@ -1 +0,0 @@
1
- import{a as r}from"./graph-D9-QnVc7.js";var a=4;function n(o){return r(o,a)}export{n as c};
@@ -1 +0,0 @@
1
- import{f as o,p as e}from"./flowDb-c6c81e3f-ChBIZfFE.js";import{f as a,g as t}from"./styles-d45a18b0-CTIOlm5f.js";import{ar as i}from"./mermaid.core-DDK6pwbH.js";import"./graph-D9-QnVc7.js";import"./layout-XKv3I9bs.js";import"./index-CFwJnHev.js";import"./index-5325376f-DvDnB8Ym.js";import"./clone-BicNByr8.js";import"./edges-96097737-DQTQ3TTh.js";import"./createText-1719965b-B7ypMies.js";import"./line-BUKiwgio.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-_Q_52ef7.js";const n={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{n as diagram};
package/index.html DELETED
@@ -1,18 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="zh-CN">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <meta name="theme-color" content="#111827" />
7
- <meta name="apple-mobile-web-app-title" content="Vibe Forge" />
8
- <meta name="apple-mobile-web-app-capable" content="yes" />
9
- <link rel="manifest" href="%BASE_URL%manifest.webmanifest" />
10
- <link rel="icon" href="%BASE_URL%favicon.svg" type="image/svg+xml" />
11
- <link rel="apple-touch-icon" href="%BASE_URL%pwa-icon-192.png" />
12
- <title>Vibe Forge Web</title>
13
- </head>
14
- <body>
15
- <div id="root"></div>
16
- <script type="module" src="./src/main.tsx"></script>
17
- </body>
18
- </html>
@@ -1,5 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
2
- <rect width="64" height="64" rx="16" fill="#111827" />
3
- <path d="M18 18h28v8H27v10h16v8H27v14h-9V18Z" fill="#f8fafc" />
4
- <path d="M38 18h8L34 58h-8l12-40Z" fill="#60a5fa" />
5
- </svg>
@@ -1,30 +0,0 @@
1
- {
2
- "name": "Vibe Forge Web",
3
- "short_name": "Vibe Forge",
4
- "description": "Vibe Forge Web",
5
- "start_url": ".",
6
- "scope": ".",
7
- "display": "standalone",
8
- "background_color": "#f8fafc",
9
- "theme_color": "#111827",
10
- "icons": [
11
- {
12
- "src": "favicon.svg",
13
- "sizes": "64x64",
14
- "type": "image/svg+xml",
15
- "purpose": "any"
16
- },
17
- {
18
- "src": "pwa-icon-192.png",
19
- "sizes": "192x192",
20
- "type": "image/png",
21
- "purpose": "any maskable"
22
- },
23
- {
24
- "src": "pwa-icon-512.png",
25
- "sizes": "512x512",
26
- "type": "image/png",
27
- "purpose": "any maskable"
28
- }
29
- ]
30
- }
Binary file
Binary file
package/public/sw.js DELETED
@@ -1,105 +0,0 @@
1
- const CACHE_PREFIX = 'vibe-forge-web'
2
- const CACHE_VERSION = 'v1'
3
- const APP_CACHE = `${CACHE_PREFIX}-app-${CACHE_VERSION}`
4
- const STATIC_CACHE = `${CACHE_PREFIX}-static-${CACHE_VERSION}`
5
- const serviceWorkerGlobal = globalThis
6
-
7
- const appScopeUrl = new URL(serviceWorkerGlobal.registration.scope)
8
-
9
- const isSameOrigin = url => url.origin === serviceWorkerGlobal.location.origin
10
-
11
- const isInsideAppScope = url => url.href.startsWith(appScopeUrl.href)
12
-
13
- const isStaticAssetRequest = url => (
14
- url.pathname.includes('/assets/') ||
15
- url.pathname.endsWith('/favicon.svg') ||
16
- url.pathname.endsWith('/manifest.webmanifest') ||
17
- url.pathname.endsWith('/pwa-icon-192.png') ||
18
- url.pathname.endsWith('/pwa-icon-512.png')
19
- )
20
-
21
- const pruneOldCaches = async () => {
22
- const cacheNames = await caches.keys()
23
- await Promise.all(
24
- cacheNames
25
- .filter(name => name.startsWith(CACHE_PREFIX) && name !== APP_CACHE && name !== STATIC_CACHE)
26
- .map(name => caches.delete(name))
27
- )
28
- }
29
-
30
- const cacheAppShell = async () => {
31
- const cache = await caches.open(APP_CACHE)
32
- try {
33
- await cache.add(new Request(appScopeUrl.href, { cache: 'reload' }))
34
- } catch {
35
- // Installing should still succeed if the first shell refresh races the network.
36
- }
37
- }
38
-
39
- const networkFirstNavigation = async request => {
40
- const cache = await caches.open(APP_CACHE)
41
- try {
42
- const response = await fetch(request)
43
- if (response.ok) {
44
- await cache.put(appScopeUrl.href, response.clone())
45
- }
46
- return response
47
- } catch (error) {
48
- const cached = await cache.match(appScopeUrl.href)
49
- if (cached != null) {
50
- return cached
51
- }
52
- throw error
53
- }
54
- }
55
-
56
- const staleWhileRevalidate = async request => {
57
- const cache = await caches.open(STATIC_CACHE)
58
- const cached = await cache.match(request)
59
- const networkResponse = fetch(request)
60
- .then(async response => {
61
- if (response.ok) {
62
- await cache.put(request, response.clone())
63
- }
64
- return response
65
- })
66
- .catch(error => {
67
- if (cached != null) {
68
- return cached
69
- }
70
- throw error
71
- })
72
-
73
- return cached ?? networkResponse
74
- }
75
-
76
- serviceWorkerGlobal.addEventListener('install', event => {
77
- event.waitUntil(
78
- cacheAppShell()
79
- .then(() => serviceWorkerGlobal.skipWaiting())
80
- )
81
- })
82
-
83
- serviceWorkerGlobal.addEventListener('activate', event => {
84
- event.waitUntil(
85
- pruneOldCaches()
86
- .then(() => serviceWorkerGlobal.clients.claim())
87
- )
88
- })
89
-
90
- serviceWorkerGlobal.addEventListener('fetch', event => {
91
- const { request } = event
92
- if (request.method !== 'GET') return
93
-
94
- const url = new URL(request.url)
95
- if (!isSameOrigin(url) || !isInsideAppScope(url)) return
96
-
97
- if (request.mode === 'navigate') {
98
- event.respondWith(networkFirstNavigation(request))
99
- return
100
- }
101
-
102
- if (isStaticAssetRequest(url)) {
103
- event.respondWith(staleWhileRevalidate(request))
104
- }
105
- })
package/src/App.tsx DELETED
@@ -1,40 +0,0 @@
1
- import { ConfigProvider } from 'antd'
2
-
3
- import { AuthGate } from '#~/components/auth/AuthGate'
4
- import { AppShell } from '#~/components/layout/AppShell'
5
- import { ServerConnectionGate } from '#~/components/server-connection/ServerConnectionGate'
6
- import { useAppPreferences } from '#~/hooks/use-app-preferences'
7
- import { useSessionSubscription } from '#~/hooks/use-session-subscription.js'
8
- import { useSidebarNavigation } from '#~/hooks/use-sidebar-navigation'
9
- import { AppRoutes } from '#~/routes/AppRoutes'
10
-
11
- function AuthenticatedApp() {
12
- useSessionSubscription()
13
- const { isDarkMode, themeConfig } = useAppPreferences()
14
- const sidebarNavigation = useSidebarNavigation()
15
-
16
- return (
17
- <ConfigProvider theme={themeConfig}>
18
- <AppShell
19
- activeSessionId={sidebarNavigation.activeSessionId}
20
- isDarkMode={isDarkMode}
21
- onDeletedSession={sidebarNavigation.handleDeletedSession}
22
- onSelectSession={sidebarNavigation.handleSelectSession}
23
- showSidebar={sidebarNavigation.showSidebar}
24
- sidebarWidth={sidebarNavigation.sidebarWidth}
25
- >
26
- <AppRoutes />
27
- </AppShell>
28
- </ConfigProvider>
29
- )
30
- }
31
-
32
- export default function App() {
33
- return (
34
- <ServerConnectionGate>
35
- <AuthGate>
36
- <AuthenticatedApp />
37
- </AuthGate>
38
- </ServerConnectionGate>
39
- )
40
- }
package/src/api/README.md DELETED
@@ -1,27 +0,0 @@
1
- # Client API 模块规范
2
-
3
- 本目录用于承载前端的 API 调用与类型定义,按领域拆分并统一复用请求基建。
4
-
5
- ## 目录结构
6
-
7
- - `base.ts`: 服务地址解析与通用请求封装
8
- - `automation.ts`: 自动化规则与运行记录
9
- - `config.ts`: 配置读取与更新
10
- - `knowledge.ts`: 知识库与规则说明
11
- - `projects.ts`: 项目列表与创建
12
- - `sessions.ts`: 会话与消息
13
- - `types.ts`: 跨模块共享的响应类型
14
- - `worktree-environments.ts`: worktree 环境脚本管理
15
-
16
- ## 新增或修改 API 的标准流程
17
-
18
- 1. 选择对应领域文件(若不存在,先创建新模块文件)。
19
- 2. 明确接口类型,优先复用 `@vibe-forge/core` 的类型,避免 `any` 和不明确类型。
20
- 3. 使用 `base.ts` 中的 `fetchApiJson` / `fetchApiJsonOrThrow` 统一请求逻辑与错误处理。
21
- 4. 在 `src/api.ts` 中 reexport,并为该模块添加说明注释。
22
- 5. 如涉及 SWR 的直接路径请求,确保路径仍以 `/api/...` 为前缀,避免手动拼接服务地址。
23
-
24
- ## 约定
25
-
26
- - 类型只在必要位置导出,跨模块复用的类型应集中放到 `types.ts`。
27
- - 返回结构保持与服务端一致,若后端契约变更需同步更新类型。
@@ -1,63 +0,0 @@
1
- import type {
2
- AdapterAccountDetailResult,
3
- AdapterAccountsResult,
4
- AdapterManageAccountOptions,
5
- AdapterManageAccountResult
6
- } from '@vibe-forge/types'
7
-
8
- import { createApiUrl, fetchApiJson, jsonHeaders } from './base'
9
-
10
- export async function getAdapterAccounts(
11
- adapter: string,
12
- options: {
13
- model?: string
14
- account?: string
15
- refresh?: boolean
16
- } = {}
17
- ): Promise<AdapterAccountsResult> {
18
- const url = createApiUrl(`/api/adapters/${encodeURIComponent(adapter)}/accounts`)
19
- if (options.model != null && options.model.trim() !== '') {
20
- url.searchParams.set('model', options.model)
21
- }
22
- if (options.account != null && options.account.trim() !== '') {
23
- url.searchParams.set('account', options.account)
24
- }
25
- if (options.refresh === true) {
26
- url.searchParams.set('refresh', 'true')
27
- }
28
- return fetchApiJson<AdapterAccountsResult>(url)
29
- }
30
-
31
- export async function getAdapterAccountDetail(
32
- adapter: string,
33
- account: string,
34
- options: {
35
- model?: string
36
- refresh?: boolean
37
- } = {}
38
- ): Promise<AdapterAccountDetailResult> {
39
- const url = createApiUrl(`/api/adapters/${encodeURIComponent(adapter)}/accounts/${encodeURIComponent(account)}`)
40
- if (options.model != null && options.model.trim() !== '') {
41
- url.searchParams.set('model', options.model)
42
- }
43
- if (options.refresh === true) {
44
- url.searchParams.set('refresh', 'true')
45
- }
46
- return fetchApiJson<AdapterAccountDetailResult>(url)
47
- }
48
-
49
- export async function manageAdapterAccount(
50
- adapter: string,
51
- options: Pick<AdapterManageAccountOptions, 'action' | 'account' | 'model' | 'refresh'>,
52
- requestOptions?: Pick<RequestInit, 'signal'>
53
- ): Promise<AdapterManageAccountResult> {
54
- return fetchApiJson<AdapterManageAccountResult>(
55
- createApiUrl(`/api/adapters/${encodeURIComponent(adapter)}/accounts/actions`),
56
- {
57
- method: 'POST',
58
- headers: jsonHeaders,
59
- body: JSON.stringify(options),
60
- ...requestOptions
61
- }
62
- )
63
- }
@@ -1,51 +0,0 @@
1
- import { getServerBaseUrl } from '#~/runtime-config'
2
- import {
3
- clearAuthTokenForServerUrl,
4
- getAuthTokenForServerUrl,
5
- setAuthTokenForServerUrl
6
- } from '#~/server-connection-history'
7
-
8
- const LEGACY_AUTH_TOKEN_STORAGE_KEY = 'vf_auth_token'
9
-
10
- const getStorage = () => {
11
- try {
12
- return globalThis.localStorage
13
- } catch {
14
- return undefined
15
- }
16
- }
17
-
18
- export const getAuthToken = () => {
19
- const serverUrl = getServerBaseUrl()
20
- const scopedToken = getAuthTokenForServerUrl(serverUrl)?.trim()
21
- if (scopedToken != null && scopedToken !== '') return scopedToken
22
-
23
- const legacyToken = getStorage()?.getItem(LEGACY_AUTH_TOKEN_STORAGE_KEY)?.trim()
24
- if (legacyToken == null || legacyToken === '') return undefined
25
-
26
- setAuthTokenForServerUrl(serverUrl, legacyToken)
27
- getStorage()?.removeItem(LEGACY_AUTH_TOKEN_STORAGE_KEY)
28
- return legacyToken
29
- }
30
-
31
- export const setAuthToken = (token: string) => {
32
- const normalized = token.trim()
33
- if (normalized === '') {
34
- return
35
- }
36
- setAuthTokenForServerUrl(getServerBaseUrl(), normalized)
37
- getStorage()?.removeItem(LEGACY_AUTH_TOKEN_STORAGE_KEY)
38
- }
39
-
40
- export const clearAuthToken = () => {
41
- clearAuthTokenForServerUrl(getServerBaseUrl())
42
- getStorage()?.removeItem(LEGACY_AUTH_TOKEN_STORAGE_KEY)
43
- }
44
-
45
- export const applyAuthHeader = (headers: Headers) => {
46
- const token = getAuthToken()
47
- if (token == null || headers.has('Authorization')) {
48
- return
49
- }
50
- headers.set('Authorization', `Bearer ${token}`)
51
- }