symbiote-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/LICENSE +21 -0
  2. package/dist/bin/symbiote.d.ts +3 -0
  3. package/dist/bin/symbiote.d.ts.map +1 -0
  4. package/dist/bin/symbiote.js +202 -0
  5. package/dist/bin/symbiote.js.map +1 -0
  6. package/dist/bin/synapse.d.ts +3 -0
  7. package/dist/bin/synapse.d.ts.map +1 -0
  8. package/dist/bin/synapse.js +369 -0
  9. package/dist/bin/synapse.js.map +1 -0
  10. package/dist/src/brain/embeddings.d.ts +9 -0
  11. package/dist/src/brain/embeddings.d.ts.map +1 -0
  12. package/dist/src/brain/embeddings.js +24 -0
  13. package/dist/src/brain/embeddings.js.map +1 -0
  14. package/dist/src/brain/health/constraint-checker.d.ts +16 -0
  15. package/dist/src/brain/health/constraint-checker.d.ts.map +1 -0
  16. package/dist/src/brain/health/constraint-checker.js +93 -0
  17. package/dist/src/brain/health/constraint-checker.js.map +1 -0
  18. package/dist/src/brain/health/coupling-analyzer.d.ts +9 -0
  19. package/dist/src/brain/health/coupling-analyzer.d.ts.map +1 -0
  20. package/dist/src/brain/health/coupling-analyzer.js +105 -0
  21. package/dist/src/brain/health/coupling-analyzer.js.map +1 -0
  22. package/dist/src/brain/health/cycle-detector.d.ts +12 -0
  23. package/dist/src/brain/health/cycle-detector.d.ts.map +1 -0
  24. package/dist/src/brain/health/cycle-detector.js +79 -0
  25. package/dist/src/brain/health/cycle-detector.js.map +1 -0
  26. package/dist/src/brain/health/dead-code-detector.d.ts +9 -0
  27. package/dist/src/brain/health/dead-code-detector.d.ts.map +1 -0
  28. package/dist/src/brain/health/dead-code-detector.js +72 -0
  29. package/dist/src/brain/health/dead-code-detector.js.map +1 -0
  30. package/dist/src/brain/health/history.d.ts +21 -0
  31. package/dist/src/brain/health/history.d.ts.map +1 -0
  32. package/dist/src/brain/health/history.js +35 -0
  33. package/dist/src/brain/health/history.js.map +1 -0
  34. package/dist/src/brain/health/index.d.ts +25 -0
  35. package/dist/src/brain/health/index.d.ts.map +1 -0
  36. package/dist/src/brain/health/index.js +76 -0
  37. package/dist/src/brain/health/index.js.map +1 -0
  38. package/dist/src/brain/health/scorer.d.ts +19 -0
  39. package/dist/src/brain/health/scorer.d.ts.map +1 -0
  40. package/dist/src/brain/health/scorer.js +47 -0
  41. package/dist/src/brain/health/scorer.js.map +1 -0
  42. package/dist/src/brain/health/types.d.ts +67 -0
  43. package/dist/src/brain/health/types.d.ts.map +1 -0
  44. package/dist/src/brain/health/types.js +2 -0
  45. package/dist/src/brain/health/types.js.map +1 -0
  46. package/dist/src/brain/health.d.ts +30 -0
  47. package/dist/src/brain/health.d.ts.map +1 -0
  48. package/dist/src/brain/health.js +147 -0
  49. package/dist/src/brain/health.js.map +1 -0
  50. package/dist/src/brain/index.d.ts +3 -0
  51. package/dist/src/brain/index.d.ts.map +1 -0
  52. package/dist/src/brain/index.js +3 -0
  53. package/dist/src/brain/index.js.map +1 -0
  54. package/dist/src/brain/intent.d.ts +31 -0
  55. package/dist/src/brain/intent.d.ts.map +1 -0
  56. package/dist/src/brain/intent.js +120 -0
  57. package/dist/src/brain/intent.js.map +1 -0
  58. package/dist/src/commands/dna.d.ts +2 -0
  59. package/dist/src/commands/dna.d.ts.map +1 -0
  60. package/dist/src/commands/dna.js +128 -0
  61. package/dist/src/commands/dna.js.map +1 -0
  62. package/dist/src/commands/hooks.d.ts +6 -0
  63. package/dist/src/commands/hooks.d.ts.map +1 -0
  64. package/dist/src/commands/hooks.js +210 -0
  65. package/dist/src/commands/hooks.js.map +1 -0
  66. package/dist/src/commands/impact.d.ts +2 -0
  67. package/dist/src/commands/impact.d.ts.map +1 -0
  68. package/dist/src/commands/impact.js +50 -0
  69. package/dist/src/commands/impact.js.map +1 -0
  70. package/dist/src/commands/index.d.ts +9 -0
  71. package/dist/src/commands/index.d.ts.map +1 -0
  72. package/dist/src/commands/index.js +9 -0
  73. package/dist/src/commands/index.js.map +1 -0
  74. package/dist/src/commands/init.d.ts +2 -0
  75. package/dist/src/commands/init.d.ts.map +1 -0
  76. package/dist/src/commands/init.js +132 -0
  77. package/dist/src/commands/init.js.map +1 -0
  78. package/dist/src/commands/install.d.ts +2 -0
  79. package/dist/src/commands/install.d.ts.map +1 -0
  80. package/dist/src/commands/install.js +67 -0
  81. package/dist/src/commands/install.js.map +1 -0
  82. package/dist/src/commands/mcp.d.ts +2 -0
  83. package/dist/src/commands/mcp.d.ts.map +1 -0
  84. package/dist/src/commands/mcp.js +51 -0
  85. package/dist/src/commands/mcp.js.map +1 -0
  86. package/dist/src/commands/scan.d.ts +2 -0
  87. package/dist/src/commands/scan.d.ts.map +1 -0
  88. package/dist/src/commands/scan.js +46 -0
  89. package/dist/src/commands/scan.js.map +1 -0
  90. package/dist/src/commands/serve.d.ts +2 -0
  91. package/dist/src/commands/serve.d.ts.map +1 -0
  92. package/dist/src/commands/serve.js +93 -0
  93. package/dist/src/commands/serve.js.map +1 -0
  94. package/dist/src/commands/shared.d.ts +11 -0
  95. package/dist/src/commands/shared.d.ts.map +1 -0
  96. package/dist/src/commands/shared.js +137 -0
  97. package/dist/src/commands/shared.js.map +1 -0
  98. package/dist/src/commands/unbond.d.ts +2 -0
  99. package/dist/src/commands/unbond.d.ts.map +1 -0
  100. package/dist/src/commands/unbond.js +29 -0
  101. package/dist/src/commands/unbond.js.map +1 -0
  102. package/dist/src/core/algorithms.d.ts +19 -0
  103. package/dist/src/core/algorithms.d.ts.map +1 -0
  104. package/dist/src/core/algorithms.js +98 -0
  105. package/dist/src/core/algorithms.js.map +1 -0
  106. package/dist/src/core/embeddings.d.ts +12 -0
  107. package/dist/src/core/embeddings.d.ts.map +1 -0
  108. package/dist/src/core/embeddings.js +64 -0
  109. package/dist/src/core/embeddings.js.map +1 -0
  110. package/dist/src/core/git-impact.d.ts +25 -0
  111. package/dist/src/core/git-impact.d.ts.map +1 -0
  112. package/dist/src/core/git-impact.js +97 -0
  113. package/dist/src/core/git-impact.js.map +1 -0
  114. package/dist/src/core/graph-builder.d.ts +5 -0
  115. package/dist/src/core/graph-builder.d.ts.map +1 -0
  116. package/dist/src/core/graph-builder.js +88 -0
  117. package/dist/src/core/graph-builder.js.map +1 -0
  118. package/dist/src/core/graph.d.ts +34 -0
  119. package/dist/src/core/graph.d.ts.map +1 -0
  120. package/dist/src/core/graph.js +95 -0
  121. package/dist/src/core/graph.js.map +1 -0
  122. package/dist/src/core/impact.d.ts +22 -0
  123. package/dist/src/core/impact.d.ts.map +1 -0
  124. package/dist/src/core/impact.js +68 -0
  125. package/dist/src/core/impact.js.map +1 -0
  126. package/dist/src/core/languages.d.ts +4 -0
  127. package/dist/src/core/languages.d.ts.map +1 -0
  128. package/dist/src/core/languages.js +59 -0
  129. package/dist/src/core/languages.js.map +1 -0
  130. package/dist/src/core/parser.d.ts +16 -0
  131. package/dist/src/core/parser.d.ts.map +1 -0
  132. package/dist/src/core/parser.js +689 -0
  133. package/dist/src/core/parser.js.map +1 -0
  134. package/dist/src/core/scanner.d.ts +26 -0
  135. package/dist/src/core/scanner.d.ts.map +1 -0
  136. package/dist/src/core/scanner.js +87 -0
  137. package/dist/src/core/scanner.js.map +1 -0
  138. package/dist/src/core/search.d.ts +34 -0
  139. package/dist/src/core/search.d.ts.map +1 -0
  140. package/dist/src/core/search.js +146 -0
  141. package/dist/src/core/search.js.map +1 -0
  142. package/dist/src/core/types.d.ts +29 -0
  143. package/dist/src/core/types.d.ts.map +1 -0
  144. package/dist/src/core/types.js +12 -0
  145. package/dist/src/core/types.js.map +1 -0
  146. package/dist/src/cortex/engine.d.ts +10 -0
  147. package/dist/src/cortex/engine.d.ts.map +1 -0
  148. package/dist/src/cortex/engine.js +93 -0
  149. package/dist/src/cortex/engine.js.map +1 -0
  150. package/dist/src/cortex/index.d.ts +13 -0
  151. package/dist/src/cortex/index.d.ts.map +1 -0
  152. package/dist/src/cortex/index.js +12 -0
  153. package/dist/src/cortex/index.js.map +1 -0
  154. package/dist/src/cortex/patterns.d.ts +63 -0
  155. package/dist/src/cortex/patterns.d.ts.map +1 -0
  156. package/dist/src/cortex/patterns.js +242 -0
  157. package/dist/src/cortex/patterns.js.map +1 -0
  158. package/dist/src/cortex/pgq-queries.d.ts +11 -0
  159. package/dist/src/cortex/pgq-queries.d.ts.map +1 -0
  160. package/dist/src/cortex/pgq-queries.js +23 -0
  161. package/dist/src/cortex/pgq-queries.js.map +1 -0
  162. package/dist/src/cortex/pgq.d.ts +5 -0
  163. package/dist/src/cortex/pgq.d.ts.map +1 -0
  164. package/dist/src/cortex/pgq.js +54 -0
  165. package/dist/src/cortex/pgq.js.map +1 -0
  166. package/dist/src/cortex/real-time-enrichment.d.ts +20 -0
  167. package/dist/src/cortex/real-time-enrichment.d.ts.map +1 -0
  168. package/dist/src/cortex/real-time-enrichment.js +96 -0
  169. package/dist/src/cortex/real-time-enrichment.js.map +1 -0
  170. package/dist/src/cortex/repository.d.ts +231 -0
  171. package/dist/src/cortex/repository.d.ts.map +1 -0
  172. package/dist/src/cortex/repository.js +1078 -0
  173. package/dist/src/cortex/repository.js.map +1 -0
  174. package/dist/src/cortex/schema.d.ts +9 -0
  175. package/dist/src/cortex/schema.d.ts.map +1 -0
  176. package/dist/src/cortex/schema.js +364 -0
  177. package/dist/src/cortex/schema.js.map +1 -0
  178. package/dist/src/cortex/stage-0-structure.d.ts +7 -0
  179. package/dist/src/cortex/stage-0-structure.d.ts.map +1 -0
  180. package/dist/src/cortex/stage-0-structure.js +119 -0
  181. package/dist/src/cortex/stage-0-structure.js.map +1 -0
  182. package/dist/src/cortex/stage-1-symbols.d.ts +7 -0
  183. package/dist/src/cortex/stage-1-symbols.d.ts.map +1 -0
  184. package/dist/src/cortex/stage-1-symbols.js +605 -0
  185. package/dist/src/cortex/stage-1-symbols.js.map +1 -0
  186. package/dist/src/cortex/stage-2-resolution.d.ts +7 -0
  187. package/dist/src/cortex/stage-2-resolution.d.ts.map +1 -0
  188. package/dist/src/cortex/stage-2-resolution.js +469 -0
  189. package/dist/src/cortex/stage-2-resolution.js.map +1 -0
  190. package/dist/src/cortex/stage-3-callgraph.d.ts +7 -0
  191. package/dist/src/cortex/stage-3-callgraph.d.ts.map +1 -0
  192. package/dist/src/cortex/stage-3-callgraph.js +323 -0
  193. package/dist/src/cortex/stage-3-callgraph.js.map +1 -0
  194. package/dist/src/cortex/stage-4-types.d.ts +7 -0
  195. package/dist/src/cortex/stage-4-types.d.ts.map +1 -0
  196. package/dist/src/cortex/stage-4-types.js +462 -0
  197. package/dist/src/cortex/stage-4-types.js.map +1 -0
  198. package/dist/src/cortex/stage-5-flow.d.ts +7 -0
  199. package/dist/src/cortex/stage-5-flow.d.ts.map +1 -0
  200. package/dist/src/cortex/stage-5-flow.js +702 -0
  201. package/dist/src/cortex/stage-5-flow.js.map +1 -0
  202. package/dist/src/cortex/stage-6-topology.d.ts +15 -0
  203. package/dist/src/cortex/stage-6-topology.d.ts.map +1 -0
  204. package/dist/src/cortex/stage-6-topology.js +382 -0
  205. package/dist/src/cortex/stage-6-topology.js.map +1 -0
  206. package/dist/src/cortex/stage-7-intelligence.d.ts +34 -0
  207. package/dist/src/cortex/stage-7-intelligence.d.ts.map +1 -0
  208. package/dist/src/cortex/stage-7-intelligence.js +258 -0
  209. package/dist/src/cortex/stage-7-intelligence.js.map +1 -0
  210. package/dist/src/cortex/topology-types.d.ts +78 -0
  211. package/dist/src/cortex/topology-types.d.ts.map +1 -0
  212. package/dist/src/cortex/topology-types.js +2 -0
  213. package/dist/src/cortex/topology-types.js.map +1 -0
  214. package/dist/src/cortex/types.d.ts +250 -0
  215. package/dist/src/cortex/types.d.ts.map +1 -0
  216. package/dist/src/cortex/types.js +2 -0
  217. package/dist/src/cortex/types.js.map +1 -0
  218. package/dist/src/dna/embeddings.d.ts +10 -0
  219. package/dist/src/dna/embeddings.d.ts.map +1 -0
  220. package/dist/src/dna/embeddings.js +46 -0
  221. package/dist/src/dna/embeddings.js.map +1 -0
  222. package/dist/src/dna/engine.d.ts +30 -0
  223. package/dist/src/dna/engine.d.ts.map +1 -0
  224. package/dist/src/dna/engine.js +254 -0
  225. package/dist/src/dna/engine.js.map +1 -0
  226. package/dist/src/dna/index.d.ts +5 -0
  227. package/dist/src/dna/index.d.ts.map +1 -0
  228. package/dist/src/dna/index.js +5 -0
  229. package/dist/src/dna/index.js.map +1 -0
  230. package/dist/src/dna/storage.d.ts +19 -0
  231. package/dist/src/dna/storage.d.ts.map +1 -0
  232. package/dist/src/dna/storage.js +112 -0
  233. package/dist/src/dna/storage.js.map +1 -0
  234. package/dist/src/dna/types.d.ts +38 -0
  235. package/dist/src/dna/types.d.ts.map +1 -0
  236. package/dist/src/dna/types.js +114 -0
  237. package/dist/src/dna/types.js.map +1 -0
  238. package/dist/src/events/bus.d.ts +10 -0
  239. package/dist/src/events/bus.d.ts.map +1 -0
  240. package/dist/src/events/bus.js +36 -0
  241. package/dist/src/events/bus.js.map +1 -0
  242. package/dist/src/events/ipc.d.ts +3 -0
  243. package/dist/src/events/ipc.d.ts.map +1 -0
  244. package/dist/src/events/ipc.js +25 -0
  245. package/dist/src/events/ipc.js.map +1 -0
  246. package/dist/src/events/session.d.ts +21 -0
  247. package/dist/src/events/session.d.ts.map +1 -0
  248. package/dist/src/events/session.js +39 -0
  249. package/dist/src/events/session.js.map +1 -0
  250. package/dist/src/events/types.d.ts +15 -0
  251. package/dist/src/events/types.d.ts.map +1 -0
  252. package/dist/src/events/types.js +26 -0
  253. package/dist/src/events/types.js.map +1 -0
  254. package/dist/src/hooks/attention.d.ts +26 -0
  255. package/dist/src/hooks/attention.d.ts.map +1 -0
  256. package/dist/src/hooks/attention.js +90 -0
  257. package/dist/src/hooks/attention.js.map +1 -0
  258. package/dist/src/hooks/handlers/post-tool-use-failure.d.ts +20 -0
  259. package/dist/src/hooks/handlers/post-tool-use-failure.d.ts.map +1 -0
  260. package/dist/src/hooks/handlers/post-tool-use-failure.js +60 -0
  261. package/dist/src/hooks/handlers/post-tool-use-failure.js.map +1 -0
  262. package/dist/src/hooks/handlers/post-tool-use.d.ts +22 -0
  263. package/dist/src/hooks/handlers/post-tool-use.d.ts.map +1 -0
  264. package/dist/src/hooks/handlers/post-tool-use.js +96 -0
  265. package/dist/src/hooks/handlers/post-tool-use.js.map +1 -0
  266. package/dist/src/hooks/handlers/pre-compact.d.ts +17 -0
  267. package/dist/src/hooks/handlers/pre-compact.d.ts.map +1 -0
  268. package/dist/src/hooks/handlers/pre-compact.js +28 -0
  269. package/dist/src/hooks/handlers/pre-compact.js.map +1 -0
  270. package/dist/src/hooks/handlers/pre-tool-use.d.ts +32 -0
  271. package/dist/src/hooks/handlers/pre-tool-use.d.ts.map +1 -0
  272. package/dist/src/hooks/handlers/pre-tool-use.js +219 -0
  273. package/dist/src/hooks/handlers/pre-tool-use.js.map +1 -0
  274. package/dist/src/hooks/handlers/session-end.d.ts +18 -0
  275. package/dist/src/hooks/handlers/session-end.d.ts.map +1 -0
  276. package/dist/src/hooks/handlers/session-end.js +42 -0
  277. package/dist/src/hooks/handlers/session-end.js.map +1 -0
  278. package/dist/src/hooks/handlers/session-start.d.ts +25 -0
  279. package/dist/src/hooks/handlers/session-start.d.ts.map +1 -0
  280. package/dist/src/hooks/handlers/session-start.js +61 -0
  281. package/dist/src/hooks/handlers/session-start.js.map +1 -0
  282. package/dist/src/hooks/handlers/stop.d.ts +21 -0
  283. package/dist/src/hooks/handlers/stop.d.ts.map +1 -0
  284. package/dist/src/hooks/handlers/stop.js +40 -0
  285. package/dist/src/hooks/handlers/stop.js.map +1 -0
  286. package/dist/src/hooks/handlers/subagent-start.d.ts +17 -0
  287. package/dist/src/hooks/handlers/subagent-start.d.ts.map +1 -0
  288. package/dist/src/hooks/handlers/subagent-start.js +48 -0
  289. package/dist/src/hooks/handlers/subagent-start.js.map +1 -0
  290. package/dist/src/hooks/handlers/user-prompt-submit.d.ts +12 -0
  291. package/dist/src/hooks/handlers/user-prompt-submit.d.ts.map +1 -0
  292. package/dist/src/hooks/handlers/user-prompt-submit.js +31 -0
  293. package/dist/src/hooks/handlers/user-prompt-submit.js.map +1 -0
  294. package/dist/src/hooks/index.d.ts +14 -0
  295. package/dist/src/hooks/index.d.ts.map +1 -0
  296. package/dist/src/hooks/index.js +13 -0
  297. package/dist/src/hooks/index.js.map +1 -0
  298. package/dist/src/hooks/post-tool-use.d.ts +12 -0
  299. package/dist/src/hooks/post-tool-use.d.ts.map +1 -0
  300. package/dist/src/hooks/post-tool-use.js +33 -0
  301. package/dist/src/hooks/post-tool-use.js.map +1 -0
  302. package/dist/src/hooks/pre-tool-use.d.ts +24 -0
  303. package/dist/src/hooks/pre-tool-use.d.ts.map +1 -0
  304. package/dist/src/hooks/pre-tool-use.js +117 -0
  305. package/dist/src/hooks/pre-tool-use.js.map +1 -0
  306. package/dist/src/hooks/session-store.d.ts +55 -0
  307. package/dist/src/hooks/session-store.d.ts.map +1 -0
  308. package/dist/src/hooks/session-store.js +69 -0
  309. package/dist/src/hooks/session-store.js.map +1 -0
  310. package/dist/src/hooks/types.d.ts +67 -0
  311. package/dist/src/hooks/types.d.ts.map +1 -0
  312. package/dist/src/hooks/types.js +28 -0
  313. package/dist/src/hooks/types.js.map +1 -0
  314. package/dist/src/index.d.ts +16 -0
  315. package/dist/src/index.d.ts.map +1 -0
  316. package/dist/src/index.js +16 -0
  317. package/dist/src/index.js.map +1 -0
  318. package/dist/src/init/agent-connector.d.ts +43 -0
  319. package/dist/src/init/agent-connector.d.ts.map +1 -0
  320. package/dist/src/init/agent-connector.js +338 -0
  321. package/dist/src/init/agent-connector.js.map +1 -0
  322. package/dist/src/init/dna-bootstrap.d.ts +10 -0
  323. package/dist/src/init/dna-bootstrap.d.ts.map +1 -0
  324. package/dist/src/init/dna-bootstrap.js +32 -0
  325. package/dist/src/init/dna-bootstrap.js.map +1 -0
  326. package/dist/src/init/index.d.ts +29 -0
  327. package/dist/src/init/index.d.ts.map +1 -0
  328. package/dist/src/init/index.js +81 -0
  329. package/dist/src/init/index.js.map +1 -0
  330. package/dist/src/init/overview-generator.d.ts +5 -0
  331. package/dist/src/init/overview-generator.d.ts.map +1 -0
  332. package/dist/src/init/overview-generator.js +85 -0
  333. package/dist/src/init/overview-generator.js.map +1 -0
  334. package/dist/src/init/parsers/eslint-config.d.ts +10 -0
  335. package/dist/src/init/parsers/eslint-config.d.ts.map +1 -0
  336. package/dist/src/init/parsers/eslint-config.js +50 -0
  337. package/dist/src/init/parsers/eslint-config.js.map +1 -0
  338. package/dist/src/init/parsers/markdown-rules.d.ts +3 -0
  339. package/dist/src/init/parsers/markdown-rules.d.ts.map +1 -0
  340. package/dist/src/init/parsers/markdown-rules.js +90 -0
  341. package/dist/src/init/parsers/markdown-rules.js.map +1 -0
  342. package/dist/src/init/parsers/package-json.d.ts +17 -0
  343. package/dist/src/init/parsers/package-json.d.ts.map +1 -0
  344. package/dist/src/init/parsers/package-json.js +75 -0
  345. package/dist/src/init/parsers/package-json.js.map +1 -0
  346. package/dist/src/init/parsers/prettier-config.d.ts +16 -0
  347. package/dist/src/init/parsers/prettier-config.d.ts.map +1 -0
  348. package/dist/src/init/parsers/prettier-config.js +30 -0
  349. package/dist/src/init/parsers/prettier-config.js.map +1 -0
  350. package/dist/src/init/parsers/tsconfig.d.ts +32 -0
  351. package/dist/src/init/parsers/tsconfig.d.ts.map +1 -0
  352. package/dist/src/init/parsers/tsconfig.js +64 -0
  353. package/dist/src/init/parsers/tsconfig.js.map +1 -0
  354. package/dist/src/init/parsers/types.d.ts +27 -0
  355. package/dist/src/init/parsers/types.d.ts.map +1 -0
  356. package/dist/src/init/parsers/types.js +2 -0
  357. package/dist/src/init/parsers/types.js.map +1 -0
  358. package/dist/src/init/project-analyzer.d.ts +3 -0
  359. package/dist/src/init/project-analyzer.d.ts.map +1 -0
  360. package/dist/src/init/project-analyzer.js +102 -0
  361. package/dist/src/init/project-analyzer.js.map +1 -0
  362. package/dist/src/init/rule-importer.d.ts +3 -0
  363. package/dist/src/init/rule-importer.d.ts.map +1 -0
  364. package/dist/src/init/rule-importer.js +101 -0
  365. package/dist/src/init/rule-importer.js.map +1 -0
  366. package/dist/src/mcp/context.d.ts +43 -0
  367. package/dist/src/mcp/context.d.ts.map +1 -0
  368. package/dist/src/mcp/context.js +167 -0
  369. package/dist/src/mcp/context.js.map +1 -0
  370. package/dist/src/mcp/http-api.d.ts +10 -0
  371. package/dist/src/mcp/http-api.d.ts.map +1 -0
  372. package/dist/src/mcp/http-api.js +580 -0
  373. package/dist/src/mcp/http-api.js.map +1 -0
  374. package/dist/src/mcp/index.d.ts +8 -0
  375. package/dist/src/mcp/index.d.ts.map +1 -0
  376. package/dist/src/mcp/index.js +8 -0
  377. package/dist/src/mcp/index.js.map +1 -0
  378. package/dist/src/mcp/resources.d.ts +5 -0
  379. package/dist/src/mcp/resources.d.ts.map +1 -0
  380. package/dist/src/mcp/resources.js +78 -0
  381. package/dist/src/mcp/resources.js.map +1 -0
  382. package/dist/src/mcp/server.d.ts +6 -0
  383. package/dist/src/mcp/server.d.ts.map +1 -0
  384. package/dist/src/mcp/server.js +265 -0
  385. package/dist/src/mcp/server.js.map +1 -0
  386. package/dist/src/mcp/tool-response.d.ts +6 -0
  387. package/dist/src/mcp/tool-response.d.ts.map +1 -0
  388. package/dist/src/mcp/tool-response.js +19 -0
  389. package/dist/src/mcp/tool-response.js.map +1 -0
  390. package/dist/src/mcp/tools/architecture-tools.d.ts +15 -0
  391. package/dist/src/mcp/tools/architecture-tools.d.ts.map +1 -0
  392. package/dist/src/mcp/tools/architecture-tools.js +56 -0
  393. package/dist/src/mcp/tools/architecture-tools.js.map +1 -0
  394. package/dist/src/mcp/tools/dna-tools.d.ts +21 -0
  395. package/dist/src/mcp/tools/dna-tools.d.ts.map +1 -0
  396. package/dist/src/mcp/tools/dna-tools.js +15 -0
  397. package/dist/src/mcp/tools/dna-tools.js.map +1 -0
  398. package/dist/src/mcp/tools/graph-tools.d.ts +49 -0
  399. package/dist/src/mcp/tools/graph-tools.d.ts.map +1 -0
  400. package/dist/src/mcp/tools/graph-tools.js +45 -0
  401. package/dist/src/mcp/tools/graph-tools.js.map +1 -0
  402. package/dist/src/mcp/tools/health-tools.d.ts +5 -0
  403. package/dist/src/mcp/tools/health-tools.d.ts.map +1 -0
  404. package/dist/src/mcp/tools/health-tools.js +7 -0
  405. package/dist/src/mcp/tools/health-tools.js.map +1 -0
  406. package/dist/src/mcp/tools/impact-tools.d.ts +21 -0
  407. package/dist/src/mcp/tools/impact-tools.d.ts.map +1 -0
  408. package/dist/src/mcp/tools/impact-tools.js +23 -0
  409. package/dist/src/mcp/tools/impact-tools.js.map +1 -0
  410. package/dist/src/mcp/tools/intent-tools.d.ts +32 -0
  411. package/dist/src/mcp/tools/intent-tools.d.ts.map +1 -0
  412. package/dist/src/mcp/tools/intent-tools.js +77 -0
  413. package/dist/src/mcp/tools/intent-tools.js.map +1 -0
  414. package/dist/src/mcp/tools/project-tools.d.ts +53 -0
  415. package/dist/src/mcp/tools/project-tools.d.ts.map +1 -0
  416. package/dist/src/mcp/tools/project-tools.js +91 -0
  417. package/dist/src/mcp/tools/project-tools.js.map +1 -0
  418. package/dist/src/mcp/tools/rename-tool.d.ts +25 -0
  419. package/dist/src/mcp/tools/rename-tool.d.ts.map +1 -0
  420. package/dist/src/mcp/tools/rename-tool.js +106 -0
  421. package/dist/src/mcp/tools/rename-tool.js.map +1 -0
  422. package/dist/src/mcp/tools/trace-tools.d.ts +4 -0
  423. package/dist/src/mcp/tools/trace-tools.d.ts.map +1 -0
  424. package/dist/src/mcp/tools/trace-tools.js +268 -0
  425. package/dist/src/mcp/tools/trace-tools.js.map +1 -0
  426. package/dist/src/storage/db.d.ts +13 -0
  427. package/dist/src/storage/db.d.ts.map +1 -0
  428. package/dist/src/storage/db.js +230 -0
  429. package/dist/src/storage/db.js.map +1 -0
  430. package/dist/src/storage/repository.d.ts +54 -0
  431. package/dist/src/storage/repository.d.ts.map +1 -0
  432. package/dist/src/storage/repository.js +257 -0
  433. package/dist/src/storage/repository.js.map +1 -0
  434. package/dist/src/utils/config.d.ts +18 -0
  435. package/dist/src/utils/config.d.ts.map +1 -0
  436. package/dist/src/utils/config.js +93 -0
  437. package/dist/src/utils/config.js.map +1 -0
  438. package/dist/src/utils/files.d.ts +3 -0
  439. package/dist/src/utils/files.d.ts.map +1 -0
  440. package/dist/src/utils/files.js +52 -0
  441. package/dist/src/utils/files.js.map +1 -0
  442. package/dist/src/utils/strings.d.ts +2 -0
  443. package/dist/src/utils/strings.d.ts.map +1 -0
  444. package/dist/src/utils/strings.js +11 -0
  445. package/dist/src/utils/strings.js.map +1 -0
  446. package/dist/tsconfig.tsbuildinfo +1 -0
  447. package/hooks/post-tool-use.sh +37 -0
  448. package/hooks/pre-tool-use.sh +43 -0
  449. package/hooks/session-start.sh +67 -0
  450. package/package.json +103 -0
  451. package/skills/symbiote-init/SKILL.md +104 -0
@@ -0,0 +1,580 @@
1
+ import path from 'node:path';
2
+ import { EVENT_TYPES } from '#events/types.js';
3
+ import { PreToolUseHandler, PostToolUseHandler, PostToolUseFailureHandler, SubagentStartHandler, PreCompactHandler, StopHandler, SessionEndHandler, SessionStartHandler, UserPromptSubmitHandler, } from '#hooks/index.js';
4
+ const MAX_BODY_SIZE = 1024 * 1024; // 1MB
5
+ export async function handleApiRequest(ctx, pathname, req, res) {
6
+ res.setHeader('Access-Control-Allow-Origin', `http://localhost:${req.socket.localPort}`);
7
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, OPTIONS');
8
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
9
+ if (req.method === 'OPTIONS') {
10
+ res.writeHead(204);
11
+ res.end();
12
+ return true;
13
+ }
14
+ if (pathname === '/api/graph' && req.method === 'GET') {
15
+ return await handleGetGraph(ctx, res);
16
+ }
17
+ if (pathname.startsWith('/api/graph/nodes/') && req.method === 'GET') {
18
+ const nodeId = decodeURIComponent(pathname.slice('/api/graph/nodes/'.length));
19
+ return await handleGetNodeContext(ctx, nodeId, res);
20
+ }
21
+ if (pathname === '/api/health' && req.method === 'GET') {
22
+ return await handleGetHealthApi(ctx, res);
23
+ }
24
+ if (pathname === '/api/dna' && req.method === 'GET') {
25
+ return handleListDna(ctx, res);
26
+ }
27
+ if (pathname.startsWith('/api/dna/') && req.method === 'PATCH') {
28
+ const entryId = decodeURIComponent(pathname.slice('/api/dna/'.length));
29
+ return await handleUpdateDna(ctx, entryId, req, res);
30
+ }
31
+ return false;
32
+ }
33
+ function json(res, data, status = 200) {
34
+ res.writeHead(status, {
35
+ 'Content-Type': 'application/json',
36
+ });
37
+ res.end(JSON.stringify(data));
38
+ return true;
39
+ }
40
+ async function handleGetGraph(ctx, res) {
41
+ try {
42
+ const symbols = await ctx.cortexRepo.getAllSymbols();
43
+ const fileNodes = await ctx.repo.getAllNodes();
44
+ const fileOnly = fileNodes.filter((n) => n.type === 'file');
45
+ const maxDepth = await ctx.cortexRepo.getMaxDepthLevel();
46
+ const communityCountStr = await ctx.cortexRepo.getMeta('community_count');
47
+ const getAttrs = (id) => ctx.graphology.hasNode(id) ? ctx.graphology.getNodeAttributes(id) : {};
48
+ const nodes = [
49
+ ...symbols.map((s) => {
50
+ const attrs = getAttrs(s.id);
51
+ return {
52
+ id: s.id,
53
+ type: s.kind,
54
+ name: s.name,
55
+ filePath: s.filePath,
56
+ lineStart: s.lineStart,
57
+ lineEnd: s.lineEnd,
58
+ community: attrs.community ?? null,
59
+ pageRank: attrs.pagerank ?? null,
60
+ betweenness: attrs.centrality ?? null,
61
+ };
62
+ }),
63
+ ...fileOnly.map((n) => {
64
+ const attrs = getAttrs(n.id);
65
+ return {
66
+ id: n.id,
67
+ type: n.type,
68
+ name: n.name,
69
+ filePath: n.filePath,
70
+ lineStart: n.lineStart,
71
+ lineEnd: n.lineEnd,
72
+ community: attrs.community ?? n.metadata?.cluster ?? null,
73
+ pageRank: attrs.pagerank ?? n.metadata?.pagerank ?? null,
74
+ betweenness: attrs.centrality ?? n.metadata?.centrality ?? null,
75
+ };
76
+ }),
77
+ ];
78
+ const nodeIds = new Set(nodes.map((n) => n.id));
79
+ const edgeTables = [
80
+ { table: 'edges_calls', kind: 'calls' },
81
+ { table: 'edges_imports', kind: 'imports' },
82
+ { table: 'edges_extends', kind: 'extends' },
83
+ { table: 'edges_implements', kind: 'implements' },
84
+ { table: 'edges_contains', kind: 'contains' },
85
+ { table: 'edges_returns', kind: 'returns' },
86
+ { table: 'edges_reads', kind: 'reads' },
87
+ { table: 'edges_writes', kind: 'writes' },
88
+ ];
89
+ const edges = [];
90
+ for (const { table, kind } of edgeTables) {
91
+ const rows = await ctx.db.all(`SELECT source_id, target_id FROM ${table}`);
92
+ for (const row of rows) {
93
+ if (nodeIds.has(row.source_id) && nodeIds.has(row.target_id)) {
94
+ edges.push({
95
+ sourceId: row.source_id,
96
+ targetId: row.target_id,
97
+ type: kind,
98
+ });
99
+ }
100
+ }
101
+ }
102
+ return json(res, {
103
+ data: {
104
+ nodes,
105
+ edges,
106
+ communityCount: communityCountStr ? Number(communityCountStr) : 0,
107
+ },
108
+ depth: maxDepth,
109
+ deepening: maxDepth < 7,
110
+ });
111
+ }
112
+ catch (err) {
113
+ const message = err instanceof Error ? err.message : String(err);
114
+ return json(res, { error: message, nodes: [], edges: [] }, 500);
115
+ }
116
+ }
117
+ async function handleGetNodeContext(ctx, nodeId, res) {
118
+ const node = await ctx.repo.getNodeById(nodeId);
119
+ if (!node) {
120
+ return json(res, { error: 'Node not found' }, 404);
121
+ }
122
+ const dependencies = await ctx.graph.getDependencies(nodeId);
123
+ const dependents = await ctx.graph.getDependents(nodeId);
124
+ const allConstraints = await ctx.intent.listEntries('constraint');
125
+ const constraints = allConstraints.filter((c) => c.frontmatter.scope === 'global' || node.filePath.startsWith(c.frontmatter.scope));
126
+ const allDecisions = await ctx.intent.listEntries('decision');
127
+ const decisions = allDecisions.filter((d) => d.frontmatter.scope === 'global' || node.filePath.startsWith(d.frontmatter.scope));
128
+ return json(res, {
129
+ node,
130
+ dependencies,
131
+ dependents,
132
+ constraints,
133
+ decisions,
134
+ });
135
+ }
136
+ async function handleGetHealthApi(ctx, res) {
137
+ const report = await ctx.health.analyze();
138
+ const toIssues = (items, category, severity) => items.map((item) => ({
139
+ severity,
140
+ message: ('constraintDescription' in item ? item.constraintDescription : null) ??
141
+ ('chain' in item ? item.chain.join(' \u2192 ') : null) ??
142
+ ('node' in item ? item.node.name : null) ??
143
+ String(item),
144
+ filePath: ('filePath' in item ? item.filePath : null) ??
145
+ ('node' in item ? item.node.filePath : '') ??
146
+ '',
147
+ line: 'lineStart' in item ? item.lineStart : undefined,
148
+ category,
149
+ }));
150
+ return json(res, {
151
+ score: report.score,
152
+ categories: {
153
+ constraintViolations: {
154
+ score: report.categories.constraints.score,
155
+ weight: report.categories.constraints.weight,
156
+ issues: toIssues(report.constraintViolations ?? [], 'constraint', 'error'),
157
+ },
158
+ circularDeps: {
159
+ score: report.categories.circularDeps.score,
160
+ weight: report.categories.circularDeps.weight,
161
+ issues: toIssues(report.circularDeps ?? [], 'circular-dep', 'warning'),
162
+ },
163
+ deadCode: {
164
+ score: report.categories.deadCode.score,
165
+ weight: report.categories.deadCode.weight,
166
+ issues: toIssues(report.deadCode ?? [], 'dead-code', 'info'),
167
+ },
168
+ coupling: {
169
+ score: report.categories.coupling.score,
170
+ weight: report.categories.coupling.weight,
171
+ issues: toIssues(report.couplingHotspots ?? [], 'coupling', 'warning'),
172
+ },
173
+ },
174
+ });
175
+ }
176
+ function handleListDna(ctx, res) {
177
+ const entries = ctx.dnaEngine.getActiveEntries().map((e) => ({
178
+ id: e.frontmatter.id,
179
+ category: e.frontmatter.category,
180
+ confidence: e.frontmatter.confidence,
181
+ source: e.frontmatter.source,
182
+ status: e.frontmatter.status,
183
+ firstSeen: e.frontmatter.firstSeen,
184
+ lastSeen: e.frontmatter.lastSeen,
185
+ occurrences: e.frontmatter.occurrences,
186
+ content: e.content,
187
+ }));
188
+ return json(res, entries);
189
+ }
190
+ function handleUpdateDna(ctx, entryId, req, res) {
191
+ return new Promise((resolve) => {
192
+ let body = '';
193
+ let destroyed = false;
194
+ req.on('data', (chunk) => {
195
+ body += chunk;
196
+ if (body.length > MAX_BODY_SIZE) {
197
+ destroyed = true;
198
+ res.writeHead(413);
199
+ res.end('Payload too large');
200
+ req.destroy();
201
+ resolve(true);
202
+ }
203
+ });
204
+ req.on('end', () => {
205
+ if (destroyed)
206
+ return;
207
+ try {
208
+ const data = JSON.parse(body);
209
+ if (data.status === 'approved') {
210
+ const entry = ctx.dnaEngine.approveEntry(entryId);
211
+ if (!entry) {
212
+ json(res, { error: 'Entry not found' }, 404);
213
+ }
214
+ else {
215
+ json(res, entry);
216
+ }
217
+ }
218
+ else if (data.status === 'rejected') {
219
+ const entry = ctx.dnaEngine.rejectEntry(entryId);
220
+ if (!entry) {
221
+ json(res, { error: 'Entry not found' }, 404);
222
+ }
223
+ else {
224
+ json(res, entry);
225
+ }
226
+ }
227
+ else if (typeof data.content === 'string') {
228
+ const entry = ctx.dnaEngine.editEntry(entryId, data.content);
229
+ if (!entry) {
230
+ json(res, { error: 'Entry not found' }, 404);
231
+ }
232
+ else {
233
+ json(res, entry);
234
+ }
235
+ }
236
+ else {
237
+ json(res, { error: 'No valid update fields' }, 400);
238
+ }
239
+ }
240
+ catch {
241
+ json(res, { error: 'Invalid JSON' }, 400);
242
+ }
243
+ resolve(true);
244
+ });
245
+ });
246
+ }
247
+ export async function handleHookContext(ctx, req, res) {
248
+ process.stderr.write('[symbiote] /internal/hook-context is deprecated\n');
249
+ const url = new URL(req.url ?? '/', 'http://localhost');
250
+ const filePath = url.searchParams.get('file');
251
+ const toolName = url.searchParams.get('tool');
252
+ const projectRoot = url.searchParams.get('root');
253
+ if (!filePath || !toolName || !projectRoot) {
254
+ res.writeHead(400);
255
+ res.end(JSON.stringify({ decision: 'allow' }));
256
+ return;
257
+ }
258
+ try {
259
+ const absolutePath = path.isAbsolute(filePath)
260
+ ? filePath
261
+ : path.join(projectRoot, filePath);
262
+ const relativePath = path.relative(projectRoot, absolutePath);
263
+ const fileNodeId = `file:${absolutePath}`;
264
+ if (!ctx.graphology.hasNode(fileNodeId)) {
265
+ res.writeHead(200);
266
+ res.end(JSON.stringify({ decision: 'allow' }));
267
+ return;
268
+ }
269
+ const symbolsList = [];
270
+ ctx.graphology.forEachOutEdge(fileNodeId, (_e, attrs, _s, target) => {
271
+ if (attrs.type === 'contains')
272
+ symbolsList.push(target);
273
+ });
274
+ const symbols = new Set(symbolsList);
275
+ const dependencies = new Set();
276
+ for (const sym of symbols) {
277
+ ctx.graphology.forEachOutEdge(sym, (_e, attrs, _s, target) => {
278
+ if (attrs.type !== 'contains' && !symbols.has(target)) {
279
+ dependencies.add(target);
280
+ }
281
+ });
282
+ }
283
+ const dependents = new Set();
284
+ for (const sym of symbols) {
285
+ ctx.graphology.forEachInEdge(sym, (_e, attrs, source) => {
286
+ if (attrs.type !== 'contains' && !symbols.has(source)) {
287
+ dependents.add(source);
288
+ }
289
+ });
290
+ }
291
+ const activeConstraints = await ctx.intent.listEntries('constraint', {
292
+ status: 'active',
293
+ });
294
+ const constraints = activeConstraints
295
+ .filter((c) => c.frontmatter.scope === 'global' ||
296
+ c.frontmatter.scope === '*' ||
297
+ relativePath.startsWith(c.frontmatter.scope))
298
+ .map((c) => ({ scope: c.frontmatter.scope, content: c.content }));
299
+ const dna = ctx.dnaEngine
300
+ .getActiveEntries()
301
+ .slice(0, 10)
302
+ .map((e) => `[${e.frontmatter.category}] ${e.content}`);
303
+ const lines = [];
304
+ lines.push(`File context for ${relativePath}:`);
305
+ if (symbols.size > 0) {
306
+ lines.push('', 'Symbols:');
307
+ for (const sym of symbols) {
308
+ if (!ctx.graphology.hasNode(sym))
309
+ continue;
310
+ const attrs = ctx.graphology.getNodeAttributes(sym);
311
+ lines.push(` - ${attrs.name} (${attrs.type}, lines ${attrs.lineStart}-${attrs.lineEnd})`);
312
+ }
313
+ }
314
+ if (dependencies.size > 0) {
315
+ lines.push('', 'Dependencies:');
316
+ for (const dep of dependencies) {
317
+ if (!ctx.graphology.hasNode(dep))
318
+ continue;
319
+ const attrs = ctx.graphology.getNodeAttributes(dep);
320
+ lines.push(` - ${attrs.name} (${attrs.filePath})`);
321
+ }
322
+ }
323
+ if (dependents.size > 0) {
324
+ lines.push('', 'Dependents (will be affected by changes):');
325
+ for (const dep of dependents) {
326
+ if (!ctx.graphology.hasNode(dep))
327
+ continue;
328
+ const attrs = ctx.graphology.getNodeAttributes(dep);
329
+ lines.push(` - ${attrs.name} (${attrs.filePath})`);
330
+ }
331
+ }
332
+ if (constraints.length > 0) {
333
+ lines.push('', 'Constraints:');
334
+ for (const c of constraints) {
335
+ lines.push(` - [${c.scope}] ${c.content}`);
336
+ }
337
+ }
338
+ if (dna.length > 0) {
339
+ lines.push('', 'Developer DNA:');
340
+ for (const d of dna) {
341
+ lines.push(` - ${d}`);
342
+ }
343
+ }
344
+ res.writeHead(200);
345
+ res.end(JSON.stringify({ decision: 'allow', additionalContext: lines.join('\n') }));
346
+ }
347
+ catch {
348
+ res.writeHead(200);
349
+ res.end(JSON.stringify({ decision: 'allow' }));
350
+ }
351
+ }
352
+ const EVENT_TIMEOUT_MS = 10_000;
353
+ export function handleInternalEvent(bus, req, res) {
354
+ return new Promise((resolve) => {
355
+ let body = '';
356
+ let destroyed = false;
357
+ const timeout = setTimeout(() => {
358
+ if (destroyed)
359
+ return;
360
+ destroyed = true;
361
+ res.writeHead(408);
362
+ res.end('Request timeout');
363
+ req.destroy();
364
+ resolve();
365
+ }, EVENT_TIMEOUT_MS);
366
+ req.on('data', (chunk) => {
367
+ body += chunk;
368
+ if (body.length > MAX_BODY_SIZE) {
369
+ destroyed = true;
370
+ clearTimeout(timeout);
371
+ res.writeHead(413);
372
+ res.end('Payload too large');
373
+ req.destroy();
374
+ resolve();
375
+ }
376
+ });
377
+ req.on('error', () => {
378
+ if (destroyed)
379
+ return;
380
+ destroyed = true;
381
+ clearTimeout(timeout);
382
+ resolve();
383
+ });
384
+ req.on('end', () => {
385
+ clearTimeout(timeout);
386
+ if (destroyed)
387
+ return;
388
+ try {
389
+ const event = JSON.parse(body);
390
+ if (!EVENT_TYPES.includes(event.type)) {
391
+ res.writeHead(400);
392
+ res.end();
393
+ }
394
+ else {
395
+ bus.emit(event);
396
+ res.writeHead(200);
397
+ res.end();
398
+ }
399
+ }
400
+ catch {
401
+ res.writeHead(400);
402
+ res.end();
403
+ }
404
+ resolve();
405
+ });
406
+ });
407
+ }
408
+ export function handleSseConnection(bus, req, res) {
409
+ res.writeHead(200, {
410
+ 'Content-Type': 'text/event-stream',
411
+ 'Cache-Control': 'no-cache',
412
+ Connection: 'keep-alive',
413
+ 'Access-Control-Allow-Origin': `http://localhost:${req.socket.localPort}`,
414
+ });
415
+ res.write('data: {"type":"connected"}\n\n');
416
+ let closed = false;
417
+ const cleanup = () => {
418
+ if (closed)
419
+ return;
420
+ closed = true;
421
+ bus.off('*', handler);
422
+ };
423
+ const handler = (event) => {
424
+ if (closed)
425
+ return;
426
+ try {
427
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
428
+ }
429
+ catch {
430
+ cleanup();
431
+ }
432
+ };
433
+ bus.on('*', handler);
434
+ res.on('close', cleanup);
435
+ res.on('error', cleanup);
436
+ }
437
+ async function readJsonBody(req) {
438
+ return new Promise((resolve) => {
439
+ let body = '';
440
+ let destroyed = false;
441
+ req.on('data', (chunk) => {
442
+ body += chunk;
443
+ if (body.length > MAX_BODY_SIZE) {
444
+ destroyed = true;
445
+ req.destroy();
446
+ resolve({});
447
+ }
448
+ });
449
+ req.on('error', () => resolve({}));
450
+ req.on('end', () => {
451
+ if (destroyed)
452
+ return;
453
+ try {
454
+ resolve(JSON.parse(body));
455
+ }
456
+ catch {
457
+ resolve({});
458
+ }
459
+ });
460
+ });
461
+ }
462
+ async function getConstraints(ctx) {
463
+ const entries = await ctx.intent.listEntries('constraint', { status: 'active' });
464
+ return entries.map((e) => ({ scope: e.frontmatter.scope, content: e.content }));
465
+ }
466
+ function sendJson(res, data) {
467
+ res.writeHead(200, { 'Content-Type': 'application/json' });
468
+ res.end(JSON.stringify(data));
469
+ }
470
+ export async function handleHookRequest(ctx, pathname, req, res) {
471
+ try {
472
+ const body = await readJsonBody(req);
473
+ const sessionId = body.session_id ?? '';
474
+ let result = {};
475
+ if (pathname === '/internal/hooks/pre-tool-use') {
476
+ const constraints = await getConstraints(ctx);
477
+ const handler = new PreToolUseHandler({
478
+ graph: ctx.graphology,
479
+ projectRoot: ctx.rootDir,
480
+ constraints,
481
+ attention: ctx.attention,
482
+ dnaEngine: ctx.dnaEngine,
483
+ });
484
+ result = handler.handle(body);
485
+ }
486
+ else if (pathname === '/internal/hooks/post-tool-use') {
487
+ const handler = new PostToolUseHandler({
488
+ projectRoot: ctx.rootDir,
489
+ onReindexFile: async (relativePath) => {
490
+ ctx.onReindexFile(relativePath);
491
+ },
492
+ onFullRescan: async () => {
493
+ ctx.onFullRescan();
494
+ },
495
+ sessionStore: ctx.sessionStore,
496
+ attention: ctx.attention,
497
+ eventBus: ctx.eventBus,
498
+ graph: ctx.graphology,
499
+ sessionId,
500
+ });
501
+ result = await handler.handle(body);
502
+ }
503
+ else if (pathname === '/internal/hooks/post-tool-use-failure') {
504
+ const handler = new PostToolUseFailureHandler({
505
+ sessionStore: ctx.sessionStore,
506
+ attention: ctx.attention,
507
+ eventBus: ctx.eventBus,
508
+ graph: ctx.graphology,
509
+ projectRoot: ctx.rootDir,
510
+ sessionId,
511
+ });
512
+ result = await handler.handle(body);
513
+ }
514
+ else if (pathname === '/internal/hooks/user-prompt-submit') {
515
+ const handler = new UserPromptSubmitHandler({ dnaEngine: ctx.dnaEngine });
516
+ result = await handler.handle(body);
517
+ }
518
+ else if (pathname === '/internal/hooks/subagent-start') {
519
+ const constraints = await getConstraints(ctx);
520
+ const handler = new SubagentStartHandler({
521
+ dnaEngine: ctx.dnaEngine,
522
+ constraints,
523
+ sessionStore: ctx.sessionStore,
524
+ sessionId,
525
+ });
526
+ result = await handler.handle(body);
527
+ }
528
+ else if (pathname === '/internal/hooks/pre-compact') {
529
+ const handler = new PreCompactHandler({
530
+ sessionStore: ctx.sessionStore,
531
+ attention: ctx.attention,
532
+ eventBus: ctx.eventBus,
533
+ sessionId,
534
+ });
535
+ result = await handler.handle(body);
536
+ }
537
+ else if (pathname === '/internal/hooks/stop') {
538
+ const handler = new StopHandler({
539
+ sessionStore: ctx.sessionStore,
540
+ attention: ctx.attention,
541
+ dnaEngine: ctx.dnaEngine,
542
+ });
543
+ result = await handler.handle(body);
544
+ }
545
+ else if (pathname === '/internal/hooks/session-end') {
546
+ const handler = new SessionEndHandler({
547
+ sessionStore: ctx.sessionStore,
548
+ dnaEngine: ctx.dnaEngine,
549
+ eventBus: ctx.eventBus,
550
+ });
551
+ result = await handler.handle(body);
552
+ }
553
+ sendJson(res, result);
554
+ }
555
+ catch {
556
+ sendJson(res, {});
557
+ }
558
+ }
559
+ export async function handleSessionStartRequest(ctx, searchParams, res) {
560
+ try {
561
+ const source = searchParams.get('source') ?? 'startup';
562
+ const sessionId = searchParams.get('sessionId') ?? '';
563
+ const constraints = await getConstraints(ctx);
564
+ const stats = await ctx.repo.getStats();
565
+ const projectName = path.basename(ctx.rootDir);
566
+ const handler = new SessionStartHandler({
567
+ dnaEngine: ctx.dnaEngine,
568
+ sessionStore: ctx.sessionStore,
569
+ constraints,
570
+ projectName,
571
+ fileCount: stats.files,
572
+ });
573
+ const result = await handler.handle({ sessionId, source });
574
+ sendJson(res, result);
575
+ }
576
+ catch {
577
+ sendJson(res, {});
578
+ }
579
+ }
580
+ //# sourceMappingURL=http-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-api.js","sourceRoot":"","sources":["../../../src/mcp/http-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { createMcpServer } from './server.js';
2
+ export { createServerContext, type ServerContext, type ServerContextOptions } from './context.js';
3
+ export { handleGetDeveloperDna, handleRecordInstruction } from './tools/dna-tools.js';
4
+ export { handleGetProjectOverview, handleGetContextForFile, handleQueryGraph, handleSemanticSearch, } from './tools/project-tools.js';
5
+ export { handleGetConstraints, handleGetDecisions, handleProposeDecision, handleProposeConstraint, } from './tools/intent-tools.js';
6
+ export { handleGetHealth } from './tools/health-tools.js';
7
+ export { handleDnaResource, handleProjectOverviewResource, handleProjectHealthResource, } from './resources.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACH,iBAAiB,EACjB,6BAA6B,EAC7B,2BAA2B,GAC9B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { createMcpServer } from './server.js';
2
+ export { createServerContext } from './context.js';
3
+ export { handleGetDeveloperDna, handleRecordInstruction } from './tools/dna-tools.js';
4
+ export { handleGetProjectOverview, handleGetContextForFile, handleQueryGraph, handleSemanticSearch, } from './tools/project-tools.js';
5
+ export { handleGetConstraints, handleGetDecisions, handleProposeDecision, handleProposeConstraint, } from './tools/intent-tools.js';
6
+ export { handleGetHealth } from './tools/health-tools.js';
7
+ export { handleDnaResource, handleProjectOverviewResource, handleProjectHealthResource, } from './resources.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAiD,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACH,iBAAiB,EACjB,6BAA6B,EAC7B,2BAA2B,GAC9B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ServerContext } from './context.js';
2
+ export declare function handleDnaResource(ctx: ServerContext): string;
3
+ export declare function handleProjectOverviewResource(ctx: ServerContext): Promise<string>;
4
+ export declare function handleProjectHealthResource(ctx: ServerContext): Promise<string>;
5
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/mcp/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAkB5D;AAED,wBAAsB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BvF;AAED,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA2CrF"}