agent-enderun 1.1.8 → 1.1.10

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 (670) hide show
  1. package/README.md +18 -277
  2. package/bin/enderun-dashboard.js +13 -13
  3. package/bin/utils/docgen.ts +24 -0
  4. package/dist/src/cli/adapters/core.d.ts +12 -0
  5. package/dist/src/cli/adapters/core.js +44 -0
  6. package/dist/src/cli/adapters/core.js.map +1 -0
  7. package/dist/src/cli/adapters/index.d.ts +4 -0
  8. package/dist/src/cli/adapters/index.js +5 -0
  9. package/dist/src/cli/adapters/index.js.map +1 -0
  10. package/dist/src/cli/adapters/scaffold.d.ts +2 -0
  11. package/dist/src/cli/adapters/scaffold.js +64 -0
  12. package/dist/src/cli/adapters/scaffold.js.map +1 -0
  13. package/dist/src/cli/adapters/utils.d.ts +4 -0
  14. package/dist/src/cli/adapters/utils.js +77 -0
  15. package/dist/src/cli/adapters/utils.js.map +1 -0
  16. package/dist/src/cli/commands/check.js +10 -62
  17. package/dist/src/cli/commands/check.js.map +1 -1
  18. package/dist/src/cli/commands/init.js +13 -22
  19. package/dist/src/cli/commands/init.js.map +1 -1
  20. package/dist/src/cli/commands/orchestrate.d.ts +9 -9
  21. package/dist/src/cli/commands/orchestrate.js +58 -89
  22. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  23. package/dist/src/cli/commands/plan.d.ts +4 -0
  24. package/dist/src/cli/commands/plan.js +40 -0
  25. package/dist/src/cli/commands/plan.js.map +1 -0
  26. package/dist/src/cli/commands/status.js +27 -78
  27. package/dist/src/cli/commands/status.js.map +1 -1
  28. package/dist/src/cli/commands/trace.js +18 -31
  29. package/dist/src/cli/commands/trace.js.map +1 -1
  30. package/dist/src/cli/index.js +6 -2
  31. package/dist/src/cli/index.js.map +1 -1
  32. package/dist/src/cli/utils/compliance.d.ts +7 -0
  33. package/dist/src/cli/utils/compliance.js +50 -0
  34. package/dist/src/cli/utils/compliance.js.map +1 -0
  35. package/dist/src/cli/utils/fs.d.ts +1 -1
  36. package/dist/src/cli/utils/fs.js +1 -1
  37. package/dist/src/cli/utils/fs.js.map +1 -1
  38. package/dist/src/cli/utils/memory.d.ts +12 -4
  39. package/dist/src/cli/utils/memory.js +111 -147
  40. package/dist/src/cli/utils/memory.js.map +1 -1
  41. package/dist/src/cli/utils/pkg.js +1 -1
  42. package/dist/src/cli/utils/schemas.d.ts +49 -0
  43. package/dist/src/cli/utils/schemas.js +20 -0
  44. package/dist/src/cli/utils/schemas.js.map +1 -0
  45. package/dist/src/cli/utils/string.d.ts +1 -0
  46. package/dist/src/cli/utils/string.js +10 -4
  47. package/dist/src/cli/utils/string.js.map +1 -1
  48. package/dist/src/cli/utils/ui.js +7 -4
  49. package/dist/src/cli/utils/ui.js.map +1 -1
  50. package/dist/src/contracts/index.d.ts +1 -0
  51. package/dist/src/contracts/index.js +2 -0
  52. package/dist/src/contracts/index.js.map +1 -0
  53. package/dist/src/contracts/tasks.d.ts +44 -0
  54. package/dist/src/contracts/tasks.js +21 -0
  55. package/dist/src/contracts/tasks.js.map +1 -0
  56. package/dist/src/modules/adapters/definitions.d.ts +1 -1
  57. package/dist/src/modules/adapters/shared.js +9 -3
  58. package/dist/src/modules/adapters/shared.js.map +1 -1
  59. package/dist/src/modules/adapters/types.d.ts +2 -2
  60. package/dist/src/modules/agents/definitions.d.ts +38 -5
  61. package/dist/src/modules/agents/definitions.js +696 -93
  62. package/dist/src/modules/agents/definitions.js.map +1 -1
  63. package/dist/src/shared/fs.d.ts +1 -0
  64. package/dist/src/shared/fs.js +8 -0
  65. package/dist/src/shared/fs.js.map +1 -1
  66. package/dist/src/shared/logger.js +3 -6
  67. package/dist/src/shared/logger.js.map +1 -1
  68. package/dist/tests/adapter.test.js +1 -1
  69. package/dist/tests/adapter.test.js.map +1 -1
  70. package/dist/tests/agents-definitions.test.js +19 -13
  71. package/dist/tests/agents-definitions.test.js.map +1 -1
  72. package/dist/tests/approve.test.js +24 -58
  73. package/dist/tests/approve.test.js.map +1 -1
  74. package/dist/tests/cli/init/adapter_init.test.js +39 -0
  75. package/dist/tests/cli/init/adapter_init.test.js.map +1 -0
  76. package/dist/tests/integration/agent_flow.test.js +53 -0
  77. package/dist/tests/integration/agent_flow.test.js.map +1 -0
  78. package/dist/tests/memory-utils.test.js +28 -144
  79. package/dist/tests/memory-utils.test.js.map +1 -1
  80. package/dist/tests/modules/adapters/adapters.test.js +30 -0
  81. package/dist/tests/modules/adapters/adapters.test.js.map +1 -0
  82. package/dist/tests/orchestrate.test.js +28 -92
  83. package/dist/tests/orchestrate.test.js.map +1 -1
  84. package/dist/tests/status.test.js +27 -85
  85. package/dist/tests/status.test.js.map +1 -1
  86. package/dist/tests/time.test.js +1 -1
  87. package/dist/tests/trace.test.js +15 -48
  88. package/dist/tests/trace.test.js.map +1 -1
  89. package/package.json +5 -18
  90. package/src/cli/adapters/core.ts +54 -0
  91. package/src/cli/adapters/index.ts +4 -0
  92. package/src/cli/adapters/scaffold.ts +77 -0
  93. package/src/cli/adapters/utils.ts +87 -0
  94. package/src/cli/commands/check.ts +10 -62
  95. package/src/cli/commands/init.ts +13 -22
  96. package/src/cli/commands/orchestrate.ts +62 -88
  97. package/src/cli/commands/plan.ts +47 -0
  98. package/src/cli/commands/status.ts +26 -74
  99. package/src/cli/commands/trace.ts +18 -33
  100. package/src/cli/index.ts +6 -2
  101. package/src/cli/utils/compliance.ts +66 -0
  102. package/src/cli/utils/fs.ts +2 -2
  103. package/src/cli/utils/memory.ts +118 -156
  104. package/src/cli/utils/pkg.ts +1 -1
  105. package/src/cli/utils/schemas.ts +22 -0
  106. package/src/cli/utils/string.ts +11 -4
  107. package/src/cli/utils/ui.ts +7 -4
  108. package/src/contracts/index.ts +1 -0
  109. package/src/contracts/tasks.ts +26 -0
  110. package/src/modules/adapters/definitions.ts +1 -1
  111. package/src/modules/adapters/shared.ts +9 -3
  112. package/src/modules/adapters/types.ts +2 -2
  113. package/src/modules/agents/definitions.ts +816 -103
  114. package/src/shared/fs.ts +9 -0
  115. package/src/shared/logger.ts +3 -6
  116. package/.github/workflows/ci.yml +0 -40
  117. package/ENDERUN.md +0 -264
  118. package/bin/compile.js +0 -21
  119. package/bin/generate-cursor-rules.js +0 -78
  120. package/bin/hermes-sandbox.js +0 -145
  121. package/bin/run-multi-test.js +0 -77
  122. package/bin/test-init-run.js +0 -147
  123. package/bin/watch-memory.js +0 -54
  124. package/dist/init-adapters/antigravity-cli/.agents/BRAIN_DASHBOARD.md +0 -11
  125. package/dist/init-adapters/antigravity-cli/.agents/STATUS.md +0 -3
  126. package/dist/init-adapters/antigravity-cli/.agents/agents/analyst/agent.json +0 -28
  127. package/dist/init-adapters/antigravity-cli/.agents/agents/architect/agent.json +0 -30
  128. package/dist/init-adapters/antigravity-cli/.agents/agents/backend/agent.json +0 -30
  129. package/dist/init-adapters/antigravity-cli/.agents/agents/database/agent.json +0 -29
  130. package/dist/init-adapters/antigravity-cli/.agents/agents/devops/agent.json +0 -28
  131. package/dist/init-adapters/antigravity-cli/.agents/agents/explorer/agent.json +0 -29
  132. package/dist/init-adapters/antigravity-cli/.agents/agents/frontend/agent.json +0 -29
  133. package/dist/init-adapters/antigravity-cli/.agents/agents/git/agent.json +0 -28
  134. package/dist/init-adapters/antigravity-cli/.agents/agents/manager/agent.json +0 -30
  135. package/dist/init-adapters/antigravity-cli/.agents/agents/mobile/agent.json +0 -29
  136. package/dist/init-adapters/antigravity-cli/.agents/agents/native/agent.json +0 -29
  137. package/dist/init-adapters/antigravity-cli/.agents/agents/quality/agent.json +0 -29
  138. package/dist/init-adapters/antigravity-cli/.agents/agents/security/agent.json +0 -29
  139. package/dist/init-adapters/antigravity-cli/.agents/cli-commands.json +0 -32
  140. package/dist/init-adapters/antigravity-cli/.agents/config.json +0 -12
  141. package/dist/init-adapters/antigravity-cli/.agents/knowledge/agents-manifest.md +0 -79
  142. package/dist/init-adapters/antigravity-cli/.agents/knowledge/approval-flows.md +0 -61
  143. package/dist/init-adapters/antigravity-cli/.agents/knowledge/component-patterns.md +0 -91
  144. package/dist/init-adapters/antigravity-cli/.agents/knowledge/data-fetching-patterns.md +0 -13
  145. package/dist/init-adapters/antigravity-cli/.agents/knowledge/design-system.md +0 -31
  146. package/dist/init-adapters/antigravity-cli/.agents/knowledge/enterprise-architecture.md +0 -69
  147. package/dist/init-adapters/antigravity-cli/.agents/knowledge/error-handling.md +0 -74
  148. package/dist/init-adapters/antigravity-cli/.agents/knowledge/eslint-standards.md +0 -10
  149. package/dist/init-adapters/antigravity-cli/.agents/knowledge/logging.md +0 -7
  150. package/dist/init-adapters/antigravity-cli/.agents/knowledge/tech-stack.md +0 -9
  151. package/dist/init-adapters/antigravity-cli/.agents/mcp_config.json +0 -13
  152. package/dist/init-adapters/antigravity-cli/.agents/memory/DECISIONS.md +0 -10
  153. package/dist/init-adapters/antigravity-cli/.agents/memory/PROJECT_MEMORY.md +0 -8
  154. package/dist/init-adapters/antigravity-cli/.agents/observability/audit_log.md +0 -5
  155. package/dist/init-adapters/antigravity-cli/.agents/observability/telemetry.md +0 -6
  156. package/dist/init-adapters/antigravity-cli/.agents/registry/agent_registry.md +0 -18
  157. package/dist/init-adapters/antigravity-cli/.agents/router/routing_rules.md +0 -8
  158. package/dist/init-adapters/antigravity-cli/.agents/rules/analyst.md +0 -16
  159. package/dist/init-adapters/antigravity-cli/.agents/rules/architect.md +0 -16
  160. package/dist/init-adapters/antigravity-cli/.agents/rules/backend.md +0 -16
  161. package/dist/init-adapters/antigravity-cli/.agents/rules/database.md +0 -16
  162. package/dist/init-adapters/antigravity-cli/.agents/rules/devops.md +0 -16
  163. package/dist/init-adapters/antigravity-cli/.agents/rules/explorer.md +0 -16
  164. package/dist/init-adapters/antigravity-cli/.agents/rules/frontend.md +0 -16
  165. package/dist/init-adapters/antigravity-cli/.agents/rules/git.md +0 -16
  166. package/dist/init-adapters/antigravity-cli/.agents/rules/manager.md +0 -16
  167. package/dist/init-adapters/antigravity-cli/.agents/rules/mobile.md +0 -16
  168. package/dist/init-adapters/antigravity-cli/.agents/rules/native.md +0 -16
  169. package/dist/init-adapters/antigravity-cli/.agents/rules/quality.md +0 -16
  170. package/dist/init-adapters/antigravity-cli/.agents/rules/security.md +0 -16
  171. package/dist/init-adapters/antigravity-cli/.agents/skills/discovery.md +0 -3
  172. package/dist/init-adapters/antigravity-cli/.agents/skills/editing.md +0 -3
  173. package/dist/init-adapters/antigravity-cli/.agents/skills/execution.md +0 -4
  174. package/dist/init-adapters/antigravity-cli/.agents/skills/file_system.md +0 -4
  175. package/dist/init-adapters/antigravity-cli/.agents/skills/orchestration.md +0 -3
  176. package/dist/init-adapters/antigravity-cli/AGENTS.md +0 -8
  177. package/dist/init-adapters/antigravity-cli/ENDERUN.md +0 -261
  178. package/dist/init-adapters/antigravity-cli/docs/README.md +0 -6
  179. package/dist/init-adapters/antigravity-cli/docs/getting-started.md +0 -4
  180. package/dist/init-adapters/antigravity-cli/mcp.json +0 -13
  181. package/dist/init-adapters/antigravity-cli/package.json +0 -5
  182. package/dist/init-adapters/antigravity-cli/panda.config.ts +0 -2
  183. package/dist/init-adapters/claude/.claude/BRAIN_DASHBOARD.md +0 -11
  184. package/dist/init-adapters/claude/.claude/STATUS.md +0 -3
  185. package/dist/init-adapters/claude/.claude/agents/analyst.md +0 -17
  186. package/dist/init-adapters/claude/.claude/agents/architect.md +0 -17
  187. package/dist/init-adapters/claude/.claude/agents/backend.md +0 -17
  188. package/dist/init-adapters/claude/.claude/agents/database.md +0 -17
  189. package/dist/init-adapters/claude/.claude/agents/devops.md +0 -17
  190. package/dist/init-adapters/claude/.claude/agents/explorer.md +0 -17
  191. package/dist/init-adapters/claude/.claude/agents/frontend.md +0 -17
  192. package/dist/init-adapters/claude/.claude/agents/git.md +0 -17
  193. package/dist/init-adapters/claude/.claude/agents/manager.md +0 -17
  194. package/dist/init-adapters/claude/.claude/agents/mobile.md +0 -17
  195. package/dist/init-adapters/claude/.claude/agents/native.md +0 -17
  196. package/dist/init-adapters/claude/.claude/agents/quality.md +0 -17
  197. package/dist/init-adapters/claude/.claude/agents/security.md +0 -17
  198. package/dist/init-adapters/claude/.claude/cli-commands.json +0 -32
  199. package/dist/init-adapters/claude/.claude/config.json +0 -12
  200. package/dist/init-adapters/claude/.claude/knowledge/agents-manifest.md +0 -79
  201. package/dist/init-adapters/claude/.claude/knowledge/approval-flows.md +0 -61
  202. package/dist/init-adapters/claude/.claude/knowledge/component-patterns.md +0 -91
  203. package/dist/init-adapters/claude/.claude/knowledge/data-fetching-patterns.md +0 -13
  204. package/dist/init-adapters/claude/.claude/knowledge/design-system.md +0 -31
  205. package/dist/init-adapters/claude/.claude/knowledge/enterprise-architecture.md +0 -69
  206. package/dist/init-adapters/claude/.claude/knowledge/error-handling.md +0 -74
  207. package/dist/init-adapters/claude/.claude/knowledge/eslint-standards.md +0 -10
  208. package/dist/init-adapters/claude/.claude/knowledge/logging.md +0 -7
  209. package/dist/init-adapters/claude/.claude/knowledge/tech-stack.md +0 -9
  210. package/dist/init-adapters/claude/.claude/mcp_config.json +0 -13
  211. package/dist/init-adapters/claude/.claude/memory/DECISIONS.md +0 -10
  212. package/dist/init-adapters/claude/.claude/memory/PROJECT_MEMORY.md +0 -8
  213. package/dist/init-adapters/claude/.claude/observability/audit_log.md +0 -5
  214. package/dist/init-adapters/claude/.claude/observability/telemetry.md +0 -6
  215. package/dist/init-adapters/claude/.claude/registry/agent_registry.md +0 -18
  216. package/dist/init-adapters/claude/.claude/router/routing_rules.md +0 -8
  217. package/dist/init-adapters/claude/.claude/rules/analyst.md +0 -16
  218. package/dist/init-adapters/claude/.claude/rules/architect.md +0 -16
  219. package/dist/init-adapters/claude/.claude/rules/backend.md +0 -16
  220. package/dist/init-adapters/claude/.claude/rules/database.md +0 -16
  221. package/dist/init-adapters/claude/.claude/rules/devops.md +0 -16
  222. package/dist/init-adapters/claude/.claude/rules/explorer.md +0 -16
  223. package/dist/init-adapters/claude/.claude/rules/frontend.md +0 -16
  224. package/dist/init-adapters/claude/.claude/rules/git.md +0 -16
  225. package/dist/init-adapters/claude/.claude/rules/manager.md +0 -16
  226. package/dist/init-adapters/claude/.claude/rules/mobile.md +0 -16
  227. package/dist/init-adapters/claude/.claude/rules/native.md +0 -16
  228. package/dist/init-adapters/claude/.claude/rules/quality.md +0 -16
  229. package/dist/init-adapters/claude/.claude/rules/security.md +0 -16
  230. package/dist/init-adapters/claude/.claude/skills/discovery.md +0 -3
  231. package/dist/init-adapters/claude/.claude/skills/editing.md +0 -3
  232. package/dist/init-adapters/claude/.claude/skills/execution.md +0 -4
  233. package/dist/init-adapters/claude/.claude/skills/file_system.md +0 -4
  234. package/dist/init-adapters/claude/.claude/skills/orchestration.md +0 -3
  235. package/dist/init-adapters/claude/.mcp.json +0 -13
  236. package/dist/init-adapters/claude/CLAUDE.md +0 -8
  237. package/dist/init-adapters/claude/ENDERUN.md +0 -261
  238. package/dist/init-adapters/claude/docs/README.md +0 -6
  239. package/dist/init-adapters/claude/docs/getting-started.md +0 -4
  240. package/dist/init-adapters/claude/mcp.json +0 -13
  241. package/dist/init-adapters/claude/package.json +0 -5
  242. package/dist/init-adapters/claude/panda.config.ts +0 -2
  243. package/dist/init-adapters/codex/.github/BRAIN_DASHBOARD.md +0 -11
  244. package/dist/init-adapters/codex/.github/STATUS.md +0 -3
  245. package/dist/init-adapters/codex/.github/agents/analyst.md +0 -17
  246. package/dist/init-adapters/codex/.github/agents/architect.md +0 -17
  247. package/dist/init-adapters/codex/.github/agents/backend.md +0 -17
  248. package/dist/init-adapters/codex/.github/agents/database.md +0 -17
  249. package/dist/init-adapters/codex/.github/agents/devops.md +0 -17
  250. package/dist/init-adapters/codex/.github/agents/explorer.md +0 -17
  251. package/dist/init-adapters/codex/.github/agents/frontend.md +0 -17
  252. package/dist/init-adapters/codex/.github/agents/git.md +0 -17
  253. package/dist/init-adapters/codex/.github/agents/manager.md +0 -17
  254. package/dist/init-adapters/codex/.github/agents/mobile.md +0 -17
  255. package/dist/init-adapters/codex/.github/agents/native.md +0 -17
  256. package/dist/init-adapters/codex/.github/agents/quality.md +0 -17
  257. package/dist/init-adapters/codex/.github/agents/security.md +0 -17
  258. package/dist/init-adapters/codex/.github/cli-commands.json +0 -32
  259. package/dist/init-adapters/codex/.github/config.json +0 -12
  260. package/dist/init-adapters/codex/.github/instructions/agents-manifest.md +0 -79
  261. package/dist/init-adapters/codex/.github/instructions/analyst.md +0 -16
  262. package/dist/init-adapters/codex/.github/instructions/approval-flows.md +0 -61
  263. package/dist/init-adapters/codex/.github/instructions/architect.md +0 -16
  264. package/dist/init-adapters/codex/.github/instructions/backend.md +0 -16
  265. package/dist/init-adapters/codex/.github/instructions/component-patterns.md +0 -91
  266. package/dist/init-adapters/codex/.github/instructions/data-fetching-patterns.md +0 -13
  267. package/dist/init-adapters/codex/.github/instructions/database.md +0 -16
  268. package/dist/init-adapters/codex/.github/instructions/design-system.md +0 -31
  269. package/dist/init-adapters/codex/.github/instructions/devops.md +0 -16
  270. package/dist/init-adapters/codex/.github/instructions/enterprise-architecture.md +0 -69
  271. package/dist/init-adapters/codex/.github/instructions/error-handling.md +0 -74
  272. package/dist/init-adapters/codex/.github/instructions/eslint-standards.md +0 -10
  273. package/dist/init-adapters/codex/.github/instructions/explorer.md +0 -16
  274. package/dist/init-adapters/codex/.github/instructions/frontend.md +0 -16
  275. package/dist/init-adapters/codex/.github/instructions/git.md +0 -16
  276. package/dist/init-adapters/codex/.github/instructions/logging.md +0 -7
  277. package/dist/init-adapters/codex/.github/instructions/manager.md +0 -16
  278. package/dist/init-adapters/codex/.github/instructions/mobile.md +0 -16
  279. package/dist/init-adapters/codex/.github/instructions/native.md +0 -16
  280. package/dist/init-adapters/codex/.github/instructions/quality.md +0 -16
  281. package/dist/init-adapters/codex/.github/instructions/security.md +0 -16
  282. package/dist/init-adapters/codex/.github/instructions/tech-stack.md +0 -9
  283. package/dist/init-adapters/codex/.github/mcp_config.json +0 -13
  284. package/dist/init-adapters/codex/.github/memory/DECISIONS.md +0 -10
  285. package/dist/init-adapters/codex/.github/memory/PROJECT_MEMORY.md +0 -8
  286. package/dist/init-adapters/codex/.github/observability/audit_log.md +0 -5
  287. package/dist/init-adapters/codex/.github/observability/telemetry.md +0 -6
  288. package/dist/init-adapters/codex/.github/registry/agent_registry.md +0 -18
  289. package/dist/init-adapters/codex/.github/router/routing_rules.md +0 -8
  290. package/dist/init-adapters/codex/.github/skills/discovery.md +0 -3
  291. package/dist/init-adapters/codex/.github/skills/editing.md +0 -3
  292. package/dist/init-adapters/codex/.github/skills/execution.md +0 -4
  293. package/dist/init-adapters/codex/.github/skills/file_system.md +0 -4
  294. package/dist/init-adapters/codex/.github/skills/orchestration.md +0 -3
  295. package/dist/init-adapters/codex/.mcp.json +0 -13
  296. package/dist/init-adapters/codex/.vscode/mcp.json +0 -13
  297. package/dist/init-adapters/codex/ENDERUN.md +0 -261
  298. package/dist/init-adapters/codex/copilot-instructions.md +0 -7
  299. package/dist/init-adapters/codex/docs/README.md +0 -6
  300. package/dist/init-adapters/codex/docs/getting-started.md +0 -4
  301. package/dist/init-adapters/codex/mcp.json +0 -13
  302. package/dist/init-adapters/codex/package.json +0 -5
  303. package/dist/init-adapters/codex/panda.config.ts +0 -2
  304. package/dist/init-adapters/cursor/.cursor/BRAIN_DASHBOARD.md +0 -11
  305. package/dist/init-adapters/cursor/.cursor/STATUS.md +0 -3
  306. package/dist/init-adapters/cursor/.cursor/agents/analyst.md +0 -17
  307. package/dist/init-adapters/cursor/.cursor/agents/architect.md +0 -17
  308. package/dist/init-adapters/cursor/.cursor/agents/backend.md +0 -17
  309. package/dist/init-adapters/cursor/.cursor/agents/database.md +0 -17
  310. package/dist/init-adapters/cursor/.cursor/agents/devops.md +0 -17
  311. package/dist/init-adapters/cursor/.cursor/agents/explorer.md +0 -17
  312. package/dist/init-adapters/cursor/.cursor/agents/frontend.md +0 -17
  313. package/dist/init-adapters/cursor/.cursor/agents/git.md +0 -17
  314. package/dist/init-adapters/cursor/.cursor/agents/manager.md +0 -17
  315. package/dist/init-adapters/cursor/.cursor/agents/mobile.md +0 -17
  316. package/dist/init-adapters/cursor/.cursor/agents/native.md +0 -17
  317. package/dist/init-adapters/cursor/.cursor/agents/quality.md +0 -17
  318. package/dist/init-adapters/cursor/.cursor/agents/security.md +0 -17
  319. package/dist/init-adapters/cursor/.cursor/cli-commands.json +0 -32
  320. package/dist/init-adapters/cursor/.cursor/config.json +0 -12
  321. package/dist/init-adapters/cursor/.cursor/knowledge/agents-manifest.md +0 -79
  322. package/dist/init-adapters/cursor/.cursor/knowledge/approval-flows.md +0 -61
  323. package/dist/init-adapters/cursor/.cursor/knowledge/component-patterns.md +0 -91
  324. package/dist/init-adapters/cursor/.cursor/knowledge/data-fetching-patterns.md +0 -13
  325. package/dist/init-adapters/cursor/.cursor/knowledge/design-system.md +0 -31
  326. package/dist/init-adapters/cursor/.cursor/knowledge/enterprise-architecture.md +0 -69
  327. package/dist/init-adapters/cursor/.cursor/knowledge/error-handling.md +0 -74
  328. package/dist/init-adapters/cursor/.cursor/knowledge/eslint-standards.md +0 -10
  329. package/dist/init-adapters/cursor/.cursor/knowledge/logging.md +0 -7
  330. package/dist/init-adapters/cursor/.cursor/knowledge/tech-stack.md +0 -9
  331. package/dist/init-adapters/cursor/.cursor/mcp.json +0 -13
  332. package/dist/init-adapters/cursor/.cursor/memory/DECISIONS.md +0 -10
  333. package/dist/init-adapters/cursor/.cursor/memory/PROJECT_MEMORY.md +0 -8
  334. package/dist/init-adapters/cursor/.cursor/observability/audit_log.md +0 -5
  335. package/dist/init-adapters/cursor/.cursor/observability/telemetry.md +0 -6
  336. package/dist/init-adapters/cursor/.cursor/registry/agent_registry.md +0 -18
  337. package/dist/init-adapters/cursor/.cursor/router/routing_rules.md +0 -8
  338. package/dist/init-adapters/cursor/.cursor/rules/analyst.mdc +0 -22
  339. package/dist/init-adapters/cursor/.cursor/rules/architect.mdc +0 -22
  340. package/dist/init-adapters/cursor/.cursor/rules/backend.mdc +0 -22
  341. package/dist/init-adapters/cursor/.cursor/rules/database.mdc +0 -22
  342. package/dist/init-adapters/cursor/.cursor/rules/devops.mdc +0 -22
  343. package/dist/init-adapters/cursor/.cursor/rules/explorer.mdc +0 -22
  344. package/dist/init-adapters/cursor/.cursor/rules/frontend.mdc +0 -22
  345. package/dist/init-adapters/cursor/.cursor/rules/git.mdc +0 -22
  346. package/dist/init-adapters/cursor/.cursor/rules/manager.mdc +0 -22
  347. package/dist/init-adapters/cursor/.cursor/rules/mobile.mdc +0 -22
  348. package/dist/init-adapters/cursor/.cursor/rules/native.mdc +0 -22
  349. package/dist/init-adapters/cursor/.cursor/rules/quality.mdc +0 -22
  350. package/dist/init-adapters/cursor/.cursor/rules/security.mdc +0 -22
  351. package/dist/init-adapters/cursor/.cursor/skills/discovery.md +0 -3
  352. package/dist/init-adapters/cursor/.cursor/skills/editing.md +0 -3
  353. package/dist/init-adapters/cursor/.cursor/skills/execution.md +0 -4
  354. package/dist/init-adapters/cursor/.cursor/skills/file_system.md +0 -4
  355. package/dist/init-adapters/cursor/.cursor/skills/orchestration.md +0 -3
  356. package/dist/init-adapters/cursor/CURSOR.md +0 -7
  357. package/dist/init-adapters/cursor/ENDERUN.md +0 -261
  358. package/dist/init-adapters/cursor/docs/README.md +0 -6
  359. package/dist/init-adapters/cursor/docs/getting-started.md +0 -4
  360. package/dist/init-adapters/cursor/mcp.json +0 -13
  361. package/dist/init-adapters/cursor/package.json +0 -5
  362. package/dist/init-adapters/cursor/panda.config.ts +0 -2
  363. package/dist/init-adapters/gemini/.gemini/BRAIN_DASHBOARD.md +0 -11
  364. package/dist/init-adapters/gemini/.gemini/STATUS.md +0 -3
  365. package/dist/init-adapters/gemini/.gemini/agents/analyst.md +0 -17
  366. package/dist/init-adapters/gemini/.gemini/agents/architect.md +0 -17
  367. package/dist/init-adapters/gemini/.gemini/agents/backend.md +0 -17
  368. package/dist/init-adapters/gemini/.gemini/agents/database.md +0 -17
  369. package/dist/init-adapters/gemini/.gemini/agents/devops.md +0 -17
  370. package/dist/init-adapters/gemini/.gemini/agents/explorer.md +0 -17
  371. package/dist/init-adapters/gemini/.gemini/agents/frontend.md +0 -17
  372. package/dist/init-adapters/gemini/.gemini/agents/git.md +0 -17
  373. package/dist/init-adapters/gemini/.gemini/agents/manager.md +0 -17
  374. package/dist/init-adapters/gemini/.gemini/agents/mobile.md +0 -17
  375. package/dist/init-adapters/gemini/.gemini/agents/native.md +0 -17
  376. package/dist/init-adapters/gemini/.gemini/agents/quality.md +0 -17
  377. package/dist/init-adapters/gemini/.gemini/agents/security.md +0 -17
  378. package/dist/init-adapters/gemini/.gemini/cli-commands.json +0 -32
  379. package/dist/init-adapters/gemini/.gemini/config.json +0 -12
  380. package/dist/init-adapters/gemini/.gemini/knowledge/agents-manifest.md +0 -79
  381. package/dist/init-adapters/gemini/.gemini/knowledge/approval-flows.md +0 -61
  382. package/dist/init-adapters/gemini/.gemini/knowledge/component-patterns.md +0 -91
  383. package/dist/init-adapters/gemini/.gemini/knowledge/data-fetching-patterns.md +0 -13
  384. package/dist/init-adapters/gemini/.gemini/knowledge/design-system.md +0 -31
  385. package/dist/init-adapters/gemini/.gemini/knowledge/enterprise-architecture.md +0 -69
  386. package/dist/init-adapters/gemini/.gemini/knowledge/error-handling.md +0 -74
  387. package/dist/init-adapters/gemini/.gemini/knowledge/eslint-standards.md +0 -10
  388. package/dist/init-adapters/gemini/.gemini/knowledge/logging.md +0 -7
  389. package/dist/init-adapters/gemini/.gemini/knowledge/tech-stack.md +0 -9
  390. package/dist/init-adapters/gemini/.gemini/mcp.json +0 -13
  391. package/dist/init-adapters/gemini/.gemini/memory/DECISIONS.md +0 -10
  392. package/dist/init-adapters/gemini/.gemini/memory/PROJECT_MEMORY.md +0 -8
  393. package/dist/init-adapters/gemini/.gemini/observability/audit_log.md +0 -5
  394. package/dist/init-adapters/gemini/.gemini/observability/telemetry.md +0 -6
  395. package/dist/init-adapters/gemini/.gemini/registry/agent_registry.md +0 -18
  396. package/dist/init-adapters/gemini/.gemini/router/routing_rules.md +0 -8
  397. package/dist/init-adapters/gemini/.gemini/rules/analyst.md +0 -16
  398. package/dist/init-adapters/gemini/.gemini/rules/architect.md +0 -16
  399. package/dist/init-adapters/gemini/.gemini/rules/backend.md +0 -16
  400. package/dist/init-adapters/gemini/.gemini/rules/database.md +0 -16
  401. package/dist/init-adapters/gemini/.gemini/rules/devops.md +0 -16
  402. package/dist/init-adapters/gemini/.gemini/rules/explorer.md +0 -16
  403. package/dist/init-adapters/gemini/.gemini/rules/frontend.md +0 -16
  404. package/dist/init-adapters/gemini/.gemini/rules/git.md +0 -16
  405. package/dist/init-adapters/gemini/.gemini/rules/manager.md +0 -16
  406. package/dist/init-adapters/gemini/.gemini/rules/mobile.md +0 -16
  407. package/dist/init-adapters/gemini/.gemini/rules/native.md +0 -16
  408. package/dist/init-adapters/gemini/.gemini/rules/quality.md +0 -16
  409. package/dist/init-adapters/gemini/.gemini/rules/security.md +0 -16
  410. package/dist/init-adapters/gemini/.gemini/skills/discovery.md +0 -3
  411. package/dist/init-adapters/gemini/.gemini/skills/editing.md +0 -3
  412. package/dist/init-adapters/gemini/.gemini/skills/execution.md +0 -4
  413. package/dist/init-adapters/gemini/.gemini/skills/file_system.md +0 -4
  414. package/dist/init-adapters/gemini/.gemini/skills/orchestration.md +0 -3
  415. package/dist/init-adapters/gemini/ENDERUN.md +0 -261
  416. package/dist/init-adapters/gemini/GEMINI.md +0 -8
  417. package/dist/init-adapters/gemini/docs/README.md +0 -6
  418. package/dist/init-adapters/gemini/docs/getting-started.md +0 -4
  419. package/dist/init-adapters/gemini/mcp.json +0 -13
  420. package/dist/init-adapters/gemini/package.json +0 -5
  421. package/dist/init-adapters/gemini/panda.config.ts +0 -2
  422. package/dist/init-adapters/grok/.grok/BRAIN_DASHBOARD.md +0 -11
  423. package/dist/init-adapters/grok/.grok/STATUS.md +0 -3
  424. package/dist/init-adapters/grok/.grok/agents/analyst.md +0 -17
  425. package/dist/init-adapters/grok/.grok/agents/architect.md +0 -17
  426. package/dist/init-adapters/grok/.grok/agents/backend.md +0 -17
  427. package/dist/init-adapters/grok/.grok/agents/database.md +0 -17
  428. package/dist/init-adapters/grok/.grok/agents/devops.md +0 -17
  429. package/dist/init-adapters/grok/.grok/agents/explorer.md +0 -17
  430. package/dist/init-adapters/grok/.grok/agents/frontend.md +0 -17
  431. package/dist/init-adapters/grok/.grok/agents/git.md +0 -17
  432. package/dist/init-adapters/grok/.grok/agents/manager.md +0 -17
  433. package/dist/init-adapters/grok/.grok/agents/mobile.md +0 -17
  434. package/dist/init-adapters/grok/.grok/agents/native.md +0 -17
  435. package/dist/init-adapters/grok/.grok/agents/quality.md +0 -17
  436. package/dist/init-adapters/grok/.grok/agents/security.md +0 -17
  437. package/dist/init-adapters/grok/.grok/cli-commands.json +0 -32
  438. package/dist/init-adapters/grok/.grok/config.json +0 -12
  439. package/dist/init-adapters/grok/.grok/knowledge/agents-manifest.md +0 -79
  440. package/dist/init-adapters/grok/.grok/knowledge/approval-flows.md +0 -61
  441. package/dist/init-adapters/grok/.grok/knowledge/component-patterns.md +0 -91
  442. package/dist/init-adapters/grok/.grok/knowledge/data-fetching-patterns.md +0 -13
  443. package/dist/init-adapters/grok/.grok/knowledge/design-system.md +0 -31
  444. package/dist/init-adapters/grok/.grok/knowledge/enterprise-architecture.md +0 -69
  445. package/dist/init-adapters/grok/.grok/knowledge/error-handling.md +0 -74
  446. package/dist/init-adapters/grok/.grok/knowledge/eslint-standards.md +0 -10
  447. package/dist/init-adapters/grok/.grok/knowledge/logging.md +0 -7
  448. package/dist/init-adapters/grok/.grok/knowledge/tech-stack.md +0 -9
  449. package/dist/init-adapters/grok/.grok/mcp_config.json +0 -13
  450. package/dist/init-adapters/grok/.grok/memory/DECISIONS.md +0 -10
  451. package/dist/init-adapters/grok/.grok/memory/PROJECT_MEMORY.md +0 -8
  452. package/dist/init-adapters/grok/.grok/observability/audit_log.md +0 -5
  453. package/dist/init-adapters/grok/.grok/observability/telemetry.md +0 -6
  454. package/dist/init-adapters/grok/.grok/registry/agent_registry.md +0 -18
  455. package/dist/init-adapters/grok/.grok/router/routing_rules.md +0 -8
  456. package/dist/init-adapters/grok/.grok/rules/analyst.md +0 -16
  457. package/dist/init-adapters/grok/.grok/rules/architect.md +0 -16
  458. package/dist/init-adapters/grok/.grok/rules/backend.md +0 -16
  459. package/dist/init-adapters/grok/.grok/rules/database.md +0 -16
  460. package/dist/init-adapters/grok/.grok/rules/devops.md +0 -16
  461. package/dist/init-adapters/grok/.grok/rules/explorer.md +0 -16
  462. package/dist/init-adapters/grok/.grok/rules/frontend.md +0 -16
  463. package/dist/init-adapters/grok/.grok/rules/git.md +0 -16
  464. package/dist/init-adapters/grok/.grok/rules/manager.md +0 -16
  465. package/dist/init-adapters/grok/.grok/rules/mobile.md +0 -16
  466. package/dist/init-adapters/grok/.grok/rules/native.md +0 -16
  467. package/dist/init-adapters/grok/.grok/rules/quality.md +0 -16
  468. package/dist/init-adapters/grok/.grok/rules/security.md +0 -16
  469. package/dist/init-adapters/grok/.grok/skills/discovery.md +0 -3
  470. package/dist/init-adapters/grok/.grok/skills/editing.md +0 -3
  471. package/dist/init-adapters/grok/.grok/skills/execution.md +0 -4
  472. package/dist/init-adapters/grok/.grok/skills/file_system.md +0 -4
  473. package/dist/init-adapters/grok/.grok/skills/orchestration.md +0 -3
  474. package/dist/init-adapters/grok/ENDERUN.md +0 -261
  475. package/dist/init-adapters/grok/GROK.md +0 -7
  476. package/dist/init-adapters/grok/docs/README.md +0 -6
  477. package/dist/init-adapters/grok/docs/getting-started.md +0 -4
  478. package/dist/init-adapters/grok/mcp.json +0 -13
  479. package/dist/init-adapters/grok/package.json +0 -5
  480. package/dist/init-adapters/grok/panda.config.ts +0 -2
  481. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/mcp.json +0 -13
  482. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/mcp_config.json +0 -13
  483. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/analyst/agent.json +0 -28
  484. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/analyst.json +0 -28
  485. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/architect/agent.json +0 -30
  486. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/architect.json +0 -30
  487. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/backend/agent.json +0 -30
  488. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/backend.json +0 -30
  489. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/database/agent.json +0 -29
  490. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/database.json +0 -29
  491. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/devops/agent.json +0 -28
  492. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/devops.json +0 -28
  493. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/explorer/agent.json +0 -29
  494. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/explorer.json +0 -29
  495. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/frontend/agent.json +0 -29
  496. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/frontend.json +0 -29
  497. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/git/agent.json +0 -28
  498. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/git.json +0 -28
  499. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/manager/agent.json +0 -30
  500. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/manager.json +0 -30
  501. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/mobile/agent.json +0 -29
  502. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/mobile.json +0 -29
  503. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/native/agent.json +0 -29
  504. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/native.json +0 -29
  505. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/quality/agent.json +0 -29
  506. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/quality.json +0 -29
  507. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/security/agent.json +0 -29
  508. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/agents/security.json +0 -29
  509. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/hooks.json +0 -4
  510. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/mcp.json +0 -13
  511. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/mcp_config.json +0 -13
  512. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/plugin.json +0 -5
  513. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/analyst.md +0 -11
  514. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/architect.md +0 -11
  515. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/backend.md +0 -11
  516. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/database.md +0 -11
  517. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/devops.md +0 -11
  518. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/explorer.md +0 -11
  519. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/frontend.md +0 -11
  520. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/git.md +0 -11
  521. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/manager.md +0 -11
  522. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/mobile.md +0 -11
  523. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/native.md +0 -11
  524. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/quality.md +0 -11
  525. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/rules/security.md +0 -11
  526. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/discovery.md +0 -3
  527. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/editing.md +0 -3
  528. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/execution.md +0 -4
  529. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/file_system.md +0 -4
  530. package/dist/init-adapters/mock-home/.gemini/antigravity-cli/plugins/agent-enderun/skills/orchestration.md +0 -3
  531. package/dist/init-adapters/mock-home/Library/Application Support/Claude/claude_desktop_config.json +0 -13
  532. package/dist/src/cli/adapters/types.d.ts +0 -14
  533. package/dist/src/cli/adapters/types.js +0 -2
  534. package/dist/src/cli/adapters/types.js.map +0 -1
  535. package/dist/src/cli/adapters.d.ts +0 -16
  536. package/dist/src/cli/adapters.js +0 -223
  537. package/dist/src/cli/adapters.js.map +0 -1
  538. package/dist/src/modules/adapters/antigravity-cli.d.ts +0 -3
  539. package/dist/src/modules/adapters/antigravity-cli.js +0 -21
  540. package/dist/src/modules/adapters/antigravity-cli.js.map +0 -1
  541. package/dist/src/modules/adapters/claude.d.ts +0 -3
  542. package/dist/src/modules/adapters/claude.js +0 -36
  543. package/dist/src/modules/adapters/claude.js.map +0 -1
  544. package/dist/src/modules/adapters/codex.d.ts +0 -3
  545. package/dist/src/modules/adapters/codex.js +0 -20
  546. package/dist/src/modules/adapters/codex.js.map +0 -1
  547. package/dist/src/modules/adapters/cursor.d.ts +0 -3
  548. package/dist/src/modules/adapters/cursor.js +0 -20
  549. package/dist/src/modules/adapters/cursor.js.map +0 -1
  550. package/dist/src/modules/adapters/gemini.d.ts +0 -3
  551. package/dist/src/modules/adapters/gemini.js +0 -23
  552. package/dist/src/modules/adapters/gemini.js.map +0 -1
  553. package/dist/src/modules/adapters/grok.d.ts +0 -3
  554. package/dist/src/modules/adapters/grok.js +0 -18
  555. package/dist/src/modules/adapters/grok.js.map +0 -1
  556. package/dist/src/shared/config.d.ts +0 -41
  557. package/dist/src/shared/config.js +0 -61
  558. package/dist/src/shared/config.js.map +0 -1
  559. package/dist/src/shared/container.d.ts +0 -25
  560. package/dist/src/shared/container.js +0 -56
  561. package/dist/src/shared/container.js.map +0 -1
  562. package/dist/tests/config.test.js +0 -58
  563. package/dist/tests/config.test.js.map +0 -1
  564. package/dist/tests/container.runner.js +0 -68
  565. package/dist/tests/container.runner.js.map +0 -1
  566. package/dist/tests/container.test.js +0 -73
  567. package/dist/tests/container.test.js.map +0 -1
  568. package/dist/tests/mock-project/apps/web/panda.config.d.ts +0 -4
  569. package/dist/tests/mock-project/apps/web/panda.config.js +0 -3
  570. package/dist/tests/mock-project/apps/web/panda.config.js.map +0 -1
  571. package/dist/tests/shared.test.d.ts +0 -1
  572. package/dist/tests/shared.test.js +0 -80
  573. package/dist/tests/shared.test.js.map +0 -1
  574. package/docs/README.md +0 -44
  575. package/docs/getting-started.md +0 -4
  576. package/docs/user/action-plan-2026.md +0 -9
  577. package/docs/user/corporate-governance.md +0 -25
  578. package/docs/user/getting-started.md +0 -13
  579. package/docs/user/roadmap.md +0 -13
  580. package/eslint.config.js +0 -92
  581. package/framework-mcp/dist/index.js +0 -76
  582. package/framework-mcp/dist/tools/control_plane/locking.js +0 -64
  583. package/framework-mcp/dist/tools/control_plane/registry.js +0 -34
  584. package/framework-mcp/dist/tools/dashboard/start_dashboard.js +0 -29
  585. package/framework-mcp/dist/tools/definitions.js +0 -270
  586. package/framework-mcp/dist/tools/file_system/batch_surgical_edit.js +0 -50
  587. package/framework-mcp/dist/tools/file_system/patch_file.js +0 -21
  588. package/framework-mcp/dist/tools/file_system/read_file.js +0 -34
  589. package/framework-mcp/dist/tools/file_system/replace_text.js +0 -38
  590. package/framework-mcp/dist/tools/file_system/write_file.js +0 -26
  591. package/framework-mcp/dist/tools/framework/audit_deps.js +0 -41
  592. package/framework-mcp/dist/tools/framework/get_status.js +0 -5
  593. package/framework-mcp/dist/tools/framework/orchestrate.js +0 -5
  594. package/framework-mcp/dist/tools/framework/run_tests.js +0 -25
  595. package/framework-mcp/dist/tools/framework/update_contract_hash.js +0 -5
  596. package/framework-mcp/dist/tools/framework/update_memory.js +0 -8
  597. package/framework-mcp/dist/tools/index.js +0 -54
  598. package/framework-mcp/dist/tools/memory/get_insights.js +0 -34
  599. package/framework-mcp/dist/tools/memory/read_memory.js +0 -28
  600. package/framework-mcp/dist/tools/messaging/log_action.js +0 -22
  601. package/framework-mcp/dist/tools/messaging/send_message.js +0 -74
  602. package/framework-mcp/dist/tools/observability/check_ports.js +0 -26
  603. package/framework-mcp/dist/tools/observability/get_health.js +0 -19
  604. package/framework-mcp/dist/tools/search/get_gaps.js +0 -48
  605. package/framework-mcp/dist/tools/search/get_map.js +0 -43
  606. package/framework-mcp/dist/tools/search/grep_search.js +0 -59
  607. package/framework-mcp/dist/tools/search/list_dir.js +0 -28
  608. package/framework-mcp/dist/tools/types.js +0 -1
  609. package/framework-mcp/dist/utils/cli.js +0 -20
  610. package/framework-mcp/dist/utils/compliance.js +0 -29
  611. package/framework-mcp/dist/utils/metrics.js +0 -38
  612. package/framework-mcp/dist/utils/security.js +0 -57
  613. package/framework-mcp/package.json +0 -19
  614. package/framework-mcp/src/declarations.d.ts +0 -17
  615. package/framework-mcp/src/index.ts +0 -95
  616. package/framework-mcp/src/tools/control_plane/locking.ts +0 -77
  617. package/framework-mcp/src/tools/control_plane/registry.ts +0 -44
  618. package/framework-mcp/src/tools/dashboard/start_dashboard.ts +0 -33
  619. package/framework-mcp/src/tools/definitions.ts +0 -272
  620. package/framework-mcp/src/tools/file_system/batch_surgical_edit.ts +0 -70
  621. package/framework-mcp/src/tools/file_system/patch_file.ts +0 -29
  622. package/framework-mcp/src/tools/file_system/read_file.ts +0 -39
  623. package/framework-mcp/src/tools/file_system/replace_text.ts +0 -50
  624. package/framework-mcp/src/tools/file_system/write_file.ts +0 -33
  625. package/framework-mcp/src/tools/framework/audit_deps.ts +0 -49
  626. package/framework-mcp/src/tools/framework/get_status.ts +0 -7
  627. package/framework-mcp/src/tools/framework/orchestrate.ts +0 -7
  628. package/framework-mcp/src/tools/framework/run_tests.ts +0 -28
  629. package/framework-mcp/src/tools/framework/update_contract_hash.ts +0 -7
  630. package/framework-mcp/src/tools/framework/update_memory.ts +0 -10
  631. package/framework-mcp/src/tools/index.ts +0 -60
  632. package/framework-mcp/src/tools/memory/get_insights.ts +0 -41
  633. package/framework-mcp/src/tools/memory/read_memory.ts +0 -31
  634. package/framework-mcp/src/tools/messaging/log_action.ts +0 -28
  635. package/framework-mcp/src/tools/messaging/send_message.ts +0 -76
  636. package/framework-mcp/src/tools/observability/check_ports.ts +0 -30
  637. package/framework-mcp/src/tools/observability/get_health.ts +0 -24
  638. package/framework-mcp/src/tools/search/get_gaps.ts +0 -54
  639. package/framework-mcp/src/tools/search/get_map.ts +0 -48
  640. package/framework-mcp/src/tools/search/grep_search.ts +0 -65
  641. package/framework-mcp/src/tools/search/list_dir.ts +0 -34
  642. package/framework-mcp/src/tools/types.ts +0 -54
  643. package/framework-mcp/src/utils/cli.ts +0 -20
  644. package/framework-mcp/src/utils/compliance.ts +0 -37
  645. package/framework-mcp/src/utils/metrics.ts +0 -53
  646. package/framework-mcp/src/utils/security.ts +0 -64
  647. package/framework-mcp/tests/tools/file_system/file_system_tools.test.ts +0 -206
  648. package/framework-mcp/tests/tools/messaging/send_message.test.ts +0 -136
  649. package/framework-mcp/tsconfig.json +0 -14
  650. package/src/cli/adapters/types.ts +0 -16
  651. package/src/cli/adapters.ts +0 -244
  652. package/src/shared/config.ts +0 -73
  653. package/src/shared/container.ts +0 -67
  654. package/templates/prompts/bug-fix-recipe.md +0 -20
  655. package/templates/prompts/new-feature-recipe.md +0 -19
  656. package/templates/prompts/refactoring-recipe.md +0 -21
  657. package/templates/standards/architecture-standards.md +0 -23
  658. package/templates/standards/crud-governance.md +0 -21
  659. package/templates/standards/frontend-standards.md +0 -38
  660. package/templates/standards/i18n-standards.md +0 -17
  661. package/templates/standards/logging-and-secrets.md +0 -29
  662. package/templates/standards/mobile-standards.md +0 -24
  663. package/templates/standards/quality-standards.md +0 -31
  664. package/templates/standards/security-standards.md +0 -21
  665. package/templates/standards/tailwind-standards.md +0 -20
  666. package/templates/standards/testing-standards.md +0 -31
  667. package/tsconfig.json +0 -24
  668. /package/dist/tests/{config.test.d.ts → cli/init/adapter_init.test.d.ts} +0 -0
  669. /package/dist/tests/{container.runner.d.ts → integration/agent_flow.test.d.ts} +0 -0
  670. /package/dist/tests/{container.test.d.ts → modules/adapters/adapters.test.d.ts} +0 -0
@@ -1,77 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { ToolResult } from "../types.js";
4
- import { resolveFrameworkDir } from "../../utils/security.js";
5
-
6
- interface LockArgs {
7
- resource: string;
8
- agent: string;
9
- ttl?: number;
10
- }
11
-
12
- /**
13
- * Handles acquiring a stateful lock on a resource.
14
- */
15
- export async function handleAcquireLock(projectRoot: string, args: LockArgs): Promise<ToolResult> {
16
- const { resource, agent, ttl = 60 } = args;
17
- const frameworkDir = resolveFrameworkDir(projectRoot);
18
- const lockDir = path.join(projectRoot, frameworkDir, "locks");
19
- const lockPath = path.join(lockDir, `${resource}.lock`);
20
-
21
- try {
22
- if (!fs.existsSync(lockDir)) fs.mkdirSync(lockDir, { recursive: true });
23
-
24
- if (fs.existsSync(lockPath)) {
25
- const stat = fs.statSync(lockPath);
26
- const now = new Date().getTime();
27
- const age = (now - stat.mtimeMs) / 1000;
28
-
29
- if (age < ttl) {
30
- return {
31
- isError: true,
32
- content: [{ type: "text", text: `Resource '${resource}' is currently locked by another agent.` }]
33
- };
34
- }
35
- // Lock expired, safe to override
36
- fs.unlinkSync(lockPath);
37
- }
38
-
39
- fs.writeFileSync(lockPath, JSON.stringify({ agent, timestamp: new Date().toISOString() }));
40
- return {
41
- content: [{ type: "text", text: `✅ Lock acquired for resource '${resource}' by ${agent}.` }]
42
- };
43
- } catch (e) {
44
- return {
45
- isError: true,
46
- content: [{ type: "text", text: `Failed to acquire lock: ${String(e)}` }]
47
- };
48
- }
49
- }
50
-
51
- /**
52
- * Handles releasing a lock.
53
- */
54
- export async function handleReleaseLock(projectRoot: string, args: LockArgs): Promise<ToolResult> {
55
- const { resource, agent } = args;
56
- const frameworkDir = resolveFrameworkDir(projectRoot);
57
- const lockPath = path.join(projectRoot, frameworkDir, "locks", `${resource}.lock`);
58
-
59
- try {
60
- if (!fs.existsSync(lockPath)) {
61
- return { content: [{ type: "text", text: `ℹ️ No lock found for resource '${resource}'.` }] };
62
- }
63
-
64
- const lockData = JSON.parse(fs.readFileSync(lockPath, "utf8"));
65
- if (lockData.agent !== agent) {
66
- return {
67
- isError: true,
68
- content: [{ type: "text", text: `❌ Denied: You do not own the lock for '${resource}'. Owned by ${lockData.agent}.` }]
69
- };
70
- }
71
-
72
- fs.unlinkSync(lockPath);
73
- return { content: [{ type: "text", text: `✅ Lock released for resource '${resource}' by ${agent}.` }] };
74
- } catch (e) {
75
- return { isError: true, content: [{ type: "text", text: `Failed to release lock: ${String(e)}` }] };
76
- }
77
- }
@@ -1,44 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { ToolResult } from "../types.js";
4
- import { resolveFrameworkDir } from "../../utils/security.js";
5
-
6
- interface RegisterArgs {
7
- agent: string;
8
- role: string;
9
- capability?: number;
10
- }
11
-
12
- /**
13
- * Handles agent registration with the Control Plane.
14
- * This can be used to validate permissions and active status.
15
- */
16
- export async function handleRegisterAgent(projectRoot: string, args: RegisterArgs): Promise<ToolResult> {
17
- const { agent, role, capability = 5 } = args;
18
- const frameworkDir = resolveFrameworkDir(projectRoot);
19
- const registryDir = path.join(projectRoot, frameworkDir, "registry");
20
- const agentFile = path.join(registryDir, `${agent.replace("@", "")}_active.json`);
21
-
22
- try {
23
- if (!fs.existsSync(registryDir)) fs.mkdirSync(registryDir, { recursive: true });
24
-
25
- const agentData = {
26
- agent,
27
- role,
28
- capability,
29
- last_seen: new Date().toISOString(),
30
- status: "ACTIVE"
31
- };
32
-
33
- fs.writeFileSync(agentFile, JSON.stringify(agentData, null, 2));
34
-
35
- return {
36
- content: [{ type: "text", text: `🎖️ Agent ${agent} (${role}) registered successfully in the Enderun Control Plane.` }]
37
- };
38
- } catch (e) {
39
- return {
40
- isError: true,
41
- content: [{ type: "text", text: `Failed to register agent: ${String(e)}` }]
42
- };
43
- }
44
- }
@@ -1,33 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { exec } from "child_process";
4
- import { ToolArgs, ToolResult } from "../types.js";
5
-
6
- /**
7
- * Starts the Enderun Web Dashboard server.
8
- */
9
- export function handleStartDashboard(projectRoot: string, args: ToolArgs): ToolResult {
10
- const port = args.port || 5858;
11
- const dashboardScript = path.join(projectRoot, "bin/enderun-dashboard.js");
12
-
13
- if (!fs.existsSync(dashboardScript)) {
14
- throw new Error("Dashboard server script not found in bin/enderun-dashboard.js");
15
- }
16
-
17
- try {
18
- // Start the dashboard as a background process
19
- exec(`node "${dashboardScript}"`, {
20
- cwd: projectRoot,
21
- env: { ...process.env, PORT: String(port) }
22
- });
23
-
24
- return {
25
- content: [{
26
- type: "text",
27
- text: `🖥️ **Enderun Web Dashboard started!**\n\nAccess it at: http://localhost:${port}\n\nThis interface will show real-time agent status, system health, and orchestration logs.`
28
- }]
29
- };
30
- } catch (e) {
31
- return { isError: true, content: [{ type: "text", text: `Failed to start dashboard: ${String(e)}` }] };
32
- }
33
- }
@@ -1,272 +0,0 @@
1
- import { ToolDefinition } from "../tools/types.js";
2
-
3
- export const TOOLS: ToolDefinition[] = [
4
- {
5
- name: "read_file",
6
- description: "Read the content of a file within the project. Supports optional line range reading to prevent stream overload.",
7
- inputSchema: {
8
- type: "object",
9
- properties: {
10
- path: { type: "string", description: "Path to the file relative to project root" },
11
- startLine: { type: "number", description: "Optional starting line number (1-indexed)" },
12
- endLine: { type: "number", description: "Optional ending line number (inclusive)" },
13
- },
14
- required: ["path"],
15
- },
16
- },
17
- {
18
- name: "list_dir",
19
- description: "List the contents of a directory. Essential for codebase exploration.",
20
- inputSchema: {
21
- type: "object",
22
- properties: {
23
- path: { type: "string", description: "Path to the directory relative to project root (default: '.')" },
24
- },
25
- },
26
- },
27
- {
28
- name: "grep_search",
29
- description: "Perform a recursive regex search across the codebase to find functions, variables, or patterns.",
30
- inputSchema: {
31
- type: "object",
32
- properties: {
33
- pattern: { type: "string", description: "The regex pattern to search for" },
34
- includePattern: { type: "string", description: "Optional: Filter files by extension (e.g., '.ts')" },
35
- excludePattern: { type: "string", description: "Optional: Directory pattern to exclude (default: 'node_modules')" },
36
- },
37
- required: ["pattern"],
38
- },
39
- },
40
- {
41
- name: "write_file",
42
- description: "Write content to a file. Creates directories if missing.",
43
- inputSchema: {
44
- type: "object",
45
- properties: {
46
- path: { type: "string", description: "Path to the file relative to project root" },
47
- content: { type: "string", description: "Complete content of the file" },
48
- },
49
- required: ["path", "content"],
50
- },
51
- },
52
- {
53
- name: "replace_text",
54
- description: "Surgically replace a string in a file with another string.",
55
- inputSchema: {
56
- type: "object",
57
- properties: {
58
- path: { type: "string", description: "Path to the file" },
59
- oldText: { type: "string", description: "The exact text to find" },
60
- newText: { type: "string", description: "The text to replace it with" },
61
- allowMultiple: { type: "boolean", description: "Allow multiple replacements if oldText is not unique." }
62
- },
63
- required: ["path", "oldText", "newText"],
64
- },
65
- },
66
- {
67
- name: "batch_surgical_edit",
68
- description: "Perform multiple surgical text replacements across multiple files in a single batch request. More efficient for cross-cutting changes.",
69
- inputSchema: {
70
- type: "object",
71
- properties: {
72
- edits: {
73
- type: "array",
74
- items: {
75
- type: "object",
76
- properties: {
77
- path: { type: "string", description: "Path to the file" },
78
- oldText: { type: "string", description: "The exact text to find" },
79
- newText: { type: "string", description: "The text to replace it with" },
80
- allowMultiple: { type: "boolean", description: "Allow multiple replacements in this file." }
81
- },
82
- required: ["path", "oldText", "newText"]
83
- }
84
- }
85
- },
86
- required: ["edits"],
87
- },
88
- },
89
- {
90
- name: "patch_file",
91
- description: "Safely update a file by replacing a specific line range with new content.",
92
- inputSchema: {
93
- type: "object",
94
- properties: {
95
- path: { type: "string", description: "Path to the file" },
96
- startLine: { type: "number", description: "Starting line number (1-indexed)" },
97
- endLine: { type: "number", description: "Ending line number (inclusive)" },
98
- newContent: { type: "string", description: "The new lines to insert" },
99
- },
100
- required: ["path", "startLine", "endLine", "newContent"],
101
- },
102
- },
103
- {
104
- name: "get_project_map",
105
- description: "Generate a tree-view map of the project structure to visualize the layout. Useful for onboarding and architectural analysis.",
106
- inputSchema: {
107
- type: "object",
108
- properties: {
109
- maxDepth: { type: "number", description: "Maximum directory depth to scan (default: 3)" },
110
- includeFiles: { type: "boolean", description: "Whether to include files in the map (default: true)" }
111
- }
112
- }
113
- },
114
- {
115
- name: "get_project_gaps",
116
- description: "Scans the codebase for TODOs, FIXMEs, and empty function bodies. Helps identify what is left and where the agent might have skipped logic.",
117
- inputSchema: {
118
- type: "object",
119
- properties: {
120
- path: { type: "string", description: "Path to the source directory (default: 'src')" },
121
- },
122
- },
123
- },
124
- {
125
- name: "audit_dependencies",
126
- description: "Audits package.json for unused, redundant, or duplicate-like packages to ensure a clean dependency tree.",
127
- inputSchema: { type: "object", properties: {} },
128
- },
129
- {
130
- name: "run_tests",
131
- description: "Execute project test suites (Vitest, Playwright, etc.) and capture detailed pass/fail reports for analysis.",
132
- inputSchema: {
133
- type: "object",
134
- properties: {
135
- command: { type: "string", description: "The test command to run (default: 'npm test')" }
136
- }
137
- }
138
- },
139
- {
140
- name: "get_system_health",
141
- description: "Retrieve real-time system metrics like CPU load, RAM usage, and uptime.",
142
- inputSchema: { type: "object", properties: {} }
143
- },
144
- {
145
- name: "check_active_ports",
146
- description: "Identify which network ports are currently active and listening. Helps verify if the dev server or API is running.",
147
- inputSchema: {
148
- type: "object",
149
- properties: {
150
- filter: { type: "string", description: "Optional: Filter results by port number or service name (e.g., ':3000')" }
151
- }
152
- }
153
- },
154
- {
155
- name: "start_dashboard",
156
- description: "Start the Enderun Web Dashboard (Command Center) to visualize real-time agent status, logs, and system metrics in the browser.",
157
- inputSchema: {
158
- type: "object",
159
- properties: {
160
- port: { type: "number", description: "Optional: Port to run the dashboard on (default: 5858)" }
161
- }
162
- }
163
- },
164
- {
165
- name: "get_framework_status",
166
- description: "Get the current project phase, active traces, and agent states.",
167
- inputSchema: { type: "object", properties: {} },
168
- },
169
- {
170
- name: "read_project_memory",
171
- description: "Read the full project central memory (PROJECT_MEMORY.md). Use this at the start of a session to gain context.",
172
- inputSchema: { type: "object", properties: {} },
173
- },
174
- {
175
- name: "get_memory_insights",
176
- description: "Retrieve a summarized version of the project memory (active phase, trace, and last 5 actions) to save tokens.",
177
- inputSchema: { type: "object", properties: {} },
178
- },
179
- {
180
- name: "update_project_memory",
181
- description: "Update a specific section in PROJECT_MEMORY.md.",
182
- inputSchema: {
183
- type: "object",
184
- properties: {
185
- section: { type: "string", description: "Section name (e.g., HISTORY, ACTIVE TASKS)" },
186
- content: { type: "string", description: "Markdown content to append or set" },
187
- },
188
- required: ["section", "content"],
189
- },
190
- },
191
- {
192
- name: "orchestrate_loop",
193
- description: "Process the pending Hermes messages and trigger dynamic state transitions.",
194
- inputSchema: { type: "object", properties: {} },
195
- },
196
- {
197
- name: "send_agent_message",
198
- description: "Send a Hermes protocol message to another agent for collaboration or sub-tasking.",
199
- inputSchema: {
200
- type: "object",
201
- properties: {
202
- from: { type: "string", description: "Sender agent (e.g., @manager, @backend)." },
203
- to: { type: "string", description: "Target agent (e.g., @backend, @quality)." },
204
- category: { type: "string", enum: ["ACTION", "DELEGATION", "SUBTASK", "REPLY", "ALERT"], description: "Message type." },
205
- content: { type: "string", description: "Task description or message content." },
206
- traceId: { type: "string", description: "Active Trace ID." },
207
- parentId: { type: "string", description: "Optional parent task trace ID for hierarchical tracking." },
208
- priority: { type: "string", enum: ["HIGH", "NORMAL", "LOW"], description: "Optional priority level (HIGH, NORMAL, LOW). Defaults to HIGH for ALERT/ACTION." },
209
- },
210
- required: ["from", "to", "category", "content", "traceId"],
211
- },
212
- },
213
- {
214
- name: "acquire_lock",
215
- description: "Acquire a stateful lock on a shared resource (like PROJECT_MEMORY.md) to prevent concurrent write conflicts.",
216
- inputSchema: {
217
- type: "object",
218
- properties: {
219
- resource: { type: "string", description: "The resource name or path to lock (e.g., 'memory')." },
220
- agent: { type: "string", description: "The agent requesting the lock (e.g., '@backend')." },
221
- ttl: { type: "number", description: "Time-to-live in seconds before the lock auto-expires (default: 60)." }
222
- },
223
- required: ["resource", "agent"]
224
- }
225
- },
226
- {
227
- name: "release_lock",
228
- description: "Release a previously acquired lock on a resource.",
229
- inputSchema: {
230
- type: "object",
231
- properties: {
232
- resource: { type: "string", description: "The resource name or path." },
233
- agent: { type: "string", description: "The agent releasing the lock." }
234
- },
235
- required: ["resource", "agent"]
236
- }
237
- },
238
- {
239
- name: "register_agent",
240
- description: "Register an agent instance with the Control Plane and validate its permissions.",
241
- inputSchema: {
242
- type: "object",
243
- properties: {
244
- agent: { type: "string", description: "The agent name (e.g., '@backend')." },
245
- role: { type: "string", description: "The role of the agent." },
246
- capability: { type: "number", description: "The capability score (1-10)." }
247
- },
248
- required: ["agent", "role"]
249
- }
250
- },
251
- {
252
- name: "log_agent_action",
253
- description: "Log an agent action to the framework logs.",
254
- inputSchema: {
255
- type: "object",
256
- properties: {
257
- agent: { type: "string", description: "The agent name (e.g., @manager, @backend)" },
258
- action: { type: "string", description: "Action type or name" },
259
- traceId: { type: "string", description: "The active Trace ID" },
260
- status: { type: "string", enum: ["SUCCESS", "FAILURE"], description: "The status of the action" },
261
- summary: { type: "string", description: "Brief description of the action taken" },
262
- findings: { type: "string", description: "Optional comma-separated findings or details" }
263
- },
264
- required: ["agent", "action", "traceId", "status", "summary"]
265
- }
266
- },
267
- {
268
- name: "update_contract_hash",
269
- description: "Re-generate and synchronize the backend contract SHA-256 hash.",
270
- inputSchema: { type: "object", properties: {} }
271
- }
272
- ];
@@ -1,70 +0,0 @@
1
- import fs from "fs";
2
- import { safePath } from "../../utils/security.js";
3
- import { ToolArgs, ToolResult } from "../types.js";
4
- import { Metrics } from "../../utils/metrics.js";
5
- import { verifyCorporateCompliance } from "../../utils/compliance.js";
6
-
7
- interface SurgicalEdit {
8
- path: string;
9
- oldText: string;
10
- newText: string;
11
- allowMultiple?: boolean;
12
- }
13
-
14
- /**
15
- * Performs multiple surgical text replacements across multiple files in a single batch.
16
- */
17
- export function handleBatchSurgicalEdit(projectRoot: string, args: ToolArgs): ToolResult {
18
- const edits = args.edits as SurgicalEdit[];
19
- if (!Array.isArray(edits) || edits.length === 0) {
20
- throw new Error("No edits provided in the batch request.");
21
- }
22
-
23
- const results: string[] = [];
24
- let totalTokens = 0;
25
-
26
- for (const edit of edits) {
27
- const filePath = safePath(projectRoot, edit.path);
28
- if (!fs.existsSync(filePath)) {
29
- throw new Error(`File not found: ${edit.path}`);
30
- }
31
-
32
- const content = fs.readFileSync(filePath, "utf8");
33
- const { oldText, newText, allowMultiple = false } = edit;
34
-
35
- if (!content.includes(oldText)) {
36
- throw new Error(`Text not found in file ${edit.path}: "${oldText.slice(0, 50)}..."`);
37
- }
38
-
39
- // Surgical precision guard
40
- if (!allowMultiple) {
41
- const firstIndex = content.indexOf(oldText);
42
- const lastIndex = content.lastIndexOf(oldText);
43
- if (firstIndex !== lastIndex) {
44
- throw new Error(`Ambiguous replacement in ${edit.path}: "${oldText.slice(0, 50)}..." found multiple times.`);
45
- }
46
- }
47
-
48
- const newContent = allowMultiple
49
- ? content.replace(new RegExp(oldText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), newText)
50
- : content.replace(oldText, newText);
51
-
52
- // ENFORCE CORPORATE COMPLIANCE
53
- verifyCorporateCompliance(newContent, edit.path);
54
-
55
- fs.writeFileSync(filePath, newContent);
56
-
57
- const tokens = Metrics.estimateTokens(newText);
58
- totalTokens += tokens;
59
- results.push(`✅ Edited ${edit.path}`);
60
- }
61
-
62
- Metrics.logUsage(projectRoot, "@mcp", `batch_surgical_edit: ${edits.length} files`, totalTokens);
63
-
64
- return {
65
- content: [{
66
- type: "text",
67
- text: `Successfully performed ${edits.length} edits:\n${results.join("\n")}`
68
- }]
69
- };
70
- }
@@ -1,29 +0,0 @@
1
- import fs from "fs";
2
- import { safePath } from "../../utils/security.js";
3
- import { ToolArgs, ToolResult } from "../types.js";
4
- import { Metrics } from "../../utils/metrics.js";
5
-
6
- export function handlePatchFile(projectRoot: string, args: ToolArgs): ToolResult {
7
- const filePath = safePath(projectRoot, args.path as string);
8
- const lines = fs.readFileSync(filePath, "utf8").split("\n");
9
- const start = (args.startLine as number) - 1;
10
- const end = args.endLine as number;
11
- const newContent = (args.newContent as string).split("\n");
12
-
13
- if (start < 0 || start > lines.length) {
14
- throw new Error(`Invalid start line: ${start + 1}. File has ${lines.length} lines.`);
15
- }
16
- if (end < start + 1 || end > lines.length) {
17
- throw new Error(`Invalid end line: ${end}. Must be between ${start + 1} and ${lines.length}.`);
18
- }
19
-
20
- lines.splice(start, end - start, ...newContent);
21
- fs.writeFileSync(filePath, lines.join("\n"));
22
-
23
- const tokens = Metrics.estimateTokens(args.newContent as string);
24
- Metrics.logUsage(projectRoot, "@mcp", `patch_file: ${args.path}`, tokens);
25
-
26
- return { content: [{ type: "text", text: `✅ File patched successfully: ${args.path}` }] };
27
- }
28
-
29
-
@@ -1,39 +0,0 @@
1
- import fs from "fs";
2
- import { safePath } from "../../utils/security.js";
3
- import { ToolArgs, ToolResult } from "../types.js";
4
- import { Metrics } from "../../utils/metrics.js";
5
-
6
- export function handleReadFile(projectRoot: string, args: ToolArgs): ToolResult {
7
- const filePath = safePath(projectRoot, args.path as string);
8
- const startLine = args.startLine !== undefined ? Number(args.startLine) : undefined;
9
- const endLine = args.endLine !== undefined ? Number(args.endLine) : undefined;
10
-
11
- const content = fs.readFileSync(filePath, "utf8");
12
- const lines = content.split(/\r?\n/);
13
- if (startLine !== undefined || endLine !== undefined) {
14
- const start = startLine !== undefined ? Math.max(1, startLine) - 1 : 0;
15
- const end = endLine !== undefined ? Math.min(lines.length, endLine) : lines.length;
16
- const sliced = lines.slice(start, end).join("\n");
17
- const tokens = Metrics.estimateTokens(sliced);
18
- Metrics.logUsage(projectRoot, "@mcp", `read_file: ${args.path}`, tokens);
19
- return { content: [{ type: "text", text: sliced }] };
20
- }
21
-
22
- // Default protection limit: 1000 lines
23
- const DEFAULT_MAX_LINES = 1000;
24
- if (lines.length > DEFAULT_MAX_LINES) {
25
- const sliced = lines.slice(0, DEFAULT_MAX_LINES).join("\n");
26
- const tokens = Metrics.estimateTokens(sliced);
27
- Metrics.logUsage(projectRoot, "@mcp", `read_file: ${args.path} (truncated)`, tokens);
28
- return {
29
- content: [{
30
- type: "text",
31
- 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.]`
32
- }]
33
- };
34
- }
35
-
36
- const tokens = Metrics.estimateTokens(content);
37
- Metrics.logUsage(projectRoot, "@mcp", `read_file: ${args.path}`, tokens);
38
- return { content: [{ type: "text", text: content }] };
39
- }
@@ -1,50 +0,0 @@
1
- import fs from "fs";
2
- import { safePath } from "../../utils/security.js";
3
- import { ToolArgs, ToolResult } from "../types.js";
4
- import { Metrics } from "../../utils/metrics.js";
5
-
6
- import { verifyCorporateCompliance } from "../../utils/compliance.js";
7
-
8
- export function handleReplaceText(projectRoot: string, args: ToolArgs): ToolResult {
9
- const filePath = safePath(projectRoot, args.path as string);
10
- const content = fs.readFileSync(filePath, "utf8");
11
- const oldText = args.oldText as string;
12
- const newText = args.newText as string;
13
- const allowMultiple = args.allowMultiple || false; // Default to false
14
-
15
- if (!content.includes(oldText)) {
16
- throw new Error(`Text not found in file: ${oldText.slice(0, 100)}...`);
17
- }
18
-
19
- // Surgical precision guard: reject ambiguous replacements unless allowMultiple is true.
20
- if (!allowMultiple) {
21
- const firstIndex = content.indexOf(oldText);
22
- const lastIndex = content.lastIndexOf(oldText);
23
- if (firstIndex !== lastIndex) {
24
- const count = (content.match(new RegExp(oldText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g")) || []).length;
25
- throw new Error(
26
- `Ambiguous replacement: "${oldText.slice(0, 80)}..." found ${count} times in ${args.path}. ` +
27
- "Provide a longer, unique context string or set 'allow_multiple' to true."
28
- );
29
- }
30
- }
31
-
32
- // Perform replacement(s)
33
- let newContent: string;
34
- if (allowMultiple) {
35
- newContent = content.replace(new RegExp(oldText.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), newText);
36
- } else {
37
- newContent = content.replace(oldText, newText);
38
- }
39
-
40
- // ENFORCE CORPORATE COMPLIANCE
41
- verifyCorporateCompliance(newContent, args.path as string);
42
-
43
- fs.writeFileSync(filePath, newContent);
44
-
45
- const tokens = Metrics.estimateTokens(newText);
46
- Metrics.logUsage(projectRoot, "@mcp", `replace_text: ${args.path}`, tokens);
47
-
48
- return { content: [{ type: "text", text: `✅ Surgical edit successful in ${args.path}` }] };
49
- }
50
-
@@ -1,33 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { safePath, resolveFrameworkDir } from "../../utils/security.js";
4
- import { Metrics } from "../../utils/metrics.js";
5
- import { ToolArgs, ToolResult } from "../types.js";
6
-
7
- import { verifyCorporateCompliance } from "../../utils/compliance.js";
8
-
9
- export function handleWriteFile(projectRoot: string, args: ToolArgs): ToolResult {
10
- const filePath = safePath(projectRoot, args.path as string);
11
- const content = args.content as string;
12
-
13
- // ENFORCE CORPORATE COMPLIANCE
14
- verifyCorporateCompliance(content, args.path as string);
15
-
16
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
17
- fs.writeFileSync(filePath, content);
18
-
19
- // AUTO-LOGGING & METRICS
20
- const tokens = Metrics.estimateTokens(content);
21
- Metrics.logUsage(projectRoot, "@mcp", `write_file: ${args.path}`, tokens);
22
-
23
- try {
24
- const frameworkDir = resolveFrameworkDir(projectRoot);
25
- const memoryPath = path.join(projectRoot, frameworkDir, "memory/PROJECT_MEMORY.md");
26
- if (fs.existsSync(memoryPath)) {
27
- const entry = `\n### ${new Date().toISOString().split("T")[0]} — Auto-Update\n- **Action:** wrote file \`${args.path}\` (${tokens} tokens estimated).\n`;
28
- fs.appendFileSync(memoryPath, entry);
29
- }
30
- } catch { /* ignore memory logging errors */ }
31
-
32
- return { content: [{ type: "text", text: `✅ File written: ${args.path}` }] };
33
- }