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,348 +0,0 @@
|
|
|
1
|
-
import { CLOUDFLARE_ACTIONS, PRODUCTION_AFFECTING_ACTIONS, } from "./cloudflare-actions.js";
|
|
2
|
-
import { CLOUDFLARE_PROVIDER_ID } from "./cloudflare-auth.js";
|
|
3
|
-
import { providerApiHost } from "./providers/api-base.js";
|
|
4
|
-
import { cloudflareApiBase, cloudflareRepoUrl, } from "./cloudflare-manager.js";
|
|
5
|
-
/**
|
|
6
|
-
* Cloudflare Pages as `DeployProvider` implementation #2 — the one that tests
|
|
7
|
-
* whether the contract was shaped by the problem or by Vercel.
|
|
8
|
-
*
|
|
9
|
-
* A pure adapter, like `vercel-provider.ts`: every method delegates to
|
|
10
|
-
* `CloudflareManager` or `CloudflareActions` and only reshapes the result.
|
|
11
|
-
*
|
|
12
|
-
* Three places the contract had to absorb a genuinely different vendor, all
|
|
13
|
-
* without changing a signature:
|
|
14
|
-
*
|
|
15
|
-
* 1. **Deployment reads are project-scoped.** Cloudflare has no global
|
|
16
|
-
* deployment endpoint, so {@link createCloudflareDeployProvider} closes over
|
|
17
|
-
* the project the caller already resolved rather than widening
|
|
18
|
-
* `getDeployment(id)` to take one. `ProviderContext` bundles a provider with
|
|
19
|
-
* its project anyway, so this costs the callers nothing.
|
|
20
|
-
* 2. **`rawState` earns its keep immediately.** Cloudflare's state is a
|
|
21
|
-
* (stage, status) pair, not an enum — there is no eight-value list to map
|
|
22
|
-
* from, so the pair is carried through as `stage:status` and the neutral
|
|
23
|
-
* state is computed.
|
|
24
|
-
* 3. **`ProviderProject.id` is whatever the vendor addresses projects by.**
|
|
25
|
-
* Cloudflare's paths use the project *name*, so that is the id here and its
|
|
26
|
-
* UUID is not exposed. Pinning a project in config therefore stores a name.
|
|
27
|
-
*/
|
|
28
|
-
export const CLOUDFLARE_MANIFEST = {
|
|
29
|
-
id: CLOUDFLARE_PROVIDER_ID,
|
|
30
|
-
name: "Cloudflare",
|
|
31
|
-
kind: "deploy",
|
|
32
|
-
// Two actions, not Vercel's four — and no `promote`, which is why these
|
|
33
|
-
// strings cannot live in a host catalogue keyed by action name. Cloudflare
|
|
34
|
-
// groups projects under an Account where Vercel uses a Team.
|
|
35
|
-
strings: {
|
|
36
|
-
en: {
|
|
37
|
-
"scope.label": "Cloudflare account",
|
|
38
|
-
"action.redeploy": "Retry build",
|
|
39
|
-
"action.redeploy.done": "Build retried.",
|
|
40
|
-
"action.rollback": "Roll back",
|
|
41
|
-
"action.rollback.done": "Rolled back production.",
|
|
42
|
-
"action.rollback.confirmTitle": "Roll production back?",
|
|
43
|
-
"action.rollback.confirm": "Production traffic switches back to this older deployment immediately.",
|
|
44
|
-
},
|
|
45
|
-
zh: {
|
|
46
|
-
"scope.label": "Cloudflare 账户",
|
|
47
|
-
"action.redeploy": "重试构建",
|
|
48
|
-
"action.redeploy.done": "已重试构建。",
|
|
49
|
-
"action.rollback": "回滚",
|
|
50
|
-
"action.rollback.done": "已回滚生产环境。",
|
|
51
|
-
"action.rollback.confirmTitle": "回滚生产环境?",
|
|
52
|
-
"action.rollback.confirm": "生产流量将立即切回这个较旧的部署。",
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
authSources: ["cli", "stored"],
|
|
56
|
-
// No `runtimeLogs`: Pages serves runtime output over a websocket tail, not a
|
|
57
|
-
// REST read, so the tab is hidden rather than shown and made to error.
|
|
58
|
-
capabilities: ["projects", "deployments", "buildLogs", "env", "domains"],
|
|
59
|
-
// Every Pages path is `/accounts/<id>/…`, and `/accounts` returns an empty
|
|
60
|
-
// list rather than an error for a token without `Account Settings: Read` —
|
|
61
|
-
// so a working Pages token can land here with nothing to pick from.
|
|
62
|
-
requiresScope: true,
|
|
63
|
-
actions: [...CLOUDFLARE_ACTIONS],
|
|
64
|
-
productionAffecting: [...PRODUCTION_AFFECTING_ACTIONS],
|
|
65
|
-
// `dash.cloudflare.com` is deliberately absent: the manager builds dashboard
|
|
66
|
-
// and deployment URLs as strings for the UI to link to, and never fetches
|
|
67
|
-
// them. An allowlist covers what is requested, not what is displayed.
|
|
68
|
-
//
|
|
69
|
-
// Derived from the base URL rather than written out, so the allowlist and the
|
|
70
|
-
// place requests actually go cannot drift apart — including when
|
|
71
|
-
// `NOMOREIDE_CLOUDFLARE_API_BASE` points them at a loopback stub.
|
|
72
|
-
api: { hosts: [providerApiHost(cloudflareApiBase())] },
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* No `linkFile`: Wrangler records a project's *name* in `wrangler.toml` /
|
|
76
|
-
* `wrangler.jsonc`, neither of which is JSON, and neither of which is written
|
|
77
|
-
* by a link command the way `.vercel/project.json` is. That tier of the
|
|
78
|
-
* resolution ladder is simply skipped, which is what it was built to allow.
|
|
79
|
-
*/
|
|
80
|
-
export const CLOUDFLARE_HOOKS = {
|
|
81
|
-
repoUrl: cloudflareRepoUrl,
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* The build settings Cloudflare exposes.
|
|
85
|
-
*
|
|
86
|
-
* The first three deliberately reuse Vercel's keys: they mean the same thing,
|
|
87
|
-
* and a settings panel that keys on `buildCommand` should not have to learn a
|
|
88
|
-
* second word for it. `productionBranch` has no Vercel equivalent as a setting.
|
|
89
|
-
*/
|
|
90
|
-
const CLOUDFLARE_SETTINGS = [
|
|
91
|
-
{ key: "buildCommand", label: "Build command" },
|
|
92
|
-
{ key: "destinationDir", label: "Output directory" },
|
|
93
|
-
{ key: "rootDir", label: "Root directory" },
|
|
94
|
-
{ key: "productionBranch", label: "Production branch" },
|
|
95
|
-
];
|
|
96
|
-
/** The neutral keys those map onto, so the shared panel sees one vocabulary. */
|
|
97
|
-
const SETTING_KEYS = {
|
|
98
|
-
buildCommand: "buildCommand",
|
|
99
|
-
destinationDir: "outputDirectory",
|
|
100
|
-
rootDir: "rootDirectory",
|
|
101
|
-
productionBranch: "productionBranch",
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Cloudflare's (stage, status) pair onto the seven neutral states.
|
|
105
|
-
*
|
|
106
|
-
* A build is `success` at every stage it completes, so "succeeded" only means
|
|
107
|
-
* "ready" once the stage reached is `deploy`; anything earlier is still in
|
|
108
|
-
* flight. A skipped deployment — Cloudflare's own eighth outcome — has no
|
|
109
|
-
* neutral equivalent, so it folds into `canceled` and survives in `rawState`,
|
|
110
|
-
* which is exactly the pressure valve that state field was added for.
|
|
111
|
-
*/
|
|
112
|
-
export function toProviderState(deployment) {
|
|
113
|
-
if (deployment.isSkipped)
|
|
114
|
-
return "canceled";
|
|
115
|
-
const { name, status } = deployment.stage;
|
|
116
|
-
if (status === "failure")
|
|
117
|
-
return "error";
|
|
118
|
-
if (status === "canceled")
|
|
119
|
-
return "canceled";
|
|
120
|
-
if (status === "success")
|
|
121
|
-
return name === "deploy" ? "ready" : "building";
|
|
122
|
-
return name === "queued" ? "queued" : "building";
|
|
123
|
-
}
|
|
124
|
-
const rawState = (deployment) => deployment.isSkipped ? "skipped" : `${deployment.stage.name}:${deployment.stage.status}`;
|
|
125
|
-
export function toProviderProject(project) {
|
|
126
|
-
const settings = [];
|
|
127
|
-
for (const { key, label } of CLOUDFLARE_SETTINGS) {
|
|
128
|
-
const value = project[key];
|
|
129
|
-
// Cloudflare returns the same project shape from both endpoints, so unlike
|
|
130
|
-
// Vercel nothing is ever "not read" — but the guard is kept so the two
|
|
131
|
-
// adapters answer the absent case the same way.
|
|
132
|
-
if (value === undefined)
|
|
133
|
-
continue;
|
|
134
|
-
settings.push({
|
|
135
|
-
key: SETTING_KEYS[key] ?? key,
|
|
136
|
-
label,
|
|
137
|
-
value: typeof value === "string" ? value : null,
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
return {
|
|
141
|
-
// The name, not the UUID — see this module's header.
|
|
142
|
-
id: project.name,
|
|
143
|
-
name: project.name,
|
|
144
|
-
framework: project.framework,
|
|
145
|
-
updatedAt: project.updatedAt,
|
|
146
|
-
link: project.source
|
|
147
|
-
? {
|
|
148
|
-
type: project.source.type,
|
|
149
|
-
org: project.source.owner,
|
|
150
|
-
repo: project.source.repoName,
|
|
151
|
-
productionBranch: project.source.productionBranch,
|
|
152
|
-
}
|
|
153
|
-
: undefined,
|
|
154
|
-
settings,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
export function toProviderDeployment(deployment, context = {}) {
|
|
158
|
-
return {
|
|
159
|
-
id: deployment.id,
|
|
160
|
-
name: deployment.projectName,
|
|
161
|
-
url: deployment.url,
|
|
162
|
-
state: toProviderState(deployment),
|
|
163
|
-
rawState: rawState(deployment),
|
|
164
|
-
// Cloudflare names both environments, where Vercel leaves a preview's
|
|
165
|
-
// target null. The consumers test for `"production"`, so its own word is
|
|
166
|
-
// kept rather than nulled to match Vercel's quirk.
|
|
167
|
-
target: deployment.environment,
|
|
168
|
-
createdAt: deployment.createdAt,
|
|
169
|
-
readyAt: toProviderState(deployment) === "ready" ? deployment.modifiedAt : undefined,
|
|
170
|
-
// Which deployment production serves lives on the project, because a
|
|
171
|
-
// rollback moves it; the caller reads it once and passes it in.
|
|
172
|
-
isCurrentProduction: context.canonicalDeploymentId
|
|
173
|
-
? deployment.id === context.canonicalDeploymentId
|
|
174
|
-
: undefined,
|
|
175
|
-
// Cloudflare records no author for a deployment, only the commit it came
|
|
176
|
-
// from, so `creator` is absent rather than guessed at.
|
|
177
|
-
meta: {
|
|
178
|
-
branch: deployment.branch,
|
|
179
|
-
sha: deployment.commitHash,
|
|
180
|
-
commitMessage: deployment.commitMessage,
|
|
181
|
-
},
|
|
182
|
-
inspectorUrl: context.inspectorUrl,
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
function toProviderDeploymentDetail(deployment, context) {
|
|
186
|
-
return {
|
|
187
|
-
...toProviderDeployment(deployment, context),
|
|
188
|
-
aliases: deployment.aliases,
|
|
189
|
-
// Cloudflare reports a failure by the stage that failed, not with a message.
|
|
190
|
-
errorMessage: toProviderState(deployment) === "error"
|
|
191
|
-
? `The ${deployment.stage.name} stage failed.`
|
|
192
|
-
: undefined,
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
function toBuildLogLine(line) {
|
|
196
|
-
return { id: line.id, createdAt: line.createdAt, kind: "build", level: "stdout", text: line.text };
|
|
197
|
-
}
|
|
198
|
-
export function toProviderEnvVar(env) {
|
|
199
|
-
return {
|
|
200
|
-
// Cloudflare has no variable ids — the key is how one is addressed.
|
|
201
|
-
id: env.key,
|
|
202
|
-
key: env.key,
|
|
203
|
-
environments: env.environments,
|
|
204
|
-
type: env.type === "plain_text" ? "plain" : "encrypted",
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
export function toProviderDomain(domain) {
|
|
208
|
-
const pending = domain.status !== "active" && domain.validation?.txtName;
|
|
209
|
-
return {
|
|
210
|
-
name: domain.name,
|
|
211
|
-
verified: domain.status === "active",
|
|
212
|
-
createdAt: domain.createdAt,
|
|
213
|
-
verification: pending
|
|
214
|
-
? [
|
|
215
|
-
{
|
|
216
|
-
type: "TXT",
|
|
217
|
-
domain: domain.validation?.txtName ?? domain.name,
|
|
218
|
-
value: domain.validation?.txtValue ?? "",
|
|
219
|
-
reason: domain.errorMessage ?? domain.status,
|
|
220
|
-
},
|
|
221
|
-
]
|
|
222
|
-
: [],
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* The read-safe half, over an already-authenticated `CloudflareManager`.
|
|
227
|
-
*
|
|
228
|
-
* `projectName` is the project the caller resolved for this repository, and is
|
|
229
|
-
* what makes the project-scoped deployment endpoints reachable through a
|
|
230
|
-
* contract whose deployment methods take only an id.
|
|
231
|
-
*/
|
|
232
|
-
export function createCloudflareDeployProvider(manager, projectName) {
|
|
233
|
-
const project = () => {
|
|
234
|
-
if (!projectName) {
|
|
235
|
-
throw new Error("Cloudflare addresses deployments within a project. Link this repository to a Pages project first.");
|
|
236
|
-
}
|
|
237
|
-
return projectName;
|
|
238
|
-
};
|
|
239
|
-
return {
|
|
240
|
-
async account() {
|
|
241
|
-
const user = await manager.viewer();
|
|
242
|
-
return {
|
|
243
|
-
id: user.id,
|
|
244
|
-
username: user.username ?? user.email ?? "cloudflare",
|
|
245
|
-
email: user.email ?? null,
|
|
246
|
-
};
|
|
247
|
-
},
|
|
248
|
-
async listScopes() {
|
|
249
|
-
return (await manager.listAccounts()).map((account) => ({
|
|
250
|
-
id: account.id,
|
|
251
|
-
// Cloudflare accounts have no slug; the id is what addresses one.
|
|
252
|
-
slug: account.id,
|
|
253
|
-
name: account.name,
|
|
254
|
-
}));
|
|
255
|
-
},
|
|
256
|
-
async listProjects(opts) {
|
|
257
|
-
return (await manager.listProjects(opts)).map(toProviderProject);
|
|
258
|
-
},
|
|
259
|
-
async getProject(id) {
|
|
260
|
-
return toProviderProject(await manager.getProject(id));
|
|
261
|
-
},
|
|
262
|
-
async listDeployments(opts) {
|
|
263
|
-
// One round trip, not two: the list and the project that says which
|
|
264
|
-
// deployment production currently serves are fetched together.
|
|
265
|
-
const [deployments, canonicalDeploymentId] = await Promise.all([
|
|
266
|
-
manager.listDeployments({
|
|
267
|
-
projectName: opts.projectId,
|
|
268
|
-
env: opts.target,
|
|
269
|
-
limit: opts.limit,
|
|
270
|
-
}),
|
|
271
|
-
manager.canonicalDeploymentId(opts.projectId).catch(() => undefined),
|
|
272
|
-
]);
|
|
273
|
-
return deployments.map((deployment) => toProviderDeployment(deployment, {
|
|
274
|
-
canonicalDeploymentId,
|
|
275
|
-
inspectorUrl: manager.inspectorUrl(opts.projectId, deployment.id),
|
|
276
|
-
}));
|
|
277
|
-
},
|
|
278
|
-
async getDeployment(id) {
|
|
279
|
-
const projectName = project();
|
|
280
|
-
const [deployment, canonicalDeploymentId] = await Promise.all([
|
|
281
|
-
manager.getDeployment(projectName, id),
|
|
282
|
-
manager.canonicalDeploymentId(projectName).catch(() => undefined),
|
|
283
|
-
]);
|
|
284
|
-
return toProviderDeploymentDetail(deployment, {
|
|
285
|
-
canonicalDeploymentId,
|
|
286
|
-
inspectorUrl: manager.inspectorUrl(projectName, deployment.id),
|
|
287
|
-
});
|
|
288
|
-
},
|
|
289
|
-
async buildLogs(id, limit) {
|
|
290
|
-
return (await manager.deploymentBuildLogs(project(), id, limit)).map(toBuildLogLine);
|
|
291
|
-
},
|
|
292
|
-
async listEnv(projectId) {
|
|
293
|
-
return (await manager.listEnv(projectId)).map(toProviderEnvVar);
|
|
294
|
-
},
|
|
295
|
-
async getEnvValue(projectId, envId) {
|
|
296
|
-
return manager.getEnvValue(projectId, envId);
|
|
297
|
-
},
|
|
298
|
-
async listDomains(projectId) {
|
|
299
|
-
return (await manager.listDomains(projectId)).map(toProviderDomain);
|
|
300
|
-
},
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* The write-capable half. Kept a separate factory, resolved separately, and
|
|
305
|
-
* never handed to an MCP tool — the same boundary `CloudflareActions` has.
|
|
306
|
-
*/
|
|
307
|
-
export function createCloudflareDeployActions(actions) {
|
|
308
|
-
return {
|
|
309
|
-
async run(action, input) {
|
|
310
|
-
// Cloudflare addresses a deployment within its project, so every action
|
|
311
|
-
// needs the project the route resolved — where Vercel needed the original
|
|
312
|
-
// deployment's name and target instead.
|
|
313
|
-
const projectName = requireField(input.projectId, "projectId");
|
|
314
|
-
switch (action) {
|
|
315
|
-
case "redeploy": {
|
|
316
|
-
const created = await actions.retry(projectName, input.deploymentId);
|
|
317
|
-
return { deployment: created };
|
|
318
|
-
}
|
|
319
|
-
case "rollback": {
|
|
320
|
-
const rolled = await actions.rollback(projectName, input.deploymentId);
|
|
321
|
-
return { deployment: rolled };
|
|
322
|
-
}
|
|
323
|
-
default:
|
|
324
|
-
throw new Error(`Cloudflare does not support the action "${action}".`);
|
|
325
|
-
}
|
|
326
|
-
},
|
|
327
|
-
async createEnv(projectId, input) {
|
|
328
|
-
return toProviderEnvVar(await actions.createEnv(projectId, {
|
|
329
|
-
key: input.key,
|
|
330
|
-
value: input.value,
|
|
331
|
-
environments: input.environments,
|
|
332
|
-
secret: input.type !== "plain",
|
|
333
|
-
}));
|
|
334
|
-
},
|
|
335
|
-
async updateEnv(projectId, envId, input) {
|
|
336
|
-
return toProviderEnvVar(await actions.updateEnv(projectId, envId, input));
|
|
337
|
-
},
|
|
338
|
-
async deleteEnv(projectId, envId) {
|
|
339
|
-
await actions.deleteEnv(projectId, envId);
|
|
340
|
-
},
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
function requireField(value, field) {
|
|
344
|
-
if (!value)
|
|
345
|
-
throw new Error(`This action requires "${field}".`);
|
|
346
|
-
return value;
|
|
347
|
-
}
|
|
348
|
-
//# sourceMappingURL=cloudflare-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare-provider.js","sourceRoot":"","sources":["../../src/core/cloudflare-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export type ConfigFileFormat = "env" | "json" | "yaml";
|
|
2
|
-
export interface ConfigFileInfo {
|
|
3
|
-
path: string;
|
|
4
|
-
relativePath: string;
|
|
5
|
-
format: ConfigFileFormat;
|
|
6
|
-
}
|
|
7
|
-
export declare function formatFromName(name: string): ConfigFileFormat | undefined;
|
|
8
|
-
export declare function detectConfigFiles(cwd: string): Promise<ConfigFileInfo[]>;
|
|
9
|
-
export interface BrowseEntry {
|
|
10
|
-
name: string;
|
|
11
|
-
relativePath: string;
|
|
12
|
-
kind: "directory" | "file";
|
|
13
|
-
format?: ConfigFileFormat;
|
|
14
|
-
supported: boolean;
|
|
15
|
-
}
|
|
16
|
-
export interface BrowseResult {
|
|
17
|
-
cwd: string;
|
|
18
|
-
currentPath: string;
|
|
19
|
-
relativePath: string;
|
|
20
|
-
isRoot: boolean;
|
|
21
|
-
entries: BrowseEntry[];
|
|
22
|
-
}
|
|
23
|
-
export declare function browseDirectory(cwd: string, requested: string | undefined): Promise<BrowseResult>;
|
|
24
|
-
export declare class ConfigFilePathError extends Error {
|
|
25
|
-
}
|
|
26
|
-
export declare function resolveConfigFile(cwd: string, requested: string): ConfigFileInfo;
|
|
27
|
-
export declare function validateJson(text: string): void;
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { readdir } from "node:fs/promises";
|
|
2
|
-
import { basename, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
3
|
-
export function formatFromName(name) {
|
|
4
|
-
if (name === ".env" || name.startsWith(".env."))
|
|
5
|
-
return "env";
|
|
6
|
-
if (/^appsettings(\..+)?\.json$/i.test(name))
|
|
7
|
-
return "json";
|
|
8
|
-
if (/^application(-.+)?\.ya?ml$/i.test(name))
|
|
9
|
-
return "yaml";
|
|
10
|
-
return undefined;
|
|
11
|
-
}
|
|
12
|
-
const IGNORED_DIRS = new Set([
|
|
13
|
-
".git",
|
|
14
|
-
"node_modules",
|
|
15
|
-
"dist",
|
|
16
|
-
"build",
|
|
17
|
-
"out",
|
|
18
|
-
"bin",
|
|
19
|
-
"obj",
|
|
20
|
-
".next",
|
|
21
|
-
".nuxt",
|
|
22
|
-
".turbo",
|
|
23
|
-
".vite",
|
|
24
|
-
".cache",
|
|
25
|
-
"coverage",
|
|
26
|
-
"target",
|
|
27
|
-
"venv",
|
|
28
|
-
".venv",
|
|
29
|
-
"__pycache__",
|
|
30
|
-
]);
|
|
31
|
-
const MAX_DEPTH = 4;
|
|
32
|
-
const MAX_FILES = 200;
|
|
33
|
-
export async function detectConfigFiles(cwd) {
|
|
34
|
-
const root = resolve(cwd);
|
|
35
|
-
const results = [];
|
|
36
|
-
await walk(root, root, 0, results);
|
|
37
|
-
results.sort((a, b) => a.relativePath.localeCompare(b.relativePath));
|
|
38
|
-
return results;
|
|
39
|
-
}
|
|
40
|
-
async function walk(root, current, depth, results) {
|
|
41
|
-
if (results.length >= MAX_FILES)
|
|
42
|
-
return;
|
|
43
|
-
let entries;
|
|
44
|
-
try {
|
|
45
|
-
entries = await readdir(current, { withFileTypes: true });
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
for (const entry of entries) {
|
|
51
|
-
if (results.length >= MAX_FILES)
|
|
52
|
-
return;
|
|
53
|
-
if (entry.name.startsWith(".") && entry.isDirectory() && IGNORED_DIRS.has(entry.name)) {
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
if (entry.isDirectory()) {
|
|
57
|
-
if (IGNORED_DIRS.has(entry.name))
|
|
58
|
-
continue;
|
|
59
|
-
if (depth + 1 > MAX_DEPTH)
|
|
60
|
-
continue;
|
|
61
|
-
await walk(root, join(current, entry.name), depth + 1, results);
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
if (!entry.isFile())
|
|
65
|
-
continue;
|
|
66
|
-
const format = formatFromName(entry.name);
|
|
67
|
-
if (!format)
|
|
68
|
-
continue;
|
|
69
|
-
const path = join(current, entry.name);
|
|
70
|
-
results.push({ path, relativePath: relative(root, path), format });
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
export async function browseDirectory(cwd, requested) {
|
|
74
|
-
const root = resolve(cwd);
|
|
75
|
-
const current = requested
|
|
76
|
-
? assertWithinRoot(root, isAbsolute(requested) ? resolve(requested) : resolve(root, requested))
|
|
77
|
-
: root;
|
|
78
|
-
const rel = relative(root, current);
|
|
79
|
-
const entries = await readdir(current, { withFileTypes: true }).catch(() => []);
|
|
80
|
-
const items = [];
|
|
81
|
-
for (const entry of entries) {
|
|
82
|
-
if (entry.name.startsWith(".") && IGNORED_DIRS.has(entry.name))
|
|
83
|
-
continue;
|
|
84
|
-
if (entry.isDirectory()) {
|
|
85
|
-
if (IGNORED_DIRS.has(entry.name))
|
|
86
|
-
continue;
|
|
87
|
-
const fullPath = join(current, entry.name);
|
|
88
|
-
items.push({
|
|
89
|
-
name: entry.name,
|
|
90
|
-
relativePath: relative(root, fullPath),
|
|
91
|
-
kind: "directory",
|
|
92
|
-
supported: true,
|
|
93
|
-
});
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
if (!entry.isFile())
|
|
97
|
-
continue;
|
|
98
|
-
const format = formatFromName(entry.name);
|
|
99
|
-
const fullPath = join(current, entry.name);
|
|
100
|
-
items.push({
|
|
101
|
-
name: entry.name,
|
|
102
|
-
relativePath: relative(root, fullPath),
|
|
103
|
-
kind: "file",
|
|
104
|
-
format,
|
|
105
|
-
supported: !!format,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
items.sort((a, b) => {
|
|
109
|
-
if (a.kind !== b.kind)
|
|
110
|
-
return a.kind === "directory" ? -1 : 1;
|
|
111
|
-
return a.name.localeCompare(b.name);
|
|
112
|
-
});
|
|
113
|
-
return {
|
|
114
|
-
cwd: root,
|
|
115
|
-
currentPath: current,
|
|
116
|
-
relativePath: rel,
|
|
117
|
-
isRoot: current === root,
|
|
118
|
-
entries: items,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
function assertWithinRoot(root, candidate) {
|
|
122
|
-
const rel = relative(root, candidate);
|
|
123
|
-
if (rel.startsWith("..") || rel.startsWith(`..${sep}`) || isAbsolute(rel)) {
|
|
124
|
-
throw new ConfigFilePathError("Path must live inside the service directory.");
|
|
125
|
-
}
|
|
126
|
-
return candidate;
|
|
127
|
-
}
|
|
128
|
-
export class ConfigFilePathError extends Error {
|
|
129
|
-
}
|
|
130
|
-
export function resolveConfigFile(cwd, requested) {
|
|
131
|
-
if (!requested || requested.includes("\0")) {
|
|
132
|
-
throw new ConfigFilePathError("Invalid config file path.");
|
|
133
|
-
}
|
|
134
|
-
const absolute = isAbsolute(requested) ? resolve(requested) : resolve(cwd, requested);
|
|
135
|
-
const rel = relative(cwd, absolute);
|
|
136
|
-
if (rel.startsWith("..") || rel.startsWith(`..${sep}`) || isAbsolute(rel)) {
|
|
137
|
-
throw new ConfigFilePathError("Config file must live inside the service directory.");
|
|
138
|
-
}
|
|
139
|
-
const name = basename(absolute);
|
|
140
|
-
const format = formatFromName(name);
|
|
141
|
-
if (!format) {
|
|
142
|
-
throw new ConfigFilePathError(`Unsupported config file: ${name}`);
|
|
143
|
-
}
|
|
144
|
-
return { path: absolute, relativePath: rel, format };
|
|
145
|
-
}
|
|
146
|
-
export function validateJson(text) {
|
|
147
|
-
try {
|
|
148
|
-
JSON.parse(text);
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
throw new Error(`Invalid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=config-files.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-files.js","sourceRoot":"","sources":["../../src/core/config-files.ts"],"names":[],"mappings":"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"}
|