@schema-weaver/pg-connector 0.0.0-stage → 2.0.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 (1065) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/LICENSE +21 -0
  3. package/README.md +457 -2
  4. package/dist/cjs/audit/chain.d.ts +365 -0
  5. package/dist/cjs/audit/chain.d.ts.map +1 -0
  6. package/dist/cjs/audit/chain.js +959 -0
  7. package/dist/cjs/audit/chain.js.map +1 -0
  8. package/dist/cjs/audit/cloud-client.d.ts +142 -0
  9. package/dist/cjs/audit/cloud-client.d.ts.map +1 -0
  10. package/dist/cjs/audit/cloud-client.js +364 -0
  11. package/dist/cjs/audit/cloud-client.js.map +1 -0
  12. package/dist/cjs/audit/cloud-writer.d.ts +57 -0
  13. package/dist/cjs/audit/cloud-writer.d.ts.map +1 -0
  14. package/dist/cjs/audit/cloud-writer.js +95 -0
  15. package/dist/cjs/audit/cloud-writer.js.map +1 -0
  16. package/dist/cjs/audit/context.d.ts +51 -0
  17. package/dist/cjs/audit/context.d.ts.map +1 -0
  18. package/dist/cjs/audit/context.js +75 -0
  19. package/dist/cjs/audit/context.js.map +1 -0
  20. package/dist/cjs/audit/files.d.ts +111 -0
  21. package/dist/cjs/audit/files.d.ts.map +1 -0
  22. package/dist/cjs/audit/files.js +406 -0
  23. package/dist/cjs/audit/files.js.map +1 -0
  24. package/dist/cjs/audit/index.d.ts +9 -0
  25. package/dist/cjs/audit/index.d.ts.map +1 -0
  26. package/dist/cjs/audit/index.js +68 -0
  27. package/dist/cjs/audit/index.js.map +1 -0
  28. package/dist/cjs/audit/local-writer.d.ts +255 -0
  29. package/dist/cjs/audit/local-writer.d.ts.map +1 -0
  30. package/dist/cjs/audit/local-writer.js +829 -0
  31. package/dist/cjs/audit/local-writer.js.map +1 -0
  32. package/dist/cjs/audit/redact.d.ts +151 -0
  33. package/dist/cjs/audit/redact.d.ts.map +1 -0
  34. package/dist/cjs/audit/redact.js +549 -0
  35. package/dist/cjs/audit/redact.js.map +1 -0
  36. package/dist/cjs/audit/sanitize.d.ts +78 -0
  37. package/dist/cjs/audit/sanitize.d.ts.map +1 -0
  38. package/dist/cjs/audit/sanitize.js +315 -0
  39. package/dist/cjs/audit/sanitize.js.map +1 -0
  40. package/dist/cjs/audit/sink.d.ts +278 -0
  41. package/dist/cjs/audit/sink.d.ts.map +1 -0
  42. package/dist/cjs/audit/sink.js +819 -0
  43. package/dist/cjs/audit/sink.js.map +1 -0
  44. package/dist/cjs/audit/types.d.ts +226 -0
  45. package/dist/cjs/audit/types.d.ts.map +1 -0
  46. package/dist/cjs/audit/types.js +3 -0
  47. package/dist/cjs/audit/types.js.map +1 -0
  48. package/dist/cjs/audit/verify-cache.d.ts +127 -0
  49. package/dist/cjs/audit/verify-cache.d.ts.map +1 -0
  50. package/dist/cjs/audit/verify-cache.js +668 -0
  51. package/dist/cjs/audit/verify-cache.js.map +1 -0
  52. package/dist/cjs/channels/agent-session.d.ts +228 -0
  53. package/dist/cjs/channels/agent-session.d.ts.map +1 -0
  54. package/dist/cjs/channels/agent-session.js +604 -0
  55. package/dist/cjs/channels/agent-session.js.map +1 -0
  56. package/dist/cjs/channels/data-channel.d.ts +181 -0
  57. package/dist/cjs/channels/data-channel.d.ts.map +1 -0
  58. package/dist/cjs/channels/data-channel.js +607 -0
  59. package/dist/cjs/channels/data-channel.js.map +1 -0
  60. package/dist/cjs/channels/reconnect.d.ts +142 -0
  61. package/dist/cjs/channels/reconnect.d.ts.map +1 -0
  62. package/dist/cjs/channels/reconnect.js +247 -0
  63. package/dist/cjs/channels/reconnect.js.map +1 -0
  64. package/dist/cjs/channels/types.d.ts +112 -0
  65. package/dist/cjs/channels/types.d.ts.map +1 -0
  66. package/dist/cjs/channels/types.js +3 -0
  67. package/dist/cjs/channels/types.js.map +1 -0
  68. package/dist/cjs/channels/wake-channel.d.ts +232 -0
  69. package/dist/cjs/channels/wake-channel.d.ts.map +1 -0
  70. package/dist/cjs/channels/wake-channel.js +752 -0
  71. package/dist/cjs/channels/wake-channel.js.map +1 -0
  72. package/dist/cjs/cli/banner.d.ts +2 -0
  73. package/dist/cjs/cli/banner.d.ts.map +1 -0
  74. package/dist/cjs/cli/banner.js +150 -0
  75. package/dist/cjs/cli/banner.js.map +1 -0
  76. package/dist/cjs/cli/commands/agent.d.ts +30 -0
  77. package/dist/cjs/cli/commands/agent.d.ts.map +1 -0
  78. package/dist/cjs/cli/commands/agent.js +214 -0
  79. package/dist/cjs/cli/commands/agent.js.map +1 -0
  80. package/dist/cjs/cli/commands/audit-verify.d.ts +19 -0
  81. package/dist/cjs/cli/commands/audit-verify.d.ts.map +1 -0
  82. package/dist/cjs/cli/commands/audit-verify.js +382 -0
  83. package/dist/cjs/cli/commands/audit-verify.js.map +1 -0
  84. package/dist/cjs/cli/commands/clean.d.ts +23 -0
  85. package/dist/cjs/cli/commands/clean.d.ts.map +1 -0
  86. package/dist/cjs/cli/commands/clean.js +272 -0
  87. package/dist/cjs/cli/commands/clean.js.map +1 -0
  88. package/dist/cjs/cli/commands/config-show.d.ts +2 -0
  89. package/dist/cjs/cli/commands/config-show.d.ts.map +1 -0
  90. package/dist/cjs/cli/commands/config-show.js +10 -0
  91. package/dist/cjs/cli/commands/config-show.js.map +1 -0
  92. package/dist/cjs/cli/commands/config.d.ts +6 -0
  93. package/dist/cjs/cli/commands/config.d.ts.map +1 -0
  94. package/dist/cjs/cli/commands/config.js +266 -0
  95. package/dist/cjs/cli/commands/config.js.map +1 -0
  96. package/dist/cjs/cli/commands/db-add.d.ts +16 -0
  97. package/dist/cjs/cli/commands/db-add.d.ts.map +1 -0
  98. package/dist/cjs/cli/commands/db-add.js +613 -0
  99. package/dist/cjs/cli/commands/db-add.js.map +1 -0
  100. package/dist/cjs/cli/commands/db-edit.d.ts +2 -0
  101. package/dist/cjs/cli/commands/db-edit.d.ts.map +1 -0
  102. package/dist/cjs/cli/commands/db-edit.js +388 -0
  103. package/dist/cjs/cli/commands/db-edit.js.map +1 -0
  104. package/dist/cjs/cli/commands/db-logs.d.ts +3 -0
  105. package/dist/cjs/cli/commands/db-logs.d.ts.map +1 -0
  106. package/dist/cjs/cli/commands/db-logs.js +67 -0
  107. package/dist/cjs/cli/commands/db-logs.js.map +1 -0
  108. package/dist/cjs/cli/commands/db-ls.d.ts +2 -0
  109. package/dist/cjs/cli/commands/db-ls.d.ts.map +1 -0
  110. package/dist/cjs/cli/commands/db-ls.js +118 -0
  111. package/dist/cjs/cli/commands/db-ls.js.map +1 -0
  112. package/dist/cjs/cli/commands/db-query.d.ts +121 -0
  113. package/dist/cjs/cli/commands/db-query.d.ts.map +1 -0
  114. package/dist/cjs/cli/commands/db-query.js +802 -0
  115. package/dist/cjs/cli/commands/db-query.js.map +1 -0
  116. package/dist/cjs/cli/commands/db-remove.d.ts +2 -0
  117. package/dist/cjs/cli/commands/db-remove.d.ts.map +1 -0
  118. package/dist/cjs/cli/commands/db-remove.js +51 -0
  119. package/dist/cjs/cli/commands/db-remove.js.map +1 -0
  120. package/dist/cjs/cli/commands/db-show.d.ts +2 -0
  121. package/dist/cjs/cli/commands/db-show.d.ts.map +1 -0
  122. package/dist/cjs/cli/commands/db-show.js +134 -0
  123. package/dist/cjs/cli/commands/db-show.js.map +1 -0
  124. package/dist/cjs/cli/commands/db-test.d.ts +3 -0
  125. package/dist/cjs/cli/commands/db-test.d.ts.map +1 -0
  126. package/dist/cjs/cli/commands/db-test.js +311 -0
  127. package/dist/cjs/cli/commands/db-test.js.map +1 -0
  128. package/dist/cjs/cli/commands/db.d.ts +11 -0
  129. package/dist/cjs/cli/commands/db.d.ts.map +1 -0
  130. package/dist/cjs/cli/commands/db.js +90 -0
  131. package/dist/cjs/cli/commands/db.js.map +1 -0
  132. package/dist/cjs/cli/commands/debug.d.ts +2 -0
  133. package/dist/cjs/cli/commands/debug.d.ts.map +1 -0
  134. package/dist/cjs/cli/commands/debug.js +241 -0
  135. package/dist/cjs/cli/commands/debug.js.map +1 -0
  136. package/dist/cjs/cli/commands/doctor.d.ts +5 -0
  137. package/dist/cjs/cli/commands/doctor.d.ts.map +1 -0
  138. package/dist/cjs/cli/commands/doctor.js +117 -0
  139. package/dist/cjs/cli/commands/doctor.js.map +1 -0
  140. package/dist/cjs/cli/commands/index.d.ts +10 -0
  141. package/dist/cjs/cli/commands/index.d.ts.map +1 -0
  142. package/dist/cjs/cli/commands/index.js +30 -0
  143. package/dist/cjs/cli/commands/index.js.map +1 -0
  144. package/dist/cjs/cli/commands/init.d.ts +2 -0
  145. package/dist/cjs/cli/commands/init.d.ts.map +1 -0
  146. package/dist/cjs/cli/commands/init.js +199 -0
  147. package/dist/cjs/cli/commands/init.js.map +1 -0
  148. package/dist/cjs/cli/commands/link.d.ts +5 -0
  149. package/dist/cjs/cli/commands/link.d.ts.map +1 -0
  150. package/dist/cjs/cli/commands/link.js +44 -0
  151. package/dist/cjs/cli/commands/link.js.map +1 -0
  152. package/dist/cjs/cli/commands/logs.d.ts +17 -0
  153. package/dist/cjs/cli/commands/logs.d.ts.map +1 -0
  154. package/dist/cjs/cli/commands/logs.js +314 -0
  155. package/dist/cjs/cli/commands/logs.js.map +1 -0
  156. package/dist/cjs/cli/commands/project-show.d.ts +2 -0
  157. package/dist/cjs/cli/commands/project-show.d.ts.map +1 -0
  158. package/dist/cjs/cli/commands/project-show.js +105 -0
  159. package/dist/cjs/cli/commands/project-show.js.map +1 -0
  160. package/dist/cjs/cli/commands/project.d.ts +3 -0
  161. package/dist/cjs/cli/commands/project.d.ts.map +1 -0
  162. package/dist/cjs/cli/commands/project.js +64 -0
  163. package/dist/cjs/cli/commands/project.js.map +1 -0
  164. package/dist/cjs/cli/commands/service.d.ts +123 -0
  165. package/dist/cjs/cli/commands/service.d.ts.map +1 -0
  166. package/dist/cjs/cli/commands/service.js +554 -0
  167. package/dist/cjs/cli/commands/service.js.map +1 -0
  168. package/dist/cjs/cli/commands/start.d.ts +6 -0
  169. package/dist/cjs/cli/commands/start.d.ts.map +1 -0
  170. package/dist/cjs/cli/commands/start.js +308 -0
  171. package/dist/cjs/cli/commands/start.js.map +1 -0
  172. package/dist/cjs/cli/commands/status.d.ts +2 -0
  173. package/dist/cjs/cli/commands/status.d.ts.map +1 -0
  174. package/dist/cjs/cli/commands/status.js +225 -0
  175. package/dist/cjs/cli/commands/status.js.map +1 -0
  176. package/dist/cjs/cli/commands/stop.d.ts +6 -0
  177. package/dist/cjs/cli/commands/stop.d.ts.map +1 -0
  178. package/dist/cjs/cli/commands/stop.js +99 -0
  179. package/dist/cjs/cli/commands/stop.js.map +1 -0
  180. package/dist/cjs/cli/daemon/error-tracker.d.ts +119 -0
  181. package/dist/cjs/cli/daemon/error-tracker.d.ts.map +1 -0
  182. package/dist/cjs/cli/daemon/error-tracker.js +500 -0
  183. package/dist/cjs/cli/daemon/error-tracker.js.map +1 -0
  184. package/dist/cjs/cli/daemon/fault-shutdown.d.ts +144 -0
  185. package/dist/cjs/cli/daemon/fault-shutdown.d.ts.map +1 -0
  186. package/dist/cjs/cli/daemon/fault-shutdown.js +312 -0
  187. package/dist/cjs/cli/daemon/fault-shutdown.js.map +1 -0
  188. package/dist/cjs/cli/daemon/index.d.ts +12 -0
  189. package/dist/cjs/cli/daemon/index.d.ts.map +1 -0
  190. package/dist/cjs/cli/daemon/index.js +23 -0
  191. package/dist/cjs/cli/daemon/index.js.map +1 -0
  192. package/dist/cjs/cli/daemon/pid-file.d.ts +13 -0
  193. package/dist/cjs/cli/daemon/pid-file.d.ts.map +1 -0
  194. package/dist/cjs/cli/daemon/pid-file.js +90 -0
  195. package/dist/cjs/cli/daemon/pid-file.js.map +1 -0
  196. package/dist/cjs/cli/daemon/readiness.d.ts +30 -0
  197. package/dist/cjs/cli/daemon/readiness.d.ts.map +1 -0
  198. package/dist/cjs/cli/daemon/readiness.js +74 -0
  199. package/dist/cjs/cli/daemon/readiness.js.map +1 -0
  200. package/dist/cjs/cli/daemon/runtime.d.ts +366 -0
  201. package/dist/cjs/cli/daemon/runtime.d.ts.map +1 -0
  202. package/dist/cjs/cli/daemon/runtime.js +1343 -0
  203. package/dist/cjs/cli/daemon/runtime.js.map +1 -0
  204. package/dist/cjs/cli/daemon/shutdown.d.ts +7 -0
  205. package/dist/cjs/cli/daemon/shutdown.d.ts.map +1 -0
  206. package/dist/cjs/cli/daemon/shutdown.js +66 -0
  207. package/dist/cjs/cli/daemon/shutdown.js.map +1 -0
  208. package/dist/cjs/cli/daemon/signal-handlers.d.ts +3 -0
  209. package/dist/cjs/cli/daemon/signal-handlers.d.ts.map +1 -0
  210. package/dist/cjs/cli/daemon/signal-handlers.js +27 -0
  211. package/dist/cjs/cli/daemon/signal-handlers.js.map +1 -0
  212. package/dist/cjs/cli/daemon/state.d.ts +157 -0
  213. package/dist/cjs/cli/daemon/state.d.ts.map +1 -0
  214. package/dist/cjs/cli/daemon/state.js +397 -0
  215. package/dist/cjs/cli/daemon/state.js.map +1 -0
  216. package/dist/cjs/cli/daemon/status-file.d.ts +139 -0
  217. package/dist/cjs/cli/daemon/status-file.d.ts.map +1 -0
  218. package/dist/cjs/cli/daemon/status-file.js +88 -0
  219. package/dist/cjs/cli/daemon/status-file.js.map +1 -0
  220. package/dist/cjs/cli/doctor/checks.d.ts +133 -0
  221. package/dist/cjs/cli/doctor/checks.d.ts.map +1 -0
  222. package/dist/cjs/cli/doctor/checks.js +677 -0
  223. package/dist/cjs/cli/doctor/checks.js.map +1 -0
  224. package/dist/cjs/cli/doctor/fixes.d.ts +9 -0
  225. package/dist/cjs/cli/doctor/fixes.d.ts.map +1 -0
  226. package/dist/cjs/cli/doctor/fixes.js +199 -0
  227. package/dist/cjs/cli/doctor/fixes.js.map +1 -0
  228. package/dist/cjs/cli/doctor/index.d.ts +7 -0
  229. package/dist/cjs/cli/doctor/index.d.ts.map +1 -0
  230. package/dist/cjs/cli/doctor/index.js +27 -0
  231. package/dist/cjs/cli/doctor/index.js.map +1 -0
  232. package/dist/cjs/cli/index.d.ts +3 -0
  233. package/dist/cjs/cli/index.d.ts.map +1 -0
  234. package/dist/cjs/cli/index.js +336 -0
  235. package/dist/cjs/cli/index.js.map +1 -0
  236. package/dist/cjs/cli/interactive.d.ts +8 -0
  237. package/dist/cjs/cli/interactive.d.ts.map +1 -0
  238. package/dist/cjs/cli/interactive.js +670 -0
  239. package/dist/cjs/cli/interactive.js.map +1 -0
  240. package/dist/cjs/cli/logs/format.d.ts +13 -0
  241. package/dist/cjs/cli/logs/format.d.ts.map +1 -0
  242. package/dist/cjs/cli/logs/format.js +178 -0
  243. package/dist/cjs/cli/logs/format.js.map +1 -0
  244. package/dist/cjs/cli/logs/index.d.ts +3 -0
  245. package/dist/cjs/cli/logs/index.d.ts.map +1 -0
  246. package/dist/cjs/cli/logs/index.js +13 -0
  247. package/dist/cjs/cli/logs/index.js.map +1 -0
  248. package/dist/cjs/cli/logs/viewer.d.ts +41 -0
  249. package/dist/cjs/cli/logs/viewer.d.ts.map +1 -0
  250. package/dist/cjs/cli/logs/viewer.js +417 -0
  251. package/dist/cjs/cli/logs/viewer.js.map +1 -0
  252. package/dist/cjs/cli/ops/operation-logger.d.ts +63 -0
  253. package/dist/cjs/cli/ops/operation-logger.d.ts.map +1 -0
  254. package/dist/cjs/cli/ops/operation-logger.js +183 -0
  255. package/dist/cjs/cli/ops/operation-logger.js.map +1 -0
  256. package/dist/cjs/cli/palette.d.ts +11 -0
  257. package/dist/cjs/cli/palette.d.ts.map +1 -0
  258. package/dist/cjs/cli/palette.js +243 -0
  259. package/dist/cjs/cli/palette.js.map +1 -0
  260. package/dist/cjs/cli/prompt.d.ts +186 -0
  261. package/dist/cjs/cli/prompt.d.ts.map +1 -0
  262. package/dist/cjs/cli/prompt.js +541 -0
  263. package/dist/cjs/cli/prompt.js.map +1 -0
  264. package/dist/cjs/cli/ui/box.d.ts +21 -0
  265. package/dist/cjs/cli/ui/box.d.ts.map +1 -0
  266. package/dist/cjs/cli/ui/box.js +72 -0
  267. package/dist/cjs/cli/ui/box.js.map +1 -0
  268. package/dist/cjs/cli/ui/clipboard.d.ts +6 -0
  269. package/dist/cjs/cli/ui/clipboard.d.ts.map +1 -0
  270. package/dist/cjs/cli/ui/clipboard.js +78 -0
  271. package/dist/cjs/cli/ui/clipboard.js.map +1 -0
  272. package/dist/cjs/cli/ui/colors.d.ts +57 -0
  273. package/dist/cjs/cli/ui/colors.d.ts.map +1 -0
  274. package/dist/cjs/cli/ui/colors.js +151 -0
  275. package/dist/cjs/cli/ui/colors.js.map +1 -0
  276. package/dist/cjs/cli/ui/index.d.ts +9 -0
  277. package/dist/cjs/cli/ui/index.d.ts.map +1 -0
  278. package/dist/cjs/cli/ui/index.js +55 -0
  279. package/dist/cjs/cli/ui/index.js.map +1 -0
  280. package/dist/cjs/cli/ui/spinner.d.ts +12 -0
  281. package/dist/cjs/cli/ui/spinner.d.ts.map +1 -0
  282. package/dist/cjs/cli/ui/spinner.js +82 -0
  283. package/dist/cjs/cli/ui/spinner.js.map +1 -0
  284. package/dist/cjs/cli/ui/symbols.d.ts +47 -0
  285. package/dist/cjs/cli/ui/symbols.d.ts.map +1 -0
  286. package/dist/cjs/cli/ui/symbols.js +112 -0
  287. package/dist/cjs/cli/ui/symbols.js.map +1 -0
  288. package/dist/cjs/cli/ui/table.d.ts +23 -0
  289. package/dist/cjs/cli/ui/table.d.ts.map +1 -0
  290. package/dist/cjs/cli/ui/table.js +160 -0
  291. package/dist/cjs/cli/ui/table.js.map +1 -0
  292. package/dist/cjs/cli/ui/terminal.d.ts +7 -0
  293. package/dist/cjs/cli/ui/terminal.d.ts.map +1 -0
  294. package/dist/cjs/cli/ui/terminal.js +40 -0
  295. package/dist/cjs/cli/ui/terminal.js.map +1 -0
  296. package/dist/cjs/config/atomic-write.d.ts +69 -0
  297. package/dist/cjs/config/atomic-write.d.ts.map +1 -0
  298. package/dist/cjs/config/atomic-write.js +289 -0
  299. package/dist/cjs/config/atomic-write.js.map +1 -0
  300. package/dist/cjs/config/db-config.d.ts +134 -0
  301. package/dist/cjs/config/db-config.d.ts.map +1 -0
  302. package/dist/cjs/config/db-config.js +594 -0
  303. package/dist/cjs/config/db-config.js.map +1 -0
  304. package/dist/cjs/config/machine-config.d.ts +85 -0
  305. package/dist/cjs/config/machine-config.d.ts.map +1 -0
  306. package/dist/cjs/config/machine-config.js +232 -0
  307. package/dist/cjs/config/machine-config.js.map +1 -0
  308. package/dist/cjs/config/paths.d.ts +64 -0
  309. package/dist/cjs/config/paths.d.ts.map +1 -0
  310. package/dist/cjs/config/paths.js +155 -0
  311. package/dist/cjs/config/paths.js.map +1 -0
  312. package/dist/cjs/config/schema.d.ts +72 -0
  313. package/dist/cjs/config/schema.d.ts.map +1 -0
  314. package/dist/cjs/config/schema.js +197 -0
  315. package/dist/cjs/config/schema.js.map +1 -0
  316. package/dist/cjs/config/token.d.ts +63 -0
  317. package/dist/cjs/config/token.d.ts.map +1 -0
  318. package/dist/cjs/config/token.js +146 -0
  319. package/dist/cjs/config/token.js.map +1 -0
  320. package/dist/cjs/execution/canceller.d.ts +41 -0
  321. package/dist/cjs/execution/canceller.d.ts.map +1 -0
  322. package/dist/cjs/execution/canceller.js +209 -0
  323. package/dist/cjs/execution/canceller.js.map +1 -0
  324. package/dist/cjs/execution/database-lookup.d.ts +56 -0
  325. package/dist/cjs/execution/database-lookup.d.ts.map +1 -0
  326. package/dist/cjs/execution/database-lookup.js +43 -0
  327. package/dist/cjs/execution/database-lookup.js.map +1 -0
  328. package/dist/cjs/execution/dispatcher.d.ts +181 -0
  329. package/dist/cjs/execution/dispatcher.d.ts.map +1 -0
  330. package/dist/cjs/execution/dispatcher.js +1296 -0
  331. package/dist/cjs/execution/dispatcher.js.map +1 -0
  332. package/dist/cjs/execution/function-effects.d.ts +209 -0
  333. package/dist/cjs/execution/function-effects.d.ts.map +1 -0
  334. package/dist/cjs/execution/function-effects.js +596 -0
  335. package/dist/cjs/execution/function-effects.js.map +1 -0
  336. package/dist/cjs/execution/introspection.d.ts +76 -0
  337. package/dist/cjs/execution/introspection.d.ts.map +1 -0
  338. package/dist/cjs/execution/introspection.js +448 -0
  339. package/dist/cjs/execution/introspection.js.map +1 -0
  340. package/dist/cjs/execution/migration-runner.d.ts +128 -0
  341. package/dist/cjs/execution/migration-runner.d.ts.map +1 -0
  342. package/dist/cjs/execution/migration-runner.js +798 -0
  343. package/dist/cjs/execution/migration-runner.js.map +1 -0
  344. package/dist/cjs/execution/non-tx-detector.d.ts +23 -0
  345. package/dist/cjs/execution/non-tx-detector.d.ts.map +1 -0
  346. package/dist/cjs/execution/non-tx-detector.js +218 -0
  347. package/dist/cjs/execution/non-tx-detector.js.map +1 -0
  348. package/dist/cjs/execution/pool.d.ts +229 -0
  349. package/dist/cjs/execution/pool.d.ts.map +1 -0
  350. package/dist/cjs/execution/pool.js +738 -0
  351. package/dist/cjs/execution/pool.js.map +1 -0
  352. package/dist/cjs/execution/query-runner.d.ts +88 -0
  353. package/dist/cjs/execution/query-runner.d.ts.map +1 -0
  354. package/dist/cjs/execution/query-runner.js +751 -0
  355. package/dist/cjs/execution/query-runner.js.map +1 -0
  356. package/dist/cjs/execution/rate-limiter.d.ts +120 -0
  357. package/dist/cjs/execution/rate-limiter.d.ts.map +1 -0
  358. package/dist/cjs/execution/rate-limiter.js +273 -0
  359. package/dist/cjs/execution/rate-limiter.js.map +1 -0
  360. package/dist/cjs/execution/search-path.d.ts +161 -0
  361. package/dist/cjs/execution/search-path.d.ts.map +1 -0
  362. package/dist/cjs/execution/search-path.js +279 -0
  363. package/dist/cjs/execution/search-path.js.map +1 -0
  364. package/dist/cjs/execution/sql-parser.d.ts +195 -0
  365. package/dist/cjs/execution/sql-parser.d.ts.map +1 -0
  366. package/dist/cjs/execution/sql-parser.js +704 -0
  367. package/dist/cjs/execution/sql-parser.js.map +1 -0
  368. package/dist/cjs/execution/statement-classifier.d.ts +103 -0
  369. package/dist/cjs/execution/statement-classifier.d.ts.map +1 -0
  370. package/dist/cjs/execution/statement-classifier.js +535 -0
  371. package/dist/cjs/execution/statement-classifier.js.map +1 -0
  372. package/dist/cjs/execution/types.d.ts +189 -0
  373. package/dist/cjs/execution/types.d.ts.map +1 -0
  374. package/dist/cjs/execution/types.js +28 -0
  375. package/dist/cjs/execution/types.js.map +1 -0
  376. package/dist/cjs/index.d.ts +34 -0
  377. package/dist/cjs/index.d.ts.map +1 -0
  378. package/dist/cjs/index.js +98 -0
  379. package/dist/cjs/index.js.map +1 -0
  380. package/dist/cjs/permissions/auto-upgrade.d.ts +40 -0
  381. package/dist/cjs/permissions/auto-upgrade.d.ts.map +1 -0
  382. package/dist/cjs/permissions/auto-upgrade.js +168 -0
  383. package/dist/cjs/permissions/auto-upgrade.js.map +1 -0
  384. package/dist/cjs/permissions/checker.d.ts +53 -0
  385. package/dist/cjs/permissions/checker.d.ts.map +1 -0
  386. package/dist/cjs/permissions/checker.js +326 -0
  387. package/dist/cjs/permissions/checker.js.map +1 -0
  388. package/dist/cjs/permissions/manual-approval.d.ts +213 -0
  389. package/dist/cjs/permissions/manual-approval.d.ts.map +1 -0
  390. package/dist/cjs/permissions/manual-approval.js +541 -0
  391. package/dist/cjs/permissions/manual-approval.js.map +1 -0
  392. package/dist/cjs/permissions/plan-registry.d.ts +274 -0
  393. package/dist/cjs/permissions/plan-registry.d.ts.map +1 -0
  394. package/dist/cjs/permissions/plan-registry.js +454 -0
  395. package/dist/cjs/permissions/plan-registry.js.map +1 -0
  396. package/dist/cjs/permissions/role-policy.d.ts +217 -0
  397. package/dist/cjs/permissions/role-policy.d.ts.map +1 -0
  398. package/dist/cjs/permissions/role-policy.js +584 -0
  399. package/dist/cjs/permissions/role-policy.js.map +1 -0
  400. package/dist/cjs/permissions/types.d.ts +126 -0
  401. package/dist/cjs/permissions/types.d.ts.map +1 -0
  402. package/dist/cjs/permissions/types.js +3 -0
  403. package/dist/cjs/permissions/types.js.map +1 -0
  404. package/dist/cjs/protocol/constants.d.ts +72 -0
  405. package/dist/cjs/protocol/constants.d.ts.map +1 -0
  406. package/dist/cjs/protocol/constants.js +107 -0
  407. package/dist/cjs/protocol/constants.js.map +1 -0
  408. package/dist/cjs/protocol/envelope.d.ts +165 -0
  409. package/dist/cjs/protocol/envelope.d.ts.map +1 -0
  410. package/dist/cjs/protocol/envelope.js +309 -0
  411. package/dist/cjs/protocol/envelope.js.map +1 -0
  412. package/dist/cjs/protocol/errors.d.ts +33 -0
  413. package/dist/cjs/protocol/errors.d.ts.map +1 -0
  414. package/dist/cjs/protocol/errors.js +391 -0
  415. package/dist/cjs/protocol/errors.js.map +1 -0
  416. package/dist/cjs/protocol/messages.d.ts +327 -0
  417. package/dist/cjs/protocol/messages.d.ts.map +1 -0
  418. package/dist/cjs/protocol/messages.js +3 -0
  419. package/dist/cjs/protocol/messages.js.map +1 -0
  420. package/dist/cjs/protocol/serialize.d.ts +26 -0
  421. package/dist/cjs/protocol/serialize.d.ts.map +1 -0
  422. package/dist/cjs/protocol/serialize.js +71 -0
  423. package/dist/cjs/protocol/serialize.js.map +1 -0
  424. package/dist/cjs/protocol/validate.d.ts +135 -0
  425. package/dist/cjs/protocol/validate.d.ts.map +1 -0
  426. package/dist/cjs/protocol/validate.js +852 -0
  427. package/dist/cjs/protocol/validate.js.map +1 -0
  428. package/dist/esm/audit/chain.d.ts +365 -0
  429. package/dist/esm/audit/chain.d.ts.map +1 -0
  430. package/dist/esm/audit/chain.js +895 -0
  431. package/dist/esm/audit/chain.js.map +1 -0
  432. package/dist/esm/audit/cloud-client.d.ts +142 -0
  433. package/dist/esm/audit/cloud-client.d.ts.map +1 -0
  434. package/dist/esm/audit/cloud-client.js +326 -0
  435. package/dist/esm/audit/cloud-client.js.map +1 -0
  436. package/dist/esm/audit/cloud-writer.d.ts +57 -0
  437. package/dist/esm/audit/cloud-writer.d.ts.map +1 -0
  438. package/dist/esm/audit/cloud-writer.js +91 -0
  439. package/dist/esm/audit/cloud-writer.js.map +1 -0
  440. package/dist/esm/audit/context.d.ts +51 -0
  441. package/dist/esm/audit/context.d.ts.map +1 -0
  442. package/dist/esm/audit/context.js +69 -0
  443. package/dist/esm/audit/context.js.map +1 -0
  444. package/dist/esm/audit/files.d.ts +111 -0
  445. package/dist/esm/audit/files.d.ts.map +1 -0
  446. package/dist/esm/audit/files.js +361 -0
  447. package/dist/esm/audit/files.js.map +1 -0
  448. package/dist/esm/audit/index.d.ts +9 -0
  449. package/dist/esm/audit/index.d.ts.map +1 -0
  450. package/dist/esm/audit/index.js +8 -0
  451. package/dist/esm/audit/index.js.map +1 -0
  452. package/dist/esm/audit/local-writer.d.ts +255 -0
  453. package/dist/esm/audit/local-writer.d.ts.map +1 -0
  454. package/dist/esm/audit/local-writer.js +785 -0
  455. package/dist/esm/audit/local-writer.js.map +1 -0
  456. package/dist/esm/audit/redact.d.ts +151 -0
  457. package/dist/esm/audit/redact.d.ts.map +1 -0
  458. package/dist/esm/audit/redact.js +506 -0
  459. package/dist/esm/audit/redact.js.map +1 -0
  460. package/dist/esm/audit/sanitize.d.ts +78 -0
  461. package/dist/esm/audit/sanitize.d.ts.map +1 -0
  462. package/dist/esm/audit/sanitize.js +307 -0
  463. package/dist/esm/audit/sanitize.js.map +1 -0
  464. package/dist/esm/audit/sink.d.ts +278 -0
  465. package/dist/esm/audit/sink.d.ts.map +1 -0
  466. package/dist/esm/audit/sink.js +782 -0
  467. package/dist/esm/audit/sink.js.map +1 -0
  468. package/dist/esm/audit/types.d.ts +226 -0
  469. package/dist/esm/audit/types.d.ts.map +1 -0
  470. package/dist/esm/audit/types.js +2 -0
  471. package/dist/esm/audit/types.js.map +1 -0
  472. package/dist/esm/audit/verify-cache.d.ts +127 -0
  473. package/dist/esm/audit/verify-cache.d.ts.map +1 -0
  474. package/dist/esm/audit/verify-cache.js +628 -0
  475. package/dist/esm/audit/verify-cache.js.map +1 -0
  476. package/dist/esm/channels/agent-session.d.ts +228 -0
  477. package/dist/esm/channels/agent-session.d.ts.map +1 -0
  478. package/dist/esm/channels/agent-session.js +566 -0
  479. package/dist/esm/channels/agent-session.js.map +1 -0
  480. package/dist/esm/channels/data-channel.d.ts +181 -0
  481. package/dist/esm/channels/data-channel.d.ts.map +1 -0
  482. package/dist/esm/channels/data-channel.js +567 -0
  483. package/dist/esm/channels/data-channel.js.map +1 -0
  484. package/dist/esm/channels/reconnect.d.ts +142 -0
  485. package/dist/esm/channels/reconnect.d.ts.map +1 -0
  486. package/dist/esm/channels/reconnect.js +234 -0
  487. package/dist/esm/channels/reconnect.js.map +1 -0
  488. package/dist/esm/channels/types.d.ts +112 -0
  489. package/dist/esm/channels/types.d.ts.map +1 -0
  490. package/dist/esm/channels/types.js +2 -0
  491. package/dist/esm/channels/types.js.map +1 -0
  492. package/dist/esm/channels/wake-channel.d.ts +232 -0
  493. package/dist/esm/channels/wake-channel.d.ts.map +1 -0
  494. package/dist/esm/channels/wake-channel.js +715 -0
  495. package/dist/esm/channels/wake-channel.js.map +1 -0
  496. package/dist/esm/cli/banner.d.ts +2 -0
  497. package/dist/esm/cli/banner.d.ts.map +1 -0
  498. package/dist/esm/cli/banner.js +114 -0
  499. package/dist/esm/cli/banner.js.map +1 -0
  500. package/dist/esm/cli/commands/agent.d.ts +30 -0
  501. package/dist/esm/cli/commands/agent.d.ts.map +1 -0
  502. package/dist/esm/cli/commands/agent.js +204 -0
  503. package/dist/esm/cli/commands/agent.js.map +1 -0
  504. package/dist/esm/cli/commands/audit-verify.d.ts +19 -0
  505. package/dist/esm/cli/commands/audit-verify.d.ts.map +1 -0
  506. package/dist/esm/cli/commands/audit-verify.js +345 -0
  507. package/dist/esm/cli/commands/audit-verify.js.map +1 -0
  508. package/dist/esm/cli/commands/clean.d.ts +23 -0
  509. package/dist/esm/cli/commands/clean.d.ts.map +1 -0
  510. package/dist/esm/cli/commands/clean.js +235 -0
  511. package/dist/esm/cli/commands/clean.js.map +1 -0
  512. package/dist/esm/cli/commands/config-show.d.ts +2 -0
  513. package/dist/esm/cli/commands/config-show.d.ts.map +1 -0
  514. package/dist/esm/cli/commands/config-show.js +2 -0
  515. package/dist/esm/cli/commands/config-show.js.map +1 -0
  516. package/dist/esm/cli/commands/config.d.ts +6 -0
  517. package/dist/esm/cli/commands/config.d.ts.map +1 -0
  518. package/dist/esm/cli/commands/config.js +259 -0
  519. package/dist/esm/cli/commands/config.js.map +1 -0
  520. package/dist/esm/cli/commands/db-add.d.ts +16 -0
  521. package/dist/esm/cli/commands/db-add.d.ts.map +1 -0
  522. package/dist/esm/cli/commands/db-add.js +576 -0
  523. package/dist/esm/cli/commands/db-add.js.map +1 -0
  524. package/dist/esm/cli/commands/db-edit.d.ts +2 -0
  525. package/dist/esm/cli/commands/db-edit.d.ts.map +1 -0
  526. package/dist/esm/cli/commands/db-edit.js +352 -0
  527. package/dist/esm/cli/commands/db-edit.js.map +1 -0
  528. package/dist/esm/cli/commands/db-logs.d.ts +3 -0
  529. package/dist/esm/cli/commands/db-logs.d.ts.map +1 -0
  530. package/dist/esm/cli/commands/db-logs.js +64 -0
  531. package/dist/esm/cli/commands/db-logs.js.map +1 -0
  532. package/dist/esm/cli/commands/db-ls.d.ts +2 -0
  533. package/dist/esm/cli/commands/db-ls.d.ts.map +1 -0
  534. package/dist/esm/cli/commands/db-ls.js +115 -0
  535. package/dist/esm/cli/commands/db-ls.js.map +1 -0
  536. package/dist/esm/cli/commands/db-query.d.ts +121 -0
  537. package/dist/esm/cli/commands/db-query.d.ts.map +1 -0
  538. package/dist/esm/cli/commands/db-query.js +754 -0
  539. package/dist/esm/cli/commands/db-query.js.map +1 -0
  540. package/dist/esm/cli/commands/db-remove.d.ts +2 -0
  541. package/dist/esm/cli/commands/db-remove.d.ts.map +1 -0
  542. package/dist/esm/cli/commands/db-remove.js +48 -0
  543. package/dist/esm/cli/commands/db-remove.js.map +1 -0
  544. package/dist/esm/cli/commands/db-show.d.ts +2 -0
  545. package/dist/esm/cli/commands/db-show.d.ts.map +1 -0
  546. package/dist/esm/cli/commands/db-show.js +131 -0
  547. package/dist/esm/cli/commands/db-show.js.map +1 -0
  548. package/dist/esm/cli/commands/db-test.d.ts +3 -0
  549. package/dist/esm/cli/commands/db-test.d.ts.map +1 -0
  550. package/dist/esm/cli/commands/db-test.js +307 -0
  551. package/dist/esm/cli/commands/db-test.js.map +1 -0
  552. package/dist/esm/cli/commands/db.d.ts +11 -0
  553. package/dist/esm/cli/commands/db.d.ts.map +1 -0
  554. package/dist/esm/cli/commands/db.js +76 -0
  555. package/dist/esm/cli/commands/db.js.map +1 -0
  556. package/dist/esm/cli/commands/debug.d.ts +2 -0
  557. package/dist/esm/cli/commands/debug.d.ts.map +1 -0
  558. package/dist/esm/cli/commands/debug.js +205 -0
  559. package/dist/esm/cli/commands/debug.js.map +1 -0
  560. package/dist/esm/cli/commands/doctor.d.ts +5 -0
  561. package/dist/esm/cli/commands/doctor.d.ts.map +1 -0
  562. package/dist/esm/cli/commands/doctor.js +114 -0
  563. package/dist/esm/cli/commands/doctor.js.map +1 -0
  564. package/dist/esm/cli/commands/index.d.ts +10 -0
  565. package/dist/esm/cli/commands/index.d.ts.map +1 -0
  566. package/dist/esm/cli/commands/index.js +10 -0
  567. package/dist/esm/cli/commands/index.js.map +1 -0
  568. package/dist/esm/cli/commands/init.d.ts +2 -0
  569. package/dist/esm/cli/commands/init.d.ts.map +1 -0
  570. package/dist/esm/cli/commands/init.js +163 -0
  571. package/dist/esm/cli/commands/init.js.map +1 -0
  572. package/dist/esm/cli/commands/link.d.ts +5 -0
  573. package/dist/esm/cli/commands/link.d.ts.map +1 -0
  574. package/dist/esm/cli/commands/link.js +41 -0
  575. package/dist/esm/cli/commands/link.js.map +1 -0
  576. package/dist/esm/cli/commands/logs.d.ts +17 -0
  577. package/dist/esm/cli/commands/logs.d.ts.map +1 -0
  578. package/dist/esm/cli/commands/logs.js +278 -0
  579. package/dist/esm/cli/commands/logs.js.map +1 -0
  580. package/dist/esm/cli/commands/project-show.d.ts +2 -0
  581. package/dist/esm/cli/commands/project-show.d.ts.map +1 -0
  582. package/dist/esm/cli/commands/project-show.js +69 -0
  583. package/dist/esm/cli/commands/project-show.js.map +1 -0
  584. package/dist/esm/cli/commands/project.d.ts +3 -0
  585. package/dist/esm/cli/commands/project.d.ts.map +1 -0
  586. package/dist/esm/cli/commands/project.js +60 -0
  587. package/dist/esm/cli/commands/project.js.map +1 -0
  588. package/dist/esm/cli/commands/service.d.ts +123 -0
  589. package/dist/esm/cli/commands/service.d.ts.map +1 -0
  590. package/dist/esm/cli/commands/service.js +505 -0
  591. package/dist/esm/cli/commands/service.js.map +1 -0
  592. package/dist/esm/cli/commands/start.d.ts +6 -0
  593. package/dist/esm/cli/commands/start.d.ts.map +1 -0
  594. package/dist/esm/cli/commands/start.js +272 -0
  595. package/dist/esm/cli/commands/start.js.map +1 -0
  596. package/dist/esm/cli/commands/status.d.ts +2 -0
  597. package/dist/esm/cli/commands/status.d.ts.map +1 -0
  598. package/dist/esm/cli/commands/status.js +222 -0
  599. package/dist/esm/cli/commands/status.js.map +1 -0
  600. package/dist/esm/cli/commands/stop.d.ts +6 -0
  601. package/dist/esm/cli/commands/stop.d.ts.map +1 -0
  602. package/dist/esm/cli/commands/stop.js +96 -0
  603. package/dist/esm/cli/commands/stop.js.map +1 -0
  604. package/dist/esm/cli/daemon/error-tracker.d.ts +119 -0
  605. package/dist/esm/cli/daemon/error-tracker.d.ts.map +1 -0
  606. package/dist/esm/cli/daemon/error-tracker.js +451 -0
  607. package/dist/esm/cli/daemon/error-tracker.js.map +1 -0
  608. package/dist/esm/cli/daemon/fault-shutdown.d.ts +144 -0
  609. package/dist/esm/cli/daemon/fault-shutdown.d.ts.map +1 -0
  610. package/dist/esm/cli/daemon/fault-shutdown.js +273 -0
  611. package/dist/esm/cli/daemon/fault-shutdown.js.map +1 -0
  612. package/dist/esm/cli/daemon/index.d.ts +12 -0
  613. package/dist/esm/cli/daemon/index.d.ts.map +1 -0
  614. package/dist/esm/cli/daemon/index.js +7 -0
  615. package/dist/esm/cli/daemon/index.js.map +1 -0
  616. package/dist/esm/cli/daemon/pid-file.d.ts +13 -0
  617. package/dist/esm/cli/daemon/pid-file.d.ts.map +1 -0
  618. package/dist/esm/cli/daemon/pid-file.js +51 -0
  619. package/dist/esm/cli/daemon/pid-file.js.map +1 -0
  620. package/dist/esm/cli/daemon/readiness.d.ts +30 -0
  621. package/dist/esm/cli/daemon/readiness.d.ts.map +1 -0
  622. package/dist/esm/cli/daemon/readiness.js +70 -0
  623. package/dist/esm/cli/daemon/readiness.js.map +1 -0
  624. package/dist/esm/cli/daemon/runtime.d.ts +366 -0
  625. package/dist/esm/cli/daemon/runtime.d.ts.map +1 -0
  626. package/dist/esm/cli/daemon/runtime.js +1284 -0
  627. package/dist/esm/cli/daemon/runtime.js.map +1 -0
  628. package/dist/esm/cli/daemon/shutdown.d.ts +7 -0
  629. package/dist/esm/cli/daemon/shutdown.d.ts.map +1 -0
  630. package/dist/esm/cli/daemon/shutdown.js +63 -0
  631. package/dist/esm/cli/daemon/shutdown.js.map +1 -0
  632. package/dist/esm/cli/daemon/signal-handlers.d.ts +3 -0
  633. package/dist/esm/cli/daemon/signal-handlers.d.ts.map +1 -0
  634. package/dist/esm/cli/daemon/signal-handlers.js +24 -0
  635. package/dist/esm/cli/daemon/signal-handlers.js.map +1 -0
  636. package/dist/esm/cli/daemon/state.d.ts +157 -0
  637. package/dist/esm/cli/daemon/state.d.ts.map +1 -0
  638. package/dist/esm/cli/daemon/state.js +352 -0
  639. package/dist/esm/cli/daemon/state.js.map +1 -0
  640. package/dist/esm/cli/daemon/status-file.d.ts +139 -0
  641. package/dist/esm/cli/daemon/status-file.d.ts.map +1 -0
  642. package/dist/esm/cli/daemon/status-file.js +50 -0
  643. package/dist/esm/cli/daemon/status-file.js.map +1 -0
  644. package/dist/esm/cli/doctor/checks.d.ts +133 -0
  645. package/dist/esm/cli/doctor/checks.d.ts.map +1 -0
  646. package/dist/esm/cli/doctor/checks.js +624 -0
  647. package/dist/esm/cli/doctor/checks.js.map +1 -0
  648. package/dist/esm/cli/doctor/fixes.d.ts +9 -0
  649. package/dist/esm/cli/doctor/fixes.d.ts.map +1 -0
  650. package/dist/esm/cli/doctor/fixes.js +163 -0
  651. package/dist/esm/cli/doctor/fixes.js.map +1 -0
  652. package/dist/esm/cli/doctor/index.d.ts +7 -0
  653. package/dist/esm/cli/doctor/index.d.ts.map +1 -0
  654. package/dist/esm/cli/doctor/index.js +5 -0
  655. package/dist/esm/cli/doctor/index.js.map +1 -0
  656. package/dist/esm/cli/index.d.ts +3 -0
  657. package/dist/esm/cli/index.d.ts.map +1 -0
  658. package/dist/esm/cli/index.js +333 -0
  659. package/dist/esm/cli/index.js.map +1 -0
  660. package/dist/esm/cli/interactive.d.ts +8 -0
  661. package/dist/esm/cli/interactive.d.ts.map +1 -0
  662. package/dist/esm/cli/interactive.js +665 -0
  663. package/dist/esm/cli/interactive.js.map +1 -0
  664. package/dist/esm/cli/logs/format.d.ts +13 -0
  665. package/dist/esm/cli/logs/format.d.ts.map +1 -0
  666. package/dist/esm/cli/logs/format.js +169 -0
  667. package/dist/esm/cli/logs/format.js.map +1 -0
  668. package/dist/esm/cli/logs/index.d.ts +3 -0
  669. package/dist/esm/cli/logs/index.d.ts.map +1 -0
  670. package/dist/esm/cli/logs/index.js +3 -0
  671. package/dist/esm/cli/logs/index.js.map +1 -0
  672. package/dist/esm/cli/logs/viewer.d.ts +41 -0
  673. package/dist/esm/cli/logs/viewer.d.ts.map +1 -0
  674. package/dist/esm/cli/logs/viewer.js +412 -0
  675. package/dist/esm/cli/logs/viewer.js.map +1 -0
  676. package/dist/esm/cli/ops/operation-logger.d.ts +63 -0
  677. package/dist/esm/cli/ops/operation-logger.d.ts.map +1 -0
  678. package/dist/esm/cli/ops/operation-logger.js +142 -0
  679. package/dist/esm/cli/ops/operation-logger.js.map +1 -0
  680. package/dist/esm/cli/palette.d.ts +11 -0
  681. package/dist/esm/cli/palette.d.ts.map +1 -0
  682. package/dist/esm/cli/palette.js +240 -0
  683. package/dist/esm/cli/palette.js.map +1 -0
  684. package/dist/esm/cli/prompt.d.ts +186 -0
  685. package/dist/esm/cli/prompt.d.ts.map +1 -0
  686. package/dist/esm/cli/prompt.js +483 -0
  687. package/dist/esm/cli/prompt.js.map +1 -0
  688. package/dist/esm/cli/ui/box.d.ts +21 -0
  689. package/dist/esm/cli/ui/box.d.ts.map +1 -0
  690. package/dist/esm/cli/ui/box.js +60 -0
  691. package/dist/esm/cli/ui/box.js.map +1 -0
  692. package/dist/esm/cli/ui/clipboard.d.ts +6 -0
  693. package/dist/esm/cli/ui/clipboard.d.ts.map +1 -0
  694. package/dist/esm/cli/ui/clipboard.js +42 -0
  695. package/dist/esm/cli/ui/clipboard.js.map +1 -0
  696. package/dist/esm/cli/ui/colors.d.ts +57 -0
  697. package/dist/esm/cli/ui/colors.d.ts.map +1 -0
  698. package/dist/esm/cli/ui/colors.js +126 -0
  699. package/dist/esm/cli/ui/colors.js.map +1 -0
  700. package/dist/esm/cli/ui/index.d.ts +9 -0
  701. package/dist/esm/cli/ui/index.d.ts.map +1 -0
  702. package/dist/esm/cli/ui/index.js +7 -0
  703. package/dist/esm/cli/ui/index.js.map +1 -0
  704. package/dist/esm/cli/ui/spinner.d.ts +12 -0
  705. package/dist/esm/cli/ui/spinner.d.ts.map +1 -0
  706. package/dist/esm/cli/ui/spinner.js +78 -0
  707. package/dist/esm/cli/ui/spinner.js.map +1 -0
  708. package/dist/esm/cli/ui/symbols.d.ts +47 -0
  709. package/dist/esm/cli/ui/symbols.d.ts.map +1 -0
  710. package/dist/esm/cli/ui/symbols.js +109 -0
  711. package/dist/esm/cli/ui/symbols.js.map +1 -0
  712. package/dist/esm/cli/ui/table.d.ts +23 -0
  713. package/dist/esm/cli/ui/table.d.ts.map +1 -0
  714. package/dist/esm/cli/ui/table.js +156 -0
  715. package/dist/esm/cli/ui/table.js.map +1 -0
  716. package/dist/esm/cli/ui/terminal.d.ts +7 -0
  717. package/dist/esm/cli/ui/terminal.d.ts.map +1 -0
  718. package/dist/esm/cli/ui/terminal.js +32 -0
  719. package/dist/esm/cli/ui/terminal.js.map +1 -0
  720. package/dist/esm/config/atomic-write.d.ts +69 -0
  721. package/dist/esm/config/atomic-write.d.ts.map +1 -0
  722. package/dist/esm/config/atomic-write.js +246 -0
  723. package/dist/esm/config/atomic-write.js.map +1 -0
  724. package/dist/esm/config/db-config.d.ts +134 -0
  725. package/dist/esm/config/db-config.d.ts.map +1 -0
  726. package/dist/esm/config/db-config.js +542 -0
  727. package/dist/esm/config/db-config.js.map +1 -0
  728. package/dist/esm/config/machine-config.d.ts +85 -0
  729. package/dist/esm/config/machine-config.d.ts.map +1 -0
  730. package/dist/esm/config/machine-config.js +190 -0
  731. package/dist/esm/config/machine-config.js.map +1 -0
  732. package/dist/esm/config/paths.d.ts +64 -0
  733. package/dist/esm/config/paths.d.ts.map +1 -0
  734. package/dist/esm/config/paths.js +108 -0
  735. package/dist/esm/config/paths.js.map +1 -0
  736. package/dist/esm/config/schema.d.ts +72 -0
  737. package/dist/esm/config/schema.d.ts.map +1 -0
  738. package/dist/esm/config/schema.js +180 -0
  739. package/dist/esm/config/schema.js.map +1 -0
  740. package/dist/esm/config/token.d.ts +63 -0
  741. package/dist/esm/config/token.d.ts.map +1 -0
  742. package/dist/esm/config/token.js +104 -0
  743. package/dist/esm/config/token.js.map +1 -0
  744. package/dist/esm/execution/canceller.d.ts +41 -0
  745. package/dist/esm/execution/canceller.d.ts.map +1 -0
  746. package/dist/esm/execution/canceller.js +205 -0
  747. package/dist/esm/execution/canceller.js.map +1 -0
  748. package/dist/esm/execution/database-lookup.d.ts +56 -0
  749. package/dist/esm/execution/database-lookup.d.ts.map +1 -0
  750. package/dist/esm/execution/database-lookup.js +38 -0
  751. package/dist/esm/execution/database-lookup.js.map +1 -0
  752. package/dist/esm/execution/dispatcher.d.ts +181 -0
  753. package/dist/esm/execution/dispatcher.d.ts.map +1 -0
  754. package/dist/esm/execution/dispatcher.js +1258 -0
  755. package/dist/esm/execution/dispatcher.js.map +1 -0
  756. package/dist/esm/execution/function-effects.d.ts +209 -0
  757. package/dist/esm/execution/function-effects.d.ts.map +1 -0
  758. package/dist/esm/execution/function-effects.js +586 -0
  759. package/dist/esm/execution/function-effects.js.map +1 -0
  760. package/dist/esm/execution/introspection.d.ts +76 -0
  761. package/dist/esm/execution/introspection.d.ts.map +1 -0
  762. package/dist/esm/execution/introspection.js +442 -0
  763. package/dist/esm/execution/introspection.js.map +1 -0
  764. package/dist/esm/execution/migration-runner.d.ts +128 -0
  765. package/dist/esm/execution/migration-runner.d.ts.map +1 -0
  766. package/dist/esm/execution/migration-runner.js +754 -0
  767. package/dist/esm/execution/migration-runner.js.map +1 -0
  768. package/dist/esm/execution/non-tx-detector.d.ts +23 -0
  769. package/dist/esm/execution/non-tx-detector.d.ts.map +1 -0
  770. package/dist/esm/execution/non-tx-detector.js +215 -0
  771. package/dist/esm/execution/non-tx-detector.js.map +1 -0
  772. package/dist/esm/execution/pool.d.ts +229 -0
  773. package/dist/esm/execution/pool.d.ts.map +1 -0
  774. package/dist/esm/execution/pool.js +685 -0
  775. package/dist/esm/execution/pool.js.map +1 -0
  776. package/dist/esm/execution/query-runner.d.ts +88 -0
  777. package/dist/esm/execution/query-runner.d.ts.map +1 -0
  778. package/dist/esm/execution/query-runner.js +743 -0
  779. package/dist/esm/execution/query-runner.js.map +1 -0
  780. package/dist/esm/execution/rate-limiter.d.ts +120 -0
  781. package/dist/esm/execution/rate-limiter.d.ts.map +1 -0
  782. package/dist/esm/execution/rate-limiter.js +269 -0
  783. package/dist/esm/execution/rate-limiter.js.map +1 -0
  784. package/dist/esm/execution/search-path.d.ts +161 -0
  785. package/dist/esm/execution/search-path.d.ts.map +1 -0
  786. package/dist/esm/execution/search-path.js +270 -0
  787. package/dist/esm/execution/search-path.js.map +1 -0
  788. package/dist/esm/execution/sql-parser.d.ts +195 -0
  789. package/dist/esm/execution/sql-parser.d.ts.map +1 -0
  790. package/dist/esm/execution/sql-parser.js +683 -0
  791. package/dist/esm/execution/sql-parser.js.map +1 -0
  792. package/dist/esm/execution/statement-classifier.d.ts +103 -0
  793. package/dist/esm/execution/statement-classifier.d.ts.map +1 -0
  794. package/dist/esm/execution/statement-classifier.js +526 -0
  795. package/dist/esm/execution/statement-classifier.js.map +1 -0
  796. package/dist/esm/execution/types.d.ts +189 -0
  797. package/dist/esm/execution/types.d.ts.map +1 -0
  798. package/dist/esm/execution/types.js +22 -0
  799. package/dist/esm/execution/types.js.map +1 -0
  800. package/dist/esm/index.d.ts +34 -0
  801. package/dist/esm/index.d.ts.map +1 -0
  802. package/dist/esm/index.js +38 -0
  803. package/dist/esm/index.js.map +1 -0
  804. package/dist/esm/permissions/auto-upgrade.d.ts +40 -0
  805. package/dist/esm/permissions/auto-upgrade.d.ts.map +1 -0
  806. package/dist/esm/permissions/auto-upgrade.js +164 -0
  807. package/dist/esm/permissions/auto-upgrade.js.map +1 -0
  808. package/dist/esm/permissions/checker.d.ts +53 -0
  809. package/dist/esm/permissions/checker.d.ts.map +1 -0
  810. package/dist/esm/permissions/checker.js +322 -0
  811. package/dist/esm/permissions/checker.js.map +1 -0
  812. package/dist/esm/permissions/manual-approval.d.ts +213 -0
  813. package/dist/esm/permissions/manual-approval.d.ts.map +1 -0
  814. package/dist/esm/permissions/manual-approval.js +503 -0
  815. package/dist/esm/permissions/manual-approval.js.map +1 -0
  816. package/dist/esm/permissions/plan-registry.d.ts +274 -0
  817. package/dist/esm/permissions/plan-registry.d.ts.map +1 -0
  818. package/dist/esm/permissions/plan-registry.js +450 -0
  819. package/dist/esm/permissions/plan-registry.js.map +1 -0
  820. package/dist/esm/permissions/role-policy.d.ts +217 -0
  821. package/dist/esm/permissions/role-policy.d.ts.map +1 -0
  822. package/dist/esm/permissions/role-policy.js +570 -0
  823. package/dist/esm/permissions/role-policy.js.map +1 -0
  824. package/dist/esm/permissions/types.d.ts +126 -0
  825. package/dist/esm/permissions/types.d.ts.map +1 -0
  826. package/dist/esm/permissions/types.js +2 -0
  827. package/dist/esm/permissions/types.js.map +1 -0
  828. package/dist/esm/protocol/constants.d.ts +72 -0
  829. package/dist/esm/protocol/constants.d.ts.map +1 -0
  830. package/dist/esm/protocol/constants.js +104 -0
  831. package/dist/esm/protocol/constants.js.map +1 -0
  832. package/dist/esm/protocol/envelope.d.ts +165 -0
  833. package/dist/esm/protocol/envelope.d.ts.map +1 -0
  834. package/dist/esm/protocol/envelope.js +263 -0
  835. package/dist/esm/protocol/envelope.js.map +1 -0
  836. package/dist/esm/protocol/errors.d.ts +33 -0
  837. package/dist/esm/protocol/errors.d.ts.map +1 -0
  838. package/dist/esm/protocol/errors.js +384 -0
  839. package/dist/esm/protocol/errors.js.map +1 -0
  840. package/dist/esm/protocol/messages.d.ts +327 -0
  841. package/dist/esm/protocol/messages.d.ts.map +1 -0
  842. package/dist/esm/protocol/messages.js +2 -0
  843. package/dist/esm/protocol/messages.js.map +1 -0
  844. package/dist/esm/protocol/serialize.d.ts +26 -0
  845. package/dist/esm/protocol/serialize.d.ts.map +1 -0
  846. package/dist/esm/protocol/serialize.js +63 -0
  847. package/dist/esm/protocol/serialize.js.map +1 -0
  848. package/dist/esm/protocol/validate.d.ts +135 -0
  849. package/dist/esm/protocol/validate.d.ts.map +1 -0
  850. package/dist/esm/protocol/validate.js +830 -0
  851. package/dist/esm/protocol/validate.js.map +1 -0
  852. package/dist/types/audit/chain.d.ts +365 -0
  853. package/dist/types/audit/chain.d.ts.map +1 -0
  854. package/dist/types/audit/cloud-client.d.ts +142 -0
  855. package/dist/types/audit/cloud-client.d.ts.map +1 -0
  856. package/dist/types/audit/cloud-writer.d.ts +57 -0
  857. package/dist/types/audit/cloud-writer.d.ts.map +1 -0
  858. package/dist/types/audit/context.d.ts +51 -0
  859. package/dist/types/audit/context.d.ts.map +1 -0
  860. package/dist/types/audit/files.d.ts +111 -0
  861. package/dist/types/audit/files.d.ts.map +1 -0
  862. package/dist/types/audit/index.d.ts +9 -0
  863. package/dist/types/audit/index.d.ts.map +1 -0
  864. package/dist/types/audit/local-writer.d.ts +255 -0
  865. package/dist/types/audit/local-writer.d.ts.map +1 -0
  866. package/dist/types/audit/redact.d.ts +151 -0
  867. package/dist/types/audit/redact.d.ts.map +1 -0
  868. package/dist/types/audit/sanitize.d.ts +78 -0
  869. package/dist/types/audit/sanitize.d.ts.map +1 -0
  870. package/dist/types/audit/sink.d.ts +278 -0
  871. package/dist/types/audit/sink.d.ts.map +1 -0
  872. package/dist/types/audit/types.d.ts +226 -0
  873. package/dist/types/audit/types.d.ts.map +1 -0
  874. package/dist/types/audit/verify-cache.d.ts +127 -0
  875. package/dist/types/audit/verify-cache.d.ts.map +1 -0
  876. package/dist/types/channels/agent-session.d.ts +228 -0
  877. package/dist/types/channels/agent-session.d.ts.map +1 -0
  878. package/dist/types/channels/data-channel.d.ts +181 -0
  879. package/dist/types/channels/data-channel.d.ts.map +1 -0
  880. package/dist/types/channels/reconnect.d.ts +142 -0
  881. package/dist/types/channels/reconnect.d.ts.map +1 -0
  882. package/dist/types/channels/types.d.ts +112 -0
  883. package/dist/types/channels/types.d.ts.map +1 -0
  884. package/dist/types/channels/wake-channel.d.ts +232 -0
  885. package/dist/types/channels/wake-channel.d.ts.map +1 -0
  886. package/dist/types/cli/banner.d.ts +2 -0
  887. package/dist/types/cli/banner.d.ts.map +1 -0
  888. package/dist/types/cli/commands/agent.d.ts +30 -0
  889. package/dist/types/cli/commands/agent.d.ts.map +1 -0
  890. package/dist/types/cli/commands/audit-verify.d.ts +19 -0
  891. package/dist/types/cli/commands/audit-verify.d.ts.map +1 -0
  892. package/dist/types/cli/commands/clean.d.ts +23 -0
  893. package/dist/types/cli/commands/clean.d.ts.map +1 -0
  894. package/dist/types/cli/commands/config-show.d.ts +2 -0
  895. package/dist/types/cli/commands/config-show.d.ts.map +1 -0
  896. package/dist/types/cli/commands/config.d.ts +6 -0
  897. package/dist/types/cli/commands/config.d.ts.map +1 -0
  898. package/dist/types/cli/commands/db-add.d.ts +16 -0
  899. package/dist/types/cli/commands/db-add.d.ts.map +1 -0
  900. package/dist/types/cli/commands/db-edit.d.ts +2 -0
  901. package/dist/types/cli/commands/db-edit.d.ts.map +1 -0
  902. package/dist/types/cli/commands/db-logs.d.ts +3 -0
  903. package/dist/types/cli/commands/db-logs.d.ts.map +1 -0
  904. package/dist/types/cli/commands/db-ls.d.ts +2 -0
  905. package/dist/types/cli/commands/db-ls.d.ts.map +1 -0
  906. package/dist/types/cli/commands/db-query.d.ts +121 -0
  907. package/dist/types/cli/commands/db-query.d.ts.map +1 -0
  908. package/dist/types/cli/commands/db-remove.d.ts +2 -0
  909. package/dist/types/cli/commands/db-remove.d.ts.map +1 -0
  910. package/dist/types/cli/commands/db-show.d.ts +2 -0
  911. package/dist/types/cli/commands/db-show.d.ts.map +1 -0
  912. package/dist/types/cli/commands/db-test.d.ts +3 -0
  913. package/dist/types/cli/commands/db-test.d.ts.map +1 -0
  914. package/dist/types/cli/commands/db.d.ts +11 -0
  915. package/dist/types/cli/commands/db.d.ts.map +1 -0
  916. package/dist/types/cli/commands/debug.d.ts +2 -0
  917. package/dist/types/cli/commands/debug.d.ts.map +1 -0
  918. package/dist/types/cli/commands/doctor.d.ts +5 -0
  919. package/dist/types/cli/commands/doctor.d.ts.map +1 -0
  920. package/dist/types/cli/commands/index.d.ts +10 -0
  921. package/dist/types/cli/commands/index.d.ts.map +1 -0
  922. package/dist/types/cli/commands/init.d.ts +2 -0
  923. package/dist/types/cli/commands/init.d.ts.map +1 -0
  924. package/dist/types/cli/commands/link.d.ts +5 -0
  925. package/dist/types/cli/commands/link.d.ts.map +1 -0
  926. package/dist/types/cli/commands/logs.d.ts +17 -0
  927. package/dist/types/cli/commands/logs.d.ts.map +1 -0
  928. package/dist/types/cli/commands/project-show.d.ts +2 -0
  929. package/dist/types/cli/commands/project-show.d.ts.map +1 -0
  930. package/dist/types/cli/commands/project.d.ts +3 -0
  931. package/dist/types/cli/commands/project.d.ts.map +1 -0
  932. package/dist/types/cli/commands/service.d.ts +123 -0
  933. package/dist/types/cli/commands/service.d.ts.map +1 -0
  934. package/dist/types/cli/commands/start.d.ts +6 -0
  935. package/dist/types/cli/commands/start.d.ts.map +1 -0
  936. package/dist/types/cli/commands/status.d.ts +2 -0
  937. package/dist/types/cli/commands/status.d.ts.map +1 -0
  938. package/dist/types/cli/commands/stop.d.ts +6 -0
  939. package/dist/types/cli/commands/stop.d.ts.map +1 -0
  940. package/dist/types/cli/daemon/error-tracker.d.ts +119 -0
  941. package/dist/types/cli/daemon/error-tracker.d.ts.map +1 -0
  942. package/dist/types/cli/daemon/fault-shutdown.d.ts +144 -0
  943. package/dist/types/cli/daemon/fault-shutdown.d.ts.map +1 -0
  944. package/dist/types/cli/daemon/index.d.ts +12 -0
  945. package/dist/types/cli/daemon/index.d.ts.map +1 -0
  946. package/dist/types/cli/daemon/pid-file.d.ts +13 -0
  947. package/dist/types/cli/daemon/pid-file.d.ts.map +1 -0
  948. package/dist/types/cli/daemon/readiness.d.ts +30 -0
  949. package/dist/types/cli/daemon/readiness.d.ts.map +1 -0
  950. package/dist/types/cli/daemon/runtime.d.ts +366 -0
  951. package/dist/types/cli/daemon/runtime.d.ts.map +1 -0
  952. package/dist/types/cli/daemon/shutdown.d.ts +7 -0
  953. package/dist/types/cli/daemon/shutdown.d.ts.map +1 -0
  954. package/dist/types/cli/daemon/signal-handlers.d.ts +3 -0
  955. package/dist/types/cli/daemon/signal-handlers.d.ts.map +1 -0
  956. package/dist/types/cli/daemon/state.d.ts +157 -0
  957. package/dist/types/cli/daemon/state.d.ts.map +1 -0
  958. package/dist/types/cli/daemon/status-file.d.ts +139 -0
  959. package/dist/types/cli/daemon/status-file.d.ts.map +1 -0
  960. package/dist/types/cli/doctor/checks.d.ts +133 -0
  961. package/dist/types/cli/doctor/checks.d.ts.map +1 -0
  962. package/dist/types/cli/doctor/fixes.d.ts +9 -0
  963. package/dist/types/cli/doctor/fixes.d.ts.map +1 -0
  964. package/dist/types/cli/doctor/index.d.ts +7 -0
  965. package/dist/types/cli/doctor/index.d.ts.map +1 -0
  966. package/dist/types/cli/index.d.ts +3 -0
  967. package/dist/types/cli/index.d.ts.map +1 -0
  968. package/dist/types/cli/interactive.d.ts +8 -0
  969. package/dist/types/cli/interactive.d.ts.map +1 -0
  970. package/dist/types/cli/logs/format.d.ts +13 -0
  971. package/dist/types/cli/logs/format.d.ts.map +1 -0
  972. package/dist/types/cli/logs/index.d.ts +3 -0
  973. package/dist/types/cli/logs/index.d.ts.map +1 -0
  974. package/dist/types/cli/logs/viewer.d.ts +41 -0
  975. package/dist/types/cli/logs/viewer.d.ts.map +1 -0
  976. package/dist/types/cli/ops/operation-logger.d.ts +63 -0
  977. package/dist/types/cli/ops/operation-logger.d.ts.map +1 -0
  978. package/dist/types/cli/palette.d.ts +11 -0
  979. package/dist/types/cli/palette.d.ts.map +1 -0
  980. package/dist/types/cli/prompt.d.ts +186 -0
  981. package/dist/types/cli/prompt.d.ts.map +1 -0
  982. package/dist/types/cli/ui/box.d.ts +21 -0
  983. package/dist/types/cli/ui/box.d.ts.map +1 -0
  984. package/dist/types/cli/ui/clipboard.d.ts +6 -0
  985. package/dist/types/cli/ui/clipboard.d.ts.map +1 -0
  986. package/dist/types/cli/ui/colors.d.ts +57 -0
  987. package/dist/types/cli/ui/colors.d.ts.map +1 -0
  988. package/dist/types/cli/ui/index.d.ts +9 -0
  989. package/dist/types/cli/ui/index.d.ts.map +1 -0
  990. package/dist/types/cli/ui/spinner.d.ts +12 -0
  991. package/dist/types/cli/ui/spinner.d.ts.map +1 -0
  992. package/dist/types/cli/ui/symbols.d.ts +47 -0
  993. package/dist/types/cli/ui/symbols.d.ts.map +1 -0
  994. package/dist/types/cli/ui/table.d.ts +23 -0
  995. package/dist/types/cli/ui/table.d.ts.map +1 -0
  996. package/dist/types/cli/ui/terminal.d.ts +7 -0
  997. package/dist/types/cli/ui/terminal.d.ts.map +1 -0
  998. package/dist/types/config/atomic-write.d.ts +69 -0
  999. package/dist/types/config/atomic-write.d.ts.map +1 -0
  1000. package/dist/types/config/db-config.d.ts +134 -0
  1001. package/dist/types/config/db-config.d.ts.map +1 -0
  1002. package/dist/types/config/machine-config.d.ts +85 -0
  1003. package/dist/types/config/machine-config.d.ts.map +1 -0
  1004. package/dist/types/config/paths.d.ts +64 -0
  1005. package/dist/types/config/paths.d.ts.map +1 -0
  1006. package/dist/types/config/schema.d.ts +72 -0
  1007. package/dist/types/config/schema.d.ts.map +1 -0
  1008. package/dist/types/config/token.d.ts +63 -0
  1009. package/dist/types/config/token.d.ts.map +1 -0
  1010. package/dist/types/execution/canceller.d.ts +41 -0
  1011. package/dist/types/execution/canceller.d.ts.map +1 -0
  1012. package/dist/types/execution/database-lookup.d.ts +56 -0
  1013. package/dist/types/execution/database-lookup.d.ts.map +1 -0
  1014. package/dist/types/execution/dispatcher.d.ts +181 -0
  1015. package/dist/types/execution/dispatcher.d.ts.map +1 -0
  1016. package/dist/types/execution/function-effects.d.ts +209 -0
  1017. package/dist/types/execution/function-effects.d.ts.map +1 -0
  1018. package/dist/types/execution/introspection.d.ts +76 -0
  1019. package/dist/types/execution/introspection.d.ts.map +1 -0
  1020. package/dist/types/execution/migration-runner.d.ts +128 -0
  1021. package/dist/types/execution/migration-runner.d.ts.map +1 -0
  1022. package/dist/types/execution/non-tx-detector.d.ts +23 -0
  1023. package/dist/types/execution/non-tx-detector.d.ts.map +1 -0
  1024. package/dist/types/execution/pool.d.ts +229 -0
  1025. package/dist/types/execution/pool.d.ts.map +1 -0
  1026. package/dist/types/execution/query-runner.d.ts +88 -0
  1027. package/dist/types/execution/query-runner.d.ts.map +1 -0
  1028. package/dist/types/execution/rate-limiter.d.ts +120 -0
  1029. package/dist/types/execution/rate-limiter.d.ts.map +1 -0
  1030. package/dist/types/execution/search-path.d.ts +161 -0
  1031. package/dist/types/execution/search-path.d.ts.map +1 -0
  1032. package/dist/types/execution/sql-parser.d.ts +195 -0
  1033. package/dist/types/execution/sql-parser.d.ts.map +1 -0
  1034. package/dist/types/execution/statement-classifier.d.ts +103 -0
  1035. package/dist/types/execution/statement-classifier.d.ts.map +1 -0
  1036. package/dist/types/execution/types.d.ts +189 -0
  1037. package/dist/types/execution/types.d.ts.map +1 -0
  1038. package/dist/types/index.d.ts +34 -0
  1039. package/dist/types/index.d.ts.map +1 -0
  1040. package/dist/types/permissions/auto-upgrade.d.ts +40 -0
  1041. package/dist/types/permissions/auto-upgrade.d.ts.map +1 -0
  1042. package/dist/types/permissions/checker.d.ts +53 -0
  1043. package/dist/types/permissions/checker.d.ts.map +1 -0
  1044. package/dist/types/permissions/manual-approval.d.ts +213 -0
  1045. package/dist/types/permissions/manual-approval.d.ts.map +1 -0
  1046. package/dist/types/permissions/plan-registry.d.ts +274 -0
  1047. package/dist/types/permissions/plan-registry.d.ts.map +1 -0
  1048. package/dist/types/permissions/role-policy.d.ts +217 -0
  1049. package/dist/types/permissions/role-policy.d.ts.map +1 -0
  1050. package/dist/types/permissions/types.d.ts +126 -0
  1051. package/dist/types/permissions/types.d.ts.map +1 -0
  1052. package/dist/types/protocol/constants.d.ts +72 -0
  1053. package/dist/types/protocol/constants.d.ts.map +1 -0
  1054. package/dist/types/protocol/envelope.d.ts +165 -0
  1055. package/dist/types/protocol/envelope.d.ts.map +1 -0
  1056. package/dist/types/protocol/errors.d.ts +33 -0
  1057. package/dist/types/protocol/errors.d.ts.map +1 -0
  1058. package/dist/types/protocol/messages.d.ts +327 -0
  1059. package/dist/types/protocol/messages.d.ts.map +1 -0
  1060. package/dist/types/protocol/serialize.d.ts +26 -0
  1061. package/dist/types/protocol/serialize.d.ts.map +1 -0
  1062. package/dist/types/protocol/validate.d.ts +135 -0
  1063. package/dist/types/protocol/validate.d.ts.map +1 -0
  1064. package/package.json +116 -4
  1065. package/scripts/generate-systemd-service.mjs +117 -0
@@ -0,0 +1,830 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { ENVELOPE_MAX_NEGOTIABLE_ROLE_DEFAULT, EVENT_KINDS, MESSAGE_TYPES, ROLES, isRole, isValidEnvelopeNonce, verifyEnvelopeMac, } from './envelope';
3
+ import { ProtocolError } from './serialize';
4
+ import { ERROR_CATALOG } from './errors';
5
+ import { APPROVAL_NONCE_PATTERN, DEFAULTS, ENVELOPE_MAC_REQUIRED_DEFAULT, LIMITS, PROTOCOL_VERSION, } from './constants';
6
+ /**
7
+ * Validate the envelope structure (not the payload).
8
+ * Checks: required fields present, types correct, v=1, type is valid enum,
9
+ * project/user/db_alias/id non-empty, ts is a number.
10
+ * Throws ProtocolError on any failure.
11
+ *
12
+ * Shape only. This proves the envelope is well-formed, never that its contents
13
+ * are authentic — use `InboundEnvelopeGuard` for that.
14
+ */
15
+ export function validateEnvelope(msg) {
16
+ if (typeof msg !== 'object' || msg === null) {
17
+ throw new ProtocolError('invalid_message', 'Message is not a JSON object');
18
+ }
19
+ const m = msg;
20
+ if (m.v === undefined) {
21
+ throw new ProtocolError('invalid_message', 'Version field "v" is missing');
22
+ }
23
+ if (typeof m.v !== 'number') {
24
+ throw new ProtocolError('invalid_message', 'Version field "v" must be a number');
25
+ }
26
+ if (m.v !== PROTOCOL_VERSION) {
27
+ throw new ProtocolError('protocol_version_mismatch', `Protocol version mismatch. Expected ${PROTOCOL_VERSION}, got ${m.v}`);
28
+ }
29
+ if (typeof m.id !== 'string' || m.id.length === 0 || m.id.length > LIMITS.ID_MAX_LENGTH) {
30
+ throw new ProtocolError('invalid_message', `Field "id" must be a non-empty string under ${LIMITS.ID_MAX_LENGTH} characters`);
31
+ }
32
+ if (typeof m.type !== 'string' || !MESSAGE_TYPES.includes(m.type)) {
33
+ throw new ProtocolError('unknown_message_type', `Unknown or invalid message type: ${m.type}`);
34
+ }
35
+ if (typeof m.project !== 'string' || m.project.length === 0 || m.project.length > LIMITS.PROJECT_MAX_LENGTH) {
36
+ throw new ProtocolError('invalid_message', `Field "project" must be a non-empty string under ${LIMITS.PROJECT_MAX_LENGTH} characters`);
37
+ }
38
+ if (typeof m.user !== 'object' || m.user === null) {
39
+ throw new ProtocolError('invalid_message', 'Field "user" must be a valid JSON object');
40
+ }
41
+ const u = m.user;
42
+ if (typeof u.id !== 'string' || u.id.length === 0) {
43
+ throw new ProtocolError('invalid_message', 'Field "user.id" must be a non-empty string');
44
+ }
45
+ if (!isRole(u.role)) {
46
+ throw new ProtocolError('invalid_message', `Field "user.role" must be one of: ${ROLES.join(', ')}`);
47
+ }
48
+ if (u.actor_id !== undefined && typeof u.actor_id !== 'string') {
49
+ throw new ProtocolError('invalid_message', 'Field "user.actor_id" must be a string when present');
50
+ }
51
+ if (typeof m.db_alias !== 'string' || m.db_alias.length === 0 || m.db_alias.length > LIMITS.ALIAS_MAX_LENGTH) {
52
+ throw new ProtocolError('invalid_message', `Field "db_alias" must be a non-empty string under ${LIMITS.ALIAS_MAX_LENGTH} characters`);
53
+ }
54
+ if (typeof m.ts !== 'number' || isNaN(m.ts) || m.ts <= 0) {
55
+ throw new ProtocolError('invalid_message', 'Field "ts" must be a positive number timestamp');
56
+ }
57
+ if (m.nonce !== undefined && !isValidEnvelopeNonce(m.nonce)) {
58
+ throw new ProtocolError('invalid_message', 'Field "nonce" must be a 16-64 character [A-Za-z0-9_-] string when present');
59
+ }
60
+ if (m.mac !== undefined && (typeof m.mac !== 'string' || !/^[0-9a-f]{64}$/.test(m.mac))) {
61
+ throw new ProtocolError('invalid_message', 'Field "mac" must be 64 lowercase hex characters when present');
62
+ }
63
+ }
64
+ /**
65
+ * Fails an envelope closed on: a bad or missing MAC, a stale `ts`, a replayed
66
+ * `nonce`, a `user.role` that was not negotiated for this session, or a
67
+ * `user.role` above this installation's local ceiling.
68
+ *
69
+ * Every rejection throws a fatal ProtocolError; there is no "log and proceed"
70
+ * path. Call `verify` on the *inbound* path only, before the message reaches the
71
+ * dispatcher — after this point `msg.user.role` may be treated as an
72
+ * authenticated fact rather than a claim.
73
+ */
74
+ export class InboundEnvelopeGuard {
75
+ opts;
76
+ /** nonce -> `ts` at first sight. Insertion-ordered so eviction is FIFO. */
77
+ seenNonces = new Map();
78
+ constructor(options) {
79
+ this.opts = {
80
+ macKey: options.macKey,
81
+ allowedRoles: Object.freeze([...options.allowedRoles]),
82
+ requireMac: options.requireMac ?? ENVELOPE_MAC_REQUIRED_DEFAULT,
83
+ maxClockSkewMs: options.maxClockSkewMs ?? DEFAULTS.ENVELOPE_MAX_CLOCK_SKEW_MS,
84
+ // An invalid configured ceiling falls back to the default rather than
85
+ // failing open to `admin`.
86
+ maxNegotiableRole: isRole(options.maxNegotiableRole)
87
+ ? options.maxNegotiableRole
88
+ : ENVELOPE_MAX_NEGOTIABLE_ROLE_DEFAULT,
89
+ replayCacheEntries: options.replayCacheEntries ?? LIMITS.REPLAY_CACHE_MAX_ENTRIES,
90
+ now: options.now ?? Date.now,
91
+ };
92
+ }
93
+ /** Roles this guard will accept. */
94
+ getAllowedRoles() {
95
+ return [...this.opts.allowedRoles];
96
+ }
97
+ /**
98
+ * The local role ceiling this guard enforces, whatever it was handed as
99
+ * `allowedRoles`. Reported so an operator surface (`sw-agent status`,
100
+ * `doctor`) can state the effective bound rather than the negotiated set.
101
+ */
102
+ getMaxNegotiableRole() {
103
+ return this.opts.maxNegotiableRole;
104
+ }
105
+ /** Number of nonces currently held in the replay cache. */
106
+ replayCacheSize() {
107
+ return this.seenNonces.size;
108
+ }
109
+ /** Forget every seen nonce. Call when the session ends or rolls over. */
110
+ reset() {
111
+ this.seenNonces.clear();
112
+ }
113
+ /**
114
+ * Authenticate and admit one inbound envelope, or throw. Checks run cheapest
115
+ * and most decisive first: nonce shape, freshness, MAC, replay, negotiated role.
116
+ */
117
+ verify(msg) {
118
+ if (!isValidEnvelopeNonce(msg.nonce)) {
119
+ throw new ProtocolError('invalid_message', 'Envelope "nonce" is missing or malformed; a fresh anti-replay nonce is required');
120
+ }
121
+ const now = this.opts.now();
122
+ if (Math.abs(now - msg.ts) > this.opts.maxClockSkewMs) {
123
+ throw new ProtocolError('invalid_message', `Envelope "ts" is outside the ${this.opts.maxClockSkewMs}ms freshness window`);
124
+ }
125
+ if (msg.mac === undefined) {
126
+ if (this.opts.requireMac) {
127
+ throw new ProtocolError('invalid_message', 'Envelope "mac" is required but missing');
128
+ }
129
+ }
130
+ else if (!verifyEnvelopeMac(this.opts.macKey, msg)) {
131
+ throw new ProtocolError('invalid_message', 'Envelope "mac" does not verify for this session');
132
+ }
133
+ if (this.seenNonces.has(msg.nonce)) {
134
+ throw new ProtocolError('invalid_message', 'Envelope "nonce" has already been used in this session');
135
+ }
136
+ this.seenNonces.set(msg.nonce, now);
137
+ while (this.seenNonces.size > this.opts.replayCacheEntries) {
138
+ const oldest = this.seenNonces.keys().next();
139
+ if (oldest.done) {
140
+ break;
141
+ }
142
+ this.seenNonces.delete(oldest.value);
143
+ }
144
+ if (!this.opts.allowedRoles.includes(msg.user.role)) {
145
+ throw new ProtocolError('permission_denied', `Field "user.role" (${msg.user.role}) was not negotiated for this session`);
146
+ }
147
+ // Hard local ceiling, applied AFTER the negotiated-set check.
148
+ //
149
+ // The negotiated set is the relay's claim about what the session may do;
150
+ // this is the operator's bound on how much of that claim to believe. A
151
+ // valid MAC proves the frame came from the session, not that the session was
152
+ // allowed to assert `admin`. Without this check the declared
153
+ // `security.max_negotiable_role` had no reader at all, and a compromised
154
+ // relay had the full capability set on every configured database.
155
+ //
156
+ // `ROLES` is ordered most- to least-privileged, so a role is within the
157
+ // ceiling when its index is greater than or equal to the ceiling's.
158
+ if (ROLES.indexOf(msg.user.role) < ROLES.indexOf(this.opts.maxNegotiableRole)) {
159
+ throw new ProtocolError('role_above_ceiling', `Field "user.role" (${msg.user.role}) is above this installation's negotiated-role ceiling ` +
160
+ `("${this.opts.maxNegotiableRole}"); raise security.max_negotiable_role in the machine ` +
161
+ 'config if that is intended');
162
+ }
163
+ }
164
+ }
165
+ /**
166
+ * Validate the payload for a given message type.
167
+ * Each type has its own validator.
168
+ * Throws ProtocolError with code 'payload_invalid' on failure.
169
+ */
170
+ export function validatePayload(type, payload) {
171
+ if (typeof payload !== 'object' || payload === null) {
172
+ throw new ProtocolError('payload_invalid', 'Payload must be a JSON object');
173
+ }
174
+ switch (type) {
175
+ case 'ping':
176
+ validatePingPayload(payload);
177
+ break;
178
+ case 'introspect':
179
+ validateIntrospectPayload(payload);
180
+ break;
181
+ case 'query':
182
+ validateQueryPayload(payload);
183
+ break;
184
+ case 'stream_query':
185
+ validateStreamQueryPayload(payload);
186
+ break;
187
+ case 'stream_chunk':
188
+ validateStreamChunkPayload(payload);
189
+ break;
190
+ case 'stream_end':
191
+ validateStreamEndPayload(payload);
192
+ break;
193
+ case 'migration_run':
194
+ validateMigrationRunPayload(payload);
195
+ break;
196
+ case 'cancel':
197
+ validateCancelPayload(payload);
198
+ break;
199
+ case 'response':
200
+ validateResponsePayload(payload);
201
+ break;
202
+ case 'error':
203
+ validateErrorPayload(payload);
204
+ break;
205
+ case 'event':
206
+ validateEventPayload(payload);
207
+ break;
208
+ default:
209
+ throw new ProtocolError('unknown_message_type', `Cannot validate payload for unknown type: ${type}`);
210
+ }
211
+ }
212
+ /**
213
+ * Convenience: validate envelope + payload together.
214
+ */
215
+ export function validateMessage(msg) {
216
+ validateEnvelope(msg);
217
+ validatePayload(msg.type, msg.payload);
218
+ }
219
+ export function validatePingPayload(p) {
220
+ const data = p;
221
+ if (typeof data.sent_at !== 'number' || data.sent_at <= 0 || isNaN(data.sent_at)) {
222
+ throw new ProtocolError('payload_invalid', 'Field "sent_at" must be a positive number timestamp');
223
+ }
224
+ if (data.sender_id !== undefined && typeof data.sender_id !== 'string') {
225
+ throw new ProtocolError('payload_invalid', 'Field "sender_id" must be a string if provided');
226
+ }
227
+ }
228
+ export function validateIntrospectPayload(p) {
229
+ const data = p;
230
+ const boolKeys = ['include_views', 'include_indexes', 'include_triggers', 'include_partitions', 'include_extensions'];
231
+ for (const key of boolKeys) {
232
+ if (typeof data[key] !== 'boolean') {
233
+ throw new ProtocolError('payload_invalid', `Field "${key}" must be a boolean`);
234
+ }
235
+ }
236
+ if (data.pg_version_hint !== null && typeof data.pg_version_hint !== 'string') {
237
+ throw new ProtocolError('payload_invalid', 'Field "pg_version_hint" must be a string or null');
238
+ }
239
+ }
240
+ /* ------------------------------------------------------------------ */
241
+ /* SQL statement counting (cheap protocol-level early rejection) */
242
+ /* ------------------------------------------------------------------ */
243
+ const IDENT_CHAR = /[A-Za-z0-9_$\u0080-\uffff]/;
244
+ const QUOTE_PREFIXES = new Set(['b', 'B', 'e', 'E', 'x', 'X', 'n', 'N']);
245
+ /**
246
+ * Count the top-level statements in a SQL string.
247
+ *
248
+ * This is a lexical scan, not a parser, and it is written to be sound over the
249
+ * constructs an attacker would use to hide a `;` from it:
250
+ *
251
+ * - `'...'` string constants, where `''` is an escaped quote;
252
+ * - `E'...'` / `B'...'` / `X'...'` / `N'...'` prefixed constants;
253
+ * - `U&'...'` unicode constants, whose escapes are backslash sequences, plus
254
+ * the optional trailing `UESCAPE '<char>'` clause;
255
+ * - dollar quoting, both `$$...$$` and `$tag$...$tag$`;
256
+ * - `"..."` quoted identifiers, where `""` is an escaped double quote;
257
+ * - `-- ...` line comments and nestable slash-star block comments;
258
+ *
259
+ * `\` is treated as an escape inside `E'...'` / `U&'...'` only, matching
260
+ * PostgreSQL's default `standard_conforming_strings = on`. If that GUC is ever
261
+ * turned off on a pooled connection the plain-string rule below would differ
262
+ * from the server's; pinning it at acquire time (Group 1 owns `pool.ts`) closes
263
+ * that, and `src/execution/sql-parser.ts` (Group 2) is the authoritative check.
264
+ *
265
+ * Unterminated literals, dollar quotes, identifiers and block comments throw
266
+ * rather than guessing: a construct this scan cannot account for is one it
267
+ * cannot rule a hidden `;` out of.
268
+ */
269
+ export function countSqlStatements(sql, field = 'sql') {
270
+ const len = sql.length;
271
+ let i = 0;
272
+ let statements = 0;
273
+ let segmentHasContent = false;
274
+ while (i < len) {
275
+ const c = sql[i];
276
+ if (c === '-' && sql[i + 1] === '-') {
277
+ while (i < len && sql[i] !== '\n') {
278
+ i++;
279
+ }
280
+ continue;
281
+ }
282
+ if (c === '/' && sql[i + 1] === '*') {
283
+ let depth = 1;
284
+ i += 2;
285
+ while (i < len && depth > 0) {
286
+ if (sql[i] === '/' && sql[i + 1] === '*') {
287
+ depth++;
288
+ i += 2;
289
+ }
290
+ else if (sql[i] === '*' && sql[i + 1] === '/') {
291
+ depth--;
292
+ i += 2;
293
+ }
294
+ else {
295
+ i++;
296
+ }
297
+ }
298
+ if (depth > 0) {
299
+ throw new ProtocolError('unparseable_statement', `Field "${field}" contains an unterminated block comment`);
300
+ }
301
+ continue;
302
+ }
303
+ if (c === '$') {
304
+ const tagEnd = readDollarQuoteTag(sql, i);
305
+ if (tagEnd > 0) {
306
+ const opening = sql.slice(i, tagEnd);
307
+ const closing = sql.indexOf(opening, tagEnd);
308
+ if (closing === -1) {
309
+ throw new ProtocolError('unparseable_statement', `Field "${field}" contains an unterminated dollar-quoted string`);
310
+ }
311
+ i = closing + opening.length;
312
+ }
313
+ else {
314
+ i++;
315
+ }
316
+ segmentHasContent = true;
317
+ continue;
318
+ }
319
+ if (c === "'") {
320
+ i = scanQuoted(sql, i + 1, "'", false, field);
321
+ segmentHasContent = true;
322
+ continue;
323
+ }
324
+ if (c === '"') {
325
+ i = scanQuoted(sql, i + 1, '"', false, field);
326
+ segmentHasContent = true;
327
+ continue;
328
+ }
329
+ const prefixEnd = scanStringPrefix(sql, i);
330
+ if (prefixEnd > 0) {
331
+ const prefix = sql.slice(i, prefixEnd).toLowerCase();
332
+ if (prefix === 'u&') {
333
+ const end = scanQuoted(sql, prefixEnd + 1, "'", true, field);
334
+ i = end;
335
+ if (sql.slice(i, i + 8).toUpperCase() === 'UESCAPE') {
336
+ let j = i + 8;
337
+ while (j < len && /\s/.test(sql[j])) {
338
+ j++;
339
+ }
340
+ if (sql[j] === "'") {
341
+ i = scanQuoted(sql, j + 1, "'", true, field);
342
+ }
343
+ }
344
+ }
345
+ else {
346
+ i = scanQuoted(sql, prefixEnd + 1, "'", true, field);
347
+ }
348
+ segmentHasContent = true;
349
+ continue;
350
+ }
351
+ if (c === ';') {
352
+ if (segmentHasContent) {
353
+ statements++;
354
+ }
355
+ segmentHasContent = false;
356
+ i++;
357
+ continue;
358
+ }
359
+ if (!/\s/.test(c)) {
360
+ segmentHasContent = true;
361
+ }
362
+ i++;
363
+ }
364
+ if (segmentHasContent) {
365
+ statements++;
366
+ }
367
+ return statements;
368
+ }
369
+ /**
370
+ * Reject anything that is not exactly one statement. A single trailing `;`
371
+ * terminator is allowed (`SELECT 1;` is one statement); a second statement is
372
+ * not, whatever separates them.
373
+ */
374
+ export function assertSingleStatement(sql, field = 'sql') {
375
+ const count = countSqlStatements(sql, field);
376
+ if (count > LIMITS.MAX_STATEMENT_COUNT_PER_QUERY) {
377
+ throw new ProtocolError('multiple_statements', `Field "${field}" must contain at most ${LIMITS.MAX_STATEMENT_COUNT_PER_QUERY} statement, found ${count}`);
378
+ }
379
+ }
380
+ /** End index (exclusive) of a `$tag$` / `$$` delimiter starting at `start`, or -1. */
381
+ function readDollarQuoteTag(sql, start) {
382
+ let i = start + 1;
383
+ if (i < sql.length && sql[i] === '$') {
384
+ return i + 1;
385
+ }
386
+ if (i >= sql.length || !/[A-Za-z_]/.test(sql[i])) {
387
+ return -1;
388
+ }
389
+ i++;
390
+ while (i < sql.length && /[A-Za-z0-9_]/.test(sql[i])) {
391
+ i++;
392
+ }
393
+ return i < sql.length && sql[i] === '$' ? i + 1 : -1;
394
+ }
395
+ /**
396
+ * End index (exclusive) of the quoted run that starts just after `from`, where
397
+ * the run ends at `close` or `close` doubled up. `backslashEscapes` selects the
398
+ * `E'...'` / `U&'...'` rule, where a backslash escapes the next character.
399
+ */
400
+ function scanQuoted(sql, from, close, backslashEscapes, field) {
401
+ const len = sql.length;
402
+ const label = close === "'" ? 'string literal' : 'quoted identifier';
403
+ let i = from;
404
+ while (i < len) {
405
+ const c = sql[i];
406
+ if (backslashEscapes && c === '\\') {
407
+ i += 2;
408
+ continue;
409
+ }
410
+ if (c === close) {
411
+ if (sql[i + 1] === close) {
412
+ i += 2;
413
+ continue;
414
+ }
415
+ return i + 1;
416
+ }
417
+ i++;
418
+ }
419
+ throw new ProtocolError('unparseable_statement', `Field "${field}" contains an unterminated ${label}`);
420
+ }
421
+ /**
422
+ * End index (exclusive) of a string-constant prefix at `start`
423
+ * (`E`, `X`, `B`, `N`, or the two characters of `U&`), or -1 when `start` does
424
+ * not begin one. A prefix is only a prefix when it is not preceded by an
425
+ * identifier character, so `someE'x'` stays a bare word.
426
+ */
427
+ function scanStringPrefix(sql, start) {
428
+ const c = sql[start];
429
+ if (start > 0 && IDENT_CHAR.test(sql[start - 1])) {
430
+ return -1;
431
+ }
432
+ if (c === 'u' || c === 'U') {
433
+ return sql[start + 1] === '&' ? start + 2 : -1;
434
+ }
435
+ return QUOTE_PREFIXES.has(c) && sql[start + 1] === "'" ? start + 1 : -1;
436
+ }
437
+ export function validateQueryPayload(p) {
438
+ const data = p;
439
+ if (typeof data.sql !== 'string' || data.sql.trim().length === 0) {
440
+ throw new ProtocolError('payload_invalid', 'Field "sql" must be a non-empty string');
441
+ }
442
+ if (Buffer.byteLength(data.sql, 'utf8') > LIMITS.MAX_STATEMENT_LENGTH) {
443
+ throw new ProtocolError('payload_invalid', `SQL statement length exceeds limit of ${LIMITS.MAX_STATEMENT_LENGTH} bytes`);
444
+ }
445
+ assertSingleStatement(data.sql, 'sql');
446
+ if (data.params !== undefined && !Array.isArray(data.params)) {
447
+ throw new ProtocolError('payload_invalid', 'Field "params" must be an array');
448
+ }
449
+ if (data.timeout_ms !== undefined && (typeof data.timeout_ms !== 'number' || data.timeout_ms < 0 || isNaN(data.timeout_ms))) {
450
+ throw new ProtocolError('payload_invalid', 'Field "timeout_ms" must be a non-negative number');
451
+ }
452
+ // `migration` is not a legal intent for a query/stream_query message. It used
453
+ // to be accepted here and, on the permission side, that one value skipped the
454
+ // "claimed intent must match the classified statement" comparison entirely.
455
+ const validIntents = ['read', 'write', 'ddl'];
456
+ if (typeof data.intent !== 'string' || !validIntents.includes(data.intent)) {
457
+ throw new ProtocolError('payload_invalid', 'Field "intent" must be read, write, or ddl');
458
+ }
459
+ if (data.plan_id !== undefined && typeof data.plan_id !== 'string') {
460
+ throw new ProtocolError('payload_invalid', 'Field "plan_id" must be a string');
461
+ }
462
+ }
463
+ export function validateStreamQueryPayload(p) {
464
+ // Validate standard Query fields first
465
+ validateQueryPayload(p);
466
+ const data = p;
467
+ if (data.cursor !== undefined) {
468
+ if (typeof data.cursor !== 'object' || data.cursor === null) {
469
+ throw new ProtocolError('payload_invalid', 'Field "cursor" must be an object');
470
+ }
471
+ const c = data.cursor;
472
+ if (typeof c.column !== 'string' || c.column.length === 0) {
473
+ throw new ProtocolError('payload_invalid', 'Field "cursor.column" must be a non-empty string');
474
+ }
475
+ if (c.last_value === undefined) {
476
+ throw new ProtocolError('payload_invalid', 'Field "cursor.last_value" must be defined');
477
+ }
478
+ if (c.direction !== 'forward' && c.direction !== 'backward') {
479
+ throw new ProtocolError('payload_invalid', 'Field "cursor.direction" must be forward or backward');
480
+ }
481
+ }
482
+ if (data.page_size !== undefined) {
483
+ if (typeof data.page_size !== 'number' || !Number.isInteger(data.page_size) || data.page_size < 1 || data.page_size > 1000) {
484
+ throw new ProtocolError('payload_invalid', 'Field "page_size" must be an integer between 1 and 1000');
485
+ }
486
+ }
487
+ }
488
+ export function validateStreamChunkPayload(p) {
489
+ const data = p;
490
+ if (typeof data.request_id !== 'string' || data.request_id.length === 0) {
491
+ throw new ProtocolError('payload_invalid', 'Field "request_id" must be a non-empty string');
492
+ }
493
+ if (data.columns !== null && !Array.isArray(data.columns)) {
494
+ throw new ProtocolError('payload_invalid', 'Field "columns" must be an array or null');
495
+ }
496
+ if (data.columns !== null && Array.isArray(data.columns)) {
497
+ data.columns.forEach((col, idx) => {
498
+ if (typeof col !== 'object' || col === null) {
499
+ throw new ProtocolError('payload_invalid', `Field "columns[${idx}]" must be a JSON object`);
500
+ }
501
+ if (typeof col.name !== 'string' || col.name.length === 0) {
502
+ throw new ProtocolError('payload_invalid', `Field "columns[${idx}].name" must be a non-empty string`);
503
+ }
504
+ if (typeof col.type_oid !== 'number') {
505
+ throw new ProtocolError('payload_invalid', `Field "columns[${idx}].type_oid" must be a number`);
506
+ }
507
+ if (typeof col.type_name !== 'string' || col.type_name.length === 0) {
508
+ throw new ProtocolError('payload_invalid', `Field "columns[${idx}].type_name" must be a non-empty string`);
509
+ }
510
+ });
511
+ }
512
+ if (!Array.isArray(data.rows)) {
513
+ throw new ProtocolError('payload_invalid', 'Field "rows" must be an array');
514
+ }
515
+ data.rows.forEach((row, idx) => {
516
+ if (!Array.isArray(row)) {
517
+ throw new ProtocolError('payload_invalid', `Field "rows[${idx}]" must be an array`);
518
+ }
519
+ });
520
+ if (typeof data.chunk_index !== 'number' || data.chunk_index < 0 || !Number.isInteger(data.chunk_index)) {
521
+ throw new ProtocolError('payload_invalid', 'Field "chunk_index" must be a non-negative integer');
522
+ }
523
+ if (typeof data.has_truncated_cells !== 'boolean') {
524
+ throw new ProtocolError('payload_invalid', 'Field "has_truncated_cells" must be a boolean');
525
+ }
526
+ }
527
+ export function validateStreamEndPayload(p) {
528
+ const data = p;
529
+ if (typeof data.request_id !== 'string' || data.request_id.length === 0) {
530
+ throw new ProtocolError('payload_invalid', 'Field "request_id" must be a non-empty string');
531
+ }
532
+ const nonNegInts = ['total_rows', 'ms', 'chunk_count'];
533
+ for (const key of nonNegInts) {
534
+ if (typeof data[key] !== 'number' || data[key] < 0 || !Number.isInteger(data[key])) {
535
+ throw new ProtocolError('payload_invalid', `Field "${key}" must be a non-negative integer`);
536
+ }
537
+ }
538
+ if (typeof data.truncated !== 'boolean') {
539
+ throw new ProtocolError('payload_invalid', 'Field "truncated" must be a boolean');
540
+ }
541
+ }
542
+ export function validateMigrationRunPayload(p) {
543
+ const data = p;
544
+ if (typeof data.plan_id !== 'string' || data.plan_id.length === 0) {
545
+ throw new ProtocolError('payload_invalid', 'Field "plan_id" must be a non-empty string');
546
+ }
547
+ if (!Array.isArray(data.statements) || data.statements.length === 0 || data.statements.length > LIMITS.MAX_STATEMENT_COUNT_PER_MIGRATION) {
548
+ throw new ProtocolError('payload_invalid', `Field "statements" must be a non-empty array under ${LIMITS.MAX_STATEMENT_COUNT_PER_MIGRATION} items`);
549
+ }
550
+ data.statements.forEach((stmt, idx) => {
551
+ if (typeof stmt !== 'string' || stmt.trim().length === 0) {
552
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}]" must be a non-empty string`);
553
+ }
554
+ if (Buffer.byteLength(stmt, 'utf8') > LIMITS.MAX_STATEMENT_LENGTH) {
555
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}]" length exceeds limit of ${LIMITS.MAX_STATEMENT_LENGTH} bytes`);
556
+ }
557
+ });
558
+ if (data.strategy !== 'single_tx' && data.strategy !== 'per_statement') {
559
+ throw new ProtocolError('payload_invalid', 'Field "strategy" must be single_tx or per_statement');
560
+ }
561
+ if (data.timeout_ms !== undefined && (typeof data.timeout_ms !== 'number' || data.timeout_ms <= 0 || isNaN(data.timeout_ms))) {
562
+ throw new ProtocolError('payload_invalid', 'Field "timeout_ms" must be a positive number');
563
+ }
564
+ if (typeof data.dry_run !== 'boolean') {
565
+ throw new ProtocolError('payload_invalid', 'Field "dry_run" must be a boolean');
566
+ }
567
+ }
568
+ export function validateMigrationResultPayload(p) {
569
+ const data = p;
570
+ if (typeof data.plan_id !== 'string' || data.plan_id.length === 0) {
571
+ throw new ProtocolError('payload_invalid', 'Field "plan_id" must be a non-empty string');
572
+ }
573
+ const validStatuses = ['committed', 'rolled_back', 'partial', 'dry_run_ok', 'dry_run_failed'];
574
+ if (typeof data.status !== 'string' || !validStatuses.includes(data.status)) {
575
+ throw new ProtocolError('payload_invalid', 'Field "status" must be committed, rolled_back, partial, dry_run_ok, or dry_run_failed');
576
+ }
577
+ if (!Array.isArray(data.statements)) {
578
+ throw new ProtocolError('payload_invalid', 'Field "statements" must be an array');
579
+ }
580
+ const validStmtStatuses = ['pending', 'running', 'success', 'failed', 'rolled_back'];
581
+ data.statements.forEach((stmt, idx) => {
582
+ if (typeof stmt !== 'object' || stmt === null) {
583
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}]" must be an object`);
584
+ }
585
+ if (typeof stmt.index !== 'number' || stmt.index < 0 || !Number.isInteger(stmt.index)) {
586
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}].index" must be a non-negative integer`);
587
+ }
588
+ if (typeof stmt.status !== 'string' || !validStmtStatuses.includes(stmt.status)) {
589
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}].status" must be pending, running, success, failed, or rolled_back`);
590
+ }
591
+ if (typeof stmt.ms !== 'number' || stmt.ms < 0 || isNaN(stmt.ms)) {
592
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}].ms" must be a non-negative number`);
593
+ }
594
+ if (typeof stmt.rows_affected !== 'number' || !Number.isInteger(stmt.rows_affected)) {
595
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}].rows_affected" must be an integer`);
596
+ }
597
+ if (stmt.error !== undefined && typeof stmt.error !== 'string') {
598
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}].error" must be a string`);
599
+ }
600
+ if (stmt.pg_error_code !== undefined && typeof stmt.pg_error_code !== 'string') {
601
+ throw new ProtocolError('payload_invalid', `Field "statements[${idx}].pg_error_code" must be a string`);
602
+ }
603
+ });
604
+ if (typeof data.total_ms !== 'number' || data.total_ms < 0 || isNaN(data.total_ms)) {
605
+ throw new ProtocolError('payload_invalid', 'Field "total_ms" must be a non-negative number');
606
+ }
607
+ if (!Array.isArray(data.rolled_back_indices)) {
608
+ throw new ProtocolError('payload_invalid', 'Field "rolled_back_indices" must be an array');
609
+ }
610
+ data.rolled_back_indices.forEach((val, idx) => {
611
+ if (typeof val !== 'number' || !Number.isInteger(val)) {
612
+ throw new ProtocolError('payload_invalid', `Field "rolled_back_indices[${idx}]" must be an integer`);
613
+ }
614
+ });
615
+ if (data.strategy_changed_from !== undefined && data.strategy_changed_from !== 'single_tx' && data.strategy_changed_from !== 'per_statement') {
616
+ throw new ProtocolError('payload_invalid', 'Field "strategy_changed_from" must be single_tx or per_statement');
617
+ }
618
+ }
619
+ export function validateCancelPayload(p) {
620
+ const data = p;
621
+ if (typeof data.target_id !== 'string' || data.target_id.length === 0) {
622
+ throw new ProtocolError('payload_invalid', 'Field "target_id" must be a non-empty string');
623
+ }
624
+ const validReasons = ['user_cancelled', 'timeout', 'session_closed', 'orphaned'];
625
+ if (typeof data.reason !== 'string' || !validReasons.includes(data.reason)) {
626
+ throw new ProtocolError('payload_invalid', 'Field "reason" must be user_cancelled, timeout, session_closed, or orphaned');
627
+ }
628
+ }
629
+ export function validateCancelResultPayload(p) {
630
+ const data = p;
631
+ if (typeof data.target_id !== 'string' || data.target_id.length === 0) {
632
+ throw new ProtocolError('payload_invalid', 'Field "target_id" must be a non-empty string');
633
+ }
634
+ if (typeof data.cancelled !== 'boolean') {
635
+ throw new ProtocolError('payload_invalid', 'Field "cancelled" must be a boolean');
636
+ }
637
+ if (typeof data.terminated !== 'boolean') {
638
+ throw new ProtocolError('payload_invalid', 'Field "terminated" must be a boolean');
639
+ }
640
+ if (data.reason !== undefined && typeof data.reason !== 'string') {
641
+ throw new ProtocolError('payload_invalid', 'Field "reason" must be a string');
642
+ }
643
+ }
644
+ export function validateResponsePayload(p) {
645
+ const data = p;
646
+ if (typeof data.request_id !== 'string' || data.request_id.length === 0) {
647
+ throw new ProtocolError('payload_invalid', 'Field "request_id" must be a non-empty string');
648
+ }
649
+ if (typeof data.ok !== 'boolean') {
650
+ throw new ProtocolError('payload_invalid', 'Field "ok" must be a boolean');
651
+ }
652
+ if (data.data === undefined) {
653
+ throw new ProtocolError('payload_invalid', 'Field "data" must be defined');
654
+ }
655
+ if (data.ms !== undefined && (typeof data.ms !== 'number' || data.ms < 0 || isNaN(data.ms))) {
656
+ throw new ProtocolError('payload_invalid', 'Field "ms" must be a non-negative number');
657
+ }
658
+ }
659
+ export function validateErrorPayload(p) {
660
+ const data = p;
661
+ if (typeof data.request_id !== 'string' || data.request_id.length === 0) {
662
+ throw new ProtocolError('payload_invalid', 'Field "request_id" must be a non-empty string');
663
+ }
664
+ if (typeof data.code !== 'string' || !(data.code in ERROR_CATALOG)) {
665
+ throw new ProtocolError('payload_invalid', `Field "code" must be a valid ErrorCode: ${data.code}`);
666
+ }
667
+ if (typeof data.message !== 'string' || data.message.length === 0) {
668
+ throw new ProtocolError('payload_invalid', 'Field "message" must be a non-empty string');
669
+ }
670
+ if (data.pg_error !== undefined && data.pg_error !== null) {
671
+ if (typeof data.pg_error !== 'object') {
672
+ throw new ProtocolError('payload_invalid', 'Field "pg_error" must be an object');
673
+ }
674
+ const pg = data.pg_error;
675
+ if (typeof pg.code !== 'string' || pg.code.length === 0) {
676
+ throw new ProtocolError('payload_invalid', 'Field "pg_error.code" must be a non-empty string');
677
+ }
678
+ if (typeof pg.severity !== 'string' || pg.severity.length === 0) {
679
+ throw new ProtocolError('payload_invalid', 'Field "pg_error.severity" must be a non-empty string');
680
+ }
681
+ if (pg.detail !== undefined && typeof pg.detail !== 'string') {
682
+ throw new ProtocolError('payload_invalid', 'Field "pg_error.detail" must be a string');
683
+ }
684
+ if (pg.hint !== undefined && typeof pg.hint !== 'string') {
685
+ throw new ProtocolError('payload_invalid', 'Field "pg_error.hint" must be a string');
686
+ }
687
+ if (pg.position !== undefined && (typeof pg.position !== 'number' || !Number.isInteger(pg.position))) {
688
+ throw new ProtocolError('payload_invalid', 'Field "pg_error.position" must be an integer');
689
+ }
690
+ }
691
+ if (typeof data.fatal !== 'boolean') {
692
+ throw new ProtocolError('payload_invalid', 'Field "fatal" must be a boolean');
693
+ }
694
+ if (typeof data.retryable !== 'boolean') {
695
+ throw new ProtocolError('payload_invalid', 'Field "retryable" must be a boolean');
696
+ }
697
+ }
698
+ /**
699
+ * An approval nonce is `crypto.randomBytes(32)` in lowercase hex: exactly 64 hex
700
+ * characters and nothing else. The agent mints it and compares the returned value
701
+ * against its own copy, so any looser shape (truncated, padded, non-hex, or a
702
+ * different length entirely) must be refused at the protocol boundary.
703
+ */
704
+ function assertApprovalNonce(value, field) {
705
+ if (typeof value !== 'string' || !APPROVAL_NONCE_PATTERN.test(value)) {
706
+ throw new ProtocolError('payload_invalid', `Field "${field}" must be ${LIMITS.APPROVAL_NONCE_HEX_LENGTH} lowercase hex characters (32 bytes)`);
707
+ }
708
+ }
709
+ export function validateEventPayload(p) {
710
+ const data = p;
711
+ if (typeof data.kind !== 'string' || !EVENT_KINDS.includes(data.kind)) {
712
+ throw new ProtocolError('payload_invalid', `Field "kind" must be one of: ${EVENT_KINDS.join(', ')}`);
713
+ }
714
+ if (typeof data.data !== 'object' || data.data === null) {
715
+ throw new ProtocolError('payload_invalid', 'Field "data" must be a JSON object');
716
+ }
717
+ const d = data.data;
718
+ switch (data.kind) {
719
+ case 'status_change': {
720
+ const validStatuses = ['online', 'offline', 'degraded', 'maintenance'];
721
+ if (typeof d.new_status !== 'string' || !validStatuses.includes(d.new_status)) {
722
+ throw new ProtocolError('payload_invalid', 'Field "data.new_status" must be online, offline, degraded, or maintenance');
723
+ }
724
+ if (d.reason !== undefined && typeof d.reason !== 'string') {
725
+ throw new ProtocolError('payload_invalid', 'Field "data.reason" must be a string');
726
+ }
727
+ break;
728
+ }
729
+ case 'migration_progress': {
730
+ if (typeof d.plan_id !== 'string' || d.plan_id.length === 0) {
731
+ throw new ProtocolError('payload_invalid', 'Field "data.plan_id" must be a non-empty string');
732
+ }
733
+ if (typeof d.statement_index !== 'number' || d.statement_index < 0 || !Number.isInteger(d.statement_index)) {
734
+ throw new ProtocolError('payload_invalid', 'Field "data.statement_index" must be a non-negative integer');
735
+ }
736
+ if (typeof d.statement_sql_preview !== 'string') {
737
+ throw new ProtocolError('payload_invalid', 'Field "data.statement_sql_preview" must be a string');
738
+ }
739
+ const validStmtStatuses = ['pending', 'running', 'success', 'failed', 'rolled_back'];
740
+ if (typeof d.status !== 'string' || !validStmtStatuses.includes(d.status)) {
741
+ throw new ProtocolError('payload_invalid', 'Field "data.status" must be pending, running, success, failed, or rolled_back');
742
+ }
743
+ if (d.ms !== undefined && (typeof d.ms !== 'number' || d.ms < 0 || isNaN(d.ms))) {
744
+ throw new ProtocolError('payload_invalid', 'Field "data.ms" must be a non-negative number');
745
+ }
746
+ if (d.error !== undefined && typeof d.error !== 'string') {
747
+ throw new ProtocolError('payload_invalid', 'Field "data.error" must be a string');
748
+ }
749
+ if (d.replayed !== undefined && typeof d.replayed !== 'boolean') {
750
+ throw new ProtocolError('payload_invalid', 'Field "data.replayed" must be a boolean');
751
+ }
752
+ break;
753
+ }
754
+ case 'approval_required': {
755
+ if (typeof d.request_id !== 'string' || d.request_id.length === 0) {
756
+ throw new ProtocolError('payload_invalid', 'Field "data.request_id" must be a non-empty string');
757
+ }
758
+ if (typeof d.sql !== 'string' || d.sql.length === 0) {
759
+ throw new ProtocolError('payload_invalid', 'Field "data.sql" must be a non-empty string');
760
+ }
761
+ if (typeof d.sql_preview !== 'string') {
762
+ throw new ProtocolError('payload_invalid', 'Field "data.sql_preview" must be a string');
763
+ }
764
+ if (d.intent !== 'write' && d.intent !== 'ddl') {
765
+ throw new ProtocolError('payload_invalid', 'Field "data.intent" must be write or ddl');
766
+ }
767
+ if (typeof d.db_alias !== 'string' || d.db_alias.length === 0) {
768
+ throw new ProtocolError('payload_invalid', 'Field "data.db_alias" must be a non-empty string');
769
+ }
770
+ if (typeof d.expires_at !== 'number' || d.expires_at <= 0 || isNaN(d.expires_at)) {
771
+ throw new ProtocolError('payload_invalid', 'Field "data.expires_at" must be a positive number timestamp');
772
+ }
773
+ assertApprovalNonce(d.approval_nonce, 'data.approval_nonce');
774
+ break;
775
+ }
776
+ case 'approval_response': {
777
+ if (typeof d.request_id !== 'string' || d.request_id.length === 0) {
778
+ throw new ProtocolError('payload_invalid', 'Field "data.request_id" must be a non-empty string');
779
+ }
780
+ if (typeof d.approved !== 'boolean') {
781
+ throw new ProtocolError('payload_invalid', 'Field "data.approved" must be a boolean');
782
+ }
783
+ // The nonce is minted by the agent and must come back verbatim. Shape is
784
+ // all that can be checked here; proving the sender is the right person is
785
+ // the dispatcher's job, and it must compare against its own copy.
786
+ assertApprovalNonce(d.approval_nonce, 'data.approval_nonce');
787
+ // `approved_by` is display-only. It carries no authority — the approver is
788
+ // taken from the authenticated envelope — so it is bounded but otherwise
789
+ // untrusted, and its absence is not an error.
790
+ if (d.approved_by !== undefined &&
791
+ (typeof d.approved_by !== 'string' || d.approved_by.length === 0 || d.approved_by.length > LIMITS.ID_MAX_LENGTH)) {
792
+ throw new ProtocolError('payload_invalid', `Field "data.approved_by" must be a 1-${LIMITS.ID_MAX_LENGTH} character string when present`);
793
+ }
794
+ break;
795
+ }
796
+ case 'warning': {
797
+ if (typeof d.code !== 'string' || d.code.length === 0) {
798
+ throw new ProtocolError('payload_invalid', 'Field "data.code" must be a non-empty string');
799
+ }
800
+ if (typeof d.message !== 'string' || d.message.length === 0) {
801
+ throw new ProtocolError('payload_invalid', 'Field "data.message" must be a non-empty string');
802
+ }
803
+ if (d.context !== undefined && (typeof d.context !== 'object' || d.context === null)) {
804
+ throw new ProtocolError('payload_invalid', 'Field "data.context" must be an object');
805
+ }
806
+ break;
807
+ }
808
+ case 'resume_request': {
809
+ if (typeof d.request_id !== 'string' || d.request_id.length === 0) {
810
+ throw new ProtocolError('payload_invalid', 'Field "data.request_id" must be a non-empty string');
811
+ }
812
+ break;
813
+ }
814
+ case 'plan_register': {
815
+ if (!Array.isArray(d.statements)) {
816
+ throw new ProtocolError('payload_invalid', 'Field "data.statements" must be an array of SQL strings');
817
+ }
818
+ for (let i = 0; i < d.statements.length; i++) {
819
+ if (typeof d.statements[i] !== 'string') {
820
+ throw new ProtocolError('payload_invalid', `Field "data.statements[${i}]" must be a string`);
821
+ }
822
+ }
823
+ if (d.risk_level !== undefined && d.risk_level !== 'low' && d.risk_level !== 'medium' && d.risk_level !== 'high') {
824
+ throw new ProtocolError('payload_invalid', 'Field "data.risk_level" must be low, medium, or high');
825
+ }
826
+ break;
827
+ }
828
+ }
829
+ }
830
+ //# sourceMappingURL=validate.js.map