@phnx-labs/agents-cli 1.22.113 → 1.22.115
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 +139 -0
- package/README.md +32 -113
- package/dist/browser.js +0 -0
- package/dist/cli/command-registry.d.ts +0 -60
- package/dist/cli/command-registry.js +57 -66
- package/dist/commands/accounts.d.ts +3 -77
- package/dist/commands/accounts.js +13 -366
- package/dist/commands/apply.d.ts +0 -4
- package/dist/commands/apply.js +3 -3
- package/dist/commands/audit.js +1 -1
- package/dist/commands/auth.js +0 -2
- package/dist/commands/browser-picker.d.ts +3 -6
- package/dist/commands/browser-picker.js +2 -2
- package/dist/commands/browser-sessions-picker.d.ts +2 -1
- package/dist/commands/browser.d.ts +53 -0
- package/dist/commands/browser.js +199 -9
- package/dist/commands/computer-sessions-picker.d.ts +2 -1
- package/dist/commands/computer.d.ts +14 -19
- package/dist/commands/computer.js +65 -10
- package/dist/commands/config.js +46 -2
- package/dist/commands/daemon.d.ts +0 -23
- package/dist/commands/daemon.js +1 -1
- package/dist/commands/detach-core.d.ts +2 -1
- package/dist/commands/detach.d.ts +0 -3
- package/dist/commands/detach.js +3 -3
- package/dist/commands/doctor.d.ts +2 -3
- package/dist/commands/doctor.js +0 -11
- package/dist/commands/events.d.ts +1 -3
- package/dist/commands/events.js +4 -7
- package/dist/commands/exec.d.ts +0 -1
- package/dist/commands/exec.js +2 -7
- package/dist/commands/feed-watch.js +52 -8
- package/dist/commands/feed.d.ts +3 -3
- package/dist/commands/feed.js +1 -1
- package/dist/commands/focus.d.ts +4 -4
- package/dist/commands/focus.js +1 -1
- package/dist/commands/go.d.ts +0 -17
- package/dist/commands/go.js +2 -19
- package/dist/commands/harness-hooks.d.ts +0 -7
- package/dist/commands/harness-hooks.js +1 -1
- package/dist/commands/harness-wizard.d.ts +2 -2
- package/dist/commands/harness.d.ts +3 -8
- package/dist/commands/harness.js +1 -1
- package/dist/commands/inspect.d.ts +2 -3
- package/dist/commands/inspect.js +1 -1
- package/dist/commands/logs.js +1 -1
- package/dist/commands/mcp.js +8 -83
- package/dist/commands/memory.js +4 -47
- package/dist/commands/message.d.ts +1 -1
- package/dist/commands/message.js +7 -7
- package/dist/commands/plugins.js +1 -93
- package/dist/commands/projects.d.ts +2 -18
- package/dist/commands/projects.js +89 -3
- package/dist/commands/repo.js +0 -44
- package/dist/commands/resource-view.d.ts +3 -2
- package/dist/commands/resume.d.ts +0 -1
- package/dist/commands/resume.js +5 -2
- package/dist/commands/routines.d.ts +1 -3
- package/dist/commands/routines.js +1 -1
- package/dist/commands/run-account-picker.d.ts +2 -1
- package/dist/commands/run-broadcast.d.ts +2 -1
- package/dist/commands/run-device-picker.d.ts +2 -1
- package/dist/commands/secrets-passthrough.d.ts +14 -0
- package/dist/commands/secrets-passthrough.js +23 -4
- package/dist/commands/send.d.ts +4 -4
- package/dist/commands/send.js +6 -51
- package/dist/commands/sessions-backfill.d.ts +2 -35
- package/dist/commands/sessions-backfill.js +1 -1
- package/dist/commands/sessions-backup-setup.js +1 -1
- package/dist/commands/sessions-bookmark.d.ts +0 -10
- package/dist/commands/sessions-bookmark.js +1 -1
- package/dist/commands/sessions-inject.d.ts +2 -3
- package/dist/commands/sessions-inject.js +8 -17
- package/dist/commands/sessions-picker-factory.d.ts +4 -14
- package/dist/commands/sessions-picker-factory.js +2 -2
- package/dist/commands/sessions-picker.d.ts +3 -9
- package/dist/commands/sessions-picker.js +2 -2
- package/dist/commands/sessions-resume.d.ts +2 -4
- package/dist/commands/sessions-resume.js +0 -6
- package/dist/commands/sessions-share.d.ts +5 -7
- package/dist/commands/sessions-share.js +98 -49
- package/dist/commands/sessions-stats.d.ts +2 -1
- package/dist/commands/sessions-stop.d.ts +0 -3
- package/dist/commands/sessions-stop.js +1 -1
- package/dist/commands/sessions-tail.d.ts +2 -1
- package/dist/commands/sessions-trace.d.ts +4 -6
- package/dist/commands/sessions-trace.js +1 -1
- package/dist/commands/sessions.d.ts +13 -104
- package/dist/commands/sessions.js +11 -18
- package/dist/commands/setup-browser.js +18 -2
- package/dist/commands/setup-computer.js +20 -6
- package/dist/commands/setup-mine.d.ts +0 -6
- package/dist/commands/setup-mine.js +1 -1
- package/dist/commands/setup-secrets.js +24 -4
- package/dist/commands/setup-terminal.d.ts +3 -0
- package/dist/commands/setup-terminal.js +22 -0
- package/dist/commands/setup.d.ts +3 -4
- package/dist/commands/setup.js +21 -11
- package/dist/commands/skills.js +0 -8
- package/dist/commands/ssh.d.ts +6 -0
- package/dist/commands/ssh.js +92 -233
- package/dist/commands/sync.js +14 -5
- package/dist/commands/teams-picker.d.ts +2 -5
- package/dist/commands/teams-picker.js +2 -2
- package/dist/commands/teams.d.ts +1 -7
- package/dist/commands/teams.js +2 -2
- package/dist/commands/tmux.d.ts +1 -1
- package/dist/commands/tmux.js +1 -1
- package/dist/commands/traces.js +1 -1
- package/dist/commands/upgrade.d.ts +2 -1
- package/dist/commands/utils.d.ts +1 -1
- package/dist/commands/utils.js +1 -1
- package/dist/lib/account-capabilities.d.ts +2 -1
- package/dist/lib/account-catalog.d.ts +4 -13
- package/dist/lib/account-catalog.js +1 -1
- package/dist/lib/account-registry.d.ts +3 -4
- package/dist/lib/account-registry.js +1 -1
- package/dist/lib/accounting/account-launch.d.ts +4 -3
- package/dist/lib/accounting/account-pool.d.ts +2 -1
- package/dist/lib/accounting/rotate.d.ts +3 -9
- package/dist/lib/accounting/rotate.js +2 -14
- package/dist/lib/accounting/usage-sync.d.ts +5 -4
- package/dist/lib/accounting/usage.d.ts +7 -31
- package/dist/lib/accounting/usage.js +4 -4
- package/dist/lib/accounts/add.d.ts +0 -5
- package/dist/lib/accounts/add.js +1 -7
- package/dist/lib/accounts/migrate.d.ts +8 -8
- package/dist/lib/accounts/migrate.js +1 -1
- package/dist/lib/acp/client.d.ts +3 -2
- package/dist/lib/acp/harnesses.d.ts +2 -2
- package/dist/lib/acp/harnesses.js +1 -1
- package/dist/lib/acp/run.d.ts +2 -1
- package/dist/lib/actor.d.ts +3 -2
- package/dist/lib/add-dir.d.ts +2 -17
- package/dist/lib/add-dir.js +2 -6
- package/dist/lib/address.d.ts +56 -0
- package/dist/lib/address.js +143 -0
- package/dist/lib/agent-spec/agents.d.ts +12 -28
- package/dist/lib/agent-spec/agents.js +2 -6
- package/dist/lib/agent-spec/primitives.d.ts +0 -7
- package/dist/lib/agent-spec/primitives.js +0 -6
- package/dist/lib/agent-spec/types.d.ts +2 -1
- package/dist/lib/analytics/dashboard.d.ts +1 -5
- package/dist/lib/analytics/dashboard.js +0 -2
- package/dist/lib/analytics/mix-commands.d.ts +0 -7
- package/dist/lib/analytics/mix-commands.js +3 -3
- package/dist/lib/analytics/recipes.d.ts +0 -12
- package/dist/lib/analytics/recipes.js +7 -31
- package/dist/lib/analytics/usage-db.d.ts +5 -32
- package/dist/lib/analytics/usage-db.js +1 -70
- package/dist/lib/answer-router.d.ts +7 -6
- package/dist/lib/answer-router.js +5 -11
- package/dist/lib/artifact-actions.d.ts +0 -4
- package/dist/lib/artifacts-client.d.ts +20 -0
- package/dist/lib/artifacts-client.js +46 -0
- package/dist/lib/ask-classifier.d.ts +3 -4
- package/dist/lib/ask-classifier.js +0 -7
- package/dist/lib/auth-health.d.ts +3 -46
- package/dist/lib/auth-health.js +3 -3
- package/dist/lib/auth-mint.d.ts +6 -6
- package/dist/lib/auth-mint.js +7 -7
- package/dist/lib/bench/runner.d.ts +2 -2
- package/dist/lib/bench/runner.js +1 -1
- package/dist/lib/bench/storage.d.ts +0 -1
- package/dist/lib/bench/storage.js +1 -1
- package/dist/lib/boot-profile.d.ts +0 -2
- package/dist/lib/boot-profile.js +0 -4
- package/dist/lib/brand.d.ts +0 -6
- package/dist/lib/brand.js +1 -1
- package/dist/lib/browser/arc-discovery.d.ts +4 -12
- package/dist/lib/browser/arc-discovery.js +1 -1
- package/dist/lib/browser/cdp.d.ts +1 -1
- package/dist/lib/browser/chrome.d.ts +2 -2
- package/dist/lib/browser/chrome.js +0 -4
- package/dist/lib/browser/chromium-discovery.d.ts +3 -2
- package/dist/lib/browser/drivers/arc.d.ts +3 -20
- package/dist/lib/browser/drivers/arc.js +2 -7
- package/dist/lib/browser/drivers/firefox.d.ts +2 -6
- package/dist/lib/browser/drivers/firefox.js +1 -1
- package/dist/lib/browser/drivers/local.d.ts +2 -1
- package/dist/lib/browser/drivers/ssh.d.ts +2 -3
- package/dist/lib/browser/drivers/ssh.js +0 -7
- package/dist/lib/browser/firefox-discovery.d.ts +4 -3
- package/dist/lib/browser/har.d.ts +8 -7
- package/dist/lib/browser/hygiene.d.ts +2 -3
- package/dist/lib/browser/hygiene.js +1 -1
- package/dist/lib/browser/ipc.d.ts +4 -3
- package/dist/lib/browser/ipc.js +1 -1
- package/dist/lib/browser/login-detection.d.ts +1 -8
- package/dist/lib/browser/registry.d.ts +2 -1
- package/dist/lib/browser/remote-control.d.ts +0 -7
- package/dist/lib/browser/remote-control.js +2 -2
- package/dist/lib/browser/resolve-target.d.ts +2 -6
- package/dist/lib/browser/resolve-target.js +3 -3
- package/dist/lib/browser/runtime-state.d.ts +59 -4
- package/dist/lib/browser/runtime-state.js +99 -18
- package/dist/lib/browser/service.d.ts +4 -4
- package/dist/lib/browser/service.js +21 -1
- package/dist/lib/browser/sessions-list.d.ts +0 -10
- package/dist/lib/browser/sessions-list.js +3 -3
- package/dist/lib/browser/stream.d.ts +2 -1
- package/dist/lib/browser/task-index.d.ts +4 -4
- package/dist/lib/browser/task-index.js +1 -1
- package/dist/lib/browser/types.d.ts +0 -20
- package/dist/lib/browser/types.js +1 -34
- package/dist/lib/browser/upload.d.ts +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -2
- package/dist/lib/budget/ledger.js +1 -1
- package/dist/lib/budget/live-cloud.d.ts +2 -1
- package/dist/lib/budget/preflight.d.ts +3 -5
- package/dist/lib/budget/preflight.js +1 -1
- package/dist/lib/catchup.d.ts +2 -1
- package/dist/lib/channels/owner-forward.d.ts +5 -4
- package/dist/lib/channels/owner-sink.js +2 -2
- package/dist/lib/channels/providers/desktop.js +1 -1
- package/dist/lib/channels/providers/rush.d.ts +2 -1
- package/dist/lib/channels/registry.d.ts +1 -1
- package/dist/lib/channels/registry.js +1 -1
- package/dist/lib/channels/resolve.d.ts +3 -2
- package/dist/lib/channels/send.d.ts +5 -4
- package/dist/lib/cli-resources.d.ts +3 -9
- package/dist/lib/cli-resources.js +4 -2
- package/dist/lib/cloud/cursor.d.ts +1 -2
- package/dist/lib/cloud/cursor.js +1 -1
- package/dist/lib/cloud/dispatch.d.ts +2 -1
- package/dist/lib/cloud/dispatch.js +1 -1
- package/dist/lib/cloud/factory.d.ts +0 -2
- package/dist/lib/cloud/factory.js +1 -1
- package/dist/lib/cloud/rush.d.ts +3 -11
- package/dist/lib/cloud/rush.js +1 -1
- package/dist/lib/cloud/session-index.d.ts +2 -1
- package/dist/lib/cloud/types.d.ts +2 -1
- package/dist/lib/cloudflare/creds.d.ts +10 -0
- package/dist/lib/cloudflare/creds.js +46 -0
- package/dist/lib/cloudflare/provision.d.ts +35 -0
- package/dist/lib/cloudflare/provision.js +144 -0
- package/dist/lib/codex-policy.d.ts +2 -1
- package/dist/lib/commands.d.ts +7 -7
- package/dist/lib/commands.js +1 -1
- package/dist/lib/comms-render.d.ts +1 -1
- package/dist/lib/computer/context.d.ts +11 -3
- package/dist/lib/computer/context.js +2 -2
- package/dist/lib/computer/policy.d.ts +0 -12
- package/dist/lib/computer/policy.js +1 -1
- package/dist/lib/computer/sessions-list.d.ts +55 -0
- package/dist/lib/computer/sessions-list.js +168 -1
- package/dist/lib/computer-client.d.ts +3 -3
- package/dist/lib/computer-client.js +0 -1
- package/dist/lib/concurrency.d.ts +2 -1
- package/dist/lib/config-keys.d.ts +16 -3
- package/dist/lib/config-keys.js +47 -2
- package/dist/lib/convert.d.ts +0 -12
- package/dist/lib/convert.js +1 -12
- package/dist/lib/crabbox/cli.d.ts +6 -24
- package/dist/lib/crabbox/cli.js +2 -28
- package/dist/lib/crabbox/lease.d.ts +5 -6
- package/dist/lib/crabbox/lease.js +1 -1
- package/dist/lib/crabbox/progress.d.ts +2 -1
- package/dist/lib/crabbox/setup-copy.d.ts +2 -3
- package/dist/lib/crabbox/setup-copy.js +1 -1
- package/dist/lib/daemon/account-state-daemon-service.d.ts +1 -1
- package/dist/lib/daemon/attention-notify-service.d.ts +2 -1
- package/dist/lib/daemon/catchup-service.d.ts +2 -1
- package/dist/lib/daemon/daemon.d.ts +4 -4
- package/dist/lib/daemon/daemon.js +9 -2
- package/dist/lib/daemon/feed-stream-service.d.ts +23 -0
- package/dist/lib/daemon/feed-stream-service.js +40 -0
- package/dist/lib/daemon/harness-update-service.d.ts +2 -19
- package/dist/lib/daemon/harness-update-service.js +3 -3
- package/dist/lib/daemon/runner.d.ts +3 -3
- package/dist/lib/daemon/self-update-service.d.ts +1 -16
- package/dist/lib/daemon/self-update-service.js +6 -6
- package/dist/lib/daemon/state-dir-check-service.d.ts +2 -1
- package/dist/lib/daemon/supervisor.d.ts +3 -2
- package/dist/lib/daemon-services.d.ts +3 -2
- package/dist/lib/daemon-services.js +5 -0
- package/dist/lib/daemon-webhooks.d.ts +1 -1
- package/dist/lib/deeplink/register.d.ts +3 -13
- package/dist/lib/deeplink/register.js +3 -3
- package/dist/lib/deeplink/url.d.ts +3 -2
- package/dist/lib/device-config.d.ts +4 -15
- package/dist/lib/device-config.js +164 -8
- package/dist/lib/devices/connect.d.ts +51 -6
- package/dist/lib/devices/connect.js +169 -21
- package/dist/lib/devices/discovery-policy.d.ts +3 -2
- package/dist/lib/devices/doctor-findings.js +1 -1
- package/dist/lib/devices/doctor-overview-cache.d.ts +3 -2
- package/dist/lib/devices/fleet-divergence.d.ts +2 -1
- package/dist/lib/devices/fleet.d.ts +3 -4
- package/dist/lib/devices/fleet.js +1 -1
- package/dist/lib/devices/harness-inventory.d.ts +3 -2
- package/dist/lib/devices/health-report.d.ts +3 -2
- package/dist/lib/devices/health.d.ts +1 -8
- package/dist/lib/devices/health.js +1 -1
- package/dist/lib/devices/interactive-host.d.ts +0 -2
- package/dist/lib/devices/interactive-host.js +1 -1
- package/dist/lib/devices/known-hosts.d.ts +2 -20
- package/dist/lib/devices/known-hosts.js +2 -2
- package/dist/lib/devices/pool.d.ts +2 -1
- package/dist/lib/devices/resolve-target.d.ts +2 -2
- package/dist/lib/devices/rollout-verify.d.ts +3 -2
- package/dist/lib/devices/stats-cache.d.ts +3 -2
- package/dist/lib/devices/sync.d.ts +6 -5
- package/dist/lib/devices/worker-pick.d.ts +3 -12
- package/dist/lib/devices/worker-pick.js +1 -1
- package/dist/lib/diff-text.d.ts +2 -1
- package/dist/lib/doctor-diff.d.ts +2 -1
- package/dist/lib/drift-sync.d.ts +3 -2
- package/dist/lib/drift.d.ts +3 -3
- package/dist/lib/drift.js +1 -1
- package/dist/lib/event-families.d.ts +0 -6
- package/dist/lib/event-families.js +3 -3
- package/dist/lib/event-provenance.d.ts +2 -1
- package/dist/lib/events-ingest.d.ts +4 -3
- package/dist/lib/exec-account-home.d.ts +2 -4
- package/dist/lib/exec-account-home.js +1 -1
- package/dist/lib/exec-bounded.d.ts +3 -4
- package/dist/lib/exec-bounded.js +1 -1
- package/dist/lib/exec.d.ts +6 -18
- package/dist/lib/exec.js +1 -1
- package/dist/lib/factory/snapshot.d.ts +2 -2
- package/dist/lib/factory/snapshot.js +1 -1
- package/dist/lib/feed/activity-stream.d.ts +2 -5
- package/dist/lib/feed/activity-stream.js +2 -2
- package/dist/lib/feed/activity.d.ts +8 -33
- package/dist/lib/feed/activity.js +8 -8
- package/dist/lib/feed/answer.d.ts +3 -2
- package/dist/lib/feed/attention.js +5 -1
- package/dist/lib/feed/envelope.d.ts +79 -0
- package/dist/lib/feed/envelope.js +23 -0
- package/dist/lib/feed/events.d.ts +8 -47
- package/dist/lib/feed/events.js +9 -141
- package/dist/lib/feed/feed.d.ts +9 -42
- package/dist/lib/feed/feed.js +1 -60
- package/dist/lib/feed/hub-server.d.ts +86 -0
- package/dist/lib/feed/hub-server.js +334 -0
- package/dist/lib/feed/hub.d.ts +95 -0
- package/dist/lib/feed/hub.js +255 -0
- package/dist/lib/feed/pr-status.d.ts +0 -2
- package/dist/lib/feed/pr-status.js +1 -5
- package/dist/lib/feed/tool-activity.d.ts +108 -0
- package/dist/lib/feed/tool-activity.js +313 -0
- package/dist/lib/feed/tools.d.ts +198 -0
- package/dist/lib/feed/tools.js +265 -0
- package/dist/lib/feed/watch.d.ts +51 -52
- package/dist/lib/feed/watch.js +147 -17
- package/dist/lib/feed-broadcast.d.ts +5 -47
- package/dist/lib/feed-broadcast.js +9 -9
- package/dist/lib/feed-outcome.d.ts +3 -6
- package/dist/lib/feed-outcome.js +2 -2
- package/dist/lib/feed-policy.d.ts +5 -6
- package/dist/lib/feed-policy.js +2 -2
- package/dist/lib/feed-post.d.ts +3 -4
- package/dist/lib/feed-post.js +1 -1
- package/dist/lib/feed-ranking.d.ts +2 -2
- package/dist/lib/feed-ranking.js +1 -1
- package/dist/lib/fleet/apply.d.ts +5 -6
- package/dist/lib/fleet/apply.js +4 -4
- package/dist/lib/fleet/manifest.d.ts +2 -1
- package/dist/lib/fleet/remote-login.d.ts +18 -36
- package/dist/lib/fleet/remote-login.js +20 -19
- package/dist/lib/fleet/types.d.ts +0 -8
- package/dist/lib/fleet-cache.d.ts +1 -18
- package/dist/lib/fleet-cache.js +0 -5
- package/dist/lib/fleet-shared-repo-sync.d.ts +3 -3
- package/dist/lib/fleet-shared-repo-sync.js +1 -1
- package/dist/lib/fleet-shared-state.d.ts +3 -2
- package/dist/lib/format.d.ts +3 -2
- package/dist/lib/format.js +1 -1
- package/dist/lib/friction-heuristics.d.ts +2 -1
- package/dist/lib/fs-walk.d.ts +2 -1
- package/dist/lib/fuzzy.d.ts +2 -1
- package/dist/lib/gemini-settings.d.ts +0 -1
- package/dist/lib/gemini-settings.js +1 -1
- package/dist/lib/git.d.ts +7 -81
- package/dist/lib/git.js +2 -199
- package/dist/lib/github/gh-overload.d.ts +0 -4
- package/dist/lib/github/gh-overload.js +2 -2
- package/dist/lib/github/project-prs.d.ts +118 -0
- package/dist/lib/github/project-prs.js +173 -0
- package/dist/lib/github/rest.d.ts +2 -1
- package/dist/lib/harness/exec-config-version.d.ts +2 -1
- package/dist/lib/harness-auth-capabilities.d.ts +5 -4
- package/dist/lib/harness-connection-test.d.ts +2 -1
- package/dist/lib/heal.d.ts +3 -20
- package/dist/lib/heal.js +2 -39
- package/dist/lib/help.d.ts +3 -2
- package/dist/lib/helper-download.d.ts +0 -12
- package/dist/lib/helper-download.js +2 -2
- package/dist/lib/helper-versions.d.ts +2 -1
- package/dist/lib/helper-versions.js +1 -1
- package/dist/lib/hooks/install.d.ts +8 -49
- package/dist/lib/hooks/install.js +2 -96
- package/dist/lib/hooks/match.d.ts +2 -1
- package/dist/lib/hosts/credential-transport.d.ts +0 -2
- package/dist/lib/hosts/credential-transport.js +1 -1
- package/dist/lib/hosts/dispatch.d.ts +2 -24
- package/dist/lib/hosts/dispatch.js +2 -2
- package/dist/lib/hosts/logs.d.ts +2 -1
- package/dist/lib/hosts/passthrough.d.ts +1 -1
- package/dist/lib/hosts/passthrough.js +0 -1
- package/dist/lib/hosts/progress.d.ts +0 -5
- package/dist/lib/hosts/progress.js +1 -1
- package/dist/lib/hosts/ready.d.ts +3 -4
- package/dist/lib/hosts/ready.js +0 -8
- package/dist/lib/hosts/reconcile.d.ts +2 -8
- package/dist/lib/hosts/reconcile.js +1 -1
- package/dist/lib/hosts/reconnect.d.ts +4 -11
- package/dist/lib/hosts/reconnect.js +2 -2
- package/dist/lib/hosts/registry.d.ts +1 -1
- package/dist/lib/hosts/remote-cmd.d.ts +55 -4
- package/dist/lib/hosts/remote-cmd.js +125 -8
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +2 -0
- package/dist/lib/hosts/remote-cmd.test-fixture.js +22 -0
- package/dist/lib/hosts/session-index.d.ts +3 -2
- package/dist/lib/hosts/ssh-config.d.ts +2 -3
- package/dist/lib/hosts/ssh-config.js +0 -10
- package/dist/lib/humans.d.ts +0 -2
- package/dist/lib/humans.js +2 -2
- package/dist/lib/import.d.ts +4 -3
- package/dist/lib/installations/installation-lock.d.ts +0 -2
- package/dist/lib/installations/installation-lock.js +2 -2
- package/dist/lib/installations/launch-gate.d.ts +0 -9
- package/dist/lib/installations/launch-gate.js +1 -1
- package/dist/lib/installations/migrate.d.ts +0 -11
- package/dist/lib/installations/migrate.js +1 -1
- package/dist/lib/installations/shims.d.ts +1 -1
- package/dist/lib/installations/shims.js +2 -2
- package/dist/lib/installations/update-runtime.js +1 -1
- package/dist/lib/linear-cache.d.ts +2 -1
- package/dist/lib/linux-userns.d.ts +2 -3
- package/dist/lib/linux-userns.js +0 -4
- package/dist/lib/loop.d.ts +2 -1
- package/dist/lib/mailbox-gc.d.ts +2 -1
- package/dist/lib/mailbox-target.d.ts +2 -1
- package/dist/lib/mailbox.d.ts +0 -6
- package/dist/lib/mailbox.js +1 -1
- package/dist/lib/manifest.d.ts +0 -14
- package/dist/lib/manifest.js +2 -2
- package/dist/lib/mcp-registry.d.ts +2 -1
- package/dist/lib/mcp.js +17 -11
- package/dist/lib/memory.d.ts +2 -13
- package/dist/lib/memory.js +4 -4
- package/dist/lib/menubar/download-menubar.d.ts +0 -2
- package/dist/lib/menubar/download-menubar.js +1 -5
- package/dist/lib/menubar/install-menubar.d.ts +3 -14
- package/dist/lib/menubar/install-menubar.js +3 -3
- package/dist/lib/menubar/migrate-prefs.d.ts +53 -0
- package/dist/lib/menubar/migrate-prefs.js +168 -0
- package/dist/lib/menubar/resolve-version.d.ts +1 -9
- package/dist/lib/menubar/resolve-version.js +4 -4
- package/dist/lib/menubar/snapshot.d.ts +24 -2
- package/dist/lib/menubar/snapshot.js +26 -0
- package/dist/lib/model-tier-overrides.d.ts +3 -2
- package/dist/lib/monitors/config.d.ts +0 -2
- package/dist/lib/monitors/config.js +0 -4
- package/dist/lib/monitors/engine.d.ts +1 -1
- package/dist/lib/monitors/remote.d.ts +3 -2
- package/dist/lib/monitors/sources/webhook.d.ts +2 -15
- package/dist/lib/monitors/sources/webhook.js +1 -38
- package/dist/lib/monitors/state.d.ts +4 -7
- package/dist/lib/monitors/state.js +2 -2
- package/dist/lib/notify.d.ts +1 -1
- package/dist/lib/notify.js +1 -1
- package/dist/lib/onepassword.d.ts +5 -14
- package/dist/lib/onepassword.js +0 -64
- package/dist/lib/open-url.d.ts +3 -2
- package/dist/lib/openclaw-keychain.d.ts +4 -17
- package/dist/lib/openclaw-keychain.js +3 -33
- package/dist/lib/operator.d.ts +2 -2
- package/dist/lib/operator.js +1 -1
- package/dist/lib/output/git-output.d.ts +4 -14
- package/dist/lib/output/git-output.js +1 -1
- package/dist/lib/owner-message.d.ts +3 -29
- package/dist/lib/owner-message.js +3 -3
- package/dist/lib/packages/output-home.d.ts +2 -4
- package/dist/lib/packages/output-home.js +2 -2
- package/dist/lib/perf/db.d.ts +0 -2
- package/dist/lib/perf/db.js +2 -7
- package/dist/lib/permissions-registry.d.ts +2 -3
- package/dist/lib/permissions-registry.js +0 -4
- package/dist/lib/permissions.d.ts +6 -16
- package/dist/lib/permissions.js +2 -15
- package/dist/lib/picker.d.ts +6 -5
- package/dist/lib/placement.d.ts +3 -6
- package/dist/lib/placement.js +0 -17
- package/dist/lib/platform/posixpath.d.ts +2 -1
- package/dist/lib/platform/winpath.d.ts +2 -1
- package/dist/lib/plugins/plugin-marketplace.d.ts +2 -2
- package/dist/lib/plugins/plugin-marketplace.js +1 -1
- package/dist/lib/pr-land-detach.d.ts +2 -1
- package/dist/lib/probe.d.ts +4 -1
- package/dist/lib/probe.js +5 -2
- package/dist/lib/profiles-presets.d.ts +2 -1
- package/dist/lib/profiles.d.ts +3 -9
- package/dist/lib/profiles.js +1 -9
- package/dist/lib/project-doctor.d.ts +2 -1
- package/dist/lib/project-launch.d.ts +2 -2
- package/dist/lib/project-probe.d.ts +4 -3
- package/dist/lib/project-pull.d.ts +2 -1
- package/dist/lib/project-resources.d.ts +2 -2
- package/dist/lib/project-resources.js +1 -1
- package/dist/lib/project-root.d.ts +2 -6
- package/dist/lib/project-root.js +1 -1
- package/dist/lib/project-schedule.d.ts +2 -1
- package/dist/lib/project-status.d.ts +2 -16
- package/dist/lib/project-status.js +3 -3
- package/dist/lib/pwsh.d.ts +33 -0
- package/dist/lib/pwsh.js +56 -0
- package/dist/lib/reconcile-and-repair.d.ts +5 -4
- package/dist/lib/redact.d.ts +15 -1
- package/dist/lib/redact.js +105 -3
- package/dist/lib/refresh-coordinator.d.ts +2 -1
- package/dist/lib/refresh.d.ts +9 -4
- package/dist/lib/refresh.js +92 -72
- package/dist/lib/remote-agents-json.d.ts +3 -2
- package/dist/lib/reserved-stores.d.ts +0 -2
- package/dist/lib/reserved-stores.js +3 -5
- package/dist/lib/resource-content-diff.d.ts +0 -2
- package/dist/lib/resource-content-diff.js +1 -1
- package/dist/lib/resource-patterns.d.ts +2 -1
- package/dist/lib/resource-profiles.d.ts +2 -8
- package/dist/lib/resource-profiles.js +3 -27
- package/dist/lib/resources/workflows.d.ts +1 -1
- package/dist/lib/resources.d.ts +4 -9
- package/dist/lib/resources.js +1 -1
- package/dist/lib/routine-context.d.ts +2 -5
- package/dist/lib/routine-context.js +2 -2
- package/dist/lib/routine-notify-owner.d.ts +8 -7
- package/dist/lib/routine-notify-owner.js +5 -5
- package/dist/lib/routine-process-cleanup.d.ts +2 -1
- package/dist/lib/routine-readiness.d.ts +0 -2
- package/dist/lib/routine-readiness.js +0 -7
- package/dist/lib/routines-project.d.ts +3 -4
- package/dist/lib/routines-project.js +1 -1
- package/dist/lib/rules/compile.d.ts +3 -25
- package/dist/lib/rules/compile.js +1 -1
- package/dist/lib/rules/compose.d.ts +3 -9
- package/dist/lib/rules/rules.d.ts +4 -15
- package/dist/lib/rules/rules.js +1 -64
- package/dist/lib/run-defaults.d.ts +1 -1
- package/dist/lib/run-notify.d.ts +2 -1
- package/dist/lib/run-trace-sync.d.ts +1 -1
- package/dist/lib/run-trace-sync.js +1 -1
- package/dist/lib/scheduler.d.ts +2 -1
- package/dist/lib/scheduling/routines.d.ts +9 -21
- package/dist/lib/scheduling/routines.js +3 -46
- package/dist/lib/secrets-cli.d.ts +11 -0
- package/dist/lib/secrets-cli.js +30 -0
- package/dist/lib/secrets-client.d.ts +0 -17
- package/dist/lib/secrets-client.js +7 -28
- package/dist/lib/secrets-policy.d.ts +12 -17
- package/dist/lib/secrets-policy.js +5 -5
- package/dist/lib/secrets-types.d.ts +3 -2
- package/dist/lib/secrets-types.js +2 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -1
- package/dist/lib/self-heal/registry.d.ts +3 -2
- package/dist/lib/self-heal/types.d.ts +1 -1
- package/dist/lib/self-heal/types.js +1 -1
- package/dist/lib/self-update.d.ts +5 -5
- package/dist/lib/self-update.js +4 -4
- package/dist/lib/session/actor-sidecar.d.ts +3 -2
- package/dist/lib/session/artifacts.d.ts +0 -2
- package/dist/lib/session/artifacts.js +1 -1
- package/dist/lib/session/bash-command.d.ts +2 -7
- package/dist/lib/session/bundle.d.ts +4 -6
- package/dist/lib/session/bundle.js +1 -5
- package/dist/lib/session/cloud.d.ts +0 -4
- package/dist/lib/session/cloud.js +2 -15
- package/dist/lib/session/detached.d.ts +9 -1
- package/dist/lib/session/detached.js +31 -2
- package/dist/lib/session/digest.d.ts +2 -2
- package/dist/lib/session/digest.js +1 -1
- package/dist/lib/session/fork.d.ts +3 -2
- package/dist/lib/session/highlights.d.ts +6 -5
- package/dist/lib/session/hook-sessions.d.ts +2 -1
- package/dist/lib/session/host-link.d.ts +2 -1
- package/dist/lib/session/inject.d.ts +1 -1
- package/dist/lib/session/inject.js +1 -1
- package/dist/lib/session/insights.d.ts +3 -15
- package/dist/lib/session/insights.js +2 -2
- package/dist/lib/session/local-tmux-attach.d.ts +2 -18
- package/dist/lib/session/local-tmux-attach.js +1 -1
- package/dist/lib/session/migrations.d.ts +0 -1
- package/dist/lib/session/migrations.js +1 -1
- package/dist/lib/session/mirror.d.ts +5 -8
- package/dist/lib/session/mirror.js +2 -2
- package/dist/lib/session/parse.d.ts +1 -32
- package/dist/lib/session/parse.js +4 -4
- package/dist/lib/session/presence.d.ts +2 -1
- package/dist/lib/session/prompt.d.ts +3 -2
- package/dist/lib/session/prompt.js +38 -1
- package/dist/lib/session/recovery.d.ts +3 -2
- package/dist/lib/session/remote/peer-stream.d.ts +26 -7
- package/dist/lib/session/remote/peer-stream.js +35 -8
- package/dist/lib/session/remote/remote-bundle.d.ts +2 -1
- package/dist/lib/session/remote/remote-list.d.ts +5 -5
- package/dist/lib/session/remote/remote.d.ts +4 -3
- package/dist/lib/session/remote/watch.d.ts +2 -7
- package/dist/lib/session/remote/watch.js +3 -3
- package/dist/lib/session/remote-active.d.ts +2 -1
- package/dist/lib/session/render.d.ts +2 -2
- package/dist/lib/session/render.js +1 -1
- package/dist/lib/session/resume-owner.d.ts +1 -1
- package/dist/lib/session/resume-owner.js +1 -1
- package/dist/lib/session/run-names.d.ts +2 -1
- package/dist/lib/session/session-cache.d.ts +7 -26
- package/dist/lib/session/session-cache.js +2 -8
- package/dist/lib/session/share-html.d.ts +1 -21
- package/dist/lib/session/share-html.js +1 -1
- package/dist/lib/session/shell-programs.d.ts +2 -1
- package/dist/lib/session/state.d.ts +41 -8
- package/dist/lib/session/state.js +112 -11
- package/dist/lib/session/stream-render.d.ts +2 -1
- package/dist/lib/session/sync/agents.d.ts +0 -4
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +8 -8
- package/dist/lib/session/sync/backend.js +3 -3
- package/dist/lib/session/sync/managed-config.d.ts +0 -8
- package/dist/lib/session/sync/managed-key.d.ts +0 -2
- package/dist/lib/session/sync/managed-key.js +1 -1
- package/dist/lib/session/sync/provision.d.ts +1 -1
- package/dist/lib/session/sync/provision.js +2 -2
- package/dist/lib/session/sync/r2.d.ts +4 -1
- package/dist/lib/session/sync/r2.js +4 -7
- package/dist/lib/session/sync/transcript-crypto.d.ts +2 -1
- package/dist/lib/session/tail.d.ts +2 -1
- package/dist/lib/session/team-filter.d.ts +1 -1
- package/dist/lib/session/throughput.d.ts +2 -3
- package/dist/lib/session/throughput.js +1 -1
- package/dist/lib/session/timeline-pass.d.ts +3 -42
- package/dist/lib/session/timeline-pass.js +4 -4
- package/dist/lib/session/timeline.d.ts +3 -13
- package/dist/lib/session/timeline.js +3 -3
- package/dist/lib/session/tool-calls.d.ts +2 -2
- package/dist/lib/session/tool-calls.js +1 -1
- package/dist/lib/session/tool-index.d.ts +0 -8
- package/dist/lib/session/tool-index.js +2 -2
- package/dist/lib/session/tool-store.d.ts +2 -1
- package/dist/lib/session/trajectory-compare.d.ts +2 -1
- package/dist/lib/session/trajectory-lineage.d.ts +2 -1
- package/dist/lib/session/trajectory-text.d.ts +3 -2
- package/dist/lib/session/trajectory.d.ts +2 -1
- package/dist/lib/session/viewing-in.d.ts +2 -1
- package/dist/lib/sessions-client.js +0 -3
- package/dist/lib/settings-manifest.d.ts +2 -1
- package/dist/lib/setup-tool-install.d.ts +3 -0
- package/dist/lib/setup-tool-install.js +26 -0
- package/dist/lib/setup-tool-status.d.ts +22 -0
- package/dist/lib/setup-tool-status.js +215 -0
- package/dist/lib/share-runtime.d.ts +11 -0
- package/dist/lib/share-runtime.js +63 -0
- package/dist/lib/shim-heal.d.ts +1 -5
- package/dist/lib/shim-heal.js +0 -6
- package/dist/lib/smart-launch.d.ts +5 -10
- package/dist/lib/smart-launch.js +4 -12
- package/dist/lib/snapshot.d.ts +3 -2
- package/dist/lib/ssh-exec.d.ts +49 -4
- package/dist/lib/ssh-exec.js +119 -0
- package/dist/lib/ssh-tunnel.d.ts +3 -2
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -2
- package/dist/lib/staleness/checkers/permissions.js +1 -1
- package/dist/lib/staleness/fingerprint.d.ts +0 -7
- package/dist/lib/staleness/fingerprint.js +1 -1
- package/dist/lib/staleness/prune.d.ts +3 -2
- package/dist/lib/staleness/registry.d.ts +1 -1
- package/dist/lib/staleness/writers/sources.d.ts +0 -8
- package/dist/lib/staleness/writers/sources.js +1 -1
- package/dist/lib/startup/command-registry.d.ts +6 -4
- package/dist/lib/startup/command-registry.js +11 -8
- package/dist/lib/state.d.ts +1 -3
- package/dist/lib/state.js +3 -6
- package/dist/lib/storage/selection.d.ts +2 -2
- package/dist/lib/storage/selection.js +2 -2
- package/dist/lib/subagents-registry.d.ts +4 -3
- package/dist/lib/subagents.d.ts +2 -1
- package/dist/lib/subagents.js +3 -2
- package/dist/lib/summarizer/pass.d.ts +3 -6
- package/dist/lib/summarizer/pass.js +2 -2
- package/dist/lib/summarizer/summarize.d.ts +4 -3
- package/dist/lib/sync-passphrase.d.ts +3 -2
- package/dist/lib/sync-status.d.ts +3 -16
- package/dist/lib/sync-status.js +2 -2
- package/dist/lib/sync-umbrella.d.ts +9 -3
- package/dist/lib/sync-umbrella.js +18 -10
- package/dist/lib/system-run-sync.d.ts +2 -1
- package/dist/lib/teams/agents.d.ts +2 -4
- package/dist/lib/teams/agents.js +1 -1
- package/dist/lib/teams/forEach.d.ts +3 -2
- package/dist/lib/teams/pr-watch.d.ts +4 -11
- package/dist/lib/teams/pr-watch.js +4 -4
- package/dist/lib/teams/registry.d.ts +2 -3
- package/dist/lib/teams/registry.js +1 -1
- package/dist/lib/teams/remoteWorktree.d.ts +0 -16
- package/dist/lib/teams/remoteWorktree.js +3 -3
- package/dist/lib/teams/scheduler.d.ts +6 -5
- package/dist/lib/teams/scheduler.js +1 -1
- package/dist/lib/teams/supervisor.d.ts +4 -3
- package/dist/lib/teams/worktree.d.ts +0 -9
- package/dist/lib/teams/worktree.js +0 -32
- package/dist/lib/term-client.d.ts +44 -0
- package/dist/lib/term-client.js +117 -0
- package/dist/lib/terminal/inject.d.ts +3 -16
- package/dist/lib/terminal/inject.js +1 -29
- package/dist/lib/terminal/resolve.d.ts +3 -9
- package/dist/lib/terminal/resolve.js +3 -7
- package/dist/lib/tmux/binary.d.ts +2 -1
- package/dist/lib/tmux/orphan-reap.d.ts +6 -7
- package/dist/lib/tmux/orphan-reap.js +1 -1
- package/dist/lib/tmux/session.d.ts +4 -3
- package/dist/lib/traces/backend.d.ts +1 -2
- package/dist/lib/traces/backend.js +1 -2
- package/dist/lib/traces/classify.d.ts +3 -2
- package/dist/lib/traces/config.d.ts +0 -8
- package/dist/lib/traces/insights.d.ts +2 -1
- package/dist/lib/traces/phenotype.d.ts +3 -3
- package/dist/lib/traces/provision.d.ts +2 -4
- package/dist/lib/traces/provision.js +3 -3
- package/dist/lib/traces/schema2-build.d.ts +1 -1
- package/dist/lib/traces/schema2-danger.d.ts +2 -1
- package/dist/lib/traces/schema2.d.ts +5 -4
- package/dist/lib/traces/segments.d.ts +4 -20
- package/dist/lib/traces/segments.js +3 -3
- package/dist/lib/traces/sync.d.ts +2 -3
- package/dist/lib/traces/sync.js +1 -1
- package/dist/lib/triggers/handlers.d.ts +4 -13
- package/dist/lib/triggers/handlers.js +1 -1
- package/dist/lib/triggers/webhook.d.ts +5 -27
- package/dist/lib/triggers/webhook.js +4 -4
- package/dist/lib/types.d.ts +11 -9
- package/dist/lib/usage-refresh.d.ts +4 -10
- package/dist/lib/usage-refresh.js +3 -8
- package/dist/lib/verbs.d.ts +2 -1
- package/dist/lib/version-duplicates.d.ts +2 -3
- package/dist/lib/version-duplicates.js +3 -33
- package/dist/lib/version.d.ts +2 -1
- package/dist/lib/warn-unpushed.d.ts +2 -1
- package/dist/lib/watchdog/history.d.ts +3 -2
- package/dist/lib/watchdog/log.d.ts +0 -6
- package/dist/lib/watchdog/log.js +1 -1
- package/dist/lib/watchdog/rotate.d.ts +2 -26
- package/dist/lib/watchdog/rotate.js +4 -12
- package/dist/lib/watchdog/runner.d.ts +0 -7
- package/dist/lib/watchdog/runner.js +4 -4
- package/dist/lib/watchdog/service.d.ts +2 -2
- package/dist/lib/watchdog/service.js +1 -1
- package/dist/lib/watchdog/watchdog-agent.d.ts +2 -1
- package/dist/lib/watchdog/watchdog.d.ts +2 -1
- package/dist/lib/watchdog/watchdogTail.d.ts +2 -1
- package/dist/lib/workflows-registry.d.ts +3 -2
- package/dist/lib/workflows.d.ts +4 -7
- package/dist/lib/workflows.js +1 -1
- package/dist/lib/worktree/held.d.ts +4 -28
- package/dist/lib/worktree/held.js +3 -3
- package/package.json +3 -5
- package/scripts/postinstall.js +5 -4
- package/dist/commands/artifacts-setup.d.ts +0 -53
- package/dist/commands/artifacts-setup.js +0 -161
- package/dist/commands/artifacts.d.ts +0 -18
- package/dist/commands/artifacts.js +0 -58
- package/dist/commands/attach.d.ts +0 -12
- package/dist/commands/attach.js +0 -86
- package/dist/commands/auth-mint.d.ts +0 -12
- package/dist/commands/auth-mint.js +0 -108
- package/dist/commands/pty.d.ts +0 -20
- package/dist/commands/pty.js +0 -404
- package/dist/commands/reconnect.d.ts +0 -46
- package/dist/commands/reconnect.js +0 -115
- package/dist/commands/share.d.ts +0 -293
- package/dist/commands/share.js +0 -1424
- package/dist/lib/config-machine-keys.d.ts +0 -14
- package/dist/lib/config-machine-keys.js +0 -21
- package/dist/lib/pty-client.d.ts +0 -49
- package/dist/lib/pty-client.js +0 -315
- package/dist/lib/pty-server.d.ts +0 -59
- package/dist/lib/pty-server.js +0 -653
- package/dist/lib/share/analytics.d.ts +0 -13
- package/dist/lib/share/analytics.js +0 -45
- package/dist/lib/share/backend.d.ts +0 -120
- package/dist/lib/share/backend.js +0 -176
- package/dist/lib/share/capture.d.ts +0 -31
- package/dist/lib/share/capture.js +0 -174
- package/dist/lib/share/config.d.ts +0 -72
- package/dist/lib/share/config.js +0 -211
- package/dist/lib/share/delete.d.ts +0 -122
- package/dist/lib/share/delete.js +0 -173
- package/dist/lib/share/html.d.ts +0 -22
- package/dist/lib/share/html.js +0 -88
- package/dist/lib/share/http-error.d.ts +0 -52
- package/dist/lib/share/http-error.js +0 -65
- package/dist/lib/share/og.d.ts +0 -25
- package/dist/lib/share/og.js +0 -84
- package/dist/lib/share/provision.d.ts +0 -127
- package/dist/lib/share/provision.js +0 -285
- package/dist/lib/share/publish.d.ts +0 -388
- package/dist/lib/share/publish.js +0 -818
- package/dist/lib/share/worker-template.d.ts +0 -27
- package/dist/lib/share/worker-template.js +0 -2424
- package/dist/lib/storage/index.d.ts +0 -14
- package/dist/lib/storage/index.js +0 -14
- package/dist/lib/storage/visibility.d.ts +0 -82
- package/dist/lib/storage/visibility.js +0 -99
|
@@ -34,8 +34,8 @@ import type { DeviceProfile } from '../devices/registry.js';
|
|
|
34
34
|
*/
|
|
35
35
|
export declare const OWNER_FORWARD_GUARD_ENV = "AGENTS_OWNER_NO_FORWARD";
|
|
36
36
|
/** Why forwarding did not run, so a caller/test can assert the decision. */
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
type OwnerForwardSkip = 'guarded' | 'not-rush-backed' | 'no-capable-peer';
|
|
38
|
+
interface OwnerForwardPlan {
|
|
39
39
|
/** Ordered machine ids to try — capable (macOS), reachable, self excluded. */
|
|
40
40
|
candidates: string[];
|
|
41
41
|
/** Set when forwarding does not apply; the caller keeps its local error. */
|
|
@@ -70,11 +70,11 @@ export declare function planOwnerForward(channel: string, meta: Meta, devices: D
|
|
|
70
70
|
* unreachable / not a dialable device / answered with unparseable output —
|
|
71
71
|
* every one of which means "try the next peer".
|
|
72
72
|
*/
|
|
73
|
-
|
|
73
|
+
interface PeerOwnerEnvelope {
|
|
74
74
|
thread?: string;
|
|
75
75
|
from?: string;
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
type PeerOwnerSender = (machine: string, text: string, channel: string, target: string, envelope?: PeerOwnerEnvelope) => Promise<SendResult | undefined>;
|
|
78
78
|
/**
|
|
79
79
|
* Try each capable peer in order and return the first successful delivery. A
|
|
80
80
|
* peer that is unreachable or reports its own delivery failure is skipped and
|
|
@@ -92,3 +92,4 @@ export declare function forwardOwnerNotifyToPeer(text: string, channel: string,
|
|
|
92
92
|
send?: PeerOwnerSender;
|
|
93
93
|
envelope?: PeerOwnerEnvelope;
|
|
94
94
|
}): Promise<SendResult | undefined>;
|
|
95
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Owner-delivery-sink reachability probe (RUSH-2262).
|
|
3
3
|
*
|
|
4
|
-
* The feed/notify owner-delivery lane (`agents
|
|
4
|
+
* The feed/notify owner-delivery lane (`agents send --to owner`, `agents feed post
|
|
5
5
|
* --level important` / `--blocked`) reaches the owner over the rush-backed owner
|
|
6
6
|
* channel (iMessage via `rush message send`). That transport can only deliver
|
|
7
7
|
* from a context that BOTH finds the `rush` CLI on PATH and can read its
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* reads that file — checking it is the mistake that made a signed-in box look
|
|
27
27
|
* signed out.
|
|
28
28
|
*
|
|
29
|
-
* `agents
|
|
29
|
+
* `agents send --to owner --dry-run` is NOT this probe: it short-circuits before the
|
|
30
30
|
* `which rush` preflight (`providers/rush.ts`), so it reports `ok:true` on a box
|
|
31
31
|
* with no rush at all. Resolvability (does the envelope build?) and reachability
|
|
32
32
|
* (can this box actually deliver?) are different questions; this answers the
|
|
@@ -106,7 +106,7 @@ export const desktopProvider = {
|
|
|
106
106
|
async send(text, opts) {
|
|
107
107
|
// `target` is meaningless for a local notification — the recipient is whoever
|
|
108
108
|
// is at this machine — but it is echoed for --json parity with every other
|
|
109
|
-
// provider, and `agents
|
|
109
|
+
// provider, and `agents send --to owner` still requires notify.owner.to to be set.
|
|
110
110
|
const id = opts.target || os.hostname();
|
|
111
111
|
// Order matters, and CI caught it: validate the CALLER first, then honour
|
|
112
112
|
// dry-run, and only then probe the platform.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ChannelProvider, SendOptions } from '../registry.js';
|
|
2
|
-
|
|
2
|
+
type RushChannel = 'telegram' | 'imessage' | 'slack' | 'discord';
|
|
3
3
|
export declare const RUSH_CHANNELS: RushChannel[];
|
|
4
4
|
/** Build the `rush send` argv (exported for tests). */
|
|
5
5
|
export declare function buildRushSendArgs(channel: RushChannel, text: string, opts: SendOptions): string[];
|
|
6
6
|
/** Build the owner-scoped iMessage argv. */
|
|
7
7
|
export declare function buildRushOwnerMessageArgs(text: string): string[];
|
|
8
8
|
export declare const rushProviders: ChannelProvider[];
|
|
9
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Channel-provider registry for `agents send
|
|
2
|
+
* Channel-provider registry for `agents send`.
|
|
3
3
|
*
|
|
4
4
|
* One primitive, many channels. A provider knows how to deliver a message over
|
|
5
5
|
* exactly one channel — the agent mailbox, a rush-daemon gateway (telegram /
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Channel-provider registry for `agents send
|
|
2
|
+
* Channel-provider registry for `agents send`.
|
|
3
3
|
*
|
|
4
4
|
* One primitive, many channels. A provider knows how to deliver a message over
|
|
5
5
|
* exactly one channel — the agent mailbox, a rush-daemon gateway (telegram /
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
* Two entry points, deliberately: `lookupTransport` *returns* the failure, for
|
|
10
10
|
* long-lived callers (the monitor daemon, the feed-dispatch loop) that must
|
|
11
11
|
* survive a bad channel name; `resolveTransport` `die()`s on it, for the
|
|
12
|
-
* interactive `agents send`
|
|
12
|
+
* interactive `agents send` command path where exiting with a
|
|
13
13
|
* loud message is the right answer. Never give a daemon the dying one.
|
|
14
14
|
*/
|
|
15
15
|
import type { Meta } from '../types.js';
|
|
16
16
|
import { type ChannelProvider } from './registry.js';
|
|
17
|
-
|
|
17
|
+
interface TransportLookup {
|
|
18
18
|
/** Provider name after applying the `notify.transports` mapping. */
|
|
19
19
|
providerName: string;
|
|
20
20
|
/** Registered provider, or undefined when `providerName` resolves to nothing. */
|
|
@@ -26,3 +26,4 @@ export interface TransportLookup {
|
|
|
26
26
|
export declare function lookupTransport(channel: string, meta: Meta): TransportLookup;
|
|
27
27
|
/** Interactive-command resolution: an unregistered provider dies loud. */
|
|
28
28
|
export declare function resolveTransport(channel: string, meta: Meta): ChannelProvider;
|
|
29
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Delivery envelope for `agents send
|
|
2
|
+
* Delivery envelope for `agents send`.
|
|
3
3
|
*
|
|
4
4
|
* One primitive: resolve a destination (channel + target), compose text + urls +
|
|
5
5
|
* attachments, hand off to a channel provider. `notify` is the same path with
|
|
@@ -12,7 +12,7 @@ import type { Meta } from '../types.js';
|
|
|
12
12
|
import type { SendResult } from './registry.js';
|
|
13
13
|
import type { SinkMessageFormat } from '../sink-format.js';
|
|
14
14
|
/** Normalized delivery request after CLI/config resolution. */
|
|
15
|
-
|
|
15
|
+
interface SendEnvelope {
|
|
16
16
|
text: string;
|
|
17
17
|
channel: string;
|
|
18
18
|
to: string;
|
|
@@ -45,12 +45,12 @@ export interface ResolveSendInput {
|
|
|
45
45
|
from?: string;
|
|
46
46
|
dryRun?: boolean;
|
|
47
47
|
/**
|
|
48
|
-
* When true (
|
|
48
|
+
* When true (a feed owner sink), missing channel/to default to `notify.owner`.
|
|
49
49
|
* Explicit flags still win.
|
|
50
50
|
*/
|
|
51
51
|
ownerMode?: boolean;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
type ResolveSendResult = {
|
|
54
54
|
ok: true;
|
|
55
55
|
envelope: SendEnvelope;
|
|
56
56
|
} | {
|
|
@@ -94,3 +94,4 @@ export declare function sendMessage(input: ResolveSendInput, meta: Meta, ownerCo
|
|
|
94
94
|
} | {
|
|
95
95
|
error: string;
|
|
96
96
|
}>;
|
|
97
|
+
export {};
|
|
@@ -51,19 +51,12 @@ export interface CliManifest {
|
|
|
51
51
|
path: string;
|
|
52
52
|
}
|
|
53
53
|
/** A validation problem in a CLI manifest. */
|
|
54
|
-
|
|
54
|
+
interface CliManifestError {
|
|
55
55
|
/** Filename that failed to parse. */
|
|
56
56
|
file: string;
|
|
57
57
|
/** Human-readable reason. */
|
|
58
58
|
reason: string;
|
|
59
59
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Parse a `check:` field into a CheckSpec. Accepts either a structured object
|
|
62
|
-
* (`{ kind: 'which'|'version', cmd, args? }`) or a legacy whitespace-separated
|
|
63
|
-
* string. String form is split on whitespace and each token is validated against
|
|
64
|
-
* SAFE_CHECK_TOKEN — manifests cannot smuggle in shell metacharacters.
|
|
65
|
-
*/
|
|
66
|
-
export declare function parseCheckSpec(raw: unknown, defaultName: string): CheckSpec;
|
|
67
60
|
/**
|
|
68
61
|
* Parse a single CLI manifest from its YAML contents.
|
|
69
62
|
* Returns a manifest on success; throws on schema violations so callers can
|
|
@@ -151,7 +144,7 @@ export declare function buildInstallCommand(method: InstallMethod): string;
|
|
|
151
144
|
export declare function installCli(manifest: CliManifest, opts?: {
|
|
152
145
|
dryRun?: boolean;
|
|
153
146
|
}): InstallResult;
|
|
154
|
-
|
|
147
|
+
interface CliStatus {
|
|
155
148
|
manifest: CliManifest;
|
|
156
149
|
installed: boolean;
|
|
157
150
|
}
|
|
@@ -171,3 +164,4 @@ export declare function listCliStatusAsync(cwd?: string): Promise<{
|
|
|
171
164
|
statuses: CliStatus[];
|
|
172
165
|
errors: CliManifestError[];
|
|
173
166
|
}>;
|
|
167
|
+
export {};
|
|
@@ -23,6 +23,7 @@ import * as yaml from 'yaml';
|
|
|
23
23
|
import { listResources, resolveResource } from './resources.js';
|
|
24
24
|
import { probeCapture } from './probe.js';
|
|
25
25
|
import { composeWin32CommandLine } from './platform/index.js';
|
|
26
|
+
import { execFileShellSpec } from './platform/exec.js';
|
|
26
27
|
import { localBinDir } from './platform/posixpath.js';
|
|
27
28
|
// ─── Validation primitives ───────────────────────────────────────────────────
|
|
28
29
|
/** Token allowed inside `check:` strings — letters, digits, underscore, dot, slash, dash. */
|
|
@@ -72,7 +73,7 @@ function assertSafePathSegment(seg) {
|
|
|
72
73
|
* string. String form is split on whitespace and each token is validated against
|
|
73
74
|
* SAFE_CHECK_TOKEN — manifests cannot smuggle in shell metacharacters.
|
|
74
75
|
*/
|
|
75
|
-
|
|
76
|
+
function parseCheckSpec(raw, defaultName) {
|
|
76
77
|
if (raw == null) {
|
|
77
78
|
assertSafeCheckToken(defaultName);
|
|
78
79
|
return { kind: 'version', cmd: defaultName, args: ['--version'] };
|
|
@@ -457,7 +458,8 @@ export function buildInstallCommand(method) {
|
|
|
457
458
|
function runInstallMethod(method) {
|
|
458
459
|
if ('npm' in method) {
|
|
459
460
|
assertNpmPackage(method.npm);
|
|
460
|
-
const
|
|
461
|
+
const invocation = execFileShellSpec('npm', ['install', '-g', method.npm]);
|
|
462
|
+
const r = spawnSync(invocation.command, invocation.args, { stdio: 'inherit', shell: invocation.shell });
|
|
461
463
|
if (r.status !== 0) {
|
|
462
464
|
throw new Error(`npm install -g ${method.npm} exited with status ${r.status ?? 'unknown'}`);
|
|
463
465
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/** Cursor Cloud Agents provider backed by the public v1 REST API. */
|
|
2
2
|
import type { CloudEvent, CloudProvider, CloudTask, CloudTaskStatus, DispatchOptions, ProviderCapabilities } from './types.js';
|
|
3
|
-
export declare const CURSOR_API_BASE_URL = "https://api.cursor.com/v1";
|
|
4
3
|
interface CursorAgent {
|
|
5
4
|
id: string;
|
|
6
5
|
name?: string;
|
|
@@ -29,7 +28,7 @@ interface CursorRun {
|
|
|
29
28
|
}>;
|
|
30
29
|
};
|
|
31
30
|
}
|
|
32
|
-
|
|
31
|
+
interface CursorCreateBody {
|
|
33
32
|
prompt: {
|
|
34
33
|
text: string;
|
|
35
34
|
images?: Array<{
|
package/dist/lib/cloud/cursor.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Cursor Cloud Agents provider backed by the public v1 REST API. */
|
|
2
2
|
import { normalizeProviderStatus, resolveDispatchRepos } from './types.js';
|
|
3
3
|
import { readAndResolveBundleEnv } from '../secrets-client.js';
|
|
4
|
-
|
|
4
|
+
const CURSOR_API_BASE_URL = 'https://api.cursor.com/v1';
|
|
5
5
|
const KEY_NAME = 'CURSOR_API_KEY';
|
|
6
6
|
/** Translate unified dispatch options into Cursor's documented v1 create shape. */
|
|
7
7
|
export function buildCursorCreateBody(options) {
|
|
@@ -7,7 +7,7 @@ export declare function resolveCloudPrompt(raw: string | undefined, opts: {
|
|
|
7
7
|
json: boolean;
|
|
8
8
|
hint: string;
|
|
9
9
|
}): string;
|
|
10
|
-
|
|
10
|
+
interface ExecuteCloudDispatchParams {
|
|
11
11
|
provider: CloudProvider;
|
|
12
12
|
dispatchOptions: DispatchOptions;
|
|
13
13
|
/** Image file paths for vision dispatch (checked against provider capability). */
|
|
@@ -25,3 +25,4 @@ export interface ExecuteCloudDispatchParams {
|
|
|
25
25
|
* kill-switch. Dies on any dispatch failure — callers never see a partial.
|
|
26
26
|
*/
|
|
27
27
|
export declare function executeCloudDispatch(params: ExecuteCloudDispatchParams): Promise<void>;
|
|
28
|
+
export {};
|
|
@@ -16,7 +16,7 @@ import { insertTask, updateTaskStatus } from './store.js';
|
|
|
16
16
|
import { renderStream } from './stream.js';
|
|
17
17
|
import { MissingTargetError, MAX_IMAGES_PER_DISPATCH } from './types.js';
|
|
18
18
|
import { emit } from '../feed/events.js';
|
|
19
|
-
import { shareRuntimeEnv } from '../share
|
|
19
|
+
import { shareRuntimeEnv } from '../share-runtime.js';
|
|
20
20
|
/** Map a supported image file extension to its wire mimeType. Rejects anything else. */
|
|
21
21
|
function imageMimeFromPath(file) {
|
|
22
22
|
const ext = path.extname(file).toLowerCase();
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
* message rather than misfiring when unconfigured.
|
|
21
21
|
*/
|
|
22
22
|
import type { CloudProvider, CloudTask, CloudTaskStatus, CloudEvent, CloudTarget, DispatchOptions, ProviderCapabilities, DroidAutonomy } from './types.js';
|
|
23
|
-
/** Locate the droid binary, checking agents-cli shims first then PATH. */
|
|
24
|
-
export declare function findDroidBinary(): string | null;
|
|
25
23
|
/** Normalize an autonomy value, falling back to the safe cloud default (`high`). */
|
|
26
24
|
export declare function resolveAutonomy(value: unknown, fallback?: DroidAutonomy): DroidAutonomy;
|
|
27
25
|
/**
|
|
@@ -29,7 +29,7 @@ const SHIMS_DIR = getShimsDir();
|
|
|
29
29
|
const DEFAULT_AUTONOMY = 'high';
|
|
30
30
|
const VALID_AUTONOMY = new Set(['low', 'medium', 'high']);
|
|
31
31
|
/** Locate the droid binary, checking agents-cli shims first then PATH. */
|
|
32
|
-
|
|
32
|
+
function findDroidBinary() {
|
|
33
33
|
const shim = path.join(SHIMS_DIR, 'droid');
|
|
34
34
|
if (fs.existsSync(shim))
|
|
35
35
|
return shim;
|
package/dist/lib/cloud/rush.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare function isRushSessionValid(yamlPath?: string): boolean;
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function readToken(yamlPath?: string): string;
|
|
23
23
|
/** One version's entry in the account manifest sent on every dispatch. */
|
|
24
|
-
|
|
24
|
+
interface AccountManifestEntry {
|
|
25
25
|
version: string;
|
|
26
26
|
email: string;
|
|
27
27
|
}
|
|
@@ -36,19 +36,10 @@ export interface AccountManifestEntry {
|
|
|
36
36
|
* cloud. Dispatch fails loud and steers to a portable provider account instead
|
|
37
37
|
* (see the 401 handler in `dispatch()`).
|
|
38
38
|
*/
|
|
39
|
-
|
|
39
|
+
interface AccountManifest {
|
|
40
40
|
fp: string;
|
|
41
41
|
versions: AccountManifestEntry[];
|
|
42
42
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Build a manifest of the user's local Claude installations to send on every
|
|
45
|
-
* cloud dispatch. The manifest is the contract the server uses to detect when
|
|
46
|
-
* the user has added a new account or rotated a token.
|
|
47
|
-
*
|
|
48
|
-
* Returns null when no Claude versions are signed in (the dispatch falls back
|
|
49
|
-
* to the platform-wide key, current behavior).
|
|
50
|
-
*/
|
|
51
|
-
export declare function buildAccountManifest(strategy?: string): Promise<AccountManifest | null>;
|
|
52
43
|
/**
|
|
53
44
|
* Build the POST body for /api/v1/cloud-runs. Exported so tests can verify
|
|
54
45
|
* the back-compat shape (singular fields + repos[]) without needing real
|
|
@@ -93,3 +84,4 @@ export declare class RushCloudProvider implements CloudProvider {
|
|
|
93
84
|
cancel(taskId: string): Promise<void>;
|
|
94
85
|
message(taskId: string, content: string): Promise<void>;
|
|
95
86
|
}
|
|
87
|
+
export {};
|
package/dist/lib/cloud/rush.js
CHANGED
|
@@ -153,7 +153,7 @@ function parsePromptCode(body) {
|
|
|
153
153
|
* Returns null when no Claude versions are signed in (the dispatch falls back
|
|
154
154
|
* to the platform-wide key, current behavior).
|
|
155
155
|
*/
|
|
156
|
-
|
|
156
|
+
async function buildAccountManifest(strategy) {
|
|
157
157
|
let candidateVersions;
|
|
158
158
|
if (strategy === 'balanced') {
|
|
159
159
|
// Use the same health-checked, deduped-by-email set that `agents run --balanced` uses.
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import type { CloudTask } from './types.js';
|
|
20
20
|
/** Context a cloud task needs to become a session row — the LOCAL dir it was launched from. */
|
|
21
|
-
|
|
21
|
+
interface CloudSessionContext {
|
|
22
22
|
/** Local directory `agents cloud run` was invoked from. Defaults to process.cwd(). */
|
|
23
23
|
cwd?: string;
|
|
24
24
|
}
|
|
@@ -30,3 +30,4 @@ export interface CloudSessionContext {
|
|
|
30
30
|
* failed index write must never break the dispatch/poll it rides on.
|
|
31
31
|
*/
|
|
32
32
|
export declare function registerCloudSession(task: CloudTask, ctx?: CloudSessionContext): void;
|
|
33
|
+
export {};
|
|
@@ -31,7 +31,7 @@ export type CloudProviderId = 'rush' | 'codex' | 'factory' | 'antigravity' | 'cu
|
|
|
31
31
|
*/
|
|
32
32
|
export type CloudTaskStatus = 'queued' | 'allocating' | 'running' | 'idle' | 'input_required' | 'completed' | 'failed' | 'cancelled';
|
|
33
33
|
/** Cloud backends whose wire status is normalized by `normalizeProviderStatus`. */
|
|
34
|
-
|
|
34
|
+
type StatusNormalizingProvider = 'rush' | 'codex' | 'antigravity' | 'cursor';
|
|
35
35
|
/**
|
|
36
36
|
* Normalize a provider's raw wire status into the canonical `CloudTaskStatus`.
|
|
37
37
|
*
|
|
@@ -313,3 +313,4 @@ export interface CloudConfig {
|
|
|
313
313
|
default_provider?: CloudProviderId;
|
|
314
314
|
providers?: CloudProviderConfig;
|
|
315
315
|
}
|
|
316
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const DEFAULT_CF_BUNDLE = "cloudflare";
|
|
2
|
+
/** Cloudflare API credentials for provisioning, read from `cloudflare` (or a
|
|
3
|
+
* user-named bundle). Fuzzy-matches key names so it works across bundle layouts. */
|
|
4
|
+
export declare function readCloudflareCreds(bundle?: string, override?: {
|
|
5
|
+
apiToken?: string;
|
|
6
|
+
accountId?: string;
|
|
7
|
+
}): {
|
|
8
|
+
apiToken: string;
|
|
9
|
+
accountId: string;
|
|
10
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Cloudflare API credential glue, shared by the commands that provision or read
|
|
2
|
+
// Cloudflare-backed endpoints (`agents traces`, `agents sessions backup`).
|
|
3
|
+
//
|
|
4
|
+
// This used to live in `lib/share/config.ts` alongside the embedded artifact
|
|
5
|
+
// share engine. The share engine moved out to `@phnx-labs/artifacts-cli`
|
|
6
|
+
// (PHNX-3992); `readCloudflareCreds` stayed because it is a generic Cloudflare
|
|
7
|
+
// util that `traces`/`sessions backup` borrow, unrelated to sharing.
|
|
8
|
+
import { bundleExistsSync as bundleExists, readAndResolveBundleEnvSync as readAndResolveBundleEnv, } from '../secrets-client.js';
|
|
9
|
+
export const DEFAULT_CF_BUNDLE = 'cloudflare';
|
|
10
|
+
/** Cloudflare API credentials for provisioning, read from `cloudflare` (or a
|
|
11
|
+
* user-named bundle). Fuzzy-matches key names so it works across bundle layouts. */
|
|
12
|
+
export function readCloudflareCreds(bundle = DEFAULT_CF_BUNDLE, override) {
|
|
13
|
+
// Explicit --token/--account bypass the bundle entirely (robust escape hatch).
|
|
14
|
+
if (override?.apiToken) {
|
|
15
|
+
return { apiToken: override.apiToken, accountId: override.accountId ?? '' };
|
|
16
|
+
}
|
|
17
|
+
// Check existence first: resolving a missing bundle through the process client
|
|
18
|
+
// surfaces an opaque transport code (e.g. LOCKED), never naming the bundle the
|
|
19
|
+
// user typed — so name it here.
|
|
20
|
+
if (!bundleExists(bundle)) {
|
|
21
|
+
throw new Error(`The '${bundle}' bundle does not exist. ` +
|
|
22
|
+
`Pass credentials directly with --token <t> [--account <id>], or create it: ` +
|
|
23
|
+
`agents secrets add ${bundle} CLOUDFLARE_API_TOKEN`);
|
|
24
|
+
}
|
|
25
|
+
const { env } = readAndResolveBundleEnv(bundle, {
|
|
26
|
+
caller: 'cloudflare',
|
|
27
|
+
// Setup is still a read; only `agents secrets unlock` may authenticate.
|
|
28
|
+
agentOnly: true,
|
|
29
|
+
});
|
|
30
|
+
const find = (re) => {
|
|
31
|
+
for (const [k, v] of Object.entries(env))
|
|
32
|
+
if (re.test(k) && v)
|
|
33
|
+
return v;
|
|
34
|
+
return '';
|
|
35
|
+
};
|
|
36
|
+
const apiToken = env.CLOUDFLARE_API_TOKEN || env.CF_API_TOKEN || find(/API[_-]?TOKEN|(?:^|_)TOKEN$/i);
|
|
37
|
+
const accountId = override?.accountId || env.CLOUDFLARE_ACCOUNT_ID || env.CF_ACCOUNT_ID || find(/ACCOUNT[_-]?ID/i);
|
|
38
|
+
if (!apiToken) {
|
|
39
|
+
const keys = Object.keys(env);
|
|
40
|
+
throw new Error(`No Cloudflare API token in the '${bundle}' bundle ` +
|
|
41
|
+
`(keys present: ${keys.length ? keys.join(', ') : 'none'}). ` +
|
|
42
|
+
`Pass it directly with --token <t> [--account <id>], or add it: ` +
|
|
43
|
+
`agents secrets add ${bundle} CLOUDFLARE_API_TOKEN`);
|
|
44
|
+
}
|
|
45
|
+
return { apiToken, accountId };
|
|
46
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** One compiled non-JS Worker module (e.g. WASM) uploaded alongside the script. */
|
|
2
|
+
export interface WorkerModule {
|
|
3
|
+
name: string;
|
|
4
|
+
contentType: string;
|
|
5
|
+
contents: Uint8Array<ArrayBuffer>;
|
|
6
|
+
}
|
|
7
|
+
/** A Worker script plus any extra modules to upload with it. */
|
|
8
|
+
export interface WorkerBundle {
|
|
9
|
+
script: string;
|
|
10
|
+
modules: WorkerModule[];
|
|
11
|
+
}
|
|
12
|
+
export interface CloudflareRequest {
|
|
13
|
+
apiToken: string;
|
|
14
|
+
method: string;
|
|
15
|
+
pathname: string;
|
|
16
|
+
body?: unknown;
|
|
17
|
+
form?: FormData;
|
|
18
|
+
}
|
|
19
|
+
export type CloudflareRequester = <T = unknown>(request: CloudflareRequest) => Promise<T>;
|
|
20
|
+
interface ProvisionOptions {
|
|
21
|
+
request?: CloudflareRequester;
|
|
22
|
+
}
|
|
23
|
+
/** Create the R2 bucket (idempotent). */
|
|
24
|
+
export declare function createBucket(apiToken: string, accountId: string, name: string, opts?: ProvisionOptions): Promise<void>;
|
|
25
|
+
/** Upload the module Worker with an R2 binding (`BUCKET`). Secrets are set via the Workers Secrets API. */
|
|
26
|
+
export declare function deployWorker(apiToken: string, accountId: string, workerName: string, worker: string | WorkerBundle, bucketName: string, opts?: ProvisionOptions): Promise<void>;
|
|
27
|
+
/** Add/update a secret_text binding using Cloudflare's Workers Secrets API. */
|
|
28
|
+
export declare function putWorkerSecret(apiToken: string, accountId: string, workerName: string, name: string, text: string, opts?: ProvisionOptions): Promise<void>;
|
|
29
|
+
/** Enable the free `*.workers.dev` route for the script, and return the account subdomain. */
|
|
30
|
+
export declare function enableWorkersDev(apiToken: string, accountId: string, workerName: string, opts?: ProvisionOptions): Promise<string>;
|
|
31
|
+
/** Resolve a zone id for a domain the token can see, or null if not owned/visible. */
|
|
32
|
+
export declare function findZoneId(apiToken: string, domain: string, opts?: ProvisionOptions): Promise<string | null>;
|
|
33
|
+
/** Map a custom hostname (e.g. `share.getrush.ai`) to the Worker via Workers Custom Domains. */
|
|
34
|
+
export declare function addCustomDomain(apiToken: string, accountId: string, workerName: string, zoneId: string, hostname: string, opts?: ProvisionOptions): Promise<void>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// Generic Cloudflare orchestration — plain `fetch` against the CF REST API (the
|
|
2
|
+
// repo has no CF wrapper). Create an R2 bucket, upload a module Worker with an R2
|
|
3
|
+
// binding, set secrets via the Workers Secrets API, enable the free
|
|
4
|
+
// `*.workers.dev` subdomain, and map a custom domain when the token owns the zone.
|
|
5
|
+
//
|
|
6
|
+
// This was `lib/share/provision.ts`. The artifact share engine moved out to
|
|
7
|
+
// `@phnx-labs/artifacts-cli` (PHNX-3992), but `agents traces` provisions its own
|
|
8
|
+
// isolated Cloudflare-backed store with the SAME primitives — so the generic
|
|
9
|
+
// layer relocated here (share-specific lifecycle/collab/managed helpers left
|
|
10
|
+
// with the share engine). `traces/provision.ts` is now the only consumer.
|
|
11
|
+
const CF_API = 'https://api.cloudflare.com/client/v4';
|
|
12
|
+
async function cf(apiToken, method, pathname, body, form) {
|
|
13
|
+
const headers = { authorization: `Bearer ${apiToken}` };
|
|
14
|
+
let payload;
|
|
15
|
+
if (form) {
|
|
16
|
+
payload = form; // fetch sets multipart boundary
|
|
17
|
+
}
|
|
18
|
+
else if (body !== undefined) {
|
|
19
|
+
headers['content-type'] = 'application/json';
|
|
20
|
+
payload = JSON.stringify(body);
|
|
21
|
+
}
|
|
22
|
+
const res = await fetch(`${CF_API}${pathname}`, { method, headers, body: payload });
|
|
23
|
+
const json = (await res.json().catch(() => ({})));
|
|
24
|
+
if (!res.ok || json.success === false) {
|
|
25
|
+
const msg = (json.errors ?? []).map((e) => `${e.code ?? ''} ${e.message ?? ''}`.trim()).join('; ') ||
|
|
26
|
+
res.statusText;
|
|
27
|
+
throw new Error(`Cloudflare ${method} ${pathname} failed (${res.status}): ${msg}`);
|
|
28
|
+
}
|
|
29
|
+
return json.result;
|
|
30
|
+
}
|
|
31
|
+
const defaultCloudflareRequester = (request) => cf(request.apiToken, request.method, request.pathname, request.body, request.form);
|
|
32
|
+
/** True if the CF error looks like "the thing already exists" (idempotent create). */
|
|
33
|
+
function isAlreadyExists(e) {
|
|
34
|
+
return /already exists|duplicate|10004|10014/i.test(String(e));
|
|
35
|
+
}
|
|
36
|
+
/** Create the R2 bucket (idempotent). */
|
|
37
|
+
export async function createBucket(apiToken, accountId, name, opts = {}) {
|
|
38
|
+
const request = opts.request ?? defaultCloudflareRequester;
|
|
39
|
+
try {
|
|
40
|
+
await request({
|
|
41
|
+
apiToken,
|
|
42
|
+
method: 'POST',
|
|
43
|
+
pathname: `/accounts/${accountId}/r2/buckets`,
|
|
44
|
+
body: { name },
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
if (!isAlreadyExists(e))
|
|
49
|
+
throw e;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** Upload the module Worker with an R2 binding (`BUCKET`). Secrets are set via the Workers Secrets API. */
|
|
53
|
+
export async function deployWorker(apiToken, accountId, workerName, worker, bucketName, opts = {}) {
|
|
54
|
+
const request = opts.request ?? defaultCloudflareRequester;
|
|
55
|
+
const metadata = {
|
|
56
|
+
main_module: 'worker.js',
|
|
57
|
+
compatibility_date: '2024-11-06',
|
|
58
|
+
bindings: [
|
|
59
|
+
{ type: 'r2_bucket', name: 'BUCKET', bucket_name: bucketName },
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
const form = new FormData();
|
|
63
|
+
form.set('metadata', new Blob([JSON.stringify(metadata)], { type: 'application/json' }));
|
|
64
|
+
const bundle = typeof worker === 'string' ? { script: worker, modules: [] } : worker;
|
|
65
|
+
form.set('worker.js', new Blob([bundle.script], { type: 'application/javascript+module' }), 'worker.js');
|
|
66
|
+
for (const module of bundle.modules) {
|
|
67
|
+
form.set(module.name, new Blob([module.contents], { type: module.contentType }), module.name);
|
|
68
|
+
}
|
|
69
|
+
await request({
|
|
70
|
+
apiToken,
|
|
71
|
+
method: 'PUT',
|
|
72
|
+
pathname: `/accounts/${accountId}/workers/scripts/${workerName}`,
|
|
73
|
+
form,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/** Add/update a secret_text binding using Cloudflare's Workers Secrets API. */
|
|
77
|
+
export async function putWorkerSecret(apiToken, accountId, workerName, name, text, opts = {}) {
|
|
78
|
+
const request = opts.request ?? defaultCloudflareRequester;
|
|
79
|
+
await request({
|
|
80
|
+
apiToken,
|
|
81
|
+
method: 'PUT',
|
|
82
|
+
pathname: `/accounts/${accountId}/workers/scripts/${workerName}/secrets`,
|
|
83
|
+
body: { name, text, type: 'secret_text' },
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/** Enable the free `*.workers.dev` route for the script, and return the account subdomain. */
|
|
87
|
+
export async function enableWorkersDev(apiToken, accountId, workerName, opts = {}) {
|
|
88
|
+
const request = opts.request ?? defaultCloudflareRequester;
|
|
89
|
+
await request({
|
|
90
|
+
apiToken,
|
|
91
|
+
method: 'POST',
|
|
92
|
+
pathname: `/accounts/${accountId}/workers/scripts/${workerName}/subdomain`,
|
|
93
|
+
body: {
|
|
94
|
+
enabled: true,
|
|
95
|
+
previews_enabled: false,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
const sub = await request({
|
|
99
|
+
apiToken,
|
|
100
|
+
method: 'GET',
|
|
101
|
+
pathname: `/accounts/${accountId}/workers/subdomain`,
|
|
102
|
+
});
|
|
103
|
+
if (!sub?.subdomain) {
|
|
104
|
+
throw new Error('No workers.dev subdomain on this account yet — register one at dash.cloudflare.com → Workers → Subdomain, then re-run.');
|
|
105
|
+
}
|
|
106
|
+
return sub.subdomain;
|
|
107
|
+
}
|
|
108
|
+
/** Resolve a zone id for a domain the token can see, or null if not owned/visible. */
|
|
109
|
+
export async function findZoneId(apiToken, domain, opts = {}) {
|
|
110
|
+
const request = opts.request ?? defaultCloudflareRequester;
|
|
111
|
+
// Try the exact name, then the registrable parent (share.getrush.ai -> getrush.ai).
|
|
112
|
+
const candidates = [domain, domain.split('.').slice(-2).join('.')];
|
|
113
|
+
for (const name of candidates) {
|
|
114
|
+
const zones = await request({
|
|
115
|
+
apiToken,
|
|
116
|
+
method: 'GET',
|
|
117
|
+
pathname: `/zones?name=${encodeURIComponent(name)}`,
|
|
118
|
+
}).catch(() => []);
|
|
119
|
+
if (zones?.length)
|
|
120
|
+
return zones[0].id;
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
/** Map a custom hostname (e.g. `share.getrush.ai`) to the Worker via Workers Custom Domains. */
|
|
125
|
+
export async function addCustomDomain(apiToken, accountId, workerName, zoneId, hostname, opts = {}) {
|
|
126
|
+
const request = opts.request ?? defaultCloudflareRequester;
|
|
127
|
+
try {
|
|
128
|
+
await request({
|
|
129
|
+
apiToken,
|
|
130
|
+
method: 'PUT',
|
|
131
|
+
pathname: `/accounts/${accountId}/workers/domains`,
|
|
132
|
+
body: {
|
|
133
|
+
zone_id: zoneId,
|
|
134
|
+
hostname,
|
|
135
|
+
service: workerName,
|
|
136
|
+
environment: 'production',
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
if (!isAlreadyExists(e))
|
|
142
|
+
throw e;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
type CodexPolicyMode = 'plan' | 'edit' | 'auto' | 'skip';
|
|
2
2
|
export declare const CODEX_PLAN_PROFILE = "agents-plan";
|
|
3
3
|
export declare const CODEX_EDIT_PROFILE = "agents-edit";
|
|
4
4
|
export declare const CODEX_AUTO_PROFILE = "agents-auto";
|
|
@@ -33,3 +33,4 @@ export declare function codexPolicyArgs(mode: CodexPolicyMode, writableRoots?: s
|
|
|
33
33
|
export declare function modeForRemoteDispatch(mode: string, source: string | undefined): string | undefined;
|
|
34
34
|
/** Only the untouched Commander default selects Codex's writable default. */
|
|
35
35
|
export declare function modeWasImplicit(source: string | undefined, hasConfiguredDefault: boolean): boolean;
|
|
36
|
+
export {};
|