agent-enderun 1.10.2 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/README.md +34 -44
  2. package/dist/framework-mcp/src/constants.d.ts +47 -0
  3. package/dist/framework-mcp/src/constants.js +65 -0
  4. package/dist/framework-mcp/src/constants.js.map +1 -0
  5. package/dist/framework-mcp/src/index.js +26 -5
  6. package/dist/framework-mcp/src/index.js.map +1 -1
  7. package/dist/framework-mcp/src/tools/control_plane/locking.d.ts +3 -9
  8. package/dist/framework-mcp/src/tools/control_plane/locking.js.map +1 -1
  9. package/dist/framework-mcp/src/tools/control_plane/registry.d.ts +2 -8
  10. package/dist/framework-mcp/src/tools/control_plane/registry.js.map +1 -1
  11. package/dist/framework-mcp/src/tools/dashboard/start_dashboard.d.ts +2 -2
  12. package/dist/framework-mcp/src/tools/dashboard/start_dashboard.js.map +1 -1
  13. package/dist/framework-mcp/src/tools/definitions.js +30 -0
  14. package/dist/framework-mcp/src/tools/definitions.js.map +1 -1
  15. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.d.ts +2 -2
  16. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js +12 -4
  17. package/dist/framework-mcp/src/tools/file_system/batch_surgical_edit.js.map +1 -1
  18. package/dist/framework-mcp/src/tools/file_system/patch_file.d.ts +2 -2
  19. package/dist/framework-mcp/src/tools/file_system/patch_file.js +6 -2
  20. package/dist/framework-mcp/src/tools/file_system/patch_file.js.map +1 -1
  21. package/dist/framework-mcp/src/tools/file_system/read_file.d.ts +2 -2
  22. package/dist/framework-mcp/src/tools/file_system/read_file.js +43 -26
  23. package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -1
  24. package/dist/framework-mcp/src/tools/file_system/replace_text.d.ts +2 -2
  25. package/dist/framework-mcp/src/tools/file_system/replace_text.js +7 -3
  26. package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -1
  27. package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +2 -2
  28. package/dist/framework-mcp/src/tools/file_system/write_file.js +27 -15
  29. package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -1
  30. package/dist/framework-mcp/src/tools/framework/get_status.d.ts +2 -2
  31. package/dist/framework-mcp/src/tools/framework/get_status.js.map +1 -1
  32. package/dist/framework-mcp/src/tools/framework/orchestrate.d.ts +2 -2
  33. package/dist/framework-mcp/src/tools/framework/orchestrate.js.map +1 -1
  34. package/dist/framework-mcp/src/tools/framework/run_tests.d.ts +2 -2
  35. package/dist/framework-mcp/src/tools/framework/run_tests.js.map +1 -1
  36. package/dist/framework-mcp/src/tools/framework/update_contract_hash.d.ts +2 -2
  37. package/dist/framework-mcp/src/tools/framework/update_contract_hash.js.map +1 -1
  38. package/dist/framework-mcp/src/tools/framework/update_memory.d.ts +2 -2
  39. package/dist/framework-mcp/src/tools/framework/update_memory.js +1 -1
  40. package/dist/framework-mcp/src/tools/framework/update_memory.js.map +1 -1
  41. package/dist/framework-mcp/src/tools/index.d.ts +1 -2
  42. package/dist/framework-mcp/src/tools/index.js +33 -25
  43. package/dist/framework-mcp/src/tools/index.js.map +1 -1
  44. package/dist/framework-mcp/src/tools/messaging/log_action.d.ts +2 -2
  45. package/dist/framework-mcp/src/tools/messaging/log_action.js.map +1 -1
  46. package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +2 -2
  47. package/dist/framework-mcp/src/tools/messaging/send_message.js +14 -1
  48. package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -1
  49. package/dist/framework-mcp/src/tools/observability/check_ports.d.ts +2 -2
  50. package/dist/framework-mcp/src/tools/observability/check_ports.js.map +1 -1
  51. package/dist/framework-mcp/src/tools/quality/check_lint.d.ts +5 -0
  52. package/dist/framework-mcp/src/tools/quality/check_lint.js +29 -0
  53. package/dist/framework-mcp/src/tools/quality/check_lint.js.map +1 -0
  54. package/dist/framework-mcp/src/tools/search/get_gaps.d.ts +2 -2
  55. package/dist/framework-mcp/src/tools/search/get_gaps.js.map +1 -1
  56. package/dist/framework-mcp/src/tools/search/get_map.d.ts +2 -2
  57. package/dist/framework-mcp/src/tools/search/get_map.js +1 -1
  58. package/dist/framework-mcp/src/tools/search/get_map.js.map +1 -1
  59. package/dist/framework-mcp/src/tools/search/grep_search.d.ts +2 -2
  60. package/dist/framework-mcp/src/tools/search/grep_search.js +45 -28
  61. package/dist/framework-mcp/src/tools/search/grep_search.js.map +1 -1
  62. package/dist/framework-mcp/src/tools/search/list_dir.d.ts +2 -2
  63. package/dist/framework-mcp/src/tools/search/list_dir.js.map +1 -1
  64. package/dist/framework-mcp/src/tools/shell/run_command.d.ts +2 -0
  65. package/dist/framework-mcp/src/tools/shell/run_command.js +47 -0
  66. package/dist/framework-mcp/src/tools/shell/run_command.js.map +1 -0
  67. package/dist/framework-mcp/src/tools/types.d.ts +95 -28
  68. package/dist/framework-mcp/src/utils/metrics.d.ts +20 -0
  69. package/dist/framework-mcp/src/utils/metrics.js +24 -6
  70. package/dist/framework-mcp/src/utils/metrics.js.map +1 -1
  71. package/dist/framework-mcp/src/utils/security.d.ts +1 -3
  72. package/dist/framework-mcp/src/utils/security.js +21 -18
  73. package/dist/framework-mcp/src/utils/security.js.map +1 -1
  74. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js +19 -14
  75. package/dist/framework-mcp/tests/tools/file_system/file_system_tools.test.js.map +1 -1
  76. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js +1 -1
  77. package/dist/framework-mcp/tests/tools/messaging/send_message.test.js.map +1 -1
  78. package/dist/framework-mcp/tests/tools/quality/check_lint.test.d.ts +1 -0
  79. package/dist/framework-mcp/tests/tools/quality/check_lint.test.js +36 -0
  80. package/dist/framework-mcp/tests/tools/quality/check_lint.test.js.map +1 -0
  81. package/dist/framework-mcp/tests/tools/shell/run_command.test.d.ts +1 -0
  82. package/dist/framework-mcp/tests/tools/shell/run_command.test.js +43 -0
  83. package/dist/framework-mcp/tests/tools/shell/run_command.test.js.map +1 -0
  84. package/dist/src/cli/adapters/core.d.ts +1 -1
  85. package/dist/src/cli/adapters/core.js +4 -0
  86. package/dist/src/cli/adapters/core.js.map +1 -1
  87. package/dist/src/cli/adapters/index.d.ts +1 -0
  88. package/dist/src/cli/adapters/index.js +1 -0
  89. package/dist/src/cli/adapters/index.js.map +1 -1
  90. package/dist/src/cli/adapters/paths.d.ts +15 -0
  91. package/dist/src/cli/adapters/paths.js +101 -0
  92. package/dist/src/cli/adapters/paths.js.map +1 -0
  93. package/dist/src/cli/adapters/scaffold.d.ts +1 -1
  94. package/dist/src/cli/adapters/scaffold.js +10 -7
  95. package/dist/src/cli/adapters/scaffold.js.map +1 -1
  96. package/dist/src/cli/commands/check.js +15 -36
  97. package/dist/src/cli/commands/check.js.map +1 -1
  98. package/dist/src/cli/commands/dashboard/data-service.d.ts +8 -0
  99. package/dist/src/cli/commands/dashboard/data-service.js +37 -0
  100. package/dist/src/cli/commands/dashboard/data-service.js.map +1 -1
  101. package/dist/src/cli/commands/init/scaffold-core.d.ts +5 -2
  102. package/dist/src/cli/commands/init/scaffold-core.js +28 -6
  103. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
  104. package/dist/src/cli/commands/init/scaffold-standards.js +6 -1
  105. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  106. package/dist/src/cli/commands/init.js +30 -6
  107. package/dist/src/cli/commands/init.js.map +1 -1
  108. package/dist/src/cli/commands/orchestrate.d.ts +11 -6
  109. package/dist/src/cli/commands/orchestrate.js +148 -128
  110. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  111. package/dist/src/cli/commands/plan.d.ts +3 -1
  112. package/dist/src/cli/commands/plan.js +79 -22
  113. package/dist/src/cli/commands/plan.js.map +1 -1
  114. package/dist/src/cli/index.js +11 -15
  115. package/dist/src/cli/index.js.map +1 -1
  116. package/dist/src/cli/utils/compliance.js +0 -1
  117. package/dist/src/cli/utils/compliance.js.map +1 -1
  118. package/dist/src/cli/utils/config-schema.d.ts +7 -7
  119. package/dist/src/cli/utils/fs.js +1 -1
  120. package/dist/src/cli/utils/fs.js.map +1 -1
  121. package/dist/src/cli/utils/memory.d.ts +1 -1
  122. package/dist/src/cli/utils/memory.js +28 -8
  123. package/dist/src/cli/utils/memory.js.map +1 -1
  124. package/dist/src/cli/utils/pkg.d.ts +19 -0
  125. package/dist/src/cli/utils/pkg.js +29 -5
  126. package/dist/src/cli/utils/pkg.js.map +1 -1
  127. package/dist/src/modules/adapters/definitions.js +3 -3
  128. package/dist/src/modules/adapters/definitions.js.map +1 -1
  129. package/dist/src/modules/agents/definitions.js +2 -1
  130. package/dist/src/modules/agents/definitions.js.map +1 -1
  131. package/dist/src/modules/agents/registry/analyst.js +1 -1
  132. package/dist/src/modules/agents/registry/analyst.js.map +1 -1
  133. package/dist/src/modules/agents/registry/architect.js +1 -0
  134. package/dist/src/modules/agents/registry/architect.js.map +1 -1
  135. package/dist/src/modules/agents/registry/backend.js +7 -6
  136. package/dist/src/modules/agents/registry/backend.js.map +1 -1
  137. package/dist/src/modules/agents/registry/database.js +4 -3
  138. package/dist/src/modules/agents/registry/database.js.map +1 -1
  139. package/dist/src/modules/agents/registry/devops.js +1 -1
  140. package/dist/src/modules/agents/registry/devops.js.map +1 -1
  141. package/dist/src/modules/agents/registry/git.js +1 -1
  142. package/dist/src/modules/agents/registry/git.js.map +1 -1
  143. package/dist/src/modules/agents/registry/manager.js +3 -2
  144. package/dist/src/modules/agents/registry/manager.js.map +1 -1
  145. package/dist/src/modules/agents/registry/native.js +1 -1
  146. package/dist/src/modules/agents/registry/native.js.map +1 -1
  147. package/dist/src/modules/agents/registry/quality.js +1 -0
  148. package/dist/src/modules/agents/registry/quality.js.map +1 -1
  149. package/dist/src/modules/agents/registry/security.js +1 -0
  150. package/dist/src/modules/agents/registry/security.js.map +1 -1
  151. package/dist/src/shared/constants.d.ts +113 -0
  152. package/dist/src/shared/constants.js +178 -0
  153. package/dist/src/shared/constants.js.map +1 -0
  154. package/dist/tests/adapters/paths.test.d.ts +1 -0
  155. package/dist/tests/adapters/paths.test.js +63 -0
  156. package/dist/tests/adapters/paths.test.js.map +1 -0
  157. package/dist/tests/approve.test.js +5 -9
  158. package/dist/tests/approve.test.js.map +1 -1
  159. package/dist/tests/cli/init/unified_init.test.d.ts +1 -0
  160. package/dist/tests/cli/init/unified_init.test.js +47 -0
  161. package/dist/tests/cli/init/unified_init.test.js.map +1 -0
  162. package/dist/tests/fs-utils.test.js +1 -1
  163. package/dist/tests/fs-utils.test.js.map +1 -1
  164. package/dist/tests/memory-utils.test.js +1 -1
  165. package/dist/tests/memory-utils.test.js.map +1 -1
  166. package/dist/tests/shared/constants.test.d.ts +1 -0
  167. package/dist/tests/shared/constants.test.js +17 -0
  168. package/dist/tests/shared/constants.test.js.map +1 -0
  169. package/dist/tests/trace.test.js +2 -2
  170. package/dist/tests/trace.test.js.map +1 -1
  171. package/framework-mcp/dist/constants.js +64 -0
  172. package/framework-mcp/dist/index.js +109 -0
  173. package/framework-mcp/dist/tools/control_plane/locking.js +64 -0
  174. package/framework-mcp/dist/tools/control_plane/registry.js +34 -0
  175. package/framework-mcp/dist/tools/dashboard/start_dashboard.js +29 -0
  176. package/framework-mcp/dist/tools/definitions.js +300 -0
  177. package/framework-mcp/dist/tools/file_system/batch_surgical_edit.js +59 -0
  178. package/framework-mcp/dist/tools/file_system/patch_file.js +25 -0
  179. package/framework-mcp/dist/tools/file_system/read_file.js +51 -0
  180. package/framework-mcp/dist/tools/file_system/replace_text.js +43 -0
  181. package/framework-mcp/dist/tools/file_system/write_file.js +38 -0
  182. package/framework-mcp/dist/tools/framework/audit_deps.js +41 -0
  183. package/framework-mcp/dist/tools/framework/get_status.js +5 -0
  184. package/framework-mcp/dist/tools/framework/orchestrate.js +5 -0
  185. package/framework-mcp/dist/tools/framework/run_tests.js +25 -0
  186. package/framework-mcp/dist/tools/framework/update_contract_hash.js +5 -0
  187. package/framework-mcp/dist/tools/framework/update_memory.js +8 -0
  188. package/framework-mcp/dist/tools/index.js +62 -0
  189. package/framework-mcp/dist/tools/memory/get_insights.js +34 -0
  190. package/framework-mcp/dist/tools/memory/read_memory.js +28 -0
  191. package/framework-mcp/dist/tools/messaging/log_action.js +22 -0
  192. package/framework-mcp/dist/tools/messaging/send_message.js +87 -0
  193. package/framework-mcp/dist/tools/observability/check_ports.js +26 -0
  194. package/framework-mcp/dist/tools/observability/get_health.js +19 -0
  195. package/framework-mcp/dist/tools/quality/check_lint.js +28 -0
  196. package/framework-mcp/dist/tools/search/get_gaps.js +48 -0
  197. package/framework-mcp/dist/tools/search/get_map.js +43 -0
  198. package/framework-mcp/dist/tools/search/grep_search.js +76 -0
  199. package/framework-mcp/dist/tools/search/list_dir.js +28 -0
  200. package/framework-mcp/dist/tools/shell/run_command.js +46 -0
  201. package/framework-mcp/dist/tools/types.js +1 -0
  202. package/framework-mcp/dist/utils/cli.js +20 -0
  203. package/framework-mcp/dist/utils/compliance.js +29 -0
  204. package/framework-mcp/dist/utils/fs.js +44 -0
  205. package/framework-mcp/dist/utils/metrics.js +56 -0
  206. package/framework-mcp/dist/utils/security.js +60 -0
  207. package/framework-mcp/package.json +19 -0
  208. package/framework-mcp/src/constants.ts +78 -0
  209. package/framework-mcp/src/declarations.d.ts +17 -0
  210. package/framework-mcp/src/index.ts +132 -0
  211. package/framework-mcp/src/tools/control_plane/locking.ts +71 -0
  212. package/framework-mcp/src/tools/control_plane/registry.ts +38 -0
  213. package/framework-mcp/src/tools/dashboard/start_dashboard.ts +33 -0
  214. package/framework-mcp/src/tools/definitions.ts +302 -0
  215. package/framework-mcp/src/tools/file_system/batch_surgical_edit.ts +79 -0
  216. package/framework-mcp/src/tools/file_system/patch_file.ts +33 -0
  217. package/framework-mcp/src/tools/file_system/read_file.ts +58 -0
  218. package/framework-mcp/src/tools/file_system/replace_text.ts +52 -0
  219. package/framework-mcp/src/tools/file_system/write_file.ts +45 -0
  220. package/framework-mcp/src/tools/framework/audit_deps.ts +49 -0
  221. package/framework-mcp/src/tools/framework/get_status.ts +7 -0
  222. package/framework-mcp/src/tools/framework/orchestrate.ts +7 -0
  223. package/framework-mcp/src/tools/framework/run_tests.ts +28 -0
  224. package/framework-mcp/src/tools/framework/update_contract_hash.ts +7 -0
  225. package/framework-mcp/src/tools/framework/update_memory.ts +10 -0
  226. package/framework-mcp/src/tools/index.ts +66 -0
  227. package/framework-mcp/src/tools/memory/get_insights.ts +41 -0
  228. package/framework-mcp/src/tools/memory/read_memory.ts +31 -0
  229. package/framework-mcp/src/tools/messaging/log_action.ts +28 -0
  230. package/framework-mcp/src/tools/messaging/send_message.ts +89 -0
  231. package/framework-mcp/src/tools/observability/check_ports.ts +30 -0
  232. package/framework-mcp/src/tools/observability/get_health.ts +24 -0
  233. package/framework-mcp/src/tools/quality/check_lint.ts +33 -0
  234. package/framework-mcp/src/tools/search/get_gaps.ts +54 -0
  235. package/framework-mcp/src/tools/search/get_map.ts +48 -0
  236. package/framework-mcp/src/tools/search/grep_search.ts +76 -0
  237. package/framework-mcp/src/tools/search/list_dir.ts +34 -0
  238. package/framework-mcp/src/tools/shell/run_command.ts +56 -0
  239. package/framework-mcp/src/tools/types.ts +89 -0
  240. package/framework-mcp/src/utils/cli.ts +20 -0
  241. package/framework-mcp/src/utils/compliance.ts +37 -0
  242. package/framework-mcp/src/utils/fs.ts +45 -0
  243. package/framework-mcp/src/utils/metrics.ts +73 -0
  244. package/framework-mcp/src/utils/security.ts +66 -0
  245. package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +212 -0
  246. package/framework-mcp/tests/tools/messaging/send_message.test.ts +136 -0
  247. package/framework-mcp/tests/tools/quality/check_lint.test.ts +46 -0
  248. package/framework-mcp/tests/tools/shell/run_command.test.ts +55 -0
  249. package/framework-mcp/tsconfig.json +14 -0
  250. package/package.json +9 -7
  251. package/src/cli/adapters/core.ts +7 -1
  252. package/src/cli/adapters/index.ts +1 -0
  253. package/src/cli/adapters/paths.ts +134 -0
  254. package/src/cli/adapters/scaffold.ts +17 -7
  255. package/src/cli/commands/check.ts +16 -38
  256. package/src/cli/commands/dashboard/data-service.ts +48 -0
  257. package/src/cli/commands/init/scaffold-core.ts +45 -6
  258. package/src/cli/commands/init/scaffold-standards.ts +6 -1
  259. package/src/cli/commands/init.ts +32 -6
  260. package/src/cli/commands/orchestrate.ts +151 -127
  261. package/src/cli/commands/plan.ts +89 -23
  262. package/src/cli/index.ts +14 -19
  263. package/src/cli/utils/compliance.ts +8 -9
  264. package/src/cli/utils/fs.ts +1 -1
  265. package/src/cli/utils/memory.ts +32 -7
  266. package/src/cli/utils/pkg.ts +42 -13
  267. package/src/modules/adapters/definitions.ts +4 -3
  268. package/src/modules/agents/definitions.ts +2 -1
  269. package/src/modules/agents/registry/analyst.ts +1 -1
  270. package/src/modules/agents/registry/architect.ts +1 -0
  271. package/src/modules/agents/registry/backend.ts +7 -6
  272. package/src/modules/agents/registry/database.ts +4 -3
  273. package/src/modules/agents/registry/devops.ts +1 -1
  274. package/src/modules/agents/registry/git.ts +1 -1
  275. package/src/modules/agents/registry/manager.ts +3 -2
  276. package/src/modules/agents/registry/native.ts +1 -1
  277. package/src/modules/agents/registry/quality.ts +1 -0
  278. package/src/modules/agents/registry/security.ts +1 -0
  279. package/src/shared/constants.ts +212 -0
  280. package/templates/prompts/bug-fix-recipe.md +20 -0
  281. package/templates/prompts/contract-design-recipe.md +21 -0
  282. package/templates/prompts/db-management-recipe.md +25 -0
  283. package/templates/prompts/deployment-recipe.md +23 -0
  284. package/templates/prompts/new-feature-recipe.md +19 -0
  285. package/templates/prompts/performance-optimization-recipe.md +23 -0
  286. package/templates/prompts/pull-request-template.md +21 -0
  287. package/templates/prompts/refactoring-recipe.md +21 -0
  288. package/templates/prompts/security-audit-recipe.md +20 -0
  289. package/templates/standards/architecture-standards.md +23 -0
  290. package/templates/standards/auth-standards.md +125 -0
  291. package/templates/standards/crud-governance.md +21 -0
  292. package/templates/standards/deployment-standards.md +21 -0
  293. package/templates/standards/frontend-standards.md +37 -0
  294. package/templates/standards/github-actions-standards.md +43 -0
  295. package/templates/standards/i18n-standards.md +17 -0
  296. package/templates/standards/kysely-standards.md +47 -0
  297. package/templates/standards/llm-governance.md +15 -0
  298. package/templates/standards/logging-and-secrets.md +34 -0
  299. package/templates/standards/mobile-standards.md +23 -0
  300. package/templates/standards/observability-standards.md +15 -0
  301. package/templates/standards/performance-standards.md +15 -0
  302. package/templates/standards/pino-standards.md +46 -0
  303. package/templates/standards/playwright-standards.md +54 -0
  304. package/templates/standards/quality-standards.md +31 -0
  305. package/templates/standards/react-query-standards.md +72 -0
  306. package/templates/standards/react-router-standards.md +62 -0
  307. package/templates/standards/security-audit-standards.md +16 -0
  308. package/templates/standards/security-standards.md +21 -0
  309. package/templates/standards/swagger-standards.md +50 -0
  310. package/templates/standards/tailwind-standards.md +20 -0
  311. package/templates/standards/testing-standards.md +31 -0
  312. package/templates/standards/typeorm-standards.md +49 -0
  313. package/templates/standards/vitest-standards.md +110 -0
  314. package/bin/validate-agent-army.js +0 -148
  315. package/src/cli/commands/app.ts +0 -56
  316. package/src/cli/utils/app-backend.ts +0 -257
  317. package/src/cli/utils/app-docs.ts +0 -83
  318. package/src/cli/utils/app-frontend.ts +0 -263
  319. package/src/cli/utils/app-inferrer.ts +0 -63
  320. package/src/cli/utils/app-mobile.ts +0 -113
  321. package/src/cli/utils/app-types.ts +0 -248
  322. package/src/cli/utils/app.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"patch_file.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/patch_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAc;IAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAI,IAAI,CAAC,SAAoB,GAAG,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAiB,CAAC;IACnC,MAAM,UAAU,GAAI,IAAI,CAAC,UAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE3D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,GAAG,CAAC,cAAc,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,qBAAqB,KAAK,GAAG,CAAC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACnG,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;IAChD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,UAAoB,CAAC,CAAC;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAE1E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"patch_file.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/patch_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAmB;IACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,uBAAuB,KAAK,GAAG,CAAC,cAAc,KAAK,CAAC,MAAM,SAAS,CAAC;QAChF,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,qBAAqB,GAAG,qBAAqB,KAAK,GAAG,CAAC,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC;QAC1F,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;IAChD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,UAAoB,CAAC,CAAC;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAE1E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAC9F,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleReadFile(projectRoot: string, args: ToolArgs): ToolResult;
1
+ import { ReadFileArgs, ToolResult } from "../types.js";
2
+ export declare function handleReadFile(projectRoot: string, args: ReadFileArgs): ToolResult;
@@ -2,34 +2,51 @@ import fs from "fs";
2
2
  import { safePath } from "../../utils/security.js";
3
3
  import { Metrics } from "../../utils/metrics.js";
4
4
  export function handleReadFile(projectRoot, args) {
5
- const filePath = safePath(projectRoot, args.path);
6
- const startLine = args.startLine !== undefined ? Number(args.startLine) : undefined;
7
- const endLine = args.endLine !== undefined ? Number(args.endLine) : undefined;
8
- const content = fs.readFileSync(filePath, "utf8");
9
- const lines = content.split(/\r?\n/);
10
- if (startLine !== undefined || endLine !== undefined) {
11
- const start = startLine !== undefined ? Math.max(1, startLine) - 1 : 0;
12
- const end = endLine !== undefined ? Math.min(lines.length, endLine) : lines.length;
13
- const sliced = lines.slice(start, end).join("\n");
14
- const tokens = Metrics.estimateTokens(sliced);
5
+ if (!args.path) {
6
+ const err = "Missing 'path' argument.";
7
+ Metrics.logError(projectRoot, "@mcp", "read_file", err);
8
+ return { isError: true, content: [{ type: "text", text: `❌ ${err}` }] };
9
+ }
10
+ try {
11
+ const filePath = safePath(projectRoot, args.path);
12
+ if (!fs.existsSync(filePath)) {
13
+ const err = `File not found: ${args.path}`;
14
+ Metrics.logError(projectRoot, "@mcp", "read_file", err);
15
+ return { isError: true, content: [{ type: "text", text: `❌ ${err}` }] };
16
+ }
17
+ const startLine = args.startLine;
18
+ const endLine = args.endLine;
19
+ const content = fs.readFileSync(filePath, "utf8");
20
+ const lines = content.split(/\r?\n/);
21
+ if (startLine !== undefined || endLine !== undefined) {
22
+ const start = startLine !== undefined ? Math.max(1, startLine) - 1 : 0;
23
+ const end = endLine !== undefined ? Math.min(lines.length, endLine) : lines.length;
24
+ const sliced = lines.slice(start, end).join("\n");
25
+ const tokens = Metrics.estimateTokens(sliced);
26
+ Metrics.logUsage(projectRoot, "@mcp", `read_file: ${args.path}`, tokens);
27
+ return { content: [{ type: "text", text: sliced }] };
28
+ }
29
+ // Default protection limit: 1000 lines
30
+ const DEFAULT_MAX_LINES = 1000;
31
+ if (lines.length > DEFAULT_MAX_LINES) {
32
+ const sliced = lines.slice(0, DEFAULT_MAX_LINES).join("\n");
33
+ const tokens = Metrics.estimateTokens(sliced);
34
+ Metrics.logUsage(projectRoot, "@mcp", `read_file: ${args.path} (truncated)`, tokens);
35
+ return {
36
+ content: [{
37
+ type: "text",
38
+ 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.]`
39
+ }]
40
+ };
41
+ }
42
+ const tokens = Metrics.estimateTokens(content);
15
43
  Metrics.logUsage(projectRoot, "@mcp", `read_file: ${args.path}`, tokens);
16
- return { content: [{ type: "text", text: sliced }] };
44
+ return { content: [{ type: "text", text: content }] };
17
45
  }
18
- // Default protection limit: 1000 lines
19
- const DEFAULT_MAX_LINES = 1000;
20
- if (lines.length > DEFAULT_MAX_LINES) {
21
- const sliced = lines.slice(0, DEFAULT_MAX_LINES).join("\n");
22
- const tokens = Metrics.estimateTokens(sliced);
23
- Metrics.logUsage(projectRoot, "@mcp", `read_file: ${args.path} (truncated)`, tokens);
24
- return {
25
- content: [{
26
- type: "text",
27
- 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.]`
28
- }]
29
- };
46
+ catch (e) {
47
+ const err = `Failed to read file: ${String(e)}`;
48
+ Metrics.logError(projectRoot, "@mcp", `read_file:${args.path}`, err);
49
+ return { isError: true, content: [{ type: "text", text: `❌ ${err}` }] };
30
50
  }
31
- const tokens = Metrics.estimateTokens(content);
32
- Metrics.logUsage(projectRoot, "@mcp", `read_file: ${args.path}`, tokens);
33
- return { content: [{ type: "text", text: content }] };
34
51
  }
35
52
  //# sourceMappingURL=read_file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read_file.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/read_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,IAAc;IAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9E,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,IAAI,cAAc,EAAE,MAAM,CAAC,CAAC;QACrF,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG,MAAM,0CAA0C,KAAK,CAAC,MAAM,2BAA2B,iBAAiB,0FAA0F;iBAC9M,CAAC;SACL,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACzE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"read_file.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/read_file.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleReplaceText(projectRoot: string, args: ToolArgs): ToolResult;
1
+ import { ReplaceTextArgs, ToolResult } from "../types.js";
2
+ export declare function handleReplaceText(projectRoot: string, args: ReplaceTextArgs): ToolResult;
@@ -10,7 +10,9 @@ export function handleReplaceText(projectRoot, args) {
10
10
  const newText = args.newText;
11
11
  const allowMultiple = args.allowMultiple || false; // Default to false
12
12
  if (!content.includes(oldText)) {
13
- throw new Error(`Text not found in file: ${oldText.slice(0, 100)}...`);
13
+ const err = `Text not found in file: ${oldText.slice(0, 100)}...`;
14
+ Metrics.logError(projectRoot, "@mcp", `replace_text:${args.path}`, err);
15
+ throw new Error(err);
14
16
  }
15
17
  // Surgical precision guard: reject ambiguous replacements unless allowMultiple is true.
16
18
  if (!allowMultiple) {
@@ -18,8 +20,10 @@ export function handleReplaceText(projectRoot, args) {
18
20
  const lastIndex = content.lastIndexOf(oldText);
19
21
  if (firstIndex !== lastIndex) {
20
22
  const count = (content.match(new RegExp(oldText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g")) || []).length;
21
- throw new Error(`Ambiguous replacement: "${oldText.slice(0, 80)}..." found ${count} times in ${args.path}. ` +
22
- "Provide a longer, unique context string or set 'allow_multiple' to true.");
23
+ const err = `Ambiguous replacement: "${oldText.slice(0, 80)}..." found ${count} times in ${args.path}. ` +
24
+ "Provide a longer, unique context string or set 'allow_multiple' to true.";
25
+ Metrics.logError(projectRoot, "@mcp", `replace_text:${args.path}`, err);
26
+ throw new Error(err);
23
27
  }
24
28
  }
25
29
  // Perform replacement(s)
@@ -1 +1 @@
1
- {"version":3,"file":"replace_text.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/replace_text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,IAAc;IACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,mBAAmB;IAEtE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,wFAAwF;IACxF,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC5G,MAAM,IAAI,KAAK,CACX,2BAA2B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,KAAK,aAAa,IAAI,CAAC,IAAI,IAAI;gBAC5F,0EAA0E,CAC7E,CAAC;QACN,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,IAAI,UAAkB,CAAC;IACvB,IAAI,aAAa,EAAE,CAAC;QAChB,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3G,CAAC;SAAM,CAAC;QACJ,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,+BAA+B;IAC/B,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;IAE3D,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAE5E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAC/F,CAAC"}
1
+ {"version":3,"file":"replace_text.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/replace_text.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleWriteFile(projectRoot: string, args: ToolArgs): ToolResult;
1
+ import { WriteFileArgs, ToolResult } from "../types.js";
2
+ export declare function handleWriteFile(projectRoot: string, args: WriteFileArgs): ToolResult;
@@ -5,23 +5,35 @@ import { writeTextFileAtomic, appendFileSafe } from "../../utils/fs.js";
5
5
  import { Metrics } from "../../utils/metrics.js";
6
6
  import { verifyCorporateCompliance } from "../../utils/compliance.js";
7
7
  export function handleWriteFile(projectRoot, args) {
8
- const filePath = safePath(projectRoot, args.path);
9
- const content = args.content;
10
- // ENFORCE CORPORATE COMPLIANCE
11
- verifyCorporateCompliance(content, args.path);
12
- writeTextFileAtomic(filePath, content);
13
- // AUTO-LOGGING & METRICS
14
- const tokens = Metrics.estimateTokens(content);
15
- Metrics.logUsage(projectRoot, "@mcp", `write_file: ${args.path}`, tokens);
8
+ if (!args.path || args.content === undefined) {
9
+ const err = "Missing 'path' or 'content' argument.";
10
+ Metrics.logError(projectRoot, "@mcp", "write_file", err);
11
+ return { isError: true, content: [{ type: "text", text: `❌ ${err}` }] };
12
+ }
16
13
  try {
17
- const frameworkDir = resolveFrameworkDir(projectRoot);
18
- const memoryPath = path.join(projectRoot, frameworkDir, "memory/PROJECT_MEMORY.md");
19
- if (fs.existsSync(memoryPath)) {
20
- const entry = `\n### ${new Date().toISOString().split("T")[0]} — Auto-Update\n- **Action:** wrote file \`${args.path}\` (${tokens} tokens estimated).\n`;
21
- appendFileSafe(memoryPath, entry);
14
+ const filePath = safePath(projectRoot, args.path);
15
+ const content = args.content;
16
+ // ENFORCE CORPORATE COMPLIANCE
17
+ verifyCorporateCompliance(content, args.path);
18
+ writeTextFileAtomic(filePath, content);
19
+ // AUTO-LOGGING & METRICS
20
+ const tokens = Metrics.estimateTokens(content);
21
+ Metrics.logUsage(projectRoot, "@mcp", `write_file: ${args.path}`, tokens);
22
+ try {
23
+ const frameworkDir = resolveFrameworkDir(projectRoot);
24
+ const memoryPath = path.join(projectRoot, frameworkDir, "memory/PROJECT_MEMORY.md");
25
+ if (fs.existsSync(memoryPath)) {
26
+ const entry = `\n### ${new Date().toISOString().split("T")[0]} — Auto-Update\n- **Action:** wrote file \`${args.path}\` (${tokens} tokens estimated).\n`;
27
+ appendFileSafe(memoryPath, entry);
28
+ }
22
29
  }
30
+ catch { /* ignore memory logging errors */ }
31
+ return { content: [{ type: "text", text: `✅ File written: ${args.path}` }] };
32
+ }
33
+ catch (e) {
34
+ const err = `Failed to write file: ${String(e)}`;
35
+ Metrics.logError(projectRoot, "@mcp", `write_file:${args.path}`, err);
36
+ return { isError: true, content: [{ type: "text", text: `❌ ${err}` }] };
23
37
  }
24
- catch { /* ignore memory logging errors */ }
25
- return { content: [{ type: "text", text: `✅ File written: ${args.path}` }] };
26
38
  }
27
39
  //# sourceMappingURL=write_file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write_file.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/write_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAc;IAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;IAEvC,+BAA+B;IAC/B,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;IAExD,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEvC,yBAAyB;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAE1E,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,0BAA0B,CAAC,CAAC;QACpF,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,8CAA8C,IAAI,CAAC,IAAI,OAAO,MAAM,uBAAuB,CAAC;YACzJ,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAE9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"write_file.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/file_system/write_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAmB;IACpE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,uCAAuC,CAAC;QACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,+BAA+B;QAC/B,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEvC,yBAAyB;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAE1E,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,0BAA0B,CAAC,CAAC;YACpF,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,8CAA8C,IAAI,CAAC,IAAI,OAAO,MAAM,uBAAuB,CAAC;gBACzJ,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;QAE9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;IACjF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,GAAG,GAAG,yBAAyB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;AACL,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleGetFrameworkStatus(projectRoot: string, args: ToolArgs): ToolResult;
1
+ import { GetStatusArgs, ToolResult } from "../types.js";
2
+ export declare function handleGetFrameworkStatus(projectRoot: string, args: GetStatusArgs): ToolResult;
@@ -1 +1 @@
1
- {"version":3,"file":"get_status.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/get_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,IAAc;IACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"get_status.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/get_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,IAAmB;IAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleOrchestrateLoop(projectRoot: string, args: ToolArgs): ToolResult;
1
+ import { OrchestrateArgs, ToolResult } from "../types.js";
2
+ export declare function handleOrchestrateLoop(projectRoot: string, args: OrchestrateArgs): ToolResult;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/orchestrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,IAAc;IACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/orchestrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,IAAqB;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC"}
@@ -1,5 +1,5 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
1
+ import { RunTestsArgs, ToolResult } from "../types.js";
2
2
  /**
3
3
  * Executes project tests and returns results for agent analysis.
4
4
  */
5
- export declare function handleRunTests(projectRoot: string, args: ToolArgs): ToolResult;
5
+ export declare function handleRunTests(projectRoot: string, args: RunTestsArgs): ToolResult;
@@ -1 +1 @@
1
- {"version":3,"file":"run_tests.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/run_tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,IAAc;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAiB,IAAI,UAAU,CAAC;IAEzD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5F,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,MAAM,EAAE,EAAE,CAAC;SACjF,CAAC;IACN,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,KAA6C,CAAC;QAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE5C,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sCAAsC,MAAM,uBAAuB,MAAM,EAAE;iBACpF,CAAC;SACL,CAAC;IACN,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"run_tests.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/run_tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,IAAkB;IAClE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC;IAE/C,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5F,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,MAAM,EAAE,EAAE,CAAC;SACjF,CAAC;IACN,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,KAA6C,CAAC;QAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE5C,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sCAAsC,MAAM,uBAAuB,MAAM,EAAE;iBACpF,CAAC;SACL,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleUpdateContractHash(projectRoot: string, args: ToolArgs): ToolResult;
1
+ import { UpdateContractHashArgs, ToolResult } from "../types.js";
2
+ export declare function handleUpdateContractHash(projectRoot: string, args: UpdateContractHashArgs): ToolResult;
@@ -1 +1 @@
1
- {"version":3,"file":"update_contract_hash.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/update_contract_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,IAAc;IACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAChG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"update_contract_hash.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/update_contract_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,IAA4B;IACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAChG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleUpdateProjectMemory(projectRoot: string, args: ToolArgs): ToolResult;
1
+ import { UpdateProjectMemoryArgs, ToolResult } from "../types.js";
2
+ export declare function handleUpdateProjectMemory(projectRoot: string, args: UpdateProjectMemoryArgs): ToolResult;
@@ -3,7 +3,7 @@ export function handleUpdateProjectMemory(projectRoot, args) {
3
3
  const section = args.section;
4
4
  const content = args.content;
5
5
  // Using execFileSync with array args prevents command injection
6
- safeExec("npx", ["agent-enderun", "update_project_memory", section, content], projectRoot, args.timeout);
6
+ safeExec("npx", ["agent-enderun", "update_project_memory", section, content], projectRoot);
7
7
  return { content: [{ type: "text", text: `✅ Section ${section} updated.` }] };
8
8
  }
9
9
  //# sourceMappingURL=update_memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update_memory.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/update_memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,IAAc;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;IACvC,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,OAAO,WAAW,EAAE,CAAC,EAAE,CAAC;AAClF,CAAC"}
1
+ {"version":3,"file":"update_memory.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/framework/update_memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,IAA6B;IACxF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,OAAO,WAAW,EAAE,CAAC,EAAE,CAAC;AAClF,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { TOOLS } from "./definitions.js";
2
- import { ToolResult, ToolArgs } from "./types.js";
3
- export type ToolHandler = (projectRoot: string, args: ToolArgs) => ToolResult | Promise<ToolResult>;
2
+ import { ToolHandler } from "./types.js";
4
3
  export declare const toolHandlers: Record<string, ToolHandler>;
5
4
  export { TOOLS };
@@ -23,33 +23,41 @@ import { handleSendAgentMessage } from "./messaging/send_message.js";
23
23
  import { handleLogAgentAction } from "./messaging/log_action.js";
24
24
  import { handleAcquireLock, handleReleaseLock } from "./control_plane/locking.js";
25
25
  import { handleRegisterAgent } from "./control_plane/registry.js";
26
+ import { handleRunCommand } from "./shell/run_command.js";
27
+ import { handleCheckLint } from "./quality/check_lint.js";
26
28
  // Map of tool names to their handler functions
29
+ const bind = (fn) => {
30
+ return (root, args) => fn(root, args);
31
+ };
27
32
  export const toolHandlers = {
28
- read_file: handleReadFile,
29
- list_dir: handleListDir,
30
- grep_search: handleGrepSearch,
31
- get_project_map: handleGetProjectMap,
32
- get_project_gaps: handleGetProjectGaps,
33
- write_file: handleWriteFile,
34
- replace_text: handleReplaceText,
35
- batch_surgical_edit: handleBatchSurgicalEdit,
36
- patch_file: handlePatchFile,
37
- get_framework_status: handleGetFrameworkStatus,
38
- read_project_memory: handleReadProjectMemory,
39
- get_memory_insights: handleGetMemoryInsights,
40
- update_project_memory: handleUpdateProjectMemory,
41
- audit_dependencies: handleAuditDependencies,
42
- run_tests: handleRunTests,
43
- get_system_health: handleGetSystemHealth,
44
- check_active_ports: handleCheckPorts,
45
- start_dashboard: handleStartDashboard,
46
- orchestrate_loop: handleOrchestrateLoop,
47
- send_agent_message: handleSendAgentMessage,
48
- log_agent_action: handleLogAgentAction,
49
- update_contract_hash: handleUpdateContractHash,
50
- acquire_lock: handleAcquireLock,
51
- release_lock: handleReleaseLock,
52
- register_agent: handleRegisterAgent,
33
+ read_file: bind(handleReadFile),
34
+ view_file: bind(handleReadFile), // Alias
35
+ list_dir: bind(handleListDir),
36
+ grep_search: bind(handleGrepSearch),
37
+ get_project_map: bind(handleGetProjectMap),
38
+ get_project_gaps: bind(handleGetProjectGaps),
39
+ write_file: bind(handleWriteFile),
40
+ replace_text: bind(handleReplaceText),
41
+ batch_surgical_edit: bind(handleBatchSurgicalEdit),
42
+ patch_file: bind(handlePatchFile),
43
+ get_framework_status: bind(handleGetFrameworkStatus),
44
+ read_project_memory: bind(handleReadProjectMemory),
45
+ get_memory_insights: bind(handleGetMemoryInsights),
46
+ update_project_memory: bind(handleUpdateProjectMemory),
47
+ audit_dependencies: bind(handleAuditDependencies),
48
+ run_tests: bind(handleRunTests),
49
+ get_system_health: bind(handleGetSystemHealth),
50
+ check_active_ports: bind(handleCheckPorts),
51
+ start_dashboard: bind(handleStartDashboard),
52
+ orchestrate_loop: bind(handleOrchestrateLoop),
53
+ send_agent_message: bind(handleSendAgentMessage),
54
+ log_agent_action: bind(handleLogAgentAction),
55
+ update_contract_hash: bind(handleUpdateContractHash),
56
+ acquire_lock: bind(handleAcquireLock),
57
+ release_lock: bind(handleReleaseLock),
58
+ register_agent: bind(handleRegisterAgent),
59
+ run_shell_command: bind(handleRunCommand),
60
+ check_lint: bind(handleCheckLint),
53
61
  };
54
62
  export { TOOLS };
55
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAMlE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAgC;IACrD,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,gBAAgB;IAC7B,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,oBAAoB;IACtC,UAAU,EAAE,eAAe;IAC3B,YAAY,EAAE,iBAAiB;IAC/B,mBAAmB,EAAE,uBAAuB;IAC5C,UAAU,EAAE,eAAe;IAC3B,oBAAoB,EAAE,wBAAwB;IAC9C,mBAAmB,EAAE,uBAAuB;IAC5C,mBAAmB,EAAE,uBAAuB;IAC5C,qBAAqB,EAAE,yBAAyB;IAChD,kBAAkB,EAAE,uBAAuB;IAC3C,SAAS,EAAE,cAAc;IACzB,iBAAiB,EAAE,qBAAqB;IACxC,kBAAkB,EAAE,gBAAgB;IACpC,eAAe,EAAE,oBAAoB;IACrC,gBAAgB,EAAE,qBAAqB;IACvC,kBAAkB,EAAE,sBAAsB;IAC1C,gBAAgB,EAAE,oBAAoB;IACtC,oBAAoB,EAAE,wBAAwB;IAC9C,YAAY,EAAE,iBAAgC;IAC9C,YAAY,EAAE,iBAAgC;IAC9C,cAAc,EAAE,mBAAkC;CACrD,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../framework-mcp/src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleLogAgentAction(projectRoot: string, args: ToolArgs): ToolResult;
1
+ import { LogAgentActionArgs, ToolResult } from "../types.js";
2
+ export declare function handleLogAgentAction(projectRoot: string, args: LogAgentActionArgs): ToolResult;
@@ -1 +1 @@
1
- {"version":3,"file":"log_action.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/messaging/log_action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,IAAc;IACpE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAuF,CAAC;IAC5I,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElF,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,SAAS,GAAI,KAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAG;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,MAAM;QACN,SAAS,EAAE,OAAO;QAClB,MAAM;QACN,OAAO;QACP,QAAQ;KACX,CAAC;IAEF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5I,CAAC"}
1
+ {"version":3,"file":"log_action.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/messaging/log_action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,IAAwB;IAC9E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElF,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAG;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,MAAM;QACN,SAAS,EAAE,OAAO;QAClB,MAAM;QACN,OAAO;QACP,QAAQ;KACX,CAAC;IAEF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5I,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
2
- export declare function handleSendAgentMessage(projectRoot: string, args: ToolArgs): Promise<ToolResult>;
1
+ import { SendAgentMessageArgs, ToolResult } from "../types.js";
2
+ export declare function handleSendAgentMessage(projectRoot: string, args: SendAgentMessageArgs): Promise<ToolResult>;
@@ -1,9 +1,15 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
3
  import { resolveFrameworkDir } from "../../utils/security.js";
4
+ import { Metrics } from "../../utils/metrics.js";
4
5
  export async function handleSendAgentMessage(projectRoot, args) {
5
6
  const { to, category, content, traceId } = args;
6
7
  const from = args.from || "@mcp";
8
+ if (!to || !category || !content || !traceId) {
9
+ const err = "Missing required messaging arguments (to, category, content, or traceId).";
10
+ Metrics.logError(projectRoot, from, "send_agent_message", err);
11
+ return { isError: true, content: [{ type: "text", text: `❌ ${err}` }] };
12
+ }
7
13
  const frameworkDir = resolveFrameworkDir(projectRoot);
8
14
  const messagesDir = path.join(projectRoot, frameworkDir, "messages");
9
15
  const agentName = to.replace("@", "");
@@ -44,7 +50,9 @@ export async function handleSendAgentMessage(projectRoot, args) {
44
50
  }
45
51
  }
46
52
  if (!acquired) {
47
- return { content: [{ type: "text", text: `❌ Could not send message to ${to}: Hermes lock is busy.` }], isError: true };
53
+ const err = `Could not send message to ${to}: Hermes lock is busy.`;
54
+ Metrics.logError(projectRoot, from, "send_agent_message", err);
55
+ return { content: [{ type: "text", text: `❌ ${err}` }], isError: true };
48
56
  }
49
57
  try {
50
58
  const defaultPriority = (category === "ALERT" || category === "ACTION") ? "HIGH" : "NORMAL";
@@ -61,6 +69,11 @@ export async function handleSendAgentMessage(projectRoot, args) {
61
69
  fs.appendFileSync(messagePath, JSON.stringify(message) + "\n");
62
70
  return { content: [{ type: "text", text: `✅ Message sent to ${to} (from: ${from})` }] };
63
71
  }
72
+ catch (e) {
73
+ const err = `Failed to write message: ${String(e)}`;
74
+ Metrics.logError(projectRoot, from, "send_agent_message", err);
75
+ return { isError: true, content: [{ type: "text", text: `❌ ${err}` }] };
76
+ }
64
77
  finally {
65
78
  if (acquired && fs.existsSync(lockPath)) {
66
79
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"send_message.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/messaging/send_message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send_message.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/messaging/send_message.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
1
+ import { CheckActivePortsArgs, ToolResult } from "../types.js";
2
2
  /**
3
3
  * Checks for active network ports and their status.
4
4
  */
5
- export declare function handleCheckPorts(projectRoot: string, args: ToolArgs): ToolResult;
5
+ export declare function handleCheckPorts(projectRoot: string, args: CheckActivePortsArgs): ToolResult;
@@ -1 +1 @@
1
- {"version":3,"file":"check_ports.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/observability/check_ports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,IAAc;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,IAAI,EAAE,CAAC,CAAC,kCAAkC;IAE9E,IAAI,CAAC;QACD,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;YACxC,CAAC,CAAC,oCAAoC,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,CAAC,CAAC,+BAA+B,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAExE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvD,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,qCAAqC,MAAM,IAAI,kDAAkD,EAAE;iBAC5G,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACV,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sFAAsF,EAAE,CAAC;SAC5H,CAAC;IACN,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"check_ports.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/observability/check_ports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,IAA0B;IAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,kCAAkC;IAEpE,IAAI,CAAC;QACD,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;YACxC,CAAC,CAAC,oCAAoC,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,CAAC,CAAC,+BAA+B,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAExE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvD,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,qCAAqC,MAAM,IAAI,kDAAkD,EAAE;iBAC5G,CAAC;SACL,CAAC;IACN,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACV,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sFAAsF,EAAE,CAAC;SAC5H,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ToolArgs, ToolResult } from "../types.js";
2
+ /**
3
+ * Handles running the project's linter.
4
+ */
5
+ export declare function handleCheckLint(projectRoot: string, _args: ToolArgs): Promise<ToolResult>;
@@ -0,0 +1,29 @@
1
+ import { exec } from "child_process";
2
+ import { Metrics } from "../../utils/metrics.js";
3
+ const LINT_COMMAND = "npm run lint";
4
+ const TIMEOUT = 60000; // 60 seconds
5
+ /**
6
+ * Handles running the project's linter.
7
+ */
8
+ export function handleCheckLint(projectRoot, _args) {
9
+ return new Promise((resolve) => {
10
+ exec(LINT_COMMAND, { cwd: projectRoot, timeout: TIMEOUT }, (error, stdout, stderr) => {
11
+ const output = stdout + stderr;
12
+ const tokens = Metrics.estimateTokens(output);
13
+ if (error) {
14
+ const err = `Linting failed: ${error.message}`;
15
+ Metrics.logError(projectRoot, "@mcp", "check_lint", err);
16
+ resolve({
17
+ isError: true,
18
+ content: [{ type: "text", text: `❌ Lint Errors Found:\n\n${output}` }]
19
+ });
20
+ return;
21
+ }
22
+ Metrics.logUsage(projectRoot, "@mcp", "check_lint", tokens);
23
+ resolve({
24
+ content: [{ type: "text", text: `✅ Lint check passed successfully:\n\n${output}` }]
25
+ });
26
+ });
27
+ });
28
+ }
29
+ //# sourceMappingURL=check_lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check_lint.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/quality/check_lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa;AAEpC;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,KAAe;IAChE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACjF,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAE9C,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,GAAG,GAAG,mBAAmB,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;gBACzD,OAAO,CAAC;oBACJ,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,MAAM,EAAE,EAAE,CAAC;iBACzE,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAC5D,OAAO,CAAC;gBACJ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wCAAwC,MAAM,EAAE,EAAE,CAAC;aACtF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,6 +1,6 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
1
+ import { GetProjectGapsArgs, ToolResult } from "../types.js";
2
2
  /**
3
3
  * Scans the codebase for TODOs, FIXMEs, and empty function bodies.
4
4
  * Helps identify what's left and where the agent might have skipped logic.
5
5
  */
6
- export declare function handleGetProjectGaps(projectRoot: string, args: ToolArgs): ToolResult;
6
+ export declare function handleGetProjectGaps(projectRoot: string, args: GetProjectGapsArgs): ToolResult;
@@ -1 +1 @@
1
- {"version":3,"file":"get_gaps.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/search/get_gaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,IAAc;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAc,IAAI,KAAK,CAAC,CAAC;IACnE,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;QACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE1D,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtC,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC1B,sBAAsB;oBACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,KAAK,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAChF,CAAC;oBAED,sDAAsD;oBACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBAC7F,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,KAAK,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC7E,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,CAAC;IAEb,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;oBACpB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAChE,CAAC,CAAC,0DAA0D;aACnE,CAAC;KACL,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"get_gaps.js","sourceRoot":"","sources":["../../../../../framework-mcp/src/tools/search/get_gaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,IAAwB;IAC9E,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;IACzD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;QACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE1D,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtC,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC1B,sBAAsB;oBACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,KAAK,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAChF,CAAC;oBAED,sDAAsD;oBACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBAC7F,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,KAAK,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC7E,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,CAAC;IAEb,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;oBACpB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAChE,CAAC,CAAC,0DAA0D;aACnE,CAAC;KACL,CAAC;AACN,CAAC"}
@@ -1,6 +1,6 @@
1
- import { ToolArgs, ToolResult } from "../types.js";
1
+ import { GetProjectMapArgs, ToolResult } from "../types.js";
2
2
  /**
3
3
  * Generates a tree-view map of the project structure.
4
4
  * Helps agents visualize the entire project layout quickly.
5
5
  */
6
- export declare function handleGetProjectMap(projectRoot: string, args: ToolArgs): ToolResult;
6
+ export declare function handleGetProjectMap(projectRoot: string, args: GetProjectMapArgs): ToolResult;
@@ -5,7 +5,7 @@ import path from "path";
5
5
  * Helps agents visualize the entire project layout quickly.
6
6
  */
7
7
  export function handleGetProjectMap(projectRoot, args) {
8
- const maxDepth = Number(args.maxDepth) || 3;
8
+ const maxDepth = args.maxDepth || 3;
9
9
  const includeFiles = args.includeFiles !== false;
10
10
  const buildTree = (dir, depth) => {
11
11
  if (depth > maxDepth)