@waymakeros/cli 2.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 (390) hide show
  1. package/README.md +158 -0
  2. package/dist/cli/cli.d.ts +7 -0
  3. package/dist/cli/cli.d.ts.map +1 -0
  4. package/dist/cli/cli.js +703 -0
  5. package/dist/cli/cli.js.map +1 -0
  6. package/dist/cli/commands/auth.d.ts +14 -0
  7. package/dist/cli/commands/auth.d.ts.map +1 -0
  8. package/dist/cli/commands/auth.js +507 -0
  9. package/dist/cli/commands/auth.js.map +1 -0
  10. package/dist/cli/commands/init.d.ts +13 -0
  11. package/dist/cli/commands/init.d.ts.map +1 -0
  12. package/dist/cli/commands/init.js +297 -0
  13. package/dist/cli/commands/init.js.map +1 -0
  14. package/dist/cli/commands/kanban.d.ts +12 -0
  15. package/dist/cli/commands/kanban.d.ts.map +1 -0
  16. package/dist/cli/commands/kanban.js +71 -0
  17. package/dist/cli/commands/kanban.js.map +1 -0
  18. package/dist/cli/commands/serve.d.ts +12 -0
  19. package/dist/cli/commands/serve.d.ts.map +1 -0
  20. package/dist/cli/commands/serve.js +170 -0
  21. package/dist/cli/commands/serve.js.map +1 -0
  22. package/dist/cli/commands/sync.d.ts +12 -0
  23. package/dist/cli/commands/sync.d.ts.map +1 -0
  24. package/dist/cli/commands/sync.js +222 -0
  25. package/dist/cli/commands/sync.js.map +1 -0
  26. package/dist/cli/daemon.d.ts +106 -0
  27. package/dist/cli/daemon.d.ts.map +1 -0
  28. package/dist/cli/daemon.js +393 -0
  29. package/dist/cli/daemon.js.map +1 -0
  30. package/dist/cli/index.d.ts +13 -0
  31. package/dist/cli/index.d.ts.map +1 -0
  32. package/dist/cli/index.js +90 -0
  33. package/dist/cli/index.js.map +1 -0
  34. package/dist/index.d.ts +10 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +238 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/simple-server.d.ts +7 -0
  39. package/dist/simple-server.d.ts.map +1 -0
  40. package/dist/simple-server.js +157 -0
  41. package/dist/simple-server.js.map +1 -0
  42. package/dist/sync/commander-client.d.ts +161 -0
  43. package/dist/sync/commander-client.d.ts.map +1 -0
  44. package/dist/sync/commander-client.js +405 -0
  45. package/dist/sync/commander-client.js.map +1 -0
  46. package/dist/sync/config-manager.d.ts +48 -0
  47. package/dist/sync/config-manager.d.ts.map +1 -0
  48. package/dist/sync/config-manager.js +169 -0
  49. package/dist/sync/config-manager.js.map +1 -0
  50. package/dist/sync/file-watcher.d.ts +53 -0
  51. package/dist/sync/file-watcher.d.ts.map +1 -0
  52. package/dist/sync/file-watcher.js +228 -0
  53. package/dist/sync/file-watcher.js.map +1 -0
  54. package/dist/sync/folder-service.d.ts +110 -0
  55. package/dist/sync/folder-service.d.ts.map +1 -0
  56. package/dist/sync/folder-service.js +298 -0
  57. package/dist/sync/folder-service.js.map +1 -0
  58. package/dist/sync/folder-status-mapper.d.ts +106 -0
  59. package/dist/sync/folder-status-mapper.d.ts.map +1 -0
  60. package/dist/sync/folder-status-mapper.js +235 -0
  61. package/dist/sync/folder-status-mapper.js.map +1 -0
  62. package/dist/sync/layer-resolver.d.ts +54 -0
  63. package/dist/sync/layer-resolver.d.ts.map +1 -0
  64. package/dist/sync/layer-resolver.js +206 -0
  65. package/dist/sync/layer-resolver.js.map +1 -0
  66. package/dist/sync/markdown-parser.d.ts +49 -0
  67. package/dist/sync/markdown-parser.d.ts.map +1 -0
  68. package/dist/sync/markdown-parser.js +202 -0
  69. package/dist/sync/markdown-parser.js.map +1 -0
  70. package/dist/sync/reverse-sync.d.ts +139 -0
  71. package/dist/sync/reverse-sync.d.ts.map +1 -0
  72. package/dist/sync/reverse-sync.js +773 -0
  73. package/dist/sync/reverse-sync.js.map +1 -0
  74. package/dist/sync/sync-engine.d.ts +157 -0
  75. package/dist/sync/sync-engine.d.ts.map +1 -0
  76. package/dist/sync/sync-engine.js +875 -0
  77. package/dist/sync/sync-engine.js.map +1 -0
  78. package/dist/sync/sync-index.d.ts +150 -0
  79. package/dist/sync/sync-index.d.ts.map +1 -0
  80. package/dist/sync/sync-index.js +287 -0
  81. package/dist/sync/sync-index.js.map +1 -0
  82. package/dist/sync/trinity-mapper.d.ts +62 -0
  83. package/dist/sync/trinity-mapper.d.ts.map +1 -0
  84. package/dist/sync/trinity-mapper.js +548 -0
  85. package/dist/sync/trinity-mapper.js.map +1 -0
  86. package/dist/sync/types.d.ts +176 -0
  87. package/dist/sync/types.d.ts.map +1 -0
  88. package/dist/sync/types.js +6 -0
  89. package/dist/sync/types.js.map +1 -0
  90. package/dist/tools/apply-framework.d.ts +7 -0
  91. package/dist/tools/apply-framework.d.ts.map +1 -0
  92. package/dist/tools/apply-framework.js +30 -0
  93. package/dist/tools/apply-framework.js.map +1 -0
  94. package/dist/tools/commander-comment-create.d.ts +7 -0
  95. package/dist/tools/commander-comment-create.d.ts.map +1 -0
  96. package/dist/tools/commander-comment-create.js +100 -0
  97. package/dist/tools/commander-comment-create.js.map +1 -0
  98. package/dist/tools/commander-comment-list.d.ts +7 -0
  99. package/dist/tools/commander-comment-list.d.ts.map +1 -0
  100. package/dist/tools/commander-comment-list.js +110 -0
  101. package/dist/tools/commander-comment-list.js.map +1 -0
  102. package/dist/tools/commander-document-create.d.ts +7 -0
  103. package/dist/tools/commander-document-create.d.ts.map +1 -0
  104. package/dist/tools/commander-document-create.js +168 -0
  105. package/dist/tools/commander-document-create.js.map +1 -0
  106. package/dist/tools/commander-document-get.d.ts +7 -0
  107. package/dist/tools/commander-document-get.d.ts.map +1 -0
  108. package/dist/tools/commander-document-get.js +104 -0
  109. package/dist/tools/commander-document-get.js.map +1 -0
  110. package/dist/tools/commander-document-list.d.ts +7 -0
  111. package/dist/tools/commander-document-list.d.ts.map +1 -0
  112. package/dist/tools/commander-document-list.js +117 -0
  113. package/dist/tools/commander-document-list.js.map +1 -0
  114. package/dist/tools/commander-document-update.d.ts +7 -0
  115. package/dist/tools/commander-document-update.d.ts.map +1 -0
  116. package/dist/tools/commander-document-update.js +133 -0
  117. package/dist/tools/commander-document-update.js.map +1 -0
  118. package/dist/tools/commander-folder-create.d.ts +7 -0
  119. package/dist/tools/commander-folder-create.d.ts.map +1 -0
  120. package/dist/tools/commander-folder-create.js +157 -0
  121. package/dist/tools/commander-folder-create.js.map +1 -0
  122. package/dist/tools/commander-folder-delete.d.ts +7 -0
  123. package/dist/tools/commander-folder-delete.d.ts.map +1 -0
  124. package/dist/tools/commander-folder-delete.js +85 -0
  125. package/dist/tools/commander-folder-delete.js.map +1 -0
  126. package/dist/tools/commander-folder-get.d.ts +7 -0
  127. package/dist/tools/commander-folder-get.d.ts.map +1 -0
  128. package/dist/tools/commander-folder-get.js +94 -0
  129. package/dist/tools/commander-folder-get.js.map +1 -0
  130. package/dist/tools/commander-folder-list.d.ts +7 -0
  131. package/dist/tools/commander-folder-list.d.ts.map +1 -0
  132. package/dist/tools/commander-folder-list.js +96 -0
  133. package/dist/tools/commander-folder-list.js.map +1 -0
  134. package/dist/tools/commander-folder-update.d.ts +7 -0
  135. package/dist/tools/commander-folder-update.d.ts.map +1 -0
  136. package/dist/tools/commander-folder-update.js +120 -0
  137. package/dist/tools/commander-folder-update.js.map +1 -0
  138. package/dist/tools/commander-framework-apply.d.ts +7 -0
  139. package/dist/tools/commander-framework-apply.d.ts.map +1 -0
  140. package/dist/tools/commander-framework-apply.js +110 -0
  141. package/dist/tools/commander-framework-apply.js.map +1 -0
  142. package/dist/tools/commander-framework-categories.d.ts +7 -0
  143. package/dist/tools/commander-framework-categories.d.ts.map +1 -0
  144. package/dist/tools/commander-framework-categories.js +90 -0
  145. package/dist/tools/commander-framework-categories.js.map +1 -0
  146. package/dist/tools/commander-framework-get.d.ts +7 -0
  147. package/dist/tools/commander-framework-get.d.ts.map +1 -0
  148. package/dist/tools/commander-framework-get.js +124 -0
  149. package/dist/tools/commander-framework-get.js.map +1 -0
  150. package/dist/tools/commander-framework-list.d.ts +7 -0
  151. package/dist/tools/commander-framework-list.d.ts.map +1 -0
  152. package/dist/tools/commander-framework-list.js +103 -0
  153. package/dist/tools/commander-framework-list.js.map +1 -0
  154. package/dist/tools/commander-goal-create.d.ts +7 -0
  155. package/dist/tools/commander-goal-create.d.ts.map +1 -0
  156. package/dist/tools/commander-goal-create.js +130 -0
  157. package/dist/tools/commander-goal-create.js.map +1 -0
  158. package/dist/tools/commander-goal-get.d.ts +7 -0
  159. package/dist/tools/commander-goal-get.d.ts.map +1 -0
  160. package/dist/tools/commander-goal-get.js +83 -0
  161. package/dist/tools/commander-goal-get.js.map +1 -0
  162. package/dist/tools/commander-goal-list.d.ts +7 -0
  163. package/dist/tools/commander-goal-list.d.ts.map +1 -0
  164. package/dist/tools/commander-goal-list.js +111 -0
  165. package/dist/tools/commander-goal-list.js.map +1 -0
  166. package/dist/tools/commander-goal-update.d.ts +7 -0
  167. package/dist/tools/commander-goal-update.d.ts.map +1 -0
  168. package/dist/tools/commander-goal-update.js +110 -0
  169. package/dist/tools/commander-goal-update.js.map +1 -0
  170. package/dist/tools/commander-key-result-create.d.ts +7 -0
  171. package/dist/tools/commander-key-result-create.d.ts.map +1 -0
  172. package/dist/tools/commander-key-result-create.js +134 -0
  173. package/dist/tools/commander-key-result-create.js.map +1 -0
  174. package/dist/tools/commander-key-result-update.d.ts +7 -0
  175. package/dist/tools/commander-key-result-update.d.ts.map +1 -0
  176. package/dist/tools/commander-key-result-update.js +119 -0
  177. package/dist/tools/commander-key-result-update.js.map +1 -0
  178. package/dist/tools/commander-layer-create.d.ts +7 -0
  179. package/dist/tools/commander-layer-create.d.ts.map +1 -0
  180. package/dist/tools/commander-layer-create.js +167 -0
  181. package/dist/tools/commander-layer-create.js.map +1 -0
  182. package/dist/tools/commander-layer-delete.d.ts +7 -0
  183. package/dist/tools/commander-layer-delete.d.ts.map +1 -0
  184. package/dist/tools/commander-layer-delete.js +141 -0
  185. package/dist/tools/commander-layer-delete.js.map +1 -0
  186. package/dist/tools/commander-layer-list.d.ts +7 -0
  187. package/dist/tools/commander-layer-list.d.ts.map +1 -0
  188. package/dist/tools/commander-layer-list.js +102 -0
  189. package/dist/tools/commander-layer-list.js.map +1 -0
  190. package/dist/tools/commander-presentation.d.ts +7 -0
  191. package/dist/tools/commander-presentation.d.ts.map +1 -0
  192. package/dist/tools/commander-presentation.js +185 -0
  193. package/dist/tools/commander-presentation.js.map +1 -0
  194. package/dist/tools/commander-project-create.d.ts +7 -0
  195. package/dist/tools/commander-project-create.d.ts.map +1 -0
  196. package/dist/tools/commander-project-create.js +130 -0
  197. package/dist/tools/commander-project-create.js.map +1 -0
  198. package/dist/tools/commander-project-get.d.ts +7 -0
  199. package/dist/tools/commander-project-get.d.ts.map +1 -0
  200. package/dist/tools/commander-project-get.js +107 -0
  201. package/dist/tools/commander-project-get.js.map +1 -0
  202. package/dist/tools/commander-project-list.d.ts +7 -0
  203. package/dist/tools/commander-project-list.d.ts.map +1 -0
  204. package/dist/tools/commander-project-list.js +104 -0
  205. package/dist/tools/commander-project-list.js.map +1 -0
  206. package/dist/tools/commander-project-update.d.ts +7 -0
  207. package/dist/tools/commander-project-update.d.ts.map +1 -0
  208. package/dist/tools/commander-project-update.js +126 -0
  209. package/dist/tools/commander-project-update.js.map +1 -0
  210. package/dist/tools/commander-project.d.ts +7 -0
  211. package/dist/tools/commander-project.d.ts.map +1 -0
  212. package/dist/tools/commander-project.js +144 -0
  213. package/dist/tools/commander-project.js.map +1 -0
  214. package/dist/tools/commander-role-assign.d.ts +7 -0
  215. package/dist/tools/commander-role-assign.d.ts.map +1 -0
  216. package/dist/tools/commander-role-assign.js +115 -0
  217. package/dist/tools/commander-role-assign.js.map +1 -0
  218. package/dist/tools/commander-role-create.d.ts +7 -0
  219. package/dist/tools/commander-role-create.d.ts.map +1 -0
  220. package/dist/tools/commander-role-create.js +130 -0
  221. package/dist/tools/commander-role-create.js.map +1 -0
  222. package/dist/tools/commander-role-get.d.ts +7 -0
  223. package/dist/tools/commander-role-get.d.ts.map +1 -0
  224. package/dist/tools/commander-role-get.js +108 -0
  225. package/dist/tools/commander-role-get.js.map +1 -0
  226. package/dist/tools/commander-role-list.d.ts +7 -0
  227. package/dist/tools/commander-role-list.d.ts.map +1 -0
  228. package/dist/tools/commander-role-list.js +106 -0
  229. package/dist/tools/commander-role-list.js.map +1 -0
  230. package/dist/tools/commander-role-update.d.ts +7 -0
  231. package/dist/tools/commander-role-update.d.ts.map +1 -0
  232. package/dist/tools/commander-role-update.js +126 -0
  233. package/dist/tools/commander-role-update.js.map +1 -0
  234. package/dist/tools/commander-search.d.ts +7 -0
  235. package/dist/tools/commander-search.d.ts.map +1 -0
  236. package/dist/tools/commander-search.js +146 -0
  237. package/dist/tools/commander-search.js.map +1 -0
  238. package/dist/tools/commander-sheet-create.d.ts +7 -0
  239. package/dist/tools/commander-sheet-create.d.ts.map +1 -0
  240. package/dist/tools/commander-sheet-create.js +160 -0
  241. package/dist/tools/commander-sheet-create.js.map +1 -0
  242. package/dist/tools/commander-sheet-get.d.ts +7 -0
  243. package/dist/tools/commander-sheet-get.d.ts.map +1 -0
  244. package/dist/tools/commander-sheet-get.js +128 -0
  245. package/dist/tools/commander-sheet-get.js.map +1 -0
  246. package/dist/tools/commander-sheet-list.d.ts +7 -0
  247. package/dist/tools/commander-sheet-list.d.ts.map +1 -0
  248. package/dist/tools/commander-sheet-list.js +108 -0
  249. package/dist/tools/commander-sheet-list.js.map +1 -0
  250. package/dist/tools/commander-sheet-update.d.ts +7 -0
  251. package/dist/tools/commander-sheet-update.d.ts.map +1 -0
  252. package/dist/tools/commander-sheet-update.js +163 -0
  253. package/dist/tools/commander-sheet-update.js.map +1 -0
  254. package/dist/tools/commander-status-list.d.ts +7 -0
  255. package/dist/tools/commander-status-list.d.ts.map +1 -0
  256. package/dist/tools/commander-status-list.js +103 -0
  257. package/dist/tools/commander-status-list.js.map +1 -0
  258. package/dist/tools/commander-task-assign.d.ts +7 -0
  259. package/dist/tools/commander-task-assign.d.ts.map +1 -0
  260. package/dist/tools/commander-task-assign.js +91 -0
  261. package/dist/tools/commander-task-assign.js.map +1 -0
  262. package/dist/tools/commander-task-create.d.ts +7 -0
  263. package/dist/tools/commander-task-create.d.ts.map +1 -0
  264. package/dist/tools/commander-task-create.js +142 -0
  265. package/dist/tools/commander-task-create.js.map +1 -0
  266. package/dist/tools/commander-task-delete.d.ts +7 -0
  267. package/dist/tools/commander-task-delete.d.ts.map +1 -0
  268. package/dist/tools/commander-task-delete.js +88 -0
  269. package/dist/tools/commander-task-delete.js.map +1 -0
  270. package/dist/tools/commander-task-list-mine.d.ts +7 -0
  271. package/dist/tools/commander-task-list-mine.d.ts.map +1 -0
  272. package/dist/tools/commander-task-list-mine.js +109 -0
  273. package/dist/tools/commander-task-list-mine.js.map +1 -0
  274. package/dist/tools/commander-task-read.d.ts +10 -0
  275. package/dist/tools/commander-task-read.d.ts.map +1 -0
  276. package/dist/tools/commander-task-read.js +96 -0
  277. package/dist/tools/commander-task-read.js.map +1 -0
  278. package/dist/tools/commander-task-update.d.ts +7 -0
  279. package/dist/tools/commander-task-update.d.ts.map +1 -0
  280. package/dist/tools/commander-task-update.js +159 -0
  281. package/dist/tools/commander-task-update.js.map +1 -0
  282. package/dist/tools/commander-taskboard-tasks.d.ts +7 -0
  283. package/dist/tools/commander-taskboard-tasks.d.ts.map +1 -0
  284. package/dist/tools/commander-taskboard-tasks.js +97 -0
  285. package/dist/tools/commander-taskboard-tasks.js.map +1 -0
  286. package/dist/tools/commander-team-add-member.d.ts +7 -0
  287. package/dist/tools/commander-team-add-member.d.ts.map +1 -0
  288. package/dist/tools/commander-team-add-member.js +104 -0
  289. package/dist/tools/commander-team-add-member.js.map +1 -0
  290. package/dist/tools/commander-team-create.d.ts +7 -0
  291. package/dist/tools/commander-team-create.d.ts.map +1 -0
  292. package/dist/tools/commander-team-create.js +117 -0
  293. package/dist/tools/commander-team-create.js.map +1 -0
  294. package/dist/tools/commander-team-list.d.ts +7 -0
  295. package/dist/tools/commander-team-list.d.ts.map +1 -0
  296. package/dist/tools/commander-team-list.js +94 -0
  297. package/dist/tools/commander-team-list.js.map +1 -0
  298. package/dist/tools/commander-team-remove-member.d.ts +7 -0
  299. package/dist/tools/commander-team-remove-member.d.ts.map +1 -0
  300. package/dist/tools/commander-team-remove-member.js +98 -0
  301. package/dist/tools/commander-team-remove-member.js.map +1 -0
  302. package/dist/tools/commander-user-get.d.ts +7 -0
  303. package/dist/tools/commander-user-get.d.ts.map +1 -0
  304. package/dist/tools/commander-user-get.js +101 -0
  305. package/dist/tools/commander-user-get.js.map +1 -0
  306. package/dist/tools/commander-user-invite.d.ts +7 -0
  307. package/dist/tools/commander-user-invite.d.ts.map +1 -0
  308. package/dist/tools/commander-user-invite.js +119 -0
  309. package/dist/tools/commander-user-invite.js.map +1 -0
  310. package/dist/tools/commander-user-list.d.ts +7 -0
  311. package/dist/tools/commander-user-list.d.ts.map +1 -0
  312. package/dist/tools/commander-user-list.js +108 -0
  313. package/dist/tools/commander-user-list.js.map +1 -0
  314. package/dist/tools/commander-workspace-create.d.ts +7 -0
  315. package/dist/tools/commander-workspace-create.d.ts.map +1 -0
  316. package/dist/tools/commander-workspace-create.js +124 -0
  317. package/dist/tools/commander-workspace-create.js.map +1 -0
  318. package/dist/tools/commander-workspace-list.d.ts +7 -0
  319. package/dist/tools/commander-workspace-list.d.ts.map +1 -0
  320. package/dist/tools/commander-workspace-list.js +95 -0
  321. package/dist/tools/commander-workspace-list.js.map +1 -0
  322. package/dist/tools/commander-workspace-update.d.ts +7 -0
  323. package/dist/tools/commander-workspace-update.d.ts.map +1 -0
  324. package/dist/tools/commander-workspace-update.js +118 -0
  325. package/dist/tools/commander-workspace-update.js.map +1 -0
  326. package/dist/tools/commander-workspace.d.ts +7 -0
  327. package/dist/tools/commander-workspace.d.ts.map +1 -0
  328. package/dist/tools/commander-workspace.js +131 -0
  329. package/dist/tools/commander-workspace.js.map +1 -0
  330. package/dist/tools/create-kanban.d.ts +7 -0
  331. package/dist/tools/create-kanban.d.ts.map +1 -0
  332. package/dist/tools/create-kanban.js +32 -0
  333. package/dist/tools/create-kanban.js.map +1 -0
  334. package/dist/tools/create-table.d.ts +7 -0
  335. package/dist/tools/create-table.d.ts.map +1 -0
  336. package/dist/tools/create-table.js +188 -0
  337. package/dist/tools/create-table.js.map +1 -0
  338. package/dist/tools/search-knowledge.d.ts +7 -0
  339. package/dist/tools/search-knowledge.d.ts.map +1 -0
  340. package/dist/tools/search-knowledge.js +33 -0
  341. package/dist/tools/search-knowledge.js.map +1 -0
  342. package/dist/tools/waymaker-kanban-view.d.ts +7 -0
  343. package/dist/tools/waymaker-kanban-view.d.ts.map +1 -0
  344. package/dist/tools/waymaker-kanban-view.js +255 -0
  345. package/dist/tools/waymaker-kanban-view.js.map +1 -0
  346. package/dist/tools/waymaker-sync-configure.d.ts +13 -0
  347. package/dist/tools/waymaker-sync-configure.d.ts.map +1 -0
  348. package/dist/tools/waymaker-sync-configure.js +291 -0
  349. package/dist/tools/waymaker-sync-configure.js.map +1 -0
  350. package/dist/tools/waymaker-sync-file.d.ts +7 -0
  351. package/dist/tools/waymaker-sync-file.d.ts.map +1 -0
  352. package/dist/tools/waymaker-sync-file.js +79 -0
  353. package/dist/tools/waymaker-sync-file.js.map +1 -0
  354. package/dist/tools/waymaker-sync-poll.d.ts +8 -0
  355. package/dist/tools/waymaker-sync-poll.d.ts.map +1 -0
  356. package/dist/tools/waymaker-sync-poll.js +398 -0
  357. package/dist/tools/waymaker-sync-poll.js.map +1 -0
  358. package/dist/tools/waymaker-sync-start.d.ts +7 -0
  359. package/dist/tools/waymaker-sync-start.d.ts.map +1 -0
  360. package/dist/tools/waymaker-sync-start.js +56 -0
  361. package/dist/tools/waymaker-sync-start.js.map +1 -0
  362. package/dist/tools/waymaker-sync-status.d.ts +7 -0
  363. package/dist/tools/waymaker-sync-status.d.ts.map +1 -0
  364. package/dist/tools/waymaker-sync-status.js +45 -0
  365. package/dist/tools/waymaker-sync-status.js.map +1 -0
  366. package/dist/tools/waymaker-sync-stop.d.ts +7 -0
  367. package/dist/tools/waymaker-sync-stop.d.ts.map +1 -0
  368. package/dist/tools/waymaker-sync-stop.js +56 -0
  369. package/dist/tools/waymaker-sync-stop.js.map +1 -0
  370. package/dist/tools/waymaker-sync-workspace.d.ts +26 -0
  371. package/dist/tools/waymaker-sync-workspace.d.ts.map +1 -0
  372. package/dist/tools/waymaker-sync-workspace.js +148 -0
  373. package/dist/tools/waymaker-sync-workspace.js.map +1 -0
  374. package/dist/tools/waymaker-sync-workspace.tool.d.ts +9 -0
  375. package/dist/tools/waymaker-sync-workspace.tool.d.ts.map +1 -0
  376. package/dist/tools/waymaker-sync-workspace.tool.js +68 -0
  377. package/dist/tools/waymaker-sync-workspace.tool.js.map +1 -0
  378. package/dist/types/tool.d.ts +13 -0
  379. package/dist/types/tool.d.ts.map +1 -0
  380. package/dist/types/tool.js +2 -0
  381. package/dist/types/tool.js.map +1 -0
  382. package/dist/utils/daemon-health.d.ts +21 -0
  383. package/dist/utils/daemon-health.d.ts.map +1 -0
  384. package/dist/utils/daemon-health.js +40 -0
  385. package/dist/utils/daemon-health.js.map +1 -0
  386. package/dist/utils/fetch-ipv4.d.ts +36 -0
  387. package/dist/utils/fetch-ipv4.d.ts.map +1 -0
  388. package/dist/utils/fetch-ipv4.js +91 -0
  389. package/dist/utils/fetch-ipv4.js.map +1 -0
  390. package/package.json +62 -0
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Layer Path Resolver
3
+ * Resolves hierarchical layer paths like "Product/Sprint 1" to layer IDs,
4
+ * auto-creating missing parent layers as needed.
5
+ */
6
+ export interface LayerInfo {
7
+ id: string;
8
+ name: string;
9
+ parent_layer_id: string | null;
10
+ board_id: string;
11
+ }
12
+ export interface ResolveResult {
13
+ layerId: string;
14
+ layerPath: string;
15
+ created: boolean;
16
+ createdLayers: string[];
17
+ }
18
+ /**
19
+ * Parse a layer path into segments
20
+ * "Product/Sprint 1" -> ["Product", "Sprint 1"]
21
+ */
22
+ export declare function parseLayerPath(layerPath: string): string[];
23
+ /**
24
+ * Resolve a layer path to an ID, creating missing parent layers as needed
25
+ *
26
+ * @param taskboardId - The taskboard to resolve layers on
27
+ * @param layerPath - Path like "Product/Sprint 1" or "Product"
28
+ * @param autoCreate - Whether to create missing layers (default: true)
29
+ * @returns ResolveResult with layerId, path, and creation info
30
+ *
31
+ * @example
32
+ * // Resolve "Product/Sprint 1" - creates "Product" if missing, then "Sprint 1"
33
+ * const result = await resolveOrCreateLayerPath(taskboardId, "Product/Sprint 1");
34
+ * console.log(result.layerId); // UUID of "Sprint 1" layer
35
+ * console.log(result.created); // true if any layers were created
36
+ */
37
+ export declare function resolveOrCreateLayerPath(taskboardId: string, layerPath: string, autoCreate?: boolean): Promise<ResolveResult>;
38
+ /**
39
+ * Resolve a layer path without creating missing layers
40
+ * Throws if any segment is not found
41
+ */
42
+ export declare function resolveLayerPath(taskboardId: string, layerPath: string): Promise<ResolveResult>;
43
+ /**
44
+ * Get the full path for a layer ID by traversing up the parent chain
45
+ */
46
+ export declare function getLayerPath(taskboardId: string, layerId: string): Promise<string>;
47
+ /**
48
+ * Validate a layer path format
49
+ */
50
+ export declare function validateLayerPath(layerPath: string): {
51
+ valid: boolean;
52
+ error?: string;
53
+ };
54
+ //# sourceMappingURL=layer-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-resolver.d.ts","sourceRoot":"","sources":["../../src/sync/layer-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAK1D;AAiGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,OAAc,GACzB,OAAO,CAAC,aAAa,CAAC,CAuCxB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAgDjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAqBvF"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Layer Path Resolver
3
+ * Resolves hierarchical layer paths like "Product/Sprint 1" to layer IDs,
4
+ * auto-creating missing parent layers as needed.
5
+ */
6
+ // Environment configuration
7
+ const WAYMAKER_APPS_URL = process.env.WAYMAKER_APPS_URL || 'https://apps.waymakerone.com';
8
+ const WAYMAKER_API_KEY = process.env.WAYMAKER_API_KEY;
9
+ /**
10
+ * Parse a layer path into segments
11
+ * "Product/Sprint 1" -> ["Product", "Sprint 1"]
12
+ */
13
+ export function parseLayerPath(layerPath) {
14
+ return layerPath
15
+ .split('/')
16
+ .map(s => s.trim())
17
+ .filter(Boolean);
18
+ }
19
+ /**
20
+ * Find a layer by name and optional parent
21
+ */
22
+ async function findLayer(taskboardId, name, parentLayerId) {
23
+ if (!WAYMAKER_API_KEY) {
24
+ throw new Error('WAYMAKER_API_KEY environment variable not set');
25
+ }
26
+ const response = await fetch(`${WAYMAKER_APPS_URL}/functions/v1/commander-layer-operations`, {
27
+ method: 'POST',
28
+ headers: {
29
+ 'Authorization': `Bearer ${WAYMAKER_API_KEY}`,
30
+ 'Content-Type': 'application/json',
31
+ },
32
+ body: JSON.stringify({
33
+ action: 'list-layers',
34
+ taskboardId,
35
+ }),
36
+ });
37
+ if (!response.ok) {
38
+ const errorText = await response.text();
39
+ throw new Error(`Failed to list layers: ${response.status} ${errorText}`);
40
+ }
41
+ const result = await response.json();
42
+ if (!result.success || !result.data?.layers) {
43
+ return null;
44
+ }
45
+ // Find layer matching name and parent
46
+ const layer = result.data.layers.find((l) => {
47
+ const nameMatches = l.name.toLowerCase() === name.toLowerCase();
48
+ const parentMatches = parentLayerId
49
+ ? l.parent_layer_id === parentLayerId
50
+ : l.parent_layer_id === null;
51
+ return nameMatches && parentMatches;
52
+ });
53
+ return layer || null;
54
+ }
55
+ /**
56
+ * Create a layer with optional parent
57
+ */
58
+ async function createLayer(taskboardId, name, parentLayerId) {
59
+ if (!WAYMAKER_API_KEY) {
60
+ throw new Error('WAYMAKER_API_KEY environment variable not set');
61
+ }
62
+ console.error(`[LayerResolver] Creating layer: ${name}${parentLayerId ? ` (parent: ${parentLayerId})` : ' (top-level)'}`);
63
+ const response = await fetch(`${WAYMAKER_APPS_URL}/functions/v1/commander-layer-operations`, {
64
+ method: 'POST',
65
+ headers: {
66
+ 'Authorization': `Bearer ${WAYMAKER_API_KEY}`,
67
+ 'Content-Type': 'application/json',
68
+ },
69
+ body: JSON.stringify({
70
+ action: 'create-layer',
71
+ taskboardId,
72
+ name,
73
+ parentLayerId,
74
+ }),
75
+ });
76
+ if (!response.ok) {
77
+ const errorText = await response.text();
78
+ throw new Error(`Failed to create layer: ${response.status} ${errorText}`);
79
+ }
80
+ const result = await response.json();
81
+ if (!result.success || !result.data?.layer) {
82
+ throw new Error(result.message || 'Failed to create layer');
83
+ }
84
+ return result.data.layer;
85
+ }
86
+ /**
87
+ * Resolve a layer path to an ID, creating missing parent layers as needed
88
+ *
89
+ * @param taskboardId - The taskboard to resolve layers on
90
+ * @param layerPath - Path like "Product/Sprint 1" or "Product"
91
+ * @param autoCreate - Whether to create missing layers (default: true)
92
+ * @returns ResolveResult with layerId, path, and creation info
93
+ *
94
+ * @example
95
+ * // Resolve "Product/Sprint 1" - creates "Product" if missing, then "Sprint 1"
96
+ * const result = await resolveOrCreateLayerPath(taskboardId, "Product/Sprint 1");
97
+ * console.log(result.layerId); // UUID of "Sprint 1" layer
98
+ * console.log(result.created); // true if any layers were created
99
+ */
100
+ export async function resolveOrCreateLayerPath(taskboardId, layerPath, autoCreate = true) {
101
+ const segments = parseLayerPath(layerPath);
102
+ if (segments.length === 0) {
103
+ throw new Error('Layer path cannot be empty');
104
+ }
105
+ console.error(`[LayerResolver] Resolving path: ${layerPath} (${segments.length} segments)`);
106
+ let parentId = null;
107
+ const createdLayers = [];
108
+ const resolvedPath = [];
109
+ for (const segment of segments) {
110
+ // Try to find existing layer
111
+ const existing = await findLayer(taskboardId, segment, parentId);
112
+ if (existing) {
113
+ console.error(`[LayerResolver] Found existing: ${segment} -> ${existing.id}`);
114
+ parentId = existing.id;
115
+ resolvedPath.push(segment);
116
+ }
117
+ else if (autoCreate) {
118
+ // Create missing layer
119
+ const created = await createLayer(taskboardId, segment, parentId);
120
+ console.error(`[LayerResolver] Created: ${segment} -> ${created.id}`);
121
+ parentId = created.id;
122
+ resolvedPath.push(segment);
123
+ createdLayers.push(segment);
124
+ }
125
+ else {
126
+ throw new Error(`Layer not found: ${segment} (in path: ${layerPath})`);
127
+ }
128
+ }
129
+ return {
130
+ layerId: parentId,
131
+ layerPath: resolvedPath.join('/'),
132
+ created: createdLayers.length > 0,
133
+ createdLayers,
134
+ };
135
+ }
136
+ /**
137
+ * Resolve a layer path without creating missing layers
138
+ * Throws if any segment is not found
139
+ */
140
+ export async function resolveLayerPath(taskboardId, layerPath) {
141
+ return resolveOrCreateLayerPath(taskboardId, layerPath, false);
142
+ }
143
+ /**
144
+ * Get the full path for a layer ID by traversing up the parent chain
145
+ */
146
+ export async function getLayerPath(taskboardId, layerId) {
147
+ if (!WAYMAKER_API_KEY) {
148
+ throw new Error('WAYMAKER_API_KEY environment variable not set');
149
+ }
150
+ // Fetch all layers
151
+ const response = await fetch(`${WAYMAKER_APPS_URL}/functions/v1/commander-layer-operations`, {
152
+ method: 'POST',
153
+ headers: {
154
+ 'Authorization': `Bearer ${WAYMAKER_API_KEY}`,
155
+ 'Content-Type': 'application/json',
156
+ },
157
+ body: JSON.stringify({
158
+ action: 'list-layers',
159
+ taskboardId,
160
+ }),
161
+ });
162
+ if (!response.ok) {
163
+ throw new Error(`Failed to list layers: ${response.status}`);
164
+ }
165
+ const result = await response.json();
166
+ const layers = result.data?.layers || [];
167
+ // Build lookup map
168
+ const layerMap = new Map();
169
+ for (const layer of layers) {
170
+ layerMap.set(layer.id, layer);
171
+ }
172
+ // Traverse up from target layer
173
+ const pathSegments = [];
174
+ let currentId = layerId;
175
+ while (currentId) {
176
+ const layer = layerMap.get(currentId);
177
+ if (!layer) {
178
+ throw new Error(`Layer not found: ${currentId}`);
179
+ }
180
+ pathSegments.unshift(layer.name);
181
+ currentId = layer.parent_layer_id;
182
+ }
183
+ return pathSegments.join('/');
184
+ }
185
+ /**
186
+ * Validate a layer path format
187
+ */
188
+ export function validateLayerPath(layerPath) {
189
+ if (!layerPath || typeof layerPath !== 'string') {
190
+ return { valid: false, error: 'Layer path must be a non-empty string' };
191
+ }
192
+ const segments = parseLayerPath(layerPath);
193
+ if (segments.length === 0) {
194
+ return { valid: false, error: 'Layer path has no valid segments' };
195
+ }
196
+ for (const segment of segments) {
197
+ if (segment.length > 100) {
198
+ return { valid: false, error: `Layer name too long: ${segment.substring(0, 20)}...` };
199
+ }
200
+ if (/[<>:"|?*\\]/.test(segment)) {
201
+ return { valid: false, error: `Invalid characters in layer name: ${segment}` };
202
+ }
203
+ }
204
+ return { valid: true };
205
+ }
206
+ //# sourceMappingURL=layer-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-resolver.js","sourceRoot":"","sources":["../../src/sync/layer-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Waymaker Sync - Markdown Parser
3
+ * Parses markdown files with frontmatter, content, and checklist items
4
+ */
5
+ import { ParsedMarkdown, MarkdownFrontmatter } from './types.js';
6
+ export declare class MarkdownParser {
7
+ /**
8
+ * Parse a markdown file with frontmatter
9
+ */
10
+ parseFile(filePath: string): Promise<ParsedMarkdown>;
11
+ /**
12
+ * Parse markdown content string
13
+ */
14
+ parseContent(content: string): ParsedMarkdown;
15
+ /**
16
+ * Extract checklist items from markdown content
17
+ * Supports: - [ ] and - [x] format
18
+ */
19
+ private extractChecklistItems;
20
+ /**
21
+ * Extract heading structure from markdown content
22
+ */
23
+ private extractHeadings;
24
+ /**
25
+ * Check if a markdown file has sync frontmatter
26
+ */
27
+ hasSyncFrontmatter(filePath: string): Promise<boolean>;
28
+ /**
29
+ * Update frontmatter in a markdown file
30
+ */
31
+ updateFrontmatter(filePath: string, updates: Partial<MarkdownFrontmatter>): Promise<void>;
32
+ /**
33
+ * Deep merge frontmatter objects
34
+ */
35
+ private mergeFrontmatter;
36
+ /**
37
+ * Calculate content checksum for change detection
38
+ */
39
+ calculateChecksum(content: string): string;
40
+ /**
41
+ * Extract task metadata from frontmatter
42
+ */
43
+ extractTaskMetadata(frontmatter: MarkdownFrontmatter): Record<string, any>;
44
+ /**
45
+ * Get title from markdown content or frontmatter
46
+ */
47
+ getTitle(parsed: ParsedMarkdown): string;
48
+ }
49
+ //# sourceMappingURL=markdown-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-parser.d.ts","sourceRoot":"","sources":["../../src/sync/markdown-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,cAAc,EACd,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IACzB;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAY1D;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;IAmB7C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5D;;OAEG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAW1C;;OAEG;IACH,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA8B1E;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;CAgBzC"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Waymaker Sync - Markdown Parser
3
+ * Parses markdown files with frontmatter, content, and checklist items
4
+ */
5
+ import * as fs from 'fs';
6
+ import matter from 'gray-matter';
7
+ export class MarkdownParser {
8
+ /**
9
+ * Parse a markdown file with frontmatter
10
+ */
11
+ async parseFile(filePath) {
12
+ try {
13
+ const fileContent = fs.readFileSync(filePath, 'utf-8');
14
+ return this.parseContent(fileContent);
15
+ }
16
+ catch (error) {
17
+ if (error instanceof Error) {
18
+ throw new Error(`Failed to parse file ${filePath}: ${error.message}`);
19
+ }
20
+ throw error;
21
+ }
22
+ }
23
+ /**
24
+ * Parse markdown content string
25
+ */
26
+ parseContent(content) {
27
+ // Parse frontmatter using gray-matter
28
+ const { data, content: markdownContent, matter: rawFrontmatter } = matter(content);
29
+ // Extract checklist items
30
+ const checklistItems = this.extractChecklistItems(markdownContent);
31
+ // Extract heading structure
32
+ const headings = this.extractHeadings(markdownContent);
33
+ return {
34
+ frontmatter: data,
35
+ content: markdownContent,
36
+ checklistItems,
37
+ headings,
38
+ rawFrontmatter: rawFrontmatter || '',
39
+ };
40
+ }
41
+ /**
42
+ * Extract checklist items from markdown content
43
+ * Supports: - [ ] and - [x] format
44
+ */
45
+ extractChecklistItems(content) {
46
+ const checklistItems = [];
47
+ const lines = content.split('\n');
48
+ lines.forEach((line, index) => {
49
+ // Match checklist pattern: - [ ] or - [x]
50
+ const checklistMatch = line.match(/^(\s*)- \[([ xX])\] (.+)$/);
51
+ if (checklistMatch) {
52
+ const [, indent, check, text] = checklistMatch;
53
+ const level = Math.floor(indent.length / 2); // 2 spaces per level
54
+ const completed = check.toLowerCase() === 'x';
55
+ checklistItems.push({
56
+ text: text.trim(),
57
+ completed,
58
+ level,
59
+ line: index + 1,
60
+ });
61
+ }
62
+ });
63
+ return checklistItems;
64
+ }
65
+ /**
66
+ * Extract heading structure from markdown content
67
+ */
68
+ extractHeadings(content) {
69
+ const headings = [];
70
+ const lines = content.split('\n');
71
+ lines.forEach((line, index) => {
72
+ // Match heading pattern: # Heading
73
+ const headingMatch = line.match(/^(#{1,6})\s+(.+)$/);
74
+ if (headingMatch) {
75
+ const [, hashes, text] = headingMatch;
76
+ const level = hashes.length;
77
+ headings.push({
78
+ level,
79
+ text: text.trim(),
80
+ line: index + 1,
81
+ });
82
+ }
83
+ });
84
+ return headings;
85
+ }
86
+ /**
87
+ * Check if a markdown file has sync frontmatter
88
+ */
89
+ async hasSyncFrontmatter(filePath) {
90
+ try {
91
+ const parsed = await this.parseFile(filePath);
92
+ return !!parsed.frontmatter.sync;
93
+ }
94
+ catch {
95
+ return false;
96
+ }
97
+ }
98
+ /**
99
+ * Update frontmatter in a markdown file
100
+ */
101
+ async updateFrontmatter(filePath, updates) {
102
+ try {
103
+ const fileContent = fs.readFileSync(filePath, 'utf-8');
104
+ const { data, content } = matter(fileContent);
105
+ // Deep merge frontmatter
106
+ const updatedFrontmatter = this.mergeFrontmatter(data, updates);
107
+ // Reconstruct file with updated frontmatter
108
+ const updatedContent = matter.stringify(content, updatedFrontmatter);
109
+ // Write back to file
110
+ fs.writeFileSync(filePath, updatedContent, 'utf-8');
111
+ }
112
+ catch (error) {
113
+ if (error instanceof Error) {
114
+ throw new Error(`Failed to update frontmatter in ${filePath}: ${error.message}`);
115
+ }
116
+ throw error;
117
+ }
118
+ }
119
+ /**
120
+ * Deep merge frontmatter objects
121
+ */
122
+ mergeFrontmatter(existing, updates) {
123
+ const merged = { ...existing };
124
+ // Handle sync field specially (deep merge)
125
+ if (updates.sync) {
126
+ merged.sync = {
127
+ ...(existing.sync || {}),
128
+ ...updates.sync,
129
+ };
130
+ }
131
+ // Merge other top-level fields
132
+ Object.keys(updates).forEach(key => {
133
+ if (key !== 'sync' && updates[key] !== undefined) {
134
+ merged[key] = updates[key];
135
+ }
136
+ });
137
+ return merged;
138
+ }
139
+ /**
140
+ * Calculate content checksum for change detection
141
+ */
142
+ calculateChecksum(content) {
143
+ // Simple hash function for content comparison
144
+ let hash = 0;
145
+ for (let i = 0; i < content.length; i++) {
146
+ const char = content.charCodeAt(i);
147
+ hash = ((hash << 5) - hash) + char;
148
+ hash = hash & hash; // Convert to 32-bit integer
149
+ }
150
+ return hash.toString(16);
151
+ }
152
+ /**
153
+ * Extract task metadata from frontmatter
154
+ */
155
+ extractTaskMetadata(frontmatter) {
156
+ const metadata = {};
157
+ if (frontmatter.sync) {
158
+ const sync = frontmatter.sync;
159
+ if (sync.status)
160
+ metadata.status = sync.status;
161
+ if (sync.priority)
162
+ metadata.priority = sync.priority;
163
+ if (sync.owner)
164
+ metadata.owner = sync.owner;
165
+ if (sync.assignee)
166
+ metadata.assignee = sync.assignee;
167
+ if (sync.tags)
168
+ metadata.tags = sync.tags;
169
+ // Include any other sync metadata
170
+ Object.keys(sync).forEach(key => {
171
+ if (!['type', 'project', 'taskboard', 'organization_id', 'workspace_id'].includes(key)) {
172
+ metadata[key] = sync[key];
173
+ }
174
+ });
175
+ }
176
+ // Include any top-level metadata
177
+ Object.keys(frontmatter).forEach(key => {
178
+ if (key !== 'sync') {
179
+ metadata[key] = frontmatter[key];
180
+ }
181
+ });
182
+ return metadata;
183
+ }
184
+ /**
185
+ * Get title from markdown content or frontmatter
186
+ */
187
+ getTitle(parsed) {
188
+ // Try frontmatter title first
189
+ if (parsed.frontmatter.title) {
190
+ return parsed.frontmatter.title;
191
+ }
192
+ // Try first H1 heading
193
+ const h1 = parsed.headings.find(h => h.level === 1);
194
+ if (h1) {
195
+ return h1.text;
196
+ }
197
+ // Fallback to first line of content
198
+ const firstLine = parsed.content.split('\n')[0];
199
+ return firstLine.replace(/^#+\s*/, '').trim() || 'Untitled';
200
+ }
201
+ }
202
+ //# sourceMappingURL=markdown-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../src/sync/markdown-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * ReverseSync: Commander → IDE Synchronization
3
+ *
4
+ * Subscribes to Commander taskboard changes and syncs them to IDE filesystem.
5
+ * Part of bidirectional Waymaker Sync.
6
+ */
7
+ import { EventEmitter } from 'events';
8
+ interface ReverseSyncConfig {
9
+ projectPath: string;
10
+ taskboardId: string;
11
+ tasksFolder: string;
12
+ supabaseUrl: string;
13
+ supabaseKey: string;
14
+ syncIntervalMs: number;
15
+ apiKey?: string;
16
+ }
17
+ export declare class ReverseSync extends EventEmitter {
18
+ private config;
19
+ private supabase;
20
+ private channel;
21
+ private running;
22
+ private fileMap;
23
+ private sectionMap;
24
+ private pendingChanges;
25
+ private syncTimer;
26
+ private reconnectAttempts;
27
+ private maxReconnectAttempts;
28
+ private reconnectTimer;
29
+ private supabaseToken;
30
+ private tokenExpiresAt;
31
+ private tokenRefreshTimer;
32
+ private recentEvents;
33
+ private readonly dedupeWindowMs;
34
+ constructor(config: ReverseSyncConfig);
35
+ /**
36
+ * Exchange OAuth token (wm_at_*) for a Supabase-compatible JWT
37
+ * This allows Realtime subscriptions to pass RLS policies
38
+ */
39
+ private exchangeTokenForSupabaseJWT;
40
+ /**
41
+ * Schedule automatic token refresh before expiry
42
+ */
43
+ private scheduleTokenRefresh;
44
+ /**
45
+ * Start reverse sync - subscribe to task changes
46
+ */
47
+ start(): Promise<void>;
48
+ /**
49
+ * Stop reverse sync
50
+ */
51
+ stop(): Promise<void>;
52
+ /**
53
+ * Subscribe to Supabase realtime for task changes
54
+ */
55
+ private subscribeToTaskChanges;
56
+ /**
57
+ * Handle reconnection with exponential backoff
58
+ */
59
+ private handleReconnect;
60
+ /**
61
+ * Update board sync status via edge function
62
+ */
63
+ private updateBoardSyncStatus;
64
+ /**
65
+ * Handle realtime event from Supabase
66
+ */
67
+ private handleRealtimeEvent;
68
+ /**
69
+ * Load section mappings from database for folder organization
70
+ */
71
+ private loadSectionMappings;
72
+ /**
73
+ * Load existing task markdown files to build task_id → file_path map
74
+ * Scans tasks folder and all subdirectories (section folders)
75
+ */
76
+ private loadExistingFiles;
77
+ /**
78
+ * Load a single task file and add to file map
79
+ */
80
+ private loadTaskFile;
81
+ /**
82
+ * Perform initial sync of all existing tasks in the taskboard
83
+ *
84
+ * IMPORTANT: This does NOT create conflict files. On startup we simply:
85
+ * - Create files for tasks that exist in Commander but not locally
86
+ * - Skip files that already exist locally (trust local state)
87
+ *
88
+ * Conflict detection only happens on LIVE Realtime events (changes while daemon runs).
89
+ */
90
+ private performInitialSync;
91
+ /**
92
+ * Handle task change from Commander (debounced)
93
+ */
94
+ private handleTaskChange;
95
+ /**
96
+ * Process all queued task changes
97
+ */
98
+ private processQueuedChanges;
99
+ /**
100
+ * Sync task to file (create or update)
101
+ */
102
+ private syncTaskToFile;
103
+ /**
104
+ * Convert task to markdown format
105
+ */
106
+ private taskToMarkdown;
107
+ /**
108
+ * Slugify a name for use in folder/file names
109
+ */
110
+ private slugifyName;
111
+ /**
112
+ * Generate filename from task title (slugified)
113
+ */
114
+ private generateFilename;
115
+ /**
116
+ * Write task to markdown file
117
+ */
118
+ private writeTaskFile;
119
+ /**
120
+ * Delete task markdown file
121
+ */
122
+ private deleteTaskFile;
123
+ /**
124
+ * Check for conflicts between IDE file and Commander task
125
+ * Returns true if IDE file was modified after Commander task
126
+ */
127
+ private checkConflict;
128
+ /**
129
+ * Get current status
130
+ */
131
+ getStatus(): {
132
+ running: boolean;
133
+ subscribedTo: string;
134
+ filesTracked: number;
135
+ pendingChanges: number;
136
+ };
137
+ }
138
+ export {};
139
+ //# sourceMappingURL=reverse-sync.d.ts.map