ai-prompt-guide-mcp 1.0.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 (887) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +271 -0
  3. package/dist/__tests__/config-loading.test.d.ts +5 -0
  4. package/dist/__tests__/config-loading.test.d.ts.map +1 -0
  5. package/dist/__tests__/config-loading.test.js +127 -0
  6. package/dist/__tests__/config-loading.test.js.map +1 -0
  7. package/dist/__tests__/config-logging.test.d.ts +5 -0
  8. package/dist/__tests__/config-logging.test.d.ts.map +1 -0
  9. package/dist/__tests__/config-logging.test.js +146 -0
  10. package/dist/__tests__/config-logging.test.js.map +1 -0
  11. package/dist/__tests__/config-path-resolution.test.d.ts +5 -0
  12. package/dist/__tests__/config-path-resolution.test.d.ts.map +1 -0
  13. package/dist/__tests__/config-path-resolution.test.js +88 -0
  14. package/dist/__tests__/config-path-resolution.test.js.map +1 -0
  15. package/dist/__tests__/config-path-validation.test.d.ts +6 -0
  16. package/dist/__tests__/config-path-validation.test.d.ts.map +1 -0
  17. package/dist/__tests__/config-path-validation.test.js +203 -0
  18. package/dist/__tests__/config-path-validation.test.js.map +1 -0
  19. package/dist/__tests__/config-precedence.test.d.ts +5 -0
  20. package/dist/__tests__/config-precedence.test.d.ts.map +1 -0
  21. package/dist/__tests__/config-precedence.test.js +200 -0
  22. package/dist/__tests__/config-precedence.test.js.map +1 -0
  23. package/dist/__tests__/config-types.test.d.ts +5 -0
  24. package/dist/__tests__/config-types.test.d.ts.map +1 -0
  25. package/dist/__tests__/config-types.test.js +189 -0
  26. package/dist/__tests__/config-types.test.js.map +1 -0
  27. package/dist/__tests__/config.test.d.ts +5 -0
  28. package/dist/__tests__/config.test.d.ts.map +1 -0
  29. package/dist/__tests__/config.test.js +229 -0
  30. package/dist/__tests__/config.test.js.map +1 -0
  31. package/dist/config.d.ts +87 -0
  32. package/dist/config.d.ts.map +1 -0
  33. package/dist/config.js +498 -0
  34. package/dist/config.js.map +1 -0
  35. package/dist/constants/defaults.d.ts +78 -0
  36. package/dist/constants/defaults.d.ts.map +1 -0
  37. package/dist/constants/defaults.js +78 -0
  38. package/dist/constants/defaults.js.map +1 -0
  39. package/dist/document-cache.d.ts +485 -0
  40. package/dist/document-cache.d.ts.map +1 -0
  41. package/dist/document-cache.hierarchical.test.d.ts +2 -0
  42. package/dist/document-cache.hierarchical.test.d.ts.map +1 -0
  43. package/dist/document-cache.hierarchical.test.js +243 -0
  44. package/dist/document-cache.hierarchical.test.js.map +1 -0
  45. package/dist/document-cache.js +965 -0
  46. package/dist/document-cache.js.map +1 -0
  47. package/dist/document-cache.test.d.ts +8 -0
  48. package/dist/document-cache.test.d.ts.map +1 -0
  49. package/dist/document-cache.test.js +624 -0
  50. package/dist/document-cache.test.js.map +1 -0
  51. package/dist/document-manager.d.ts +252 -0
  52. package/dist/document-manager.d.ts.map +1 -0
  53. package/dist/document-manager.js +760 -0
  54. package/dist/document-manager.js.map +1 -0
  55. package/dist/document-manager.race-condition.test.d.ts +8 -0
  56. package/dist/document-manager.race-condition.test.d.ts.map +1 -0
  57. package/dist/document-manager.race-condition.test.js +139 -0
  58. package/dist/document-manager.race-condition.test.js.map +1 -0
  59. package/dist/fingerprint-index.d.ts +177 -0
  60. package/dist/fingerprint-index.d.ts.map +1 -0
  61. package/dist/fingerprint-index.js +374 -0
  62. package/dist/fingerprint-index.js.map +1 -0
  63. package/dist/fingerprint-index.test.d.ts +15 -0
  64. package/dist/fingerprint-index.test.d.ts.map +1 -0
  65. package/dist/fingerprint-index.test.js +482 -0
  66. package/dist/fingerprint-index.test.js.map +1 -0
  67. package/dist/fsio.d.ts +76 -0
  68. package/dist/fsio.d.ts.map +1 -0
  69. package/dist/fsio.js +506 -0
  70. package/dist/fsio.js.map +1 -0
  71. package/dist/index.d.ts +6 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +20 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/markdown-tools.test.d.ts +5 -0
  76. package/dist/markdown-tools.test.d.ts.map +1 -0
  77. package/dist/markdown-tools.test.js +200 -0
  78. package/dist/markdown-tools.test.js.map +1 -0
  79. package/dist/parse.d.ts +19 -0
  80. package/dist/parse.d.ts.map +1 -0
  81. package/dist/parse.js +144 -0
  82. package/dist/parse.js.map +1 -0
  83. package/dist/prompts/__tests__/prompt-loader.test.d.ts +5 -0
  84. package/dist/prompts/__tests__/prompt-loader.test.d.ts.map +1 -0
  85. package/dist/prompts/__tests__/prompt-loader.test.js +300 -0
  86. package/dist/prompts/__tests__/prompt-loader.test.js.map +1 -0
  87. package/dist/prompts/prompt-loader.d.ts +58 -0
  88. package/dist/prompts/prompt-loader.d.ts.map +1 -0
  89. package/dist/prompts/prompt-loader.js +215 -0
  90. package/dist/prompts/prompt-loader.js.map +1 -0
  91. package/dist/prompts/prompt-validator.d.ts +30 -0
  92. package/dist/prompts/prompt-validator.d.ts.map +1 -0
  93. package/dist/prompts/prompt-validator.js +65 -0
  94. package/dist/prompts/prompt-validator.js.map +1 -0
  95. package/dist/prompts/types.d.ts +46 -0
  96. package/dist/prompts/types.d.ts.map +1 -0
  97. package/dist/prompts/types.js +14 -0
  98. package/dist/prompts/types.js.map +1 -0
  99. package/dist/prompts/workflow-prompts.d.ts +42 -0
  100. package/dist/prompts/workflow-prompts.d.ts.map +1 -0
  101. package/dist/prompts/workflow-prompts.js +61 -0
  102. package/dist/prompts/workflow-prompts.js.map +1 -0
  103. package/dist/sections.d.ts +67 -0
  104. package/dist/sections.d.ts.map +1 -0
  105. package/dist/sections.hierarchical.test.d.ts +8 -0
  106. package/dist/sections.hierarchical.test.d.ts.map +1 -0
  107. package/dist/sections.hierarchical.test.js +397 -0
  108. package/dist/sections.hierarchical.test.js.map +1 -0
  109. package/dist/sections.js +1229 -0
  110. package/dist/sections.js.map +1 -0
  111. package/dist/server/default-dependencies.d.ts +134 -0
  112. package/dist/server/default-dependencies.d.ts.map +1 -0
  113. package/dist/server/default-dependencies.js +176 -0
  114. package/dist/server/default-dependencies.js.map +1 -0
  115. package/dist/server/dependencies.d.ts +161 -0
  116. package/dist/server/dependencies.d.ts.map +1 -0
  117. package/dist/server/dependencies.js +50 -0
  118. package/dist/server/dependencies.js.map +1 -0
  119. package/dist/server/index.d.ts +10 -0
  120. package/dist/server/index.d.ts.map +1 -0
  121. package/dist/server/index.js +9 -0
  122. package/dist/server/index.js.map +1 -0
  123. package/dist/server/middleware/error-handling.d.ts +52 -0
  124. package/dist/server/middleware/error-handling.d.ts.map +1 -0
  125. package/dist/server/middleware/error-handling.js +76 -0
  126. package/dist/server/middleware/error-handling.js.map +1 -0
  127. package/dist/server/middleware/index.d.ts +7 -0
  128. package/dist/server/middleware/index.d.ts.map +1 -0
  129. package/dist/server/middleware/index.js +7 -0
  130. package/dist/server/middleware/index.js.map +1 -0
  131. package/dist/server/middleware/logging.d.ts +29 -0
  132. package/dist/server/middleware/logging.d.ts.map +1 -0
  133. package/dist/server/middleware/logging.js +49 -0
  134. package/dist/server/middleware/logging.js.map +1 -0
  135. package/dist/server/middleware/session-management.d.ts +38 -0
  136. package/dist/server/middleware/session-management.d.ts.map +1 -0
  137. package/dist/server/middleware/session-management.js +66 -0
  138. package/dist/server/middleware/session-management.js.map +1 -0
  139. package/dist/server/request-handlers/index.d.ts +5 -0
  140. package/dist/server/request-handlers/index.d.ts.map +1 -0
  141. package/dist/server/request-handlers/index.js +5 -0
  142. package/dist/server/request-handlers/index.js.map +1 -0
  143. package/dist/server/request-handlers/prompt-handlers.d.ts +13 -0
  144. package/dist/server/request-handlers/prompt-handlers.d.ts.map +1 -0
  145. package/dist/server/request-handlers/prompt-handlers.js +80 -0
  146. package/dist/server/request-handlers/prompt-handlers.js.map +1 -0
  147. package/dist/server/request-handlers/tool-handlers.d.ts +11 -0
  148. package/dist/server/request-handlers/tool-handlers.d.ts.map +1 -0
  149. package/dist/server/request-handlers/tool-handlers.js +85 -0
  150. package/dist/server/request-handlers/tool-handlers.js.map +1 -0
  151. package/dist/server/server-factory.d.ts +68 -0
  152. package/dist/server/server-factory.d.ts.map +1 -0
  153. package/dist/server/server-factory.js +135 -0
  154. package/dist/server/server-factory.js.map +1 -0
  155. package/dist/server/transport/stdio-transport.d.ts +9 -0
  156. package/dist/server/transport/stdio-transport.d.ts.map +1 -0
  157. package/dist/server/transport/stdio-transport.js +11 -0
  158. package/dist/server/transport/stdio-transport.js.map +1 -0
  159. package/dist/session/index.d.ts +5 -0
  160. package/dist/session/index.d.ts.map +1 -0
  161. package/dist/session/index.js +7 -0
  162. package/dist/session/index.js.map +1 -0
  163. package/dist/session/session-store.d.ts +74 -0
  164. package/dist/session/session-store.d.ts.map +1 -0
  165. package/dist/session/session-store.js +150 -0
  166. package/dist/session/session-store.js.map +1 -0
  167. package/dist/session/types.d.ts +96 -0
  168. package/dist/session/types.d.ts.map +1 -0
  169. package/dist/session/types.js +9 -0
  170. package/dist/session/types.js.map +1 -0
  171. package/dist/shared/__tests__/addressing-system.batch-cache.test.d.ts +12 -0
  172. package/dist/shared/__tests__/addressing-system.batch-cache.test.d.ts.map +1 -0
  173. package/dist/shared/__tests__/addressing-system.batch-cache.test.js +306 -0
  174. package/dist/shared/__tests__/addressing-system.batch-cache.test.js.map +1 -0
  175. package/dist/shared/__tests__/addressing-system.hierarchical.test.d.ts +6 -0
  176. package/dist/shared/__tests__/addressing-system.hierarchical.test.d.ts.map +1 -0
  177. package/dist/shared/__tests__/addressing-system.hierarchical.test.js +205 -0
  178. package/dist/shared/__tests__/addressing-system.hierarchical.test.js.map +1 -0
  179. package/dist/shared/__tests__/addressing-system.lru.test.d.ts +6 -0
  180. package/dist/shared/__tests__/addressing-system.lru.test.d.ts.map +1 -0
  181. package/dist/shared/__tests__/addressing-system.lru.test.js +159 -0
  182. package/dist/shared/__tests__/addressing-system.lru.test.js.map +1 -0
  183. package/dist/shared/__tests__/addressing-system.relative-paths.test.d.ts +14 -0
  184. package/dist/shared/__tests__/addressing-system.relative-paths.test.d.ts.map +1 -0
  185. package/dist/shared/__tests__/addressing-system.relative-paths.test.js +249 -0
  186. package/dist/shared/__tests__/addressing-system.relative-paths.test.js.map +1 -0
  187. package/dist/shared/__tests__/document-analysis-enhanced.test.d.ts +9 -0
  188. package/dist/shared/__tests__/document-analysis-enhanced.test.d.ts.map +1 -0
  189. package/dist/shared/__tests__/document-analysis-enhanced.test.js +419 -0
  190. package/dist/shared/__tests__/document-analysis-enhanced.test.js.map +1 -0
  191. package/dist/shared/__tests__/document-analysis.test.d.ts +8 -0
  192. package/dist/shared/__tests__/document-analysis.test.d.ts.map +1 -0
  193. package/dist/shared/__tests__/document-analysis.test.js +904 -0
  194. package/dist/shared/__tests__/document-analysis.test.js.map +1 -0
  195. package/dist/shared/__tests__/keyword-utils-integration.test.d.ts +9 -0
  196. package/dist/shared/__tests__/keyword-utils-integration.test.d.ts.map +1 -0
  197. package/dist/shared/__tests__/keyword-utils-integration.test.js +317 -0
  198. package/dist/shared/__tests__/keyword-utils-integration.test.js.map +1 -0
  199. package/dist/shared/__tests__/link-utils.test.d.ts +5 -0
  200. package/dist/shared/__tests__/link-utils.test.d.ts.map +1 -0
  201. package/dist/shared/__tests__/link-utils.test.js +560 -0
  202. package/dist/shared/__tests__/link-utils.test.js.map +1 -0
  203. package/dist/shared/__tests__/link-validation.test.d.ts +5 -0
  204. package/dist/shared/__tests__/link-validation.test.d.ts.map +1 -0
  205. package/dist/shared/__tests__/link-validation.test.js +473 -0
  206. package/dist/shared/__tests__/link-validation.test.js.map +1 -0
  207. package/dist/shared/__tests__/reference-extractor.test.d.ts +8 -0
  208. package/dist/shared/__tests__/reference-extractor.test.d.ts.map +1 -0
  209. package/dist/shared/__tests__/reference-extractor.test.js +260 -0
  210. package/dist/shared/__tests__/reference-extractor.test.js.map +1 -0
  211. package/dist/shared/__tests__/reference-loader.test.d.ts +8 -0
  212. package/dist/shared/__tests__/reference-loader.test.d.ts.map +1 -0
  213. package/dist/shared/__tests__/reference-loader.test.js +622 -0
  214. package/dist/shared/__tests__/reference-loader.test.js.map +1 -0
  215. package/dist/shared/__tests__/section-operations.append.test.d.ts +8 -0
  216. package/dist/shared/__tests__/section-operations.append.test.d.ts.map +1 -0
  217. package/dist/shared/__tests__/section-operations.append.test.js +150 -0
  218. package/dist/shared/__tests__/section-operations.append.test.js.map +1 -0
  219. package/dist/shared/__tests__/section-operations.test.d.ts +7 -0
  220. package/dist/shared/__tests__/section-operations.test.d.ts.map +1 -0
  221. package/dist/shared/__tests__/section-operations.test.js +118 -0
  222. package/dist/shared/__tests__/section-operations.test.js.map +1 -0
  223. package/dist/shared/__tests__/slug-utils.test.d.ts +5 -0
  224. package/dist/shared/__tests__/slug-utils.test.d.ts.map +1 -0
  225. package/dist/shared/__tests__/slug-utils.test.js +542 -0
  226. package/dist/shared/__tests__/slug-utils.test.js.map +1 -0
  227. package/dist/shared/__tests__/task-operations.test.d.ts +9 -0
  228. package/dist/shared/__tests__/task-operations.test.d.ts.map +1 -0
  229. package/dist/shared/__tests__/task-operations.test.js +257 -0
  230. package/dist/shared/__tests__/task-operations.test.js.map +1 -0
  231. package/dist/shared/__tests__/task-validation.test.d.ts +6 -0
  232. package/dist/shared/__tests__/task-validation.test.d.ts.map +1 -0
  233. package/dist/shared/__tests__/task-validation.test.js +129 -0
  234. package/dist/shared/__tests__/task-validation.test.js.map +1 -0
  235. package/dist/shared/__tests__/task-view-utilities.test.d.ts +5 -0
  236. package/dist/shared/__tests__/task-view-utilities.test.d.ts.map +1 -0
  237. package/dist/shared/__tests__/task-view-utilities.test.js +312 -0
  238. package/dist/shared/__tests__/task-view-utilities.test.js.map +1 -0
  239. package/dist/shared/__tests__/tool-integration.array-validation.test.d.ts +7 -0
  240. package/dist/shared/__tests__/tool-integration.array-validation.test.d.ts.map +1 -0
  241. package/dist/shared/__tests__/tool-integration.array-validation.test.js +169 -0
  242. package/dist/shared/__tests__/tool-integration.array-validation.test.js.map +1 -0
  243. package/dist/shared/__tests__/tool-integration.hierarchical.test.d.ts +7 -0
  244. package/dist/shared/__tests__/tool-integration.hierarchical.test.d.ts.map +1 -0
  245. package/dist/shared/__tests__/tool-integration.hierarchical.test.js +204 -0
  246. package/dist/shared/__tests__/tool-integration.hierarchical.test.js.map +1 -0
  247. package/dist/shared/__tests__/workflow-prompt-utilities.test.d.ts +8 -0
  248. package/dist/shared/__tests__/workflow-prompt-utilities.test.d.ts.map +1 -0
  249. package/dist/shared/__tests__/workflow-prompt-utilities.test.js +722 -0
  250. package/dist/shared/__tests__/workflow-prompt-utilities.test.js.map +1 -0
  251. package/dist/shared/addressing-system.d.ts +799 -0
  252. package/dist/shared/addressing-system.d.ts.map +1 -0
  253. package/dist/shared/addressing-system.js +1074 -0
  254. package/dist/shared/addressing-system.js.map +1 -0
  255. package/dist/shared/document-analysis/__tests__/keyword-utils.test.d.ts +8 -0
  256. package/dist/shared/document-analysis/__tests__/keyword-utils.test.d.ts.map +1 -0
  257. package/dist/shared/document-analysis/__tests__/keyword-utils.test.js +601 -0
  258. package/dist/shared/document-analysis/__tests__/keyword-utils.test.js.map +1 -0
  259. package/dist/shared/document-analysis/index.d.ts +67 -0
  260. package/dist/shared/document-analysis/index.d.ts.map +1 -0
  261. package/dist/shared/document-analysis/index.js +166 -0
  262. package/dist/shared/document-analysis/index.js.map +1 -0
  263. package/dist/shared/document-analysis/keyword-utils.d.ts +405 -0
  264. package/dist/shared/document-analysis/keyword-utils.d.ts.map +1 -0
  265. package/dist/shared/document-analysis/keyword-utils.js +1147 -0
  266. package/dist/shared/document-analysis/keyword-utils.js.map +1 -0
  267. package/dist/shared/document-analysis/reference-validation.d.ts +27 -0
  268. package/dist/shared/document-analysis/reference-validation.d.ts.map +1 -0
  269. package/dist/shared/document-analysis/reference-validation.js +173 -0
  270. package/dist/shared/document-analysis/reference-validation.js.map +1 -0
  271. package/dist/shared/document-analysis/related-docs.d.ts +27 -0
  272. package/dist/shared/document-analysis/related-docs.d.ts.map +1 -0
  273. package/dist/shared/document-analysis/related-docs.js +459 -0
  274. package/dist/shared/document-analysis/related-docs.js.map +1 -0
  275. package/dist/shared/document-analysis/types.d.ts +89 -0
  276. package/dist/shared/document-analysis/types.d.ts.map +1 -0
  277. package/dist/shared/document-analysis/types.js +41 -0
  278. package/dist/shared/document-analysis/types.js.map +1 -0
  279. package/dist/shared/document-analysis.d.ts +15 -0
  280. package/dist/shared/document-analysis.d.ts.map +1 -0
  281. package/dist/shared/document-analysis.js +16 -0
  282. package/dist/shared/document-analysis.js.map +1 -0
  283. package/dist/shared/document-manager-factory.d.ts +32 -0
  284. package/dist/shared/document-manager-factory.d.ts.map +1 -0
  285. package/dist/shared/document-manager-factory.js +75 -0
  286. package/dist/shared/document-manager-factory.js.map +1 -0
  287. package/dist/shared/index.d.ts +5 -0
  288. package/dist/shared/index.d.ts.map +1 -0
  289. package/dist/shared/index.js +7 -0
  290. package/dist/shared/index.js.map +1 -0
  291. package/dist/shared/link-analysis.d.ts +84 -0
  292. package/dist/shared/link-analysis.d.ts.map +1 -0
  293. package/dist/shared/link-analysis.js +213 -0
  294. package/dist/shared/link-analysis.js.map +1 -0
  295. package/dist/shared/link-context.d.ts +23 -0
  296. package/dist/shared/link-context.d.ts.map +1 -0
  297. package/dist/shared/link-context.js +172 -0
  298. package/dist/shared/link-context.js.map +1 -0
  299. package/dist/shared/link-utils.d.ts +33 -0
  300. package/dist/shared/link-utils.d.ts.map +1 -0
  301. package/dist/shared/link-utils.js +301 -0
  302. package/dist/shared/link-utils.js.map +1 -0
  303. package/dist/shared/link-validation.d.ts +79 -0
  304. package/dist/shared/link-validation.d.ts.map +1 -0
  305. package/dist/shared/link-validation.js +340 -0
  306. package/dist/shared/link-validation.js.map +1 -0
  307. package/dist/shared/namespace-analysis.d.ts +10 -0
  308. package/dist/shared/namespace-analysis.d.ts.map +1 -0
  309. package/dist/shared/namespace-analysis.js +100 -0
  310. package/dist/shared/namespace-analysis.js.map +1 -0
  311. package/dist/shared/namespace-constants.d.ts +69 -0
  312. package/dist/shared/namespace-constants.d.ts.map +1 -0
  313. package/dist/shared/namespace-constants.js +97 -0
  314. package/dist/shared/namespace-constants.js.map +1 -0
  315. package/dist/shared/path-utilities.d.ts +13 -0
  316. package/dist/shared/path-utilities.d.ts.map +1 -0
  317. package/dist/shared/path-utilities.js +39 -0
  318. package/dist/shared/path-utilities.js.map +1 -0
  319. package/dist/shared/reference-extractor.d.ts +121 -0
  320. package/dist/shared/reference-extractor.d.ts.map +1 -0
  321. package/dist/shared/reference-extractor.js +195 -0
  322. package/dist/shared/reference-extractor.js.map +1 -0
  323. package/dist/shared/reference-loader.d.ts +163 -0
  324. package/dist/shared/reference-loader.d.ts.map +1 -0
  325. package/dist/shared/reference-loader.js +265 -0
  326. package/dist/shared/reference-loader.js.map +1 -0
  327. package/dist/shared/section-operations.d.ts +14 -0
  328. package/dist/shared/section-operations.d.ts.map +1 -0
  329. package/dist/shared/section-operations.js +115 -0
  330. package/dist/shared/section-operations.js.map +1 -0
  331. package/dist/shared/slug-utils.d.ts +109 -0
  332. package/dist/shared/slug-utils.d.ts.map +1 -0
  333. package/dist/shared/slug-utils.js +302 -0
  334. package/dist/shared/slug-utils.js.map +1 -0
  335. package/dist/shared/task-operations.d.ts +152 -0
  336. package/dist/shared/task-operations.d.ts.map +1 -0
  337. package/dist/shared/task-operations.js +416 -0
  338. package/dist/shared/task-operations.js.map +1 -0
  339. package/dist/shared/task-utilities.d.ts +63 -0
  340. package/dist/shared/task-utilities.d.ts.map +1 -0
  341. package/dist/shared/task-utilities.js +86 -0
  342. package/dist/shared/task-utilities.js.map +1 -0
  343. package/dist/shared/task-validation.d.ts +50 -0
  344. package/dist/shared/task-validation.d.ts.map +1 -0
  345. package/dist/shared/task-validation.js +97 -0
  346. package/dist/shared/task-validation.js.map +1 -0
  347. package/dist/shared/task-view-utilities.d.ts +109 -0
  348. package/dist/shared/task-view-utilities.d.ts.map +1 -0
  349. package/dist/shared/task-view-utilities.js +255 -0
  350. package/dist/shared/task-view-utilities.js.map +1 -0
  351. package/dist/shared/utilities.d.ts +14 -0
  352. package/dist/shared/utilities.d.ts.map +1 -0
  353. package/dist/shared/utilities.js +23 -0
  354. package/dist/shared/utilities.js.map +1 -0
  355. package/dist/shared/utilities.test.d.ts +5 -0
  356. package/dist/shared/utilities.test.d.ts.map +1 -0
  357. package/dist/shared/utilities.test.js +422 -0
  358. package/dist/shared/utilities.test.js.map +1 -0
  359. package/dist/shared/validation-utils.d.ts +57 -0
  360. package/dist/shared/validation-utils.d.ts.map +1 -0
  361. package/dist/shared/validation-utils.js +63 -0
  362. package/dist/shared/validation-utils.js.map +1 -0
  363. package/dist/shared/workflow-prompt-utilities.d.ts +64 -0
  364. package/dist/shared/workflow-prompt-utilities.d.ts.map +1 -0
  365. package/dist/shared/workflow-prompt-utilities.js +163 -0
  366. package/dist/shared/workflow-prompt-utilities.js.map +1 -0
  367. package/dist/slug.d.ts +9 -0
  368. package/dist/slug.d.ts.map +1 -0
  369. package/dist/slug.js +40 -0
  370. package/dist/slug.js.map +1 -0
  371. package/dist/template-loader.d.ts +6 -0
  372. package/dist/template-loader.d.ts.map +1 -0
  373. package/dist/template-loader.js +8 -0
  374. package/dist/template-loader.js.map +1 -0
  375. package/dist/tools/__tests__/create-document-self-reference.test.d.ts +2 -0
  376. package/dist/tools/__tests__/create-document-self-reference.test.d.ts.map +1 -0
  377. package/dist/tools/__tests__/create-document-self-reference.test.js +124 -0
  378. package/dist/tools/__tests__/create-document-self-reference.test.js.map +1 -0
  379. package/dist/tools/__tests__/create-document-workflow-regression.test.d.ts +16 -0
  380. package/dist/tools/__tests__/create-document-workflow-regression.test.d.ts.map +1 -0
  381. package/dist/tools/__tests__/create-document-workflow-regression.test.js +655 -0
  382. package/dist/tools/__tests__/create-document-workflow-regression.test.js.map +1 -0
  383. package/dist/tools/__tests__/create-document.test.d.ts +2 -0
  384. package/dist/tools/__tests__/create-document.test.d.ts.map +1 -0
  385. package/dist/tools/__tests__/create-document.test.js +255 -0
  386. package/dist/tools/__tests__/create-document.test.js.map +1 -0
  387. package/dist/tools/__tests__/delete-document.test.d.ts +7 -0
  388. package/dist/tools/__tests__/delete-document.test.d.ts.map +1 -0
  389. package/dist/tools/__tests__/delete-document.test.js +311 -0
  390. package/dist/tools/__tests__/delete-document.test.js.map +1 -0
  391. package/dist/tools/__tests__/edit-document.test.d.ts +2 -0
  392. package/dist/tools/__tests__/edit-document.test.d.ts.map +1 -0
  393. package/dist/tools/__tests__/edit-document.test.js +644 -0
  394. package/dist/tools/__tests__/edit-document.test.js.map +1 -0
  395. package/dist/tools/__tests__/error-scenarios.test.d.ts +5 -0
  396. package/dist/tools/__tests__/error-scenarios.test.d.ts.map +1 -0
  397. package/dist/tools/__tests__/error-scenarios.test.js +105 -0
  398. package/dist/tools/__tests__/error-scenarios.test.js.map +1 -0
  399. package/dist/tools/__tests__/mocks/document-manager.mock.d.ts +99 -0
  400. package/dist/tools/__tests__/mocks/document-manager.mock.d.ts.map +1 -0
  401. package/dist/tools/__tests__/mocks/document-manager.mock.js +457 -0
  402. package/dist/tools/__tests__/mocks/document-manager.mock.js.map +1 -0
  403. package/dist/tools/__tests__/mocks/filesystem.mock.d.ts +103 -0
  404. package/dist/tools/__tests__/mocks/filesystem.mock.d.ts.map +1 -0
  405. package/dist/tools/__tests__/mocks/filesystem.mock.js +247 -0
  406. package/dist/tools/__tests__/mocks/filesystem.mock.js.map +1 -0
  407. package/dist/tools/__tests__/move-document.test.d.ts +12 -0
  408. package/dist/tools/__tests__/move-document.test.d.ts.map +1 -0
  409. package/dist/tools/__tests__/move-document.test.js +214 -0
  410. package/dist/tools/__tests__/move-document.test.js.map +1 -0
  411. package/dist/tools/__tests__/move.test.d.ts +13 -0
  412. package/dist/tools/__tests__/move.test.d.ts.map +1 -0
  413. package/dist/tools/__tests__/move.test.js +939 -0
  414. package/dist/tools/__tests__/move.test.js.map +1 -0
  415. package/dist/tools/__tests__/section.integration.improved.test.d.ts +5 -0
  416. package/dist/tools/__tests__/section.integration.improved.test.d.ts.map +1 -0
  417. package/dist/tools/__tests__/section.integration.improved.test.js +199 -0
  418. package/dist/tools/__tests__/section.integration.improved.test.js.map +1 -0
  419. package/dist/tools/__tests__/section.integration.test.d.ts +5 -0
  420. package/dist/tools/__tests__/section.integration.test.d.ts.map +1 -0
  421. package/dist/tools/__tests__/section.integration.test.js +637 -0
  422. package/dist/tools/__tests__/section.integration.test.js.map +1 -0
  423. package/dist/tools/__tests__/setup/test-environment.d.ts +111 -0
  424. package/dist/tools/__tests__/setup/test-environment.d.ts.map +1 -0
  425. package/dist/tools/__tests__/setup/test-environment.js +322 -0
  426. package/dist/tools/__tests__/setup/test-environment.js.map +1 -0
  427. package/dist/tools/__tests__/suggestion-generator.test.d.ts +8 -0
  428. package/dist/tools/__tests__/suggestion-generator.test.d.ts.map +1 -0
  429. package/dist/tools/__tests__/suggestion-generator.test.js +508 -0
  430. package/dist/tools/__tests__/suggestion-generator.test.js.map +1 -0
  431. package/dist/tools/__tests__/task-consistency.test.d.ts +11 -0
  432. package/dist/tools/__tests__/task-consistency.test.d.ts.map +1 -0
  433. package/dist/tools/__tests__/task-consistency.test.js +93 -0
  434. package/dist/tools/__tests__/task-consistency.test.js.map +1 -0
  435. package/dist/tools/__tests__/task-status-parsing.test.d.ts +15 -0
  436. package/dist/tools/__tests__/task-status-parsing.test.d.ts.map +1 -0
  437. package/dist/tools/__tests__/task-status-parsing.test.js +126 -0
  438. package/dist/tools/__tests__/task-status-parsing.test.js.map +1 -0
  439. package/dist/tools/__tests__/view-section-boundary.test.d.ts +2 -0
  440. package/dist/tools/__tests__/view-section-boundary.test.d.ts.map +1 -0
  441. package/dist/tools/__tests__/view-section-boundary.test.js +132 -0
  442. package/dist/tools/__tests__/view-section-boundary.test.js.map +1 -0
  443. package/dist/tools/__tests__/write-operations-integration.test.d.ts +8 -0
  444. package/dist/tools/__tests__/write-operations-integration.test.d.ts.map +1 -0
  445. package/dist/tools/__tests__/write-operations-integration.test.js +136 -0
  446. package/dist/tools/__tests__/write-operations-integration.test.js.map +1 -0
  447. package/dist/tools/browse/content-analyzer.d.ts +27 -0
  448. package/dist/tools/browse/content-analyzer.d.ts.map +1 -0
  449. package/dist/tools/browse/content-analyzer.js +150 -0
  450. package/dist/tools/browse/content-analyzer.js.map +1 -0
  451. package/dist/tools/browse/dependency-analyzer.d.ts +63 -0
  452. package/dist/tools/browse/dependency-analyzer.d.ts.map +1 -0
  453. package/dist/tools/browse/dependency-analyzer.js +261 -0
  454. package/dist/tools/browse/dependency-analyzer.js.map +1 -0
  455. package/dist/tools/browse/folder-navigator.d.ts +35 -0
  456. package/dist/tools/browse/folder-navigator.d.ts.map +1 -0
  457. package/dist/tools/browse/folder-navigator.js +154 -0
  458. package/dist/tools/browse/folder-navigator.js.map +1 -0
  459. package/dist/tools/browse/index.d.ts +10 -0
  460. package/dist/tools/browse/index.d.ts.map +1 -0
  461. package/dist/tools/browse/index.js +14 -0
  462. package/dist/tools/browse/index.js.map +1 -0
  463. package/dist/tools/browse/relationship-classifier.d.ts +9 -0
  464. package/dist/tools/browse/relationship-classifier.d.ts.map +1 -0
  465. package/dist/tools/browse/relationship-classifier.js +38 -0
  466. package/dist/tools/browse/relationship-classifier.js.map +1 -0
  467. package/dist/tools/browse/search-engine.d.ts +69 -0
  468. package/dist/tools/browse/search-engine.d.ts.map +1 -0
  469. package/dist/tools/browse/search-engine.js +197 -0
  470. package/dist/tools/browse/search-engine.js.map +1 -0
  471. package/dist/tools/create/__tests__/file-creator.test.d.ts +6 -0
  472. package/dist/tools/create/__tests__/file-creator.test.d.ts.map +1 -0
  473. package/dist/tools/create/__tests__/file-creator.test.js +138 -0
  474. package/dist/tools/create/__tests__/file-creator.test.js.map +1 -0
  475. package/dist/tools/create/__tests__/template-processor.test.d.ts +6 -0
  476. package/dist/tools/create/__tests__/template-processor.test.d.ts.map +1 -0
  477. package/dist/tools/create/__tests__/template-processor.test.js +130 -0
  478. package/dist/tools/create/__tests__/template-processor.test.js.map +1 -0
  479. package/dist/tools/create/file-creator.d.ts +35 -0
  480. package/dist/tools/create/file-creator.d.ts.map +1 -0
  481. package/dist/tools/create/file-creator.js +103 -0
  482. package/dist/tools/create/file-creator.js.map +1 -0
  483. package/dist/tools/create/index.d.ts +6 -0
  484. package/dist/tools/create/index.d.ts.map +1 -0
  485. package/dist/tools/create/index.js +7 -0
  486. package/dist/tools/create/index.js.map +1 -0
  487. package/dist/tools/create/pipeline.d.ts +39 -0
  488. package/dist/tools/create/pipeline.d.ts.map +1 -0
  489. package/dist/tools/create/pipeline.js +112 -0
  490. package/dist/tools/create/pipeline.js.map +1 -0
  491. package/dist/tools/create/suggestion-generator.d.ts +47 -0
  492. package/dist/tools/create/suggestion-generator.d.ts.map +1 -0
  493. package/dist/tools/create/suggestion-generator.js +51 -0
  494. package/dist/tools/create/suggestion-generator.js.map +1 -0
  495. package/dist/tools/create/template-processor.d.ts +27 -0
  496. package/dist/tools/create/template-processor.d.ts.map +1 -0
  497. package/dist/tools/create/template-processor.js +74 -0
  498. package/dist/tools/create/template-processor.js.map +1 -0
  499. package/dist/tools/create/validation-processor.d.ts +48 -0
  500. package/dist/tools/create/validation-processor.d.ts.map +1 -0
  501. package/dist/tools/create/validation-processor.js +107 -0
  502. package/dist/tools/create/validation-processor.js.map +1 -0
  503. package/dist/tools/executor.d.ts +19 -0
  504. package/dist/tools/executor.d.ts.map +1 -0
  505. package/dist/tools/executor.js +53 -0
  506. package/dist/tools/executor.js.map +1 -0
  507. package/dist/tools/implementations/__tests__/browse-documents.test.d.ts +8 -0
  508. package/dist/tools/implementations/__tests__/browse-documents.test.d.ts.map +1 -0
  509. package/dist/tools/implementations/__tests__/browse-documents.test.js +319 -0
  510. package/dist/tools/implementations/__tests__/browse-documents.test.js.map +1 -0
  511. package/dist/tools/implementations/__tests__/complete-coordinator-task.test.d.ts +7 -0
  512. package/dist/tools/implementations/__tests__/complete-coordinator-task.test.d.ts.map +1 -0
  513. package/dist/tools/implementations/__tests__/complete-coordinator-task.test.js +440 -0
  514. package/dist/tools/implementations/__tests__/complete-coordinator-task.test.js.map +1 -0
  515. package/dist/tools/implementations/__tests__/complete-subagent-task.test.d.ts +14 -0
  516. package/dist/tools/implementations/__tests__/complete-subagent-task.test.d.ts.map +1 -0
  517. package/dist/tools/implementations/__tests__/complete-subagent-task.test.js +851 -0
  518. package/dist/tools/implementations/__tests__/complete-subagent-task.test.js.map +1 -0
  519. package/dist/tools/implementations/__tests__/complete-task-notes.test.d.ts +6 -0
  520. package/dist/tools/implementations/__tests__/complete-task-notes.test.d.ts.map +1 -0
  521. package/dist/tools/implementations/__tests__/complete-task-notes.test.js +157 -0
  522. package/dist/tools/implementations/__tests__/complete-task-notes.test.js.map +1 -0
  523. package/dist/tools/implementations/__tests__/complete-task.test.d.ts +14 -0
  524. package/dist/tools/implementations/__tests__/complete-task.test.d.ts.map +1 -0
  525. package/dist/tools/implementations/__tests__/complete-task.test.js +867 -0
  526. package/dist/tools/implementations/__tests__/complete-task.test.js.map +1 -0
  527. package/dist/tools/implementations/__tests__/continue-task.test.d.ts +11 -0
  528. package/dist/tools/implementations/__tests__/continue-task.test.d.ts.map +1 -0
  529. package/dist/tools/implementations/__tests__/continue-task.test.js +845 -0
  530. package/dist/tools/implementations/__tests__/continue-task.test.js.map +1 -0
  531. package/dist/tools/implementations/__tests__/coordinator-task.test.d.ts +7 -0
  532. package/dist/tools/implementations/__tests__/coordinator-task.test.d.ts.map +1 -0
  533. package/dist/tools/implementations/__tests__/coordinator-task.test.js +495 -0
  534. package/dist/tools/implementations/__tests__/coordinator-task.test.js.map +1 -0
  535. package/dist/tools/implementations/__tests__/get-guide.test.d.ts +8 -0
  536. package/dist/tools/implementations/__tests__/get-guide.test.d.ts.map +1 -0
  537. package/dist/tools/implementations/__tests__/get-guide.test.js +242 -0
  538. package/dist/tools/implementations/__tests__/get-guide.test.js.map +1 -0
  539. package/dist/tools/implementations/__tests__/get-workflow.test.d.ts +8 -0
  540. package/dist/tools/implementations/__tests__/get-workflow.test.d.ts.map +1 -0
  541. package/dist/tools/implementations/__tests__/get-workflow.test.js +232 -0
  542. package/dist/tools/implementations/__tests__/get-workflow.test.js.map +1 -0
  543. package/dist/tools/implementations/__tests__/search-documents.test.d.ts +8 -0
  544. package/dist/tools/implementations/__tests__/search-documents.test.d.ts.map +1 -0
  545. package/dist/tools/implementations/__tests__/search-documents.test.js +336 -0
  546. package/dist/tools/implementations/__tests__/search-documents.test.js.map +1 -0
  547. package/dist/tools/implementations/__tests__/start-coordinator-task.test.d.ts +7 -0
  548. package/dist/tools/implementations/__tests__/start-coordinator-task.test.d.ts.map +1 -0
  549. package/dist/tools/implementations/__tests__/start-coordinator-task.test.js +177 -0
  550. package/dist/tools/implementations/__tests__/start-coordinator-task.test.js.map +1 -0
  551. package/dist/tools/implementations/__tests__/start-subagent-task.test.d.ts +11 -0
  552. package/dist/tools/implementations/__tests__/start-subagent-task.test.d.ts.map +1 -0
  553. package/dist/tools/implementations/__tests__/start-subagent-task.test.js +846 -0
  554. package/dist/tools/implementations/__tests__/start-subagent-task.test.js.map +1 -0
  555. package/dist/tools/implementations/__tests__/start-task.test.d.ts +11 -0
  556. package/dist/tools/implementations/__tests__/start-task.test.d.ts.map +1 -0
  557. package/dist/tools/implementations/__tests__/start-task.test.js +828 -0
  558. package/dist/tools/implementations/__tests__/start-task.test.js.map +1 -0
  559. package/dist/tools/implementations/__tests__/subagent-task-batch-operations.test.d.ts +8 -0
  560. package/dist/tools/implementations/__tests__/subagent-task-batch-operations.test.d.ts.map +1 -0
  561. package/dist/tools/implementations/__tests__/subagent-task-batch-operations.test.js +199 -0
  562. package/dist/tools/implementations/__tests__/subagent-task-batch-operations.test.js.map +1 -0
  563. package/dist/tools/implementations/__tests__/subagent-task.test.d.ts +7 -0
  564. package/dist/tools/implementations/__tests__/subagent-task.test.d.ts.map +1 -0
  565. package/dist/tools/implementations/__tests__/subagent-task.test.js +720 -0
  566. package/dist/tools/implementations/__tests__/subagent-task.test.js.map +1 -0
  567. package/dist/tools/implementations/__tests__/task-batch-operations.test.d.ts +8 -0
  568. package/dist/tools/implementations/__tests__/task-batch-operations.test.d.ts.map +1 -0
  569. package/dist/tools/implementations/__tests__/task-batch-operations.test.js +200 -0
  570. package/dist/tools/implementations/__tests__/task-batch-operations.test.js.map +1 -0
  571. package/dist/tools/implementations/__tests__/task.test.d.ts +7 -0
  572. package/dist/tools/implementations/__tests__/task.test.d.ts.map +1 -0
  573. package/dist/tools/implementations/__tests__/task.test.js +578 -0
  574. package/dist/tools/implementations/__tests__/task.test.js.map +1 -0
  575. package/dist/tools/implementations/__tests__/view-coordinator-task.test.d.ts +13 -0
  576. package/dist/tools/implementations/__tests__/view-coordinator-task.test.d.ts.map +1 -0
  577. package/dist/tools/implementations/__tests__/view-coordinator-task.test.js +1404 -0
  578. package/dist/tools/implementations/__tests__/view-coordinator-task.test.js.map +1 -0
  579. package/dist/tools/implementations/__tests__/view-document.linked-context.test.d.ts +8 -0
  580. package/dist/tools/implementations/__tests__/view-document.linked-context.test.d.ts.map +1 -0
  581. package/dist/tools/implementations/__tests__/view-document.linked-context.test.js +235 -0
  582. package/dist/tools/implementations/__tests__/view-document.linked-context.test.js.map +1 -0
  583. package/dist/tools/implementations/__tests__/view-document.simplification.test.d.ts +9 -0
  584. package/dist/tools/implementations/__tests__/view-document.simplification.test.d.ts.map +1 -0
  585. package/dist/tools/implementations/__tests__/view-document.simplification.test.js +160 -0
  586. package/dist/tools/implementations/__tests__/view-document.simplification.test.js.map +1 -0
  587. package/dist/tools/implementations/__tests__/view-task.test.d.ts +12 -0
  588. package/dist/tools/implementations/__tests__/view-task.test.d.ts.map +1 -0
  589. package/dist/tools/implementations/__tests__/view-task.test.js +1158 -0
  590. package/dist/tools/implementations/__tests__/view-task.test.js.map +1 -0
  591. package/dist/tools/implementations/browse-documents.d.ts +36 -0
  592. package/dist/tools/implementations/browse-documents.d.ts.map +1 -0
  593. package/dist/tools/implementations/browse-documents.js +123 -0
  594. package/dist/tools/implementations/browse-documents.js.map +1 -0
  595. package/dist/tools/implementations/complete-coordinator-task.d.ts +53 -0
  596. package/dist/tools/implementations/complete-coordinator-task.d.ts.map +1 -0
  597. package/dist/tools/implementations/complete-coordinator-task.js +159 -0
  598. package/dist/tools/implementations/complete-coordinator-task.js.map +1 -0
  599. package/dist/tools/implementations/complete-subagent-task.d.ts +47 -0
  600. package/dist/tools/implementations/complete-subagent-task.d.ts.map +1 -0
  601. package/dist/tools/implementations/complete-subagent-task.js +141 -0
  602. package/dist/tools/implementations/complete-subagent-task.js.map +1 -0
  603. package/dist/tools/implementations/complete-task.d.ts +32 -0
  604. package/dist/tools/implementations/complete-task.d.ts.map +1 -0
  605. package/dist/tools/implementations/complete-task.hierarchical.test.d.ts +8 -0
  606. package/dist/tools/implementations/complete-task.hierarchical.test.d.ts.map +1 -0
  607. package/dist/tools/implementations/complete-task.hierarchical.test.js +363 -0
  608. package/dist/tools/implementations/complete-task.hierarchical.test.js.map +1 -0
  609. package/dist/tools/implementations/complete-task.js +122 -0
  610. package/dist/tools/implementations/complete-task.js.map +1 -0
  611. package/dist/tools/implementations/continue-task.d.ts +48 -0
  612. package/dist/tools/implementations/continue-task.d.ts.map +1 -0
  613. package/dist/tools/implementations/continue-task.js +167 -0
  614. package/dist/tools/implementations/continue-task.js.map +1 -0
  615. package/dist/tools/implementations/coordinator-task.d.ts +72 -0
  616. package/dist/tools/implementations/coordinator-task.d.ts.map +1 -0
  617. package/dist/tools/implementations/coordinator-task.js +169 -0
  618. package/dist/tools/implementations/coordinator-task.js.map +1 -0
  619. package/dist/tools/implementations/create-document.d.ts +12 -0
  620. package/dist/tools/implementations/create-document.d.ts.map +1 -0
  621. package/dist/tools/implementations/create-document.js +15 -0
  622. package/dist/tools/implementations/create-document.js.map +1 -0
  623. package/dist/tools/implementations/delete-document.d.ts +16 -0
  624. package/dist/tools/implementations/delete-document.d.ts.map +1 -0
  625. package/dist/tools/implementations/delete-document.js +70 -0
  626. package/dist/tools/implementations/delete-document.js.map +1 -0
  627. package/dist/tools/implementations/edit-document.d.ts +8 -0
  628. package/dist/tools/implementations/edit-document.d.ts.map +1 -0
  629. package/dist/tools/implementations/edit-document.js +118 -0
  630. package/dist/tools/implementations/edit-document.js.map +1 -0
  631. package/dist/tools/implementations/get-guide.d.ts +13 -0
  632. package/dist/tools/implementations/get-guide.d.ts.map +1 -0
  633. package/dist/tools/implementations/get-guide.js +64 -0
  634. package/dist/tools/implementations/get-guide.js.map +1 -0
  635. package/dist/tools/implementations/get-workflow.d.ts +12 -0
  636. package/dist/tools/implementations/get-workflow.d.ts.map +1 -0
  637. package/dist/tools/implementations/get-workflow.js +71 -0
  638. package/dist/tools/implementations/get-workflow.js.map +1 -0
  639. package/dist/tools/implementations/index.d.ts +24 -0
  640. package/dist/tools/implementations/index.d.ts.map +1 -0
  641. package/dist/tools/implementations/index.js +24 -0
  642. package/dist/tools/implementations/index.js.map +1 -0
  643. package/dist/tools/implementations/manage-document.d.ts +8 -0
  644. package/dist/tools/implementations/manage-document.d.ts.map +1 -0
  645. package/dist/tools/implementations/manage-document.js +180 -0
  646. package/dist/tools/implementations/manage-document.js.map +1 -0
  647. package/dist/tools/implementations/move-document.d.ts +12 -0
  648. package/dist/tools/implementations/move-document.d.ts.map +1 -0
  649. package/dist/tools/implementations/move-document.js +72 -0
  650. package/dist/tools/implementations/move-document.js.map +1 -0
  651. package/dist/tools/implementations/move.d.ts +24 -0
  652. package/dist/tools/implementations/move.d.ts.map +1 -0
  653. package/dist/tools/implementations/move.js +167 -0
  654. package/dist/tools/implementations/move.js.map +1 -0
  655. package/dist/tools/implementations/search-documents.d.ts +39 -0
  656. package/dist/tools/implementations/search-documents.d.ts.map +1 -0
  657. package/dist/tools/implementations/search-documents.js +246 -0
  658. package/dist/tools/implementations/search-documents.js.map +1 -0
  659. package/dist/tools/implementations/section.d.ts +42 -0
  660. package/dist/tools/implementations/section.d.ts.map +1 -0
  661. package/dist/tools/implementations/section.hierarchical.test.d.ts +8 -0
  662. package/dist/tools/implementations/section.hierarchical.test.d.ts.map +1 -0
  663. package/dist/tools/implementations/section.hierarchical.test.js +299 -0
  664. package/dist/tools/implementations/section.hierarchical.test.js.map +1 -0
  665. package/dist/tools/implementations/section.js +244 -0
  666. package/dist/tools/implementations/section.js.map +1 -0
  667. package/dist/tools/implementations/section.test.d.ts +5 -0
  668. package/dist/tools/implementations/section.test.d.ts.map +1 -0
  669. package/dist/tools/implementations/section.test.js +371 -0
  670. package/dist/tools/implementations/section.test.js.map +1 -0
  671. package/dist/tools/implementations/start-coordinator-task.d.ts +44 -0
  672. package/dist/tools/implementations/start-coordinator-task.d.ts.map +1 -0
  673. package/dist/tools/implementations/start-coordinator-task.js +125 -0
  674. package/dist/tools/implementations/start-coordinator-task.js.map +1 -0
  675. package/dist/tools/implementations/start-subagent-task.d.ts +53 -0
  676. package/dist/tools/implementations/start-subagent-task.d.ts.map +1 -0
  677. package/dist/tools/implementations/start-subagent-task.js +179 -0
  678. package/dist/tools/implementations/start-subagent-task.js.map +1 -0
  679. package/dist/tools/implementations/start-task.d.ts +48 -0
  680. package/dist/tools/implementations/start-task.d.ts.map +1 -0
  681. package/dist/tools/implementations/start-task.js +216 -0
  682. package/dist/tools/implementations/start-task.js.map +1 -0
  683. package/dist/tools/implementations/subagent-task.d.ts +98 -0
  684. package/dist/tools/implementations/subagent-task.d.ts.map +1 -0
  685. package/dist/tools/implementations/subagent-task.js +277 -0
  686. package/dist/tools/implementations/subagent-task.js.map +1 -0
  687. package/dist/tools/implementations/task.d.ts +97 -0
  688. package/dist/tools/implementations/task.d.ts.map +1 -0
  689. package/dist/tools/implementations/task.hierarchical.test.d.ts +8 -0
  690. package/dist/tools/implementations/task.hierarchical.test.d.ts.map +1 -0
  691. package/dist/tools/implementations/task.hierarchical.test.js +333 -0
  692. package/dist/tools/implementations/task.hierarchical.test.js.map +1 -0
  693. package/dist/tools/implementations/task.js +235 -0
  694. package/dist/tools/implementations/task.js.map +1 -0
  695. package/dist/tools/implementations/view-coordinator-task.d.ts +61 -0
  696. package/dist/tools/implementations/view-coordinator-task.d.ts.map +1 -0
  697. package/dist/tools/implementations/view-coordinator-task.js +295 -0
  698. package/dist/tools/implementations/view-coordinator-task.js.map +1 -0
  699. package/dist/tools/implementations/view-document.d.ts +84 -0
  700. package/dist/tools/implementations/view-document.d.ts.map +1 -0
  701. package/dist/tools/implementations/view-document.js +287 -0
  702. package/dist/tools/implementations/view-document.js.map +1 -0
  703. package/dist/tools/implementations/view-section.d.ts +28 -0
  704. package/dist/tools/implementations/view-section.d.ts.map +1 -0
  705. package/dist/tools/implementations/view-section.hierarchical.test.d.ts +8 -0
  706. package/dist/tools/implementations/view-section.hierarchical.test.d.ts.map +1 -0
  707. package/dist/tools/implementations/view-section.hierarchical.test.js +318 -0
  708. package/dist/tools/implementations/view-section.hierarchical.test.js.map +1 -0
  709. package/dist/tools/implementations/view-section.js +167 -0
  710. package/dist/tools/implementations/view-section.js.map +1 -0
  711. package/dist/tools/implementations/view-subagent-task.d.ts +46 -0
  712. package/dist/tools/implementations/view-subagent-task.d.ts.map +1 -0
  713. package/dist/tools/implementations/view-subagent-task.js +283 -0
  714. package/dist/tools/implementations/view-subagent-task.js.map +1 -0
  715. package/dist/tools/implementations/view-task.d.ts +43 -0
  716. package/dist/tools/implementations/view-task.d.ts.map +1 -0
  717. package/dist/tools/implementations/view-task.hierarchical.test.d.ts +8 -0
  718. package/dist/tools/implementations/view-task.hierarchical.test.d.ts.map +1 -0
  719. package/dist/tools/implementations/view-task.hierarchical.test.js +420 -0
  720. package/dist/tools/implementations/view-task.hierarchical.test.js.map +1 -0
  721. package/dist/tools/implementations/view-task.js +280 -0
  722. package/dist/tools/implementations/view-task.js.map +1 -0
  723. package/dist/tools/index.d.ts +6 -0
  724. package/dist/tools/index.d.ts.map +1 -0
  725. package/dist/tools/index.js +6 -0
  726. package/dist/tools/index.js.map +1 -0
  727. package/dist/tools/registry.d.ts +10 -0
  728. package/dist/tools/registry.d.ts.map +1 -0
  729. package/dist/tools/registry.js +132 -0
  730. package/dist/tools/registry.js.map +1 -0
  731. package/dist/tools/schemas/__tests__/get-guide-schemas.test.d.ts +8 -0
  732. package/dist/tools/schemas/__tests__/get-guide-schemas.test.d.ts.map +1 -0
  733. package/dist/tools/schemas/__tests__/get-guide-schemas.test.js +216 -0
  734. package/dist/tools/schemas/__tests__/get-guide-schemas.test.js.map +1 -0
  735. package/dist/tools/schemas/__tests__/get-workflow-schemas.test.d.ts +8 -0
  736. package/dist/tools/schemas/__tests__/get-workflow-schemas.test.d.ts.map +1 -0
  737. package/dist/tools/schemas/__tests__/get-workflow-schemas.test.js +229 -0
  738. package/dist/tools/schemas/__tests__/get-workflow-schemas.test.js.map +1 -0
  739. package/dist/tools/schemas/browse-documents-schemas.d.ts +47 -0
  740. package/dist/tools/schemas/browse-documents-schemas.d.ts.map +1 -0
  741. package/dist/tools/schemas/browse-documents-schemas.js +48 -0
  742. package/dist/tools/schemas/browse-documents-schemas.js.map +1 -0
  743. package/dist/tools/schemas/complete-coordinator-task-schemas.d.ts +41 -0
  744. package/dist/tools/schemas/complete-coordinator-task-schemas.d.ts.map +1 -0
  745. package/dist/tools/schemas/complete-coordinator-task-schemas.js +42 -0
  746. package/dist/tools/schemas/complete-coordinator-task-schemas.js.map +1 -0
  747. package/dist/tools/schemas/complete-subagent-task-schemas.d.ts +38 -0
  748. package/dist/tools/schemas/complete-subagent-task-schemas.d.ts.map +1 -0
  749. package/dist/tools/schemas/complete-subagent-task-schemas.js +41 -0
  750. package/dist/tools/schemas/complete-subagent-task-schemas.js.map +1 -0
  751. package/dist/tools/schemas/complete-task-schemas.d.ts +33 -0
  752. package/dist/tools/schemas/complete-task-schemas.d.ts.map +1 -0
  753. package/dist/tools/schemas/complete-task-schemas.js +36 -0
  754. package/dist/tools/schemas/complete-task-schemas.js.map +1 -0
  755. package/dist/tools/schemas/continue-task-schemas.d.ts +27 -0
  756. package/dist/tools/schemas/continue-task-schemas.d.ts.map +1 -0
  757. package/dist/tools/schemas/continue-task-schemas.js +28 -0
  758. package/dist/tools/schemas/continue-task-schemas.js.map +1 -0
  759. package/dist/tools/schemas/coordinator-task-schemas.d.ts +87 -0
  760. package/dist/tools/schemas/coordinator-task-schemas.d.ts.map +1 -0
  761. package/dist/tools/schemas/coordinator-task-schemas.js +80 -0
  762. package/dist/tools/schemas/coordinator-task-schemas.js.map +1 -0
  763. package/dist/tools/schemas/create-document-schemas.d.ts +61 -0
  764. package/dist/tools/schemas/create-document-schemas.d.ts.map +1 -0
  765. package/dist/tools/schemas/create-document-schemas.js +143 -0
  766. package/dist/tools/schemas/create-document-schemas.js.map +1 -0
  767. package/dist/tools/schemas/delete-document-schemas.d.ts +24 -0
  768. package/dist/tools/schemas/delete-document-schemas.d.ts.map +1 -0
  769. package/dist/tools/schemas/delete-document-schemas.js +25 -0
  770. package/dist/tools/schemas/delete-document-schemas.js.map +1 -0
  771. package/dist/tools/schemas/edit-document-schemas.d.ts +27 -0
  772. package/dist/tools/schemas/edit-document-schemas.d.ts.map +1 -0
  773. package/dist/tools/schemas/edit-document-schemas.js +28 -0
  774. package/dist/tools/schemas/edit-document-schemas.js.map +1 -0
  775. package/dist/tools/schemas/get-guide-schemas.d.ts +35 -0
  776. package/dist/tools/schemas/get-guide-schemas.d.ts.map +1 -0
  777. package/dist/tools/schemas/get-guide-schemas.js +66 -0
  778. package/dist/tools/schemas/get-guide-schemas.js.map +1 -0
  779. package/dist/tools/schemas/get-workflow-schemas.d.ts +35 -0
  780. package/dist/tools/schemas/get-workflow-schemas.d.ts.map +1 -0
  781. package/dist/tools/schemas/get-workflow-schemas.js +67 -0
  782. package/dist/tools/schemas/get-workflow-schemas.js.map +1 -0
  783. package/dist/tools/schemas/manage-document-schemas.d.ts +59 -0
  784. package/dist/tools/schemas/manage-document-schemas.d.ts.map +1 -0
  785. package/dist/tools/schemas/manage-document-schemas.js +83 -0
  786. package/dist/tools/schemas/manage-document-schemas.js.map +1 -0
  787. package/dist/tools/schemas/move-document-schemas.d.ts +25 -0
  788. package/dist/tools/schemas/move-document-schemas.d.ts.map +1 -0
  789. package/dist/tools/schemas/move-document-schemas.js +26 -0
  790. package/dist/tools/schemas/move-document-schemas.js.map +1 -0
  791. package/dist/tools/schemas/move-schemas.d.ts +43 -0
  792. package/dist/tools/schemas/move-schemas.d.ts.map +1 -0
  793. package/dist/tools/schemas/move-schemas.js +43 -0
  794. package/dist/tools/schemas/move-schemas.js.map +1 -0
  795. package/dist/tools/schemas/search-documents-schemas.d.ts +77 -0
  796. package/dist/tools/schemas/search-documents-schemas.d.ts.map +1 -0
  797. package/dist/tools/schemas/search-documents-schemas.js +78 -0
  798. package/dist/tools/schemas/search-documents-schemas.js.map +1 -0
  799. package/dist/tools/schemas/section-schemas.d.ts +361 -0
  800. package/dist/tools/schemas/section-schemas.d.ts.map +1 -0
  801. package/dist/tools/schemas/section-schemas.js +182 -0
  802. package/dist/tools/schemas/section-schemas.js.map +1 -0
  803. package/dist/tools/schemas/start-coordinator-task-schemas.d.ts +30 -0
  804. package/dist/tools/schemas/start-coordinator-task-schemas.d.ts.map +1 -0
  805. package/dist/tools/schemas/start-coordinator-task-schemas.js +31 -0
  806. package/dist/tools/schemas/start-coordinator-task-schemas.js.map +1 -0
  807. package/dist/tools/schemas/start-subagent-task-schemas.d.ts +29 -0
  808. package/dist/tools/schemas/start-subagent-task-schemas.d.ts.map +1 -0
  809. package/dist/tools/schemas/start-subagent-task-schemas.js +40 -0
  810. package/dist/tools/schemas/start-subagent-task-schemas.js.map +1 -0
  811. package/dist/tools/schemas/start-task-schemas.d.ts +23 -0
  812. package/dist/tools/schemas/start-task-schemas.d.ts.map +1 -0
  813. package/dist/tools/schemas/start-task-schemas.js +39 -0
  814. package/dist/tools/schemas/start-task-schemas.js.map +1 -0
  815. package/dist/tools/schemas/subagent-task-schemas.d.ts +93 -0
  816. package/dist/tools/schemas/subagent-task-schemas.d.ts.map +1 -0
  817. package/dist/tools/schemas/subagent-task-schemas.js +81 -0
  818. package/dist/tools/schemas/subagent-task-schemas.js.map +1 -0
  819. package/dist/tools/schemas/task-schemas.d.ts +88 -0
  820. package/dist/tools/schemas/task-schemas.d.ts.map +1 -0
  821. package/dist/tools/schemas/task-schemas.js +80 -0
  822. package/dist/tools/schemas/task-schemas.js.map +1 -0
  823. package/dist/tools/schemas/view-coordinator-task-schemas.d.ts +27 -0
  824. package/dist/tools/schemas/view-coordinator-task-schemas.d.ts.map +1 -0
  825. package/dist/tools/schemas/view-coordinator-task-schemas.js +46 -0
  826. package/dist/tools/schemas/view-coordinator-task-schemas.js.map +1 -0
  827. package/dist/tools/schemas/view-document-schemas.d.ts +152 -0
  828. package/dist/tools/schemas/view-document-schemas.d.ts.map +1 -0
  829. package/dist/tools/schemas/view-document-schemas.js +70 -0
  830. package/dist/tools/schemas/view-document-schemas.js.map +1 -0
  831. package/dist/tools/schemas/view-section-schemas.d.ts +31 -0
  832. package/dist/tools/schemas/view-section-schemas.d.ts.map +1 -0
  833. package/dist/tools/schemas/view-section-schemas.js +56 -0
  834. package/dist/tools/schemas/view-section-schemas.js.map +1 -0
  835. package/dist/tools/schemas/view-subagent-task-schemas.d.ts +31 -0
  836. package/dist/tools/schemas/view-subagent-task-schemas.d.ts.map +1 -0
  837. package/dist/tools/schemas/view-subagent-task-schemas.js +65 -0
  838. package/dist/tools/schemas/view-subagent-task-schemas.js.map +1 -0
  839. package/dist/tools/schemas/view-task-schemas.d.ts +31 -0
  840. package/dist/tools/schemas/view-task-schemas.d.ts.map +1 -0
  841. package/dist/tools/schemas/view-task-schemas.js +62 -0
  842. package/dist/tools/schemas/view-task-schemas.js.map +1 -0
  843. package/dist/tools/types.d.ts +98 -0
  844. package/dist/tools/types.d.ts.map +1 -0
  845. package/dist/tools/types.js +9 -0
  846. package/dist/tools/types.js.map +1 -0
  847. package/dist/tools-manager.d.ts +8 -0
  848. package/dist/tools-manager.d.ts.map +1 -0
  849. package/dist/tools-manager.js +9 -0
  850. package/dist/tools-manager.js.map +1 -0
  851. package/dist/types/core.d.ts +71 -0
  852. package/dist/types/core.d.ts.map +1 -0
  853. package/dist/types/core.js +5 -0
  854. package/dist/types/core.js.map +1 -0
  855. package/dist/types/index.d.ts +5 -0
  856. package/dist/types/index.d.ts.map +1 -0
  857. package/dist/types/index.js +5 -0
  858. package/dist/types/index.js.map +1 -0
  859. package/dist/types/linking.d.ts +97 -0
  860. package/dist/types/linking.d.ts.map +1 -0
  861. package/dist/types/linking.js +5 -0
  862. package/dist/types/linking.js.map +1 -0
  863. package/dist/utils/__tests__/path-handler.archive.test.d.ts +8 -0
  864. package/dist/utils/__tests__/path-handler.archive.test.d.ts.map +1 -0
  865. package/dist/utils/__tests__/path-handler.archive.test.js +163 -0
  866. package/dist/utils/__tests__/path-handler.archive.test.js.map +1 -0
  867. package/dist/utils/error-formatter.d.ts +32 -0
  868. package/dist/utils/error-formatter.d.ts.map +1 -0
  869. package/dist/utils/error-formatter.js +79 -0
  870. package/dist/utils/error-formatter.js.map +1 -0
  871. package/dist/utils/logger.d.ts +21 -0
  872. package/dist/utils/logger.d.ts.map +1 -0
  873. package/dist/utils/logger.js +154 -0
  874. package/dist/utils/logger.js.map +1 -0
  875. package/dist/utils/path-handler.d.ts +52 -0
  876. package/dist/utils/path-handler.d.ts.map +1 -0
  877. package/dist/utils/path-handler.js +129 -0
  878. package/dist/utils/path-handler.js.map +1 -0
  879. package/dist/utils/security-audit-logger.d.ts +64 -0
  880. package/dist/utils/security-audit-logger.d.ts.map +1 -0
  881. package/dist/utils/security-audit-logger.js +56 -0
  882. package/dist/utils/security-audit-logger.js.map +1 -0
  883. package/dist/utils/virtual-path-resolver.d.ts +126 -0
  884. package/dist/utils/virtual-path-resolver.d.ts.map +1 -0
  885. package/dist/utils/virtual-path-resolver.js +171 -0
  886. package/dist/utils/virtual-path-resolver.js.map +1 -0
  887. package/package.json +82 -0
@@ -0,0 +1,720 @@
1
+ /**
2
+ * Unit tests for task tool - Bulk operations only
3
+ *
4
+ * Tests the task tool with bulk operations support for creating, editing, and listing tasks.
5
+ */
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import { subagentTask } from '../subagent-task.js';
8
+ import { createDocumentManager } from '../../../shared/utilities.js';
9
+ import { resolve } from 'node:path';
10
+ import { mkdtemp, rm, writeFile, mkdir } from 'node:fs/promises';
11
+ import { tmpdir } from 'node:os';
12
+ describe('task tool - Bulk Operations', () => {
13
+ let manager;
14
+ let sessionState;
15
+ let testDir;
16
+ let docsDir;
17
+ beforeEach(async () => {
18
+ // Set MCP_WORKSPACE_PATH for config loading
19
+ process.env["MCP_WORKSPACE_PATH"] = process.env["MCP_WORKSPACE_PATH"] ?? "/tmp/test-workspace";
20
+ // Create temporary test directory with unique ID
21
+ const uniqueId = `${Date.now()}-${Math.random().toString(36).substring(7)}`;
22
+ testDir = await mkdtemp(resolve(tmpdir(), `task-test-${uniqueId}-`));
23
+ // Configure MCP_WORKSPACE_PATH for config loading
24
+ process.env["MCP_WORKSPACE_PATH"] = testDir;
25
+ docsDir = resolve(testDir, 'docs');
26
+ await mkdir(docsDir, { recursive: true });
27
+ // Create document manager using shared utility
28
+ // Note: testDir is the root, docsDir is {testDir}/docs
29
+ manager = createDocumentManager(docsDir);
30
+ sessionState = {
31
+ sessionId: `test-${Date.now()}-${Math.random()}`,
32
+ createDocumentStage: 0
33
+ };
34
+ });
35
+ afterEach(async () => {
36
+ // Destroy manager to cancel pending async operations and clean up cache
37
+ await manager.destroy();
38
+ // Clean up test directory
39
+ if (testDir != null) {
40
+ await rm(testDir, { recursive: true, force: true });
41
+ }
42
+ });
43
+ describe('Parameter Validation', () => {
44
+ it('should throw error when operations array is missing', async () => {
45
+ await expect(subagentTask({
46
+ document: '/test.md'
47
+ }, sessionState, manager))
48
+ .rejects.toThrow('operations array is required');
49
+ });
50
+ it('should throw error when operations is not an array', async () => {
51
+ await expect(subagentTask({
52
+ document: '/test.md',
53
+ operations: 'not-an-array'
54
+ }, sessionState, manager))
55
+ .rejects.toThrow('operations array is required');
56
+ });
57
+ it('should throw error when operations array is empty', async () => {
58
+ await expect(subagentTask({
59
+ document: '/test.md',
60
+ operations: []
61
+ }, sessionState, manager))
62
+ .rejects.toThrow('operations array cannot be empty');
63
+ });
64
+ it('should throw error when document parameter is missing', async () => {
65
+ await expect(subagentTask({
66
+ operations: [{ operation: 'list' }]
67
+ }, sessionState, manager))
68
+ .rejects.toThrow('document');
69
+ });
70
+ });
71
+ describe('Single Create Operation', () => {
72
+ it('should create a single task via operations array', async () => {
73
+ // Create a test document with Tasks section
74
+ const docPath = resolve(docsDir, 'test.md');
75
+ const docContent = '# Test\n\n## Tasks\n\n';
76
+ await writeFile(docPath, docContent);
77
+ const result = await subagentTask({
78
+ document: '/test.md',
79
+ operations: [
80
+ {
81
+ operation: 'create',
82
+ title: 'Implement Feature',
83
+ content: 'Status: pending\n\nBuild feature X'
84
+ }
85
+ ]
86
+ }, sessionState, manager);
87
+ // Optimized response - success field removed
88
+ // Optimized response - document field removed
89
+ expect(result.operations_completed).toBe(1);
90
+ expect(result.results).toHaveLength(1);
91
+ // Optimized response - operation field removed
92
+ // Optimized response - status field removed
93
+ expect(result.results[0]?.task?.slug).toBe('implement-feature');
94
+ expect(result.results[0]?.task?.title).toBe('Implement Feature');
95
+ });
96
+ it('should return error when create operation missing required fields', async () => {
97
+ // Create a test document
98
+ const docPath = resolve(docsDir, 'test.md');
99
+ const docContent = '# Test\n\n## Tasks\n\n';
100
+ await writeFile(docPath, docContent);
101
+ const result = await subagentTask({
102
+ document: '/test.md',
103
+ operations: [
104
+ {
105
+ operation: 'create',
106
+ content: 'Missing title'
107
+ }
108
+ ]
109
+ }, sessionState, manager);
110
+ expect(result.results[0]?.error).toContain('title and content');
111
+ });
112
+ });
113
+ describe('Multiple Create Operations', () => {
114
+ it('should create multiple tasks in one call', async () => {
115
+ // Create a test document
116
+ const docPath = resolve(docsDir, 'test.md');
117
+ const docContent = '# Test\n\n## Tasks\n\n';
118
+ await writeFile(docPath, docContent);
119
+ const result = await subagentTask({
120
+ document: '/test.md',
121
+ operations: [
122
+ { operation: 'create', title: 'Task 1', content: 'Status: pending\n\nContent 1' },
123
+ { operation: 'create', title: 'Task 2', content: 'Status: pending\n\nContent 2' },
124
+ { operation: 'create', title: 'Task 3', content: 'Status: pending\n\nContent 3' }
125
+ ]
126
+ }, sessionState, manager);
127
+ expect(result.operations_completed).toBe(3);
128
+ expect(result.results).toHaveLength(3);
129
+ });
130
+ });
131
+ describe('Single List Operation', () => {
132
+ it('should list tasks via operations array', async () => {
133
+ // Create a test document with a task
134
+ const docPath = resolve(docsDir, 'test.md');
135
+ const docContent = '# Test\n\n## Tasks\n\n### Existing Task\n\nStatus: pending\n\nTask content';
136
+ await writeFile(docPath, docContent);
137
+ const result = await subagentTask({
138
+ document: '/test.md',
139
+ operations: [
140
+ { operation: 'list' }
141
+ ]
142
+ }, sessionState, manager);
143
+ expect(result.operations_completed).toBe(1);
144
+ expect(result.results[0]?.tasks).toBeDefined();
145
+ expect(result.results[0]?.count).toBeGreaterThan(0);
146
+ });
147
+ it('should list tasks with status filter', async () => {
148
+ // Create a test document with multiple tasks
149
+ const docPath = resolve(docsDir, 'test.md');
150
+ const docContent = '# Test\n\n## Tasks\n\n### Task 1\n\nStatus: pending\n\nContent\n\n### Task 2\n\nStatus: completed\n\nContent';
151
+ await writeFile(docPath, docContent);
152
+ const result = await subagentTask({
153
+ document: '/test.md',
154
+ operations: [
155
+ { operation: 'list', status: 'pending' }
156
+ ]
157
+ }, sessionState, manager);
158
+ expect(result.results[0]?.tasks).toBeDefined();
159
+ const tasks = result.results[0]?.tasks;
160
+ expect(tasks).toBeDefined();
161
+ if (tasks != null) {
162
+ // Should only return pending tasks
163
+ expect(tasks.every(t => t.status === 'pending')).toBe(true);
164
+ }
165
+ });
166
+ it('should list tasks with has_references flag and NO referenced_documents content', async () => {
167
+ // Create a test document with tasks, one with references
168
+ const docPath = resolve(docsDir, 'test.md');
169
+ const docContent = `# Test
170
+
171
+ ## Tasks
172
+
173
+ ### Task 1 Without References
174
+
175
+ Status: pending
176
+
177
+ Just normal content.
178
+
179
+ ### Task 2 With References
180
+
181
+ Status: pending
182
+
183
+ This task references @/other.md for context.
184
+
185
+ ### Task 3 Also Without References
186
+
187
+ Status: completed
188
+
189
+ Normal content here too.`;
190
+ await writeFile(docPath, docContent);
191
+ // Create referenced document to avoid errors
192
+ const otherDocPath = resolve(docsDir, 'other.md');
193
+ const otherDocContent = '# Other Doc\n\nSome reference content.';
194
+ await writeFile(otherDocPath, otherDocContent);
195
+ const result = await subagentTask({
196
+ document: '/test.md',
197
+ operations: [
198
+ { operation: 'list' }
199
+ ]
200
+ }, sessionState, manager);
201
+ const tasks = result.results[0]?.tasks;
202
+ expect(tasks).toBeDefined();
203
+ expect(tasks?.length).toBe(3);
204
+ if (tasks != null) {
205
+ // Find tasks by title
206
+ const task1 = tasks.find(t => t.title === 'Task 1 Without References');
207
+ const task2 = tasks.find(t => t.title === 'Task 2 With References');
208
+ const task3 = tasks.find(t => t.title === 'Task 3 Also Without References');
209
+ // Task without references should NOT have has_references flag
210
+ expect(task1?.has_references).toBeUndefined();
211
+ // Task with references should have has_references: true
212
+ expect(task2?.has_references).toBe(true);
213
+ // CRITICAL: Task with references should NOT have referenced_documents in list operation
214
+ expect(task2?.referenced_documents).toBeUndefined();
215
+ // Task 3 also without references
216
+ expect(task3?.has_references).toBeUndefined();
217
+ // Verify response is compact (no massive referenced_documents content)
218
+ const responseSize = JSON.stringify(result).length;
219
+ // With 3 tasks and no referenced_documents content, should be < 5000 chars
220
+ expect(responseSize).toBeLessThan(5000);
221
+ }
222
+ });
223
+ });
224
+ describe('Single Edit Operation', () => {
225
+ it('should edit a task via operations array', async () => {
226
+ // Create a test document with a task
227
+ const docPath = resolve(docsDir, 'test.md');
228
+ const docContent = '# Test\n\n## Tasks\n\n### Existing Task\n\nStatus: pending\n\nOld content';
229
+ await writeFile(docPath, docContent);
230
+ const result = await subagentTask({
231
+ document: '/test.md',
232
+ operations: [
233
+ {
234
+ operation: 'edit',
235
+ task: 'existing-task',
236
+ content: 'Status: in_progress\n\nUpdated content'
237
+ }
238
+ ]
239
+ }, sessionState, manager);
240
+ expect(result.operations_completed).toBe(1);
241
+ });
242
+ it('should return error when edit operation missing required fields', async () => {
243
+ // Create a test document
244
+ const docPath = resolve(docsDir, 'test.md');
245
+ const docContent = '# Test\n\n## Tasks\n\n';
246
+ await writeFile(docPath, docContent);
247
+ const result = await subagentTask({
248
+ document: '/test.md',
249
+ operations: [
250
+ {
251
+ operation: 'edit',
252
+ content: 'New content'
253
+ }
254
+ ]
255
+ }, sessionState, manager);
256
+ expect(result.results[0]?.error).toContain('task slug');
257
+ });
258
+ });
259
+ describe('Mixed Operations', () => {
260
+ it('should handle create and list in one call', async () => {
261
+ // Create a test document
262
+ const docPath = resolve(docsDir, 'test.md');
263
+ const docContent = '# Test\n\n## Tasks\n\n';
264
+ await writeFile(docPath, docContent);
265
+ const result = await subagentTask({
266
+ document: '/test.md',
267
+ operations: [
268
+ { operation: 'create', title: 'New Task', content: 'Status: pending\n\nContent' },
269
+ { operation: 'list' }
270
+ ]
271
+ }, sessionState, manager);
272
+ expect(result.operations_completed).toBe(2);
273
+ expect(result.results).toHaveLength(2);
274
+ });
275
+ it('should handle multiple operation types in sequence', async () => {
276
+ // Create a test document with a task
277
+ const docPath = resolve(docsDir, 'test.md');
278
+ const docContent = '# Test\n\n## Tasks\n\n### Existing Task\n\nStatus: pending\n\nOld content';
279
+ await writeFile(docPath, docContent);
280
+ const result = await subagentTask({
281
+ document: '/test.md',
282
+ operations: [
283
+ { operation: 'create', title: 'New Task 1', content: 'Status: pending\n\nContent 1' },
284
+ { operation: 'create', title: 'New Task 2', content: 'Status: pending\n\nContent 2' },
285
+ { operation: 'edit', task: 'existing-task', content: 'Status: completed\n\nUpdated' },
286
+ { operation: 'list' }
287
+ ]
288
+ }, sessionState, manager);
289
+ expect(result.operations_completed).toBe(4);
290
+ expect(result.results).toHaveLength(4);
291
+ });
292
+ });
293
+ describe('Error Handling', () => {
294
+ it('should handle partial failures gracefully', async () => {
295
+ // Create a test document
296
+ const docPath = resolve(docsDir, 'test.md');
297
+ const docContent = '# Test\n\n## Tasks\n\n';
298
+ await writeFile(docPath, docContent);
299
+ const result = await subagentTask({
300
+ document: '/test.md',
301
+ operations: [
302
+ { operation: 'create', title: 'Valid Task', content: 'Status: pending\n\nContent' },
303
+ { operation: 'edit', task: 'nonexistent', content: 'Will fail' }
304
+ ]
305
+ }, sessionState, manager);
306
+ expect(result.results[1]?.error).toBeDefined();
307
+ expect(result.operations_completed).toBe(1);
308
+ });
309
+ it('should continue processing after encountering an error', async () => {
310
+ // Create a test document
311
+ const docPath = resolve(docsDir, 'test.md');
312
+ const docContent = '# Test\n\n## Tasks\n\n';
313
+ await writeFile(docPath, docContent);
314
+ const result = await subagentTask({
315
+ document: '/test.md',
316
+ operations: [
317
+ { operation: 'create', title: 'Task 1', content: 'Status: pending\n\nContent' },
318
+ { operation: 'create', title: 'Missing content' }, // Will fail
319
+ { operation: 'create', title: 'Task 3', content: 'Status: pending\n\nContent' }
320
+ ]
321
+ }, sessionState, manager);
322
+ expect(result.results[1]?.error).toBeDefined();
323
+ expect(result.results[2]?.task).toBeDefined();
324
+ expect(result.operations_completed).toBe(2);
325
+ });
326
+ });
327
+ describe('Response Structure', () => {
328
+ it('should return properly formatted bulk response', async () => {
329
+ // Create a test document
330
+ const docPath = resolve(docsDir, 'test.md');
331
+ const docContent = '# Test\n\n## Tasks\n\n';
332
+ await writeFile(docPath, docContent);
333
+ const result = await subagentTask({
334
+ document: '/test.md',
335
+ operations: [
336
+ { operation: 'create', title: 'Test Task', content: 'Status: pending\n\nContent' }
337
+ ]
338
+ }, sessionState, manager);
339
+ // Verify response structure
340
+ expect(result).toHaveProperty('operations_completed');
341
+ expect(result).toHaveProperty('results');
342
+ expect(typeof result.operations_completed).toBe('number');
343
+ expect(Array.isArray(result.results)).toBe(true);
344
+ });
345
+ // Removed test: 'should use date-only timestamp format' - timestamp field no longer in response
346
+ });
347
+ describe('Batch Size Limits', () => {
348
+ it('should accept batch with 100 operations (at limit)', async () => {
349
+ // Create a test document
350
+ const docPath = resolve(docsDir, 'test.md');
351
+ const docContent = '# Test\n\n## Tasks\n\n';
352
+ await writeFile(docPath, docContent);
353
+ // Generate exactly 100 operations
354
+ const operations = Array.from({ length: 100 }, (_, i) => ({
355
+ operation: 'create',
356
+ title: `Task ${i + 1}`,
357
+ content: `Status: pending\n\nContent ${i + 1}`
358
+ }));
359
+ const result = await subagentTask({
360
+ document: '/test.md',
361
+ operations
362
+ }, sessionState, manager);
363
+ expect(result.results).toHaveLength(100);
364
+ });
365
+ it('should reject batch with 101 operations (over limit)', async () => {
366
+ // Create a test document
367
+ const docPath = resolve(docsDir, 'test.md');
368
+ const docContent = '# Test\n\n## Tasks\n\n';
369
+ await writeFile(docPath, docContent);
370
+ // Generate 101 operations (exceeds MAX_BATCH_SIZE)
371
+ const operations = Array.from({ length: 101 }, (_, i) => ({
372
+ operation: 'create',
373
+ title: `Task ${i + 1}`,
374
+ content: `Status: pending\n\nContent ${i + 1}`
375
+ }));
376
+ await expect(subagentTask({
377
+ document: '/test.md',
378
+ operations
379
+ }, sessionState, manager))
380
+ .rejects.toThrow('Batch size 101 exceeds maximum of 100');
381
+ });
382
+ it('should include helpful context in batch size error', async () => {
383
+ // Create a test document
384
+ const docPath = resolve(docsDir, 'test.md');
385
+ const docContent = '# Test\n\n## Tasks\n\n';
386
+ await writeFile(docPath, docContent);
387
+ // Generate 101 operations
388
+ const operations = Array.from({ length: 101 }, (_, i) => ({
389
+ operation: 'create',
390
+ title: `Task ${i + 1}`,
391
+ content: `Status: pending\n\nContent ${i + 1}`
392
+ }));
393
+ try {
394
+ await subagentTask({
395
+ document: '/test.md',
396
+ operations
397
+ }, sessionState, manager);
398
+ // Should not reach here
399
+ expect(true).toBe(false);
400
+ }
401
+ catch (error) {
402
+ // Verify error message includes batch size info
403
+ expect(error).toBeInstanceOf(Error);
404
+ if (error instanceof Error) {
405
+ expect(error.message).toContain('101');
406
+ expect(error.message).toContain('100');
407
+ }
408
+ }
409
+ });
410
+ });
411
+ describe('Auto-create Tasks Section (TDD)', () => {
412
+ it('should auto-create Tasks section if missing when creating first task', async () => {
413
+ // Create document WITHOUT Tasks section
414
+ const docPath = resolve(docsDir, 'test-autocreate.md');
415
+ const docContent = '# Test Document\n\nSome content here.\n\n';
416
+ await writeFile(docPath, docContent);
417
+ // Create a task - should auto-create Tasks section
418
+ const result = await subagentTask({
419
+ document: '/test-autocreate.md',
420
+ operations: [
421
+ {
422
+ operation: 'create',
423
+ title: 'First Task',
424
+ content: 'Status: pending\n\nThis is the first task'
425
+ }
426
+ ]
427
+ }, sessionState, manager);
428
+ // Verify task was created successfully
429
+ expect(result.operations_completed).toBe(1);
430
+ expect(result.results[0]?.task?.slug).toBe('first-task');
431
+ // Verify Tasks section was created
432
+ const document = await manager.getDocument('/test-autocreate.md');
433
+ expect(document).not.toBeNull();
434
+ if (document != null) {
435
+ const tasksSection = document.headings.find(h => h.slug === 'tasks' || h.title.toLowerCase() === 'tasks');
436
+ expect(tasksSection).toBeDefined();
437
+ expect(tasksSection?.title).toBe('Tasks');
438
+ // Verify task is under Tasks section
439
+ const taskHeading = document.headings.find(h => h.slug === 'first-task');
440
+ expect(taskHeading).toBeDefined();
441
+ expect(taskHeading?.title).toBe('First Task');
442
+ }
443
+ });
444
+ it('should not duplicate Tasks section if already exists', async () => {
445
+ // Create document WITH Tasks section
446
+ const docPath = resolve(docsDir, 'test-existing.md');
447
+ const docContent = '# Test Document\n\n## Tasks\n\n';
448
+ await writeFile(docPath, docContent);
449
+ // Create a task
450
+ const result = await subagentTask({
451
+ document: '/test-existing.md',
452
+ operations: [
453
+ {
454
+ operation: 'create',
455
+ title: 'New Task',
456
+ content: 'Status: pending\n\nTask content'
457
+ }
458
+ ]
459
+ }, sessionState, manager);
460
+ // Verify task was created successfully
461
+ expect(result.operations_completed).toBe(1);
462
+ // Verify only ONE Tasks section exists
463
+ const document = await manager.getDocument('/test-existing.md');
464
+ expect(document).not.toBeNull();
465
+ if (document != null) {
466
+ const tasksSections = document.headings.filter(h => h.slug === 'tasks' || h.title.toLowerCase() === 'tasks');
467
+ expect(tasksSections).toHaveLength(1);
468
+ }
469
+ });
470
+ it('should create Tasks section at correct depth (H2)', async () => {
471
+ // Create document with H1 title only
472
+ const docPath = resolve(docsDir, 'test-depth.md');
473
+ const docContent = '# Document Title\n\nSome overview content.\n\n';
474
+ await writeFile(docPath, docContent);
475
+ // Create a task (auto-creates Tasks)
476
+ await subagentTask({
477
+ document: '/test-depth.md',
478
+ operations: [
479
+ {
480
+ operation: 'create',
481
+ title: 'Test Task',
482
+ content: 'Status: pending\n\nTask content'
483
+ }
484
+ ]
485
+ }, sessionState, manager);
486
+ // Verify Tasks section is H2 (depth 2)
487
+ const document = await manager.getDocument('/test-depth.md');
488
+ expect(document).not.toBeNull();
489
+ if (document != null) {
490
+ const tasksSection = document.headings.find(h => h.slug === 'tasks' || h.title.toLowerCase() === 'tasks');
491
+ expect(tasksSection).toBeDefined();
492
+ expect(tasksSection?.depth).toBe(2);
493
+ }
494
+ });
495
+ it('should handle case-insensitive Tasks section detection', async () => {
496
+ // Create document with lowercase "tasks" section
497
+ const docPath = resolve(docsDir, 'test-case.md');
498
+ const docContent = '# Test Document\n\n## tasks\n\n';
499
+ await writeFile(docPath, docContent);
500
+ // Create a task
501
+ const result = await subagentTask({
502
+ document: '/test-case.md',
503
+ operations: [
504
+ {
505
+ operation: 'create',
506
+ title: 'Task One',
507
+ content: 'Status: pending\n\nContent'
508
+ }
509
+ ]
510
+ }, sessionState, manager);
511
+ // Should not create duplicate, should use existing
512
+ expect(result.operations_completed).toBe(1);
513
+ // Verify only ONE tasks section exists
514
+ const document = await manager.getDocument('/test-case.md');
515
+ expect(document).not.toBeNull();
516
+ if (document != null) {
517
+ const tasksSections = document.headings.filter(h => h.slug === 'tasks' || h.title.toLowerCase() === 'tasks');
518
+ expect(tasksSections).toHaveLength(1);
519
+ }
520
+ });
521
+ it('should throw error if document has no title heading (H1)', async () => {
522
+ // Create document WITHOUT H1 title
523
+ const docPath = resolve(docsDir, 'test-notitle.md');
524
+ const docContent = '## Section One\n\nSome content.\n\n';
525
+ await writeFile(docPath, docContent);
526
+ // Try to create a task - should fail with helpful error
527
+ const result = await subagentTask({
528
+ document: '/test-notitle.md',
529
+ operations: [
530
+ {
531
+ operation: 'create',
532
+ title: 'Test Task',
533
+ content: 'Status: pending\n\nContent'
534
+ }
535
+ ]
536
+ }, sessionState, manager);
537
+ // Should have error result
538
+ expect(result.results[0]?.error).toContain('title heading');
539
+ });
540
+ it('should create Tasks section with proper content on auto-create', async () => {
541
+ // Create document without Tasks section
542
+ const docPath = resolve(docsDir, 'test-content.md');
543
+ const docContent = '# My Document\n\nOverview content.\n\n';
544
+ await writeFile(docPath, docContent);
545
+ // Create a task (auto-creates Tasks)
546
+ await subagentTask({
547
+ document: '/test-content.md',
548
+ operations: [
549
+ {
550
+ operation: 'create',
551
+ title: 'First Task',
552
+ content: 'Status: pending\n\nTask details'
553
+ }
554
+ ]
555
+ }, sessionState, manager);
556
+ // Verify Tasks section content
557
+ const sectionContent = await manager.getSectionContent('/test-content.md', 'tasks');
558
+ expect(sectionContent).toBeDefined();
559
+ expect(sectionContent).toContain('Task list for this document');
560
+ });
561
+ it('should handle multiple task creates with auto-created Tasks section', async () => {
562
+ // Create document without Tasks section
563
+ const docPath = resolve(docsDir, 'test-multiple.md');
564
+ const docContent = '# Test Doc\n\nContent.\n\n';
565
+ await writeFile(docPath, docContent);
566
+ // Create multiple tasks in one call
567
+ const result = await subagentTask({
568
+ document: '/test-multiple.md',
569
+ operations: [
570
+ { operation: 'create', title: 'Task 1', content: 'Status: pending\n\nContent 1' },
571
+ { operation: 'create', title: 'Task 2', content: 'Status: pending\n\nContent 2' },
572
+ { operation: 'create', title: 'Task 3', content: 'Status: pending\n\nContent 3' }
573
+ ]
574
+ }, sessionState, manager);
575
+ // All should succeed
576
+ expect(result.operations_completed).toBe(3);
577
+ expect(result.results.every(r => r.task != null)).toBe(true);
578
+ // Verify Tasks section exists and contains all tasks
579
+ const document = await manager.getDocument('/test-multiple.md');
580
+ expect(document).not.toBeNull();
581
+ if (document != null) {
582
+ const tasksSection = document.headings.find(h => h.slug === 'tasks');
583
+ expect(tasksSection).toBeDefined();
584
+ const task1 = document.headings.find(h => h.slug === 'task-1');
585
+ const task2 = document.headings.find(h => h.slug === 'task-2');
586
+ const task3 = document.headings.find(h => h.slug === 'task-3');
587
+ expect(task1).toBeDefined();
588
+ expect(task2).toBeDefined();
589
+ expect(task3).toBeDefined();
590
+ }
591
+ });
592
+ });
593
+ describe('next_step conditional display', () => {
594
+ it('should show next_step guidance on first task creation', async () => {
595
+ // Arrange - prepare new document without Tasks section
596
+ const docPath = resolve(docsDir, 'new-project.md');
597
+ const docContent = '# New Project\n\nProject overview content.\n\n';
598
+ await writeFile(docPath, docContent);
599
+ // Act - create first task in new document
600
+ const result = await subagentTask({
601
+ document: '/new-project.md',
602
+ operations: [
603
+ {
604
+ operation: 'create',
605
+ title: 'Initialize Repository',
606
+ content: 'Status: pending\n\nWorkflow: develop-tdd\n\nSet up initial repository structure'
607
+ }
608
+ ]
609
+ }, sessionState, manager);
610
+ // Assert - verify next_step is present and contains expected guidance
611
+ expect(result.operations_completed).toBe(1);
612
+ expect(result.results).toHaveLength(1);
613
+ expect(result.results[0]?.next_step).toBeDefined();
614
+ expect(result.results[0]?.next_step).toContain('Give subagent this exact instruction');
615
+ expect(result.results[0]?.next_step).toContain('do not run start_subagent_task yourself');
616
+ expect(result.results[0]?.next_step).toContain('start_subagent_task');
617
+ expect(result.results[0]?.next_step).toContain('/new-project.md#initialize-repository');
618
+ });
619
+ it('should NOT show next_step on second task creation', async () => {
620
+ // Arrange - create document with first task (setup)
621
+ const docPath = resolve(docsDir, 'existing-project.md');
622
+ const docContent = '# Existing Project\n\n## Tasks\n\n### First Task\n\nStatus: pending\n\nExisting task content';
623
+ await writeFile(docPath, docContent);
624
+ // Act - create second task
625
+ const result = await subagentTask({
626
+ document: '/existing-project.md',
627
+ operations: [
628
+ {
629
+ operation: 'create',
630
+ title: 'Second Task',
631
+ content: 'Status: pending\n\nImplement second feature'
632
+ }
633
+ ]
634
+ }, sessionState, manager);
635
+ // Assert - verify next_step field is absent
636
+ expect(result.operations_completed).toBe(1);
637
+ expect(result.results).toHaveLength(1);
638
+ expect(result.results[0]?.next_step).toBeUndefined();
639
+ });
640
+ it('should NOT show next_step on third or subsequent task creation', async () => {
641
+ // Arrange - create document with multiple existing tasks
642
+ const docPath = resolve(docsDir, 'multi-task-project.md');
643
+ const docContent = `# Multi Task Project
644
+
645
+ ## Tasks
646
+
647
+ ### Task One
648
+
649
+ Status: pending
650
+
651
+ First task content
652
+
653
+ ### Task Two
654
+
655
+ Status: in_progress
656
+
657
+ Second task content`;
658
+ await writeFile(docPath, docContent);
659
+ // Act - create third task
660
+ const result = await subagentTask({
661
+ document: '/multi-task-project.md',
662
+ operations: [
663
+ {
664
+ operation: 'create',
665
+ title: 'Task Three',
666
+ content: 'Status: pending\n\nThird task content'
667
+ }
668
+ ]
669
+ }, sessionState, manager);
670
+ // Assert - verify next_step is still absent
671
+ expect(result.operations_completed).toBe(1);
672
+ expect(result.results[0]?.next_step).toBeUndefined();
673
+ });
674
+ it('should only show next_step on first task in multi-task creation', async () => {
675
+ // Arrange - prepare document without Tasks section
676
+ const docPath = resolve(docsDir, 'batch-project.md');
677
+ const docContent = '# Batch Project\n\nOverview content.\n\n';
678
+ await writeFile(docPath, docContent);
679
+ // Act - create multiple tasks at once in new document
680
+ const result = await subagentTask({
681
+ document: '/batch-project.md',
682
+ operations: [
683
+ { operation: 'create', title: 'Setup Environment', content: 'Status: pending\n\nWorkflow: develop-tdd\n\nSetup dev environment' },
684
+ { operation: 'create', title: 'Write Tests', content: 'Status: pending\n\nWrite initial test suite' },
685
+ { operation: 'create', title: 'Implement Features', content: 'Status: pending\n\nImplement core features' }
686
+ ]
687
+ }, sessionState, manager);
688
+ // Assert - only first result should have next_step
689
+ expect(result.operations_completed).toBe(3);
690
+ expect(result.results).toHaveLength(3);
691
+ expect(result.results[0]?.next_step).toBeDefined();
692
+ expect(result.results[0]?.next_step).toContain('Give subagent this exact instruction');
693
+ expect(result.results[0]?.next_step).toContain('/batch-project.md#setup-environment');
694
+ expect(result.results[1]?.next_step).toBeUndefined();
695
+ expect(result.results[2]?.next_step).toBeUndefined();
696
+ });
697
+ it('should show correct full path with slug in next_step', async () => {
698
+ // Arrange - create new document
699
+ const docPath = resolve(docsDir, 'path-test.md');
700
+ const docContent = '# Path Test\n\nOverview.\n\n';
701
+ await writeFile(docPath, docContent);
702
+ // Act - create task with specific title that creates predictable slug
703
+ const result = await subagentTask({
704
+ document: '/path-test.md',
705
+ operations: [
706
+ {
707
+ operation: 'create',
708
+ title: 'Test Task Name',
709
+ content: 'Status: pending\n\nTask content'
710
+ }
711
+ ]
712
+ }, sessionState, manager);
713
+ // Assert - verify the full path in next_step includes correct document and slug
714
+ expect(result.results[0]?.next_step).toBeDefined();
715
+ expect(result.results[0]?.next_step).toContain('/path-test.md#test-task-name');
716
+ expect(result.results[0]?.task?.slug).toBe('test-task-name');
717
+ });
718
+ });
719
+ });
720
+ //# sourceMappingURL=subagent-task.test.js.map