@wonderwhy-er/desktop-commander 0.2.37 → 0.2.39

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 (383) hide show
  1. package/README.md +290 -100
  2. package/dist/command-manager.js +6 -3
  3. package/dist/config-field-definitions.d.ts +41 -0
  4. package/dist/config-field-definitions.js +37 -0
  5. package/dist/config-manager.d.ts +2 -0
  6. package/dist/config-manager.js +22 -2
  7. package/dist/handlers/filesystem-handlers.d.ts +5 -0
  8. package/dist/handlers/filesystem-handlers.js +19 -12
  9. package/dist/remote-device/desktop-commander-integration.js +1 -1
  10. package/dist/remote-device/remote-channel.js +1 -1
  11. package/dist/search-manager.js +31 -38
  12. package/dist/server.js +11 -4
  13. package/dist/terminal-manager.js +4 -2
  14. package/dist/tools/config.d.ts +71 -0
  15. package/dist/tools/config.js +117 -2
  16. package/dist/tools/edit.js +34 -1
  17. package/dist/tools/filesystem.js +91 -3
  18. package/dist/tools/improved-process-tools.js +2 -1
  19. package/dist/tools/schemas.d.ts +3 -0
  20. package/dist/tools/schemas.js +1 -0
  21. package/dist/types.d.ts +0 -1
  22. package/dist/ui/config-editor/app.d.ts +43 -0
  23. package/dist/ui/config-editor/app.js +840 -0
  24. package/dist/ui/config-editor/array-modal.d.ts +19 -0
  25. package/dist/ui/config-editor/array-modal.js +185 -0
  26. package/dist/ui/config-editor/config-editor-runtime.js +150 -0
  27. package/dist/ui/config-editor/index.html +13 -0
  28. package/dist/ui/config-editor/main.js +2 -0
  29. package/dist/ui/config-editor/src/App.d.ts +43 -0
  30. package/dist/ui/config-editor/src/App.js +840 -0
  31. package/dist/ui/config-editor/src/array-modal.d.ts +19 -0
  32. package/dist/ui/config-editor/src/array-modal.js +185 -0
  33. package/dist/ui/config-editor/src/components/layout.d.ts +4 -0
  34. package/dist/ui/config-editor/src/components/layout.js +83 -0
  35. package/dist/ui/config-editor/src/components/toolbar.d.ts +1 -0
  36. package/dist/ui/config-editor/src/components/toolbar.js +21 -0
  37. package/dist/ui/config-editor/src/config-values.d.ts +6 -0
  38. package/dist/ui/config-editor/src/config-values.js +61 -0
  39. package/dist/ui/config-editor/src/contracts.d.ts +14 -0
  40. package/dist/ui/config-editor/src/contracts.js +3 -0
  41. package/dist/ui/config-editor/src/directory-browser.d.ts +6 -0
  42. package/dist/ui/config-editor/src/directory-browser.js +71 -0
  43. package/dist/ui/config-editor/src/layout.d.ts +5 -0
  44. package/dist/ui/config-editor/src/layout.js +90 -0
  45. package/dist/ui/config-editor/src/main.js +2 -0
  46. package/dist/ui/config-editor/src/parsing.d.ts +5 -0
  47. package/dist/ui/config-editor/src/parsing.js +50 -0
  48. package/dist/ui/config-editor/src/toolbar.d.ts +1 -0
  49. package/dist/ui/config-editor/src/toolbar.js +18 -0
  50. package/dist/ui/config-editor/src/types.d.ts +17 -0
  51. package/dist/ui/config-editor/src/types.js +3 -0
  52. package/dist/ui/config-editor/src/utils/config-values.d.ts +9 -0
  53. package/dist/ui/config-editor/src/utils/config-values.js +61 -0
  54. package/dist/ui/config-editor/src/utils/directory-browser.d.ts +31 -0
  55. package/dist/ui/config-editor/src/utils/directory-browser.js +201 -0
  56. package/dist/ui/config-editor/src/utils/parsing.d.ts +8 -0
  57. package/dist/ui/config-editor/src/utils/parsing.js +50 -0
  58. package/dist/ui/config-editor/styles.css +587 -0
  59. package/dist/ui/file-preview/app.d.ts +8 -0
  60. package/dist/ui/file-preview/app.js +2020 -0
  61. package/dist/ui/file-preview/components/code-viewer.d.ts +6 -0
  62. package/dist/ui/file-preview/components/code-viewer.js +73 -0
  63. package/dist/ui/file-preview/components/highlighting.d.ts +2 -0
  64. package/dist/ui/file-preview/components/highlighting.js +54 -0
  65. package/dist/ui/file-preview/components/html-renderer.d.ts +5 -0
  66. package/dist/ui/file-preview/components/html-renderer.js +47 -0
  67. package/dist/ui/file-preview/components/markdown-renderer.d.ts +1 -0
  68. package/dist/ui/file-preview/components/markdown-renderer.js +67 -0
  69. package/dist/ui/file-preview/components/toolbar.d.ts +6 -0
  70. package/dist/ui/file-preview/components/toolbar.js +75 -0
  71. package/dist/ui/file-preview/image-preview.d.ts +3 -0
  72. package/dist/ui/file-preview/image-preview.js +21 -0
  73. package/dist/ui/file-preview/main.js +5 -0
  74. package/dist/ui/file-preview/markdown/editor.d.ts +36 -0
  75. package/dist/ui/file-preview/markdown/editor.js +643 -0
  76. package/dist/ui/file-preview/markdown/linking.d.ts +9 -0
  77. package/dist/ui/file-preview/markdown/linking.js +210 -0
  78. package/dist/ui/file-preview/markdown/outline.d.ts +7 -0
  79. package/dist/ui/file-preview/markdown/outline.js +40 -0
  80. package/dist/ui/file-preview/markdown/preview.d.ts +8 -0
  81. package/dist/ui/file-preview/markdown/preview.js +33 -0
  82. package/dist/ui/file-preview/markdown/slugify.d.ts +3 -0
  83. package/dist/ui/file-preview/markdown/slugify.js +31 -0
  84. package/dist/ui/file-preview/markdown/toc.d.ts +11 -0
  85. package/dist/ui/file-preview/markdown/toc.js +75 -0
  86. package/dist/ui/file-preview/markdown/utils.d.ts +1 -0
  87. package/dist/ui/file-preview/markdown/utils.js +15 -0
  88. package/dist/ui/file-preview/markdown/workspace-controller.d.ts +25 -0
  89. package/dist/ui/file-preview/markdown/workspace-controller.js +40 -0
  90. package/dist/ui/file-preview/preview-runtime.js +399 -13969
  91. package/dist/ui/file-preview/shared/preview-file-types.d.ts +1 -1
  92. package/dist/ui/file-preview/shared/preview-file-types.js +3 -1
  93. package/dist/ui/file-preview/src/App.d.ts +4 -0
  94. package/dist/ui/file-preview/src/App.js +564 -0
  95. package/dist/ui/file-preview/src/components/CodeViewer.d.ts +6 -0
  96. package/dist/ui/file-preview/src/components/CodeViewer.js +60 -0
  97. package/dist/ui/file-preview/src/components/HtmlRenderer.d.ts +8 -0
  98. package/dist/ui/file-preview/src/components/HtmlRenderer.js +45 -0
  99. package/dist/ui/file-preview/src/components/MarkdownRenderer.d.ts +1 -0
  100. package/dist/ui/file-preview/src/components/MarkdownRenderer.js +15 -0
  101. package/dist/ui/file-preview/src/components/editor-toolbar.d.ts +15 -0
  102. package/dist/ui/file-preview/src/components/editor-toolbar.js +384 -0
  103. package/dist/ui/file-preview/src/components/html-renderer.d.ts +1 -5
  104. package/dist/ui/file-preview/src/components/html-renderer.js +11 -27
  105. package/dist/ui/file-preview/src/components/markdown-editor.d.ts +29 -0
  106. package/dist/ui/file-preview/src/components/markdown-editor.js +535 -0
  107. package/dist/ui/file-preview/src/components/markdown-renderer.js +47 -9
  108. package/dist/ui/file-preview/src/directory-controller.d.ts +8 -0
  109. package/dist/ui/file-preview/src/directory-controller.js +233 -0
  110. package/dist/ui/file-preview/src/document-layout.d.ts +20 -0
  111. package/dist/ui/file-preview/src/document-layout.js +109 -0
  112. package/dist/ui/file-preview/src/document-outline.d.ts +17 -0
  113. package/dist/ui/file-preview/src/document-outline.js +97 -0
  114. package/dist/ui/file-preview/src/document-workspace.d.ts +19 -0
  115. package/dist/ui/file-preview/src/document-workspace.js +33 -0
  116. package/dist/ui/file-preview/src/file-type-handlers.d.ts +10 -0
  117. package/dist/ui/file-preview/src/file-type-handlers.js +98 -0
  118. package/dist/ui/file-preview/src/host/external-actions.d.ts +19 -0
  119. package/dist/ui/file-preview/src/host/external-actions.js +94 -0
  120. package/dist/ui/file-preview/src/host/selection-context.d.ts +9 -0
  121. package/dist/ui/file-preview/src/host/selection-context.js +106 -0
  122. package/dist/ui/file-preview/src/markdown/block-merge.d.ts +25 -0
  123. package/dist/ui/file-preview/src/markdown/block-merge.js +86 -0
  124. package/dist/ui/file-preview/src/markdown/conflict-dialog.d.ts +40 -0
  125. package/dist/ui/file-preview/src/markdown/conflict-dialog.js +163 -0
  126. package/dist/ui/file-preview/src/markdown/controller.d.ts +38 -0
  127. package/dist/ui/file-preview/src/markdown/controller.js +921 -0
  128. package/dist/ui/file-preview/src/markdown/editor.d.ts +35 -0
  129. package/dist/ui/file-preview/src/markdown/editor.js +691 -0
  130. package/dist/ui/file-preview/src/markdown/link-modal.d.ts +13 -0
  131. package/dist/ui/file-preview/src/markdown/link-modal.js +213 -0
  132. package/dist/ui/file-preview/src/markdown/linking.d.ts +16 -0
  133. package/dist/ui/file-preview/src/markdown/linking.js +228 -0
  134. package/dist/ui/file-preview/src/markdown/outline.d.ts +2 -0
  135. package/dist/ui/file-preview/src/markdown/outline.js +16 -0
  136. package/dist/ui/file-preview/src/markdown/parser.d.ts +30 -0
  137. package/dist/ui/file-preview/src/markdown/parser.js +38 -0
  138. package/dist/ui/file-preview/src/markdown/preview.d.ts +1 -0
  139. package/dist/ui/file-preview/src/markdown/preview.js +20 -0
  140. package/dist/ui/file-preview/src/markdown/raw-editor.d.ts +8 -0
  141. package/dist/ui/file-preview/src/markdown/raw-editor.js +61 -0
  142. package/dist/ui/file-preview/src/markdown/selection-toolbar.d.ts +14 -0
  143. package/dist/ui/file-preview/src/markdown/selection-toolbar.js +128 -0
  144. package/dist/ui/file-preview/src/markdown/slugify.d.ts +3 -0
  145. package/dist/ui/file-preview/src/markdown/slugify.js +31 -0
  146. package/dist/ui/file-preview/src/markdown/toc.d.ts +11 -0
  147. package/dist/ui/file-preview/src/markdown/toc.js +75 -0
  148. package/dist/ui/file-preview/src/markdown/utils.d.ts +1 -0
  149. package/dist/ui/file-preview/src/markdown/utils.js +15 -0
  150. package/dist/ui/file-preview/src/markdown-workspace/editor.d.ts +36 -0
  151. package/dist/ui/file-preview/src/markdown-workspace/editor.js +643 -0
  152. package/dist/ui/file-preview/src/markdown-workspace/linking.d.ts +9 -0
  153. package/dist/ui/file-preview/src/markdown-workspace/linking.js +210 -0
  154. package/dist/ui/file-preview/src/markdown-workspace/outline.d.ts +7 -0
  155. package/dist/ui/file-preview/src/markdown-workspace/outline.js +40 -0
  156. package/dist/ui/file-preview/src/markdown-workspace/preview.d.ts +8 -0
  157. package/dist/ui/file-preview/src/markdown-workspace/preview.js +33 -0
  158. package/dist/ui/file-preview/src/markdown-workspace/slugify.d.ts +3 -0
  159. package/dist/ui/file-preview/src/markdown-workspace/slugify.js +31 -0
  160. package/dist/ui/file-preview/src/markdown-workspace/toc.d.ts +11 -0
  161. package/dist/ui/file-preview/src/markdown-workspace/toc.js +75 -0
  162. package/dist/ui/file-preview/src/markdown-workspace/utils.d.ts +1 -0
  163. package/dist/ui/file-preview/src/markdown-workspace/utils.js +15 -0
  164. package/dist/ui/file-preview/src/markdown-workspace/workspace-controller.d.ts +25 -0
  165. package/dist/ui/file-preview/src/markdown-workspace/workspace-controller.js +40 -0
  166. package/dist/ui/file-preview/src/model.d.ts +34 -0
  167. package/dist/ui/file-preview/src/panel-actions.d.ts +17 -0
  168. package/dist/ui/file-preview/src/panel-actions.js +182 -0
  169. package/dist/ui/file-preview/src/path-utils.d.ts +6 -0
  170. package/dist/ui/file-preview/src/path-utils.js +64 -0
  171. package/dist/ui/file-preview/src/payload-utils.d.ts +11 -0
  172. package/dist/ui/file-preview/src/payload-utils.js +94 -0
  173. package/dist/ui/file-preview/styles.css +1144 -277
  174. package/dist/ui/file-preview/types.d.ts +1 -0
  175. package/dist/ui/file-preview/types.js +1 -0
  176. package/dist/ui/resources.d.ts +7 -0
  177. package/dist/ui/resources.js +16 -2
  178. package/dist/ui/server-integration.d.ts +13 -0
  179. package/dist/ui/server-integration.js +31 -0
  180. package/dist/ui/shared/ToolHeader.d.ts +9 -0
  181. package/dist/ui/shared/ToolHeader.js +29 -0
  182. package/dist/ui/shared/app-bootstrap.d.ts +9 -0
  183. package/dist/ui/shared/app-bootstrap.js +15 -0
  184. package/dist/ui/shared/compact-row.d.ts +11 -0
  185. package/dist/ui/shared/compact-row.js +18 -0
  186. package/dist/ui/shared/guards.d.ts +1 -0
  187. package/dist/ui/shared/guards.js +3 -0
  188. package/dist/ui/shared/host-context.d.ts +15 -0
  189. package/dist/ui/shared/host-context.js +51 -0
  190. package/dist/ui/shared/host-lifecycle.d.ts +1 -0
  191. package/dist/ui/shared/host-lifecycle.js +8 -2
  192. package/dist/ui/shared/tool-bridge.d.ts +30 -0
  193. package/dist/ui/shared/tool-bridge.js +137 -0
  194. package/dist/ui/shared/tool-shell.d.ts +9 -0
  195. package/dist/ui/shared/tool-shell.js +46 -4
  196. package/dist/ui/shared/ui-event-tracker.d.ts +9 -0
  197. package/dist/ui/shared/ui-event-tracker.js +27 -0
  198. package/dist/ui/shared/widget-state.d.ts +6 -1
  199. package/dist/ui/shared/widget-state.js +102 -4
  200. package/dist/utils/capture.js +3 -3
  201. package/dist/utils/files/base.d.ts +2 -0
  202. package/dist/utils/open-browser.js +1 -1
  203. package/dist/utils/ui-call-context.d.ts +8 -0
  204. package/dist/utils/ui-call-context.js +72 -0
  205. package/dist/version.d.ts +1 -1
  206. package/dist/version.js +1 -1
  207. package/package.json +13 -4
  208. package/dist/data/spec-kit-prompts.json +0 -123
  209. package/dist/handlers/node-handlers.d.ts +0 -6
  210. package/dist/handlers/node-handlers.js +0 -73
  211. package/dist/handlers/test-crash-handler.d.ts +0 -11
  212. package/dist/handlers/test-crash-handler.js +0 -26
  213. package/dist/http-index.d.ts +0 -45
  214. package/dist/http-index.js +0 -51
  215. package/dist/http-server-auto-tunnel.js +0 -667
  216. package/dist/http-server-named-tunnel.d.ts +0 -2
  217. package/dist/http-server-named-tunnel.js +0 -167
  218. package/dist/http-server-tunnel.d.ts +0 -2
  219. package/dist/http-server-tunnel.js +0 -111
  220. package/dist/http-server.d.ts +0 -2
  221. package/dist/http-server.js +0 -270
  222. package/dist/index-oauth.d.ts +0 -2
  223. package/dist/index-oauth.js +0 -201
  224. package/dist/oauth/auth-middleware.d.ts +0 -20
  225. package/dist/oauth/auth-middleware.js +0 -62
  226. package/dist/oauth/index.d.ts +0 -3
  227. package/dist/oauth/index.js +0 -3
  228. package/dist/oauth/oauth-manager.d.ts +0 -80
  229. package/dist/oauth/oauth-manager.js +0 -179
  230. package/dist/oauth/oauth-routes.d.ts +0 -3
  231. package/dist/oauth/oauth-routes.js +0 -377
  232. package/dist/oauth/provider.d.ts +0 -22
  233. package/dist/oauth/provider.js +0 -124
  234. package/dist/oauth/server.d.ts +0 -18
  235. package/dist/oauth/server.js +0 -160
  236. package/dist/oauth/types.d.ts +0 -54
  237. package/dist/oauth/types.js +0 -2
  238. package/dist/remote-device/templates/auth-success.d.ts +0 -1
  239. package/dist/remote-device/templates/auth-success.js +0 -30
  240. package/dist/setup.log +0 -275
  241. package/dist/test-setup.js +0 -14
  242. package/dist/tools/docx/builders/html-builder.d.ts +0 -17
  243. package/dist/tools/docx/builders/html-builder.js +0 -92
  244. package/dist/tools/docx/builders/image.d.ts +0 -14
  245. package/dist/tools/docx/builders/image.js +0 -84
  246. package/dist/tools/docx/builders/index.d.ts +0 -11
  247. package/dist/tools/docx/builders/index.js +0 -11
  248. package/dist/tools/docx/builders/markdown-builder.d.ts +0 -2
  249. package/dist/tools/docx/builders/markdown-builder.js +0 -260
  250. package/dist/tools/docx/builders/paragraph.d.ts +0 -12
  251. package/dist/tools/docx/builders/paragraph.js +0 -29
  252. package/dist/tools/docx/builders/table.d.ts +0 -10
  253. package/dist/tools/docx/builders/table.js +0 -138
  254. package/dist/tools/docx/builders/utils.d.ts +0 -5
  255. package/dist/tools/docx/builders/utils.js +0 -18
  256. package/dist/tools/docx/constants.d.ts +0 -32
  257. package/dist/tools/docx/constants.js +0 -61
  258. package/dist/tools/docx/converters/markdown-to-html.d.ts +0 -17
  259. package/dist/tools/docx/converters/markdown-to-html.js +0 -111
  260. package/dist/tools/docx/create.d.ts +0 -21
  261. package/dist/tools/docx/create.js +0 -386
  262. package/dist/tools/docx/dom.d.ts +0 -139
  263. package/dist/tools/docx/dom.js +0 -448
  264. package/dist/tools/docx/errors.d.ts +0 -28
  265. package/dist/tools/docx/errors.js +0 -48
  266. package/dist/tools/docx/extractors/images.d.ts +0 -14
  267. package/dist/tools/docx/extractors/images.js +0 -40
  268. package/dist/tools/docx/extractors/metadata.d.ts +0 -14
  269. package/dist/tools/docx/extractors/metadata.js +0 -64
  270. package/dist/tools/docx/extractors/sections.d.ts +0 -14
  271. package/dist/tools/docx/extractors/sections.js +0 -61
  272. package/dist/tools/docx/html.d.ts +0 -17
  273. package/dist/tools/docx/html.js +0 -111
  274. package/dist/tools/docx/index.d.ts +0 -10
  275. package/dist/tools/docx/index.js +0 -10
  276. package/dist/tools/docx/markdown.d.ts +0 -84
  277. package/dist/tools/docx/markdown.js +0 -507
  278. package/dist/tools/docx/modify.d.ts +0 -28
  279. package/dist/tools/docx/modify.js +0 -271
  280. package/dist/tools/docx/operations/handlers/index.d.ts +0 -39
  281. package/dist/tools/docx/operations/handlers/index.js +0 -152
  282. package/dist/tools/docx/operations/html-manipulator.d.ts +0 -24
  283. package/dist/tools/docx/operations/html-manipulator.js +0 -352
  284. package/dist/tools/docx/operations/index.d.ts +0 -14
  285. package/dist/tools/docx/operations/index.js +0 -61
  286. package/dist/tools/docx/operations/operation-handlers.d.ts +0 -3
  287. package/dist/tools/docx/operations/operation-handlers.js +0 -67
  288. package/dist/tools/docx/operations/preprocessor.d.ts +0 -14
  289. package/dist/tools/docx/operations/preprocessor.js +0 -44
  290. package/dist/tools/docx/operations/xml-replacer.d.ts +0 -9
  291. package/dist/tools/docx/operations/xml-replacer.js +0 -35
  292. package/dist/tools/docx/operations.d.ts +0 -13
  293. package/dist/tools/docx/operations.js +0 -13
  294. package/dist/tools/docx/ops/delete-paragraph-at-body-index.d.ts +0 -11
  295. package/dist/tools/docx/ops/delete-paragraph-at-body-index.js +0 -23
  296. package/dist/tools/docx/ops/header-replace-text-exact.d.ts +0 -13
  297. package/dist/tools/docx/ops/header-replace-text-exact.js +0 -55
  298. package/dist/tools/docx/ops/index.d.ts +0 -17
  299. package/dist/tools/docx/ops/index.js +0 -70
  300. package/dist/tools/docx/ops/insert-image-after-text.d.ts +0 -24
  301. package/dist/tools/docx/ops/insert-image-after-text.js +0 -128
  302. package/dist/tools/docx/ops/insert-paragraph-after-text.d.ts +0 -12
  303. package/dist/tools/docx/ops/insert-paragraph-after-text.js +0 -74
  304. package/dist/tools/docx/ops/insert-table-after-text.d.ts +0 -19
  305. package/dist/tools/docx/ops/insert-table-after-text.js +0 -57
  306. package/dist/tools/docx/ops/replace-hyperlink-url.d.ts +0 -12
  307. package/dist/tools/docx/ops/replace-hyperlink-url.js +0 -37
  308. package/dist/tools/docx/ops/replace-paragraph-at-body-index.d.ts +0 -9
  309. package/dist/tools/docx/ops/replace-paragraph-at-body-index.js +0 -25
  310. package/dist/tools/docx/ops/replace-paragraph-text-exact.d.ts +0 -21
  311. package/dist/tools/docx/ops/replace-paragraph-text-exact.js +0 -36
  312. package/dist/tools/docx/ops/replace-table-cell-text.d.ts +0 -25
  313. package/dist/tools/docx/ops/replace-table-cell-text.js +0 -85
  314. package/dist/tools/docx/ops/set-color-for-paragraph-exact.d.ts +0 -9
  315. package/dist/tools/docx/ops/set-color-for-paragraph-exact.js +0 -24
  316. package/dist/tools/docx/ops/set-color-for-style.d.ts +0 -13
  317. package/dist/tools/docx/ops/set-color-for-style.js +0 -31
  318. package/dist/tools/docx/ops/set-paragraph-style-at-body-index.d.ts +0 -8
  319. package/dist/tools/docx/ops/set-paragraph-style-at-body-index.js +0 -57
  320. package/dist/tools/docx/ops/table-set-cell-text.d.ts +0 -9
  321. package/dist/tools/docx/ops/table-set-cell-text.js +0 -40
  322. package/dist/tools/docx/parsers/image-extractor.d.ts +0 -18
  323. package/dist/tools/docx/parsers/image-extractor.js +0 -61
  324. package/dist/tools/docx/parsers/index.d.ts +0 -9
  325. package/dist/tools/docx/parsers/index.js +0 -9
  326. package/dist/tools/docx/parsers/paragraph-parser.d.ts +0 -2
  327. package/dist/tools/docx/parsers/paragraph-parser.js +0 -88
  328. package/dist/tools/docx/parsers/table-parser.d.ts +0 -9
  329. package/dist/tools/docx/parsers/table-parser.js +0 -72
  330. package/dist/tools/docx/parsers/xml-parser.d.ts +0 -25
  331. package/dist/tools/docx/parsers/xml-parser.js +0 -71
  332. package/dist/tools/docx/parsers/zip-reader.d.ts +0 -23
  333. package/dist/tools/docx/parsers/zip-reader.js +0 -52
  334. package/dist/tools/docx/read.d.ts +0 -27
  335. package/dist/tools/docx/read.js +0 -308
  336. package/dist/tools/docx/relationships.d.ts +0 -22
  337. package/dist/tools/docx/relationships.js +0 -76
  338. package/dist/tools/docx/structure.d.ts +0 -25
  339. package/dist/tools/docx/structure.js +0 -102
  340. package/dist/tools/docx/styled-html-parser.d.ts +0 -23
  341. package/dist/tools/docx/styled-html-parser.js +0 -1262
  342. package/dist/tools/docx/types.d.ts +0 -213
  343. package/dist/tools/docx/types.js +0 -5
  344. package/dist/tools/docx/utils/escaping.d.ts +0 -13
  345. package/dist/tools/docx/utils/escaping.js +0 -26
  346. package/dist/tools/docx/utils/images.d.ts +0 -9
  347. package/dist/tools/docx/utils/images.js +0 -26
  348. package/dist/tools/docx/utils/index.d.ts +0 -12
  349. package/dist/tools/docx/utils/index.js +0 -17
  350. package/dist/tools/docx/utils/markdown.d.ts +0 -13
  351. package/dist/tools/docx/utils/markdown.js +0 -32
  352. package/dist/tools/docx/utils/paths.d.ts +0 -15
  353. package/dist/tools/docx/utils/paths.js +0 -27
  354. package/dist/tools/docx/utils/versioning.d.ts +0 -25
  355. package/dist/tools/docx/utils/versioning.js +0 -55
  356. package/dist/tools/docx/utils.d.ts +0 -101
  357. package/dist/tools/docx/utils.js +0 -299
  358. package/dist/tools/docx/validate.d.ts +0 -33
  359. package/dist/tools/docx/validate.js +0 -49
  360. package/dist/tools/docx/validators.d.ts +0 -13
  361. package/dist/tools/docx/validators.js +0 -40
  362. package/dist/tools/docx/write.d.ts +0 -17
  363. package/dist/tools/docx/write.js +0 -88
  364. package/dist/tools/docx/xml-view-test.js +0 -63
  365. package/dist/tools/docx/xml-view.d.ts +0 -56
  366. package/dist/tools/docx/xml-view.js +0 -169
  367. package/dist/tools/docx/zip.d.ts +0 -21
  368. package/dist/tools/docx/zip.js +0 -35
  369. package/dist/tools/pdf-processor.js +0 -3
  370. package/dist/tools/search.d.ts +0 -32
  371. package/dist/tools/search.js +0 -202
  372. package/dist/ui/file-preview/src/app.d.ts +0 -4
  373. package/dist/ui/file-preview/src/app.js +0 -800
  374. package/dist/utils/crash-logger.d.ts +0 -18
  375. package/dist/utils/crash-logger.js +0 -44
  376. package/dist/utils/dedent.d.ts +0 -8
  377. package/dist/utils/dedent.js +0 -38
  378. /package/dist/{http-server-auto-tunnel.d.ts → ui/config-editor/main.d.ts} +0 -0
  379. /package/dist/{test-docx.d.ts → ui/config-editor/src/main.d.ts} +0 -0
  380. /package/dist/{tools/docx/xml-view-test.d.ts → ui/file-preview/main.d.ts} +0 -0
  381. /package/dist/ui/file-preview/src/components/{toolbar.d.ts → Toolbar.d.ts} +0 -0
  382. /package/dist/ui/file-preview/src/components/{toolbar.js → Toolbar.js} +0 -0
  383. /package/dist/{tools/pdf-processor.d.ts → ui/file-preview/src/model.js} +0 -0
@@ -1,201 +0,0 @@
1
- #!/usr/bin/env node
2
- import { FilteredStdioServerTransport } from './custom-stdio.js';
3
- import { server } from './server.js';
4
- import { configManager } from './config-manager.js';
5
- import { runSetup } from './npm-scripts/setup.js';
6
- import { runUninstall } from './npm-scripts/uninstall.js';
7
- import { capture } from './utils/capture.js';
8
- import { logToStderr, logger } from './utils/logger.js';
9
- import { OAuthHttpServer } from './oauth/server.js';
10
- async function runServer() {
11
- try {
12
- // Check if first argument is "setup"
13
- if (process.argv[2] === 'setup') {
14
- await runSetup();
15
- return;
16
- }
17
- // Check if first argument is "remove"
18
- if (process.argv[2] === 'remove') {
19
- await runUninstall();
20
- return;
21
- }
22
- // Check for HTTP mode with OAuth
23
- const httpMode = process.argv.includes('--http') || process.argv.includes('--oauth');
24
- const port = getPortFromArgs() || 8000;
25
- if (httpMode) {
26
- await runHttpServer(port);
27
- }
28
- else {
29
- await runStdioServer();
30
- }
31
- }
32
- catch (error) {
33
- logger.error('Failed to start server:', error);
34
- process.exit(1);
35
- }
36
- }
37
- async function runStdioServer() {
38
- logger.info('Loading server.ts');
39
- logger.info('Setting up request handlers...');
40
- try {
41
- logger.info('Loading configuration...');
42
- await configManager.loadConfig();
43
- logger.info('Configuration loaded successfully');
44
- const transport = new FilteredStdioServerTransport();
45
- logger.info('Enhanced FilteredStdioServerTransport initialized');
46
- logger.info('Connecting server...');
47
- await server.connect(transport);
48
- logger.info('Server connected successfully');
49
- }
50
- catch (error) {
51
- await capture('error_start_stdio_server', { error });
52
- logToStderr('error', `Failed to start stdio server: ${error}`);
53
- throw error;
54
- }
55
- }
56
- async function runHttpServer(port) {
57
- logger.info(`Starting HTTP server with OAuth on port ${port}`);
58
- try {
59
- logger.info('Loading configuration...');
60
- await configManager.loadConfig();
61
- logger.info('Configuration loaded successfully');
62
- // OAuth configuration
63
- const baseUrl = `http://localhost:${port}`;
64
- const oauthConfig = {
65
- enabled: true,
66
- clientId: 'desktop-commander-mcp',
67
- clientSecret: 'dc-secret-' + Math.random().toString(36).substring(7),
68
- redirectUri: `${baseUrl}/callback`,
69
- authorizationUrl: `${baseUrl}/authorize`,
70
- tokenUrl: `${baseUrl}/token`,
71
- scope: 'mcp:access mcp:tools mcp:resources',
72
- issuer: baseUrl
73
- };
74
- // Create MCP handler for HTTP requests
75
- const mcpHandler = createMcpHttpHandler();
76
- // Create OAuth HTTP server
77
- const oauthServer = new OAuthHttpServer(oauthConfig, mcpHandler);
78
- oauthServer.listen(port, () => {
79
- logger.info(`HTTP server running on port ${port}`);
80
- logger.info(`Authorization Server Metadata: ${baseUrl}/.well-known/oauth-authorization-server`);
81
- logger.info(`MCP Endpoint: ${baseUrl}/mcp`);
82
- logger.info(`SSE Endpoint: ${baseUrl}/sse`);
83
- console.log(`\n🚀 DesktopCommanderMCP HTTP Server Started!`);
84
- console.log(`📍 Server URL: ${baseUrl}`);
85
- console.log(`🔐 OAuth Metadata: ${baseUrl}/.well-known/oauth-authorization-server`);
86
- console.log(`🔧 MCP Endpoint: ${baseUrl}/mcp`);
87
- console.log(`⚡ SSE Endpoint: ${baseUrl}/sse`);
88
- console.log(`\n📝 For Claude Custom Connectors:`);
89
- console.log(` URL: ${baseUrl}/sse`);
90
- console.log(` Authentication: OAuth`);
91
- });
92
- // Graceful shutdown
93
- process.on('SIGINT', () => {
94
- logger.info('Received SIGINT, shutting down gracefully...');
95
- oauthServer.close(() => {
96
- process.exit(0);
97
- });
98
- });
99
- }
100
- catch (error) {
101
- await capture('error_start_http_server', { error });
102
- logToStderr('error', `Failed to start HTTP server: ${error}`);
103
- throw error;
104
- }
105
- }
106
- function createMcpHttpHandler() {
107
- return (req, res) => {
108
- const url = new URL(req.url, `http://${req.headers.host}`);
109
- // Handle SSE endpoint for MCP clients
110
- if (url.pathname === '/sse') {
111
- handleSSE(req, res);
112
- return;
113
- }
114
- // Handle Streamable HTTP endpoint
115
- if (url.pathname === '/mcp') {
116
- handleStreamableHttp(req, res);
117
- return;
118
- }
119
- // Health check
120
- if (url.pathname === '/health') {
121
- res.writeHead(200, { 'Content-Type': 'application/json' });
122
- res.end(JSON.stringify({ status: 'ok', service: 'DesktopCommanderMCP' }));
123
- return;
124
- }
125
- // 404 for other paths
126
- res.writeHead(404, { 'Content-Type': 'application/json' });
127
- res.end(JSON.stringify({ error: 'Not found' }));
128
- };
129
- }
130
- function handleSSE(req, res) {
131
- // Set SSE headers
132
- res.writeHead(200, {
133
- 'Content-Type': 'text/event-stream',
134
- 'Cache-Control': 'no-cache',
135
- 'Connection': 'keep-alive',
136
- 'Access-Control-Allow-Origin': '*',
137
- 'Access-Control-Allow-Headers': 'Cache-Control'
138
- });
139
- // SSE implementation would go here
140
- // For now, just indicate that SSE is available
141
- res.write('event: connected\n');
142
- res.write('data: {"type":"connected","message":"DesktopCommanderMCP SSE endpoint"}\n\n');
143
- // Keep connection alive
144
- const heartbeat = setInterval(() => {
145
- res.write('event: heartbeat\n');
146
- res.write('data: {"type":"heartbeat","timestamp":' + Date.now() + '}\n\n');
147
- }, 30000);
148
- req.on('close', () => {
149
- clearInterval(heartbeat);
150
- });
151
- }
152
- function handleStreamableHttp(req, res) {
153
- // Handle Streamable HTTP for MCP
154
- res.writeHead(200, { 'Content-Type': 'application/json' });
155
- if (req.method === 'GET') {
156
- // Return server info
157
- res.end(JSON.stringify({
158
- name: 'DesktopCommanderMCP',
159
- version: '0.2.13',
160
- transport: 'streamable-http',
161
- authenticated: !!req.user
162
- }));
163
- return;
164
- }
165
- // Handle MCP protocol messages
166
- if (req.method === 'POST') {
167
- let body = '';
168
- req.on('data', chunk => body += chunk.toString());
169
- req.on('end', () => {
170
- try {
171
- const message = JSON.parse(body);
172
- // Process MCP message through the server
173
- // This would need to be integrated with the existing MCP server
174
- res.end(JSON.stringify({
175
- jsonrpc: '2.0',
176
- id: message.id,
177
- result: { message: 'MCP message received' }
178
- }));
179
- }
180
- catch (error) {
181
- res.writeHead(400, { 'Content-Type': 'application/json' });
182
- res.end(JSON.stringify({ error: 'Invalid JSON' }));
183
- }
184
- });
185
- return;
186
- }
187
- res.writeHead(405, { 'Content-Type': 'application/json' });
188
- res.end(JSON.stringify({ error: 'Method not allowed' }));
189
- }
190
- function getPortFromArgs() {
191
- const portIndex = process.argv.findIndex(arg => arg === '--port');
192
- if (portIndex !== -1 && process.argv[portIndex + 1]) {
193
- return parseInt(process.argv[portIndex + 1], 10);
194
- }
195
- return null;
196
- }
197
- // Run the server
198
- runServer().catch(error => {
199
- console.error('Fatal error:', error);
200
- process.exit(1);
201
- });
@@ -1,20 +0,0 @@
1
- import { Request, Response, NextFunction } from 'express';
2
- import { OAuthManager } from './oauth-manager.js';
3
- declare global {
4
- namespace Express {
5
- interface Request {
6
- auth?: {
7
- username: string;
8
- client_id: string;
9
- scope: string;
10
- };
11
- }
12
- }
13
- }
14
- /**
15
- * Create authentication middleware for MCP endpoints
16
- *
17
- * ChatGPT Workaround: Allow unauthenticated tools/list and initialize requests
18
- * but require auth for actual tool calls
19
- */
20
- export declare function createAuthMiddleware(oauthManager: OAuthManager | null, baseUrl: string, requireAuth: boolean): (req: Request, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>;
@@ -1,62 +0,0 @@
1
- /**
2
- * Create authentication middleware for MCP endpoints
3
- *
4
- * ChatGPT Workaround: Allow unauthenticated tools/list and initialize requests
5
- * but require auth for actual tool calls
6
- */
7
- export function createAuthMiddleware(oauthManager, baseUrl, requireAuth) {
8
- return async (req, res, next) => {
9
- // Skip auth if disabled
10
- if (!requireAuth || !oauthManager) {
11
- return next();
12
- }
13
- // CHATGPT WORKAROUND: Allow unauthenticated discovery requests
14
- // ChatGPT needs to see tools before authenticating
15
- const method = req.body?.method;
16
- if (method === 'initialize' || method === 'tools/list') {
17
- console.log(`⚠️ Allowing unauthenticated ${method} for ChatGPT compatibility`);
18
- return next();
19
- }
20
- const auth = req.headers.authorization;
21
- // Check for Bearer token
22
- if (!auth || !auth.startsWith('Bearer ')) {
23
- console.log(`❌ Auth failed: No Bearer token provided for ${method}`);
24
- return res.status(401)
25
- .set('WWW-Authenticate', `Bearer resource_metadata="${baseUrl}/.well-known/oauth-protected-resource"`)
26
- .json({
27
- jsonrpc: '2.0',
28
- error: {
29
- code: -32001,
30
- message: 'Authorization required',
31
- data: 'Bearer token must be provided in Authorization header'
32
- },
33
- id: null
34
- });
35
- }
36
- // Extract token
37
- const token = auth.substring(7); // Remove "Bearer " prefix
38
- // Validate token
39
- const validation = oauthManager.validateToken(token);
40
- if (!validation.valid) {
41
- console.log(`❌ Auth failed: ${validation.error}`);
42
- return res.status(401).json({
43
- jsonrpc: '2.0',
44
- error: {
45
- code: -32001,
46
- message: 'Invalid or expired token',
47
- data: validation.error
48
- },
49
- id: null
50
- });
51
- }
52
- // Attach user info to request
53
- req.auth = {
54
- username: validation.username,
55
- client_id: validation.client_id,
56
- scope: validation.scope
57
- };
58
- // Log authenticated request
59
- console.log(`✅ Authenticated: ${req.auth.username} (${req.auth.client_id})`);
60
- next();
61
- };
62
- }
@@ -1,3 +0,0 @@
1
- export { OAuthManager } from './oauth-manager.js';
2
- export { createOAuthRoutes } from './oauth-routes.js';
3
- export { createAuthMiddleware } from './auth-middleware.js';
@@ -1,3 +0,0 @@
1
- export { OAuthManager } from './oauth-manager.js';
2
- export { createOAuthRoutes } from './oauth-routes.js';
3
- export { createAuthMiddleware } from './auth-middleware.js';
@@ -1,80 +0,0 @@
1
- interface JWTPayload {
2
- sub: string;
3
- client_id: string;
4
- scope: string;
5
- [key: string]: any;
6
- }
7
- interface TokenValidation {
8
- valid: boolean;
9
- username?: string;
10
- client_id?: string;
11
- scope?: string;
12
- error?: string;
13
- }
14
- interface ClientData {
15
- client_id: string;
16
- client_name: string;
17
- redirect_uris: string[];
18
- grant_types: string[];
19
- response_types: string[];
20
- }
21
- interface AuthCodeData {
22
- username: string;
23
- client_id: string;
24
- redirect_uri: string;
25
- code_challenge?: string;
26
- code_challenge_method?: string;
27
- scope: string;
28
- expiresAt: number;
29
- }
30
- export declare class OAuthManager {
31
- private users;
32
- private codes;
33
- private clients;
34
- private privateKey;
35
- private publicKey;
36
- private baseUrl;
37
- constructor(baseUrl: string);
38
- /**
39
- * Pre-register well-known OAuth clients with fixed IDs
40
- * This prevents issues when server restarts and clients still have cached IDs
41
- */
42
- private preRegisterWellKnownClients;
43
- /**
44
- * Create a JWT token with the given payload
45
- */
46
- createJWT(payload: JWTPayload): string;
47
- /**
48
- * Validate a JWT token
49
- */
50
- validateToken(token: string): TokenValidation;
51
- /**
52
- * Register a new OAuth client
53
- */
54
- registerClient(redirect_uris: string[], client_name?: string): ClientData;
55
- /**
56
- * Get a client by ID
57
- */
58
- getClient(clientId: string): ClientData | undefined;
59
- /**
60
- * List all registered client IDs (for debugging)
61
- */
62
- listClients(): string;
63
- /**
64
- * Validate user credentials
65
- */
66
- validateUser(username: string, password: string): boolean;
67
- /**
68
- * Create an authorization code
69
- */
70
- createAuthCode(data: Omit<AuthCodeData, 'expiresAt'>): string;
71
- /**
72
- * Validate and consume an authorization code
73
- */
74
- validateAuthCode(code: string, client_id: string, redirect_uri: string, code_verifier?: string): {
75
- valid: boolean;
76
- data?: AuthCodeData;
77
- error?: string;
78
- };
79
- }
80
- export {};
@@ -1,179 +0,0 @@
1
- import crypto from 'crypto';
2
- export class OAuthManager {
3
- constructor(baseUrl) {
4
- this.users = new Map([['admin', 'password123']]);
5
- this.codes = new Map();
6
- this.clients = new Map();
7
- this.baseUrl = baseUrl;
8
- // Generate RSA keys for JWT signing
9
- const keys = crypto.generateKeyPairSync('rsa', {
10
- modulusLength: 2048,
11
- publicKeyEncoding: { type: 'spki', format: 'pem' },
12
- privateKeyEncoding: { type: 'pkcs8', format: 'pem' }
13
- });
14
- this.privateKey = keys.privateKey;
15
- this.publicKey = keys.publicKey;
16
- console.log('🔐 OAuth Manager: JWT Keys generated');
17
- // Pre-register well-known clients for common AI tools
18
- // This survives server restarts as they use fixed IDs
19
- this.preRegisterWellKnownClients();
20
- }
21
- /**
22
- * Pre-register well-known OAuth clients with fixed IDs
23
- * This prevents issues when server restarts and clients still have cached IDs
24
- */
25
- preRegisterWellKnownClients() {
26
- // ChatGPT client
27
- const chatgptClient = {
28
- client_id: 'chatgpt-fixed-client-id',
29
- client_name: 'ChatGPT',
30
- redirect_uris: [
31
- 'https://chatgpt.com/connector_platform_oauth_redirect',
32
- 'https://chat.openai.com/connector_platform_oauth_redirect'
33
- ],
34
- grant_types: ['authorization_code'],
35
- response_types: ['code']
36
- };
37
- this.clients.set(chatgptClient.client_id, chatgptClient);
38
- console.log(`🔐 Pre-registered: ${chatgptClient.client_name} (${chatgptClient.client_id})`);
39
- // Claude client
40
- const claudeClient = {
41
- client_id: 'claude-fixed-client-id',
42
- client_name: 'Claude',
43
- redirect_uris: [
44
- 'https://claude.ai/oauth/callback',
45
- 'http://localhost:3000/callback'
46
- ],
47
- grant_types: ['authorization_code'],
48
- response_types: ['code']
49
- };
50
- this.clients.set(claudeClient.client_id, claudeClient);
51
- console.log(`🔐 Pre-registered: ${claudeClient.client_name} (${claudeClient.client_id})`);
52
- }
53
- /**
54
- * Create a JWT token with the given payload
55
- */
56
- createJWT(payload) {
57
- const header = { alg: 'RS256', typ: 'JWT', kid: 'key-1' };
58
- const now = Math.floor(Date.now() / 1000);
59
- const claims = {
60
- ...payload,
61
- iat: now,
62
- exp: now + 3600, // 1 hour expiration
63
- iss: this.baseUrl,
64
- aud: this.baseUrl
65
- };
66
- const encodedHeader = Buffer.from(JSON.stringify(header)).toString('base64url');
67
- const encodedPayload = Buffer.from(JSON.stringify(claims)).toString('base64url');
68
- const signature = crypto.sign('sha256', Buffer.from(`${encodedHeader}.${encodedPayload}`), this.privateKey);
69
- return `${encodedHeader}.${encodedPayload}.${signature.toString('base64url')}`;
70
- }
71
- /**
72
- * Validate a JWT token
73
- */
74
- validateToken(token) {
75
- try {
76
- const parts = token.split('.');
77
- if (parts.length !== 3) {
78
- return { valid: false, error: 'Invalid token format' };
79
- }
80
- const payload = JSON.parse(Buffer.from(parts[1], 'base64url').toString());
81
- // Check expiration
82
- if (payload.exp < Math.floor(Date.now() / 1000)) {
83
- return { valid: false, error: 'Token expired' };
84
- }
85
- // Verify signature
86
- const signature = parts[2];
87
- const data = `${parts[0]}.${parts[1]}`;
88
- const valid = crypto.verify('sha256', Buffer.from(data), this.publicKey, Buffer.from(signature, 'base64url'));
89
- if (!valid) {
90
- return { valid: false, error: 'Invalid signature' };
91
- }
92
- return {
93
- valid: true,
94
- username: payload.sub,
95
- client_id: payload.client_id,
96
- scope: payload.scope
97
- };
98
- }
99
- catch (err) {
100
- return { valid: false, error: err instanceof Error ? err.message : 'Unknown error' };
101
- }
102
- }
103
- /**
104
- * Register a new OAuth client
105
- */
106
- registerClient(redirect_uris, client_name) {
107
- const clientId = crypto.randomUUID();
108
- const client = {
109
- client_id: clientId,
110
- client_name: client_name || 'MCP Client',
111
- redirect_uris,
112
- grant_types: ['authorization_code'],
113
- response_types: ['code']
114
- };
115
- this.clients.set(clientId, client);
116
- console.log(`🔐 OAuth Manager: Registered client ${clientId} (${client.client_name})`);
117
- return client;
118
- }
119
- /**
120
- * Get a client by ID
121
- */
122
- getClient(clientId) {
123
- return this.clients.get(clientId);
124
- }
125
- /**
126
- * List all registered client IDs (for debugging)
127
- */
128
- listClients() {
129
- const ids = Array.from(this.clients.keys());
130
- return ids.length > 0 ? ids.join(', ') : 'none';
131
- }
132
- /**
133
- * Validate user credentials
134
- */
135
- validateUser(username, password) {
136
- return this.users.get(username) === password;
137
- }
138
- /**
139
- * Create an authorization code
140
- */
141
- createAuthCode(data) {
142
- const code = crypto.randomBytes(32).toString('base64url');
143
- this.codes.set(code, {
144
- ...data,
145
- expiresAt: Date.now() + 600000 // 10 minutes
146
- });
147
- console.log(`🔐 OAuth Manager: Created auth code for user ${data.username}`);
148
- return code;
149
- }
150
- /**
151
- * Validate and consume an authorization code
152
- */
153
- validateAuthCode(code, client_id, redirect_uri, code_verifier) {
154
- const codeData = this.codes.get(code);
155
- if (!codeData) {
156
- return { valid: false, error: 'Invalid or expired code' };
157
- }
158
- if (codeData.expiresAt < Date.now()) {
159
- this.codes.delete(code);
160
- return { valid: false, error: 'Code expired' };
161
- }
162
- if (codeData.client_id !== client_id || codeData.redirect_uri !== redirect_uri) {
163
- return { valid: false, error: 'Client ID or redirect URI mismatch' };
164
- }
165
- // PKCE verification
166
- if (codeData.code_challenge) {
167
- if (!code_verifier) {
168
- return { valid: false, error: 'code_verifier required' };
169
- }
170
- const hash = crypto.createHash('sha256').update(code_verifier).digest('base64url');
171
- if (hash !== codeData.code_challenge) {
172
- return { valid: false, error: 'Invalid code_verifier' };
173
- }
174
- }
175
- // Delete code after use (one-time use)
176
- this.codes.delete(code);
177
- return { valid: true, data: codeData };
178
- }
179
- }
@@ -1,3 +0,0 @@
1
- import { Router } from 'express';
2
- import { OAuthManager } from './oauth-manager.js';
3
- export declare function createOAuthRoutes(oauthManager: OAuthManager, baseUrl: string): Router;