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,197 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { applyProfile, copyPluginBetweenProfiles, copySkillBetweenProfiles, createProfile, deleteProfile, exportProfile, getProfile, importProfile, listProfiles, previewProfileApply, pluginIdentity, profileMcpSchema, profilePluginSchema, snapshotProfileFromAgent, updateProfile, } from "../../core/agent-profiles/index.js";
|
|
3
|
-
import { stringify } from "./context.js";
|
|
4
|
-
export const AGENT_PROFILE_TOOL_NAMES = [
|
|
5
|
-
"nomoreide_profiles_list",
|
|
6
|
-
"nomoreide_profiles_get",
|
|
7
|
-
"nomoreide_profiles_create",
|
|
8
|
-
"nomoreide_profiles_update",
|
|
9
|
-
"nomoreide_profiles_delete",
|
|
10
|
-
"nomoreide_profiles_snapshot",
|
|
11
|
-
"nomoreide_profiles_apply",
|
|
12
|
-
"nomoreide_profiles_export",
|
|
13
|
-
"nomoreide_profiles_import",
|
|
14
|
-
"nomoreide_profiles_copy_items",
|
|
15
|
-
];
|
|
16
|
-
const agentSchema = z.enum(["claude", "codex", "antigravity"]);
|
|
17
|
-
const nameField = z.string().min(1).describe("Profile name.");
|
|
18
|
-
const cwdField = z
|
|
19
|
-
.string()
|
|
20
|
-
.min(1)
|
|
21
|
-
.optional()
|
|
22
|
-
.describe("Project directory (defaults to the server's cwd).");
|
|
23
|
-
/**
|
|
24
|
-
* Agent Profiles (ROR-62): named MCP+skill bundles. Mutations of agent
|
|
25
|
-
* configs (apply) flow through the write-guarded agent-env layer and echo
|
|
26
|
-
* backup paths; profile CRUD only touches `~/.config/nomoreide/agent-profiles/`.
|
|
27
|
-
*/
|
|
28
|
-
export function registerAgentProfileTools(server, _ctx) {
|
|
29
|
-
server.addTool({
|
|
30
|
-
name: "nomoreide_profiles_list",
|
|
31
|
-
description: "List saved agent profiles (named bundles of MCP servers, skills, and plugins).",
|
|
32
|
-
parameters: z.object({}),
|
|
33
|
-
execute: async () => stringify(await listProfiles()),
|
|
34
|
-
});
|
|
35
|
-
server.addTool({
|
|
36
|
-
name: "nomoreide_profiles_get",
|
|
37
|
-
description: "Get a profile's full config: MCP servers, bundled skills, and plugins.",
|
|
38
|
-
parameters: z.object({ name: nameField }),
|
|
39
|
-
execute: async ({ name }) => stringify(await getProfile(name)),
|
|
40
|
-
});
|
|
41
|
-
server.addTool({
|
|
42
|
-
name: "nomoreide_profiles_create",
|
|
43
|
-
description: 'Create an empty profile. Name must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/.',
|
|
44
|
-
parameters: z.object({ name: nameField, description: z.string().optional() }),
|
|
45
|
-
execute: async (input) => stringify(await createProfile(input)),
|
|
46
|
-
});
|
|
47
|
-
server.addTool({
|
|
48
|
-
name: "nomoreide_profiles_update",
|
|
49
|
-
description: "Update a profile's description, MCP map, skill list, or plugin list (name is immutable).",
|
|
50
|
-
parameters: z.object({
|
|
51
|
-
name: nameField,
|
|
52
|
-
description: z.string().optional(),
|
|
53
|
-
mcps: z.record(profileMcpSchema).optional(),
|
|
54
|
-
skills: z.array(z.object({ name: z.string().min(1) })).optional(),
|
|
55
|
-
plugins: z.array(profilePluginSchema).optional(),
|
|
56
|
-
}),
|
|
57
|
-
execute: async ({ name, ...patch }) => stringify(await updateProfile(name, patch)),
|
|
58
|
-
});
|
|
59
|
-
server.addTool({
|
|
60
|
-
name: "nomoreide_profiles_delete",
|
|
61
|
-
description: "Delete a saved profile (does not touch any agent's live config).",
|
|
62
|
-
parameters: z.object({ name: nameField }),
|
|
63
|
-
execute: async ({ name }) => {
|
|
64
|
-
await deleteProfile(name);
|
|
65
|
-
return stringify({ ok: true, deleted: name });
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
server.addTool({
|
|
69
|
-
name: "nomoreide_profiles_snapshot",
|
|
70
|
-
description: "Snapshot an agent's live MCPs, user skills, and installed plugins into a new profile.",
|
|
71
|
-
parameters: z.object({
|
|
72
|
-
agent: agentSchema,
|
|
73
|
-
name: nameField,
|
|
74
|
-
description: z.string().optional(),
|
|
75
|
-
cwd: cwdField,
|
|
76
|
-
}),
|
|
77
|
-
execute: async (input) => stringify(await snapshotProfileFromAgent({ ...input, cwd: input.cwd ?? process.cwd() })),
|
|
78
|
-
});
|
|
79
|
-
server.addTool({
|
|
80
|
-
name: "nomoreide_profiles_apply",
|
|
81
|
-
description: "Apply a profile's MCPs, skills, and plugins to an agent. Set dryRun=true for a conflict preview.",
|
|
82
|
-
parameters: z.object({
|
|
83
|
-
name: nameField,
|
|
84
|
-
agent: agentSchema,
|
|
85
|
-
dryRun: z.boolean().default(false),
|
|
86
|
-
skipMcps: z.array(z.string()).optional().describe("MCP keys to leave untouched."),
|
|
87
|
-
skipSkills: z.array(z.string()).optional().describe("Skill names to leave untouched."),
|
|
88
|
-
skipPlugins: z.array(z.string()).optional().describe("Plugin names to leave untouched."),
|
|
89
|
-
cwd: cwdField,
|
|
90
|
-
}),
|
|
91
|
-
execute: async (input) => {
|
|
92
|
-
const cwd = input.cwd ?? process.cwd();
|
|
93
|
-
if (input.dryRun) {
|
|
94
|
-
return stringify(await previewProfileApply({ cwd, name: input.name, agent: input.agent }));
|
|
95
|
-
}
|
|
96
|
-
return stringify(await applyProfile({
|
|
97
|
-
cwd,
|
|
98
|
-
name: input.name,
|
|
99
|
-
agent: input.agent,
|
|
100
|
-
skip: {
|
|
101
|
-
mcps: input.skipMcps,
|
|
102
|
-
skills: input.skipSkills,
|
|
103
|
-
plugins: input.skipPlugins,
|
|
104
|
-
},
|
|
105
|
-
}));
|
|
106
|
-
},
|
|
107
|
-
});
|
|
108
|
-
server.addTool({
|
|
109
|
-
name: "nomoreide_profiles_export",
|
|
110
|
-
description: "Export a profile as a portable .tar.gz. Secret-looking env/header values are redacted to ${credentials.*} placeholders — the archive never contains raw secrets.",
|
|
111
|
-
parameters: z.object({
|
|
112
|
-
name: nameField,
|
|
113
|
-
outputPath: z.string().optional().describe("Defaults to <cwd>/<name>.tar.gz."),
|
|
114
|
-
cwd: cwdField,
|
|
115
|
-
}),
|
|
116
|
-
execute: async (input) => stringify(await exportProfile({
|
|
117
|
-
name: input.name,
|
|
118
|
-
outputPath: input.outputPath,
|
|
119
|
-
cwd: input.cwd ?? process.cwd(),
|
|
120
|
-
})),
|
|
121
|
-
});
|
|
122
|
-
server.addTool({
|
|
123
|
-
name: "nomoreide_profiles_import",
|
|
124
|
-
description: "Import a portable profile .tar.gz. Supplied credentials (or matching environment variables) fill ${credentials.*} placeholders; unresolved keys are reported.",
|
|
125
|
-
parameters: z.object({
|
|
126
|
-
archivePath: z.string().min(1),
|
|
127
|
-
force: z.boolean().default(false).describe("Overwrite an existing profile of the same name."),
|
|
128
|
-
as: z.string().optional().describe("Import under a different profile name."),
|
|
129
|
-
credentials: z.record(z.string()).optional(),
|
|
130
|
-
}),
|
|
131
|
-
execute: async (input) => stringify(await importProfile(input)),
|
|
132
|
-
});
|
|
133
|
-
server.addTool({
|
|
134
|
-
name: "nomoreide_profiles_copy_items",
|
|
135
|
-
description: "Copy selected MCPs, skills, and/or plugins from one profile into another.",
|
|
136
|
-
parameters: z.object({
|
|
137
|
-
from: z.string().min(1),
|
|
138
|
-
to: z.string().min(1),
|
|
139
|
-
mcps: z.array(z.string()).optional().describe("MCP keys to copy."),
|
|
140
|
-
skills: z.array(z.string()).optional().describe("Skill names to copy."),
|
|
141
|
-
plugins: z
|
|
142
|
-
.array(z.string())
|
|
143
|
-
.optional()
|
|
144
|
-
.describe("Canonical plugin IDs to copy; an unambiguous plugin name is also accepted."),
|
|
145
|
-
}),
|
|
146
|
-
execute: async (input) => {
|
|
147
|
-
const source = await getProfile(input.from);
|
|
148
|
-
const target = await getProfile(input.to);
|
|
149
|
-
const mcps = { ...target.mcps };
|
|
150
|
-
const copiedMcps = [];
|
|
151
|
-
for (const key of input.mcps ?? []) {
|
|
152
|
-
const entry = source.mcps[key];
|
|
153
|
-
if (!entry)
|
|
154
|
-
throw new Error(`MCP "${key}" not found in profile "${input.from}".`);
|
|
155
|
-
mcps[key] = entry;
|
|
156
|
-
copiedMcps.push(key);
|
|
157
|
-
}
|
|
158
|
-
const skills = [...target.skills];
|
|
159
|
-
const copiedSkills = [];
|
|
160
|
-
for (const skillName of input.skills ?? []) {
|
|
161
|
-
if (!source.skills.some((skill) => skill.name === skillName)) {
|
|
162
|
-
throw new Error(`Skill "${skillName}" not found in profile "${input.from}".`);
|
|
163
|
-
}
|
|
164
|
-
await copySkillBetweenProfiles(input.from, input.to, skillName);
|
|
165
|
-
if (!skills.some((skill) => skill.name === skillName)) {
|
|
166
|
-
skills.push({ name: skillName });
|
|
167
|
-
}
|
|
168
|
-
copiedSkills.push(skillName);
|
|
169
|
-
}
|
|
170
|
-
const plugins = [...target.plugins];
|
|
171
|
-
const copiedPlugins = [];
|
|
172
|
-
for (const pluginSelector of input.plugins ?? []) {
|
|
173
|
-
const pluginById = source.plugins.find((entry) => pluginIdentity(entry) === pluginSelector);
|
|
174
|
-
const pluginsByName = source.plugins.filter((entry) => entry.name === pluginSelector);
|
|
175
|
-
if (!pluginById && pluginsByName.length > 1) {
|
|
176
|
-
throw new Error(`Plugin name "${pluginSelector}" is ambiguous in profile "${input.from}". Use one of: ${pluginsByName.map(pluginIdentity).join(", ")}.`);
|
|
177
|
-
}
|
|
178
|
-
const plugin = pluginById ?? pluginsByName[0];
|
|
179
|
-
if (!plugin) {
|
|
180
|
-
throw new Error(`Plugin "${pluginSelector}" not found in profile "${input.from}".`);
|
|
181
|
-
}
|
|
182
|
-
await copyPluginBetweenProfiles(input.from, input.to, plugin.bundleKey);
|
|
183
|
-
const existing = plugins.findIndex((entry) => entry.name === plugin.name &&
|
|
184
|
-
entry.sourceAgent === plugin.sourceAgent &&
|
|
185
|
-
entry.source === plugin.source);
|
|
186
|
-
if (existing >= 0)
|
|
187
|
-
plugins[existing] = plugin;
|
|
188
|
-
else
|
|
189
|
-
plugins.push(plugin);
|
|
190
|
-
copiedPlugins.push(pluginIdentity(plugin));
|
|
191
|
-
}
|
|
192
|
-
await updateProfile(input.to, { mcps, skills, plugins });
|
|
193
|
-
return stringify({ ok: true, copiedMcps, copiedSkills, copiedPlugins });
|
|
194
|
-
},
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
//# sourceMappingURL=agent-profiles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-profiles.js","sourceRoot":"","sources":["../../../src/mcp/tools/agent-profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { FastMCP } from "fastmcp";
|
|
2
|
-
import { type ToolContext } from "./context.js";
|
|
3
|
-
export declare const AGENT_REGISTRY_TOOL_NAMES: readonly ["nomoreide_profiles_publish", "nomoreide_profiles_install_from_registry", "nomoreide_profiles_register_github"];
|
|
4
|
-
/**
|
|
5
|
-
* Hosted profile registry (ROR-63; the brainctl platform, kept as-is).
|
|
6
|
-
* Auth comes from the stored registry sign-in (`~/.nomoreide/config.json`) or
|
|
7
|
-
* `NOMOREIDE_API_TOKEN` — sign-in itself is a browser flow in the web UI.
|
|
8
|
-
*/
|
|
9
|
-
export declare function registerAgentRegistryTools(server: FastMCP, _ctx: ToolContext): void;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { createRegistryClient, createRegistryTokenManager, installProfileFromRegistry, publishProfileToRegistry, resolveRegistryApiBaseUrl, resolveRegistryApiToken, } from "../../core/agent-profiles/index.js";
|
|
3
|
-
import { stringify } from "./context.js";
|
|
4
|
-
export const AGENT_REGISTRY_TOOL_NAMES = [
|
|
5
|
-
"nomoreide_profiles_publish",
|
|
6
|
-
"nomoreide_profiles_install_from_registry",
|
|
7
|
-
"nomoreide_profiles_register_github",
|
|
8
|
-
];
|
|
9
|
-
/**
|
|
10
|
-
* Hosted profile registry (ROR-63; the brainctl platform, kept as-is).
|
|
11
|
-
* Auth comes from the stored registry sign-in (`~/.nomoreide/config.json`) or
|
|
12
|
-
* `NOMOREIDE_API_TOKEN` — sign-in itself is a browser flow in the web UI.
|
|
13
|
-
*/
|
|
14
|
-
export function registerAgentRegistryTools(server, _ctx) {
|
|
15
|
-
const tokenManager = createRegistryTokenManager();
|
|
16
|
-
const authenticatedFetch = (input, init) => tokenManager.authenticatedFetch(typeof input === "string" ? input : input.toString(), init);
|
|
17
|
-
async function requireToken() {
|
|
18
|
-
if ((await tokenManager.getAccessToken()) === null) {
|
|
19
|
-
throw new Error("Not signed in to the profile registry. Sign in from the web UI (Agent Environments → Registry) or set NOMOREIDE_API_TOKEN.");
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
server.addTool({
|
|
23
|
-
name: "nomoreide_profiles_publish",
|
|
24
|
-
description: "Publish a saved profile to the hosted registry so others can install it by slug. Uploads the credential-redacted export archive — raw secrets never leave the machine.",
|
|
25
|
-
parameters: z.object({
|
|
26
|
-
name: z.string().min(1).describe("Local profile name."),
|
|
27
|
-
slug: z.string().min(1).describe("Registry slug to publish under."),
|
|
28
|
-
title: z.string().min(1),
|
|
29
|
-
summary: z.string().optional(),
|
|
30
|
-
version: z.string().optional().describe("Defaults to 1.0.0."),
|
|
31
|
-
changelog: z.string().optional(),
|
|
32
|
-
visibility: z.enum(["public", "private"]).default("public"),
|
|
33
|
-
cwd: z.string().min(1).optional().describe("Project directory (defaults to the server's cwd)."),
|
|
34
|
-
}),
|
|
35
|
-
execute: async (input) => {
|
|
36
|
-
await requireToken();
|
|
37
|
-
return stringify(await publishProfileToRegistry({
|
|
38
|
-
...input,
|
|
39
|
-
cwd: input.cwd ?? process.cwd(),
|
|
40
|
-
apiBaseUrl: await resolveRegistryApiBaseUrl(),
|
|
41
|
-
fetch: authenticatedFetch,
|
|
42
|
-
}));
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
server.addTool({
|
|
46
|
-
name: "nomoreide_profiles_install_from_registry",
|
|
47
|
-
description: "Install a published profile from the hosted registry by slug. Supplied credentials (or matching environment variables) fill ${credentials.*} placeholders; unresolved keys are reported.",
|
|
48
|
-
parameters: z.object({
|
|
49
|
-
slug: z.string().min(1),
|
|
50
|
-
force: z.boolean().default(false).describe("Overwrite an existing profile of the same name."),
|
|
51
|
-
as: z.string().optional().describe("Install under a different local profile name."),
|
|
52
|
-
credentials: z.record(z.string()).optional(),
|
|
53
|
-
}),
|
|
54
|
-
execute: async (input) => stringify(await installProfileFromRegistry({
|
|
55
|
-
...input,
|
|
56
|
-
apiBaseUrl: await resolveRegistryApiBaseUrl(),
|
|
57
|
-
token: (await resolveRegistryApiToken())?.token,
|
|
58
|
-
})),
|
|
59
|
-
});
|
|
60
|
-
server.addTool({
|
|
61
|
-
name: "nomoreide_profiles_register_github",
|
|
62
|
-
description: "Register a GitHub repository as a registry profile — the registry serves it without a package upload (free sharing path).",
|
|
63
|
-
parameters: z.object({
|
|
64
|
-
repoUrl: z.string().min(1).describe("GitHub repository URL."),
|
|
65
|
-
slug: z.string().min(1),
|
|
66
|
-
title: z.string().min(1),
|
|
67
|
-
summary: z.string().optional(),
|
|
68
|
-
refName: z.string().optional().describe("Branch or tag (defaults to main)."),
|
|
69
|
-
profilePath: z.string().optional().describe("Path to the profile file inside the repo."),
|
|
70
|
-
}),
|
|
71
|
-
execute: async (input) => {
|
|
72
|
-
await requireToken();
|
|
73
|
-
const client = createRegistryClient({
|
|
74
|
-
baseUrl: await resolveRegistryApiBaseUrl(),
|
|
75
|
-
fetch: authenticatedFetch,
|
|
76
|
-
});
|
|
77
|
-
return stringify(await client.registerGithubProfile({ ...input, manifestJson: { name: input.slug } }));
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=agent-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../../src/mcp/tools/agent-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools/agent.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { stringify } from "./context.js";
|
|
2
|
-
export const AGENT_TOOL_NAMES = [
|
|
3
|
-
"nomoreide_open_ui",
|
|
4
|
-
"nomoreide_close_ui",
|
|
5
|
-
];
|
|
6
|
-
export function registerAgentTools(server, ctx) {
|
|
7
|
-
const { daemon } = ctx;
|
|
8
|
-
server.addTool({
|
|
9
|
-
name: "nomoreide_open_ui",
|
|
10
|
-
description: "Open (or reuse) the machine-global NoMoreIDE daemon and return its web UI URL.",
|
|
11
|
-
execute: async () => stringify(await daemon.ensure()),
|
|
12
|
-
});
|
|
13
|
-
server.addTool({
|
|
14
|
-
name: "nomoreide_close_ui",
|
|
15
|
-
description: "Shut down the NoMoreIDE daemon. WARNING: this stops every service it manages, for all sessions on this machine.",
|
|
16
|
-
execute: async () => {
|
|
17
|
-
const client = await daemon.existing();
|
|
18
|
-
if (!client) {
|
|
19
|
-
return stringify({ status: "not_running" });
|
|
20
|
-
}
|
|
21
|
-
await client.shutdown();
|
|
22
|
-
return stringify({
|
|
23
|
-
status: "stopping",
|
|
24
|
-
note: "Daemon is stopping all managed services and exiting.",
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/mcp/tools/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAoB,MAAM,cAAc,CAAC;AAE3D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,mBAAmB;IACnB,oBAAoB;CACZ,CAAC;AAEX,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,GAAgB;IAClE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,gFAAgF;QAClF,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;KACtD,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC;QACb,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,iHAAiH;QACnH,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;gBACf,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,sDAAsD;aAC7D,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { FastMCP } from "fastmcp";
|
|
2
|
-
import type { AgentSessionTracker } from "../../core/agent-sessions.js";
|
|
3
|
-
import type { ConfigStore } from "../../core/config-store.js";
|
|
4
|
-
import type { DaemonConnection } from "../../core/daemon-client.js";
|
|
5
|
-
import type { DbPeek } from "../../core/db-peek.js";
|
|
6
|
-
import type { ErrorInbox } from "../../core/error-inbox.js";
|
|
7
|
-
import { GitActions } from "../../core/git-actions.js";
|
|
8
|
-
import { GitManager } from "../../core/git-manager.js";
|
|
9
|
-
import { type ToolCallStore } from "../../core/tool-call-store.js";
|
|
10
|
-
/** Shared stateful services every tool group receives. */
|
|
11
|
-
export interface ToolContext {
|
|
12
|
-
configStore: ConfigStore;
|
|
13
|
-
/**
|
|
14
|
-
* Handle to the machine-global daemon that owns all spawned services.
|
|
15
|
-
* Service tools go through it over HTTP; config/git/db tools stay local.
|
|
16
|
-
*/
|
|
17
|
-
daemon: DaemonConnection;
|
|
18
|
-
dbPeek: DbPeek;
|
|
19
|
-
errorInbox: ErrorInbox;
|
|
20
|
-
}
|
|
21
|
-
/** Each domain registers its tools onto the (optionally recording) server. */
|
|
22
|
-
export type RegisterTools = (server: FastMCP, ctx: ToolContext) => void;
|
|
23
|
-
export declare function git(cwd?: string): GitManager;
|
|
24
|
-
/** Write-capable Git ops (push) — kept distinct from the read-safe {@link git}. */
|
|
25
|
-
export declare function gitActions(cwd?: string): GitActions;
|
|
26
|
-
export declare function stringify(value: unknown): string;
|
|
27
|
-
/**
|
|
28
|
-
* Wrap a FastMCP server so every `addTool` execute is timed and recorded in
|
|
29
|
-
* the tool-call store. The aggregator wraps once, then hands the same wrapped
|
|
30
|
-
* server to each domain's `registerXTools`.
|
|
31
|
-
*
|
|
32
|
-
* When a session tracker is supplied, every execute first runs
|
|
33
|
-
* `beforeToolCall()` — which auto-snapshots the working tree at the start of
|
|
34
|
-
* a new agent session — and the resulting sessionId tags each record.
|
|
35
|
-
*/
|
|
36
|
-
export declare function wrapServerForRecording(server: FastMCP, store: ToolCallStore, sessions?: AgentSessionTracker): FastMCP;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { GitActions } from "../../core/git-actions.js";
|
|
2
|
-
import { GitManager } from "../../core/git-manager.js";
|
|
3
|
-
import { previewArgs, redactSensitiveText } from "../../core/tool-call-store.js";
|
|
4
|
-
export function git(cwd) {
|
|
5
|
-
return new GitManager(cwd ?? process.cwd());
|
|
6
|
-
}
|
|
7
|
-
/** Write-capable Git ops (push) — kept distinct from the read-safe {@link git}. */
|
|
8
|
-
export function gitActions(cwd) {
|
|
9
|
-
return new GitActions(cwd ?? process.cwd());
|
|
10
|
-
}
|
|
11
|
-
export function stringify(value) {
|
|
12
|
-
return JSON.stringify(value, null, 2);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Wrap a FastMCP server so every `addTool` execute is timed and recorded in
|
|
16
|
-
* the tool-call store. The aggregator wraps once, then hands the same wrapped
|
|
17
|
-
* server to each domain's `registerXTools`.
|
|
18
|
-
*
|
|
19
|
-
* When a session tracker is supplied, every execute first runs
|
|
20
|
-
* `beforeToolCall()` — which auto-snapshots the working tree at the start of
|
|
21
|
-
* a new agent session — and the resulting sessionId tags each record.
|
|
22
|
-
*/
|
|
23
|
-
export function wrapServerForRecording(server, store, sessions) {
|
|
24
|
-
const originalAdd = server.addTool.bind(server);
|
|
25
|
-
const wrapped = (definition) => {
|
|
26
|
-
const originalExecute = definition.execute;
|
|
27
|
-
const recordingDefinition = {
|
|
28
|
-
...definition,
|
|
29
|
-
execute: async (args, context) => {
|
|
30
|
-
const sessionId = sessions ? await sessions.beforeToolCall() : undefined;
|
|
31
|
-
const start = Date.now();
|
|
32
|
-
const startedAt = new Date(start).toISOString();
|
|
33
|
-
try {
|
|
34
|
-
const result = await originalExecute(args, context);
|
|
35
|
-
store.record({
|
|
36
|
-
tool: definition.name,
|
|
37
|
-
startedAt,
|
|
38
|
-
durationMs: Date.now() - start,
|
|
39
|
-
status: "ok",
|
|
40
|
-
sessionId,
|
|
41
|
-
args: previewArgs(args),
|
|
42
|
-
});
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
store.record({
|
|
47
|
-
tool: definition.name,
|
|
48
|
-
startedAt,
|
|
49
|
-
durationMs: Date.now() - start,
|
|
50
|
-
status: "error",
|
|
51
|
-
sessionId,
|
|
52
|
-
args: previewArgs(args),
|
|
53
|
-
error: redactSensitiveText(error instanceof Error ? error.message : String(error)),
|
|
54
|
-
});
|
|
55
|
-
throw error;
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
return originalAdd(recordingDefinition);
|
|
60
|
-
};
|
|
61
|
-
return new Proxy(server, {
|
|
62
|
-
get(target, prop, receiver) {
|
|
63
|
-
if (prop === "addTool")
|
|
64
|
-
return wrapped;
|
|
65
|
-
return Reflect.get(target, prop, receiver);
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/mcp/tools/context.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAsB,MAAM,+BAA+B,CAAC;AAiBrG,MAAM,UAAU,GAAG,CAAC,GAAY;IAC9B,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAe,EACf,KAAoB,EACpB,QAA8B;IAE9B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,CAAC,UAA6C,EAAE,EAAE;QAChE,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC;QAC3C,MAAM,mBAAmB,GAAG;YAC1B,GAAG,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,OAAgB,EAAE,EAAE;gBACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAO,eAGA,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBACtC,KAAK,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,SAAS;wBACT,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wBAC9B,MAAM,EAAE,IAAI;wBACZ,SAAS;wBACT,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;qBACxB,CAAC,CAAC;oBACH,OAAO,MAA4C,CAAC;gBACtD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,SAAS;wBACT,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wBAC9B,MAAM,EAAE,OAAO;wBACf,SAAS;wBACT,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;wBACvB,KAAK,EAAE,mBAAmB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBACnF,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACmC,CAAC;QACvC,OAAO,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YACvC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { FastMCP } from "fastmcp";
|
|
2
|
-
import { type ToolContext } from "./context.js";
|
|
3
|
-
export declare const DATABASE_TOOL_NAMES: readonly ["nomoreide_list_databases", "nomoreide_register_database", "nomoreide_check_database", "nomoreide_db_schemas", "nomoreide_db_objects", "nomoreide_db_object_details", "nomoreide_db_tables", "nomoreide_db_sample", "nomoreide_db_query"];
|
|
4
|
-
/**
|
|
5
|
-
* DB Peek tools: read-only access to the user's registered database
|
|
6
|
-
* connections. Scoped to connections in ConfigStore; `nomoreide_db_query` runs
|
|
7
|
-
* SQL inside a read-only transaction, so writes are rejected by the server.
|
|
8
|
-
*/
|
|
9
|
-
export declare function registerDatabaseTools(server: FastMCP, ctx: ToolContext): void;
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { isReadStatement } from "../../core/db/driver.js";
|
|
3
|
-
import { stringify } from "./context.js";
|
|
4
|
-
/**
|
|
5
|
-
* Returned to the agent when a write hits the read-only query path. This is the
|
|
6
|
-
* contextual teach for the raw-terminal workflow. It costs nothing until the
|
|
7
|
-
* agent actually tries to change data and keeps execution in the human-only,
|
|
8
|
-
* locked SQL console with its affected-rows preview.
|
|
9
|
-
*/
|
|
10
|
-
function writeStagingGuidance(connection) {
|
|
11
|
-
return [
|
|
12
|
-
"This connection is read-only, so that statement was NOT executed.",
|
|
13
|
-
"Provide the exact SQL statement for the user to review in a standard SQL",
|
|
14
|
-
`fenced block, and identify the target connection as \`${connection}\`:`,
|
|
15
|
-
"",
|
|
16
|
-
"```sql",
|
|
17
|
-
"UPDATE … SET … WHERE …;",
|
|
18
|
-
"```",
|
|
19
|
-
"",
|
|
20
|
-
"Direct the user to stage and run it through NoMoreIDE's locked SQL console,",
|
|
21
|
-
"where they explicitly unlock writes and review an affected-rows preview",
|
|
22
|
-
"before committing. Emit exactly one statement, and always scope",
|
|
23
|
-
"UPDATE/DELETE with a WHERE clause.",
|
|
24
|
-
].join("\n");
|
|
25
|
-
}
|
|
26
|
-
export const DATABASE_TOOL_NAMES = [
|
|
27
|
-
"nomoreide_list_databases",
|
|
28
|
-
"nomoreide_register_database",
|
|
29
|
-
"nomoreide_check_database",
|
|
30
|
-
"nomoreide_db_schemas",
|
|
31
|
-
"nomoreide_db_objects",
|
|
32
|
-
"nomoreide_db_object_details",
|
|
33
|
-
"nomoreide_db_tables",
|
|
34
|
-
"nomoreide_db_sample",
|
|
35
|
-
"nomoreide_db_query",
|
|
36
|
-
];
|
|
37
|
-
const engineSchema = z.enum(["postgres", "mysql", "sqlite"]);
|
|
38
|
-
const registerSchema = z.object({
|
|
39
|
-
name: z.string().min(1).describe("Globally unique connection name."),
|
|
40
|
-
engine: engineSchema,
|
|
41
|
-
url: z.string().min(1).describe("Connection URL, or an absolute SQLite file path."),
|
|
42
|
-
projectPath: z.string().optional().describe("Optional project directory used for UI scoping."),
|
|
43
|
-
check: z.boolean().optional().describe("Check connectivity before saving (default true)."),
|
|
44
|
-
replace: z.boolean().optional().describe("Required to replace an existing connection with the same name."),
|
|
45
|
-
});
|
|
46
|
-
const connectionSchema = z.object({
|
|
47
|
-
connection: z
|
|
48
|
-
.string()
|
|
49
|
-
.min(1)
|
|
50
|
-
.describe("Connection name from nomoreide_list_databases."),
|
|
51
|
-
});
|
|
52
|
-
const sampleSchema = connectionSchema.extend({
|
|
53
|
-
table: z
|
|
54
|
-
.string()
|
|
55
|
-
.min(1)
|
|
56
|
-
.describe("Qualified table name from nomoreide_db_tables (e.g. public.users)."),
|
|
57
|
-
limit: z
|
|
58
|
-
.number()
|
|
59
|
-
.int()
|
|
60
|
-
.positive()
|
|
61
|
-
.max(1000)
|
|
62
|
-
.optional()
|
|
63
|
-
.describe("Max rows to sample (default 100)."),
|
|
64
|
-
});
|
|
65
|
-
const querySchema = connectionSchema.extend({
|
|
66
|
-
sql: z
|
|
67
|
-
.string()
|
|
68
|
-
.min(1)
|
|
69
|
-
.describe("A read-only SELECT-style statement. Writes are rejected server-side."),
|
|
70
|
-
limit: z
|
|
71
|
-
.number()
|
|
72
|
-
.int()
|
|
73
|
-
.positive()
|
|
74
|
-
.max(1000)
|
|
75
|
-
.optional()
|
|
76
|
-
.describe("Max rows to return (default 100)."),
|
|
77
|
-
});
|
|
78
|
-
const schemaSchema = connectionSchema.extend({
|
|
79
|
-
schema: z.string().min(1).describe("Schema name returned by nomoreide_db_schemas."),
|
|
80
|
-
});
|
|
81
|
-
const objectSchema = connectionSchema.extend({
|
|
82
|
-
key: z.string().min(1).describe("Opaque object key returned by nomoreide_db_objects."),
|
|
83
|
-
});
|
|
84
|
-
/**
|
|
85
|
-
* DB Peek tools: read-only access to the user's registered database
|
|
86
|
-
* connections. Scoped to connections in ConfigStore; `nomoreide_db_query` runs
|
|
87
|
-
* SQL inside a read-only transaction, so writes are rejected by the server.
|
|
88
|
-
*/
|
|
89
|
-
export function registerDatabaseTools(server, ctx) {
|
|
90
|
-
const { dbPeek } = ctx;
|
|
91
|
-
server.addTool({
|
|
92
|
-
name: "nomoreide_list_databases",
|
|
93
|
-
description: "List registered read-only database connections (Postgres / MySQL / SQLite). Passwords are masked.",
|
|
94
|
-
parameters: z.object({}),
|
|
95
|
-
execute: async () => stringify(await dbPeek.listConnections()),
|
|
96
|
-
});
|
|
97
|
-
server.addTool({
|
|
98
|
-
name: "nomoreide_register_database",
|
|
99
|
-
description: "Register a read-only database connection. Connectivity is checked by default; raw credentials are never returned or recorded.",
|
|
100
|
-
parameters: registerSchema,
|
|
101
|
-
execute: async ({ name, engine, url, projectPath, check, replace }) => stringify(await dbPeek.register({ name, engine, url, projectPath, check, replace })),
|
|
102
|
-
});
|
|
103
|
-
server.addTool({
|
|
104
|
-
name: "nomoreide_check_database",
|
|
105
|
-
description: "Check a registered connection without revealing its credentials.",
|
|
106
|
-
parameters: connectionSchema,
|
|
107
|
-
execute: async ({ connection }) => stringify(await dbPeek.check(connection)),
|
|
108
|
-
});
|
|
109
|
-
server.addTool({
|
|
110
|
-
name: "nomoreide_db_schemas",
|
|
111
|
-
description: "List schemas and supported catalog capabilities for a registered connection.",
|
|
112
|
-
parameters: connectionSchema,
|
|
113
|
-
execute: async ({ connection }) => stringify({
|
|
114
|
-
schemas: await dbPeek.listSchemas(connection),
|
|
115
|
-
capabilities: await dbPeek.capabilities(connection),
|
|
116
|
-
}),
|
|
117
|
-
});
|
|
118
|
-
server.addTool({
|
|
119
|
-
name: "nomoreide_db_objects",
|
|
120
|
-
description: "List tables, views, routines, and sequences in one live database schema.",
|
|
121
|
-
parameters: schemaSchema,
|
|
122
|
-
execute: async ({ connection, schema }) => stringify(await dbPeek.listObjects(connection, schema)),
|
|
123
|
-
});
|
|
124
|
-
server.addTool({
|
|
125
|
-
name: "nomoreide_db_object_details",
|
|
126
|
-
description: "Read columns, indexes, constraints, triggers, a capped definition, and an executable create script for an opaque live catalog object.",
|
|
127
|
-
parameters: objectSchema,
|
|
128
|
-
execute: async ({ connection, key }) => stringify(await dbPeek.objectDetails(connection, key)),
|
|
129
|
-
});
|
|
130
|
-
server.addTool({
|
|
131
|
-
name: "nomoreide_db_tables",
|
|
132
|
-
description: "List the tables and views in a registered database connection.",
|
|
133
|
-
parameters: connectionSchema,
|
|
134
|
-
execute: async ({ connection }) => stringify(await dbPeek.listTables(connection)),
|
|
135
|
-
});
|
|
136
|
-
server.addTool({
|
|
137
|
-
name: "nomoreide_db_sample",
|
|
138
|
-
description: "Sample rows from a table (read-only) with its column schema — the 'explain this data to the agent' payload.",
|
|
139
|
-
parameters: sampleSchema,
|
|
140
|
-
execute: async ({ connection, table, limit }) => stringify(await dbPeek.sampleRows(connection, table, limit ?? 100)),
|
|
141
|
-
});
|
|
142
|
-
server.addTool({
|
|
143
|
-
name: "nomoreide_db_query",
|
|
144
|
-
description: "Run a read-only SQL query against a registered connection and return the rows. " +
|
|
145
|
-
"Read-only at the transaction level — INSERT/UPDATE/DELETE/DDL are rejected. To " +
|
|
146
|
-
"make a change, don't run it here. Provide the exact SQL statement for review, " +
|
|
147
|
-
"identify the connection, and direct the user to stage and run it through " +
|
|
148
|
-
"NoMoreIDE's locked SQL console with its affected-rows preview.",
|
|
149
|
-
parameters: querySchema,
|
|
150
|
-
execute: async ({ connection, sql, limit }) => {
|
|
151
|
-
try {
|
|
152
|
-
return stringify(await dbPeek.runQuery(connection, sql, limit ?? 100));
|
|
153
|
-
}
|
|
154
|
-
catch (caught) {
|
|
155
|
-
const message = caught instanceof Error ? caught.message : String(caught);
|
|
156
|
-
// A write rejected by the read-only transaction (every engine phrases it
|
|
157
|
-
// with "read only/readonly") becomes a teach, not a bare error.
|
|
158
|
-
if (/read[\s-]?only/i.test(message) || !isReadStatement(sql)) {
|
|
159
|
-
return writeStagingGuidance(connection);
|
|
160
|
-
}
|
|
161
|
-
throw caught;
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
//# sourceMappingURL=database.js.map
|