@aroman22/codegraph-vba-darwin-arm64 1.15.0 → 1.17.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 (230) hide show
  1. package/lib/dist/bin/codegraph.js +13 -7
  2. package/lib/dist/bin/codegraph.js.map +1 -1
  3. package/lib/dist/bin/daemon-release.d.ts +7 -0
  4. package/lib/dist/bin/daemon-release.d.ts.map +1 -0
  5. package/lib/dist/bin/daemon-release.js +18 -0
  6. package/lib/dist/bin/daemon-release.js.map +1 -0
  7. package/lib/dist/db/queries.d.ts +41 -0
  8. package/lib/dist/db/queries.d.ts.map +1 -1
  9. package/lib/dist/db/queries.js +78 -1
  10. package/lib/dist/db/queries.js.map +1 -1
  11. package/lib/dist/extraction/access-erd-extractor.d.ts +57 -0
  12. package/lib/dist/extraction/access-erd-extractor.d.ts.map +1 -0
  13. package/lib/dist/extraction/access-erd-extractor.js +389 -0
  14. package/lib/dist/extraction/access-erd-extractor.js.map +1 -0
  15. package/lib/dist/extraction/extraction-version.d.ts +1 -1
  16. package/lib/dist/extraction/extraction-version.js +1 -1
  17. package/lib/dist/extraction/grammars.d.ts +20 -0
  18. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  19. package/lib/dist/extraction/grammars.js +34 -0
  20. package/lib/dist/extraction/grammars.js.map +1 -1
  21. package/lib/dist/extraction/index.d.ts +1 -0
  22. package/lib/dist/extraction/index.d.ts.map +1 -1
  23. package/lib/dist/extraction/index.js +371 -351
  24. package/lib/dist/extraction/index.js.map +1 -1
  25. package/lib/dist/extraction/parse-pool.d.ts +8 -3
  26. package/lib/dist/extraction/parse-pool.d.ts.map +1 -1
  27. package/lib/dist/extraction/parse-pool.js +1 -2
  28. package/lib/dist/extraction/parse-pool.js.map +1 -1
  29. package/lib/dist/extraction/parse-worker.js +7 -6
  30. package/lib/dist/extraction/parse-worker.js.map +1 -1
  31. package/lib/dist/extraction/sql-query-extractor.d.ts +16 -14
  32. package/lib/dist/extraction/sql-query-extractor.d.ts.map +1 -1
  33. package/lib/dist/extraction/sql-query-extractor.js +43 -31
  34. package/lib/dist/extraction/sql-query-extractor.js.map +1 -1
  35. package/lib/dist/extraction/sql-table-scan.d.ts +184 -0
  36. package/lib/dist/extraction/sql-table-scan.d.ts.map +1 -0
  37. package/lib/dist/extraction/sql-table-scan.js +288 -0
  38. package/lib/dist/extraction/sql-table-scan.js.map +1 -0
  39. package/lib/dist/extraction/tree-sitter.d.ts +10 -1
  40. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  41. package/lib/dist/extraction/tree-sitter.js +34 -3
  42. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  43. package/lib/dist/extraction/vba/call-sweep.d.ts +2 -7
  44. package/lib/dist/extraction/vba/call-sweep.d.ts.map +1 -1
  45. package/lib/dist/extraction/vba/call-sweep.js +144 -90
  46. package/lib/dist/extraction/vba/call-sweep.js.map +1 -1
  47. package/lib/dist/extraction/vba/calls.d.ts +24 -4
  48. package/lib/dist/extraction/vba/calls.d.ts.map +1 -1
  49. package/lib/dist/extraction/vba/calls.js +42 -12
  50. package/lib/dist/extraction/vba/calls.js.map +1 -1
  51. package/lib/dist/extraction/vba/constants.d.ts +7 -14
  52. package/lib/dist/extraction/vba/constants.d.ts.map +1 -1
  53. package/lib/dist/extraction/vba/constants.js +8 -36
  54. package/lib/dist/extraction/vba/constants.js.map +1 -1
  55. package/lib/dist/extraction/vba/context.d.ts +443 -7
  56. package/lib/dist/extraction/vba/context.d.ts.map +1 -1
  57. package/lib/dist/extraction/vba/context.js +325 -29
  58. package/lib/dist/extraction/vba/context.js.map +1 -1
  59. package/lib/dist/extraction/vba/controls.d.ts +18 -1
  60. package/lib/dist/extraction/vba/controls.d.ts.map +1 -1
  61. package/lib/dist/extraction/vba/controls.js +99 -27
  62. package/lib/dist/extraction/vba/controls.js.map +1 -1
  63. package/lib/dist/extraction/vba/declarations.d.ts +1 -6
  64. package/lib/dist/extraction/vba/declarations.d.ts.map +1 -1
  65. package/lib/dist/extraction/vba/declarations.js +5 -39
  66. package/lib/dist/extraction/vba/declarations.js.map +1 -1
  67. package/lib/dist/extraction/vba/dims.d.ts +11 -7
  68. package/lib/dist/extraction/vba/dims.d.ts.map +1 -1
  69. package/lib/dist/extraction/vba/dims.js +265 -29
  70. package/lib/dist/extraction/vba/dims.js.map +1 -1
  71. package/lib/dist/extraction/vba/docmd.d.ts +29 -2
  72. package/lib/dist/extraction/vba/docmd.d.ts.map +1 -1
  73. package/lib/dist/extraction/vba/docmd.js +297 -18
  74. package/lib/dist/extraction/vba/docmd.js.map +1 -1
  75. package/lib/dist/extraction/vba/enums-consts.d.ts +7 -14
  76. package/lib/dist/extraction/vba/enums-consts.d.ts.map +1 -1
  77. package/lib/dist/extraction/vba/enums-consts.js +11 -45
  78. package/lib/dist/extraction/vba/enums-consts.js.map +1 -1
  79. package/lib/dist/extraction/vba/error-channel.d.ts +57 -0
  80. package/lib/dist/extraction/vba/error-channel.d.ts.map +1 -0
  81. package/lib/dist/extraction/vba/error-channel.js +128 -0
  82. package/lib/dist/extraction/vba/error-channel.js.map +1 -0
  83. package/lib/dist/extraction/vba/errors.d.ts +64 -0
  84. package/lib/dist/extraction/vba/errors.d.ts.map +1 -0
  85. package/lib/dist/extraction/vba/errors.js +775 -0
  86. package/lib/dist/extraction/vba/errors.js.map +1 -0
  87. package/lib/dist/extraction/vba/filesystem-statements.d.ts +23 -0
  88. package/lib/dist/extraction/vba/filesystem-statements.d.ts.map +1 -0
  89. package/lib/dist/extraction/vba/filesystem-statements.js +70 -0
  90. package/lib/dist/extraction/vba/filesystem-statements.js.map +1 -0
  91. package/lib/dist/extraction/vba/implements.d.ts +1 -6
  92. package/lib/dist/extraction/vba/implements.d.ts.map +1 -1
  93. package/lib/dist/extraction/vba/implements.js +1 -22
  94. package/lib/dist/extraction/vba/implements.js.map +1 -1
  95. package/lib/dist/extraction/vba/labels.d.ts +26 -0
  96. package/lib/dist/extraction/vba/labels.d.ts.map +1 -0
  97. package/lib/dist/extraction/vba/labels.js +180 -0
  98. package/lib/dist/extraction/vba/labels.js.map +1 -0
  99. package/lib/dist/extraction/vba/module-vars.d.ts +36 -0
  100. package/lib/dist/extraction/vba/module-vars.d.ts.map +1 -0
  101. package/lib/dist/extraction/vba/module-vars.js +145 -0
  102. package/lib/dist/extraction/vba/module-vars.js.map +1 -0
  103. package/lib/dist/extraction/vba/options.d.ts +88 -0
  104. package/lib/dist/extraction/vba/options.d.ts.map +1 -0
  105. package/lib/dist/extraction/vba/options.js +39 -0
  106. package/lib/dist/extraction/vba/options.js.map +1 -0
  107. package/lib/dist/extraction/vba/parameters.d.ts +35 -0
  108. package/lib/dist/extraction/vba/parameters.d.ts.map +1 -0
  109. package/lib/dist/extraction/vba/parameters.js +110 -0
  110. package/lib/dist/extraction/vba/parameters.js.map +1 -0
  111. package/lib/dist/extraction/vba/procedures.d.ts +1 -9
  112. package/lib/dist/extraction/vba/procedures.d.ts.map +1 -1
  113. package/lib/dist/extraction/vba/procedures.js +174 -112
  114. package/lib/dist/extraction/vba/procedures.js.map +1 -1
  115. package/lib/dist/extraction/vba/rules.d.ts +10 -5
  116. package/lib/dist/extraction/vba/rules.d.ts.map +1 -1
  117. package/lib/dist/extraction/vba/rules.js +19 -0
  118. package/lib/dist/extraction/vba/rules.js.map +1 -1
  119. package/lib/dist/extraction/vba/runtime-objects.d.ts +59 -0
  120. package/lib/dist/extraction/vba/runtime-objects.d.ts.map +1 -0
  121. package/lib/dist/extraction/vba/runtime-objects.js +106 -0
  122. package/lib/dist/extraction/vba/runtime-objects.js.map +1 -0
  123. package/lib/dist/extraction/vba/signature.d.ts +57 -0
  124. package/lib/dist/extraction/vba/signature.d.ts.map +1 -0
  125. package/lib/dist/extraction/vba/signature.js +164 -0
  126. package/lib/dist/extraction/vba/signature.js.map +1 -0
  127. package/lib/dist/extraction/vba/sql-wrapper.d.ts +76 -3
  128. package/lib/dist/extraction/vba/sql-wrapper.d.ts.map +1 -1
  129. package/lib/dist/extraction/vba/sql-wrapper.js +725 -151
  130. package/lib/dist/extraction/vba/sql-wrapper.js.map +1 -1
  131. package/lib/dist/extraction/vba/tempvars.d.ts.map +1 -1
  132. package/lib/dist/extraction/vba/tempvars.js +4 -0
  133. package/lib/dist/extraction/vba/tempvars.js.map +1 -1
  134. package/lib/dist/extraction/vba/text-utils.d.ts +62 -2
  135. package/lib/dist/extraction/vba/text-utils.d.ts.map +1 -1
  136. package/lib/dist/extraction/vba/text-utils.js +84 -6
  137. package/lib/dist/extraction/vba/text-utils.js.map +1 -1
  138. package/lib/dist/extraction/vba-extractor.d.ts +18 -1
  139. package/lib/dist/extraction/vba-extractor.d.ts.map +1 -1
  140. package/lib/dist/extraction/vba-extractor.js +111 -16
  141. package/lib/dist/extraction/vba-extractor.js.map +1 -1
  142. package/lib/dist/extraction/vba-form-extractor.d.ts +28 -14
  143. package/lib/dist/extraction/vba-form-extractor.d.ts.map +1 -1
  144. package/lib/dist/extraction/vba-form-extractor.js +56 -21
  145. package/lib/dist/extraction/vba-form-extractor.js.map +1 -1
  146. package/lib/dist/extraction/vba-preprocess.d.ts +89 -3
  147. package/lib/dist/extraction/vba-preprocess.d.ts.map +1 -1
  148. package/lib/dist/extraction/vba-preprocess.js +221 -57
  149. package/lib/dist/extraction/vba-preprocess.js.map +1 -1
  150. package/lib/dist/extraction/vba-source.d.ts +0 -10
  151. package/lib/dist/extraction/vba-source.d.ts.map +1 -1
  152. package/lib/dist/extraction/vba-source.js +0 -13
  153. package/lib/dist/extraction/vba-source.js.map +1 -1
  154. package/lib/dist/extraction/vba-test-manifest-extractor.d.ts +0 -6
  155. package/lib/dist/extraction/vba-test-manifest-extractor.d.ts.map +1 -1
  156. package/lib/dist/extraction/vba-test-manifest-extractor.js +0 -1
  157. package/lib/dist/extraction/vba-test-manifest-extractor.js.map +1 -1
  158. package/lib/dist/graph/behavior-evidence.d.ts +162 -0
  159. package/lib/dist/graph/behavior-evidence.d.ts.map +1 -0
  160. package/lib/dist/graph/behavior-evidence.js +529 -0
  161. package/lib/dist/graph/behavior-evidence.js.map +1 -0
  162. package/lib/dist/index.d.ts +22 -0
  163. package/lib/dist/index.d.ts.map +1 -1
  164. package/lib/dist/index.js +37 -1
  165. package/lib/dist/index.js.map +1 -1
  166. package/lib/dist/mcp/daemon-manager.d.ts.map +1 -1
  167. package/lib/dist/mcp/daemon-manager.js +7 -3
  168. package/lib/dist/mcp/daemon-manager.js.map +1 -1
  169. package/lib/dist/mcp/daemon-paths.d.ts +6 -0
  170. package/lib/dist/mcp/daemon-paths.d.ts.map +1 -1
  171. package/lib/dist/mcp/daemon-paths.js +15 -0
  172. package/lib/dist/mcp/daemon-paths.js.map +1 -1
  173. package/lib/dist/mcp/daemon-registry.d.ts +82 -7
  174. package/lib/dist/mcp/daemon-registry.d.ts.map +1 -1
  175. package/lib/dist/mcp/daemon-registry.js +557 -45
  176. package/lib/dist/mcp/daemon-registry.js.map +1 -1
  177. package/lib/dist/mcp/daemon-watchdog.d.ts +12 -0
  178. package/lib/dist/mcp/daemon-watchdog.d.ts.map +1 -1
  179. package/lib/dist/mcp/daemon-watchdog.js +37 -7
  180. package/lib/dist/mcp/daemon-watchdog.js.map +1 -1
  181. package/lib/dist/mcp/daemon.d.ts +20 -1
  182. package/lib/dist/mcp/daemon.d.ts.map +1 -1
  183. package/lib/dist/mcp/daemon.js +123 -30
  184. package/lib/dist/mcp/daemon.js.map +1 -1
  185. package/lib/dist/mcp/index.d.ts.map +1 -1
  186. package/lib/dist/mcp/index.js +13 -2
  187. package/lib/dist/mcp/index.js.map +1 -1
  188. package/lib/dist/mcp/proxy.d.ts +32 -0
  189. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  190. package/lib/dist/mcp/proxy.js +163 -31
  191. package/lib/dist/mcp/proxy.js.map +1 -1
  192. package/lib/dist/mcp/server-instructions.d.ts +1 -1
  193. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  194. package/lib/dist/mcp/server-instructions.js +26 -4
  195. package/lib/dist/mcp/server-instructions.js.map +1 -1
  196. package/lib/dist/mcp/tools.d.ts +12 -0
  197. package/lib/dist/mcp/tools.d.ts.map +1 -1
  198. package/lib/dist/mcp/tools.js +92 -1
  199. package/lib/dist/mcp/tools.js.map +1 -1
  200. package/lib/dist/project-config.d.ts +43 -2
  201. package/lib/dist/project-config.d.ts.map +1 -1
  202. package/lib/dist/project-config.js +86 -2
  203. package/lib/dist/project-config.js.map +1 -1
  204. package/lib/dist/resolution/index.d.ts +47 -2
  205. package/lib/dist/resolution/index.d.ts.map +1 -1
  206. package/lib/dist/resolution/index.js +160 -5
  207. package/lib/dist/resolution/index.js.map +1 -1
  208. package/lib/dist/resolution/name-matcher.d.ts +25 -0
  209. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  210. package/lib/dist/resolution/name-matcher.js +59 -0
  211. package/lib/dist/resolution/name-matcher.js.map +1 -1
  212. package/lib/dist/resolution/vba-runtime-objects.d.ts +11 -11
  213. package/lib/dist/resolution/vba-runtime-objects.d.ts.map +1 -1
  214. package/lib/dist/resolution/vba-runtime-objects.js +18 -38
  215. package/lib/dist/resolution/vba-runtime-objects.js.map +1 -1
  216. package/lib/dist/types.d.ts +13 -5
  217. package/lib/dist/types.d.ts.map +1 -1
  218. package/lib/dist/types.js +17 -0
  219. package/lib/dist/types.js.map +1 -1
  220. package/lib/dist/utils/backtrace-helpers.d.ts +14 -2
  221. package/lib/dist/utils/backtrace-helpers.d.ts.map +1 -1
  222. package/lib/dist/utils/backtrace-helpers.js +81 -7
  223. package/lib/dist/utils/backtrace-helpers.js.map +1 -1
  224. package/lib/dist/utils/sql-impact-helpers.d.ts.map +1 -1
  225. package/lib/dist/utils/sql-impact-helpers.js +119 -30
  226. package/lib/dist/utils/sql-impact-helpers.js.map +1 -1
  227. package/lib/node_modules/.modules.yaml +1 -1
  228. package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
  229. package/lib/package.json +3 -1
  230. package/package.json +1 -1
@@ -57,8 +57,56 @@ function reconstructSQL(lines) {
57
57
  return accumulated;
58
58
  }
59
59
  /**
60
- * Traverses VBA call/relationship graphs starting from a specific node ID,
61
- * tracking cycles and capping search depth.
60
+ * Node kinds that represent a UI object an event can be wired to.
61
+ *
62
+ * The canonical Access kinds (`form-layout`, `report-layout`,
63
+ * `form-instance-control`) are what the extractor emits today; `control`,
64
+ * `form` and `report` are kept so graphs written before those kinds existed
65
+ * still traverse.
66
+ */
67
+ const UI_NODE_KINDS = new Set([
68
+ 'form-instance-control',
69
+ 'form-layout',
70
+ 'report-layout',
71
+ 'control',
72
+ 'form',
73
+ 'report',
74
+ ]);
75
+ /**
76
+ * Edge kinds that always represent an execution step away from the current
77
+ * node. `calls` is the real one; `defines-event` is a legacy shape some older
78
+ * graphs stored outgoing from the control.
79
+ */
80
+ const EXECUTION_EDGE_KINDS = ['calls', 'defines-event'];
81
+ /**
82
+ * Node kinds a `references` edge may land on and still be a call.
83
+ *
84
+ * VBA's statement-form Sub call is genuinely ambiguous at parse time: `Foo`
85
+ * on its own line could be a `Const` read, so the extractor deliberately
86
+ * classifies it as `unqualified-ident` (issue #265) and the resolver stores
87
+ * the resolved edge as `references`, not `calls`. That bare form is the
88
+ * dominant call style in Access code-behind, so a consumer that follows only
89
+ * `calls` reaches the handler and stops — the empty trace this helper exists
90
+ * to prevent. Constraining the target kind is what keeps the rule honest:
91
+ * containment, typing and data references (tables, queries, classes) land on
92
+ * other kinds and stay out of the trace.
93
+ */
94
+ const CALLABLE_TARGET_KINDS = ['function', 'method'];
95
+ /**
96
+ * Traverses the VBA execution graph from a node id, following the semantics
97
+ * the production extractor actually stores.
98
+ *
99
+ * Two directions are involved, which is the whole point of this helper:
100
+ *
101
+ * - An `event-handler` edge is stored HANDLER -> UI object (both for the
102
+ * `<Control>_<Event>` code-behind convention and for `=Expression()`
103
+ * wiring, which the resolver repoints the same way). So reaching a
104
+ * handler from its control or layout means following that edge BACKWARDS.
105
+ * - A `calls` edge is stored CALLER -> CALLEE, so the rest of the path is
106
+ * followed forwards.
107
+ *
108
+ * Starting from a handler still works: it simply has no incoming
109
+ * `event-handler` edge to expand, and its callees are found the usual way.
62
110
  */
63
111
  function traverseGraph(db, startNodeId, maxDepth = 10) {
64
112
  if (!db) {
@@ -73,10 +121,38 @@ function traverseGraph(db, startNodeId, maxDepth = 10) {
73
121
  try {
74
122
  // Optimization: Prepare statements once to avoid parsing cost inside the recursion
75
123
  const stmtNode = db.prepare('SELECT name, kind FROM nodes WHERE id = ?');
76
- const stmtEdges = db.prepare('SELECT target FROM edges WHERE source = ?');
124
+ const stmtCallees = db.prepare(`SELECT e.target AS id
125
+ FROM edges e
126
+ JOIN nodes n ON n.id = e.target
127
+ WHERE e.source = ?
128
+ AND (e.kind IN (${EXECUTION_EDGE_KINDS.map(() => '?').join(', ')})
129
+ OR (e.kind = 'references'
130
+ AND n.kind IN (${CALLABLE_TARGET_KINDS.map(() => '?').join(', ')})))
131
+ ORDER BY e.target`);
132
+ // Inverse of the stored binding: the handler is the SOURCE of the
133
+ // `event-handler` edge and the control/layout is its target.
134
+ const stmtHandlers = db.prepare("SELECT source AS id FROM edges WHERE target = ? AND kind = 'event-handler' ORDER BY source");
135
+ function nextNodeIds(nodeId, kind) {
136
+ const ids = [];
137
+ const seen = new Set();
138
+ const push = (row) => {
139
+ if (row.id !== undefined && !seen.has(row.id)) {
140
+ seen.add(row.id);
141
+ ids.push(row.id);
142
+ }
143
+ };
144
+ if (UI_NODE_KINDS.has(kind)) {
145
+ stmtHandlers.all(nodeId).forEach(push);
146
+ }
147
+ stmtCallees.all(nodeId, ...EXECUTION_EDGE_KINDS, ...CALLABLE_TARGET_KINDS).forEach(push);
148
+ return ids;
149
+ }
77
150
  function helper(nodeId, depth, visited) {
78
151
  const nodeRow = stmtNode.get(nodeId);
79
152
  if (!nodeRow) {
153
+ if (depth === 0) {
154
+ warnings.push('START_NODE_NOT_FOUND');
155
+ }
80
156
  return null;
81
157
  }
82
158
  const node = {
@@ -97,13 +173,11 @@ function traverseGraph(db, startNodeId, maxDepth = 10) {
97
173
  }
98
174
  return node;
99
175
  }
100
- // Fetch outgoing target nodes
101
- const edges = stmtEdges.all(nodeId);
102
176
  // Traverse children with updated path history
103
177
  const newVisited = new Set(visited);
104
178
  newVisited.add(nodeId);
105
- for (const edge of edges) {
106
- const child = helper(edge.target, depth + 1, newVisited);
179
+ for (const childId of nextNodeIds(nodeId, nodeRow.kind)) {
180
+ const child = helper(childId, depth + 1, newVisited);
107
181
  if (child) {
108
182
  node.children.push(child);
109
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backtrace-helpers.js","sourceRoot":"","sources":["../../src/utils/backtrace-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backtrace-helpers.js","sourceRoot":"","sources":["../../src/utils/backtrace-helpers.ts"],"names":[],"mappings":";;AAeA,oDAqBC;AAMD,wCA2BC;AAsED,sCAsHC;AAtPD;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,SAAiB;IACpD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC7B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;QAC1D,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ;QAC/C,UAAU,EAAE,SAAS,EAAE,SAAS;KACjC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,yCAAyC,CAAC;IACxD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAe;IAC5C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,sBAAsB,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC;QACV,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;QAC1B,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnF,WAAW,IAAI,OAAO,CAAC;gBACvB,IAAI,WAAW,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBAC9B,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC9B,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC7B,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAeD;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,uBAAuB;IACvB,aAAa;IACb,eAAe;IACf,SAAS;IACT,MAAM;IACN,QAAQ;CACT,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,aAAa,CAC3B,EAAkB,EAClB,WAAmB,EACnB,QAAQ,GAAG,EAAE;IAEb,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO;YACL,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,KAAK;YACrB,QAAQ,EAAE,CAAC,uBAAuB,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,CAAC;QACH,mFAAmF;QACnF,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B;;;;4BAIsB,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;oCAEtC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;0BACzD,CACrB,CAAC;QACF,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,4FAA4F,CAC7F,CAAC;QAEF,SAAS,WAAW,CAAC,MAAc,EAAE,IAAY;YAC/C,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC,GAAmB,EAAE,EAAE;gBACnC,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACjB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,YAAY,CAAC,GAAG,CAAC,MAAM,CAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/D,CAAC;YAEC,WAAW,CAAC,GAAG,CACb,MAAM,EACN,GAAG,oBAAoB,EACvB,GAAG,qBAAqB,CAE3B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEhB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,SAAS,MAAM,CAAC,MAAc,EAAE,KAAa,EAAE,OAAoB;YACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAA+C,CAAC;YACnF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAkB;gBAC1B,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,EAAE;aACb,CAAC;YAEF,kBAAkB;YAClB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,aAAa,GAAG,IAAI,CAAC;gBACrB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,gBAAgB;YAChB,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBAC7C,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACtC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,8CAA8C;YAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEvB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;gBACrD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;QAEvD,OAAO;YACL,IAAI;YACJ,cAAc,EAAE,aAAa;YAC7B,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO;YACL,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,KAAK;YACrB,QAAQ,EAAE,CAAC,oBAAoB,QAAQ,EAAE,CAAC;SAC3C,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sql-impact-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/sql-impact-helpers.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAiEjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAqDzD;AA6CD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,GAAG,EACP,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,GAAG,CAgIL"}
1
+ {"version":3,"file":"sql-impact-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/sql-impact-helpers.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAiEjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAqDzD;AA+HD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,GAAG,EACP,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,GAAG,CAgKL"}
@@ -185,25 +185,94 @@ function getAllFiles(dir) {
185
185
  return results;
186
186
  }
187
187
  /**
188
- * Recursively queries the SQLite graph database backwards to find caller chain ancestors.
188
+ * Node kinds that can own a call chain a VBA procedure, under any of the
189
+ * kind names the graph has used.
189
190
  */
190
- function findGraphAncestors(db, startNodeId) {
191
- const visited = new Set();
192
- const ancestors = [];
193
- function traverse(nodeId) {
194
- if (visited.has(nodeId))
195
- return;
196
- visited.add(nodeId);
197
- const rows = db.prepare('SELECT source FROM edges WHERE target = ?').all(nodeId);
191
+ const CALLER_NODE_KINDS = ['function', 'method', 'event', 'sub'];
192
+ /**
193
+ * Node kinds that represent a UI object an event handler can be wired to.
194
+ * The canonical Access kinds first, then the legacy ones older graphs used.
195
+ */
196
+ const UI_NODE_KINDS = new Set([
197
+ 'form-instance-control',
198
+ 'form-layout',
199
+ 'report-layout',
200
+ 'control',
201
+ 'form',
202
+ 'report',
203
+ ]);
204
+ const LAYOUT_NODE_KINDS = new Set(['form-layout', 'report-layout']);
205
+ /**
206
+ * Walks the graph backwards from a procedure to every procedure that can
207
+ * reach it.
208
+ *
209
+ * Only caller relationships are followed. `calls` is the explicit one and
210
+ * `defines-event` the legacy one; a `references` edge counts only when it
211
+ * comes FROM a procedure, which is how the resolver stores VBA's
212
+ * statement-form Sub call (`SaveOrderTotals` on its own line resolves as an
213
+ * ambiguous bare identifier — see issue #265 — so the edge is `references`,
214
+ * not `calls`). Containment is deliberately not a caller relationship: a
215
+ * module contains a procedure, it does not call it.
216
+ */
217
+ function findCallChain(db, startNodeId) {
218
+ const visited = new Set([startNodeId]);
219
+ const chain = [startNodeId];
220
+ const stmt = db.prepare(`SELECT e.source AS id
221
+ FROM edges e
222
+ JOIN nodes n ON n.id = e.source
223
+ WHERE e.target = ?
224
+ AND (e.kind IN ('calls', 'defines-event')
225
+ OR (e.kind = 'references'
226
+ AND n.kind IN (${CALLER_NODE_KINDS.map(() => '?').join(', ')})))
227
+ ORDER BY e.source`);
228
+ const queue = [startNodeId];
229
+ while (queue.length > 0) {
230
+ const nodeId = queue.shift();
231
+ const rows = stmt.all(nodeId, ...CALLER_NODE_KINDS);
198
232
  for (const row of rows) {
199
- if (row.source !== undefined) {
200
- ancestors.push(row.source);
201
- traverse(row.source);
202
- }
233
+ if (row.id === undefined || visited.has(row.id))
234
+ continue;
235
+ visited.add(row.id);
236
+ chain.push(row.id);
237
+ queue.push(row.id);
203
238
  }
204
239
  }
205
- traverse(startNodeId);
206
- return ancestors;
240
+ return chain;
241
+ }
242
+ /**
243
+ * Names the form or report that owns a UI node.
244
+ *
245
+ * A layout node names itself. A control is resolved through the `contains`
246
+ * edge its layout emits — ownership is a graph relationship, not a guess
247
+ * made from the file name. The basename fallback only fires for a control
248
+ * whose layout file was never indexed (a cross-file stub), and for the
249
+ * legacy `control`/`form` kinds that predate layout containment.
250
+ */
251
+ function resolveOwningLayout(db, uiNodeId) {
252
+ const node = db
253
+ .prepare('SELECT id, name, kind, file_path FROM nodes WHERE id = ?')
254
+ .get(uiNodeId);
255
+ if (!node)
256
+ return null;
257
+ if (LAYOUT_NODE_KINDS.has(node.kind))
258
+ return node.name;
259
+ const owner = db
260
+ .prepare(`SELECT n.name AS name
261
+ FROM edges e
262
+ JOIN nodes n ON n.id = e.source
263
+ WHERE e.target = ?
264
+ AND e.kind = 'contains'
265
+ AND n.kind IN ('form-layout', 'report-layout')
266
+ ORDER BY e.source
267
+ LIMIT 1`)
268
+ .get(uiNodeId);
269
+ if (owner)
270
+ return owner.name;
271
+ if (!node.file_path)
272
+ return null;
273
+ const base = path.basename(node.file_path);
274
+ const stripped = base.replace(/\.(form|report)\.txt$/i, '');
275
+ return (stripped === base ? base.split('.')[0] : stripped) || null;
207
276
  }
208
277
  /**
209
278
  * Runs a combined database and file-level downstream impact analysis.
@@ -292,34 +361,54 @@ function runImpactAnalysis(db, workspaceDir, queryName) {
292
361
  }
293
362
  }
294
363
  }
295
- // 3. Database traversal for event handlers & controls
364
+ // 3. Database traversal: from the procedures that touch the query, back up
365
+ // the call chain and across the handler -> control/layout binding.
366
+ //
367
+ // The binding is stored HANDLER -> control (and HANDLER -> layout for a
368
+ // form-level event), so the owning form is found by following the
369
+ // handler's OUTGOING `event-handler` edge — not by walking further up
370
+ // the ancestor chain, which never reaches the UI at all. That inverted
371
+ // assumption is why a query reached only through code, with no
372
+ // RecordSource/RowSource binding, used to report no affected form.
373
+ const stmtUiTargets = db.prepare("SELECT target AS id FROM edges WHERE source = ? AND kind = 'event-handler' ORDER BY target");
374
+ const addForm = (formName) => {
375
+ if (formName && !output.downstream_impact.forms.includes(formName)) {
376
+ output.downstream_impact.forms.push(formName);
377
+ }
378
+ };
296
379
  for (const caller of output.callers) {
297
- // Find matching function node containing caller.line in caller.file
380
+ // Find the procedure node whose line range contains this reference.
298
381
  const matchingNodes = db.prepare(`
299
382
  SELECT id, name, kind, file_path
300
383
  FROM nodes
301
384
  WHERE (file_path = ? OR file_path LIKE ?)
302
385
  AND start_line <= ?
303
386
  AND end_line >= ?
304
- AND kind IN ('function', 'event', 'sub')
305
- `).all(caller.file, `%/${path.basename(caller.file)}`, caller.line, caller.line);
387
+ AND kind IN (${CALLER_NODE_KINDS.map(() => '?').join(', ')})
388
+ `).all(caller.file, `%/${path.basename(caller.file)}`, caller.line, caller.line, ...CALLER_NODE_KINDS);
306
389
  for (const node of matchingNodes) {
307
- const ancestors = findGraphAncestors(db, node.id);
308
- for (const ancestorId of ancestors) {
309
- const ancestorNode = db.prepare('SELECT name, kind, file_path FROM nodes WHERE id = ?').get(ancestorId);
310
- if (ancestorNode) {
311
- const fileBase = path.basename(ancestorNode.file_path);
390
+ const chain = findCallChain(db, node.id);
391
+ for (const chainNodeId of chain) {
392
+ const chainNode = db
393
+ .prepare('SELECT id, name, kind, file_path FROM nodes WHERE id = ?')
394
+ .get(chainNodeId);
395
+ if (!chainNode)
396
+ continue;
397
+ if (chainNodeId !== node.id) {
398
+ const fileBase = path.basename(chainNode.file_path ?? '');
312
399
  if (['.bas', '.cls', '.frm'].includes(path.extname(fileBase).toLowerCase())) {
313
400
  if (!output.downstream_impact.vba_callers.includes(fileBase)) {
314
401
  output.downstream_impact.vba_callers.push(fileBase);
315
402
  }
316
403
  }
317
- if (ancestorNode.kind === 'control' || ancestorNode.kind === 'form') {
318
- const formBase = path.basename(ancestorNode.file_path).split('.')[0] || '';
319
- if (formBase && !output.downstream_impact.forms.includes(formBase)) {
320
- output.downstream_impact.forms.push(formBase);
321
- }
322
- }
404
+ }
405
+ // A legacy graph put the control itself in the caller chain.
406
+ if (UI_NODE_KINDS.has(chainNode.kind)) {
407
+ addForm(resolveOwningLayout(db, chainNodeId));
408
+ continue;
409
+ }
410
+ for (const ui of stmtUiTargets.all(chainNodeId)) {
411
+ addForm(resolveOwningLayout(db, ui.id));
323
412
  }
324
413
  }
325
414
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sql-impact-helpers.js","sourceRoot":"","sources":["../../src/utils/sql-impact-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql-impact-helpers.js","sourceRoot":"","sources":["../../src/utils/sql-impact-helpers.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ nodeLinker: hoisted
35
35
  packageManager: pnpm@10.16.1
36
36
  pendingBuilds:
37
37
  - .
38
- prunedAt: Mon, 20 Jul 2026 17:55:11 GMT
38
+ prunedAt: Sat, 12 Sep 2026 12:26:46 GMT
39
39
  publicHoistPattern: []
40
40
  registries:
41
41
  '@jsr': https://npm.jsr.io/
@@ -1,5 +1,5 @@
1
1
  {
2
- "lastValidatedTimestamp": 1784570111484,
2
+ "lastValidatedTimestamp": 1789216006954,
3
3
  "projects": {},
4
4
  "pnpmfiles": [],
5
5
  "settings": {
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aroman22/codegraph-vba",
3
- "version": "1.15.0",
3
+ "version": "1.17.0",
4
4
  "description": "Supercharge AI coding agents with semantic code intelligence — surgical context, fewer tool calls, faster answers. 100% local.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,6 +25,8 @@
25
25
  "eval": "npm run build && npx tsx __tests__/evaluation/runner.ts",
26
26
  "schema:dump": "tsx scripts/dump-index-schema.ts",
27
27
  "spike:vbnet": "node scripts/spike-vbnet-as-vba.mjs",
28
+ "probe:vba": "tsx scripts/vba-coverage-probe.mjs",
29
+ "acceptance:vba": "vitest run __tests__/vba-semantic-acceptance.test.ts",
28
30
  "clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\""
29
31
  },
30
32
  "keywords": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aroman22/codegraph-vba-darwin-arm64",
3
- "version": "1.15.0",
3
+ "version": "1.17.0",
4
4
  "description": "CodeGraph self-contained bundle for darwin-arm64",
5
5
  "os": [
6
6
  "darwin"