@opengsd/gsd-core 1.10.0 → 1.12.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 (544) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/agents/gsd-code-fixer.md +1 -1
  4. package/agents/gsd-debug-session-manager.md +12 -1
  5. package/agents/gsd-debugger.md +1 -1
  6. package/agents/gsd-doc-synthesizer.md +2 -4
  7. package/agents/gsd-dom-verifier.md +169 -0
  8. package/agents/gsd-eval-auditor.md +1 -1
  9. package/agents/gsd-executor.md +22 -14
  10. package/agents/gsd-framework-selector.md +1 -3
  11. package/agents/gsd-intel-updater.md +1 -1
  12. package/agents/gsd-mempalace-curator.md +5 -3
  13. package/agents/gsd-pattern-mapper.md +11 -0
  14. package/agents/gsd-phase-researcher.md +23 -2
  15. package/agents/gsd-plan-checker.md +50 -53
  16. package/agents/gsd-planner.md +50 -50
  17. package/agents/gsd-project-researcher.md +1 -1
  18. package/agents/gsd-research-synthesizer.md +2 -2
  19. package/agents/gsd-roadmapper.md +15 -11
  20. package/agents/gsd-ui-checker.md +63 -4
  21. package/agents/gsd-ui-researcher.md +41 -3
  22. package/agents/gsd-user-profiler.md +3 -0
  23. package/agents/gsd-verifier.md +13 -4
  24. package/bin/install.js +1448 -1103
  25. package/commands/gsd/code-review.md +1 -1
  26. package/commands/gsd/discuss-phase.md +1 -1
  27. package/commands/gsd/execute-phase.md +1 -1
  28. package/commands/gsd/import.md +1 -1
  29. package/commands/gsd/map-codebase.md +1 -1
  30. package/commands/gsd/mempalace-capture.md +1 -1
  31. package/commands/gsd/mempalace-recall.md +1 -1
  32. package/commands/gsd/new-milestone.md +1 -1
  33. package/commands/gsd/quick.md +9 -5
  34. package/commands/gsd/review-backlog.md +2 -1
  35. package/commands/gsd/verify-work.md +1 -1
  36. package/gsd-core/bin/gsd-tools.cjs +1035 -138
  37. package/gsd-core/bin/lib/active-workstream-store.cjs +146 -22
  38. package/gsd-core/bin/lib/adr-parser.cjs +13 -7
  39. package/gsd-core/bin/lib/agent-install-check.cjs +392 -32
  40. package/gsd-core/bin/lib/api-coverage.cjs +33 -14
  41. package/gsd-core/bin/lib/artifacts.cjs +5 -0
  42. package/gsd-core/bin/lib/assumption-delta.cjs +32 -15
  43. package/gsd-core/bin/lib/audit-command-router.cjs +9 -2
  44. package/gsd-core/bin/lib/audit.cjs +1026 -268
  45. package/gsd-core/bin/lib/broken-windows.cjs +306 -28
  46. package/gsd-core/bin/lib/capability-consent.cjs +149 -15
  47. package/gsd-core/bin/lib/capability-lifecycle.cjs +45 -0
  48. package/gsd-core/bin/lib/capability-lock.cjs +10 -4
  49. package/gsd-core/bin/lib/capability-registry.cjs +845 -130
  50. package/gsd-core/bin/lib/capability-source.cjs +92 -0
  51. package/gsd-core/bin/lib/capability-state.cjs +18 -3
  52. package/gsd-core/bin/lib/capability-trust.cjs +444 -25
  53. package/gsd-core/bin/lib/capability-validator.cjs +700 -40
  54. package/gsd-core/bin/lib/capability-writer.cjs +3 -2
  55. package/gsd-core/bin/lib/check-command-router.cjs +216 -42
  56. package/gsd-core/bin/lib/claude-orchestration.cjs +56 -3
  57. package/gsd-core/bin/lib/cli-exit.cjs +496 -10
  58. package/gsd-core/bin/lib/code-review-depth.cjs +288 -0
  59. package/gsd-core/bin/lib/codex-agent-toml.cjs +735 -0
  60. package/gsd-core/bin/lib/command-aliases.cjs +22 -0
  61. package/gsd-core/bin/lib/command-arg-projection.cjs +144 -14
  62. package/gsd-core/bin/lib/command-roster.cjs +44 -1
  63. package/gsd-core/bin/lib/command-routing-hub.cjs +31 -2
  64. package/gsd-core/bin/lib/commands.cjs +1172 -108
  65. package/gsd-core/bin/lib/commonjs-marker.cjs +12 -6
  66. package/gsd-core/bin/lib/complexity-trigger.cjs +1192 -0
  67. package/gsd-core/bin/lib/config-loader.cjs +187 -23
  68. package/gsd-core/bin/lib/config.cjs +102 -3
  69. package/gsd-core/bin/lib/configuration.cjs +129 -37
  70. package/gsd-core/bin/lib/core-utils.cjs +208 -33
  71. package/gsd-core/bin/lib/decisions.cjs +23 -0
  72. package/gsd-core/bin/lib/edge-probe.cjs +9 -1
  73. package/gsd-core/bin/lib/estimate-cli.cjs +55 -11
  74. package/gsd-core/bin/lib/exit-code-registry.cjs +98 -0
  75. package/gsd-core/bin/lib/fallow-runner.cjs +20 -44
  76. package/gsd-core/bin/lib/frontmatter.cjs +899 -229
  77. package/gsd-core/bin/lib/gap-checker.cjs +95 -10
  78. package/gsd-core/bin/lib/git-base-branch.cjs +276 -39
  79. package/gsd-core/bin/lib/gsd2-import.cjs +10 -1
  80. package/gsd-core/bin/lib/health-diagnostic-rules/agent-install.cjs +101 -0
  81. package/gsd-core/bin/lib/health-diagnostic-rules/config-validation.cjs +348 -0
  82. package/gsd-core/bin/lib/health-diagnostic-rules/consistency.cjs +149 -0
  83. package/gsd-core/bin/lib/health-diagnostic-rules/install-surface-shadowing.cjs +98 -0
  84. package/gsd-core/bin/lib/health-diagnostic-rules/milestone-archive-hygiene.cjs +100 -0
  85. package/gsd-core/bin/lib/health-diagnostic-rules/phase-structure.cjs +222 -0
  86. package/gsd-core/bin/lib/health-diagnostic-rules/roadmap-disk-consistency.cjs +268 -0
  87. package/gsd-core/bin/lib/health-diagnostic-rules/root-existence.cjs +161 -0
  88. package/gsd-core/bin/lib/health-diagnostic-rules/state-consistency.cjs +303 -0
  89. package/gsd-core/bin/lib/health-diagnostic-rules/worktree-health.cjs +187 -0
  90. package/gsd-core/bin/lib/health-diagnostic-types.cjs +68 -0
  91. package/gsd-core/bin/lib/health-diagnostic.cjs +451 -0
  92. package/gsd-core/bin/lib/host-integration.cjs +39 -6
  93. package/gsd-core/bin/lib/host-runtime-detection.cjs +134 -0
  94. package/gsd-core/bin/lib/init-command-router.cjs +118 -21
  95. package/gsd-core/bin/lib/init.cjs +439 -168
  96. package/gsd-core/bin/lib/install-effort-resolver.cjs +73 -30
  97. package/gsd-core/bin/lib/install-engine.cjs +811 -259
  98. package/gsd-core/bin/lib/install-fs-adapter.cjs +262 -0
  99. package/gsd-core/bin/lib/install-model-override-resolver.cjs +235 -0
  100. package/gsd-core/bin/lib/install-profiles.cjs +212 -61
  101. package/gsd-core/bin/lib/install-scope.cjs +270 -0
  102. package/gsd-core/bin/lib/install-shadow-report.cjs +385 -0
  103. package/gsd-core/bin/lib/installed-surface-resolver.cjs +381 -0
  104. package/gsd-core/bin/lib/installer-migration-report.cjs +3 -0
  105. package/gsd-core/bin/lib/installer-migrations/010-antigravity-retire-confighome-artifacts.cjs +169 -0
  106. package/gsd-core/bin/lib/installer-migrations.cjs +148 -38
  107. package/gsd-core/bin/lib/intel.cjs +101 -26
  108. package/gsd-core/bin/lib/io.cjs +170 -15
  109. package/gsd-core/bin/lib/learnings.cjs +85 -14
  110. package/gsd-core/bin/lib/legacy-cleanup.cjs +8 -2
  111. package/gsd-core/bin/lib/markdown-sectionizer.cjs +2 -1
  112. package/gsd-core/bin/lib/markdown-table.cjs +183 -22
  113. package/gsd-core/bin/lib/milestone-lock.cjs +248 -0
  114. package/gsd-core/bin/lib/milestone.cjs +842 -73
  115. package/gsd-core/bin/lib/model-catalog.cjs +232 -16
  116. package/gsd-core/bin/lib/model-resolver.cjs +193 -68
  117. package/gsd-core/bin/lib/normalize-test-command.cjs +1 -1
  118. package/gsd-core/bin/lib/onboard-projection.cjs +5 -1
  119. package/gsd-core/bin/lib/pattern.cjs +122 -0
  120. package/gsd-core/bin/lib/phase-estimation.cjs +18 -9
  121. package/gsd-core/bin/lib/phase-id.cjs +514 -40
  122. package/gsd-core/bin/lib/phase-lifecycle.cjs +52 -19
  123. package/gsd-core/bin/lib/phase-locator.cjs +262 -34
  124. package/gsd-core/bin/lib/phase.cjs +1038 -214
  125. package/gsd-core/bin/lib/plan-dependency-graph.cjs +72 -1
  126. package/gsd-core/bin/lib/plan-document.cjs +263 -0
  127. package/gsd-core/bin/lib/plan-drift-guard.cjs +120 -0
  128. package/gsd-core/bin/lib/plan-scan.cjs +98 -3
  129. package/gsd-core/bin/lib/planning-command-router.cjs +61 -0
  130. package/gsd-core/bin/lib/planning-inspect.cjs +1168 -0
  131. package/gsd-core/bin/lib/planning-scope.cjs +31 -0
  132. package/gsd-core/bin/lib/planning-snapshot.cjs +894 -0
  133. package/gsd-core/bin/lib/planning-workspace.cjs +112 -6
  134. package/gsd-core/bin/lib/probe-core.cjs +5 -2
  135. package/gsd-core/bin/lib/profile-output.cjs +1 -1
  136. package/gsd-core/bin/lib/profile-pipeline-command-router.cjs +50 -7
  137. package/gsd-core/bin/lib/profile-pipeline.cjs +6 -3
  138. package/gsd-core/bin/lib/real-home-guard.cjs +419 -0
  139. package/gsd-core/bin/lib/refactor-trigger-command-router.cjs +766 -0
  140. package/gsd-core/bin/lib/retired-artifact-cleanup.cjs +11 -6
  141. package/gsd-core/bin/lib/review-lane-descriptor.cjs +22 -13
  142. package/gsd-core/bin/lib/review-lane-invocation.cjs +30 -0
  143. package/gsd-core/bin/lib/review-lane-runner.cjs +421 -66
  144. package/gsd-core/bin/lib/review-reviewer-selection.cjs +13 -18
  145. package/gsd-core/bin/lib/roadmap-command-router.cjs +59 -11
  146. package/gsd-core/bin/lib/roadmap-parser.cjs +1006 -184
  147. package/gsd-core/bin/lib/roadmap-upgrade.cjs +37 -10
  148. package/gsd-core/bin/lib/roadmap.cjs +442 -96
  149. package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +702 -52
  150. package/gsd-core/bin/lib/runtime-artifact-install-plan.cjs +14 -2
  151. package/gsd-core/bin/lib/runtime-artifact-layout.cjs +459 -55
  152. package/gsd-core/bin/lib/runtime-config-adapter-registry.cjs +3 -2
  153. package/gsd-core/bin/lib/runtime-homes.cjs +69 -3
  154. package/gsd-core/bin/lib/runtime-hooks-surface.cjs +402 -58
  155. package/gsd-core/bin/lib/runtime-identity.cjs +234 -0
  156. package/gsd-core/bin/lib/runtime-name-policy.cjs +3 -1
  157. package/gsd-core/bin/lib/runtime-slash.cjs +96 -8
  158. package/gsd-core/bin/lib/security.cjs +104 -5
  159. package/gsd-core/bin/lib/shell-command-projection.cjs +342 -7
  160. package/gsd-core/bin/lib/smart-entry.cjs +133 -23
  161. package/gsd-core/bin/lib/spec-section.cjs +12 -7
  162. package/gsd-core/bin/lib/state-command-router.cjs +52 -19
  163. package/gsd-core/bin/lib/state-contract.cjs +359 -0
  164. package/gsd-core/bin/lib/state-document.cjs +338 -8
  165. package/gsd-core/bin/lib/state-md-schema.cjs +221 -0
  166. package/gsd-core/bin/lib/state-transition.cjs +846 -176
  167. package/gsd-core/bin/lib/state.cjs +2589 -369
  168. package/gsd-core/bin/lib/surface.cjs +33 -11
  169. package/gsd-core/bin/lib/task-command-router.cjs +111 -1
  170. package/gsd-core/bin/lib/task-content-resolution.cjs +368 -0
  171. package/gsd-core/bin/lib/teams-status.cjs +4 -1
  172. package/gsd-core/bin/lib/text-lines.cjs +80 -0
  173. package/gsd-core/bin/lib/token-scanner.cjs +76 -0
  174. package/gsd-core/bin/lib/uat-predicate.cjs +67 -23
  175. package/gsd-core/bin/lib/uat.cjs +1761 -167
  176. package/gsd-core/bin/lib/ui-consideration-probe.cjs +9 -1
  177. package/gsd-core/bin/lib/ui-frontend-evidence.cjs +157 -0
  178. package/gsd-core/bin/lib/ui-safety-gate.cjs +51 -12
  179. package/gsd-core/bin/lib/unusable-input.cjs +37 -0
  180. package/gsd-core/bin/lib/update-context.cjs +8 -2
  181. package/gsd-core/bin/lib/user-artifact-staging.cjs +705 -0
  182. package/gsd-core/bin/lib/validate-command-router.cjs +2 -2
  183. package/gsd-core/bin/lib/validate.cjs +20 -6
  184. package/gsd-core/bin/lib/vendor/README.md +75 -0
  185. package/gsd-core/bin/lib/vendor/js-yaml.cjs +3014 -0
  186. package/gsd-core/bin/lib/vendor/re2js.cjs +6480 -0
  187. package/gsd-core/bin/lib/vendor/re2js.d.cts +938 -0
  188. package/gsd-core/bin/lib/verification-command-router.cjs +2 -1
  189. package/gsd-core/bin/lib/verification.cjs +272 -9
  190. package/gsd-core/bin/lib/verify-command-grounding.cjs +846 -0
  191. package/gsd-core/bin/lib/verify.cjs +453 -918
  192. package/gsd-core/bin/lib/workstream-inventory-builder.cjs +53 -32
  193. package/gsd-core/bin/lib/workstream-inventory.cjs +63 -10
  194. package/gsd-core/bin/lib/workstream-name-policy.cjs +25 -4
  195. package/gsd-core/bin/lib/workstream.cjs +2 -2
  196. package/gsd-core/bin/lib/worktree-base-ref.cjs +66 -12
  197. package/gsd-core/bin/lib/worktree-safety.cjs +341 -18
  198. package/gsd-core/bin/shared/config-defaults.manifest.json +8 -1
  199. package/gsd-core/bin/shared/config-schema.manifest.json +12 -1
  200. package/gsd-core/bin/shared/exit-codes.json +8 -0
  201. package/gsd-core/bin/shared/exit-codes.sh +20 -0
  202. package/gsd-core/bin/shared/model-catalog.json +8 -1
  203. package/gsd-core/references/agent-contracts.md +44 -26
  204. package/gsd-core/references/api-coverage.md +24 -2
  205. package/gsd-core/references/autonomous-smart-discuss.md +3 -3
  206. package/gsd-core/references/checkpoints.md +39 -21
  207. package/gsd-core/references/context-budget.md +1 -1
  208. package/gsd-core/references/decimal-phase-calculation.md +5 -5
  209. package/gsd-core/references/dispatch-isolation-gate.md +138 -0
  210. package/gsd-core/references/doc-conflict-engine.md +1 -1
  211. package/gsd-core/references/edge-probe.md +8 -0
  212. package/gsd-core/references/execute-mvp-tdd.md +4 -6
  213. package/gsd-core/references/execute-phase-between-wave-reset.md +15 -14
  214. package/gsd-core/references/execute-phase-context-guard.md +1 -1
  215. package/gsd-core/references/execute-phase-response-language.md +1 -1
  216. package/gsd-core/references/execute-phase-wave-guard.md +17 -11
  217. package/gsd-core/references/failing-direction.md +78 -0
  218. package/gsd-core/references/gate-prompts.md +1 -1
  219. package/gsd-core/references/git-integration.md +5 -5
  220. package/gsd-core/references/git-planning-commit.md +5 -4
  221. package/gsd-core/references/gsd-run-resolver.md +1 -1
  222. package/gsd-core/references/loop-hook-dispatch.md +61 -2
  223. package/gsd-core/references/model-profiles.md +12 -4
  224. package/gsd-core/references/mvp-concepts.md +9 -9
  225. package/gsd-core/references/nyquist-compliance.md +74 -0
  226. package/gsd-core/references/offer-next.md +3 -5
  227. package/gsd-core/references/phase-argument-parsing.md +3 -3
  228. package/gsd-core/references/planner-failing-direction.md +53 -0
  229. package/gsd-core/references/planner-guidance.md +3 -9
  230. package/gsd-core/references/planner-human-verify-mode.md +15 -1
  231. package/gsd-core/references/planner-preconditions.md +1 -1
  232. package/gsd-core/references/planner-reviews.md +1 -1
  233. package/gsd-core/references/planner-revision.md +1 -1
  234. package/gsd-core/references/planner-verify-command-grounding.md +17 -0
  235. package/gsd-core/references/planning-config.md +44 -13
  236. package/gsd-core/references/reviewer-instances.md +31 -0
  237. package/gsd-core/references/revision-loop.md +1 -1
  238. package/gsd-core/references/runtime-aware-dispatch.md +1 -1
  239. package/gsd-core/references/specless-probe-fallback.md +1 -1
  240. package/gsd-core/references/tdd.md +1 -3
  241. package/gsd-core/references/ui-brand.md +65 -21
  242. package/gsd-core/references/ui-consideration-probe.md +1 -1
  243. package/gsd-core/references/universal-anti-patterns.md +5 -5
  244. package/gsd-core/references/verifier-phase-gates.md +192 -0
  245. package/gsd-core/references/verify-command-path-resolvability.md +42 -0
  246. package/gsd-core/references/verify-mvp-mode.md +2 -2
  247. package/gsd-core/references/workstream-flag.md +33 -17
  248. package/gsd-core/templates/README.md +1 -1
  249. package/gsd-core/templates/SECURITY.md +3 -3
  250. package/gsd-core/templates/UI-SPEC.md +25 -3
  251. package/gsd-core/templates/VALIDATION.md +3 -3
  252. package/gsd-core/templates/discussion-log.md +1 -1
  253. package/gsd-core/templates/phase-prompt.md +5 -4
  254. package/gsd-core/templates/state.md +11 -4
  255. package/gsd-core/templates/verification-report.md +9 -1
  256. package/gsd-core/workflows/_runtime-launcher.snippet.sh +1 -1
  257. package/gsd-core/workflows/add-backlog.md +1 -1
  258. package/gsd-core/workflows/add-phase.md +3 -3
  259. package/gsd-core/workflows/add-tests.md +3 -8
  260. package/gsd-core/workflows/add-todo.md +1 -1
  261. package/gsd-core/workflows/ai-integration-phase.md +13 -20
  262. package/gsd-core/workflows/audit-fix.md +12 -3
  263. package/gsd-core/workflows/audit-milestone.md +9 -9
  264. package/gsd-core/workflows/audit-uat.md +17 -2
  265. package/gsd-core/workflows/autonomous/steps/converge-fail-fast.md +2 -2
  266. package/gsd-core/workflows/autonomous.md +11 -27
  267. package/gsd-core/workflows/check-todos.md +1 -1
  268. package/gsd-core/workflows/cleanup.md +64 -5
  269. package/gsd-core/workflows/code-review/steps/structural-pre-pass.md +14 -4
  270. package/gsd-core/workflows/code-review-fix.md +38 -11
  271. package/gsd-core/workflows/code-review.md +159 -52
  272. package/gsd-core/workflows/complete-milestone.md +151 -23
  273. package/gsd-core/workflows/debug.md +12 -8
  274. package/gsd-core/workflows/diagnose-issues.md +47 -15
  275. package/gsd-core/workflows/discuss-phase/modes/advisor.md +1 -1
  276. package/gsd-core/workflows/discuss-phase/modes/chain.md +5 -8
  277. package/gsd-core/workflows/discuss-phase/modes/default.md +1 -1
  278. package/gsd-core/workflows/discuss-phase/modes/text.md +1 -1
  279. package/gsd-core/workflows/discuss-phase-assumptions/steps/auto-advance-dispatch.md +1 -3
  280. package/gsd-core/workflows/discuss-phase-assumptions.md +4 -3
  281. package/gsd-core/workflows/discuss-phase.md +1 -1
  282. package/gsd-core/workflows/do.md +3 -6
  283. package/gsd-core/workflows/docs-update.md +5 -4
  284. package/gsd-core/workflows/edit-phase.md +27 -2
  285. package/gsd-core/workflows/eval-review.md +7 -14
  286. package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +1 -1
  287. package/gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md +142 -15
  288. package/gsd-core/workflows/execute-phase/steps/gap-closure-artifacts.md +1 -1
  289. package/gsd-core/workflows/execute-phase/steps/partial-wave.md +1 -1
  290. package/gsd-core/workflows/execute-phase/steps/per-plan-executor-routing.md +77 -0
  291. package/gsd-core/workflows/execute-phase/steps/per-plan-worktree-gate.md +24 -4
  292. package/gsd-core/workflows/execute-phase/steps/post-merge-gate.md +2 -2
  293. package/gsd-core/workflows/execute-phase/steps/protected-branch.md +21 -0
  294. package/gsd-core/workflows/execute-phase/steps/regression-gate-run.md +2 -2
  295. package/gsd-core/workflows/execute-phase/steps/wave-post-gate-hooks.md +39 -0
  296. package/gsd-core/workflows/execute-phase.md +72 -100
  297. package/gsd-core/workflows/execute-plan.md +52 -15
  298. package/gsd-core/workflows/explore.md +131 -4
  299. package/gsd-core/workflows/extract-learnings.md +1 -1
  300. package/gsd-core/workflows/fast.md +10 -2
  301. package/gsd-core/workflows/forensics.md +1 -1
  302. package/gsd-core/workflows/graduation.md +5 -5
  303. package/gsd-core/workflows/health.md +76 -10
  304. package/gsd-core/workflows/import.md +18 -15
  305. package/gsd-core/workflows/inbox.md +4 -5
  306. package/gsd-core/workflows/ingest-docs.md +49 -16
  307. package/gsd-core/workflows/insert-phase.md +5 -5
  308. package/gsd-core/workflows/list-seeds.md +5 -3
  309. package/gsd-core/workflows/list-workspaces.md +1 -1
  310. package/gsd-core/workflows/manager.md +12 -23
  311. package/gsd-core/workflows/map-codebase.md +1 -1
  312. package/gsd-core/workflows/milestone-summary.md +1 -1
  313. package/gsd-core/workflows/mvp-phase.md +8 -5
  314. package/gsd-core/workflows/new-milestone.md +22 -29
  315. package/gsd-core/workflows/new-project/steps/auto-mode-config.md +1 -1
  316. package/gsd-core/workflows/new-project.md +26 -40
  317. package/gsd-core/workflows/new-workspace.md +1 -1
  318. package/gsd-core/workflows/next.md +14 -2
  319. package/gsd-core/workflows/pause-work.md +1 -1
  320. package/gsd-core/workflows/plan-phase/steps/adr-ingest-express-path.md +1 -1
  321. package/gsd-core/workflows/plan-phase/steps/chunked-planning-mode.md +1 -1
  322. package/gsd-core/workflows/plan-phase/steps/prd-express-path.md +2 -4
  323. package/gsd-core/workflows/plan-phase/steps/stall-detection-helpers.md +3 -3
  324. package/gsd-core/workflows/plan-phase.md +162 -59
  325. package/gsd-core/workflows/plan-review-convergence.md +96 -11
  326. package/gsd-core/workflows/plant-seed.md +2 -2
  327. package/gsd-core/workflows/pr-branch.md +187 -51
  328. package/gsd-core/workflows/profile-user.md +16 -14
  329. package/gsd-core/workflows/progress.md +61 -18
  330. package/gsd-core/workflows/quick/steps/discussion-phase.md +1 -3
  331. package/gsd-core/workflows/quick/steps/plan-checker-loop.md +5 -7
  332. package/gsd-core/workflows/quick/steps/quick-verification.md +28 -9
  333. package/gsd-core/workflows/quick/steps/research-phase.md +4 -6
  334. package/gsd-core/workflows/quick/steps/worktree-pre-dispatch-commit.md +3 -3
  335. package/gsd-core/workflows/quick.md +55 -44
  336. package/gsd-core/workflows/remove-phase.md +4 -4
  337. package/gsd-core/workflows/remove-workspace.md +2 -2
  338. package/gsd-core/workflows/resume-project.md +8 -12
  339. package/gsd-core/workflows/review.md +219 -20
  340. package/gsd-core/workflows/scan.md +1 -1
  341. package/gsd-core/workflows/secure-phase.md +3 -3
  342. package/gsd-core/workflows/session-report.md +2 -1
  343. package/gsd-core/workflows/settings-advanced.md +7 -9
  344. package/gsd-core/workflows/settings-integrations.md +64 -31
  345. package/gsd-core/workflows/settings.md +69 -7
  346. package/gsd-core/workflows/ship.md +116 -50
  347. package/gsd-core/workflows/sketch-wrap-up.md +11 -17
  348. package/gsd-core/workflows/sketch.md +12 -18
  349. package/gsd-core/workflows/smart-entry.md +3 -5
  350. package/gsd-core/workflows/spec-phase.md +53 -13
  351. package/gsd-core/workflows/spike-wrap-up.md +7 -11
  352. package/gsd-core/workflows/spike.md +20 -31
  353. package/gsd-core/workflows/stats.md +2 -2
  354. package/gsd-core/workflows/sync-skills.md +64 -9
  355. package/gsd-core/workflows/thread.md +11 -7
  356. package/gsd-core/workflows/transition.md +49 -14
  357. package/gsd-core/workflows/ui-phase.md +15 -21
  358. package/gsd-core/workflows/ui-review.md +8 -12
  359. package/gsd-core/workflows/ultraplan-phase.md +5 -13
  360. package/gsd-core/workflows/undo.md +8 -16
  361. package/gsd-core/workflows/update.md +7 -11
  362. package/gsd-core/workflows/validate-phase.md +3 -3
  363. package/gsd-core/workflows/verify-work/steps/automated-ui-verification.md +25 -1
  364. package/gsd-core/workflows/verify-work/steps/mvp-uat-framing.md +1 -1
  365. package/gsd-core/workflows/verify-work.md +66 -25
  366. package/hooks/dist/gsd-agent-isolation-guard.js +158 -30
  367. package/hooks/dist/gsd-check-update-worker.js +56 -13
  368. package/hooks/dist/gsd-check-update.js +19 -1
  369. package/hooks/dist/gsd-config-reload.js +18 -12
  370. package/hooks/dist/gsd-context-monitor.js +19 -10
  371. package/hooks/dist/gsd-cursor-post-tool.js +3 -1
  372. package/hooks/dist/gsd-cursor-pre-tool.js +2 -3
  373. package/hooks/dist/gsd-cursor-session-start.js +2 -1
  374. package/hooks/dist/gsd-cursor-stop.js +2 -1
  375. package/hooks/dist/gsd-cursor-subagent-start.js +83 -3
  376. package/hooks/dist/gsd-cursor-subagent-stop.js +6 -3
  377. package/hooks/dist/gsd-ensure-canonical-path.js +2 -1
  378. package/hooks/dist/gsd-graphify-update.sh +22 -18
  379. package/hooks/dist/gsd-node-runner.sh +76 -0
  380. package/hooks/dist/gsd-phase-boundary.sh +1 -0
  381. package/hooks/dist/gsd-prompt-guard.js +37 -27
  382. package/hooks/dist/gsd-read-guard.js +16 -7
  383. package/hooks/dist/gsd-read-injection-scanner.js +55 -32
  384. package/hooks/dist/gsd-session-state.sh +1 -0
  385. package/hooks/dist/gsd-statusline.js +231 -24
  386. package/hooks/dist/gsd-update-banner.js +22 -1
  387. package/hooks/dist/gsd-validate-commit.sh +80 -6
  388. package/hooks/dist/gsd-windsurf-pre-command.js +16 -11
  389. package/hooks/dist/gsd-windsurf-pre-write.js +22 -13
  390. package/hooks/dist/gsd-workflow-guard.js +162 -46
  391. package/hooks/dist/gsd-worktree-path-guard.js +36 -21
  392. package/hooks/dist/gsd-write-guard.js +35 -25
  393. package/hooks/dist/lib/cli-exit.js +560 -0
  394. package/hooks/dist/lib/exit-code-registry.js +98 -0
  395. package/hooks/dist/lib/git-cmd.js +92 -59
  396. package/hooks/dist/lib/git-probe.js +84 -0
  397. package/hooks/dist/lib/hook-exit.js +81 -0
  398. package/hooks/dist/lib/injection-patterns.js +45 -0
  399. package/hooks/dist/lib/isolation-deny-reason.js +39 -0
  400. package/hooks/dist/lib/isolation-sentinel.js +9 -0
  401. package/hooks/dist/managed-hooks-registry.cjs +3 -0
  402. package/hooks/gsd-agent-isolation-guard.js +158 -30
  403. package/hooks/gsd-check-update-worker.js +56 -13
  404. package/hooks/gsd-check-update.js +19 -1
  405. package/hooks/gsd-config-reload.js +18 -12
  406. package/hooks/gsd-context-monitor.js +19 -10
  407. package/hooks/gsd-cursor-post-tool.js +3 -1
  408. package/hooks/gsd-cursor-pre-tool.js +2 -3
  409. package/hooks/gsd-cursor-session-start.js +2 -1
  410. package/hooks/gsd-cursor-stop.js +2 -1
  411. package/hooks/gsd-cursor-subagent-start.js +83 -3
  412. package/hooks/gsd-cursor-subagent-stop.js +6 -3
  413. package/hooks/gsd-ensure-canonical-path.js +2 -1
  414. package/hooks/gsd-graphify-update.sh +22 -18
  415. package/hooks/gsd-node-runner.sh +76 -0
  416. package/hooks/gsd-phase-boundary.sh +1 -0
  417. package/hooks/gsd-prompt-guard.js +37 -27
  418. package/hooks/gsd-read-guard.js +16 -7
  419. package/hooks/gsd-read-injection-scanner.js +55 -32
  420. package/hooks/gsd-session-state.sh +1 -0
  421. package/hooks/gsd-statusline.js +231 -24
  422. package/hooks/gsd-update-banner.js +22 -1
  423. package/hooks/gsd-validate-commit.sh +80 -6
  424. package/hooks/gsd-windsurf-pre-command.js +16 -11
  425. package/hooks/gsd-windsurf-pre-write.js +22 -13
  426. package/hooks/gsd-workflow-guard.js +162 -46
  427. package/hooks/gsd-worktree-path-guard.js +36 -21
  428. package/hooks/gsd-write-guard.js +35 -25
  429. package/hooks/lib/cli-exit.js +560 -0
  430. package/hooks/lib/exit-code-registry.js +98 -0
  431. package/hooks/lib/git-cmd.js +92 -59
  432. package/hooks/lib/git-probe.js +84 -0
  433. package/hooks/lib/hook-exit.js +81 -0
  434. package/hooks/lib/injection-patterns.js +45 -0
  435. package/hooks/lib/isolation-deny-reason.js +39 -0
  436. package/hooks/lib/isolation-sentinel.js +9 -0
  437. package/hooks/managed-hooks-registry.cjs +3 -0
  438. package/package.json +28 -11
  439. package/pi/gsd.cjs +19 -5
  440. package/scripts/base64-scan.sh +74 -12
  441. package/scripts/baselines/planning-prompt-drift-baseline.json +4 -0
  442. package/scripts/baselines/planning-snapshot-bypass-baseline.json +12 -0
  443. package/scripts/baselines/unreachable-guard-drift-baseline.json +4 -0
  444. package/scripts/build-hooks.js +5 -0
  445. package/scripts/changeset/lint.cjs +60 -5
  446. package/scripts/check-alias-drift.cjs +7 -43
  447. package/scripts/check-contract-drift.cjs +297 -0
  448. package/scripts/check-glossary-refs.cjs +77 -15
  449. package/scripts/check-mutation-score-ratchet.cjs +156 -0
  450. package/scripts/ci-check-job-near-cap.cjs +49 -0
  451. package/scripts/ci-pr-mergeability.cjs +262 -0
  452. package/scripts/ci-test-scope.cjs +64 -14
  453. package/scripts/ci-timeout-report.cjs +230 -0
  454. package/scripts/command-contract-helpers.cjs +903 -1
  455. package/scripts/docs-guard-registry.cjs +396 -0
  456. package/scripts/gen-adr-index.cjs +728 -38
  457. package/scripts/gen-capability-registry.cjs +11 -21
  458. package/scripts/gen-context-index.cjs +2 -11
  459. package/scripts/gen-exit-code-docs.cjs +318 -0
  460. package/scripts/gen-exit-code-registry.cjs +891 -0
  461. package/scripts/gen-features.cjs +836 -0
  462. package/scripts/gen-health-docs.cjs +390 -0
  463. package/scripts/gen-hooks-cli-exit.cjs +239 -0
  464. package/scripts/gen-install-tree-fixtures.cjs +2 -2
  465. package/scripts/gen-inventory-manifest.cjs +50 -4
  466. package/scripts/gen-loop-host-contract.cjs +138 -25
  467. package/scripts/gen-registry.cjs +3 -14
  468. package/scripts/gen-scripts-cli-exit.cjs +185 -0
  469. package/scripts/gen-state-md-docs.cjs +727 -0
  470. package/scripts/{test-failure-reasons.cjs → gsd-test-gate-reasons.cjs} +6 -0
  471. package/scripts/lib/alias-drift-families.cjs +46 -0
  472. package/scripts/lib/ci-job-timing.cjs +72 -0
  473. package/scripts/lib/cli-exit.cjs +546 -44
  474. package/scripts/lib/drift-scan.cjs +308 -0
  475. package/scripts/lib/exit-code-registry.cjs +98 -0
  476. package/scripts/lib/ndjson-reporter.cjs +119 -0
  477. package/scripts/lint-allow-test-rule-refs.allowlist.json +1 -26
  478. package/scripts/lint-allow-test-rule-refs.effective-ceiling.json +4 -0
  479. package/scripts/lint-allow-test-rule-refs.unverified-ceiling.json +3 -0
  480. package/scripts/lint-canary-version-leak.cjs +73 -0
  481. package/scripts/lint-command-contract.cjs +96 -13
  482. package/scripts/lint-completion-predicate-drift.cjs +933 -0
  483. package/scripts/lint-completion-ratio-drift.cjs +214 -0
  484. package/scripts/lint-default-flip-documentation.cjs +193 -0
  485. package/scripts/lint-docs-guard-registration.cjs +495 -0
  486. package/scripts/lint-docs-guard-registration.exempt-baseline.cjs +193 -0
  487. package/scripts/lint-eslint-glob-coverage.allowlist.json +38 -0
  488. package/scripts/lint-eslint-glob-coverage.cjs +340 -0
  489. package/scripts/{lint-fix-has-regression-test.cjs → lint-fix-has-regression-tests.cjs} +12 -6
  490. package/scripts/lint-frontmatter-scalar-broad-grep.cjs +237 -0
  491. package/scripts/lint-health-diagnostic-rule-table.cjs +461 -0
  492. package/scripts/lint-hooks-runtime-build-seam.cjs +262 -0
  493. package/scripts/lint-milestone-window-drift.cjs +468 -0
  494. package/scripts/lint-mutation-test-derivation-drift.cjs +86 -0
  495. package/scripts/lint-phase-enumeration-drift.cjs +492 -0
  496. package/scripts/lint-plan-count-drift.cjs +318 -0
  497. package/scripts/lint-planning-artifact-writer-drift.cjs +398 -0
  498. package/scripts/lint-planning-prompt-drift.cjs +471 -0
  499. package/scripts/lint-planning-snapshot-bypass-drift.cjs +544 -0
  500. package/scripts/lint-regression-test-names.cjs +15 -13
  501. package/scripts/lint-removed-but-needed.cjs +488 -0
  502. package/scripts/lint-seam-enforcement.cjs +182 -0
  503. package/scripts/lint-slug-derivation-drift.cjs +921 -0
  504. package/scripts/lint-source-test-name-collision.cjs +241 -0
  505. package/scripts/lint-state-field-drift.cjs +805 -0
  506. package/scripts/lint-state-write-path-drift.cjs +950 -0
  507. package/scripts/lint-test-file-count.allowlist.json +137 -8
  508. package/scripts/lint-test-file-count.cjs +25 -3
  509. package/scripts/lint-unreachable-guard-drift.cjs +830 -0
  510. package/scripts/lint-vendored-deps.cjs +297 -0
  511. package/scripts/mutation-matrix.cjs +599 -50
  512. package/scripts/pr-changed-files.cjs +63 -0
  513. package/scripts/pr-template-policy.cjs +14 -4
  514. package/scripts/prompt-injection-scan.sh +100 -14
  515. package/scripts/require-issue-link-policy.cjs +192 -0
  516. package/scripts/secret-scan.sh +75 -13
  517. package/scripts/select-docs-guards.cjs +56 -0
  518. package/scripts/sync-runtime-launcher.cjs +24 -7
  519. package/skills/gsd-autonomous/SKILL.md +0 -1
  520. package/skills/gsd-code-review/SKILL.md +1 -1
  521. package/skills/gsd-discuss-phase/SKILL.md +1 -1
  522. package/skills/gsd-execute-phase/SKILL.md +1 -2
  523. package/skills/gsd-import/SKILL.md +1 -1
  524. package/skills/gsd-map-codebase/SKILL.md +1 -1
  525. package/skills/gsd-mempalace-capture/SKILL.md +1 -1
  526. package/skills/gsd-mempalace-recall/SKILL.md +1 -1
  527. package/skills/gsd-new-milestone/SKILL.md +1 -1
  528. package/skills/gsd-next/SKILL.md +0 -1
  529. package/skills/gsd-plan-phase/SKILL.md +0 -1
  530. package/skills/gsd-progress/SKILL.md +0 -1
  531. package/skills/gsd-quick/SKILL.md +9 -5
  532. package/skills/gsd-review-backlog/SKILL.md +2 -1
  533. package/skills/gsd-stats/SKILL.md +0 -1
  534. package/skills/gsd-verify-work/SKILL.md +1 -1
  535. package/vscode/package.json +1 -1
  536. package/bin/lib/ui-safety-gate.cjs +0 -107
  537. package/gsd-core/workflows/discovery-phase.md +0 -298
  538. package/gsd-core/workflows/plan-milestone-gaps.md +0 -281
  539. package/gsd-core/workflows/verify-phase.md +0 -574
  540. package/scripts/affected-tests-lib.cjs +0 -554
  541. package/scripts/lint-allow-test-rule-refs.cjs +0 -162
  542. package/scripts/lint-emitted-drift-ack.cjs +0 -344
  543. package/scripts/run-affected-tests.cjs +0 -7
  544. package/scripts/run-tests.cjs +0 -1051
@@ -0,0 +1,938 @@
1
+ // Generated by dts-bundle-generator v9.5.1
2
+
3
+ declare class DFA {
4
+ static MAX_CACHE_CLEARS: number;
5
+ static STATE_MEMORY_ESTIMATE: number;
6
+ constructor(prog: any, maxMem?: number);
7
+ prog: any;
8
+ stateCache: Map<any, any>;
9
+ stateCount: number;
10
+ startState: any;
11
+ stateLimit: number;
12
+ cacheClears: number;
13
+ failed: boolean;
14
+ clock: number;
15
+ computeClosure(pcs: any): {
16
+ pcs: Int32Array<ArrayBuffer>;
17
+ isMatch: boolean;
18
+ matchIDs: any[];
19
+ };
20
+ getState(pcs: any): any;
21
+ evictCache(): void;
22
+ step(state: any, charCode: any, anchor: any): any;
23
+ match(input: any, pos: any, anchor: any): boolean;
24
+ matchSet(input: any, pos: any, anchor: any): any[];
25
+ }
26
+ declare class Prog {
27
+ inst: any[];
28
+ start: number;
29
+ numCap: number;
30
+ lbStarts: any[];
31
+ numLb: number;
32
+ getInst(pc: any): any;
33
+ numInst(): number;
34
+ addInst(op: any): void;
35
+ skipNop(pc: any): any;
36
+ prefix(): (string | boolean)[];
37
+ startCond(): number;
38
+ patch(l: any, val: any): void;
39
+ append(l1: any, l2: any): any;
40
+ /**
41
+ *
42
+ * @returns {string}
43
+ */
44
+ toString(): string;
45
+ }
46
+ export class RE2Set {
47
+ /** @type {number} */
48
+ static UNANCHORED: number;
49
+ /** @type {number} */
50
+ static ANCHOR_START: number;
51
+ /** @type {number} */
52
+ static ANCHOR_BOTH: number;
53
+ /**
54
+ * Constructs a new RE2Set with the specified anchor mode and flags.
55
+ * @param {number} [anchor=RE2Set.UNANCHORED] - The anchoring mode (e.g., RE2Set.UNANCHORED).
56
+ * @param {number} [flags=0] - The public flags to apply to all patterns in the set.
57
+ * @param {number} [maxMem=8388608] - The maximum memory in bytes to use for the DFA (default 8MB).
58
+ */
59
+ constructor(anchor?: number, flags?: number, maxMem?: number);
60
+ anchor: number;
61
+ jsFlags: number;
62
+ maxMem: number;
63
+ re2Flags: number;
64
+ regexps: any[];
65
+ prog: Prog;
66
+ dfa: DFA;
67
+ dummyRe2: {
68
+ prog: Prog;
69
+ cond: number;
70
+ prefix: string;
71
+ prefixRune: number;
72
+ longest: boolean;
73
+ };
74
+ /**
75
+ * Adds a new regular expression pattern to the set.
76
+ * Patterns cannot be added after the set has been compiled.
77
+ * @param {string} pattern - The regular expression pattern to add.
78
+ * @returns {number} The integer index assigned to the added pattern.
79
+ * @throws {RE2JSCompileException} If patterns are added after compilation.
80
+ */
81
+ add(pattern: string): number;
82
+ /**
83
+ * Compiles the added patterns into a single state machine.
84
+ * This is automatically called on the first match if not called explicitly.
85
+ * @returns {void}
86
+ */
87
+ compile(): void;
88
+ /**
89
+ * Matches the input against the compiled set of regular expressions.
90
+ * @param {string|number[]|Uint8Array} input - The input string or UTF-8 byte array to match against.
91
+ * @returns {number[]} An array of indices representing the patterns that successfully matched the input.
92
+ */
93
+ match(input: string | number[] | Uint8Array): number[];
94
+ }
95
+ export class MatcherInput {
96
+ /**
97
+ * Return the MatcherInput for UTF_16 encoding.
98
+ * @returns {Utf16MatcherInput}
99
+ */
100
+ static utf16(charSequence: any): Utf16MatcherInput;
101
+ /**
102
+ * Return the MatcherInput for UTF_8 encoding.
103
+ * @returns {Utf8MatcherInput}
104
+ */
105
+ static utf8(input: any): Utf8MatcherInput;
106
+ }
107
+ /**
108
+ * Abstract the representations of input text supplied to Matcher.
109
+ */
110
+ export class MatcherInputBase {
111
+ static Encoding: any;
112
+ getEncoding(): void;
113
+ /** @returns {string} */
114
+ asCharSequence(): string;
115
+ /** @returns {Uint8Array|number[]} */
116
+ asBytes(): Uint8Array | number[];
117
+ /** @returns {number} */
118
+ length(): number;
119
+ /**
120
+ *
121
+ * @returns {boolean}
122
+ */
123
+ isUTF8Encoding(): boolean;
124
+ /**
125
+ *
126
+ * @returns {boolean}
127
+ */
128
+ isUTF16Encoding(): boolean;
129
+ }
130
+ declare class Utf16MatcherInput extends MatcherInputBase {
131
+ /** @param {string|null} charSequence */
132
+ constructor(charSequence?: string | null);
133
+ charSequence: string;
134
+ getEncoding(): any;
135
+ /**
136
+ *
137
+ * @returns {number[]}
138
+ */
139
+ asBytes(): number[];
140
+ }
141
+ declare class Utf8MatcherInput extends MatcherInputBase {
142
+ /** @param {Uint8Array|number[]|null} bytes */
143
+ constructor(bytes?: Uint8Array | number[] | null);
144
+ bytes: number[] | Uint8Array<ArrayBufferLike>;
145
+ getEncoding(): any;
146
+ }
147
+ /**
148
+ * A stateful iterator that interprets a regex {@code RE2JS} on a specific input.
149
+ *
150
+ * Conceptually, a Matcher consists of four parts:
151
+ * <ol>
152
+ * <li>A compiled regular expression {@code RE2JS}, set at construction and fixed for the lifetime
153
+ * of the matcher.</li>
154
+ *
155
+ * <li>The remainder of the input string, set at construction or {@link #reset()} and advanced by
156
+ * each match operation such as {@link #find}, {@link #matches} or {@link #lookingAt}.</li>
157
+ *
158
+ * <li>The current match information, accessible via {@link #start}, {@link #end}, and
159
+ * {@link #group}, and updated by each match operation.</li>
160
+ *
161
+ * <li>The append position, used and advanced by {@link #appendReplacement} and {@link #appendTail}
162
+ * if performing a search and replace from the input to an external {@code StringBuffer}.
163
+ *
164
+ * </ol>
165
+ *
166
+ *
167
+ * @author rsc@google.com (Russ Cox)
168
+ */
169
+ export class Matcher {
170
+ /**
171
+ * V8 and WebKit have historical hard limits on the number of arguments
172
+ * that can be passed to a function. We cap replacer arguments to prevent
173
+ * Call Stack Overflow (DoS) vulnerabilities on massive ASTs.
174
+ */
175
+ static MAX_REPLACER_ARGS: number;
176
+ /**
177
+ * Quotes '\' and '$' in {@code s}, so that the returned string could be used in
178
+ * {@link #appendReplacement} as a literal replacement of {@code s}.
179
+ *
180
+ * @param {string} str the string to be quoted
181
+ * @param {boolean} [javaMode=false] whether the replacement will be used in javaMode
182
+ * @returns {string} the quoted string
183
+ */
184
+ static quoteReplacement(str: string, javaMode?: boolean): string;
185
+ /**
186
+ *
187
+ * @param {import('./index.js').RE2JS} pattern
188
+ * @param {string|number[]|Uint8Array|MatcherInputBase} input
189
+ */
190
+ constructor(pattern: RE2JS, input: string | number[] | Uint8Array | MatcherInputBase);
191
+ /**
192
+ * The pattern being matched.
193
+ * @type {import('./index.js').RE2JS}
194
+ */
195
+ patternInput: RE2JS;
196
+ /** @type {number} */
197
+ patternGroupCount: number;
198
+ /** @type {number[]} */
199
+ groups: number[];
200
+ /** @type {Record<string, number>} */
201
+ namedGroups: Record<string, number>;
202
+ /** @type {number} */
203
+ numberOfInstructions: number;
204
+ /**
205
+ * Returns the {@code RE2JS} associated with this {@code Matcher}.
206
+ * @returns {import('./index.js').RE2JS}
207
+ */
208
+ pattern(): RE2JS;
209
+ /**
210
+ * Resets the {@code Matcher}, rewinding input and discarding any match information.
211
+ *
212
+ * @returns {Matcher} the {@code Matcher} itself, for chained method calls
213
+ */
214
+ reset(): Matcher;
215
+ /** @type {number} */
216
+ matcherInputLength: number;
217
+ /** @type {number} */
218
+ appendPos: number;
219
+ hasMatch: boolean;
220
+ hasGroups: boolean;
221
+ anchorFlag: number;
222
+ /**
223
+ * Resets the {@code Matcher} and changes the input.
224
+ * @param {string|number[]|Uint8Array|MatcherInputBase} input
225
+ * @returns {Matcher} the {@code Matcher} itself, for chained method calls
226
+ */
227
+ resetMatcherInput(input: string | number[] | Uint8Array | MatcherInputBase): Matcher;
228
+ matcherInput: MatcherInputBase;
229
+ /**
230
+ * Returns the start of the named group of the most recent match, or -1 if the group was not
231
+ * matched.
232
+ * @param {string|number} [group=0]
233
+ * @returns {number}
234
+ */
235
+ start(group?: string | number): number;
236
+ /**
237
+ * Returns the end of the named group of the most recent match, or -1 if the group was not
238
+ * matched.
239
+ * @param {string|number} [group=0]
240
+ * @returns {number}
241
+ */
242
+ end(group?: string | number): number;
243
+ /**
244
+ * Returns the program size of this pattern.
245
+ *
246
+ * <p>
247
+ * Similar to the C++ implementation, the program size is a very approximate measure of a regexp's
248
+ * "cost". Larger numbers are more expensive than smaller numbers.
249
+ * </p>
250
+ *
251
+ * @returns {number} the program size of this pattern
252
+ */
253
+ programSize(): number;
254
+ /**
255
+ * Returns the named group of the most recent match, or {@code null} if the group was not matched.
256
+ * @param {string|number} [group=0]
257
+ * @returns {string|null}
258
+ */
259
+ group(group?: string | number): string | null;
260
+ /**
261
+ * Returns a dictionary map of all named capturing groups and their matched values.
262
+ * If a group was not matched, its value will be `null`.
263
+ * @returns {Record<string, string|null>}
264
+ */
265
+ getNamedGroups(): Record<string, string | null>;
266
+ /**
267
+ * Returns the number of subgroups in this pattern.
268
+ *
269
+ * @returns {number} the number of subgroups; the overall match (group 0) does not count
270
+ */
271
+ groupCount(): number;
272
+ /**
273
+ * Helper: finds subgroup information if needed for group.
274
+ * @param {number} group
275
+ * @private
276
+ */
277
+ private loadGroup;
278
+ /**
279
+ * Matches the entire input against the pattern (anchored start and end). If there is a match,
280
+ * {@code matches} sets the match state to describe it.
281
+ *
282
+ * @returns {boolean} true if the entire input matches the pattern
283
+ */
284
+ matches(): boolean;
285
+ /**
286
+ * Matches the beginning of input against the pattern (anchored start). If there is a match,
287
+ * {@code lookingAt} sets the match state to describe it.
288
+ *
289
+ * @returns {boolean} true if the beginning of the input matches the pattern
290
+ */
291
+ lookingAt(): boolean;
292
+ /**
293
+ * Matches the input against the pattern (unanchored), starting at a specified position. If there
294
+ * is a match, {@code find} sets the match state to describe it.
295
+ *
296
+ * @param {number|null} [start=null] the input position where the search begins
297
+ * @returns {boolean} if it finds a match
298
+ * @throws IndexOutOfBoundsException if start is not a valid input position
299
+ */
300
+ find(start?: number | null): boolean;
301
+ /**
302
+ * Helper: does match starting at start, with RE2 anchor flag.
303
+ * @param {number} startByte
304
+ * @param {number} anchor
305
+ * @returns {boolean}
306
+ * @private
307
+ */
308
+ private genMatch;
309
+ /**
310
+ * Helper: return substring for [start, end).
311
+ * @param {number} start
312
+ * @param {number} end
313
+ * @returns {string}
314
+ */
315
+ substring(start: number, end: number): string;
316
+ /**
317
+ * Helper for Pattern: return input length.
318
+ * @returns {number}
319
+ */
320
+ inputLength(): number;
321
+ /**
322
+ * Appends to result two strings: the text from the append position up to the beginning of the
323
+ * most recent match, and then the replacement with submatch groups substituted for references of
324
+ * the form {@code $n}, where {@code n} is the group number in decimal. It advances the append
325
+ * position to where the most recent match ended.
326
+ *
327
+ * To embed a literal {@code $}, use \$ (actually {@code "\\$"} with string escapes). The escape
328
+ * is only necessary when {@code $} is followed by a digit, but it is always allowed. Only
329
+ * {@code $} and {@code \} need escaping, but any character can be escaped.
330
+ *
331
+ * The group number {@code n} in {@code $n} is always at least one digit and expands to use more
332
+ * digits as long as the resulting number is a valid group number for this pattern. To cut it off
333
+ * earlier, escape the first digit that should not be used.
334
+ *
335
+ * @param {string} replacement the replacement string
336
+ * @param {boolean} [javaMode=false] activate java mode (different behaviour for capture groups and special characters)
337
+ * @returns {string}
338
+ * @throws IllegalStateException if there was no most recent match
339
+ * @throws IndexOutOfBoundsException if replacement refers to an invalid group
340
+ * @private
341
+ */
342
+ private appendReplacement;
343
+ /**
344
+ * @param {string} replacement - the replacement string
345
+ * @returns {string}
346
+ * @private
347
+ */
348
+ private appendReplacementInternalJava;
349
+ /**
350
+ * @param {string} replacement - the replacement string
351
+ * @returns {string}
352
+ * @private
353
+ */
354
+ private appendReplacementInternalJs;
355
+ /**
356
+ * Return the substring of the input from the append position to the end of the
357
+ * input.
358
+ * @returns {string}
359
+ */
360
+ appendTail(): string;
361
+ /**
362
+ * Returns the input with all matches replaced by {@code replacement}, interpreted as for
363
+ * {@code appendReplacement}.
364
+ *
365
+ * @param {string|((...args: any[]) => string)} replacement - the replacement string or a replacer function
366
+ * @param {boolean} [javaMode=false] - activate java mode (different behaviour for capture groups and special characters)
367
+ * @returns {string} the input string with the matches replaced
368
+ * @throws IndexOutOfBoundsException if replacement refers to an invalid group and javaMode is true
369
+ */
370
+ replaceAll(replacement: string | ((...args: any[]) => string), javaMode?: boolean): string;
371
+ /**
372
+ * Returns the input with the first match replaced by {@code replacement}, interpreted as for
373
+ * {@code appendReplacement}.
374
+ *
375
+ * @param {string|((...args: any[]) => string)} replacement - the replacement string or a replacer function
376
+ * @param {boolean} [javaMode=false] - activate java mode (different behaviour for capture groups and special characters)
377
+ * @returns {string} the input string with the first match replaced
378
+ * @throws IndexOutOfBoundsException if replacement refers to an invalid group and javaMode is true
379
+ */
380
+ replaceFirst(replacement: string | ((...args: any[]) => string), javaMode?: boolean): string;
381
+ /**
382
+ * Helper: replaceAll/replaceFirst hybrid.
383
+ * @param {string|((...args: any[]) => string)} replacement - the replacement string or a replacer function
384
+ * @param {boolean} [all=true] - replace all matches
385
+ * @param {boolean} [javaMode=false] - activate java mode (different behaviour for capture groups and special characters)
386
+ * @returns {string}
387
+ * @private
388
+ */
389
+ private replace;
390
+ /**
391
+ * Evaluates a replacer function for the current match and appends the result,
392
+ * along with any un-matched preceding text, advancing the append position.
393
+ * @param {Function} replacer - the replacer function
394
+ * @param {boolean} hasNamedGroups - cached flag if pattern has named groups
395
+ * @param {string|Uint8Array|number[]} originalInput - the cached original input reference
396
+ * @returns {string} the evaluated string to append
397
+ * @private
398
+ */
399
+ private appendReplacementFunc;
400
+ /**
401
+ * Builds the argument array for the replacer function matching the standard
402
+ * JS String.prototype.replace(regex, replacer) signature.
403
+ * @param {number} matchStart - the start index of the match
404
+ * @param {boolean} hasNamedGroups - cached flag if pattern has named groups
405
+ * @param {string|Uint8Array|number[]} originalInput - the cached original input reference
406
+ * @returns {Array} array of arguments
407
+ * @private
408
+ */
409
+ private buildReplacerArgs;
410
+ }
411
+ export class RE2JSException extends Error {
412
+ /** @param {string} message */
413
+ constructor(message: string);
414
+ }
415
+ /**
416
+ * An exception thrown by the parser if the pattern was invalid.
417
+ */
418
+ export class RE2JSSyntaxException extends RE2JSException {
419
+ /**
420
+ * @param {string} error
421
+ * @param {string|null} [input=null]
422
+ */
423
+ constructor(error: string, input?: string | null);
424
+ /** @type {string} */
425
+ error: string;
426
+ /** @type {string|null} */
427
+ input: string | null;
428
+ /**
429
+ * Retrieves the description of the error.
430
+ * @returns {string}
431
+ */
432
+ getDescription(): string;
433
+ /**
434
+ * Retrieves the erroneous regular-expression pattern.
435
+ * @returns {string|null}
436
+ */
437
+ getPattern(): string | null;
438
+ }
439
+ /**
440
+ * An exception thrown by the compiler
441
+ */
442
+ export class RE2JSCompileException extends RE2JSException {
443
+ }
444
+ /**
445
+ * An exception thrown by using groups
446
+ */
447
+ export class RE2JSGroupException extends RE2JSException {
448
+ }
449
+ /**
450
+ * An exception thrown by flags
451
+ */
452
+ export class RE2JSFlagsException extends RE2JSException {
453
+ }
454
+ /**
455
+ * An exception thrown for internal engine errors, such as corrupted bytecodes.
456
+ */
457
+ export class RE2JSInternalException extends RE2JSException {
458
+ }
459
+ declare class RE2 {
460
+ static initTest(expr: any): RE2;
461
+ /**
462
+ * Parses a regular expression and returns, if successful, an {@code RE2} instance that can be
463
+ * used to match against text.
464
+ *
465
+ * When matching against text, the regexp returns a match that begins as early as possible in the
466
+ * input (leftmost), and among those it chooses the one that a backtracking search would have
467
+ * found first. This so-called leftmost-first matching is the same semantics that Perl, Python,
468
+ * and other implementations use, although this package implements it without the expense of
469
+ * backtracking. For POSIX leftmost-longest matching, see {@link #compilePOSIX}.
470
+ */
471
+ static compile(expr: any): RE2;
472
+ /**
473
+ * {@code compilePOSIX} is like {@link #compile} but restricts the regular expression to POSIX ERE
474
+ * (egrep) syntax and changes the match semantics to leftmost-longest.
475
+ *
476
+ * That is, when matching against text, the regexp returns a match that begins as early as
477
+ * possible in the input (leftmost), and among those it chooses a match that is as long as
478
+ * possible. This so-called leftmost-longest matching is the same semantics that early regular
479
+ * expression implementations used and that POSIX specifies.
480
+ *
481
+ * However, there can be multiple leftmost-longest matches, with different submatch choices, and
482
+ * here this package diverges from POSIX. Among the possible leftmost-longest matches, this
483
+ * package chooses the one that a backtracking search would have found first, while POSIX
484
+ * specifies that the match be chosen to maximize the length of the first subexpression, then the
485
+ * second, and so on from left to right. The POSIX rule is computationally prohibitive and not
486
+ * even well-defined. See http://swtch.com/~rsc/regexp/regexp2.html#posix
487
+ */
488
+ static compilePOSIX(expr: any): RE2;
489
+ static compileImpl(expr: any, mode: any, longest: any): RE2;
490
+ /**
491
+ * Returns true iff textual regular expression {@code pattern} matches string {@code s}.
492
+ *
493
+ * More complicated queries need to use {@link #compile} and the full {@code RE2} interface.
494
+ */
495
+ static match(pattern: any, s: any): boolean;
496
+ constructor(expr: any, prog: any, numSubexp?: number, longest?: number);
497
+ expr: any;
498
+ prog: any;
499
+ numSubexp: number;
500
+ longest: number;
501
+ cond: any;
502
+ prefix: any;
503
+ prefixUTF8: any;
504
+ prefixComplete: boolean;
505
+ prefixRune: number;
506
+ machinePool: any[];
507
+ dfa: DFA;
508
+ onepass: {
509
+ start: any;
510
+ numCap: any;
511
+ inst: any[];
512
+ };
513
+ prefilter: any;
514
+ matchPrefixComplete(input: any, pos: any, anchor: any, ncap: any): number[];
515
+ executeEngine(input: any, pos: any, anchor: any, ncap: any): any;
516
+ /**
517
+ * Returns the number of parenthesized subexpressions in this regular expression.
518
+ */
519
+ numberOfCapturingGroups(): number;
520
+ /**
521
+ * Returns the number of instructions in this compiled regular expression program.
522
+ */
523
+ numberOfInstructions(): any;
524
+ get(): any;
525
+ reset(): void;
526
+ put(m: any): void;
527
+ toString(): any;
528
+ doExecuteNFA(input: any, pos: any, anchor: any, ncap: any): any;
529
+ match(s: any): boolean;
530
+ /**
531
+ * Matches the regular expression against input starting at position start and ending at position
532
+ * end, with the given anchoring. Records the submatch boundaries in group, which is [start, end)
533
+ * pairs of byte offsets. The number of boundaries needed is inferred from the size of the group
534
+ * array. It is most efficient not to ask for submatch boundaries.
535
+ *
536
+ * @param input the input byte array
537
+ * @param start the beginning position in the input
538
+ * @param end the end position in the input
539
+ * @param anchor the anchoring flag (UNANCHORED, ANCHOR_START, ANCHOR_BOTH)
540
+ * @param group the array to fill with submatch positions
541
+ * @param ngroup the number of array pairs to fill in
542
+ * @returns true if a match was found
543
+ */
544
+ matchWithGroup(input: any, start: any, end: any, anchor: any, ngroup: any): any[];
545
+ matchMachineInput(input: any, start: any, end: any, anchor: any, ngroup: any): any[];
546
+ /**
547
+ * Returns true iff this regexp matches the UTF-8 byte array {@code b}.
548
+ */
549
+ matchUTF8(b: any): boolean;
550
+ /**
551
+ * Returns a copy of {@code src} in which all matches for this regexp have been replaced by
552
+ * {@code repl}. No support is provided for expressions (e.g. {@code \1} or {@code $1}) in the
553
+ * replacement string.
554
+ */
555
+ replaceAll(src: any, repl: any): string;
556
+ /**
557
+ * Returns a copy of {@code src} in which only the first match for this regexp has been replaced
558
+ * by {@code repl}. No support is provided for expressions (e.g. {@code \1} or {@code $1}) in the
559
+ * replacement string.
560
+ */
561
+ replaceFirst(src: any, repl: any): string;
562
+ /**
563
+ * Returns a copy of {@code src} in which at most {@code maxReplaces} matches for this regexp have
564
+ * been replaced by the return value of of function {@code repl} (whose first argument is the
565
+ * matched string). No support is provided for expressions (e.g. {@code \1} or {@code $1}) in the
566
+ * replacement string.
567
+ */
568
+ replaceAllFunc(src: any, replFunc: any, maxReplaces: any): string;
569
+ pad(a: any): any;
570
+ allMatches(input: any, n: any, deliverFun?: (v: any) => any): any[];
571
+ /**
572
+ * Returns an array holding the text of the leftmost match in {@code b} of this regular
573
+ * expression.
574
+ *
575
+ * A return value of null indicates no match.
576
+ */
577
+ findUTF8(b: any): any;
578
+ /**
579
+ * Returns a two-element array of integers defining the location of the leftmost match in
580
+ * {@code b} of this regular expression. The match itself is at {@code b[loc[0]...loc[1]]}.
581
+ *
582
+ * A return value of null indicates no match.
583
+ */
584
+ findUTF8Index(b: any): any;
585
+ /**
586
+ * Returns a string holding the text of the leftmost match in {@code s} of this regular
587
+ * expression.
588
+ *
589
+ * If there is no match, the return value is an empty string, but it will also be empty if the
590
+ * regular expression successfully matches an empty string. Use {@link #findIndex} or
591
+ * {@link #findSubmatch} if it is necessary to distinguish these cases.
592
+ */
593
+ find(s: any): any;
594
+ /**
595
+ * Returns a two-element array of integers defining the location of the leftmost match in
596
+ * {@code s} of this regular expression. The match itself is at
597
+ * {@code s.substring(loc[0], loc[1])}.
598
+ *
599
+ * A return value of null indicates no match.
600
+ */
601
+ findIndex(s: any): any;
602
+ /**
603
+ * Returns an array of arrays the text of the leftmost match of the regular expression in
604
+ * {@code b} and the matches, if any, of its subexpressions, as defined by the <a
605
+ * href='#submatch'>Submatch</a> description above.
606
+ *
607
+ * A return value of null indicates no match.
608
+ */
609
+ findUTF8Submatch(b: any): any[];
610
+ /**
611
+ * Returns an array holding the index pairs identifying the leftmost match of this regular
612
+ * expression in {@code b} and the matches, if any, of its subexpressions, as defined by the the
613
+ * <a href='#submatch'>Submatch</a> and <a href='#index'>Index</a> descriptions above.
614
+ *
615
+ * A return value of null indicates no match.
616
+ */
617
+ findUTF8SubmatchIndex(b: any): any;
618
+ /**
619
+ * Returns an array of strings holding the text of the leftmost match of the regular expression in
620
+ * {@code s} and the matches, if any, of its subexpressions, as defined by the <a
621
+ * href='#submatch'>Submatch</a> description above.
622
+ *
623
+ * A return value of null indicates no match.
624
+ */
625
+ findSubmatch(s: any): any[];
626
+ /**
627
+ * Returns an array holding the index pairs identifying the leftmost match of this regular
628
+ * expression in {@code s} and the matches, if any, of its subexpressions, as defined by the <a
629
+ * href='#submatch'>Submatch</a> description above.
630
+ *
631
+ * A return value of null indicates no match.
632
+ */
633
+ findSubmatchIndex(s: any): any;
634
+ /**
635
+ * {@code findAllUTF8()} is the <a href='#all'>All</a> version of {@link #findUTF8}; it returns a
636
+ * list of up to {@code n} successive matches of the expression, as defined by the <a
637
+ * href='#all'>All</a> description above.
638
+ *
639
+ * A return value of null indicates no match.
640
+ *
641
+ * TODO(adonovan): think about defining a byte slice view class, like a read-only Go slice backed
642
+ * by |b|.
643
+ */
644
+ findAllUTF8(b: any, n: any): any[];
645
+ /**
646
+ * {@code findAllUTF8Index} is the <a href='#all'>All</a> version of {@link #findUTF8Index}; it
647
+ * returns a list of up to {@code n} successive matches of the expression, as defined by the <a
648
+ * href='#all'>All</a> description above.
649
+ *
650
+ * A return value of null indicates no match.
651
+ */
652
+ findAllUTF8Index(b: any, n: any): any[];
653
+ /**
654
+ * {@code findAll} is the <a href='#all'>All</a> version of {@link #find}; it returns a list of up
655
+ * to {@code n} successive matches of the expression, as defined by the <a href='#all'>All</a>
656
+ * description above.
657
+ *
658
+ * A return value of null indicates no match.
659
+ */
660
+ findAll(s: any, n: any): any[];
661
+ /**
662
+ * {@code findAllIndex} is the <a href='#all'>All</a> version of {@link #findIndex}; it returns a
663
+ * list of up to {@code n} successive matches of the expression, as defined by the <a
664
+ * href='#all'>All</a> description above.
665
+ *
666
+ * A return value of null indicates no match.
667
+ */
668
+ findAllIndex(s: any, n: any): any[];
669
+ /**
670
+ * {@code findAllUTF8Submatch} is the <a href='#all'>All</a> version of {@link #findUTF8Submatch};
671
+ * it returns a list of up to {@code n} successive matches of the expression, as defined by the <a
672
+ * href='#all'>All</a> description above.
673
+ *
674
+ * A return value of null indicates no match.
675
+ */
676
+ findAllUTF8Submatch(b: any, n: any): any[];
677
+ /**
678
+ * {@code findAllUTF8SubmatchIndex} is the <a href='#all'>All</a> version of
679
+ * {@link #findUTF8SubmatchIndex}; it returns a list of up to {@code n} successive matches of the
680
+ * expression, as defined by the <a href='#all'>All</a> description above.
681
+ *
682
+ * A return value of null indicates no match.
683
+ */
684
+ findAllUTF8SubmatchIndex(b: any, n: any): any[];
685
+ /**
686
+ * {@code findAllSubmatch} is the <a href='#all'>All</a> version of {@link #findSubmatch}; it
687
+ * returns a list of up to {@code n} successive matches of the expression, as defined by the <a
688
+ * href='#all'>All</a> description above.
689
+ *
690
+ * A return value of null indicates no match.
691
+ */
692
+ findAllSubmatch(s: any, n: any): any[];
693
+ /**
694
+ * {@code findAllSubmatchIndex} is the <a href='#all'>All</a> version of
695
+ * {@link #findSubmatchIndex}; it returns a list of up to {@code n} successive matches of the
696
+ * expression, as defined by the <a href='#all'>All</a> description above.
697
+ *
698
+ * A return value of null indicates no match.
699
+ */
700
+ findAllSubmatchIndex(s: any, n: any): any[];
701
+ }
702
+ /**
703
+ * Creates an RE2JS regex directly from a template literal.
704
+ * @overload
705
+ * @param {TemplateStringsArray} stringsOrFlags - The raw string segments of the template literal.
706
+ * @param {...any} values - The interpolated values.
707
+ * @returns {RE2JS}
708
+ */
709
+ export function re(stringsOrFlags: TemplateStringsArray, ...values: any[]): RE2JS;
710
+ /**
711
+ * Creates a template literal tag function with specific RE2JS flags.
712
+ * @overload
713
+ * @param {number} stringsOrFlags - The RE2JS flags to apply (e.g., RE2JS.CASE_INSENSITIVE).
714
+ * @returns {(strings: TemplateStringsArray, ...tagValues: any[]) => RE2JS}
715
+ */
716
+ export function re(stringsOrFlags: number): (strings: TemplateStringsArray, ...tagValues: any[]) => RE2JS;
717
+ /**
718
+ * A compiled representation of an RE2 regular expression
719
+ *
720
+ * The matching functions take {@code String} arguments instead of the more general Java
721
+ * {@code CharSequence} since the latter doesn't provide UTF-16 decoding.
722
+ *
723
+ *
724
+ * @author rsc@google.com (Russ Cox)
725
+ * @class
726
+ */
727
+ export class RE2JS {
728
+ /**
729
+ * Flag: case insensitive matching.
730
+ */
731
+ static CASE_INSENSITIVE: number;
732
+ /**
733
+ * Flag: dot ({@code .}) matches all characters, including newline.
734
+ */
735
+ static DOTALL: number;
736
+ /**
737
+ * Flag: multiline matching: {@code ^} and {@code $} match at beginning and end of line, not just
738
+ * beginning and end of input.
739
+ */
740
+ static MULTILINE: number;
741
+ /**
742
+ * Flag: Unicode groups (e.g. {@code \p\ Greek\} ) will be syntax errors.
743
+ */
744
+ static DISABLE_UNICODE_GROUPS: number;
745
+ /**
746
+ * Flag: matches longest possible string.
747
+ */
748
+ static LONGEST_MATCH: number;
749
+ /**
750
+ * Flag: enable linear-time captureless lookbehinds.
751
+ */
752
+ static LOOKBEHINDS: number;
753
+ /**
754
+ * Returns a literal pattern string for the specified string.
755
+ *
756
+ * This method produces a string that can be used to create a <code>RE2JS</code> that would
757
+ * match the string <code>s</code> as if it were a literal pattern.
758
+ *
759
+ * Metacharacters or escape sequences in the input sequence will be given no special meaning.
760
+ *
761
+ * @param {string} str The string to be literalized
762
+ * @returns {string} A literal string replacement
763
+ */
764
+ static quote(str: string): string;
765
+ /**
766
+ * Quotes '\' and '$' in {@code str}, so that the returned string could be used in
767
+ * replacement methods as a literal replacement of {@code str}.
768
+ *
769
+ * This is a convenience delegation to {@link Matcher.quoteReplacement}.
770
+ *
771
+ * @param {string} str the string to be quoted
772
+ * @param {boolean} [javaMode=false] whether the replacement will be used in javaMode
773
+ * @returns {string} the quoted string
774
+ */
775
+ static quoteReplacement(str: string, javaMode?: boolean): string;
776
+ /**
777
+ * Translates a given regular expression string to ensure compatibility with RE2JS.
778
+ *
779
+ * This function preprocesses the input regex string by applying necessary transformations,
780
+ * such as escaping special characters (e.g., `/`), converting named capture groups to
781
+ * RE2JS-compatible syntax, and handling Unicode sequences properly. It ensures that the
782
+ * resulting regex is safe and properly formatted before compilation.
783
+ *
784
+ * @param {string|RegExp} expr - The regular expression string to be translated.
785
+ * @returns {string} - The transformed regular expression string, ready for compilation.
786
+ */
787
+ static translateRegExp(expr: string | RegExp): string;
788
+ /**
789
+ * Helper: create new RE2JS with given regex and flags. Flregex is the regex with flags applied.
790
+ * @param {string} regex
791
+ * @param {number} [flags=0]
792
+ * @returns {RE2JS}
793
+ */
794
+ static compile(regex: string, flags?: number): RE2JS;
795
+ /**
796
+ * Matches a string against a regular expression.
797
+ *
798
+ * @param {string} regex the regular expression
799
+ * @param {string|number[]|Uint8Array} input the input
800
+ * @returns {boolean} true if the regular expression matches the entire input
801
+ * @throws RE2JSSyntaxException if the regular expression is malformed
802
+ */
803
+ static matches(regex: string, input: string | number[] | Uint8Array): boolean;
804
+ /**
805
+ * This is visible for testing.
806
+ * @private
807
+ */
808
+ private static initTest;
809
+ /**
810
+ *
811
+ * @param {string} pattern
812
+ * @param {number} flags
813
+ */
814
+ constructor(pattern: string, flags: number);
815
+ patternInput: string;
816
+ flagsInput: number;
817
+ /** @type {import('./RE2.js').RE2} */
818
+ re2Input: RE2;
819
+ /**
820
+ * Releases memory used by internal caches associated with this pattern. Does not change the
821
+ * observable behaviour. Useful for tests that detect memory leaks via allocation tracking.
822
+ */
823
+ reset(): void;
824
+ /**
825
+ * Returns the flags used in the constructor.
826
+ * @returns {number}
827
+ */
828
+ flags(): number;
829
+ /**
830
+ * Returns the pattern used in the constructor.
831
+ * @returns {string}
832
+ */
833
+ pattern(): string;
834
+ re2(): RE2;
835
+ /**
836
+ * Matches a string against a regular expression.
837
+ *
838
+ * @param {string|number[]|Uint8Array} input the input
839
+ * @returns {boolean} true if the regular expression matches the entire input
840
+ */
841
+ matches(input: string | number[] | Uint8Array): boolean;
842
+ /**
843
+ * Creates a new {@code Matcher} matching the pattern against the input.
844
+ *
845
+ * @param {string|number[]|Uint8Array|MatcherInputBase} input the input string
846
+ * @returns {Matcher}
847
+ */
848
+ matcher(input: string | number[] | Uint8Array | MatcherInputBase): Matcher;
849
+ /**
850
+ * Tests whether the regular expression matches any part of the input string.
851
+ * Performance Note: This method is highly optimized. Because it only returns
852
+ * a boolean and does not extract capture groups, it bypasses the `Matcher` overhead
853
+ * and guarantees execution on the high-speed DFA engine whenever possible.
854
+ *
855
+ * @param {string|number[]|Uint8Array} input - The input string or UTF-8 byte array to test against.
856
+ * @returns {boolean} `true` if the pattern is found anywhere in the input, `false` otherwise.
857
+ */
858
+ test(input: string | number[] | Uint8Array): boolean;
859
+ /**
860
+ * Tests whether the regular expression matches the ENTIRE input string.
861
+ * * **Performance Note:** This operates identically to `.matches()`, but is significantly
862
+ * faster because it does not request capture group data. By requesting 0 capture groups,
863
+ * it securely routes execution through the DFA fast-path.
864
+ *
865
+ * @param {string|number[]|Uint8Array} input - The input string or UTF-8 byte array to test against.
866
+ * @returns {boolean} `true` if the exact input string fully matches the pattern, `false` otherwise.
867
+ */
868
+ testExact(input: string | number[] | Uint8Array): boolean;
869
+ /**
870
+ * Executes a search for a match in a specified string.
871
+ * Returns a result array, or null if no match is found.
872
+ * The returned array perfectly mirrors standard JavaScript `RegExpExecArray`,
873
+ * including `.index`, `.input`, and `.groups` properties.
874
+ *
875
+ * @param {string|number[]|Uint8Array} input the input string or byte array
876
+ * @returns {Array|null} the match array with index, input, and groups properties, or null
877
+ */
878
+ exec(input: string | number[] | Uint8Array): any[] | null;
879
+ /**
880
+ * Splits input around instances of the regular expression. It returns an array giving the strings
881
+ * that occur before, between, and after instances of the regular expression.
882
+ *
883
+ * If {@code limit <= 0}, there is no limit on the size of the returned array. If
884
+ * {@code limit == 0}, empty strings that would occur at the end of the array are omitted. If
885
+ * {@code limit > 0}, at most limit strings are returned. The final string contains the remainder
886
+ * of the input, possibly including additional matches of the pattern.
887
+ *
888
+ * @param {string} input the input string to be split
889
+ * @param {number} [limit=0] the limit
890
+ * @returns {string[]} the split strings
891
+ */
892
+ split(input: string, limit?: number): string[];
893
+ /**
894
+ * Returns an iterator of all results matching a string against the regular expression,
895
+ * including capturing groups.
896
+ *
897
+ * @param {string|number[]|Uint8Array} input the input string or byte array
898
+ * @returns {IterableIterator<RegExpMatchArray>}
899
+ */
900
+ matchAll(input: string | number[] | Uint8Array): IterableIterator<RegExpMatchArray>;
901
+ /**
902
+ *
903
+ * @returns {string}
904
+ */
905
+ toString(): string;
906
+ /**
907
+ * Returns the program size of this pattern.
908
+ *
909
+ * <p>
910
+ * Similar to the C++ implementation, the program size is a very approximate measure of a regexp's
911
+ * "cost". Larger numbers are more expensive than smaller numbers.
912
+ * </p>
913
+ *
914
+ * @returns {number} the program size of this pattern
915
+ */
916
+ programSize(): number;
917
+ /**
918
+ * Returns the number of capturing groups in this matcher's pattern. Group zero denotes the entire
919
+ * pattern and is excluded from this count.
920
+ *
921
+ * @returns {number} the number of capturing groups in this pattern
922
+ */
923
+ groupCount(): number;
924
+ /**
925
+ * Return a map of the capturing groups in this matcher's pattern, where key is the name and value
926
+ * is the index of the group in the pattern.
927
+ * @returns {Record<string, number>}
928
+ */
929
+ namedGroups(): Record<string, number>;
930
+ /**
931
+ *
932
+ * @param {*} other
933
+ * @returns {boolean}
934
+ */
935
+ equals(other: any): boolean;
936
+ }
937
+
938
+ export {};