@jingyi0605/codingns 0.7.4 → 0.8.1

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 (599) 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-b7s6F_sd.js} +1 -1
  5. package/dist/public/assets/{App-tXOqoHNl.js → App-B0q8uDA-.js} +3 -3
  6. package/dist/public/assets/{BootstrapPage-DoRMz87R.js → BootstrapPage-jFfl7KNK.js} +1 -1
  7. package/dist/public/assets/{ConversationPage-DXR6Hp4O.js → ConversationPage-sj_rn4q0.js} +6 -6
  8. package/dist/public/assets/{DesktopDetachPreviewPage-Cyk-ZYCk.js → DesktopDetachPreviewPage-C5c88SOX.js} +1 -1
  9. package/dist/public/assets/{DesktopWindowPage-DNVNK3hs.js → DesktopWindowPage-BdKUZrKG.js} +1 -1
  10. package/dist/public/assets/FileContextPanel-lM5mBcfn.js +1 -0
  11. package/dist/public/assets/{GitSidebar-Cr3Z9OUI.js → GitSidebar-CmXAhyjo.js} +2 -2
  12. package/dist/public/assets/{MobileCreateSessionSheet-DMW0V6GJ.js → MobileCreateSessionSheet-CceV0-AH.js} +1 -1
  13. package/dist/public/assets/{MobileTopHeaderFrame-CkdnZ_MU.js → MobileTopHeaderFrame-_I0t7cC_.js} +1 -1
  14. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-KIbqBYJN.js → MobileWorkspaceSwitcherHeader-DhaM9fgx.js} +1 -1
  15. package/dist/public/assets/{RelayConnectEntryPage-DIRBH3hw.js → RelayConnectEntryPage-CMtDWyGS.js} +1 -1
  16. package/dist/public/assets/{ServerSettingsModal-C-9RxdWP.js → ServerSettingsModal-Rkgn3jft.js} +1 -1
  17. package/dist/public/assets/{SessionIndexPage-bRlIydRA.js → SessionIndexPage-BOumP3ij.js} +1 -1
  18. package/dist/public/assets/{SettingsPage-CMEt4ua9.js → SettingsPage-vx_c-00-.js} +2 -2
  19. package/dist/public/assets/{TerminalManagerPanel-2bi9wVhT.js → TerminalManagerPanel-D9JHCS6d.js} +1 -1
  20. package/dist/public/assets/{TerminalPage-DayZz2Tf.js → TerminalPage-CBIKHI33.js} +1 -1
  21. package/dist/public/assets/{TerminalRuntimeFallbackModal-DgwYcp-Y.js → TerminalRuntimeFallbackModal-W5NjqFEz.js} +1 -1
  22. package/dist/public/assets/{ToolFilesPage-YvnP_FXW.js → ToolFilesPage-DWtpaN_7.js} +1 -1
  23. package/dist/public/assets/{ToolGitPage-GMcQKtV9.js → ToolGitPage-MpGXsw4_.js} +1 -1
  24. package/dist/public/assets/{ToolProcessesPage-DFIQ7BCd.js → ToolProcessesPage-B1jHQKhZ.js} +1 -1
  25. package/dist/public/assets/{ToolsHomePage-CSilFzXR.js → ToolsHomePage-CJrn8ZFl.js} +1 -1
  26. package/dist/public/assets/{WorkbenchLandingPage-1VtToSz9.js → WorkbenchLandingPage-CJQ1V5U-.js} +1 -1
  27. package/dist/public/assets/WorkbenchLayout-D48i71PU.js +244 -0
  28. package/dist/public/assets/{WorkbenchModal-BWXYSXmC.js → WorkbenchModal-BYNuMIoV.js} +1 -1
  29. package/dist/public/assets/WorkbenchShellRoute-B4XB8SwG.css +1 -0
  30. package/dist/public/assets/WorkbenchShellRoute-CGKjy4J-.js +1 -0
  31. package/dist/public/assets/{WorkspaceDebugDetailPage-Ux8_Q7la.js → WorkspaceDebugDetailPage-DCAYgays.js} +1 -1
  32. package/dist/public/assets/{WorkspaceDetailPage-B402p99m.js → WorkspaceDetailPage-D5v-nUIi.js} +1 -1
  33. package/dist/public/assets/{WorkspaceHomePage-D2pob6HI.js → WorkspaceHomePage-I5G1p5SR.js} +1 -1
  34. package/dist/public/assets/{client-runtime-manager-C5D76ewj.js → client-runtime-manager-CdJP7nUp.js} +1 -1
  35. package/dist/public/assets/file-tree-icon-BFwaPxKs.js +590 -0
  36. package/dist/public/assets/index-CjewzOUG.js +42 -0
  37. package/dist/public/assets/index-VVxfF0s5.css +1 -0
  38. package/dist/public/assets/{login-direct-candidate-resolver-wXSaB0i7.js → login-direct-candidate-resolver-C-mo698r.js} +1 -1
  39. package/dist/public/assets/{model-switch-api-CPtou49j.js → model-switch-api-Br0ivfe5.js} +1 -1
  40. package/dist/public/assets/{preferences-service-CdaK7zA8.js → preferences-service-CnaTvZq2.js} +1 -1
  41. package/dist/public/assets/{realtime-client-BjQazYsK.js → realtime-client-BlQRqVmm.js} +1 -1
  42. package/dist/public/assets/{relay-entry-BwE5nw0l.js → relay-entry-D7OgZZN-.js} +1 -1
  43. package/dist/public/assets/{terminal-runtime-meta-C-Lbyx2i.js → terminal-runtime-meta-BCtAYB0E.js} +1 -1
  44. package/dist/public/assets/{useRegisteredDebugTemplates-BM7-c-gx.js → useRegisteredDebugTemplates-CXmxu69X.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/main.js +2 -0
  53. package/dist/server/main.js.map +1 -1
  54. package/dist/server/middlewares/auth-guard.js +4 -0
  55. package/dist/server/middlewares/auth-guard.js.map +1 -1
  56. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +169 -1
  57. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +206 -4
  58. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  59. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +297 -2
  60. package/dist/server/modules/assistant-capability/assistant-capability-service.js +873 -3
  61. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  62. package/dist/server/modules/auth/auth-service.d.ts +21 -1
  63. package/dist/server/modules/auth/auth-service.js +64 -0
  64. package/dist/server/modules/auth/auth-service.js.map +1 -1
  65. package/dist/server/modules/browser-runtime/browser-profile-service.d.ts +26 -0
  66. package/dist/server/modules/browser-runtime/browser-profile-service.js +85 -0
  67. package/dist/server/modules/browser-runtime/browser-profile-service.js.map +1 -0
  68. package/dist/server/modules/browser-runtime/browser-runtime-controller.d.ts +70 -0
  69. package/dist/server/modules/browser-runtime/browser-runtime-controller.js +84 -0
  70. package/dist/server/modules/browser-runtime/browser-runtime-controller.js.map +1 -0
  71. package/dist/server/modules/browser-runtime/browser-runtime-service.d.ts +59 -0
  72. package/dist/server/modules/browser-runtime/browser-runtime-service.js +255 -0
  73. package/dist/server/modules/browser-runtime/browser-runtime-service.js.map +1 -0
  74. package/dist/server/modules/browser-runtime/browser-task-execution-support.d.ts +65 -0
  75. package/dist/server/modules/browser-runtime/browser-task-execution-support.js +432 -0
  76. package/dist/server/modules/browser-runtime/browser-task-execution-support.js.map +1 -0
  77. package/dist/server/modules/browser-runtime/browser-task-executor-registry.d.ts +7 -0
  78. package/dist/server/modules/browser-runtime/browser-task-executor-registry.js +21 -0
  79. package/dist/server/modules/browser-runtime/browser-task-executor-registry.js.map +1 -0
  80. package/dist/server/modules/browser-runtime/browser-task-executor.d.ts +55 -0
  81. package/dist/server/modules/browser-runtime/browser-task-executor.js +2 -0
  82. package/dist/server/modules/browser-runtime/browser-task-executor.js.map +1 -0
  83. package/dist/server/modules/browser-runtime/browser-task-payload.d.ts +33 -0
  84. package/dist/server/modules/browser-runtime/browser-task-payload.js +55 -0
  85. package/dist/server/modules/browser-runtime/browser-task-payload.js.map +1 -0
  86. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.d.ts +19 -0
  87. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js +219 -0
  88. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js.map +1 -0
  89. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.d.ts +15 -0
  90. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.js +33 -0
  91. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.js.map +1 -0
  92. package/dist/server/modules/browser-runtime/playwright-browser-executor.d.ts +16 -0
  93. package/dist/server/modules/browser-runtime/playwright-browser-executor.js +272 -0
  94. package/dist/server/modules/browser-runtime/playwright-browser-executor.js.map +1 -0
  95. package/dist/server/modules/butler/butler-auth-service.js +4 -0
  96. package/dist/server/modules/butler/butler-auth-service.js.map +1 -1
  97. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js +1 -0
  98. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js.map +1 -1
  99. package/dist/server/modules/butler/butler-session-summary-service.d.ts +1 -0
  100. package/dist/server/modules/butler/butler-session-summary-service.js +5 -3
  101. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  102. package/dist/server/modules/butler/butler-workspace-context.js +23 -0
  103. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  104. package/dist/server/modules/debug-target/debug-target-service.d.ts +2 -0
  105. package/dist/server/modules/debug-target/debug-target-service.js +14 -0
  106. package/dist/server/modules/debug-target/debug-target-service.js.map +1 -1
  107. package/dist/server/modules/document-runtime/document-docx-fallback-renderer.py +139 -0
  108. package/dist/server/modules/document-runtime/document-export-executor.d.ts +50 -0
  109. package/dist/server/modules/document-runtime/document-export-executor.js +827 -0
  110. package/dist/server/modules/document-runtime/document-export-executor.js.map +1 -0
  111. package/dist/server/modules/document-runtime/document-runtime-controller.d.ts +127 -0
  112. package/dist/server/modules/document-runtime/document-runtime-controller.js +131 -0
  113. package/dist/server/modules/document-runtime/document-runtime-controller.js.map +1 -0
  114. package/dist/server/modules/document-runtime/document-runtime-service.d.ts +125 -0
  115. package/dist/server/modules/document-runtime/document-runtime-service.js +706 -0
  116. package/dist/server/modules/document-runtime/document-runtime-service.js.map +1 -0
  117. package/dist/server/modules/git/git-command-helper-process.js +0 -18
  118. package/dist/server/modules/git/git-command-helper-process.js.map +1 -1
  119. package/dist/server/modules/git/git-command-runner.js +0 -18
  120. package/dist/server/modules/git/git-command-runner.js.map +1 -1
  121. package/dist/server/modules/office/office-controller.d.ts +77 -0
  122. package/dist/server/modules/office/office-controller.js +174 -0
  123. package/dist/server/modules/office/office-controller.js.map +1 -0
  124. package/dist/server/modules/office/office-preview-link-service.d.ts +27 -0
  125. package/dist/server/modules/office/office-preview-link-service.js +121 -0
  126. package/dist/server/modules/office/office-preview-link-service.js.map +1 -0
  127. package/dist/server/modules/office/office-service.d.ts +67 -0
  128. package/dist/server/modules/office/office-service.js +359 -0
  129. package/dist/server/modules/office/office-service.js.map +1 -0
  130. package/dist/server/modules/opencli/opencli-bridge-skill-service.js +38 -14
  131. package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -1
  132. package/dist/server/modules/opencli/opencli-install-discovery.d.ts +4 -0
  133. package/dist/server/modules/opencli/opencli-install-discovery.js +94 -0
  134. package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -1
  135. package/dist/server/modules/opencli/opencli-runtime-builder.js +29 -0
  136. package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -1
  137. package/dist/server/modules/opencli/opencli-runtime-guard.d.ts +2 -0
  138. package/dist/server/modules/opencli/opencli-runtime-guard.js +5 -0
  139. package/dist/server/modules/opencli/opencli-runtime-guard.js.map +1 -0
  140. package/dist/server/modules/ops-runtime/ops-runtime-controller.d.ts +70 -0
  141. package/dist/server/modules/ops-runtime/ops-runtime-controller.js +83 -0
  142. package/dist/server/modules/ops-runtime/ops-runtime-controller.js.map +1 -0
  143. package/dist/server/modules/ops-runtime/ops-runtime-service.d.ts +80 -0
  144. package/dist/server/modules/ops-runtime/ops-runtime-service.js +327 -0
  145. package/dist/server/modules/ops-runtime/ops-runtime-service.js.map +1 -0
  146. package/dist/server/modules/ops-runtime/ssh-ops-executor.d.ts +41 -0
  147. package/dist/server/modules/ops-runtime/ssh-ops-executor.js +478 -0
  148. package/dist/server/modules/ops-runtime/ssh-ops-executor.js.map +1 -0
  149. package/dist/server/modules/presentation/presentation-controller.d.ts +22 -0
  150. package/dist/server/modules/presentation/presentation-controller.js +59 -0
  151. package/dist/server/modules/presentation/presentation-controller.js.map +1 -0
  152. package/dist/server/modules/presentation/presentation-export-task-service.d.ts +24 -0
  153. package/dist/server/modules/presentation/presentation-export-task-service.js +137 -0
  154. package/dist/server/modules/presentation/presentation-export-task-service.js.map +1 -0
  155. package/dist/server/modules/presentation/presentation-export-types.d.ts +12 -0
  156. package/dist/server/modules/presentation/presentation-export-types.js +2 -0
  157. package/dist/server/modules/presentation/presentation-export-types.js.map +1 -0
  158. package/dist/server/modules/presentation/presentation-pdf-export-service.d.ts +20 -0
  159. package/dist/server/modules/presentation/presentation-pdf-export-service.js +29 -0
  160. package/dist/server/modules/presentation/presentation-pdf-export-service.js.map +1 -0
  161. package/dist/server/modules/presentation/presentation-pptx-export-service.d.ts +20 -0
  162. package/dist/server/modules/presentation/presentation-pptx-export-service.js +64 -0
  163. package/dist/server/modules/presentation/presentation-pptx-export-service.js.map +1 -0
  164. package/dist/server/modules/presentation/presentation-renderer.d.ts +21 -0
  165. package/dist/server/modules/presentation/presentation-renderer.js +208 -0
  166. package/dist/server/modules/presentation/presentation-renderer.js.map +1 -0
  167. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js +3 -3
  168. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js.map +1 -1
  169. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js +6 -1
  170. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js.map +1 -1
  171. package/dist/server/modules/sessions/codex-app-server-helper-process.js +2 -1
  172. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  173. package/dist/server/modules/sessions/session-controller.d.ts +1 -0
  174. package/dist/server/modules/sessions/session-controller.js +59 -4
  175. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  176. package/dist/server/modules/sessions/session-history-service.js +17 -5
  177. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  178. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +5 -1
  179. package/dist/server/modules/sessions/session-live-runtime-service.js +129 -8
  180. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  181. package/dist/server/modules/sessions/session-provider-config-service.d.ts +25 -1
  182. package/dist/server/modules/sessions/session-provider-config-service.js +54 -5
  183. package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
  184. package/dist/server/modules/sessions/workspace-office-mcp-config.d.ts +14 -0
  185. package/dist/server/modules/sessions/workspace-office-mcp-config.js +54 -0
  186. package/dist/server/modules/sessions/workspace-office-mcp-config.js.map +1 -0
  187. package/dist/server/modules/sessions/workspace-session-auth-service.d.ts +27 -0
  188. package/dist/server/modules/sessions/workspace-session-auth-service.js +109 -0
  189. package/dist/server/modules/sessions/workspace-session-auth-service.js.map +1 -0
  190. package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +51 -0
  191. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +341 -0
  192. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -0
  193. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js +5 -0
  194. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js.map +1 -1
  195. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/SKILL.md +67 -0
  196. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/agents/openai.yaml +4 -0
  197. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/references/cli-workflow.md +133 -0
  198. package/dist/server/modules/skills/skill-controller.d.ts +7 -0
  199. package/dist/server/modules/skills/skill-controller.js +7 -0
  200. package/dist/server/modules/skills/skill-controller.js.map +1 -1
  201. package/dist/server/modules/skills/skill-manager-service.d.ts +61 -0
  202. package/dist/server/modules/skills/skill-manager-service.js +218 -0
  203. package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
  204. package/dist/server/modules/skills/skill-name-policy.js +2 -1
  205. package/dist/server/modules/skills/skill-name-policy.js.map +1 -1
  206. package/dist/server/modules/tasks/task-helper-client.d.ts +1 -0
  207. package/dist/server/modules/tasks/task-helper-client.js +45 -9
  208. package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
  209. package/dist/server/modules/tasks/task-types.d.ts +5 -0
  210. package/dist/server/modules/tasks/task-types.js +6 -1
  211. package/dist/server/modules/tasks/task-types.js.map +1 -1
  212. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js +2 -1
  213. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js.map +1 -1
  214. package/dist/server/modules/terminal/runtime/node-pty-loader.d.ts +5 -0
  215. package/dist/server/modules/terminal/runtime/node-pty-loader.js +68 -0
  216. package/dist/server/modules/terminal/runtime/node-pty-loader.js.map +1 -0
  217. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js +2 -1
  218. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js.map +1 -1
  219. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js +6 -9
  220. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js.map +1 -1
  221. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js +6 -9
  222. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js.map +1 -1
  223. package/dist/server/routes/assistant.d.ts +2 -1
  224. package/dist/server/routes/assistant.js +20 -1
  225. package/dist/server/routes/assistant.js.map +1 -1
  226. package/dist/server/routes/browser-runtime.d.ts +3 -0
  227. package/dist/server/routes/browser-runtime.js +14 -0
  228. package/dist/server/routes/browser-runtime.js.map +1 -0
  229. package/dist/server/routes/document-runtime.d.ts +3 -0
  230. package/dist/server/routes/document-runtime.js +18 -0
  231. package/dist/server/routes/document-runtime.js.map +1 -0
  232. package/dist/server/routes/office.d.ts +3 -0
  233. package/dist/server/routes/office.js +16 -0
  234. package/dist/server/routes/office.js.map +1 -0
  235. package/dist/server/routes/ops-runtime.d.ts +3 -0
  236. package/dist/server/routes/ops-runtime.js +13 -0
  237. package/dist/server/routes/ops-runtime.js.map +1 -0
  238. package/dist/server/routes/presentation.d.ts +3 -0
  239. package/dist/server/routes/presentation.js +5 -0
  240. package/dist/server/routes/presentation.js.map +1 -0
  241. package/dist/server/routes/skills.js +1 -0
  242. package/dist/server/routes/skills.js.map +1 -1
  243. package/dist/server/server/create-server.d.ts +36 -0
  244. package/dist/server/server/create-server.js +215 -4
  245. package/dist/server/server/create-server.js.map +1 -1
  246. package/dist/server/server/release-manifest-sync.d.ts +1 -0
  247. package/dist/server/server/release-manifest-sync.js +2 -2
  248. package/dist/server/server/release-manifest-sync.js.map +1 -1
  249. package/dist/server/server/start-host.js +1 -1
  250. package/dist/server/server/start-host.js.map +1 -1
  251. package/dist/server/shared/http/error-handler.js +53 -19
  252. package/dist/server/shared/http/error-handler.js.map +1 -1
  253. package/dist/server/shared/utils/install-console-timestamp-prefix.d.ts +1 -0
  254. package/dist/server/shared/utils/install-console-timestamp-prefix.js +28 -0
  255. package/dist/server/shared/utils/install-console-timestamp-prefix.js.map +1 -0
  256. package/dist/server/storage/repositories/auth-token-repository.js +22 -6
  257. package/dist/server/storage/repositories/auth-token-repository.js.map +1 -1
  258. package/dist/server/storage/repositories/browser-profile-repository.d.ts +18 -0
  259. package/dist/server/storage/repositories/browser-profile-repository.js +134 -0
  260. package/dist/server/storage/repositories/browser-profile-repository.js.map +1 -0
  261. package/dist/server/storage/repositories/document-comment-repository.d.ts +10 -0
  262. package/dist/server/storage/repositories/document-comment-repository.js +118 -0
  263. package/dist/server/storage/repositories/document-comment-repository.js.map +1 -0
  264. package/dist/server/storage/repositories/document-repository.d.ts +16 -0
  265. package/dist/server/storage/repositories/document-repository.js +109 -0
  266. package/dist/server/storage/repositories/document-repository.js.map +1 -0
  267. package/dist/server/storage/repositories/document-revision-repository.d.ts +10 -0
  268. package/dist/server/storage/repositories/document-revision-repository.js +79 -0
  269. package/dist/server/storage/repositories/document-revision-repository.js.map +1 -0
  270. package/dist/server/storage/repositories/document-template-repository.d.ts +13 -0
  271. package/dist/server/storage/repositories/document-template-repository.js +244 -0
  272. package/dist/server/storage/repositories/document-template-repository.js.map +1 -0
  273. package/dist/server/storage/repositories/office-approval-repository.d.ts +11 -0
  274. package/dist/server/storage/repositories/office-approval-repository.js +109 -0
  275. package/dist/server/storage/repositories/office-approval-repository.js.map +1 -0
  276. package/dist/server/storage/repositories/office-artifact-repository.d.ts +10 -0
  277. package/dist/server/storage/repositories/office-artifact-repository.js +89 -0
  278. package/dist/server/storage/repositories/office-artifact-repository.js.map +1 -0
  279. package/dist/server/storage/repositories/office-audit-event-repository.d.ts +8 -0
  280. package/dist/server/storage/repositories/office-audit-event-repository.js +54 -0
  281. package/dist/server/storage/repositories/office-audit-event-repository.js.map +1 -0
  282. package/dist/server/storage/repositories/office-connector-repository.d.ts +10 -0
  283. package/dist/server/storage/repositories/office-connector-repository.js +97 -0
  284. package/dist/server/storage/repositories/office-connector-repository.js.map +1 -0
  285. package/dist/server/storage/repositories/office-receipt-repository.d.ts +8 -0
  286. package/dist/server/storage/repositories/office-receipt-repository.js +48 -0
  287. package/dist/server/storage/repositories/office-receipt-repository.js.map +1 -0
  288. package/dist/server/storage/repositories/office-rollback-record-repository.d.ts +8 -0
  289. package/dist/server/storage/repositories/office-rollback-record-repository.js +60 -0
  290. package/dist/server/storage/repositories/office-rollback-record-repository.js.map +1 -0
  291. package/dist/server/storage/repositories/office-task-repository.d.ts +19 -0
  292. package/dist/server/storage/repositories/office-task-repository.js +199 -0
  293. package/dist/server/storage/repositories/office-task-repository.js.map +1 -0
  294. package/dist/server/storage/repositories/office-task-step-repository.d.ts +10 -0
  295. package/dist/server/storage/repositories/office-task-step-repository.js +110 -0
  296. package/dist/server/storage/repositories/office-task-step-repository.js.map +1 -0
  297. package/dist/server/storage/repositories/ops-target-repository.d.ts +16 -0
  298. package/dist/server/storage/repositories/ops-target-repository.js +119 -0
  299. package/dist/server/storage/repositories/ops-target-repository.js.map +1 -0
  300. package/dist/server/storage/repositories/session-binding-repository.d.ts +4 -0
  301. package/dist/server/storage/repositories/session-binding-repository.js +70 -69
  302. package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
  303. package/dist/server/storage/repositories/session-changed-file-repository.d.ts +6 -0
  304. package/dist/server/storage/repositories/session-changed-file-repository.js +44 -43
  305. package/dist/server/storage/repositories/session-changed-file-repository.js.map +1 -1
  306. package/dist/server/storage/repositories/session-fork-repository.d.ts +2 -0
  307. package/dist/server/storage/repositories/session-fork-repository.js +42 -41
  308. package/dist/server/storage/repositories/session-fork-repository.js.map +1 -1
  309. package/dist/server/storage/repositories/session-index-repository.d.ts +5 -0
  310. package/dist/server/storage/repositories/session-index-repository.js +153 -152
  311. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  312. package/dist/server/storage/repositories/session-message-attachment-repository.d.ts +7 -0
  313. package/dist/server/storage/repositories/session-message-attachment-repository.js +91 -90
  314. package/dist/server/storage/repositories/session-message-attachment-repository.js.map +1 -1
  315. package/dist/server/storage/repositories/session-message-origin-repository.d.ts +2 -0
  316. package/dist/server/storage/repositories/session-message-origin-repository.js +25 -24
  317. package/dist/server/storage/repositories/session-message-origin-repository.js.map +1 -1
  318. package/dist/server/storage/repositories/session-state-repository.d.ts +2 -0
  319. package/dist/server/storage/repositories/session-state-repository.js +35 -34
  320. package/dist/server/storage/repositories/session-state-repository.js.map +1 -1
  321. package/dist/server/storage/repositories/session-status-snapshot-repository.d.ts +2 -0
  322. package/dist/server/storage/repositories/session-status-snapshot-repository.js +25 -24
  323. package/dist/server/storage/repositories/session-status-snapshot-repository.js.map +1 -1
  324. package/dist/server/storage/sqlite/client.js +123 -1
  325. package/dist/server/storage/sqlite/client.js.map +1 -1
  326. package/dist/server/storage/sqlite/schema.sql +300 -1
  327. package/dist/server/types/domain.d.ts +205 -1
  328. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +3 -2
  329. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +26 -19
  330. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
  331. package/package.json +17 -8
  332. package/scripts/postinstall.mjs +159 -7
  333. package/vendor/node-pty-fork/LICENSE +69 -0
  334. package/vendor/node-pty-fork/README.md +91 -0
  335. package/vendor/node-pty-fork/binding.gyp +117 -0
  336. package/vendor/node-pty-fork/deps/.editorconfig +2 -0
  337. package/vendor/node-pty-fork/deps/winpty/.drone.yml +17 -0
  338. package/vendor/node-pty-fork/deps/winpty/.gitattributes +19 -0
  339. package/vendor/node-pty-fork/deps/winpty/LICENSE +21 -0
  340. package/vendor/node-pty-fork/deps/winpty/Makefile +166 -0
  341. package/vendor/node-pty-fork/deps/winpty/README.md +151 -0
  342. package/vendor/node-pty-fork/deps/winpty/RELEASES.md +280 -0
  343. package/vendor/node-pty-fork/deps/winpty/VERSION.txt +1 -0
  344. package/vendor/node-pty-fork/deps/winpty/configure +167 -0
  345. package/vendor/node-pty-fork/deps/winpty/misc/BufferResizeTests.cc +90 -0
  346. package/vendor/node-pty-fork/deps/winpty/misc/ChangeScreenBuffer.cc +53 -0
  347. package/vendor/node-pty-fork/deps/winpty/misc/ClearConsole.cc +72 -0
  348. package/vendor/node-pty-fork/deps/winpty/misc/ConinMode.cc +117 -0
  349. package/vendor/node-pty-fork/deps/winpty/misc/ConinMode.ps1 +116 -0
  350. package/vendor/node-pty-fork/deps/winpty/misc/ConoutMode.cc +113 -0
  351. package/vendor/node-pty-fork/deps/winpty/misc/DebugClient.py +42 -0
  352. package/vendor/node-pty-fork/deps/winpty/misc/DebugServer.py +63 -0
  353. package/vendor/node-pty-fork/deps/winpty/misc/DumpLines.py +5 -0
  354. package/vendor/node-pty-fork/deps/winpty/misc/EnableExtendedFlags.txt +46 -0
  355. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +528 -0
  356. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +633 -0
  357. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP932.txt +630 -0
  358. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP936.txt +630 -0
  359. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP949.txt +630 -0
  360. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/CP950.txt +630 -0
  361. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +16 -0
  362. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/Results.txt +4 -0
  363. package/vendor/node-pty-fork/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +144 -0
  364. package/vendor/node-pty-fork/deps/winpty/misc/FontSurvey.cc +100 -0
  365. package/vendor/node-pty-fork/deps/winpty/misc/FormatChar.h +21 -0
  366. package/vendor/node-pty-fork/deps/winpty/misc/FreezePerfTest.cc +62 -0
  367. package/vendor/node-pty-fork/deps/winpty/misc/GetCh.cc +20 -0
  368. package/vendor/node-pty-fork/deps/winpty/misc/GetConsolePos.cc +41 -0
  369. package/vendor/node-pty-fork/deps/winpty/misc/GetFont.cc +261 -0
  370. package/vendor/node-pty-fork/deps/winpty/misc/IdentifyConsoleWindow.ps1 +51 -0
  371. package/vendor/node-pty-fork/deps/winpty/misc/IsNewConsole.cc +87 -0
  372. package/vendor/node-pty-fork/deps/winpty/misc/MouseInputNotes.txt +90 -0
  373. package/vendor/node-pty-fork/deps/winpty/misc/MoveConsoleWindow.cc +34 -0
  374. package/vendor/node-pty-fork/deps/winpty/misc/Notes.txt +219 -0
  375. package/vendor/node-pty-fork/deps/winpty/misc/OSVersion.cc +27 -0
  376. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferFreezeInactive.cc +101 -0
  377. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferTest.cc +671 -0
  378. package/vendor/node-pty-fork/deps/winpty/misc/ScreenBufferTest2.cc +151 -0
  379. package/vendor/node-pty-fork/deps/winpty/misc/SelectAllTest.cc +45 -0
  380. package/vendor/node-pty-fork/deps/winpty/misc/SetBufferSize.cc +32 -0
  381. package/vendor/node-pty-fork/deps/winpty/misc/SetCursorPos.cc +10 -0
  382. package/vendor/node-pty-fork/deps/winpty/misc/SetFont.cc +145 -0
  383. package/vendor/node-pty-fork/deps/winpty/misc/SetWindowRect.cc +36 -0
  384. package/vendor/node-pty-fork/deps/winpty/misc/ShowArgv.cc +12 -0
  385. package/vendor/node-pty-fork/deps/winpty/misc/ShowConsoleInput.cc +40 -0
  386. package/vendor/node-pty-fork/deps/winpty/misc/Spew.py +5 -0
  387. package/vendor/node-pty-fork/deps/winpty/misc/TestUtil.cc +172 -0
  388. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeDoubleWidthTest.cc +102 -0
  389. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeWideTest1.cc +246 -0
  390. package/vendor/node-pty-fork/deps/winpty/misc/UnicodeWideTest2.cc +130 -0
  391. package/vendor/node-pty-fork/deps/winpty/misc/UnixEcho.cc +89 -0
  392. package/vendor/node-pty-fork/deps/winpty/misc/Utf16Echo.cc +46 -0
  393. package/vendor/node-pty-fork/deps/winpty/misc/VeryLargeRead.cc +122 -0
  394. package/vendor/node-pty-fork/deps/winpty/misc/VkEscapeTest.cc +56 -0
  395. package/vendor/node-pty-fork/deps/winpty/misc/Win10ResizeWhileFrozen.cc +52 -0
  396. package/vendor/node-pty-fork/deps/winpty/misc/Win10WrapTest1.cc +57 -0
  397. package/vendor/node-pty-fork/deps/winpty/misc/Win10WrapTest2.cc +30 -0
  398. package/vendor/node-pty-fork/deps/winpty/misc/Win32Echo1.cc +26 -0
  399. package/vendor/node-pty-fork/deps/winpty/misc/Win32Echo2.cc +19 -0
  400. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test1.cc +46 -0
  401. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test2.cc +70 -0
  402. package/vendor/node-pty-fork/deps/winpty/misc/Win32Test3.cc +78 -0
  403. package/vendor/node-pty-fork/deps/winpty/misc/Win32Write1.cc +44 -0
  404. package/vendor/node-pty-fork/deps/winpty/misc/WindowsBugCrashReader.cc +27 -0
  405. package/vendor/node-pty-fork/deps/winpty/misc/WriteConsole.cc +106 -0
  406. package/vendor/node-pty-fork/deps/winpty/misc/build32.sh +9 -0
  407. package/vendor/node-pty-fork/deps/winpty/misc/build64.sh +9 -0
  408. package/vendor/node-pty-fork/deps/winpty/misc/color-test.sh +212 -0
  409. package/vendor/node-pty-fork/deps/winpty/misc/font-notes.txt +300 -0
  410. package/vendor/node-pty-fork/deps/winpty/misc/winbug-15048.cc +201 -0
  411. package/vendor/node-pty-fork/deps/winpty/ship/build-pty4j-libpty.bat +36 -0
  412. package/vendor/node-pty-fork/deps/winpty/ship/common_ship.py +53 -0
  413. package/vendor/node-pty-fork/deps/winpty/ship/make_msvc_package.py +165 -0
  414. package/vendor/node-pty-fork/deps/winpty/ship/ship.py +108 -0
  415. package/vendor/node-pty-fork/deps/winpty/src/agent/Agent.cc +605 -0
  416. package/vendor/node-pty-fork/deps/winpty/src/agent/Agent.h +103 -0
  417. package/vendor/node-pty-fork/deps/winpty/src/agent/AgentCreateDesktop.cc +84 -0
  418. package/vendor/node-pty-fork/deps/winpty/src/agent/AgentCreateDesktop.h +28 -0
  419. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleFont.cc +632 -0
  420. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleFont.h +28 -0
  421. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInput.cc +852 -0
  422. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInput.h +109 -0
  423. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInputReencoding.cc +121 -0
  424. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleInputReencoding.h +36 -0
  425. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleLine.cc +152 -0
  426. package/vendor/node-pty-fork/deps/winpty/src/agent/ConsoleLine.h +41 -0
  427. package/vendor/node-pty-fork/deps/winpty/src/agent/Coord.h +87 -0
  428. package/vendor/node-pty-fork/deps/winpty/src/agent/DebugShowInput.cc +239 -0
  429. package/vendor/node-pty-fork/deps/winpty/src/agent/DebugShowInput.h +32 -0
  430. package/vendor/node-pty-fork/deps/winpty/src/agent/DefaultInputMap.cc +422 -0
  431. package/vendor/node-pty-fork/deps/winpty/src/agent/DefaultInputMap.h +28 -0
  432. package/vendor/node-pty-fork/deps/winpty/src/agent/DsrSender.h +30 -0
  433. package/vendor/node-pty-fork/deps/winpty/src/agent/EventLoop.cc +99 -0
  434. package/vendor/node-pty-fork/deps/winpty/src/agent/EventLoop.h +47 -0
  435. package/vendor/node-pty-fork/deps/winpty/src/agent/InputMap.cc +246 -0
  436. package/vendor/node-pty-fork/deps/winpty/src/agent/InputMap.h +114 -0
  437. package/vendor/node-pty-fork/deps/winpty/src/agent/LargeConsoleRead.cc +71 -0
  438. package/vendor/node-pty-fork/deps/winpty/src/agent/LargeConsoleRead.h +68 -0
  439. package/vendor/node-pty-fork/deps/winpty/src/agent/NamedPipe.cc +378 -0
  440. package/vendor/node-pty-fork/deps/winpty/src/agent/NamedPipe.h +125 -0
  441. package/vendor/node-pty-fork/deps/winpty/src/agent/Scraper.cc +699 -0
  442. package/vendor/node-pty-fork/deps/winpty/src/agent/Scraper.h +103 -0
  443. package/vendor/node-pty-fork/deps/winpty/src/agent/SimplePool.h +75 -0
  444. package/vendor/node-pty-fork/deps/winpty/src/agent/SmallRect.h +143 -0
  445. package/vendor/node-pty-fork/deps/winpty/src/agent/Terminal.cc +535 -0
  446. package/vendor/node-pty-fork/deps/winpty/src/agent/Terminal.h +69 -0
  447. package/vendor/node-pty-fork/deps/winpty/src/agent/UnicodeEncoding.h +157 -0
  448. package/vendor/node-pty-fork/deps/winpty/src/agent/UnicodeEncodingTest.cc +189 -0
  449. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32Console.cc +107 -0
  450. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32Console.h +67 -0
  451. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32ConsoleBuffer.cc +193 -0
  452. package/vendor/node-pty-fork/deps/winpty/src/agent/Win32ConsoleBuffer.h +99 -0
  453. package/vendor/node-pty-fork/deps/winpty/src/agent/main.cc +114 -0
  454. package/vendor/node-pty-fork/deps/winpty/src/agent/subdir.mk +61 -0
  455. package/vendor/node-pty-fork/deps/winpty/src/configurations.gypi +60 -0
  456. package/vendor/node-pty-fork/deps/winpty/src/debugserver/DebugServer.cc +117 -0
  457. package/vendor/node-pty-fork/deps/winpty/src/debugserver/subdir.mk +41 -0
  458. package/vendor/node-pty-fork/deps/winpty/src/include/winpty.h +242 -0
  459. package/vendor/node-pty-fork/deps/winpty/src/include/winpty_constants.h +131 -0
  460. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/AgentLocation.cc +75 -0
  461. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/AgentLocation.h +28 -0
  462. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/LibWinptyException.h +54 -0
  463. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/WinptyInternal.h +72 -0
  464. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/subdir.mk +46 -0
  465. package/vendor/node-pty-fork/deps/winpty/src/libwinpty/winpty.cc +970 -0
  466. package/vendor/node-pty-fork/deps/winpty/src/shared/AgentMsg.h +38 -0
  467. package/vendor/node-pty-fork/deps/winpty/src/shared/BackgroundDesktop.cc +122 -0
  468. package/vendor/node-pty-fork/deps/winpty/src/shared/BackgroundDesktop.h +73 -0
  469. package/vendor/node-pty-fork/deps/winpty/src/shared/Buffer.cc +103 -0
  470. package/vendor/node-pty-fork/deps/winpty/src/shared/Buffer.h +102 -0
  471. package/vendor/node-pty-fork/deps/winpty/src/shared/DebugClient.cc +187 -0
  472. package/vendor/node-pty-fork/deps/winpty/src/shared/DebugClient.h +38 -0
  473. package/vendor/node-pty-fork/deps/winpty/src/shared/GenRandom.cc +138 -0
  474. package/vendor/node-pty-fork/deps/winpty/src/shared/GenRandom.h +55 -0
  475. package/vendor/node-pty-fork/deps/winpty/src/shared/GetCommitHash.bat +13 -0
  476. package/vendor/node-pty-fork/deps/winpty/src/shared/Mutex.h +54 -0
  477. package/vendor/node-pty-fork/deps/winpty/src/shared/OsModule.h +63 -0
  478. package/vendor/node-pty-fork/deps/winpty/src/shared/OwnedHandle.cc +36 -0
  479. package/vendor/node-pty-fork/deps/winpty/src/shared/OwnedHandle.h +45 -0
  480. package/vendor/node-pty-fork/deps/winpty/src/shared/PrecompiledHeader.h +43 -0
  481. package/vendor/node-pty-fork/deps/winpty/src/shared/StringBuilder.h +227 -0
  482. package/vendor/node-pty-fork/deps/winpty/src/shared/StringBuilderTest.cc +114 -0
  483. package/vendor/node-pty-fork/deps/winpty/src/shared/StringUtil.cc +55 -0
  484. package/vendor/node-pty-fork/deps/winpty/src/shared/StringUtil.h +80 -0
  485. package/vendor/node-pty-fork/deps/winpty/src/shared/TimeMeasurement.h +63 -0
  486. package/vendor/node-pty-fork/deps/winpty/src/shared/UnixCtrlChars.h +45 -0
  487. package/vendor/node-pty-fork/deps/winpty/src/shared/UpdateGenVersion.bat +20 -0
  488. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsSecurity.cc +460 -0
  489. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsSecurity.h +104 -0
  490. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsVersion.cc +252 -0
  491. package/vendor/node-pty-fork/deps/winpty/src/shared/WindowsVersion.h +29 -0
  492. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyAssert.cc +55 -0
  493. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyAssert.h +64 -0
  494. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyException.cc +57 -0
  495. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyException.h +43 -0
  496. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyVersion.cc +42 -0
  497. package/vendor/node-pty-fork/deps/winpty/src/shared/WinptyVersion.h +27 -0
  498. package/vendor/node-pty-fork/deps/winpty/src/shared/winpty_snprintf.h +99 -0
  499. package/vendor/node-pty-fork/deps/winpty/src/subdir.mk +5 -0
  500. package/vendor/node-pty-fork/deps/winpty/src/tests/subdir.mk +28 -0
  501. package/vendor/node-pty-fork/deps/winpty/src/tests/trivial_test.cc +158 -0
  502. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/InputHandler.cc +114 -0
  503. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/InputHandler.h +56 -0
  504. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/OutputHandler.cc +80 -0
  505. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/OutputHandler.h +53 -0
  506. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/Util.cc +86 -0
  507. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/Util.h +31 -0
  508. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/WakeupFd.cc +70 -0
  509. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/WakeupFd.h +42 -0
  510. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/main.cc +729 -0
  511. package/vendor/node-pty-fork/deps/winpty/src/unix-adapter/subdir.mk +41 -0
  512. package/vendor/node-pty-fork/deps/winpty/src/winpty.gyp +206 -0
  513. package/vendor/node-pty-fork/deps/winpty/vcbuild.bat +83 -0
  514. package/vendor/node-pty-fork/lib/conpty_console_list_agent.js +20 -0
  515. package/vendor/node-pty-fork/lib/conpty_console_list_agent.js.map +1 -0
  516. package/vendor/node-pty-fork/lib/eventEmitter2.js +47 -0
  517. package/vendor/node-pty-fork/lib/eventEmitter2.js.map +1 -0
  518. package/vendor/node-pty-fork/lib/eventEmitter2.test.js +30 -0
  519. package/vendor/node-pty-fork/lib/eventEmitter2.test.js.map +1 -0
  520. package/vendor/node-pty-fork/lib/index.js +51 -0
  521. package/vendor/node-pty-fork/lib/index.js.map +1 -0
  522. package/vendor/node-pty-fork/lib/interfaces.js +7 -0
  523. package/vendor/node-pty-fork/lib/interfaces.js.map +1 -0
  524. package/vendor/node-pty-fork/lib/shared/conout.js +11 -0
  525. package/vendor/node-pty-fork/lib/shared/conout.js.map +1 -0
  526. package/vendor/node-pty-fork/lib/terminal.js +190 -0
  527. package/vendor/node-pty-fork/lib/terminal.js.map +1 -0
  528. package/vendor/node-pty-fork/lib/terminal.test.js +139 -0
  529. package/vendor/node-pty-fork/lib/terminal.test.js.map +1 -0
  530. package/vendor/node-pty-fork/lib/testUtils.test.js +28 -0
  531. package/vendor/node-pty-fork/lib/testUtils.test.js.map +1 -0
  532. package/vendor/node-pty-fork/lib/types.js +7 -0
  533. package/vendor/node-pty-fork/lib/types.js.map +1 -0
  534. package/vendor/node-pty-fork/lib/unixTerminal.js +304 -0
  535. package/vendor/node-pty-fork/lib/unixTerminal.js.map +1 -0
  536. package/vendor/node-pty-fork/lib/unixTerminal.test.js +330 -0
  537. package/vendor/node-pty-fork/lib/unixTerminal.test.js.map +1 -0
  538. package/vendor/node-pty-fork/lib/utils.js +17 -0
  539. package/vendor/node-pty-fork/lib/utils.js.map +1 -0
  540. package/vendor/node-pty-fork/lib/windowsConoutConnection.js +122 -0
  541. package/vendor/node-pty-fork/lib/windowsConoutConnection.js.map +1 -0
  542. package/vendor/node-pty-fork/lib/windowsPtyAgent.js +324 -0
  543. package/vendor/node-pty-fork/lib/windowsPtyAgent.js.map +1 -0
  544. package/vendor/node-pty-fork/lib/windowsPtyAgent.test.js +90 -0
  545. package/vendor/node-pty-fork/lib/windowsPtyAgent.test.js.map +1 -0
  546. package/vendor/node-pty-fork/lib/windowsTerminal.js +201 -0
  547. package/vendor/node-pty-fork/lib/windowsTerminal.js.map +1 -0
  548. package/vendor/node-pty-fork/lib/windowsTerminal.test.js +203 -0
  549. package/vendor/node-pty-fork/lib/windowsTerminal.test.js.map +1 -0
  550. package/vendor/node-pty-fork/lib/worker/conoutSocketWorker.js +22 -0
  551. package/vendor/node-pty-fork/lib/worker/conoutSocketWorker.js.map +1 -0
  552. package/vendor/node-pty-fork/package.json +35 -0
  553. package/vendor/node-pty-fork/scripts/apply-patches.mjs +341 -0
  554. package/vendor/node-pty-fork/scripts/fetch-upstream.mjs +41 -0
  555. package/vendor/node-pty-fork/scripts/install-smoke.cjs +59 -0
  556. package/vendor/node-pty-fork/scripts/smoke-load.cjs +10 -0
  557. package/vendor/node-pty-fork/scripts/sync-upstream.mjs +29 -0
  558. package/vendor/node-pty-fork/scripts/verify-runtime.cjs +54 -0
  559. package/vendor/node-pty-fork/scripts/verify-runtime.test.cjs +22 -0
  560. package/vendor/node-pty-fork/scripts/verify-tarball.cjs +80 -0
  561. package/vendor/node-pty-fork/src/conpty_console_list_agent.ts +19 -0
  562. package/vendor/node-pty-fork/src/eventEmitter2.test.ts +30 -0
  563. package/vendor/node-pty-fork/src/eventEmitter2.ts +48 -0
  564. package/vendor/node-pty-fork/src/index.ts +51 -0
  565. package/vendor/node-pty-fork/src/interfaces.ts +129 -0
  566. package/vendor/node-pty-fork/src/native.d.ts +56 -0
  567. package/vendor/node-pty-fork/src/shared/conout.ts +15 -0
  568. package/vendor/node-pty-fork/src/terminal.test.ts +119 -0
  569. package/vendor/node-pty-fork/src/terminal.ts +211 -0
  570. package/vendor/node-pty-fork/src/testUtils.test.ts +23 -0
  571. package/vendor/node-pty-fork/src/tsconfig.json +22 -0
  572. package/vendor/node-pty-fork/src/types.ts +15 -0
  573. package/vendor/node-pty-fork/src/unix/pty.cc +826 -0
  574. package/vendor/node-pty-fork/src/unix/spawn-helper.cc +23 -0
  575. package/vendor/node-pty-fork/src/unixTerminal.test.ts +335 -0
  576. package/vendor/node-pty-fork/src/unixTerminal.ts +320 -0
  577. package/vendor/node-pty-fork/src/utils.ts +9 -0
  578. package/vendor/node-pty-fork/src/win/conpty.cc +500 -0
  579. package/vendor/node-pty-fork/src/win/conpty_console_list.cc +43 -0
  580. package/vendor/node-pty-fork/src/win/path_util.cc +73 -0
  581. package/vendor/node-pty-fork/src/win/path_util.h +22 -0
  582. package/vendor/node-pty-fork/src/win/winpty.cc +322 -0
  583. package/vendor/node-pty-fork/src/windowsConoutConnection.ts +79 -0
  584. package/vendor/node-pty-fork/src/windowsPtyAgent.test.ts +94 -0
  585. package/vendor/node-pty-fork/src/windowsPtyAgent.ts +323 -0
  586. package/vendor/node-pty-fork/src/windowsTerminal.test.ts +214 -0
  587. package/vendor/node-pty-fork/src/windowsTerminal.ts +208 -0
  588. package/vendor/node-pty-fork/src/worker/conoutSocketWorker.ts +22 -0
  589. package/vendor/node-pty-fork/typings/node-pty.d.ts +203 -0
  590. package/dist/public/assets/FileContextPanel-xGTYDclT.js +0 -1
  591. package/dist/public/assets/WorkbenchLayout-DScHaza9.js +0 -244
  592. package/dist/public/assets/WorkbenchShellRoute-DN6LdrqC.js +0 -1
  593. package/dist/public/assets/WorkbenchShellRoute-DhQo_0vu.css +0 -1
  594. package/dist/public/assets/file-tree-icon-lfU9Ag77.js +0 -3
  595. package/dist/public/assets/index-CFYXCsyx.css +0 -1
  596. package/dist/public/assets/index-NGxWr8Ix.js +0 -42
  597. package/dist/server/modules/channels/wechat-claw-client.d.ts +0 -51
  598. package/dist/server/modules/channels/wechat-claw-client.js +0 -245
  599. package/dist/server/modules/channels/wechat-claw-client.js.map +0 -1
@@ -0,0 +1,620 @@
1
+ #!/usr/bin/env node
2
+
3
+ import process from "node:process";
4
+
5
+ const MCP_PROTOCOL_VERSION = "2025-06-18";
6
+ const SERVER_INFO = {
7
+ name: "codingns-workspace-office",
8
+ version: "0.1.0"
9
+ };
10
+
11
+ const TOOL_DEFINITIONS = [
12
+ defineTool("office_document_create", "创建当前工作区文档任务", {
13
+ workspaceId: optionalStringSchema("工作区 ID。工作区会话一般不需要显式传。"),
14
+ title: requiredStringSchema("文档标题"),
15
+ templateId: optionalStringSchema("模板 ID"),
16
+ templateKey: optionalStringSchema("模板 Key"),
17
+ summary: optionalStringSchema("摘要"),
18
+ content: optionalObjectSchema("文档内容 JSON"),
19
+ outline: optionalObjectSchema("文档大纲 JSON")
20
+ }),
21
+ defineTool("office_document_update", "更新当前工作区文档", {
22
+ documentId: requiredStringSchema("文档 ID"),
23
+ title: optionalStringSchema("文档标题"),
24
+ templateId: optionalStringSchema("模板 ID"),
25
+ summary: optionalStringSchema("摘要"),
26
+ status: optionalEnumSchema(["draft", "reviewing", "published", "archived"], "文档状态"),
27
+ content: optionalObjectSchema("文档内容 JSON"),
28
+ outline: optionalObjectSchema("文档大纲 JSON")
29
+ }),
30
+ defineTool("office_document_export", "导出当前工作区文档", {
31
+ documentId: requiredStringSchema("文档 ID"),
32
+ workspaceId: optionalStringSchema("工作区 ID"),
33
+ format: optionalEnumSchema(["docx", "pdf", "md"], "导出格式"),
34
+ riskLevel: optionalEnumSchema(["low", "medium", "high"], "风险等级"),
35
+ execute: optionalBooleanSchema("是否立即执行")
36
+ }),
37
+ defineTool("office_document_task_get", "读取文档任务回执", {
38
+ taskId: requiredStringSchema("任务 ID")
39
+ }),
40
+ defineTool("office_browser_profile_list", "列出当前工作区可用浏览器 Profile", {
41
+ workspaceId: optionalStringSchema("工作区 ID")
42
+ }),
43
+ defineTool("office_browser_profile_create", "创建浏览器 Profile", {
44
+ workspaceId: optionalStringSchema("工作区 ID"),
45
+ engine: optionalEnumSchema(["chrome", "edge"], "浏览器引擎"),
46
+ mode: optionalEnumSchema(["persistent", "cdp_attached"], "运行模式"),
47
+ displayName: optionalStringSchema("展示名称"),
48
+ ownershipScope: optionalEnumSchema(["user", "workspace"], "归属范围"),
49
+ cdpEndpoint: optionalStringSchema("CDP 地址")
50
+ }),
51
+ defineTool("office_browser_profile_get", "读取浏览器 Profile 详情", {
52
+ profileId: requiredStringSchema("Profile ID")
53
+ }),
54
+ defineTool("office_browser_task_create", "创建浏览器任务", {
55
+ profileId: optionalStringSchema("Profile ID。playwright 必填;opencli_bridge 一般不需要传。"),
56
+ workspaceId: optionalStringSchema("工作区 ID"),
57
+ title: optionalStringSchema("任务标题"),
58
+ riskLevel: optionalEnumSchema(["low", "medium", "high"], "风险等级"),
59
+ executionBackend: optionalEnumSchema(["playwright", "opencli_bridge"], "执行后端"),
60
+ execute: optionalBooleanSchema("是否立即执行"),
61
+ input: requiredObjectSchema("浏览器任务输入 JSON")
62
+ }),
63
+ defineTool("office_browser_task_get", "读取浏览器任务回执", {
64
+ taskId: requiredStringSchema("任务 ID")
65
+ }),
66
+ defineTool("office_ops_target_list", "列出当前工作区运维目标", {
67
+ workspaceId: optionalStringSchema("工作区 ID"),
68
+ kind: optionalEnumSchema(["ssh_host", "web_console"], "目标类型"),
69
+ status: optionalEnumSchema(["active", "disabled", "error"], "目标状态")
70
+ }),
71
+ defineTool("office_ops_target_create", "创建当前工作区运维目标", {
72
+ workspaceId: optionalStringSchema("工作区 ID"),
73
+ displayName: requiredStringSchema("展示名称"),
74
+ kind: optionalEnumSchema(["ssh_host", "web_console"], "目标类型"),
75
+ environment: optionalStringSchema("环境标记"),
76
+ credentialRef: optionalStringSchema("凭据引用"),
77
+ config: optionalObjectSchema("目标配置 JSON")
78
+ }),
79
+ defineTool("office_ops_target_get", "读取运维目标详情", {
80
+ targetId: requiredStringSchema("目标 ID")
81
+ }),
82
+ defineTool("office_ops_ssh_task_create", "创建 SSH 运维任务", {
83
+ targetId: requiredStringSchema("目标 ID"),
84
+ title: optionalStringSchema("任务标题"),
85
+ riskLevel: optionalEnumSchema(["low", "medium", "high"], "风险等级"),
86
+ execute: optionalBooleanSchema("是否立即执行"),
87
+ input: optionalObjectSchema("SSH 任务输入 JSON"),
88
+ confirm: optionalBooleanSchema("确认执行高风险动作")
89
+ }),
90
+ defineTool("office_ops_browser_task_create", "创建浏览器运维任务", {
91
+ targetId: requiredStringSchema("目标 ID"),
92
+ profileId: optionalStringSchema("浏览器 Profile ID。playwright 必填;opencli_bridge 一般不需要传。"),
93
+ executionBackend: optionalEnumSchema(["playwright", "opencli_bridge"], "执行后端"),
94
+ title: optionalStringSchema("任务标题"),
95
+ riskLevel: optionalEnumSchema(["low", "medium", "high"], "风险等级"),
96
+ input: optionalObjectSchema("浏览器运维任务输入 JSON"),
97
+ confirm: optionalBooleanSchema("确认执行高风险动作")
98
+ }),
99
+ defineTool("office_ops_task_get", "读取运维任务回执", {
100
+ taskId: requiredStringSchema("任务 ID")
101
+ }),
102
+ defineTool("office_ops_task_execute", "执行待确认运维任务", {
103
+ taskId: requiredStringSchema("任务 ID"),
104
+ confirm: optionalBooleanSchema("确认执行")
105
+ })
106
+ ];
107
+
108
+ const TOOL_HANDLERS = {
109
+ office_document_create: {
110
+ method: "POST",
111
+ path: "/api/assistant/office/documents",
112
+ buildBody: (argumentsObject) => ({
113
+ workspaceId: normalizeNullableString(argumentsObject.workspaceId),
114
+ title: requireStringField(argumentsObject, "title"),
115
+ templateId: normalizeNullableString(argumentsObject.templateId),
116
+ templateKey: normalizeNullableString(argumentsObject.templateKey),
117
+ summary: normalizeNullableString(argumentsObject.summary),
118
+ content: normalizeNullableObject(argumentsObject.content),
119
+ outline: normalizeNullableObject(argumentsObject.outline)
120
+ })
121
+ },
122
+ office_document_update: {
123
+ method: "PATCH",
124
+ path: (argumentsObject) =>
125
+ `/api/assistant/office/documents/${encodeURIComponent(requireStringField(argumentsObject, "documentId"))}`,
126
+ buildBody: (argumentsObject) => ({
127
+ title: normalizeNullableString(argumentsObject.title),
128
+ templateId: normalizeNullableString(argumentsObject.templateId),
129
+ summary: normalizeNullableString(argumentsObject.summary),
130
+ status: normalizeNullableString(argumentsObject.status),
131
+ content: normalizeNullableObject(argumentsObject.content),
132
+ outline: normalizeNullableObject(argumentsObject.outline)
133
+ })
134
+ },
135
+ office_document_export: {
136
+ method: "POST",
137
+ path: (argumentsObject) =>
138
+ `/api/assistant/office/documents/${encodeURIComponent(requireStringField(argumentsObject, "documentId"))}/export`,
139
+ buildBody: (argumentsObject) => ({
140
+ workspaceId: normalizeNullableString(argumentsObject.workspaceId),
141
+ format: normalizeNullableString(argumentsObject.format),
142
+ riskLevel: normalizeNullableString(argumentsObject.riskLevel),
143
+ execute: normalizeNullableBoolean(argumentsObject.execute)
144
+ })
145
+ },
146
+ office_document_task_get: {
147
+ method: "GET",
148
+ path: (argumentsObject) =>
149
+ `/api/assistant/office/document-tasks/${encodeURIComponent(requireStringField(argumentsObject, "taskId"))}`
150
+ },
151
+ office_browser_profile_list: {
152
+ method: "GET",
153
+ path: "/api/assistant/office/browser/profiles",
154
+ buildQuery: (argumentsObject) => ({
155
+ workspaceId: normalizeNullableString(argumentsObject.workspaceId)
156
+ })
157
+ },
158
+ office_browser_profile_create: {
159
+ method: "POST",
160
+ path: "/api/assistant/office/browser/profiles",
161
+ buildBody: (argumentsObject) => ({
162
+ workspaceId: normalizeNullableString(argumentsObject.workspaceId),
163
+ engine: normalizeNullableString(argumentsObject.engine),
164
+ mode: normalizeNullableString(argumentsObject.mode),
165
+ displayName: normalizeNullableString(argumentsObject.displayName),
166
+ ownershipScope: normalizeNullableString(argumentsObject.ownershipScope),
167
+ cdpEndpoint: normalizeNullableString(argumentsObject.cdpEndpoint)
168
+ })
169
+ },
170
+ office_browser_profile_get: {
171
+ method: "GET",
172
+ path: (argumentsObject) =>
173
+ `/api/assistant/office/browser/profiles/${encodeURIComponent(requireStringField(argumentsObject, "profileId"))}`
174
+ },
175
+ office_browser_task_create: {
176
+ method: "POST",
177
+ path: "/api/assistant/office/browser/tasks",
178
+ buildBody: (argumentsObject) => ({
179
+ profileId: normalizeNullableString(argumentsObject.profileId),
180
+ workspaceId: normalizeNullableString(argumentsObject.workspaceId),
181
+ title: normalizeNullableString(argumentsObject.title),
182
+ riskLevel: normalizeNullableString(argumentsObject.riskLevel),
183
+ executionBackend: normalizeNullableString(argumentsObject.executionBackend),
184
+ execute: normalizeNullableBoolean(argumentsObject.execute),
185
+ input: requireObjectField(argumentsObject, "input")
186
+ })
187
+ },
188
+ office_browser_task_get: {
189
+ method: "GET",
190
+ path: (argumentsObject) =>
191
+ `/api/assistant/office/browser/tasks/${encodeURIComponent(requireStringField(argumentsObject, "taskId"))}`
192
+ },
193
+ office_ops_target_list: {
194
+ method: "GET",
195
+ path: "/api/assistant/office/ops/targets",
196
+ buildQuery: (argumentsObject) => ({
197
+ workspaceId: normalizeNullableString(argumentsObject.workspaceId),
198
+ kind: normalizeNullableString(argumentsObject.kind),
199
+ status: normalizeNullableString(argumentsObject.status)
200
+ })
201
+ },
202
+ office_ops_target_create: {
203
+ method: "POST",
204
+ path: "/api/assistant/office/ops/targets",
205
+ buildBody: (argumentsObject) => ({
206
+ workspaceId: normalizeNullableString(argumentsObject.workspaceId),
207
+ displayName: requireStringField(argumentsObject, "displayName"),
208
+ kind: normalizeNullableString(argumentsObject.kind),
209
+ environment: normalizeNullableString(argumentsObject.environment),
210
+ credentialRef: normalizeNullableString(argumentsObject.credentialRef),
211
+ config: normalizeNullableObject(argumentsObject.config)
212
+ })
213
+ },
214
+ office_ops_target_get: {
215
+ method: "GET",
216
+ path: (argumentsObject) =>
217
+ `/api/assistant/office/ops/targets/${encodeURIComponent(requireStringField(argumentsObject, "targetId"))}`
218
+ },
219
+ office_ops_ssh_task_create: {
220
+ method: "POST",
221
+ path: "/api/assistant/office/ops/ssh-tasks",
222
+ buildBody: (argumentsObject) => ({
223
+ targetId: requireStringField(argumentsObject, "targetId"),
224
+ title: normalizeNullableString(argumentsObject.title),
225
+ riskLevel: normalizeNullableString(argumentsObject.riskLevel),
226
+ execute: normalizeNullableBoolean(argumentsObject.execute),
227
+ input: normalizeNullableObject(argumentsObject.input),
228
+ confirm: normalizeNullableBoolean(argumentsObject.confirm)
229
+ })
230
+ },
231
+ office_ops_browser_task_create: {
232
+ method: "POST",
233
+ path: "/api/assistant/office/ops/browser-tasks",
234
+ buildBody: (argumentsObject) => ({
235
+ targetId: requireStringField(argumentsObject, "targetId"),
236
+ profileId: normalizeNullableString(argumentsObject.profileId),
237
+ executionBackend: normalizeNullableString(argumentsObject.executionBackend),
238
+ title: normalizeNullableString(argumentsObject.title),
239
+ riskLevel: normalizeNullableString(argumentsObject.riskLevel),
240
+ input: normalizeNullableObject(argumentsObject.input),
241
+ confirm: normalizeNullableBoolean(argumentsObject.confirm)
242
+ })
243
+ },
244
+ office_ops_task_get: {
245
+ method: "GET",
246
+ path: (argumentsObject) =>
247
+ `/api/assistant/office/ops/tasks/${encodeURIComponent(requireStringField(argumentsObject, "taskId"))}`
248
+ },
249
+ office_ops_task_execute: {
250
+ method: "POST",
251
+ path: (argumentsObject) =>
252
+ `/api/assistant/office/ops/tasks/${encodeURIComponent(requireStringField(argumentsObject, "taskId"))}/execute`,
253
+ buildBody: (argumentsObject) => ({
254
+ confirm: normalizeNullableBoolean(argumentsObject.confirm)
255
+ })
256
+ }
257
+ };
258
+
259
+ const pendingBuffer = {
260
+ text: "",
261
+ expectedLength: null
262
+ };
263
+
264
+ process.stdin.setEncoding("utf8");
265
+ process.stdin.on("data", (chunk) => {
266
+ pendingBuffer.text += chunk;
267
+ drainMessages().catch((error) => {
268
+ writeLog("error", `处理 MCP 消息失败:${formatError(error)}`);
269
+ });
270
+ });
271
+
272
+ process.stdin.on("end", () => {
273
+ process.exit(0);
274
+ });
275
+
276
+ async function drainMessages() {
277
+ while (true) {
278
+ const message = readNextMessage();
279
+
280
+ if (!message) {
281
+ return;
282
+ }
283
+
284
+ let parsed;
285
+ try {
286
+ parsed = JSON.parse(message);
287
+ } catch (error) {
288
+ await writeMessage({
289
+ jsonrpc: "2.0",
290
+ id: null,
291
+ error: createError(-32700, `JSON 解析失败:${formatError(error)}`)
292
+ });
293
+ continue;
294
+ }
295
+
296
+ await handleRpcMessage(parsed);
297
+ }
298
+ }
299
+
300
+ function readNextMessage() {
301
+ while (true) {
302
+ if (pendingBuffer.expectedLength === null) {
303
+ const headerEndIndex = pendingBuffer.text.indexOf("\r\n\r\n");
304
+
305
+ if (headerEndIndex === -1) {
306
+ return null;
307
+ }
308
+
309
+ const headerText = pendingBuffer.text.slice(0, headerEndIndex);
310
+ const contentLengthMatch = headerText.match(/Content-Length:\s*(\d+)/i);
311
+
312
+ if (!contentLengthMatch) {
313
+ pendingBuffer.text = pendingBuffer.text.slice(headerEndIndex + 4);
314
+ continue;
315
+ }
316
+
317
+ pendingBuffer.expectedLength = Number.parseInt(contentLengthMatch[1], 10);
318
+ pendingBuffer.text = pendingBuffer.text.slice(headerEndIndex + 4);
319
+ }
320
+
321
+ if (pendingBuffer.expectedLength === null) {
322
+ return null;
323
+ }
324
+
325
+ if (Buffer.byteLength(pendingBuffer.text, "utf8") < pendingBuffer.expectedLength) {
326
+ return null;
327
+ }
328
+
329
+ const messageBuffer = Buffer.from(pendingBuffer.text, "utf8");
330
+ const payloadBuffer = messageBuffer.subarray(0, pendingBuffer.expectedLength);
331
+ const restBuffer = messageBuffer.subarray(pendingBuffer.expectedLength);
332
+ pendingBuffer.text = restBuffer.toString("utf8");
333
+ pendingBuffer.expectedLength = null;
334
+ return payloadBuffer.toString("utf8");
335
+ }
336
+ }
337
+
338
+ async function handleRpcMessage(message) {
339
+ const method = typeof message?.method === "string" ? message.method : null;
340
+
341
+ if (!method) {
342
+ if (message?.id !== undefined) {
343
+ await writeMessage({
344
+ jsonrpc: "2.0",
345
+ id: message.id ?? null,
346
+ error: createError(-32600, "缺少 method")
347
+ });
348
+ }
349
+ return;
350
+ }
351
+
352
+ if (method === "notifications/initialized") {
353
+ return;
354
+ }
355
+
356
+ if (method === "ping") {
357
+ await writeMessage({
358
+ jsonrpc: "2.0",
359
+ id: message.id ?? null,
360
+ result: {}
361
+ });
362
+ return;
363
+ }
364
+
365
+ if (method === "initialize") {
366
+ await writeMessage({
367
+ jsonrpc: "2.0",
368
+ id: message.id ?? null,
369
+ result: {
370
+ protocolVersion: MCP_PROTOCOL_VERSION,
371
+ capabilities: {
372
+ tools: {
373
+ listChanged: false
374
+ }
375
+ },
376
+ serverInfo: SERVER_INFO
377
+ }
378
+ });
379
+ return;
380
+ }
381
+
382
+ if (method === "tools/list") {
383
+ await writeMessage({
384
+ jsonrpc: "2.0",
385
+ id: message.id ?? null,
386
+ result: {
387
+ tools: TOOL_DEFINITIONS
388
+ }
389
+ });
390
+ return;
391
+ }
392
+
393
+ if (method === "tools/call") {
394
+ await handleToolCall(message);
395
+ return;
396
+ }
397
+
398
+ await writeMessage({
399
+ jsonrpc: "2.0",
400
+ id: message.id ?? null,
401
+ error: createError(-32601, `不支持的方法:${method}`)
402
+ });
403
+ }
404
+
405
+ async function handleToolCall(message) {
406
+ const toolName = typeof message?.params?.name === "string" ? message.params.name : "";
407
+ const handler = TOOL_HANDLERS[toolName];
408
+
409
+ if (!handler) {
410
+ await writeMessage({
411
+ jsonrpc: "2.0",
412
+ id: message.id ?? null,
413
+ error: createError(-32601, `未找到工具:${toolName}`)
414
+ });
415
+ return;
416
+ }
417
+
418
+ const argumentsObject = isPlainObject(message?.params?.arguments) ? message.params.arguments : {};
419
+
420
+ try {
421
+ const response = await executeTool(handler, argumentsObject);
422
+ await writeMessage({
423
+ jsonrpc: "2.0",
424
+ id: message.id ?? null,
425
+ result: {
426
+ content: [
427
+ {
428
+ type: "text",
429
+ text: JSON.stringify(response, null, 2)
430
+ }
431
+ ]
432
+ }
433
+ });
434
+ } catch (error) {
435
+ await writeMessage({
436
+ jsonrpc: "2.0",
437
+ id: message.id ?? null,
438
+ error: createError(-32000, formatError(error))
439
+ });
440
+ }
441
+ }
442
+
443
+ async function executeTool(handler, argumentsObject) {
444
+ const baseUrl = resolveRequiredEnv("CODINGNS_OFFICE_MCP_BASE_URL");
445
+ const accessToken = resolveRequiredEnv("CODINGNS_OFFICE_MCP_ACCESS_TOKEN");
446
+ const url = new URL(typeof handler.path === "function" ? handler.path(argumentsObject) : handler.path, baseUrl);
447
+ const requestInit = {
448
+ method: handler.method,
449
+ headers: {
450
+ "Content-Type": "application/json",
451
+ "Authorization": `Bearer ${accessToken}`,
452
+ "X-CodingNS-Assistant-Source": "workspace-office-mcp"
453
+ }
454
+ };
455
+
456
+ if (typeof handler.buildQuery === "function") {
457
+ const query = handler.buildQuery(argumentsObject);
458
+ for (const [key, value] of Object.entries(query)) {
459
+ if (value === null || value === undefined || value === "") {
460
+ continue;
461
+ }
462
+ url.searchParams.set(key, String(value));
463
+ }
464
+ }
465
+
466
+ if (handler.method !== "GET" && typeof handler.buildBody === "function") {
467
+ requestInit.body = JSON.stringify(handler.buildBody(argumentsObject));
468
+ }
469
+
470
+ const response = await fetch(url, requestInit);
471
+ const text = await response.text();
472
+ let parsed = null;
473
+
474
+ if (text.trim().length > 0) {
475
+ try {
476
+ parsed = JSON.parse(text);
477
+ } catch {
478
+ parsed = {
479
+ raw: text
480
+ };
481
+ }
482
+ }
483
+
484
+ if (!response.ok) {
485
+ const detail =
486
+ typeof parsed?.detail === "string"
487
+ ? parsed.detail
488
+ : typeof parsed?.errorMessage === "string"
489
+ ? parsed.errorMessage
490
+ : text.trim() || `HTTP ${response.status}`;
491
+ throw new Error(`${response.status} ${response.statusText}: ${detail}`);
492
+ }
493
+
494
+ return parsed;
495
+ }
496
+
497
+ async function writeMessage(message) {
498
+ const payload = JSON.stringify(message);
499
+ process.stdout.write(`Content-Length: ${Buffer.byteLength(payload, "utf8")}\r\n\r\n${payload}`);
500
+ }
501
+
502
+ function createError(code, message) {
503
+ return {
504
+ code,
505
+ message
506
+ };
507
+ }
508
+
509
+ function defineTool(name, description, properties) {
510
+ return {
511
+ name,
512
+ description,
513
+ inputSchema: {
514
+ type: "object",
515
+ properties,
516
+ additionalProperties: false
517
+ }
518
+ };
519
+ }
520
+
521
+ function requiredStringSchema(description) {
522
+ return {
523
+ type: "string",
524
+ description
525
+ };
526
+ }
527
+
528
+ function optionalStringSchema(description) {
529
+ return {
530
+ type: ["string", "null"],
531
+ description
532
+ };
533
+ }
534
+
535
+ function optionalBooleanSchema(description) {
536
+ return {
537
+ type: ["boolean", "null"],
538
+ description
539
+ };
540
+ }
541
+
542
+ function optionalObjectSchema(description) {
543
+ return {
544
+ type: ["object", "null"],
545
+ description
546
+ };
547
+ }
548
+
549
+ function requiredObjectSchema(description) {
550
+ return {
551
+ type: "object",
552
+ description
553
+ };
554
+ }
555
+
556
+ function optionalEnumSchema(values, description) {
557
+ return {
558
+ type: ["string", "null"],
559
+ enum: [...values, null],
560
+ description
561
+ };
562
+ }
563
+
564
+ function requireStringField(source, field) {
565
+ const value = source?.[field];
566
+
567
+ if (typeof value !== "string" || value.trim().length === 0) {
568
+ throw new Error(`字段 ${field} 必须是非空字符串`);
569
+ }
570
+
571
+ return value.trim();
572
+ }
573
+
574
+ function requireObjectField(source, field) {
575
+ const value = source?.[field];
576
+
577
+ if (!isPlainObject(value)) {
578
+ throw new Error(`字段 ${field} 必须是对象`);
579
+ }
580
+
581
+ return value;
582
+ }
583
+
584
+ function normalizeNullableString(value) {
585
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
586
+ }
587
+
588
+ function normalizeNullableBoolean(value) {
589
+ return typeof value === "boolean" ? value : null;
590
+ }
591
+
592
+ function normalizeNullableObject(value) {
593
+ return isPlainObject(value) ? value : null;
594
+ }
595
+
596
+ function isPlainObject(value) {
597
+ return typeof value === "object" && value !== null && !Array.isArray(value);
598
+ }
599
+
600
+ function resolveRequiredEnv(name) {
601
+ const value = process.env[name]?.trim();
602
+
603
+ if (!value) {
604
+ throw new Error(`缺少环境变量 ${name}`);
605
+ }
606
+
607
+ return value;
608
+ }
609
+
610
+ function writeLog(level, message) {
611
+ process.stderr.write(`[workspace-office-mcp][${level}] ${message}\n`);
612
+ }
613
+
614
+ function formatError(error) {
615
+ if (error instanceof Error) {
616
+ return error.message;
617
+ }
618
+
619
+ return String(error);
620
+ }