@lsctech/polaris 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 (316) hide show
  1. package/README.md +87 -0
  2. package/dist/__mocks__/tool-server-linear.js +34 -0
  3. package/dist/cli/adopt-approve.js +60 -0
  4. package/dist/cli/adopt-cognition.js +199 -0
  5. package/dist/cli/adopt-instructions.js +143 -0
  6. package/dist/cli/adopt-rules.js +169 -0
  7. package/dist/cli/adopt-scan.js +25 -0
  8. package/dist/cli/adopt-smartdocs.js +192 -0
  9. package/dist/cli/adoption-inventory.js +350 -0
  10. package/dist/cli/adoption-plan.js +222 -0
  11. package/dist/cli/args.js +28 -0
  12. package/dist/cli/args.test.js +30 -0
  13. package/dist/cli/branding.js +41 -0
  14. package/dist/cli/graph.js +358 -0
  15. package/dist/cli/index.js +127 -0
  16. package/dist/cli/index.test.js +162 -0
  17. package/dist/cli/init-detect.js +61 -0
  18. package/dist/cli/init.js +492 -0
  19. package/dist/cli/init.test.js +259 -0
  20. package/dist/cli/librarian.js +32 -0
  21. package/dist/cli/medic.js +96 -0
  22. package/dist/cli/startup.test.js +23 -0
  23. package/dist/cli/tracker.js +130 -0
  24. package/dist/cli/tracker.test.js +126 -0
  25. package/dist/cli/version.js +10 -0
  26. package/dist/cli/version.test.js +11 -0
  27. package/dist/cli/worker.js +287 -0
  28. package/dist/cluster-state/fixtures/test-clusters.json +19 -0
  29. package/dist/cluster-state/store.js +302 -0
  30. package/dist/cluster-state/store.test.js +145 -0
  31. package/dist/cluster-state/types.js +2 -0
  32. package/dist/cognition/archive.js +158 -0
  33. package/dist/cognition/closeout-librarian-types.js +161 -0
  34. package/dist/cognition/cognition.test.js +623 -0
  35. package/dist/cognition/index.js +41 -0
  36. package/dist/cognition/librarian-dispatch.js +391 -0
  37. package/dist/cognition/librarian-dispatch.test.js +247 -0
  38. package/dist/cognition/librarian-packet.js +313 -0
  39. package/dist/cognition/librarian-types.js +57 -0
  40. package/dist/cognition/route-cognition-delta.js +350 -0
  41. package/dist/cognition/summary-delta.js +279 -0
  42. package/dist/cognition/validate.js +162 -0
  43. package/dist/config/defaults.js +98 -0
  44. package/dist/config/doctor.js +273 -0
  45. package/dist/config/index.js +14 -0
  46. package/dist/config/loader.js +58 -0
  47. package/dist/config/provider-detect.js +60 -0
  48. package/dist/config/provider-detect.test.js +119 -0
  49. package/dist/config/schema.js +2 -0
  50. package/dist/config/show.js +44 -0
  51. package/dist/config/show.test.js +42 -0
  52. package/dist/config/validator.js +675 -0
  53. package/dist/config/validator.test.js +77 -0
  54. package/dist/docs/canon-check.js +334 -0
  55. package/dist/docs/canon-check.test.js +207 -0
  56. package/dist/docs/doctrine.js +133 -0
  57. package/dist/docs/doctrine.test.js +139 -0
  58. package/dist/docs/index.js +168 -0
  59. package/dist/docs/index.test.js +83 -0
  60. package/dist/docs/ingest.js +295 -0
  61. package/dist/docs/ingest.test.js +71 -0
  62. package/dist/docs/migrate.js +165 -0
  63. package/dist/docs/migrate.test.js +136 -0
  64. package/dist/docs/seed-instructions.js +147 -0
  65. package/dist/docs/seed-instructions.test.js +137 -0
  66. package/dist/docs/validate-instructions.js +267 -0
  67. package/dist/docs/validate-instructions.test.js +238 -0
  68. package/dist/finalize/artifact-policy.js +214 -0
  69. package/dist/finalize/artifact-policy.test.js +84 -0
  70. package/dist/finalize/delivery-integrity.js +141 -0
  71. package/dist/finalize/finalize.test.js +210 -0
  72. package/dist/finalize/github.js +41 -0
  73. package/dist/finalize/index.js +474 -0
  74. package/dist/finalize/linear.js +213 -0
  75. package/dist/finalize/run-report.js +47 -0
  76. package/dist/finalize/steps/01-map-update.js +11 -0
  77. package/dist/finalize/steps/02-map-validate.js +11 -0
  78. package/dist/finalize/steps/03-schema-validate.js +11 -0
  79. package/dist/finalize/steps/04-run-checks.js +118 -0
  80. package/dist/finalize/steps/05-generate-report.js +14 -0
  81. package/dist/finalize/steps/06-commit.js +39 -0
  82. package/dist/finalize/steps/07-push.js +10 -0
  83. package/dist/finalize/steps/08-create-pr.js +9 -0
  84. package/dist/finalize/steps/09-update-state.js +9 -0
  85. package/dist/finalize/steps/10-append-jsonl.js +23 -0
  86. package/dist/finalize/steps/11-update-linear.js +22 -0
  87. package/dist/finalize/steps/12-archive.js +21 -0
  88. package/dist/graph/adapter/c/adapter.js +45 -0
  89. package/dist/graph/adapter/c/extract.js +135 -0
  90. package/dist/graph/adapter/c/index.js +10 -0
  91. package/dist/graph/adapter/c/runtime.js +67 -0
  92. package/dist/graph/adapter/cpp/adapter.js +45 -0
  93. package/dist/graph/adapter/cpp/extract.js +159 -0
  94. package/dist/graph/adapter/cpp/index.js +10 -0
  95. package/dist/graph/adapter/cpp/runtime.js +61 -0
  96. package/dist/graph/adapter/csharp/adapter.js +45 -0
  97. package/dist/graph/adapter/csharp/extract.js +127 -0
  98. package/dist/graph/adapter/csharp/index.js +10 -0
  99. package/dist/graph/adapter/csharp/runtime.js +61 -0
  100. package/dist/graph/adapter/dart/adapter.js +56 -0
  101. package/dist/graph/adapter/dart/extract.js +130 -0
  102. package/dist/graph/adapter/dart/index.js +10 -0
  103. package/dist/graph/adapter/dart/runtime.js +61 -0
  104. package/dist/graph/adapter/go/adapter.js +45 -0
  105. package/dist/graph/adapter/go/extract.js +112 -0
  106. package/dist/graph/adapter/go/index.js +10 -0
  107. package/dist/graph/adapter/go/runtime.js +58 -0
  108. package/dist/graph/adapter/kotlin-java/extract-common.js +83 -0
  109. package/dist/graph/adapter/kotlin-java/index.js +15 -0
  110. package/dist/graph/adapter/kotlin-java/java-adapter.js +45 -0
  111. package/dist/graph/adapter/kotlin-java/java-extract.js +42 -0
  112. package/dist/graph/adapter/kotlin-java/kotlin-adapter.js +48 -0
  113. package/dist/graph/adapter/kotlin-java/kotlin-extract.js +58 -0
  114. package/dist/graph/adapter/kotlin-java/runtime.js +75 -0
  115. package/dist/graph/adapter/python/adapter.js +45 -0
  116. package/dist/graph/adapter/python/extract.js +121 -0
  117. package/dist/graph/adapter/python/index.js +10 -0
  118. package/dist/graph/adapter/python/runtime.js +70 -0
  119. package/dist/graph/adapter/registry.js +82 -0
  120. package/dist/graph/adapter/rust/adapter.js +45 -0
  121. package/dist/graph/adapter/rust/extract.js +110 -0
  122. package/dist/graph/adapter/rust/index.js +10 -0
  123. package/dist/graph/adapter/rust/runtime.js +74 -0
  124. package/dist/graph/adapter/shell/adapter.js +34 -0
  125. package/dist/graph/adapter/shell/extract.js +98 -0
  126. package/dist/graph/adapter/shell/index.js +8 -0
  127. package/dist/graph/adapter/svelte/adapter.js +91 -0
  128. package/dist/graph/adapter/svelte/extract.js +41 -0
  129. package/dist/graph/adapter/svelte/index.js +8 -0
  130. package/dist/graph/adapter/swift/adapter.js +45 -0
  131. package/dist/graph/adapter/swift/extract.js +120 -0
  132. package/dist/graph/adapter/swift/index.js +10 -0
  133. package/dist/graph/adapter/swift/runtime.js +70 -0
  134. package/dist/graph/adapter/types.js +2 -0
  135. package/dist/graph/adapter/typescript-javascript/adapter.js +72 -0
  136. package/dist/graph/adapter/typescript-javascript/extract.js +115 -0
  137. package/dist/graph/adapter/typescript-javascript/index.js +10 -0
  138. package/dist/graph/adapter/typescript-javascript/runtime.js +97 -0
  139. package/dist/graph/capability/index.js +105 -0
  140. package/dist/graph/governance.js +104 -0
  141. package/dist/graph/parser/extract.js +5 -0
  142. package/dist/graph/parser/loader.js +2 -0
  143. package/dist/graph/parser/pipeline.js +194 -0
  144. package/dist/graph/query/index.js +277 -0
  145. package/dist/graph/query/types.js +5 -0
  146. package/dist/graph/resolver/build-edges.js +211 -0
  147. package/dist/graph/resolver/index.js +23 -0
  148. package/dist/graph/resolver/resolve-imports.js +168 -0
  149. package/dist/graph/store/adapter.js +132 -0
  150. package/dist/graph/store/queries.js +124 -0
  151. package/dist/graph/store/types.js +4 -0
  152. package/dist/ignore/defaults.js +41 -0
  153. package/dist/ignore/parser.js +39 -0
  154. package/dist/lint/map-reference-validator.js +72 -0
  155. package/dist/loop/abort.js +188 -0
  156. package/dist/loop/abort.test.js +151 -0
  157. package/dist/loop/adapters/__tests__/terminal-cli.test.js +92 -0
  158. package/dist/loop/adapters/agent-subtask.js +137 -0
  159. package/dist/loop/adapters/agent-subtask.test.js +151 -0
  160. package/dist/loop/adapters/cli-subtask-bridge.js +108 -0
  161. package/dist/loop/adapters/index.js +9 -0
  162. package/dist/loop/adapters/registry.js +17 -0
  163. package/dist/loop/adapters/terminal-cli.js +403 -0
  164. package/dist/loop/adapters/types.js +2 -0
  165. package/dist/loop/adapters/worker-instructions.js +85 -0
  166. package/dist/loop/body-parser.js +226 -0
  167. package/dist/loop/bootstrap-packet.js +97 -0
  168. package/dist/loop/bootstrap-packet.test.js +171 -0
  169. package/dist/loop/branch-governance.js +54 -0
  170. package/dist/loop/budget.js +63 -0
  171. package/dist/loop/budget.test.js +163 -0
  172. package/dist/loop/checkpoint.js +325 -0
  173. package/dist/loop/compact-return.js +59 -0
  174. package/dist/loop/continue.js +645 -0
  175. package/dist/loop/continue.test.js +337 -0
  176. package/dist/loop/dispatch-boundary.js +335 -0
  177. package/dist/loop/dispatch-state.js +223 -0
  178. package/dist/loop/dispatch-state.test.js +186 -0
  179. package/dist/loop/dispatch.js +1236 -0
  180. package/dist/loop/dispatch.test.js +499 -0
  181. package/dist/loop/ephemeral-smoke.test.js +160 -0
  182. package/dist/loop/evidence-backfill.js +216 -0
  183. package/dist/loop/execution-adapter.js +141 -0
  184. package/dist/loop/execution-adapter.test.js +66 -0
  185. package/dist/loop/finalize-evidence.js +169 -0
  186. package/dist/loop/git-custody.js +250 -0
  187. package/dist/loop/impl-packet-input.js +38 -0
  188. package/dist/loop/index.js +270 -0
  189. package/dist/loop/ledger.js +49 -0
  190. package/dist/loop/ledger.test.js +127 -0
  191. package/dist/loop/lifecycle-dispatch.js +348 -0
  192. package/dist/loop/lifecycle-dispatch.test.js +318 -0
  193. package/dist/loop/lifecycle.js +93 -0
  194. package/dist/loop/lifecycle.test.js +150 -0
  195. package/dist/loop/orphan-recovery.js +276 -0
  196. package/dist/loop/orphan-recovery.test.js +236 -0
  197. package/dist/loop/parent.js +1566 -0
  198. package/dist/loop/parent.test.js +738 -0
  199. package/dist/loop/provider-sealed-packet.test.js +164 -0
  200. package/dist/loop/resume.js +295 -0
  201. package/dist/loop/resume.test.js +172 -0
  202. package/dist/loop/run-bootstrap.js +234 -0
  203. package/dist/loop/run-preflight.js +203 -0
  204. package/dist/loop/status.js +665 -0
  205. package/dist/loop/status.test.js +235 -0
  206. package/dist/loop/wait.js +86 -0
  207. package/dist/loop/worker-packet.js +406 -0
  208. package/dist/loop/worker-packet.test.js +243 -0
  209. package/dist/loop/worker-prompt.js +260 -0
  210. package/dist/loop/worker-prompt.test.js +247 -0
  211. package/dist/loop/worker.js +498 -0
  212. package/dist/loop/worker.test.js +372 -0
  213. package/dist/map/atlas.js +77 -0
  214. package/dist/map/backfill.js +171 -0
  215. package/dist/map/backfill.test.js +120 -0
  216. package/dist/map/index.js +255 -0
  217. package/dist/map/inference.js +73 -0
  218. package/dist/map/inference.test.js +35 -0
  219. package/dist/map/query.js +157 -0
  220. package/dist/map/query.test.js +174 -0
  221. package/dist/map/update.js +355 -0
  222. package/dist/map/update.test.js +67 -0
  223. package/dist/map/validate.js +153 -0
  224. package/dist/map/validate.test.js +90 -0
  225. package/dist/map/welfare.js +86 -0
  226. package/dist/mcp/lib/invoke.js +35 -0
  227. package/dist/mcp/lib/redact.js +24 -0
  228. package/dist/mcp/lib/redact.test.js +112 -0
  229. package/dist/mcp/lib/root.js +41 -0
  230. package/dist/mcp/lib/root.test.js +114 -0
  231. package/dist/mcp/server.js +15 -0
  232. package/dist/mcp/tools/claim-child.js +119 -0
  233. package/dist/mcp/tools/claim-child.test.js +69 -0
  234. package/dist/mcp/tools/current-state.js +73 -0
  235. package/dist/mcp/tools/current-state.test.js +114 -0
  236. package/dist/mcp/tools/dispatch-result.js +186 -0
  237. package/dist/mcp/tools/dispatch-result.test.js +109 -0
  238. package/dist/mcp/tools/index.js +222 -0
  239. package/dist/mcp/tools/index.test.js +172 -0
  240. package/dist/mcp/tools/linear.js +74 -0
  241. package/dist/mcp/tools/loop-continue.js +159 -0
  242. package/dist/mcp/tools/loop-continue.test.js +186 -0
  243. package/dist/mcp/tools/loop-dry-run.js +15 -0
  244. package/dist/mcp/tools/status.js +65 -0
  245. package/dist/medic/chart-id.js +75 -0
  246. package/dist/medic/chart-schema.js +139 -0
  247. package/dist/runs/index.js +119 -0
  248. package/dist/runs/index.test.js +184 -0
  249. package/dist/runs/ledger-tail.js +15 -0
  250. package/dist/runs/list.js +29 -0
  251. package/dist/runs/reconcile.js +74 -0
  252. package/dist/runs/show.js +10 -0
  253. package/dist/runtime/audit/logger.js +15 -0
  254. package/dist/runtime/audit/reader.js +42 -0
  255. package/dist/runtime/checkpoint.js +89 -0
  256. package/dist/runtime/continuation/confirmed.js +225 -0
  257. package/dist/runtime/continuation/confirmed.test.js +421 -0
  258. package/dist/runtime/continuation/dry-run.js +74 -0
  259. package/dist/runtime/execution-window.js +106 -0
  260. package/dist/runtime/scheduling/child-selector.js +16 -0
  261. package/dist/runtime/state.js +43 -0
  262. package/dist/runtime/status.js +46 -0
  263. package/dist/runtime/verification/envelope.js +80 -0
  264. package/dist/runtime/verification/fingerprint.js +26 -0
  265. package/dist/skill-packet/cli.test.js +105 -0
  266. package/dist/skill-packet/generator.js +225 -0
  267. package/dist/skill-packet/generator.test.js +159 -0
  268. package/dist/skill-packet/index.js +49 -0
  269. package/dist/skill-packet/types.js +2 -0
  270. package/dist/smartdocs-engine/audit.js +194 -0
  271. package/dist/smartdocs-engine/audit.test.js +122 -0
  272. package/dist/smartdocs-engine/canon-check.js +340 -0
  273. package/dist/smartdocs-engine/canon-check.test.js +234 -0
  274. package/dist/smartdocs-engine/doctrine.js +633 -0
  275. package/dist/smartdocs-engine/doctrine.test.js +374 -0
  276. package/dist/smartdocs-engine/index.js +456 -0
  277. package/dist/smartdocs-engine/index.test.js +82 -0
  278. package/dist/smartdocs-engine/ingest.js +495 -0
  279. package/dist/smartdocs-engine/ingest.test.js +163 -0
  280. package/dist/smartdocs-engine/migrate.js +217 -0
  281. package/dist/smartdocs-engine/migrate.test.js +200 -0
  282. package/dist/smartdocs-engine/seed-instructions.js +335 -0
  283. package/dist/smartdocs-engine/seed-instructions.test.js +275 -0
  284. package/dist/smartdocs-engine/smartdoc-ignore.js +258 -0
  285. package/dist/smartdocs-engine/smartdoc-ignore.test.js +146 -0
  286. package/dist/smartdocs-engine/validate-instructions.js +366 -0
  287. package/dist/smartdocs-engine/validate-instructions.test.js +283 -0
  288. package/dist/tracker/adapters/github/index.js +305 -0
  289. package/dist/tracker/adapters/jira/index.js +293 -0
  290. package/dist/tracker/adapters/linear/http-errors.test.js +51 -0
  291. package/dist/tracker/adapters/linear/index.js +621 -0
  292. package/dist/tracker/adapters/linear/index.test.js +238 -0
  293. package/dist/tracker/adapters/linear.js +50 -0
  294. package/dist/tracker/adapters/local/index.js +10 -0
  295. package/dist/tracker/adapters/local-file/index.js +159 -0
  296. package/dist/tracker/adapters/mcp-bridge.js +158 -0
  297. package/dist/tracker/adapters/mcp-bridge.test.js +12 -0
  298. package/dist/tracker/adapters/spec/index.js +146 -0
  299. package/dist/tracker/capabilities.js +2 -0
  300. package/dist/tracker/index.js +49 -0
  301. package/dist/tracker/lifecycle-policy.js +139 -0
  302. package/dist/tracker/lifecycle-transition.js +164 -0
  303. package/dist/tracker/local-graph.js +98 -0
  304. package/dist/tracker/migration.js +56 -0
  305. package/dist/tracker/schema.js +86 -0
  306. package/dist/tracker/sync/index.js +404 -0
  307. package/dist/tracker/sync/queue-store.js +95 -0
  308. package/dist/tracker/sync/queue-store.test.js +104 -0
  309. package/dist/tracker/types.js +11 -0
  310. package/dist/types/linear.js +3 -0
  311. package/dist/types/result-packet.js +12 -0
  312. package/dist/types/runtime-state.js +2 -0
  313. package/dist/types/work-contract.js +2 -0
  314. package/dist/utils/monotonic-timestamp.js +13 -0
  315. package/dist/utils/monotonic-timestamp.test.js +19 -0
  316. package/package.json +64 -0
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractRustSymbolsFromTree = extractRustSymbolsFromTree;
4
+ function extractRustSymbolsFromTree(tree) {
5
+ const symbols = [];
6
+ walkNode(tree.rootNode, symbols, false);
7
+ const deduped = dedupeSymbols(symbols);
8
+ deduped.sort(compareExtractedSymbols);
9
+ return {
10
+ language: "rust",
11
+ symbols: deduped,
12
+ };
13
+ }
14
+ function walkNode(node, output, insideImpl) {
15
+ const current = toExtractedSymbol(node, insideImpl);
16
+ if (current) {
17
+ output.push(current);
18
+ }
19
+ const nextInsideImpl = insideImpl || node.type === "impl_item";
20
+ for (const child of node.namedChildren ?? []) {
21
+ walkNode(child, output, nextInsideImpl);
22
+ }
23
+ }
24
+ function toExtractedSymbol(node, insideImpl) {
25
+ if (node.type === "use_declaration") {
26
+ return buildSymbol(node, "import", extractUseName(node), null);
27
+ }
28
+ if (node.type === "struct_item" || node.type === "enum_item" || node.type === "trait_item") {
29
+ return buildSymbol(node, "class", extractTypeName(node), null);
30
+ }
31
+ if (node.type === "function_item") {
32
+ const kind = insideImpl ? "method" : "function";
33
+ return buildSymbol(node, kind, extractFunctionName(node), sanitizeSignature(node.text));
34
+ }
35
+ return null;
36
+ }
37
+ function buildSymbol(node, kind, name, signature) {
38
+ if (!name) {
39
+ return null;
40
+ }
41
+ return {
42
+ kind,
43
+ name,
44
+ signature,
45
+ exported: /\bpub\b/.test(node.text),
46
+ startLine: node.startPosition.row + 1,
47
+ startColumn: node.startPosition.column,
48
+ endLine: node.endPosition.row + 1,
49
+ endColumn: node.endPosition.column,
50
+ };
51
+ }
52
+ function extractUseName(node) {
53
+ const argumentField = node.childForFieldName?.("argument");
54
+ if (argumentField?.text?.trim()) {
55
+ return argumentField.text.trim();
56
+ }
57
+ for (const child of node.namedChildren ?? []) {
58
+ if (child.type === "use_list" || child.type === "scoped_identifier" || child.type === "identifier") {
59
+ const text = child.text.trim();
60
+ if (text.length > 0) {
61
+ return text;
62
+ }
63
+ }
64
+ }
65
+ const byText = node.text.match(/^\s*(?:pub\s+)?use\s+([\s\S]+?)\s*;/m);
66
+ return byText?.[1] ?? null;
67
+ }
68
+ function extractTypeName(node) {
69
+ const byField = node.childForFieldName?.("name");
70
+ if (byField?.text?.trim()) {
71
+ return byField.text.trim();
72
+ }
73
+ const byText = node.text.match(/\b(struct|enum|trait)\s+([A-Za-z_][A-Za-z0-9_]*)/);
74
+ return byText?.[2] ?? null;
75
+ }
76
+ function extractFunctionName(node) {
77
+ const byField = node.childForFieldName?.("name");
78
+ if (byField?.text?.trim()) {
79
+ return byField.text.trim();
80
+ }
81
+ const byText = node.text.match(/\bfn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/);
82
+ return byText?.[1] ?? null;
83
+ }
84
+ function sanitizeSignature(signature) {
85
+ const compact = signature.replace(/\s+/g, " ").trim();
86
+ return compact.length === 0 ? null : compact;
87
+ }
88
+ function dedupeSymbols(symbols) {
89
+ const byFingerprint = new Map();
90
+ for (const symbol of symbols) {
91
+ const fingerprint = [
92
+ symbol.kind,
93
+ symbol.name,
94
+ symbol.startLine,
95
+ symbol.startColumn,
96
+ symbol.endLine,
97
+ symbol.endColumn,
98
+ ].join(":");
99
+ byFingerprint.set(fingerprint, symbol);
100
+ }
101
+ return Array.from(byFingerprint.values());
102
+ }
103
+ function compareExtractedSymbols(left, right) {
104
+ return (left.startLine - right.startLine ||
105
+ left.startColumn - right.startColumn ||
106
+ left.endLine - right.endLine ||
107
+ left.endColumn - right.endColumn ||
108
+ left.kind.localeCompare(right.kind) ||
109
+ left.name.localeCompare(right.name));
110
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadTreeSitterRuntime = exports.extractRustSymbolsFromTree = exports.createRustAdapter = exports.RustAdapter = void 0;
4
+ var adapter_js_1 = require("./adapter.js");
5
+ Object.defineProperty(exports, "RustAdapter", { enumerable: true, get: function () { return adapter_js_1.RustAdapter; } });
6
+ Object.defineProperty(exports, "createRustAdapter", { enumerable: true, get: function () { return adapter_js_1.createRustAdapter; } });
7
+ var extract_js_1 = require("./extract.js");
8
+ Object.defineProperty(exports, "extractRustSymbolsFromTree", { enumerable: true, get: function () { return extract_js_1.extractRustSymbolsFromTree; } });
9
+ var runtime_js_1 = require("./runtime.js");
10
+ Object.defineProperty(exports, "loadTreeSitterRuntime", { enumerable: true, get: function () { return runtime_js_1.loadTreeSitterRuntime; } });
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadTreeSitterRuntime = loadTreeSitterRuntime;
4
+ let cachedRuntime = null;
5
+ let cachedRuntimePromise = null;
6
+ async function loadTreeSitterRuntime() {
7
+ if (cachedRuntime) {
8
+ return cachedRuntime;
9
+ }
10
+ if (cachedRuntimePromise) {
11
+ return await cachedRuntimePromise;
12
+ }
13
+ cachedRuntimePromise = (async () => {
14
+ try {
15
+ const loaded = await loadTreeSitterModules();
16
+ const parser = new loaded.parserConstructor();
17
+ parser.setLanguage(loaded.language);
18
+ const runtime = {
19
+ parse(source) {
20
+ return parser.parse(source);
21
+ },
22
+ };
23
+ cachedRuntime = runtime;
24
+ return runtime;
25
+ }
26
+ finally {
27
+ cachedRuntimePromise = null;
28
+ }
29
+ })();
30
+ return await cachedRuntimePromise;
31
+ }
32
+ async function loadTreeSitterModules() {
33
+ const dynamicImport = createDynamicImporter();
34
+ const [treeSitterModule, rustModule] = await Promise.all([
35
+ dynamicImport("tree-sitter"),
36
+ dynamicImport("tree-sitter-rust"),
37
+ ]);
38
+ return {
39
+ parserConstructor: resolveParserConstructor(treeSitterModule),
40
+ language: resolveGrammar(rustModule, "tree-sitter-rust"),
41
+ };
42
+ }
43
+ function createDynamicImporter() {
44
+ const importer = new Function("specifier", "return import(specifier);");
45
+ return (specifier) => importer(specifier);
46
+ }
47
+ function resolveParserConstructor(moduleValue) {
48
+ if (typeof moduleValue === "function") {
49
+ return moduleValue;
50
+ }
51
+ if (moduleValue && typeof moduleValue === "object") {
52
+ const directDefault = moduleValue.default;
53
+ if (typeof directDefault === "function") {
54
+ return directDefault;
55
+ }
56
+ const namedParser = moduleValue.Parser;
57
+ if (typeof namedParser === "function") {
58
+ return namedParser;
59
+ }
60
+ }
61
+ throw new Error("Unable to resolve tree-sitter parser constructor.");
62
+ }
63
+ function resolveGrammar(moduleValue, packageName) {
64
+ if (moduleValue && typeof moduleValue === "object") {
65
+ const directDefault = moduleValue.default;
66
+ if (directDefault) {
67
+ return directDefault;
68
+ }
69
+ }
70
+ if (moduleValue) {
71
+ return moduleValue;
72
+ }
73
+ throw new Error(`Unable to resolve ${packageName} grammar.`);
74
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShellAdapter = void 0;
4
+ exports.createShellAdapter = createShellAdapter;
5
+ const node_path_1 = require("node:path");
6
+ const extract_js_1 = require("./extract.js");
7
+ const DEFAULT_EXTENSIONS = [".sh", ".bash", ".zsh"];
8
+ class ShellAdapter {
9
+ languageId = "shell";
10
+ fileExtensions = DEFAULT_EXTENSIONS;
11
+ confidence = "low";
12
+ limitations = [
13
+ "Uses regex-based function extraction (phase 1 heuristic).",
14
+ "Does not parse shell includes (source/dot) or dynamic function definitions.",
15
+ ];
16
+ async extractSymbols(filePath, source) {
17
+ const extension = (0, node_path_1.extname)(filePath).toLowerCase();
18
+ if (!DEFAULT_EXTENSIONS.includes(extension)) {
19
+ throw new Error(`Unsupported shell file extension: ${extension}`);
20
+ }
21
+ return (0, extract_js_1.extractShellSymbolsFromSource)(source);
22
+ }
23
+ resolveImportSpecifier(specifier, _context) {
24
+ const trimmed = specifier.trim();
25
+ if (trimmed.length === 0) {
26
+ return null;
27
+ }
28
+ return trimmed;
29
+ }
30
+ }
31
+ exports.ShellAdapter = ShellAdapter;
32
+ function createShellAdapter() {
33
+ return new ShellAdapter();
34
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractShellSymbolsFromSource = extractShellSymbolsFromSource;
4
+ function extractShellSymbolsFromSource(source) {
5
+ const symbols = [];
6
+ const lineStarts = buildLineStarts(source);
7
+ collectMatches(source, /^\s*function\s+([A-Za-z_][A-Za-z0-9_]*)\s*(?:\(\))?\s*\{/gm, symbols, lineStarts);
8
+ collectMatches(source, /^\s*([A-Za-z_][A-Za-z0-9_]*)\s*\(\)\s*\{/gm, symbols, lineStarts, true);
9
+ const deduped = dedupeSymbols(symbols);
10
+ deduped.sort(compareExtractedSymbols);
11
+ return {
12
+ language: "shell",
13
+ symbols: deduped,
14
+ };
15
+ }
16
+ function collectMatches(source, pattern, output, lineStarts, skipKeywords = false) {
17
+ let match;
18
+ while ((match = pattern.exec(source)) !== null) {
19
+ const name = match[1];
20
+ if (!name) {
21
+ continue;
22
+ }
23
+ if (skipKeywords && SHELL_KEYWORDS.has(name)) {
24
+ continue;
25
+ }
26
+ const startIndex = match.index;
27
+ const endIndex = startIndex + match[0].length;
28
+ const start = indexToPoint(startIndex, lineStarts);
29
+ const end = indexToPoint(endIndex, lineStarts);
30
+ output.push({
31
+ kind: "function",
32
+ name,
33
+ signature: sanitizeSignature(match[0]),
34
+ exported: false,
35
+ startLine: start.line,
36
+ startColumn: start.column,
37
+ endLine: end.line,
38
+ endColumn: end.column,
39
+ });
40
+ }
41
+ }
42
+ function buildLineStarts(source) {
43
+ const starts = [0];
44
+ for (let index = 0; index < source.length; index += 1) {
45
+ if (source[index] === "\n") {
46
+ starts.push(index + 1);
47
+ }
48
+ }
49
+ return starts;
50
+ }
51
+ function indexToPoint(index, lineStarts) {
52
+ let low = 0;
53
+ let high = lineStarts.length - 1;
54
+ while (low <= high) {
55
+ const mid = Math.floor((low + high) / 2);
56
+ const start = lineStarts[mid];
57
+ const nextStart = mid + 1 < lineStarts.length ? lineStarts[mid + 1] : Number.POSITIVE_INFINITY;
58
+ if (index >= start && index < nextStart) {
59
+ return { line: mid + 1, column: index - start };
60
+ }
61
+ if (index < start) {
62
+ high = mid - 1;
63
+ }
64
+ else {
65
+ low = mid + 1;
66
+ }
67
+ }
68
+ const fallbackLine = lineStarts.length;
69
+ return { line: fallbackLine, column: index - lineStarts[fallbackLine - 1] };
70
+ }
71
+ function sanitizeSignature(signature) {
72
+ const compact = signature.replace(/\s+/g, " ").trim();
73
+ return compact.length === 0 ? null : compact;
74
+ }
75
+ function dedupeSymbols(symbols) {
76
+ const byFingerprint = new Map();
77
+ for (const symbol of symbols) {
78
+ const fingerprint = [
79
+ symbol.kind,
80
+ symbol.name,
81
+ symbol.startLine,
82
+ symbol.startColumn,
83
+ symbol.endLine,
84
+ symbol.endColumn,
85
+ ].join(":");
86
+ byFingerprint.set(fingerprint, symbol);
87
+ }
88
+ return Array.from(byFingerprint.values());
89
+ }
90
+ function compareExtractedSymbols(left, right) {
91
+ return (left.startLine - right.startLine ||
92
+ left.startColumn - right.startColumn ||
93
+ left.endLine - right.endLine ||
94
+ left.endColumn - right.endColumn ||
95
+ left.kind.localeCompare(right.kind) ||
96
+ left.name.localeCompare(right.name));
97
+ }
98
+ const SHELL_KEYWORDS = new Set(["if", "for", "while", "case", "select", "until", "time", "coproc"]);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractShellSymbolsFromSource = exports.createShellAdapter = exports.ShellAdapter = void 0;
4
+ var adapter_js_1 = require("./adapter.js");
5
+ Object.defineProperty(exports, "ShellAdapter", { enumerable: true, get: function () { return adapter_js_1.ShellAdapter; } });
6
+ Object.defineProperty(exports, "createShellAdapter", { enumerable: true, get: function () { return adapter_js_1.createShellAdapter; } });
7
+ var extract_js_1 = require("./extract.js");
8
+ Object.defineProperty(exports, "extractShellSymbolsFromSource", { enumerable: true, get: function () { return extract_js_1.extractShellSymbolsFromSource; } });
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SvelteAdapter = void 0;
4
+ exports.createSvelteAdapter = createSvelteAdapter;
5
+ const node_path_1 = require("node:path");
6
+ const index_js_1 = require("../typescript-javascript/index.js");
7
+ const extract_js_1 = require("./extract.js");
8
+ const DEFAULT_EXTENSIONS = [".svelte"];
9
+ class SvelteAdapter {
10
+ scriptDelegate;
11
+ languageId = "svelte";
12
+ fileExtensions = DEFAULT_EXTENSIONS;
13
+ confidence = "medium";
14
+ limitations = [
15
+ "Extracts declaration-level symbols from <script> blocks by delegating to the TypeScript/JavaScript adapter.",
16
+ "Does not parse markup/template-level symbols or <style> blocks.",
17
+ ];
18
+ constructor(scriptDelegate) {
19
+ this.scriptDelegate = scriptDelegate;
20
+ }
21
+ async extractSymbols(filePath, source) {
22
+ if ((0, node_path_1.extname)(filePath).toLowerCase() !== ".svelte") {
23
+ throw new Error(`Unsupported Svelte file extension: ${(0, node_path_1.extname)(filePath)}`);
24
+ }
25
+ const symbols = [createComponentSymbol(filePath)];
26
+ const scriptBlocks = (0, extract_js_1.extractSvelteScriptBlocks)(source);
27
+ for (const block of scriptBlocks) {
28
+ const delegated = await this.scriptDelegate.extractSymbols(toDelegatedFilePath(filePath, block), block.content);
29
+ symbols.push(...delegated.symbols.map((symbol) => offsetSymbol(symbol, block)));
30
+ }
31
+ return {
32
+ language: "svelte",
33
+ symbols: dedupeAndSort(symbols),
34
+ };
35
+ }
36
+ resolveImportSpecifier(specifier, context) {
37
+ return this.scriptDelegate.resolveImportSpecifier(specifier, context);
38
+ }
39
+ }
40
+ exports.SvelteAdapter = SvelteAdapter;
41
+ function createSvelteAdapter(options = {}) {
42
+ return new SvelteAdapter(options.scriptDelegate ?? (0, index_js_1.createTypeScriptJavaScriptAdapter)());
43
+ }
44
+ function createComponentSymbol(filePath) {
45
+ const componentName = (0, node_path_1.basename)(filePath, (0, node_path_1.extname)(filePath));
46
+ return {
47
+ kind: "class",
48
+ name: componentName,
49
+ signature: null,
50
+ exported: true,
51
+ startLine: 1,
52
+ startColumn: 0,
53
+ endLine: 1,
54
+ endColumn: componentName.length,
55
+ };
56
+ }
57
+ function toDelegatedFilePath(filePath, block) {
58
+ return block.language === "typescript" ? `${filePath}.ts` : `${filePath}.js`;
59
+ }
60
+ function offsetSymbol(symbol, block) {
61
+ const lineOffset = block.startLine - 1;
62
+ return {
63
+ ...symbol,
64
+ startLine: symbol.startLine + lineOffset,
65
+ endLine: symbol.endLine + lineOffset,
66
+ startColumn: symbol.startLine === 1 ? symbol.startColumn + block.startColumn : symbol.startColumn,
67
+ endColumn: symbol.endLine === 1 ? symbol.endColumn + block.startColumn : symbol.endColumn,
68
+ };
69
+ }
70
+ function dedupeAndSort(symbols) {
71
+ const byFingerprint = new Map();
72
+ for (const symbol of symbols) {
73
+ const fingerprint = [
74
+ symbol.kind,
75
+ symbol.name,
76
+ symbol.startLine,
77
+ symbol.startColumn,
78
+ symbol.endLine,
79
+ symbol.endColumn,
80
+ ].join(":");
81
+ byFingerprint.set(fingerprint, symbol);
82
+ }
83
+ return Array.from(byFingerprint.values()).sort((left, right) => {
84
+ return (left.startLine - right.startLine ||
85
+ left.startColumn - right.startColumn ||
86
+ left.endLine - right.endLine ||
87
+ left.endColumn - right.endColumn ||
88
+ left.kind.localeCompare(right.kind) ||
89
+ left.name.localeCompare(right.name));
90
+ });
91
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractSvelteScriptBlocks = extractSvelteScriptBlocks;
4
+ function extractSvelteScriptBlocks(source) {
5
+ const blocks = [];
6
+ const scriptPattern = /<script\b((?:[^>"']|"[^"]*"|'[^']*')*)>([\s\S]*?)<\/script>/gi;
7
+ for (const match of source.matchAll(scriptPattern)) {
8
+ const fullMatch = match[0];
9
+ const attributes = match[1] ?? "";
10
+ const content = match[2] ?? "";
11
+ const matchIndex = match.index ?? 0;
12
+ const tagEndOffset = fullMatch.indexOf(">") + 1;
13
+ const contentStartIndex = matchIndex + tagEndOffset;
14
+ const position = toLineColumn(source, contentStartIndex);
15
+ blocks.push({
16
+ content,
17
+ language: detectScriptLanguage(attributes),
18
+ startLine: position.line,
19
+ startColumn: position.column,
20
+ });
21
+ }
22
+ return blocks;
23
+ }
24
+ function detectScriptLanguage(attributes) {
25
+ const langMatch = attributes.match(/lang\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+))/i);
26
+ const rawLang = (langMatch?.[1] ?? langMatch?.[2] ?? langMatch?.[3] ?? "").trim().toLowerCase();
27
+ return rawLang === "ts" || rawLang === "typescript" ? "typescript" : "javascript";
28
+ }
29
+ function toLineColumn(source, index) {
30
+ let line = 1;
31
+ let column = 0;
32
+ for (let cursor = 0; cursor < index; cursor += 1) {
33
+ if (source[cursor] === "\n") {
34
+ line += 1;
35
+ column = 0;
36
+ continue;
37
+ }
38
+ column += 1;
39
+ }
40
+ return { line, column };
41
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractSvelteScriptBlocks = exports.SvelteAdapter = exports.createSvelteAdapter = void 0;
4
+ var adapter_js_1 = require("./adapter.js");
5
+ Object.defineProperty(exports, "createSvelteAdapter", { enumerable: true, get: function () { return adapter_js_1.createSvelteAdapter; } });
6
+ Object.defineProperty(exports, "SvelteAdapter", { enumerable: true, get: function () { return adapter_js_1.SvelteAdapter; } });
7
+ var extract_js_1 = require("./extract.js");
8
+ Object.defineProperty(exports, "extractSvelteScriptBlocks", { enumerable: true, get: function () { return extract_js_1.extractSvelteScriptBlocks; } });
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwiftAdapter = void 0;
4
+ exports.createSwiftAdapter = createSwiftAdapter;
5
+ const node_path_1 = require("node:path");
6
+ const extract_js_1 = require("./extract.js");
7
+ const runtime_js_1 = require("./runtime.js");
8
+ const DEFAULT_EXTENSIONS = [".swift"];
9
+ class SwiftAdapter {
10
+ loadRuntime;
11
+ languageId = "swift";
12
+ fileExtensions = DEFAULT_EXTENSIONS;
13
+ confidence = "medium";
14
+ limitations = [
15
+ "Extracts declaration-level symbols only (classes/structs/protocols, functions/methods, imports).",
16
+ "Uses tree-sitter-swift@0.7.x; newer Swift constructs (including async/await nuance and macro declarations) are deferred.",
17
+ ];
18
+ constructor(loadRuntime) {
19
+ this.loadRuntime = loadRuntime;
20
+ }
21
+ async extractSymbols(filePath, source) {
22
+ const language = detectLanguage(filePath);
23
+ if (!language) {
24
+ throw new Error(`Unsupported Swift file extension: ${(0, node_path_1.extname)(filePath)}`);
25
+ }
26
+ const runtime = await this.loadRuntime();
27
+ const tree = runtime.parse(source, language);
28
+ return (0, extract_js_1.extractSwiftSymbolsFromTree)(tree);
29
+ }
30
+ resolveImportSpecifier(specifier, _context) {
31
+ const trimmed = specifier.trim();
32
+ if (trimmed.length === 0) {
33
+ return null;
34
+ }
35
+ return trimmed;
36
+ }
37
+ }
38
+ exports.SwiftAdapter = SwiftAdapter;
39
+ function createSwiftAdapter(options = {}) {
40
+ return new SwiftAdapter(options.loadRuntime ?? runtime_js_1.loadTreeSitterRuntime);
41
+ }
42
+ function detectLanguage(filePath) {
43
+ const extension = (0, node_path_1.extname)(filePath).toLowerCase();
44
+ return extension === ".swift" ? "swift" : null;
45
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractSwiftSymbolsFromTree = extractSwiftSymbolsFromTree;
4
+ function extractSwiftSymbolsFromTree(tree) {
5
+ const symbols = [];
6
+ walkNode(tree.rootNode, symbols);
7
+ const deduped = dedupeSymbols(symbols);
8
+ deduped.sort(compareExtractedSymbols);
9
+ return {
10
+ language: "swift",
11
+ symbols: deduped,
12
+ };
13
+ }
14
+ function walkNode(node, output) {
15
+ const current = toExtractedSymbol(node);
16
+ if (current) {
17
+ output.push(current);
18
+ }
19
+ for (const child of node.namedChildren ?? []) {
20
+ walkNode(child, output);
21
+ }
22
+ }
23
+ function toExtractedSymbol(node) {
24
+ if (CLASS_DECLARATION_TYPES.has(node.type)) {
25
+ return buildSymbol(node, "class", extractDeclarationName(node), null);
26
+ }
27
+ if (node.type === "function_declaration") {
28
+ const kind = isMethodContext(node) ? "method" : "function";
29
+ return buildSymbol(node, kind, extractFunctionName(node), sanitizeSignature(node.text));
30
+ }
31
+ if (node.type === "import_declaration") {
32
+ return buildSymbol(node, "import", extractImportName(node), null);
33
+ }
34
+ return null;
35
+ }
36
+ function buildSymbol(node, kind, name, signature) {
37
+ if (!name) {
38
+ return null;
39
+ }
40
+ return {
41
+ kind,
42
+ name,
43
+ signature,
44
+ exported: !/\b(?:private|fileprivate)\b/.test(node.text),
45
+ startLine: node.startPosition.row + 1,
46
+ startColumn: node.startPosition.column,
47
+ endLine: node.endPosition.row + 1,
48
+ endColumn: node.endPosition.column,
49
+ };
50
+ }
51
+ function extractDeclarationName(node) {
52
+ const byField = node.childForFieldName?.("name");
53
+ if (byField?.text?.trim()) {
54
+ return byField.text.trim();
55
+ }
56
+ for (const child of node.namedChildren ?? []) {
57
+ if (IDENTIFIER_NODE_TYPES.has(child.type) && child.text.trim().length > 0) {
58
+ return child.text.trim();
59
+ }
60
+ }
61
+ const byText = node.text.match(/\b(?:class|struct|protocol)\s+([A-Za-z_][A-Za-z0-9_]*)/);
62
+ return byText?.[1] ?? null;
63
+ }
64
+ function extractFunctionName(node) {
65
+ const byField = node.childForFieldName?.("name");
66
+ if (byField?.text?.trim()) {
67
+ return byField.text.trim();
68
+ }
69
+ for (const child of node.namedChildren ?? []) {
70
+ if (IDENTIFIER_NODE_TYPES.has(child.type) && child.text.trim().length > 0) {
71
+ return child.text.trim();
72
+ }
73
+ }
74
+ const byText = node.text.match(/\bfunc\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/);
75
+ return byText?.[1] ?? null;
76
+ }
77
+ function extractImportName(node) {
78
+ const byText = node.text.match(/^\s*import\s+(?:\w+\s+)?([A-Za-z_][A-Za-z0-9_.]*)\b/m);
79
+ return byText?.[1] ?? null;
80
+ }
81
+ function isMethodContext(node) {
82
+ let current = node.parent;
83
+ while (current) {
84
+ if (METHOD_CONTAINER_TYPES.has(current.type)) {
85
+ return true;
86
+ }
87
+ current = current.parent;
88
+ }
89
+ return false;
90
+ }
91
+ function sanitizeSignature(signature) {
92
+ const compact = signature.replace(/\s+/g, " ").trim();
93
+ return compact.length === 0 ? null : compact;
94
+ }
95
+ function dedupeSymbols(symbols) {
96
+ const byFingerprint = new Map();
97
+ for (const symbol of symbols) {
98
+ const fingerprint = [
99
+ symbol.kind,
100
+ symbol.name,
101
+ symbol.startLine,
102
+ symbol.startColumn,
103
+ symbol.endLine,
104
+ symbol.endColumn,
105
+ ].join(":");
106
+ byFingerprint.set(fingerprint, symbol);
107
+ }
108
+ return Array.from(byFingerprint.values());
109
+ }
110
+ function compareExtractedSymbols(left, right) {
111
+ return (left.startLine - right.startLine ||
112
+ left.startColumn - right.startColumn ||
113
+ left.endLine - right.endLine ||
114
+ left.endColumn - right.endColumn ||
115
+ left.kind.localeCompare(right.kind) ||
116
+ left.name.localeCompare(right.name));
117
+ }
118
+ const CLASS_DECLARATION_TYPES = new Set(["class_declaration", "struct_declaration", "protocol_declaration"]);
119
+ const METHOD_CONTAINER_TYPES = new Set(["class_declaration", "struct_declaration", "extension_declaration"]);
120
+ const IDENTIFIER_NODE_TYPES = new Set(["identifier", "simple_identifier", "type_identifier"]);
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadTreeSitterRuntime = exports.extractSwiftSymbolsFromTree = exports.createSwiftAdapter = exports.SwiftAdapter = void 0;
4
+ var adapter_js_1 = require("./adapter.js");
5
+ Object.defineProperty(exports, "SwiftAdapter", { enumerable: true, get: function () { return adapter_js_1.SwiftAdapter; } });
6
+ Object.defineProperty(exports, "createSwiftAdapter", { enumerable: true, get: function () { return adapter_js_1.createSwiftAdapter; } });
7
+ var extract_js_1 = require("./extract.js");
8
+ Object.defineProperty(exports, "extractSwiftSymbolsFromTree", { enumerable: true, get: function () { return extract_js_1.extractSwiftSymbolsFromTree; } });
9
+ var runtime_js_1 = require("./runtime.js");
10
+ Object.defineProperty(exports, "loadTreeSitterRuntime", { enumerable: true, get: function () { return runtime_js_1.loadTreeSitterRuntime; } });