nomoreide 0.2.0 → 0.3.2
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/README.md +12 -9
- package/bin/nomoreide.js +82 -0
- package/package.json +24 -132
- package/dist/cli/agents.d.ts +0 -2
- package/dist/cli/agents.js +0 -43
- package/dist/cli/agents.js.map +0 -1
- package/dist/cli/commands.d.ts +0 -11
- package/dist/cli/commands.js +0 -235
- package/dist/cli/commands.js.map +0 -1
- package/dist/cli/daemon.d.ts +0 -15
- package/dist/cli/daemon.js +0 -139
- package/dist/cli/daemon.js.map +0 -1
- package/dist/cli/database.d.ts +0 -2
- package/dist/cli/database.js +0 -145
- package/dist/cli/database.js.map +0 -1
- package/dist/cli/errors.d.ts +0 -2
- package/dist/cli/errors.js +0 -3
- package/dist/cli/errors.js.map +0 -1
- package/dist/cli/flags.d.ts +0 -1
- package/dist/cli/flags.js +0 -19
- package/dist/cli/flags.js.map +0 -1
- package/dist/cli/git.d.ts +0 -2
- package/dist/cli/git.js +0 -113
- package/dist/cli/git.js.map +0 -1
- package/dist/cli/profile.d.ts +0 -2
- package/dist/cli/profile.js +0 -171
- package/dist/cli/profile.js.map +0 -1
- package/dist/core/agent-context.d.ts +0 -9
- package/dist/core/agent-context.js +0 -43
- package/dist/core/agent-context.js.map +0 -1
- package/dist/core/agent-env/antigravity-reader.d.ts +0 -7
- package/dist/core/agent-env/antigravity-reader.js +0 -86
- package/dist/core/agent-env/antigravity-reader.js.map +0 -1
- package/dist/core/agent-env/availability.d.ts +0 -6
- package/dist/core/agent-env/availability.js +0 -79
- package/dist/core/agent-env/availability.js.map +0 -1
- package/dist/core/agent-env/claude-reader.d.ts +0 -7
- package/dist/core/agent-env/claude-reader.js +0 -101
- package/dist/core/agent-env/claude-reader.js.map +0 -1
- package/dist/core/agent-env/codex-reader.d.ts +0 -11
- package/dist/core/agent-env/codex-reader.js +0 -164
- package/dist/core/agent-env/codex-reader.js.map +0 -1
- package/dist/core/agent-env/index.d.ts +0 -9
- package/dist/core/agent-env/index.js +0 -29
- package/dist/core/agent-env/index.js.map +0 -1
- package/dist/core/agent-env/managed-plugins.d.ts +0 -18
- package/dist/core/agent-env/managed-plugins.js +0 -68
- package/dist/core/agent-env/managed-plugins.js.map +0 -1
- package/dist/core/agent-env/plugin-reader.d.ts +0 -9
- package/dist/core/agent-env/plugin-reader.js +0 -174
- package/dist/core/agent-env/plugin-reader.js.map +0 -1
- package/dist/core/agent-env/shared.d.ts +0 -26
- package/dist/core/agent-env/shared.js +0 -116
- package/dist/core/agent-env/shared.js.map +0 -1
- package/dist/core/agent-env/types.d.ts +0 -66
- package/dist/core/agent-env/types.js +0 -7
- package/dist/core/agent-env/types.js.map +0 -1
- package/dist/core/agent-env-actions.d.ts +0 -117
- package/dist/core/agent-env-actions.js +0 -273
- package/dist/core/agent-env-actions.js.map +0 -1
- package/dist/core/agent-env-plugin-uninstall.d.ts +0 -11
- package/dist/core/agent-env-plugin-uninstall.js +0 -189
- package/dist/core/agent-env-plugin-uninstall.js.map +0 -1
- package/dist/core/agent-env-writers.d.ts +0 -71
- package/dist/core/agent-env-writers.js +0 -632
- package/dist/core/agent-env-writers.js.map +0 -1
- package/dist/core/agent-profiles/apply.d.ts +0 -57
- package/dist/core/agent-profiles/apply.js +0 -209
- package/dist/core/agent-profiles/apply.js.map +0 -1
- package/dist/core/agent-profiles/builtin.d.ts +0 -8
- package/dist/core/agent-profiles/builtin.js +0 -33
- package/dist/core/agent-profiles/builtin.js.map +0 -1
- package/dist/core/agent-profiles/credentials.d.ts +0 -26
- package/dist/core/agent-profiles/credentials.js +0 -151
- package/dist/core/agent-profiles/credentials.js.map +0 -1
- package/dist/core/agent-profiles/debug-setup.d.ts +0 -18
- package/dist/core/agent-profiles/debug-setup.js +0 -237
- package/dist/core/agent-profiles/debug-setup.js.map +0 -1
- package/dist/core/agent-profiles/index.d.ts +0 -18
- package/dist/core/agent-profiles/index.js +0 -19
- package/dist/core/agent-profiles/index.js.map +0 -1
- package/dist/core/agent-profiles/plugin-apply.d.ts +0 -16
- package/dist/core/agent-profiles/plugin-apply.js +0 -383
- package/dist/core/agent-profiles/plugin-apply.js.map +0 -1
- package/dist/core/agent-profiles/plugin-bundle.d.ts +0 -6
- package/dist/core/agent-profiles/plugin-bundle.js +0 -32
- package/dist/core/agent-profiles/plugin-bundle.js.map +0 -1
- package/dist/core/agent-profiles/publication.d.ts +0 -105
- package/dist/core/agent-profiles/publication.js +0 -126
- package/dist/core/agent-profiles/publication.js.map +0 -1
- package/dist/core/agent-profiles/registry-auth.d.ts +0 -25
- package/dist/core/agent-profiles/registry-auth.js +0 -78
- package/dist/core/agent-profiles/registry-auth.js.map +0 -1
- package/dist/core/agent-profiles/registry-client.d.ts +0 -98
- package/dist/core/agent-profiles/registry-client.js +0 -109
- package/dist/core/agent-profiles/registry-client.js.map +0 -1
- package/dist/core/agent-profiles/registry-config.d.ts +0 -62
- package/dist/core/agent-profiles/registry-config.js +0 -221
- package/dist/core/agent-profiles/registry-config.js.map +0 -1
- package/dist/core/agent-profiles/registry-transfer.d.ts +0 -42
- package/dist/core/agent-profiles/registry-transfer.js +0 -133
- package/dist/core/agent-profiles/registry-transfer.js.map +0 -1
- package/dist/core/agent-profiles/store.d.ts +0 -62
- package/dist/core/agent-profiles/store.js +0 -479
- package/dist/core/agent-profiles/store.js.map +0 -1
- package/dist/core/agent-profiles/transfer.d.ts +0 -27
- package/dist/core/agent-profiles/transfer.js +0 -359
- package/dist/core/agent-profiles/transfer.js.map +0 -1
- package/dist/core/agent-profiles/types.d.ts +0 -364
- package/dist/core/agent-profiles/types.js +0 -79
- package/dist/core/agent-profiles/types.js.map +0 -1
- package/dist/core/agent-runtime.d.ts +0 -114
- package/dist/core/agent-runtime.js +0 -494
- package/dist/core/agent-runtime.js.map +0 -1
- package/dist/core/agent-sessions.d.ts +0 -46
- package/dist/core/agent-sessions.js +0 -109
- package/dist/core/agent-sessions.js.map +0 -1
- package/dist/core/agent-settings.d.ts +0 -31
- package/dist/core/agent-settings.js +0 -129
- package/dist/core/agent-settings.js.map +0 -1
- package/dist/core/agent-terminal.d.ts +0 -22
- package/dist/core/agent-terminal.js +0 -62
- package/dist/core/agent-terminal.js.map +0 -1
- package/dist/core/agent-transcripts.d.ts +0 -29
- package/dist/core/agent-transcripts.js +0 -281
- package/dist/core/agent-transcripts.js.map +0 -1
- package/dist/core/app-settings.d.ts +0 -74
- package/dist/core/app-settings.js +0 -118
- package/dist/core/app-settings.js.map +0 -1
- package/dist/core/app-version.d.ts +0 -2
- package/dist/core/app-version.js +0 -16
- package/dist/core/app-version.js.map +0 -1
- package/dist/core/approval-broker.d.ts +0 -29
- package/dist/core/approval-broker.js +0 -48
- package/dist/core/approval-broker.js.map +0 -1
- package/dist/core/claude-settings.d.ts +0 -18
- package/dist/core/claude-settings.js +0 -48
- package/dist/core/claude-settings.js.map +0 -1
- package/dist/core/cloudflare-actions.d.ts +0 -90
- package/dist/core/cloudflare-actions.js +0 -178
- package/dist/core/cloudflare-actions.js.map +0 -1
- package/dist/core/cloudflare-auth.d.ts +0 -61
- package/dist/core/cloudflare-auth.js +0 -149
- package/dist/core/cloudflare-auth.js.map +0 -1
- package/dist/core/cloudflare-context.d.ts +0 -2
- package/dist/core/cloudflare-context.js +0 -106
- package/dist/core/cloudflare-context.js.map +0 -1
- package/dist/core/cloudflare-manager.d.ts +0 -258
- package/dist/core/cloudflare-manager.js +0 -414
- package/dist/core/cloudflare-manager.js.map +0 -1
- package/dist/core/cloudflare-provider.d.ts +0 -64
- package/dist/core/cloudflare-provider.js +0 -348
- package/dist/core/cloudflare-provider.js.map +0 -1
- package/dist/core/config-files.d.ts +0 -27
- package/dist/core/config-files.js +0 -154
- package/dist/core/config-files.js.map +0 -1
- package/dist/core/config-store.d.ts +0 -181
- package/dist/core/config-store.js +0 -1026
- package/dist/core/config-store.js.map +0 -1
- package/dist/core/context-library.d.ts +0 -53
- package/dist/core/context-library.js +0 -605
- package/dist/core/context-library.js.map +0 -1
- package/dist/core/context-types.d.ts +0 -83
- package/dist/core/context-types.js +0 -9
- package/dist/core/context-types.js.map +0 -1
- package/dist/core/daemon-client.d.ts +0 -84
- package/dist/core/daemon-client.js +0 -156
- package/dist/core/daemon-client.js.map +0 -1
- package/dist/core/daemon-lifecycle.d.ts +0 -59
- package/dist/core/daemon-lifecycle.js +0 -147
- package/dist/core/daemon-lifecycle.js.map +0 -1
- package/dist/core/db/catalog.d.ts +0 -57
- package/dist/core/db/catalog.js +0 -38
- package/dist/core/db/catalog.js.map +0 -1
- package/dist/core/db/data-masking.d.ts +0 -3
- package/dist/core/db/data-masking.js +0 -14
- package/dist/core/db/data-masking.js.map +0 -1
- package/dist/core/db/driver.d.ts +0 -151
- package/dist/core/db/driver.js +0 -209
- package/dist/core/db/driver.js.map +0 -1
- package/dist/core/db/export.d.ts +0 -17
- package/dist/core/db/export.js +0 -67
- package/dist/core/db/export.js.map +0 -1
- package/dist/core/db/mysql-driver.d.ts +0 -33
- package/dist/core/db/mysql-driver.js +0 -364
- package/dist/core/db/mysql-driver.js.map +0 -1
- package/dist/core/db/postgres-driver.d.ts +0 -34
- package/dist/core/db/postgres-driver.js +0 -430
- package/dist/core/db/postgres-driver.js.map +0 -1
- package/dist/core/db/sqlite-driver.d.ts +0 -30
- package/dist/core/db/sqlite-driver.js +0 -301
- package/dist/core/db/sqlite-driver.js.map +0 -1
- package/dist/core/db-peek.d.ts +0 -99
- package/dist/core/db-peek.js +0 -322
- package/dist/core/db-peek.js.map +0 -1
- package/dist/core/db-write.d.ts +0 -45
- package/dist/core/db-write.js +0 -190
- package/dist/core/db-write.js.map +0 -1
- package/dist/core/docker-inspect.d.ts +0 -34
- package/dist/core/docker-inspect.js +0 -108
- package/dist/core/docker-inspect.js.map +0 -1
- package/dist/core/docker-resources.d.ts +0 -28
- package/dist/core/docker-resources.js +0 -59
- package/dist/core/docker-resources.js.map +0 -1
- package/dist/core/docker-service-runner.d.ts +0 -21
- package/dist/core/docker-service-runner.js +0 -80
- package/dist/core/docker-service-runner.js.map +0 -1
- package/dist/core/docker-stats.d.ts +0 -24
- package/dist/core/docker-stats.js +0 -76
- package/dist/core/docker-stats.js.map +0 -1
- package/dist/core/docker.d.ts +0 -75
- package/dist/core/docker.js +0 -219
- package/dist/core/docker.js.map +0 -1
- package/dist/core/env-file.d.ts +0 -24
- package/dist/core/env-file.js +0 -123
- package/dist/core/env-file.js.map +0 -1
- package/dist/core/env-runtime.d.ts +0 -32
- package/dist/core/env-runtime.js +0 -42
- package/dist/core/env-runtime.js.map +0 -1
- package/dist/core/error-inbox.d.ts +0 -91
- package/dist/core/error-inbox.js +0 -292
- package/dist/core/error-inbox.js.map +0 -1
- package/dist/core/extensions.d.ts +0 -78
- package/dist/core/extensions.js +0 -41
- package/dist/core/extensions.js.map +0 -1
- package/dist/core/external-terminal.d.ts +0 -60
- package/dist/core/external-terminal.js +0 -429
- package/dist/core/external-terminal.js.map +0 -1
- package/dist/core/fix-loop.d.ts +0 -55
- package/dist/core/fix-loop.js +0 -73
- package/dist/core/fix-loop.js.map +0 -1
- package/dist/core/git-actions.d.ts +0 -69
- package/dist/core/git-actions.js +0 -161
- package/dist/core/git-actions.js.map +0 -1
- package/dist/core/git-graph-layout.d.ts +0 -34
- package/dist/core/git-graph-layout.js +0 -94
- package/dist/core/git-graph-layout.js.map +0 -1
- package/dist/core/git-identity.d.ts +0 -78
- package/dist/core/git-identity.js +0 -178
- package/dist/core/git-identity.js.map +0 -1
- package/dist/core/git-manager.d.ts +0 -129
- package/dist/core/git-manager.js +0 -509
- package/dist/core/git-manager.js.map +0 -1
- package/dist/core/git-worktrees.d.ts +0 -35
- package/dist/core/git-worktrees.js +0 -142
- package/dist/core/git-worktrees.js.map +0 -1
- package/dist/core/github-auth.d.ts +0 -28
- package/dist/core/github-auth.js +0 -134
- package/dist/core/github-auth.js.map +0 -1
- package/dist/core/github-context.d.ts +0 -12
- package/dist/core/github-context.js +0 -36
- package/dist/core/github-context.js.map +0 -1
- package/dist/core/github-manager.d.ts +0 -230
- package/dist/core/github-manager.js +0 -324
- package/dist/core/github-manager.js.map +0 -1
- package/dist/core/host-metrics.d.ts +0 -41
- package/dist/core/host-metrics.js +0 -93
- package/dist/core/host-metrics.js.map +0 -1
- package/dist/core/http-inspector.d.ts +0 -20
- package/dist/core/http-inspector.js +0 -106
- package/dist/core/http-inspector.js.map +0 -1
- package/dist/core/jetbrains-import.d.ts +0 -85
- package/dist/core/jetbrains-import.js +0 -599
- package/dist/core/jetbrains-import.js.map +0 -1
- package/dist/core/log-sources.d.ts +0 -21
- package/dist/core/log-sources.js +0 -219
- package/dist/core/log-sources.js.map +0 -1
- package/dist/core/log-store.d.ts +0 -33
- package/dist/core/log-store.js +0 -94
- package/dist/core/log-store.js.map +0 -1
- package/dist/core/log-volume.d.ts +0 -41
- package/dist/core/log-volume.js +0 -81
- package/dist/core/log-volume.js.map +0 -1
- package/dist/core/mcp-auth.d.ts +0 -27
- package/dist/core/mcp-auth.js +0 -90
- package/dist/core/mcp-auth.js.map +0 -1
- package/dist/core/metrics-store.d.ts +0 -74
- package/dist/core/metrics-store.js +0 -187
- package/dist/core/metrics-store.js.map +0 -1
- package/dist/core/one-time-skills.d.ts +0 -27
- package/dist/core/one-time-skills.js +0 -185
- package/dist/core/one-time-skills.js.map +0 -1
- package/dist/core/port-utils.d.ts +0 -23
- package/dist/core/port-utils.js +0 -83
- package/dist/core/port-utils.js.map +0 -1
- package/dist/core/process-manager.d.ts +0 -99
- package/dist/core/process-manager.js +0 -738
- package/dist/core/process-manager.js.map +0 -1
- package/dist/core/process-tree.d.ts +0 -17
- package/dist/core/process-tree.js +0 -64
- package/dist/core/process-tree.js.map +0 -1
- package/dist/core/project-overview.d.ts +0 -52
- package/dist/core/project-overview.js +0 -122
- package/dist/core/project-overview.js.map +0 -1
- package/dist/core/providers/api-base.d.ts +0 -24
- package/dist/core/providers/api-base.js +0 -44
- package/dist/core/providers/api-base.js.map +0 -1
- package/dist/core/providers/credentials.d.ts +0 -93
- package/dist/core/providers/credentials.js +0 -88
- package/dist/core/providers/credentials.js.map +0 -1
- package/dist/core/providers/deploy-provider.d.ts +0 -327
- package/dist/core/providers/deploy-provider.js +0 -25
- package/dist/core/providers/deploy-provider.js.map +0 -1
- package/dist/core/providers/egress.d.ts +0 -58
- package/dist/core/providers/egress.js +0 -124
- package/dist/core/providers/egress.js.map +0 -1
- package/dist/core/providers/host-bridge.d.ts +0 -20
- package/dist/core/providers/host-bridge.js +0 -57
- package/dist/core/providers/host-bridge.js.map +0 -1
- package/dist/core/providers/host-provider.d.ts +0 -160
- package/dist/core/providers/host-provider.js +0 -2
- package/dist/core/providers/host-provider.js.map +0 -1
- package/dist/core/providers/oauth.d.ts +0 -97
- package/dist/core/providers/oauth.js +0 -238
- package/dist/core/providers/oauth.js.map +0 -1
- package/dist/core/providers/project-resolution.d.ts +0 -81
- package/dist/core/providers/project-resolution.js +0 -101
- package/dist/core/providers/project-resolution.js.map +0 -1
- package/dist/core/providers/registry.d.ts +0 -73
- package/dist/core/providers/registry.js +0 -53
- package/dist/core/providers/registry.js.map +0 -1
- package/dist/core/providers/strings.d.ts +0 -95
- package/dist/core/providers/strings.js +0 -59
- package/dist/core/providers/strings.js.map +0 -1
- package/dist/core/public-config.d.ts +0 -18
- package/dist/core/public-config.js +0 -76
- package/dist/core/public-config.js.map +0 -1
- package/dist/core/read-only-files.d.ts +0 -28
- package/dist/core/read-only-files.js +0 -93
- package/dist/core/read-only-files.js.map +0 -1
- package/dist/core/repo-create.d.ts +0 -11
- package/dist/core/repo-create.js +0 -54
- package/dist/core/repo-create.js.map +0 -1
- package/dist/core/repo-match.d.ts +0 -12
- package/dist/core/repo-match.js +0 -40
- package/dist/core/repo-match.js.map +0 -1
- package/dist/core/repo-onboard.d.ts +0 -297
- package/dist/core/repo-onboard.js +0 -667
- package/dist/core/repo-onboard.js.map +0 -1
- package/dist/core/repro-bundle.d.ts +0 -30
- package/dist/core/repro-bundle.js +0 -116
- package/dist/core/repro-bundle.js.map +0 -1
- package/dist/core/service-graph.d.ts +0 -50
- package/dist/core/service-graph.js +0 -143
- package/dist/core/service-graph.js.map +0 -1
- package/dist/core/service-health.d.ts +0 -10
- package/dist/core/service-health.js +0 -46
- package/dist/core/service-health.js.map +0 -1
- package/dist/core/service-log-source.d.ts +0 -9
- package/dist/core/service-log-source.js +0 -49
- package/dist/core/service-log-source.js.map +0 -1
- package/dist/core/service-registry.d.ts +0 -52
- package/dist/core/service-registry.js +0 -101
- package/dist/core/service-registry.js.map +0 -1
- package/dist/core/snapshot-manager.d.ts +0 -62
- package/dist/core/snapshot-manager.js +0 -219
- package/dist/core/snapshot-manager.js.map +0 -1
- package/dist/core/ssh-servers.d.ts +0 -89
- package/dist/core/ssh-servers.js +0 -251
- package/dist/core/ssh-servers.js.map +0 -1
- package/dist/core/ssh-service-runner.d.ts +0 -7
- package/dist/core/ssh-service-runner.js +0 -36
- package/dist/core/ssh-service-runner.js.map +0 -1
- package/dist/core/ssh-setup.d.ts +0 -11
- package/dist/core/ssh-setup.js +0 -49
- package/dist/core/ssh-setup.js.map +0 -1
- package/dist/core/system-processes.d.ts +0 -29
- package/dist/core/system-processes.js +0 -119
- package/dist/core/system-processes.js.map +0 -1
- package/dist/core/terminal-manager.d.ts +0 -123
- package/dist/core/terminal-manager.js +0 -470
- package/dist/core/terminal-manager.js.map +0 -1
- package/dist/core/terminal-session.d.ts +0 -122
- package/dist/core/terminal-session.js +0 -242
- package/dist/core/terminal-session.js.map +0 -1
- package/dist/core/terminal-spawn.d.ts +0 -26
- package/dist/core/terminal-spawn.js +0 -63
- package/dist/core/terminal-spawn.js.map +0 -1
- package/dist/core/test-runner.d.ts +0 -69
- package/dist/core/test-runner.js +0 -199
- package/dist/core/test-runner.js.map +0 -1
- package/dist/core/timeline-store.d.ts +0 -20
- package/dist/core/timeline-store.js +0 -36
- package/dist/core/timeline-store.js.map +0 -1
- package/dist/core/tool-call-store.d.ts +0 -25
- package/dist/core/tool-call-store.js +0 -62
- package/dist/core/tool-call-store.js.map +0 -1
- package/dist/core/types.d.ts +0 -312
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +0 -1
- package/dist/core/usage-history.d.ts +0 -81
- package/dist/core/usage-history.js +0 -149
- package/dist/core/usage-history.js.map +0 -1
- package/dist/core/vercel-actions.d.ts +0 -71
- package/dist/core/vercel-actions.js +0 -109
- package/dist/core/vercel-actions.js.map +0 -1
- package/dist/core/vercel-auth.d.ts +0 -40
- package/dist/core/vercel-auth.js +0 -88
- package/dist/core/vercel-auth.js.map +0 -1
- package/dist/core/vercel-context.d.ts +0 -2
- package/dist/core/vercel-context.js +0 -97
- package/dist/core/vercel-context.js.map +0 -1
- package/dist/core/vercel-manager.d.ts +0 -268
- package/dist/core/vercel-manager.js +0 -401
- package/dist/core/vercel-manager.js.map +0 -1
- package/dist/core/vercel-oauth.d.ts +0 -37
- package/dist/core/vercel-oauth.js +0 -57
- package/dist/core/vercel-oauth.js.map +0 -1
- package/dist/core/vercel-provider.d.ts +0 -23
- package/dist/core/vercel-provider.js +0 -276
- package/dist/core/vercel-provider.js.map +0 -1
- package/dist/core/vultr-actions.d.ts +0 -52
- package/dist/core/vultr-actions.js +0 -62
- package/dist/core/vultr-actions.js.map +0 -1
- package/dist/core/vultr-auth.d.ts +0 -32
- package/dist/core/vultr-auth.js +0 -54
- package/dist/core/vultr-auth.js.map +0 -1
- package/dist/core/vultr-context.d.ts +0 -2
- package/dist/core/vultr-context.js +0 -55
- package/dist/core/vultr-context.js.map +0 -1
- package/dist/core/vultr-manager.d.ts +0 -113
- package/dist/core/vultr-manager.js +0 -170
- package/dist/core/vultr-manager.js.map +0 -1
- package/dist/core/vultr-provider.d.ts +0 -69
- package/dist/core/vultr-provider.js +0 -226
- package/dist/core/vultr-provider.js.map +0 -1
- package/dist/core/workflow-triggers.d.ts +0 -139
- package/dist/core/workflow-triggers.js +0 -208
- package/dist/core/workflow-triggers.js.map +0 -1
- package/dist/core/workflows.d.ts +0 -290
- package/dist/core/workflows.js +0 -190
- package/dist/core/workflows.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -66
- package/dist/index.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -37
- package/dist/mcp/server.js +0 -84
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/tools/agent-env.d.ts +0 -9
- package/dist/mcp/tools/agent-env.js +0 -160
- package/dist/mcp/tools/agent-env.js.map +0 -1
- package/dist/mcp/tools/agent-profiles.d.ts +0 -9
- package/dist/mcp/tools/agent-profiles.js +0 -197
- package/dist/mcp/tools/agent-profiles.js.map +0 -1
- package/dist/mcp/tools/agent-registry.d.ts +0 -9
- package/dist/mcp/tools/agent-registry.js +0 -81
- package/dist/mcp/tools/agent-registry.js.map +0 -1
- package/dist/mcp/tools/agent.d.ts +0 -4
- package/dist/mcp/tools/agent.js +0 -29
- package/dist/mcp/tools/agent.js.map +0 -1
- package/dist/mcp/tools/context.d.ts +0 -36
- package/dist/mcp/tools/context.js +0 -69
- package/dist/mcp/tools/context.js.map +0 -1
- package/dist/mcp/tools/database.d.ts +0 -9
- package/dist/mcp/tools/database.js +0 -166
- package/dist/mcp/tools/database.js.map +0 -1
- package/dist/mcp/tools/docs.d.ts +0 -29
- package/dist/mcp/tools/docs.js +0 -134
- package/dist/mcp/tools/docs.js.map +0 -1
- package/dist/mcp/tools/errors.d.ts +0 -12
- package/dist/mcp/tools/errors.js +0 -47
- package/dist/mcp/tools/errors.js.map +0 -1
- package/dist/mcp/tools/git.d.ts +0 -4
- package/dist/mcp/tools/git.js +0 -209
- package/dist/mcp/tools/git.js.map +0 -1
- package/dist/mcp/tools/github.d.ts +0 -4
- package/dist/mcp/tools/github.js +0 -196
- package/dist/mcp/tools/github.js.map +0 -1
- package/dist/mcp/tools/index.d.ts +0 -36
- package/dist/mcp/tools/index.js +0 -61
- package/dist/mcp/tools/index.js.map +0 -1
- package/dist/mcp/tools/onboard.d.ts +0 -10
- package/dist/mcp/tools/onboard.js +0 -30
- package/dist/mcp/tools/onboard.js.map +0 -1
- package/dist/mcp/tools/provider.d.ts +0 -16
- package/dist/mcp/tools/provider.js +0 -110
- package/dist/mcp/tools/provider.js.map +0 -1
- package/dist/mcp/tools/services.d.ts +0 -13
- package/dist/mcp/tools/services.js +0 -204
- package/dist/mcp/tools/services.js.map +0 -1
- package/dist/mcp/tools/snapshots.d.ts +0 -8
- package/dist/mcp/tools/snapshots.js +0 -37
- package/dist/mcp/tools/snapshots.js.map +0 -1
- package/dist/mcp/tools/terminal.d.ts +0 -4
- package/dist/mcp/tools/terminal.js +0 -38
- package/dist/mcp/tools/terminal.js.map +0 -1
- package/dist/tui/app.d.ts +0 -22
- package/dist/tui/app.js +0 -138
- package/dist/tui/app.js.map +0 -1
- package/dist/web/agent-info.d.ts +0 -82
- package/dist/web/agent-info.js +0 -775
- package/dist/web/agent-info.js.map +0 -1
- package/dist/web/client/assets/SymbolsNerdFontMono-Regular-DDncdh2F.ttf +0 -0
- package/dist/web/client/assets/code-editor-TE0sjFGO.js +0 -30
- package/dist/web/client/assets/context-graph-B9MnBpp6.js +0 -7
- package/dist/web/client/assets/core-DhEqZVGG.js +0 -1
- package/dist/web/client/assets/event-BK_86lmQ.js +0 -1
- package/dist/web/client/assets/index-BhDAhmA1.js +0 -1
- package/dist/web/client/assets/index-CSo__8A6.css +0 -1
- package/dist/web/client/assets/index-DAJvBqn9.js +0 -352
- package/dist/web/client/assets/nomoreide-favicon-Ds7Tgj9p.svg +0 -24
- package/dist/web/client/assets/system-process-table-DetWu0Gj.js +0 -1
- package/dist/web/client/assets/window-DlR023_X.js +0 -1
- package/dist/web/client/index.html +0 -44
- package/dist/web/dashboard.d.ts +0 -61
- package/dist/web/dashboard.js +0 -221
- package/dist/web/dashboard.js.map +0 -1
- package/dist/web/directories.d.ts +0 -27
- package/dist/web/directories.js +0 -81
- package/dist/web/directories.js.map +0 -1
- package/dist/web/http-utils.d.ts +0 -13
- package/dist/web/http-utils.js +0 -72
- package/dist/web/http-utils.js.map +0 -1
- package/dist/web/routes/agent-chat-routes.d.ts +0 -3
- package/dist/web/routes/agent-chat-routes.js +0 -186
- package/dist/web/routes/agent-chat-routes.js.map +0 -1
- package/dist/web/routes/agent-env-routes.d.ts +0 -9
- package/dist/web/routes/agent-env-routes.js +0 -86
- package/dist/web/routes/agent-env-routes.js.map +0 -1
- package/dist/web/routes/agent-profile-routes.d.ts +0 -8
- package/dist/web/routes/agent-profile-routes.js +0 -211
- package/dist/web/routes/agent-profile-routes.js.map +0 -1
- package/dist/web/routes/agent-registry-routes.d.ts +0 -2
- package/dist/web/routes/agent-registry-routes.js +0 -375
- package/dist/web/routes/agent-registry-routes.js.map +0 -1
- package/dist/web/routes/agent-routes.d.ts +0 -3
- package/dist/web/routes/agent-routes.js +0 -73
- package/dist/web/routes/agent-routes.js.map +0 -1
- package/dist/web/routes/agent-settings-routes.d.ts +0 -8
- package/dist/web/routes/agent-settings-routes.js +0 -67
- package/dist/web/routes/agent-settings-routes.js.map +0 -1
- package/dist/web/routes/context-library-routes.d.ts +0 -2
- package/dist/web/routes/context-library-routes.js +0 -139
- package/dist/web/routes/context-library-routes.js.map +0 -1
- package/dist/web/routes/context.d.ts +0 -73
- package/dist/web/routes/context.js +0 -48
- package/dist/web/routes/context.js.map +0 -1
- package/dist/web/routes/dashboard-routes.d.ts +0 -3
- package/dist/web/routes/dashboard-routes.js +0 -47
- package/dist/web/routes/dashboard-routes.js.map +0 -1
- package/dist/web/routes/database-routes.d.ts +0 -3
- package/dist/web/routes/database-routes.js +0 -341
- package/dist/web/routes/database-routes.js.map +0 -1
- package/dist/web/routes/docker-routes.d.ts +0 -7
- package/dist/web/routes/docker-routes.js +0 -122
- package/dist/web/routes/docker-routes.js.map +0 -1
- package/dist/web/routes/errors-routes.d.ts +0 -3
- package/dist/web/routes/errors-routes.js +0 -77
- package/dist/web/routes/errors-routes.js.map +0 -1
- package/dist/web/routes/extensions-routes.d.ts +0 -14
- package/dist/web/routes/extensions-routes.js +0 -21
- package/dist/web/routes/extensions-routes.js.map +0 -1
- package/dist/web/routes/git-routes.d.ts +0 -3
- package/dist/web/routes/git-routes.js +0 -598
- package/dist/web/routes/git-routes.js.map +0 -1
- package/dist/web/routes/github-context.d.ts +0 -11
- package/dist/web/routes/github-context.js +0 -34
- package/dist/web/routes/github-context.js.map +0 -1
- package/dist/web/routes/github-routes.d.ts +0 -2
- package/dist/web/routes/github-routes.js +0 -699
- package/dist/web/routes/github-routes.js.map +0 -1
- package/dist/web/routes/host-routes.d.ts +0 -2
- package/dist/web/routes/host-routes.js +0 -188
- package/dist/web/routes/host-routes.js.map +0 -1
- package/dist/web/routes/index.d.ts +0 -10
- package/dist/web/routes/index.js +0 -72
- package/dist/web/routes/index.js.map +0 -1
- package/dist/web/routes/jetbrains-import-routes.d.ts +0 -2
- package/dist/web/routes/jetbrains-import-routes.js +0 -121
- package/dist/web/routes/jetbrains-import-routes.js.map +0 -1
- package/dist/web/routes/log-sources-routes.d.ts +0 -6
- package/dist/web/routes/log-sources-routes.js +0 -102
- package/dist/web/routes/log-sources-routes.js.map +0 -1
- package/dist/web/routes/metrics-routes.d.ts +0 -3
- package/dist/web/routes/metrics-routes.js +0 -60
- package/dist/web/routes/metrics-routes.js.map +0 -1
- package/dist/web/routes/onboard-routes.d.ts +0 -9
- package/dist/web/routes/onboard-routes.js +0 -146
- package/dist/web/routes/onboard-routes.js.map +0 -1
- package/dist/web/routes/overview-routes.d.ts +0 -2
- package/dist/web/routes/overview-routes.js +0 -36
- package/dist/web/routes/overview-routes.js.map +0 -1
- package/dist/web/routes/provider-routes.d.ts +0 -2
- package/dist/web/routes/provider-routes.js +0 -558
- package/dist/web/routes/provider-routes.js.map +0 -1
- package/dist/web/routes/service-routes.d.ts +0 -3
- package/dist/web/routes/service-routes.js +0 -511
- package/dist/web/routes/service-routes.js.map +0 -1
- package/dist/web/routes/settings-routes.d.ts +0 -2
- package/dist/web/routes/settings-routes.js +0 -151
- package/dist/web/routes/settings-routes.js.map +0 -1
- package/dist/web/routes/shell-routes.d.ts +0 -22
- package/dist/web/routes/shell-routes.js +0 -75
- package/dist/web/routes/shell-routes.js.map +0 -1
- package/dist/web/routes/skills-routes.d.ts +0 -2
- package/dist/web/routes/skills-routes.js +0 -49
- package/dist/web/routes/skills-routes.js.map +0 -1
- package/dist/web/routes/snapshot-routes.d.ts +0 -8
- package/dist/web/routes/snapshot-routes.js +0 -194
- package/dist/web/routes/snapshot-routes.js.map +0 -1
- package/dist/web/routes/ssh-server-routes.d.ts +0 -10
- package/dist/web/routes/ssh-server-routes.js +0 -163
- package/dist/web/routes/ssh-server-routes.js.map +0 -1
- package/dist/web/routes/terminal-routes.d.ts +0 -7
- package/dist/web/routes/terminal-routes.js +0 -313
- package/dist/web/routes/terminal-routes.js.map +0 -1
- package/dist/web/routes/workflow-routes.d.ts +0 -8
- package/dist/web/routes/workflow-routes.js +0 -45
- package/dist/web/routes/workflow-routes.js.map +0 -1
- package/dist/web/routes/workflow-trigger-routes.d.ts +0 -9
- package/dist/web/routes/workflow-trigger-routes.js +0 -78
- package/dist/web/routes/workflow-trigger-routes.js.map +0 -1
- package/dist/web/server.d.ts +0 -31
- package/dist/web/server.js +0 -325
- package/dist/web/server.js.map +0 -1
- package/dist/web/service-tester.d.ts +0 -16
- package/dist/web/service-tester.js +0 -107
- package/dist/web/service-tester.js.map +0 -1
- package/dist/web/static-assets.d.ts +0 -9
- package/dist/web/static-assets.js +0 -77
- package/dist/web/static-assets.js.map +0 -1
- package/dist/web/usage-info.d.ts +0 -56
- package/dist/web/usage-info.js +0 -265
- package/dist/web/usage-info.js.map +0 -1
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare function isSensitiveDatabaseColumn(name: string): boolean;
|
|
2
|
-
export declare function maskDatabaseRow(row: Record<string, unknown>): Record<string, unknown>;
|
|
3
|
-
export declare function maskDatabaseRows(rows: Array<Record<string, unknown>>): Array<Record<string, unknown>>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const SENSITIVE_COLUMN = /(^|_)(password|passwd|pwd|secret|token|api_?key|access_?key|private_?key|credential|authorization|cookie)(_|$)/i;
|
|
2
|
-
export function isSensitiveDatabaseColumn(name) {
|
|
3
|
-
return SENSITIVE_COLUMN.test(name);
|
|
4
|
-
}
|
|
5
|
-
export function maskDatabaseRow(row) {
|
|
6
|
-
return Object.fromEntries(Object.entries(row).map(([column, value]) => [
|
|
7
|
-
column,
|
|
8
|
-
isSensitiveDatabaseColumn(column) && value !== null ? "••••" : value,
|
|
9
|
-
]));
|
|
10
|
-
}
|
|
11
|
-
export function maskDatabaseRows(rows) {
|
|
12
|
-
return rows.map(maskDatabaseRow);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data-masking.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-masking.js","sourceRoot":"","sources":["../../../src/core/db/data-masking.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GACpB,iHAAiH,CAAC;AAEpH,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAA4B;IAC1D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM;QACN,yBAAyB,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;KACrE,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAoC;IAEpC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACnC,CAAC"}
|
package/dist/core/db/driver.d.ts
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import type { DatabaseEngine } from "../types.js";
|
|
2
|
-
import type { DatabaseCapabilities, DatabaseObject, DatabaseObjectDetails, DatabaseObjectKind, DatabaseSchema } from "./catalog.js";
|
|
3
|
-
/** A table the user can browse. `schema` is undefined for SQLite. */
|
|
4
|
-
export interface TableRef {
|
|
5
|
-
schema?: string;
|
|
6
|
-
name: string;
|
|
7
|
-
/** Stable key used by the API/UI, e.g. "public.users" or "users". */
|
|
8
|
-
qualifiedName: string;
|
|
9
|
-
}
|
|
10
|
-
export interface ColumnInfo {
|
|
11
|
-
name: string;
|
|
12
|
-
dataType: string;
|
|
13
|
-
nullable: boolean;
|
|
14
|
-
primaryKey: boolean;
|
|
15
|
-
}
|
|
16
|
-
export interface RowSample {
|
|
17
|
-
columns: ColumnInfo[];
|
|
18
|
-
rows: Array<Record<string, unknown>>;
|
|
19
|
-
/** Number of rows returned (≤ requested limit). */
|
|
20
|
-
rowCount: number;
|
|
21
|
-
/** The page window actually applied, echoed back so the UI can paginate. */
|
|
22
|
-
limit: number;
|
|
23
|
-
offset: number;
|
|
24
|
-
}
|
|
25
|
-
export type RowFilterOperator = "eq" | "neq" | "contains" | "startsWith" | "endsWith" | "gt" | "gte" | "lt" | "lte" | "isNull" | "isNotNull";
|
|
26
|
-
export interface RowFilter {
|
|
27
|
-
column: string;
|
|
28
|
-
operator: RowFilterOperator;
|
|
29
|
-
value?: string;
|
|
30
|
-
}
|
|
31
|
-
export interface RowSort {
|
|
32
|
-
column: string;
|
|
33
|
-
direction: "asc" | "desc";
|
|
34
|
-
}
|
|
35
|
-
export interface RowBrowseQuery {
|
|
36
|
-
filters?: RowFilter[];
|
|
37
|
-
sort?: RowSort;
|
|
38
|
-
}
|
|
39
|
-
export interface StreamRowsOptions {
|
|
40
|
-
batchSize?: number;
|
|
41
|
-
signal?: AbortSignal;
|
|
42
|
-
}
|
|
43
|
-
/** Result of running a user-authored read-only query through the SQL console. */
|
|
44
|
-
export interface QueryResult {
|
|
45
|
-
columns: ColumnInfo[];
|
|
46
|
-
rows: Array<Record<string, unknown>>;
|
|
47
|
-
/** Number of rows returned (≤ the row cap). */
|
|
48
|
-
rowCount: number;
|
|
49
|
-
/** True when the query produced more rows than the cap; the UI flags it. */
|
|
50
|
-
truncated: boolean;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Read-only access to a single database. Implementations enforce read-only at
|
|
54
|
-
* the connection/transaction level: `runQuery` accepts user SQL but the server
|
|
55
|
-
* itself rejects any write — there is no write passthrough.
|
|
56
|
-
*/
|
|
57
|
-
export interface DbDriver {
|
|
58
|
-
readonly engine: DatabaseEngine;
|
|
59
|
-
/** Throws if the connection cannot be established. */
|
|
60
|
-
testConnection(): Promise<void>;
|
|
61
|
-
listTables(): Promise<TableRef[]>;
|
|
62
|
-
capabilities(): DatabaseCapabilities;
|
|
63
|
-
listSchemas(): Promise<DatabaseSchema[]>;
|
|
64
|
-
listObjects(schema: string, kinds?: DatabaseObjectKind[]): Promise<DatabaseObject[]>;
|
|
65
|
-
describeObject(object: DatabaseObject): Promise<DatabaseObjectDetails>;
|
|
66
|
-
sampleRows(table: TableRef, limit: number, offset?: number, query?: RowBrowseQuery): Promise<RowSample>;
|
|
67
|
-
/** Stream a stable read-only snapshot in bounded batches. */
|
|
68
|
-
streamRows(table: TableRef, columns: ColumnInfo[], options?: StreamRowsOptions): AsyncIterable<Array<Record<string, unknown>>>;
|
|
69
|
-
/** Run an arbitrary SELECT-style statement in a read-only context. */
|
|
70
|
-
runQuery(sql: string, maxRows: number): Promise<QueryResult>;
|
|
71
|
-
close(): Promise<void>;
|
|
72
|
-
}
|
|
73
|
-
/** Outcome of a write run — previewed (rolled back) or committed. */
|
|
74
|
-
export interface WriteResult {
|
|
75
|
-
/** Rows the statement affected (INSERT/UPDATE/DELETE) or returned (SELECT). */
|
|
76
|
-
affectedRows: number;
|
|
77
|
-
/** Rows produced by a SELECT or RETURNING clause, if any. */
|
|
78
|
-
rows: Array<Record<string, unknown>>;
|
|
79
|
-
columns: ColumnInfo[];
|
|
80
|
-
/** True when committed; false when this was a rolled-back preview. */
|
|
81
|
-
committed: boolean;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Write-capable view of a database, deliberately separate from `DbDriver` so a
|
|
85
|
-
* read-only consumer can never reach a write. A writable connection is only
|
|
86
|
-
* ever constructed by the `DbWrite` module, behind a per-connection unlock.
|
|
87
|
-
*/
|
|
88
|
-
export type PrimaryKeyValue = string | number | boolean;
|
|
89
|
-
export type PrimaryKeyTuple = Record<string, PrimaryKeyValue>;
|
|
90
|
-
export interface DeleteRowsOptions {
|
|
91
|
-
table: TableRef;
|
|
92
|
-
primaryKeys: string[];
|
|
93
|
-
tuples: PrimaryKeyTuple[];
|
|
94
|
-
commit: boolean;
|
|
95
|
-
/** When supplied for a commit, a mismatch must roll the transaction back. */
|
|
96
|
-
expectedAffectedRows?: number;
|
|
97
|
-
}
|
|
98
|
-
export interface DbWriteDriver extends DbDriver {
|
|
99
|
-
/**
|
|
100
|
-
* Run a statement inside a read-write transaction. When `commit` is false the
|
|
101
|
-
* transaction is rolled back, so the caller can preview affected rows without
|
|
102
|
-
* persisting anything.
|
|
103
|
-
*/
|
|
104
|
-
executeWrite(sql: string, commit: boolean): Promise<WriteResult>;
|
|
105
|
-
/** Delete exact primary-key tuples using bound values in one transaction. */
|
|
106
|
-
deleteRows(options: DeleteRowsOptions): Promise<WriteResult>;
|
|
107
|
-
}
|
|
108
|
-
/** Throw inside the active transaction when a guarded commit changed unexpectedly. */
|
|
109
|
-
export declare function assertExpectedDeleteCount(options: DeleteRowsOptions, affectedRows: number): void;
|
|
110
|
-
/** Defence in depth: a catalog-sourced identifier must still be well-formed. */
|
|
111
|
-
export declare function assertSafeIdentifier(value: string): string;
|
|
112
|
-
/** Clamp a caller-supplied row limit into a sane range. */
|
|
113
|
-
export declare function clampLimit(limit: number | undefined, fallback?: number): number;
|
|
114
|
-
/** Clamp a caller-supplied page offset to a non-negative integer. */
|
|
115
|
-
export declare function clampOffset(offset: number | undefined): number;
|
|
116
|
-
/** Validate browser query controls against columns read from the live catalog. */
|
|
117
|
-
export declare function normalizeRowBrowseQuery(columns: ColumnInfo[], query: RowBrowseQuery | undefined): RowBrowseQuery;
|
|
118
|
-
/** Build a parameterized WHERE/ORDER BY fragment shared by all Node drivers. */
|
|
119
|
-
export declare function buildRowBrowseClauses(columns: ColumnInfo[], query: RowBrowseQuery | undefined, quoteIdentifier: (value: string) => string, placeholder: (index: number) => string): {
|
|
120
|
-
whereSql: string;
|
|
121
|
-
orderBySql: string;
|
|
122
|
-
values: string[];
|
|
123
|
-
};
|
|
124
|
-
/**
|
|
125
|
-
* Normalize user SQL before we wrap it in a row-capping subquery: trim and drop
|
|
126
|
-
* a single trailing semicolon. Drivers run the result inside a read-only
|
|
127
|
-
* transaction, so a write would be rejected server-side regardless.
|
|
128
|
-
*/
|
|
129
|
-
export declare function prepareUserQuery(sql: string): string;
|
|
130
|
-
/** The leading keyword of a statement, lowercased (e.g. "select", "delete"). */
|
|
131
|
-
export declare function leadingKeyword(sql: string): string;
|
|
132
|
-
/** True for plain read statements; anything else is treated as a write. */
|
|
133
|
-
export declare function isReadStatement(sql: string): boolean;
|
|
134
|
-
/**
|
|
135
|
-
* Whether a write can be safely previewed by running it in a transaction and
|
|
136
|
-
* rolling back. True everywhere except MySQL DDL, which auto-commits — there a
|
|
137
|
-
* "preview" would actually apply the change, so we refuse to dry-run it.
|
|
138
|
-
*/
|
|
139
|
-
export declare function canPreviewWrite(engine: DatabaseEngine, sql: string): boolean;
|
|
140
|
-
/**
|
|
141
|
-
* Query results carry no catalog metadata, so synthesize ColumnInfo from the
|
|
142
|
-
* result's field names — preserving order even when zero rows come back.
|
|
143
|
-
*/
|
|
144
|
-
export declare function columnsFromNames(names: string[]): ColumnInfo[];
|
|
145
|
-
/**
|
|
146
|
-
* Drivers select `*` and return whatever the row shapes are. JSON.stringify
|
|
147
|
-
* can't serialize Buffers/BigInts/Dates cleanly, so normalize to display-safe
|
|
148
|
-
* primitives before they leave the core layer.
|
|
149
|
-
*/
|
|
150
|
-
export declare function normalizeCell(value: unknown): unknown;
|
|
151
|
-
export declare function normalizeRow(row: Record<string, unknown>): Record<string, unknown>;
|
package/dist/core/db/driver.js
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
/** Throw inside the active transaction when a guarded commit changed unexpectedly. */
|
|
2
|
-
export function assertExpectedDeleteCount(options, affectedRows) {
|
|
3
|
-
if (options.commit &&
|
|
4
|
-
options.expectedAffectedRows !== undefined &&
|
|
5
|
-
affectedRows !== options.expectedAffectedRows) {
|
|
6
|
-
throw new Error(`Delete affected ${affectedRows} rows; expected ${options.expectedAffectedRows}. The transaction was rolled back.`);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
/** Identifiers we accept after resolving against the live catalog. */
|
|
10
|
-
const SAFE_IDENTIFIER = /^[A-Za-z0-9_$]+$/;
|
|
11
|
-
/** Defence in depth: a catalog-sourced identifier must still be well-formed. */
|
|
12
|
-
export function assertSafeIdentifier(value) {
|
|
13
|
-
if (!SAFE_IDENTIFIER.test(value)) {
|
|
14
|
-
throw new Error(`Unsafe identifier: ${value}`);
|
|
15
|
-
}
|
|
16
|
-
return value;
|
|
17
|
-
}
|
|
18
|
-
/** Clamp a caller-supplied row limit into a sane range. */
|
|
19
|
-
export function clampLimit(limit, fallback = 100) {
|
|
20
|
-
if (!Number.isFinite(limit) || limit === undefined)
|
|
21
|
-
return fallback;
|
|
22
|
-
return Math.min(Math.max(Math.trunc(limit), 1), 5_000);
|
|
23
|
-
}
|
|
24
|
-
/** Clamp a caller-supplied page offset to a non-negative integer. */
|
|
25
|
-
export function clampOffset(offset) {
|
|
26
|
-
if (!Number.isFinite(offset) || offset === undefined)
|
|
27
|
-
return 0;
|
|
28
|
-
return Math.max(Math.trunc(offset), 0);
|
|
29
|
-
}
|
|
30
|
-
const ROW_FILTER_OPERATORS = new Set([
|
|
31
|
-
"eq",
|
|
32
|
-
"neq",
|
|
33
|
-
"contains",
|
|
34
|
-
"startsWith",
|
|
35
|
-
"endsWith",
|
|
36
|
-
"gt",
|
|
37
|
-
"gte",
|
|
38
|
-
"lt",
|
|
39
|
-
"lte",
|
|
40
|
-
"isNull",
|
|
41
|
-
"isNotNull",
|
|
42
|
-
]);
|
|
43
|
-
/** Validate browser query controls against columns read from the live catalog. */
|
|
44
|
-
export function normalizeRowBrowseQuery(columns, query) {
|
|
45
|
-
const columnNames = new Set(columns.map((column) => column.name));
|
|
46
|
-
const filters = query?.filters ?? [];
|
|
47
|
-
if (filters.length > 8)
|
|
48
|
-
throw new Error("A maximum of 8 row filters is supported.");
|
|
49
|
-
const normalizedFilters = filters.map((filter) => {
|
|
50
|
-
if (!columnNames.has(filter.column)) {
|
|
51
|
-
throw new Error(`Unknown filter column: ${filter.column}`);
|
|
52
|
-
}
|
|
53
|
-
if (!ROW_FILTER_OPERATORS.has(filter.operator)) {
|
|
54
|
-
throw new Error(`Unsupported row filter operator: ${filter.operator}`);
|
|
55
|
-
}
|
|
56
|
-
const unary = filter.operator === "isNull" || filter.operator === "isNotNull";
|
|
57
|
-
const value = unary ? undefined : filter.value;
|
|
58
|
-
if (!unary && value === undefined)
|
|
59
|
-
throw new Error("This row filter requires a value.");
|
|
60
|
-
if (value !== undefined && value.length > 2_000) {
|
|
61
|
-
throw new Error("Row filter values must be 2,000 characters or fewer.");
|
|
62
|
-
}
|
|
63
|
-
return { column: filter.column, operator: filter.operator, value };
|
|
64
|
-
});
|
|
65
|
-
const sort = query?.sort;
|
|
66
|
-
if (sort && !columnNames.has(sort.column)) {
|
|
67
|
-
throw new Error(`Unknown sort column: ${sort.column}`);
|
|
68
|
-
}
|
|
69
|
-
if (sort && sort.direction !== "asc" && sort.direction !== "desc") {
|
|
70
|
-
throw new Error("Sort direction must be asc or desc.");
|
|
71
|
-
}
|
|
72
|
-
return { filters: normalizedFilters, sort };
|
|
73
|
-
}
|
|
74
|
-
/** Build a parameterized WHERE/ORDER BY fragment shared by all Node drivers. */
|
|
75
|
-
export function buildRowBrowseClauses(columns, query, quoteIdentifier, placeholder) {
|
|
76
|
-
const normalized = normalizeRowBrowseQuery(columns, query);
|
|
77
|
-
const values = [];
|
|
78
|
-
const filters = (normalized.filters ?? []).map((filter) => {
|
|
79
|
-
const column = quoteIdentifier(filter.column);
|
|
80
|
-
if (filter.operator === "isNull")
|
|
81
|
-
return `${column} IS NULL`;
|
|
82
|
-
if (filter.operator === "isNotNull")
|
|
83
|
-
return `${column} IS NOT NULL`;
|
|
84
|
-
let value = filter.value ?? "";
|
|
85
|
-
let operator = "=";
|
|
86
|
-
if (filter.operator === "neq")
|
|
87
|
-
operator = "<>";
|
|
88
|
-
else if (filter.operator === "gt")
|
|
89
|
-
operator = ">";
|
|
90
|
-
else if (filter.operator === "gte")
|
|
91
|
-
operator = ">=";
|
|
92
|
-
else if (filter.operator === "lt")
|
|
93
|
-
operator = "<";
|
|
94
|
-
else if (filter.operator === "lte")
|
|
95
|
-
operator = "<=";
|
|
96
|
-
else if (["contains", "startsWith", "endsWith"].includes(filter.operator)) {
|
|
97
|
-
value = value.replaceAll("!", "!!").replaceAll("%", "!%").replaceAll("_", "!_");
|
|
98
|
-
if (filter.operator !== "startsWith")
|
|
99
|
-
value = `%${value}`;
|
|
100
|
-
if (filter.operator !== "endsWith")
|
|
101
|
-
value = `${value}%`;
|
|
102
|
-
operator = "LIKE";
|
|
103
|
-
}
|
|
104
|
-
values.push(value);
|
|
105
|
-
const likeEscape = operator === "LIKE" ? " ESCAPE '!'" : "";
|
|
106
|
-
return `${column} ${operator} ${placeholder(values.length)}${likeEscape}`;
|
|
107
|
-
});
|
|
108
|
-
const orderColumns = [];
|
|
109
|
-
if (normalized.sort)
|
|
110
|
-
orderColumns.push(normalized.sort);
|
|
111
|
-
for (const column of columns.filter((candidate) => candidate.primaryKey)) {
|
|
112
|
-
if (column.name !== normalized.sort?.column) {
|
|
113
|
-
orderColumns.push({ column: column.name, direction: "asc" });
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return {
|
|
117
|
-
whereSql: filters.length > 0 ? ` WHERE ${filters.join(" AND ")}` : "",
|
|
118
|
-
orderBySql: orderColumns.length > 0
|
|
119
|
-
? ` ORDER BY ${orderColumns.map((sort) => `${quoteIdentifier(sort.column)} ${sort.direction.toUpperCase()}`).join(", ")}`
|
|
120
|
-
: "",
|
|
121
|
-
values,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Normalize user SQL before we wrap it in a row-capping subquery: trim and drop
|
|
126
|
-
* a single trailing semicolon. Drivers run the result inside a read-only
|
|
127
|
-
* transaction, so a write would be rejected server-side regardless.
|
|
128
|
-
*/
|
|
129
|
-
export function prepareUserQuery(sql) {
|
|
130
|
-
const trimmed = sql.trim().replace(/;\s*$/, "").trim();
|
|
131
|
-
if (!trimmed)
|
|
132
|
-
throw new Error("Query is empty.");
|
|
133
|
-
return trimmed;
|
|
134
|
-
}
|
|
135
|
-
/** The leading keyword of a statement, lowercased (e.g. "select", "delete"). */
|
|
136
|
-
export function leadingKeyword(sql) {
|
|
137
|
-
return /^\s*([a-z]+)/i.exec(sql)?.[1]?.toLowerCase() ?? "";
|
|
138
|
-
}
|
|
139
|
-
/** Statements we treat as reads — routed through the read-only query path. */
|
|
140
|
-
const READ_KEYWORDS = new Set([
|
|
141
|
-
"select",
|
|
142
|
-
"show",
|
|
143
|
-
"explain",
|
|
144
|
-
"pragma",
|
|
145
|
-
"describe",
|
|
146
|
-
"desc",
|
|
147
|
-
]);
|
|
148
|
-
/** True for plain read statements; anything else is treated as a write. */
|
|
149
|
-
export function isReadStatement(sql) {
|
|
150
|
-
return READ_KEYWORDS.has(leadingKeyword(sql));
|
|
151
|
-
}
|
|
152
|
-
/** DDL implicitly commits on MySQL, so a rolled-back preview can't be trusted. */
|
|
153
|
-
const DDL_KEYWORDS = new Set([
|
|
154
|
-
"create",
|
|
155
|
-
"alter",
|
|
156
|
-
"drop",
|
|
157
|
-
"truncate",
|
|
158
|
-
"rename",
|
|
159
|
-
"grant",
|
|
160
|
-
"revoke",
|
|
161
|
-
]);
|
|
162
|
-
/**
|
|
163
|
-
* Whether a write can be safely previewed by running it in a transaction and
|
|
164
|
-
* rolling back. True everywhere except MySQL DDL, which auto-commits — there a
|
|
165
|
-
* "preview" would actually apply the change, so we refuse to dry-run it.
|
|
166
|
-
*/
|
|
167
|
-
export function canPreviewWrite(engine, sql) {
|
|
168
|
-
if (engine === "mysql" && DDL_KEYWORDS.has(leadingKeyword(sql)))
|
|
169
|
-
return false;
|
|
170
|
-
return true;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Query results carry no catalog metadata, so synthesize ColumnInfo from the
|
|
174
|
-
* result's field names — preserving order even when zero rows come back.
|
|
175
|
-
*/
|
|
176
|
-
export function columnsFromNames(names) {
|
|
177
|
-
return names.map((name) => ({
|
|
178
|
-
name,
|
|
179
|
-
dataType: "",
|
|
180
|
-
nullable: true,
|
|
181
|
-
primaryKey: false,
|
|
182
|
-
}));
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Drivers select `*` and return whatever the row shapes are. JSON.stringify
|
|
186
|
-
* can't serialize Buffers/BigInts/Dates cleanly, so normalize to display-safe
|
|
187
|
-
* primitives before they leave the core layer.
|
|
188
|
-
*/
|
|
189
|
-
export function normalizeCell(value) {
|
|
190
|
-
if (value === null || value === undefined)
|
|
191
|
-
return null;
|
|
192
|
-
if (typeof value === "bigint")
|
|
193
|
-
return value.toString();
|
|
194
|
-
if (value instanceof Date)
|
|
195
|
-
return value.toISOString();
|
|
196
|
-
if (Buffer.isBuffer(value))
|
|
197
|
-
return `\\x${value.toString("hex")}`;
|
|
198
|
-
if (typeof value === "object")
|
|
199
|
-
return value; // arrays / json columns
|
|
200
|
-
return value;
|
|
201
|
-
}
|
|
202
|
-
export function normalizeRow(row) {
|
|
203
|
-
const out = {};
|
|
204
|
-
for (const [key, value] of Object.entries(row)) {
|
|
205
|
-
out[key] = normalizeCell(value);
|
|
206
|
-
}
|
|
207
|
-
return out;
|
|
208
|
-
}
|
|
209
|
-
//# sourceMappingURL=driver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/core/db/driver.ts"],"names":[],"mappings":"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"}
|
package/dist/core/db/export.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { ColumnInfo } from "./driver.js";
|
|
2
|
-
export type DatabaseExportFormat = "csv" | "json";
|
|
3
|
-
export interface DatabaseExportWriter {
|
|
4
|
-
write(chunk: string): Promise<void>;
|
|
5
|
-
}
|
|
6
|
-
export interface DatabaseExportProgress {
|
|
7
|
-
rowsWritten: number;
|
|
8
|
-
bytesWritten: number;
|
|
9
|
-
}
|
|
10
|
-
export interface DatabaseExportSummary extends DatabaseExportProgress {
|
|
11
|
-
maskedColumns: string[];
|
|
12
|
-
}
|
|
13
|
-
export declare function writeDatabaseExport(writer: DatabaseExportWriter, format: DatabaseExportFormat, columns: ColumnInfo[], batches: AsyncIterable<Array<Record<string, unknown>>>, options?: {
|
|
14
|
-
signal?: AbortSignal;
|
|
15
|
-
onProgress?: (progress: DatabaseExportProgress) => void;
|
|
16
|
-
}): Promise<DatabaseExportSummary>;
|
|
17
|
-
export declare function csvCell(value: unknown): string;
|
package/dist/core/db/export.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { isSensitiveDatabaseColumn, maskDatabaseRow } from "./data-masking.js";
|
|
2
|
-
export async function writeDatabaseExport(writer, format, columns, batches, options = {}) {
|
|
3
|
-
const names = columns.map((column) => column.name);
|
|
4
|
-
const maskedColumns = names.filter(isSensitiveDatabaseColumn);
|
|
5
|
-
let rowsWritten = 0;
|
|
6
|
-
let bytesWritten = 0;
|
|
7
|
-
let firstJsonRow = true;
|
|
8
|
-
async function write(chunk) {
|
|
9
|
-
throwIfAborted(options.signal);
|
|
10
|
-
await writer.write(chunk);
|
|
11
|
-
bytesWritten += Buffer.byteLength(chunk);
|
|
12
|
-
}
|
|
13
|
-
if (format === "csv")
|
|
14
|
-
await write(`${names.map(csvCell).join(",")}\r\n`);
|
|
15
|
-
else
|
|
16
|
-
await write("[");
|
|
17
|
-
for await (const batch of batches) {
|
|
18
|
-
for (const rawRow of batch) {
|
|
19
|
-
throwIfAborted(options.signal);
|
|
20
|
-
const row = maskDatabaseRow(rawRow);
|
|
21
|
-
if (format === "csv") {
|
|
22
|
-
await write(`${names.map((name) => csvCell(row[name])).join(",")}\r\n`);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
const normalized = Object.fromEntries(names.map((name) => [name, stableValue(row[name] ?? null)]));
|
|
26
|
-
await write(`${firstJsonRow ? "" : ","}${JSON.stringify(normalized)}`);
|
|
27
|
-
firstJsonRow = false;
|
|
28
|
-
}
|
|
29
|
-
rowsWritten += 1;
|
|
30
|
-
options.onProgress?.({ rowsWritten, bytesWritten });
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
if (format === "json")
|
|
34
|
-
await write("]\n");
|
|
35
|
-
return { rowsWritten, bytesWritten, maskedColumns };
|
|
36
|
-
}
|
|
37
|
-
export function csvCell(value) {
|
|
38
|
-
let text = exportScalar(value);
|
|
39
|
-
if (typeof value === "string" && /^[\t\r]|^\s*[=+\-@]/.test(text))
|
|
40
|
-
text = `'${text}`;
|
|
41
|
-
return /[",\r\n]/.test(text) ? `"${text.replaceAll('"', '""')}"` : text;
|
|
42
|
-
}
|
|
43
|
-
function exportScalar(value) {
|
|
44
|
-
if (value === null || value === undefined)
|
|
45
|
-
return "";
|
|
46
|
-
if (typeof value === "object")
|
|
47
|
-
return stableStringify(value);
|
|
48
|
-
return String(value);
|
|
49
|
-
}
|
|
50
|
-
function stableStringify(value) {
|
|
51
|
-
return JSON.stringify(stableValue(value));
|
|
52
|
-
}
|
|
53
|
-
function stableValue(value) {
|
|
54
|
-
if (Array.isArray(value))
|
|
55
|
-
return value.map(stableValue);
|
|
56
|
-
if (value && typeof value === "object") {
|
|
57
|
-
return Object.fromEntries(Object.entries(value)
|
|
58
|
-
.sort(([left], [right]) => left.localeCompare(right))
|
|
59
|
-
.map(([key, entry]) => [key, stableValue(entry)]));
|
|
60
|
-
}
|
|
61
|
-
return value;
|
|
62
|
-
}
|
|
63
|
-
function throwIfAborted(signal) {
|
|
64
|
-
if (signal?.aborted)
|
|
65
|
-
throw new DOMException("Database export cancelled", "AbortError");
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=export.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/core/db/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { DatabaseEngine } from "../types.js";
|
|
2
|
-
import { type DatabaseCapabilities, type DatabaseObject, type DatabaseObjectDetails, type DatabaseObjectKind, type DatabaseSchema } from "./catalog.js";
|
|
3
|
-
import { type ColumnInfo, type DeleteRowsOptions, type DbDriver, type DbWriteDriver, type QueryResult, type RowBrowseQuery, type RowSample, type StreamRowsOptions, type TableRef, type WriteResult } from "./driver.js";
|
|
4
|
-
/**
|
|
5
|
-
* MySQL / MariaDB driver. Read operations run in a `START TRANSACTION READ
|
|
6
|
-
* ONLY` block, then roll back. A driver constructed with `{ writable: true }`
|
|
7
|
-
* (only the DbWrite module does this) exposes the guarded `executeWrite` path.
|
|
8
|
-
*/
|
|
9
|
-
export declare class MysqlDriver implements DbDriver, DbWriteDriver {
|
|
10
|
-
private readonly url;
|
|
11
|
-
readonly engine: DatabaseEngine;
|
|
12
|
-
private poolPromise;
|
|
13
|
-
private readonly writable;
|
|
14
|
-
constructor(url: string, options?: {
|
|
15
|
-
writable?: boolean;
|
|
16
|
-
});
|
|
17
|
-
private pool;
|
|
18
|
-
private withReadOnly;
|
|
19
|
-
testConnection(): Promise<void>;
|
|
20
|
-
listTables(): Promise<TableRef[]>;
|
|
21
|
-
capabilities(): DatabaseCapabilities;
|
|
22
|
-
listSchemas(): Promise<DatabaseSchema[]>;
|
|
23
|
-
listObjects(schema: string, kinds?: DatabaseObjectKind[]): Promise<DatabaseObject[]>;
|
|
24
|
-
describeObject(object: DatabaseObject): Promise<DatabaseObjectDetails>;
|
|
25
|
-
private createScriptFor;
|
|
26
|
-
sampleRows(table: TableRef, limit: number, offset?: number, query?: RowBrowseQuery): Promise<RowSample>;
|
|
27
|
-
streamRows(table: TableRef, columns: ColumnInfo[], options?: StreamRowsOptions): AsyncIterable<Array<Record<string, unknown>>>;
|
|
28
|
-
runQuery(sql: string, maxRows: number): Promise<QueryResult>;
|
|
29
|
-
executeWrite(sql: string, commit: boolean): Promise<WriteResult>;
|
|
30
|
-
deleteRows(options: DeleteRowsOptions): Promise<WriteResult>;
|
|
31
|
-
private columnsFor;
|
|
32
|
-
close(): Promise<void>;
|
|
33
|
-
}
|