@vitos-pizza/vitos-pizza 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1049) hide show
  1. package/AGENTS.md +158 -0
  2. package/CHANGELOG.md +24 -0
  3. package/LICENSE +21 -0
  4. package/README.md +234 -0
  5. package/assets/logo.svg +28 -0
  6. package/node_modules/@vitos-pizza/agent-mode/extensions/index.ts +117 -0
  7. package/node_modules/@vitos-pizza/agent-mode/package.json +31 -0
  8. package/node_modules/@vitos-pizza/agent-mode/src/apply-mode.ts +60 -0
  9. package/node_modules/@vitos-pizza/agent-mode/src/mode-events.ts +102 -0
  10. package/node_modules/@vitos-pizza/agent-mode/src/modes.ts +43 -0
  11. package/node_modules/@vitos-pizza/agent-mode/src/plan-instructions.ts +44 -0
  12. package/node_modules/@vitos-pizza/agent-mode/tests/apply-mode.test.ts +36 -0
  13. package/node_modules/@vitos-pizza/agent-mode/tests/mode-events.test.ts +22 -0
  14. package/node_modules/@vitos-pizza/agent-mode/tests/modes.test.ts +38 -0
  15. package/node_modules/@vitos-pizza/agent-mode/tests/plan-instructions.test.ts +45 -0
  16. package/node_modules/@vitos-pizza/agent-mode/tsconfig.json +13 -0
  17. package/node_modules/@vitos-pizza/agent-mode/vitest.config.ts +8 -0
  18. package/node_modules/@vitos-pizza/keybindings/extensions/index.ts +104 -0
  19. package/node_modules/@vitos-pizza/keybindings/package.json +26 -0
  20. package/node_modules/@vitos-pizza/keybindings/presets/shortcuts.json +3 -0
  21. package/node_modules/@vitos-pizza/keybindings/src/bind.ts +57 -0
  22. package/node_modules/@vitos-pizza/keybindings/src/config.ts +84 -0
  23. package/node_modules/@vitos-pizza/keybindings/src/registry.ts +43 -0
  24. package/node_modules/@vitos-pizza/keybindings/src/types.ts +54 -0
  25. package/node_modules/@vitos-pizza/keybindings/tests/config.test.ts +83 -0
  26. package/node_modules/@vitos-pizza/keybindings/tests/registry.test.ts +142 -0
  27. package/node_modules/@vitos-pizza/keybindings/tsconfig.json +13 -0
  28. package/node_modules/@vitos-pizza/keybindings/vitest.config.ts +8 -0
  29. package/node_modules/@vitos-pizza/permission-system/extensions/index.ts +162 -0
  30. package/node_modules/@vitos-pizza/permission-system/package.json +34 -0
  31. package/node_modules/@vitos-pizza/permission-system/presets/default.json +36 -0
  32. package/node_modules/@vitos-pizza/permission-system/presets/plan.json +25 -0
  33. package/node_modules/@vitos-pizza/permission-system/presets/yolo.json +15 -0
  34. package/node_modules/@vitos-pizza/permission-system/src/bash/matcher.ts +51 -0
  35. package/node_modules/@vitos-pizza/permission-system/src/bash/parser.ts +40 -0
  36. package/node_modules/@vitos-pizza/permission-system/src/config-paths.ts +23 -0
  37. package/node_modules/@vitos-pizza/permission-system/src/detect-preset-mode.ts +61 -0
  38. package/node_modules/@vitos-pizza/permission-system/src/expand-home.ts +12 -0
  39. package/node_modules/@vitos-pizza/permission-system/src/forwarding/forwarder.ts +224 -0
  40. package/node_modules/@vitos-pizza/permission-system/src/forwarding/subagent-registry.ts +61 -0
  41. package/node_modules/@vitos-pizza/permission-system/src/gates/path-utils.ts +66 -0
  42. package/node_modules/@vitos-pizza/permission-system/src/gates/pipeline.ts +155 -0
  43. package/node_modules/@vitos-pizza/permission-system/src/handlers/before-agent-start.ts +65 -0
  44. package/node_modules/@vitos-pizza/permission-system/src/handlers/skill-input.ts +1 -0
  45. package/node_modules/@vitos-pizza/permission-system/src/handlers/tool-call-gate.ts +199 -0
  46. package/node_modules/@vitos-pizza/permission-system/src/mode-api.ts +44 -0
  47. package/node_modules/@vitos-pizza/permission-system/src/permission-evaluator.ts +216 -0
  48. package/node_modules/@vitos-pizza/permission-system/src/permission-session.ts +62 -0
  49. package/node_modules/@vitos-pizza/permission-system/src/policy-loader.ts +211 -0
  50. package/node_modules/@vitos-pizza/permission-system/src/sanitizers/skill-prompt.ts +99 -0
  51. package/node_modules/@vitos-pizza/permission-system/src/sanitizers/system-prompt.ts +221 -0
  52. package/node_modules/@vitos-pizza/permission-system/src/service.ts +66 -0
  53. package/node_modules/@vitos-pizza/permission-system/src/session-approvals.ts +1 -0
  54. package/node_modules/@vitos-pizza/permission-system/src/types.ts +80 -0
  55. package/node_modules/@vitos-pizza/permission-system/src/ui/approval-summary.ts +43 -0
  56. package/node_modules/@vitos-pizza/permission-system/src/ui/config-modal.ts +36 -0
  57. package/node_modules/@vitos-pizza/permission-system/src/ui/permission-dialog.ts +52 -0
  58. package/node_modules/@vitos-pizza/permission-system/src/wildcard-matcher.ts +81 -0
  59. package/node_modules/@vitos-pizza/permission-system/src/yaml-frontmatter.ts +84 -0
  60. package/node_modules/@vitos-pizza/permission-system/src/yolo/runtime-api.ts +49 -0
  61. package/node_modules/@vitos-pizza/permission-system/tests/bash-parser.test.ts +32 -0
  62. package/node_modules/@vitos-pizza/permission-system/tests/detect-preset-mode.test.ts +68 -0
  63. package/node_modules/@vitos-pizza/permission-system/tests/forwarder.test.ts +55 -0
  64. package/node_modules/@vitos-pizza/permission-system/tests/gates.test.ts +61 -0
  65. package/node_modules/@vitos-pizza/permission-system/tests/path-utils.test.ts +68 -0
  66. package/node_modules/@vitos-pizza/permission-system/tests/permission-evaluator.test.ts +55 -0
  67. package/node_modules/@vitos-pizza/permission-system/tests/policy-loader.test.ts +25 -0
  68. package/node_modules/@vitos-pizza/permission-system/tests/system-prompt-sanitizer.test.ts +22 -0
  69. package/node_modules/@vitos-pizza/permission-system/tests/wildcard-matcher.test.ts +27 -0
  70. package/node_modules/@vitos-pizza/permission-system/tsconfig.json +13 -0
  71. package/node_modules/@vitos-pizza/permission-system/vitest.config.ts +8 -0
  72. package/node_modules/@vitos-pizza/question/extensions/index.ts +79 -0
  73. package/node_modules/@vitos-pizza/question/package.json +26 -0
  74. package/node_modules/@vitos-pizza/question/src/forwarding/channels.ts +6 -0
  75. package/node_modules/@vitos-pizza/question/src/forwarding/file-watcher.ts +106 -0
  76. package/node_modules/@vitos-pizza/question/src/forwarding/forwarder.ts +187 -0
  77. package/node_modules/@vitos-pizza/question/src/parent-session.ts +18 -0
  78. package/node_modules/@vitos-pizza/question/src/question-ui.ts +238 -0
  79. package/node_modules/@vitos-pizza/question/src/register-tool.ts +224 -0
  80. package/node_modules/@vitos-pizza/question/src/types.ts +41 -0
  81. package/node_modules/@vitos-pizza/question/tests/forwarder.test.ts +66 -0
  82. package/node_modules/@vitos-pizza/question/tests/parent-session.test.ts +29 -0
  83. package/node_modules/@vitos-pizza/question/tests/register-tool-render.test.ts +45 -0
  84. package/node_modules/@vitos-pizza/question/tsconfig.json +13 -0
  85. package/node_modules/@vitos-pizza/question/vitest.config.ts +8 -0
  86. package/node_modules/@vitos-pizza/session-title/extensions/index.ts +137 -0
  87. package/node_modules/@vitos-pizza/session-title/package.json +37 -0
  88. package/node_modules/@vitos-pizza/session-title/src/build-title-prompt.ts +16 -0
  89. package/node_modules/@vitos-pizza/session-title/src/extract-title-context.ts +55 -0
  90. package/node_modules/@vitos-pizza/session-title/src/fast-rules.ts +48 -0
  91. package/node_modules/@vitos-pizza/session-title/src/load-settings.ts +70 -0
  92. package/node_modules/@vitos-pizza/session-title/src/normalize-title.ts +20 -0
  93. package/node_modules/@vitos-pizza/session-title/src/parse-title-response.ts +6 -0
  94. package/node_modules/@vitos-pizza/session-title/src/resolve-title-model.ts +33 -0
  95. package/node_modules/@vitos-pizza/session-title/src/schedule-title-job.ts +53 -0
  96. package/node_modules/@vitos-pizza/session-title/src/should-schedule.ts +30 -0
  97. package/node_modules/@vitos-pizza/session-title/src/title-agent.ts +60 -0
  98. package/node_modules/@vitos-pizza/session-title/src/truncate-input.ts +10 -0
  99. package/node_modules/@vitos-pizza/session-title/src/types.ts +29 -0
  100. package/node_modules/@vitos-pizza/session-title/tests/build-title-prompt.test.ts +34 -0
  101. package/node_modules/@vitos-pizza/session-title/tests/extension.test.ts +198 -0
  102. package/node_modules/@vitos-pizza/session-title/tests/extract-title-context.test.ts +48 -0
  103. package/node_modules/@vitos-pizza/session-title/tests/fast-rules.test.ts +43 -0
  104. package/node_modules/@vitos-pizza/session-title/tests/parse-title-response.test.ts +34 -0
  105. package/node_modules/@vitos-pizza/session-title/tests/should-schedule.test.ts +30 -0
  106. package/node_modules/@vitos-pizza/session-title/tests/title-agent.test.ts +154 -0
  107. package/node_modules/@vitos-pizza/session-title/tests/truncate-input.test.ts +15 -0
  108. package/node_modules/@vitos-pizza/session-title/tsconfig.json +13 -0
  109. package/node_modules/@vitos-pizza/session-title/vitest.config.ts +8 -0
  110. package/node_modules/@vitos-pizza/subagents/agents/planner.md +43 -0
  111. package/node_modules/@vitos-pizza/subagents/agents/scout.md +40 -0
  112. package/node_modules/@vitos-pizza/subagents/agents/title.md +13 -0
  113. package/node_modules/@vitos-pizza/subagents/agents/worker.md +36 -0
  114. package/node_modules/@vitos-pizza/subagents/extensions/index.ts +164 -0
  115. package/node_modules/@vitos-pizza/subagents/package.json +34 -0
  116. package/node_modules/@vitos-pizza/subagents/skills/subagents/SKILL.md +80 -0
  117. package/node_modules/@vitos-pizza/subagents/src/agents.ts +166 -0
  118. package/node_modules/@vitos-pizza/subagents/src/async/job-tracker.ts +71 -0
  119. package/node_modules/@vitos-pizza/subagents/src/async/spawn-async.ts +220 -0
  120. package/node_modules/@vitos-pizza/subagents/src/async/storage.ts +57 -0
  121. package/node_modules/@vitos-pizza/subagents/src/env.ts +4 -0
  122. package/node_modules/@vitos-pizza/subagents/src/execute-subagent.ts +285 -0
  123. package/node_modules/@vitos-pizza/subagents/src/progress.ts +187 -0
  124. package/node_modules/@vitos-pizza/subagents/src/render-animation.ts +40 -0
  125. package/node_modules/@vitos-pizza/subagents/src/render.ts +428 -0
  126. package/node_modules/@vitos-pizza/subagents/src/rpc/channels.ts +21 -0
  127. package/node_modules/@vitos-pizza/subagents/src/rpc/client.ts +144 -0
  128. package/node_modules/@vitos-pizza/subagents/src/rpc/server.ts +11 -0
  129. package/node_modules/@vitos-pizza/subagents/src/run-agent.ts +313 -0
  130. package/node_modules/@vitos-pizza/subagents/src/runtime.ts +102 -0
  131. package/node_modules/@vitos-pizza/subagents/src/schema.ts +62 -0
  132. package/node_modules/@vitos-pizza/subagents/src/spawn.ts +104 -0
  133. package/node_modules/@vitos-pizza/subagents/src/types.ts +92 -0
  134. package/node_modules/@vitos-pizza/subagents/src/utils.ts +100 -0
  135. package/node_modules/@vitos-pizza/subagents/src/wait.ts +159 -0
  136. package/node_modules/@vitos-pizza/subagents/tests/agents.test.ts +19 -0
  137. package/node_modules/@vitos-pizza/subagents/tests/execute-subagent.test.ts +96 -0
  138. package/node_modules/@vitos-pizza/subagents/tests/extension.test.ts +42 -0
  139. package/node_modules/@vitos-pizza/subagents/tests/progress.test.ts +206 -0
  140. package/node_modules/@vitos-pizza/subagents/tests/rpc.test.ts +74 -0
  141. package/node_modules/@vitos-pizza/subagents/tsconfig.json +13 -0
  142. package/node_modules/@vitos-pizza/subagents/vitest.config.ts +8 -0
  143. package/node_modules/@vitos-pizza/ui-enhancements/extensions/index.ts +10 -0
  144. package/node_modules/@vitos-pizza/ui-enhancements/package.json +28 -0
  145. package/node_modules/@vitos-pizza/ui-enhancements/src/bash-readonly.ts +82 -0
  146. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/agent-mode-badge.ts +60 -0
  147. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/border-status.ts +180 -0
  148. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/format-border.ts +46 -0
  149. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/header-info.ts +66 -0
  150. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/recent-sessions.ts +132 -0
  151. package/node_modules/@vitos-pizza/ui-enhancements/src/chrome/welcome-header.ts +127 -0
  152. package/node_modules/@vitos-pizza/ui-enhancements/src/config.ts +75 -0
  153. package/node_modules/@vitos-pizza/ui-enhancements/src/register-ui-enhancements.ts +47 -0
  154. package/node_modules/@vitos-pizza/ui-enhancements/src/session.ts +72 -0
  155. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/bash-write-edit.ts +148 -0
  156. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/index.ts +22 -0
  157. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/read-find-grep-ls.ts +235 -0
  158. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/text-content.ts +42 -0
  159. package/node_modules/@vitos-pizza/ui-enhancements/src/tools/tool-cache.ts +87 -0
  160. package/node_modules/@vitos-pizza/ui-enhancements/src/utils/shorten-path.ts +9 -0
  161. package/node_modules/@vitos-pizza/ui-enhancements/tests/agent-mode-badge.test.ts +35 -0
  162. package/node_modules/@vitos-pizza/ui-enhancements/tests/bash-readonly.test.ts +43 -0
  163. package/node_modules/@vitos-pizza/ui-enhancements/tests/format-border.test.ts +36 -0
  164. package/node_modules/@vitos-pizza/ui-enhancements/tests/recent-sessions.test.ts +72 -0
  165. package/node_modules/@vitos-pizza/ui-enhancements/tsconfig.json +13 -0
  166. package/node_modules/@vitos-pizza/ui-enhancements/vitest.config.ts +8 -0
  167. package/node_modules/@vitos-pizza/websearch/extensions/index.ts +130 -0
  168. package/node_modules/@vitos-pizza/websearch/package.json +28 -0
  169. package/node_modules/@vitos-pizza/websearch/src/backends/brave.ts +35 -0
  170. package/node_modules/@vitos-pizza/websearch/src/backends/exa-mcp.ts +139 -0
  171. package/node_modules/@vitos-pizza/websearch/src/backends/firecrawl.ts +86 -0
  172. package/node_modules/@vitos-pizza/websearch/src/backends/registry.ts +98 -0
  173. package/node_modules/@vitos-pizza/websearch/src/backends/tavily.ts +32 -0
  174. package/node_modules/@vitos-pizza/websearch/src/config.ts +124 -0
  175. package/node_modules/@vitos-pizza/websearch/src/credentials.ts +35 -0
  176. package/node_modules/@vitos-pizza/websearch/src/dispatch.ts +57 -0
  177. package/node_modules/@vitos-pizza/websearch/src/formatters.ts +44 -0
  178. package/node_modules/@vitos-pizza/websearch/src/parsers.ts +75 -0
  179. package/node_modules/@vitos-pizza/websearch/src/readers/jina.ts +42 -0
  180. package/node_modules/@vitos-pizza/websearch/src/schema.ts +37 -0
  181. package/node_modules/@vitos-pizza/websearch/src/status.ts +103 -0
  182. package/node_modules/@vitos-pizza/websearch/src/types.ts +29 -0
  183. package/node_modules/@vitos-pizza/websearch/src/utils.ts +117 -0
  184. package/node_modules/@vitos-pizza/websearch/tests/backends.test.ts +103 -0
  185. package/node_modules/@vitos-pizza/websearch/tests/config.test.ts +71 -0
  186. package/node_modules/@vitos-pizza/websearch/tests/dispatch.test.ts +69 -0
  187. package/node_modules/@vitos-pizza/websearch/tsconfig.json +13 -0
  188. package/node_modules/@vitos-pizza/websearch/vitest.config.ts +8 -0
  189. package/node_modules/node-addon-api/LICENSE.md +9 -0
  190. package/node_modules/node-addon-api/README.md +95 -0
  191. package/node_modules/node-addon-api/common.gypi +21 -0
  192. package/node_modules/node-addon-api/except.gypi +25 -0
  193. package/node_modules/node-addon-api/index.js +14 -0
  194. package/node_modules/node-addon-api/napi-inl.deprecated.h +186 -0
  195. package/node_modules/node-addon-api/napi-inl.h +7211 -0
  196. package/node_modules/node-addon-api/napi.h +3420 -0
  197. package/node_modules/node-addon-api/node_addon_api.gyp +42 -0
  198. package/node_modules/node-addon-api/node_api.gyp +9 -0
  199. package/node_modules/node-addon-api/noexcept.gypi +26 -0
  200. package/node_modules/node-addon-api/nothing.c +0 -0
  201. package/node_modules/node-addon-api/package-support.json +21 -0
  202. package/node_modules/node-addon-api/package.json +480 -0
  203. package/node_modules/node-addon-api/tools/README.md +73 -0
  204. package/node_modules/node-addon-api/tools/check-napi.js +99 -0
  205. package/node_modules/node-addon-api/tools/clang-format.js +71 -0
  206. package/node_modules/node-addon-api/tools/conversion.js +301 -0
  207. package/node_modules/node-gyp-build/LICENSE +21 -0
  208. package/node_modules/node-gyp-build/README.md +58 -0
  209. package/node_modules/node-gyp-build/SECURITY.md +5 -0
  210. package/node_modules/node-gyp-build/bin.js +84 -0
  211. package/node_modules/node-gyp-build/build-test.js +19 -0
  212. package/node_modules/node-gyp-build/index.js +6 -0
  213. package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  214. package/node_modules/node-gyp-build/optional.js +7 -0
  215. package/node_modules/node-gyp-build/package.json +43 -0
  216. package/node_modules/tree-sitter-bash/LICENSE +21 -0
  217. package/node_modules/tree-sitter-bash/README.md +44 -0
  218. package/node_modules/tree-sitter-bash/binding.gyp +30 -0
  219. package/node_modules/tree-sitter-bash/bindings/node/binding.cc +20 -0
  220. package/node_modules/tree-sitter-bash/bindings/node/binding_test.js +9 -0
  221. package/node_modules/tree-sitter-bash/bindings/node/index.d.ts +28 -0
  222. package/node_modules/tree-sitter-bash/bindings/node/index.js +11 -0
  223. package/node_modules/tree-sitter-bash/grammar.js +1201 -0
  224. package/node_modules/tree-sitter-bash/package.json +60 -0
  225. package/node_modules/tree-sitter-bash/prebuilds/darwin-arm64/tree-sitter-bash.node +0 -0
  226. package/node_modules/tree-sitter-bash/prebuilds/darwin-x64/tree-sitter-bash.node +0 -0
  227. package/node_modules/tree-sitter-bash/prebuilds/linux-arm64/tree-sitter-bash.node +0 -0
  228. package/node_modules/tree-sitter-bash/prebuilds/linux-x64/tree-sitter-bash.node +0 -0
  229. package/node_modules/tree-sitter-bash/prebuilds/win32-arm64/tree-sitter-bash.node +0 -0
  230. package/node_modules/tree-sitter-bash/prebuilds/win32-x64/tree-sitter-bash.node +0 -0
  231. package/node_modules/tree-sitter-bash/queries/highlights.scm +56 -0
  232. package/node_modules/tree-sitter-bash/src/grammar.json +7145 -0
  233. package/node_modules/tree-sitter-bash/src/node-types.json +2894 -0
  234. package/node_modules/tree-sitter-bash/src/parser.c +350631 -0
  235. package/node_modules/tree-sitter-bash/src/scanner.c +1217 -0
  236. package/node_modules/tree-sitter-bash/src/tree_sitter/alloc.h +54 -0
  237. package/node_modules/tree-sitter-bash/src/tree_sitter/array.h +291 -0
  238. package/node_modules/tree-sitter-bash/src/tree_sitter/parser.h +286 -0
  239. package/node_modules/tree-sitter-bash/tree-sitter-bash.wasm +0 -0
  240. package/node_modules/tree-sitter-bash/tree-sitter.json +46 -0
  241. package/package.json +90 -0
  242. package/packages/agent-mode/extensions/index.ts +117 -0
  243. package/packages/agent-mode/package.json +31 -0
  244. package/packages/agent-mode/src/apply-mode.ts +60 -0
  245. package/packages/agent-mode/src/mode-events.ts +102 -0
  246. package/packages/agent-mode/src/modes.ts +43 -0
  247. package/packages/agent-mode/src/plan-instructions.ts +44 -0
  248. package/packages/agent-mode/tsconfig.json +13 -0
  249. package/packages/agent-mode/vitest.config.ts +8 -0
  250. package/packages/keybindings/extensions/index.ts +104 -0
  251. package/packages/keybindings/package.json +26 -0
  252. package/packages/keybindings/presets/shortcuts.json +3 -0
  253. package/packages/keybindings/src/bind.ts +57 -0
  254. package/packages/keybindings/src/config.ts +84 -0
  255. package/packages/keybindings/src/registry.ts +43 -0
  256. package/packages/keybindings/src/types.ts +54 -0
  257. package/packages/keybindings/tsconfig.json +13 -0
  258. package/packages/keybindings/vitest.config.ts +8 -0
  259. package/packages/permission-system/extensions/index.ts +162 -0
  260. package/packages/permission-system/node_modules/web-tree-sitter/LICENSE +21 -0
  261. package/packages/permission-system/node_modules/web-tree-sitter/README.md +269 -0
  262. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.cjs +4558 -0
  263. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.cjs.map +7 -0
  264. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.js +4516 -0
  265. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.js.map +7 -0
  266. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.wasm +0 -0
  267. package/packages/permission-system/node_modules/web-tree-sitter/debug/tree-sitter.wasm.map +31 -0
  268. package/packages/permission-system/node_modules/web-tree-sitter/lib/alloc.c +48 -0
  269. package/packages/permission-system/node_modules/web-tree-sitter/lib/alloc.h +41 -0
  270. package/packages/permission-system/node_modules/web-tree-sitter/lib/array.h +291 -0
  271. package/packages/permission-system/node_modules/web-tree-sitter/lib/atomic.h +68 -0
  272. package/packages/permission-system/node_modules/web-tree-sitter/lib/clock.h +146 -0
  273. package/packages/permission-system/node_modules/web-tree-sitter/lib/error_costs.h +11 -0
  274. package/packages/permission-system/node_modules/web-tree-sitter/lib/get_changed_ranges.c +523 -0
  275. package/packages/permission-system/node_modules/web-tree-sitter/lib/get_changed_ranges.h +36 -0
  276. package/packages/permission-system/node_modules/web-tree-sitter/lib/host.h +21 -0
  277. package/packages/permission-system/node_modules/web-tree-sitter/lib/language.c +293 -0
  278. package/packages/permission-system/node_modules/web-tree-sitter/lib/language.h +293 -0
  279. package/packages/permission-system/node_modules/web-tree-sitter/lib/length.h +52 -0
  280. package/packages/permission-system/node_modules/web-tree-sitter/lib/lexer.c +483 -0
  281. package/packages/permission-system/node_modules/web-tree-sitter/lib/lexer.h +54 -0
  282. package/packages/permission-system/node_modules/web-tree-sitter/lib/lib.c +12 -0
  283. package/packages/permission-system/node_modules/web-tree-sitter/lib/node.c +875 -0
  284. package/packages/permission-system/node_modules/web-tree-sitter/lib/parser.c +2297 -0
  285. package/packages/permission-system/node_modules/web-tree-sitter/lib/parser.h +286 -0
  286. package/packages/permission-system/node_modules/web-tree-sitter/lib/point.h +48 -0
  287. package/packages/permission-system/node_modules/web-tree-sitter/lib/query.c +4347 -0
  288. package/packages/permission-system/node_modules/web-tree-sitter/lib/reduce_action.h +34 -0
  289. package/packages/permission-system/node_modules/web-tree-sitter/lib/reusable_node.h +95 -0
  290. package/packages/permission-system/node_modules/web-tree-sitter/lib/stack.c +912 -0
  291. package/packages/permission-system/node_modules/web-tree-sitter/lib/stack.h +133 -0
  292. package/packages/permission-system/node_modules/web-tree-sitter/lib/subtree.c +1034 -0
  293. package/packages/permission-system/node_modules/web-tree-sitter/lib/subtree.h +399 -0
  294. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree-sitter.c +987 -0
  295. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree-sitter.cjs +2988 -0
  296. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree-sitter.wasm +0 -0
  297. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree-sitter.wasm.map +1 -0
  298. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree.c +170 -0
  299. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree.h +31 -0
  300. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree_cursor.c +716 -0
  301. package/packages/permission-system/node_modules/web-tree-sitter/lib/tree_cursor.h +48 -0
  302. package/packages/permission-system/node_modules/web-tree-sitter/lib/ts_assert.h +11 -0
  303. package/packages/permission-system/node_modules/web-tree-sitter/lib/unicode.h +75 -0
  304. package/packages/permission-system/node_modules/web-tree-sitter/lib/wasm_store.c +1937 -0
  305. package/packages/permission-system/node_modules/web-tree-sitter/lib/wasm_store.h +31 -0
  306. package/packages/permission-system/node_modules/web-tree-sitter/package.json +98 -0
  307. package/packages/permission-system/node_modules/web-tree-sitter/src/bindings.ts +26 -0
  308. package/packages/permission-system/node_modules/web-tree-sitter/src/constants.ts +133 -0
  309. package/packages/permission-system/node_modules/web-tree-sitter/src/index.ts +31 -0
  310. package/packages/permission-system/node_modules/web-tree-sitter/src/language.ts +291 -0
  311. package/packages/permission-system/node_modules/web-tree-sitter/src/lookahead_iterator.ts +75 -0
  312. package/packages/permission-system/node_modules/web-tree-sitter/src/marshal.ts +176 -0
  313. package/packages/permission-system/node_modules/web-tree-sitter/src/node.ts +646 -0
  314. package/packages/permission-system/node_modules/web-tree-sitter/src/parser.ts +325 -0
  315. package/packages/permission-system/node_modules/web-tree-sitter/src/query.ts +973 -0
  316. package/packages/permission-system/node_modules/web-tree-sitter/src/tree.ts +145 -0
  317. package/packages/permission-system/node_modules/web-tree-sitter/src/tree_cursor.ts +318 -0
  318. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.cjs +4031 -0
  319. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.cjs.map +7 -0
  320. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.js +3980 -0
  321. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.js.map +7 -0
  322. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.wasm +0 -0
  323. package/packages/permission-system/node_modules/web-tree-sitter/tree-sitter.wasm.map +30 -0
  324. package/packages/permission-system/node_modules/web-tree-sitter/web-tree-sitter.d.ts +1030 -0
  325. package/packages/permission-system/node_modules/web-tree-sitter/web-tree-sitter.d.ts.map +56 -0
  326. package/packages/permission-system/node_modules/zod/LICENSE +21 -0
  327. package/packages/permission-system/node_modules/zod/README.md +208 -0
  328. package/packages/permission-system/node_modules/zod/index.cjs +33 -0
  329. package/packages/permission-system/node_modules/zod/index.d.cts +4 -0
  330. package/packages/permission-system/node_modules/zod/index.d.ts +4 -0
  331. package/packages/permission-system/node_modules/zod/index.js +4 -0
  332. package/packages/permission-system/node_modules/zod/package.json +118 -0
  333. package/packages/permission-system/node_modules/zod/src/index.ts +4 -0
  334. package/packages/permission-system/node_modules/zod/src/v3/ZodError.ts +330 -0
  335. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  336. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  337. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  338. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  339. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  340. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  341. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  342. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  343. package/packages/permission-system/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  344. package/packages/permission-system/node_modules/zod/src/v3/errors.ts +13 -0
  345. package/packages/permission-system/node_modules/zod/src/v3/external.ts +6 -0
  346. package/packages/permission-system/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  347. package/packages/permission-system/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  348. package/packages/permission-system/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  349. package/packages/permission-system/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  350. package/packages/permission-system/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  351. package/packages/permission-system/node_modules/zod/src/v3/helpers/util.ts +224 -0
  352. package/packages/permission-system/node_modules/zod/src/v3/index.ts +4 -0
  353. package/packages/permission-system/node_modules/zod/src/v3/locales/en.ts +124 -0
  354. package/packages/permission-system/node_modules/zod/src/v3/standard-schema.ts +113 -0
  355. package/packages/permission-system/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  356. package/packages/permission-system/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  357. package/packages/permission-system/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  358. package/packages/permission-system/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  359. package/packages/permission-system/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  360. package/packages/permission-system/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  361. package/packages/permission-system/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  362. package/packages/permission-system/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  363. package/packages/permission-system/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  364. package/packages/permission-system/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  365. package/packages/permission-system/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  366. package/packages/permission-system/node_modules/zod/src/v3/tests/complex.test.ts +56 -0
  367. package/packages/permission-system/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  368. package/packages/permission-system/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  369. package/packages/permission-system/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  370. package/packages/permission-system/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  371. package/packages/permission-system/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  372. package/packages/permission-system/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  373. package/packages/permission-system/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  374. package/packages/permission-system/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  375. package/packages/permission-system/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  376. package/packages/permission-system/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  377. package/packages/permission-system/node_modules/zod/src/v3/tests/function.test.ts +257 -0
  378. package/packages/permission-system/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  379. package/packages/permission-system/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  380. package/packages/permission-system/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  381. package/packages/permission-system/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  382. package/packages/permission-system/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  383. package/packages/permission-system/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  384. package/packages/permission-system/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  385. package/packages/permission-system/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  386. package/packages/permission-system/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  387. package/packages/permission-system/node_modules/zod/src/v3/tests/nan.test.ts +21 -0
  388. package/packages/permission-system/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  389. package/packages/permission-system/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  390. package/packages/permission-system/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  391. package/packages/permission-system/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  392. package/packages/permission-system/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  393. package/packages/permission-system/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  394. package/packages/permission-system/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  395. package/packages/permission-system/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  396. package/packages/permission-system/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  397. package/packages/permission-system/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  398. package/packages/permission-system/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  399. package/packages/permission-system/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  400. package/packages/permission-system/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  401. package/packages/permission-system/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  402. package/packages/permission-system/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  403. package/packages/permission-system/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  404. package/packages/permission-system/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  405. package/packages/permission-system/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  406. package/packages/permission-system/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  407. package/packages/permission-system/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  408. package/packages/permission-system/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  409. package/packages/permission-system/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  410. package/packages/permission-system/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  411. package/packages/permission-system/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  412. package/packages/permission-system/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  413. package/packages/permission-system/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  414. package/packages/permission-system/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  415. package/packages/permission-system/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  416. package/packages/permission-system/node_modules/zod/src/v3/types.ts +5136 -0
  417. package/packages/permission-system/node_modules/zod/src/v4/classic/checks.ts +30 -0
  418. package/packages/permission-system/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  419. package/packages/permission-system/node_modules/zod/src/v4/classic/compat.ts +66 -0
  420. package/packages/permission-system/node_modules/zod/src/v4/classic/errors.ts +75 -0
  421. package/packages/permission-system/node_modules/zod/src/v4/classic/external.ts +50 -0
  422. package/packages/permission-system/node_modules/zod/src/v4/classic/index.ts +5 -0
  423. package/packages/permission-system/node_modules/zod/src/v4/classic/iso.ts +90 -0
  424. package/packages/permission-system/node_modules/zod/src/v4/classic/parse.ts +33 -0
  425. package/packages/permission-system/node_modules/zod/src/v4/classic/schemas.ts +2054 -0
  426. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  427. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  428. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
  429. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  430. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  431. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  432. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  433. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/brand.test.ts +63 -0
  434. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/catch.test.ts +252 -0
  435. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  436. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  437. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/continuability.test.ts +352 -0
  438. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  439. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/date.test.ts +31 -0
  440. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/datetime.test.ts +296 -0
  441. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/default.test.ts +313 -0
  442. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  443. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
  444. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  445. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +527 -0
  446. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  447. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/file.test.ts +91 -0
  448. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +175 -0
  449. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/function.test.ts +268 -0
  450. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  451. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/index.test.ts +829 -0
  452. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +34 -0
  453. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/intersection.test.ts +171 -0
  454. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/json.test.ts +108 -0
  455. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  456. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/literal.test.ts +92 -0
  457. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/map.test.ts +196 -0
  458. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  459. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  460. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +86 -0
  461. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  462. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/number.test.ts +247 -0
  463. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/object.test.ts +563 -0
  464. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/optional.test.ts +123 -0
  465. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/partial.test.ts +147 -0
  466. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +127 -0
  467. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/pipe.test.ts +81 -0
  468. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/prefault.test.ts +37 -0
  469. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +298 -0
  470. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  471. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  472. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  473. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  474. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/record.test.ts +342 -0
  475. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +356 -0
  476. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/refine.test.ts +532 -0
  477. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/registries.test.ts +204 -0
  478. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/set.test.ts +179 -0
  479. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +57 -0
  480. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +109 -0
  481. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/string.test.ts +881 -0
  482. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +66 -0
  483. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +758 -0
  484. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
  485. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/transform.test.ts +250 -0
  486. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/tuple.test.ts +163 -0
  487. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/union.test.ts +94 -0
  488. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  489. package/packages/permission-system/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  490. package/packages/permission-system/node_modules/zod/src/v4/core/api.ts +1594 -0
  491. package/packages/permission-system/node_modules/zod/src/v4/core/checks.ts +1283 -0
  492. package/packages/permission-system/node_modules/zod/src/v4/core/config.ts +15 -0
  493. package/packages/permission-system/node_modules/zod/src/v4/core/core.ts +134 -0
  494. package/packages/permission-system/node_modules/zod/src/v4/core/doc.ts +44 -0
  495. package/packages/permission-system/node_modules/zod/src/v4/core/errors.ts +424 -0
  496. package/packages/permission-system/node_modules/zod/src/v4/core/function.ts +176 -0
  497. package/packages/permission-system/node_modules/zod/src/v4/core/index.ts +15 -0
  498. package/packages/permission-system/node_modules/zod/src/v4/core/json-schema.ts +143 -0
  499. package/packages/permission-system/node_modules/zod/src/v4/core/parse.ts +94 -0
  500. package/packages/permission-system/node_modules/zod/src/v4/core/regexes.ts +135 -0
  501. package/packages/permission-system/node_modules/zod/src/v4/core/registries.ts +96 -0
  502. package/packages/permission-system/node_modules/zod/src/v4/core/schemas.ts +3842 -0
  503. package/packages/permission-system/node_modules/zod/src/v4/core/standard-schema.ts +64 -0
  504. package/packages/permission-system/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  505. package/packages/permission-system/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  506. package/packages/permission-system/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  507. package/packages/permission-system/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  508. package/packages/permission-system/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  509. package/packages/permission-system/node_modules/zod/src/v4/core/to-json-schema.ts +977 -0
  510. package/packages/permission-system/node_modules/zod/src/v4/core/util.ts +775 -0
  511. package/packages/permission-system/node_modules/zod/src/v4/core/versions.ts +5 -0
  512. package/packages/permission-system/node_modules/zod/src/v4/core/zsf.ts +323 -0
  513. package/packages/permission-system/node_modules/zod/src/v4/index.ts +4 -0
  514. package/packages/permission-system/node_modules/zod/src/v4/locales/ar.ts +125 -0
  515. package/packages/permission-system/node_modules/zod/src/v4/locales/az.ts +121 -0
  516. package/packages/permission-system/node_modules/zod/src/v4/locales/be.ts +184 -0
  517. package/packages/permission-system/node_modules/zod/src/v4/locales/ca.ts +127 -0
  518. package/packages/permission-system/node_modules/zod/src/v4/locales/cs.ts +142 -0
  519. package/packages/permission-system/node_modules/zod/src/v4/locales/de.ts +124 -0
  520. package/packages/permission-system/node_modules/zod/src/v4/locales/en.ts +127 -0
  521. package/packages/permission-system/node_modules/zod/src/v4/locales/eo.ts +125 -0
  522. package/packages/permission-system/node_modules/zod/src/v4/locales/es.ts +125 -0
  523. package/packages/permission-system/node_modules/zod/src/v4/locales/fa.ts +134 -0
  524. package/packages/permission-system/node_modules/zod/src/v4/locales/fi.ts +131 -0
  525. package/packages/permission-system/node_modules/zod/src/v4/locales/fr-CA.ts +126 -0
  526. package/packages/permission-system/node_modules/zod/src/v4/locales/fr.ts +124 -0
  527. package/packages/permission-system/node_modules/zod/src/v4/locales/he.ts +125 -0
  528. package/packages/permission-system/node_modules/zod/src/v4/locales/hu.ts +126 -0
  529. package/packages/permission-system/node_modules/zod/src/v4/locales/id.ts +125 -0
  530. package/packages/permission-system/node_modules/zod/src/v4/locales/index.ts +39 -0
  531. package/packages/permission-system/node_modules/zod/src/v4/locales/it.ts +125 -0
  532. package/packages/permission-system/node_modules/zod/src/v4/locales/ja.ts +122 -0
  533. package/packages/permission-system/node_modules/zod/src/v4/locales/kh.ts +126 -0
  534. package/packages/permission-system/node_modules/zod/src/v4/locales/ko.ts +131 -0
  535. package/packages/permission-system/node_modules/zod/src/v4/locales/mk.ts +127 -0
  536. package/packages/permission-system/node_modules/zod/src/v4/locales/ms.ts +124 -0
  537. package/packages/permission-system/node_modules/zod/src/v4/locales/nl.ts +126 -0
  538. package/packages/permission-system/node_modules/zod/src/v4/locales/no.ts +124 -0
  539. package/packages/permission-system/node_modules/zod/src/v4/locales/ota.ts +125 -0
  540. package/packages/permission-system/node_modules/zod/src/v4/locales/pl.ts +126 -0
  541. package/packages/permission-system/node_modules/zod/src/v4/locales/ps.ts +133 -0
  542. package/packages/permission-system/node_modules/zod/src/v4/locales/pt.ts +123 -0
  543. package/packages/permission-system/node_modules/zod/src/v4/locales/ru.ts +184 -0
  544. package/packages/permission-system/node_modules/zod/src/v4/locales/sl.ts +126 -0
  545. package/packages/permission-system/node_modules/zod/src/v4/locales/sv.ts +127 -0
  546. package/packages/permission-system/node_modules/zod/src/v4/locales/ta.ts +125 -0
  547. package/packages/permission-system/node_modules/zod/src/v4/locales/th.ts +126 -0
  548. package/packages/permission-system/node_modules/zod/src/v4/locales/tr.ts +121 -0
  549. package/packages/permission-system/node_modules/zod/src/v4/locales/ua.ts +126 -0
  550. package/packages/permission-system/node_modules/zod/src/v4/locales/ur.ts +126 -0
  551. package/packages/permission-system/node_modules/zod/src/v4/locales/vi.ts +125 -0
  552. package/packages/permission-system/node_modules/zod/src/v4/locales/zh-CN.ts +123 -0
  553. package/packages/permission-system/node_modules/zod/src/v4/locales/zh-TW.ts +125 -0
  554. package/packages/permission-system/node_modules/zod/src/v4/mini/checks.ts +32 -0
  555. package/packages/permission-system/node_modules/zod/src/v4/mini/coerce.ts +22 -0
  556. package/packages/permission-system/node_modules/zod/src/v4/mini/external.ts +40 -0
  557. package/packages/permission-system/node_modules/zod/src/v4/mini/index.ts +3 -0
  558. package/packages/permission-system/node_modules/zod/src/v4/mini/iso.ts +62 -0
  559. package/packages/permission-system/node_modules/zod/src/v4/mini/parse.ts +1 -0
  560. package/packages/permission-system/node_modules/zod/src/v4/mini/schemas.ts +1579 -0
  561. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  562. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/brand.test.ts +51 -0
  563. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  564. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  565. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  566. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/functions.test.ts +43 -0
  567. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/index.test.ts +871 -0
  568. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  569. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/object.test.ts +185 -0
  570. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  571. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
  572. package/packages/permission-system/node_modules/zod/src/v4/mini/tests/string.test.ts +299 -0
  573. package/packages/permission-system/node_modules/zod/src/v4-mini/index.ts +1 -0
  574. package/packages/permission-system/node_modules/zod/v3/ZodError.cjs +138 -0
  575. package/packages/permission-system/node_modules/zod/v3/ZodError.d.cts +164 -0
  576. package/packages/permission-system/node_modules/zod/v3/ZodError.d.ts +164 -0
  577. package/packages/permission-system/node_modules/zod/v3/ZodError.js +133 -0
  578. package/packages/permission-system/node_modules/zod/v3/errors.cjs +17 -0
  579. package/packages/permission-system/node_modules/zod/v3/errors.d.cts +5 -0
  580. package/packages/permission-system/node_modules/zod/v3/errors.d.ts +5 -0
  581. package/packages/permission-system/node_modules/zod/v3/errors.js +9 -0
  582. package/packages/permission-system/node_modules/zod/v3/external.cjs +22 -0
  583. package/packages/permission-system/node_modules/zod/v3/external.d.cts +6 -0
  584. package/packages/permission-system/node_modules/zod/v3/external.d.ts +6 -0
  585. package/packages/permission-system/node_modules/zod/v3/external.js +6 -0
  586. package/packages/permission-system/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  587. package/packages/permission-system/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  588. package/packages/permission-system/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  589. package/packages/permission-system/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  590. package/packages/permission-system/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  591. package/packages/permission-system/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  592. package/packages/permission-system/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  593. package/packages/permission-system/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  594. package/packages/permission-system/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  595. package/packages/permission-system/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  596. package/packages/permission-system/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  597. package/packages/permission-system/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  598. package/packages/permission-system/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  599. package/packages/permission-system/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  600. package/packages/permission-system/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  601. package/packages/permission-system/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  602. package/packages/permission-system/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  603. package/packages/permission-system/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  604. package/packages/permission-system/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  605. package/packages/permission-system/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  606. package/packages/permission-system/node_modules/zod/v3/helpers/util.cjs +137 -0
  607. package/packages/permission-system/node_modules/zod/v3/helpers/util.d.cts +85 -0
  608. package/packages/permission-system/node_modules/zod/v3/helpers/util.d.ts +85 -0
  609. package/packages/permission-system/node_modules/zod/v3/helpers/util.js +133 -0
  610. package/packages/permission-system/node_modules/zod/v3/index.cjs +33 -0
  611. package/packages/permission-system/node_modules/zod/v3/index.d.cts +4 -0
  612. package/packages/permission-system/node_modules/zod/v3/index.d.ts +4 -0
  613. package/packages/permission-system/node_modules/zod/v3/index.js +4 -0
  614. package/packages/permission-system/node_modules/zod/v3/locales/en.cjs +111 -0
  615. package/packages/permission-system/node_modules/zod/v3/locales/en.d.cts +3 -0
  616. package/packages/permission-system/node_modules/zod/v3/locales/en.d.ts +3 -0
  617. package/packages/permission-system/node_modules/zod/v3/locales/en.js +109 -0
  618. package/packages/permission-system/node_modules/zod/v3/standard-schema.cjs +2 -0
  619. package/packages/permission-system/node_modules/zod/v3/standard-schema.d.cts +102 -0
  620. package/packages/permission-system/node_modules/zod/v3/standard-schema.d.ts +102 -0
  621. package/packages/permission-system/node_modules/zod/v3/standard-schema.js +1 -0
  622. package/packages/permission-system/node_modules/zod/v3/types.cjs +3775 -0
  623. package/packages/permission-system/node_modules/zod/v3/types.d.cts +1031 -0
  624. package/packages/permission-system/node_modules/zod/v3/types.d.ts +1031 -0
  625. package/packages/permission-system/node_modules/zod/v3/types.js +3693 -0
  626. package/packages/permission-system/node_modules/zod/v4/classic/checks.cjs +32 -0
  627. package/packages/permission-system/node_modules/zod/v4/classic/checks.d.cts +1 -0
  628. package/packages/permission-system/node_modules/zod/v4/classic/checks.d.ts +1 -0
  629. package/packages/permission-system/node_modules/zod/v4/classic/checks.js +1 -0
  630. package/packages/permission-system/node_modules/zod/v4/classic/coerce.cjs +47 -0
  631. package/packages/permission-system/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  632. package/packages/permission-system/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  633. package/packages/permission-system/node_modules/zod/v4/classic/coerce.js +17 -0
  634. package/packages/permission-system/node_modules/zod/v4/classic/compat.cjs +57 -0
  635. package/packages/permission-system/node_modules/zod/v4/classic/compat.d.cts +46 -0
  636. package/packages/permission-system/node_modules/zod/v4/classic/compat.d.ts +46 -0
  637. package/packages/permission-system/node_modules/zod/v4/classic/compat.js +27 -0
  638. package/packages/permission-system/node_modules/zod/v4/classic/errors.cjs +67 -0
  639. package/packages/permission-system/node_modules/zod/v4/classic/errors.d.cts +30 -0
  640. package/packages/permission-system/node_modules/zod/v4/classic/errors.d.ts +30 -0
  641. package/packages/permission-system/node_modules/zod/v4/classic/errors.js +41 -0
  642. package/packages/permission-system/node_modules/zod/v4/classic/external.cjs +70 -0
  643. package/packages/permission-system/node_modules/zod/v4/classic/external.d.cts +13 -0
  644. package/packages/permission-system/node_modules/zod/v4/classic/external.d.ts +13 -0
  645. package/packages/permission-system/node_modules/zod/v4/classic/external.js +18 -0
  646. package/packages/permission-system/node_modules/zod/v4/classic/index.cjs +33 -0
  647. package/packages/permission-system/node_modules/zod/v4/classic/index.d.cts +4 -0
  648. package/packages/permission-system/node_modules/zod/v4/classic/index.d.ts +4 -0
  649. package/packages/permission-system/node_modules/zod/v4/classic/index.js +4 -0
  650. package/packages/permission-system/node_modules/zod/v4/classic/iso.cjs +60 -0
  651. package/packages/permission-system/node_modules/zod/v4/classic/iso.d.cts +22 -0
  652. package/packages/permission-system/node_modules/zod/v4/classic/iso.d.ts +22 -0
  653. package/packages/permission-system/node_modules/zod/v4/classic/iso.js +30 -0
  654. package/packages/permission-system/node_modules/zod/v4/classic/parse.cjs +32 -0
  655. package/packages/permission-system/node_modules/zod/v4/classic/parse.d.cts +23 -0
  656. package/packages/permission-system/node_modules/zod/v4/classic/parse.d.ts +23 -0
  657. package/packages/permission-system/node_modules/zod/v4/classic/parse.js +6 -0
  658. package/packages/permission-system/node_modules/zod/v4/classic/schemas.cjs +1109 -0
  659. package/packages/permission-system/node_modules/zod/v4/classic/schemas.d.cts +630 -0
  660. package/packages/permission-system/node_modules/zod/v4/classic/schemas.d.ts +630 -0
  661. package/packages/permission-system/node_modules/zod/v4/classic/schemas.js +1006 -0
  662. package/packages/permission-system/node_modules/zod/v4/core/api.cjs +1039 -0
  663. package/packages/permission-system/node_modules/zod/v4/core/api.d.cts +284 -0
  664. package/packages/permission-system/node_modules/zod/v4/core/api.d.ts +284 -0
  665. package/packages/permission-system/node_modules/zod/v4/core/api.js +906 -0
  666. package/packages/permission-system/node_modules/zod/v4/core/checks.cjs +591 -0
  667. package/packages/permission-system/node_modules/zod/v4/core/checks.d.cts +278 -0
  668. package/packages/permission-system/node_modules/zod/v4/core/checks.d.ts +278 -0
  669. package/packages/permission-system/node_modules/zod/v4/core/checks.js +565 -0
  670. package/packages/permission-system/node_modules/zod/v4/core/core.cjs +67 -0
  671. package/packages/permission-system/node_modules/zod/v4/core/core.d.cts +49 -0
  672. package/packages/permission-system/node_modules/zod/v4/core/core.d.ts +49 -0
  673. package/packages/permission-system/node_modules/zod/v4/core/core.js +61 -0
  674. package/packages/permission-system/node_modules/zod/v4/core/doc.cjs +39 -0
  675. package/packages/permission-system/node_modules/zod/v4/core/doc.d.cts +14 -0
  676. package/packages/permission-system/node_modules/zod/v4/core/doc.d.ts +14 -0
  677. package/packages/permission-system/node_modules/zod/v4/core/doc.js +35 -0
  678. package/packages/permission-system/node_modules/zod/v4/core/errors.cjs +226 -0
  679. package/packages/permission-system/node_modules/zod/v4/core/errors.d.cts +208 -0
  680. package/packages/permission-system/node_modules/zod/v4/core/errors.d.ts +208 -0
  681. package/packages/permission-system/node_modules/zod/v4/core/errors.js +195 -0
  682. package/packages/permission-system/node_modules/zod/v4/core/function.cjs +102 -0
  683. package/packages/permission-system/node_modules/zod/v4/core/function.d.cts +52 -0
  684. package/packages/permission-system/node_modules/zod/v4/core/function.d.ts +52 -0
  685. package/packages/permission-system/node_modules/zod/v4/core/function.js +75 -0
  686. package/packages/permission-system/node_modules/zod/v4/core/index.cjs +44 -0
  687. package/packages/permission-system/node_modules/zod/v4/core/index.d.cts +15 -0
  688. package/packages/permission-system/node_modules/zod/v4/core/index.d.ts +15 -0
  689. package/packages/permission-system/node_modules/zod/v4/core/index.js +15 -0
  690. package/packages/permission-system/node_modules/zod/v4/core/json-schema.cjs +2 -0
  691. package/packages/permission-system/node_modules/zod/v4/core/json-schema.d.cts +87 -0
  692. package/packages/permission-system/node_modules/zod/v4/core/json-schema.d.ts +87 -0
  693. package/packages/permission-system/node_modules/zod/v4/core/json-schema.js +1 -0
  694. package/packages/permission-system/node_modules/zod/v4/core/parse.cjs +87 -0
  695. package/packages/permission-system/node_modules/zod/v4/core/parse.d.cts +25 -0
  696. package/packages/permission-system/node_modules/zod/v4/core/parse.d.ts +25 -0
  697. package/packages/permission-system/node_modules/zod/v4/core/parse.js +57 -0
  698. package/packages/permission-system/node_modules/zod/v4/core/regexes.cjs +103 -0
  699. package/packages/permission-system/node_modules/zod/v4/core/regexes.d.cts +62 -0
  700. package/packages/permission-system/node_modules/zod/v4/core/regexes.d.ts +62 -0
  701. package/packages/permission-system/node_modules/zod/v4/core/regexes.js +95 -0
  702. package/packages/permission-system/node_modules/zod/v4/core/registries.cjs +56 -0
  703. package/packages/permission-system/node_modules/zod/v4/core/registries.d.cts +35 -0
  704. package/packages/permission-system/node_modules/zod/v4/core/registries.d.ts +35 -0
  705. package/packages/permission-system/node_modules/zod/v4/core/registries.js +51 -0
  706. package/packages/permission-system/node_modules/zod/v4/core/schemas.cjs +1748 -0
  707. package/packages/permission-system/node_modules/zod/v4/core/schemas.d.cts +1041 -0
  708. package/packages/permission-system/node_modules/zod/v4/core/schemas.d.ts +1041 -0
  709. package/packages/permission-system/node_modules/zod/v4/core/schemas.js +1717 -0
  710. package/packages/permission-system/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  711. package/packages/permission-system/node_modules/zod/v4/core/standard-schema.d.cts +55 -0
  712. package/packages/permission-system/node_modules/zod/v4/core/standard-schema.d.ts +55 -0
  713. package/packages/permission-system/node_modules/zod/v4/core/standard-schema.js +1 -0
  714. package/packages/permission-system/node_modules/zod/v4/core/to-json-schema.cjs +854 -0
  715. package/packages/permission-system/node_modules/zod/v4/core/to-json-schema.d.cts +88 -0
  716. package/packages/permission-system/node_modules/zod/v4/core/to-json-schema.d.ts +88 -0
  717. package/packages/permission-system/node_modules/zod/v4/core/to-json-schema.js +849 -0
  718. package/packages/permission-system/node_modules/zod/v4/core/util.cjs +539 -0
  719. package/packages/permission-system/node_modules/zod/v4/core/util.d.cts +183 -0
  720. package/packages/permission-system/node_modules/zod/v4/core/util.d.ts +183 -0
  721. package/packages/permission-system/node_modules/zod/v4/core/util.js +493 -0
  722. package/packages/permission-system/node_modules/zod/v4/core/versions.cjs +8 -0
  723. package/packages/permission-system/node_modules/zod/v4/core/versions.d.cts +5 -0
  724. package/packages/permission-system/node_modules/zod/v4/core/versions.d.ts +5 -0
  725. package/packages/permission-system/node_modules/zod/v4/core/versions.js +5 -0
  726. package/packages/permission-system/node_modules/zod/v4/index.cjs +22 -0
  727. package/packages/permission-system/node_modules/zod/v4/index.d.cts +3 -0
  728. package/packages/permission-system/node_modules/zod/v4/index.d.ts +3 -0
  729. package/packages/permission-system/node_modules/zod/v4/index.js +3 -0
  730. package/packages/permission-system/node_modules/zod/v4/locales/ar.cjs +142 -0
  731. package/packages/permission-system/node_modules/zod/v4/locales/ar.d.cts +4 -0
  732. package/packages/permission-system/node_modules/zod/v4/locales/ar.d.ts +4 -0
  733. package/packages/permission-system/node_modules/zod/v4/locales/ar.js +116 -0
  734. package/packages/permission-system/node_modules/zod/v4/locales/az.cjs +141 -0
  735. package/packages/permission-system/node_modules/zod/v4/locales/az.d.cts +4 -0
  736. package/packages/permission-system/node_modules/zod/v4/locales/az.d.ts +4 -0
  737. package/packages/permission-system/node_modules/zod/v4/locales/az.js +115 -0
  738. package/packages/permission-system/node_modules/zod/v4/locales/be.cjs +190 -0
  739. package/packages/permission-system/node_modules/zod/v4/locales/be.d.cts +4 -0
  740. package/packages/permission-system/node_modules/zod/v4/locales/be.d.ts +4 -0
  741. package/packages/permission-system/node_modules/zod/v4/locales/be.js +164 -0
  742. package/packages/permission-system/node_modules/zod/v4/locales/ca.cjs +144 -0
  743. package/packages/permission-system/node_modules/zod/v4/locales/ca.d.cts +4 -0
  744. package/packages/permission-system/node_modules/zod/v4/locales/ca.d.ts +4 -0
  745. package/packages/permission-system/node_modules/zod/v4/locales/ca.js +118 -0
  746. package/packages/permission-system/node_modules/zod/v4/locales/cs.cjs +161 -0
  747. package/packages/permission-system/node_modules/zod/v4/locales/cs.d.cts +4 -0
  748. package/packages/permission-system/node_modules/zod/v4/locales/cs.d.ts +4 -0
  749. package/packages/permission-system/node_modules/zod/v4/locales/cs.js +135 -0
  750. package/packages/permission-system/node_modules/zod/v4/locales/de.cjs +142 -0
  751. package/packages/permission-system/node_modules/zod/v4/locales/de.d.cts +4 -0
  752. package/packages/permission-system/node_modules/zod/v4/locales/de.d.ts +4 -0
  753. package/packages/permission-system/node_modules/zod/v4/locales/de.js +116 -0
  754. package/packages/permission-system/node_modules/zod/v4/locales/en.cjs +145 -0
  755. package/packages/permission-system/node_modules/zod/v4/locales/en.d.cts +5 -0
  756. package/packages/permission-system/node_modules/zod/v4/locales/en.d.ts +5 -0
  757. package/packages/permission-system/node_modules/zod/v4/locales/en.js +117 -0
  758. package/packages/permission-system/node_modules/zod/v4/locales/eo.cjs +144 -0
  759. package/packages/permission-system/node_modules/zod/v4/locales/eo.d.cts +5 -0
  760. package/packages/permission-system/node_modules/zod/v4/locales/eo.d.ts +5 -0
  761. package/packages/permission-system/node_modules/zod/v4/locales/eo.js +116 -0
  762. package/packages/permission-system/node_modules/zod/v4/locales/es.cjs +143 -0
  763. package/packages/permission-system/node_modules/zod/v4/locales/es.d.cts +4 -0
  764. package/packages/permission-system/node_modules/zod/v4/locales/es.d.ts +4 -0
  765. package/packages/permission-system/node_modules/zod/v4/locales/es.js +117 -0
  766. package/packages/permission-system/node_modules/zod/v4/locales/fa.cjs +148 -0
  767. package/packages/permission-system/node_modules/zod/v4/locales/fa.d.cts +4 -0
  768. package/packages/permission-system/node_modules/zod/v4/locales/fa.d.ts +4 -0
  769. package/packages/permission-system/node_modules/zod/v4/locales/fa.js +122 -0
  770. package/packages/permission-system/node_modules/zod/v4/locales/fi.cjs +148 -0
  771. package/packages/permission-system/node_modules/zod/v4/locales/fi.d.cts +4 -0
  772. package/packages/permission-system/node_modules/zod/v4/locales/fi.d.ts +4 -0
  773. package/packages/permission-system/node_modules/zod/v4/locales/fi.js +122 -0
  774. package/packages/permission-system/node_modules/zod/v4/locales/fr-CA.cjs +143 -0
  775. package/packages/permission-system/node_modules/zod/v4/locales/fr-CA.d.cts +4 -0
  776. package/packages/permission-system/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  777. package/packages/permission-system/node_modules/zod/v4/locales/fr-CA.js +117 -0
  778. package/packages/permission-system/node_modules/zod/v4/locales/fr.cjs +142 -0
  779. package/packages/permission-system/node_modules/zod/v4/locales/fr.d.cts +4 -0
  780. package/packages/permission-system/node_modules/zod/v4/locales/fr.d.ts +4 -0
  781. package/packages/permission-system/node_modules/zod/v4/locales/fr.js +116 -0
  782. package/packages/permission-system/node_modules/zod/v4/locales/he.cjs +143 -0
  783. package/packages/permission-system/node_modules/zod/v4/locales/he.d.cts +4 -0
  784. package/packages/permission-system/node_modules/zod/v4/locales/he.d.ts +4 -0
  785. package/packages/permission-system/node_modules/zod/v4/locales/he.js +117 -0
  786. package/packages/permission-system/node_modules/zod/v4/locales/hu.cjs +143 -0
  787. package/packages/permission-system/node_modules/zod/v4/locales/hu.d.cts +4 -0
  788. package/packages/permission-system/node_modules/zod/v4/locales/hu.d.ts +4 -0
  789. package/packages/permission-system/node_modules/zod/v4/locales/hu.js +117 -0
  790. package/packages/permission-system/node_modules/zod/v4/locales/id.cjs +142 -0
  791. package/packages/permission-system/node_modules/zod/v4/locales/id.d.cts +4 -0
  792. package/packages/permission-system/node_modules/zod/v4/locales/id.d.ts +4 -0
  793. package/packages/permission-system/node_modules/zod/v4/locales/id.js +116 -0
  794. package/packages/permission-system/node_modules/zod/v4/locales/index.cjs +84 -0
  795. package/packages/permission-system/node_modules/zod/v4/locales/index.d.cts +39 -0
  796. package/packages/permission-system/node_modules/zod/v4/locales/index.d.ts +39 -0
  797. package/packages/permission-system/node_modules/zod/v4/locales/index.js +39 -0
  798. package/packages/permission-system/node_modules/zod/v4/locales/it.cjs +143 -0
  799. package/packages/permission-system/node_modules/zod/v4/locales/it.d.cts +4 -0
  800. package/packages/permission-system/node_modules/zod/v4/locales/it.d.ts +4 -0
  801. package/packages/permission-system/node_modules/zod/v4/locales/it.js +117 -0
  802. package/packages/permission-system/node_modules/zod/v4/locales/ja.cjs +141 -0
  803. package/packages/permission-system/node_modules/zod/v4/locales/ja.d.cts +4 -0
  804. package/packages/permission-system/node_modules/zod/v4/locales/ja.d.ts +4 -0
  805. package/packages/permission-system/node_modules/zod/v4/locales/ja.js +115 -0
  806. package/packages/permission-system/node_modules/zod/v4/locales/kh.cjs +143 -0
  807. package/packages/permission-system/node_modules/zod/v4/locales/kh.d.cts +4 -0
  808. package/packages/permission-system/node_modules/zod/v4/locales/kh.d.ts +4 -0
  809. package/packages/permission-system/node_modules/zod/v4/locales/kh.js +117 -0
  810. package/packages/permission-system/node_modules/zod/v4/locales/ko.cjs +147 -0
  811. package/packages/permission-system/node_modules/zod/v4/locales/ko.d.cts +4 -0
  812. package/packages/permission-system/node_modules/zod/v4/locales/ko.d.ts +4 -0
  813. package/packages/permission-system/node_modules/zod/v4/locales/ko.js +121 -0
  814. package/packages/permission-system/node_modules/zod/v4/locales/mk.cjs +144 -0
  815. package/packages/permission-system/node_modules/zod/v4/locales/mk.d.cts +4 -0
  816. package/packages/permission-system/node_modules/zod/v4/locales/mk.d.ts +4 -0
  817. package/packages/permission-system/node_modules/zod/v4/locales/mk.js +118 -0
  818. package/packages/permission-system/node_modules/zod/v4/locales/ms.cjs +142 -0
  819. package/packages/permission-system/node_modules/zod/v4/locales/ms.d.cts +4 -0
  820. package/packages/permission-system/node_modules/zod/v4/locales/ms.d.ts +4 -0
  821. package/packages/permission-system/node_modules/zod/v4/locales/ms.js +116 -0
  822. package/packages/permission-system/node_modules/zod/v4/locales/nl.cjs +143 -0
  823. package/packages/permission-system/node_modules/zod/v4/locales/nl.d.cts +4 -0
  824. package/packages/permission-system/node_modules/zod/v4/locales/nl.d.ts +4 -0
  825. package/packages/permission-system/node_modules/zod/v4/locales/nl.js +117 -0
  826. package/packages/permission-system/node_modules/zod/v4/locales/no.cjs +142 -0
  827. package/packages/permission-system/node_modules/zod/v4/locales/no.d.cts +4 -0
  828. package/packages/permission-system/node_modules/zod/v4/locales/no.d.ts +4 -0
  829. package/packages/permission-system/node_modules/zod/v4/locales/no.js +116 -0
  830. package/packages/permission-system/node_modules/zod/v4/locales/ota.cjs +143 -0
  831. package/packages/permission-system/node_modules/zod/v4/locales/ota.d.cts +4 -0
  832. package/packages/permission-system/node_modules/zod/v4/locales/ota.d.ts +4 -0
  833. package/packages/permission-system/node_modules/zod/v4/locales/ota.js +117 -0
  834. package/packages/permission-system/node_modules/zod/v4/locales/pl.cjs +143 -0
  835. package/packages/permission-system/node_modules/zod/v4/locales/pl.d.cts +4 -0
  836. package/packages/permission-system/node_modules/zod/v4/locales/pl.d.ts +4 -0
  837. package/packages/permission-system/node_modules/zod/v4/locales/pl.js +117 -0
  838. package/packages/permission-system/node_modules/zod/v4/locales/ps.cjs +148 -0
  839. package/packages/permission-system/node_modules/zod/v4/locales/ps.d.cts +4 -0
  840. package/packages/permission-system/node_modules/zod/v4/locales/ps.d.ts +4 -0
  841. package/packages/permission-system/node_modules/zod/v4/locales/ps.js +122 -0
  842. package/packages/permission-system/node_modules/zod/v4/locales/pt.cjs +142 -0
  843. package/packages/permission-system/node_modules/zod/v4/locales/pt.d.cts +4 -0
  844. package/packages/permission-system/node_modules/zod/v4/locales/pt.d.ts +4 -0
  845. package/packages/permission-system/node_modules/zod/v4/locales/pt.js +116 -0
  846. package/packages/permission-system/node_modules/zod/v4/locales/ru.cjs +190 -0
  847. package/packages/permission-system/node_modules/zod/v4/locales/ru.d.cts +4 -0
  848. package/packages/permission-system/node_modules/zod/v4/locales/ru.d.ts +4 -0
  849. package/packages/permission-system/node_modules/zod/v4/locales/ru.js +164 -0
  850. package/packages/permission-system/node_modules/zod/v4/locales/sl.cjs +143 -0
  851. package/packages/permission-system/node_modules/zod/v4/locales/sl.d.cts +4 -0
  852. package/packages/permission-system/node_modules/zod/v4/locales/sl.d.ts +4 -0
  853. package/packages/permission-system/node_modules/zod/v4/locales/sl.js +117 -0
  854. package/packages/permission-system/node_modules/zod/v4/locales/sv.cjs +144 -0
  855. package/packages/permission-system/node_modules/zod/v4/locales/sv.d.cts +4 -0
  856. package/packages/permission-system/node_modules/zod/v4/locales/sv.d.ts +4 -0
  857. package/packages/permission-system/node_modules/zod/v4/locales/sv.js +118 -0
  858. package/packages/permission-system/node_modules/zod/v4/locales/ta.cjs +143 -0
  859. package/packages/permission-system/node_modules/zod/v4/locales/ta.d.cts +4 -0
  860. package/packages/permission-system/node_modules/zod/v4/locales/ta.d.ts +4 -0
  861. package/packages/permission-system/node_modules/zod/v4/locales/ta.js +117 -0
  862. package/packages/permission-system/node_modules/zod/v4/locales/th.cjs +143 -0
  863. package/packages/permission-system/node_modules/zod/v4/locales/th.d.cts +4 -0
  864. package/packages/permission-system/node_modules/zod/v4/locales/th.d.ts +4 -0
  865. package/packages/permission-system/node_modules/zod/v4/locales/th.js +117 -0
  866. package/packages/permission-system/node_modules/zod/v4/locales/tr.cjs +143 -0
  867. package/packages/permission-system/node_modules/zod/v4/locales/tr.d.cts +5 -0
  868. package/packages/permission-system/node_modules/zod/v4/locales/tr.d.ts +5 -0
  869. package/packages/permission-system/node_modules/zod/v4/locales/tr.js +115 -0
  870. package/packages/permission-system/node_modules/zod/v4/locales/ua.cjs +143 -0
  871. package/packages/permission-system/node_modules/zod/v4/locales/ua.d.cts +4 -0
  872. package/packages/permission-system/node_modules/zod/v4/locales/ua.d.ts +4 -0
  873. package/packages/permission-system/node_modules/zod/v4/locales/ua.js +117 -0
  874. package/packages/permission-system/node_modules/zod/v4/locales/ur.cjs +143 -0
  875. package/packages/permission-system/node_modules/zod/v4/locales/ur.d.cts +4 -0
  876. package/packages/permission-system/node_modules/zod/v4/locales/ur.d.ts +4 -0
  877. package/packages/permission-system/node_modules/zod/v4/locales/ur.js +117 -0
  878. package/packages/permission-system/node_modules/zod/v4/locales/vi.cjs +142 -0
  879. package/packages/permission-system/node_modules/zod/v4/locales/vi.d.cts +4 -0
  880. package/packages/permission-system/node_modules/zod/v4/locales/vi.d.ts +4 -0
  881. package/packages/permission-system/node_modules/zod/v4/locales/vi.js +116 -0
  882. package/packages/permission-system/node_modules/zod/v4/locales/zh-CN.cjs +142 -0
  883. package/packages/permission-system/node_modules/zod/v4/locales/zh-CN.d.cts +4 -0
  884. package/packages/permission-system/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  885. package/packages/permission-system/node_modules/zod/v4/locales/zh-CN.js +116 -0
  886. package/packages/permission-system/node_modules/zod/v4/locales/zh-TW.cjs +143 -0
  887. package/packages/permission-system/node_modules/zod/v4/locales/zh-TW.d.cts +4 -0
  888. package/packages/permission-system/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  889. package/packages/permission-system/node_modules/zod/v4/locales/zh-TW.js +117 -0
  890. package/packages/permission-system/node_modules/zod/v4/mini/checks.cjs +34 -0
  891. package/packages/permission-system/node_modules/zod/v4/mini/checks.d.cts +1 -0
  892. package/packages/permission-system/node_modules/zod/v4/mini/checks.d.ts +1 -0
  893. package/packages/permission-system/node_modules/zod/v4/mini/checks.js +1 -0
  894. package/packages/permission-system/node_modules/zod/v4/mini/coerce.cjs +47 -0
  895. package/packages/permission-system/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  896. package/packages/permission-system/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  897. package/packages/permission-system/node_modules/zod/v4/mini/coerce.js +17 -0
  898. package/packages/permission-system/node_modules/zod/v4/mini/external.cjs +62 -0
  899. package/packages/permission-system/node_modules/zod/v4/mini/external.d.cts +11 -0
  900. package/packages/permission-system/node_modules/zod/v4/mini/external.d.ts +11 -0
  901. package/packages/permission-system/node_modules/zod/v4/mini/external.js +13 -0
  902. package/packages/permission-system/node_modules/zod/v4/mini/index.cjs +32 -0
  903. package/packages/permission-system/node_modules/zod/v4/mini/index.d.cts +3 -0
  904. package/packages/permission-system/node_modules/zod/v4/mini/index.d.ts +3 -0
  905. package/packages/permission-system/node_modules/zod/v4/mini/index.js +3 -0
  906. package/packages/permission-system/node_modules/zod/v4/mini/iso.cjs +60 -0
  907. package/packages/permission-system/node_modules/zod/v4/mini/iso.d.cts +22 -0
  908. package/packages/permission-system/node_modules/zod/v4/mini/iso.d.ts +22 -0
  909. package/packages/permission-system/node_modules/zod/v4/mini/iso.js +30 -0
  910. package/packages/permission-system/node_modules/zod/v4/mini/parse.cjs +8 -0
  911. package/packages/permission-system/node_modules/zod/v4/mini/parse.d.cts +1 -0
  912. package/packages/permission-system/node_modules/zod/v4/mini/parse.d.ts +1 -0
  913. package/packages/permission-system/node_modules/zod/v4/mini/parse.js +1 -0
  914. package/packages/permission-system/node_modules/zod/v4/mini/schemas.cjs +839 -0
  915. package/packages/permission-system/node_modules/zod/v4/mini/schemas.d.cts +356 -0
  916. package/packages/permission-system/node_modules/zod/v4/mini/schemas.d.ts +356 -0
  917. package/packages/permission-system/node_modules/zod/v4/mini/schemas.js +732 -0
  918. package/packages/permission-system/node_modules/zod/v4-mini/index.cjs +17 -0
  919. package/packages/permission-system/node_modules/zod/v4-mini/index.d.cts +1 -0
  920. package/packages/permission-system/node_modules/zod/v4-mini/index.d.ts +1 -0
  921. package/packages/permission-system/node_modules/zod/v4-mini/index.js +1 -0
  922. package/packages/permission-system/package.json +34 -0
  923. package/packages/permission-system/presets/default.json +36 -0
  924. package/packages/permission-system/presets/plan.json +25 -0
  925. package/packages/permission-system/presets/yolo.json +15 -0
  926. package/packages/permission-system/src/bash/matcher.ts +51 -0
  927. package/packages/permission-system/src/bash/parser.ts +40 -0
  928. package/packages/permission-system/src/config-paths.ts +23 -0
  929. package/packages/permission-system/src/detect-preset-mode.ts +61 -0
  930. package/packages/permission-system/src/expand-home.ts +12 -0
  931. package/packages/permission-system/src/forwarding/forwarder.ts +224 -0
  932. package/packages/permission-system/src/forwarding/subagent-registry.ts +61 -0
  933. package/packages/permission-system/src/gates/path-utils.ts +66 -0
  934. package/packages/permission-system/src/gates/pipeline.ts +155 -0
  935. package/packages/permission-system/src/handlers/before-agent-start.ts +65 -0
  936. package/packages/permission-system/src/handlers/skill-input.ts +1 -0
  937. package/packages/permission-system/src/handlers/tool-call-gate.ts +199 -0
  938. package/packages/permission-system/src/mode-api.ts +44 -0
  939. package/packages/permission-system/src/permission-evaluator.ts +216 -0
  940. package/packages/permission-system/src/permission-session.ts +62 -0
  941. package/packages/permission-system/src/policy-loader.ts +211 -0
  942. package/packages/permission-system/src/sanitizers/skill-prompt.ts +99 -0
  943. package/packages/permission-system/src/sanitizers/system-prompt.ts +221 -0
  944. package/packages/permission-system/src/service.ts +66 -0
  945. package/packages/permission-system/src/session-approvals.ts +1 -0
  946. package/packages/permission-system/src/types.ts +80 -0
  947. package/packages/permission-system/src/ui/approval-summary.ts +43 -0
  948. package/packages/permission-system/src/ui/config-modal.ts +36 -0
  949. package/packages/permission-system/src/ui/permission-dialog.ts +52 -0
  950. package/packages/permission-system/src/wildcard-matcher.ts +81 -0
  951. package/packages/permission-system/src/yaml-frontmatter.ts +84 -0
  952. package/packages/permission-system/src/yolo/runtime-api.ts +49 -0
  953. package/packages/permission-system/tsconfig.json +13 -0
  954. package/packages/permission-system/vitest.config.ts +8 -0
  955. package/packages/question/extensions/index.ts +79 -0
  956. package/packages/question/package.json +26 -0
  957. package/packages/question/src/forwarding/channels.ts +6 -0
  958. package/packages/question/src/forwarding/file-watcher.ts +106 -0
  959. package/packages/question/src/forwarding/forwarder.ts +187 -0
  960. package/packages/question/src/parent-session.ts +18 -0
  961. package/packages/question/src/question-ui.ts +238 -0
  962. package/packages/question/src/register-tool.ts +224 -0
  963. package/packages/question/src/types.ts +41 -0
  964. package/packages/question/tsconfig.json +13 -0
  965. package/packages/question/vitest.config.ts +8 -0
  966. package/packages/session-title/extensions/index.ts +137 -0
  967. package/packages/session-title/package.json +37 -0
  968. package/packages/session-title/src/build-title-prompt.ts +16 -0
  969. package/packages/session-title/src/extract-title-context.ts +55 -0
  970. package/packages/session-title/src/fast-rules.ts +48 -0
  971. package/packages/session-title/src/load-settings.ts +70 -0
  972. package/packages/session-title/src/normalize-title.ts +20 -0
  973. package/packages/session-title/src/parse-title-response.ts +6 -0
  974. package/packages/session-title/src/resolve-title-model.ts +33 -0
  975. package/packages/session-title/src/schedule-title-job.ts +53 -0
  976. package/packages/session-title/src/should-schedule.ts +30 -0
  977. package/packages/session-title/src/title-agent.ts +60 -0
  978. package/packages/session-title/src/truncate-input.ts +10 -0
  979. package/packages/session-title/src/types.ts +29 -0
  980. package/packages/session-title/tsconfig.json +13 -0
  981. package/packages/session-title/vitest.config.ts +8 -0
  982. package/packages/subagents/agents/planner.md +43 -0
  983. package/packages/subagents/agents/scout.md +40 -0
  984. package/packages/subagents/agents/title.md +13 -0
  985. package/packages/subagents/agents/worker.md +36 -0
  986. package/packages/subagents/extensions/index.ts +164 -0
  987. package/packages/subagents/package.json +34 -0
  988. package/packages/subagents/skills/subagents/SKILL.md +80 -0
  989. package/packages/subagents/src/agents.ts +166 -0
  990. package/packages/subagents/src/async/job-tracker.ts +71 -0
  991. package/packages/subagents/src/async/spawn-async.ts +220 -0
  992. package/packages/subagents/src/async/storage.ts +57 -0
  993. package/packages/subagents/src/env.ts +4 -0
  994. package/packages/subagents/src/execute-subagent.ts +285 -0
  995. package/packages/subagents/src/progress.ts +187 -0
  996. package/packages/subagents/src/render-animation.ts +40 -0
  997. package/packages/subagents/src/render.ts +428 -0
  998. package/packages/subagents/src/rpc/channels.ts +21 -0
  999. package/packages/subagents/src/rpc/client.ts +144 -0
  1000. package/packages/subagents/src/rpc/server.ts +11 -0
  1001. package/packages/subagents/src/run-agent.ts +313 -0
  1002. package/packages/subagents/src/runtime.ts +102 -0
  1003. package/packages/subagents/src/schema.ts +62 -0
  1004. package/packages/subagents/src/spawn.ts +104 -0
  1005. package/packages/subagents/src/types.ts +92 -0
  1006. package/packages/subagents/src/utils.ts +100 -0
  1007. package/packages/subagents/src/wait.ts +159 -0
  1008. package/packages/subagents/tsconfig.json +13 -0
  1009. package/packages/subagents/vitest.config.ts +8 -0
  1010. package/packages/ui-enhancements/extensions/index.ts +10 -0
  1011. package/packages/ui-enhancements/package.json +28 -0
  1012. package/packages/ui-enhancements/src/bash-readonly.ts +82 -0
  1013. package/packages/ui-enhancements/src/chrome/agent-mode-badge.ts +60 -0
  1014. package/packages/ui-enhancements/src/chrome/border-status.ts +180 -0
  1015. package/packages/ui-enhancements/src/chrome/format-border.ts +46 -0
  1016. package/packages/ui-enhancements/src/chrome/header-info.ts +66 -0
  1017. package/packages/ui-enhancements/src/chrome/recent-sessions.ts +132 -0
  1018. package/packages/ui-enhancements/src/chrome/welcome-header.ts +127 -0
  1019. package/packages/ui-enhancements/src/config.ts +75 -0
  1020. package/packages/ui-enhancements/src/register-ui-enhancements.ts +47 -0
  1021. package/packages/ui-enhancements/src/session.ts +72 -0
  1022. package/packages/ui-enhancements/src/tools/bash-write-edit.ts +148 -0
  1023. package/packages/ui-enhancements/src/tools/index.ts +22 -0
  1024. package/packages/ui-enhancements/src/tools/read-find-grep-ls.ts +235 -0
  1025. package/packages/ui-enhancements/src/tools/text-content.ts +42 -0
  1026. package/packages/ui-enhancements/src/tools/tool-cache.ts +87 -0
  1027. package/packages/ui-enhancements/src/utils/shorten-path.ts +9 -0
  1028. package/packages/ui-enhancements/tsconfig.json +13 -0
  1029. package/packages/ui-enhancements/vitest.config.ts +8 -0
  1030. package/packages/websearch/extensions/index.ts +130 -0
  1031. package/packages/websearch/package.json +28 -0
  1032. package/packages/websearch/src/backends/brave.ts +35 -0
  1033. package/packages/websearch/src/backends/exa-mcp.ts +139 -0
  1034. package/packages/websearch/src/backends/firecrawl.ts +86 -0
  1035. package/packages/websearch/src/backends/registry.ts +98 -0
  1036. package/packages/websearch/src/backends/tavily.ts +32 -0
  1037. package/packages/websearch/src/config.ts +124 -0
  1038. package/packages/websearch/src/credentials.ts +35 -0
  1039. package/packages/websearch/src/dispatch.ts +57 -0
  1040. package/packages/websearch/src/formatters.ts +44 -0
  1041. package/packages/websearch/src/parsers.ts +75 -0
  1042. package/packages/websearch/src/readers/jina.ts +42 -0
  1043. package/packages/websearch/src/schema.ts +37 -0
  1044. package/packages/websearch/src/status.ts +103 -0
  1045. package/packages/websearch/src/types.ts +29 -0
  1046. package/packages/websearch/src/utils.ts +117 -0
  1047. package/packages/websearch/tsconfig.json +13 -0
  1048. package/packages/websearch/vitest.config.ts +8 -0
  1049. package/scripts/sync-pi-manifest.mjs +201 -0
@@ -0,0 +1,1217 @@
1
+ #include "tree_sitter/array.h"
2
+ #include "tree_sitter/parser.h"
3
+
4
+ #include <assert.h>
5
+ #include <ctype.h>
6
+ #include <string.h>
7
+ #include <wctype.h>
8
+
9
+ enum TokenType {
10
+ HEREDOC_START,
11
+ SIMPLE_HEREDOC_BODY,
12
+ HEREDOC_BODY_BEGINNING,
13
+ HEREDOC_CONTENT,
14
+ HEREDOC_END,
15
+ FILE_DESCRIPTOR,
16
+ EMPTY_VALUE,
17
+ CONCAT,
18
+ VARIABLE_NAME,
19
+ TEST_OPERATOR,
20
+ REGEX,
21
+ REGEX_NO_SLASH,
22
+ REGEX_NO_SPACE,
23
+ EXPANSION_WORD,
24
+ EXTGLOB_PATTERN,
25
+ BARE_DOLLAR,
26
+ BRACE_START,
27
+ IMMEDIATE_DOUBLE_HASH,
28
+ EXTERNAL_EXPANSION_SYM_HASH,
29
+ EXTERNAL_EXPANSION_SYM_BANG,
30
+ EXTERNAL_EXPANSION_SYM_EQUAL,
31
+ CLOSING_BRACE,
32
+ CLOSING_BRACKET,
33
+ HEREDOC_ARROW,
34
+ HEREDOC_ARROW_DASH,
35
+ NEWLINE,
36
+ OPENING_PAREN,
37
+ ESAC,
38
+ ERROR_RECOVERY,
39
+ };
40
+
41
+ typedef Array(char) String;
42
+
43
+ typedef struct {
44
+ bool is_raw;
45
+ bool started;
46
+ bool allows_indent;
47
+ String delimiter;
48
+ String current_leading_word;
49
+ } Heredoc;
50
+
51
+ #define heredoc_new() \
52
+ { \
53
+ .is_raw = false, \
54
+ .started = false, \
55
+ .allows_indent = false, \
56
+ .delimiter = array_new(), \
57
+ .current_leading_word = array_new(), \
58
+ };
59
+
60
+ typedef struct {
61
+ uint8_t last_glob_paren_depth;
62
+ bool ext_was_in_double_quote;
63
+ bool ext_saw_outside_quote;
64
+ Array(Heredoc) heredocs;
65
+ } Scanner;
66
+
67
+ static inline void advance(TSLexer *lexer) { lexer->advance(lexer, false); }
68
+
69
+ static inline void skip(TSLexer *lexer) { lexer->advance(lexer, true); }
70
+
71
+ static inline bool in_error_recovery(const bool *valid_symbols) { return valid_symbols[ERROR_RECOVERY]; }
72
+
73
+ static inline void reset_string(String *string) {
74
+ if (string->size > 0) {
75
+ memset(string->contents, 0, string->size);
76
+ array_clear(string);
77
+ }
78
+ }
79
+
80
+ static inline void reset_heredoc(Heredoc *heredoc) {
81
+ heredoc->is_raw = false;
82
+ heredoc->started = false;
83
+ heredoc->allows_indent = false;
84
+ reset_string(&heredoc->delimiter);
85
+ }
86
+
87
+ static inline void reset(Scanner *scanner) {
88
+ for (uint32_t i = 0; i < scanner->heredocs.size; i++) {
89
+ reset_heredoc(array_get(&scanner->heredocs, i));
90
+ }
91
+ }
92
+
93
+ static unsigned serialize(Scanner *scanner, char *buffer) {
94
+ uint32_t size = 0;
95
+
96
+ buffer[size++] = (char)scanner->last_glob_paren_depth;
97
+ buffer[size++] = (char)scanner->ext_was_in_double_quote;
98
+ buffer[size++] = (char)scanner->ext_saw_outside_quote;
99
+ buffer[size++] = (char)scanner->heredocs.size;
100
+
101
+ for (uint32_t i = 0; i < scanner->heredocs.size; i++) {
102
+ Heredoc *heredoc = array_get(&scanner->heredocs, i);
103
+ if (size + 3 + sizeof(uint32_t) + heredoc->delimiter.size >= TREE_SITTER_SERIALIZATION_BUFFER_SIZE) {
104
+ return 0;
105
+ }
106
+
107
+ buffer[size++] = (char)heredoc->is_raw;
108
+ buffer[size++] = (char)heredoc->started;
109
+ buffer[size++] = (char)heredoc->allows_indent;
110
+
111
+ memcpy(&buffer[size], &heredoc->delimiter.size, sizeof(uint32_t));
112
+ size += sizeof(uint32_t);
113
+ if (heredoc->delimiter.size > 0) {
114
+ memcpy(&buffer[size], heredoc->delimiter.contents, heredoc->delimiter.size);
115
+ size += heredoc->delimiter.size;
116
+ }
117
+ }
118
+ return size;
119
+ }
120
+
121
+ static void deserialize(Scanner *scanner, const char *buffer, unsigned length) {
122
+ if (length == 0) {
123
+ reset(scanner);
124
+ } else {
125
+ uint32_t size = 0;
126
+ scanner->last_glob_paren_depth = buffer[size++];
127
+ scanner->ext_was_in_double_quote = buffer[size++];
128
+ scanner->ext_saw_outside_quote = buffer[size++];
129
+ uint32_t heredoc_count = (unsigned char)buffer[size++];
130
+ for (uint32_t i = 0; i < heredoc_count; i++) {
131
+ Heredoc *heredoc = NULL;
132
+ if (i < scanner->heredocs.size) {
133
+ heredoc = array_get(&scanner->heredocs, i);
134
+ } else {
135
+ Heredoc new_heredoc = heredoc_new();
136
+ array_push(&scanner->heredocs, new_heredoc);
137
+ heredoc = array_back(&scanner->heredocs);
138
+ }
139
+
140
+ heredoc->is_raw = buffer[size++];
141
+ heredoc->started = buffer[size++];
142
+ heredoc->allows_indent = buffer[size++];
143
+
144
+ memcpy(&heredoc->delimiter.size, &buffer[size], sizeof(uint32_t));
145
+ size += sizeof(uint32_t);
146
+ array_reserve(&heredoc->delimiter, heredoc->delimiter.size);
147
+
148
+ if (heredoc->delimiter.size > 0) {
149
+ memcpy(heredoc->delimiter.contents, &buffer[size], heredoc->delimiter.size);
150
+ size += heredoc->delimiter.size;
151
+ }
152
+ }
153
+ assert(size == length);
154
+ }
155
+ }
156
+
157
+ /**
158
+ * Consume a "word" in POSIX parlance, and returns it unquoted.
159
+ *
160
+ * This is an approximate implementation that doesn't deal with any
161
+ * POSIX-mandated substitution, and assumes the default value for
162
+ * IFS.
163
+ */
164
+ static bool advance_word(TSLexer *lexer, String *unquoted_word) {
165
+ bool empty = true;
166
+
167
+ int32_t quote = 0;
168
+ if (lexer->lookahead == '\'' || lexer->lookahead == '"') {
169
+ quote = lexer->lookahead;
170
+ advance(lexer);
171
+ }
172
+
173
+ while (lexer->lookahead &&
174
+ !(quote ? lexer->lookahead == quote || lexer->lookahead == '\r' || lexer->lookahead == '\n'
175
+ : iswspace(lexer->lookahead))) {
176
+ if (lexer->lookahead == '\\') {
177
+ advance(lexer);
178
+ if (!lexer->lookahead) {
179
+ return false;
180
+ }
181
+ }
182
+ empty = false;
183
+ array_push(unquoted_word, lexer->lookahead);
184
+ advance(lexer);
185
+ }
186
+ array_push(unquoted_word, '\0');
187
+
188
+ if (quote && lexer->lookahead == quote) {
189
+ advance(lexer);
190
+ }
191
+
192
+ return !empty;
193
+ }
194
+
195
+ static inline bool scan_bare_dollar(TSLexer *lexer) {
196
+ while (iswspace(lexer->lookahead) && lexer->lookahead != '\n' && !lexer->eof(lexer)) {
197
+ skip(lexer);
198
+ }
199
+
200
+ if (lexer->lookahead == '$') {
201
+ advance(lexer);
202
+ lexer->result_symbol = BARE_DOLLAR;
203
+ lexer->mark_end(lexer);
204
+ return iswspace(lexer->lookahead) || lexer->eof(lexer) || lexer->lookahead == '\"';
205
+ }
206
+
207
+ return false;
208
+ }
209
+
210
+ static bool scan_heredoc_start(Heredoc *heredoc, TSLexer *lexer) {
211
+ while (iswspace(lexer->lookahead)) {
212
+ skip(lexer);
213
+ }
214
+
215
+ lexer->result_symbol = HEREDOC_START;
216
+ heredoc->is_raw = lexer->lookahead == '\'' || lexer->lookahead == '"' || lexer->lookahead == '\\';
217
+
218
+ bool found_delimiter = advance_word(lexer, &heredoc->delimiter);
219
+ if (!found_delimiter) {
220
+ reset_string(&heredoc->delimiter);
221
+ return false;
222
+ }
223
+ return found_delimiter;
224
+ }
225
+
226
+ static bool scan_heredoc_end_identifier(Heredoc *heredoc, TSLexer *lexer) {
227
+ reset_string(&heredoc->current_leading_word);
228
+ // Scan the first 'n' characters on this line, to see if they match the
229
+ // heredoc delimiter
230
+ int32_t size = 0;
231
+ if (heredoc->delimiter.size > 0) {
232
+ while (lexer->lookahead != '\0' && lexer->lookahead != '\n' &&
233
+ (int32_t)*array_get(&heredoc->delimiter, size) == lexer->lookahead &&
234
+ heredoc->current_leading_word.size < heredoc->delimiter.size) {
235
+ array_push(&heredoc->current_leading_word, lexer->lookahead);
236
+ advance(lexer);
237
+ size++;
238
+ }
239
+ }
240
+ array_push(&heredoc->current_leading_word, '\0');
241
+ return heredoc->delimiter.size == 0
242
+ ? false
243
+ : strcmp(heredoc->current_leading_word.contents, heredoc->delimiter.contents) == 0;
244
+ }
245
+
246
+ static bool scan_heredoc_content(Scanner *scanner, TSLexer *lexer, enum TokenType middle_type,
247
+ enum TokenType end_type) {
248
+ bool did_advance = false;
249
+ Heredoc *heredoc = array_back(&scanner->heredocs);
250
+
251
+ for (;;) {
252
+ switch (lexer->lookahead) {
253
+ case '\0': {
254
+ if (lexer->eof(lexer) && did_advance) {
255
+ reset_heredoc(heredoc);
256
+ lexer->result_symbol = end_type;
257
+ return true;
258
+ }
259
+ return false;
260
+ }
261
+
262
+ case '\\': {
263
+ did_advance = true;
264
+ advance(lexer);
265
+ advance(lexer);
266
+ break;
267
+ }
268
+
269
+ case '$': {
270
+ if (heredoc->is_raw) {
271
+ did_advance = true;
272
+ advance(lexer);
273
+ break;
274
+ }
275
+ if (did_advance) {
276
+ lexer->mark_end(lexer);
277
+ lexer->result_symbol = middle_type;
278
+ heredoc->started = true;
279
+ advance(lexer);
280
+ if (iswalpha(lexer->lookahead) || lexer->lookahead == '{' || lexer->lookahead == '(') {
281
+ return true;
282
+ }
283
+ break;
284
+ }
285
+ if (middle_type == HEREDOC_BODY_BEGINNING && lexer->get_column(lexer) == 0) {
286
+ lexer->result_symbol = middle_type;
287
+ heredoc->started = true;
288
+ return true;
289
+ }
290
+ return false;
291
+ }
292
+
293
+ case '\n': {
294
+ if (!did_advance) {
295
+ skip(lexer);
296
+ } else {
297
+ advance(lexer);
298
+ }
299
+ did_advance = true;
300
+ if (heredoc->allows_indent) {
301
+ while (iswspace(lexer->lookahead)) {
302
+ advance(lexer);
303
+ }
304
+ }
305
+ lexer->result_symbol = heredoc->started ? middle_type : end_type;
306
+ lexer->mark_end(lexer);
307
+ if (scan_heredoc_end_identifier(heredoc, lexer)) {
308
+ if (lexer->result_symbol == HEREDOC_END) {
309
+ array_pop(&scanner->heredocs);
310
+ }
311
+ return true;
312
+ }
313
+ break;
314
+ }
315
+
316
+ default: {
317
+ if (lexer->get_column(lexer) == 0) {
318
+ // an alternative is to check the starting column of the
319
+ // heredoc body and track that statefully
320
+ while (iswspace(lexer->lookahead)) {
321
+ if (did_advance) {
322
+ advance(lexer);
323
+ } else {
324
+ skip(lexer);
325
+ }
326
+ }
327
+ if (end_type != SIMPLE_HEREDOC_BODY) {
328
+ lexer->result_symbol = middle_type;
329
+ if (scan_heredoc_end_identifier(heredoc, lexer)) {
330
+ return true;
331
+ }
332
+ }
333
+ if (end_type == SIMPLE_HEREDOC_BODY) {
334
+ lexer->result_symbol = end_type;
335
+ lexer->mark_end(lexer);
336
+ if (scan_heredoc_end_identifier(heredoc, lexer)) {
337
+ return true;
338
+ }
339
+ }
340
+ }
341
+ did_advance = true;
342
+ advance(lexer);
343
+ break;
344
+ }
345
+ }
346
+ }
347
+ }
348
+
349
+ static bool scan(Scanner *scanner, TSLexer *lexer, const bool *valid_symbols) {
350
+ if (valid_symbols[CONCAT] && !in_error_recovery(valid_symbols)) {
351
+ if (!(lexer->lookahead == 0 || iswspace(lexer->lookahead) || lexer->lookahead == '>' ||
352
+ lexer->lookahead == '<' || lexer->lookahead == ')' || lexer->lookahead == '(' ||
353
+ lexer->lookahead == ';' || lexer->lookahead == '&' || lexer->lookahead == '|' ||
354
+ (lexer->lookahead == '}' && valid_symbols[CLOSING_BRACE]) ||
355
+ (lexer->lookahead == ']' && valid_symbols[CLOSING_BRACKET]))) {
356
+ lexer->result_symbol = CONCAT;
357
+ // So for a`b`, we want to return a concat. We check if the
358
+ // 2nd backtick has whitespace after it, and if it does we
359
+ // return concat.
360
+ if (lexer->lookahead == '`') {
361
+ lexer->mark_end(lexer);
362
+ advance(lexer);
363
+ while (lexer->lookahead != '`' && !lexer->eof(lexer)) {
364
+ advance(lexer);
365
+ }
366
+ if (lexer->eof(lexer)) {
367
+ return false;
368
+ }
369
+ if (lexer->lookahead == '`') {
370
+ advance(lexer);
371
+ }
372
+ return iswspace(lexer->lookahead) || lexer->eof(lexer);
373
+ }
374
+ // strings w/ expansions that contains escaped quotes or
375
+ // backslashes need this to return a concat
376
+ if (lexer->lookahead == '\\') {
377
+ lexer->mark_end(lexer);
378
+ advance(lexer);
379
+ if (lexer->lookahead == '"' || lexer->lookahead == '\'' || lexer->lookahead == '\\') {
380
+ return true;
381
+ }
382
+ if (lexer->eof(lexer)) {
383
+ return false;
384
+ }
385
+ } else {
386
+ return true;
387
+ }
388
+ }
389
+ if (iswspace(lexer->lookahead) && valid_symbols[CLOSING_BRACE] && !valid_symbols[EXPANSION_WORD]) {
390
+ lexer->result_symbol = CONCAT;
391
+ return true;
392
+ }
393
+ }
394
+
395
+ if (valid_symbols[IMMEDIATE_DOUBLE_HASH] && !in_error_recovery(valid_symbols)) {
396
+ // advance two # and ensure not } after
397
+ if (lexer->lookahead == '#') {
398
+ lexer->mark_end(lexer);
399
+ advance(lexer);
400
+ if (lexer->lookahead == '#') {
401
+ advance(lexer);
402
+ if (lexer->lookahead != '}') {
403
+ lexer->result_symbol = IMMEDIATE_DOUBLE_HASH;
404
+ lexer->mark_end(lexer);
405
+ return true;
406
+ }
407
+ }
408
+ }
409
+ }
410
+
411
+ if (valid_symbols[EXTERNAL_EXPANSION_SYM_HASH] && !in_error_recovery(valid_symbols)) {
412
+ if (lexer->lookahead == '#' || lexer->lookahead == '=' || lexer->lookahead == '!') {
413
+ lexer->result_symbol = lexer->lookahead == '#' ? EXTERNAL_EXPANSION_SYM_HASH
414
+ : lexer->lookahead == '!' ? EXTERNAL_EXPANSION_SYM_BANG
415
+ : EXTERNAL_EXPANSION_SYM_EQUAL;
416
+ advance(lexer);
417
+ lexer->mark_end(lexer);
418
+ while (lexer->lookahead == '#' || lexer->lookahead == '=' || lexer->lookahead == '!') {
419
+ advance(lexer);
420
+ }
421
+ while (iswspace(lexer->lookahead)) {
422
+ skip(lexer);
423
+ }
424
+ if (lexer->lookahead == '}') {
425
+ return true;
426
+ }
427
+ return false;
428
+ }
429
+ }
430
+
431
+ if (valid_symbols[EMPTY_VALUE]) {
432
+ if (iswspace(lexer->lookahead) || lexer->eof(lexer) || lexer->lookahead == ';' || lexer->lookahead == '&') {
433
+ lexer->result_symbol = EMPTY_VALUE;
434
+ return true;
435
+ }
436
+ }
437
+
438
+ if ((valid_symbols[HEREDOC_BODY_BEGINNING] || valid_symbols[SIMPLE_HEREDOC_BODY]) && scanner->heredocs.size > 0 &&
439
+ !array_back(&scanner->heredocs)->started && !in_error_recovery(valid_symbols)) {
440
+ return scan_heredoc_content(scanner, lexer, HEREDOC_BODY_BEGINNING, SIMPLE_HEREDOC_BODY);
441
+ }
442
+
443
+ if (valid_symbols[HEREDOC_END] && scanner->heredocs.size > 0) {
444
+ Heredoc *heredoc = array_back(&scanner->heredocs);
445
+ if (scan_heredoc_end_identifier(heredoc, lexer)) {
446
+ array_delete(&heredoc->current_leading_word);
447
+ array_delete(&heredoc->delimiter);
448
+ array_pop(&scanner->heredocs);
449
+ lexer->result_symbol = HEREDOC_END;
450
+ return true;
451
+ }
452
+ }
453
+
454
+ if (valid_symbols[HEREDOC_CONTENT] && scanner->heredocs.size > 0 && array_back(&scanner->heredocs)->started &&
455
+ !in_error_recovery(valid_symbols)) {
456
+ return scan_heredoc_content(scanner, lexer, HEREDOC_CONTENT, HEREDOC_END);
457
+ }
458
+
459
+ if (valid_symbols[HEREDOC_START] && !in_error_recovery(valid_symbols) && scanner->heredocs.size > 0) {
460
+ return scan_heredoc_start(array_back(&scanner->heredocs), lexer);
461
+ }
462
+
463
+ if (valid_symbols[TEST_OPERATOR] && !valid_symbols[EXPANSION_WORD]) {
464
+ while (iswspace(lexer->lookahead) && lexer->lookahead != '\n') {
465
+ skip(lexer);
466
+ }
467
+
468
+ if (lexer->lookahead == '\\') {
469
+ if (valid_symbols[EXTGLOB_PATTERN]) {
470
+ goto extglob_pattern;
471
+ }
472
+ if (valid_symbols[REGEX_NO_SPACE]) {
473
+ goto regex;
474
+ }
475
+ skip(lexer);
476
+
477
+ if (lexer->eof(lexer)) {
478
+ return false;
479
+ }
480
+
481
+ if (lexer->lookahead == '\r') {
482
+ skip(lexer);
483
+ if (lexer->lookahead == '\n') {
484
+ skip(lexer);
485
+ }
486
+ } else if (lexer->lookahead == '\n') {
487
+ skip(lexer);
488
+ } else {
489
+ return false;
490
+ }
491
+
492
+ while (iswspace(lexer->lookahead)) {
493
+ skip(lexer);
494
+ }
495
+ }
496
+
497
+ if (lexer->lookahead == '\n' && !valid_symbols[NEWLINE]) {
498
+ skip(lexer);
499
+
500
+ while (iswspace(lexer->lookahead)) {
501
+ skip(lexer);
502
+ }
503
+ }
504
+
505
+ if (lexer->lookahead == '-') {
506
+ advance(lexer);
507
+
508
+ bool advanced_once = false;
509
+ while (iswalpha(lexer->lookahead)) {
510
+ advanced_once = true;
511
+ advance(lexer);
512
+ }
513
+
514
+ if (iswspace(lexer->lookahead) && advanced_once) {
515
+ lexer->mark_end(lexer);
516
+ advance(lexer);
517
+ if (lexer->lookahead == '}' && valid_symbols[CLOSING_BRACE]) {
518
+ if (valid_symbols[EXPANSION_WORD]) {
519
+ lexer->mark_end(lexer);
520
+ lexer->result_symbol = EXPANSION_WORD;
521
+ return true;
522
+ }
523
+ return false;
524
+ }
525
+ lexer->result_symbol = TEST_OPERATOR;
526
+ return true;
527
+ }
528
+ if (iswspace(lexer->lookahead) && valid_symbols[EXTGLOB_PATTERN]) {
529
+ lexer->result_symbol = EXTGLOB_PATTERN;
530
+ return true;
531
+ }
532
+ }
533
+
534
+ if (valid_symbols[BARE_DOLLAR] && !in_error_recovery(valid_symbols) && scan_bare_dollar(lexer)) {
535
+ return true;
536
+ }
537
+ }
538
+
539
+ if ((valid_symbols[VARIABLE_NAME] || valid_symbols[FILE_DESCRIPTOR] || valid_symbols[HEREDOC_ARROW]) &&
540
+ !valid_symbols[REGEX_NO_SLASH] && !in_error_recovery(valid_symbols)) {
541
+ for (;;) {
542
+ if ((lexer->lookahead == ' ' || lexer->lookahead == '\t' || lexer->lookahead == '\r' ||
543
+ (lexer->lookahead == '\n' && !valid_symbols[NEWLINE])) &&
544
+ !valid_symbols[EXPANSION_WORD]) {
545
+ skip(lexer);
546
+ } else if (lexer->lookahead == '\\') {
547
+ skip(lexer);
548
+
549
+ if (lexer->eof(lexer)) {
550
+ lexer->mark_end(lexer);
551
+ lexer->result_symbol = VARIABLE_NAME;
552
+ return true;
553
+ }
554
+
555
+ if (lexer->lookahead == '\r') {
556
+ skip(lexer);
557
+ }
558
+ if (lexer->lookahead == '\n') {
559
+ skip(lexer);
560
+ } else {
561
+ if (lexer->lookahead == '\\' && valid_symbols[EXPANSION_WORD]) {
562
+ goto expansion_word;
563
+ }
564
+ return false;
565
+ }
566
+ } else {
567
+ break;
568
+ }
569
+ }
570
+
571
+ // no '*', '@', '?', '-', '$', '0', '_'
572
+ if (!valid_symbols[EXPANSION_WORD] &&
573
+ (lexer->lookahead == '*' || lexer->lookahead == '@' || lexer->lookahead == '?' || lexer->lookahead == '-' ||
574
+ lexer->lookahead == '0' || lexer->lookahead == '_')) {
575
+ lexer->mark_end(lexer);
576
+ advance(lexer);
577
+ if (lexer->lookahead == '=' || lexer->lookahead == '[' || lexer->lookahead == ':' ||
578
+ lexer->lookahead == '-' || lexer->lookahead == '%' || lexer->lookahead == '#' ||
579
+ lexer->lookahead == '/') {
580
+ return false;
581
+ }
582
+ if (valid_symbols[EXTGLOB_PATTERN] && iswspace(lexer->lookahead)) {
583
+ lexer->mark_end(lexer);
584
+ lexer->result_symbol = EXTGLOB_PATTERN;
585
+ return true;
586
+ }
587
+ }
588
+
589
+ if (valid_symbols[HEREDOC_ARROW] && lexer->lookahead == '<') {
590
+ advance(lexer);
591
+ if (lexer->lookahead == '<') {
592
+ advance(lexer);
593
+ if (lexer->lookahead == '-') {
594
+ advance(lexer);
595
+ Heredoc heredoc = heredoc_new();
596
+ heredoc.allows_indent = true;
597
+ array_push(&scanner->heredocs, heredoc);
598
+ lexer->result_symbol = HEREDOC_ARROW_DASH;
599
+ } else if (lexer->lookahead == '<' || lexer->lookahead == '=') {
600
+ return false;
601
+ } else {
602
+ Heredoc heredoc = heredoc_new();
603
+ array_push(&scanner->heredocs, heredoc);
604
+ lexer->result_symbol = HEREDOC_ARROW;
605
+ }
606
+ return true;
607
+ }
608
+ return false;
609
+ }
610
+
611
+ bool is_number = true;
612
+ if (iswdigit(lexer->lookahead)) {
613
+ advance(lexer);
614
+ } else if (iswalpha(lexer->lookahead) || lexer->lookahead == '_') {
615
+ is_number = false;
616
+ advance(lexer);
617
+ } else {
618
+ if (lexer->lookahead == '{') {
619
+ goto brace_start;
620
+ }
621
+ if (valid_symbols[EXPANSION_WORD]) {
622
+ goto expansion_word;
623
+ }
624
+ if (valid_symbols[EXTGLOB_PATTERN]) {
625
+ goto extglob_pattern;
626
+ }
627
+ return false;
628
+ }
629
+
630
+ for (;;) {
631
+ if (iswdigit(lexer->lookahead)) {
632
+ advance(lexer);
633
+ } else if (iswalpha(lexer->lookahead) || lexer->lookahead == '_') {
634
+ is_number = false;
635
+ advance(lexer);
636
+ } else {
637
+ break;
638
+ }
639
+ }
640
+
641
+ if (is_number && valid_symbols[FILE_DESCRIPTOR] && (lexer->lookahead == '>' || lexer->lookahead == '<')) {
642
+ lexer->result_symbol = FILE_DESCRIPTOR;
643
+ return true;
644
+ }
645
+
646
+ if (valid_symbols[VARIABLE_NAME]) {
647
+ if (lexer->lookahead == '+') {
648
+ lexer->mark_end(lexer);
649
+ advance(lexer);
650
+ if (lexer->lookahead == '=' || lexer->lookahead == ':' || valid_symbols[CLOSING_BRACE]) {
651
+ lexer->result_symbol = VARIABLE_NAME;
652
+ return true;
653
+ }
654
+ return false;
655
+ }
656
+ if (lexer->lookahead == '/') {
657
+ return false;
658
+ }
659
+ if (lexer->lookahead == '=' || lexer->lookahead == '[' ||
660
+ (lexer->lookahead == ':' && !valid_symbols[CLOSING_BRACE] &&
661
+ !valid_symbols[OPENING_PAREN]) || // TODO(amaanq): more cases for regular word chars but not variable
662
+ // names for function words, only handling : for now? #235
663
+ lexer->lookahead == '%' ||
664
+ (lexer->lookahead == '#' && !is_number) || lexer->lookahead == '@' ||
665
+ (lexer->lookahead == '-' && valid_symbols[CLOSING_BRACE])) {
666
+ lexer->mark_end(lexer);
667
+ lexer->result_symbol = VARIABLE_NAME;
668
+ return true;
669
+ }
670
+
671
+ if (lexer->lookahead == '?') {
672
+ lexer->mark_end(lexer);
673
+ advance(lexer);
674
+ lexer->result_symbol = VARIABLE_NAME;
675
+ return iswalpha(lexer->lookahead);
676
+ }
677
+ }
678
+
679
+ return false;
680
+ }
681
+
682
+ if (valid_symbols[BARE_DOLLAR] && !in_error_recovery(valid_symbols) && scan_bare_dollar(lexer)) {
683
+ return true;
684
+ }
685
+
686
+ regex:
687
+ if ((valid_symbols[REGEX] || valid_symbols[REGEX_NO_SLASH] || valid_symbols[REGEX_NO_SPACE]) &&
688
+ !in_error_recovery(valid_symbols)) {
689
+ if (valid_symbols[REGEX] || valid_symbols[REGEX_NO_SPACE]) {
690
+ while (iswspace(lexer->lookahead)) {
691
+ skip(lexer);
692
+ }
693
+ }
694
+
695
+ if ((lexer->lookahead != '"' && lexer->lookahead != '\'') ||
696
+ ((lexer->lookahead == '$' || lexer->lookahead == '\'') && valid_symbols[REGEX_NO_SLASH]) ||
697
+ (lexer->lookahead == '\'' && valid_symbols[REGEX_NO_SPACE])) {
698
+ typedef struct {
699
+ bool done;
700
+ bool advanced_once;
701
+ bool found_non_alnumdollarunderdash;
702
+ bool last_was_escape;
703
+ bool in_single_quote;
704
+ uint32_t paren_depth;
705
+ uint32_t bracket_depth;
706
+ uint32_t brace_depth;
707
+ } State;
708
+
709
+ if (lexer->lookahead == '$' && valid_symbols[REGEX_NO_SLASH]) {
710
+ lexer->mark_end(lexer);
711
+ advance(lexer);
712
+ if (lexer->lookahead == '(') {
713
+ return false;
714
+ }
715
+ }
716
+
717
+ lexer->mark_end(lexer);
718
+
719
+ State state = {false, false, false, false, false, 0, 0, 0};
720
+ while (!state.done) {
721
+ if (state.in_single_quote) {
722
+ if (lexer->lookahead == '\'') {
723
+ state.in_single_quote = false;
724
+ advance(lexer);
725
+ lexer->mark_end(lexer);
726
+ }
727
+ }
728
+ switch (lexer->lookahead) {
729
+ case '\\':
730
+ state.last_was_escape = true;
731
+ break;
732
+ case '\0':
733
+ return false;
734
+ case '(':
735
+ state.paren_depth++;
736
+ state.last_was_escape = false;
737
+ break;
738
+ case '[':
739
+ state.bracket_depth++;
740
+ state.last_was_escape = false;
741
+ break;
742
+ case '{':
743
+ if (!state.last_was_escape) {
744
+ state.brace_depth++;
745
+ }
746
+ state.last_was_escape = false;
747
+ break;
748
+ case ')':
749
+ if (state.paren_depth == 0) {
750
+ state.done = true;
751
+ }
752
+ state.paren_depth--;
753
+ state.last_was_escape = false;
754
+ break;
755
+ case ']':
756
+ if (state.bracket_depth == 0) {
757
+ state.done = true;
758
+ }
759
+ state.bracket_depth--;
760
+ state.last_was_escape = false;
761
+ break;
762
+ case '}':
763
+ if (state.brace_depth == 0) {
764
+ state.done = true;
765
+ }
766
+ state.brace_depth--;
767
+ state.last_was_escape = false;
768
+ break;
769
+ case '\'':
770
+ // Enter or exit a single-quoted string.
771
+ state.in_single_quote = !state.in_single_quote;
772
+ advance(lexer);
773
+ state.advanced_once = true;
774
+ state.last_was_escape = false;
775
+ continue;
776
+ default:
777
+ state.last_was_escape = false;
778
+ break;
779
+ }
780
+
781
+ if (!state.done) {
782
+ if (valid_symbols[REGEX]) {
783
+ bool was_space = !state.in_single_quote && iswspace(lexer->lookahead);
784
+ advance(lexer);
785
+ state.advanced_once = true;
786
+ if (!was_space || state.paren_depth > 0) {
787
+ lexer->mark_end(lexer);
788
+ }
789
+ } else if (valid_symbols[REGEX_NO_SLASH]) {
790
+ if (lexer->lookahead == '/') {
791
+ lexer->mark_end(lexer);
792
+ lexer->result_symbol = REGEX_NO_SLASH;
793
+ return state.advanced_once;
794
+ }
795
+ if (lexer->lookahead == '\\') {
796
+ advance(lexer);
797
+ state.advanced_once = true;
798
+ if (!lexer->eof(lexer) && lexer->lookahead != '[' && lexer->lookahead != '/') {
799
+ advance(lexer);
800
+ lexer->mark_end(lexer);
801
+ }
802
+ } else {
803
+ bool was_space = !state.in_single_quote && iswspace(lexer->lookahead);
804
+ advance(lexer);
805
+ state.advanced_once = true;
806
+ if (!was_space) {
807
+ lexer->mark_end(lexer);
808
+ }
809
+ }
810
+ } else if (valid_symbols[REGEX_NO_SPACE]) {
811
+ if (lexer->lookahead == '\\') {
812
+ state.found_non_alnumdollarunderdash = true;
813
+ advance(lexer);
814
+ if (!lexer->eof(lexer)) {
815
+ advance(lexer);
816
+ }
817
+ } else if (lexer->lookahead == '$') {
818
+ lexer->mark_end(lexer);
819
+ advance(lexer);
820
+ // do not parse a command
821
+ // substitution
822
+ if (lexer->lookahead == '(') {
823
+ return false;
824
+ }
825
+ // end $ always means regex, e.g.
826
+ // 99999999$
827
+ if (iswspace(lexer->lookahead)) {
828
+ lexer->result_symbol = REGEX_NO_SPACE;
829
+ lexer->mark_end(lexer);
830
+ return true;
831
+ }
832
+ } else {
833
+ bool was_space = !state.in_single_quote && iswspace(lexer->lookahead);
834
+ if (was_space && state.paren_depth == 0) {
835
+ lexer->mark_end(lexer);
836
+ lexer->result_symbol = REGEX_NO_SPACE;
837
+ return state.found_non_alnumdollarunderdash;
838
+ }
839
+ if (!iswalnum(lexer->lookahead) && lexer->lookahead != '$' && lexer->lookahead != '-' &&
840
+ lexer->lookahead != '_') {
841
+ state.found_non_alnumdollarunderdash = true;
842
+ }
843
+ advance(lexer);
844
+ }
845
+ }
846
+ }
847
+ }
848
+
849
+ lexer->result_symbol = valid_symbols[REGEX_NO_SLASH] ? REGEX_NO_SLASH
850
+ : valid_symbols[REGEX_NO_SPACE] ? REGEX_NO_SPACE
851
+ : REGEX;
852
+ if (valid_symbols[REGEX] && !state.advanced_once) {
853
+ return false;
854
+ }
855
+ return true;
856
+ }
857
+ }
858
+
859
+ extglob_pattern:
860
+ if (valid_symbols[EXTGLOB_PATTERN] && !in_error_recovery(valid_symbols)) {
861
+ // first skip ws, then check for ? * + @ !
862
+ while (iswspace(lexer->lookahead)) {
863
+ skip(lexer);
864
+ }
865
+
866
+ if (lexer->lookahead == '?' || lexer->lookahead == '*' || lexer->lookahead == '+' || lexer->lookahead == '@' ||
867
+ lexer->lookahead == '!' || lexer->lookahead == '-' || lexer->lookahead == ')' || lexer->lookahead == '\\' ||
868
+ lexer->lookahead == '.' || lexer->lookahead == '[' || (iswalpha(lexer->lookahead))) {
869
+ if (lexer->lookahead == '\\') {
870
+ advance(lexer);
871
+ if ((iswspace(lexer->lookahead) || lexer->lookahead == '"') && lexer->lookahead != '\r' &&
872
+ lexer->lookahead != '\n') {
873
+ advance(lexer);
874
+ } else {
875
+ return false;
876
+ }
877
+ }
878
+
879
+ if (lexer->lookahead == ')' && scanner->last_glob_paren_depth == 0) {
880
+ lexer->mark_end(lexer);
881
+ advance(lexer);
882
+
883
+ if (iswspace(lexer->lookahead)) {
884
+ return false;
885
+ }
886
+ }
887
+
888
+ lexer->mark_end(lexer);
889
+ bool was_non_alpha = !iswalpha(lexer->lookahead);
890
+ if (lexer->lookahead != '[') {
891
+ // no esac
892
+ if (lexer->lookahead == 'e') {
893
+ lexer->mark_end(lexer);
894
+ advance(lexer);
895
+ if (lexer->lookahead == 's') {
896
+ advance(lexer);
897
+ if (lexer->lookahead == 'a') {
898
+ advance(lexer);
899
+ if (lexer->lookahead == 'c') {
900
+ advance(lexer);
901
+ if (iswspace(lexer->lookahead)) {
902
+ return false;
903
+ }
904
+ }
905
+ }
906
+ }
907
+ } else {
908
+ advance(lexer);
909
+ }
910
+ }
911
+
912
+ // -\w is just a word, find something else special
913
+ if (lexer->lookahead == '-') {
914
+ lexer->mark_end(lexer);
915
+ advance(lexer);
916
+ while (iswalnum(lexer->lookahead)) {
917
+ advance(lexer);
918
+ }
919
+
920
+ if (lexer->lookahead == ')' || lexer->lookahead == '\\' || lexer->lookahead == '.') {
921
+ return false;
922
+ }
923
+ lexer->mark_end(lexer);
924
+ }
925
+
926
+ // case item -) or *)
927
+ if (lexer->lookahead == ')' && scanner->last_glob_paren_depth == 0) {
928
+ lexer->mark_end(lexer);
929
+ advance(lexer);
930
+ if (iswspace(lexer->lookahead)) {
931
+ lexer->result_symbol = EXTGLOB_PATTERN;
932
+ return was_non_alpha;
933
+ }
934
+ }
935
+
936
+ if (iswspace(lexer->lookahead)) {
937
+ lexer->mark_end(lexer);
938
+ lexer->result_symbol = EXTGLOB_PATTERN;
939
+ scanner->last_glob_paren_depth = 0;
940
+ return true;
941
+ }
942
+
943
+ if (lexer->lookahead == '$') {
944
+ lexer->mark_end(lexer);
945
+ advance(lexer);
946
+ if (lexer->lookahead == '{' || lexer->lookahead == '(') {
947
+ lexer->result_symbol = EXTGLOB_PATTERN;
948
+ return true;
949
+ }
950
+ }
951
+
952
+ if (lexer->lookahead == '|') {
953
+ lexer->mark_end(lexer);
954
+ advance(lexer);
955
+ lexer->result_symbol = EXTGLOB_PATTERN;
956
+ return true;
957
+ }
958
+
959
+ if (!iswalnum(lexer->lookahead) && lexer->lookahead != '(' && lexer->lookahead != '"' &&
960
+ lexer->lookahead != '[' && lexer->lookahead != '?' && lexer->lookahead != '/' &&
961
+ lexer->lookahead != '\\' && lexer->lookahead != '_' && lexer->lookahead != '*') {
962
+ return false;
963
+ }
964
+
965
+ typedef struct {
966
+ bool done;
967
+ bool saw_non_alphadot;
968
+ uint32_t paren_depth;
969
+ uint32_t bracket_depth;
970
+ uint32_t brace_depth;
971
+ } State;
972
+
973
+ State state = {false, was_non_alpha, scanner->last_glob_paren_depth, 0, 0};
974
+ while (!state.done) {
975
+ switch (lexer->lookahead) {
976
+ case '\0':
977
+ return false;
978
+ case '(':
979
+ state.paren_depth++;
980
+ break;
981
+ case '[':
982
+ state.bracket_depth++;
983
+ break;
984
+ case '{':
985
+ state.brace_depth++;
986
+ break;
987
+ case ')':
988
+ if (state.paren_depth == 0) {
989
+ state.done = true;
990
+ }
991
+ state.paren_depth--;
992
+ break;
993
+ case ']':
994
+ if (state.bracket_depth == 0) {
995
+ state.done = true;
996
+ }
997
+ state.bracket_depth--;
998
+ break;
999
+ case '}':
1000
+ if (state.brace_depth == 0) {
1001
+ state.done = true;
1002
+ }
1003
+ state.brace_depth--;
1004
+ break;
1005
+ }
1006
+
1007
+ if (lexer->lookahead == '|') {
1008
+ lexer->mark_end(lexer);
1009
+ advance(lexer);
1010
+ if (state.paren_depth == 0 && state.bracket_depth == 0 && state.brace_depth == 0) {
1011
+ lexer->result_symbol = EXTGLOB_PATTERN;
1012
+ return true;
1013
+ }
1014
+ }
1015
+
1016
+ if (!state.done) {
1017
+ bool was_space = iswspace(lexer->lookahead);
1018
+ if (lexer->lookahead == '$') {
1019
+ lexer->mark_end(lexer);
1020
+ if (!iswalpha(lexer->lookahead) && lexer->lookahead != '.' && lexer->lookahead != '\\') {
1021
+ state.saw_non_alphadot = true;
1022
+ }
1023
+ advance(lexer);
1024
+ if (lexer->lookahead == '(' || lexer->lookahead == '{') {
1025
+ lexer->result_symbol = EXTGLOB_PATTERN;
1026
+ scanner->last_glob_paren_depth = state.paren_depth;
1027
+ return state.saw_non_alphadot;
1028
+ }
1029
+ }
1030
+ if (was_space) {
1031
+ lexer->mark_end(lexer);
1032
+ lexer->result_symbol = EXTGLOB_PATTERN;
1033
+ scanner->last_glob_paren_depth = 0;
1034
+ return state.saw_non_alphadot;
1035
+ }
1036
+ if (lexer->lookahead == '"') {
1037
+ lexer->mark_end(lexer);
1038
+ lexer->result_symbol = EXTGLOB_PATTERN;
1039
+ scanner->last_glob_paren_depth = 0;
1040
+ return state.saw_non_alphadot;
1041
+ }
1042
+ if (lexer->lookahead == '\\') {
1043
+ if (!iswalpha(lexer->lookahead) && lexer->lookahead != '.' && lexer->lookahead != '\\') {
1044
+ state.saw_non_alphadot = true;
1045
+ }
1046
+ advance(lexer);
1047
+ if (iswspace(lexer->lookahead) || lexer->lookahead == '"') {
1048
+ advance(lexer);
1049
+ }
1050
+ } else {
1051
+ if (!iswalpha(lexer->lookahead) && lexer->lookahead != '.' && lexer->lookahead != '\\') {
1052
+ state.saw_non_alphadot = true;
1053
+ }
1054
+ advance(lexer);
1055
+ }
1056
+ if (!was_space) {
1057
+ lexer->mark_end(lexer);
1058
+ }
1059
+ }
1060
+ }
1061
+
1062
+ lexer->result_symbol = EXTGLOB_PATTERN;
1063
+ scanner->last_glob_paren_depth = 0;
1064
+ return state.saw_non_alphadot;
1065
+ }
1066
+ scanner->last_glob_paren_depth = 0;
1067
+
1068
+ return false;
1069
+ }
1070
+
1071
+ expansion_word:
1072
+ if (valid_symbols[EXPANSION_WORD]) {
1073
+ bool advanced_once = false;
1074
+ bool advance_once_space = false;
1075
+ for (;;) {
1076
+ if (lexer->lookahead == '\"') {
1077
+ return false;
1078
+ }
1079
+ if (lexer->lookahead == '$') {
1080
+ lexer->mark_end(lexer);
1081
+ advance(lexer);
1082
+ if (lexer->lookahead == '{' || lexer->lookahead == '(' || lexer->lookahead == '\'' ||
1083
+ iswalnum(lexer->lookahead)) {
1084
+ lexer->result_symbol = EXPANSION_WORD;
1085
+ return advanced_once;
1086
+ }
1087
+ advanced_once = true;
1088
+ }
1089
+
1090
+ if (lexer->lookahead == '}') {
1091
+ lexer->mark_end(lexer);
1092
+ lexer->result_symbol = EXPANSION_WORD;
1093
+ return advanced_once || advance_once_space;
1094
+ }
1095
+
1096
+ if (lexer->lookahead == '(' && !(advanced_once || advance_once_space)) {
1097
+ lexer->mark_end(lexer);
1098
+ advance(lexer);
1099
+ while (lexer->lookahead != ')' && !lexer->eof(lexer)) {
1100
+ // if we find a $( or ${ assume this is valid and is
1101
+ // a garbage concatenation of some weird word + an
1102
+ // expansion
1103
+ // I wonder where this can fail
1104
+ if (lexer->lookahead == '$') {
1105
+ lexer->mark_end(lexer);
1106
+ advance(lexer);
1107
+ if (lexer->lookahead == '{' || lexer->lookahead == '(' || lexer->lookahead == '\'' ||
1108
+ iswalnum(lexer->lookahead)) {
1109
+ lexer->result_symbol = EXPANSION_WORD;
1110
+ return advanced_once;
1111
+ }
1112
+ advanced_once = true;
1113
+ } else {
1114
+ advanced_once = advanced_once || !iswspace(lexer->lookahead);
1115
+ advance_once_space = advance_once_space || iswspace(lexer->lookahead);
1116
+ advance(lexer);
1117
+ }
1118
+ }
1119
+ lexer->mark_end(lexer);
1120
+ if (lexer->lookahead == ')') {
1121
+ advanced_once = true;
1122
+ advance(lexer);
1123
+ lexer->mark_end(lexer);
1124
+ if (lexer->lookahead == '}') {
1125
+ return false;
1126
+ }
1127
+ } else {
1128
+ return false;
1129
+ }
1130
+ }
1131
+
1132
+ if (lexer->lookahead == '\'') {
1133
+ return false;
1134
+ }
1135
+
1136
+ if (lexer->eof(lexer)) {
1137
+ return false;
1138
+ }
1139
+ advanced_once = advanced_once || !iswspace(lexer->lookahead);
1140
+ advance_once_space = advance_once_space || iswspace(lexer->lookahead);
1141
+ advance(lexer);
1142
+ }
1143
+ }
1144
+
1145
+ brace_start:
1146
+ if (valid_symbols[BRACE_START] && !in_error_recovery(valid_symbols)) {
1147
+ while (iswspace(lexer->lookahead)) {
1148
+ skip(lexer);
1149
+ }
1150
+
1151
+ if (lexer->lookahead != '{') {
1152
+ return false;
1153
+ }
1154
+
1155
+ advance(lexer);
1156
+ lexer->mark_end(lexer);
1157
+
1158
+ while (isdigit(lexer->lookahead)) {
1159
+ advance(lexer);
1160
+ }
1161
+
1162
+ if (lexer->lookahead != '.') {
1163
+ return false;
1164
+ }
1165
+ advance(lexer);
1166
+
1167
+ if (lexer->lookahead != '.') {
1168
+ return false;
1169
+ }
1170
+ advance(lexer);
1171
+
1172
+ while (isdigit(lexer->lookahead)) {
1173
+ advance(lexer);
1174
+ }
1175
+
1176
+ if (lexer->lookahead != '}') {
1177
+ return false;
1178
+ }
1179
+
1180
+ lexer->result_symbol = BRACE_START;
1181
+ return true;
1182
+ }
1183
+
1184
+ return false;
1185
+ }
1186
+
1187
+ void *tree_sitter_bash_external_scanner_create() {
1188
+ Scanner *scanner = calloc(1, sizeof(Scanner));
1189
+ array_init(&scanner->heredocs);
1190
+ return scanner;
1191
+ }
1192
+
1193
+ bool tree_sitter_bash_external_scanner_scan(void *payload, TSLexer *lexer, const bool *valid_symbols) {
1194
+ Scanner *scanner = (Scanner *)payload;
1195
+ return scan(scanner, lexer, valid_symbols);
1196
+ }
1197
+
1198
+ unsigned tree_sitter_bash_external_scanner_serialize(void *payload, char *state) {
1199
+ Scanner *scanner = (Scanner *)payload;
1200
+ return serialize(scanner, state);
1201
+ }
1202
+
1203
+ void tree_sitter_bash_external_scanner_deserialize(void *payload, const char *state, unsigned length) {
1204
+ Scanner *scanner = (Scanner *)payload;
1205
+ deserialize(scanner, state, length);
1206
+ }
1207
+
1208
+ void tree_sitter_bash_external_scanner_destroy(void *payload) {
1209
+ Scanner *scanner = (Scanner *)payload;
1210
+ for (size_t i = 0; i < scanner->heredocs.size; i++) {
1211
+ Heredoc *heredoc = array_get(&scanner->heredocs, i);
1212
+ array_delete(&heredoc->current_leading_word);
1213
+ array_delete(&heredoc->delimiter);
1214
+ }
1215
+ array_delete(&scanner->heredocs);
1216
+ free(scanner);
1217
+ }