@schema-weaver/pg-connector 0.0.0-stage → 2.0.1
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,802 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.LocalRowCapError = exports.LocalAuditUnavailableError = exports.LocalPermissionDeniedError = exports.LOCAL_MAX_ROWS = exports.LOCAL_STATEMENT_TIMEOUT_MS = exports.LOCAL_OPERATOR_ROLE = exports.LOCAL_OPERATOR_ID = void 0;
|
|
37
|
+
exports.executeLocalSql = executeLocalSql;
|
|
38
|
+
exports.createLocalAuditRecorder = createLocalAuditRecorder;
|
|
39
|
+
exports.createLocalPermissionChecker = createLocalPermissionChecker;
|
|
40
|
+
exports.resolveLocalPermissionLevel = resolveLocalPermissionLevel;
|
|
41
|
+
exports.createLocalSqlDeps = createLocalSqlDeps;
|
|
42
|
+
exports.localPermissionLevelFor = localPermissionLevelFor;
|
|
43
|
+
exports.createDbPool = createDbPool;
|
|
44
|
+
exports.runDbQuery = runDbQuery;
|
|
45
|
+
exports.runDbConnect = runDbConnect;
|
|
46
|
+
const readline = __importStar(require("readline"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const pg_1 = require("pg");
|
|
49
|
+
const db_config_1 = require("../../config/db-config");
|
|
50
|
+
const pool_1 = require("../../execution/pool");
|
|
51
|
+
const constants_1 = require("../../protocol/constants");
|
|
52
|
+
const statement_classifier_1 = require("../../execution/statement-classifier");
|
|
53
|
+
const sql_parser_1 = require("../../execution/sql-parser");
|
|
54
|
+
const function_effects_1 = require("../../execution/function-effects");
|
|
55
|
+
const checker_1 = require("../../permissions/checker");
|
|
56
|
+
const plan_registry_1 = require("../../permissions/plan-registry");
|
|
57
|
+
const auto_upgrade_1 = require("../../permissions/auto-upgrade");
|
|
58
|
+
const manual_approval_1 = require("../../permissions/manual-approval");
|
|
59
|
+
const redact_1 = require("../../audit/redact");
|
|
60
|
+
const sink_1 = require("../../audit/sink");
|
|
61
|
+
const local_writer_1 = require("../../audit/local-writer");
|
|
62
|
+
const cloud_writer_1 = require("../../audit/cloud-writer");
|
|
63
|
+
const machine_config_1 = require("../../config/machine-config");
|
|
64
|
+
const paths_1 = require("../../config/paths");
|
|
65
|
+
const prompt_1 = require("../prompt");
|
|
66
|
+
const ui_1 = require("../ui");
|
|
67
|
+
/* ------------------------------------------------------------------ */
|
|
68
|
+
/* Local SQL policy */
|
|
69
|
+
/* ------------------------------------------------------------------ */
|
|
70
|
+
/**
|
|
71
|
+
* Identity recorded for SQL submitted from the local CLI or the `db connect`
|
|
72
|
+
* REPL. There is no cloud user in this path: the request comes from a process
|
|
73
|
+
* that already holds the database credentials, so it is recorded under a
|
|
74
|
+
* distinct actor id rather than being folded into a browser role.
|
|
75
|
+
*/
|
|
76
|
+
exports.LOCAL_OPERATOR_ID = 'local-operator';
|
|
77
|
+
/**
|
|
78
|
+
* Role the local operator is recorded as.
|
|
79
|
+
*
|
|
80
|
+
* The capability matrix is not the control here — the entry's effective
|
|
81
|
+
* permission level is. A local operator holds the credentials and can always
|
|
82
|
+
* use `psql` instead; pretending a shell is a lesser role would be theatre. The
|
|
83
|
+
* audit record keeps the level (`permission_level`) and the actor
|
|
84
|
+
* (`user_id: 'local-operator'`) so the distinction stays visible.
|
|
85
|
+
*/
|
|
86
|
+
exports.LOCAL_OPERATOR_ROLE = 'admin';
|
|
87
|
+
/** Statement timeout applied to every local query. Bounded, never caller-settable. */
|
|
88
|
+
exports.LOCAL_STATEMENT_TIMEOUT_MS = constants_1.DEFAULTS.QUERY_TIMEOUT_MS;
|
|
89
|
+
/** Hard cap on rows returned to the terminal, enforced while rows are fetched. */
|
|
90
|
+
exports.LOCAL_MAX_ROWS = constants_1.DEFAULTS.MAX_QUERY_ROWS;
|
|
91
|
+
/** Rows fetched per FETCH round trip on the cursor path. */
|
|
92
|
+
const FETCH_BATCH = 500;
|
|
93
|
+
/** `lock_timeout` for local statements, so a blocked write fails fast. */
|
|
94
|
+
const LOCAL_LOCK_TIMEOUT_MS = 10_000;
|
|
95
|
+
class LocalPermissionDeniedError extends Error {
|
|
96
|
+
code;
|
|
97
|
+
constructor(message, code) {
|
|
98
|
+
super(message);
|
|
99
|
+
this.code = code;
|
|
100
|
+
this.name = 'LocalPermissionDeniedError';
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.LocalPermissionDeniedError = LocalPermissionDeniedError;
|
|
104
|
+
class LocalAuditUnavailableError extends Error {
|
|
105
|
+
constructor(message) {
|
|
106
|
+
super(message);
|
|
107
|
+
this.name = 'LocalAuditUnavailableError';
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.LocalAuditUnavailableError = LocalAuditUnavailableError;
|
|
111
|
+
class LocalRowCapError extends Error {
|
|
112
|
+
constructor(message) {
|
|
113
|
+
super(message);
|
|
114
|
+
this.name = 'LocalRowCapError';
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.LocalRowCapError = LocalRowCapError;
|
|
118
|
+
/* ------------------------------------------------------------------ */
|
|
119
|
+
/* Permission + audit */
|
|
120
|
+
/* ------------------------------------------------------------------ */
|
|
121
|
+
const INTENT_BY_CLASSIFICATION = {
|
|
122
|
+
read: 'read',
|
|
123
|
+
write: 'write',
|
|
124
|
+
ddl: 'ddl',
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Classify a statement and map it onto a permission-checker `intent`.
|
|
128
|
+
*
|
|
129
|
+
* `PermissionChecker` compares the claimed intent against the classification it
|
|
130
|
+
* derives itself, and only `read | write | ddl` are expressible. A statement
|
|
131
|
+
* the classifier reports as `utility` or `unknown` therefore cannot be
|
|
132
|
+
* authorised through this pipeline at all, and is refused rather than being
|
|
133
|
+
* relabelled as something weaker.
|
|
134
|
+
*/
|
|
135
|
+
async function authoriseLocalSql(deps, req, resolveFunctionEffects) {
|
|
136
|
+
// Idempotent. Without it the CLI would refuse every statement, because the
|
|
137
|
+
// parser is fail-closed when it has not been loaded.
|
|
138
|
+
await (0, sql_parser_1.initSqlParser)();
|
|
139
|
+
const classification = await (0, statement_classifier_1.classifyStatement)(req.sql, { resolveFunctionEffects });
|
|
140
|
+
const intent = INTENT_BY_CLASSIFICATION[classification.type];
|
|
141
|
+
if (!intent) {
|
|
142
|
+
return {
|
|
143
|
+
classification,
|
|
144
|
+
allowed: false,
|
|
145
|
+
reason: `Statement class '${classification.type}' (${classification.kind}) cannot be authorised on the ` +
|
|
146
|
+
'local SQL path. Only read, write and DDL statements are classified into an ' +
|
|
147
|
+
'authorisable intent; session/transaction utilities and unrecognised ' +
|
|
148
|
+
'statements must not be relabelled. Use a direct PostgreSQL client if you ' +
|
|
149
|
+
'need them.',
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
const decision = await deps.checker.check({
|
|
153
|
+
role: exports.LOCAL_OPERATOR_ROLE,
|
|
154
|
+
permission_level: deps.permissionLevel,
|
|
155
|
+
sql: req.sql,
|
|
156
|
+
intent,
|
|
157
|
+
message_type: req.action,
|
|
158
|
+
request_id: `local-${Date.now().toString(36)}`,
|
|
159
|
+
db_alias: req.entry.db_alias,
|
|
160
|
+
project: req.entry.project_name,
|
|
161
|
+
user: { id: exports.LOCAL_OPERATOR_ID, role: exports.LOCAL_OPERATOR_ROLE },
|
|
162
|
+
}, undefined, resolveFunctionEffects);
|
|
163
|
+
return { classification, allowed: decision.allowed, reason: decision.reason };
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* A function-effect resolver over the caller's pool, or `undefined`.
|
|
167
|
+
*
|
|
168
|
+
* WHY THIS IS HERE. `PermissionChecker.check` re-classifies the statement
|
|
169
|
+
* itself, so a resolver has to reach it as an argument — the daemon passes one
|
|
170
|
+
* from `dispatcher.ts`. This path passed none, which meant every function
|
|
171
|
+
* reference came back `unknown_effect` and was escalated to `ddl`: at
|
|
172
|
+
* `read_only`, `SELECT count(*) FROM x` was refused even though `count` is
|
|
173
|
+
* `IMMUTABLE` in `pg_proc`. Without a database to ask, that refusal is the
|
|
174
|
+
* correct fail-closed answer, so a failure to open one falls back to no
|
|
175
|
+
* resolver at all rather than to a permissive verdict.
|
|
176
|
+
*
|
|
177
|
+
* LAZY. `acquire()` runs only when `analyseFunctionEffects` has a cache miss,
|
|
178
|
+
* so `SELECT 1` and already-seen function names never open a connection. The
|
|
179
|
+
* connection is held until {@link dispose} — which the caller must run once the
|
|
180
|
+
* decision is made — so one client serves both the classifier's own analysis
|
|
181
|
+
* and the checker's re-classification.
|
|
182
|
+
*/
|
|
183
|
+
async function localFunctionEffectResolver(deps, entry) {
|
|
184
|
+
let pool;
|
|
185
|
+
let client;
|
|
186
|
+
const acquire = async () => {
|
|
187
|
+
if (!client) {
|
|
188
|
+
pool = await deps.poolFactory(entry);
|
|
189
|
+
client = await pool.connect();
|
|
190
|
+
}
|
|
191
|
+
return { client: client, release: () => undefined };
|
|
192
|
+
};
|
|
193
|
+
return {
|
|
194
|
+
resolver: (0, function_effects_1.createFunctionEffectResolver)({ acquire }, { dbKey: entry.db_alias ?? '' }),
|
|
195
|
+
dispose: async () => {
|
|
196
|
+
client?.release();
|
|
197
|
+
client = undefined;
|
|
198
|
+
const closing = pool;
|
|
199
|
+
pool = undefined;
|
|
200
|
+
if (closing)
|
|
201
|
+
await closing.end();
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
async function appendLocalAudit(deps, req, fields) {
|
|
206
|
+
const event = {
|
|
207
|
+
project: req.entry.project_name,
|
|
208
|
+
user_id: exports.LOCAL_OPERATOR_ID,
|
|
209
|
+
// No cloud asserted this request: recording it as `user` would write the
|
|
210
|
+
// local shell into the audit trail as a cloud principal holding `admin`.
|
|
211
|
+
actor: 'local',
|
|
212
|
+
role: exports.LOCAL_OPERATOR_ROLE,
|
|
213
|
+
action: req.action,
|
|
214
|
+
decision: fields.decision,
|
|
215
|
+
outcome: fields.outcome,
|
|
216
|
+
permission_level: deps.permissionLevel,
|
|
217
|
+
statement_preview: (0, redact_1.previewStatement)(req.sql),
|
|
218
|
+
statement_fingerprint: (0, redact_1.fingerprintStatement)(req.sql),
|
|
219
|
+
denial_reason: fields.reason,
|
|
220
|
+
error_code: fields.errorCode,
|
|
221
|
+
duration_ms: fields.durationMs,
|
|
222
|
+
rows_returned: fields.rowsReturned,
|
|
223
|
+
};
|
|
224
|
+
// MANDATORY. If the audit append does not complete, the statement does not run.
|
|
225
|
+
// An unlogged local write is indistinguishable from no control at all.
|
|
226
|
+
try {
|
|
227
|
+
await deps.audit.logSync(event);
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
throw new LocalAuditUnavailableError('Refusing to execute: the audit record could not be written to ' +
|
|
231
|
+
`${path.join((0, paths_1.getSwAgentDir)(), 'audit', 'audit.jsonl')}. ` +
|
|
232
|
+
`Refusing to run unlogged SQL. (${err instanceof Error ? err.message : String(err)})`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/* ------------------------------------------------------------------ */
|
|
236
|
+
/* Execution */
|
|
237
|
+
/* ------------------------------------------------------------------ */
|
|
238
|
+
function asQueryResult(res) {
|
|
239
|
+
return {
|
|
240
|
+
rows: res?.rows ?? [],
|
|
241
|
+
fields: res?.fields ?? [],
|
|
242
|
+
rowCount: res?.rowCount ?? null,
|
|
243
|
+
command: res?.command ?? '',
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function cursorNameFor(requestId) {
|
|
247
|
+
return `sw_local_${requestId.replace(/[^a-zA-Z0-9]/g, '_').slice(0, 32)}`;
|
|
248
|
+
}
|
|
249
|
+
async function hardenLocalSession(client, deps) {
|
|
250
|
+
// RESET ALL clears every session GUC a previous pooled connection may have
|
|
251
|
+
// left behind, so the posture below is the only thing in effect.
|
|
252
|
+
await client.query('RESET ALL');
|
|
253
|
+
// PostgreSQL itself enforces read_only; the classifier is not the boundary.
|
|
254
|
+
await client.query(deps.readOnlySession
|
|
255
|
+
? 'SET default_transaction_read_only = on'
|
|
256
|
+
: 'SET default_transaction_read_only = off');
|
|
257
|
+
// Session-level, not SET LOCAL: outside a transaction block SET LOCAL is a
|
|
258
|
+
// silent no-op, which is how local queries used to run with no timeout at all.
|
|
259
|
+
const timeoutMs = Math.max(1, Math.floor(deps.timeoutMs ?? exports.LOCAL_STATEMENT_TIMEOUT_MS));
|
|
260
|
+
await client.query(`SET statement_timeout = ${timeoutMs}`);
|
|
261
|
+
await client.query(`SET lock_timeout = ${LOCAL_LOCK_TIMEOUT_MS}`);
|
|
262
|
+
await client.query(`SET idle_in_transaction_session_timeout = ${timeoutMs}`);
|
|
263
|
+
}
|
|
264
|
+
async function executeOnClient(client, sql, classification, maxRows, requestId) {
|
|
265
|
+
if (classification.type !== 'read') {
|
|
266
|
+
const out = asQueryResult(await client.query({ text: sql }));
|
|
267
|
+
if (out.rows.length > maxRows) {
|
|
268
|
+
throw new LocalRowCapError(`Statement returned ${out.rows.length} rows, above the local ceiling of ${maxRows}. ` +
|
|
269
|
+
'Narrow the result set or aggregate server-side.');
|
|
270
|
+
}
|
|
271
|
+
return out;
|
|
272
|
+
}
|
|
273
|
+
// Read path: a cursor, so the ceiling binds WHILE rows are produced instead of
|
|
274
|
+
// after the whole result has been buffered.
|
|
275
|
+
const cursor = cursorNameFor(requestId);
|
|
276
|
+
const rows = [];
|
|
277
|
+
let fields = [];
|
|
278
|
+
let command = '';
|
|
279
|
+
let truncated = false;
|
|
280
|
+
await client.query('BEGIN');
|
|
281
|
+
try {
|
|
282
|
+
const declared = asQueryResult(await client.query({ text: `DECLARE ${cursor} CURSOR FOR ${sql}` }));
|
|
283
|
+
command = declared.command;
|
|
284
|
+
for (;;) {
|
|
285
|
+
const batch = asQueryResult(await client.query({ text: `FETCH ${FETCH_BATCH} FROM ${cursor}` }));
|
|
286
|
+
if (fields.length === 0 && batch.fields.length > 0) {
|
|
287
|
+
fields = batch.fields;
|
|
288
|
+
}
|
|
289
|
+
if (batch.rows.length === 0)
|
|
290
|
+
break;
|
|
291
|
+
for (const row of batch.rows) {
|
|
292
|
+
if (rows.length >= maxRows) {
|
|
293
|
+
truncated = true;
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
rows.push(row);
|
|
297
|
+
}
|
|
298
|
+
if (truncated)
|
|
299
|
+
break;
|
|
300
|
+
}
|
|
301
|
+
await client.query(`CLOSE ${cursor}`);
|
|
302
|
+
if (truncated) {
|
|
303
|
+
// Rolled back rather than committed: the ceiling aborted the read, so the
|
|
304
|
+
// transaction has no completion to record.
|
|
305
|
+
throw new LocalRowCapError(`Result exceeds the local ceiling of ${maxRows} rows. ` +
|
|
306
|
+
'Narrow the result set or aggregate server-side.');
|
|
307
|
+
}
|
|
308
|
+
await client.query('COMMIT');
|
|
309
|
+
}
|
|
310
|
+
catch (err) {
|
|
311
|
+
try {
|
|
312
|
+
await client.query('ROLLBACK');
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
// connection is being returned
|
|
316
|
+
}
|
|
317
|
+
throw err;
|
|
318
|
+
}
|
|
319
|
+
return { rows, fields, rowCount: rows.length, command: command || 'SELECT' };
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Classify, authorise, audit, and run a single local statement.
|
|
323
|
+
*
|
|
324
|
+
* Order is deliberate and fail-closed:
|
|
325
|
+
* 1. classify with the PostgreSQL parser
|
|
326
|
+
* 2. authorise through `PermissionChecker` at the entry's resolved level
|
|
327
|
+
* 3. append the audit record — mandatory; a failed append refuses execution
|
|
328
|
+
* 4. apply `statement_timeout`, `lock_timeout` and the read_only posture
|
|
329
|
+
* 5. execute with a row ceiling that binds during fetch
|
|
330
|
+
* 6. append the outcome record
|
|
331
|
+
*/
|
|
332
|
+
async function executeLocalSql(req, deps) {
|
|
333
|
+
const maxRows = deps.maxRows ?? exports.LOCAL_MAX_ROWS;
|
|
334
|
+
const requestId = `local-${Date.now().toString(36)}`;
|
|
335
|
+
let authorisation;
|
|
336
|
+
const effects = await localFunctionEffectResolver(deps, req.entry);
|
|
337
|
+
try {
|
|
338
|
+
authorisation = await authoriseLocalSql(deps, req, effects.resolver);
|
|
339
|
+
}
|
|
340
|
+
catch (err) {
|
|
341
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
342
|
+
const denied = {
|
|
343
|
+
type: 'unknown',
|
|
344
|
+
kind: 'UNCLASSIFIED',
|
|
345
|
+
transactional: true,
|
|
346
|
+
verb: '',
|
|
347
|
+
statement_count: 0,
|
|
348
|
+
parse_ok: false,
|
|
349
|
+
read_violations: ['parse_error'],
|
|
350
|
+
};
|
|
351
|
+
await appendLocalAudit(deps, req, {
|
|
352
|
+
decision: 'deny',
|
|
353
|
+
outcome: 'n/a',
|
|
354
|
+
classification: denied,
|
|
355
|
+
reason: 'classification_failed',
|
|
356
|
+
}).catch(() => undefined);
|
|
357
|
+
throw new LocalPermissionDeniedError(`Statement could not be verified and was refused: ${message}`, 'classification_failed');
|
|
358
|
+
}
|
|
359
|
+
finally {
|
|
360
|
+
await effects.dispose().catch(() => undefined);
|
|
361
|
+
}
|
|
362
|
+
if (!authorisation.allowed) {
|
|
363
|
+
await appendLocalAudit(deps, req, {
|
|
364
|
+
decision: 'deny',
|
|
365
|
+
outcome: 'n/a',
|
|
366
|
+
classification: authorisation.classification,
|
|
367
|
+
reason: authorisation.reason,
|
|
368
|
+
});
|
|
369
|
+
throw new LocalPermissionDeniedError(authorisation.reason, 'permission_denied');
|
|
370
|
+
}
|
|
371
|
+
// Mandatory audit of the attempt, before anything touches the database.
|
|
372
|
+
await appendLocalAudit(deps, req, {
|
|
373
|
+
decision: 'allow',
|
|
374
|
+
outcome: 'n/a',
|
|
375
|
+
classification: authorisation.classification,
|
|
376
|
+
});
|
|
377
|
+
const startedAt = Date.now();
|
|
378
|
+
const pool = await deps.poolFactory(req.entry);
|
|
379
|
+
let client;
|
|
380
|
+
try {
|
|
381
|
+
client = await pool.connect();
|
|
382
|
+
await hardenLocalSession(client, deps);
|
|
383
|
+
const result = await executeOnClient(client, req.sql, authorisation.classification, maxRows, requestId);
|
|
384
|
+
await deps.audit.logSync({
|
|
385
|
+
project: req.entry.project_name,
|
|
386
|
+
user_id: exports.LOCAL_OPERATOR_ID,
|
|
387
|
+
actor: 'local',
|
|
388
|
+
role: exports.LOCAL_OPERATOR_ROLE,
|
|
389
|
+
action: req.action,
|
|
390
|
+
decision: 'allow',
|
|
391
|
+
outcome: 'success',
|
|
392
|
+
permission_level: deps.permissionLevel,
|
|
393
|
+
statement_preview: (0, redact_1.previewStatement)(req.sql),
|
|
394
|
+
statement_fingerprint: (0, redact_1.fingerprintStatement)(req.sql),
|
|
395
|
+
duration_ms: Date.now() - startedAt,
|
|
396
|
+
rows_returned: result.rows.length,
|
|
397
|
+
});
|
|
398
|
+
return result;
|
|
399
|
+
}
|
|
400
|
+
catch (err) {
|
|
401
|
+
await deps.audit.logSync({
|
|
402
|
+
project: req.entry.project_name,
|
|
403
|
+
user_id: exports.LOCAL_OPERATOR_ID,
|
|
404
|
+
actor: 'local',
|
|
405
|
+
role: exports.LOCAL_OPERATOR_ROLE,
|
|
406
|
+
action: req.action,
|
|
407
|
+
decision: 'allow',
|
|
408
|
+
outcome: 'error',
|
|
409
|
+
permission_level: deps.permissionLevel,
|
|
410
|
+
statement_preview: (0, redact_1.previewStatement)(req.sql),
|
|
411
|
+
statement_fingerprint: (0, redact_1.fingerprintStatement)(req.sql),
|
|
412
|
+
duration_ms: Date.now() - startedAt,
|
|
413
|
+
error_code: err?.code,
|
|
414
|
+
});
|
|
415
|
+
throw err;
|
|
416
|
+
}
|
|
417
|
+
finally {
|
|
418
|
+
client?.release();
|
|
419
|
+
await pool.end();
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
/* ------------------------------------------------------------------ */
|
|
423
|
+
/* Default wiring */
|
|
424
|
+
/* ------------------------------------------------------------------ */
|
|
425
|
+
function defaultPoolFactory(entry) {
|
|
426
|
+
return createDbPool(entry);
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Audit sink for local CLI activity.
|
|
430
|
+
*
|
|
431
|
+
* Writes to the same `~/.sw-agent/audit/` chain the daemon uses, so a local
|
|
432
|
+
* statement and a cloud statement land in one ordered log. The cloud writer is
|
|
433
|
+
* disabled: nothing in this path transmits anything.
|
|
434
|
+
*/
|
|
435
|
+
function createLocalAuditRecorder() {
|
|
436
|
+
let agentId = 'local';
|
|
437
|
+
try {
|
|
438
|
+
if ((0, machine_config_1.machineConfigExists)()) {
|
|
439
|
+
agentId = (0, machine_config_1.loadMachineConfig)().agent_id;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
catch {
|
|
443
|
+
agentId = 'local';
|
|
444
|
+
}
|
|
445
|
+
const sink = new sink_1.AuditSink({
|
|
446
|
+
agentId,
|
|
447
|
+
localWriter: new local_writer_1.LocalAuditWriter({
|
|
448
|
+
dir: path.join((0, paths_1.getSwAgentDir)(), 'audit'),
|
|
449
|
+
}),
|
|
450
|
+
cloudWriter: new cloud_writer_1.CloudAuditWriter({ enabled: false, agent_token: '' }),
|
|
451
|
+
});
|
|
452
|
+
return sink;
|
|
453
|
+
}
|
|
454
|
+
function createLocalPermissionChecker(audit) {
|
|
455
|
+
const planRegistry = new plan_registry_1.PlanRegistry();
|
|
456
|
+
return new checker_1.PermissionChecker({
|
|
457
|
+
autoUpgradeChecker: new auto_upgrade_1.AutoUpgradeChecker({ planRegistry }),
|
|
458
|
+
manualApprovalHandler: new manual_approval_1.ManualApprovalHandler({
|
|
459
|
+
// There is no relay session in the local path, so an approval can never
|
|
460
|
+
// arrive. The handler is unreachable: `manual` is resolved away before
|
|
461
|
+
// the checker is called.
|
|
462
|
+
send: async () => {
|
|
463
|
+
throw new Error('No approval channel is available for local SQL.');
|
|
464
|
+
},
|
|
465
|
+
timeoutMs: constants_1.DEFAULTS.APPROVAL_TIMEOUT_MS,
|
|
466
|
+
auditSink: audit,
|
|
467
|
+
}),
|
|
468
|
+
planRegistry,
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Effective permission level for a database entry: the entry's override if it
|
|
473
|
+
* has one, otherwise the machine default, otherwise `read_only`.
|
|
474
|
+
*/
|
|
475
|
+
function resolveLocalPermissionLevel(entry) {
|
|
476
|
+
if (entry.permission_override)
|
|
477
|
+
return entry.permission_override;
|
|
478
|
+
try {
|
|
479
|
+
if ((0, machine_config_1.machineConfigExists)()) {
|
|
480
|
+
return (0, machine_config_1.loadMachineConfig)().default_permission;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
catch {
|
|
484
|
+
// fall through to the fail-closed default
|
|
485
|
+
}
|
|
486
|
+
return 'read_only';
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Build the default dependency set for a database entry.
|
|
490
|
+
*
|
|
491
|
+
* `manual` is resolved to `read_only` before the checker runs: the approval flow
|
|
492
|
+
* requires the browser relay, and a local shell has no way to answer it.
|
|
493
|
+
*/
|
|
494
|
+
function createLocalSqlDeps(entry) {
|
|
495
|
+
const audit = createLocalAuditRecorder();
|
|
496
|
+
const resolved = resolveLocalPermissionLevel(entry);
|
|
497
|
+
const permissionLevel = resolved === 'manual' ? 'read_only' : resolved;
|
|
498
|
+
return {
|
|
499
|
+
poolFactory: defaultPoolFactory,
|
|
500
|
+
audit,
|
|
501
|
+
checker: createLocalPermissionChecker(audit),
|
|
502
|
+
permissionLevel,
|
|
503
|
+
maxRows: exports.LOCAL_MAX_ROWS,
|
|
504
|
+
timeoutMs: exports.LOCAL_STATEMENT_TIMEOUT_MS,
|
|
505
|
+
readOnlySession: permissionLevel === 'read_only',
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
/** Narrow a resolved level to what the local path can actually enforce. */
|
|
509
|
+
function localPermissionLevelFor(entry) {
|
|
510
|
+
const resolved = resolveLocalPermissionLevel(entry);
|
|
511
|
+
return resolved === 'manual' ? 'read_only' : resolved;
|
|
512
|
+
}
|
|
513
|
+
function createDbPool(entry) {
|
|
514
|
+
const password = entry.password_stored || (entry.password_env ? process.env[entry.password_env] : undefined);
|
|
515
|
+
if (!password) {
|
|
516
|
+
throw new Error(`Password not available for "${entry.db_alias}". ` +
|
|
517
|
+
(entry.password_env
|
|
518
|
+
? `Env var "${entry.password_env}" is not set.`
|
|
519
|
+
: 'No stored password.'));
|
|
520
|
+
}
|
|
521
|
+
const poolConfig = {
|
|
522
|
+
host: entry.host,
|
|
523
|
+
port: entry.port,
|
|
524
|
+
database: entry.database,
|
|
525
|
+
user: entry.user,
|
|
526
|
+
password,
|
|
527
|
+
// One session per local command: the posture applied below is per-session
|
|
528
|
+
// and must not leak between statements.
|
|
529
|
+
max: 1,
|
|
530
|
+
connectionTimeoutMillis: 5000,
|
|
531
|
+
};
|
|
532
|
+
const ssl = (0, pool_1.buildSslConfig)(entry.ssl_mode, entry.ssl_root_cert);
|
|
533
|
+
if (ssl) {
|
|
534
|
+
poolConfig.ssl = ssl;
|
|
535
|
+
}
|
|
536
|
+
return new pg_1.Pool(poolConfig);
|
|
537
|
+
}
|
|
538
|
+
/* ------------------------------------------------------------------ */
|
|
539
|
+
/* Commands */
|
|
540
|
+
/* ------------------------------------------------------------------ */
|
|
541
|
+
async function runDbQuery(args) {
|
|
542
|
+
const isJson = args.includes('--json') || args.includes('-j');
|
|
543
|
+
const cleanArgs = args.filter((a) => a !== '--json' && a !== '-j');
|
|
544
|
+
const alias = cleanArgs[0];
|
|
545
|
+
const sql = cleanArgs.slice(1).join(' ').trim();
|
|
546
|
+
if (!alias) {
|
|
547
|
+
console.log(` ${ui_1.C.yellow('Usage:')} ${ui_1.C.white('db query <alias> "<SQL>"\n')}`);
|
|
548
|
+
exit_(1);
|
|
549
|
+
}
|
|
550
|
+
if (!sql) {
|
|
551
|
+
// If no query provided, redirect to db connect interactive mode
|
|
552
|
+
return runDbConnect([alias]);
|
|
553
|
+
}
|
|
554
|
+
const entry = (0, db_config_1.findDbEntry)(alias);
|
|
555
|
+
if (!entry) {
|
|
556
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} Database alias "${ui_1.C.white(alias)}" not found.`);
|
|
557
|
+
console.log(` ${ui_1.C.dim('Run')} ${ui_1.C.cyan('db list')} ${ui_1.C.dim('to see available databases.')}\n`);
|
|
558
|
+
exit_(1);
|
|
559
|
+
}
|
|
560
|
+
const deps = createLocalSqlDeps(entry);
|
|
561
|
+
const preview = (0, redact_1.previewStatement)(sql);
|
|
562
|
+
if (!isJson) {
|
|
563
|
+
console.log();
|
|
564
|
+
console.log(` ${ui_1.C.dim('Permission:')} ${ui_1.C.white(deps.permissionLevel)} ${ui_1.C.dim(`(actor ${exports.LOCAL_OPERATOR_ID})`)}`);
|
|
565
|
+
console.log(` ${ui_1.C.dim('Preview:')} ${ui_1.C.white((0, ui_1.truncateAnsi)(preview, Math.max(40, (0, ui_1.terminalWidth)() - 16)))}`);
|
|
566
|
+
console.log();
|
|
567
|
+
}
|
|
568
|
+
const spinner = (0, ui_1.createSpinner)();
|
|
569
|
+
if (!isJson) {
|
|
570
|
+
spinner.start(`Executing query on ${ui_1.C.cyan(alias)}…`);
|
|
571
|
+
}
|
|
572
|
+
const startedAt = Date.now();
|
|
573
|
+
let result;
|
|
574
|
+
try {
|
|
575
|
+
result = await executeLocalSql({ entry, sql, action: 'query' }, deps);
|
|
576
|
+
}
|
|
577
|
+
catch (err) {
|
|
578
|
+
if (!isJson)
|
|
579
|
+
spinner.stop();
|
|
580
|
+
console.log();
|
|
581
|
+
if (err instanceof LocalPermissionDeniedError) {
|
|
582
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} ${ui_1.C.red('Refused:')} ${err.message}`);
|
|
583
|
+
console.log(` ${ui_1.C.dim('This statement is not permitted for a local operator at the resolved permission level.')}`);
|
|
584
|
+
}
|
|
585
|
+
else if (err instanceof LocalAuditUnavailableError) {
|
|
586
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} ${ui_1.C.red(err.message)}`);
|
|
587
|
+
}
|
|
588
|
+
else if (err instanceof LocalRowCapError) {
|
|
589
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} ${ui_1.C.red(err.message)}`);
|
|
590
|
+
}
|
|
591
|
+
else if (/statement timeout|canceling statement due to statement timeout/i.test(errMessage(err))) {
|
|
592
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} Query exceeded the ${exports.LOCAL_STATEMENT_TIMEOUT_MS}ms local statement timeout and was cancelled by PostgreSQL.`);
|
|
593
|
+
}
|
|
594
|
+
else {
|
|
595
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} Query error: ${ui_1.C.red(errMessage(err))}`);
|
|
596
|
+
const position = err?.position;
|
|
597
|
+
if (position !== undefined) {
|
|
598
|
+
console.log(` ${ui_1.C.dim('Position:')} ${String(position)}`);
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
console.log();
|
|
602
|
+
exit_(1);
|
|
603
|
+
}
|
|
604
|
+
const duration = Date.now() - startedAt;
|
|
605
|
+
if (!isJson) {
|
|
606
|
+
spinner.stop();
|
|
607
|
+
}
|
|
608
|
+
if (isJson) {
|
|
609
|
+
console.log(JSON.stringify({
|
|
610
|
+
alias,
|
|
611
|
+
actor: exports.LOCAL_OPERATOR_ID,
|
|
612
|
+
permission_level: deps.permissionLevel,
|
|
613
|
+
command: result.command,
|
|
614
|
+
rowCount: result.rowCount,
|
|
615
|
+
durationMs: duration,
|
|
616
|
+
rowLimit: deps.maxRows ?? exports.LOCAL_MAX_ROWS,
|
|
617
|
+
rows: result.rows,
|
|
618
|
+
}, null, 2));
|
|
619
|
+
exit_(0);
|
|
620
|
+
}
|
|
621
|
+
console.log();
|
|
622
|
+
const fieldNames = result.fields.length > 0 ? result.fields.map((f) => f.name) : inferFieldNames(result.rows);
|
|
623
|
+
if (result.rows.length > 0 && fieldNames.length > 0) {
|
|
624
|
+
renderSqlResult(result.rows, fieldNames);
|
|
625
|
+
console.log();
|
|
626
|
+
console.log(` ${ui_1.C.dim(`(${result.rows.length} row${result.rows.length === 1 ? '' : 's'} in ${duration}ms)`)}`);
|
|
627
|
+
}
|
|
628
|
+
else {
|
|
629
|
+
console.log(` ${ui_1.C.green(ui_1.S.check)} Query executed successfully (${ui_1.C.dim(`${duration}ms`)})`);
|
|
630
|
+
if (result.rowCount !== null && result.rowCount !== undefined) {
|
|
631
|
+
console.log(` ${ui_1.C.dim('Command:')} ${ui_1.C.white(result.command)} ${ui_1.C.dim('Rows affected:')} ${ui_1.C.white(String(result.rowCount))}`);
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
console.log();
|
|
635
|
+
exit_(0);
|
|
636
|
+
}
|
|
637
|
+
function inferFieldNames(rows) {
|
|
638
|
+
const first = rows[0];
|
|
639
|
+
if (first && typeof first === 'object' && !Array.isArray(first)) {
|
|
640
|
+
return Object.keys(first);
|
|
641
|
+
}
|
|
642
|
+
return rows.length > 0 ? ['value'] : [];
|
|
643
|
+
}
|
|
644
|
+
async function runDbConnect(args) {
|
|
645
|
+
const alias = args[0];
|
|
646
|
+
if (!alias) {
|
|
647
|
+
console.log(` ${ui_1.C.yellow('Usage:')} ${ui_1.C.white('db connect <alias>')}\n`);
|
|
648
|
+
exit_(1);
|
|
649
|
+
}
|
|
650
|
+
const entry = (0, db_config_1.findDbEntry)(alias);
|
|
651
|
+
if (!entry) {
|
|
652
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} Database alias "${ui_1.C.white(alias)}" not found.`);
|
|
653
|
+
console.log(` ${ui_1.C.dim('Run')} ${ui_1.C.cyan('db list')} ${ui_1.C.dim('to see available databases.')}\n`);
|
|
654
|
+
exit_(1);
|
|
655
|
+
}
|
|
656
|
+
const deps = createLocalSqlDeps(entry);
|
|
657
|
+
console.log();
|
|
658
|
+
console.log(` ${ui_1.C.bold('Database Console')} ${ui_1.C.dim(`[permission ${deps.permissionLevel}, actor ${exports.LOCAL_OPERATOR_ID}]`)}`);
|
|
659
|
+
console.log(` ${ui_1.C.dim(`Host:`)} ${ui_1.C.white(entry.host)}:${ui_1.C.white(String(entry.port))} ${ui_1.C.dim('DB:')} ${ui_1.C.white(entry.database)} ${ui_1.C.dim('User:')} ${ui_1.C.white(entry.user)}`);
|
|
660
|
+
console.log(` ${ui_1.C.dim('Every statement is classified, permission-checked, timed out, row-capped, and audited.')}`);
|
|
661
|
+
console.log(` ${ui_1.C.dim('Type SQL to run, or')} ${ui_1.C.cyan('\\dt')} ${ui_1.C.dim('(tables),')} ${ui_1.C.cyan('\\dn')} ${ui_1.C.dim('(schemas),')} ${ui_1.C.cyan('\\l')} ${ui_1.C.dim('(databases),')} ${ui_1.C.cyan('exit')} ${ui_1.C.dim('to quit.')}`);
|
|
662
|
+
console.log();
|
|
663
|
+
const rl = readline.createInterface({
|
|
664
|
+
input: process.stdin,
|
|
665
|
+
output: process.stdout,
|
|
666
|
+
prompt: `sw-agent (${ui_1.C.cyan(alias)}) > `,
|
|
667
|
+
});
|
|
668
|
+
rl.prompt();
|
|
669
|
+
for await (const line of rl) {
|
|
670
|
+
const input = line.trim();
|
|
671
|
+
if (!input) {
|
|
672
|
+
rl.prompt();
|
|
673
|
+
continue;
|
|
674
|
+
}
|
|
675
|
+
if (input === 'exit' || input === 'quit' || input === '\\q') {
|
|
676
|
+
break;
|
|
677
|
+
}
|
|
678
|
+
if (input === 'clear') {
|
|
679
|
+
(0, ui_1.clearScreen)();
|
|
680
|
+
rl.prompt();
|
|
681
|
+
continue;
|
|
682
|
+
}
|
|
683
|
+
if (input === 'help' || input === '\\?') {
|
|
684
|
+
console.log();
|
|
685
|
+
console.log(` ${ui_1.C.bold('Console Commands:')}`);
|
|
686
|
+
console.log(` ${ui_1.C.cyan('\\dt')} List tables`);
|
|
687
|
+
console.log(` ${ui_1.C.cyan('\\dn')} List schemas`);
|
|
688
|
+
console.log(` ${ui_1.C.cyan('\\l')} List databases`);
|
|
689
|
+
console.log(` ${ui_1.C.cyan('clear')} Clear console screen`);
|
|
690
|
+
console.log(` ${ui_1.C.cyan('exit')} Quit database console`);
|
|
691
|
+
console.log();
|
|
692
|
+
console.log(` ${ui_1.C.dim('Every statement is recorded to')} ${ui_1.C.cyan('~/.sw-agent/audit/audit.jsonl')} ${ui_1.C.dim(`as ${exports.LOCAL_OPERATOR_ID}.`)}`);
|
|
693
|
+
console.log();
|
|
694
|
+
rl.prompt();
|
|
695
|
+
continue;
|
|
696
|
+
}
|
|
697
|
+
const sql = expandConsoleCommand(input);
|
|
698
|
+
const t0 = Date.now();
|
|
699
|
+
try {
|
|
700
|
+
const res = await executeLocalSql({ entry, sql, action: 'query' }, deps);
|
|
701
|
+
const elapsed = Date.now() - t0;
|
|
702
|
+
console.log();
|
|
703
|
+
const fieldNames = res.fields.length > 0 ? res.fields.map((f) => f.name) : inferFieldNames(res.rows);
|
|
704
|
+
if (res.rows.length > 0 && fieldNames.length > 0) {
|
|
705
|
+
renderSqlResult(res.rows, fieldNames);
|
|
706
|
+
console.log();
|
|
707
|
+
console.log(` ${ui_1.C.dim(`(${res.rows.length} row${res.rows.length === 1 ? '' : 's'} in ${elapsed}ms)`)}`);
|
|
708
|
+
}
|
|
709
|
+
else {
|
|
710
|
+
console.log(` ${ui_1.C.green(ui_1.S.check)} Query executed (${ui_1.C.dim(`${elapsed}ms`)})${res.rowCount !== null ? ` - ${res.rowCount} rows affected` : ''}`);
|
|
711
|
+
}
|
|
712
|
+
console.log();
|
|
713
|
+
}
|
|
714
|
+
catch (err) {
|
|
715
|
+
console.log();
|
|
716
|
+
if (err instanceof LocalPermissionDeniedError) {
|
|
717
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} ${ui_1.C.red('Refused:')} ${err.message}`);
|
|
718
|
+
}
|
|
719
|
+
else if (err instanceof LocalAuditUnavailableError || err instanceof LocalRowCapError) {
|
|
720
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} ${ui_1.C.red(err.message)}`);
|
|
721
|
+
}
|
|
722
|
+
else if (/statement timeout|canceling statement due to statement timeout/i.test(errMessage(err))) {
|
|
723
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} Statement exceeded the ${exports.LOCAL_STATEMENT_TIMEOUT_MS}ms local timeout and was cancelled.`);
|
|
724
|
+
}
|
|
725
|
+
else {
|
|
726
|
+
console.log(` ${ui_1.C.red(ui_1.S.cross)} ${ui_1.C.red(errMessage(err))}`);
|
|
727
|
+
}
|
|
728
|
+
console.log();
|
|
729
|
+
}
|
|
730
|
+
rl.prompt();
|
|
731
|
+
}
|
|
732
|
+
rl.close();
|
|
733
|
+
await deps.audit.flush().catch(() => undefined);
|
|
734
|
+
console.log(` ${ui_1.C.dim('Connection closed.')}\n`);
|
|
735
|
+
exit_(0);
|
|
736
|
+
}
|
|
737
|
+
function expandConsoleCommand(input) {
|
|
738
|
+
switch (input) {
|
|
739
|
+
case '\\dt':
|
|
740
|
+
return `
|
|
741
|
+
SELECT table_schema AS schema, table_name AS table, table_type AS type
|
|
742
|
+
FROM information_schema.tables
|
|
743
|
+
WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
|
|
744
|
+
ORDER BY table_schema, table_name;
|
|
745
|
+
`;
|
|
746
|
+
case '\\dn':
|
|
747
|
+
return `
|
|
748
|
+
SELECT schema_name AS schema, schema_owner AS owner
|
|
749
|
+
FROM information_schema.schemata
|
|
750
|
+
ORDER BY schema_name;
|
|
751
|
+
`;
|
|
752
|
+
case '\\l':
|
|
753
|
+
return `
|
|
754
|
+
SELECT datname AS database, pg_encoding_to_char(encoding) AS encoding
|
|
755
|
+
FROM pg_database
|
|
756
|
+
WHERE datistemplate = false
|
|
757
|
+
ORDER BY datname;
|
|
758
|
+
`;
|
|
759
|
+
default:
|
|
760
|
+
return input;
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
function errMessage(err) {
|
|
764
|
+
return err instanceof Error ? err.message : String(err);
|
|
765
|
+
}
|
|
766
|
+
function exit_(code) {
|
|
767
|
+
if ((0, prompt_1.isReplMode)()) {
|
|
768
|
+
throw { __exitCode: code };
|
|
769
|
+
}
|
|
770
|
+
process.exit(code);
|
|
771
|
+
}
|
|
772
|
+
function renderSqlResult(rows, fieldNames) {
|
|
773
|
+
const maxW = Math.max(40, (0, ui_1.terminalWidth)() - 4);
|
|
774
|
+
const formattedRows = rows.map((r) => {
|
|
775
|
+
const rowObj = {};
|
|
776
|
+
for (const f of fieldNames) {
|
|
777
|
+
const val = r[f];
|
|
778
|
+
if (val === null || val === undefined) {
|
|
779
|
+
rowObj[f] = ui_1.C.dim('NULL');
|
|
780
|
+
}
|
|
781
|
+
else if (typeof val === 'boolean') {
|
|
782
|
+
rowObj[f] = val ? ui_1.C.green('true') : ui_1.C.red('false');
|
|
783
|
+
}
|
|
784
|
+
else if (typeof val === 'object') {
|
|
785
|
+
rowObj[f] = (0, ui_1.truncateAnsi)(JSON.stringify(val), 40);
|
|
786
|
+
}
|
|
787
|
+
else {
|
|
788
|
+
rowObj[f] = String(val);
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
return rowObj;
|
|
792
|
+
});
|
|
793
|
+
const columns = fieldNames.map((name) => ({
|
|
794
|
+
key: name,
|
|
795
|
+
header: name.toUpperCase(),
|
|
796
|
+
minWidth: Math.min(6, name.length),
|
|
797
|
+
maxWidth: Math.max(12, Math.floor(maxW / fieldNames.length)),
|
|
798
|
+
priority: 1,
|
|
799
|
+
}));
|
|
800
|
+
console.log((0, ui_1.renderTable)(formattedRows, { columns, maxWidth: maxW }));
|
|
801
|
+
}
|
|
802
|
+
//# sourceMappingURL=db-query.js.map
|