@skrr-ai/cli 0.1.115 → 0.1.116
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/dist/base-command.js +23 -10
- package/dist/commands/actions/browse.d.ts +6 -6
- package/dist/commands/actions/create.d.ts +12 -12
- package/dist/commands/actions/delete.d.ts +3 -3
- package/dist/commands/actions/install.d.ts +3 -3
- package/dist/commands/actions/list.d.ts +6 -6
- package/dist/commands/actions/publish.d.ts +4 -4
- package/dist/commands/actions/rate.d.ts +3 -3
- package/dist/commands/actions/show.d.ts +2 -2
- package/dist/commands/actions/update.d.ts +11 -11
- package/dist/commands/agenda/plan.d.ts +4 -4
- package/dist/commands/agenda/trigger/create.d.ts +10 -10
- package/dist/commands/agenda/trigger/delete.d.ts +4 -4
- package/dist/commands/agenda/trigger/fire.d.ts +3 -3
- package/dist/commands/agenda/trigger/list.d.ts +3 -3
- package/dist/commands/agent/call/cancel.d.ts +2 -2
- package/dist/commands/agent/call/request.d.ts +6 -6
- package/dist/commands/agent/call/show.d.ts +2 -2
- package/dist/commands/agent/message/context.d.ts +4 -4
- package/dist/commands/agent/message/context.js +21 -1
- package/dist/commands/agent/message/send.d.ts +26 -26
- package/dist/commands/agent/phone-call/request.d.ts +5 -5
- package/dist/commands/agent-groups/add.d.ts +3 -3
- package/dist/commands/agent-groups/create.d.ts +6 -6
- package/dist/commands/agent-groups/delete.d.ts +2 -2
- package/dist/commands/agent-groups/list.d.ts +1 -1
- package/dist/commands/agent-groups/remove.d.ts +3 -3
- package/dist/commands/agent-groups/show.d.ts +2 -2
- package/dist/commands/agent-groups/update.d.ts +7 -7
- package/dist/commands/agent-shares/accept.d.ts +2 -2
- package/dist/commands/agent-shares/create.d.ts +5 -5
- package/dist/commands/agent-shares/decline.d.ts +3 -3
- package/dist/commands/agent-shares/leave.d.ts +2 -2
- package/dist/commands/agent-shares/list-for.d.ts +2 -2
- package/dist/commands/agent-shares/received.d.ts +5 -5
- package/dist/commands/agent-shares/revoke.d.ts +2 -2
- package/dist/commands/agent-shares/sent.d.ts +4 -4
- package/dist/commands/agent-shares/with.d.ts +2 -2
- package/dist/commands/agent-worker.d.ts +2 -2
- package/dist/commands/agents/actions/create.d.ts +18 -18
- package/dist/commands/agents/actions/delete.d.ts +4 -4
- package/dist/commands/agents/actions/list.d.ts +2 -2
- package/dist/commands/agents/actions/run.d.ts +5 -5
- package/dist/commands/agents/actions/schedule.d.ts +19 -19
- package/dist/commands/agents/actions/show.d.ts +3 -3
- package/dist/commands/agents/actions/targets.d.ts +4 -4
- package/dist/commands/agents/actions/update.d.ts +17 -17
- package/dist/commands/agents/activity.d.ts +5 -5
- package/dist/commands/agents/always-on/disable.d.ts +3 -3
- package/dist/commands/agents/always-on/enable.d.ts +3 -3
- package/dist/commands/agents/always-on/reconcile.d.ts +2 -2
- package/dist/commands/agents/always-on/status.d.ts +2 -2
- package/dist/commands/agents/api-actions/add.d.ts +15 -15
- package/dist/commands/agents/api-actions/index.d.ts +2 -2
- package/dist/commands/agents/api-actions/remove.d.ts +3 -3
- package/dist/commands/agents/attach-harness.d.ts +8 -8
- package/dist/commands/agents/avatar/default/apply.d.ts +3 -3
- package/dist/commands/agents/avatar/default/index.d.ts +1 -1
- package/dist/commands/agents/avatar/default/set.d.ts +6 -6
- package/dist/commands/agents/avatar/generate.d.ts +3 -3
- package/dist/commands/agents/avatar/library/delete.d.ts +2 -2
- package/dist/commands/agents/avatar/library/index.d.ts +1 -1
- package/dist/commands/agents/avatar/presets.d.ts +2 -2
- package/dist/commands/agents/avatar/upload.d.ts +3 -3
- package/dist/commands/agents/badge.d.ts +4 -4
- package/dist/commands/agents/categories/create.d.ts +5 -5
- package/dist/commands/agents/categories/delete.d.ts +2 -2
- package/dist/commands/agents/categories/index.d.ts +4 -4
- package/dist/commands/agents/categories/update.d.ts +6 -6
- package/dist/commands/agents/channels/connect.d.ts +3 -3
- package/dist/commands/agents/channels/delete.d.ts +4 -4
- package/dist/commands/agents/channels/disconnect.d.ts +3 -3
- package/dist/commands/agents/channels/show.d.ts +3 -3
- package/dist/commands/agents/channels/test.d.ts +4 -4
- package/dist/commands/agents/channels/update.d.ts +4 -4
- package/dist/commands/agents/chat.d.ts +15 -15
- package/dist/commands/agents/chat.js +1 -0
- package/dist/commands/agents/create.d.ts +45 -45
- package/dist/commands/agents/delete.d.ts +2 -2
- package/dist/commands/agents/duplicate.d.ts +2 -2
- package/dist/commands/agents/egress.d.ts +8 -8
- package/dist/commands/agents/embed.d.ts +2 -2
- package/dist/commands/agents/endpoint/connect.d.ts +6 -6
- package/dist/commands/agents/endpoint/disable.d.ts +2 -2
- package/dist/commands/agents/endpoint/enable.d.ts +2 -2
- package/dist/commands/agents/endpoint/show.d.ts +2 -2
- package/dist/commands/agents/ensure-default.d.ts +2 -2
- package/dist/commands/agents/eval/index.d.ts +8 -8
- package/dist/commands/agents/eval/list.d.ts +3 -3
- package/dist/commands/agents/eval/show.d.ts +3 -3
- package/dist/commands/agents/files/delete.d.ts +4 -4
- package/dist/commands/agents/files/list.d.ts +2 -2
- package/dist/commands/agents/files/move.d.ts +4 -4
- package/dist/commands/agents/files/rename.d.ts +4 -4
- package/dist/commands/agents/files/upload.d.ts +4 -4
- package/dist/commands/agents/folders/create.d.ts +4 -4
- package/dist/commands/agents/folders/delete.d.ts +4 -4
- package/dist/commands/agents/folders/list.d.ts +2 -2
- package/dist/commands/agents/folders/show.d.ts +3 -3
- package/dist/commands/agents/folders/update.d.ts +5 -5
- package/dist/commands/agents/goals/assign.d.ts +3 -3
- package/dist/commands/agents/goals/list.d.ts +2 -2
- package/dist/commands/agents/goals/unassign.d.ts +3 -3
- package/dist/commands/agents/identity.d.ts +2 -2
- package/dist/commands/agents/import.d.ts +4 -4
- package/dist/commands/agents/instructions/add.d.ts +11 -11
- package/dist/commands/agents/instructions/disable.d.ts +3 -3
- package/dist/commands/agents/instructions/edit.d.ts +6 -6
- package/dist/commands/agents/instructions/enable.d.ts +3 -3
- package/dist/commands/agents/instructions/move.d.ts +5 -5
- package/dist/commands/agents/instructions/preview.d.ts +3 -3
- package/dist/commands/agents/instructions/remove.d.ts +3 -3
- package/dist/commands/agents/instructions/set.d.ts +6 -6
- package/dist/commands/agents/instructions/show.d.ts +4 -4
- package/dist/commands/agents/instructions/upgrade.d.ts +5 -5
- package/dist/commands/agents/intuitions/accept.d.ts +4 -4
- package/dist/commands/agents/intuitions/dismiss.d.ts +4 -4
- package/dist/commands/agents/intuitions/generate.d.ts +3 -3
- package/dist/commands/agents/intuitions/list.d.ts +2 -2
- package/dist/commands/agents/intuitions/stats.d.ts +2 -2
- package/dist/commands/agents/list.d.ts +10 -10
- package/dist/commands/agents/mailbox/messages.d.ts +4 -4
- package/dist/commands/agents/mailbox/show.d.ts +2 -2
- package/dist/commands/agents/manager/ensure.d.ts +1 -1
- package/dist/commands/agents/mute.d.ts +2 -2
- package/dist/commands/agents/notepad/delete.d.ts +3 -3
- package/dist/commands/agents/notepad/show.d.ts +2 -2
- package/dist/commands/agents/notepad/update.d.ts +4 -4
- package/dist/commands/agents/operating-plan.d.ts +2 -2
- package/dist/commands/agents/overview.d.ts +3 -3
- package/dist/commands/agents/pin.d.ts +2 -2
- package/dist/commands/agents/plan-day.d.ts +9 -9
- package/dist/commands/agents/preferences/show.d.ts +2 -2
- package/dist/commands/agents/preferences/update.d.ts +5 -5
- package/dist/commands/agents/pull.d.ts +3 -3
- package/dist/commands/agents/push.d.ts +3 -3
- package/dist/commands/agents/query.d.ts +4 -4
- package/dist/commands/agents/reflect.d.ts +7 -7
- package/dist/commands/agents/releases/ci-publish.d.ts +10 -10
- package/dist/commands/agents/releases/create.d.ts +8 -8
- package/dist/commands/agents/releases/delist.d.ts +5 -5
- package/dist/commands/agents/releases/known-issues/add.d.ts +5 -5
- package/dist/commands/agents/releases/known-issues/list.d.ts +3 -3
- package/dist/commands/agents/releases/known-issues/update.d.ts +7 -7
- package/dist/commands/agents/releases/list.d.ts +2 -2
- package/dist/commands/agents/releases/restore.d.ts +3 -3
- package/dist/commands/agents/releases/rollback.d.ts +3 -3
- package/dist/commands/agents/releases/test-install.d.ts +6 -6
- package/dist/commands/agents/releases/trusted-publishers/list.d.ts +2 -2
- package/dist/commands/agents/releases/trusted-publishers/remove.d.ts +3 -3
- package/dist/commands/agents/releases/trusted-publishers/set.d.ts +7 -7
- package/dist/commands/agents/revert.d.ts +3 -3
- package/dist/commands/agents/roles/capture.d.ts +7 -7
- package/dist/commands/agents/roles/example.d.ts +2 -2
- package/dist/commands/agents/roles/export.d.ts +5 -5
- package/dist/commands/agents/roles/install.d.ts +4 -4
- package/dist/commands/agents/roles/list.d.ts +2 -2
- package/dist/commands/agents/roles/preview.d.ts +7 -7
- package/dist/commands/agents/roles/withdraw.d.ts +4 -4
- package/dist/commands/agents/scene-background/upload.d.ts +4 -4
- package/dist/commands/agents/schedule-overview.d.ts +6 -6
- package/dist/commands/agents/schedule-trace.d.ts +7 -7
- package/dist/commands/agents/schedule.d.ts +15 -15
- package/dist/commands/agents/share.d.ts +4 -4
- package/dist/commands/agents/show.d.ts +3 -3
- package/dist/commands/agents/skills/add.d.ts +4 -4
- package/dist/commands/agents/skills/list.d.ts +3 -3
- package/dist/commands/agents/skills/remove.d.ts +4 -4
- package/dist/commands/agents/spaces.d.ts +3 -3
- package/dist/commands/agents/spawn.d.ts +12 -12
- package/dist/commands/agents/todos/cancel.d.ts +3 -3
- package/dist/commands/agents/todos/create.d.ts +7 -7
- package/dist/commands/agents/todos/list.d.ts +3 -3
- package/dist/commands/agents/tone/clear.d.ts +3 -3
- package/dist/commands/agents/tone/inherit.d.ts +2 -2
- package/dist/commands/agents/tone/set.d.ts +4 -4
- package/dist/commands/agents/tone/show.d.ts +4 -4
- package/dist/commands/agents/tools/auth.d.ts +2 -2
- package/dist/commands/agents/tools/calls.d.ts +2 -2
- package/dist/commands/agents/tools/index.d.ts +2 -2
- package/dist/commands/agents/transfer-workspace.d.ts +3 -3
- package/dist/commands/agents/triggers/create.d.ts +65 -65
- package/dist/commands/agents/triggers/delete.d.ts +4 -4
- package/dist/commands/agents/triggers/disable.d.ts +3 -3
- package/dist/commands/agents/triggers/enable.d.ts +3 -3
- package/dist/commands/agents/triggers/fire.d.ts +4 -4
- package/dist/commands/agents/triggers/list.d.ts +6 -6
- package/dist/commands/agents/triggers/policy.d.ts +11 -11
- package/dist/commands/agents/triggers/replay.d.ts +5 -5
- package/dist/commands/agents/triggers/runs.d.ts +6 -6
- package/dist/commands/agents/triggers/show.d.ts +3 -3
- package/dist/commands/agents/triggers/update.d.ts +64 -64
- package/dist/commands/agents/unmute.d.ts +2 -2
- package/dist/commands/agents/unpin.d.ts +2 -2
- package/dist/commands/agents/upcoming.d.ts +8 -8
- package/dist/commands/agents/update.d.ts +46 -46
- package/dist/commands/agents/usage-cap.d.ts +7 -7
- package/dist/commands/agents/validate.d.ts +2 -2
- package/dist/commands/agents/vanity.d.ts +3 -3
- package/dist/commands/agents/versions.d.ts +2 -2
- package/dist/commands/agents/visibility.d.ts +17 -17
- package/dist/commands/api-keys/create.d.ts +7 -7
- package/dist/commands/api-keys/list.d.ts +2 -2
- package/dist/commands/api-keys/revoke.d.ts +3 -3
- package/dist/commands/api-keys/rotate.d.ts +3 -3
- package/dist/commands/apps/channel.d.ts +4 -4
- package/dist/commands/apps/check-draft.d.ts +2 -2
- package/dist/commands/apps/check.d.ts +5 -5
- package/dist/commands/apps/create.d.ts +5 -5
- package/dist/commands/apps/data/put.d.ts +8 -8
- package/dist/commands/apps/data/query.d.ts +10 -10
- package/dist/commands/apps/disclosure.d.ts +6 -6
- package/dist/commands/apps/file/cat.d.ts +5 -5
- package/dist/commands/apps/file/ls.d.ts +3 -3
- package/dist/commands/apps/file/mv.d.ts +5 -5
- package/dist/commands/apps/file/rm.d.ts +5 -5
- package/dist/commands/apps/file/write.d.ts +7 -7
- package/dist/commands/apps/install.d.ts +9 -9
- package/dist/commands/apps/installations/list.d.ts +3 -3
- package/dist/commands/apps/installations/show.d.ts +2 -2
- package/dist/commands/apps/layout/set.d.ts +3 -3
- package/dist/commands/apps/layout/show.d.ts +1 -1
- package/dist/commands/apps/list.d.ts +2 -2
- package/dist/commands/apps/logs.d.ts +3 -3
- package/dist/commands/apps/preview.d.ts +2 -2
- package/dist/commands/apps/publish/propose.d.ts +4 -4
- package/dist/commands/apps/pull.d.ts +4 -4
- package/dist/commands/apps/push.d.ts +5 -5
- package/dist/commands/apps/reconsent.d.ts +3 -3
- package/dist/commands/apps/report.d.ts +5 -5
- package/dist/commands/apps/resume.d.ts +2 -2
- package/dist/commands/apps/settings/set.d.ts +4 -4
- package/dist/commands/apps/settings/show.d.ts +2 -2
- package/dist/commands/apps/show.d.ts +2 -2
- package/dist/commands/apps/suspend.d.ts +2 -2
- package/dist/commands/apps/uninstall.d.ts +3 -3
- package/dist/commands/apps/upgrade.d.ts +4 -4
- package/dist/commands/apps/version/create.d.ts +4 -4
- package/dist/commands/apps/version/show.d.ts +2 -2
- package/dist/commands/apps/versions.d.ts +2 -2
- package/dist/commands/apps/webhooks/list.d.ts +2 -2
- package/dist/commands/balance/history.d.ts +3 -3
- package/dist/commands/balance/overage.d.ts +2 -2
- package/dist/commands/balance/plan.d.ts +1 -1
- package/dist/commands/balance/show.d.ts +1 -1
- package/dist/commands/balance/statement.d.ts +5 -5
- package/dist/commands/balance/usage/breakdown.d.ts +4 -4
- package/dist/commands/balance/usage/events.d.ts +5 -5
- package/dist/commands/balance/usage.d.ts +1 -1
- package/dist/commands/browser/cloud-agents.d.ts +2 -2
- package/dist/commands/browser/doctor.d.ts +1 -1
- package/dist/commands/browser/install.d.ts +4 -4
- package/dist/commands/browser/skill/show.d.ts +1 -1
- package/dist/commands/browser/status.d.ts +1 -1
- package/dist/commands/browser/uninstall.d.ts +4 -4
- package/dist/commands/characters/list.d.ts +3 -3
- package/dist/commands/chats/agents/add.d.ts +3 -3
- package/dist/commands/chats/agents/remove.d.ts +3 -3
- package/dist/commands/chats/create.d.ts +4 -4
- package/dist/commands/chats/delete.d.ts +2 -2
- package/dist/commands/chats/files/delete.d.ts +3 -3
- package/dist/commands/chats/files/list.d.ts +2 -2
- package/dist/commands/chats/files/move.d.ts +4 -4
- package/dist/commands/chats/files/rename.d.ts +4 -4
- package/dist/commands/chats/folders/create.d.ts +3 -3
- package/dist/commands/chats/folders/delete.d.ts +3 -3
- package/dist/commands/chats/folders/list.d.ts +2 -2
- package/dist/commands/chats/folders/update.d.ts +4 -4
- package/dist/commands/chats/join.d.ts +2 -2
- package/dist/commands/chats/list.d.ts +5 -5
- package/dist/commands/chats/messages.d.ts +5 -5
- package/dist/commands/chats/preferences/show.d.ts +1 -1
- package/dist/commands/chats/preferences/update.d.ts +3 -3
- package/dist/commands/chats/send.d.ts +9 -9
- package/dist/commands/chats/show.d.ts +2 -2
- package/dist/commands/chats/spaces/create.d.ts +4 -4
- package/dist/commands/chats/spaces/link.d.ts +3 -3
- package/dist/commands/chats/spaces/list.d.ts +2 -2
- package/dist/commands/chats/spaces/unlink.d.ts +3 -3
- package/dist/commands/chats/triggers/set.d.ts +22 -22
- package/dist/commands/chats/triggers/show.d.ts +2 -2
- package/dist/commands/chats/update.d.ts +5 -5
- package/dist/commands/chats/widgets/create.d.ts +5 -5
- package/dist/commands/chats/widgets/delete.d.ts +3 -3
- package/dist/commands/chats/widgets/list.d.ts +2 -2
- package/dist/commands/chats/widgets/update.d.ts +6 -6
- package/dist/commands/code/doctor.d.ts +2 -2
- package/dist/commands/code/handover.d.ts +9 -9
- package/dist/commands/code/install.d.ts +5 -5
- package/dist/commands/code/install.js +2 -34
- package/dist/commands/code/jobs/approve.d.ts +2 -2
- package/dist/commands/code/jobs/cancel.d.ts +2 -2
- package/dist/commands/code/jobs/list.d.ts +4 -4
- package/dist/commands/code/jobs/run.d.ts +9 -9
- package/dist/commands/code/jobs/show.d.ts +2 -2
- package/dist/commands/code/migrate.d.ts +4 -4
- package/dist/commands/code/rollback.d.ts +1 -1
- package/dist/commands/code/skrr-agent.d.ts +5 -5
- package/dist/commands/code/update.d.ts +8 -8
- package/dist/commands/code/update.js +2 -34
- package/dist/commands/commands.d.ts +6 -6
- package/dist/commands/commands.js +2 -1
- package/dist/commands/commerce/entitlements/explain.d.ts +2 -2
- package/dist/commands/commerce/fees/show.d.ts +2 -2
- package/dist/commands/commerce/incidents/audit.d.ts +3 -3
- package/dist/commands/commerce/incidents/list.d.ts +4 -4
- package/dist/commands/commerce/incidents/resolve.d.ts +3 -3
- package/dist/commands/commerce/incidents/retry.d.ts +3 -3
- package/dist/commands/commerce/incidents/show.d.ts +3 -3
- package/dist/commands/commerce/offers/approve.d.ts +2 -2
- package/dist/commands/commerce/offers/create.d.ts +2 -2
- package/dist/commands/commerce/offers/publish.d.ts +2 -2
- package/dist/commands/commerce/offers/retire.d.ts +2 -2
- package/dist/commands/commerce/offers/validate.d.ts +2 -2
- package/dist/commands/commerce/products/create.d.ts +2 -2
- package/dist/commands/commerce/promotions/redeem.d.ts +2 -2
- package/dist/commands/commerce/terms/accept.d.ts +2 -2
- package/dist/commands/commerce/terms/show.d.ts +2 -2
- package/dist/commands/commerce/trials/conversion-preview.d.ts +2 -2
- package/dist/commands/commerce/trials/start.d.ts +4 -4
- package/dist/commands/commitments/accounting.d.ts +2 -2
- package/dist/commands/commitments/action-history.d.ts +4 -4
- package/dist/commands/commitments/action-proposals/decide.d.ts +6 -6
- package/dist/commands/commitments/action-proposals/execute.d.ts +3 -3
- package/dist/commands/commitments/action-proposals/propose.d.ts +10 -10
- package/dist/commands/commitments/action-proposals.d.ts +4 -4
- package/dist/commands/commitments/analytics/detail.d.ts +7 -7
- package/dist/commands/commitments/analytics/index.d.ts +11 -11
- package/dist/commands/commitments/analytics/replay.d.ts +4 -4
- package/dist/commands/commitments/attach.d.ts +4 -4
- package/dist/commands/commitments/bundle.d.ts +4 -4
- package/dist/commands/commitments/cadence-decisions.d.ts +3 -3
- package/dist/commands/commitments/cadence-requests/decide.d.ts +5 -5
- package/dist/commands/commitments/case.d.ts +4 -4
- package/dist/commands/commitments/cases.d.ts +5 -5
- package/dist/commands/commitments/check-now.d.ts +2 -2
- package/dist/commands/commitments/checks.d.ts +4 -4
- package/dist/commands/commitments/complete.d.ts +2 -2
- package/dist/commands/commitments/control/apply.d.ts +5 -5
- package/dist/commands/commitments/control/preview.d.ts +7 -7
- package/dist/commands/commitments/control/show.d.ts +3 -3
- package/dist/commands/commitments/cost.d.ts +4 -4
- package/dist/commands/commitments/create.d.ts +33 -33
- package/dist/commands/commitments/cycles.d.ts +4 -4
- package/dist/commands/commitments/decide-remediation.d.ts +5 -5
- package/dist/commands/commitments/delete.d.ts +5 -5
- package/dist/commands/commitments/delivery.d.ts +7 -7
- package/dist/commands/commitments/detach.d.ts +4 -4
- package/dist/commands/commitments/doctor.d.ts +3 -3
- package/dist/commands/commitments/effective-policy.d.ts +3 -3
- package/dist/commands/commitments/endpoints/connect.d.ts +3 -3
- package/dist/commands/commitments/endpoints/create.d.ts +6 -6
- package/dist/commands/commitments/endpoints/delete.d.ts +3 -3
- package/dist/commands/commitments/endpoints/health.d.ts +5 -5
- package/dist/commands/commitments/endpoints/list.d.ts +2 -2
- package/dist/commands/commitments/endpoints/revoke.d.ts +3 -3
- package/dist/commands/commitments/evaluations.d.ts +5 -5
- package/dist/commands/commitments/execute-remediation.d.ts +4 -4
- package/dist/commands/commitments/explain.d.ts +2 -2
- package/dist/commands/commitments/export.d.ts +5 -5
- package/dist/commands/commitments/feedback.d.ts +5 -5
- package/dist/commands/commitments/fork.d.ts +4 -4
- package/dist/commands/commitments/goals/link.d.ts +3 -3
- package/dist/commands/commitments/goals/unlink.d.ts +3 -3
- package/dist/commands/commitments/handover.d.ts +4 -4
- package/dist/commands/commitments/hypotheses.d.ts +6 -6
- package/dist/commands/commitments/import.d.ts +3 -3
- package/dist/commands/commitments/ledger.d.ts +3 -3
- package/dist/commands/commitments/lineage.d.ts +3 -3
- package/dist/commands/commitments/links/create.d.ts +6 -6
- package/dist/commands/commitments/links/detach.d.ts +3 -3
- package/dist/commands/commitments/links/list.d.ts +3 -3
- package/dist/commands/commitments/links/update.d.ts +5 -5
- package/dist/commands/commitments/list.d.ts +6 -6
- package/dist/commands/commitments/liveness.d.ts +1 -1
- package/dist/commands/commitments/metrics.d.ts +4 -4
- package/dist/commands/commitments/next-tick.d.ts +2 -2
- package/dist/commands/commitments/observation/probe.d.ts +5 -5
- package/dist/commands/commitments/observation/summary.d.ts +2 -2
- package/dist/commands/commitments/observations.d.ts +11 -11
- package/dist/commands/commitments/open.d.ts +4 -4
- package/dist/commands/commitments/operating-review.d.ts +2 -2
- package/dist/commands/commitments/pack/activate.d.ts +2 -2
- package/dist/commands/commitments/pack/bind.d.ts +9 -9
- package/dist/commands/commitments/pack/list.d.ts +1 -1
- package/dist/commands/commitments/pack/plan.d.ts +7 -7
- package/dist/commands/commitments/pack/preflight.d.ts +3 -3
- package/dist/commands/commitments/patch.d.ts +4 -4
- package/dist/commands/commitments/pause.d.ts +2 -2
- package/dist/commands/commitments/plan.d.ts +8 -8
- package/dist/commands/commitments/preflight.d.ts +6 -6
- package/dist/commands/commitments/propose-remediation.d.ts +4 -4
- package/dist/commands/commitments/readiness/show.d.ts +3 -3
- package/dist/commands/commitments/readiness/verify.d.ts +4 -4
- package/dist/commands/commitments/receipt-metrics.d.ts +5 -5
- package/dist/commands/commitments/receipt.d.ts +7 -7
- package/dist/commands/commitments/reflect.d.ts +2 -2
- package/dist/commands/commitments/reflection-decision.d.ts +4 -4
- package/dist/commands/commitments/reflection.d.ts +2 -2
- package/dist/commands/commitments/remediate.d.ts +5 -5
- package/dist/commands/commitments/remediation-proposal.d.ts +3 -3
- package/dist/commands/commitments/remediation-proposals.d.ts +5 -5
- package/dist/commands/commitments/reports.d.ts +8 -8
- package/dist/commands/commitments/restore.d.ts +2 -2
- package/dist/commands/commitments/resume.d.ts +2 -2
- package/dist/commands/commitments/roster.d.ts +2 -2
- package/dist/commands/commitments/show.d.ts +3 -3
- package/dist/commands/commitments/status.d.ts +2 -2
- package/dist/commands/commitments/subject.d.ts +7 -7
- package/dist/commands/commitments/trace.d.ts +4 -4
- package/dist/commands/commitments/trigger-status.d.ts +3 -3
- package/dist/commands/commitments/update.d.ts +26 -26
- package/dist/commands/commitments/wake-capabilities.d.ts +3 -3
- package/dist/commands/commitments/work-plan.d.ts +2 -2
- package/dist/commands/compass/archive.d.ts +5 -5
- package/dist/commands/compass/commitments.d.ts +3 -3
- package/dist/commands/compass/create.d.ts +6 -6
- package/dist/commands/compass/effective-policy.d.ts +3 -3
- package/dist/commands/compass/list.d.ts +4 -4
- package/dist/commands/compass/revert.d.ts +5 -5
- package/dist/commands/compass/revisions.d.ts +4 -4
- package/dist/commands/compass/show.d.ts +3 -3
- package/dist/commands/compass/tactic.d.ts +6 -6
- package/dist/commands/compass/trace.d.ts +4 -4
- package/dist/commands/compass/update.d.ts +10 -10
- package/dist/commands/completion/index.d.ts +2 -2
- package/dist/commands/completion/script.d.ts +1 -1
- package/dist/commands/completion/values.d.ts +2 -2
- package/dist/commands/computer/index.d.ts +2 -2
- package/dist/commands/context.d.ts +2 -2
- package/dist/commands/context.js +18 -4
- package/dist/commands/convos/archive.d.ts +2 -2
- package/dist/commands/convos/delete.d.ts +2 -2
- package/dist/commands/convos/duplicate.d.ts +3 -3
- package/dist/commands/convos/fork.d.ts +6 -6
- package/dist/commands/convos/handover.d.ts +6 -6
- package/dist/commands/convos/import.d.ts +2 -2
- package/dist/commands/convos/import.js +2 -35
- package/dist/commands/convos/list.d.ts +8 -8
- package/dist/commands/convos/messages.d.ts +5 -5
- package/dist/commands/convos/recovery.d.ts +14 -0
- package/dist/commands/convos/recovery.js +62 -0
- package/dist/commands/convos/search.d.ts +4 -4
- package/dist/commands/convos/show.d.ts +2 -2
- package/dist/commands/convos/unarchive.d.ts +2 -2
- package/dist/commands/convos/update.d.ts +4 -4
- package/dist/commands/create-token.d.ts +2 -2
- package/dist/commands/daemon/logs.d.ts +6 -6
- package/dist/commands/daemon/usage.d.ts +3 -3
- package/dist/commands/dm/list.d.ts +1 -1
- package/dist/commands/dm/messages.d.ts +4 -4
- package/dist/commands/dm/show.d.ts +3 -3
- package/dist/commands/dm/thread/broadcast.d.ts +7 -7
- package/dist/commands/dm/thread/follow.d.ts +6 -6
- package/dist/commands/dm/thread/messages.d.ts +7 -7
- package/dist/commands/dm/thread/mute.d.ts +6 -6
- package/dist/commands/dm/thread/share.d.ts +5 -5
- package/dist/commands/dm/thread/show.d.ts +5 -5
- package/dist/commands/dm/threads.d.ts +6 -6
- package/dist/commands/dm/work.d.ts +10 -10
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/earnings/attributions.d.ts +1 -1
- package/dist/commands/earnings/index.d.ts +1 -1
- package/dist/commands/earnings/payouts.d.ts +3 -3
- package/dist/commands/earnings/statements.d.ts +4 -4
- package/dist/commands/engagement/annotate.d.ts +5 -5
- package/dist/commands/engagement/continue.d.ts +3 -3
- package/dist/commands/engagement/react.d.ts +4 -4
- package/dist/commands/engagement/reactions.d.ts +3 -3
- package/dist/commands/engagement/share.d.ts +6 -6
- package/dist/commands/enterprise/budgets/create.d.ts +2 -2
- package/dist/commands/enterprise/budgets/evaluate.d.ts +2 -2
- package/dist/commands/enterprise/budgets/publish.d.ts +3 -3
- package/dist/commands/enterprise/contracts/activate.d.ts +3 -3
- package/dist/commands/enterprise/contracts/create.d.ts +2 -2
- package/dist/commands/enterprise/contracts/issue.d.ts +3 -3
- package/dist/commands/enterprise/domains/begin.d.ts +3 -3
- package/dist/commands/enterprise/domains/verify.d.ts +3 -3
- package/dist/commands/enterprise/external-config/activate.d.ts +2 -2
- package/dist/commands/enterprise/external-config/set.d.ts +6 -6
- package/dist/commands/enterprise/external-config/show.d.ts +2 -2
- package/dist/commands/enterprise/external-config/suspend.d.ts +3 -3
- package/dist/commands/enterprise/finance/close-snapshot.d.ts +2 -2
- package/dist/commands/enterprise/finance/record-document.d.ts +2 -2
- package/dist/commands/enterprise/profile.d.ts +3 -3
- package/dist/commands/feeds/create.d.ts +7 -7
- package/dist/commands/feeds/delete.d.ts +2 -2
- package/dist/commands/feeds/list.d.ts +4 -4
- package/dist/commands/feeds/update.d.ts +6 -6
- package/dist/commands/followups/act.d.ts +10 -10
- package/dist/commands/followups/cancel.d.ts +3 -3
- package/dist/commands/followups/checkin.d.ts +10 -10
- package/dist/commands/followups/list.d.ts +7 -7
- package/dist/commands/followups/observability.d.ts +3 -3
- package/dist/commands/followups/plans/accepted.d.ts +15 -0
- package/dist/commands/followups/plans/accepted.js +76 -0
- package/dist/commands/followups/plans/cancel-batch.d.ts +18 -0
- package/dist/commands/followups/plans/cancel-batch.js +107 -0
- package/dist/commands/followups/plans/cancel.d.ts +4 -4
- package/dist/commands/followups/plans/capacity.d.ts +2 -2
- package/dist/commands/followups/plans/create.d.ts +3 -3
- package/dist/commands/followups/plans/list.d.ts +6 -6
- package/dist/commands/followups/plans/observability.d.ts +4 -4
- package/dist/commands/followups/plans/preferences/set.d.ts +10 -0
- package/dist/commands/followups/plans/preferences/set.js +50 -0
- package/dist/commands/followups/plans/preferences.d.ts +9 -0
- package/dist/commands/followups/plans/preferences.js +29 -0
- package/dist/commands/followups/plans/revise.d.ts +4 -4
- package/dist/commands/followups/plans/show.d.ts +2 -2
- package/dist/commands/followups/plans/show.js +10 -3
- package/dist/commands/followups/remind.d.ts +11 -11
- package/dist/commands/followups/reschedule.d.ts +4 -4
- package/dist/commands/followups/resolve.d.ts +4 -4
- package/dist/commands/followups/show.d.ts +2 -2
- package/dist/commands/followups/watch.d.ts +28 -28
- package/dist/commands/generate-recovery-code.d.ts +4 -4
- package/dist/commands/github/allow-tools.d.ts +10 -10
- package/dist/commands/github/app/install.d.ts +7 -7
- package/dist/commands/github/app/status.d.ts +6 -6
- package/dist/commands/github/connect.d.ts +10 -10
- package/dist/commands/github/connections.d.ts +8 -8
- package/dist/commands/github/disconnect.d.ts +8 -8
- package/dist/commands/github/finalize.d.ts +10 -10
- package/dist/commands/github/reconnect.d.ts +10 -10
- package/dist/commands/github/run.d.ts +12 -12
- package/dist/commands/github/tools.d.ts +11 -11
- package/dist/commands/goals/archive.d.ts +3 -3
- package/dist/commands/goals/briefing/disable.d.ts +1 -1
- package/dist/commands/goals/briefing/enable.d.ts +2 -2
- package/dist/commands/goals/briefing/preview.d.ts +1 -1
- package/dist/commands/goals/create.d.ts +13 -13
- package/dist/commands/goals/delete.d.ts +2 -2
- package/dist/commands/goals/descendants.d.ts +3 -3
- package/dist/commands/goals/key-results/create.d.ts +9 -9
- package/dist/commands/goals/key-results/delete.d.ts +3 -3
- package/dist/commands/goals/key-results/list.d.ts +2 -2
- package/dist/commands/goals/key-results/show.d.ts +3 -3
- package/dist/commands/goals/key-results/update.d.ts +11 -11
- package/dist/commands/goals/labels/add.d.ts +3 -3
- package/dist/commands/goals/labels/list.d.ts +2 -2
- package/dist/commands/goals/labels/remove.d.ts +3 -3
- package/dist/commands/goals/list.d.ts +9 -9
- package/dist/commands/goals/open.d.ts +4 -4
- package/dist/commands/goals/plan-now.d.ts +3 -3
- package/dist/commands/goals/planner-config.d.ts +7 -7
- package/dist/commands/goals/revisions.d.ts +2 -2
- package/dist/commands/goals/show.d.ts +2 -2
- package/dist/commands/goals/tasks.d.ts +5 -5
- package/dist/commands/goals/update.d.ts +13 -13
- package/dist/commands/google-chat/list-channels.d.ts +3 -3
- package/dist/commands/google-chat/list-users.d.ts +4 -4
- package/dist/commands/google-chat/read-channel.d.ts +5 -5
- package/dist/commands/google-chat/read-thread.d.ts +6 -6
- package/dist/commands/google-chat/run.d.ts +5 -5
- package/dist/commands/google-chat/search.d.ts +5 -5
- package/dist/commands/google-chat/send-as-agent.d.ts +6 -6
- package/dist/commands/google-chat/tools.d.ts +2 -2
- package/dist/commands/grants/create.d.ts +11 -11
- package/dist/commands/grants/delete.d.ts +2 -2
- package/dist/commands/grants/list.d.ts +4 -4
- package/dist/commands/grants/revoke.d.ts +3 -3
- package/dist/commands/grants/rotate.d.ts +4 -4
- package/dist/commands/grants/update.d.ts +3 -3
- package/dist/commands/harnesses/alias.d.ts +4 -4
- package/dist/commands/harnesses/forget.d.ts +3 -3
- package/dist/commands/harnesses/grants/add.d.ts +10 -10
- package/dist/commands/harnesses/grants/list.d.ts +3 -3
- package/dist/commands/harnesses/grants/revoke.d.ts +3 -3
- package/dist/commands/harnesses/install-token.d.ts +2 -2
- package/dist/commands/harnesses/install.d.ts +4 -4
- package/dist/commands/harnesses/installers.d.ts +2 -2
- package/dist/commands/harnesses/leases/action.d.ts +4 -4
- package/dist/commands/harnesses/leases/billing.d.ts +4 -4
- package/dist/commands/harnesses/leases/list.d.ts +4 -4
- package/dist/commands/harnesses/leases/release.d.ts +3 -3
- package/dist/commands/harnesses/leases/show.d.ts +2 -2
- package/dist/commands/harnesses/list.d.ts +9 -9
- package/dist/commands/harnesses/models.d.ts +2 -2
- package/dist/commands/harnesses/ping.d.ts +3 -3
- package/dist/commands/harnesses/products.d.ts +1 -1
- package/dist/commands/harnesses/prune.d.ts +4 -4
- package/dist/commands/harnesses/quota.d.ts +7 -7
- package/dist/commands/harnesses/set-default.d.ts +3 -3
- package/dist/commands/harnesses/show.d.ts +2 -2
- package/dist/commands/harnesses/update.d.ts +11 -11
- package/dist/commands/harnesses/usage.d.ts +2 -2
- package/dist/commands/inbox/index.d.ts +7 -7
- package/dist/commands/ingress/create.d.ts +8 -8
- package/dist/commands/ingress/delete.d.ts +2 -2
- package/dist/commands/ingress/list.d.ts +1 -1
- package/dist/commands/ingress/rotate.d.ts +2 -2
- package/dist/commands/initiatives/decide.d.ts +8 -8
- package/dist/commands/initiatives/list.d.ts +6 -6
- package/dist/commands/instruction-blocks/create.d.ts +11 -11
- package/dist/commands/instruction-blocks/delete.d.ts +3 -3
- package/dist/commands/instruction-blocks/list.d.ts +4 -4
- package/dist/commands/instruction-blocks/show.d.ts +2 -2
- package/dist/commands/instruction-blocks/update.d.ts +12 -12
- package/dist/commands/instructions/activate.d.ts +3 -3
- package/dist/commands/instructions/archive-version.d.ts +3 -3
- package/dist/commands/instructions/create.d.ts +6 -6
- package/dist/commands/instructions/delete.d.ts +3 -3
- package/dist/commands/instructions/diff.d.ts +4 -4
- package/dist/commands/instructions/guide.d.ts +8 -8
- package/dist/commands/instructions/guide.js +8 -1
- package/dist/commands/instructions/install.d.ts +10 -10
- package/dist/commands/instructions/list.d.ts +3 -3
- package/dist/commands/instructions/purge-target.d.ts +4 -4
- package/dist/commands/instructions/remove.d.ts +2 -2
- package/dist/commands/instructions/restore-target.d.ts +2 -2
- package/dist/commands/instructions/restore.d.ts +2 -2
- package/dist/commands/instructions/setup.d.ts +6 -6
- package/dist/commands/instructions/show.d.ts +3 -3
- package/dist/commands/instructions/status.d.ts +2 -2
- package/dist/commands/instructions/update-target.d.ts +7 -7
- package/dist/commands/instructions/update.d.ts +8 -8
- package/dist/commands/integrations/connections/connect.d.ts +11 -11
- package/dist/commands/integrations/connections/disconnect.d.ts +9 -9
- package/dist/commands/integrations/connections/finalize.d.ts +10 -10
- package/dist/commands/integrations/connections/list.d.ts +8 -8
- package/dist/commands/integrations/connections/reconnect.d.ts +11 -11
- package/dist/commands/integrations/execute.d.ts +12 -12
- package/dist/commands/integrations/search.d.ts +10 -10
- package/dist/commands/integrations/toolkits.d.ts +7 -7
- package/dist/commands/integrations/tools/allow.d.ts +10 -10
- package/dist/commands/integrations/tools/list.d.ts +9 -9
- package/dist/commands/labels/archive.d.ts +2 -2
- package/dist/commands/labels/create.d.ts +10 -10
- package/dist/commands/labels/delete.d.ts +3 -3
- package/dist/commands/labels/list.d.ts +6 -6
- package/dist/commands/labels/palette.d.ts +1 -1
- package/dist/commands/labels/reorder.d.ts +4 -4
- package/dist/commands/labels/restore.d.ts +3 -3
- package/dist/commands/labels/update.d.ts +11 -11
- package/dist/commands/lark/list-channels.d.ts +3 -3
- package/dist/commands/lark/list-users.d.ts +4 -4
- package/dist/commands/lark/read-channel.d.ts +5 -5
- package/dist/commands/lark/read-thread.d.ts +6 -6
- package/dist/commands/lark/run.d.ts +5 -5
- package/dist/commands/lark/search.d.ts +5 -5
- package/dist/commands/lark/send-as-agent.d.ts +6 -6
- package/dist/commands/lark/tools.d.ts +2 -2
- package/dist/commands/learning/adapters.d.ts +6 -6
- package/dist/commands/learning/delete.d.ts +2 -2
- package/dist/commands/learning/export.d.ts +5 -5
- package/dist/commands/learning/reset.d.ts +2 -2
- package/dist/commands/learning/set.d.ts +3 -3
- package/dist/commands/learning/status.d.ts +1 -1
- package/dist/commands/list-daemons.d.ts +3 -3
- package/dist/commands/list-tokens.d.ts +2 -2
- package/dist/commands/login.d.ts +7 -7
- package/dist/commands/logout.d.ts +2 -2
- package/dist/commands/machines/computer-adoption.d.ts +1 -1
- package/dist/commands/machines/dedicated/agent-browser.d.ts +4 -4
- package/dist/commands/machines/dedicated/archive.d.ts +4 -4
- package/dist/commands/machines/dedicated/attach.d.ts +5 -5
- package/dist/commands/machines/dedicated/audit.d.ts +8 -8
- package/dist/commands/machines/dedicated/catalog.d.ts +1 -1
- package/dist/commands/machines/dedicated/computer.d.ts +4 -4
- package/dist/commands/machines/dedicated/cp.d.ts +6 -6
- package/dist/commands/machines/dedicated/create.d.ts +17 -17
- package/dist/commands/machines/dedicated/current.d.ts +2 -2
- package/dist/commands/machines/dedicated/destroy.d.ts +8 -8
- package/dist/commands/machines/dedicated/exec.d.ts +8 -8
- package/dist/commands/machines/dedicated/git-status.d.ts +3 -3
- package/dist/commands/machines/dedicated/grow.d.ts +7 -7
- package/dist/commands/machines/dedicated/health-check.d.ts +2 -2
- package/dist/commands/machines/dedicated/incident-close.d.ts +3 -3
- package/dist/commands/machines/dedicated/list.d.ts +3 -3
- package/dist/commands/machines/dedicated/logs.d.ts +5 -5
- package/dist/commands/machines/dedicated/ls.d.ts +6 -6
- package/dist/commands/machines/dedicated/mkdir.d.ts +3 -3
- package/dist/commands/machines/dedicated/mv.d.ts +5 -5
- package/dist/commands/machines/dedicated/power/explain.d.ts +2 -2
- package/dist/commands/machines/dedicated/power/keep-awake.d.ts +5 -5
- package/dist/commands/machines/dedicated/power/set.d.ts +6 -6
- package/dist/commands/machines/dedicated/power/show.d.ts +2 -2
- package/dist/commands/machines/dedicated/power/waiting.d.ts +2 -2
- package/dist/commands/machines/dedicated/price-book.d.ts +1 -1
- package/dist/commands/machines/dedicated/restart.d.ts +5 -5
- package/dist/commands/machines/dedicated/restore.d.ts +9 -9
- package/dist/commands/machines/dedicated/rm.d.ts +5 -5
- package/dist/commands/machines/dedicated/search.d.ts +9 -9
- package/dist/commands/machines/dedicated/service/apply.d.ts +3 -3
- package/dist/commands/machines/dedicated/service/approve.d.ts +4 -4
- package/dist/commands/machines/dedicated/service/create.d.ts +16 -16
- package/dist/commands/machines/dedicated/service/edit.d.ts +4 -4
- package/dist/commands/machines/dedicated/service/exec.d.ts +5 -5
- package/dist/commands/machines/dedicated/service/export.d.ts +5 -5
- package/dist/commands/machines/dedicated/service/logs.d.ts +5 -5
- package/dist/commands/machines/dedicated/service/ls.d.ts +2 -2
- package/dist/commands/machines/dedicated/service/restart.d.ts +3 -3
- package/dist/commands/machines/dedicated/service/rm.d.ts +3 -3
- package/dist/commands/machines/dedicated/service/secret/rm.d.ts +4 -4
- package/dist/commands/machines/dedicated/service/secret/set.d.ts +5 -5
- package/dist/commands/machines/dedicated/service/start.d.ts +3 -3
- package/dist/commands/machines/dedicated/service/status.d.ts +3 -3
- package/dist/commands/machines/dedicated/service/stop.d.ts +3 -3
- package/dist/commands/machines/dedicated/service/top.d.ts +3 -3
- package/dist/commands/machines/dedicated/show.d.ts +2 -2
- package/dist/commands/machines/dedicated/sign-in-status.d.ts +2 -2
- package/dist/commands/machines/dedicated/sign-in.d.ts +2 -2
- package/dist/commands/machines/dedicated/snapshot.d.ts +5 -5
- package/dist/commands/machines/dedicated/spending-limit.d.ts +4 -4
- package/dist/commands/machines/dedicated/ssh-config.d.ts +4 -4
- package/dist/commands/machines/dedicated/ssh-proxy.d.ts +1 -1
- package/dist/commands/machines/dedicated/ssh.d.ts +2 -2
- package/dist/commands/machines/dedicated/start.d.ts +5 -5
- package/dist/commands/machines/dedicated/stat.d.ts +4 -4
- package/dist/commands/machines/dedicated/stop.d.ts +5 -5
- package/dist/commands/machines/dedicated/terminal/kill.d.ts +3 -3
- package/dist/commands/machines/dedicated/terminal/ls.d.ts +2 -2
- package/dist/commands/machines/dedicated/terminal/rename.d.ts +4 -4
- package/dist/commands/machines/dedicated/terminal.d.ts +6 -6
- package/dist/commands/machines/dedicated/update-image.d.ts +5 -5
- package/dist/commands/machines/disconnect.d.ts +3 -3
- package/dist/commands/machines/hosted/connect.d.ts +4 -4
- package/dist/commands/machines/hosted/destroy.d.ts +3 -3
- package/dist/commands/machines/hosted/exec.d.ts +7 -7
- package/dist/commands/machines/hosted/list.d.ts +4 -4
- package/dist/commands/machines/hosted/pause.d.ts +3 -3
- package/dist/commands/machines/hosted/pull.d.ts +9 -9
- package/dist/commands/machines/hosted/resume.d.ts +6 -6
- package/dist/commands/machines/hosted/start.d.ts +18 -18
- package/dist/commands/machines/hosted/status.d.ts +6 -6
- package/dist/commands/machines/list.d.ts +2 -2
- package/dist/commands/machines/services/declare.d.ts +6 -6
- package/dist/commands/machines/services/ls.d.ts +2 -2
- package/dist/commands/machines/services/withdraw.d.ts +3 -3
- package/dist/commands/machines/share.d.ts +4 -4
- package/dist/commands/machines/shared.d.ts +1 -1
- package/dist/commands/machines/shares.d.ts +2 -2
- package/dist/commands/machines/show.d.ts +3 -3
- package/dist/commands/machines/unshare.d.ts +3 -3
- package/dist/commands/machines/update.d.ts +6 -6
- package/dist/commands/managed-execution/show.d.ts +1 -1
- package/dist/commands/measures/confirm.d.ts +4 -4
- package/dist/commands/measures/create.d.ts +10 -10
- package/dist/commands/measures/list.d.ts +4 -4
- package/dist/commands/measures/record.d.ts +7 -7
- package/dist/commands/measures/show.d.ts +2 -2
- package/dist/commands/measures/tasks.d.ts +7 -7
- package/dist/commands/memory/approvals/issue.d.ts +11 -11
- package/dist/commands/memory/commit.d.ts +5 -5
- package/dist/commands/memory/context.d.ts +8 -8
- package/dist/commands/memory/daily-log.d.ts +3 -3
- package/dist/commands/memory/delete.d.ts +5 -5
- package/dist/commands/memory/governance/index.d.ts +2 -2
- package/dist/commands/memory/governance/set.d.ts +7 -7
- package/dist/commands/memory/list.d.ts +4 -4
- package/dist/commands/memory/maintain.d.ts +4 -4
- package/dist/commands/memory/mounts/resolve.d.ts +3 -3
- package/dist/commands/memory/observe.d.ts +9 -9
- package/dist/commands/memory/preferences.d.ts +3 -3
- package/dist/commands/memory/proposals/commit.d.ts +9 -9
- package/dist/commands/memory/proposals/create.d.ts +11 -11
- package/dist/commands/memory/proposals/list.d.ts +6 -6
- package/dist/commands/memory/proposals/promote.d.ts +15 -15
- package/dist/commands/memory/proposals/reject.d.ts +7 -7
- package/dist/commands/memory/provenance.d.ts +3 -3
- package/dist/commands/memory/read.d.ts +5 -5
- package/dist/commands/memory/rebuild-index.d.ts +11 -11
- package/dist/commands/memory/rebuild.d.ts +3 -3
- package/dist/commands/memory/save.d.ts +7 -7
- package/dist/commands/memory/search.d.ts +10 -10
- package/dist/commands/memory/show.d.ts +5 -5
- package/dist/commands/memory/stores/archive.d.ts +7 -7
- package/dist/commands/memory/stores/create.d.ts +5 -5
- package/dist/commands/memory/stores/delete.d.ts +8 -8
- package/dist/commands/memory/stores/list.d.ts +3 -3
- package/dist/commands/memory/stores/show.d.ts +5 -5
- package/dist/commands/memory/stores/update.d.ts +8 -8
- package/dist/commands/memory/sync/delete.d.ts +4 -4
- package/dist/commands/memory/sync/pull.d.ts +12 -12
- package/dist/commands/memory/sync/push.d.ts +11 -11
- package/dist/commands/memory/sync/resolve.d.ts +14 -14
- package/dist/commands/memory/sync/status.d.ts +2 -2
- package/dist/commands/memory/topics/archive.d.ts +11 -11
- package/dist/commands/memory/topics/create.d.ts +16 -16
- package/dist/commands/memory/topics/delete.d.ts +13 -13
- package/dist/commands/memory/topics/forget.d.ts +13 -13
- package/dist/commands/memory/topics/list.d.ts +6 -6
- package/dist/commands/memory/topics/move.d.ts +13 -13
- package/dist/commands/memory/topics/show.d.ts +8 -8
- package/dist/commands/memory/topics/update.d.ts +14 -14
- package/dist/commands/memory/tree.d.ts +6 -6
- package/dist/commands/memory/update.d.ts +7 -7
- package/dist/commands/memory/versions/list.d.ts +7 -7
- package/dist/commands/memory/versions/redact.d.ts +12 -12
- package/dist/commands/memory/versions/restore.d.ts +11 -11
- package/dist/commands/memory/versions/show.d.ts +6 -6
- package/dist/commands/messages/edit-artifact.d.ts +6 -6
- package/dist/commands/messages/feedback.d.ts +7 -7
- package/dist/commands/messages/list.d.ts +5 -5
- package/dist/commands/messages/show.d.ts +3 -3
- package/dist/commands/messages/update-content.d.ts +5 -5
- package/dist/commands/messages/update.d.ts +5 -5
- package/dist/commands/native/allow-all.d.ts +2 -2
- package/dist/commands/native/allow.d.ts +3 -3
- package/dist/commands/native/deny.d.ts +3 -3
- package/dist/commands/native/disable.d.ts +2 -2
- package/dist/commands/native/enable.d.ts +3 -3
- package/dist/commands/native/list-apps.d.ts +2 -2
- package/dist/commands/native/restrict-to.d.ts +3 -3
- package/dist/commands/native/status.d.ts +2 -2
- package/dist/commands/native.d.ts +1 -1
- package/dist/commands/northstars/create.d.ts +12 -12
- package/dist/commands/northstars/delete.d.ts +3 -3
- package/dist/commands/northstars/governance/configure.d.ts +20 -20
- package/dist/commands/northstars/governance/show.d.ts +2 -2
- package/dist/commands/northstars/intents/decide.d.ts +6 -6
- package/dist/commands/northstars/intents/list.d.ts +4 -4
- package/dist/commands/northstars/link.d.ts +4 -4
- package/dist/commands/northstars/list.d.ts +3 -3
- package/dist/commands/northstars/recommendations/apply.d.ts +3 -3
- package/dist/commands/northstars/recommendations/dismiss.d.ts +3 -3
- package/dist/commands/northstars/recommendations/list.d.ts +3 -3
- package/dist/commands/northstars/review-now.d.ts +2 -2
- package/dist/commands/northstars/reviews.d.ts +5 -5
- package/dist/commands/northstars/show.d.ts +2 -2
- package/dist/commands/northstars/unlink.d.ts +3 -3
- package/dist/commands/northstars/update.d.ts +15 -15
- package/dist/commands/open.d.ts +3 -3
- package/dist/commands/outbox/drop.d.ts +2 -2
- package/dist/commands/outbox/list.d.ts +1 -1
- package/dist/commands/outbox/retry.d.ts +3 -3
- package/dist/commands/payments/wallet.d.ts +2 -2
- package/dist/commands/profiles/list.d.ts +1 -1
- package/dist/commands/projects/activity.d.ts +5 -5
- package/dist/commands/projects/archive.d.ts +5 -5
- package/dist/commands/projects/create.d.ts +9 -9
- package/dist/commands/projects/delete.d.ts +5 -5
- package/dist/commands/projects/docs/attach.d.ts +5 -5
- package/dist/commands/projects/docs/detach.d.ts +5 -5
- package/dist/commands/projects/docs/list.d.ts +3 -3
- package/dist/commands/projects/goals.d.ts +6 -6
- package/dist/commands/projects/list.d.ts +9 -9
- package/dist/commands/projects/members.d.ts +7 -7
- package/dist/commands/projects/open.d.ts +5 -5
- package/dist/commands/projects/overview.d.ts +5 -5
- package/dist/commands/projects/promote.d.ts +4 -4
- package/dist/commands/projects/reorder.d.ts +4 -4
- package/dist/commands/projects/revisions.d.ts +5 -5
- package/dist/commands/projects/show.d.ts +3 -3
- package/dist/commands/projects/summary.d.ts +3 -3
- package/dist/commands/projects/tasks.d.ts +6 -6
- package/dist/commands/projects/update.d.ts +8 -8
- package/dist/commands/projects/updates/add.d.ts +10 -10
- package/dist/commands/projects/updates/archive.d.ts +4 -4
- package/dist/commands/projects/updates/cadence.d.ts +10 -10
- package/dist/commands/projects/updates/draft.d.ts +4 -4
- package/dist/commands/projects/updates/edit.d.ts +10 -10
- package/dist/commands/projects/updates/list.d.ts +5 -5
- package/dist/commands/projects/updates/post.d.ts +7 -7
- package/dist/commands/projects/updates/show.d.ts +4 -4
- package/dist/commands/projects/upsert.d.ts +9 -9
- package/dist/commands/proposals/discard.d.ts +2 -2
- package/dist/commands/proposals/keep.d.ts +2 -2
- package/dist/commands/proposals/list.d.ts +8 -8
- package/dist/commands/proposals/show.d.ts +3 -3
- package/dist/commands/proposals/snooze.d.ts +2 -2
- package/dist/commands/requests/cancel.d.ts +2 -2
- package/dist/commands/requests/comments/add.d.ts +5 -5
- package/dist/commands/requests/comments/delete.d.ts +3 -3
- package/dist/commands/requests/comments/list.d.ts +3 -3
- package/dist/commands/requests/create.d.ts +9 -9
- package/dist/commands/requests/list.d.ts +3 -3
- package/dist/commands/requests/pending.d.ts +1 -1
- package/dist/commands/requests/resolve.d.ts +6 -6
- package/dist/commands/requests/show.d.ts +2 -2
- package/dist/commands/revoke-daemon.d.ts +3 -3
- package/dist/commands/revoke-token.d.ts +2 -2
- package/dist/commands/search/agents.d.ts +4 -4
- package/dist/commands/search/all.d.ts +3 -3
- package/dist/commands/search/skills.d.ts +5 -5
- package/dist/commands/search/spaces.d.ts +5 -5
- package/dist/commands/search/tasks.d.ts +6 -6
- package/dist/commands/search/teams.d.ts +3 -3
- package/dist/commands/security/overview.d.ts +2 -2
- package/dist/commands/service/logs.d.ts +3 -3
- package/dist/commands/service/ls.d.ts +1 -1
- package/dist/commands/service/propose.d.ts +12 -12
- package/dist/commands/service/status.d.ts +2 -2
- package/dist/commands/set-capabilities.d.ts +3 -3
- package/dist/commands/shares/create.d.ts +3 -3
- package/dist/commands/shares/delete.d.ts +2 -2
- package/dist/commands/shares/get.d.ts +2 -2
- package/dist/commands/shares/link-for.d.ts +2 -2
- package/dist/commands/shares/list.d.ts +7 -7
- package/dist/commands/shares/update.d.ts +2 -2
- package/dist/commands/shortcuts/create.d.ts +11 -11
- package/dist/commands/shortcuts/create.js +1 -34
- package/dist/commands/shortcuts/delete.d.ts +2 -2
- package/dist/commands/shortcuts/list.d.ts +2 -2
- package/dist/commands/shortcuts/reorder.d.ts +3 -3
- package/dist/commands/shortcuts/show.d.ts +2 -2
- package/dist/commands/shortcuts/trigger.d.ts +2 -2
- package/dist/commands/shortcuts/update.d.ts +11 -11
- package/dist/commands/shortcuts/update.js +1 -34
- package/dist/commands/signals/monitors/create.d.ts +2 -2
- package/dist/commands/signals/monitors/list.d.ts +1 -1
- package/dist/commands/signals/monitors/pause.d.ts +2 -2
- package/dist/commands/signals/monitors/resume.d.ts +2 -2
- package/dist/commands/signals/monitors/revise.d.ts +3 -3
- package/dist/commands/signals/monitors/show.d.ts +2 -2
- package/dist/commands/signals/monitors/test.d.ts +3 -3
- package/dist/commands/signals/monitors/transitions.d.ts +2 -2
- package/dist/commands/signals/monitors/validate.d.ts +2 -2
- package/dist/commands/signals/schemas/list.d.ts +1 -1
- package/dist/commands/signals/schemas/show.d.ts +2 -2
- package/dist/commands/signals/sources/list.d.ts +1 -1
- package/dist/commands/signals/sources/receipts.d.ts +2 -2
- package/dist/commands/signals/sources/show.d.ts +2 -2
- package/dist/commands/skills/browse.d.ts +4 -4
- package/dist/commands/skills/categories.d.ts +3 -3
- package/dist/commands/skills/details.d.ts +2 -2
- package/dist/commands/skills/duplicate.d.ts +4 -4
- package/dist/commands/skills/featured.d.ts +2 -2
- package/dist/commands/skills/import-as-actions.d.ts +9 -9
- package/dist/commands/skills/install.d.ts +4 -4
- package/dist/commands/skills/invocable.d.ts +3 -3
- package/dist/commands/skills/library.d.ts +4 -4
- package/dist/commands/skills/local.d.ts +5 -5
- package/dist/commands/skills/search.d.ts +5 -5
- package/dist/commands/skills/visibility.d.ts +5 -5
- package/dist/commands/slack/list-channels.d.ts +7 -7
- package/dist/commands/slack/list-usergroups.d.ts +4 -4
- package/dist/commands/slack/list-users.d.ts +7 -7
- package/dist/commands/slack/read-channel.d.ts +8 -8
- package/dist/commands/slack/read-thread.d.ts +7 -7
- package/dist/commands/slack/run.d.ts +5 -5
- package/dist/commands/slack/search.d.ts +8 -8
- package/dist/commands/slack/send-as-agent.d.ts +8 -8
- package/dist/commands/slack/tools.d.ts +2 -2
- package/dist/commands/space-directory-views/create.d.ts +6 -6
- package/dist/commands/space-directory-views/delete.d.ts +4 -4
- package/dist/commands/space-directory-views/list.d.ts +1 -1
- package/dist/commands/space-directory-views/show.d.ts +2 -2
- package/dist/commands/space-directory-views/update.d.ts +7 -7
- package/dist/commands/spaces/actions/add.d.ts +9 -9
- package/dist/commands/spaces/actions/available.d.ts +2 -2
- package/dist/commands/spaces/actions/delete.d.ts +4 -4
- package/dist/commands/spaces/actions/list.d.ts +3 -3
- package/dist/commands/spaces/actions/replace.d.ts +5 -5
- package/dist/commands/spaces/actions/run.d.ts +3 -3
- package/dist/commands/spaces/actions/update.d.ts +9 -9
- package/dist/commands/spaces/archive.d.ts +2 -2
- package/dist/commands/spaces/auto-executor/preview.d.ts +2 -2
- package/dist/commands/spaces/auto-executor/run.d.ts +2 -2
- package/dist/commands/spaces/auto-executor/runs.d.ts +3 -3
- package/dist/commands/spaces/auto-executor/update.d.ts +11 -11
- package/dist/commands/spaces/bootstrap.d.ts +2 -2
- package/dist/commands/spaces/briefs/delete.d.ts +4 -4
- package/dist/commands/spaces/briefs/get.d.ts +4 -4
- package/dist/commands/spaces/briefs/list.d.ts +2 -2
- package/dist/commands/spaces/briefs/set.d.ts +10 -10
- package/dist/commands/spaces/capacity.d.ts +3 -3
- package/dist/commands/spaces/claim.d.ts +2 -2
- package/dist/commands/spaces/conversations.d.ts +4 -4
- package/dist/commands/spaces/create.d.ts +17 -17
- package/dist/commands/spaces/cycles/create.d.ts +7 -7
- package/dist/commands/spaces/cycles/graph.d.ts +4 -4
- package/dist/commands/spaces/cycles/list.d.ts +4 -4
- package/dist/commands/spaces/cycles/settings.d.ts +6 -6
- package/dist/commands/spaces/cycles/show.d.ts +3 -3
- package/dist/commands/spaces/cycles/update.d.ts +8 -8
- package/dist/commands/spaces/delete.d.ts +2 -2
- package/dist/commands/spaces/expertise-suggestions.d.ts +2 -2
- package/dist/commands/spaces/files/delete.d.ts +4 -4
- package/dist/commands/spaces/files/folders/create.d.ts +5 -5
- package/dist/commands/spaces/files/folders/delete.d.ts +5 -5
- package/dist/commands/spaces/files/folders/list.d.ts +2 -2
- package/dist/commands/spaces/files/folders/update.d.ts +7 -7
- package/dist/commands/spaces/files/list.d.ts +2 -2
- package/dist/commands/spaces/files/move.d.ts +5 -5
- package/dist/commands/spaces/files/rename.d.ts +4 -4
- package/dist/commands/spaces/files/upload.d.ts +4 -4
- package/dist/commands/spaces/github-automations/set.d.ts +3 -3
- package/dist/commands/spaces/github-automations/show.d.ts +2 -2
- package/dist/commands/spaces/goals.d.ts +2 -2
- package/dist/commands/spaces/heartbeats/create.d.ts +11 -11
- package/dist/commands/spaces/heartbeats/delete.d.ts +4 -4
- package/dist/commands/spaces/heartbeats/list.d.ts +2 -2
- package/dist/commands/spaces/heartbeats/status.d.ts +3 -3
- package/dist/commands/spaces/heartbeats/update.d.ts +12 -12
- package/dist/commands/spaces/index.d.ts +1 -1
- package/dist/commands/spaces/insights.d.ts +14 -14
- package/dist/commands/spaces/install-template.d.ts +7 -7
- package/dist/commands/spaces/label-summaries.d.ts +1 -1
- package/dist/commands/spaces/labels/add.d.ts +3 -3
- package/dist/commands/spaces/labels/list.d.ts +2 -2
- package/dist/commands/spaces/labels/remove.d.ts +3 -3
- package/dist/commands/spaces/list.d.ts +11 -11
- package/dist/commands/spaces/live/cards/create.d.ts +10 -10
- package/dist/commands/spaces/live/cards/delete.d.ts +4 -4
- package/dist/commands/spaces/live/cards/list.d.ts +2 -2
- package/dist/commands/spaces/live/cards/reorder.d.ts +4 -4
- package/dist/commands/spaces/live/cards/update.d.ts +11 -11
- package/dist/commands/spaces/live/scene.d.ts +4 -4
- package/dist/commands/spaces/members/add.d.ts +8 -8
- package/dist/commands/spaces/members/list.d.ts +3 -3
- package/dist/commands/spaces/members/remove.d.ts +5 -5
- package/dist/commands/spaces/members/search.d.ts +3 -3
- package/dist/commands/spaces/move.d.ts +4 -4
- package/dist/commands/spaces/open.d.ts +4 -4
- package/dist/commands/spaces/ownership.d.ts +2 -2
- package/dist/commands/spaces/pin.d.ts +2 -2
- package/dist/commands/spaces/preferences/show.d.ts +2 -2
- package/dist/commands/spaces/preferences/tabs.d.ts +5 -5
- package/dist/commands/spaces/reorder.d.ts +6 -6
- package/dist/commands/spaces/revisions.d.ts +2 -2
- package/dist/commands/spaces/room/ensure.d.ts +2 -2
- package/dist/commands/spaces/room/messages.d.ts +5 -5
- package/dist/commands/spaces/room/send.d.ts +8 -8
- package/dist/commands/spaces/room/show.d.ts +2 -2
- package/dist/commands/spaces/show.d.ts +2 -2
- package/dist/commands/spaces/skills/add.d.ts +3 -3
- package/dist/commands/spaces/skills/list.d.ts +2 -2
- package/dist/commands/spaces/skills/pin.d.ts +4 -4
- package/dist/commands/spaces/skills/remove.d.ts +3 -3
- package/dist/commands/spaces/snapshot.d.ts +11 -11
- package/dist/commands/spaces/states/archive.d.ts +3 -3
- package/dist/commands/spaces/states/create.d.ts +7 -7
- package/dist/commands/spaces/states/list.d.ts +2 -2
- package/dist/commands/spaces/states/reorder.d.ts +3 -3
- package/dist/commands/spaces/states/update.d.ts +6 -6
- package/dist/commands/spaces/subspaces.d.ts +3 -3
- package/dist/commands/spaces/summary.d.ts +2 -2
- package/dist/commands/spaces/task-rollups.d.ts +1 -1
- package/dist/commands/spaces/tasks.d.ts +7 -7
- package/dist/commands/spaces/templates/create.d.ts +9 -9
- package/dist/commands/spaces/templates/delete.d.ts +3 -3
- package/dist/commands/spaces/templates/fork.d.ts +4 -4
- package/dist/commands/spaces/templates/index.d.ts +7 -7
- package/dist/commands/spaces/templates/purchase-status.d.ts +2 -2
- package/dist/commands/spaces/templates/rate.d.ts +4 -4
- package/dist/commands/spaces/templates/report.d.ts +4 -4
- package/dist/commands/spaces/templates/show.d.ts +3 -3
- package/dist/commands/spaces/templates/update.d.ts +11 -11
- package/dist/commands/spaces/templates/visibility.d.ts +7 -7
- package/dist/commands/spaces/transfer-workspace.d.ts +3 -3
- package/dist/commands/spaces/triggers/delete.d.ts +3 -3
- package/dist/commands/spaces/triggers/set.d.ts +26 -26
- package/dist/commands/spaces/triggers/show.d.ts +2 -2
- package/dist/commands/spaces/unarchive.d.ts +2 -2
- package/dist/commands/spaces/update.d.ts +26 -26
- package/dist/commands/spaces/usage.d.ts +3 -3
- package/dist/commands/spaces/views/create.d.ts +8 -8
- package/dist/commands/spaces/views/delete.d.ts +4 -4
- package/dist/commands/spaces/views/duplicate.d.ts +3 -3
- package/dist/commands/spaces/views/list.d.ts +2 -2
- package/dist/commands/spaces/views/reorder.d.ts +5 -5
- package/dist/commands/spaces/views/subscribe.d.ts +7 -7
- package/dist/commands/spaces/views/subscriptions.d.ts +3 -3
- package/dist/commands/spaces/views/unsubscribe.d.ts +3 -3
- package/dist/commands/spaces/views/update.d.ts +10 -10
- package/dist/commands/spaces/widgets/add.d.ts +4 -4
- package/dist/commands/spaces/widgets/list.d.ts +2 -2
- package/dist/commands/spaces/widgets/remove.d.ts +4 -4
- package/dist/commands/spaces/work-graph.d.ts +4 -4
- package/dist/commands/spaces/work-sync/reconcile.d.ts +2 -2
- package/dist/commands/spaces/work-sync/telemetry.d.ts +3 -3
- package/dist/commands/spaces/workflow-templates/archive.d.ts +4 -4
- package/dist/commands/spaces/workflow-templates/create.d.ts +8 -8
- package/dist/commands/spaces/workflow-templates/extract.d.ts +9 -9
- package/dist/commands/spaces/workflow-templates/insert.d.ts +9 -9
- package/dist/commands/spaces/workflow-templates/list.d.ts +7 -7
- package/dist/commands/spaces/workflow-templates/promote.d.ts +5 -5
- package/dist/commands/spaces/workflow-templates/publish.d.ts +4 -4
- package/dist/commands/spaces/workflow-templates/show.d.ts +5 -5
- package/dist/commands/spaces/workflow-templates/update.d.ts +8 -8
- package/dist/commands/spaces/workflow-templates/versions.d.ts +3 -3
- package/dist/commands/spaces/workflows/archive.d.ts +4 -4
- package/dist/commands/spaces/workflows/artifact.d.ts +5 -5
- package/dist/commands/spaces/workflows/cancel-node.d.ts +6 -6
- package/dist/commands/spaces/workflows/cancel.d.ts +5 -5
- package/dist/commands/spaces/workflows/create.d.ts +7 -7
- package/dist/commands/spaces/workflows/events.d.ts +4 -4
- package/dist/commands/spaces/workflows/fixtures/create.d.ts +11 -11
- package/dist/commands/spaces/workflows/fixtures/list.d.ts +4 -4
- package/dist/commands/spaces/workflows/lifecycle-diagnostics.d.ts +2 -2
- package/dist/commands/spaces/workflows/list.d.ts +2 -2
- package/dist/commands/spaces/workflows/node-types.d.ts +2 -2
- package/dist/commands/spaces/workflows/pause.d.ts +5 -5
- package/dist/commands/spaces/workflows/plan/show.d.ts +3 -3
- package/dist/commands/spaces/workflows/plan/update.d.ts +7 -7
- package/dist/commands/spaces/workflows/proposals/apply.d.ts +5 -5
- package/dist/commands/spaces/workflows/proposals/confirm.d.ts +5 -5
- package/dist/commands/spaces/workflows/proposals/create.d.ts +7 -7
- package/dist/commands/spaces/workflows/proposals/dismiss.d.ts +5 -5
- package/dist/commands/spaces/workflows/proposals/list.d.ts +3 -3
- package/dist/commands/spaces/workflows/publish.d.ts +3 -3
- package/dist/commands/spaces/workflows/reconcile.d.ts +3 -3
- package/dist/commands/spaces/workflows/resume.d.ts +4 -4
- package/dist/commands/spaces/workflows/retry.d.ts +4 -4
- package/dist/commands/spaces/workflows/run.d.ts +4 -4
- package/dist/commands/spaces/workflows/runs.d.ts +6 -6
- package/dist/commands/spaces/workflows/show.d.ts +3 -3
- package/dist/commands/spaces/workflows/signal.d.ts +7 -7
- package/dist/commands/spaces/workflows/start.d.ts +6 -6
- package/dist/commands/spaces/workflows/task-execution/create.d.ts +5 -5
- package/dist/commands/spaces/workflows/test.d.ts +7 -7
- package/dist/commands/spaces/workflows/triggers/create.d.ts +7 -7
- package/dist/commands/spaces/workflows/triggers/fire.d.ts +7 -7
- package/dist/commands/spaces/workflows/triggers/list.d.ts +3 -3
- package/dist/commands/spaces/workflows/triggers/update.d.ts +8 -8
- package/dist/commands/spaces/workflows/update.d.ts +13 -13
- package/dist/commands/spaces/workflows/validate.d.ts +3 -3
- package/dist/commands/step-up.d.ts +4 -4
- package/dist/commands/store/acquisitions/approve.d.ts +3 -3
- package/dist/commands/store/acquisitions/decline.d.ts +2 -2
- package/dist/commands/store/acquisitions/list.d.ts +3 -3
- package/dist/commands/store/acquisitions/show.d.ts +2 -2
- package/dist/commands/store/admissions/approve.d.ts +5 -5
- package/dist/commands/store/admissions/list.d.ts +2 -2
- package/dist/commands/store/admissions/refuse.d.ts +5 -5
- package/dist/commands/store/advisories/artifact.d.ts +6 -6
- package/dist/commands/store/advisories/cancel.d.ts +2 -2
- package/dist/commands/store/advisories/close.d.ts +4 -4
- package/dist/commands/store/advisories/confirm.d.ts +3 -3
- package/dist/commands/store/advisories/issue.d.ts +6 -6
- package/dist/commands/store/advisories/list.d.ts +4 -4
- package/dist/commands/store/advisories/show.d.ts +2 -2
- package/dist/commands/store/artifacts/release.d.ts +8 -8
- package/dist/commands/store/artifacts/used-by.d.ts +3 -3
- package/dist/commands/store/browse.d.ts +11 -11
- package/dist/commands/store/channel.d.ts +3 -3
- package/dist/commands/store/follow.d.ts +4 -4
- package/dist/commands/store/follows/list.d.ts +2 -2
- package/dist/commands/store/follows/remove.d.ts +2 -2
- package/dist/commands/store/governance/artifacts.d.ts +8 -8
- package/dist/commands/store/governance/assign.d.ts +5 -5
- package/dist/commands/store/governance/create-license.d.ts +2 -2
- package/dist/commands/store/governance/install-plan.d.ts +6 -6
- package/dist/commands/store/governance/license-policy.d.ts +6 -6
- package/dist/commands/store/governance/policy.d.ts +7 -7
- package/dist/commands/store/governance/publish-release.d.ts +2 -2
- package/dist/commands/store/governance/requests.d.ts +7 -7
- package/dist/commands/store/install.d.ts +9 -9
- package/dist/commands/store/installs.d.ts +1 -1
- package/dist/commands/store/issues.d.ts +10 -10
- package/dist/commands/store/maintainers/add.d.ts +4 -4
- package/dist/commands/store/maintainers/remove.d.ts +5 -5
- package/dist/commands/store/publishers/approve.d.ts +4 -4
- package/dist/commands/store/publishers/cancel.d.ts +2 -2
- package/dist/commands/store/publishers/claim.d.ts +3 -3
- package/dist/commands/store/publishers/confirm.d.ts +2 -2
- package/dist/commands/store/publishers/domains/begin.d.ts +3 -3
- package/dist/commands/store/publishers/domains/list.d.ts +2 -2
- package/dist/commands/store/publishers/domains/verify.d.ts +3 -3
- package/dist/commands/store/publishers/namespaces.d.ts +1 -1
- package/dist/commands/store/publishers/profile/draft.d.ts +4 -4
- package/dist/commands/store/publishers/profile/handle.d.ts +3 -3
- package/dist/commands/store/publishers/profile/hide.d.ts +3 -3
- package/dist/commands/store/publishers/profile/preview.d.ts +2 -2
- package/dist/commands/store/publishers/profile/publish.d.ts +3 -3
- package/dist/commands/store/publishers/profile/restore.d.ts +4 -4
- package/dist/commands/store/publishers/profile/revisions.d.ts +2 -2
- package/dist/commands/store/publishers/profile/show.d.ts +2 -2
- package/dist/commands/store/publishers/verified.d.ts +2 -2
- package/dist/commands/store/refund.d.ts +5 -5
- package/dist/commands/store/releases.d.ts +2 -2
- package/dist/commands/store/report.d.ts +5 -5
- package/dist/commands/store/reports/confirm-ban.d.ts +3 -3
- package/dist/commands/store/reports/disposition.d.ts +4 -4
- package/dist/commands/store/reports/list.d.ts +4 -4
- package/dist/commands/store/reports/withdraw-ban.d.ts +3 -3
- package/dist/commands/store/reports.d.ts +2 -2
- package/dist/commands/store/review.d.ts +5 -5
- package/dist/commands/store/reviews.d.ts +8 -8
- package/dist/commands/store/show.d.ts +2 -2
- package/dist/commands/store/signals.d.ts +2 -2
- package/dist/commands/store/star.d.ts +3 -3
- package/dist/commands/store/stars.d.ts +1 -1
- package/dist/commands/store/stats.d.ts +3 -3
- package/dist/commands/store/tip.d.ts +4 -4
- package/dist/commands/store/trial.d.ts +2 -2
- package/dist/commands/store/uninstall.d.ts +4 -4
- package/dist/commands/store/update.d.ts +7 -7
- package/dist/commands/store/updates.d.ts +1 -1
- package/dist/commands/store/watch.d.ts +3 -3
- package/dist/commands/subscriptions/cancel.d.ts +4 -4
- package/dist/commands/subscriptions/health.d.ts +2 -2
- package/dist/commands/subscriptions/list.d.ts +1 -1
- package/dist/commands/subscriptions/status.d.ts +2 -2
- package/dist/commands/subscriptions/subscribe.d.ts +6 -6
- package/dist/commands/tasks/actionability.d.ts +3 -3
- package/dist/commands/tasks/actions/attach.d.ts +5 -5
- package/dist/commands/tasks/actions/detach.d.ts +5 -5
- package/dist/commands/tasks/active.d.ts +4 -4
- package/dist/commands/tasks/activity.d.ts +3 -3
- package/dist/commands/tasks/ancestors.d.ts +2 -2
- package/dist/commands/tasks/approvals/create.d.ts +5 -5
- package/dist/commands/tasks/approvals/delete.d.ts +3 -3
- package/dist/commands/tasks/approvals/list.d.ts +2 -2
- package/dist/commands/tasks/approvals/resolve.d.ts +5 -5
- package/dist/commands/tasks/archive.d.ts +3 -3
- package/dist/commands/tasks/assign.d.ts +13 -13
- package/dist/commands/tasks/attachments/delete.d.ts +3 -3
- package/dist/commands/tasks/attachments/download.d.ts +4 -4
- package/dist/commands/tasks/attachments/list.d.ts +2 -2
- package/dist/commands/tasks/attachments/set-role.d.ts +4 -4
- package/dist/commands/tasks/attachments/upload.d.ts +4 -4
- package/dist/commands/tasks/bulk-update.d.ts +5 -5
- package/dist/commands/tasks/calendar.d.ts +3 -3
- package/dist/commands/tasks/cancel-cascade.d.ts +3 -3
- package/dist/commands/tasks/cascade-status.d.ts +2 -2
- package/dist/commands/tasks/chat/exchange.d.ts +8 -8
- package/dist/commands/tasks/chat/index.d.ts +8 -8
- package/dist/commands/tasks/chat/read.d.ts +3 -3
- package/dist/commands/tasks/chat/reindex.d.ts +2 -2
- package/dist/commands/tasks/chat/reopen.d.ts +3 -3
- package/dist/commands/tasks/chat/repair-attention.d.ts +2 -2
- package/dist/commands/tasks/chat/rotate.d.ts +4 -4
- package/dist/commands/tasks/chat/send.d.ts +5 -5
- package/dist/commands/tasks/checkout.d.ts +3 -3
- package/dist/commands/tasks/children.d.ts +2 -2
- package/dist/commands/tasks/comments/add.d.ts +12 -12
- package/dist/commands/tasks/comments/add.js +8 -36
- package/dist/commands/tasks/comments/anchor.d.ts +12 -12
- package/dist/commands/tasks/comments/delete.d.ts +3 -3
- package/dist/commands/tasks/comments/list.d.ts +5 -5
- package/dist/commands/tasks/comments/react.d.ts +4 -4
- package/dist/commands/tasks/comments/reopen.d.ts +3 -3
- package/dist/commands/tasks/comments/resolve.d.ts +3 -3
- package/dist/commands/tasks/communications.d.ts +4 -4
- package/dist/commands/tasks/complete.d.ts +20 -20
- package/dist/commands/tasks/complete.js +1 -34
- package/dist/commands/tasks/continue-ready.d.ts +10 -10
- package/dist/commands/tasks/continue.d.ts +8 -8
- package/dist/commands/tasks/create-tree.d.ts +16 -16
- package/dist/commands/tasks/create.d.ts +44 -44
- package/dist/commands/tasks/current.d.ts +1 -1
- package/dist/commands/tasks/delete.d.ts +3 -3
- package/dist/commands/tasks/deliverable/add.d.ts +14 -14
- package/dist/commands/tasks/deliverable/archive.d.ts +5 -5
- package/dist/commands/tasks/deliverable/confirm.d.ts +4 -4
- package/dist/commands/tasks/deliverable/list.d.ts +3 -3
- package/dist/commands/tasks/descendants.d.ts +3 -3
- package/dist/commands/tasks/dri-plan.d.ts +2 -2
- package/dist/commands/tasks/dri-run.d.ts +2 -2
- package/dist/commands/tasks/dri-status.d.ts +2 -2
- package/dist/commands/tasks/duplicate-pipeline.d.ts +4 -4
- package/dist/commands/tasks/economics-compare.d.ts +5 -5
- package/dist/commands/tasks/events/append.d.ts +11 -11
- package/dist/commands/tasks/events/list.d.ts +8 -8
- package/dist/commands/tasks/events/tail.d.ts +6 -6
- package/dist/commands/tasks/execution-state.d.ts +2 -2
- package/dist/commands/tasks/execution-summary.d.ts +2 -2
- package/dist/commands/tasks/execution-timeline.d.ts +4 -4
- package/dist/commands/tasks/expectations/assess.d.ts +14 -14
- package/dist/commands/tasks/expectations/evaluate.d.ts +4 -4
- package/dist/commands/tasks/expectations.d.ts +2 -2
- package/dist/commands/tasks/export.d.ts +35 -35
- package/dist/commands/tasks/follow-up.d.ts +26 -26
- package/dist/commands/tasks/fork.d.ts +8 -8
- package/dist/commands/tasks/forward.d.ts +4 -4
- package/dist/commands/tasks/from-message.d.ts +3 -3
- package/dist/commands/tasks/guide.d.ts +1 -1
- package/dist/commands/tasks/handover.d.ts +7 -7
- package/dist/commands/tasks/import.d.ts +10 -10
- package/dist/commands/tasks/input/answer.d.ts +6 -6
- package/dist/commands/tasks/input/dismiss.d.ts +3 -3
- package/dist/commands/tasks/input/show.d.ts +2 -2
- package/dist/commands/tasks/interrupt.d.ts +3 -3
- package/dist/commands/tasks/judge.d.ts +5 -5
- package/dist/commands/tasks/labels/attach.d.ts +3 -3
- package/dist/commands/tasks/labels/create.d.ts +5 -5
- package/dist/commands/tasks/labels/delete.d.ts +2 -2
- package/dist/commands/tasks/labels/detach.d.ts +3 -3
- package/dist/commands/tasks/labels/list.d.ts +1 -1
- package/dist/commands/tasks/labels/suggest.d.ts +2 -2
- package/dist/commands/tasks/lifecycle/attach.d.ts +5 -5
- package/dist/commands/tasks/lifecycle/definitions.d.ts +2 -2
- package/dist/commands/tasks/lifecycle/detach.d.ts +4 -4
- package/dist/commands/tasks/lifecycle/history.d.ts +4 -4
- package/dist/commands/tasks/lifecycle/migrate.d.ts +4 -4
- package/dist/commands/tasks/lifecycle/reconcile.d.ts +2 -2
- package/dist/commands/tasks/lifecycle/reopen.d.ts +5 -5
- package/dist/commands/tasks/lifecycle/show.d.ts +2 -2
- package/dist/commands/tasks/lifecycle/start.d.ts +3 -3
- package/dist/commands/tasks/lifecycle/transition.d.ts +6 -6
- package/dist/commands/tasks/list.d.ts +49 -49
- package/dist/commands/tasks/mark-duplicate.d.ts +3 -3
- package/dist/commands/tasks/monitor.d.ts +6 -6
- package/dist/commands/tasks/move.d.ts +8 -8
- package/dist/commands/tasks/open.d.ts +5 -5
- package/dist/commands/tasks/output.d.ts +4 -4
- package/dist/commands/tasks/pause-schedule.d.ts +2 -2
- package/dist/commands/tasks/plan/add-subtask.d.ts +7 -7
- package/dist/commands/tasks/plan/cancel.d.ts +4 -4
- package/dist/commands/tasks/plan/create.d.ts +2 -2
- package/dist/commands/tasks/plan/pause.d.ts +5 -5
- package/dist/commands/tasks/plan/reconcile.d.ts +3 -3
- package/dist/commands/tasks/plan/resume.d.ts +4 -4
- package/dist/commands/tasks/plan/retry.d.ts +4 -4
- package/dist/commands/tasks/plan/run-update.d.ts +7 -7
- package/dist/commands/tasks/plan/run.d.ts +3 -3
- package/dist/commands/tasks/plan/show.d.ts +2 -2
- package/dist/commands/tasks/plan/start.d.ts +3 -3
- package/dist/commands/tasks/plan/sync.d.ts +2 -2
- package/dist/commands/tasks/plan/update.d.ts +3 -3
- package/dist/commands/tasks/pr.d.ts +3 -3
- package/dist/commands/tasks/preflight.d.ts +4 -4
- package/dist/commands/tasks/promote.d.ts +5 -5
- package/dist/commands/tasks/prompt-log.d.ts +2 -2
- package/dist/commands/tasks/ready.d.ts +7 -7
- package/dist/commands/tasks/rearm-recurrence.d.ts +4 -4
- package/dist/commands/tasks/release.d.ts +2 -2
- package/dist/commands/tasks/remind.d.ts +3 -3
- package/dist/commands/tasks/replay.d.ts +3 -3
- package/dist/commands/tasks/report.d.ts +10 -10
- package/dist/commands/tasks/resource/add.d.ts +13 -13
- package/dist/commands/tasks/resource/list.d.ts +4 -4
- package/dist/commands/tasks/result/show.d.ts +4 -4
- package/dist/commands/tasks/result/submit.d.ts +17 -17
- package/dist/commands/tasks/result/submit.js +1 -34
- package/dist/commands/tasks/resume/save.d.ts +7 -7
- package/dist/commands/tasks/resume/show.d.ts +4 -4
- package/dist/commands/tasks/resume-schedule.d.ts +2 -2
- package/dist/commands/tasks/retry-schedule.d.ts +3 -3
- package/dist/commands/tasks/retry.d.ts +5 -5
- package/dist/commands/tasks/review-queue.d.ts +5 -5
- package/dist/commands/tasks/review.d.ts +8 -8
- package/dist/commands/tasks/revisions.d.ts +2 -2
- package/dist/commands/tasks/runs.d.ts +2 -2
- package/dist/commands/tasks/schedule.d.ts +8 -8
- package/dist/commands/tasks/self-schedule.d.ts +8 -8
- package/dist/commands/tasks/show.d.ts +5 -5
- package/dist/commands/tasks/skills/pin.d.ts +5 -5
- package/dist/commands/tasks/skills/unpin.d.ts +5 -5
- package/dist/commands/tasks/snooze.d.ts +6 -6
- package/dist/commands/tasks/start-all.d.ts +3 -3
- package/dist/commands/tasks/start.d.ts +6 -6
- package/dist/commands/tasks/subscribe.d.ts +3 -3
- package/dist/commands/tasks/tags/add.d.ts +3 -3
- package/dist/commands/tasks/tags/remove.d.ts +3 -3
- package/dist/commands/tasks/templates/create.d.ts +11 -11
- package/dist/commands/tasks/templates/create.js +1 -34
- package/dist/commands/tasks/templates/delete.d.ts +2 -2
- package/dist/commands/tasks/templates/list.d.ts +2 -2
- package/dist/commands/tasks/templates/reorder.d.ts +3 -3
- package/dist/commands/tasks/templates/show.d.ts +2 -2
- package/dist/commands/tasks/templates/update.d.ts +10 -10
- package/dist/commands/tasks/templates/update.js +1 -34
- package/dist/commands/tasks/timeline.d.ts +7 -7
- package/dist/commands/tasks/today.d.ts +7 -7
- package/dist/commands/tasks/transcript.d.ts +6 -6
- package/dist/commands/tasks/tree.d.ts +6 -6
- package/dist/commands/tasks/triage.d.ts +8 -8
- package/dist/commands/tasks/trust.d.ts +5 -5
- package/dist/commands/tasks/unschedule.d.ts +2 -2
- package/dist/commands/tasks/unsnooze.d.ts +3 -3
- package/dist/commands/tasks/unsubscribe.d.ts +3 -3
- package/dist/commands/tasks/update.d.ts +45 -45
- package/dist/commands/tasks/updates/add.d.ts +13 -13
- package/dist/commands/tasks/updates/add.js +1 -34
- package/dist/commands/tasks/updates/list.d.ts +6 -6
- package/dist/commands/tasks/upsert.d.ts +20 -20
- package/dist/commands/tasks/wait.d.ts +9 -9
- package/dist/commands/tasks/waive.d.ts +4 -4
- package/dist/commands/tasks/watch.d.ts +8 -8
- package/dist/commands/tasks/workflow/approve-merge.d.ts +2 -2
- package/dist/commands/tasks/workflow/cancel.d.ts +3 -3
- package/dist/commands/tasks/workflow/e2e-complete.d.ts +7 -7
- package/dist/commands/tasks/workflow/index.d.ts +2 -2
- package/dist/commands/tasks/workflow/retry-stage.d.ts +3 -3
- package/dist/commands/tasks/workflow/start.d.ts +2 -2
- package/dist/commands/tasks/workflow-await.d.ts +5 -5
- package/dist/commands/tasks/workflow-context.d.ts +3 -3
- package/dist/commands/tasks/workflow-findings.d.ts +5 -5
- package/dist/commands/teams/list-channels.d.ts +3 -3
- package/dist/commands/teams/list-users.d.ts +4 -4
- package/dist/commands/teams/read-channel.d.ts +5 -5
- package/dist/commands/teams/read-thread.d.ts +6 -6
- package/dist/commands/teams/run.d.ts +5 -5
- package/dist/commands/teams/search.d.ts +5 -5
- package/dist/commands/teams/send-as-agent.d.ts +6 -6
- package/dist/commands/teams/tools.d.ts +2 -2
- package/dist/commands/token/list.d.ts +3 -3
- package/dist/commands/token/mint.d.ts +3 -3
- package/dist/commands/token/revoke.d.ts +2 -2
- package/dist/commands/tokens/create.d.ts +7 -7
- package/dist/commands/tokens/list.d.ts +2 -2
- package/dist/commands/tokens/revoke.d.ts +3 -3
- package/dist/commands/tones/apply.d.ts +4 -4
- package/dist/commands/tones/create.d.ts +11 -11
- package/dist/commands/tones/default.d.ts +3 -3
- package/dist/commands/tones/delete.d.ts +2 -2
- package/dist/commands/tones/export.d.ts +6 -6
- package/dist/commands/tones/import.d.ts +4 -4
- package/dist/commands/tones/list.d.ts +4 -4
- package/dist/commands/tones/policy/set.d.ts +8 -8
- package/dist/commands/tones/policy/show.d.ts +2 -2
- package/dist/commands/tones/show.d.ts +2 -2
- package/dist/commands/tones/update.d.ts +11 -11
- package/dist/commands/triggers/actions.d.ts +2 -2
- package/dist/commands/triggers/audit.d.ts +9 -9
- package/dist/commands/triggers/capabilities.d.ts +2 -2
- package/dist/commands/triggers/create.d.ts +73 -73
- package/dist/commands/triggers/delete.d.ts +3 -3
- package/dist/commands/triggers/disable.d.ts +2 -2
- package/dist/commands/triggers/enable.d.ts +2 -2
- package/dist/commands/triggers/event-catalog.d.ts +1 -1
- package/dist/commands/triggers/fire-detail.d.ts +3 -3
- package/dist/commands/triggers/fire.d.ts +4 -4
- package/dist/commands/triggers/list.d.ts +7 -7
- package/dist/commands/triggers/parse-intent.d.ts +8 -8
- package/dist/commands/triggers/preflight.d.ts +4 -4
- package/dist/commands/triggers/prune.d.ts +8 -8
- package/dist/commands/triggers/replay.d.ts +4 -4
- package/dist/commands/triggers/rotate-secret.d.ts +2 -2
- package/dist/commands/triggers/runs.d.ts +5 -5
- package/dist/commands/triggers/show.d.ts +2 -2
- package/dist/commands/triggers/update.d.ts +63 -63
- package/dist/commands/update.d.ts +5 -5
- package/dist/commands/usage.d.ts +3 -3
- package/dist/commands/views/create.d.ts +19 -19
- package/dist/commands/views/delete.d.ts +3 -3
- package/dist/commands/views/list.d.ts +1 -1
- package/dist/commands/views/show.d.ts +2 -2
- package/dist/commands/views/subscribe.d.ts +6 -6
- package/dist/commands/views/subscriptions.d.ts +2 -2
- package/dist/commands/views/unsubscribe.d.ts +2 -2
- package/dist/commands/views/update.d.ts +16 -16
- package/dist/commands/webhooks/create.d.ts +5 -5
- package/dist/commands/webhooks/delete.d.ts +2 -2
- package/dist/commands/webhooks/deliveries.d.ts +3 -3
- package/dist/commands/webhooks/list.d.ts +3 -3
- package/dist/commands/webhooks/test.d.ts +2 -2
- package/dist/commands/whoami.d.ts +1 -1
- package/dist/commands/widgets/add.d.ts +5 -5
- package/dist/commands/widgets/check.d.ts +5 -5
- package/dist/commands/widgets/list.d.ts +2 -2
- package/dist/commands/widgets/remove.d.ts +3 -3
- package/dist/commands/widgets/reorder.d.ts +4 -4
- package/dist/commands/widgets/revert.d.ts +4 -4
- package/dist/commands/widgets/save-as-app.d.ts +3 -3
- package/dist/commands/widgets/show.d.ts +3 -3
- package/dist/commands/widgets/update.d.ts +5 -5
- package/dist/commands/widgets/versions.d.ts +4 -4
- package/dist/commands/wiki/cat.d.ts +5 -5
- package/dist/commands/wiki/ls.d.ts +4 -4
- package/dist/commands/wiki/mkdir.d.ts +3 -3
- package/dist/commands/wiki/mv.d.ts +5 -5
- package/dist/commands/wiki/rm.d.ts +6 -6
- package/dist/commands/wiki/rmdir.d.ts +5 -5
- package/dist/commands/wiki/search.d.ts +4 -4
- package/dist/commands/wiki/tree.d.ts +3 -3
- package/dist/commands/wiki/update.d.ts +7 -7
- package/dist/commands/wiki/write.d.ts +9 -9
- package/dist/commands/work-views/create.d.ts +5 -5
- package/dist/commands/work-views/delete.d.ts +4 -4
- package/dist/commands/work-views/list.d.ts +1 -1
- package/dist/commands/work-views/result.d.ts +2 -2
- package/dist/commands/work-views/update.d.ts +6 -6
- package/dist/commands/worklog/list.d.ts +6 -6
- package/dist/commands/worklog/rm.d.ts +3 -3
- package/dist/commands/worklog/save.d.ts +8 -8
- package/dist/commands/worklog/search.d.ts +4 -4
- package/dist/commands/worklog/show.d.ts +3 -3
- package/dist/commands/worklog/stats.d.ts +2 -2
- package/dist/commands/worklog/update.d.ts +7 -7
- package/dist/commands/workspaces/attribution.d.ts +4 -4
- package/dist/commands/workspaces/audit.d.ts +8 -8
- package/dist/commands/workspaces/grants.d.ts +2 -2
- package/dist/commands/workspaces/list.d.ts +1 -1
- package/dist/commands/workspaces/members.d.ts +3 -3
- package/dist/commands/workspaces/stewardship.d.ts +3 -3
- package/dist/commands/workspaces/use.d.ts +3 -3
- package/dist/generated/managed-instruction-guides.json +2 -2
- package/dist/lib/agentic-stream.d.ts +5 -0
- package/dist/lib/agentic-stream.js +51 -2
- package/dist/lib/artifact-export.d.ts +8 -8
- package/dist/lib/channel-command-runners.d.ts +11 -11
- package/dist/lib/commerce-command.d.ts +2 -2
- package/dist/lib/commitment-endpoints.d.ts +1 -1
- package/dist/lib/computer-use.js +6 -1
- package/dist/lib/continuityPreferences.d.ts +3 -0
- package/dist/lib/continuityPreferences.js +42 -0
- package/dist/lib/dedicated-lease-command.d.ts +3 -3
- package/dist/lib/dedicated-service-command.d.ts +9 -9
- package/dist/lib/exec-runtime-binary.d.ts +1 -1
- package/dist/lib/exec-runtime-binary.js +3 -3
- package/dist/lib/first-party-harness-remote-install.d.ts +3 -3
- package/dist/lib/first-party-harness-remote-update.d.ts +3 -3
- package/dist/lib/followups.d.ts +1 -1
- package/dist/lib/label-scope.d.ts +3 -3
- package/dist/lib/list-output.d.ts +3 -3
- package/dist/lib/lookbackPlans.d.ts +14 -2
- package/dist/lib/lookbackPlans.js +34 -15
- package/dist/lib/member-output.d.ts +1 -1
- package/dist/lib/memory-scope.d.ts +3 -3
- package/dist/lib/proposal-decision-command.d.ts +7 -7
- package/dist/lib/publisher-profile-flags.d.ts +2 -2
- package/dist/lib/scoped-memory-command.d.ts +25 -25
- package/dist/lib/session-task-write.d.ts +1 -1
- package/dist/lib/space-custom-actions.d.ts +2 -2
- package/dist/lib/task-resolver.d.ts +8 -0
- package/dist/lib/task-resolver.js +18 -0
- package/dist/lib/write-target.d.ts +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/aead.js +75 -59
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/authExpiredDetector.js +67 -80
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/authHelper.js +240 -294
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/cliHandoffWire.js +138 -165
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/commitmentExecutionContract.js +376 -492
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerUse.js +362 -330
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.js +1106 -1235
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/configRoot.js +45 -59
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/credentialEnvelope.js +135 -202
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/credentialEnvelopeBridge.js +565 -888
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/credentialResolver.js +277 -417
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/credentialSession.js +82 -103
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonPair.js +362 -459
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonScopes.js +58 -90
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonToolApproval.js +144 -205
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonWire.js +554 -623
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/dedicatedRuntimeBusyWire.js +113 -146
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/dedicatedRuntimeWakeWire.js +86 -108
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/desktopWire.js +74 -40
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/deviceIdentityBridge.js +533 -730
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/deviceKey.js +214 -329
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/dpop.js +132 -162
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/fdToken.js +173 -220
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/firstPartyHarness.js +322 -505
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/firstPartyHarnessChannels.js +70 -146
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/firstPartyHarnessHome.js +233 -343
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/firstPartyHarnessReleaseKeys.js +33 -103
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/firstPartyHarnessUpdater.js +761 -863
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/githubPushRefusal.js +59 -41
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/harnessPermissionControls.js +64 -57
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/harnessSkillLayout.js +44 -91
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/harnessTrust.js +65 -110
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/headers-helper.js +228 -304
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.js +568 -446
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/jwtUtils.js +44 -56
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/kek/index.js +145 -195
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/kek/linux.js +361 -596
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/kek/macos.js +332 -546
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/kek/types.js +32 -40
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/kek/windows.js +226 -330
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/kek/zeroize-registry.js +39 -54
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/legacyStatePreflight.js +117 -134
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/localIdentity.js +39 -56
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/loginLocalhost.js +216 -321
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/loginWithLocalhost.js +212 -337
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/loopbackHttp.js +214 -241
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/machineId.js +129 -212
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/machineUuid.js +265 -405
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/messages.js +51 -59
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/pkce.js +77 -145
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/profileStateDir.js +239 -344
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/recoveryCode.js +112 -190
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refresh.js +494 -953
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refreshClassification.js +79 -126
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refreshScheduler.js +236 -310
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/releaseKeys.js +36 -92
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/releaseManifest.js +146 -283
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/releasePolicy.js +126 -151
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/releaseVersions.js +64 -41
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/restartArtifact.d.ts +10 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/restartArtifact.js +148 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/runtime.js +95 -109
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/sessionPermissionAuthority.js +42 -39
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/sessionRevocation.js +370 -453
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/spawnEnv.js +178 -266
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.js +149 -237
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.js +245 -339
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolOperationOutcome.d.ts +16 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolOperationOutcome.js +75 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/ttlParser.js +71 -83
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/types.js +51 -32
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/workspaceIsolationProbeWire.js +45 -45
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/restartArtifact.d.ts +10 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/restartArtifact.js +138 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolOperationOutcome.d.ts +16 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolOperationOutcome.js +40 -0
- package/dist/node_modules/@skrr-ai/auth-core/package.json +21 -1
- package/dist/node_modules/@skrr-ai/data-provider/index.js +19880 -27012
- package/dist/node_modules/@skrr-ai/data-provider/package.json +1 -1
- package/dist/node_modules/@skrr-ai/inference-broker/dist/cjs/contract.js +93 -141
- package/dist/node_modules/@skrr-ai/inference-broker/dist/cjs/index.js +57 -89
- package/dist/node_modules/@skrr-ai/inference-broker/dist/cjs/loopback-server.js +204 -262
- package/dist/node_modules/@skrr-ai/inference-broker/dist/cjs/managed-inference-broker.js +681 -1041
- package/dist/node_modules/@skrr-ai/inference-broker/dist/cjs/managed-inference-renewal.js +145 -286
- package/dist/node_modules/@skrr-ai/inference-broker/package.json +1 -1
- package/dist/signal-command.d.ts +5 -5
- package/docs/v1/lookback-plans.md +58 -0
- package/oclif.manifest.json +432 -2
- package/package.json +4 -5
|
@@ -1,1008 +1,549 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
4
11
|
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
*
|
|
49
|
-
* The original 30 s matched the worst-case refresh RTT — meaning a
|
|
50
|
-
* crashed process holding `auth.lock` could block all siblings for up
|
|
51
|
-
* to 30 s, risking a deadlock on degraded networks. 5 s is well above
|
|
52
|
-
* any realistic refresh RTT (p99 ≈ 50 ms) but low enough that a stale
|
|
53
|
-
* lock from a crashed daemon clears before the outer reconnect backoff
|
|
54
|
-
* times out.
|
|
55
|
-
*/
|
|
56
|
-
const LOCK_STALE_MS = 5_000;
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var refresh_exports = {};
|
|
30
|
+
__export(refresh_exports, {
|
|
31
|
+
AUTH_LOCK_PATH_FN: () => authLockPath,
|
|
32
|
+
LOCK_SIGNAL_FALLBACK_EXIT_MS: () => LOCK_SIGNAL_FALLBACK_EXIT_MS,
|
|
33
|
+
REAUTH_FLAG_PATH_FN: () => reauthFlagPath,
|
|
34
|
+
UNKNOWN_401_BUDGET: () => UNKNOWN_401_BUDGET,
|
|
35
|
+
__refreshDiagnostics: () => __refreshDiagnostics,
|
|
36
|
+
__resetUnknown401StreaksForTest: () => __resetUnknown401StreaksForTest,
|
|
37
|
+
clearReauthState: () => clearReauthState,
|
|
38
|
+
installLockExitHandlers: () => installLockExitHandlers,
|
|
39
|
+
needsReauthState: () => needsReauthState,
|
|
40
|
+
persistReauthState: () => persistReauthState,
|
|
41
|
+
refreshDaemonToken: () => refreshDaemonToken,
|
|
42
|
+
revokeDaemonRefreshSession: () => revokeDaemonRefreshSession,
|
|
43
|
+
withAuthLock: () => withAuthLock
|
|
44
|
+
});
|
|
45
|
+
module.exports = __toCommonJS(refresh_exports);
|
|
46
|
+
var import_node_async_hooks = require("node:async_hooks");
|
|
47
|
+
var import_node_crypto = __toESM(require("node:crypto"), 1);
|
|
48
|
+
var import_node_fs = __toESM(require("node:fs"), 1);
|
|
49
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
50
|
+
var import_proper_lockfile = __toESM(require("proper-lockfile"), 1);
|
|
51
|
+
var import_runtime = require("./runtime.js");
|
|
52
|
+
var import_refreshClassification = require("./refreshClassification.js");
|
|
53
|
+
var import_types = require("./types.js");
|
|
54
|
+
const LOCK_STALE_MS = 5e3;
|
|
57
55
|
const LOCK_RETRY_MS = 100;
|
|
58
|
-
const LOCK_MAX_RETRIES = 50;
|
|
59
|
-
/**
|
|
60
|
-
* P1-6: Module-level guard so registering process-exit handlers is
|
|
61
|
-
* idempotent. A second import (or a unit test that re-requires the
|
|
62
|
-
* module) must not double-register the same handlers.
|
|
63
|
-
*/
|
|
56
|
+
const LOCK_MAX_RETRIES = 50;
|
|
64
57
|
let _exitHandlersInstalled = false;
|
|
65
|
-
|
|
66
|
-
* D-4 — Re-entrancy tracking for `withAuthLock`.
|
|
67
|
-
*
|
|
68
|
-
* `proper-lockfile` is NOT re-entrant within a process: a second
|
|
69
|
-
* `lockfile.lock()` call on the same file from the same process will
|
|
70
|
-
* block until `LOCK_STALE_MS` (5 s) elapses and treat itself as stale —
|
|
71
|
-
* effectively a 5 s deadlock. Several call sites legitimately nest:
|
|
72
|
-
*
|
|
73
|
-
* performRefresh → withAuthLock → saveToken → withAuthLock (new)
|
|
74
|
-
* consumeFdAuth → saveToken → withAuthLock (new, no outer lock)
|
|
75
|
-
*
|
|
76
|
-
* `AsyncLocalStorage` propagates across `await` boundaries within the
|
|
77
|
-
* same async call chain, so a nested `withAuthLock` invocation in the
|
|
78
|
-
* same chain can detect "outer lock already held" and skip the
|
|
79
|
-
* `proper-lockfile` acquire. Cross-process callers each have their own
|
|
80
|
-
* ALS store and always go through the real file lock.
|
|
81
|
-
*
|
|
82
|
-
* The store carries a boolean: `true` = the current async context
|
|
83
|
-
* already holds the auth lock.
|
|
84
|
-
*/
|
|
85
|
-
const _authLockHeld = new node_async_hooks_1.AsyncLocalStorage();
|
|
58
|
+
const _authLockHeld = new import_node_async_hooks.AsyncLocalStorage();
|
|
86
59
|
function authLockPath() {
|
|
87
|
-
|
|
60
|
+
return import_node_path.default.join((0, import_runtime.getAuthConfigDir)(), "auth.lock");
|
|
88
61
|
}
|
|
89
62
|
function reauthFlagPath() {
|
|
90
|
-
|
|
63
|
+
return import_node_path.default.join((0, import_runtime.getAuthConfigDir)(), "needs-reauth.json");
|
|
91
64
|
}
|
|
92
|
-
/** The fatal signals the lock-release handler listens for, with their numbers. */
|
|
93
65
|
const LOCK_RELEASE_SIGNALS = { SIGHUP: 1, SIGINT: 2, SIGTERM: 15 };
|
|
94
|
-
|
|
95
|
-
* How long a process whose own listeners took a fatal signal gets to shut down
|
|
96
|
-
* before it is exited anyway: bounded, so a cleanup that hangs cannot make the
|
|
97
|
-
* process unkillable, and longer than the longest cleanup a command registers.
|
|
98
|
-
*
|
|
99
|
-
* That is `skrr machines dedicated cp` cancelling an upload. It waits out the
|
|
100
|
-
* chunk in flight, which the server bounds at 30 s (a 20 s tool timeout plus a
|
|
101
|
-
* 10 s response grace, `DedicatedRuntimeMachineAccess.js`), and then sends one
|
|
102
|
-
* abort; 45 s leaves 15 s for that abort after a chunk of the full length. An
|
|
103
|
-
* abort that needs longer is going to a machine that has just failed to answer
|
|
104
|
-
* a chunk in time, and the daemon's stale-staging sweep removes what it leaves.
|
|
105
|
-
* `agents chat` waits 10 s for the cancelled run and then reads its record once.
|
|
106
|
-
*
|
|
107
|
-
* One constant rather than a bound each listener declares: every cleanup
|
|
108
|
-
* registered today fits under it, and a registry of bounds would be machinery
|
|
109
|
-
* for a second number nobody has needed.
|
|
110
|
-
*/
|
|
111
|
-
exports.LOCK_SIGNAL_FALLBACK_EXIT_MS = 45_000;
|
|
112
|
-
/**
|
|
113
|
-
* How many of a signal's listeners belong to `signal-exit`.
|
|
114
|
-
*
|
|
115
|
-
* `proper-lockfile` loads signal-exit when it is imported, so every process that
|
|
116
|
-
* imports this module carries its SIGHUP/SIGINT/SIGTERM listeners. signal-exit
|
|
117
|
-
* is deferential by design: it acts only when it is the sole listener, and
|
|
118
|
-
* otherwise leaves the signal to whoever else is listening. Counted as an owner,
|
|
119
|
-
* it and this handler would each wait for the other and nothing would exit.
|
|
120
|
-
* v3 and v4 publish their loaded-instance counts on process-wide globals, which
|
|
121
|
-
* is how they recognise each other (v4 adds v3's count to its own); this reads
|
|
122
|
-
* the same two counts.
|
|
123
|
-
*/
|
|
66
|
+
const LOCK_SIGNAL_FALLBACK_EXIT_MS = 45e3;
|
|
124
67
|
function signalExitListenerCount() {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
return count(v3) + count(v4);
|
|
68
|
+
const count = (emitter) => typeof emitter?.count === "number" ? emitter.count : 0;
|
|
69
|
+
const v3 = process.__signal_exit_emitter__;
|
|
70
|
+
const v4 = globalThis[Symbol.for("signal-exit emitter")];
|
|
71
|
+
return count(v3) + count(v4);
|
|
130
72
|
}
|
|
131
|
-
/**
|
|
132
|
-
* P1-6 — Register best-effort lock-release handlers on process exit
|
|
133
|
-
* signals so a crash or SIGTERM during a refresh leaves the lock file
|
|
134
|
-
* in a released state. Without this, a sibling process must wait up to
|
|
135
|
-
* `LOCK_STALE_MS` (5 s) for `proper-lockfile` to declare the lock stale.
|
|
136
|
-
*
|
|
137
|
-
* A signal handler here must see the lock released when the process ends, and
|
|
138
|
-
* otherwise get out of the way. It used to release and call `process.exit`
|
|
139
|
-
* synchronously, and because it is installed as soon as a CLI command loads,
|
|
140
|
-
* it ran before — and so instead of — every listener a command registered for
|
|
141
|
-
* its own cleanup: Ctrl-C during `skrr machines dedicated cp` left partial
|
|
142
|
-
* files behind (OSK-8708), `agents chat` never cancelled the run it said it
|
|
143
|
-
* would, and the daemon had to strip these listeners off to reach its own
|
|
144
|
-
* drain at all (OSK-2086). Now:
|
|
145
|
-
*
|
|
146
|
-
* 1. The lock is released only when the process actually ends: by the
|
|
147
|
-
* `exit` listener, and immediately before a re-raise (dying by a signal
|
|
148
|
-
* runs no `exit` listener). Never on the signal itself. A refresh already
|
|
149
|
-
* inside `withAuthLock` keeps running while a command cleans up, and
|
|
150
|
-
* releasing under it would let a sibling `skrr` take the lock and spend
|
|
151
|
-
* the same refresh token — which rotates on use, so one of the two would
|
|
152
|
-
* be signed out.
|
|
153
|
-
* 2. If anything else is listening for the signal — a command's cleanup —
|
|
154
|
-
* that listener owns shutdown, and this handler does not exit.
|
|
155
|
-
* signal-exit's listeners do not count (`signalExitListenerCount`).
|
|
156
|
-
* 3. Otherwise it does what Node does for an unhandled fatal signal: it
|
|
157
|
-
* removes itself and re-raises the signal, so the process dies BY the
|
|
158
|
-
* signal. That is more faithful than `exit(128 + n)`, which only imitates
|
|
159
|
-
* the number: a parent can tell the two apart, and does. bash stops a
|
|
160
|
-
* loop when a child is killed by SIGINT but carries on after one that
|
|
161
|
-
* exited 130, and systemd counts death by SIGTERM as a clean stop but
|
|
162
|
-
* exit status 143 as a failure. (signal-exit, when present, sees the
|
|
163
|
-
* re-raised signal with no other listener and runs its exit callbacks
|
|
164
|
-
* before re-raising it once more.) Not on Windows, where raising a
|
|
165
|
-
* signal at yourself is TerminateProcess with status 1: Ctrl-C would exit
|
|
166
|
-
* 1 and no `exit` listener would run. There it exits `128 + n`.
|
|
167
|
-
* 4. While owners are shutting down, an unref'd fallback timer exits
|
|
168
|
-
* `128 + n` after `fallbackExitMs`, and a second fatal signal exits as
|
|
169
|
-
* soon as that signal's listeners have run — so an owner's handler for a
|
|
170
|
-
* second signal gets its synchronous turn, and nothing more. The forced
|
|
171
|
-
* exits use `process.exit`, not a re-raise, so `exit` listeners (this
|
|
172
|
-
* lock release, a command's last synchronous cleanup) still run.
|
|
173
|
-
*
|
|
174
|
-
* The listener is PREPENDED, so it runs first and counts every other
|
|
175
|
-
* listener — including `once` listeners, which remove themselves when called
|
|
176
|
-
* and would otherwise be invisible to a handler that ran after them. A
|
|
177
|
-
* listener added LATER with `prependOnceListener` is the exception: it runs
|
|
178
|
-
* before this one and has removed itself by the time this one counts, so it
|
|
179
|
-
* is not seen as an owner. Register command cleanup with `on` or `once`.
|
|
180
|
-
*
|
|
181
|
-
* Guards:
|
|
182
|
-
* - `_exitHandlersInstalled` (module-level): safe to call multiple
|
|
183
|
-
* times (e.g., from unit-test re-imports) — handlers are registered
|
|
184
|
-
* exactly once per process.
|
|
185
|
-
* - Every handler swallows errors: `lockfile.unlockSync` throws when
|
|
186
|
-
* the lock file doesn't exist or was never acquired; we must not
|
|
187
|
-
* crash the process during shutdown.
|
|
188
|
-
*
|
|
189
|
-
* `lockfile.unlockSync` is available in `proper-lockfile` ≥ 4.1.0 and
|
|
190
|
-
* removes the `.lock` companion directory that `proper-lockfile` creates
|
|
191
|
-
* next to `auth.lock`. It is synchronous so it runs safely in POSIX
|
|
192
|
-
* signal handlers and `process.on('exit')`.
|
|
193
|
-
*/
|
|
194
73
|
function installLockExitHandlers(options = {}) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
catch {
|
|
204
|
-
/* lock not held or already released — not an error */
|
|
205
|
-
}
|
|
74
|
+
if (_exitHandlersInstalled)
|
|
75
|
+
return;
|
|
76
|
+
_exitHandlersInstalled = true;
|
|
77
|
+
const fallbackExitMs = options.fallbackExitMs ?? LOCK_SIGNAL_FALLBACK_EXIT_MS;
|
|
78
|
+
function tryRelease() {
|
|
79
|
+
try {
|
|
80
|
+
import_proper_lockfile.default.unlockSync(authLockPath());
|
|
81
|
+
} catch {
|
|
206
82
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
setTimeout(() => exitNow(signal), fallbackExitMs).unref();
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
process.removeListener(signal, listeners.get(signal));
|
|
230
|
-
if (process.platform === 'win32') {
|
|
231
|
-
exitNow(signal);
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
// Dying by the signal runs no `exit` listener, so release first.
|
|
235
|
-
tryRelease();
|
|
236
|
-
try {
|
|
237
|
-
process.kill(process.pid, signal);
|
|
238
|
-
}
|
|
239
|
-
catch {
|
|
240
|
-
exitNow(signal);
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
for (const signal of Object.keys(LOCK_RELEASE_SIGNALS)) {
|
|
244
|
-
const listener = () => onSignal(signal);
|
|
245
|
-
listeners.set(signal, listener);
|
|
246
|
-
process.prependListener(signal, listener);
|
|
83
|
+
}
|
|
84
|
+
process.on("exit", tryRelease);
|
|
85
|
+
const exitStatus = (signal) => 128 + LOCK_RELEASE_SIGNALS[signal];
|
|
86
|
+
let deferred = false;
|
|
87
|
+
const listeners = /* @__PURE__ */ new Map();
|
|
88
|
+
const exitNow = (signal) => {
|
|
89
|
+
tryRelease();
|
|
90
|
+
process.exit(exitStatus(signal));
|
|
91
|
+
};
|
|
92
|
+
const onSignal = (signal) => {
|
|
93
|
+
if (deferred) {
|
|
94
|
+
setImmediate(() => exitNow(signal));
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const owners = process.listenerCount(signal) - 1 - signalExitListenerCount();
|
|
98
|
+
if (owners > 0) {
|
|
99
|
+
deferred = true;
|
|
100
|
+
setTimeout(() => exitNow(signal), fallbackExitMs).unref();
|
|
101
|
+
return;
|
|
247
102
|
}
|
|
103
|
+
process.removeListener(signal, listeners.get(signal));
|
|
104
|
+
if (process.platform === "win32") {
|
|
105
|
+
exitNow(signal);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
tryRelease();
|
|
109
|
+
try {
|
|
110
|
+
process.kill(process.pid, signal);
|
|
111
|
+
} catch {
|
|
112
|
+
exitNow(signal);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
for (const signal of Object.keys(LOCK_RELEASE_SIGNALS)) {
|
|
116
|
+
const listener = () => onSignal(signal);
|
|
117
|
+
listeners.set(signal, listener);
|
|
118
|
+
process.prependListener(signal, listener);
|
|
119
|
+
}
|
|
248
120
|
}
|
|
249
|
-
/**
|
|
250
|
-
* Acquire the cross-process auth lock, run the body, release on `finally`.
|
|
251
|
-
* Throws if the lock can't be acquired within
|
|
252
|
-
* `LOCK_MAX_RETRIES × LOCK_RETRY_MS`.
|
|
253
|
-
*
|
|
254
|
-
* We lock a sentinel file (auth.lock) that we create/touch if missing —
|
|
255
|
-
* locking the real auth.json would race with atomic-rename writes.
|
|
256
|
-
*
|
|
257
|
-
* @param daemonId When supplied, lock-lifecycle telemetry events are emitted:
|
|
258
|
-
* refresh_lock_acquiring, refresh_lock_acquired, refresh_lock_released.
|
|
259
|
-
*/
|
|
260
121
|
async function withAuthLock(body, daemonId) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
122
|
+
if (_authLockHeld.getStore() === true) {
|
|
123
|
+
return body();
|
|
124
|
+
}
|
|
125
|
+
const lockPath = authLockPath();
|
|
126
|
+
const dir = import_node_path.default.dirname(lockPath);
|
|
127
|
+
if (!import_node_fs.default.existsSync(dir))
|
|
128
|
+
import_node_fs.default.mkdirSync(dir, { recursive: true });
|
|
129
|
+
if (!import_node_fs.default.existsSync(lockPath)) {
|
|
130
|
+
import_node_fs.default.writeFileSync(lockPath, "", { mode: 384 });
|
|
131
|
+
}
|
|
132
|
+
const acquireStart = Date.now();
|
|
133
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
134
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
135
|
+
eventType: "auth",
|
|
136
|
+
success: true,
|
|
137
|
+
metadata: { event: "refresh_lock_acquiring", ...daemonId ? { daemonId } : {} }
|
|
138
|
+
});
|
|
139
|
+
const release = await import_proper_lockfile.default.lock(lockPath, {
|
|
140
|
+
stale: LOCK_STALE_MS,
|
|
141
|
+
retries: {
|
|
142
|
+
retries: LOCK_MAX_RETRIES,
|
|
143
|
+
minTimeout: LOCK_RETRY_MS,
|
|
144
|
+
maxTimeout: LOCK_RETRY_MS * 4,
|
|
145
|
+
factor: 1.5
|
|
269
146
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
147
|
+
});
|
|
148
|
+
const acquiredAt = Date.now();
|
|
149
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
150
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
151
|
+
eventType: "auth",
|
|
152
|
+
success: true,
|
|
153
|
+
metadata: {
|
|
154
|
+
event: "refresh_lock_acquired",
|
|
155
|
+
waitedMs: acquiredAt - acquireStart,
|
|
156
|
+
...daemonId ? { daemonId } : {}
|
|
276
157
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
retries: {
|
|
287
|
-
retries: LOCK_MAX_RETRIES,
|
|
288
|
-
minTimeout: LOCK_RETRY_MS,
|
|
289
|
-
maxTimeout: LOCK_RETRY_MS * 4,
|
|
290
|
-
factor: 1.5,
|
|
291
|
-
},
|
|
292
|
-
});
|
|
293
|
-
const acquiredAt = Date.now();
|
|
294
|
-
(0, runtime_js_1.emitAuthTelemetry)({
|
|
295
|
-
timestamp: new Date().toISOString(),
|
|
296
|
-
eventType: 'auth',
|
|
158
|
+
});
|
|
159
|
+
return _authLockHeld.run(true, async () => {
|
|
160
|
+
try {
|
|
161
|
+
return await body();
|
|
162
|
+
} finally {
|
|
163
|
+
const heldForMs = Date.now() - acquiredAt;
|
|
164
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
165
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
166
|
+
eventType: "auth",
|
|
297
167
|
success: true,
|
|
298
168
|
metadata: {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
},
|
|
303
|
-
});
|
|
304
|
-
// Run body inside ALS context marking the lock as held for this async chain.
|
|
305
|
-
return _authLockHeld.run(true, async () => {
|
|
306
|
-
try {
|
|
307
|
-
return await body();
|
|
308
|
-
}
|
|
309
|
-
finally {
|
|
310
|
-
const heldForMs = Date.now() - acquiredAt;
|
|
311
|
-
(0, runtime_js_1.emitAuthTelemetry)({
|
|
312
|
-
timestamp: new Date().toISOString(),
|
|
313
|
-
eventType: 'auth',
|
|
314
|
-
success: true,
|
|
315
|
-
metadata: {
|
|
316
|
-
event: 'refresh_lock_released',
|
|
317
|
-
heldForMs,
|
|
318
|
-
...(daemonId ? { daemonId } : {}),
|
|
319
|
-
},
|
|
320
|
-
});
|
|
321
|
-
try {
|
|
322
|
-
await release();
|
|
323
|
-
}
|
|
324
|
-
catch (err) {
|
|
325
|
-
(0, runtime_js_1.getAuthLogger)().debug(`[auth/refresh] lock release failed: ${err?.message}`);
|
|
326
|
-
}
|
|
169
|
+
event: "refresh_lock_released",
|
|
170
|
+
heldForMs,
|
|
171
|
+
...daemonId ? { daemonId } : {}
|
|
327
172
|
}
|
|
328
|
-
|
|
173
|
+
});
|
|
174
|
+
try {
|
|
175
|
+
await release();
|
|
176
|
+
} catch (err) {
|
|
177
|
+
(0, import_runtime.getAuthLogger)().debug(`[auth/refresh] lock release failed: ${err?.message}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
});
|
|
329
181
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
* daemons) refreshed simultaneously in the same process. Today most
|
|
336
|
-
* processes are single-instance, but the invariant is cheaper to preserve
|
|
337
|
-
* than to debug later.
|
|
338
|
-
*
|
|
339
|
-
* Defense-in-depth: the `.finally(() => delete)` is the primary cleanup,
|
|
340
|
-
* but if a future caller throws inside that callback the entry would leak
|
|
341
|
-
* forever and silently mask every subsequent refresh attempt for the same
|
|
342
|
-
* daemonId. `INFLIGHT_REAP_MS` provides a forced cleanup ceiling well above
|
|
343
|
-
* any reasonable refresh RTT (default 60 s ≫ p99 ~50 ms).
|
|
344
|
-
*/
|
|
345
|
-
const inflightRefreshes = new Map();
|
|
346
|
-
const INFLIGHT_REAP_MS = 60_000;
|
|
347
|
-
/**
|
|
348
|
-
* Consecutive unknown-shape-401 budget per daemonId.
|
|
349
|
-
*
|
|
350
|
-
* A 401 from `/token/refresh` whose body `code` is NOT one of the four
|
|
351
|
-
* credential-death codes (REFRESH_INVALID / REFRESH_REUSED /
|
|
352
|
-
* REFRESH_EXPIRED / SESSION_REVOKED) — an unknown code, a missing code,
|
|
353
|
-
* or an unparseable body — is most likely an artifact of infra OverSky
|
|
354
|
-
* does not fully control: a proxy/middleware regression, a clock-skew
|
|
355
|
-
* replay rejection (DEVICE_PROOF_REPLAYED), or a half-rolled-out server
|
|
356
|
-
* route. By construction it is NOT a daemon's actual refresh-family burn
|
|
357
|
-
* (those arrive as one of the four known codes).
|
|
358
|
-
*
|
|
359
|
-
* Pre-fix every unknown-shape 401 latched `PermanentAuthFailure('UNKNOWN_401')`
|
|
360
|
-
* + `persistReauthState` on the FIRST occurrence — forcing a manual
|
|
361
|
-
* reconnect even when the next refresh would have succeeded. Now the
|
|
362
|
-
* first `UNKNOWN_401_BUDGET` unknown-401s accumulated on a given daemonId
|
|
363
|
-
* (within `UNKNOWN_401_WINDOW_MS`, see the reset/window rules below) throw
|
|
364
|
-
* `TransientAuthFailure` instead, so the daemon's
|
|
365
|
-
* `performRefresh → return false` path lets the refreshScheduler /
|
|
366
|
-
* reactive retry+backoff ride out a transient regression WITHOUT latching
|
|
367
|
-
* needs-reauth. Only after the budget is exhausted do we fall back to the
|
|
368
|
-
* original permanent latch — preserving the iron rule that the interactive
|
|
369
|
-
* re-auth modal remains the final fallback.
|
|
370
|
-
*
|
|
371
|
-
* The four KNOWN codes are genuinely permanent and are NEVER routed
|
|
372
|
-
* through this budget — they latch immediately as before.
|
|
373
|
-
*
|
|
374
|
-
* Counter semantics:
|
|
375
|
-
* - Incremented on each consecutive unknown-shape 401 for a daemonId.
|
|
376
|
-
* - Reset to zero ONLY on a DEFINITIVE outcome that tells us about the
|
|
377
|
-
* credential's true state: a 200 success (credential alive) OR a
|
|
378
|
-
* KNOWN-permanent 401 (credential dead, recognized). It is DELIBERATELY
|
|
379
|
-
* NOT reset on a transient non-401 outcome (network error, 429, 5xx).
|
|
380
|
-
*
|
|
381
|
-
* RESET SEMANTICS (Finding 4 follow-up — deliberate). Originally the
|
|
382
|
-
* streak reset on ANY non-unknown-401 outcome, including transient ones.
|
|
383
|
-
* That created a retry-forever hole: a dead-but-unknown-code credential
|
|
384
|
-
* whose endpoint INTERMITTENTLY returns transient errors (a flaky proxy
|
|
385
|
-
* that alternates 503 ↔ unknown-401, say) could never accumulate
|
|
386
|
-
* `UNKNOWN_401_BUDGET` consecutive unknown-401s — every transient blip
|
|
387
|
-
* wiped the streak — so it would never latch and the daemon would retry
|
|
388
|
-
* forever, never surfacing the re-auth affordance. By treating only
|
|
389
|
-
* success / known-permanent-401 as streak-resetting, a flaky-but-dead
|
|
390
|
-
* unknown credential still converges to the permanent latch: the
|
|
391
|
-
* unknown-401s accumulate ACROSS interleaved transient noise (subject to
|
|
392
|
-
* the window below) and eventually exhaust the budget.
|
|
393
|
-
* - Bounded window: if the previous unknown-401 for this daemonId is
|
|
394
|
-
* older than `UNKNOWN_401_WINDOW_MS`, the run is considered stale and
|
|
395
|
-
* the counter restarts at 1. This bounds how far apart interleaved
|
|
396
|
-
* unknown-401s can be and still count toward the same latch, so two
|
|
397
|
-
* genuinely unrelated incidents hours apart don't sum into a premature
|
|
398
|
-
* latch — while a flaky-but-dead credential, which keeps producing
|
|
399
|
-
* unknown-401s well within the window, still converges.
|
|
400
|
-
*/
|
|
401
|
-
/**
|
|
402
|
-
* BOOT-BUDGET COUPLING (Finding 4 follow-up). Exported so the daemon's
|
|
403
|
-
* startup-recovery loop can statically assert
|
|
404
|
-
* `STARTUP_RECOVERY_MAX_ATTEMPTS >= UNKNOWN_401_BUDGET`.
|
|
405
|
-
*
|
|
406
|
-
* Why the coupling is load-bearing: the boot path
|
|
407
|
-
* (`recoverAccessTokenAtStartup` in `daemon/src/auth.ts`) retries
|
|
408
|
-
* `transient_error` results up to `STARTUP_RECOVERY_MAX_ATTEMPTS` times,
|
|
409
|
-
* then exits `EX_TEMPFAIL` so the supervisor restarts the process. Each
|
|
410
|
-
* in-budget unknown-shape 401 is classified `transient_error`. If the
|
|
411
|
-
* boot loop's max attempts were LESS than this budget, a
|
|
412
|
-
* genuinely-dead-but-unknown-code credential would make the boot loop
|
|
413
|
-
* give up (EX_TEMPFAIL → supervisor restart) BEFORE the in-process
|
|
414
|
-
* budget ever exhausts and latches `PermanentAuthFailure('UNKNOWN_401')`
|
|
415
|
-
* + persists needs-reauth. The supervisor would then restart-loop
|
|
416
|
-
* forever and the user would NEVER see the re-auth affordance — a
|
|
417
|
-
* strand. Keeping `STARTUP_RECOVERY_MAX_ATTEMPTS >= UNKNOWN_401_BUDGET`
|
|
418
|
-
* guarantees the in-process budget exhausts and latches within a single
|
|
419
|
-
* boot, on the final boot attempt, before control returns to the
|
|
420
|
-
* supervisor. The daemon enforces this with a module-load static
|
|
421
|
-
* assertion (`assertStartupRecoveryCoversUnknown401Budget`) plus a unit
|
|
422
|
-
* test; see `daemon/src/auth.ts`.
|
|
423
|
-
*/
|
|
424
|
-
exports.UNKNOWN_401_BUDGET = 3;
|
|
425
|
-
const UNKNOWN_401_WINDOW_MS = 5 * 60_000;
|
|
426
|
-
const unknown401Streaks = new Map();
|
|
427
|
-
/**
|
|
428
|
-
* Record one unknown-shape 401 for `daemonId` and report whether the
|
|
429
|
-
* consecutive budget is now exhausted (i.e. this occurrence should latch
|
|
430
|
-
* permanent) or still within budget (i.e. this occurrence should be
|
|
431
|
-
* treated as transient and retried).
|
|
432
|
-
*
|
|
433
|
-
* Returns `{ exhausted, count }` where `count` is the post-increment
|
|
434
|
-
* consecutive streak length. When `exhausted` is true the streak is
|
|
435
|
-
* cleared so a subsequent successful re-auth + future regression starts
|
|
436
|
-
* a fresh budget rather than latching on its first unknown-401.
|
|
437
|
-
*/
|
|
182
|
+
const inflightRefreshes = /* @__PURE__ */ new Map();
|
|
183
|
+
const INFLIGHT_REAP_MS = 6e4;
|
|
184
|
+
const UNKNOWN_401_BUDGET = 3;
|
|
185
|
+
const UNKNOWN_401_WINDOW_MS = 5 * 6e4;
|
|
186
|
+
const unknown401Streaks = /* @__PURE__ */ new Map();
|
|
438
187
|
function recordUnknown401(daemonId, now) {
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
return { exhausted: true, count };
|
|
448
|
-
}
|
|
449
|
-
unknown401Streaks.set(daemonId, { count, lastAt: now });
|
|
450
|
-
return { exhausted: false, count };
|
|
188
|
+
const prev = unknown401Streaks.get(daemonId);
|
|
189
|
+
const count = prev && now - prev.lastAt <= UNKNOWN_401_WINDOW_MS ? prev.count + 1 : 1;
|
|
190
|
+
if (count >= UNKNOWN_401_BUDGET) {
|
|
191
|
+
unknown401Streaks.delete(daemonId);
|
|
192
|
+
return { exhausted: true, count };
|
|
193
|
+
}
|
|
194
|
+
unknown401Streaks.set(daemonId, { count, lastAt: now });
|
|
195
|
+
return { exhausted: false, count };
|
|
451
196
|
}
|
|
452
|
-
/**
|
|
453
|
-
* Reset the unknown-shape-401 streak for `daemonId`. Called ONLY on the
|
|
454
|
-
* two DEFINITIVE outcomes — a 200 success or a KNOWN-permanent 401 — that
|
|
455
|
-
* tell us the credential's true state. Transient non-401 outcomes
|
|
456
|
-
* (network error, 429, 5xx) intentionally do NOT call this, so a
|
|
457
|
-
* flaky-but-dead unknown credential still converges to the permanent
|
|
458
|
-
* latch instead of retrying forever. See the `UNKNOWN_401_BUDGET` /
|
|
459
|
-
* `recordUnknown401` block above for the full rationale.
|
|
460
|
-
*/
|
|
461
197
|
function resetUnknown401Streak(daemonId) {
|
|
462
|
-
|
|
198
|
+
unknown401Streaks.delete(daemonId);
|
|
463
199
|
}
|
|
464
|
-
/** Test-only: clear all per-daemonId unknown-401 streak state. */
|
|
465
200
|
function __resetUnknown401StreaksForTest() {
|
|
466
|
-
|
|
201
|
+
unknown401Streaks.clear();
|
|
467
202
|
}
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
* invoked (success, null return, OR thrown — they all count as
|
|
476
|
-
* "an attempt was made").
|
|
477
|
-
*
|
|
478
|
-
* Invariant under test: when `signRequestProof` is supplied,
|
|
479
|
-
* `proofAttemptCount === requestAttemptCount` after each call. A future
|
|
480
|
-
* retry that forgets to re-call `buildRequestInit()` (or that hoists
|
|
481
|
-
* the proof outside the loop) breaks this invariant immediately.
|
|
482
|
-
*
|
|
483
|
-
* Exposed only for tests — no production code reads it. Callers can
|
|
484
|
-
* snapshot + reset between asserts.
|
|
485
|
-
*/
|
|
486
|
-
exports.__refreshDiagnostics = {
|
|
487
|
-
proofAttemptCount: 0,
|
|
488
|
-
requestAttemptCount: 0,
|
|
489
|
-
reset() {
|
|
490
|
-
this.proofAttemptCount = 0;
|
|
491
|
-
this.requestAttemptCount = 0;
|
|
492
|
-
},
|
|
203
|
+
const __refreshDiagnostics = {
|
|
204
|
+
proofAttemptCount: 0,
|
|
205
|
+
requestAttemptCount: 0,
|
|
206
|
+
reset() {
|
|
207
|
+
this.proofAttemptCount = 0;
|
|
208
|
+
this.requestAttemptCount = 0;
|
|
209
|
+
}
|
|
493
210
|
};
|
|
494
211
|
async function refreshDaemonToken(serverUrl, currentRefreshToken, daemonId, options = {}) {
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
metadata: { event: 'refresh_race_resolved', daemonId, sourceTokenAdopted: true },
|
|
506
|
-
});
|
|
507
|
-
return pair;
|
|
508
|
-
});
|
|
509
|
-
}
|
|
510
|
-
const p = doRefresh(serverUrl, currentRefreshToken, daemonId, options).finally(() => {
|
|
511
|
-
// Only delete our own entry — a racing caller could have replaced it,
|
|
512
|
-
// but with keying by daemonId that would be a different key.
|
|
513
|
-
if (inflightRefreshes.get(daemonId) === p) {
|
|
514
|
-
inflightRefreshes.delete(daemonId);
|
|
515
|
-
}
|
|
212
|
+
const existing = inflightRefreshes.get(daemonId);
|
|
213
|
+
if (existing) {
|
|
214
|
+
return existing.then((pair) => {
|
|
215
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
216
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
217
|
+
eventType: "auth",
|
|
218
|
+
success: true,
|
|
219
|
+
metadata: { event: "refresh_race_resolved", daemonId, sourceTokenAdopted: true }
|
|
220
|
+
});
|
|
221
|
+
return pair;
|
|
516
222
|
});
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
try {
|
|
522
|
-
(0, runtime_js_1.getAuthLogger)().warn(`[auth/refresh] inflight reap fired for ${daemonId} — finally cleanup did not complete within ${INFLIGHT_REAP_MS}ms`);
|
|
523
|
-
}
|
|
524
|
-
catch {
|
|
525
|
-
/* logger unavailable */
|
|
526
|
-
}
|
|
527
|
-
inflightRefreshes.delete(daemonId);
|
|
528
|
-
}
|
|
529
|
-
}, INFLIGHT_REAP_MS);
|
|
530
|
-
if (typeof reaper.unref === 'function')
|
|
531
|
-
reaper.unref();
|
|
532
|
-
return p;
|
|
533
|
-
}
|
|
534
|
-
/**
|
|
535
|
-
* Best-effort server-side revocation of a refresh session. Idempotent on
|
|
536
|
-
* the server — never reveals whether the presented token existed. Returns
|
|
537
|
-
* silently on transport failure; callers still proceed with local cleanup.
|
|
538
|
-
*
|
|
539
|
-
* Kept tight: 5-second timeout so a hung server doesn't stall logout.
|
|
540
|
-
*
|
|
541
|
-
* H1 (HIGH) — wire contract: the body carries BOTH `refreshTokenHash`
|
|
542
|
-
* (preferred — SHA-256 hex digest of the plaintext refresh token, the
|
|
543
|
-
* exact value the server stores in `refreshHash`) AND the legacy
|
|
544
|
-
* `refreshToken` plaintext during a migration window. Newer servers
|
|
545
|
-
* short-circuit on `refreshTokenHash` and never read the plaintext;
|
|
546
|
-
* older servers ignore the unknown field and fall through to the
|
|
547
|
-
* legacy `refreshToken` path. Once the next API release ships the
|
|
548
|
-
* hash-aware revoke route to the entire fleet, the legacy plaintext
|
|
549
|
-
* field can be dropped from this body.
|
|
550
|
-
*
|
|
551
|
-
* Why both during migration: any intermediary that logs request
|
|
552
|
-
* bodies (CDN, WAF, API gateway, corporate proxy) would otherwise
|
|
553
|
-
* capture a usable refresh token in plaintext. The refresh path
|
|
554
|
-
* already only sends what the server hashes server-side; the revoke
|
|
555
|
-
* path's contract previously leaked the token in transit. Sending
|
|
556
|
-
* the hash makes the body ineligible as a credential for any future
|
|
557
|
-
* replay attempt while keeping back-compat with un-upgraded servers.
|
|
558
|
-
*/
|
|
559
|
-
async function revokeDaemonRefreshSession(serverUrl, refreshToken) {
|
|
560
|
-
if (!refreshToken)
|
|
561
|
-
return;
|
|
562
|
-
const log = (0, runtime_js_1.getAuthLogger)();
|
|
563
|
-
const url = `${serverUrl.replace(/\/+$/, '')}/api/daemons/token/revoke`;
|
|
564
|
-
const controller = new AbortController();
|
|
565
|
-
const timer = setTimeout(() => controller.abort(), 5_000);
|
|
566
|
-
// H1 — SHA-256 hex digest matches the server's `hashRefreshToken`
|
|
567
|
-
// helper byte-for-byte: `crypto.createHash('sha256').update(token).digest('hex')`.
|
|
568
|
-
// 64-char lowercase hex string, the exact lookup key in the
|
|
569
|
-
// `refreshHash` index.
|
|
570
|
-
const refreshTokenHash = node_crypto_1.default.createHash('sha256').update(refreshToken, 'utf8').digest('hex');
|
|
571
|
-
try {
|
|
572
|
-
const res = await fetch(url, {
|
|
573
|
-
method: 'POST',
|
|
574
|
-
headers: { 'Content-Type': 'application/json' },
|
|
575
|
-
body: JSON.stringify({ refreshTokenHash, refreshToken }),
|
|
576
|
-
signal: controller.signal,
|
|
577
|
-
});
|
|
578
|
-
(0, runtime_js_1.notifyResponseObserver)(res);
|
|
579
|
-
if (!res.ok) {
|
|
580
|
-
log.debug(`[auth/refresh] revoke returned ${res.status}`);
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
catch (err) {
|
|
584
|
-
log.debug(`[auth/refresh] revoke network error: ${err?.message}`);
|
|
223
|
+
}
|
|
224
|
+
const p = doRefresh(serverUrl, currentRefreshToken, daemonId, options).finally(() => {
|
|
225
|
+
if (inflightRefreshes.get(daemonId) === p) {
|
|
226
|
+
inflightRefreshes.delete(daemonId);
|
|
585
227
|
}
|
|
586
|
-
|
|
587
|
-
|
|
228
|
+
});
|
|
229
|
+
inflightRefreshes.set(daemonId, p);
|
|
230
|
+
const reaper = setTimeout(() => {
|
|
231
|
+
if (inflightRefreshes.get(daemonId) === p) {
|
|
232
|
+
try {
|
|
233
|
+
(0, import_runtime.getAuthLogger)().warn(`[auth/refresh] inflight reap fired for ${daemonId} \u2014 finally cleanup did not complete within ${INFLIGHT_REAP_MS}ms`);
|
|
234
|
+
} catch {
|
|
235
|
+
}
|
|
236
|
+
inflightRefreshes.delete(daemonId);
|
|
588
237
|
}
|
|
238
|
+
}, INFLIGHT_REAP_MS);
|
|
239
|
+
if (typeof reaper.unref === "function")
|
|
240
|
+
reaper.unref();
|
|
241
|
+
return p;
|
|
589
242
|
}
|
|
590
|
-
async function
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
243
|
+
async function revokeDaemonRefreshSession(serverUrl, refreshToken) {
|
|
244
|
+
if (!refreshToken)
|
|
245
|
+
return;
|
|
246
|
+
const log = (0, import_runtime.getAuthLogger)();
|
|
247
|
+
const url = `${serverUrl.replace(/\/+$/, "")}/api/daemons/token/revoke`;
|
|
248
|
+
const controller = new AbortController();
|
|
249
|
+
const timer = setTimeout(() => controller.abort(), 5e3);
|
|
250
|
+
const refreshTokenHash = import_node_crypto.default.createHash("sha256").update(refreshToken, "utf8").digest("hex");
|
|
251
|
+
try {
|
|
252
|
+
const res = await fetch(url, {
|
|
253
|
+
method: "POST",
|
|
254
|
+
headers: { "Content-Type": "application/json" },
|
|
255
|
+
body: JSON.stringify({ refreshTokenHash, refreshToken }),
|
|
256
|
+
signal: controller.signal
|
|
598
257
|
});
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
// soft-binding check (H7) tolerates either side missing the field.
|
|
603
|
-
const body = {
|
|
604
|
-
refreshToken: currentRefreshToken,
|
|
605
|
-
daemonId,
|
|
606
|
-
};
|
|
607
|
-
if (options.machineUuid) {
|
|
608
|
-
body.machineUuid = options.machineUuid;
|
|
609
|
-
}
|
|
610
|
-
// H1 — Per-attempt request builder. The proof MUST be minted once
|
|
611
|
-
// per outgoing HTTP request: every fetch carries a fresh `iat` +
|
|
612
|
-
// `jti` so the server-side replay cache (`seen-jti:{thumbprint}:{jti}`,
|
|
613
|
-
// see `api/server/services/Auth/jtiReplayCache.js`) never rejects a
|
|
614
|
-
// legitimate retry as a duplicate. If the proof were minted once and
|
|
615
|
-
// reused across retries, every retry would deterministically lose
|
|
616
|
-
// to the cache.
|
|
617
|
-
//
|
|
618
|
-
// Today the function only makes one HTTP attempt — but the contract
|
|
619
|
-
// is "every outgoing request to /refresh uses a freshly-built proof"
|
|
620
|
-
// and we want the structure to enforce it before any future retry
|
|
621
|
-
// logic re-introduces the bug. The attempt counter is exposed via
|
|
622
|
-
// a test-only diagnostic (`__refreshDiagnostics`) so we can assert
|
|
623
|
-
// the invariant without exporting a private control surface.
|
|
624
|
-
//
|
|
625
|
-
// FOOTGUN — do NOT hoist `buildRequestInit` outside this function or
|
|
626
|
-
// outside any future retry loop. The structural test
|
|
627
|
-
// "proof-per-attempt invariant: a retry loop must call buildRequestInit()
|
|
628
|
-
// per attempt" in `refresh.deviceProof.test.ts` asserts the function
|
|
629
|
-
// is defined inside `doRefresh` and will fail if it is moved.
|
|
630
|
-
function buildRequestInit() {
|
|
631
|
-
// Phase 3-R5: the stable `X-Oversky-Origin` header is the server's
|
|
632
|
-
// preferred identity signal on the benign-grace rotation match. Newer
|
|
633
|
-
// servers prefer it over the raw User-Agent; older servers ignore
|
|
634
|
-
// unknown headers. Safe one-sided change either way.
|
|
635
|
-
const headers = { 'Content-Type': 'application/json' };
|
|
636
|
-
if (options.origin) {
|
|
637
|
-
headers['X-Oversky-Origin'] = options.origin;
|
|
638
|
-
}
|
|
639
|
-
// L11 Phase 3 — attach a device-identity proof when the daemon-side
|
|
640
|
-
// bridge can mint one. A null/undefined return or a thrown callback
|
|
641
|
-
// is non-fatal: the request goes out without the header and the
|
|
642
|
-
// server's lenient middleware (`off` / `warn` mode default) accepts
|
|
643
|
-
// it. Once the operator flips `OVERSKY_DEVICE_PROOF_ENFORCE=enforce`
|
|
644
|
-
// on the server, a missing-proof request from an enrolled daemon
|
|
645
|
-
// becomes a 401 — but daemons that reach this code path always have
|
|
646
|
-
// device identity initialized via `prefetchAuth()`, so the only
|
|
647
|
-
// legitimate "missing proof" case is a daemon binary older than
|
|
648
|
-
// Phase 1.
|
|
649
|
-
exports.__refreshDiagnostics.requestAttemptCount += 1;
|
|
650
|
-
if (options.signRequestProof) {
|
|
651
|
-
try {
|
|
652
|
-
const proof = options.signRequestProof({
|
|
653
|
-
method: 'POST',
|
|
654
|
-
url,
|
|
655
|
-
refreshToken: currentRefreshToken,
|
|
656
|
-
});
|
|
657
|
-
// Count every callback invocation, including ones that
|
|
658
|
-
// returned null/empty/threw. The invariant we care about is
|
|
659
|
-
// "one mint per attempt" — whether the mint produced a usable
|
|
660
|
-
// header is a separate concern (legacy daemons, key not yet
|
|
661
|
-
// initialized, etc.).
|
|
662
|
-
exports.__refreshDiagnostics.proofAttemptCount += 1;
|
|
663
|
-
if (typeof proof === 'string' && proof.length > 0) {
|
|
664
|
-
headers['OverSky-DPoP'] = proof;
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
catch (err) {
|
|
668
|
-
// Even a thrown callback counts as an attempt — the daemon
|
|
669
|
-
// bridge tried to mint, the mint failed, and we proceed
|
|
670
|
-
// without the header. Without this count the invariant
|
|
671
|
-
// would silently drift if a future regression made the
|
|
672
|
-
// callback throw on every-other call.
|
|
673
|
-
exports.__refreshDiagnostics.proofAttemptCount += 1;
|
|
674
|
-
log.debug(`[auth/refresh] signRequestProof threw — proceeding without device-identity header: ${err?.message ?? 'unknown'}`);
|
|
675
|
-
}
|
|
676
|
-
}
|
|
677
|
-
return {
|
|
678
|
-
method: 'POST',
|
|
679
|
-
headers,
|
|
680
|
-
body: JSON.stringify(body),
|
|
681
|
-
};
|
|
682
|
-
}
|
|
683
|
-
let response;
|
|
684
|
-
try {
|
|
685
|
-
// Single attempt today. The builder structure is the load-bearing
|
|
686
|
-
// bit: any future retry must call `buildRequestInit()` again so
|
|
687
|
-
// the per-attempt invariant — fresh jti per request — holds.
|
|
688
|
-
response = await fetch(url, buildRequestInit());
|
|
689
|
-
(0, runtime_js_1.notifyResponseObserver)(response);
|
|
258
|
+
(0, import_runtime.notifyResponseObserver)(res);
|
|
259
|
+
if (!res.ok) {
|
|
260
|
+
log.debug(`[auth/refresh] revoke returned ${res.status}`);
|
|
690
261
|
}
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
262
|
+
} catch (err) {
|
|
263
|
+
log.debug(`[auth/refresh] revoke network error: ${err?.message}`);
|
|
264
|
+
} finally {
|
|
265
|
+
clearTimeout(timer);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async function doRefresh(serverUrl, currentRefreshToken, daemonId, options = {}) {
|
|
269
|
+
const log = (0, import_runtime.getAuthLogger)();
|
|
270
|
+
const startMs = Date.now();
|
|
271
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
272
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
273
|
+
eventType: "auth",
|
|
274
|
+
success: true,
|
|
275
|
+
metadata: { event: "refresh_start", daemonId }
|
|
276
|
+
});
|
|
277
|
+
const url = `${serverUrl.replace(/\/+$/, "")}/api/daemons/token/refresh`;
|
|
278
|
+
const body = {
|
|
279
|
+
refreshToken: currentRefreshToken,
|
|
280
|
+
daemonId
|
|
281
|
+
};
|
|
282
|
+
if (options.machineUuid) {
|
|
283
|
+
body.machineUuid = options.machineUuid;
|
|
284
|
+
}
|
|
285
|
+
function buildRequestInit() {
|
|
286
|
+
const headers = { "Content-Type": "application/json" };
|
|
287
|
+
if (options.origin) {
|
|
288
|
+
headers["X-Oversky-Origin"] = options.origin;
|
|
711
289
|
}
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
const data = (await response.json());
|
|
720
|
-
// Soft backoff hint (production-hardening 2026-05-06). Server-side
|
|
721
|
-
// sets `X-Refresh-Backoff: <seconds>` when fleet refresh-QPS is
|
|
722
|
-
// high; the daemon's scheduler should defer its NEXT proactive
|
|
723
|
-
// refresh by that amount + jitter. Distinct from 429 Retry-After
|
|
724
|
-
// which signals "this request was rejected" — soft backoff fires
|
|
725
|
-
// on 200 responses, the rotation succeeded, and ignoring the hint
|
|
726
|
-
// is safe but causes the herd to reconverge.
|
|
727
|
-
//
|
|
728
|
-
// Parse defensively: a malformed header (negative, NaN, absurdly
|
|
729
|
-
// large) produces `undefined` so consumers fall through to their
|
|
730
|
-
// own scheduler defaults.
|
|
731
|
-
// Cap at 10 min so a misconfigured / compromised server cannot pin
|
|
732
|
-
// daemons to a multi-hour interval and starve them of refresh.
|
|
733
|
-
const SOFT_BACKOFF_MAX_SECONDS = 600;
|
|
734
|
-
let softBackoffSeconds;
|
|
735
|
-
const backoffHeader = response.headers.get('X-Refresh-Backoff');
|
|
736
|
-
if (typeof backoffHeader === 'string') {
|
|
737
|
-
const parsed = parseInt(backoffHeader, 10);
|
|
738
|
-
if (Number.isFinite(parsed) && parsed > 0) {
|
|
739
|
-
if (parsed > SOFT_BACKOFF_MAX_SECONDS) {
|
|
740
|
-
(0, runtime_js_1.getAuthLogger)().warn(`[auth/refresh] X-Refresh-Backoff=${parsed}s exceeds ${SOFT_BACKOFF_MAX_SECONDS}s cap — clamping`);
|
|
741
|
-
}
|
|
742
|
-
softBackoffSeconds = Math.min(parsed, SOFT_BACKOFF_MAX_SECONDS);
|
|
743
|
-
}
|
|
744
|
-
}
|
|
745
|
-
const pair = {
|
|
746
|
-
// Coerce empty string / undefined to null so consumers branch
|
|
747
|
-
// on a single canonical shape (the wire may legitimately ship
|
|
748
|
-
// any of three things for daemon scope: `null` literal, field
|
|
749
|
-
// absent, or empty string). Non-daemon scopes always supply a
|
|
750
|
-
// non-empty JWT here.
|
|
751
|
-
accessToken: typeof data.accessToken === 'string' && data.accessToken.length > 0
|
|
752
|
-
? data.accessToken
|
|
753
|
-
: null,
|
|
754
|
-
accessExpiresAt: new Date(data.accessExpiresAt).getTime(),
|
|
755
|
-
refreshToken: data.refreshToken,
|
|
756
|
-
refreshExpiresAt: new Date(data.refreshExpiresAt).getTime(),
|
|
757
|
-
// Distinguish "field absent" (older server, leave caller's
|
|
758
|
-
// existing value alone) from "field present but null" (server
|
|
759
|
-
// explicitly cleared, callers MUST overwrite their cache).
|
|
760
|
-
// Three-valued semantic mirrors the daemon-side saveToken
|
|
761
|
-
// options bag — see daemon/src/auth.ts JSDoc.
|
|
762
|
-
opaqueAccessToken: Object.prototype.hasOwnProperty.call(data, 'opaqueAccessToken')
|
|
763
|
-
? typeof data.opaqueAccessToken === 'string'
|
|
764
|
-
? data.opaqueAccessToken
|
|
765
|
-
: null
|
|
766
|
-
: undefined,
|
|
767
|
-
...(softBackoffSeconds !== undefined ? { softBackoffSeconds } : {}),
|
|
768
|
-
};
|
|
769
|
-
log.info(`[auth/refresh] rotated — access expires in ${Math.round((pair.accessExpiresAt - Date.now()) / 1000)}s`);
|
|
770
|
-
(0, runtime_js_1.emitAuthTelemetry)({
|
|
771
|
-
timestamp: new Date().toISOString(),
|
|
772
|
-
eventType: 'auth',
|
|
773
|
-
success: true,
|
|
774
|
-
metadata: {
|
|
775
|
-
event: 'refresh_success',
|
|
776
|
-
daemonId,
|
|
777
|
-
durationMs: Date.now() - startMs,
|
|
778
|
-
tokensRotated: true,
|
|
779
|
-
},
|
|
290
|
+
__refreshDiagnostics.requestAttemptCount += 1;
|
|
291
|
+
if (options.signRequestProof) {
|
|
292
|
+
try {
|
|
293
|
+
const proof = options.signRequestProof({
|
|
294
|
+
method: "POST",
|
|
295
|
+
url,
|
|
296
|
+
refreshToken: currentRefreshToken
|
|
780
297
|
});
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
// endpoint healthy, so any prior unknown-401 run was genuinely transient
|
|
785
|
-
// — the next regression starts with a fresh budget. Transient non-401
|
|
786
|
-
// outcomes (network/429/5xx) deliberately do NOT reset, so a flaky-but-
|
|
787
|
-
// dead unknown credential still converges to the permanent latch.
|
|
788
|
-
resetUnknown401Streak(daemonId);
|
|
789
|
-
try {
|
|
790
|
-
clearReauthState();
|
|
791
|
-
}
|
|
792
|
-
catch {
|
|
793
|
-
/* ignore */
|
|
298
|
+
__refreshDiagnostics.proofAttemptCount += 1;
|
|
299
|
+
if (typeof proof === "string" && proof.length > 0) {
|
|
300
|
+
headers["OverSky-DPoP"] = proof;
|
|
794
301
|
}
|
|
795
|
-
|
|
302
|
+
} catch (err) {
|
|
303
|
+
__refreshDiagnostics.proofAttemptCount += 1;
|
|
304
|
+
log.debug(`[auth/refresh] signRequestProof threw \u2014 proceeding without device-identity header: ${err?.message ?? "unknown"}`);
|
|
305
|
+
}
|
|
796
306
|
}
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
// unknown-401 budget.
|
|
833
|
-
//
|
|
834
|
-
// RESET SEMANTICS (Finding 4 follow-up): this is one of only TWO
|
|
835
|
-
// outcomes that reset the unknown-401 streak (the other is a 200
|
|
836
|
-
// success). We reset here because the server just spoke a definitive,
|
|
837
|
-
// recognized verdict about the credential — whatever it says next
|
|
838
|
-
// about an unknown-shape 401 starts a clean run, and we also prevent a
|
|
839
|
-
// prior unknown-401 run from compounding with a real family-burn.
|
|
840
|
-
resetUnknown401Streak(daemonId);
|
|
841
|
-
log.warn(`[auth/refresh] permanent failure: ${code} — ${parsedBody.message ?? ''}`);
|
|
842
|
-
(0, runtime_js_1.emitAuthTelemetry)({
|
|
843
|
-
timestamp: new Date().toISOString(),
|
|
844
|
-
eventType: 'auth',
|
|
845
|
-
success: false,
|
|
846
|
-
metadata: {
|
|
847
|
-
event: 'refresh_failure',
|
|
848
|
-
daemonId,
|
|
849
|
-
durationMs: Date.now() - startMs,
|
|
850
|
-
errorCode: code,
|
|
851
|
-
statusCode: 401,
|
|
852
|
-
},
|
|
853
|
-
});
|
|
854
|
-
// OSK-16941 — keep WHY a revoked session was revoked, so the CLI and the
|
|
855
|
-
// desktop banner can tell the person instead of a bare code.
|
|
856
|
-
const revocationReason = code === 'SESSION_REVOKED' && typeof parsedBody.reason === 'string'
|
|
857
|
-
? parsedBody.reason.slice(0, 64)
|
|
858
|
-
: undefined;
|
|
859
|
-
persistReauthState({
|
|
860
|
-
code,
|
|
861
|
-
message: parsedBody.message,
|
|
862
|
-
...(revocationReason ? { revocationReason } : {}),
|
|
863
|
-
at: Date.now(),
|
|
864
|
-
});
|
|
865
|
-
throw new types_js_1.PermanentAuthFailure(code, parsedBody.message || code, revocationReason);
|
|
866
|
-
}
|
|
867
|
-
// Unknown-shape 401 — unknown code, missing code, or unparseable body.
|
|
868
|
-
// By construction this is NOT a daemon's actual refresh-family burn
|
|
869
|
-
// (those arrive as one of the KNOWN codes above); it most likely
|
|
870
|
-
// came from infra OverSky does not fully control — a proxy/middleware
|
|
871
|
-
// regression, a clock-skew replay rejection (DEVICE_PROOF_REPLAYED),
|
|
872
|
-
// or a half-rolled-out server route.
|
|
873
|
-
//
|
|
874
|
-
// Pre-fix every such 401 latched `PermanentAuthFailure('UNKNOWN_401')`
|
|
875
|
-
// + `persistReauthState` on the FIRST occurrence, forcing a manual
|
|
876
|
-
// reconnect even when the next refresh would have succeeded. Now we
|
|
877
|
-
// give a bounded retry budget: the first `UNKNOWN_401_BUDGET`
|
|
878
|
-
// consecutive unknown-401s on this daemonId throw `TransientAuthFailure`
|
|
879
|
-
// (NO persistReauthState), so the daemon's `performRefresh → return false`
|
|
880
|
-
// path lets the scheduler / reactive retry+backoff ride out a transient
|
|
881
|
-
// regression. Only once the budget is exhausted do we fall back to the
|
|
882
|
-
// original permanent latch — keeping the interactive re-auth modal as
|
|
883
|
-
// the FINAL fallback. The distinct `UNKNOWN_401` telemetry tag is kept
|
|
884
|
-
// on BOTH branches so monitoring can still see a server-side bug
|
|
885
|
-
// separately from a real expiration (and watch the retry-vs-latch split).
|
|
886
|
-
const message = parsedBody.message || 'Unknown auth failure';
|
|
887
|
-
const { exhausted, count } = recordUnknown401(daemonId, Date.now());
|
|
888
|
-
if (!exhausted) {
|
|
889
|
-
log.warn(`[auth/refresh] unknown-shape 401 (${count}/${exports.UNKNOWN_401_BUDGET}) — treating as transient, will retry: ${message}`);
|
|
890
|
-
(0, runtime_js_1.emitAuthTelemetry)({
|
|
891
|
-
timestamp: new Date().toISOString(),
|
|
892
|
-
eventType: 'auth',
|
|
893
|
-
success: false,
|
|
894
|
-
metadata: {
|
|
895
|
-
event: 'refresh_failure',
|
|
896
|
-
daemonId,
|
|
897
|
-
durationMs: Date.now() - startMs,
|
|
898
|
-
errorCode: 'UNKNOWN_401',
|
|
899
|
-
statusCode: 401,
|
|
900
|
-
// Distinguish a transient (retrying) unknown-401 from the
|
|
901
|
-
// budget-exhausted latch in the telemetry stream.
|
|
902
|
-
transient: true,
|
|
903
|
-
unknown401Streak: count,
|
|
904
|
-
},
|
|
905
|
-
});
|
|
906
|
-
throw new types_js_1.TransientAuthFailure(`Unknown auth failure (transient, retrying): ${message}`);
|
|
307
|
+
return {
|
|
308
|
+
method: "POST",
|
|
309
|
+
headers,
|
|
310
|
+
body: JSON.stringify(body)
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
let response;
|
|
314
|
+
try {
|
|
315
|
+
response = await fetch(url, buildRequestInit());
|
|
316
|
+
(0, import_runtime.notifyResponseObserver)(response);
|
|
317
|
+
} catch (err) {
|
|
318
|
+
log.warn(`[auth/refresh] network error: ${err?.message}`);
|
|
319
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
320
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
321
|
+
eventType: "auth",
|
|
322
|
+
success: false,
|
|
323
|
+
metadata: {
|
|
324
|
+
event: "refresh_failure",
|
|
325
|
+
daemonId,
|
|
326
|
+
durationMs: Date.now() - startMs,
|
|
327
|
+
errorCode: "NETWORK_ERROR"
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
throw new import_types.TransientAuthFailure("Network error during refresh", err);
|
|
331
|
+
}
|
|
332
|
+
if (response.status === 200) {
|
|
333
|
+
const data = await response.json();
|
|
334
|
+
const SOFT_BACKOFF_MAX_SECONDS = 600;
|
|
335
|
+
let softBackoffSeconds;
|
|
336
|
+
const backoffHeader = response.headers.get("X-Refresh-Backoff");
|
|
337
|
+
if (typeof backoffHeader === "string") {
|
|
338
|
+
const parsed = parseInt(backoffHeader, 10);
|
|
339
|
+
if (Number.isFinite(parsed) && parsed > 0) {
|
|
340
|
+
if (parsed > SOFT_BACKOFF_MAX_SECONDS) {
|
|
341
|
+
(0, import_runtime.getAuthLogger)().warn(`[auth/refresh] X-Refresh-Backoff=${parsed}s exceeds ${SOFT_BACKOFF_MAX_SECONDS}s cap \u2014 clamping`);
|
|
907
342
|
}
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
// surfaces the banner and the interactive modal becomes the final
|
|
911
|
-
// recovery path.
|
|
912
|
-
log.warn(`[auth/refresh] unknown-shape 401 budget exhausted (${count}/${exports.UNKNOWN_401_BUDGET}) — latching permanent: ${message}`);
|
|
913
|
-
(0, runtime_js_1.emitAuthTelemetry)({
|
|
914
|
-
timestamp: new Date().toISOString(),
|
|
915
|
-
eventType: 'auth',
|
|
916
|
-
success: false,
|
|
917
|
-
metadata: {
|
|
918
|
-
event: 'refresh_failure',
|
|
919
|
-
daemonId,
|
|
920
|
-
durationMs: Date.now() - startMs,
|
|
921
|
-
errorCode: 'UNKNOWN_401',
|
|
922
|
-
statusCode: 401,
|
|
923
|
-
transient: false,
|
|
924
|
-
unknown401Streak: count,
|
|
925
|
-
},
|
|
926
|
-
});
|
|
927
|
-
persistReauthState({
|
|
928
|
-
code: 'UNKNOWN_401',
|
|
929
|
-
message,
|
|
930
|
-
at: Date.now(),
|
|
931
|
-
});
|
|
932
|
-
throw new types_js_1.PermanentAuthFailure('UNKNOWN_401', message);
|
|
343
|
+
softBackoffSeconds = Math.min(parsed, SOFT_BACKOFF_MAX_SECONDS);
|
|
344
|
+
}
|
|
933
345
|
}
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
346
|
+
const pair = {
|
|
347
|
+
// Coerce empty string / undefined to null so consumers branch
|
|
348
|
+
// on a single canonical shape (the wire may legitimately ship
|
|
349
|
+
// any of three things for daemon scope: `null` literal, field
|
|
350
|
+
// absent, or empty string). Non-daemon scopes always supply a
|
|
351
|
+
// non-empty JWT here.
|
|
352
|
+
accessToken: typeof data.accessToken === "string" && data.accessToken.length > 0 ? data.accessToken : null,
|
|
353
|
+
accessExpiresAt: new Date(data.accessExpiresAt).getTime(),
|
|
354
|
+
refreshToken: data.refreshToken,
|
|
355
|
+
refreshExpiresAt: new Date(data.refreshExpiresAt).getTime(),
|
|
356
|
+
// Distinguish "field absent" (older server, leave caller's
|
|
357
|
+
// existing value alone) from "field present but null" (server
|
|
358
|
+
// explicitly cleared, callers MUST overwrite their cache).
|
|
359
|
+
// Three-valued semantic mirrors the daemon-side saveToken
|
|
360
|
+
// options bag — see daemon/src/auth.ts JSDoc.
|
|
361
|
+
opaqueAccessToken: Object.prototype.hasOwnProperty.call(data, "opaqueAccessToken") ? typeof data.opaqueAccessToken === "string" ? data.opaqueAccessToken : null : void 0,
|
|
362
|
+
...softBackoffSeconds !== void 0 ? { softBackoffSeconds } : {}
|
|
363
|
+
};
|
|
364
|
+
log.info(`[auth/refresh] rotated \u2014 access expires in ${Math.round((pair.accessExpiresAt - Date.now()) / 1e3)}s`);
|
|
365
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
366
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
367
|
+
eventType: "auth",
|
|
368
|
+
success: true,
|
|
369
|
+
metadata: {
|
|
370
|
+
event: "refresh_success",
|
|
371
|
+
daemonId,
|
|
372
|
+
durationMs: Date.now() - startMs,
|
|
373
|
+
tokensRotated: true
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
resetUnknown401Streak(daemonId);
|
|
377
|
+
try {
|
|
378
|
+
clearReauthState();
|
|
379
|
+
} catch {
|
|
380
|
+
}
|
|
381
|
+
return pair;
|
|
382
|
+
}
|
|
383
|
+
if (response.status === 429) {
|
|
384
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
385
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
386
|
+
eventType: "auth",
|
|
387
|
+
success: false,
|
|
388
|
+
metadata: {
|
|
389
|
+
event: "refresh_failure",
|
|
390
|
+
daemonId,
|
|
391
|
+
durationMs: Date.now() - startMs,
|
|
392
|
+
errorCode: "RATE_LIMITED",
|
|
393
|
+
statusCode: 429
|
|
394
|
+
}
|
|
395
|
+
});
|
|
396
|
+
throw new import_types.TransientAuthFailure("Refresh rate-limited by server");
|
|
397
|
+
}
|
|
398
|
+
if (response.status === 401) {
|
|
399
|
+
let parsedBody = {};
|
|
940
400
|
try {
|
|
941
|
-
|
|
401
|
+
parsedBody = await response.json();
|
|
402
|
+
} catch {
|
|
942
403
|
}
|
|
943
|
-
|
|
944
|
-
|
|
404
|
+
const code = (0, import_refreshClassification.permanentReasonForRefreshCode)(parsedBody.code);
|
|
405
|
+
if (code) {
|
|
406
|
+
resetUnknown401Streak(daemonId);
|
|
407
|
+
log.warn(`[auth/refresh] permanent failure: ${code} \u2014 ${parsedBody.message ?? ""}`);
|
|
408
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
409
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
410
|
+
eventType: "auth",
|
|
411
|
+
success: false,
|
|
412
|
+
metadata: {
|
|
413
|
+
event: "refresh_failure",
|
|
414
|
+
daemonId,
|
|
415
|
+
durationMs: Date.now() - startMs,
|
|
416
|
+
errorCode: code,
|
|
417
|
+
statusCode: 401
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
const revocationReason = code === "SESSION_REVOKED" && typeof parsedBody.reason === "string" ? parsedBody.reason.slice(0, 64) : void 0;
|
|
421
|
+
persistReauthState({
|
|
422
|
+
code,
|
|
423
|
+
message: parsedBody.message,
|
|
424
|
+
...revocationReason ? { revocationReason } : {},
|
|
425
|
+
at: Date.now()
|
|
426
|
+
});
|
|
427
|
+
throw new import_types.PermanentAuthFailure(code, parsedBody.message || code, revocationReason);
|
|
945
428
|
}
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
429
|
+
const message = parsedBody.message || "Unknown auth failure";
|
|
430
|
+
const { exhausted, count } = recordUnknown401(daemonId, Date.now());
|
|
431
|
+
if (!exhausted) {
|
|
432
|
+
log.warn(`[auth/refresh] unknown-shape 401 (${count}/${UNKNOWN_401_BUDGET}) \u2014 treating as transient, will retry: ${message}`);
|
|
433
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
434
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
435
|
+
eventType: "auth",
|
|
949
436
|
success: false,
|
|
950
437
|
metadata: {
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
438
|
+
event: "refresh_failure",
|
|
439
|
+
daemonId,
|
|
440
|
+
durationMs: Date.now() - startMs,
|
|
441
|
+
errorCode: "UNKNOWN_401",
|
|
442
|
+
statusCode: 401,
|
|
443
|
+
// Distinguish a transient (retrying) unknown-401 from the
|
|
444
|
+
// budget-exhausted latch in the telemetry stream.
|
|
445
|
+
transient: true,
|
|
446
|
+
unknown401Streak: count
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
throw new import_types.TransientAuthFailure(`Unknown auth failure (transient, retrying): ${message}`);
|
|
450
|
+
}
|
|
451
|
+
log.warn(`[auth/refresh] unknown-shape 401 budget exhausted (${count}/${UNKNOWN_401_BUDGET}) \u2014 latching permanent: ${message}`);
|
|
452
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
453
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
454
|
+
eventType: "auth",
|
|
455
|
+
success: false,
|
|
456
|
+
metadata: {
|
|
457
|
+
event: "refresh_failure",
|
|
458
|
+
daemonId,
|
|
459
|
+
durationMs: Date.now() - startMs,
|
|
460
|
+
errorCode: "UNKNOWN_401",
|
|
461
|
+
statusCode: 401,
|
|
462
|
+
transient: false,
|
|
463
|
+
unknown401Streak: count
|
|
464
|
+
}
|
|
957
465
|
});
|
|
958
|
-
|
|
466
|
+
persistReauthState({
|
|
467
|
+
code: "UNKNOWN_401",
|
|
468
|
+
message,
|
|
469
|
+
at: Date.now()
|
|
470
|
+
});
|
|
471
|
+
throw new import_types.PermanentAuthFailure("UNKNOWN_401", message);
|
|
472
|
+
}
|
|
473
|
+
let bodyText = "";
|
|
474
|
+
try {
|
|
475
|
+
bodyText = await response.text();
|
|
476
|
+
} catch {
|
|
477
|
+
}
|
|
478
|
+
(0, import_runtime.emitAuthTelemetry)({
|
|
479
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
480
|
+
eventType: "auth",
|
|
481
|
+
success: false,
|
|
482
|
+
metadata: {
|
|
483
|
+
event: "refresh_failure",
|
|
484
|
+
daemonId,
|
|
485
|
+
durationMs: Date.now() - startMs,
|
|
486
|
+
errorCode: "SERVER_ERROR",
|
|
487
|
+
statusCode: response.status
|
|
488
|
+
}
|
|
489
|
+
});
|
|
490
|
+
throw new import_types.TransientAuthFailure(`Refresh failed (${response.status}): ${bodyText.slice(0, 200)}`);
|
|
959
491
|
}
|
|
960
492
|
function persistReauthState(state) {
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
}
|
|
493
|
+
const log = (0, import_runtime.getAuthLogger)();
|
|
494
|
+
const flagPath = reauthFlagPath();
|
|
495
|
+
try {
|
|
496
|
+
const dir = import_node_path.default.dirname(flagPath);
|
|
497
|
+
if (!import_node_fs.default.existsSync(dir))
|
|
498
|
+
import_node_fs.default.mkdirSync(dir, { recursive: true, mode: 448 });
|
|
499
|
+
import_node_fs.default.writeFileSync(flagPath, JSON.stringify(state, null, 2) + "\n", {
|
|
500
|
+
mode: 384
|
|
501
|
+
});
|
|
502
|
+
} catch (err) {
|
|
503
|
+
log.debug(`[auth/refresh] failed to persist reauth flag: ${err?.message}`);
|
|
504
|
+
}
|
|
974
505
|
}
|
|
975
506
|
function needsReauthState() {
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
};
|
|
993
|
-
}
|
|
994
|
-
catch {
|
|
995
|
-
return { needed: false };
|
|
996
|
-
}
|
|
507
|
+
try {
|
|
508
|
+
const flagPath = reauthFlagPath();
|
|
509
|
+
if (!import_node_fs.default.existsSync(flagPath))
|
|
510
|
+
return { needed: false };
|
|
511
|
+
const raw = import_node_fs.default.readFileSync(flagPath, "utf-8");
|
|
512
|
+
const state = JSON.parse(raw);
|
|
513
|
+
return {
|
|
514
|
+
needed: true,
|
|
515
|
+
reason: state.code,
|
|
516
|
+
...typeof state.message === "string" && state.message.length > 0 ? { message: state.message } : {},
|
|
517
|
+
...typeof state.revocationReason === "string" && state.revocationReason.length > 0 ? { revocationReason: state.revocationReason } : {},
|
|
518
|
+
since: state.at
|
|
519
|
+
};
|
|
520
|
+
} catch {
|
|
521
|
+
return { needed: false };
|
|
522
|
+
}
|
|
997
523
|
}
|
|
998
524
|
function clearReauthState() {
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
}
|
|
525
|
+
const log = (0, import_runtime.getAuthLogger)();
|
|
526
|
+
try {
|
|
527
|
+
const flagPath = reauthFlagPath();
|
|
528
|
+
if (import_node_fs.default.existsSync(flagPath))
|
|
529
|
+
import_node_fs.default.unlinkSync(flagPath);
|
|
530
|
+
} catch (err) {
|
|
531
|
+
log.debug(`[auth/refresh] clearReauthState: ${err?.message}`);
|
|
532
|
+
}
|
|
1008
533
|
}
|
|
534
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
535
|
+
0 && (module.exports = {
|
|
536
|
+
AUTH_LOCK_PATH_FN,
|
|
537
|
+
LOCK_SIGNAL_FALLBACK_EXIT_MS,
|
|
538
|
+
REAUTH_FLAG_PATH_FN,
|
|
539
|
+
UNKNOWN_401_BUDGET,
|
|
540
|
+
__refreshDiagnostics,
|
|
541
|
+
__resetUnknown401StreaksForTest,
|
|
542
|
+
clearReauthState,
|
|
543
|
+
installLockExitHandlers,
|
|
544
|
+
needsReauthState,
|
|
545
|
+
persistReauthState,
|
|
546
|
+
refreshDaemonToken,
|
|
547
|
+
revokeDaemonRefreshSession,
|
|
548
|
+
withAuthLock
|
|
549
|
+
});
|