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,414 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Read-safe Cloudflare Pages REST client — the agent-reachable half of the
|
|
3
|
-
* integration, and the mirror of `vercel-manager.ts`.
|
|
4
|
-
*
|
|
5
|
-
* Like {@link ./git-manager.js GitManager}, nothing here changes what is
|
|
6
|
-
* deployed: retry / rollback and the environment-variable writes live in
|
|
7
|
-
* `cloudflare-actions.ts` behind the dashboard's guarded route.
|
|
8
|
-
*
|
|
9
|
-
* Two shapes of Cloudflare's API drive most of what looks odd below:
|
|
10
|
-
*
|
|
11
|
-
* 1. **Everything is account-scoped.** Vercel's `teamId` is optional; a
|
|
12
|
-
* Cloudflare account id is in the path of every Pages call, so an unscoped
|
|
13
|
-
* client can answer `viewer()` and `listAccounts()` and nothing else.
|
|
14
|
-
* 2. **Projects are addressed by name, deployments only within a project.**
|
|
15
|
-
* There is no global deployment endpoint, which is why every deployment read
|
|
16
|
-
* here takes the project name.
|
|
17
|
-
*/
|
|
18
|
-
import { providerApiBase } from "./providers/api-base.js";
|
|
19
|
-
/**
|
|
20
|
-
* The largest `per_page` the Pages list endpoints accept. Established by
|
|
21
|
-
* probing a live account: 10 succeeds, 11 and up are rejected. Not in the
|
|
22
|
-
* OpenAPI schema, which types `per_page` as an unbounded integer.
|
|
23
|
-
*/
|
|
24
|
-
const PAGES_MAX_PER_PAGE = 10;
|
|
25
|
-
/** How far `pages()` will walk before giving up, so a caller cannot page forever. */
|
|
26
|
-
const MAX_PAGES = 10;
|
|
27
|
-
/** Default ceiling for an unbounded list read — ten pages' worth. */
|
|
28
|
-
const MAX_PAGED_RESULTS = PAGES_MAX_PER_PAGE * MAX_PAGES;
|
|
29
|
-
export class CloudflareApiError extends Error {
|
|
30
|
-
status;
|
|
31
|
-
path;
|
|
32
|
-
code;
|
|
33
|
-
constructor(message, status, path,
|
|
34
|
-
/** Cloudflare's own numeric error code, when it sent one. */
|
|
35
|
-
code) {
|
|
36
|
-
super(message);
|
|
37
|
-
this.status = status;
|
|
38
|
-
this.path = path;
|
|
39
|
-
this.code = code;
|
|
40
|
-
this.name = "CloudflareApiError";
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Cloudflare keys an imported project by owner and repository name rather than
|
|
45
|
-
* by a URL, so the "repo url" this provider matches on is `owner/repo`.
|
|
46
|
-
*
|
|
47
|
-
* The contract calls this a repo *URL* because that is what Vercel wants; what
|
|
48
|
-
* it actually means is "the string this vendor recognizes a repository by", and
|
|
49
|
-
* only {@link CloudflareManager.findProjectByRepo} ever interprets it.
|
|
50
|
-
*/
|
|
51
|
-
export function cloudflareRepoUrl(remoteUrl) {
|
|
52
|
-
const trimmed = remoteUrl.trim().replace(/\.git$/, "").replace(/\/$/, "");
|
|
53
|
-
const ssh = /^[\w.-]+@[^:]+:(?<path>.+)$/.exec(trimmed);
|
|
54
|
-
const path = ssh?.groups?.path ?? trimmed.replace(/^https?:\/\/[^/]+\//, "");
|
|
55
|
-
const parts = path.split("/").filter(Boolean);
|
|
56
|
-
if (parts.length < 2)
|
|
57
|
-
return null;
|
|
58
|
-
return parts.slice(-2).join("/").toLowerCase();
|
|
59
|
-
}
|
|
60
|
-
/** Cloudflare's API, or the loopback stand-in an environment override names. */
|
|
61
|
-
export function cloudflareApiBase() {
|
|
62
|
-
return providerApiBase("NOMOREIDE_CLOUDFLARE_API_BASE", "https://api.cloudflare.com/client/v4");
|
|
63
|
-
}
|
|
64
|
-
export class CloudflareManager {
|
|
65
|
-
token;
|
|
66
|
-
accountId;
|
|
67
|
-
baseUrl;
|
|
68
|
-
fetchImpl;
|
|
69
|
-
constructor(token, accountId, baseUrl = cloudflareApiBase(),
|
|
70
|
-
/** The provider's scoped `fetch`; global `fetch` when built outside the registry. */
|
|
71
|
-
fetchImpl) {
|
|
72
|
-
this.token = token;
|
|
73
|
-
this.accountId = accountId;
|
|
74
|
-
this.baseUrl = baseUrl;
|
|
75
|
-
this.fetchImpl = fetchImpl;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* The signed-in account.
|
|
79
|
-
*
|
|
80
|
-
* `/user` needs a token carrying User Details Read, which a project-scoped
|
|
81
|
-
* API token typically does not have. Rather than fail the whole dashboard
|
|
82
|
-
* over an identity nicety, a rejected `/user` falls back to the token's own
|
|
83
|
-
* verification and the selected account's name.
|
|
84
|
-
*/
|
|
85
|
-
async viewer() {
|
|
86
|
-
try {
|
|
87
|
-
const user = await this.request("/user");
|
|
88
|
-
// Cloudflare's `username` is an opaque 32-char hex id, not a display
|
|
89
|
-
// name, so the email is the only human-readable identity `/user` carries.
|
|
90
|
-
// Preferring `username` here put a hex blob in the account menu.
|
|
91
|
-
return { id: user.id, email: user.email ?? null, username: user.email ?? user.username };
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
if (!(error instanceof CloudflareApiError) || error.status >= 500)
|
|
95
|
-
throw error;
|
|
96
|
-
return this.tokenViewer(error);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Identity for a token that cannot read `/user`. `/user/tokens/verify` is
|
|
101
|
-
* answerable by every API token, so a failure there is a genuine auth error
|
|
102
|
-
* and is left to propagate.
|
|
103
|
-
*/
|
|
104
|
-
async tokenViewer(cause) {
|
|
105
|
-
const verified = await this.request("/user/tokens/verify");
|
|
106
|
-
if (verified.status && verified.status !== "active") {
|
|
107
|
-
throw new CloudflareApiError(`This Cloudflare API token is ${verified.status}.`, 401, "/user/tokens/verify", cause.code);
|
|
108
|
-
}
|
|
109
|
-
const accounts = await this.listAccounts().catch(() => []);
|
|
110
|
-
const account = accounts.find((entry) => entry.id === this.accountId) ?? accounts[0];
|
|
111
|
-
return {
|
|
112
|
-
id: verified.id ?? this.accountId ?? "",
|
|
113
|
-
email: null,
|
|
114
|
-
username: account?.name ?? "Cloudflare API token",
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
async listAccounts() {
|
|
118
|
-
const accounts = await this.request("/accounts?per_page=50");
|
|
119
|
-
return accounts.map((account) => ({ id: account.id, name: account.name ?? account.id }));
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Every project in the account.
|
|
123
|
-
*
|
|
124
|
-
* Cloudflare has no search or repository filter on this endpoint, so both are
|
|
125
|
-
* applied here. That is a page of extra bytes, not a page of extra requests —
|
|
126
|
-
* the list endpoint returns whole project objects either way.
|
|
127
|
-
*/
|
|
128
|
-
async listProjects(opts = {}) {
|
|
129
|
-
const raw = await this.pages(`/accounts/${this.account()}/pages/projects`, opts.limit ?? MAX_PAGED_RESULTS);
|
|
130
|
-
let projects = raw.map(normalizeProject);
|
|
131
|
-
if (opts.search) {
|
|
132
|
-
const needle = opts.search.toLowerCase();
|
|
133
|
-
projects = projects.filter((project) => project.name.toLowerCase().includes(needle));
|
|
134
|
-
}
|
|
135
|
-
if (opts.repoUrl) {
|
|
136
|
-
const wanted = opts.repoUrl.toLowerCase();
|
|
137
|
-
projects = projects.filter((project) => repoSlug(project) === wanted);
|
|
138
|
-
}
|
|
139
|
-
return projects;
|
|
140
|
-
}
|
|
141
|
-
/** The project a repository deploys, matched on `owner/repo`. */
|
|
142
|
-
async findProjectByRepo(repoUrl) {
|
|
143
|
-
return (await this.listProjects({ repoUrl, limit: 100 }))[0];
|
|
144
|
-
}
|
|
145
|
-
async getProject(name) {
|
|
146
|
-
return normalizeProject(await this.request(`/accounts/${this.account()}/pages/projects/${encodeURIComponent(name)}`));
|
|
147
|
-
}
|
|
148
|
-
async listDeployments(opts) {
|
|
149
|
-
const raw = await this.pages(`${this.projectPath(opts.projectName)}/deployments`, opts.limit ?? 20, opts.env ? { env: opts.env } : undefined);
|
|
150
|
-
return raw.map(normalizeDeployment);
|
|
151
|
-
}
|
|
152
|
-
async getDeployment(projectName, deploymentId) {
|
|
153
|
-
return normalizeDeployment(await this.request(`${this.projectPath(projectName)}/deployments/${encodeURIComponent(deploymentId)}`));
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* The deployment that currently serves production, which Cloudflare records
|
|
157
|
-
* on the project rather than on the deployment. A rollback moves it, so it
|
|
158
|
-
* cannot be inferred from "the newest successful production build".
|
|
159
|
-
*/
|
|
160
|
-
async canonicalDeploymentId(projectName) {
|
|
161
|
-
const raw = await this.request(`/accounts/${this.account()}/pages/projects/${encodeURIComponent(projectName)}`);
|
|
162
|
-
return raw.canonical_deployment?.id ?? raw.latest_deployment?.id;
|
|
163
|
-
}
|
|
164
|
-
async deploymentBuildLogs(projectName, deploymentId, limit = 500) {
|
|
165
|
-
const data = await this.request(`${this.projectPath(projectName)}/deployments/${encodeURIComponent(deploymentId)}/history/logs`);
|
|
166
|
-
const lines = (data.data ?? [])
|
|
167
|
-
.map((entry, index) => ({
|
|
168
|
-
id: `${entry.ts ?? index}-${index}`,
|
|
169
|
-
createdAt: epochMs(entry.ts) ?? 0,
|
|
170
|
-
text: (entry.line ?? "").trimEnd(),
|
|
171
|
-
}))
|
|
172
|
-
.filter((line) => line.text.length > 0);
|
|
173
|
-
// Cloudflare returns the whole build; the caller's limit is the tail of it,
|
|
174
|
-
// which is where a failure's cause is.
|
|
175
|
-
return lines.slice(-limit);
|
|
176
|
-
}
|
|
177
|
-
/** Variables for the project, keys and environments only — values are dropped. */
|
|
178
|
-
async listEnv(projectName) {
|
|
179
|
-
const project = await this.getProject(projectName);
|
|
180
|
-
return project.envVars.map(({ value: _value, ...rest }) => rest);
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* One variable's value.
|
|
184
|
-
*
|
|
185
|
-
* Cloudflare returns `plain_text` values in the project payload but never a
|
|
186
|
-
* `secret_text` one — the value is write-only. So this can answer for the
|
|
187
|
-
* former and must say so plainly for the latter, rather than returning an
|
|
188
|
-
* empty string the UI would render as "this secret is blank".
|
|
189
|
-
*/
|
|
190
|
-
async getEnvValue(projectName, key) {
|
|
191
|
-
const project = await this.getProject(projectName);
|
|
192
|
-
const variable = project.envVars.find((entry) => entry.key === key);
|
|
193
|
-
if (!variable)
|
|
194
|
-
throw new Error(`No variable named "${key}" on this project.`);
|
|
195
|
-
if (variable.type === "secret_text") {
|
|
196
|
-
throw new Error("Cloudflare never returns a secret's value. Set a new one to change it.");
|
|
197
|
-
}
|
|
198
|
-
return variable.value ?? "";
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* The project's domains, including the `*.pages.dev` host Cloudflare assigns.
|
|
202
|
-
*
|
|
203
|
-
* `/domains` lists **custom** domains only, so a project that is serving
|
|
204
|
-
* perfectly well reads as having none — while Vercel's equivalent endpoint
|
|
205
|
-
* includes the vendor-assigned `*.vercel.app`. Both render through the same
|
|
206
|
-
* generic view, so the asymmetry showed up on a live account as "no domains"
|
|
207
|
-
* beside a site anyone could load. The subdomain goes last, the way Vercel
|
|
208
|
-
* orders its own, so a custom domain still leads.
|
|
209
|
-
*
|
|
210
|
-
* A failed project read degrades to the custom domains alone: the panel is
|
|
211
|
-
* still correct, just missing the assigned host.
|
|
212
|
-
*/
|
|
213
|
-
async listDomains(projectName) {
|
|
214
|
-
const [raw, project] = await Promise.all([
|
|
215
|
-
this.request(`${this.projectPath(projectName)}/domains`),
|
|
216
|
-
this.getProject(projectName).catch(() => undefined),
|
|
217
|
-
]);
|
|
218
|
-
const domains = raw.map(normalizeDomain);
|
|
219
|
-
const subdomain = project?.subdomain;
|
|
220
|
-
if (!subdomain || domains.some((domain) => domain.name === subdomain))
|
|
221
|
-
return domains;
|
|
222
|
-
return [...domains, { name: subdomain, status: "active", createdAt: project?.createdAt }];
|
|
223
|
-
}
|
|
224
|
-
/** The dashboard page for a deployment, which Cloudflare does not return. */
|
|
225
|
-
inspectorUrl(projectName, deploymentId) {
|
|
226
|
-
if (!this.accountId)
|
|
227
|
-
return undefined;
|
|
228
|
-
return `https://dash.cloudflare.com/${this.accountId}/pages/view/${encodeURIComponent(projectName)}/${encodeURIComponent(deploymentId)}`;
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* A Pages list endpoint, read a page at a time until `limit` is reached.
|
|
232
|
-
*
|
|
233
|
-
* Pages caps `per_page` at 10 and rejects anything larger outright with
|
|
234
|
-
* `8000024 Invalid list options provided` — a whole-request failure, not a
|
|
235
|
-
* silent truncation. The cap is undocumented: the OpenAPI schema types
|
|
236
|
-
* `per_page` as a plain integer and only hints at it through `example: 10`.
|
|
237
|
-
* Asking for the old 20–100 therefore failed every single call.
|
|
238
|
-
*
|
|
239
|
-
* Paging is what keeps the callers whole, since a 10-item page cannot answer
|
|
240
|
-
* "find the project for this repo" on its own.
|
|
241
|
-
*/
|
|
242
|
-
async pages(path, limit, query) {
|
|
243
|
-
const wanted = Math.max(limit, 1);
|
|
244
|
-
const results = [];
|
|
245
|
-
for (let page = 1; results.length < wanted && page <= MAX_PAGES; page++) {
|
|
246
|
-
const params = new URLSearchParams({
|
|
247
|
-
...query,
|
|
248
|
-
per_page: String(PAGES_MAX_PER_PAGE),
|
|
249
|
-
page: String(page),
|
|
250
|
-
});
|
|
251
|
-
const batch = await this.request(`${path}?${params}`);
|
|
252
|
-
results.push(...batch);
|
|
253
|
-
// A short page is the last page; Pages sends no total to check against.
|
|
254
|
-
if (batch.length < PAGES_MAX_PER_PAGE)
|
|
255
|
-
break;
|
|
256
|
-
}
|
|
257
|
-
return results.slice(0, wanted);
|
|
258
|
-
}
|
|
259
|
-
projectPath(projectName) {
|
|
260
|
-
return `/accounts/${this.account()}/pages/projects/${encodeURIComponent(projectName)}`;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* The account every Pages path needs. Throwing here rather than sending a
|
|
264
|
-
* request with `undefined` in the URL is what turns "no account chosen" into
|
|
265
|
-
* a sentence the scope switcher answers.
|
|
266
|
-
*
|
|
267
|
-
* The message names the empty-picker case too: `/accounts` answers `success`
|
|
268
|
-
* with an empty list for a token carrying no Account Resources, so "choose an
|
|
269
|
-
* account" on its own sends the reader looking for a choice that isn't there.
|
|
270
|
-
*/
|
|
271
|
-
account() {
|
|
272
|
-
if (!this.accountId) {
|
|
273
|
-
throw new Error("Choose a Cloudflare account before reading its Pages projects. " +
|
|
274
|
-
"If the account list is empty, this API token has no account access — " +
|
|
275
|
-
"recreate it with Account Resources including your account.");
|
|
276
|
-
}
|
|
277
|
-
return this.accountId;
|
|
278
|
-
}
|
|
279
|
-
request(path, opts) {
|
|
280
|
-
return cloudflareRequest({ token: this.token, baseUrl: this.baseUrl, fetch: this.fetchImpl }, path, opts);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* The one place a Cloudflare API call is made. Shared with
|
|
285
|
-
* `cloudflare-actions.ts` so auth and error shaping stay identical across the
|
|
286
|
-
* read and write halves — the read/write boundary is which module exposes an
|
|
287
|
-
* operation, not which one can reach the network.
|
|
288
|
-
*/
|
|
289
|
-
export async function cloudflareRequest(auth, path, opts) {
|
|
290
|
-
const url = path.startsWith("http")
|
|
291
|
-
? path
|
|
292
|
-
: `${auth.baseUrl ?? cloudflareApiBase()}${path}`;
|
|
293
|
-
const headers = {
|
|
294
|
-
Authorization: `Bearer ${auth.token}`,
|
|
295
|
-
Accept: "application/json",
|
|
296
|
-
};
|
|
297
|
-
const init = { method: opts?.method ?? "GET", headers };
|
|
298
|
-
if (opts?.body !== undefined) {
|
|
299
|
-
headers["Content-Type"] = "application/json";
|
|
300
|
-
init.body = JSON.stringify(opts.body);
|
|
301
|
-
}
|
|
302
|
-
const response = await (auth.fetch ?? fetch)(url, init);
|
|
303
|
-
const body = (await response.json().catch(() => ({})));
|
|
304
|
-
// Cloudflare can answer 200 with `success: false`, so the envelope decides,
|
|
305
|
-
// not the status line.
|
|
306
|
-
if (!response.ok || body.success === false) {
|
|
307
|
-
const failure = body.errors?.[0];
|
|
308
|
-
throw new CloudflareApiError(failure?.message ?? `Cloudflare returned ${response.status} for ${path}`, response.status, path, failure?.code);
|
|
309
|
-
}
|
|
310
|
-
return body.result;
|
|
311
|
-
}
|
|
312
|
-
/** Cloudflare timestamps are RFC 3339 strings; everything downstream wants epoch ms. */
|
|
313
|
-
function epochMs(value) {
|
|
314
|
-
if (!value)
|
|
315
|
-
return undefined;
|
|
316
|
-
const parsed = Date.parse(value);
|
|
317
|
-
return Number.isNaN(parsed) ? undefined : parsed;
|
|
318
|
-
}
|
|
319
|
-
const repoSlug = (project) => project.source?.owner && project.source.repoName
|
|
320
|
-
? `${project.source.owner}/${project.source.repoName}`.toLowerCase()
|
|
321
|
-
: undefined;
|
|
322
|
-
/**
|
|
323
|
-
* Flattens the per-environment `{ NAME: { type, value } }` maps into one entry
|
|
324
|
-
* per key, carrying every environment it appears in. A key that is plain text
|
|
325
|
-
* in one environment and a secret in another is reported as a secret, because
|
|
326
|
-
* the stricter of the two is the one that governs whether a value may be read.
|
|
327
|
-
*/
|
|
328
|
-
function normalizeEnvVars(configs) {
|
|
329
|
-
const merged = new Map();
|
|
330
|
-
for (const [environment, config] of Object.entries(configs ?? {})) {
|
|
331
|
-
for (const [key, entry] of Object.entries(config?.env_vars ?? {})) {
|
|
332
|
-
if (!entry)
|
|
333
|
-
continue;
|
|
334
|
-
const type = entry.type === "plain_text" ? "plain_text" : "secret_text";
|
|
335
|
-
const existing = merged.get(key);
|
|
336
|
-
if (existing) {
|
|
337
|
-
existing.environments.push(environment);
|
|
338
|
-
if (type === "secret_text")
|
|
339
|
-
existing.type = "secret_text";
|
|
340
|
-
if (existing.value === undefined)
|
|
341
|
-
existing.value = entry.value;
|
|
342
|
-
continue;
|
|
343
|
-
}
|
|
344
|
-
merged.set(key, { key, environments: [environment], type, value: entry.value });
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
return [...merged.values()].sort((a, b) => a.key.localeCompare(b.key));
|
|
348
|
-
}
|
|
349
|
-
function normalizeProject(project) {
|
|
350
|
-
const build = project.build_config ?? {};
|
|
351
|
-
return {
|
|
352
|
-
uuid: project.id,
|
|
353
|
-
name: project.name,
|
|
354
|
-
framework: project.framework ?? null,
|
|
355
|
-
productionBranch: project.production_branch ?? null,
|
|
356
|
-
createdAt: epochMs(project.created_on),
|
|
357
|
-
updatedAt: epochMs(project.latest_deployment?.modified_on) ?? epochMs(project.created_on),
|
|
358
|
-
subdomain: project.subdomain ?? null,
|
|
359
|
-
source: project.source?.type
|
|
360
|
-
? {
|
|
361
|
-
type: project.source.type,
|
|
362
|
-
owner: project.source.config?.owner,
|
|
363
|
-
repoName: project.source.config?.repo_name,
|
|
364
|
-
productionBranch: project.source.config?.production_branch ?? project.production_branch ?? undefined,
|
|
365
|
-
}
|
|
366
|
-
: undefined,
|
|
367
|
-
// Cloudflare always sends the whole `build_config`, so a null here really
|
|
368
|
-
// does mean "not set" rather than "not read".
|
|
369
|
-
buildCommand: build.build_command ?? null,
|
|
370
|
-
destinationDir: build.destination_dir ?? null,
|
|
371
|
-
rootDir: build.root_dir ?? null,
|
|
372
|
-
envVars: normalizeEnvVars(project.deployment_configs),
|
|
373
|
-
};
|
|
374
|
-
}
|
|
375
|
-
function normalizeDeployment(deployment) {
|
|
376
|
-
const trigger = deployment.deployment_trigger?.metadata ?? {};
|
|
377
|
-
return {
|
|
378
|
-
id: deployment.id,
|
|
379
|
-
shortId: deployment.short_id,
|
|
380
|
-
projectName: deployment.project_name ?? "",
|
|
381
|
-
// Cloudflare returns a full URL where the contract wants a bare hostname.
|
|
382
|
-
url: deployment.url ? deployment.url.replace(/^https?:\/\//, "").replace(/\/$/, "") : null,
|
|
383
|
-
environment: deployment.environment ?? "preview",
|
|
384
|
-
stage: {
|
|
385
|
-
name: deployment.latest_stage?.name ?? "queued",
|
|
386
|
-
status: deployment.latest_stage?.status ?? "idle",
|
|
387
|
-
},
|
|
388
|
-
isSkipped: deployment.is_skipped ?? false,
|
|
389
|
-
createdAt: epochMs(deployment.created_on) ?? 0,
|
|
390
|
-
modifiedAt: epochMs(deployment.modified_on),
|
|
391
|
-
aliases: (deployment.aliases ?? []).map((alias) => alias.replace(/^https?:\/\//, "").replace(/\/$/, "")),
|
|
392
|
-
branch: trigger.branch,
|
|
393
|
-
commitHash: trigger.commit_hash,
|
|
394
|
-
commitMessage: trigger.commit_message,
|
|
395
|
-
};
|
|
396
|
-
}
|
|
397
|
-
function normalizeDomain(domain) {
|
|
398
|
-
const validation = domain.validation_data ?? undefined;
|
|
399
|
-
return {
|
|
400
|
-
name: domain.name,
|
|
401
|
-
status: domain.status ?? "pending",
|
|
402
|
-
createdAt: epochMs(domain.created_on),
|
|
403
|
-
validation: validation
|
|
404
|
-
? {
|
|
405
|
-
method: validation.method,
|
|
406
|
-
status: validation.status,
|
|
407
|
-
txtName: validation.txt_name,
|
|
408
|
-
txtValue: validation.txt_value,
|
|
409
|
-
}
|
|
410
|
-
: undefined,
|
|
411
|
-
errorMessage: validation?.error_message ?? domain.verification_data?.error_message,
|
|
412
|
-
};
|
|
413
|
-
}
|
|
414
|
-
//# sourceMappingURL=cloudflare-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare-manager.js","sourceRoot":"","sources":["../../src/core/cloudflare-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { type CloudflareActions } from "./cloudflare-actions.js";
|
|
2
|
-
import { type CloudflareDeployment, type CloudflareDomain, type CloudflareEnvVar, type CloudflareManager, type CloudflareProject } from "./cloudflare-manager.js";
|
|
3
|
-
import type { DeployProvider, DeployProviderActions, DeployProviderHooks, DeployProviderManifest, ProviderDeployment, ProviderDeploymentState, ProviderDomain, ProviderEnvVar, ProviderProject } from "./providers/deploy-provider.js";
|
|
4
|
-
/**
|
|
5
|
-
* Cloudflare Pages as `DeployProvider` implementation #2 — the one that tests
|
|
6
|
-
* whether the contract was shaped by the problem or by Vercel.
|
|
7
|
-
*
|
|
8
|
-
* A pure adapter, like `vercel-provider.ts`: every method delegates to
|
|
9
|
-
* `CloudflareManager` or `CloudflareActions` and only reshapes the result.
|
|
10
|
-
*
|
|
11
|
-
* Three places the contract had to absorb a genuinely different vendor, all
|
|
12
|
-
* without changing a signature:
|
|
13
|
-
*
|
|
14
|
-
* 1. **Deployment reads are project-scoped.** Cloudflare has no global
|
|
15
|
-
* deployment endpoint, so {@link createCloudflareDeployProvider} closes over
|
|
16
|
-
* the project the caller already resolved rather than widening
|
|
17
|
-
* `getDeployment(id)` to take one. `ProviderContext` bundles a provider with
|
|
18
|
-
* its project anyway, so this costs the callers nothing.
|
|
19
|
-
* 2. **`rawState` earns its keep immediately.** Cloudflare's state is a
|
|
20
|
-
* (stage, status) pair, not an enum — there is no eight-value list to map
|
|
21
|
-
* from, so the pair is carried through as `stage:status` and the neutral
|
|
22
|
-
* state is computed.
|
|
23
|
-
* 3. **`ProviderProject.id` is whatever the vendor addresses projects by.**
|
|
24
|
-
* Cloudflare's paths use the project *name*, so that is the id here and its
|
|
25
|
-
* UUID is not exposed. Pinning a project in config therefore stores a name.
|
|
26
|
-
*/
|
|
27
|
-
export declare const CLOUDFLARE_MANIFEST: DeployProviderManifest;
|
|
28
|
-
/**
|
|
29
|
-
* No `linkFile`: Wrangler records a project's *name* in `wrangler.toml` /
|
|
30
|
-
* `wrangler.jsonc`, neither of which is JSON, and neither of which is written
|
|
31
|
-
* by a link command the way `.vercel/project.json` is. That tier of the
|
|
32
|
-
* resolution ladder is simply skipped, which is what it was built to allow.
|
|
33
|
-
*/
|
|
34
|
-
export declare const CLOUDFLARE_HOOKS: DeployProviderHooks;
|
|
35
|
-
/**
|
|
36
|
-
* Cloudflare's (stage, status) pair onto the seven neutral states.
|
|
37
|
-
*
|
|
38
|
-
* A build is `success` at every stage it completes, so "succeeded" only means
|
|
39
|
-
* "ready" once the stage reached is `deploy`; anything earlier is still in
|
|
40
|
-
* flight. A skipped deployment — Cloudflare's own eighth outcome — has no
|
|
41
|
-
* neutral equivalent, so it folds into `canceled` and survives in `rawState`,
|
|
42
|
-
* which is exactly the pressure valve that state field was added for.
|
|
43
|
-
*/
|
|
44
|
-
export declare function toProviderState(deployment: CloudflareDeployment): ProviderDeploymentState;
|
|
45
|
-
export declare function toProviderProject(project: CloudflareProject): ProviderProject;
|
|
46
|
-
export declare function toProviderDeployment(deployment: CloudflareDeployment, context?: {
|
|
47
|
-
canonicalDeploymentId?: string;
|
|
48
|
-
inspectorUrl?: string;
|
|
49
|
-
}): ProviderDeployment;
|
|
50
|
-
export declare function toProviderEnvVar(env: CloudflareEnvVar): ProviderEnvVar;
|
|
51
|
-
export declare function toProviderDomain(domain: CloudflareDomain): ProviderDomain;
|
|
52
|
-
/**
|
|
53
|
-
* The read-safe half, over an already-authenticated `CloudflareManager`.
|
|
54
|
-
*
|
|
55
|
-
* `projectName` is the project the caller resolved for this repository, and is
|
|
56
|
-
* what makes the project-scoped deployment endpoints reachable through a
|
|
57
|
-
* contract whose deployment methods take only an id.
|
|
58
|
-
*/
|
|
59
|
-
export declare function createCloudflareDeployProvider(manager: CloudflareManager, projectName?: string): DeployProvider;
|
|
60
|
-
/**
|
|
61
|
-
* The write-capable half. Kept a separate factory, resolved separately, and
|
|
62
|
-
* never handed to an MCP tool — the same boundary `CloudflareActions` has.
|
|
63
|
-
*/
|
|
64
|
-
export declare function createCloudflareDeployActions(actions: CloudflareActions): DeployProviderActions;
|