agent-enderun 1.1.9 → 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 -92
  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 +18 -8
  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 -101
  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,54 +0,0 @@
1
- export interface ToolDefinition {
2
- name: string;
3
- description: string;
4
- inputSchema: {
5
- type: "object";
6
- properties: Record<string, unknown>;
7
- required?: string[];
8
- };
9
- }
10
-
11
- export interface CallToolRequest {
12
- params: {
13
- name: string;
14
- arguments?: ToolArgs;
15
- };
16
- }
17
-
18
- export interface ToolArgs {
19
- path?: string;
20
- content?: string;
21
- oldText?: string;
22
- newText?: string;
23
- startLine?: number;
24
- endLine?: number;
25
- newContent?: string;
26
- section?: string;
27
- to?: string;
28
- category?: "ACTION" | "DELEGATION" | "INFO" | "ALERT";
29
- traceId?: string;
30
- agent?: string;
31
- action?: string;
32
- status?: "SUCCESS" | "FAILURE";
33
- summary?: string;
34
- findings?: string;
35
- allowMultiple?: boolean;
36
- timeout?: number;
37
- from?: string;
38
- priority?: "HIGH" | "NORMAL" | "LOW";
39
- // Added for new tools
40
- port?: number;
41
- pattern?: string;
42
- includePattern?: string;
43
- excludePattern?: string;
44
- maxDepth?: number;
45
- includeFiles?: boolean;
46
- edits?: unknown[];
47
- command?: string;
48
- filter?: string;
49
- }
50
-
51
- export interface ToolResult {
52
- isError?: boolean;
53
- content: Array<{ type: "text"; text: string }>;
54
- }
@@ -1,20 +0,0 @@
1
- import { execFileSync } from "child_process";
2
-
3
- /**
4
- * Executes a CLI command safely using execFileSync (no shell injection risk).
5
- * Captures stderr gracefully to prevent stream crashes.
6
- */
7
- export function safeExec(command: string, args: string[], cwd: string, timeout?: number): string {
8
- try {
9
- return execFileSync(command, args, {
10
- cwd,
11
- encoding: "utf8",
12
- timeout: timeout || 30000,
13
- maxBuffer: 1024 * 1024,
14
- stdio: ["pipe", "pipe", "pipe"],
15
- });
16
- } catch (error: unknown) {
17
- const err = error as { stderr?: string; message?: string };
18
- throw new Error(err.stderr || err.message || "Command execution failed", { cause: error });
19
- }
20
- }
@@ -1,37 +0,0 @@
1
- /**
2
- * Enterprise Compliance Guardrail
3
- * Checks content against corporate standards before allowing file mutations.
4
- */
5
- export function verifyCorporateCompliance(content: string, filePath: string): void {
6
- // 1. Zero Console Policy
7
- if (content.includes("console.log(") || content.includes("console.warn(") || content.includes("console.error(")) {
8
- if (!filePath.includes("logger.ts") && !filePath.includes("check.ts") && !filePath.includes("cli.ts")) {
9
- throw new Error(
10
- "❌ Corporate Compliance Breach: 'console.log/warn/error' usage is forbidden. " +
11
- "Use the 'logger' system from '@/shared/logger' instead."
12
- );
13
- }
14
- }
15
-
16
- // 2. No Explicit Any Policy
17
- const anyRegex = /[:<]\s*any\b|\bas\s+any\b/g;
18
- if (anyRegex.test(content)) {
19
- if (!filePath.includes("definitions.ts") && !filePath.includes("types.ts")) {
20
- throw new Error(
21
- "❌ Corporate Compliance Breach: 'any' type is forbidden. " +
22
- "Use 'unknown', 'generics', or proper interfaces for type safety."
23
- );
24
- }
25
- }
26
-
27
- // 3. Hardcoded Secrets Guard (Simple heuristic)
28
- const secretKeywords = [/API_KEY\s*=\s*['"][^'"]+['"]/i, /SECRET\s*=\s*['"][^'"]+['"]/i, /PASSWORD\s*=\s*['"][^'"]+['"]/i];
29
- for (const regex of secretKeywords) {
30
- if (regex.test(content) && !filePath.endsWith(".env.example")) {
31
- throw new Error(
32
- "❌ Corporate Compliance Breach: Hardcoded secrets detected. " +
33
- "All sensitive data must be managed via '.env' files."
34
- );
35
- }
36
- }
37
- }
@@ -1,53 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { resolveFrameworkDir } from "./security.js";
4
-
5
- /**
6
- * Token and Metric Tracker for Enderun Core.
7
- * Estimates token usage and logs operational costs.
8
- */
9
-
10
- interface MetricEntry {
11
- timestamp: string;
12
- agent: string;
13
- action: string;
14
- estimatedTokens: number;
15
- }
16
-
17
- export const Metrics = {
18
- /**
19
- * Estimates tokens based on character count (rough heuristic: 1 token ~= 4 chars).
20
- */
21
- estimateTokens: (text: string): number => {
22
- return Math.ceil(text.length / 4);
23
- },
24
-
25
- /**
26
- * Logs the token usage and action to the observability metrics file.
27
- */
28
- logUsage: (projectRoot: string, agent: string, action: string, tokens: number) => {
29
- const frameworkDir = resolveFrameworkDir(projectRoot);
30
- const metricsPath = path.join(projectRoot, frameworkDir, "observability/metrics.json");
31
- try {
32
- const metricsDir = path.dirname(metricsPath);
33
- if (!fs.existsSync(metricsDir)) fs.mkdirSync(metricsDir, { recursive: true });
34
-
35
- let currentMetrics: MetricEntry[] = [];
36
- if (fs.existsSync(metricsPath)) {
37
- currentMetrics = JSON.parse(fs.readFileSync(metricsPath, "utf8"));
38
- }
39
-
40
- currentMetrics.push({
41
- timestamp: new Date().toISOString(),
42
- agent,
43
- action,
44
- estimatedTokens: tokens
45
- });
46
-
47
- // Keep only last 100 entries to save space
48
- if (currentMetrics.length > 100) currentMetrics.shift();
49
-
50
- fs.writeFileSync(metricsPath, JSON.stringify(currentMetrics, null, 2));
51
- } catch { /* ignore: metrics should not block the main process */ }
52
- }
53
- };
@@ -1,64 +0,0 @@
1
- import path from "path";
2
- import fs from "fs";
3
-
4
- /**
5
- * Validates and resolves a user-provided path to prevent path traversal attacks.
6
- * Ensures the resolved path stays within the project root boundary.
7
- */
8
- export function safePath(projectRoot: string, userPath: string): string {
9
- const resolved = path.resolve(projectRoot, userPath);
10
- const normalizedRoot = path.resolve(projectRoot);
11
-
12
- if (!resolved.startsWith(normalizedRoot + path.sep) && resolved !== normalizedRoot) {
13
- throw new Error(`Access denied: path "${userPath}" escapes project root.`);
14
- }
15
-
16
- return resolved;
17
- }
18
-
19
- /**
20
- * Resolves the active framework directory.
21
- * Priority: package.json `enderun.frameworkDir` → `.enderun` → adapter dirs.
22
- * This ensures the canonical framework directory is always used,
23
- * even when adapter-specific dirs (e.g. `.gemini`) exist alongside it.
24
- */
25
- export function resolveFrameworkDir(projectRoot: string): string {
26
- // 1. Authoritative source: read from package.json if present
27
- try {
28
- const pkgPath = path.join(projectRoot, "package.json");
29
- if (fs.existsSync(pkgPath)) {
30
- const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8")) as Record<string, unknown>;
31
- const enderunConfig = pkg["enderun"] as Record<string, unknown> | undefined;
32
- if (enderunConfig && typeof enderunConfig["frameworkDir"] === "string") {
33
- return enderunConfig["frameworkDir"];
34
- }
35
- }
36
- } catch {
37
- // ignore — fall through to filesystem scan
38
- }
39
-
40
- // 2. Filesystem scan
41
- const candidates = [
42
- ".enderun",
43
- ".cursor",
44
- ".claude",
45
- ".github",
46
- ".grok",
47
- ".windsurf",
48
- ".antigravity",
49
- ".agent",
50
- ".gemini/antigravity-cli",
51
- ".gemini",
52
- ".agents",
53
- ];
54
-
55
- for (const candidate of candidates) {
56
- const candidatePath = path.join(projectRoot, candidate);
57
- if (fs.existsSync(candidatePath)) {
58
- return candidate;
59
- }
60
- }
61
-
62
- return ".gemini";
63
- }
64
-
@@ -1,206 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
- import fs from "fs";
3
- import path from "path";
4
- import { handleReplaceText } from "../../../src/tools/file_system/replace_text.js";
5
- import { handlePatchFile } from "../../../src/tools/file_system/patch_file.js";
6
- import { handleReadFile } from "../../../src/tools/file_system/read_file.js";
7
- import { handleWriteFile } from "../../../src/tools/file_system/write_file.js";
8
- import { ToolArgs } from "../../../src/tools/types.js";
9
-
10
- const TEST_DIR = path.join(__dirname, "../_temp_test_files");
11
- const TEST_FILE = path.join(TEST_DIR, "test_file.txt");
12
- const MEMORY_DIR = path.join(TEST_DIR, ".gemini/memory");
13
- const MEMORY_FILE = path.join(MEMORY_DIR, "PROJECT_MEMORY.md");
14
-
15
- beforeEach(() => {
16
- fs.mkdirSync(TEST_DIR, { recursive: true });
17
- });
18
-
19
- afterEach(() => {
20
- fs.rmSync(TEST_DIR, { recursive: true, force: true });
21
- });
22
-
23
- describe("File System Tools", () => {
24
-
25
- describe("handleReplaceText", () => {
26
- it("should replace a single occurrence of text", () => {
27
- fs.writeFileSync(TEST_FILE, "hello world", "utf8");
28
- const args: ToolArgs = {
29
- path: TEST_FILE,
30
- oldText: "world",
31
- newText: "there",
32
- };
33
- const result = handleReplaceText(TEST_DIR, args);
34
- expect(result.content[0].text).toContain("✅ Surgical edit successful");
35
- expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("hello there");
36
- });
37
-
38
- it("should throw an error if text is not found", () => {
39
- fs.writeFileSync(TEST_FILE, "hello world", "utf8");
40
- const args: ToolArgs = {
41
- path: TEST_FILE,
42
- oldText: "missing",
43
- newText: "found",
44
- };
45
- expect(() => handleReplaceText(TEST_DIR, args)).toThrowError("Text not found in file");
46
- });
47
-
48
- it("should throw an error for ambiguous replacement if allowMultiple is false", () => {
49
- fs.writeFileSync(TEST_FILE, "hello world world", "utf8");
50
- const args: ToolArgs = {
51
- path: TEST_FILE,
52
- oldText: "world",
53
- newText: "there",
54
- allowMultiple: false,
55
- };
56
- expect(() => handleReplaceText(TEST_DIR, args)).toThrowError("Ambiguous replacement");
57
- });
58
-
59
- it("should replace all occurrences of text if allowMultiple is true", () => {
60
- fs.writeFileSync(TEST_FILE, "hello world world", "utf8");
61
- const args: ToolArgs = {
62
- path: TEST_FILE,
63
- oldText: "world",
64
- newText: "there",
65
- allowMultiple: true,
66
- };
67
- const result = handleReplaceText(TEST_DIR, args);
68
- expect(result.content[0].text).toContain("✅ Surgical edit successful");
69
- expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("hello there there");
70
- });
71
-
72
- it("should log usage to metrics.json upon replace", () => {
73
- fs.writeFileSync(TEST_FILE, "hello world", "utf8");
74
- const args: ToolArgs = {
75
- path: TEST_FILE,
76
- oldText: "world",
77
- newText: "there",
78
- };
79
- handleReplaceText(TEST_DIR, args);
80
- const metricsPath = path.join(TEST_DIR, ".gemini/observability/metrics.json");
81
- expect(fs.existsSync(metricsPath)).toBe(true);
82
- const metrics = JSON.parse(fs.readFileSync(metricsPath, "utf8"));
83
- expect(metrics[0].action).toContain("replace_text");
84
- });
85
- });
86
-
87
- describe("handlePatchFile", () => {
88
- it("should replace lines in specified range", () => {
89
- fs.writeFileSync(TEST_FILE, "line1\nline2\nline3\nline4", "utf8");
90
- const args: ToolArgs = {
91
- path: TEST_FILE,
92
- startLine: 2,
93
- endLine: 3,
94
- newContent: "patched2\npatched3",
95
- };
96
- const result = handlePatchFile(TEST_DIR, args);
97
- expect(result.content[0].text).toContain("✅ File patched successfully");
98
- expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("line1\npatched2\npatched3\nline4");
99
- });
100
-
101
- it("should throw an error for invalid start line", () => {
102
- fs.writeFileSync(TEST_FILE, "line1\nline2", "utf8");
103
- const args: ToolArgs = {
104
- path: TEST_FILE,
105
- startLine: 5,
106
- endLine: 2,
107
- newContent: "error",
108
- };
109
- expect(() => handlePatchFile(TEST_DIR, args)).toThrowError("Invalid start line");
110
- });
111
-
112
- it("should throw an error for invalid end line", () => {
113
- fs.writeFileSync(TEST_FILE, "line1\nline2", "utf8");
114
- const args: ToolArgs = {
115
- path: TEST_FILE,
116
- startLine: 1,
117
- endLine: 5,
118
- newContent: "error",
119
- };
120
- expect(() => handlePatchFile(TEST_DIR, args)).toThrowError("Invalid end line");
121
- });
122
-
123
- it("should log usage to metrics.json upon patch", () => {
124
- fs.writeFileSync(TEST_FILE, "line1\nline2\nline3\nline4", "utf8");
125
- const args: ToolArgs = {
126
- path: TEST_FILE,
127
- startLine: 2,
128
- endLine: 3,
129
- newContent: "patched2\npatched3",
130
- };
131
- handlePatchFile(TEST_DIR, args);
132
- const metricsPath = path.join(TEST_DIR, ".gemini/observability/metrics.json");
133
- expect(fs.existsSync(metricsPath)).toBe(true);
134
- const metrics = JSON.parse(fs.readFileSync(metricsPath, "utf8"));
135
- expect(metrics[0].action).toContain("patch_file");
136
- });
137
- });
138
-
139
- describe("handleReadFile", () => {
140
- it("should read full file content", () => {
141
- fs.writeFileSync(TEST_FILE, "hello world", "utf8");
142
- const args: ToolArgs = { path: TEST_FILE };
143
- const result = handleReadFile(TEST_DIR, args);
144
- expect(result.content[0].text).toBe("hello world");
145
- });
146
-
147
- it("should read sliced lines", () => {
148
- fs.writeFileSync(TEST_FILE, "line1\nline2\nline3\nline4", "utf8");
149
- const args: ToolArgs = {
150
- path: TEST_FILE,
151
- startLine: 2,
152
- endLine: 3
153
- };
154
- const result = handleReadFile(TEST_DIR, args);
155
- expect(result.content[0].text).toBe("line2\nline3");
156
- });
157
-
158
- it("should truncate long files", () => {
159
- const longContent = Array.from({ length: 1005 }, (_, i) => `line ${i + 1}`).join("\n");
160
- fs.writeFileSync(TEST_FILE, longContent, "utf8");
161
- const args: ToolArgs = { path: TEST_FILE };
162
- const result = handleReadFile(TEST_DIR, args);
163
- expect(result.content[0].text).toContain("TRUNCATED");
164
- expect(result.content[0].text).toContain("line 1000");
165
- expect(result.content[0].text).not.toContain("line 1001");
166
- });
167
- });
168
-
169
- describe("handleWriteFile", () => {
170
- it("should write new file and log usage", () => {
171
- const args: ToolArgs = {
172
- path: TEST_FILE,
173
- content: "hello world"
174
- };
175
- const result = handleWriteFile(TEST_DIR, args);
176
- expect(result.content[0].text).toContain("✅ File written");
177
- expect(fs.readFileSync(TEST_FILE, "utf8")).toBe("hello world");
178
- });
179
-
180
- it("should write new file and log usage to metrics.json", () => {
181
- const args: ToolArgs = {
182
- path: TEST_FILE,
183
- content: "hello world"
184
- };
185
- handleWriteFile(TEST_DIR, args);
186
- const metricsPath = path.join(TEST_DIR, ".gemini/observability/metrics.json");
187
- expect(fs.existsSync(metricsPath)).toBe(true);
188
- const metrics = JSON.parse(fs.readFileSync(metricsPath, "utf8"));
189
- expect(metrics[0].action).toContain("write_file");
190
- expect(metrics[0].estimatedTokens).toBeGreaterThan(0);
191
- });
192
-
193
- it("should append update to PROJECT_MEMORY.md if it exists", () => {
194
- fs.mkdirSync(MEMORY_DIR, { recursive: true });
195
- fs.writeFileSync(MEMORY_FILE, "## CURRENT STATUS\n", "utf8");
196
- const args: ToolArgs = {
197
- path: TEST_FILE,
198
- content: "hello world"
199
- };
200
- handleWriteFile(TEST_DIR, args);
201
- const memoryContent = fs.readFileSync(MEMORY_FILE, "utf8");
202
- expect(memoryContent).toContain("Auto-Update");
203
- expect(memoryContent).toContain("wrote file");
204
- });
205
- });
206
- });
@@ -1,136 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
- import fs from "fs";
3
- import path from "path";
4
- import { handleSendAgentMessage } from "../../../src/tools/messaging/send_message.js";
5
- import { ToolArgs } from "../../../src/tools/types.js";
6
-
7
- const TEST_DIR = path.resolve(__dirname, "../../_temp_messaging_tests");
8
- const MESSAGES_DIR = path.join(TEST_DIR, ".gemini/messages");
9
- const BACKEND_LOCK_FILE = path.join(MESSAGES_DIR, "backend.lock");
10
-
11
- beforeEach(() => {
12
- fs.mkdirSync(TEST_DIR, { recursive: true });
13
- // Write a dummy package.json to test directory to lock frameworkDir as .gemini
14
- const dummyPkg = {
15
- name: "test-pkg",
16
- enderun: {
17
- frameworkDir: ".gemini"
18
- }
19
- };
20
- fs.writeFileSync(path.join(TEST_DIR, "package.json"), JSON.stringify(dummyPkg, null, 2), "utf8");
21
- });
22
-
23
- afterEach(() => {
24
- fs.rmSync(TEST_DIR, { recursive: true, force: true });
25
- });
26
-
27
- describe("Hermes Lock Protocol & Message sending", () => {
28
- it("should successfully send message when lock is not present", async () => {
29
- const args: ToolArgs = {
30
- to: "@backend",
31
- from: "@manager",
32
- category: "ACTION",
33
- content: "Build database models",
34
- traceId: "T-123",
35
- priority: "HIGH"
36
- };
37
-
38
- const result = await handleSendAgentMessage(TEST_DIR, args);
39
- expect(result.content[0].text).toContain("✅ Message sent to @backend");
40
-
41
- // Verify the message file contains the sent message
42
- const messageFilePath = path.join(MESSAGES_DIR, "backend.json");
43
- expect(fs.existsSync(messageFilePath)).toBe(true);
44
-
45
- const content = fs.readFileSync(messageFilePath, "utf8");
46
- const msg = JSON.parse(content.trim());
47
- expect(msg.from).toBe("@manager");
48
- expect(msg.to).toBe("@backend");
49
- expect(msg.category).toBe("ACTION");
50
- expect(msg.content).toBe("Build database models");
51
- expect(msg.traceId).toBe("T-123");
52
- expect(msg.priority).toBe("HIGH");
53
- expect(msg.status).toBe("PENDING");
54
- });
55
-
56
- it("should retry and fail to send message if lock is kept busy", async () => {
57
- // Prepare a busy lock file
58
- fs.mkdirSync(MESSAGES_DIR, { recursive: true });
59
- fs.writeFileSync(BACKEND_LOCK_FILE, "Locked by @test at " + new Date().toISOString(), "utf8");
60
-
61
- const args: ToolArgs = {
62
- to: "@backend",
63
- from: "@manager",
64
- category: "ACTION",
65
- content: "Build database models",
66
- traceId: "T-123"
67
- };
68
-
69
- const startTime = Date.now();
70
- const result = await handleSendAgentMessage(TEST_DIR, args);
71
- const duration = Date.now() - startTime;
72
-
73
- expect(result.isError).toBe(true);
74
- expect(result.content[0].text).toContain("❌ Could not send message to @backend: Hermes lock is busy.");
75
- // Retries takes 3 attempts with 500ms delay -> duration should be at least ~1000ms
76
- expect(duration).toBeGreaterThanOrEqual(1000);
77
- });
78
-
79
- it("should bypass and acquire lock if existing lock is stale (older than 5s)", async () => {
80
- fs.mkdirSync(MESSAGES_DIR, { recursive: true });
81
- // Set lock file mtime to 10 seconds ago
82
- fs.writeFileSync(BACKEND_LOCK_FILE, "Locked by @test at " + new Date().toISOString(), "utf8");
83
- const tenSecondsAgo = new Date(Date.now() - 10000);
84
- fs.utimesSync(BACKEND_LOCK_FILE, tenSecondsAgo, tenSecondsAgo);
85
-
86
- const args: ToolArgs = {
87
- to: "@backend",
88
- from: "@manager",
89
- category: "ACTION",
90
- content: "Build database models",
91
- traceId: "T-123"
92
- };
93
-
94
- const result = await handleSendAgentMessage(TEST_DIR, args);
95
- expect(result.content[0].text).toContain("✅ Message sent to @backend");
96
- expect(fs.existsSync(BACKEND_LOCK_FILE)).toBe(false); // Lock should have been unlinked in finally
97
- });
98
-
99
- it("should safely resolve concurrent messages and execute them in sequence", async () => {
100
- const send1Promise = handleSendAgentMessage(TEST_DIR, {
101
- to: "@backend",
102
- from: "@manager",
103
- category: "ACTION",
104
- content: "Job 1",
105
- traceId: "T-123"
106
- });
107
-
108
- // Delay starting the second call slightly to make sure lock is acquired by Job 1 first
109
- await new Promise((resolve) => setTimeout(resolve, 50));
110
-
111
- const send2Promise = handleSendAgentMessage(TEST_DIR, {
112
- to: "@backend",
113
- from: "@frontend",
114
- category: "INFO",
115
- content: "Job 2",
116
- traceId: "T-123"
117
- });
118
-
119
- const [res1, res2] = await Promise.all([send1Promise, send2Promise]);
120
-
121
- expect(res1.isError).toBeFalsy();
122
- expect(res2.isError).toBeFalsy();
123
- expect(res1.content[0].text).toContain("✅ Message sent to @backend");
124
- expect(res2.content[0].text).toContain("✅ Message sent to @backend");
125
-
126
- // Verify both messages exist in order in the message log file
127
- const messageFilePath = path.join(MESSAGES_DIR, "backend.json");
128
- const lines = fs.readFileSync(messageFilePath, "utf8").trim().split("\n");
129
- expect(lines.length).toBe(2);
130
-
131
- const msg1 = JSON.parse(lines[0]);
132
- const msg2 = JSON.parse(lines[1]);
133
- expect(msg1.content).toBe("Job 1");
134
- expect(msg2.content).toBe("Job 2");
135
- });
136
- });
@@ -1,14 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "NodeNext",
5
- "moduleResolution": "NodeNext",
6
- "rootDir": "src",
7
- "outDir": "./dist",
8
- "strict": true,
9
- "skipLibCheck": true,
10
- "esModuleInterop": true,
11
- "types": ["node"]
12
- },
13
- "include": ["src/**/*.ts"]
14
- }
@@ -1,16 +0,0 @@
1
- export const ADAPTER_IDS = ["gemini", "claude", "grok", "cursor", "codex", "antigravity-cli"] as const;
2
- export type AdapterId = (typeof ADAPTER_IDS)[number];
3
-
4
- export type AdapterRole = "commander" | "architect" | "researcher" | "implementer" | "general";
5
-
6
- export interface AdapterConfig {
7
- id: AdapterId;
8
- frameworkDir: string;
9
- shimFile: string;
10
- shimTemplate: string;
11
- role: AdapterRole;
12
- templateDir: ".enderun";
13
- nestedDirs?: string[];
14
- agentsDir?: string; // Directory to write individual agents/rules, relative to projectRoot
15
- agentsExt?: string; // Extensions for agent files (.md or .mdc)
16
- }