@phnx-labs/agents-cli 1.22.39 → 1.22.40
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/CHANGELOG.md +294 -0
- package/README.md +111 -70
- package/dist/bin/agents +0 -0
- package/dist/bootstrap.js +45 -26
- package/dist/browser.js +2 -2
- package/dist/cli/command-registry.d.ts +135 -0
- package/dist/cli/command-registry.js +260 -0
- package/dist/commands/accounts.d.ts +20 -0
- package/dist/commands/accounts.js +186 -25
- package/dist/commands/apply.d.ts +3 -3
- package/dist/commands/apply.js +20 -63
- package/dist/commands/browser.js +206 -94
- package/dist/commands/budget.d.ts +7 -6
- package/dist/commands/budget.js +8 -7
- package/dist/commands/cloud.js +17 -20
- package/dist/commands/commands.js +1 -1
- package/dist/commands/computer-actions.d.ts +1 -35
- package/dist/commands/computer-actions.js +13 -181
- package/dist/commands/computer.d.ts +28 -3
- package/dist/commands/computer.js +93 -65
- package/dist/commands/config.js +16 -3
- package/dist/commands/cost.d.ts +2 -1
- package/dist/commands/cost.js +7 -6
- package/dist/commands/daemon.js +151 -4
- package/dist/commands/detach.js +1 -1
- package/dist/commands/doctor.js +19 -11
- package/dist/commands/events.js +1 -1
- package/dist/commands/exec.d.ts +2 -50
- package/dist/commands/exec.js +160 -215
- package/dist/commands/factory.js +1 -1
- package/dist/commands/feed.d.ts +2 -2
- package/dist/commands/feed.js +9 -12
- package/dist/commands/fleet-capture.js +25 -27
- package/dist/commands/focus.d.ts +2 -3
- package/dist/commands/focus.js +34 -9
- package/dist/commands/go.js +15 -5
- package/dist/commands/harness.d.ts +3 -3
- package/dist/commands/harness.js +53 -5
- package/dist/commands/hooks.js +1 -1
- package/dist/commands/import.js +2 -2
- package/dist/commands/insights.d.ts +5 -5
- package/dist/commands/insights.js +15 -9
- package/dist/commands/inspect.d.ts +2 -3
- package/dist/commands/inspect.js +4 -16
- package/dist/commands/logs.d.ts +2 -2
- package/dist/commands/logs.js +9 -9
- package/dist/commands/mcp.js +2 -2
- package/dist/commands/memory.js +1 -1
- package/dist/commands/message.d.ts +1 -1
- package/dist/commands/message.js +7 -7
- package/dist/commands/mine.d.ts +11 -8
- package/dist/commands/mine.js +11 -10
- package/dist/commands/models.js +1 -1
- package/dist/commands/modes.js +1 -1
- package/dist/commands/monitors.js +23 -6
- package/dist/commands/output.d.ts +7 -6
- package/dist/commands/output.js +11 -10
- package/dist/commands/packages.js +4 -4
- package/dist/commands/perf.js +1 -1
- package/dist/commands/permissions.js +49 -32
- package/dist/commands/plugins.d.ts +1 -1
- package/dist/commands/plugins.js +3 -3
- package/dist/commands/profiles.d.ts +6 -9
- package/dist/commands/profiles.js +8 -321
- package/dist/commands/projects.d.ts +9 -0
- package/dist/commands/projects.js +140 -8
- package/dist/commands/prune.js +5 -13
- package/dist/commands/refresh-rules.js +1 -1
- package/dist/commands/repo.d.ts +5 -7
- package/dist/commands/repo.js +34 -18
- package/dist/commands/resource-view.js +4 -0
- package/dist/commands/resume.d.ts +11 -7
- package/dist/commands/resume.js +82 -98
- package/dist/commands/route.d.ts +12 -0
- package/dist/commands/route.js +261 -0
- package/dist/commands/routines.d.ts +2 -3
- package/dist/commands/routines.js +120 -145
- package/dist/commands/rules.js +1 -1
- package/dist/commands/run-account-picker.d.ts +1 -1
- package/dist/commands/run-account-picker.js +2 -2
- package/dist/commands/run-broadcast.d.ts +21 -0
- package/dist/commands/run-broadcast.js +89 -0
- package/dist/commands/run-cloud.js +1 -1
- package/dist/commands/secrets-vault.d.ts +10 -0
- package/dist/commands/{login.js → secrets-vault.js} +34 -14
- package/dist/commands/secrets.d.ts +4 -4
- package/dist/commands/secrets.js +72 -63
- package/dist/commands/sessions-backfill.js +1 -1
- package/dist/commands/sessions-browser.d.ts +1 -1
- package/dist/commands/sessions-browser.js +9 -5
- package/dist/commands/sessions-export.js +2 -2
- package/dist/commands/sessions-inject.js +4 -5
- package/dist/commands/sessions-migrate.js +16 -27
- package/dist/commands/sessions-picker.d.ts +13 -0
- package/dist/commands/sessions-picker.js +182 -8
- package/dist/commands/sessions-resume.d.ts +7 -3
- package/dist/commands/sessions-resume.js +81 -33
- package/dist/commands/sessions-stats.js +2 -2
- package/dist/commands/sessions.d.ts +75 -68
- package/dist/commands/sessions.js +142 -180
- package/dist/commands/setup-computer.js +1 -1
- package/dist/commands/setup-fleet.js +3 -0
- package/dist/commands/setup-mine.d.ts +7 -3
- package/dist/commands/setup-mine.js +13 -8
- package/dist/commands/setup-secrets.js +2 -2
- package/dist/commands/setup-watchdog.js +2 -2
- package/dist/commands/setup.js +7 -2
- package/dist/commands/share.d.ts +65 -0
- package/dist/commands/share.js +253 -20
- package/dist/commands/skills.js +3 -3
- package/dist/commands/snapshot.d.ts +2 -2
- package/dist/commands/snapshot.js +9 -9
- package/dist/commands/ssh.d.ts +1 -1
- package/dist/commands/ssh.js +186 -64
- package/dist/commands/subagents.js +1 -1
- package/dist/commands/sync.js +24 -9
- package/dist/commands/teams.d.ts +2 -2
- package/dist/commands/teams.js +9 -18
- package/dist/commands/tmux.js +5 -1
- package/dist/commands/trash.js +1 -1
- package/dist/commands/usage.d.ts +1 -1
- package/dist/commands/usage.js +2 -2
- package/dist/commands/utils.d.ts +4 -14
- package/dist/commands/utils.js +6 -27
- package/dist/commands/versions.js +2 -2
- package/dist/commands/view.d.ts +9 -77
- package/dist/commands/view.js +23 -8
- package/dist/commands/watchdog.js +1 -1
- package/dist/commands/webhook.js +11 -25
- package/dist/commands/workflows.js +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/account-capabilities.d.ts +39 -0
- package/dist/lib/account-capabilities.js +59 -0
- package/dist/lib/account-catalog.js +1 -1
- package/dist/lib/account-registry.d.ts +66 -0
- package/dist/lib/account-registry.js +151 -5
- package/dist/lib/{rotate.d.ts → accounting/rotate.d.ts} +4 -4
- package/dist/lib/{rotate.js → accounting/rotate.js} +8 -8
- package/dist/lib/{usage.d.ts → accounting/usage.d.ts} +4 -4
- package/dist/lib/{usage.js → accounting/usage.js} +11 -11
- package/dist/lib/agent-spec/provider.js +1 -1
- package/dist/lib/agents.d.ts +72 -4
- package/dist/lib/agents.js +231 -199
- package/dist/lib/answer-router.d.ts +2 -2
- package/dist/lib/ask-classifier.d.ts +1 -1
- package/dist/lib/ask-classifier.js +1 -1
- package/dist/lib/audit/log.js +1 -1
- package/dist/lib/auth-health.d.ts +1 -1
- package/dist/lib/auth-health.js +2 -2
- package/dist/lib/brand.js +1 -1
- package/dist/lib/browser/caller-identity.d.ts +28 -0
- package/dist/lib/browser/caller-identity.js +156 -0
- package/dist/lib/browser/cdp.js +1 -1
- package/dist/lib/browser/drivers/ssh.d.ts +1 -1
- package/dist/lib/browser/drivers/ssh.js +2 -2
- package/dist/lib/browser/hygiene.d.ts +10 -2
- package/dist/lib/browser/hygiene.js +7 -4
- package/dist/lib/browser/ipc.d.ts +22 -2
- package/dist/lib/browser/ipc.js +185 -21
- package/dist/lib/browser/profiles.d.ts +67 -3
- package/dist/lib/browser/profiles.js +129 -7
- package/dist/lib/browser/remote-control.d.ts +2 -2
- package/dist/lib/browser/remote-control.js +3 -3
- package/dist/lib/browser/runtime-state.d.ts +79 -0
- package/dist/lib/browser/runtime-state.js +119 -1
- package/dist/lib/browser/service.d.ts +113 -1
- package/dist/lib/browser/service.js +454 -40
- package/dist/lib/browser/sessions-list.d.ts +2 -1
- package/dist/lib/browser/sessions-list.js +4 -13
- package/dist/lib/browser/types.d.ts +18 -0
- package/dist/lib/budget/config.js +1 -1
- package/dist/lib/budget/ledger.js +1 -1
- package/dist/lib/byok-usage.js +1 -1
- package/dist/lib/capabilities.js +3 -15
- package/dist/lib/catchup.d.ts +1 -1
- package/dist/lib/catchup.js +1 -1
- package/dist/lib/cloud/dispatch.js +1 -1
- package/dist/lib/cloud/host.d.ts +3 -3
- package/dist/lib/cloud/host.js +5 -5
- package/dist/lib/cloud/rush.d.ts +9 -21
- package/dist/lib/cloud/rush.js +33 -120
- package/dist/lib/cloud/types.d.ts +2 -2
- package/dist/lib/commands.js +3 -13
- package/dist/lib/computer/actions.d.ts +36 -0
- package/dist/lib/computer/actions.js +162 -0
- package/dist/lib/computer/dispatch.d.ts +2 -2
- package/dist/lib/computer/dispatch.js +2 -2
- package/dist/lib/computer/sessions-list.d.ts +3 -3
- package/dist/lib/computer/sessions-list.js +2 -2
- package/dist/lib/config-keys.d.ts +2 -1
- package/dist/lib/config-keys.js +8 -4
- package/dist/lib/config-machine-keys.d.ts +4 -2
- package/dist/lib/config-machine-keys.js +5 -2
- package/dist/lib/crabbox/lease.js +9 -1
- package/dist/lib/crabbox/runtimes.d.ts +32 -7
- package/dist/lib/crabbox/runtimes.js +72 -30
- package/dist/lib/{daemon.d.ts → daemon/daemon.d.ts} +59 -1
- package/dist/lib/{daemon.js → daemon/daemon.js} +237 -49
- package/dist/lib/daemon-services.d.ts +1 -1
- package/dist/lib/daemon-services.js +5 -0
- package/dist/lib/daemon-ticks.d.ts +25 -0
- package/dist/lib/daemon-ticks.js +31 -1
- package/dist/lib/daemon-webhooks.d.ts +102 -0
- package/dist/lib/daemon-webhooks.js +210 -0
- package/dist/lib/device-config.d.ts +85 -75
- package/dist/lib/device-config.js +279 -141
- package/dist/lib/devices/config-migration.d.ts +29 -34
- package/dist/lib/devices/config-migration.js +209 -130
- package/dist/lib/devices/connect.d.ts +2 -2
- package/dist/lib/devices/connect.js +2 -2
- package/dist/lib/devices/discovery-policy.d.ts +30 -0
- package/dist/lib/devices/discovery-policy.js +101 -0
- package/dist/lib/devices/fleet-inventory.js +8 -3
- package/dist/lib/devices/harness-inventory.d.ts +1 -1
- package/dist/lib/devices/harness-inventory.js +12 -3
- package/dist/lib/devices/known-hosts.js +1 -1
- package/dist/lib/devices/pool.d.ts +10 -5
- package/dist/lib/devices/pool.js +5 -7
- package/dist/lib/devices/registry.d.ts +1 -1
- package/dist/lib/devices/registry.js +1 -1
- package/dist/lib/devices/resolve-profile.d.ts +2 -2
- package/dist/lib/devices/resolve-profile.js +2 -2
- package/dist/lib/devices/resolve-target.d.ts +1 -1
- package/dist/lib/devices/resolve-target.js +4 -4
- package/dist/lib/devices/self-host.d.ts +1 -1
- package/dist/lib/devices/self-host.js +3 -3
- package/dist/lib/devices/ssh-config.d.ts +1 -1
- package/dist/lib/devices/stats-cache.js +1 -1
- package/dist/lib/devices/sync.d.ts +3 -1
- package/dist/lib/devices/sync.js +3 -3
- package/dist/lib/doctor-diff.js +4 -4
- package/dist/lib/drift-sync.js +2 -2
- package/dist/lib/drift.js +2 -2
- package/dist/lib/event-families.d.ts +1 -1
- package/dist/lib/event-stream.d.ts +1 -1
- package/dist/lib/event-stream.js +2 -2
- package/dist/lib/events-ingest.js +2 -2
- package/dist/lib/exec.d.ts +4 -4
- package/dist/lib/exec.js +11 -11
- package/dist/lib/factory/snapshot.d.ts +1 -1
- package/dist/lib/factory/snapshot.js +1 -1
- package/dist/lib/{activity.d.ts → feed/activity.d.ts} +1 -1
- package/dist/lib/{activity.js → feed/activity.js} +7 -7
- package/dist/lib/{events.d.ts → feed/events.d.ts} +2 -2
- package/dist/lib/{events.js → feed/events.js} +5 -5
- package/dist/lib/{feed.js → feed/feed.js} +4 -4
- package/dist/lib/feed-outcome.d.ts +1 -1
- package/dist/lib/feed-policy.d.ts +1 -1
- package/dist/lib/feed-policy.js +1 -1
- package/dist/lib/feed-post.d.ts +1 -1
- package/dist/lib/feed-post.js +1 -1
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -6
- package/dist/lib/fleet/apply.js +18 -45
- package/dist/lib/fleet/auth-sync.d.ts +16 -35
- package/dist/lib/fleet/auth-sync.js +16 -75
- package/dist/lib/fleet/capture.js +8 -6
- package/dist/lib/fleet/manifest.js +23 -11
- package/dist/lib/fleet/types.d.ts +19 -7
- package/dist/lib/fleet-cache.d.ts +1 -1
- package/dist/lib/fleet-cache.js +1 -1
- package/dist/lib/format.d.ts +19 -0
- package/dist/lib/format.js +44 -1
- package/dist/lib/friction-heuristics.d.ts +1 -1
- package/dist/lib/git.d.ts +24 -1
- package/dist/lib/git.js +82 -38
- package/dist/lib/heal.js +3 -3
- package/dist/lib/hooks.d.ts +18 -0
- package/dist/lib/hooks.js +113 -1
- package/dist/lib/hosts/credentials.d.ts +30 -10
- package/dist/lib/hosts/credentials.js +38 -26
- package/dist/lib/hosts/dispatch.d.ts +3 -3
- package/dist/lib/hosts/dispatch.js +3 -3
- package/dist/lib/hosts/option.d.ts +3 -3
- package/dist/lib/hosts/option.js +7 -8
- package/dist/lib/hosts/passthrough.d.ts +17 -17
- package/dist/lib/hosts/passthrough.js +67 -50
- package/dist/lib/hosts/providers/devices.d.ts +1 -1
- package/dist/lib/hosts/providers/devices.js +1 -1
- package/dist/lib/hosts/reconcile.d.ts +1 -1
- package/dist/lib/hosts/reconcile.js +1 -1
- package/dist/lib/hosts/reconnect.d.ts +1 -1
- package/dist/lib/hosts/reconnect.js +2 -2
- package/dist/lib/hosts/registry.d.ts +5 -5
- package/dist/lib/hosts/registry.js +5 -5
- package/dist/lib/hosts/remote-cmd.d.ts +10 -10
- package/dist/lib/hosts/remote-cmd.js +25 -18
- package/dist/lib/hosts/remote-os.d.ts +4 -4
- package/dist/lib/hosts/remote-os.js +4 -4
- package/dist/lib/hosts/remote-session-id.d.ts +2 -2
- package/dist/lib/hosts/remote-session-id.js +2 -2
- package/dist/lib/hosts/routing-flag.d.ts +3 -3
- package/dist/lib/hosts/routing-flag.js +4 -5
- package/dist/lib/hosts/run-target.d.ts +4 -4
- package/dist/lib/hosts/run-target.js +4 -4
- package/dist/lib/hosts/session-index.d.ts +2 -2
- package/dist/lib/hosts/session-index.js +1 -1
- package/dist/lib/hosts/session-marker.d.ts +1 -1
- package/dist/lib/hosts/session-marker.js +1 -1
- package/dist/lib/hosts/types.d.ts +2 -2
- package/dist/lib/hosts/types.js +2 -2
- package/dist/lib/import.js +1 -1
- package/dist/lib/{migrate.d.ts → installations/migrate.d.ts} +13 -1
- package/dist/lib/{migrate.js → installations/migrate.js} +160 -40
- package/dist/lib/installations/resolve.js +1 -1
- package/dist/lib/installations/strategies.js +1 -1
- package/dist/lib/installations/update.js +2 -2
- package/dist/lib/{versions.d.ts → installations/versions.d.ts} +12 -3
- package/dist/lib/{versions.js → installations/versions.js} +51 -31
- package/dist/lib/isolation-boundary-report.js +1 -1
- package/dist/lib/linear-projects.d.ts +28 -0
- package/dist/lib/linear-projects.js +30 -0
- package/dist/lib/loop.js +1 -1
- package/dist/lib/mailbox-gc.js +1 -1
- package/dist/lib/mailbox.js +1 -1
- package/dist/lib/mcp-registry.d.ts +62 -0
- package/dist/lib/mcp-registry.js +177 -0
- package/dist/lib/mcp.d.ts +5 -0
- package/dist/lib/mcp.js +124 -307
- package/dist/lib/menubar/MenubarHelper.app/Contents/CodeResources +0 -0
- package/dist/lib/menubar/MenubarHelper.app/Contents/MacOS/MenubarHelper +0 -0
- package/dist/lib/menubar/install-menubar.d.ts +7 -0
- package/dist/lib/menubar/install-menubar.js +24 -6
- package/dist/lib/menubar/snapshot.d.ts +7 -0
- package/dist/lib/menubar/snapshot.js +8 -6
- package/dist/lib/models.js +1 -1
- package/dist/lib/monitors/config.d.ts +12 -0
- package/dist/lib/monitors/config.js +3 -0
- package/dist/lib/monitors/dispatch.js +26 -5
- package/dist/lib/monitors/engine.js +10 -0
- package/dist/lib/monitors/sources/webhook.d.ts +1 -1
- package/dist/lib/monitors/state.d.ts +42 -0
- package/dist/lib/monitors/state.js +30 -0
- package/dist/lib/notify.d.ts +1 -1
- package/dist/lib/observe-aliases.d.ts +2 -2
- package/dist/lib/observe-aliases.js +2 -11
- package/dist/lib/output/git-output.js +2 -2
- package/dist/lib/overdue.d.ts +1 -1
- package/dist/lib/overdue.js +1 -1
- package/dist/lib/permissions-registry.d.ts +65 -0
- package/dist/lib/permissions-registry.js +599 -0
- package/dist/lib/permissions.d.ts +24 -13
- package/dist/lib/permissions.js +52 -271
- package/dist/lib/picker.d.ts +16 -0
- package/dist/lib/picker.js +33 -3
- package/dist/lib/placement.d.ts +1 -1
- package/dist/lib/placement.js +4 -4
- package/dist/lib/platform/paths.d.ts +8 -0
- package/dist/lib/platform/paths.js +11 -0
- package/dist/lib/platform/posixpath.js +3 -3
- package/dist/lib/{plugin-marketplace.d.ts → plugins/plugin-marketplace.d.ts} +1 -1
- package/dist/lib/{plugin-marketplace.js → plugins/plugin-marketplace.js} +2 -2
- package/dist/lib/{plugins.d.ts → plugins/plugins.d.ts} +1 -1
- package/dist/lib/{plugins.js → plugins/plugins.js} +7 -7
- package/dist/lib/{skills.d.ts → plugins/skills.d.ts} +1 -1
- package/dist/lib/{skills.js → plugins/skills.js} +7 -7
- package/dist/lib/pricing/cost.d.ts +1 -1
- package/dist/lib/pricing/cost.js +1 -1
- package/dist/lib/profiles-presets.d.ts +1 -1
- package/dist/lib/profiles-presets.js +1 -1
- package/dist/lib/profiles.js +2 -2
- package/dist/lib/project-import.js +4 -1
- package/dist/lib/project-launch.d.ts +1 -1
- package/dist/lib/project-launch.js +3 -3
- package/dist/lib/project-pull.d.ts +128 -0
- package/dist/lib/project-pull.js +384 -0
- package/dist/lib/project-root.d.ts +2 -2
- package/dist/lib/project-root.js +2 -2
- package/dist/lib/project-status.js +1 -1
- package/dist/lib/projects.d.ts +23 -0
- package/dist/lib/projects.js +29 -6
- package/dist/lib/refresh.d.ts +12 -1
- package/dist/lib/refresh.js +16 -9
- package/dist/lib/registry.d.ts +9 -2
- package/dist/lib/registry.js +11 -4
- package/dist/lib/resources.d.ts +2 -2
- package/dist/lib/resources.js +2 -2
- package/dist/lib/routers.d.ts +81 -0
- package/dist/lib/routers.js +153 -0
- package/dist/lib/routine-context.d.ts +1 -0
- package/dist/lib/routine-context.js +7 -2
- package/dist/lib/routine-notify-owner.d.ts +1 -1
- package/dist/lib/routine-notify.d.ts +1 -1
- package/dist/lib/routine-notify.js +1 -1
- package/dist/lib/routine-process-cleanup.d.ts +1 -1
- package/dist/lib/routine-readiness.d.ts +1 -1
- package/dist/lib/routine-readiness.js +11 -4
- package/dist/lib/routines-placement.d.ts +12 -2
- package/dist/lib/routines-placement.js +20 -3
- package/dist/lib/routines-project.d.ts +1 -1
- package/dist/lib/routines-project.js +1 -1
- package/dist/lib/rules/compile.d.ts +1 -0
- package/dist/lib/rules/compile.js +10 -2
- package/dist/lib/rules/rules.js +1 -1
- package/dist/lib/run-notify.js +1 -1
- package/dist/lib/runner.d.ts +80 -2
- package/dist/lib/runner.js +241 -62
- package/dist/lib/sandbox.d.ts +1 -1
- package/dist/lib/scheduler.d.ts +1 -1
- package/dist/lib/scheduler.js +1 -1
- package/dist/lib/{routines.d.ts → scheduling/routines.d.ts} +54 -9
- package/dist/lib/{routines.js → scheduling/routines.js} +173 -14
- package/dist/lib/secrets/Agents CLI.app/Contents/CodeResources +0 -0
- package/dist/lib/secrets/Agents CLI.app/Contents/MacOS/Agents CLI +0 -0
- package/dist/lib/secrets/agent.js +2 -2
- package/dist/lib/secrets/audit.js +1 -1
- package/dist/lib/secrets/bundles.d.ts +3 -3
- package/dist/lib/secrets/bundles.js +7 -7
- package/dist/lib/secrets/index.js +1 -1
- package/dist/lib/secrets/list-filter.d.ts +1 -1
- package/dist/lib/secrets/list-filter.js +2 -2
- package/dist/lib/secrets/push.d.ts +1 -1
- package/dist/lib/secrets/push.js +10 -12
- package/dist/lib/secrets/remote.d.ts +12 -10
- package/dist/lib/secrets/remote.js +21 -14
- package/dist/lib/secrets/vault.js +2 -2
- package/dist/lib/self-heal/checks/shadowing.js +1 -1
- package/dist/lib/self-heal/checks/shims.js +1 -1
- package/dist/lib/self-update.d.ts +39 -4
- package/dist/lib/self-update.js +78 -25
- package/dist/lib/serve/control.d.ts +1 -1
- package/dist/lib/serve/control.js +4 -4
- package/dist/lib/serve/data.d.ts +1 -1
- package/dist/lib/serve/data.js +1 -1
- package/dist/lib/serve/stream.js +1 -1
- package/dist/lib/service-manifest.d.ts +29 -0
- package/dist/lib/service-manifest.js +80 -0
- package/dist/lib/session/active.d.ts +59 -7
- package/dist/lib/session/active.js +158 -17
- package/dist/lib/session/bash-command.js +1 -1
- package/dist/lib/session/claude-accounts.d.ts +1 -1
- package/dist/lib/session/claude-accounts.js +1 -1
- package/dist/lib/session/db.d.ts +10 -2
- package/dist/lib/session/db.js +25 -6
- package/dist/lib/session/discover.d.ts +77 -0
- package/dist/lib/session/discover.js +130 -25
- package/dist/lib/session/fork.js +1 -1
- package/dist/lib/session/inject.d.ts +1 -1
- package/dist/lib/session/insights.d.ts +1 -1
- package/dist/lib/session/insights.js +1 -1
- package/dist/lib/session/live-metadata.d.ts +15 -0
- package/dist/lib/session/live-metadata.js +76 -0
- package/dist/lib/session/migrate-targets.d.ts +1 -1
- package/dist/lib/session/recovery.d.ts +1 -1
- package/dist/lib/session/recovery.js +2 -2
- package/dist/lib/session/remote-active.d.ts +10 -1
- package/dist/lib/session/remote-active.js +8 -3
- package/dist/lib/session/remote-bundle.d.ts +1 -1
- package/dist/lib/session/remote-bundle.js +2 -2
- package/dist/lib/session/remote-list.d.ts +15 -4
- package/dist/lib/session/remote-list.js +40 -3
- package/dist/lib/session/remote.d.ts +5 -5
- package/dist/lib/session/remote.js +13 -17
- package/dist/lib/session/resume-command.d.ts +3 -2
- package/dist/lib/session/resume-command.js +4 -3
- package/dist/lib/session/resume-owner.d.ts +3 -3
- package/dist/lib/session/resume-owner.js +3 -3
- package/dist/lib/session/session-cache.d.ts +12 -0
- package/dist/lib/session/session-cache.js +2 -0
- package/dist/lib/session/shell-programs.js +1 -1
- package/dist/lib/session/state.js +5 -5
- package/dist/lib/session/team-filter.d.ts +1 -1
- package/dist/lib/session/team-filter.js +1 -1
- package/dist/lib/session/types.d.ts +3 -3
- package/dist/lib/session/width.d.ts +2 -2
- package/dist/lib/session/width.js +2 -2
- package/dist/lib/share/delete.d.ts +21 -0
- package/dist/lib/share/delete.js +42 -0
- package/dist/lib/share/publish.d.ts +82 -0
- package/dist/lib/share/publish.js +170 -18
- package/dist/lib/share/worker-template.js +172 -9
- package/dist/lib/shims.js +35 -7
- package/dist/lib/smart-launch.d.ts +4 -4
- package/dist/lib/smart-launch.js +6 -4
- package/dist/lib/snapshot.d.ts +4 -4
- package/dist/lib/snapshot.js +2 -2
- package/dist/lib/ssh-exec.d.ts +1 -1
- package/dist/lib/ssh-exec.js +2 -2
- package/dist/lib/ssh-tunnel.d.ts +10 -10
- package/dist/lib/ssh-tunnel.js +12 -12
- package/dist/lib/staleness/checkers/hooks.d.ts +1 -1
- package/dist/lib/staleness/checkers/hooks.js +1 -1
- package/dist/lib/staleness/detectors/permissions.js +0 -23
- package/dist/lib/staleness/detectors/plugins.js +1 -1
- package/dist/lib/staleness/fingerprint.js +1 -1
- package/dist/lib/staleness/layers.d.ts +1 -1
- package/dist/lib/staleness/layers.js +1 -1
- package/dist/lib/staleness/writers/mcp.js +3 -1
- package/dist/lib/staleness/writers/plugins.js +1 -1
- package/dist/lib/staleness/writers/types.d.ts +8 -0
- package/dist/lib/startup/command-registry.d.ts +5 -147
- package/dist/lib/startup/command-registry.js +38 -303
- package/dist/lib/startup/dev-build.d.ts +0 -21
- package/dist/lib/startup/dev-build.js +29 -8
- package/dist/lib/state.d.ts +19 -1
- package/dist/lib/state.js +120 -51
- package/dist/lib/subagents.js +1 -1
- package/dist/lib/sync-status.js +1 -1
- package/dist/lib/sync-umbrella.d.ts +6 -1
- package/dist/lib/sync-umbrella.js +9 -4
- package/dist/lib/teams/agents.js +2 -2
- package/dist/lib/teams/registry.js +1 -1
- package/dist/lib/terminal/backends/vscodium-agent.js +1 -1
- package/dist/lib/terminal/engine.js +1 -1
- package/dist/lib/terminal/index.d.ts +4 -0
- package/dist/lib/terminal/index.js +3 -0
- package/dist/lib/terminal/inject.d.ts +2 -2
- package/dist/lib/terminal/inject.js +2 -2
- package/dist/lib/terminal/transport.js +1 -1
- package/dist/lib/tmux/index.d.ts +1 -1
- package/dist/lib/tmux/index.js +1 -1
- package/dist/lib/tmux/session.d.ts +21 -5
- package/dist/lib/tmux/session.js +76 -22
- package/dist/lib/triggers/handlers.d.ts +1 -1
- package/dist/lib/triggers/handlers.js +2 -2
- package/dist/lib/triggers/webhook.d.ts +36 -2
- package/dist/lib/triggers/webhook.js +97 -42
- package/dist/lib/types.d.ts +18 -6
- package/dist/lib/usage-fleet.d.ts +1 -1
- package/dist/lib/usage-fleet.js +1 -1
- package/dist/lib/usage-refresh.d.ts +1 -1
- package/dist/lib/usage-refresh.js +3 -3
- package/dist/lib/version-duplicates.js +2 -2
- package/dist/lib/view-types.d.ts +56 -0
- package/dist/lib/view-types.js +1 -0
- package/dist/lib/watchdog/rotate.d.ts +2 -2
- package/dist/lib/watchdog/rotate.js +3 -3
- package/dist/lib/watchdog/runner.d.ts +2 -3
- package/dist/lib/watchdog/runner.js +3 -4
- package/dist/lib/workflows.js +1 -1
- package/package.json +2 -1
- package/scripts/postinstall.js +2 -2
- package/dist/commands/bench.d.ts +0 -2
- package/dist/commands/bench.js +0 -101
- package/dist/commands/cp.d.ts +0 -84
- package/dist/commands/cp.js +0 -231
- package/dist/commands/login.d.ts +0 -2
- package/dist/lib/resources/commands.d.ts +0 -46
- package/dist/lib/resources/commands.js +0 -211
- package/dist/lib/resources/hooks.d.ts +0 -16
- package/dist/lib/resources/hooks.js +0 -153
- package/dist/lib/resources/mcp.d.ts +0 -34
- package/dist/lib/resources/mcp.js +0 -250
- package/dist/lib/resources/memory.d.ts +0 -15
- package/dist/lib/resources/memory.js +0 -46
- package/dist/lib/resources/permissions.d.ts +0 -13
- package/dist/lib/resources/permissions.js +0 -202
- package/dist/lib/resources/rules.d.ts +0 -46
- package/dist/lib/resources/rules.js +0 -179
- package/dist/lib/resources/skills.d.ts +0 -37
- package/dist/lib/resources/skills.js +0 -247
- package/dist/lib/resources/subagents.d.ts +0 -46
- package/dist/lib/resources/subagents.js +0 -202
- /package/dist/lib/{feed.d.ts → feed/feed.d.ts} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ProfileScope } from './profiles.js';
|
|
1
2
|
/**
|
|
2
3
|
* Per-profile runtime files we persist under
|
|
3
4
|
* `~/.agents/.cache/browser/<composite>/`:
|
|
@@ -114,3 +115,81 @@ export declare function reapOrphanedProcesses(): {
|
|
|
114
115
|
reaped: number;
|
|
115
116
|
details: string[];
|
|
116
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* True when ANY cache dir belonging to this profile still has a live browser or
|
|
120
|
+
* SSH tunnel, or an open task. The composite naming (`<name>@<endpoint>`) means
|
|
121
|
+
* one profile can own several runtime dirs, so checking only
|
|
122
|
+
* `getProfileRuntimeDir(name)` would miss a running composite — and prune must
|
|
123
|
+
* never remove a profile that is in use.
|
|
124
|
+
*
|
|
125
|
+
* A recorded `pid: 0` means "attached to a browser someone else launched", so it
|
|
126
|
+
* is not our process to protect; an open task on that dir still counts as in use.
|
|
127
|
+
*/
|
|
128
|
+
export declare function isProfileInUse(profileName: string): boolean;
|
|
129
|
+
/** Why a profile is considered dead. */
|
|
130
|
+
export type PruneReason = 'binary-missing' | 'never-used';
|
|
131
|
+
export interface PruneCandidate {
|
|
132
|
+
name: string;
|
|
133
|
+
scope: ProfileScope;
|
|
134
|
+
reason: PruneReason;
|
|
135
|
+
/** Cache dirs that would be removed along with the config entry. */
|
|
136
|
+
cacheDirs: string[];
|
|
137
|
+
}
|
|
138
|
+
export interface PrunePlan {
|
|
139
|
+
/** Profiles that would be (or were) removed. */
|
|
140
|
+
candidates: PruneCandidate[];
|
|
141
|
+
/** Profiles deliberately left alone, with the guard that kept them. */
|
|
142
|
+
kept: Array<{
|
|
143
|
+
name: string;
|
|
144
|
+
scope: ProfileScope;
|
|
145
|
+
why: string;
|
|
146
|
+
}>;
|
|
147
|
+
}
|
|
148
|
+
export declare const PRUNE_REASON_TEXT: Record<PruneReason, string>;
|
|
149
|
+
/**
|
|
150
|
+
* Decide which browser profiles are dead, WITHOUT touching anything.
|
|
151
|
+
* `pruneProfiles` executes exactly this plan, so `--dry-run` and the real run
|
|
152
|
+
* can never disagree.
|
|
153
|
+
*
|
|
154
|
+
* Dead means one of {@link PruneReason}: the configured browser cannot launch
|
|
155
|
+
* here at all, or the profile has never been started so nothing on this disk
|
|
156
|
+
* refers to it. That second reason is what actually reclaims agent-minted
|
|
157
|
+
* throwaway profiles (RUSH-2716) — they are created for an installed browser, so
|
|
158
|
+
* only "never started" identifies them.
|
|
159
|
+
*
|
|
160
|
+
* Four guards, and each exists because removing that profile would be wrong
|
|
161
|
+
* rather than merely tidy:
|
|
162
|
+
* - **in use** — a live browser, SSH tunnel, or open task on any of its dirs.
|
|
163
|
+
* - **the configured default** — this machine resolves a bare
|
|
164
|
+
* `agents browser start` to it; removing it breaks that command.
|
|
165
|
+
* - **`default`** — auto-regenerated by `ensureDefaultBrowserProfile`, so
|
|
166
|
+
* pruning it is pure churn.
|
|
167
|
+
* - **fleet-synced** — deleting one removes it from EVERY machine, so it takes
|
|
168
|
+
* the explicit `includeFleet` opt-in.
|
|
169
|
+
*
|
|
170
|
+
* Known limitation: `BrowserProfileConfig` records no creation time, so a
|
|
171
|
+
* profile created seconds ago and not yet started is indistinguishable from an
|
|
172
|
+
* abandoned one and is reported `never-used`. That is why the verb is explicit
|
|
173
|
+
* and `--dry-run` exists.
|
|
174
|
+
*/
|
|
175
|
+
export declare function planProfilePrune(profiles: Array<{
|
|
176
|
+
name: string;
|
|
177
|
+
scope: ProfileScope;
|
|
178
|
+
launchableHere: boolean;
|
|
179
|
+
}>, opts?: {
|
|
180
|
+
includeFleet?: boolean;
|
|
181
|
+
configuredDefault?: string;
|
|
182
|
+
}): PrunePlan;
|
|
183
|
+
/**
|
|
184
|
+
* Build the prune plan from live config. Split from {@link planProfilePrune} so
|
|
185
|
+
* the decision rules stay unit-testable without a configured machine.
|
|
186
|
+
*/
|
|
187
|
+
export declare function buildProfilePrunePlan(opts?: {
|
|
188
|
+
includeFleet?: boolean;
|
|
189
|
+
}): Promise<PrunePlan>;
|
|
190
|
+
/**
|
|
191
|
+
* Execute a prune plan: drop each candidate's config entry and wipe its cache
|
|
192
|
+
* dirs. Returns the plan that was applied so the caller can report exactly what
|
|
193
|
+
* went, matching what `--dry-run` printed.
|
|
194
|
+
*/
|
|
195
|
+
export declare function pruneProfiles(plan: PrunePlan): Promise<PrunePlan>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { execFileSync } from 'child_process';
|
|
4
|
-
import { getProfileRuntimeDir, getBrowserRuntimeDir } from './profiles.js';
|
|
4
|
+
import { getProfileRuntimeDir, getBrowserRuntimeDir, listProfilesWithScope, getConfiguredDefaultProfileName, isProfileLaunchableHere, deleteProfile, DEFAULT_BROWSER_PROFILE_NAME, } from './profiles.js';
|
|
5
5
|
const PID_FILE = 'pid';
|
|
6
6
|
const PORT_FILE = 'port';
|
|
7
7
|
const COMMAND_FILE = 'command';
|
|
@@ -247,6 +247,124 @@ export function reapOrphanedProcesses() {
|
|
|
247
247
|
}
|
|
248
248
|
return { reaped, details };
|
|
249
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* True when ANY cache dir belonging to this profile still has a live browser or
|
|
252
|
+
* SSH tunnel, or an open task. The composite naming (`<name>@<endpoint>`) means
|
|
253
|
+
* one profile can own several runtime dirs, so checking only
|
|
254
|
+
* `getProfileRuntimeDir(name)` would miss a running composite — and prune must
|
|
255
|
+
* never remove a profile that is in use.
|
|
256
|
+
*
|
|
257
|
+
* A recorded `pid: 0` means "attached to a browser someone else launched", so it
|
|
258
|
+
* is not our process to protect; an open task on that dir still counts as in use.
|
|
259
|
+
*/
|
|
260
|
+
export function isProfileInUse(profileName) {
|
|
261
|
+
for (const dir of listProfileCacheDirs(profileName)) {
|
|
262
|
+
const entry = path.basename(dir);
|
|
263
|
+
if (readTaskCount(dir) > 0)
|
|
264
|
+
return true;
|
|
265
|
+
const meta = readProfileRuntimeMeta(entry);
|
|
266
|
+
if (!meta)
|
|
267
|
+
continue;
|
|
268
|
+
if (meta.pid && isProcessAlive(meta.pid, meta.command))
|
|
269
|
+
return true;
|
|
270
|
+
if (meta.tunnelPid && isProcessAlive(meta.tunnelPid, 'ssh'))
|
|
271
|
+
return true;
|
|
272
|
+
}
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
export const PRUNE_REASON_TEXT = {
|
|
276
|
+
'binary-missing': 'its browser/binary is not installed on this machine',
|
|
277
|
+
'never-used': 'it has never been started (no runtime dir)',
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Decide which browser profiles are dead, WITHOUT touching anything.
|
|
281
|
+
* `pruneProfiles` executes exactly this plan, so `--dry-run` and the real run
|
|
282
|
+
* can never disagree.
|
|
283
|
+
*
|
|
284
|
+
* Dead means one of {@link PruneReason}: the configured browser cannot launch
|
|
285
|
+
* here at all, or the profile has never been started so nothing on this disk
|
|
286
|
+
* refers to it. That second reason is what actually reclaims agent-minted
|
|
287
|
+
* throwaway profiles (RUSH-2716) — they are created for an installed browser, so
|
|
288
|
+
* only "never started" identifies them.
|
|
289
|
+
*
|
|
290
|
+
* Four guards, and each exists because removing that profile would be wrong
|
|
291
|
+
* rather than merely tidy:
|
|
292
|
+
* - **in use** — a live browser, SSH tunnel, or open task on any of its dirs.
|
|
293
|
+
* - **the configured default** — this machine resolves a bare
|
|
294
|
+
* `agents browser start` to it; removing it breaks that command.
|
|
295
|
+
* - **`default`** — auto-regenerated by `ensureDefaultBrowserProfile`, so
|
|
296
|
+
* pruning it is pure churn.
|
|
297
|
+
* - **fleet-synced** — deleting one removes it from EVERY machine, so it takes
|
|
298
|
+
* the explicit `includeFleet` opt-in.
|
|
299
|
+
*
|
|
300
|
+
* Known limitation: `BrowserProfileConfig` records no creation time, so a
|
|
301
|
+
* profile created seconds ago and not yet started is indistinguishable from an
|
|
302
|
+
* abandoned one and is reported `never-used`. That is why the verb is explicit
|
|
303
|
+
* and `--dry-run` exists.
|
|
304
|
+
*/
|
|
305
|
+
export function planProfilePrune(profiles, opts = {}) {
|
|
306
|
+
const plan = { candidates: [], kept: [] };
|
|
307
|
+
for (const { name, scope, launchableHere } of profiles) {
|
|
308
|
+
const keep = (why) => { plan.kept.push({ name, scope, why }); };
|
|
309
|
+
if (scope === 'fleet' && !opts.includeFleet) {
|
|
310
|
+
keep('fleet-synced (pass --fleet to include it)');
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
if (name === DEFAULT_BROWSER_PROFILE_NAME) {
|
|
314
|
+
keep('the auto-detected default profile');
|
|
315
|
+
continue;
|
|
316
|
+
}
|
|
317
|
+
if (opts.configuredDefault && name === opts.configuredDefault) {
|
|
318
|
+
keep("this machine's configured default profile");
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
if (isProfileInUse(name)) {
|
|
322
|
+
keep('in use (live browser, tunnel, or open task)');
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
const cacheDirs = listProfileCacheDirs(name);
|
|
326
|
+
if (!launchableHere) {
|
|
327
|
+
plan.candidates.push({ name, scope, reason: 'binary-missing', cacheDirs });
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
if (cacheDirs.length === 0) {
|
|
331
|
+
plan.candidates.push({ name, scope, reason: 'never-used', cacheDirs });
|
|
332
|
+
continue;
|
|
333
|
+
}
|
|
334
|
+
keep('healthy (browser installed, has runtime state)');
|
|
335
|
+
}
|
|
336
|
+
return plan;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Build the prune plan from live config. Split from {@link planProfilePrune} so
|
|
340
|
+
* the decision rules stay unit-testable without a configured machine.
|
|
341
|
+
*/
|
|
342
|
+
export async function buildProfilePrunePlan(opts = {}) {
|
|
343
|
+
const scoped = await listProfilesWithScope();
|
|
344
|
+
return planProfilePrune(scoped.map(({ profile, scope }) => ({
|
|
345
|
+
name: profile.name,
|
|
346
|
+
scope,
|
|
347
|
+
launchableHere: isProfileLaunchableHere(profile),
|
|
348
|
+
})), { includeFleet: opts.includeFleet, configuredDefault: getConfiguredDefaultProfileName() });
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Execute a prune plan: drop each candidate's config entry and wipe its cache
|
|
352
|
+
* dirs. Returns the plan that was applied so the caller can report exactly what
|
|
353
|
+
* went, matching what `--dry-run` printed.
|
|
354
|
+
*/
|
|
355
|
+
export async function pruneProfiles(plan) {
|
|
356
|
+
for (const candidate of plan.candidates) {
|
|
357
|
+
await deleteProfile(candidate.name);
|
|
358
|
+
for (const dir of candidate.cacheDirs) {
|
|
359
|
+
try {
|
|
360
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
361
|
+
}
|
|
362
|
+
catch { /* already gone */ }
|
|
363
|
+
}
|
|
364
|
+
removeProfileCache(candidate.name);
|
|
365
|
+
}
|
|
366
|
+
return plan;
|
|
367
|
+
}
|
|
250
368
|
function matchesCommand(pid, expectedCommand) {
|
|
251
369
|
const out = liveProcessCommand(pid);
|
|
252
370
|
if (!out)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CDPClient } from './cdp.js';
|
|
1
2
|
import { type ResolvedDomainSkill } from './domain-skills.js';
|
|
2
3
|
import { type Task, type TabInfo, type ProfileStatus, type HistoricalTask, type ReapResult } from './types.js';
|
|
3
4
|
import { type ReapOptions } from './hygiene.js';
|
|
@@ -44,6 +45,61 @@ export declare function pickWindowTarget<T extends {
|
|
|
44
45
|
export declare function parseSinceUntil(s: string): Date;
|
|
45
46
|
export declare function readNewestMatchingRemoteFileCommand(dir: string, prefix: string, tailLines: number): string;
|
|
46
47
|
export declare function readNewestMatchingFile(dir: string, prefix: string, tailLines: number): string;
|
|
48
|
+
interface ProfileConnection {
|
|
49
|
+
cdp: CDPClient;
|
|
50
|
+
port: number;
|
|
51
|
+
pid: number;
|
|
52
|
+
electron?: boolean;
|
|
53
|
+
/** Raw `url:<v>` / `title:<v>` filter copied from the profile config. */
|
|
54
|
+
targetFilter?: string;
|
|
55
|
+
/**
|
|
56
|
+
* The composite key this connection is registered under in `this.connections`
|
|
57
|
+
* (`<profile>` / `<profile>@<endpoint>` / `<profile>.<fork>`). It is the same
|
|
58
|
+
* name used to key the profile's runtime dir, so downloads and session
|
|
59
|
+
* captures land under `.cache/browser/<profileName>/`. Set at registration.
|
|
60
|
+
*/
|
|
61
|
+
profileName?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Bare YAML profile name without the `@<endpoint>` suffix. Kept so
|
|
64
|
+
* `status --profile comet-local` matches the composite connection key
|
|
65
|
+
* `comet-local@endpoint-0` without prefix-matching wrong browsers.
|
|
66
|
+
*/
|
|
67
|
+
bareName?: string;
|
|
68
|
+
forkedFrom?: string;
|
|
69
|
+
tasks: Map<string, Task>;
|
|
70
|
+
windowId?: string;
|
|
71
|
+
targetCache?: {
|
|
72
|
+
targets: TargetInfo[];
|
|
73
|
+
ts: number;
|
|
74
|
+
};
|
|
75
|
+
sessionCache: Map<string, string>;
|
|
76
|
+
/**
|
|
77
|
+
* Connection-specific teardown (e.g. killing the SSH tunnel for an ssh://
|
|
78
|
+
* profile). Must be called whenever the connection is removed from
|
|
79
|
+
* `this.connections`, otherwise the tunnel leaks across daemon restarts
|
|
80
|
+
* and hijacks future `cdp://127.0.0.1:N` profiles on the same local port.
|
|
81
|
+
*/
|
|
82
|
+
cleanup?: () => void;
|
|
83
|
+
}
|
|
84
|
+
/** Join error lines so callers get a next command, not a dead-end message. */
|
|
85
|
+
export declare function actionable(...lines: string[]): string;
|
|
86
|
+
/** Derive a human label from an explicit title or a navigated URL. */
|
|
87
|
+
export declare function deriveTaskLabel(opts: {
|
|
88
|
+
title?: string;
|
|
89
|
+
url?: string;
|
|
90
|
+
existing?: string;
|
|
91
|
+
}): string;
|
|
92
|
+
/**
|
|
93
|
+
* True when `key` is the bare profile name or one of its composite endpoint
|
|
94
|
+
* keys (`name@endpoint`). Used by status/stop so `comet-local` matches
|
|
95
|
+
* `comet-local@endpoint-0`.
|
|
96
|
+
*/
|
|
97
|
+
export declare function connectionKeyMatchesProfile(key: string, profileName: string): boolean;
|
|
98
|
+
type TargetInfo = {
|
|
99
|
+
targetId: string;
|
|
100
|
+
url?: string;
|
|
101
|
+
title?: string;
|
|
102
|
+
};
|
|
47
103
|
/** Describes a ref that was re-resolved from a drifted integer via its cached descriptor. */
|
|
48
104
|
export interface HealInfo {
|
|
49
105
|
from: number;
|
|
@@ -94,6 +150,8 @@ export declare class BrowserService {
|
|
|
94
150
|
launchId?: string;
|
|
95
151
|
/** Calling agent session, forwarded from the CLI (see IPCRequest.sessionId). */
|
|
96
152
|
sessionId?: string;
|
|
153
|
+
/** Explicit human label (`--title`). */
|
|
154
|
+
title?: string;
|
|
97
155
|
}): Promise<{
|
|
98
156
|
task: string;
|
|
99
157
|
name: string;
|
|
@@ -264,6 +322,7 @@ export declare class BrowserService {
|
|
|
264
322
|
};
|
|
265
323
|
status(profileName?: string): Promise<ProfileStatus[]>;
|
|
266
324
|
private reconcileFromDisk;
|
|
325
|
+
private profileStatusFromDisk;
|
|
267
326
|
setViewport(taskId: string, width: number, height: number, options?: {
|
|
268
327
|
mobile?: boolean;
|
|
269
328
|
deviceScaleFactor?: number;
|
|
@@ -335,7 +394,37 @@ export declare class BrowserService {
|
|
|
335
394
|
private enableDomains;
|
|
336
395
|
private getOrCreateWindow;
|
|
337
396
|
private hasTaskNamed;
|
|
338
|
-
|
|
397
|
+
/** Map key for a task on a connection (tasks are keyed by `name`). */
|
|
398
|
+
private taskMapKey;
|
|
399
|
+
/** Find a task by map key, id, or name on one connection. */
|
|
400
|
+
private lookupTaskOnConn;
|
|
401
|
+
private maybeUpdateLabelFromUrl;
|
|
402
|
+
/**
|
|
403
|
+
* Resolve a task for a page/close verb.
|
|
404
|
+
*
|
|
405
|
+
* - explicit `task` handle → look up (with disk rehydrate on RAM miss)
|
|
406
|
+
* - no handle, exactly one live task for this caller → use it
|
|
407
|
+
* - no handle, multiple for this caller → error listing them + `--task`
|
|
408
|
+
* - no handle, zero for this caller, createIfMissing → start a new task
|
|
409
|
+
* - no handle, zero, !createIfMissing → return null (caller reports "nothing to close")
|
|
410
|
+
*/
|
|
411
|
+
resolveOrCreateTask(opts: {
|
|
412
|
+
task?: string;
|
|
413
|
+
profile?: string;
|
|
414
|
+
actor?: string;
|
|
415
|
+
launchId?: string;
|
|
416
|
+
sessionId?: string;
|
|
417
|
+
createIfMissing: boolean;
|
|
418
|
+
title?: string;
|
|
419
|
+
url?: string;
|
|
420
|
+
}): Promise<{
|
|
421
|
+
conn: ProfileConnection;
|
|
422
|
+
task: Task;
|
|
423
|
+
profileName: string;
|
|
424
|
+
created: boolean;
|
|
425
|
+
} | null>;
|
|
426
|
+
private listTasksForCaller;
|
|
427
|
+
private currentUrlHint;
|
|
339
428
|
/**
|
|
340
429
|
* Mark a task as active, so the reaper's idle window measures time since the
|
|
341
430
|
* last real use rather than time since `start` (RUSH-2622).
|
|
@@ -356,6 +445,28 @@ export declare class BrowserService {
|
|
|
356
445
|
*/
|
|
357
446
|
private touchTask;
|
|
358
447
|
private findTask;
|
|
448
|
+
/**
|
|
449
|
+
* Soft-attach to an already-running browser for a runtime dir.
|
|
450
|
+
*
|
|
451
|
+
* Never launches a browser and never clears pid/port files on failure —
|
|
452
|
+
* `connectProfile` does both, which made `status()` wipe disk state when
|
|
453
|
+
* CDP was unreachable (CI / post-reaper) and then return an empty list.
|
|
454
|
+
* Returns null when nothing is speaking CDP so callers can fall through
|
|
455
|
+
* to disk reconcile.
|
|
456
|
+
*/
|
|
457
|
+
private attachRunningProfile;
|
|
458
|
+
/**
|
|
459
|
+
* Reconnect every profile runtime dir that still has a live browser and
|
|
460
|
+
* tasks.json entries. Used before identity-based resolution so a daemon
|
|
461
|
+
* restart does not make the caller's tasks invisible.
|
|
462
|
+
*/
|
|
463
|
+
private rehydrateAllFromDisk;
|
|
464
|
+
/**
|
|
465
|
+
* On a RAM miss, scan profile runtime dirs for a tasks.json entry matching
|
|
466
|
+
* `taskId`, soft-attach when CDP is still up, and register the connection.
|
|
467
|
+
* Does not launch browsers or clear runtime files.
|
|
468
|
+
*/
|
|
469
|
+
private rehydrateTaskFromDisk;
|
|
359
470
|
private getTabsForTask;
|
|
360
471
|
private getProfileStatus;
|
|
361
472
|
private getTarget;
|
|
@@ -366,3 +477,4 @@ export declare class BrowserService {
|
|
|
366
477
|
private saveToHistory;
|
|
367
478
|
getHistory(limit?: number): Promise<HistoricalTask[]>;
|
|
368
479
|
}
|
|
480
|
+
export {};
|