@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,703 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Waymaker Sync CLI
4
+ * Command-line interface for Waymaker Sync engine
5
+ */
6
+ import { SyncDaemon } from './daemon.js';
7
+ import { ConfigManager } from '../sync/config-manager.js';
8
+ import { SyncEngine } from '../sync/sync-engine.js';
9
+ const COMMANDS = {
10
+ START: 'start',
11
+ STOP: 'stop',
12
+ STATUS: 'status',
13
+ INIT: 'init',
14
+ LAYER: 'layer',
15
+ KANBAN: 'kanban',
16
+ SYNC_ALL: 'sync-all',
17
+ };
18
+ async function main() {
19
+ const args = process.argv.slice(2);
20
+ // Default to current directory
21
+ const projectPath = process.cwd();
22
+ if (args.length === 0) {
23
+ printHelp();
24
+ process.exit(0);
25
+ }
26
+ const command = args[0];
27
+ try {
28
+ switch (command) {
29
+ case COMMANDS.START:
30
+ await startCommand(projectPath);
31
+ break;
32
+ case COMMANDS.STOP:
33
+ await stopCommand(projectPath);
34
+ break;
35
+ case COMMANDS.STATUS:
36
+ await statusCommand(projectPath);
37
+ break;
38
+ case COMMANDS.INIT:
39
+ await initCommand(projectPath, args.slice(1));
40
+ break;
41
+ case COMMANDS.LAYER:
42
+ await layerCommand(projectPath, args.slice(1));
43
+ break;
44
+ case COMMANDS.KANBAN:
45
+ await kanbanCommand(projectPath, args.slice(1));
46
+ break;
47
+ case COMMANDS.SYNC_ALL:
48
+ await syncAllCommand(projectPath, args.slice(1));
49
+ break;
50
+ default:
51
+ console.error(`Unknown command: ${command}`);
52
+ printHelp();
53
+ process.exit(1);
54
+ }
55
+ }
56
+ catch (error) {
57
+ console.error('Error:', error instanceof Error ? error.message : String(error));
58
+ process.exit(1);
59
+ }
60
+ }
61
+ /**
62
+ * Start sync daemon
63
+ */
64
+ async function startCommand(projectPath) {
65
+ console.log('Starting Waymaker Sync daemon...');
66
+ const daemon = new SyncDaemon(projectPath);
67
+ if (daemon.isRunning()) {
68
+ console.log('āŒ Sync daemon is already running');
69
+ console.log(`PID: ${daemon.getPid()}`);
70
+ process.exit(1);
71
+ }
72
+ await daemon.start();
73
+ }
74
+ /**
75
+ * Stop sync daemon
76
+ */
77
+ async function stopCommand(projectPath) {
78
+ console.log('Stopping Waymaker Sync daemon...');
79
+ const daemon = new SyncDaemon(projectPath);
80
+ if (!daemon.isRunning()) {
81
+ console.log('Sync daemon is not running');
82
+ process.exit(0);
83
+ }
84
+ const pid = daemon.getPid();
85
+ if (pid) {
86
+ // Send SIGTERM to graceful shutdown
87
+ process.kill(pid, 'SIGTERM');
88
+ console.log(`āœ… Sent stop signal to daemon (PID: ${pid})`);
89
+ }
90
+ }
91
+ /**
92
+ * Show sync daemon status
93
+ */
94
+ async function statusCommand(projectPath) {
95
+ const daemon = new SyncDaemon(projectPath);
96
+ const status = daemon.getStatus();
97
+ console.log('\nšŸ“Š Waymaker Sync Status\n');
98
+ console.log(`Running: ${status.running ? 'āœ… Yes' : 'āŒ No'}`);
99
+ if (status.running && status.pid) {
100
+ console.log(`PID: ${status.pid}`);
101
+ }
102
+ if (status.status) {
103
+ const s = status.status;
104
+ console.log(`\nSync Statistics:`);
105
+ console.log(` Started: ${s.startedAt?.toLocaleString() || 'N/A'}`);
106
+ console.log(` Files Watched: ${s.filesWatched}`);
107
+ console.log(` Last Sync: ${s.lastSyncAt?.toLocaleString() || 'Never'}`);
108
+ console.log(` Total Syncs: ${s.syncCount}`);
109
+ console.log(` Errors: ${s.errorCount}`);
110
+ if (s.recentErrors.length > 0) {
111
+ console.log(`\nRecent Errors:`);
112
+ s.recentErrors.forEach((err, i) => {
113
+ console.log(` ${i + 1}. [${err.timestamp.toLocaleTimeString()}] ${err.filePath}`);
114
+ console.log(` ${err.error}`);
115
+ });
116
+ }
117
+ }
118
+ console.log();
119
+ }
120
+ /**
121
+ * Initialize Waymaker Sync configuration
122
+ */
123
+ async function initCommand(projectPath, args) {
124
+ console.log('Initializing Waymaker Sync configuration...\n');
125
+ const configManager = new ConfigManager(projectPath);
126
+ // Check if config already exists
127
+ if (configManager.exists()) {
128
+ console.log('āŒ Configuration already exists at:');
129
+ console.log(` ${configManager.getConfigPath()}`);
130
+ console.log('\nUse --force to overwrite existing configuration');
131
+ process.exit(1);
132
+ }
133
+ // Parse command line arguments
134
+ const options = parseInitOptions(args);
135
+ if (!options.workspace_id || !options.project_id || !options.organization_id) {
136
+ console.error('Missing required options. Usage:');
137
+ console.error(' waymaker sync init \\');
138
+ console.error(' --workspace-id <uuid> \\');
139
+ console.error(' --project-id <uuid> \\');
140
+ console.error(' --organization-id <clerk-org-id> \\');
141
+ console.error(' [--taskboard-id <uuid>]');
142
+ process.exit(1);
143
+ }
144
+ // Create configuration
145
+ const config = await configManager.createInitialConfig({
146
+ workspace_id: options.workspace_id,
147
+ project_id: options.project_id,
148
+ organization_id: options.organization_id,
149
+ taskboard_id: options.taskboard_id,
150
+ });
151
+ console.log('āœ… Configuration created successfully!\n');
152
+ console.log(`Config file: ${configManager.getConfigPath()}\n`);
153
+ console.log('Configuration:');
154
+ console.log(` Workspace ID: ${config.workspace_id}`);
155
+ console.log(` Project ID: ${config.project_id}`);
156
+ console.log(` Organization ID: ${config.organization_id}`);
157
+ console.log(` Taskboard ID: ${config.sync.taskboard_id || '(not set)'}`);
158
+ console.log(` Sync Mode: ${config.sync.mode}`);
159
+ console.log(` Watch Patterns: ${config.sync.watch_patterns.length}`);
160
+ console.log('\nNext steps:');
161
+ console.log(' 1. Set WAYMAKER_API_KEY environment variable');
162
+ console.log(' 2. Run: waymaker sync start');
163
+ }
164
+ /**
165
+ * Parse init command options
166
+ */
167
+ function parseInitOptions(args) {
168
+ const options = {};
169
+ for (let i = 0; i < args.length; i++) {
170
+ const arg = args[i];
171
+ const value = args[i + 1];
172
+ switch (arg) {
173
+ case '--workspace-id':
174
+ options.workspace_id = value;
175
+ i++;
176
+ break;
177
+ case '--project-id':
178
+ options.project_id = value;
179
+ i++;
180
+ break;
181
+ case '--organization-id':
182
+ options.organization_id = value;
183
+ i++;
184
+ break;
185
+ case '--taskboard-id':
186
+ options.taskboard_id = value;
187
+ i++;
188
+ break;
189
+ }
190
+ }
191
+ return options;
192
+ }
193
+ /**
194
+ * Layer management commands
195
+ */
196
+ async function layerCommand(projectPath, args) {
197
+ if (args.length === 0) {
198
+ printLayerHelp();
199
+ process.exit(0);
200
+ }
201
+ const subCommand = args[0];
202
+ const subArgs = args.slice(1);
203
+ // Get config for taskboard ID
204
+ const configManager = new ConfigManager(projectPath);
205
+ if (!configManager.exists()) {
206
+ console.error('āŒ No Waymaker Sync configuration found.');
207
+ console.error('Run `waymaker sync init` first to configure sync.');
208
+ process.exit(1);
209
+ }
210
+ const config = configManager.getConfig();
211
+ const taskboardId = parseOption(subArgs, '--taskboard') || config.sync.taskboard_id;
212
+ if (!taskboardId) {
213
+ console.error('āŒ No taskboard ID specified.');
214
+ console.error('Either set taskboard_id in .commander/config.json or use --taskboard <id>');
215
+ process.exit(1);
216
+ }
217
+ const apiKey = process.env.WAYMAKER_API_KEY;
218
+ if (!apiKey) {
219
+ console.error('āŒ WAYMAKER_API_KEY environment variable not set.');
220
+ process.exit(1);
221
+ }
222
+ const appsUrl = process.env.WAYMAKER_APPS_URL || 'https://apps.waymakerone.com';
223
+ switch (subCommand) {
224
+ case 'list':
225
+ await layerListCommand(appsUrl, apiKey, taskboardId);
226
+ break;
227
+ case 'create':
228
+ await layerCreateCommand(appsUrl, apiKey, taskboardId, subArgs);
229
+ break;
230
+ case 'delete':
231
+ await layerDeleteCommand(appsUrl, apiKey, taskboardId, subArgs);
232
+ break;
233
+ default:
234
+ console.error(`Unknown layer command: ${subCommand}`);
235
+ printLayerHelp();
236
+ process.exit(1);
237
+ }
238
+ }
239
+ /**
240
+ * List layers on a taskboard
241
+ */
242
+ async function layerListCommand(appsUrl, apiKey, taskboardId) {
243
+ console.log('\nšŸ“Š Layers on taskboard\n');
244
+ const response = await fetch(`${appsUrl}/functions/v1/commander-layer-operations`, {
245
+ method: 'POST',
246
+ headers: {
247
+ 'Authorization': `Bearer ${apiKey}`,
248
+ 'Content-Type': 'application/json',
249
+ },
250
+ body: JSON.stringify({
251
+ action: 'list-layers',
252
+ taskboardId,
253
+ }),
254
+ });
255
+ if (!response.ok) {
256
+ console.error('āŒ Failed to list layers:', response.status, await response.text());
257
+ process.exit(1);
258
+ }
259
+ const result = await response.json();
260
+ if (!result.success) {
261
+ console.error('āŒ Error:', result.error);
262
+ process.exit(1);
263
+ }
264
+ const layers = result.data?.layers || [];
265
+ if (layers.length === 0) {
266
+ console.log('No layers found on this taskboard.\n');
267
+ console.log('Create one with: waymaker sync layer create "My Layer"');
268
+ return;
269
+ }
270
+ // Print hierarchy
271
+ const printLayer = (layer, indent = 0) => {
272
+ const prefix = ' '.repeat(indent) + (indent > 0 ? '└── ' : '');
273
+ console.log(`${prefix}${layer.name}`);
274
+ console.log(`${' '.repeat(indent * 2 + (indent > 0 ? 4 : 0))}ID: ${layer.id}`);
275
+ if (layer.path && layer.path !== layer.name) {
276
+ console.log(`${' '.repeat(indent * 2 + (indent > 0 ? 4 : 0))}Path: ${layer.path}`);
277
+ }
278
+ console.log();
279
+ };
280
+ // Build hierarchy and print
281
+ const hierarchy = result.data?.hierarchy || [];
282
+ const printHierarchy = (nodes, indent = 0) => {
283
+ for (const node of nodes) {
284
+ printLayer(node, indent);
285
+ if (node.children?.length > 0) {
286
+ printHierarchy(node.children, indent + 1);
287
+ }
288
+ }
289
+ };
290
+ printHierarchy(hierarchy);
291
+ console.log(`Total: ${layers.length} layer(s)\n`);
292
+ }
293
+ /**
294
+ * Create a new layer
295
+ */
296
+ async function layerCreateCommand(appsUrl, apiKey, taskboardId, args) {
297
+ // First positional arg is the layer name
298
+ const name = args.find(a => !a.startsWith('--'));
299
+ const parentLayer = parseOption(args, '--parent');
300
+ if (!name) {
301
+ console.error('āŒ Layer name required.');
302
+ console.error('Usage: waymaker sync layer create "Sprint 1" --parent "Taskboards"');
303
+ process.exit(1);
304
+ }
305
+ console.log(`\nšŸ“¦ Creating layer: ${name}`);
306
+ if (parentLayer) {
307
+ console.log(` Parent: ${parentLayer}`);
308
+ }
309
+ // If parent specified, resolve it first
310
+ let parentLayerId = null;
311
+ if (parentLayer) {
312
+ const findResponse = await fetch(`${appsUrl}/functions/v1/commander-layer-operations`, {
313
+ method: 'POST',
314
+ headers: {
315
+ 'Authorization': `Bearer ${apiKey}`,
316
+ 'Content-Type': 'application/json',
317
+ },
318
+ body: JSON.stringify({
319
+ action: 'find-layer-by-path',
320
+ taskboardId,
321
+ layerPath: parentLayer,
322
+ }),
323
+ });
324
+ if (!findResponse.ok) {
325
+ console.error('āŒ Failed to find parent layer:', await findResponse.text());
326
+ process.exit(1);
327
+ }
328
+ const findResult = await findResponse.json();
329
+ if (!findResult.success || !findResult.data?.layer) {
330
+ console.error(`āŒ Parent layer not found: ${parentLayer}`);
331
+ process.exit(1);
332
+ }
333
+ parentLayerId = findResult.data.layer.id;
334
+ }
335
+ // Create the layer
336
+ const response = await fetch(`${appsUrl}/functions/v1/commander-layer-operations`, {
337
+ method: 'POST',
338
+ headers: {
339
+ 'Authorization': `Bearer ${apiKey}`,
340
+ 'Content-Type': 'application/json',
341
+ },
342
+ body: JSON.stringify({
343
+ action: 'create-layer',
344
+ taskboardId,
345
+ name,
346
+ parentLayerId,
347
+ description: parseOption(args, '--description'),
348
+ startDate: parseOption(args, '--start-date'),
349
+ endDate: parseOption(args, '--end-date'),
350
+ }),
351
+ });
352
+ if (!response.ok) {
353
+ console.error('āŒ Failed to create layer:', response.status, await response.text());
354
+ process.exit(1);
355
+ }
356
+ const result = await response.json();
357
+ if (!result.success) {
358
+ console.error('āŒ Error:', result.error);
359
+ process.exit(1);
360
+ }
361
+ const layer = result.data?.layer;
362
+ const layerPath = parentLayer ? `${parentLayer}/${name}` : name;
363
+ console.log(`\nāœ… Layer created successfully!`);
364
+ console.log(` Name: ${layer.name}`);
365
+ console.log(` ID: ${layer.id}`);
366
+ console.log(` Path: ${layerPath}`);
367
+ console.log();
368
+ }
369
+ /**
370
+ * Delete a layer
371
+ */
372
+ async function layerDeleteCommand(appsUrl, apiKey, taskboardId, args) {
373
+ // First positional arg is the layer path
374
+ const layerPath = args.find(a => !a.startsWith('--'));
375
+ if (!layerPath) {
376
+ console.error('āŒ Layer path required.');
377
+ console.error('Usage: waymaker sync layer delete "Taskboards/Sprint 1"');
378
+ process.exit(1);
379
+ }
380
+ console.log(`\nšŸ—‘ļø Deleting layer: ${layerPath}`);
381
+ // Find the layer first
382
+ const findResponse = await fetch(`${appsUrl}/functions/v1/commander-layer-operations`, {
383
+ method: 'POST',
384
+ headers: {
385
+ 'Authorization': `Bearer ${apiKey}`,
386
+ 'Content-Type': 'application/json',
387
+ },
388
+ body: JSON.stringify({
389
+ action: 'find-layer-by-path',
390
+ taskboardId,
391
+ layerPath,
392
+ }),
393
+ });
394
+ if (!findResponse.ok) {
395
+ console.error('āŒ Failed to find layer:', await findResponse.text());
396
+ process.exit(1);
397
+ }
398
+ const findResult = await findResponse.json();
399
+ if (!findResult.success || !findResult.data?.layer) {
400
+ console.error(`āŒ Layer not found: ${layerPath}`);
401
+ process.exit(1);
402
+ }
403
+ const layerId = findResult.data.layer.id;
404
+ // Delete the layer
405
+ const response = await fetch(`${appsUrl}/functions/v1/commander-layer-operations`, {
406
+ method: 'POST',
407
+ headers: {
408
+ 'Authorization': `Bearer ${apiKey}`,
409
+ 'Content-Type': 'application/json',
410
+ },
411
+ body: JSON.stringify({
412
+ action: 'delete-layer',
413
+ layerId,
414
+ }),
415
+ });
416
+ if (!response.ok) {
417
+ console.error('āŒ Failed to delete layer:', response.status, await response.text());
418
+ process.exit(1);
419
+ }
420
+ const result = await response.json();
421
+ if (!result.success) {
422
+ console.error('āŒ Error:', result.error);
423
+ process.exit(1);
424
+ }
425
+ console.log(`āœ… Layer deleted: ${layerPath}\n`);
426
+ }
427
+ /**
428
+ * Parse a command line option value
429
+ */
430
+ function parseOption(args, optionName) {
431
+ const index = args.indexOf(optionName);
432
+ if (index >= 0 && index < args.length - 1) {
433
+ return args[index + 1];
434
+ }
435
+ return undefined;
436
+ }
437
+ /**
438
+ * Display kanban board in terminal
439
+ */
440
+ async function kanbanCommand(projectPath, args) {
441
+ // Get config for taskboard ID
442
+ const configManager = new ConfigManager(projectPath);
443
+ if (!configManager.exists()) {
444
+ console.error('āŒ No Waymaker Sync configuration found.');
445
+ console.error('Run `waymaker sync init` first to configure sync.');
446
+ process.exit(1);
447
+ }
448
+ const config = configManager.getConfig();
449
+ const taskboardId = parseOption(args, '--taskboard') || config.sync.taskboard_id;
450
+ if (!taskboardId) {
451
+ console.error('āŒ No taskboard ID specified.');
452
+ console.error('Either set taskboard_id in .commander/config.json or use --taskboard <id>');
453
+ process.exit(1);
454
+ }
455
+ const apiKey = process.env.WAYMAKER_API_KEY;
456
+ if (!apiKey) {
457
+ console.error('āŒ WAYMAKER_API_KEY environment variable not set.');
458
+ process.exit(1);
459
+ }
460
+ const appsUrl = process.env.WAYMAKER_APPS_URL || 'https://apps.waymakerone.com';
461
+ const layerFilter = parseOption(args, '--layer');
462
+ const maxTasks = parseInt(parseOption(args, '--max') || '10', 10);
463
+ // const compact = args.includes('--compact'); // Reserved for future use
464
+ console.log('\nšŸ“‹ Fetching Kanban board...\n');
465
+ // Fetch tasks from taskboard
466
+ const response = await fetch(`${appsUrl}/functions/v1/commander-taskboard-tasks`, {
467
+ method: 'POST',
468
+ headers: {
469
+ 'Authorization': `Bearer ${apiKey}`,
470
+ 'Content-Type': 'application/json',
471
+ },
472
+ body: JSON.stringify({
473
+ taskboard_id: taskboardId,
474
+ }),
475
+ });
476
+ if (!response.ok) {
477
+ console.error('āŒ Failed to fetch taskboard:', response.status, await response.text());
478
+ process.exit(1);
479
+ }
480
+ const result = await response.json();
481
+ if (!result.success) {
482
+ console.error('āŒ Error:', result.error);
483
+ process.exit(1);
484
+ }
485
+ const { board, status_sections, tasks, layers } = result.data;
486
+ // Filter tasks by layer if specified
487
+ let filteredTasks = tasks;
488
+ let layerName = null;
489
+ if (layerFilter) {
490
+ const layer = layers.find((l) => l.id === layerFilter || l.name.toLowerCase() === layerFilter.toLowerCase());
491
+ if (layer) {
492
+ filteredTasks = filteredTasks.filter((t) => t.layer_id === layer.id);
493
+ layerName = layer.name;
494
+ }
495
+ }
496
+ // Group tasks by status section
497
+ const tasksBySection = new Map();
498
+ for (const section of status_sections) {
499
+ tasksBySection.set(section.id, []);
500
+ }
501
+ for (const task of filteredTasks) {
502
+ const sectionTasks = tasksBySection.get(task.status_section_id);
503
+ if (sectionTasks) {
504
+ sectionTasks.push(task);
505
+ }
506
+ }
507
+ // Sort sections by position
508
+ const sortedSections = [...status_sections].sort((a, b) => a.position - b.position);
509
+ // Print board
510
+ console.log(`šŸ“‹ ${board.name}${layerName ? ` (${layerName})` : ''}`);
511
+ console.log('─'.repeat(60));
512
+ for (const section of sortedSections) {
513
+ const sectionTasks = tasksBySection.get(section.id) || [];
514
+ const icon = section.is_completed ? 'āœ…' : 'šŸ“Œ';
515
+ console.log(`\n${icon} ${section.name} (${sectionTasks.length})`);
516
+ const displayTasks = sectionTasks.slice(0, maxTasks);
517
+ for (const task of displayTasks) {
518
+ const priority = getPriorityIcon(task.priority);
519
+ const checkbox = task.is_completed ? 'ā˜‘' : '☐';
520
+ console.log(` ${checkbox} ${priority} ${task.name}`);
521
+ }
522
+ if (sectionTasks.length > maxTasks) {
523
+ console.log(` ... +${sectionTasks.length - maxTasks} more`);
524
+ }
525
+ }
526
+ // Summary
527
+ const totalTasks = filteredTasks.length;
528
+ const completedTasks = sortedSections
529
+ .filter((s) => s.is_completed)
530
+ .reduce((sum, s) => sum + (tasksBySection.get(s.id)?.length || 0), 0);
531
+ console.log('\n─'.repeat(60));
532
+ console.log(`Total: ${totalTasks} tasks | Completed: ${completedTasks} | Open: ${totalTasks - completedTasks}`);
533
+ console.log();
534
+ }
535
+ /**
536
+ * Get priority icon for CLI display
537
+ */
538
+ function getPriorityIcon(priority) {
539
+ switch (priority) {
540
+ case 1: return 'šŸ”“';
541
+ case 2: return '🟠';
542
+ case 3: return '🟔';
543
+ case 4: return '🟢';
544
+ default: return '⚪';
545
+ }
546
+ }
547
+ /**
548
+ * Sync all existing files command
549
+ */
550
+ async function syncAllCommand(projectPath, args) {
551
+ console.log('\nšŸ”„ Waymaker Sync - Initial File Scan\n');
552
+ // Check for config
553
+ const configManager = new ConfigManager(projectPath);
554
+ if (!configManager.exists()) {
555
+ console.error('āŒ No Waymaker Sync configuration found.');
556
+ console.error('Run `waymaker sync init` first to configure sync.');
557
+ process.exit(1);
558
+ }
559
+ const apiKey = process.env.WAYMAKER_API_KEY;
560
+ if (!apiKey) {
561
+ console.error('āŒ WAYMAKER_API_KEY environment variable not set.');
562
+ process.exit(1);
563
+ }
564
+ const dryRun = args.includes('--dry-run');
565
+ const force = args.includes('--force');
566
+ const batchSize = parseInt(parseOption(args, '--batch-size') || '50', 10);
567
+ const concurrency = parseInt(parseOption(args, '--concurrency') || '5', 10);
568
+ console.log('Options:');
569
+ console.log(` Batch Size: ${batchSize}`);
570
+ console.log(` Concurrency: ${concurrency}`);
571
+ console.log(` Dry Run: ${dryRun ? 'Yes' : 'No'}`);
572
+ console.log(` Force: ${force ? 'Yes' : 'No'}`);
573
+ console.log();
574
+ // Create and initialize sync engine
575
+ const engine = new SyncEngine(projectPath);
576
+ await engine.initialize();
577
+ // Set up progress listener
578
+ engine.on('sync-progress', (progress) => {
579
+ const percent = Math.round((progress.processed / progress.total) * 100);
580
+ process.stdout.write(`\r Progress: ${progress.processed}/${progress.total} (${percent}%) - Synced: ${progress.synced}, Skipped: ${progress.skipped}, Failed: ${progress.failed}`);
581
+ });
582
+ console.log('Starting scan...\n');
583
+ const result = await engine.syncAll({
584
+ batchSize,
585
+ concurrency,
586
+ dryRun,
587
+ force,
588
+ });
589
+ console.log('\n\nāœ… Initial scan complete!\n');
590
+ console.log('Results:');
591
+ console.log(` Total Files: ${result.totalFiles}`);
592
+ console.log(` Synced: ${result.synced}`);
593
+ console.log(` Skipped: ${result.skipped}`);
594
+ console.log(` Failed: ${result.failed}`);
595
+ console.log(` Duration: ${(result.duration / 1000).toFixed(2)}s`);
596
+ if (result.errors.length > 0) {
597
+ console.log('\nErrors:');
598
+ for (const error of result.errors.slice(0, 10)) {
599
+ console.log(` āŒ ${error.filePath}`);
600
+ console.log(` ${error.error}`);
601
+ }
602
+ if (result.errors.length > 10) {
603
+ console.log(` ... and ${result.errors.length - 10} more errors`);
604
+ }
605
+ }
606
+ console.log();
607
+ }
608
+ /**
609
+ * Print layer command help
610
+ */
611
+ function printLayerHelp() {
612
+ console.log(`
613
+ Waymaker Sync - Layer Management
614
+
615
+ Usage:
616
+ waymaker sync layer <command> [options]
617
+
618
+ Commands:
619
+ list List all layers on the taskboard
620
+ create Create a new layer
621
+ delete Delete a layer
622
+
623
+ Examples:
624
+ # List all layers
625
+ waymaker sync layer list
626
+
627
+ # Create a top-level layer
628
+ waymaker sync layer create "Taskboards"
629
+
630
+ # Create a child layer (sprint under product)
631
+ waymaker sync layer create "Sprint 1" --parent "Taskboards"
632
+
633
+ # Create with dates
634
+ waymaker sync layer create "Sprint 2" --parent "Taskboards" \\
635
+ --start-date 2026-02-01 --end-date 2026-02-14
636
+
637
+ # Delete a layer by path
638
+ waymaker sync layer delete "Taskboards/Sprint 1"
639
+
640
+ Options:
641
+ --taskboard <id> Taskboard ID (uses config if not specified)
642
+ --parent <path> Parent layer path for hierarchical layers
643
+ --description <text> Layer description
644
+ --start-date <date> Start date (YYYY-MM-DD)
645
+ --end-date <date> End date (YYYY-MM-DD)
646
+ `);
647
+ }
648
+ /**
649
+ * Print help message
650
+ */
651
+ function printHelp() {
652
+ console.log(`
653
+ Waymaker Sync - IDE ↔ Commander Bridge
654
+
655
+ Usage:
656
+ waymaker sync <command> [options]
657
+
658
+ Commands:
659
+ start Start sync daemon
660
+ stop Stop sync daemon
661
+ status Show sync daemon status
662
+ init Initialize configuration
663
+ layer Manage taskboard layers (list, create, delete)
664
+ kanban Display Kanban board in terminal
665
+ sync-all Sync all existing files (initial scan)
666
+
667
+ Examples:
668
+ # Initialize configuration
669
+ waymaker sync init \\
670
+ --workspace-id <uuid> \\
671
+ --project-id <uuid> \\
672
+ --organization-id <org-id> \\
673
+ --taskboard-id <uuid>
674
+
675
+ # Start sync daemon
676
+ waymaker sync start
677
+
678
+ # Check status
679
+ waymaker sync status
680
+
681
+ # Stop daemon
682
+ waymaker sync stop
683
+
684
+ # Display Kanban board
685
+ waymaker sync kanban
686
+ waymaker sync kanban --layer "Sprint 1"
687
+
688
+ # Initial sync of all files
689
+ waymaker sync sync-all
690
+ waymaker sync sync-all --dry-run
691
+ waymaker sync sync-all --force --batch-size 100
692
+
693
+ Environment Variables:
694
+ WAYMAKER_API_KEY API key for Commander access
695
+ WAYMAKER_APPS_URL Supabase apps URL (optional)
696
+
697
+ For more information, visit:
698
+ https://docs.waymakerone.com/waymaker-sync
699
+ `);
700
+ }
701
+ // Run CLI
702
+ main();
703
+ //# sourceMappingURL=cli.js.map