automagik-forge 0.1.13 → 0.1.14

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/README.md +143 -447
  2. package/dist/linux-x64/automagik-forge-mcp.zip +0 -0
  3. package/{npx-cli/automagik-forge-0.0.55.tgz → dist/linux-x64/automagik-forge.zip} +0 -0
  4. package/package.json +13 -23
  5. package/.cargo/config.toml +0 -13
  6. package/.claude/commands/commit.md +0 -376
  7. package/.claude/commands/prompt.md +0 -871
  8. package/.env.example +0 -20
  9. package/.github/actions/setup-node/action.yml +0 -29
  10. package/.github/images/automagik-logo.png +0 -0
  11. package/.github/workflows/pre-release.yml +0 -470
  12. package/.github/workflows/publish.yml +0 -145
  13. package/.github/workflows/test.yml +0 -63
  14. package/.mcp.json +0 -57
  15. package/AGENT.md +0 -40
  16. package/CLAUDE.md +0 -40
  17. package/CODE-OF-CONDUCT.md +0 -89
  18. package/Cargo.toml +0 -19
  19. package/Dockerfile +0 -43
  20. package/LICENSE +0 -201
  21. package/Makefile +0 -97
  22. package/backend/.sqlx/query-01b7e2bac1261d8be3d03c03df3e5220590da6c31c77f161074fc62752d63881.json +0 -12
  23. package/backend/.sqlx/query-03f2b02ba6dc5ea2b3cf6b1004caea0ad6bcc10ebd63f441d321a389f026e263.json +0 -12
  24. package/backend/.sqlx/query-0923b77d137a29fc54d399a873ff15fc4af894490bc65a4d344a7575cb0d8643.json +0 -12
  25. package/backend/.sqlx/query-0f808bcdb63c5f180836e448dd64c435c51758b2fc54a52ce9e67495b1ab200e.json +0 -68
  26. package/backend/.sqlx/query-1268afe9ca849daa6722e3df7ca8e9e61f0d37052e782bb5452ab8e1018d9b63.json +0 -12
  27. package/backend/.sqlx/query-1b082630a9622f8667ee7a9aba2c2d3176019a68c6bb83d33008594821415a57.json +0 -12
  28. package/backend/.sqlx/query-1c7b06ba1e112abf6b945a2ff08a0b40ec23f3738c2e7399f067b558cf8d490e.json +0 -12
  29. package/backend/.sqlx/query-1f619f01f46859a64ded531dd0ef61abacfe62e758abe7030a6aa745140b95ca.json +0 -104
  30. package/backend/.sqlx/query-1fca1ce14b4b20205364cd1f1f45ebe1d2e30cd745e59e189d56487b5639dfbb.json +0 -12
  31. package/backend/.sqlx/query-212828320e8d871ab9d83705a040b23bcf0393dc7252177fc539a74657f578ef.json +0 -32
  32. package/backend/.sqlx/query-290ce5c152be8d36e58ff42570f9157beb07ab9e77a03ec6fc30b4f56f9b8f6b.json +0 -56
  33. package/backend/.sqlx/query-2b471d2c2e8ffbe0cd42d2a91b814c0d79f9d09200f147e3cea33ba4ce673c8a.json +0 -68
  34. package/backend/.sqlx/query-354a48c705bb9bb2048c1b7f10fcb714e23f9db82b7a4ea6932486197b2ede6a.json +0 -92
  35. package/backend/.sqlx/query-36c9e3dd10648e94b949db5c91a774ecb1e10a899ef95da74066eccedca4d8b2.json +0 -12
  36. package/backend/.sqlx/query-36e4ba7bbd81b402d5a20b6005755eafbb174c8dda442081823406ac32809a94.json +0 -56
  37. package/backend/.sqlx/query-3a5b3c98a55ca183ab20c74708e3d7e579dda37972c059e7515c4ceee4bd8dd3.json +0 -62
  38. package/backend/.sqlx/query-3d0a1cabf2a52e9d90cdfd29c509ca89aeb448d0c1d2446c65cd43db40735e86.json +0 -62
  39. package/backend/.sqlx/query-3d6bd16fbce59efe30b7f67ea342e0e4ea6d1432389c02468ad79f1f742d4031.json +0 -56
  40. package/backend/.sqlx/query-4049ca413b285a05aca6b25385e9c8185575f01e9069e4e8581aa45d713f612f.json +0 -32
  41. package/backend/.sqlx/query-412bacd3477d86369082e90f52240407abce436cb81292d42b2dbe1e5c18eea1.json +0 -104
  42. package/backend/.sqlx/query-417a8b1ff4e51de82aea0159a3b97932224dc325b23476cb84153d690227fd8b.json +0 -62
  43. package/backend/.sqlx/query-461cc1b0bb6fd909afc9dd2246e8526b3771cfbb0b22ae4b5d17b51af587b9e2.json +0 -56
  44. package/backend/.sqlx/query-58408c7a8cdeeda0bef359f1f9bd91299a339dc2b191462fc58c9736a56d5227.json +0 -92
  45. package/backend/.sqlx/query-5a886026d75d515c01f347cc203c8d99dd04c61dc468e2e4c5aa548436d13834.json +0 -62
  46. package/backend/.sqlx/query-5b902137b11022d2e1a5c4f6a9c83fec1a856c6a710aff831abd2382ede76b43.json +0 -12
  47. package/backend/.sqlx/query-5ed1238e52e59bb5f76c0f153fd99a14093f7ce2585bf9843585608f17ec575b.json +0 -104
  48. package/backend/.sqlx/query-6e8b860b14decfc2227dc57213f38442943d3fbef5c8418fd6b634c6e0f5e2ea.json +0 -104
  49. package/backend/.sqlx/query-6ec414276994c4ccb2433eaa5b1b342168557d17ddf5a52dac84cb1b59b9de8f.json +0 -68
  50. package/backend/.sqlx/query-6ecfa16d0cf825aacf233544b5baf151e9adfdca26c226ad71020d291fd802d5.json +0 -62
  51. package/backend/.sqlx/query-72509d252c39fce77520aa816cb2acbc1fb35dc2605e7be893610599b2427f2e.json +0 -62
  52. package/backend/.sqlx/query-75239b2da188f749707d77f3c1544332ca70db3d6d6743b2601dc0d167536437.json +0 -62
  53. package/backend/.sqlx/query-83d10e29f8478aff33434f9ac67068e013b888b953a2657e2bb72a6f619d04f2.json +0 -50
  54. package/backend/.sqlx/query-8610803360ea18b9b9d078a6981ea56abfbfe84e6354fc1d5ae4c622e01410ed.json +0 -68
  55. package/backend/.sqlx/query-86d03eb70eef39c59296416867f2ee66c9f7cd8b7f961fbda2f89fc0a1c442c2.json +0 -12
  56. package/backend/.sqlx/query-87d0feb5a6b442bad9c60068ea7569599cc6fc91a0e2692ecb42e93b03201b9d.json +0 -68
  57. package/backend/.sqlx/query-8a67b3b3337248f06a57bdf8a908f7ef23177431eaed82dc08c94c3e5944340e.json +0 -12
  58. package/backend/.sqlx/query-8f01ebd64bdcde6a090479f14810d73ba23020e76fd70854ac57f2da251702c3.json +0 -12
  59. package/backend/.sqlx/query-90fd607fcb2dca72239ff25e618e21e174b195991eaa33722cbf5f76da84cfab.json +0 -62
  60. package/backend/.sqlx/query-92e8bdbcd80c5ff3db7a35cf79492048803ef305cbdef0d0a1fe5dc881ca8c71.json +0 -104
  61. package/backend/.sqlx/query-93a1605f90e9672dad29b472b6ad85fa9a55ea3ffa5abcb8724b09d61be254ca.json +0 -20
  62. package/backend/.sqlx/query-9472c8fb477958167f5fae40b85ac44252468c5226b2cdd7770f027332eed6d7.json +0 -104
  63. package/backend/.sqlx/query-96036c4f9e0f48bdc5a4a4588f0c5f288ac7aaa5425cac40fc33f337e1a351f2.json +0 -56
  64. package/backend/.sqlx/query-9edb2c01e91fd0f0fe7b56e988c7ae0393150f50be3f419a981e035c0121dfc7.json +0 -104
  65. package/backend/.sqlx/query-a157cf00616f703bfba21927f1eb1c9eec2a81c02da15f66efdba0b6c375de1b.json +0 -26
  66. package/backend/.sqlx/query-a31fff84f3b8e532fd1160447d89d700f06ae08821fee00c9a5b60492b05259c.json +0 -62
  67. package/backend/.sqlx/query-a5ba908419fb3e456bdd2daca41ba06cc3212ffffb8520fc7dbbcc8b60ada314.json +0 -12
  68. package/backend/.sqlx/query-a6d2961718dbc3b1a925e549f49a159c561bef58c105529275f274b27e2eba5b.json +0 -104
  69. package/backend/.sqlx/query-a9e93d5b09b29faf66e387e4d7596a792d81e75c4d3726e83c2963e8d7c9b56f.json +0 -104
  70. package/backend/.sqlx/query-ac5247c8d7fb86e4650c4b0eb9420031614c831b7b085083bac20c1af314c538.json +0 -12
  71. package/backend/.sqlx/query-afef9467be74c411c4cb119a8b2b1aea53049877dfc30cc60b486134ba4b4c9f.json +0 -68
  72. package/backend/.sqlx/query-b2b2c6b4d0b1a347b5c4cb63c3a46a265d4db53be9554989a814b069d0af82f2.json +0 -62
  73. package/backend/.sqlx/query-c50d2ff0b12e5bcc81e371089ee2d007e233e7db93aefba4fef08e7aa68f5ab7.json +0 -20
  74. package/backend/.sqlx/query-c614e6056b244ca07f1b9d44e7edc9d5819225c6f8d9e077070c6e518a17f50b.json +0 -12
  75. package/backend/.sqlx/query-c67259be8bf4ee0cfd32167b2aa3b7fe9192809181a8171bf1c2d6df731967ae.json +0 -12
  76. package/backend/.sqlx/query-d2d0a1b985ebbca6a2b3e882a221a219f3199890fa640afc946ef1a792d6d8de.json +0 -12
  77. package/backend/.sqlx/query-d30aa5786757f32bf2b9c5fe51a45e506c71c28c5994e430d9b0546adb15ffa2.json +0 -20
  78. package/backend/.sqlx/query-d3b9ea1de1576af71b312924ce7f4ea8ae5dbe2ac138ea3b4470f2d5cd734846.json +0 -12
  79. package/backend/.sqlx/query-ed8456646fa69ddd412441955f06ff22bfb790f29466450735e0b8bb1bc4ec94.json +0 -12
  80. package/backend/Cargo.toml +0 -71
  81. package/backend/build.rs +0 -32
  82. package/backend/migrations/20250617183714_init.sql +0 -44
  83. package/backend/migrations/20250620212427_execution_processes.sql +0 -25
  84. package/backend/migrations/20250620214100_remove_stdout_stderr_from_task_attempts.sql +0 -28
  85. package/backend/migrations/20250621120000_relate_activities_to_execution_processes.sql +0 -23
  86. package/backend/migrations/20250623120000_executor_sessions.sql +0 -17
  87. package/backend/migrations/20250623130000_add_executor_type_to_execution_processes.sql +0 -4
  88. package/backend/migrations/20250625000000_add_dev_script_to_projects.sql +0 -4
  89. package/backend/migrations/20250701000000_add_branch_to_task_attempts.sql +0 -2
  90. package/backend/migrations/20250701000001_add_pr_tracking_to_task_attempts.sql +0 -5
  91. package/backend/migrations/20250701120000_add_assistant_message_to_executor_sessions.sql +0 -2
  92. package/backend/migrations/20250708000000_add_base_branch_to_task_attempts.sql +0 -2
  93. package/backend/migrations/20250709000000_add_worktree_deleted_flag.sql +0 -2
  94. package/backend/migrations/20250710000000_add_setup_completion.sql +0 -3
  95. package/backend/migrations/20250715154859_add_task_templates.sql +0 -25
  96. package/backend/migrations/20250716143725_add_default_templates.sql +0 -174
  97. package/backend/migrations/20250716161432_update_executor_names_to_kebab_case.sql +0 -20
  98. package/backend/migrations/20250716170000_add_parent_task_to_tasks.sql +0 -7
  99. package/backend/migrations/20250717000000_drop_task_attempt_activities.sql +0 -9
  100. package/backend/migrations/20250719000000_add_cleanup_script_to_projects.sql +0 -2
  101. package/backend/migrations/20250720000000_add_cleanupscript_to_process_type_constraint.sql +0 -25
  102. package/backend/migrations/20250723000000_add_wish_to_tasks.sql +0 -7
  103. package/backend/migrations/20250724000000_remove_unique_wish_constraint.sql +0 -5
  104. package/backend/scripts/toast-notification.ps1 +0 -23
  105. package/backend/sounds/abstract-sound1.wav +0 -0
  106. package/backend/sounds/abstract-sound2.wav +0 -0
  107. package/backend/sounds/abstract-sound3.wav +0 -0
  108. package/backend/sounds/abstract-sound4.wav +0 -0
  109. package/backend/sounds/cow-mooing.wav +0 -0
  110. package/backend/sounds/phone-vibration.wav +0 -0
  111. package/backend/sounds/rooster.wav +0 -0
  112. package/backend/src/app_state.rs +0 -218
  113. package/backend/src/bin/generate_types.rs +0 -189
  114. package/backend/src/bin/mcp_task_server.rs +0 -191
  115. package/backend/src/execution_monitor.rs +0 -1193
  116. package/backend/src/executor.rs +0 -1053
  117. package/backend/src/executors/amp.rs +0 -697
  118. package/backend/src/executors/ccr.rs +0 -91
  119. package/backend/src/executors/charm_opencode.rs +0 -113
  120. package/backend/src/executors/claude.rs +0 -887
  121. package/backend/src/executors/cleanup_script.rs +0 -124
  122. package/backend/src/executors/dev_server.rs +0 -53
  123. package/backend/src/executors/echo.rs +0 -79
  124. package/backend/src/executors/gemini/config.rs +0 -67
  125. package/backend/src/executors/gemini/streaming.rs +0 -363
  126. package/backend/src/executors/gemini.rs +0 -765
  127. package/backend/src/executors/mod.rs +0 -23
  128. package/backend/src/executors/opencode_ai.rs +0 -113
  129. package/backend/src/executors/setup_script.rs +0 -130
  130. package/backend/src/executors/sst_opencode/filter.rs +0 -184
  131. package/backend/src/executors/sst_opencode/tools.rs +0 -139
  132. package/backend/src/executors/sst_opencode.rs +0 -756
  133. package/backend/src/lib.rs +0 -45
  134. package/backend/src/main.rs +0 -324
  135. package/backend/src/mcp/mod.rs +0 -1
  136. package/backend/src/mcp/task_server.rs +0 -850
  137. package/backend/src/middleware/mod.rs +0 -3
  138. package/backend/src/middleware/model_loaders.rs +0 -242
  139. package/backend/src/models/api_response.rs +0 -36
  140. package/backend/src/models/config.rs +0 -375
  141. package/backend/src/models/execution_process.rs +0 -430
  142. package/backend/src/models/executor_session.rs +0 -225
  143. package/backend/src/models/mod.rs +0 -12
  144. package/backend/src/models/project.rs +0 -356
  145. package/backend/src/models/task.rs +0 -345
  146. package/backend/src/models/task_attempt.rs +0 -1214
  147. package/backend/src/models/task_template.rs +0 -146
  148. package/backend/src/openapi.rs +0 -93
  149. package/backend/src/routes/auth.rs +0 -297
  150. package/backend/src/routes/config.rs +0 -385
  151. package/backend/src/routes/filesystem.rs +0 -228
  152. package/backend/src/routes/health.rs +0 -16
  153. package/backend/src/routes/mod.rs +0 -9
  154. package/backend/src/routes/projects.rs +0 -562
  155. package/backend/src/routes/stream.rs +0 -244
  156. package/backend/src/routes/task_attempts.rs +0 -1172
  157. package/backend/src/routes/task_templates.rs +0 -229
  158. package/backend/src/routes/tasks.rs +0 -353
  159. package/backend/src/services/analytics.rs +0 -216
  160. package/backend/src/services/git_service.rs +0 -1321
  161. package/backend/src/services/github_service.rs +0 -307
  162. package/backend/src/services/mod.rs +0 -13
  163. package/backend/src/services/notification_service.rs +0 -263
  164. package/backend/src/services/pr_monitor.rs +0 -214
  165. package/backend/src/services/process_service.rs +0 -940
  166. package/backend/src/utils/path.rs +0 -96
  167. package/backend/src/utils/shell.rs +0 -19
  168. package/backend/src/utils/text.rs +0 -24
  169. package/backend/src/utils/worktree_manager.rs +0 -578
  170. package/backend/src/utils.rs +0 -125
  171. package/backend/test.db +0 -0
  172. package/build-npm-package.sh +0 -61
  173. package/dev_assets_seed/config.json +0 -19
  174. package/frontend/.eslintrc.json +0 -25
  175. package/frontend/.prettierrc.json +0 -8
  176. package/frontend/components.json +0 -17
  177. package/frontend/index.html +0 -19
  178. package/frontend/package-lock.json +0 -7321
  179. package/frontend/package.json +0 -61
  180. package/frontend/postcss.config.js +0 -6
  181. package/frontend/public/android-chrome-192x192.png +0 -0
  182. package/frontend/public/android-chrome-512x512.png +0 -0
  183. package/frontend/public/apple-touch-icon.png +0 -0
  184. package/frontend/public/automagik-forge-logo-dark.svg +0 -3
  185. package/frontend/public/automagik-forge-logo.svg +0 -3
  186. package/frontend/public/automagik-forge-screenshot-overview.png +0 -0
  187. package/frontend/public/favicon-16x16.png +0 -0
  188. package/frontend/public/favicon-32x32.png +0 -0
  189. package/frontend/public/favicon.ico +0 -0
  190. package/frontend/public/site.webmanifest +0 -1
  191. package/frontend/public/viba-kanban-favicon.png +0 -0
  192. package/frontend/src/App.tsx +0 -157
  193. package/frontend/src/components/DisclaimerDialog.tsx +0 -106
  194. package/frontend/src/components/GitHubLoginDialog.tsx +0 -314
  195. package/frontend/src/components/OnboardingDialog.tsx +0 -185
  196. package/frontend/src/components/PrivacyOptInDialog.tsx +0 -130
  197. package/frontend/src/components/ProvidePatDialog.tsx +0 -98
  198. package/frontend/src/components/TaskTemplateManager.tsx +0 -336
  199. package/frontend/src/components/config-provider.tsx +0 -119
  200. package/frontend/src/components/context/TaskDetailsContextProvider.tsx +0 -470
  201. package/frontend/src/components/context/taskDetailsContext.ts +0 -125
  202. package/frontend/src/components/keyboard-shortcuts-demo.tsx +0 -35
  203. package/frontend/src/components/layout/navbar.tsx +0 -86
  204. package/frontend/src/components/logo.tsx +0 -44
  205. package/frontend/src/components/projects/ProjectCard.tsx +0 -155
  206. package/frontend/src/components/projects/project-detail.tsx +0 -251
  207. package/frontend/src/components/projects/project-form-fields.tsx +0 -238
  208. package/frontend/src/components/projects/project-form.tsx +0 -301
  209. package/frontend/src/components/projects/project-list.tsx +0 -200
  210. package/frontend/src/components/projects/projects-page.tsx +0 -20
  211. package/frontend/src/components/tasks/BranchSelector.tsx +0 -169
  212. package/frontend/src/components/tasks/DeleteFileConfirmationDialog.tsx +0 -94
  213. package/frontend/src/components/tasks/EditorSelectionDialog.tsx +0 -119
  214. package/frontend/src/components/tasks/TaskCard.tsx +0 -154
  215. package/frontend/src/components/tasks/TaskDetails/CollapsibleToolbar.tsx +0 -33
  216. package/frontend/src/components/tasks/TaskDetails/DiffCard.tsx +0 -109
  217. package/frontend/src/components/tasks/TaskDetails/DiffChunkSection.tsx +0 -135
  218. package/frontend/src/components/tasks/TaskDetails/DiffFile.tsx +0 -296
  219. package/frontend/src/components/tasks/TaskDetails/DiffTab.tsx +0 -32
  220. package/frontend/src/components/tasks/TaskDetails/DisplayConversationEntry.tsx +0 -392
  221. package/frontend/src/components/tasks/TaskDetails/LogsTab/Conversation.tsx +0 -256
  222. package/frontend/src/components/tasks/TaskDetails/LogsTab/ConversationEntry.tsx +0 -56
  223. package/frontend/src/components/tasks/TaskDetails/LogsTab/NormalizedConversationViewer.tsx +0 -92
  224. package/frontend/src/components/tasks/TaskDetails/LogsTab/Prompt.tsx +0 -22
  225. package/frontend/src/components/tasks/TaskDetails/LogsTab/SetupScriptRunning.tsx +0 -49
  226. package/frontend/src/components/tasks/TaskDetails/LogsTab.tsx +0 -186
  227. package/frontend/src/components/tasks/TaskDetails/ProcessesTab.tsx +0 -288
  228. package/frontend/src/components/tasks/TaskDetails/RelatedTasksTab.tsx +0 -216
  229. package/frontend/src/components/tasks/TaskDetails/TabNavigation.tsx +0 -93
  230. package/frontend/src/components/tasks/TaskDetailsHeader.tsx +0 -169
  231. package/frontend/src/components/tasks/TaskDetailsPanel.tsx +0 -126
  232. package/frontend/src/components/tasks/TaskDetailsToolbar.tsx +0 -302
  233. package/frontend/src/components/tasks/TaskFollowUpSection.tsx +0 -130
  234. package/frontend/src/components/tasks/TaskFormDialog.tsx +0 -400
  235. package/frontend/src/components/tasks/TaskKanbanBoard.tsx +0 -180
  236. package/frontend/src/components/tasks/Toolbar/CreateAttempt.tsx +0 -259
  237. package/frontend/src/components/tasks/Toolbar/CreatePRDialog.tsx +0 -243
  238. package/frontend/src/components/tasks/Toolbar/CurrentAttempt.tsx +0 -899
  239. package/frontend/src/components/tasks/index.ts +0 -2
  240. package/frontend/src/components/theme-provider.tsx +0 -82
  241. package/frontend/src/components/theme-toggle.tsx +0 -36
  242. package/frontend/src/components/ui/alert.tsx +0 -59
  243. package/frontend/src/components/ui/auto-expanding-textarea.tsx +0 -70
  244. package/frontend/src/components/ui/badge.tsx +0 -36
  245. package/frontend/src/components/ui/button.tsx +0 -56
  246. package/frontend/src/components/ui/card.tsx +0 -86
  247. package/frontend/src/components/ui/checkbox.tsx +0 -44
  248. package/frontend/src/components/ui/chip.tsx +0 -25
  249. package/frontend/src/components/ui/dialog.tsx +0 -124
  250. package/frontend/src/components/ui/dropdown-menu.tsx +0 -198
  251. package/frontend/src/components/ui/file-search-textarea.tsx +0 -292
  252. package/frontend/src/components/ui/folder-picker.tsx +0 -279
  253. package/frontend/src/components/ui/input.tsx +0 -25
  254. package/frontend/src/components/ui/label.tsx +0 -24
  255. package/frontend/src/components/ui/loader.tsx +0 -26
  256. package/frontend/src/components/ui/markdown-renderer.tsx +0 -75
  257. package/frontend/src/components/ui/select.tsx +0 -160
  258. package/frontend/src/components/ui/separator.tsx +0 -31
  259. package/frontend/src/components/ui/shadcn-io/kanban/index.tsx +0 -185
  260. package/frontend/src/components/ui/table.tsx +0 -117
  261. package/frontend/src/components/ui/tabs.tsx +0 -53
  262. package/frontend/src/components/ui/textarea.tsx +0 -22
  263. package/frontend/src/components/ui/tooltip.tsx +0 -28
  264. package/frontend/src/hooks/useNormalizedConversation.ts +0 -440
  265. package/frontend/src/index.css +0 -225
  266. package/frontend/src/lib/api.ts +0 -630
  267. package/frontend/src/lib/keyboard-shortcuts.ts +0 -266
  268. package/frontend/src/lib/responsive-config.ts +0 -70
  269. package/frontend/src/lib/types.ts +0 -39
  270. package/frontend/src/lib/utils.ts +0 -10
  271. package/frontend/src/main.tsx +0 -50
  272. package/frontend/src/pages/McpServers.tsx +0 -418
  273. package/frontend/src/pages/Settings.tsx +0 -610
  274. package/frontend/src/pages/project-tasks.tsx +0 -575
  275. package/frontend/src/pages/projects.tsx +0 -18
  276. package/frontend/src/vite-env.d.ts +0 -1
  277. package/frontend/tailwind.config.js +0 -125
  278. package/frontend/tsconfig.json +0 -26
  279. package/frontend/tsconfig.node.json +0 -10
  280. package/frontend/vite.config.ts +0 -33
  281. package/npx-cli/README.md +0 -159
  282. package/npx-cli/automagik-forge-0.1.0.tgz +0 -0
  283. package/npx-cli/automagik-forge-0.1.10.tgz +0 -0
  284. package/npx-cli/package.json +0 -17
  285. package/npx-cli/vibe-kanban-0.0.55.tgz +0 -0
  286. package/pnpm-workspace.yaml +0 -2
  287. package/rust-toolchain.toml +0 -11
  288. package/rustfmt.toml +0 -3
  289. package/scripts/load-env.js +0 -43
  290. package/scripts/mcp_test.js +0 -374
  291. package/scripts/prepare-db.js +0 -45
  292. package/scripts/setup-dev-environment.js +0 -274
  293. package/scripts/start-mcp-sse.js +0 -70
  294. package/scripts/test-debug.js +0 -32
  295. package/scripts/test-mcp-sse.js +0 -138
  296. package/scripts/test-simple.js +0 -44
  297. package/scripts/test-wish-final.js +0 -179
  298. package/scripts/test-wish-system.js +0 -221
  299. package/shared/types.ts +0 -182
  300. package/test-npm-package.sh +0 -42
  301. /package/{npx-cli/bin → bin}/cli.js +0 -0
@@ -1,189 +0,0 @@
1
- use std::{env, fs, path::Path};
2
-
3
- use ts_rs::TS;
4
- // in [build-dependencies]
5
-
6
- fn generate_constants() -> String {
7
- r#"// Generated constants
8
- export const EXECUTOR_TYPES: string[] = [
9
- "echo",
10
- "claude",
11
- "claude-plan",
12
- "amp",
13
- "gemini",
14
- "charm-opencode",
15
- "claude-code-router",
16
- "sst-opencode",
17
- "opencode-ai"
18
- ];
19
-
20
- export const EDITOR_TYPES: EditorType[] = [
21
- "vscode",
22
- "cursor",
23
- "windsurf",
24
- "intellij",
25
- "zed",
26
- "custom"
27
- ];
28
-
29
- export const EXECUTOR_LABELS: Record<string, string> = {
30
- "echo": "Echo (Test Mode)",
31
- "claude": "Claude Code",
32
- "claude-plan": "Claude Code Plan",
33
- "amp": "Amp",
34
- "gemini": "Gemini",
35
- "charm-opencode": "Charm Opencode",
36
- "claude-code-router": "Claude Code Router",
37
- "sst-opencode": "SST Opencode",
38
- "opencode-ai": "OpenCode AI"
39
- };
40
-
41
- export const EDITOR_LABELS: Record<string, string> = {
42
- "vscode": "VS Code",
43
- "cursor": "Cursor",
44
- "windsurf": "Windsurf",
45
- "intellij": "IntelliJ IDEA",
46
- "zed": "Zed",
47
- "custom": "Custom"
48
- };
49
-
50
- export const SOUND_FILES: SoundFile[] = [
51
- "abstract-sound1",
52
- "abstract-sound2",
53
- "abstract-sound3",
54
- "abstract-sound4",
55
- "cow-mooing",
56
- "phone-vibration",
57
- "rooster"
58
- ];
59
-
60
- export const SOUND_LABELS: Record<string, string> = {
61
- "abstract-sound1": "Gentle Chime",
62
- "abstract-sound2": "Soft Bell",
63
- "abstract-sound3": "Digital Tone",
64
- "abstract-sound4": "Subtle Alert",
65
- "cow-mooing": "Cow Mooing",
66
- "phone-vibration": "Phone Vibration",
67
- "rooster": "Rooster Call"
68
- };"#
69
- .to_string()
70
- }
71
-
72
- fn generate_types_content() -> String {
73
- // 4. Friendly banner
74
- const HEADER: &str =
75
- "// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs).\n\
76
- // Do not edit this file manually.\n\
77
- // Auto-generated from Rust backend types using ts-rs\n\n";
78
-
79
- // 5. Add `export` if it’s missing, then join
80
- let decls = [
81
- automagik_forge::models::ApiResponse::<()>::decl(),
82
- automagik_forge::models::config::Config::decl(),
83
- automagik_forge::models::config::ThemeMode::decl(),
84
- automagik_forge::models::config::EditorConfig::decl(),
85
- automagik_forge::models::config::GitHubConfig::decl(),
86
- automagik_forge::models::config::EditorType::decl(),
87
- automagik_forge::models::config::EditorConstants::decl(),
88
- automagik_forge::models::config::SoundFile::decl(),
89
- automagik_forge::models::config::SoundConstants::decl(),
90
- automagik_forge::routes::config::ConfigConstants::decl(),
91
- automagik_forge::executor::ExecutorConfig::decl(),
92
- automagik_forge::executor::ExecutorConstants::decl(),
93
- automagik_forge::models::project::CreateProject::decl(),
94
- automagik_forge::models::project::Project::decl(),
95
- automagik_forge::models::project::ProjectWithBranch::decl(),
96
- automagik_forge::models::project::UpdateProject::decl(),
97
- automagik_forge::models::project::SearchResult::decl(),
98
- automagik_forge::models::project::SearchMatchType::decl(),
99
- automagik_forge::models::project::GitBranch::decl(),
100
- automagik_forge::models::project::CreateBranch::decl(),
101
- automagik_forge::models::task::CreateTask::decl(),
102
- automagik_forge::models::task::CreateTaskAndStart::decl(),
103
- automagik_forge::models::task::TaskStatus::decl(),
104
- automagik_forge::models::task::Task::decl(),
105
- automagik_forge::models::task::TaskWithAttemptStatus::decl(),
106
- automagik_forge::models::task::UpdateTask::decl(),
107
- automagik_forge::models::task_template::TaskTemplate::decl(),
108
- automagik_forge::models::task_template::CreateTaskTemplate::decl(),
109
- automagik_forge::models::task_template::UpdateTaskTemplate::decl(),
110
- automagik_forge::models::task_attempt::TaskAttemptStatus::decl(),
111
- automagik_forge::models::task_attempt::TaskAttempt::decl(),
112
- automagik_forge::models::task_attempt::CreateTaskAttempt::decl(),
113
- automagik_forge::models::task_attempt::UpdateTaskAttempt::decl(),
114
- automagik_forge::models::task_attempt::CreateFollowUpAttempt::decl(),
115
- automagik_forge::routes::filesystem::DirectoryEntry::decl(),
116
- automagik_forge::routes::filesystem::DirectoryListResponse::decl(),
117
- automagik_forge::routes::auth::DeviceStartResponse::decl(),
118
- automagik_forge::routes::task_attempts::ProcessLogsResponse::decl(),
119
- automagik_forge::models::task_attempt::DiffChunkType::decl(),
120
- automagik_forge::models::task_attempt::DiffChunk::decl(),
121
- automagik_forge::models::task_attempt::FileDiff::decl(),
122
- automagik_forge::models::task_attempt::WorktreeDiff::decl(),
123
- automagik_forge::models::task_attempt::BranchStatus::decl(),
124
- automagik_forge::models::task_attempt::ExecutionState::decl(),
125
- automagik_forge::models::task_attempt::TaskAttemptState::decl(),
126
- automagik_forge::models::execution_process::ExecutionProcess::decl(),
127
- automagik_forge::models::execution_process::ExecutionProcessSummary::decl(),
128
- automagik_forge::models::execution_process::ExecutionProcessStatus::decl(),
129
- automagik_forge::models::execution_process::ExecutionProcessType::decl(),
130
- automagik_forge::models::execution_process::CreateExecutionProcess::decl(),
131
- automagik_forge::models::execution_process::UpdateExecutionProcess::decl(),
132
- automagik_forge::models::executor_session::ExecutorSession::decl(),
133
- automagik_forge::models::executor_session::CreateExecutorSession::decl(),
134
- automagik_forge::models::executor_session::UpdateExecutorSession::decl(),
135
- automagik_forge::executor::NormalizedConversation::decl(),
136
- automagik_forge::executor::NormalizedEntry::decl(),
137
- automagik_forge::executor::NormalizedEntryType::decl(),
138
- automagik_forge::executor::ActionType::decl(),
139
- ];
140
-
141
- let body = decls
142
- .into_iter()
143
- .map(|d| {
144
- let trimmed = d.trim_start();
145
- if trimmed.starts_with("export") {
146
- d
147
- } else {
148
- format!("export {trimmed}")
149
- }
150
- })
151
- .collect::<Vec<_>>()
152
- .join("\n\n");
153
-
154
- let constants = generate_constants();
155
- format!("{HEADER}{body}\n\n{constants}")
156
- }
157
-
158
- fn main() {
159
- let args: Vec<String> = env::args().collect();
160
- let check_mode = args.iter().any(|arg| arg == "--check");
161
-
162
- // 1. Make sure ../shared exists
163
- let shared_path = Path::new("../shared");
164
- fs::create_dir_all(shared_path).expect("cannot create ../shared");
165
-
166
- println!("Generating TypeScript types…");
167
-
168
- // 2. Let ts-rs write its per-type files here (handy for debugging)
169
- env::set_var("TS_RS_EXPORT_DIR", shared_path.to_str().unwrap());
170
-
171
- let generated = generate_types_content();
172
- let types_path = shared_path.join("types.ts");
173
-
174
- if check_mode {
175
- // Read the current file
176
- let current = fs::read_to_string(&types_path).unwrap_or_default();
177
- if current == generated {
178
- println!("✅ shared/types.ts is up to date.");
179
- std::process::exit(0);
180
- } else {
181
- eprintln!("❌ shared/types.ts is not up to date. Please run 'npm run generate-types' and commit the changes.");
182
- std::process::exit(1);
183
- }
184
- } else {
185
- // Write the file as before
186
- fs::write(&types_path, generated).expect("unable to write types.ts");
187
- println!("✅ TypeScript types generated in ../shared/");
188
- }
189
- }
@@ -1,191 +0,0 @@
1
- use std::{net::SocketAddr, str::FromStr, sync::Arc};
2
-
3
- use rmcp::{transport::{stdio, sse_server::SseServer}, ServiceExt};
4
- use sqlx::{sqlite::SqliteConnectOptions, SqlitePool};
5
- use tokio_util::sync::CancellationToken;
6
- use tracing_subscriber::{prelude::*, EnvFilter};
7
- use automagik_forge::{mcp::task_server::TaskServer, sentry_layer, utils::asset_dir};
8
-
9
- fn main() -> anyhow::Result<()> {
10
- // Load .env file if it exists
11
- dotenvy::dotenv().ok();
12
-
13
- // Parse command line arguments
14
- let args: Vec<String> = std::env::args().collect();
15
- let enable_sse = args.contains(&"--mcp-sse".to_string());
16
- let enable_stdio = args.contains(&"--mcp".to_string()) || enable_sse;
17
-
18
- let (stdio_mode, sse_mode) = if enable_sse {
19
- (enable_stdio, true) // STDIO if --mcp flag present, SSE always
20
- } else {
21
- (enable_stdio, true) // STDIO only if --mcp flag, SSE by default
22
- };
23
-
24
- let environment = if cfg!(debug_assertions) {
25
- "dev"
26
- } else {
27
- "production"
28
- };
29
- // Check if telemetry is disabled
30
- let telemetry_disabled = std::env::var("DISABLE_TELEMETRY")
31
- .unwrap_or_default()
32
- .to_lowercase() == "true";
33
-
34
- let _guard = if !telemetry_disabled {
35
- let sentry_dsn = std::env::var("SENTRY_DSN")
36
- .unwrap_or_else(|_| "https://fa5e961d24021da4e6df30e5beee03af@o4509714066571264.ingest.us.sentry.io/4509714113495040".to_string());
37
-
38
- Some(sentry::init((sentry_dsn, sentry::ClientOptions {
39
- release: sentry::release_name!(),
40
- environment: Some(environment.into()),
41
- ..Default::default()
42
- })))
43
- } else {
44
- None
45
- };
46
- sentry::configure_scope(|scope| {
47
- scope.set_tag("source", "mcp");
48
- });
49
- tokio::runtime::Builder::new_multi_thread()
50
- .enable_all()
51
- .build()
52
- .unwrap()
53
- .block_on(async {
54
- tracing_subscriber::registry()
55
- .with(
56
- tracing_subscriber::fmt::layer()
57
- .with_writer(std::io::stderr)
58
- .with_filter(
59
- std::env::var("RUST_LOG")
60
- .map(|level| EnvFilter::new(level))
61
- .unwrap_or_else(|_| EnvFilter::new("info"))
62
- ),
63
- )
64
- .with(sentry_layer())
65
- .init();
66
-
67
- tracing::debug!("[MCP] Starting MCP task server...");
68
-
69
- // Database connection
70
- let database_url = format!(
71
- "sqlite://{}",
72
- asset_dir().join("db.sqlite").to_string_lossy()
73
- );
74
-
75
- let options = SqliteConnectOptions::from_str(&database_url)?.create_if_missing(false);
76
- let pool = SqlitePool::connect_with(options).await?;
77
-
78
- let task_server = TaskServer::new(pool);
79
- let service = Arc::new(task_server);
80
-
81
- let mut join_set = tokio::task::JoinSet::new();
82
- let shutdown_token = CancellationToken::new();
83
-
84
- // Start STDIO transport if requested
85
- if stdio_mode {
86
- let service_clone = service.clone();
87
- let token = shutdown_token.clone();
88
- join_set.spawn(async move {
89
- tokio::select! {
90
- result = run_stdio_server(service_clone) => {
91
- tracing::info!("STDIO server completed: {:?}", result);
92
- result
93
- }
94
- _ = token.cancelled() => {
95
- tracing::info!("STDIO server cancelled");
96
- Ok(())
97
- }
98
- }
99
- });
100
- }
101
-
102
- // Start SSE transport if requested
103
- if sse_mode {
104
- let service_clone = service.clone();
105
- let token = shutdown_token.clone();
106
- let sse_port = get_sse_port();
107
- join_set.spawn(async move {
108
- tokio::select! {
109
- result = run_sse_server(service_clone, sse_port) => {
110
- tracing::info!("SSE server completed: {:?}", result);
111
- result
112
- }
113
- _ = token.cancelled() => {
114
- tracing::info!("SSE server cancelled");
115
- Ok(())
116
- }
117
- }
118
- });
119
- }
120
-
121
- // Wait for shutdown signal or any service to fail
122
- tokio::select! {
123
- _ = tokio::signal::ctrl_c() => {
124
- tracing::info!("Received Ctrl+C, shutting down...");
125
- }
126
- Some(result) = join_set.join_next() => {
127
- if let Err(e) = result {
128
- tracing::error!("Service task failed: {:?}", e);
129
- }
130
- }
131
- }
132
-
133
- // Trigger shutdown for all services
134
- shutdown_token.cancel();
135
-
136
- // Wait for all tasks to complete with timeout
137
- let shutdown_timeout = tokio::time::Duration::from_secs(5);
138
- tokio::time::timeout(shutdown_timeout, async {
139
- while let Some(_) = join_set.join_next().await {}
140
- }).await.ok();
141
-
142
- tracing::info!("MCP server shutdown complete");
143
- Ok(())
144
- })
145
- }
146
-
147
- async fn run_stdio_server(service: Arc<TaskServer>) -> anyhow::Result<()> {
148
- tracing::info!("Starting MCP STDIO server...");
149
- let server = service.as_ref().clone().serve(stdio()).await
150
- .inspect_err(|e| {
151
- tracing::error!("STDIO serving error: {:?}", e);
152
- sentry::capture_error(e);
153
- })?;
154
-
155
- server.waiting().await?;
156
- Ok(())
157
- }
158
-
159
- async fn run_sse_server(service: Arc<TaskServer>, port: u16) -> anyhow::Result<()> {
160
- let bind_addr = SocketAddr::from(([0, 0, 0, 0], port));
161
-
162
- match SseServer::serve(bind_addr).await {
163
- Ok(sse_server) => {
164
- tracing::info!("MCP SSE server listening on http://{}/sse", bind_addr);
165
-
166
- let cancellation_token = sse_server.with_service({
167
- let service = service.clone();
168
- move || service.as_ref().clone()
169
- });
170
- cancellation_token.cancelled().await;
171
- Ok(())
172
- }
173
- Err(e) => {
174
- tracing::error!("Failed to start SSE server on port {}: {}", port, e);
175
- // Don't fail the entire application if SSE fails
176
- if std::env::var("MCP_SSE_REQUIRED").is_ok() {
177
- Err(e.into())
178
- } else {
179
- tracing::warn!("SSE server disabled due to startup failure");
180
- Ok(())
181
- }
182
- }
183
- }
184
- }
185
-
186
- fn get_sse_port() -> u16 {
187
- std::env::var("MCP_SSE_PORT")
188
- .ok()
189
- .and_then(|s| s.parse().ok())
190
- .unwrap_or(8765) // Default fallback port
191
- }