@sudosandwich/limps 3.1.1 → 3.3.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 (164) hide show
  1. package/README.md +114 -23
  2. package/dist/agent-parser.d.ts +1 -1
  3. package/dist/agent-parser.d.ts.map +1 -1
  4. package/dist/agent-parser.js +8 -4
  5. package/dist/agent-parser.js.map +1 -1
  6. package/dist/cli/config-cmd.d.ts +2 -2
  7. package/dist/cli/config-cmd.js +5 -5
  8. package/dist/cli/config-cmd.js.map +1 -1
  9. package/dist/cli/docs-create.d.ts +34 -0
  10. package/dist/cli/docs-create.d.ts.map +1 -0
  11. package/dist/cli/docs-create.js +70 -0
  12. package/dist/cli/docs-create.js.map +1 -0
  13. package/dist/cli/docs-delete.d.ts +34 -0
  14. package/dist/cli/docs-delete.d.ts.map +1 -0
  15. package/dist/cli/docs-delete.js +84 -0
  16. package/dist/cli/docs-delete.js.map +1 -0
  17. package/dist/cli/docs-list.d.ts +35 -0
  18. package/dist/cli/docs-list.d.ts.map +1 -0
  19. package/dist/cli/docs-list.js +91 -0
  20. package/dist/cli/docs-list.js.map +1 -0
  21. package/dist/cli/docs-search.d.ts +35 -0
  22. package/dist/cli/docs-search.d.ts.map +1 -0
  23. package/dist/cli/docs-search.js +99 -0
  24. package/dist/cli/docs-search.js.map +1 -0
  25. package/dist/cli/docs-update.d.ts +40 -0
  26. package/dist/cli/docs-update.d.ts.map +1 -0
  27. package/dist/cli/docs-update.js +75 -0
  28. package/dist/cli/docs-update.js.map +1 -0
  29. package/dist/cli/init-project.js +1 -1
  30. package/dist/cli/mcp-client-adapter.d.ts +26 -17
  31. package/dist/cli/mcp-client-adapter.d.ts.map +1 -1
  32. package/dist/cli/mcp-client-adapter.js +23 -28
  33. package/dist/cli/mcp-client-adapter.js.map +1 -1
  34. package/dist/cli/status.d.ts +13 -0
  35. package/dist/cli/status.d.ts.map +1 -1
  36. package/dist/cli/status.js +64 -1
  37. package/dist/cli/status.js.map +1 -1
  38. package/dist/cli.js +9 -2
  39. package/dist/cli.js.map +1 -1
  40. package/dist/commands/config/index.d.ts.map +1 -1
  41. package/dist/commands/config/index.js +1 -0
  42. package/dist/commands/config/index.js.map +1 -1
  43. package/dist/commands/config/show-resolution.d.ts +11 -0
  44. package/dist/commands/config/show-resolution.d.ts.map +1 -0
  45. package/dist/commands/config/show-resolution.js +114 -0
  46. package/dist/commands/config/show-resolution.js.map +1 -0
  47. package/dist/commands/create-doc.d.ts +21 -0
  48. package/dist/commands/create-doc.d.ts.map +1 -0
  49. package/dist/commands/create-doc.js +99 -0
  50. package/dist/commands/create-doc.js.map +1 -0
  51. package/dist/commands/create-plan.d.ts +15 -0
  52. package/dist/commands/create-plan.d.ts.map +1 -0
  53. package/dist/commands/create-plan.js +73 -0
  54. package/dist/commands/create-plan.js.map +1 -0
  55. package/dist/commands/delete-doc.d.ts +16 -0
  56. package/dist/commands/delete-doc.d.ts.map +1 -0
  57. package/dist/commands/delete-doc.js +97 -0
  58. package/dist/commands/delete-doc.js.map +1 -0
  59. package/dist/commands/index.js +1 -1
  60. package/dist/commands/index.js.map +1 -1
  61. package/dist/commands/list-docs.d.ts +18 -0
  62. package/dist/commands/list-docs.d.ts.map +1 -0
  63. package/dist/commands/list-docs.js +83 -0
  64. package/dist/commands/list-docs.js.map +1 -0
  65. package/dist/commands/process.d.ts +20 -0
  66. package/dist/commands/process.d.ts.map +1 -0
  67. package/dist/commands/process.js +257 -0
  68. package/dist/commands/process.js.map +1 -0
  69. package/dist/commands/search-docs.d.ts +17 -0
  70. package/dist/commands/search-docs.d.ts.map +1 -0
  71. package/dist/commands/search-docs.js +109 -0
  72. package/dist/commands/search-docs.js.map +1 -0
  73. package/dist/commands/serve.d.ts +17 -0
  74. package/dist/commands/serve.d.ts.map +1 -0
  75. package/dist/commands/serve.js +125 -0
  76. package/dist/commands/serve.js.map +1 -0
  77. package/dist/commands/{status-server.d.ts → server-status.d.ts} +1 -1
  78. package/dist/commands/server-status.d.ts.map +1 -0
  79. package/dist/commands/{status-server.js → server-status.js} +33 -14
  80. package/dist/commands/server-status.js.map +1 -0
  81. package/dist/commands/start.d.ts.map +1 -1
  82. package/dist/commands/start.js +26 -9
  83. package/dist/commands/start.js.map +1 -1
  84. package/dist/commands/status.d.ts +7 -0
  85. package/dist/commands/status.d.ts.map +1 -1
  86. package/dist/commands/status.js +74 -2
  87. package/dist/commands/status.js.map +1 -1
  88. package/dist/commands/tags/add.d.ts +16 -0
  89. package/dist/commands/tags/add.d.ts.map +1 -0
  90. package/dist/commands/tags/add.js +120 -0
  91. package/dist/commands/tags/add.js.map +1 -0
  92. package/dist/commands/tags/index.d.ts +3 -0
  93. package/dist/commands/tags/index.d.ts.map +1 -0
  94. package/dist/commands/tags/index.js +33 -0
  95. package/dist/commands/tags/index.js.map +1 -0
  96. package/dist/commands/tags/list.d.ts +15 -0
  97. package/dist/commands/tags/list.d.ts.map +1 -0
  98. package/dist/commands/tags/list.js +111 -0
  99. package/dist/commands/tags/list.js.map +1 -0
  100. package/dist/commands/tags/remove.d.ts +16 -0
  101. package/dist/commands/tags/remove.d.ts.map +1 -0
  102. package/dist/commands/tags/remove.js +120 -0
  103. package/dist/commands/tags/remove.js.map +1 -0
  104. package/dist/commands/update-doc.d.ts +23 -0
  105. package/dist/commands/update-doc.d.ts.map +1 -0
  106. package/dist/commands/update-doc.js +144 -0
  107. package/dist/commands/update-doc.js.map +1 -0
  108. package/dist/extensions/context.d.ts.map +1 -1
  109. package/dist/extensions/context.js +10 -8
  110. package/dist/extensions/context.js.map +1 -1
  111. package/dist/extensions/loader.d.ts.map +1 -1
  112. package/dist/extensions/loader.js +3 -2
  113. package/dist/extensions/loader.js.map +1 -1
  114. package/dist/index.js +2 -1
  115. package/dist/index.js.map +1 -1
  116. package/dist/pidfile.d.ts +1 -0
  117. package/dist/pidfile.d.ts.map +1 -1
  118. package/dist/pidfile.js +4 -1
  119. package/dist/pidfile.js.map +1 -1
  120. package/dist/server-http-entry.js +39 -6
  121. package/dist/server-http-entry.js.map +1 -1
  122. package/dist/server-http.d.ts +11 -1
  123. package/dist/server-http.d.ts.map +1 -1
  124. package/dist/server-http.js +44 -9
  125. package/dist/server-http.js.map +1 -1
  126. package/dist/server-main.d.ts.map +1 -1
  127. package/dist/server-main.js +2 -1
  128. package/dist/server-main.js.map +1 -1
  129. package/dist/server.d.ts.map +1 -1
  130. package/dist/server.js +10 -8
  131. package/dist/server.js.map +1 -1
  132. package/dist/tools/create-plan.d.ts +1 -0
  133. package/dist/tools/create-plan.d.ts.map +1 -1
  134. package/dist/tools/create-plan.js +20 -6
  135. package/dist/tools/create-plan.js.map +1 -1
  136. package/dist/tools/index.js +1 -1
  137. package/dist/tools/index.js.map +1 -1
  138. package/dist/tools/update-task-status.d.ts +1 -1
  139. package/dist/tools/update-task-status.d.ts.map +1 -1
  140. package/dist/tools/update-task-status.js +17 -187
  141. package/dist/tools/update-task-status.js.map +1 -1
  142. package/dist/utils/config-resolver.d.ts +1 -1
  143. package/dist/utils/config-resolver.d.ts.map +1 -1
  144. package/dist/utils/config-resolver.js +6 -4
  145. package/dist/utils/config-resolver.js.map +1 -1
  146. package/dist/utils/daemon-log.d.ts +13 -0
  147. package/dist/utils/daemon-log.d.ts.map +1 -0
  148. package/dist/utils/daemon-log.js +27 -0
  149. package/dist/utils/daemon-log.js.map +1 -0
  150. package/dist/utils/daemon-manager.d.ts +23 -0
  151. package/dist/utils/daemon-manager.d.ts.map +1 -0
  152. package/dist/utils/daemon-manager.js +89 -0
  153. package/dist/utils/daemon-manager.js.map +1 -0
  154. package/dist/utils/http-client.d.ts +2 -0
  155. package/dist/utils/http-client.d.ts.map +1 -1
  156. package/dist/utils/http-client.js.map +1 -1
  157. package/dist/utils/safe-logging.d.ts +24 -0
  158. package/dist/utils/safe-logging.d.ts.map +1 -0
  159. package/dist/utils/safe-logging.js +88 -0
  160. package/dist/utils/safe-logging.js.map +1 -0
  161. package/package.json +3 -1
  162. package/postinstall/postinstall.cjs +354 -0
  163. package/dist/commands/status-server.d.ts.map +0 -1
  164. package/dist/commands/status-server.js.map +0 -1
@@ -0,0 +1,34 @@
1
+ /**
2
+ * CLI command: delete-doc
3
+ * Delete documents with confirmation and backup.
4
+ */
5
+ import type { ServerConfig } from '../config.js';
6
+ import type { DeleteDocOutput } from '../tools/delete-doc.js';
7
+ /**
8
+ * Options for deleting documents.
9
+ */
10
+ export interface DeleteDocOptions {
11
+ path: string;
12
+ confirm?: boolean;
13
+ permanent?: boolean;
14
+ }
15
+ /**
16
+ * Get document deletion result from the tool handler.
17
+ * Returns structured data for rendering.
18
+ *
19
+ * @param config - Server configuration
20
+ * @param options - Deletion options
21
+ * @returns Deletion result or error message
22
+ */
23
+ export declare function getDeleteDocData(config: ServerConfig, options: DeleteDocOptions): Promise<DeleteDocOutput | {
24
+ error: string;
25
+ }>;
26
+ /**
27
+ * Delete a document.
28
+ *
29
+ * @param config - Server configuration
30
+ * @param options - Deletion options
31
+ * @returns Formatted string output for CLI
32
+ */
33
+ export declare function deleteDoc(config: ServerConfig, options: DeleteDocOptions): Promise<string>;
34
+ //# sourceMappingURL=docs-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-delete.d.ts","sourceRoot":"","sources":["../../src/cli/docs-delete.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,wBAAwB,CAAC;AAM9E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA8B9C;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmChG"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * CLI command: delete-doc
3
+ * Delete documents with confirmation and backup.
4
+ */
5
+ import { handleDeleteDoc } from '../tools/delete-doc.js';
6
+ import { initializeDatabase, createSchema } from '../indexer.js';
7
+ import { resolve } from 'path';
8
+ import { mkdirSync } from 'fs';
9
+ /**
10
+ * Get document deletion result from the tool handler.
11
+ * Returns structured data for rendering.
12
+ *
13
+ * @param config - Server configuration
14
+ * @param options - Deletion options
15
+ * @returns Deletion result or error message
16
+ */
17
+ export async function getDeleteDocData(config, options) {
18
+ // Ensure data directory exists
19
+ mkdirSync(config.dataPath, { recursive: true });
20
+ const dbPath = resolve(config.dataPath, 'documents.sqlite');
21
+ const db = initializeDatabase(dbPath);
22
+ try {
23
+ createSchema(db);
24
+ const input = {
25
+ path: options.path,
26
+ confirm: options.confirm || false,
27
+ permanent: options.permanent || false,
28
+ };
29
+ const result = await handleDeleteDoc(input, { config, db });
30
+ if (result.isError) {
31
+ const errorText = result.content[0]?.text || 'Unknown error';
32
+ return { error: errorText };
33
+ }
34
+ const data = JSON.parse(result.content[0].text);
35
+ return data;
36
+ }
37
+ catch (error) {
38
+ return {
39
+ error: error instanceof Error ? error.message : String(error),
40
+ };
41
+ }
42
+ finally {
43
+ db.close();
44
+ }
45
+ }
46
+ /**
47
+ * Delete a document.
48
+ *
49
+ * @param config - Server configuration
50
+ * @param options - Deletion options
51
+ * @returns Formatted string output for CLI
52
+ */
53
+ export async function deleteDoc(config, options) {
54
+ const result = await getDeleteDocData(config, options);
55
+ if ('error' in result) {
56
+ return `Error: ${result.error}`;
57
+ }
58
+ const lines = [];
59
+ if (result.pending) {
60
+ lines.push('⚠️ Deletion pending confirmation');
61
+ lines.push('');
62
+ lines.push(`Path: ${result.path}`);
63
+ if (result.preview) {
64
+ lines.push('');
65
+ lines.push('Preview:');
66
+ lines.push(result.preview);
67
+ }
68
+ lines.push('');
69
+ lines.push('Run with --confirm to proceed');
70
+ }
71
+ else if (result.deleted) {
72
+ lines.push('✓ Document deleted successfully');
73
+ lines.push('');
74
+ lines.push(`Path: ${result.path}`);
75
+ if (result.trash) {
76
+ lines.push(`Moved to trash: ${result.trash}`);
77
+ }
78
+ if (result.backup) {
79
+ lines.push(`Backup: ${result.backup}`);
80
+ }
81
+ }
82
+ return lines.join('\n');
83
+ }
84
+ //# sourceMappingURL=docs-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-delete.js","sourceRoot":"","sources":["../../src/cli/docs-delete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * CLI command: list-docs
3
+ * Lists files and directories with optional filtering.
4
+ */
5
+ import type { ServerConfig } from '../config.js';
6
+ import type { ListDocsOutput } from '../tools/list-docs.js';
7
+ /**
8
+ * Options for listing documents.
9
+ */
10
+ export interface ListDocsOptions {
11
+ path?: string;
12
+ pattern?: string;
13
+ depth?: number;
14
+ includeHidden?: boolean;
15
+ }
16
+ /**
17
+ * Get documents list data from the tool handler.
18
+ * Returns structured data for rendering.
19
+ *
20
+ * @param config - Server configuration
21
+ * @param options - Listing options
22
+ * @returns List data or error message
23
+ */
24
+ export declare function getDocsListData(config: ServerConfig, options?: ListDocsOptions): Promise<ListDocsOutput | {
25
+ error: string;
26
+ }>;
27
+ /**
28
+ * List documents from the configured paths.
29
+ *
30
+ * @param config - Server configuration
31
+ * @param options - Listing options
32
+ * @returns Formatted string output for CLI
33
+ */
34
+ export declare function listDocs(config: ServerConfig, options?: ListDocsOptions): Promise<string>;
35
+ //# sourceMappingURL=docs-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-list.d.ts","sourceRoot":"","sources":["../../src/cli/docs-list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,uBAAuB,CAAC;AAMtE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiC7C;AAqBD;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * CLI command: list-docs
3
+ * Lists files and directories with optional filtering.
4
+ */
5
+ import { handleListDocs } from '../tools/list-docs.js';
6
+ import { initializeDatabase, createSchema } from '../indexer.js';
7
+ import { resolve } from 'path';
8
+ import { mkdirSync } from 'fs';
9
+ /**
10
+ * Get documents list data from the tool handler.
11
+ * Returns structured data for rendering.
12
+ *
13
+ * @param config - Server configuration
14
+ * @param options - Listing options
15
+ * @returns List data or error message
16
+ */
17
+ export async function getDocsListData(config, options = {}) {
18
+ // Ensure data directory exists
19
+ mkdirSync(config.dataPath, { recursive: true });
20
+ const dbPath = resolve(config.dataPath, 'documents.sqlite');
21
+ const db = initializeDatabase(dbPath);
22
+ try {
23
+ createSchema(db);
24
+ const result = await handleListDocs({
25
+ path: options.path || '',
26
+ pattern: options.pattern,
27
+ depth: options.depth || 2,
28
+ includeHidden: options.includeHidden || false,
29
+ prettyPrint: true,
30
+ }, { config, db });
31
+ if (result.isError) {
32
+ const errorText = result.content[0]?.text || 'Unknown error';
33
+ return { error: errorText };
34
+ }
35
+ const data = JSON.parse(result.content[0].text);
36
+ return data;
37
+ }
38
+ catch (error) {
39
+ return {
40
+ error: error instanceof Error ? error.message : String(error),
41
+ };
42
+ }
43
+ finally {
44
+ db.close();
45
+ }
46
+ }
47
+ /**
48
+ * Format directory entry for CLI display.
49
+ */
50
+ function formatEntry(entry, indent = 0) {
51
+ const prefix = ' '.repeat(indent);
52
+ const icon = entry.type === 'directory' ? '📁' : '📄';
53
+ let line = `${prefix}${icon} ${entry.name}`;
54
+ if (entry.type === 'file' && entry.size !== undefined) {
55
+ const sizeKb = (entry.size / 1024).toFixed(1);
56
+ line += ` (${sizeKb} KB)`;
57
+ }
58
+ else if (entry.type === 'directory' && entry.children !== undefined) {
59
+ line += ` (${entry.children} items)`;
60
+ }
61
+ return line;
62
+ }
63
+ /**
64
+ * List documents from the configured paths.
65
+ *
66
+ * @param config - Server configuration
67
+ * @param options - Listing options
68
+ * @returns Formatted string output for CLI
69
+ */
70
+ export async function listDocs(config, options = {}) {
71
+ const result = await getDocsListData(config, options);
72
+ if ('error' in result) {
73
+ return `Error: ${result.error}`;
74
+ }
75
+ const lines = [];
76
+ const displayPath = result.path || '(root)';
77
+ lines.push(`Documents in: ${displayPath}`);
78
+ lines.push('');
79
+ if (result.entries.length === 0) {
80
+ lines.push('No files found');
81
+ }
82
+ else {
83
+ for (const entry of result.entries) {
84
+ lines.push(formatEntry(entry));
85
+ }
86
+ lines.push('');
87
+ lines.push(`Total: ${result.total} item(s)`);
88
+ }
89
+ return lines.join('\n');
90
+ }
91
+ //# sourceMappingURL=docs-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-list.js","sourceRoot":"","sources":["../../src/cli/docs-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * CLI command: search-docs
3
+ * Full-text search across planning documents.
4
+ */
5
+ import type { ServerConfig } from '../config.js';
6
+ import type { SearchResult } from '../tools/search-docs.js';
7
+ /**
8
+ * Options for searching documents.
9
+ */
10
+ export interface SearchDocsOptions {
11
+ query: string;
12
+ limit?: number;
13
+ searchFrontmatter?: boolean;
14
+ caseSensitive?: boolean;
15
+ }
16
+ /**
17
+ * Get search results data from the tool handler.
18
+ * Returns structured data for rendering.
19
+ *
20
+ * @param config - Server configuration
21
+ * @param options - Search options
22
+ * @returns Search results or error message
23
+ */
24
+ export declare function getSearchDocsData(config: ServerConfig, options: SearchDocsOptions): Promise<SearchResult[] | {
25
+ error: string;
26
+ }>;
27
+ /**
28
+ * Search documents using full-text search.
29
+ *
30
+ * @param config - Server configuration
31
+ * @param options - Search options
32
+ * @returns Formatted string output for CLI
33
+ */
34
+ export declare function searchDocs(config: ServerConfig, options: SearchDocsOptions): Promise<string>;
35
+ //# sourceMappingURL=docs-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-search.d.ts","sourceRoot":"","sources":["../../src/cli/docs-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAM5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,YAAY,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyC7C;AAqBD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * CLI command: search-docs
3
+ * Full-text search across planning documents.
4
+ */
5
+ import { handleSearchDocs } from '../tools/search-docs.js';
6
+ import { initializeDatabase, createSchema } from '../indexer.js';
7
+ import { resolve } from 'path';
8
+ import { mkdirSync } from 'fs';
9
+ /**
10
+ * Get search results data from the tool handler.
11
+ * Returns structured data for rendering.
12
+ *
13
+ * @param config - Server configuration
14
+ * @param options - Search options
15
+ * @returns Search results or error message
16
+ */
17
+ export async function getSearchDocsData(config, options) {
18
+ // Ensure data directory exists
19
+ mkdirSync(config.dataPath, { recursive: true });
20
+ const dbPath = resolve(config.dataPath, 'documents.sqlite');
21
+ const db = initializeDatabase(dbPath);
22
+ try {
23
+ createSchema(db);
24
+ const result = await handleSearchDocs({
25
+ query: options.query,
26
+ limit: options.limit || 20,
27
+ searchContent: true,
28
+ searchFrontmatter: options.searchFrontmatter || false,
29
+ caseSensitive: options.caseSensitive || false,
30
+ prettyPrint: true,
31
+ }, { config, db });
32
+ if (result.isError) {
33
+ const errorText = result.content[0]?.text || 'Unknown error';
34
+ return { error: errorText };
35
+ }
36
+ const text = result.content[0].text;
37
+ // Handle "no results" message
38
+ if (text.includes('No results found')) {
39
+ return [];
40
+ }
41
+ const data = JSON.parse(text);
42
+ return data;
43
+ }
44
+ catch (error) {
45
+ return {
46
+ error: error instanceof Error ? error.message : String(error),
47
+ };
48
+ }
49
+ finally {
50
+ db.close();
51
+ }
52
+ }
53
+ /**
54
+ * Format search result for CLI display.
55
+ */
56
+ function formatResult(result, index) {
57
+ const lines = [];
58
+ const title = result.title || result.t;
59
+ const path = result.path || result.p;
60
+ const excerpt = result.excerpt || result.ex;
61
+ const matchCount = result.matchCount ?? result.mc;
62
+ const lineNumber = result.lineNumber ?? result.ln;
63
+ lines.push(`${index + 1}. ${title}`);
64
+ lines.push(` Path: ${path}`);
65
+ lines.push(` Matches: ${matchCount} | Line: ${lineNumber}`);
66
+ lines.push(` ${excerpt}`);
67
+ return lines;
68
+ }
69
+ /**
70
+ * Search documents using full-text search.
71
+ *
72
+ * @param config - Server configuration
73
+ * @param options - Search options
74
+ * @returns Formatted string output for CLI
75
+ */
76
+ export async function searchDocs(config, options) {
77
+ const result = await getSearchDocsData(config, options);
78
+ if ('error' in result) {
79
+ return `Error: ${result.error}`;
80
+ }
81
+ const lines = [];
82
+ lines.push(`Search results for: "${options.query}"`);
83
+ lines.push('');
84
+ if (result.length === 0) {
85
+ lines.push('No results found');
86
+ }
87
+ else {
88
+ for (let i = 0; i < result.length; i++) {
89
+ lines.push(...formatResult(result[i], i));
90
+ if (i < result.length - 1) {
91
+ lines.push('');
92
+ }
93
+ }
94
+ lines.push('');
95
+ lines.push(`Total: ${result.length} result(s)`);
96
+ }
97
+ return lines.join('\n');
98
+ }
99
+ //# sourceMappingURL=docs-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-search.js","sourceRoot":"","sources":["../../src/cli/docs-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * CLI command: update-doc
3
+ * Update existing documents.
4
+ */
5
+ import type { ServerConfig } from '../config.js';
6
+ import type { UpdateDocOutput } from '../tools/update-doc.js';
7
+ /**
8
+ * Options for updating documents.
9
+ */
10
+ export interface UpdateDocOptions {
11
+ path: string;
12
+ content?: string;
13
+ mode?: 'overwrite' | 'append' | 'prepend';
14
+ patch?: {
15
+ search: string;
16
+ replace: string;
17
+ };
18
+ createBackup?: boolean;
19
+ force?: boolean;
20
+ }
21
+ /**
22
+ * Get document update result from the tool handler.
23
+ * Returns structured data for rendering.
24
+ *
25
+ * @param config - Server configuration
26
+ * @param options - Update options
27
+ * @returns Update result or error message
28
+ */
29
+ export declare function getUpdateDocData(config: ServerConfig, options: UpdateDocOptions): Promise<UpdateDocOutput | {
30
+ error: string;
31
+ }>;
32
+ /**
33
+ * Update an existing document.
34
+ *
35
+ * @param config - Server configuration
36
+ * @param options - Update options
37
+ * @returns Formatted string output for CLI
38
+ */
39
+ export declare function updateDoc(config: ServerConfig, options: UpdateDocOptions): Promise<string>;
40
+ //# sourceMappingURL=docs-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-update.d.ts","sourceRoot":"","sources":["../../src/cli/docs-update.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,wBAAwB,CAAC;AAM9E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1C,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAkC9C;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBhG"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * CLI command: update-doc
3
+ * Update existing documents.
4
+ */
5
+ import { handleUpdateDoc } from '../tools/update-doc.js';
6
+ import { initializeDatabase, createSchema } from '../indexer.js';
7
+ import { resolve } from 'path';
8
+ import { mkdirSync } from 'fs';
9
+ /**
10
+ * Get document update result from the tool handler.
11
+ * Returns structured data for rendering.
12
+ *
13
+ * @param config - Server configuration
14
+ * @param options - Update options
15
+ * @returns Update result or error message
16
+ */
17
+ export async function getUpdateDocData(config, options) {
18
+ // Ensure data directory exists
19
+ mkdirSync(config.dataPath, { recursive: true });
20
+ const dbPath = resolve(config.dataPath, 'documents.sqlite');
21
+ const db = initializeDatabase(dbPath);
22
+ try {
23
+ createSchema(db);
24
+ const input = {
25
+ path: options.path,
26
+ content: options.content,
27
+ mode: options.mode || 'overwrite',
28
+ patch: options.patch ? { ...options.patch, all: false } : undefined,
29
+ createBackup: options.createBackup ?? true,
30
+ force: options.force || false,
31
+ prettyPrint: true,
32
+ };
33
+ const result = await handleUpdateDoc(input, { config, db });
34
+ if (result.isError) {
35
+ const errorText = result.content[0]?.text || 'Unknown error';
36
+ return { error: errorText };
37
+ }
38
+ const data = JSON.parse(result.content[0].text);
39
+ return data;
40
+ }
41
+ catch (error) {
42
+ return {
43
+ error: error instanceof Error ? error.message : String(error),
44
+ };
45
+ }
46
+ finally {
47
+ db.close();
48
+ }
49
+ }
50
+ /**
51
+ * Update an existing document.
52
+ *
53
+ * @param config - Server configuration
54
+ * @param options - Update options
55
+ * @returns Formatted string output for CLI
56
+ */
57
+ export async function updateDoc(config, options) {
58
+ const result = await getUpdateDocData(config, options);
59
+ if ('error' in result) {
60
+ return `Error: ${result.error}`;
61
+ }
62
+ const lines = [];
63
+ lines.push('✓ Document updated successfully');
64
+ lines.push('');
65
+ lines.push(`Path: ${result.path}`);
66
+ lines.push(`Size: ${(result.size / 1024).toFixed(1)} KB`);
67
+ if (result.backup) {
68
+ lines.push(`Backup: ${result.backup}`);
69
+ }
70
+ if (result.changes) {
71
+ lines.push(`Changes: +${result.changes.additions} -${result.changes.deletions} lines`);
72
+ }
73
+ return lines.join('\n');
74
+ }
75
+ //# sourceMappingURL=docs-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-update.js","sourceRoot":"","sources":["../../src/cli/docs-update.ts"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ export function initProject(targetPath = '.') {
89
89
  lines.push('');
90
90
  // Daemon management
91
91
  lines.push('Manage the daemon:');
92
- lines.push(` ${localPlannerPath} status-server --config "${configPath}" # Check status`);
92
+ lines.push(` ${localPlannerPath} server-status --config "${configPath}" # Check status`);
93
93
  lines.push(` ${localPlannerPath} stop --config "${configPath}" # Stop daemon`);
94
94
  lines.push('');
95
95
  // CLI usage