codetrellis 0.0.0-stage → 0.2.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 (449) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +27 -2
  3. package/bin/codetrellis.mjs +4 -0
  4. package/package.json +43 -4
  5. package/reader/material-reader.mjs +130346 -0
  6. package/resources/tree-sitter/README.md +150 -0
  7. package/resources/tree-sitter/tree-sitter-c-sharp.wasm +0 -0
  8. package/resources/tree-sitter/tree-sitter-go.wasm +0 -0
  9. package/resources/tree-sitter/tree-sitter-java.wasm +0 -0
  10. package/resources/tree-sitter/tree-sitter-javascript.wasm +0 -0
  11. package/resources/tree-sitter/tree-sitter-kotlin.wasm +0 -0
  12. package/resources/tree-sitter/tree-sitter-php.wasm +0 -0
  13. package/resources/tree-sitter/tree-sitter-python.wasm +0 -0
  14. package/resources/tree-sitter/tree-sitter-ruby.wasm +0 -0
  15. package/resources/tree-sitter/tree-sitter-rust.wasm +0 -0
  16. package/resources/tree-sitter/tree-sitter-swift.wasm +0 -0
  17. package/resources/tree-sitter/tree-sitter-tsx.wasm +0 -0
  18. package/resources/tree-sitter/tree-sitter-typescript.wasm +0 -0
  19. package/resources/tree-sitter/tree-sitter.wasm +0 -0
  20. package/src/backend/agent/claude-code-watcher.js +270 -0
  21. package/src/backend/index.js +8 -0
  22. package/src/backend/lib/sha256-file.js +39 -0
  23. package/src/backend/lib/zip-entries.js +98 -0
  24. package/src/backend/lifecycle.js +102 -0
  25. package/src/backend/mcp/binding-headers.js +54 -0
  26. package/src/backend/mcp/client-identity.js +44 -0
  27. package/src/backend/mcp/connector/command.js +110 -0
  28. package/src/backend/mcp/connector/core.js +278 -0
  29. package/src/backend/mcp/connector/files.js +121 -0
  30. package/src/backend/mcp/connector/hook.js +284 -0
  31. package/src/backend/mcp/connector/main.js +126 -0
  32. package/src/backend/mcp/connector/sse-upstream.js +152 -0
  33. package/src/backend/mcp/helpers.js +43 -0
  34. package/src/backend/mcp/prompt-builders.js +104 -0
  35. package/src/backend/mcp/resources.js +197 -0
  36. package/src/backend/mcp/server.js +813 -0
  37. package/src/backend/mcp/skill-guide.js +1528 -0
  38. package/src/backend/mcp/tools/architecture-tools.js +273 -0
  39. package/src/backend/mcp/tools/audio-tools.js +117 -0
  40. package/src/backend/mcp/tools/awareness-tools.js +623 -0
  41. package/src/backend/mcp/tools/budget-tools.js +185 -0
  42. package/src/backend/mcp/tools/channel-tools.js +205 -0
  43. package/src/backend/mcp/tools/contribution-tools.js +181 -0
  44. package/src/backend/mcp/tools/drift-tools.js +252 -0
  45. package/src/backend/mcp/tools/git-tools.js +316 -0
  46. package/src/backend/mcp/tools/governance-tools.js +175 -0
  47. package/src/backend/mcp/tools/graph-tools.js +181 -0
  48. package/src/backend/mcp/tools/intake-tools.js +244 -0
  49. package/src/backend/mcp/tools/mobile-tools.js +118 -0
  50. package/src/backend/mcp/tools/peer-tools.js +330 -0
  51. package/src/backend/mcp/tools/plan-item-tools.js +1601 -0
  52. package/src/backend/mcp/tools/plan-tools.js +680 -0
  53. package/src/backend/mcp/tools/presence-tools.js +185 -0
  54. package/src/backend/mcp/tools/project-config-tools.js +150 -0
  55. package/src/backend/mcp/tools/review-tools.js +172 -0
  56. package/src/backend/mcp/tools/session-tools.js +554 -0
  57. package/src/backend/mcp/tools/system-docs-tools.js +168 -0
  58. package/src/backend/mcp/tools/terminal-tools.js +186 -0
  59. package/src/backend/mcp/tools/test-tools.js +117 -0
  60. package/src/backend/mcp/tools/ui-tools.js +356 -0
  61. package/src/backend/mcp/types.js +15 -0
  62. package/src/backend/middleware/local-auth.js +116 -0
  63. package/src/backend/server.js +5951 -0
  64. package/src/backend/services/agent-event-log.js +350 -0
  65. package/src/backend/services/architecture-rule.js +584 -0
  66. package/src/backend/services/architecture-rules.js +275 -0
  67. package/src/backend/services/artefact-content-service.js +181 -0
  68. package/src/backend/services/artefact-service.js +305 -0
  69. package/src/backend/services/artefact-watcher.js +167 -0
  70. package/src/backend/services/ast-parser.js +327 -0
  71. package/src/backend/services/audio-buffer-service.js +152 -0
  72. package/src/backend/services/awareness-notices.js +139 -0
  73. package/src/backend/services/awareness-replies.js +194 -0
  74. package/src/backend/services/awareness-service.js +344 -0
  75. package/src/backend/services/awareness-signals.js +267 -0
  76. package/src/backend/services/baseline-store.js +83 -0
  77. package/src/backend/services/branch-workstreams.js +341 -0
  78. package/src/backend/services/breakpoint-service.js +584 -0
  79. package/src/backend/services/brief-service.js +299 -0
  80. package/src/backend/services/budget-service.js +528 -0
  81. package/src/backend/services/callsites/base.js +15 -0
  82. package/src/backend/services/callsites/csharp.js +148 -0
  83. package/src/backend/services/callsites/go.js +163 -0
  84. package/src/backend/services/callsites/index.js +53 -0
  85. package/src/backend/services/callsites/kotlin.js +123 -0
  86. package/src/backend/services/callsites/process-env.js +125 -0
  87. package/src/backend/services/callsites/python.js +91 -0
  88. package/src/backend/services/callsites/ruby.js +164 -0
  89. package/src/backend/services/callsites/shared.js +198 -0
  90. package/src/backend/services/callsites/swift.js +115 -0
  91. package/src/backend/services/callsites/typescript.js +87 -0
  92. package/src/backend/services/capability-token.js +108 -0
  93. package/src/backend/services/change-check.js +156 -0
  94. package/src/backend/services/channel-dispatcher-service.js +235 -0
  95. package/src/backend/services/channel-event-file-service.js +125 -0
  96. package/src/backend/services/channel-event-service.js +297 -0
  97. package/src/backend/services/check-runs.js +177 -0
  98. package/src/backend/services/checkout-identity.js +73 -0
  99. package/src/backend/services/claude-code-parallel.js +221 -0
  100. package/src/backend/services/claude-desktop-config.js +186 -0
  101. package/src/backend/services/clock.js +57 -0
  102. package/src/backend/services/cloud-files.js +191 -0
  103. package/src/backend/services/coalesce.js +50 -0
  104. package/src/backend/services/code-breakpoints.js +291 -0
  105. package/src/backend/services/comment-service.js +168 -0
  106. package/src/backend/services/commit-attribution.js +134 -0
  107. package/src/backend/services/commit-edges.js +99 -0
  108. package/src/backend/services/confined-fs.js +241 -0
  109. package/src/backend/services/conformity-gate.js +132 -0
  110. package/src/backend/services/contribution-service.js +409 -0
  111. package/src/backend/services/coverage-service.js +173 -0
  112. package/src/backend/services/criteria-service.js +721 -0
  113. package/src/backend/services/criterion-checks.js +387 -0
  114. package/src/backend/services/criterion-loop-service.js +411 -0
  115. package/src/backend/services/cross-system-service.js +231 -0
  116. package/src/backend/services/database.js +916 -0
  117. package/src/backend/services/db-schema.js +1358 -0
  118. package/src/backend/services/deviation-service.js +344 -0
  119. package/src/backend/services/diff-engine.js +168 -0
  120. package/src/backend/services/evidence.js +363 -0
  121. package/src/backend/services/external-intake-service.js +269 -0
  122. package/src/backend/services/external-pointer-service.js +195 -0
  123. package/src/backend/services/external-refs-service.js +214 -0
  124. package/src/backend/services/file-history.js +158 -0
  125. package/src/backend/services/file-watcher.js +193 -0
  126. package/src/backend/services/folder-requests.js +118 -0
  127. package/src/backend/services/freeze-service.js +189 -0
  128. package/src/backend/services/gemini-cli-hook.js +172 -0
  129. package/src/backend/services/git-activity-service.js +325 -0
  130. package/src/backend/services/git-blobs.js +70 -0
  131. package/src/backend/services/git-branches.js +357 -0
  132. package/src/backend/services/git-checkout.js +153 -0
  133. package/src/backend/services/git-commit-service.js +91 -0
  134. package/src/backend/services/git-env.js +121 -0
  135. package/src/backend/services/git-identity.js +84 -0
  136. package/src/backend/services/git-refs.js +386 -0
  137. package/src/backend/services/git-safety.js +58 -0
  138. package/src/backend/services/grant-guard.js +67 -0
  139. package/src/backend/services/html-view-policy.js +135 -0
  140. package/src/backend/services/human-decision.js +55 -0
  141. package/src/backend/services/importers.js +159 -0
  142. package/src/backend/services/intent-service.js +105 -0
  143. package/src/backend/services/ipc-dispatcher.js +164 -0
  144. package/src/backend/services/item-git-state.js +208 -0
  145. package/src/backend/services/line-changes.js +232 -0
  146. package/src/backend/services/line-history.js +174 -0
  147. package/src/backend/services/local-api-changes.js +40 -0
  148. package/src/backend/services/logger.js +217 -0
  149. package/src/backend/services/material-footprints.js +203 -0
  150. package/src/backend/services/material-place.js +82 -0
  151. package/src/backend/services/material-reader/child.js +4 -0
  152. package/src/backend/services/material-reader/docx-markdown.js +198 -0
  153. package/src/backend/services/material-reader/fixtures.test-helper.js +169 -0
  154. package/src/backend/services/material-reader/quote.js +44 -0
  155. package/src/backend/services/material-reader/read.js +430 -0
  156. package/src/backend/services/material-reader/reader-host.js +202 -0
  157. package/src/backend/services/material-signals.js +141 -0
  158. package/src/backend/services/mcp-capabilities.js +390 -0
  159. package/src/backend/services/mdns-service.js +304 -0
  160. package/src/backend/services/mobile-api-server.js +281 -0
  161. package/src/backend/services/mobile-approvals.js +306 -0
  162. package/src/backend/services/mobile-awareness.js +180 -0
  163. package/src/backend/services/mobile-breakpoints.js +115 -0
  164. package/src/backend/services/mobile-budget.js +98 -0
  165. package/src/backend/services/mobile-freeze.js +106 -0
  166. package/src/backend/services/mobile-proposals.js +100 -0
  167. package/src/backend/services/mobile-rpc-service.js +1289 -0
  168. package/src/backend/services/mobile-workstreams.js +160 -0
  169. package/src/backend/services/monorepo-detector.js +131 -0
  170. package/src/backend/services/other-work.js +45 -0
  171. package/src/backend/services/pack-seal.js +129 -0
  172. package/src/backend/services/paired-device-service.js +192 -0
  173. package/src/backend/services/pairing-server.js +323 -0
  174. package/src/backend/services/pairing-service.js +200 -0
  175. package/src/backend/services/pantry-resolution-service.js +166 -0
  176. package/src/backend/services/parsers/base.js +124 -0
  177. package/src/backend/services/parsers/csharp.js +224 -0
  178. package/src/backend/services/parsers/go.js +180 -0
  179. package/src/backend/services/parsers/index.js +101 -0
  180. package/src/backend/services/parsers/java.js +103 -0
  181. package/src/backend/services/parsers/kotlin.js +252 -0
  182. package/src/backend/services/parsers/php.js +113 -0
  183. package/src/backend/services/parsers/python.js +189 -0
  184. package/src/backend/services/parsers/ruby.js +212 -0
  185. package/src/backend/services/parsers/rust.js +97 -0
  186. package/src/backend/services/parsers/swift.js +221 -0
  187. package/src/backend/services/parsers/typescript.js +235 -0
  188. package/src/backend/services/pattern-scan.js +65 -0
  189. package/src/backend/services/patterns.js +281 -0
  190. package/src/backend/services/peer-audit-service.js +123 -0
  191. package/src/backend/services/peer-auth.js +153 -0
  192. package/src/backend/services/peer-capabilities.js +209 -0
  193. package/src/backend/services/peer-connection-service.js +450 -0
  194. package/src/backend/services/peer-grants.js +33 -0
  195. package/src/backend/services/persistence.js +116 -0
  196. package/src/backend/services/personal-sync-service.js +232 -0
  197. package/src/backend/services/pipeline-approvals.js +72 -0
  198. package/src/backend/services/pipeline.js +232 -0
  199. package/src/backend/services/plan-arrivals.js +68 -0
  200. package/src/backend/services/plan-changes-service.js +273 -0
  201. package/src/backend/services/plan-conflict-service.js +288 -0
  202. package/src/backend/services/plan-dependencies.js +91 -0
  203. package/src/backend/services/plan-doc-guard.js +90 -0
  204. package/src/backend/services/plan-documents-service.js +275 -0
  205. package/src/backend/services/plan-event-service.js +154 -0
  206. package/src/backend/services/plan-file-refs.js +106 -0
  207. package/src/backend/services/plan-file-service.js +1564 -0
  208. package/src/backend/services/plan-history-service.js +156 -0
  209. package/src/backend/services/plan-import-service.js +261 -0
  210. package/src/backend/services/plan-item-service.js +1223 -0
  211. package/src/backend/services/plan-migrate-service.js +395 -0
  212. package/src/backend/services/plan-overlay-service.js +173 -0
  213. package/src/backend/services/plan-phases-service.js +182 -0
  214. package/src/backend/services/plan-progress-service.js +134 -0
  215. package/src/backend/services/plan-review-service.js +262 -0
  216. package/src/backend/services/plan-service.js +682 -0
  217. package/src/backend/services/plan-status.js +113 -0
  218. package/src/backend/services/plan-template-publish-service.js +217 -0
  219. package/src/backend/services/plan-templates-service.js +242 -0
  220. package/src/backend/services/plan-templates.js +1164 -0
  221. package/src/backend/services/planned-overlap-actions.js +200 -0
  222. package/src/backend/services/plans-home.js +224 -0
  223. package/src/backend/services/play-forward.js +256 -0
  224. package/src/backend/services/playback-service.js +117 -0
  225. package/src/backend/services/power-service.js +167 -0
  226. package/src/backend/services/power-signals.js +81 -0
  227. package/src/backend/services/pr-draft-service.js +142 -0
  228. package/src/backend/services/presence-service.js +122 -0
  229. package/src/backend/services/pricing.js +60 -0
  230. package/src/backend/services/project-config-service.js +474 -0
  231. package/src/backend/services/project-scanner.js +184 -0
  232. package/src/backend/services/projection-service.js +69 -0
  233. package/src/backend/services/push-notification-service.js +288 -0
  234. package/src/backend/services/recent-projects-service.js +204 -0
  235. package/src/backend/services/record-chain.js +162 -0
  236. package/src/backend/services/recurrence-rule.js +63 -0
  237. package/src/backend/services/recurring-agent.js +89 -0
  238. package/src/backend/services/recurring-scheduler.js +77 -0
  239. package/src/backend/services/recurring-service.js +276 -0
  240. package/src/backend/services/reference-service.js +169 -0
  241. package/src/backend/services/release-public-key.js +30 -0
  242. package/src/backend/services/release-signature.js +64 -0
  243. package/src/backend/services/remote-audio-service.js +224 -0
  244. package/src/backend/services/remote-interaction-service.js +275 -0
  245. package/src/backend/services/remote-terminal-service.js +324 -0
  246. package/src/backend/services/rendition/child/main.js +76 -0
  247. package/src/backend/services/rendition/engine-host.js +249 -0
  248. package/src/backend/services/rendition/engine-lock.js +39 -0
  249. package/src/backend/services/rendition/engine-lock.json +14 -0
  250. package/src/backend/services/rendition/engine-manifest.js +97 -0
  251. package/src/backend/services/rendition/network-proof.js +73 -0
  252. package/src/backend/services/rendition/rendition-service.js +175 -0
  253. package/src/backend/services/replay-frames.js +387 -0
  254. package/src/backend/services/replay-state.js +201 -0
  255. package/src/backend/services/resolvers/base.js +108 -0
  256. package/src/backend/services/resolvers/csharp.js +109 -0
  257. package/src/backend/services/resolvers/go.js +105 -0
  258. package/src/backend/services/resolvers/index.js +60 -0
  259. package/src/backend/services/resolvers/java.js +63 -0
  260. package/src/backend/services/resolvers/kotlin.js +109 -0
  261. package/src/backend/services/resolvers/php.js +89 -0
  262. package/src/backend/services/resolvers/python.js +154 -0
  263. package/src/backend/services/resolvers/ruby.js +103 -0
  264. package/src/backend/services/resolvers/rust.js +77 -0
  265. package/src/backend/services/resolvers/swift.js +98 -0
  266. package/src/backend/services/resolvers/typescript.js +71 -0
  267. package/src/backend/services/retention.js +54 -0
  268. package/src/backend/services/review-architecture.js +236 -0
  269. package/src/backend/services/review-attest.js +68 -0
  270. package/src/backend/services/review-bundle.js +226 -0
  271. package/src/backend/services/review-graduation.js +93 -0
  272. package/src/backend/services/review-host/bitbucket.js +79 -0
  273. package/src/backend/services/review-host/detect.js +80 -0
  274. package/src/backend/services/review-host/github.js +97 -0
  275. package/src/backend/services/review-host/gitlab.js +77 -0
  276. package/src/backend/services/review-host/host-state.js +103 -0
  277. package/src/backend/services/review-host/http.js +58 -0
  278. package/src/backend/services/review-host/switch.js +120 -0
  279. package/src/backend/services/review-marks.js +72 -0
  280. package/src/backend/services/review-notes.js +169 -0
  281. package/src/backend/services/review-other-work.js +90 -0
  282. package/src/backend/services/review-queue-service.js +147 -0
  283. package/src/backend/services/review-risk.js +127 -0
  284. package/src/backend/services/review-task.js +121 -0
  285. package/src/backend/services/rule-approvals.js +268 -0
  286. package/src/backend/services/rule-baseline.js +134 -0
  287. package/src/backend/services/rule-changes.js +162 -0
  288. package/src/backend/services/rule-preview.js +47 -0
  289. package/src/backend/services/rule-proposals.js +104 -0
  290. package/src/backend/services/rule-scope.js +76 -0
  291. package/src/backend/services/rulebook.js +286 -0
  292. package/src/backend/services/rules-at.js +56 -0
  293. package/src/backend/services/rules-overview.js +88 -0
  294. package/src/backend/services/schema-reconciler.js +250 -0
  295. package/src/backend/services/secret-store.js +119 -0
  296. package/src/backend/services/section-workstreams.js +95 -0
  297. package/src/backend/services/self-write-tracker.js +75 -0
  298. package/src/backend/services/sensor-bridge-service.js +285 -0
  299. package/src/backend/services/session-service.js +192 -0
  300. package/src/backend/services/settings-service.js +324 -0
  301. package/src/backend/services/signal-breakpoints.js +172 -0
  302. package/src/backend/services/signed-approval-record.js +86 -0
  303. package/src/backend/services/signed-approvals.js +244 -0
  304. package/src/backend/services/signoff-pack.js +328 -0
  305. package/src/backend/services/signoff-rows.js +114 -0
  306. package/src/backend/services/skill-arrival-service.js +138 -0
  307. package/src/backend/services/skill-model.js +193 -0
  308. package/src/backend/services/skill-use-service.js +140 -0
  309. package/src/backend/services/skills-service.js +150 -0
  310. package/src/backend/services/snapshot-compare-service.js +397 -0
  311. package/src/backend/services/source-control.js +189 -0
  312. package/src/backend/services/spec-links-service.js +123 -0
  313. package/src/backend/services/spec-proposal-withdraw.js +50 -0
  314. package/src/backend/services/spec-proposals-service.js +470 -0
  315. package/src/backend/services/sql/embedded.js +95 -0
  316. package/src/backend/services/sql/index.js +63 -0
  317. package/src/backend/services/sql/refs.js +357 -0
  318. package/src/backend/services/sql/schema.js +312 -0
  319. package/src/backend/services/sql/tokenizer.js +195 -0
  320. package/src/backend/services/stack-overlaps.js +117 -0
  321. package/src/backend/services/stack-service.js +225 -0
  322. package/src/backend/services/state-sync-service.js +384 -0
  323. package/src/backend/services/stuck-sensor-service.js +200 -0
  324. package/src/backend/services/system-discovery.js +481 -0
  325. package/src/backend/services/system-docs-service.js +701 -0
  326. package/src/backend/services/task-attachments-service.js +340 -0
  327. package/src/backend/services/task-grounding.js +60 -0
  328. package/src/backend/services/task-records/check-run-record.js +146 -0
  329. package/src/backend/services/task-records/check-runs.js +115 -0
  330. package/src/backend/services/task-records/heads.js +88 -0
  331. package/src/backend/services/task-records/material-reads.js +225 -0
  332. package/src/backend/services/task-records/read-record.js +100 -0
  333. package/src/backend/services/task-records/record.js +173 -0
  334. package/src/backend/services/task-records/run-record.js +136 -0
  335. package/src/backend/services/task-records/shared-state.js +548 -0
  336. package/src/backend/services/task-records/signing.js +140 -0
  337. package/src/backend/services/task-records/split-signals.js +52 -0
  338. package/src/backend/services/task-records/test-runs.js +164 -0
  339. package/src/backend/services/task-records/trust.js +243 -0
  340. package/src/backend/services/task-rules.js +81 -0
  341. package/src/backend/services/task-workstreams.js +90 -0
  342. package/src/backend/services/terminal-history-service.js +266 -0
  343. package/src/backend/services/terminal-service.js +267 -0
  344. package/src/backend/services/test-clock.js +53 -0
  345. package/src/backend/services/tests/grounding.js +266 -0
  346. package/src/backend/services/tests/junit.js +104 -0
  347. package/src/backend/services/tests/teammate-runs.js +134 -0
  348. package/src/backend/services/tests/test-results.js +234 -0
  349. package/src/backend/services/tree-watcher.js +204 -0
  350. package/src/backend/services/trellis-service.js +204 -0
  351. package/src/backend/services/trusted-roots.js +186 -0
  352. package/src/backend/services/update-download-service.js +342 -0
  353. package/src/backend/services/update-service.js +266 -0
  354. package/src/backend/services/watch-ignore.js +76 -0
  355. package/src/backend/services/webhook-egress.js +206 -0
  356. package/src/backend/services/webrtc-service.js +413 -0
  357. package/src/backend/services/work-changes.js +59 -0
  358. package/src/backend/services/workstream-binding.js +82 -0
  359. package/src/backend/services/workstream-commits.js +116 -0
  360. package/src/backend/services/workstream-imports.js +177 -0
  361. package/src/backend/services/workstream-service.js +335 -0
  362. package/src/backend/services/workstream-symbols.js +223 -0
  363. package/src/backend/services/workstream-watch-service.js +391 -0
  364. package/src/backend/services/worktree-service.js +235 -0
  365. package/src/cli/agent.js +100 -0
  366. package/src/cli/args.js +201 -0
  367. package/src/cli/conformity.js +106 -0
  368. package/src/cli/desktop.js +91 -0
  369. package/src/cli/main.js +409 -0
  370. package/src/cli/pipeline.js +109 -0
  371. package/src/cli/plan-verbs.js +259 -0
  372. package/src/cli/review-adapters.js +218 -0
  373. package/src/cli/review-output.js +93 -0
  374. package/src/cli/review-post.js +89 -0
  375. package/src/cli/review-sink.js +183 -0
  376. package/src/cli/review-skill.js +44 -0
  377. package/src/cli/review-verify.js +104 -0
  378. package/src/cli/review.js +386 -0
  379. package/src/cli/sarif.js +148 -0
  380. package/src/cli/verbs.js +359 -0
  381. package/src/shared/build-info.js +39 -0
  382. package/src/shared/lib/agent-review.js +199 -0
  383. package/src/shared/lib/agent-turns.js +140 -0
  384. package/src/shared/lib/awareness-digest.js +120 -0
  385. package/src/shared/lib/branch-name.js +45 -0
  386. package/src/shared/lib/breakpoint-words.js +118 -0
  387. package/src/shared/lib/budget-words.js +56 -0
  388. package/src/shared/lib/burst.js +69 -0
  389. package/src/shared/lib/call-entry.js +105 -0
  390. package/src/shared/lib/check-compare.js +42 -0
  391. package/src/shared/lib/check-words.js +216 -0
  392. package/src/shared/lib/csv.js +62 -0
  393. package/src/shared/lib/folder-entry.js +87 -0
  394. package/src/shared/lib/freeze-words.js +60 -0
  395. package/src/shared/lib/fuzzy.js +84 -0
  396. package/src/shared/lib/git-state-words.js +80 -0
  397. package/src/shared/lib/grep-entry.js +86 -0
  398. package/src/shared/lib/grounding-line.js +61 -0
  399. package/src/shared/lib/import-line.js +71 -0
  400. package/src/shared/lib/item-status.js +249 -0
  401. package/src/shared/lib/line-changes.js +53 -0
  402. package/src/shared/lib/locator.js +71 -0
  403. package/src/shared/lib/matcher.js +120 -0
  404. package/src/shared/lib/merge-order.js +65 -0
  405. package/src/shared/lib/open-findings.js +68 -0
  406. package/src/shared/lib/other-work.js +108 -0
  407. package/src/shared/lib/package-entry.js +142 -0
  408. package/src/shared/lib/plan-vocab.js +40 -0
  409. package/src/shared/lib/pptx-xml.js +86 -0
  410. package/src/shared/lib/proposal-words.js +61 -0
  411. package/src/shared/lib/recurrence.js +183 -0
  412. package/src/shared/lib/references.js +72 -0
  413. package/src/shared/lib/rule-pattern.js +56 -0
  414. package/src/shared/lib/sdp-fingerprint.js +115 -0
  415. package/src/shared/lib/sdp-minimal.js +123 -0
  416. package/src/shared/lib/secret-paths.js +34 -0
  417. package/src/shared/lib/signal-words.js +172 -0
  418. package/src/shared/lib/signoff.js +56 -0
  419. package/src/shared/lib/skills-note.js +60 -0
  420. package/src/shared/lib/spec-sections.js +78 -0
  421. package/src/shared/lib/symbol-entry.js +60 -0
  422. package/src/shared/lib/tool-phrasing.js +338 -0
  423. package/src/shared/lib/turn-gap.js +27 -0
  424. package/src/shared/lib/workstream-words.js +38 -0
  425. package/src/shared/lib/xlsx-xml.js +144 -0
  426. package/src/shared/lib/zip-reader.js +99 -0
  427. package/src/shared/types/agent.js +27 -0
  428. package/src/shared/types/architecture-rules.js +30 -0
  429. package/src/shared/types/ast.js +15 -0
  430. package/src/shared/types/breakpoint.js +33 -0
  431. package/src/shared/types/channel.js +41 -0
  432. package/src/shared/types/criteria.js +15 -0
  433. package/src/shared/types/graph.js +15 -0
  434. package/src/shared/types/index.js +53 -0
  435. package/src/shared/types/peer.js +36 -0
  436. package/src/shared/types/pipeline.js +15 -0
  437. package/src/shared/types/plan.js +15 -0
  438. package/src/shared/types/play-forward.js +15 -0
  439. package/src/shared/types/power.js +15 -0
  440. package/src/shared/types/presence.js +15 -0
  441. package/src/shared/types/project-config.js +35 -0
  442. package/src/shared/types/project.js +15 -0
  443. package/src/shared/types/record.js +15 -0
  444. package/src/shared/types/recurring.js +15 -0
  445. package/src/shared/types/review.js +15 -0
  446. package/src/shared/types/settings.js +114 -0
  447. package/src/shared/types/stack.js +15 -0
  448. package/src/shared/types/system-doc.js +15 -0
  449. package/src/shared/types/system.js +15 -0
@@ -0,0 +1,124 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var base_exports = {};
19
+ __export(base_exports, {
20
+ flattenSymbols: () => flattenSymbols,
21
+ headerSignature: () => headerSignature,
22
+ shapeOf: () => shapeOf,
23
+ shapeOfNodes: () => shapeOfNodes,
24
+ signatureOf: () => signatureOf
25
+ });
26
+ module.exports = __toCommonJS(base_exports);
27
+ function flattenSymbols(symbols) {
28
+ const out = [];
29
+ const visit = (list) => {
30
+ for (const sym of list) {
31
+ out.push({ ...sym, children: [] });
32
+ if (sym.children.length > 0) visit(sym.children);
33
+ }
34
+ };
35
+ visit(symbols);
36
+ return out;
37
+ }
38
+ const ATOMIC = /* @__PURE__ */ new Set(["string", "template_string", "number", "integer", "float", "regex", "true", "false", "none", "null", "undefined"]);
39
+ const STRING_LITERAL = /(^|_)string(_literal)?$|^encapsed_string$|^character_literal$/;
40
+ const TIGHT = /* @__PURE__ */ new Set(["variable_name", "optional_type", "splat_parameter", "hash_splat_parameter", "block_parameter", "pointer_type", "reference_type", "self_parameter"]);
41
+ function shapeOf(node) {
42
+ if (!node) return null;
43
+ return shapeOfNodes([node]);
44
+ }
45
+ function shapeOfNodes(nodes) {
46
+ if (!nodes.length) return null;
47
+ const tokens = [];
48
+ const walk = (n) => {
49
+ if (n.type === "comment" || /_comment$/.test(n.type) || n.type === ";") return;
50
+ if (n.childCount === 0 || ATOMIC.has(n.type) || STRING_LITERAL.test(n.type)) {
51
+ if (n.text) tokens.push(n.text);
52
+ return;
53
+ }
54
+ if (TIGHT.has(n.type)) {
55
+ tokens.push(n.text.replace(/\s+/g, " ").replace(/([&*]) (?=[\w'])/g, "$1"));
56
+ return;
57
+ }
58
+ for (const c of n.children) walk(c);
59
+ };
60
+ for (const node of nodes) walk(node);
61
+ return tokens.join(" ").replace(/,(\s*[)\]}>])/g, "$1").replace(/\s+([,;:)\]>?])/g, "$1").replace(/([([<])\s+/g, "$1").replace(/([\w>\])])\s+([<[])/g, "$1$2").replace(/([>\]]) \(/g, "$1(").replace(/ \.$/, ".").replace(/ \. /g, ".").replace(/\.\.\. /g, "...").replace(/(^|[(,] ?)(\*{1,2}) /g, "$1$2");
62
+ }
63
+ function signatureOf(...parts) {
64
+ const present = parts.filter((p) => !!p);
65
+ return present.length ? present.join("").replace(/\s{2,}/g, " ").trim() : void 0;
66
+ }
67
+ const NOT_HEADER = /* @__PURE__ */ new Set([
68
+ // bodies
69
+ "block",
70
+ "function_body",
71
+ "body_statement",
72
+ "compound_statement",
73
+ "constructor_body",
74
+ "arrow_expression_clause",
75
+ // modifiers, visibility, annotations and attributes
76
+ "modifiers",
77
+ "modifier",
78
+ "visibility_modifier",
79
+ "static_modifier",
80
+ "abstract_modifier",
81
+ "final_modifier",
82
+ "readonly_modifier",
83
+ "function_modifiers",
84
+ "attribute_list",
85
+ "annotation",
86
+ "marker_annotation",
87
+ "attribute",
88
+ // declaring keywords, and what ends a declaration
89
+ "fn",
90
+ "fun",
91
+ "func",
92
+ "def",
93
+ "function",
94
+ "end",
95
+ ";"
96
+ ]);
97
+ function headerSignature(node, skipFields = []) {
98
+ const name = node.childForFieldName("name");
99
+ const before = [];
100
+ const after = [];
101
+ let seenName = false;
102
+ for (let i = 0; i < node.childCount; i++) {
103
+ const child = node.child(i);
104
+ if (!child) continue;
105
+ if (name && child.startIndex === name.startIndex && child.endIndex === name.endIndex) {
106
+ seenName = true;
107
+ continue;
108
+ }
109
+ if (NOT_HEADER.has(child.type)) continue;
110
+ const field = node.fieldNameForChild(i);
111
+ if (field === "body" || field && skipFields.includes(field)) continue;
112
+ (seenName ? after : before).push(child);
113
+ }
114
+ const text = [shapeOfNodes(before), shapeOfNodes(after)].filter(Boolean).join(" ");
115
+ return signatureOf(text);
116
+ }
117
+ // Annotate the CommonJS export names for ESM import in node:
118
+ 0 && (module.exports = {
119
+ flattenSymbols,
120
+ headerSignature,
121
+ shapeOf,
122
+ shapeOfNodes,
123
+ signatureOf
124
+ });
@@ -0,0 +1,224 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var csharp_exports = {};
19
+ __export(csharp_exports, {
20
+ csharpPlugin: () => csharpPlugin
21
+ });
22
+ module.exports = __toCommonJS(csharp_exports);
23
+ var import_base = require("./base");
24
+ const sig = (node, skip = []) => {
25
+ const signature = (0, import_base.headerSignature)(node, skip);
26
+ return signature ? { signature } : {};
27
+ };
28
+ function lineOf(node) {
29
+ return { startLine: node.startPosition.row + 1, endLine: node.endPosition.row + 1 };
30
+ }
31
+ function nameOf(node) {
32
+ return node.childForFieldName("name")?.text ?? null;
33
+ }
34
+ function modifiersOf(node, ...extra) {
35
+ const mods = [];
36
+ for (const child of node.children) {
37
+ if (child.type === "modifier") mods.push(child.text);
38
+ }
39
+ return [...mods, ...extra];
40
+ }
41
+ function declarationList(node) {
42
+ return node.children.find((c) => c.type === "declaration_list") ?? null;
43
+ }
44
+ function positionalMembers(node, owner) {
45
+ const params = node.children.find((c) => c.type === "parameter_list");
46
+ if (!params) return [];
47
+ const out = [];
48
+ for (const param of params.namedChildren) {
49
+ if (param.type !== "parameter") continue;
50
+ const name = nameOf(param) ?? param.children.find((c) => c.type === "identifier")?.text;
51
+ if (!name) continue;
52
+ out.push({
53
+ name: `${owner}.${name}`,
54
+ kind: "variable",
55
+ ...lineOf(param),
56
+ children: [],
57
+ modifiers: ["positional"]
58
+ });
59
+ }
60
+ return out;
61
+ }
62
+ function memberSymbol(node, owner) {
63
+ switch (node.type) {
64
+ case "method_declaration":
65
+ case "local_function_statement": {
66
+ const name = nameOf(node);
67
+ if (!name) return null;
68
+ return { name: `${owner}.${name}`, kind: "method", ...lineOf(node), children: [], modifiers: modifiersOf(node), ...sig(node) };
69
+ }
70
+ case "constructor_declaration": {
71
+ const name = nameOf(node) ?? owner;
72
+ return { name: `${owner}.${name}`, kind: "method", ...lineOf(node), children: [], modifiers: modifiersOf(node, "constructor"), ...sig(node) };
73
+ }
74
+ case "destructor_declaration":
75
+ return { name: `${owner}.~${owner}`, kind: "method", ...lineOf(node), children: [], modifiers: modifiersOf(node, "destructor") };
76
+ case "operator_declaration":
77
+ return { name: `${owner}.operator`, kind: "method", ...lineOf(node), children: [], modifiers: modifiersOf(node, "operator"), ...sig(node) };
78
+ case "property_declaration":
79
+ case "indexer_declaration": {
80
+ const name = nameOf(node) ?? (node.type === "indexer_declaration" ? "this[]" : null);
81
+ if (!name) return null;
82
+ return { name: `${owner}.${name}`, kind: "variable", ...lineOf(node), children: [], modifiers: modifiersOf(node, "property") };
83
+ }
84
+ case "event_declaration": {
85
+ const name = nameOf(node);
86
+ if (!name) return null;
87
+ return { name: `${owner}.${name}`, kind: "variable", ...lineOf(node), children: [], modifiers: modifiersOf(node, "event") };
88
+ }
89
+ default:
90
+ return null;
91
+ }
92
+ }
93
+ function fieldSymbols(node, owner) {
94
+ const decl = node.children.find((c) => c.type === "variable_declaration");
95
+ if (!decl) return [];
96
+ const mods = modifiersOf(node, "field");
97
+ const out = [];
98
+ for (const child of decl.namedChildren) {
99
+ if (child.type !== "variable_declarator") continue;
100
+ const name = child.children.find((c) => c.type === "identifier")?.text;
101
+ if (!name) continue;
102
+ out.push({ name: `${owner}.${name}`, kind: "variable", ...lineOf(child), children: [], modifiers: mods });
103
+ }
104
+ return out;
105
+ }
106
+ function extractMembers(body, owner) {
107
+ if (!body) return [];
108
+ const out = [];
109
+ for (const child of body.namedChildren) {
110
+ if (child.type === "field_declaration") {
111
+ out.push(...fieldSymbols(child, owner));
112
+ continue;
113
+ }
114
+ const nested = typeSymbol(child, owner);
115
+ if (nested) {
116
+ out.push(nested);
117
+ continue;
118
+ }
119
+ const member = memberSymbol(child, owner);
120
+ if (member) out.push(member);
121
+ }
122
+ return out;
123
+ }
124
+ const TYPE_KINDS = {
125
+ class_declaration: "class",
126
+ struct_declaration: "class",
127
+ record_declaration: "class",
128
+ interface_declaration: "interface",
129
+ enum_declaration: "enum",
130
+ delegate_declaration: "type"
131
+ };
132
+ function typeSymbol(node, prefix) {
133
+ const kind = TYPE_KINDS[node.type];
134
+ if (!kind) return null;
135
+ const bare = nameOf(node);
136
+ if (!bare) return null;
137
+ const name = prefix ? `${prefix}.${bare}` : bare;
138
+ const extra = [];
139
+ if (node.type === "struct_declaration") extra.push("struct");
140
+ if (node.type === "record_declaration") extra.push("record");
141
+ if (node.type === "delegate_declaration") extra.push("delegate");
142
+ if (node.type === "enum_declaration") {
143
+ const list = node.children.find((c) => c.type === "enum_member_declaration_list");
144
+ const members = [];
145
+ for (const member of list?.namedChildren ?? []) {
146
+ if (member.type !== "enum_member_declaration") continue;
147
+ const memberName = nameOf(member) ?? member.children.find((c) => c.type === "identifier")?.text;
148
+ if (!memberName) continue;
149
+ members.push({
150
+ name: `${name}.${memberName}`,
151
+ kind: "variable",
152
+ ...lineOf(member),
153
+ children: [],
154
+ modifiers: ["enum_member"]
155
+ });
156
+ }
157
+ return { name, kind, ...lineOf(node), children: members, modifiers: modifiersOf(node, ...extra) };
158
+ }
159
+ const children = [
160
+ ...positionalMembers(node, name),
161
+ ...extractMembers(declarationList(node), name)
162
+ ];
163
+ return { name, kind, ...lineOf(node), children, modifiers: modifiersOf(node, ...extra) };
164
+ }
165
+ function isNamespace(node) {
166
+ return node.type === "namespace_declaration" || node.type === "file_scoped_namespace_declaration";
167
+ }
168
+ function collectTypes(container, out) {
169
+ for (const child of container.namedChildren) {
170
+ if (isNamespace(child)) {
171
+ const body = declarationList(child);
172
+ collectTypes(body ?? child, out);
173
+ continue;
174
+ }
175
+ if (child.type === "declaration_list") {
176
+ collectTypes(child, out);
177
+ continue;
178
+ }
179
+ const sym = typeSymbol(child, null);
180
+ if (sym) out.push(sym);
181
+ }
182
+ }
183
+ function extractSymbols(root) {
184
+ const out = [];
185
+ collectTypes(root, out);
186
+ return (0, import_base.flattenSymbols)(out);
187
+ }
188
+ function extractImports(root) {
189
+ const imports = [];
190
+ for (const child of root.namedChildren) {
191
+ if (child.type !== "using_directive") continue;
192
+ const qualified = child.children.find((c) => c.type === "qualified_name");
193
+ const identifiers = child.children.filter((c) => c.type === "identifier");
194
+ const alias = child.childForFieldName("alias")?.text ?? (qualified && identifiers.length > 0 ? identifiers[0].text : null);
195
+ let source = qualified?.text ?? null;
196
+ if (!source) {
197
+ source = identifiers.length > 1 ? identifiers[identifiers.length - 1].text : identifiers[0]?.text ?? null;
198
+ }
199
+ if (!source) continue;
200
+ const isAliased = Boolean(alias) && alias !== source;
201
+ imports.push({
202
+ source,
203
+ specifiers: isAliased ? [alias] : [source.split(".").pop() ?? source],
204
+ isDefault: false,
205
+ // A plain `using` brings a whole namespace into scope — that is a
206
+ // namespace import in every sense the graph cares about. An alias
207
+ // binds one name, so it is not.
208
+ isNamespace: !isAliased
209
+ });
210
+ }
211
+ return imports;
212
+ }
213
+ const csharpPlugin = {
214
+ language: "csharp",
215
+ extensions: [".cs"],
216
+ grammarFile: "tree-sitter-c-sharp.wasm",
217
+ grammarKey: "csharp",
218
+ extractSymbols,
219
+ extractImports
220
+ };
221
+ // Annotate the CommonJS export names for ESM import in node:
222
+ 0 && (module.exports = {
223
+ csharpPlugin
224
+ });
@@ -0,0 +1,180 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var go_exports = {};
19
+ __export(go_exports, {
20
+ goPlugin: () => goPlugin
21
+ });
22
+ module.exports = __toCommonJS(go_exports);
23
+ var import_base = require("./base");
24
+ function lineOf(node) {
25
+ return { startLine: node.startPosition.row + 1, endLine: node.endPosition.row + 1 };
26
+ }
27
+ function isExported(name) {
28
+ const first = name.charAt(0);
29
+ return first !== "" && first === first.toUpperCase() && first !== first.toLowerCase();
30
+ }
31
+ function modifiersFor(name, ...extra) {
32
+ return isExported(name) ? ["exported", ...extra] : [...extra];
33
+ }
34
+ function receiverTypeName(receiver) {
35
+ if (!receiver) return null;
36
+ const raw = (receiver.text || "").trim().replace(/^\(/, "").replace(/\)$/, "").trim();
37
+ if (!raw) return null;
38
+ const parts = raw.split(/\s+/);
39
+ const typePart = parts.length > 1 ? parts[parts.length - 1] : parts[0];
40
+ return typePart.replace(/^\*/, "").replace(/\[.*\]$/, "") || null;
41
+ }
42
+ function specNames(spec) {
43
+ const names = [];
44
+ for (const child of spec.children) {
45
+ if (child.type === "identifier") names.push(child.text);
46
+ }
47
+ if (names.length === 0) {
48
+ const named = spec.childForFieldName("name")?.text;
49
+ if (named) names.push(named);
50
+ }
51
+ return names.filter((n) => n && n !== "_");
52
+ }
53
+ function typeSpecToSymbol(spec) {
54
+ const name = spec.childForFieldName("name")?.text;
55
+ if (!name) return null;
56
+ const typeNode = spec.childForFieldName("type");
57
+ const lines = lineOf(spec);
58
+ switch (typeNode?.type) {
59
+ case "struct_type":
60
+ return { name, kind: "class", ...lines, children: [], modifiers: modifiersFor(name, "struct") };
61
+ case "interface_type":
62
+ return { name, kind: "interface", ...lines, children: [], modifiers: modifiersFor(name, "interface") };
63
+ default:
64
+ return { name, kind: "type", ...lines, children: [], modifiers: modifiersFor(name) };
65
+ }
66
+ }
67
+ const sig = (node, skip = []) => {
68
+ const signature = (0, import_base.headerSignature)(node, skip);
69
+ return signature ? { signature } : {};
70
+ };
71
+ function nodeToSymbols(node) {
72
+ switch (node.type) {
73
+ case "function_declaration": {
74
+ const name = node.childForFieldName("name")?.text;
75
+ if (!name) return [];
76
+ return [{ name, kind: "function", ...lineOf(node), children: [], modifiers: modifiersFor(name), ...sig(node) }];
77
+ }
78
+ case "method_declaration": {
79
+ const name = node.childForFieldName("name")?.text;
80
+ if (!name) return [];
81
+ const recv = receiverTypeName(node.childForFieldName("receiver"));
82
+ const qualified = recv ? `(${recv}).${name}` : name;
83
+ return [{
84
+ name: qualified,
85
+ kind: "function",
86
+ ...lineOf(node),
87
+ children: [],
88
+ // Exportedness is a property of the method name, not the
89
+ // qualified form.
90
+ modifiers: modifiersFor(name, "method"),
91
+ // The receiver is in the name; its variable is not shape.
92
+ ...sig(node, ["receiver"])
93
+ }];
94
+ }
95
+ case "type_declaration": {
96
+ const out = [];
97
+ for (const spec of node.children) {
98
+ if (spec.type !== "type_spec" && spec.type !== "type_alias") continue;
99
+ const sym = typeSpecToSymbol(spec);
100
+ if (sym) out.push(sym);
101
+ }
102
+ return out;
103
+ }
104
+ case "const_declaration":
105
+ case "var_declaration": {
106
+ const out = [];
107
+ const extra = node.type === "const_declaration" ? "const" : "var";
108
+ const specs = node.children.flatMap(
109
+ (c) => c.type.endsWith("_spec_list") ? c.children : [c]
110
+ );
111
+ for (const spec of specs) {
112
+ if (!spec.type.endsWith("_spec")) continue;
113
+ for (const name of specNames(spec)) {
114
+ out.push({
115
+ name,
116
+ kind: "variable",
117
+ ...lineOf(spec),
118
+ children: [],
119
+ modifiers: modifiersFor(name, extra)
120
+ });
121
+ }
122
+ }
123
+ return out;
124
+ }
125
+ default:
126
+ return [];
127
+ }
128
+ }
129
+ function extractSymbols(root) {
130
+ const symbols = [];
131
+ for (const child of root.children) {
132
+ symbols.push(...nodeToSymbols(child));
133
+ }
134
+ return symbols;
135
+ }
136
+ function unquote(text) {
137
+ if (!text) return "";
138
+ return text.replace(/^[`"]/, "").replace(/[`"]$/, "");
139
+ }
140
+ function importSpecToDeclaration(spec) {
141
+ const source = unquote(spec.childForFieldName("path")?.text);
142
+ if (!source) return null;
143
+ const alias = spec.childForFieldName("name")?.text;
144
+ const lastSegment = source.split("/").pop() || source;
145
+ return {
146
+ source,
147
+ // A blank import is kept deliberately. It is a *side-effect*
148
+ // dependency — driver registration, codec registration — and it
149
+ // is invisible in the call graph, which makes it more worth
150
+ // surfacing than an ordinary import, not less.
151
+ specifiers: [alias || lastSegment],
152
+ isDefault: false,
153
+ isNamespace: alias === "."
154
+ };
155
+ }
156
+ function extractImports(root) {
157
+ const imports = [];
158
+ for (const child of root.children) {
159
+ if (child.type !== "import_declaration") continue;
160
+ const list = child.children.find((c) => c.type === "import_spec_list");
161
+ const specs = (list ? list.children : child.children).filter((c) => c.type === "import_spec");
162
+ for (const spec of specs) {
163
+ const decl = importSpecToDeclaration(spec);
164
+ if (decl) imports.push(decl);
165
+ }
166
+ }
167
+ return imports;
168
+ }
169
+ const goPlugin = {
170
+ language: "go",
171
+ extensions: [".go"],
172
+ grammarFile: "tree-sitter-go.wasm",
173
+ grammarKey: "go",
174
+ extractSymbols,
175
+ extractImports
176
+ };
177
+ // Annotate the CommonJS export names for ESM import in node:
178
+ 0 && (module.exports = {
179
+ goPlugin
180
+ });
@@ -0,0 +1,101 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var parsers_exports = {};
29
+ __export(parsers_exports, {
30
+ PARSER_PLUGINS: () => PARSER_PLUGINS,
31
+ findUnparsedLanguages: () => findUnparsedLanguages,
32
+ findUnscannedExtensions: () => findUnscannedExtensions,
33
+ getPluginForFile: () => getPluginForFile,
34
+ listPluginExtensions: () => listPluginExtensions
35
+ });
36
+ module.exports = __toCommonJS(parsers_exports);
37
+ var import_node_path = __toESM(require("node:path"));
38
+ var import_typescript = require("./typescript");
39
+ var import_python = require("./python");
40
+ var import_rust = require("./rust");
41
+ var import_php = require("./php");
42
+ var import_java = require("./java");
43
+ var import_go = require("./go");
44
+ var import_ruby = require("./ruby");
45
+ var import_csharp = require("./csharp");
46
+ var import_kotlin = require("./kotlin");
47
+ var import_swift = require("./swift");
48
+ const PARSER_PLUGINS = [
49
+ import_typescript.typescriptPlugin,
50
+ import_typescript.tsxPlugin,
51
+ import_typescript.javascriptPlugin,
52
+ import_python.pythonPlugin,
53
+ import_rust.rustPlugin,
54
+ import_php.phpPlugin,
55
+ import_java.javaPlugin,
56
+ import_go.goPlugin,
57
+ import_ruby.rubyPlugin,
58
+ import_csharp.csharpPlugin,
59
+ import_kotlin.kotlinPlugin,
60
+ import_swift.swiftPlugin
61
+ ];
62
+ const EXTENSION_INDEX = (() => {
63
+ const map = /* @__PURE__ */ new Map();
64
+ for (const plugin of PARSER_PLUGINS) {
65
+ for (const ext of plugin.extensions) {
66
+ map.set(ext.toLowerCase(), plugin);
67
+ }
68
+ }
69
+ return map;
70
+ })();
71
+ function getPluginForFile(filePath) {
72
+ return EXTENSION_INDEX.get(import_node_path.default.extname(filePath).toLowerCase()) ?? null;
73
+ }
74
+ function listPluginExtensions() {
75
+ return [...EXTENSION_INDEX.keys()];
76
+ }
77
+ function findUnparsedLanguages(taggedLanguages) {
78
+ const parsed = new Set(PARSER_PLUGINS.map((p) => p.language));
79
+ const intentionallyUnparsed = /* @__PURE__ */ new Set([
80
+ "sql",
81
+ "json",
82
+ "css",
83
+ "html",
84
+ "markdown",
85
+ "yaml",
86
+ "toml"
87
+ ]);
88
+ return [...new Set(taggedLanguages)].filter((lang) => !parsed.has(lang) && !intentionallyUnparsed.has(lang)).sort();
89
+ }
90
+ function findUnscannedExtensions(taggedExtensions) {
91
+ const tagged = new Set(taggedExtensions.map((e) => e.toLowerCase()));
92
+ return [...EXTENSION_INDEX.keys()].filter((ext) => !tagged.has(ext)).sort();
93
+ }
94
+ // Annotate the CommonJS export names for ESM import in node:
95
+ 0 && (module.exports = {
96
+ PARSER_PLUGINS,
97
+ findUnparsedLanguages,
98
+ findUnscannedExtensions,
99
+ getPluginForFile,
100
+ listPluginExtensions
101
+ });