obsidian-accomplishments-mcp 0.1.9 → 0.1.11

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 (269) hide show
  1. package/README.md +154 -182
  2. package/dist/index.js +207 -38
  3. package/dist/index.js.map +1 -1
  4. package/dist/integration.test.d.ts +8 -0
  5. package/dist/integration.test.d.ts.map +1 -0
  6. package/dist/integration.test.js +979 -0
  7. package/dist/integration.test.js.map +1 -0
  8. package/dist/models/types.d.ts +1 -2
  9. package/dist/models/types.d.ts.map +1 -1
  10. package/dist/models/types.js.map +1 -1
  11. package/dist/models/v2-types.d.ts +460 -0
  12. package/dist/models/v2-types.d.ts.map +1 -0
  13. package/dist/models/v2-types.js +137 -0
  14. package/dist/models/v2-types.js.map +1 -0
  15. package/dist/models/v2-types.test.d.ts +5 -0
  16. package/dist/models/v2-types.test.d.ts.map +1 -0
  17. package/dist/models/v2-types.test.js +133 -0
  18. package/dist/models/v2-types.test.js.map +1 -0
  19. package/dist/parsers/canvas-parser.d.ts +1 -1
  20. package/dist/parsers/canvas-parser.d.ts.map +1 -1
  21. package/dist/parsers/canvas-parser.js +1 -1
  22. package/dist/parsers/canvas-parser.js.map +1 -1
  23. package/dist/parsers/markdown-parser.js +9 -9
  24. package/dist/parsers/markdown-parser.js.map +1 -1
  25. package/dist/services/v2/archive-manager.d.ts +96 -0
  26. package/dist/services/v2/archive-manager.d.ts.map +1 -0
  27. package/dist/services/v2/archive-manager.js +281 -0
  28. package/dist/services/v2/archive-manager.js.map +1 -0
  29. package/dist/services/v2/canvas-manager.d.ts +155 -0
  30. package/dist/services/v2/canvas-manager.d.ts.map +1 -0
  31. package/dist/services/v2/canvas-manager.js +540 -0
  32. package/dist/services/v2/canvas-manager.js.map +1 -0
  33. package/dist/services/v2/canvas-manager.test.d.ts +5 -0
  34. package/dist/services/v2/canvas-manager.test.d.ts.map +1 -0
  35. package/dist/services/v2/canvas-manager.test.js +327 -0
  36. package/dist/services/v2/canvas-manager.test.js.map +1 -0
  37. package/dist/services/v2/cascade-manager.d.ts +54 -0
  38. package/dist/services/v2/cascade-manager.d.ts.map +1 -0
  39. package/dist/services/v2/cascade-manager.js +220 -0
  40. package/dist/services/v2/cascade-manager.js.map +1 -0
  41. package/dist/services/v2/cycle-detector.d.ts +76 -0
  42. package/dist/services/v2/cycle-detector.d.ts.map +1 -0
  43. package/dist/services/v2/cycle-detector.js +183 -0
  44. package/dist/services/v2/cycle-detector.js.map +1 -0
  45. package/dist/services/v2/cycle-detector.test.d.ts +7 -0
  46. package/dist/services/v2/cycle-detector.test.d.ts.map +1 -0
  47. package/dist/services/v2/cycle-detector.test.js +125 -0
  48. package/dist/services/v2/cycle-detector.test.js.map +1 -0
  49. package/dist/services/v2/entity-parser.d.ts +54 -0
  50. package/dist/services/v2/entity-parser.d.ts.map +1 -0
  51. package/dist/services/v2/entity-parser.js +418 -0
  52. package/dist/services/v2/entity-parser.js.map +1 -0
  53. package/dist/services/v2/entity-parser.test.d.ts +5 -0
  54. package/dist/services/v2/entity-parser.test.d.ts.map +1 -0
  55. package/dist/services/v2/entity-parser.test.js +637 -0
  56. package/dist/services/v2/entity-parser.test.js.map +1 -0
  57. package/dist/services/v2/entity-serializer.d.ts +94 -0
  58. package/dist/services/v2/entity-serializer.d.ts.map +1 -0
  59. package/dist/services/v2/entity-serializer.js +583 -0
  60. package/dist/services/v2/entity-serializer.js.map +1 -0
  61. package/dist/services/v2/entity-serializer.test.d.ts +5 -0
  62. package/dist/services/v2/entity-serializer.test.d.ts.map +1 -0
  63. package/dist/services/v2/entity-serializer.test.js +241 -0
  64. package/dist/services/v2/entity-serializer.test.js.map +1 -0
  65. package/dist/services/v2/entity-validator.d.ts +65 -0
  66. package/dist/services/v2/entity-validator.d.ts.map +1 -0
  67. package/dist/services/v2/entity-validator.js +573 -0
  68. package/dist/services/v2/entity-validator.js.map +1 -0
  69. package/dist/services/v2/entity-validator.test.d.ts +5 -0
  70. package/dist/services/v2/entity-validator.test.d.ts.map +1 -0
  71. package/dist/services/v2/entity-validator.test.js +519 -0
  72. package/dist/services/v2/entity-validator.test.js.map +1 -0
  73. package/dist/services/v2/file-manager.d.ts +73 -0
  74. package/dist/services/v2/file-manager.d.ts.map +1 -0
  75. package/dist/services/v2/file-manager.js +310 -0
  76. package/dist/services/v2/file-manager.js.map +1 -0
  77. package/dist/services/v2/file-manager.test.d.ts +5 -0
  78. package/dist/services/v2/file-manager.test.d.ts.map +1 -0
  79. package/dist/services/v2/file-manager.test.js +339 -0
  80. package/dist/services/v2/file-manager.test.js.map +1 -0
  81. package/dist/services/v2/index-manager.d.ts +68 -0
  82. package/dist/services/v2/index-manager.d.ts.map +1 -0
  83. package/dist/services/v2/index-manager.js +228 -0
  84. package/dist/services/v2/index-manager.js.map +1 -0
  85. package/dist/services/v2/index-manager.test.d.ts +5 -0
  86. package/dist/services/v2/index-manager.test.d.ts.map +1 -0
  87. package/dist/services/v2/index-manager.test.js +386 -0
  88. package/dist/services/v2/index-manager.test.js.map +1 -0
  89. package/dist/services/v2/index-service.d.ts +82 -0
  90. package/dist/services/v2/index-service.d.ts.map +1 -0
  91. package/dist/services/v2/index-service.js +274 -0
  92. package/dist/services/v2/index-service.js.map +1 -0
  93. package/dist/services/v2/index-service.test.d.ts +5 -0
  94. package/dist/services/v2/index-service.test.d.ts.map +1 -0
  95. package/dist/services/v2/index-service.test.js +117 -0
  96. package/dist/services/v2/index-service.test.js.map +1 -0
  97. package/dist/services/v2/lifecycle-manager.d.ts +59 -0
  98. package/dist/services/v2/lifecycle-manager.d.ts.map +1 -0
  99. package/dist/services/v2/lifecycle-manager.js +310 -0
  100. package/dist/services/v2/lifecycle-manager.js.map +1 -0
  101. package/dist/services/v2/lifecycle-manager.test.d.ts +5 -0
  102. package/dist/services/v2/lifecycle-manager.test.d.ts.map +1 -0
  103. package/dist/services/v2/lifecycle-manager.test.js +141 -0
  104. package/dist/services/v2/lifecycle-manager.test.js.map +1 -0
  105. package/dist/services/v2/path-resolver.d.ts +64 -0
  106. package/dist/services/v2/path-resolver.d.ts.map +1 -0
  107. package/dist/services/v2/path-resolver.js +174 -0
  108. package/dist/services/v2/path-resolver.js.map +1 -0
  109. package/dist/services/v2/progress-computer.d.ts +46 -0
  110. package/dist/services/v2/progress-computer.d.ts.map +1 -0
  111. package/dist/services/v2/progress-computer.js +200 -0
  112. package/dist/services/v2/progress-computer.js.map +1 -0
  113. package/dist/services/v2/search-service.d.ts +68 -0
  114. package/dist/services/v2/search-service.d.ts.map +1 -0
  115. package/dist/services/v2/search-service.js +194 -0
  116. package/dist/services/v2/search-service.js.map +1 -0
  117. package/dist/services/v2/transitive-dependency-remover.d.ts +54 -0
  118. package/dist/services/v2/transitive-dependency-remover.d.ts.map +1 -0
  119. package/dist/services/v2/transitive-dependency-remover.js +156 -0
  120. package/dist/services/v2/transitive-dependency-remover.js.map +1 -0
  121. package/dist/services/v2/transitive-dependency-remover.test.d.ts +7 -0
  122. package/dist/services/v2/transitive-dependency-remover.test.d.ts.map +1 -0
  123. package/dist/services/v2/transitive-dependency-remover.test.js +119 -0
  124. package/dist/services/v2/transitive-dependency-remover.test.js.map +1 -0
  125. package/dist/services/v2/v2-runtime.d.ts +374 -0
  126. package/dist/services/v2/v2-runtime.d.ts.map +1 -0
  127. package/dist/services/v2/v2-runtime.js +1908 -0
  128. package/dist/services/v2/v2-runtime.js.map +1 -0
  129. package/dist/services/v2/v2-runtime.test.d.ts +5 -0
  130. package/dist/services/v2/v2-runtime.test.d.ts.map +1 -0
  131. package/dist/services/v2/v2-runtime.test.js +658 -0
  132. package/dist/services/v2/v2-runtime.test.js.map +1 -0
  133. package/dist/services/v2/workstream-normalizer.d.ts +59 -0
  134. package/dist/services/v2/workstream-normalizer.d.ts.map +1 -0
  135. package/dist/services/v2/workstream-normalizer.js +137 -0
  136. package/dist/services/v2/workstream-normalizer.js.map +1 -0
  137. package/dist/services/v2/workstream-normalizer.test.d.ts +7 -0
  138. package/dist/services/v2/workstream-normalizer.test.d.ts.map +1 -0
  139. package/dist/services/v2/workstream-normalizer.test.js +130 -0
  140. package/dist/services/v2/workstream-normalizer.test.js.map +1 -0
  141. package/dist/test-runner.d.ts +4 -1
  142. package/dist/test-runner.d.ts.map +1 -1
  143. package/dist/test-runner.js +44 -249
  144. package/dist/test-runner.js.map +1 -1
  145. package/dist/tools/batch-operations-tools.d.ts +54 -0
  146. package/dist/tools/batch-operations-tools.d.ts.map +1 -0
  147. package/dist/tools/batch-operations-tools.js +370 -0
  148. package/dist/tools/batch-operations-tools.js.map +1 -0
  149. package/dist/tools/decision-document-tools.d.ts +78 -0
  150. package/dist/tools/decision-document-tools.d.ts.map +1 -0
  151. package/dist/tools/decision-document-tools.js +260 -0
  152. package/dist/tools/decision-document-tools.js.map +1 -0
  153. package/dist/tools/entity-management-tools.d.ts +79 -0
  154. package/dist/tools/entity-management-tools.d.ts.map +1 -0
  155. package/dist/tools/entity-management-tools.js +851 -0
  156. package/dist/tools/entity-management-tools.js.map +1 -0
  157. package/dist/tools/entity-management-tools.test.d.ts +5 -0
  158. package/dist/tools/entity-management-tools.test.d.ts.map +1 -0
  159. package/dist/tools/entity-management-tools.test.js +530 -0
  160. package/dist/tools/entity-management-tools.test.js.map +1 -0
  161. package/dist/tools/index.d.ts +15 -271
  162. package/dist/tools/index.d.ts.map +1 -1
  163. package/dist/tools/index.js +510 -47
  164. package/dist/tools/index.js.map +1 -1
  165. package/dist/tools/index.test.d.ts +8 -0
  166. package/dist/tools/index.test.d.ts.map +1 -0
  167. package/dist/tools/index.test.js +429 -0
  168. package/dist/tools/index.test.js.map +1 -0
  169. package/dist/tools/project-understanding-tools.d.ts +75 -0
  170. package/dist/tools/project-understanding-tools.d.ts.map +1 -0
  171. package/dist/tools/project-understanding-tools.js +751 -0
  172. package/dist/tools/project-understanding-tools.js.map +1 -0
  173. package/dist/tools/search-navigation-tools.d.ts +77 -0
  174. package/dist/tools/search-navigation-tools.d.ts.map +1 -0
  175. package/dist/tools/search-navigation-tools.js +379 -0
  176. package/dist/tools/search-navigation-tools.js.map +1 -0
  177. package/dist/tools/tool-types.d.ts +703 -0
  178. package/dist/tools/tool-types.d.ts.map +1 -0
  179. package/dist/tools/tool-types.js +7 -0
  180. package/dist/tools/tool-types.js.map +1 -0
  181. package/dist/utils/config.d.ts +0 -4
  182. package/dist/utils/config.d.ts.map +1 -1
  183. package/dist/utils/config.js +2 -19
  184. package/dist/utils/config.js.map +1 -1
  185. package/package.json +16 -1
  186. package/dist/services/accomplishment-service.d.ts +0 -33
  187. package/dist/services/accomplishment-service.d.ts.map +0 -1
  188. package/dist/services/accomplishment-service.js +0 -293
  189. package/dist/services/accomplishment-service.js.map +0 -1
  190. package/dist/services/canvas-service.d.ts +0 -96
  191. package/dist/services/canvas-service.d.ts.map +0 -1
  192. package/dist/services/canvas-service.js +0 -231
  193. package/dist/services/canvas-service.js.map +0 -1
  194. package/dist/services/context-doc-service.d.ts +0 -70
  195. package/dist/services/context-doc-service.d.ts.map +0 -1
  196. package/dist/services/context-doc-service.js +0 -229
  197. package/dist/services/context-doc-service.js.map +0 -1
  198. package/dist/services/dependency-service.d.ts +0 -22
  199. package/dist/services/dependency-service.d.ts.map +0 -1
  200. package/dist/services/dependency-service.js +0 -99
  201. package/dist/services/dependency-service.js.map +0 -1
  202. package/dist/services/status-indicator-service.d.ts +0 -40
  203. package/dist/services/status-indicator-service.d.ts.map +0 -1
  204. package/dist/services/status-indicator-service.js +0 -173
  205. package/dist/services/status-indicator-service.js.map +0 -1
  206. package/dist/services/task-service.d.ts +0 -32
  207. package/dist/services/task-service.d.ts.map +0 -1
  208. package/dist/services/task-service.js +0 -152
  209. package/dist/services/task-service.js.map +0 -1
  210. package/dist/test-real-vault.d.ts +0 -6
  211. package/dist/test-real-vault.d.ts.map +0 -1
  212. package/dist/test-real-vault.js +0 -30
  213. package/dist/test-real-vault.js.map +0 -1
  214. package/dist/tools/batch-operations.d.ts +0 -246
  215. package/dist/tools/batch-operations.d.ts.map +0 -1
  216. package/dist/tools/batch-operations.js +0 -235
  217. package/dist/tools/batch-operations.js.map +0 -1
  218. package/dist/tools/get-accomplishment.d.ts +0 -26
  219. package/dist/tools/get-accomplishment.d.ts.map +0 -1
  220. package/dist/tools/get-accomplishment.js +0 -53
  221. package/dist/tools/get-accomplishment.js.map +0 -1
  222. package/dist/tools/get-accomplishments-graph.d.ts +0 -26
  223. package/dist/tools/get-accomplishments-graph.d.ts.map +0 -1
  224. package/dist/tools/get-accomplishments-graph.js +0 -137
  225. package/dist/tools/get-accomplishments-graph.js.map +0 -1
  226. package/dist/tools/get-blocked-items.d.ts +0 -15
  227. package/dist/tools/get-blocked-items.d.ts.map +0 -1
  228. package/dist/tools/get-blocked-items.js +0 -73
  229. package/dist/tools/get-blocked-items.js.map +0 -1
  230. package/dist/tools/get-current-work.d.ts +0 -15
  231. package/dist/tools/get-current-work.d.ts.map +0 -1
  232. package/dist/tools/get-current-work.js +0 -68
  233. package/dist/tools/get-current-work.js.map +0 -1
  234. package/dist/tools/get-project-status.d.ts +0 -26
  235. package/dist/tools/get-project-status.d.ts.map +0 -1
  236. package/dist/tools/get-project-status.js +0 -98
  237. package/dist/tools/get-project-status.js.map +0 -1
  238. package/dist/tools/get-ready-to-start.d.ts +0 -15
  239. package/dist/tools/get-ready-to-start.d.ts.map +0 -1
  240. package/dist/tools/get-ready-to-start.js +0 -47
  241. package/dist/tools/get-ready-to-start.js.map +0 -1
  242. package/dist/tools/list-accomplishments.d.ts +0 -34
  243. package/dist/tools/list-accomplishments.d.ts.map +0 -1
  244. package/dist/tools/list-accomplishments.js +0 -34
  245. package/dist/tools/list-accomplishments.js.map +0 -1
  246. package/dist/tools/manage-accomplishment.d.ts +0 -147
  247. package/dist/tools/manage-accomplishment.d.ts.map +0 -1
  248. package/dist/tools/manage-accomplishment.js +0 -153
  249. package/dist/tools/manage-accomplishment.js.map +0 -1
  250. package/dist/tools/manage-dependency.d.ts +0 -41
  251. package/dist/tools/manage-dependency.d.ts.map +0 -1
  252. package/dist/tools/manage-dependency.js +0 -66
  253. package/dist/tools/manage-dependency.js.map +0 -1
  254. package/dist/tools/manage-task.d.ts +0 -119
  255. package/dist/tools/manage-task.d.ts.map +0 -1
  256. package/dist/tools/manage-task.js +0 -126
  257. package/dist/tools/manage-task.js.map +0 -1
  258. package/dist/tools/reconcile-canvas.d.ts +0 -33
  259. package/dist/tools/reconcile-canvas.d.ts.map +0 -1
  260. package/dist/tools/reconcile-canvas.js +0 -41
  261. package/dist/tools/reconcile-canvas.js.map +0 -1
  262. package/dist/tools/set-work-focus.d.ts +0 -48
  263. package/dist/tools/set-work-focus.d.ts.map +0 -1
  264. package/dist/tools/set-work-focus.js +0 -78
  265. package/dist/tools/set-work-focus.js.map +0 -1
  266. package/dist/tools/sync-dependencies.d.ts +0 -33
  267. package/dist/tools/sync-dependencies.d.ts.map +0 -1
  268. package/dist/tools/sync-dependencies.js +0 -144
  269. package/dist/tools/sync-dependencies.js.map +0 -1
@@ -0,0 +1,310 @@
1
+ /**
2
+ * V2 Atomic File Manager
3
+ *
4
+ * Provides atomic file writes with temp files and rollback support.
5
+ */
6
+ import * as fs from 'fs/promises';
7
+ import * as path from 'path';
8
+ import { FileOperationError } from '../../models/v2-types.js';
9
+ const DEFAULT_WRITE_OPTIONS = {
10
+ createDirs: true,
11
+ backup: false,
12
+ encoding: 'utf-8',
13
+ };
14
+ const DEFAULT_READ_OPTIONS = {
15
+ encoding: 'utf-8',
16
+ };
17
+ const DEFAULT_MOVE_OPTIONS = {
18
+ overwrite: false,
19
+ createDirs: true,
20
+ };
21
+ // =============================================================================
22
+ // Atomic File Manager Class
23
+ // =============================================================================
24
+ /**
25
+ * Manages file operations with atomic writes and rollback support.
26
+ */
27
+ export class AtomicFileManager {
28
+ vaultPath;
29
+ tempDir;
30
+ backupDir;
31
+ constructor(vaultPath, tempDir, backupDir) {
32
+ this.vaultPath = vaultPath;
33
+ this.tempDir = tempDir || path.join(vaultPath, '.obsidian', 'mcp-temp');
34
+ this.backupDir = backupDir || path.join(vaultPath, '.obsidian', 'mcp-backup');
35
+ }
36
+ // ---------------------------------------------------------------------------
37
+ // Read Operations
38
+ // ---------------------------------------------------------------------------
39
+ /** Read file contents */
40
+ async read(filePath, options = {}) {
41
+ const opts = { ...DEFAULT_READ_OPTIONS, ...options };
42
+ const absolutePath = this.toAbsolute(filePath);
43
+ try {
44
+ return await fs.readFile(absolutePath, { encoding: opts.encoding });
45
+ }
46
+ catch (error) {
47
+ if (error.code === 'ENOENT') {
48
+ throw new FileOperationError(`File not found: ${filePath}`, 'read', filePath);
49
+ }
50
+ throw new FileOperationError(`Failed to read file: ${error.message}`, 'read', filePath);
51
+ }
52
+ }
53
+ /** Check if file exists */
54
+ async exists(filePath) {
55
+ const absolutePath = this.toAbsolute(filePath);
56
+ try {
57
+ await fs.access(absolutePath);
58
+ return true;
59
+ }
60
+ catch {
61
+ return false;
62
+ }
63
+ }
64
+ /** Get file stats */
65
+ async stat(filePath) {
66
+ const absolutePath = this.toAbsolute(filePath);
67
+ try {
68
+ const stats = await fs.stat(absolutePath);
69
+ return stats;
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ }
75
+ /** Get file modification time */
76
+ async getMtime(filePath) {
77
+ const absolutePath = this.toAbsolute(filePath);
78
+ try {
79
+ const stats = await fs.stat(absolutePath);
80
+ return stats.mtimeMs;
81
+ }
82
+ catch {
83
+ return null;
84
+ }
85
+ }
86
+ // ---------------------------------------------------------------------------
87
+ // Write Operations
88
+ // ---------------------------------------------------------------------------
89
+ /** Write file atomically */
90
+ async write(filePath, content, options = {}) {
91
+ const opts = { ...DEFAULT_WRITE_OPTIONS, ...options };
92
+ const absolutePath = this.toAbsolute(filePath);
93
+ const tempPath = await this.getTempPath(filePath);
94
+ try {
95
+ // Ensure directories exist
96
+ if (opts.createDirs) {
97
+ await this.ensureDir(path.dirname(absolutePath));
98
+ await this.ensureDir(path.dirname(tempPath));
99
+ }
100
+ // Backup existing file if requested
101
+ if (opts.backup && await this.exists(filePath)) {
102
+ await this.backup(filePath);
103
+ }
104
+ // Write to temp file first
105
+ await fs.writeFile(tempPath, content, { encoding: opts.encoding });
106
+ // Atomic rename
107
+ await fs.rename(tempPath, absolutePath);
108
+ }
109
+ catch (error) {
110
+ // Clean up temp file on failure
111
+ try {
112
+ await fs.unlink(tempPath);
113
+ }
114
+ catch { }
115
+ throw new FileOperationError(`Failed to write file: ${error.message}`, 'write', filePath);
116
+ }
117
+ }
118
+ /** Append to file */
119
+ async append(filePath, content, options = {}) {
120
+ const opts = { ...DEFAULT_WRITE_OPTIONS, ...options };
121
+ const absolutePath = this.toAbsolute(filePath);
122
+ try {
123
+ if (opts.createDirs) {
124
+ await this.ensureDir(path.dirname(absolutePath));
125
+ }
126
+ await fs.appendFile(absolutePath, content, { encoding: opts.encoding });
127
+ }
128
+ catch (error) {
129
+ throw new FileOperationError(`Failed to append to file: ${error.message}`, 'write', filePath);
130
+ }
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // Delete Operations
134
+ // ---------------------------------------------------------------------------
135
+ /** Delete file */
136
+ async delete(filePath, backup = false) {
137
+ const absolutePath = this.toAbsolute(filePath);
138
+ try {
139
+ if (backup) {
140
+ await this.backup(filePath);
141
+ }
142
+ await fs.unlink(absolutePath);
143
+ }
144
+ catch (error) {
145
+ if (error.code === 'ENOENT')
146
+ return; // Already deleted
147
+ throw new FileOperationError(`Failed to delete file: ${error.message}`, 'delete', filePath);
148
+ }
149
+ }
150
+ // ---------------------------------------------------------------------------
151
+ // Move Operations
152
+ // ---------------------------------------------------------------------------
153
+ /** Move file */
154
+ async move(sourcePath, destPath, options = {}) {
155
+ const opts = { ...DEFAULT_MOVE_OPTIONS, ...options };
156
+ const absoluteSource = this.toAbsolute(sourcePath);
157
+ const absoluteDest = this.toAbsolute(destPath);
158
+ try {
159
+ // Check if destination exists
160
+ if (!opts.overwrite && await this.exists(destPath)) {
161
+ throw new Error('Destination file already exists');
162
+ }
163
+ // Ensure destination directory exists
164
+ if (opts.createDirs) {
165
+ await this.ensureDir(path.dirname(absoluteDest));
166
+ }
167
+ await fs.rename(absoluteSource, absoluteDest);
168
+ }
169
+ catch (error) {
170
+ throw new FileOperationError(`Failed to move file: ${error.message}`, 'move', sourcePath);
171
+ }
172
+ }
173
+ /** Copy file */
174
+ async copy(sourcePath, destPath, options = {}) {
175
+ const opts = { ...DEFAULT_MOVE_OPTIONS, ...options };
176
+ const absoluteSource = this.toAbsolute(sourcePath);
177
+ const absoluteDest = this.toAbsolute(destPath);
178
+ try {
179
+ if (!opts.overwrite && await this.exists(destPath)) {
180
+ throw new Error('Destination file already exists');
181
+ }
182
+ if (opts.createDirs) {
183
+ await this.ensureDir(path.dirname(absoluteDest));
184
+ }
185
+ await fs.copyFile(absoluteSource, absoluteDest);
186
+ }
187
+ catch (error) {
188
+ throw new FileOperationError(`Failed to copy file: ${error.message}`, 'copy', sourcePath);
189
+ }
190
+ }
191
+ // ---------------------------------------------------------------------------
192
+ // Directory Operations
193
+ // ---------------------------------------------------------------------------
194
+ /** Ensure directory exists */
195
+ async ensureDir(dirPath) {
196
+ try {
197
+ await fs.mkdir(dirPath, { recursive: true });
198
+ }
199
+ catch (error) {
200
+ if (error.code !== 'EEXIST') {
201
+ throw new FileOperationError(`Failed to create directory: ${error.message}`, 'mkdir', dirPath);
202
+ }
203
+ }
204
+ }
205
+ /** List files in directory (recursive) */
206
+ async listFiles(dirPath, pattern) {
207
+ const absolutePath = this.toAbsolute(dirPath);
208
+ return this.listFilesRecursive(absolutePath, dirPath, pattern);
209
+ }
210
+ /** Recursively list files in directory */
211
+ async listFilesRecursive(absolutePath, vaultPath, pattern) {
212
+ try {
213
+ const entries = await fs.readdir(absolutePath, { withFileTypes: true });
214
+ const files = [];
215
+ for (const entry of entries) {
216
+ const entryAbsPath = path.join(absolutePath, entry.name);
217
+ const entryVaultPath = path.join(vaultPath, entry.name);
218
+ if (entry.isFile()) {
219
+ if (!pattern || pattern.test(entryVaultPath)) {
220
+ files.push(entryVaultPath);
221
+ }
222
+ }
223
+ else if (entry.isDirectory()) {
224
+ const subFiles = await this.listFilesRecursive(entryAbsPath, entryVaultPath, pattern);
225
+ files.push(...subFiles);
226
+ }
227
+ }
228
+ return files;
229
+ }
230
+ catch (error) {
231
+ if (error.code === 'ENOENT')
232
+ return [];
233
+ throw new FileOperationError(`Failed to list directory: ${error.message}`, 'readdir', vaultPath);
234
+ }
235
+ }
236
+ /** List subdirectories */
237
+ async listDirs(dirPath) {
238
+ const absolutePath = this.toAbsolute(dirPath);
239
+ try {
240
+ const entries = await fs.readdir(absolutePath, { withFileTypes: true });
241
+ return entries
242
+ .filter(e => e.isDirectory())
243
+ .map(e => path.join(dirPath, e.name));
244
+ }
245
+ catch (error) {
246
+ if (error.code === 'ENOENT')
247
+ return [];
248
+ throw new FileOperationError(`Failed to list directory: ${error.message}`, 'readdir', dirPath);
249
+ }
250
+ }
251
+ // ---------------------------------------------------------------------------
252
+ // Backup Operations
253
+ // ---------------------------------------------------------------------------
254
+ /** Backup file */
255
+ async backup(filePath) {
256
+ const absolutePath = this.toAbsolute(filePath);
257
+ const timestamp = Date.now();
258
+ const backupName = `${path.basename(filePath, '.md')}_${timestamp}.md`;
259
+ const backupPath = path.join(this.backupDir, backupName);
260
+ await this.ensureDir(this.backupDir);
261
+ await fs.copyFile(absolutePath, backupPath);
262
+ return this.toVaultPath(backupPath);
263
+ }
264
+ /** Restore from backup */
265
+ async restore(backupPath, destPath) {
266
+ await this.copy(backupPath, destPath, { overwrite: true });
267
+ }
268
+ // ---------------------------------------------------------------------------
269
+ // Helper Methods
270
+ // ---------------------------------------------------------------------------
271
+ /** Get temp file path */
272
+ async getTempPath(filePath) {
273
+ const timestamp = Date.now();
274
+ const random = Math.random().toString(36).substring(2, 8);
275
+ const tempName = `${path.basename(filePath, '.md')}_${timestamp}_${random}.tmp`;
276
+ return path.join(this.tempDir, tempName);
277
+ }
278
+ /** Convert vault path to absolute path */
279
+ toAbsolute(vaultPath) {
280
+ if (path.isAbsolute(vaultPath))
281
+ return vaultPath;
282
+ return path.join(this.vaultPath, vaultPath);
283
+ }
284
+ /** Convert absolute path to vault path */
285
+ toVaultPath(absolutePath) {
286
+ if (absolutePath.startsWith(this.vaultPath)) {
287
+ return absolutePath.slice(this.vaultPath.length + 1);
288
+ }
289
+ return absolutePath;
290
+ }
291
+ /** Clean up temp files */
292
+ async cleanupTemp() {
293
+ try {
294
+ const files = await fs.readdir(this.tempDir);
295
+ let cleaned = 0;
296
+ for (const file of files) {
297
+ try {
298
+ await fs.unlink(path.join(this.tempDir, file));
299
+ cleaned++;
300
+ }
301
+ catch { }
302
+ }
303
+ return cleaned;
304
+ }
305
+ catch {
306
+ return 0;
307
+ }
308
+ }
309
+ }
310
+ //# sourceMappingURL=file-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../../src/services/v2/file-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for V2 Atomic File Manager
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=file-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-manager.test.d.ts","sourceRoot":"","sources":["../../../src/services/v2/file-manager.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}