agent-enderun 1.0.8 β†’ 1.1.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 (304) hide show
  1. package/.enderun/ARCHITECTURE.md +1 -0
  2. package/.enderun/BRAIN_DASHBOARD.md +1 -1
  3. package/.enderun/ENDERUN.md +4 -3
  4. package/.enderun/SECURITY.md +1 -0
  5. package/.enderun/STATUS.md +4 -4
  6. package/.enderun/agents/agent_army_schema.json +71 -77
  7. package/.enderun/agents/analyst.json +32 -0
  8. package/.enderun/agents/backend.json +32 -0
  9. package/.enderun/agents/database.json +32 -0
  10. package/.enderun/agents/devops.json +32 -0
  11. package/.enderun/agents/explorer.json +32 -0
  12. package/.enderun/agents/frontend.json +32 -0
  13. package/.enderun/agents/git.json +32 -0
  14. package/.enderun/agents/manager.json +34 -0
  15. package/.enderun/agents/mobile.json +32 -0
  16. package/.enderun/agents/native.json +32 -0
  17. package/.enderun/agents/quality.json +32 -0
  18. package/.enderun/agents/schema/agent-lifecycle-schema.json +35 -80
  19. package/.enderun/agents/security.json +32 -0
  20. package/.enderun/cli-commands.json +7 -5
  21. package/.enderun/config.json +1 -1
  22. package/.enderun/knowledge/ARCHITECTURE.md +1 -0
  23. package/.enderun/knowledge/SECURITY.md +1 -0
  24. package/.enderun/knowledge/SHIM_TEMPLATE.md +1 -1
  25. package/.enderun/logs/manager.json +1 -0
  26. package/.enderun/memory/PROJECT_MEMORY.md +6 -0
  27. package/.enderun/observability/README.md +1 -1
  28. package/CLAUDE.md +5 -5
  29. package/GEMINI.md +8 -5
  30. package/GROK.md +1 -1
  31. package/README.md +34 -33
  32. package/agent.md +1 -1
  33. package/bin/hermes-sandbox.js +0 -4
  34. package/bin/init-check.js +0 -1
  35. package/bin/validate-agent-army.js +34 -92
  36. package/dist/apps/backend/src/types/index.d.ts +9 -0
  37. package/dist/apps/backend/src/types/index.js +5 -0
  38. package/dist/apps/backend/src/types/index.js.map +1 -0
  39. package/dist/apps/web/src/main.d.ts +1 -0
  40. package/dist/apps/web/src/main.js +9 -0
  41. package/dist/apps/web/src/main.js.map +1 -0
  42. package/dist/apps/web/vite.config.d.ts +2 -0
  43. package/dist/apps/web/vite.config.js +6 -0
  44. package/dist/apps/web/vite.config.js.map +1 -0
  45. package/dist/framework-mcp/src/index.d.ts +1 -0
  46. package/dist/framework-mcp/src/index.js +71 -0
  47. package/dist/framework-mcp/src/index.js.map +1 -0
  48. package/dist/framework-mcp/src/tools/definitions.d.ts +2 -0
  49. package/dist/framework-mcp/src/tools/definitions.js +111 -0
  50. package/dist/framework-mcp/src/tools/definitions.js.map +1 -0
  51. package/dist/framework-mcp/src/tools/file_system/patch_file.d.ts +2 -0
  52. package/dist/framework-mcp/src/tools/file_system/patch_file.js +19 -0
  53. package/dist/framework-mcp/src/tools/file_system/patch_file.js.map +1 -0
  54. package/dist/framework-mcp/src/tools/file_system/read_file.d.ts +2 -0
  55. package/dist/framework-mcp/src/tools/file_system/read_file.js +8 -0
  56. package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -0
  57. package/dist/framework-mcp/src/tools/file_system/replace_text.d.ts +2 -0
  58. package/dist/framework-mcp/src/tools/file_system/replace_text.js +32 -0
  59. package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -0
  60. package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +2 -0
  61. package/dist/framework-mcp/src/tools/file_system/write_file.js +10 -0
  62. package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -0
  63. package/dist/framework-mcp/src/tools/framework/get_status.d.ts +2 -0
  64. package/dist/framework-mcp/src/tools/framework/get_status.js +6 -0
  65. package/dist/framework-mcp/src/tools/framework/get_status.js.map +1 -0
  66. package/dist/framework-mcp/src/tools/framework/orchestrate.d.ts +2 -0
  67. package/dist/framework-mcp/src/tools/framework/orchestrate.js +6 -0
  68. package/dist/framework-mcp/src/tools/framework/orchestrate.js.map +1 -0
  69. package/dist/framework-mcp/src/tools/framework/update_contract_hash.d.ts +2 -0
  70. package/dist/framework-mcp/src/tools/framework/update_contract_hash.js +6 -0
  71. package/dist/framework-mcp/src/tools/framework/update_contract_hash.js.map +1 -0
  72. package/dist/framework-mcp/src/tools/framework/update_memory.d.ts +2 -0
  73. package/dist/framework-mcp/src/tools/framework/update_memory.js +9 -0
  74. package/dist/framework-mcp/src/tools/framework/update_memory.js.map +1 -0
  75. package/dist/framework-mcp/src/tools/index.d.ts +5 -0
  76. package/dist/framework-mcp/src/tools/index.js +26 -0
  77. package/dist/framework-mcp/src/tools/index.js.map +1 -0
  78. package/dist/framework-mcp/src/tools/messaging/log_action.d.ts +2 -0
  79. package/dist/framework-mcp/src/tools/messaging/log_action.js +23 -0
  80. package/dist/framework-mcp/src/tools/messaging/log_action.js.map +1 -0
  81. package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +2 -0
  82. package/dist/framework-mcp/src/tools/messaging/send_message.js +24 -0
  83. package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -0
  84. package/dist/framework-mcp/src/tools/types.d.ts +47 -0
  85. package/dist/framework-mcp/src/tools/types.js +2 -0
  86. package/dist/framework-mcp/src/tools/types.js.map +1 -0
  87. package/dist/framework-mcp/src/utils/cli.d.ts +5 -0
  88. package/dist/framework-mcp/src/utils/cli.js +21 -0
  89. package/dist/framework-mcp/src/utils/cli.js.map +1 -0
  90. package/dist/framework-mcp/src/utils/security.d.ts +12 -0
  91. package/dist/framework-mcp/src/utils/security.js +54 -0
  92. package/dist/framework-mcp/src/utils/security.js.map +1 -0
  93. package/dist/src/cli/adapters.d.ts +32 -0
  94. package/dist/src/cli/adapters.js +264 -0
  95. package/dist/src/cli/adapters.js.map +1 -0
  96. package/dist/src/cli/commands/app.d.ts +4 -0
  97. package/dist/src/cli/commands/app.js +32 -0
  98. package/dist/src/cli/commands/app.js.map +1 -0
  99. package/dist/src/cli/commands/check.d.ts +6 -0
  100. package/dist/src/cli/commands/check.js +110 -0
  101. package/dist/src/cli/commands/check.js.map +1 -0
  102. package/dist/src/cli/commands/compliance.d.ts +1 -0
  103. package/dist/src/cli/commands/compliance.js +51 -0
  104. package/dist/src/cli/commands/compliance.js.map +1 -0
  105. package/dist/src/cli/commands/contract.d.ts +8 -0
  106. package/dist/src/cli/commands/contract.js +73 -0
  107. package/dist/src/cli/commands/contract.js.map +1 -0
  108. package/dist/src/cli/commands/explorer.d.ts +2 -0
  109. package/dist/src/cli/commands/explorer.js +43 -0
  110. package/dist/src/cli/commands/explorer.js.map +1 -0
  111. package/dist/src/cli/commands/git.d.ts +2 -0
  112. package/dist/src/cli/commands/git.js +41 -0
  113. package/dist/src/cli/commands/git.js.map +1 -0
  114. package/dist/src/cli/commands/init.d.ts +1 -0
  115. package/dist/src/cli/commands/init.js +338 -0
  116. package/dist/src/cli/commands/init.js.map +1 -0
  117. package/dist/src/cli/commands/knowledge.d.ts +2 -0
  118. package/dist/src/cli/commands/knowledge.js +43 -0
  119. package/dist/src/cli/commands/knowledge.js.map +1 -0
  120. package/dist/src/cli/commands/lint.d.ts +4 -0
  121. package/dist/src/cli/commands/lint.js +24 -0
  122. package/dist/src/cli/commands/lint.js.map +1 -0
  123. package/dist/src/cli/commands/log.d.ts +9 -0
  124. package/dist/src/cli/commands/log.js +33 -0
  125. package/dist/src/cli/commands/log.js.map +1 -0
  126. package/dist/src/cli/commands/memory.d.ts +1 -0
  127. package/dist/src/cli/commands/memory.js +72 -0
  128. package/dist/src/cli/commands/memory.js.map +1 -0
  129. package/dist/src/cli/commands/orchestrate.d.ts +1 -0
  130. package/dist/src/cli/commands/orchestrate.js +111 -0
  131. package/dist/src/cli/commands/orchestrate.js.map +1 -0
  132. package/dist/src/cli/commands/script.d.ts +1 -0
  133. package/dist/src/cli/commands/script.js +20 -0
  134. package/dist/src/cli/commands/script.js.map +1 -0
  135. package/dist/src/cli/commands/security.d.ts +1 -0
  136. package/dist/src/cli/commands/security.js +37 -0
  137. package/dist/src/cli/commands/security.js.map +1 -0
  138. package/dist/src/cli/commands/status.d.ts +4 -0
  139. package/dist/src/cli/commands/status.js +56 -0
  140. package/dist/src/cli/commands/status.js.map +1 -0
  141. package/dist/src/cli/commands/trace.d.ts +4 -0
  142. package/dist/src/cli/commands/trace.js +42 -0
  143. package/dist/src/cli/commands/trace.js.map +1 -0
  144. package/dist/src/cli/index.d.ts +2 -0
  145. package/dist/src/cli/index.js +117 -0
  146. package/dist/src/cli/index.js.map +1 -0
  147. package/dist/src/cli/utils/app.d.ts +33 -0
  148. package/dist/src/cli/utils/app.js +710 -0
  149. package/dist/src/cli/utils/app.js.map +1 -0
  150. package/dist/src/cli/utils/claude.d.ts +8 -0
  151. package/dist/src/cli/utils/claude.js +56 -0
  152. package/dist/src/cli/utils/claude.js.map +1 -0
  153. package/dist/src/cli/utils/fs.d.ts +11 -0
  154. package/dist/src/cli/utils/fs.js +144 -0
  155. package/dist/src/cli/utils/fs.js.map +1 -0
  156. package/dist/src/cli/utils/memory.d.ts +14 -0
  157. package/dist/src/cli/utils/memory.js +173 -0
  158. package/dist/src/cli/utils/memory.js.map +1 -0
  159. package/dist/src/cli/utils/pkg.d.ts +24 -0
  160. package/dist/src/cli/utils/pkg.js +254 -0
  161. package/dist/src/cli/utils/pkg.js.map +1 -0
  162. package/dist/src/cli/utils/string.d.ts +6 -0
  163. package/dist/src/cli/utils/string.js +44 -0
  164. package/dist/src/cli/utils/string.js.map +1 -0
  165. package/dist/src/cli/utils/time.d.ts +2 -0
  166. package/dist/src/cli/utils/time.js +28 -0
  167. package/dist/src/cli/utils/time.js.map +1 -0
  168. package/dist/tests/adapter.test.d.ts +1 -0
  169. package/dist/tests/adapter.test.js +80 -0
  170. package/dist/tests/adapter.test.js.map +1 -0
  171. package/dist/tests/framework-init-test/framework-mcp/src/index.d.ts +1 -0
  172. package/dist/tests/framework-init-test/framework-mcp/src/index.js +71 -0
  173. package/dist/tests/framework-init-test/framework-mcp/src/index.js.map +1 -0
  174. package/dist/tests/framework-init-test/framework-mcp/src/tools/definitions.d.ts +2 -0
  175. package/dist/tests/framework-init-test/framework-mcp/src/tools/definitions.js +111 -0
  176. package/dist/tests/framework-init-test/framework-mcp/src/tools/definitions.js.map +1 -0
  177. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/patch_file.d.ts +2 -0
  178. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/patch_file.js +19 -0
  179. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/patch_file.js.map +1 -0
  180. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/read_file.d.ts +2 -0
  181. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/read_file.js +8 -0
  182. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/read_file.js.map +1 -0
  183. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/replace_text.d.ts +2 -0
  184. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/replace_text.js +32 -0
  185. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/replace_text.js.map +1 -0
  186. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/write_file.d.ts +2 -0
  187. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/write_file.js +10 -0
  188. package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/write_file.js.map +1 -0
  189. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/get_status.d.ts +2 -0
  190. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/get_status.js +6 -0
  191. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/get_status.js.map +1 -0
  192. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/orchestrate.d.ts +2 -0
  193. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/orchestrate.js +6 -0
  194. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/orchestrate.js.map +1 -0
  195. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_contract_hash.d.ts +2 -0
  196. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_contract_hash.js +6 -0
  197. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_contract_hash.js.map +1 -0
  198. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_memory.d.ts +2 -0
  199. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_memory.js +9 -0
  200. package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_memory.js.map +1 -0
  201. package/dist/tests/framework-init-test/framework-mcp/src/tools/index.d.ts +5 -0
  202. package/dist/tests/framework-init-test/framework-mcp/src/tools/index.js +26 -0
  203. package/dist/tests/framework-init-test/framework-mcp/src/tools/index.js.map +1 -0
  204. package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/log_action.d.ts +2 -0
  205. package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/log_action.js +23 -0
  206. package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/log_action.js.map +1 -0
  207. package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/send_message.d.ts +2 -0
  208. package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/send_message.js +24 -0
  209. package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/send_message.js.map +1 -0
  210. package/dist/tests/framework-init-test/framework-mcp/src/tools/types.d.ts +47 -0
  211. package/dist/tests/framework-init-test/framework-mcp/src/tools/types.js +2 -0
  212. package/dist/tests/framework-init-test/framework-mcp/src/tools/types.js.map +1 -0
  213. package/dist/tests/framework-init-test/framework-mcp/src/utils/cli.d.ts +5 -0
  214. package/dist/tests/framework-init-test/framework-mcp/src/utils/cli.js +21 -0
  215. package/dist/tests/framework-init-test/framework-mcp/src/utils/cli.js.map +1 -0
  216. package/dist/tests/framework-init-test/framework-mcp/src/utils/security.d.ts +12 -0
  217. package/dist/tests/framework-init-test/framework-mcp/src/utils/security.js +54 -0
  218. package/dist/tests/framework-init-test/framework-mcp/src/utils/security.js.map +1 -0
  219. package/dist/tests/framework-init-test/framework-mcp/tests/tools/file_system/replace_text.test.d.ts +1 -0
  220. package/dist/tests/framework-init-test/framework-mcp/tests/tools/file_system/replace_text.test.js +69 -0
  221. package/dist/tests/framework-init-test/framework-mcp/tests/tools/file_system/replace_text.test.js.map +1 -0
  222. package/dist/tests/framework-init-test/panda.config.d.ts +4 -0
  223. package/dist/tests/framework-init-test/panda.config.js +95 -0
  224. package/dist/tests/framework-init-test/panda.config.js.map +1 -0
  225. package/dist/tests/framework-init-test/vitest.config.d.ts +2 -0
  226. package/dist/tests/framework-init-test/vitest.config.js +19 -0
  227. package/dist/tests/framework-init-test/vitest.config.js.map +1 -0
  228. package/dist/tests/gemini.test.d.ts +1 -0
  229. package/dist/tests/gemini.test.js +38 -0
  230. package/dist/tests/gemini.test.js.map +1 -0
  231. package/dist/tests/initial.test.d.ts +1 -0
  232. package/dist/tests/initial.test.js +7 -0
  233. package/dist/tests/initial.test.js.map +1 -0
  234. package/dist/vitest.config.d.ts +2 -0
  235. package/dist/vitest.config.js +19 -0
  236. package/dist/vitest.config.js.map +1 -0
  237. package/eslint.config.js +1 -1
  238. package/framework-mcp/dist/index.js +2 -2
  239. package/framework-mcp/dist/src/index.js +70 -0
  240. package/framework-mcp/dist/src/tools/definitions.js +110 -0
  241. package/framework-mcp/dist/src/tools/file_system/patch_file.js +18 -0
  242. package/framework-mcp/dist/src/tools/file_system/read_file.js +7 -0
  243. package/framework-mcp/dist/src/tools/file_system/replace_text.js +31 -0
  244. package/framework-mcp/dist/src/tools/file_system/write_file.js +9 -0
  245. package/framework-mcp/dist/src/tools/framework/get_status.js +5 -0
  246. package/framework-mcp/dist/src/tools/framework/orchestrate.js +5 -0
  247. package/framework-mcp/dist/src/tools/framework/update_contract_hash.js +5 -0
  248. package/framework-mcp/dist/src/tools/framework/update_memory.js +8 -0
  249. package/framework-mcp/dist/src/tools/index.js +25 -0
  250. package/framework-mcp/dist/src/tools/messaging/log_action.js +22 -0
  251. package/framework-mcp/dist/src/tools/messaging/send_message.js +46 -0
  252. package/framework-mcp/dist/src/tools/types.js +1 -0
  253. package/framework-mcp/dist/src/utils/cli.js +20 -0
  254. package/framework-mcp/dist/src/utils/security.js +53 -0
  255. package/framework-mcp/dist/tests/tools/file_system/replace_text.test.js +68 -0
  256. package/framework-mcp/dist/tools/definitions.js +1 -0
  257. package/framework-mcp/dist/tools/file_system/replace_text.js +18 -1
  258. package/framework-mcp/dist/tools/framework/get_status.js +2 -2
  259. package/framework-mcp/dist/tools/framework/orchestrate.js +2 -2
  260. package/framework-mcp/dist/tools/framework/update_contract_hash.js +2 -2
  261. package/framework-mcp/dist/tools/framework/update_memory.js +1 -1
  262. package/framework-mcp/dist/tools/messaging/send_message.js +4 -2
  263. package/framework-mcp/dist/utils/cli.js +2 -2
  264. package/framework-mcp/dist/utils/security.js +23 -5
  265. package/framework-mcp/package.json +3 -3
  266. package/framework-mcp/src/index.ts +2 -2
  267. package/framework-mcp/src/tools/definitions.ts +1 -0
  268. package/framework-mcp/src/tools/file_system/replace_text.ts +21 -1
  269. package/framework-mcp/src/tools/framework/get_status.ts +3 -3
  270. package/framework-mcp/src/tools/framework/orchestrate.ts +3 -3
  271. package/framework-mcp/src/tools/framework/update_contract_hash.ts +3 -3
  272. package/framework-mcp/src/tools/framework/update_memory.ts +1 -1
  273. package/framework-mcp/src/tools/messaging/send_message.ts +37 -13
  274. package/framework-mcp/src/tools/types.ts +3 -0
  275. package/framework-mcp/src/utils/cli.ts +2 -2
  276. package/framework-mcp/src/utils/security.ts +23 -5
  277. package/framework-mcp/tests/tools/file_system/replace_text.test.js +68 -0
  278. package/framework-mcp/tests/tools/file_system/replace_text.test.ts +77 -0
  279. package/framework-mcp/tsconfig.json +1 -2
  280. package/mcp.json +4 -4
  281. package/package.json +4 -3
  282. package/src/cli/adapters.ts +16 -9
  283. package/src/cli/commands/contract.ts +2 -2
  284. package/src/cli/commands/init.ts +211 -432
  285. package/src/cli/commands/memory.ts +5 -0
  286. package/src/cli/commands/orchestrate.ts +53 -0
  287. package/src/cli/index.ts +99 -19
  288. package/src/cli/utils/app.ts +19 -16
  289. package/src/cli/utils/claude.ts +2 -1
  290. package/src/cli/utils/fs.ts +2 -1
  291. package/src/cli/utils/memory.ts +2 -2
  292. package/src/cli/utils/pkg.ts +32 -0
  293. package/.enderun/agents/analyst.md +0 -32
  294. package/.enderun/agents/backend.md +0 -49
  295. package/.enderun/agents/database.md +0 -41
  296. package/.enderun/agents/devops.md +0 -41
  297. package/.enderun/agents/explorer.md +0 -40
  298. package/.enderun/agents/frontend.md +0 -48
  299. package/.enderun/agents/git.md +0 -41
  300. package/.enderun/agents/manager.md +0 -43
  301. package/.enderun/agents/mobile.md +0 -42
  302. package/.enderun/agents/native.md +0 -41
  303. package/.enderun/agents/quality.md +0 -40
  304. package/.enderun/agents/security.md +0 -32
@@ -0,0 +1,110 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { execSync } from "child_process";
4
+ import { getFrameworkDir, getConfiguredPaths, getMemoryPath } from "../utils/memory.js";
5
+ import { getPackageVersion, getValidatorPath } from "../utils/pkg.js"; // To get FRAMEWORK_VERSION + robust npm-installed bin/validator resolution
6
+ const FRAMEWORK_VERSION = getPackageVersion();
7
+ /**
8
+ * Check framework health and MCP status.
9
+ * Now also runs full AL (Agent Lifecycle) army validation so that
10
+ * `agent-enderun check` guarantees that init setups are AL-compliant.
11
+ */
12
+ export function checkCommand() {
13
+ console.warn(`πŸ” Checking Agent Enderun Health (v${FRAMEWORK_VERSION})...`);
14
+ let issues = 0;
15
+ const frameworkDir = getFrameworkDir();
16
+ const pathsMap = getConfiguredPaths();
17
+ const memoryPath = getMemoryPath();
18
+ console.warn(` Using framework dir: ${frameworkDir} (AL cross-adapter aware)`);
19
+ // Determine folder names based on adapter detection (AL + cross-adapter support)
20
+ let knowledgeDir = "knowledge";
21
+ if (frameworkDir === ".agents" || frameworkDir === ".agent") {
22
+ knowledgeDir = "rules";
23
+ }
24
+ const constitutionPath = fs.existsSync(path.join(process.cwd(), "ENDERUN.md"))
25
+ ? "ENDERUN.md"
26
+ : path.join(frameworkDir, "ENDERUN.md");
27
+ const checks = [
28
+ { name: "Constitution (ENDERUN.md)", path: constitutionPath },
29
+ { name: "Memory (PROJECT_MEMORY.md)", path: path.relative(process.cwd(), memoryPath) },
30
+ { name: "Command Map (cli-commands.json)", path: path.join(frameworkDir, "cli-commands.json") },
31
+ { name: "Framework Config (config.json)", path: path.join(frameworkDir, "config.json") },
32
+ { name: "Agent Status (STATUS.md)", path: path.join(frameworkDir, "STATUS.md") },
33
+ { name: "MCP Config (mcp.json)", path: "mcp.json" },
34
+ { name: "ESLint Config (eslint.config.js)", path: "eslint.config.js" },
35
+ { name: "ESLint Standards", path: path.join(frameworkDir, `${knowledgeDir}/eslint-standards.md`) },
36
+ { name: "Backend Contract", path: path.join(pathsMap.backend, "contract.version.json") },
37
+ { name: "MCP Server", path: "framework-mcp/package.json" },
38
+ { name: "Panda CSS Config", path: "panda.config.ts" },
39
+ { name: "Brain Dashboard", path: path.join(frameworkDir, "BRAIN_DASHBOARD.md") },
40
+ { name: "Project Architectural Portal (docs/README.md)", path: path.join(pathsMap.docs, "README.md") },
41
+ { name: "System Getting Started Guide (docs/getting-started.md)", path: path.join(pathsMap.docs, "getting-started.md") },
42
+ { name: "Enterprise Approval Flows Protocol", path: path.join(pathsMap.docs, "architecture/approval-flows.md") },
43
+ { name: "Professional Error Handling Pattern", path: path.join(pathsMap.docs, "backend/error-handling.md") },
44
+ { name: "Atomic Component Standards", path: path.join(pathsMap.docs, "frontend/component-patterns.md") },
45
+ ];
46
+ for (const check of checks) {
47
+ if (fs.existsSync(path.join(process.cwd(), check.path))) {
48
+ console.warn(`βœ… ${check.name} found.`);
49
+ }
50
+ else {
51
+ console.warn(`❌ ${check.name} MISSING! (${check.path})`);
52
+ issues++;
53
+ }
54
+ }
55
+ // Dependency Check
56
+ const mcpNodeModules = path.join(process.cwd(), "framework-mcp/node_modules");
57
+ const rootNodeModules = path.join(process.cwd(), "node_modules");
58
+ if (!fs.existsSync(mcpNodeModules) && !fs.existsSync(rootNodeModules)) {
59
+ console.warn("❌ Dependencies MISSING! (Run 'npm install')");
60
+ issues++;
61
+ }
62
+ else {
63
+ console.warn("βœ… Dependencies found.");
64
+ }
65
+ // MCP Build Check
66
+ const mcpPath = path.join(process.cwd(), "framework-mcp/dist/index.js");
67
+ if (!fs.existsSync(mcpPath)) {
68
+ console.warn("❌ MCP Build MISSING! (Run 'npm run enderun:build')");
69
+ issues++;
70
+ }
71
+ else {
72
+ console.warn("βœ… MCP Build found.");
73
+ console.warn("⏳ Testing MCP Server syntax...");
74
+ try {
75
+ execSync(`node --check ${mcpPath}`, { stdio: "pipe" });
76
+ console.warn("βœ… MCP Server syntax valid.");
77
+ }
78
+ catch {
79
+ // If --check fails on ESM, we might skip it or use a better check
80
+ console.warn("⚠️ MCP Syntax check skipped (ESM/Environment).");
81
+ }
82
+ }
83
+ // === AL (Agent Lifecycle) Army Validation ===
84
+ // This makes `agent-enderun check` also enforce that init'ed agents are AL-compliant
85
+ // (stateMachine + tags present and parseable). Works across adapters (skills/plugins/agents).
86
+ // Uses getValidatorPath() so it resolves inside node_modules/... when installed via npm (not just source cwd).
87
+ console.warn("\nπŸ›‘οΈ Running Agent Army AL Compliance (validate-agent-army)...");
88
+ try {
89
+ const validatorPath = getValidatorPath();
90
+ execSync(`node "${validatorPath}"`, { stdio: "pipe" });
91
+ console.warn("βœ… Agent Army AL validation PASSED (all agents have stateMachine + tags).");
92
+ }
93
+ catch {
94
+ console.warn("❌ Agent Army AL validation FAILED.");
95
+ console.warn(" Run manually: agent-enderun validate (or: npx agent-enderun validate-army)");
96
+ console.warn(" This usually means your init used an adapter that remapped agents (e.g. antigravity β†’ skills).");
97
+ console.warn(" The core .md definitions should still be correct; the standalone validator just couldn't locate them.");
98
+ console.warn(" (Note: from npm package, bare 'node bin/...' will not work β€” use the CLI command above.)");
99
+ issues++;
100
+ }
101
+ if (issues === 0) {
102
+ console.warn("\nπŸš€ All systems green! Agent Enderun is ready for orchestration.");
103
+ }
104
+ else {
105
+ console.warn(`
106
+ ⚠️ Found ${issues} issues. Please fix them before starting.`);
107
+ process.exit(1);
108
+ }
109
+ }
110
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC,CAAC,2EAA2E;AAElJ,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,YAAY;IACxB,OAAO,CAAC,IAAI,CAAC,sCAAsC,iBAAiB,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,OAAO,CAAC,IAAI,CAAC,2BAA2B,YAAY,2BAA2B,CAAC,CAAC;IAEjF,iFAAiF;IACjF,IAAI,YAAY,GAAG,WAAW,CAAC;IAC/B,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC1D,YAAY,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM,gBAAgB,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QAC1E,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG;QACX,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,gBAAgB,EAAE;QAC7D,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE;QACtF,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE;QAC/F,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE;QACxF,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE;QAChF,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACtE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,YAAY,sBAAsB,CAAC,EAAE;QAClG,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC,EAAE;QACxF,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,4BAA4B,EAAE;QAC1D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE;QACrD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE;QAChF,EAAE,IAAI,EAAE,+CAA+C,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;QACtG,EAAE,IAAI,EAAE,wDAAwD,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE;QACxH,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,gCAAgC,CAAC,EAAE;QAChH,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE;QAC5G,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,gCAAgC,CAAC,EAAE;KAC3G,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YACzD,MAAM,EAAE,CAAC;QACb,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC5D,MAAM,EAAE,CAAC;IACb,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,6BAA6B,CAAC,CAAC;IACxE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACnE,MAAM,EAAE,CAAC;IACb,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,IAAI,CAAC;YACD,QAAQ,CAAC,gBAAgB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACL,kEAAkE;YAClE,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAED,+CAA+C;IAC/C,qFAAqF;IACrF,8FAA8F;IAC9F,+GAA+G;IAC/G,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IACjF,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,QAAQ,CAAC,SAAS,aAAa,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAChG,OAAO,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,CAAC,0GAA0G,CAAC,CAAC;QACzH,OAAO,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;QAC5G,MAAM,EAAE,CAAC;IACb,CAAC;IAED,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC;YACT,MAAM,2CAA2C,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function complianceCheckCommand(targetPath: string): void;
@@ -0,0 +1,51 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { collectFiles } from "../utils/fs.js";
4
+ const targetDir = process.cwd(); // Assuming targetDir is process.cwd() in the CLI context
5
+ export function complianceCheckCommand(targetPath) {
6
+ console.warn(`πŸ“œ Checking Constitution Compliance: ${targetPath}...`);
7
+ const violations = [];
8
+ const forbidden = ["@shadcn", "mui", "@chakra-ui", "tailwindcss"];
9
+ // 1. package.json scan (Blind Spot 5)
10
+ const pkgJsonPath = path.join(targetDir, "package.json");
11
+ if (fs.existsSync(pkgJsonPath)) {
12
+ try {
13
+ const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, "utf8"));
14
+ const allDeps = { ...(pkg.dependencies || {}), ...(pkg.devDependencies || {}) };
15
+ forbidden.forEach(lib => {
16
+ if (allDeps[lib] || Object.keys(allDeps).some(d => d.toLowerCase().includes(lib.toLowerCase()))) {
17
+ violations.push(`package.json: Forbidden library dependency '${lib}' found in package.json.`);
18
+ }
19
+ });
20
+ }
21
+ catch {
22
+ // ignore
23
+ }
24
+ }
25
+ // 2. Source files scan
26
+ const files = collectFiles(path.join(targetDir, targetPath), [".ts", ".tsx", ".js", ".jsx", ".md"]);
27
+ files.forEach(f => {
28
+ const isTypesFile = f.includes("brands.ts") || f.includes("brands.js") || f.includes("brands.tsx") || f.includes("src/types/brands");
29
+ const content = fs.readFileSync(f, "utf8");
30
+ forbidden.forEach(lib => {
31
+ if (content.includes(lib))
32
+ violations.push(`${path.relative(targetDir, f)}: Forbidden library '${lib}' found.`);
33
+ });
34
+ // Robust Branded Types validation (Blind Spot 4)
35
+ if ((f.endsWith(".ts") || f.endsWith(".tsx")) && !isTypesFile && content.includes("interface")) {
36
+ const plainIdMatches = content.match(/\b\w*(?:id|Id|ID)\??\s*:\s*(?:string|number)\b/g);
37
+ if (plainIdMatches) {
38
+ plainIdMatches.forEach(match => {
39
+ violations.push(`${path.relative(targetDir, f)}: Potential Branded Types violation (plain identifier '${match.trim()}' found inside interface).`);
40
+ });
41
+ }
42
+ }
43
+ });
44
+ if (violations.length === 0) {
45
+ console.warn("βœ… All systems compliant with ENDERUN.md.");
46
+ }
47
+ else {
48
+ violations.forEach(v => console.warn(`❌ ${v}`));
49
+ }
50
+ }
51
+ //# sourceMappingURL=compliance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../../src/cli/commands/compliance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Verify type safety between backend and frontend contracts.
3
+ */
4
+ export declare function verifyApiContractCommand(): void;
5
+ /**
6
+ * Update and synchronize type safety between backend and frontend contracts.
7
+ */
8
+ export declare function updateApiContractCommand(): void;
@@ -0,0 +1,73 @@
1
+ import path from "path";
2
+ import fs from "fs";
3
+ import crypto from "crypto";
4
+ import { getConfiguredPaths } from "../utils/memory.js";
5
+ /**
6
+ * Verify type safety between backend and frontend contracts.
7
+ */
8
+ export function verifyApiContractCommand() {
9
+ const projectRoot = process.cwd();
10
+ const pathsMap = getConfiguredPaths();
11
+ const sharedDir = path.join(projectRoot, pathsMap.backend, "src/types");
12
+ const contractPath = path.join(projectRoot, pathsMap.backend, "contract.version.json");
13
+ if (!fs.existsSync(sharedDir) || !fs.existsSync(contractPath)) {
14
+ console.error("❌ Error: API types or contract version file missing.");
15
+ process.exit(1);
16
+ }
17
+ const walk = (d) => fs.readdirSync(d, { withFileTypes: true }).flatMap((e) => {
18
+ const fullPath = path.join(d, e.name);
19
+ return e.isDirectory() ? walk(fullPath) : (e.name.endsWith(".ts") ? [fullPath] : []);
20
+ });
21
+ const hash = crypto.createHash("sha256");
22
+ for (const filePath of walk(sharedDir).sort()) {
23
+ hash.update(path.relative(projectRoot, filePath));
24
+ hash.update("\0");
25
+ hash.update(fs.readFileSync(filePath));
26
+ hash.update("\0");
27
+ }
28
+ const currentHash = hash.digest("hex");
29
+ const contract = JSON.parse(fs.readFileSync(contractPath, "utf8"));
30
+ if (contract.contract_hash === currentHash) {
31
+ console.warn("βœ… Contract is valid and synchronized.");
32
+ }
33
+ else {
34
+ console.error("❌ Error: Contract drift detected!");
35
+ console.error(` Stored: ${contract.contract_hash}`);
36
+ console.error(` Actual: ${currentHash}`);
37
+ console.warn("\nπŸ‘‰ Run 'npm run update-contract' to re-sync.");
38
+ process.exit(1);
39
+ }
40
+ }
41
+ /**
42
+ * Update and synchronize type safety between backend and frontend contracts.
43
+ */
44
+ export function updateApiContractCommand() {
45
+ const projectRoot = process.cwd();
46
+ const pathsMap = getConfiguredPaths();
47
+ const sharedDir = path.join(projectRoot, pathsMap.backend, "src/types");
48
+ const contractPath = path.join(projectRoot, pathsMap.backend, "contract.version.json");
49
+ if (!fs.existsSync(sharedDir)) {
50
+ console.error("❌ Error: API types directory missing.");
51
+ process.exit(1);
52
+ }
53
+ const walk = (d) => fs.readdirSync(d, { withFileTypes: true }).flatMap((e) => {
54
+ const fullPath = path.join(d, e.name);
55
+ return e.isDirectory() ? walk(fullPath) : (e.name.endsWith(".ts") ? [fullPath] : []);
56
+ });
57
+ const hash = crypto.createHash("sha256");
58
+ for (const filePath of walk(sharedDir).sort()) {
59
+ hash.update(path.relative(projectRoot, filePath));
60
+ hash.update("\0");
61
+ hash.update(fs.readFileSync(filePath));
62
+ hash.update("\0");
63
+ }
64
+ const currentHash = hash.digest("hex");
65
+ const contractData = {
66
+ contract_hash: currentHash,
67
+ last_updated: new Date().toISOString()
68
+ };
69
+ fs.mkdirSync(path.dirname(contractPath), { recursive: true });
70
+ fs.writeFileSync(contractPath, JSON.stringify(contractData, null, 2));
71
+ console.warn(`βœ… Contract successfully synchronized. New hash: ${currentHash}`);
72
+ }
73
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../src/cli/commands/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function explorerGraphCommand(targetPath: string): void;
2
+ export declare function explorerAuditCommand(targetPath: string): void;
@@ -0,0 +1,43 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { collectFiles } from "../utils/fs.js";
4
+ const targetDir = process.cwd();
5
+ export function explorerGraphCommand(targetPath) {
6
+ console.warn(`πŸ—ΊοΈ Generating Dependency Graph for: ${targetPath}...`);
7
+ const files = collectFiles(path.join(targetDir, targetPath), [".ts", ".tsx"]);
8
+ const edges = [];
9
+ files.forEach((f) => {
10
+ const content = fs.readFileSync(f, "utf8");
11
+ const name = path.basename(f, path.extname(f));
12
+ const imports = content.match(/from\s+['"]\.\.?\/[^'"]+['"]/g) || [];
13
+ imports.forEach((imp) => {
14
+ const target = path.basename(imp.split(/['"]/)[1]);
15
+ edges.push(`${name} --> ${target}`);
16
+ });
17
+ });
18
+ if (edges.length === 0) {
19
+ console.warn("ℹ️ No internal dependencies found.");
20
+ }
21
+ else {
22
+ console.warn("```mermaid\ngraph TD\n" + Array.from(new Set(edges)).join("\n") + "\n```");
23
+ }
24
+ }
25
+ export function explorerAuditCommand(targetPath) {
26
+ console.warn(`🧠 Codebase Intelligence Scan: ${targetPath}...`);
27
+ const files = collectFiles(path.join(targetDir, targetPath), [".ts", ".tsx"]);
28
+ const complexity = [];
29
+ files.forEach((f) => {
30
+ const content = fs.readFileSync(f, "utf8");
31
+ const lines = content.split("\n").length;
32
+ if (lines > 300)
33
+ complexity.push(`${path.relative(targetDir, f)} (${lines} lines)`);
34
+ });
35
+ if (complexity.length > 0) {
36
+ console.warn("\n⚠️ Complexity Spikes:");
37
+ complexity.forEach((c) => console.warn(`- ${c}`));
38
+ }
39
+ else {
40
+ console.warn("βœ… Codebase structure looks clean.");
41
+ }
42
+ }
43
+ //# sourceMappingURL=explorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer.js","sourceRoot":"","sources":["../../../../src/cli/commands/explorer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAEhC,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACnD,OAAO,CAAC,IAAI,CAAC,yCAAyC,UAAU,KAAK,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,EAAE,CAAC;QACrE,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CACR,wBAAwB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAC7E,CAAC;IACN,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACnD,OAAO,CAAC,IAAI,CAAC,kCAAkC,UAAU,KAAK,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACzC,IAAI,KAAK,GAAG,GAAG;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACtD,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function gitCommitCommand(traceId: string): void;
2
+ export declare function gitSyncCommand(): void;
@@ -0,0 +1,41 @@
1
+ import cp from "child_process";
2
+ import path from "path";
3
+ import { getConfiguredPaths } from "../utils/memory.js";
4
+ export function gitCommitCommand(traceId) {
5
+ try {
6
+ const diff = cp.execSync("git diff --staged", { encoding: "utf8" });
7
+ if (!diff) {
8
+ console.warn("ℹ️ No staged changes found. Use 'git add' first.");
9
+ return;
10
+ }
11
+ const files = cp.execSync("git diff --staged --name-only", { encoding: "utf8" })
12
+ .split("\n")
13
+ .filter(Boolean);
14
+ const pathsMap = getConfiguredPaths();
15
+ const backendTypesPath = path.join(pathsMap.backend, "src/types");
16
+ let type = "feat";
17
+ const scope = "code";
18
+ if (files.some((f) => f.includes(".md")))
19
+ type = "docs";
20
+ else if (files.some((f) => f.includes(backendTypesPath)))
21
+ type = "arch";
22
+ else if (files.some((f) => f.includes("bin/cli.js")))
23
+ type = "fix";
24
+ const summary = files.length === 1 ? `update ${path.basename(files[0])}` : `update ${files.length} files`;
25
+ console.warn(`\n### SUGGESTED COMMIT MESSAGE ###\n\n[${traceId}] ${type}(${scope}): ${summary}\n`);
26
+ }
27
+ catch {
28
+ console.warn("❌ Git command failed.");
29
+ }
30
+ }
31
+ export function gitSyncCommand() {
32
+ console.warn("πŸ”„ Syncing with remote repository...");
33
+ try {
34
+ cp.execSync("git pull origin main --rebase", { stdio: "inherit" });
35
+ console.warn("βœ… Successfully synced and rebased.");
36
+ }
37
+ catch {
38
+ console.warn("❌ Sync failed. Please resolve conflicts manually.");
39
+ }
40
+ }
41
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/cli/commands/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,eAAe,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC5C,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACjE,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,+BAA+B,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;aAC3E,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;QACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAClE,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAAE,IAAI,GAAG,MAAM,CAAC;aACnD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAAE,IAAI,GAAG,MAAM,CAAC;aACnE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAAE,IAAI,GAAG,KAAK,CAAC;QAEnE,MAAM,OAAO,GACf,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,MAAM,QAAQ,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,0CAA0C,OAAO,KAAK,IAAI,IAAI,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC;IACvG,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc;IAC1B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACrD,IAAI,CAAC;QACD,EAAE,CAAC,QAAQ,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACtE,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function initCommand(adapterInput?: string, dryRun?: boolean): Promise<void>;