@schema-weaver/pg-connector 0.0.0-stage → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +457 -2
- package/dist/cjs/audit/chain.d.ts +365 -0
- package/dist/cjs/audit/chain.d.ts.map +1 -0
- package/dist/cjs/audit/chain.js +959 -0
- package/dist/cjs/audit/chain.js.map +1 -0
- package/dist/cjs/audit/cloud-client.d.ts +142 -0
- package/dist/cjs/audit/cloud-client.d.ts.map +1 -0
- package/dist/cjs/audit/cloud-client.js +364 -0
- package/dist/cjs/audit/cloud-client.js.map +1 -0
- package/dist/cjs/audit/cloud-writer.d.ts +57 -0
- package/dist/cjs/audit/cloud-writer.d.ts.map +1 -0
- package/dist/cjs/audit/cloud-writer.js +95 -0
- package/dist/cjs/audit/cloud-writer.js.map +1 -0
- package/dist/cjs/audit/context.d.ts +51 -0
- package/dist/cjs/audit/context.d.ts.map +1 -0
- package/dist/cjs/audit/context.js +75 -0
- package/dist/cjs/audit/context.js.map +1 -0
- package/dist/cjs/audit/files.d.ts +111 -0
- package/dist/cjs/audit/files.d.ts.map +1 -0
- package/dist/cjs/audit/files.js +406 -0
- package/dist/cjs/audit/files.js.map +1 -0
- package/dist/cjs/audit/index.d.ts +9 -0
- package/dist/cjs/audit/index.d.ts.map +1 -0
- package/dist/cjs/audit/index.js +68 -0
- package/dist/cjs/audit/index.js.map +1 -0
- package/dist/cjs/audit/local-writer.d.ts +255 -0
- package/dist/cjs/audit/local-writer.d.ts.map +1 -0
- package/dist/cjs/audit/local-writer.js +829 -0
- package/dist/cjs/audit/local-writer.js.map +1 -0
- package/dist/cjs/audit/redact.d.ts +151 -0
- package/dist/cjs/audit/redact.d.ts.map +1 -0
- package/dist/cjs/audit/redact.js +549 -0
- package/dist/cjs/audit/redact.js.map +1 -0
- package/dist/cjs/audit/sanitize.d.ts +78 -0
- package/dist/cjs/audit/sanitize.d.ts.map +1 -0
- package/dist/cjs/audit/sanitize.js +315 -0
- package/dist/cjs/audit/sanitize.js.map +1 -0
- package/dist/cjs/audit/sink.d.ts +278 -0
- package/dist/cjs/audit/sink.d.ts.map +1 -0
- package/dist/cjs/audit/sink.js +819 -0
- package/dist/cjs/audit/sink.js.map +1 -0
- package/dist/cjs/audit/types.d.ts +226 -0
- package/dist/cjs/audit/types.d.ts.map +1 -0
- package/dist/cjs/audit/types.js +3 -0
- package/dist/cjs/audit/types.js.map +1 -0
- package/dist/cjs/audit/verify-cache.d.ts +127 -0
- package/dist/cjs/audit/verify-cache.d.ts.map +1 -0
- package/dist/cjs/audit/verify-cache.js +668 -0
- package/dist/cjs/audit/verify-cache.js.map +1 -0
- package/dist/cjs/channels/agent-session.d.ts +228 -0
- package/dist/cjs/channels/agent-session.d.ts.map +1 -0
- package/dist/cjs/channels/agent-session.js +604 -0
- package/dist/cjs/channels/agent-session.js.map +1 -0
- package/dist/cjs/channels/data-channel.d.ts +181 -0
- package/dist/cjs/channels/data-channel.d.ts.map +1 -0
- package/dist/cjs/channels/data-channel.js +607 -0
- package/dist/cjs/channels/data-channel.js.map +1 -0
- package/dist/cjs/channels/reconnect.d.ts +142 -0
- package/dist/cjs/channels/reconnect.d.ts.map +1 -0
- package/dist/cjs/channels/reconnect.js +247 -0
- package/dist/cjs/channels/reconnect.js.map +1 -0
- package/dist/cjs/channels/types.d.ts +112 -0
- package/dist/cjs/channels/types.d.ts.map +1 -0
- package/dist/cjs/channels/types.js +3 -0
- package/dist/cjs/channels/types.js.map +1 -0
- package/dist/cjs/channels/wake-channel.d.ts +232 -0
- package/dist/cjs/channels/wake-channel.d.ts.map +1 -0
- package/dist/cjs/channels/wake-channel.js +752 -0
- package/dist/cjs/channels/wake-channel.js.map +1 -0
- package/dist/cjs/cli/banner.d.ts +2 -0
- package/dist/cjs/cli/banner.d.ts.map +1 -0
- package/dist/cjs/cli/banner.js +150 -0
- package/dist/cjs/cli/banner.js.map +1 -0
- package/dist/cjs/cli/commands/agent.d.ts +30 -0
- package/dist/cjs/cli/commands/agent.d.ts.map +1 -0
- package/dist/cjs/cli/commands/agent.js +214 -0
- package/dist/cjs/cli/commands/agent.js.map +1 -0
- package/dist/cjs/cli/commands/audit-verify.d.ts +19 -0
- package/dist/cjs/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/cjs/cli/commands/audit-verify.js +382 -0
- package/dist/cjs/cli/commands/audit-verify.js.map +1 -0
- package/dist/cjs/cli/commands/clean.d.ts +23 -0
- package/dist/cjs/cli/commands/clean.d.ts.map +1 -0
- package/dist/cjs/cli/commands/clean.js +272 -0
- package/dist/cjs/cli/commands/clean.js.map +1 -0
- package/dist/cjs/cli/commands/config-show.d.ts +2 -0
- package/dist/cjs/cli/commands/config-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/config-show.js +10 -0
- package/dist/cjs/cli/commands/config-show.js.map +1 -0
- package/dist/cjs/cli/commands/config.d.ts +6 -0
- package/dist/cjs/cli/commands/config.d.ts.map +1 -0
- package/dist/cjs/cli/commands/config.js +266 -0
- package/dist/cjs/cli/commands/config.js.map +1 -0
- package/dist/cjs/cli/commands/db-add.d.ts +16 -0
- package/dist/cjs/cli/commands/db-add.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-add.js +613 -0
- package/dist/cjs/cli/commands/db-add.js.map +1 -0
- package/dist/cjs/cli/commands/db-edit.d.ts +2 -0
- package/dist/cjs/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-edit.js +388 -0
- package/dist/cjs/cli/commands/db-edit.js.map +1 -0
- package/dist/cjs/cli/commands/db-logs.d.ts +3 -0
- package/dist/cjs/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-logs.js +67 -0
- package/dist/cjs/cli/commands/db-logs.js.map +1 -0
- package/dist/cjs/cli/commands/db-ls.d.ts +2 -0
- package/dist/cjs/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-ls.js +118 -0
- package/dist/cjs/cli/commands/db-ls.js.map +1 -0
- package/dist/cjs/cli/commands/db-query.d.ts +121 -0
- package/dist/cjs/cli/commands/db-query.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-query.js +802 -0
- package/dist/cjs/cli/commands/db-query.js.map +1 -0
- package/dist/cjs/cli/commands/db-remove.d.ts +2 -0
- package/dist/cjs/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-remove.js +51 -0
- package/dist/cjs/cli/commands/db-remove.js.map +1 -0
- package/dist/cjs/cli/commands/db-show.d.ts +2 -0
- package/dist/cjs/cli/commands/db-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-show.js +134 -0
- package/dist/cjs/cli/commands/db-show.js.map +1 -0
- package/dist/cjs/cli/commands/db-test.d.ts +3 -0
- package/dist/cjs/cli/commands/db-test.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-test.js +311 -0
- package/dist/cjs/cli/commands/db-test.js.map +1 -0
- package/dist/cjs/cli/commands/db.d.ts +11 -0
- package/dist/cjs/cli/commands/db.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db.js +90 -0
- package/dist/cjs/cli/commands/db.js.map +1 -0
- package/dist/cjs/cli/commands/debug.d.ts +2 -0
- package/dist/cjs/cli/commands/debug.d.ts.map +1 -0
- package/dist/cjs/cli/commands/debug.js +241 -0
- package/dist/cjs/cli/commands/debug.js.map +1 -0
- package/dist/cjs/cli/commands/doctor.d.ts +5 -0
- package/dist/cjs/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cjs/cli/commands/doctor.js +117 -0
- package/dist/cjs/cli/commands/doctor.js.map +1 -0
- package/dist/cjs/cli/commands/index.d.ts +10 -0
- package/dist/cjs/cli/commands/index.d.ts.map +1 -0
- package/dist/cjs/cli/commands/index.js +30 -0
- package/dist/cjs/cli/commands/index.js.map +1 -0
- package/dist/cjs/cli/commands/init.d.ts +2 -0
- package/dist/cjs/cli/commands/init.d.ts.map +1 -0
- package/dist/cjs/cli/commands/init.js +199 -0
- package/dist/cjs/cli/commands/init.js.map +1 -0
- package/dist/cjs/cli/commands/link.d.ts +5 -0
- package/dist/cjs/cli/commands/link.d.ts.map +1 -0
- package/dist/cjs/cli/commands/link.js +44 -0
- package/dist/cjs/cli/commands/link.js.map +1 -0
- package/dist/cjs/cli/commands/logs.d.ts +17 -0
- package/dist/cjs/cli/commands/logs.d.ts.map +1 -0
- package/dist/cjs/cli/commands/logs.js +314 -0
- package/dist/cjs/cli/commands/logs.js.map +1 -0
- package/dist/cjs/cli/commands/project-show.d.ts +2 -0
- package/dist/cjs/cli/commands/project-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/project-show.js +105 -0
- package/dist/cjs/cli/commands/project-show.js.map +1 -0
- package/dist/cjs/cli/commands/project.d.ts +3 -0
- package/dist/cjs/cli/commands/project.d.ts.map +1 -0
- package/dist/cjs/cli/commands/project.js +64 -0
- package/dist/cjs/cli/commands/project.js.map +1 -0
- package/dist/cjs/cli/commands/service.d.ts +123 -0
- package/dist/cjs/cli/commands/service.d.ts.map +1 -0
- package/dist/cjs/cli/commands/service.js +554 -0
- package/dist/cjs/cli/commands/service.js.map +1 -0
- package/dist/cjs/cli/commands/start.d.ts +6 -0
- package/dist/cjs/cli/commands/start.d.ts.map +1 -0
- package/dist/cjs/cli/commands/start.js +308 -0
- package/dist/cjs/cli/commands/start.js.map +1 -0
- package/dist/cjs/cli/commands/status.d.ts +2 -0
- package/dist/cjs/cli/commands/status.d.ts.map +1 -0
- package/dist/cjs/cli/commands/status.js +225 -0
- package/dist/cjs/cli/commands/status.js.map +1 -0
- package/dist/cjs/cli/commands/stop.d.ts +6 -0
- package/dist/cjs/cli/commands/stop.d.ts.map +1 -0
- package/dist/cjs/cli/commands/stop.js +99 -0
- package/dist/cjs/cli/commands/stop.js.map +1 -0
- package/dist/cjs/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/cjs/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/error-tracker.js +500 -0
- package/dist/cjs/cli/daemon/error-tracker.js.map +1 -0
- package/dist/cjs/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/cjs/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/fault-shutdown.js +312 -0
- package/dist/cjs/cli/daemon/fault-shutdown.js.map +1 -0
- package/dist/cjs/cli/daemon/index.d.ts +12 -0
- package/dist/cjs/cli/daemon/index.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/index.js +23 -0
- package/dist/cjs/cli/daemon/index.js.map +1 -0
- package/dist/cjs/cli/daemon/pid-file.d.ts +13 -0
- package/dist/cjs/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/pid-file.js +90 -0
- package/dist/cjs/cli/daemon/pid-file.js.map +1 -0
- package/dist/cjs/cli/daemon/readiness.d.ts +30 -0
- package/dist/cjs/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/readiness.js +74 -0
- package/dist/cjs/cli/daemon/readiness.js.map +1 -0
- package/dist/cjs/cli/daemon/runtime.d.ts +366 -0
- package/dist/cjs/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/runtime.js +1343 -0
- package/dist/cjs/cli/daemon/runtime.js.map +1 -0
- package/dist/cjs/cli/daemon/shutdown.d.ts +7 -0
- package/dist/cjs/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/shutdown.js +66 -0
- package/dist/cjs/cli/daemon/shutdown.js.map +1 -0
- package/dist/cjs/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/cjs/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/signal-handlers.js +27 -0
- package/dist/cjs/cli/daemon/signal-handlers.js.map +1 -0
- package/dist/cjs/cli/daemon/state.d.ts +157 -0
- package/dist/cjs/cli/daemon/state.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/state.js +397 -0
- package/dist/cjs/cli/daemon/state.js.map +1 -0
- package/dist/cjs/cli/daemon/status-file.d.ts +139 -0
- package/dist/cjs/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/status-file.js +88 -0
- package/dist/cjs/cli/daemon/status-file.js.map +1 -0
- package/dist/cjs/cli/doctor/checks.d.ts +133 -0
- package/dist/cjs/cli/doctor/checks.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/checks.js +677 -0
- package/dist/cjs/cli/doctor/checks.js.map +1 -0
- package/dist/cjs/cli/doctor/fixes.d.ts +9 -0
- package/dist/cjs/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/fixes.js +199 -0
- package/dist/cjs/cli/doctor/fixes.js.map +1 -0
- package/dist/cjs/cli/doctor/index.d.ts +7 -0
- package/dist/cjs/cli/doctor/index.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/index.js +27 -0
- package/dist/cjs/cli/doctor/index.js.map +1 -0
- package/dist/cjs/cli/index.d.ts +3 -0
- package/dist/cjs/cli/index.d.ts.map +1 -0
- package/dist/cjs/cli/index.js +336 -0
- package/dist/cjs/cli/index.js.map +1 -0
- package/dist/cjs/cli/interactive.d.ts +8 -0
- package/dist/cjs/cli/interactive.d.ts.map +1 -0
- package/dist/cjs/cli/interactive.js +670 -0
- package/dist/cjs/cli/interactive.js.map +1 -0
- package/dist/cjs/cli/logs/format.d.ts +13 -0
- package/dist/cjs/cli/logs/format.d.ts.map +1 -0
- package/dist/cjs/cli/logs/format.js +178 -0
- package/dist/cjs/cli/logs/format.js.map +1 -0
- package/dist/cjs/cli/logs/index.d.ts +3 -0
- package/dist/cjs/cli/logs/index.d.ts.map +1 -0
- package/dist/cjs/cli/logs/index.js +13 -0
- package/dist/cjs/cli/logs/index.js.map +1 -0
- package/dist/cjs/cli/logs/viewer.d.ts +41 -0
- package/dist/cjs/cli/logs/viewer.d.ts.map +1 -0
- package/dist/cjs/cli/logs/viewer.js +417 -0
- package/dist/cjs/cli/logs/viewer.js.map +1 -0
- package/dist/cjs/cli/ops/operation-logger.d.ts +63 -0
- package/dist/cjs/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/cjs/cli/ops/operation-logger.js +183 -0
- package/dist/cjs/cli/ops/operation-logger.js.map +1 -0
- package/dist/cjs/cli/palette.d.ts +11 -0
- package/dist/cjs/cli/palette.d.ts.map +1 -0
- package/dist/cjs/cli/palette.js +243 -0
- package/dist/cjs/cli/palette.js.map +1 -0
- package/dist/cjs/cli/prompt.d.ts +186 -0
- package/dist/cjs/cli/prompt.d.ts.map +1 -0
- package/dist/cjs/cli/prompt.js +541 -0
- package/dist/cjs/cli/prompt.js.map +1 -0
- package/dist/cjs/cli/ui/box.d.ts +21 -0
- package/dist/cjs/cli/ui/box.d.ts.map +1 -0
- package/dist/cjs/cli/ui/box.js +72 -0
- package/dist/cjs/cli/ui/box.js.map +1 -0
- package/dist/cjs/cli/ui/clipboard.d.ts +6 -0
- package/dist/cjs/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/cjs/cli/ui/clipboard.js +78 -0
- package/dist/cjs/cli/ui/clipboard.js.map +1 -0
- package/dist/cjs/cli/ui/colors.d.ts +57 -0
- package/dist/cjs/cli/ui/colors.d.ts.map +1 -0
- package/dist/cjs/cli/ui/colors.js +151 -0
- package/dist/cjs/cli/ui/colors.js.map +1 -0
- package/dist/cjs/cli/ui/index.d.ts +9 -0
- package/dist/cjs/cli/ui/index.d.ts.map +1 -0
- package/dist/cjs/cli/ui/index.js +55 -0
- package/dist/cjs/cli/ui/index.js.map +1 -0
- package/dist/cjs/cli/ui/spinner.d.ts +12 -0
- package/dist/cjs/cli/ui/spinner.d.ts.map +1 -0
- package/dist/cjs/cli/ui/spinner.js +82 -0
- package/dist/cjs/cli/ui/spinner.js.map +1 -0
- package/dist/cjs/cli/ui/symbols.d.ts +47 -0
- package/dist/cjs/cli/ui/symbols.d.ts.map +1 -0
- package/dist/cjs/cli/ui/symbols.js +112 -0
- package/dist/cjs/cli/ui/symbols.js.map +1 -0
- package/dist/cjs/cli/ui/table.d.ts +23 -0
- package/dist/cjs/cli/ui/table.d.ts.map +1 -0
- package/dist/cjs/cli/ui/table.js +160 -0
- package/dist/cjs/cli/ui/table.js.map +1 -0
- package/dist/cjs/cli/ui/terminal.d.ts +7 -0
- package/dist/cjs/cli/ui/terminal.d.ts.map +1 -0
- package/dist/cjs/cli/ui/terminal.js +40 -0
- package/dist/cjs/cli/ui/terminal.js.map +1 -0
- package/dist/cjs/config/atomic-write.d.ts +69 -0
- package/dist/cjs/config/atomic-write.d.ts.map +1 -0
- package/dist/cjs/config/atomic-write.js +289 -0
- package/dist/cjs/config/atomic-write.js.map +1 -0
- package/dist/cjs/config/db-config.d.ts +134 -0
- package/dist/cjs/config/db-config.d.ts.map +1 -0
- package/dist/cjs/config/db-config.js +594 -0
- package/dist/cjs/config/db-config.js.map +1 -0
- package/dist/cjs/config/machine-config.d.ts +85 -0
- package/dist/cjs/config/machine-config.d.ts.map +1 -0
- package/dist/cjs/config/machine-config.js +232 -0
- package/dist/cjs/config/machine-config.js.map +1 -0
- package/dist/cjs/config/paths.d.ts +64 -0
- package/dist/cjs/config/paths.d.ts.map +1 -0
- package/dist/cjs/config/paths.js +155 -0
- package/dist/cjs/config/paths.js.map +1 -0
- package/dist/cjs/config/schema.d.ts +72 -0
- package/dist/cjs/config/schema.d.ts.map +1 -0
- package/dist/cjs/config/schema.js +197 -0
- package/dist/cjs/config/schema.js.map +1 -0
- package/dist/cjs/config/token.d.ts +63 -0
- package/dist/cjs/config/token.d.ts.map +1 -0
- package/dist/cjs/config/token.js +146 -0
- package/dist/cjs/config/token.js.map +1 -0
- package/dist/cjs/execution/canceller.d.ts +41 -0
- package/dist/cjs/execution/canceller.d.ts.map +1 -0
- package/dist/cjs/execution/canceller.js +209 -0
- package/dist/cjs/execution/canceller.js.map +1 -0
- package/dist/cjs/execution/database-lookup.d.ts +56 -0
- package/dist/cjs/execution/database-lookup.d.ts.map +1 -0
- package/dist/cjs/execution/database-lookup.js +43 -0
- package/dist/cjs/execution/database-lookup.js.map +1 -0
- package/dist/cjs/execution/dispatcher.d.ts +181 -0
- package/dist/cjs/execution/dispatcher.d.ts.map +1 -0
- package/dist/cjs/execution/dispatcher.js +1296 -0
- package/dist/cjs/execution/dispatcher.js.map +1 -0
- package/dist/cjs/execution/function-effects.d.ts +209 -0
- package/dist/cjs/execution/function-effects.d.ts.map +1 -0
- package/dist/cjs/execution/function-effects.js +596 -0
- package/dist/cjs/execution/function-effects.js.map +1 -0
- package/dist/cjs/execution/introspection.d.ts +76 -0
- package/dist/cjs/execution/introspection.d.ts.map +1 -0
- package/dist/cjs/execution/introspection.js +448 -0
- package/dist/cjs/execution/introspection.js.map +1 -0
- package/dist/cjs/execution/migration-runner.d.ts +128 -0
- package/dist/cjs/execution/migration-runner.d.ts.map +1 -0
- package/dist/cjs/execution/migration-runner.js +798 -0
- package/dist/cjs/execution/migration-runner.js.map +1 -0
- package/dist/cjs/execution/non-tx-detector.d.ts +23 -0
- package/dist/cjs/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/cjs/execution/non-tx-detector.js +218 -0
- package/dist/cjs/execution/non-tx-detector.js.map +1 -0
- package/dist/cjs/execution/pool.d.ts +229 -0
- package/dist/cjs/execution/pool.d.ts.map +1 -0
- package/dist/cjs/execution/pool.js +738 -0
- package/dist/cjs/execution/pool.js.map +1 -0
- package/dist/cjs/execution/query-runner.d.ts +88 -0
- package/dist/cjs/execution/query-runner.d.ts.map +1 -0
- package/dist/cjs/execution/query-runner.js +751 -0
- package/dist/cjs/execution/query-runner.js.map +1 -0
- package/dist/cjs/execution/rate-limiter.d.ts +120 -0
- package/dist/cjs/execution/rate-limiter.d.ts.map +1 -0
- package/dist/cjs/execution/rate-limiter.js +273 -0
- package/dist/cjs/execution/rate-limiter.js.map +1 -0
- package/dist/cjs/execution/search-path.d.ts +161 -0
- package/dist/cjs/execution/search-path.d.ts.map +1 -0
- package/dist/cjs/execution/search-path.js +279 -0
- package/dist/cjs/execution/search-path.js.map +1 -0
- package/dist/cjs/execution/sql-parser.d.ts +195 -0
- package/dist/cjs/execution/sql-parser.d.ts.map +1 -0
- package/dist/cjs/execution/sql-parser.js +704 -0
- package/dist/cjs/execution/sql-parser.js.map +1 -0
- package/dist/cjs/execution/statement-classifier.d.ts +103 -0
- package/dist/cjs/execution/statement-classifier.d.ts.map +1 -0
- package/dist/cjs/execution/statement-classifier.js +535 -0
- package/dist/cjs/execution/statement-classifier.js.map +1 -0
- package/dist/cjs/execution/types.d.ts +189 -0
- package/dist/cjs/execution/types.d.ts.map +1 -0
- package/dist/cjs/execution/types.js +28 -0
- package/dist/cjs/execution/types.js.map +1 -0
- package/dist/cjs/index.d.ts +34 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +98 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/permissions/auto-upgrade.d.ts +40 -0
- package/dist/cjs/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/cjs/permissions/auto-upgrade.js +168 -0
- package/dist/cjs/permissions/auto-upgrade.js.map +1 -0
- package/dist/cjs/permissions/checker.d.ts +53 -0
- package/dist/cjs/permissions/checker.d.ts.map +1 -0
- package/dist/cjs/permissions/checker.js +326 -0
- package/dist/cjs/permissions/checker.js.map +1 -0
- package/dist/cjs/permissions/manual-approval.d.ts +213 -0
- package/dist/cjs/permissions/manual-approval.d.ts.map +1 -0
- package/dist/cjs/permissions/manual-approval.js +541 -0
- package/dist/cjs/permissions/manual-approval.js.map +1 -0
- package/dist/cjs/permissions/plan-registry.d.ts +274 -0
- package/dist/cjs/permissions/plan-registry.d.ts.map +1 -0
- package/dist/cjs/permissions/plan-registry.js +454 -0
- package/dist/cjs/permissions/plan-registry.js.map +1 -0
- package/dist/cjs/permissions/role-policy.d.ts +217 -0
- package/dist/cjs/permissions/role-policy.d.ts.map +1 -0
- package/dist/cjs/permissions/role-policy.js +584 -0
- package/dist/cjs/permissions/role-policy.js.map +1 -0
- package/dist/cjs/permissions/types.d.ts +126 -0
- package/dist/cjs/permissions/types.d.ts.map +1 -0
- package/dist/cjs/permissions/types.js +3 -0
- package/dist/cjs/permissions/types.js.map +1 -0
- package/dist/cjs/protocol/constants.d.ts +72 -0
- package/dist/cjs/protocol/constants.d.ts.map +1 -0
- package/dist/cjs/protocol/constants.js +107 -0
- package/dist/cjs/protocol/constants.js.map +1 -0
- package/dist/cjs/protocol/envelope.d.ts +165 -0
- package/dist/cjs/protocol/envelope.d.ts.map +1 -0
- package/dist/cjs/protocol/envelope.js +309 -0
- package/dist/cjs/protocol/envelope.js.map +1 -0
- package/dist/cjs/protocol/errors.d.ts +33 -0
- package/dist/cjs/protocol/errors.d.ts.map +1 -0
- package/dist/cjs/protocol/errors.js +391 -0
- package/dist/cjs/protocol/errors.js.map +1 -0
- package/dist/cjs/protocol/messages.d.ts +327 -0
- package/dist/cjs/protocol/messages.d.ts.map +1 -0
- package/dist/cjs/protocol/messages.js +3 -0
- package/dist/cjs/protocol/messages.js.map +1 -0
- package/dist/cjs/protocol/serialize.d.ts +26 -0
- package/dist/cjs/protocol/serialize.d.ts.map +1 -0
- package/dist/cjs/protocol/serialize.js +71 -0
- package/dist/cjs/protocol/serialize.js.map +1 -0
- package/dist/cjs/protocol/validate.d.ts +135 -0
- package/dist/cjs/protocol/validate.d.ts.map +1 -0
- package/dist/cjs/protocol/validate.js +852 -0
- package/dist/cjs/protocol/validate.js.map +1 -0
- package/dist/esm/audit/chain.d.ts +365 -0
- package/dist/esm/audit/chain.d.ts.map +1 -0
- package/dist/esm/audit/chain.js +895 -0
- package/dist/esm/audit/chain.js.map +1 -0
- package/dist/esm/audit/cloud-client.d.ts +142 -0
- package/dist/esm/audit/cloud-client.d.ts.map +1 -0
- package/dist/esm/audit/cloud-client.js +326 -0
- package/dist/esm/audit/cloud-client.js.map +1 -0
- package/dist/esm/audit/cloud-writer.d.ts +57 -0
- package/dist/esm/audit/cloud-writer.d.ts.map +1 -0
- package/dist/esm/audit/cloud-writer.js +91 -0
- package/dist/esm/audit/cloud-writer.js.map +1 -0
- package/dist/esm/audit/context.d.ts +51 -0
- package/dist/esm/audit/context.d.ts.map +1 -0
- package/dist/esm/audit/context.js +69 -0
- package/dist/esm/audit/context.js.map +1 -0
- package/dist/esm/audit/files.d.ts +111 -0
- package/dist/esm/audit/files.d.ts.map +1 -0
- package/dist/esm/audit/files.js +361 -0
- package/dist/esm/audit/files.js.map +1 -0
- package/dist/esm/audit/index.d.ts +9 -0
- package/dist/esm/audit/index.d.ts.map +1 -0
- package/dist/esm/audit/index.js +8 -0
- package/dist/esm/audit/index.js.map +1 -0
- package/dist/esm/audit/local-writer.d.ts +255 -0
- package/dist/esm/audit/local-writer.d.ts.map +1 -0
- package/dist/esm/audit/local-writer.js +785 -0
- package/dist/esm/audit/local-writer.js.map +1 -0
- package/dist/esm/audit/redact.d.ts +151 -0
- package/dist/esm/audit/redact.d.ts.map +1 -0
- package/dist/esm/audit/redact.js +506 -0
- package/dist/esm/audit/redact.js.map +1 -0
- package/dist/esm/audit/sanitize.d.ts +78 -0
- package/dist/esm/audit/sanitize.d.ts.map +1 -0
- package/dist/esm/audit/sanitize.js +307 -0
- package/dist/esm/audit/sanitize.js.map +1 -0
- package/dist/esm/audit/sink.d.ts +278 -0
- package/dist/esm/audit/sink.d.ts.map +1 -0
- package/dist/esm/audit/sink.js +782 -0
- package/dist/esm/audit/sink.js.map +1 -0
- package/dist/esm/audit/types.d.ts +226 -0
- package/dist/esm/audit/types.d.ts.map +1 -0
- package/dist/esm/audit/types.js +2 -0
- package/dist/esm/audit/types.js.map +1 -0
- package/dist/esm/audit/verify-cache.d.ts +127 -0
- package/dist/esm/audit/verify-cache.d.ts.map +1 -0
- package/dist/esm/audit/verify-cache.js +628 -0
- package/dist/esm/audit/verify-cache.js.map +1 -0
- package/dist/esm/channels/agent-session.d.ts +228 -0
- package/dist/esm/channels/agent-session.d.ts.map +1 -0
- package/dist/esm/channels/agent-session.js +566 -0
- package/dist/esm/channels/agent-session.js.map +1 -0
- package/dist/esm/channels/data-channel.d.ts +181 -0
- package/dist/esm/channels/data-channel.d.ts.map +1 -0
- package/dist/esm/channels/data-channel.js +567 -0
- package/dist/esm/channels/data-channel.js.map +1 -0
- package/dist/esm/channels/reconnect.d.ts +142 -0
- package/dist/esm/channels/reconnect.d.ts.map +1 -0
- package/dist/esm/channels/reconnect.js +234 -0
- package/dist/esm/channels/reconnect.js.map +1 -0
- package/dist/esm/channels/types.d.ts +112 -0
- package/dist/esm/channels/types.d.ts.map +1 -0
- package/dist/esm/channels/types.js +2 -0
- package/dist/esm/channels/types.js.map +1 -0
- package/dist/esm/channels/wake-channel.d.ts +232 -0
- package/dist/esm/channels/wake-channel.d.ts.map +1 -0
- package/dist/esm/channels/wake-channel.js +715 -0
- package/dist/esm/channels/wake-channel.js.map +1 -0
- package/dist/esm/cli/banner.d.ts +2 -0
- package/dist/esm/cli/banner.d.ts.map +1 -0
- package/dist/esm/cli/banner.js +114 -0
- package/dist/esm/cli/banner.js.map +1 -0
- package/dist/esm/cli/commands/agent.d.ts +30 -0
- package/dist/esm/cli/commands/agent.d.ts.map +1 -0
- package/dist/esm/cli/commands/agent.js +204 -0
- package/dist/esm/cli/commands/agent.js.map +1 -0
- package/dist/esm/cli/commands/audit-verify.d.ts +19 -0
- package/dist/esm/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/esm/cli/commands/audit-verify.js +345 -0
- package/dist/esm/cli/commands/audit-verify.js.map +1 -0
- package/dist/esm/cli/commands/clean.d.ts +23 -0
- package/dist/esm/cli/commands/clean.d.ts.map +1 -0
- package/dist/esm/cli/commands/clean.js +235 -0
- package/dist/esm/cli/commands/clean.js.map +1 -0
- package/dist/esm/cli/commands/config-show.d.ts +2 -0
- package/dist/esm/cli/commands/config-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/config-show.js +2 -0
- package/dist/esm/cli/commands/config-show.js.map +1 -0
- package/dist/esm/cli/commands/config.d.ts +6 -0
- package/dist/esm/cli/commands/config.d.ts.map +1 -0
- package/dist/esm/cli/commands/config.js +259 -0
- package/dist/esm/cli/commands/config.js.map +1 -0
- package/dist/esm/cli/commands/db-add.d.ts +16 -0
- package/dist/esm/cli/commands/db-add.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-add.js +576 -0
- package/dist/esm/cli/commands/db-add.js.map +1 -0
- package/dist/esm/cli/commands/db-edit.d.ts +2 -0
- package/dist/esm/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-edit.js +352 -0
- package/dist/esm/cli/commands/db-edit.js.map +1 -0
- package/dist/esm/cli/commands/db-logs.d.ts +3 -0
- package/dist/esm/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-logs.js +64 -0
- package/dist/esm/cli/commands/db-logs.js.map +1 -0
- package/dist/esm/cli/commands/db-ls.d.ts +2 -0
- package/dist/esm/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-ls.js +115 -0
- package/dist/esm/cli/commands/db-ls.js.map +1 -0
- package/dist/esm/cli/commands/db-query.d.ts +121 -0
- package/dist/esm/cli/commands/db-query.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-query.js +754 -0
- package/dist/esm/cli/commands/db-query.js.map +1 -0
- package/dist/esm/cli/commands/db-remove.d.ts +2 -0
- package/dist/esm/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-remove.js +48 -0
- package/dist/esm/cli/commands/db-remove.js.map +1 -0
- package/dist/esm/cli/commands/db-show.d.ts +2 -0
- package/dist/esm/cli/commands/db-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-show.js +131 -0
- package/dist/esm/cli/commands/db-show.js.map +1 -0
- package/dist/esm/cli/commands/db-test.d.ts +3 -0
- package/dist/esm/cli/commands/db-test.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-test.js +307 -0
- package/dist/esm/cli/commands/db-test.js.map +1 -0
- package/dist/esm/cli/commands/db.d.ts +11 -0
- package/dist/esm/cli/commands/db.d.ts.map +1 -0
- package/dist/esm/cli/commands/db.js +76 -0
- package/dist/esm/cli/commands/db.js.map +1 -0
- package/dist/esm/cli/commands/debug.d.ts +2 -0
- package/dist/esm/cli/commands/debug.d.ts.map +1 -0
- package/dist/esm/cli/commands/debug.js +205 -0
- package/dist/esm/cli/commands/debug.js.map +1 -0
- package/dist/esm/cli/commands/doctor.d.ts +5 -0
- package/dist/esm/cli/commands/doctor.d.ts.map +1 -0
- package/dist/esm/cli/commands/doctor.js +114 -0
- package/dist/esm/cli/commands/doctor.js.map +1 -0
- package/dist/esm/cli/commands/index.d.ts +10 -0
- package/dist/esm/cli/commands/index.d.ts.map +1 -0
- package/dist/esm/cli/commands/index.js +10 -0
- package/dist/esm/cli/commands/index.js.map +1 -0
- package/dist/esm/cli/commands/init.d.ts +2 -0
- package/dist/esm/cli/commands/init.d.ts.map +1 -0
- package/dist/esm/cli/commands/init.js +163 -0
- package/dist/esm/cli/commands/init.js.map +1 -0
- package/dist/esm/cli/commands/link.d.ts +5 -0
- package/dist/esm/cli/commands/link.d.ts.map +1 -0
- package/dist/esm/cli/commands/link.js +41 -0
- package/dist/esm/cli/commands/link.js.map +1 -0
- package/dist/esm/cli/commands/logs.d.ts +17 -0
- package/dist/esm/cli/commands/logs.d.ts.map +1 -0
- package/dist/esm/cli/commands/logs.js +278 -0
- package/dist/esm/cli/commands/logs.js.map +1 -0
- package/dist/esm/cli/commands/project-show.d.ts +2 -0
- package/dist/esm/cli/commands/project-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/project-show.js +69 -0
- package/dist/esm/cli/commands/project-show.js.map +1 -0
- package/dist/esm/cli/commands/project.d.ts +3 -0
- package/dist/esm/cli/commands/project.d.ts.map +1 -0
- package/dist/esm/cli/commands/project.js +60 -0
- package/dist/esm/cli/commands/project.js.map +1 -0
- package/dist/esm/cli/commands/service.d.ts +123 -0
- package/dist/esm/cli/commands/service.d.ts.map +1 -0
- package/dist/esm/cli/commands/service.js +505 -0
- package/dist/esm/cli/commands/service.js.map +1 -0
- package/dist/esm/cli/commands/start.d.ts +6 -0
- package/dist/esm/cli/commands/start.d.ts.map +1 -0
- package/dist/esm/cli/commands/start.js +272 -0
- package/dist/esm/cli/commands/start.js.map +1 -0
- package/dist/esm/cli/commands/status.d.ts +2 -0
- package/dist/esm/cli/commands/status.d.ts.map +1 -0
- package/dist/esm/cli/commands/status.js +222 -0
- package/dist/esm/cli/commands/status.js.map +1 -0
- package/dist/esm/cli/commands/stop.d.ts +6 -0
- package/dist/esm/cli/commands/stop.d.ts.map +1 -0
- package/dist/esm/cli/commands/stop.js +96 -0
- package/dist/esm/cli/commands/stop.js.map +1 -0
- package/dist/esm/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/esm/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/esm/cli/daemon/error-tracker.js +451 -0
- package/dist/esm/cli/daemon/error-tracker.js.map +1 -0
- package/dist/esm/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/esm/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/esm/cli/daemon/fault-shutdown.js +273 -0
- package/dist/esm/cli/daemon/fault-shutdown.js.map +1 -0
- package/dist/esm/cli/daemon/index.d.ts +12 -0
- package/dist/esm/cli/daemon/index.d.ts.map +1 -0
- package/dist/esm/cli/daemon/index.js +7 -0
- package/dist/esm/cli/daemon/index.js.map +1 -0
- package/dist/esm/cli/daemon/pid-file.d.ts +13 -0
- package/dist/esm/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/esm/cli/daemon/pid-file.js +51 -0
- package/dist/esm/cli/daemon/pid-file.js.map +1 -0
- package/dist/esm/cli/daemon/readiness.d.ts +30 -0
- package/dist/esm/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/esm/cli/daemon/readiness.js +70 -0
- package/dist/esm/cli/daemon/readiness.js.map +1 -0
- package/dist/esm/cli/daemon/runtime.d.ts +366 -0
- package/dist/esm/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/esm/cli/daemon/runtime.js +1284 -0
- package/dist/esm/cli/daemon/runtime.js.map +1 -0
- package/dist/esm/cli/daemon/shutdown.d.ts +7 -0
- package/dist/esm/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/esm/cli/daemon/shutdown.js +63 -0
- package/dist/esm/cli/daemon/shutdown.js.map +1 -0
- package/dist/esm/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/esm/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/esm/cli/daemon/signal-handlers.js +24 -0
- package/dist/esm/cli/daemon/signal-handlers.js.map +1 -0
- package/dist/esm/cli/daemon/state.d.ts +157 -0
- package/dist/esm/cli/daemon/state.d.ts.map +1 -0
- package/dist/esm/cli/daemon/state.js +352 -0
- package/dist/esm/cli/daemon/state.js.map +1 -0
- package/dist/esm/cli/daemon/status-file.d.ts +139 -0
- package/dist/esm/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/esm/cli/daemon/status-file.js +50 -0
- package/dist/esm/cli/daemon/status-file.js.map +1 -0
- package/dist/esm/cli/doctor/checks.d.ts +133 -0
- package/dist/esm/cli/doctor/checks.d.ts.map +1 -0
- package/dist/esm/cli/doctor/checks.js +624 -0
- package/dist/esm/cli/doctor/checks.js.map +1 -0
- package/dist/esm/cli/doctor/fixes.d.ts +9 -0
- package/dist/esm/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/esm/cli/doctor/fixes.js +163 -0
- package/dist/esm/cli/doctor/fixes.js.map +1 -0
- package/dist/esm/cli/doctor/index.d.ts +7 -0
- package/dist/esm/cli/doctor/index.d.ts.map +1 -0
- package/dist/esm/cli/doctor/index.js +5 -0
- package/dist/esm/cli/doctor/index.js.map +1 -0
- package/dist/esm/cli/index.d.ts +3 -0
- package/dist/esm/cli/index.d.ts.map +1 -0
- package/dist/esm/cli/index.js +333 -0
- package/dist/esm/cli/index.js.map +1 -0
- package/dist/esm/cli/interactive.d.ts +8 -0
- package/dist/esm/cli/interactive.d.ts.map +1 -0
- package/dist/esm/cli/interactive.js +665 -0
- package/dist/esm/cli/interactive.js.map +1 -0
- package/dist/esm/cli/logs/format.d.ts +13 -0
- package/dist/esm/cli/logs/format.d.ts.map +1 -0
- package/dist/esm/cli/logs/format.js +169 -0
- package/dist/esm/cli/logs/format.js.map +1 -0
- package/dist/esm/cli/logs/index.d.ts +3 -0
- package/dist/esm/cli/logs/index.d.ts.map +1 -0
- package/dist/esm/cli/logs/index.js +3 -0
- package/dist/esm/cli/logs/index.js.map +1 -0
- package/dist/esm/cli/logs/viewer.d.ts +41 -0
- package/dist/esm/cli/logs/viewer.d.ts.map +1 -0
- package/dist/esm/cli/logs/viewer.js +412 -0
- package/dist/esm/cli/logs/viewer.js.map +1 -0
- package/dist/esm/cli/ops/operation-logger.d.ts +63 -0
- package/dist/esm/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/esm/cli/ops/operation-logger.js +142 -0
- package/dist/esm/cli/ops/operation-logger.js.map +1 -0
- package/dist/esm/cli/palette.d.ts +11 -0
- package/dist/esm/cli/palette.d.ts.map +1 -0
- package/dist/esm/cli/palette.js +240 -0
- package/dist/esm/cli/palette.js.map +1 -0
- package/dist/esm/cli/prompt.d.ts +186 -0
- package/dist/esm/cli/prompt.d.ts.map +1 -0
- package/dist/esm/cli/prompt.js +483 -0
- package/dist/esm/cli/prompt.js.map +1 -0
- package/dist/esm/cli/ui/box.d.ts +21 -0
- package/dist/esm/cli/ui/box.d.ts.map +1 -0
- package/dist/esm/cli/ui/box.js +60 -0
- package/dist/esm/cli/ui/box.js.map +1 -0
- package/dist/esm/cli/ui/clipboard.d.ts +6 -0
- package/dist/esm/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/esm/cli/ui/clipboard.js +42 -0
- package/dist/esm/cli/ui/clipboard.js.map +1 -0
- package/dist/esm/cli/ui/colors.d.ts +57 -0
- package/dist/esm/cli/ui/colors.d.ts.map +1 -0
- package/dist/esm/cli/ui/colors.js +126 -0
- package/dist/esm/cli/ui/colors.js.map +1 -0
- package/dist/esm/cli/ui/index.d.ts +9 -0
- package/dist/esm/cli/ui/index.d.ts.map +1 -0
- package/dist/esm/cli/ui/index.js +7 -0
- package/dist/esm/cli/ui/index.js.map +1 -0
- package/dist/esm/cli/ui/spinner.d.ts +12 -0
- package/dist/esm/cli/ui/spinner.d.ts.map +1 -0
- package/dist/esm/cli/ui/spinner.js +78 -0
- package/dist/esm/cli/ui/spinner.js.map +1 -0
- package/dist/esm/cli/ui/symbols.d.ts +47 -0
- package/dist/esm/cli/ui/symbols.d.ts.map +1 -0
- package/dist/esm/cli/ui/symbols.js +109 -0
- package/dist/esm/cli/ui/symbols.js.map +1 -0
- package/dist/esm/cli/ui/table.d.ts +23 -0
- package/dist/esm/cli/ui/table.d.ts.map +1 -0
- package/dist/esm/cli/ui/table.js +156 -0
- package/dist/esm/cli/ui/table.js.map +1 -0
- package/dist/esm/cli/ui/terminal.d.ts +7 -0
- package/dist/esm/cli/ui/terminal.d.ts.map +1 -0
- package/dist/esm/cli/ui/terminal.js +32 -0
- package/dist/esm/cli/ui/terminal.js.map +1 -0
- package/dist/esm/config/atomic-write.d.ts +69 -0
- package/dist/esm/config/atomic-write.d.ts.map +1 -0
- package/dist/esm/config/atomic-write.js +246 -0
- package/dist/esm/config/atomic-write.js.map +1 -0
- package/dist/esm/config/db-config.d.ts +134 -0
- package/dist/esm/config/db-config.d.ts.map +1 -0
- package/dist/esm/config/db-config.js +542 -0
- package/dist/esm/config/db-config.js.map +1 -0
- package/dist/esm/config/machine-config.d.ts +85 -0
- package/dist/esm/config/machine-config.d.ts.map +1 -0
- package/dist/esm/config/machine-config.js +190 -0
- package/dist/esm/config/machine-config.js.map +1 -0
- package/dist/esm/config/paths.d.ts +64 -0
- package/dist/esm/config/paths.d.ts.map +1 -0
- package/dist/esm/config/paths.js +108 -0
- package/dist/esm/config/paths.js.map +1 -0
- package/dist/esm/config/schema.d.ts +72 -0
- package/dist/esm/config/schema.d.ts.map +1 -0
- package/dist/esm/config/schema.js +180 -0
- package/dist/esm/config/schema.js.map +1 -0
- package/dist/esm/config/token.d.ts +63 -0
- package/dist/esm/config/token.d.ts.map +1 -0
- package/dist/esm/config/token.js +104 -0
- package/dist/esm/config/token.js.map +1 -0
- package/dist/esm/execution/canceller.d.ts +41 -0
- package/dist/esm/execution/canceller.d.ts.map +1 -0
- package/dist/esm/execution/canceller.js +205 -0
- package/dist/esm/execution/canceller.js.map +1 -0
- package/dist/esm/execution/database-lookup.d.ts +56 -0
- package/dist/esm/execution/database-lookup.d.ts.map +1 -0
- package/dist/esm/execution/database-lookup.js +38 -0
- package/dist/esm/execution/database-lookup.js.map +1 -0
- package/dist/esm/execution/dispatcher.d.ts +181 -0
- package/dist/esm/execution/dispatcher.d.ts.map +1 -0
- package/dist/esm/execution/dispatcher.js +1258 -0
- package/dist/esm/execution/dispatcher.js.map +1 -0
- package/dist/esm/execution/function-effects.d.ts +209 -0
- package/dist/esm/execution/function-effects.d.ts.map +1 -0
- package/dist/esm/execution/function-effects.js +586 -0
- package/dist/esm/execution/function-effects.js.map +1 -0
- package/dist/esm/execution/introspection.d.ts +76 -0
- package/dist/esm/execution/introspection.d.ts.map +1 -0
- package/dist/esm/execution/introspection.js +442 -0
- package/dist/esm/execution/introspection.js.map +1 -0
- package/dist/esm/execution/migration-runner.d.ts +128 -0
- package/dist/esm/execution/migration-runner.d.ts.map +1 -0
- package/dist/esm/execution/migration-runner.js +754 -0
- package/dist/esm/execution/migration-runner.js.map +1 -0
- package/dist/esm/execution/non-tx-detector.d.ts +23 -0
- package/dist/esm/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/esm/execution/non-tx-detector.js +215 -0
- package/dist/esm/execution/non-tx-detector.js.map +1 -0
- package/dist/esm/execution/pool.d.ts +229 -0
- package/dist/esm/execution/pool.d.ts.map +1 -0
- package/dist/esm/execution/pool.js +685 -0
- package/dist/esm/execution/pool.js.map +1 -0
- package/dist/esm/execution/query-runner.d.ts +88 -0
- package/dist/esm/execution/query-runner.d.ts.map +1 -0
- package/dist/esm/execution/query-runner.js +743 -0
- package/dist/esm/execution/query-runner.js.map +1 -0
- package/dist/esm/execution/rate-limiter.d.ts +120 -0
- package/dist/esm/execution/rate-limiter.d.ts.map +1 -0
- package/dist/esm/execution/rate-limiter.js +269 -0
- package/dist/esm/execution/rate-limiter.js.map +1 -0
- package/dist/esm/execution/search-path.d.ts +161 -0
- package/dist/esm/execution/search-path.d.ts.map +1 -0
- package/dist/esm/execution/search-path.js +270 -0
- package/dist/esm/execution/search-path.js.map +1 -0
- package/dist/esm/execution/sql-parser.d.ts +195 -0
- package/dist/esm/execution/sql-parser.d.ts.map +1 -0
- package/dist/esm/execution/sql-parser.js +683 -0
- package/dist/esm/execution/sql-parser.js.map +1 -0
- package/dist/esm/execution/statement-classifier.d.ts +103 -0
- package/dist/esm/execution/statement-classifier.d.ts.map +1 -0
- package/dist/esm/execution/statement-classifier.js +526 -0
- package/dist/esm/execution/statement-classifier.js.map +1 -0
- package/dist/esm/execution/types.d.ts +189 -0
- package/dist/esm/execution/types.d.ts.map +1 -0
- package/dist/esm/execution/types.js +22 -0
- package/dist/esm/execution/types.js.map +1 -0
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +38 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/permissions/auto-upgrade.d.ts +40 -0
- package/dist/esm/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/esm/permissions/auto-upgrade.js +164 -0
- package/dist/esm/permissions/auto-upgrade.js.map +1 -0
- package/dist/esm/permissions/checker.d.ts +53 -0
- package/dist/esm/permissions/checker.d.ts.map +1 -0
- package/dist/esm/permissions/checker.js +322 -0
- package/dist/esm/permissions/checker.js.map +1 -0
- package/dist/esm/permissions/manual-approval.d.ts +213 -0
- package/dist/esm/permissions/manual-approval.d.ts.map +1 -0
- package/dist/esm/permissions/manual-approval.js +503 -0
- package/dist/esm/permissions/manual-approval.js.map +1 -0
- package/dist/esm/permissions/plan-registry.d.ts +274 -0
- package/dist/esm/permissions/plan-registry.d.ts.map +1 -0
- package/dist/esm/permissions/plan-registry.js +450 -0
- package/dist/esm/permissions/plan-registry.js.map +1 -0
- package/dist/esm/permissions/role-policy.d.ts +217 -0
- package/dist/esm/permissions/role-policy.d.ts.map +1 -0
- package/dist/esm/permissions/role-policy.js +570 -0
- package/dist/esm/permissions/role-policy.js.map +1 -0
- package/dist/esm/permissions/types.d.ts +126 -0
- package/dist/esm/permissions/types.d.ts.map +1 -0
- package/dist/esm/permissions/types.js +2 -0
- package/dist/esm/permissions/types.js.map +1 -0
- package/dist/esm/protocol/constants.d.ts +72 -0
- package/dist/esm/protocol/constants.d.ts.map +1 -0
- package/dist/esm/protocol/constants.js +104 -0
- package/dist/esm/protocol/constants.js.map +1 -0
- package/dist/esm/protocol/envelope.d.ts +165 -0
- package/dist/esm/protocol/envelope.d.ts.map +1 -0
- package/dist/esm/protocol/envelope.js +263 -0
- package/dist/esm/protocol/envelope.js.map +1 -0
- package/dist/esm/protocol/errors.d.ts +33 -0
- package/dist/esm/protocol/errors.d.ts.map +1 -0
- package/dist/esm/protocol/errors.js +384 -0
- package/dist/esm/protocol/errors.js.map +1 -0
- package/dist/esm/protocol/messages.d.ts +327 -0
- package/dist/esm/protocol/messages.d.ts.map +1 -0
- package/dist/esm/protocol/messages.js +2 -0
- package/dist/esm/protocol/messages.js.map +1 -0
- package/dist/esm/protocol/serialize.d.ts +26 -0
- package/dist/esm/protocol/serialize.d.ts.map +1 -0
- package/dist/esm/protocol/serialize.js +63 -0
- package/dist/esm/protocol/serialize.js.map +1 -0
- package/dist/esm/protocol/validate.d.ts +135 -0
- package/dist/esm/protocol/validate.d.ts.map +1 -0
- package/dist/esm/protocol/validate.js +830 -0
- package/dist/esm/protocol/validate.js.map +1 -0
- package/dist/types/audit/chain.d.ts +365 -0
- package/dist/types/audit/chain.d.ts.map +1 -0
- package/dist/types/audit/cloud-client.d.ts +142 -0
- package/dist/types/audit/cloud-client.d.ts.map +1 -0
- package/dist/types/audit/cloud-writer.d.ts +57 -0
- package/dist/types/audit/cloud-writer.d.ts.map +1 -0
- package/dist/types/audit/context.d.ts +51 -0
- package/dist/types/audit/context.d.ts.map +1 -0
- package/dist/types/audit/files.d.ts +111 -0
- package/dist/types/audit/files.d.ts.map +1 -0
- package/dist/types/audit/index.d.ts +9 -0
- package/dist/types/audit/index.d.ts.map +1 -0
- package/dist/types/audit/local-writer.d.ts +255 -0
- package/dist/types/audit/local-writer.d.ts.map +1 -0
- package/dist/types/audit/redact.d.ts +151 -0
- package/dist/types/audit/redact.d.ts.map +1 -0
- package/dist/types/audit/sanitize.d.ts +78 -0
- package/dist/types/audit/sanitize.d.ts.map +1 -0
- package/dist/types/audit/sink.d.ts +278 -0
- package/dist/types/audit/sink.d.ts.map +1 -0
- package/dist/types/audit/types.d.ts +226 -0
- package/dist/types/audit/types.d.ts.map +1 -0
- package/dist/types/audit/verify-cache.d.ts +127 -0
- package/dist/types/audit/verify-cache.d.ts.map +1 -0
- package/dist/types/channels/agent-session.d.ts +228 -0
- package/dist/types/channels/agent-session.d.ts.map +1 -0
- package/dist/types/channels/data-channel.d.ts +181 -0
- package/dist/types/channels/data-channel.d.ts.map +1 -0
- package/dist/types/channels/reconnect.d.ts +142 -0
- package/dist/types/channels/reconnect.d.ts.map +1 -0
- package/dist/types/channels/types.d.ts +112 -0
- package/dist/types/channels/types.d.ts.map +1 -0
- package/dist/types/channels/wake-channel.d.ts +232 -0
- package/dist/types/channels/wake-channel.d.ts.map +1 -0
- package/dist/types/cli/banner.d.ts +2 -0
- package/dist/types/cli/banner.d.ts.map +1 -0
- package/dist/types/cli/commands/agent.d.ts +30 -0
- package/dist/types/cli/commands/agent.d.ts.map +1 -0
- package/dist/types/cli/commands/audit-verify.d.ts +19 -0
- package/dist/types/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/types/cli/commands/clean.d.ts +23 -0
- package/dist/types/cli/commands/clean.d.ts.map +1 -0
- package/dist/types/cli/commands/config-show.d.ts +2 -0
- package/dist/types/cli/commands/config-show.d.ts.map +1 -0
- package/dist/types/cli/commands/config.d.ts +6 -0
- package/dist/types/cli/commands/config.d.ts.map +1 -0
- package/dist/types/cli/commands/db-add.d.ts +16 -0
- package/dist/types/cli/commands/db-add.d.ts.map +1 -0
- package/dist/types/cli/commands/db-edit.d.ts +2 -0
- package/dist/types/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/types/cli/commands/db-logs.d.ts +3 -0
- package/dist/types/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/types/cli/commands/db-ls.d.ts +2 -0
- package/dist/types/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/types/cli/commands/db-query.d.ts +121 -0
- package/dist/types/cli/commands/db-query.d.ts.map +1 -0
- package/dist/types/cli/commands/db-remove.d.ts +2 -0
- package/dist/types/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/types/cli/commands/db-show.d.ts +2 -0
- package/dist/types/cli/commands/db-show.d.ts.map +1 -0
- package/dist/types/cli/commands/db-test.d.ts +3 -0
- package/dist/types/cli/commands/db-test.d.ts.map +1 -0
- package/dist/types/cli/commands/db.d.ts +11 -0
- package/dist/types/cli/commands/db.d.ts.map +1 -0
- package/dist/types/cli/commands/debug.d.ts +2 -0
- package/dist/types/cli/commands/debug.d.ts.map +1 -0
- package/dist/types/cli/commands/doctor.d.ts +5 -0
- package/dist/types/cli/commands/doctor.d.ts.map +1 -0
- package/dist/types/cli/commands/index.d.ts +10 -0
- package/dist/types/cli/commands/index.d.ts.map +1 -0
- package/dist/types/cli/commands/init.d.ts +2 -0
- package/dist/types/cli/commands/init.d.ts.map +1 -0
- package/dist/types/cli/commands/link.d.ts +5 -0
- package/dist/types/cli/commands/link.d.ts.map +1 -0
- package/dist/types/cli/commands/logs.d.ts +17 -0
- package/dist/types/cli/commands/logs.d.ts.map +1 -0
- package/dist/types/cli/commands/project-show.d.ts +2 -0
- package/dist/types/cli/commands/project-show.d.ts.map +1 -0
- package/dist/types/cli/commands/project.d.ts +3 -0
- package/dist/types/cli/commands/project.d.ts.map +1 -0
- package/dist/types/cli/commands/service.d.ts +123 -0
- package/dist/types/cli/commands/service.d.ts.map +1 -0
- package/dist/types/cli/commands/start.d.ts +6 -0
- package/dist/types/cli/commands/start.d.ts.map +1 -0
- package/dist/types/cli/commands/status.d.ts +2 -0
- package/dist/types/cli/commands/status.d.ts.map +1 -0
- package/dist/types/cli/commands/stop.d.ts +6 -0
- package/dist/types/cli/commands/stop.d.ts.map +1 -0
- package/dist/types/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/types/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/types/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/types/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/types/cli/daemon/index.d.ts +12 -0
- package/dist/types/cli/daemon/index.d.ts.map +1 -0
- package/dist/types/cli/daemon/pid-file.d.ts +13 -0
- package/dist/types/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/types/cli/daemon/readiness.d.ts +30 -0
- package/dist/types/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/types/cli/daemon/runtime.d.ts +366 -0
- package/dist/types/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/types/cli/daemon/shutdown.d.ts +7 -0
- package/dist/types/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/types/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/types/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/types/cli/daemon/state.d.ts +157 -0
- package/dist/types/cli/daemon/state.d.ts.map +1 -0
- package/dist/types/cli/daemon/status-file.d.ts +139 -0
- package/dist/types/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/types/cli/doctor/checks.d.ts +133 -0
- package/dist/types/cli/doctor/checks.d.ts.map +1 -0
- package/dist/types/cli/doctor/fixes.d.ts +9 -0
- package/dist/types/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/types/cli/doctor/index.d.ts +7 -0
- package/dist/types/cli/doctor/index.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +3 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/cli/interactive.d.ts +8 -0
- package/dist/types/cli/interactive.d.ts.map +1 -0
- package/dist/types/cli/logs/format.d.ts +13 -0
- package/dist/types/cli/logs/format.d.ts.map +1 -0
- package/dist/types/cli/logs/index.d.ts +3 -0
- package/dist/types/cli/logs/index.d.ts.map +1 -0
- package/dist/types/cli/logs/viewer.d.ts +41 -0
- package/dist/types/cli/logs/viewer.d.ts.map +1 -0
- package/dist/types/cli/ops/operation-logger.d.ts +63 -0
- package/dist/types/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/types/cli/palette.d.ts +11 -0
- package/dist/types/cli/palette.d.ts.map +1 -0
- package/dist/types/cli/prompt.d.ts +186 -0
- package/dist/types/cli/prompt.d.ts.map +1 -0
- package/dist/types/cli/ui/box.d.ts +21 -0
- package/dist/types/cli/ui/box.d.ts.map +1 -0
- package/dist/types/cli/ui/clipboard.d.ts +6 -0
- package/dist/types/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/types/cli/ui/colors.d.ts +57 -0
- package/dist/types/cli/ui/colors.d.ts.map +1 -0
- package/dist/types/cli/ui/index.d.ts +9 -0
- package/dist/types/cli/ui/index.d.ts.map +1 -0
- package/dist/types/cli/ui/spinner.d.ts +12 -0
- package/dist/types/cli/ui/spinner.d.ts.map +1 -0
- package/dist/types/cli/ui/symbols.d.ts +47 -0
- package/dist/types/cli/ui/symbols.d.ts.map +1 -0
- package/dist/types/cli/ui/table.d.ts +23 -0
- package/dist/types/cli/ui/table.d.ts.map +1 -0
- package/dist/types/cli/ui/terminal.d.ts +7 -0
- package/dist/types/cli/ui/terminal.d.ts.map +1 -0
- package/dist/types/config/atomic-write.d.ts +69 -0
- package/dist/types/config/atomic-write.d.ts.map +1 -0
- package/dist/types/config/db-config.d.ts +134 -0
- package/dist/types/config/db-config.d.ts.map +1 -0
- package/dist/types/config/machine-config.d.ts +85 -0
- package/dist/types/config/machine-config.d.ts.map +1 -0
- package/dist/types/config/paths.d.ts +64 -0
- package/dist/types/config/paths.d.ts.map +1 -0
- package/dist/types/config/schema.d.ts +72 -0
- package/dist/types/config/schema.d.ts.map +1 -0
- package/dist/types/config/token.d.ts +63 -0
- package/dist/types/config/token.d.ts.map +1 -0
- package/dist/types/execution/canceller.d.ts +41 -0
- package/dist/types/execution/canceller.d.ts.map +1 -0
- package/dist/types/execution/database-lookup.d.ts +56 -0
- package/dist/types/execution/database-lookup.d.ts.map +1 -0
- package/dist/types/execution/dispatcher.d.ts +181 -0
- package/dist/types/execution/dispatcher.d.ts.map +1 -0
- package/dist/types/execution/function-effects.d.ts +209 -0
- package/dist/types/execution/function-effects.d.ts.map +1 -0
- package/dist/types/execution/introspection.d.ts +76 -0
- package/dist/types/execution/introspection.d.ts.map +1 -0
- package/dist/types/execution/migration-runner.d.ts +128 -0
- package/dist/types/execution/migration-runner.d.ts.map +1 -0
- package/dist/types/execution/non-tx-detector.d.ts +23 -0
- package/dist/types/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/types/execution/pool.d.ts +229 -0
- package/dist/types/execution/pool.d.ts.map +1 -0
- package/dist/types/execution/query-runner.d.ts +88 -0
- package/dist/types/execution/query-runner.d.ts.map +1 -0
- package/dist/types/execution/rate-limiter.d.ts +120 -0
- package/dist/types/execution/rate-limiter.d.ts.map +1 -0
- package/dist/types/execution/search-path.d.ts +161 -0
- package/dist/types/execution/search-path.d.ts.map +1 -0
- package/dist/types/execution/sql-parser.d.ts +195 -0
- package/dist/types/execution/sql-parser.d.ts.map +1 -0
- package/dist/types/execution/statement-classifier.d.ts +103 -0
- package/dist/types/execution/statement-classifier.d.ts.map +1 -0
- package/dist/types/execution/types.d.ts +189 -0
- package/dist/types/execution/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/permissions/auto-upgrade.d.ts +40 -0
- package/dist/types/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/types/permissions/checker.d.ts +53 -0
- package/dist/types/permissions/checker.d.ts.map +1 -0
- package/dist/types/permissions/manual-approval.d.ts +213 -0
- package/dist/types/permissions/manual-approval.d.ts.map +1 -0
- package/dist/types/permissions/plan-registry.d.ts +274 -0
- package/dist/types/permissions/plan-registry.d.ts.map +1 -0
- package/dist/types/permissions/role-policy.d.ts +217 -0
- package/dist/types/permissions/role-policy.d.ts.map +1 -0
- package/dist/types/permissions/types.d.ts +126 -0
- package/dist/types/permissions/types.d.ts.map +1 -0
- package/dist/types/protocol/constants.d.ts +72 -0
- package/dist/types/protocol/constants.d.ts.map +1 -0
- package/dist/types/protocol/envelope.d.ts +165 -0
- package/dist/types/protocol/envelope.d.ts.map +1 -0
- package/dist/types/protocol/errors.d.ts +33 -0
- package/dist/types/protocol/errors.d.ts.map +1 -0
- package/dist/types/protocol/messages.d.ts +327 -0
- package/dist/types/protocol/messages.d.ts.map +1 -0
- package/dist/types/protocol/serialize.d.ts +26 -0
- package/dist/types/protocol/serialize.d.ts.map +1 -0
- package/dist/types/protocol/validate.d.ts +135 -0
- package/dist/types/protocol/validate.d.ts.map +1 -0
- package/package.json +116 -4
- package/scripts/generate-systemd-service.mjs +117 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { type ChainVerifyResult } from './chain';
|
|
2
|
+
import type { AuditHead } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Stat identity of one log file.
|
|
5
|
+
*
|
|
6
|
+
* The timestamps are decimal nanoseconds (`bigint` stat) rather than millisecond
|
|
7
|
+
* floats: a float cannot hold `1.7e18` ns without rounding, and the rounding
|
|
8
|
+
* window is exactly where a "same second, same size" tamper would hide.
|
|
9
|
+
*/
|
|
10
|
+
export interface AuditFileIdentity {
|
|
11
|
+
size: number;
|
|
12
|
+
mtime_ns: string;
|
|
13
|
+
ctime_ns: string;
|
|
14
|
+
ino: string;
|
|
15
|
+
dev: string;
|
|
16
|
+
}
|
|
17
|
+
/** Reads a file's identity, or null when it cannot be stat'ed. */
|
|
18
|
+
export declare function statAuditFileIdentity(file: string): Promise<AuditFileIdentity | null>;
|
|
19
|
+
/** What a completed verification of one file leaves behind. */
|
|
20
|
+
export interface CachedAuditFile {
|
|
21
|
+
/** The file's stat identity at verification time. */
|
|
22
|
+
identity: AuditFileIdentity;
|
|
23
|
+
/** Records in the file, and how many of them were not parseable. */
|
|
24
|
+
records: number;
|
|
25
|
+
malformed_lines: number;
|
|
26
|
+
/** Sequence number the file's *first* record must carry. */
|
|
27
|
+
first_seq: number;
|
|
28
|
+
/** Hash the file's *first* record must chain from (genesis when it starts at 1). */
|
|
29
|
+
first_prev_hash: string;
|
|
30
|
+
/** Chain head after the last record of the file. */
|
|
31
|
+
seq: number;
|
|
32
|
+
last_hash: string;
|
|
33
|
+
chain_id: string;
|
|
34
|
+
/** Fingerprint of the signing key the entry was verified with. */
|
|
35
|
+
key_fingerprint: string;
|
|
36
|
+
verified_at: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The chain state an entry may be reused for. An entry is only ever equivalent
|
|
40
|
+
* to having read the file when it was verified from exactly this state.
|
|
41
|
+
*/
|
|
42
|
+
export interface CacheResumption {
|
|
43
|
+
/** Chain the caller requires, or null when it is not constrained yet. */
|
|
44
|
+
chainId: string | null;
|
|
45
|
+
/** Sequence number the file's first record must carry. */
|
|
46
|
+
seq: number;
|
|
47
|
+
/** Hash the file's first record must chain from. */
|
|
48
|
+
prevHash: string;
|
|
49
|
+
/** Fingerprint of the signing key in use now. */
|
|
50
|
+
keyFingerprint: string;
|
|
51
|
+
}
|
|
52
|
+
export declare class AuditVerifyCache {
|
|
53
|
+
private readonly entries;
|
|
54
|
+
/**
|
|
55
|
+
* A usable entry for this exact file revision and this exact resumption point,
|
|
56
|
+
* or null. Every field is load-bearing: see the trust model at the top of this
|
|
57
|
+
* module.
|
|
58
|
+
*/
|
|
59
|
+
get(file: string, identity: AuditFileIdentity, expect: CacheResumption): CachedAuditFile | null;
|
|
60
|
+
set(file: string, entry: CachedAuditFile): void;
|
|
61
|
+
/**
|
|
62
|
+
* Copy of the stored entries. Read-only: nothing can be invalidated through
|
|
63
|
+
* it, so a caller reporting on the cache cannot weaken it by accident.
|
|
64
|
+
*/
|
|
65
|
+
snapshot(): ReadonlyMap<string, CachedAuditFile>;
|
|
66
|
+
/** Drops entries for files that no longer exist (rotated out of retention). */
|
|
67
|
+
prune(liveFiles: Iterable<string>): void;
|
|
68
|
+
clear(): void;
|
|
69
|
+
get size(): number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The process-wide cache. Exposed so a caller that verifies the same directory
|
|
73
|
+
* repeatedly (an interactive shell running `doctor` over and over) shares one
|
|
74
|
+
* set of entries, and so a test can observe that production code used it.
|
|
75
|
+
*/
|
|
76
|
+
export declare function getSharedAuditVerifyCache(): AuditVerifyCache;
|
|
77
|
+
export interface CachedVerifyOptions {
|
|
78
|
+
/** Signing key. Defaults to `SW_AGENT_AUDIT_KEY` / `audit.key`. */
|
|
79
|
+
key?: Buffer | string;
|
|
80
|
+
/** Directory holding `audit.key`. Defaults to `dir`, then the agent home. */
|
|
81
|
+
keyDir?: string;
|
|
82
|
+
/** Expected head. Defaults to `head.json` in `dir`; pass `null` to skip. */
|
|
83
|
+
head?: AuditHead | null;
|
|
84
|
+
/** Stop after this many records read in this run. */
|
|
85
|
+
maxRecords?: number;
|
|
86
|
+
/** First sequence number the log must carry. Defaults to the anchored floor. */
|
|
87
|
+
expectedSeq?: number;
|
|
88
|
+
/** Cache to use. Defaults to the process-wide cache. */
|
|
89
|
+
cache?: AuditVerifyCache;
|
|
90
|
+
/** Set false to ignore and not populate the cache. Default true. */
|
|
91
|
+
useCache?: boolean;
|
|
92
|
+
}
|
|
93
|
+
export interface CachedVerifyResult extends ChainVerifyResult {
|
|
94
|
+
files: string[];
|
|
95
|
+
malformed_lines: number;
|
|
96
|
+
unreadable_files: string[];
|
|
97
|
+
head_present: boolean;
|
|
98
|
+
chain_id: string | null;
|
|
99
|
+
coverage?: {
|
|
100
|
+
from_seq: number;
|
|
101
|
+
to_seq: number;
|
|
102
|
+
records: number;
|
|
103
|
+
};
|
|
104
|
+
/** Every anchor that was consulted, in the order given. */
|
|
105
|
+
anchor_sources?: string[];
|
|
106
|
+
/** Which of them decided the verdict. */
|
|
107
|
+
anchor_source?: string | null;
|
|
108
|
+
/** Files skipped because they match a previous successful verification. */
|
|
109
|
+
cached_files: string[];
|
|
110
|
+
/** Files actually read in this run. */
|
|
111
|
+
verified_files: string[];
|
|
112
|
+
skipped_bytes: number;
|
|
113
|
+
verified_bytes: number;
|
|
114
|
+
/** True when nothing had to be read at all. */
|
|
115
|
+
cache_hit: boolean;
|
|
116
|
+
/** Newest verified-at stamp among the entries this run reused. */
|
|
117
|
+
cached_since?: string;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Verifies the log chronologically across rotated files, reusing verified files
|
|
121
|
+
* that have not changed. Fails closed: no key, no verdict.
|
|
122
|
+
*
|
|
123
|
+
* The verdict is identical to {@link verifyAuditLog}'s for any input the cache
|
|
124
|
+
* did not serve; `verify-streaming.test.ts` pins both against the same logs.
|
|
125
|
+
*/
|
|
126
|
+
export declare function verifyAuditDirCached(dir: string, opts?: CachedVerifyOptions): Promise<CachedVerifyResult>;
|
|
127
|
+
//# sourceMappingURL=verify-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-cache.d.ts","sourceRoot":"","sources":["../../../src/audit/verify-cache.ts"],"names":[],"mappings":"AAIA,OAAO,EAWL,KAAK,iBAAiB,EACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,SAAS,CAAC;AAyErD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,kEAAkE;AAClE,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAa3F;AA6BD,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAE9D;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,GAAG,eAAe,GAAG,IAAI;IAY/F,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAU/C;;;OAGG;IACH,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAIhD,+EAA+E;IAC/E,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAOxC,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAID;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,gBAAgB,CAE5D;AAED,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2EAA2E;IAC3E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uCAAuC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAiU7B"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { WakeChannelOptions } from './wake-channel';
|
|
2
|
+
import { AgentMessage, Role } from '../protocol/envelope';
|
|
3
|
+
import { InboundEnvelopeGuard } from '../protocol/validate';
|
|
4
|
+
import type { AuditSink } from '../audit/sink';
|
|
5
|
+
import { AgentSessionState, DataChannelCloseReason, EnvelopeAuthPolicy, MessageHandler, WakeEvent, StateChangeHandler } from './types';
|
|
6
|
+
import { MachineConfig } from '../config/machine-config';
|
|
7
|
+
export interface AgentSessionOptions {
|
|
8
|
+
/** Machine config (loaded by caller). */
|
|
9
|
+
machineConfig: MachineConfig;
|
|
10
|
+
/** Optional: returns configured database list from databases.config.json. */
|
|
11
|
+
getDatabases?: () => Array<{
|
|
12
|
+
db_alias: string;
|
|
13
|
+
database: string;
|
|
14
|
+
}>;
|
|
15
|
+
/** Message handler. Called for every incoming message on the data channel. */
|
|
16
|
+
onMessage: MessageHandler;
|
|
17
|
+
/** State change handler. Called whenever AgentSessionState changes. */
|
|
18
|
+
onStateChange?: StateChangeHandler;
|
|
19
|
+
/** Optional: custom wake channel options (for tests). */
|
|
20
|
+
wakeChannelOverrides?: Partial<WakeChannelOptions>;
|
|
21
|
+
/** Optional: abort signal. */
|
|
22
|
+
abortSignal?: AbortSignal;
|
|
23
|
+
/**
|
|
24
|
+
* Per-session envelope authentication policy. Omit to take every default from
|
|
25
|
+
* src/protocol/constants.ts (a MAC is required; the relay may negotiate up to
|
|
26
|
+
* `admin`).
|
|
27
|
+
*/
|
|
28
|
+
envelopeAuth?: EnvelopeAuthPolicy;
|
|
29
|
+
/** Audit sink for session lifecycle events. */
|
|
30
|
+
auditSink?: AuditSink;
|
|
31
|
+
/**
|
|
32
|
+
* Explicit authorisation to tear down a HEALTHY data channel because a wake
|
|
33
|
+
* event named a different `browser_session_id` (audit M-15).
|
|
34
|
+
*
|
|
35
|
+
* Omit it and the session is never replaced while healthy. When present, the
|
|
36
|
+
* caller decides — that is the point: session replacement must be a
|
|
37
|
+
* deliberate, policy-bearing decision, not an accident of message ordering. It
|
|
38
|
+
* must itself verify that the incoming session is authorised (for example by
|
|
39
|
+
* checking a token the cloud scoped to the new session); the agent cannot
|
|
40
|
+
* establish that on its own.
|
|
41
|
+
*/
|
|
42
|
+
authoriseSessionReplacement?: (event: WakeEvent, current: WakeEvent | undefined) => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Called when requests are being failed because the channel is being torn
|
|
45
|
+
* down, so the execution layer can cancel the backends. Receive the request
|
|
46
|
+
* ids and the close reason.
|
|
47
|
+
*/
|
|
48
|
+
onInFlightDrained?: (requestIds: string[], reason: DataChannelCloseReason) => void | Promise<void>;
|
|
49
|
+
/** Clock injection point for the churn budget. Defaults to `Date.now`. */
|
|
50
|
+
now?: () => number;
|
|
51
|
+
/** Session churn budget override. Every field defaults to DEFAULTS. */
|
|
52
|
+
sessionChangeBudget?: {
|
|
53
|
+
/** Minimum spacing between admitted replacements. */
|
|
54
|
+
cooldownMs?: number;
|
|
55
|
+
/** Window the count applies over. */
|
|
56
|
+
windowMs?: number;
|
|
57
|
+
/** Max admitted replacements per window. */
|
|
58
|
+
maxPerWindow?: number;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** What a wake event was permitted to do to the active data channel. */
|
|
62
|
+
export type SessionAdmission = {
|
|
63
|
+
action: 'adopt';
|
|
64
|
+
reason: string;
|
|
65
|
+
churn?: never;
|
|
66
|
+
} | {
|
|
67
|
+
action: 'noop';
|
|
68
|
+
reason: string;
|
|
69
|
+
churn?: never;
|
|
70
|
+
} | {
|
|
71
|
+
action: 'replace';
|
|
72
|
+
reason: string;
|
|
73
|
+
churn: ChurnVerdict;
|
|
74
|
+
} | {
|
|
75
|
+
action: 'reject';
|
|
76
|
+
reason: string;
|
|
77
|
+
churn: ChurnVerdict;
|
|
78
|
+
};
|
|
79
|
+
export interface ChurnVerdict {
|
|
80
|
+
allowed: boolean;
|
|
81
|
+
reason: string;
|
|
82
|
+
replacements: number;
|
|
83
|
+
}
|
|
84
|
+
export declare class AgentSession {
|
|
85
|
+
private wakeChannel?;
|
|
86
|
+
private dataChannel?;
|
|
87
|
+
private state;
|
|
88
|
+
private readonly opts;
|
|
89
|
+
private inFlightRequests;
|
|
90
|
+
private currentWakeEvent?;
|
|
91
|
+
private inboundGuard?;
|
|
92
|
+
private activeMessageHandler;
|
|
93
|
+
private activeStateChangeHandler?;
|
|
94
|
+
/** Explicit authoriser for tearing down a healthy session. Absent = deny. */
|
|
95
|
+
private readonly authoriseReplacement?;
|
|
96
|
+
private readonly now;
|
|
97
|
+
private readonly sessionPolicy;
|
|
98
|
+
/**
|
|
99
|
+
* Timestamps of session-change attempts inside the current window, oldest
|
|
100
|
+
* first. Bounded: entries are trimmed by age and the array is hard-capped at
|
|
101
|
+
* `maxPerWindow * 4`, so a churn flood cannot grow it without limit.
|
|
102
|
+
*/
|
|
103
|
+
private readonly sessionChanges;
|
|
104
|
+
constructor(opts: AgentSessionOptions);
|
|
105
|
+
/** Start the agent. Boots wake channel. Returns when fully started. */
|
|
106
|
+
start(): Promise<void>;
|
|
107
|
+
/** Graceful shutdown. Closes data channel, then wake channel. */
|
|
108
|
+
stop(): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Send a message out via the data channel.
|
|
111
|
+
* If data channel is closed, opens it first (using current wake event's token).
|
|
112
|
+
* Throws if no wake event has been received yet (i.e., no token to open data channel).
|
|
113
|
+
*/
|
|
114
|
+
send(msg: AgentMessage): Promise<void>;
|
|
115
|
+
/** Register a message handler (overrides the one from opts). */
|
|
116
|
+
setMessageHandler(handler: MessageHandler): void;
|
|
117
|
+
/**
|
|
118
|
+
* Resolve once this session's data channel has caught up: the send buffer is at
|
|
119
|
+
* or below its high-water mark and nothing earlier is still in flight.
|
|
120
|
+
*
|
|
121
|
+
* This is the transport signal a cursor fetch loop waits on (audit H-10), so
|
|
122
|
+
* the producer stops asking PostgreSQL for rows while the relay is behind.
|
|
123
|
+
* Hand it to the dispatcher as its `waitForDrain` option.
|
|
124
|
+
*
|
|
125
|
+
* Resolves immediately when there is no data channel — before the first wake
|
|
126
|
+
* event, or after the channel was torn down. A socket that will never drain
|
|
127
|
+
* again must not strand a producer, and the caller still observes the missing
|
|
128
|
+
* channel on its next {@link send}.
|
|
129
|
+
*/
|
|
130
|
+
waitForDrain(): Promise<void>;
|
|
131
|
+
/** Register a state change handler (overrides the one from opts). */
|
|
132
|
+
onStateChange(handler: StateChangeHandler): void;
|
|
133
|
+
/** Current state. */
|
|
134
|
+
getState(): AgentSessionState;
|
|
135
|
+
/**
|
|
136
|
+
* The envelope authenticator for the open data channel, or undefined before
|
|
137
|
+
* the first wake event. Exposed so diagnostics and tests can inspect the
|
|
138
|
+
* negotiated role set and replay-cache occupancy.
|
|
139
|
+
*/
|
|
140
|
+
getInboundGuard(): InboundEnvelopeGuard | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* Roles permitted for the current session. Empty until a wake event arrives,
|
|
143
|
+
* and empty — meaning nothing is permitted — if the relay negotiated none.
|
|
144
|
+
*/
|
|
145
|
+
getNegotiatedRoles(): Role[];
|
|
146
|
+
/**
|
|
147
|
+
* Build the per-session inbound authenticator: derive the MAC key from the
|
|
148
|
+
* data-channel token, intersect the roles the relay asked for with the local
|
|
149
|
+
* ceiling, and start with an empty replay cache.
|
|
150
|
+
*/
|
|
151
|
+
private buildInboundGuard;
|
|
152
|
+
/**
|
|
153
|
+
* Authenticate one inbound envelope, then hand it on. A rejected envelope
|
|
154
|
+
* never reaches `onMessage` — and therefore never reaches the dispatcher — and
|
|
155
|
+
* the data channel is torn down rather than left open to a peer that is
|
|
156
|
+
* forging authorization claims.
|
|
157
|
+
*/
|
|
158
|
+
private handleInboundMessage;
|
|
159
|
+
/** Tear down the current authenticator so no envelope can be admitted. */
|
|
160
|
+
private clearInboundGuard;
|
|
161
|
+
/**
|
|
162
|
+
* Track an in-flight request (for reconnect/resume).
|
|
163
|
+
* Called by execution engine before sending a request.
|
|
164
|
+
* Cleared when response is received.
|
|
165
|
+
*/
|
|
166
|
+
trackInFlight(requestId: string, msg: AgentMessage): void;
|
|
167
|
+
untrackInFlight(requestId: string): void;
|
|
168
|
+
getInFlight(): Map<string, AgentMessage>;
|
|
169
|
+
private handleWakeEvent;
|
|
170
|
+
/**
|
|
171
|
+
* Decide what a wake event is allowed to do to the active data channel.
|
|
172
|
+
*
|
|
173
|
+
* Audit M-15. The previous implementation closed the live channel and opened a
|
|
174
|
+
* new one for ANY wake event carrying a different `browser_session_id`, which
|
|
175
|
+
* made session takeover and forced disconnection a single message, and
|
|
176
|
+
* orphaned every in-flight query on the old channel. The policy is now:
|
|
177
|
+
*
|
|
178
|
+
* 1. Same session while healthy → no-op (a duplicate wake for work already
|
|
179
|
+
* being served).
|
|
180
|
+
* 2. A different `browser_session_id` while the current channel is HEALTHY
|
|
181
|
+
* (open or connecting) → REPLACED only when the caller supplied an explicit
|
|
182
|
+
* authoriser, otherwise REJECTED. Deny by default.
|
|
183
|
+
* 3. A different session while the current channel is DEAD (closed or error)
|
|
184
|
+
* → replaced, because there is nothing to take over and refusing would
|
|
185
|
+
* strand the agent.
|
|
186
|
+
* 4. No channel at all (first wake) → adopted.
|
|
187
|
+
*
|
|
188
|
+
* Session churn is additionally rate limited, so the 3 case cannot be turned
|
|
189
|
+
* into a cheaper denial of service than tearing the channel down once.
|
|
190
|
+
*/
|
|
191
|
+
private evaluateWakeEvent;
|
|
192
|
+
/**
|
|
193
|
+
* Bounded session-churn budget (audit M-15): at most
|
|
194
|
+
* DEFAULTS.SESSION_CHANGE_MAX_PER_WINDOW session changes inside any
|
|
195
|
+
* DEFAULTS.SESSION_CHANGE_WINDOW_MS window, and never two closer together than
|
|
196
|
+
* DEFAULTS.SESSION_CHANGE_COOLDOWN_MS. Deny by default when the budget is out.
|
|
197
|
+
*/
|
|
198
|
+
private checkChurnBudget;
|
|
199
|
+
/**
|
|
200
|
+
* Every session replacement is a security event: the active channel is being
|
|
201
|
+
* torn down by a party that merely asserted a different session id. Recorded
|
|
202
|
+
* as a `system` actor (no principal is authenticated for this) through the
|
|
203
|
+
* same sink the dispatcher uses.
|
|
204
|
+
*/
|
|
205
|
+
private auditSessionAdmission;
|
|
206
|
+
/**
|
|
207
|
+
* Fail in-flight work explicitly when the channel is being torn down.
|
|
208
|
+
*
|
|
209
|
+
* The old behaviour silently dropped the tracking map, so those queries ran to
|
|
210
|
+
* completion against a channel that could no longer carry their responses. They
|
|
211
|
+
* are now cancelled at the backend (best effort) and removed from tracking, and
|
|
212
|
+
* `onInFlightDrained` lets the caller observe exactly what was lost.
|
|
213
|
+
*/
|
|
214
|
+
private drainInFlight;
|
|
215
|
+
private processWakeEvent;
|
|
216
|
+
private updateState;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Roles the connector will accept for this session: the roles the relay
|
|
220
|
+
* negotiated, minus anything above the local ceiling, minus anything that is not
|
|
221
|
+
* a legal role. Returned in the canonical `ROLES` order.
|
|
222
|
+
*
|
|
223
|
+
* An absent, empty, or wholly invalid `allowed_roles` yields an empty set, which
|
|
224
|
+
* the guard treats as "no role is permitted" — there is no fallback to "all
|
|
225
|
+
* roles", because that fallback is the C-04 vulnerability.
|
|
226
|
+
*/
|
|
227
|
+
export declare function intersectNegotiatedRoles(negotiated: readonly unknown[] | undefined, ceiling?: Role): Role[];
|
|
228
|
+
//# sourceMappingURL=agent-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../../src/channels/agent-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { AgentMessage } from '../protocol/envelope';
|
|
2
|
+
import { DataChannelState, DataChannelCloseReason, MessageHandler } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Inbound frame ceiling enforced by the transport, in bytes.
|
|
5
|
+
*
|
|
6
|
+
* `ws` checks this against the *decompressed* message length as well as the
|
|
7
|
+
* frame length, so a compressed payload cannot inflate past it.
|
|
8
|
+
*/
|
|
9
|
+
export declare const MAX_INBOUND_FRAME_BYTES: 16777216;
|
|
10
|
+
/** RFC 6455 close code for a message that exceeded the negotiated limit. */
|
|
11
|
+
export declare const CLOSE_MESSAGE_TOO_BIG = 1009;
|
|
12
|
+
/**
|
|
13
|
+
* Safety margin applied to `data_channel_token_expires_at` before connecting.
|
|
14
|
+
*
|
|
15
|
+
* The token is spent on a TLS handshake plus a round trip; refusing slightly
|
|
16
|
+
* early is cheaper than a data channel that 401s mid-session.
|
|
17
|
+
*/
|
|
18
|
+
export declare const TOKEN_EXPIRY_SAFETY_MARGIN_MS = 5000;
|
|
19
|
+
/**
|
|
20
|
+
* Watermark above which the socket is considered back-pressured, in bytes.
|
|
21
|
+
*
|
|
22
|
+
* At or below this the relay is keeping up and the producer may keep sending.
|
|
23
|
+
* Above it the producer waits instead of pushing more bytes into a buffer that
|
|
24
|
+
* is already draining slower than it is fed.
|
|
25
|
+
*/
|
|
26
|
+
export declare const SEND_BUFFER_HIGH_WATER_MARK_BYTES: number;
|
|
27
|
+
/**
|
|
28
|
+
* Hard ceiling on unsent bytes, in bytes.
|
|
29
|
+
*
|
|
30
|
+
* Above the watermark a send is deferred, never rejected — but a producer that
|
|
31
|
+
* never gets a drain signal (a relay that has stopped reading) must not be able
|
|
32
|
+
* to grow the daemon's heap without limit. Past this the send fails closed with
|
|
33
|
+
* a `payload_invalid` ProtocolError, which the caller's error path reports
|
|
34
|
+
* terminally instead of silently truncating a stream.
|
|
35
|
+
*/
|
|
36
|
+
export declare const SEND_BUFFER_HARD_CAP_BYTES: 16777216;
|
|
37
|
+
/** Current send-buffer occupancy. Diagnostics only. */
|
|
38
|
+
export interface DataChannelSendStats {
|
|
39
|
+
/** Bytes the socket has accepted but not yet written. */
|
|
40
|
+
buffered: number;
|
|
41
|
+
/** Bytes handed to `ws.send` whose callback has not fired yet. */
|
|
42
|
+
pending: number;
|
|
43
|
+
/** Watermark at or below which the producer is unblocked. */
|
|
44
|
+
high_water_mark: number;
|
|
45
|
+
/** Ceiling past which a send is refused. */
|
|
46
|
+
hard_cap: number;
|
|
47
|
+
}
|
|
48
|
+
export interface DataChannelOptions {
|
|
49
|
+
/** Cloud URL, e.g. "wss://api.schemaweaver.dev". Plaintext schemes are refused. */
|
|
50
|
+
cloudUrl: string;
|
|
51
|
+
/** Short-lived data channel token from wake event. */
|
|
52
|
+
dataChannelToken: string;
|
|
53
|
+
/**
|
|
54
|
+
* Epoch ms at which `dataChannelToken` expires (from the wake event).
|
|
55
|
+
*
|
|
56
|
+
* Required: the client is the only party that can check it before the
|
|
57
|
+
* handshake, so an absent value is treated as a malformed credential.
|
|
58
|
+
*/
|
|
59
|
+
dataChannelTokenExpiresAt: number;
|
|
60
|
+
/** Agent ID for routing. */
|
|
61
|
+
agentId: string;
|
|
62
|
+
/** Browser session ID this channel serves. */
|
|
63
|
+
browserSessionId: string;
|
|
64
|
+
/** Incoming message handler. */
|
|
65
|
+
onMessage: MessageHandler;
|
|
66
|
+
/** Called when channel state changes. */
|
|
67
|
+
onStateChange?: (state: DataChannelState, reason?: DataChannelCloseReason, error?: string) => void;
|
|
68
|
+
/** Idle timeout in ms. Default 60_000. Set to 0 to disable. */
|
|
69
|
+
idleTimeoutMs?: number;
|
|
70
|
+
/** Optional: abort signal. */
|
|
71
|
+
abortSignal?: AbortSignal;
|
|
72
|
+
/**
|
|
73
|
+
* Allow a cleartext `ws:`/`http:` target. Only wire this to an explicit,
|
|
74
|
+
* non-persisted operator flag (`--insecure-transport`).
|
|
75
|
+
*/
|
|
76
|
+
allowInsecureTransport?: boolean;
|
|
77
|
+
}
|
|
78
|
+
export declare class DataChannel {
|
|
79
|
+
private state;
|
|
80
|
+
private ws?;
|
|
81
|
+
private idleTimer?;
|
|
82
|
+
private closeReason?;
|
|
83
|
+
private transportError?;
|
|
84
|
+
private readonly opts;
|
|
85
|
+
/** Bytes handed to `ws.send` whose completion callback has not fired yet. */
|
|
86
|
+
private pendingSendBytes;
|
|
87
|
+
/** Producers blocked in {@link DataChannel.waitForDrain}. */
|
|
88
|
+
private readonly drainWaiters;
|
|
89
|
+
private drainPollTimer?;
|
|
90
|
+
/**
|
|
91
|
+
* Safety net for a close that the peer never answers. Held so it can be
|
|
92
|
+
* cancelled the moment the close settles: a timer left armed here outlives
|
|
93
|
+
* the close it belongs to and would tear down the *next* connection opened on
|
|
94
|
+
* this instance (token rotation reconnects on the same object), and it also
|
|
95
|
+
* holds the process open for its whole backoff window.
|
|
96
|
+
*/
|
|
97
|
+
private closeSafetyTimer?;
|
|
98
|
+
constructor(opts: DataChannelOptions);
|
|
99
|
+
/** Open the WSS connection. Resolves when handshake completes. */
|
|
100
|
+
connect(): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Refuse to authenticate with an unusable data channel token (audit H-12).
|
|
103
|
+
*
|
|
104
|
+
* Runs before the handshake so an expired token is never presented, and
|
|
105
|
+
* reports through onStateChange so the operator sees why the channel refused.
|
|
106
|
+
*/
|
|
107
|
+
private assertTokenUsable;
|
|
108
|
+
/**
|
|
109
|
+
* Send a message, applying backpressure instead of rejecting a busy socket.
|
|
110
|
+
*
|
|
111
|
+
* Above {@link SEND_BUFFER_HIGH_WATER_MARK_BYTES} the send waits for the
|
|
112
|
+
* socket to drain. It used to throw `payload_invalid` here, which aborted the
|
|
113
|
+
* producer mid-stream and left the browser waiting for a `stream_end` that
|
|
114
|
+
* never came (audit H-10). A slow relay is a condition to wait out, not an
|
|
115
|
+
* error. Past {@link SEND_BUFFER_HARD_CAP_BYTES} the wait has demonstrably not
|
|
116
|
+
* been satisfied and the send fails closed so unbounded growth stays impossible.
|
|
117
|
+
*
|
|
118
|
+
* Concurrent callers are serialised through the gate: the drain condition is
|
|
119
|
+
* re-tested after every wait, and the check and the hand-off to `ws.send` sit
|
|
120
|
+
* in one synchronous step. Without that, N producers resuming from the same
|
|
121
|
+
* microtask batch would all observe an empty buffer and push N messages into
|
|
122
|
+
* the socket anyway — the gate would throttle nothing.
|
|
123
|
+
*
|
|
124
|
+
* Throws `channel_closed` if the channel is not open, or if it closes while
|
|
125
|
+
* this call is waiting to drain.
|
|
126
|
+
*/
|
|
127
|
+
send(msg: AgentMessage): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Resolve once the socket has caught up: `bufferedAmount` is at or below
|
|
130
|
+
* {@link SEND_BUFFER_HIGH_WATER_MARK_BYTES} and no earlier send is still in
|
|
131
|
+
* flight. Returns immediately when that is already true, and also when the
|
|
132
|
+
* channel is not open — a socket that will never drain again must not strand a
|
|
133
|
+
* producer, and the caller still observes the closed channel on its next send.
|
|
134
|
+
*
|
|
135
|
+
* This is the hook to hand to a cursor fetch loop so the producer stops asking
|
|
136
|
+
* PostgreSQL for more rows while the relay is behind:
|
|
137
|
+
*
|
|
138
|
+
* ```ts
|
|
139
|
+
* await queryRunner.runStreaming(payload, { waitForDrain: () => channel.waitForDrain(), ... });
|
|
140
|
+
* ```
|
|
141
|
+
*
|
|
142
|
+
* Every waiter is released when the channel leaves `open`, so a stalled relay
|
|
143
|
+
* is bounded by the idle timeout rather than by this promise.
|
|
144
|
+
*/
|
|
145
|
+
waitForDrain(): Promise<void>;
|
|
146
|
+
/** Current send-buffer occupancy against the watermark and hard cap. */
|
|
147
|
+
getSendBufferStats(): DataChannelSendStats;
|
|
148
|
+
private bufferedBytes;
|
|
149
|
+
/**
|
|
150
|
+
* True while the socket is behind. `pendingSendBytes` is included because a
|
|
151
|
+
* `ws.send` callback has not yet fired for it, so the bytes are still in
|
|
152
|
+
* flight and the producer should not run ahead of them.
|
|
153
|
+
*/
|
|
154
|
+
private drainPending;
|
|
155
|
+
/** True when queueing `incomingBytes` more would reach the cap `send` refuses at. */
|
|
156
|
+
private sendBufferExceeded;
|
|
157
|
+
/**
|
|
158
|
+
* Release every blocked producer, then stop polling. A single shared interval
|
|
159
|
+
* serves all waiters so N blocked producers cost one timer, not N.
|
|
160
|
+
*/
|
|
161
|
+
private notifyDrainWaiters;
|
|
162
|
+
private startDrainPoll;
|
|
163
|
+
private stopDrainPoll;
|
|
164
|
+
/**
|
|
165
|
+
* Release every blocked producer unconditionally: the channel is leaving
|
|
166
|
+
* `open`, so no amount of draining can satisfy them.
|
|
167
|
+
*/
|
|
168
|
+
private releaseDrainWaiters;
|
|
169
|
+
/** Graceful close. */
|
|
170
|
+
close(reason?: DataChannelCloseReason): Promise<void>;
|
|
171
|
+
/** Cancel the pending close safety net, if any. */
|
|
172
|
+
private cancelCloseSafety;
|
|
173
|
+
/** Force close (e.g. on fatal error). */
|
|
174
|
+
forceClose(reason: DataChannelCloseReason, error?: string): void;
|
|
175
|
+
/** Current state. */
|
|
176
|
+
getState(): DataChannelState;
|
|
177
|
+
/** Reset idle timer (called when activity occurs). */
|
|
178
|
+
private pingActivity;
|
|
179
|
+
private setState;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=data-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/data-channel.ts"],"names":[],"mappings":"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"}
|