agent-enderun 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/{.enderun/ENDERUN.md → ENDERUN.md} +25 -25
  2. package/README.md +10 -6
  3. package/bin/compile.js +13 -14
  4. package/bin/enderun-dashboard.js +866 -0
  5. package/bin/generate-cursor-rules.js +78 -0
  6. package/bin/test-init-run.js +37 -26
  7. package/bin/validate-agent-army.js +65 -67
  8. package/bin/watch-memory.js +54 -0
  9. package/dist/framework-mcp/src/index.js +1 -1
  10. package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +15 -0
  11. package/dist/framework-mcp/src/tools/control_plane/locking.js +65 -0
  12. package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -0
  13. package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +12 -0
  14. package/dist/framework-mcp/src/tools/control_plane/registry.js +35 -0
  15. package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -0
  16. package/dist/framework-mcp/src/tools/definitions.js +46 -7
  17. package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
  18. package/dist/framework-mcp/src/tools/file_system/write_file.js +16 -2
  19. package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
  20. package/dist/framework-mcp/src/tools/index.d.ts +1 -1
  21. package/dist/framework-mcp/src/tools/index.js +5 -0
  22. package/dist/framework-mcp/src/tools/index.js.map +1 -1
  23. package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +1 -1
  24. package/dist/framework-mcp/src/tools/messaging/send_message.js +2 -4
  25. package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -1
  26. package/dist/framework-mcp/src/utils/metrics.d.ts +10 -0
  27. package/dist/framework-mcp/src/utils/metrics.js +39 -0
  28. package/dist/framework-mcp/src/utils/metrics.js.map +1 -0
  29. package/dist/framework-mcp/src/utils/security.js +7 -3
  30. package/dist/framework-mcp/src/utils/security.js.map +1 -1
  31. package/dist/src/cli/adapters/types.d.ts +14 -0
  32. package/dist/src/cli/adapters/types.js +2 -0
  33. package/dist/src/cli/adapters/types.js.map +1 -0
  34. package/dist/src/cli/adapters.d.ts +4 -22
  35. package/dist/src/cli/adapters.js +123 -141
  36. package/dist/src/cli/adapters.js.map +1 -1
  37. package/dist/src/cli/commands/check.d.ts +0 -5
  38. package/dist/src/cli/commands/check.js +64 -76
  39. package/dist/src/cli/commands/check.js.map +1 -1
  40. package/dist/src/cli/commands/init.d.ts +1 -1
  41. package/dist/src/cli/commands/init.js +154 -319
  42. package/dist/src/cli/commands/init.js.map +1 -1
  43. package/dist/src/cli/commands/log.d.ts +1 -0
  44. package/dist/src/cli/commands/log.js.map +1 -1
  45. package/dist/src/cli/commands/memory.js +2 -69
  46. package/dist/src/cli/commands/memory.js.map +1 -1
  47. package/dist/src/cli/commands/orchestrate.d.ts +19 -9
  48. package/dist/src/cli/commands/orchestrate.js +56 -77
  49. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  50. package/dist/src/cli/index.js +112 -30
  51. package/dist/src/cli/index.js.map +1 -1
  52. package/dist/src/cli/utils/app.d.ts +1 -2
  53. package/dist/src/cli/utils/app.js +2 -2
  54. package/dist/src/cli/utils/app.js.map +1 -1
  55. package/dist/src/cli/utils/config-schema.d.ts +139 -0
  56. package/dist/src/cli/utils/config-schema.js +43 -0
  57. package/dist/src/cli/utils/config-schema.js.map +1 -0
  58. package/dist/src/cli/utils/fs.d.ts +2 -4
  59. package/dist/src/cli/utils/fs.js +9 -26
  60. package/dist/src/cli/utils/fs.js.map +1 -1
  61. package/dist/src/cli/utils/memory.d.ts +4 -3
  62. package/dist/src/cli/utils/memory.js +135 -116
  63. package/dist/src/cli/utils/memory.js.map +1 -1
  64. package/dist/src/cli/utils/pkg.js +4 -4
  65. package/dist/src/cli/utils/pkg.js.map +1 -1
  66. package/dist/src/cli/utils/ui.d.ts +30 -0
  67. package/dist/src/cli/utils/ui.js +56 -0
  68. package/dist/src/cli/utils/ui.js.map +1 -0
  69. package/dist/src/modules/adapters/antigravity-cli.d.ts +3 -0
  70. package/dist/src/modules/adapters/antigravity-cli.js +21 -0
  71. package/dist/src/modules/adapters/antigravity-cli.js.map +1 -0
  72. package/dist/src/modules/adapters/claude.d.ts +3 -0
  73. package/dist/src/modules/adapters/claude.js +36 -0
  74. package/dist/src/modules/adapters/claude.js.map +1 -0
  75. package/dist/src/modules/adapters/codex.d.ts +3 -0
  76. package/dist/src/modules/adapters/codex.js +20 -0
  77. package/dist/src/modules/adapters/codex.js.map +1 -0
  78. package/dist/src/modules/adapters/cursor.d.ts +3 -0
  79. package/dist/src/modules/adapters/cursor.js +20 -0
  80. package/dist/src/modules/adapters/cursor.js.map +1 -0
  81. package/dist/src/modules/adapters/gemini.d.ts +3 -0
  82. package/dist/src/modules/adapters/gemini.js +23 -0
  83. package/dist/src/modules/adapters/gemini.js.map +1 -0
  84. package/dist/src/modules/adapters/grok.d.ts +3 -0
  85. package/dist/src/modules/adapters/grok.js +18 -0
  86. package/dist/src/modules/adapters/grok.js.map +1 -0
  87. package/dist/src/modules/adapters/shared.d.ts +1 -0
  88. package/dist/src/modules/adapters/shared.js +79 -0
  89. package/dist/src/modules/adapters/shared.js.map +1 -0
  90. package/dist/src/modules/adapters/types.d.ts +14 -0
  91. package/dist/src/modules/adapters/types.js +2 -0
  92. package/dist/src/modules/adapters/types.js.map +1 -0
  93. package/dist/src/modules/agents/definitions.d.ts +13 -0
  94. package/dist/src/modules/agents/definitions.js +169 -0
  95. package/dist/src/modules/agents/definitions.js.map +1 -0
  96. package/dist/src/modules/skills/definitions.d.ts +31 -0
  97. package/dist/src/modules/skills/definitions.js +32 -0
  98. package/dist/src/modules/skills/definitions.js.map +1 -0
  99. package/dist/src/shared/fs.d.ts +3 -0
  100. package/dist/src/shared/fs.js +24 -0
  101. package/dist/src/shared/fs.js.map +1 -0
  102. package/eslint.config.js +1 -0
  103. package/framework-mcp/dist/index.js +1 -1
  104. package/framework-mcp/dist/tools/control_plane/locking.js +64 -0
  105. package/framework-mcp/dist/tools/control_plane/registry.js +34 -0
  106. package/framework-mcp/dist/tools/definitions.js +49 -8
  107. package/framework-mcp/dist/tools/file_system/read_file.js +20 -0
  108. package/framework-mcp/dist/tools/file_system/write_file.js +16 -2
  109. package/framework-mcp/dist/tools/index.js +5 -0
  110. package/framework-mcp/dist/tools/messaging/send_message.js +36 -15
  111. package/framework-mcp/dist/utils/metrics.js +38 -0
  112. package/framework-mcp/dist/utils/security.js +7 -3
  113. package/framework-mcp/package.json +1 -1
  114. package/framework-mcp/src/index.ts +1 -1
  115. package/framework-mcp/src/tools/control_plane/locking.ts +77 -0
  116. package/framework-mcp/src/tools/control_plane/registry.ts +44 -0
  117. package/framework-mcp/src/tools/definitions.ts +46 -7
  118. package/framework-mcp/src/tools/file_system/write_file.ts +19 -2
  119. package/framework-mcp/src/tools/index.ts +6 -1
  120. package/framework-mcp/src/tools/messaging/send_message.ts +2 -3
  121. package/framework-mcp/src/utils/metrics.ts +53 -0
  122. package/framework-mcp/src/utils/security.ts +8 -3
  123. package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +164 -0
  124. package/framework-mcp/tsconfig.json +4 -2
  125. package/package.json +12 -11
  126. package/src/cli/adapters/types.ts +16 -0
  127. package/src/cli/adapters.ts +130 -156
  128. package/src/cli/commands/check.ts +61 -77
  129. package/src/cli/commands/init.ts +163 -312
  130. package/src/cli/commands/log.ts +1 -1
  131. package/src/cli/commands/memory.ts +3 -80
  132. package/src/cli/commands/orchestrate.ts +76 -90
  133. package/src/cli/index.ts +121 -29
  134. package/src/cli/utils/app.ts +3 -3
  135. package/src/cli/utils/config-schema.ts +48 -0
  136. package/src/cli/utils/fs.ts +10 -27
  137. package/src/cli/utils/memory.ts +143 -112
  138. package/src/cli/utils/pkg.ts +4 -4
  139. package/src/cli/utils/ui.ts +63 -0
  140. package/src/modules/adapters/antigravity-cli.ts +25 -0
  141. package/src/modules/adapters/claude.ts +36 -0
  142. package/src/modules/adapters/codex.ts +22 -0
  143. package/src/modules/adapters/cursor.ts +22 -0
  144. package/src/modules/adapters/gemini.ts +27 -0
  145. package/src/modules/adapters/grok.ts +20 -0
  146. package/src/modules/adapters/shared.ts +90 -0
  147. package/src/modules/adapters/types.ts +16 -0
  148. package/src/modules/agents/definitions.ts +182 -0
  149. package/src/modules/skills/definitions.ts +32 -0
  150. package/src/shared/fs.ts +25 -0
  151. package/.enderun/BRAIN_DASHBOARD.md +0 -46
  152. package/.enderun/STATUS.md +0 -61
  153. package/.enderun/agents/agent_army_schema.json +0 -101
  154. package/.enderun/agents/analyst.json +0 -32
  155. package/.enderun/agents/backend.json +0 -32
  156. package/.enderun/agents/database.json +0 -32
  157. package/.enderun/agents/devops.json +0 -32
  158. package/.enderun/agents/explorer.json +0 -32
  159. package/.enderun/agents/frontend.json +0 -32
  160. package/.enderun/agents/git.json +0 -32
  161. package/.enderun/agents/manager.json +0 -32
  162. package/.enderun/agents/mobile.json +0 -32
  163. package/.enderun/agents/native.json +0 -32
  164. package/.enderun/agents/quality.json +0 -32
  165. package/.enderun/agents/schema/agent-lifecycle-schema.json +0 -41
  166. package/.enderun/agents/security.json +0 -32
  167. package/.enderun/benchmarks/.gitkeep +0 -0
  168. package/.enderun/cli-commands.json +0 -76
  169. package/.enderun/config.json +0 -13
  170. package/.enderun/knowledge/ARCHITECTURE.md +0 -1
  171. package/.enderun/knowledge/SECURITY.md +0 -1
  172. package/.enderun/knowledge/SHIM_TEMPLATE.md +0 -36
  173. package/.enderun/knowledge/analyst_reference_guide.md +0 -31
  174. package/.enderun/knowledge/async_error_handling.md +0 -27
  175. package/.enderun/knowledge/backend_reference_guide.md +0 -165
  176. package/.enderun/knowledge/blueprint_driven_construction.md +0 -22
  177. package/.enderun/knowledge/context_boundary_rules.md +0 -57
  178. package/.enderun/knowledge/corporate-governance/analyst-contract-integrity-guide.md +0 -92
  179. package/.enderun/knowledge/corporate-governance/audit-logging-standard.md +0 -59
  180. package/.enderun/knowledge/corporate-governance/backend-high-risk-endpoint-guide.md +0 -125
  181. package/.enderun/knowledge/corporate-governance/branded-types-law.md +0 -77
  182. package/.enderun/knowledge/corporate-governance/contract-drift-detection-simulation.md +0 -92
  183. package/.enderun/knowledge/corporate-governance/corporate-governance-playbook.md +0 -89
  184. package/.enderun/knowledge/corporate-governance/corporate-project-kickoff-checklist.md +0 -56
  185. package/.enderun/knowledge/corporate-governance/corporate-project-kickoff-simulation.md +0 -144
  186. package/.enderun/knowledge/corporate-governance/corporate-project-scaffolding-sop.md +0 -103
  187. package/.enderun/knowledge/corporate-governance/domain-error-handling-standard.md +0 -75
  188. package/.enderun/knowledge/corporate-governance/frontend-high-risk-modal-guide.md +0 -211
  189. package/.enderun/knowledge/corporate-governance/governance-baseline-briefing-template.md +0 -54
  190. package/.enderun/knowledge/corporate-governance/high-risk-action-approval-flow-simulation.md +0 -167
  191. package/.enderun/knowledge/corporate-governance/high-risk-action-approval-flow.md +0 -29
  192. package/.enderun/knowledge/corporate-governance/high-risk-actions-managerapproval.md +0 -76
  193. package/.enderun/knowledge/corporate-governance/high-risk-security-modal-hermes-flow.md +0 -49
  194. package/.enderun/knowledge/corporate-governance/manager-first-30-days-guide.md +0 -112
  195. package/.enderun/knowledge/corporate-governance/manager-first-three-briefings.md +0 -79
  196. package/.enderun/knowledge/database_reference_guide.md +0 -38
  197. package/.enderun/knowledge/devops_reference_guide.md +0 -43
  198. package/.enderun/knowledge/documentation_ownership.md +0 -53
  199. package/.enderun/knowledge/eslint-standards.md +0 -63
  200. package/.enderun/knowledge/evaluation_engine.md +0 -26
  201. package/.enderun/knowledge/explorer_reference_guide.md +0 -34
  202. package/.enderun/knowledge/framework_vs_user_project_boundary.md +0 -52
  203. package/.enderun/knowledge/frontend_professionalization_guidelines.md +0 -108
  204. package/.enderun/knowledge/frontend_reference_guide.md +0 -64
  205. package/.enderun/knowledge/git_reference_guide.md +0 -51
  206. package/.enderun/knowledge/hermes_live_test_guidelines.md +0 -90
  207. package/.enderun/knowledge/hermes_protocol.md +0 -59
  208. package/.enderun/knowledge/legacy_onboarding.md +0 -18
  209. package/.enderun/knowledge/lessons-learned.md +0 -14
  210. package/.enderun/knowledge/manager_authority_audit_enforcement.md +0 -104
  211. package/.enderun/knowledge/manager_reference_guide.md +0 -55
  212. package/.enderun/knowledge/mobile_reference_guide.md +0 -35
  213. package/.enderun/knowledge/native_reference_guide.md +0 -34
  214. package/.enderun/knowledge/project_scaffold_guidelines.md +0 -110
  215. package/.enderun/knowledge/quality_reference_guide.md +0 -42
  216. package/.enderun/knowledge/reference_application_guidelines.md +0 -101
  217. package/.enderun/knowledge/responsive_design_standards.md +0 -27
  218. package/.enderun/knowledge/router_logic.md +0 -29
  219. package/.enderun/knowledge/security_reference_guide.md +0 -35
  220. package/.enderun/knowledge/token_economy_and_memory.md +0 -129
  221. package/.enderun/knowledge/zero_ui_library_policy.md +0 -13
  222. package/.enderun/logs/manager.json +0 -52
  223. package/.enderun/mcp_config.json +0 -11
  224. package/.enderun/memory/BUSINESS_CONTEXT.md +0 -17
  225. package/.enderun/memory/DECISIONS.md +0 -24
  226. package/.enderun/memory/LESSONS_LEARNED.md +0 -12
  227. package/.enderun/memory/PATTERNS.md +0 -17
  228. package/.enderun/memory/PROJECT_MEMORY.md +0 -69
  229. package/.enderun/memory-graph/agent-contexts/analyst.json +0 -1
  230. package/.enderun/memory-graph/agent-contexts/backend.json +0 -1
  231. package/.enderun/memory-graph/agent-contexts/devops.json +0 -1
  232. package/.enderun/memory-graph/agent-contexts/explorer.json +0 -1
  233. package/.enderun/memory-graph/agent-contexts/frontend.json +0 -1
  234. package/.enderun/memory-graph/agent-contexts/git.json +0 -1
  235. package/.enderun/memory-graph/agent-contexts/manager.json +0 -1
  236. package/.enderun/memory-graph/agent-contexts/mobile.json +0 -1
  237. package/.enderun/memory-graph/agent-contexts/native.json +0 -1
  238. package/.enderun/memory-graph/agent-contexts/quality.json +0 -1
  239. package/.enderun/memory-graph/agent-contexts/security.json +0 -1
  240. package/.enderun/memory-graph/graph.json +0 -133
  241. package/.enderun/memory-graph/shared-facts.json +0 -46
  242. package/.enderun/monitoring/.gitkeep +0 -0
  243. package/.enderun/observability/AUDIT_LOG.md +0 -9
  244. package/.enderun/observability/METRICS.md +0 -10
  245. package/.enderun/observability/README.md +0 -19
  246. package/.enderun/observability/TRACE_LOG.md +0 -10
  247. package/.enderun/queue/README.md +0 -36
  248. package/.enderun/registry/agents.yaml +0 -69
  249. package/.enderun/skills/agent_handshake.md +0 -37
  250. package/.enderun/skills/multi_agent_coordination.md +0 -64
  251. package/.enderun/skills/subagent_lifecycle.md +0 -48
  252. package/CLAUDE.md +0 -21
  253. package/GEMINI.md +0 -24
  254. package/GROK.md +0 -20
  255. package/agent.md +0 -25
  256. package/dist/.keep +0 -1
  257. package/dist/tests/adapter.test.d.ts +0 -1
  258. package/dist/tests/adapter.test.js +0 -82
  259. package/dist/tests/adapter.test.js.map +0 -1
  260. package/dist/tests/gemini.test.d.ts +0 -1
  261. package/dist/tests/gemini.test.js +0 -39
  262. package/dist/tests/gemini.test.js.map +0 -1
  263. package/dist/tests/initial.test.d.ts +0 -1
  264. package/dist/tests/initial.test.js +0 -7
  265. package/dist/tests/initial.test.js.map +0 -1
  266. package/docs/project_analysis_report.md +0 -69
  267. package/framework-mcp/dist/src/index.js +0 -70
  268. package/framework-mcp/dist/src/tools/definitions.js +0 -112
  269. package/framework-mcp/dist/src/tools/file_system/patch_file.js +0 -18
  270. package/framework-mcp/dist/src/tools/file_system/read_file.js +0 -27
  271. package/framework-mcp/dist/src/tools/file_system/replace_text.js +0 -31
  272. package/framework-mcp/dist/src/tools/file_system/write_file.js +0 -9
  273. package/framework-mcp/dist/src/tools/framework/get_status.js +0 -5
  274. package/framework-mcp/dist/src/tools/framework/orchestrate.js +0 -5
  275. package/framework-mcp/dist/src/tools/framework/update_contract_hash.js +0 -5
  276. package/framework-mcp/dist/src/tools/framework/update_memory.js +0 -8
  277. package/framework-mcp/dist/src/tools/index.js +0 -25
  278. package/framework-mcp/dist/src/tools/messaging/log_action.js +0 -22
  279. package/framework-mcp/dist/src/tools/messaging/send_message.js +0 -46
  280. package/framework-mcp/dist/src/tools/types.js +0 -1
  281. package/framework-mcp/dist/src/utils/cli.js +0 -20
  282. package/framework-mcp/dist/src/utils/security.js +0 -53
  283. package/framework-mcp/dist/tests/tools/file_system/replace_text.test.js +0 -68
  284. package/framework-mcp/node_modules/@types/node/LICENSE +0 -21
  285. package/framework-mcp/node_modules/@types/node/README.md +0 -15
  286. package/framework-mcp/node_modules/@types/node/assert/strict.d.ts +0 -111
  287. package/framework-mcp/node_modules/@types/node/assert.d.ts +0 -1078
  288. package/framework-mcp/node_modules/@types/node/async_hooks.d.ts +0 -603
  289. package/framework-mcp/node_modules/@types/node/buffer.buffer.d.ts +0 -472
  290. package/framework-mcp/node_modules/@types/node/buffer.d.ts +0 -1934
  291. package/framework-mcp/node_modules/@types/node/child_process.d.ts +0 -1476
  292. package/framework-mcp/node_modules/@types/node/cluster.d.ts +0 -578
  293. package/framework-mcp/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  294. package/framework-mcp/node_modules/@types/node/compatibility/index.d.ts +0 -9
  295. package/framework-mcp/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  296. package/framework-mcp/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  297. package/framework-mcp/node_modules/@types/node/console.d.ts +0 -452
  298. package/framework-mcp/node_modules/@types/node/constants.d.ts +0 -21
  299. package/framework-mcp/node_modules/@types/node/crypto.d.ts +0 -4545
  300. package/framework-mcp/node_modules/@types/node/dgram.d.ts +0 -600
  301. package/framework-mcp/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
  302. package/framework-mcp/node_modules/@types/node/dns/promises.d.ts +0 -503
  303. package/framework-mcp/node_modules/@types/node/dns.d.ts +0 -923
  304. package/framework-mcp/node_modules/@types/node/domain.d.ts +0 -170
  305. package/framework-mcp/node_modules/@types/node/events.d.ts +0 -976
  306. package/framework-mcp/node_modules/@types/node/fs/promises.d.ts +0 -1295
  307. package/framework-mcp/node_modules/@types/node/fs.d.ts +0 -4461
  308. package/framework-mcp/node_modules/@types/node/globals.d.ts +0 -172
  309. package/framework-mcp/node_modules/@types/node/globals.typedarray.d.ts +0 -38
  310. package/framework-mcp/node_modules/@types/node/http.d.ts +0 -2089
  311. package/framework-mcp/node_modules/@types/node/http2.d.ts +0 -2721
  312. package/framework-mcp/node_modules/@types/node/https.d.ts +0 -579
  313. package/framework-mcp/node_modules/@types/node/index.d.ts +0 -97
  314. package/framework-mcp/node_modules/@types/node/inspector.d.ts +0 -253
  315. package/framework-mcp/node_modules/@types/node/inspector.generated.d.ts +0 -4052
  316. package/framework-mcp/node_modules/@types/node/module.d.ts +0 -891
  317. package/framework-mcp/node_modules/@types/node/net.d.ts +0 -1076
  318. package/framework-mcp/node_modules/@types/node/os.d.ts +0 -506
  319. package/framework-mcp/node_modules/@types/node/package.json +0 -145
  320. package/framework-mcp/node_modules/@types/node/path.d.ts +0 -200
  321. package/framework-mcp/node_modules/@types/node/perf_hooks.d.ts +0 -968
  322. package/framework-mcp/node_modules/@types/node/process.d.ts +0 -2084
  323. package/framework-mcp/node_modules/@types/node/punycode.d.ts +0 -117
  324. package/framework-mcp/node_modules/@types/node/querystring.d.ts +0 -152
  325. package/framework-mcp/node_modules/@types/node/readline/promises.d.ts +0 -161
  326. package/framework-mcp/node_modules/@types/node/readline.d.ts +0 -594
  327. package/framework-mcp/node_modules/@types/node/repl.d.ts +0 -428
  328. package/framework-mcp/node_modules/@types/node/sea.d.ts +0 -153
  329. package/framework-mcp/node_modules/@types/node/sqlite.d.ts +0 -721
  330. package/framework-mcp/node_modules/@types/node/stream/consumers.d.ts +0 -38
  331. package/framework-mcp/node_modules/@types/node/stream/promises.d.ts +0 -90
  332. package/framework-mcp/node_modules/@types/node/stream/web.d.ts +0 -622
  333. package/framework-mcp/node_modules/@types/node/stream.d.ts +0 -1687
  334. package/framework-mcp/node_modules/@types/node/string_decoder.d.ts +0 -67
  335. package/framework-mcp/node_modules/@types/node/test.d.ts +0 -2163
  336. package/framework-mcp/node_modules/@types/node/timers/promises.d.ts +0 -108
  337. package/framework-mcp/node_modules/@types/node/timers.d.ts +0 -287
  338. package/framework-mcp/node_modules/@types/node/tls.d.ts +0 -1319
  339. package/framework-mcp/node_modules/@types/node/trace_events.d.ts +0 -197
  340. package/framework-mcp/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
  341. package/framework-mcp/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
  342. package/framework-mcp/node_modules/@types/node/ts5.6/index.d.ts +0 -97
  343. package/framework-mcp/node_modules/@types/node/tty.d.ts +0 -208
  344. package/framework-mcp/node_modules/@types/node/url.d.ts +0 -984
  345. package/framework-mcp/node_modules/@types/node/util.d.ts +0 -2606
  346. package/framework-mcp/node_modules/@types/node/v8.d.ts +0 -920
  347. package/framework-mcp/node_modules/@types/node/vm.d.ts +0 -1000
  348. package/framework-mcp/node_modules/@types/node/wasi.d.ts +0 -181
  349. package/framework-mcp/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  350. package/framework-mcp/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  351. package/framework-mcp/node_modules/@types/node/web-globals/events.d.ts +0 -97
  352. package/framework-mcp/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
  353. package/framework-mcp/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
  354. package/framework-mcp/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  355. package/framework-mcp/node_modules/@types/node/worker_threads.d.ts +0 -784
  356. package/framework-mcp/node_modules/@types/node/zlib.d.ts +0 -747
  357. package/framework-mcp/node_modules/typescript/LICENSE.txt +0 -55
  358. package/framework-mcp/node_modules/typescript/README.md +0 -50
  359. package/framework-mcp/node_modules/typescript/SECURITY.md +0 -41
  360. package/framework-mcp/node_modules/typescript/ThirdPartyNoticeText.txt +0 -193
  361. package/framework-mcp/node_modules/typescript/bin/tsc +0 -2
  362. package/framework-mcp/node_modules/typescript/bin/tsserver +0 -2
  363. package/framework-mcp/node_modules/typescript/lib/_tsc.js +0 -133818
  364. package/framework-mcp/node_modules/typescript/lib/_tsserver.js +0 -659
  365. package/framework-mcp/node_modules/typescript/lib/_typingsInstaller.js +0 -222
  366. package/framework-mcp/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  367. package/framework-mcp/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  368. package/framework-mcp/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  369. package/framework-mcp/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  370. package/framework-mcp/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  371. package/framework-mcp/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  372. package/framework-mcp/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  373. package/framework-mcp/node_modules/typescript/lib/lib.d.ts +0 -22
  374. package/framework-mcp/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
  375. package/framework-mcp/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
  376. package/framework-mcp/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
  377. package/framework-mcp/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
  378. package/framework-mcp/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
  379. package/framework-mcp/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
  380. package/framework-mcp/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
  381. package/framework-mcp/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
  382. package/framework-mcp/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
  383. package/framework-mcp/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
  384. package/framework-mcp/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
  385. package/framework-mcp/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
  386. package/framework-mcp/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
  387. package/framework-mcp/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
  388. package/framework-mcp/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
  389. package/framework-mcp/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
  390. package/framework-mcp/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
  391. package/framework-mcp/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
  392. package/framework-mcp/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
  393. package/framework-mcp/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
  394. package/framework-mcp/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
  395. package/framework-mcp/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
  396. package/framework-mcp/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
  397. package/framework-mcp/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
  398. package/framework-mcp/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
  399. package/framework-mcp/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
  400. package/framework-mcp/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
  401. package/framework-mcp/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
  402. package/framework-mcp/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
  403. package/framework-mcp/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
  404. package/framework-mcp/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
  405. package/framework-mcp/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
  406. package/framework-mcp/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
  407. package/framework-mcp/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
  408. package/framework-mcp/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
  409. package/framework-mcp/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
  410. package/framework-mcp/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
  411. package/framework-mcp/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
  412. package/framework-mcp/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
  413. package/framework-mcp/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
  414. package/framework-mcp/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
  415. package/framework-mcp/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
  416. package/framework-mcp/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
  417. package/framework-mcp/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
  418. package/framework-mcp/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
  419. package/framework-mcp/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
  420. package/framework-mcp/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
  421. package/framework-mcp/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
  422. package/framework-mcp/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
  423. package/framework-mcp/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
  424. package/framework-mcp/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
  425. package/framework-mcp/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
  426. package/framework-mcp/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
  427. package/framework-mcp/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
  428. package/framework-mcp/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
  429. package/framework-mcp/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
  430. package/framework-mcp/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
  431. package/framework-mcp/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
  432. package/framework-mcp/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
  433. package/framework-mcp/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
  434. package/framework-mcp/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
  435. package/framework-mcp/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
  436. package/framework-mcp/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
  437. package/framework-mcp/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
  438. package/framework-mcp/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
  439. package/framework-mcp/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
  440. package/framework-mcp/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
  441. package/framework-mcp/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
  442. package/framework-mcp/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
  443. package/framework-mcp/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
  444. package/framework-mcp/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
  445. package/framework-mcp/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
  446. package/framework-mcp/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
  447. package/framework-mcp/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
  448. package/framework-mcp/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
  449. package/framework-mcp/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
  450. package/framework-mcp/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
  451. package/framework-mcp/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
  452. package/framework-mcp/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
  453. package/framework-mcp/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
  454. package/framework-mcp/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
  455. package/framework-mcp/node_modules/typescript/lib/lib.es6.d.ts +0 -23
  456. package/framework-mcp/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
  457. package/framework-mcp/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
  458. package/framework-mcp/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
  459. package/framework-mcp/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
  460. package/framework-mcp/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
  461. package/framework-mcp/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
  462. package/framework-mcp/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
  463. package/framework-mcp/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
  464. package/framework-mcp/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
  465. package/framework-mcp/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
  466. package/framework-mcp/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
  467. package/framework-mcp/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
  468. package/framework-mcp/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
  469. package/framework-mcp/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
  470. package/framework-mcp/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
  471. package/framework-mcp/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
  472. package/framework-mcp/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
  473. package/framework-mcp/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  474. package/framework-mcp/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  475. package/framework-mcp/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  476. package/framework-mcp/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  477. package/framework-mcp/node_modules/typescript/lib/tsc.js +0 -8
  478. package/framework-mcp/node_modules/typescript/lib/tsserver.js +0 -8
  479. package/framework-mcp/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
  480. package/framework-mcp/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  481. package/framework-mcp/node_modules/typescript/lib/typesMap.json +0 -497
  482. package/framework-mcp/node_modules/typescript/lib/typescript.d.ts +0 -11437
  483. package/framework-mcp/node_modules/typescript/lib/typescript.js +0 -200276
  484. package/framework-mcp/node_modules/typescript/lib/typingsInstaller.js +0 -8
  485. package/framework-mcp/node_modules/typescript/lib/watchGuard.js +0 -53
  486. package/framework-mcp/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
  487. package/framework-mcp/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
  488. package/framework-mcp/node_modules/typescript/package.json +0 -120
  489. package/framework-mcp/node_modules/undici-types/LICENSE +0 -21
  490. package/framework-mcp/node_modules/undici-types/README.md +0 -6
  491. package/framework-mcp/node_modules/undici-types/agent.d.ts +0 -31
  492. package/framework-mcp/node_modules/undici-types/api.d.ts +0 -43
  493. package/framework-mcp/node_modules/undici-types/balanced-pool.d.ts +0 -29
  494. package/framework-mcp/node_modules/undici-types/cache.d.ts +0 -36
  495. package/framework-mcp/node_modules/undici-types/client.d.ts +0 -108
  496. package/framework-mcp/node_modules/undici-types/connector.d.ts +0 -34
  497. package/framework-mcp/node_modules/undici-types/content-type.d.ts +0 -21
  498. package/framework-mcp/node_modules/undici-types/cookies.d.ts +0 -28
  499. package/framework-mcp/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
  500. package/framework-mcp/node_modules/undici-types/dispatcher.d.ts +0 -256
  501. package/framework-mcp/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
  502. package/framework-mcp/node_modules/undici-types/errors.d.ts +0 -149
  503. package/framework-mcp/node_modules/undici-types/eventsource.d.ts +0 -61
  504. package/framework-mcp/node_modules/undici-types/fetch.d.ts +0 -209
  505. package/framework-mcp/node_modules/undici-types/file.d.ts +0 -39
  506. package/framework-mcp/node_modules/undici-types/filereader.d.ts +0 -54
  507. package/framework-mcp/node_modules/undici-types/formdata.d.ts +0 -108
  508. package/framework-mcp/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  509. package/framework-mcp/node_modules/undici-types/global-origin.d.ts +0 -7
  510. package/framework-mcp/node_modules/undici-types/handlers.d.ts +0 -15
  511. package/framework-mcp/node_modules/undici-types/header.d.ts +0 -4
  512. package/framework-mcp/node_modules/undici-types/index.d.ts +0 -71
  513. package/framework-mcp/node_modules/undici-types/interceptors.d.ts +0 -17
  514. package/framework-mcp/node_modules/undici-types/mock-agent.d.ts +0 -50
  515. package/framework-mcp/node_modules/undici-types/mock-client.d.ts +0 -25
  516. package/framework-mcp/node_modules/undici-types/mock-errors.d.ts +0 -12
  517. package/framework-mcp/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  518. package/framework-mcp/node_modules/undici-types/mock-pool.d.ts +0 -25
  519. package/framework-mcp/node_modules/undici-types/package.json +0 -55
  520. package/framework-mcp/node_modules/undici-types/patch.d.ts +0 -33
  521. package/framework-mcp/node_modules/undici-types/pool-stats.d.ts +0 -19
  522. package/framework-mcp/node_modules/undici-types/pool.d.ts +0 -39
  523. package/framework-mcp/node_modules/undici-types/proxy-agent.d.ts +0 -28
  524. package/framework-mcp/node_modules/undici-types/readable.d.ts +0 -65
  525. package/framework-mcp/node_modules/undici-types/retry-agent.d.ts +0 -8
  526. package/framework-mcp/node_modules/undici-types/retry-handler.d.ts +0 -116
  527. package/framework-mcp/node_modules/undici-types/util.d.ts +0 -18
  528. package/framework-mcp/node_modules/undici-types/webidl.d.ts +0 -228
  529. package/framework-mcp/node_modules/undici-types/websocket.d.ts +0 -150
  530. package/framework-mcp/tests/tools/file_system/replace_text.test.js +0 -68
  531. package/framework-mcp/tests/tools/file_system/replace_text.test.ts +0 -77
  532. package/mcp.json +0 -11
  533. package/panda.config.ts +0 -100
@@ -1,15 +1,21 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
+ import chalk from "chalk";
3
4
  import { getFrameworkDir } from "../utils/memory.js";
5
+ import { UI } from "../utils/ui.js";
4
6
 
7
+ /**
8
+ * Hermes Protocol Message for Multi-Agent Collaboration.
9
+ */
5
10
  interface HermesMessage {
6
11
  timestamp: string;
7
12
  from: string;
8
13
  to: string;
9
- category: string;
14
+ category: "ACTION" | "DELEGATION" | "SUBTASK" | "REPLY" | "ALERT";
10
15
  content: string;
11
16
  traceId: string;
12
- status: "PENDING" | "PROCESSED";
17
+ parentId?: string; // Links sub-tasks to parent tasks
18
+ status: "PENDING" | "PROCESSED" | "WAITING";
13
19
  }
14
20
 
15
21
  export async function orchestrateCommand() {
@@ -17,166 +23,146 @@ export async function orchestrateCommand() {
17
23
  const messagesDir = path.join(process.cwd(), frameworkDir, "messages");
18
24
 
19
25
  if (!fs.existsSync(messagesDir)) {
20
- console.log("ℹ️ Henüz işlenecek bir mesaj yok (.messages dizini bulunamadı).");
26
+ UI.success("Henüz işlenecek bir mesaj yok.");
21
27
  return;
22
28
  }
23
29
 
24
30
  const messageFiles = fs.readdirSync(messagesDir).filter((f) => f.endsWith(".json"));
25
31
  const pendingMessages: HermesMessage[] = [];
32
+ const fileMessagesMap: Record<string, HermesMessage[]> = {};
26
33
 
27
34
  for (const file of messageFiles) {
28
35
  const filePath = path.join(messagesDir, file);
29
36
  try {
30
37
  const content = fs.readFileSync(filePath, "utf8").trim();
31
38
  if (!content) continue;
32
- // Messages are stored as newline-delimited JSON
33
39
  const lines = content.split("\n");
40
+ const allMsgs: HermesMessage[] = [];
34
41
  lines.forEach((line) => {
35
42
  if (!line.trim()) return;
36
43
  const msg = JSON.parse(line) as HermesMessage;
37
44
  if (msg.status === "PENDING") {
38
45
  pendingMessages.push(msg);
39
46
  }
47
+ allMsgs.push(msg);
40
48
  });
49
+ fileMessagesMap[file] = allMsgs;
41
50
  } catch {
42
- console.error(`❌ ${file} mesajı okunurken hata oluştu.`);
51
+ UI.error(`${file} mesajı okunurken hata oluştu.`);
43
52
  }
44
53
  }
45
54
 
46
55
  if (pendingMessages.length === 0) {
47
- console.log("Tüm mesajlar işlenmiş, bekleyen görev yok.");
56
+ UI.success("Tüm mesajlar işlenmiş, bekleyen görev yok.");
48
57
  return;
49
58
  }
50
59
 
51
- console.log(`📡 ${pendingMessages.length} adet bekleyen görev bulundu. İşleniyor...\n`);
60
+ UI.intent("Multi-Agent Orkestrasyonu", `${pendingMessages.length} adet bekleyen görev ve işbirliği mesajı bulundu.`);
52
61
 
53
62
  for (const msg of pendingMessages) {
54
- const { to, content, traceId, category } = msg;
55
-
56
- console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
57
- console.log(`🔹 HEDEF: ${to}`);
58
- console.log(`🔹 TRACE: ${traceId}`);
59
- console.log(`🔹 KATEGORİ: ${category}`);
60
- console.log(`🔹 GÖREV: ${content}`);
61
-
62
- // Determine agent folder based on adapter (detection or default)
63
- let agentFolder = "agents";
64
- if (frameworkDir === ".agents") {
65
- agentFolder = "skills";
66
- } else if (frameworkDir === ".grok") {
67
- agentFolder = "plugins";
68
- }
63
+ const { from, to, content, traceId, category, parentId } = msg;
64
+
65
+ // Visual distinction for Sub-tasks
66
+ const isSubtask = category === "SUBTASK" || !!parentId;
67
+ const agentLabel = isSubtask ? `${to} (Sub-Agent)` : to;
68
+
69
+ UI.agentBox(agentLabel, content, `Trace: ${traceId} | From: ${from} | Category: ${category}`);
69
70
 
70
- // Determine target state based on category
71
71
  let targetState = "EXECUTING";
72
- if (category === "DELEGATION") targetState = "BRIEFED";
73
- if (category === "ALERT" || category === "FAILED") targetState = "BLOCKED";
72
+ if (category === "DELEGATION" || category === "SUBTASK") targetState = "BRIEFED";
74
73
 
75
- // 1. Transition the target agent state in STATUS.md
76
74
  transitionAgentState(to, targetState, content);
77
75
 
78
76
  if (targetState === "BRIEFED") {
79
- console.log(`\n📝 ${to} agent'ı bilgilendirildi (BRIEFED). Hazırlık bekleniyor...`);
80
- // Auto-transition to EXECUTING for CLI flow if no blockers
77
+ UI.success(`${to} bilgilendirildi ve görevi devraldı.`);
81
78
  transitionAgentState(to, "EXECUTING", content);
82
79
  }
83
80
 
84
- console.log("\n🤖 Görev Devredildi!");
85
- console.log(`👉 Lütfen ${to} agent talimatlarını (${frameworkDir}/${agentFolder}/${to.replace("@", "")}.json) okuyun ve görevi yerine getirin.`);
86
- console.log("\n💡 İpucu: İş bittiğinde, mesajı PROCESSED olarak işaretlemek ve ajanı boşa çıkarmak için:");
87
- console.log(" npx agent-enderun status komutuyla kontrol edin.");
81
+ if (isSubtask) {
82
+ UI.success(`Alt görev bağlantısı kuruldu (Parent: ${parentId || "Unknown"}).`);
83
+ }
84
+
85
+ UI.success(`İşbirliği başlatıldı: ${from} -> ${to}`);
86
+ console.warn(chalk.gray(` 👉 Talimatlar: ${frameworkDir}/agents/${to.replace("@", "")}.md`));
87
+
88
+ // Mark message as processed
89
+ msg.status = "PROCESSED";
90
+ }
91
+
92
+ // Write back updated message statuses to files
93
+ for (const file of Object.keys(fileMessagesMap)) {
94
+ const filePath = path.join(messagesDir, file);
95
+ const msgs = fileMessagesMap[file];
96
+ try {
97
+ const updatedContent = msgs.map(m => JSON.stringify(m)).join("\n") + "\n";
98
+ fs.writeFileSync(filePath, updatedContent, "utf8");
99
+ } catch {
100
+ UI.error(`${file} mesaj dosyası güncellenirken hata oluştu.`);
101
+ }
88
102
  }
89
103
  }
90
104
 
91
- export function sendMessage(args: {
92
- from: string;
93
- to: string;
94
- category: string;
95
- content: string;
96
- traceId: string;
105
+ /**
106
+ * Standard tool for agents to delegate tasks to other agents.
107
+ */
108
+ export function sendMessage(args: {
109
+ from: string;
110
+ to: string;
111
+ category: "ACTION" | "DELEGATION" | "SUBTASK" | "REPLY" | "ALERT";
112
+ content: string;
113
+ traceId: string;
114
+ parentId?: string;
97
115
  }) {
98
116
  const frameworkDir = getFrameworkDir();
99
117
  const messagesDir = path.join(process.cwd(), frameworkDir, "messages");
100
118
  const agentName = args.to.replace("@", "");
101
119
  const messagePath = path.join(messagesDir, `${agentName}.json`);
102
- const lockPath = path.join(messagesDir, ".lock");
103
-
104
- // Hermes Lock Protocol: Retry 3 times with 500ms delay
105
- let retries = 3;
106
- while (retries > 0 && fs.existsSync(lockPath)) {
107
- const stats = fs.statSync(lockPath);
108
- // Stale lock check (older than 5 seconds)
109
- if (Date.now() - stats.mtimeMs > 5000) {
110
- fs.unlinkSync(lockPath);
111
- break;
112
- }
113
- retries--;
114
- if (retries > 0) {
115
- // Synchronous sleep for CLI simplicity
116
- const g = global as unknown as { Atomics: { wait: (ia: Int32Array, index: number, value: number, timeout: number) => string }; SharedArrayBuffer: { new (size: number): ArrayBufferLike } };
117
- if (g.Atomics && g.SharedArrayBuffer) {
118
- g.Atomics.wait(new Int32Array(new g.SharedArrayBuffer(4)), 0, 0, 500);
119
- }
120
- }
121
- }
122
120
 
123
121
  try {
124
- fs.mkdirSync(messagesDir, { recursive: true });
125
- fs.writeFileSync(lockPath, `Locked by ${args.from} at ${new Date().toISOString()}`);
122
+ if (!fs.existsSync(messagesDir)) fs.mkdirSync(messagesDir, { recursive: true });
126
123
 
127
- const message = {
124
+ const message: HermesMessage = {
128
125
  timestamp: new Date().toISOString(),
129
- from: args.from,
130
- to: args.to,
131
- category: args.category,
132
- traceId: args.traceId,
133
- content: args.content,
126
+ ...args,
134
127
  status: "PENDING"
135
128
  };
136
-
129
+
137
130
  fs.appendFileSync(messagePath, JSON.stringify(message) + "\n");
131
+
132
+ // Log collaboration to audit log
133
+ const auditPath = path.join(process.cwd(), frameworkDir, "observability/audit_log.md");
134
+ if (fs.existsSync(auditPath)) {
135
+ const logEntry = `\n- **[${message.timestamp}]** ${args.from} -> ${args.to} | ${args.category} | Trace: ${args.traceId}`;
136
+ fs.appendFileSync(auditPath, logEntry);
137
+ }
138
+
138
139
  return message;
139
- } finally {
140
- if (fs.existsSync(lockPath)) fs.unlinkSync(lockPath);
140
+ } catch {
141
+ UI.error(`Mesaj iletilemedi: ${args.from} -> ${args.to}`);
141
142
  }
142
143
  }
143
144
 
144
145
  function transitionAgentState(agent: string, state: string, task: string) {
145
146
  const frameworkDir = getFrameworkDir();
146
147
  const statusPath = path.join(process.cwd(), frameworkDir, "STATUS.md");
147
-
148
148
  if (!fs.existsSync(statusPath)) return;
149
-
150
149
  try {
151
150
  const content = fs.readFileSync(statusPath, "utf8");
152
151
  const lines = content.split("\n");
153
152
  const targetName = agent.startsWith("@") ? agent : `@${agent}`;
154
-
155
- const newLines: string[] = [];
156
- let found = false;
157
-
158
- lines.forEach((line) => {
153
+ const newLines = lines.map(line => {
159
154
  if (line.includes(`| ${targetName} |`)) {
160
- found = true;
161
- // Example: | @backend | IDLE | — | — | 9.2/10 | — |
162
155
  const parts = line.split("|");
163
156
  if (parts.length >= 7) {
164
157
  parts[2] = ` ${state} `;
165
- parts[3] = ` ${task.slice(0, 20)}... `;
166
- newLines.push(parts.join("|"));
167
- } else {
168
- newLines.push(line);
158
+ parts[3] = ` ${task.slice(0, 25)}... `;
159
+ return parts.join("|");
169
160
  }
170
- } else {
171
- newLines.push(line);
172
161
  }
162
+ return line;
173
163
  });
174
-
175
- if (found) {
176
- fs.writeFileSync(statusPath, newLines.join("\n"));
177
- console.log(`✅ STATUS.md üzerinde ${agent} durumu başarıyla '${state}' yapıldı.`);
178
- }
164
+ fs.writeFileSync(statusPath, newLines.join("\n"));
179
165
  } catch {
180
- console.error("STATUS.md güncellenirken hata oluştu.");
166
+ UI.error("STATUS.md güncellenemedi.");
181
167
  }
182
168
  }
package/src/cli/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
-
2
+ import fs from "fs";
3
3
  import { getPackageVersion, getValidatorPath } from "./utils/pkg.js";
4
+ import { getMemoryPath, readActiveTraceId } from "./utils/memory.js";
4
5
  import { initCommand } from "./commands/init.js";
5
6
  import { checkCommand } from "./commands/check.js";
6
7
  import { statusCommand } from "./commands/status.js";
@@ -19,8 +20,10 @@ async function main() {
19
20
 
20
21
  const KNOWN_COMMANDS = [
21
22
  "init", "check", "status", "trace:new", "update_project_memory",
22
- "create-app", "orchestrate", "verify-contract", "update-contract",
23
- "validate", "validate-army", "check:al", "version", "-v", "--version", "help", "-h", "--help"
23
+ "create-app", "orchestrate", "loop", "verify-contract", "update-contract",
24
+ "validate", "validate-army", "check:al", "version", "-v", "--version", "help", "-h", "--help",
25
+ "git:commit", "git:sync", "check:compliance", "explorer:graph", "explorer:audit",
26
+ "knowledge:update", "knowledge:search", "log:action", "run-script", "security:audit", "check:lint"
24
27
  ];
25
28
 
26
29
  // Handle @agent delegation syntax
@@ -29,21 +32,17 @@ async function main() {
29
32
  const content = args.slice(1).join(" ");
30
33
  if (!content) {
31
34
  console.error(`❌ Error: Missing task content for ${to}.`);
32
- console.log(`Usage: agent-enderun ${to} "Your task description"`);
35
+ console.warn(`Usage: agent-enderun ${to} "Your task description"`);
33
36
  process.exit(64);
34
37
  }
35
38
 
36
- const { getMemoryPath } = await import("./utils/memory.js");
37
- const fs = await import("fs");
38
39
  const memoryPath = getMemoryPath();
39
40
 
40
41
  let traceId = "T-000";
41
- if (fs.default.existsSync(memoryPath)) {
42
- const content = fs.default.readFileSync(memoryPath, "utf8");
43
- // More robust regex: look for any ULID-like string in the Active Trace ID column or near the label
44
- const match = content.match(/Active Trace ID\s*\|.*\|\s*\n\|.*\|.*\|.*\|\s*([A-Z0-9]+)\s*\|/i) ||
45
- content.match(/Active Trace ID[:\s|]+([A-Z0-9]+)/i);
46
- if (match) traceId = match[1].trim();
42
+ if (fs.existsSync(memoryPath)) {
43
+ const memoryContent = fs.readFileSync(memoryPath, "utf8");
44
+ const tid = readActiveTraceId(memoryContent);
45
+ if (tid) traceId = tid.trim();
47
46
  }
48
47
 
49
48
  sendMessage({
@@ -54,16 +53,17 @@ async function main() {
54
53
  traceId
55
54
  });
56
55
 
57
- console.log(`✅ Task delegated to ${to} (Trace: ${traceId})`);
58
- console.log("👉 Run \"agent-enderun orchestrate\" to process.");
56
+ console.warn(`✅ Task delegated to ${to} (Trace: ${traceId})`);
57
+ console.warn("👉 Run \"agent-enderun orchestrate\" to process.");
59
58
  return;
60
59
  }
61
60
 
62
61
  switch (command) {
63
62
  case "init": {
64
63
  const dryRun = args.includes("--dry-run");
64
+ const isInteractive = args.includes("--interactive");
65
65
  const adapter = args.find(a => !a.startsWith("-") && a !== "init");
66
- await initCommand(adapter, dryRun);
66
+ await initCommand(adapter, dryRun, isInteractive);
67
67
  break;
68
68
  }
69
69
 
@@ -99,6 +99,7 @@ async function main() {
99
99
  break;
100
100
 
101
101
  case "orchestrate":
102
+ case "loop":
102
103
  orchestrateCommand();
103
104
  break;
104
105
 
@@ -123,10 +124,93 @@ async function main() {
123
124
  break;
124
125
  }
125
126
 
127
+ case "git:commit": {
128
+ const memoryContent = fs.existsSync(getMemoryPath()) ? fs.readFileSync(getMemoryPath(), "utf8") : "";
129
+ const traceId = readActiveTraceId(memoryContent) || "T-000";
130
+ const { gitCommitCommand } = await import("./commands/git.js");
131
+ gitCommitCommand(traceId);
132
+ break;
133
+ }
134
+
135
+ case "git:sync": {
136
+ const { gitSyncCommand } = await import("./commands/git.js");
137
+ gitSyncCommand();
138
+ break;
139
+ }
140
+
141
+ case "check:compliance": {
142
+ const targetPath = args[1] || "src";
143
+ const { complianceCheckCommand } = await import("./commands/compliance.js");
144
+ complianceCheckCommand(targetPath);
145
+ break;
146
+ }
147
+
148
+ case "explorer:graph": {
149
+ const targetPath = args[1] || "src";
150
+ const { explorerGraphCommand } = await import("./commands/explorer.js");
151
+ explorerGraphCommand(targetPath);
152
+ break;
153
+ }
154
+
155
+ case "explorer:audit": {
156
+ const targetPath = args[1] || "src";
157
+ const { explorerAuditCommand } = await import("./commands/explorer.js");
158
+ explorerAuditCommand(targetPath);
159
+ break;
160
+ }
161
+
162
+ case "knowledge:update": {
163
+ const topic = args[1];
164
+ const content = args[2];
165
+ const { updateKnowledgeBaseCommand } = await import("./commands/knowledge.js");
166
+ updateKnowledgeBaseCommand(topic, content);
167
+ break;
168
+ }
169
+
170
+ case "knowledge:search": {
171
+ const query = args[1];
172
+ const { searchKnowledgeBaseCommand } = await import("./commands/knowledge.js");
173
+ searchKnowledgeBaseCommand(query);
174
+ break;
175
+ }
176
+
177
+ case "log:action": {
178
+ const agent = args[1];
179
+ const action = args[2];
180
+ const status = args[3] || "SUCCESS";
181
+ const summary = args[4] || "";
182
+ const memoryContent = fs.existsSync(getMemoryPath()) ? fs.readFileSync(getMemoryPath(), "utf8") : "";
183
+ const traceId = readActiveTraceId(memoryContent) || "T-000";
184
+ const { logAgentActionCommand } = await import("./commands/log.js");
185
+ logAgentActionCommand({ agent, action, status, summary, traceId });
186
+ break;
187
+ }
188
+
189
+ case "run-script": {
190
+ const script = args[1];
191
+ const projectPath = args[2] || ".";
192
+ const { runScriptCommand } = await import("./commands/script.js");
193
+ runScriptCommand(script, projectPath);
194
+ break;
195
+ }
196
+
197
+ case "security:audit": {
198
+ const targetPath = args[1] || "src";
199
+ const { securityAuditCommand } = await import("./commands/security.js");
200
+ securityAuditCommand(targetPath);
201
+ break;
202
+ }
203
+
204
+ case "check:lint": {
205
+ const { lintCommand } = await import("./commands/lint.js");
206
+ lintCommand();
207
+ break;
208
+ }
209
+
126
210
  case "version":
127
211
  case "-v":
128
212
  case "--version":
129
- console.log(`v${getPackageVersion()}`);
213
+ console.warn(`v${getPackageVersion()}`);
130
214
  break;
131
215
 
132
216
  case "help":
@@ -139,17 +223,13 @@ async function main() {
139
223
  if (command && !KNOWN_COMMANDS.includes(command)) {
140
224
  // Natural language request fallback to @manager
141
225
  const content = args.join(" ");
142
- const { getMemoryPath } = await import("./utils/memory.js");
143
- const fs = await import("fs");
144
226
  const memoryPath = getMemoryPath();
145
227
 
146
228
  let traceId = "T-000";
147
- if (fs.default.existsSync(memoryPath)) {
148
- const content = fs.default.readFileSync(memoryPath, "utf8");
149
- // More robust regex: look for any ULID-like string in the Active Trace ID column or near the label
150
- const match = content.match(/Active Trace ID\s*\|.*\|\s*\n\|.*\|.*\|.*\|\s*([A-Z0-9]+)\s*\|/i) ||
151
- content.match(/Active Trace ID[:\s|]+([A-Z0-9]+)/i);
152
- if (match) traceId = match[1].trim();
229
+ if (fs.existsSync(memoryPath)) {
230
+ const memoryContent = fs.readFileSync(memoryPath, "utf8");
231
+ const tid = readActiveTraceId(memoryContent);
232
+ if (tid) traceId = tid.trim();
153
233
  }
154
234
 
155
235
  sendMessage({
@@ -160,8 +240,8 @@ async function main() {
160
240
  traceId
161
241
  });
162
242
 
163
- console.log(`📡 Request sent to @manager: "${content}" (Trace: ${traceId})`);
164
- console.log("👉 Run 'agent-enderun orchestrate' to process.");
243
+ console.warn(`📡 Request sent to @manager: "${content}" (Trace: ${traceId})`);
244
+ console.warn("👉 Run 'agent-enderun orchestrate' to process.");
165
245
  } else {
166
246
  showHelp();
167
247
  }
@@ -170,8 +250,8 @@ async function main() {
170
250
  }
171
251
 
172
252
  function showHelp() {
173
- console.log(`
174
- 🤖 Agent Enderun CLI — Enterprise AI Orchestration
253
+ console.warn(`
254
+ 🎖️ Enderun Core CLI (v${getPackageVersion()}) The Supreme AI Orchestrator
175
255
 
176
256
  Usage:
177
257
  agent-enderun <command> [options]
@@ -180,7 +260,8 @@ Usage:
180
260
 
181
261
  Commands:
182
262
  @<agent> <task> Delegate a task to a specialist agent (e.g. @backend, @frontend)
183
- init [adapter] Initialize Agent Enderun framework (gemini, claude, grok, etc.)
263
+ init [adapter] Initialize Agent Enderun framework.
264
+ Options: --interactive, --dry-run
184
265
  check Perform an enterprise-grade system health check
185
266
  status Show active phase, trace ID, and agent statuses
186
267
  trace:new <desc> Start a new task chain with a unique Trace ID
@@ -188,6 +269,17 @@ Commands:
188
269
  orchestrate Start the dynamic Hermes agent orchestration loop
189
270
  verify-contract Validate type alignment between backend and frontend
190
271
  update-contract Generate and synchronize a new contract hash
272
+ git:commit Suggest git commit messages matching the Trace ID
273
+ git:sync Sync and rebase the project with remote repository
274
+ check:compliance Verify file compliance with ENDERUN.md rules
275
+ explorer:graph Generate import dependency charts in Mermaid format
276
+ explorer:audit Scan source files for lines-of-code complexity
277
+ knowledge:update Add or update a topic in the local knowledge base
278
+ knowledge:search Search the local knowledge base for a topic query
279
+ log:action Record structured logs for agent executions
280
+ run-script Execute package scripts in the project directory
281
+ security:audit Audit source files for secrets and unsafe coding
282
+ check:lint Run ESLint checks on the project files
191
283
  version Show version information
192
284
 
193
285
  Natural Language:
@@ -2,7 +2,7 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import crypto from "crypto";
4
4
  import { ensureDir, writeTextFile, writeJsonFile } from "../utils/fs.js";
5
- import { updateProjectMemoryCommand } from "../commands/memory.js";
5
+ import { updateProjectMemory } from "./memory.js";
6
6
  import { slugifyName, titleCase } from "../utils/string.js";
7
7
  import { getConfiguredPaths, getMemoryPath } from "./memory.js";
8
8
  import { getDependencyVersions } from "./pkg.js";
@@ -278,7 +278,7 @@ export interface Task {
278
278
  console.warn(`✅ Base types created in ${path.relative(targetDir, typesDir)}`);
279
279
  }
280
280
 
281
- interface AppSpec {
281
+ export interface AppSpec {
282
282
  rawDescription: string;
283
283
  appName: string;
284
284
  title: string;
@@ -735,7 +735,7 @@ export function updateMemoryForGeneratedApp(spec: AppSpec, traceId: string) {
735
735
  `- **Files:** ${pathsMap.backend}, ${pathsMap.frontend}, project docs`,
736
736
  ].join("\n");
737
737
 
738
- updateProjectMemoryCommand("HISTORY", history);
738
+ updateProjectMemory("HISTORY", history);
739
739
  }
740
740
 
741
741
  export async function collectCreateAppDescription(args: string[]) {
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+
3
+ /**
4
+ * Standard Color Palette Schema
5
+ */
6
+ export const ColorPaletteSchema = z.object({
7
+ primary: z.string().regex(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/),
8
+ secondary: z.string().regex(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/),
9
+ accent: z.string().regex(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/),
10
+ });
11
+
12
+ /**
13
+ * Enderun Core config.json Schema
14
+ */
15
+ export const EnderunConfigSchema = z.object({
16
+ name: z.string().default("Enderun Core"),
17
+ version: z.string(),
18
+ frameworkDir: z.string().optional(),
19
+ theme: z.object({
20
+ palette: z.string(),
21
+ colors: ColorPaletteSchema
22
+ }).optional(),
23
+ paths: z.object({
24
+ backend: z.string(),
25
+ frontend: z.string(),
26
+ docs: z.string(),
27
+ tests: z.string(),
28
+ }).default({
29
+ backend: "apps/backend",
30
+ frontend: "apps/web",
31
+ docs: "docs",
32
+ tests: "tests"
33
+ })
34
+ });
35
+
36
+ /**
37
+ * MCP mcp.json Schema
38
+ */
39
+ export const McpConfigSchema = z.object({
40
+ mcpServers: z.record(z.object({
41
+ command: z.string(),
42
+ args: z.array(z.string()),
43
+ env: z.record(z.string()).optional()
44
+ }))
45
+ });
46
+
47
+ export type EnderunConfig = z.infer<typeof EnderunConfigSchema>;
48
+ export type McpConfig = z.infer<typeof McpConfigSchema>;
@@ -3,6 +3,9 @@ import path from "path";
3
3
 
4
4
  import { remapFrameworkContent } from "../adapters.js"; // Import from the new adapters.js
5
5
  import type { AdapterId } from "../adapters.js";
6
+ import { ensureDir, writeTextFile, writeJsonFile } from "../../shared/fs.js";
7
+
8
+ export { ensureDir, writeTextFile, writeJsonFile };
6
9
 
7
10
  export function updateGitIgnore(targetPath: string, frameworkDir = ".gemini", dryRun = false): void {
8
11
  const IGNORE_LINES = [
@@ -39,29 +42,6 @@ export function updateGitIgnore(targetPath: string, frameworkDir = ".gemini", dr
39
42
  }
40
43
  }
41
44
 
42
- export function ensureDir(dirPath: string, dryRun = false): void {
43
- if (!fs.existsSync(dirPath)) {
44
- if (dryRun) {
45
- console.warn(`[DRY RUN] Would create directory: ${dirPath}`);
46
- } else {
47
- fs.mkdirSync(dirPath, { recursive: true });
48
- }
49
- }
50
- }
51
-
52
- export function writeTextFile(filePath: string, content: string, dryRun = false): void {
53
- if (dryRun) {
54
- console.warn(`[DRY RUN] Would write file: ${filePath}`);
55
- return;
56
- }
57
- ensureDir(path.dirname(filePath));
58
- // Use template literal for content handling to avoid issues with raw newlines
59
- fs.writeFileSync(filePath, content.endsWith("\n") ? content : `${content}\n`);
60
- }
61
-
62
- export function writeJsonFile(filePath: string, value: unknown, dryRun = false): void {
63
- writeTextFile(filePath, JSON.stringify(value, null, 2), dryRun);
64
- }
65
45
 
66
46
  interface SanitizeJsonFunction {
67
47
  (obj: unknown, targetScope?: string): unknown;
@@ -90,14 +70,17 @@ export function copyDir(
90
70
 
91
71
  const srcPath = path.join(src, entry.name);
92
72
 
93
- // Physical folder remapping during copy
73
+ // Physical folder remapping during copy.
74
+ // In unified mode (frameworkDir === ".enderun") folder names are always standard —
75
+ // agents/ stays agents/, knowledge/ stays knowledge/.
76
+ // Only remap when using a legacy non-unified adapter directory.
94
77
  let effectiveEntryName = entry.name;
95
- if (entry.isDirectory()) {
78
+ if (entry.isDirectory() && frameworkDir !== ".enderun") {
96
79
  if (entry.name === "agents") {
97
- if (adapterId === "antigravity") effectiveEntryName = "skills";
80
+ if (adapterId === "antigravity-cli") effectiveEntryName = "skills";
98
81
  else if (adapterId === "grok") effectiveEntryName = "plugins";
99
82
  } else if (entry.name === "knowledge") {
100
- if (adapterId === "antigravity") effectiveEntryName = "rules";
83
+ if (adapterId === "antigravity-cli") effectiveEntryName = "rules";
101
84
  }
102
85
  }
103
86