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,101 +0,0 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { GitManager } from "../git-manager.js";
|
|
4
|
-
import { matchRegisteredRepository } from "../repo-match.js";
|
|
5
|
-
/**
|
|
6
|
-
* The project this repository deploys, in order of confidence:
|
|
7
|
-
*
|
|
8
|
-
* 1. an explicit pin the user chose in the dashboard;
|
|
9
|
-
* 2. the vendor CLI's own link file — the same file the CLI trusts, so a linked
|
|
10
|
-
* repo needs no configuration here at all;
|
|
11
|
-
* 3. a lookup by the repo's git remote, which is how the provider itself keys
|
|
12
|
-
* an imported project.
|
|
13
|
-
*
|
|
14
|
-
* Returns undefined rather than guessing when none of those answer, since the
|
|
15
|
-
* wrong project would show deployments for unrelated code.
|
|
16
|
-
*/
|
|
17
|
-
export async function resolveProviderProject(options) {
|
|
18
|
-
const { providerId, hooks, config, gitCwd, getProject, findByRepoUrl } = options;
|
|
19
|
-
const git = new GitManager(gitCwd);
|
|
20
|
-
const topLevel = await git.root().catch(() => gitCwd);
|
|
21
|
-
const repository = await matchRegisteredRepository(config, topLevel).catch(() => undefined);
|
|
22
|
-
const pinned = repository?.providerProjects?.[providerId];
|
|
23
|
-
if (pinned) {
|
|
24
|
-
const project = await getProject(pinned).catch(() => undefined);
|
|
25
|
-
if (project)
|
|
26
|
-
return project;
|
|
27
|
-
}
|
|
28
|
-
if (hooks.linkFile) {
|
|
29
|
-
const linkedId = await readLinkedProjectId(topLevel, hooks.linkFile);
|
|
30
|
-
if (linkedId) {
|
|
31
|
-
const project = await getProject(linkedId).catch(() => undefined);
|
|
32
|
-
if (project)
|
|
33
|
-
return project;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
const remoteUrl = await git.remoteUrl("origin").catch(() => null);
|
|
37
|
-
const repoUrl = remoteUrl ? hooks.repoUrl(remoteUrl) : null;
|
|
38
|
-
if (repoUrl) {
|
|
39
|
-
const project = await findByRepoUrl(repoUrl).catch(() => undefined);
|
|
40
|
-
if (project)
|
|
41
|
-
return project;
|
|
42
|
-
}
|
|
43
|
-
return undefined;
|
|
44
|
-
}
|
|
45
|
-
/** The project id recorded by the vendor CLI's link command, when present. */
|
|
46
|
-
export async function readLinkedProjectId(repoRoot, linkFile) {
|
|
47
|
-
try {
|
|
48
|
-
const raw = await readFile(join(repoRoot, ...linkFile.path.split("/")), "utf8");
|
|
49
|
-
const parsed = JSON.parse(raw);
|
|
50
|
-
const value = parsed[linkFile.field];
|
|
51
|
-
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
return undefined;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/** The working directory provider operations run against — mirrors the GitHub seam. */
|
|
58
|
-
export function selectedProviderCwd(config, fallbackCwd) {
|
|
59
|
-
const repository = config.gitRepositories.find((entry) => entry.name === config.selectedGitRepository)
|
|
60
|
-
?? config.gitRepositories[0];
|
|
61
|
-
return repository?.activeWorktreePath ?? repository?.path ?? fallbackCwd;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* The scope to use when the user has never chosen one.
|
|
65
|
-
*
|
|
66
|
-
* Vercel puts a personal account's projects under an implicit "<name>'s
|
|
67
|
-
* projects" team, not under the account itself, so an unscoped client lists
|
|
68
|
-
* nothing at all — which reads as "no projects" rather than "wrong scope". Any
|
|
69
|
-
* provider with an implicit default scope has this problem. A `cli` connection
|
|
70
|
-
* avoids it by inheriting the CLI's own scope; a browser sign-in or a pasted
|
|
71
|
-
* token has nothing to inherit, so the sole scope is adopted here and
|
|
72
|
-
* persisted, making this a one-time lookup.
|
|
73
|
-
*
|
|
74
|
-
* With several scopes there is no unambiguous answer, so none is chosen and the
|
|
75
|
-
* dashboard's scope switcher is left to ask. Failures are swallowed: an
|
|
76
|
-
* unscoped client still works, and the caller's own request should be what
|
|
77
|
-
* surfaces an auth problem.
|
|
78
|
-
*/
|
|
79
|
-
export async function adoptSoleScope(options) {
|
|
80
|
-
const fromCli = options.source === "cli";
|
|
81
|
-
// A `cli` connection to a CLI that selects its own scope has already had it
|
|
82
|
-
// inherited, so there is nothing to adopt and persisting would override the
|
|
83
|
-
// vendor's own `switch` command from then on.
|
|
84
|
-
if (fromCli && (options.cliSelectsScope ?? true))
|
|
85
|
-
return undefined;
|
|
86
|
-
try {
|
|
87
|
-
const scopes = await options.listScopes();
|
|
88
|
-
if (scopes.length !== 1)
|
|
89
|
-
return undefined;
|
|
90
|
-
const [scope] = scopes;
|
|
91
|
-
// Adopted in memory either way; written to config only when nothing in the
|
|
92
|
-
// user's environment has a better claim to the answer.
|
|
93
|
-
if (!fromCli)
|
|
94
|
-
await options.persist({ scopeId: scope.id, scopeSlug: scope.slug });
|
|
95
|
-
return scope.id;
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=project-resolution.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-resolution.js","sourceRoot":"","sources":["../../../src/core/providers/project-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { ConfigStore } from "../config-store.js";
|
|
2
|
-
import type { ProviderAuthSpec, ProviderCredential } from "./credentials.js";
|
|
3
|
-
import type { DeployProvider, DeployProviderActions, DeployProviderHooks, DeployProviderManifest, ProviderProject } from "./deploy-provider.js";
|
|
4
|
-
import type { HostProvider, HostProviderActions, HostProviderManifest } from "./host-provider.js";
|
|
5
|
-
/**
|
|
6
|
-
* The in-tree provider registry.
|
|
7
|
-
*
|
|
8
|
-
* This is the file a new provider is added to, and — apart from its own
|
|
9
|
-
* directory — the *only* one. That is the whole point of the exercise: adding
|
|
10
|
-
* Cloudflare should not mean editing `server.ts`, `app.tsx`, `routes/index.ts`,
|
|
11
|
-
* `mcp/tools/index.ts`, `en.ts`, `zh.ts` and `mock-api.ts` the way adding
|
|
12
|
-
* Vercel did.
|
|
13
|
-
*
|
|
14
|
-
* Two kinds live here, because there are two contracts: deploy platforms
|
|
15
|
-
* (`DeployProvider`) and infrastructure hosts (`HostProvider`). They share the
|
|
16
|
-
* credential layer and nothing else, so they get separate arrays and separate
|
|
17
|
-
* lookups rather than a union that every caller would have to narrow.
|
|
18
|
-
*
|
|
19
|
-
* Deliberately static arrays rather than a loader. Third-party providers are
|
|
20
|
-
* out of scope until three implementations have shaped the contract — see §7 of
|
|
21
|
-
* `docs/plans/2026-08-13-provider-registry-design.md`.
|
|
22
|
-
*/
|
|
23
|
-
/** A connected provider client plus whatever project resolves for the repo. */
|
|
24
|
-
export interface ProviderContext {
|
|
25
|
-
provider: DeployProvider;
|
|
26
|
-
credential: ProviderCredential;
|
|
27
|
-
/** Absent when connected but no project is linked to this repo yet. */
|
|
28
|
-
project?: ProviderProject;
|
|
29
|
-
}
|
|
30
|
-
export interface RegisteredDeployProvider {
|
|
31
|
-
manifest: DeployProviderManifest;
|
|
32
|
-
auth: ProviderAuthSpec;
|
|
33
|
-
hooks: DeployProviderHooks;
|
|
34
|
-
/** Throws when the provider is not connected; a missing project does not. */
|
|
35
|
-
context(configStore: ConfigStore, gitCwd: string): Promise<ProviderContext>;
|
|
36
|
-
/** The write-capable half, resolved separately and never given to an MCP tool. */
|
|
37
|
-
actions(configStore: ConfigStore): Promise<DeployProviderActions>;
|
|
38
|
-
}
|
|
39
|
-
export declare const deployProviders: RegisteredDeployProvider[];
|
|
40
|
-
export declare function findDeployProvider(id: string): RegisteredDeployProvider | undefined;
|
|
41
|
-
/** Throws with the id the caller asked for, which is what the route reports. */
|
|
42
|
-
export declare function requireDeployProvider(id: string): RegisteredDeployProvider;
|
|
43
|
-
export declare const deployProviderManifests: () => DeployProviderManifest[];
|
|
44
|
-
/** A connected client for `providerId`, or a throw naming what is not connected. */
|
|
45
|
-
export declare function requireProviderContext(providerId: string, configStore: ConfigStore, gitCwd: string): Promise<ProviderContext>;
|
|
46
|
-
/** The same, for callers that treat "not connected" as "nothing to show". */
|
|
47
|
-
export declare function optionalProviderContext(providerId: string, configStore: ConfigStore, gitCwd: string): Promise<ProviderContext | null>;
|
|
48
|
-
export declare function requireProviderActions(providerId: string, configStore: ConfigStore): Promise<DeployProviderActions>;
|
|
49
|
-
/**
|
|
50
|
-
* A connected host client. Deliberately has no project and no working
|
|
51
|
-
* directory: an instance belongs to an account, not to a repository, which is
|
|
52
|
-
* the shape difference that made this a second contract rather than a wider
|
|
53
|
-
* first one.
|
|
54
|
-
*/
|
|
55
|
-
export interface HostContext {
|
|
56
|
-
provider: HostProvider;
|
|
57
|
-
credential: ProviderCredential;
|
|
58
|
-
}
|
|
59
|
-
export interface RegisteredHostProvider {
|
|
60
|
-
manifest: HostProviderManifest;
|
|
61
|
-
auth: ProviderAuthSpec;
|
|
62
|
-
/** Throws when the provider is not connected. */
|
|
63
|
-
context(configStore: ConfigStore): Promise<HostContext>;
|
|
64
|
-
/** The write-capable half, resolved separately and never given to an MCP tool. */
|
|
65
|
-
actions(configStore: ConfigStore): Promise<HostProviderActions>;
|
|
66
|
-
}
|
|
67
|
-
export declare const hostProviders: RegisteredHostProvider[];
|
|
68
|
-
export declare function findHostProvider(id: string): RegisteredHostProvider | undefined;
|
|
69
|
-
/** Throws with the id the caller asked for, which is what the route reports. */
|
|
70
|
-
export declare function requireHostProvider(id: string): RegisteredHostProvider;
|
|
71
|
-
export declare const hostProviderManifests: () => HostProviderManifest[];
|
|
72
|
-
export declare function requireHostContext(providerId: string, configStore: ConfigStore): Promise<HostContext>;
|
|
73
|
-
export declare function requireHostActions(providerId: string, configStore: ConfigStore): Promise<HostProviderActions>;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { cloudflareDeployProvider } from "../cloudflare-context.js";
|
|
2
|
-
import { vercelDeployProvider } from "../vercel-context.js";
|
|
3
|
-
import { vultrHostProvider } from "../vultr-context.js";
|
|
4
|
-
export const deployProviders = [
|
|
5
|
-
vercelDeployProvider,
|
|
6
|
-
cloudflareDeployProvider,
|
|
7
|
-
];
|
|
8
|
-
export function findDeployProvider(id) {
|
|
9
|
-
return deployProviders.find((provider) => provider.manifest.id === id);
|
|
10
|
-
}
|
|
11
|
-
/** Throws with the id the caller asked for, which is what the route reports. */
|
|
12
|
-
export function requireDeployProvider(id) {
|
|
13
|
-
const provider = findDeployProvider(id);
|
|
14
|
-
if (!provider)
|
|
15
|
-
throw new Error(`Unknown provider "${id}".`);
|
|
16
|
-
return provider;
|
|
17
|
-
}
|
|
18
|
-
export const deployProviderManifests = () => deployProviders.map((provider) => provider.manifest);
|
|
19
|
-
/** A connected client for `providerId`, or a throw naming what is not connected. */
|
|
20
|
-
export function requireProviderContext(providerId, configStore, gitCwd) {
|
|
21
|
-
return requireDeployProvider(providerId).context(configStore, gitCwd);
|
|
22
|
-
}
|
|
23
|
-
/** The same, for callers that treat "not connected" as "nothing to show". */
|
|
24
|
-
export async function optionalProviderContext(providerId, configStore, gitCwd) {
|
|
25
|
-
try {
|
|
26
|
-
return await requireProviderContext(providerId, configStore, gitCwd);
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
export function requireProviderActions(providerId, configStore) {
|
|
33
|
-
return requireDeployProvider(providerId).actions(configStore);
|
|
34
|
-
}
|
|
35
|
-
export const hostProviders = [vultrHostProvider];
|
|
36
|
-
export function findHostProvider(id) {
|
|
37
|
-
return hostProviders.find((provider) => provider.manifest.id === id);
|
|
38
|
-
}
|
|
39
|
-
/** Throws with the id the caller asked for, which is what the route reports. */
|
|
40
|
-
export function requireHostProvider(id) {
|
|
41
|
-
const provider = findHostProvider(id);
|
|
42
|
-
if (!provider)
|
|
43
|
-
throw new Error(`Unknown host provider "${id}".`);
|
|
44
|
-
return provider;
|
|
45
|
-
}
|
|
46
|
-
export const hostProviderManifests = () => hostProviders.map((provider) => provider.manifest);
|
|
47
|
-
export function requireHostContext(providerId, configStore) {
|
|
48
|
-
return requireHostProvider(providerId).context(configStore);
|
|
49
|
-
}
|
|
50
|
-
export function requireHostActions(providerId, configStore) {
|
|
51
|
-
return requireHostProvider(providerId).actions(configStore);
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/providers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAoDxD,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,oBAAoB;IACpB,wBAAwB;CACzB,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAA6B,EAAE,CACpE,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAEvD,oFAAoF;AACpF,MAAM,UAAU,sBAAsB,CACpC,UAAkB,EAClB,WAAwB,EACxB,MAAc;IAEd,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAAkB,EAClB,WAAwB,EACxB,MAAc;IAEd,IAAI,CAAC;QACH,OAAO,MAAM,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAAkB,EAClB,WAAwB;IAExB,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAChE,CAAC;AAwBD,MAAM,CAAC,MAAM,aAAa,GAA6B,CAAC,iBAAiB,CAAC,CAAC;AAE3E,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAA2B,EAAE,CAChE,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAErD,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,WAAwB;IAExB,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,WAAwB;IAExB,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A provider's own words, carried in its manifest instead of in the host's
|
|
3
|
-
* translation catalogue.
|
|
4
|
-
*
|
|
5
|
-
* This is §11 gate item 2. The rule that decides where a string lives is not
|
|
6
|
-
* "is it about a provider" — most of the deploy view is — but **who determines
|
|
7
|
-
* the set of keys**:
|
|
8
|
-
*
|
|
9
|
-
* - "No deployments yet." is one sentence for every provider. The host owns it,
|
|
10
|
-
* it stays in `i18n/en.ts`, and adding a provider does not touch it.
|
|
11
|
-
* - "Promote" is one of *Vercel's* four action names. Cloudflare has two of
|
|
12
|
-
* them, Vultr has three entirely different ones, and provider #4 will invent
|
|
13
|
-
* a word nobody has typed yet. The host cannot hold a key it cannot know, so
|
|
14
|
-
* the provider carries it.
|
|
15
|
-
*
|
|
16
|
-
* Before this, `provider.action.promote` sat in `en.ts`/`zh.ts` and the view
|
|
17
|
-
* hard-coded the union `"redeploy" | "cancel" | "promote" | "rollback"` — which
|
|
18
|
-
* is why a provider declaring `actions: ["publish"]` got a `t()` call returning
|
|
19
|
-
* the raw key and no button to put it on. That is tax #2, and paying it is what
|
|
20
|
-
* makes the declarative half of the manifest genuinely declarative.
|
|
21
|
-
*
|
|
22
|
-
* `scopeLabel` moved here for a sharper reason: it was a **raw English string
|
|
23
|
-
* in the manifest** (`"Team"` / `"Account"`) rendered straight into the DOM, so
|
|
24
|
-
* it was never translated at all. A zh user read "Team". Moving it into a
|
|
25
|
-
* locale bundle is the difference between a translated app and one that merely
|
|
26
|
-
* looks translated.
|
|
27
|
-
*/
|
|
28
|
-
/**
|
|
29
|
-
* The locales a manifest may carry — deliberately the same two as the client's
|
|
30
|
-
* `Language`, and no wider.
|
|
31
|
-
*
|
|
32
|
-
* Re-declared here rather than imported because `src/core` must not depend on
|
|
33
|
-
* `apps/dashboard` (the client is excluded from the server tsconfig and built
|
|
34
|
-
* separately). `test/provider-strings.test.ts` asserts the two lists agree, so
|
|
35
|
-
* adding a third language to the client fails there rather than silently
|
|
36
|
-
* leaving every provider unable to speak it.
|
|
37
|
-
*/
|
|
38
|
-
export type ProviderLocale = "en" | "zh";
|
|
39
|
-
export declare const PROVIDER_LOCALES: readonly ProviderLocale[];
|
|
40
|
-
/**
|
|
41
|
-
* One locale's worth of a provider's strings.
|
|
42
|
-
*
|
|
43
|
-
* Keys are flat and namespaced by what they describe:
|
|
44
|
-
*
|
|
45
|
-
* | Key | Required when |
|
|
46
|
-
* | --- | --- |
|
|
47
|
-
* | `scope.label` | the provider has scopes (deploy providers) |
|
|
48
|
-
* | `action.<name>` | for every name in `manifest.actions` — the button |
|
|
49
|
-
* | `action.<name>.done` | for every name in `manifest.actions` — the toast |
|
|
50
|
-
* | `action.<name>.confirmTitle` | for every name in `productionAffecting` |
|
|
51
|
-
* | `action.<name>.confirm` | for every name in `productionAffecting` |
|
|
52
|
-
*
|
|
53
|
-
* "Required" is enforced by `test/provider-strings.test.ts`, not by the type: a
|
|
54
|
-
* `Record<string, string>` is what a manifest parsed from JSON produces, and
|
|
55
|
-
* stage 3 of §12 is where that JSON arrives. A type cannot check a key set that
|
|
56
|
-
* depends on the value of a sibling field anyway.
|
|
57
|
-
*/
|
|
58
|
-
export type ProviderStringBundle = Record<string, string>;
|
|
59
|
-
/**
|
|
60
|
-
* A manifest's strings, one bundle per locale.
|
|
61
|
-
*
|
|
62
|
-
* **`en` is required and the rest are optional, and that asymmetry is the whole
|
|
63
|
-
* design.** It mirrors the host's own catalogue exactly — `en.ts` defines the
|
|
64
|
-
* key type, `zh.ts` is a `Partial` — so there is one mental model rather than
|
|
65
|
-
* two. It also states the right thing about third-party plugins: an author in
|
|
66
|
-
* one country can ship English only and their plugin works, because lookup
|
|
67
|
-
* falls back rather than failing.
|
|
68
|
-
*
|
|
69
|
-
* The cost of that generosity is the one §9 named: a partial locale is
|
|
70
|
-
* *silent*. So the leniency lives in the type, where a plugin needs it, and the
|
|
71
|
-
* strictness lives in the test, which covers what this repo ships — every
|
|
72
|
-
* in-tree provider must be complete in every locale, and a missing zh key fails
|
|
73
|
-
* CI instead of quietly rendering English.
|
|
74
|
-
*/
|
|
75
|
-
export interface ProviderStrings {
|
|
76
|
-
en: ProviderStringBundle;
|
|
77
|
-
zh?: ProviderStringBundle;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Resolve one key, falling back through locale → English → undefined.
|
|
81
|
-
*
|
|
82
|
-
* Returning `undefined` rather than the key itself is deliberate, and differs
|
|
83
|
-
* from the host's `t()`, which renders the key as a loud dev tell. Here the
|
|
84
|
-
* caller has something better to fall back to: an action's own name is a
|
|
85
|
-
* serviceable button label, so a plugin that forgot `action.publish` shows
|
|
86
|
-
* "publish" rather than "action.publish". The host has no such fallback for its
|
|
87
|
-
* own keys, which is why the two resolvers differ.
|
|
88
|
-
*/
|
|
89
|
-
export declare function providerString(strings: ProviderStrings | undefined, locale: ProviderLocale, key: string): string | undefined;
|
|
90
|
-
/** The keys a manifest must define, given the actions it declares. */
|
|
91
|
-
export declare function requiredStringKeys(manifest: {
|
|
92
|
-
actions: readonly string[];
|
|
93
|
-
productionAffecting: readonly string[];
|
|
94
|
-
kind: string;
|
|
95
|
-
}): string[];
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A provider's own words, carried in its manifest instead of in the host's
|
|
3
|
-
* translation catalogue.
|
|
4
|
-
*
|
|
5
|
-
* This is §11 gate item 2. The rule that decides where a string lives is not
|
|
6
|
-
* "is it about a provider" — most of the deploy view is — but **who determines
|
|
7
|
-
* the set of keys**:
|
|
8
|
-
*
|
|
9
|
-
* - "No deployments yet." is one sentence for every provider. The host owns it,
|
|
10
|
-
* it stays in `i18n/en.ts`, and adding a provider does not touch it.
|
|
11
|
-
* - "Promote" is one of *Vercel's* four action names. Cloudflare has two of
|
|
12
|
-
* them, Vultr has three entirely different ones, and provider #4 will invent
|
|
13
|
-
* a word nobody has typed yet. The host cannot hold a key it cannot know, so
|
|
14
|
-
* the provider carries it.
|
|
15
|
-
*
|
|
16
|
-
* Before this, `provider.action.promote` sat in `en.ts`/`zh.ts` and the view
|
|
17
|
-
* hard-coded the union `"redeploy" | "cancel" | "promote" | "rollback"` — which
|
|
18
|
-
* is why a provider declaring `actions: ["publish"]` got a `t()` call returning
|
|
19
|
-
* the raw key and no button to put it on. That is tax #2, and paying it is what
|
|
20
|
-
* makes the declarative half of the manifest genuinely declarative.
|
|
21
|
-
*
|
|
22
|
-
* `scopeLabel` moved here for a sharper reason: it was a **raw English string
|
|
23
|
-
* in the manifest** (`"Team"` / `"Account"`) rendered straight into the DOM, so
|
|
24
|
-
* it was never translated at all. A zh user read "Team". Moving it into a
|
|
25
|
-
* locale bundle is the difference between a translated app and one that merely
|
|
26
|
-
* looks translated.
|
|
27
|
-
*/
|
|
28
|
-
export const PROVIDER_LOCALES = ["en", "zh"];
|
|
29
|
-
/**
|
|
30
|
-
* Resolve one key, falling back through locale → English → undefined.
|
|
31
|
-
*
|
|
32
|
-
* Returning `undefined` rather than the key itself is deliberate, and differs
|
|
33
|
-
* from the host's `t()`, which renders the key as a loud dev tell. Here the
|
|
34
|
-
* caller has something better to fall back to: an action's own name is a
|
|
35
|
-
* serviceable button label, so a plugin that forgot `action.publish` shows
|
|
36
|
-
* "publish" rather than "action.publish". The host has no such fallback for its
|
|
37
|
-
* own keys, which is why the two resolvers differ.
|
|
38
|
-
*/
|
|
39
|
-
export function providerString(strings, locale, key) {
|
|
40
|
-
if (!strings)
|
|
41
|
-
return undefined;
|
|
42
|
-
return strings[locale]?.[key] ?? strings.en[key];
|
|
43
|
-
}
|
|
44
|
-
/** The keys a manifest must define, given the actions it declares. */
|
|
45
|
-
export function requiredStringKeys(manifest) {
|
|
46
|
-
const keys = [];
|
|
47
|
-
// Only deploy providers have scopes; a host provider's instances are not
|
|
48
|
-
// grouped under anything the user picks between.
|
|
49
|
-
if (manifest.kind === "deploy")
|
|
50
|
-
keys.push("scope.label");
|
|
51
|
-
for (const action of manifest.actions) {
|
|
52
|
-
keys.push(`action.${action}`, `action.${action}.done`);
|
|
53
|
-
}
|
|
54
|
-
for (const action of manifest.productionAffecting) {
|
|
55
|
-
keys.push(`action.${action}.confirmTitle`, `action.${action}.confirm`);
|
|
56
|
-
}
|
|
57
|
-
return keys;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=strings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strings.js","sourceRoot":"","sources":["../../../src/core/providers/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAcH,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AA2CxE;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAoC,EACpC,MAAsB,EACtB,GAAW;IAEX,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAAC,QAIlC;IACC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,yEAAyE;IACzE,iDAAiD;IACjD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,EAAE,UAAU,MAAM,OAAO,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,eAAe,EAAE,UAAU,MAAM,UAAU,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { NoMoreIdeConfig, ProviderConnection, ServiceDefinition } from "./types.js";
|
|
2
|
-
export type PublicServiceDefinition = Omit<ServiceDefinition, "env">;
|
|
3
|
-
export type PublicProviderConnection = Omit<ProviderConnection, "token" | "refreshToken">;
|
|
4
|
-
export interface PublicNoMoreIdeConfig extends Omit<NoMoreIdeConfig, "services" | "databases" | "githubTokens" | "connections"> {
|
|
5
|
-
services: PublicServiceDefinition[];
|
|
6
|
-
databases: NoMoreIdeConfig["databases"];
|
|
7
|
-
githubTokens: Array<Omit<NoMoreIdeConfig["githubTokens"][number], "token">>;
|
|
8
|
-
connections: Record<string, PublicProviderConnection>;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Project configuration safe to send to a dashboard client.
|
|
12
|
-
*
|
|
13
|
-
* The full config is intentionally a server-side capability: it contains
|
|
14
|
-
* process environment values, database credentials, GitHub tokens, and
|
|
15
|
-
* provider access/refresh tokens. Dashboard consumers only need the metadata
|
|
16
|
-
* around those values, never the credentials themselves.
|
|
17
|
-
*/
|
|
18
|
-
export declare function publicConfig(config: NoMoreIdeConfig): PublicNoMoreIdeConfig;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { maskConnectionUrl } from "./db-peek.js";
|
|
2
|
-
/**
|
|
3
|
-
* Project configuration safe to send to a dashboard client.
|
|
4
|
-
*
|
|
5
|
-
* The full config is intentionally a server-side capability: it contains
|
|
6
|
-
* process environment values, database credentials, GitHub tokens, and
|
|
7
|
-
* provider access/refresh tokens. Dashboard consumers only need the metadata
|
|
8
|
-
* around those values, never the credentials themselves.
|
|
9
|
-
*/
|
|
10
|
-
export function publicConfig(config) {
|
|
11
|
-
return {
|
|
12
|
-
version: config.version,
|
|
13
|
-
services: config.services.map((service) => ({
|
|
14
|
-
name: service.name,
|
|
15
|
-
...(service.kind === undefined ? {} : { kind: service.kind }),
|
|
16
|
-
...(service.port === undefined ? {} : { port: service.port }),
|
|
17
|
-
...(service.description === undefined ? {} : { description: service.description }),
|
|
18
|
-
...(service.test === undefined ? {} : { test: service.test }),
|
|
19
|
-
...(service.dependsOn === undefined ? {} : { dependsOn: service.dependsOn }),
|
|
20
|
-
...(service.projectPath === undefined ? {} : { projectPath: service.projectPath }),
|
|
21
|
-
...(service.command === undefined ? {} : { command: service.command }),
|
|
22
|
-
...(service.args === undefined ? {} : { args: service.args }),
|
|
23
|
-
...(service.cwd === undefined ? {} : { cwd: service.cwd }),
|
|
24
|
-
...(service.composeFile === undefined ? {} : { composeFile: service.composeFile }),
|
|
25
|
-
...(service.composeService === undefined
|
|
26
|
-
? {}
|
|
27
|
-
: { composeService: service.composeService }),
|
|
28
|
-
...(service.host === undefined ? {} : { host: service.host }),
|
|
29
|
-
})),
|
|
30
|
-
bundles: config.bundles,
|
|
31
|
-
gitRepositories: config.gitRepositories,
|
|
32
|
-
...(config.selectedGitRepository === undefined
|
|
33
|
-
? {}
|
|
34
|
-
: { selectedGitRepository: config.selectedGitRepository }),
|
|
35
|
-
...(config.gitBoardRepositories === undefined
|
|
36
|
-
? {}
|
|
37
|
-
: { gitBoardRepositories: config.gitBoardRepositories }),
|
|
38
|
-
databases: config.databases.map((database) => ({
|
|
39
|
-
name: database.name,
|
|
40
|
-
engine: database.engine,
|
|
41
|
-
url: maskConnectionUrl(database.engine, database.url),
|
|
42
|
-
...(database.writeUnlocked === undefined
|
|
43
|
-
? {}
|
|
44
|
-
: { writeUnlocked: database.writeUnlocked }),
|
|
45
|
-
...(database.projectPath === undefined ? {} : { projectPath: database.projectPath }),
|
|
46
|
-
})),
|
|
47
|
-
logSources: config.logSources,
|
|
48
|
-
sshServers: config.sshServers,
|
|
49
|
-
githubTokens: config.githubTokens.map((entry) => ({
|
|
50
|
-
host: entry.host,
|
|
51
|
-
...(entry.login === undefined ? {} : { login: entry.login }),
|
|
52
|
-
...(entry.avatarUrl === undefined ? {} : { avatarUrl: entry.avatarUrl }),
|
|
53
|
-
})),
|
|
54
|
-
githubIdentities: config.githubIdentities,
|
|
55
|
-
connections: Object.fromEntries(Object.entries(config.connections).map(([id, connection]) => [
|
|
56
|
-
id,
|
|
57
|
-
publicProviderConnection(connection),
|
|
58
|
-
])),
|
|
59
|
-
workflows: config.workflows,
|
|
60
|
-
workflowTriggers: config.workflowTriggers,
|
|
61
|
-
...(config.chatProvider === undefined ? {} : { chatProvider: config.chatProvider }),
|
|
62
|
-
...(config.chatModels === undefined ? {} : { chatModels: config.chatModels }),
|
|
63
|
-
...(config.preferences === undefined ? {} : { preferences: config.preferences }),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
function publicProviderConnection(connection) {
|
|
67
|
-
return {
|
|
68
|
-
source: connection.source,
|
|
69
|
-
...(connection.expiresAt === undefined ? {} : { expiresAt: connection.expiresAt }),
|
|
70
|
-
...(connection.clientId === undefined ? {} : { clientId: connection.clientId }),
|
|
71
|
-
...(connection.scopeId === undefined ? {} : { scopeId: connection.scopeId }),
|
|
72
|
-
...(connection.scopeSlug === undefined ? {} : { scopeSlug: connection.scopeSlug }),
|
|
73
|
-
...(connection.username === undefined ? {} : { username: connection.username }),
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=public-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public-config.js","sourceRoot":"","sources":["../../src/core/public-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export declare const FILE_PREVIEW_BYTES: number;
|
|
2
|
-
export declare const FILE_READ_TIMEOUT_MS = 10000;
|
|
3
|
-
export type ReadOnlyFileType = "directory" | "file" | "symlink" | "other";
|
|
4
|
-
export interface ReadOnlyFileEntry {
|
|
5
|
-
name: string;
|
|
6
|
-
path: string;
|
|
7
|
-
type: ReadOnlyFileType;
|
|
8
|
-
size: number;
|
|
9
|
-
modifiedAt: number | null;
|
|
10
|
-
}
|
|
11
|
-
export interface ReadOnlyDirectoryListing {
|
|
12
|
-
path: string;
|
|
13
|
-
entries: ReadOnlyFileEntry[];
|
|
14
|
-
}
|
|
15
|
-
export interface ReadOnlyFileContent {
|
|
16
|
-
path: string;
|
|
17
|
-
content: string;
|
|
18
|
-
size: number;
|
|
19
|
-
binary: boolean;
|
|
20
|
-
truncated: boolean;
|
|
21
|
-
}
|
|
22
|
-
/** Script shared by SSH and `docker exec`; emits machine-readable NUL fields. */
|
|
23
|
-
export declare const READ_DIRECTORY_SCRIPT: string;
|
|
24
|
-
/** Return a bounded preview plus the full byte size in a NUL-delimited header. */
|
|
25
|
-
export declare const READ_FILE_SCRIPT: string;
|
|
26
|
-
export declare function assertReadOnlyPath(path: string, requireAbsolute?: boolean): void;
|
|
27
|
-
export declare function parseReadOnlyDirectory(output: Buffer, includeHidden?: boolean): ReadOnlyDirectoryListing;
|
|
28
|
-
export declare function parseReadOnlyFile(path: string, output: Buffer): ReadOnlyFileContent;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
export const FILE_PREVIEW_BYTES = 256 * 1024;
|
|
2
|
-
export const FILE_READ_TIMEOUT_MS = 10_000;
|
|
3
|
-
/** Script shared by SSH and `docker exec`; emits machine-readable NUL fields. */
|
|
4
|
-
export const READ_DIRECTORY_SCRIPT = String.raw `target=$1
|
|
5
|
-
cd "$target" || exit 1
|
|
6
|
-
printf 'NMI_PATH\0%s\0' "$PWD"
|
|
7
|
-
find . -mindepth 1 -maxdepth 1 -printf 'NMI_ENTRY\0%f\0%y\0%s\0%T@\0\0'`;
|
|
8
|
-
/** Return a bounded preview plus the full byte size in a NUL-delimited header. */
|
|
9
|
-
export const READ_FILE_SCRIPT = String.raw `target=$1
|
|
10
|
-
test -f "$target" || { printf '%s\n' 'Path is not a regular file.' >&2; exit 1; }
|
|
11
|
-
size=$(wc -c < "$target") || exit 1
|
|
12
|
-
printf 'NMI_FILE\0%s\0' "$size"
|
|
13
|
-
head -c ${FILE_PREVIEW_BYTES + 1} -- "$target"`;
|
|
14
|
-
export function assertReadOnlyPath(path, requireAbsolute = false) {
|
|
15
|
-
if (!path || path.includes("\0") || (requireAbsolute && !path.startsWith("/"))) {
|
|
16
|
-
throw new Error(requireAbsolute ? "File path must be absolute." : "File path is invalid.");
|
|
17
|
-
}
|
|
18
|
-
if (path !== "." && !path.startsWith("/")) {
|
|
19
|
-
throw new Error("File path must be absolute.");
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export function parseReadOnlyDirectory(output, includeHidden = false) {
|
|
23
|
-
const fields = output.toString("utf8").split("\0");
|
|
24
|
-
if (fields[0] !== "NMI_PATH" || !fields[1]?.startsWith("/")) {
|
|
25
|
-
throw new Error("Directory returned an unexpected response.");
|
|
26
|
-
}
|
|
27
|
-
const path = fields[1];
|
|
28
|
-
const entries = [];
|
|
29
|
-
for (let index = 2; index < fields.length; index += 6) {
|
|
30
|
-
if (!fields[index])
|
|
31
|
-
break;
|
|
32
|
-
if (fields[index] !== "NMI_ENTRY") {
|
|
33
|
-
throw new Error("Directory entry is malformed.");
|
|
34
|
-
}
|
|
35
|
-
const name = fields[index + 1] ?? "";
|
|
36
|
-
const rawType = fields[index + 2] ?? "";
|
|
37
|
-
const size = Number(fields[index + 3]);
|
|
38
|
-
const modifiedSeconds = Number(fields[index + 4]);
|
|
39
|
-
if (!name || name.includes("/") || !Number.isFinite(size)) {
|
|
40
|
-
throw new Error("Directory entry is malformed.");
|
|
41
|
-
}
|
|
42
|
-
if (!includeHidden && name.startsWith("."))
|
|
43
|
-
continue;
|
|
44
|
-
entries.push({
|
|
45
|
-
name,
|
|
46
|
-
path: path === "/" ? `/${name}` : `${path}/${name}`,
|
|
47
|
-
type: readOnlyFileType(rawType),
|
|
48
|
-
size,
|
|
49
|
-
modifiedAt: Number.isFinite(modifiedSeconds) ? Math.round(modifiedSeconds * 1000) : null,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
entries.sort((left, right) => {
|
|
53
|
-
if (left.type !== right.type) {
|
|
54
|
-
if (left.type === "directory")
|
|
55
|
-
return -1;
|
|
56
|
-
if (right.type === "directory")
|
|
57
|
-
return 1;
|
|
58
|
-
}
|
|
59
|
-
return left.name.localeCompare(right.name);
|
|
60
|
-
});
|
|
61
|
-
return { path, entries };
|
|
62
|
-
}
|
|
63
|
-
export function parseReadOnlyFile(path, output) {
|
|
64
|
-
const firstNull = output.indexOf(0);
|
|
65
|
-
const secondNull = output.indexOf(0, firstNull + 1);
|
|
66
|
-
if (firstNull < 0 || secondNull < 0 || output.subarray(0, firstNull).toString() !== "NMI_FILE") {
|
|
67
|
-
throw new Error("File returned an unexpected response.");
|
|
68
|
-
}
|
|
69
|
-
const size = Number(output.subarray(firstNull + 1, secondNull).toString());
|
|
70
|
-
if (!Number.isFinite(size) || size < 0) {
|
|
71
|
-
throw new Error("File returned an invalid size.");
|
|
72
|
-
}
|
|
73
|
-
const bytes = output.subarray(secondNull + 1);
|
|
74
|
-
const preview = bytes.subarray(0, FILE_PREVIEW_BYTES);
|
|
75
|
-
const binary = preview.subarray(0, 8 * 1024).includes(0);
|
|
76
|
-
return {
|
|
77
|
-
path,
|
|
78
|
-
content: binary ? "" : preview.toString("utf8"),
|
|
79
|
-
size,
|
|
80
|
-
binary,
|
|
81
|
-
truncated: size > preview.length,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
function readOnlyFileType(value) {
|
|
85
|
-
if (value === "d")
|
|
86
|
-
return "directory";
|
|
87
|
-
if (value === "f")
|
|
88
|
-
return "file";
|
|
89
|
-
if (value === "l")
|
|
90
|
-
return "symlink";
|
|
91
|
-
return "other";
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=read-only-files.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-only-files.js","sourceRoot":"","sources":["../../src/core/read-only-files.ts"],"names":[],"mappings":"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"}
|