@phnx-labs/agents-cli 1.22.112 → 1.22.114
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 +37 -0
- package/README.md +10 -11
- package/dist/cli/command-registry.d.ts +0 -60
- package/dist/cli/command-registry.js +59 -61
- package/dist/commands/apply.d.ts +0 -4
- package/dist/commands/apply.js +3 -3
- 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/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/feed.d.ts +3 -3
- package/dist/commands/feed.js +1 -1
- package/dist/commands/focus.d.ts +4 -4
- 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/message.d.ts +1 -1
- package/dist/commands/message.js +3 -3
- package/dist/commands/projects.d.ts +2 -18
- package/dist/commands/projects.js +89 -3
- package/dist/commands/resource-view.d.ts +3 -2
- package/dist/commands/resume.d.ts +0 -1
- package/dist/commands/resume.js +1 -1
- 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 +21 -2
- package/dist/commands/sessions-backfill.d.ts +2 -35
- package/dist/commands/sessions-backfill.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 -5
- 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 +14 -104
- package/dist/commands/sessions.js +22 -10
- package/dist/commands/setup-mine.d.ts +0 -6
- package/dist/commands/setup-mine.js +1 -1
- package/dist/commands/setup.d.ts +3 -4
- package/dist/commands/setup.js +1 -1
- package/dist/commands/share.d.ts +8 -8
- 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 +1 -1
- package/dist/commands/tmux.d.ts +1 -1
- package/dist/commands/tmux.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/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/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 +5 -5
- 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 +4 -4
- package/dist/lib/browser/service.d.ts +4 -4
- 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 +1 -1
- 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/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/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-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 -12
- package/dist/lib/daemon/daemon.js +42 -23
- 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/testdata/process-view-daemon.d.ts +1 -0
- package/dist/lib/daemon/testdata/process-view-daemon.js +14 -0
- package/dist/lib/daemon/testdata/process-view-start.d.ts +1 -0
- package/dist/lib/daemon/testdata/process-view-start.js +43 -0
- package/dist/lib/daemon-services.d.ts +2 -1
- 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 +2 -1
- 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 +4 -1
- package/dist/lib/event-provenance.js +4 -0
- 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 +28 -8
- 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 +11 -2
- package/dist/lib/feed/activity.d.ts +16 -33
- package/dist/lib/feed/activity.js +69 -26
- package/dist/lib/feed/answer.d.ts +3 -2
- package/dist/lib/feed/attention.js +5 -1
- package/dist/lib/feed/events.d.ts +2 -47
- package/dist/lib/feed/events.js +1 -141
- package/dist/lib/feed/feed.d.ts +9 -42
- package/dist/lib/feed/feed.js +1 -60
- package/dist/lib/feed/pr-status.d.ts +0 -2
- package/dist/lib/feed/pr-status.js +1 -5
- package/dist/lib/feed/watch.d.ts +10 -2
- package/dist/lib/feed/watch.js +91 -4
- 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 +2 -2
- 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 +2 -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 -65
- package/dist/lib/git.js +3 -142
- 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 -34
- package/dist/lib/hosts/dispatch.js +4 -21
- 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 +4 -3
- package/dist/lib/hosts/remote-session-id.d.ts +5 -27
- package/dist/lib/hosts/remote-session-id.js +18 -61
- 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/launch-identity.d.ts +10 -0
- package/dist/lib/launch-identity.js +31 -0
- 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/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/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/reconcile-and-repair.d.ts +5 -4
- package/dist/lib/redact.d.ts +7 -1
- package/dist/lib/redact.js +94 -3
- package/dist/lib/refresh-coordinator.d.ts +2 -1
- package/dist/lib/refresh.d.ts +3 -2
- 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-client.d.ts +0 -17
- package/dist/lib/secrets-client.js +4 -26
- 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/active.js +9 -3
- 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/db.d.ts +2 -1
- package/dist/lib/session/db.js +39 -4
- package/dist/lib/session/detached.d.ts +2 -1
- package/dist/lib/session/detached.js +2 -2
- package/dist/lib/session/digest.d.ts +2 -2
- package/dist/lib/session/digest.js +1 -1
- package/dist/lib/session/discover.js +7 -2
- 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 +12 -1
- package/dist/lib/session/hook-sessions.js +139 -6
- 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/pid-registry.d.ts +18 -5
- package/dist/lib/session/pid-registry.js +164 -17
- package/dist/lib/session/presence.d.ts +2 -1
- package/dist/lib/session/process-view.d.ts +25 -0
- package/dist/lib/session/process-view.js +176 -0
- package/dist/lib/session/projection.d.ts +13 -0
- package/dist/lib/session/projection.js +101 -0
- 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 +2 -5
- package/dist/lib/session/remote/peer-stream.js +2 -2
- 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 +10 -7
- package/dist/lib/session/remote/watch.js +10 -6
- 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 +17 -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 +5 -5
- 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/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/testdata/pid-registry-namespace.d.ts +1 -0
- package/dist/lib/session/testdata/pid-registry-namespace.js +27 -0
- package/dist/lib/session/testdata/process-view-namespace.d.ts +1 -0
- package/dist/lib/session/testdata/process-view-namespace.js +56 -0
- package/dist/lib/session/testdata/process-view-private.d.ts +1 -0
- package/dist/lib/session/testdata/process-view-private.js +12 -0
- 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/settings-manifest.d.ts +2 -1
- package/dist/lib/share/delete.d.ts +5 -4
- package/dist/lib/share/html.d.ts +0 -2
- package/dist/lib/share/html.js +9 -9
- package/dist/lib/share/http-error.d.ts +3 -2
- package/dist/lib/share/og.d.ts +2 -1
- package/dist/lib/share/provision.d.ts +2 -2
- package/dist/lib/share/publish.d.ts +4 -13
- package/dist/lib/share/publish.js +2 -2
- package/dist/lib/shim-heal.d.ts +1 -5
- package/dist/lib/shim-heal.js +0 -6
- package/dist/lib/smart-launch.d.ts +4 -5
- package/dist/lib/smart-launch.js +1 -1
- package/dist/lib/snapshot.d.ts +3 -2
- package/dist/lib/ssh-exec.d.ts +5 -4
- 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.js +1 -1
- package/dist/lib/state.d.ts +1 -3
- package/dist/lib/state.js +1 -4
- 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 +4 -3
- 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/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 +1 -3
- package/dist/lib/traces/provision.js +1 -1
- 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 +3 -3
- 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 +2 -3
- package/scripts/postinstall.js +5 -4
- package/dist/commands/pty.d.ts +0 -20
- package/dist/commands/pty.js +0 -404
- 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
|
@@ -37,7 +37,7 @@ export declare class TmuxCommandError extends Error {
|
|
|
37
37
|
readonly code: number | null;
|
|
38
38
|
constructor(message: string, stderr: string, stdout: string, code: number | null);
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
interface RunTmuxOptions {
|
|
41
41
|
/** Socket path (default: shared server socket). */
|
|
42
42
|
socket?: string;
|
|
43
43
|
/** Args after `tmux -S <socket>` — e.g. `['has-session', '-t', 'foo']`. */
|
|
@@ -76,3 +76,4 @@ export declare function attachTmux(opts: {
|
|
|
76
76
|
args: string[];
|
|
77
77
|
env?: NodeJS.ProcessEnv;
|
|
78
78
|
}): Promise<number>;
|
|
79
|
+
export {};
|
|
@@ -98,8 +98,6 @@
|
|
|
98
98
|
* entirely (env is inherently unreadable cross-process there without a native
|
|
99
99
|
* helper); it is not a parsing bug {@link parseTmuxSessionMarker} can fix.
|
|
100
100
|
*/
|
|
101
|
-
/** Grace between SIGTERM and SIGKILL for a reaped orphan. */
|
|
102
|
-
export declare const REAP_GRACE_MS = 2000;
|
|
103
101
|
/** Env var `runInTmux` stamps into the pane, inherited by every descendant. */
|
|
104
102
|
export declare const TMUX_SESSION_ENV = "AGENT_TMUX_SESSION_NAME";
|
|
105
103
|
/** One process, with the fields the reaper attributes on. */
|
|
@@ -119,15 +117,15 @@ export interface PaneOwner {
|
|
|
119
117
|
attached: boolean;
|
|
120
118
|
}
|
|
121
119
|
/** Why a process was selected, for human output and tests. */
|
|
122
|
-
|
|
123
|
-
|
|
120
|
+
type OrphanReason = 'tmux-agent-exited' | 'detached-helper';
|
|
121
|
+
interface OrphanCandidate {
|
|
124
122
|
pid: number;
|
|
125
123
|
args: string;
|
|
126
124
|
reason: OrphanReason;
|
|
127
125
|
/** Owning tmux session, when the process carried the marker. */
|
|
128
126
|
tmuxSession?: string;
|
|
129
127
|
}
|
|
130
|
-
|
|
128
|
+
interface OrphanReapResult {
|
|
131
129
|
/** Processes signalled (SIGTERM, escalated to SIGKILL when they ignore it). */
|
|
132
130
|
killed: number;
|
|
133
131
|
/** One human-readable line per reaped process. */
|
|
@@ -148,7 +146,7 @@ export interface OrphanReapResult {
|
|
|
148
146
|
* Registry rather than per-agent branches: a second harness with the same shape
|
|
149
147
|
* is one entry, and the completeness of the table is what a reviewer checks.
|
|
150
148
|
*/
|
|
151
|
-
|
|
149
|
+
interface DetachedHelperRule {
|
|
152
150
|
/** Harness id, for the reap detail line. */
|
|
153
151
|
agent: string;
|
|
154
152
|
/** Owner pid the helper declares in its own argv, or undefined when it is not this rule's process. */
|
|
@@ -247,7 +245,7 @@ export declare function readAgentProcesses(opts?: {
|
|
|
247
245
|
pids?: number[];
|
|
248
246
|
}): Promise<AgentProcess[]>;
|
|
249
247
|
/** One socket's pane-ownership read. `ok: false` means tmux never actually answered. */
|
|
250
|
-
|
|
248
|
+
interface PaneOwnersRead {
|
|
251
249
|
/**
|
|
252
250
|
* `true` when tmux completed the query (whatever its exit code — a nonzero
|
|
253
251
|
* exit from `list-panes -a` IS tmux affirmatively answering "no server /
|
|
@@ -314,3 +312,4 @@ export declare function reapProcessesForTmuxSession(name: string, socket?: strin
|
|
|
314
312
|
graceMs?: number;
|
|
315
313
|
pids?: number[];
|
|
316
314
|
}): Promise<OrphanReapResult>;
|
|
315
|
+
export {};
|
|
@@ -113,7 +113,7 @@ const PS_TIMEOUT_MS = 10_000;
|
|
|
113
113
|
*/
|
|
114
114
|
const TMUX_QUERY_TIMEOUT_MS = 10_000;
|
|
115
115
|
/** Grace between SIGTERM and SIGKILL for a reaped orphan. */
|
|
116
|
-
|
|
116
|
+
const REAP_GRACE_MS = 2_000;
|
|
117
117
|
/** Env var `runInTmux` stamps into the pane, inherited by every descendant. */
|
|
118
118
|
export const TMUX_SESSION_ENV = 'AGENT_TMUX_SESSION_NAME';
|
|
119
119
|
/**
|
|
@@ -127,7 +127,7 @@ export declare function teardownIfAgentExited(name: string, socket?: string): Pr
|
|
|
127
127
|
*/
|
|
128
128
|
export declare function killAll(socket?: string): Promise<number>;
|
|
129
129
|
/** Result returned by {@link reapDeadTmuxPanes}. */
|
|
130
|
-
|
|
130
|
+
interface ReapDeadPanesResult {
|
|
131
131
|
/** Number of tmux sessions killed. */
|
|
132
132
|
reaped: number;
|
|
133
133
|
/** Names of reaped sessions. */
|
|
@@ -196,7 +196,7 @@ export interface TmuxClient {
|
|
|
196
196
|
*/
|
|
197
197
|
export declare function listClients(socket?: string): Promise<TmuxClient[]>;
|
|
198
198
|
/** A dead pane's exit status, read from tmux while the pane lingers under remain-on-exit. */
|
|
199
|
-
|
|
199
|
+
interface PaneExit {
|
|
200
200
|
/** False when the pane/socket no longer exists or tmux could not query it. */
|
|
201
201
|
found: boolean;
|
|
202
202
|
/** True once the process that ran in the pane has exited (pane is dead). */
|
|
@@ -283,7 +283,7 @@ export declare function markSessionHookSchema(name: string, socket?: string, tim
|
|
|
283
283
|
* its attach client returns — without that, a resume-attach has no handle to ask
|
|
284
284
|
* tmux what happened and can only assume success (EXEC-23b).
|
|
285
285
|
*/
|
|
286
|
-
|
|
286
|
+
type ResumePreparation = {
|
|
287
287
|
decision: 'attach';
|
|
288
288
|
pane: string;
|
|
289
289
|
} | {
|
|
@@ -381,3 +381,4 @@ export interface CaptureOptions {
|
|
|
381
381
|
export declare function capturePane(opts: CaptureOptions): Promise<string>;
|
|
382
382
|
/** Read a session's provenance JSON, if present. */
|
|
383
383
|
export declare function readSessionMeta(name: string): SessionMeta | null;
|
|
384
|
+
export {};
|
|
@@ -26,7 +26,7 @@ export interface DriftSignal {
|
|
|
26
26
|
stallDelta: number;
|
|
27
27
|
severity: 'degrading' | 'stable' | 'improving';
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
interface TopicEvidence {
|
|
30
30
|
cwd?: string | null;
|
|
31
31
|
gitBranch?: string | null;
|
|
32
32
|
topic?: string | null;
|
|
@@ -38,7 +38,7 @@ export interface ClassifiedTopic {
|
|
|
38
38
|
key: string;
|
|
39
39
|
label: string;
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
interface ToolCallFailure {
|
|
42
42
|
tool: string;
|
|
43
43
|
exit_code?: number | null;
|
|
44
44
|
status_code?: number | null;
|
|
@@ -57,3 +57,4 @@ export declare function classifyCause(call: ToolCallFailure): TraceFailureCause;
|
|
|
57
57
|
* not enough signal to distinguish noise from drift.
|
|
58
58
|
*/
|
|
59
59
|
export declare function computeDriftSignal(history: BucketStats[][], today: BucketStats[]): DriftSignal[];
|
|
60
|
+
export {};
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
/** Isolated Cloudflare resources for the private Phoenix trace store. */
|
|
2
|
-
export interface TracesConfig {
|
|
3
|
-
baseUrl: string;
|
|
4
|
-
accountId: string;
|
|
5
|
-
workerName: string;
|
|
6
|
-
bucketName: string;
|
|
7
|
-
domain?: string;
|
|
8
|
-
}
|
|
9
1
|
export declare const DEFAULT_WORKER_NAME = "agents-traces";
|
|
10
2
|
export declare const DEFAULT_BUCKET_NAME = "agents-traces";
|
|
@@ -59,7 +59,7 @@ export interface FailurePattern {
|
|
|
59
59
|
/** Movement vs the same pattern id in the previous shard. */
|
|
60
60
|
drift: 'up' | 'flat' | 'down';
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
interface ComputedInsights {
|
|
63
63
|
/** Top-K patterns ranked by wastedMs (impact) — a rare 1-occurrence/8h loop still surfaces. */
|
|
64
64
|
failurePatterns: FailurePattern[];
|
|
65
65
|
/** Sum of wastedMs across every cluster found this sync, not just the top-K rows above. */
|
|
@@ -110,3 +110,4 @@ export declare function computeInsights(rows: readonly SyncRow[], calls: readonl
|
|
|
110
110
|
* `tool` is the synthetic `silent-stall` and `key` is the duration bucket.
|
|
111
111
|
*/
|
|
112
112
|
export declare function computeBehavioralPatterns(facetsBySession: ReadonlyMap<string, Pick<InsightFacets, 'frictionSignals'>>, prevShard?: TracesIndexShard | null): FailurePattern[];
|
|
113
|
+
export {};
|
|
@@ -25,12 +25,12 @@ export type FailurePhenotype = 'false-termination' | 'premature-completion' | 'o
|
|
|
25
25
|
* - `human-takeover`: the final substantive action was a human-facing ask/wait.
|
|
26
26
|
* - `invalid-env` : environment/setup failures dominated the session.
|
|
27
27
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
type TraceOutcome = 'merged' | 'tests-green' | 'partial' | 'abandoned' | 'human-takeover' | 'invalid-env';
|
|
29
|
+
interface PhenotypeResult {
|
|
30
30
|
phenotype: FailurePhenotype | null;
|
|
31
31
|
reason: string;
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
interface OutcomeResult {
|
|
34
34
|
outcome: TraceOutcome;
|
|
35
35
|
confidence: 'high' | 'medium' | 'low';
|
|
36
36
|
reason: string;
|
|
@@ -2,9 +2,7 @@ import { type CloudflareRequester } from '../share/provision.js';
|
|
|
2
2
|
interface ProvisionOptions {
|
|
3
3
|
request?: CloudflareRequester;
|
|
4
4
|
}
|
|
5
|
-
|
|
6
|
-
export declare function setPhoenixIdBaseSecret(apiToken: string, accountId: string, workerName: string, phoenixIdBase: string, opts?: ProvisionOptions): Promise<void>;
|
|
7
|
-
export interface ProvisionTracesOptions extends ProvisionOptions {
|
|
5
|
+
interface ProvisionTracesOptions extends ProvisionOptions {
|
|
8
6
|
apiToken: string;
|
|
9
7
|
accountId: string;
|
|
10
8
|
workerName: string;
|
|
@@ -6,7 +6,7 @@ import { addCustomDomain, createBucket, deployWorker, enableWorkersDev, findZone
|
|
|
6
6
|
import { DEFAULT_TRACES_DOMAIN } from './backend.js';
|
|
7
7
|
import { renderTracesWorkerScript } from './worker-template.js';
|
|
8
8
|
/** Bind the Phoenix identity base URL used to verify every trace read and write. */
|
|
9
|
-
|
|
9
|
+
async function setPhoenixIdBaseSecret(apiToken, accountId, workerName, phoenixIdBase, opts = {}) {
|
|
10
10
|
const normalized = phoenixIdBase.replace(/\/+$/, '').trim();
|
|
11
11
|
if (!normalized)
|
|
12
12
|
throw new Error('PHOENIX_ID_BASE is required to verify trace requests.');
|
|
@@ -68,7 +68,7 @@ export declare function unwrapShellExec(command: string): string;
|
|
|
68
68
|
export declare function mapBashCategory(cat: ClassifierCategory, argv: string[]): BashCategory;
|
|
69
69
|
/** Build the per-segment BashAction list for a bash command. */
|
|
70
70
|
export declare function buildBashActions(unwrapped: string): BashAction[];
|
|
71
|
-
|
|
71
|
+
interface BuildDetailV2Options {
|
|
72
72
|
redact?: boolean;
|
|
73
73
|
knownSecrets?: readonly string[];
|
|
74
74
|
}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* action was flagged, so the console can group by operation without re-parsing.
|
|
22
22
|
*/
|
|
23
23
|
import type { BashDanger } from './schema2.js';
|
|
24
|
-
|
|
24
|
+
interface DangerVerdict {
|
|
25
25
|
danger: BashDanger;
|
|
26
26
|
/** Short stable label naming the operation, e.g. `recursive-delete`. Omitted for `normal`. */
|
|
27
27
|
destructiveOperation?: string;
|
|
@@ -34,3 +34,4 @@ export interface DangerVerdict {
|
|
|
34
34
|
* expands to), because the operation itself is the danger, not its target.
|
|
35
35
|
*/
|
|
36
36
|
export declare function classifyActionDanger(argv: string[], _argvComplete?: boolean): DangerVerdict;
|
|
37
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type StepOutcome = 'ok' | 'error' | 'running' | 'unknown';
|
|
2
|
-
|
|
2
|
+
interface SessionStepBase {
|
|
3
3
|
ordinal: number;
|
|
4
4
|
startMs: number;
|
|
5
5
|
durationMs: number;
|
|
@@ -17,15 +17,15 @@ export interface ThinkingStep extends SessionStepBase {
|
|
|
17
17
|
lane: 'think';
|
|
18
18
|
outcome: 'ok' | 'running' | 'unknown';
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
interface ExecutionBase extends SessionStepBase {
|
|
21
21
|
kind: 'execution';
|
|
22
22
|
lane: string;
|
|
23
23
|
callId?: string;
|
|
24
24
|
/** The tool call this execution targets (hook/permission → the guarded call). */
|
|
25
25
|
targetCallId?: string;
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
type ToolExecutionType = 'bash' | 'edit' | 'write' | 'read' | 'grep' | 'generic';
|
|
28
|
+
interface ToolExecutionBase extends ExecutionBase {
|
|
29
29
|
executionType: ToolExecutionType;
|
|
30
30
|
tool: string;
|
|
31
31
|
result: ExecutionResult;
|
|
@@ -147,3 +147,4 @@ export interface HookExecution extends ExecutionBase {
|
|
|
147
147
|
result: ExecutionResult;
|
|
148
148
|
}
|
|
149
149
|
export type SessionStepV2 = ThinkingStep | BashExecution | EditExecution | WriteExecution | ReadExecution | GrepExecution | GenericToolExecution | PermissionExecution | HookExecution;
|
|
150
|
+
export {};
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
*/
|
|
14
14
|
export declare const TASK_TYPES: readonly ["bugfix", "feature", "refactor", "test", "chore", "other"];
|
|
15
15
|
export type TaskType = (typeof TASK_TYPES)[number];
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
declare const FAILURE_TIMINGS: readonly ["early", "mid", "late"];
|
|
17
|
+
type FailureTiming = (typeof FAILURE_TIMINGS)[number];
|
|
18
18
|
/** The #1 group-by axis: compare the pair, never the model alone. */
|
|
19
|
-
|
|
19
|
+
interface SegmentAgent {
|
|
20
20
|
model: string;
|
|
21
21
|
harness: string;
|
|
22
22
|
}
|
|
@@ -70,19 +70,11 @@ export interface Percentiles {
|
|
|
70
70
|
export interface LatencyInsight {
|
|
71
71
|
firstToolMs: Percentiles;
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
interface SegmentDimensions {
|
|
74
74
|
agent: SegmentAgent;
|
|
75
75
|
taskType: TaskType;
|
|
76
76
|
failureTiming: FailureTiming | null;
|
|
77
77
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Tool name → file action. Lowercased. Write-family is a new file; Edit-family
|
|
80
|
-
* is a patch. Anything else is ignored for diff-shape.
|
|
81
|
-
*/
|
|
82
|
-
export declare const FILE_ACTION_TOOLS: ReadonlyArray<{
|
|
83
|
-
action: SegmentFile['action'];
|
|
84
|
-
tools: readonly string[];
|
|
85
|
-
}>;
|
|
86
78
|
type DiffShape = {
|
|
87
79
|
files: readonly SegmentFile[];
|
|
88
80
|
testOnly: boolean;
|
|
@@ -101,14 +93,6 @@ export declare const TASK_TYPE_RULES: ReadonlyArray<{
|
|
|
101
93
|
patterns: readonly RegExp[];
|
|
102
94
|
shape?: keyof Pick<DiffShape, 'testOnly' | 'newOnly' | 'choreOnly'>;
|
|
103
95
|
}>;
|
|
104
|
-
/**
|
|
105
|
-
* Normalized position of the first failing step inside the session span.
|
|
106
|
-
* Early failures cascade — highest-signal bucket. Exclusive upper bound.
|
|
107
|
-
*/
|
|
108
|
-
export declare const FAILURE_TIMING_BUCKETS: ReadonlyArray<{
|
|
109
|
-
timing: FailureTiming;
|
|
110
|
-
maxExclusive: number;
|
|
111
|
-
}>;
|
|
112
96
|
/** Model × harness unit — the #1 group-by axis. */
|
|
113
97
|
export declare function deriveAgent(session: SegmentSession): SegmentAgent;
|
|
114
98
|
/**
|
|
@@ -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
|
|
@@ -1159,8 +1159,8 @@ export interface Meta {
|
|
|
1159
1159
|
templateHash?: string;
|
|
1160
1160
|
};
|
|
1161
1161
|
/**
|
|
1162
|
-
* Owner/channel notification config for `agents send
|
|
1163
|
-
* `owner` is the address expanded by `--to owner` and by `agents
|
|
1162
|
+
* Owner/channel notification config for `agents send`.
|
|
1163
|
+
* `owner` is the address expanded by `--to owner` and by `agents send --to owner`
|
|
1164
1164
|
* (channel + target). `transports` maps a user-facing channel name to the
|
|
1165
1165
|
* provider that actually delivers it — explicit, one provider per channel,
|
|
1166
1166
|
* 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 {};
|