nomoreide 0.2.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -9
- package/bin/nomoreide.js +82 -0
- package/package.json +24 -132
- package/dist/cli/agents.d.ts +0 -2
- package/dist/cli/agents.js +0 -43
- package/dist/cli/agents.js.map +0 -1
- package/dist/cli/commands.d.ts +0 -11
- package/dist/cli/commands.js +0 -235
- package/dist/cli/commands.js.map +0 -1
- package/dist/cli/daemon.d.ts +0 -15
- package/dist/cli/daemon.js +0 -139
- package/dist/cli/daemon.js.map +0 -1
- package/dist/cli/database.d.ts +0 -2
- package/dist/cli/database.js +0 -145
- package/dist/cli/database.js.map +0 -1
- package/dist/cli/errors.d.ts +0 -2
- package/dist/cli/errors.js +0 -3
- package/dist/cli/errors.js.map +0 -1
- package/dist/cli/flags.d.ts +0 -1
- package/dist/cli/flags.js +0 -19
- package/dist/cli/flags.js.map +0 -1
- package/dist/cli/git.d.ts +0 -2
- package/dist/cli/git.js +0 -113
- package/dist/cli/git.js.map +0 -1
- package/dist/cli/profile.d.ts +0 -2
- package/dist/cli/profile.js +0 -171
- package/dist/cli/profile.js.map +0 -1
- package/dist/core/agent-context.d.ts +0 -9
- package/dist/core/agent-context.js +0 -43
- package/dist/core/agent-context.js.map +0 -1
- package/dist/core/agent-env/antigravity-reader.d.ts +0 -7
- package/dist/core/agent-env/antigravity-reader.js +0 -86
- package/dist/core/agent-env/antigravity-reader.js.map +0 -1
- package/dist/core/agent-env/availability.d.ts +0 -6
- package/dist/core/agent-env/availability.js +0 -79
- package/dist/core/agent-env/availability.js.map +0 -1
- package/dist/core/agent-env/claude-reader.d.ts +0 -7
- package/dist/core/agent-env/claude-reader.js +0 -101
- package/dist/core/agent-env/claude-reader.js.map +0 -1
- package/dist/core/agent-env/codex-reader.d.ts +0 -11
- package/dist/core/agent-env/codex-reader.js +0 -164
- package/dist/core/agent-env/codex-reader.js.map +0 -1
- package/dist/core/agent-env/index.d.ts +0 -9
- package/dist/core/agent-env/index.js +0 -29
- package/dist/core/agent-env/index.js.map +0 -1
- package/dist/core/agent-env/managed-plugins.d.ts +0 -18
- package/dist/core/agent-env/managed-plugins.js +0 -68
- package/dist/core/agent-env/managed-plugins.js.map +0 -1
- package/dist/core/agent-env/plugin-reader.d.ts +0 -9
- package/dist/core/agent-env/plugin-reader.js +0 -174
- package/dist/core/agent-env/plugin-reader.js.map +0 -1
- package/dist/core/agent-env/shared.d.ts +0 -26
- package/dist/core/agent-env/shared.js +0 -116
- package/dist/core/agent-env/shared.js.map +0 -1
- package/dist/core/agent-env/types.d.ts +0 -66
- package/dist/core/agent-env/types.js +0 -7
- package/dist/core/agent-env/types.js.map +0 -1
- package/dist/core/agent-env-actions.d.ts +0 -117
- package/dist/core/agent-env-actions.js +0 -273
- package/dist/core/agent-env-actions.js.map +0 -1
- package/dist/core/agent-env-plugin-uninstall.d.ts +0 -11
- package/dist/core/agent-env-plugin-uninstall.js +0 -189
- package/dist/core/agent-env-plugin-uninstall.js.map +0 -1
- package/dist/core/agent-env-writers.d.ts +0 -71
- package/dist/core/agent-env-writers.js +0 -632
- package/dist/core/agent-env-writers.js.map +0 -1
- package/dist/core/agent-profiles/apply.d.ts +0 -57
- package/dist/core/agent-profiles/apply.js +0 -209
- package/dist/core/agent-profiles/apply.js.map +0 -1
- package/dist/core/agent-profiles/builtin.d.ts +0 -8
- package/dist/core/agent-profiles/builtin.js +0 -33
- package/dist/core/agent-profiles/builtin.js.map +0 -1
- package/dist/core/agent-profiles/credentials.d.ts +0 -26
- package/dist/core/agent-profiles/credentials.js +0 -151
- package/dist/core/agent-profiles/credentials.js.map +0 -1
- package/dist/core/agent-profiles/debug-setup.d.ts +0 -18
- package/dist/core/agent-profiles/debug-setup.js +0 -237
- package/dist/core/agent-profiles/debug-setup.js.map +0 -1
- package/dist/core/agent-profiles/index.d.ts +0 -18
- package/dist/core/agent-profiles/index.js +0 -19
- package/dist/core/agent-profiles/index.js.map +0 -1
- package/dist/core/agent-profiles/plugin-apply.d.ts +0 -16
- package/dist/core/agent-profiles/plugin-apply.js +0 -383
- package/dist/core/agent-profiles/plugin-apply.js.map +0 -1
- package/dist/core/agent-profiles/plugin-bundle.d.ts +0 -6
- package/dist/core/agent-profiles/plugin-bundle.js +0 -32
- package/dist/core/agent-profiles/plugin-bundle.js.map +0 -1
- package/dist/core/agent-profiles/publication.d.ts +0 -105
- package/dist/core/agent-profiles/publication.js +0 -126
- package/dist/core/agent-profiles/publication.js.map +0 -1
- package/dist/core/agent-profiles/registry-auth.d.ts +0 -25
- package/dist/core/agent-profiles/registry-auth.js +0 -78
- package/dist/core/agent-profiles/registry-auth.js.map +0 -1
- package/dist/core/agent-profiles/registry-client.d.ts +0 -98
- package/dist/core/agent-profiles/registry-client.js +0 -109
- package/dist/core/agent-profiles/registry-client.js.map +0 -1
- package/dist/core/agent-profiles/registry-config.d.ts +0 -62
- package/dist/core/agent-profiles/registry-config.js +0 -221
- package/dist/core/agent-profiles/registry-config.js.map +0 -1
- package/dist/core/agent-profiles/registry-transfer.d.ts +0 -42
- package/dist/core/agent-profiles/registry-transfer.js +0 -133
- package/dist/core/agent-profiles/registry-transfer.js.map +0 -1
- package/dist/core/agent-profiles/store.d.ts +0 -62
- package/dist/core/agent-profiles/store.js +0 -479
- package/dist/core/agent-profiles/store.js.map +0 -1
- package/dist/core/agent-profiles/transfer.d.ts +0 -27
- package/dist/core/agent-profiles/transfer.js +0 -359
- package/dist/core/agent-profiles/transfer.js.map +0 -1
- package/dist/core/agent-profiles/types.d.ts +0 -364
- package/dist/core/agent-profiles/types.js +0 -79
- package/dist/core/agent-profiles/types.js.map +0 -1
- package/dist/core/agent-runtime.d.ts +0 -114
- package/dist/core/agent-runtime.js +0 -494
- package/dist/core/agent-runtime.js.map +0 -1
- package/dist/core/agent-sessions.d.ts +0 -46
- package/dist/core/agent-sessions.js +0 -109
- package/dist/core/agent-sessions.js.map +0 -1
- package/dist/core/agent-settings.d.ts +0 -31
- package/dist/core/agent-settings.js +0 -129
- package/dist/core/agent-settings.js.map +0 -1
- package/dist/core/agent-terminal.d.ts +0 -22
- package/dist/core/agent-terminal.js +0 -62
- package/dist/core/agent-terminal.js.map +0 -1
- package/dist/core/agent-transcripts.d.ts +0 -29
- package/dist/core/agent-transcripts.js +0 -281
- package/dist/core/agent-transcripts.js.map +0 -1
- package/dist/core/app-settings.d.ts +0 -74
- package/dist/core/app-settings.js +0 -118
- package/dist/core/app-settings.js.map +0 -1
- package/dist/core/app-version.d.ts +0 -2
- package/dist/core/app-version.js +0 -16
- package/dist/core/app-version.js.map +0 -1
- package/dist/core/approval-broker.d.ts +0 -29
- package/dist/core/approval-broker.js +0 -48
- package/dist/core/approval-broker.js.map +0 -1
- package/dist/core/claude-settings.d.ts +0 -18
- package/dist/core/claude-settings.js +0 -48
- package/dist/core/claude-settings.js.map +0 -1
- package/dist/core/cloudflare-actions.d.ts +0 -90
- package/dist/core/cloudflare-actions.js +0 -178
- package/dist/core/cloudflare-actions.js.map +0 -1
- package/dist/core/cloudflare-auth.d.ts +0 -61
- package/dist/core/cloudflare-auth.js +0 -149
- package/dist/core/cloudflare-auth.js.map +0 -1
- package/dist/core/cloudflare-context.d.ts +0 -2
- package/dist/core/cloudflare-context.js +0 -106
- package/dist/core/cloudflare-context.js.map +0 -1
- package/dist/core/cloudflare-manager.d.ts +0 -258
- package/dist/core/cloudflare-manager.js +0 -414
- package/dist/core/cloudflare-manager.js.map +0 -1
- package/dist/core/cloudflare-provider.d.ts +0 -64
- package/dist/core/cloudflare-provider.js +0 -348
- package/dist/core/cloudflare-provider.js.map +0 -1
- package/dist/core/config-files.d.ts +0 -27
- package/dist/core/config-files.js +0 -154
- package/dist/core/config-files.js.map +0 -1
- package/dist/core/config-store.d.ts +0 -181
- package/dist/core/config-store.js +0 -1026
- package/dist/core/config-store.js.map +0 -1
- package/dist/core/context-library.d.ts +0 -53
- package/dist/core/context-library.js +0 -605
- package/dist/core/context-library.js.map +0 -1
- package/dist/core/context-types.d.ts +0 -83
- package/dist/core/context-types.js +0 -9
- package/dist/core/context-types.js.map +0 -1
- package/dist/core/daemon-client.d.ts +0 -84
- package/dist/core/daemon-client.js +0 -156
- package/dist/core/daemon-client.js.map +0 -1
- package/dist/core/daemon-lifecycle.d.ts +0 -59
- package/dist/core/daemon-lifecycle.js +0 -147
- package/dist/core/daemon-lifecycle.js.map +0 -1
- package/dist/core/db/catalog.d.ts +0 -57
- package/dist/core/db/catalog.js +0 -38
- package/dist/core/db/catalog.js.map +0 -1
- package/dist/core/db/data-masking.d.ts +0 -3
- package/dist/core/db/data-masking.js +0 -14
- package/dist/core/db/data-masking.js.map +0 -1
- package/dist/core/db/driver.d.ts +0 -151
- package/dist/core/db/driver.js +0 -209
- package/dist/core/db/driver.js.map +0 -1
- package/dist/core/db/export.d.ts +0 -17
- package/dist/core/db/export.js +0 -67
- package/dist/core/db/export.js.map +0 -1
- package/dist/core/db/mysql-driver.d.ts +0 -33
- package/dist/core/db/mysql-driver.js +0 -364
- package/dist/core/db/mysql-driver.js.map +0 -1
- package/dist/core/db/postgres-driver.d.ts +0 -34
- package/dist/core/db/postgres-driver.js +0 -430
- package/dist/core/db/postgres-driver.js.map +0 -1
- package/dist/core/db/sqlite-driver.d.ts +0 -30
- package/dist/core/db/sqlite-driver.js +0 -301
- package/dist/core/db/sqlite-driver.js.map +0 -1
- package/dist/core/db-peek.d.ts +0 -99
- package/dist/core/db-peek.js +0 -322
- package/dist/core/db-peek.js.map +0 -1
- package/dist/core/db-write.d.ts +0 -45
- package/dist/core/db-write.js +0 -190
- package/dist/core/db-write.js.map +0 -1
- package/dist/core/docker-inspect.d.ts +0 -34
- package/dist/core/docker-inspect.js +0 -108
- package/dist/core/docker-inspect.js.map +0 -1
- package/dist/core/docker-resources.d.ts +0 -28
- package/dist/core/docker-resources.js +0 -59
- package/dist/core/docker-resources.js.map +0 -1
- package/dist/core/docker-service-runner.d.ts +0 -21
- package/dist/core/docker-service-runner.js +0 -80
- package/dist/core/docker-service-runner.js.map +0 -1
- package/dist/core/docker-stats.d.ts +0 -24
- package/dist/core/docker-stats.js +0 -76
- package/dist/core/docker-stats.js.map +0 -1
- package/dist/core/docker.d.ts +0 -75
- package/dist/core/docker.js +0 -219
- package/dist/core/docker.js.map +0 -1
- package/dist/core/env-file.d.ts +0 -24
- package/dist/core/env-file.js +0 -123
- package/dist/core/env-file.js.map +0 -1
- package/dist/core/env-runtime.d.ts +0 -32
- package/dist/core/env-runtime.js +0 -42
- package/dist/core/env-runtime.js.map +0 -1
- package/dist/core/error-inbox.d.ts +0 -91
- package/dist/core/error-inbox.js +0 -292
- package/dist/core/error-inbox.js.map +0 -1
- package/dist/core/extensions.d.ts +0 -78
- package/dist/core/extensions.js +0 -41
- package/dist/core/extensions.js.map +0 -1
- package/dist/core/external-terminal.d.ts +0 -60
- package/dist/core/external-terminal.js +0 -429
- package/dist/core/external-terminal.js.map +0 -1
- package/dist/core/fix-loop.d.ts +0 -55
- package/dist/core/fix-loop.js +0 -73
- package/dist/core/fix-loop.js.map +0 -1
- package/dist/core/git-actions.d.ts +0 -69
- package/dist/core/git-actions.js +0 -161
- package/dist/core/git-actions.js.map +0 -1
- package/dist/core/git-graph-layout.d.ts +0 -34
- package/dist/core/git-graph-layout.js +0 -94
- package/dist/core/git-graph-layout.js.map +0 -1
- package/dist/core/git-identity.d.ts +0 -78
- package/dist/core/git-identity.js +0 -178
- package/dist/core/git-identity.js.map +0 -1
- package/dist/core/git-manager.d.ts +0 -129
- package/dist/core/git-manager.js +0 -509
- package/dist/core/git-manager.js.map +0 -1
- package/dist/core/git-worktrees.d.ts +0 -35
- package/dist/core/git-worktrees.js +0 -142
- package/dist/core/git-worktrees.js.map +0 -1
- package/dist/core/github-auth.d.ts +0 -28
- package/dist/core/github-auth.js +0 -134
- package/dist/core/github-auth.js.map +0 -1
- package/dist/core/github-context.d.ts +0 -12
- package/dist/core/github-context.js +0 -36
- package/dist/core/github-context.js.map +0 -1
- package/dist/core/github-manager.d.ts +0 -230
- package/dist/core/github-manager.js +0 -324
- package/dist/core/github-manager.js.map +0 -1
- package/dist/core/host-metrics.d.ts +0 -41
- package/dist/core/host-metrics.js +0 -93
- package/dist/core/host-metrics.js.map +0 -1
- package/dist/core/http-inspector.d.ts +0 -20
- package/dist/core/http-inspector.js +0 -106
- package/dist/core/http-inspector.js.map +0 -1
- package/dist/core/jetbrains-import.d.ts +0 -85
- package/dist/core/jetbrains-import.js +0 -599
- package/dist/core/jetbrains-import.js.map +0 -1
- package/dist/core/log-sources.d.ts +0 -21
- package/dist/core/log-sources.js +0 -219
- package/dist/core/log-sources.js.map +0 -1
- package/dist/core/log-store.d.ts +0 -33
- package/dist/core/log-store.js +0 -94
- package/dist/core/log-store.js.map +0 -1
- package/dist/core/log-volume.d.ts +0 -41
- package/dist/core/log-volume.js +0 -81
- package/dist/core/log-volume.js.map +0 -1
- package/dist/core/mcp-auth.d.ts +0 -27
- package/dist/core/mcp-auth.js +0 -90
- package/dist/core/mcp-auth.js.map +0 -1
- package/dist/core/metrics-store.d.ts +0 -74
- package/dist/core/metrics-store.js +0 -187
- package/dist/core/metrics-store.js.map +0 -1
- package/dist/core/one-time-skills.d.ts +0 -27
- package/dist/core/one-time-skills.js +0 -185
- package/dist/core/one-time-skills.js.map +0 -1
- package/dist/core/port-utils.d.ts +0 -23
- package/dist/core/port-utils.js +0 -83
- package/dist/core/port-utils.js.map +0 -1
- package/dist/core/process-manager.d.ts +0 -99
- package/dist/core/process-manager.js +0 -738
- package/dist/core/process-manager.js.map +0 -1
- package/dist/core/process-tree.d.ts +0 -17
- package/dist/core/process-tree.js +0 -64
- package/dist/core/process-tree.js.map +0 -1
- package/dist/core/project-overview.d.ts +0 -52
- package/dist/core/project-overview.js +0 -122
- package/dist/core/project-overview.js.map +0 -1
- package/dist/core/providers/api-base.d.ts +0 -24
- package/dist/core/providers/api-base.js +0 -44
- package/dist/core/providers/api-base.js.map +0 -1
- package/dist/core/providers/credentials.d.ts +0 -93
- package/dist/core/providers/credentials.js +0 -88
- package/dist/core/providers/credentials.js.map +0 -1
- package/dist/core/providers/deploy-provider.d.ts +0 -327
- package/dist/core/providers/deploy-provider.js +0 -25
- package/dist/core/providers/deploy-provider.js.map +0 -1
- package/dist/core/providers/egress.d.ts +0 -58
- package/dist/core/providers/egress.js +0 -124
- package/dist/core/providers/egress.js.map +0 -1
- package/dist/core/providers/host-bridge.d.ts +0 -20
- package/dist/core/providers/host-bridge.js +0 -57
- package/dist/core/providers/host-bridge.js.map +0 -1
- package/dist/core/providers/host-provider.d.ts +0 -160
- package/dist/core/providers/host-provider.js +0 -2
- package/dist/core/providers/host-provider.js.map +0 -1
- package/dist/core/providers/oauth.d.ts +0 -97
- package/dist/core/providers/oauth.js +0 -238
- package/dist/core/providers/oauth.js.map +0 -1
- package/dist/core/providers/project-resolution.d.ts +0 -81
- package/dist/core/providers/project-resolution.js +0 -101
- package/dist/core/providers/project-resolution.js.map +0 -1
- package/dist/core/providers/registry.d.ts +0 -73
- package/dist/core/providers/registry.js +0 -53
- package/dist/core/providers/registry.js.map +0 -1
- package/dist/core/providers/strings.d.ts +0 -95
- package/dist/core/providers/strings.js +0 -59
- package/dist/core/providers/strings.js.map +0 -1
- package/dist/core/public-config.d.ts +0 -18
- package/dist/core/public-config.js +0 -76
- package/dist/core/public-config.js.map +0 -1
- package/dist/core/read-only-files.d.ts +0 -28
- package/dist/core/read-only-files.js +0 -93
- package/dist/core/read-only-files.js.map +0 -1
- package/dist/core/repo-create.d.ts +0 -11
- package/dist/core/repo-create.js +0 -54
- package/dist/core/repo-create.js.map +0 -1
- package/dist/core/repo-match.d.ts +0 -12
- package/dist/core/repo-match.js +0 -40
- package/dist/core/repo-match.js.map +0 -1
- package/dist/core/repo-onboard.d.ts +0 -297
- package/dist/core/repo-onboard.js +0 -667
- package/dist/core/repo-onboard.js.map +0 -1
- package/dist/core/repro-bundle.d.ts +0 -30
- package/dist/core/repro-bundle.js +0 -116
- package/dist/core/repro-bundle.js.map +0 -1
- package/dist/core/service-graph.d.ts +0 -50
- package/dist/core/service-graph.js +0 -143
- package/dist/core/service-graph.js.map +0 -1
- package/dist/core/service-health.d.ts +0 -10
- package/dist/core/service-health.js +0 -46
- package/dist/core/service-health.js.map +0 -1
- package/dist/core/service-log-source.d.ts +0 -9
- package/dist/core/service-log-source.js +0 -49
- package/dist/core/service-log-source.js.map +0 -1
- package/dist/core/service-registry.d.ts +0 -52
- package/dist/core/service-registry.js +0 -101
- package/dist/core/service-registry.js.map +0 -1
- package/dist/core/snapshot-manager.d.ts +0 -62
- package/dist/core/snapshot-manager.js +0 -219
- package/dist/core/snapshot-manager.js.map +0 -1
- package/dist/core/ssh-servers.d.ts +0 -89
- package/dist/core/ssh-servers.js +0 -251
- package/dist/core/ssh-servers.js.map +0 -1
- package/dist/core/ssh-service-runner.d.ts +0 -7
- package/dist/core/ssh-service-runner.js +0 -36
- package/dist/core/ssh-service-runner.js.map +0 -1
- package/dist/core/ssh-setup.d.ts +0 -11
- package/dist/core/ssh-setup.js +0 -49
- package/dist/core/ssh-setup.js.map +0 -1
- package/dist/core/system-processes.d.ts +0 -29
- package/dist/core/system-processes.js +0 -119
- package/dist/core/system-processes.js.map +0 -1
- package/dist/core/terminal-manager.d.ts +0 -123
- package/dist/core/terminal-manager.js +0 -470
- package/dist/core/terminal-manager.js.map +0 -1
- package/dist/core/terminal-session.d.ts +0 -122
- package/dist/core/terminal-session.js +0 -242
- package/dist/core/terminal-session.js.map +0 -1
- package/dist/core/terminal-spawn.d.ts +0 -26
- package/dist/core/terminal-spawn.js +0 -63
- package/dist/core/terminal-spawn.js.map +0 -1
- package/dist/core/test-runner.d.ts +0 -69
- package/dist/core/test-runner.js +0 -199
- package/dist/core/test-runner.js.map +0 -1
- package/dist/core/timeline-store.d.ts +0 -20
- package/dist/core/timeline-store.js +0 -36
- package/dist/core/timeline-store.js.map +0 -1
- package/dist/core/tool-call-store.d.ts +0 -25
- package/dist/core/tool-call-store.js +0 -62
- package/dist/core/tool-call-store.js.map +0 -1
- package/dist/core/types.d.ts +0 -312
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +0 -1
- package/dist/core/usage-history.d.ts +0 -81
- package/dist/core/usage-history.js +0 -149
- package/dist/core/usage-history.js.map +0 -1
- package/dist/core/vercel-actions.d.ts +0 -71
- package/dist/core/vercel-actions.js +0 -109
- package/dist/core/vercel-actions.js.map +0 -1
- package/dist/core/vercel-auth.d.ts +0 -40
- package/dist/core/vercel-auth.js +0 -88
- package/dist/core/vercel-auth.js.map +0 -1
- package/dist/core/vercel-context.d.ts +0 -2
- package/dist/core/vercel-context.js +0 -97
- package/dist/core/vercel-context.js.map +0 -1
- package/dist/core/vercel-manager.d.ts +0 -268
- package/dist/core/vercel-manager.js +0 -401
- package/dist/core/vercel-manager.js.map +0 -1
- package/dist/core/vercel-oauth.d.ts +0 -37
- package/dist/core/vercel-oauth.js +0 -57
- package/dist/core/vercel-oauth.js.map +0 -1
- package/dist/core/vercel-provider.d.ts +0 -23
- package/dist/core/vercel-provider.js +0 -276
- package/dist/core/vercel-provider.js.map +0 -1
- package/dist/core/vultr-actions.d.ts +0 -52
- package/dist/core/vultr-actions.js +0 -62
- package/dist/core/vultr-actions.js.map +0 -1
- package/dist/core/vultr-auth.d.ts +0 -32
- package/dist/core/vultr-auth.js +0 -54
- package/dist/core/vultr-auth.js.map +0 -1
- package/dist/core/vultr-context.d.ts +0 -2
- package/dist/core/vultr-context.js +0 -55
- package/dist/core/vultr-context.js.map +0 -1
- package/dist/core/vultr-manager.d.ts +0 -113
- package/dist/core/vultr-manager.js +0 -170
- package/dist/core/vultr-manager.js.map +0 -1
- package/dist/core/vultr-provider.d.ts +0 -69
- package/dist/core/vultr-provider.js +0 -226
- package/dist/core/vultr-provider.js.map +0 -1
- package/dist/core/workflow-triggers.d.ts +0 -139
- package/dist/core/workflow-triggers.js +0 -208
- package/dist/core/workflow-triggers.js.map +0 -1
- package/dist/core/workflows.d.ts +0 -290
- package/dist/core/workflows.js +0 -190
- package/dist/core/workflows.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -66
- package/dist/index.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -37
- package/dist/mcp/server.js +0 -84
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/tools/agent-env.d.ts +0 -9
- package/dist/mcp/tools/agent-env.js +0 -160
- package/dist/mcp/tools/agent-env.js.map +0 -1
- package/dist/mcp/tools/agent-profiles.d.ts +0 -9
- package/dist/mcp/tools/agent-profiles.js +0 -197
- package/dist/mcp/tools/agent-profiles.js.map +0 -1
- package/dist/mcp/tools/agent-registry.d.ts +0 -9
- package/dist/mcp/tools/agent-registry.js +0 -81
- package/dist/mcp/tools/agent-registry.js.map +0 -1
- package/dist/mcp/tools/agent.d.ts +0 -4
- package/dist/mcp/tools/agent.js +0 -29
- package/dist/mcp/tools/agent.js.map +0 -1
- package/dist/mcp/tools/context.d.ts +0 -36
- package/dist/mcp/tools/context.js +0 -69
- package/dist/mcp/tools/context.js.map +0 -1
- package/dist/mcp/tools/database.d.ts +0 -9
- package/dist/mcp/tools/database.js +0 -166
- package/dist/mcp/tools/database.js.map +0 -1
- package/dist/mcp/tools/docs.d.ts +0 -29
- package/dist/mcp/tools/docs.js +0 -134
- package/dist/mcp/tools/docs.js.map +0 -1
- package/dist/mcp/tools/errors.d.ts +0 -12
- package/dist/mcp/tools/errors.js +0 -47
- package/dist/mcp/tools/errors.js.map +0 -1
- package/dist/mcp/tools/git.d.ts +0 -4
- package/dist/mcp/tools/git.js +0 -209
- package/dist/mcp/tools/git.js.map +0 -1
- package/dist/mcp/tools/github.d.ts +0 -4
- package/dist/mcp/tools/github.js +0 -196
- package/dist/mcp/tools/github.js.map +0 -1
- package/dist/mcp/tools/index.d.ts +0 -36
- package/dist/mcp/tools/index.js +0 -61
- package/dist/mcp/tools/index.js.map +0 -1
- package/dist/mcp/tools/onboard.d.ts +0 -10
- package/dist/mcp/tools/onboard.js +0 -30
- package/dist/mcp/tools/onboard.js.map +0 -1
- package/dist/mcp/tools/provider.d.ts +0 -16
- package/dist/mcp/tools/provider.js +0 -110
- package/dist/mcp/tools/provider.js.map +0 -1
- package/dist/mcp/tools/services.d.ts +0 -13
- package/dist/mcp/tools/services.js +0 -204
- package/dist/mcp/tools/services.js.map +0 -1
- package/dist/mcp/tools/snapshots.d.ts +0 -8
- package/dist/mcp/tools/snapshots.js +0 -37
- package/dist/mcp/tools/snapshots.js.map +0 -1
- package/dist/mcp/tools/terminal.d.ts +0 -4
- package/dist/mcp/tools/terminal.js +0 -38
- package/dist/mcp/tools/terminal.js.map +0 -1
- package/dist/tui/app.d.ts +0 -22
- package/dist/tui/app.js +0 -138
- package/dist/tui/app.js.map +0 -1
- package/dist/web/agent-info.d.ts +0 -82
- package/dist/web/agent-info.js +0 -775
- package/dist/web/agent-info.js.map +0 -1
- package/dist/web/client/assets/SymbolsNerdFontMono-Regular-DDncdh2F.ttf +0 -0
- package/dist/web/client/assets/code-editor-TE0sjFGO.js +0 -30
- package/dist/web/client/assets/context-graph-B9MnBpp6.js +0 -7
- package/dist/web/client/assets/core-DhEqZVGG.js +0 -1
- package/dist/web/client/assets/event-BK_86lmQ.js +0 -1
- package/dist/web/client/assets/index-BhDAhmA1.js +0 -1
- package/dist/web/client/assets/index-CSo__8A6.css +0 -1
- package/dist/web/client/assets/index-DAJvBqn9.js +0 -352
- package/dist/web/client/assets/nomoreide-favicon-Ds7Tgj9p.svg +0 -24
- package/dist/web/client/assets/system-process-table-DetWu0Gj.js +0 -1
- package/dist/web/client/assets/window-DlR023_X.js +0 -1
- package/dist/web/client/index.html +0 -44
- package/dist/web/dashboard.d.ts +0 -61
- package/dist/web/dashboard.js +0 -221
- package/dist/web/dashboard.js.map +0 -1
- package/dist/web/directories.d.ts +0 -27
- package/dist/web/directories.js +0 -81
- package/dist/web/directories.js.map +0 -1
- package/dist/web/http-utils.d.ts +0 -13
- package/dist/web/http-utils.js +0 -72
- package/dist/web/http-utils.js.map +0 -1
- package/dist/web/routes/agent-chat-routes.d.ts +0 -3
- package/dist/web/routes/agent-chat-routes.js +0 -186
- package/dist/web/routes/agent-chat-routes.js.map +0 -1
- package/dist/web/routes/agent-env-routes.d.ts +0 -9
- package/dist/web/routes/agent-env-routes.js +0 -86
- package/dist/web/routes/agent-env-routes.js.map +0 -1
- package/dist/web/routes/agent-profile-routes.d.ts +0 -8
- package/dist/web/routes/agent-profile-routes.js +0 -211
- package/dist/web/routes/agent-profile-routes.js.map +0 -1
- package/dist/web/routes/agent-registry-routes.d.ts +0 -2
- package/dist/web/routes/agent-registry-routes.js +0 -375
- package/dist/web/routes/agent-registry-routes.js.map +0 -1
- package/dist/web/routes/agent-routes.d.ts +0 -3
- package/dist/web/routes/agent-routes.js +0 -73
- package/dist/web/routes/agent-routes.js.map +0 -1
- package/dist/web/routes/agent-settings-routes.d.ts +0 -8
- package/dist/web/routes/agent-settings-routes.js +0 -67
- package/dist/web/routes/agent-settings-routes.js.map +0 -1
- package/dist/web/routes/context-library-routes.d.ts +0 -2
- package/dist/web/routes/context-library-routes.js +0 -139
- package/dist/web/routes/context-library-routes.js.map +0 -1
- package/dist/web/routes/context.d.ts +0 -73
- package/dist/web/routes/context.js +0 -48
- package/dist/web/routes/context.js.map +0 -1
- package/dist/web/routes/dashboard-routes.d.ts +0 -3
- package/dist/web/routes/dashboard-routes.js +0 -47
- package/dist/web/routes/dashboard-routes.js.map +0 -1
- package/dist/web/routes/database-routes.d.ts +0 -3
- package/dist/web/routes/database-routes.js +0 -341
- package/dist/web/routes/database-routes.js.map +0 -1
- package/dist/web/routes/docker-routes.d.ts +0 -7
- package/dist/web/routes/docker-routes.js +0 -122
- package/dist/web/routes/docker-routes.js.map +0 -1
- package/dist/web/routes/errors-routes.d.ts +0 -3
- package/dist/web/routes/errors-routes.js +0 -77
- package/dist/web/routes/errors-routes.js.map +0 -1
- package/dist/web/routes/extensions-routes.d.ts +0 -14
- package/dist/web/routes/extensions-routes.js +0 -21
- package/dist/web/routes/extensions-routes.js.map +0 -1
- package/dist/web/routes/git-routes.d.ts +0 -3
- package/dist/web/routes/git-routes.js +0 -598
- package/dist/web/routes/git-routes.js.map +0 -1
- package/dist/web/routes/github-context.d.ts +0 -11
- package/dist/web/routes/github-context.js +0 -34
- package/dist/web/routes/github-context.js.map +0 -1
- package/dist/web/routes/github-routes.d.ts +0 -2
- package/dist/web/routes/github-routes.js +0 -699
- package/dist/web/routes/github-routes.js.map +0 -1
- package/dist/web/routes/host-routes.d.ts +0 -2
- package/dist/web/routes/host-routes.js +0 -188
- package/dist/web/routes/host-routes.js.map +0 -1
- package/dist/web/routes/index.d.ts +0 -10
- package/dist/web/routes/index.js +0 -72
- package/dist/web/routes/index.js.map +0 -1
- package/dist/web/routes/jetbrains-import-routes.d.ts +0 -2
- package/dist/web/routes/jetbrains-import-routes.js +0 -121
- package/dist/web/routes/jetbrains-import-routes.js.map +0 -1
- package/dist/web/routes/log-sources-routes.d.ts +0 -6
- package/dist/web/routes/log-sources-routes.js +0 -102
- package/dist/web/routes/log-sources-routes.js.map +0 -1
- package/dist/web/routes/metrics-routes.d.ts +0 -3
- package/dist/web/routes/metrics-routes.js +0 -60
- package/dist/web/routes/metrics-routes.js.map +0 -1
- package/dist/web/routes/onboard-routes.d.ts +0 -9
- package/dist/web/routes/onboard-routes.js +0 -146
- package/dist/web/routes/onboard-routes.js.map +0 -1
- package/dist/web/routes/overview-routes.d.ts +0 -2
- package/dist/web/routes/overview-routes.js +0 -36
- package/dist/web/routes/overview-routes.js.map +0 -1
- package/dist/web/routes/provider-routes.d.ts +0 -2
- package/dist/web/routes/provider-routes.js +0 -558
- package/dist/web/routes/provider-routes.js.map +0 -1
- package/dist/web/routes/service-routes.d.ts +0 -3
- package/dist/web/routes/service-routes.js +0 -511
- package/dist/web/routes/service-routes.js.map +0 -1
- package/dist/web/routes/settings-routes.d.ts +0 -2
- package/dist/web/routes/settings-routes.js +0 -151
- package/dist/web/routes/settings-routes.js.map +0 -1
- package/dist/web/routes/shell-routes.d.ts +0 -22
- package/dist/web/routes/shell-routes.js +0 -75
- package/dist/web/routes/shell-routes.js.map +0 -1
- package/dist/web/routes/skills-routes.d.ts +0 -2
- package/dist/web/routes/skills-routes.js +0 -49
- package/dist/web/routes/skills-routes.js.map +0 -1
- package/dist/web/routes/snapshot-routes.d.ts +0 -8
- package/dist/web/routes/snapshot-routes.js +0 -194
- package/dist/web/routes/snapshot-routes.js.map +0 -1
- package/dist/web/routes/ssh-server-routes.d.ts +0 -10
- package/dist/web/routes/ssh-server-routes.js +0 -163
- package/dist/web/routes/ssh-server-routes.js.map +0 -1
- package/dist/web/routes/terminal-routes.d.ts +0 -7
- package/dist/web/routes/terminal-routes.js +0 -313
- package/dist/web/routes/terminal-routes.js.map +0 -1
- package/dist/web/routes/workflow-routes.d.ts +0 -8
- package/dist/web/routes/workflow-routes.js +0 -45
- package/dist/web/routes/workflow-routes.js.map +0 -1
- package/dist/web/routes/workflow-trigger-routes.d.ts +0 -9
- package/dist/web/routes/workflow-trigger-routes.js +0 -78
- package/dist/web/routes/workflow-trigger-routes.js.map +0 -1
- package/dist/web/server.d.ts +0 -31
- package/dist/web/server.js +0 -325
- package/dist/web/server.js.map +0 -1
- package/dist/web/service-tester.d.ts +0 -16
- package/dist/web/service-tester.js +0 -107
- package/dist/web/service-tester.js.map +0 -1
- package/dist/web/static-assets.d.ts +0 -9
- package/dist/web/static-assets.js +0 -77
- package/dist/web/static-assets.js.map +0 -1
- package/dist/web/usage-info.d.ts +0 -56
- package/dist/web/usage-info.js +0 -265
- package/dist/web/usage-info.js.map +0 -1
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { homedir } from "node:os";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
4
|
-
/**
|
|
5
|
-
* Shared, project-local view of running services, persisted at
|
|
6
|
-
* `.nomoreide/runtime.json`. Reads never mutate the file; mutations rewrite it
|
|
7
|
-
* atomically (temp + rename) and drop any entries whose pid has died, so stale
|
|
8
|
-
* entries from a crashed session self-heal on the next write.
|
|
9
|
-
*/
|
|
10
|
-
export class ServiceRegistry {
|
|
11
|
-
path;
|
|
12
|
-
constructor(path) {
|
|
13
|
-
this.path = path;
|
|
14
|
-
}
|
|
15
|
-
list() {
|
|
16
|
-
return Object.values(this.read()).filter((entry) => isPidAlive(entry.pid));
|
|
17
|
-
}
|
|
18
|
-
get(name) {
|
|
19
|
-
const entry = this.read()[name];
|
|
20
|
-
return entry && isPidAlive(entry.pid) ? entry : null;
|
|
21
|
-
}
|
|
22
|
-
record(entry) {
|
|
23
|
-
const all = this.pruned();
|
|
24
|
-
all[entry.name] = entry;
|
|
25
|
-
this.write(all);
|
|
26
|
-
}
|
|
27
|
-
update(name, patch) {
|
|
28
|
-
const all = this.pruned();
|
|
29
|
-
const existing = all[name];
|
|
30
|
-
if (!existing)
|
|
31
|
-
return;
|
|
32
|
-
all[name] = { ...existing, ...patch };
|
|
33
|
-
this.write(all);
|
|
34
|
-
}
|
|
35
|
-
remove(name) {
|
|
36
|
-
const all = this.pruned();
|
|
37
|
-
if (name in all) {
|
|
38
|
-
delete all[name];
|
|
39
|
-
}
|
|
40
|
-
this.write(all);
|
|
41
|
-
}
|
|
42
|
-
removeOwnedBy(ownerPid) {
|
|
43
|
-
const all = this.read();
|
|
44
|
-
let changed = false;
|
|
45
|
-
for (const [name, entry] of Object.entries(all)) {
|
|
46
|
-
if (entry.ownerPid === ownerPid || !isPidAlive(entry.pid)) {
|
|
47
|
-
delete all[name];
|
|
48
|
-
changed = true;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (changed)
|
|
52
|
-
this.write(all);
|
|
53
|
-
}
|
|
54
|
-
pruned() {
|
|
55
|
-
const all = this.read();
|
|
56
|
-
for (const [name, entry] of Object.entries(all)) {
|
|
57
|
-
if (!isPidAlive(entry.pid))
|
|
58
|
-
delete all[name];
|
|
59
|
-
}
|
|
60
|
-
return all;
|
|
61
|
-
}
|
|
62
|
-
read() {
|
|
63
|
-
try {
|
|
64
|
-
const parsed = JSON.parse(readFileSync(this.path, "utf8"));
|
|
65
|
-
if (!parsed || typeof parsed !== "object")
|
|
66
|
-
return {};
|
|
67
|
-
return parsed;
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
return {};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
write(all) {
|
|
74
|
-
mkdirSync(dirname(this.path), { recursive: true });
|
|
75
|
-
const tmp = `${this.path}.${process.pid}.tmp`;
|
|
76
|
-
writeFileSync(tmp, `${JSON.stringify(all, null, 2)}\n`);
|
|
77
|
-
renameSync(tmp, this.path);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* The shared registry is machine-global: `~/.nomoreide/runtime.json`. Running
|
|
82
|
-
* processes and their ports are global resources, so sessions launched from
|
|
83
|
-
* different directories (multiple terminals, the desktop app, per-project MCP
|
|
84
|
-
* servers) must all see the same registry or they spawn duplicates.
|
|
85
|
-
*/
|
|
86
|
-
export function defaultRuntimeRegistryPath() {
|
|
87
|
-
return join(homedir(), ".nomoreide", "runtime.json");
|
|
88
|
-
}
|
|
89
|
-
/** `true` while the pid exists (including when owned by another user — EPERM). */
|
|
90
|
-
export function isPidAlive(pid) {
|
|
91
|
-
if (!pid || pid <= 0)
|
|
92
|
-
return false;
|
|
93
|
-
try {
|
|
94
|
-
process.kill(pid, 0);
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
return error.code === "EPERM";
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=service-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"service-registry.js","sourceRoot":"","sources":["../../src/core/service-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export interface Snapshot {
|
|
2
|
-
sha: string;
|
|
3
|
-
ref: string;
|
|
4
|
-
label: string;
|
|
5
|
-
createdAt: string;
|
|
6
|
-
}
|
|
7
|
-
export interface SnapshotChange {
|
|
8
|
-
/** A (added since snapshot), M (modified), D (deleted since snapshot). */
|
|
9
|
-
status: string;
|
|
10
|
-
path: string;
|
|
11
|
-
}
|
|
12
|
-
export interface RestoreResult {
|
|
13
|
-
/** Safety snapshot taken automatically before the restore. */
|
|
14
|
-
preRestore: Snapshot;
|
|
15
|
-
/** Files whose content was restored or re-created from the snapshot. */
|
|
16
|
-
restoredFiles: number;
|
|
17
|
-
/** Files created after the snapshot that the restore removed. */
|
|
18
|
-
deletedPaths: string[];
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Working-tree checkpoints under `refs/nomoreide/snapshots/*`, kept
|
|
22
|
-
* deliberately separate from the read-safe {@link GitManager} (like
|
|
23
|
-
* {@link GitActions}). Snapshots are commit objects in a private ref
|
|
24
|
-
* namespace: they never move HEAD, branches, or the user's index — the tree
|
|
25
|
-
* is built through a temporary `GIT_INDEX_FILE` so staged state survives.
|
|
26
|
-
*
|
|
27
|
-
* `restore` is the one destructive operation and it is made reversible by
|
|
28
|
-
* always taking a `pre-restore` snapshot first; it also refuses shas that are
|
|
29
|
-
* not in the snapshot namespace, so the API can never check out arbitrary
|
|
30
|
-
* commits.
|
|
31
|
-
*/
|
|
32
|
-
export declare class SnapshotManager {
|
|
33
|
-
private readonly cwd;
|
|
34
|
-
constructor(cwd?: string);
|
|
35
|
-
snapshot(label: string): Promise<Snapshot>;
|
|
36
|
-
/** Newest first (ref names start with the creation epoch-millis). */
|
|
37
|
-
list(): Promise<Snapshot[]>;
|
|
38
|
-
/** Diff a snapshot against the current working tree (incl. untracked files). */
|
|
39
|
-
changedFiles(sha: string): Promise<SnapshotChange[]>;
|
|
40
|
-
diff(sha: string, path?: string): Promise<string>;
|
|
41
|
-
restore(sha: string): Promise<RestoreResult>;
|
|
42
|
-
/** Permanently drop a single snapshot ref (the commit object is left to gc). */
|
|
43
|
-
delete(sha: string): Promise<void>;
|
|
44
|
-
/**
|
|
45
|
-
* Relabel a snapshot. Commit objects are immutable, so this rewrites the
|
|
46
|
-
* commit message onto a new object (preserving tree, parent, and original
|
|
47
|
-
* dates) and repoints the same ref at it; the ref name is left as-is.
|
|
48
|
-
*/
|
|
49
|
-
rename(sha: string, label: string): Promise<Snapshot>;
|
|
50
|
-
/** Drop snapshots beyond the newest `keep`; returns how many were removed. */
|
|
51
|
-
prune(keep?: number): Promise<number>;
|
|
52
|
-
/** Resolve a sha to its snapshot, refusing anything outside the namespace. */
|
|
53
|
-
private find;
|
|
54
|
-
/**
|
|
55
|
-
* Write the current working tree (tracked + untracked, `.gitignore`
|
|
56
|
-
* respected) as a tree object via a throwaway index file.
|
|
57
|
-
*/
|
|
58
|
-
private captureTree;
|
|
59
|
-
private headSha;
|
|
60
|
-
private removeWorktreeFile;
|
|
61
|
-
private git;
|
|
62
|
-
}
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
import { execFile } from "node:child_process";
|
|
2
|
-
import { randomUUID } from "node:crypto";
|
|
3
|
-
import { rm } from "node:fs/promises";
|
|
4
|
-
import { tmpdir } from "node:os";
|
|
5
|
-
import { join, resolve, sep } from "node:path";
|
|
6
|
-
import { promisify } from "node:util";
|
|
7
|
-
const execFileAsync = promisify(execFile);
|
|
8
|
-
const SNAPSHOT_REF_PREFIX = "refs/nomoreide/snapshots/";
|
|
9
|
-
/** Snapshots are anonymous safety commits; never attributed to the user. */
|
|
10
|
-
const SNAPSHOT_IDENTITY = {
|
|
11
|
-
GIT_AUTHOR_NAME: "nomoreide",
|
|
12
|
-
GIT_AUTHOR_EMAIL: "nomoreide@localhost",
|
|
13
|
-
GIT_COMMITTER_NAME: "nomoreide",
|
|
14
|
-
GIT_COMMITTER_EMAIL: "nomoreide@localhost",
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Working-tree checkpoints under `refs/nomoreide/snapshots/*`, kept
|
|
18
|
-
* deliberately separate from the read-safe {@link GitManager} (like
|
|
19
|
-
* {@link GitActions}). Snapshots are commit objects in a private ref
|
|
20
|
-
* namespace: they never move HEAD, branches, or the user's index — the tree
|
|
21
|
-
* is built through a temporary `GIT_INDEX_FILE` so staged state survives.
|
|
22
|
-
*
|
|
23
|
-
* `restore` is the one destructive operation and it is made reversible by
|
|
24
|
-
* always taking a `pre-restore` snapshot first; it also refuses shas that are
|
|
25
|
-
* not in the snapshot namespace, so the API can never check out arbitrary
|
|
26
|
-
* commits.
|
|
27
|
-
*/
|
|
28
|
-
export class SnapshotManager {
|
|
29
|
-
cwd;
|
|
30
|
-
constructor(cwd = process.cwd()) {
|
|
31
|
-
this.cwd = cwd;
|
|
32
|
-
}
|
|
33
|
-
async snapshot(label) {
|
|
34
|
-
const cleaned = label.trim() || "snapshot";
|
|
35
|
-
const tree = await this.captureTree();
|
|
36
|
-
const head = await this.headSha();
|
|
37
|
-
const commitArgs = ["commit-tree", tree, "-m", cleaned];
|
|
38
|
-
if (head)
|
|
39
|
-
commitArgs.push("-p", head);
|
|
40
|
-
const sha = (await this.git(commitArgs, SNAPSHOT_IDENTITY)).trim();
|
|
41
|
-
const ref = `${SNAPSHOT_REF_PREFIX}${Date.now()}-${slugify(cleaned)}`;
|
|
42
|
-
await this.git(["update-ref", ref, sha]);
|
|
43
|
-
return { sha, ref, label: cleaned, createdAt: new Date().toISOString() };
|
|
44
|
-
}
|
|
45
|
-
/** Newest first (ref names start with the creation epoch-millis). */
|
|
46
|
-
async list() {
|
|
47
|
-
const output = await this.git([
|
|
48
|
-
"for-each-ref",
|
|
49
|
-
"--sort=-refname",
|
|
50
|
-
"--format=%(refname)%09%(objectname)%09%(creatordate:iso-strict)%09%(subject)",
|
|
51
|
-
SNAPSHOT_REF_PREFIX.replace(/\/$/, ""),
|
|
52
|
-
]);
|
|
53
|
-
return output
|
|
54
|
-
.split("\n")
|
|
55
|
-
.filter((line) => line.trim() !== "")
|
|
56
|
-
.map((line) => {
|
|
57
|
-
const [ref, sha, createdAt, ...subject] = line.split("\t");
|
|
58
|
-
return { ref, sha, createdAt, label: subject.join("\t") };
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
/** Diff a snapshot against the current working tree (incl. untracked files). */
|
|
62
|
-
async changedFiles(sha) {
|
|
63
|
-
const tree = await this.captureTree();
|
|
64
|
-
const output = await this.git([
|
|
65
|
-
"diff",
|
|
66
|
-
"--no-renames",
|
|
67
|
-
"--name-status",
|
|
68
|
-
sha,
|
|
69
|
-
tree,
|
|
70
|
-
]);
|
|
71
|
-
return output
|
|
72
|
-
.split("\n")
|
|
73
|
-
.filter((line) => line.trim() !== "")
|
|
74
|
-
.map((line) => {
|
|
75
|
-
const [status, ...path] = line.split("\t");
|
|
76
|
-
return { status, path: path.join("\t") };
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
async diff(sha, path) {
|
|
80
|
-
const tree = await this.captureTree();
|
|
81
|
-
const args = ["diff", "--no-renames", sha, tree];
|
|
82
|
-
if (path)
|
|
83
|
-
args.push("--", path);
|
|
84
|
-
return this.git(args);
|
|
85
|
-
}
|
|
86
|
-
async restore(sha) {
|
|
87
|
-
const target = await this.find(sha);
|
|
88
|
-
const preRestore = await this.snapshot(`pre-restore (${target.label})`);
|
|
89
|
-
// Everything that differs between the snapshot and the just-captured
|
|
90
|
-
// current state. Additions must be deleted by hand: `git restore` only
|
|
91
|
-
// writes files that exist in the source tree, it never removes extras.
|
|
92
|
-
const changes = await this.git([
|
|
93
|
-
"diff",
|
|
94
|
-
"--no-renames",
|
|
95
|
-
"--name-status",
|
|
96
|
-
sha,
|
|
97
|
-
preRestore.sha,
|
|
98
|
-
]);
|
|
99
|
-
const deletedPaths = [];
|
|
100
|
-
let restoredFiles = 0;
|
|
101
|
-
for (const line of changes.split("\n")) {
|
|
102
|
-
if (line.trim() === "")
|
|
103
|
-
continue;
|
|
104
|
-
const [status, ...rest] = line.split("\t");
|
|
105
|
-
const path = rest.join("\t");
|
|
106
|
-
if (status === "A") {
|
|
107
|
-
await this.removeWorktreeFile(path);
|
|
108
|
-
deletedPaths.push(path);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
restoredFiles += 1;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (restoredFiles > 0) {
|
|
115
|
-
// --worktree only: the user's index stays untouched, mirroring snapshot().
|
|
116
|
-
await this.git(["restore", "--source", sha, "--worktree", "--", ":/"]);
|
|
117
|
-
}
|
|
118
|
-
return { preRestore, restoredFiles, deletedPaths };
|
|
119
|
-
}
|
|
120
|
-
/** Permanently drop a single snapshot ref (the commit object is left to gc). */
|
|
121
|
-
async delete(sha) {
|
|
122
|
-
const target = await this.find(sha);
|
|
123
|
-
// Compare-and-swap on the old value so we never delete a moved ref.
|
|
124
|
-
await this.git(["update-ref", "-d", target.ref, sha]);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Relabel a snapshot. Commit objects are immutable, so this rewrites the
|
|
128
|
-
* commit message onto a new object (preserving tree, parent, and original
|
|
129
|
-
* dates) and repoints the same ref at it; the ref name is left as-is.
|
|
130
|
-
*/
|
|
131
|
-
async rename(sha, label) {
|
|
132
|
-
const target = await this.find(sha);
|
|
133
|
-
const cleaned = label.trim() || "snapshot";
|
|
134
|
-
const tree = (await this.git(["rev-parse", `${sha}^{tree}`])).trim();
|
|
135
|
-
const parents = (await this.git(["rev-list", "--parents", "-n", "1", sha]))
|
|
136
|
-
.trim()
|
|
137
|
-
.split(/\s+/)
|
|
138
|
-
.slice(1);
|
|
139
|
-
const authorDate = (await this.git(["show", "-s", "--format=%aI", sha])).trim();
|
|
140
|
-
const committerDate = (await this.git(["show", "-s", "--format=%cI", sha])).trim();
|
|
141
|
-
const commitArgs = ["commit-tree", tree, "-m", cleaned];
|
|
142
|
-
for (const parent of parents)
|
|
143
|
-
commitArgs.push("-p", parent);
|
|
144
|
-
const newSha = (await this.git(commitArgs, {
|
|
145
|
-
...SNAPSHOT_IDENTITY,
|
|
146
|
-
GIT_AUTHOR_DATE: authorDate,
|
|
147
|
-
GIT_COMMITTER_DATE: committerDate,
|
|
148
|
-
})).trim();
|
|
149
|
-
// CAS the ref from the old object to the relabeled one.
|
|
150
|
-
await this.git(["update-ref", target.ref, newSha, sha]);
|
|
151
|
-
return { sha: newSha, ref: target.ref, label: cleaned, createdAt: target.createdAt };
|
|
152
|
-
}
|
|
153
|
-
/** Drop snapshots beyond the newest `keep`; returns how many were removed. */
|
|
154
|
-
async prune(keep = 50) {
|
|
155
|
-
const snapshots = await this.list();
|
|
156
|
-
const stale = snapshots.slice(Math.max(0, keep));
|
|
157
|
-
for (const snapshot of stale) {
|
|
158
|
-
await this.git(["update-ref", "-d", snapshot.ref]);
|
|
159
|
-
}
|
|
160
|
-
return stale.length;
|
|
161
|
-
}
|
|
162
|
-
/** Resolve a sha to its snapshot, refusing anything outside the namespace. */
|
|
163
|
-
async find(sha) {
|
|
164
|
-
const target = (await this.list()).find((snapshot) => snapshot.sha === sha);
|
|
165
|
-
if (!target) {
|
|
166
|
-
throw new Error(`Not a nomoreide snapshot: ${sha}`);
|
|
167
|
-
}
|
|
168
|
-
return target;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Write the current working tree (tracked + untracked, `.gitignore`
|
|
172
|
-
* respected) as a tree object via a throwaway index file.
|
|
173
|
-
*/
|
|
174
|
-
async captureTree() {
|
|
175
|
-
const indexFile = join(tmpdir(), `nomoreide-index-${randomUUID()}`);
|
|
176
|
-
const env = { GIT_INDEX_FILE: indexFile };
|
|
177
|
-
try {
|
|
178
|
-
const head = await this.headSha();
|
|
179
|
-
await this.git(["read-tree", ...(head ? [head] : ["--empty"])], env);
|
|
180
|
-
await this.git(["add", "-A"], env);
|
|
181
|
-
return (await this.git(["write-tree"], env)).trim();
|
|
182
|
-
}
|
|
183
|
-
finally {
|
|
184
|
-
await rm(indexFile, { force: true });
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
async headSha() {
|
|
188
|
-
try {
|
|
189
|
-
return (await this.git(["rev-parse", "--verify", "HEAD"])).trim();
|
|
190
|
-
}
|
|
191
|
-
catch {
|
|
192
|
-
return null; // repository without commits yet
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
async removeWorktreeFile(path) {
|
|
196
|
-
const absolute = resolve(this.cwd, path);
|
|
197
|
-
if (!absolute.startsWith(resolve(this.cwd) + sep)) {
|
|
198
|
-
throw new Error(`Refusing to delete outside the repository: ${path}`);
|
|
199
|
-
}
|
|
200
|
-
await rm(absolute, { force: true });
|
|
201
|
-
}
|
|
202
|
-
async git(args, env) {
|
|
203
|
-
const { stdout } = await execFileAsync("git", args, {
|
|
204
|
-
cwd: this.cwd,
|
|
205
|
-
maxBuffer: 256 * 1024 * 1024,
|
|
206
|
-
env: env ? { ...process.env, ...env } : process.env,
|
|
207
|
-
});
|
|
208
|
-
return stdout;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
function slugify(label) {
|
|
212
|
-
const slug = label
|
|
213
|
-
.toLowerCase()
|
|
214
|
-
.replace(/[^a-z0-9]+/g, "-")
|
|
215
|
-
.replace(/^-+|-+$/g, "")
|
|
216
|
-
.slice(0, 40);
|
|
217
|
-
return slug || "snapshot";
|
|
218
|
-
}
|
|
219
|
-
//# sourceMappingURL=snapshot-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-manager.js","sourceRoot":"","sources":["../../src/core/snapshot-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import type { HostInstanceRef, HostSshTarget } from "./providers/host-provider.js";
|
|
2
|
-
import { type ReadOnlyFileContent, type ReadOnlyFileEntry, type ReadOnlyFileType } from "./read-only-files.js";
|
|
3
|
-
import type { SshServerDefinition } from "./types.js";
|
|
4
|
-
export interface SshServerSummary extends SshServerDefinition {
|
|
5
|
-
discovered: boolean;
|
|
6
|
-
saved: boolean;
|
|
7
|
-
/**
|
|
8
|
-
* Set when a host provider adopted this machine — see
|
|
9
|
-
* `providers/host-bridge.ts`. Absent for hand-registered and
|
|
10
|
-
* `~/.ssh/config` hosts, which is every host that existed before providers.
|
|
11
|
-
*/
|
|
12
|
-
instance?: HostInstanceRef;
|
|
13
|
-
}
|
|
14
|
-
export interface SshServerProbe {
|
|
15
|
-
host: string;
|
|
16
|
-
reachable: boolean;
|
|
17
|
-
latencyMs: number;
|
|
18
|
-
hostname?: string;
|
|
19
|
-
platform?: string;
|
|
20
|
-
error?: string;
|
|
21
|
-
}
|
|
22
|
-
export interface RemoteProcessMetric {
|
|
23
|
-
pid: number;
|
|
24
|
-
ppid: number;
|
|
25
|
-
user: string;
|
|
26
|
-
cpuPercent: number;
|
|
27
|
-
rssMb: number;
|
|
28
|
-
command: string;
|
|
29
|
-
}
|
|
30
|
-
export interface RemoteHostMetricSample {
|
|
31
|
-
t: number;
|
|
32
|
-
cpuPercent: number;
|
|
33
|
-
memoryUsedBytes: number;
|
|
34
|
-
memoryTotalBytes: number;
|
|
35
|
-
memoryUsedPercent: number;
|
|
36
|
-
loadAverage: [number, number, number];
|
|
37
|
-
uptimeSeconds: number;
|
|
38
|
-
logicalCpuCount: number;
|
|
39
|
-
disk: {
|
|
40
|
-
path: string;
|
|
41
|
-
totalBytes: number;
|
|
42
|
-
usedBytes: number;
|
|
43
|
-
availableBytes: number;
|
|
44
|
-
usedPercent: number;
|
|
45
|
-
} | null;
|
|
46
|
-
}
|
|
47
|
-
export interface RemoteHostMetrics {
|
|
48
|
-
host: string;
|
|
49
|
-
hostname: string;
|
|
50
|
-
platform: string;
|
|
51
|
-
current: RemoteHostMetricSample;
|
|
52
|
-
processes: RemoteProcessMetric[];
|
|
53
|
-
}
|
|
54
|
-
export type RemoteFileType = ReadOnlyFileType;
|
|
55
|
-
export type RemoteFileEntry = ReadOnlyFileEntry;
|
|
56
|
-
export interface RemoteDirectoryListing {
|
|
57
|
-
host: string;
|
|
58
|
-
path: string;
|
|
59
|
-
entries: RemoteFileEntry[];
|
|
60
|
-
}
|
|
61
|
-
export interface RemoteFileContent extends ReadOnlyFileContent {
|
|
62
|
-
host: string;
|
|
63
|
-
}
|
|
64
|
-
/** Explicit, concrete aliases from ~/.ssh/config. Wildcard patterns are omitted. */
|
|
65
|
-
export declare function parseSshConfigHosts(contents: string): string[];
|
|
66
|
-
export declare function discoverSshHosts(configPath?: string): Promise<string[]>;
|
|
67
|
-
/**
|
|
68
|
-
* One row per host, whether it came from the user, from `~/.ssh/config`, or
|
|
69
|
-
* from a host provider.
|
|
70
|
-
*
|
|
71
|
-
* Merged on the host string, so a provider instance the user has *also* saved
|
|
72
|
-
* metadata for is one row, not two, and their name and environment win — the
|
|
73
|
-
* provider supplies a starting point, not an override.
|
|
74
|
-
*/
|
|
75
|
-
export declare function mergeSshServers(saved: SshServerDefinition[], discoveredHosts: string[], hostTargets?: HostSshTarget[]): SshServerSummary[];
|
|
76
|
-
export declare function probeSshServer(host: string): Promise<SshServerProbe>;
|
|
77
|
-
export declare function readRemoteHostMetrics(host: string): Promise<RemoteHostMetrics>;
|
|
78
|
-
/**
|
|
79
|
-
* List one Linux directory without parsing human-oriented `ls` output.
|
|
80
|
-
*
|
|
81
|
-
* GNU find emits NUL-delimited fields, so spaces, tabs, quotes, and newlines in
|
|
82
|
-
* filenames remain data rather than syntax. Paths are passed as one shell-
|
|
83
|
-
* escaped positional argument; the browser cannot append a command here.
|
|
84
|
-
*/
|
|
85
|
-
export declare function readRemoteDirectory(host: string, path?: string, includeHidden?: boolean): Promise<RemoteDirectoryListing>;
|
|
86
|
-
export declare function readRemoteFile(host: string, path: string): Promise<RemoteFileContent>;
|
|
87
|
-
export declare function parseRemoteDirectoryListing(host: string, output: Buffer, includeHidden?: boolean): RemoteDirectoryListing;
|
|
88
|
-
export declare function parseRemoteFileContent(host: string, path: string, output: Buffer): RemoteFileContent;
|
|
89
|
-
export declare function parseRemoteMetrics(host: string, output: string, sampledAt: number): RemoteHostMetrics;
|