zyflow 0.6.4

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 (705) hide show
  1. package/.claude-flow/metrics/agent-metrics.json +1 -0
  2. package/.claude-flow/metrics/performance.json +87 -0
  3. package/.claude-flow/metrics/system-metrics.json +4370 -0
  4. package/.claude-flow/metrics/task-metrics.json +10 -0
  5. package/.claude-plugin/marketplace.json +18 -0
  6. package/.claude-plugin/plugin.json +17 -0
  7. package/.gitleaks.toml +69 -0
  8. package/.hive-mind/config/queens.json +59 -0
  9. package/.hive-mind/config/workers.json +72 -0
  10. package/.hive-mind/config.json +111 -0
  11. package/.hive-mind/hive.db +0 -0
  12. package/.hive-mind/hive.db-shm +0 -0
  13. package/.hive-mind/hive.db-wal +0 -0
  14. package/.leann/indexes/zyflow/documents.ids.txt +2078 -0
  15. package/.leann/indexes/zyflow/documents.index +0 -0
  16. package/.leann/indexes/zyflow/documents.leann.meta.json +25 -0
  17. package/.leann/indexes/zyflow/documents.leann.passages.idx +0 -0
  18. package/.leann/indexes/zyflow/documents.leann.passages.jsonl +2078 -0
  19. package/.mcp.json +41 -0
  20. package/.moai-backups/20260126_231508/.mcp.json +11 -0
  21. package/.moai-backups/20260126_231508/backup_metadata.json +34 -0
  22. package/.moai-backups/20260129_145438/.mcp.json +41 -0
  23. package/.moai-backups/20260129_145438/backup_metadata.json +53 -0
  24. package/.moai-backups/20260129_145504/.mcp.json +41 -0
  25. package/.moai-backups/20260129_145504/backup_metadata.json +20 -0
  26. package/.moai-backups/20260201_140004/.mcp.json +41 -0
  27. package/.moai-backups/20260201_140004/backup_metadata.json +51 -0
  28. package/.moai-backups/backup/.mcp.json +12 -0
  29. package/.moai-backups/settings-backup/settings.local.json +61 -0
  30. package/.pre-commit-config.yaml +74 -0
  31. package/.prettierignore +3 -0
  32. package/.prettierrc +7 -0
  33. package/.scannerwork/.sonar_lock +0 -0
  34. package/.scannerwork/report-task.txt +6 -0
  35. package/.serena/project.yml +105 -0
  36. package/.shadcn-admin-ref/.env.example +1 -0
  37. package/.shadcn-admin-ref/.prettierignore +18 -0
  38. package/.shadcn-admin-ref/.prettierrc +50 -0
  39. package/.shadcn-admin-ref/LICENSE +21 -0
  40. package/.shadcn-admin-ref/components.json +21 -0
  41. package/.shadcn-admin-ref/cz.yaml +7 -0
  42. package/.shadcn-admin-ref/eslint.config.js +59 -0
  43. package/.shadcn-admin-ref/index.html +80 -0
  44. package/.shadcn-admin-ref/knip.config.ts +8 -0
  45. package/.shadcn-admin-ref/netlify.toml +4 -0
  46. package/.shadcn-admin-ref/package.json +83 -0
  47. package/.shadcn-admin-ref/public/images/favicon.png +0 -0
  48. package/.shadcn-admin-ref/public/images/favicon.svg +4 -0
  49. package/.shadcn-admin-ref/public/images/favicon_light.png +0 -0
  50. package/.shadcn-admin-ref/public/images/favicon_light.svg +1 -0
  51. package/.shadcn-admin-ref/public/images/shadcn-admin.png +0 -0
  52. package/.shadcn-admin-ref/src/assets/brand-icons/icon-discord.tsx +28 -0
  53. package/.shadcn-admin-ref/src/assets/brand-icons/icon-docker.tsx +33 -0
  54. package/.shadcn-admin-ref/src/assets/brand-icons/icon-facebook.tsx +25 -0
  55. package/.shadcn-admin-ref/src/assets/brand-icons/icon-figma.tsx +27 -0
  56. package/.shadcn-admin-ref/src/assets/brand-icons/icon-github.tsx +25 -0
  57. package/.shadcn-admin-ref/src/assets/brand-icons/icon-gitlab.tsx +25 -0
  58. package/.shadcn-admin-ref/src/assets/brand-icons/icon-gmail.tsx +28 -0
  59. package/.shadcn-admin-ref/src/assets/brand-icons/icon-medium.tsx +30 -0
  60. package/.shadcn-admin-ref/src/assets/brand-icons/icon-notion.tsx +28 -0
  61. package/.shadcn-admin-ref/src/assets/brand-icons/icon-skype.tsx +26 -0
  62. package/.shadcn-admin-ref/src/assets/brand-icons/icon-slack.tsx +28 -0
  63. package/.shadcn-admin-ref/src/assets/brand-icons/icon-stripe.tsx +25 -0
  64. package/.shadcn-admin-ref/src/assets/brand-icons/icon-telegram.tsx +25 -0
  65. package/.shadcn-admin-ref/src/assets/brand-icons/icon-trello.tsx +27 -0
  66. package/.shadcn-admin-ref/src/assets/brand-icons/icon-whatsapp.tsx +26 -0
  67. package/.shadcn-admin-ref/src/assets/brand-icons/icon-zoom.tsx +26 -0
  68. package/.shadcn-admin-ref/src/assets/brand-icons/index.ts +16 -0
  69. package/.shadcn-admin-ref/src/assets/clerk-full-logo.tsx +41 -0
  70. package/.shadcn-admin-ref/src/assets/clerk-logo.tsx +23 -0
  71. package/.shadcn-admin-ref/src/assets/custom/icon-dir.tsx +110 -0
  72. package/.shadcn-admin-ref/src/assets/custom/icon-layout-compact.tsx +131 -0
  73. package/.shadcn-admin-ref/src/assets/custom/icon-layout-default.tsx +124 -0
  74. package/.shadcn-admin-ref/src/assets/custom/icon-layout-full.tsx +100 -0
  75. package/.shadcn-admin-ref/src/assets/custom/icon-sidebar-floating.tsx +82 -0
  76. package/.shadcn-admin-ref/src/assets/custom/icon-sidebar-inset.tsx +58 -0
  77. package/.shadcn-admin-ref/src/assets/custom/icon-sidebar-sidebar.tsx +53 -0
  78. package/.shadcn-admin-ref/src/assets/custom/icon-theme-dark.tsx +79 -0
  79. package/.shadcn-admin-ref/src/assets/custom/icon-theme-light.tsx +78 -0
  80. package/.shadcn-admin-ref/src/assets/custom/icon-theme-system.tsx +116 -0
  81. package/.shadcn-admin-ref/src/assets/logo.tsx +24 -0
  82. package/.shadcn-admin-ref/src/components/coming-soon.tsx +16 -0
  83. package/.shadcn-admin-ref/src/components/command-menu.tsx +91 -0
  84. package/.shadcn-admin-ref/src/components/config-drawer.tsx +354 -0
  85. package/.shadcn-admin-ref/src/components/confirm-dialog.tsx +67 -0
  86. package/.shadcn-admin-ref/src/components/data-table/bulk-actions.tsx +213 -0
  87. package/.shadcn-admin-ref/src/components/data-table/column-header.tsx +74 -0
  88. package/.shadcn-admin-ref/src/components/data-table/faceted-filter.tsx +146 -0
  89. package/.shadcn-admin-ref/src/components/data-table/index.ts +6 -0
  90. package/.shadcn-admin-ref/src/components/data-table/pagination.tsx +130 -0
  91. package/.shadcn-admin-ref/src/components/data-table/toolbar.tsx +85 -0
  92. package/.shadcn-admin-ref/src/components/data-table/view-options.tsx +56 -0
  93. package/.shadcn-admin-ref/src/components/date-picker.tsx +51 -0
  94. package/.shadcn-admin-ref/src/components/layout/app-sidebar.tsx +37 -0
  95. package/.shadcn-admin-ref/src/components/layout/app-title.tsx +64 -0
  96. package/.shadcn-admin-ref/src/components/layout/authenticated-layout.tsx +42 -0
  97. package/.shadcn-admin-ref/src/components/layout/data/sidebar-data.ts +205 -0
  98. package/.shadcn-admin-ref/src/components/layout/header.tsx +50 -0
  99. package/.shadcn-admin-ref/src/components/layout/main.tsx +27 -0
  100. package/.shadcn-admin-ref/src/components/layout/nav-group.tsx +185 -0
  101. package/.shadcn-admin-ref/src/components/layout/nav-user.tsx +124 -0
  102. package/.shadcn-admin-ref/src/components/layout/team-switcher.tsx +86 -0
  103. package/.shadcn-admin-ref/src/components/layout/top-nav.tsx +67 -0
  104. package/.shadcn-admin-ref/src/components/layout/types.ts +44 -0
  105. package/.shadcn-admin-ref/src/components/learn-more.tsx +44 -0
  106. package/.shadcn-admin-ref/src/components/long-text.tsx +84 -0
  107. package/.shadcn-admin-ref/src/components/navigation-progress.tsx +25 -0
  108. package/.shadcn-admin-ref/src/components/password-input.tsx +42 -0
  109. package/.shadcn-admin-ref/src/components/profile-dropdown.tsx +75 -0
  110. package/.shadcn-admin-ref/src/components/search.tsx +37 -0
  111. package/.shadcn-admin-ref/src/components/select-dropdown.tsx +62 -0
  112. package/.shadcn-admin-ref/src/components/sign-out-dialog.tsx +38 -0
  113. package/.shadcn-admin-ref/src/components/skip-to-main.tsx +10 -0
  114. package/.shadcn-admin-ref/src/components/theme-switch.tsx +58 -0
  115. package/.shadcn-admin-ref/src/components/ui/alert-dialog.tsx +154 -0
  116. package/.shadcn-admin-ref/src/components/ui/alert.tsx +65 -0
  117. package/.shadcn-admin-ref/src/components/ui/avatar.tsx +50 -0
  118. package/.shadcn-admin-ref/src/components/ui/badge.tsx +45 -0
  119. package/.shadcn-admin-ref/src/components/ui/button.tsx +58 -0
  120. package/.shadcn-admin-ref/src/components/ui/calendar.tsx +210 -0
  121. package/.shadcn-admin-ref/src/components/ui/card.tsx +91 -0
  122. package/.shadcn-admin-ref/src/components/ui/checkbox.tsx +29 -0
  123. package/.shadcn-admin-ref/src/components/ui/collapsible.tsx +31 -0
  124. package/.shadcn-admin-ref/src/components/ui/command.tsx +181 -0
  125. package/.shadcn-admin-ref/src/components/ui/dialog.tsx +142 -0
  126. package/.shadcn-admin-ref/src/components/ui/dropdown-menu.tsx +254 -0
  127. package/.shadcn-admin-ref/src/components/ui/form.tsx +164 -0
  128. package/.shadcn-admin-ref/src/components/ui/input-otp.tsx +74 -0
  129. package/.shadcn-admin-ref/src/components/ui/input.tsx +20 -0
  130. package/.shadcn-admin-ref/src/components/ui/label.tsx +23 -0
  131. package/.shadcn-admin-ref/src/components/ui/popover.tsx +45 -0
  132. package/.shadcn-admin-ref/src/components/ui/radio-group.tsx +42 -0
  133. package/.shadcn-admin-ref/src/components/ui/scroll-area.tsx +65 -0
  134. package/.shadcn-admin-ref/src/components/ui/select.tsx +182 -0
  135. package/.shadcn-admin-ref/src/components/ui/separator.tsx +25 -0
  136. package/.shadcn-admin-ref/src/components/ui/sheet.tsx +136 -0
  137. package/.shadcn-admin-ref/src/components/ui/sidebar.tsx +728 -0
  138. package/.shadcn-admin-ref/src/components/ui/skeleton.tsx +13 -0
  139. package/.shadcn-admin-ref/src/components/ui/sonner.tsx +21 -0
  140. package/.shadcn-admin-ref/src/components/ui/switch.tsx +28 -0
  141. package/.shadcn-admin-ref/src/components/ui/table.tsx +113 -0
  142. package/.shadcn-admin-ref/src/components/ui/tabs.tsx +63 -0
  143. package/.shadcn-admin-ref/src/components/ui/textarea.tsx +17 -0
  144. package/.shadcn-admin-ref/src/components/ui/tooltip.tsx +60 -0
  145. package/.shadcn-admin-ref/src/config/fonts.ts +19 -0
  146. package/.shadcn-admin-ref/src/context/direction-provider.tsx +61 -0
  147. package/.shadcn-admin-ref/src/context/font-provider.tsx +58 -0
  148. package/.shadcn-admin-ref/src/context/layout-provider.tsx +85 -0
  149. package/.shadcn-admin-ref/src/context/search-provider.tsx +46 -0
  150. package/.shadcn-admin-ref/src/context/theme-provider.tsx +110 -0
  151. package/.shadcn-admin-ref/src/features/apps/data/apps.tsx +110 -0
  152. package/.shadcn-admin-ref/src/features/apps/index.tsx +179 -0
  153. package/.shadcn-admin-ref/src/features/auth/auth-layout.tsx +19 -0
  154. package/.shadcn-admin-ref/src/features/auth/forgot-password/components/forgot-password-form.tsx +82 -0
  155. package/.shadcn-admin-ref/src/features/auth/forgot-password/index.tsx +44 -0
  156. package/.shadcn-admin-ref/src/features/auth/otp/components/otp-form.tsx +100 -0
  157. package/.shadcn-admin-ref/src/features/auth/otp/index.tsx +44 -0
  158. package/.shadcn-admin-ref/src/features/auth/sign-in/assets/dashboard-dark.png +0 -0
  159. package/.shadcn-admin-ref/src/features/auth/sign-in/assets/dashboard-light.png +0 -0
  160. package/.shadcn-admin-ref/src/features/auth/sign-in/components/user-auth-form.tsx +150 -0
  161. package/.shadcn-admin-ref/src/features/auth/sign-in/index.tsx +51 -0
  162. package/.shadcn-admin-ref/src/features/auth/sign-in/sign-in-2.tsx +69 -0
  163. package/.shadcn-admin-ref/src/features/auth/sign-up/components/sign-up-form.tsx +143 -0
  164. package/.shadcn-admin-ref/src/features/auth/sign-up/index.tsx +57 -0
  165. package/.shadcn-admin-ref/src/features/chats/components/new-chat.tsx +127 -0
  166. package/.shadcn-admin-ref/src/features/chats/data/chat-types.ts +4 -0
  167. package/.shadcn-admin-ref/src/features/chats/data/convo.json +309 -0
  168. package/.shadcn-admin-ref/src/features/chats/index.tsx +349 -0
  169. package/.shadcn-admin-ref/src/features/dashboard/components/analytics-chart.tsx +77 -0
  170. package/.shadcn-admin-ref/src/features/dashboard/components/analytics.tsx +189 -0
  171. package/.shadcn-admin-ref/src/features/dashboard/components/overview.tsx +82 -0
  172. package/.shadcn-admin-ref/src/features/dashboard/components/recent-sales.tsx +83 -0
  173. package/.shadcn-admin-ref/src/features/dashboard/index.tsx +220 -0
  174. package/.shadcn-admin-ref/src/features/errors/forbidden.tsx +25 -0
  175. package/.shadcn-admin-ref/src/features/errors/general-error.tsx +36 -0
  176. package/.shadcn-admin-ref/src/features/errors/maintenance-error.tsx +19 -0
  177. package/.shadcn-admin-ref/src/features/errors/not-found-error.tsx +25 -0
  178. package/.shadcn-admin-ref/src/features/errors/unauthorized-error.tsx +25 -0
  179. package/.shadcn-admin-ref/src/features/settings/account/account-form.tsx +173 -0
  180. package/.shadcn-admin-ref/src/features/settings/account/index.tsx +14 -0
  181. package/.shadcn-admin-ref/src/features/settings/appearance/appearance-form.tsx +162 -0
  182. package/.shadcn-admin-ref/src/features/settings/appearance/index.tsx +14 -0
  183. package/.shadcn-admin-ref/src/features/settings/components/content-section.tsx +22 -0
  184. package/.shadcn-admin-ref/src/features/settings/components/sidebar-nav.tsx +84 -0
  185. package/.shadcn-admin-ref/src/features/settings/display/display-form.tsx +121 -0
  186. package/.shadcn-admin-ref/src/features/settings/display/index.tsx +13 -0
  187. package/.shadcn-admin-ref/src/features/settings/index.tsx +74 -0
  188. package/.shadcn-admin-ref/src/features/settings/notifications/index.tsx +13 -0
  189. package/.shadcn-admin-ref/src/features/settings/notifications/notifications-form.tsx +220 -0
  190. package/.shadcn-admin-ref/src/features/settings/profile/index.tsx +13 -0
  191. package/.shadcn-admin-ref/src/features/settings/profile/profile-form.tsx +177 -0
  192. package/.shadcn-admin-ref/src/features/tasks/components/data-table-bulk-actions.tsx +193 -0
  193. package/.shadcn-admin-ref/src/features/tasks/components/data-table-row-actions.tsx +83 -0
  194. package/.shadcn-admin-ref/src/features/tasks/components/tasks-columns.tsx +123 -0
  195. package/.shadcn-admin-ref/src/features/tasks/components/tasks-dialogs.tsx +72 -0
  196. package/.shadcn-admin-ref/src/features/tasks/components/tasks-import-dialog.tsx +110 -0
  197. package/.shadcn-admin-ref/src/features/tasks/components/tasks-multi-delete-dialog.tsx +95 -0
  198. package/.shadcn-admin-ref/src/features/tasks/components/tasks-mutate-drawer.tsx +212 -0
  199. package/.shadcn-admin-ref/src/features/tasks/components/tasks-primary-buttons.tsx +21 -0
  200. package/.shadcn-admin-ref/src/features/tasks/components/tasks-provider.tsx +36 -0
  201. package/.shadcn-admin-ref/src/features/tasks/components/tasks-table.tsx +197 -0
  202. package/.shadcn-admin-ref/src/features/tasks/data/data.tsx +77 -0
  203. package/.shadcn-admin-ref/src/features/tasks/data/schema.ts +13 -0
  204. package/.shadcn-admin-ref/src/features/tasks/data/tasks.ts +29 -0
  205. package/.shadcn-admin-ref/src/features/tasks/index.tsx +41 -0
  206. package/.shadcn-admin-ref/src/features/users/components/data-table-bulk-actions.tsx +139 -0
  207. package/.shadcn-admin-ref/src/features/users/components/data-table-row-actions.tsx +63 -0
  208. package/.shadcn-admin-ref/src/features/users/components/users-action-dialog.tsx +326 -0
  209. package/.shadcn-admin-ref/src/features/users/components/users-columns.tsx +138 -0
  210. package/.shadcn-admin-ref/src/features/users/components/users-delete-dialog.tsx +81 -0
  211. package/.shadcn-admin-ref/src/features/users/components/users-dialogs.tsx +51 -0
  212. package/.shadcn-admin-ref/src/features/users/components/users-invite-dialog.tsx +150 -0
  213. package/.shadcn-admin-ref/src/features/users/components/users-multi-delete-dialog.tsx +95 -0
  214. package/.shadcn-admin-ref/src/features/users/components/users-primary-buttons.tsx +21 -0
  215. package/.shadcn-admin-ref/src/features/users/components/users-provider.tsx +36 -0
  216. package/.shadcn-admin-ref/src/features/users/components/users-table.tsx +194 -0
  217. package/.shadcn-admin-ref/src/features/users/data/data.ts +35 -0
  218. package/.shadcn-admin-ref/src/features/users/data/schema.ts +32 -0
  219. package/.shadcn-admin-ref/src/features/users/data/users.ts +33 -0
  220. package/.shadcn-admin-ref/src/features/users/index.tsx +47 -0
  221. package/.shadcn-admin-ref/src/hooks/use-dialog-state.tsx +18 -0
  222. package/.shadcn-admin-ref/src/hooks/use-mobile.tsx +19 -0
  223. package/.shadcn-admin-ref/src/hooks/use-table-url-state.ts +219 -0
  224. package/.shadcn-admin-ref/src/lib/cookies.ts +43 -0
  225. package/.shadcn-admin-ref/src/lib/handle-server-error.ts +24 -0
  226. package/.shadcn-admin-ref/src/lib/show-submitted-data.tsx +15 -0
  227. package/.shadcn-admin-ref/src/lib/utils.ts +60 -0
  228. package/.shadcn-admin-ref/src/main.tsx +107 -0
  229. package/.shadcn-admin-ref/src/routeTree.gen.ts +719 -0
  230. package/.shadcn-admin-ref/src/routes/(auth)/forgot-password.tsx +6 -0
  231. package/.shadcn-admin-ref/src/routes/(auth)/otp.tsx +6 -0
  232. package/.shadcn-admin-ref/src/routes/(auth)/sign-in-2.tsx +6 -0
  233. package/.shadcn-admin-ref/src/routes/(auth)/sign-in.tsx +12 -0
  234. package/.shadcn-admin-ref/src/routes/(auth)/sign-up.tsx +6 -0
  235. package/.shadcn-admin-ref/src/routes/(errors)/401.tsx +6 -0
  236. package/.shadcn-admin-ref/src/routes/(errors)/403.tsx +6 -0
  237. package/.shadcn-admin-ref/src/routes/(errors)/404.tsx +6 -0
  238. package/.shadcn-admin-ref/src/routes/(errors)/500.tsx +6 -0
  239. package/.shadcn-admin-ref/src/routes/(errors)/503.tsx +6 -0
  240. package/.shadcn-admin-ref/src/routes/__root.tsx +30 -0
  241. package/.shadcn-admin-ref/src/routes/_authenticated/apps/index.tsx +17 -0
  242. package/.shadcn-admin-ref/src/routes/_authenticated/chats/index.tsx +6 -0
  243. package/.shadcn-admin-ref/src/routes/_authenticated/errors/$error.tsx +45 -0
  244. package/.shadcn-admin-ref/src/routes/_authenticated/help-center/index.tsx +6 -0
  245. package/.shadcn-admin-ref/src/routes/_authenticated/index.tsx +6 -0
  246. package/.shadcn-admin-ref/src/routes/_authenticated/route.tsx +6 -0
  247. package/.shadcn-admin-ref/src/routes/_authenticated/settings/account.tsx +6 -0
  248. package/.shadcn-admin-ref/src/routes/_authenticated/settings/appearance.tsx +6 -0
  249. package/.shadcn-admin-ref/src/routes/_authenticated/settings/display.tsx +6 -0
  250. package/.shadcn-admin-ref/src/routes/_authenticated/settings/index.tsx +6 -0
  251. package/.shadcn-admin-ref/src/routes/_authenticated/settings/notifications.tsx +6 -0
  252. package/.shadcn-admin-ref/src/routes/_authenticated/settings/route.tsx +6 -0
  253. package/.shadcn-admin-ref/src/routes/_authenticated/tasks/index.tsx +23 -0
  254. package/.shadcn-admin-ref/src/routes/_authenticated/users/index.tsx +32 -0
  255. package/.shadcn-admin-ref/src/routes/clerk/(auth)/route.tsx +60 -0
  256. package/.shadcn-admin-ref/src/routes/clerk/(auth)/sign-in.tsx +14 -0
  257. package/.shadcn-admin-ref/src/routes/clerk/(auth)/sign-up.tsx +9 -0
  258. package/.shadcn-admin-ref/src/routes/clerk/_authenticated/route.tsx +6 -0
  259. package/.shadcn-admin-ref/src/routes/clerk/_authenticated/user-management.tsx +184 -0
  260. package/.shadcn-admin-ref/src/routes/clerk/route.tsx +135 -0
  261. package/.shadcn-admin-ref/src/stores/auth-store.ts +53 -0
  262. package/.shadcn-admin-ref/src/styles/index.css +87 -0
  263. package/.shadcn-admin-ref/src/styles/theme.css +102 -0
  264. package/.shadcn-admin-ref/src/tanstack-table.d.ts +10 -0
  265. package/.shadcn-admin-ref/src/vite-env.d.ts +1 -0
  266. package/.swarm/memory.db +0 -0
  267. package/.swarm/memory.db-shm +0 -0
  268. package/.swarm/memory.db-wal +0 -0
  269. package/.zyflow/cli-settings.json +30 -0
  270. package/.zyflow/db.sqlite +0 -0
  271. package/.zyflow/logs/add-gitdiagram-integration/1633-1765491505852.json +10 -0
  272. package/.zyflow/logs/add-gitdiagram-integration/1633-1765491622627.json +10 -0
  273. package/.zyflow/logs/add-gitdiagram-integration/1633-1765491794652.json +10 -0
  274. package/.zyflow/logs/add-gitdiagram-integration/1633-1765491890392.json +10 -0
  275. package/.zyflow/logs/add-gitdiagram-integration/1633-1765494002879.json +10 -0
  276. package/.zyflow/logs/add-gitdiagram-integration/1633-1765494183887.json +10 -0
  277. package/.zyflow/logs/add-gitdiagram-integration/1633-1765494342052.json +10 -0
  278. package/.zyflow/logs/add-gitdiagram-integration/1633-1765494387244.json +10 -0
  279. package/.zyflow/logs/add-gitdiagram-integration/1633-1765494387245.json +10 -0
  280. package/.zyflow/logs/add-gitdiagram-integration/1633-1765494606176.json +10 -0
  281. package/.zyflow/logs/add-gitdiagram-integration/1633-1765495967542.json +16 -0
  282. package/.zyflow/logs/add-gitdiagram-integration/1633-1765495967629.json +16 -0
  283. package/.zyflow/logs/add-gitdiagram-integration/1633-1765497861143.json +16 -0
  284. package/.zyflow/logs/add-gitdiagram-integration/1633-1765497861870.json +20 -0
  285. package/.zyflow/logs/add-gitdiagram-integration/1633-1765498021377.json +18 -0
  286. package/.zyflow/logs/add-gitdiagram-integration/1633-1765498021660.json +18 -0
  287. package/.zyflow/logs/add-gitdiagram-integration/1633-1765503255525.json +13 -0
  288. package/.zyflow/logs/add-gitdiagram-integration/1633-1765503256018.json +13 -0
  289. package/.zyflow/logs/add-gitdiagram-integration/1633-1765504009102.json +16 -0
  290. package/.zyflow/logs/add-gitdiagram-integration/1633-1765504492051.json +18 -0
  291. package/.zyflow/logs/add-gitdiagram-integration/1633-1765504946437.json +16 -0
  292. package/.zyflow/logs/add-gitdiagram-integration/1633-1765504946640.json +16 -0
  293. package/.zyflow/logs/add-gitdiagram-integration/1634-1765505950215.json +16 -0
  294. package/.zyflow/logs/add-gitdiagram-integration/1634-1765505950948.json +18 -0
  295. package/.zyflow/logs/add-gitdiagram-integration/1635-1765505971712.json +18 -0
  296. package/.zyflow/logs/add-gitdiagram-integration/1635-1765505971976.json +18 -0
  297. package/.zyflow/logs/add-gitdiagram-integration/1636-1765505986208.json +18 -0
  298. package/.zyflow/logs/add-gitdiagram-integration/1636-1765505986620.json +16 -0
  299. package/.zyflow/logs/integrate-claude-flow/3580-1765996816612.json +10 -0
  300. package/.zyflow/logs/integrate-claude-flow/3580-1766014825819.json +10 -0
  301. package/.zyflow/logs/integrate-claude-flow/3580-1766015183794.json +12 -0
  302. package/.zyflow/logs/integrate-claude-flow/3580-1766015474608.json +12 -0
  303. package/.zyflow/logs/integrate-claude-flow/3581-1766016502824.json +63 -0
  304. package/.zyflow/logs/integrate-claude-flow/3581-1766016576008.json +60 -0
  305. package/.zyflow/logs/integrate-claude-flow/3582-1766022737754.json +110 -0
  306. package/.zyflow/logs/integrate-claude-flow/3582-1766022809327.json +135 -0
  307. package/.zyflow/sessions.json +242 -0
  308. package/.zyflow/settings.json +6 -0
  309. package/.zyflow/tasks.db +0 -0
  310. package/.zyflow/tasks.db-shm +0 -0
  311. package/.zyflow/tasks.db-wal +0 -0
  312. package/.zyflow/zyflow.sqlite +0 -0
  313. package/Dockerfile +82 -0
  314. package/LICENSE +21 -0
  315. package/README.md +506 -0
  316. package/claude-flow +34 -0
  317. package/components.json +21 -0
  318. package/config/ports.ts +28 -0
  319. package/docker-compose.yml +52 -0
  320. package/eslint.config.js +34 -0
  321. package/index.html +19 -0
  322. package/logs/mcp-error.log +55 -0
  323. package/logs/mcp-out.log +0 -0
  324. package/logs/pm2-error.log +0 -0
  325. package/logs/pm2-out.log +265 -0
  326. package/logs/py-error.log +22 -0
  327. package/logs/py-out.log +0 -0
  328. package/logs/server-error.log +11000 -0
  329. package/logs/server-out.log +8117 -0
  330. package/logs/vite-error.log +404 -0
  331. package/logs/vite-out.log +311 -0
  332. package/mcp-server/agent-tools.ts +375 -0
  333. package/mcp-server/cli-models.ts +193 -0
  334. package/mcp-server/context.ts +110 -0
  335. package/mcp-server/diagram-tools.ts +341 -0
  336. package/mcp-server/index.ts +2014 -0
  337. package/mcp-server/integration-tools.ts +909 -0
  338. package/mcp-server/moai-spec-tools.ts +416 -0
  339. package/mcp-server/parser.ts +422 -0
  340. package/mcp-server/post-task-runner.ts +253 -0
  341. package/mcp-server/post-task-types.ts +426 -0
  342. package/mcp-server/quarantine-manager.ts +479 -0
  343. package/mcp-server/report-generator.ts +386 -0
  344. package/mcp-server/task-tools.ts +619 -0
  345. package/mcp-server/trigger-config.ts +288 -0
  346. package/mcp-server/trigger-router.ts +305 -0
  347. package/mcp-server/triggers/event-listener.ts +331 -0
  348. package/mcp-server/triggers/git-hooks.ts +283 -0
  349. package/mcp-server/triggers/scheduler.ts +289 -0
  350. package/mcp-server/types.ts +55 -0
  351. package/memory/claude-flow@alpha-data.json +5 -0
  352. package/nginx/zyflow.conf +144 -0
  353. package/openspec/config.yaml +78 -0
  354. package/openspec-backup.tar.gz +0 -0
  355. package/package.json +154 -0
  356. package/packages/gitdiagram-core/.claude-flow/metrics/agent-metrics.json +1 -0
  357. package/packages/gitdiagram-core/.claude-flow/metrics/performance.json +87 -0
  358. package/packages/gitdiagram-core/.claude-flow/metrics/task-metrics.json +10 -0
  359. package/packages/gitdiagram-core/package.json +41 -0
  360. package/packages/gitdiagram-core/src/file-tree.ts +272 -0
  361. package/packages/gitdiagram-core/src/generator.ts +283 -0
  362. package/packages/gitdiagram-core/src/index.ts +78 -0
  363. package/packages/gitdiagram-core/src/llm-adapter.ts +235 -0
  364. package/packages/gitdiagram-core/src/mermaid-utils.ts +304 -0
  365. package/packages/gitdiagram-core/src/prompts.ts +281 -0
  366. package/packages/zyflow-parser/package.json +34 -0
  367. package/packages/zyflow-parser/src/index.ts +26 -0
  368. package/packages/zyflow-parser/src/moai-parser.ts +603 -0
  369. package/packages/zyflow-parser/src/moai-types.ts +110 -0
  370. package/packages/zyflow-remote-plugin/.claude-flow/metrics/agent-metrics.json +1 -0
  371. package/packages/zyflow-remote-plugin/.claude-flow/metrics/performance.json +87 -0
  372. package/packages/zyflow-remote-plugin/.claude-flow/metrics/task-metrics.json +10 -0
  373. package/packages/zyflow-remote-plugin/package.json +31 -0
  374. package/packages/zyflow-remote-plugin/src/index.ts +71 -0
  375. package/packages/zyflow-remote-plugin/src/remote-config.ts +232 -0
  376. package/packages/zyflow-remote-plugin/src/router.ts +535 -0
  377. package/packages/zyflow-remote-plugin/src/ssh-config-parser.ts +123 -0
  378. package/packages/zyflow-remote-plugin/src/ssh-manager.ts +598 -0
  379. package/packages/zyflow-remote-plugin/src/types.ts +149 -0
  380. package/plugin/manifest.json +26 -0
  381. package/plugin/package.json +13 -0
  382. package/public/favicon.svg +4 -0
  383. package/server/adk/agents/error-analyzer.ts +223 -0
  384. package/server/adk/agents/fix-generator.ts +187 -0
  385. package/server/adk/agents/pr-agent.ts +264 -0
  386. package/server/adk/agents/validator.ts +187 -0
  387. package/server/adk/config.ts +43 -0
  388. package/server/adk/index.ts +69 -0
  389. package/server/adk/integration.ts +297 -0
  390. package/server/adk/orchestrator.ts +405 -0
  391. package/server/adk/tools/build-tools.ts +290 -0
  392. package/server/adk/tools/file-tools.ts +351 -0
  393. package/server/adk/tools/git-tools.ts +280 -0
  394. package/server/adk/tools/github-tools.ts +249 -0
  395. package/server/agents/agent-monitor.ts +416 -0
  396. package/server/agents/alert-integration.ts +312 -0
  397. package/server/agents/error-analyzer.ts +472 -0
  398. package/server/agents/error-detector.ts +442 -0
  399. package/server/agents/fix-generator.ts +421 -0
  400. package/server/agents/fix-validator.ts +428 -0
  401. package/server/agents/merge-policy.ts +362 -0
  402. package/server/agents/pr-workflow.ts +476 -0
  403. package/server/agents/prompts/error-analysis.ts +393 -0
  404. package/server/ai/gemini-client.ts +499 -0
  405. package/server/ai/index.ts +317 -0
  406. package/server/ai/types.ts +137 -0
  407. package/server/app.ts +3693 -0
  408. package/server/archive-manager.ts +604 -0
  409. package/server/backlog/index.ts +7 -0
  410. package/server/backlog/migration.ts +331 -0
  411. package/server/backlog/parser.ts +323 -0
  412. package/server/backlog/sync.ts +325 -0
  413. package/server/change-log.ts +868 -0
  414. package/server/claude-flow/index.ts +12 -0
  415. package/server/claude-flow/prompt-builder.ts +407 -0
  416. package/server/claude-flow/types.ts +33 -0
  417. package/server/cli-adapter/index.ts +11 -0
  418. package/server/cli-adapter/process-manager.ts +612 -0
  419. package/server/cli-adapter/profile-manager.ts +286 -0
  420. package/server/cli-adapter/routes.ts +561 -0
  421. package/server/cli-adapter/types.ts +226 -0
  422. package/server/config.d.ts +18 -0
  423. package/server/config.js +79 -0
  424. package/server/config.ts +262 -0
  425. package/server/flow-sync.ts +543 -0
  426. package/server/git/change-workflow.ts +446 -0
  427. package/server/git/commands.ts +370 -0
  428. package/server/git/github.ts +247 -0
  429. package/server/git/index.ts +1202 -0
  430. package/server/git/status.ts +322 -0
  431. package/server/index.ts +136 -0
  432. package/server/integrations/crypto.ts +142 -0
  433. package/server/integrations/db/client.ts +169 -0
  434. package/server/integrations/db/schema.ts +167 -0
  435. package/server/integrations/env-parser.ts +365 -0
  436. package/server/integrations/index.ts +101 -0
  437. package/server/integrations/keychain.ts +239 -0
  438. package/server/integrations/local/file-utils.ts +383 -0
  439. package/server/integrations/local/index.ts +64 -0
  440. package/server/integrations/local/resolver.ts +439 -0
  441. package/server/integrations/local/types.ts +122 -0
  442. package/server/integrations/routes.ts +1100 -0
  443. package/server/integrations/service-patterns.ts +771 -0
  444. package/server/integrations/services/accounts.ts +356 -0
  445. package/server/integrations/services/env-import.ts +279 -0
  446. package/server/integrations/services/projects.ts +552 -0
  447. package/server/integrations/services/system-import.ts +1110 -0
  448. package/server/migrations/ears-generator.ts +491 -0
  449. package/server/migrations/gherkin-generator.ts +605 -0
  450. package/server/migrations/index.ts +73 -0
  451. package/server/migrations/migrate-spec-format.ts +492 -0
  452. package/server/migrations/openspec-parser.ts +542 -0
  453. package/server/migrations/tag-generator.ts +474 -0
  454. package/server/moai-specs.ts +487 -0
  455. package/server/moai-watcher.ts +145 -0
  456. package/server/parser-debug.ts +37 -0
  457. package/server/parser-utils.ts +316 -0
  458. package/server/parser.d.ts +17 -0
  459. package/server/parser.js +221 -0
  460. package/server/parser.ts +342 -0
  461. package/server/remote-watcher.ts +367 -0
  462. package/server/replay-engine.ts +915 -0
  463. package/server/routes/alerts.ts +1028 -0
  464. package/server/routes/changes.ts +812 -0
  465. package/server/routes/docs.ts +898 -0
  466. package/server/routes/flow.ts +2814 -0
  467. package/server/routes/global-chat.ts +162 -0
  468. package/server/routes/leann.ts +327 -0
  469. package/server/routes/projects.ts +1282 -0
  470. package/server/routes/search.ts +266 -0
  471. package/server/routes/specs.ts +482 -0
  472. package/server/routes/webhooks.ts +579 -0
  473. package/server/server/parser.js +265 -0
  474. package/server/services/githubActionsPoller.ts +797 -0
  475. package/server/services/slackNotifier.ts +476 -0
  476. package/server/src/types/index.js +1 -0
  477. package/server/sync-tasks.ts +741 -0
  478. package/server/tasks/cli/commands.ts +269 -0
  479. package/server/tasks/cli/index.ts +152 -0
  480. package/server/tasks/core/search.ts +81 -0
  481. package/server/tasks/core/task.ts +307 -0
  482. package/server/tasks/db/client.ts +1008 -0
  483. package/server/tasks/db/schema.ts +572 -0
  484. package/server/tasks/index.ts +24 -0
  485. package/server/tasks.db +0 -0
  486. package/server/types/archive.ts +136 -0
  487. package/server/types/change-log.ts +643 -0
  488. package/server/types/spec.ts +188 -0
  489. package/server/unified-spec-scanner.ts +753 -0
  490. package/server/utils/crypto.ts +179 -0
  491. package/server/utils/webhook-verify.ts +216 -0
  492. package/server/watcher.ts +132 -0
  493. package/server/websocket.ts +99 -0
  494. package/server-output.log +6 -0
  495. package/sonar-project.properties +18 -0
  496. package/src/App.tsx +386 -0
  497. package/src/api/client.ts +346 -0
  498. package/src/api/error-interceptor.ts +366 -0
  499. package/src/api/errors.ts +123 -0
  500. package/src/api/flow.ts +233 -0
  501. package/src/api/offline-queue.ts +351 -0
  502. package/src/api/retry-logic.ts +233 -0
  503. package/src/components/OfflineModeBanner.tsx +159 -0
  504. package/src/components/SSEStatusIndicator.tsx +194 -0
  505. package/src/components/agent/AgentChat.tsx +243 -0
  506. package/src/components/agent/AgentPage.tsx +182 -0
  507. package/src/components/agent/AgentSidebar.tsx +231 -0
  508. package/src/components/agent/index.ts +7 -0
  509. package/src/components/alerts/AlertCenter.tsx +239 -0
  510. package/src/components/alerts/AlertDashboard.tsx +211 -0
  511. package/src/components/alerts/AlertDetail.tsx +474 -0
  512. package/src/components/alerts/AlertList.tsx +113 -0
  513. package/src/components/alerts/AlertSettings.tsx +336 -0
  514. package/src/components/alerts/index.ts +5 -0
  515. package/src/components/chat/ChatPanel.tsx +642 -0
  516. package/src/components/chat/index.ts +1 -0
  517. package/src/components/cli/AddCustomCLIDialog.tsx +210 -0
  518. package/src/components/cli/CLISelector.tsx +187 -0
  519. package/src/components/cli/index.ts +8 -0
  520. package/src/components/dashboard/ArchivedChangeList.tsx +102 -0
  521. package/src/components/dashboard/ArchivedChangeViewer.tsx +184 -0
  522. package/src/components/dashboard/ArchivedChangesPage.tsx +31 -0
  523. package/src/components/dashboard/ChangeList.tsx +86 -0
  524. package/src/components/dashboard/ThemeToggle.tsx +33 -0
  525. package/src/components/diagram/DiagramViewer.tsx +256 -0
  526. package/src/components/diagram/MermaidRenderer.tsx +163 -0
  527. package/src/components/diagram/ProjectDiagramTab.tsx +161 -0
  528. package/src/components/diagram/index.ts +13 -0
  529. package/src/components/errors/ErrorBoundary.tsx +276 -0
  530. package/src/components/errors/ErrorFallback.tsx +198 -0
  531. package/src/components/errors/ErrorToast.tsx +221 -0
  532. package/src/components/flow/BacklogView.tsx +1142 -0
  533. package/src/components/flow/ChangeDetail.tsx +475 -0
  534. package/src/components/flow/ChangeItem.tsx +230 -0
  535. package/src/components/flow/ChangeList.tsx +92 -0
  536. package/src/components/flow/ExecutionHistoryDialog.tsx +224 -0
  537. package/src/components/flow/FlowContent.tsx +212 -0
  538. package/src/components/flow/FlowPage.tsx +9 -0
  539. package/src/components/flow/PipelineBar.tsx +214 -0
  540. package/src/components/flow/ProjectDashboard.tsx +222 -0
  541. package/src/components/flow/SpecDetail.tsx +138 -0
  542. package/src/components/flow/SpecDetailTabs.tsx +176 -0
  543. package/src/components/flow/SpecItem.tsx +93 -0
  544. package/src/components/flow/SpecProgressBar.tsx +47 -0
  545. package/src/components/flow/StageContent.tsx +620 -0
  546. package/src/components/flow/StandaloneTasks.tsx +960 -0
  547. package/src/components/flow/TaskExecutionDialog.tsx +1204 -0
  548. package/src/components/flow/index.ts +9 -0
  549. package/src/components/flow/task-execution/AgentSlider.tsx +37 -0
  550. package/src/components/flow/task-execution/ConsensusSettings.tsx +129 -0
  551. package/src/components/flow/task-execution/ExecutionOutput.tsx +398 -0
  552. package/src/components/flow/task-execution/ModelSelector.tsx +134 -0
  553. package/src/components/flow/task-execution/ProviderSelector.tsx +137 -0
  554. package/src/components/flow/task-execution/RecommendationBanner.tsx +71 -0
  555. package/src/components/flow/task-execution/StatusBadge.tsx +43 -0
  556. package/src/components/flow/task-execution/StrategySelector.tsx +48 -0
  557. package/src/components/flow/task-execution/SwarmSummary.tsx +55 -0
  558. package/src/components/flow/task-execution/index.ts +14 -0
  559. package/src/components/flow/task-execution/types.ts +56 -0
  560. package/src/components/git/ChangeWorkflowDialog.tsx +582 -0
  561. package/src/components/git/ConflictResolutionDialog.tsx +398 -0
  562. package/src/components/git/GitBranchSelector.tsx +212 -0
  563. package/src/components/git/GitCommitDialog.tsx +254 -0
  564. package/src/components/git/GitStatusBadge.tsx +148 -0
  565. package/src/components/git/GitSyncButton.tsx +128 -0
  566. package/src/components/git/RemoteStatusBanner.tsx +143 -0
  567. package/src/components/git/index.ts +9 -0
  568. package/src/components/integrations/EnvImportDialog.tsx +524 -0
  569. package/src/components/integrations/EnvironmentDialog.tsx +227 -0
  570. package/src/components/integrations/IntegrationBadges.tsx +91 -0
  571. package/src/components/integrations/IntegrationsSettings.tsx +55 -0
  572. package/src/components/integrations/ProjectIntegrations.tsx +481 -0
  573. package/src/components/integrations/ServiceAccountDialog.tsx +422 -0
  574. package/src/components/integrations/ServiceAccountList.tsx +305 -0
  575. package/src/components/integrations/SystemImportDialog.tsx +436 -0
  576. package/src/components/integrations/TestAccountDialog.tsx +162 -0
  577. package/src/components/integrations/index.ts +6 -0
  578. package/src/components/layout/AppSidebar.tsx +284 -0
  579. package/src/components/layout/FlowSidebar.tsx +435 -0
  580. package/src/components/layout/GlobalCommandPalette.tsx +410 -0
  581. package/src/components/layout/MenuBar.tsx +227 -0
  582. package/src/components/layout/StatusBar.tsx +226 -0
  583. package/src/components/monitoring/ErrorDashboard.tsx +274 -0
  584. package/src/components/monitoring/ErrorDetailPanel.tsx +200 -0
  585. package/src/components/monitoring/ErrorFilters.tsx +219 -0
  586. package/src/components/monitoring/ErrorHistoryList.tsx +141 -0
  587. package/src/components/monitoring/ErrorStats.tsx +249 -0
  588. package/src/components/remote/RemoteFileBrowser.tsx +249 -0
  589. package/src/components/remote/RemoteServerDialog.tsx +234 -0
  590. package/src/components/remote/RemoteServerList.tsx +366 -0
  591. package/src/components/remote/index.ts +7 -0
  592. package/src/components/settings/CLISettings.tsx +522 -0
  593. package/src/components/settings/CustomCLIDialog.tsx +548 -0
  594. package/src/components/settings/IntegrationsSettings.tsx +51 -0
  595. package/src/components/settings/ProjectSettings.tsx +441 -0
  596. package/src/components/settings/ProjectsSettings.tsx +541 -0
  597. package/src/components/settings/SearchSettings.tsx +272 -0
  598. package/src/components/settings/SettingsPage.tsx +68 -0
  599. package/src/components/settings/index.ts +5 -0
  600. package/src/components/swarm/ExecutionPanel.tsx +284 -0
  601. package/src/components/swarm/LogViewer.tsx +196 -0
  602. package/src/components/swarm/ProgressIndicator.tsx +111 -0
  603. package/src/components/swarm/index.ts +3 -0
  604. package/src/components/tasks/ArchiveTable.tsx +203 -0
  605. package/src/components/tasks/KanbanBoard.tsx +264 -0
  606. package/src/components/tasks/TaskCard.tsx +138 -0
  607. package/src/components/tasks/TaskColumn.tsx +81 -0
  608. package/src/components/tasks/TaskDialog.tsx +274 -0
  609. package/src/components/tasks/index.ts +5 -0
  610. package/src/components/tasks/types.ts +43 -0
  611. package/src/components/ui/alert-dialog.tsx +154 -0
  612. package/src/components/ui/alert.tsx +65 -0
  613. package/src/components/ui/badge.tsx +45 -0
  614. package/src/components/ui/button.tsx +58 -0
  615. package/src/components/ui/card.tsx +91 -0
  616. package/src/components/ui/checkbox.tsx +29 -0
  617. package/src/components/ui/collapsible.tsx +31 -0
  618. package/src/components/ui/command.tsx +184 -0
  619. package/src/components/ui/confirm-dialog.tsx +55 -0
  620. package/src/components/ui/dialog.tsx +142 -0
  621. package/src/components/ui/dropdown-menu.tsx +254 -0
  622. package/src/components/ui/input.tsx +20 -0
  623. package/src/components/ui/label.tsx +22 -0
  624. package/src/components/ui/markdown.tsx +100 -0
  625. package/src/components/ui/progress.tsx +27 -0
  626. package/src/components/ui/resizable-sidebar.tsx +156 -0
  627. package/src/components/ui/resizable.tsx +54 -0
  628. package/src/components/ui/right-resizable-sidebar.tsx +158 -0
  629. package/src/components/ui/scroll-area.tsx +64 -0
  630. package/src/components/ui/select.tsx +185 -0
  631. package/src/components/ui/separator.tsx +25 -0
  632. package/src/components/ui/sheet.tsx +136 -0
  633. package/src/components/ui/sidebar.tsx +726 -0
  634. package/src/components/ui/skeleton.tsx +13 -0
  635. package/src/components/ui/slider.tsx +56 -0
  636. package/src/components/ui/switch.tsx +29 -0
  637. package/src/components/ui/table.tsx +113 -0
  638. package/src/components/ui/tabs.tsx +63 -0
  639. package/src/components/ui/textarea.tsx +17 -0
  640. package/src/components/ui/tooltip.tsx +60 -0
  641. package/src/config/api.ts +83 -0
  642. package/src/constants/error-codes.ts +255 -0
  643. package/src/constants/stages.ts +27 -0
  644. package/src/context/ErrorContext.tsx +185 -0
  645. package/src/context/theme-provider.tsx +63 -0
  646. package/src/hooks/use-mobile.tsx +19 -0
  647. package/src/hooks/useAI.ts +206 -0
  648. package/src/hooks/useAgentSession.ts +431 -0
  649. package/src/hooks/useAlerts.ts +935 -0
  650. package/src/hooks/useArchivedChanges.ts +39 -0
  651. package/src/hooks/useAsyncError.ts +45 -0
  652. package/src/hooks/useChangeGit.ts +727 -0
  653. package/src/hooks/useChanges.ts +20 -0
  654. package/src/hooks/useClaude.ts +130 -0
  655. package/src/hooks/useDocs.ts +182 -0
  656. package/src/hooks/useErrorDashboard.ts +243 -0
  657. package/src/hooks/useErrorHandler.ts +150 -0
  658. package/src/hooks/useExecutionHistory.ts +55 -0
  659. package/src/hooks/useFlowChanges.ts +850 -0
  660. package/src/hooks/useFlowItems.ts +205 -0
  661. package/src/hooks/useGit.ts +427 -0
  662. package/src/hooks/useHideCompletedSpecs.ts +15 -0
  663. package/src/hooks/useInstance.ts +40 -0
  664. package/src/hooks/useIntegrations.ts +737 -0
  665. package/src/hooks/useLeannStatus.ts +93 -0
  666. package/src/hooks/useNetworkStatus.ts +167 -0
  667. package/src/hooks/useProjects.ts +353 -0
  668. package/src/hooks/useRemoteServers.ts +383 -0
  669. package/src/hooks/useSSEConnection.ts +346 -0
  670. package/src/hooks/useSpecs.ts +39 -0
  671. package/src/hooks/useSwarm.ts +462 -0
  672. package/src/hooks/useTasks.ts +137 -0
  673. package/src/hooks/useURLSync.ts +122 -0
  674. package/src/hooks/useWebSocket.ts +262 -0
  675. package/src/lib/utils.ts +121 -0
  676. package/src/main.tsx +22 -0
  677. package/src/stores/errorStore.ts +301 -0
  678. package/src/stores/offlineStore.ts +266 -0
  679. package/src/stores/sseStore.ts +247 -0
  680. package/src/stores/useHideCompletedStore.ts +21 -0
  681. package/src/styles/index.css +87 -0
  682. package/src/styles/theme.css +102 -0
  683. package/src/types/ai.ts +191 -0
  684. package/src/types/errors.ts +253 -0
  685. package/src/types/flow.ts +382 -0
  686. package/src/types/index.ts +614 -0
  687. package/src/utils/error-logger.ts +399 -0
  688. package/src/utils/error-statistics.ts +305 -0
  689. package/src/utils/logger.ts +280 -0
  690. package/src/utils/task-routing.ts +795 -0
  691. package/src/vite-env.d.ts +1 -0
  692. package/test-results/.last-run.json +4 -0
  693. package/tmp/check-docker-final.ts +48 -0
  694. package/tmp/check-docker-tasks.ts +58 -0
  695. package/tmp/check-docker-tasks2.ts +48 -0
  696. package/tmp/check-docker-tasks3.ts +42 -0
  697. package/tmp/check-mobile-tasks.ts +57 -0
  698. package/tmp/check-zywiki-tasks.ts +49 -0
  699. package/tmp/sync-mobile.ts +11 -0
  700. package/tmp/sync-zywiki.ts +68 -0
  701. package/tmp/test-docker-parser.ts +15 -0
  702. package/tmp/test-mobile-parser.ts +28 -0
  703. package/tmp/test-parser.ts +27 -0
  704. package/tmp/test-unnumbered.ts +35 -0
  705. package/zyflow.db +0 -0
@@ -0,0 +1,605 @@
1
+ /**
2
+ * Gherkin Generator (TAG-015)
3
+ *
4
+ * Converts acceptance criteria to Gherkin format (Given/When/Then).
5
+ * Generates acceptance.md with structured test scenarios.
6
+ *
7
+ * Gherkin format:
8
+ * - Feature: High-level description
9
+ * - Scenario: Specific test case
10
+ * - Given: Initial context
11
+ * - When: Action/event
12
+ * - Then: Expected outcome
13
+ * - And: Additional conditions
14
+ *
15
+ * @see SPEC-VISIBILITY-001 Phase 3
16
+ */
17
+ import type { ParsedOpenSpec, OpenSpecCriterion } from './openspec-parser.js'
18
+ import type { EarsRequirement } from './ears-generator.js'
19
+
20
+ // =============================================
21
+ // Types
22
+ // =============================================
23
+
24
+ /**
25
+ * Gherkin step type
26
+ */
27
+ export type GherkinStepType = 'Given' | 'When' | 'Then' | 'And' | 'But'
28
+
29
+ /**
30
+ * Single Gherkin step
31
+ */
32
+ export interface GherkinStep {
33
+ type: GherkinStepType
34
+ text: string
35
+ }
36
+
37
+ /**
38
+ * Gherkin scenario
39
+ */
40
+ export interface GherkinScenario {
41
+ /** Scenario name */
42
+ name: string
43
+ /** Optional description */
44
+ description?: string
45
+ /** Scenario steps */
46
+ steps: GherkinStep[]
47
+ /** Optional tags (e.g., @smoke, @regression) */
48
+ tags?: string[]
49
+ /** Is this a Scenario Outline with examples? */
50
+ isOutline?: boolean
51
+ /** Example data for Scenario Outline */
52
+ examples?: Array<Record<string, string>>
53
+ }
54
+
55
+ /**
56
+ * Gherkin feature
57
+ */
58
+ export interface GherkinFeature {
59
+ /** Feature name */
60
+ name: string
61
+ /** Feature description */
62
+ description?: string
63
+ /** Background steps (run before each scenario) */
64
+ background?: GherkinStep[]
65
+ /** Scenarios in this feature */
66
+ scenarios: GherkinScenario[]
67
+ /** Feature tags */
68
+ tags?: string[]
69
+ }
70
+
71
+ /**
72
+ * Generated acceptance.md content
73
+ */
74
+ export interface GeneratedAcceptance {
75
+ /** Complete acceptance.md content */
76
+ content: string
77
+ /** Generated feature structure */
78
+ feature: GherkinFeature
79
+ /** Warnings during generation */
80
+ warnings: string[]
81
+ }
82
+
83
+ // =============================================
84
+ // Gherkin Pattern Detection
85
+ // =============================================
86
+
87
+ /**
88
+ * Common patterns for detecting Given/When/Then components
89
+ */
90
+ const PATTERNS = {
91
+ // Given patterns - initial state/context
92
+ given: [
93
+ /^(?:given|assuming|provided|with)\s+/i,
94
+ /^(?:the user|the system|an? )\s+(?:is|has|exists)/i,
95
+ /^(?:there (?:is|are|exists?))\s+/i,
96
+ ],
97
+
98
+ // When patterns - actions/events
99
+ when: [
100
+ /^(?:when|if|upon|after)\s+/i,
101
+ /^(?:the user|the system)\s+(?:clicks?|submits?|enters?|selects?|triggers?)/i,
102
+ /^(?:on|during)\s+/i,
103
+ ],
104
+
105
+ // Then patterns - expected outcomes
106
+ then: [
107
+ /^(?:then|should|shall|must|expect)\s+/i,
108
+ /^(?:the system|the user|it)\s+(?:should|shall|must|will)/i,
109
+ /^(?:verify|ensure|confirm|check)\s+/i,
110
+ ],
111
+ }
112
+
113
+ /**
114
+ * Detect Gherkin step type from text
115
+ */
116
+ function detectStepType(text: string): GherkinStepType {
117
+ const lowerText = text.toLowerCase()
118
+
119
+ for (const pattern of PATTERNS.given) {
120
+ if (pattern.test(lowerText)) return 'Given'
121
+ }
122
+
123
+ for (const pattern of PATTERNS.when) {
124
+ if (pattern.test(lowerText)) return 'When'
125
+ }
126
+
127
+ for (const pattern of PATTERNS.then) {
128
+ if (pattern.test(lowerText)) return 'Then'
129
+ }
130
+
131
+ // Default to Then for acceptance criteria
132
+ return 'Then'
133
+ }
134
+
135
+ // =============================================
136
+ // Conversion Functions
137
+ // =============================================
138
+
139
+ /**
140
+ * Convert an acceptance criterion to Gherkin scenario
141
+ */
142
+ function criterionToScenario(
143
+ criterion: OpenSpecCriterion,
144
+ index: number
145
+ ): GherkinScenario {
146
+ const text = criterion.text
147
+ const steps: GherkinStep[] = []
148
+
149
+ // Try to parse existing WHEN/THEN structure
150
+ const whenThenMatch = text.match(/WHEN\s+(.+?)\s+THEN\s+(.+)/i)
151
+ if (whenThenMatch) {
152
+ steps.push({ type: 'Given', text: 'the system is in a valid state' })
153
+ steps.push({ type: 'When', text: whenThenMatch[1].trim() })
154
+ steps.push({ type: 'Then', text: whenThenMatch[2].trim() })
155
+
156
+ return {
157
+ name: extractScenarioName(criterion.text),
158
+ steps,
159
+ }
160
+ }
161
+
162
+ // Try to parse Given/When/Then from text
163
+ const givenMatch = text.match(/given\s+(.+?)(?=when|then|$)/i)
164
+ const whenMatch = text.match(/when\s+(.+?)(?=then|$)/i)
165
+ const thenMatch = text.match(/then\s+(.+)/i)
166
+
167
+ if (givenMatch || whenMatch || thenMatch) {
168
+ if (givenMatch) steps.push({ type: 'Given', text: givenMatch[1].trim() })
169
+ if (whenMatch) steps.push({ type: 'When', text: whenMatch[1].trim() })
170
+ if (thenMatch) steps.push({ type: 'Then', text: thenMatch[1].trim() })
171
+
172
+ // Ensure we have at least a Then
173
+ if (steps.length === 0 || !steps.find(s => s.type === 'Then')) {
174
+ steps.push({ type: 'Then', text: text })
175
+ }
176
+
177
+ return {
178
+ name: extractScenarioName(criterion.text),
179
+ steps,
180
+ }
181
+ }
182
+
183
+ // Default: generate steps from criterion text
184
+ return generateDefaultScenario(criterion, index)
185
+ }
186
+
187
+ /**
188
+ * Generate a default scenario from criterion text
189
+ */
190
+ function generateDefaultScenario(
191
+ criterion: OpenSpecCriterion,
192
+ index: number
193
+ ): GherkinScenario {
194
+ const text = criterion.text
195
+ const steps: GherkinStep[] = []
196
+
197
+ // Detect step type from the criterion text
198
+ const detectedType = detectStepType(text)
199
+
200
+ // Generate context-appropriate steps
201
+ if (detectedType === 'Given') {
202
+ steps.push({ type: 'Given', text: cleanStepText(text) })
203
+ steps.push({ type: 'When', text: 'the relevant action is performed' })
204
+ steps.push({ type: 'Then', text: 'the system behaves correctly' })
205
+ } else if (detectedType === 'When') {
206
+ steps.push({ type: 'Given', text: 'the system is ready' })
207
+ steps.push({ type: 'When', text: cleanStepText(text) })
208
+ steps.push({ type: 'Then', text: 'the expected outcome occurs' })
209
+ } else {
210
+ // Default: treat as expected outcome (Then)
211
+ steps.push({ type: 'Given', text: 'the system is in a valid state' })
212
+ steps.push({ type: 'When', text: 'the user performs the action' })
213
+ steps.push({ type: 'Then', text: cleanStepText(text) })
214
+ }
215
+
216
+ return {
217
+ name: extractScenarioName(text) || `Scenario ${index + 1}`,
218
+ steps,
219
+ }
220
+ }
221
+
222
+ /**
223
+ * Extract a scenario name from criterion text
224
+ */
225
+ function extractScenarioName(text: string): string {
226
+ // Remove common prefixes
227
+ let name = text
228
+ .replace(/^[-*]\s*\[[ xX]\]\s*/, '')
229
+ .replace(/^(?:should|shall|must|verify|ensure|check)\s+/i, '')
230
+ .replace(/^(?:the system|it)\s+(?:should|shall|must)\s+/i, '')
231
+ .trim()
232
+
233
+ // Capitalize first letter
234
+ name = name.charAt(0).toUpperCase() + name.slice(1)
235
+
236
+ // Truncate if too long
237
+ if (name.length > 80) {
238
+ name = name.slice(0, 77) + '...'
239
+ }
240
+
241
+ // Remove trailing punctuation
242
+ name = name.replace(/[.!?]$/, '')
243
+
244
+ return name
245
+ }
246
+
247
+ /**
248
+ * Clean step text for Gherkin format
249
+ */
250
+ function cleanStepText(text: string): string {
251
+ return text
252
+ .replace(/^[-*]\s*\[[ xX]\]\s*/, '')
253
+ .replace(/^(?:given|when|then|and|but)\s+/i, '')
254
+ .replace(/^(?:should|shall|must)\s+/i, '')
255
+ .replace(/^(?:the system|it)\s+/, '')
256
+ .trim()
257
+ }
258
+
259
+ /**
260
+ * Convert EARS requirements to Gherkin scenarios
261
+ */
262
+ function requirementToScenario(req: EarsRequirement): GherkinScenario {
263
+ const steps: GherkinStep[] = []
264
+ const text = req.text
265
+
266
+ // Parse EARS patterns
267
+ switch (req.pattern) {
268
+ case 'when':
269
+ {
270
+ const match = text.match(/WHEN\s+(.+?),?\s+(?:the system\s+)?SHALL\s+(.+)/i)
271
+ if (match) {
272
+ steps.push({ type: 'Given', text: 'the system is in normal operation' })
273
+ steps.push({ type: 'When', text: match[1].trim() })
274
+ steps.push({ type: 'Then', text: match[2].trim().replace(/\.$/, '') })
275
+ }
276
+ }
277
+ break
278
+
279
+ case 'if':
280
+ {
281
+ const match = text.match(/IF\s+(.+?),?\s+THEN\s+(?:the system\s+)?SHALL\s+(.+)/i)
282
+ if (match) {
283
+ steps.push({ type: 'Given', text: match[1].trim() })
284
+ steps.push({ type: 'When', text: 'the condition is evaluated' })
285
+ steps.push({ type: 'Then', text: match[2].trim().replace(/\.$/, '') })
286
+ }
287
+ }
288
+ break
289
+
290
+ case 'while':
291
+ {
292
+ const match = text.match(/WHILE\s+(.+?),?\s+(?:the system\s+)?SHALL\s+(.+)/i)
293
+ if (match) {
294
+ steps.push({ type: 'Given', text: match[1].trim() })
295
+ steps.push({ type: 'When', text: 'the state is maintained' })
296
+ steps.push({ type: 'Then', text: match[2].trim().replace(/\.$/, '') })
297
+ }
298
+ }
299
+ break
300
+
301
+ default:
302
+ {
303
+ const match = text.match(/(?:The system\s+)?SHALL\s+(.+)/i)
304
+ if (match) {
305
+ steps.push({ type: 'Given', text: 'the system is available' })
306
+ steps.push({ type: 'When', text: 'the functionality is invoked' })
307
+ steps.push({ type: 'Then', text: match[1].trim().replace(/\.$/, '') })
308
+ }
309
+ }
310
+ }
311
+
312
+ // Fallback if no steps generated
313
+ if (steps.length === 0) {
314
+ steps.push({ type: 'Given', text: 'the system is ready' })
315
+ steps.push({ type: 'When', text: 'the requirement is tested' })
316
+ steps.push({ type: 'Then', text: 'it meets the specification' })
317
+ }
318
+
319
+ return {
320
+ name: `${req.id}: ${extractScenarioName(req.original)}`,
321
+ steps,
322
+ tags: [`@${req.id}`],
323
+ }
324
+ }
325
+
326
+ // =============================================
327
+ // Content Generation
328
+ // =============================================
329
+
330
+ /**
331
+ * Format a single Gherkin step
332
+ */
333
+ function formatStep(step: GherkinStep, indent: string = ' '): string {
334
+ return `${indent}${step.type} ${step.text}`
335
+ }
336
+
337
+ /**
338
+ * Format a Gherkin scenario
339
+ */
340
+ function formatScenario(scenario: GherkinScenario): string[] {
341
+ const lines: string[] = []
342
+
343
+ // Tags
344
+ if (scenario.tags && scenario.tags.length > 0) {
345
+ lines.push(` ${scenario.tags.join(' ')}`)
346
+ }
347
+
348
+ // Scenario header
349
+ const scenarioType = scenario.isOutline ? 'Scenario Outline' : 'Scenario'
350
+ lines.push(` ${scenarioType}: ${scenario.name}`)
351
+
352
+ // Description
353
+ if (scenario.description) {
354
+ lines.push(` ${scenario.description}`)
355
+ }
356
+
357
+ // Steps
358
+ for (const step of scenario.steps) {
359
+ lines.push(formatStep(step))
360
+ }
361
+
362
+ // Examples for Scenario Outline
363
+ if (scenario.isOutline && scenario.examples && scenario.examples.length > 0) {
364
+ lines.push('')
365
+ lines.push(' Examples:')
366
+ const keys = Object.keys(scenario.examples[0])
367
+ lines.push(` | ${keys.join(' | ')} |`)
368
+ for (const example of scenario.examples) {
369
+ const values = keys.map(k => example[k] || '')
370
+ lines.push(` | ${values.join(' | ')} |`)
371
+ }
372
+ }
373
+
374
+ return lines
375
+ }
376
+
377
+ /**
378
+ * Format a complete Gherkin feature
379
+ */
380
+ function formatFeature(feature: GherkinFeature): string {
381
+ const lines: string[] = []
382
+
383
+ // Feature tags
384
+ if (feature.tags && feature.tags.length > 0) {
385
+ lines.push(feature.tags.join(' '))
386
+ }
387
+
388
+ // Feature header
389
+ lines.push(`Feature: ${feature.name}`)
390
+
391
+ // Description
392
+ if (feature.description) {
393
+ lines.push(` ${feature.description}`)
394
+ }
395
+
396
+ lines.push('')
397
+
398
+ // Background
399
+ if (feature.background && feature.background.length > 0) {
400
+ lines.push(' Background:')
401
+ for (const step of feature.background) {
402
+ lines.push(formatStep(step))
403
+ }
404
+ lines.push('')
405
+ }
406
+
407
+ // Scenarios
408
+ for (let i = 0; i < feature.scenarios.length; i++) {
409
+ if (i > 0) lines.push('')
410
+ lines.push(...formatScenario(feature.scenarios[i]))
411
+ }
412
+
413
+ return lines.join('\n')
414
+ }
415
+
416
+ /**
417
+ * Generate acceptance.md header
418
+ */
419
+ function generateHeader(parsed: ParsedOpenSpec): string[] {
420
+ const specId = parsed.id.startsWith('SPEC-')
421
+ ? parsed.id
422
+ : `SPEC-${parsed.id.toUpperCase()}`
423
+
424
+ return [
425
+ `# Acceptance Criteria: ${specId}`,
426
+ '',
427
+ `**SPEC ID**: ${specId}`,
428
+ `**Title**: ${parsed.title}`,
429
+ `**Version**: 1.0.0`,
430
+ '',
431
+ '---',
432
+ '',
433
+ '## Overview',
434
+ '',
435
+ 'This document defines the acceptance criteria in Gherkin format (Given/When/Then).',
436
+ 'Each scenario represents a testable requirement that must pass for acceptance.',
437
+ '',
438
+ '---',
439
+ '',
440
+ ]
441
+ }
442
+
443
+ /**
444
+ * Generate edge cases section
445
+ */
446
+ function generateEdgeCases(feature: GherkinFeature): string[] {
447
+ const lines = [
448
+ '## Edge Cases',
449
+ '',
450
+ 'The following edge cases should be considered during testing:',
451
+ '',
452
+ ]
453
+
454
+ // Generate common edge cases based on feature content
455
+ const edgeCases = [
456
+ 'Empty or null inputs',
457
+ 'Maximum length inputs',
458
+ 'Concurrent access scenarios',
459
+ 'Network failure recovery',
460
+ 'Invalid authentication tokens',
461
+ ]
462
+
463
+ for (const edgeCase of edgeCases) {
464
+ lines.push(`- [ ] ${edgeCase}`)
465
+ }
466
+
467
+ lines.push('')
468
+ lines.push('---')
469
+ lines.push('')
470
+
471
+ return lines
472
+ }
473
+
474
+ /**
475
+ * Generate test coverage matrix
476
+ */
477
+ function generateCoverageMatrix(
478
+ feature: GherkinFeature,
479
+ requirements?: EarsRequirement[]
480
+ ): string[] {
481
+ const lines = [
482
+ '## Test Coverage Matrix',
483
+ '',
484
+ '| Requirement | Scenario | Status |',
485
+ '|-------------|----------|--------|',
486
+ ]
487
+
488
+ for (const scenario of feature.scenarios) {
489
+ const reqId = scenario.tags?.find(t => t.startsWith('@FR-') || t.startsWith('@REQ-'))?.slice(1) || '-'
490
+ lines.push(`| ${reqId} | ${scenario.name.slice(0, 40)} | Pending |`)
491
+ }
492
+
493
+ lines.push('')
494
+ lines.push('---')
495
+ lines.push('')
496
+
497
+ return lines
498
+ }
499
+
500
+ // =============================================
501
+ // Main Generator Function
502
+ // =============================================
503
+
504
+ /**
505
+ * Generate Gherkin-formatted acceptance.md from parsed OpenSpec
506
+ *
507
+ * @param parsed - Parsed OpenSpec structure
508
+ * @param requirements - Optional EARS requirements for enhanced scenarios
509
+ * @returns Generated acceptance.md content with Gherkin scenarios
510
+ */
511
+ export function generateGherkinCriteria(
512
+ parsed: ParsedOpenSpec,
513
+ requirements?: EarsRequirement[]
514
+ ): GeneratedAcceptance {
515
+ const warnings: string[] = []
516
+ const scenarios: GherkinScenario[] = []
517
+
518
+ // Generate scenarios from acceptance criteria
519
+ if (parsed.acceptanceCriteria.length > 0) {
520
+ for (let i = 0; i < parsed.acceptanceCriteria.length; i++) {
521
+ const scenario = criterionToScenario(parsed.acceptanceCriteria[i], i)
522
+ scenarios.push(scenario)
523
+ }
524
+ }
525
+
526
+ // Generate additional scenarios from EARS requirements
527
+ if (requirements && requirements.length > 0) {
528
+ for (const req of requirements) {
529
+ const scenario = requirementToScenario(req)
530
+ // Avoid duplicates
531
+ if (!scenarios.find(s => s.name.includes(req.id))) {
532
+ scenarios.push(scenario)
533
+ }
534
+ }
535
+ }
536
+
537
+ // Generate placeholder if no scenarios
538
+ if (scenarios.length === 0) {
539
+ scenarios.push({
540
+ name: 'Core Functionality Works',
541
+ steps: [
542
+ { type: 'Given', text: 'the system is properly configured' },
543
+ { type: 'When', text: 'the user invokes the core functionality' },
544
+ { type: 'Then', text: 'the system responds correctly' },
545
+ ],
546
+ })
547
+ warnings.push('No acceptance criteria found, placeholder scenario added')
548
+ }
549
+
550
+ // Create feature
551
+ const specId = parsed.id.startsWith('SPEC-')
552
+ ? parsed.id
553
+ : `SPEC-${parsed.id.toUpperCase()}`
554
+
555
+ const feature: GherkinFeature = {
556
+ name: parsed.title,
557
+ description: parsed.description,
558
+ scenarios,
559
+ tags: [`@${specId}`],
560
+ }
561
+
562
+ // Build content
563
+ const contentLines: string[] = []
564
+
565
+ // Header
566
+ contentLines.push(...generateHeader(parsed))
567
+
568
+ // Gherkin Feature
569
+ contentLines.push('## Acceptance Scenarios')
570
+ contentLines.push('')
571
+ contentLines.push('```gherkin')
572
+ contentLines.push(formatFeature(feature))
573
+ contentLines.push('```')
574
+ contentLines.push('')
575
+ contentLines.push('---')
576
+ contentLines.push('')
577
+
578
+ // Edge Cases
579
+ contentLines.push(...generateEdgeCases(feature))
580
+
581
+ // Coverage Matrix
582
+ contentLines.push(...generateCoverageMatrix(feature, requirements))
583
+
584
+ // Validation Checklist
585
+ contentLines.push('## Validation Checklist')
586
+ contentLines.push('')
587
+ contentLines.push('Before marking this SPEC as complete, verify:')
588
+ contentLines.push('')
589
+ contentLines.push('- [ ] All scenarios pass in test suite')
590
+ contentLines.push('- [ ] Edge cases have been tested')
591
+ contentLines.push('- [ ] Code coverage meets threshold (85%+)')
592
+ contentLines.push('- [ ] No regression in existing functionality')
593
+ contentLines.push('- [ ] Documentation is up to date')
594
+ contentLines.push('')
595
+ contentLines.push('---')
596
+ contentLines.push('')
597
+ contentLines.push(`**End of Acceptance Criteria for ${specId}**`)
598
+ contentLines.push('')
599
+
600
+ return {
601
+ content: contentLines.join('\n'),
602
+ feature,
603
+ warnings,
604
+ }
605
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * OpenSpec to MoAI Migration Module (SPEC-VISIBILITY-001 Phase 3)
3
+ *
4
+ * Provides tools for migrating OpenSpec format documents to MoAI 3-file structure:
5
+ * - spec.md (EARS requirements)
6
+ * - plan.md (TAG chain)
7
+ * - acceptance.md (Gherkin scenarios)
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { migrateOpenSpecToMoai, previewMigration } from './migrations'
12
+ *
13
+ * // Preview migration without writing files
14
+ * const preview = await previewMigration('/path/to/proposal.md')
15
+ * console.log(preview.generated?.spec.content)
16
+ *
17
+ * // Execute migration
18
+ * const result = await migrateOpenSpecToMoai(
19
+ * '/path/to/proposal.md',
20
+ * '.moai/specs'
21
+ * )
22
+ * ```
23
+ */
24
+
25
+ // OpenSpec Parser (TAG-012)
26
+ export {
27
+ parseOpenSpec,
28
+ validateParsedOpenSpec,
29
+ type ParsedOpenSpec,
30
+ type OpenSpecTask,
31
+ type OpenSpecRequirement,
32
+ type OpenSpecCriterion,
33
+ } from './openspec-parser.js'
34
+
35
+ // EARS Generator (TAG-013)
36
+ export {
37
+ generateEarsSpec,
38
+ type EarsPattern,
39
+ type EarsRequirement,
40
+ type GeneratedEarsSpec,
41
+ } from './ears-generator.js'
42
+
43
+ // TAG Chain Generator (TAG-014)
44
+ export {
45
+ generateTagChain,
46
+ formatTagList,
47
+ type GeneratedTag,
48
+ type GeneratedPlan,
49
+ } from './tag-generator.js'
50
+
51
+ // Gherkin Generator (TAG-015)
52
+ export {
53
+ generateGherkinCriteria,
54
+ type GherkinStepType,
55
+ type GherkinStep,
56
+ type GherkinScenario,
57
+ type GherkinFeature,
58
+ type GeneratedAcceptance,
59
+ } from './gherkin-generator.js'
60
+
61
+ // Migration Orchestrator (TAG-016)
62
+ export {
63
+ migrateOpenSpecToMoai,
64
+ previewMigration,
65
+ formatMigrationResult,
66
+ formatBatchResult,
67
+ getSpecPreview,
68
+ getPlanPreview,
69
+ getAcceptancePreview,
70
+ type MigrationOptions,
71
+ type MigrationResult,
72
+ type BatchMigrationResult,
73
+ } from './migrate-spec-format.js'