@sudosandwich/limps 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +190 -0
  3. package/dist/agent-parser.d.ts +146 -0
  4. package/dist/agent-parser.d.ts.map +1 -0
  5. package/dist/agent-parser.js +448 -0
  6. package/dist/agent-parser.js.map +1 -0
  7. package/dist/config.d.ts +54 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +146 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/coordination.d.ts +102 -0
  12. package/dist/coordination.d.ts.map +1 -0
  13. package/dist/coordination.js +157 -0
  14. package/dist/coordination.js.map +1 -0
  15. package/dist/index.d.ts +3 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +256 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/indexer.d.ts +83 -0
  20. package/dist/indexer.d.ts.map +1 -0
  21. package/dist/indexer.js +467 -0
  22. package/dist/indexer.js.map +1 -0
  23. package/dist/resources/agents-status.d.ts +32 -0
  24. package/dist/resources/agents-status.d.ts.map +1 -0
  25. package/dist/resources/agents-status.js +73 -0
  26. package/dist/resources/agents-status.js.map +1 -0
  27. package/dist/resources/decisions-log.d.ts +21 -0
  28. package/dist/resources/decisions-log.d.ts.map +1 -0
  29. package/dist/resources/decisions-log.js +146 -0
  30. package/dist/resources/decisions-log.js.map +1 -0
  31. package/dist/resources/index.d.ts +10 -0
  32. package/dist/resources/index.d.ts.map +1 -0
  33. package/dist/resources/index.js +74 -0
  34. package/dist/resources/index.js.map +1 -0
  35. package/dist/resources/plans-full.d.ts +11 -0
  36. package/dist/resources/plans-full.d.ts.map +1 -0
  37. package/dist/resources/plans-full.js +71 -0
  38. package/dist/resources/plans-full.js.map +1 -0
  39. package/dist/resources/plans-index.d.ts +30 -0
  40. package/dist/resources/plans-index.d.ts.map +1 -0
  41. package/dist/resources/plans-index.js +177 -0
  42. package/dist/resources/plans-index.js.map +1 -0
  43. package/dist/resources/plans-summary.d.ts +33 -0
  44. package/dist/resources/plans-summary.d.ts.map +1 -0
  45. package/dist/resources/plans-summary.js +238 -0
  46. package/dist/resources/plans-summary.js.map +1 -0
  47. package/dist/rlm/extractors.d.ts +39 -0
  48. package/dist/rlm/extractors.d.ts.map +1 -0
  49. package/dist/rlm/extractors.js +291 -0
  50. package/dist/rlm/extractors.js.map +1 -0
  51. package/dist/rlm/helpers-inject.d.ts +13 -0
  52. package/dist/rlm/helpers-inject.d.ts.map +1 -0
  53. package/dist/rlm/helpers-inject.js +586 -0
  54. package/dist/rlm/helpers-inject.js.map +1 -0
  55. package/dist/rlm/helpers.d.ts +124 -0
  56. package/dist/rlm/helpers.d.ts.map +1 -0
  57. package/dist/rlm/helpers.js +381 -0
  58. package/dist/rlm/helpers.js.map +1 -0
  59. package/dist/rlm/index.d.ts +12 -0
  60. package/dist/rlm/index.d.ts.map +1 -0
  61. package/dist/rlm/index.js +19 -0
  62. package/dist/rlm/index.js.map +1 -0
  63. package/dist/rlm/parallel.d.ts +45 -0
  64. package/dist/rlm/parallel.d.ts.map +1 -0
  65. package/dist/rlm/parallel.js +76 -0
  66. package/dist/rlm/parallel.js.map +1 -0
  67. package/dist/rlm/recursion.d.ts +96 -0
  68. package/dist/rlm/recursion.d.ts.map +1 -0
  69. package/dist/rlm/recursion.js +113 -0
  70. package/dist/rlm/recursion.js.map +1 -0
  71. package/dist/rlm/sampling.d.ts +100 -0
  72. package/dist/rlm/sampling.d.ts.map +1 -0
  73. package/dist/rlm/sampling.js +96 -0
  74. package/dist/rlm/sampling.js.map +1 -0
  75. package/dist/rlm/sandbox.d.ts +73 -0
  76. package/dist/rlm/sandbox.d.ts.map +1 -0
  77. package/dist/rlm/sandbox.js +160 -0
  78. package/dist/rlm/sandbox.js.map +1 -0
  79. package/dist/rlm/security.d.ts +28 -0
  80. package/dist/rlm/security.d.ts.map +1 -0
  81. package/dist/rlm/security.js +154 -0
  82. package/dist/rlm/security.js.map +1 -0
  83. package/dist/server.d.ts +21 -0
  84. package/dist/server.d.ts.map +1 -0
  85. package/dist/server.js +107 -0
  86. package/dist/server.js.map +1 -0
  87. package/dist/task-parser.d.ts +47 -0
  88. package/dist/task-parser.d.ts.map +1 -0
  89. package/dist/task-parser.js +112 -0
  90. package/dist/task-parser.js.map +1 -0
  91. package/dist/test-setup.d.ts +6 -0
  92. package/dist/test-setup.d.ts.map +1 -0
  93. package/dist/test-setup.js +37 -0
  94. package/dist/test-setup.js.map +1 -0
  95. package/dist/tools/claim-task.d.ts +28 -0
  96. package/dist/tools/claim-task.d.ts.map +1 -0
  97. package/dist/tools/claim-task.js +288 -0
  98. package/dist/tools/claim-task.js.map +1 -0
  99. package/dist/tools/create-doc.d.ts +47 -0
  100. package/dist/tools/create-doc.d.ts.map +1 -0
  101. package/dist/tools/create-doc.js +137 -0
  102. package/dist/tools/create-doc.js.map +1 -0
  103. package/dist/tools/create-plan.d.ts +25 -0
  104. package/dist/tools/create-plan.d.ts.map +1 -0
  105. package/dist/tools/create-plan.js +179 -0
  106. package/dist/tools/create-plan.js.map +1 -0
  107. package/dist/tools/delete-doc.d.ts +51 -0
  108. package/dist/tools/delete-doc.d.ts.map +1 -0
  109. package/dist/tools/delete-doc.js +194 -0
  110. package/dist/tools/delete-doc.js.map +1 -0
  111. package/dist/tools/get-next-task.d.ts +49 -0
  112. package/dist/tools/get-next-task.d.ts.map +1 -0
  113. package/dist/tools/get-next-task.js +204 -0
  114. package/dist/tools/get-next-task.js.map +1 -0
  115. package/dist/tools/index.d.ts +10 -0
  116. package/dist/tools/index.d.ts.map +1 -0
  117. package/dist/tools/index.js +122 -0
  118. package/dist/tools/index.js.map +1 -0
  119. package/dist/tools/list-docs.d.ts +53 -0
  120. package/dist/tools/list-docs.d.ts.map +1 -0
  121. package/dist/tools/list-docs.js +236 -0
  122. package/dist/tools/list-docs.js.map +1 -0
  123. package/dist/tools/open-document-in-cursor.d.ts +62 -0
  124. package/dist/tools/open-document-in-cursor.d.ts.map +1 -0
  125. package/dist/tools/open-document-in-cursor.js +211 -0
  126. package/dist/tools/open-document-in-cursor.js.map +1 -0
  127. package/dist/tools/read-doc.d.ts +44 -0
  128. package/dist/tools/read-doc.d.ts.map +1 -0
  129. package/dist/tools/read-doc.js +174 -0
  130. package/dist/tools/read-doc.js.map +1 -0
  131. package/dist/tools/release-task.d.ts +28 -0
  132. package/dist/tools/release-task.d.ts.map +1 -0
  133. package/dist/tools/release-task.js +154 -0
  134. package/dist/tools/release-task.js.map +1 -0
  135. package/dist/tools/rlm-multi-query.d.ts +110 -0
  136. package/dist/tools/rlm-multi-query.d.ts.map +1 -0
  137. package/dist/tools/rlm-multi-query.js +348 -0
  138. package/dist/tools/rlm-multi-query.js.map +1 -0
  139. package/dist/tools/rlm-query.d.ts +56 -0
  140. package/dist/tools/rlm-query.d.ts.map +1 -0
  141. package/dist/tools/rlm-query.js +228 -0
  142. package/dist/tools/rlm-query.js.map +1 -0
  143. package/dist/tools/search-docs.d.ts +34 -0
  144. package/dist/tools/search-docs.d.ts.map +1 -0
  145. package/dist/tools/search-docs.js +292 -0
  146. package/dist/tools/search-docs.js.map +1 -0
  147. package/dist/tools/update-doc.d.ts +149 -0
  148. package/dist/tools/update-doc.d.ts.map +1 -0
  149. package/dist/tools/update-doc.js +195 -0
  150. package/dist/tools/update-doc.js.map +1 -0
  151. package/dist/tools/update-task-status.d.ts +31 -0
  152. package/dist/tools/update-task-status.d.ts.map +1 -0
  153. package/dist/tools/update-task-status.js +303 -0
  154. package/dist/tools/update-task-status.js.map +1 -0
  155. package/dist/types.d.ts +50 -0
  156. package/dist/types.d.ts.map +1 -0
  157. package/dist/types.js +2 -0
  158. package/dist/types.js.map +1 -0
  159. package/dist/utils/backup.d.ts +76 -0
  160. package/dist/utils/backup.d.ts.map +1 -0
  161. package/dist/utils/backup.js +172 -0
  162. package/dist/utils/backup.js.map +1 -0
  163. package/dist/utils/errors.d.ts +93 -0
  164. package/dist/utils/errors.d.ts.map +1 -0
  165. package/dist/utils/errors.js +125 -0
  166. package/dist/utils/errors.js.map +1 -0
  167. package/dist/utils/index.d.ts +8 -0
  168. package/dist/utils/index.d.ts.map +1 -0
  169. package/dist/utils/index.js +9 -0
  170. package/dist/utils/index.js.map +1 -0
  171. package/dist/utils/os-paths.d.ts +45 -0
  172. package/dist/utils/os-paths.d.ts.map +1 -0
  173. package/dist/utils/os-paths.js +81 -0
  174. package/dist/utils/os-paths.js.map +1 -0
  175. package/dist/utils/paths.d.ts +71 -0
  176. package/dist/utils/paths.d.ts.map +1 -0
  177. package/dist/utils/paths.js +165 -0
  178. package/dist/utils/paths.js.map +1 -0
  179. package/dist/watcher.d.ts +19 -0
  180. package/dist/watcher.d.ts.map +1 -0
  181. package/dist/watcher.js +109 -0
  182. package/dist/watcher.js.map +1 -0
  183. package/package.json +85 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-task-status.js","sourceRoot":"","sources":["../../src/tools/update-task-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { Database as DatabaseType } from 'better-sqlite3';
2
+ import type { CoordinationState } from './coordination.js';
3
+ import type { ServerConfig } from './config.js';
4
+ /**
5
+ * Context passed to tool handlers.
6
+ */
7
+ export interface ToolContext {
8
+ db: DatabaseType;
9
+ coordination: CoordinationState;
10
+ config: ServerConfig;
11
+ }
12
+ /**
13
+ * Context passed to resource handlers.
14
+ */
15
+ export interface ResourceContext {
16
+ db: DatabaseType;
17
+ coordination: CoordinationState;
18
+ config: ServerConfig;
19
+ }
20
+ /**
21
+ * Result returned by tool handlers.
22
+ * Matches MCP SDK tool result format.
23
+ * Index signature required for MCP SDK compatibility.
24
+ */
25
+ export interface ToolResult {
26
+ [key: string]: unknown;
27
+ content: {
28
+ type: 'text';
29
+ text: string;
30
+ }[];
31
+ isError?: boolean;
32
+ }
33
+ /**
34
+ * Result returned by resource handlers.
35
+ * Matches MCP SDK resource result format.
36
+ */
37
+ export interface ResourceResult {
38
+ contents: ({
39
+ uri: string;
40
+ mimeType?: string;
41
+ text: string;
42
+ blob?: never;
43
+ } | {
44
+ uri: string;
45
+ mimeType?: string;
46
+ blob: string;
47
+ text?: never;
48
+ })[];
49
+ }
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,YAAY,CAAC;IACjB,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,YAAY,CAAC;IACjB,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;IACJ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,CACN;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,KAAK,CAAC;KACd,GACD;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,KAAK,CAAC;KACd,CACJ,EAAE,CAAC;CACL"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Backup utilities for MCP document CRUD operations.
3
+ * Creates timestamped backups before destructive operations and handles pruning.
4
+ */
5
+ /**
6
+ * Backup directory name (relative to repo root).
7
+ */
8
+ export declare const BACKUP_DIR = ".backups";
9
+ /**
10
+ * Result of a backup operation.
11
+ */
12
+ export interface BackupResult {
13
+ /** Original file path */
14
+ path: string;
15
+ /** Path to the backup file */
16
+ backupPath: string;
17
+ /** ISO timestamp of the backup */
18
+ timestamp: string;
19
+ }
20
+ /**
21
+ * Options for backup operations.
22
+ */
23
+ export interface BackupOptions {
24
+ /** Number of days to retain backups (default: 7) */
25
+ retentionDays?: number;
26
+ /** Minimum backups to keep regardless of age (default: 3) */
27
+ minBackups?: number;
28
+ }
29
+ /**
30
+ * Format a date for use in backup/trash filenames.
31
+ * Uses ISO format with colons replaced by dashes for Windows compatibility.
32
+ *
33
+ * @param date - Date to format
34
+ * @returns Formatted timestamp string (e.g., "2026-01-20T12-30-45")
35
+ * @example
36
+ * formatTimestamp(new Date('2026-01-20T12:30:45Z'));
37
+ * // Returns: "2026-01-20T12-30-45"
38
+ */
39
+ export declare function formatTimestamp(date: Date): string;
40
+ /**
41
+ * Get the backup path for a file.
42
+ *
43
+ * @param filePath - Absolute path to the original file
44
+ * @param repoRoot - Absolute path to repository root
45
+ * @param timestamp - Optional timestamp (defaults to now)
46
+ * @returns Absolute path for the backup file
47
+ */
48
+ export declare function getBackupPath(filePath: string, repoRoot: string, timestamp?: Date): string;
49
+ /**
50
+ * Create a backup of a file.
51
+ *
52
+ * @param filePath - Absolute path to the file to backup
53
+ * @param repoRoot - Absolute path to repository root
54
+ * @returns Backup result with paths and timestamp
55
+ * @throws DocumentError if file doesn't exist
56
+ */
57
+ export declare function createBackup(filePath: string, repoRoot: string): Promise<BackupResult>;
58
+ /**
59
+ * List all backups for a file, sorted by timestamp (newest first).
60
+ *
61
+ * @param filePath - Absolute path to the original file
62
+ * @param repoRoot - Absolute path to repository root
63
+ * @returns Array of backup results
64
+ */
65
+ export declare function listBackups(filePath: string, repoRoot: string): Promise<BackupResult[]>;
66
+ /**
67
+ * Prune old backups for a file.
68
+ * Keeps backups newer than retention period OR minimum count, whichever keeps more.
69
+ *
70
+ * @param filePath - Absolute path to the original file
71
+ * @param repoRoot - Absolute path to repository root
72
+ * @param options - Pruning options
73
+ * @returns Number of backups pruned
74
+ */
75
+ export declare function pruneBackups(filePath: string, repoRoot: string, options?: BackupOptions): Promise<number>;
76
+ //# sourceMappingURL=backup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/utils/backup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;GAEG;AACH,eAAO,MAAM,UAAU,aAAa,CAAC;AAYrC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAMlD;AAoBD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,IAAiB,GAC3B,MAAM,CASR;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAqB5F;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkC7F;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsCjB"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Backup utilities for MCP document CRUD operations.
3
+ * Creates timestamped backups before destructive operations and handles pruning.
4
+ */
5
+ import { copyFile, mkdir, readdir, unlink } from 'fs/promises';
6
+ import { existsSync } from 'fs';
7
+ import { join, dirname, basename, relative } from 'path';
8
+ import { notFound } from './errors.js';
9
+ /**
10
+ * Backup directory name (relative to repo root).
11
+ */
12
+ export const BACKUP_DIR = '.backups';
13
+ /**
14
+ * Default backup retention: 7 days.
15
+ */
16
+ const DEFAULT_RETENTION_DAYS = 7;
17
+ /**
18
+ * Minimum backups to keep regardless of age.
19
+ */
20
+ const DEFAULT_MIN_BACKUPS = 3;
21
+ /**
22
+ * Format a date for use in backup/trash filenames.
23
+ * Uses ISO format with colons replaced by dashes for Windows compatibility.
24
+ *
25
+ * @param date - Date to format
26
+ * @returns Formatted timestamp string (e.g., "2026-01-20T12-30-45")
27
+ * @example
28
+ * formatTimestamp(new Date('2026-01-20T12:30:45Z'));
29
+ * // Returns: "2026-01-20T12-30-45"
30
+ */
31
+ export function formatTimestamp(date) {
32
+ // Format: 2026-01-20T12-30-45
33
+ return date
34
+ .toISOString()
35
+ .replace(/:/g, '-')
36
+ .replace(/\.\d{3}Z$/, '');
37
+ }
38
+ /**
39
+ * Parse a timestamp from a backup filename.
40
+ */
41
+ function parseTimestamp(filename) {
42
+ // Match: filename.YYYY-MM-DDTHH-MM-SS.bak
43
+ const match = filename.match(/\.(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2})\.bak$/);
44
+ if (!match)
45
+ return null;
46
+ // Convert back to ISO format
47
+ const isoString = match[1].replace(/-/g, (char, index) => {
48
+ // Keep dashes for date part (indices 4, 7), replace with colons for time (indices 13, 16)
49
+ return index > 9 ? ':' : char;
50
+ }) + 'Z';
51
+ return new Date(isoString);
52
+ }
53
+ /**
54
+ * Get the backup path for a file.
55
+ *
56
+ * @param filePath - Absolute path to the original file
57
+ * @param repoRoot - Absolute path to repository root
58
+ * @param timestamp - Optional timestamp (defaults to now)
59
+ * @returns Absolute path for the backup file
60
+ */
61
+ export function getBackupPath(filePath, repoRoot, timestamp = new Date()) {
62
+ // Get relative path from repo root
63
+ const relativePath = relative(repoRoot, filePath);
64
+ // Build backup path: .backups/{relative-path}.{timestamp}.bak
65
+ const backupFilename = `${basename(relativePath)}.${formatTimestamp(timestamp)}.bak`;
66
+ const backupDir = join(repoRoot, BACKUP_DIR, dirname(relativePath));
67
+ return join(backupDir, backupFilename);
68
+ }
69
+ /**
70
+ * Create a backup of a file.
71
+ *
72
+ * @param filePath - Absolute path to the file to backup
73
+ * @param repoRoot - Absolute path to repository root
74
+ * @returns Backup result with paths and timestamp
75
+ * @throws DocumentError if file doesn't exist
76
+ */
77
+ export async function createBackup(filePath, repoRoot) {
78
+ // Verify file exists
79
+ if (!existsSync(filePath)) {
80
+ throw notFound(relative(repoRoot, filePath));
81
+ }
82
+ const timestamp = new Date();
83
+ const backupPath = getBackupPath(filePath, repoRoot, timestamp);
84
+ // Ensure backup directory exists
85
+ const backupDir = dirname(backupPath);
86
+ await mkdir(backupDir, { recursive: true });
87
+ // Copy file to backup location
88
+ await copyFile(filePath, backupPath);
89
+ return {
90
+ path: filePath,
91
+ backupPath,
92
+ timestamp: formatTimestamp(timestamp),
93
+ };
94
+ }
95
+ /**
96
+ * List all backups for a file, sorted by timestamp (newest first).
97
+ *
98
+ * @param filePath - Absolute path to the original file
99
+ * @param repoRoot - Absolute path to repository root
100
+ * @returns Array of backup results
101
+ */
102
+ export async function listBackups(filePath, repoRoot) {
103
+ const relativePath = relative(repoRoot, filePath);
104
+ const backupDir = join(repoRoot, BACKUP_DIR, dirname(relativePath));
105
+ // If backup directory doesn't exist, no backups
106
+ if (!existsSync(backupDir)) {
107
+ return [];
108
+ }
109
+ const filename = basename(relativePath);
110
+ const backupPrefix = `${filename}.`;
111
+ const backupSuffix = '.bak';
112
+ // Find all backups for this file
113
+ const entries = await readdir(backupDir);
114
+ const backups = [];
115
+ for (const entry of entries) {
116
+ if (entry.startsWith(backupPrefix) && entry.endsWith(backupSuffix)) {
117
+ const timestamp = parseTimestamp(entry);
118
+ if (timestamp) {
119
+ backups.push({
120
+ path: filePath,
121
+ backupPath: join(backupDir, entry),
122
+ timestamp: formatTimestamp(timestamp),
123
+ });
124
+ }
125
+ }
126
+ }
127
+ // Sort by timestamp, newest first
128
+ backups.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
129
+ return backups;
130
+ }
131
+ /**
132
+ * Prune old backups for a file.
133
+ * Keeps backups newer than retention period OR minimum count, whichever keeps more.
134
+ *
135
+ * @param filePath - Absolute path to the original file
136
+ * @param repoRoot - Absolute path to repository root
137
+ * @param options - Pruning options
138
+ * @returns Number of backups pruned
139
+ */
140
+ export async function pruneBackups(filePath, repoRoot, options = {}) {
141
+ const retentionDays = options.retentionDays ?? DEFAULT_RETENTION_DAYS;
142
+ const minBackups = options.minBackups ?? DEFAULT_MIN_BACKUPS;
143
+ const backups = await listBackups(filePath, repoRoot);
144
+ if (backups.length <= minBackups) {
145
+ return 0;
146
+ }
147
+ const cutoffDate = new Date();
148
+ cutoffDate.setDate(cutoffDate.getDate() - retentionDays);
149
+ const cutoffTimestamp = formatTimestamp(cutoffDate);
150
+ let prunedCount = 0;
151
+ // Process backups from oldest to newest (reverse of the sorted list)
152
+ // But keep at least minBackups
153
+ for (let i = backups.length - 1; i >= 0; i--) {
154
+ // Always keep minimum backups
155
+ if (backups.length - prunedCount <= minBackups) {
156
+ break;
157
+ }
158
+ const backup = backups[i];
159
+ // Only prune if older than retention period
160
+ if (backup.timestamp < cutoffTimestamp) {
161
+ try {
162
+ await unlink(backup.backupPath);
163
+ prunedCount++;
164
+ }
165
+ catch {
166
+ // Ignore errors (file may already be deleted)
167
+ }
168
+ }
169
+ }
170
+ return prunedCount;
171
+ }
172
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/utils/backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Error handling utilities for MCP document CRUD operations.
3
+ * Provides consistent error types with codes, suggestions, and JSON serialization.
4
+ */
5
+ /**
6
+ * Error codes for document operations.
7
+ */
8
+ export type ErrorCode = 'NOT_FOUND' | 'ALREADY_EXISTS' | 'PERMISSION_DENIED' | 'VALIDATION_ERROR' | 'RESTRICTED_PATH' | 'INTERNAL_ERROR';
9
+ /**
10
+ * MCP-compatible error shape for JSON responses.
11
+ */
12
+ export interface MCPError {
13
+ code: ErrorCode;
14
+ message: string;
15
+ path?: string;
16
+ suggestion?: string;
17
+ }
18
+ /**
19
+ * Custom error class for document operations.
20
+ * Extends Error with code, path, suggestion, and JSON serialization.
21
+ */
22
+ export declare class DocumentError extends Error {
23
+ readonly code: ErrorCode;
24
+ readonly path?: string;
25
+ readonly suggestion?: string;
26
+ constructor(code: ErrorCode, message: string, path?: string, suggestion?: string);
27
+ /**
28
+ * Convert to MCP-compatible JSON shape.
29
+ */
30
+ toJSON(): MCPError;
31
+ }
32
+ /**
33
+ * Factory: File not found error.
34
+ *
35
+ * @param path - Path to the file that was not found
36
+ * @returns DocumentError with NOT_FOUND code
37
+ * @example
38
+ * throw notFound('research/missing.md');
39
+ * // DocumentError: File not found: research/missing.md
40
+ */
41
+ export declare function notFound(path: string): DocumentError;
42
+ /**
43
+ * Factory: File already exists error.
44
+ *
45
+ * @param path - Path to the file that already exists
46
+ * @returns DocumentError with ALREADY_EXISTS code
47
+ * @example
48
+ * throw alreadyExists('addendums/001-existing.md');
49
+ * // DocumentError: File already exists: addendums/001-existing.md
50
+ */
51
+ export declare function alreadyExists(path: string): DocumentError;
52
+ /**
53
+ * Factory: Permission denied error.
54
+ *
55
+ * @param path - Path to the file
56
+ * @param reason - Reason for the permission denial
57
+ * @returns DocumentError with PERMISSION_DENIED code
58
+ * @example
59
+ * throw permissionDenied('config.json', 'File is read-only');
60
+ * // DocumentError: Permission denied for config.json: File is read-only
61
+ */
62
+ export declare function permissionDenied(path: string, reason: string): DocumentError;
63
+ /**
64
+ * Factory: Restricted path error.
65
+ *
66
+ * @param path - Path that is restricted
67
+ * @returns DocumentError with RESTRICTED_PATH code
68
+ * @example
69
+ * throw restrictedPath('.git/config');
70
+ * // DocumentError: Cannot access restricted path: .git/config
71
+ */
72
+ export declare function restrictedPath(path: string): DocumentError;
73
+ /**
74
+ * Factory: Validation error.
75
+ *
76
+ * @param field - Name of the field that failed validation
77
+ * @param message - Description of the validation failure
78
+ * @returns DocumentError with VALIDATION_ERROR code
79
+ * @example
80
+ * throw validationError('path', 'must be relative to repo root');
81
+ * // DocumentError: Validation failed for 'path': must be relative to repo root
82
+ */
83
+ export declare function validationError(field: string, message: string): DocumentError;
84
+ /**
85
+ * Error thrown when recursion depth limit is exceeded.
86
+ * Used by RLM sub-call processing.
87
+ */
88
+ export declare class DepthLimitError extends Error {
89
+ readonly maxDepth: number;
90
+ readonly currentDepth: number;
91
+ constructor(maxDepth: number, currentDepth: number);
92
+ }
93
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAgBhF;;OAEG;IACH,MAAM,IAAI,QAAQ;CAgBnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAOpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAOzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAO5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAO1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAE7E;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAcnD"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Error handling utilities for MCP document CRUD operations.
3
+ * Provides consistent error types with codes, suggestions, and JSON serialization.
4
+ */
5
+ /**
6
+ * Custom error class for document operations.
7
+ * Extends Error with code, path, suggestion, and JSON serialization.
8
+ */
9
+ export class DocumentError extends Error {
10
+ code;
11
+ path;
12
+ suggestion;
13
+ constructor(code, message, path, suggestion) {
14
+ super(message);
15
+ this.name = 'DocumentError';
16
+ this.code = code;
17
+ this.path = path;
18
+ this.suggestion = suggestion;
19
+ // Ensure proper prototype chain for instanceof checks
20
+ Object.setPrototypeOf(this, DocumentError.prototype);
21
+ // Capture stack trace (V8 engines)
22
+ if (Error.captureStackTrace) {
23
+ Error.captureStackTrace(this, DocumentError);
24
+ }
25
+ }
26
+ /**
27
+ * Convert to MCP-compatible JSON shape.
28
+ */
29
+ toJSON() {
30
+ const result = {
31
+ code: this.code,
32
+ message: this.message,
33
+ };
34
+ if (this.path !== undefined) {
35
+ result.path = this.path;
36
+ }
37
+ if (this.suggestion !== undefined) {
38
+ result.suggestion = this.suggestion;
39
+ }
40
+ return result;
41
+ }
42
+ }
43
+ /**
44
+ * Factory: File not found error.
45
+ *
46
+ * @param path - Path to the file that was not found
47
+ * @returns DocumentError with NOT_FOUND code
48
+ * @example
49
+ * throw notFound('research/missing.md');
50
+ * // DocumentError: File not found: research/missing.md
51
+ */
52
+ export function notFound(path) {
53
+ return new DocumentError('NOT_FOUND', `File not found: ${path}`, path, 'Use create_doc to create a new file, or check that the path is correct.');
54
+ }
55
+ /**
56
+ * Factory: File already exists error.
57
+ *
58
+ * @param path - Path to the file that already exists
59
+ * @returns DocumentError with ALREADY_EXISTS code
60
+ * @example
61
+ * throw alreadyExists('addendums/001-existing.md');
62
+ * // DocumentError: File already exists: addendums/001-existing.md
63
+ */
64
+ export function alreadyExists(path) {
65
+ return new DocumentError('ALREADY_EXISTS', `File already exists: ${path}`, path, 'Use update_doc to modify existing files.');
66
+ }
67
+ /**
68
+ * Factory: Permission denied error.
69
+ *
70
+ * @param path - Path to the file
71
+ * @param reason - Reason for the permission denial
72
+ * @returns DocumentError with PERMISSION_DENIED code
73
+ * @example
74
+ * throw permissionDenied('config.json', 'File is read-only');
75
+ * // DocumentError: Permission denied for config.json: File is read-only
76
+ */
77
+ export function permissionDenied(path, reason) {
78
+ return new DocumentError('PERMISSION_DENIED', `Permission denied for ${path}: ${reason}`, path, 'Check file permissions or ensure the file is not locked.');
79
+ }
80
+ /**
81
+ * Factory: Restricted path error.
82
+ *
83
+ * @param path - Path that is restricted
84
+ * @returns DocumentError with RESTRICTED_PATH code
85
+ * @example
86
+ * throw restrictedPath('.git/config');
87
+ * // DocumentError: Cannot access restricted path: .git/config
88
+ */
89
+ export function restrictedPath(path) {
90
+ return new DocumentError('RESTRICTED_PATH', `Cannot access restricted path: ${path}`, path, 'Writable directories: addendums/, examples/, research/, and root *.md files.');
91
+ }
92
+ /**
93
+ * Factory: Validation error.
94
+ *
95
+ * @param field - Name of the field that failed validation
96
+ * @param message - Description of the validation failure
97
+ * @returns DocumentError with VALIDATION_ERROR code
98
+ * @example
99
+ * throw validationError('path', 'must be relative to repo root');
100
+ * // DocumentError: Validation failed for 'path': must be relative to repo root
101
+ */
102
+ export function validationError(field, message) {
103
+ return new DocumentError('VALIDATION_ERROR', `Validation failed for '${field}': ${message}`);
104
+ }
105
+ /**
106
+ * Error thrown when recursion depth limit is exceeded.
107
+ * Used by RLM sub-call processing.
108
+ */
109
+ export class DepthLimitError extends Error {
110
+ maxDepth;
111
+ currentDepth;
112
+ constructor(maxDepth, currentDepth) {
113
+ super(`Max recursion depth exceeded: ${currentDepth} > ${maxDepth}`);
114
+ this.name = 'DepthLimitError';
115
+ this.maxDepth = maxDepth;
116
+ this.currentDepth = currentDepth;
117
+ // Ensure proper prototype chain for instanceof checks
118
+ Object.setPrototypeOf(this, DepthLimitError.prototype);
119
+ // Capture stack trace (V8 engines)
120
+ if (Error.captureStackTrace) {
121
+ Error.captureStackTrace(this, DepthLimitError);
122
+ }
123
+ }
124
+ }
125
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Utility modules for MCP document CRUD operations.
3
+ */
4
+ export * from './errors.js';
5
+ export * from './paths.js';
6
+ export * from './backup.js';
7
+ export * from './os-paths.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Utility modules for MCP document CRUD operations.
3
+ */
4
+ // Re-export all utilities
5
+ export * from './errors.js';
6
+ export * from './paths.js';
7
+ export * from './backup.js';
8
+ export * from './os-paths.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0BAA0B;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * OS-specific path resolution utilities for global npm installation.
3
+ * Provides default configuration and data paths based on the operating system.
4
+ */
5
+ /**
6
+ * Get the OS-specific base directory for application data.
7
+ *
8
+ * @param appName - Application/project name (defaults to mcp-planning-server)
9
+ * @returns Absolute path to the base directory
10
+ */
11
+ export declare function getOSBasePath(appName?: string): string;
12
+ /**
13
+ * Get the OS-specific default configuration file path.
14
+ *
15
+ * - macOS: ~/Library/Application Support/{appName}/config.json
16
+ * - Windows: %APPDATA%\{appName}\config.json
17
+ * - Linux/others: ~/.config/{appName}/config.json (XDG_CONFIG_HOME)
18
+ *
19
+ * @param appName - Application/project name (defaults to mcp-planning-server)
20
+ * @returns Absolute path to the default config file location
21
+ */
22
+ export declare function getOSConfigPath(appName?: string): string;
23
+ /**
24
+ * Get the OS-specific default data directory path.
25
+ *
26
+ * - macOS: ~/Library/Application Support/{appName}/data
27
+ * - Windows: %APPDATA%\{appName}\data
28
+ * - Linux/others: ~/.local/share/{appName}/data (XDG_DATA_HOME)
29
+ *
30
+ * @param appName - Application/project name (defaults to mcp-planning-server)
31
+ * @returns Absolute path to the default data directory
32
+ */
33
+ export declare function getOSDataPath(appName?: string): string;
34
+ /**
35
+ * Get the OS-specific default coordination file path.
36
+ *
37
+ * - macOS: ~/Library/Application Support/{appName}/coordination.json
38
+ * - Windows: %APPDATA%\{appName}\coordination.json
39
+ * - Linux/others: ~/.local/share/{appName}/coordination.json (XDG_DATA_HOME)
40
+ *
41
+ * @param appName - Application/project name (defaults to mcp-planning-server)
42
+ * @returns Absolute path to the default coordination file
43
+ */
44
+ export declare function getOSCoordinationPath(appName?: string): string;
45
+ //# sourceMappingURL=os-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"os-paths.d.ts","sourceRoot":"","sources":["../../src/utils/os-paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAyB,GAAG,MAAM,CAWxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,MAAyB,GAAG,MAAM,CAE1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAyB,GAAG,MAAM,CAYxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,MAAyB,GAAG,MAAM,CAehF"}