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,163 +0,0 @@
|
|
|
1
|
-
import { hostProviderSshTargets } from "../../core/providers/host-bridge.js";
|
|
2
|
-
import { discoverSshHosts, mergeSshServers, probeSshServer, readRemoteDirectory, readRemoteFile, readRemoteHostMetrics, } from "../../core/ssh-servers.js";
|
|
3
|
-
import { inspectSshSetup, resolveSshSetupTerminal, } from "../../core/ssh-setup.js";
|
|
4
|
-
import { readJson, sendJson } from "../http-utils.js";
|
|
5
|
-
import { errorMessage, patternRoute, route } from "./context.js";
|
|
6
|
-
/**
|
|
7
|
-
* Saved/discovered SSH servers, connection checks, and read-only Linux metrics.
|
|
8
|
-
*
|
|
9
|
-
* "Discovered" now has a third source: any host provider the user has connected
|
|
10
|
-
* contributes its instances as SSH targets, so a Vultr machine is probed,
|
|
11
|
-
* measured and opened in a terminal by the same routes as a `~/.ssh/config`
|
|
12
|
-
* alias. Nothing below knows which provider — see `providers/host-bridge.ts`.
|
|
13
|
-
*/
|
|
14
|
-
export const sshServerRoutes = [
|
|
15
|
-
route("GET", "/api/servers", async ({ response, configStore }) => {
|
|
16
|
-
const [config, discovered, hostTargets] = await Promise.all([
|
|
17
|
-
configStore.load(),
|
|
18
|
-
discoverSshHosts(),
|
|
19
|
-
hostProviderSshTargets(configStore),
|
|
20
|
-
]);
|
|
21
|
-
sendJson(response, {
|
|
22
|
-
ok: true,
|
|
23
|
-
servers: mergeSshServers(config.sshServers, discovered, hostTargets),
|
|
24
|
-
});
|
|
25
|
-
}),
|
|
26
|
-
route("GET", "/api/servers/setup/status", async ({ response }) => {
|
|
27
|
-
sendJson(response, { ok: true, setup: await inspectSshSetup() });
|
|
28
|
-
}),
|
|
29
|
-
route("POST", "/api/servers/setup/terminal", async ({ request, response, terminalManager }) => {
|
|
30
|
-
const body = await readJson(request);
|
|
31
|
-
const action = body.action;
|
|
32
|
-
if (action !== "generate-key" && action !== "install-key") {
|
|
33
|
-
sendJson(response, { ok: false, error: "Unknown SSH setup action." }, 400);
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
const options = resolveSshSetupTerminal(action, typeof body.host === "string" ? body.host : undefined);
|
|
38
|
-
const session = terminalManager.create({}, options);
|
|
39
|
-
sendJson(response, { ok: true, session }, 201);
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 400);
|
|
43
|
-
}
|
|
44
|
-
}),
|
|
45
|
-
route("POST", "/api/servers", async ({ request, response, configStore }) => {
|
|
46
|
-
const body = await readJson(request);
|
|
47
|
-
const definition = {
|
|
48
|
-
host: typeof body.host === "string" ? body.host : "",
|
|
49
|
-
name: typeof body.name === "string" && body.name.trim() ? body.name : undefined,
|
|
50
|
-
environment: typeof body.environment === "string" && body.environment.trim()
|
|
51
|
-
? body.environment
|
|
52
|
-
: undefined,
|
|
53
|
-
};
|
|
54
|
-
try {
|
|
55
|
-
const config = await configStore.registerSshServer(definition);
|
|
56
|
-
sendJson(response, { ok: true, servers: config.sshServers });
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 400);
|
|
60
|
-
}
|
|
61
|
-
}),
|
|
62
|
-
patternRoute(/^\/api\/servers\/([^/]+)$/, ["host"], async ({ request, response, params, configStore }) => {
|
|
63
|
-
const host = decodeURIComponent(params.host);
|
|
64
|
-
if (request.method !== "DELETE") {
|
|
65
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
try {
|
|
69
|
-
const config = await configStore.removeSshServer(host);
|
|
70
|
-
sendJson(response, { ok: true, servers: config.sshServers });
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 400);
|
|
74
|
-
}
|
|
75
|
-
}),
|
|
76
|
-
patternRoute(/^\/api\/servers\/([^/]+)\/files$/, ["host"], async ({ request, response, params, url }) => {
|
|
77
|
-
if (request.method !== "GET") {
|
|
78
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
try {
|
|
82
|
-
const path = url.searchParams.get("path") || ".";
|
|
83
|
-
const directory = await readRemoteDirectory(decodeURIComponent(params.host), path, url.searchParams.get("hidden") === "1");
|
|
84
|
-
sendJson(response, { ok: true, directory });
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 502);
|
|
88
|
-
}
|
|
89
|
-
}),
|
|
90
|
-
patternRoute(/^\/api\/servers\/([^/]+)\/file$/, ["host"], async ({ request, response, params, url }) => {
|
|
91
|
-
if (request.method !== "GET") {
|
|
92
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const path = url.searchParams.get("path");
|
|
96
|
-
if (!path) {
|
|
97
|
-
sendJson(response, { ok: false, error: "path is required" }, 400);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
try {
|
|
101
|
-
const file = await readRemoteFile(decodeURIComponent(params.host), path);
|
|
102
|
-
sendJson(response, { ok: true, file });
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 502);
|
|
106
|
-
}
|
|
107
|
-
}),
|
|
108
|
-
patternRoute(/^\/api\/servers\/([^/]+)\/probe$/, ["host"], async ({ request, response, params }) => {
|
|
109
|
-
if (request.method !== "POST") {
|
|
110
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
try {
|
|
114
|
-
sendJson(response, {
|
|
115
|
-
ok: true,
|
|
116
|
-
probe: await probeSshServer(decodeURIComponent(params.host)),
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 400);
|
|
121
|
-
}
|
|
122
|
-
}),
|
|
123
|
-
patternRoute(/^\/api\/servers\/([^/]+)\/metrics$/, ["host"], async ({ request, response, params }) => {
|
|
124
|
-
if (request.method !== "GET") {
|
|
125
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
try {
|
|
129
|
-
sendJson(response, {
|
|
130
|
-
ok: true,
|
|
131
|
-
metrics: await readRemoteHostMetrics(decodeURIComponent(params.host)),
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
catch (error) {
|
|
135
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 502);
|
|
136
|
-
}
|
|
137
|
-
}),
|
|
138
|
-
patternRoute(/^\/api\/servers\/([^/]+)\/terminal$/, ["host"], async ({ request, response, params, configStore, terminalManager }) => {
|
|
139
|
-
if (request.method !== "POST") {
|
|
140
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
const host = decodeURIComponent(params.host);
|
|
144
|
-
const [config, discovered, hostTargets] = await Promise.all([
|
|
145
|
-
configStore.load(),
|
|
146
|
-
discoverSshHosts(),
|
|
147
|
-
hostProviderSshTargets(configStore),
|
|
148
|
-
]);
|
|
149
|
-
const server = mergeSshServers(config.sshServers, discovered, hostTargets).find((entry) => entry.host === host);
|
|
150
|
-
if (!server) {
|
|
151
|
-
sendJson(response, { ok: false, error: `Unknown SSH server: ${host}` }, 404);
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
const session = terminalManager.createWithId(`ssh:${host}`, {
|
|
155
|
-
shell: "ssh",
|
|
156
|
-
args: ["-t", host],
|
|
157
|
-
kind: "shell",
|
|
158
|
-
label: server.name ?? host,
|
|
159
|
-
});
|
|
160
|
-
sendJson(response, { ok: true, session }, 201);
|
|
161
|
-
}),
|
|
162
|
-
];
|
|
163
|
-
//# sourceMappingURL=ssh-server-routes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-server-routes.js","sourceRoot":"","sources":["../../../src/web/routes/ssh-server-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type Route } from "./context.js";
|
|
2
|
-
/**
|
|
3
|
-
* Terminal tab session management. The PTY data stream stays on the
|
|
4
|
-
* `/api/terminal/socket` WebSocket (handled in `server.ts`); these endpoints
|
|
5
|
-
* only let the client list tabs on reload, open a new tab, and close one.
|
|
6
|
-
*/
|
|
7
|
-
export declare const terminalRoutes: Route[];
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { buildInteractiveAgentInvocation, } from "../../core/agent-terminal.js";
|
|
3
|
-
import { listAgentTranscripts } from "../../core/agent-transcripts.js";
|
|
4
|
-
import { composeOneTimeSkillPrompt, OneTimeSkillError, resolveOneTimeSkill, } from "../../core/one-time-skills.js";
|
|
5
|
-
import { resolveServiceTerminal } from "../../core/terminal-spawn.js";
|
|
6
|
-
import { encodeAgentPromptPaste, MAX_AGENT_PROMPT_BYTES, } from "../../core/terminal-manager.js";
|
|
7
|
-
import { readJson, RequestBodyTooLargeError, sendJson, } from "../http-utils.js";
|
|
8
|
-
import { selectedGitCwd } from "../dashboard.js";
|
|
9
|
-
import { patternRoute, route } from "./context.js";
|
|
10
|
-
const agentSessionSchema = z.object({
|
|
11
|
-
provider: z.enum(["codex", "claude"]),
|
|
12
|
-
prompt: z.string().default(""),
|
|
13
|
-
label: z.string().optional(),
|
|
14
|
-
oneTimeSkill: z.object({
|
|
15
|
-
name: z.string().trim().min(1).max(200),
|
|
16
|
-
source: z.string().trim().min(3).max(400),
|
|
17
|
-
}).strict().optional(),
|
|
18
|
-
resumeId: z.string().regex(/^[0-9a-fA-F-]{8,64}$/).optional(),
|
|
19
|
-
// Shape only; `buildInteractiveAgentInvocation` owns the argv-safety check.
|
|
20
|
-
model: z.string().trim().min(1).max(64).optional(),
|
|
21
|
-
context: z.object({
|
|
22
|
-
refs: z.array(z.object({
|
|
23
|
-
kind: z.enum(["note", "project", "service", "file", "incident", "session"]),
|
|
24
|
-
id: z.string().trim().min(1).max(1_000),
|
|
25
|
-
}).strict()).max(200),
|
|
26
|
-
includePinned: z.boolean(),
|
|
27
|
-
}).strict().optional(),
|
|
28
|
-
});
|
|
29
|
-
const renameSessionSchema = z.object({
|
|
30
|
-
label: z.string().trim().min(1).max(60),
|
|
31
|
-
}).strict();
|
|
32
|
-
const insertPromptSchema = z.object({ prompt: z.string().min(1) }).strict();
|
|
33
|
-
const MAX_INSERT_PROMPT_BODY_BYTES = MAX_AGENT_PROMPT_BYTES * 6 + 1_024;
|
|
34
|
-
const TERMINAL_CONTROL_HEADER = "x-nomoreide-terminal-control";
|
|
35
|
-
const terminalSessionIdSchema = z.string().min(1).max(200)
|
|
36
|
-
.refine((id) => !hasControlCharacters(id) && !id.includes("/") && !id.includes("\\"));
|
|
37
|
-
const existingTerminalSessionIdSchema = z.string().min(1).max(1_000)
|
|
38
|
-
.refine((id) => !hasControlCharacters(id));
|
|
39
|
-
function hasControlCharacters(value) {
|
|
40
|
-
return [...value].some((character) => {
|
|
41
|
-
const code = character.charCodeAt(0);
|
|
42
|
-
return code <= 31 || code === 127;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
function terminalControlAllowed(request) {
|
|
46
|
-
return request.headers[TERMINAL_CONTROL_HEADER] === "1";
|
|
47
|
-
}
|
|
48
|
-
function decodeTerminalId(encoded, schema = terminalSessionIdSchema) {
|
|
49
|
-
try {
|
|
50
|
-
const id = decodeURIComponent(encoded);
|
|
51
|
-
return schema.safeParse(id).success ? id : undefined;
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
return undefined;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Terminal tab session management. The PTY data stream stays on the
|
|
59
|
-
* `/api/terminal/socket` WebSocket (handled in `server.ts`); these endpoints
|
|
60
|
-
* only let the client list tabs on reload, open a new tab, and close one.
|
|
61
|
-
*/
|
|
62
|
-
export const terminalRoutes = [
|
|
63
|
-
route("GET", "/api/terminal/capabilities", ({ response, terminalManager }) => {
|
|
64
|
-
sendJson(response, {
|
|
65
|
-
externalTerminal: terminalManager.externalTerminalAvailable?.() ?? false,
|
|
66
|
-
});
|
|
67
|
-
}),
|
|
68
|
-
route("GET", "/api/terminal/events", ({ response, terminalManager }) => {
|
|
69
|
-
response.writeHead(200, {
|
|
70
|
-
"cache-control": "no-cache, no-transform",
|
|
71
|
-
connection: "keep-alive",
|
|
72
|
-
"content-type": "text/event-stream; charset=utf-8",
|
|
73
|
-
"x-accel-buffering": "no",
|
|
74
|
-
});
|
|
75
|
-
response.write(": connected\n\n");
|
|
76
|
-
const writeSession = (session) => {
|
|
77
|
-
if (!response.writableEnded) {
|
|
78
|
-
response.write(`event: session\ndata: ${JSON.stringify(session)}\n\n`);
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
const subscription = terminalManager.onSessionChanged?.(writeSession);
|
|
82
|
-
for (const session of terminalManager.list())
|
|
83
|
-
writeSession(session);
|
|
84
|
-
const heartbeat = setInterval(() => {
|
|
85
|
-
if (!response.writableEnded)
|
|
86
|
-
response.write(": keepalive\n\n");
|
|
87
|
-
}, 15_000);
|
|
88
|
-
heartbeat.unref?.();
|
|
89
|
-
response.once("close", () => {
|
|
90
|
-
clearInterval(heartbeat);
|
|
91
|
-
subscription?.dispose();
|
|
92
|
-
});
|
|
93
|
-
}),
|
|
94
|
-
route("GET", "/api/terminal/transcripts", async ({ response, configStore, cwd, url }) => {
|
|
95
|
-
const config = await configStore.load();
|
|
96
|
-
const selected = config.gitRepositories.find((repository) => repository.name === config.selectedGitRepository) ?? config.gitRepositories[0];
|
|
97
|
-
const transcripts = await listAgentTranscripts({
|
|
98
|
-
...(url.searchParams.get("scope") === "all"
|
|
99
|
-
? {}
|
|
100
|
-
: { repoPath: selected?.activeWorktreePath ?? selected?.path ?? cwd }),
|
|
101
|
-
});
|
|
102
|
-
sendJson(response, { ok: true, transcripts });
|
|
103
|
-
}),
|
|
104
|
-
route("GET", "/api/terminal/sessions", ({ response, terminalManager }) => {
|
|
105
|
-
sendJson(response, { ok: true, sessions: terminalManager.list() });
|
|
106
|
-
}),
|
|
107
|
-
patternRoute(/^\/api\/terminal\/sessions\/([^/]+)\/(open-system-terminal|reclaim-dock|insert-prompt)$/, ["id", "action"], async ({ request, response, params, terminalManager }) => {
|
|
108
|
-
if (request.method !== "POST") {
|
|
109
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (!terminalControlAllowed(request)) {
|
|
113
|
-
sendJson(response, { ok: false, error: "Terminal control header is required." }, 403);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
const id = decodeTerminalId(params.id);
|
|
117
|
-
if (!id) {
|
|
118
|
-
sendJson(response, { ok: false, error: "Invalid terminal session id." }, 400);
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (params.action === "open-system-terminal") {
|
|
122
|
-
if (!terminalManager.openInSystemTerminal) {
|
|
123
|
-
sendJson(response, { ok: false, error: "External Terminal is unavailable." }, 501);
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
try {
|
|
127
|
-
const session = await terminalManager.openInSystemTerminal(id);
|
|
128
|
-
sendJson(response, { ok: true, session });
|
|
129
|
-
}
|
|
130
|
-
catch (error) {
|
|
131
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
132
|
-
const status = message.startsWith("Unknown terminal session:") ? 404 : 409;
|
|
133
|
-
sendJson(response, { ok: false, error: message }, status);
|
|
134
|
-
}
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
if (params.action === "insert-prompt") {
|
|
138
|
-
let body;
|
|
139
|
-
try {
|
|
140
|
-
body = await readJson(request, MAX_INSERT_PROMPT_BODY_BYTES);
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
if (error instanceof RequestBodyTooLargeError) {
|
|
144
|
-
sendJson(response, { ok: false, error: "Agent prompt is too large." }, 413);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
throw error;
|
|
148
|
-
}
|
|
149
|
-
const parsed = insertPromptSchema.safeParse(body);
|
|
150
|
-
if (!parsed.success) {
|
|
151
|
-
sendJson(response, { ok: false, error: "A non-empty agent prompt is required." }, 400);
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
if (Buffer.byteLength(parsed.data.prompt, "utf8") > MAX_AGENT_PROMPT_BYTES) {
|
|
155
|
-
sendJson(response, { ok: false, error: "Agent prompt is too large." }, 413);
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
try {
|
|
159
|
-
encodeAgentPromptPaste(parsed.data.prompt);
|
|
160
|
-
}
|
|
161
|
-
catch (error) {
|
|
162
|
-
sendJson(response, {
|
|
163
|
-
ok: false,
|
|
164
|
-
error: error instanceof Error ? error.message : String(error),
|
|
165
|
-
}, 400);
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
if (!terminalManager.insertAgentPrompt) {
|
|
169
|
-
sendJson(response, { ok: false, error: "Agent prompt insertion is unavailable." }, 501);
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
try {
|
|
173
|
-
const session = terminalManager.insertAgentPrompt(id, parsed.data.prompt);
|
|
174
|
-
sendJson(response, { ok: true, session });
|
|
175
|
-
}
|
|
176
|
-
catch (error) {
|
|
177
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
178
|
-
const status = message.startsWith("Unknown terminal session:") ? 404 : 409;
|
|
179
|
-
sendJson(response, { ok: false, error: message }, status);
|
|
180
|
-
}
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
const session = terminalManager.reclaimToDock?.(id);
|
|
184
|
-
if (!session) {
|
|
185
|
-
sendJson(response, { ok: false, error: `Unknown terminal session: ${id}` }, 404);
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
sendJson(response, { ok: true, session });
|
|
189
|
-
}),
|
|
190
|
-
route("POST", "/api/terminal/sessions", async ({ request, response, terminalManager, configStore, contextLibrary, cwd }) => {
|
|
191
|
-
const body = await readJson(request);
|
|
192
|
-
const workspaceCwd = await selectedGitCwd(configStore, cwd);
|
|
193
|
-
if (Object.hasOwn(body, "agent")) {
|
|
194
|
-
const parsed = agentSessionSchema.safeParse(body.agent);
|
|
195
|
-
if (!parsed.success) {
|
|
196
|
-
const invalidField = parsed.error.issues[0]?.path[0];
|
|
197
|
-
const error = invalidField === "provider"
|
|
198
|
-
? "Agent provider must be codex or claude."
|
|
199
|
-
: invalidField === "resumeId"
|
|
200
|
-
? "Agent resume id is invalid."
|
|
201
|
-
: "Invalid agent session request.";
|
|
202
|
-
sendJson(response, { ok: false, error }, 400);
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
const { provider, resumeId } = parsed.data;
|
|
206
|
-
if (resumeId && parsed.data.oneTimeSkill) {
|
|
207
|
-
sendJson(response, { ok: false, error: "A temporary skill cannot be attached to a resumed session." }, 400);
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
let prompt = parsed.data.prompt;
|
|
211
|
-
if (parsed.data.context) {
|
|
212
|
-
const assembled = await contextLibrary.assemblePrompt(prompt, parsed.data.context, workspaceCwd);
|
|
213
|
-
prompt = assembled.prompt;
|
|
214
|
-
}
|
|
215
|
-
if (parsed.data.oneTimeSkill) {
|
|
216
|
-
try {
|
|
217
|
-
const skillPrompt = await resolveOneTimeSkill(parsed.data.oneTimeSkill);
|
|
218
|
-
prompt = composeOneTimeSkillPrompt(skillPrompt, prompt);
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
const message = error instanceof OneTimeSkillError
|
|
222
|
-
? error.message
|
|
223
|
-
: "The temporary skill could not be loaded.";
|
|
224
|
-
sendJson(response, { ok: false, error: message }, 422);
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
// An explicit per-session model wins; otherwise the provider's saved
|
|
229
|
-
// pin applies, and with neither the CLI picks for itself.
|
|
230
|
-
const model = parsed.data.model ??
|
|
231
|
-
(await configStore.load()).chatModels?.[provider];
|
|
232
|
-
let invocation;
|
|
233
|
-
try {
|
|
234
|
-
invocation = buildInteractiveAgentInvocation(provider, prompt, {
|
|
235
|
-
resumeId,
|
|
236
|
-
model,
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
catch (error) {
|
|
240
|
-
sendJson(response, { ok: false, error: error instanceof Error ? error.message : "Invalid agent invocation." }, 400);
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
const trimmedLabel = parsed.data.label?.trim();
|
|
244
|
-
const label = (trimmedLabel || `${provider === "codex" ? "Codex" : "Claude"} task`)
|
|
245
|
-
.slice(0, 60);
|
|
246
|
-
const session = terminalManager.create({}, {
|
|
247
|
-
...invocation,
|
|
248
|
-
cwd: workspaceCwd,
|
|
249
|
-
kind: "agent",
|
|
250
|
-
provider,
|
|
251
|
-
label,
|
|
252
|
-
});
|
|
253
|
-
sendJson(response, { ok: true, session }, 201);
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
const serviceName = typeof body.serviceName === "string" ? body.serviceName.trim() : "";
|
|
257
|
-
// No service named → a plain workspace shell (the `+` tab behavior).
|
|
258
|
-
if (!serviceName) {
|
|
259
|
-
const session = terminalManager.create({}, { cwd: workspaceCwd, kind: "shell" });
|
|
260
|
-
sendJson(response, { ok: true, session }, 201);
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
// The client only names a registered service; the server derives the
|
|
264
|
-
// command (shell / ssh / docker exec) so this endpoint can't be coerced
|
|
265
|
-
// into running an arbitrary program.
|
|
266
|
-
const config = await configStore.load();
|
|
267
|
-
const service = config.services.find((item) => item.name === serviceName);
|
|
268
|
-
if (!service) {
|
|
269
|
-
sendJson(response, { ok: false, error: `Unknown service: ${serviceName}` }, 404);
|
|
270
|
-
return;
|
|
271
|
-
}
|
|
272
|
-
const resolved = resolveServiceTerminal(service);
|
|
273
|
-
if (!resolved.ok) {
|
|
274
|
-
sendJson(response, { ok: false, error: resolved.error }, 400);
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
// Stable id per service so reopening the tab reattaches to the same
|
|
278
|
-
// shell instead of spawning a duplicate.
|
|
279
|
-
const session = terminalManager.createWithId(`svc:${service.name}`, {
|
|
280
|
-
...resolved.options,
|
|
281
|
-
kind: "service",
|
|
282
|
-
});
|
|
283
|
-
sendJson(response, { ok: true, session }, 201);
|
|
284
|
-
}),
|
|
285
|
-
patternRoute(/^\/api\/terminal\/sessions\/([^/]+)$/, ["id"], async ({ request, response, params, terminalManager }) => {
|
|
286
|
-
const id = decodeTerminalId(params.id, existingTerminalSessionIdSchema);
|
|
287
|
-
if (!id) {
|
|
288
|
-
sendJson(response, { ok: false, error: "Invalid terminal session id." }, 400);
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
if (request.method === "PATCH") {
|
|
292
|
-
const parsed = renameSessionSchema.safeParse(await readJson(request));
|
|
293
|
-
if (!parsed.success) {
|
|
294
|
-
sendJson(response, { ok: false, error: "Terminal session label must be 1–60 characters." }, 400);
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
const session = terminalManager.rename(id, parsed.data.label);
|
|
298
|
-
if (!session) {
|
|
299
|
-
sendJson(response, { ok: false, error: `Unknown terminal session: ${id}` }, 404);
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
sendJson(response, { ok: true, session });
|
|
303
|
-
return;
|
|
304
|
-
}
|
|
305
|
-
if (request.method !== "DELETE") {
|
|
306
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
const closed = terminalManager.close(id);
|
|
310
|
-
sendJson(response, { ok: closed, sessions: terminalManager.list() });
|
|
311
|
-
}),
|
|
312
|
-
];
|
|
313
|
-
//# sourceMappingURL=terminal-routes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-routes.js","sourceRoot":"","sources":["../../../src/web/routes/terminal-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type Route } from "./context.js";
|
|
2
|
-
/**
|
|
3
|
-
* User-owned git/GitHub workflows. `GET` returns the built-in templates merged
|
|
4
|
-
* with the user's saved/forked workflows; `POST`/`DELETE` persist edits through
|
|
5
|
-
* ConfigStore. The runner lives client-side and executes agent steps as fresh
|
|
6
|
-
* headless tasks, so there's no "run" endpoint here.
|
|
7
|
-
*/
|
|
8
|
-
export declare const workflowRoutes: Route[];
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { listWorkflows, workflowSchema } from "../../core/workflows.js";
|
|
2
|
-
import { readJson, sendJson } from "../http-utils.js";
|
|
3
|
-
import { errorMessage, patternRoute, route } from "./context.js";
|
|
4
|
-
/**
|
|
5
|
-
* User-owned git/GitHub workflows. `GET` returns the built-in templates merged
|
|
6
|
-
* with the user's saved/forked workflows; `POST`/`DELETE` persist edits through
|
|
7
|
-
* ConfigStore. The runner lives client-side and executes agent steps as fresh
|
|
8
|
-
* headless tasks, so there's no "run" endpoint here.
|
|
9
|
-
*/
|
|
10
|
-
export const workflowRoutes = [
|
|
11
|
-
route("GET", "/api/workflows", async ({ response, configStore }) => {
|
|
12
|
-
try {
|
|
13
|
-
const config = await configStore.load();
|
|
14
|
-
sendJson(response, { ok: true, workflows: listWorkflows(config.workflows) });
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 400);
|
|
18
|
-
}
|
|
19
|
-
}),
|
|
20
|
-
route("POST", "/api/workflows", async ({ request, response, configStore }) => {
|
|
21
|
-
try {
|
|
22
|
-
const body = await readJson(request);
|
|
23
|
-
const workflow = workflowSchema.parse({ ...body, builtin: false });
|
|
24
|
-
const config = await configStore.saveWorkflow(workflow);
|
|
25
|
-
sendJson(response, { ok: true, workflows: listWorkflows(config.workflows) });
|
|
26
|
-
}
|
|
27
|
-
catch (error) {
|
|
28
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 400);
|
|
29
|
-
}
|
|
30
|
-
}),
|
|
31
|
-
patternRoute(/^\/api\/workflows\/([^/]+)$/, ["id"], async ({ request, response, configStore, params }) => {
|
|
32
|
-
if (request.method !== "DELETE") {
|
|
33
|
-
sendJson(response, { ok: false, error: "Method not allowed" }, 405);
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
const config = await configStore.removeWorkflow(decodeURIComponent(params.id));
|
|
38
|
-
sendJson(response, { ok: true, workflows: listWorkflows(config.workflows) });
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
sendJson(response, { ok: false, error: errorMessage(error) }, 400);
|
|
42
|
-
}
|
|
43
|
-
}),
|
|
44
|
-
];
|
|
45
|
-
//# sourceMappingURL=workflow-routes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-routes.js","sourceRoot":"","sources":["../../../src/web/routes/workflow-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAc,MAAM,cAAc,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACxC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;QAC3E,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxD,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC;IAEF,YAAY,CACV,6BAA6B,EAC7B,CAAC,IAAI,CAAC,EACN,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;QACnD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,GAAG,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/E,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CACF;CACF,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type Route } from "./context.js";
|
|
2
|
-
/**
|
|
3
|
-
* Event-driven workflow triggers (IDEAS #16). CRUD persists bindings through
|
|
4
|
-
* ConfigStore; the manager owns the live event subscriptions and the
|
|
5
|
-
* pending-run queue. The workflow runner stays client-side, so the dashboard
|
|
6
|
-
* drains the queue (`/pending` + SSE) and drives the existing runner — there's
|
|
7
|
-
* no server-side "run" here.
|
|
8
|
-
*/
|
|
9
|
-
export declare const workflowTriggerRoutes: Route[];
|