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,70 +0,0 @@
1
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
- import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
4
- import { TOOLS, toolHandlers } from "./tools/index.js";
5
- // ─── Server Setup ─────────────────────────────────────────────────
6
- const server = new Server({
7
- name: "@agent-enderun/mcp",
8
- version: "1.1.2",
9
- }, {
10
- capabilities: {
11
- tools: {},
12
- },
13
- });
14
- server.setRequestHandler(ListToolsRequestSchema, async () => {
15
- return { tools: TOOLS };
16
- });
17
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
18
- const typedRequest = request;
19
- const { name, arguments: args } = typedRequest.params;
20
- const projectRoot = process.env.ENDERUN_PROJECT_ROOT || process.cwd();
21
- try {
22
- const handler = toolHandlers[name];
23
- if (!handler) {
24
- return {
25
- isError: true,
26
- content: [{ type: "text", text: `Unknown tool: ${name}` }],
27
- };
28
- }
29
- return handler(projectRoot, args || {});
30
- }
31
- catch (error) {
32
- const message = error instanceof Error ? error.message : "Unknown error occurred";
33
- return {
34
- isError: true,
35
- content: [{ type: "text", text: message }],
36
- };
37
- }
38
- });
39
- // ─── Graceful Startup & Shutdown ──────────────────────────────────
40
- async function run() {
41
- const transport = new StdioServerTransport();
42
- // Prevent unhandled errors from crashing the MCP stream
43
- process.on("uncaughtException", (error) => {
44
- process.stderr.write(`[agent-enderun-mcp] Uncaught exception: ${error.message}
45
- `);
46
- });
47
- process.on("unhandledRejection", (reason) => {
48
- const message = reason instanceof Error ? reason.message : String(reason);
49
- process.stderr.write(`[agent-enderun-mcp] Unhandled rejection: ${message}
50
- `);
51
- });
52
- // Graceful shutdown on SIGINT/SIGTERM
53
- const shutdown = async () => {
54
- try {
55
- await server.close();
56
- }
57
- catch {
58
- // Already closed or failed — safe to ignore
59
- }
60
- process.exit(0);
61
- };
62
- process.on("SIGINT", shutdown);
63
- process.on("SIGTERM", shutdown);
64
- await server.connect(transport);
65
- }
66
- run().catch((error) => {
67
- process.stderr.write(`[agent-enderun-mcp] Fatal startup error: ${error.message}
68
- `);
69
- process.exit(1);
70
- });
@@ -1,112 +0,0 @@
1
- export const TOOLS = [
2
- {
3
- name: "read_file",
4
- description: "Read the content of a file within the project. Supports optional line range reading to prevent stream overload.",
5
- inputSchema: {
6
- type: "object",
7
- properties: {
8
- path: { type: "string", description: "Path to the file relative to project root" },
9
- startLine: { type: "number", description: "Optional starting line number (1-indexed)" },
10
- endLine: { type: "number", description: "Optional ending line number (inclusive)" },
11
- },
12
- required: ["path"],
13
- },
14
- },
15
- {
16
- name: "write_file",
17
- description: "Write content to a file. Creates directories if missing.",
18
- inputSchema: {
19
- type: "object",
20
- properties: {
21
- path: { type: "string", description: "Path to the file relative to project root" },
22
- content: { type: "string", description: "Complete content of the file" },
23
- },
24
- required: ["path", "content"],
25
- },
26
- },
27
- {
28
- name: "replace_text",
29
- description: "Surgically replace a string in a file with another string.",
30
- inputSchema: {
31
- type: "object",
32
- properties: {
33
- path: { type: "string", description: "Path to the file" },
34
- oldText: { type: "string", description: "The exact text to find" },
35
- newText: { type: "string", description: "The text to replace it with" },
36
- },
37
- required: ["path", "oldText", "newText"],
38
- },
39
- },
40
- {
41
- name: "patch_file",
42
- description: "Safely update a file by replacing a specific line range with new content.",
43
- inputSchema: {
44
- type: "object",
45
- properties: {
46
- path: { type: "string", description: "Path to the file" },
47
- startLine: { type: "number", description: "Starting line number (1-indexed)" },
48
- endLine: { type: "number", description: "Ending line number (inclusive)" },
49
- newContent: { type: "string", description: "The new lines to insert" },
50
- },
51
- required: ["path", "startLine", "endLine", "newContent"],
52
- },
53
- },
54
- {
55
- name: "get_framework_status",
56
- description: "Get the current project phase, active traces, and agent states.",
57
- inputSchema: { type: "object", properties: {} },
58
- },
59
- {
60
- name: "update_project_memory",
61
- description: "Update a specific section in PROJECT_MEMORY.md.",
62
- inputSchema: {
63
- type: "object",
64
- properties: {
65
- section: { type: "string", description: "Section name (e.g., HISTORY, ACTIVE TASKS)" },
66
- content: { type: "string", description: "Markdown content to append or set" },
67
- },
68
- required: ["section", "content"],
69
- },
70
- },
71
- {
72
- name: "orchestrate_loop",
73
- description: "Process the pending Hermes messages and trigger dynamic state transitions.",
74
- inputSchema: { type: "object", properties: {} },
75
- },
76
- {
77
- name: "send_agent_message",
78
- description: "Send a Hermes protocol message to another agent.",
79
- inputSchema: {
80
- type: "object",
81
- properties: {
82
- from: { type: "string", description: "Sender agent (e.g., @manager, @backend). Defaults to @mcp if omitted." },
83
- to: { type: "string", description: "Target agent (e.g., @backend, @qa)" },
84
- category: { type: "string", enum: ["ACTION", "DELEGATION", "INFO", "ALERT"] },
85
- content: { type: "string", description: "Message content" },
86
- traceId: { type: "string", description: "Active Trace ID" },
87
- },
88
- required: ["to", "category", "content", "traceId"],
89
- },
90
- },
91
- {
92
- name: "log_agent_action",
93
- description: "Log an agent action to the framework logs.",
94
- inputSchema: {
95
- type: "object",
96
- properties: {
97
- agent: { type: "string", description: "The agent name (e.g., @manager, @backend)" },
98
- action: { type: "string", description: "Action type or name" },
99
- traceId: { type: "string", description: "The active Trace ID" },
100
- status: { type: "string", enum: ["SUCCESS", "FAILURE"], description: "The status of the action" },
101
- summary: { type: "string", description: "Brief description of the action taken" },
102
- findings: { type: "string", description: "Optional comma-separated findings or details" }
103
- },
104
- required: ["agent", "action", "traceId", "status", "summary"]
105
- }
106
- },
107
- {
108
- name: "update_contract_hash",
109
- description: "Re-generate and synchronize the backend contract SHA-256 hash.",
110
- inputSchema: { type: "object", properties: {} }
111
- }
112
- ];
@@ -1,18 +0,0 @@
1
- import fs from "fs";
2
- import { safePath } from "../../utils/security.js";
3
- export function handlePatchFile(projectRoot, args) {
4
- const filePath = safePath(projectRoot, args.path);
5
- const lines = fs.readFileSync(filePath, "utf8").split("\n");
6
- const start = args.startLine - 1;
7
- const end = args.endLine;
8
- const newContent = args.newContent.split("\n");
9
- if (start < 0 || start > lines.length) {
10
- throw new Error(`Invalid start line: ${start + 1}. File has ${lines.length} lines.`);
11
- }
12
- if (end < start + 1 || end > lines.length) {
13
- throw new Error(`Invalid end line: ${end}. Must be between ${start + 1} and ${lines.length}.`);
14
- }
15
- lines.splice(start, end - start, ...newContent);
16
- fs.writeFileSync(filePath, lines.join("\n"));
17
- return { content: [{ type: "text", text: `✅ File patched successfully: ${args.path}` }] };
18
- }
@@ -1,27 +0,0 @@
1
- import fs from "fs";
2
- import { safePath } from "../../utils/security.js";
3
- export function handleReadFile(projectRoot, args) {
4
- const filePath = safePath(projectRoot, args.path);
5
- const startLine = args.startLine !== undefined ? Number(args.startLine) : undefined;
6
- const endLine = args.endLine !== undefined ? Number(args.endLine) : undefined;
7
- const content = fs.readFileSync(filePath, "utf8");
8
- const lines = content.split(/\r?\n/);
9
- if (startLine !== undefined || endLine !== undefined) {
10
- const start = startLine !== undefined ? Math.max(1, startLine) - 1 : 0;
11
- const end = endLine !== undefined ? Math.min(lines.length, endLine) : lines.length;
12
- const sliced = lines.slice(start, end).join("\n");
13
- return { content: [{ type: "text", text: sliced }] };
14
- }
15
- // Default protection limit: 1000 lines
16
- const DEFAULT_MAX_LINES = 1000;
17
- if (lines.length > DEFAULT_MAX_LINES) {
18
- const sliced = lines.slice(0, DEFAULT_MAX_LINES).join("\n");
19
- return {
20
- content: [{
21
- type: "text",
22
- text: `${sliced}\n\n... [TRUNCATED - File is too long (${lines.length} lines). Only the first ${DEFAULT_MAX_LINES} lines are shown. Use startLine and endLine parameters to read other parts of the file.]`
23
- }]
24
- };
25
- }
26
- return { content: [{ type: "text", text: content }] };
27
- }
@@ -1,31 +0,0 @@
1
- import fs from "fs";
2
- import { safePath } from "../../utils/security.js";
3
- export function handleReplaceText(projectRoot, args) {
4
- const filePath = safePath(projectRoot, args.path);
5
- let content = fs.readFileSync(filePath, "utf8");
6
- const oldText = args.oldText;
7
- const newText = args.newText;
8
- const allowMultiple = args.allowMultiple || false; // Default to false
9
- if (!content.includes(oldText)) {
10
- throw new Error(`Text not found in file: ${oldText.slice(0, 100)}...`);
11
- }
12
- // Surgical precision guard: reject ambiguous replacements unless allowMultiple is true.
13
- if (!allowMultiple) {
14
- const firstIndex = content.indexOf(oldText);
15
- const lastIndex = content.lastIndexOf(oldText);
16
- if (firstIndex !== lastIndex) {
17
- const count = (content.match(new RegExp(oldText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g")) || []).length;
18
- throw new Error(`Ambiguous replacement: "${oldText.slice(0, 80)}..." found ${count} times in ${args.path}. ` +
19
- "Provide a longer, unique context string or set 'allow_multiple' to true.");
20
- }
21
- }
22
- // Perform replacement(s)
23
- if (allowMultiple) {
24
- content = content.replace(new RegExp(oldText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), newText);
25
- }
26
- else {
27
- content = content.replace(oldText, newText);
28
- }
29
- fs.writeFileSync(filePath, content);
30
- return { content: [{ type: "text", text: `✅ Surgical edit successful in ${args.path}` }] };
31
- }
@@ -1,9 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { safePath } from "../../utils/security.js";
4
- export function handleWriteFile(projectRoot, args) {
5
- const filePath = safePath(projectRoot, args.path);
6
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
7
- fs.writeFileSync(filePath, args.content);
8
- return { content: [{ type: "text", text: `✅ File written: ${args.path}` }] };
9
- }
@@ -1,5 +0,0 @@
1
- import { safeExec } from "../../utils/cli.js";
2
- export function handleGetFrameworkStatus(projectRoot, args) {
3
- const output = safeExec("npx", ["agent-enderun", "status"], projectRoot, args.timeout);
4
- return { content: [{ type: "text", text: output }] };
5
- }
@@ -1,5 +0,0 @@
1
- import { safeExec } from "../../utils/cli.js";
2
- export function handleOrchestrateLoop(projectRoot, args) {
3
- const output = safeExec("npx", ["agent-enderun", "orchestrate"], projectRoot, args.timeout);
4
- return { content: [{ type: "text", text: output }] };
5
- }
@@ -1,5 +0,0 @@
1
- import { safeExec } from "../../utils/cli.js";
2
- export function handleUpdateContractHash(projectRoot, args) {
3
- const output = safeExec("npx", ["agent-enderun", "update-contract"], projectRoot, args.timeout);
4
- return { content: [{ type: "text", text: output }] };
5
- }
@@ -1,8 +0,0 @@
1
- import { safeExec } from "../../utils/cli.js";
2
- export function handleUpdateProjectMemory(projectRoot, args) {
3
- const section = args.section;
4
- const content = args.content;
5
- // Using execFileSync with array args prevents command injection
6
- safeExec("npx", ["agent-enderun", "update_project_memory", section, content], projectRoot, args.timeout);
7
- return { content: [{ type: "text", text: `✅ Section ${section} updated.` }] };
8
- }
@@ -1,25 +0,0 @@
1
- import { TOOLS } from "./definitions.js";
2
- import { handleReadFile } from "./file_system/read_file.js";
3
- import { handleWriteFile } from "./file_system/write_file.js";
4
- import { handleReplaceText } from "./file_system/replace_text.js";
5
- import { handlePatchFile } from "./file_system/patch_file.js";
6
- import { handleGetFrameworkStatus } from "./framework/get_status.js";
7
- import { handleUpdateProjectMemory } from "./framework/update_memory.js";
8
- import { handleOrchestrateLoop } from "./framework/orchestrate.js";
9
- import { handleUpdateContractHash } from "./framework/update_contract_hash.js";
10
- import { handleSendAgentMessage } from "./messaging/send_message.js";
11
- import { handleLogAgentAction } from "./messaging/log_action.js";
12
- // Map of tool names to their handler functions
13
- export const toolHandlers = {
14
- read_file: handleReadFile,
15
- write_file: handleWriteFile,
16
- replace_text: handleReplaceText,
17
- patch_file: handlePatchFile,
18
- get_framework_status: handleGetFrameworkStatus,
19
- update_project_memory: handleUpdateProjectMemory,
20
- orchestrate_loop: handleOrchestrateLoop,
21
- send_agent_message: handleSendAgentMessage,
22
- log_agent_action: handleLogAgentAction,
23
- update_contract_hash: handleUpdateContractHash,
24
- };
25
- export { TOOLS };
@@ -1,22 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { resolveFrameworkDir } from "../../utils/security.js";
4
- export function handleLogAgentAction(projectRoot, args) {
5
- const { agent, action, traceId, status, summary } = args;
6
- const findings = args.findings ? args.findings.split(",").map(f => f.trim()) : [];
7
- const frameworkDir = resolveFrameworkDir(projectRoot);
8
- const agentName = agent.replace("@", "");
9
- const logPath = path.join(projectRoot, frameworkDir, "logs", `${agentName}.json`);
10
- const logEntry = {
11
- timestamp: new Date().toISOString(),
12
- agent,
13
- action,
14
- requestId: traceId,
15
- status,
16
- summary,
17
- findings
18
- };
19
- fs.mkdirSync(path.dirname(logPath), { recursive: true });
20
- fs.appendFileSync(logPath, JSON.stringify(logEntry) + "\n");
21
- return { content: [{ type: "text", text: `✅ Action logged for ${agent} to ${path.join(frameworkDir, "logs", `${agentName}.json`)}` }] };
22
- }
@@ -1,46 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { resolveFrameworkDir } from "../../utils/security.js";
4
- export function handleSendAgentMessage(projectRoot, args) {
5
- const { to, category, content, traceId } = args;
6
- const from = args.from || "@mcp";
7
- const frameworkDir = resolveFrameworkDir(projectRoot);
8
- const messagesDir = path.join(projectRoot, frameworkDir, "messages");
9
- const agentName = to.replace("@", "");
10
- const messagePath = path.join(messagesDir, `${agentName}.json`);
11
- const lockPath = path.join(messagesDir, ".lock");
12
- // Hermes Lock Protocol: Retry 3 times with 500ms delay
13
- let retries = 3;
14
- while (retries > 0 && fs.existsSync(lockPath)) {
15
- const stats = fs.statSync(lockPath);
16
- if (Date.now() - stats.mtimeMs > 5000) {
17
- fs.unlinkSync(lockPath);
18
- break;
19
- }
20
- retries--;
21
- if (retries > 0) {
22
- const start = Date.now();
23
- while (Date.now() - start < 500)
24
- ; // Simple busy wait for MCP environment
25
- }
26
- }
27
- try {
28
- fs.mkdirSync(messagesDir, { recursive: true });
29
- fs.writeFileSync(lockPath, `Locked by ${from} at ${new Date().toISOString()}`);
30
- const message = {
31
- timestamp: new Date().toISOString(),
32
- from,
33
- to,
34
- category,
35
- traceId,
36
- content,
37
- status: "PENDING"
38
- };
39
- fs.appendFileSync(messagePath, JSON.stringify(message) + "\n");
40
- return { content: [{ type: "text", text: `✅ Message sent to ${to} (from: ${from})` }] };
41
- }
42
- finally {
43
- if (fs.existsSync(lockPath))
44
- fs.unlinkSync(lockPath);
45
- }
46
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,20 +0,0 @@
1
- import { execFileSync } from "child_process";
2
- /**
3
- * Executes a CLI command safely using execFileSync (no shell injection risk).
4
- * Captures stderr gracefully to prevent stream crashes.
5
- */
6
- export function safeExec(command, args, cwd, timeout) {
7
- try {
8
- return execFileSync(command, args, {
9
- cwd,
10
- encoding: "utf8",
11
- timeout: timeout || 30000,
12
- maxBuffer: 1024 * 1024,
13
- stdio: ["pipe", "pipe", "pipe"],
14
- });
15
- }
16
- catch (error) {
17
- const err = error;
18
- throw new Error(err.stderr || err.message || "Command execution failed", { cause: error });
19
- }
20
- }
@@ -1,53 +0,0 @@
1
- import path from "path";
2
- import fs from "fs";
3
- /**
4
- * Validates and resolves a user-provided path to prevent path traversal attacks.
5
- * Ensures the resolved path stays within the project root boundary.
6
- */
7
- export function safePath(projectRoot, userPath) {
8
- const resolved = path.resolve(projectRoot, userPath);
9
- const normalizedRoot = path.resolve(projectRoot);
10
- if (!resolved.startsWith(normalizedRoot + path.sep) && resolved !== normalizedRoot) {
11
- throw new Error(`Access denied: path "${userPath}" escapes project root.`);
12
- }
13
- return resolved;
14
- }
15
- /**
16
- * Resolves the active framework directory.
17
- * Priority: package.json `enderun.frameworkDir` → `.enderun` → adapter dirs.
18
- * This ensures the canonical framework directory is always used,
19
- * even when adapter-specific dirs (e.g. `.gemini`) exist alongside it.
20
- */
21
- export function resolveFrameworkDir(projectRoot) {
22
- // 1. Authoritative source: read from package.json if present
23
- try {
24
- const pkgPath = path.join(projectRoot, "package.json");
25
- if (fs.existsSync(pkgPath)) {
26
- const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
27
- const enderunConfig = pkg["enderun"];
28
- if (enderunConfig && typeof enderunConfig["frameworkDir"] === "string") {
29
- return enderunConfig["frameworkDir"];
30
- }
31
- }
32
- }
33
- catch {
34
- // ignore — fall through to filesystem scan
35
- }
36
- // 2. Filesystem scan — .enderun takes precedence over adapter-specific dirs
37
- const candidates = [
38
- ".enderun",
39
- ".claude",
40
- ".grok",
41
- ".agent",
42
- ".gemini/antigravity",
43
- ".gemini/antigravity-cli",
44
- ".gemini",
45
- ];
46
- for (const candidate of candidates) {
47
- const candidatePath = path.join(projectRoot, candidate);
48
- if (fs.existsSync(candidatePath)) {
49
- return candidate;
50
- }
51
- }
52
- return ".enderun";
53
- }
@@ -1,68 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
- import fs from "fs";
3
- import path from "path";
4
- import { handleReplaceText } from "../../../src/tools/file_system/replace_text.js";
5
- const TEST_DIR = path.join(__dirname, "../_temp_test_files");
6
- const TEST_FILE = path.join(TEST_DIR, "test_file.txt");
7
- beforeEach(() => {
8
- fs.mkdirSync(TEST_DIR, { recursive: true });
9
- });
10
- afterEach(() => {
11
- fs.rmSync(TEST_DIR, { recursive: true, force: true });
12
- });
13
- describe("handleReplaceText", () => {
14
- it("should replace a single occurrence of text", () => {
15
- fs.writeFileSync(TEST_FILE, "hello world", "utf8");
16
- const args = {
17
- path: TEST_FILE,
18
- oldText: "world",
19
- newText: "there",
20
- };
21
- const result = handleReplaceText(TEST_DIR, args);
22
- expect(result.content[0].text).toContain("✅ Surgical edit successful");
23
- expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("hello there");
24
- });
25
- it("should throw an error if text is not found", () => {
26
- fs.writeFileSync(TEST_FILE, "hello world", "utf8");
27
- const args = {
28
- path: TEST_FILE,
29
- oldText: "missing",
30
- newText: "found",
31
- };
32
- expect(() => handleReplaceText(TEST_DIR, args)).toThrowError("Text not found in file");
33
- });
34
- it("should throw an error for ambiguous replacement if allowMultiple is false", () => {
35
- fs.writeFileSync(TEST_FILE, "hello world world", "utf8");
36
- const args = {
37
- path: TEST_FILE,
38
- oldText: "world",
39
- newText: "there",
40
- allowMultiple: false,
41
- };
42
- expect(() => handleReplaceText(TEST_DIR, args)).toThrowError("Ambiguous replacement");
43
- });
44
- it("should replace all occurrences of text if allowMultiple is true", () => {
45
- fs.writeFileSync(TEST_FILE, "hello world world", "utf8");
46
- const args = {
47
- path: TEST_FILE,
48
- oldText: "world",
49
- newText: "there",
50
- allowMultiple: true,
51
- };
52
- const result = handleReplaceText(TEST_DIR, args);
53
- expect(result.content[0].text).toContain("✅ Surgical edit successful");
54
- expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("hello there there");
55
- });
56
- it("should handle special characters in oldText when allowMultiple is true", () => {
57
- fs.writeFileSync(TEST_FILE, "test.txt", "utf8");
58
- const args = {
59
- path: TEST_FILE,
60
- oldText: ".txt",
61
- newText: ".md",
62
- allowMultiple: true,
63
- };
64
- const result = handleReplaceText(TEST_DIR, args);
65
- expect(result.content[0].text).toContain("✅ Surgical edit successful");
66
- expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("test.md");
67
- });
68
- });
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE
@@ -1,15 +0,0 @@
1
- # Installation
2
- > `npm install --save @types/node`
3
-
4
- # Summary
5
- This package contains type definitions for node (https://nodejs.org/).
6
-
7
- # Details
8
- Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node/v22.
9
-
10
- ### Additional Details
11
- * Last updated: Mon, 11 May 2026 22:25:21 GMT
12
- * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
13
-
14
- # Credits
15
- These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [Alberto Schiabel](https://github.com/jkomyno), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [David Junger](https://github.com/touffy), [Mohsen Azimi](https://github.com/mohsen1), [Nikita Galkin](https://github.com/galkin), [Sebastian Silbermann](https://github.com/eps1lon), [Wilco Bakker](https://github.com/WilcoBakker), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), [Matteo Collina](https://github.com/mcollina), [Dmitry Semigradsky](https://github.com/Semigradsky), and [René](https://github.com/Renegade334).