@jingyi0605/codingns 0.7.3 → 0.8.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 (419) hide show
  1. package/README.md +6 -0
  2. package/bin/codingns.mjs +747 -28
  3. package/bin/office-mcp-server.mjs +620 -0
  4. package/dist/public/assets/{AdaptiveButlerPage-CgBX49t-.js → AdaptiveButlerPage-BsgVNRAa.js} +1 -1
  5. package/dist/public/assets/{App-tXOqoHNl.js → App-tPcbyRdS.js} +3 -3
  6. package/dist/public/assets/{BootstrapPage-DoRMz87R.js → BootstrapPage--MDOigQi.js} +1 -1
  7. package/dist/public/assets/{ConversationPage-DXR6Hp4O.js → ConversationPage-BBss5ED8.js} +6 -6
  8. package/dist/public/assets/{DesktopDetachPreviewPage-Cyk-ZYCk.js → DesktopDetachPreviewPage-CB8DoqwU.js} +1 -1
  9. package/dist/public/assets/{DesktopWindowPage-DNVNK3hs.js → DesktopWindowPage-GtIx5m8K.js} +1 -1
  10. package/dist/public/assets/FileContextPanel-BcM7AIT4.js +1 -0
  11. package/dist/public/assets/{GitSidebar-Cr3Z9OUI.js → GitSidebar-CMtkaxuI.js} +2 -2
  12. package/dist/public/assets/{MobileCreateSessionSheet-DMW0V6GJ.js → MobileCreateSessionSheet-CrFY41_8.js} +1 -1
  13. package/dist/public/assets/{MobileTopHeaderFrame-CkdnZ_MU.js → MobileTopHeaderFrame-DGVOzXyg.js} +1 -1
  14. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-KIbqBYJN.js → MobileWorkspaceSwitcherHeader-DLkACTnQ.js} +1 -1
  15. package/dist/public/assets/{RelayConnectEntryPage-DIRBH3hw.js → RelayConnectEntryPage-0MPPjxtQ.js} +1 -1
  16. package/dist/public/assets/{ServerSettingsModal-C-9RxdWP.js → ServerSettingsModal-vgOhwus4.js} +1 -1
  17. package/dist/public/assets/{SessionIndexPage-bRlIydRA.js → SessionIndexPage-KK626Ra9.js} +1 -1
  18. package/dist/public/assets/{SettingsPage-CMEt4ua9.js → SettingsPage-B3edBJIo.js} +2 -2
  19. package/dist/public/assets/{TerminalManagerPanel-2bi9wVhT.js → TerminalManagerPanel-BxlhZp8c.js} +1 -1
  20. package/dist/public/assets/{TerminalPage-DayZz2Tf.js → TerminalPage-B6Rdhylx.js} +1 -1
  21. package/dist/public/assets/{TerminalRuntimeFallbackModal-DgwYcp-Y.js → TerminalRuntimeFallbackModal-BVLfrpSa.js} +1 -1
  22. package/dist/public/assets/{ToolFilesPage-YvnP_FXW.js → ToolFilesPage-N_gwwUjD.js} +1 -1
  23. package/dist/public/assets/{ToolGitPage-GMcQKtV9.js → ToolGitPage-DOcuuWM1.js} +1 -1
  24. package/dist/public/assets/{ToolProcessesPage-DFIQ7BCd.js → ToolProcessesPage-D-FfJ7Re.js} +1 -1
  25. package/dist/public/assets/{ToolsHomePage-CSilFzXR.js → ToolsHomePage-CHfPxd20.js} +1 -1
  26. package/dist/public/assets/{WorkbenchLandingPage-1VtToSz9.js → WorkbenchLandingPage-CTTnfovY.js} +1 -1
  27. package/dist/public/assets/WorkbenchLayout-CbpJg0g1.js +244 -0
  28. package/dist/public/assets/{WorkbenchModal-BWXYSXmC.js → WorkbenchModal-Bt_1fYmM.js} +1 -1
  29. package/dist/public/assets/WorkbenchShellRoute-B4XB8SwG.css +1 -0
  30. package/dist/public/assets/WorkbenchShellRoute-DyaMnPfS.js +1 -0
  31. package/dist/public/assets/{WorkspaceDebugDetailPage-Ux8_Q7la.js → WorkspaceDebugDetailPage-s7yuDIxR.js} +1 -1
  32. package/dist/public/assets/{WorkspaceDetailPage-B402p99m.js → WorkspaceDetailPage-Cf-gVpqK.js} +1 -1
  33. package/dist/public/assets/{WorkspaceHomePage-D2pob6HI.js → WorkspaceHomePage-COf6I8sT.js} +1 -1
  34. package/dist/public/assets/{client-runtime-manager-C5D76ewj.js → client-runtime-manager-DGdKvYzx.js} +1 -1
  35. package/dist/public/assets/file-tree-icon-BeHqeru9.js +590 -0
  36. package/dist/public/assets/index-CcaQt50x.css +1 -0
  37. package/dist/public/assets/index-CuzMc7q2.js +42 -0
  38. package/dist/public/assets/{login-direct-candidate-resolver-wXSaB0i7.js → login-direct-candidate-resolver-DEP_xCmR.js} +1 -1
  39. package/dist/public/assets/{model-switch-api-CPtou49j.js → model-switch-api-c6kcbBGm.js} +1 -1
  40. package/dist/public/assets/{preferences-service-CdaK7zA8.js → preferences-service-CV6Ih0BG.js} +1 -1
  41. package/dist/public/assets/{realtime-client-BjQazYsK.js → realtime-client-CRCx5xBt.js} +1 -1
  42. package/dist/public/assets/{relay-entry-BwE5nw0l.js → relay-entry-C751A-Sm.js} +1 -1
  43. package/dist/public/assets/{terminal-runtime-meta-C-Lbyx2i.js → terminal-runtime-meta-CRAVR-8G.js} +1 -1
  44. package/dist/public/assets/{useRegisteredDebugTemplates-BM7-c-gx.js → useRegisteredDebugTemplates-D6YtNS0r.js} +1 -1
  45. package/dist/public/index.html +2 -2
  46. package/dist/server/config/env.d.ts +3 -0
  47. package/dist/server/config/env.js +67 -1
  48. package/dist/server/config/env.js.map +1 -1
  49. package/dist/server/config/opencode-base-url-resolver.d.ts +3 -2
  50. package/dist/server/config/opencode-base-url-resolver.js +64 -24
  51. package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
  52. package/dist/server/middlewares/auth-guard.js +4 -0
  53. package/dist/server/middlewares/auth-guard.js.map +1 -1
  54. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +168 -1
  55. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +205 -4
  56. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  57. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +296 -2
  58. package/dist/server/modules/assistant-capability/assistant-capability-service.js +872 -3
  59. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  60. package/dist/server/modules/auth/auth-service.d.ts +21 -1
  61. package/dist/server/modules/auth/auth-service.js +64 -0
  62. package/dist/server/modules/auth/auth-service.js.map +1 -1
  63. package/dist/server/modules/browser-runtime/browser-profile-service.d.ts +26 -0
  64. package/dist/server/modules/browser-runtime/browser-profile-service.js +85 -0
  65. package/dist/server/modules/browser-runtime/browser-profile-service.js.map +1 -0
  66. package/dist/server/modules/browser-runtime/browser-runtime-controller.d.ts +69 -0
  67. package/dist/server/modules/browser-runtime/browser-runtime-controller.js +83 -0
  68. package/dist/server/modules/browser-runtime/browser-runtime-controller.js.map +1 -0
  69. package/dist/server/modules/browser-runtime/browser-runtime-service.d.ts +56 -0
  70. package/dist/server/modules/browser-runtime/browser-runtime-service.js +215 -0
  71. package/dist/server/modules/browser-runtime/browser-runtime-service.js.map +1 -0
  72. package/dist/server/modules/browser-runtime/browser-task-execution-support.d.ts +65 -0
  73. package/dist/server/modules/browser-runtime/browser-task-execution-support.js +432 -0
  74. package/dist/server/modules/browser-runtime/browser-task-execution-support.js.map +1 -0
  75. package/dist/server/modules/browser-runtime/browser-task-executor-registry.d.ts +7 -0
  76. package/dist/server/modules/browser-runtime/browser-task-executor-registry.js +21 -0
  77. package/dist/server/modules/browser-runtime/browser-task-executor-registry.js.map +1 -0
  78. package/dist/server/modules/browser-runtime/browser-task-executor.d.ts +55 -0
  79. package/dist/server/modules/browser-runtime/browser-task-executor.js +2 -0
  80. package/dist/server/modules/browser-runtime/browser-task-executor.js.map +1 -0
  81. package/dist/server/modules/browser-runtime/browser-task-payload.d.ts +31 -0
  82. package/dist/server/modules/browser-runtime/browser-task-payload.js +55 -0
  83. package/dist/server/modules/browser-runtime/browser-task-payload.js.map +1 -0
  84. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.d.ts +19 -0
  85. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js +219 -0
  86. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js.map +1 -0
  87. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.d.ts +15 -0
  88. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.js +33 -0
  89. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.js.map +1 -0
  90. package/dist/server/modules/browser-runtime/playwright-browser-executor.d.ts +16 -0
  91. package/dist/server/modules/browser-runtime/playwright-browser-executor.js +272 -0
  92. package/dist/server/modules/browser-runtime/playwright-browser-executor.js.map +1 -0
  93. package/dist/server/modules/butler/butler-auth-service.js +4 -0
  94. package/dist/server/modules/butler/butler-auth-service.js.map +1 -1
  95. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js +1 -0
  96. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js.map +1 -1
  97. package/dist/server/modules/butler/butler-session-summary-service.d.ts +1 -0
  98. package/dist/server/modules/butler/butler-session-summary-service.js +5 -3
  99. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  100. package/dist/server/modules/butler/butler-workspace-context.js +23 -0
  101. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  102. package/dist/server/modules/channels/wechat-claw-client.d.ts +51 -0
  103. package/dist/server/modules/channels/wechat-claw-client.js +245 -0
  104. package/dist/server/modules/channels/wechat-claw-client.js.map +1 -0
  105. package/dist/server/modules/debug-target/debug-target-service.d.ts +2 -0
  106. package/dist/server/modules/debug-target/debug-target-service.js +14 -0
  107. package/dist/server/modules/debug-target/debug-target-service.js.map +1 -1
  108. package/dist/server/modules/document-runtime/document-docx-fallback-renderer.py +139 -0
  109. package/dist/server/modules/document-runtime/document-export-executor.d.ts +50 -0
  110. package/dist/server/modules/document-runtime/document-export-executor.js +827 -0
  111. package/dist/server/modules/document-runtime/document-export-executor.js.map +1 -0
  112. package/dist/server/modules/document-runtime/document-runtime-controller.d.ts +127 -0
  113. package/dist/server/modules/document-runtime/document-runtime-controller.js +131 -0
  114. package/dist/server/modules/document-runtime/document-runtime-controller.js.map +1 -0
  115. package/dist/server/modules/document-runtime/document-runtime-service.d.ts +125 -0
  116. package/dist/server/modules/document-runtime/document-runtime-service.js +706 -0
  117. package/dist/server/modules/document-runtime/document-runtime-service.js.map +1 -0
  118. package/dist/server/modules/office/office-controller.d.ts +77 -0
  119. package/dist/server/modules/office/office-controller.js +174 -0
  120. package/dist/server/modules/office/office-controller.js.map +1 -0
  121. package/dist/server/modules/office/office-preview-link-service.d.ts +27 -0
  122. package/dist/server/modules/office/office-preview-link-service.js +121 -0
  123. package/dist/server/modules/office/office-preview-link-service.js.map +1 -0
  124. package/dist/server/modules/office/office-service.d.ts +67 -0
  125. package/dist/server/modules/office/office-service.js +359 -0
  126. package/dist/server/modules/office/office-service.js.map +1 -0
  127. package/dist/server/modules/opencli/opencli-bridge-skill-service.js +38 -14
  128. package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -1
  129. package/dist/server/modules/opencli/opencli-install-discovery.d.ts +4 -0
  130. package/dist/server/modules/opencli/opencli-install-discovery.js +94 -0
  131. package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -1
  132. package/dist/server/modules/opencli/opencli-runtime-builder.js +29 -0
  133. package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -1
  134. package/dist/server/modules/opencli/opencli-runtime-guard.d.ts +2 -0
  135. package/dist/server/modules/opencli/opencli-runtime-guard.js +5 -0
  136. package/dist/server/modules/opencli/opencli-runtime-guard.js.map +1 -0
  137. package/dist/server/modules/ops-runtime/ops-runtime-controller.d.ts +70 -0
  138. package/dist/server/modules/ops-runtime/ops-runtime-controller.js +83 -0
  139. package/dist/server/modules/ops-runtime/ops-runtime-controller.js.map +1 -0
  140. package/dist/server/modules/ops-runtime/ops-runtime-service.d.ts +80 -0
  141. package/dist/server/modules/ops-runtime/ops-runtime-service.js +327 -0
  142. package/dist/server/modules/ops-runtime/ops-runtime-service.js.map +1 -0
  143. package/dist/server/modules/ops-runtime/ssh-ops-executor.d.ts +41 -0
  144. package/dist/server/modules/ops-runtime/ssh-ops-executor.js +478 -0
  145. package/dist/server/modules/ops-runtime/ssh-ops-executor.js.map +1 -0
  146. package/dist/server/modules/presentation/presentation-controller.d.ts +22 -0
  147. package/dist/server/modules/presentation/presentation-controller.js +59 -0
  148. package/dist/server/modules/presentation/presentation-controller.js.map +1 -0
  149. package/dist/server/modules/presentation/presentation-export-task-service.d.ts +24 -0
  150. package/dist/server/modules/presentation/presentation-export-task-service.js +137 -0
  151. package/dist/server/modules/presentation/presentation-export-task-service.js.map +1 -0
  152. package/dist/server/modules/presentation/presentation-export-types.d.ts +12 -0
  153. package/dist/server/modules/presentation/presentation-export-types.js +2 -0
  154. package/dist/server/modules/presentation/presentation-export-types.js.map +1 -0
  155. package/dist/server/modules/presentation/presentation-pdf-export-service.d.ts +20 -0
  156. package/dist/server/modules/presentation/presentation-pdf-export-service.js +29 -0
  157. package/dist/server/modules/presentation/presentation-pdf-export-service.js.map +1 -0
  158. package/dist/server/modules/presentation/presentation-pptx-export-service.d.ts +20 -0
  159. package/dist/server/modules/presentation/presentation-pptx-export-service.js +64 -0
  160. package/dist/server/modules/presentation/presentation-pptx-export-service.js.map +1 -0
  161. package/dist/server/modules/presentation/presentation-renderer.d.ts +21 -0
  162. package/dist/server/modules/presentation/presentation-renderer.js +208 -0
  163. package/dist/server/modules/presentation/presentation-renderer.js.map +1 -0
  164. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js +3 -3
  165. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js.map +1 -1
  166. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js +6 -1
  167. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js.map +1 -1
  168. package/dist/server/modules/sessions/codex-app-server-helper-process.js +2 -1
  169. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  170. package/dist/server/modules/sessions/session-controller.d.ts +1 -0
  171. package/dist/server/modules/sessions/session-controller.js +59 -4
  172. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  173. package/dist/server/modules/sessions/session-history-service.js +17 -5
  174. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  175. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +5 -1
  176. package/dist/server/modules/sessions/session-live-runtime-service.js +86 -8
  177. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  178. package/dist/server/modules/sessions/session-provider-config-service.d.ts +25 -1
  179. package/dist/server/modules/sessions/session-provider-config-service.js +54 -5
  180. package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
  181. package/dist/server/modules/sessions/workspace-office-mcp-config.d.ts +14 -0
  182. package/dist/server/modules/sessions/workspace-office-mcp-config.js +54 -0
  183. package/dist/server/modules/sessions/workspace-office-mcp-config.js.map +1 -0
  184. package/dist/server/modules/sessions/workspace-session-auth-service.d.ts +27 -0
  185. package/dist/server/modules/sessions/workspace-session-auth-service.js +109 -0
  186. package/dist/server/modules/sessions/workspace-session-auth-service.js.map +1 -0
  187. package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +50 -0
  188. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +332 -0
  189. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -0
  190. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js +5 -0
  191. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js.map +1 -1
  192. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/SKILL.md +67 -0
  193. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/agents/openai.yaml +4 -0
  194. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/references/cli-workflow.md +133 -0
  195. package/dist/server/modules/skills/skill-controller.d.ts +7 -0
  196. package/dist/server/modules/skills/skill-controller.js +7 -0
  197. package/dist/server/modules/skills/skill-controller.js.map +1 -1
  198. package/dist/server/modules/skills/skill-manager-service.d.ts +61 -0
  199. package/dist/server/modules/skills/skill-manager-service.js +218 -0
  200. package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
  201. package/dist/server/modules/skills/skill-name-policy.js +2 -1
  202. package/dist/server/modules/skills/skill-name-policy.js.map +1 -1
  203. package/dist/server/modules/tasks/task-helper-client.d.ts +1 -0
  204. package/dist/server/modules/tasks/task-helper-client.js +45 -9
  205. package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
  206. package/dist/server/modules/tasks/task-types.d.ts +5 -0
  207. package/dist/server/modules/tasks/task-types.js +6 -1
  208. package/dist/server/modules/tasks/task-types.js.map +1 -1
  209. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js +2 -1
  210. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js.map +1 -1
  211. package/dist/server/modules/terminal/runtime/node-pty-loader.d.ts +5 -0
  212. package/dist/server/modules/terminal/runtime/node-pty-loader.js +68 -0
  213. package/dist/server/modules/terminal/runtime/node-pty-loader.js.map +1 -0
  214. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js +2 -1
  215. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js.map +1 -1
  216. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js +6 -9
  217. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js.map +1 -1
  218. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js +6 -9
  219. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js.map +1 -1
  220. package/dist/server/routes/assistant.d.ts +2 -1
  221. package/dist/server/routes/assistant.js +20 -1
  222. package/dist/server/routes/assistant.js.map +1 -1
  223. package/dist/server/routes/browser-runtime.d.ts +3 -0
  224. package/dist/server/routes/browser-runtime.js +14 -0
  225. package/dist/server/routes/browser-runtime.js.map +1 -0
  226. package/dist/server/routes/document-runtime.d.ts +3 -0
  227. package/dist/server/routes/document-runtime.js +18 -0
  228. package/dist/server/routes/document-runtime.js.map +1 -0
  229. package/dist/server/routes/office.d.ts +3 -0
  230. package/dist/server/routes/office.js +16 -0
  231. package/dist/server/routes/office.js.map +1 -0
  232. package/dist/server/routes/ops-runtime.d.ts +3 -0
  233. package/dist/server/routes/ops-runtime.js +13 -0
  234. package/dist/server/routes/ops-runtime.js.map +1 -0
  235. package/dist/server/routes/presentation.d.ts +3 -0
  236. package/dist/server/routes/presentation.js +5 -0
  237. package/dist/server/routes/presentation.js.map +1 -0
  238. package/dist/server/routes/skills.js +1 -0
  239. package/dist/server/routes/skills.js.map +1 -1
  240. package/dist/server/server/create-server.d.ts +36 -0
  241. package/dist/server/server/create-server.js +215 -4
  242. package/dist/server/server/create-server.js.map +1 -1
  243. package/dist/server/server/release-manifest-sync.d.ts +1 -0
  244. package/dist/server/server/release-manifest-sync.js +2 -2
  245. package/dist/server/server/release-manifest-sync.js.map +1 -1
  246. package/dist/server/server/start-host.js +1 -1
  247. package/dist/server/server/start-host.js.map +1 -1
  248. package/dist/server/storage/repositories/auth-token-repository.js +22 -6
  249. package/dist/server/storage/repositories/auth-token-repository.js.map +1 -1
  250. package/dist/server/storage/repositories/browser-profile-repository.d.ts +18 -0
  251. package/dist/server/storage/repositories/browser-profile-repository.js +134 -0
  252. package/dist/server/storage/repositories/browser-profile-repository.js.map +1 -0
  253. package/dist/server/storage/repositories/document-comment-repository.d.ts +10 -0
  254. package/dist/server/storage/repositories/document-comment-repository.js +118 -0
  255. package/dist/server/storage/repositories/document-comment-repository.js.map +1 -0
  256. package/dist/server/storage/repositories/document-repository.d.ts +16 -0
  257. package/dist/server/storage/repositories/document-repository.js +109 -0
  258. package/dist/server/storage/repositories/document-repository.js.map +1 -0
  259. package/dist/server/storage/repositories/document-revision-repository.d.ts +10 -0
  260. package/dist/server/storage/repositories/document-revision-repository.js +79 -0
  261. package/dist/server/storage/repositories/document-revision-repository.js.map +1 -0
  262. package/dist/server/storage/repositories/document-template-repository.d.ts +13 -0
  263. package/dist/server/storage/repositories/document-template-repository.js +244 -0
  264. package/dist/server/storage/repositories/document-template-repository.js.map +1 -0
  265. package/dist/server/storage/repositories/office-approval-repository.d.ts +11 -0
  266. package/dist/server/storage/repositories/office-approval-repository.js +109 -0
  267. package/dist/server/storage/repositories/office-approval-repository.js.map +1 -0
  268. package/dist/server/storage/repositories/office-artifact-repository.d.ts +10 -0
  269. package/dist/server/storage/repositories/office-artifact-repository.js +89 -0
  270. package/dist/server/storage/repositories/office-artifact-repository.js.map +1 -0
  271. package/dist/server/storage/repositories/office-audit-event-repository.d.ts +8 -0
  272. package/dist/server/storage/repositories/office-audit-event-repository.js +54 -0
  273. package/dist/server/storage/repositories/office-audit-event-repository.js.map +1 -0
  274. package/dist/server/storage/repositories/office-connector-repository.d.ts +10 -0
  275. package/dist/server/storage/repositories/office-connector-repository.js +97 -0
  276. package/dist/server/storage/repositories/office-connector-repository.js.map +1 -0
  277. package/dist/server/storage/repositories/office-receipt-repository.d.ts +8 -0
  278. package/dist/server/storage/repositories/office-receipt-repository.js +48 -0
  279. package/dist/server/storage/repositories/office-receipt-repository.js.map +1 -0
  280. package/dist/server/storage/repositories/office-rollback-record-repository.d.ts +8 -0
  281. package/dist/server/storage/repositories/office-rollback-record-repository.js +60 -0
  282. package/dist/server/storage/repositories/office-rollback-record-repository.js.map +1 -0
  283. package/dist/server/storage/repositories/office-task-repository.d.ts +19 -0
  284. package/dist/server/storage/repositories/office-task-repository.js +199 -0
  285. package/dist/server/storage/repositories/office-task-repository.js.map +1 -0
  286. package/dist/server/storage/repositories/office-task-step-repository.d.ts +10 -0
  287. package/dist/server/storage/repositories/office-task-step-repository.js +110 -0
  288. package/dist/server/storage/repositories/office-task-step-repository.js.map +1 -0
  289. package/dist/server/storage/repositories/ops-target-repository.d.ts +16 -0
  290. package/dist/server/storage/repositories/ops-target-repository.js +119 -0
  291. package/dist/server/storage/repositories/ops-target-repository.js.map +1 -0
  292. package/dist/server/storage/repositories/session-binding-repository.d.ts +4 -0
  293. package/dist/server/storage/repositories/session-binding-repository.js +70 -69
  294. package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
  295. package/dist/server/storage/repositories/session-changed-file-repository.d.ts +6 -0
  296. package/dist/server/storage/repositories/session-changed-file-repository.js +44 -43
  297. package/dist/server/storage/repositories/session-changed-file-repository.js.map +1 -1
  298. package/dist/server/storage/repositories/session-fork-repository.d.ts +2 -0
  299. package/dist/server/storage/repositories/session-fork-repository.js +42 -41
  300. package/dist/server/storage/repositories/session-fork-repository.js.map +1 -1
  301. package/dist/server/storage/repositories/session-index-repository.d.ts +5 -0
  302. package/dist/server/storage/repositories/session-index-repository.js +153 -152
  303. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  304. package/dist/server/storage/repositories/session-message-attachment-repository.d.ts +7 -0
  305. package/dist/server/storage/repositories/session-message-attachment-repository.js +91 -90
  306. package/dist/server/storage/repositories/session-message-attachment-repository.js.map +1 -1
  307. package/dist/server/storage/repositories/session-message-origin-repository.d.ts +2 -0
  308. package/dist/server/storage/repositories/session-message-origin-repository.js +25 -24
  309. package/dist/server/storage/repositories/session-message-origin-repository.js.map +1 -1
  310. package/dist/server/storage/repositories/session-state-repository.d.ts +2 -0
  311. package/dist/server/storage/repositories/session-state-repository.js +35 -34
  312. package/dist/server/storage/repositories/session-state-repository.js.map +1 -1
  313. package/dist/server/storage/repositories/session-status-snapshot-repository.d.ts +2 -0
  314. package/dist/server/storage/repositories/session-status-snapshot-repository.js +25 -24
  315. package/dist/server/storage/repositories/session-status-snapshot-repository.js.map +1 -1
  316. package/dist/server/storage/sqlite/client.js +123 -1
  317. package/dist/server/storage/sqlite/client.js.map +1 -1
  318. package/dist/server/storage/sqlite/schema.sql +300 -1
  319. package/dist/server/types/domain.d.ts +205 -1
  320. package/package.json +14 -7
  321. package/scripts/postinstall.mjs +170 -36
  322. package/dist/public/assets/FileContextPanel-xGTYDclT.js +0 -1
  323. package/dist/public/assets/WorkbenchLayout-DScHaza9.js +0 -244
  324. package/dist/public/assets/WorkbenchShellRoute-DN6LdrqC.js +0 -1
  325. package/dist/public/assets/WorkbenchShellRoute-DhQo_0vu.css +0 -1
  326. package/dist/public/assets/file-tree-icon-lfU9Ag77.js +0 -3
  327. package/dist/public/assets/index-CFYXCsyx.css +0 -1
  328. package/dist/public/assets/index-NGxWr8Ix.js +0 -42
  329. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.d.ts +0 -42
  330. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js +0 -346
  331. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js.map +0 -1
  332. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.d.ts +0 -1
  333. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js +0 -80
  334. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js.map +0 -1
  335. package/node_modules/@codingns/session-sync-core/dist/index.d.ts +0 -18
  336. package/node_modules/@codingns/session-sync-core/dist/index.js +0 -19
  337. package/node_modules/@codingns/session-sync-core/dist/index.js.map +0 -1
  338. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.d.ts +0 -18
  339. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js +0 -659
  340. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js.map +0 -1
  341. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.d.ts +0 -11
  342. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js +0 -72
  343. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js.map +0 -1
  344. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +0 -67
  345. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +0 -752
  346. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +0 -1
  347. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +0 -48
  348. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +0 -1184
  349. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +0 -1
  350. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.d.ts +0 -11
  351. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +0 -105
  352. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +0 -1
  353. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +0 -84
  354. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +0 -2436
  355. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +0 -1
  356. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.d.ts +0 -47
  357. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +0 -1480
  358. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +0 -1
  359. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.d.ts +0 -33
  360. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js +0 -684
  361. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js.map +0 -1
  362. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.d.ts +0 -9
  363. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js +0 -17
  364. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js.map +0 -1
  365. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.d.ts +0 -1
  366. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js +0 -8
  367. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js.map +0 -1
  368. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.d.ts +0 -48
  369. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js +0 -373
  370. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js.map +0 -1
  371. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +0 -61
  372. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +0 -1191
  373. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +0 -1
  374. package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +0 -27
  375. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +0 -415
  376. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +0 -1
  377. package/node_modules/@codingns/session-sync-core/dist/registry.d.ts +0 -7
  378. package/node_modules/@codingns/session-sync-core/dist/registry.js +0 -22
  379. package/node_modules/@codingns/session-sync-core/dist/registry.js.map +0 -1
  380. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +0 -24
  381. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +0 -329
  382. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +0 -1
  383. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +0 -30
  384. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +0 -939
  385. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +0 -1
  386. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.d.ts +0 -1
  387. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +0 -16
  388. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +0 -1
  389. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +0 -70
  390. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +0 -2571
  391. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +0 -1
  392. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.d.ts +0 -21
  393. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js +0 -561
  394. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js.map +0 -1
  395. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.d.ts +0 -38
  396. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js +0 -911
  397. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js.map +0 -1
  398. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +0 -15
  399. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +0 -16
  400. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +0 -1
  401. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +0 -37
  402. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +0 -963
  403. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +0 -1
  404. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.d.ts +0 -21
  405. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +0 -168
  406. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +0 -1
  407. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +0 -152
  408. package/node_modules/@codingns/session-sync-core/dist/runtime/types.js +0 -2
  409. package/node_modules/@codingns/session-sync-core/dist/runtime/types.js.map +0 -1
  410. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +0 -28
  411. package/node_modules/@codingns/session-sync-core/dist/services.js +0 -148
  412. package/node_modules/@codingns/session-sync-core/dist/services.js.map +0 -1
  413. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.d.ts +0 -6
  414. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js +0 -9
  415. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js.map +0 -1
  416. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +0 -198
  417. package/node_modules/@codingns/session-sync-core/dist/types.js +0 -2
  418. package/node_modules/@codingns/session-sync-core/dist/types.js.map +0 -1
  419. package/node_modules/@codingns/session-sync-core/package.json +0 -33
@@ -75,6 +75,86 @@ interface AssistantDebugRuntimeHistoryQuery {
75
75
  interface AssistantWorkspaceBrowseQuery {
76
76
  path?: string;
77
77
  }
78
+ interface AssistantOfficeDocumentBody {
79
+ workspaceId?: string | null;
80
+ title?: string;
81
+ templateId?: string | null;
82
+ templateKey?: string | null;
83
+ content?: unknown;
84
+ outline?: unknown;
85
+ summary?: string | null;
86
+ }
87
+ interface AssistantOfficeDocumentUpdateBody {
88
+ title?: string | null;
89
+ templateId?: string | null;
90
+ content?: unknown;
91
+ outline?: unknown;
92
+ summary?: string | null;
93
+ status?: "draft" | "reviewing" | "published" | "archived";
94
+ }
95
+ interface AssistantOfficeDocumentExportBody {
96
+ workspaceId?: string | null;
97
+ format?: "docx" | "pdf" | "md";
98
+ riskLevel?: "low" | "medium" | "high";
99
+ execute?: boolean;
100
+ }
101
+ interface AssistantOfficeBrowserProfileQuery {
102
+ workspaceId?: string;
103
+ }
104
+ interface AssistantOfficeBrowserProfileBody {
105
+ workspaceId?: string | null;
106
+ engine?: "chrome" | "edge";
107
+ mode?: "persistent" | "cdp_attached";
108
+ displayName?: string | null;
109
+ ownershipScope?: "user" | "workspace";
110
+ cdpEndpoint?: string | null;
111
+ }
112
+ interface AssistantOfficeBrowserTaskBody {
113
+ workspaceId?: string | null;
114
+ title?: string;
115
+ profileId?: string;
116
+ riskLevel?: "low" | "medium" | "high";
117
+ executionBackend?: "playwright" | "opencli_bridge";
118
+ input?: unknown;
119
+ execute?: boolean;
120
+ }
121
+ interface AssistantOfficeOpsTargetListQuery {
122
+ workspaceId?: string;
123
+ kind?: "ssh_host" | "web_console";
124
+ status?: "active" | "disabled" | "error";
125
+ }
126
+ interface AssistantOfficeOpsTargetBody {
127
+ workspaceId?: string | null;
128
+ kind?: "ssh_host" | "web_console";
129
+ displayName?: string;
130
+ environment?: string | null;
131
+ config?: unknown;
132
+ credentialRef?: string | null;
133
+ }
134
+ interface AssistantOfficeOpsSshTaskBody {
135
+ title?: string;
136
+ targetId?: string;
137
+ riskLevel?: "low" | "medium" | "high";
138
+ input?: unknown;
139
+ execute?: boolean;
140
+ confirm?: boolean;
141
+ }
142
+ interface AssistantOfficeOpsBrowserTaskBody {
143
+ title?: string;
144
+ targetId?: string;
145
+ profileId?: string;
146
+ executionBackend?: "playwright" | "opencli_bridge";
147
+ riskLevel?: "low" | "medium" | "high";
148
+ input?: unknown;
149
+ confirm?: boolean;
150
+ }
151
+ interface AssistantOfficeTaskApprovalBody {
152
+ status?: "approved" | "rejected";
153
+ decisionNote?: string | null;
154
+ }
155
+ interface AssistantConfirmationBody {
156
+ confirm?: boolean;
157
+ }
78
158
  interface AssistantWorktreeTreeQuery {
79
159
  rootWorkspaceId?: string;
80
160
  }
@@ -105,6 +185,14 @@ interface AssistantForkBody {
105
185
  }
106
186
  interface AssistantTerminalInputBody {
107
187
  content?: string;
188
+ confirm?: boolean;
189
+ }
190
+ interface AssistantCreateTerminalBody {
191
+ workspaceId?: string | null;
192
+ projectId?: string | null;
193
+ name?: string | null;
194
+ cwd?: string | null;
195
+ shell?: string | null;
108
196
  }
109
197
  interface AssistantCreateTimerBody {
110
198
  controlSessionId?: string | null;
@@ -235,6 +323,21 @@ interface AssistantReorderWorkspacesBody {
235
323
  interface AssistantWorkspaceParams {
236
324
  workspaceId: string;
237
325
  }
326
+ interface AssistantOfficeDocumentParams {
327
+ documentId: string;
328
+ }
329
+ interface AssistantOfficeTaskParams {
330
+ taskId: string;
331
+ }
332
+ interface AssistantOfficeApprovalParams {
333
+ approvalId: string;
334
+ }
335
+ interface AssistantOfficeBrowserProfileParams {
336
+ profileId: string;
337
+ }
338
+ interface AssistantOfficeOpsTargetParams {
339
+ targetId: string;
340
+ }
238
341
  interface AssistantWorkspaceNavigationStateBody {
239
342
  collapsed?: unknown;
240
343
  backgroundColor?: unknown;
@@ -247,14 +350,17 @@ interface AssistantCreateWorktreeBody {
247
350
  }
248
351
  interface AssistantWorktreeCleanupBody {
249
352
  deleteBranch?: boolean;
353
+ confirm?: boolean;
250
354
  }
251
355
  interface AssistantAnalyzeDebugTargetBody {
252
356
  workspaceId?: string;
253
357
  rootPath?: string;
254
358
  commandHints?: unknown;
359
+ confirm?: boolean;
255
360
  }
256
361
  interface AssistantDebugTargetLaunchPlanBody {
257
362
  portRequests?: unknown;
363
+ confirm?: boolean;
258
364
  }
259
365
  interface AssistantRunDebugTargetBody extends AssistantDebugTargetLaunchPlanBody {
260
366
  shell?: string;
@@ -263,7 +369,7 @@ interface AssistantRunDebugTargetBody extends AssistantDebugTargetLaunchPlanBody
263
369
  export declare class AssistantCapabilityController {
264
370
  private readonly assistantCapabilityService;
265
371
  constructor(assistantCapabilityService: AssistantCapabilityService);
266
- readonly listCapabilities: (_request: FastifyRequest, reply: FastifyReply) => Promise<void>;
372
+ readonly listCapabilities: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
267
373
  readonly listProjects: (request: FastifyRequest<{
268
374
  Querystring: AssistantProjectListQuery;
269
375
  }>, reply: FastifyReply) => Promise<void>;
@@ -382,6 +488,9 @@ export declare class AssistantCapabilityController {
382
488
  readonly listTerminals: (request: FastifyRequest<{
383
489
  Querystring: AssistantTerminalListQuery;
384
490
  }>, reply: FastifyReply) => Promise<void>;
491
+ readonly createTerminal: (request: FastifyRequest<{
492
+ Body: AssistantCreateTerminalBody;
493
+ }>, reply: FastifyReply) => Promise<void>;
385
494
  readonly readTerminalHistory: (request: FastifyRequest<{
386
495
  Params: AssistantTerminalParams;
387
496
  Querystring: AssistantTerminalHistoryQuery;
@@ -392,6 +501,62 @@ export declare class AssistantCapabilityController {
392
501
  }>, reply: FastifyReply) => Promise<void>;
393
502
  readonly closeTerminal: (request: FastifyRequest<{
394
503
  Params: AssistantTerminalParams;
504
+ Body: AssistantConfirmationBody;
505
+ }>, reply: FastifyReply) => Promise<void>;
506
+ readonly createOfficeDocument: (request: FastifyRequest<{
507
+ Body: AssistantOfficeDocumentBody;
508
+ }>, reply: FastifyReply) => Promise<void>;
509
+ readonly updateOfficeDocument: (request: FastifyRequest<{
510
+ Params: AssistantOfficeDocumentParams;
511
+ Body: AssistantOfficeDocumentUpdateBody;
512
+ }>, reply: FastifyReply) => Promise<void>;
513
+ readonly exportOfficeDocument: (request: FastifyRequest<{
514
+ Params: AssistantOfficeDocumentParams;
515
+ Body: AssistantOfficeDocumentExportBody;
516
+ }>, reply: FastifyReply) => Promise<void>;
517
+ readonly getOfficeDocumentTask: (request: FastifyRequest<{
518
+ Params: AssistantOfficeTaskParams;
519
+ }>, reply: FastifyReply) => Promise<void>;
520
+ readonly listOfficeBrowserProfiles: (request: FastifyRequest<{
521
+ Querystring: AssistantOfficeBrowserProfileQuery;
522
+ }>, reply: FastifyReply) => Promise<void>;
523
+ readonly createOfficeBrowserProfile: (request: FastifyRequest<{
524
+ Body: AssistantOfficeBrowserProfileBody;
525
+ }>, reply: FastifyReply) => Promise<void>;
526
+ readonly getOfficeBrowserProfile: (request: FastifyRequest<{
527
+ Params: AssistantOfficeBrowserProfileParams;
528
+ }>, reply: FastifyReply) => Promise<void>;
529
+ readonly createOfficeBrowserTask: (request: FastifyRequest<{
530
+ Body: AssistantOfficeBrowserTaskBody;
531
+ }>, reply: FastifyReply) => Promise<void>;
532
+ readonly getOfficeBrowserTask: (request: FastifyRequest<{
533
+ Params: AssistantOfficeTaskParams;
534
+ }>, reply: FastifyReply) => Promise<void>;
535
+ readonly listOfficeOpsTargets: (request: FastifyRequest<{
536
+ Querystring: AssistantOfficeOpsTargetListQuery;
537
+ }>, reply: FastifyReply) => Promise<void>;
538
+ readonly createOfficeOpsTarget: (request: FastifyRequest<{
539
+ Body: AssistantOfficeOpsTargetBody;
540
+ }>, reply: FastifyReply) => Promise<void>;
541
+ readonly getOfficeOpsTarget: (request: FastifyRequest<{
542
+ Params: AssistantOfficeOpsTargetParams;
543
+ }>, reply: FastifyReply) => Promise<void>;
544
+ readonly createOfficeOpsSshTask: (request: FastifyRequest<{
545
+ Body: AssistantOfficeOpsSshTaskBody;
546
+ }>, reply: FastifyReply) => Promise<void>;
547
+ readonly executeOfficeOpsTask: (request: FastifyRequest<{
548
+ Params: AssistantOfficeTaskParams;
549
+ Body: AssistantConfirmationBody;
550
+ }>, reply: FastifyReply) => Promise<void>;
551
+ readonly replyOfficeTaskApproval: (request: FastifyRequest<{
552
+ Params: AssistantOfficeApprovalParams;
553
+ Body: AssistantOfficeTaskApprovalBody;
554
+ }>, reply: FastifyReply) => Promise<void>;
555
+ readonly createOfficeOpsBrowserTask: (request: FastifyRequest<{
556
+ Body: AssistantOfficeOpsBrowserTaskBody;
557
+ }>, reply: FastifyReply) => Promise<void>;
558
+ readonly getOfficeOpsTask: (request: FastifyRequest<{
559
+ Params: AssistantOfficeTaskParams;
395
560
  }>, reply: FastifyReply) => Promise<void>;
396
561
  readonly listWorkspaces: (_request: FastifyRequest, reply: FastifyReply) => Promise<void>;
397
562
  readonly browseWorkspaces: (request: FastifyRequest<{
@@ -430,6 +595,7 @@ export declare class AssistantCapabilityController {
430
595
  }>, reply: FastifyReply) => Promise<void>;
431
596
  readonly mergeWorktreeIntoParent: (request: FastifyRequest<{
432
597
  Params: AssistantWorkspaceParams;
598
+ Body: AssistantConfirmationBody;
433
599
  }>, reply: FastifyReply) => Promise<void>;
434
600
  readonly cleanupWorktree: (request: FastifyRequest<{
435
601
  Params: AssistantWorkspaceParams;
@@ -444,6 +610,7 @@ export declare class AssistantCapabilityController {
444
610
  }>, reply: FastifyReply) => Promise<void>;
445
611
  readonly refreshDebugFrameworkAnalysis: (request: FastifyRequest<{
446
612
  Params: AssistantDebugTargetParams;
613
+ Body: AssistantConfirmationBody;
447
614
  }>, reply: FastifyReply) => Promise<void>;
448
615
  readonly createDebugLaunchPlan: (request: FastifyRequest<{
449
616
  Params: AssistantDebugTargetParams;
@@ -5,8 +5,8 @@ export class AssistantCapabilityController {
5
5
  constructor(assistantCapabilityService) {
6
6
  this.assistantCapabilityService = assistantCapabilityService;
7
7
  }
8
- listCapabilities = async (_request, reply) => {
9
- reply.send(this.assistantCapabilityService.listCapabilities());
8
+ listCapabilities = async (request, reply) => {
9
+ reply.send(this.assistantCapabilityService.listCapabilities(readAssistantExecutionContext(request)));
10
10
  };
11
11
  listProjects = async (request, reply) => {
12
12
  reply.send(this.assistantCapabilityService.listProjects({
@@ -16,9 +16,11 @@ export class AssistantCapabilityController {
16
16
  }));
17
17
  };
18
18
  getProject = async (request, reply) => {
19
+ this.assistantCapabilityService.assertExecutionAllowed("projects.get", readAssistantExecutionContext(request), { projectId: request.params.projectId });
19
20
  reply.send(await this.assistantCapabilityService.getProject(request.params.projectId, requireUserId(request)));
20
21
  };
21
22
  listProjectSessions = async (request, reply) => {
23
+ this.assistantCapabilityService.assertExecutionAllowed("projects.sessions.list", readAssistantExecutionContext(request), { projectId: request.params.projectId });
22
24
  reply.send(await this.assistantCapabilityService.listProjectSessions(request.params.projectId, requireUserId(request)));
23
25
  };
24
26
  startProjectSession = async (request, reply) => {
@@ -44,12 +46,14 @@ export class AssistantCapabilityController {
44
46
  }));
45
47
  };
46
48
  getSession = async (request, reply) => {
49
+ this.assistantCapabilityService.assertExecutionAllowed("sessions.get", readAssistantExecutionContext(request), { sessionId: request.params.sessionId });
47
50
  reply.send(this.assistantCapabilityService.getSession(request.params.sessionId, requireUserId(request)));
48
51
  };
49
52
  deleteSession = async (request, reply) => {
50
53
  reply.send(await this.assistantCapabilityService.deleteSession(request.params.sessionId, requireUserId(request)));
51
54
  };
52
55
  listSessionMessages = async (request, reply) => {
56
+ this.assistantCapabilityService.assertExecutionAllowed("sessions.messages.list", readAssistantExecutionContext(request), { sessionId: request.params.sessionId });
53
57
  reply.send(await this.assistantCapabilityService.listSessionMessages({
54
58
  sessionId: request.params.sessionId,
55
59
  userId: requireUserId(request),
@@ -59,6 +63,7 @@ export class AssistantCapabilityController {
59
63
  }));
60
64
  };
61
65
  getSessionRuntime = async (request, reply) => {
66
+ this.assistantCapabilityService.assertExecutionAllowed("sessions.runtime.get", readAssistantExecutionContext(request), { sessionId: request.params.sessionId });
62
67
  reply.send(await this.assistantCapabilityService.getSessionRuntime(request.params.sessionId, requireUserId(request)));
63
68
  };
64
69
  sendSessionMessage = async (request, reply) => {
@@ -314,13 +319,28 @@ export class AssistantCapabilityController {
314
319
  field: "projectId"
315
320
  });
316
321
  }
322
+ this.assistantCapabilityService.assertExecutionAllowed("terminals.list", readAssistantExecutionContext(request), { projectId, workspaceId });
317
323
  reply.send(await this.assistantCapabilityService.listTerminals({
318
324
  userId: requireUserId(request),
319
325
  projectId,
320
326
  workspaceId
321
327
  }));
322
328
  };
329
+ createTerminal = async (request, reply) => {
330
+ const projectId = normalizeNullableText(request.body.projectId);
331
+ const workspaceId = normalizeNullableText(request.body.workspaceId);
332
+ this.assistantCapabilityService.assertExecutionAllowed("terminals.create", readAssistantExecutionContext(request), { projectId, workspaceId });
333
+ reply.send(await this.assistantCapabilityService.createTerminal({
334
+ userId: requireUserId(request),
335
+ projectId,
336
+ workspaceId,
337
+ name: normalizeNullableText(request.body.name),
338
+ cwd: normalizeNullableText(request.body.cwd),
339
+ shell: normalizeNullableText(request.body.shell)
340
+ }));
341
+ };
323
342
  readTerminalHistory = async (request, reply) => {
343
+ this.assistantCapabilityService.assertExecutionAllowed("terminals.history.read", readAssistantExecutionContext(request), { terminalId: request.params.terminalId });
324
344
  reply.send(await this.assistantCapabilityService.readTerminalHistory({
325
345
  terminalId: request.params.terminalId,
326
346
  beforeSeq: normalizeOptionalInteger(request.query.beforeSeq, "beforeSeq"),
@@ -328,14 +348,163 @@ export class AssistantCapabilityController {
328
348
  }));
329
349
  };
330
350
  sendTerminalInput = async (request, reply) => {
351
+ this.assistantCapabilityService.assertExecutionAllowed("terminals.input.send", readAssistantExecutionContext(request, request.body.confirm === true), { terminalId: request.params.terminalId });
331
352
  reply.send(await this.assistantCapabilityService.sendTerminalInput({
332
353
  terminalId: request.params.terminalId,
333
354
  content: requireNonEmptyText(request.body.content, "content", "终端输入必须提供 content")
334
355
  }));
335
356
  };
336
357
  closeTerminal = async (request, reply) => {
358
+ this.assistantCapabilityService.assertExecutionAllowed("terminals.close", readAssistantExecutionContext(request, request.body?.confirm === true), { terminalId: request.params.terminalId });
337
359
  reply.send(await this.assistantCapabilityService.closeTerminal(request.params.terminalId));
338
360
  };
361
+ createOfficeDocument = async (request, reply) => {
362
+ this.assistantCapabilityService.assertExecutionAllowed("office.document.create", readAssistantExecutionContext(request), { workspaceId: normalizeNullableText(request.body.workspaceId) });
363
+ reply.send(this.assistantCapabilityService.createOfficeDocument({
364
+ userId: requireUserId(request),
365
+ workspaceId: normalizeNullableText(request.body.workspaceId),
366
+ title: requireNonEmptyText(request.body.title, "title", "创建文档必须提供 title"),
367
+ templateId: normalizeNullableText(request.body.templateId),
368
+ templateKey: normalizeNullableText(request.body.templateKey),
369
+ content: request.body.content,
370
+ outline: request.body.outline,
371
+ summary: normalizeNullableText(request.body.summary)
372
+ }));
373
+ };
374
+ updateOfficeDocument = async (request, reply) => {
375
+ this.assistantCapabilityService.assertExecutionAllowed("office.document.update", readAssistantExecutionContext(request), { documentId: request.params.documentId });
376
+ reply.send(this.assistantCapabilityService.updateOfficeDocument({
377
+ userId: requireUserId(request),
378
+ documentId: request.params.documentId,
379
+ title: request.body.title === undefined ? undefined : normalizeNullableText(request.body.title),
380
+ templateId: normalizeNullableText(request.body.templateId),
381
+ content: request.body.content,
382
+ outline: request.body.outline,
383
+ summary: request.body.summary === undefined ? undefined : normalizeNullableText(request.body.summary),
384
+ status: request.body.status
385
+ }));
386
+ };
387
+ exportOfficeDocument = async (request, reply) => {
388
+ this.assistantCapabilityService.assertExecutionAllowed("office.document.export", readAssistantExecutionContext(request), {
389
+ documentId: request.params.documentId,
390
+ workspaceId: normalizeNullableText(request.body.workspaceId)
391
+ });
392
+ reply.send(await this.assistantCapabilityService.exportOfficeDocument({
393
+ userId: requireUserId(request),
394
+ documentId: request.params.documentId,
395
+ workspaceId: normalizeNullableText(request.body.workspaceId),
396
+ format: request.body.format,
397
+ riskLevel: request.body.riskLevel,
398
+ execute: typeof request.body.execute === "boolean" ? request.body.execute : undefined
399
+ }));
400
+ };
401
+ getOfficeDocumentTask = async (request, reply) => {
402
+ this.assistantCapabilityService.assertExecutionAllowed("office.document.task.get", readAssistantExecutionContext(request), { officeTaskId: request.params.taskId });
403
+ reply.send(this.assistantCapabilityService.getOfficeDocumentTask(request.params.taskId, requireUserId(request)));
404
+ };
405
+ listOfficeBrowserProfiles = async (request, reply) => {
406
+ this.assistantCapabilityService.assertExecutionAllowed("office.browser.profile.list", readAssistantExecutionContext(request), { workspaceId: normalizeNullableText(request.query.workspaceId) });
407
+ reply.send(this.assistantCapabilityService.listOfficeBrowserProfiles(requireUserId(request), normalizeNullableText(request.query.workspaceId)));
408
+ };
409
+ createOfficeBrowserProfile = async (request, reply) => {
410
+ this.assistantCapabilityService.assertExecutionAllowed("office.browser.profile.create", readAssistantExecutionContext(request), { workspaceId: normalizeNullableText(request.body.workspaceId) });
411
+ reply.send(this.assistantCapabilityService.createOfficeBrowserProfile({
412
+ userId: requireUserId(request),
413
+ workspaceId: normalizeNullableText(request.body.workspaceId),
414
+ engine: request.body.engine ?? "chrome",
415
+ mode: request.body.mode ?? "persistent",
416
+ displayName: normalizeNullableText(request.body.displayName),
417
+ ownershipScope: request.body.ownershipScope ?? undefined,
418
+ cdpEndpoint: normalizeNullableText(request.body.cdpEndpoint)
419
+ }));
420
+ };
421
+ getOfficeBrowserProfile = async (request, reply) => {
422
+ this.assistantCapabilityService.assertExecutionAllowed("office.browser.profile.get", readAssistantExecutionContext(request), { browserProfileId: request.params.profileId });
423
+ reply.send(this.assistantCapabilityService.getOfficeBrowserProfile(request.params.profileId, requireUserId(request)));
424
+ };
425
+ createOfficeBrowserTask = async (request, reply) => {
426
+ this.assistantCapabilityService.assertExecutionAllowed("office.browser.task.create", readAssistantExecutionContext(request), {
427
+ workspaceId: normalizeNullableText(request.body.workspaceId),
428
+ browserProfileId: request.body.profileId?.trim() ?? null
429
+ });
430
+ reply.send(await this.assistantCapabilityService.createOfficeBrowserTask({
431
+ userId: requireUserId(request),
432
+ workspaceId: normalizeNullableText(request.body.workspaceId),
433
+ title: request.body.title?.trim() ?? "浏览器任务",
434
+ profileId: normalizeNullableText(request.body.profileId),
435
+ riskLevel: request.body.riskLevel,
436
+ executionBackend: request.body.executionBackend,
437
+ input: request.body.input,
438
+ execute: typeof request.body.execute === "boolean" ? request.body.execute : undefined
439
+ }));
440
+ };
441
+ getOfficeBrowserTask = async (request, reply) => {
442
+ this.assistantCapabilityService.assertExecutionAllowed("office.browser.task.get", readAssistantExecutionContext(request), { officeTaskId: request.params.taskId });
443
+ reply.send(this.assistantCapabilityService.getOfficeBrowserTask(request.params.taskId, requireUserId(request)));
444
+ };
445
+ listOfficeOpsTargets = async (request, reply) => {
446
+ this.assistantCapabilityService.assertExecutionAllowed("office.ops.target.list", readAssistantExecutionContext(request), { workspaceId: normalizeNullableText(request.query.workspaceId) });
447
+ reply.send(this.assistantCapabilityService.listOfficeOpsTargets(requireUserId(request), normalizeNullableText(request.query.workspaceId), request.query.kind ?? null, request.query.status ?? null));
448
+ };
449
+ createOfficeOpsTarget = async (request, reply) => {
450
+ this.assistantCapabilityService.assertExecutionAllowed("office.ops.target.create", readAssistantExecutionContext(request), { workspaceId: normalizeNullableText(request.body.workspaceId) });
451
+ reply.send(this.assistantCapabilityService.createOfficeOpsTarget({
452
+ userId: requireUserId(request),
453
+ workspaceId: normalizeNullableText(request.body.workspaceId),
454
+ kind: request.body.kind ?? "ssh_host",
455
+ displayName: requireNonEmptyText(request.body.displayName, "displayName", "创建运维目标必须提供 displayName"),
456
+ environment: normalizeNullableText(request.body.environment),
457
+ config: request.body.config ?? {},
458
+ credentialRef: normalizeNullableText(request.body.credentialRef)
459
+ }));
460
+ };
461
+ getOfficeOpsTarget = async (request, reply) => {
462
+ this.assistantCapabilityService.assertExecutionAllowed("office.ops.target.get", readAssistantExecutionContext(request));
463
+ reply.send(this.assistantCapabilityService.getOfficeOpsTarget(request.params.targetId, requireUserId(request)));
464
+ };
465
+ createOfficeOpsSshTask = async (request, reply) => {
466
+ const requiresConfirm = request.body.execute === true;
467
+ this.assistantCapabilityService.assertExecutionAllowed("office.ops.ssh-task.create", readAssistantExecutionContext(request, requiresConfirm && request.body.confirm === true));
468
+ reply.send(await this.assistantCapabilityService.createOfficeOpsSshTask({
469
+ userId: requireUserId(request),
470
+ title: request.body.title?.trim() ?? "SSH 运维任务",
471
+ targetId: requireNonEmptyText(request.body.targetId, "targetId", "创建 SSH 运维任务必须提供 targetId"),
472
+ riskLevel: request.body.riskLevel,
473
+ input: request.body.input,
474
+ execute: typeof request.body.execute === "boolean" ? request.body.execute : undefined
475
+ }));
476
+ };
477
+ executeOfficeOpsTask = async (request, reply) => {
478
+ this.assistantCapabilityService.assertExecutionAllowed("office.ops.task.execute", readAssistantExecutionContext(request, request.body?.confirm === true), { officeTaskId: request.params.taskId });
479
+ reply.send(await this.assistantCapabilityService.executeOfficeOpsTask({
480
+ userId: requireUserId(request),
481
+ taskId: request.params.taskId
482
+ }));
483
+ };
484
+ replyOfficeTaskApproval = async (request, reply) => {
485
+ reply.send(this.assistantCapabilityService.replyOfficeTaskApproval({
486
+ userId: requireUserId(request),
487
+ approvalId: request.params.approvalId,
488
+ status: request.body.status ?? "approved",
489
+ decisionNote: normalizeNullableText(request.body.decisionNote)
490
+ }));
491
+ };
492
+ createOfficeOpsBrowserTask = async (request, reply) => {
493
+ this.assistantCapabilityService.assertExecutionAllowed("office.ops.browser-task.create", readAssistantExecutionContext(request, request.body.confirm === true), { browserProfileId: request.body.profileId?.trim() ?? null });
494
+ reply.send(this.assistantCapabilityService.createOfficeOpsBrowserTask({
495
+ userId: requireUserId(request),
496
+ title: request.body.title?.trim() ?? "浏览器运维任务",
497
+ targetId: requireNonEmptyText(request.body.targetId, "targetId", "创建浏览器运维任务必须提供 targetId"),
498
+ profileId: normalizeNullableText(request.body.profileId),
499
+ executionBackend: request.body.executionBackend,
500
+ riskLevel: request.body.riskLevel,
501
+ input: request.body.input
502
+ }));
503
+ };
504
+ getOfficeOpsTask = async (request, reply) => {
505
+ this.assistantCapabilityService.assertExecutionAllowed("office.ops.task.get", readAssistantExecutionContext(request), { officeTaskId: request.params.taskId });
506
+ reply.send(this.assistantCapabilityService.getOfficeOpsTask(request.params.taskId, requireUserId(request)));
507
+ };
339
508
  listWorkspaces = async (_request, reply) => {
340
509
  reply.send(this.assistantCapabilityService.listWorkspaces());
341
510
  };
@@ -398,23 +567,29 @@ export class AssistantCapabilityController {
398
567
  field: "rootWorkspaceId"
399
568
  });
400
569
  }
570
+ this.assistantCapabilityService.assertExecutionAllowed("worktrees.tree", readAssistantExecutionContext(request), { worktreeWorkspaceId: rootWorkspaceId });
401
571
  reply.send(await this.assistantCapabilityService.getWorktreeTree(rootWorkspaceId));
402
572
  };
403
573
  createWorktree = async (request, reply) => {
574
+ const sourceWorkspaceId = requireNonEmptyText(request.body.sourceWorkspaceId, "sourceWorkspaceId", "创建工作树必须提供 sourceWorkspaceId");
575
+ this.assistantCapabilityService.assertExecutionAllowed("worktrees.create", readAssistantExecutionContext(request), { worktreeWorkspaceId: sourceWorkspaceId });
404
576
  reply.send(await this.assistantCapabilityService.createWorktree({
405
- sourceWorkspaceId: requireNonEmptyText(request.body.sourceWorkspaceId, "sourceWorkspaceId", "创建工作树必须提供 sourceWorkspaceId"),
577
+ sourceWorkspaceId,
406
578
  branchName: requireNonEmptyText(request.body.branchName, "branchName", "创建工作树必须提供 branchName"),
407
579
  displayName: normalizeNullableText(request.body.displayName),
408
580
  baseRef: normalizeNullableText(request.body.baseRef)
409
581
  }));
410
582
  };
411
583
  getWorktreeMergePreview = async (request, reply) => {
584
+ this.assistantCapabilityService.assertExecutionAllowed("worktrees.merge-preview", readAssistantExecutionContext(request), { worktreeWorkspaceId: request.params.workspaceId });
412
585
  reply.send(await this.assistantCapabilityService.getWorktreeMergePreview(request.params.workspaceId));
413
586
  };
414
587
  mergeWorktreeIntoParent = async (request, reply) => {
588
+ this.assistantCapabilityService.assertExecutionAllowed("worktrees.merge-into-parent", readAssistantExecutionContext(request, request.body?.confirm === true), { worktreeWorkspaceId: request.params.workspaceId });
415
589
  reply.send(await this.assistantCapabilityService.mergeWorktreeIntoParent(request.params.workspaceId));
416
590
  };
417
591
  cleanupWorktree = async (request, reply) => {
592
+ this.assistantCapabilityService.assertExecutionAllowed("worktrees.cleanup", readAssistantExecutionContext(request), { worktreeWorkspaceId: request.params.workspaceId });
418
593
  reply.send(await this.assistantCapabilityService.cleanupWorktree(request.params.workspaceId, requireUserId(request), {
419
594
  deleteBranch: request.body?.deleteBranch === true
420
595
  }));
@@ -423,19 +598,24 @@ export class AssistantCapabilityController {
423
598
  reply.send(this.assistantCapabilityService.getDebugCompatibilityMatrix());
424
599
  };
425
600
  analyzeDebugTarget = async (request, reply) => {
601
+ const workspaceId = requireNonEmptyText(request.body.workspaceId, "workspaceId", "分析调试目标必须提供 workspaceId");
602
+ this.assistantCapabilityService.assertExecutionAllowed("debug-targets.analyze", readAssistantExecutionContext(request, request.body.confirm === true), { workspaceId });
426
603
  reply.send(this.assistantCapabilityService.analyzeDebugTarget({
427
- workspaceId: requireNonEmptyText(request.body.workspaceId, "workspaceId", "分析调试目标必须提供 workspaceId"),
604
+ workspaceId,
428
605
  rootPath: requireNonEmptyText(request.body.rootPath, "rootPath", "分析调试目标必须提供 rootPath"),
429
606
  commandHints: normalizeCommandHints(request.body.commandHints)
430
607
  }));
431
608
  };
432
609
  getDebugFrameworkAnalysis = async (request, reply) => {
610
+ this.assistantCapabilityService.assertExecutionAllowed("debug-targets.framework-analysis.get", readAssistantExecutionContext(request), { debugTargetId: request.params.targetId });
433
611
  reply.send(this.assistantCapabilityService.getDebugFrameworkAnalysis(request.params.targetId));
434
612
  };
435
613
  refreshDebugFrameworkAnalysis = async (request, reply) => {
614
+ this.assistantCapabilityService.assertExecutionAllowed("debug-targets.framework-analysis.refresh", readAssistantExecutionContext(request, request.body?.confirm === true), { debugTargetId: request.params.targetId });
436
615
  reply.send(this.assistantCapabilityService.refreshDebugFrameworkAnalysis(request.params.targetId));
437
616
  };
438
617
  createDebugLaunchPlan = async (request, reply) => {
618
+ this.assistantCapabilityService.assertExecutionAllowed("debug-targets.launch-plan.create", readAssistantExecutionContext(request, request.body?.confirm === true), { debugTargetId: request.params.targetId });
439
619
  reply.send(await this.assistantCapabilityService.createDebugLaunchPlan({
440
620
  targetId: request.params.targetId,
441
621
  userId: requireUserId(request),
@@ -443,6 +623,7 @@ export class AssistantCapabilityController {
443
623
  }));
444
624
  };
445
625
  runDebugTarget = async (request, reply) => {
626
+ this.assistantCapabilityService.assertExecutionAllowed("debug-targets.run", readAssistantExecutionContext(request, request.body?.confirm === true), { debugTargetId: request.params.targetId });
446
627
  reply.send(await this.assistantCapabilityService.runDebugTarget({
447
628
  targetId: request.params.targetId,
448
629
  userId: requireUserId(request),
@@ -452,15 +633,18 @@ export class AssistantCapabilityController {
452
633
  }));
453
634
  };
454
635
  getLatestDebugRuntime = async (request, reply) => {
636
+ this.assistantCapabilityService.assertExecutionAllowed("debug-targets.runtime-latest.get", readAssistantExecutionContext(request), { debugTargetId: request.params.targetId });
455
637
  reply.send(await this.assistantCapabilityService.getLatestDebugRuntime(request.params.targetId));
456
638
  };
457
639
  listDebugRuntimes = async (request, reply) => {
640
+ this.assistantCapabilityService.assertExecutionAllowed("debug-targets.runtimes.list", readAssistantExecutionContext(request), { debugTargetId: request.params.targetId });
458
641
  reply.send(await this.assistantCapabilityService.listDebugRuntimes({
459
642
  targetId: request.params.targetId,
460
643
  limit: normalizePositiveInteger(request.query.limit, 5, 50, "limit")
461
644
  }));
462
645
  };
463
646
  getDebugRuntime = async (request, reply) => {
647
+ this.assistantCapabilityService.assertExecutionAllowed("debug-runtimes.get", readAssistantExecutionContext(request), { debugRuntimeId: request.params.runtimeId });
464
648
  reply.send(await this.assistantCapabilityService.getDebugRuntime(request.params.runtimeId));
465
649
  };
466
650
  }
@@ -741,4 +925,21 @@ function normalizeDebugPortRequestRole(value) {
741
925
  field: "portRequests"
742
926
  });
743
927
  }
928
+ function readAssistantExecutionContext(request, confirmed = false) {
929
+ return {
930
+ userId: request.auth?.user.userId ?? null,
931
+ callerKind: request.auth?.callerKind ?? null,
932
+ capabilityProfile: normalizeAssistantCapabilityProfile(request.auth?.capabilityProfile),
933
+ workspaceId: request.auth?.workspaceId ?? null,
934
+ projectId: request.auth?.projectId ?? null,
935
+ sessionId: request.auth?.sessionId ?? null,
936
+ confirmationToken: confirmed ? "confirmed" : null
937
+ };
938
+ }
939
+ function normalizeAssistantCapabilityProfile(value) {
940
+ if (value === "butler-full" || value === "butler-ui" || value === "workspace-scoped") {
941
+ return value;
942
+ }
943
+ return null;
944
+ }
744
945
  //# sourceMappingURL=assistant-capability-controller.js.map