agent-enderun 1.10.2 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/README.md +34 -44
  2. package/dist/framework-mcp/src/constants.d.ts +47 -0
  3. package/dist/framework-mcp/src/constants.js +65 -0
  4. package/dist/framework-mcp/src/constants.js.map +1 -0
  5. package/dist/framework-mcp/src/index.js +26 -5
  6. package/dist/framework-mcp/src/index.js.map +1 -1
  7. package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +3 -9
  8. package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -1
  9. package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +2 -8
  10. package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -1
  11. package/dist/framework-mcp/src/tools/dashboard/start_dashboard.d.ts +2 -2
  12. package/dist/framework-mcp/src/tools/dashboard/start_dashboard.js.map +1 -1
  13. package/dist/framework-mcp/src/tools/definitions.js +30 -0
  14. package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
  15. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.d.ts +2 -2
  16. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +12 -4
  17. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +1 -1
  18. package/dist/framework-mcp/src/tools/file_system/patch_file.d.ts +2 -2
  19. package/dist/framework-mcp/src/tools/file_system/patch_file.js +6 -2
  20. package/dist/framework-mcp/src/tools/file_system/patch_file.js.map +1 -1
  21. package/dist/framework-mcp/src/tools/file_system/read_file.d.ts +2 -2
  22. package/dist/framework-mcp/src/tools/file_system/read_file.js +43 -26
  23. package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -1
  24. package/dist/framework-mcp/src/tools/file_system/replace_text.d.ts +2 -2
  25. package/dist/framework-mcp/src/tools/file_system/replace_text.js +7 -3
  26. package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -1
  27. package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +2 -2
  28. package/dist/framework-mcp/src/tools/file_system/write_file.js +27 -15
  29. package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
  30. package/dist/framework-mcp/src/tools/framework/get_status.d.ts +2 -2
  31. package/dist/framework-mcp/src/tools/framework/get_status.js.map +1 -1
  32. package/dist/framework-mcp/src/tools/framework/orchestrate.d.ts +2 -2
  33. package/dist/framework-mcp/src/tools/framework/orchestrate.js.map +1 -1
  34. package/dist/framework-mcp/src/tools/framework/run_tests.d.ts +2 -2
  35. package/dist/framework-mcp/src/tools/framework/run_tests.js.map +1 -1
  36. package/dist/framework-mcp/src/tools/framework/update_contract_hash.d.ts +2 -2
  37. package/dist/framework-mcp/src/tools/framework/update_contract_hash.js.map +1 -1
  38. package/dist/framework-mcp/src/tools/framework/update_memory.d.ts +2 -2
  39. package/dist/framework-mcp/src/tools/framework/update_memory.js +1 -1
  40. package/dist/framework-mcp/src/tools/framework/update_memory.js.map +1 -1
  41. package/dist/framework-mcp/src/tools/index.d.ts +1 -2
  42. package/dist/framework-mcp/src/tools/index.js +33 -25
  43. package/dist/framework-mcp/src/tools/index.js.map +1 -1
  44. package/dist/framework-mcp/src/tools/messaging/log_action.d.ts +2 -2
  45. package/dist/framework-mcp/src/tools/messaging/log_action.js.map +1 -1
  46. package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +2 -2
  47. package/dist/framework-mcp/src/tools/messaging/send_message.js +14 -1
  48. package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -1
  49. package/dist/framework-mcp/src/tools/observability/check_ports.d.ts +2 -2
  50. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
  51. package/dist/framework-mcp/src/tools/quality/check_lint.d.ts +5 -0
  52. package/dist/framework-mcp/src/tools/quality/check_lint.js +29 -0
  53. package/dist/framework-mcp/src/tools/quality/check_lint.js.map +1 -0
  54. package/dist/framework-mcp/src/tools/search/get_gaps.d.ts +2 -2
  55. package/dist/framework-mcp/src/tools/search/get_gaps.js.map +1 -1
  56. package/dist/framework-mcp/src/tools/search/get_map.d.ts +2 -2
  57. package/dist/framework-mcp/src/tools/search/get_map.js +1 -1
  58. package/dist/framework-mcp/src/tools/search/get_map.js.map +1 -1
  59. package/dist/framework-mcp/src/tools/search/grep_search.d.ts +2 -2
  60. package/dist/framework-mcp/src/tools/search/grep_search.js +45 -28
  61. package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
  62. package/dist/framework-mcp/src/tools/search/list_dir.d.ts +2 -2
  63. package/dist/framework-mcp/src/tools/search/list_dir.js.map +1 -1
  64. package/dist/framework-mcp/src/tools/shell/run_command.d.ts +2 -0
  65. package/dist/framework-mcp/src/tools/shell/run_command.js +47 -0
  66. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -0
  67. package/dist/framework-mcp/src/tools/types.d.ts +95 -28
  68. package/dist/framework-mcp/src/utils/metrics.d.ts +20 -0
  69. package/dist/framework-mcp/src/utils/metrics.js +24 -6
  70. package/dist/framework-mcp/src/utils/metrics.js.map +1 -1
  71. package/dist/framework-mcp/src/utils/security.d.ts +1 -3
  72. package/dist/framework-mcp/src/utils/security.js +21 -18
  73. package/dist/framework-mcp/src/utils/security.js.map +1 -1
  74. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +19 -14
  75. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -1
  76. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +1 -1
  77. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
  78. package/dist/framework-mcp/tests/tools/quality/check_lint.test.d.ts +1 -0
  79. package/dist/framework-mcp/tests/tools/quality/check_lint.test.js +36 -0
  80. package/dist/framework-mcp/tests/tools/quality/check_lint.test.js.map +1 -0
  81. package/dist/framework-mcp/tests/tools/shell/run_command.test.d.ts +1 -0
  82. package/dist/framework-mcp/tests/tools/shell/run_command.test.js +43 -0
  83. package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +1 -0
  84. package/dist/src/cli/adapters/core.d.ts +1 -1
  85. package/dist/src/cli/adapters/core.js +4 -0
  86. package/dist/src/cli/adapters/core.js.map +1 -1
  87. package/dist/src/cli/adapters/index.d.ts +1 -0
  88. package/dist/src/cli/adapters/index.js +1 -0
  89. package/dist/src/cli/adapters/index.js.map +1 -1
  90. package/dist/src/cli/adapters/paths.d.ts +15 -0
  91. package/dist/src/cli/adapters/paths.js +101 -0
  92. package/dist/src/cli/adapters/paths.js.map +1 -0
  93. package/dist/src/cli/adapters/scaffold.d.ts +1 -1
  94. package/dist/src/cli/adapters/scaffold.js +10 -7
  95. package/dist/src/cli/adapters/scaffold.js.map +1 -1
  96. package/dist/src/cli/commands/check.js +15 -36
  97. package/dist/src/cli/commands/check.js.map +1 -1
  98. package/dist/src/cli/commands/dashboard/data-service.d.ts +8 -0
  99. package/dist/src/cli/commands/dashboard/data-service.js +37 -0
  100. package/dist/src/cli/commands/dashboard/data-service.js.map +1 -1
  101. package/dist/src/cli/commands/init/scaffold-core.d.ts +5 -2
  102. package/dist/src/cli/commands/init/scaffold-core.js +28 -6
  103. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
  104. package/dist/src/cli/commands/init/scaffold-standards.js +6 -1
  105. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  106. package/dist/src/cli/commands/init.js +30 -6
  107. package/dist/src/cli/commands/init.js.map +1 -1
  108. package/dist/src/cli/commands/orchestrate.d.ts +11 -6
  109. package/dist/src/cli/commands/orchestrate.js +148 -128
  110. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  111. package/dist/src/cli/commands/plan.d.ts +3 -1
  112. package/dist/src/cli/commands/plan.js +79 -22
  113. package/dist/src/cli/commands/plan.js.map +1 -1
  114. package/dist/src/cli/index.js +11 -15
  115. package/dist/src/cli/index.js.map +1 -1
  116. package/dist/src/cli/utils/compliance.js +0 -1
  117. package/dist/src/cli/utils/compliance.js.map +1 -1
  118. package/dist/src/cli/utils/config-schema.d.ts +7 -7
  119. package/dist/src/cli/utils/fs.js +1 -1
  120. package/dist/src/cli/utils/fs.js.map +1 -1
  121. package/dist/src/cli/utils/memory.d.ts +1 -1
  122. package/dist/src/cli/utils/memory.js +28 -8
  123. package/dist/src/cli/utils/memory.js.map +1 -1
  124. package/dist/src/cli/utils/pkg.d.ts +19 -0
  125. package/dist/src/cli/utils/pkg.js +29 -5
  126. package/dist/src/cli/utils/pkg.js.map +1 -1
  127. package/dist/src/modules/adapters/definitions.js +3 -3
  128. package/dist/src/modules/adapters/definitions.js.map +1 -1
  129. package/dist/src/modules/agents/definitions.js +2 -1
  130. package/dist/src/modules/agents/definitions.js.map +1 -1
  131. package/dist/src/modules/agents/registry/analyst.js +1 -1
  132. package/dist/src/modules/agents/registry/analyst.js.map +1 -1
  133. package/dist/src/modules/agents/registry/architect.js +1 -0
  134. package/dist/src/modules/agents/registry/architect.js.map +1 -1
  135. package/dist/src/modules/agents/registry/backend.js +7 -6
  136. package/dist/src/modules/agents/registry/backend.js.map +1 -1
  137. package/dist/src/modules/agents/registry/database.js +4 -3
  138. package/dist/src/modules/agents/registry/database.js.map +1 -1
  139. package/dist/src/modules/agents/registry/devops.js +1 -1
  140. package/dist/src/modules/agents/registry/devops.js.map +1 -1
  141. package/dist/src/modules/agents/registry/git.js +1 -1
  142. package/dist/src/modules/agents/registry/git.js.map +1 -1
  143. package/dist/src/modules/agents/registry/manager.js +3 -2
  144. package/dist/src/modules/agents/registry/manager.js.map +1 -1
  145. package/dist/src/modules/agents/registry/native.js +1 -1
  146. package/dist/src/modules/agents/registry/native.js.map +1 -1
  147. package/dist/src/modules/agents/registry/quality.js +1 -0
  148. package/dist/src/modules/agents/registry/quality.js.map +1 -1
  149. package/dist/src/modules/agents/registry/security.js +1 -0
  150. package/dist/src/modules/agents/registry/security.js.map +1 -1
  151. package/dist/src/shared/constants.d.ts +113 -0
  152. package/dist/src/shared/constants.js +178 -0
  153. package/dist/src/shared/constants.js.map +1 -0
  154. package/dist/tests/adapters/paths.test.d.ts +1 -0
  155. package/dist/tests/adapters/paths.test.js +63 -0
  156. package/dist/tests/adapters/paths.test.js.map +1 -0
  157. package/dist/tests/approve.test.js +5 -9
  158. package/dist/tests/approve.test.js.map +1 -1
  159. package/dist/tests/cli/init/unified_init.test.d.ts +1 -0
  160. package/dist/tests/cli/init/unified_init.test.js +47 -0
  161. package/dist/tests/cli/init/unified_init.test.js.map +1 -0
  162. package/dist/tests/fs-utils.test.js +1 -1
  163. package/dist/tests/fs-utils.test.js.map +1 -1
  164. package/dist/tests/memory-utils.test.js +1 -1
  165. package/dist/tests/memory-utils.test.js.map +1 -1
  166. package/dist/tests/shared/constants.test.d.ts +1 -0
  167. package/dist/tests/shared/constants.test.js +17 -0
  168. package/dist/tests/shared/constants.test.js.map +1 -0
  169. package/dist/tests/trace.test.js +2 -2
  170. package/dist/tests/trace.test.js.map +1 -1
  171. package/framework-mcp/dist/constants.js +64 -0
  172. package/framework-mcp/dist/index.js +109 -0
  173. package/framework-mcp/dist/tools/control_plane/locking.js +64 -0
  174. package/framework-mcp/dist/tools/control_plane/registry.js +34 -0
  175. package/framework-mcp/dist/tools/dashboard/start_dashboard.js +29 -0
  176. package/framework-mcp/dist/tools/definitions.js +300 -0
  177. package/framework-mcp/dist/tools/file_system/batch_surgical_edit.js +59 -0
  178. package/framework-mcp/dist/tools/file_system/patch_file.js +25 -0
  179. package/framework-mcp/dist/tools/file_system/read_file.js +51 -0
  180. package/framework-mcp/dist/tools/file_system/replace_text.js +43 -0
  181. package/framework-mcp/dist/tools/file_system/write_file.js +38 -0
  182. package/framework-mcp/dist/tools/framework/audit_deps.js +41 -0
  183. package/framework-mcp/dist/tools/framework/get_status.js +5 -0
  184. package/framework-mcp/dist/tools/framework/orchestrate.js +5 -0
  185. package/framework-mcp/dist/tools/framework/run_tests.js +25 -0
  186. package/framework-mcp/dist/tools/framework/update_contract_hash.js +5 -0
  187. package/framework-mcp/dist/tools/framework/update_memory.js +8 -0
  188. package/framework-mcp/dist/tools/index.js +62 -0
  189. package/framework-mcp/dist/tools/memory/get_insights.js +34 -0
  190. package/framework-mcp/dist/tools/memory/read_memory.js +28 -0
  191. package/framework-mcp/dist/tools/messaging/log_action.js +22 -0
  192. package/framework-mcp/dist/tools/messaging/send_message.js +87 -0
  193. package/framework-mcp/dist/tools/observability/check_ports.js +26 -0
  194. package/framework-mcp/dist/tools/observability/get_health.js +19 -0
  195. package/framework-mcp/dist/tools/quality/check_lint.js +28 -0
  196. package/framework-mcp/dist/tools/search/get_gaps.js +48 -0
  197. package/framework-mcp/dist/tools/search/get_map.js +43 -0
  198. package/framework-mcp/dist/tools/search/grep_search.js +76 -0
  199. package/framework-mcp/dist/tools/search/list_dir.js +28 -0
  200. package/framework-mcp/dist/tools/shell/run_command.js +46 -0
  201. package/framework-mcp/dist/tools/types.js +1 -0
  202. package/framework-mcp/dist/utils/cli.js +20 -0
  203. package/framework-mcp/dist/utils/compliance.js +29 -0
  204. package/framework-mcp/dist/utils/fs.js +44 -0
  205. package/framework-mcp/dist/utils/metrics.js +56 -0
  206. package/framework-mcp/dist/utils/security.js +60 -0
  207. package/framework-mcp/package.json +19 -0
  208. package/framework-mcp/src/constants.ts +78 -0
  209. package/framework-mcp/src/declarations.d.ts +17 -0
  210. package/framework-mcp/src/index.ts +132 -0
  211. package/framework-mcp/src/tools/control_plane/locking.ts +71 -0
  212. package/framework-mcp/src/tools/control_plane/registry.ts +38 -0
  213. package/framework-mcp/src/tools/dashboard/start_dashboard.ts +33 -0
  214. package/framework-mcp/src/tools/definitions.ts +302 -0
  215. package/framework-mcp/src/tools/file_system/batch_surgical_edit.ts +79 -0
  216. package/framework-mcp/src/tools/file_system/patch_file.ts +33 -0
  217. package/framework-mcp/src/tools/file_system/read_file.ts +58 -0
  218. package/framework-mcp/src/tools/file_system/replace_text.ts +52 -0
  219. package/framework-mcp/src/tools/file_system/write_file.ts +45 -0
  220. package/framework-mcp/src/tools/framework/audit_deps.ts +49 -0
  221. package/framework-mcp/src/tools/framework/get_status.ts +7 -0
  222. package/framework-mcp/src/tools/framework/orchestrate.ts +7 -0
  223. package/framework-mcp/src/tools/framework/run_tests.ts +28 -0
  224. package/framework-mcp/src/tools/framework/update_contract_hash.ts +7 -0
  225. package/framework-mcp/src/tools/framework/update_memory.ts +10 -0
  226. package/framework-mcp/src/tools/index.ts +66 -0
  227. package/framework-mcp/src/tools/memory/get_insights.ts +41 -0
  228. package/framework-mcp/src/tools/memory/read_memory.ts +31 -0
  229. package/framework-mcp/src/tools/messaging/log_action.ts +28 -0
  230. package/framework-mcp/src/tools/messaging/send_message.ts +89 -0
  231. package/framework-mcp/src/tools/observability/check_ports.ts +30 -0
  232. package/framework-mcp/src/tools/observability/get_health.ts +24 -0
  233. package/framework-mcp/src/tools/quality/check_lint.ts +33 -0
  234. package/framework-mcp/src/tools/search/get_gaps.ts +54 -0
  235. package/framework-mcp/src/tools/search/get_map.ts +48 -0
  236. package/framework-mcp/src/tools/search/grep_search.ts +76 -0
  237. package/framework-mcp/src/tools/search/list_dir.ts +34 -0
  238. package/framework-mcp/src/tools/shell/run_command.ts +56 -0
  239. package/framework-mcp/src/tools/types.ts +89 -0
  240. package/framework-mcp/src/utils/cli.ts +20 -0
  241. package/framework-mcp/src/utils/compliance.ts +37 -0
  242. package/framework-mcp/src/utils/fs.ts +45 -0
  243. package/framework-mcp/src/utils/metrics.ts +73 -0
  244. package/framework-mcp/src/utils/security.ts +66 -0
  245. package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +212 -0
  246. package/framework-mcp/tests/tools/messaging/send_message.test.ts +136 -0
  247. package/framework-mcp/tests/tools/quality/check_lint.test.ts +46 -0
  248. package/framework-mcp/tests/tools/shell/run_command.test.ts +55 -0
  249. package/framework-mcp/tsconfig.json +14 -0
  250. package/package.json +9 -7
  251. package/src/cli/adapters/core.ts +7 -1
  252. package/src/cli/adapters/index.ts +1 -0
  253. package/src/cli/adapters/paths.ts +134 -0
  254. package/src/cli/adapters/scaffold.ts +17 -7
  255. package/src/cli/commands/check.ts +16 -38
  256. package/src/cli/commands/dashboard/data-service.ts +48 -0
  257. package/src/cli/commands/init/scaffold-core.ts +45 -6
  258. package/src/cli/commands/init/scaffold-standards.ts +6 -1
  259. package/src/cli/commands/init.ts +32 -6
  260. package/src/cli/commands/orchestrate.ts +151 -127
  261. package/src/cli/commands/plan.ts +89 -23
  262. package/src/cli/index.ts +14 -19
  263. package/src/cli/utils/compliance.ts +8 -9
  264. package/src/cli/utils/fs.ts +1 -1
  265. package/src/cli/utils/memory.ts +32 -7
  266. package/src/cli/utils/pkg.ts +42 -13
  267. package/src/modules/adapters/definitions.ts +4 -3
  268. package/src/modules/agents/definitions.ts +2 -1
  269. package/src/modules/agents/registry/analyst.ts +1 -1
  270. package/src/modules/agents/registry/architect.ts +1 -0
  271. package/src/modules/agents/registry/backend.ts +7 -6
  272. package/src/modules/agents/registry/database.ts +4 -3
  273. package/src/modules/agents/registry/devops.ts +1 -1
  274. package/src/modules/agents/registry/git.ts +1 -1
  275. package/src/modules/agents/registry/manager.ts +3 -2
  276. package/src/modules/agents/registry/native.ts +1 -1
  277. package/src/modules/agents/registry/quality.ts +1 -0
  278. package/src/modules/agents/registry/security.ts +1 -0
  279. package/src/shared/constants.ts +212 -0
  280. package/templates/prompts/bug-fix-recipe.md +20 -0
  281. package/templates/prompts/contract-design-recipe.md +21 -0
  282. package/templates/prompts/db-management-recipe.md +25 -0
  283. package/templates/prompts/deployment-recipe.md +23 -0
  284. package/templates/prompts/new-feature-recipe.md +19 -0
  285. package/templates/prompts/performance-optimization-recipe.md +23 -0
  286. package/templates/prompts/pull-request-template.md +21 -0
  287. package/templates/prompts/refactoring-recipe.md +21 -0
  288. package/templates/prompts/security-audit-recipe.md +20 -0
  289. package/templates/standards/architecture-standards.md +23 -0
  290. package/templates/standards/auth-standards.md +125 -0
  291. package/templates/standards/crud-governance.md +21 -0
  292. package/templates/standards/deployment-standards.md +21 -0
  293. package/templates/standards/frontend-standards.md +37 -0
  294. package/templates/standards/github-actions-standards.md +43 -0
  295. package/templates/standards/i18n-standards.md +17 -0
  296. package/templates/standards/kysely-standards.md +47 -0
  297. package/templates/standards/llm-governance.md +15 -0
  298. package/templates/standards/logging-and-secrets.md +34 -0
  299. package/templates/standards/mobile-standards.md +23 -0
  300. package/templates/standards/observability-standards.md +15 -0
  301. package/templates/standards/performance-standards.md +15 -0
  302. package/templates/standards/pino-standards.md +46 -0
  303. package/templates/standards/playwright-standards.md +54 -0
  304. package/templates/standards/quality-standards.md +31 -0
  305. package/templates/standards/react-query-standards.md +72 -0
  306. package/templates/standards/react-router-standards.md +62 -0
  307. package/templates/standards/security-audit-standards.md +16 -0
  308. package/templates/standards/security-standards.md +21 -0
  309. package/templates/standards/swagger-standards.md +50 -0
  310. package/templates/standards/tailwind-standards.md +20 -0
  311. package/templates/standards/testing-standards.md +31 -0
  312. package/templates/standards/typeorm-standards.md +49 -0
  313. package/templates/standards/vitest-standards.md +110 -0
  314. package/bin/validate-agent-army.js +0 -148
  315. package/src/cli/commands/app.ts +0 -56
  316. package/src/cli/utils/app-backend.ts +0 -257
  317. package/src/cli/utils/app-docs.ts +0 -83
  318. package/src/cli/utils/app-frontend.ts +0 -263
  319. package/src/cli/utils/app-inferrer.ts +0 -63
  320. package/src/cli/utils/app-mobile.ts +0 -113
  321. package/src/cli/utils/app-types.ts +0 -248
  322. package/src/cli/utils/app.ts +0 -6
@@ -1,6 +1,5 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
- import chalk from "chalk";
4
3
  import { getFrameworkDir, updateDocumentStore, readStatus } from "../utils/memory.js";
5
4
  import { UI } from "../utils/ui.js";
6
5
  import { writeTextFile, appendFile } from "../utils/fs.js";
@@ -18,7 +17,8 @@ export const HermesMessageSchema = z.object({
18
17
  parentId: z.string().optional(),
19
18
  status: z.enum(["PENDING", "PROCESSED", "WAITING", "APPROVED"]),
20
19
  priority: z.enum(["HIGH", "NORMAL", "LOW"]).optional(),
21
- action: z.string().optional()
20
+ action: z.string().optional(),
21
+ requiresApproval: z.boolean().optional(),
22
22
  });
23
23
  // Global status cache for in-memory optimization
24
24
  let agentStatusCache = {};
@@ -40,149 +40,167 @@ export async function orchestrateCommand() {
40
40
  process.on("SIGTERM", shutdown);
41
41
  isLooping = true;
42
42
  while (isLooping) {
43
- // Initial load from disk to sync the cache
44
- if (Object.keys(agentStatusCache).length === 0) {
45
- const diskStatus = readStatus();
46
- agentStatusCache = diskStatus || {};
47
- }
48
- // Check for agent timeouts (e.g. 30 minutes in EXECUTING state)
49
- const agentStatuses = readStatus();
50
- let updatedStatus = false;
51
- for (const [agentName, info] of Object.entries(agentStatuses)) {
52
- const { state, lastUpdated } = info;
53
- if (state === "EXECUTING" && lastUpdated) {
54
- const lastUpdatedTime = Date.parse(lastUpdated);
55
- if (!isNaN(lastUpdatedTime) && Date.now() - lastUpdatedTime > 30 * 60 * 1000) {
56
- UI.error(`āš ļø Agent ${agentName} has TIMED OUT (in EXECUTING state for >30m). Transitioning to BLOCKED.`);
57
- agentStatuses[agentName] = { state: "BLOCKED", task: "Timeout occurred", lastUpdated: new Date().toISOString() };
58
- updatedStatus = true;
43
+ try {
44
+ // Initial load from disk to sync the cache
45
+ if (Object.keys(agentStatusCache).length === 0) {
46
+ const diskStatus = readStatus();
47
+ agentStatusCache = diskStatus || {};
48
+ }
49
+ // Check for agent timeouts (e.g. 30 minutes in EXECUTING state)
50
+ const agentStatuses = readStatus();
51
+ let updatedStatus = false;
52
+ for (const [agentName, info] of Object.entries(agentStatuses)) {
53
+ const { state, lastUpdated } = info;
54
+ if (state === "EXECUTING" && lastUpdated) {
55
+ const lastUpdatedTime = Date.parse(lastUpdated);
56
+ if (!isNaN(lastUpdatedTime) && Date.now() - lastUpdatedTime > 30 * 60 * 1000) {
57
+ UI.error(`āš ļø Agent ${agentName} has TIMED OUT (in EXECUTING state for >30m). Transitioning to BLOCKED.`);
58
+ agentStatuses[agentName] = { state: "BLOCKED", task: "Timeout occurred", lastUpdated: new Date().toISOString() };
59
+ updatedStatus = true;
60
+ }
59
61
  }
60
62
  }
61
- }
62
- if (updatedStatus) {
63
- updateDocumentStore("status", agentStatuses);
64
- agentStatusCache = { ...agentStatuses }; // Sync cache
65
- }
66
- if (fs.existsSync(messagesDir)) {
67
- const messageFiles = fs.readdirSync(messagesDir).filter((f) => f.endsWith(".json"));
68
- const pendingMessages = [];
69
- const fileMessagesMap = {};
70
- for (const file of messageFiles) {
71
- const filePath = path.join(messagesDir, file);
72
- try {
73
- const content = fs.readFileSync(filePath, "utf8").trim();
74
- if (!content)
75
- continue;
76
- const lines = content.split("\n");
77
- const allMsgs = [];
78
- lines.forEach((line) => {
79
- if (!line.trim())
80
- return;
81
- try {
82
- const parsed = JSON.parse(line);
83
- const msg = HermesMessageSchema.parse(parsed);
84
- // Contract Validation
85
- if (msg.category === "ACTION" || msg.category === "DELEGATION") {
86
- try {
87
- const payload = JSON.parse(msg.content);
88
- TaskRequestSchema.parse(payload);
63
+ if (updatedStatus) {
64
+ updateDocumentStore("status", agentStatuses);
65
+ agentStatusCache = { ...agentStatuses }; // Sync cache
66
+ }
67
+ if (fs.existsSync(messagesDir)) {
68
+ const messageFiles = fs.readdirSync(messagesDir).filter((f) => f.endsWith(".json"));
69
+ const pendingMessages = [];
70
+ const fileMessagesMap = {};
71
+ for (const file of messageFiles) {
72
+ const filePath = path.join(messagesDir, file);
73
+ try {
74
+ const content = fs.readFileSync(filePath, "utf8").trim();
75
+ if (!content)
76
+ continue;
77
+ const lines = content.split("\n");
78
+ const allMsgs = [];
79
+ lines.forEach((line) => {
80
+ if (!line.trim())
81
+ return;
82
+ try {
83
+ const parsed = JSON.parse(line);
84
+ const msg = HermesMessageSchema.parse(parsed);
85
+ // Contract Validation
86
+ if (msg.category === "ACTION" || msg.category === "DELEGATION") {
87
+ try {
88
+ const payload = JSON.parse(msg.content);
89
+ TaskRequestSchema.parse(payload);
90
+ }
91
+ catch (e) {
92
+ UI.error(`Invalid task contract payload: ${e.message}`);
93
+ return; // Skip invalid message
94
+ }
89
95
  }
90
- catch (e) {
91
- UI.error(`Invalid task contract payload: ${e.message}`);
92
- return; // Skip invalid message
96
+ // A message is actionable if it's pending, or if it's been approved.
97
+ if (msg.status === "PENDING" || msg.status === "APPROVED") {
98
+ pendingMessages.push(msg);
93
99
  }
100
+ allMsgs.push(msg);
94
101
  }
95
- if (msg.status === "PENDING") {
96
- pendingMessages.push(msg);
102
+ catch (e) {
103
+ UI.error(`Skipping invalid Hermes message format: ${e.message}`);
97
104
  }
98
- allMsgs.push(msg);
99
- }
100
- catch (e) {
101
- UI.error(`Skipping invalid Hermes message format: ${e.message}`);
102
- }
103
- });
104
- fileMessagesMap[file] = allMsgs;
105
- }
106
- catch (err) {
107
- UI.error(`Error occurred while reading ${file}.`);
108
- logger.debug(`Failed to read message file ${file}`, err);
109
- }
110
- }
111
- if (pendingMessages.length > 0) {
112
- // Sort by priority: HIGH -> NORMAL -> LOW
113
- const priorityOrder = { HIGH: 1, NORMAL: 2, LOW: 3 };
114
- pendingMessages.sort((a, b) => {
115
- const pA = priorityOrder[a.priority || "NORMAL"] || 2;
116
- const pB = priorityOrder[b.priority || "NORMAL"] || 2;
117
- if (pA !== pB)
118
- return pA - pB;
119
- return Date.parse(a.timestamp) - Date.parse(b.timestamp);
120
- });
121
- UI.intent("Multi-Agent Orchestration", `${pendingMessages.length} pending tasks and collaboration messages found.`);
122
- const statusChanges = {};
123
- for (const msg of pendingMessages) {
124
- const { from, to, content, traceId, category, parentId } = msg;
125
- const isSubtask = category === "SUBTASK" || !!parentId;
126
- const agentLabel = isSubtask ? `${to} (Sub-Agent)` : to;
127
- UI.agentBox(agentLabel, content, `Trace: ${traceId} | From: ${from} | Category: ${category}`);
128
- let targetState = "EXECUTING";
129
- if (category === "DELEGATION" || category === "SUBTASK")
130
- targetState = "BRIEFED";
131
- let taskDescription = content;
132
- if (category === "DELEGATION" || category === "ACTION") {
133
- try {
134
- const payload = JSON.parse(content);
135
- taskDescription = payload.task || content;
136
- }
137
- catch {
138
- // Ignore
139
- }
140
- }
141
- statusChanges[to] = { state: targetState, task: taskDescription };
142
- if (targetState === "BRIEFED") {
143
- UI.success(`${to} informed and took over the task.`);
144
- statusChanges[to] = { state: "EXECUTING", task: taskDescription };
105
+ });
106
+ fileMessagesMap[file] = allMsgs;
145
107
  }
146
- if (isSubtask) {
147
- UI.success(`Sub-task connection established (Parent: ${parentId || "Unknown"}).`);
108
+ catch (err) {
109
+ UI.error(`Error occurred while reading ${file}.`);
110
+ logger.debug(`Failed to read message file ${file}`, err);
148
111
  }
149
- UI.success(`Collaboration initiated: ${from} -> ${to}`);
150
- console.warn(chalk.gray(` šŸ‘‰ Instructions: ${frameworkDir}/agents/${to.replace("@", "")}.md`));
151
- msg.status = "PROCESSED";
152
112
  }
153
- applyBatchStatusUpdates(statusChanges);
154
- const archiveDir = path.join(messagesDir, "archive");
155
- for (const file of Object.keys(fileMessagesMap)) {
156
- const filePath = path.join(messagesDir, file);
157
- const msgs = fileMessagesMap[file];
158
- const activeMsgs = msgs.filter(m => m.status !== "PROCESSED");
159
- const processedMsgs = msgs.filter(m => m.status === "PROCESSED");
160
- try {
161
- if (activeMsgs.length > 0) {
162
- const updatedContent = activeMsgs.map(m => JSON.stringify(m)).join("\n") + "\n";
163
- writeTextFile(filePath, updatedContent);
113
+ if (pendingMessages.length > 0) {
114
+ // Sort by priority: HIGH -> NORMAL -> LOW
115
+ const priorityOrder = { HIGH: 1, NORMAL: 2, LOW: 3 };
116
+ pendingMessages.sort((a, b) => {
117
+ const pA = priorityOrder[a.priority || "NORMAL"] || 2;
118
+ const pB = priorityOrder[b.priority || "NORMAL"] || 2;
119
+ if (pA !== pB)
120
+ return pA - pB;
121
+ return Date.parse(a.timestamp) - Date.parse(b.timestamp);
122
+ });
123
+ UI.intent("Multi-Agent Orchestration", `${pendingMessages.length} pending tasks and collaboration messages found.`);
124
+ const statusChanges = {};
125
+ for (const msg of pendingMessages) {
126
+ const { from, to, content, traceId, category, status, requiresApproval } = msg;
127
+ // Approval Gate for high-risk actions.
128
+ // If it requires approval but isn't approved yet, skip it for now.
129
+ if ((category === "ACTION" || category === "ALERT") && requiresApproval && status !== "APPROVED") {
130
+ logger.debug(`Action for @${to} (Trace: ${traceId}) is pending manager approval.`);
131
+ continue;
164
132
  }
165
- else if (fs.existsSync(filePath)) {
166
- writeTextFile(filePath, "");
133
+ // Gate for regular messages.
134
+ // If it's a non-approval-required message, it should only be processed when PENDING.
135
+ // This prevents re-processing of SUBTASK/REPLY messages that might get set to APPROVED.
136
+ if (!(category === "ACTION" || category === "ALERT") && status !== "PENDING") {
137
+ continue;
167
138
  }
168
- if (processedMsgs.length > 0) {
169
- if (!fs.existsSync(archiveDir)) {
170
- fs.mkdirSync(archiveDir, { recursive: true });
139
+ const isSubtask = category === "SUBTASK" || !!msg.parentId;
140
+ const agentLabel = isSubtask ? `${to} (Sub-Agent)` : to;
141
+ UI.agentBox(agentLabel, content, `Trace: ${traceId} | From: ${from} | Category: ${category}`);
142
+ let targetState = "EXECUTING";
143
+ if (category === "DELEGATION" || category === "SUBTASK")
144
+ targetState = "BRIEFED";
145
+ let taskDescription = content;
146
+ if (category === "DELEGATION" || category === "ACTION") {
147
+ try {
148
+ const payload = JSON.parse(content);
149
+ taskDescription = payload.task || content;
150
+ }
151
+ catch {
152
+ // Ignore
171
153
  }
172
- const agentName = file.replace(".json", "");
173
- const archivePath = path.join(archiveDir, `${agentName}_archive.json`);
174
- const archiveContent = processedMsgs.map(m => JSON.stringify(m)).join("\n") + "\n";
175
- appendFile(archivePath, archiveContent);
176
- UI.success(`Archived ${processedMsgs.length} messages for @${agentName}`);
177
154
  }
155
+ statusChanges[to] = { state: targetState, task: taskDescription };
156
+ if (targetState === "BRIEFED") {
157
+ UI.success(`${to} informed and took over the task.`);
158
+ statusChanges[to] = { state: "EXECUTING", task: taskDescription };
159
+ }
160
+ if (isSubtask) {
161
+ UI.success(`Sub-task connection established (Parent: ${msg.parentId || "Unknown"}).`);
162
+ }
163
+ UI.success(`Collaboration initiated: ${from} -> ${to}`);
164
+ msg.status = "PROCESSED";
178
165
  }
179
- catch (err) {
180
- UI.error(`Error occurred while updating and archiving the message file ${file}.`);
181
- logger.debug(`Failed to update and archive message file ${file}`, err);
166
+ applyBatchStatusUpdates(statusChanges);
167
+ const archiveDir = path.join(messagesDir, "archive");
168
+ for (const file of Object.keys(fileMessagesMap)) {
169
+ const filePath = path.join(messagesDir, file);
170
+ const msgs = fileMessagesMap[file];
171
+ const activeMsgs = msgs.filter(m => m.status !== "PROCESSED");
172
+ const processedMsgs = msgs.filter(m => m.status === "PROCESSED");
173
+ try {
174
+ if (activeMsgs.length > 0) {
175
+ const updatedContent = activeMsgs.map(m => JSON.stringify(m)).join("\n") + "\n";
176
+ writeTextFile(filePath, updatedContent);
177
+ }
178
+ else if (fs.existsSync(filePath)) {
179
+ writeTextFile(filePath, "");
180
+ }
181
+ if (processedMsgs.length > 0) {
182
+ if (!fs.existsSync(archiveDir)) {
183
+ fs.mkdirSync(archiveDir, { recursive: true });
184
+ }
185
+ const agentName = file.replace(".json", "");
186
+ const archivePath = path.join(archiveDir, `${agentName}_archive.json`);
187
+ const archiveContent = processedMsgs.map(m => JSON.stringify(m)).join("\n") + "\n";
188
+ appendFile(archivePath, archiveContent);
189
+ UI.success(`Archived ${processedMsgs.length} messages for @${agentName}`);
190
+ }
191
+ }
192
+ catch (err) {
193
+ UI.error(`Error occurred while updating and archiving the message file ${file}.`);
194
+ logger.debug(`Failed to update and archive message file ${file}`, err);
195
+ }
182
196
  }
183
197
  }
184
198
  }
185
199
  }
200
+ catch (globalLoopErr) {
201
+ UI.error(`āš ļø Critical error in Hermes orchestration loop: ${globalLoopErr.message}`);
202
+ logger.debug("Hermes global loop failure", globalLoopErr);
203
+ }
186
204
  // Prevent 100% CPU and provide breathing room for I/O
187
205
  await sleep(2000);
188
206
  }
@@ -241,11 +259,13 @@ export async function sendMessage(args) {
241
259
  }
242
260
  try {
243
261
  const defaultPriority = (args.category === "ALERT" || args.category === "ACTION") ? "HIGH" : "NORMAL";
262
+ const requiresApproval = args.requiresApproval !== undefined ? args.requiresApproval : (args.category === "ALERT" || args.category === "ACTION");
244
263
  const message = {
245
264
  timestamp: new Date().toISOString(),
246
265
  priority: args.priority || defaultPriority,
247
266
  ...args,
248
- status: "PENDING"
267
+ status: "PENDING",
268
+ requiresApproval: requiresApproval,
249
269
  };
250
270
  appendFile(messagePath, JSON.stringify(message) + "\n");
251
271
  return message;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../../src/cli/commands/orchestrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../../src/cli/commands/orchestrate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  /**
2
- * Parses docs/user/roadmap.md and injects tasks into the Document Store.
2
+ * Reads ALL markdown files from the docs/ directory and creates
3
+ * planning tasks from them. Agents will use this to understand
4
+ * project requirements and generate code accordingly.
3
5
  */
4
6
  export declare function planCommand(): Promise<void>;
@@ -1,40 +1,97 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
- import { updateDocumentStore } from "../utils/memory.js";
4
3
  import { generateULID } from "../utils/time.js";
5
4
  import { UI } from "../utils/ui.js";
6
5
  /**
7
- * Parses docs/user/roadmap.md and injects tasks into the Document Store.
6
+ * Reads ALL markdown files from the docs/ directory and creates
7
+ * planning tasks from them. Agents will use this to understand
8
+ * project requirements and generate code accordingly.
8
9
  */
9
10
  export async function planCommand() {
10
11
  const projectRoot = process.cwd();
11
- const roadmapPath = path.join(projectRoot, "docs/user/roadmap.md");
12
- if (!fs.existsSync(roadmapPath)) {
13
- UI.error("Roadmap file not found at docs/user/roadmap.md");
12
+ const docsDir = path.join(projectRoot, "docs");
13
+ if (!fs.existsSync(docsDir)) {
14
+ UI.error("Docs directory not found at docs/");
15
+ console.warn("šŸ’” Create a docs/ folder with your project requirements in .md files.");
14
16
  return;
15
17
  }
16
- const content = fs.readFileSync(roadmapPath, "utf8");
17
- const taskRegex = /- \[ \] (.*) \| (.*) \| (.*)/g;
18
- let match;
19
- let count = 0;
20
- UI.intent("Planning Engine", "Parsing roadmap.md and injecting tasks into Document Store...");
21
- while ((match = taskRegex.exec(content)) !== null) {
22
- const description = match[1];
23
- const priority = match[2];
24
- const agent = match[3];
18
+ const entries = fs.readdirSync(docsDir, { withFileTypes: true });
19
+ const mdFiles = entries.filter(e => e.isFile() && e.name.endsWith(".md"));
20
+ if (mdFiles.length === 0) {
21
+ UI.warning("No markdown files found in docs/ directory.");
22
+ console.warn("šŸ’” Add .md files to docs/ with your project requirements.");
23
+ return;
24
+ }
25
+ UI.intent("Planning Engine", `Reading ${mdFiles.length} document(s) from docs/...`);
26
+ // Discover available template standards
27
+ const templatesDir = path.join(projectRoot, "templates");
28
+ const standards = [];
29
+ if (fs.existsSync(templatesDir)) {
30
+ const templateFiles = fs.readdirSync(templatesDir);
31
+ standards.push(...templateFiles.filter(f => f.endsWith("-standards.md")).map(f => `templates/${f}`));
32
+ if (standards.length > 0) {
33
+ UI.success(`Found ${standards.length} standard templates available for code generation.`);
34
+ }
35
+ }
36
+ let totalTasks = 0;
37
+ for (const file of mdFiles) {
38
+ const filePath = path.join(docsDir, file.name);
39
+ const content = fs.readFileSync(filePath, "utf8");
40
+ const lines = content.split("\n");
25
41
  const traceId = generateULID();
42
+ UI.success(`šŸ“„ docs/${file.name} (${lines.length} lines) → Trace: ${traceId}`);
43
+ console.warn(` Content preview: ${content.substring(0, 200).replace(/\n/g, " ")}...`);
44
+ // Extract headings as task descriptions
45
+ const headingRegex = /^#{2,4}\s+(.+)$/gm;
46
+ let headingMatch;
47
+ let headingCount = 0;
48
+ while ((headingMatch = headingRegex.exec(content)) !== null) {
49
+ headingCount++;
50
+ totalTasks++;
51
+ }
52
+ // Extract checklist items
53
+ const taskRegex = /- \[ \]\s+(.+)/g;
54
+ let taskMatch;
55
+ let taskCount = 0;
56
+ while ((taskMatch = taskRegex.exec(content)) !== null) {
57
+ if (taskMatch[1].trim().length >= 3) {
58
+ taskCount++;
59
+ totalTasks++;
60
+ }
61
+ }
62
+ console.warn(` šŸ“‹ ${headingCount} sections, ${taskCount} actionable tasks detected`);
63
+ // Store in project memory-compatible format
64
+ const memoryDir = path.join(projectRoot, ".enderun", "memory", "tasks");
65
+ if (!fs.existsSync(memoryDir)) {
66
+ fs.mkdirSync(memoryDir, { recursive: true });
67
+ }
68
+ const taskFile = path.join(memoryDir, `${traceId}.json`);
26
69
  const taskData = {
27
70
  traceId,
28
- description: description.trim(),
29
- priority: priority.trim(),
30
- agent: agent.trim().replace("@", ""),
71
+ source: `docs/${file.name}`,
72
+ description: `Process requirements from docs/${file.name}`,
31
73
  status: "PENDING",
32
- createdAt: new Date().toISOString()
74
+ createdAt: new Date().toISOString(),
75
+ standards,
76
+ headings: headingCount,
77
+ tasks: taskCount,
78
+ preview: content.substring(0, 500),
33
79
  };
34
- updateDocumentStore("task", taskData, traceId);
35
- UI.success(`Injected task: ${taskData.description} (Agent: ${taskData.agent})`);
36
- count++;
80
+ fs.writeFileSync(taskFile, JSON.stringify(taskData, null, 2));
81
+ }
82
+ // Log available standards
83
+ if (standards.length > 0) {
84
+ console.warn("");
85
+ UI.divider();
86
+ console.warn("šŸ“š Available Enterprise Standards:");
87
+ standards.forEach(s => console.warn(` - ${s}`));
88
+ UI.divider();
37
89
  }
38
- UI.success(`Plan complete: ${count} tasks injected into Document Store.`);
90
+ UI.success(`\nāœ… Planning complete: ${totalTasks} tasks identified from ${mdFiles.length} document(s).`);
91
+ console.warn("\nšŸ“‹ Next steps:");
92
+ console.warn(" 1. Run 'agent-enderun status' to see project state");
93
+ console.warn(" 2. AI agents (Claude, Gemini, Grok, etc.) will read docs/ and templates/");
94
+ console.warn(" 3. Agents generate enterprise-standard code based on requirements");
95
+ console.warn(" 4. Use @agent delegation for specific tasks: agent-enderun @backend \"...\"");
39
96
  }
40
97
  //# sourceMappingURL=plan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAEnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC3D,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,+BAA+B,CAAC;IAClD,IAAI,KAAK,CAAC;IACV,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,+DAA+D,CAAC,CAAC;IAE9F,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAG;YACb,OAAO;YACP,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;YAC/B,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;YACzB,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,EAAE,CAAC,OAAO,CAAC,kBAAkB,QAAQ,CAAC,WAAW,YAAY,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QAChF,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,EAAE,CAAC,OAAO,CAAC,kBAAkB,KAAK,sCAAsC,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/plan.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from "fs";
3
- import { getPackageVersion, getValidatorPath } from "./utils/pkg.js";
4
- import { getMemoryPath, readActiveTraceId } from "./utils/memory.js";
5
- import { planCommand } from "./commands/plan.js";
6
- import { initCommand } from "./commands/init.js";
3
+ import { approveCommand } from "./commands/approve.js";
7
4
  import { checkCommand } from "./commands/check.js";
8
- import { statusCommand } from "./commands/status.js";
9
- import { traceNewCommand } from "./commands/trace.js";
5
+ import { updateApiContractCommand, verifyApiContractCommand } from "./commands/contract.js";
6
+ import { initCommand } from "./commands/init.js";
10
7
  import { updateProjectMemoryCommand } from "./commands/memory.js";
11
- import { createAppCommand } from "./commands/app.js";
12
- import { verifyApiContractCommand, updateApiContractCommand } from "./commands/contract.js";
13
8
  import { orchestrateCommand, sendMessage } from "./commands/orchestrate.js";
14
- import { approveCommand } from "./commands/approve.js";
9
+ import { planCommand } from "./commands/plan.js";
10
+ import { statusCommand } from "./commands/status.js";
11
+ import { traceNewCommand } from "./commands/trace.js";
12
+ import { getMemoryPath, readActiveTraceId } from "./utils/memory.js";
13
+ import { getPackageVersion, getValidatorPath } from "./utils/pkg.js";
15
14
  /**
16
15
  * Main CLI entry point.
17
16
  */
@@ -20,7 +19,7 @@ async function main() {
20
19
  const command = args[0];
21
20
  const KNOWN_COMMANDS = [
22
21
  "init", "check", "status", "trace:new", "update_project_memory",
23
- "create-app", "orchestrate", "loop", "verify-contract", "update-contract",
22
+ "plan", "orchestrate", "loop", "verify-contract", "update-contract",
24
23
  "validate", "validate-army", "check:al", "version", "-v", "--version", "help", "-h", "--help",
25
24
  "git:commit", "git:sync", "check:compliance", "explorer:graph", "explorer:audit",
26
25
  "knowledge:update", "knowledge:search", "log:action", "run-script", "security:audit", "check:lint", "approve"
@@ -88,9 +87,6 @@ async function main() {
88
87
  await updateProjectMemoryCommand(section, content);
89
88
  break;
90
89
  }
91
- case "create-app":
92
- await createAppCommand(args.slice(1));
93
- break;
94
90
  case "dashboard": {
95
91
  const { dashboardCommand } = await import("./commands/dashboard.js");
96
92
  await dashboardCommand(args.slice(1));
@@ -254,7 +250,7 @@ Commands:
254
250
  check Perform an enterprise-grade system health check
255
251
  status Show active phase, trace ID, and agent statuses
256
252
  trace:new <desc> Start a new task chain with a unique Trace ID
257
- create-app <idea> Generate a new full-stack app from natural language
253
+ plan Read all docs/ files and create planning tasks
258
254
  orchestrate Start the dynamic Hermes agent orchestration loop
259
255
  verify-contract Validate type alignment between backend and frontend
260
256
  update-contract Generate and synchronize a new contract hash
@@ -280,8 +276,8 @@ Example:
280
276
  agent-enderun @backend "Create the login page"
281
277
  `);
282
278
  }
283
- import { logger } from "../shared/logger.js";
284
279
  import { EnderunBaseError } from "../shared/errors.js";
280
+ import { logger } from "../shared/logger.js";
285
281
  main().catch((err) => {
286
282
  if (err instanceof EnderunBaseError) {
287
283
  console.error(`\nāŒ [${err.code}] Error: ${err.message}`);