@skrr-ai/cli 0.1.109 → 0.1.111
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/bin/run.js +15 -1
- package/dist/base-command.d.ts +44 -1
- package/dist/base-command.js +194 -33
- package/dist/commands/actions/list.js +2 -1
- package/dist/commands/agenda/trigger/create.js +1 -1
- package/dist/commands/agenda/trigger/list.js +2 -1
- package/dist/commands/agent-groups/list.js +2 -1
- package/dist/commands/agents/actions/list.js +2 -1
- package/dist/commands/agents/always-on/status.js +5 -0
- package/dist/commands/agents/chat.js +4 -1
- package/dist/commands/agents/duplicate.js +4 -0
- package/dist/commands/agents/eval/list.js +2 -1
- package/dist/commands/agents/files/list.js +2 -1
- package/dist/commands/agents/folders/list.js +2 -1
- package/dist/commands/agents/goals/list.js +2 -1
- package/dist/commands/agents/intuitions/list.js +8 -5
- package/dist/commands/agents/list.d.ts +12 -0
- package/dist/commands/agents/list.js +45 -8
- package/dist/commands/agents/releases/known-issues/list.js +2 -1
- package/dist/commands/agents/releases/list.js +5 -1
- package/dist/commands/agents/releases/trusted-publishers/list.js +2 -1
- package/dist/commands/agents/roles/list.js +2 -1
- package/dist/commands/agents/skills/list.js +2 -1
- package/dist/commands/agents/todos/list.js +2 -1
- package/dist/commands/agents/triggers/create.js +1 -1
- package/dist/commands/agents/triggers/list.js +2 -1
- package/dist/commands/agents/triggers/update.js +1 -1
- package/dist/commands/agents/update.d.ts +11 -0
- package/dist/commands/agents/update.js +58 -2
- package/dist/commands/api-keys/list.js +2 -1
- package/dist/commands/apps/channel.d.ts +20 -0
- package/dist/commands/apps/channel.js +64 -0
- package/dist/commands/apps/check-draft.d.ts +12 -0
- package/dist/commands/apps/check-draft.js +41 -0
- package/dist/commands/apps/check.d.ts +42 -0
- package/dist/commands/apps/check.js +91 -0
- package/dist/commands/apps/create.d.ts +15 -0
- package/dist/commands/apps/create.js +59 -0
- package/dist/commands/apps/data/put.d.ts +18 -0
- package/dist/commands/apps/data/put.js +72 -0
- package/dist/commands/apps/data/query.d.ts +20 -0
- package/dist/commands/apps/data/query.js +88 -0
- package/dist/commands/apps/disclosure.d.ts +16 -0
- package/dist/commands/apps/disclosure.js +71 -0
- package/dist/commands/apps/file/cat.d.ts +15 -0
- package/dist/commands/apps/file/cat.js +50 -0
- package/dist/commands/apps/file/ls.d.ts +13 -0
- package/dist/commands/apps/file/ls.js +47 -0
- package/dist/commands/apps/file/mv.d.ts +15 -0
- package/dist/commands/apps/file/mv.js +49 -0
- package/dist/commands/apps/file/rm.d.ts +15 -0
- package/dist/commands/apps/file/rm.js +53 -0
- package/dist/commands/apps/file/write.d.ts +17 -0
- package/dist/commands/apps/file/write.js +81 -0
- package/dist/commands/apps/install.d.ts +19 -0
- package/dist/commands/apps/install.js +136 -0
- package/dist/commands/apps/installations/list.d.ts +11 -0
- package/dist/commands/apps/installations/list.js +49 -0
- package/dist/commands/apps/installations/show.d.ts +12 -0
- package/dist/commands/apps/installations/show.js +61 -0
- package/dist/commands/apps/layout/set.d.ts +11 -0
- package/dist/commands/apps/layout/set.js +125 -0
- package/dist/commands/apps/layout/show.d.ts +9 -0
- package/dist/commands/apps/layout/show.js +33 -0
- package/dist/commands/apps/list.d.ts +10 -0
- package/dist/commands/apps/list.js +45 -0
- package/dist/commands/apps/logs.d.ts +13 -0
- package/dist/commands/apps/logs.js +55 -0
- package/dist/commands/apps/preview.d.ts +12 -0
- package/dist/commands/apps/preview.js +39 -0
- package/dist/commands/apps/publish/propose.d.ts +14 -0
- package/dist/commands/apps/publish/propose.js +45 -0
- package/dist/commands/apps/pull.d.ts +14 -0
- package/dist/commands/apps/pull.js +56 -0
- package/dist/commands/apps/push.d.ts +15 -0
- package/dist/commands/apps/push.js +75 -0
- package/dist/commands/apps/reconsent.d.ts +13 -0
- package/dist/commands/apps/reconsent.js +67 -0
- package/dist/commands/apps/report.d.ts +20 -0
- package/dist/commands/apps/report.js +63 -0
- package/dist/commands/apps/resume.d.ts +12 -0
- package/dist/commands/apps/resume.js +36 -0
- package/dist/commands/apps/settings/set.d.ts +13 -0
- package/dist/commands/apps/settings/set.js +54 -0
- package/dist/commands/apps/settings/show.d.ts +11 -0
- package/dist/commands/apps/settings/show.js +31 -0
- package/dist/commands/apps/show.d.ts +12 -0
- package/dist/commands/apps/show.js +49 -0
- package/dist/commands/apps/suspend.d.ts +12 -0
- package/dist/commands/apps/suspend.js +35 -0
- package/dist/commands/apps/uninstall.d.ts +13 -0
- package/dist/commands/apps/uninstall.js +43 -0
- package/dist/commands/apps/upgrade.d.ts +14 -0
- package/dist/commands/apps/upgrade.js +49 -0
- package/dist/commands/apps/version/create.d.ts +14 -0
- package/dist/commands/apps/version/create.js +53 -0
- package/dist/commands/apps/version/show.d.ts +12 -0
- package/dist/commands/apps/version/show.js +39 -0
- package/dist/commands/apps/versions.d.ts +12 -0
- package/dist/commands/apps/versions.js +40 -0
- package/dist/commands/apps/webhooks/list.d.ts +12 -0
- package/dist/commands/apps/webhooks/list.js +47 -0
- package/dist/commands/characters/list.js +2 -1
- package/dist/commands/chats/files/list.js +2 -1
- package/dist/commands/chats/folders/list.js +2 -1
- package/dist/commands/chats/list.js +2 -1
- package/dist/commands/chats/spaces/list.js +2 -1
- package/dist/commands/chats/widgets/list.js +2 -1
- package/dist/commands/code/jobs/list.js +4 -1
- package/dist/commands/commerce/incidents/list.js +2 -1
- package/dist/commands/commitments/accounting.js +3 -0
- package/dist/commands/commitments/action-proposals.d.ts +8 -0
- package/dist/commands/commitments/action-proposals.js +17 -2
- package/dist/commands/commitments/cost.d.ts +11 -0
- package/dist/commands/commitments/cost.js +25 -0
- package/dist/commands/commitments/create.js +6 -1
- package/dist/commands/commitments/endpoints/list.js +2 -1
- package/dist/commands/commitments/links/list.js +2 -1
- package/dist/commands/commitments/list.js +2 -1
- package/dist/commands/commitments/liveness.d.ts +30 -0
- package/dist/commands/commitments/liveness.js +22 -5
- package/dist/commands/commitments/pack/list.js +2 -1
- package/dist/commands/commitments/preflight.js +6 -2
- package/dist/commands/commitments/update.js +10 -1
- package/dist/commands/compass/list.js +2 -1
- package/dist/commands/context.js +7 -1
- package/dist/commands/convos/list.js +3 -2
- package/dist/commands/daemon/install.js +17 -1
- package/dist/commands/daemon/login.js +14 -0
- package/dist/commands/dm/list.js +2 -1
- package/dist/commands/dm/work.d.ts +19 -0
- package/dist/commands/dm/work.js +54 -0
- package/dist/commands/feeds/list.js +2 -1
- package/dist/commands/followups/list.js +2 -1
- package/dist/commands/followups/plans/cancel.d.ts +13 -0
- package/dist/commands/followups/plans/cancel.js +26 -0
- package/dist/commands/followups/plans/create.d.ts +11 -0
- package/dist/commands/followups/plans/create.js +35 -0
- package/dist/commands/followups/plans/list.d.ts +13 -0
- package/dist/commands/followups/plans/list.js +50 -0
- package/dist/commands/followups/plans/observability.d.ts +11 -0
- package/dist/commands/followups/plans/observability.js +46 -0
- package/dist/commands/followups/plans/revise.d.ts +13 -0
- package/dist/commands/followups/plans/revise.js +35 -0
- package/dist/commands/followups/plans/show.d.ts +11 -0
- package/dist/commands/followups/plans/show.js +32 -0
- package/dist/commands/goals/key-results/list.js +2 -1
- package/dist/commands/goals/labels/list.js +3 -2
- package/dist/commands/goals/list.js +3 -2
- package/dist/commands/grants/list.js +2 -1
- package/dist/commands/harnesses/grants/list.js +2 -1
- package/dist/commands/harnesses/leases/list.js +2 -1
- package/dist/commands/harnesses/list.js +10 -1
- package/dist/commands/harnesses/prune.d.ts +26 -0
- package/dist/commands/harnesses/prune.js +172 -0
- package/dist/commands/ingress/list.js +2 -1
- package/dist/commands/initiatives/list.js +2 -1
- package/dist/commands/instruction-blocks/list.js +2 -1
- package/dist/commands/instructions/list.js +2 -1
- package/dist/commands/integrations/connections/list.js +2 -1
- package/dist/commands/integrations/tools/list.js +2 -1
- package/dist/commands/labels/list.js +3 -2
- package/dist/commands/learning/adapters.d.ts +16 -0
- package/dist/commands/learning/adapters.js +44 -0
- package/dist/commands/login.js +11 -0
- package/dist/commands/machines/dedicated/list.js +2 -1
- package/dist/commands/machines/hosted/list.js +2 -1
- package/dist/commands/machines/list.js +2 -1
- package/dist/commands/machines/show.js +5 -2
- package/dist/commands/measures/list.js +2 -1
- package/dist/commands/memory/list.js +2 -1
- package/dist/commands/memory/proposals/list.js +2 -1
- package/dist/commands/memory/stores/list.js +2 -1
- package/dist/commands/memory/topics/list.js +2 -1
- package/dist/commands/memory/versions/list.js +2 -1
- package/dist/commands/messages/list.js +2 -1
- package/dist/commands/northstars/intents/list.js +2 -1
- package/dist/commands/northstars/list.js +2 -1
- package/dist/commands/northstars/recommendations/list.js +2 -1
- package/dist/commands/outbox/list.js +2 -1
- package/dist/commands/profiles/list.js +2 -1
- package/dist/commands/projects/docs/list.js +8 -1
- package/dist/commands/projects/updates/list.js +2 -1
- package/dist/commands/proposals/list.js +2 -1
- package/dist/commands/requests/comments/list.js +2 -1
- package/dist/commands/requests/list.js +2 -1
- package/dist/commands/shares/list.js +2 -1
- package/dist/commands/shortcuts/list.js +2 -1
- package/dist/commands/signals/monitors/list.js +2 -1
- package/dist/commands/signals/schemas/list.js +2 -1
- package/dist/commands/signals/sources/list.js +2 -1
- package/dist/commands/space-directory-views/list.js +2 -1
- package/dist/commands/spaces/actions/list.js +4 -3
- package/dist/commands/spaces/briefs/list.js +2 -1
- package/dist/commands/spaces/cycles/list.js +2 -1
- package/dist/commands/spaces/files/folders/list.js +2 -1
- package/dist/commands/spaces/files/list.js +3 -2
- package/dist/commands/spaces/heartbeats/list.js +3 -2
- package/dist/commands/spaces/labels/list.js +3 -2
- package/dist/commands/spaces/list.d.ts +3 -18
- package/dist/commands/spaces/list.js +28 -35
- package/dist/commands/spaces/live/cards/list.js +2 -1
- package/dist/commands/spaces/members/list.d.ts +1 -0
- package/dist/commands/spaces/members/list.js +4 -1
- package/dist/commands/spaces/show.js +2 -2
- package/dist/commands/spaces/skills/list.js +6 -2
- package/dist/commands/spaces/states/list.js +2 -1
- package/dist/commands/spaces/views/list.js +2 -1
- package/dist/commands/spaces/widgets/list.js +3 -2
- package/dist/commands/spaces/workflow-templates/list.js +2 -1
- package/dist/commands/spaces/workflows/fixtures/list.js +2 -1
- package/dist/commands/spaces/workflows/list.js +3 -2
- package/dist/commands/spaces/workflows/proposals/list.js +2 -1
- package/dist/commands/spaces/workflows/start.js +3 -1
- package/dist/commands/spaces/workflows/triggers/list.js +2 -1
- package/dist/commands/spaces/workflows/validate.js +12 -2
- package/dist/commands/store/acquisitions/list.js +2 -1
- package/dist/commands/store/admissions/list.js +17 -1
- package/dist/commands/store/advisories/list.js +2 -1
- package/dist/commands/store/follows/list.js +2 -1
- package/dist/commands/store/publishers/domains/list.js +2 -1
- package/dist/commands/store/reports/list.js +2 -1
- package/dist/commands/subscriptions/list.js +2 -1
- package/dist/commands/tasks/actionability.js +7 -30
- package/dist/commands/tasks/activity.js +14 -8
- package/dist/commands/tasks/approvals/list.js +2 -1
- package/dist/commands/tasks/assign.d.ts +1 -0
- package/dist/commands/tasks/assign.js +43 -7
- package/dist/commands/tasks/attachments/list.js +2 -1
- package/dist/commands/tasks/chat/send.js +34 -0
- package/dist/commands/tasks/comments/add.js +6 -1
- package/dist/commands/tasks/comments/list.js +2 -1
- package/dist/commands/tasks/complete.js +26 -2
- package/dist/commands/tasks/continue.d.ts +18 -0
- package/dist/commands/tasks/continue.js +54 -0
- package/dist/commands/tasks/create-tree.d.ts +5 -0
- package/dist/commands/tasks/create-tree.js +399 -219
- package/dist/commands/tasks/create.d.ts +1 -0
- package/dist/commands/tasks/create.js +63 -11
- package/dist/commands/tasks/deliverable/add.js +10 -3
- package/dist/commands/tasks/deliverable/list.js +2 -1
- package/dist/commands/tasks/events/list.js +2 -1
- package/dist/commands/tasks/execution-state.d.ts +12 -0
- package/dist/commands/tasks/execution-state.js +28 -0
- package/dist/commands/tasks/expectations/assess.js +40 -5
- package/dist/commands/tasks/guide.d.ts +10 -0
- package/dist/commands/tasks/guide.js +20 -0
- package/dist/commands/tasks/labels/list.js +2 -1
- package/dist/commands/tasks/list.d.ts +19 -0
- package/dist/commands/tasks/list.js +103 -6
- package/dist/commands/tasks/move.js +10 -2
- package/dist/commands/tasks/preflight.d.ts +14 -0
- package/dist/commands/tasks/preflight.js +77 -0
- package/dist/commands/tasks/rearm-recurrence.js +22 -3
- package/dist/commands/tasks/resource/list.js +2 -1
- package/dist/commands/tasks/result/submit.js +10 -1
- package/dist/commands/tasks/review.js +6 -1
- package/dist/commands/tasks/revisions.d.ts +2 -0
- package/dist/commands/tasks/revisions.js +8 -1
- package/dist/commands/tasks/show.d.ts +8 -0
- package/dist/commands/tasks/show.js +81 -43
- package/dist/commands/tasks/start.d.ts +1 -0
- package/dist/commands/tasks/start.js +35 -0
- package/dist/commands/tasks/templates/list.js +2 -1
- package/dist/commands/tasks/timeline.d.ts +5 -0
- package/dist/commands/tasks/timeline.js +9 -1
- package/dist/commands/tasks/unschedule.js +5 -1
- package/dist/commands/tasks/update.d.ts +1 -0
- package/dist/commands/tasks/update.js +36 -3
- package/dist/commands/tasks/updates/add.js +6 -1
- package/dist/commands/tasks/updates/list.js +2 -1
- package/dist/commands/tasks/upsert.d.ts +1 -0
- package/dist/commands/tasks/upsert.js +8 -1
- package/dist/commands/token/list.js +2 -1
- package/dist/commands/tokens/list.js +2 -1
- package/dist/commands/tones/list.js +4 -2
- package/dist/commands/triggers/audit.js +12 -3
- package/dist/commands/triggers/create.js +1 -1
- package/dist/commands/triggers/fire-detail.d.ts +7 -0
- package/dist/commands/triggers/fire-detail.js +30 -12
- package/dist/commands/triggers/fire.js +13 -3
- package/dist/commands/triggers/list.js +2 -1
- package/dist/commands/triggers/parse-intent.js +1 -1
- package/dist/commands/triggers/update.js +1 -1
- package/dist/commands/views/list.js +2 -1
- package/dist/commands/webhooks/list.js +2 -1
- package/dist/commands/whoami.js +1 -1
- package/dist/commands/widgets/list.js +2 -1
- package/dist/commands/widgets/save-as-app.d.ts +13 -0
- package/dist/commands/widgets/save-as-app.js +65 -0
- package/dist/commands/work-views/list.js +2 -1
- package/dist/commands/worklog/list.js +2 -1
- package/dist/commands/workspaces/grants.js +1 -4
- package/dist/commands/workspaces/list.js +3 -2
- package/dist/commands/workspaces/members.d.ts +1 -0
- package/dist/commands/workspaces/members.js +10 -7
- package/dist/generated/managed-instruction-guides.json +2 -2
- package/dist/help.js +7 -0
- package/dist/lib/agent-proactive-baseline.d.ts +9 -0
- package/dist/lib/agent-proactive-baseline.js +44 -0
- package/dist/lib/agentic-stream.d.ts +4 -1
- package/dist/lib/agentic-stream.js +29 -4
- package/dist/lib/appData.d.ts +75 -0
- package/dist/lib/appData.js +274 -0
- package/dist/lib/appInstallations.d.ts +117 -0
- package/dist/lib/appInstallations.js +960 -0
- package/dist/lib/appSettings.d.ts +3 -0
- package/dist/lib/appSettings.js +71 -0
- package/dist/lib/appWebhooks.d.ts +7 -0
- package/dist/lib/appWebhooks.js +59 -0
- package/dist/lib/apps-command.d.ts +44 -0
- package/dist/lib/apps-command.js +164 -0
- package/dist/lib/apps.d.ts +45 -0
- package/dist/lib/apps.js +148 -0
- package/dist/lib/appsCheck.d.ts +12 -0
- package/dist/lib/appsCheck.js +173 -0
- package/dist/lib/appsFs.d.ts +58 -0
- package/dist/lib/appsFs.js +384 -0
- package/dist/lib/auth-failure.d.ts +20 -0
- package/dist/lib/auth-failure.js +40 -3
- package/dist/lib/cli-installers.d.ts +9 -2
- package/dist/lib/command-miss.js +107 -0
- package/dist/lib/commitment-loop-status.js +25 -3
- package/dist/lib/commitment-product.js +5 -2
- package/dist/lib/commitments.d.ts +45 -3
- package/dist/lib/commitments.js +139 -41
- package/dist/lib/compasses.d.ts +4 -0
- package/dist/lib/compasses.js +11 -0
- package/dist/lib/daemon-machine-identity-copy.d.ts +14 -0
- package/dist/lib/daemon-machine-identity-copy.js +27 -0
- package/dist/lib/daemon-machine-identity.d.ts +27 -0
- package/dist/lib/daemon-machine-identity.js +61 -0
- package/dist/lib/daemon-setup.js +7 -7
- package/dist/lib/daemonHandoff.d.ts +19 -1
- package/dist/lib/daemonHandoff.js +62 -2
- package/dist/lib/dedicated-ssh.d.ts +2 -0
- package/dist/lib/dedicated-ssh.js +98 -28
- package/dist/lib/harnesses.d.ts +71 -0
- package/dist/lib/harnesses.js +70 -0
- package/dist/lib/json-output.d.ts +33 -0
- package/dist/lib/json-output.js +37 -0
- package/dist/lib/list-output.d.ts +9 -4
- package/dist/lib/list-output.js +38 -9
- package/dist/lib/lookbackPlans.d.ts +13 -0
- package/dist/lib/lookbackPlans.js +68 -0
- package/dist/lib/machines.d.ts +27 -6
- package/dist/lib/machines.js +25 -14
- package/dist/lib/member-output.d.ts +20 -0
- package/dist/lib/member-output.js +57 -0
- package/dist/lib/preflight-copy.d.ts +7 -0
- package/dist/lib/preflight-copy.js +31 -0
- package/dist/lib/profile-machine-identity-guard.js +11 -1
- package/dist/lib/roles.d.ts +2 -2
- package/dist/lib/task-admission.d.ts +9 -0
- package/dist/lib/task-admission.js +35 -0
- package/dist/lib/task-batch.d.ts +4 -0
- package/dist/lib/task-batch.js +2 -0
- package/dist/lib/task-economics.d.ts +10 -0
- package/dist/lib/task-economics.js +24 -2
- package/dist/lib/task-operations.d.ts +25 -0
- package/dist/lib/task-operations.js +123 -0
- package/dist/lib/task-preflight.d.ts +35 -0
- package/dist/lib/task-preflight.js +121 -0
- package/dist/lib/task-resource-references.d.ts +23 -0
- package/dist/lib/task-resource-references.js +119 -0
- package/dist/lib/task-spec-verification.d.ts +42 -0
- package/dist/lib/task-spec-verification.js +101 -0
- package/dist/lib/task-work.d.ts +11 -0
- package/dist/lib/task-work.js +41 -0
- package/dist/lib/task-write-attribution.d.ts +26 -0
- package/dist/lib/task-write-attribution.js +47 -0
- package/dist/lib/tasks.d.ts +13 -0
- package/dist/lib/tasks.js +61 -8
- package/dist/lib/triggers.d.ts +18 -0
- package/dist/lib/triggers.js +97 -5
- package/dist/lib/usage-discovery.d.ts +4 -0
- package/dist/lib/usage-discovery.js +14 -4
- package/dist/lib/widgetApps.d.ts +10 -0
- package/dist/lib/widgetApps.js +47 -0
- package/dist/lib/widgetStaticScan.js +25 -1
- package/dist/lib/workflow-run-view.d.ts +4 -0
- package/dist/lib/workflow-run-view.js +5 -0
- package/dist/lib/workspaces.d.ts +33 -9
- package/dist/lib/workspaces.js +19 -3
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.d.ts +14 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.js +47 -2
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonToolApproval.d.ts +49 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonToolApproval.js +26 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonWire.d.ts +118 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonWire.js +614 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.d.ts +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.js +5 -3
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/machineUuid.d.ts +60 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/machineUuid.js +130 -6
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refresh.d.ts +2 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refresh.js +15 -2
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refreshClassification.d.ts +5 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refreshClassification.js +3 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/sessionRevocation.d.ts +177 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/sessionRevocation.js +484 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.d.ts +11 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.js +46 -7
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.d.ts +232 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.js +372 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/types.d.ts +17 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/types.js +12 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/computerWire.d.ts +14 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/computerWire.js +45 -2
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonToolApproval.d.ts +49 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonToolApproval.js +24 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonWire.d.ts +118 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonWire.js +608 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.d.ts +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.js +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/machineUuid.d.ts +60 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/machineUuid.js +128 -6
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refresh.d.ts +2 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refresh.js +15 -2
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refreshClassification.d.ts +5 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refreshClassification.js +3 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/sessionRevocation.d.ts +177 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/sessionRevocation.js +472 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/telemetryRedaction.d.ts +11 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/telemetryRedaction.js +44 -6
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolApprovalSignature.d.ts +232 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolApprovalSignature.js +360 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/types.d.ts +17 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/types.js +12 -1
- package/dist/node_modules/@skrr-ai/auth-core/package.json +31 -1
- package/dist/node_modules/@skrr-ai/data-provider/index.js +25255 -18711
- package/docs/v1/operations.md +52 -0
- package/docs/v1/space-search.md +19 -0
- package/oclif.manifest.json +4843 -513
- package/package.json +32 -2
|
@@ -31,6 +31,11 @@
|
|
|
31
31
|
* and the daemon spends each approval once: a second delivery of the same
|
|
32
32
|
* attestation inside its window is refused as `replayed`. That ledger lives
|
|
33
33
|
* in daemon memory, so a daemon restart inside the (≤60s) window forgets it.
|
|
34
|
+
*
|
|
35
|
+
* v2 (OSK-16614, `toolApprovalSignature.ts`) carries the same claims signed by
|
|
36
|
+
* a platform Ed25519 key and bound to the daemon and session; a daemon that has
|
|
37
|
+
* pinned the platform's keyset accepts only v2. This module stays the v1
|
|
38
|
+
* format and the checks both versions share.
|
|
34
39
|
*/
|
|
35
40
|
/** Announced by a daemon that honours `attestedApproval` on daemon:tool:request. */
|
|
36
41
|
export declare const DAEMON_TOOL_ATTESTED_APPROVAL_CAPABILITY = "daemon_tool_attested_approval_v1";
|
|
@@ -84,6 +89,14 @@ export interface AttestedToolApproval {
|
|
|
84
89
|
issuedAt: number;
|
|
85
90
|
expiresAt: number;
|
|
86
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Deterministic serialization for the input digest: objects sort keys
|
|
94
|
+
* recursively, arrays keep order, non-JSON values normalize the way
|
|
95
|
+
* `JSON.stringify` would emit them (undefined/functions in objects drop, in
|
|
96
|
+
* arrays become null). Both runtimes must digest the SAME bytes — the server
|
|
97
|
+
* mints and the daemon verifies — so this lives here, once.
|
|
98
|
+
*/
|
|
99
|
+
export declare function canonicalApprovalJson(value: unknown): string;
|
|
87
100
|
/** The digest both sides compute over `toolInput`. */
|
|
88
101
|
export declare function canonicalToolInputDigest(toolInput: unknown): string;
|
|
89
102
|
/** Server side: mint the attestation after a person approved THIS call. */
|
|
@@ -106,8 +119,24 @@ export declare function mintAttestedToolApproval(args: {
|
|
|
106
119
|
* - `replayed` — this exact approval was already spent on this daemon
|
|
107
120
|
* (the ledger is the verifier's caller's, see the daemon's
|
|
108
121
|
* `permissions/attestation-ledger.ts`)
|
|
122
|
+
*
|
|
123
|
+
* Signed approvals (`tool_approval_signed_v1`, `toolApprovalSignature.ts`):
|
|
124
|
+
* - `unsigned` — a v1 (unsigned) attestation reached a daemon that has
|
|
125
|
+
* pinned the platform's approval keyset: a downgrade
|
|
126
|
+
* - `unknown_key` — signed by a key id the pinned keyset does not hold
|
|
127
|
+
* - `signature` — the signature does not verify over the payload
|
|
128
|
+
* - `daemon_binding` — signed for a different daemon or session
|
|
129
|
+
* - `unpinned` — a v2 attestation reached a daemon holding no keyset,
|
|
130
|
+
* so nothing here can verify it
|
|
131
|
+
* - `pin_unreadable` — the pinned keyset file exists and cannot be read;
|
|
132
|
+
* nothing is accepted rather than falling back to v1
|
|
133
|
+
*
|
|
134
|
+
* All are internal-only for the person: the daemon log line
|
|
135
|
+
* (`describePermissionRefusalForLog`, `attestation=<reason>`) names them, and
|
|
136
|
+
* the refusal text a caller reads distinguishes only `absent` from "did not
|
|
137
|
+
* verify" so a probing caller learns nothing new.
|
|
109
138
|
*/
|
|
110
|
-
export type AttestedToolApprovalRefusalReason = 'absent' | 'malformed' | 'binding' | 'expired' | 'window' | 'replayed';
|
|
139
|
+
export type AttestedToolApprovalRefusalReason = 'absent' | 'malformed' | 'binding' | 'expired' | 'window' | 'replayed' | 'unsigned' | 'unknown_key' | 'signature' | 'daemon_binding' | 'unpinned' | 'pin_unreadable';
|
|
111
140
|
export type AttestedToolApprovalVerdict = {
|
|
112
141
|
ok: true;
|
|
113
142
|
} | {
|
|
@@ -131,3 +160,22 @@ export declare function verifyAttestedToolApproval(approval: unknown, call: {
|
|
|
131
160
|
toolInput: unknown;
|
|
132
161
|
now?: number;
|
|
133
162
|
}): AttestedToolApprovalVerdict;
|
|
163
|
+
/**
|
|
164
|
+
* The checks every attestation version shares once its claims are trusted to
|
|
165
|
+
* be what the issuer wrote: freshness, the verifier-owned window, and the
|
|
166
|
+
* binding to this exact call. v1 reaches here after a shape check; v2
|
|
167
|
+
* (`toolApprovalSignature.ts`) only after its signature verified, so one
|
|
168
|
+
* implementation decides "expired", "window" and "binding" for both.
|
|
169
|
+
*/
|
|
170
|
+
export declare function verifyAttestedToolApprovalClaims(a: {
|
|
171
|
+
toolUseId: string;
|
|
172
|
+
toolName: string;
|
|
173
|
+
inputSha256: string;
|
|
174
|
+
issuedAt: number;
|
|
175
|
+
expiresAt: number;
|
|
176
|
+
}, call: {
|
|
177
|
+
toolUseId: string;
|
|
178
|
+
toolName: string;
|
|
179
|
+
toolInput: unknown;
|
|
180
|
+
now?: number;
|
|
181
|
+
}): AttestedToolApprovalVerdict;
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ATTESTED_TOOL_APPROVAL_CLOCK_SKEW_MS = exports.ATTESTED_TOOL_APPROVAL_TTL_MS = exports.DAEMON_TOOL_CATEGORIES = exports.DAEMON_TOOL_READ_ONLY_CAPABILITY = exports.DAEMON_TOOL_ATTESTED_APPROVAL_CAPABILITY = void 0;
|
|
4
4
|
exports.categoryForDaemonTool = categoryForDaemonTool;
|
|
5
|
+
exports.canonicalApprovalJson = canonicalApprovalJson;
|
|
5
6
|
exports.canonicalToolInputDigest = canonicalToolInputDigest;
|
|
6
7
|
exports.mintAttestedToolApproval = mintAttestedToolApproval;
|
|
7
8
|
exports.verifyAttestedToolApproval = verifyAttestedToolApproval;
|
|
9
|
+
exports.verifyAttestedToolApprovalClaims = verifyAttestedToolApprovalClaims;
|
|
8
10
|
const node_crypto_1 = require("node:crypto");
|
|
9
11
|
/**
|
|
10
12
|
* Server-attested tool approval (OSK-11975 follow-up to the `manual` mode
|
|
@@ -39,6 +41,11 @@ const node_crypto_1 = require("node:crypto");
|
|
|
39
41
|
* and the daemon spends each approval once: a second delivery of the same
|
|
40
42
|
* attestation inside its window is refused as `replayed`. That ledger lives
|
|
41
43
|
* in daemon memory, so a daemon restart inside the (≤60s) window forgets it.
|
|
44
|
+
*
|
|
45
|
+
* v2 (OSK-16614, `toolApprovalSignature.ts`) carries the same claims signed by
|
|
46
|
+
* a platform Ed25519 key and bound to the daemon and session; a daemon that has
|
|
47
|
+
* pinned the platform's keyset accepts only v2. This module stays the v1
|
|
48
|
+
* format and the checks both versions share.
|
|
42
49
|
*/
|
|
43
50
|
/** Announced by a daemon that honours `attestedApproval` on daemon:tool:request. */
|
|
44
51
|
exports.DAEMON_TOOL_ATTESTED_APPROVAL_CAPABILITY = 'daemon_tool_attested_approval_v1';
|
|
@@ -112,6 +119,9 @@ exports.ATTESTED_TOOL_APPROVAL_TTL_MS = 60 * 1000;
|
|
|
112
119
|
* arrays become null). Both runtimes must digest the SAME bytes — the server
|
|
113
120
|
* mints and the daemon verifies — so this lives here, once.
|
|
114
121
|
*/
|
|
122
|
+
function canonicalApprovalJson(value) {
|
|
123
|
+
return canonicalJson(value);
|
|
124
|
+
}
|
|
115
125
|
function canonicalJson(value) {
|
|
116
126
|
if (value === null || typeof value !== 'object') {
|
|
117
127
|
if (value === undefined || typeof value === 'function' || typeof value === 'symbol') {
|
|
@@ -175,6 +185,22 @@ function verifyAttestedToolApproval(approval, call) {
|
|
|
175
185
|
typeof a.expiresAt !== 'number') {
|
|
176
186
|
return { ok: false, reason: 'malformed' };
|
|
177
187
|
}
|
|
188
|
+
return verifyAttestedToolApprovalClaims({
|
|
189
|
+
toolUseId: a.toolUseId,
|
|
190
|
+
toolName: a.toolName,
|
|
191
|
+
inputSha256: a.inputSha256,
|
|
192
|
+
issuedAt: a.issuedAt,
|
|
193
|
+
expiresAt: a.expiresAt,
|
|
194
|
+
}, call);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* The checks every attestation version shares once its claims are trusted to
|
|
198
|
+
* be what the issuer wrote: freshness, the verifier-owned window, and the
|
|
199
|
+
* binding to this exact call. v1 reaches here after a shape check; v2
|
|
200
|
+
* (`toolApprovalSignature.ts`) only after its signature verified, so one
|
|
201
|
+
* implementation decides "expired", "window" and "binding" for both.
|
|
202
|
+
*/
|
|
203
|
+
function verifyAttestedToolApprovalClaims(a, call) {
|
|
178
204
|
const now = call.now ?? Date.now();
|
|
179
205
|
if (a.expiresAt <= now || a.issuedAt > now + exports.ATTESTED_TOOL_APPROVAL_CLOCK_SKEW_MS) {
|
|
180
206
|
return { ok: false, reason: 'expired' };
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* daemonWire.ts — the ONE declaration of every name the daemon and the API
|
|
3
|
+
* put on the wire between them, with what each name is for (OSK-16617).
|
|
4
|
+
*
|
|
5
|
+
* `computerWire.ts` proved the pattern for one family: the names live in the
|
|
6
|
+
* published package every end can import, and a boundary spec fails on a
|
|
7
|
+
* second spelling. This module generalises it to the whole daemon wire. Each
|
|
8
|
+
* entry declares:
|
|
9
|
+
*
|
|
10
|
+
* - `direction` — who sends it. `bidirectional` means both ends send AND
|
|
11
|
+
* handle the same name (`rpc:request`, the model-proxy relay);
|
|
12
|
+
* - `delivery` — `acked` when the sender learns that it arrived (a Socket.IO
|
|
13
|
+
* acknowledgement callback, or an answer event named in `answeredBy`),
|
|
14
|
+
* `fire_and_forget` otherwise;
|
|
15
|
+
* - `stability` — `stable`: every supported daemon and API speak it, and a
|
|
16
|
+
* change needs a new capability; `experimental`: newer than the fleet, or
|
|
17
|
+
* declared ahead of a speaker (`dormant` says which), and its shape may
|
|
18
|
+
* still move; `deprecated`: kept only so an older peer is heard, never
|
|
19
|
+
* newly sent;
|
|
20
|
+
* - `capability` — the capability the daemon announces before the API may
|
|
21
|
+
* send it (or before the daemon itself sends it). `null` means the event
|
|
22
|
+
* predates capability gating and every supported daemon speaks it;
|
|
23
|
+
* - `payload` — the zod schema that validates it, NAMED (an export of
|
|
24
|
+
* `@skrr-ai/data-provider`, which owns every zod schema; this module stays
|
|
25
|
+
* zod-free so the browser, React Native and a bun-compiled daemon all load
|
|
26
|
+
* it), or `unvalidated`. "This event has no schema" is a recorded fact
|
|
27
|
+
* here, counted by `scripts/daemon-wire/unvalidated-ratchet.mjs`, which
|
|
28
|
+
* lets the count fall and never rise.
|
|
29
|
+
*
|
|
30
|
+
* Who checks it:
|
|
31
|
+
*
|
|
32
|
+
* - `daemon/src/daemon-wire-registry.test.ts` parses the daemon's source and
|
|
33
|
+
* fails on an event the daemon handles or sends that is not declared here,
|
|
34
|
+
* or that it handles or sends against its declared direction;
|
|
35
|
+
* - `api/server/websocket/__tests__/daemonWireRegistry.spec.js` holds the
|
|
36
|
+
* API's SSE ingress table (`EXACT_DAEMON_INGRESS`) and its daemon-socket
|
|
37
|
+
* listeners to the same declarations. The API keeps its own table on
|
|
38
|
+
* purpose: the routing kind is server-owned, and an API booting on a stale
|
|
39
|
+
* package build must not lose routes;
|
|
40
|
+
* - `scripts/daemon-wire/generate-schema.mjs` writes
|
|
41
|
+
* `docs/protocol/daemon-wire.schema.json` from here (the Codex
|
|
42
|
+
* `generate-json-schema` analogue), and a spec fails when it is stale.
|
|
43
|
+
*
|
|
44
|
+
* Event names, never routing: a `{provider}` placeholder stands for one
|
|
45
|
+
* session-provider spelling (`daemon:{provider}:request`). Which spellings are
|
|
46
|
+
* heard is `firstPartyHarness.ts`'s and the API's `sessionProvider.js`'s
|
|
47
|
+
* decision, not this table's.
|
|
48
|
+
*/
|
|
49
|
+
export declare const DAEMON_WIRE_DIRECTIONS: readonly ["server_to_daemon", "daemon_to_server", "bidirectional"];
|
|
50
|
+
export type DaemonWireDirection = (typeof DAEMON_WIRE_DIRECTIONS)[number];
|
|
51
|
+
export declare const DAEMON_WIRE_DELIVERIES: readonly ["fire_and_forget", "acked"];
|
|
52
|
+
export type DaemonWireDelivery = (typeof DAEMON_WIRE_DELIVERIES)[number];
|
|
53
|
+
export declare const DAEMON_WIRE_STABILITIES: readonly ["stable", "experimental", "deprecated"];
|
|
54
|
+
export type DaemonWireStability = (typeof DAEMON_WIRE_STABILITIES)[number];
|
|
55
|
+
/**
|
|
56
|
+
* How a name travels. `event` is its own Socket.IO / SSE event; `rpc` is a
|
|
57
|
+
* `method` inside `rpc:request`, answered on `rpc:response` — the shape SSE
|
|
58
|
+
* needs because it has no acknowledgement callback. Several older methods are
|
|
59
|
+
* still ALSO their own event for a Socket.IO daemon, and are declared once
|
|
60
|
+
* with both.
|
|
61
|
+
*/
|
|
62
|
+
export declare const DAEMON_WIRE_CARRIERS: readonly ["event", "rpc"];
|
|
63
|
+
export type DaemonWireCarrier = (typeof DAEMON_WIRE_CARRIERS)[number];
|
|
64
|
+
/**
|
|
65
|
+
* The zod schema that validates a payload, by its export name in
|
|
66
|
+
* `@skrr-ai/data-provider` (a dotted path reaches into an exported table:
|
|
67
|
+
* `DAEMON_COMPUTER_EVENT_PAYLOAD_SCHEMAS.attach`). `unvalidated` is a recorded
|
|
68
|
+
* gap, not a default: both ends read the payload field by field.
|
|
69
|
+
*/
|
|
70
|
+
export type DaemonWirePayload = {
|
|
71
|
+
readonly kind: 'zod';
|
|
72
|
+
readonly schema: string;
|
|
73
|
+
} | {
|
|
74
|
+
readonly kind: 'unvalidated';
|
|
75
|
+
};
|
|
76
|
+
export interface DaemonWireEntry {
|
|
77
|
+
readonly name: string;
|
|
78
|
+
readonly direction: DaemonWireDirection;
|
|
79
|
+
readonly delivery: DaemonWireDelivery;
|
|
80
|
+
/** The name carrying the answer, when `delivery` is `acked` by an answer rather than a callback. */
|
|
81
|
+
readonly answeredBy?: string;
|
|
82
|
+
readonly stability: DaemonWireStability;
|
|
83
|
+
readonly capability: string | null;
|
|
84
|
+
/**
|
|
85
|
+
* A capability the API announces in `daemon:registered.serverCaps` that
|
|
86
|
+
* changes this name's delivery (`toolResponseAck` turns a fire-and-forget
|
|
87
|
+
* `daemon:tool:response` into an acked one). Absent: the API's version alone decides.
|
|
88
|
+
*/
|
|
89
|
+
readonly serverCapability?: string;
|
|
90
|
+
readonly carriers: readonly DaemonWireCarrier[];
|
|
91
|
+
readonly payload: DaemonWirePayload;
|
|
92
|
+
readonly purpose: string;
|
|
93
|
+
/**
|
|
94
|
+
* The API also accepts this name from a person's client socket and relays
|
|
95
|
+
* it to the daemon under the same name (`daemon:list-dirs`). Without this, a
|
|
96
|
+
* server-side listener of a server → daemon name would read as a direction error.
|
|
97
|
+
*/
|
|
98
|
+
readonly relayedFromClient?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Declared, and one end has no speaker for it: why. A dormant entry is exempt
|
|
101
|
+
* from "somebody speaks this" and is still subject to every other check.
|
|
102
|
+
*/
|
|
103
|
+
readonly dormant?: string;
|
|
104
|
+
}
|
|
105
|
+
/** Every daemon ⇄ API name, in declaration order (which the generated schema keeps). */
|
|
106
|
+
export declare const DAEMON_WIRE: readonly DaemonWireEntry[];
|
|
107
|
+
export declare const DAEMON_WIRE_NAMES: readonly string[];
|
|
108
|
+
/**
|
|
109
|
+
* The declaration a concrete name belongs to, or null. An exact declaration
|
|
110
|
+
* wins over a templated one: `daemon:ping:response` is its own event, not a
|
|
111
|
+
* `daemon:{provider}:response`. A templated match says only that the SHAPE is
|
|
112
|
+
* declared; whether a provider spelling is heard is the API's decision.
|
|
113
|
+
*/
|
|
114
|
+
export declare function daemonWireEntry(name: string): DaemonWireEntry | null;
|
|
115
|
+
/** Whether `direction` lets `end` send the name. */
|
|
116
|
+
export declare function daemonWireSends(entry: DaemonWireEntry, end: 'daemon' | 'server'): boolean;
|
|
117
|
+
/** Whether `direction` lets `end` handle the name. */
|
|
118
|
+
export declare function daemonWireHandles(entry: DaemonWireEntry, end: 'daemon' | 'server'): boolean;
|