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
@@ -1,262 +1,57 @@
1
1
  /**
2
- * Simple test runner for the MCP server
2
+ * Simple test runner for utility tools
3
3
  * Run with: npx ts-node src/test-runner.ts
4
+ *
5
+ * This test runner only tests utility tools (read_docs, update_doc, list_workspaces, list_files).
6
+ * Entity management is done via V2 tools (create_entity, search_entities, etc.).
4
7
  */
5
8
  import { getConfig } from './utils/config.js';
6
- import { handleManageAccomplishment, handleManageDependency, handleManageTask, handleSetWorkFocus, handleGetAccomplishment, handleListAccomplishments, handleGetCurrentWork, handleGetBlockedItems, handleGetReadyToStart, handleGetProjectStatus, handleGetAccomplishmentsGraph, handleBatchOperations, handleReconcileCanvas, } from './tools/index.js';
7
- import { loadCanvas } from './services/canvas-service.js';
8
- import { findNodeByFile } from './parsers/canvas-parser.js';
9
- import { findStatusIndicator } from './services/status-indicator-service.js';
9
+ import { handleReadDocs, handleListWorkspaces, handleListFiles, } from './tools/index.js';
10
10
  // Set environment variables for testing
11
+ // VAULT_PATH should point to the project folder containing milestones/, stories/, etc.
11
12
  process.env.VAULT_PATH = process.cwd() + '/test-vault';
12
- process.env.ACCOMPLISHMENTS_FOLDER = 'accomplishments';
13
- process.env.DEFAULT_CANVAS = 'projects/main.canvas';
13
+ process.env.DEFAULT_CANVAS = 'main.canvas';
14
14
  const config = getConfig();
15
15
  async function runTests() {
16
- console.log('=== Obsidian Accomplishments MCP Server Tests ===\n');
16
+ console.log('=== Obsidian MCP Server Utility Tools Tests ===\n');
17
17
  console.log('Config:', config, '\n');
18
18
  try {
19
- // Test 1: Create accomplishments
20
- console.log('--- Test 1: Create Accomplishments ---');
21
- const acc1 = await handleManageAccomplishment(config, {
22
- operation: 'create',
23
- data: {
24
- title: 'Setup Development Environment',
25
- effort: 'Engineering',
26
- priority: 'High',
27
- outcome: 'Development environment is fully configured and ready for coding',
28
- acceptance_criteria: ['Node.js installed', 'IDE configured', 'Git setup'],
29
- },
30
- });
31
- console.log('Created ACC1:', JSON.stringify(acc1, null, 2));
32
- const acc2 = await handleManageAccomplishment(config, {
33
- operation: 'create',
34
- data: {
35
- title: 'Implement Core Features',
36
- effort: 'Engineering',
37
- priority: 'Critical',
38
- outcome: 'Core features are implemented and working',
39
- },
40
- });
41
- console.log('Created ACC2:', JSON.stringify(acc2, null, 2));
42
- const acc3 = await handleManageAccomplishment(config, {
43
- operation: 'create',
44
- data: {
45
- title: 'Write Documentation',
46
- effort: 'Business',
47
- priority: 'Medium',
48
- outcome: 'Documentation is complete and published',
49
- },
50
- });
51
- console.log('Created ACC3:', JSON.stringify(acc3, null, 2));
52
- // Test 2: Add dependencies using manage_dependency
53
- console.log('\n--- Test 2: Add Dependencies (via manage_dependency) ---');
54
- // ACC-002 depends on ACC-001
55
- const dep1 = await handleManageDependency(config, {
56
- operation: 'add',
57
- blocker_id: 'ACC-001',
58
- blocked_id: 'ACC-002',
59
- });
60
- console.log('Added dependency:', JSON.stringify(dep1, null, 2));
61
- // ACC-003 depends on ACC-002
62
- const dep2 = await handleManageDependency(config, {
63
- operation: 'add',
64
- blocker_id: 'ACC-002',
65
- blocked_id: 'ACC-003',
66
- });
67
- console.log('Added dependency:', JSON.stringify(dep2, null, 2));
68
- // Test 2b: Create accomplishment WITH depends_on at creation time
69
- console.log('\n--- Test 2b: Create Accomplishment with depends_on (edge creation test) ---');
70
- const acc4 = await handleManageAccomplishment(config, {
71
- operation: 'create',
72
- data: {
73
- title: 'Deploy to Production',
74
- effort: 'Engineering',
75
- priority: 'High',
76
- outcome: 'Application is deployed and running in production',
77
- depends_on: ['ACC-002', 'ACC-003'], // Should create edges at creation time
78
- },
79
- });
80
- console.log('Created ACC4 with depends_on:', JSON.stringify(acc4, null, 2));
81
- // Verify edges were created in canvas
82
- console.log('\n--- Verifying canvas edges for ACC-004 ---');
83
- const canvas = await loadCanvas(config);
84
- // Find nodes
85
- const acc2Node = findNodeByFile(canvas, 'accomplishments/Implement Core Features.md');
86
- const acc3Node = findNodeByFile(canvas, 'accomplishments/Write Documentation.md');
87
- const acc4Node = findNodeByFile(canvas, 'accomplishments/Deploy to Production.md');
88
- console.log('ACC-002 node:', acc2Node ? `found (id: ${acc2Node.id})` : 'NOT FOUND');
89
- console.log('ACC-003 node:', acc3Node ? `found (id: ${acc3Node.id})` : 'NOT FOUND');
90
- console.log('ACC-004 node:', acc4Node ? `found (id: ${acc4Node.id})` : 'NOT FOUND');
91
- // Check for edges
92
- const edgeFromAcc2ToAcc4 = canvas.edges.find(e => e.fromNode === acc2Node?.id && e.toNode === acc4Node?.id);
93
- const edgeFromAcc3ToAcc4 = canvas.edges.find(e => e.fromNode === acc3Node?.id && e.toNode === acc4Node?.id);
94
- console.log('Edge ACC-002 -> ACC-004:', edgeFromAcc2ToAcc4 ? '✅ EXISTS' : '❌ MISSING');
95
- console.log('Edge ACC-003 -> ACC-004:', edgeFromAcc3ToAcc4 ? '✅ EXISTS' : '❌ MISSING');
96
- if (!edgeFromAcc2ToAcc4 || !edgeFromAcc3ToAcc4) {
97
- throw new Error('FAILED: Edges were not created when passing depends_on at creation time!');
98
- }
99
- console.log('\n✅ SUCCESS: Edges are correctly created when passing depends_on at creation time!');
100
- // Test 3: Add tasks
101
- console.log('\n--- Test 3: Add Tasks ---');
102
- const task1 = await handleManageTask(config, {
103
- operation: 'add',
104
- accomplishment_id: 'ACC-001',
105
- data: {
106
- name: 'Install Node.js',
107
- goal: 'Have Node.js v20+ installed',
108
- description: 'Download and install Node.js LTS',
109
- estimate: 0.5,
110
- },
111
- });
112
- console.log('Added task:', JSON.stringify(task1, null, 2));
113
- const task2 = await handleManageTask(config, {
114
- operation: 'add',
115
- accomplishment_id: 'ACC-001',
116
- data: {
117
- name: 'Configure IDE',
118
- goal: 'IDE is set up with extensions',
119
- description: 'Install VS Code and required extensions',
120
- estimate: 1,
121
- },
122
- });
123
- console.log('Added task:', JSON.stringify(task2, null, 2));
124
- // Test 4: Set work focus
125
- console.log('\n--- Test 4: Set Work Focus ---');
126
- const focus = await handleSetWorkFocus(config, {
127
- accomplishment_id: 'ACC-001',
128
- in_progress: true,
129
- task_id: 'ACC-001:Task 1:Install Node.js',
130
- task_status: 'InProgress',
131
- });
132
- console.log('Set focus:', JSON.stringify(focus, null, 2));
133
- // Test 5: Get accomplishment details
134
- console.log('\n--- Test 5: Get Accomplishment Details ---');
135
- const details = await handleGetAccomplishment(config, { id: 'ACC-001' });
136
- console.log('ACC-001 details:', JSON.stringify(details, null, 2));
137
- // Test 6: List accomplishments
138
- console.log('\n--- Test 6: List Accomplishments ---');
139
- const list = await handleListAccomplishments(config, {});
140
- console.log('All accomplishments:', JSON.stringify(list, null, 2));
141
- // Test 7: Get current work
142
- console.log('\n--- Test 7: Get Current Work ---');
143
- const currentWork = await handleGetCurrentWork(config, {});
144
- console.log('Current work:', JSON.stringify(currentWork, null, 2));
145
- // Test 8: Get blocked items
146
- console.log('\n--- Test 8: Get Blocked Items ---');
147
- const blocked = await handleGetBlockedItems(config, {});
148
- console.log('Blocked items:', JSON.stringify(blocked, null, 2));
149
- // Test 9: Get ready to start
150
- console.log('\n--- Test 9: Get Ready to Start ---');
151
- const ready = await handleGetReadyToStart(config, {});
152
- console.log('Ready to start:', JSON.stringify(ready, null, 2));
153
- // Test 10: Get project status
154
- console.log('\n--- Test 10: Get Project Status ---');
155
- const status = await handleGetProjectStatus(config, {});
156
- console.log('Project status:', JSON.stringify(status, null, 2));
157
- // Test 11: Get accomplishments graph (with orphan detection)
158
- console.log('\n--- Test 11: Get Accomplishments Graph (with orphan detection) ---');
159
- // Create orphaned accomplishments (not connected to main graph)
160
- const orphan1 = await handleManageAccomplishment(config, {
161
- operation: 'create',
162
- data: {
163
- title: 'Orphan Task A',
164
- effort: 'Research',
165
- priority: 'Low',
166
- outcome: 'Standalone research task',
167
- },
168
- });
169
- console.log('Created orphan1:', JSON.stringify(orphan1, null, 2));
170
- const orphan2 = await handleManageAccomplishment(config, {
171
- operation: 'create',
172
- data: {
173
- title: 'Orphan Task B',
174
- effort: 'Research',
175
- priority: 'Low',
176
- outcome: 'Another standalone task',
177
- },
178
- });
179
- console.log('Created orphan2:', JSON.stringify(orphan2, null, 2));
180
- // Create a small connected orphan graph (2 nodes connected to each other but not to main)
181
- const orphan3 = await handleManageAccomplishment(config, {
182
- operation: 'create',
183
- data: {
184
- title: 'Mini Graph Node 1',
185
- effort: 'Infra',
186
- priority: 'Medium',
187
- outcome: 'Part of mini orphan graph',
188
- },
189
- });
190
- console.log('Created orphan3:', JSON.stringify(orphan3, null, 2));
191
- await handleManageDependency(config, {
192
- operation: 'add',
193
- blocker_id: 'ACC-007',
194
- blocked_id: 'ACC-006',
195
- });
196
- const graph = await handleGetAccomplishmentsGraph(config, {});
197
- console.log('Accomplishments graph:', JSON.stringify(graph, null, 2));
198
- // Verify orphan detection
199
- const graphResult = graph;
200
- console.log('\n--- Orphan Detection Verification ---');
201
- console.log(`Main graph nodes: ${graphResult.main_graph.node_count}`);
202
- console.log(`Orphaned graph count: ${graphResult.orphaned_graph_count}`);
203
- if (graphResult.orphaned_graph_count === 2) {
204
- console.log('✅ SUCCESS: Correctly detected 2 orphaned graphs (1 single node + 1 two-node graph)');
205
- }
206
- else {
207
- console.log(`❌ UNEXPECTED: Expected 2 orphaned graphs, got ${graphResult.orphaned_graph_count}`);
208
- }
209
- // Test 11: Batch Operations
210
- console.log('\n=== Test 11: Batch Operations ===');
211
- const batchResult = await handleBatchOperations(config, {
212
- accomplishments: [
213
- { title: 'Batch Test 1', effort: 'Engineering', priority: 'High' },
214
- { title: 'Batch Test 2', effort: 'Engineering', depends_on: ['$0'] },
215
- { title: 'Batch Test 3', effort: 'Engineering', depends_on: ['$1'] },
216
- ],
217
- tasks: [
218
- { accomplishment_ref: '$0', name: 'Task A', goal: 'Goal A' },
219
- { accomplishment_ref: '$0', name: 'Task B', goal: 'Goal B' },
220
- { accomplishment_ref: '$1', name: 'Task C', goal: 'Goal C' },
221
- ],
222
- });
223
- console.log('Batch result:', JSON.stringify(batchResult, null, 2));
224
- if (batchResult.success &&
225
- batchResult.created_accomplishments.length === 3 &&
226
- batchResult.created_tasks.length === 3 &&
227
- batchResult.created_dependencies.length === 2) {
228
- console.log('✅ SUCCESS: Batch operations created 3 accomplishments, 3 tasks, 2 dependencies');
229
- }
230
- else {
231
- console.log('❌ UNEXPECTED: Batch operations did not create expected items');
232
- }
233
- // Test 12: Status Indicators
234
- console.log('\n=== Test 12: Status Indicators ===');
235
- // Check that status indicators were created for batch operations
236
- const canvasAfterBatch = await loadCanvas(config);
237
- const batchAcc1Id = batchResult.created_accomplishments[0].id;
238
- const indicator1 = findStatusIndicator(canvasAfterBatch, batchAcc1Id);
239
- if (indicator1 && indicator1.text === '⚪') {
240
- console.log(`✅ SUCCESS: Status indicator created for ${batchAcc1Id}: ${indicator1.text}`);
241
- }
242
- else {
243
- console.log(`❌ UNEXPECTED: Status indicator not found or wrong emoji for ${batchAcc1Id}`);
244
- }
245
- // Test reconcile_canvas
246
- console.log('\n=== Test 13: Reconcile Canvas ===');
247
- const reconcileResult = await handleReconcileCanvas(config, {});
248
- console.log('Reconcile result:', JSON.stringify(reconcileResult, null, 2));
249
- if (reconcileResult.success) {
250
- console.log(`✅ SUCCESS: Reconciled canvas - ${reconcileResult.created} created, ${reconcileResult.updated} updated, ${reconcileResult.removed} removed`);
251
- }
252
- else {
253
- console.log('❌ UNEXPECTED: Reconcile failed');
254
- }
255
- // Verify all accomplishments have indicators
256
- const canvasAfterReconcile = await loadCanvas(config);
257
- const statusNodes = canvasAfterReconcile.nodes.filter(n => n.id.startsWith('status-'));
258
- console.log(`Status indicator nodes on canvas: ${statusNodes.length}`);
259
- console.log('\n=== All Tests Completed Successfully ===');
19
+ // Test 1: List Workspaces
20
+ console.log('--- Test 1: List Workspaces ---');
21
+ const workspaces = await handleListWorkspaces(config, {});
22
+ console.log('Workspaces:', JSON.stringify(workspaces, null, 2));
23
+ // Test 2: List Files
24
+ console.log('\n--- Test 2: List Files ---');
25
+ try {
26
+ // Use first workspace from list if available
27
+ const workspaceList = workspaces;
28
+ if (workspaceList.workspaces && workspaceList.workspaces.length > 0) {
29
+ const files = await handleListFiles(config, { workspace: workspaceList.workspaces[0].name });
30
+ console.log('Files:', JSON.stringify(files, null, 2));
31
+ }
32
+ else {
33
+ console.log('No workspaces available to list files');
34
+ }
35
+ }
36
+ catch (e) {
37
+ console.log('List files skipped:', e.message);
38
+ }
39
+ // Test 3: Read Docs
40
+ console.log('\n--- Test 3: Read Docs ---');
41
+ try {
42
+ const workspaceList = workspaces;
43
+ if (workspaceList.workspaces && workspaceList.workspaces.length > 0) {
44
+ const docs = await handleReadDocs(config, { workspace: workspaceList.workspaces[0].name, doc_name: 'README.md' });
45
+ console.log('Docs:', JSON.stringify(docs, null, 2));
46
+ }
47
+ else {
48
+ console.log('No workspaces available to read docs');
49
+ }
50
+ }
51
+ catch (e) {
52
+ console.log('Read docs skipped (file may not exist):', e.message);
53
+ }
54
+ console.log('\n=== All Utility Tool Tests Completed ===');
260
55
  }
261
56
  catch (error) {
262
57
  console.error('Test failed:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Batch Operations Tools
3
+ *
4
+ * Category 2: Batch Operations
5
+ * - batch_update: NEW unified batch operation with client_id support
6
+ * - batch_operations: DEPRECATED - Create multiple entities with dependencies
7
+ * - batch_update_status: DEPRECATED - Update status of multiple entities
8
+ * - batch_archive: DEPRECATED - Archive multiple entities
9
+ */
10
+ import type { Entity, EntityId, EntityType } from '../models/v2-types.js';
11
+ import type { BatchUpdateInput, BatchUpdateOutput, EntityStatus, EntityFull } from './tool-types.js';
12
+ /**
13
+ * Dependencies for batch operations tools.
14
+ * Injected at runtime to allow for testing and flexibility.
15
+ */
16
+ export interface BatchOperationsDependencies {
17
+ /** Create a new entity */
18
+ createEntity: (type: EntityType, data: Record<string, unknown>) => Promise<Entity>;
19
+ /** Get entity by ID */
20
+ getEntity: (id: EntityId) => Promise<Entity | null>;
21
+ /** Check if entity exists */
22
+ entityExists: (id: EntityId) => boolean;
23
+ /** Get entity type from ID */
24
+ getEntityType: (id: EntityId) => EntityType | null;
25
+ /** Update entity status */
26
+ updateEntityStatus: (id: EntityId, status: EntityStatus) => Promise<void>;
27
+ /** Write entity to disk */
28
+ writeEntity: (entity: Entity) => Promise<void>;
29
+ /** Archive entity */
30
+ archiveEntity: (id: EntityId, archivePath: string) => Promise<void>;
31
+ /** Get children of an entity */
32
+ getChildren: (id: EntityId) => Promise<Entity[]>;
33
+ /** Validate status transition */
34
+ validateStatusTransition: (entity: Entity, newStatus: EntityStatus) => {
35
+ valid: boolean;
36
+ reason?: string;
37
+ };
38
+ /** Compute cascade effects */
39
+ computeCascadeEffects: (entity: Entity, newStatus: EntityStatus) => Promise<EntityId[]>;
40
+ /** Get current timestamp */
41
+ getCurrentTimestamp: () => string;
42
+ /** Add node to canvas */
43
+ addToCanvas?: (entity: Entity, canvasPath: string) => Promise<boolean>;
44
+ /** Remove node from canvas */
45
+ removeFromCanvas?: (id: EntityId, canvasPath: string) => Promise<boolean>;
46
+ /** Convert entity to full representation */
47
+ toEntityFull: (entity: Entity) => Promise<EntityFull>;
48
+ }
49
+ /**
50
+ * Unified batch operation with client_id support for idempotency and cross-referencing.
51
+ * Supports create, update, and archive operations in a single call.
52
+ */
53
+ export declare function batchUpdate(input: BatchUpdateInput, deps: BatchOperationsDependencies): Promise<BatchUpdateOutput>;
54
+ //# sourceMappingURL=batch-operations-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-operations-tools.d.ts","sourceRoot":"","sources":["../../src/tools/batch-operations-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,UAAU,EACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAEjB,YAAY,EACZ,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAQzB;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B;IAC1B,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnF,uBAAuB;IACvB,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEpD,6BAA6B;IAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC;IAExC,8BAA8B;IAC9B,aAAa,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,UAAU,GAAG,IAAI,CAAC;IAEnD,2BAA2B;IAC3B,kBAAkB,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E,2BAA2B;IAC3B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C,qBAAqB;IACrB,aAAa,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE,gCAAgC;IAChC,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjD,iCAAiC;IACjC,wBAAwB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,KAAK;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3G,8BAA8B;IAC9B,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAExF,4BAA4B;IAC5B,mBAAmB,EAAE,MAAM,MAAM,CAAC;IAElC,yBAAyB;IACzB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvE,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1E,4CAA4C;IAC5C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACvD;AAUD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAkZ5B"}