@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.
- package/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +457 -2
- package/dist/cjs/audit/chain.d.ts +365 -0
- package/dist/cjs/audit/chain.d.ts.map +1 -0
- package/dist/cjs/audit/chain.js +959 -0
- package/dist/cjs/audit/chain.js.map +1 -0
- package/dist/cjs/audit/cloud-client.d.ts +142 -0
- package/dist/cjs/audit/cloud-client.d.ts.map +1 -0
- package/dist/cjs/audit/cloud-client.js +364 -0
- package/dist/cjs/audit/cloud-client.js.map +1 -0
- package/dist/cjs/audit/cloud-writer.d.ts +57 -0
- package/dist/cjs/audit/cloud-writer.d.ts.map +1 -0
- package/dist/cjs/audit/cloud-writer.js +95 -0
- package/dist/cjs/audit/cloud-writer.js.map +1 -0
- package/dist/cjs/audit/context.d.ts +51 -0
- package/dist/cjs/audit/context.d.ts.map +1 -0
- package/dist/cjs/audit/context.js +75 -0
- package/dist/cjs/audit/context.js.map +1 -0
- package/dist/cjs/audit/files.d.ts +111 -0
- package/dist/cjs/audit/files.d.ts.map +1 -0
- package/dist/cjs/audit/files.js +406 -0
- package/dist/cjs/audit/files.js.map +1 -0
- package/dist/cjs/audit/index.d.ts +9 -0
- package/dist/cjs/audit/index.d.ts.map +1 -0
- package/dist/cjs/audit/index.js +68 -0
- package/dist/cjs/audit/index.js.map +1 -0
- package/dist/cjs/audit/local-writer.d.ts +255 -0
- package/dist/cjs/audit/local-writer.d.ts.map +1 -0
- package/dist/cjs/audit/local-writer.js +829 -0
- package/dist/cjs/audit/local-writer.js.map +1 -0
- package/dist/cjs/audit/redact.d.ts +151 -0
- package/dist/cjs/audit/redact.d.ts.map +1 -0
- package/dist/cjs/audit/redact.js +549 -0
- package/dist/cjs/audit/redact.js.map +1 -0
- package/dist/cjs/audit/sanitize.d.ts +78 -0
- package/dist/cjs/audit/sanitize.d.ts.map +1 -0
- package/dist/cjs/audit/sanitize.js +315 -0
- package/dist/cjs/audit/sanitize.js.map +1 -0
- package/dist/cjs/audit/sink.d.ts +278 -0
- package/dist/cjs/audit/sink.d.ts.map +1 -0
- package/dist/cjs/audit/sink.js +819 -0
- package/dist/cjs/audit/sink.js.map +1 -0
- package/dist/cjs/audit/types.d.ts +226 -0
- package/dist/cjs/audit/types.d.ts.map +1 -0
- package/dist/cjs/audit/types.js +3 -0
- package/dist/cjs/audit/types.js.map +1 -0
- package/dist/cjs/audit/verify-cache.d.ts +127 -0
- package/dist/cjs/audit/verify-cache.d.ts.map +1 -0
- package/dist/cjs/audit/verify-cache.js +668 -0
- package/dist/cjs/audit/verify-cache.js.map +1 -0
- package/dist/cjs/channels/agent-session.d.ts +228 -0
- package/dist/cjs/channels/agent-session.d.ts.map +1 -0
- package/dist/cjs/channels/agent-session.js +604 -0
- package/dist/cjs/channels/agent-session.js.map +1 -0
- package/dist/cjs/channels/data-channel.d.ts +181 -0
- package/dist/cjs/channels/data-channel.d.ts.map +1 -0
- package/dist/cjs/channels/data-channel.js +607 -0
- package/dist/cjs/channels/data-channel.js.map +1 -0
- package/dist/cjs/channels/reconnect.d.ts +142 -0
- package/dist/cjs/channels/reconnect.d.ts.map +1 -0
- package/dist/cjs/channels/reconnect.js +247 -0
- package/dist/cjs/channels/reconnect.js.map +1 -0
- package/dist/cjs/channels/types.d.ts +112 -0
- package/dist/cjs/channels/types.d.ts.map +1 -0
- package/dist/cjs/channels/types.js +3 -0
- package/dist/cjs/channels/types.js.map +1 -0
- package/dist/cjs/channels/wake-channel.d.ts +232 -0
- package/dist/cjs/channels/wake-channel.d.ts.map +1 -0
- package/dist/cjs/channels/wake-channel.js +752 -0
- package/dist/cjs/channels/wake-channel.js.map +1 -0
- package/dist/cjs/cli/banner.d.ts +2 -0
- package/dist/cjs/cli/banner.d.ts.map +1 -0
- package/dist/cjs/cli/banner.js +150 -0
- package/dist/cjs/cli/banner.js.map +1 -0
- package/dist/cjs/cli/commands/agent.d.ts +30 -0
- package/dist/cjs/cli/commands/agent.d.ts.map +1 -0
- package/dist/cjs/cli/commands/agent.js +214 -0
- package/dist/cjs/cli/commands/agent.js.map +1 -0
- package/dist/cjs/cli/commands/audit-verify.d.ts +19 -0
- package/dist/cjs/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/cjs/cli/commands/audit-verify.js +382 -0
- package/dist/cjs/cli/commands/audit-verify.js.map +1 -0
- package/dist/cjs/cli/commands/clean.d.ts +23 -0
- package/dist/cjs/cli/commands/clean.d.ts.map +1 -0
- package/dist/cjs/cli/commands/clean.js +272 -0
- package/dist/cjs/cli/commands/clean.js.map +1 -0
- package/dist/cjs/cli/commands/config-show.d.ts +2 -0
- package/dist/cjs/cli/commands/config-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/config-show.js +10 -0
- package/dist/cjs/cli/commands/config-show.js.map +1 -0
- package/dist/cjs/cli/commands/config.d.ts +6 -0
- package/dist/cjs/cli/commands/config.d.ts.map +1 -0
- package/dist/cjs/cli/commands/config.js +266 -0
- package/dist/cjs/cli/commands/config.js.map +1 -0
- package/dist/cjs/cli/commands/db-add.d.ts +16 -0
- package/dist/cjs/cli/commands/db-add.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-add.js +613 -0
- package/dist/cjs/cli/commands/db-add.js.map +1 -0
- package/dist/cjs/cli/commands/db-edit.d.ts +2 -0
- package/dist/cjs/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-edit.js +388 -0
- package/dist/cjs/cli/commands/db-edit.js.map +1 -0
- package/dist/cjs/cli/commands/db-logs.d.ts +3 -0
- package/dist/cjs/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-logs.js +67 -0
- package/dist/cjs/cli/commands/db-logs.js.map +1 -0
- package/dist/cjs/cli/commands/db-ls.d.ts +2 -0
- package/dist/cjs/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-ls.js +118 -0
- package/dist/cjs/cli/commands/db-ls.js.map +1 -0
- package/dist/cjs/cli/commands/db-query.d.ts +121 -0
- package/dist/cjs/cli/commands/db-query.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-query.js +802 -0
- package/dist/cjs/cli/commands/db-query.js.map +1 -0
- package/dist/cjs/cli/commands/db-remove.d.ts +2 -0
- package/dist/cjs/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-remove.js +51 -0
- package/dist/cjs/cli/commands/db-remove.js.map +1 -0
- package/dist/cjs/cli/commands/db-show.d.ts +2 -0
- package/dist/cjs/cli/commands/db-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-show.js +134 -0
- package/dist/cjs/cli/commands/db-show.js.map +1 -0
- package/dist/cjs/cli/commands/db-test.d.ts +3 -0
- package/dist/cjs/cli/commands/db-test.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-test.js +311 -0
- package/dist/cjs/cli/commands/db-test.js.map +1 -0
- package/dist/cjs/cli/commands/db.d.ts +11 -0
- package/dist/cjs/cli/commands/db.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db.js +90 -0
- package/dist/cjs/cli/commands/db.js.map +1 -0
- package/dist/cjs/cli/commands/debug.d.ts +2 -0
- package/dist/cjs/cli/commands/debug.d.ts.map +1 -0
- package/dist/cjs/cli/commands/debug.js +241 -0
- package/dist/cjs/cli/commands/debug.js.map +1 -0
- package/dist/cjs/cli/commands/doctor.d.ts +5 -0
- package/dist/cjs/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cjs/cli/commands/doctor.js +117 -0
- package/dist/cjs/cli/commands/doctor.js.map +1 -0
- package/dist/cjs/cli/commands/index.d.ts +10 -0
- package/dist/cjs/cli/commands/index.d.ts.map +1 -0
- package/dist/cjs/cli/commands/index.js +30 -0
- package/dist/cjs/cli/commands/index.js.map +1 -0
- package/dist/cjs/cli/commands/init.d.ts +2 -0
- package/dist/cjs/cli/commands/init.d.ts.map +1 -0
- package/dist/cjs/cli/commands/init.js +199 -0
- package/dist/cjs/cli/commands/init.js.map +1 -0
- package/dist/cjs/cli/commands/link.d.ts +5 -0
- package/dist/cjs/cli/commands/link.d.ts.map +1 -0
- package/dist/cjs/cli/commands/link.js +44 -0
- package/dist/cjs/cli/commands/link.js.map +1 -0
- package/dist/cjs/cli/commands/logs.d.ts +17 -0
- package/dist/cjs/cli/commands/logs.d.ts.map +1 -0
- package/dist/cjs/cli/commands/logs.js +314 -0
- package/dist/cjs/cli/commands/logs.js.map +1 -0
- package/dist/cjs/cli/commands/project-show.d.ts +2 -0
- package/dist/cjs/cli/commands/project-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/project-show.js +105 -0
- package/dist/cjs/cli/commands/project-show.js.map +1 -0
- package/dist/cjs/cli/commands/project.d.ts +3 -0
- package/dist/cjs/cli/commands/project.d.ts.map +1 -0
- package/dist/cjs/cli/commands/project.js +64 -0
- package/dist/cjs/cli/commands/project.js.map +1 -0
- package/dist/cjs/cli/commands/service.d.ts +123 -0
- package/dist/cjs/cli/commands/service.d.ts.map +1 -0
- package/dist/cjs/cli/commands/service.js +554 -0
- package/dist/cjs/cli/commands/service.js.map +1 -0
- package/dist/cjs/cli/commands/start.d.ts +6 -0
- package/dist/cjs/cli/commands/start.d.ts.map +1 -0
- package/dist/cjs/cli/commands/start.js +308 -0
- package/dist/cjs/cli/commands/start.js.map +1 -0
- package/dist/cjs/cli/commands/status.d.ts +2 -0
- package/dist/cjs/cli/commands/status.d.ts.map +1 -0
- package/dist/cjs/cli/commands/status.js +225 -0
- package/dist/cjs/cli/commands/status.js.map +1 -0
- package/dist/cjs/cli/commands/stop.d.ts +6 -0
- package/dist/cjs/cli/commands/stop.d.ts.map +1 -0
- package/dist/cjs/cli/commands/stop.js +99 -0
- package/dist/cjs/cli/commands/stop.js.map +1 -0
- package/dist/cjs/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/cjs/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/error-tracker.js +500 -0
- package/dist/cjs/cli/daemon/error-tracker.js.map +1 -0
- package/dist/cjs/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/cjs/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/fault-shutdown.js +312 -0
- package/dist/cjs/cli/daemon/fault-shutdown.js.map +1 -0
- package/dist/cjs/cli/daemon/index.d.ts +12 -0
- package/dist/cjs/cli/daemon/index.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/index.js +23 -0
- package/dist/cjs/cli/daemon/index.js.map +1 -0
- package/dist/cjs/cli/daemon/pid-file.d.ts +13 -0
- package/dist/cjs/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/pid-file.js +90 -0
- package/dist/cjs/cli/daemon/pid-file.js.map +1 -0
- package/dist/cjs/cli/daemon/readiness.d.ts +30 -0
- package/dist/cjs/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/readiness.js +74 -0
- package/dist/cjs/cli/daemon/readiness.js.map +1 -0
- package/dist/cjs/cli/daemon/runtime.d.ts +366 -0
- package/dist/cjs/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/runtime.js +1343 -0
- package/dist/cjs/cli/daemon/runtime.js.map +1 -0
- package/dist/cjs/cli/daemon/shutdown.d.ts +7 -0
- package/dist/cjs/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/shutdown.js +66 -0
- package/dist/cjs/cli/daemon/shutdown.js.map +1 -0
- package/dist/cjs/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/cjs/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/signal-handlers.js +27 -0
- package/dist/cjs/cli/daemon/signal-handlers.js.map +1 -0
- package/dist/cjs/cli/daemon/state.d.ts +157 -0
- package/dist/cjs/cli/daemon/state.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/state.js +397 -0
- package/dist/cjs/cli/daemon/state.js.map +1 -0
- package/dist/cjs/cli/daemon/status-file.d.ts +139 -0
- package/dist/cjs/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/status-file.js +88 -0
- package/dist/cjs/cli/daemon/status-file.js.map +1 -0
- package/dist/cjs/cli/doctor/checks.d.ts +133 -0
- package/dist/cjs/cli/doctor/checks.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/checks.js +677 -0
- package/dist/cjs/cli/doctor/checks.js.map +1 -0
- package/dist/cjs/cli/doctor/fixes.d.ts +9 -0
- package/dist/cjs/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/fixes.js +199 -0
- package/dist/cjs/cli/doctor/fixes.js.map +1 -0
- package/dist/cjs/cli/doctor/index.d.ts +7 -0
- package/dist/cjs/cli/doctor/index.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/index.js +27 -0
- package/dist/cjs/cli/doctor/index.js.map +1 -0
- package/dist/cjs/cli/index.d.ts +3 -0
- package/dist/cjs/cli/index.d.ts.map +1 -0
- package/dist/cjs/cli/index.js +336 -0
- package/dist/cjs/cli/index.js.map +1 -0
- package/dist/cjs/cli/interactive.d.ts +8 -0
- package/dist/cjs/cli/interactive.d.ts.map +1 -0
- package/dist/cjs/cli/interactive.js +670 -0
- package/dist/cjs/cli/interactive.js.map +1 -0
- package/dist/cjs/cli/logs/format.d.ts +13 -0
- package/dist/cjs/cli/logs/format.d.ts.map +1 -0
- package/dist/cjs/cli/logs/format.js +178 -0
- package/dist/cjs/cli/logs/format.js.map +1 -0
- package/dist/cjs/cli/logs/index.d.ts +3 -0
- package/dist/cjs/cli/logs/index.d.ts.map +1 -0
- package/dist/cjs/cli/logs/index.js +13 -0
- package/dist/cjs/cli/logs/index.js.map +1 -0
- package/dist/cjs/cli/logs/viewer.d.ts +41 -0
- package/dist/cjs/cli/logs/viewer.d.ts.map +1 -0
- package/dist/cjs/cli/logs/viewer.js +417 -0
- package/dist/cjs/cli/logs/viewer.js.map +1 -0
- package/dist/cjs/cli/ops/operation-logger.d.ts +63 -0
- package/dist/cjs/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/cjs/cli/ops/operation-logger.js +183 -0
- package/dist/cjs/cli/ops/operation-logger.js.map +1 -0
- package/dist/cjs/cli/palette.d.ts +11 -0
- package/dist/cjs/cli/palette.d.ts.map +1 -0
- package/dist/cjs/cli/palette.js +243 -0
- package/dist/cjs/cli/palette.js.map +1 -0
- package/dist/cjs/cli/prompt.d.ts +186 -0
- package/dist/cjs/cli/prompt.d.ts.map +1 -0
- package/dist/cjs/cli/prompt.js +541 -0
- package/dist/cjs/cli/prompt.js.map +1 -0
- package/dist/cjs/cli/ui/box.d.ts +21 -0
- package/dist/cjs/cli/ui/box.d.ts.map +1 -0
- package/dist/cjs/cli/ui/box.js +72 -0
- package/dist/cjs/cli/ui/box.js.map +1 -0
- package/dist/cjs/cli/ui/clipboard.d.ts +6 -0
- package/dist/cjs/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/cjs/cli/ui/clipboard.js +78 -0
- package/dist/cjs/cli/ui/clipboard.js.map +1 -0
- package/dist/cjs/cli/ui/colors.d.ts +57 -0
- package/dist/cjs/cli/ui/colors.d.ts.map +1 -0
- package/dist/cjs/cli/ui/colors.js +151 -0
- package/dist/cjs/cli/ui/colors.js.map +1 -0
- package/dist/cjs/cli/ui/index.d.ts +9 -0
- package/dist/cjs/cli/ui/index.d.ts.map +1 -0
- package/dist/cjs/cli/ui/index.js +55 -0
- package/dist/cjs/cli/ui/index.js.map +1 -0
- package/dist/cjs/cli/ui/spinner.d.ts +12 -0
- package/dist/cjs/cli/ui/spinner.d.ts.map +1 -0
- package/dist/cjs/cli/ui/spinner.js +82 -0
- package/dist/cjs/cli/ui/spinner.js.map +1 -0
- package/dist/cjs/cli/ui/symbols.d.ts +47 -0
- package/dist/cjs/cli/ui/symbols.d.ts.map +1 -0
- package/dist/cjs/cli/ui/symbols.js +112 -0
- package/dist/cjs/cli/ui/symbols.js.map +1 -0
- package/dist/cjs/cli/ui/table.d.ts +23 -0
- package/dist/cjs/cli/ui/table.d.ts.map +1 -0
- package/dist/cjs/cli/ui/table.js +160 -0
- package/dist/cjs/cli/ui/table.js.map +1 -0
- package/dist/cjs/cli/ui/terminal.d.ts +7 -0
- package/dist/cjs/cli/ui/terminal.d.ts.map +1 -0
- package/dist/cjs/cli/ui/terminal.js +40 -0
- package/dist/cjs/cli/ui/terminal.js.map +1 -0
- package/dist/cjs/config/atomic-write.d.ts +69 -0
- package/dist/cjs/config/atomic-write.d.ts.map +1 -0
- package/dist/cjs/config/atomic-write.js +289 -0
- package/dist/cjs/config/atomic-write.js.map +1 -0
- package/dist/cjs/config/db-config.d.ts +134 -0
- package/dist/cjs/config/db-config.d.ts.map +1 -0
- package/dist/cjs/config/db-config.js +594 -0
- package/dist/cjs/config/db-config.js.map +1 -0
- package/dist/cjs/config/machine-config.d.ts +85 -0
- package/dist/cjs/config/machine-config.d.ts.map +1 -0
- package/dist/cjs/config/machine-config.js +232 -0
- package/dist/cjs/config/machine-config.js.map +1 -0
- package/dist/cjs/config/paths.d.ts +64 -0
- package/dist/cjs/config/paths.d.ts.map +1 -0
- package/dist/cjs/config/paths.js +155 -0
- package/dist/cjs/config/paths.js.map +1 -0
- package/dist/cjs/config/schema.d.ts +72 -0
- package/dist/cjs/config/schema.d.ts.map +1 -0
- package/dist/cjs/config/schema.js +197 -0
- package/dist/cjs/config/schema.js.map +1 -0
- package/dist/cjs/config/token.d.ts +63 -0
- package/dist/cjs/config/token.d.ts.map +1 -0
- package/dist/cjs/config/token.js +146 -0
- package/dist/cjs/config/token.js.map +1 -0
- package/dist/cjs/execution/canceller.d.ts +41 -0
- package/dist/cjs/execution/canceller.d.ts.map +1 -0
- package/dist/cjs/execution/canceller.js +209 -0
- package/dist/cjs/execution/canceller.js.map +1 -0
- package/dist/cjs/execution/database-lookup.d.ts +56 -0
- package/dist/cjs/execution/database-lookup.d.ts.map +1 -0
- package/dist/cjs/execution/database-lookup.js +43 -0
- package/dist/cjs/execution/database-lookup.js.map +1 -0
- package/dist/cjs/execution/dispatcher.d.ts +181 -0
- package/dist/cjs/execution/dispatcher.d.ts.map +1 -0
- package/dist/cjs/execution/dispatcher.js +1296 -0
- package/dist/cjs/execution/dispatcher.js.map +1 -0
- package/dist/cjs/execution/function-effects.d.ts +209 -0
- package/dist/cjs/execution/function-effects.d.ts.map +1 -0
- package/dist/cjs/execution/function-effects.js +596 -0
- package/dist/cjs/execution/function-effects.js.map +1 -0
- package/dist/cjs/execution/introspection.d.ts +76 -0
- package/dist/cjs/execution/introspection.d.ts.map +1 -0
- package/dist/cjs/execution/introspection.js +448 -0
- package/dist/cjs/execution/introspection.js.map +1 -0
- package/dist/cjs/execution/migration-runner.d.ts +128 -0
- package/dist/cjs/execution/migration-runner.d.ts.map +1 -0
- package/dist/cjs/execution/migration-runner.js +798 -0
- package/dist/cjs/execution/migration-runner.js.map +1 -0
- package/dist/cjs/execution/non-tx-detector.d.ts +23 -0
- package/dist/cjs/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/cjs/execution/non-tx-detector.js +218 -0
- package/dist/cjs/execution/non-tx-detector.js.map +1 -0
- package/dist/cjs/execution/pool.d.ts +229 -0
- package/dist/cjs/execution/pool.d.ts.map +1 -0
- package/dist/cjs/execution/pool.js +738 -0
- package/dist/cjs/execution/pool.js.map +1 -0
- package/dist/cjs/execution/query-runner.d.ts +88 -0
- package/dist/cjs/execution/query-runner.d.ts.map +1 -0
- package/dist/cjs/execution/query-runner.js +751 -0
- package/dist/cjs/execution/query-runner.js.map +1 -0
- package/dist/cjs/execution/rate-limiter.d.ts +120 -0
- package/dist/cjs/execution/rate-limiter.d.ts.map +1 -0
- package/dist/cjs/execution/rate-limiter.js +273 -0
- package/dist/cjs/execution/rate-limiter.js.map +1 -0
- package/dist/cjs/execution/search-path.d.ts +161 -0
- package/dist/cjs/execution/search-path.d.ts.map +1 -0
- package/dist/cjs/execution/search-path.js +279 -0
- package/dist/cjs/execution/search-path.js.map +1 -0
- package/dist/cjs/execution/sql-parser.d.ts +195 -0
- package/dist/cjs/execution/sql-parser.d.ts.map +1 -0
- package/dist/cjs/execution/sql-parser.js +704 -0
- package/dist/cjs/execution/sql-parser.js.map +1 -0
- package/dist/cjs/execution/statement-classifier.d.ts +103 -0
- package/dist/cjs/execution/statement-classifier.d.ts.map +1 -0
- package/dist/cjs/execution/statement-classifier.js +535 -0
- package/dist/cjs/execution/statement-classifier.js.map +1 -0
- package/dist/cjs/execution/types.d.ts +189 -0
- package/dist/cjs/execution/types.d.ts.map +1 -0
- package/dist/cjs/execution/types.js +28 -0
- package/dist/cjs/execution/types.js.map +1 -0
- package/dist/cjs/index.d.ts +34 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +98 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/permissions/auto-upgrade.d.ts +40 -0
- package/dist/cjs/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/cjs/permissions/auto-upgrade.js +168 -0
- package/dist/cjs/permissions/auto-upgrade.js.map +1 -0
- package/dist/cjs/permissions/checker.d.ts +53 -0
- package/dist/cjs/permissions/checker.d.ts.map +1 -0
- package/dist/cjs/permissions/checker.js +326 -0
- package/dist/cjs/permissions/checker.js.map +1 -0
- package/dist/cjs/permissions/manual-approval.d.ts +213 -0
- package/dist/cjs/permissions/manual-approval.d.ts.map +1 -0
- package/dist/cjs/permissions/manual-approval.js +541 -0
- package/dist/cjs/permissions/manual-approval.js.map +1 -0
- package/dist/cjs/permissions/plan-registry.d.ts +274 -0
- package/dist/cjs/permissions/plan-registry.d.ts.map +1 -0
- package/dist/cjs/permissions/plan-registry.js +454 -0
- package/dist/cjs/permissions/plan-registry.js.map +1 -0
- package/dist/cjs/permissions/role-policy.d.ts +217 -0
- package/dist/cjs/permissions/role-policy.d.ts.map +1 -0
- package/dist/cjs/permissions/role-policy.js +584 -0
- package/dist/cjs/permissions/role-policy.js.map +1 -0
- package/dist/cjs/permissions/types.d.ts +126 -0
- package/dist/cjs/permissions/types.d.ts.map +1 -0
- package/dist/cjs/permissions/types.js +3 -0
- package/dist/cjs/permissions/types.js.map +1 -0
- package/dist/cjs/protocol/constants.d.ts +72 -0
- package/dist/cjs/protocol/constants.d.ts.map +1 -0
- package/dist/cjs/protocol/constants.js +107 -0
- package/dist/cjs/protocol/constants.js.map +1 -0
- package/dist/cjs/protocol/envelope.d.ts +165 -0
- package/dist/cjs/protocol/envelope.d.ts.map +1 -0
- package/dist/cjs/protocol/envelope.js +309 -0
- package/dist/cjs/protocol/envelope.js.map +1 -0
- package/dist/cjs/protocol/errors.d.ts +33 -0
- package/dist/cjs/protocol/errors.d.ts.map +1 -0
- package/dist/cjs/protocol/errors.js +391 -0
- package/dist/cjs/protocol/errors.js.map +1 -0
- package/dist/cjs/protocol/messages.d.ts +327 -0
- package/dist/cjs/protocol/messages.d.ts.map +1 -0
- package/dist/cjs/protocol/messages.js +3 -0
- package/dist/cjs/protocol/messages.js.map +1 -0
- package/dist/cjs/protocol/serialize.d.ts +26 -0
- package/dist/cjs/protocol/serialize.d.ts.map +1 -0
- package/dist/cjs/protocol/serialize.js +71 -0
- package/dist/cjs/protocol/serialize.js.map +1 -0
- package/dist/cjs/protocol/validate.d.ts +135 -0
- package/dist/cjs/protocol/validate.d.ts.map +1 -0
- package/dist/cjs/protocol/validate.js +852 -0
- package/dist/cjs/protocol/validate.js.map +1 -0
- package/dist/esm/audit/chain.d.ts +365 -0
- package/dist/esm/audit/chain.d.ts.map +1 -0
- package/dist/esm/audit/chain.js +895 -0
- package/dist/esm/audit/chain.js.map +1 -0
- package/dist/esm/audit/cloud-client.d.ts +142 -0
- package/dist/esm/audit/cloud-client.d.ts.map +1 -0
- package/dist/esm/audit/cloud-client.js +326 -0
- package/dist/esm/audit/cloud-client.js.map +1 -0
- package/dist/esm/audit/cloud-writer.d.ts +57 -0
- package/dist/esm/audit/cloud-writer.d.ts.map +1 -0
- package/dist/esm/audit/cloud-writer.js +91 -0
- package/dist/esm/audit/cloud-writer.js.map +1 -0
- package/dist/esm/audit/context.d.ts +51 -0
- package/dist/esm/audit/context.d.ts.map +1 -0
- package/dist/esm/audit/context.js +69 -0
- package/dist/esm/audit/context.js.map +1 -0
- package/dist/esm/audit/files.d.ts +111 -0
- package/dist/esm/audit/files.d.ts.map +1 -0
- package/dist/esm/audit/files.js +361 -0
- package/dist/esm/audit/files.js.map +1 -0
- package/dist/esm/audit/index.d.ts +9 -0
- package/dist/esm/audit/index.d.ts.map +1 -0
- package/dist/esm/audit/index.js +8 -0
- package/dist/esm/audit/index.js.map +1 -0
- package/dist/esm/audit/local-writer.d.ts +255 -0
- package/dist/esm/audit/local-writer.d.ts.map +1 -0
- package/dist/esm/audit/local-writer.js +785 -0
- package/dist/esm/audit/local-writer.js.map +1 -0
- package/dist/esm/audit/redact.d.ts +151 -0
- package/dist/esm/audit/redact.d.ts.map +1 -0
- package/dist/esm/audit/redact.js +506 -0
- package/dist/esm/audit/redact.js.map +1 -0
- package/dist/esm/audit/sanitize.d.ts +78 -0
- package/dist/esm/audit/sanitize.d.ts.map +1 -0
- package/dist/esm/audit/sanitize.js +307 -0
- package/dist/esm/audit/sanitize.js.map +1 -0
- package/dist/esm/audit/sink.d.ts +278 -0
- package/dist/esm/audit/sink.d.ts.map +1 -0
- package/dist/esm/audit/sink.js +782 -0
- package/dist/esm/audit/sink.js.map +1 -0
- package/dist/esm/audit/types.d.ts +226 -0
- package/dist/esm/audit/types.d.ts.map +1 -0
- package/dist/esm/audit/types.js +2 -0
- package/dist/esm/audit/types.js.map +1 -0
- package/dist/esm/audit/verify-cache.d.ts +127 -0
- package/dist/esm/audit/verify-cache.d.ts.map +1 -0
- package/dist/esm/audit/verify-cache.js +628 -0
- package/dist/esm/audit/verify-cache.js.map +1 -0
- package/dist/esm/channels/agent-session.d.ts +228 -0
- package/dist/esm/channels/agent-session.d.ts.map +1 -0
- package/dist/esm/channels/agent-session.js +566 -0
- package/dist/esm/channels/agent-session.js.map +1 -0
- package/dist/esm/channels/data-channel.d.ts +181 -0
- package/dist/esm/channels/data-channel.d.ts.map +1 -0
- package/dist/esm/channels/data-channel.js +567 -0
- package/dist/esm/channels/data-channel.js.map +1 -0
- package/dist/esm/channels/reconnect.d.ts +142 -0
- package/dist/esm/channels/reconnect.d.ts.map +1 -0
- package/dist/esm/channels/reconnect.js +234 -0
- package/dist/esm/channels/reconnect.js.map +1 -0
- package/dist/esm/channels/types.d.ts +112 -0
- package/dist/esm/channels/types.d.ts.map +1 -0
- package/dist/esm/channels/types.js +2 -0
- package/dist/esm/channels/types.js.map +1 -0
- package/dist/esm/channels/wake-channel.d.ts +232 -0
- package/dist/esm/channels/wake-channel.d.ts.map +1 -0
- package/dist/esm/channels/wake-channel.js +715 -0
- package/dist/esm/channels/wake-channel.js.map +1 -0
- package/dist/esm/cli/banner.d.ts +2 -0
- package/dist/esm/cli/banner.d.ts.map +1 -0
- package/dist/esm/cli/banner.js +114 -0
- package/dist/esm/cli/banner.js.map +1 -0
- package/dist/esm/cli/commands/agent.d.ts +30 -0
- package/dist/esm/cli/commands/agent.d.ts.map +1 -0
- package/dist/esm/cli/commands/agent.js +204 -0
- package/dist/esm/cli/commands/agent.js.map +1 -0
- package/dist/esm/cli/commands/audit-verify.d.ts +19 -0
- package/dist/esm/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/esm/cli/commands/audit-verify.js +345 -0
- package/dist/esm/cli/commands/audit-verify.js.map +1 -0
- package/dist/esm/cli/commands/clean.d.ts +23 -0
- package/dist/esm/cli/commands/clean.d.ts.map +1 -0
- package/dist/esm/cli/commands/clean.js +235 -0
- package/dist/esm/cli/commands/clean.js.map +1 -0
- package/dist/esm/cli/commands/config-show.d.ts +2 -0
- package/dist/esm/cli/commands/config-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/config-show.js +2 -0
- package/dist/esm/cli/commands/config-show.js.map +1 -0
- package/dist/esm/cli/commands/config.d.ts +6 -0
- package/dist/esm/cli/commands/config.d.ts.map +1 -0
- package/dist/esm/cli/commands/config.js +259 -0
- package/dist/esm/cli/commands/config.js.map +1 -0
- package/dist/esm/cli/commands/db-add.d.ts +16 -0
- package/dist/esm/cli/commands/db-add.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-add.js +576 -0
- package/dist/esm/cli/commands/db-add.js.map +1 -0
- package/dist/esm/cli/commands/db-edit.d.ts +2 -0
- package/dist/esm/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-edit.js +352 -0
- package/dist/esm/cli/commands/db-edit.js.map +1 -0
- package/dist/esm/cli/commands/db-logs.d.ts +3 -0
- package/dist/esm/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-logs.js +64 -0
- package/dist/esm/cli/commands/db-logs.js.map +1 -0
- package/dist/esm/cli/commands/db-ls.d.ts +2 -0
- package/dist/esm/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-ls.js +115 -0
- package/dist/esm/cli/commands/db-ls.js.map +1 -0
- package/dist/esm/cli/commands/db-query.d.ts +121 -0
- package/dist/esm/cli/commands/db-query.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-query.js +754 -0
- package/dist/esm/cli/commands/db-query.js.map +1 -0
- package/dist/esm/cli/commands/db-remove.d.ts +2 -0
- package/dist/esm/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-remove.js +48 -0
- package/dist/esm/cli/commands/db-remove.js.map +1 -0
- package/dist/esm/cli/commands/db-show.d.ts +2 -0
- package/dist/esm/cli/commands/db-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-show.js +131 -0
- package/dist/esm/cli/commands/db-show.js.map +1 -0
- package/dist/esm/cli/commands/db-test.d.ts +3 -0
- package/dist/esm/cli/commands/db-test.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-test.js +307 -0
- package/dist/esm/cli/commands/db-test.js.map +1 -0
- package/dist/esm/cli/commands/db.d.ts +11 -0
- package/dist/esm/cli/commands/db.d.ts.map +1 -0
- package/dist/esm/cli/commands/db.js +76 -0
- package/dist/esm/cli/commands/db.js.map +1 -0
- package/dist/esm/cli/commands/debug.d.ts +2 -0
- package/dist/esm/cli/commands/debug.d.ts.map +1 -0
- package/dist/esm/cli/commands/debug.js +205 -0
- package/dist/esm/cli/commands/debug.js.map +1 -0
- package/dist/esm/cli/commands/doctor.d.ts +5 -0
- package/dist/esm/cli/commands/doctor.d.ts.map +1 -0
- package/dist/esm/cli/commands/doctor.js +114 -0
- package/dist/esm/cli/commands/doctor.js.map +1 -0
- package/dist/esm/cli/commands/index.d.ts +10 -0
- package/dist/esm/cli/commands/index.d.ts.map +1 -0
- package/dist/esm/cli/commands/index.js +10 -0
- package/dist/esm/cli/commands/index.js.map +1 -0
- package/dist/esm/cli/commands/init.d.ts +2 -0
- package/dist/esm/cli/commands/init.d.ts.map +1 -0
- package/dist/esm/cli/commands/init.js +163 -0
- package/dist/esm/cli/commands/init.js.map +1 -0
- package/dist/esm/cli/commands/link.d.ts +5 -0
- package/dist/esm/cli/commands/link.d.ts.map +1 -0
- package/dist/esm/cli/commands/link.js +41 -0
- package/dist/esm/cli/commands/link.js.map +1 -0
- package/dist/esm/cli/commands/logs.d.ts +17 -0
- package/dist/esm/cli/commands/logs.d.ts.map +1 -0
- package/dist/esm/cli/commands/logs.js +278 -0
- package/dist/esm/cli/commands/logs.js.map +1 -0
- package/dist/esm/cli/commands/project-show.d.ts +2 -0
- package/dist/esm/cli/commands/project-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/project-show.js +69 -0
- package/dist/esm/cli/commands/project-show.js.map +1 -0
- package/dist/esm/cli/commands/project.d.ts +3 -0
- package/dist/esm/cli/commands/project.d.ts.map +1 -0
- package/dist/esm/cli/commands/project.js +60 -0
- package/dist/esm/cli/commands/project.js.map +1 -0
- package/dist/esm/cli/commands/service.d.ts +123 -0
- package/dist/esm/cli/commands/service.d.ts.map +1 -0
- package/dist/esm/cli/commands/service.js +505 -0
- package/dist/esm/cli/commands/service.js.map +1 -0
- package/dist/esm/cli/commands/start.d.ts +6 -0
- package/dist/esm/cli/commands/start.d.ts.map +1 -0
- package/dist/esm/cli/commands/start.js +272 -0
- package/dist/esm/cli/commands/start.js.map +1 -0
- package/dist/esm/cli/commands/status.d.ts +2 -0
- package/dist/esm/cli/commands/status.d.ts.map +1 -0
- package/dist/esm/cli/commands/status.js +222 -0
- package/dist/esm/cli/commands/status.js.map +1 -0
- package/dist/esm/cli/commands/stop.d.ts +6 -0
- package/dist/esm/cli/commands/stop.d.ts.map +1 -0
- package/dist/esm/cli/commands/stop.js +96 -0
- package/dist/esm/cli/commands/stop.js.map +1 -0
- package/dist/esm/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/esm/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/esm/cli/daemon/error-tracker.js +451 -0
- package/dist/esm/cli/daemon/error-tracker.js.map +1 -0
- package/dist/esm/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/esm/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/esm/cli/daemon/fault-shutdown.js +273 -0
- package/dist/esm/cli/daemon/fault-shutdown.js.map +1 -0
- package/dist/esm/cli/daemon/index.d.ts +12 -0
- package/dist/esm/cli/daemon/index.d.ts.map +1 -0
- package/dist/esm/cli/daemon/index.js +7 -0
- package/dist/esm/cli/daemon/index.js.map +1 -0
- package/dist/esm/cli/daemon/pid-file.d.ts +13 -0
- package/dist/esm/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/esm/cli/daemon/pid-file.js +51 -0
- package/dist/esm/cli/daemon/pid-file.js.map +1 -0
- package/dist/esm/cli/daemon/readiness.d.ts +30 -0
- package/dist/esm/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/esm/cli/daemon/readiness.js +70 -0
- package/dist/esm/cli/daemon/readiness.js.map +1 -0
- package/dist/esm/cli/daemon/runtime.d.ts +366 -0
- package/dist/esm/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/esm/cli/daemon/runtime.js +1284 -0
- package/dist/esm/cli/daemon/runtime.js.map +1 -0
- package/dist/esm/cli/daemon/shutdown.d.ts +7 -0
- package/dist/esm/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/esm/cli/daemon/shutdown.js +63 -0
- package/dist/esm/cli/daemon/shutdown.js.map +1 -0
- package/dist/esm/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/esm/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/esm/cli/daemon/signal-handlers.js +24 -0
- package/dist/esm/cli/daemon/signal-handlers.js.map +1 -0
- package/dist/esm/cli/daemon/state.d.ts +157 -0
- package/dist/esm/cli/daemon/state.d.ts.map +1 -0
- package/dist/esm/cli/daemon/state.js +352 -0
- package/dist/esm/cli/daemon/state.js.map +1 -0
- package/dist/esm/cli/daemon/status-file.d.ts +139 -0
- package/dist/esm/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/esm/cli/daemon/status-file.js +50 -0
- package/dist/esm/cli/daemon/status-file.js.map +1 -0
- package/dist/esm/cli/doctor/checks.d.ts +133 -0
- package/dist/esm/cli/doctor/checks.d.ts.map +1 -0
- package/dist/esm/cli/doctor/checks.js +624 -0
- package/dist/esm/cli/doctor/checks.js.map +1 -0
- package/dist/esm/cli/doctor/fixes.d.ts +9 -0
- package/dist/esm/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/esm/cli/doctor/fixes.js +163 -0
- package/dist/esm/cli/doctor/fixes.js.map +1 -0
- package/dist/esm/cli/doctor/index.d.ts +7 -0
- package/dist/esm/cli/doctor/index.d.ts.map +1 -0
- package/dist/esm/cli/doctor/index.js +5 -0
- package/dist/esm/cli/doctor/index.js.map +1 -0
- package/dist/esm/cli/index.d.ts +3 -0
- package/dist/esm/cli/index.d.ts.map +1 -0
- package/dist/esm/cli/index.js +333 -0
- package/dist/esm/cli/index.js.map +1 -0
- package/dist/esm/cli/interactive.d.ts +8 -0
- package/dist/esm/cli/interactive.d.ts.map +1 -0
- package/dist/esm/cli/interactive.js +665 -0
- package/dist/esm/cli/interactive.js.map +1 -0
- package/dist/esm/cli/logs/format.d.ts +13 -0
- package/dist/esm/cli/logs/format.d.ts.map +1 -0
- package/dist/esm/cli/logs/format.js +169 -0
- package/dist/esm/cli/logs/format.js.map +1 -0
- package/dist/esm/cli/logs/index.d.ts +3 -0
- package/dist/esm/cli/logs/index.d.ts.map +1 -0
- package/dist/esm/cli/logs/index.js +3 -0
- package/dist/esm/cli/logs/index.js.map +1 -0
- package/dist/esm/cli/logs/viewer.d.ts +41 -0
- package/dist/esm/cli/logs/viewer.d.ts.map +1 -0
- package/dist/esm/cli/logs/viewer.js +412 -0
- package/dist/esm/cli/logs/viewer.js.map +1 -0
- package/dist/esm/cli/ops/operation-logger.d.ts +63 -0
- package/dist/esm/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/esm/cli/ops/operation-logger.js +142 -0
- package/dist/esm/cli/ops/operation-logger.js.map +1 -0
- package/dist/esm/cli/palette.d.ts +11 -0
- package/dist/esm/cli/palette.d.ts.map +1 -0
- package/dist/esm/cli/palette.js +240 -0
- package/dist/esm/cli/palette.js.map +1 -0
- package/dist/esm/cli/prompt.d.ts +186 -0
- package/dist/esm/cli/prompt.d.ts.map +1 -0
- package/dist/esm/cli/prompt.js +483 -0
- package/dist/esm/cli/prompt.js.map +1 -0
- package/dist/esm/cli/ui/box.d.ts +21 -0
- package/dist/esm/cli/ui/box.d.ts.map +1 -0
- package/dist/esm/cli/ui/box.js +60 -0
- package/dist/esm/cli/ui/box.js.map +1 -0
- package/dist/esm/cli/ui/clipboard.d.ts +6 -0
- package/dist/esm/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/esm/cli/ui/clipboard.js +42 -0
- package/dist/esm/cli/ui/clipboard.js.map +1 -0
- package/dist/esm/cli/ui/colors.d.ts +57 -0
- package/dist/esm/cli/ui/colors.d.ts.map +1 -0
- package/dist/esm/cli/ui/colors.js +126 -0
- package/dist/esm/cli/ui/colors.js.map +1 -0
- package/dist/esm/cli/ui/index.d.ts +9 -0
- package/dist/esm/cli/ui/index.d.ts.map +1 -0
- package/dist/esm/cli/ui/index.js +7 -0
- package/dist/esm/cli/ui/index.js.map +1 -0
- package/dist/esm/cli/ui/spinner.d.ts +12 -0
- package/dist/esm/cli/ui/spinner.d.ts.map +1 -0
- package/dist/esm/cli/ui/spinner.js +78 -0
- package/dist/esm/cli/ui/spinner.js.map +1 -0
- package/dist/esm/cli/ui/symbols.d.ts +47 -0
- package/dist/esm/cli/ui/symbols.d.ts.map +1 -0
- package/dist/esm/cli/ui/symbols.js +109 -0
- package/dist/esm/cli/ui/symbols.js.map +1 -0
- package/dist/esm/cli/ui/table.d.ts +23 -0
- package/dist/esm/cli/ui/table.d.ts.map +1 -0
- package/dist/esm/cli/ui/table.js +156 -0
- package/dist/esm/cli/ui/table.js.map +1 -0
- package/dist/esm/cli/ui/terminal.d.ts +7 -0
- package/dist/esm/cli/ui/terminal.d.ts.map +1 -0
- package/dist/esm/cli/ui/terminal.js +32 -0
- package/dist/esm/cli/ui/terminal.js.map +1 -0
- package/dist/esm/config/atomic-write.d.ts +69 -0
- package/dist/esm/config/atomic-write.d.ts.map +1 -0
- package/dist/esm/config/atomic-write.js +246 -0
- package/dist/esm/config/atomic-write.js.map +1 -0
- package/dist/esm/config/db-config.d.ts +134 -0
- package/dist/esm/config/db-config.d.ts.map +1 -0
- package/dist/esm/config/db-config.js +542 -0
- package/dist/esm/config/db-config.js.map +1 -0
- package/dist/esm/config/machine-config.d.ts +85 -0
- package/dist/esm/config/machine-config.d.ts.map +1 -0
- package/dist/esm/config/machine-config.js +190 -0
- package/dist/esm/config/machine-config.js.map +1 -0
- package/dist/esm/config/paths.d.ts +64 -0
- package/dist/esm/config/paths.d.ts.map +1 -0
- package/dist/esm/config/paths.js +108 -0
- package/dist/esm/config/paths.js.map +1 -0
- package/dist/esm/config/schema.d.ts +72 -0
- package/dist/esm/config/schema.d.ts.map +1 -0
- package/dist/esm/config/schema.js +180 -0
- package/dist/esm/config/schema.js.map +1 -0
- package/dist/esm/config/token.d.ts +63 -0
- package/dist/esm/config/token.d.ts.map +1 -0
- package/dist/esm/config/token.js +104 -0
- package/dist/esm/config/token.js.map +1 -0
- package/dist/esm/execution/canceller.d.ts +41 -0
- package/dist/esm/execution/canceller.d.ts.map +1 -0
- package/dist/esm/execution/canceller.js +205 -0
- package/dist/esm/execution/canceller.js.map +1 -0
- package/dist/esm/execution/database-lookup.d.ts +56 -0
- package/dist/esm/execution/database-lookup.d.ts.map +1 -0
- package/dist/esm/execution/database-lookup.js +38 -0
- package/dist/esm/execution/database-lookup.js.map +1 -0
- package/dist/esm/execution/dispatcher.d.ts +181 -0
- package/dist/esm/execution/dispatcher.d.ts.map +1 -0
- package/dist/esm/execution/dispatcher.js +1258 -0
- package/dist/esm/execution/dispatcher.js.map +1 -0
- package/dist/esm/execution/function-effects.d.ts +209 -0
- package/dist/esm/execution/function-effects.d.ts.map +1 -0
- package/dist/esm/execution/function-effects.js +586 -0
- package/dist/esm/execution/function-effects.js.map +1 -0
- package/dist/esm/execution/introspection.d.ts +76 -0
- package/dist/esm/execution/introspection.d.ts.map +1 -0
- package/dist/esm/execution/introspection.js +442 -0
- package/dist/esm/execution/introspection.js.map +1 -0
- package/dist/esm/execution/migration-runner.d.ts +128 -0
- package/dist/esm/execution/migration-runner.d.ts.map +1 -0
- package/dist/esm/execution/migration-runner.js +754 -0
- package/dist/esm/execution/migration-runner.js.map +1 -0
- package/dist/esm/execution/non-tx-detector.d.ts +23 -0
- package/dist/esm/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/esm/execution/non-tx-detector.js +215 -0
- package/dist/esm/execution/non-tx-detector.js.map +1 -0
- package/dist/esm/execution/pool.d.ts +229 -0
- package/dist/esm/execution/pool.d.ts.map +1 -0
- package/dist/esm/execution/pool.js +685 -0
- package/dist/esm/execution/pool.js.map +1 -0
- package/dist/esm/execution/query-runner.d.ts +88 -0
- package/dist/esm/execution/query-runner.d.ts.map +1 -0
- package/dist/esm/execution/query-runner.js +743 -0
- package/dist/esm/execution/query-runner.js.map +1 -0
- package/dist/esm/execution/rate-limiter.d.ts +120 -0
- package/dist/esm/execution/rate-limiter.d.ts.map +1 -0
- package/dist/esm/execution/rate-limiter.js +269 -0
- package/dist/esm/execution/rate-limiter.js.map +1 -0
- package/dist/esm/execution/search-path.d.ts +161 -0
- package/dist/esm/execution/search-path.d.ts.map +1 -0
- package/dist/esm/execution/search-path.js +270 -0
- package/dist/esm/execution/search-path.js.map +1 -0
- package/dist/esm/execution/sql-parser.d.ts +195 -0
- package/dist/esm/execution/sql-parser.d.ts.map +1 -0
- package/dist/esm/execution/sql-parser.js +683 -0
- package/dist/esm/execution/sql-parser.js.map +1 -0
- package/dist/esm/execution/statement-classifier.d.ts +103 -0
- package/dist/esm/execution/statement-classifier.d.ts.map +1 -0
- package/dist/esm/execution/statement-classifier.js +526 -0
- package/dist/esm/execution/statement-classifier.js.map +1 -0
- package/dist/esm/execution/types.d.ts +189 -0
- package/dist/esm/execution/types.d.ts.map +1 -0
- package/dist/esm/execution/types.js +22 -0
- package/dist/esm/execution/types.js.map +1 -0
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +38 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/permissions/auto-upgrade.d.ts +40 -0
- package/dist/esm/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/esm/permissions/auto-upgrade.js +164 -0
- package/dist/esm/permissions/auto-upgrade.js.map +1 -0
- package/dist/esm/permissions/checker.d.ts +53 -0
- package/dist/esm/permissions/checker.d.ts.map +1 -0
- package/dist/esm/permissions/checker.js +322 -0
- package/dist/esm/permissions/checker.js.map +1 -0
- package/dist/esm/permissions/manual-approval.d.ts +213 -0
- package/dist/esm/permissions/manual-approval.d.ts.map +1 -0
- package/dist/esm/permissions/manual-approval.js +503 -0
- package/dist/esm/permissions/manual-approval.js.map +1 -0
- package/dist/esm/permissions/plan-registry.d.ts +274 -0
- package/dist/esm/permissions/plan-registry.d.ts.map +1 -0
- package/dist/esm/permissions/plan-registry.js +450 -0
- package/dist/esm/permissions/plan-registry.js.map +1 -0
- package/dist/esm/permissions/role-policy.d.ts +217 -0
- package/dist/esm/permissions/role-policy.d.ts.map +1 -0
- package/dist/esm/permissions/role-policy.js +570 -0
- package/dist/esm/permissions/role-policy.js.map +1 -0
- package/dist/esm/permissions/types.d.ts +126 -0
- package/dist/esm/permissions/types.d.ts.map +1 -0
- package/dist/esm/permissions/types.js +2 -0
- package/dist/esm/permissions/types.js.map +1 -0
- package/dist/esm/protocol/constants.d.ts +72 -0
- package/dist/esm/protocol/constants.d.ts.map +1 -0
- package/dist/esm/protocol/constants.js +104 -0
- package/dist/esm/protocol/constants.js.map +1 -0
- package/dist/esm/protocol/envelope.d.ts +165 -0
- package/dist/esm/protocol/envelope.d.ts.map +1 -0
- package/dist/esm/protocol/envelope.js +263 -0
- package/dist/esm/protocol/envelope.js.map +1 -0
- package/dist/esm/protocol/errors.d.ts +33 -0
- package/dist/esm/protocol/errors.d.ts.map +1 -0
- package/dist/esm/protocol/errors.js +384 -0
- package/dist/esm/protocol/errors.js.map +1 -0
- package/dist/esm/protocol/messages.d.ts +327 -0
- package/dist/esm/protocol/messages.d.ts.map +1 -0
- package/dist/esm/protocol/messages.js +2 -0
- package/dist/esm/protocol/messages.js.map +1 -0
- package/dist/esm/protocol/serialize.d.ts +26 -0
- package/dist/esm/protocol/serialize.d.ts.map +1 -0
- package/dist/esm/protocol/serialize.js +63 -0
- package/dist/esm/protocol/serialize.js.map +1 -0
- package/dist/esm/protocol/validate.d.ts +135 -0
- package/dist/esm/protocol/validate.d.ts.map +1 -0
- package/dist/esm/protocol/validate.js +830 -0
- package/dist/esm/protocol/validate.js.map +1 -0
- package/dist/types/audit/chain.d.ts +365 -0
- package/dist/types/audit/chain.d.ts.map +1 -0
- package/dist/types/audit/cloud-client.d.ts +142 -0
- package/dist/types/audit/cloud-client.d.ts.map +1 -0
- package/dist/types/audit/cloud-writer.d.ts +57 -0
- package/dist/types/audit/cloud-writer.d.ts.map +1 -0
- package/dist/types/audit/context.d.ts +51 -0
- package/dist/types/audit/context.d.ts.map +1 -0
- package/dist/types/audit/files.d.ts +111 -0
- package/dist/types/audit/files.d.ts.map +1 -0
- package/dist/types/audit/index.d.ts +9 -0
- package/dist/types/audit/index.d.ts.map +1 -0
- package/dist/types/audit/local-writer.d.ts +255 -0
- package/dist/types/audit/local-writer.d.ts.map +1 -0
- package/dist/types/audit/redact.d.ts +151 -0
- package/dist/types/audit/redact.d.ts.map +1 -0
- package/dist/types/audit/sanitize.d.ts +78 -0
- package/dist/types/audit/sanitize.d.ts.map +1 -0
- package/dist/types/audit/sink.d.ts +278 -0
- package/dist/types/audit/sink.d.ts.map +1 -0
- package/dist/types/audit/types.d.ts +226 -0
- package/dist/types/audit/types.d.ts.map +1 -0
- package/dist/types/audit/verify-cache.d.ts +127 -0
- package/dist/types/audit/verify-cache.d.ts.map +1 -0
- package/dist/types/channels/agent-session.d.ts +228 -0
- package/dist/types/channels/agent-session.d.ts.map +1 -0
- package/dist/types/channels/data-channel.d.ts +181 -0
- package/dist/types/channels/data-channel.d.ts.map +1 -0
- package/dist/types/channels/reconnect.d.ts +142 -0
- package/dist/types/channels/reconnect.d.ts.map +1 -0
- package/dist/types/channels/types.d.ts +112 -0
- package/dist/types/channels/types.d.ts.map +1 -0
- package/dist/types/channels/wake-channel.d.ts +232 -0
- package/dist/types/channels/wake-channel.d.ts.map +1 -0
- package/dist/types/cli/banner.d.ts +2 -0
- package/dist/types/cli/banner.d.ts.map +1 -0
- package/dist/types/cli/commands/agent.d.ts +30 -0
- package/dist/types/cli/commands/agent.d.ts.map +1 -0
- package/dist/types/cli/commands/audit-verify.d.ts +19 -0
- package/dist/types/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/types/cli/commands/clean.d.ts +23 -0
- package/dist/types/cli/commands/clean.d.ts.map +1 -0
- package/dist/types/cli/commands/config-show.d.ts +2 -0
- package/dist/types/cli/commands/config-show.d.ts.map +1 -0
- package/dist/types/cli/commands/config.d.ts +6 -0
- package/dist/types/cli/commands/config.d.ts.map +1 -0
- package/dist/types/cli/commands/db-add.d.ts +16 -0
- package/dist/types/cli/commands/db-add.d.ts.map +1 -0
- package/dist/types/cli/commands/db-edit.d.ts +2 -0
- package/dist/types/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/types/cli/commands/db-logs.d.ts +3 -0
- package/dist/types/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/types/cli/commands/db-ls.d.ts +2 -0
- package/dist/types/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/types/cli/commands/db-query.d.ts +121 -0
- package/dist/types/cli/commands/db-query.d.ts.map +1 -0
- package/dist/types/cli/commands/db-remove.d.ts +2 -0
- package/dist/types/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/types/cli/commands/db-show.d.ts +2 -0
- package/dist/types/cli/commands/db-show.d.ts.map +1 -0
- package/dist/types/cli/commands/db-test.d.ts +3 -0
- package/dist/types/cli/commands/db-test.d.ts.map +1 -0
- package/dist/types/cli/commands/db.d.ts +11 -0
- package/dist/types/cli/commands/db.d.ts.map +1 -0
- package/dist/types/cli/commands/debug.d.ts +2 -0
- package/dist/types/cli/commands/debug.d.ts.map +1 -0
- package/dist/types/cli/commands/doctor.d.ts +5 -0
- package/dist/types/cli/commands/doctor.d.ts.map +1 -0
- package/dist/types/cli/commands/index.d.ts +10 -0
- package/dist/types/cli/commands/index.d.ts.map +1 -0
- package/dist/types/cli/commands/init.d.ts +2 -0
- package/dist/types/cli/commands/init.d.ts.map +1 -0
- package/dist/types/cli/commands/link.d.ts +5 -0
- package/dist/types/cli/commands/link.d.ts.map +1 -0
- package/dist/types/cli/commands/logs.d.ts +17 -0
- package/dist/types/cli/commands/logs.d.ts.map +1 -0
- package/dist/types/cli/commands/project-show.d.ts +2 -0
- package/dist/types/cli/commands/project-show.d.ts.map +1 -0
- package/dist/types/cli/commands/project.d.ts +3 -0
- package/dist/types/cli/commands/project.d.ts.map +1 -0
- package/dist/types/cli/commands/service.d.ts +123 -0
- package/dist/types/cli/commands/service.d.ts.map +1 -0
- package/dist/types/cli/commands/start.d.ts +6 -0
- package/dist/types/cli/commands/start.d.ts.map +1 -0
- package/dist/types/cli/commands/status.d.ts +2 -0
- package/dist/types/cli/commands/status.d.ts.map +1 -0
- package/dist/types/cli/commands/stop.d.ts +6 -0
- package/dist/types/cli/commands/stop.d.ts.map +1 -0
- package/dist/types/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/types/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/types/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/types/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/types/cli/daemon/index.d.ts +12 -0
- package/dist/types/cli/daemon/index.d.ts.map +1 -0
- package/dist/types/cli/daemon/pid-file.d.ts +13 -0
- package/dist/types/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/types/cli/daemon/readiness.d.ts +30 -0
- package/dist/types/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/types/cli/daemon/runtime.d.ts +366 -0
- package/dist/types/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/types/cli/daemon/shutdown.d.ts +7 -0
- package/dist/types/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/types/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/types/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/types/cli/daemon/state.d.ts +157 -0
- package/dist/types/cli/daemon/state.d.ts.map +1 -0
- package/dist/types/cli/daemon/status-file.d.ts +139 -0
- package/dist/types/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/types/cli/doctor/checks.d.ts +133 -0
- package/dist/types/cli/doctor/checks.d.ts.map +1 -0
- package/dist/types/cli/doctor/fixes.d.ts +9 -0
- package/dist/types/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/types/cli/doctor/index.d.ts +7 -0
- package/dist/types/cli/doctor/index.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +3 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/cli/interactive.d.ts +8 -0
- package/dist/types/cli/interactive.d.ts.map +1 -0
- package/dist/types/cli/logs/format.d.ts +13 -0
- package/dist/types/cli/logs/format.d.ts.map +1 -0
- package/dist/types/cli/logs/index.d.ts +3 -0
- package/dist/types/cli/logs/index.d.ts.map +1 -0
- package/dist/types/cli/logs/viewer.d.ts +41 -0
- package/dist/types/cli/logs/viewer.d.ts.map +1 -0
- package/dist/types/cli/ops/operation-logger.d.ts +63 -0
- package/dist/types/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/types/cli/palette.d.ts +11 -0
- package/dist/types/cli/palette.d.ts.map +1 -0
- package/dist/types/cli/prompt.d.ts +186 -0
- package/dist/types/cli/prompt.d.ts.map +1 -0
- package/dist/types/cli/ui/box.d.ts +21 -0
- package/dist/types/cli/ui/box.d.ts.map +1 -0
- package/dist/types/cli/ui/clipboard.d.ts +6 -0
- package/dist/types/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/types/cli/ui/colors.d.ts +57 -0
- package/dist/types/cli/ui/colors.d.ts.map +1 -0
- package/dist/types/cli/ui/index.d.ts +9 -0
- package/dist/types/cli/ui/index.d.ts.map +1 -0
- package/dist/types/cli/ui/spinner.d.ts +12 -0
- package/dist/types/cli/ui/spinner.d.ts.map +1 -0
- package/dist/types/cli/ui/symbols.d.ts +47 -0
- package/dist/types/cli/ui/symbols.d.ts.map +1 -0
- package/dist/types/cli/ui/table.d.ts +23 -0
- package/dist/types/cli/ui/table.d.ts.map +1 -0
- package/dist/types/cli/ui/terminal.d.ts +7 -0
- package/dist/types/cli/ui/terminal.d.ts.map +1 -0
- package/dist/types/config/atomic-write.d.ts +69 -0
- package/dist/types/config/atomic-write.d.ts.map +1 -0
- package/dist/types/config/db-config.d.ts +134 -0
- package/dist/types/config/db-config.d.ts.map +1 -0
- package/dist/types/config/machine-config.d.ts +85 -0
- package/dist/types/config/machine-config.d.ts.map +1 -0
- package/dist/types/config/paths.d.ts +64 -0
- package/dist/types/config/paths.d.ts.map +1 -0
- package/dist/types/config/schema.d.ts +72 -0
- package/dist/types/config/schema.d.ts.map +1 -0
- package/dist/types/config/token.d.ts +63 -0
- package/dist/types/config/token.d.ts.map +1 -0
- package/dist/types/execution/canceller.d.ts +41 -0
- package/dist/types/execution/canceller.d.ts.map +1 -0
- package/dist/types/execution/database-lookup.d.ts +56 -0
- package/dist/types/execution/database-lookup.d.ts.map +1 -0
- package/dist/types/execution/dispatcher.d.ts +181 -0
- package/dist/types/execution/dispatcher.d.ts.map +1 -0
- package/dist/types/execution/function-effects.d.ts +209 -0
- package/dist/types/execution/function-effects.d.ts.map +1 -0
- package/dist/types/execution/introspection.d.ts +76 -0
- package/dist/types/execution/introspection.d.ts.map +1 -0
- package/dist/types/execution/migration-runner.d.ts +128 -0
- package/dist/types/execution/migration-runner.d.ts.map +1 -0
- package/dist/types/execution/non-tx-detector.d.ts +23 -0
- package/dist/types/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/types/execution/pool.d.ts +229 -0
- package/dist/types/execution/pool.d.ts.map +1 -0
- package/dist/types/execution/query-runner.d.ts +88 -0
- package/dist/types/execution/query-runner.d.ts.map +1 -0
- package/dist/types/execution/rate-limiter.d.ts +120 -0
- package/dist/types/execution/rate-limiter.d.ts.map +1 -0
- package/dist/types/execution/search-path.d.ts +161 -0
- package/dist/types/execution/search-path.d.ts.map +1 -0
- package/dist/types/execution/sql-parser.d.ts +195 -0
- package/dist/types/execution/sql-parser.d.ts.map +1 -0
- package/dist/types/execution/statement-classifier.d.ts +103 -0
- package/dist/types/execution/statement-classifier.d.ts.map +1 -0
- package/dist/types/execution/types.d.ts +189 -0
- package/dist/types/execution/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/permissions/auto-upgrade.d.ts +40 -0
- package/dist/types/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/types/permissions/checker.d.ts +53 -0
- package/dist/types/permissions/checker.d.ts.map +1 -0
- package/dist/types/permissions/manual-approval.d.ts +213 -0
- package/dist/types/permissions/manual-approval.d.ts.map +1 -0
- package/dist/types/permissions/plan-registry.d.ts +274 -0
- package/dist/types/permissions/plan-registry.d.ts.map +1 -0
- package/dist/types/permissions/role-policy.d.ts +217 -0
- package/dist/types/permissions/role-policy.d.ts.map +1 -0
- package/dist/types/permissions/types.d.ts +126 -0
- package/dist/types/permissions/types.d.ts.map +1 -0
- package/dist/types/protocol/constants.d.ts +72 -0
- package/dist/types/protocol/constants.d.ts.map +1 -0
- package/dist/types/protocol/envelope.d.ts +165 -0
- package/dist/types/protocol/envelope.d.ts.map +1 -0
- package/dist/types/protocol/errors.d.ts +33 -0
- package/dist/types/protocol/errors.d.ts.map +1 -0
- package/dist/types/protocol/messages.d.ts +327 -0
- package/dist/types/protocol/messages.d.ts.map +1 -0
- package/dist/types/protocol/serialize.d.ts +26 -0
- package/dist/types/protocol/serialize.d.ts.map +1 -0
- package/dist/types/protocol/validate.d.ts +135 -0
- package/dist/types/protocol/validate.d.ts.map +1 -0
- package/package.json +116 -4
- package/scripts/generate-systemd-service.mjs +117 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { Role } from '../protocol/envelope';
|
|
2
|
+
import { StatementClassification } from '../execution/types';
|
|
3
|
+
import type { SideEffectKind } from '../execution/function-effects';
|
|
4
|
+
import type { IntrospectionDetail } from '../execution/introspection';
|
|
5
|
+
import { PermissionLevel } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* What a role can do, regardless of permission level.
|
|
8
|
+
*
|
|
9
|
+
* `approve_ddl` is separate from `ddl` on purpose: being able to run a
|
|
10
|
+
* statement yourself and being able to authorise someone else's statement are
|
|
11
|
+
* different powers, and only the second one is exercised by the manual
|
|
12
|
+
* approval flow.
|
|
13
|
+
*/
|
|
14
|
+
export type RoleCapability = 'introspect' | 'introspect_full' | 'query_read' | 'query_write' | 'ddl' | 'migration_run' | 'approve_ddl' | 'cancel' | 'view_history' | 'manage_team' | 'manage_agent';
|
|
15
|
+
/**
|
|
16
|
+
* Capability matrix.
|
|
17
|
+
*
|
|
18
|
+
* `viewer` and `data_reader` hold `introspect` but NOT `introspect_full`, so
|
|
19
|
+
* they receive the reduced snapshot (see `IntrospectionDetail` in
|
|
20
|
+
* execution/introspection.ts). Admin and developer hold both. This keeps the
|
|
21
|
+
* data explorer usable for a read-only user while removing the schema dump.
|
|
22
|
+
*/
|
|
23
|
+
export declare const ROLE_CAPABILITIES: Record<Role, RoleCapability[]>;
|
|
24
|
+
/** Introspection detail level implied by a role's capabilities. */
|
|
25
|
+
export declare function introspectionDetailFor(role: Role): IntrospectionDetail;
|
|
26
|
+
/**
|
|
27
|
+
* Ordering of roles by privilege, lowest first.
|
|
28
|
+
*
|
|
29
|
+
* Used to decide whether one principal may act on another's behalf (e.g. running
|
|
30
|
+
* a migration plan another user registered). It is a *matrix* ordering, not a
|
|
31
|
+
* real security hierarchy: the values come from this table and nothing else, so
|
|
32
|
+
* an unrecognised role can never be treated as privileged.
|
|
33
|
+
*/
|
|
34
|
+
export declare const ROLE_PRIVILEGE_RANK: Record<Role, number>;
|
|
35
|
+
/**
|
|
36
|
+
* Ordering of permission levels by permissiveness, lowest first.
|
|
37
|
+
*
|
|
38
|
+
* `read_only` is the strictest. A plan registered while a database was at a
|
|
39
|
+
* permissive level must not be laundered through a stricter one: a plan that
|
|
40
|
+
* needed no human at `full` may not execute unattended at `auto_upgrade`.
|
|
41
|
+
*/
|
|
42
|
+
export declare const PERMISSION_LEVEL_RANK: Record<PermissionLevel, number>;
|
|
43
|
+
/** Check if a role has a specific capability. */
|
|
44
|
+
export declare function hasCapability(role: Role, cap: RoleCapability): boolean;
|
|
45
|
+
/** True when `role` is at least as privileged as `minimum`. */
|
|
46
|
+
export declare function isAtLeastAsPrivileged(role: Role, minimum: Role): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* True when `role` is strictly more privileged than `minimum`.
|
|
49
|
+
*
|
|
50
|
+
* Acting on another principal's behalf requires a *higher* role than they held,
|
|
51
|
+
* never merely an equal one: two developers are peers, and one peer's plan is
|
|
52
|
+
* not the other's to run.
|
|
53
|
+
*/
|
|
54
|
+
export declare function isStrictlyMorePrivileged(role: Role, minimum: Role): boolean;
|
|
55
|
+
/** True when `level` is at least as permissive as `minimum`. */
|
|
56
|
+
export declare function isAtLeastAsPermissive(level: PermissionLevel, minimum: PermissionLevel): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Side effects that escape the transaction, and therefore escape
|
|
59
|
+
* `default_transaction_read_only` as well.
|
|
60
|
+
*
|
|
61
|
+
* `NOTIFY` is delivered when the statement commits and is not rolled back;
|
|
62
|
+
* advisory locks are released by session end, not by `ROLLBACK`; a sequence
|
|
63
|
+
* advance and an XID allocation both persist (the XID is written to WAL).
|
|
64
|
+
* `read_only` is a restriction on writes to relations, so none of these is
|
|
65
|
+
* covered by it, and none of them is recorded by the audit chain unless the
|
|
66
|
+
* classifier records it here.
|
|
67
|
+
*/
|
|
68
|
+
export declare const NON_TRANSACTIONAL_SIDE_EFFECTS: ReadonlySet<SideEffectKind>;
|
|
69
|
+
/**
|
|
70
|
+
* True when the statement performs a side effect that a rollback does not undo.
|
|
71
|
+
*
|
|
72
|
+
* Consulted by `isProvableRead()` (any such effect makes the statement not a
|
|
73
|
+
* read) and exported so callers that need to explain WHY a statement was
|
|
74
|
+
* escalated do not have to re-derive the rule.
|
|
75
|
+
*/
|
|
76
|
+
export declare function hasNonTransactionalSideEffect(c: StatementClassification): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* The clause that says WHY {@link isProvableRead} returned false, in words a
|
|
79
|
+
* caller can act on.
|
|
80
|
+
*
|
|
81
|
+
* The permission layer refuses first and explains second, and the explanation
|
|
82
|
+
* used to assert that a refused statement "calls a function with a side effect
|
|
83
|
+
* outside the transaction (a notification, an advisory lock, …)" whenever any
|
|
84
|
+
* function was involved. For `SELECT extract(year FROM started_at)` that is
|
|
85
|
+
* simply false: `extract` does not notify, lock or advance anything, it is
|
|
86
|
+
* merely not proved `IMMUTABLE`. An automated caller reading a wrong reason
|
|
87
|
+
* adapts to the wrong thing, so this names the actual `pg_proc` verdict, the
|
|
88
|
+
* actual side-effect family, or the structural reason — whichever is the real
|
|
89
|
+
* cause, in that order of specificity.
|
|
90
|
+
*
|
|
91
|
+
* @returns A lowercase clause with no trailing full stop, suitable for
|
|
92
|
+
* splicing into `Read-only mode: <clause>.`
|
|
93
|
+
*/
|
|
94
|
+
export declare function explainWhyNotAProvableRead(c: StatementClassification): string;
|
|
95
|
+
/**
|
|
96
|
+
* True only for a statement that is provably side-effect free: one statement,
|
|
97
|
+
* parsed by PostgreSQL's own grammar, classified as a read, with no read
|
|
98
|
+
* violations, no recorded side effect, and every function it calls proved
|
|
99
|
+
* `IMMUTABLE` and not `SECURITY DEFINER` by `pg_proc`.
|
|
100
|
+
*
|
|
101
|
+
* This is the single definition of "a read" used by the permission layer. A
|
|
102
|
+
* classification that does not satisfy every clause is treated as a write.
|
|
103
|
+
*
|
|
104
|
+
* The function clause is what closes the transitive hole: an
|
|
105
|
+
* operator-written `SECURITY DEFINER` wrapper around `pg_read_file`, or any
|
|
106
|
+
* VOLATILE function that INSERTs, parses as a `SELECT` and is on no deny-list,
|
|
107
|
+
* but `pg_proc` reports it as unsafe — and a function reference with no
|
|
108
|
+
* catalogue verdict at all is refused too, which is why a caller that cannot
|
|
109
|
+
* reach a database must expect every statement that calls a function to be
|
|
110
|
+
* escalated here.
|
|
111
|
+
*/
|
|
112
|
+
export declare function isProvableRead(c: StatementClassification): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Map a statement classification to the capability required to run it.
|
|
115
|
+
*
|
|
116
|
+
* `query_read` is granted ONLY for a provable read. Because every role holds
|
|
117
|
+
* `query_read`, this predicate is the entire role-layer defence for `SELECT`,
|
|
118
|
+
* so it must never widen: anything the classifier could not prove is a read is
|
|
119
|
+
* escalated to `ddl` here rather than trusted.
|
|
120
|
+
*/
|
|
121
|
+
export declare function capabilityForClassification(c: StatementClassification): RoleCapability | null;
|
|
122
|
+
/** Map a message type to the capability required. */
|
|
123
|
+
export declare function capabilityForMessageType(type: string): RoleCapability | null;
|
|
124
|
+
/**
|
|
125
|
+
* Map an inbound `event` kind to the capability required to use it.
|
|
126
|
+
*
|
|
127
|
+
* `event` messages bypass the query pipeline, so the capability has to be
|
|
128
|
+
* named here rather than inferred from a SQL statement.
|
|
129
|
+
*/
|
|
130
|
+
export declare function capabilityForEventKind(kind: string): RoleCapability | null;
|
|
131
|
+
/**
|
|
132
|
+
* Shape of the PostgreSQL login role this connector should be given.
|
|
133
|
+
*
|
|
134
|
+
* The agent's own controls are implemented in TypeScript and can have bugs, so
|
|
135
|
+
* the database role is where the boundary that cannot be bypassed from the wire
|
|
136
|
+
* is set. Two things the agent does about function calls are worth naming
|
|
137
|
+
* precisely, because they are frequently described as one control:
|
|
138
|
+
*
|
|
139
|
+
* - `pg_proc` function-effect analysis (execution/function-effects.ts) is the
|
|
140
|
+
* primary control: a statement is only a read when every function it calls
|
|
141
|
+
* is `IMMUTABLE` and not `SECURITY DEFINER`. It does not depend on the
|
|
142
|
+
* function's name, so it covers operator-written helpers.
|
|
143
|
+
* - The `DENIED_READ_FUNCTIONS` list in sql-parser.ts is defence in depth. It
|
|
144
|
+
* is incomplete by construction and is not a boundary.
|
|
145
|
+
*
|
|
146
|
+
* The revokes below are what a miss cannot get past: `read_only` on the
|
|
147
|
+
* connection constrains WRITES only, so a function that reads a server file,
|
|
148
|
+
* notifies a channel, or reaches another host is not covered by it, and only
|
|
149
|
+
* the absence of EXECUTE is.
|
|
150
|
+
*
|
|
151
|
+
* `sw-agent doctor` reports these attributes for the connected role; the
|
|
152
|
+
* statements below are what an operator should run once per deployment. Where a
|
|
153
|
+
* role name is shown as a placeholder, substitute the real one.
|
|
154
|
+
*/
|
|
155
|
+
export declare const RECOMMENDED_PG_ROLE: {
|
|
156
|
+
readonly role_name: "sw_agent";
|
|
157
|
+
/**
|
|
158
|
+
* Required `pg_roles` attributes. A role that satisfies all of these cannot
|
|
159
|
+
* escalate to superuser, cannot create databases or roles, cannot replicate,
|
|
160
|
+
* and cannot bypass row-level security.
|
|
161
|
+
*/
|
|
162
|
+
readonly required_attributes: readonly ["rolsuper = false", "rolcreatedb = false", "rolcreaterole = false", "rolreplication = false", "rolbypassrls = false"];
|
|
163
|
+
/**
|
|
164
|
+
* Predefined roles that must NOT be granted. Several of them exist only in
|
|
165
|
+
* newer PostgreSQL releases; grant the ones the server actually has.
|
|
166
|
+
*/
|
|
167
|
+
readonly forbidden_memberships: readonly ["pg_read_server_files", "pg_write_server_files", "pg_execute_server_program", "pg_read_all_settings", "pg_read_all_stats", "pg_stat_scan_tables", "pg_monitor", "pg_read_all_data", "pg_write_all_data"];
|
|
168
|
+
/** Bootstrap. Idempotent; safe to re-run. */
|
|
169
|
+
readonly bootstrap: readonly ["DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'sw_agent') THEN CREATE ROLE sw_agent LOGIN; END IF; END $$;", "ALTER ROLE sw_agent NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;"];
|
|
170
|
+
/**
|
|
171
|
+
* REVOKEs that matter. PostgreSQL grants a great deal to PUBLIC by default —
|
|
172
|
+
* notably `CREATE` on schema `public` (pre-14) and `EXECUTE` on every
|
|
173
|
+
* function — so the default state must be revoked explicitly rather than
|
|
174
|
+
* assumed absent.
|
|
175
|
+
*
|
|
176
|
+
* WHY THE DEFAULT-PRIVILEGES ROW IS NOT OPTIONAL: every `REVOKE … ON ALL
|
|
177
|
+
* FUNCTIONS` above is a ONE-SHOT SNAPSHOT of the functions that exist at the
|
|
178
|
+
* moment it runs. A function created afterwards is granted to PUBLIC again
|
|
179
|
+
* by the same default privileges that gave the current one away, so the
|
|
180
|
+
* revocation silently decays to nothing on a database that receives DDL. The
|
|
181
|
+
* `ALTER DEFAULT PRIVILEGES` row is what stops the decay; run it as the role
|
|
182
|
+
* that owns the objects (or as a superuser, which covers every future object),
|
|
183
|
+
* and re-run it after any role that creates functions is added.
|
|
184
|
+
*/
|
|
185
|
+
readonly revokes: readonly ["REVOKE ALL ON DATABASE <database> FROM PUBLIC;", "REVOKE ALL ON SCHEMA public FROM PUBLIC;", "REVOKE ALL ON SCHEMA public FROM sw_agent;", "REVOKE CREATE ON SCHEMA public FROM PUBLIC;", "REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM PUBLIC;", "REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM sw_agent;", "REVOKE EXECUTE ON ALL PROCEDURES IN SCHEMA public FROM PUBLIC;", "REVOKE EXECUTE ON ALL PROCEDURES IN SCHEMA public FROM sw_agent;", "ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;", "ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE EXECUTE ON PROCEDURES FROM PUBLIC;", "REVOKE ALL ON ALL SEQUENCES IN SCHEMA public FROM sw_agent;", "REVOKE ALL ON ALL TABLES IN SCHEMA public FROM sw_agent;", "REVOKE ALL ON ALL SEQUENCES IN SCHEMA public FROM PUBLIC;"];
|
|
186
|
+
/** The only privileges the read-only posture needs. */
|
|
187
|
+
readonly grants: readonly ["GRANT CONNECT ON DATABASE <database> TO sw_agent;", "GRANT USAGE ON SCHEMA public TO sw_agent;", "GRANT SELECT ON ALL TABLES IN SCHEMA public TO sw_agent;", "REVOKE TEMP ON DATABASE <database> FROM sw_agent;"];
|
|
188
|
+
/**
|
|
189
|
+
* Session hardening, applied to every connection the role opens. The agent
|
|
190
|
+
* additionally sets `default_transaction_read_only` per connection for
|
|
191
|
+
* `read_only` entries; pinning it on the role means the guarantee also holds
|
|
192
|
+
* for an operator's own psql session and for any path the agent misses.
|
|
193
|
+
*/
|
|
194
|
+
readonly role_settings: readonly ["ALTER ROLE sw_agent SET search_path = pg_catalog, public;", "ALTER ROLE sw_agent SET default_transaction_read_only = on;", "ALTER ROLE sw_agent SET statement_timeout = 30s;", "ALTER ROLE sw_agent SET idle_in_transaction_session_timeout = 60s;", "ALTER ROLE sw_agent SET log_statement = none;"];
|
|
195
|
+
/**
|
|
196
|
+
* What `doctor` should check on the connected role. Each row is a query and
|
|
197
|
+
* the value that means "acceptable"; anything else is reported to the
|
|
198
|
+
* operator as a finding.
|
|
199
|
+
*/
|
|
200
|
+
readonly verification_queries: readonly [{
|
|
201
|
+
readonly sql: "SELECT rolsuper, rolcreatedb, rolcreaterole, rolreplication, rolbypassrls\n FROM pg_roles WHERE rolname = current_user";
|
|
202
|
+
readonly expect: "six columns, every boolean false";
|
|
203
|
+
}, {
|
|
204
|
+
readonly sql: "SELECT has_database_privilege(current_user, current_database(), 'TEMP') AS can_create_temp";
|
|
205
|
+
readonly expect: "false";
|
|
206
|
+
}, {
|
|
207
|
+
readonly sql: "SELECT has_schema_privilege(current_user, 'public', 'CREATE') AS can_create_in_public";
|
|
208
|
+
readonly expect: "false";
|
|
209
|
+
}, {
|
|
210
|
+
readonly sql: "SELECT count(*) > 0 AS has_table_access\n FROM pg_roles r\n JOIN pg_auth_members m ON m.roleid = r.oid\n WHERE r.rolname IN ('pg_read_server_files', 'pg_write_server_files',\n 'pg_execute_server_program', 'pg_monitor',\n 'pg_read_all_data', 'pg_write_all_data')";
|
|
211
|
+
readonly expect: "false";
|
|
212
|
+
}, {
|
|
213
|
+
readonly sql: "SHOW default_transaction_read_only";
|
|
214
|
+
readonly expect: "on";
|
|
215
|
+
}];
|
|
216
|
+
};
|
|
217
|
+
//# sourceMappingURL=role-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-policy.d.ts","sourceRoot":"","sources":["../../../src/permissions/role-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAQtB,YAAY,GAMZ,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,KAAK,GAGL,eAAe,GACf,aAAa,GACb,QAAQ,GACR,cAAc,GACd,aAAa,GACb,cAAc,CAAC;AAEnB;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,CA2B5D,CAAC;AAEF,mEAAmE;AACnE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,mBAAmB,CAEtE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAKpD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAKjE,CAAC;AAEF,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAEtE;AAED,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAKxE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAK3E;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAK/F;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,8BAA8B,EAAE,WAAW,CAAC,cAAc,CAUtE,CAAC;AAuBF;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAgBjF;AA+CD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAiD7E;AA2CD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAOlE;AAqBD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,uBAAuB,GAAG,cAAc,GAAG,IAAI,CAkB7F;AAED,qDAAqD;AACrD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAgB5E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS1E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,mBAAmB;;IAG9B;;;;OAIG;;IASH;;;OAGG;;IAaH,6CAA6C;;IAM7C;;;;;;;;;;;;;;OAcG;;IAwBH,uDAAuD;;IASvD;;;;;OAKG;;IASH;;;;OAIG;;;;;;;;;;;;;;;;;CA6BK,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { Role } from '../protocol/envelope';
|
|
2
|
+
import { StatementClassification } from '../execution/types';
|
|
3
|
+
export type PermissionLevel = 'read_only' | 'auto_upgrade' | 'manual' | 'full';
|
|
4
|
+
/** What the user is trying to do. */
|
|
5
|
+
export interface ActionRequest {
|
|
6
|
+
/** The user's role in the workspace. */
|
|
7
|
+
role: Role;
|
|
8
|
+
/** Effective permission level (already resolved from override + default). */
|
|
9
|
+
permission_level: PermissionLevel;
|
|
10
|
+
/** Original SQL. */
|
|
11
|
+
sql: string;
|
|
12
|
+
/** Browser-claimed intent (advisory only — we re-parse to verify). */
|
|
13
|
+
intent: 'read' | 'write' | 'ddl' | 'migration';
|
|
14
|
+
/** If intent=migration, the plan_id claimed by browser. */
|
|
15
|
+
plan_id?: string;
|
|
16
|
+
/** The message type (query, stream_query, migration_run, etc.). */
|
|
17
|
+
message_type: string;
|
|
18
|
+
/** The request_id (for tracking approval). */
|
|
19
|
+
request_id: string;
|
|
20
|
+
/** Which DB alias this targets. */
|
|
21
|
+
db_alias: string;
|
|
22
|
+
/** The project name. */
|
|
23
|
+
project: string;
|
|
24
|
+
/**
|
|
25
|
+
* The RESOLVED database identity, when the caller has resolved it.
|
|
26
|
+
*
|
|
27
|
+
* `project` and `db_alias` above are what the frame *claimed*; these are what
|
|
28
|
+
* the agent actually looked up. The audit trail records the resolved pair, and
|
|
29
|
+
* a plan is bound to the resolved pair, so a frame that names one database
|
|
30
|
+
* while executing against another cannot satisfy a plan registered against
|
|
31
|
+
* either. Omitted only by callers with no resolution step (the local CLI,
|
|
32
|
+
* tests), where the claimed values are the only ones there are.
|
|
33
|
+
*/
|
|
34
|
+
resolved_project?: string;
|
|
35
|
+
resolved_db_alias?: string;
|
|
36
|
+
/** The user context. */
|
|
37
|
+
user: {
|
|
38
|
+
id: string;
|
|
39
|
+
role: Role;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Approval nonce for this request. Agent-minted only: `ManualApprovalHandler`
|
|
43
|
+
* mints it locally when the approval is parked, so a value arriving from the
|
|
44
|
+
* wire must never populate this field. It is recorded here so a decision can
|
|
45
|
+
* be correlated with the approval event that carried it.
|
|
46
|
+
*/
|
|
47
|
+
approval_nonce?: string;
|
|
48
|
+
}
|
|
49
|
+
/** Outcome of a permission check. */
|
|
50
|
+
export interface PermissionDecision {
|
|
51
|
+
/** Whether the action can proceed. */
|
|
52
|
+
allowed: boolean;
|
|
53
|
+
/** Why allowed or denied. */
|
|
54
|
+
reason: string;
|
|
55
|
+
/** Stable code for audit + browser UI. */
|
|
56
|
+
code: 'allowed' | 'role_insufficient' | 'permission_denied' | 'plan_not_registered' | 'intent_mismatch' | 'auto_upgrade_granted'
|
|
57
|
+
/** PostgreSQL could not parse the statement; denied rather than guessed. */
|
|
58
|
+
| 'unparseable_statement'
|
|
59
|
+
/** The parser found more than one statement; refused outright. */
|
|
60
|
+
| 'multiple_statements'
|
|
61
|
+
/** The parser could not be loaded; denied rather than falling back. */
|
|
62
|
+
| 'parser_unavailable'
|
|
63
|
+
/**
|
|
64
|
+
* `intent: 'migration'` was claimed on a message that is not a
|
|
65
|
+
* `migration_run`. The value is meaningful only on that path, so the claim
|
|
66
|
+
* is refused instead of being treated as an exemption from anti-spoofing.
|
|
67
|
+
*/
|
|
68
|
+
| 'intent_not_applicable';
|
|
69
|
+
/**
|
|
70
|
+
* The classification the decision was based on. Returned so the execution
|
|
71
|
+
* layer uses the exact same verdict rather than re-parsing and possibly
|
|
72
|
+
* disagreeing.
|
|
73
|
+
*/
|
|
74
|
+
classification?: StatementClassification;
|
|
75
|
+
/** Populated when approval was requested and refused/expired. */
|
|
76
|
+
approval_request?: {
|
|
77
|
+
request_id: string;
|
|
78
|
+
/**
|
|
79
|
+
* Redacted and length-capped. The full statement text must never leave the
|
|
80
|
+
* agent: it can carry PII literals that the cloud and the browser's audit
|
|
81
|
+
* view would otherwise store.
|
|
82
|
+
*/
|
|
83
|
+
sql_preview: string;
|
|
84
|
+
intent: 'write' | 'ddl';
|
|
85
|
+
db_alias: string;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Refusal of a `plan_register` event, produced by `PlanRegistry` — the single
|
|
90
|
+
* source of truth for who may register a migration plan and at what level.
|
|
91
|
+
*/
|
|
92
|
+
export type PlanRegistrationRefusal = 'read_only_permission_level' | 'role_lacks_migration_run' | 'unattested_principal'
|
|
93
|
+
/** the registration did not name the resolved project and db_alias. */
|
|
94
|
+
| 'unscoped_plan_registration';
|
|
95
|
+
/** Why a registered plan may or may not be executed by a given principal. */
|
|
96
|
+
export type PlanProvenanceRefusal = 'plan_not_registered' | 'plan_expired' | 'statements_changed' | 'runner_not_privileged' | 'registered_at_more_permissive_level' | 'principal_not_attested'
|
|
97
|
+
/** the plan is bound to a different project/db_alias than this run. */
|
|
98
|
+
| 'plan_scope_mismatch';
|
|
99
|
+
/**
|
|
100
|
+
* Refusal of a single consumption of a plan, produced by
|
|
101
|
+
* `PlanRegistry.consume()`.
|
|
102
|
+
*
|
|
103
|
+
* `plan_already_consumed` is kept separate from `plan_not_registered` on
|
|
104
|
+
* purpose: "you may not run this, it is not yours / not bound to these
|
|
105
|
+
* statements" and "you already ran this" are different operator problems, and
|
|
106
|
+
* collapsing them hides a replay attempt behind a typo. Neither code reveals
|
|
107
|
+
* anything about any *other* plan id.
|
|
108
|
+
*/
|
|
109
|
+
export type PlanConsumeRefusal = PlanProvenanceRefusal | 'plan_already_consumed';
|
|
110
|
+
/** Result of auto-upgrade evaluation. */
|
|
111
|
+
export interface AutoUpgradeResult {
|
|
112
|
+
/** Whether the auto-upgrade was granted. */
|
|
113
|
+
granted: boolean;
|
|
114
|
+
/** Why granted or denied. */
|
|
115
|
+
reason: string;
|
|
116
|
+
}
|
|
117
|
+
/** Result of manual approval flow. */
|
|
118
|
+
export interface ManualApprovalResult {
|
|
119
|
+
/** Whether approval was given. */
|
|
120
|
+
approved: boolean;
|
|
121
|
+
/** Who approved/denied (user_id). */
|
|
122
|
+
approved_by?: string;
|
|
123
|
+
/** Why not approved (timeout, denied, etc.). */
|
|
124
|
+
reason?: string;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/permissions/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/E,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,6EAA6E;IAC7E,gBAAgB,EAAE,eAAe,CAAC;IAClC,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,CAAC;IAC/C,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB;IACxB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;IACjC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,EACA,SAAS,GACT,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,iBAAiB,GACjB,sBAAsB;IACxB,4EAA4E;OAC1E,uBAAuB;IACzB,kEAAkE;OAChE,qBAAqB;IACvB,uEAAuE;OACrE,oBAAoB;IACtB;;;;OAIG;OACD,uBAAuB,CAAC;IAC5B;;;;OAIG;IACH,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,iEAAiE;IACjE,gBAAgB,CAAC,EAAE;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB;;;;WAIG;QACH,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAC/B,4BAA4B,GAC5B,0BAA0B,GAC1B,sBAAsB;AACxB,uEAAuE;GACrE,4BAA4B,CAAC;AAEjC,6EAA6E;AAC7E,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,cAAc,GACd,oBAAoB,GACpB,uBAAuB,GACvB,qCAAqC,GACrC,wBAAwB;AAC1B,uEAAuE;GACrE,qBAAqB,CAAC;AAE1B;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAEjF,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export declare const PROTOCOL_VERSION: 1;
|
|
2
|
+
export declare const DEFAULTS: {
|
|
3
|
+
readonly QUERY_TIMEOUT_MS: 30000;
|
|
4
|
+
readonly MIGRATION_TIMEOUT_MS: 1800000;
|
|
5
|
+
readonly STREAM_CHUNK_ROWS: 100;
|
|
6
|
+
readonly STREAM_CHUNK_BYTES: 65536;
|
|
7
|
+
readonly STREAM_CHUNK_MS: 100;
|
|
8
|
+
readonly MAX_QUERY_ROWS: 10000;
|
|
9
|
+
readonly MAX_STREAM_ROWS: 1000000;
|
|
10
|
+
readonly MAX_CELL_BYTES: 1048576;
|
|
11
|
+
readonly APPROVAL_TIMEOUT_MS: 60000;
|
|
12
|
+
readonly IDLE_WSS_TIMEOUT_MS: 60000;
|
|
13
|
+
readonly WAKE_KEEPALIVE_MS: 300000;
|
|
14
|
+
readonly RECONNECT_BACKOFF_MS: readonly [1000, 2000, 4000, 8000, 16000, 32000, 60000];
|
|
15
|
+
readonly ORPHAN_REQUEST_TIMEOUT_MS: 300000;
|
|
16
|
+
readonly ENVELOPE_MAX_CLOCK_SKEW_MS: 120000;
|
|
17
|
+
readonly WAKE_MAX_EVENT_AGE_MS: 120000;
|
|
18
|
+
readonly WAKE_CLOCK_SKEW_MS: 30000;
|
|
19
|
+
readonly WAKE_MIN_TOKEN_LIFE_MS: 5000;
|
|
20
|
+
readonly SESSION_CHANGE_COOLDOWN_MS: 2000;
|
|
21
|
+
readonly SESSION_CHANGE_WINDOW_MS: 300000;
|
|
22
|
+
readonly SESSION_CHANGE_MAX_PER_WINDOW: 100;
|
|
23
|
+
};
|
|
24
|
+
export declare const LIMITS: {
|
|
25
|
+
readonly MAX_STATEMENT_COUNT_PER_MIGRATION: 500;
|
|
26
|
+
readonly MAX_STATEMENT_COUNT_PER_QUERY: 1;
|
|
27
|
+
readonly MAX_STATEMENT_LENGTH: 1048576;
|
|
28
|
+
readonly MAX_PAYLOAD_BYTES: 16777216;
|
|
29
|
+
readonly ID_MAX_LENGTH: 64;
|
|
30
|
+
readonly PROJECT_MAX_LENGTH: 64;
|
|
31
|
+
readonly ALIAS_MAX_LENGTH: 64;
|
|
32
|
+
readonly ENVELOPE_NONCE_MIN_LENGTH: 16;
|
|
33
|
+
readonly ENVELOPE_NONCE_MAX_LENGTH: 64;
|
|
34
|
+
readonly ENVELOPE_MAC_HEX_LENGTH: 64;
|
|
35
|
+
readonly REPLAY_CACHE_MAX_ENTRIES: 8192;
|
|
36
|
+
readonly WAKE_REPLAY_CACHE_MAX_ENTRIES: 1024;
|
|
37
|
+
readonly APPROVAL_TIMEOUT_MIN_MS: 5000;
|
|
38
|
+
readonly APPROVAL_TIMEOUT_MAX_MS: 900000;
|
|
39
|
+
readonly APPROVAL_NONCE_HEX_LENGTH: 64;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* The only environment variable that may change the manual-approval window.
|
|
43
|
+
*
|
|
44
|
+
* Declared here so the daemon's env allow-list (src/cli/daemon/state.ts) and the
|
|
45
|
+
* resolver that enforces it cannot drift; the resolver clamps whatever it reads
|
|
46
|
+
* into LIMITS.APPROVAL_TIMEOUT_MIN_MS..LIMITS.APPROVAL_TIMEOUT_MAX_MS.
|
|
47
|
+
*/
|
|
48
|
+
export declare const APPROVAL_TIMEOUT_ENV_VAR = "SW_AGENT_MANUAL_APPROVAL_TIMEOUT_MS";
|
|
49
|
+
/**
|
|
50
|
+
* Whether a per-session MAC is mandatory on inbound envelopes.
|
|
51
|
+
*
|
|
52
|
+
* Fail closed: an envelope with no MAC is rejected. A relay that has not yet
|
|
53
|
+
* implemented envelope signing therefore cannot drive the agent at all, which
|
|
54
|
+
* is the intended behaviour — the alternative (defaulting to "accept unsigned")
|
|
55
|
+
* preserves the C-04 vulnerability for every existing deployment.
|
|
56
|
+
*/
|
|
57
|
+
export declare const ENVELOPE_MAC_REQUIRED_DEFAULT = true;
|
|
58
|
+
/** HKDF suite used to turn a data-channel token into an envelope MAC key. */
|
|
59
|
+
export declare const ENVELOPE_MAC_KDF: {
|
|
60
|
+
readonly digest: "sha256";
|
|
61
|
+
readonly saltLabel: "sw-agent/v1/envelope-mac/salt";
|
|
62
|
+
readonly infoLabel: "sw-agent/v1/envelope-mac/info";
|
|
63
|
+
readonly keyBytes: 32;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Anti-replay nonces are opaque to the connector; it only requires them to be
|
|
67
|
+
* unique per session and unguessable enough not to collide across sessions.
|
|
68
|
+
*/
|
|
69
|
+
export declare const ENVELOPE_NONCE_PATTERN: RegExp;
|
|
70
|
+
/** Approval nonces are 32 random bytes, lowercase hex. */
|
|
71
|
+
export declare const APPROVAL_NONCE_PATTERN: RegExp;
|
|
72
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/protocol/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAE3C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAuCX,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CA8BT,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,wCAAwC,CAAC;AAE9E;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAA2B,CAAC;AAE/D,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,QAAmB,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { PROTOCOL_VERSION } from './constants';
|
|
2
|
+
export declare const PROTOCOL_VERSION_V1: 1;
|
|
3
|
+
export type ProtocolVersion = typeof PROTOCOL_VERSION;
|
|
4
|
+
/**
|
|
5
|
+
* Canonical list of RBAC roles. The `Role` type is derived from this tuple so
|
|
6
|
+
* the runtime allow-list and the compile-time union cannot drift apart.
|
|
7
|
+
*/
|
|
8
|
+
export declare const ROLES: readonly ["admin", "developer", "data_reader", "viewer"];
|
|
9
|
+
export type Role = (typeof ROLES)[number];
|
|
10
|
+
export declare function isRole(value: unknown): value is Role;
|
|
11
|
+
/**
|
|
12
|
+
* Canonical list of message types. `MessageType` is derived from this tuple;
|
|
13
|
+
* `validateEnvelope` gates on the same array.
|
|
14
|
+
*/
|
|
15
|
+
export declare const MESSAGE_TYPES: readonly ["ping", "introspect", "query", "stream_query", "migration_run", "cancel", "response", "error", "stream_chunk", "stream_end", "event"];
|
|
16
|
+
export type MessageType = (typeof MESSAGE_TYPES)[number];
|
|
17
|
+
/**
|
|
18
|
+
* Canonical list of event kinds. `EventKind` is derived from this tuple, so an
|
|
19
|
+
* event kind that is not in this array cannot be validated and an array entry
|
|
20
|
+
* that is not a legal kind is a compile error.
|
|
21
|
+
*/
|
|
22
|
+
export declare const EVENT_KINDS: readonly ["status_change", "migration_progress", "approval_required", "approval_response", "warning", "resume_request", "plan_register"];
|
|
23
|
+
export type EventKind = (typeof EVENT_KINDS)[number];
|
|
24
|
+
export type MigrationStatementStatus = 'pending' | 'running' | 'success' | 'failed' | 'rolled_back';
|
|
25
|
+
/**
|
|
26
|
+
* The security-relevant envelope fields covered by the per-session MAC, in
|
|
27
|
+
* canonical (sorted) order: db_alias, id, nonce, payload, project, ts, type, user, v.
|
|
28
|
+
*
|
|
29
|
+
* `canonicalEnvelopeJson` in fact covers *every* top-level field except `mac`,
|
|
30
|
+
* so a relay cannot smuggle an unsigned field past verification; this constant
|
|
31
|
+
* documents the minimum contract a compatible implementation must satisfy.
|
|
32
|
+
*/
|
|
33
|
+
export declare const MAC_SIGNED_ENVELOPE_FIELDS: readonly ["v", "id", "type", "project", "user", "db_alias", "ts", "nonce", "payload"];
|
|
34
|
+
/**
|
|
35
|
+
* Single envelope format for every message between browser <-> cloud <-> agent.
|
|
36
|
+
* Every WebSocket frame contains exactly one AgentMessage serialized as UTF-8 JSON.
|
|
37
|
+
*/
|
|
38
|
+
export interface AgentMessage<T = unknown> {
|
|
39
|
+
/** Protocol version. Must equal 1. */
|
|
40
|
+
v: ProtocolVersion;
|
|
41
|
+
/** UUID v4. Generated by sender. Used for request/response correlation + cancellation. */
|
|
42
|
+
id: string;
|
|
43
|
+
/** Message type. Determines payload shape. */
|
|
44
|
+
type: MessageType;
|
|
45
|
+
/** Project name. Must match a project_name in databases.config.json. */
|
|
46
|
+
project: string;
|
|
47
|
+
/**
|
|
48
|
+
* Acting user, as asserted by the relay.
|
|
49
|
+
*
|
|
50
|
+
* This is a CLAIM, not a verified fact: nothing in a self-declared `role` is
|
|
51
|
+
* trustworthy on its own. It is only acted upon after
|
|
52
|
+
* `InboundEnvelopeGuard` (protocol/validate.ts) has verified the per-session
|
|
53
|
+
* MAC over this whole envelope, checked `ts` freshness, rejected a replayed
|
|
54
|
+
* `nonce`, and confirmed `role` is one of the roles the cloud negotiated when
|
|
55
|
+
* this data-channel session was created.
|
|
56
|
+
*/
|
|
57
|
+
user: {
|
|
58
|
+
id: string;
|
|
59
|
+
role: Role;
|
|
60
|
+
/** Actual human initiator when the request is relayed for a team-shared
|
|
61
|
+
* agent (equals id when the owner sends it). Optional; informational. */
|
|
62
|
+
actor_id?: string;
|
|
63
|
+
};
|
|
64
|
+
/** DB alias. Must match a db_alias in databases.config.json. */
|
|
65
|
+
db_alias: string;
|
|
66
|
+
/** Epoch milliseconds. Sender's clock. Used for audit + ordering. */
|
|
67
|
+
ts: number;
|
|
68
|
+
/**
|
|
69
|
+
* Anti-replay nonce, unique per message within a data-channel session.
|
|
70
|
+
* Required on every inbound envelope (see InboundEnvelopeGuard). Optional on
|
|
71
|
+
* outbound envelopes, which the agent does not sign: it holds no key the relay
|
|
72
|
+
* could verify with.
|
|
73
|
+
*/
|
|
74
|
+
nonce?: string;
|
|
75
|
+
/**
|
|
76
|
+
* `HMAC-SHA256(session_mac_key, canonicalEnvelopeJson(envelope))` in lowercase
|
|
77
|
+
* hex, where the key is HKDF-derived from the data-channel token. The connector
|
|
78
|
+
* rejects any inbound envelope whose MAC is absent (when required) or does not
|
|
79
|
+
* verify. Absent on envelopes the agent emits.
|
|
80
|
+
*/
|
|
81
|
+
mac?: string;
|
|
82
|
+
/** Type-specific payload. See messages.ts. */
|
|
83
|
+
payload: T;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Deterministic JSON serialization: object keys sorted by UTF-16 code unit at
|
|
87
|
+
* every depth, `undefined` object members dropped, arrays preserved in order.
|
|
88
|
+
*
|
|
89
|
+
* `JSON.stringify` cannot be used directly because its key order is insertion
|
|
90
|
+
* order, which the relay and the agent need not agree on. Any value that cannot
|
|
91
|
+
* be represented unambiguously (functions, symbols, bigint, NaN, Infinity,
|
|
92
|
+
* cycles, non-plain objects) throws rather than being silently coerced.
|
|
93
|
+
*/
|
|
94
|
+
export declare function canonicalJson(value: unknown): string;
|
|
95
|
+
/**
|
|
96
|
+
* Canonical serialization of an envelope, i.e. the exact byte string the MAC is
|
|
97
|
+
* computed over. Covers every top-level field except `mac` itself, sorted
|
|
98
|
+
* deterministically at every depth.
|
|
99
|
+
*/
|
|
100
|
+
export declare function canonicalEnvelopeJson(msg: AgentMessage<unknown> | Record<string, unknown>): string;
|
|
101
|
+
/**
|
|
102
|
+
* Derive the per-session envelope MAC key from the data-channel token.
|
|
103
|
+
*
|
|
104
|
+
* The data-channel token is already a secret shared by exactly one relay
|
|
105
|
+
* session; HKDF turns it into a key whose only purpose is envelope
|
|
106
|
+
* authentication, bound to the agent id and browser session so a key cannot be
|
|
107
|
+
* reused across sessions even if a relay ever re-issued the same token.
|
|
108
|
+
*/
|
|
109
|
+
export declare function deriveSessionMacKey(opts: {
|
|
110
|
+
dataChannelToken: string;
|
|
111
|
+
agentId: string;
|
|
112
|
+
browserSessionId: string;
|
|
113
|
+
}): Buffer;
|
|
114
|
+
/** Lowercase hex HMAC-SHA256 of the canonical envelope. */
|
|
115
|
+
export declare function computeEnvelopeMac(macKey: Buffer, msg: AgentMessage<unknown> | Record<string, unknown>): string;
|
|
116
|
+
/**
|
|
117
|
+
* Return a copy of `msg` carrying its MAC. `nonce` is taken from the message
|
|
118
|
+
* when present; callers building a fresh outbound envelope should set one first
|
|
119
|
+
* (see `newEnvelopeNonce`).
|
|
120
|
+
*/
|
|
121
|
+
export declare function signEnvelope<T>(macKey: Buffer, msg: AgentMessage<T>): AgentMessage<T>;
|
|
122
|
+
/**
|
|
123
|
+
* Constant-time MAC check. Returns false for a missing, malformed, or
|
|
124
|
+
* non-matching MAC; never throws.
|
|
125
|
+
*/
|
|
126
|
+
export declare function verifyEnvelopeMac(macKey: Buffer, msg: AgentMessage<unknown> | Record<string, unknown>): boolean;
|
|
127
|
+
/** Fresh anti-replay nonce (base64url, 24 random bytes). */
|
|
128
|
+
export declare function newEnvelopeNonce(): string;
|
|
129
|
+
/** True when `nonce` is a syntactically valid envelope nonce. */
|
|
130
|
+
export declare function isValidEnvelopeNonce(nonce: unknown): nonce is string;
|
|
131
|
+
/**
|
|
132
|
+
* Highest role a relay may assert for a data-channel session when the operator
|
|
133
|
+
* has configured no ceiling.
|
|
134
|
+
*
|
|
135
|
+
* the key `security.max_negotiable_role` exists in machine config and
|
|
136
|
+
* this constant was the only place it could have been honoured, yet the default
|
|
137
|
+
* was `'admin'` — the maximum. That made the ceiling inert: a compromised relay
|
|
138
|
+
* could assert `admin` and nothing local could stop it. `'developer'` is the
|
|
139
|
+
* default instead, so a deployment that never thought about the key still gets a
|
|
140
|
+
* bound, and an install that genuinely needs `admin` must say so explicitly in
|
|
141
|
+
* machine config (which is logged loudly at startup, and reported by
|
|
142
|
+
* `sw-agent status`).
|
|
143
|
+
*
|
|
144
|
+
* `developer` rather than `data_reader`/`viewer` because `developer` is the
|
|
145
|
+
* least-privileged role that can actually do the product's work (run
|
|
146
|
+
* migrations); a stricter default would break every existing install outright
|
|
147
|
+
* rather than narrowing it.
|
|
148
|
+
*/
|
|
149
|
+
export declare const ENVELOPE_MAX_NEGOTIABLE_ROLE_DEFAULT: Role;
|
|
150
|
+
/**
|
|
151
|
+
* Helper: create a message with sensible defaults.
|
|
152
|
+
* Useful for tests and for agent's own message construction.
|
|
153
|
+
*/
|
|
154
|
+
export declare function createMessage<T>(type: MessageType, opts: {
|
|
155
|
+
id?: string;
|
|
156
|
+
project: string;
|
|
157
|
+
user: {
|
|
158
|
+
id: string;
|
|
159
|
+
role: Role;
|
|
160
|
+
};
|
|
161
|
+
db_alias: string;
|
|
162
|
+
payload: T;
|
|
163
|
+
nonce?: string;
|
|
164
|
+
}): AgentMessage<T>;
|
|
165
|
+
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../src/protocol/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjG,eAAO,MAAM,mBAAmB,GAAmB,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,KAAK,0DAA2D,CAAC;AAE9E,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1C,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,iJAYhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,WAAW,0IAQd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEpG;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,uFAU7B,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,sCAAsC;IACtC,CAAC,EAAE,eAAe,CAAC;IAEnB,0FAA0F;IAC1F,EAAE,EAAE,MAAM,CAAC;IAEX,8CAA8C;IAC9C,IAAI,EAAE,WAAW,CAAC;IAElB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,IAAI,CAAC;QACX;kFAC0E;QAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IAEjB,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,8CAA8C;IAC9C,OAAO,EAAE,CAAC,CAAC;CACZ;AAMD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAmDD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnD,MAAM,CAaR;AAMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,CAsBT;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnD,MAAM,CAQR;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAKrF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnD,OAAO,CAkBT;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAOpE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oCAAoC,EAAE,IAAkB,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,YAAY,CAAC,CAAC,CAAC,CAejB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ErrorPayload } from './messages';
|
|
2
|
+
export type ErrorCode = 'invalid_message' | 'unknown_message_type' | 'payload_invalid' | 'protocol_version_mismatch' | 'auth_failed' | 'token_expired' | 'permission_denied' | 'multiple_statements' | 'unparseable_statement' | 'parser_unavailable' | 'role_insufficient' | 'role_above_ceiling' | 'db_alias_project_mismatch' | 'database_scope_not_configured' | 'plan_scope_mismatch' | 'duplicate_request_id' | 'approval_timeout' | 'approval_denied' | 'MANUAL_APPROVAL_TIMEOUT' | 'MANUAL_APPROVAL_REJECTED' | 'db_unavailable' | 'db_auth_failed' | 'db_not_found' | 'db_pool_exhausted' | 'db_ssl_error' | 'migration_in_progress' | 'migration_plan_not_registered' | 'migration_statement_failed' | 'migration_rolled_back' | 'migration_partial' | 'query_timeout' | 'query_cancelled' | 'query_too_large' | 'stream_too_large' | 'STREAM_ROW_LIMIT' | 'CELL_SIZE_LIMIT' | 'cancel_failed' | 'cancel_target_not_found' | 'cancel_not_permitted' | 'concurrent_request_rejected' | 'orphaned_request' | 'channel_closed' | 'rate_limited' | 'config_invalid' | 'config_not_found' | 'env_var_missing' | 'execution_failed' | 'internal_error' | 'not_implemented';
|
|
3
|
+
export interface ErrorMetadata {
|
|
4
|
+
code: ErrorCode;
|
|
5
|
+
/** Default human-readable message. May be overridden at throw site. */
|
|
6
|
+
default_message: string;
|
|
7
|
+
/** Whether browser should tear down the connection. */
|
|
8
|
+
fatal: boolean;
|
|
9
|
+
/** Whether browser may auto-retry the request. */
|
|
10
|
+
retryable: boolean;
|
|
11
|
+
/** Suggested recovery action shown in browser UI. */
|
|
12
|
+
recovery_hint: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const ERROR_CATALOG: Record<ErrorCode, ErrorMetadata>;
|
|
15
|
+
export declare function getErrorMetadata(code: ErrorCode): ErrorMetadata;
|
|
16
|
+
export declare function isFatalError(code: ErrorCode): boolean;
|
|
17
|
+
export declare function isRetryableError(code: ErrorCode): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Construct an ErrorPayload for a given code.
|
|
20
|
+
* Optional overrides for message and request_id.
|
|
21
|
+
*
|
|
22
|
+
* `overrides.message` is caller-supplied and reaches the browser verbatim, so it
|
|
23
|
+
* must be either an agent-authored string or the output of a sanitiser
|
|
24
|
+
* (`src/audit/sanitize.ts`). Never pass a raw driver or parser message:
|
|
25
|
+
* PostgreSQL `DETAIL` lines carry row data and node-postgres embeds the
|
|
26
|
+
* connection topology. `pg_error` is limited to the two allow-listed fields the
|
|
27
|
+
* protocol defines.
|
|
28
|
+
*/
|
|
29
|
+
export declare function makeError(code: ErrorCode, request_id: string, overrides?: {
|
|
30
|
+
message?: string;
|
|
31
|
+
pg_error?: ErrorPayload['pg_error'];
|
|
32
|
+
}): ErrorPayload;
|
|
33
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/protocol/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,SAAS,GAEjB,iBAAiB,GACjB,sBAAsB,GACtB,iBAAiB,GACjB,2BAA2B,GAG3B,aAAa,GACb,eAAe,GACf,mBAAmB,GACnB,qBAAqB,GACrB,uBAAuB,GACvB,oBAAoB,GACpB,mBAAmB,GAGnB,oBAAoB,GAGpB,2BAA2B,GAG3B,+BAA+B,GAG/B,qBAAqB,GAGrB,sBAAsB,GACtB,kBAAkB,GAClB,iBAAiB,GACjB,yBAAyB,GACzB,0BAA0B,GAG1B,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,mBAAmB,GACnB,cAAc,GAGd,uBAAuB,GACvB,+BAA+B,GAC/B,4BAA4B,GAC5B,uBAAuB,GACvB,mBAAmB,GAGnB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GAGjB,eAAe,GACf,yBAAyB,GAGzB,sBAAsB,GAGtB,6BAA6B,GAG7B,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,GAGd,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GAGjB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAyW1D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAE/D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAErD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE;IACV,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;CACrC,GACA,YAAY,CAUd"}
|