@colbymchenry/codegraph-win32-arm64 0.9.9 → 1.0.1

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 (313) hide show
  1. package/lib/dist/bin/codegraph.d.ts +1 -0
  2. package/lib/dist/bin/codegraph.d.ts.map +1 -1
  3. package/lib/dist/bin/codegraph.js +394 -10
  4. package/lib/dist/bin/codegraph.js.map +1 -1
  5. package/lib/dist/bin/fatal-handler.d.ts +20 -0
  6. package/lib/dist/bin/fatal-handler.d.ts.map +1 -0
  7. package/lib/dist/bin/fatal-handler.js +118 -0
  8. package/lib/dist/bin/fatal-handler.js.map +1 -0
  9. package/lib/dist/context/index.d.ts.map +1 -1
  10. package/lib/dist/context/index.js +7 -0
  11. package/lib/dist/context/index.js.map +1 -1
  12. package/lib/dist/db/index.d.ts.map +1 -1
  13. package/lib/dist/db/index.js +2 -1
  14. package/lib/dist/db/index.js.map +1 -1
  15. package/lib/dist/db/migrations.d.ts +1 -1
  16. package/lib/dist/db/migrations.d.ts.map +1 -1
  17. package/lib/dist/db/migrations.js +10 -1
  18. package/lib/dist/db/migrations.js.map +1 -1
  19. package/lib/dist/db/queries.d.ts +43 -0
  20. package/lib/dist/db/queries.d.ts.map +1 -1
  21. package/lib/dist/db/queries.js +103 -7
  22. package/lib/dist/db/queries.js.map +1 -1
  23. package/lib/dist/db/schema.sql +1 -0
  24. package/lib/dist/db/sqlite-adapter.d.ts +7 -0
  25. package/lib/dist/db/sqlite-adapter.d.ts.map +1 -1
  26. package/lib/dist/db/sqlite-adapter.js +3 -0
  27. package/lib/dist/db/sqlite-adapter.js.map +1 -1
  28. package/lib/dist/directory.d.ts +49 -2
  29. package/lib/dist/directory.d.ts.map +1 -1
  30. package/lib/dist/directory.js +173 -35
  31. package/lib/dist/directory.js.map +1 -1
  32. package/lib/dist/extraction/astro-extractor.d.ts +79 -0
  33. package/lib/dist/extraction/astro-extractor.d.ts.map +1 -0
  34. package/lib/dist/extraction/astro-extractor.js +320 -0
  35. package/lib/dist/extraction/astro-extractor.js.map +1 -0
  36. package/lib/dist/extraction/extraction-version.d.ts +25 -0
  37. package/lib/dist/extraction/extraction-version.d.ts.map +1 -0
  38. package/lib/dist/extraction/extraction-version.js +28 -0
  39. package/lib/dist/extraction/extraction-version.js.map +1 -0
  40. package/lib/dist/extraction/function-ref.d.ts +118 -0
  41. package/lib/dist/extraction/function-ref.d.ts.map +1 -0
  42. package/lib/dist/extraction/function-ref.js +727 -0
  43. package/lib/dist/extraction/function-ref.js.map +1 -0
  44. package/lib/dist/extraction/generated-detection.d.ts.map +1 -1
  45. package/lib/dist/extraction/generated-detection.js +3 -0
  46. package/lib/dist/extraction/generated-detection.js.map +1 -1
  47. package/lib/dist/extraction/grammars.d.ts +7 -1
  48. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  49. package/lib/dist/extraction/grammars.js +52 -4
  50. package/lib/dist/extraction/grammars.js.map +1 -1
  51. package/lib/dist/extraction/index.d.ts +34 -0
  52. package/lib/dist/extraction/index.d.ts.map +1 -1
  53. package/lib/dist/extraction/index.js +389 -62
  54. package/lib/dist/extraction/index.js.map +1 -1
  55. package/lib/dist/extraction/languages/c-cpp.d.ts +8 -0
  56. package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  57. package/lib/dist/extraction/languages/c-cpp.js +87 -28
  58. package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
  59. package/lib/dist/extraction/languages/csharp.d.ts +22 -0
  60. package/lib/dist/extraction/languages/csharp.d.ts.map +1 -1
  61. package/lib/dist/extraction/languages/csharp.js +84 -2
  62. package/lib/dist/extraction/languages/csharp.js.map +1 -1
  63. package/lib/dist/extraction/languages/dart.d.ts.map +1 -1
  64. package/lib/dist/extraction/languages/dart.js +161 -1
  65. package/lib/dist/extraction/languages/dart.js.map +1 -1
  66. package/lib/dist/extraction/languages/go.d.ts.map +1 -1
  67. package/lib/dist/extraction/languages/go.js +43 -2
  68. package/lib/dist/extraction/languages/go.js.map +1 -1
  69. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  70. package/lib/dist/extraction/languages/index.js +2 -0
  71. package/lib/dist/extraction/languages/index.js.map +1 -1
  72. package/lib/dist/extraction/languages/java.d.ts.map +1 -1
  73. package/lib/dist/extraction/languages/java.js +42 -1
  74. package/lib/dist/extraction/languages/java.js.map +1 -1
  75. package/lib/dist/extraction/languages/javascript.d.ts.map +1 -1
  76. package/lib/dist/extraction/languages/javascript.js +16 -0
  77. package/lib/dist/extraction/languages/javascript.js.map +1 -1
  78. package/lib/dist/extraction/languages/kotlin.d.ts.map +1 -1
  79. package/lib/dist/extraction/languages/kotlin.js +69 -0
  80. package/lib/dist/extraction/languages/kotlin.js.map +1 -1
  81. package/lib/dist/extraction/languages/objc.d.ts.map +1 -1
  82. package/lib/dist/extraction/languages/objc.js +42 -0
  83. package/lib/dist/extraction/languages/objc.js.map +1 -1
  84. package/lib/dist/extraction/languages/pascal.d.ts.map +1 -1
  85. package/lib/dist/extraction/languages/pascal.js +11 -0
  86. package/lib/dist/extraction/languages/pascal.js.map +1 -1
  87. package/lib/dist/extraction/languages/php.d.ts.map +1 -1
  88. package/lib/dist/extraction/languages/php.js +90 -1
  89. package/lib/dist/extraction/languages/php.js.map +1 -1
  90. package/lib/dist/extraction/languages/r.d.ts +3 -0
  91. package/lib/dist/extraction/languages/r.d.ts.map +1 -0
  92. package/lib/dist/extraction/languages/r.js +314 -0
  93. package/lib/dist/extraction/languages/r.js.map +1 -0
  94. package/lib/dist/extraction/languages/ruby.d.ts.map +1 -1
  95. package/lib/dist/extraction/languages/ruby.js +35 -0
  96. package/lib/dist/extraction/languages/ruby.js.map +1 -1
  97. package/lib/dist/extraction/languages/rust.d.ts.map +1 -1
  98. package/lib/dist/extraction/languages/rust.js +35 -2
  99. package/lib/dist/extraction/languages/rust.js.map +1 -1
  100. package/lib/dist/extraction/languages/scala.d.ts.map +1 -1
  101. package/lib/dist/extraction/languages/scala.js +61 -1
  102. package/lib/dist/extraction/languages/scala.js.map +1 -1
  103. package/lib/dist/extraction/languages/swift.d.ts.map +1 -1
  104. package/lib/dist/extraction/languages/swift.js +61 -0
  105. package/lib/dist/extraction/languages/swift.js.map +1 -1
  106. package/lib/dist/extraction/languages/typescript.d.ts +13 -0
  107. package/lib/dist/extraction/languages/typescript.d.ts.map +1 -1
  108. package/lib/dist/extraction/languages/typescript.js +38 -0
  109. package/lib/dist/extraction/languages/typescript.js.map +1 -1
  110. package/lib/dist/extraction/liquid-extractor.d.ts +7 -0
  111. package/lib/dist/extraction/liquid-extractor.d.ts.map +1 -1
  112. package/lib/dist/extraction/liquid-extractor.js +53 -9
  113. package/lib/dist/extraction/liquid-extractor.js.map +1 -1
  114. package/lib/dist/extraction/razor-extractor.d.ts +42 -0
  115. package/lib/dist/extraction/razor-extractor.d.ts.map +1 -0
  116. package/lib/dist/extraction/razor-extractor.js +285 -0
  117. package/lib/dist/extraction/razor-extractor.js.map +1 -0
  118. package/lib/dist/extraction/svelte-extractor.d.ts.map +1 -1
  119. package/lib/dist/extraction/svelte-extractor.js +6 -3
  120. package/lib/dist/extraction/svelte-extractor.js.map +1 -1
  121. package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
  122. package/lib/dist/extraction/tree-sitter-helpers.js +59 -10
  123. package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
  124. package/lib/dist/extraction/tree-sitter-types.d.ts +33 -0
  125. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  126. package/lib/dist/extraction/tree-sitter.d.ts +211 -0
  127. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  128. package/lib/dist/extraction/tree-sitter.js +1681 -49
  129. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  130. package/lib/dist/extraction/vue-extractor.d.ts +15 -0
  131. package/lib/dist/extraction/vue-extractor.d.ts.map +1 -1
  132. package/lib/dist/extraction/vue-extractor.js +94 -3
  133. package/lib/dist/extraction/vue-extractor.js.map +1 -1
  134. package/lib/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  135. package/lib/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  136. package/lib/dist/graph/queries.d.ts.map +1 -1
  137. package/lib/dist/graph/queries.js +13 -40
  138. package/lib/dist/graph/queries.js.map +1 -1
  139. package/lib/dist/graph/traversal.d.ts.map +1 -1
  140. package/lib/dist/graph/traversal.js +16 -4
  141. package/lib/dist/graph/traversal.js.map +1 -1
  142. package/lib/dist/index.d.ts +34 -2
  143. package/lib/dist/index.d.ts.map +1 -1
  144. package/lib/dist/index.js +90 -8
  145. package/lib/dist/index.js.map +1 -1
  146. package/lib/dist/installer/index.d.ts.map +1 -1
  147. package/lib/dist/installer/index.js +63 -2
  148. package/lib/dist/installer/index.js.map +1 -1
  149. package/lib/dist/installer/instructions-template.d.ts +34 -11
  150. package/lib/dist/installer/instructions-template.d.ts.map +1 -1
  151. package/lib/dist/installer/instructions-template.js +44 -12
  152. package/lib/dist/installer/instructions-template.js.map +1 -1
  153. package/lib/dist/installer/targets/claude.d.ts.map +1 -1
  154. package/lib/dist/installer/targets/claude.js +6 -10
  155. package/lib/dist/installer/targets/claude.js.map +1 -1
  156. package/lib/dist/installer/targets/codex.js +4 -6
  157. package/lib/dist/installer/targets/codex.js.map +1 -1
  158. package/lib/dist/installer/targets/gemini.js +4 -6
  159. package/lib/dist/installer/targets/gemini.js.map +1 -1
  160. package/lib/dist/installer/targets/opencode.d.ts +9 -1
  161. package/lib/dist/installer/targets/opencode.d.ts.map +1 -1
  162. package/lib/dist/installer/targets/opencode.js +91 -40
  163. package/lib/dist/installer/targets/opencode.js.map +1 -1
  164. package/lib/dist/installer/targets/shared.d.ts +14 -0
  165. package/lib/dist/installer/targets/shared.d.ts.map +1 -1
  166. package/lib/dist/installer/targets/shared.js +16 -0
  167. package/lib/dist/installer/targets/shared.js.map +1 -1
  168. package/lib/dist/mcp/daemon-manager.d.ts +42 -0
  169. package/lib/dist/mcp/daemon-manager.d.ts.map +1 -0
  170. package/lib/dist/mcp/daemon-manager.js +129 -0
  171. package/lib/dist/mcp/daemon-manager.js.map +1 -0
  172. package/lib/dist/mcp/daemon-registry.d.ts +47 -0
  173. package/lib/dist/mcp/daemon-registry.d.ts.map +1 -0
  174. package/lib/dist/mcp/daemon-registry.js +229 -0
  175. package/lib/dist/mcp/daemon-registry.js.map +1 -0
  176. package/lib/dist/mcp/daemon.d.ts +60 -1
  177. package/lib/dist/mcp/daemon.d.ts.map +1 -1
  178. package/lib/dist/mcp/daemon.js +226 -8
  179. package/lib/dist/mcp/daemon.js.map +1 -1
  180. package/lib/dist/mcp/dynamic-boundaries.d.ts +41 -0
  181. package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  182. package/lib/dist/mcp/dynamic-boundaries.js +359 -0
  183. package/lib/dist/mcp/dynamic-boundaries.js.map +1 -0
  184. package/lib/dist/mcp/index.d.ts +1 -0
  185. package/lib/dist/mcp/index.d.ts.map +1 -1
  186. package/lib/dist/mcp/index.js +31 -9
  187. package/lib/dist/mcp/index.js.map +1 -1
  188. package/lib/dist/mcp/liveness-watchdog.d.ts +18 -0
  189. package/lib/dist/mcp/liveness-watchdog.d.ts.map +1 -0
  190. package/lib/dist/mcp/liveness-watchdog.js +207 -0
  191. package/lib/dist/mcp/liveness-watchdog.js.map +1 -0
  192. package/lib/dist/mcp/ppid-watchdog.d.ts +44 -0
  193. package/lib/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  194. package/lib/dist/mcp/ppid-watchdog.js +27 -0
  195. package/lib/dist/mcp/ppid-watchdog.js.map +1 -0
  196. package/lib/dist/mcp/proxy.d.ts +6 -0
  197. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  198. package/lib/dist/mcp/proxy.js +153 -24
  199. package/lib/dist/mcp/proxy.js.map +1 -1
  200. package/lib/dist/mcp/server-instructions.d.ts +12 -1
  201. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  202. package/lib/dist/mcp/server-instructions.js +43 -16
  203. package/lib/dist/mcp/server-instructions.js.map +1 -1
  204. package/lib/dist/mcp/session.d.ts +2 -0
  205. package/lib/dist/mcp/session.d.ts.map +1 -1
  206. package/lib/dist/mcp/session.js +49 -2
  207. package/lib/dist/mcp/session.js.map +1 -1
  208. package/lib/dist/mcp/stdin-teardown.d.ts +27 -0
  209. package/lib/dist/mcp/stdin-teardown.d.ts.map +1 -0
  210. package/lib/dist/mcp/stdin-teardown.js +49 -0
  211. package/lib/dist/mcp/stdin-teardown.js.map +1 -0
  212. package/lib/dist/mcp/tools.d.ts +71 -0
  213. package/lib/dist/mcp/tools.d.ts.map +1 -1
  214. package/lib/dist/mcp/tools.js +703 -85
  215. package/lib/dist/mcp/tools.js.map +1 -1
  216. package/lib/dist/mcp/transport.d.ts.map +1 -1
  217. package/lib/dist/mcp/transport.js +18 -2
  218. package/lib/dist/mcp/transport.js.map +1 -1
  219. package/lib/dist/resolution/callback-synthesizer.d.ts +3 -3
  220. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  221. package/lib/dist/resolution/callback-synthesizer.js +549 -21
  222. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  223. package/lib/dist/resolution/frameworks/astro.d.ts +9 -0
  224. package/lib/dist/resolution/frameworks/astro.d.ts.map +1 -0
  225. package/lib/dist/resolution/frameworks/astro.js +169 -0
  226. package/lib/dist/resolution/frameworks/astro.js.map +1 -0
  227. package/lib/dist/resolution/frameworks/expo-modules.d.ts.map +1 -1
  228. package/lib/dist/resolution/frameworks/expo-modules.js +6 -1
  229. package/lib/dist/resolution/frameworks/expo-modules.js.map +1 -1
  230. package/lib/dist/resolution/frameworks/index.d.ts +1 -0
  231. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  232. package/lib/dist/resolution/frameworks/index.js +5 -1
  233. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  234. package/lib/dist/resolution/frameworks/java.js +6 -1
  235. package/lib/dist/resolution/frameworks/java.js.map +1 -1
  236. package/lib/dist/resolution/frameworks/python.d.ts.map +1 -1
  237. package/lib/dist/resolution/frameworks/python.js +7 -3
  238. package/lib/dist/resolution/frameworks/python.js.map +1 -1
  239. package/lib/dist/resolution/frameworks/react-native.d.ts.map +1 -1
  240. package/lib/dist/resolution/frameworks/react-native.js +53 -3
  241. package/lib/dist/resolution/frameworks/react-native.js.map +1 -1
  242. package/lib/dist/resolution/frameworks/react.d.ts.map +1 -1
  243. package/lib/dist/resolution/frameworks/react.js +15 -3
  244. package/lib/dist/resolution/frameworks/react.js.map +1 -1
  245. package/lib/dist/resolution/frameworks/svelte.js +5 -1
  246. package/lib/dist/resolution/frameworks/svelte.js.map +1 -1
  247. package/lib/dist/resolution/frameworks/vue.js +24 -27
  248. package/lib/dist/resolution/frameworks/vue.js.map +1 -1
  249. package/lib/dist/resolution/import-resolver.d.ts +10 -0
  250. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  251. package/lib/dist/resolution/import-resolver.js +620 -2
  252. package/lib/dist/resolution/import-resolver.js.map +1 -1
  253. package/lib/dist/resolution/index.d.ts +80 -0
  254. package/lib/dist/resolution/index.d.ts.map +1 -1
  255. package/lib/dist/resolution/index.js +457 -7
  256. package/lib/dist/resolution/index.js.map +1 -1
  257. package/lib/dist/resolution/name-matcher.d.ts +61 -0
  258. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  259. package/lib/dist/resolution/name-matcher.js +590 -14
  260. package/lib/dist/resolution/name-matcher.js.map +1 -1
  261. package/lib/dist/resolution/types.d.ts +27 -3
  262. package/lib/dist/resolution/types.d.ts.map +1 -1
  263. package/lib/dist/resolution/workspace-packages.d.ts +48 -0
  264. package/lib/dist/resolution/workspace-packages.d.ts.map +1 -0
  265. package/lib/dist/resolution/workspace-packages.js +208 -0
  266. package/lib/dist/resolution/workspace-packages.js.map +1 -0
  267. package/lib/dist/search/query-utils.d.ts +17 -1
  268. package/lib/dist/search/query-utils.d.ts.map +1 -1
  269. package/lib/dist/search/query-utils.js +79 -10
  270. package/lib/dist/search/query-utils.js.map +1 -1
  271. package/lib/dist/sync/watcher.d.ts +124 -32
  272. package/lib/dist/sync/watcher.d.ts.map +1 -1
  273. package/lib/dist/sync/watcher.js +326 -111
  274. package/lib/dist/sync/watcher.js.map +1 -1
  275. package/lib/dist/telemetry/index.d.ts +146 -0
  276. package/lib/dist/telemetry/index.d.ts.map +1 -0
  277. package/lib/dist/telemetry/index.js +544 -0
  278. package/lib/dist/telemetry/index.js.map +1 -0
  279. package/lib/dist/types.d.ts +17 -2
  280. package/lib/dist/types.d.ts.map +1 -1
  281. package/lib/dist/types.js +3 -0
  282. package/lib/dist/types.js.map +1 -1
  283. package/lib/dist/upgrade/index.d.ts +132 -0
  284. package/lib/dist/upgrade/index.d.ts.map +1 -0
  285. package/lib/dist/upgrade/index.js +462 -0
  286. package/lib/dist/upgrade/index.js.map +1 -0
  287. package/lib/dist/utils.d.ts +30 -24
  288. package/lib/dist/utils.d.ts.map +1 -1
  289. package/lib/dist/utils.js +64 -48
  290. package/lib/dist/utils.js.map +1 -1
  291. package/lib/node_modules/.package-lock.json +1 -29
  292. package/lib/package.json +1 -2
  293. package/package.json +1 -1
  294. package/lib/node_modules/chokidar/LICENSE +0 -21
  295. package/lib/node_modules/chokidar/README.md +0 -305
  296. package/lib/node_modules/chokidar/esm/handler.d.ts +0 -90
  297. package/lib/node_modules/chokidar/esm/handler.js +0 -629
  298. package/lib/node_modules/chokidar/esm/index.d.ts +0 -215
  299. package/lib/node_modules/chokidar/esm/index.js +0 -798
  300. package/lib/node_modules/chokidar/esm/package.json +0 -1
  301. package/lib/node_modules/chokidar/handler.d.ts +0 -90
  302. package/lib/node_modules/chokidar/handler.js +0 -635
  303. package/lib/node_modules/chokidar/index.d.ts +0 -215
  304. package/lib/node_modules/chokidar/index.js +0 -804
  305. package/lib/node_modules/chokidar/package.json +0 -69
  306. package/lib/node_modules/readdirp/LICENSE +0 -21
  307. package/lib/node_modules/readdirp/README.md +0 -120
  308. package/lib/node_modules/readdirp/esm/index.d.ts +0 -108
  309. package/lib/node_modules/readdirp/esm/index.js +0 -257
  310. package/lib/node_modules/readdirp/esm/package.json +0 -1
  311. package/lib/node_modules/readdirp/index.d.ts +0 -108
  312. package/lib/node_modules/readdirp/index.js +0 -263
  313. package/lib/node_modules/readdirp/package.json +0 -70
@@ -0,0 +1,359 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.blankStringContents = blankStringContents;
4
+ exports.scanDynamicDispatch = scanDynamicDispatch;
5
+ /**
6
+ * Dynamic-dispatch boundary detection for codegraph_explore (#687).
7
+ *
8
+ * When the flow an agent asked about does NOT connect statically, the cause is
9
+ * almost always a dynamic-dispatch site: a computed member call, getattr,
10
+ * reflection, a string-keyed bus, a typed command/mediator dispatch. Guessing
11
+ * the missing edge was rejected (silent beats wrong — a wrong edge poisons the
12
+ * map and teaches abandonment). Instead, explore ANNOUNCES the boundary
13
+ * honestly: the exact site where the static path ends, the dispatch form, and
14
+ * — when a key is statically visible (string literal, `:symbol`, `new Type`)
15
+ * — that key, so the caller can shortlist candidate targets.
16
+ *
17
+ * Detection is deterministic regex over the comment/string-stripped bodies of
18
+ * the symbols the agent named, at QUERY TIME only. The graph is never mutated;
19
+ * an unbroken flow never triggers a scan. Matching runs on the stripped text
20
+ * (so commented-out / string-embedded code can't fire) but snippets and keys
21
+ * are sliced from the ORIGINAL source at the same offsets — both strippers
22
+ * blank contents in place, preserving offsets, precisely for this.
23
+ * (`stripCommentsForRegex` blanks comments but deliberately KEEPS string
24
+ * contents — framework extractors need route literals; here a dispatch shape
25
+ * inside a string is a false positive, so {@link blankStringContents} blanks
26
+ * them too, quotes preserved.)
27
+ */
28
+ const strip_comments_1 = require("../resolution/strip-comments");
29
+ const JS_FAMILY = new Set(['typescript', 'javascript', 'tsx', 'jsx', 'vue', 'svelte', 'astro']);
30
+ const PY = new Set(['python']);
31
+ const RB = new Set(['ruby']);
32
+ const PHP = new Set(['php']);
33
+ const JVM_CS_GO = new Set(['java', 'kotlin', 'scala', 'csharp', 'go']);
34
+ const SWIFT_OBJC = new Set(['swift', 'objc', 'objcpp', 'objective-c']);
35
+ /** Exactly one quoted literal and no concatenation → that literal is the key. */
36
+ function singleStringLiteral(text) {
37
+ const m = text.match(/^[^'"`]*(['"`])([\w.:-]{2,64})\1[^'"`]*$/);
38
+ return m ? m[2] : undefined;
39
+ }
40
+ const FORMS = [
41
+ {
42
+ // handlers[action.type](payload) / registry[key](args) / table[k](...) —
43
+ // the `](` adjacency is the gate; a word/`)`/`]` char must precede `[` so
44
+ // array literals and markdown-ish text in prose can't fire.
45
+ form: 'computed-call',
46
+ label: 'computed member call',
47
+ re: /[\w$)\]]\s*\[([^[\]\n]{1,80})\]\s*\(/g,
48
+ keyFrom: (orig) => {
49
+ const inner = orig.match(/\[([^[\]\n]{1,80})\]\s*\($/);
50
+ const key = inner ? singleStringLiteral(inner[1]) : undefined;
51
+ return key ? { key } : undefined;
52
+ },
53
+ },
54
+ {
55
+ // import(expr) / require(expr) with a NON-literal argument → runtime module
56
+ // choice. Literal imports are ordinary edges and never reach this scanner.
57
+ form: 'dynamic-import',
58
+ label: 'dynamic import',
59
+ langs: JS_FAMILY,
60
+ re: /\b(?:import|require)\s*\(\s*(?![\s'"`)])/g,
61
+ },
62
+ {
63
+ form: 'dynamic-import',
64
+ label: 'dynamic import',
65
+ langs: PY,
66
+ re: /\bimportlib\.import_module\s*\(|\b__import__\s*\(/g,
67
+ },
68
+ {
69
+ // obj.send(:method_name) / public_send / method(:name) — ruby metaprogramming.
70
+ form: 'ruby-send',
71
+ label: 'send dispatch',
72
+ langs: RB,
73
+ re: /\.(?:public_)?send\s*\(\s*:?\w+|\bmethod\s*\(\s*:\w+\s*\)/g,
74
+ keyFrom: (orig) => {
75
+ const m = orig.match(/:(\w+)/);
76
+ return m ? { key: m[1] } : undefined;
77
+ },
78
+ },
79
+ {
80
+ // call_user_func([$this, 'method']) / $this->$method() / $callback() —
81
+ // PHP variable functions and callables.
82
+ form: 'php-dynamic',
83
+ label: 'dynamic call',
84
+ langs: PHP,
85
+ re: /\bcall_user_func(?:_array)?\s*\(|\$this\s*->\s*\$\w+\s*\(|\$\w+\s*\(/g,
86
+ keyWindow: 80,
87
+ keyFrom: (orig) => {
88
+ const key = singleStringLiteral(orig);
89
+ return key ? { key } : undefined;
90
+ },
91
+ },
92
+ {
93
+ // Reflection: Method.invoke / getMethod("x") / Class.forName / Go
94
+ // reflect MethodByName / C# Activator.CreateInstance, GetMethod.
95
+ form: 'reflection',
96
+ label: 'reflective dispatch',
97
+ langs: JVM_CS_GO,
98
+ re: /\.invoke\s*\(|\.get(?:Declared)?Method\s*\(|\.GetMethod\s*\(|MethodByName\s*\(|Activator\.CreateInstance|Class\.forName\s*\(/g,
99
+ keyWindow: 80,
100
+ keyFrom: (orig) => {
101
+ const key = singleStringLiteral(orig);
102
+ return key ? { key } : undefined;
103
+ },
104
+ },
105
+ {
106
+ // new Proxy(target, handler) / Reflect.get|apply — JS metaobject dispatch.
107
+ form: 'proxy-reflect',
108
+ label: 'Proxy/Reflect dispatch',
109
+ langs: JS_FAMILY,
110
+ re: /\bnew\s+Proxy\s*\(|\bReflect\.(?:get|apply|construct)\s*\(/g,
111
+ },
112
+ {
113
+ // mediator.Send(new CreateTodoItemCommand(...)) / bus.publish(new OrderEvent(...))
114
+ // — typed message dispatch (MediatR/CQRS/event-bus). The request TYPE is the
115
+ // key; the conventional target is `<Type>Handler`.
116
+ form: 'typed-bus',
117
+ label: 'typed message dispatch',
118
+ re: /\.(?:[Ss]end|[Pp]ublish|[Dd]ispatch|[Ee]xecute|[Pp]ost|[Ee]mit)(?:Async)?\s*(?:<[^<>\n]{0,80}>)?\s*\(\s*new\s+([A-Z]\w*)/g,
119
+ keyFrom: (orig) => {
120
+ const m = orig.match(/new\s+([A-Z]\w*)$/);
121
+ return m ? { key: m[1], keyIsType: true } : undefined;
122
+ },
123
+ },
124
+ {
125
+ // emitter.emit(eventVar, ...) / store.dispatch(action) — string-keyed
126
+ // dispatch where the key is a RUNTIME value. (Literal-keyed emits are the
127
+ // synthesizer's territory and connect statically when a handler matches.)
128
+ form: 'var-key-dispatch',
129
+ label: 'string-keyed dispatch (runtime key)',
130
+ re: /\.(?:emit|dispatch|trigger|fire|publish|broadcast)\s*\(\s*[A-Za-z_$][\w$]*(?:\.[\w$]+){0,3}\s*[,)]/g,
131
+ },
132
+ {
133
+ // Swift/ObjC: #selector(name) / NSClassFromString — runtime selector dispatch.
134
+ form: 'selector',
135
+ label: 'selector dispatch',
136
+ langs: SWIFT_OBJC,
137
+ re: /#selector\s*\(\s*([\w.]+)|NSClassFromString\s*\(/g,
138
+ keyFrom: (orig) => {
139
+ const m = orig.match(/#selector\s*\(\s*([\w.]+)/);
140
+ if (!m)
141
+ return undefined;
142
+ const segs = m[1].split('.');
143
+ return { key: segs[segs.length - 1] };
144
+ },
145
+ },
146
+ ];
147
+ /** Map a Node.language to the comment-stripper's language set. */
148
+ function commentLang(language) {
149
+ switch (language) {
150
+ case 'python': return 'python';
151
+ case 'ruby': return 'ruby';
152
+ case 'rust': return 'rust';
153
+ case 'php': return 'php';
154
+ case 'go': return 'go';
155
+ case 'javascript':
156
+ case 'jsx':
157
+ return 'javascript';
158
+ case 'typescript':
159
+ case 'tsx':
160
+ case 'vue':
161
+ case 'svelte':
162
+ case 'astro':
163
+ return 'typescript';
164
+ case 'java':
165
+ case 'kotlin':
166
+ case 'scala':
167
+ case 'dart':
168
+ return 'java';
169
+ case 'csharp': return 'csharp';
170
+ case 'swift': return 'swift';
171
+ case 'c':
172
+ case 'cpp':
173
+ case 'objc':
174
+ case 'objcpp':
175
+ return 'java'; // C-style comments + double-quoted strings — close enough for blanking
176
+ default: return null;
177
+ }
178
+ }
179
+ const MAX_MATCHES_PER_BODY = 3;
180
+ const MAX_BODY_CHARS = 60_000; // a god-function tail is still scannable; beyond this, truncate
181
+ /**
182
+ * Blank the CONTENTS of string literals (quotes preserved, offsets preserved)
183
+ * so dispatch-shaped prose — docs, error messages, template text — can't fire
184
+ * a matcher. Run AFTER comment stripping (comments are already spaces).
185
+ * Backslash escapes are honored; `'`/`"` strings end at a newline (treated as
186
+ * unterminated, matching the comment stripper); backticks span lines, and
187
+ * `${...}` interpolations inside them are blanked too — missing a dispatch
188
+ * inside a template literal is acceptable, false-firing on prose is not.
189
+ */
190
+ function blankStringContents(text) {
191
+ const out = text.split('');
192
+ let i = 0;
193
+ const n = text.length;
194
+ while (i < n) {
195
+ const c = text[i];
196
+ if (c === '"' || c === "'" || c === '`') {
197
+ const quote = c;
198
+ i++;
199
+ while (i < n && text[i] !== quote) {
200
+ if (text[i] === '\\' && i + 1 < n) {
201
+ out[i] = ' ';
202
+ out[i + 1] = ' ';
203
+ i += 2;
204
+ continue;
205
+ }
206
+ if (quote !== '`' && text[i] === '\n')
207
+ break; // unterminated — stop blanking
208
+ if (text[i] !== '\n')
209
+ out[i] = ' '; // keep newlines for line math
210
+ i++;
211
+ }
212
+ if (i < n && text[i] === quote)
213
+ i++;
214
+ continue;
215
+ }
216
+ i++;
217
+ }
218
+ return out.join('');
219
+ }
220
+ /**
221
+ * Scan one symbol's body for dynamic-dispatch sites.
222
+ *
223
+ * @param body the symbol's source text (sliced from the file)
224
+ * @param language Node.language of the symbol
225
+ * @param fileStartLine 1-based line where `body` starts in its file — returned
226
+ * line numbers are absolute file lines.
227
+ */
228
+ function scanDynamicDispatch(body, language, fileStartLine) {
229
+ const original = body.length > MAX_BODY_CHARS ? body.slice(0, MAX_BODY_CHARS) : body;
230
+ const lang = commentLang(language);
231
+ const stripped = blankStringContents(lang ? (0, strip_comments_1.stripCommentsForRegex)(original, lang) : original);
232
+ const out = [];
233
+ const seen = new Map(); // form+key → first match (counts extras)
234
+ if (language === 'python')
235
+ scanPythonGetattr(stripped, original, fileStartLine, out, seen);
236
+ for (const spec of FORMS) {
237
+ if (out.length >= MAX_MATCHES_PER_BODY)
238
+ break;
239
+ if (spec.langs && !spec.langs.has(language))
240
+ continue;
241
+ spec.re.lastIndex = 0;
242
+ let m;
243
+ while ((m = spec.re.exec(stripped)) !== null) {
244
+ let sliceEnd = m.index + m[0].length;
245
+ if (spec.keyWindow) {
246
+ const windowEnd = Math.min(original.length, sliceEnd + spec.keyWindow);
247
+ const nl = original.indexOf('\n', sliceEnd);
248
+ sliceEnd = nl !== -1 && nl < windowEnd ? nl : windowEnd;
249
+ }
250
+ const origSlice = original.slice(m.index, sliceEnd);
251
+ const derived = spec.keyFrom?.(origSlice);
252
+ const dedupeKey = `${spec.form}|${derived?.key ?? ''}`;
253
+ const prior = seen.get(dedupeKey);
254
+ if (prior) {
255
+ prior.moreSites = (prior.moreSites ?? 0) + 1;
256
+ continue;
257
+ }
258
+ const line = fileStartLine + countNewlines(original, m.index);
259
+ const match = {
260
+ form: spec.form,
261
+ label: spec.label,
262
+ snippet: snippetAround(original, m.index),
263
+ line,
264
+ ...(derived ?? {}),
265
+ };
266
+ seen.set(dedupeKey, match);
267
+ out.push(match);
268
+ if (out.length >= MAX_MATCHES_PER_BODY)
269
+ return out;
270
+ }
271
+ }
272
+ return out;
273
+ }
274
+ /**
275
+ * Python getattr dispatch — handled in code, not the FORMS table, because real
276
+ * getattr calls have nested-call arguments spanning lines
277
+ * (`getattr(self, request.method.lower(),\n self.http_method_not_allowed)` —
278
+ * DRF's APIView.dispatch) that a regex argument class can't bound. Two shapes:
279
+ * getattr(obj, name)(args) → immediate call
280
+ * handler = getattr(obj, name) ... handler(...) → assigned, called later
281
+ */
282
+ const GETATTR_RE = /\bgetattr\s*\(/g;
283
+ const MAX_GETATTR_ARGS = 300;
284
+ function scanPythonGetattr(stripped, original, fileStartLine, out, seen) {
285
+ GETATTR_RE.lastIndex = 0;
286
+ let m;
287
+ while ((m = GETATTR_RE.exec(stripped)) !== null && out.length < MAX_MATCHES_PER_BODY) {
288
+ const open = m.index + m[0].length - 1;
289
+ const close = matchBalancedParen(stripped, open);
290
+ if (close === -1)
291
+ continue;
292
+ let form;
293
+ let label = '';
294
+ // Immediate call: getattr(...)(
295
+ const after = stripped.slice(close + 1, close + 8);
296
+ if (/^\s*\(/.test(after)) {
297
+ form = 'getattr-call';
298
+ label = 'getattr dispatch';
299
+ }
300
+ else {
301
+ // Assigned form: look back for `name =` and forward for `name(`.
302
+ const lineStart = stripped.lastIndexOf('\n', m.index) + 1;
303
+ const before = stripped.slice(lineStart, m.index);
304
+ const assign = before.match(/(\w+)\s*=\s*$/);
305
+ if (assign && new RegExp(`\\b${assign[1]}\\s*\\(`).test(stripped.slice(close + 1))) {
306
+ form = 'getattr-assign';
307
+ label = 'getattr dispatch (assigned, called later)';
308
+ }
309
+ }
310
+ if (!form)
311
+ continue;
312
+ const key = singleStringLiteral(original.slice(open + 1, close));
313
+ const dedupeKey = `${form}|${key ?? ''}`;
314
+ const prior = seen.get(dedupeKey);
315
+ if (prior) {
316
+ prior.moreSites = (prior.moreSites ?? 0) + 1;
317
+ continue;
318
+ }
319
+ const match = {
320
+ form,
321
+ label,
322
+ snippet: snippetAround(original, m.index),
323
+ line: fileStartLine + countNewlines(original, m.index),
324
+ ...(key ? { key } : {}),
325
+ };
326
+ seen.set(dedupeKey, match);
327
+ out.push(match);
328
+ }
329
+ }
330
+ /** Index of the `)` balancing `text[open]`, or -1 (cap: MAX_GETATTR_ARGS chars). */
331
+ function matchBalancedParen(text, open) {
332
+ let depth = 0;
333
+ const end = Math.min(text.length, open + MAX_GETATTR_ARGS);
334
+ for (let i = open; i < end; i++) {
335
+ const c = text[i];
336
+ if (c === '(')
337
+ depth++;
338
+ else if (c === ')' && --depth === 0)
339
+ return i;
340
+ }
341
+ return -1;
342
+ }
343
+ function countNewlines(text, end) {
344
+ let n = 0;
345
+ for (let i = 0; i < end; i++)
346
+ if (text.charCodeAt(i) === 10)
347
+ n++;
348
+ return n;
349
+ }
350
+ /** The full source line containing `index`, trimmed and capped for display. */
351
+ function snippetAround(text, index) {
352
+ const lineStart = text.lastIndexOf('\n', index) + 1;
353
+ let lineEnd = text.indexOf('\n', index);
354
+ if (lineEnd === -1)
355
+ lineEnd = text.length;
356
+ const line = text.slice(lineStart, lineEnd).trim();
357
+ return line.length > 120 ? line.slice(0, 117) + '...' : line;
358
+ }
359
+ //# sourceMappingURL=dynamic-boundaries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-boundaries.js","sourceRoot":"","sources":["../../src/mcp/dynamic-boundaries.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@ export declare class MCPServer {
50
50
  private engine;
51
51
  private daemon;
52
52
  private ppidWatchdog;
53
+ private livenessWatchdog;
53
54
  private originalPpid;
54
55
  private hostPpid;
55
56
  private stopped;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAsKH;;;;;;;;;;GAUG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAgB;IAGnC,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAA+C;IAGnE,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAA4D;IAE5E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAA4D;gBAE5D,WAAW,CAAC,EAAE,MAAM;IAIhC;;;;;;;;;;;;OAYG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC5B;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAuBZ,uEAAuE;YACzD,WAAW;IA4BzB;;;;;;;;OAQG;YACW,kBAAkB;IAiChC;;;;;;;OAOG;YACW,0BAA0B;IAoBxC,iFAAiF;IACjF,OAAO,CAAC,qBAAqB;IAK7B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAoB5B;AAWD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AA0KH;;;;;;;;;;GAUG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAgB;IAGnC,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAA+C;IAGnE,OAAO,CAAC,gBAAgB,CAA+B;IAGvD,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAA4D;IAE5E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAA4D;gBAE5D,WAAW,CAAC,EAAE,MAAM;IAIhC;;;;;;;;;;;;OAYG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C5B;;;;OAIG;IACH,IAAI,IAAI,IAAI;IA2BZ,uEAAuE;YACzD,WAAW;IA+BzB;;;;;;;;OAQG;YACW,kBAAkB;IAqChC;;;;;;;OAOG;YACW,0BAA0B;IAoBxC,iFAAiF;IACjF,OAAO,CAAC,qBAAqB;IAK7B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAoB5B;AAWD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC"}
@@ -79,6 +79,10 @@ const session_1 = require("./session");
79
79
  const daemon_1 = require("./daemon");
80
80
  const proxy_1 = require("./proxy");
81
81
  const daemon_paths_1 = require("./daemon-paths");
82
+ const telemetry_1 = require("../telemetry");
83
+ const ppid_watchdog_1 = require("./ppid-watchdog");
84
+ const liveness_watchdog_1 = require("./liveness-watchdog");
85
+ const stdin_teardown_1 = require("./stdin-teardown");
82
86
  const wasm_runtime_flags_1 = require("../extraction/wasm-runtime-flags");
83
87
  /**
84
88
  * How often to poll `process.ppid` to detect parent process death (see #277).
@@ -248,6 +252,9 @@ class MCPServer {
248
252
  engine = null;
249
253
  daemon = null;
250
254
  ppidWatchdog = null;
255
+ // Worker-thread liveness watchdog (#850). Long-lived modes only; SIGKILLs the
256
+ // process if the main thread wedges in a non-yielding sync loop.
257
+ livenessWatchdog = null;
251
258
  // PPID watchdog baseline — captured at construction so we always have a
252
259
  // baseline, even if start() runs after a fork-style reparent.
253
260
  originalPpid = process.ppid;
@@ -272,6 +279,10 @@ class MCPServer {
272
279
  * mode — a misbehaving daemon must never block a session from starting.
273
280
  */
274
281
  async start() {
282
+ // Long-lived process (direct / proxy / daemon alike): flush buffered
283
+ // telemetry opportunistically. Fire-and-forget + unref'd — adds nothing
284
+ // to the handshake path and never keeps the process alive.
285
+ (0, telemetry_1.getTelemetry)().startInterval();
275
286
  // The detached daemon process itself. Checked before the opt-out so the
276
287
  // daemon honors the same env it was spawned with (it never sets NO_DAEMON).
277
288
  if (daemonInternalSet()) {
@@ -319,6 +330,10 @@ class MCPServer {
319
330
  clearInterval(this.ppidWatchdog);
320
331
  this.ppidWatchdog = null;
321
332
  }
333
+ if (this.livenessWatchdog) {
334
+ this.livenessWatchdog.stop();
335
+ this.livenessWatchdog = null;
336
+ }
322
337
  if (this.daemon) {
323
338
  void this.daemon.stop('stop()');
324
339
  // Daemon.stop calls process.exit; nothing else to do.
@@ -352,11 +367,14 @@ class MCPServer {
352
367
  // Detect parent-process death — same logic as pre-refactor. When stdin
353
368
  // closes we go through StdioTransport's `process.exit(0)` already, but
354
369
  // SIGKILL of the parent doesn't reliably close stdin on Linux (#277).
355
- process.stdin.on('end', () => this.stop());
356
- process.stdin.on('close', () => this.stop());
370
+ // Also treat a stdin `'error'` (a socket-backed stdin can fail with
371
+ // ECONNRESET/hangup instead of a clean close) as shutdown, and destroy the
372
+ // stream so a hung fd can't busy-spin the event loop (#799).
373
+ (0, stdin_teardown_1.treatStdinFailureAsShutdown)(() => this.stop());
357
374
  this.mode = 'direct';
358
375
  this.installSignalHandlers();
359
376
  this.installPpidWatchdog();
377
+ this.livenessWatchdog = (0, liveness_watchdog_1.installMainThreadWatchdog)();
360
378
  }
361
379
  /**
362
380
  * Run as the detached shared daemon (process spawned with
@@ -376,6 +394,10 @@ class MCPServer {
376
394
  await daemon.start();
377
395
  this.daemon = daemon;
378
396
  this.mode = 'daemon';
397
+ // The detached daemon has no PPID watchdog or stdin lifeline, so a
398
+ // wedged main thread would pin a core forever (#850). The liveness
399
+ // watchdog is its only recovery path.
400
+ this.livenessWatchdog = (0, liveness_watchdog_1.installMainThreadWatchdog)();
379
401
  return; // the net.Server keeps the process alive
380
402
  }
381
403
  // Taken. If the holder is alive, another daemon already serves (or is
@@ -441,13 +463,13 @@ class MCPServer {
441
463
  if (pollMs <= 0)
442
464
  return;
443
465
  this.ppidWatchdog = setInterval(() => {
444
- const current = process.ppid;
445
- const ppidChanged = current !== this.originalPpid;
446
- const hostGone = this.hostPpid !== null && !(0, daemon_1.isProcessAlive)(this.hostPpid);
447
- if (ppidChanged || hostGone) {
448
- const reason = ppidChanged
449
- ? `ppid ${this.originalPpid} -> ${current}`
450
- : `host pid ${this.hostPpid} exited`;
466
+ const reason = (0, ppid_watchdog_1.supervisionLostReason)({
467
+ originalPpid: this.originalPpid,
468
+ currentPpid: process.ppid,
469
+ hostPpid: this.hostPpid,
470
+ isAlive: daemon_1.isProcessAlive,
471
+ });
472
+ if (reason) {
451
473
  process.stderr.write(`[CodeGraph MCP] Parent process exited (${reason}); shutting down.\n`);
452
474
  this.stop();
453
475
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAoD;AACpD,4CAAyE;AACzE,2CAA6C;AAC7C,qCAAqC;AACrC,uCAAuC;AACvC,qCAKkB;AAClB,mCAAmE;AACnE,iDAAqD;AACrD,yEAAiE;AAEjE;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAExD;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC;;;;;;GAMG;AACH,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,+DAA+D;AAC/D,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEzC;;;;;GAKG;AACH,SAAS,eAAe,CAAC,GAAuB;IAC9C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,oBAAoB,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC1D,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,GAAuB;IAC5C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+DAA+D;AAC/D,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;AACtD,CAAC;AAED,kEAAkE;AAClE,SAAS,iBAAiB;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,iBAAiB,CAAC,YAA2B;IACpD,MAAM,SAAS,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,IAAA,oCAAwB,EAAC,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QAAC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,KAAK,GAAiB,QAAQ,CAAC;IACnC,IAAI,CAAC;QACH,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,2BAAe,EAAC,IAAI,CAAC,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;QACzE,KAAK,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,QAAQ,CAAC,CAAC,uDAAuD;IAC3E,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,qBAAK,EACjB,OAAO,CAAC,QAAQ,EAChB,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,EACnE;YACE,QAAQ,EAAE,IAAI;YACd,KAAK;YACL,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE;SACpD,CACF,CAAC;QACF,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,+EAA+E;QAC/E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC;gBAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAa,SAAS;IACZ,WAAW,CAAgB;IACnC,0EAA0E;IAC1E,qEAAqE;IAC7D,OAAO,GAAsB,IAAI,CAAC;IAClC,MAAM,GAAqB,IAAI,CAAC;IAChC,MAAM,GAAkB,IAAI,CAAC;IAC7B,YAAY,GAA0C,IAAI,CAAC;IACnE,wEAAwE;IACxE,8DAA8D;IACtD,YAAY,GAAW,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,GAAkB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAa,CAAC,CAAC,CAAC;IAC5E,gCAAgC;IACxB,OAAO,GAAG,KAAK,CAAC;IAChB,IAAI,GAAgD,WAAW,CAAC;IAExE,YAAY,WAAoB;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,KAAK;QACT,wEAAwE;QACxE,4EAA4E;QAC5E,IAAI,iBAAiB,EAAE,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACnC,CAAC;QAED,0EAA0E;QAC1E,4CAA4C;QAC5C,IAAI,eAAe,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,oEAAoE;YACpE,uEAAuE;YACvE,OAAO,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC;YACH,2EAA2E;YAC3E,2EAA2E;YAC3E,4EAA4E;YAC5E,2EAA2E;YAC3E,mEAAmE;YACnE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,6EAA6E;YAC7E,4DAA4D;YAC5D,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,mCAAmC,CAAC,CAAC;YACnG,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,sDAAsD;YACtD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uEAAuE;IAC/D,KAAK,CAAC,WAAW,CAAC,MAAc;QACtC,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,KAAK,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAS,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,0BAAc,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAU,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;YACpD,mBAAmB,EAAE,IAAI,CAAC,WAAW;SACtC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,gEAAgE;YAChE,KAAK,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,kBAAkB;QAC9B,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACtF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,oBAAoB,EAAE,OAAO,EAAE,EAAE,CAAC;YAChE,MAAM,IAAI,GAAG,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;YAExC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrB,OAAO,CAAC,yCAAyC;YACnD,CAAC;YAED,sEAAsE;YACtE,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,IAAA,uBAAc,EAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0CAA0C,QAAQ,CAAC,GAAG,sCAAsC,CAC7F,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,yEAAyE;YACzE,kEAAkE;YAClE,IAAA,6BAAoB,EAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,0BAA0B,CAAC,IAAY;QACnD,MAAM,UAAU,GAAG,IAAA,kCAAmB,EAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;YACjC,gDAAgD;YAChD,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAgB,EAAC,UAAU,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,kBAAkB;gBAAE,OAAO,IAAI,CAAC,CAAC,mDAAmD;YAClG,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YACxB,+DAA+D;YAC/D,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,0BAA0B,EAAE,OAAO,EAAE,EAAE,CAAC;gBACtE,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,MAAM,CAAC,GAAG,MAAM,IAAA,wBAAgB,EAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,CAAC,KAAK,kBAAkB;oBAAE,OAAO,IAAI,CAAC;gBAC1C,IAAI,CAAC;oBAAE,OAAO,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,IAAI,CAAC,CAAC,yDAAyD;QACxE,CAAC,CAAC;QACF,MAAM,IAAA,8BAAsB,EAAC,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,iFAAiF;IACzE,qBAAqB;QAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACK,mBAAmB;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QACnC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACnE,IAAI,MAAM,IAAI,CAAC;YAAE,OAAO;QACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAC7B,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,CAAC,YAAY,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAA,uBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1E,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,WAAW;oBACxB,CAAC,CAAC,QAAQ,IAAI,CAAC,YAAY,OAAO,OAAO,EAAE;oBAC3C,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,SAAS,CAAC;gBACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0CAA0C,MAAM,qBAAqB,CACtE,CAAC;gBACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF;AArOD,8BAqOC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,qDAAqD;IACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,wBAAwB;AACxB,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,iCAA6C;AAApC,8FAAA,KAAK,OAAA;AAAE,oGAAA,WAAW,OAAA;AAC3B,0DAA0D;AAC1D,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,qCAAoD;AAA3C,kHAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /** Default: 60s — ~300× shorter than the 5h #850 wedge, far longer than any real main-thread block. */
2
+ export declare const DEFAULT_WATCHDOG_TIMEOUT_MS = 60000;
3
+ /** Parse the timeout env, falling back to the default for missing/invalid values. */
4
+ export declare function parseWatchdogTimeoutMs(raw: string | undefined, fallback?: number): number;
5
+ /** Derive a heartbeat cadence that emits several beats inside the timeout window. */
6
+ export declare function deriveCheckIntervalMs(timeoutMs: number): number;
7
+ export interface WatchdogHandle {
8
+ /** Stop heartbeating and shut the watchdog child down. Idempotent. */
9
+ stop(): void;
10
+ }
11
+ /**
12
+ * Install the main-thread liveness watchdog for a long-lived process. Returns a
13
+ * handle to stop it, or `null` when disabled or when the child can't be spawned
14
+ * (degraded, never throws — a missing watchdog must never keep a process from
15
+ * starting).
16
+ */
17
+ export declare function installMainThreadWatchdog(): WatchdogHandle | null;
18
+ //# sourceMappingURL=liveness-watchdog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveness-watchdog.d.ts","sourceRoot":"","sources":["../../src/mcp/liveness-watchdog.ts"],"names":[],"mappings":"AAwCA,uGAAuG;AACvG,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAQlD,qFAAqF;AACrF,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,GAAE,MAAoC,GAC7C,MAAM,CAIR;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AASD,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,IAAI,IAAI,IAAI,CAAC;CACd;AA2BD;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,cAAc,GAAG,IAAI,CA8DjE"}