automagik-forge 0.1.12 β†’ 0.1.13

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 (301) hide show
  1. package/.cargo/config.toml +13 -0
  2. package/.claude/commands/commit.md +376 -0
  3. package/.claude/commands/prompt.md +871 -0
  4. package/.env.example +20 -0
  5. package/.github/actions/setup-node/action.yml +29 -0
  6. package/.github/images/automagik-logo.png +0 -0
  7. package/.github/workflows/pre-release.yml +470 -0
  8. package/.github/workflows/publish.yml +145 -0
  9. package/.github/workflows/test.yml +63 -0
  10. package/.mcp.json +57 -0
  11. package/AGENT.md +40 -0
  12. package/CLAUDE.md +40 -0
  13. package/CODE-OF-CONDUCT.md +89 -0
  14. package/Cargo.toml +19 -0
  15. package/Dockerfile +43 -0
  16. package/LICENSE +201 -0
  17. package/Makefile +97 -0
  18. package/README.md +447 -143
  19. package/backend/.sqlx/query-01b7e2bac1261d8be3d03c03df3e5220590da6c31c77f161074fc62752d63881.json +12 -0
  20. package/backend/.sqlx/query-03f2b02ba6dc5ea2b3cf6b1004caea0ad6bcc10ebd63f441d321a389f026e263.json +12 -0
  21. package/backend/.sqlx/query-0923b77d137a29fc54d399a873ff15fc4af894490bc65a4d344a7575cb0d8643.json +12 -0
  22. package/backend/.sqlx/query-0f808bcdb63c5f180836e448dd64c435c51758b2fc54a52ce9e67495b1ab200e.json +68 -0
  23. package/backend/.sqlx/query-1268afe9ca849daa6722e3df7ca8e9e61f0d37052e782bb5452ab8e1018d9b63.json +12 -0
  24. package/backend/.sqlx/query-1b082630a9622f8667ee7a9aba2c2d3176019a68c6bb83d33008594821415a57.json +12 -0
  25. package/backend/.sqlx/query-1c7b06ba1e112abf6b945a2ff08a0b40ec23f3738c2e7399f067b558cf8d490e.json +12 -0
  26. package/backend/.sqlx/query-1f619f01f46859a64ded531dd0ef61abacfe62e758abe7030a6aa745140b95ca.json +104 -0
  27. package/backend/.sqlx/query-1fca1ce14b4b20205364cd1f1f45ebe1d2e30cd745e59e189d56487b5639dfbb.json +12 -0
  28. package/backend/.sqlx/query-212828320e8d871ab9d83705a040b23bcf0393dc7252177fc539a74657f578ef.json +32 -0
  29. package/backend/.sqlx/query-290ce5c152be8d36e58ff42570f9157beb07ab9e77a03ec6fc30b4f56f9b8f6b.json +56 -0
  30. package/backend/.sqlx/query-2b471d2c2e8ffbe0cd42d2a91b814c0d79f9d09200f147e3cea33ba4ce673c8a.json +68 -0
  31. package/backend/.sqlx/query-354a48c705bb9bb2048c1b7f10fcb714e23f9db82b7a4ea6932486197b2ede6a.json +92 -0
  32. package/backend/.sqlx/query-36c9e3dd10648e94b949db5c91a774ecb1e10a899ef95da74066eccedca4d8b2.json +12 -0
  33. package/backend/.sqlx/query-36e4ba7bbd81b402d5a20b6005755eafbb174c8dda442081823406ac32809a94.json +56 -0
  34. package/backend/.sqlx/query-3a5b3c98a55ca183ab20c74708e3d7e579dda37972c059e7515c4ceee4bd8dd3.json +62 -0
  35. package/backend/.sqlx/query-3d0a1cabf2a52e9d90cdfd29c509ca89aeb448d0c1d2446c65cd43db40735e86.json +62 -0
  36. package/backend/.sqlx/query-3d6bd16fbce59efe30b7f67ea342e0e4ea6d1432389c02468ad79f1f742d4031.json +56 -0
  37. package/backend/.sqlx/query-4049ca413b285a05aca6b25385e9c8185575f01e9069e4e8581aa45d713f612f.json +32 -0
  38. package/backend/.sqlx/query-412bacd3477d86369082e90f52240407abce436cb81292d42b2dbe1e5c18eea1.json +104 -0
  39. package/backend/.sqlx/query-417a8b1ff4e51de82aea0159a3b97932224dc325b23476cb84153d690227fd8b.json +62 -0
  40. package/backend/.sqlx/query-461cc1b0bb6fd909afc9dd2246e8526b3771cfbb0b22ae4b5d17b51af587b9e2.json +56 -0
  41. package/backend/.sqlx/query-58408c7a8cdeeda0bef359f1f9bd91299a339dc2b191462fc58c9736a56d5227.json +92 -0
  42. package/backend/.sqlx/query-5a886026d75d515c01f347cc203c8d99dd04c61dc468e2e4c5aa548436d13834.json +62 -0
  43. package/backend/.sqlx/query-5b902137b11022d2e1a5c4f6a9c83fec1a856c6a710aff831abd2382ede76b43.json +12 -0
  44. package/backend/.sqlx/query-5ed1238e52e59bb5f76c0f153fd99a14093f7ce2585bf9843585608f17ec575b.json +104 -0
  45. package/backend/.sqlx/query-6e8b860b14decfc2227dc57213f38442943d3fbef5c8418fd6b634c6e0f5e2ea.json +104 -0
  46. package/backend/.sqlx/query-6ec414276994c4ccb2433eaa5b1b342168557d17ddf5a52dac84cb1b59b9de8f.json +68 -0
  47. package/backend/.sqlx/query-6ecfa16d0cf825aacf233544b5baf151e9adfdca26c226ad71020d291fd802d5.json +62 -0
  48. package/backend/.sqlx/query-72509d252c39fce77520aa816cb2acbc1fb35dc2605e7be893610599b2427f2e.json +62 -0
  49. package/backend/.sqlx/query-75239b2da188f749707d77f3c1544332ca70db3d6d6743b2601dc0d167536437.json +62 -0
  50. package/backend/.sqlx/query-83d10e29f8478aff33434f9ac67068e013b888b953a2657e2bb72a6f619d04f2.json +50 -0
  51. package/backend/.sqlx/query-8610803360ea18b9b9d078a6981ea56abfbfe84e6354fc1d5ae4c622e01410ed.json +68 -0
  52. package/backend/.sqlx/query-86d03eb70eef39c59296416867f2ee66c9f7cd8b7f961fbda2f89fc0a1c442c2.json +12 -0
  53. package/backend/.sqlx/query-87d0feb5a6b442bad9c60068ea7569599cc6fc91a0e2692ecb42e93b03201b9d.json +68 -0
  54. package/backend/.sqlx/query-8a67b3b3337248f06a57bdf8a908f7ef23177431eaed82dc08c94c3e5944340e.json +12 -0
  55. package/backend/.sqlx/query-8f01ebd64bdcde6a090479f14810d73ba23020e76fd70854ac57f2da251702c3.json +12 -0
  56. package/backend/.sqlx/query-90fd607fcb2dca72239ff25e618e21e174b195991eaa33722cbf5f76da84cfab.json +62 -0
  57. package/backend/.sqlx/query-92e8bdbcd80c5ff3db7a35cf79492048803ef305cbdef0d0a1fe5dc881ca8c71.json +104 -0
  58. package/backend/.sqlx/query-93a1605f90e9672dad29b472b6ad85fa9a55ea3ffa5abcb8724b09d61be254ca.json +20 -0
  59. package/backend/.sqlx/query-9472c8fb477958167f5fae40b85ac44252468c5226b2cdd7770f027332eed6d7.json +104 -0
  60. package/backend/.sqlx/query-96036c4f9e0f48bdc5a4a4588f0c5f288ac7aaa5425cac40fc33f337e1a351f2.json +56 -0
  61. package/backend/.sqlx/query-9edb2c01e91fd0f0fe7b56e988c7ae0393150f50be3f419a981e035c0121dfc7.json +104 -0
  62. package/backend/.sqlx/query-a157cf00616f703bfba21927f1eb1c9eec2a81c02da15f66efdba0b6c375de1b.json +26 -0
  63. package/backend/.sqlx/query-a31fff84f3b8e532fd1160447d89d700f06ae08821fee00c9a5b60492b05259c.json +62 -0
  64. package/backend/.sqlx/query-a5ba908419fb3e456bdd2daca41ba06cc3212ffffb8520fc7dbbcc8b60ada314.json +12 -0
  65. package/backend/.sqlx/query-a6d2961718dbc3b1a925e549f49a159c561bef58c105529275f274b27e2eba5b.json +104 -0
  66. package/backend/.sqlx/query-a9e93d5b09b29faf66e387e4d7596a792d81e75c4d3726e83c2963e8d7c9b56f.json +104 -0
  67. package/backend/.sqlx/query-ac5247c8d7fb86e4650c4b0eb9420031614c831b7b085083bac20c1af314c538.json +12 -0
  68. package/backend/.sqlx/query-afef9467be74c411c4cb119a8b2b1aea53049877dfc30cc60b486134ba4b4c9f.json +68 -0
  69. package/backend/.sqlx/query-b2b2c6b4d0b1a347b5c4cb63c3a46a265d4db53be9554989a814b069d0af82f2.json +62 -0
  70. package/backend/.sqlx/query-c50d2ff0b12e5bcc81e371089ee2d007e233e7db93aefba4fef08e7aa68f5ab7.json +20 -0
  71. package/backend/.sqlx/query-c614e6056b244ca07f1b9d44e7edc9d5819225c6f8d9e077070c6e518a17f50b.json +12 -0
  72. package/backend/.sqlx/query-c67259be8bf4ee0cfd32167b2aa3b7fe9192809181a8171bf1c2d6df731967ae.json +12 -0
  73. package/backend/.sqlx/query-d2d0a1b985ebbca6a2b3e882a221a219f3199890fa640afc946ef1a792d6d8de.json +12 -0
  74. package/backend/.sqlx/query-d30aa5786757f32bf2b9c5fe51a45e506c71c28c5994e430d9b0546adb15ffa2.json +20 -0
  75. package/backend/.sqlx/query-d3b9ea1de1576af71b312924ce7f4ea8ae5dbe2ac138ea3b4470f2d5cd734846.json +12 -0
  76. package/backend/.sqlx/query-ed8456646fa69ddd412441955f06ff22bfb790f29466450735e0b8bb1bc4ec94.json +12 -0
  77. package/backend/Cargo.toml +71 -0
  78. package/backend/build.rs +32 -0
  79. package/backend/migrations/20250617183714_init.sql +44 -0
  80. package/backend/migrations/20250620212427_execution_processes.sql +25 -0
  81. package/backend/migrations/20250620214100_remove_stdout_stderr_from_task_attempts.sql +28 -0
  82. package/backend/migrations/20250621120000_relate_activities_to_execution_processes.sql +23 -0
  83. package/backend/migrations/20250623120000_executor_sessions.sql +17 -0
  84. package/backend/migrations/20250623130000_add_executor_type_to_execution_processes.sql +4 -0
  85. package/backend/migrations/20250625000000_add_dev_script_to_projects.sql +4 -0
  86. package/backend/migrations/20250701000000_add_branch_to_task_attempts.sql +2 -0
  87. package/backend/migrations/20250701000001_add_pr_tracking_to_task_attempts.sql +5 -0
  88. package/backend/migrations/20250701120000_add_assistant_message_to_executor_sessions.sql +2 -0
  89. package/backend/migrations/20250708000000_add_base_branch_to_task_attempts.sql +2 -0
  90. package/backend/migrations/20250709000000_add_worktree_deleted_flag.sql +2 -0
  91. package/backend/migrations/20250710000000_add_setup_completion.sql +3 -0
  92. package/backend/migrations/20250715154859_add_task_templates.sql +25 -0
  93. package/backend/migrations/20250716143725_add_default_templates.sql +174 -0
  94. package/backend/migrations/20250716161432_update_executor_names_to_kebab_case.sql +20 -0
  95. package/backend/migrations/20250716170000_add_parent_task_to_tasks.sql +7 -0
  96. package/backend/migrations/20250717000000_drop_task_attempt_activities.sql +9 -0
  97. package/backend/migrations/20250719000000_add_cleanup_script_to_projects.sql +2 -0
  98. package/backend/migrations/20250720000000_add_cleanupscript_to_process_type_constraint.sql +25 -0
  99. package/backend/migrations/20250723000000_add_wish_to_tasks.sql +7 -0
  100. package/backend/migrations/20250724000000_remove_unique_wish_constraint.sql +5 -0
  101. package/backend/scripts/toast-notification.ps1 +23 -0
  102. package/backend/sounds/abstract-sound1.wav +0 -0
  103. package/backend/sounds/abstract-sound2.wav +0 -0
  104. package/backend/sounds/abstract-sound3.wav +0 -0
  105. package/backend/sounds/abstract-sound4.wav +0 -0
  106. package/backend/sounds/cow-mooing.wav +0 -0
  107. package/backend/sounds/phone-vibration.wav +0 -0
  108. package/backend/sounds/rooster.wav +0 -0
  109. package/backend/src/app_state.rs +218 -0
  110. package/backend/src/bin/generate_types.rs +189 -0
  111. package/backend/src/bin/mcp_task_server.rs +191 -0
  112. package/backend/src/execution_monitor.rs +1193 -0
  113. package/backend/src/executor.rs +1053 -0
  114. package/backend/src/executors/amp.rs +697 -0
  115. package/backend/src/executors/ccr.rs +91 -0
  116. package/backend/src/executors/charm_opencode.rs +113 -0
  117. package/backend/src/executors/claude.rs +887 -0
  118. package/backend/src/executors/cleanup_script.rs +124 -0
  119. package/backend/src/executors/dev_server.rs +53 -0
  120. package/backend/src/executors/echo.rs +79 -0
  121. package/backend/src/executors/gemini/config.rs +67 -0
  122. package/backend/src/executors/gemini/streaming.rs +363 -0
  123. package/backend/src/executors/gemini.rs +765 -0
  124. package/backend/src/executors/mod.rs +23 -0
  125. package/backend/src/executors/opencode_ai.rs +113 -0
  126. package/backend/src/executors/setup_script.rs +130 -0
  127. package/backend/src/executors/sst_opencode/filter.rs +184 -0
  128. package/backend/src/executors/sst_opencode/tools.rs +139 -0
  129. package/backend/src/executors/sst_opencode.rs +756 -0
  130. package/backend/src/lib.rs +45 -0
  131. package/backend/src/main.rs +324 -0
  132. package/backend/src/mcp/mod.rs +1 -0
  133. package/backend/src/mcp/task_server.rs +850 -0
  134. package/backend/src/middleware/mod.rs +3 -0
  135. package/backend/src/middleware/model_loaders.rs +242 -0
  136. package/backend/src/models/api_response.rs +36 -0
  137. package/backend/src/models/config.rs +375 -0
  138. package/backend/src/models/execution_process.rs +430 -0
  139. package/backend/src/models/executor_session.rs +225 -0
  140. package/backend/src/models/mod.rs +12 -0
  141. package/backend/src/models/project.rs +356 -0
  142. package/backend/src/models/task.rs +345 -0
  143. package/backend/src/models/task_attempt.rs +1214 -0
  144. package/backend/src/models/task_template.rs +146 -0
  145. package/backend/src/openapi.rs +93 -0
  146. package/backend/src/routes/auth.rs +297 -0
  147. package/backend/src/routes/config.rs +385 -0
  148. package/backend/src/routes/filesystem.rs +228 -0
  149. package/backend/src/routes/health.rs +16 -0
  150. package/backend/src/routes/mod.rs +9 -0
  151. package/backend/src/routes/projects.rs +562 -0
  152. package/backend/src/routes/stream.rs +244 -0
  153. package/backend/src/routes/task_attempts.rs +1172 -0
  154. package/backend/src/routes/task_templates.rs +229 -0
  155. package/backend/src/routes/tasks.rs +353 -0
  156. package/backend/src/services/analytics.rs +216 -0
  157. package/backend/src/services/git_service.rs +1321 -0
  158. package/backend/src/services/github_service.rs +307 -0
  159. package/backend/src/services/mod.rs +13 -0
  160. package/backend/src/services/notification_service.rs +263 -0
  161. package/backend/src/services/pr_monitor.rs +214 -0
  162. package/backend/src/services/process_service.rs +940 -0
  163. package/backend/src/utils/path.rs +96 -0
  164. package/backend/src/utils/shell.rs +19 -0
  165. package/backend/src/utils/text.rs +24 -0
  166. package/backend/src/utils/worktree_manager.rs +578 -0
  167. package/backend/src/utils.rs +125 -0
  168. package/backend/test.db +0 -0
  169. package/build-npm-package.sh +61 -0
  170. package/dev_assets_seed/config.json +19 -0
  171. package/frontend/.eslintrc.json +25 -0
  172. package/frontend/.prettierrc.json +8 -0
  173. package/frontend/components.json +17 -0
  174. package/frontend/index.html +19 -0
  175. package/frontend/package-lock.json +7321 -0
  176. package/frontend/package.json +61 -0
  177. package/frontend/postcss.config.js +6 -0
  178. package/frontend/public/android-chrome-192x192.png +0 -0
  179. package/frontend/public/android-chrome-512x512.png +0 -0
  180. package/frontend/public/apple-touch-icon.png +0 -0
  181. package/frontend/public/automagik-forge-logo-dark.svg +3 -0
  182. package/frontend/public/automagik-forge-logo.svg +3 -0
  183. package/frontend/public/automagik-forge-screenshot-overview.png +0 -0
  184. package/frontend/public/favicon-16x16.png +0 -0
  185. package/frontend/public/favicon-32x32.png +0 -0
  186. package/frontend/public/favicon.ico +0 -0
  187. package/frontend/public/site.webmanifest +1 -0
  188. package/frontend/public/viba-kanban-favicon.png +0 -0
  189. package/frontend/src/App.tsx +157 -0
  190. package/frontend/src/components/DisclaimerDialog.tsx +106 -0
  191. package/frontend/src/components/GitHubLoginDialog.tsx +314 -0
  192. package/frontend/src/components/OnboardingDialog.tsx +185 -0
  193. package/frontend/src/components/PrivacyOptInDialog.tsx +130 -0
  194. package/frontend/src/components/ProvidePatDialog.tsx +98 -0
  195. package/frontend/src/components/TaskTemplateManager.tsx +336 -0
  196. package/frontend/src/components/config-provider.tsx +119 -0
  197. package/frontend/src/components/context/TaskDetailsContextProvider.tsx +470 -0
  198. package/frontend/src/components/context/taskDetailsContext.ts +125 -0
  199. package/frontend/src/components/keyboard-shortcuts-demo.tsx +35 -0
  200. package/frontend/src/components/layout/navbar.tsx +86 -0
  201. package/frontend/src/components/logo.tsx +44 -0
  202. package/frontend/src/components/projects/ProjectCard.tsx +155 -0
  203. package/frontend/src/components/projects/project-detail.tsx +251 -0
  204. package/frontend/src/components/projects/project-form-fields.tsx +238 -0
  205. package/frontend/src/components/projects/project-form.tsx +301 -0
  206. package/frontend/src/components/projects/project-list.tsx +200 -0
  207. package/frontend/src/components/projects/projects-page.tsx +20 -0
  208. package/frontend/src/components/tasks/BranchSelector.tsx +169 -0
  209. package/frontend/src/components/tasks/DeleteFileConfirmationDialog.tsx +94 -0
  210. package/frontend/src/components/tasks/EditorSelectionDialog.tsx +119 -0
  211. package/frontend/src/components/tasks/TaskCard.tsx +154 -0
  212. package/frontend/src/components/tasks/TaskDetails/CollapsibleToolbar.tsx +33 -0
  213. package/frontend/src/components/tasks/TaskDetails/DiffCard.tsx +109 -0
  214. package/frontend/src/components/tasks/TaskDetails/DiffChunkSection.tsx +135 -0
  215. package/frontend/src/components/tasks/TaskDetails/DiffFile.tsx +296 -0
  216. package/frontend/src/components/tasks/TaskDetails/DiffTab.tsx +32 -0
  217. package/frontend/src/components/tasks/TaskDetails/DisplayConversationEntry.tsx +392 -0
  218. package/frontend/src/components/tasks/TaskDetails/LogsTab/Conversation.tsx +256 -0
  219. package/frontend/src/components/tasks/TaskDetails/LogsTab/ConversationEntry.tsx +56 -0
  220. package/frontend/src/components/tasks/TaskDetails/LogsTab/NormalizedConversationViewer.tsx +92 -0
  221. package/frontend/src/components/tasks/TaskDetails/LogsTab/Prompt.tsx +22 -0
  222. package/frontend/src/components/tasks/TaskDetails/LogsTab/SetupScriptRunning.tsx +49 -0
  223. package/frontend/src/components/tasks/TaskDetails/LogsTab.tsx +186 -0
  224. package/frontend/src/components/tasks/TaskDetails/ProcessesTab.tsx +288 -0
  225. package/frontend/src/components/tasks/TaskDetails/RelatedTasksTab.tsx +216 -0
  226. package/frontend/src/components/tasks/TaskDetails/TabNavigation.tsx +93 -0
  227. package/frontend/src/components/tasks/TaskDetailsHeader.tsx +169 -0
  228. package/frontend/src/components/tasks/TaskDetailsPanel.tsx +126 -0
  229. package/frontend/src/components/tasks/TaskDetailsToolbar.tsx +302 -0
  230. package/frontend/src/components/tasks/TaskFollowUpSection.tsx +130 -0
  231. package/frontend/src/components/tasks/TaskFormDialog.tsx +400 -0
  232. package/frontend/src/components/tasks/TaskKanbanBoard.tsx +180 -0
  233. package/frontend/src/components/tasks/Toolbar/CreateAttempt.tsx +259 -0
  234. package/frontend/src/components/tasks/Toolbar/CreatePRDialog.tsx +243 -0
  235. package/frontend/src/components/tasks/Toolbar/CurrentAttempt.tsx +899 -0
  236. package/frontend/src/components/tasks/index.ts +2 -0
  237. package/frontend/src/components/theme-provider.tsx +82 -0
  238. package/frontend/src/components/theme-toggle.tsx +36 -0
  239. package/frontend/src/components/ui/alert.tsx +59 -0
  240. package/frontend/src/components/ui/auto-expanding-textarea.tsx +70 -0
  241. package/frontend/src/components/ui/badge.tsx +36 -0
  242. package/frontend/src/components/ui/button.tsx +56 -0
  243. package/frontend/src/components/ui/card.tsx +86 -0
  244. package/frontend/src/components/ui/checkbox.tsx +44 -0
  245. package/frontend/src/components/ui/chip.tsx +25 -0
  246. package/frontend/src/components/ui/dialog.tsx +124 -0
  247. package/frontend/src/components/ui/dropdown-menu.tsx +198 -0
  248. package/frontend/src/components/ui/file-search-textarea.tsx +292 -0
  249. package/frontend/src/components/ui/folder-picker.tsx +279 -0
  250. package/frontend/src/components/ui/input.tsx +25 -0
  251. package/frontend/src/components/ui/label.tsx +24 -0
  252. package/frontend/src/components/ui/loader.tsx +26 -0
  253. package/frontend/src/components/ui/markdown-renderer.tsx +75 -0
  254. package/frontend/src/components/ui/select.tsx +160 -0
  255. package/frontend/src/components/ui/separator.tsx +31 -0
  256. package/frontend/src/components/ui/shadcn-io/kanban/index.tsx +185 -0
  257. package/frontend/src/components/ui/table.tsx +117 -0
  258. package/frontend/src/components/ui/tabs.tsx +53 -0
  259. package/frontend/src/components/ui/textarea.tsx +22 -0
  260. package/frontend/src/components/ui/tooltip.tsx +28 -0
  261. package/frontend/src/hooks/useNormalizedConversation.ts +440 -0
  262. package/frontend/src/index.css +225 -0
  263. package/frontend/src/lib/api.ts +630 -0
  264. package/frontend/src/lib/keyboard-shortcuts.ts +266 -0
  265. package/frontend/src/lib/responsive-config.ts +70 -0
  266. package/frontend/src/lib/types.ts +39 -0
  267. package/frontend/src/lib/utils.ts +10 -0
  268. package/frontend/src/main.tsx +50 -0
  269. package/frontend/src/pages/McpServers.tsx +418 -0
  270. package/frontend/src/pages/Settings.tsx +610 -0
  271. package/frontend/src/pages/project-tasks.tsx +575 -0
  272. package/frontend/src/pages/projects.tsx +18 -0
  273. package/frontend/src/vite-env.d.ts +1 -0
  274. package/frontend/tailwind.config.js +125 -0
  275. package/frontend/tsconfig.json +26 -0
  276. package/frontend/tsconfig.node.json +10 -0
  277. package/frontend/vite.config.ts +33 -0
  278. package/npx-cli/README.md +159 -0
  279. package/npx-cli/automagik-forge-0.0.55.tgz +0 -0
  280. package/npx-cli/automagik-forge-0.1.0.tgz +0 -0
  281. package/{dist/linux-x64/automagik-forge.zip β†’ npx-cli/automagik-forge-0.1.10.tgz} +0 -0
  282. package/npx-cli/package.json +17 -0
  283. package/npx-cli/vibe-kanban-0.0.55.tgz +0 -0
  284. package/package.json +23 -13
  285. package/pnpm-workspace.yaml +2 -0
  286. package/rust-toolchain.toml +11 -0
  287. package/rustfmt.toml +3 -0
  288. package/scripts/load-env.js +43 -0
  289. package/scripts/mcp_test.js +374 -0
  290. package/scripts/prepare-db.js +45 -0
  291. package/scripts/setup-dev-environment.js +274 -0
  292. package/scripts/start-mcp-sse.js +70 -0
  293. package/scripts/test-debug.js +32 -0
  294. package/scripts/test-mcp-sse.js +138 -0
  295. package/scripts/test-simple.js +44 -0
  296. package/scripts/test-wish-final.js +179 -0
  297. package/scripts/test-wish-system.js +221 -0
  298. package/shared/types.ts +182 -0
  299. package/test-npm-package.sh +42 -0
  300. package/dist/linux-x64/automagik-forge-mcp.zip +0 -0
  301. /package/{bin β†’ npx-cli/bin}/cli.js +0 -0
@@ -0,0 +1,13 @@
1
+ # Set macOS deployment target to avoid linker warnings
2
+ # Use Rust project defaults: 10.12 for x86_64, 11.0 for aarch64
3
+ [target.x86_64-apple-darwin.env]
4
+ MACOSX_DEPLOYMENT_TARGET = "10.12"
5
+
6
+ [target.aarch64-apple-darwin.env]
7
+ MACOSX_DEPLOYMENT_TARGET = "11.0"
8
+
9
+ [target.x86_64-pc-windows-msvc]
10
+ rustflags = ["-C", "link-arg=/DEBUG:FASTLINK"]
11
+
12
+ [target.aarch64-pc-windows-msvc]
13
+ rustflags = ["-C", "link-arg=/DEBUG:FASTLINK"]
@@ -0,0 +1,376 @@
1
+ # /commit
2
+
3
+ ---
4
+ allowed-tools: Bash(*), Glob(*), Grep(*), Read(*), Write(*)
5
+ description: Intelligent git commit workflow with smart file staging, diff analysis, and automated push
6
+ ---
7
+
8
+ Automate the complete git workflow: analyze changes, stage files intelligently, generate commit messages, and push to remote.
9
+
10
+ ## Usage
11
+
12
+ ```bash
13
+ # Auto-commit with intelligent analysis
14
+ /commit
15
+
16
+ # Commit with custom message prefix
17
+ /commit "feat: add user authentication"
18
+
19
+ # Commit specific changes only
20
+ /commit "fix: resolve payment bug" --files-only="src/payment/*"
21
+
22
+ # Commit without push
23
+ /commit "wip: work in progress" --no-push
24
+
25
+ # Dry run to see what would be committed
26
+ /commit --dry-run
27
+ ```
28
+
29
+ ## Features
30
+
31
+ ### πŸ” Smart Change Analysis
32
+ - Analyzes staged and unstaged changes
33
+ - Detects file types and change patterns
34
+ - Identifies potentially sensitive files to exclude
35
+ - Suggests optimal commit scope
36
+
37
+ ### πŸ“ Intelligent File Staging
38
+ - Automatically stages relevant files
39
+ - Excludes common unwanted files (logs, cache, temp, etc.)
40
+ - Handles new files intelligently
41
+ - Respects `.gitignore` patterns
42
+
43
+ ### πŸ“ AI-Powered Commit Messages
44
+ - Generates descriptive commit messages based on changes
45
+ - Follows conventional commit format
46
+ - Includes co-author attribution per project standards
47
+ - Analyzes diff content for accurate descriptions
48
+
49
+ ### πŸš€ Automated Push
50
+ - Pushes to remote after successful commit
51
+ - Handles upstream branch setup
52
+ - Provides clear feedback on push status
53
+
54
+ ## Automatic Execution
55
+
56
+ ```bash
57
+ #!/bin/bash
58
+
59
+ # Parse command arguments
60
+ MESSAGE_PREFIX="$1"
61
+ FILES_ONLY="$2"
62
+ NO_PUSH="$3"
63
+ DRY_RUN="$4"
64
+
65
+ # Configuration
66
+ COAUTHOR="Co-Authored-By: Automagik Genie <genie@namastex.ai>"
67
+ EXCLUDE_PATTERNS=(
68
+ "*.log" "*.tmp" "*.cache" "*.pyc" "__pycache__/*"
69
+ ".DS_Store" "*.swp" "*.swo" "node_modules/*"
70
+ ".venv/*" "venv/*" "*.egg-info/*" "build/*"
71
+ "dist/*" ".pytest_cache/*" ".coverage"
72
+ "*.backup" "*.bak" "*.orig"
73
+ )
74
+
75
+ echo "πŸ” Analyzing repository changes..."
76
+
77
+ # Step 1: Check git status
78
+ echo "πŸ“Š Current git status:"
79
+ git status --porcelain
80
+
81
+ echo ""
82
+ echo "πŸ“‹ Staged changes:"
83
+ git diff --cached --name-only
84
+
85
+ echo ""
86
+ echo "πŸ“‹ Unstaged changes:"
87
+ git diff --name-only
88
+
89
+ echo ""
90
+ echo "πŸ“‹ Untracked files:"
91
+ git ls-files --others --exclude-standard
92
+
93
+ # Step 2: Smart file staging
94
+ echo ""
95
+ echo "🎯 Smart file staging analysis..."
96
+
97
+ # Get all changed files (staged + unstaged + untracked)
98
+ ALL_FILES=($(git diff --cached --name-only))
99
+ ALL_FILES+=($(git diff --name-only))
100
+ ALL_FILES+=($(git ls-files --others --exclude-standard))
101
+
102
+ # Remove duplicates and sort
103
+ UNIQUE_FILES=($(printf '%s\n' "${ALL_FILES[@]}" | sort -u))
104
+
105
+ # Filter files intelligently
106
+ FILES_TO_STAGE=()
107
+ EXCLUDED_FILES=()
108
+
109
+ for file in "${UNIQUE_FILES[@]}"; do
110
+ # Skip empty entries
111
+ [[ -z "$file" ]] && continue
112
+
113
+ # Check if file should be excluded
114
+ EXCLUDE=false
115
+ for pattern in "${EXCLUDE_PATTERNS[@]}"; do
116
+ if [[ "$file" == $pattern ]]; then
117
+ EXCLUDE=true
118
+ break
119
+ fi
120
+ done
121
+
122
+ # Additional smart exclusions
123
+ if [[ "$file" =~ \.(log|tmp|cache|pyc)$ ]] || \
124
+ [[ "$file" =~ ^\..*\.swp$ ]] || \
125
+ [[ "$file" =~ node_modules/ ]] || \
126
+ [[ "$file" =~ __pycache__/ ]] || \
127
+ [[ "$file" =~ \.venv/ ]] || \
128
+ [[ "$file" =~ build/ ]] || \
129
+ [[ "$file" =~ dist/ ]]; then
130
+ EXCLUDE=true
131
+ fi
132
+
133
+ # Check if file exists (might be deleted)
134
+ if [[ ! -f "$file" ]] && [[ ! -d "$file" ]]; then
135
+ # File might be deleted, check git status
136
+ if git status --porcelain | grep -q "^.D.*$file"; then
137
+ EXCLUDE=false # Include deleted files
138
+ fi
139
+ fi
140
+
141
+ if [[ "$EXCLUDE" == true ]]; then
142
+ EXCLUDED_FILES+=("$file")
143
+ echo "🚫 Excluding: $file"
144
+ else
145
+ FILES_TO_STAGE+=("$file")
146
+ echo "βœ… Including: $file"
147
+ fi
148
+ done
149
+
150
+ # Handle files-only filter
151
+ if [[ -n "$FILES_ONLY" ]]; then
152
+ echo ""
153
+ echo "πŸ” Filtering files matching: $FILES_ONLY"
154
+ FILTERED_FILES=()
155
+ for file in "${FILES_TO_STAGE[@]}"; do
156
+ if [[ "$file" == $FILES_ONLY ]]; then
157
+ FILTERED_FILES+=("$file")
158
+ fi
159
+ done
160
+ FILES_TO_STAGE=("${FILTERED_FILES[@]}")
161
+ fi
162
+
163
+ echo ""
164
+ echo "πŸ“ Files to stage: ${#FILES_TO_STAGE[@]}"
165
+ for file in "${FILES_TO_STAGE[@]}"; do
166
+ echo " β€’ $file"
167
+ done
168
+
169
+ # Step 3: Stage files (unless dry run)
170
+ if [[ "$DRY_RUN" != "--dry-run" ]]; then
171
+ echo ""
172
+ echo "⬆️ Staging files..."
173
+ for file in "${FILES_TO_STAGE[@]}"; do
174
+ git add "$file"
175
+ echo "βœ… Staged: $file"
176
+ done
177
+ else
178
+ echo ""
179
+ echo "πŸ” DRY RUN: Would stage ${#FILES_TO_STAGE[@]} files"
180
+ fi
181
+
182
+ # Step 4: Generate diff for commit message analysis
183
+ echo ""
184
+ echo "πŸ“ Analyzing changes for commit message..."
185
+ DIFF_OUTPUT=$(git diff --cached --name-status 2>/dev/null || echo "")
186
+ DIFF_STATS=$(git diff --cached --stat 2>/dev/null || echo "")
187
+
188
+ echo "Changes summary:"
189
+ echo "$DIFF_STATS"
190
+
191
+ # Step 5: Generate intelligent commit message
192
+ echo ""
193
+ echo "πŸ€– Generating commit message..."
194
+
195
+ # Analyze changes by type
196
+ ADDED_FILES=($(echo "$DIFF_OUTPUT" | grep "^A" | cut -f2))
197
+ MODIFIED_FILES=($(echo "$DIFF_OUTPUT" | grep "^M" | cut -f2))
198
+ DELETED_FILES=($(echo "$DIFF_OUTPUT" | grep "^D" | cut -f2))
199
+ RENAMED_FILES=($(echo "$DIFF_OUTPUT" | grep "^R" | cut -f2))
200
+
201
+ # Determine change type and scope
202
+ CHANGE_TYPE="feat"
203
+ CHANGE_SCOPE=""
204
+ CHANGE_DESCRIPTION=""
205
+
206
+ # Analyze file patterns to determine type and scope
207
+ if [[ ${#ADDED_FILES[@]} -gt 0 ]] && [[ ${#MODIFIED_FILES[@]} -eq 0 ]]; then
208
+ CHANGE_TYPE="feat"
209
+ CHANGE_DESCRIPTION="add new functionality"
210
+ elif [[ ${#MODIFIED_FILES[@]} -gt 0 ]] && [[ ${#ADDED_FILES[@]} -eq 0 ]]; then
211
+ CHANGE_TYPE="fix"
212
+ CHANGE_DESCRIPTION="update existing functionality"
213
+ elif [[ ${#DELETED_FILES[@]} -gt 0 ]]; then
214
+ CHANGE_TYPE="refactor"
215
+ CHANGE_DESCRIPTION="remove unused code"
216
+ else
217
+ CHANGE_TYPE="chore"
218
+ CHANGE_DESCRIPTION="update codebase"
219
+ fi
220
+
221
+ # Determine scope from file paths
222
+ if [[ "${ADDED_FILES[*]} ${MODIFIED_FILES[*]}" =~ ai/agents/ ]]; then
223
+ CHANGE_SCOPE="agents"
224
+ elif [[ "${ADDED_FILES[*]} ${MODIFIED_FILES[*]}" =~ ai/teams/ ]]; then
225
+ CHANGE_SCOPE="teams"
226
+ elif [[ "${ADDED_FILES[*]} ${MODIFIED_FILES[*]}" =~ lib/knowledge/ ]]; then
227
+ CHANGE_SCOPE="knowledge"
228
+ elif [[ "${ADDED_FILES[*]} ${MODIFIED_FILES[*]}" =~ lib/utils/ ]]; then
229
+ CHANGE_SCOPE="utils"
230
+ elif [[ "${ADDED_FILES[*]} ${MODIFIED_FILES[*]}" =~ api/ ]]; then
231
+ CHANGE_SCOPE="api"
232
+ elif [[ "${ADDED_FILES[*]} ${MODIFIED_FILES[*]}" =~ config ]]; then
233
+ CHANGE_SCOPE="config"
234
+ fi
235
+
236
+ # Build commit message
237
+ if [[ -n "$MESSAGE_PREFIX" ]]; then
238
+ COMMIT_MESSAGE="$MESSAGE_PREFIX"
239
+ else
240
+ if [[ -n "$CHANGE_SCOPE" ]]; then
241
+ COMMIT_MESSAGE="$CHANGE_TYPE($CHANGE_SCOPE): $CHANGE_DESCRIPTION"
242
+ else
243
+ COMMIT_MESSAGE="$CHANGE_TYPE: $CHANGE_DESCRIPTION"
244
+ fi
245
+
246
+ # Add specific details based on files
247
+ if [[ ${#ADDED_FILES[@]} -gt 0 ]]; then
248
+ COMMIT_MESSAGE+="\n\nAdded files:\n"
249
+ for file in "${ADDED_FILES[@]:0:5}"; do # Limit to first 5
250
+ COMMIT_MESSAGE+="- $file\n"
251
+ done
252
+ [[ ${#ADDED_FILES[@]} -gt 5 ]] && COMMIT_MESSAGE+="- ... and $((${#ADDED_FILES[@]} - 5)) more files\n"
253
+ fi
254
+
255
+ if [[ ${#MODIFIED_FILES[@]} -gt 0 ]]; then
256
+ COMMIT_MESSAGE+="\nModified files:\n"
257
+ for file in "${MODIFIED_FILES[@]:0:5}"; do # Limit to first 5
258
+ COMMIT_MESSAGE+="- $file\n"
259
+ done
260
+ [[ ${#MODIFIED_FILES[@]} -gt 5 ]] && COMMIT_MESSAGE+="- ... and $((${#MODIFIED_FILES[@]} - 5)) more files\n"
261
+ fi
262
+
263
+ if [[ ${#DELETED_FILES[@]} -gt 0 ]]; then
264
+ COMMIT_MESSAGE+="\nDeleted files:\n"
265
+ for file in "${DELETED_FILES[@]:0:5}"; do # Limit to first 5
266
+ COMMIT_MESSAGE+="- $file\n"
267
+ done
268
+ [[ ${#DELETED_FILES[@]} -gt 5 ]] && COMMIT_MESSAGE+="- ... and $((${#DELETED_FILES[@]} - 5)) more files\n"
269
+ fi
270
+ fi
271
+
272
+ echo "πŸ“ Generated commit message:"
273
+ echo "----------------------------------------"
274
+ echo -e "$COMMIT_MESSAGE"
275
+ echo "----------------------------------------"
276
+ echo ""
277
+ echo "πŸ‘₯ Co-author: $COAUTHOR"
278
+
279
+ # Step 6: Create commit (unless dry run)
280
+ if [[ "$DRY_RUN" != "--dry-run" ]]; then
281
+ echo ""
282
+ echo "πŸ’Ύ Creating commit..."
283
+
284
+ git commit -m "$(echo -e "$COMMIT_MESSAGE")" -m "" -m "$COAUTHOR"
285
+
286
+ if [[ $? -eq 0 ]]; then
287
+ echo "βœ… Commit created successfully!"
288
+
289
+ # Step 7: Push to remote (unless --no-push)
290
+ if [[ "$NO_PUSH" != "--no-push" ]]; then
291
+ echo ""
292
+ echo "πŸš€ Pushing to remote..."
293
+
294
+ CURRENT_BRANCH=$(git branch --show-current)
295
+ echo "πŸ“ Current branch: $CURRENT_BRANCH"
296
+
297
+ # Check if upstream branch exists
298
+ if git rev-parse --verify origin/$CURRENT_BRANCH >/dev/null 2>&1; then
299
+ git push origin $CURRENT_BRANCH
300
+ else
301
+ echo "πŸ†• Setting upstream branch..."
302
+ git push -u origin $CURRENT_BRANCH
303
+ fi
304
+
305
+ if [[ $? -eq 0 ]]; then
306
+ echo "βœ… Successfully pushed to remote!"
307
+ echo "🌐 Changes are now available on: origin/$CURRENT_BRANCH"
308
+ else
309
+ echo "❌ Push failed. Please check remote repository access."
310
+ fi
311
+ else
312
+ echo "⏸️ Skipping push (--no-push specified)"
313
+ fi
314
+ else
315
+ echo "❌ Commit failed. Please check the changes and try again."
316
+ fi
317
+ else
318
+ echo ""
319
+ echo "πŸ” DRY RUN: Would create commit with message above"
320
+ fi
321
+
322
+ echo ""
323
+ echo "🏁 Git workflow complete!"
324
+ ```
325
+
326
+ ## Advanced Features
327
+
328
+ ### Smart Exclusion Patterns
329
+ The command automatically excludes common unwanted files:
330
+ - **Temporary files**: `*.tmp`, `*.cache`, `*.log`, `*.pyc`
331
+ - **IDE files**: `.DS_Store`, `*.swp`, `*.swo`
332
+ - **Dependencies**: `node_modules/*`, `.venv/*`, `venv/*`
333
+ - **Build artifacts**: `build/*`, `dist/*`, `*.egg-info/*`
334
+ - **Test artifacts**: `.pytest_cache/*`, `.coverage`
335
+ - **Backup files**: `*.backup`, `*.bak`, `*.orig`
336
+
337
+ ### Intelligent Change Detection
338
+ - **Added files**: Detects new functionality (`feat`)
339
+ - **Modified files**: Identifies bug fixes (`fix`) or updates
340
+ - **Deleted files**: Recognizes refactoring (`refactor`)
341
+ - **Mixed changes**: Categorizes as maintenance (`chore`)
342
+
343
+ ### Scope Detection
344
+ Automatically determines scope from file paths:
345
+ - `ai/agents/*` β†’ `agents`
346
+ - `ai/teams/*` β†’ `teams`
347
+ - `lib/knowledge/*` β†’ `knowledge`
348
+ - `lib/utils/*` β†’ `utils`
349
+ - `api/*` β†’ `api`
350
+ - `*config*` β†’ `config`
351
+
352
+ ### Project Standards Integration
353
+ - **Co-authoring**: Automatically adds `Co-Authored-By: Automagik Genie <genie@namastex.ai>`
354
+ - **Conventional commits**: Follows `type(scope): description` format
355
+ - **Detailed descriptions**: Includes file lists for context
356
+
357
+ ## Usage Examples
358
+
359
+ ```bash
360
+ # Basic usage - analyzes all changes and commits
361
+ /commit
362
+
363
+ # Custom message with auto-staging
364
+ /commit "feat(agents): add new knowledge base system"
365
+
366
+ # Commit only specific files
367
+ /commit "fix(api): resolve endpoint timeout" --files-only="api/*"
368
+
369
+ # Commit without pushing (for review)
370
+ /commit "wip: implementing user dashboard" --no-push
371
+
372
+ # See what would be committed without doing it
373
+ /commit --dry-run
374
+ ```
375
+
376
+ This command provides a complete, intelligent git workflow that handles the complexity of change analysis, smart file staging, and automated commit message generation while following your project's standards and conventions.