@wonderwhy-er/desktop-commander 0.2.38 → 0.2.40

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 (263) hide show
  1. package/README.md +53 -2
  2. package/dist/handlers/filesystem-handlers.d.ts +5 -0
  3. package/dist/handlers/filesystem-handlers.js +14 -2
  4. package/dist/remote-device/desktop-commander-integration.js +1 -1
  5. package/dist/search-manager.js +31 -38
  6. package/dist/server.js +9 -4
  7. package/dist/terminal-manager.js +4 -2
  8. package/dist/tools/edit.js +34 -1
  9. package/dist/tools/filesystem.js +91 -3
  10. package/dist/tools/improved-process-tools.js +2 -1
  11. package/dist/ui/config-editor/config-editor-runtime.js +65 -14096
  12. package/dist/ui/config-editor/styles.css +2 -1
  13. package/dist/ui/file-preview/preview-runtime.js +435 -26533
  14. package/dist/ui/file-preview/shared/preview-file-types.d.ts +1 -1
  15. package/dist/ui/file-preview/src/app.d.ts +1 -5
  16. package/dist/ui/file-preview/src/app.js +384 -534
  17. package/dist/ui/file-preview/src/components/markdown-renderer.js +47 -9
  18. package/dist/ui/file-preview/src/directory-controller.d.ts +8 -0
  19. package/dist/ui/file-preview/src/directory-controller.js +233 -0
  20. package/dist/ui/file-preview/src/document-layout.d.ts +20 -0
  21. package/dist/ui/file-preview/src/document-layout.js +109 -0
  22. package/dist/ui/file-preview/src/document-outline.d.ts +17 -0
  23. package/dist/ui/file-preview/src/document-outline.js +97 -0
  24. package/dist/ui/file-preview/src/document-workspace.d.ts +19 -0
  25. package/dist/ui/file-preview/src/document-workspace.js +33 -0
  26. package/dist/ui/file-preview/src/file-type-handlers.d.ts +10 -0
  27. package/dist/ui/file-preview/src/file-type-handlers.js +98 -0
  28. package/dist/ui/file-preview/src/host/external-actions.d.ts +19 -0
  29. package/dist/ui/file-preview/src/host/external-actions.js +94 -0
  30. package/dist/ui/file-preview/src/host/selection-context.d.ts +9 -0
  31. package/dist/ui/file-preview/src/host/selection-context.js +106 -0
  32. package/dist/ui/file-preview/src/markdown/conflict-dialog.d.ts +40 -0
  33. package/dist/ui/file-preview/src/markdown/conflict-dialog.js +163 -0
  34. package/dist/ui/file-preview/src/markdown/controller.d.ts +44 -0
  35. package/dist/ui/file-preview/src/markdown/controller.js +1040 -0
  36. package/dist/ui/file-preview/src/markdown/editor.d.ts +131 -0
  37. package/dist/ui/file-preview/src/markdown/editor.js +1479 -0
  38. package/dist/ui/file-preview/src/markdown/linking.d.ts +16 -0
  39. package/dist/ui/file-preview/src/markdown/linking.js +228 -0
  40. package/dist/ui/file-preview/src/markdown/outline.d.ts +2 -0
  41. package/dist/ui/file-preview/src/markdown/outline.js +16 -0
  42. package/dist/ui/file-preview/src/markdown/parser.d.ts +30 -0
  43. package/dist/ui/file-preview/src/markdown/parser.js +38 -0
  44. package/dist/ui/file-preview/src/markdown/preview.d.ts +1 -0
  45. package/dist/ui/file-preview/src/markdown/preview.js +20 -0
  46. package/dist/ui/file-preview/src/markdown/slugify.d.ts +3 -0
  47. package/dist/ui/file-preview/src/markdown/slugify.js +31 -0
  48. package/dist/ui/file-preview/src/markdown/utils.d.ts +1 -0
  49. package/dist/ui/file-preview/src/markdown/utils.js +15 -0
  50. package/dist/ui/file-preview/src/model.d.ts +35 -0
  51. package/dist/ui/file-preview/src/panel-actions.d.ts +17 -0
  52. package/dist/ui/file-preview/src/panel-actions.js +182 -0
  53. package/dist/ui/file-preview/src/path-utils.d.ts +6 -0
  54. package/dist/ui/file-preview/src/path-utils.js +64 -0
  55. package/dist/ui/file-preview/src/payload-utils.d.ts +11 -0
  56. package/dist/ui/file-preview/src/payload-utils.js +94 -0
  57. package/dist/ui/file-preview/styles.css +1066 -233
  58. package/dist/ui/shared/widget-state.d.ts +6 -1
  59. package/dist/ui/shared/widget-state.js +102 -4
  60. package/dist/utils/capture.js +1 -1
  61. package/dist/utils/files/base.d.ts +2 -0
  62. package/dist/utils/open-browser.js +1 -1
  63. package/dist/utils/toolHistory.d.ts +13 -0
  64. package/dist/utils/toolHistory.js +65 -0
  65. package/dist/version.d.ts +1 -1
  66. package/dist/version.js +1 -1
  67. package/package.json +12 -1
  68. package/dist/data/spec-kit-prompts.json +0 -123
  69. package/dist/handlers/macos-control-handlers.d.ts +0 -16
  70. package/dist/handlers/macos-control-handlers.js +0 -81
  71. package/dist/handlers/node-handlers.d.ts +0 -6
  72. package/dist/handlers/node-handlers.js +0 -73
  73. package/dist/handlers/test-crash-handler.d.ts +0 -11
  74. package/dist/handlers/test-crash-handler.js +0 -26
  75. package/dist/http-index.d.ts +0 -45
  76. package/dist/http-index.js +0 -51
  77. package/dist/http-server-auto-tunnel.js +0 -667
  78. package/dist/http-server-named-tunnel.d.ts +0 -2
  79. package/dist/http-server-named-tunnel.js +0 -167
  80. package/dist/http-server-tunnel.d.ts +0 -2
  81. package/dist/http-server-tunnel.js +0 -111
  82. package/dist/http-server.d.ts +0 -2
  83. package/dist/http-server.js +0 -270
  84. package/dist/index-oauth.d.ts +0 -2
  85. package/dist/index-oauth.js +0 -201
  86. package/dist/lib.d.ts +0 -10
  87. package/dist/lib.js +0 -10
  88. package/dist/oauth/auth-middleware.d.ts +0 -20
  89. package/dist/oauth/auth-middleware.js +0 -62
  90. package/dist/oauth/index.d.ts +0 -3
  91. package/dist/oauth/index.js +0 -3
  92. package/dist/oauth/oauth-manager.d.ts +0 -80
  93. package/dist/oauth/oauth-manager.js +0 -179
  94. package/dist/oauth/oauth-routes.d.ts +0 -3
  95. package/dist/oauth/oauth-routes.js +0 -377
  96. package/dist/oauth/provider.d.ts +0 -22
  97. package/dist/oauth/provider.js +0 -124
  98. package/dist/oauth/server.d.ts +0 -18
  99. package/dist/oauth/server.js +0 -160
  100. package/dist/oauth/types.d.ts +0 -54
  101. package/dist/oauth/types.js +0 -2
  102. package/dist/remote-device/templates/auth-success.d.ts +0 -1
  103. package/dist/remote-device/templates/auth-success.js +0 -30
  104. package/dist/setup.log +0 -275
  105. package/dist/test-docx.d.ts +0 -1
  106. package/dist/test-setup.js +0 -14
  107. package/dist/tools/docx/builders/html-builder.d.ts +0 -17
  108. package/dist/tools/docx/builders/html-builder.js +0 -92
  109. package/dist/tools/docx/builders/image.d.ts +0 -14
  110. package/dist/tools/docx/builders/image.js +0 -84
  111. package/dist/tools/docx/builders/index.d.ts +0 -11
  112. package/dist/tools/docx/builders/index.js +0 -11
  113. package/dist/tools/docx/builders/markdown-builder.d.ts +0 -2
  114. package/dist/tools/docx/builders/markdown-builder.js +0 -260
  115. package/dist/tools/docx/builders/paragraph.d.ts +0 -12
  116. package/dist/tools/docx/builders/paragraph.js +0 -29
  117. package/dist/tools/docx/builders/table.d.ts +0 -10
  118. package/dist/tools/docx/builders/table.js +0 -138
  119. package/dist/tools/docx/builders/utils.d.ts +0 -5
  120. package/dist/tools/docx/builders/utils.js +0 -18
  121. package/dist/tools/docx/constants.d.ts +0 -32
  122. package/dist/tools/docx/constants.js +0 -61
  123. package/dist/tools/docx/converters/markdown-to-html.d.ts +0 -17
  124. package/dist/tools/docx/converters/markdown-to-html.js +0 -111
  125. package/dist/tools/docx/create.d.ts +0 -21
  126. package/dist/tools/docx/create.js +0 -386
  127. package/dist/tools/docx/dom.d.ts +0 -139
  128. package/dist/tools/docx/dom.js +0 -448
  129. package/dist/tools/docx/errors.d.ts +0 -28
  130. package/dist/tools/docx/errors.js +0 -48
  131. package/dist/tools/docx/extractors/images.d.ts +0 -14
  132. package/dist/tools/docx/extractors/images.js +0 -40
  133. package/dist/tools/docx/extractors/metadata.d.ts +0 -14
  134. package/dist/tools/docx/extractors/metadata.js +0 -64
  135. package/dist/tools/docx/extractors/sections.d.ts +0 -14
  136. package/dist/tools/docx/extractors/sections.js +0 -61
  137. package/dist/tools/docx/html.d.ts +0 -17
  138. package/dist/tools/docx/html.js +0 -111
  139. package/dist/tools/docx/index.d.ts +0 -10
  140. package/dist/tools/docx/index.js +0 -10
  141. package/dist/tools/docx/markdown.d.ts +0 -84
  142. package/dist/tools/docx/markdown.js +0 -507
  143. package/dist/tools/docx/modify.d.ts +0 -28
  144. package/dist/tools/docx/modify.js +0 -271
  145. package/dist/tools/docx/operations/handlers/index.d.ts +0 -39
  146. package/dist/tools/docx/operations/handlers/index.js +0 -152
  147. package/dist/tools/docx/operations/html-manipulator.d.ts +0 -24
  148. package/dist/tools/docx/operations/html-manipulator.js +0 -352
  149. package/dist/tools/docx/operations/index.d.ts +0 -14
  150. package/dist/tools/docx/operations/index.js +0 -61
  151. package/dist/tools/docx/operations/operation-handlers.d.ts +0 -3
  152. package/dist/tools/docx/operations/operation-handlers.js +0 -67
  153. package/dist/tools/docx/operations/preprocessor.d.ts +0 -14
  154. package/dist/tools/docx/operations/preprocessor.js +0 -44
  155. package/dist/tools/docx/operations/xml-replacer.d.ts +0 -9
  156. package/dist/tools/docx/operations/xml-replacer.js +0 -35
  157. package/dist/tools/docx/operations.d.ts +0 -13
  158. package/dist/tools/docx/operations.js +0 -13
  159. package/dist/tools/docx/ops/delete-paragraph-at-body-index.d.ts +0 -11
  160. package/dist/tools/docx/ops/delete-paragraph-at-body-index.js +0 -23
  161. package/dist/tools/docx/ops/header-replace-text-exact.d.ts +0 -13
  162. package/dist/tools/docx/ops/header-replace-text-exact.js +0 -55
  163. package/dist/tools/docx/ops/index.d.ts +0 -17
  164. package/dist/tools/docx/ops/index.js +0 -70
  165. package/dist/tools/docx/ops/insert-image-after-text.d.ts +0 -24
  166. package/dist/tools/docx/ops/insert-image-after-text.js +0 -128
  167. package/dist/tools/docx/ops/insert-paragraph-after-text.d.ts +0 -12
  168. package/dist/tools/docx/ops/insert-paragraph-after-text.js +0 -74
  169. package/dist/tools/docx/ops/insert-table-after-text.d.ts +0 -19
  170. package/dist/tools/docx/ops/insert-table-after-text.js +0 -57
  171. package/dist/tools/docx/ops/replace-hyperlink-url.d.ts +0 -12
  172. package/dist/tools/docx/ops/replace-hyperlink-url.js +0 -37
  173. package/dist/tools/docx/ops/replace-paragraph-at-body-index.d.ts +0 -9
  174. package/dist/tools/docx/ops/replace-paragraph-at-body-index.js +0 -25
  175. package/dist/tools/docx/ops/replace-paragraph-text-exact.d.ts +0 -21
  176. package/dist/tools/docx/ops/replace-paragraph-text-exact.js +0 -36
  177. package/dist/tools/docx/ops/replace-table-cell-text.d.ts +0 -25
  178. package/dist/tools/docx/ops/replace-table-cell-text.js +0 -85
  179. package/dist/tools/docx/ops/set-color-for-paragraph-exact.d.ts +0 -9
  180. package/dist/tools/docx/ops/set-color-for-paragraph-exact.js +0 -24
  181. package/dist/tools/docx/ops/set-color-for-style.d.ts +0 -13
  182. package/dist/tools/docx/ops/set-color-for-style.js +0 -31
  183. package/dist/tools/docx/ops/set-paragraph-style-at-body-index.d.ts +0 -8
  184. package/dist/tools/docx/ops/set-paragraph-style-at-body-index.js +0 -57
  185. package/dist/tools/docx/ops/table-set-cell-text.d.ts +0 -9
  186. package/dist/tools/docx/ops/table-set-cell-text.js +0 -40
  187. package/dist/tools/docx/parsers/image-extractor.d.ts +0 -18
  188. package/dist/tools/docx/parsers/image-extractor.js +0 -61
  189. package/dist/tools/docx/parsers/index.d.ts +0 -9
  190. package/dist/tools/docx/parsers/index.js +0 -9
  191. package/dist/tools/docx/parsers/paragraph-parser.d.ts +0 -2
  192. package/dist/tools/docx/parsers/paragraph-parser.js +0 -88
  193. package/dist/tools/docx/parsers/table-parser.d.ts +0 -9
  194. package/dist/tools/docx/parsers/table-parser.js +0 -72
  195. package/dist/tools/docx/parsers/xml-parser.d.ts +0 -25
  196. package/dist/tools/docx/parsers/xml-parser.js +0 -71
  197. package/dist/tools/docx/parsers/zip-reader.d.ts +0 -23
  198. package/dist/tools/docx/parsers/zip-reader.js +0 -52
  199. package/dist/tools/docx/read.d.ts +0 -27
  200. package/dist/tools/docx/read.js +0 -308
  201. package/dist/tools/docx/relationships.d.ts +0 -22
  202. package/dist/tools/docx/relationships.js +0 -76
  203. package/dist/tools/docx/structure.d.ts +0 -25
  204. package/dist/tools/docx/structure.js +0 -102
  205. package/dist/tools/docx/styled-html-parser.d.ts +0 -23
  206. package/dist/tools/docx/styled-html-parser.js +0 -1262
  207. package/dist/tools/docx/types.d.ts +0 -213
  208. package/dist/tools/docx/types.js +0 -5
  209. package/dist/tools/docx/utils/escaping.d.ts +0 -13
  210. package/dist/tools/docx/utils/escaping.js +0 -26
  211. package/dist/tools/docx/utils/images.d.ts +0 -9
  212. package/dist/tools/docx/utils/images.js +0 -26
  213. package/dist/tools/docx/utils/index.d.ts +0 -12
  214. package/dist/tools/docx/utils/index.js +0 -17
  215. package/dist/tools/docx/utils/markdown.d.ts +0 -13
  216. package/dist/tools/docx/utils/markdown.js +0 -32
  217. package/dist/tools/docx/utils/paths.d.ts +0 -15
  218. package/dist/tools/docx/utils/paths.js +0 -27
  219. package/dist/tools/docx/utils/versioning.d.ts +0 -25
  220. package/dist/tools/docx/utils/versioning.js +0 -55
  221. package/dist/tools/docx/utils.d.ts +0 -101
  222. package/dist/tools/docx/utils.js +0 -299
  223. package/dist/tools/docx/validate.d.ts +0 -33
  224. package/dist/tools/docx/validate.js +0 -49
  225. package/dist/tools/docx/validators.d.ts +0 -13
  226. package/dist/tools/docx/validators.js +0 -40
  227. package/dist/tools/docx/write.d.ts +0 -17
  228. package/dist/tools/docx/write.js +0 -88
  229. package/dist/tools/docx/xml-view-test.d.ts +0 -1
  230. package/dist/tools/docx/xml-view-test.js +0 -63
  231. package/dist/tools/docx/xml-view.d.ts +0 -56
  232. package/dist/tools/docx/xml-view.js +0 -169
  233. package/dist/tools/docx/zip.d.ts +0 -21
  234. package/dist/tools/docx/zip.js +0 -35
  235. package/dist/tools/macos-control/ax-adapter.d.ts +0 -55
  236. package/dist/tools/macos-control/ax-adapter.js +0 -438
  237. package/dist/tools/macos-control/cdp-adapter.d.ts +0 -23
  238. package/dist/tools/macos-control/cdp-adapter.js +0 -402
  239. package/dist/tools/macos-control/orchestrator.d.ts +0 -77
  240. package/dist/tools/macos-control/orchestrator.js +0 -136
  241. package/dist/tools/macos-control/role-aliases.d.ts +0 -5
  242. package/dist/tools/macos-control/role-aliases.js +0 -34
  243. package/dist/tools/macos-control/types.d.ts +0 -129
  244. package/dist/tools/macos-control/types.js +0 -1
  245. package/dist/tools/pdf-processor.d.ts +0 -1
  246. package/dist/tools/pdf-processor.js +0 -3
  247. package/dist/tools/search.d.ts +0 -32
  248. package/dist/tools/search.js +0 -202
  249. package/dist/ui/file-preview/src/components/toolbar.d.ts +0 -6
  250. package/dist/ui/file-preview/src/components/toolbar.js +0 -75
  251. package/dist/ui/shared/host-lifecycle.d.ts +0 -16
  252. package/dist/ui/shared/host-lifecycle.js +0 -35
  253. package/dist/ui/shared/rpc-client.d.ts +0 -14
  254. package/dist/ui/shared/rpc-client.js +0 -72
  255. package/dist/ui/shared/theme-adaptation.d.ts +0 -10
  256. package/dist/ui/shared/theme-adaptation.js +0 -118
  257. package/dist/ui/shared/tool-header.d.ts +0 -9
  258. package/dist/ui/shared/tool-header.js +0 -25
  259. package/dist/utils/crash-logger.d.ts +0 -18
  260. package/dist/utils/crash-logger.js +0 -44
  261. package/dist/utils/dedent.d.ts +0 -8
  262. package/dist/utils/dedent.js +0 -38
  263. /package/dist/{http-server-auto-tunnel.d.ts → ui/file-preview/src/model.js} +0 -0
@@ -1,118 +0,0 @@
1
- function isObject(value) {
2
- return typeof value === 'object' && value !== null;
3
- }
4
- function normalizeThemeMode(value) {
5
- if (typeof value !== 'string') {
6
- return undefined;
7
- }
8
- const normalized = value.trim().toLowerCase();
9
- if (normalized === 'dark' || normalized === 'night') {
10
- return 'dark';
11
- }
12
- if (normalized === 'light' || normalized === 'day') {
13
- return 'light';
14
- }
15
- return undefined;
16
- }
17
- function pickThemeCandidate(value) {
18
- if (!isObject(value)) {
19
- return [];
20
- }
21
- const candidates = [
22
- value.theme,
23
- value.colorScheme,
24
- value.appearance,
25
- value.mode,
26
- ];
27
- if (isObject(value.context)) {
28
- candidates.push(value.context, value.context.theme, value.context.colorScheme);
29
- }
30
- if (isObject(value.params)) {
31
- candidates.push(value.params, value.params.theme, value.params.colorScheme, value.params.context);
32
- }
33
- return candidates;
34
- }
35
- export function resolveThemeMode(value) {
36
- const direct = normalizeThemeMode(value);
37
- if (direct) {
38
- return direct;
39
- }
40
- if (!isObject(value)) {
41
- return undefined;
42
- }
43
- for (const candidate of pickThemeCandidate(value)) {
44
- const resolved = resolveThemeMode(candidate);
45
- if (resolved) {
46
- return resolved;
47
- }
48
- }
49
- return undefined;
50
- }
51
- function isSafeCssVariableName(name) {
52
- return /^--[a-zA-Z0-9_-]+$/.test(name);
53
- }
54
- function extractCssVariableMap(value) {
55
- if (!isObject(value)) {
56
- return {};
57
- }
58
- const params = isObject(value.params) ? value.params : undefined;
59
- const paramsContext = params && isObject(params.context) ? params.context : undefined;
60
- const rawMapCandidates = [
61
- value.cssVariables,
62
- value.variables,
63
- value.tokens,
64
- isObject(value.theme) ? value.theme.cssVariables : undefined,
65
- isObject(value.theme) ? value.theme.variables : undefined,
66
- isObject(value.theme) ? value.theme.tokens : undefined,
67
- isObject(value.context) ? value.context.cssVariables : undefined,
68
- isObject(value.context) ? value.context.variables : undefined,
69
- isObject(value.context) ? value.context.tokens : undefined,
70
- params ? params.cssVariables : undefined,
71
- params ? params.variables : undefined,
72
- params ? params.tokens : undefined,
73
- paramsContext ? paramsContext.cssVariables : undefined,
74
- paramsContext ? paramsContext.variables : undefined,
75
- paramsContext ? paramsContext.tokens : undefined,
76
- ];
77
- for (const candidate of rawMapCandidates) {
78
- if (!isObject(candidate)) {
79
- continue;
80
- }
81
- const next = {};
82
- for (const [rawKey, rawValue] of Object.entries(candidate)) {
83
- if (typeof rawValue !== 'string') {
84
- continue;
85
- }
86
- const key = rawKey.startsWith('--') ? rawKey : `--${rawKey}`;
87
- if (!isSafeCssVariableName(key)) {
88
- continue;
89
- }
90
- next[key] = rawValue.trim();
91
- }
92
- return next;
93
- }
94
- return {};
95
- }
96
- function applyCssVariables(root, variableMap) {
97
- for (const [name, value] of Object.entries(variableMap)) {
98
- root.style.setProperty(name, value);
99
- }
100
- }
101
- export function createUiThemeAdapter(root = document.documentElement) {
102
- const applyFromData = (data) => {
103
- const mode = resolveThemeMode(data);
104
- const variableMap = extractCssVariableMap(data);
105
- const hasChanges = Boolean(mode) || Object.keys(variableMap).length > 0;
106
- if (mode) {
107
- root.dataset.theme = mode;
108
- root.style.colorScheme = mode;
109
- }
110
- if (Object.keys(variableMap).length > 0) {
111
- applyCssVariables(root, variableMap);
112
- }
113
- return hasChanges;
114
- };
115
- return {
116
- applyFromData,
117
- };
118
- }
@@ -1,9 +0,0 @@
1
- export interface ToolHeaderConfig {
2
- pillLabel: string;
3
- pillClassName?: string;
4
- title: string;
5
- subtitle: string;
6
- badges: string[];
7
- actionsHtml: string;
8
- }
9
- export declare function renderToolHeader(config: ToolHeaderConfig): string;
@@ -1,25 +0,0 @@
1
- /**
2
- * Reusable header renderer for MCP tool UIs. It provides a consistent title/description/status pattern so each app presents uniform top-of-page context.
3
- */
4
- import { escapeHtml } from './escape-html.js';
5
- export function renderToolHeader(config) {
6
- return `
7
- <header class="toolbar">
8
- <div class="meta">
9
- <div class="meta-main">
10
- <span class="file-pill ${escapeHtml(config.pillClassName ?? '')}">${escapeHtml(config.pillLabel)}</span>
11
- <div class="meta-text">
12
- <span class="filename" title="${escapeHtml(config.title)}">${escapeHtml(config.title)}</span>
13
- <span class="filepath" title="${escapeHtml(config.subtitle)}">${escapeHtml(config.subtitle)}</span>
14
- </div>
15
- </div>
16
- <div class="meta-badges">
17
- ${config.badges.map((badge) => `<span class="badge">${escapeHtml(badge)}</span>`).join('')}
18
- </div>
19
- </div>
20
- <div class="actions">
21
- ${config.actionsHtml}
22
- </div>
23
- </header>
24
- `;
25
- }
@@ -1,18 +0,0 @@
1
- interface CrashEntry {
2
- timestamp: string;
3
- type: 'uncaught_exception' | 'unhandled_rejection' | 'spawn_error' | 'fatal_error';
4
- error: string;
5
- stack?: string;
6
- context?: Record<string, any>;
7
- exitCode?: number;
8
- duration?: number;
9
- }
10
- /**
11
- * Initialize crash logging and track session start
12
- */
13
- export declare function initializeCrashLogging(): Promise<void>;
14
- /**
15
- * Log a crash event
16
- */
17
- export declare function logCrash(entry: CrashEntry): Promise<void>;
18
- export { CrashEntry };
@@ -1,44 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import os from 'os';
4
- /**
5
- * Crash Logger - Logs crashes to a file for debugging
6
- * Only logs actual crashes (uncaught exceptions), not graceful shutdowns
7
- */
8
- const CRASH_LOG_DIR = path.join(os.homedir(), '.desktop-commander', 'logs');
9
- const CRASH_LOG_FILE = path.join(CRASH_LOG_DIR, 'crashes.log');
10
- /**
11
- * Initialize crash logging and track session start
12
- */
13
- export async function initializeCrashLogging() {
14
- try {
15
- // Create log directory if it doesn't exist
16
- await fs.mkdir(CRASH_LOG_DIR, { recursive: true });
17
- }
18
- catch (error) {
19
- // Silently fail - logging shouldn't break the app
20
- console.error('[CrashLogger] Failed to initialize:', error);
21
- }
22
- }
23
- /**
24
- * Log a crash event
25
- */
26
- export async function logCrash(entry) {
27
- try {
28
- // Append to crash log
29
- const logEntry = {
30
- ...entry,
31
- processId: process.pid,
32
- version: global.DC_VERSION || 'unknown'
33
- };
34
- const logLine = JSON.stringify(logEntry);
35
- await fs.appendFile(CRASH_LOG_FILE, logLine + '\n');
36
- // Also log to stderr immediately so it's visible
37
- console.error(`[CRASH LOGGED] ${entry.type}: ${entry.error}`);
38
- }
39
- catch (error) {
40
- // Fallback: write to stderr if file logging fails
41
- console.error('[CrashLogger] Failed to log crash:', error);
42
- console.error('[CrashLogger] Original crash:', entry);
43
- }
44
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Removes common leading whitespace from all lines in a template literal.
3
- * This function helps clean up indented template literals used for tool descriptions.
4
- *
5
- * @param text - The template literal string with potential leading whitespace
6
- * @returns The dedented string with leading whitespace removed
7
- */
8
- export declare function dedent(text: string): string;
@@ -1,38 +0,0 @@
1
- /**
2
- * Removes common leading whitespace from all lines in a template literal.
3
- * This function helps clean up indented template literals used for tool descriptions.
4
- *
5
- * @param text - The template literal string with potential leading whitespace
6
- * @returns The dedented string with leading whitespace removed
7
- */
8
- export function dedent(text) {
9
- // Split into lines
10
- const lines = text.split('\n');
11
- // Remove first and last lines if they're empty
12
- if (lines[0] === '')
13
- lines.shift();
14
- if (lines[lines.length - 1] === '')
15
- lines.pop();
16
- // If no lines remain, return empty string
17
- if (lines.length === 0)
18
- return '';
19
- // Find the minimum indentation (excluding empty lines)
20
- let minIndent = Infinity;
21
- for (const line of lines) {
22
- if (line.trim() === '')
23
- continue; // Skip empty lines
24
- const indent = line.match(/^(\s*)/)?.[1]?.length || 0;
25
- minIndent = Math.min(minIndent, indent);
26
- }
27
- // If no indentation found, return as-is
28
- if (minIndent === 0 || minIndent === Infinity) {
29
- return lines.join('\n');
30
- }
31
- // Remove the common indentation from all lines
32
- const dedentedLines = lines.map(line => {
33
- if (line.trim() === '')
34
- return ''; // Keep empty lines empty
35
- return line.slice(minIndent);
36
- });
37
- return dedentedLines.join('\n');
38
- }