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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-sessions.js","sourceRoot":"","sources":["../../src/core/agent-sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { AgentName } from "./agent-env/index.js";
|
|
2
|
-
export interface AgentSettingsOptions {
|
|
3
|
-
/** Injectable for tmpdir tests, like the agent-env readers. */
|
|
4
|
-
homeDir?: string;
|
|
5
|
-
}
|
|
6
|
-
export interface AgentSettings {
|
|
7
|
-
agent: AgentName;
|
|
8
|
-
path: string;
|
|
9
|
-
exists: boolean;
|
|
10
|
-
format: "json" | "toml";
|
|
11
|
-
/** Raw file content ("" when the file doesn't exist yet). */
|
|
12
|
-
content: string;
|
|
13
|
-
/** Currently configured model, when the file declares one. */
|
|
14
|
-
model?: string;
|
|
15
|
-
/** Whether the curated model switch understands this agent's file. */
|
|
16
|
-
modelEditable: boolean;
|
|
17
|
-
}
|
|
18
|
-
export declare function readAgentSettings(agent: AgentName, options?: AgentSettingsOptions): Promise<AgentSettings>;
|
|
19
|
-
/** Validate, back up, and atomically write the full settings file. */
|
|
20
|
-
export declare function writeAgentSettings(agent: AgentName, content: string, options?: AgentSettingsOptions): Promise<AgentSettings & {
|
|
21
|
-
backup: string | null;
|
|
22
|
-
}>;
|
|
23
|
-
/**
|
|
24
|
-
* Curated model switch. JSON files get a parse → set → re-stringify;
|
|
25
|
-
* Codex's TOML gets a conservative line edit (replace the root `model = ...`
|
|
26
|
-
* line, or insert one at the top, before any `[section]`) so comments and
|
|
27
|
-
* formatting elsewhere in the file survive.
|
|
28
|
-
*/
|
|
29
|
-
export declare function setAgentModel(agent: AgentName, model: string, options?: AgentSettingsOptions): Promise<AgentSettings & {
|
|
30
|
-
backup: string | null;
|
|
31
|
-
}>;
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent settings files (ROR-65-ish): guarded read/write access to each coding
|
|
3
|
-
* agent's *settings* file — distinct from the MCP configs the agent-env
|
|
4
|
-
* readers own. Every write validates the content parses (JSON or TOML),
|
|
5
|
-
* backs up the existing file to a timestamped `.bak.*` sibling, and writes
|
|
6
|
-
* atomically, reusing the agent-env-writers helpers. Human-only surface:
|
|
7
|
-
* deliberately not exposed as an MCP tool (same boundary as DbWrite).
|
|
8
|
-
*/
|
|
9
|
-
import { mkdir, readFile } from "node:fs/promises";
|
|
10
|
-
import { homedir } from "node:os";
|
|
11
|
-
import path from "node:path";
|
|
12
|
-
import { parse as parseToml } from "smol-toml";
|
|
13
|
-
import { atomicWrite, backupFile } from "./agent-env-writers.js";
|
|
14
|
-
function settingsPath(agent, homeDir) {
|
|
15
|
-
switch (agent) {
|
|
16
|
-
case "claude":
|
|
17
|
-
return path.join(homeDir, ".claude", "settings.json");
|
|
18
|
-
case "codex":
|
|
19
|
-
return path.join(homeDir, ".codex", "config.toml");
|
|
20
|
-
case "antigravity":
|
|
21
|
-
return path.join(homeDir, ".gemini", "settings.json");
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function settingsFormat(agent) {
|
|
25
|
-
return agent === "codex" ? "toml" : "json";
|
|
26
|
-
}
|
|
27
|
-
/** Parse-or-throw with a user-facing message; returns the parsed document. */
|
|
28
|
-
function assertParses(content, format) {
|
|
29
|
-
try {
|
|
30
|
-
const parsed = format === "json" ? JSON.parse(content) : parseToml(content);
|
|
31
|
-
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
32
|
-
throw new Error("top-level value must be an object");
|
|
33
|
-
}
|
|
34
|
-
return parsed;
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
const detail = error instanceof Error ? error.message : String(error);
|
|
38
|
-
throw new Error(`Not valid ${format.toUpperCase()}: ${detail}`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
export async function readAgentSettings(agent, options = {}) {
|
|
42
|
-
const home = options.homeDir ?? homedir();
|
|
43
|
-
const filePath = settingsPath(agent, home);
|
|
44
|
-
const format = settingsFormat(agent);
|
|
45
|
-
let content = "";
|
|
46
|
-
let exists = true;
|
|
47
|
-
try {
|
|
48
|
-
content = await readFile(filePath, "utf8");
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
exists = false;
|
|
52
|
-
}
|
|
53
|
-
let model;
|
|
54
|
-
if (exists && content.trim()) {
|
|
55
|
-
try {
|
|
56
|
-
const parsed = assertParses(content, format);
|
|
57
|
-
if (typeof parsed.model === "string")
|
|
58
|
-
model = parsed.model;
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
// Unparseable file: still return the raw content so the user can fix it.
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return {
|
|
65
|
-
agent,
|
|
66
|
-
path: filePath,
|
|
67
|
-
exists,
|
|
68
|
-
format,
|
|
69
|
-
content,
|
|
70
|
-
model,
|
|
71
|
-
// Antigravity's settings.json has no documented model key yet.
|
|
72
|
-
modelEditable: agent !== "antigravity",
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
/** Validate, back up, and atomically write the full settings file. */
|
|
76
|
-
export async function writeAgentSettings(agent, content, options = {}) {
|
|
77
|
-
const home = options.homeDir ?? homedir();
|
|
78
|
-
const filePath = settingsPath(agent, home);
|
|
79
|
-
assertParses(content, settingsFormat(agent));
|
|
80
|
-
await mkdir(path.dirname(filePath), { recursive: true });
|
|
81
|
-
const backup = await backupFile(filePath);
|
|
82
|
-
await atomicWrite(filePath, content.endsWith("\n") ? content : `${content}\n`);
|
|
83
|
-
return { ...(await readAgentSettings(agent, options)), backup };
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Curated model switch. JSON files get a parse → set → re-stringify;
|
|
87
|
-
* Codex's TOML gets a conservative line edit (replace the root `model = ...`
|
|
88
|
-
* line, or insert one at the top, before any `[section]`) so comments and
|
|
89
|
-
* formatting elsewhere in the file survive.
|
|
90
|
-
*/
|
|
91
|
-
export async function setAgentModel(agent, model, options = {}) {
|
|
92
|
-
const trimmed = model.trim();
|
|
93
|
-
const current = await readAgentSettings(agent, options);
|
|
94
|
-
if (!current.modelEditable) {
|
|
95
|
-
throw new Error(`Model switching isn't supported for "${agent}".`);
|
|
96
|
-
}
|
|
97
|
-
let next;
|
|
98
|
-
if (current.format === "json") {
|
|
99
|
-
const parsed = current.content.trim()
|
|
100
|
-
? assertParses(current.content, "json")
|
|
101
|
-
: {};
|
|
102
|
-
if (trimmed)
|
|
103
|
-
parsed.model = trimmed;
|
|
104
|
-
else
|
|
105
|
-
delete parsed.model;
|
|
106
|
-
next = JSON.stringify(parsed, null, 2) + "\n";
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
const line = `model = ${JSON.stringify(trimmed)}`;
|
|
110
|
-
// Only edit the root table — `model =` under a `[section]` is a different key.
|
|
111
|
-
const sectionStart = current.content.search(/^\s*\[/m);
|
|
112
|
-
const root = sectionStart === -1 ? current.content : current.content.slice(0, sectionStart);
|
|
113
|
-
const rest = sectionStart === -1 ? "" : current.content.slice(sectionStart);
|
|
114
|
-
if (/^\s*model\s*=.*$/m.test(root)) {
|
|
115
|
-
const nextRoot = trimmed
|
|
116
|
-
? root.replace(/^\s*model\s*=.*$/m, line)
|
|
117
|
-
: root.replace(/^\s*model\s*=.*\n?/m, "");
|
|
118
|
-
next = nextRoot + rest;
|
|
119
|
-
}
|
|
120
|
-
else if (trimmed) {
|
|
121
|
-
next = `${line}\n${current.content}`;
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
next = current.content;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return writeAgentSettings(agent, next, options);
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=agent-settings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-settings.js","sourceRoot":"","sources":["../../src/core/agent-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export type InteractiveAgentProvider = "claude" | "codex";
|
|
2
|
-
export interface InteractiveAgentInvocation {
|
|
3
|
-
shell: string;
|
|
4
|
-
args: string[];
|
|
5
|
-
}
|
|
6
|
-
export interface InteractiveAgentOptions {
|
|
7
|
-
/** Prior session to reopen, from `listAgentTranscripts`. */
|
|
8
|
-
resumeId?: string;
|
|
9
|
-
/** Model to pin this session to. Omitted = whatever the CLI defaults to. */
|
|
10
|
-
model?: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Both CLIs accept a positional initial prompt and queue it themselves until
|
|
14
|
-
* the interactive TUI is ready. Passing it as an argument is what makes the
|
|
15
|
-
* first prompt reliable — injecting keystrokes after spawn raced the TUI's
|
|
16
|
-
* startup (trust dialogs, first paint) and the paste was silently dropped.
|
|
17
|
-
*
|
|
18
|
-
* A blank prompt starts the provider's interactive TUI without queueing a
|
|
19
|
-
* first turn. Resuming reopens a recorded session and replays its history, so
|
|
20
|
-
* an empty prompt there just returns to the conversation where it left off.
|
|
21
|
-
*/
|
|
22
|
-
export declare function buildInteractiveAgentInvocation(provider: string, prompt: string, { resumeId, model }?: InteractiveAgentOptions): InteractiveAgentInvocation;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
const CLAUDE_BIN = process.env.NOMOREIDE_CLAUDE_BIN || "claude";
|
|
2
|
-
const CODEX_BIN = process.env.NOMOREIDE_CODEX_BIN || "codex";
|
|
3
|
-
/**
|
|
4
|
-
* Session ids are spawned as argv entries rather than through a shell, so the
|
|
5
|
-
* risk is not injection but a malformed id starting with `-` and being read as
|
|
6
|
-
* a flag by the CLI. Both providers issue UUIDs, so anything else is refused.
|
|
7
|
-
*/
|
|
8
|
-
const SESSION_ID = /^[0-9a-fA-F-]{8,64}$/;
|
|
9
|
-
/**
|
|
10
|
-
* Same argv-not-shell reasoning as {@link SESSION_ID}: a model name is passed
|
|
11
|
-
* as its own argv entry, so the hazard is one that starts with `-` and is read
|
|
12
|
-
* as a flag. Aliases (`opus`), dated ids (`claude-haiku-4-5-20251001`) and
|
|
13
|
-
* namespaced ids (`openai/gpt-5`) all have to pass, so the leading character is
|
|
14
|
-
* constrained rather than the whole shape.
|
|
15
|
-
*/
|
|
16
|
-
const MODEL_NAME = /^[A-Za-z0-9][A-Za-z0-9._:/-]{0,63}$/;
|
|
17
|
-
/**
|
|
18
|
-
* Both CLIs accept a positional initial prompt and queue it themselves until
|
|
19
|
-
* the interactive TUI is ready. Passing it as an argument is what makes the
|
|
20
|
-
* first prompt reliable — injecting keystrokes after spawn raced the TUI's
|
|
21
|
-
* startup (trust dialogs, first paint) and the paste was silently dropped.
|
|
22
|
-
*
|
|
23
|
-
* A blank prompt starts the provider's interactive TUI without queueing a
|
|
24
|
-
* first turn. Resuming reopens a recorded session and replays its history, so
|
|
25
|
-
* an empty prompt there just returns to the conversation where it left off.
|
|
26
|
-
*/
|
|
27
|
-
export function buildInteractiveAgentInvocation(provider, prompt, { resumeId, model } = {}) {
|
|
28
|
-
if (resumeId !== undefined && !SESSION_ID.test(resumeId)) {
|
|
29
|
-
throw new Error(`Invalid session id: ${String(resumeId)}`);
|
|
30
|
-
}
|
|
31
|
-
if (model !== undefined && !MODEL_NAME.test(model)) {
|
|
32
|
-
throw new Error(`Invalid model name: ${String(model)}`);
|
|
33
|
-
}
|
|
34
|
-
// A resumed session carries its own history; an empty prompt must not be
|
|
35
|
-
// forwarded as an empty positional argument.
|
|
36
|
-
const trailing = prompt.trim() ? [prompt] : [];
|
|
37
|
-
switch (provider) {
|
|
38
|
-
case "claude":
|
|
39
|
-
return {
|
|
40
|
-
shell: CLAUDE_BIN,
|
|
41
|
-
args: [
|
|
42
|
-
...(model ? ["--model", model] : []),
|
|
43
|
-
...(resumeId ? ["--resume", resumeId] : []),
|
|
44
|
-
...trailing,
|
|
45
|
-
],
|
|
46
|
-
};
|
|
47
|
-
case "codex":
|
|
48
|
-
// `-m` is a global option, so it has to precede the `resume` subcommand.
|
|
49
|
-
return {
|
|
50
|
-
shell: CODEX_BIN,
|
|
51
|
-
args: [
|
|
52
|
-
"--no-alt-screen",
|
|
53
|
-
...(model ? ["-m", model] : []),
|
|
54
|
-
...(resumeId ? ["resume", resumeId] : []),
|
|
55
|
-
...trailing,
|
|
56
|
-
],
|
|
57
|
-
};
|
|
58
|
-
default:
|
|
59
|
-
throw new Error(`Unsupported agent provider: ${String(provider)}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=agent-terminal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-terminal.js","sourceRoot":"","sources":["../../src/core/agent-terminal.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,QAAQ,CAAC;AAChE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC;AAgB7D;;;;GAIG;AACH,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,qCAAqC,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAC7C,QAAgB,EAChB,MAAc,EACd,EAAE,QAAQ,EAAE,KAAK,KAA8B,EAAE;IAEjD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,yEAAyE;IACzE,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO;gBACL,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE;oBACJ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,GAAG,QAAQ;iBACZ;aACF,CAAC;QACJ,KAAK,OAAO;YACV,yEAAyE;YACzE,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE;oBACJ,iBAAiB;oBACjB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,GAAG,QAAQ;iBACZ;aACF,CAAC;QACJ;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export type TranscriptProvider = "claude" | "codex";
|
|
2
|
-
export interface AgentTranscript {
|
|
3
|
-
/** Session id accepted by `claude --resume <id>` / `codex resume <id>`. */
|
|
4
|
-
id: string;
|
|
5
|
-
provider: TranscriptProvider;
|
|
6
|
-
/** Working directory the session ran in, read from the transcript body. */
|
|
7
|
-
cwd: string;
|
|
8
|
-
/** First real user prompt, used as the picker label. */
|
|
9
|
-
title: string;
|
|
10
|
-
startedAt: string;
|
|
11
|
-
/** File mtime — when the session was last written to. */
|
|
12
|
-
updatedAt: string;
|
|
13
|
-
}
|
|
14
|
-
export interface ListAgentTranscriptsOptions {
|
|
15
|
-
/** Omit to list recent sessions across every project. */
|
|
16
|
-
repoPath?: string;
|
|
17
|
-
limit?: number;
|
|
18
|
-
/** Overridable for tests; defaults to the real home directory. */
|
|
19
|
-
homeDir?: string;
|
|
20
|
-
/** Overridable for tests and non-default Codex installations. */
|
|
21
|
-
codexHome?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Prior Claude and Codex sessions for one repository, or every project when
|
|
25
|
-
* `repoPath` is omitted, most recently written first. Metadata only — the
|
|
26
|
-
* transcript bodies are never surfaced because resuming hands the conversation
|
|
27
|
-
* back to the CLI that rendered it.
|
|
28
|
-
*/
|
|
29
|
-
export declare function listAgentTranscripts(options: ListAgentTranscriptsOptions): Promise<AgentTranscript[]>;
|
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
import { createReadStream } from "node:fs";
|
|
2
|
-
import { readdir, stat } from "node:fs/promises";
|
|
3
|
-
import { homedir } from "node:os";
|
|
4
|
-
import { join } from "node:path";
|
|
5
|
-
import { createInterface } from "node:readline";
|
|
6
|
-
/**
|
|
7
|
-
* Both CLIs append newline-delimited JSON, so a session's identity, cwd and
|
|
8
|
-
* opening prompt all land in the first handful of lines. Transcripts run to
|
|
9
|
-
* megabytes, so every read stops as soon as those are in hand rather than
|
|
10
|
-
* parsing the whole conversation.
|
|
11
|
-
*/
|
|
12
|
-
const MAX_HEAD_LINES = 500;
|
|
13
|
-
/** Upper bound on Codex rollout files opened per listing (they carry no path index). */
|
|
14
|
-
const MAX_CODEX_SCAN = 400;
|
|
15
|
-
/** Enough history per provider for the dock picker without letting one crowd out the other. */
|
|
16
|
-
const DEFAULT_TRANSCRIPT_LIMIT = 100;
|
|
17
|
-
const MAX_TITLE = 200;
|
|
18
|
-
/**
|
|
19
|
-
* Claude encodes the cwd into a directory name lossily, and the encoding has
|
|
20
|
-
* changed between releases — `~/.claude/projects` currently holds both
|
|
21
|
-
* `...-Personal Project-brainctl` and `...-Personal-Project-brainctl`, and both
|
|
22
|
-
* `...-extension-3.0` and `...-extension-3-0`. Collapsing every non-alphanumeric
|
|
23
|
-
* run to a single `-` makes those variants compare equal, so one repo's history
|
|
24
|
-
* is found across all the directories past versions wrote it to. The comparison
|
|
25
|
-
* is deliberately lossy in the other direction too (sibling paths can collide),
|
|
26
|
-
* which is why every candidate file is confirmed against the `cwd` recorded in
|
|
27
|
-
* its own body before being returned.
|
|
28
|
-
*/
|
|
29
|
-
function pathKey(value) {
|
|
30
|
-
return value.replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-|-$/g, "").toLowerCase();
|
|
31
|
-
}
|
|
32
|
-
/** Reads leading lines as JSON, stopping when `onEntry` reports it has enough. */
|
|
33
|
-
async function readHead(filePath, onEntry) {
|
|
34
|
-
const stream = createReadStream(filePath, { encoding: "utf8" });
|
|
35
|
-
const lines = createInterface({ input: stream, crlfDelay: Infinity });
|
|
36
|
-
let seen = 0;
|
|
37
|
-
try {
|
|
38
|
-
for await (const line of lines) {
|
|
39
|
-
if (++seen > MAX_HEAD_LINES)
|
|
40
|
-
break;
|
|
41
|
-
if (!line.trim())
|
|
42
|
-
continue;
|
|
43
|
-
let entry;
|
|
44
|
-
try {
|
|
45
|
-
entry = JSON.parse(line);
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
continue; // A truncated tail line must not discard the whole session.
|
|
49
|
-
}
|
|
50
|
-
if (entry && typeof entry === "object" && onEntry(entry))
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
finally {
|
|
55
|
-
lines.close();
|
|
56
|
-
stream.destroy();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Injected context (environment blocks, slash-command expansions, system
|
|
61
|
-
* reminders) is recorded as a user turn by both CLIs, so anything opening with
|
|
62
|
-
* a tag is skipped in favour of the first prompt a human actually typed.
|
|
63
|
-
*/
|
|
64
|
-
function isTypedPrompt(text) {
|
|
65
|
-
const trimmed = text.trim();
|
|
66
|
-
return trimmed.length > 0
|
|
67
|
-
&& !trimmed.startsWith("<")
|
|
68
|
-
&& !trimmed.startsWith("# AGENTS.md instructions for ");
|
|
69
|
-
}
|
|
70
|
-
function toTitle(text) {
|
|
71
|
-
const collapsed = text.trim().replace(/\s+/g, " ");
|
|
72
|
-
return collapsed.length > MAX_TITLE ? `${collapsed.slice(0, MAX_TITLE - 1).trimEnd()}…` : collapsed;
|
|
73
|
-
}
|
|
74
|
-
/** Claude message content is either a plain string or an array of typed blocks. */
|
|
75
|
-
function claudeText(content) {
|
|
76
|
-
if (typeof content === "string")
|
|
77
|
-
return content;
|
|
78
|
-
if (!Array.isArray(content))
|
|
79
|
-
return "";
|
|
80
|
-
return content
|
|
81
|
-
.map((block) => (block && typeof block === "object" && typeof block.text === "string" ? block.text : ""))
|
|
82
|
-
.join("");
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Codex writes each subagent thread to its own rollout file whose
|
|
86
|
-
* `session_meta` repeats the *parent's* `session_id`. Listing those would show
|
|
87
|
-
* one conversation once per subagent it spawned, all sharing a single id — and
|
|
88
|
-
* resuming any of them just reopens the parent. Claude's reader skips its
|
|
89
|
-
* sidechain turns for the same reason.
|
|
90
|
-
*/
|
|
91
|
-
function isCodexSubagentThread(meta) {
|
|
92
|
-
return meta.thread_source === "subagent"
|
|
93
|
-
|| typeof meta.forked_from_id === "string"
|
|
94
|
-
|| typeof meta.parent_thread_id === "string";
|
|
95
|
-
}
|
|
96
|
-
function codexText(content) {
|
|
97
|
-
if (!Array.isArray(content))
|
|
98
|
-
return "";
|
|
99
|
-
return content
|
|
100
|
-
.map((block) => (block && typeof block === "object" && typeof block.text === "string" ? block.text : ""))
|
|
101
|
-
.join("");
|
|
102
|
-
}
|
|
103
|
-
async function readClaudeTranscript(filePath, fallbackId) {
|
|
104
|
-
let id;
|
|
105
|
-
let cwd;
|
|
106
|
-
let title;
|
|
107
|
-
let startedAt;
|
|
108
|
-
await readHead(filePath, (entry) => {
|
|
109
|
-
if (!id && typeof entry.sessionId === "string")
|
|
110
|
-
id = entry.sessionId;
|
|
111
|
-
if (!cwd && typeof entry.cwd === "string")
|
|
112
|
-
cwd = entry.cwd;
|
|
113
|
-
if (!startedAt && typeof entry.timestamp === "string")
|
|
114
|
-
startedAt = entry.timestamp;
|
|
115
|
-
if (!title && entry.type === "user" && entry.isSidechain !== true) {
|
|
116
|
-
const message = entry.message;
|
|
117
|
-
const text = claudeText(message && typeof message === "object" ? message.content : undefined);
|
|
118
|
-
if (isTypedPrompt(text))
|
|
119
|
-
title = toTitle(text);
|
|
120
|
-
}
|
|
121
|
-
return Boolean(cwd && title);
|
|
122
|
-
});
|
|
123
|
-
if (!cwd)
|
|
124
|
-
return null;
|
|
125
|
-
const { mtime } = await stat(filePath);
|
|
126
|
-
return {
|
|
127
|
-
id: id ?? fallbackId,
|
|
128
|
-
provider: "claude",
|
|
129
|
-
cwd,
|
|
130
|
-
title: title ?? "",
|
|
131
|
-
startedAt: startedAt ?? mtime.toISOString(),
|
|
132
|
-
updatedAt: mtime.toISOString(),
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Codex records no per-project index, so a listing opens every recent rollout.
|
|
137
|
-
* `expectedCwd` lets a session that belongs to another project stop at its
|
|
138
|
-
* `session_meta` line instead of being read on in search of a prompt.
|
|
139
|
-
*/
|
|
140
|
-
async function readCodexTranscript(filePath, expectedCwd) {
|
|
141
|
-
let id;
|
|
142
|
-
let cwd;
|
|
143
|
-
let title;
|
|
144
|
-
let startedAt;
|
|
145
|
-
let subagent = false;
|
|
146
|
-
await readHead(filePath, (entry) => {
|
|
147
|
-
const payload = entry.payload;
|
|
148
|
-
if (!payload || typeof payload !== "object")
|
|
149
|
-
return false;
|
|
150
|
-
const body = payload;
|
|
151
|
-
if (entry.type === "session_meta") {
|
|
152
|
-
if (isCodexSubagentThread(body)) {
|
|
153
|
-
subagent = true;
|
|
154
|
-
return true;
|
|
155
|
-
}
|
|
156
|
-
if (typeof body.session_id === "string")
|
|
157
|
-
id = body.session_id;
|
|
158
|
-
else if (typeof body.id === "string")
|
|
159
|
-
id = body.id;
|
|
160
|
-
if (typeof body.cwd === "string")
|
|
161
|
-
cwd = body.cwd;
|
|
162
|
-
if (typeof body.timestamp === "string")
|
|
163
|
-
startedAt = body.timestamp;
|
|
164
|
-
return Boolean(expectedCwd && cwd !== expectedCwd);
|
|
165
|
-
}
|
|
166
|
-
if (!title && body.type === "message" && body.role === "user") {
|
|
167
|
-
const text = codexText(body.content);
|
|
168
|
-
if (isTypedPrompt(text))
|
|
169
|
-
title = toTitle(text);
|
|
170
|
-
}
|
|
171
|
-
return Boolean(title);
|
|
172
|
-
});
|
|
173
|
-
if (subagent || !id || !cwd || (expectedCwd && cwd !== expectedCwd))
|
|
174
|
-
return null;
|
|
175
|
-
const { mtime } = await stat(filePath);
|
|
176
|
-
return {
|
|
177
|
-
id,
|
|
178
|
-
provider: "codex",
|
|
179
|
-
cwd,
|
|
180
|
-
title: title ?? "",
|
|
181
|
-
startedAt: startedAt ?? mtime.toISOString(),
|
|
182
|
-
updatedAt: mtime.toISOString(),
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* The session id is what `--resume` takes, so two rows carrying the same one
|
|
187
|
-
* are the same conversation however many files it was written to. Only the most
|
|
188
|
-
* recently written copy is kept — a duplicate id is not just a repeated row,
|
|
189
|
-
* it collides in any list keyed by it.
|
|
190
|
-
*/
|
|
191
|
-
function byNewestSession(transcripts) {
|
|
192
|
-
const newestById = new Map();
|
|
193
|
-
for (const transcript of transcripts) {
|
|
194
|
-
const key = `${transcript.provider}:${transcript.id}`;
|
|
195
|
-
const existing = newestById.get(key);
|
|
196
|
-
if (!existing || existing.updatedAt < transcript.updatedAt) {
|
|
197
|
-
newestById.set(key, transcript);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
return [...newestById.values()];
|
|
201
|
-
}
|
|
202
|
-
async function listDir(path) {
|
|
203
|
-
try {
|
|
204
|
-
return await readdir(path);
|
|
205
|
-
}
|
|
206
|
-
catch {
|
|
207
|
-
return []; // A provider that was never installed simply contributes nothing.
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
async function claudeTranscripts(homeDir, repoPath) {
|
|
211
|
-
const root = join(homeDir, ".claude", "projects");
|
|
212
|
-
const key = repoPath ? pathKey(repoPath) : null;
|
|
213
|
-
const dirs = (await listDir(root)).filter((name) => !key || pathKey(name) === key);
|
|
214
|
-
const results = [];
|
|
215
|
-
for (const dir of dirs) {
|
|
216
|
-
const files = (await listDir(join(root, dir))).filter((name) => name.endsWith(".jsonl"));
|
|
217
|
-
for (const file of files) {
|
|
218
|
-
const transcript = await readClaudeTranscript(join(root, dir, file), file.replace(/\.jsonl$/, ""));
|
|
219
|
-
if (transcript && (!repoPath || transcript.cwd === repoPath)) {
|
|
220
|
-
results.push(transcript);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
return results;
|
|
225
|
-
}
|
|
226
|
-
/** Codex buckets rollouts by `sessions/YYYY/MM/DD`, so newest dates are walked first. */
|
|
227
|
-
async function codexRolloutFiles(codexHome) {
|
|
228
|
-
const root = join(codexHome, "sessions");
|
|
229
|
-
const files = [];
|
|
230
|
-
const descending = (values) => values.sort((a, b) => b.localeCompare(a));
|
|
231
|
-
for (const year of descending(await listDir(root))) {
|
|
232
|
-
for (const month of descending(await listDir(join(root, year)))) {
|
|
233
|
-
for (const day of descending(await listDir(join(root, year, month)))) {
|
|
234
|
-
const dir = join(root, year, month, day);
|
|
235
|
-
for (const name of descending(await listDir(dir))) {
|
|
236
|
-
if (name.startsWith("rollout-") && name.endsWith(".jsonl"))
|
|
237
|
-
files.push(join(dir, name));
|
|
238
|
-
}
|
|
239
|
-
if (files.length >= MAX_CODEX_SCAN)
|
|
240
|
-
return files;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
return files;
|
|
245
|
-
}
|
|
246
|
-
async function codexTranscripts(codexHome, repoPath) {
|
|
247
|
-
const results = [];
|
|
248
|
-
for (const filePath of await codexRolloutFiles(codexHome)) {
|
|
249
|
-
const transcript = await readCodexTranscript(filePath, repoPath);
|
|
250
|
-
if (transcript)
|
|
251
|
-
results.push(transcript);
|
|
252
|
-
}
|
|
253
|
-
return results;
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Prior Claude and Codex sessions for one repository, or every project when
|
|
257
|
-
* `repoPath` is omitted, most recently written first. Metadata only — the
|
|
258
|
-
* transcript bodies are never surfaced because resuming hands the conversation
|
|
259
|
-
* back to the CLI that rendered it.
|
|
260
|
-
*/
|
|
261
|
-
export async function listAgentTranscripts(options) {
|
|
262
|
-
const { repoPath, limit = DEFAULT_TRANSCRIPT_LIMIT } = options;
|
|
263
|
-
const homeDir = options.homeDir ?? homedir();
|
|
264
|
-
const codexHome = options.codexHome
|
|
265
|
-
?? (options.homeDir ? join(homeDir, ".codex") : process.env.CODEX_HOME)
|
|
266
|
-
?? join(homeDir, ".codex");
|
|
267
|
-
const [claude, codex] = await Promise.all([
|
|
268
|
-
claudeTranscripts(homeDir, repoPath),
|
|
269
|
-
codexTranscripts(codexHome, repoPath),
|
|
270
|
-
]);
|
|
271
|
-
const newest = (transcripts) => byNewestSession(transcripts.filter((transcript) => transcript.title))
|
|
272
|
-
.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
|
|
273
|
-
if (options.limit !== undefined) {
|
|
274
|
-
return newest([...claude, ...codex]).slice(0, limit);
|
|
275
|
-
}
|
|
276
|
-
return newest([
|
|
277
|
-
...newest(claude).slice(0, DEFAULT_TRANSCRIPT_LIMIT),
|
|
278
|
-
...newest(codex).slice(0, DEFAULT_TRANSCRIPT_LIMIT),
|
|
279
|
-
]);
|
|
280
|
-
}
|
|
281
|
-
//# sourceMappingURL=agent-transcripts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-transcripts.js","sourceRoot":"","sources":["../../src/core/agent-transcripts.ts"],"names":[],"mappings":"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"}
|