@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
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// Public types
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
17
|
export const TASK_TYPES = ['bugfix', 'feature', 'refactor', 'test', 'chore', 'other'];
|
|
18
|
-
|
|
18
|
+
const FAILURE_TIMINGS = ['early', 'mid', 'late'];
|
|
19
19
|
// ---------------------------------------------------------------------------
|
|
20
20
|
// Tables — the classifiers. Add a row; do not add an if/else-by-name arm.
|
|
21
21
|
// ---------------------------------------------------------------------------
|
|
@@ -23,7 +23,7 @@ export const FAILURE_TIMINGS = ['early', 'mid', 'late'];
|
|
|
23
23
|
* Tool name → file action. Lowercased. Write-family is a new file; Edit-family
|
|
24
24
|
* is a patch. Anything else is ignored for diff-shape.
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
const FILE_ACTION_TOOLS = [
|
|
27
27
|
{ action: 'new', tools: ['write', 'write_file', 'create_file', 'create'] },
|
|
28
28
|
{ action: 'edit', tools: ['edit', 'strreplace', 'apply_patch', 'applypatch', 'notebookedit'] },
|
|
29
29
|
];
|
|
@@ -122,7 +122,7 @@ export const TASK_TYPE_RULES = [
|
|
|
122
122
|
* Normalized position of the first failing step inside the session span.
|
|
123
123
|
* Early failures cascade — highest-signal bucket. Exclusive upper bound.
|
|
124
124
|
*/
|
|
125
|
-
|
|
125
|
+
const FAILURE_TIMING_BUCKETS = [
|
|
126
126
|
{ timing: 'early', maxExclusive: 1 / 3 },
|
|
127
127
|
{ timing: 'mid', maxExclusive: 2 / 3 },
|
|
128
128
|
{ timing: 'late', maxExclusive: Number.POSITIVE_INFINITY },
|
|
@@ -208,7 +208,7 @@ export interface IndexedSession {
|
|
|
208
208
|
* list by corpus class and by harness. Refs on a topic tile are always `'agent'`
|
|
209
209
|
* (utility rows never reach a bucket), but the field is explicit for the consumer.
|
|
210
210
|
*/
|
|
211
|
-
|
|
211
|
+
interface TopicSessionRef {
|
|
212
212
|
id: string;
|
|
213
213
|
title: string;
|
|
214
214
|
kind: SessionKind;
|
|
@@ -222,7 +222,7 @@ export interface TopicSessionRef {
|
|
|
222
222
|
* work the Evals console counts and scores. Utility rows are tagged, never deleted,
|
|
223
223
|
* and excluded from every index statistic.
|
|
224
224
|
*/
|
|
225
|
-
|
|
225
|
+
type SessionKind = 'utility' | 'agent';
|
|
226
226
|
/**
|
|
227
227
|
* Classify a session as internal `utility` plumbing vs real `agent` work (PHNX-3474).
|
|
228
228
|
* `toolCallCount` is the AUTHORITATIVE per-session tool-call count from the loaded
|
|
@@ -389,7 +389,6 @@ interface SyncLedger {
|
|
|
389
389
|
failures?: SyncFailure[];
|
|
390
390
|
}
|
|
391
391
|
export declare function readSyncLedger(): SyncLedger;
|
|
392
|
-
export declare function writeSyncLedger(ledger: SyncLedger): void;
|
|
393
392
|
/**
|
|
394
393
|
* True once the user has run `agents traces sync` at least once (the ledger
|
|
395
394
|
* file exists). This is the opt-in signal the run-exit auto-sync gates on
|
package/dist/lib/traces/sync.js
CHANGED
|
@@ -817,7 +817,7 @@ export function readSyncLedger() {
|
|
|
817
817
|
return {};
|
|
818
818
|
}
|
|
819
819
|
}
|
|
820
|
-
|
|
820
|
+
function writeSyncLedger(ledger) {
|
|
821
821
|
const p = ledgerPath();
|
|
822
822
|
fs.mkdirSync(path.dirname(p), { recursive: true });
|
|
823
823
|
fs.writeFileSync(p, JSON.stringify(ledger, null, 2) + '\n', 'utf8');
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { JobConfig, RunMeta, WebhookContext } from '../scheduling/routines.js';
|
|
9
9
|
import type { AgentId } from '../types.js';
|
|
10
|
-
import type { IncomingWebhook,
|
|
10
|
+
import type { IncomingWebhook, WebhookSource } from './webhook.js';
|
|
11
11
|
export interface WebhookHandler {
|
|
12
12
|
name: string;
|
|
13
13
|
enabled?: boolean;
|
|
@@ -69,7 +69,7 @@ export interface FiredHandler {
|
|
|
69
69
|
exitCode?: number;
|
|
70
70
|
output?: string;
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
interface HandlerHostResolution {
|
|
73
73
|
/** Resolved execution host, or undefined to run locally. */
|
|
74
74
|
host?: string;
|
|
75
75
|
/** Strategy that should be set on the JobConfig. */
|
|
@@ -124,23 +124,13 @@ export interface SlackMessageContext {
|
|
|
124
124
|
*/
|
|
125
125
|
response_url: string;
|
|
126
126
|
}
|
|
127
|
-
/**
|
|
128
|
-
* Split a Slack message into a `{{slack.*}}` context. Strips a leading bot
|
|
129
|
-
* mention (`<@U0BOT> …`), then reads an optional `PROJECT:` prefix — a single
|
|
130
|
-
* bare token followed by a colon and a space — as the project, with the
|
|
131
|
-
* remainder the prompt. `AGI: rebase my PR` → project `AGI`, prompt
|
|
132
|
-
* `rebase my PR`; a message with no such prefix leaves `project` empty and the
|
|
133
|
-
* whole text as the prompt. The token pattern forbids slashes, so a project
|
|
134
|
-
* value can never carry a path into a `cwd`/`project` substitution.
|
|
135
|
-
*/
|
|
136
|
-
export declare function parseSlackMessage(payload: SlackPayload): SlackMessageContext;
|
|
137
127
|
/**
|
|
138
128
|
* Build the variable-substitution context for a webhook. Linear events expose
|
|
139
129
|
* `issue` and `updatedFrom`; GitHub events expose `repository`, `pull_request`,
|
|
140
130
|
* and `issue`; Slack events expose the `{{slack.*}}` namespace above.
|
|
141
131
|
*/
|
|
142
132
|
export declare function buildWebhookContext(webhook: IncomingWebhook): WebhookContext;
|
|
143
|
-
|
|
133
|
+
interface ExecuteHandlerOptions {
|
|
144
134
|
dispatchAgent?: (config: JobConfig) => Promise<RunMeta>;
|
|
145
135
|
dispatchWorkflow?: (config: JobConfig) => Promise<RunMeta>;
|
|
146
136
|
execCommand?: (command: string) => Promise<{
|
|
@@ -155,3 +145,4 @@ export interface ExecuteHandlerOptions {
|
|
|
155
145
|
* context.
|
|
156
146
|
*/
|
|
157
147
|
export declare function executeHandler(handler: WebhookHandler, webhook: IncomingWebhook, opts?: ExecuteHandlerOptions): Promise<FiredHandler>;
|
|
148
|
+
export {};
|
|
@@ -283,7 +283,7 @@ const asString = (v) => (typeof v === 'string' ? v : '');
|
|
|
283
283
|
* whole text as the prompt. The token pattern forbids slashes, so a project
|
|
284
284
|
* value can never carry a path into a `cwd`/`project` substitution.
|
|
285
285
|
*/
|
|
286
|
-
|
|
286
|
+
function parseSlackMessage(payload) {
|
|
287
287
|
const cleaned = asString(payload.text).replace(/^\s*<@[^>]+>\s*/, '').trim();
|
|
288
288
|
const m = /^([A-Za-z0-9][\w.-]*)\s*:\s+([\s\S]+)$/.exec(cleaned);
|
|
289
289
|
return {
|
|
@@ -26,15 +26,6 @@ export interface IncomingWebhook {
|
|
|
26
26
|
* {@link SlackPayload} for a Slack slash command's form body). */
|
|
27
27
|
payload: Record<string, unknown>;
|
|
28
28
|
}
|
|
29
|
-
export type GithubWebhook = IncomingWebhook & {
|
|
30
|
-
source: 'github';
|
|
31
|
-
};
|
|
32
|
-
export type LinearWebhook = IncomingWebhook & {
|
|
33
|
-
source: 'linear';
|
|
34
|
-
};
|
|
35
|
-
export type SlackWebhook = IncomingWebhook & {
|
|
36
|
-
source: 'slack';
|
|
37
|
-
};
|
|
38
29
|
/** Read `repository.full_name` (`owner/name`) from a webhook payload, if present. */
|
|
39
30
|
export declare function webhookRepo(payload: Record<string, unknown>): string | null;
|
|
40
31
|
/**
|
|
@@ -78,21 +69,10 @@ export interface FireWebhookOptions {
|
|
|
78
69
|
context?: WebhookContext;
|
|
79
70
|
}
|
|
80
71
|
/** Result of firing one matched job. */
|
|
81
|
-
|
|
72
|
+
interface FiredJob {
|
|
82
73
|
jobName: string;
|
|
83
74
|
runId: string;
|
|
84
75
|
}
|
|
85
|
-
export declare class WebhookDispatchError extends Error {
|
|
86
|
-
readonly fired: FiredJob[];
|
|
87
|
-
readonly failures: {
|
|
88
|
-
jobName: string;
|
|
89
|
-
error: Error;
|
|
90
|
-
}[];
|
|
91
|
-
constructor(message: string, fired: FiredJob[], failures: {
|
|
92
|
-
jobName: string;
|
|
93
|
-
error: Error;
|
|
94
|
-
}[]);
|
|
95
|
-
}
|
|
96
76
|
/**
|
|
97
77
|
* Match an incoming webhook against the persisted routines and fire each match
|
|
98
78
|
* through the cron dispatch path. Returns one entry per fired job.
|
|
@@ -100,7 +80,6 @@ export declare class WebhookDispatchError extends Error {
|
|
|
100
80
|
export declare function fireWebhookJobs(webhook: IncomingWebhook, options?: FireWebhookOptions): Promise<FiredJob[]>;
|
|
101
81
|
export declare function verifyGithubSignature(headers: IncomingHttpHeaders, rawBody: Buffer, secret: string): boolean;
|
|
102
82
|
export declare function verifyLinearSignature(headers: IncomingHttpHeaders, rawBody: Buffer, secret: string): boolean;
|
|
103
|
-
export declare function verifyLinearTimestamp(payload: Record<string, unknown>, now?: number, toleranceMs?: number): boolean;
|
|
104
83
|
/**
|
|
105
84
|
* Verify a Slack request signature (the `v0` scheme). Slack signs the base
|
|
106
85
|
* string `v0:${timestamp}:${rawBody}` with the app's signing secret and sends
|
|
@@ -155,13 +134,12 @@ export interface WebhookSecrets {
|
|
|
155
134
|
linear?: string;
|
|
156
135
|
slack?: string;
|
|
157
136
|
}
|
|
158
|
-
|
|
137
|
+
interface DeliveryStore {
|
|
159
138
|
seen(id: string): boolean;
|
|
160
139
|
mark(id: string): void;
|
|
161
140
|
completedJobs(id: string): ReadonlySet<string>;
|
|
162
141
|
markJob(id: string, jobName: string): void;
|
|
163
142
|
}
|
|
164
|
-
export declare function createMemoryDeliveryStore(maxEntries?: number): DeliveryStore;
|
|
165
143
|
/**
|
|
166
144
|
* A durable, disk-backed delivery store. Unlike `createMemoryDeliveryStore`,
|
|
167
145
|
* seen delivery ids survive a process restart and are bounded by AGE, not by a
|
|
@@ -174,10 +152,9 @@ export declare function createMemoryDeliveryStore(maxEntries?: number): Delivery
|
|
|
174
152
|
* source will not legitimately retry a delivery that old.
|
|
175
153
|
*/
|
|
176
154
|
export declare function createFileDeliveryStore(filePath: string, retentionMs?: number): DeliveryStore;
|
|
177
|
-
|
|
155
|
+
interface RateLimiter {
|
|
178
156
|
take(key: string): boolean;
|
|
179
157
|
}
|
|
180
|
-
export declare function createMemoryRateLimiter(limit: number, windowMs: number): RateLimiter;
|
|
181
158
|
/**
|
|
182
159
|
* Resolve once a receiver is actually accepting connections, REJECT if the bind
|
|
183
160
|
* failed. `server.listen()` reports a bind failure (EADDRINUSE, EACCES) as an
|
|
@@ -188,7 +165,7 @@ export declare function createMemoryRateLimiter(limit: number, windowMs: number)
|
|
|
188
165
|
*/
|
|
189
166
|
export declare function waitForListening(server: http.Server): Promise<void>;
|
|
190
167
|
/** Options for the local webhook http listener. */
|
|
191
|
-
|
|
168
|
+
interface WebhookServerOptions {
|
|
192
169
|
port?: number;
|
|
193
170
|
host?: string;
|
|
194
171
|
/** HMAC signing secrets keyed by source. */
|
|
@@ -261,3 +238,4 @@ export interface WebhookServerOptions {
|
|
|
261
238
|
* Returns the underlying server so callers can `close()` it.
|
|
262
239
|
*/
|
|
263
240
|
export declare function startWebhookServer(options: WebhookServerOptions): http.Server;
|
|
241
|
+
export {};
|
|
@@ -193,7 +193,7 @@ export function jobMatchesWebhook(job, webhook) {
|
|
|
193
193
|
export function matchJobsToWebhook(jobs, webhook) {
|
|
194
194
|
return jobs.filter((job) => job.enabled !== false && jobRunsOnThisDevice(job) && jobMatchesWebhook(job, webhook));
|
|
195
195
|
}
|
|
196
|
-
|
|
196
|
+
class WebhookDispatchError extends Error {
|
|
197
197
|
fired;
|
|
198
198
|
failures;
|
|
199
199
|
constructor(message, fired, failures) {
|
|
@@ -260,7 +260,7 @@ export function verifyGithubSignature(headers, rawBody, secret) {
|
|
|
260
260
|
export function verifyLinearSignature(headers, rawBody, secret) {
|
|
261
261
|
return timingSafeHexEqual(header(headers, 'linear-signature'), hmacHex(secret, rawBody));
|
|
262
262
|
}
|
|
263
|
-
|
|
263
|
+
function verifyLinearTimestamp(payload, now = Date.now(), toleranceMs = 60_000) {
|
|
264
264
|
const ts = payload.webhookTimestamp;
|
|
265
265
|
return typeof ts === 'number' && Math.abs(now - ts) <= toleranceMs;
|
|
266
266
|
}
|
|
@@ -334,7 +334,7 @@ export function slackEventName(payload) {
|
|
|
334
334
|
return payload.command ?? 'slash_command';
|
|
335
335
|
return payload.event_type ?? payload.type;
|
|
336
336
|
}
|
|
337
|
-
|
|
337
|
+
function createMemoryDeliveryStore(maxEntries = 1000) {
|
|
338
338
|
const seen = new Map();
|
|
339
339
|
const touch = (id) => {
|
|
340
340
|
let current = seen.get(id);
|
|
@@ -451,7 +451,7 @@ export function createFileDeliveryStore(filePath, retentionMs = 14 * 24 * 60 * 6
|
|
|
451
451
|
},
|
|
452
452
|
};
|
|
453
453
|
}
|
|
454
|
-
|
|
454
|
+
function createMemoryRateLimiter(limit, windowMs) {
|
|
455
455
|
const buckets = new Map();
|
|
456
456
|
return {
|
|
457
457
|
take: (key) => {
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1001,7 +1001,7 @@ export interface Meta {
|
|
|
1001
1001
|
/**
|
|
1002
1002
|
* `agents feed post` fan-out. `broadcast` maps a sink name to either an argv
|
|
1003
1003
|
* template (`command:`, run for each post) or an in-process channel delivery
|
|
1004
|
-
* (`channel:`, the same registry `agents send
|
|
1004
|
+
* (`channel:`, the same registry `agents send` use). Channel
|
|
1005
1005
|
* sinks may set `message:` with feed placeholders; a missing placeholder
|
|
1006
1006
|
* skips that sink, so `{ticket}` cleanly gates a tracker-specific channel. Thus
|
|
1007
1007
|
* mirroring to a tracker, a messaging CLI, or a channel provider is the
|
|
@@ -1142,9 +1142,12 @@ export interface Meta {
|
|
|
1142
1142
|
discovery?: Record<string, 'approved' | 'ignored'>;
|
|
1143
1143
|
ignored?: import('./fleet/types.js').IgnoredDeviceEntry[];
|
|
1144
1144
|
};
|
|
1145
|
-
/**
|
|
1146
|
-
*
|
|
1147
|
-
*
|
|
1145
|
+
/** Legacy artifact-share endpoint (Cloudflare R2 + Worker), synced fleet-wide
|
|
1146
|
+
* via `agents repo push/pull`. Artifact sharing moved to the standalone
|
|
1147
|
+
* `artifacts` CLI (PHNX-3992), so agents-cli no longer writes this — but
|
|
1148
|
+
* `shareRuntimeEnv` (`lib/share-runtime.ts`) still reads `baseUrl` to decide
|
|
1149
|
+
* whether to inject the `share` bundle's write token into spawned agents. The
|
|
1150
|
+
* write token lives in the `share` secrets bundle, not here. */
|
|
1148
1151
|
share?: {
|
|
1149
1152
|
baseUrl?: string;
|
|
1150
1153
|
accountId?: string;
|
|
@@ -1153,14 +1156,13 @@ export interface Meta {
|
|
|
1153
1156
|
domain?: string;
|
|
1154
1157
|
/** Cloudflare Web Analytics token injected into published HTML pages. */
|
|
1155
1158
|
analyticsToken?: string;
|
|
1156
|
-
/** sha256 of the Worker script deployed at the last provision/update
|
|
1157
|
-
*
|
|
1158
|
-
* from before this field existed has no hash — always "unknown"). */
|
|
1159
|
+
/** sha256 of the Worker script deployed at the last provision/update
|
|
1160
|
+
* (legacy; a config from before this field existed has no hash). */
|
|
1159
1161
|
templateHash?: string;
|
|
1160
1162
|
};
|
|
1161
1163
|
/**
|
|
1162
|
-
* Owner/channel notification config for `agents send
|
|
1163
|
-
* `owner` is the address expanded by `--to owner` and by `agents
|
|
1164
|
+
* Owner/channel notification config for `agents send`.
|
|
1165
|
+
* `owner` is the address expanded by `--to owner` and by `agents send --to owner`
|
|
1164
1166
|
* (channel + target). `transports` maps a user-facing channel name to the
|
|
1165
1167
|
* provider that actually delivers it — explicit, one provider per channel,
|
|
1166
1168
|
* no fallback. Omitted keys default to name-identity (channel `slack` ->
|
|
@@ -8,10 +8,6 @@ import { type ConfiguredDeviceRole } from './device-config.js';
|
|
|
8
8
|
* let an idle account rot longer than 5 minutes between attempts.
|
|
9
9
|
*/
|
|
10
10
|
export declare const REFRESH_INTERVAL_MS: number;
|
|
11
|
-
/** @deprecated alias — use {@link REFRESH_INTERVAL_MS}. Kept for test imports. */
|
|
12
|
-
export declare const REFRESH_MIN_MS: number;
|
|
13
|
-
/** @deprecated alias — use {@link REFRESH_INTERVAL_MS}. Kept for test imports. */
|
|
14
|
-
export declare const REFRESH_MAX_MS: number;
|
|
15
11
|
/** Burn-rate divisor retained for the pure delay helper / tests; with min=max
|
|
16
12
|
* the divisor does not change the scheduled interval. */
|
|
17
13
|
export declare const REFRESH_BURN_DIVISOR = 4;
|
|
@@ -68,7 +64,6 @@ export declare const PROVIDER_CATCHUP_MAX = 2;
|
|
|
68
64
|
* re-refresh it. Actively-used accounts stay current at zero endpoint cost, so
|
|
69
65
|
* the proactive budget is reserved for genuinely idle accounts.
|
|
70
66
|
*/
|
|
71
|
-
export declare const STATUSLINE_FRESH_MS: number;
|
|
72
67
|
/** Consecutive failed live reads before one broken account is quarantined. */
|
|
73
68
|
export declare const FAILURE_QUARANTINE_THRESHOLD = 3;
|
|
74
69
|
/** A chronic offender waits this long while healthy siblings keep their cadence. */
|
|
@@ -95,8 +90,6 @@ export interface HeadroomEntry {
|
|
|
95
90
|
consecutiveFailures?: number;
|
|
96
91
|
}
|
|
97
92
|
export declare function setHeadroomCachePathForTest(cachePath: string | null): string | null;
|
|
98
|
-
/** Read the whole headroom cache (best-effort; missing/corrupt → empty map). */
|
|
99
|
-
export declare function readHeadroomCache(): Record<string, HeadroomEntry>;
|
|
100
93
|
/** Read one account's headroom entry, or null. */
|
|
101
94
|
export declare function readHeadroomEntry(usageKey: string): HeadroomEntry | null;
|
|
102
95
|
/** Merge entries into the cache (best-effort; preserves other accounts' rows). */
|
|
@@ -190,7 +183,7 @@ export declare function pollerClaimsFromSharedStore(selfDevice: string, userAgen
|
|
|
190
183
|
*/
|
|
191
184
|
export declare function trySpendUsageApiCall(usageKey: string, agentId: AgentId, now: number): boolean;
|
|
192
185
|
/** An account whose credentials live on the publisher host. */
|
|
193
|
-
|
|
186
|
+
interface LocalUsageAccount {
|
|
194
187
|
usageKey: string;
|
|
195
188
|
agentId: AgentId;
|
|
196
189
|
/**
|
|
@@ -235,7 +228,7 @@ export interface BuildLocalUsageAccountsOpts {
|
|
|
235
228
|
*/
|
|
236
229
|
export declare function buildLocalUsageAccounts(opts?: BuildLocalUsageAccountsOpts): Promise<LocalUsageAccount[]>;
|
|
237
230
|
/** Injectable side effects, so `runUsageRefresh` is drivable without the daemon. */
|
|
238
|
-
|
|
231
|
+
interface UsageRefreshDeps {
|
|
239
232
|
now?: number;
|
|
240
233
|
/** Local-credential accounts to consider (one per unique usage key). */
|
|
241
234
|
listAccounts: () => Promise<LocalUsageAccount[]>;
|
|
@@ -264,7 +257,7 @@ export interface UsageRefreshDeps {
|
|
|
264
257
|
/** Fire after at least one snapshot was written (push-on-change). */
|
|
265
258
|
onSnapshotsChanged?: (usageKeys: string[]) => Promise<void> | void;
|
|
266
259
|
}
|
|
267
|
-
|
|
260
|
+
interface UsageRefreshResult {
|
|
268
261
|
refreshed: number;
|
|
269
262
|
skippedNotDue: number;
|
|
270
263
|
skippedBackoff: number;
|
|
@@ -282,3 +275,4 @@ export interface UsageRefreshResult {
|
|
|
282
275
|
* failed fetch leaves its cache untouched and counts as `failed`.
|
|
283
276
|
*/
|
|
284
277
|
export declare function runUsageRefresh(deps: UsageRefreshDeps): Promise<UsageRefreshResult>;
|
|
278
|
+
export {};
|
|
@@ -65,10 +65,6 @@ import { USAGE_SYNC_INTERVAL_MS } from './accounting/usage-sync.js';
|
|
|
65
65
|
* let an idle account rot longer than 5 minutes between attempts.
|
|
66
66
|
*/
|
|
67
67
|
export const REFRESH_INTERVAL_MS = 5 * 60 * 1000;
|
|
68
|
-
/** @deprecated alias — use {@link REFRESH_INTERVAL_MS}. Kept for test imports. */
|
|
69
|
-
export const REFRESH_MIN_MS = REFRESH_INTERVAL_MS;
|
|
70
|
-
/** @deprecated alias — use {@link REFRESH_INTERVAL_MS}. Kept for test imports. */
|
|
71
|
-
export const REFRESH_MAX_MS = REFRESH_INTERVAL_MS;
|
|
72
68
|
/** Burn-rate divisor retained for the pure delay helper / tests; with min=max
|
|
73
69
|
* the divisor does not change the scheduled interval. */
|
|
74
70
|
export const REFRESH_BURN_DIVISOR = 4;
|
|
@@ -126,7 +122,6 @@ export const PROVIDER_CATCHUP_MAX = 2;
|
|
|
126
122
|
* re-refresh it. Actively-used accounts stay current at zero endpoint cost, so
|
|
127
123
|
* the proactive budget is reserved for genuinely idle accounts.
|
|
128
124
|
*/
|
|
129
|
-
export const STATUSLINE_FRESH_MS = REFRESH_INTERVAL_MS;
|
|
130
125
|
/** Consecutive failed live reads before one broken account is quarantined. */
|
|
131
126
|
export const FAILURE_QUARANTINE_THRESHOLD = 3;
|
|
132
127
|
/** A chronic offender waits this long while healthy siblings keep their cadence. */
|
|
@@ -144,7 +139,7 @@ function headroomCachePath() {
|
|
|
144
139
|
return headroomCachePathOverride ?? path.join(getCacheDir(), '.usage-headroom.json');
|
|
145
140
|
}
|
|
146
141
|
/** Read the whole headroom cache (best-effort; missing/corrupt → empty map). */
|
|
147
|
-
|
|
142
|
+
function readHeadroomCache() {
|
|
148
143
|
try {
|
|
149
144
|
const parsed = JSON.parse(fs.readFileSync(headroomCachePath(), 'utf-8'));
|
|
150
145
|
if (parsed && parsed.entries && typeof parsed.entries === 'object')
|
|
@@ -254,7 +249,7 @@ function skippedHeadroomEntry(prev, usageKey, now, index) {
|
|
|
254
249
|
}
|
|
255
250
|
/**
|
|
256
251
|
* Reschedule an account we skipped because a free statusline ingest already
|
|
257
|
-
* captured it inside {@link
|
|
252
|
+
* captured it inside {@link REFRESH_INTERVAL_MS}. The statusline row IS a real,
|
|
258
253
|
* live sample, so RE-DERIVE headroom (status / minutesToLimit) from it against
|
|
259
254
|
* the prior sample — otherwise `status`/`minutesToLimit` would freeze at their
|
|
260
255
|
* last API-refresh value forever for exactly the actively-used accounts that
|
|
@@ -581,7 +576,7 @@ export async function runUsageRefresh(deps) {
|
|
|
581
576
|
if (network) {
|
|
582
577
|
const cached = deps.readCachedSnapshot?.(account.usageKey) ?? null;
|
|
583
578
|
const capturedAtMs = cached?.capturedAt?.getTime() ?? null;
|
|
584
|
-
if (cached && capturedAtMs !== null && now - capturedAtMs <
|
|
579
|
+
if (cached && capturedAtMs !== null && now - capturedAtMs < REFRESH_INTERVAL_MS) {
|
|
585
580
|
updates[account.usageKey] = freshHeadroomEntry(entry, cached, now, capturedAtMs);
|
|
586
581
|
result.skippedFresh += 1;
|
|
587
582
|
continue;
|
package/dist/lib/verbs.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare const CANONICAL_ALIASES: {
|
|
|
18
18
|
readonly rename: readonly ["mv"];
|
|
19
19
|
readonly edit: readonly [];
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
type CanonicalVerb = keyof typeof CANONICAL_ALIASES;
|
|
22
22
|
/** Apply the standard aliases for `verb` to an already-created subcommand, returning it. */
|
|
23
23
|
export declare function withAliases(cmd: Command, verb: CanonicalVerb): Command;
|
|
24
|
+
export {};
|
|
@@ -4,7 +4,7 @@ export interface VersionAccountEntry {
|
|
|
4
4
|
version: string;
|
|
5
5
|
info: AccountInfo;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
interface NewerDuplicateVersion {
|
|
8
8
|
version: string;
|
|
9
9
|
email: string | null;
|
|
10
10
|
plan: string | null;
|
|
@@ -15,7 +15,6 @@ export interface NewerDuplicateVersion {
|
|
|
15
15
|
* duplicate rule with tests.
|
|
16
16
|
*/
|
|
17
17
|
export declare function findNewerDuplicateVersions(entries: VersionAccountEntry[], selectedVersion: string): NewerDuplicateVersion[];
|
|
18
|
-
/** Collect account info for an agent and find newer duplicates of selectedVersion. */
|
|
19
|
-
export declare function getNewerDuplicateVersions(agentId: AgentId, selectedVersion: string): Promise<NewerDuplicateVersion[]>;
|
|
20
18
|
/** Format the non-interactive guidance shown by view/run when duplicates exist. */
|
|
21
19
|
export declare function formatNewerDuplicateNotice(agentId: AgentId, selectedVersion: string, duplicates: NewerDuplicateVersion[], selectedLabel?: string): string;
|
|
20
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import {
|
|
3
|
-
import { compareVersions
|
|
4
|
-
import {
|
|
2
|
+
import { agentLabel } from './agents.js';
|
|
3
|
+
import { compareVersions } from './installations/versions.js';
|
|
4
|
+
import { getUsageLookupKey } from './accounting/usage.js';
|
|
5
5
|
function duplicateIdentity(info) {
|
|
6
6
|
if (!info)
|
|
7
7
|
return null;
|
|
@@ -31,36 +31,6 @@ export function findNewerDuplicateVersions(entries, selectedVersion) {
|
|
|
31
31
|
plan: entry.info.plan,
|
|
32
32
|
}));
|
|
33
33
|
}
|
|
34
|
-
/** Collect account info for an agent and find newer duplicates of selectedVersion. */
|
|
35
|
-
export async function getNewerDuplicateVersions(agentId, selectedVersion) {
|
|
36
|
-
const rows = await Promise.all(listInstalledVersions(agentId).map(async (version) => {
|
|
37
|
-
const home = getVersionHomePath(agentId, version);
|
|
38
|
-
const info = await getAccountInfo(agentId, home);
|
|
39
|
-
return { version, home, info };
|
|
40
|
-
}));
|
|
41
|
-
const { canonicalByUsageKey } = buildCanonicalUsageContext(rows.map(({ version, home, info }) => ({
|
|
42
|
-
agentId,
|
|
43
|
-
home,
|
|
44
|
-
cliVersion: version,
|
|
45
|
-
info,
|
|
46
|
-
})));
|
|
47
|
-
const entries = rows.map(({ version, info }) => {
|
|
48
|
-
const key = getUsageLookupKey(info);
|
|
49
|
-
const canon = key ? canonicalByUsageKey.get(key) : undefined;
|
|
50
|
-
return {
|
|
51
|
-
version,
|
|
52
|
-
info: canon
|
|
53
|
-
? {
|
|
54
|
-
...info,
|
|
55
|
-
plan: canon.plan,
|
|
56
|
-
usageStatus: canon.usageStatus,
|
|
57
|
-
overageCredits: canon.overageCredits,
|
|
58
|
-
}
|
|
59
|
-
: info,
|
|
60
|
-
};
|
|
61
|
-
});
|
|
62
|
-
return findNewerDuplicateVersions(entries, selectedVersion);
|
|
63
|
-
}
|
|
64
34
|
/** Format the non-interactive guidance shown by view/run when duplicates exist. */
|
|
65
35
|
export function formatNewerDuplicateNotice(agentId, selectedVersion, duplicates, selectedLabel = '') {
|
|
66
36
|
if (duplicates.length === 0)
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* binary — see {@link resolveInstalledLayout}.
|
|
6
6
|
*/
|
|
7
7
|
export declare function resolveAgentsBin(): string | null;
|
|
8
|
-
|
|
8
|
+
interface InstallLayout {
|
|
9
9
|
/** The install's `dist/` directory (holds `index.js` + `lib/`). */
|
|
10
10
|
distDir: string;
|
|
11
11
|
/** The compiled CLI entry, `dist/index.js`. */
|
|
@@ -63,3 +63,4 @@ export declare function getCliVersion(pkgJsonPath?: string): string;
|
|
|
63
63
|
* 'unknown' on any error.
|
|
64
64
|
*/
|
|
65
65
|
export declare function getCliVersionFresh(pkgJsonPath?: string): string;
|
|
66
|
+
export {};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* the gate so every exit path in the run command applies it identically.
|
|
6
6
|
*/
|
|
7
7
|
export declare function shouldWarnUnpushed(mode: string, interactive: boolean): boolean;
|
|
8
|
-
|
|
8
|
+
interface UnpushedState {
|
|
9
9
|
/** cwd is inside a git work tree. */
|
|
10
10
|
isRepo: boolean;
|
|
11
11
|
/** current branch, or null when detached / not a repo. */
|
|
@@ -38,3 +38,4 @@ export declare function formatUnpushedWarning(state: UnpushedState, cwd: string)
|
|
|
38
38
|
* any failure is swallowed so it can never break a run's exit path.
|
|
39
39
|
*/
|
|
40
40
|
export declare function warnUnpushedWork(cwd: string): Promise<void>;
|
|
41
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { WatchdogEvent, WatchdogEventKind } from './log.js';
|
|
2
|
-
|
|
2
|
+
interface WatchdogHistoryEntry {
|
|
3
3
|
ts: number;
|
|
4
4
|
kind: WatchdogEventKind | 'inspection';
|
|
5
5
|
sessionId?: string;
|
|
@@ -9,7 +9,7 @@ export interface WatchdogHistoryEntry {
|
|
|
9
9
|
stalledForMs?: number;
|
|
10
10
|
nudgeText?: string;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
interface WatchdogHistoryOptions {
|
|
13
13
|
limit?: number;
|
|
14
14
|
sinceMs?: number;
|
|
15
15
|
sessionId?: string;
|
|
@@ -18,3 +18,4 @@ export interface WatchdogHistoryOptions {
|
|
|
18
18
|
}
|
|
19
19
|
/** Select newest history and deliberately remove raw transcript tailLines. */
|
|
20
20
|
export declare function selectWatchdogHistory(events: WatchdogEvent[], options?: WatchdogHistoryOptions): WatchdogHistoryEntry[];
|
|
21
|
+
export {};
|
|
@@ -34,12 +34,6 @@ export declare function parseWatchdogEvents(text: string): WatchdogEvent[];
|
|
|
34
34
|
export declare function readWatchdogEvents(logPath?: string): WatchdogEvent[];
|
|
35
35
|
/** Serialize one event to a JSONL line (no trailing newline). */
|
|
36
36
|
export declare function formatEvent(ev: WatchdogEvent): string;
|
|
37
|
-
/**
|
|
38
|
-
* Cap on retained log lines. Mirrors the Factory reader's expectation that the
|
|
39
|
-
* writer trims (watchdogLog.ts trimToLast). Large enough to keep a useful
|
|
40
|
-
* history, small enough to bound the file the UI polls.
|
|
41
|
-
*/
|
|
42
|
-
export declare const WATCHDOG_LOG_MAX_LINES = 5000;
|
|
43
37
|
export declare const WATCHDOG_TAIL_MAX_CHARS = 4096;
|
|
44
38
|
/** Keep the newest transcript context without letting it consume the audit window. */
|
|
45
39
|
export declare function boundTailLines(lines: string[], maxChars?: number): string[];
|
package/dist/lib/watchdog/log.js
CHANGED
|
@@ -86,7 +86,7 @@ export function formatEvent(ev) {
|
|
|
86
86
|
* writer trims (watchdogLog.ts trimToLast). Large enough to keep a useful
|
|
87
87
|
* history, small enough to bound the file the UI polls.
|
|
88
88
|
*/
|
|
89
|
-
|
|
89
|
+
const WATCHDOG_LOG_MAX_LINES = 5000;
|
|
90
90
|
export const WATCHDOG_TAIL_MAX_CHARS = 4096;
|
|
91
91
|
/** Keep the newest transcript context without letting it consume the audit window. */
|
|
92
92
|
export function boundTailLines(lines, maxChars = WATCHDOG_TAIL_MAX_CHARS) {
|
|
@@ -29,16 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import type { InjectTarget } from '../terminal/index.js';
|
|
31
31
|
import type { ActiveSession } from '../session/active.js';
|
|
32
|
-
|
|
33
|
-
* Agent-reported hard-limit texts, matched against a session transcript tail.
|
|
34
|
-
* Ported verbatim from apps/ext/src/core/autoRotate.ts RATE_LIMIT_PATTERNS —
|
|
35
|
-
* kept specific on purpose: a transcript carries prose, so a loose "rate limit"
|
|
36
|
-
* match would rotate terminals whose agent merely DISCUSSED limits. The first
|
|
37
|
-
* two patterns cover the weekly/session variants, including claude's
|
|
38
|
-
* "You've hit your weekly limit · resets <time>" form.
|
|
39
|
-
*/
|
|
40
|
-
export declare const ROTATE_LIMIT_PATTERNS: RegExp[];
|
|
41
|
-
export type RotateTailVerdict = {
|
|
32
|
+
type RotateTailVerdict = {
|
|
42
33
|
kind: 'none';
|
|
43
34
|
} | {
|
|
44
35
|
kind: 'rate_limited';
|
|
@@ -136,22 +127,14 @@ export declare const DEFAULT_ROTATE_READINESS_MS = 60000;
|
|
|
136
127
|
export declare const DEFAULT_ROTATE_SKIP_COOLDOWN_MS: number;
|
|
137
128
|
/** Retry cooldown after a FAILED rotate — honored at begin via the state file. */
|
|
138
129
|
export declare const DEFAULT_ROTATE_FAILED_COOLDOWN_MS: number;
|
|
139
|
-
export declare function rotateStatePath(dir: string, sessionId: string): string;
|
|
140
130
|
export declare function readRotateState(dir: string, sessionId: string): RotateState | null;
|
|
141
131
|
export declare function writeRotateState(dir: string, state: RotateState): void;
|
|
142
|
-
export declare function clearRotateState(dir: string, sessionId: string): void;
|
|
143
132
|
/** A phase the machine still has work to do in (done/failed are terminal). */
|
|
144
133
|
export declare function isInflightPhase(phase: RotatePhase): boolean;
|
|
145
134
|
/** Every persisted rotate state (any phase) — for `watchdog status`. */
|
|
146
135
|
export declare function listRotateStates(dir: string): RotateState[];
|
|
147
136
|
/** In-flight rotates only — the set a tick's sweep must advance. */
|
|
148
137
|
export declare function listInflightRotates(dir: string): RotateState[];
|
|
149
|
-
/**
|
|
150
|
-
* One `rotate` skip event per cooldown window, tracked as
|
|
151
|
-
* <watchdog-state>/rotate-skips.json: { [sessionId]: suppressUntilMs }. A skip
|
|
152
|
-
* inside the window logs nothing and touches nothing.
|
|
153
|
-
*/
|
|
154
|
-
export declare function readRotateSkipLedger(dir: string): Record<string, number>;
|
|
155
138
|
/** True when a skip for this session is OUTSIDE its suppression window (log it). */
|
|
156
139
|
export declare function shouldLogRotateSkip(dir: string, sessionId: string, nowMs: number): boolean;
|
|
157
140
|
/** Suppress further skip events for this session until suppressUntilMs. */
|
|
@@ -186,14 +169,6 @@ export interface RotateGateResult {
|
|
|
186
169
|
* (collectRunCandidates reads daemon-written snapshots, readOnly).
|
|
187
170
|
*/
|
|
188
171
|
export declare function defaultRotateGate(): Promise<RotateGateResult>;
|
|
189
|
-
/**
|
|
190
|
-
* Default TUI-liveness probe for the relaunched session: the new session's
|
|
191
|
-
* transcript resolves under any known harness layout. `--session-id` is honored
|
|
192
|
-
* on a claude pick; for other harnesses the runner's readiness check ALSO
|
|
193
|
-
* accepts a fresh active session (started after the rotate began), so a codex
|
|
194
|
-
* pick with an unknown id is still detected.
|
|
195
|
-
*/
|
|
196
|
-
export declare function defaultRotateTranscriptLive(newSessionId: string): boolean;
|
|
197
172
|
/**
|
|
198
173
|
* The readiness FALLBACK correlation. A fresh active session counts as the
|
|
199
174
|
* relaunched TUI only when ALL of these hold:
|
|
@@ -216,3 +191,4 @@ export declare function isCorrelatedRelaunch(state: RotateState, s: ActiveSessio
|
|
|
216
191
|
* priori.
|
|
217
192
|
*/
|
|
218
193
|
export declare function defaultTuiLiveFor(state: RotateState, sessions: ActiveSession[]): boolean;
|
|
194
|
+
export {};
|